From 37fff30d2e782e512ccf0193e18ea3a4bbfc5037 Mon Sep 17 00:00:00 2001 From: Gabriele Cosmo Date: Wed, 8 Jun 2016 16:57:27 +0200 Subject: [PATCH] Import Geant4 5.0.0 source tree --- Configure | 294 +- ReleaseNotes/Patch4.4.1-1.txt | 112 + ReleaseNotes/ReleaseNotes4.5.0.txt | 652 + config/G4ODBMS_BUILD.gmk | 17 - config/G4UI_USE.gmk | 14 +- config/G4VIS_USE.gmk | 33 +- config/History | 75 +- config/architecture.gmk | 115 +- config/binmake.gmk | 169 +- config/common.gmk | 87 +- config/common_kernel.gmk | 20 - config/common_objy.gmk | 105 - config/globlib.gmk | 12 +- config/liblist.c | 240 +- config/scripts/GNUmakefile | 23 + config/scripts/binmake.gmk | 354 + config/scripts/env.csh.SH | 24 +- config/scripts/env.sh.SH | 123 +- config/scripts/install.sh.SH | 37 +- config/sys/AIX-xlC.gmk | 12 +- config/sys/DEC-cxx.gmk | 19 +- config/sys/Darwin-g++.gmk | 19 +- config/sys/HP-aCC.gmk | 5 - config/sys/Linux-egcs.gmk | 12 +- config/sys/Linux-g++.gmk | 4 +- config/sys/SGI-CC.gmk | 11 +- config/sys/SUN-CC.gmk | 24 +- config/sys/WIN32-VC.gmk | 16 +- config/sys/WIN32-g++.gmk | 18 +- environments/History | 6 +- environments/OPACS/app/EXPO.cc | 4 +- environments/OPACS/app/TEST.cc | 4 +- environments/OPACS/include/EXPO_Detector.icc | 4 +- .../OPACS/include/EXPO_PhysicsList.hh | 4 +- .../OPACS/include/EXPO_PhysicsList.icc | 4 +- environments/OPACS/include/EXPO_Primary.icc | 4 +- environments/OPACS/include/G4o.h | 4 +- environments/OPACS/include/G4oCommon.hh | 4 +- environments/OPACS/include/G4oCommon.icc | 4 +- environments/OPACS/include/G4oDrawer.hh | 4 +- environments/OPACS/include/G4oEXPO.h | 4 +- environments/OPACS/include/G4oScene.hh | 4 +- environments/OPACS/include/G4oState.hh | 4 +- environments/OPACS/include/WoG4o.h | 4 +- environments/OPACS/src/G4o.cc | 4 +- environments/OPACS/src/G4oDrawer.cc | 4 +- environments/OPACS/src/G4oScene.cc | 4 +- environments/OPACS/src/G4oState.cc | 12 +- examples/History | 8 +- examples/advanced/brachytherapy/Brachy.cc | 137 +- examples/advanced/brachytherapy/GNUmakefile | 10 +- examples/advanced/brachytherapy/History | 5 +- examples/advanced/brachytherapy/README | 98 +- examples/advanced/brachytherapy/brachy.py | 19 +- .../advanced/brachytherapy/brachytherapy.hbk | Bin 0 -> 450560 bytes .../include/BrachyAnalysisManager.hh | 91 +- .../include/BrachyDetectorConstruction.hh | 172 +- .../include/BrachyDetectorConstructionI.hh | 106 + .../include/BrachyDetectorConstructionIr.hh | 106 + .../BrachyDetectorConstructionLeipzig.hh | 93 + .../include/BrachyDetectorMessenger.hh | 41 +- .../brachytherapy/include/BrachyDummySD.hh | 18 +- .../include/BrachyEventAction.hh | 59 +- .../brachytherapy/include/BrachyFactory.hh} | 55 +- .../brachytherapy/include/BrachyFactoryI.hh} | 43 +- .../brachytherapy/include/BrachyFactoryIr.hh | 60 + .../include/BrachyFactoryLeipzig.hh | 59 + .../brachytherapy/include/BrachyMaterial.hh} | 43 +- .../brachytherapy/include/BrachyPhantomHit.hh | 100 +- .../include/BrachyPhantomROGeometry.hh | 31 +- .../brachytherapy/include/BrachyPhantomSD.hh | 37 +- .../include/BrachyPhysicsList.hh | 64 +- .../include/BrachyPrimaryGeneratorAction.hh | 45 +- .../include/BrachyPrimaryGeneratorActionI.hh | 72 + .../include/BrachyPrimaryGeneratorActionIr.hh | 131 + .../brachytherapy/include/BrachyRunAction.hh | 66 +- .../include/BrachyRunMessenger.hh} | 87 +- .../brachytherapy/include/BrachyVisManager.hh | 37 +- examples/advanced/brachytherapy/initInter.mac | 2 + .../src/BrachyAnalysisManager.cc | 118 +- .../src/BrachyDetectorConstruction.cc | 545 +- .../src/BrachyDetectorConstructionI.cc | 207 + .../src/BrachyDetectorConstructionIr.cc | 203 + .../src/BrachyDetectorConstructionLeipzig.cc | 158 + .../src/BrachyDetectorMessenger.cc | 69 +- .../brachytherapy/src/BrachyEventAction.cc | 137 +- .../brachytherapy/src/BrachyFactory.cc | 45 +- .../brachytherapy/src/BrachyFactoryI.cc} | 68 +- .../brachytherapy/src/BrachyFactoryIr.cc | 84 + .../brachytherapy/src/BrachyFactoryLeipzig.cc | 86 + .../brachytherapy/src/BrachyMaterial.cc | 262 + .../brachytherapy/src/BrachyPhantomHit.cc | 47 +- .../src/BrachyPhantomROGeometry.cc | 100 +- .../brachytherapy/src/BrachyPhantomSD.cc | 101 +- .../brachytherapy/src/BrachyPhysicsList.cc | 20 +- .../src/BrachyPrimaryGeneratorAction.cc | 113 +- .../src/BrachyPrimaryGeneratorActionI.cc | 165 + .../src/BrachyPrimaryGeneratorActionIr.cc | 140 + .../brachytherapy/src/BrachyRunAction.cc | 112 +- .../brachytherapy/src/BrachyRunMessenger.cc | 96 + .../brachytherapy/src/BrachyVisManager.cc | 37 + .../CompositeCalorimeter.cc | 148 + .../composite_calorimeter}/GNUmakefile | 16 +- .../advanced/composite_calorimeter/History | 37 + .../advanced/composite_calorimeter/README | 603 + .../dataconf/g4testbeamhcal96.conf | 11 + .../dataconf/testbeamhcal96.conf | 11 + .../datageom/tbhcal96.geom | 6 + .../datageom/tbhcal96hcal.geom | 55 + .../datageom/tbhcal96xtal.geom | 18 + .../dataglobal/fmap.tb96 | 13 + .../dataglobal/material.cms | 2139 ++ .../dataglobal/rotation.cms | 112 + .../datavis/tbhcal96.vis | 9 + .../datavis/tbhcal96hcal.vis | 9 + .../datavis/tbhcal96xtal.vis | 9 + .../composite_calorimeter/envExample.csh | 32 + .../composite_calorimeter/envExample.sh | 32 + .../advanced/composite_calorimeter/gui.mac | 34 + .../include/CCalAMaterial.hh | 58 +- .../include/CCalAnalysis.hh | 96 + .../include/CCalDataSet.hh} | 99 +- .../include/CCalDetector.hh | 126 + .../include/CCalDetectorConstruction.hh} | 31 +- .../composite_calorimeter/include/CCalEcal.hh | 110 + .../include/CCalEcalOrganization.hh | 42 + .../include/CCalEndOfEventAction.hh | 64 + .../include/CCalG4Able.hh | 109 + .../include/CCalG4Ecal.hh | 84 +- .../include/CCalG4Hall.hh | 45 + .../include/CCalG4Hcal.hh | 66 +- .../include/CCalG4Hit.hh | 67 + .../include/CCalG4HitCollection.hh | 38 + .../include/CCalGeometryConfiguration.hh | 65 + .../composite_calorimeter/include/CCalHall.hh | 53 + .../composite_calorimeter/include/CCalHcal.hh | 116 + .../include/CCalHcalOrganization.hh | 42 + .../composite_calorimeter/include/CCalHit.hh | 97 + .../include/CCalMagneticField.hh | 59 + .../include/CCalMaterial.hh | 73 + .../include/CCalMaterialFactory.hh | 97 + .../include/CCalPhysicsList.hh} | 37 +- .../include/CCalPrimaryGeneratorAction.hh | 120 + .../include/CCalPrimaryGeneratorMessenger.hh | 66 + .../include/CCalRotationMatrixFactory.hh | 67 + .../include/CCalRunAction.hh | 46 + .../include/CCalSDList.hh | 66 + .../include/CCalSensAssign.hh | 53 + .../include/CCalSensitiveConfiguration.hh | 62 + .../include/CCalSensitiveDetectors.hh | 54 + .../include/CCalStackingAction.hh | 66 +- .../include/CCalSteppingAction.hh | 56 + .../include/CCalVOrganization.hh | 47 + .../include/CCalVisManager.hh | 60 + .../include/CCalVisualisable.hh | 109 + .../include/CCaloOrganization.hh | 59 + .../composite_calorimeter/include/CCaloSD.hh | 128 + .../include/CCalutils.hh | 57 + .../include/EMPhysics.hh} | 32 +- .../include/G4EMBuilder.hh} | 69 +- .../include/G4ElectroNuclearBuilder.hh | 72 + .../include/G4HadronQEDBuilder.hh | 110 + .../include/G4LEPNeutronBuilder.hh | 79 + .../include/G4LEPPiKBuilder.hh | 80 + .../include/G4LEPProtonBuilder.hh | 65 + .../include/G4LHEPNeutronBuilder.hh | 77 + .../include/G4LHEPPiKBuilder.hh | 98 + .../include/G4LHEPProtonBuilder.hh | 63 + .../include/G4MiscLHEPBuilder.hh | 177 + .../include/G4NeutronBuilder.hh | 52 +- .../include/G4NeutronHPBuilder.hh | 70 + .../include/G4PiKBuilder.hh | 66 + .../include/G4PrecoNeutronBuilder.hh | 64 + .../include/G4PrecoProtonBuilder.hh | 62 + .../include/G4ProtonBuilder.hh | 55 + .../include/G4QGSCNeutronBuilder.hh | 71 + .../include/G4QGSCPiKBuilder.hh | 71 + .../include/G4QGSCProtonBuilder.hh | 70 + .../include/G4QGSPNeutronBuilder.hh | 75 + .../include/G4QGSPPiKBuilder.hh | 75 + .../include/G4QGSPProtonBuilder.hh | 74 + .../include/G4StoppingHadronBuilder.hh | 65 + .../include/G4VNeutronBuilder.hh | 43 + .../include/G4VPiKBuilder.hh | 49 + .../include/G4VProtonBuilder.hh | 38 + .../include/GeneralPhysics.hh} | 52 +- .../include/HadronPhysicsLHEP.hh | 71 + .../include/HadronPhysicsQGSC.hh | 77 + .../include/HadronPhysicsQGSP.hh | 77 + .../include/IonPhysics.hh | 105 + .../include/MuonPhysics.hh | 80 + .../src/CCalAMaterial.cc | 126 + .../composite_calorimeter/src/CCalAnalysis.cc | 387 + .../composite_calorimeter/src/CCalDetector.cc | 122 + .../src/CCalDetectorConstruction.cc | 138 + .../composite_calorimeter/src/CCalEcal.cc | 108 + .../src/CCalEcalOrganization.cc | 55 + .../src/CCalEndOfEventAction.cc | 248 + .../composite_calorimeter/src/CCalG4Able.cc | 148 + .../composite_calorimeter/src/CCalG4Ecal.cc | 291 + .../composite_calorimeter/src/CCalG4Hall.cc | 108 + .../composite_calorimeter/src/CCalG4Hcal.cc | 356 + .../composite_calorimeter/src/CCalG4Hit.cc | 84 + .../src/CCalGeometryConfiguration.cc | 115 + .../composite_calorimeter/src/CCalHall.cc | 78 + .../composite_calorimeter/src/CCalHcal.cc | 190 + .../src/CCalHcalOrganization.cc} | 47 +- .../composite_calorimeter/src/CCalHit.cc | 110 + .../src/CCalMagneticField.cc | 137 + .../composite_calorimeter/src/CCalMaterial.cc | 181 + .../src/CCalMaterialFactory.cc | 426 + .../src/CCalPhysicsList.cc | 107 + .../src/CCalPhysicsList.cc-LHEP | 85 + .../src/CCalPhysicsList.cc-QGSC | 85 + .../src/CCalPhysicsList.cc-QGSP | 85 + .../src/CCalPrimaryGeneratorAction.cc | 390 + .../src/CCalPrimaryGeneratorMessenger.cc | 186 + .../src/CCalRotationMatrixFactory.cc | 287 + .../src/CCalRunAction.cc | 74 + .../composite_calorimeter/src/CCalSDList.cc | 87 + .../src/CCalSensAssign.cc | 90 + .../src/CCalSensitiveConfiguration.cc | 116 + .../src/CCalSensitiveDetectors.cc | 87 + .../src/CCalStackingAction.cc | 209 + .../src/CCalSteppingAction.cc | 92 + .../src/CCalVOrganization.cc} | 52 +- .../src/CCalVisManager.cc | 139 + .../src/CCalVisualisable.cc | 168 + .../src/CCaloOrganization.cc | 149 + .../composite_calorimeter/src/CCaloSD.cc | 289 + .../composite_calorimeter/src/CCalutils.cc | 128 + .../composite_calorimeter/src/EMPhysics.cc | 61 + .../composite_calorimeter/src/G4EMBuilder.cc | 70 + .../src/G4ElectroNuclearBuilder.cc | 73 + .../src/G4HadronQEDBuilder.cc | 108 + .../src/G4LEPNeutronBuilder.cc | 71 + .../src/G4LEPPiKBuilder.cc | 105 + .../src/G4LEPProtonBuilder.cc} | 48 +- .../src/G4LHEPNeutronBuilder.cc | 74 + .../src/G4LHEPPiKBuilder.cc | 114 + .../src/G4LHEPProtonBuilder.cc | 56 + .../src/G4MiscLHEPBuilder.cc | 178 + .../src/G4NeutronBuilder.cc | 51 + .../src/G4NeutronHPBuilder.cc | 96 + .../composite_calorimeter/src/G4PiKBuilder.cc | 74 + .../src/G4PrecoNeutronBuilder.cc | 65 + .../src/G4PrecoProtonBuilder.cc | 55 + .../src/G4ProtonBuilder.cc | 47 + .../src/G4QGSCNeutronBuilder.cc | 72 + .../src/G4QGSCPiKBuilder.cc | 97 + .../src/G4QGSCProtonBuilder.cc} | 54 +- .../src/G4QGSPNeutronBuilder.cc | 74 + .../src/G4QGSPPiKBuilder.cc | 99 + .../src/G4QGSPProtonBuilder.cc | 64 + .../src/G4StoppingHadronBuilder.cc | 67 + .../src/GeneralPhysics.cc | 68 + .../src/HadronPhysicsLHEP.cc} | 65 +- .../src/HadronPhysicsQGSC.cc | 75 + .../src/HadronPhysicsQGSP.cc | 75 + .../composite_calorimeter/src/IonPhysics.cc | 139 + .../composite_calorimeter/src/MuonPhysics.cc | 123 + .../advanced/composite_calorimeter/test.g4mac | 20 + .../advanced/gammaray_telescope/GNUmakefile | 10 +- .../gammaray_telescope/GammaRayTel.cc | 2 +- examples/advanced/gammaray_telescope/README | 52 +- .../gammaray_telescope/gammaraytel.in | 33 + .../gammaray_telescope/gammaraytel.out | 3943 +++ .../gammaray_telescope/gammaraytel.py | 61 +- .../include/GammaRayTelAnalysis.hh | 40 +- .../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/GammaRayTelEventAction.hh | 2 +- .../include/GammaRayTelPhysicsList.hh | 2 +- .../GammaRayTelPrimaryGeneratorAction.hh | 2 +- .../GammaRayTelPrimaryGeneratorMessenger.hh | 2 +- .../include/GammaRayTelRunAction.hh | 2 +- .../include/GammaRayTelTrackerHit.hh | 2 +- .../include/GammaRayTelTrackerROGeometry.hh | 2 +- .../include/GammaRayTelTrackerSD.hh | 2 +- .../include/GammaRayTelVisManager.hh | 2 +- .../advanced/gammaray_telescope/macro1.mac | 6 +- .../src/GammaRayTelAnalysis.cc | 113 +- .../src/GammaRayTelAnalysisMessenger.cc | 14 +- .../src/GammaRayTelAnticoincidenceHit.cc | 2 +- .../src/GammaRayTelAnticoincidenceSD.cc | 2 +- .../src/GammaRayTelCalorimeterHit.cc | 2 +- .../src/GammaRayTelCalorimeterSD.cc | 2 +- .../src/GammaRayTelDetectorConstruction.cc | 2 +- .../src/GammaRayTelDetectorMessenger.cc | 34 +- .../gammaray_telescope/src/GammaRayTelDigi.cc | 2 +- .../src/GammaRayTelDigitizer.cc | 2 +- .../src/GammaRayTelDigitizerMessenger.cc | 6 +- .../src/GammaRayTelEventAction.cc | 24 +- .../src/GammaRayTelPhysicsList.cc | 2 +- .../src/GammaRayTelPrimaryGeneratorAction.cc | 2 +- .../GammaRayTelPrimaryGeneratorMessenger.cc | 12 +- .../src/GammaRayTelRunAction.cc | 9 +- .../src/GammaRayTelTrackerHit.cc | 2 +- .../src/GammaRayTelTrackerROGeometry.cc | 2 +- .../src/GammaRayTelTrackerSD.cc | 2 +- .../src/GammaRayTelVisManager.cc | 6 +- .../lAr_calorimeter}/GNUmakefile | 22 +- examples/advanced/lAr_calorimeter/History | 17 + examples/advanced/lAr_calorimeter/README | 133 + .../data-tracks/tracks-120GeV.dat | 1 + .../data-tracks/tracks-200GeV.dat | 1 + .../data-tracks/tracks-20GeV.dat | 1 + .../data-tracks/tracks-40GeV.dat | 1 + .../data-tracks/tracks-60GeV.dat | 1 + .../data-tracks/tracks-80GeV.dat | 1 + .../geom_data/FCal1Electrodes.dat | 1 + .../geom_data/FCal2Electrodes.dat | 1 + examples/advanced/lAr_calorimeter/gui.mac | 27 + .../include/FCALAnalysisManager.hh | 123 + .../lAr_calorimeter/include/FCALCalorHit.hh | 100 + .../include/FCALCryostatVolumes.hh | 89 + .../lAr_calorimeter/include/FCALEMModule.hh | 85 + .../lAr_calorimeter/include/FCALEMModuleSD.hh | 79 + .../lAr_calorimeter/include/FCALHadModule.hh | 88 + .../include/FCALHadModuleSD.hh | 77 + .../include/FCALMaterialConsultant.hh | 77 + .../include/FCALPhysicsList.hh | 88 + .../include/FCALPrimaryGeneratorAction.hh | 76 + .../lAr_calorimeter/include/FCALRunAction.hh | 57 + .../include/FCALSteppingAction.hh | 71 + .../include/FCALSteppingVerbose.hh | 63 +- .../include/FCALTBEventAction.hh | 74 + .../include/FCALTBEventActionMessenger.hh | 56 + .../include/FCALTestbeamSetup.hh | 129 + .../include/FCALTestbeamSetupSD.hh | 82 + .../lAr_calorimeter/include/FCALVisManager.hh | 72 + examples/advanced/lAr_calorimeter/lArCal.cc | 135 + .../lAr_calorimeter/lAr_calorimeter.ps | 1688 + .../advanced/lAr_calorimeter/prerunN03.mac | 51 + .../advanced/lAr_calorimeter/prerunlArcal.mac | 51 + .../src/FCALAnalysisManager.cc | 255 + .../lAr_calorimeter/src/FCALCalorHit.cc | 86 + .../src/FCALCryostatVolumes.cc | 246 + .../src/FCALCryostatVolumesParameters.icc | 106 + .../src/FCALCryostatVolumesParameters.input | 88 + .../lAr_calorimeter/src/FCALEMModule.cc | 198 + .../src/FCALEMModuleParameters.icc | 53 + .../src/FCALEMModuleParameters.input | 32 + .../lAr_calorimeter/src/FCALEMModuleSD.cc | 158 + .../lAr_calorimeter/src/FCALHadModule.cc | 266 + .../src/FCALHadModuleParameters.icc | 95 + .../src/FCALHadModuleParameters.input | 79 + .../lAr_calorimeter/src/FCALHadModuleSD.cc | 156 + .../src/FCALMaterialConsultant.cc | 283 + .../lAr_calorimeter/src/FCALPhysicsList.cc | 374 + .../src/FCALPrimaryGeneratorAction.cc | 124 + .../lAr_calorimeter/src/FCALRunAction.cc | 75 + .../lAr_calorimeter/src/FCALSteppingAction.cc | 250 + .../src/FCALSteppingVerbose.cc | 185 + .../lAr_calorimeter/src/FCALTBEventAction.cc | 194 + .../src/FCALTBEventActionMessenger.cc | 73 + .../lAr_calorimeter/src/FCALTestbeamSetup.cc | 431 + .../src/FCALTestbeamSetupParameters.icc | 205 + .../src/FCALTestbeamSetupParameters.input | 183 + .../src/FCALTestbeamSetupSD.cc | 186 + .../lAr_calorimeter/src/FCALVisManager.cc | 187 + .../advanced/underground_physics/GNUmakefile | 6 +- .../advanced/underground_physics/README_stt | 41 + .../advanced/underground_physics/alpha.mac | 2 +- .../underground_physics/alpha_1000.mac | 6 +- .../underground_physics/alpha_low.mac | 2 +- .../underground_physics/ambe_spectrum.mac | 2 +- examples/advanced/underground_physics/anaphe | 3 - .../underground_physics/anaphe.tar.gz | Bin 6712 -> 0 bytes .../advanced/underground_physics/gamma.mac | 2 +- .../underground_physics/gamma_1000.mac | 2 +- .../underground_physics/gamma_2000.mac | 3 +- .../underground_physics/gamma_low.mac | 2 +- .../include/DMXAnalysisManager.hh | 85 +- .../include/DMXDetectorMaterial.ihh | 38 + .../include/DMXDetectorRoom.ihh | 38 + .../include/DMXMinEkineCuts.hh | 2 +- .../include/DMXPhysicsList.hh | 4 +- .../include/DMXRunAction.hh | 3 + .../include/DMXRunActionMessenger.hh | 1 + .../src/DMXAnalysisManager.cc | 422 +- .../src/DMXDetectorConstruction.cc | 67 +- .../src/DMXDetectorField.icc | 23 + .../src/DMXDetectorMaterial.icc | 57 +- .../src/DMXDetectorMessenger.cc | 10 +- .../src/DMXDetectorRoom.icc | 36 +- .../src/DMXDetectorRoomLimits.icc | 23 + .../underground_physics/src/DMXEventAction.cc | 48 +- .../src/DMXEventActionMessenger.cc | 6 +- .../src/DMXMinEkineCuts.cc | 2 +- .../underground_physics/src/DMXPhysicsList.cc | 104 +- .../underground_physics/src/DMXRunAction.cc | 6 +- .../src/DMXRunActionMessenger.cc | 17 +- .../src/DMXSteppingActionMessenger.cc | 10 +- .../underground_physics/src/DMXVisManager.cc | 0 examples/advanced/underground_physics/stt.mac | 53 + .../underground_physics/stt_pmt_ref.out | 2469 ++ .../advanced/underground_physics/stt_ref.out | 34 + .../include/XrayFluoAnalysisManager.hh | 45 +- .../include/XrayFluoAnalysisMessenger.hh | 15 +- .../include/XrayFluoDataSet.hh | 2 +- .../include/XrayFluoDetectorConstruction.hh | 22 +- .../include/XrayFluoDetectorMessenger.hh | 5 +- .../include/XrayFluoEventAction.hh | 2 +- .../include/XrayFluoEventActionMessenger.hh | 2 +- .../include/XrayFluoHPGeSD.hh | 2 +- .../include/XrayFluoNormalization.hh | 2 +- .../include/XrayFluoPhysicsList.hh | 2 +- .../include/XrayFluoPhysicsListMessenger.hh | 2 +- .../include/XrayFluoPrimaryGeneratorAction.hh | 2 +- .../XrayFluoPrimaryGeneratorMessenger.hh | 2 +- .../include/XrayFluoRunAction.hh | 2 +- .../include/XrayFluoSensorHit.hh | 2 +- .../include/XrayFluoSteppingAction.hh | 2 +- .../include/XrayFluoSteppingVerbose.hh | 2 +- .../include/XrayFluoVisManager.hh | 2 +- .../src/XrayFluoAnalysisManager.cc | 213 +- .../src/XrayFluoAnalysisMessenger.cc | 18 +- .../xray_fluorescence/src/XrayFluoDataSet.cc | 2 +- .../src/XrayFluoDetectorConstruction.cc | 434 +- .../src/XrayFluoDetectorMessenger.cc | 23 +- .../src/XrayFluoEventAction.cc | 2 +- .../src/XrayFluoEventActionMessenger.cc | 6 +- .../xray_fluorescence/src/XrayFluoHPGeSD.cc | 65 +- .../src/XrayFluoNormalization.cc | 2 +- .../src/XrayFluoPhysicsList.cc | 3 +- .../src/XrayFluoPhysicsListMessenger.cc | 20 +- .../src/XrayFluoPrimaryGeneratorAction.cc | 2 +- .../src/XrayFluoPrimaryGeneratorMessenger.cc | 10 +- .../src/XrayFluoRunAction.cc | 2 +- .../src/XrayFluoSteppingAction.cc | 2 +- .../src/XrayFluoSteppingVerbose.cc | 2 +- .../src/XrayFluoVisManager.cc | 6 +- examples/advanced/xray_telescope/GNUmakefile | 23 +- examples/advanced/xray_telescope/README | 105 +- examples/advanced/xray_telescope/README_stt | 40 + examples/advanced/xray_telescope/XrayTel.cc | 8 +- .../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 + examples/advanced/xray_telescope/anaphe.gmk | 33 - ...lAnalysis.hh-Anaphe => XrayTelAnalysis.hh} | 87 +- .../include/XrayTelAnalysis.hh-AIDA | 95 - .../xray_telescope/src/XrayTelAnalysis.cc | 288 + .../src/XrayTelAnalysis.cc-AIDA | 215 - .../src/XrayTelAnalysis.cc-Anaphe | 169 - .../src/XrayTelEventActionMessenger.cc | 2 +- .../src/XrayTelSteppingAction.cc | 2 - .../xray_telescope/src/XrayTelVisManager.cc | 6 +- examples/advanced/xray_telescope/test.mac | 2 - .../advanced/xray_telescope/xraytel_ref.hbook | Bin 0 -> 253952 bytes .../advanced/xray_telescope/xraytel_ref.out | 12 + examples/extended/analysis/A01/A01.aida | Bin 0 -> 14706 bytes .../A01/A01app.cc} | 98 +- examples/extended/analysis/A01/GNUmakefile | 26 + examples/extended/analysis/A01/History | 18 + .../extended/analysis/A01/eventAction.mac | 2 + examples/extended/analysis/A01/heprep.mac | 47 + examples/extended/analysis/A01/heprep2.mac | 49 + .../A01/include/A01AnalysisManager.hh | 105 + .../A01/include/A01CellParameterisation.hh} | 33 +- .../A01/include/A01DetectorConstMessenger.hh | 57 + .../A01/include/A01DetectorConstruction.hh | 97 + .../analysis/A01/include/A01DriftChamber.hh | 55 + .../A01/include/A01DriftChamberHit.hh | 92 + .../analysis/A01/include/A01EMPhysics.hh | 83 + .../analysis/A01/include/A01EmCalorimeter.hh | 55 + .../A01/include/A01EmCalorimeterHit.hh | 93 + .../analysis/A01/include/A01EventAction.hh | 73 + .../A01/include/A01EventActionMessenger.hh | 55 + .../A01/include/A01GeneralPhysics.hh} | 56 +- .../analysis/A01/include/A01HadCalorimeter.hh | 55 + .../A01/include/A01HadCalorimeterHit.hh | 94 + .../analysis/A01/include/A01HadronPhysics.hh | 72 + .../analysis/A01/include/A01Hodoscope.hh | 55 + .../analysis/A01/include/A01HodoscopeHit.hh | 92 + .../analysis/A01/include/A01IonPhysics.hh | 101 + .../analysis/A01/include/A01MagneticField.hh | 55 + .../A01/include/A01MagneticFieldMessenger.hh | 54 + .../analysis/A01/include/A01MuonPhysics.hh | 79 + .../analysis/A01/include/A01PhysicsList.hh | 49 + .../A01/include/A01PrimaryGeneratorAction.hh | 72 + .../include/A01PrimaryGeneratorMessenger.hh | 59 + .../analysis/A01/include/A01TrackingAction.hh | 41 + .../analysis/A01/include/A01Trajectory.hh | 129 + .../analysis/A01/include/A01VisManager.hh | 46 + .../extended/analysis/A01/include/AIDA/AIDA.h | 81 + .../A01/include/AIDA/IAnalysisFactory.h | 141 + .../analysis/A01/include/AIDA/IAnnotation.h | 138 + .../analysis/A01/include/AIDA/IAxis.h | 124 + .../analysis/A01/include/AIDA/IAxisStyle.h | 75 + .../A01/include/AIDA/IBaseHistogram.h | 103 + .../analysis/A01/include/AIDA/IBaseStyle.h | 99 + .../analysis/A01/include/AIDA/IBrushStyle.h | 86 + .../analysis/A01/include/AIDA/ICloud.h | 88 + .../analysis/A01/include/AIDA/ICloud1D.h | 171 + .../analysis/A01/include/AIDA/ICloud2D.h | 223 + .../analysis/A01/include/AIDA/ICloud3D.h | 275 + .../analysis/A01/include/AIDA/IConstants.h | 40 + .../analysis/A01/include/AIDA/IDataPoint.h | 74 + .../analysis/A01/include/AIDA/IDataPointSet.h | 204 + .../A01/include/AIDA/IDataPointSetFactory.h | 227 + .../analysis/A01/include/AIDA/IDataStyle.h | 79 + .../analysis/A01/include/AIDA/IEvaluator.h | 81 + .../analysis/A01/include/AIDA/IFillStyle.h | 73 + .../analysis/A01/include/AIDA/IFilter.h | 81 + .../analysis/A01/include/AIDA/IFitData.h | 353 + .../analysis/A01/include/AIDA/IFitFactory.h | 75 + .../A01/include/AIDA/IFitParameterSettings.h | 108 + .../analysis/A01/include/AIDA/IFitResult.h | 151 + .../analysis/A01/include/AIDA/IFitter.h | 275 + .../analysis/A01/include/AIDA/IFunction.h | 191 + .../A01/include/AIDA/IFunctionCatalog.h | 96 + .../A01/include/AIDA/IFunctionFactory.h | 87 + .../analysis/A01/include/AIDA/IHistogram.h | 127 + .../analysis/A01/include/AIDA/IHistogram1D.h | 138 + .../analysis/A01/include/AIDA/IHistogram2D.h | 219 + .../analysis/A01/include/AIDA/IHistogram3D.h | 284 + .../A01/include/AIDA/IHistogramFactory.h | 767 + .../analysis/A01/include/AIDA/IInfo.h | 81 + .../analysis/A01/include/AIDA/IInfoStyle.h | 61 + .../analysis/A01/include/AIDA/ILineStyle.h | 85 + .../A01/include/AIDA/IManagedObject.h | 64 + .../analysis/A01/include/AIDA/IMarkerStyle.h | 73 + .../analysis/A01/include/AIDA/IMeasurement.h | 100 + .../A01/include/AIDA/IModelFunction.h | 119 + .../analysis/A01/include/AIDA/IPlotter.h | 211 + .../A01/include/AIDA/IPlotterFactory.h | 103 + .../A01/include/AIDA/IPlotterLayout.h | 81 + .../A01/include/AIDA/IPlotterRegion.h | 187 + .../analysis/A01/include/AIDA/IPlotterStyle.h | 93 + .../analysis/A01/include/AIDA/IProfile.h | 105 + .../analysis/A01/include/AIDA/IProfile1D.h | 125 + .../analysis/A01/include/AIDA/IProfile2D.h | 196 + .../analysis/A01/include/AIDA/IRangeSet.h | 131 + .../analysis/A01/include/AIDA/ITextStyle.h | 96 + .../analysis/A01/include/AIDA/ITitleStyle.h | 62 + .../analysis/A01/include/AIDA/ITree.h | 259 + .../analysis/A01/include/AIDA/ITreeFactory.h | 75 + .../analysis/A01/include/AIDA/ITuple.h | 906 + .../analysis/A01/include/AIDA/ITupleEntry.h | 47 + .../analysis/A01/include/AIDA/ITupleFactory.h | 148 + .../analysis/A01/include/AIDA/readme.txt | 9 + examples/extended/analysis/A01/novis.mac | 47 + examples/extended/analysis/A01/opengl.mac | 90 + .../extended/analysis/A01/setup-analysis.csh | 36 + .../extended/analysis/A01/setup-analysis.sh | 37 + .../analysis/A01/setup-analysis.win32 | 37 + .../analysis/A01/src/A01AnalysisManager.cc | 152 + .../A01/src/A01CellParameterisation.cc | 51 + .../A01/src/A01DetectorConstMessenger.cc | 66 + .../A01/src/A01DetectorConstruction.cc | 461 + .../analysis/A01/src/A01DriftChamber.cc | 81 + .../analysis/A01/src/A01DriftChamberHit.cc | 95 + .../extended/analysis/A01/src/A01EMPhysics.cc | 110 + .../analysis/A01/src/A01EmCalorimeter.cc | 91 + .../analysis/A01/src/A01EmCalorimeterHit.cc | 103 + .../analysis/A01/src/A01EventAction.cc | 314 + .../A01/src/A01EventActionMessenger.cc | 61 + .../analysis/A01/src/A01GeneralPhysics.cc | 72 + .../analysis/A01/src/A01HadCalorimeter.cc | 96 + .../analysis/A01/src/A01HadCalorimeterHit.cc | 103 + .../analysis/A01/src/A01HadronPhysics.cc | 111 + .../extended/analysis/A01/src/A01Hodoscope.cc | 99 + .../analysis/A01/src/A01HodoscopeHit.cc | 92 + .../analysis/A01/src/A01IonPhysics.cc | 138 + .../analysis/A01/src/A01MagneticField.cc | 50 + .../A01/src/A01MagneticFieldMessenger.cc | 60 + .../analysis/A01/src/A01MuonPhysics.cc | 126 + .../analysis/A01/src/A01PhysicsList.cc | 85 + .../A01/src/A01PrimaryGeneratorAction.cc | 111 + .../A01/src/A01PrimaryGeneratorMessenger.cc | 98 + .../analysis/A01/src/A01TrackingAction.cc | 29 +- .../analysis/A01/src/A01Trajectory.cc | 174 + .../analysis/A01/src/A01VisManager.cc | 144 + .../analysis/A01/src/DummyAnalysisFactory.cc | 40 + examples/extended/analysis/AnaEx01/AnaEx01.cc | 2 +- .../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 | 2 +- .../AnaEx01/src/AnaEx01AnalysisManager.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01CalorHit.cc | 2 +- .../AnaEx01/src/AnaEx01CalorimeterSD.cc | 2 +- .../src/AnaEx01DetectorConstruction.cc | 2 +- .../AnaEx01/src/AnaEx01DetectorMessenger.cc | 20 +- .../AnaEx01/src/AnaEx01EventAction.cc | 2 +- .../AnaEx01/src/AnaEx01PhysicsList.cc | 2 +- .../src/AnaEx01PrimaryGeneratorAction.cc | 2 +- .../src/AnaEx01PrimaryGeneratorMessenger.cc | 6 +- .../analysis/AnaEx01/src/AnaEx01RunAction.cc | 2 +- .../AnaEx01/src/AnaEx01SteppingAction.cc | 2 +- .../AnaEx01/src/AnaEx01SteppingVerbose.cc | 2 +- .../analysis/AnaEx01/src/AnaEx01VisManager.cc | 8 +- examples/extended/analysis/History | 24 + examples/extended/biasing/B01/GNUmakefile | 6 +- examples/extended/biasing/B01/exampleB01.cc | 141 +- examples/extended/biasing/B01/exampleB01.out | 247 - .../B01/include/B01DetectorConstruction.hh | 18 +- .../biasing/B01/include/B01PhysicsList.hh | 7 +- .../B01/include/B01PrimaryGeneratorAction.hh | 5 +- .../B01/src/B01DetectorConstruction.cc | 212 +- .../biasing/B01/src/B01PhysicsList.cc | 7 +- .../B01/src/B01PrimaryGeneratorAction.cc | 6 +- examples/extended/biasing/B02/B02plot.py | 7 + examples/extended/biasing/B02/GNUmakefile | 20 +- examples/extended/biasing/B02/exampleB02.cc | 215 +- examples/extended/biasing/B02/exampleB02.out | 4 +- .../biasing/B02/include/B02CellScorer.hh | 72 + .../biasing/B02/include/B02CellScorerStore.hh | 77 +- .../B02/include/B02DetectorConstruction.hh | 14 +- .../B02ImportanceDetectorConstruction.hh | 58 + .../biasing/B02/include/B02PVolumeStore.hh | 62 + .../biasing/B02/include/B02PhysicsList.hh | 15 +- .../B02/include/B02PrimaryGeneratorAction.hh | 5 +- .../include/B02ScoringDetectorConstruction.hh | 2 +- examples/extended/biasing/B02/setupAnaphe.csh | 148 + .../extended/biasing/B02/src/B02CellScorer.cc | 65 +- .../biasing/B02/src/B02CellScorerStore.cc | 93 +- .../B02/src/B02DetectorConstruction.cc | 127 +- .../src/B02ImportanceDetectorConstruction.cc | 216 + .../biasing/B02/src/B02PVolumeStore.cc | 93 + .../biasing/B02/src/B02PhysicsList.cc | 11 +- .../B02/src/B02PrimaryGeneratorAction.cc | 6 +- .../B02/src/B02ScoringDetectorConstruction.cc | 6 +- examples/extended/biasing/B03/B03App.py | 428 + .../extended/biasing/B03/B03Application.py | 159 + .../extended/biasing/B03/B03RunApplication.py | 44 + examples/extended/biasing/B03/GNUmakefile | 29 +- examples/extended/biasing/B03/buildit.sh | 22 + examples/extended/biasing/B03/env.csh | 18 + examples/extended/biasing/B03/exampleB03.cc | 50 +- examples/extended/biasing/B03/exampleB03.out | 4 +- .../extended/biasing/B03/include/B03App.hh | 65 + .../extended/biasing/B03/include/B03App.i | 178 + .../B03/include/B03DetectorConstruction.hh | 14 +- .../B03ImportanceDetectorConstruction.hh | 56 + .../biasing/B03/include/B03PVolumeStore.hh | 62 + .../biasing/B03/include/B03PhysicsList.hh | 9 +- .../B03/include/B03PrimaryGeneratorAction.hh | 4 +- examples/extended/biasing/B03/init.mac | 4 - examples/extended/biasing/B03/python.rc | 8 + .../{B04/exampleB04.cc => B03/src/B03App.cc} | 92 +- .../extended/biasing/B03/src/B03App_wrap.cc | 2314 ++ .../B03/src/B03DetectorConstruction.cc | 137 +- .../src/B03ImportanceDetectorConstruction.cc | 216 + .../biasing/B03/src/B03PVolumeStore.cc | 93 + .../biasing/B03/src/B03PhysicsList.cc | 6 +- .../B03/src/B03PrimaryGeneratorAction.cc | 6 +- examples/extended/biasing/B04/GNUmakefile | 18 - examples/extended/biasing/B04/exampleB04.out | 140 - .../B04/src/B04DetectorConstruction.cc | 213 - .../src/B04ImportanceDetectorConstruction.cc | 189 - .../biasing/B04/src/B04PhysicsList.cc | 633 - examples/extended/biasing/B05/GNUmakefile | 18 - examples/extended/biasing/B05/exampleB05.cc | 94 - examples/extended/biasing/B05/exampleB05.out | 391 - examples/extended/biasing/B05/init.mac | 5 - .../B05/src/B05DetectorConstruction.cc | 242 - .../biasing/B05/src/B05PhysicsList.cc | 633 - examples/extended/biasing/B06/exampleB06.cc | 99 - examples/extended/biasing/B06/exampleB06.out | 439 - .../B06/src/B06DetectorConstruction.cc | 211 - .../src/B06ImportanceDetectorConstruction.cc | 189 - .../biasing/B06/src/B06PhysicsList.cc | 633 - .../biasing/B06/src/B06ScorePrinter.cc | 140 - .../extended/biasing/B06/src/B06Scorer.cc | 110 - examples/extended/biasing/B07/exampleB07.cc | 101 - examples/extended/biasing/B07/exampleB07.out | 721 - .../B07/src/B07DetectorConstruction.cc | 210 - .../src/B07ImportanceDetectorConstruction.cc | 189 - .../biasing/B07/src/B07PhysicsList.cc | 366 - .../extended/biasing/B08/B08ScoreResults.txt | 44 - examples/extended/biasing/B08/GNUmakefile | 18 - examples/extended/biasing/B08/exampleB08.cc | 178 - examples/extended/biasing/B08/exampleB08.out | 391 - .../extended/biasing/B08/include/B08Scorer.hh | 53 - examples/extended/biasing/B08/init.mac | 69 - .../B08/src/B08DetectorConstruction.cc | 171 - .../src/B08ImportanceDetectorConstruction.cc | 168 - .../biasing/B08/src/B08ImportanceMessenger.cc | 118 - .../biasing/B08/src/B08MainMessenger.cc | 83 - .../biasing/B08/src/B08PhysicsList.cc | 633 - .../B08/src/B08PrimaryGeneratorAction.cc | 55 - .../biasing/B08/src/B08ScorePrinter.cc | 204 - .../extended/biasing/B08/src/B08Scorer.cc | 99 - examples/extended/biasing/GNUmakefile | 4 +- examples/extended/biasing/History | 35 +- examples/extended/biasing/README | 197 +- .../electromagnetic/TestEm1/GNUmakefile | 6 +- .../extended/electromagnetic/TestEm1/History | 13 +- .../extended/electromagnetic/TestEm1/README | 28 +- .../electromagnetic/TestEm1/TestEm1.cc | 2 +- .../electromagnetic/TestEm1/TestEm1.in | 6 +- .../electromagnetic/TestEm1/TestEm1.out | 21 +- .../electromagnetic/TestEm1/geant3/run10.dat | 14 + .../TestEm1/geant3/src/uglast.F | 4 +- .../include/Em1DetectorConstruction.hh | 2 +- .../TestEm1/include/Em1DetectorMessenger.hh | 6 +- .../TestEm1/include/Em1EventAction.hh | 2 +- .../include/Em1EventActionMessenger.hh | 2 +- .../TestEm1/include/Em1PhysicsList.hh | 2 +- .../include/Em1PhysicsListMessenger.hh | 2 +- .../include/Em1PrimaryGeneratorAction.hh | 2 +- .../include/Em1PrimaryGeneratorMessenger.hh | 2 +- .../TestEm1/include/Em1RunAction.hh | 12 +- .../TestEm1/include/Em1SteppingAction.hh | 2 +- .../TestEm1/include/Em1SteppingVerbose.hh | 2 +- .../TestEm1/include/Em1TrackingAction.hh | 2 +- .../TestEm1/include/Em1VisManager.hh | 2 +- .../TestEm1/include/ProcessesCount.hh | 2 +- .../extended/electromagnetic/TestEm1/phot.mac | 12 +- .../electromagnetic/TestEm1/run01.mac | 6 +- .../electromagnetic/TestEm1/run02.mac | 6 +- .../electromagnetic/TestEm1/run03.mac | 6 +- .../electromagnetic/TestEm1/run04.mac | 6 +- .../electromagnetic/TestEm1/run05.mac | 6 +- .../electromagnetic/TestEm1/run06.mac | 6 +- .../electromagnetic/TestEm1/run07.mac | 6 +- .../electromagnetic/TestEm1/run08.mac | 6 +- .../electromagnetic/TestEm1/run09.mac | 8 +- .../electromagnetic/TestEm1/run10.mac | 17 + .../electromagnetic/TestEm1/run11.mac | 6 +- .../TestEm1/src/Em1DetectorConstruction.cc | 2 +- .../TestEm1/src/Em1DetectorMessenger.cc | 26 +- .../TestEm1/src/Em1EventAction.cc | 2 +- .../TestEm1/src/Em1EventActionMessenger.cc | 12 +- .../TestEm1/src/Em1PhysicsList.cc | 2 +- .../TestEm1/src/Em1PhysicsListMessenger.cc | 20 +- .../TestEm1/src/Em1PrimaryGeneratorAction.cc | 2 +- .../src/Em1PrimaryGeneratorMessenger.cc | 12 +- .../TestEm1/src/Em1RunAction.cc | 44 +- .../TestEm1/src/Em1SteppingAction.cc | 2 +- .../TestEm1/src/Em1SteppingVerbose.cc | 2 +- .../TestEm1/src/Em1TrackingAction.cc | 2 +- .../TestEm1/src/Em1VisManager.cc | 8 +- .../extended/electromagnetic/TestEm1/vis.mac | 2 +- .../electromagnetic/TestEm10/TestEm10.cc | 2 +- .../TestEm10/TestEm10.large_N.out | 2 +- .../electromagnetic/TestEm10/TestEm10.out | 25 +- .../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 +- .../TestEm10/include/Em10VisManager.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 | 34 +- .../TestEm10/src/Em10EventAction.cc | 2 +- .../TestEm10/src/Em10EventActionMessenger.cc | 8 +- .../TestEm10/src/Em10PhysicsList.cc | 2 +- .../TestEm10/src/Em10PhysicsListMessenger.cc | 14 +- .../src/Em10PrimaryGeneratorAction.cc | 2 +- .../src/Em10PrimaryGeneratorMessenger.cc | 6 +- .../TestEm10/src/Em10RunAction.cc | 2 +- .../TestEm10/src/Em10RunMessenger.cc | 8 +- .../TestEm10/src/Em10StepCut.cc | 2 +- .../TestEm10/src/Em10SteppingAction.cc | 2 +- .../TestEm10/src/Em10SteppingMessenger.cc | 2 +- .../TestEm10/src/Em10SteppingVerbose.cc | 2 +- .../TestEm10/src/Em10VisManager.cc | 8 +- .../electromagnetic/TestEm2/GNUmakefile | 6 +- .../extended/electromagnetic/TestEm2/History | 19 +- .../extended/electromagnetic/TestEm2/README | 62 +- .../electromagnetic/TestEm2/TestEm2.cc | 2 +- .../electromagnetic/TestEm2/TestEm2.in | 21 +- .../electromagnetic/TestEm2/TestEm2.model.in | 32 + .../electromagnetic/TestEm2/TestEm2.model.out | 252 + .../electromagnetic/TestEm2/TestEm2.out | 66 +- .../include/Em2DetectorConstruction.hh | 2 +- .../TestEm2/include/Em2DetectorMessenger.hh | 6 +- .../TestEm2/include/Em2EventAction.hh | 2 +- .../include/Em2EventActionMessenger.hh | 2 +- .../TestEm2/include/Em2PhysListEmModel.hh | 64 + .../TestEm2/include/Em2PhysListEmStandard.hh | 64 + .../TestEm2/include/Em2PhysListGeneral.hh | 66 + .../TestEm2/include/Em2PhysListParticles.hh} | 57 +- .../TestEm2/include/Em2PhysicsList.hh | 37 +- .../include/Em2PhysicsListMessenger.hh | 8 +- .../include/Em2PrimaryGeneratorAction.hh | 2 +- .../TestEm2/include/Em2RunAction.hh | 13 +- .../TestEm2/include/Em2SteppingAction.hh | 2 +- .../TestEm2/include/Em2SteppingVerbose.hh | 2 +- .../TestEm2/include/Em2TrackingAction.hh | 2 +- .../TestEm2/include/Em2VisManager.hh | 2 +- .../electromagnetic/TestEm2/run01.mac | 13 +- .../electromagnetic/TestEm2/run01.out | 366 + .../electromagnetic/TestEm2/run02.mac | 17 +- .../electromagnetic/TestEm2/run03.mac | 17 +- .../electromagnetic/TestEm2/run04.mac | 17 +- .../TestEm2/src/Em2DetectorConstruction.cc | 15 +- .../TestEm2/src/Em2DetectorMessenger.cc | 32 +- .../TestEm2/src/Em2EventAction.cc | 2 +- .../TestEm2/src/Em2EventActionMessenger.cc | 14 +- .../TestEm2/src/Em2PhysListEmModel.cc | 116 + .../TestEm2/src/Em2PhysListEmStandard.cc | 111 + .../TestEm2/src/Em2PhysListGeneral.cc | 71 + .../TestEm2/src/Em2PhysListParticles.cc | 141 + .../TestEm2/src/Em2PhysicsList.cc | 252 +- .../TestEm2/src/Em2PhysicsListMessenger.cc | 46 +- .../TestEm2/src/Em2PrimaryGeneratorAction.cc | 8 +- .../TestEm2/src/Em2RunAction.cc | 68 +- .../TestEm2/src/Em2SteppingAction.cc | 2 +- .../TestEm2/src/Em2SteppingVerbose.cc | 2 +- .../TestEm2/src/Em2TrackingAction.cc | 2 +- .../TestEm2/src/Em2VisManager.cc | 8 +- .../extended/electromagnetic/TestEm2/vis.mac | 4 +- .../electromagnetic/TestEm3/GNUmakefile | 6 +- .../extended/electromagnetic/TestEm3/History | 11 +- .../extended/electromagnetic/TestEm3/README | 27 +- .../electromagnetic/TestEm3/TestEm3.cc | 2 +- .../electromagnetic/TestEm3/TestEm3.in | 4 +- .../electromagnetic/TestEm3/TestEm3.out | 29 +- .../electromagnetic/TestEm3/exo3q1.mac | 18 +- .../electromagnetic/TestEm3/exo3q2.mac | 18 +- .../electromagnetic/TestEm3/exo3q3.mac | 24 +- .../electromagnetic/TestEm3/exo4q1.mac | 16 +- .../electromagnetic/TestEm3/exo4q3.mac | 14 +- .../electromagnetic/TestEm3/exo5q1.mac | 14 +- .../electromagnetic/TestEm3/exo5q2.mac | 16 +- .../electromagnetic/TestEm3/exo6q1.mac | 16 +- .../electromagnetic/TestEm3/exo6q2.mac | 14 +- .../TestEm3/include/Em3CalorHit.hh | 2 +- .../TestEm3/include/Em3CalorimeterSD.hh | 2 +- .../include/Em3DetectorConstruction.hh | 2 +- .../TestEm3/include/Em3DetectorMessenger.hh | 6 +- .../TestEm3/include/Em3EventAction.hh | 2 +- .../include/Em3EventActionMessenger.hh | 2 +- .../TestEm3/include/Em3PhysicsList.hh | 2 +- .../include/Em3PhysicsListMessenger.hh | 2 +- .../include/Em3PrimaryGeneratorAction.hh | 2 +- .../include/Em3PrimaryGeneratorMessenger.hh | 2 +- .../TestEm3/include/Em3RunAction.hh | 14 +- .../TestEm3/include/Em3RunActionMessenger.hh | 2 +- .../TestEm3/include/Em3SteppingAction.hh | 2 +- .../TestEm3/include/Em3SteppingVerbose.hh | 2 +- .../TestEm3/include/Em3VisManager.hh | 2 +- .../electromagnetic/TestEm3/run02.mac | 16 +- .../electromagnetic/TestEm3/run03.mac | 18 +- .../electromagnetic/TestEm3/run04.mac | 20 +- .../electromagnetic/TestEm3/run05.mac | 22 +- .../electromagnetic/TestEm3/run06.mac | 24 +- .../electromagnetic/TestEm3/run07.mac | 18 +- .../electromagnetic/TestEm3/run08.mac | 29 + .../electromagnetic/TestEm3/run12.draw | 16 +- .../electromagnetic/TestEm3/run15.mac | 22 +- .../electromagnetic/TestEm3/run16.mac | 25 +- .../TestEm3/src/Em3CalorHit.cc | 2 +- .../TestEm3/src/Em3CalorimeterSD.cc | 2 +- .../TestEm3/src/Em3DetectorConstruction.cc | 12 +- .../TestEm3/src/Em3DetectorMessenger.cc | 38 +- .../TestEm3/src/Em3EventAction.cc | 2 +- .../TestEm3/src/Em3EventActionMessenger.cc | 12 +- .../TestEm3/src/Em3PhysicsList.cc | 5 +- .../TestEm3/src/Em3PhysicsListMessenger.cc | 16 +- .../TestEm3/src/Em3PrimaryGeneratorAction.cc | 2 +- .../src/Em3PrimaryGeneratorMessenger.cc | 12 +- .../TestEm3/src/Em3RunAction.cc | 52 +- .../TestEm3/src/Em3RunActionMessenger.cc | 8 +- .../TestEm3/src/Em3SteppingAction.cc | 2 +- .../TestEm3/src/Em3SteppingVerbose.cc | 2 +- .../TestEm3/src/Em3VisManager.cc | 8 +- .../extended/electromagnetic/TestEm3/vis.mac | 2 +- .../electromagnetic/TestEm4/GNUmakefile | 6 +- .../extended/electromagnetic/TestEm4/History | 5 +- .../extended/electromagnetic/TestEm4/README | 27 +- .../electromagnetic/TestEm4/TestEm4.cc | 2 +- .../electromagnetic/TestEm4/TestEm4.in | 4 +- .../electromagnetic/TestEm4/TestEm4.out | 11 +- .../include/Em4DetectorConstruction.hh | 2 +- .../TestEm4/include/Em4EventAction.hh | 2 +- .../include/Em4EventActionMessenger.hh | 8 +- .../TestEm4/include/Em4PhysicsList.hh | 2 +- .../include/Em4PrimaryGeneratorAction.hh | 2 +- .../TestEm4/include/Em4RunAction.hh | 12 +- .../TestEm4/include/Em4SteppingAction.hh | 2 +- .../TestEm4/include/Em4SteppingVerbose.hh | 2 +- .../TestEm4/include/Em4VisManager.hh | 2 +- .../electromagnetic/TestEm4/run01.mac | 4 +- .../TestEm4/src/Em4DetectorConstruction.cc | 2 +- .../TestEm4/src/Em4EventAction.cc | 2 +- .../TestEm4/src/Em4EventActionMessenger.cc | 21 +- .../TestEm4/src/Em4PhysicsList.cc | 2 +- .../TestEm4/src/Em4PrimaryGeneratorAction.cc | 2 +- .../TestEm4/src/Em4RunAction.cc | 26 +- .../TestEm4/src/Em4SteppingAction.cc | 2 +- .../TestEm4/src/Em4SteppingVerbose.cc | 2 +- .../TestEm4/src/Em4VisManager.cc | 8 +- .../extended/electromagnetic/TestEm4/vis.mac | 2 +- .../electromagnetic/TestEm5/GNUmakefile | 6 +- .../extended/electromagnetic/TestEm5/History | 9 +- .../extended/electromagnetic/TestEm5/README | 28 +- .../electromagnetic/TestEm5/TestEm5.cc | 2 +- .../electromagnetic/TestEm5/TestEm5.out | 21 +- .../TestEm5/include/Em5CalorHit.hh | 2 +- .../TestEm5/include/Em5CalorimeterSD.hh | 2 +- .../include/Em5DetectorConstruction.hh | 2 +- .../TestEm5/include/Em5DetectorMessenger.hh | 2 +- .../TestEm5/include/Em5EventAction.hh | 2 +- .../include/Em5EventActionMessenger.hh | 2 +- .../TestEm5/include/Em5PhysicsList.hh | 2 +- .../include/Em5PhysicsListMessenger.hh | 2 +- .../include/Em5PrimaryGeneratorAction.hh | 2 +- .../include/Em5PrimaryGeneratorMessenger.hh | 2 +- .../TestEm5/include/Em5RunAction.hh | 12 +- .../TestEm5/include/Em5RunMessenger.hh | 2 +- .../TestEm5/include/Em5StepCut.hh | 2 +- .../TestEm5/include/Em5SteppingAction.hh | 2 +- .../TestEm5/include/Em5SteppingMessenger.hh | 2 +- .../TestEm5/include/Em5SteppingVerbose.hh | 2 +- .../TestEm5/include/Em5VisManager.hh | 2 +- .../TestEm5/src/Em5CalorHit.cc | 2 +- .../TestEm5/src/Em5CalorimeterSD.cc | 2 +- .../TestEm5/src/Em5DetectorConstruction.cc | 2 +- .../TestEm5/src/Em5DetectorMessenger.cc | 22 +- .../TestEm5/src/Em5EventAction.cc | 2 +- .../TestEm5/src/Em5EventActionMessenger.cc | 8 +- .../TestEm5/src/Em5PhysicsList.cc | 6 +- .../TestEm5/src/Em5PhysicsListMessenger.cc | 12 +- .../TestEm5/src/Em5PrimaryGeneratorAction.cc | 2 +- .../src/Em5PrimaryGeneratorMessenger.cc | 8 +- .../TestEm5/src/Em5RunAction.cc | 47 +- .../TestEm5/src/Em5RunMessenger.cc | 2 +- .../TestEm5/src/Em5SteppingAction.cc | 2 +- .../TestEm5/src/Em5SteppingMessenger.cc | 2 +- .../TestEm5/src/Em5SteppingVerbose.cc | 2 +- .../TestEm5/src/Em5VisManager.cc | 8 +- .../electromagnetic/TestEm6/GNUmakefile | 6 +- .../extended/electromagnetic/TestEm6/History | 6 +- .../extended/electromagnetic/TestEm6/README | 28 +- .../electromagnetic/TestEm6/TestEm6.cc | 11 +- .../electromagnetic/TestEm6/TestEm6.in | 8 +- .../electromagnetic/TestEm6/TestEm6.out | 238 + .../TestEm6/include/DetectorConstruction.hh | 2 +- .../TestEm6/include/DetectorMessenger.hh | 6 +- .../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 | 12 +- .../TestEm6/include/SteppingAction.hh | 2 +- .../TestEm6/include/SteppingVerbose.hh | 2 +- .../TestEm6/include/VisManager.hh | 2 +- .../electromagnetic/TestEm6/run02.mac | 10 +- .../TestEm6/src/DetectorConstruction.cc | 2 +- .../TestEm6/src/DetectorMessenger.cc | 30 +- .../TestEm6/src/EventAction.cc | 2 +- .../TestEm6/src/EventActionMessenger.cc | 12 +- .../TestEm6/src/PhysicsList.cc | 2 +- .../TestEm6/src/PhysicsListMessenger.cc | 8 +- .../TestEm6/src/PrimaryGeneratorAction.cc | 2 +- .../TestEm6/src/PrimaryGeneratorMessenger.cc | 8 +- .../electromagnetic/TestEm6/src/RunAction.cc | 36 +- .../TestEm6/src/SteppingAction.cc | 2 +- .../TestEm6/src/SteppingVerbose.cc | 2 +- .../electromagnetic/TestEm6/src/VisManager.cc | 8 +- .../extended/electromagnetic/TestEm6/vis.mac | 6 +- .../electromagnetic/TestEm8/TestEm8.cc | 2 +- .../electromagnetic/TestEm8/TestEm8.out | 37 +- .../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 +- .../TestEm8/include/Em8PhysicsList.hh | 2 +- .../include/Em8PhysicsListMessenger.hh | 2 +- .../include/Em8PrimaryGeneratorAction.hh | 2 +- .../include/Em8PrimaryGeneratorMessenger.hh | 2 +- .../TestEm8/include/Em8RunAction.hh | 2 +- .../TestEm8/include/Em8RunMessenger.hh | 2 +- .../TestEm8/include/Em8StepCut.hh | 2 +- .../TestEm8/include/Em8SteppingAction.hh | 2 +- .../TestEm8/include/Em8SteppingMessenger.hh | 2 +- .../TestEm8/include/Em8SteppingVerbose.hh | 2 +- .../TestEm8/include/Em8VisManager.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 | 22 +- .../TestEm8/src/Em8EventAction.cc | 2 +- .../TestEm8/src/Em8EventActionMessenger.cc | 8 +- .../TestEm8/src/Em8PhysicsList.cc | 2 +- .../TestEm8/src/Em8PhysicsListMessenger.cc | 14 +- .../TestEm8/src/Em8PrimaryGeneratorAction.cc | 2 +- .../src/Em8PrimaryGeneratorMessenger.cc | 6 +- .../TestEm8/src/Em8RunAction.cc | 2 +- .../TestEm8/src/Em8RunMessenger.cc | 8 +- .../electromagnetic/TestEm8/src/Em8StepCut.cc | 2 +- .../TestEm8/src/Em8SteppingAction.cc | 2 +- .../TestEm8/src/Em8SteppingMessenger.cc | 2 +- .../TestEm8/src/Em8SteppingVerbose.cc | 2 +- .../TestEm8/src/Em8VisManager.cc | 8 +- .../HepMC/HepMCEx01-clhep/GNUmakefile | 48 + .../HepMC/HepMCEx01-clhep/History | 102 + .../HepMC/HepMCEx01-clhep/README | 51 + .../HepMC/HepMCEx01-clhep/data/GNUmakefile | 20 + .../HepMCEx01-clhep/data/example_MyPythia.cc | 94 + .../HepMCEx01-clhep/data/example_MyPythia.dat | 5901 ++++ .../HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc | 110 + .../HepMC/HepMCEx01-clhep/hepmc_ascii.in | 5 + .../HepMC/HepMCEx01-clhep/hepmc_ascii.out | 2073 ++ .../HepMC/HepMCEx01-clhep/hepmc_pygen.in | 7 + .../HepMC/HepMCEx01-clhep/hepmc_pygen.out | 224 + .../include/ExN04CalorimeterHit.hh | 105 + .../ExN04CalorimeterParametrisation.hh | 53 + .../include/ExN04CalorimeterROGeometry.hh | 42 + .../include/ExN04CalorimeterSD.hh} | 34 +- .../include/ExN04DetectorConstruction.hh} | 16 +- .../include/ExN04DetectorParameterDef.hh | 69 + .../HepMCEx01-clhep/include/ExN04DummySD.hh} | 39 +- .../HepMCEx01-clhep/include/ExN04EMPhysics.hh | 93 + .../include/ExN04EventAction.hh} | 19 +- .../HepMCEx01-clhep/include/ExN04Field.hh} | 22 +- .../include/ExN04GeneralPhysics.hh | 77 + .../include/ExN04HadronPhysics.hh | 337 + .../include/ExN04IonPhysics.hh | 111 + .../HepMCEx01-clhep/include/ExN04MuonHit.hh} | 41 +- .../include/ExN04MuonPhysics.hh | 93 + .../HepMCEx01-clhep/include/ExN04MuonSD.hh} | 23 +- .../include/ExN04PhysicsList.hh | 31 +- .../include/ExN04PrimaryGeneratorAction.hh | 94 + .../include/ExN04PrimaryGeneratorMessenger.hh | 60 + .../include/ExN04RunAction.hh} | 37 +- .../include/ExN04StackingAction.hh | 74 + .../include/ExN04StackingActionMessenger.hh | 57 + .../include/ExN04SteppingAction.hh | 40 + .../include/ExN04SteppingVerbose.hh | 46 +- .../include/ExN04TrackerHit.hh} | 57 +- .../include/ExN04TrackerParametrisation.hh} | 40 +- .../include/ExN04TrackerSD.hh} | 40 +- .../include/ExN04TrackingAction.hh | 40 + .../include/ExN04VisManager.hh | 72 + .../include/H01PythiaInterface.hh | 110 + .../include/H01PythiaMessenger.hh | 65 + .../HepMC/HepMCEx01-clhep/pyh4mu.mac | 47 + .../HepMC/HepMCEx01-clhep/pyset.mac | 4 + .../src/ExN04CalorimeterHit.cc | 89 + .../src/ExN04CalorimeterParametrisation.cc} | 45 +- .../src/ExN04CalorimeterROGeometry.cc | 109 + .../HepMCEx01-clhep/src/ExN04CalorimeterSD.cc | 115 + .../src/ExN04DetectorConstruction.cc | 262 + .../src/ExN04DetectorParameterDef.icc | 76 + .../HepMCEx01-clhep/src/ExN04EMPhysics.cc | 111 + .../HepMCEx01-clhep/src/ExN04EventAction.cc | 122 + .../HepMC/HepMCEx01-clhep/src/ExN04Field.cc | 32 +- .../src/ExN04GeneralPhysics.cc | 73 + .../HepMCEx01-clhep/src/ExN04HadronPhysics.cc | 431 + .../HepMCEx01-clhep/src/ExN04IonPhysics.cc | 140 + .../HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc | 75 + .../HepMCEx01-clhep/src/ExN04MuonPhysics.cc | 128 + .../HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc} | 97 +- .../HepMCEx01-clhep/src/ExN04PhysicsList.cc | 86 + .../src/ExN04PrimaryGeneratorAction.cc | 71 + .../src/ExN04PrimaryGeneratorMessenger.cc | 94 + .../HepMCEx01-clhep/src/ExN04RunAction.cc | 76 + .../src/ExN04StackingAction.cc | 203 + .../src/ExN04StackingActionMessenger.cc | 93 + .../src/ExN04SteppingAction.cc | 70 + .../src/ExN04SteppingVerbose.cc | 176 + .../HepMCEx01-clhep/src/ExN04TrackerHit.cc | 75 + .../src/ExN04TrackerParametrisation.cc} | 43 +- .../HepMCEx01-clhep/src/ExN04TrackerSD.cc | 77 + .../src/ExN04TrackingAction.cc | 38 + .../HepMCEx01-clhep/src/ExN04VisManager.cc | 155 + .../HepMCEx01-clhep/src/H01PythiaInterface.cc | 188 + .../HepMCEx01-clhep/src/H01PythiaMessenger.cc | 212 + .../HepMC/HepMCEx01-clhep/vis.mac | 31 + .../eventgenerator/HepMC/HepMCEx01/History | 7 +- .../HepMC/HepMCEx01/external/initpydata.f | 21 + .../HepMC/HepMCEx01/hepmcEx01.cc | 33 +- .../HepMC/HepMCEx01/hepmc_ascii.out | 188 +- .../HepMC/HepMCEx01/hepmc_pygen.out | 75 +- .../HepMC/HepMCEx01/include/ExN04EMPhysics.hh | 4 +- .../HepMCEx01/include/ExN04GeneralPhysics.hh | 4 +- .../HepMCEx01/include/ExN04HadronPhysics.hh | 42 +- .../HepMCEx01/include/ExN04IonPhysics.hh | 4 +- .../HepMCEx01/include/ExN04MuonPhysics.hh | 4 +- .../include/ExN04PrimaryGeneratorAction.hh | 4 +- .../HepMC/HepMCEx01/include/ExN04RunAction.hh | 58 + .../HepMCEx01/include/ExN04SteppingVerbose.hh | 57 + .../HepMCEx01/include/ExN04VisManager.hh | 72 + .../include/HepMCG4PythiaInterface.hh | 4 +- .../src/ExN04DetectorParameterDef.icc | 8 +- .../HepMC/HepMCEx01/src/ExN04EMPhysics.cc | 4 +- .../HepMC/HepMCEx01/src/ExN04EventAction.cc | 23 +- .../HepMCEx01/src/ExN04GeneralPhysics.cc | 4 +- .../HepMC/HepMCEx01/src/ExN04HadronPhysics.cc | 31 +- .../HepMC/HepMCEx01/src/ExN04IonPhysics.cc | 4 +- .../HepMC/HepMCEx01/src/ExN04MuonPhysics.cc | 4 +- .../HepMC/HepMCEx01/src/ExN04PhysicsList.cc | 4 +- .../HepMC/HepMCEx01/src/ExN04RunAction.cc | 76 + .../HepMCEx01/src/ExN04SteppingVerbose.cc | 176 + .../HepMC/HepMCEx01/src/ExN04VisManager.cc | 155 + .../HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc | 6 +- .../eventgenerator/HepMC/HepMCEx01/vis.mac | 31 + .../HepMC/HepMCEx02-clhep/GNUmakefile | 48 + .../HepMC/HepMCEx02-clhep/History | 26 + .../HepMC/HepMCEx02-clhep/README | 42 + .../HepMC/HepMCEx02-clhep/data/GNUmakefile | 20 + .../HepMCEx02-clhep/data/example_MyPythia.cc | 94 + .../HepMCEx02-clhep/data/example_MyPythia.dat | 5901 ++++ .../HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc} | 98 +- .../HepMC/HepMCEx02-clhep/hepmc_ascii.in | 5 + .../HepMC/HepMCEx02-clhep/hepmc_ascii.out | 2106 ++ .../HepMC/HepMCEx02-clhep/hepmc_pygen.in | 4 + .../HepMC/HepMCEx02-clhep/hepmc_pygen.out | 415 + .../include/H02DetectorConstruction.hh | 44 + .../HepMCEx02-clhep/include/H02EMPhysics.hh | 93 + .../include/H02EventAction.hh} | 37 +- .../HepMCEx02-clhep/include/H02Field.hh} | 31 +- .../include/H02GeneralPhysics.hh} | 66 +- .../include/H02HadronPhysics.hh | 337 + .../HepMCEx02-clhep/include/H02IonPhysics.hh | 111 + .../HepMCEx02-clhep/include/H02MuonHit.hh | 114 + .../HepMCEx02-clhep/include/H02MuonPhysics.hh | 93 + .../HepMCEx02-clhep/include/H02MuonSD.hh} | 55 +- .../HepMCEx02-clhep/include/H02PhysicsList.hh | 31 +- .../include/H02PrimaryGeneratorAction.hh | 93 + .../include/H02PrimaryGeneratorMessenger.hh} | 57 +- .../include/H02PythiaInterface.hh | 110 + .../include/H02PythiaMessenger.hh | 65 + .../include/H02SteppingAction.hh} | 26 +- .../HepMCEx02-clhep/include/H02VisManager.hh} | 30 +- .../HepMC/HepMCEx02-clhep/pyh4mu.mac | 47 + .../HepMC/HepMCEx02-clhep/pyset.mac | 4 + .../src/H02DetectorConstruction.cc | 259 + .../HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc | 111 + .../HepMCEx02-clhep/src/H02EventAction.cc | 81 + .../HepMC/HepMCEx02-clhep/src/H02Field.cc | 48 + .../HepMCEx02-clhep/src/H02GeneralPhysics.cc | 73 + .../HepMCEx02-clhep/src/H02HadronPhysics.cc | 431 + .../HepMCEx02-clhep/src/H02IonPhysics.cc | 140 + .../HepMC/HepMCEx02-clhep/src/H02MuonHit.cc | 125 + .../HepMCEx02-clhep/src/H02MuonPhysics.cc | 128 + .../HepMC/HepMCEx02-clhep/src/H02MuonSD.cc | 119 + .../HepMCEx02-clhep/src/H02PhysicsList.cc | 86 + .../src/H02PrimaryGeneratorAction.cc | 70 + .../src/H02PrimaryGeneratorMessenger.cc | 97 + .../HepMCEx02-clhep/src/H02PythiaInterface.cc | 188 + .../HepMCEx02-clhep/src/H02PythiaMessenger.cc | 212 + .../HepMCEx02-clhep/src/H02SteppingAction.cc | 72 + .../HepMCEx02-clhep/src/H02VisManager.cc | 170 + .../HepMC/HepMCEx02-clhep/vis.mac | 32 + .../eventgenerator/HepMC/HepMCEx02/History | 5 +- .../HepMC/HepMCEx02/external/initpydata.f | 21 + .../HepMC/HepMCEx02/hepmcEx02.cc | 2 +- .../HepMC/HepMCEx02/hepmc_ascii.out | 247 +- .../HepMC/HepMCEx02/hepmc_pygen.out | 307 +- .../HepMC/HepMCEx02/include/H02EMPhysics.hh | 9 +- .../HepMCEx02/include/H02GeneralPhysics.hh | 4 +- .../HepMCEx02/include/H02HadronPhysics.hh | 42 +- .../HepMC/HepMCEx02/include/H02IonPhysics.hh | 4 +- .../HepMC/HepMCEx02/include/H02MuonPhysics.hh | 4 +- .../HepMCEx02/include/HepMCG4AsciiReader.hh | 2 +- .../include/HepMCG4AsciiReaderMessenger.hh | 2 +- .../HepMCEx02/include/HepMCG4Interface.hh | 2 +- .../include/HepMCG4PythiaInterface.hh | 4 +- .../include/HepMCG4PythiaMessenger.hh | 2 +- .../HepMC/HepMCEx02/src/H02EMPhysics.cc | 4 +- .../HepMC/HepMCEx02/src/H02GeneralPhysics.cc | 4 +- .../HepMC/HepMCEx02/src/H02HadronPhysics.cc | 31 +- .../HepMC/HepMCEx02/src/H02IonPhysics.cc | 4 +- .../HepMC/HepMCEx02/src/H02MuonPhysics.cc | 4 +- .../HepMC/HepMCEx02/src/H02PhysicsList.cc | 4 +- .../HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc | 6 +- .../src/HepMCG4AsciiReaderMessenger.cc | 2 +- .../HepMC/HepMCEx02/src/HepMCG4Interface.cc | 2 +- .../HepMCEx02/src/HepMCG4PythiaInterface.cc | 2 +- .../HepMCEx02/src/HepMCG4PythiaMessenger.cc | 2 +- .../eventgenerator/HepMC/HepMCEx02/vis.mac | 32 + .../extended/eventgenerator/HepMC/History | 7 +- examples/extended/eventgenerator/HepMC/README | 36 +- examples/extended/field/field01/field01.cc | 2 +- examples/extended/field/field01/field01.out | 209 +- .../field/field01/include/F01CalorHit.hh | 2 +- .../field/field01/include/F01CalorimeterSD.hh | 2 +- .../include/F01DetectorConstruction.hh | 2 +- .../field01/include/F01DetectorMessenger.hh | 2 +- .../include/F01ElectroMagneticField.hh | 2 +- .../field/field01/include/F01EventAction.hh | 2 +- .../include/F01EventActionMessenger.hh | 2 +- .../field01/include/F01FieldMessenger.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 | 2 +- .../extended/field/field01/src/F01CalorHit.cc | 2 +- .../field/field01/src/F01CalorimeterSD.cc | 2 +- .../field01/src/F01DetectorConstruction.cc | 2 +- .../field/field01/src/F01DetectorMessenger.cc | 20 +- .../field01/src/F01ElectroMagneticField.cc | 2 +- .../field/field01/src/F01EventAction.cc | 2 +- .../field01/src/F01EventActionMessenger.cc | 8 +- .../field/field01/src/F01FieldMessenger.cc | 14 +- .../field/field01/src/F01PhysicsList.cc | 2 +- .../field01/src/F01PhysicsListMessenger.cc | 14 +- .../field01/src/F01PrimaryGeneratorAction.cc | 2 +- .../src/F01PrimaryGeneratorMessenger.cc | 6 +- .../field/field01/src/F01RunAction.cc | 2 +- .../field/field01/src/F01RunMessenger.cc | 8 +- .../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 | 8 +- examples/extended/field/field02/field02.cc | 2 +- examples/extended/field/field02/field02.out | 5676 ++-- .../field/field02/include/F02CalorHit.hh | 2 +- .../field/field02/include/F02CalorimeterSD.hh | 2 +- .../include/F02DetectorConstruction.hh | 2 +- .../field02/include/F02DetectorMessenger.hh | 2 +- .../include/F02ElectroMagneticField.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 | 2 +- .../extended/field/field02/src/F02CalorHit.cc | 2 +- .../field/field02/src/F02CalorimeterSD.cc | 2 +- .../field02/src/F02DetectorConstruction.cc | 2 +- .../field/field02/src/F02DetectorMessenger.cc | 20 +- .../field02/src/F02ElectroMagneticField.cc | 2 +- .../field/field02/src/F02EventAction.cc | 2 +- .../field02/src/F02EventActionMessenger.cc | 8 +- .../field/field02/src/F02FieldMessenger.cc | 14 +- .../field/field02/src/F02PhysicsList.cc | 2 +- .../field02/src/F02PhysicsListMessenger.cc | 14 +- .../field02/src/F02PrimaryGeneratorAction.cc | 2 +- .../src/F02PrimaryGeneratorMessenger.cc | 6 +- .../field/field02/src/F02RunAction.cc | 2 +- .../field/field02/src/F02RunMessenger.cc | 8 +- .../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 | 8 +- examples/extended/field/field03/field03.cc | 2 +- examples/extended/field/field03/field03.out | 1409 +- .../field/field03/include/F03CalorHit.hh | 2 +- .../field/field03/include/F03CalorimeterSD.hh | 2 +- .../include/F03DetectorConstruction.hh | 2 +- .../field03/include/F03DetectorMessenger.hh | 2 +- .../include/F03ElectroMagneticField.hh | 2 +- .../field/field03/include/F03EventAction.hh | 2 +- .../include/F03EventActionMessenger.hh | 2 +- .../field03/include/F03FieldMessenger.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 | 2 +- .../extended/field/field03/src/F03CalorHit.cc | 2 +- .../field/field03/src/F03CalorimeterSD.cc | 2 +- .../field03/src/F03DetectorConstruction.cc | 2 +- .../field/field03/src/F03DetectorMessenger.cc | 20 +- .../field03/src/F03ElectroMagneticField.cc | 2 +- .../field/field03/src/F03EventAction.cc | 2 +- .../field03/src/F03EventActionMessenger.cc | 8 +- .../field/field03/src/F03FieldMessenger.cc | 14 +- .../field/field03/src/F03PhysicsList.cc | 2 +- .../field03/src/F03PhysicsListMessenger.cc | 14 +- .../field03/src/F03PrimaryGeneratorAction.cc | 2 +- .../src/F03PrimaryGeneratorMessenger.cc | 6 +- .../field/field03/src/F03RunAction.cc | 2 +- .../field/field03/src/F03RunMessenger.cc | 8 +- .../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 | 8 +- .../extended/g3tog4/clGeometry/clGeometry.cc | 2 +- .../extended/g3tog4/clGeometry/clGeometry.out | 21 +- .../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 | 2 +- .../src/G3toG4DetectorConstruction.cc | 2 +- .../clGeometry/src/G3toG4EventAction.cc | 2 +- .../src/G3toG4EventActionMessenger.cc | 6 +- .../clGeometry/src/G3toG4PhysicsList.cc | 2 +- .../src/G3toG4PrimaryGeneratorAction.cc | 2 +- .../g3tog4/clGeometry/src/G3toG4RunAction.cc | 2 +- .../g3tog4/clGeometry/src/G3toG4VisManager.cc | 8 +- examples/extended/g3tog4/cltog4/cltog4.cc | 2 +- examples/extended/g3tog4/cltog4/cltog4.out | 10 +- .../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 | 2 +- .../cltog4/src/G3toG4DetectorConstruction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4EventAction.cc | 2 +- .../cltog4/src/G3toG4EventActionMessenger.cc | 6 +- .../g3tog4/cltog4/src/G3toG4PhysicsList.cc | 2 +- .../src/G3toG4PrimaryGeneratorAction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4RunAction.cc | 2 +- .../g3tog4/cltog4/src/G3toG4VisManager.cc | 8 +- examples/extended/gdml/N03gdml/NO3gogdml.cc | 2 +- examples/extended/gdml/N03gdml/exampleN03.out | 2 +- .../gdml/N03gdml/include/ExN03CalorHit.hh | 2 +- .../N03gdml/include/ExN03CalorimeterSD.hh | 2 +- .../include/ExN03DetectorConstruction.hh | 2 +- .../N03gdml/include/ExN03DetectorMessenger.hh | 2 +- .../gdml/N03gdml/include/ExN03EventAction.hh | 2 +- .../include/ExN03EventActionMessenger.hh | 2 +- .../gdml/N03gdml/include/ExN03PhysicsList.hh | 2 +- .../include/ExN03PrimaryGeneratorAction.hh | 2 +- .../include/ExN03PrimaryGeneratorMessenger.hh | 2 +- .../gdml/N03gdml/include/ExN03RunAction.hh | 2 +- .../N03gdml/include/ExN03SteppingAction.hh | 2 +- .../N03gdml/include/ExN03SteppingVerbose.hh | 2 +- .../gdml/N03gdml/include/ExN03VisManager.hh | 2 +- .../gdml/N03gdml/src/ExN03CalorHit.cc | 2 +- .../gdml/N03gdml/src/ExN03CalorimeterSD.cc | 2 +- .../N03gdml/src/ExN03DetectorConstruction.cc | 2 +- .../N03gdml/src/ExN03DetectorMessenger.cc | 26 +- .../gdml/N03gdml/src/ExN03EventAction.cc | 2 +- .../N03gdml/src/ExN03EventActionMessenger.cc | 8 +- .../gdml/N03gdml/src/ExN03PhysicsList.cc | 2 +- .../src/ExN03PrimaryGeneratorAction.cc | 2 +- .../src/ExN03PrimaryGeneratorMessenger.cc | 6 +- .../gdml/N03gdml/src/ExN03RunAction.cc | 2 +- .../gdml/N03gdml/src/ExN03SteppingAction.cc | 2 +- .../gdml/N03gdml/src/ExN03SteppingVerbose.cc | 2 +- .../gdml/N03gdml/src/ExN03VisManager.cc | 8 +- examples/extended/gdml/libgdml/libgdml.gmk | 7 +- .../management/include/GDMLDefineTable.hh | 2 +- .../include/GDMLExpressionEvaluator.hh | 2 +- .../management/include/GDMLLinkResolver.hh | 2 +- .../management/include/GDMLProcessor.hh | 10 +- .../management/src/GDMLExpressionEvaluator.cc | 2 +- .../management/src/GDMLLinkResolver.cc | 6 +- .../libgdml/management/src/GDMLProcessor.cc | 6 +- .../include/BooleanSolidTypeProcess.hh | 2 +- .../processes/include/MaterialTypeProcess.hh | 2 +- .../processes/include/QuantityTypeProcess.hh | 2 +- .../processes/include/ReferenceTypeProcess.hh | 2 +- .../include/SinglePlacementTypeProcess.hh | 2 +- .../processes/include/SolidTypeProcess.hh | 2 +- .../gdml/libgdml/processes/src/DProcess.cc | 2 +- .../gdml/libgdml/processes/src/DrefProcess.cc | 2 +- .../libgdml/processes/src/LibLoadProcesses.cc | 2 +- .../gdml/libgdml/processes/src/PProcess.cc | 2 +- .../gdml/libgdml/processes/src/PrefProcess.cc | 2 +- .../gdml/libgdml/processes/src/TProcess.cc | 2 +- .../gdml/libgdml/processes/src/TrefProcess.cc | 2 +- .../libgdml/processes/src/assemblyProcess.cc | 2 +- .../gdml/libgdml/processes/src/atomProcess.cc | 2 +- .../gdml/libgdml/processes/src/boxProces.cc | 2 +- .../libgdml/processes/src/childProcess.cc | 2 +- .../libgdml/processes/src/compositeProcess.cc | 2 +- .../gdml/libgdml/processes/src/coneProcess.cc | 2 +- .../libgdml/processes/src/constantProcess.cc | 2 +- .../libgdml/processes/src/defineProcess.cc | 2 +- .../libgdml/processes/src/elementProcess.cc | 2 +- .../processes/src/expressionProcess.cc | 2 +- .../libgdml/processes/src/firstProcess.cc | 2 +- .../libgdml/processes/src/fractionProcess.cc | 2 +- .../processes/src/intersectionProcess.cc | 2 +- .../libgdml/processes/src/isotopeProcess.cc | 2 +- .../libgdml/processes/src/materialProcess.cc | 2 +- .../processes/src/materialrefProcess.cc | 2 +- .../gdml/libgdml/processes/src/paraProcess.cc | 2 +- .../libgdml/processes/src/positionProcess.cc | 2 +- .../processes/src/positionrefProcess.cc | 2 +- .../libgdml/processes/src/quantityProcess.cc | 2 +- .../libgdml/processes/src/rotationProcess.cc | 2 +- .../processes/src/rotationrefProcess.cc | 2 +- .../libgdml/processes/src/secondProcess.cc | 2 +- .../libgdml/processes/src/setupProcess.cc | 2 +- .../libgdml/processes/src/solidrefProcess.cc | 2 +- .../libgdml/processes/src/sphereProcess.cc | 2 +- .../processes/src/subtractionProcess.cc | 2 +- .../gdml/libgdml/processes/src/trapProcess.cc | 2 +- .../gdml/libgdml/processes/src/trdProcess.cc | 2 +- .../gdml/libgdml/processes/src/tubeProcess.cc | 2 +- .../libgdml/processes/src/unionProcess.cc | 2 +- .../libgdml/processes/src/volumeProcess.cc | 2 +- .../libgdml/processes/src/volumerefProcess.cc | 2 +- .../libgdml/processes/src/worldProcess.cc | 2 +- .../saxana/include/ASCIIAttributeList.hh | 2 +- .../gdml/libgdml/saxana/include/Action.hh | 2 +- .../saxana/include/ActionProcessingState.hh | 2 +- .../saxana/include/ProcessingConfigurator.hh | 2 +- .../saxana/include/ProcessingContext.hh | 2 +- .../libgdml/saxana/include/ProcessingState.hh | 2 +- .../libgdml/saxana/include/RCObjectHandle.hh | 2 +- .../saxana/include/SAXComponentFactory.hh | 2 +- .../saxana/include/SAXComponentFactoryBase.hh | 2 +- .../include/SAXComponentFactoryTable.hh | 2 +- .../saxana/include/SAXComponentObject.hh | 2 +- .../saxana/include/SAXDocumentEvents.hh | 2 +- .../saxana/include/SAXElementEvents.hh | 2 +- .../libgdml/saxana/include/SAXErrorEvents.hh | 2 +- .../gdml/libgdml/saxana/include/SAXEvent.hh | 2 +- .../libgdml/saxana/include/SAXEventGun.hh | 2 +- .../gdml/libgdml/saxana/include/SAXEvents.hh | 2 +- .../gdml/libgdml/saxana/include/SAXObject.hh | 2 +- .../libgdml/saxana/include/SAXObjectBase.hh | 2 +- .../libgdml/saxana/include/SAXObjectHandle.hh | 2 +- .../saxana/include/SAXProcessingState.hh | 2 +- .../libgdml/saxana/include/SAXProcessor.hh | 2 +- .../libgdml/saxana/include/SAXStateProcess.hh | 2 +- .../libgdml/saxana/include/SAXSubscriber.hh | 2 +- .../saxana/include/SAXSubscriberPool.hh | 2 +- .../libgdml/saxana/include/StateProcessMap.hh | 2 +- .../gdml/libgdml/saxana/include/StateStack.hh | 2 +- .../gdml/libgdml/saxana/include/StatusCode.hh | 2 +- .../libgdml/saxana/src/SAXComponentFactory.cc | 2 +- .../saxana/src/SAXComponentFactoryTable.cc | 2 +- .../gdml/libgdml/saxana/src/SAXEventGun.cc | 2 +- .../gdml/libgdml/saxana/src/SAXProcessor.cc | 2 +- .../libgdml/saxana/src/SAXSubscriberPool.cc | 2 +- .../libgdml/saxana/src/StateProcessMap.cc | 2 +- .../schema/include/AssemblyVolumeType.hh | 2 +- .../gdml/libgdml/schema/include/AtomType.hh | 2 +- .../schema/include/BooleanSolidType.hh | 2 +- .../libgdml/schema/include/ConstantType.hh | 2 +- .../libgdml/schema/include/ContentGroup.hh | 2 +- .../gdml/libgdml/schema/include/DorDref.hh | 2 +- .../libgdml/schema/include/ExpressionType.hh | 2 +- .../include/IdentifiableConstantType.hh | 2 +- .../include/IdentifiableExpressionType.hh | 2 +- .../include/IdentifiableQuantityType.hh | 2 +- .../include/IdentifiableQuantityVectorType.hh | 8 +- .../include/IdentifiableThreeVectorType.hh | 2 +- .../schema/include/IdentifiableVolumeType.hh | 2 +- .../schema/include/MaterialAttributeGroup.hh | 2 +- .../schema/include/MaterialElementType.hh | 2 +- .../schema/include/MaterialIsotopeType.hh | 2 +- .../schema/include/MaterialMixtureType.hh | 2 +- .../schema/include/MaterialPropertiesGroup.hh | 2 +- .../libgdml/schema/include/MaterialType.hh | 2 +- .../gdml/libgdml/schema/include/PorPref.hh | 2 +- .../libgdml/schema/include/QuantityType.hh | 12 +- .../schema/include/QuantityVectorType.hh | 12 +- .../schema/include/ReferenceListType.hh | 2 +- .../libgdml/schema/include/ReferenceType.hh | 8 +- .../schema/include/SinglePlacementType.hh | 2 +- .../gdml/libgdml/schema/include/SolidType.hh | 2 +- .../libgdml/schema/include/TagorTagref.hh | 2 +- .../libgdml/schema/include/ThreeVectorType.hh | 16 +- .../gdml/libgdml/schema/include/TorTref.hh | 2 +- .../gdml/libgdml/schema/include/VolumeType.hh | 2 +- .../gdml/libgdml/schema/include/assembly.hh | 2 +- .../gdml/libgdml/schema/include/atom.hh | 2 +- .../schema/include/boolean_intersection.hh | 2 +- .../schema/include/boolean_subtraction.hh | 2 +- .../libgdml/schema/include/boolean_union.hh | 2 +- .../gdml/libgdml/schema/include/box.hh | 2 +- .../gdml/libgdml/schema/include/child.hh | 2 +- .../gdml/libgdml/schema/include/composite.hh | 2 +- .../gdml/libgdml/schema/include/cone.hh | 2 +- .../gdml/libgdml/schema/include/define.hh | 2 +- .../gdml/libgdml/schema/include/defineType.hh | 2 +- .../gdml/libgdml/schema/include/element.hh | 2 +- .../gdml/libgdml/schema/include/fraction.hh | 2 +- .../gdml/libgdml/schema/include/isotope.hh | 2 +- .../gdml/libgdml/schema/include/material.hh | 2 +- .../gdml/libgdml/schema/include/para.hh | 2 +- .../libgdml/schema/include/positionType.hh | 2 +- .../libgdml/schema/include/rotationType.hh | 2 +- .../gdml/libgdml/schema/include/setup.hh | 2 +- .../gdml/libgdml/schema/include/sphere.hh | 2 +- .../gdml/libgdml/schema/include/trap.hh | 2 +- .../gdml/libgdml/schema/include/trd.hh | 2 +- .../gdml/libgdml/schema/include/tube.hh | 2 +- .../gdml/libgdml/schema/include/volume.hh | 2 +- .../gdml/libgdml/schema/src/schema.cc | 2 +- .../include/BooleanSolidTypeSubscriber.hh | 2 +- .../subscribers/src/LibLoadSubscribers.cc | 2 +- .../subscribers/src/assemblySubscriber.cc | 2 +- .../libgdml/subscribers/src/boxSubscriber.cc | 2 +- .../libgdml/subscribers/src/coneSubscriber.cc | 2 +- .../subscribers/src/defineSubcriber.cc | 2 +- .../subscribers/src/elementSubscriber.cc | 2 +- .../subscribers/src/intersectionSubscriber.cc | 2 +- .../subscribers/src/isotopeSubscriber.cc | 2 +- .../subscribers/src/materialSubscriber.cc | 12 +- .../libgdml/subscribers/src/paraSubscriber.cc | 2 +- .../subscribers/src/setupSubscriber.cc | 2 +- .../subscribers/src/sphereSubscriber.cc | 2 +- .../subscribers/src/subtractionSubscriber.cc | 2 +- .../libgdml/subscribers/src/trapSubscriber.cc | 2 +- .../libgdml/subscribers/src/trdSubscriber.cc | 2 +- .../libgdml/subscribers/src/tubeSusbcriber.cc | 2 +- .../subscribers/src/unionSubscriber.cc | 2 +- .../subscribers/src/volumeSubscriber.cc | 7 +- examples/extended/gdml/sample/GNUmakefile | 20 +- examples/extended/gdml/sample/gogdml.cc | 6 +- .../include/gogdmlDetectorConstruction.hh | 2 +- .../gdml/sample/include/gogdmlPhysicsList.hh | 2 +- .../include/gogdmlPrimaryGeneratorAction.hh | 2 +- .../sample/src/gogdmlDetectorConstruction.cc | 6 +- .../gdml/sample/src/gogdmlPhysicsList.cc | 2 +- .../src/gogdmlPrimaryGeneratorAction.cc | 2 +- examples/extended/geometry/cad/GNUmakefile | 4 +- examples/extended/geometry/cad/History | 10 +- examples/extended/geometry/cad/cadex.cc | 2 +- .../cad/include/CadDetectorConstruction.hh | 2 +- .../cad/include/CadDetectorMessenger.hh | 2 +- .../geometry/cad/include/CadPhysicsList.hh | 2 +- .../cad/include/CadPrimaryGeneratorAction.hh | 2 +- .../geometry/cad/include/CadRunAction.hh | 2 +- .../geometry/cad/include/CadVisManager.hh | 2 +- .../geometry/cad/scripts/g4step_correct.pl | 10 +- .../cad/src/CadDetectorConstruction.cc | 2 +- .../geometry/cad/src/CadDetectorMessenger.cc | 8 +- .../geometry/cad/src/CadPhysicsList.cc | 2 +- .../cad/src/CadPrimaryGeneratorAction.cc | 2 +- .../extended/geometry/cad/src/CadRunAction.cc | 2 +- .../geometry/cad/src/CadVisManager.cc | 6 +- .../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/OlapVisManager.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 | 2 +- .../extended/geometry/olap/src/G4GeoNav.cc | 2 +- .../geometry/olap/src/OlapDetConstr.cc | 2 +- .../geometry/olap/src/OlapEventAction.cc | 2 +- .../geometry/olap/src/OlapGenerator.cc | 2 +- .../geometry/olap/src/OlapLogManager.cc | 2 +- .../extended/geometry/olap/src/OlapManager.cc | 2 +- .../geometry/olap/src/OlapManagerMessenger.cc | 28 +- .../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 | 2 +- .../geometry/olap/src/RandomDetector.cc | 2 +- .../geometry/olap/src/SolidAnalyser.cc | 2 +- examples/extended/parallel/ParN02/ParN02.cc | 2 +- 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 | 2 +- .../ParN02/include/ParExMarshaledHits.hh | 2 +- .../ParN02/include/ParMarshaledObj.hh | 2 +- .../parallel/ParN02/include/ParRandomState.hh | 2 +- .../parallel/ParN02/include/ParRunManager.hh | 2 +- .../src/ExN02ChamberParameterisation.cc | 2 +- .../ParN02/src/ExN02DetectorConstruction.cc | 2 +- .../ParN02/src/ExN02DetectorMessenger.cc | 10 +- .../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 | 8 +- .../ParN02/src/ParExN02MarshaledHits.cc | 2 +- .../parallel/ParN02/src/ParMarshaledObj.cc | 2 +- .../parallel/ParN02/src/ParRunManager.cc | 10 +- examples/extended/parallel/ParN04/ParN04.cc | 2 +- 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 +- .../ParN04/include/ParExMarshaledHits.hh | 2 +- .../ParN04/include/ParMarshaledObj.hh | 2 +- .../parallel/ParN04/include/ParRandomState.hh | 2 +- .../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 +- .../ParN04/src/ParExN04MarshaledHits.cc | 2 +- .../parallel/ParN04/src/ParMarshaledObj.cc | 2 +- .../parallel/ParN04/src/ParRunManager.cc | 10 +- examples/extended/persistency/History | 24 + .../persistency/PersEx01/G4PersEx01.cc | 135 + .../extended/persistency/PersEx01/GNUmakefile | 33 + .../PersEx01/HitsAnalyzer/GNUmakefile | 38 + .../PersEx01/HitsAnalyzer/HitsAnalyzer.cc | 224 + .../persistency/PersEx01/HitsAnalyzer/README | 14 + .../persistency/PersEx01/HitsAnalyzer/draw.C | 50 + .../persistency/PersEx01/HitsAnalyzer/run | 3 + examples/extended/persistency/PersEx01/README | 321 + .../extended/persistency/PersEx01/README.jp | 288 + .../PersEx01/include/Pers01CalorHit.hh | 99 + .../PersEx01/include/Pers01CalorimeterSD.hh | 67 + .../include/Pers01DetectorConstruction.hh | 158 + .../include/Pers01DetectorMessenger.hh | 70 +- .../PersEx01/include/Pers01EventAction.hh | 66 + .../include/Pers01EventActionMessenger.hh | 60 + .../PersEx01/include/Pers01PhysicsList.hh} | 57 +- .../include/Pers01PrimaryGeneratorAction.hh | 67 + .../Pers01PrimaryGeneratorMessenger.hh | 59 + .../PersEx01/include/Pers01RunAction.hh | 57 + .../PersEx01/include/Pers01SteppingAction.hh | 50 + .../PersEx01/include/Pers01SteppingVerbose.hh | 54 + .../PersEx01/include/Pers01VisManager.hh | 72 + .../PersEx01/rootio/Pers01CalorHit.rootio | 47 + examples/extended/persistency/PersEx01/run | 3 + .../extended/persistency/PersEx01/run.mac | 27 + .../PersEx01/src/Pers01CalorHit.cc | 84 + .../PersEx01/src/Pers01CalorimeterSD.cc | 139 + .../src/Pers01DetectorConstruction.cc | 473 + .../PersEx01/src/Pers01DetectorMessenger.cc | 143 + .../PersEx01/src/Pers01EventAction.cc | 153 + .../src/Pers01EventActionMessenger.cc | 79 + .../PersEx01/src/Pers01PhysicsList.cc | 316 + .../src/Pers01PrimaryGeneratorAction.cc | 95 + .../src/Pers01PrimaryGeneratorMessenger.cc | 69 + .../PersEx01/src/Pers01RunAction.cc | 72 + .../PersEx01/src/Pers01SteppingAction.cc | 52 + .../PersEx01/src/Pers01SteppingVerbose.cc | 177 + .../PersEx01/src/Pers01VisManager.cc | 153 + .../extended/persistency/PersEx01/vis.mac | 27 + .../persistency/PersistentEx01/GNUmakefile | 32 - .../persistency/PersistentEx01/History | 105 - .../PersistentEx01/PersistentEx01.in | 15 - .../PersistentEx01/PersistentEx01.out | 192 - .../PersistentEx01/PersistentEx01run | 48 - .../persistency/PersistentEx01/README | 265 - .../PersistentEx01/createTag/GNUmakefile | 59 - .../PersistentEx01/createTag/README | 35 - .../PersistentEx01/createTag/createTag.cpp | 80 - .../PersistentEx01/createTag/setup.csh | 2 - .../PersistentEx01/createTag/setup.sh | 2 - .../PersistentEx01/g4odbms_setup.csh | 61 - .../PersistentEx01/g4odbms_setup.sh | 52 - .../PersistentEx01/prerunPEx01.mac | 6 - .../PersistentEx01/readDB/GNUmakefile | 59 - .../persistency/PersistentEx01/readDB/README | 32 - .../PersistentEx01/readDB/readDB.cpp | 117 - .../PersistentEx01/readDB/setup.csh | 2 - .../PersistentEx01/readDB/setup.sh | 2 - .../PersistentEx01/readTag/GNUmakefile | 59 - .../persistency/PersistentEx01/readTag/README | 25 - .../PersistentEx01/readTag/readTag.cpp | 93 - .../PersistentEx01/readTag/setup.csh | 2 - .../PersistentEx01/readTag/setup.sh | 2 - .../PersistentEx01/setup_lhcxx.csh | 22 - .../persistency/PersistentEx01/setup_lhcxx.sh | 23 - .../src/PersEx01DetectorConstruction.cc | 140 - .../PersistentEx01/src/PersEx01PhysicsList.cc | 217 - .../PersistentEx01/src/PersEx01TrackerSD.cc | 90 - .../persistency/PersistentEx02/GNUmakefile | 32 - .../persistency/PersistentEx02/History | 53 - .../PersistentEx02/PersistentEx02.in | 15 - .../PersistentEx02/PersistentEx02.out | 824 - .../PersistentEx02/PersistentEx02run | 48 - .../persistency/PersistentEx02/README | 142 - .../include/PersEx02TrackerHitsCollection.ddl | 80 - .../PersistentEx02/prerunPEx02.mac | 6 - .../PersistentEx02/readDB/GNUmakefile | 63 - .../persistency/PersistentEx02/readDB/README | 18 - .../PersistentEx02/readDB/readDB.cpp | 125 - .../PersistentEx02/readDB/setup.csh | 2 - .../PersistentEx02/readDB/setup.sh | 2 - .../src/PersEx02DetectorConstruction.cc | 144 - .../PersistentEx02/src/PersEx02EventAction.cc | 101 - .../PersistentEx02/src/PersEx02PhysicsList.cc | 212 - .../PersistentEx02/src/PersEx02TrackerSD.cc | 115 - examples/extended/persistency/README | 11 + .../extended/persistency/rootio/GNUmakefile | 40 + examples/extended/persistency/rootio/README | 8 + .../persistency/rootio/config/G4PEXsetup.gmk | 32 + .../persistency/rootio/config/binmake.gmk | 235 + .../persistency/rootio/config/common.gmk | 158 + .../persistency/rootio/config/g4rootio.pl | 2449 ++ .../persistency/rootio/config/hepmctest.csh | 28 + .../persistency/rootio/config/rootdict.sh | 30 + .../persistency/rootio/config/rootio.gmk | 37 + .../include/G4DigitRootIO.hh} | 59 +- .../rootio/include/G4EventRootIO.hh | 83 + .../rootio/include/G4HepMCRootIO.hh | 78 +- .../persistency/rootio/include/G4HitRootIO.hh | 77 +- .../rootio/include/G4MCTruthRootIO.hh | 66 +- .../persistency/rootio/include/G4RootEvent.hh | 72 +- .../rootio/include/G4RootIOManager.hh | 106 + .../rootio/include/G4RootTransManager.hh | 131 + .../persistency/rootio/src/G4DigitRootIO.cc | 57 +- .../persistency/rootio/src/G4EventRootIO.cc | 66 +- .../persistency/rootio/src/G4HepMCRootIO.cc | 57 +- .../persistency/rootio/src/G4HitRootIO.cc | 125 + .../src/G4MCTruthRootIO.cc} | 42 +- .../persistency/rootio/src/G4RootEvent.cc | 46 +- .../persistency/rootio/src/G4RootIOManager.cc | 81 + .../rootio/src/G4RootTransManager.cc | 147 + .../extended/persistency/rootio/tools/README | 3 + .../persistency/rootio/tools/g4exmv.sh | 34 + .../persistency/rootio/tools/g4exsed.sh | 28 + .../persistency/rootio/tools/g4psed.sh | 51 + .../persistency/rootio/tools/mksed.pl | 9 + .../persistency/rootio/tools/rename.sh | 3 + .../extended/persistency/rootio/tools/sed.sh | 5 + .../persistency/rootio/tools/sedrootio.sh | 56 + .../persistency/rootio/tools/setup.csh | 13 + examples/novice/N01/GNUmakefile.light | 37 - examples/novice/N01/History | 5 +- examples/novice/N01/README | 4 +- examples/novice/N01/exampleN01.cc | 2 +- examples/novice/N01/exampleN01.out | 6 +- .../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/exampleN02.cc | 2 +- examples/novice/N02/exampleN02.large_N.out | 2 +- examples/novice/N02/exampleN02.out | 5273 ++- .../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 | 2 +- .../N02/src/ExN02ChamberParameterisation.cc | 2 +- .../N02/src/ExN02DetectorConstruction.cc | 2 +- .../novice/N02/src/ExN02DetectorMessenger.cc | 10 +- examples/novice/N02/src/ExN02EventAction.cc | 2 +- examples/novice/N02/src/ExN02MagneticField.cc | 2 +- examples/novice/N02/src/ExN02PhysicsList.cc | 2 +- .../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 | 2 +- examples/novice/N02/src/ExN02TrackerSD.cc | 2 +- examples/novice/N02/src/ExN02VisManager.cc | 8 +- examples/novice/N03/exampleN03.cc | 2 +- examples/novice/N03/exampleN03.out | 25 +- examples/novice/N03/include/ExN03CalorHit.hh | 2 +- .../novice/N03/include/ExN03CalorimeterSD.hh | 2 +- .../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 | 2 +- examples/novice/N03/src/ExN03CalorHit.cc | 2 +- examples/novice/N03/src/ExN03CalorimeterSD.cc | 2 +- .../N03/src/ExN03DetectorConstruction.cc | 2 +- .../novice/N03/src/ExN03DetectorMessenger.cc | 20 +- examples/novice/N03/src/ExN03EventAction.cc | 2 +- .../N03/src/ExN03EventActionMessenger.cc | 8 +- examples/novice/N03/src/ExN03PhysicsList.cc | 2 +- .../N03/src/ExN03PrimaryGeneratorAction.cc | 2 +- .../N03/src/ExN03PrimaryGeneratorMessenger.cc | 6 +- examples/novice/N03/src/ExN03RunAction.cc | 2 +- .../novice/N03/src/ExN03SteppingAction.cc | 2 +- .../novice/N03/src/ExN03SteppingVerbose.cc | 2 +- examples/novice/N03/src/ExN03VisManager.cc | 8 +- .../novice/N04/exampleN04.EMtest.large_N.out | 2 +- examples/novice/N04/exampleN04.EMtest.out | 37 +- examples/novice/N04/exampleN04.cc | 2 +- examples/novice/N04/exampleN04.out | 14 +- examples/novice/N04/include/ExN04EMPhysics.hh | 2 +- .../novice/N04/include/ExN04GeneralPhysics.hh | 2 +- .../novice/N04/include/ExN04HadronPhysics.hh | 2 +- .../novice/N04/include/ExN04IonPhysics.hh | 2 +- .../novice/N04/include/ExN04MuonPhysics.hh | 2 +- examples/novice/N04/include/ExN04RunAction.hh | 2 +- .../N04/include/ExN04SteppingVerbose.hh | 2 +- .../novice/N04/include/ExN04VisManager.hh | 2 +- examples/novice/N04/src/ExN04EMPhysics.cc | 2 +- .../novice/N04/src/ExN04GeneralPhysics.cc | 2 +- examples/novice/N04/src/ExN04HadronPhysics.cc | 2 +- examples/novice/N04/src/ExN04IonPhysics.cc | 2 +- examples/novice/N04/src/ExN04MuonPhysics.cc | 2 +- examples/novice/N04/src/ExN04PhysicsList.cc | 2 +- examples/novice/N04/src/ExN04RunAction.cc | 2 +- .../novice/N04/src/ExN04SteppingVerbose.cc | 2 +- examples/novice/N04/src/ExN04VisManager.cc | 2 +- examples/novice/N05/exampleN05.cc | 2 +- examples/novice/N05/exampleN05.out | 300 +- .../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 | 2 +- .../novice/N05/src/ExN05CalorimeterHit.cc | 2 +- examples/novice/N05/src/ExN05CalorimeterSD.cc | 2 +- .../N05/src/ExN05DetectorConstruction.cc | 2 +- .../novice/N05/src/ExN05DetectorMessenger.cc | 12 +- examples/novice/N05/src/ExN05EMShowerModel.cc | 2 +- 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 | 2 +- .../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 | 6 +- examples/novice/N06/History | 11 +- examples/novice/N06/README | 7 +- examples/novice/N06/exampleN06.cc | 8 +- examples/novice/N06/exampleN06.out | 27797 +++++++++++----- .../N06/include/ExN06StackingAction.hh} | 27 +- .../N06/src/ExN06DetectorConstruction.cc | 17 +- examples/novice/N06/src/ExN06PhysicsList.cc | 3 +- .../N06/src/ExN06StackingAction.cc} | 48 +- source/GNUmakefile | 46 +- source/digits+hits/History | 35 +- source/digits+hits/detector/GNUmakefile | 3 +- source/digits+hits/detector/History | 9 +- .../detector/include/G4CellScoreComposer.hh | 86 + .../detector/include/G4CellScoreValues.hh | 59 + .../detector/include/G4CellStoreScorer.hh} | 63 +- .../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 | 66 + .../detector/include/G4VReadOutGeometry.hh | 2 +- .../detector/include/G4VSensitiveDetector.hh | 2 +- .../detector/src/G4CellScoreComposer.cc | 114 + .../detector/src/G4CellStoreScorer.cc} | 80 +- source/digits+hits/detector/src/G4HCtable.cc | 2 +- .../digits+hits/detector/src/G4SDManager.cc | 6 +- .../digits+hits/detector/src/G4SDStructure.cc | 10 +- .../digits+hits/detector/src/G4SDmessenger.cc | 2 +- .../detector/src/G4SensitiveVolumeList.cc | 2 +- .../detector/src/G4TrackLogger.cc} | 57 +- .../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 | 2 +- .../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 | 10 +- source/digits+hits/hits/include/G4VHit.hh | 26 +- .../hits/include/G4VHitsCollection.hh | 13 +- .../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/GNUmakefile | 3 +- source/event/History | 43 +- source/event/include/G4CellScorer.hh | 83 + source/event/include/G4CellScorerStore.hh | 92 + .../include/G4ClassificationOfNewTrack.hh | 2 +- source/event/include/G4EvManMessenger.hh | 2 +- source/event/include/G4Event.hh | 13 +- source/event/include/G4EventManager.hh | 2 +- .../event/include/G4GeneralParticleSource.hh | 2 +- .../G4GeneralParticleSourceMessenger.hh | 2 +- source/event/include/G4HEPEvtInterface.hh | 2 +- source/event/include/G4HEPEvtParticle.hh | 2 +- source/event/include/G4HepMCAsciiReader.hh | 87 + .../include/G4HepMCAsciiReaderMessenger.hh | 56 + source/event/include/G4HepMCInterface.hh | 79 + source/event/include/G4ParticleGun.hh | 2 +- .../event/include/G4ParticleGunMessenger.hh | 2 +- source/event/include/G4PrimaryParticle.hh | 2 +- source/event/include/G4PrimaryTransformer.hh | 2 +- source/event/include/G4PrimaryVertex.hh | 2 +- .../include/G4ScoreTable.hh} | 104 +- source/event/include/G4Scorer.hh | 65 + source/event/include/G4StackManager.hh | 7 +- 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 +- source/event/include/eventgendefs.hh | 2 +- source/event/include/evmandefs.hh | 2 +- source/event/include/trajectoryControl.hh | 2 +- source/event/src/G4CellScorer.cc | 93 + source/event/src/G4CellScorerStore.cc | 98 + source/event/src/G4EvManMessenger.cc | 6 +- source/event/src/G4Event.cc | 8 +- source/event/src/G4EventManager.cc | 2 +- source/event/src/G4GeneralParticleSource.cc | 2 +- source/event/src/G4HEPEvtInterface.cc | 2 +- source/event/src/G4HEPEvtParticle.cc | 2 +- .../src/G4HepMCAsciiReader.cc} | 83 +- .../event/src/G4HepMCAsciiReaderMessenger.cc | 102 + source/event/src/G4HepMCInterface.cc | 145 + source/event/src/G4ParticleGun.cc | 2 +- source/event/src/G4ParticleGunMessenger.cc | 2 +- source/event/src/G4PrimaryParticle.cc | 25 +- source/event/src/G4PrimaryTransformer.cc | 8 +- source/event/src/G4PrimaryVertex.cc | 2 +- source/event/src/G4ScoreTable.cc | 186 + source/event/src/G4Scorer.cc | 54 + source/event/src/G4StackManager.cc | 11 +- source/event/src/G4StackedTrack.cc | 2 +- source/event/src/G4StackingMessenger.cc | 6 +- source/event/src/G4TrackStack.cc | 27 +- source/event/src/G4TrajectoryContainer.cc | 7 +- source/event/src/G4UserEventAction.cc | 2 +- source/event/src/G4UserStackingAction.cc | 2 +- source/event/src/G4VPrimaryGenerator.cc | 2 +- source/g3tog4/History | 7 +- 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 | 2 +- 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 | 2 +- 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 | 8 +- 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 | 2 +- source/g3tog4/src/G4gsmixt.cc | 2 +- source/g3tog4/src/G4gspart.cc | 2 +- source/g3tog4/src/G4gspos.cc | 2 +- source/g3tog4/src/G4gsposp.cc | 12 +- 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/History | 6 +- source/geometry/biasing/GNUmakefile | 6 +- source/geometry/biasing/History | 83 +- .../{G4PTouchableKey.hh => G4GeometryCell.hh} | 47 +- .../{G4Pstring.hh => G4GeometryCellComp.hh} | 33 +- ...ortance.hh => G4GeometryCellImportance.hh} | 19 +- .../biasing/include/G4GeometryCellStep.hh | 115 + ...pStream.hh => G4GeometryCellStepStream.hh} | 18 +- source/geometry/biasing/include/G4IStore.hh | 55 +- .../biasing/include/G4ImportanceAlgorithm.hh | 13 +- .../biasing/include/G4ImportanceFinder.hh | 16 +- .../include/G4ImportanceSplitExaminer.hh | 12 +- .../biasing/include/G4Nsplit_Weight.hh | 14 +- .../biasing/include/G4ParallelNavigator.hh | 58 +- .../biasing/include/G4ParallelStepper.hh | 47 +- .../biasing/include/G4ParallelWorld.hh | 21 +- .../geometry/biasing/include/G4VCellScorer.hh | 71 + .../biasing/include/G4VCellScorerStore.hh | 59 + .../{G4PMapPtkTallys.hh => G4VGCellFinder.hh} | 43 +- source/geometry/biasing/include/G4VIStore.hh | 33 +- .../biasing/include/G4VImportanceAlgorithm.hh | 12 +- .../include/G4VImportanceSplitExaminer.hh | 8 +- .../geometry/biasing/include/G4VPGeoDriver.hh | 19 +- .../biasing/include/G4VParallelStepper.hh | 27 +- .../include/{G4VPScorer.hh => G4VScorer.hh} | 34 +- .../include/G4VWeightWindowAlgorithm.hh | 7 +- .../include/G4WeightWindowAlgorithm.hh | 14 +- source/geometry/biasing/src/G4GeometryCell.cc | 94 + .../biasing/src/G4GeometryCellComp.cc | 51 + ...ortance.cc => G4GeometryCellImportance.cc} | 16 +- .../biasing/src/G4GeometryCellStep.cc | 45 + ...pStream.cc => G4GeometryCellStepStream.cc} | 24 +- source/geometry/biasing/src/G4IStore.cc | 91 +- .../biasing/src/G4ImportanceAlgorithm.cc | 100 +- .../biasing/src/G4ImportanceFinder.cc | 21 +- .../biasing/src/G4ImportanceSplitExaminer.cc | 21 +- .../geometry/biasing/src/G4Nsplit_Weight.cc | 8 +- .../biasing/src/G4ParallelNavigator.cc | 251 +- .../geometry/biasing/src/G4ParallelStepper.cc | 59 +- .../geometry/biasing/src/G4ParallelWorld.cc | 43 +- source/geometry/biasing/src/G4Sigma.cc | 134 - source/geometry/biasing/src/G4VCellScorer.cc | 40 + .../biasing/src/G4VCellScorerStore.cc | 41 + source/geometry/biasing/src/G4VGCellFinder.cc | 39 + source/geometry/biasing/src/G4VIStore.cc | 40 + .../biasing/src/G4VImportanceAlgorithm.cc | 40 + .../biasing/src/G4VImportanceSplitExaminer.cc | 40 + source/geometry/biasing/src/G4VPGeoDriver.cc | 41 + .../biasing/src/G4VParallelStepper.cc | 40 + source/geometry/biasing/src/G4VScorer.cc | 42 + .../biasing/src/G4VWeightWindowAlgorithm.cc | 41 + .../biasing/src/G4WeightWindowAlgorithm.cc | 14 +- source/geometry/magneticfield/History | 119 +- .../magneticfield/include/G4CashKarpRKF45.hh | 2 +- .../magneticfield/include/G4ChordFinder.hh | 9 +- .../magneticfield/include/G4ChordFinder.icc | 2 +- .../magneticfield/include/G4ClassicalRK4.hh | 6 +- .../include/G4ElectroMagneticField.hh | 2 +- .../include/G4EqMagElectricField.hh | 2 +- .../include/G4EquationOfMotion.hh | 9 +- .../include/G4EquationOfMotion.icc | 26 +- .../magneticfield/include/G4ExplicitEuler.hh | 7 +- .../geometry/magneticfield/include/G4Field.hh | 2 +- .../magneticfield/include/G4FieldManager.hh | 10 +- .../magneticfield/include/G4FieldManager.icc | 2 +- .../magneticfield/include/G4FieldTrack.hh | 2 +- .../magneticfield/include/G4FieldTrack.icc | 2 +- .../include/G4HelixExplicitEuler.hh | 2 +- .../magneticfield/include/G4HelixHeum.hh | 2 +- .../include/G4HelixImplicitEuler.hh | 2 +- .../include/G4HelixSimpleRunge.hh | 2 +- .../magneticfield/include/G4ImplicitEuler.hh | 10 +- .../magneticfield/include/G4LineSection.hh | 2 +- .../include/G4MagErrorStepper.hh | 2 +- .../include/G4MagErrorStepper.icc | 6 +- .../include/G4MagHelicalStepper.hh | 2 +- .../include/G4MagHelicalStepper.icc | 2 +- .../include/G4MagIntegratorDriver.hh | 8 +- .../include/G4MagIntegratorDriver.icc | 2 +- .../include/G4MagIntegratorStepper.hh | 30 +- .../include/G4MagIntegratorStepper.icc | 17 +- .../magneticfield/include/G4Mag_EqRhs.hh | 2 +- .../magneticfield/include/G4Mag_SpinEqRhs.hh | 2 +- .../magneticfield/include/G4Mag_UsualEqRhs.hh | 13 +- .../magneticfield/include/G4MagneticField.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 | 36 +- .../magneticfield/src/G4ClassicalRK4.cc | 23 +- .../magneticfield/src/G4EquationOfMotion.cc | 24 +- .../magneticfield/src/G4ExplicitEuler.cc | 17 +- .../magneticfield/src/G4FieldManager.cc | 22 +- .../magneticfield/src/G4FieldTrack.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 | 26 +- .../magneticfield/src/G4LineSection.cc | 2 +- .../magneticfield/src/G4MagErrorStepper.cc | 11 +- .../magneticfield/src/G4MagHelicalStepper.cc | 2 +- .../src/G4MagIntegratorDriver.cc | 83 +- .../src/G4MagIntegratorStepper.cc | 11 +- .../geometry/magneticfield/src/G4Mag_EqRhs.cc | 2 +- .../magneticfield/src/G4Mag_SpinEqRhs.cc | 4 +- .../magneticfield/src/G4Mag_UsualEqRhs.cc | 24 +- .../magneticfield/src/G4RKG3_Stepper.cc | 2 +- .../magneticfield/src/G4SimpleHeum.cc | 2 +- .../magneticfield/src/G4SimpleRunge.cc | 22 +- .../src/G4UniformElectricField.cc | 2 +- .../magneticfield/src/G4UniformMagField.cc | 2 +- source/geometry/management/History | 54 +- .../management/include/G4AffineTransform.hh | 2 +- .../management/include/G4AffineTransform.icc | 2 +- .../management/include/G4AssemblyTriplet.hh | 2 +- .../management/include/G4AssemblyTriplet.icc | 2 +- .../management/include/G4AssemblyVolume.hh | 12 +- .../management/include/G4AssemblyVolume.icc | 17 +- .../management/include/G4DrawVoxels.hh | 2 +- .../management/include/G4GeometryManager.hh | 2 +- .../management/include/G4LogicalSurface.hh | 2 +- .../management/include/G4LogicalSurface.icc | 2 +- .../management/include/G4LogicalVolume.hh | 2 +- .../management/include/G4LogicalVolume.icc | 2 +- .../include/G4LogicalVolumeStore.hh | 2 +- .../management/include/G4PVParameterised.hh | 7 +- .../management/include/G4PVPlacement.hh | 5 +- .../management/include/G4PVReplica.hh | 10 +- .../include/G4PhysicalVolumeStore.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/G4VPVParameterisation.hh | 2 +- .../management/include/G4VPhysicalVolume.hh | 11 +- .../management/include/G4VPhysicalVolume.icc | 2 +- .../geometry/management/include/G4VSolid.hh | 21 +- .../geometry/management/include/G4VSolid.icc | 22 +- .../management/include/G4VTouchable.hh | 2 +- .../management/include/G4VTouchable.icc | 2 +- .../management/include/G4VoxelLimits.hh | 2 +- .../management/include/G4VoxelLimits.icc | 2 +- .../geometry/management/include/meshdefs.hh | 2 +- .../geometry/management/include/voxeldefs.hh | 2 +- .../management/src/G4AssemblyVolume.cc | 12 +- .../geometry/management/src/G4DrawVoxels.cc | 2 +- .../management/src/G4GeometryManager.cc | 5 +- .../management/src/G4LogicalVolume.cc | 6 +- .../management/src/G4LogicalVolumeStore.cc | 2 +- .../management/src/G4PVParameterised.cc | 77 +- .../geometry/management/src/G4PVPlacement.cc | 9 +- source/geometry/management/src/G4PVReplica.cc | 206 +- .../management/src/G4PhysicalVolumeStore.cc | 2 +- .../management/src/G4SmartVoxelHeader.cc | 2 +- .../management/src/G4SmartVoxelNode.cc | 2 +- .../management/src/G4SmartVoxelProxy.cc | 2 +- .../management/src/G4SmartVoxelStat.cc | 2 +- .../geometry/management/src/G4SolidStore.cc | 2 +- .../management/src/G4VPVParameterisation.cc | 2 +- .../management/src/G4VPhysicalVolume.cc | 9 +- source/geometry/management/src/G4VSolid.cc | 24 +- .../geometry/management/src/G4VoxelLimits.cc | 2 +- source/geometry/solids/BREPS/History | 24 +- .../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 | 15 +- .../solids/BREPS/include/G4BREPSolid.icc | 2 +- .../solids/BREPS/include/G4BREPSolidBox.hh | 8 +- .../solids/BREPS/include/G4BREPSolidCone.hh | 19 +- .../BREPS/include/G4BREPSolidCylinder.hh | 15 +- .../BREPS/include/G4BREPSolidOpenPCone.hh | 7 +- .../solids/BREPS/include/G4BREPSolidPCone.hh | 29 +- .../BREPS/include/G4BREPSolidPolyhedra.hh | 30 +- .../solids/BREPS/include/G4BREPSolidSphere.hh | 14 +- .../solids/BREPS/include/G4BREPSolidTorus.hh | 16 +- .../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 | 7 +- .../solids/BREPS/include/G4PlacedSolid.icc | 10 +- .../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 | 30 +- .../geometry/solids/BREPS/include/G4Ray.icc | 72 +- .../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 | 8 +- .../solids/BREPS/include/G4Surface.icc | 12 +- .../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 | 45 +- .../solids/BREPS/src/G4BREPSolidBox.cc | 33 +- .../solids/BREPS/src/G4BREPSolidCone.cc | 29 +- .../solids/BREPS/src/G4BREPSolidCylinder.cc | 27 +- .../solids/BREPS/src/G4BREPSolidOpenPCone.cc | 31 +- .../solids/BREPS/src/G4BREPSolidPCone.cc | 134 +- .../solids/BREPS/src/G4BREPSolidPolyhedra.cc | 142 +- .../solids/BREPS/src/G4BREPSolidSphere.cc | 30 +- .../solids/BREPS/src/G4BREPSolidTorus.cc | 27 +- .../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 | 72 +- .../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 | 11 +- .../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/History | 15 +- .../solids/Boolean/include/G4BooleanSolid.hh | 12 +- .../Boolean/include/G4DisplacedSolid.hh | 20 +- .../Boolean/include/G4IntersectionSolid.hh | 11 +- .../Boolean/include/G4ReflectedSolid.hh | 40 +- .../Boolean/include/G4ReflectionFactory.hh | 2 +- .../Boolean/include/G4SubtractionSolid.hh | 28 +- .../solids/Boolean/include/G4UnionSolid.hh | 29 +- .../solids/Boolean/src/G4BooleanSolid.cc | 64 +- .../solids/Boolean/src/G4DisplacedSolid.cc | 165 +- .../solids/Boolean/src/G4IntersectionSolid.cc | 333 +- .../solids/Boolean/src/G4ReflectedSolid.cc | 365 +- .../solids/Boolean/src/G4ReflectionFactory.cc | 384 +- .../solids/Boolean/src/G4SubtractionSolid.cc | 186 +- .../solids/Boolean/src/G4UnionSolid.cc | 159 +- source/geometry/solids/CSG/History | 15 +- source/geometry/solids/CSG/include/G4Box.hh | 82 +- source/geometry/solids/CSG/include/G4Box.icc | 51 + .../geometry/solids/CSG/include/G4CSGSolid.hh | 17 +- source/geometry/solids/CSG/include/G4Cons.hh | 157 +- source/geometry/solids/CSG/include/G4Cons.icc | 160 + source/geometry/solids/CSG/include/G4Para.hh | 99 +- source/geometry/solids/CSG/include/G4Para.icc | 105 + .../geometry/solids/CSG/include/G4Sphere.hh | 179 +- .../geometry/solids/CSG/include/G4Sphere.icc | 142 + source/geometry/solids/CSG/include/G4Torus.hh | 392 +- .../geometry/solids/CSG/include/G4Torus.icc | 234 + source/geometry/solids/CSG/include/G4Trap.hh | 286 +- source/geometry/solids/CSG/include/G4Trap.icc | 104 + source/geometry/solids/CSG/include/G4Trd.hh | 156 +- source/geometry/solids/CSG/include/G4Trd.icc | 93 + source/geometry/solids/CSG/include/G4Tubs.hh | 159 +- source/geometry/solids/CSG/include/G4Tubs.icc | 125 + source/geometry/solids/CSG/src/G4Box.cc | 638 +- source/geometry/solids/CSG/src/G4CSGSolid.cc | 17 +- source/geometry/solids/CSG/src/G4Cons.cc | 1917 +- source/geometry/solids/CSG/src/G4Para.cc | 1711 +- source/geometry/solids/CSG/src/G4Sphere.cc | 4160 +-- source/geometry/solids/CSG/src/G4Torus.cc | 3664 +- source/geometry/solids/CSG/src/G4Trap.cc | 2275 +- source/geometry/solids/CSG/src/G4Trd.cc | 1686 +- source/geometry/solids/CSG/src/G4Tubs.cc | 1714 +- source/geometry/solids/History | 9 +- source/geometry/solids/STEP/GNUmakefile | 4 +- source/geometry/solids/STEP/History | 6 +- source/geometry/solids/STEP/include/classes.h | 2 +- .../geometry/solids/STEPinterface/GNUmakefile | 4 +- source/geometry/solids/STEPinterface/History | 10 +- ...4AdvancedBrepShapeRepresentationCreator.hh | 6 +- .../include/G4AdvancedFaceCreator.hh | 6 +- .../include/G4AssemblyCreator.hh | 6 +- .../include/G4Axis1PlacementCreator.hh | 6 +- .../include/G4Axis2Placement2dCreator.hh | 6 +- .../include/G4Axis2Placement3dCreator.hh | 6 +- .../include/G4Axis2PlacementCreator.hh | 6 +- .../include/G4Axis2PlacementsCreator.hh | 6 +- .../include/G4BSplineCurveWithKnotsCreator.hh | 6 +- .../include/G4BSplineSurfaceCreator.hh | 6 +- .../G4BSplineSurfaceWithKnotsCreator.hh | 6 +- .../include/G4BoundedSurfaceCreator.hh | 6 +- .../include/G4CartesianPointCreator.hh | 6 +- .../STEPinterface/include/G4CircleCreator.hh | 6 +- .../include/G4ClosedShellCreator.hh | 6 +- .../STEPinterface/include/G4ConicCreator.hh | 6 +- .../include/G4ConicalSurfaceCreator.hh | 6 +- .../include/G4ConnectedFaceSetCreator.hh | 6 +- ...textDependentShapeRepresentationCreator.hh | 7 +- .../STEPinterface/include/G4CurveCreator.hh | 6 +- .../include/G4CylindricalSurfaceCreator.hh | 6 +- .../include/G4DirectionCreator.hh | 6 +- .../include/G4EdgeCurveCreator.hh | 6 +- .../include/G4EdgeLoopCreator.hh | 6 +- .../STEPinterface/include/G4EllipseCreator.hh | 6 +- .../include/G4FaceBoundCreator.hh | 6 +- .../include/G4FaceOuterBoundCreator.hh | 6 +- .../include/G4FaceSurfaceCreator.hh | 6 +- ...G4GeometricRepresentationContextCreator.hh | 6 +- .../include/G4GeometryCreator.hh | 2 +- .../STEPinterface/include/G4GeometryTable.hh | 6 +- .../include/G4HyperbolaCreator.hh | 6 +- .../G4ItemDefinedTransformationCreator.hh | 6 +- .../STEPinterface/include/G4LineCreator.hh | 6 +- .../include/G4ManifoldSolidBrepCreator.hh | 6 +- .../STEPinterface/include/G4NISTStepReader.hh | 2 +- .../include/G4OpenShellCreator.hh | 6 +- .../include/G4OrientedEdgeCreator.hh | 6 +- .../include/G4ParabolaCreator.hh | 6 +- .../STEPinterface/include/G4PlaneCreator.hh | 6 +- .../STEPinterface/include/G4PointCreator.hh | 6 +- .../include/G4PointOnCurveCreator.hh | 6 +- .../include/G4PointOnSurfaceCreator.hh | 6 +- .../include/G4PointReplicaCreator.hh | 6 +- .../G4ProductDefinitionShapeCreator.hh | 6 +- .../G4RationalBSplineSurfaceCreator.hh | 6 +- .../G4RepresentationRelationshipCreator.hh | 6 +- ...onRelationshipWithTransformationCreator.hh | 7 +- .../G4ShapeDefinitionRepresentationCreator.hh | 6 +- .../include/G4ShapeRepresentationCreator.hh | 6 +- ...4ShapeRepresentationRelationshipCreator.hh | 6 +- .../include/G4SphericalSurfaceCreator.hh | 6 +- .../STEPinterface/include/G4StepFileReader.hh | 2 +- .../include/G4ToroidalSurfaceCreator.hh | 6 +- .../STEPinterface/include/G4VectorCreator.hh | 6 +- .../include/G4VertexPointCreator.hh | 6 +- ...4AdvancedBrepShapeRepresentationCreator.cc | 10 +- .../src/G4AdvancedFaceCreator.cc | 9 +- .../STEPinterface/src/G4AssemblyCreator.cc | 9 +- .../src/G4Axis1PlacementCreator.cc | 9 +- .../src/G4Axis2Placement2dCreator.cc | 9 +- .../src/G4Axis2Placement3dCreator.cc | 9 +- .../src/G4Axis2PlacementCreator.cc | 9 +- .../src/G4Axis2PlacementsCreator.cc | 9 +- .../src/G4BSplineCurveWithKnotsCreator.cc | 10 +- .../src/G4BSplineSurfaceCreator.cc | 9 +- .../src/G4BSplineSurfaceWithKnotsCreator.cc | 9 +- .../src/G4BoundedSurfaceCreator.cc | 9 +- .../src/G4CartesianPointCreator.cc | 9 +- .../STEPinterface/src/G4CircleCreator.cc | 9 +- .../STEPinterface/src/G4ClosedShellCreator.cc | 9 +- .../STEPinterface/src/G4ConicCreator.cc | 9 +- .../src/G4ConicalSurfaceCreator.cc | 9 +- .../src/G4ConnectedFaceSetCreator.cc | 9 +- ...textDependentShapeRepresentationCreator.cc | 10 +- .../STEPinterface/src/G4CurveCreator.cc | 9 +- .../src/G4CylindricalSurfaceCreator.cc | 9 +- .../STEPinterface/src/G4DirectionCreator.cc | 9 +- .../STEPinterface/src/G4EdgeCurveCreator.cc | 9 +- .../STEPinterface/src/G4EdgeLoopCreator.cc | 9 +- .../STEPinterface/src/G4EllipseCreator.cc | 9 +- .../STEPinterface/src/G4FaceBoundCreator.cc | 9 +- .../src/G4FaceOuterBoundCreator.cc | 9 +- .../STEPinterface/src/G4FaceSurfaceCreator.cc | 9 +- ...G4GeometricRepresentationContextCreator.cc | 10 +- .../STEPinterface/src/G4GeometryCreator.cc | 2 +- .../STEPinterface/src/G4GeometryTable.cc | 9 +- .../STEPinterface/src/G4HyperbolaCreator.cc | 9 +- .../src/G4ItemDefinedTransformationCreator.cc | 10 +- .../solids/STEPinterface/src/G4LineCreator.cc | 9 +- .../src/G4ManifoldSolidBrepCreator.cc | 9 +- .../STEPinterface/src/G4NISTStepReader.cc | 2 +- .../STEPinterface/src/G4OpenShellCreator.cc | 9 +- .../src/G4OrientedEdgeCreator.cc | 9 +- .../STEPinterface/src/G4ParabolaCreator.cc | 9 +- .../STEPinterface/src/G4PlaneCreator.cc | 9 +- .../STEPinterface/src/G4PointCreator.cc | 9 +- .../src/G4PointOnCurveCreator.cc | 9 +- .../src/G4PointOnSurfaceCreator.cc | 9 +- .../src/G4PointReplicaCreator.cc | 9 +- .../src/G4ProductDefinitionShapeCreator.cc | 9 +- .../src/G4RationalBSplineSurfaceCreator.cc | 10 +- .../G4RepresentationRelationshipCreator.cc | 10 +- ...onRelationshipWithTransformationCreator.cc | 10 +- .../G4ShapeDefinitionRepresentationCreator.cc | 10 +- .../src/G4ShapeRepresentationCreator.cc | 10 +- ...4ShapeRepresentationRelationshipCreator.cc | 10 +- .../src/G4SphericalSurfaceCreator.cc | 10 +- .../src/G4ToroidalSurfaceCreator.cc | 9 +- .../STEPinterface/src/G4VectorCreator.cc | 9 +- .../STEPinterface/src/G4VertexPointCreator.cc | 9 +- source/geometry/solids/specific/History | 14 +- .../specific/include/G4ClippablePolygon.hh | 100 +- .../specific/include/G4ClippablePolygon.icc | 2 +- .../specific/include/G4EllipticalTube.hh | 115 +- .../specific/include/G4EllipticalTube.icc} | 81 +- .../specific/include/G4EnclosingCylinder.hh | 52 +- .../solids/specific/include/G4Hype.hh | 54 +- .../solids/specific/include/G4Hype.icc | 10 +- .../specific/include/G4IntersectingCone.hh | 46 +- .../solids/specific/include/G4PolyPhiFace.hh | 148 +- .../solids/specific/include/G4PolyPhiFace.icc | 31 +- .../solids/specific/include/G4Polycone.hh | 176 +- .../solids/specific/include/G4Polycone.icc | 62 + .../solids/specific/include/G4PolyconeSide.hh | 135 +- .../solids/specific/include/G4Polyhedra.hh | 181 +- .../solids/specific/include/G4Polyhedra.icc | 69 + .../specific/include/G4PolyhedraSide.hh | 184 +- .../specific/include/G4ReduciblePolygon.hh | 179 +- .../specific/include/G4SolidExtentList.hh | 40 +- .../solids/specific/include/G4VCSGface.hh | 190 +- .../solids/specific/include/G4VCSGfaceted.hh | 73 +- .../solids/specific/src/G4ClippablePolygon.cc | 610 +- .../solids/specific/src/G4EllipticalTube.cc | 1080 +- .../specific/src/G4EnclosingCylinder.cc | 146 +- source/geometry/solids/specific/src/G4Hype.cc | 1951 +- .../solids/specific/src/G4IntersectingCone.cc | 388 +- .../solids/specific/src/G4PolyPhiFace.cc | 1239 +- .../solids/specific/src/G4Polycone.cc | 688 +- .../solids/specific/src/G4PolyconeSide.cc | 1601 +- .../solids/specific/src/G4Polyhedra.cc | 738 +- .../solids/specific/src/G4PolyhedraSide.cc | 1726 +- .../solids/specific/src/G4ReduciblePolygon.cc | 724 +- .../solids/specific/src/G4SolidExtentList.cc | 214 +- .../solids/specific/src/G4VCSGfaceted.cc | 410 +- source/geometry/verification/History | 6 +- .../include/G4GeomTestErrorList.hh | 2 +- .../verification/include/G4GeomTestLogger.hh | 2 +- .../include/G4GeomTestOverlapList.hh | 2 +- .../include/G4GeomTestOvershootList.hh | 2 +- .../verification/include/G4GeomTestPoint.hh | 2 +- .../verification/include/G4GeomTestSegment.hh | 2 +- .../include/G4GeomTestStreamLogger.hh | 2 +- .../include/G4GeomTestVolPoint.hh | 2 +- .../verification/include/G4GeomTestVolume.hh | 2 +- .../verification/src/G4GeomTestErrorList.cc | 2 +- .../verification/src/G4GeomTestOverlapList.cc | 2 +- .../src/G4GeomTestOvershootList.cc | 2 +- .../verification/src/G4GeomTestPoint.cc | 2 +- .../verification/src/G4GeomTestSegment.cc | 2 +- .../src/G4GeomTestStreamLogger.cc | 2 +- .../verification/src/G4GeomTestVolPoint.cc | 2 +- .../verification/src/G4GeomTestVolume.cc | 6 +- source/geometry/volumes/History | 66 +- .../volumes/include/G4AuxiliaryNavServices.hh | 24 +- .../include/G4AuxiliaryNavServices.icc | 90 +- .../volumes/include/G4BlockingList.hh | 9 +- .../volumes/include/G4BlockingList.icc | 50 +- source/geometry/volumes/include/G4GRSSolid.hh | 13 +- .../geometry/volumes/include/G4GRSSolid.icc | 70 +- .../volumes/include/G4GRSSolidHandle.hh | 17 +- .../geometry/volumes/include/G4GRSVolume.hh | 13 +- .../geometry/volumes/include/G4GRSVolume.icc | 79 +- .../volumes/include/G4GRSVolumeHandle.hh | 17 +- .../volumes/include/G4GeometryMessenger.hh | 11 +- .../include/G4IdentityTrajectoryFilter.hh | 63 + .../volumes/include/G4LogicalBorderSurface.hh | 103 +- .../include/G4LogicalBorderSurface.icc | 16 +- .../volumes/include/G4LogicalSkinSurface.hh | 90 +- .../volumes/include/G4LogicalSkinSurface.icc | 9 +- .../volumes/include/G4NavigationHistory.hh | 9 +- .../volumes/include/G4NavigationHistory.icc | 135 +- .../volumes/include/G4NavigationLevel.hh | 25 +- .../volumes/include/G4NavigationLevel.icc | 102 +- .../volumes/include/G4NavigationLevelRep.hh | 31 +- .../volumes/include/G4NavigationLevelRep.icc | 66 +- .../geometry/volumes/include/G4Navigator.hh | 5 +- .../geometry/volumes/include/G4Navigator.icc | 2 +- .../volumes/include/G4NormalNavigation.hh | 47 +- .../volumes/include/G4NormalNavigation.icc | 2 +- .../include/G4ParameterisedNavigation.hh | 8 +- .../include/G4ParameterisedNavigation.icc | 2 +- .../volumes/include/G4PropagatorInField.hh | 145 +- .../volumes/include/G4PropagatorInField.icc | 152 +- .../volumes/include/G4ReplicaNavigation.hh | 126 +- .../volumes/include/G4ReplicaNavigation.icc | 2 +- .../volumes/include/G4TouchableHistory.hh | 26 +- .../volumes/include/G4TouchableHistory.icc | 62 +- .../include/G4TouchableHistoryHandle.hh | 15 +- .../include/G4TransportationManager.hh | 10 +- .../include/G4TransportationManager.icc | 18 +- .../include/G4VCurvedTrajectoryFilter.hh | 85 + .../volumes/include/G4VoxelNavigation.hh | 5 +- .../volumes/include/G4VoxelNavigation.icc | 2 +- .../volumes/src/G4AuxiliaryNavServices.cc | 9 +- source/geometry/volumes/src/G4BlockingList.cc | 23 +- source/geometry/volumes/src/G4GRSSolid.cc | 6 +- source/geometry/volumes/src/G4GRSVolume.cc | 6 +- .../volumes/src/G4GeometryMessenger.cc | 10 +- .../src/G4IdentityTrajectoryFilter.cc} | 33 +- .../volumes/src/G4LogicalBorderSurface.cc | 104 +- .../volumes/src/G4LogicalSkinSurface.cc | 124 +- .../volumes/src/G4NavigationHistory.cc | 62 +- source/geometry/volumes/src/G4Navigator.cc | 19 +- .../volumes/src/G4NormalNavigation.cc | 338 +- .../volumes/src/G4ParameterisedNavigation.cc | 6 +- .../volumes/src/G4PropagatorInField.cc | 1061 +- .../volumes/src/G4ReplicaNavigation.cc | 1330 +- .../volumes/src/G4TouchableHistory.cc | 54 +- .../volumes/src/G4TransportationManager.cc | 31 +- .../volumes/src/G4VCurvedTrajectoryFilter.cc} | 67 +- .../geometry/volumes/src/G4VoxelNavigation.cc | 8 +- .../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/G4ChebyshevApproximation.hh | 2 +- .../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 | 2 +- .../HEPNumerics/include/G4Integrator.hh | 2 +- .../HEPNumerics/include/G4Integrator.icc | 45 +- .../HEPNumerics/include/G4PolynomialSolver.hh | 2 +- .../include/G4PolynomialSolver.icc | 2 +- .../include/G4SimpleIntegration.hh | 2 +- .../include/G4VGaussianQuadrature.hh | 2 +- .../src/G4ChebyshevApproximation.cc | 2 +- .../HEPNumerics/src/G4DataInterpolation.cc | 2 +- .../HEPNumerics/src/G4GaussChebyshevQ.cc | 2 +- .../global/HEPNumerics/src/G4GaussHermiteQ.cc | 2 +- .../global/HEPNumerics/src/G4GaussJacobiQ.cc | 2 +- .../HEPNumerics/src/G4GaussLaguerreQ.cc | 2 +- .../HEPNumerics/src/G4GaussLegendreQ.cc | 2 +- .../HEPNumerics/src/G4SimpleIntegration.cc | 2 +- .../HEPNumerics/src/G4VGaussianQuadrature.cc | 2 +- source/global/HEPRandom/include/G4Poisson.hh | 2 +- source/global/HEPRandom/include/Randomize.hh | 2 +- source/global/History | 25 +- .../global/management/include/G4Allocator.hh | 14 +- .../management/include/G4AllocatorPage.hh | 2 +- .../management/include/G4AllocatorUnit.hh | 2 +- .../management/include/G4ApplicationState.hh | 21 +- .../global/management/include/G4DataVector.hh | 2 +- .../management/include/G4ExceptionSeverity.hh | 65 + .../global/management/include/G4FastVector.hh | 2 +- .../include/G4LPhysicsFreeVector.hh | 2 +- .../include/G4LPhysicsFreeVector.icc | 2 +- .../management/include/G4OrderedTable.hh | 2 +- .../management/include/G4PhysicsFreeVector.hh | 2 +- .../include/G4PhysicsLinearVector.hh | 2 +- .../management/include/G4PhysicsLnVector.hh | 2 +- .../management/include/G4PhysicsLogVector.hh | 2 +- .../include/G4PhysicsOrderedFreeVector.hh | 2 +- .../include/G4PhysicsOrderedFreeVector.icc | 2 +- .../management/include/G4PhysicsTable.hh | 2 +- .../management/include/G4PhysicsTable.icc | 2 +- .../management/include/G4PhysicsVector.hh | 2 +- .../management/include/G4PhysicsVector.icc | 2 +- .../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 | 9 +- source/global/management/include/G4String.hh | 2 +- source/global/management/include/G4String.icc | 2 +- .../management/include/G4ThreeVector.hh | 2 +- source/global/management/include/G4Timer.hh | 2 +- .../global/management/include/G4Tokenizer.hh | 2 +- source/global/management/include/G4Types.hh | 2 +- .../global/management/include/G4UnitsTable.hh | 6 +- .../global/management/include/G4UserLimits.hh | 2 +- .../management/include/G4UserLimits.icc | 2 +- .../management/include/G4VExceptionHandler.hh | 81 + .../management/include/G4VStateDependent.hh | 2 +- .../management/include/G4coutDestination.hh | 2 +- source/global/management/include/G4ios.hh | 2 +- .../management/include/G4strstreambuf.hh | 2 +- .../management/include/G4strstreambuf.icc | 2 +- .../management/include/PhysicalConstants.h | 2 +- .../global/management/include/SystemOfUnits.h | 2 +- .../global/management/include/g4std/algorithm | 2 +- .../global/management/include/g4std/complex | 2 +- source/global/management/include/g4std/deque | 2 +- .../global/management/include/g4std/fstream | 2 +- .../management/include/g4std/functional | 2 +- .../global/management/include/g4std/iomanip | 2 +- .../global/management/include/g4std/iostream | 2 +- source/global/management/include/g4std/list | 2 +- source/global/management/include/g4std/map | 2 +- source/global/management/include/g4std/queue | 2 +- source/global/management/include/g4std/set | 2 +- .../global/management/include/g4std/streambuf | 2 +- .../global/management/include/g4std/strstream | 2 +- source/global/management/include/g4std/vector | 2 +- source/global/management/include/globals.hh | 6 +- source/global/management/include/templates.hh | 2 +- source/global/management/src/G4DataVector.cc | 2 +- source/global/management/src/G4Exception.cc | 26 +- .../management/src/G4LPhysicsFreeVector.cc | 2 +- .../global/management/src/G4OrderedTable.cc | 2 +- .../management/src/G4PhysicsFreeVector.cc | 2 +- .../management/src/G4PhysicsLinearVector.cc | 2 +- .../management/src/G4PhysicsLnVector.cc | 2 +- .../management/src/G4PhysicsLogVector.cc | 2 +- .../src/G4PhysicsOrderedFreeVector.cc | 2 +- .../global/management/src/G4PhysicsTable.cc | 2 +- .../global/management/src/G4PhysicsVector.cc | 2 +- .../global/management/src/G4StateManager.cc | 26 +- source/global/management/src/G4Timer.cc | 2 +- source/global/management/src/G4UnitsTable.cc | 11 +- .../management/src/G4VExceptionHandler.cc} | 66 +- .../management/src/G4VStateDependent.cc | 2 +- source/global/management/src/G4ios.cc | 2 +- source/graphics_reps/History | 34 +- source/graphics_reps/include/G4AttDef.hh | 91 + .../graphics_reps/include/G4AttDefStore.hh | 36 +- source/graphics_reps/include/G4AttValue.hh | 77 + source/graphics_reps/include/G4Circle.hh | 2 +- source/graphics_reps/include/G4Color.hh | 2 +- source/graphics_reps/include/G4Colour.hh | 8 +- 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 | 2 +- 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 | 8 +- 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 | 11 +- source/graphics_reps/include/G4VMarker.icc | 2 +- source/graphics_reps/include/G4VVisPrim.hh | 2 +- .../graphics_reps/include/G4VisAttributes.hh | 24 +- .../graphics_reps/include/G4VisAttributes.icc | 23 +- source/graphics_reps/include/G4VisExtent.hh | 2 +- source/graphics_reps/include/G4Visible.hh | 2 +- source/graphics_reps/include/G4Visible.icc | 2 +- source/graphics_reps/include/HepPolyhedron.h | 158 +- source/graphics_reps/src/G4AttDefStore.cc | 48 + 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 | 2 +- source/graphics_reps/src/G4Polyline.cc | 2 +- source/graphics_reps/src/G4Polymarker.cc | 2 +- source/graphics_reps/src/G4Scale.cc | 11 +- 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 | 41 +- source/graphics_reps/src/G4VisExtent.cc | 2 +- source/graphics_reps/src/G4Visible.cc | 2 +- source/graphics_reps/src/HepPolyhedron.cc | 387 +- source/intercoms/History | 25 +- source/intercoms/include/G4UIaliasList.hh | 2 +- source/intercoms/include/G4UIbatch.hh | 2 +- .../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 | 7 +- 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 | 6 +- source/intercoms/include/G4UnitsMessenger.hh | 2 +- .../include/G4VFlavoredParallelWorld.hh | 2 +- .../include/G4VGlobalFastSimulationManager.hh | 30 +- source/intercoms/include/G4VGraphicsScene.hh | 8 +- source/intercoms/include/G4VVisManager.hh | 11 +- source/intercoms/src/G4UIaliasList.cc | 2 +- source/intercoms/src/G4UIbatch.cc | 2 +- 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 | 22 +- source/intercoms/src/G4UIcommandTree.cc | 2 +- source/intercoms/src/G4UIcontrolMessenger.cc | 2 +- source/intercoms/src/G4UIdirectory.cc | 2 +- source/intercoms/src/G4UImanager.cc | 12 +- source/intercoms/src/G4UImessenger.cc | 2 +- source/intercoms/src/G4UIparameter.cc | 2 +- source/intercoms/src/G4UIsession.cc | 2 +- source/intercoms/src/G4UnitsMessenger.cc | 6 +- .../src/G4VGlobalFastSimulationManager.cc | 17 +- source/intercoms/src/G4VVisManager.cc | 14 +- source/interfaces/GAG/include/G4UIGAG.hh | 2 +- .../interfaces/GAG/include/G4UIGainServer.hh | 2 +- source/interfaces/GAG/src/G4UIGAG.cc | 6 +- source/interfaces/GAG/src/G4UIGainServer.cc | 9 +- source/interfaces/History | 23 +- source/interfaces/OPACS/include/G4UIWo.hh | 2 +- .../interfaces/OPACS/include/G4WoMessenger.hh | 2 +- source/interfaces/OPACS/include/G4oCommon.hh | 2 +- source/interfaces/OPACS/include/G4oCommon.icc | 2 +- source/interfaces/OPACS/src/G4UIWo.cc | 2 +- source/interfaces/OPACS/src/G4WoMessenger.cc | 2 +- source/interfaces/XVT/include/G4UIxvt.hh | 2 +- .../XVT/include/G4UIxvtMessenger.hh | 2 +- source/interfaces/XVT/src/G4UIxvt.cc | 12 +- source/interfaces/XVT/src/G4UIxvtMessenger.cc | 2 +- .../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 | 14 +- source/interfaces/basic/src/G4UIWin32.cc | 2 +- source/interfaces/basic/src/G4UIXaw.cc | 6 +- source/interfaces/basic/src/G4UIXm.cc | 20 +- source/interfaces/basic/src/G4UIcsh.cc | 2 +- source/interfaces/basic/src/G4UItcsh.cc | 6 +- source/interfaces/basic/src/G4UIterminal.cc | 2 +- source/interfaces/basic/src/G4VUIshell.cc | 2 +- .../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 | 6 +- source/materials/History | 14 +- source/materials/include/G4AtomicShells.hh | 2 +- source/materials/include/G4Element.hh | 2 +- source/materials/include/G4ElementTable.hh | 2 +- source/materials/include/G4ElementVector.hh | 2 +- source/materials/include/G4IonisParamElm.hh | 2 +- source/materials/include/G4IonisParamMat.hh | 9 +- source/materials/include/G4Isotope.hh | 2 +- source/materials/include/G4IsotopeVector.hh | 2 +- source/materials/include/G4MPVEntry.hh | 2 +- source/materials/include/G4Material.hh | 30 +- .../include/G4MaterialPropertiesTable.hh | 52 +- .../include/G4MaterialPropertyVector.hh | 2 +- source/materials/include/G4MaterialTable.hh | 2 +- source/materials/include/G4OpticalSurface.hh | 2 +- source/materials/include/G4SandiaTable.hh | 2 +- .../materials/include/G4StaticSandiaData.hh | 2 +- source/materials/src/G4AtomicShells.cc | 2 +- source/materials/src/G4Element.cc | 2 +- source/materials/src/G4IonisParamElm.cc | 14 +- source/materials/src/G4IonisParamMat.cc | 101 +- source/materials/src/G4Isotope.cc | 2 +- source/materials/src/G4MPVEntry.cc | 2 +- source/materials/src/G4Material.cc | 62 +- .../src/G4MaterialPropertiesTable.cc | 132 +- .../materials/src/G4MaterialPropertyVector.cc | 2 +- source/materials/src/G4OpticalSurface.cc | 2 +- source/materials/src/G4SandiaTable.cc | 2 +- .../include/G4FoamXTRdEdx.hh | 2 +- .../include/G4FoamXrayTRmodel.hh | 2 +- .../include/G4GamDistrXTRdEdx.hh | 2 +- .../include/G4GamDistrXrayTRmodel.hh | 2 +- .../include/G4IrregularXTRdEdx.hh | 2 +- .../include/G4IrregularXrayTRmodel.hh | 2 +- .../include/G4PAIclusterModel.hh | 2 +- .../include/G4PhotoClusterModel.hh | 2 +- .../include/G4PlateIrrGasXTRdEdx.hh | 2 +- .../include/G4PlateIrrGasXrayTRmodel.hh | 2 +- .../include/G4RegularXTRdEdx.hh | 2 +- .../include/G4RegularXrayTRmodel.hh | 2 +- .../include/G4VClusterModel.hh | 2 +- .../parameterisations/include/G4VXTRdEdx.hh | 2 +- .../include/G4VXrayTRadModel.hh | 2 +- .../include/G4VXrayTRmodel.hh | 2 +- source/parameterisations/src/G4FoamXTRdEdx.cc | 2 +- .../src/G4FoamXrayTRmodel.cc | 2 +- .../src/G4GamDistrXTRdEdx.cc | 2 +- .../src/G4GamDistrXrayTRmodel.cc | 2 +- .../src/G4IrregularXTRdEdx.cc | 2 +- .../src/G4IrregularXrayTRmodel.cc | 2 +- .../src/G4PAIclusterModel.cc | 2 +- .../src/G4PhotoClusterModel.cc | 2 +- .../src/G4PlateIrrGasXTRdEdx.cc | 2 +- .../src/G4PlateIrrGasXrayTRmodel.cc | 2 +- .../parameterisations/src/G4RegularXTRdEdx.cc | 2 +- .../src/G4RegularXrayTRmodel.cc | 2 +- .../parameterisations/src/G4VClusterModel.cc | 2 +- source/parameterisations/src/G4VXTRdEdx.cc | 2 +- .../parameterisations/src/G4VXrayTRadModel.cc | 2 +- .../parameterisations/src/G4VXrayTRmodel.cc | 2 +- source/particles/History | 16 +- .../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 +- 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 +- 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 | 6 +- .../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 | 2 +- .../management/include/G4DynamicParticle.icc | 2 +- .../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 | 2 +- .../include/G4ParticleDefinition.icc | 2 +- .../management/include/G4ParticleMessenger.hh | 2 +- .../management/include/G4ParticleMomentum.hh | 2 +- .../include/G4ParticlePropertyMessenger.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/G4ShortLivedTable.hh | 2 +- .../include/G4TauLeptonicDecayChannel.hh | 2 +- .../management/include/G4VDecayChannel.hh | 9 +- .../management/include/G4VIsotopeTable.hh | 2 +- .../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 | 2 +- .../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 | 2 +- .../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 | 2 +- .../management/src/G4ParticleMessenger.cc | 2 +- .../src/G4ParticlePropertyMessenger.cc | 8 +- .../management/src/G4ParticleTable.cc | 2 +- .../management/src/G4ParticleWithCuts.cc | 2 +- .../src/G4PhaseSpaceDecayChannel.cc | 2 +- .../management/src/G4ShortLivedTable.cc | 2 +- .../src/G4TauLeptonicDecayChannel.cc | 2 +- .../management/src/G4VDecayChannel.cc | 26 +- .../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 | 12 +- .../src/G4ExcitedLambdaConstructor.cc | 2 +- .../src/G4ExcitedMesonConstructor.cc | 8 +- .../shortlived/src/G4ExcitedMesons.cc | 2 +- .../src/G4ExcitedNucleonConstructor.cc | 16 +- .../src/G4ExcitedSigmaConstructor.cc | 6 +- .../shortlived/src/G4ExcitedXiConstructor.cc | 2 +- source/particles/shortlived/src/G4Gluons.cc | 2 +- source/particles/shortlived/src/G4Quarks.cc | 2 +- .../shortlived/src/G4ShortLivedConstructor.cc | 20 +- .../shortlived/src/G4VShortLivedParticle.cc | 2 +- source/persistency/GNUmakefile | 68 +- source/persistency/History | 23 + .../digits+hits/digits/GNUmakefile | 35 - .../digits/include/G4PDCofThisEvent.ddl | 86 - .../digits/include/G4PVDigitsCollection.ddl | 75 - .../digits/include/G4PersistentDigitMan.hh | 97 - .../persistency/digits+hits/hits/GNUmakefile | 35 - .../hits/include/G4PHCofThisEvent.ddl | 86 - .../hits/include/G4PVHitsCollection.ddl | 76 - .../hits/include/G4PersistentHitMan.hh | 97 - .../hits/src/G4PVHitsCollection.cc | 47 - source/persistency/events/GNUmakefile | 46 - .../persistency/events/include/G4PEvent.ddl | 154 - .../events/include/G4PPrimaryParticle.ddl | 110 - .../events/include/G4PPrimaryVertex.ddl | 101 - .../events/include/G4PersistentEventMan.hh | 95 - source/persistency/events/src/G4PEvent.cc | 131 - .../events/src/G4PPrimaryParticle.cc | 84 - .../events/src/G4PPrimaryVertex.cc | 128 - .../events/src/G4PersistentEventMan.cc | 119 - source/persistency/geometry/GNUmakefile | 21 - .../persistency/geometry/global/GNUmakefile | 34 - .../geometry/global/src/G4PAffineTransform.cc | 57 - .../geometry/management/GNUmakefile | 59 - .../include/G4PGeometryObjectMap.ddl | 165 - .../management/include/G4PLogicalVolume.ddl | 100 - .../management/include/G4PPVPlacement.ddl | 68 - .../management/include/G4PVPhysicalVolume.ddl | 106 - .../management/include/G4PersistentGeomMan.hh | 129 - .../management/src/G4PGeometryObjectMap.cc | 337 - .../management/src/G4PLogicalVolume.cc | 164 - .../geometry/management/src/G4PPVReplica.cc | 95 - .../management/src/G4PVPhysicalVolume.cc | 154 - .../management/src/G4PersistentGeomMan.cc | 622 - .../geometry/solids/Boolean/GNUmakefile | 40 - .../solids/Boolean/src/G4PBooleanSolid.cc | 75 - .../Boolean/src/G4PIntersectionSolid.cc | 52 - .../solids/Boolean/src/G4PUnionSolid.cc | 50 - .../geometry/solids/CSG/GNUmakefile | 50 - .../geometry/solids/CSG/include/G4PTrap.ddl | 98 - .../geometry/solids/CSG/src/G4PCons.cc | 104 - .../geometry/solids/CSG/src/G4PPara.cc | 81 - .../geometry/solids/CSG/src/G4PSphere.cc | 128 - .../geometry/solids/CSG/src/G4PTorus.cc | 127 - .../geometry/solids/CSG/src/G4PTrap.cc | 273 - .../geometry/solids/CSG/src/G4PTrd.cc | 102 - .../geometry/solids/CSG/src/G4PTubs.cc | 117 - .../geometry/solids/specific/GNUmakefile | 45 - .../solids/specific/include/G4PHype.ddl | 83 - .../geometry/solids/specific/src/G4PHype.cc | 94 - source/persistency/global/GNUmakefile | 33 - .../global/include/G4PersistentSchema.hh | 86 - .../persistency/global/include/G4Pglobals.hh | 99 - .../global/include/G4VPersistentSubDbMan.hh | 112 - source/persistency/include/G4DCIOcatalog.hh | 95 + source/persistency/include/G4DCIOentryT.hh | 83 + source/persistency/include/G4FileUtilities.hh | 76 + source/persistency/include/G4HCIOcatalog.hh | 95 + source/persistency/include/G4HCIOentryT.hh | 83 + source/persistency/include/G4MCTEvent.hh | 134 + source/persistency/include/G4MCTGenEvent.hh | 77 + .../persistency/include/G4MCTGenParticle.hh | 39 + source/persistency/include/G4MCTSimEvent.hh | 138 + .../persistency/include/G4MCTSimParticle.hh | 180 + source/persistency/include/G4MCTSimVertex.hh | 192 + .../include/G4PersistencyCenter.hh | 176 + .../include/G4PersistencyCenterMessenger.hh | 80 + .../include/G4PersistencyManager.hh | 206 + .../include/G4PersistencyManagerT.hh | 126 + source/persistency/include/G4Pevent.hh | 86 + .../G4PTubs.ddl => include/G4VDCIOentry.hh} | 62 +- .../G4PTrd.ddl => include/G4VHCIOentry.hh} | 64 +- .../G4VHepMCIO.hh} | 79 +- source/persistency/include/G4VMCTruthIO.hh | 64 + source/persistency/include/G4VPDigitIO.hh | 75 + .../include/G4VPDigitsCollectionIO.hh | 75 + .../G4VPEventIO.hh} | 80 +- .../G4VPHitIO.hh} | 80 +- .../include/G4VPHitsCollectionIO.hh | 75 + .../G4VTransactionManager.hh} | 88 +- source/persistency/management/GNUmakefile | 56 - .../include/G4PersistencyManager.hh | 150 - .../include/G4TransactionManager.hh | 147 - .../management/src/G4PersistencyManager.cc | 306 - .../management/src/G4PersistencyMessenger.cc | 110 - .../management/src/G4TransactionManager.cc | 454 - source/persistency/run/GNUmakefile | 41 - source/persistency/run/include/G4PRun.ddl | 95 - .../run/include/G4PersistentRunMan.hh | 95 - .../persistency/run/src/G4PersistentRunMan.cc | 95 - source/persistency/src/G4DCIOcatalog.cc | 146 + .../G4FileUtilities.cc} | 70 +- source/persistency/src/G4HCIOcatalog.cc | 146 + source/persistency/src/G4MCTEvent.cc | 118 + source/persistency/src/G4MCTGenEvent.cc | 94 + source/persistency/src/G4MCTSimEvent.cc | 173 + source/persistency/src/G4MCTSimParticle.cc | 203 + source/persistency/src/G4MCTSimVertex.cc | 108 + source/persistency/src/G4PersistencyCenter.cc | 422 + .../src/G4PersistencyCenterMessenger.cc | 271 + .../persistency/src/G4PersistencyManager.cc | 415 + .../G4PCSGSolid.ddl => src/G4Pevent.cc} | 36 +- source/persistency/src/G4VDCIOentry.cc | 43 + source/persistency/src/G4VHCIOentry.cc | 43 + .../src/G4PCSGSolid.cc => src/G4VHepMCIO.cc} | 25 +- .../G4VMCTruthIO.cc} | 22 +- .../G4DatabaseTypes.hh => src/G4VPDigitIO.cc} | 46 +- .../persistency/src/G4VPDigitsCollectionIO.cc | 43 + source/persistency/src/G4VPEventIO.cc | 35 + .../G4PHCofThisEvent.cc => src/G4VPHitIO.cc} | 36 +- .../G4VPHitsCollectionIO.cc} | 35 +- source/persistency/tools/README | 3 + source/persistency/tools/g4pmv.sh | 56 + source/persistency/tools/g4psed.sh | 56 + source/persistency/tools/rename.sh | 3 + source/persistency/tools/setup.csh | 8 + source/processes/GNUmakefile | 7 +- source/processes/History | 11 +- source/processes/decay/include/G4Decay.hh | 2 +- .../processes/decay/include/G4VExtDecayer.hh | 2 +- source/processes/decay/src/G4Decay.cc | 2 +- .../electromagnetic/lowenergy/History | 60 +- .../lowenergy/include/G4AtomicDeexcitation.hh | 2 +- .../lowenergy/include/G4AtomicShell.hh | 2 +- .../lowenergy/include/G4AtomicTransition.hh | 2 +- .../include/G4AtomicTransitionManager.hh | 2 +- .../lowenergy/include/G4AugerData.hh | 2 +- .../include/G4BremsstrahlungParameters.hh | 2 +- .../lowenergy/include/G4CompositeEMDataSet.hh | 2 +- .../include/G4CrossSectionHandler.hh | 2 +- .../include/G4CutsPerMaterialWarning.hh | 2 +- .../lowenergy/include/G4EMDataSet.hh | 2 +- .../lowenergy/include/G4FluoTransition.hh | 2 +- .../lowenergy/include/G4LinInterpolation.hh | 2 +- .../include/G4LogLogInterpolation.hh | 2 +- .../include/G4LowEnergyBremsstrahlung.hh | 4 +- .../lowenergy/include/G4LowEnergyCompton.hh | 2 +- .../include/G4LowEnergyGammaConversion.hh | 2 +- .../include/G4LowEnergyIonisation.hh | 6 +- .../include/G4LowEnergyPhotoElectric.hh | 2 +- .../include/G4LowEnergyPolarizedCompton.hh | 2 +- .../lowenergy/include/G4LowEnergyRayleigh.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 +- .../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 +- .../lowenergy/src/G4AtomicDeexcitation.cc | 2 +- .../lowenergy/src/G4AtomicShell.cc | 2 +- .../lowenergy/src/G4AtomicTransition.cc | 2 +- .../src/G4AtomicTransitionManager.cc | 2 +- .../lowenergy/src/G4AugerData.cc | 42 +- .../lowenergy/src/G4AugerTransition.cc | 8 +- .../G4BremsstrahlungCrossSectionHandler.cc | 2 +- .../src/G4BremsstrahlungParameters.cc | 11 +- .../lowenergy/src/G4CompositeEMDataSet.cc | 2 +- .../lowenergy/src/G4CrossSectionHandler.cc | 53 +- .../lowenergy/src/G4CutsPerMaterialWarning.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 | 10 +- .../lowenergy/src/G4LowEnergyCompton.cc | 2 +- .../src/G4LowEnergyGammaConversion.cc | 2 +- .../lowenergy/src/G4LowEnergyIonisation.cc | 31 +- .../lowenergy/src/G4LowEnergyPhotoElectric.cc | 2 +- .../src/G4LowEnergyPolarizedCompton.cc | 2 +- .../lowenergy/src/G4LowEnergyRayleigh.cc | 44 +- .../lowenergy/src/G4RangeTest.cc | 2 +- .../lowenergy/src/G4SemiLogInterpolation.cc | 2 +- .../lowenergy/src/G4ShellData.cc | 2 +- .../lowenergy/src/G4ShellEMDataSet.cc | 2 +- .../lowenergy/src/G4VCrossSectionHandler.cc | 88 +- .../lowenergy/src/G4VeLowEnergyLoss.cc | 69 +- .../src/G4eBremsstrahlungSpectrum.cc | 2 +- .../src/G4eIonisationCrossSectionHandler.cc | 38 +- .../lowenergy/src/G4eIonisationParameters.cc | 2 +- .../lowenergy/src/G4eIonisationSpectrum.cc | 107 +- .../lowenergy/src/G4eLowEnergyLoss.cc | 18 +- .../lowenergy/src/G4hBetheBlochModel.cc | 2 + .../lowenergy/src/G4hIonEffChargeSquare.cc | 4 +- .../lowenergy/src/G4hLowEnergyIonisation.cc | 77 +- .../lowenergy/src/G4hLowEnergyLoss.cc | 67 +- .../lowenergy/src/G4hParametrisedLossModel.cc | 2 +- .../lowenergy/src/G4hShellCrossSection.cc | 13 +- .../processes/electromagnetic/muons/History | 14 +- .../muons/include/G4MuBetheBlochModel.hh | 159 + .../muons/include/G4MuBremsstrahlung.hh | 2 +- .../muons/include/G4MuBremsstrahlung.icc | 2 +- .../muons/include/G4MuBremsstrahlungModel.hh | 163 + .../muons/include/G4MuBremsstrahlungSTD.hh | 117 + .../muons/include/G4MuIonisation.hh | 2 +- .../muons/include/G4MuIonisation.icc | 2 +- .../muons/include/G4MuIonisationSTD.hh | 130 + .../muons/include/G4MuPairProduction.hh | 2 +- .../muons/include/G4MuPairProduction.icc | 2 +- .../muons/include/G4MuPairProductionModel.hh | 164 + .../muons/include/G4MuPairProductionSTD.hh | 117 + .../muons/include/G4VMuEnergyLoss.hh | 2 +- .../muons/include/G4VMuEnergyLoss.icc | 2 +- .../muons/src/G4MuBetheBlochModel.cc | 362 + .../muons/src/G4MuBremsstrahlung.cc | 2 +- .../muons/src/G4MuBremsstrahlungModel.cc | 578 + .../muons/src/G4MuBremsstrahlungSTD.cc | 119 + .../muons/src/G4MuIonisation.cc | 7 +- .../muons/src/G4MuIonisationSTD.cc | 138 + .../muons/src/G4MuPairProduction.cc | 2 +- .../muons/src/G4MuPairProductionModel.cc | 775 + .../muons/src/G4MuPairProductionSTD.cc | 123 + .../muons/src/G4VMuEnergyLoss.cc | 2 +- .../electromagnetic/standard/History | 38 +- .../standard/include/G4ComptonScattering.hh | 2 +- .../standard/include/G4ComptonScattering.icc | 2 +- .../standard/include/G4GammaConversion.hh | 2 +- .../standard/include/G4GammaConversion.icc | 2 +- .../include/G4GammaConversionToMuons.hh | 2 +- .../include/G4GammaConversionToMuons.icc | 2 +- .../standard/include/G4MollerBhabhaModel.hh | 139 + .../standard/include/G4PAIonisation.hh | 17 +- .../standard/include/G4PAIonisation.icc | 18 +- .../standard/include/G4PAIxSection.hh | 4 +- .../standard/include/G4PhotoElectricEffect.hh | 2 +- .../include/G4PhotoElectricEffect.icc | 2 +- .../include/G4PolarizedComptonScattering.hh | 2 +- .../include/G4SynchrotronRadiation.hh | 2 +- .../standard/include/G4VPAIenergyLoss.hh | 2 +- .../standard/include/G4VeEnergyLoss.hh | 2 +- .../standard/include/G4VeEnergyLoss.icc | 2 +- .../standard/include/G4VhEnergyLoss.hh | 2 +- .../standard/include/G4VhEnergyLoss.icc | 2 +- .../standard/include/G4eBremsstrahlung.hh | 2 +- .../standard/include/G4eBremsstrahlung.icc | 2 +- .../include/G4eBremsstrahlungModel.hh | 201 + .../standard/include/G4eBremsstrahlungSTD.hh | 103 + .../standard/include/G4eIonisation.hh | 2 +- .../standard/include/G4eIonisation.icc | 2 +- .../standard/include/G4eIonisationSTD.hh | 130 + .../standard/include/G4eplusAnnihilation.hh | 2 +- .../standard/include/G4eplusAnnihilation.icc | 2 +- .../standard/include/G4hIonisation.hh | 2 +- .../standard/include/G4hIonisation.icc | 2 +- .../standard/include/G4hIonisationSTD.hh | 129 + .../standard/include/G4ionIonisation.hh | 146 + .../standard/src/G4ComptonScattering.cc | 2 +- .../standard/src/G4GammaConversion.cc | 2 +- .../standard/src/G4GammaConversionToMuons.cc | 14 +- .../standard/src/G4MollerBhabhaModel.cc | 352 + .../standard/src/G4PAIonisation.cc | 26 +- .../standard/src/G4PAIxSection.cc | 4 +- .../standard/src/G4PhotoElectricEffect.cc | 2 +- .../src/G4PolarizedComptonScattering.cc | 2 +- .../standard/src/G4SynchrotronRadiation.cc | 2 +- .../standard/src/G4VPAIenergyLoss.cc | 2 +- .../standard/src/G4VeEnergyLoss.cc | 2 +- .../standard/src/G4VhEnergyLoss.cc | 2 +- .../standard/src/G4eBremsstrahlung.cc | 26 +- .../standard/src/G4eBremsstrahlungModel.cc | 871 + .../standard/src/G4eBremsstrahlungSTD.cc | 115 + .../standard/src/G4eIonisation.cc | 2 +- .../standard/src/G4eIonisationSTD.cc | 116 + .../standard/src/G4eplusAnnihilation.cc | 2 +- .../standard/src/G4hIonisation.cc | 9 +- .../standard/src/G4hIonisationSTD.cc | 144 + .../standard/src/G4ionIonisation.cc | 116 + .../processes/electromagnetic/utils/History | 48 +- .../utils/include/G4BetheBlochModel.hh | 150 + .../utils/include/G4BraggModel.hh | 168 + .../utils/include/G4EmModelManager.hh | 164 + .../utils/include/G4EnergyLossMessenger.hh | 2 +- .../utils/include/G4EnergyLossMessengerSTD.hh | 95 + .../utils/include/G4EnergyLossTables.hh | 2 +- .../utils/include/G4LossTableBuilder.hh | 79 + .../utils/include/G4LossTableManager.hh | 230 + .../utils/include/G4MultipleScattering.hh | 35 +- .../utils/include/G4MultipleScattering.icc | 2 +- .../utils/include/G4MultipleScatteringSTD.hh | 236 + .../utils/include/G4MultipleScatteringSTD.icc | 93 + .../utils/include/G4SCProcessorStand.hh | 122 + .../utils/include/G4UniversalFluctuation.hh | 107 + .../utils/include/G4VEmFluctuationModel.hh | 81 + .../utils/include/G4VEmModel.hh | 117 + .../utils/include/G4VEnergyLoss.hh | 6 +- .../utils/include/G4VEnergyLossSTD.hh | 539 + .../utils/include/G4VSubCutoffProcessor.hh | 92 + .../utils/src/G4BetheBlochModel.cc | 300 + .../electromagnetic/utils/src/G4BraggModel.cc | 663 + .../utils/src/G4EmModelManager.cc | 585 + .../utils/src/G4EnergyLossMessenger.cc | 14 +- .../utils/src/G4EnergyLossMessengerSTD.cc | 190 + .../utils/src/G4EnergyLossTables.cc | 2 +- .../utils/src/G4LossTableBuilder.cc | 200 + .../utils/src/G4LossTableManager.cc | 557 + .../utils/src/G4MultipleScattering.cc | 247 +- .../utils/src/G4MultipleScatteringSTD.cc | 839 + .../utils/src/G4SCProcessorStand.cc | 190 + .../utils/src/G4UniversalFluctuation.cc | 321 + .../utils/src/G4VEnergyLoss.cc | 32 +- .../utils/src/G4VEnergyLossSTD.cc | 915 + .../processes/electromagnetic/xrays/History | 15 +- .../xrays/include/G4Cerenkov.hh | 2 +- .../xrays/include/G4ForwardXrayTR.hh | 2 +- .../xrays/include/G4GammaXTRadiator.hh | 2 +- .../xrays/include/G4RegularXTRadiator.hh | 2 +- .../xrays/include/G4Scintillation.hh | 126 +- .../xrays/include/G4TransitionRadiation.hh | 2 +- .../xrays/include/G4VXTRenergyLoss.hh | 2 +- .../electromagnetic/xrays/src/G4Cerenkov.cc | 2 +- .../xrays/src/G4ForwardXrayTR.cc | 2 +- .../xrays/src/G4GammaXTRadiator.cc | 2 +- .../xrays/src/G4RegularXTRadiator.cc | 2 +- .../xrays/src/G4Scintillation.cc | 242 +- .../xrays/src/G4TransitionRadiation.cc | 2 +- .../xrays/src/G4VXTRenergyLoss.cc | 2 +- source/processes/hadronic/GNUmakefile | 35 +- .../include/G4CrossSectionDataStore.hh | 2 +- .../include/G4ElectroNuclearCrossSection.hh | 6 +- .../include/G4HadronCaptureDataSet.hh | 2 +- .../include/G4HadronCrossSections.hh | 6 +- .../include/G4HadronElasticDataSet.hh | 2 +- .../include/G4HadronFissionDataSet.hh | 2 +- .../include/G4HadronInelasticDataSet.hh | 2 +- .../include/G4IonProtonCrossSection.hh | 2 +- .../include/G4NeutronInelasticCrossSection.hh | 5 +- .../include/G4PhotoNuclearCrossSection.hh | 6 +- .../cross_sections/include/G4PiData.hh | 44 + .../include/G4PiNuclearCrossSection.hh | 135 + .../include/G4ProtonInelasticCrossSection.hh | 5 +- .../include/G4TripathiCrossSection.hh | 2 +- .../include/G4VCrossSectionDataSet.hh | 2 +- .../src/G4CrossSectionDataStore.cc | 2 +- .../src/G4ElectroNuclearCrossSection.cc | 22 +- .../src/G4HadronCaptureDataSet.cc | 6 +- .../src/G4HadronCrossSections.cc | 6 +- .../src/G4HadronElasticDataSet.cc | 6 +- .../src/G4HadronFissionDataSet.cc | 6 +- .../src/G4HadronInelasticDataSet.cc | 6 +- .../src/G4NeutronInelasticCrossSection.cc | 2 +- .../src/G4PhotoNuclearCrossSection.cc | 8 +- .../hadronic/cross_sections/src/G4PiData.cc | 87 + .../src/G4PiNuclearCrossSection.cc | 244 + .../src/G4ProtonInelasticCrossSection.cc | 2 +- .../src/G4TripathiCrossSection.cc | 2 +- .../src/G4VCrossSectionDataSet.cc | 6 +- .../include/G4EnergyRangeManager.hh | 6 +- .../management/include/G4HadLeadBias.hh | 41 + .../include/G4HadronInelasticProcess.hh | 4 +- .../include/G4HadronicInteraction.hh | 10 +- .../include/G4HadronicInteractionRegistry.hh | 4 +- .../management/include/G4HadronicProcess.hh | 15 +- .../include/G4InelasticInteraction.hh | 6 +- .../management/include/G4IsoParticleChange.hh | 2 +- .../include/G4VIsotopeProduction.hh | 2 +- .../include/G4VLeadingParticleBiasing.hh | 39 + .../management/src/G4EnergyRangeManager.cc | 6 +- .../hadronic/management/src/G4HadLeadBias.cc | 164 + .../src/G4HadronInelasticProcess.cc | 2 +- .../management/src/G4HadronicInteraction.cc | 2 +- .../src/G4HadronicInteractionRegistry.cc | 13 +- .../management/src/G4HadronicProcess.cc | 3 +- .../management/src/G4InelasticInteraction.cc | 35 +- source/processes/hadronic/models/GNUmakefile | 26 +- .../hadronic/models/cascade/GNUmakefile | 2 + .../processes/hadronic/models/cascade/README | 6 - .../models/cascade/cascade/GNUmakefile | 43 + .../cascade/cascade/include/G4Analyser.hh | 78 + .../cascade/cascade/include/G4BertiniData.hh | 58 + .../include/G4BertiniElasticCollision.hh | 42 +- .../include/G4BertiniHydrogenCollision.hh | 36 + .../cascade/include/G4BertiniNucleiModel.hh | 230 + .../cascade/include/G4BertiniRegionModel.hh | 77 + .../cascade/cascade/include/G4BigBanger.hh | 78 + .../cascade/include/G4CascadParticle.hh | 138 + .../include/G4CascadSpecialFunctions.hh | 46 + .../cascade/include/G4CascadeInterface.hh | 70 + .../cascade/cascade/include/G4Collider.hh | 42 + .../cascade/include/G4CollisionOutput.hh | 158 + .../include/G4ElementaryParticleCollider.hh | 106 + .../include/G4EquilibriumEvaporator.hh | 81 + .../cascade/include/G4ExitonConfiguration.hh | 83 + .../cascade/include/G4FissionConfiguration.hh | 60 +- .../cascade/cascade/include/G4FissionStore.hh | 62 + .../cascade/cascade/include/G4Fissioner.hh | 67 + .../cascade/include/G4InteractionCase.hh | 78 + .../cascade/include/G4IntraNucleiCascader.hh | 61 + .../cascade/include/G4InuclCollider.hh | 117 + .../include/G4InuclElementaryParticle.hh | 278 + .../cascade/cascade/include/G4InuclNuclei.hh | 171 + .../cascade/include/G4InuclParticle.hh | 86 + .../include/G4InuclSpecialFunctions.hh | 72 + .../cascade/include/G4LorentzConvertor.hh | 138 + .../include/G4NonEquilibriumEvaporator.hh | 49 + .../cascade/cascade/include/G4NuclWatcher.hh | 277 + .../cascade/cascade/include/G4NucleiModel.hh | 194 + .../cascade/include/G4ParticleLargerEkin.hh | 31 +- .../cascade/cascade/include/G4RegionModel.hh | 78 + .../cascade/cascade/include/G4WatcherGun.hh | 46 + .../models/cascade/cascade/src/G4Analyser.cc | 351 + .../cascade/cascade/src/G4BertiniData.cc | 29 + .../cascade/src/G4BertiniNucleiModel.cc | 1412 + .../cascade/src/G4BertiniRegionModel.cc | 189 + .../models/cascade/cascade/src/G4BigBanger.cc | 358 + .../cascade/cascade/src/G4CascadParticle.cc | 95 + .../cascade/src/G4CascadSpecialFunctions.cc | 382 + .../cascade/cascade/src/G4CascadeInterface.cc | 359 + .../cascade/cascade/src/G4CollisionOutput.cc | 312 + .../src/G4ElementaryParticleCollider.cc | 1968 ++ .../cascade/src/G4EquilibriumEvaporator.cc | 724 + .../cascade/cascade/src/G4FissionStore.cc | 88 +- .../models/cascade/cascade/src/G4Fissioner.cc | 396 + .../cascade/src/G4IntraNucleiCascader.cc | 363 + .../cascade/cascade/src/G4InuclCollider.cc | 406 + .../cascade/src/G4InuclSpecialFunctions.cc | 166 + .../cascade/cascade/src/G4LorentzConvertor.cc | 301 + .../cascade/src/G4NonEquilibriumEvaporator.cc | 484 + .../cascade/cascade/src/G4NucleiModel.cc | 1482 + .../cascade/cascade/src/G4RegionModel.cc | 189 + .../cascade/cascade/src/G4WatcherGun.cc | 1558 + .../cascade/cascade/src/bindingEnergy.cc | 71 + .../cascade/src/bindingEnergyAsymptotic.cc | 49 + .../cascade/cascade/src/bindingEnergyExact.cc | 321 + .../cascade/src/bindingEnergyKummel.cc | 322 + .../cascade/cascade/src/nucleiLevelDensity.cc | 88 + .../models/cascade/cascade/src/paraMaker.cc | 130 + .../hadronic/models/cascade/doc/GNUmakefile | 12 + .../hadronic/models/cascade/doc/README | 4 + .../hadronic/models/cascade/doc/espcrc2.sty | 226 + .../models/cascade/doc/evaporationUml.eps | 852 + .../hadronic/models/cascade/doc/hetc.eps | 670 + .../hadronic/models/cascade/doc/hetc.mdl | 9142 +++++ .../hadronic/models/cascade/doc/manCascade.ps | 7067 ++++ .../models/cascade/doc/manCascade.tex | 53 + .../hadronic/models/cascade/doc/manHetc.tex | 2393 ++ .../hadronic/models/cascade/doc/manInucl.tex | 702 + .../hadronic/models/cascade/doc/massPb.eps2 | 990 + .../models/cascade/doc/preEquilibriumUml.eps | 726 + .../evaporation/include/G4BEChargedChannel.hh | 2 +- .../include/G4BEDeuteronChannel.hh | 2 +- .../include/G4BEGammaDeexcitation.hh | 2 +- .../evaporation/include/G4BEHe3Channel.hh | 2 +- .../evaporation/include/G4BEHe4Channel.hh | 2 +- .../evaporation/include/G4BENeutronChannel.hh | 2 +- .../evaporation/include/G4BEProtonChannel.hh | 2 +- .../evaporation/include/G4BETritonChannel.hh | 2 +- .../include/G4BertiniEvaporation.hh | 2 +- .../include/G4BertiniEvaporationChannel.hh | 2 +- .../evaporation/src/G4BEChargedChannel.cc | 2 +- .../evaporation/src/G4BEDeuteronChannel.cc | 2 +- .../evaporation/src/G4BEGammaDeexcitation.cc | 2 +- .../cascade/evaporation/src/G4BEHe3Channel.cc | 2 +- .../cascade/evaporation/src/G4BEHe4Channel.cc | 2 +- .../evaporation/src/G4BENeutronChannel.cc | 2 +- .../evaporation/src/G4BEProtonChannel.cc | 2 +- .../evaporation/src/G4BETritonChannel.cc | 2 +- .../evaporation/src/G4BertiniEvaporation.cc | 2 +- .../src/G4BertiniEvaporationChannel.cc | 2 +- .../hadronic/models/cascade/hetc.wst | 85 - .../models/cascade/pre_compound/GNUmakefile | 39 + .../pre_compound/include/G4PreEquilibrium.hh | 479 + .../pre_compound/src/G4PreEquilibrium.cc | 3610 ++ .../body/include/G4Chips.hh | 6 +- .../body/include/G4QCHIPSWorld.hh | 6 +- .../body/include/G4QCandidate.hh | 9 +- .../body/include/G4QCandidateVector.hh | 6 +- .../body/include/G4QChipolino.hh | 6 +- .../body/include/G4QContent.hh | 6 +- .../body/include/G4QDecayChan.hh | 6 +- .../body/include/G4QDecayChanVector.hh | 6 +- .../body/include/G4QEnvironment.hh | 6 +- .../body/include/G4QHadron.hh | 8 +- .../body/include/G4QHadronVector.hh | 6 +- .../body/include/G4QNucleus.hh | 6 +- .../body/include/G4QPDGCode.hh | 6 +- .../body/include/G4QPDGCodeVector.hh | 6 +- .../body/include/G4QParentCluster.hh | 6 +- .../body/include/G4QParentClusterVector.hh | 6 +- .../body/include/G4QParticle.hh | 6 +- .../body/include/G4QParticleVector.hh | 6 +- .../body/include/G4QSelector.hh | 6 +- .../body/include/G4Quasmon.hh | 6 +- .../body/include/G4QuasmonVector.hh | 6 +- .../body/src/G4QCHIPSWorld.cc | 28 +- .../body/src/G4QCandidate.cc | 6 +- .../body/src/G4QChipolino.cc | 6 +- .../body/src/G4QContent.cc | 6 +- .../body/src/G4QDecayChan.cc | 6 +- .../body/src/G4QEnvironment.cc | 1365 +- .../body/src/G4QHadron.cc | 46 +- .../body/src/G4QNucleus.cc | 48 +- .../body/src/G4QPDGCode.cc | 6 +- .../body/src/G4QParentCluster.cc | 6 +- .../body/src/G4QParticle.cc | 6 +- .../body/src/G4QSelector.cc | 6 +- .../body/src/G4Quasmon.cc | 154 +- .../include/G4ChiralInvariantPhaseSpace.hh | 2 +- .../include/G4ElectroNuclearReaction.hh | 6 +- .../include/G4GammaNuclearReaction.hh | 6 +- .../include/G4PionMinusNuclearAtRestChips.hh | 2 +- .../include/G4PionMinusNuclearReaction.hh | 2 +- .../include/G4ProtonAntiProtonAtRestChips.hh | 2 +- .../include/G4ProtonAntiProtonReaction.hh | 2 +- .../include/G4StringChipsInterface.hh | 2 +- .../G4StringChipsParticleLevelInterface.hh | 2 +- .../interface/src/G4StringChipsInterface.cc | 2 +- .../G4StringChipsParticleLevelInterface.cc | 2 +- .../coherent_elastic/include/G4LEnpData.hh | 2 +- .../models/coherent_elastic/include/G4LEpp.hh | 2 +- .../coherent_elastic/include/G4LEppData.hh | 2 +- .../models/coherent_elastic/src/G4LEnp.cc | 2 +- .../models/coherent_elastic/src/G4LEpp.cc | 6 +- .../hadronic/models/generator/GNUmakefile | 7 +- .../generator/de_excitation/GNUmakefile | 7 +- .../generator/de_excitation/History.icm | 67 + .../include/G4AlphaCoulombBarrier.hh | 6 +- .../include/G4AlphaEvaporationChannel.hh | 6 +- .../include/G4AlphaEvaporationProbability.hh | 6 +- .../include/G4AlphaGEMChannel.hh | 2 +- .../include/G4AlphaGEMProbability.hh | 2 +- .../de_excitation/include/G4B10GEMChannel.hh | 2 +- .../include/G4B10GEMCoulombBarrier.hh | 6 +- .../include/G4B10GEMProbability.hh | 2 +- .../de_excitation/include/G4B11GEMChannel.hh | 2 +- .../include/G4B11GEMCoulombBarrier.hh | 6 +- .../include/G4B11GEMProbability.hh | 2 +- .../de_excitation/include/G4B12GEMChannel.hh | 2 +- .../include/G4B12GEMCoulombBarrier.hh | 6 +- .../include/G4B12GEMProbability.hh | 2 +- .../de_excitation/include/G4B13GEMChannel.hh | 2 +- .../include/G4B13GEMCoulombBarrier.hh | 6 +- .../include/G4B13GEMProbability.hh | 2 +- .../de_excitation/include/G4B8GEMChannel.hh | 2 +- .../include/G4B8GEMCoulombBarrier.hh | 6 +- .../include/G4B8GEMProbability.hh | 2 +- .../include/G4B9FermiFragment.hh | 6 +- .../de_excitation/include/G4Be10GEMChannel.hh | 2 +- .../include/G4Be10GEMCoulombBarrier.hh | 6 +- .../include/G4Be10GEMProbability.hh | 2 +- .../de_excitation/include/G4Be11GEMChannel.hh | 2 +- .../include/G4Be11GEMCoulombBarrier.hh | 6 +- .../include/G4Be11GEMProbability.hh | 2 +- .../de_excitation/include/G4Be12GEMChannel.hh | 2 +- .../include/G4Be12GEMCoulombBarrier.hh | 6 +- .../include/G4Be12GEMProbability.hh | 2 +- .../de_excitation/include/G4Be7GEMChannel.hh | 2 +- .../include/G4Be7GEMCoulombBarrier.hh | 6 +- .../include/G4Be7GEMProbability.hh | 2 +- .../include/G4Be8FermiFragment.hh | 6 +- .../de_excitation/include/G4Be9GEMChannel.hh | 2 +- .../include/G4Be9GEMCoulombBarrier.hh | 6 +- .../include/G4Be9GEMProbability.hh | 2 +- .../de_excitation/include/G4C10GEMChannel.hh | 2 +- .../include/G4C10GEMCoulombBarrier.hh | 6 +- .../include/G4C10GEMProbability.hh | 2 +- .../de_excitation/include/G4C11GEMChannel.hh | 2 +- .../include/G4C11GEMCoulombBarrier.hh | 6 +- .../include/G4C11GEMProbability.hh | 2 +- .../de_excitation/include/G4C12GEMChannel.hh | 2 +- .../include/G4C12GEMCoulombBarrier.hh | 6 +- .../include/G4C12GEMProbability.hh | 2 +- .../de_excitation/include/G4C13GEMChannel.hh | 2 +- .../include/G4C13GEMCoulombBarrier.hh | 6 +- .../include/G4C13GEMProbability.hh | 2 +- .../de_excitation/include/G4C14GEMChannel.hh | 2 +- .../include/G4C14GEMCoulombBarrier.hh | 6 +- .../include/G4C14GEMProbability.hh | 2 +- .../de_excitation/include/G4C15GEMChannel.hh | 2 +- .../include/G4C15GEMCoulombBarrier.hh | 6 +- .../include/G4C15GEMProbability.hh | 2 +- .../de_excitation/include/G4C16GEMChannel.hh | 2 +- .../include/G4C16GEMCoulombBarrier.hh | 6 +- .../include/G4C16GEMProbability.hh | 2 +- .../G4CameronGilbertPairingCorrections.hh | 6 +- .../G4CameronGilbertShellCorrections.hh | 6 +- .../G4CameronShellPlusPairingCorrections.hh | 6 +- .../G4CameronTruranHilfPairingCorrections.hh | 6 +- .../G4CameronTruranHilfShellCorrections.hh | 6 +- .../include/G4CompetitiveFission.hh | 7 +- .../G4ConstantLevelDensityParameter.hh | 6 +- .../include/G4ContinuumGammaDeexcitation.hh | 2 +- .../include/G4ContinuumGammaTransition.hh | 2 +- .../include/G4CookPairingCorrections.hh | 2 +- .../include/G4CookShellCorrections.hh | 2 +- .../de_excitation/include/G4CoulombBarrier.hh | 6 +- .../include/G4DeuteronCoulombBarrier.hh | 6 +- .../include/G4DeuteronEvaporationChannel.hh | 6 +- .../G4DeuteronEvaporationProbability.hh | 6 +- .../include/G4DeuteronGEMChannel.hh | 2 +- .../include/G4DeuteronGEMProbability.hh | 2 +- .../include/G4DiscreteGammaDeexcitation.hh | 61 +- .../include/G4DiscreteGammaTransition.hh | 33 +- .../include/G4DummyProbability.hh | 2 +- .../de_excitation/include/G4E1Probability.hh | 2 +- .../include/G4E1Probability001.hh | 2 +- .../include/G4E1Probability01.hh | 2 +- .../include/G4E1Probability10.hh | 2 +- .../include/G4E1Probability100.hh | 2 +- .../include/G4E1SingleProbability001.hh | 2 +- .../include/G4E1SingleProbability01.hh | 2 +- .../include/G4E1SingleProbability1.hh | 2 +- .../include/G4E1SingleProbability10.hh | 2 +- .../include/G4E1SingleProbability100.hh | 2 +- .../de_excitation/include/G4Evaporation.hh | 7 +- .../include/G4EvaporationChannel.hh | 7 +- .../include/G4EvaporationFactory.hh | 6 +- .../include/G4EvaporationGEMFactory.hh | 6 +- .../G4EvaporationLevelDensityParameter.hh | 6 +- .../include/G4EvaporationProbability.hh | 6 +- .../include/G4ExcitationHandler.hh | 10 +- .../de_excitation/include/G4F17GEMChannel.hh | 2 +- .../include/G4F17GEMCoulombBarrier.hh | 6 +- .../include/G4F17GEMProbability.hh | 2 +- .../de_excitation/include/G4F18GEMChannel.hh | 2 +- .../include/G4F18GEMCoulombBarrier.hh | 6 +- .../include/G4F18GEMProbability.hh | 2 +- .../de_excitation/include/G4F19GEMChannel.hh | 2 +- .../include/G4F19GEMCoulombBarrier.hh | 6 +- .../include/G4F19GEMProbability.hh | 2 +- .../de_excitation/include/G4F20GEMChannel.hh | 2 +- .../include/G4F20GEMCoulombBarrier.hh | 6 +- .../include/G4F20GEMProbability.hh | 2 +- .../de_excitation/include/G4F21GEMChannel.hh | 2 +- .../include/G4F21GEMCoulombBarrier.hh | 6 +- .../include/G4F21GEMProbability.hh | 2 +- .../de_excitation/include/G4FermiBreakUp.hh | 9 +- .../include/G4FermiConfiguration.hh | 6 +- .../include/G4FermiConfigurationList.hh | 6 +- .../de_excitation/include/G4FissionBarrier.hh | 6 +- .../include/G4FissionLevelDensityParameter.hh | 6 +- .../include/G4FissionParameters.hh | 6 +- .../include/G4FissionProbability.hh | 6 +- .../de_excitation/include/G4GEMChannel.hh | 5 +- .../include/G4GEMCoulombBarrierHE.hh | 6 +- .../include/G4He3CoulombBarrier.hh | 6 +- .../include/G4He3EvaporationChannel.hh | 6 +- .../include/G4He3EvaporationProbability.hh | 6 +- .../de_excitation/include/G4He3GEMChannel.hh | 2 +- .../include/G4He3GEMProbability.hh | 2 +- .../include/G4He5FermiFragment.hh | 6 +- .../de_excitation/include/G4He6GEMChannel.hh | 2 +- .../include/G4He6GEMCoulombBarrier.hh | 6 +- .../include/G4He6GEMProbability.hh | 2 +- .../de_excitation/include/G4He8GEMChannel.hh | 2 +- .../include/G4He8GEMCoulombBarrier.hh | 6 +- .../include/G4He8GEMProbability.hh | 2 +- .../include/G4Li5FermiFragment.hh | 6 +- .../de_excitation/include/G4Li6GEMChannel.hh | 2 +- .../include/G4Li6GEMCoulombBarrier.hh | 6 +- .../include/G4Li6GEMProbability.hh | 2 +- .../de_excitation/include/G4Li7GEMChannel.hh | 2 +- .../include/G4Li7GEMCoulombBarrier.hh | 6 +- .../include/G4Li7GEMProbability.hh | 2 +- .../de_excitation/include/G4Li8GEMChannel.hh | 2 +- .../include/G4Li8GEMCoulombBarrier.hh | 6 +- .../include/G4Li8GEMProbability.hh | 2 +- .../de_excitation/include/G4Li9GEMChannel.hh | 2 +- .../include/G4Li9GEMCoulombBarrier.hh | 6 +- .../include/G4Li9GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg22GEMChannel.hh | 2 +- .../include/G4Mg22GEMCoulombBarrier.hh | 6 +- .../include/G4Mg22GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg23GEMChannel.hh | 2 +- .../include/G4Mg23GEMCoulombBarrier.hh | 6 +- .../include/G4Mg23GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg24GEMChannel.hh | 2 +- .../include/G4Mg24GEMCoulombBarrier.hh | 6 +- .../include/G4Mg24GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg25GEMChannel.hh | 2 +- .../include/G4Mg25GEMCoulombBarrier.hh | 6 +- .../include/G4Mg25GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg26GEMChannel.hh | 2 +- .../include/G4Mg26GEMCoulombBarrier.hh | 6 +- .../include/G4Mg26GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg27GEMChannel.hh | 2 +- .../include/G4Mg27GEMCoulombBarrier.hh | 6 +- .../include/G4Mg27GEMProbability.hh | 2 +- .../de_excitation/include/G4Mg28GEMChannel.hh | 2 +- .../include/G4Mg28GEMCoulombBarrier.hh | 6 +- .../include/G4Mg28GEMProbability.hh | 2 +- .../de_excitation/include/G4N12GEMChannel.hh | 2 +- .../include/G4N12GEMCoulombBarrier.hh | 6 +- .../include/G4N12GEMProbability.hh | 2 +- .../de_excitation/include/G4N13GEMChannel.hh | 2 +- .../include/G4N13GEMCoulombBarrier.hh | 6 +- .../include/G4N13GEMProbability.hh | 2 +- .../de_excitation/include/G4N14GEMChannel.hh | 2 +- .../include/G4N14GEMCoulombBarrier.hh | 6 +- .../include/G4N14GEMProbability.hh | 2 +- .../de_excitation/include/G4N15GEMChannel.hh | 2 +- .../include/G4N15GEMCoulombBarrier.hh | 6 +- .../include/G4N15GEMProbability.hh | 2 +- .../de_excitation/include/G4N16GEMChannel.hh | 2 +- .../include/G4N16GEMCoulombBarrier.hh | 6 +- .../include/G4N16GEMProbability.hh | 2 +- .../de_excitation/include/G4N17GEMChannel.hh | 2 +- .../include/G4N17GEMCoulombBarrier.hh | 6 +- .../include/G4N17GEMProbability.hh | 2 +- .../de_excitation/include/G4Na21GEMChannel.hh | 2 +- .../include/G4Na21GEMCoulombBarrier.hh | 6 +- .../include/G4Na21GEMProbability.hh | 2 +- .../de_excitation/include/G4Na22GEMChannel.hh | 2 +- .../include/G4Na22GEMCoulombBarrier.hh | 6 +- .../include/G4Na22GEMProbability.hh | 2 +- .../de_excitation/include/G4Na23GEMChannel.hh | 2 +- .../include/G4Na23GEMCoulombBarrier.hh | 6 +- .../include/G4Na23GEMProbability.hh | 2 +- .../de_excitation/include/G4Na24GEMChannel.hh | 2 +- .../include/G4Na24GEMCoulombBarrier.hh | 6 +- .../include/G4Na24GEMProbability.hh | 2 +- .../de_excitation/include/G4Na25GEMChannel.hh | 2 +- .../include/G4Na25GEMCoulombBarrier.hh | 6 +- .../include/G4Na25GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne18GEMChannel.hh | 2 +- .../include/G4Ne18GEMCoulombBarrier.hh | 6 +- .../include/G4Ne18GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne19GEMChannel.hh | 2 +- .../include/G4Ne19GEMCoulombBarrier.hh | 6 +- .../include/G4Ne19GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne20GEMChannel.hh | 2 +- .../include/G4Ne20GEMCoulombBarrier.hh | 6 +- .../include/G4Ne20GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne21GEMChannel.hh | 2 +- .../include/G4Ne21GEMCoulombBarrier.hh | 6 +- .../include/G4Ne21GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne22GEMChannel.hh | 2 +- .../include/G4Ne22GEMCoulombBarrier.hh | 6 +- .../include/G4Ne22GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne23GEMChannel.hh | 2 +- .../include/G4Ne23GEMCoulombBarrier.hh | 6 +- .../include/G4Ne23GEMProbability.hh | 2 +- .../de_excitation/include/G4Ne24GEMChannel.hh | 2 +- .../include/G4Ne24GEMCoulombBarrier.hh | 6 +- .../include/G4Ne24GEMProbability.hh | 2 +- .../include/G4NeutronCoulombBarrier.hh | 6 +- .../include/G4NeutronEvaporationChannel.hh | 6 +- .../G4NeutronEvaporationProbability.hh | 6 +- .../include/G4NeutronGEMChannel.hh | 2 +- .../include/G4NeutronGEMProbability.hh | 2 +- .../de_excitation/include/G4NuclearLevel.hh | 51 +- .../include/G4NuclearLevelManager.hh | 20 +- .../de_excitation/include/G4O14GEMChannel.hh | 2 +- .../include/G4O14GEMCoulombBarrier.hh | 6 +- .../include/G4O14GEMProbability.hh | 2 +- .../de_excitation/include/G4O15GEMChannel.hh | 2 +- .../include/G4O15GEMCoulombBarrier.hh | 6 +- .../include/G4O15GEMProbability.hh | 2 +- .../de_excitation/include/G4O16GEMChannel.hh | 2 +- .../include/G4O16GEMCoulombBarrier.hh | 6 +- .../include/G4O16GEMProbability.hh | 2 +- .../de_excitation/include/G4O17GEMChannel.hh | 2 +- .../include/G4O17GEMCoulombBarrier.hh | 6 +- .../include/G4O17GEMProbability.hh | 2 +- .../de_excitation/include/G4O18GEMChannel.hh | 2 +- .../include/G4O18GEMCoulombBarrier.hh | 6 +- .../include/G4O18GEMProbability.hh | 2 +- .../de_excitation/include/G4O19GEMChannel.hh | 2 +- .../include/G4O19GEMCoulombBarrier.hh | 6 +- .../include/G4O19GEMProbability.hh | 2 +- .../de_excitation/include/G4O20GEMChannel.hh | 2 +- .../include/G4O20GEMCoulombBarrier.hh | 6 +- .../include/G4O20GEMProbability.hh | 2 +- .../include/G4PairingCorrection.hh | 6 +- .../include/G4ParaFissionModel.hh | 2 +- .../include/G4PhotonEvaporation.hh | 108 +- .../include/G4ProtonCoulombBarrier.hh | 6 +- .../include/G4ProtonEvaporationChannel.hh | 6 +- .../include/G4ProtonEvaporationProbability.hh | 6 +- .../include/G4ProtonGEMChannel.hh | 2 +- .../include/G4ProtonGEMProbability.hh | 2 +- .../de_excitation/include/G4PtrLevelVector.hh | 2 +- .../de_excitation/include/G4RandGeneralTmp.hh | 2 +- .../include/G4RandGeneralTmp.icc | 2 +- .../include/G4ShellCorrection.hh | 6 +- .../de_excitation/include/G4Solver.hh | 6 +- .../de_excitation/include/G4Solver.icc | 2 +- .../include/G4StableFermiFragment.hh | 6 +- .../de_excitation/include/G4StatMF.hh | 9 +- .../de_excitation/include/G4StatMFChannel.hh | 6 +- .../de_excitation/include/G4StatMFFragment.hh | 6 +- .../include/G4StatMFMacroBiNucleon.hh | 6 +- .../include/G4StatMFMacroChemicalPotential.hh | 6 +- .../include/G4StatMFMacroMultiNucleon.hh | 6 +- .../include/G4StatMFMacroMultiplicity.hh | 6 +- .../include/G4StatMFMacroNucleon.hh | 6 +- .../include/G4StatMFMacroTemperature.hh | 6 +- .../include/G4StatMFMacroTetraNucleon.hh | 6 +- .../include/G4StatMFMacroTriNucleon.hh | 6 +- .../include/G4StatMFMacrocanonical.hh | 6 +- .../include/G4StatMFMicroManager.hh | 6 +- .../include/G4StatMFMicroPartition.hh | 6 +- .../include/G4StatMFMicrocanonical.hh | 6 +- .../include/G4StatMFParameters.hh | 6 +- .../include/G4TritonCoulombBarrier.hh | 6 +- .../include/G4TritonEvaporationChannel.hh | 6 +- .../include/G4TritonEvaporationProbability.hh | 6 +- .../include/G4TritonGEMChannel.hh | 2 +- .../include/G4TritonGEMProbability.hh | 2 +- .../include/G4UnstableFermiFragment.hh | 6 +- .../include/G4VCoulombBarrier.hh | 6 +- .../include/G4VEmissionProbability.hh | 6 +- .../de_excitation/include/G4VEvaporation.hh | 6 +- .../include/G4VEvaporationChannel.hh | 6 +- .../include/G4VEvaporationFactory.hh | 6 +- .../de_excitation/include/G4VFermiBreakUp.hh | 6 +- .../de_excitation/include/G4VFermiFragment.hh | 6 +- .../include/G4VFissionBarrier.hh | 6 +- .../include/G4VGammaDeexcitation.hh | 113 +- .../include/G4VGammaTransition.hh | 13 +- .../include/G4VLevelDensityParameter.hh | 6 +- .../include/G4VMultiFragmentation.hh | 6 +- .../include/G4VPhotonEvaporation.hh | 2 +- .../include/G4VStatMFEnsemble.hh | 6 +- .../include/G4VStatMFMacroCluster.hh | 6 +- .../src/G4AlphaCoulombBarrier.cc | 6 +- .../src/G4AlphaEvaporationChannel.cc | 6 +- .../src/G4AlphaEvaporationProbability.cc | 6 +- .../de_excitation/src/G4AlphaGEMChannel.cc | 2 +- .../src/G4AlphaGEMProbability.cc | 2 +- .../de_excitation/src/G4B10GEMProbability.cc | 2 +- .../de_excitation/src/G4B11GEMProbability.cc | 2 +- .../de_excitation/src/G4B12GEMProbability.cc | 2 +- .../de_excitation/src/G4B13GEMProbability.cc | 2 +- .../de_excitation/src/G4B8GEMProbability.cc | 2 +- .../de_excitation/src/G4B9FermiFragment.cc | 6 +- .../de_excitation/src/G4Be10GEMProbability.cc | 2 +- .../de_excitation/src/G4Be11GEMProbability.cc | 2 +- .../de_excitation/src/G4Be12GEMProbability.cc | 2 +- .../de_excitation/src/G4Be7GEMProbability.cc | 2 +- .../de_excitation/src/G4Be8FermiFragment.cc | 6 +- .../de_excitation/src/G4Be9GEMProbability.cc | 2 +- .../de_excitation/src/G4C10GEMProbability.cc | 2 +- .../de_excitation/src/G4C11GEMProbability.cc | 2 +- .../de_excitation/src/G4C12GEMProbability.cc | 2 +- .../de_excitation/src/G4C13GEMProbability.cc | 2 +- .../de_excitation/src/G4C14GEMProbability.cc | 2 +- .../de_excitation/src/G4C15GEMProbability.cc | 2 +- .../de_excitation/src/G4C16GEMProbability.cc | 2 +- .../src/G4CameronGilbertPairingCorrections.cc | 6 +- .../src/G4CameronGilbertShellCorrections.cc | 6 +- .../G4CameronShellPlusPairingCorrections.cc | 6 +- .../G4CameronTruranHilfPairingCorrections.cc | 6 +- .../G4CameronTruranHilfShellCorrections.cc | 6 +- .../de_excitation/src/G4CompetitiveFission.cc | 8 +- .../src/G4ConstantLevelDensityParameter.cc | 2 +- .../src/G4ContinuumGammaDeexcitation.cc | 2 +- .../src/G4ContinuumGammaTransition.cc | 2 +- .../src/G4CookPairingCorrections.cc | 2 +- .../src/G4CookShellCorrections.cc | 2 +- .../de_excitation/src/G4CoulombBarrier.cc | 6 +- .../src/G4DeuteronCoulombBarrier.cc | 6 +- .../src/G4DeuteronEvaporationChannel.cc | 6 +- .../src/G4DeuteronEvaporationProbability.cc | 6 +- .../de_excitation/src/G4DeuteronGEMChannel.cc | 2 +- .../src/G4DeuteronGEMProbability.cc | 2 +- .../src/G4DiscreteGammaDeexcitation.cc | 128 +- .../src/G4DiscreteGammaTransition.cc | 165 +- .../de_excitation/src/G4DummyProbability.cc | 2 +- .../de_excitation/src/G4E1Probability.cc | 2 +- .../de_excitation/src/G4E1Probability001.cc | 2 +- .../de_excitation/src/G4E1Probability01.cc | 2 +- .../de_excitation/src/G4E1Probability10.cc | 2 +- .../de_excitation/src/G4E1Probability100.cc | 2 +- .../src/G4E1SingleProbability001.cc | 2 +- .../src/G4E1SingleProbability01.cc | 2 +- .../src/G4E1SingleProbability1.cc | 2 +- .../src/G4E1SingleProbability10.cc | 2 +- .../src/G4E1SingleProbability100.cc | 2 +- .../de_excitation/src/G4Evaporation.cc | 10 +- .../de_excitation/src/G4EvaporationChannel.cc | 10 +- .../de_excitation/src/G4EvaporationFactory.cc | 6 +- .../src/G4EvaporationGEMFactory.cc | 6 +- .../src/G4EvaporationLevelDensityParameter.cc | 6 +- .../src/G4EvaporationProbability.cc | 6 +- .../de_excitation/src/G4ExcitationHandler.cc | 12 +- .../de_excitation/src/G4F17GEMProbability.cc | 2 +- .../de_excitation/src/G4F18GEMProbability.cc | 2 +- .../de_excitation/src/G4F19GEMProbability.cc | 2 +- .../de_excitation/src/G4F20GEMProbability.cc | 2 +- .../de_excitation/src/G4F21GEMProbability.cc | 2 +- .../de_excitation/src/G4FermiBreakUp.cc | 8 +- .../de_excitation/src/G4FermiConfiguration.cc | 6 +- .../src/G4FermiConfigurationList.cc | 6 +- .../de_excitation/src/G4FissionBarrier.cc | 6 +- .../src/G4FissionLevelDensityParameter.cc | 6 +- .../de_excitation/src/G4FissionParameters.cc | 6 +- .../de_excitation/src/G4FissionProbability.cc | 6 +- .../de_excitation/src/G4GEMChannel.cc | 8 +- .../src/G4GEMCoulombBarrierHE.cc | 6 +- .../de_excitation/src/G4He3CoulombBarrier.cc | 6 +- .../src/G4He3EvaporationChannel.cc | 6 +- .../src/G4He3EvaporationProbability.cc | 6 +- .../de_excitation/src/G4He3GEMChannel.cc | 2 +- .../de_excitation/src/G4He3GEMProbability.cc | 2 +- .../de_excitation/src/G4He5FermiFragment.cc | 6 +- .../de_excitation/src/G4He6GEMProbability.cc | 2 +- .../de_excitation/src/G4He8GEMProbability.cc | 2 +- .../de_excitation/src/G4Li5FermiFragment.cc | 6 +- .../de_excitation/src/G4Li6GEMProbability.cc | 2 +- .../de_excitation/src/G4Li7GEMProbability.cc | 2 +- .../de_excitation/src/G4Li8GEMProbability.cc | 2 +- .../de_excitation/src/G4Li9GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg22GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg23GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg24GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg25GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg26GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg27GEMProbability.cc | 2 +- .../de_excitation/src/G4Mg28GEMProbability.cc | 2 +- .../de_excitation/src/G4N12GEMProbability.cc | 2 +- .../de_excitation/src/G4N13GEMProbability.cc | 2 +- .../de_excitation/src/G4N14GEMProbability.cc | 2 +- .../de_excitation/src/G4N15GEMProbability.cc | 2 +- .../de_excitation/src/G4N16GEMProbability.cc | 2 +- .../de_excitation/src/G4N17GEMProbability.cc | 2 +- .../de_excitation/src/G4Na21GEMProbability.cc | 2 +- .../de_excitation/src/G4Na22GEMProbability.cc | 2 +- .../de_excitation/src/G4Na23GEMProbability.cc | 2 +- .../de_excitation/src/G4Na24GEMProbability.cc | 2 +- .../de_excitation/src/G4Na25GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne18GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne19GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne20GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne21GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne22GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne23GEMProbability.cc | 2 +- .../de_excitation/src/G4Ne24GEMProbability.cc | 2 +- .../src/G4NeutronCoulombBarrier.cc | 6 +- .../src/G4NeutronEvaporationChannel.cc | 6 +- .../src/G4NeutronEvaporationProbability.cc | 6 +- .../de_excitation/src/G4NeutronGEMChannel.cc | 2 +- .../src/G4NeutronGEMProbability.cc | 2 +- .../de_excitation/src/G4NuclearLevel.cc | 94 +- .../src/G4NuclearLevelManager.cc | 178 +- .../de_excitation/src/G4O14GEMProbability.cc | 2 +- .../de_excitation/src/G4O15GEMProbability.cc | 2 +- .../de_excitation/src/G4O16GEMProbability.cc | 2 +- .../de_excitation/src/G4O17GEMProbability.cc | 2 +- .../de_excitation/src/G4O18GEMProbability.cc | 2 +- .../de_excitation/src/G4O19GEMProbability.cc | 2 +- .../de_excitation/src/G4O20GEMProbability.cc | 2 +- .../de_excitation/src/G4PairingCorrection.cc | 6 +- .../de_excitation/src/G4PhotonEvaporation.cc | 96 +- .../src/G4ProtonCoulombBarrier.cc | 6 +- .../src/G4ProtonEvaporationChannel.cc | 6 +- .../src/G4ProtonEvaporationProbability.cc | 6 +- .../de_excitation/src/G4ProtonGEMChannel.cc | 2 +- .../src/G4ProtonGEMProbability.cc | 2 +- .../de_excitation/src/G4RandGeneralTmp.cc | 20 +- .../de_excitation/src/G4ShellCorrection.cc | 6 +- .../generator/de_excitation/src/G4Solver.cc | 6 +- .../src/G4StableFermiFragment.cc | 6 +- .../generator/de_excitation/src/G4StatMF.cc | 8 +- .../de_excitation/src/G4StatMFChannel.cc | 6 +- .../de_excitation/src/G4StatMFFragment.cc | 6 +- .../src/G4StatMFMacroBiNucleon.cc | 6 +- .../src/G4StatMFMacroChemicalPotential.cc | 6 +- .../src/G4StatMFMacroMultiNucleon.cc | 6 +- .../src/G4StatMFMacroMultiplicity.cc | 6 +- .../de_excitation/src/G4StatMFMacroNucleon.cc | 6 +- .../src/G4StatMFMacroTemperature.cc | 6 +- .../src/G4StatMFMacroTetraNucleon.cc | 6 +- .../src/G4StatMFMacroTriNucleon.cc | 6 +- .../src/G4StatMFMacrocanonical.cc | 6 +- .../de_excitation/src/G4StatMFMicroManager.cc | 6 +- .../src/G4StatMFMicroPartition.cc | 6 +- .../src/G4StatMFMicrocanonical.cc | 6 +- .../de_excitation/src/G4StatMFParameters.cc | 6 +- .../src/G4TritonCoulombBarrier.cc | 6 +- .../src/G4TritonEvaporationChannel.cc | 6 +- .../src/G4TritonEvaporationProbability.cc | 6 +- .../de_excitation/src/G4TritonGEMChannel.cc | 2 +- .../src/G4TritonGEMProbability.cc | 2 +- .../src/G4UnstableFermiFragment.cc | 6 +- .../de_excitation/src/G4VCoulombBarrier.cc | 6 +- .../src/G4VEmissionProbability.cc | 6 +- .../de_excitation/src/G4VEvaporation.cc | 6 +- .../src/G4VEvaporationChannel.cc | 6 +- .../src/G4VEvaporationFactory.cc | 6 +- .../de_excitation/src/G4VFermiBreakUp.cc | 6 +- .../de_excitation/src/G4VFermiFragment.cc | 6 +- .../de_excitation/src/G4VFissionBarrier.cc | 6 +- .../de_excitation/src/G4VGammaDeexcitation.cc | 140 +- .../src/G4VLevelDensityParameter.cc | 6 +- .../src/G4VMultiFragmentation.cc | 6 +- .../de_excitation/src/G4VPhotonEvaporation.cc | 2 +- .../de_excitation/src/G4VStatMFEnsemble.cc | 6 +- .../src/G4VStatMFMacroCluster.cc | 6 +- .../include/G4DiffractiveHHScatterer.hh | 4 +- .../include/G4DiffractiveSplitableHadron.hh | 6 +- .../diffractive_string/include/G4FTFModel.hh | 6 +- .../include/G4FTFParticipants.hh | 6 +- .../src/G4DiffractiveHHScatterer.cc | 2 +- .../src/G4DiffractiveSplitableHadron.cc | 6 +- .../diffractive_string/src/G4FTFModel.cc | 6 +- .../src/G4FTFParticipants.cc | 6 +- .../high_energy/include/G4TheoFSGenerator.hh | 6 +- .../high_energy/src/G4TheoFSGenerator.cc | 8 +- .../generator/kinetic_model/GNUmakefile | 3 +- .../kinetic_model/include/G4Absorber.hh | 68 + .../include/G4AntiProtonField.hh | 67 + .../kinetic_model/include/G4BinaryCascade.hh | 131 + .../include/G4FieldPropagation.hh | 72 + .../G4GeneratorPrecompoundInterface.hh | 2 +- .../kinetic_model/include/G4KM_DummyField.hh | 56 + .../include/G4KM_NucleonEqRhs.hh | 91 + .../include/G4KM_OpticalEqRhs.hh | 82 + .../kinetic_model/include/G4KaonMinusField.hh | 66 + .../kinetic_model/include/G4KaonPlusField.hh | 66 + .../kinetic_model/include/G4KaonZeroField.hh | 65 + .../kinetic_model/include/G4NeutronField.hh} | 79 +- .../kinetic_model/include/G4PionMinusField.hh | 68 + .../kinetic_model/include/G4PionPlusField.hh | 65 + .../kinetic_model/include/G4PionZeroField.hh | 65 + .../kinetic_model/include/G4ProtonField.hh | 87 + .../include/G4RKFieldIntegrator.hh | 85 + .../kinetic_model/include/G4RKPropagation.hh | 125 + .../include/G4SigmaMinusField.hh | 65 + .../kinetic_model/include/G4SigmaPlusField.hh | 65 + .../kinetic_model/include/G4SigmaZeroField.hh | 65 + .../include/G4VFieldPropagation.hh | 66 + .../include/G4VKM_NuclearDensity.hh | 59 + .../kinetic_model/include/G4VNuclearField.hh | 76 + .../generator/kinetic_model/src/G4Absorber.cc | 289 + .../kinetic_model/src/G4AntiProtonField.cc | 108 + .../kinetic_model/src/G4BinaryCascade.cc | 1910 ++ .../kinetic_model/src/G4FieldPropagation.cc | 39 + .../src/G4GeneratorPrecompoundInterface.cc | 2 +- .../kinetic_model/src/G4KM_NucleonEqRhs.cc | 107 + .../kinetic_model/src/G4KM_OpticalEqRhs.cc | 91 + .../kinetic_model/src/G4KaonMinusField.cc | 100 + .../kinetic_model/src/G4KaonPlusField.cc | 100 + .../kinetic_model/src/G4KaonZeroField.cc | 100 + .../kinetic_model/src/G4NeutronField.cc | 128 + .../kinetic_model/src/G4PionMinusField.cc | 114 + .../kinetic_model/src/G4PionPlusField.cc | 100 + .../kinetic_model/src/G4PionZeroField.cc | 97 + .../kinetic_model/src/G4ProtonField.cc | 130 + .../kinetic_model/src/G4RKFieldIntegrator.cc | 376 + .../kinetic_model/src/G4RKPropagation.cc | 608 + .../kinetic_model/src/G4SigmaMinusField.cc | 100 + .../kinetic_model/src/G4SigmaPlusField.cc | 104 + .../kinetic_model/src/G4SigmaZeroField.cc | 98 + .../kinetic_model/src/G4VFieldPropagation.cc | 72 + .../kinetic_model/src/G4VNuclearField.cc | 79 + .../management/include/G4V3DNucleus.hh | 7 +- .../management/include/G4VAnnihilator.hh | 2 +- .../management/include/G4VCrossSectionBase.hh | 2 +- .../management/include/G4VElasticScatterer.hh | 2 +- .../include/G4VHighEnergyGenerator.hh | 6 +- .../include/G4VInElasticScatterer.hh | 2 +- .../include/G4VIntraNuclearTransportModel.hh | 6 +- .../management/include/G4VKineticNucleon.hh | 6 +- .../management/include/G4VNuclearDensity.hh | 6 +- .../management/include/G4VPreCompoundModel.hh | 6 +- .../generator/management/src/G4V3DNucleus.cc | 6 +- .../management/src/G4VAnnihilator.cc | 2 +- .../management/src/G4VCrossSectionBase.cc | 2 +- .../management/src/G4VElasticScatterer.cc | 2 +- .../management/src/G4VHighEnergyGenerator.cc | 6 +- .../management/src/G4VInElasticScatterer.cc | 2 +- .../src/G4VIntraNuclearTransportModel.cc | 6 +- .../management/src/G4VKineticNucleon.cc | 6 +- .../management/src/G4VNuclearDensity.cc | 6 +- .../management/src/G4VPreCompoundModel.cc | 6 +- .../generator/pre_equilibrium/GNUmakefile | 6 +- .../include/G4LowEIonFragmentation.hh | 6 +- .../include/G4PreCompoundAlpha.hh | 8 +- .../include/G4PreCompoundDeuteron.hh | 8 +- .../include/G4PreCompoundEmission.hh | 6 +- .../include/G4PreCompoundFragmentVector.hh | 6 +- .../include/G4PreCompoundFragmentVector.icc | 6 +- .../include/G4PreCompoundHe3.hh | 8 +- .../include/G4PreCompoundModel.hh | 11 +- .../include/G4PreCompoundNeutron.hh | 8 +- .../include/G4PreCompoundParameters.hh | 6 +- .../include/G4PreCompoundProton.hh | 8 +- .../include/G4PreCompoundTransitions.hh | 6 +- .../include/G4PreCompoundTriton.hh | 8 +- .../include/G4VPreCompoundFragment.hh | 9 +- .../include/G4VPreCompoundFragment.icc | 6 +- .../include/G4VPreCompoundIon.hh | 6 +- .../include/G4VPreCompoundNucleon.hh | 6 +- .../src/G4LowEIonFragmentation.cc | 2 +- .../src/G4PreCompoundEmission.cc | 8 +- .../src/G4PreCompoundFragmentVector.cc | 6 +- .../pre_equilibrium/src/G4PreCompoundModel.cc | 14 +- .../src/G4PreCompoundParameters.cc | 6 +- .../src/G4PreCompoundTransitions.cc | 6 +- .../src/G4VPreCompoundFragment.cc | 6 +- .../pre_equilibrium/src/G4VPreCompoundIon.cc | 8 +- .../src/G4VPreCompoundNucleon.cc | 6 +- .../include/G4ASCCrossSection.hh | 2 +- .../include/G4AnnihilationCrossSection.hh | 2 +- .../include/G4BaryonSplitter.hh | 2 +- .../include/G4DiffractiveStringBuilder.hh | 2 +- .../include/G4GammaAnnCrossSection.hh | 2 +- .../include/G4GammaParticipants.hh | 2 +- .../include/G4HeavyIonParticipants.hh | 2 +- .../include/G4InelasticSplitableHadron.hh | 6 +- .../include/G4MesonSplitter.hh | 2 +- .../include/G4PartonPair.hh | 2 +- .../include/G4PartonStringAnnihilator.hh | 4 +- .../include/G4QGSMParameters.hh | 2 +- .../include/G4QGSMSplitableHadron.hh | 2 +- .../quark_gluon_string/include/G4QGSModel.hh | 2 +- .../quark_gluon_string/include/G4QGSModel.icc | 2 +- .../include/G4QGSParticipants.hh | 2 +- .../quark_gluon_string/include/G4SPBaryon.hh | 2 +- .../include/G4SPBaryonTable.hh | 2 +- .../include/G4SPPartonInfo.hh | 2 +- .../include/G4SoftStringBuilder.hh | 2 +- .../include/G4VAnnihilationCrossSection.hh | 2 +- .../src/G4ASCCrossSection.cc | 2 +- .../src/G4AnnihilationCrossSection.cc | 2 +- .../src/G4BaryonSplitter.cc | 2 +- .../src/G4DiffractiveStringBuilder.cc | 2 +- .../src/G4GammaAnnCrossSection.cc | 2 +- .../src/G4GammaParticipants.cc | 10 +- .../src/G4HeavyIonParticipants.cc | 2 +- .../src/G4InelasticSplitableHadron.cc | 2 +- .../quark_gluon_string/src/G4MesonSplitter.cc | 2 +- .../quark_gluon_string/src/G4PartonPair.cc | 2 +- .../src/G4PartonStringAnnihilator.cc | 2 +- .../src/G4QGSMParameters.cc | 2 +- .../src/G4QGSMSplitableHadron.cc | 2 +- .../src/G4QGSParticipants.cc | 6 +- .../quark_gluon_string/src/G4SPBaryon.cc | 2 +- .../src/G4SoftStringBuilder.cc | 2 +- .../models/generator/scattering/GNUmakefile | 42 + .../models/generator/scattering/README | 2 + .../models/generator/scattering/TAGINFO | 11 + .../generator/scattering/elastic.logbook | 31 + .../include/G4AngularDistribution.hh | 181 + .../include/G4AngularDistributionNP.hh | 61 + .../include/G4AngularDistributionNPData.hh | 637 + .../include/G4AngularDistributionPP.hh | 61 + .../include/G4AngularDistributionPPData.hh | 663 + .../include/G4BaryonPartialWidth.hh | 321 + .../scattering/include/G4BaryonWidth.hh | 123 + .../generator/scattering/include/G4Clebsch.hh | 110 + .../include/G4CollisionComposite.hh | 93 + .../include/G4CollisionInitialState.hh | 78 + .../scattering/include/G4CollisionManager.hh | 74 + .../include/G4CollisionMesonBaryon.hh | 73 + .../include/G4CollisionMesonBaryonElastic.hh | 71 + .../G4CollisionMesonBaryonToResonance.hh | 90 + .../scattering/include/G4CollisionNN.hh | 73 + .../include/G4CollisionNNElastic.hh | 75 + .../include/G4CollisionNNToDeltaDelta.hh | 58 + .../include/G4CollisionNNToDeltaDelta1600.hh | 62 + .../include/G4CollisionNNToDeltaDelta1620.hh | 62 + .../include/G4CollisionNNToDeltaDelta1700.hh | 62 + .../include/G4CollisionNNToDeltaDelta1900.hh | 62 + .../include/G4CollisionNNToDeltaDelta1905.hh | 62 + .../include/G4CollisionNNToDeltaDelta1910.hh | 62 + .../include/G4CollisionNNToDeltaDelta1920.hh | 62 + .../include/G4CollisionNNToDeltaDelta1930.hh | 62 + .../include/G4CollisionNNToDeltaDelta1950.hh | 62 + .../include/G4CollisionNNToDeltaDeltastar.hh | 60 + .../include/G4CollisionNNToDeltaNstar.hh | 58 + .../include/G4CollisionNNToNDelta.hh | 62 + .../include/G4CollisionNNToNDelta1600.hh | 62 + .../include/G4CollisionNNToNDelta1620.hh | 62 + .../include/G4CollisionNNToNDelta1700.hh | 62 + .../include/G4CollisionNNToNDelta1900.hh | 62 + .../include/G4CollisionNNToNDelta1905.hh | 62 + .../include/G4CollisionNNToNDelta1910.hh | 62 + .../include/G4CollisionNNToNDelta1920.hh} | 63 +- .../include/G4CollisionNNToNDelta1930.hh | 62 + .../include/G4CollisionNNToNDelta1950.hh | 62 + .../include/G4CollisionNNToNDeltastar.hh | 60 + .../include/G4CollisionNNToNNstar.hh | 62 + .../include/G4CollisionNStarNToNN.hh | 62 + .../scattering/include/G4CollisionPN.hh | 85 + .../scattering/include/G4CollisionPtr.hh | 76 + .../scattering/include/G4CollisionVector.hh | 51 + .../include/G4CollisionnpElastic.hh | 75 + .../G4ConcreteMesonBaryonToResonance.hh | 92 + .../include/G4ConcreteNNToDeltaDelta.hh | 63 + .../include/G4ConcreteNNToDeltaDeltastar.hh | 56 + .../include/G4ConcreteNNToDeltaNstar.hh | 56 + .../include/G4ConcreteNNToNDelta.hh | 56 + .../include/G4ConcreteNNToNDeltaStar.hh | 56 + .../include/G4ConcreteNNToNNStar.hh | 56 + .../include/G4ConcreteNNTwoBodyResonance.hh | 86 + .../include/G4ConcreteNStarNToNN.hh | 56 + .../include/G4CrossSectionBuffer.hh | 117 + .../include/G4CrossSectionComposite.hh | 76 + .../scattering/include/G4CrossSectionPatch.hh | 85 + .../include/G4CrossSectionSourcePtr.hh | 94 + .../include/G4CrossSectionVector.hh | 50 + .../include/G4DeltaDeltastarBuilder.hh | 44 + .../scattering/include/G4DeltaNstarBuilder.hh | 43 + .../G4DetailedBalancePhaseSpaceIntegral.hh | 68 + .../include/G4GeneralNNCollision.hh | 35 +- .../scattering/include/G4ListOfCollisions.hh | 45 + .../scattering/include/G4LowEXsection.hh | 38 + .../scattering/include/G4NDeltastarBuilder.hh | 46 + .../scattering/include/G4NNstarBuilder.hh | 37 +- .../scattering/include/G4PartialWidthTable.hh | 102 + .../include/G4ParticleTypeConverter.hh | 67 + .../scattering/include/G4ResonanceID.hh | 85 + .../scattering/include/G4ResonanceNames.hh | 98 + .../include/G4ResonancePartialWidth.hh | 66 + .../scattering/include/G4ResonanceWidth.hh | 66 + .../scattering/include/G4Scatterer.hh | 82 + .../include/G4VAngularDistribution.hh | 82 + .../include/G4VAnnihilationCollision.hh | 100 + .../scattering/include/G4VCollision.hh | 110 + .../include/G4VCrossSectionComposite.hh | 97 + .../include/G4VCrossSectionSource.hh | 103 + .../scattering/include/G4VElasticCollision.hh | 58 + .../scattering/include/G4VScatterer.hh | 75 + .../include/G4VScatteringCollision.hh | 99 + .../scattering/include/G4VXResonance.hh | 109 + .../scattering/include/G4VXResonanceTable.hh | 66 + .../include/G4XAnnihilationChannel.hh | 119 + .../scattering/include/G4XAqmElastic.hh | 99 + .../scattering/include/G4XAqmTotal.hh | 86 + .../scattering/include/G4XDeltaDeltaTable.hh | 72 + .../include/G4XDeltaDeltastarTable.hh | 83 + .../scattering/include/G4XDeltaNstarTable.hh | 82 + .../include/G4XMesonBaryonElastic.hh | 99 + .../scattering/include/G4XNDeltaTable.hh | 73 + .../scattering/include/G4XNDeltastarTable.hh | 86 + .../scattering/include/G4XNNElastic.hh | 94 + .../scattering/include/G4XNNElasticLowE.hh | 127 + .../scattering/include/G4XNNTotal.hh | 59 +- .../scattering/include/G4XNNTotalLowE.hh | 113 + .../scattering/include/G4XNNstarTable.hh | 87 + .../scattering/include/G4XPDGElastic.hh | 109 + .../scattering/include/G4XPDGTotal.hh | 107 + .../scattering/include/G4XResonance.hh | 102 + .../scattering/include/G4XnpElastic.hh | 94 + .../scattering/include/G4XnpElasticLowE.hh | 137 + .../scattering/include/G4XnpTotal.hh | 94 + .../scattering/include/G4XnpTotalLowE.hh | 137 + .../scattering/include/G4XpimNTotal.hh | 40 +- .../scattering/include/G4XpipNTotal.hh | 43 + .../scattering/src/G4AngularDistribution.cc | 342 + .../scattering/src/G4AngularDistributionNP.cc | 118 + .../scattering/src/G4AngularDistributionPP.cc | 119 + .../scattering/src/G4BaryonPartialWidth.cc | 1186 + .../generator/scattering/src/G4BaryonWidth.cc | 362 + .../generator/scattering/src/G4Clebsch.cc | 536 + .../scattering/src/G4CollisionComposite.cc | 197 + .../scattering/src/G4CollisionInitialState.cc | 75 + .../scattering/src/G4CollisionManager.cc | 157 + .../scattering/src/G4CollisionMesonBaryon.cc | 48 + .../src/G4CollisionMesonBaryonElastic.cc | 68 + .../src/G4CollisionMesonBaryonToResonance.cc | 150 + .../generator/scattering/src/G4CollisionNN.cc | 109 + .../scattering/src/G4CollisionNNElastic.cc | 99 + .../src/G4CollisionNNToDeltaDelta.cc | 59 + .../src/G4CollisionNNToDeltaDelta1600.cc | 69 + .../src/G4CollisionNNToDeltaDelta1620.cc | 68 + .../src/G4CollisionNNToDeltaDelta1700.cc | 68 + .../src/G4CollisionNNToDeltaDelta1900.cc | 68 + .../src/G4CollisionNNToDeltaDelta1905.cc | 68 + .../src/G4CollisionNNToDeltaDelta1910.cc | 68 + .../src/G4CollisionNNToDeltaDelta1920.cc | 68 + .../src/G4CollisionNNToDeltaDelta1930.cc | 68 + .../src/G4CollisionNNToDeltaDelta1950.cc | 68 + .../src/G4CollisionNNToDeltaDeltastar.cc | 74 + .../src/G4CollisionNNToDeltaNstar.cc | 186 + .../scattering/src/G4CollisionNNToNDelta.cc | 59 + .../src/G4CollisionNNToNDelta1600.cc | 58 + .../src/G4CollisionNNToNDelta1620.cc | 58 + .../src/G4CollisionNNToNDelta1700.cc | 58 + .../src/G4CollisionNNToNDelta1900.cc | 58 + .../src/G4CollisionNNToNDelta1905.cc | 58 + .../src/G4CollisionNNToNDelta1910.cc | 58 + .../src/G4CollisionNNToNDelta1920.cc | 58 + .../src/G4CollisionNNToNDelta1930.cc | 58 + .../src/G4CollisionNNToNDelta1950.cc | 58 + .../src/G4CollisionNNToNDeltastar.cc | 74 + .../scattering/src/G4CollisionNNToNNstar.cc | 157 + .../scattering/src/G4CollisionNStarNToNN.cc | 157 + .../generator/scattering/src/G4CollisionPN.cc | 114 + .../scattering/src/G4CollisionPtr.cc | 55 + .../scattering/src/G4CollisionnpElastic.cc | 96 + .../src/G4ConcreteMesonBaryonToResonance.cc | 74 + .../src/G4ConcreteNNToDeltaDelta.cc | 47 + .../src/G4ConcreteNNToDeltaDeltastar.cc | 44 + .../src/G4ConcreteNNToDeltaNstar.cc | 44 + .../scattering/src/G4ConcreteNNToNDelta.cc | 42 + .../src/G4ConcreteNNToNDeltaStar.cc | 44 + .../scattering/src/G4ConcreteNNToNNStar.cc | 44 + .../src/G4ConcreteNNTwoBodyResonance.cc | 74 + .../scattering/src/G4ConcreteNStarNToNN.cc | 44 + .../scattering/src/G4CrossSectionComposite.cc | 117 + .../scattering/src/G4CrossSectionPatch.cc | 171 + .../scattering/src/G4CrossSectionSourcePtr.cc | 69 + .../G4DetailedBalancePhaseSpaceIntegral.cc | 157 + .../scattering/src/G4LowEXsection.cc | 50 +- .../scattering/src/G4PartialWidthTable.cc | 141 + .../scattering/src/G4ParticleTypeConverter.cc | 255 + .../scattering/src/G4ResonanceNames.cc | 372 + .../generator/scattering/src/G4Scatterer.cc | 370 + .../scattering/src/G4VAngularDistribution.cc | 52 + .../src/G4VAnnihilationCollision.cc | 82 + .../generator/scattering/src/G4VCollision.cc | 141 + .../scattering/src/G4VCrossSectionSource.cc | 199 + .../scattering/src/G4VElasticCollision.cc | 132 + .../generator/scattering/src/G4VScatterer.cc | 51 + .../scattering/src/G4VScatteringCollision.cc | 162 + .../generator/scattering/src/G4VXResonance.cc | 202 + .../scattering/src/G4XAnnihilationChannel.cc | 225 + .../generator/scattering/src/G4XAqmElastic.cc | 111 + .../generator/scattering/src/G4XAqmTotal.cc | 133 + .../scattering/src/G4XDeltaDeltaTable.cc | 111 + .../scattering/src/G4XDeltaDeltastarTable.cc | 334 + .../scattering/src/G4XDeltaNstarTable.cc | 470 + .../scattering/src/G4XMesonBaryonElastic.cc | 119 + .../scattering/src/G4XNDeltaTable.cc | 78 + .../scattering/src/G4XNDeltastarTable.cc | 349 + .../generator/scattering/src/G4XNNElastic.cc | 98 + .../scattering/src/G4XNNElasticLowE.cc | 248 + .../generator/scattering/src/G4XNNTotal.cc | 83 + .../scattering/src/G4XNNTotalLowE.cc | 113 + .../scattering/src/G4XNNstarTable.cc | 436 + .../generator/scattering/src/G4XPDGElastic.cc | 278 + .../generator/scattering/src/G4XPDGTotal.cc | 259 + .../generator/scattering/src/G4XResonance.cc | 98 + .../generator/scattering/src/G4XnpElastic.cc | 101 + .../scattering/src/G4XnpElasticLowE.cc | 185 + .../generator/scattering/src/G4XnpTotal.cc | 98 + .../scattering/src/G4XnpTotalLowE.cc | 186 + .../generator/scattering/src/G4XpimNTotal.cc | 84 + .../generator/scattering/src/G4XpipNTotal.cc | 77 + .../include/G4DiffractiveExcitation.hh | 4 +- .../string_common/include/G4EventGenerator.hh | 6 +- .../include/G4InteractionCode.hh | 6 +- .../include/G4InteractionContent.hh | 6 +- .../include/G4PomeronCrossSection.hh | 6 +- .../include/G4SingleDiffractiveExcitation.hh | 4 +- .../string_common/include/G4StringModel.hh | 6 +- .../string_common/include/G4VParticipants.hh | 6 +- .../include/G4VPartonStringModel.hh | 6 +- .../include/G4VSplitableHadron.hh | 6 +- .../include/G4VStringFragmentation.hh | 6 +- .../string_common/include/G4VertexCode.hh | 6 +- .../src/G4DiffractiveExcitation.cc | 4 +- .../string_common/src/G4EventGenerator.cc | 6 +- .../string_common/src/G4InteractionContent.cc | 6 +- .../src/G4PomeronCrossSection.cc | 6 +- .../src/G4SingleDiffractiveExcitation.cc | 4 +- .../string_common/src/G4StringModel.cc | 6 +- .../string_common/src/G4VParticipants.cc | 6 +- .../string_common/src/G4VPartonStringModel.cc | 6 +- .../string_common/src/G4VSplitableHadron.cc | 6 +- .../src/G4VStringFragmentation.cc | 6 +- .../include/G4ExcitedStringDecay.hh | 6 +- .../include/G4FragmentingString.hh | 2 +- .../include/G4HadronBuilder.hh | 2 +- .../include/G4LundStringFragmentation.hh | 6 +- .../include/G4QGSMFragmentation.hh | 6 +- .../include/G4VKinkyStringDecay.hh | 6 +- .../include/G4VLongitudinalStringDecay.hh | 6 +- .../src/G4ExcitedStringDecay.cc | 2 +- .../src/G4FragmentingString.cc | 7 +- .../src/G4HadronBuilder.cc | 2 +- .../src/G4LundStringFragmentation.cc | 6 +- .../src/G4QGSMFragmentation.cc | 6 +- .../src/G4VKinkyStringDecay.cc | 6 +- .../src/G4VLongitudinalStringDecay.cc | 2 +- .../models/generator/util/GNUmakefile | 6 +- .../util/include/G4DecayStrongResonances.hh | 2 +- .../generator/util/include/G4ExcitedString.hh | 6 +- .../util/include/G4ExcitedStringVector.hh | 6 +- .../util/include/G4Fancy3DNucleus.hh | 9 +- .../generator/util/include/G4FermiMomentum.hh | 6 +- .../generator/util/include/G4Fragment.hh | 13 +- .../util/include/G4FragmentVector.hh | 6 +- .../util/include/G4GeneralPhaseSpaceDecay.hh | 6 +- .../generator/util/include/G4KineticTrack.hh | 33 +- .../util/include/G4KineticTrackVector.hh | 6 +- .../util/include/G4NuclearFermiDensity.hh | 24 +- .../include/G4NuclearShellModelDensity.hh | 6 +- .../generator/util/include/G4Nucleon.hh | 6 +- .../models/generator/util/include/G4Parton.hh | 6 +- .../generator/util/include/G4PartonVector.hh | 6 +- .../util/include/G4SampleResonance.hh | 6 +- .../generator/util/src/G4ExcitedString.cc | 6 +- .../generator/util/src/G4Fancy3DNucleus.cc | 131 +- .../generator/util/src/G4FermiMomentum.cc | 6 +- .../models/generator/util/src/G4Fragment.cc | 16 +- .../util/src/G4GeneralPhaseSpaceDecay.cc | 6 +- .../generator/util/src/G4KineticTrack.cc | 5 +- .../util/src/G4KineticTrackVector.cc | 2 +- .../util/src/G4NuclearFermiDensity.cc | 22 +- .../util/src/G4NuclearShellModelDensity.cc | 6 +- .../models/generator/util/src/G4Nucleon.cc | 6 +- .../models/generator/util/src/G4Parton.cc | 6 +- .../generator/util/src/G4SampleResonance.cc | 6 +- .../include/G4HEAntiKaonZeroInelastic.hh | 6 +- .../include/G4HEAntiLambdaInelastic.hh | 6 +- .../include/G4HEAntiNeutronInelastic.hh | 6 +- .../include/G4HEAntiOmegaMinusInelastic.hh | 6 +- .../include/G4HEAntiProtonInelastic.hh | 6 +- .../include/G4HEAntiSigmaMinusInelastic.hh | 6 +- .../include/G4HEAntiSigmaPlusInelastic.hh | 6 +- .../include/G4HEAntiSigmaZeroInelastic.hh | 6 +- .../include/G4HEAntiXiMinusInelastic.hh | 6 +- .../include/G4HEAntiXiZeroInelastic.hh | 6 +- .../high_energy/include/G4HEInelastic.hh | 8 +- .../include/G4HEKaonMinusInelastic.hh | 6 +- .../include/G4HEKaonPlusInelastic.hh | 6 +- .../include/G4HEKaonZeroInelastic.hh | 6 +- .../include/G4HEKaonZeroLongInelastic.hh | 6 +- .../include/G4HEKaonZeroShortInelastic.hh | 6 +- .../include/G4HELambdaInelastic.hh | 6 +- .../include/G4HENeutronInelastic.hh | 6 +- .../include/G4HEOmegaMinusInelastic.hh | 6 +- .../include/G4HEPionMinusInelastic.hh | 6 +- .../include/G4HEPionPlusInelastic.hh | 6 +- .../models/high_energy/include/G4HEPlot.hh | 6 +- .../include/G4HEProtonInelastic.hh | 6 +- .../include/G4HESigmaMinusInelastic.hh | 6 +- .../include/G4HESigmaPlusInelastic.hh | 6 +- .../include/G4HESigmaZeroInelastic.hh | 6 +- .../models/high_energy/include/G4HEVector.hh | 6 +- .../include/G4HEXiMinusInelastic.hh | 6 +- .../include/G4HEXiZeroInelastic.hh | 6 +- .../src/G4HEAntiKaonZeroInelastic.cc | 6 +- .../src/G4HEAntiLambdaInelastic.cc | 6 +- .../src/G4HEAntiNeutronInelastic.cc | 6 +- .../src/G4HEAntiOmegaMinusInelastic.cc | 6 +- .../src/G4HEAntiProtonInelastic.cc | 6 +- .../src/G4HEAntiSigmaMinusInelastic.cc | 6 +- .../src/G4HEAntiSigmaPlusInelastic.cc | 6 +- .../src/G4HEAntiSigmaZeroInelastic.cc | 6 +- .../src/G4HEAntiXiMinusInelastic.cc | 6 +- .../src/G4HEAntiXiZeroInelastic.cc | 6 +- .../models/high_energy/src/G4HEInelastic.cc | 66 +- .../high_energy/src/G4HEKaonMinusInelastic.cc | 6 +- .../high_energy/src/G4HEKaonPlusInelastic.cc | 6 +- .../high_energy/src/G4HEKaonZeroInelastic.cc | 6 +- .../src/G4HEKaonZeroLongInelastic.cc | 6 +- .../src/G4HEKaonZeroShortInelastic.cc | 6 +- .../high_energy/src/G4HELambdaInelastic.cc | 6 +- .../high_energy/src/G4HENeutronInelastic.cc | 6 +- .../src/G4HEOmegaMinusInelastic.cc | 6 +- .../high_energy/src/G4HEPionMinusInelastic.cc | 6 +- .../high_energy/src/G4HEPionPlusInelastic.cc | 6 +- .../models/high_energy/src/G4HEPlot.cc | 8 +- .../high_energy/src/G4HEProtonInelastic.cc | 6 +- .../src/G4HESigmaMinusInelastic.cc | 6 +- .../high_energy/src/G4HESigmaPlusInelastic.cc | 6 +- .../high_energy/src/G4HESigmaZeroInelastic.cc | 6 +- .../models/high_energy/src/G4HEVector.cc | 24 +- .../high_energy/src/G4HEXiMinusInelastic.cc | 6 +- .../high_energy/src/G4HEXiZeroInelastic.cc | 6 +- .../include/G4ElementIsoCrossSections.hh | 2 +- .../include/G4ElementIsoCrossSections.icc | 2 +- .../include/G4IsoProdCrossSections.hh | 2 +- .../include/G4NeutronIsoIsoCrossSections.hh | 2 +- .../include/G4NeutronIsotopeProduction.hh | 2 +- .../include/G4ProtonIsoIsoCrossSections.hh | 2 +- .../include/G4ProtonIsotopeProduction.hh | 2 +- .../src/G4IsoProdCrossSection.cc | 2 +- .../src/G4NeutronIsoIsoCrossSections.cc | 2 +- .../src/G4NeutronIsotopeProduction.cc | 2 +- .../leading_particle/include/G4Mars5GeV.hh | 2 +- .../models/leading_particle/src/G4Mars5GeV.cc | 12 +- .../models/low_energy/include/G4LCapture.hh | 6 +- .../low_energy/include/G4LEAlphaInelastic.hh | 6 +- .../include/G4LEAntiKaonZeroInelastic.hh | 74 + .../include/G4LEAntiLambdaInelastic.hh | 6 +- .../include/G4LEAntiNeutronInelastic.hh | 6 +- .../include/G4LEAntiOmegaMinusInelastic.hh | 6 +- .../include/G4LEAntiProtonInelastic.hh | 6 +- .../include/G4LEAntiSigmaMinusInelastic.hh | 6 +- .../include/G4LEAntiSigmaPlusInelastic.hh | 6 +- .../include/G4LEAntiXiMinusInelastic.hh | 6 +- .../include/G4LEAntiXiZeroInelastic.hh | 6 +- .../include/G4LEDeuteronInelastic.hh | 6 +- .../include/G4LEKaonMinusInelastic.hh | 6 +- .../include/G4LEKaonPlusInelastic.hh | 6 +- .../include/G4LEKaonZeroInelastic.hh | 83 +- .../include/G4LEKaonZeroLInelastic.hh | 83 +- .../include/G4LEKaonZeroSInelastic.hh | 86 +- .../low_energy/include/G4LELambdaInelastic.hh | 6 +- .../include/G4LENeutronInelastic.hh | 2 +- .../include/G4LEOmegaMinusInelastic.hh | 6 +- .../include/G4LEPionMinusInelastic.hh | 6 +- .../include/G4LEPionPlusInelastic.hh | 6 +- .../low_energy/include/G4LEProtonInelastic.hh | 6 +- .../include/G4LESigmaMinusInelastic.hh | 6 +- .../include/G4LESigmaPlusInelastic.hh | 6 +- .../low_energy/include/G4LETritonInelastic.hh | 6 +- .../include/G4LEXiMinusInelastic.hh | 6 +- .../low_energy/include/G4LEXiZeroInelastic.hh | 6 +- .../models/low_energy/include/G4LElastic.hh | 6 +- .../models/low_energy/include/G4LFission.hh | 6 +- .../models/low_energy/src/G4LCapture.cc | 6 +- .../low_energy/src/G4LEAlphaInelastic.cc | 3 +- ...lastic.cc => G4LEAntiKaonZeroInelastic.cc} | 14 +- .../low_energy/src/G4LEAntiLambdaInelastic.cc | 6 +- .../src/G4LEAntiNeutronInelastic.cc | 6 +- .../src/G4LEAntiOmegaMinusInelastic.cc | 6 +- .../low_energy/src/G4LEAntiProtonInelastic.cc | 6 +- .../src/G4LEAntiSigmaMinusInelastic.cc | 6 +- .../src/G4LEAntiSigmaPlusInelastic.cc | 6 +- .../src/G4LEAntiXiMinusInelastic.cc | 6 +- .../low_energy/src/G4LEAntiXiZeroInelastic.cc | 6 +- .../low_energy/src/G4LEDeuteronInelastic.cc | 3 +- .../low_energy/src/G4LEKaonMinusInelastic.cc | 6 +- .../low_energy/src/G4LEKaonPlusInelastic.cc | 6 +- ...SInelastic.cc => G4LEKaonZeroInelastic.cc} | 14 +- .../low_energy/src/G4LELambdaInelastic.cc | 6 +- .../low_energy/src/G4LENeutronInelastic.cc | 2 +- .../low_energy/src/G4LEOmegaMinusInelastic.cc | 6 +- .../low_energy/src/G4LEPionMinusInelastic.cc | 19 +- .../low_energy/src/G4LEPionPlusInelastic.cc | 38 +- .../low_energy/src/G4LEProtonInelastic.cc | 2 +- .../low_energy/src/G4LESigmaMinusInelastic.cc | 6 +- .../low_energy/src/G4LESigmaPlusInelastic.cc | 6 +- .../low_energy/src/G4LETritonInelastic.cc | 3 +- .../low_energy/src/G4LEXiMinusInelastic.cc | 6 +- .../low_energy/src/G4LEXiZeroInelastic.cc | 6 +- .../models/low_energy/src/G4LElastic.cc | 6 +- .../models/low_energy/src/G4LFission.cc | 6 +- .../include/G4InterpolationIterator.hh | 6 +- .../include/G4InterpolationManager.hh | 6 +- .../include/G4InterpolationScheme.hh | 6 +- .../include/G4NeutronHP2AInelasticFS.hh | 6 +- .../include/G4NeutronHP2N2AInelasticFS.hh | 6 +- .../include/G4NeutronHP2NAInelasticFS.hh | 6 +- .../include/G4NeutronHP2NDInelasticFS.hh | 6 +- .../include/G4NeutronHP2NInelasticFS.hh | 6 +- .../include/G4NeutronHP2NPInelasticFS.hh | 6 +- .../include/G4NeutronHP2PInelasticFS.hh | 6 +- .../include/G4NeutronHP3AInelasticFS.hh | 6 +- .../include/G4NeutronHP3NAInelasticFS.hh | 6 +- .../include/G4NeutronHP3NInelasticFS.hh | 6 +- .../include/G4NeutronHP3NPInelasticFS.hh | 6 +- .../include/G4NeutronHP4NInelasticFS.hh | 6 +- .../include/G4NeutronHPAInelasticFS.hh | 6 +- .../neutron_hp/include/G4NeutronHPAngular.hh | 6 +- .../neutron_hp/include/G4NeutronHPAngularP.hh | 6 +- .../include/G4NeutronHPArbitaryTab.hh | 6 +- .../neutron_hp/include/G4NeutronHPCapture.hh | 6 +- .../include/G4NeutronHPCaptureData.hh | 6 +- .../include/G4NeutronHPCaptureFS.hh | 6 +- .../neutron_hp/include/G4NeutronHPChannel.hh | 6 +- .../include/G4NeutronHPChannelList.hh | 6 +- .../include/G4NeutronHPContAngularPar.hh | 6 +- .../include/G4NeutronHPContEnergyAngular.hh | 6 +- .../include/G4NeutronHPD2AInelasticFS.hh | 6 +- .../include/G4NeutronHPDAInelasticFS.hh | 6 +- .../include/G4NeutronHPDInelasticFS.hh | 6 +- .../neutron_hp/include/G4NeutronHPData.hh | 6 +- .../include/G4NeutronHPDataPoint.hh | 6 +- .../neutron_hp/include/G4NeutronHPDataUsed.hh | 2 +- .../include/G4NeutronHPDeExGammas.hh | 6 +- .../include/G4NeutronHPDiscreteTwoBody.hh | 6 +- .../neutron_hp/include/G4NeutronHPElastic.hh | 6 +- .../include/G4NeutronHPElasticData.hh | 6 +- .../include/G4NeutronHPElasticFS.hh | 6 +- .../include/G4NeutronHPElementData.hh | 6 +- .../include/G4NeutronHPEnAngCorrelation.hh | 6 +- .../include/G4NeutronHPEnergyDistribution.hh | 6 +- .../include/G4NeutronHPEvapSpectrum.hh | 6 +- .../include/G4NeutronHPFCFissionFS.hh | 6 +- .../include/G4NeutronHPFSFissionFS.hh | 6 +- .../include/G4NeutronHPFastLegendre.hh | 6 +- .../neutron_hp/include/G4NeutronHPField.hh | 6 +- .../include/G4NeutronHPFieldPoint.hh | 6 +- .../include/G4NeutronHPFinalState.hh | 6 +- .../neutron_hp/include/G4NeutronHPFission.hh | 6 +- .../include/G4NeutronHPFissionBaseFS.hh | 6 +- .../include/G4NeutronHPFissionData.hh | 6 +- .../include/G4NeutronHPFissionERelease.hh | 6 +- .../include/G4NeutronHPFissionFS.hh | 6 +- .../include/G4NeutronHPFissionSpectrum.hh | 6 +- .../neutron_hp/include/G4NeutronHPGamma.hh | 6 +- .../neutron_hp/include/G4NeutronHPHash.hh | 2 +- .../include/G4NeutronHPHe3InelasticFS.hh | 6 +- .../include/G4NeutronHPInelastic.hh | 6 +- .../include/G4NeutronHPInelasticBaseFS.hh | 6 +- .../include/G4NeutronHPInelasticCompFS.hh | 6 +- .../include/G4NeutronHPInelasticData.hh | 6 +- .../include/G4NeutronHPInterpolator.hh | 6 +- .../neutron_hp/include/G4NeutronHPIsoData.hh | 6 +- .../include/G4NeutronHPIsotropic.hh | 6 +- .../include/G4NeutronHPKallbachMannSyst.hh | 6 +- .../include/G4NeutronHPLCFissionFS.hh | 6 +- .../include/G4NeutronHPLabAngularEnergy.hh | 6 +- .../include/G4NeutronHPLegendreStore.hh | 6 +- .../include/G4NeutronHPLegendreTable.hh | 6 +- .../neutron_hp/include/G4NeutronHPLevel.hh | 6 +- .../neutron_hp/include/G4NeutronHPList.hh | 2 +- .../include/G4NeutronHPMadlandNixSpectrum.hh | 6 +- .../include/G4NeutronHPN2AInelasticFS.hh | 6 +- .../include/G4NeutronHPN2PInelasticFS.hh | 6 +- .../include/G4NeutronHPN3AInelasticFS.hh | 6 +- .../include/G4NeutronHPNAInelasticFS.hh | 6 +- .../include/G4NeutronHPNBodyPhaseSpace.hh | 8 +- .../include/G4NeutronHPND2AInelasticFS.hh | 6 +- .../include/G4NeutronHPNDInelasticFS.hh | 6 +- .../include/G4NeutronHPNHe3InelasticFS.hh | 6 +- .../include/G4NeutronHPNInelasticFS.hh | 6 +- .../include/G4NeutronHPNPAInelasticFS.hh | 6 +- .../include/G4NeutronHPNPInelasticFS.hh | 6 +- .../include/G4NeutronHPNT2AInelasticFS.hh | 6 +- .../include/G4NeutronHPNTInelasticFS.hh | 6 +- .../include/G4NeutronHPNXInelasticFS.hh | 6 +- .../neutron_hp/include/G4NeutronHPNames.hh | 6 +- .../include/G4NeutronHPNeutronYield.hh | 6 +- .../include/G4NeutronHPPAInelasticFS.hh | 6 +- .../include/G4NeutronHPPDInelasticFS.hh | 6 +- .../include/G4NeutronHPPInelasticFS.hh | 6 +- .../include/G4NeutronHPPTInelasticFS.hh | 6 +- .../neutron_hp/include/G4NeutronHPPartial.hh | 6 +- .../include/G4NeutronHPPhotonDist.hh | 6 +- .../include/G4NeutronHPPhotonXSection.hh | 6 +- .../include/G4NeutronHPPolynomExpansion.hh | 6 +- .../neutron_hp/include/G4NeutronHPProduct.hh | 6 +- .../include/G4NeutronHPSCFissionFS.hh | 6 +- .../include/G4NeutronHPSimpleEvapSpectrum.hh | 6 +- .../include/G4NeutronHPT2AInelasticFS.hh | 6 +- .../include/G4NeutronHPTCFissionFS.hh | 6 +- .../include/G4NeutronHPTInelasticFS.hh | 6 +- .../include/G4NeutronHPThermalBoost.hh | 2 +- .../neutron_hp/include/G4NeutronHPVector.hh | 2 +- .../include/G4NeutronHPWattSpectrum.hh | 6 +- .../neutron_hp/include/G4VNeutronHPEDis.hh | 6 +- .../include/G4VNeutronHPEnergyAngular.hh | 6 +- .../neutron_hp/src/G4InterpolationManager.cc | 2 +- .../src/G4NeutronHP2AInelasticFS.cc | 2 +- .../src/G4NeutronHP2N2AInelasticFS.cc | 2 +- .../src/G4NeutronHP2NAInelasticFS.cc | 2 +- .../src/G4NeutronHP2NDInelasticFS.cc | 2 +- .../src/G4NeutronHP2NInelasticFS.cc | 2 +- .../src/G4NeutronHP2NPInelasticFS.cc | 2 +- .../src/G4NeutronHP2PInelasticFS.cc | 2 +- .../src/G4NeutronHP3AInelasticFS.cc | 2 +- .../src/G4NeutronHP3NAInelasticFS.cc | 2 +- .../src/G4NeutronHP3NInelasticFS.cc | 2 +- .../src/G4NeutronHP3NPInelasticFS.cc | 2 +- .../src/G4NeutronHP4NInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPAInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPAngular.cc | 3 +- .../neutron_hp/src/G4NeutronHPArbitaryTab.cc | 2 +- .../neutron_hp/src/G4NeutronHPCapture.cc | 5 +- .../neutron_hp/src/G4NeutronHPCaptureData.cc | 8 +- .../neutron_hp/src/G4NeutronHPCaptureFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPChannel.cc | 2 +- .../neutron_hp/src/G4NeutronHPChannelList.cc | 2 +- .../src/G4NeutronHPContAngularPar.cc | 2 +- .../src/G4NeutronHPContEnergyAngular.cc | 2 +- .../src/G4NeutronHPD2AInelasticFS.cc | 2 +- .../src/G4NeutronHPDAInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPDInelasticFS.cc | 2 +- .../models/neutron_hp/src/G4NeutronHPData.cc | 2 +- .../neutron_hp/src/G4NeutronHPDeExGammas.cc | 2 +- .../src/G4NeutronHPDiscreteTwoBody.cc | 2 +- .../neutron_hp/src/G4NeutronHPElastic.cc | 2 +- .../neutron_hp/src/G4NeutronHPElasticData.cc | 2 +- .../neutron_hp/src/G4NeutronHPElasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPElementData.cc | 2 +- .../src/G4NeutronHPEnAngCorrelation.cc | 2 +- .../neutron_hp/src/G4NeutronHPFCFissionFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPFSFissionFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPFastLegendre.cc | 2 +- .../src/G4NeutronHPFastLegendre_14.cc | 2 +- .../src/G4NeutronHPFastLegendre_18.cc | 2 +- .../src/G4NeutronHPFastLegendre_21.cc | 2 +- .../src/G4NeutronHPFastLegendre_24.cc | 2 +- .../src/G4NeutronHPFastLegendre_26.cc | 2 +- .../src/G4NeutronHPFastLegendre_28.cc | 2 +- .../src/G4NeutronHPFastLegendre_30.cc | 2 +- .../models/neutron_hp/src/G4NeutronHPField.cc | 2 +- .../neutron_hp/src/G4NeutronHPFieldPoint.cc | 2 +- .../neutron_hp/src/G4NeutronHPFission.cc | 2 +- .../src/G4NeutronHPFissionBaseFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPFissionData.cc | 2 +- .../neutron_hp/src/G4NeutronHPFissionFS.cc | 2 +- .../models/neutron_hp/src/G4NeutronHPGamma.cc | 2 +- .../src/G4NeutronHPHe3InelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPInelastic.cc | 6 +- .../src/G4NeutronHPInelasticBaseFS.cc | 55 +- .../src/G4NeutronHPInelasticCompFS.cc | 2 +- .../src/G4NeutronHPInelasticData.cc | 16 +- .../neutron_hp/src/G4NeutronHPInterpolator.cc | 2 +- .../neutron_hp/src/G4NeutronHPIsoData.cc | 2 +- .../neutron_hp/src/G4NeutronHPIsotropic.cc | 2 +- .../src/G4NeutronHPKallbachMannSyst.cc | 2 +- .../neutron_hp/src/G4NeutronHPLCFissionFS.cc | 2 +- .../src/G4NeutronHPLabAngularEnergy.cc | 2 +- .../src/G4NeutronHPLegendreStore.cc | 4 +- .../models/neutron_hp/src/G4NeutronHPLevel.cc | 2 +- .../models/neutron_hp/src/G4NeutronHPList.cc | 2 +- .../src/G4NeutronHPMadlandNixSpectrum.cc | 2 +- .../src/G4NeutronHPN2AInelasticFS.cc | 2 +- .../src/G4NeutronHPN2PInelasticFS.cc | 2 +- .../src/G4NeutronHPN3AInelasticFS.cc | 2 +- .../src/G4NeutronHPNAInelasticFS.cc | 2 +- .../src/G4NeutronHPNBodyPhaseSpace.cc | 6 +- .../src/G4NeutronHPND2AInelasticFS.cc | 2 +- .../src/G4NeutronHPNDInelasticFS.cc | 2 +- .../src/G4NeutronHPNHe3InelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPNInelasticFS.cc | 2 +- .../src/G4NeutronHPNPAInelasticFS.cc | 2 +- .../src/G4NeutronHPNPInelasticFS.cc | 2 +- .../src/G4NeutronHPNT2AInelasticFS.cc | 2 +- .../src/G4NeutronHPNTInelasticFS.cc | 2 +- .../src/G4NeutronHPNXInelasticFS.cc | 2 +- .../models/neutron_hp/src/G4NeutronHPNames.cc | 29 +- .../src/G4NeutronHPPAInelasticFS.cc | 2 +- .../src/G4NeutronHPPDInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPPInelasticFS.cc | 2 +- .../src/G4NeutronHPPTInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPPartial.cc | 2 +- .../neutron_hp/src/G4NeutronHPPhotonDist.cc | 2 +- .../neutron_hp/src/G4NeutronHPProduct.cc | 2 +- .../neutron_hp/src/G4NeutronHPSCFissionFS.cc | 2 +- .../src/G4NeutronHPT2AInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPTCFissionFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPTInelasticFS.cc | 2 +- .../neutron_hp/src/G4NeutronHPVector.cc | 2 +- .../neutron_hp/src/G4NeutronHPWattSpectrum.cc | 2 +- .../models/radiative_decay/GNUmakefile | 3 +- .../include/G4AlphaDecayChannel.hh | 2 +- .../include/G4BetaFermiFunction.hh | 2 +- .../include/G4BetaMinusDecayChannel.hh | 2 +- .../include/G4BetaPlusDecayChannel.hh | 2 +- .../include/G4ITDecayChannel.hh | 2 +- .../include/G4KshellECDecayChannel.hh | 2 +- .../include/G4LshellECDecayChannel.hh | 2 +- .../include/G4NuclearDecayChannel.hh | 2 +- .../include/G4NucleusLimits.hh | 2 +- .../include/G4RIsotopeTable.hh | 2 +- .../include/G4RadioactiveDecayMode.hh | 2 +- .../include/G4RadioactiveDecayRate.hh | 2 +- .../include/G4RadioactiveDecayRateVector.hh | 2 +- .../include/G4RadioactiveDecaymessenger.hh | 2 +- .../include/G4UIcmdWithNucleusLimits.hh | 2 +- .../include/G4UserLimitsForRD.hh | 2 +- .../src/G4BetaFermiFunction.cc | 2 +- .../src/G4NuclearDecayChannel.cc | 245 +- .../radiative_decay/src/G4NucleusLimits.cc | 12 +- .../radiative_decay/src/G4RIsotopeTable.cc | 16 +- .../radiative_decay/src/G4RadioactiveDecay.cc | 509 +- .../src/G4RadioactiveDecayMode.cc | 2 +- .../src/G4RadioactiveDecayRate.cc | 2 +- .../src/G4RadioactiveDecayRateVector.cc | 2 +- .../src/G4RadioactiveDecaymessenger.cc | 2 +- .../src/G4UIcmdWithNucleusLimits.cc | 2 +- .../include/G4AlphaInelasticProcess.hh | 6 +- .../include/G4AntiLambdaInelasticProcess.hh | 6 +- .../include/G4AntiNeutronInelasticProcess.hh | 6 +- .../G4AntiOmegaMinusInelasticProcess.hh | 6 +- .../include/G4AntiProtonInelasticProcess.hh | 6 +- .../G4AntiSigmaMinusInelasticProcess.hh | 6 +- .../G4AntiSigmaPlusInelasticProcess.hh | 6 +- .../include/G4AntiXiMinusInelasticProcess.hh | 6 +- .../include/G4AntiXiZeroInelasticProcess.hh | 6 +- .../include/G4DeuteronInelasticProcess.hh | 6 +- .../include/G4ElectronNuclearProcess.hh | 4 +- .../include/G4HadronCaptureProcess.hh | 2 +- .../include/G4HadronElasticProcess.hh | 2 +- .../include/G4HadronFissionProcess.hh | 2 +- .../include/G4IonInelasticProcess.hh | 2 +- .../include/G4KaonMinusInelasticProcess.hh | 6 +- .../include/G4KaonPlusInelasticProcess.hh | 6 +- .../include/G4KaonZeroLInelasticProcess.hh | 6 +- .../include/G4KaonZeroSInelasticProcess.hh | 6 +- .../include/G4LambdaInelasticProcess.hh | 6 +- .../include/G4NeutronInelasticProcess.hh | 6 +- .../include/G4OmegaMinusInelasticProcess.hh | 6 +- .../include/G4PhotoNuclearProcess.hh | 4 +- .../include/G4PionMinusInelasticProcess.hh | 6 +- .../include/G4PionPlusInelasticProcess.hh | 6 +- .../include/G4PositronNuclearProcess.hh | 4 +- .../include/G4ProtonInelasticProcess.hh | 6 +- .../include/G4SigmaMinusInelasticProcess.hh | 6 +- .../include/G4SigmaPlusInelasticProcess.hh | 6 +- .../include/G4TritonInelasticProcess.hh | 6 +- .../include/G4XiMinusInelasticProcess.hh | 6 +- .../include/G4XiZeroInelasticProcess.hh | 6 +- .../processes/src/G4HadronCaptureProcess.cc | 2 +- .../processes/src/G4HadronElasticProcess.cc | 2 +- .../processes/src/G4HadronFissionProcess.cc | 2 +- .../G4AntiNeutronAnnihilationAtRest.hh | 6 +- .../include/G4AntiProtonAnnihilationAtRest.hh | 6 +- .../include/G4DistributionGenerator.hh | 6 +- .../stopping/include/G4KaonMinusAbsorption.hh | 6 +- .../include/G4KaonMinusAbsorptionAtRest.hh | 6 +- .../include/G4MuMinusCaptureCascade.hh | 2 +- .../include/G4MuonMinusCaptureAtRest.hh | 10 +- .../include/G4NeutronCaptureAtRest.hh | 6 +- .../include/G4PiMinusAbsorptionAtRest.hh | 6 +- .../include/G4PiMinusStopAbsorption.hh | 6 +- .../stopping/include/G4PiMinusStopAl.hh | 6 +- .../stopping/include/G4PiMinusStopC.hh | 6 +- .../stopping/include/G4PiMinusStopCo.hh | 6 +- .../stopping/include/G4PiMinusStopCu.hh | 6 +- .../stopping/include/G4PiMinusStopLi.hh | 6 +- .../stopping/include/G4PiMinusStopMaterial.hh | 4 +- .../stopping/include/G4PiMinusStopN.hh | 6 +- .../stopping/include/G4PiMinusStopO.hh | 6 +- .../stopping/include/G4PiMinusStopPb.hh | 6 +- .../stopping/include/G4PiMinusStopTa.hh | 6 +- .../include/G4PionMinusAbsorptionAtRest.hh | 6 +- .../stopping/include/G4StopDeexcitation.hh | 6 +- .../include/G4StopDeexcitationAlgorithm.hh | 6 +- .../include/G4StopDummyDeexcitation.hh | 6 +- .../stopping/include/G4StopElementSelector.hh | 2 +- .../include/G4StopTheoDeexcitation.hh | 6 +- .../src/G4AntiNeutronAnnihilationAtRest.cc | 2 +- .../src/G4AntiProtonAnnihilationAtRest.cc | 6 +- .../stopping/src/G4DistributionGenerator.cc | 6 +- .../stopping/src/G4KaonMinusAbsorption.cc | 6 +- .../src/G4KaonMinusAbsorptionAtRest.cc | 2 +- .../stopping/src/G4MuMinusCaptureCascade.cc | 2 +- .../stopping/src/G4MuonMinusCaptureAtRest.cc | 46 +- .../stopping/src/G4NeutronCaptureAtRest.cc | 6 +- .../stopping/src/G4PiMinusAbsorptionAtRest.cc | 6 +- .../stopping/src/G4PiMinusStopAbsorption.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopAl.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopC.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopCo.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopCu.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopLi.cc | 6 +- .../stopping/src/G4PiMinusStopMaterial.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopN.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopO.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopPb.cc | 6 +- .../hadronic/stopping/src/G4PiMinusStopTa.cc | 6 +- .../src/G4PionMinusAbsorptionAtRest.cc | 6 +- .../stopping/src/G4StopDeexcitation.cc | 6 +- .../stopping/src/G4StopDummyDeexcitation.cc | 6 +- .../stopping/src/G4StopElementSelector.cc | 2 +- .../stopping/src/G4StopTheoDeexcitation.cc | 6 +- source/processes/hadronic/util/GNUmakefile | 9 +- .../hadronic/util/include/DumpFrame.hh | 2 +- .../util/include/G4DynamicParticleVector.hh | 6 +- .../util/include/G4GHEKinematicsVector.hh | 6 +- .../hadronic/util/include/G4IsoResult.hh | 2 +- .../hadronic/util/include/G4LightMedia.hh | 6 +- .../hadronic/util/include/G4Nucleus.hh | 2 +- .../processes/hadronic/util/include/G4Pair.hh | 2 +- .../hadronic/util/include/G4ParticleVector.hh | 6 +- .../util/include/G4ReactionDynamics.hh | 6 +- .../util/include/G4ReactionKinematics.hh | 6 +- .../util/include/G4ReactionProduct.hh | 26 +- .../util/include/G4ReactionProductVector.hh | 6 +- .../hadronic/util/include/G4StableIsotopes.hh | 6 +- .../hadronic/util/src/G4LightMedia.cc | 6 +- .../processes/hadronic/util/src/G4Nucleus.cc | 4 +- .../hadronic/util/src/G4ReactionDynamics.cc | 284 +- .../hadronic/util/src/G4ReactionKinematics.cc | 6 +- .../hadronic/util/src/G4ReactionProduct.cc | 13 +- .../hadronic/util/src/G4StableIsotopes.cc | 6 +- source/processes/management/History | 10 +- .../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 | 2 +- .../management/include/G4ProcessManager.icc | 2 +- .../include/G4ProcessManagerMessenger.hh | 2 +- .../management/include/G4ProcessTable.hh | 2 +- .../management/include/G4ProcessTable.icc | 2 +- .../include/G4ProcessTableMessenger.hh | 5 +- .../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 | 16 +- .../src/G4ProcessManagerMessenger.cc | 10 +- .../management/src/G4ProcessTable.cc | 12 +- .../management/src/G4ProcessTableMessenger.cc | 74 +- .../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 +- source/processes/optical/History | 3 + .../optical/include/G4OpAbsorption.hh | 2 +- .../optical/include/G4OpBoundaryProcess.hh | 2 +- .../processes/optical/include/G4OpRayleigh.hh | 2 +- .../processes/optical/src/G4OpAbsorption.cc | 2 +- .../optical/src/G4OpBoundaryProcess.cc | 30 +- source/processes/optical/src/G4OpRayleigh.cc | 2 +- source/processes/parameterisation/History | 22 +- .../include/G4FastSimulationManager.hh | 11 +- .../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 | 31 +- .../include/G4VFastSimulationModel.hh | 2 +- .../src/G4FastSimulationManager.cc | 37 +- .../src/G4FastSimulationManagerProcess.cc | 2 +- .../src/G4FastSimulationMessenger.cc | 8 +- .../parameterisation/src/G4FastStep.cc | 14 +- .../parameterisation/src/G4FastTrack.cc | 2 +- .../src/G4GlobalFastSimulationManager.cc | 25 +- .../src/G4VFastSimulationModel.cc | 2 +- .../include/G4MuNuclearInteraction.hh | 2 +- .../include/G4MuNuclearInteraction.icc | 2 +- .../src/G4MuNuclearInteraction.cc | 2 +- .../src/G4MuonNucleusInteractionModel.cc | 2 +- .../src/G4ParametrizedHadronicVertex.cc | 2 +- source/processes/transportation/GNUmakefile | 8 +- source/processes/transportation/History | 87 +- .../include/G4ImportancePostStepDoIt.hh | 16 +- .../include/G4MImportanceConfigurator.hh | 71 + .../include/G4MScoreConfigurator.hh | 70 + .../transportation/include/G4MScoreProcess.hh | 45 +- .../include/G4MassGCellFinder.hh | 60 + ...oreSampler.hh => G4MassGeometrySampler.hh} | 86 +- .../include/G4MassImportanceProcess.hh | 46 +- .../transportation/include/G4PIScorer.hh | 95 - .../include/G4PImportanceConfigurator.hh | 75 + .../G4PImportanceWWindowScoreSampler.hh | 99 - .../include/G4PScoreConfigurator.hh | 71 + .../transportation/include/G4PScoreProcess.hh | 54 +- .../include/G4ParallelGCellFinder.hh | 64 + ...ampler.hh => G4ParallelGeometrySampler.hh} | 92 +- .../include/G4ParallelImportanceProcess.hh | 27 +- .../include/G4ParallelImportanceSampler.hh | 104 - .../G4ParallelImportanceScoreSampler.hh | 92 - .../include/G4ParallelTransport.hh | 37 +- ....hh => G4ParallelTransportConfigurator.hh} | 69 +- .../include/G4ParallelWeightWindowProcess.hh | 118 - .../transportation/include/G4ProcessPlacer.hh | 25 +- .../include/G4TrackTerminator.hh | 62 + .../include/G4Transportation.hh | 4 +- .../include/G4Transportation.icc | 2 +- .../include/G4UserSpecialCuts.hh | 4 +- .../include/G4VProcessPlacer.hh | 10 +- .../transportation/include/G4VSampler.hh | 56 +- .../include/G4VSamplerConfigurator.hh | 65 + .../include/G4VTrackTerminator.hh | 58 + .../include/G4WeightCutOffConfigurator.hh | 74 + .../include/G4WeightCutOffProcess.hh | 111 + .../src/G4ImportancePostStepDoIt.cc | 32 +- ...ampler.cc => G4MImportanceConfigurator.cc} | 78 +- ...coreSampler.cc => G4MScoreConfigurator.cc} | 53 +- .../transportation/src/G4MScoreProcess.cc | 72 +- .../transportation/src/G4MassGCellFinder.cc | 59 + .../src/G4MassGeometrySampler.cc | 173 + .../src/G4MassImportanceProcess.cc | 62 +- .../transportation/src/G4PIScorer.cc | 92 - .../src/G4PImportanceConfigurator.cc | 94 + .../src/G4PImportanceWWindowScoreSampler.cc | 111 - .../src/G4PScoreConfigurator.cc | 70 + .../transportation/src/G4PScoreProcess.cc | 63 +- .../src/G4ParallelGCellFinder.cc | 56 + .../src/G4ParallelGeometrySampler.cc | 186 + .../src/G4ParallelImportanceProcess.cc | 35 +- .../src/G4ParallelImportanceSampler.cc | 110 - .../src/G4ParallelImportanceScoreSampler.cc | 86 - .../transportation/src/G4ParallelTransport.cc | 66 +- .../src/G4ParallelTransportConfigurator.cc | 68 + .../src/G4ParallelWeightWindowProcess.cc | 113 - .../transportation/src/G4ProcessPlacer.cc | 66 +- .../transportation/src/G4Transportation.cc | 8 +- .../transportation/src/G4UserSpecialCuts.cc | 4 +- .../transportation/src/G4VProcessPlacer.cc | 39 + .../transportation/src/G4VSampler.cc} | 24 +- .../src/G4VSamplerConfigurator.cc} | 38 +- .../transportation/src/G4VTrackTerminator.cc | 40 + .../src/G4WeightCutOffConfigurator.cc | 77 + .../src/G4WeightCutOffProcess.cc | 134 + 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/GNUmakefile | 5 +- source/run/History | 74 +- source/run/include/G4ExceptionHandler.hh | 82 + source/run/include/G4Run.hh | 2 +- source/run/include/G4RunManager.hh | 22 +- source/run/include/G4RunMessenger.hh | 7 +- .../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 | 118 + source/run/src/G4Run.cc | 2 +- source/run/src/G4RunManager.cc | 97 +- source/run/src/G4RunMessenger.cc | 43 +- source/run/src/G4UserPhysicsListMessenger.cc | 20 +- 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 | 2 +- .../run/src/G4VUserPrimaryGeneratorAction.cc | 2 +- source/track/History | 18 +- source/track/include/G4ForceCondition.hh | 12 +- 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/G4ParticleChangeForLoss.hh | 2 +- .../track/include/G4ParticleChangeForMSC.icc | 2 +- .../include/G4ParticleChangeForRadDecay.hh | 2 +- .../include/G4ParticleChangeForTransport.hh | 38 +- .../include/G4ParticleChangeForTransport.icc | 2 +- source/track/include/G4Step.hh | 33 +- source/track/include/G4Step.icc | 5 +- 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 | 26 +- 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/G4ParticleChangeForLoss.cc | 2 +- source/track/src/G4ParticleChangeForMSC.cc | 2 +- .../track/src/G4ParticleChangeForTransport.cc | 8 +- source/track/src/G4Step.cc | 2 +- source/track/src/G4StepPoint.cc | 6 +- source/track/src/G4Track.cc | 2 +- source/track/src/G4VParticleChange.cc | 30 +- source/tracking/History | 84 +- source/tracking/include/G4SmoothTrajectory.hh | 141 + .../include/G4SmoothTrajectoryPoint.hh | 106 + source/tracking/include/G4SteppingManager.hh | 15 +- source/tracking/include/G4SteppingVerbose.hh | 2 +- source/tracking/include/G4TrackVector.hh | 2 +- source/tracking/include/G4TrackingManager.hh | 5 +- .../tracking/include/G4TrackingMessenger.hh | 2 +- source/tracking/include/G4Trajectory.hh | 12 +- source/tracking/include/G4TrajectoryPoint.hh | 7 +- .../tracking/include/G4UserSteppingAction.hh | 2 +- .../tracking/include/G4UserTrackingAction.hh | 2 +- source/tracking/include/G4VSteppingVerbose.hh | 14 +- source/tracking/include/G4VTrajectory.hh | 83 +- source/tracking/include/G4VTrajectoryPoint.hh | 61 +- source/tracking/src/G4SmoothTrajectory.cc | 217 + .../tracking/src/G4SmoothTrajectoryPoint.cc | 114 + source/tracking/src/G4SteppingManager.cc | 18 +- source/tracking/src/G4SteppingManager2.cc | 85 +- source/tracking/src/G4SteppingVerbose.cc | 11 +- source/tracking/src/G4TrackingManager.cc | 14 +- source/tracking/src/G4TrackingMessenger.cc | 2 +- source/tracking/src/G4Trajectory.cc | 177 +- source/tracking/src/G4TrajectoryPoint.cc | 47 +- source/tracking/src/G4UserSteppingAction.cc | 2 +- source/tracking/src/G4UserTrackingAction.cc | 2 +- source/tracking/src/G4VSteppingVerbose.cc | 18 +- source/tracking/src/G4VTrajectory.cc | 203 + source/visualization/FukuiRenderer/CUSTOMIZE | 261 + source/visualization/FukuiRenderer/History | 3 + .../FukuiRenderer/include/G4DAWNFILE.hh | 2 +- .../include/G4DAWNFILESceneHandler.hh | 12 +- .../FukuiRenderer/include/G4DAWNFILEViewer.hh | 2 +- .../FukuiRenderer/include/G4FRClientServer.hh | 2 +- .../FukuiRenderer/include/G4FRConst.hh | 2 +- .../FukuiRenderer/include/G4FRFeatures.hh | 2 +- .../FukuiRenderer/include/G4FRSceneFunc.icc | 93 +- .../FukuiRenderer/include/G4FRofstream.hh | 2 +- .../FukuiRenderer/include/G4FukuiRenderer.hh | 2 +- .../include/G4FukuiRendererSceneHandler.hh | 13 +- .../include/G4FukuiRendererViewer.hh | 2 +- .../FukuiRenderer/src/G4DAWNFILE.cc | 2 +- .../src/G4DAWNFILESceneHandler.cc | 16 +- .../FukuiRenderer/src/G4DAWNFILEViewer.cc | 2 +- .../FukuiRenderer/src/G4FRClientServer.cc | 2 +- .../FukuiRenderer/src/G4FukuiRenderer.cc | 2 +- .../src/G4FukuiRendererSceneHandler.cc | 15 +- .../src/G4FukuiRendererViewer.cc | 2 +- source/visualization/HepRep/GNUmakefile | 4 +- source/visualization/HepRep/History | 36 +- source/visualization/HepRep/README | 40 + source/visualization/HepRep/copyfreehep | 10 + source/visualization/HepRep/copyfreehep.bat | 9 + .../HepRep/include/DefaultHepRepAction.h | 51 + .../HepRep/include/DefaultHepRepAttDef.h | 54 + .../HepRep/include/DefaultHepRepAttValue.h | 85 + .../HepRep/include/DefaultHepRepTreeID.h | 55 + .../HepRep/include/FreeHepTypes.h | 32 + .../visualization/HepRep/include/G4HepRep.hh | 65 + .../HepRep/include/G4HepRepFile.hh | 26 +- .../include/G4HepRepFileSceneHandler.hh | 32 +- .../HepRep/include/G4HepRepFileViewer.hh | 26 +- .../HepRep/include/G4HepRepSceneHandler.hh | 155 + .../HepRep/include/G4HepRepViewer.hh | 74 + .../HepRep/include/HEPREP/HepRep.h | 227 + .../HepRep/include/HEPREP/HepRepAction.h | 71 + .../HepRep/include/HEPREP/HepRepAttDef.h | 92 + .../HepRep/include/HEPREP/HepRepAttValue.h | 142 + .../HepRep/include/HEPREP/HepRepAttribute.h | 174 + .../HepRep/include/HEPREP/HepRepConstants.h | 58 + .../HepRep/include/HEPREP/HepRepDefinition.h | 98 + .../HepRep/include/HEPREP/HepRepFactory.h | 145 + .../HepRep/include/HEPREP/HepRepInstance.h | 122 + .../include/HEPREP/HepRepInstanceTree.h | 112 + .../HepRep/include/HEPREP/HepRepIterator.h | 90 + .../include/HEPREP/HepRepIteratorListener.h | 113 + .../HepRep/include/HEPREP/HepRepPoint.h | 190 + .../include/HEPREP/HepRepSelectFilter.h} | 63 +- .../HepRep/include/HEPREP/HepRepTreeID.h | 85 + .../HepRep/include/HEPREP/HepRepType.h | 107 + .../HepRep/include/HEPREP/HepRepTypeTree.h | 84 + .../HepRep/include/HEPREP/HepRepWriter.h | 164 + .../HepRep/include/HepRepXMLWriter.hh | 24 +- .../HepRep/include/IndentPrintWriter.h | 69 + source/visualization/HepRep/include/README | 16 + .../HepRep/include/StreamerHepRep.h | 77 + .../HepRep/include/StreamerHepRepAttribute.h | 62 + .../HepRep/include/StreamerHepRepDefinition.h | 56 + .../HepRep/include/StreamerHepRepInstance.h | 70 + .../include/StreamerHepRepInstanceTree.h | 64 + .../HepRep/include/StreamerHepRepPoint.h | 78 + .../HepRep/include/StreamerHepRepType.h | 68 + .../HepRep/include/StreamerHepRepTypeTree.h | 55 + .../HepRep/include/XMLHepRepStreamer.h | 80 + .../HepRep/include/XMLHepRepStreamerFactory.h | 70 + .../visualization/HepRep/include/XMLWriter.h | 80 + .../HepRep/src/DefaultHepRepAction.cc | 47 + .../HepRep/src/DefaultHepRepAttDef.cc | 69 + .../HepRep/src/DefaultHepRepAttValue.cc | 200 + .../HepRep/src/DefaultHepRepTreeID.cc} | 62 +- source/visualization/HepRep/src/G4HepRep.cc | 88 + .../visualization/HepRep/src/G4HepRepFile.cc | 30 +- .../HepRep/src/G4HepRepFileSceneHandler.cc | 76 +- .../HepRep/src/G4HepRepFileViewer.cc | 29 +- .../HepRep/src/G4HepRepSceneHandler.cc | 617 + .../HepRep/src/G4HepRepViewer.cc | 131 + .../HepRep/src/HepRepXMLWriter.cc | 24 +- .../HepRep/src/IndentPrintWriter.cc | 103 + source/visualization/HepRep/src/README | 16 + .../HepRep/src/StreamerHepRep.cc | 103 + .../HepRep/src/StreamerHepRepAttribute.cc | 90 + .../HepRep/src/StreamerHepRepDefinition.cc | 59 + .../HepRep/src/StreamerHepRepInstance.cc | 81 + .../HepRep/src/StreamerHepRepInstanceTree.cc | 69 + .../HepRep/src/StreamerHepRepPoint.cc | 137 + .../HepRep/src/StreamerHepRepType.cc | 93 +- .../HepRep/src/StreamerHepRepTypeTree.cc | 43 +- .../HepRep/src/XMLHepRepStreamer.cc | 225 + .../HepRep/src/XMLHepRepStreamerFactory.cc | 91 + source/visualization/HepRep/src/XMLWriter.cc | 285 + source/visualization/History | 94 +- .../OPACS/include/G4GoSceneHandler.hh | 6 +- source/visualization/OPACS/include/G4Wo.hh | 2 +- .../visualization/OPACS/include/G4WoViewer.hh | 2 +- source/visualization/OPACS/include/G4Xo.hh | 2 +- .../visualization/OPACS/include/G4XoViewer.hh | 2 +- .../OPACS/src/G4GoSceneHandler.cc | 28 +- source/visualization/OPACS/src/G4Wo.cc | 2 +- source/visualization/OPACS/src/G4WoViewer.cc | 2 +- source/visualization/OPACS/src/G4Xo.cc | 2 +- source/visualization/OPACS/src/G4XoViewer.cc | 2 +- source/visualization/OpenGL/GNUmakefile | 4 +- source/visualization/OpenGL/History | 23 +- .../include/G4OpenGLImmediateSceneHandler.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateViewer.hh | 7 +- .../OpenGL/include/G4OpenGLImmediateWin32.hh | 8 +- .../include/G4OpenGLImmediateWin32Viewer.hh | 7 +- .../OpenGL/include/G4OpenGLImmediateX.hh | 2 +- .../include/G4OpenGLImmediateXViewer.hh | 2 +- .../OpenGL/include/G4OpenGLImmediateXm.hh | 2 +- .../include/G4OpenGLImmediateXmViewer.hh | 2 +- .../OpenGL/include/G4OpenGLSceneHandler.hh | 6 +- .../OpenGL/include/G4OpenGLSceneHandler.icc | 2 +- .../include/G4OpenGLStoredSceneHandler.hh | 2 +- .../OpenGL/include/G4OpenGLStoredViewer.hh | 2 +- .../OpenGL/include/G4OpenGLStoredWin32.hh | 8 +- .../include/G4OpenGLStoredWin32Viewer.hh | 7 +- .../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 | 9 +- .../OpenGL/include/G4OpenGLWin32Viewer.hh | 6 +- .../OpenGL/include/G4OpenGLXViewer.hh | 6 +- .../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 +- .../src/G4OpenGLImmediateSceneHandler.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateViewer.cc | 7 +- .../OpenGL/src/G4OpenGLImmediateWin32.cc | 15 +- .../src/G4OpenGLImmediateWin32Viewer.cc | 10 +- .../OpenGL/src/G4OpenGLImmediateX.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateXViewer.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateXm.cc | 2 +- .../OpenGL/src/G4OpenGLImmediateXmViewer.cc | 2 +- .../OpenGL/src/G4OpenGLSceneHandler.cc | 16 +- .../OpenGL/src/G4OpenGLStoredSceneHandler.cc | 6 +- .../OpenGL/src/G4OpenGLStoredViewer.cc | 22 +- .../OpenGL/src/G4OpenGLStoredWin32.cc | 14 +- .../OpenGL/src/G4OpenGLStoredWin32Viewer.cc | 12 +- .../OpenGL/src/G4OpenGLStoredX.cc | 2 +- .../OpenGL/src/G4OpenGLStoredXViewer.cc | 2 +- .../OpenGL/src/G4OpenGLStoredXm.cc | 2 +- .../OpenGL/src/G4OpenGLStoredXmViewer.cc | 2 +- .../OpenGL/src/G4OpenGLTransform3D.cc | 2 +- .../OpenGL/src/G4OpenGLViewer.cc | 7 +- .../OpenGL/src/G4OpenGLWin32Viewer.cc | 9 +- .../OpenGL/src/G4OpenGLXViewer.cc | 23 +- .../visualization/OpenGL/src/G4OpenGLXmBox.cc | 2 +- .../src/G4OpenGLXmConvenienceRoutines.cc | 9 +- .../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 | 2 +- .../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 | 2 +- .../src/G4OpenGLXmWindowHandlingCallbacks.cc | 2 +- source/visualization/OpenInventor/History | 5 +- .../OpenInventor/include/G4OpenInventor.hh | 2 +- .../include/G4OpenInventorSceneHandler.hh | 6 +- .../include/G4OpenInventorSceneHandler.icc | 2 +- .../include/G4OpenInventorTransform3D.hh | 2 +- .../include/G4OpenInventorViewer.hh | 2 +- .../include/G4OpenInventorWin32.hh | 2 +- .../OpenInventor/include/G4OpenInventorX.hh | 2 +- .../OpenInventor/src/G4OpenInventor.cc | 2 +- .../src/G4OpenInventorSceneHandler.cc | 13 +- .../src/G4OpenInventorTransform3D.cc | 2 +- .../OpenInventor/src/G4OpenInventorViewer.cc | 22 +- .../OpenInventor/src/G4OpenInventorWin32.cc | 2 +- .../OpenInventor/src/G4OpenInventorX.cc | 2 +- source/visualization/README | 2 +- source/visualization/README.built_in_commands | 33 +- source/visualization/RayTracer/History | 12 +- .../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/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 | 6 +- .../RayTracer/include/G4RayTracerViewer.hh | 2 +- .../RayTracer/include/G4RayTrajectory.hh | 16 +- .../RayTracer/include/G4RayTrajectoryPoint.hh | 12 +- .../RayTracer/include/G4VFigureFileMaker.hh | 2 +- .../RayTracer/src/G4RTJpegCoder.cc | 2 +- .../RayTracer/src/G4RTJpegMaker.cc | 2 +- .../RayTracer/src/G4RTMessenger.cc | 6 +- .../RayTracer/src/G4RTOutBitStream.cc | 2 +- .../RayTracer/src/G4RTSteppingAction.cc | 2 +- .../RayTracer/src/G4RTTrackingAction.cc | 2 +- .../RayTracer/src/G4RayShooter.cc | 2 +- .../RayTracer/src/G4RayTracer.cc | 12 +- .../RayTracer/src/G4RayTracerSceneHandler.cc | 2 +- .../RayTracer/src/G4RayTracerViewer.cc | 2 +- .../RayTracer/src/G4RayTrajectory.cc | 7 +- .../RayTracer/src/G4RayTrajectoryPoint.cc | 2 +- source/visualization/Tree/History | 5 +- .../visualization/Tree/include/G4ASCIITree.hh | 2 +- .../Tree/include/G4ASCIITreeMessenger.hh | 2 +- .../Tree/include/G4ASCIITreeSceneHandler.hh | 2 +- .../Tree/include/G4ASCIITreeViewer.hh | 2 +- source/visualization/Tree/include/G4VTree.hh | 2 +- .../Tree/include/G4VTreeSceneHandler.hh | 6 +- .../Tree/include/G4VTreeSceneHandler.icc | 2 +- .../Tree/include/G4VTreeViewer.hh | 2 +- source/visualization/Tree/src/G4ASCIITree.cc | 2 +- .../Tree/src/G4ASCIITreeMessenger.cc | 2 +- .../Tree/src/G4ASCIITreeSceneHandler.cc | 2 +- .../Tree/src/G4ASCIITreeViewer.cc | 10 +- .../Tree/src/G4GAGTreeSceneHandler.cc | 2 - .../visualization/Tree/src/G4GAGTreeViewer.cc | 6 +- source/visualization/Tree/src/G4VTree.cc | 2 +- .../Tree/src/G4VTreeSceneHandler.cc | 17 +- .../visualization/Tree/src/G4VTreeViewer.cc | 2 +- source/visualization/VRML/History | 3 + .../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 | 10 +- .../VRML/include/G4VRML1FileViewer.hh | 2 +- .../VRML/include/G4VRML1SceneHandler.hh | 10 +- .../VRML/include/G4VRML1Viewer.hh | 2 +- source/visualization/VRML/include/G4VRML2.hh | 2 +- .../visualization/VRML/include/G4VRML2File.hh | 2 +- .../VRML/include/G4VRML2FileSceneHandler.hh | 10 +- .../VRML/include/G4VRML2FileViewer.hh | 2 +- .../VRML/include/G4VRML2SceneHandler.hh | 10 +- .../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 | 2 +- source/visualization/VRML/src/G4VRML1File.cc | 2 +- .../VRML/src/G4VRML1FileSceneHandler.cc | 2 +- .../VRML/src/G4VRML1FileViewer.cc | 2 +- .../VRML/src/G4VRML1SceneHandler.cc | 2 +- .../VRML/src/G4VRML1SceneHandlerFunc.icc | 11 +- .../visualization/VRML/src/G4VRML1Viewer.cc | 2 +- source/visualization/VRML/src/G4VRML2.cc | 2 +- source/visualization/VRML/src/G4VRML2File.cc | 2 +- .../VRML/src/G4VRML2FileSceneHandler.cc | 2 +- .../VRML/src/G4VRML2FileViewer.cc | 2 +- .../VRML/src/G4VRML2SceneHandler.cc | 2 +- .../VRML/src/G4VRML2SceneHandlerFunc.icc | 9 +- .../visualization/VRML/src/G4VRML2Viewer.cc | 2 +- source/visualization/XXX/GNUmakefile | 3 +- source/visualization/XXX/History | 6 +- source/visualization/XXX/include/G4XXX.hh | 2 +- .../XXX/include/G4XXXSceneHandler.hh | 20 +- .../visualization/XXX/include/G4XXXViewer.hh | 2 +- source/visualization/XXX/src/G4XXX.cc | 2 +- .../XXX/src/G4XXXSceneHandler.cc | 75 +- source/visualization/XXX/src/G4XXXViewer.cc | 2 +- .../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 | 6 +- .../management/include/G4VSceneHandler.icc | 2 +- .../management/include/G4VViewer.hh | 2 +- .../management/include/G4VViewer.icc | 2 +- .../management/include/G4VVisCommand.hh | 5 +- .../management/include/G4VVisCommand.icc | 2 +- .../management/include/G4ViewParameters.hh | 2 +- .../management/include/G4ViewParameters.icc | 2 +- .../management/include/G4ViewerList.hh | 2 +- .../management/include/G4VisCommands.hh | 2 +- .../include/G4VisCommandsCompound.hh | 2 +- .../management/include/G4VisCommandsScene.hh | 2 +- .../include/G4VisCommandsSceneAdd.hh | 8 +- .../include/G4VisCommandsSceneHandler.hh | 2 +- .../management/include/G4VisCommandsViewer.hh | 2 +- .../include/G4VisCommandsViewerSet.hh | 6 +- .../include/G4VisFeaturesOfDAWNFILE.hh | 2 +- .../include/G4VisFeaturesOfFukuiRenderer.hh | 2 +- .../include/G4VisFeaturesOfOpenGL.hh | 2 +- .../include/G4VisFeaturesOfOpenInventor.hh | 2 +- .../management/include/G4VisManager.hh | 10 +- .../management/include/G4VisManager.icc | 2 +- .../management/include/G4VisStateDependent.hh | 2 +- .../include/G4VisToOldVisCommands.hh | 2 +- .../management/include/MyVisManager.cc | 6 +- .../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 | 24 +- .../visualization/management/src/G4VViewer.cc | 2 +- .../management/src/G4VVisCommand.cc | 17 +- .../management/src/G4ViewParameters.cc | 2 +- .../management/src/G4ViewerList.cc | 2 +- .../management/src/G4VisCommands.cc | 2 +- .../management/src/G4VisCommandsCompound.cc | 8 +- .../management/src/G4VisCommandsScene.cc | 2 +- .../management/src/G4VisCommandsSceneAdd.cc | 37 +- .../src/G4VisCommandsSceneHandler.cc | 2 +- .../management/src/G4VisCommandsViewer.cc | 2 +- .../management/src/G4VisCommandsViewerSet.cc | 28 +- .../management/src/G4VisFeaturesOfDAWNFILE.cc | 2 +- .../src/G4VisFeaturesOfFukuiRenderer.cc | 2 +- .../management/src/G4VisFeaturesOfOpenGL.cc | 2 +- .../src/G4VisFeaturesOfOpenInventor.cc | 2 +- .../management/src/G4VisManager.cc | 126 +- .../management/src/G4VisStateDependent.cc | 12 +- source/visualization/modeling/History | 12 +- .../modeling/include/G4AxesModel.hh | 2 +- .../modeling/include/G4AxesModel.icc | 2 +- .../modeling/include/G4BoundingSphereScene.hh | 6 +- .../include/G4FlavoredParallelWorldModel.hh | 2 +- .../modeling/include/G4HitsModel.hh | 2 +- .../modeling/include/G4HitsModel.icc | 2 +- .../modeling/include/G4LogicalVolumeModel.hh | 2 +- .../modeling/include/G4ModelingParameters.hh | 2 +- .../modeling/include/G4ModelingParameters.icc | 2 +- .../modeling/include/G4NullModel.hh | 2 +- .../modeling/include/G4PhysicalVolumeModel.hh | 2 +- .../include/G4PhysicalVolumeSearchScene.hh | 6 +- .../include/G4PhysicalVolumeSearchScene.icc | 2 +- .../modeling/include/G4ScaleModel.hh | 2 +- .../modeling/include/G4ScaleModel.icc | 2 +- .../modeling/include/G4TextModel.hh | 2 +- .../modeling/include/G4TextModel.icc | 2 +- .../modeling/include/G4TrajectoriesModel.hh | 13 +- .../modeling/include/G4TrajectoriesModel.icc | 2 +- .../modeling/include/G4VModel.hh | 2 +- .../modeling/include/G4VModel.icc | 2 +- .../visualization/modeling/src/G4AxesModel.cc | 2 +- .../modeling/src/G4BoundingSphereScene.cc | 2 +- .../src/G4FlavoredParallelWorldModel.cc | 6 +- .../visualization/modeling/src/G4HitsModel.cc | 13 +- .../modeling/src/G4LogicalVolumeModel.cc | 2 +- .../modeling/src/G4ModelingParameters.cc | 2 +- .../visualization/modeling/src/G4NullModel.cc | 2 +- .../modeling/src/G4PhysicalVolumeModel.cc | 2 +- .../src/G4PhysicalVolumeSearchScene.cc | 2 +- .../modeling/src/G4ScaleModel.cc | 2 +- .../visualization/modeling/src/G4TextModel.cc | 2 +- .../modeling/src/G4TrajectoriesModel.cc | 13 +- source/visualization/modeling/src/G4VModel.cc | 2 +- 5733 files changed, 263867 insertions(+), 74574 deletions(-) create mode 100644 ReleaseNotes/Patch4.4.1-1.txt create mode 100644 ReleaseNotes/ReleaseNotes4.5.0.txt delete mode 100644 config/G4ODBMS_BUILD.gmk delete mode 100644 config/common_kernel.gmk delete mode 100644 config/common_objy.gmk create mode 100644 config/scripts/GNUmakefile create mode 100644 config/scripts/binmake.gmk create mode 100644 examples/advanced/brachytherapy/brachytherapy.hbk create mode 100644 examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh rename examples/{extended/biasing/B08/include/B08PrimaryGeneratorAction.hh => advanced/brachytherapy/include/BrachyFactory.hh} (67%) rename examples/{extended/biasing/B07/include/B07PrimaryGeneratorAction.hh => advanced/brachytherapy/include/BrachyFactoryI.hh} (67%) create mode 100644 examples/advanced/brachytherapy/include/BrachyFactoryIr.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh rename examples/{extended/biasing/B06/include/B06ScorePrinter.hh => advanced/brachytherapy/include/BrachyMaterial.hh} (71%) create mode 100644 examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh create mode 100644 examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh rename examples/{extended/biasing/B08/include/B08ImportanceMessenger.hh => advanced/brachytherapy/include/BrachyRunMessenger.hh} (52%) create mode 100644 examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc rename source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc => examples/advanced/brachytherapy/src/BrachyFactory.cc (68%) rename examples/{extended/biasing/B07/src/B07PrimaryGeneratorAction.cc => advanced/brachytherapy/src/BrachyFactoryI.cc} (58%) create mode 100644 examples/advanced/brachytherapy/src/BrachyFactoryIr.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyMaterial.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc create mode 100644 examples/advanced/brachytherapy/src/BrachyRunMessenger.cc create mode 100644 examples/advanced/composite_calorimeter/CompositeCalorimeter.cc rename examples/{extended/biasing/B06 => advanced/composite_calorimeter}/GNUmakefile (50%) create mode 100644 examples/advanced/composite_calorimeter/History create mode 100644 examples/advanced/composite_calorimeter/README create mode 100644 examples/advanced/composite_calorimeter/dataconf/g4testbeamhcal96.conf create mode 100644 examples/advanced/composite_calorimeter/dataconf/testbeamhcal96.conf create mode 100644 examples/advanced/composite_calorimeter/datageom/tbhcal96.geom create mode 100644 examples/advanced/composite_calorimeter/datageom/tbhcal96hcal.geom create mode 100644 examples/advanced/composite_calorimeter/datageom/tbhcal96xtal.geom create mode 100644 examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 create mode 100644 examples/advanced/composite_calorimeter/dataglobal/material.cms create mode 100644 examples/advanced/composite_calorimeter/dataglobal/rotation.cms create mode 100644 examples/advanced/composite_calorimeter/datavis/tbhcal96.vis create mode 100644 examples/advanced/composite_calorimeter/datavis/tbhcal96hcal.vis create mode 100644 examples/advanced/composite_calorimeter/datavis/tbhcal96xtal.vis create mode 100755 examples/advanced/composite_calorimeter/envExample.csh create mode 100755 examples/advanced/composite_calorimeter/envExample.sh create mode 100644 examples/advanced/composite_calorimeter/gui.mac rename source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl => examples/advanced/composite_calorimeter/include/CCalAMaterial.hh (57%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalAnalysis.hh rename examples/{extended/biasing/B02/src/B02Scorer.cc => advanced/composite_calorimeter/include/CCalDataSet.hh} (52%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalDetector.hh rename examples/{extended/biasing/B05/include/B05DetectorConstruction.hh => advanced/composite_calorimeter/include/CCalDetectorConstruction.hh} (76%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalEcal.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalEcalOrganization.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalEndOfEventAction.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalG4Able.hh rename source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl => examples/advanced/composite_calorimeter/include/CCalG4Ecal.hh (52%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalG4Hall.hh rename source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl => examples/advanced/composite_calorimeter/include/CCalG4Hcal.hh (54%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalG4Hit.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalG4HitCollection.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalGeometryConfiguration.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalHall.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalHcal.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalHcalOrganization.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalHit.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalMagneticField.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalMaterial.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalMaterialFactory.hh rename examples/{extended/persistency/PersistentEx02/include/PersEx02RunAction.hh => advanced/composite_calorimeter/include/CCalPhysicsList.hh} (76%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorAction.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorMessenger.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalRotationMatrixFactory.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalRunAction.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalSDList.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalSensAssign.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalSensitiveConfiguration.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalSensitiveDetectors.hh rename source/persistency/geometry/management/include/G4PPVParameterised.ddl => examples/advanced/composite_calorimeter/include/CCalStackingAction.hh (56%) create mode 100644 examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalVOrganization.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalVisManager.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalVisualisable.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCaloOrganization.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCaloSD.hh create mode 100644 examples/advanced/composite_calorimeter/include/CCalutils.hh rename examples/{extended/persistency/PersistentEx01/include/PersEx01PrimaryGeneratorAction.hh => advanced/composite_calorimeter/include/EMPhysics.hh} (77%) rename examples/{extended/biasing/B04/include/B04PhysicsList.hh => advanced/composite_calorimeter/include/G4EMBuilder.hh} (62%) create mode 100644 examples/advanced/composite_calorimeter/include/G4ElectroNuclearBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh rename source/persistency/geometry/solids/Boolean/src/G4PSubtractionSolid.cc => examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh (66%) create mode 100644 examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh create mode 100644 examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh rename examples/{extended/biasing/B05/include/B05PhysicsList.hh => advanced/composite_calorimeter/include/GeneralPhysics.hh} (68%) create mode 100644 examples/advanced/composite_calorimeter/include/HadronPhysicsLHEP.hh create mode 100644 examples/advanced/composite_calorimeter/include/HadronPhysicsQGSC.hh create mode 100644 examples/advanced/composite_calorimeter/include/HadronPhysicsQGSP.hh create mode 100644 examples/advanced/composite_calorimeter/include/IonPhysics.hh create mode 100644 examples/advanced/composite_calorimeter/include/MuonPhysics.hh create mode 100644 examples/advanced/composite_calorimeter/src/CCalAMaterial.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalAnalysis.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalDetector.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalDetectorConstruction.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalEcal.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalG4Able.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalG4Hall.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalG4Hit.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalGeometryConfiguration.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalHall.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalHcal.cc rename examples/{extended/persistency/PersistentEx01/src/PersEx01RunAction.cc => advanced/composite_calorimeter/src/CCalHcalOrganization.cc} (66%) create mode 100644 examples/advanced/composite_calorimeter/src/CCalHit.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalMagneticField.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalMaterial.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalMaterialFactory.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-LHEP create mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSC create mode 100644 examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSP create mode 100644 examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorMessenger.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalRunAction.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalSDList.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalSensAssign.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalSensitiveDetectors.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalStackingAction.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc rename examples/{extended/biasing/B05/src/B05PrimaryGeneratorAction.cc => advanced/composite_calorimeter/src/CCalVOrganization.cc} (60%) create mode 100644 examples/advanced/composite_calorimeter/src/CCalVisManager.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalVisualisable.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCaloOrganization.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCaloSD.cc create mode 100644 examples/advanced/composite_calorimeter/src/CCalutils.cc create mode 100644 examples/advanced/composite_calorimeter/src/EMPhysics.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4EMBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4ElectroNuclearBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc rename examples/{extended/persistency/PersistentEx01/src/PersEx01StackingAction.cc => advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc} (70%) create mode 100644 examples/advanced/composite_calorimeter/src/G4LHEPNeutronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4PiKBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.cc rename examples/{extended/persistency/PersistentEx01/src/PersEx01PrimaryGeneratorAction.cc => advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc} (62%) create mode 100644 examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc create mode 100644 examples/advanced/composite_calorimeter/src/GeneralPhysics.cc rename examples/{extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc => advanced/composite_calorimeter/src/HadronPhysicsLHEP.cc} (60%) create mode 100644 examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc create mode 100644 examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc create mode 100644 examples/advanced/composite_calorimeter/src/IonPhysics.cc create mode 100644 examples/advanced/composite_calorimeter/src/MuonPhysics.cc create mode 100644 examples/advanced/composite_calorimeter/test.g4mac create mode 100644 examples/advanced/gammaray_telescope/gammaraytel.in create mode 100644 examples/advanced/gammaray_telescope/gammaraytel.out mode change 100644 => 100755 examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc rename examples/{extended/biasing/B07 => advanced/lAr_calorimeter}/GNUmakefile (50%) create mode 100644 examples/advanced/lAr_calorimeter/History create mode 100644 examples/advanced/lAr_calorimeter/README create mode 100644 examples/advanced/lAr_calorimeter/data-tracks/tracks-120GeV.dat create mode 100644 examples/advanced/lAr_calorimeter/data-tracks/tracks-200GeV.dat create mode 100644 examples/advanced/lAr_calorimeter/data-tracks/tracks-20GeV.dat create mode 100644 examples/advanced/lAr_calorimeter/data-tracks/tracks-40GeV.dat create mode 100644 examples/advanced/lAr_calorimeter/data-tracks/tracks-60GeV.dat create mode 100644 examples/advanced/lAr_calorimeter/data-tracks/tracks-80GeV.dat create mode 100644 examples/advanced/lAr_calorimeter/geom_data/FCal1Electrodes.dat create mode 100644 examples/advanced/lAr_calorimeter/geom_data/FCal2Electrodes.dat create mode 100644 examples/advanced/lAr_calorimeter/gui.mac create mode 100644 examples/advanced/lAr_calorimeter/include/FCALAnalysisManager.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALEMModule.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALHadModule.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALRunAction.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh rename source/persistency/digits+hits/digits/include/G4PVDigit.ddl => examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh (62%) create mode 100644 examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh create mode 100644 examples/advanced/lAr_calorimeter/include/FCALVisManager.hh create mode 100644 examples/advanced/lAr_calorimeter/lArCal.cc create mode 100644 examples/advanced/lAr_calorimeter/lAr_calorimeter.ps create mode 100644 examples/advanced/lAr_calorimeter/prerunN03.mac create mode 100644 examples/advanced/lAr_calorimeter/prerunlArcal.mac create mode 100644 examples/advanced/lAr_calorimeter/src/FCALAnalysisManager.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.icc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.input create mode 100644 examples/advanced/lAr_calorimeter/src/FCALEMModule.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.icc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.input create mode 100644 examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALHadModule.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.icc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.input create mode 100644 examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALRunAction.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.icc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.input create mode 100644 examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc create mode 100644 examples/advanced/lAr_calorimeter/src/FCALVisManager.cc create mode 100644 examples/advanced/underground_physics/README_stt delete mode 100644 examples/advanced/underground_physics/anaphe delete mode 100644 examples/advanced/underground_physics/anaphe.tar.gz mode change 100644 => 100755 examples/advanced/underground_physics/src/DMXVisManager.cc create mode 100644 examples/advanced/underground_physics/stt.mac create mode 100644 examples/advanced/underground_physics/stt_pmt_ref.out create mode 100644 examples/advanced/underground_physics/stt_ref.out mode change 100644 => 100755 examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc create mode 100644 examples/advanced/xray_telescope/README_stt create mode 100644 examples/advanced/xray_telescope/analysis/Lab/cloud.tcl create mode 100644 examples/advanced/xray_telescope/analysis/Lab/g4Xt.xrm create mode 100644 examples/advanced/xray_telescope/analysis/Lab/gui.mac create mode 100755 examples/advanced/xray_telescope/analysis/Lab/jas.sh create mode 100755 examples/advanced/xray_telescope/analysis/Lab/main.xml create mode 100644 examples/advanced/xray_telescope/analysis/Lab/run.mac create mode 100644 examples/advanced/xray_telescope/analysis/Lab/session.tcl delete mode 100644 examples/advanced/xray_telescope/anaphe.gmk rename examples/advanced/xray_telescope/include/{XrayTelAnalysis.hh-Anaphe => XrayTelAnalysis.hh} (73%) delete mode 100644 examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-AIDA create mode 100644 examples/advanced/xray_telescope/src/XrayTelAnalysis.cc delete mode 100644 examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-AIDA delete mode 100644 examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe mode change 100644 => 100755 examples/advanced/xray_telescope/src/XrayTelVisManager.cc create mode 100644 examples/advanced/xray_telescope/xraytel_ref.hbook create mode 100644 examples/advanced/xray_telescope/xraytel_ref.out create mode 100644 examples/extended/analysis/A01/A01.aida rename examples/extended/{persistency/PersistentEx01/PersistentEx01.cc => analysis/A01/A01app.cc} (57%) create mode 100644 examples/extended/analysis/A01/GNUmakefile create mode 100644 examples/extended/analysis/A01/History create mode 100644 examples/extended/analysis/A01/eventAction.mac create mode 100644 examples/extended/analysis/A01/heprep.mac create mode 100644 examples/extended/analysis/A01/heprep2.mac create mode 100644 examples/extended/analysis/A01/include/A01AnalysisManager.hh rename examples/extended/{biasing/B06/include/B06ImportanceDetectorConstruction.hh => analysis/A01/include/A01CellParameterisation.hh} (73%) create mode 100644 examples/extended/analysis/A01/include/A01DetectorConstMessenger.hh create mode 100644 examples/extended/analysis/A01/include/A01DetectorConstruction.hh create mode 100644 examples/extended/analysis/A01/include/A01DriftChamber.hh create mode 100644 examples/extended/analysis/A01/include/A01DriftChamberHit.hh create mode 100644 examples/extended/analysis/A01/include/A01EMPhysics.hh create mode 100644 examples/extended/analysis/A01/include/A01EmCalorimeter.hh create mode 100644 examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh create mode 100644 examples/extended/analysis/A01/include/A01EventAction.hh create mode 100644 examples/extended/analysis/A01/include/A01EventActionMessenger.hh rename examples/extended/{biasing/B06/include/B06PhysicsList.hh => analysis/A01/include/A01GeneralPhysics.hh} (67%) create mode 100644 examples/extended/analysis/A01/include/A01HadCalorimeter.hh create mode 100644 examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh create mode 100644 examples/extended/analysis/A01/include/A01HadronPhysics.hh create mode 100644 examples/extended/analysis/A01/include/A01Hodoscope.hh create mode 100644 examples/extended/analysis/A01/include/A01HodoscopeHit.hh create mode 100644 examples/extended/analysis/A01/include/A01IonPhysics.hh create mode 100644 examples/extended/analysis/A01/include/A01MagneticField.hh create mode 100644 examples/extended/analysis/A01/include/A01MagneticFieldMessenger.hh create mode 100644 examples/extended/analysis/A01/include/A01MuonPhysics.hh create mode 100644 examples/extended/analysis/A01/include/A01PhysicsList.hh create mode 100644 examples/extended/analysis/A01/include/A01PrimaryGeneratorAction.hh create mode 100644 examples/extended/analysis/A01/include/A01PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/analysis/A01/include/A01TrackingAction.hh create mode 100644 examples/extended/analysis/A01/include/A01Trajectory.hh create mode 100644 examples/extended/analysis/A01/include/A01VisManager.hh create mode 100644 examples/extended/analysis/A01/include/AIDA/AIDA.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IAnnotation.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IAxis.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IAxisStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IBaseStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IBrushStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ICloud.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ICloud1D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ICloud2D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ICloud3D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IConstants.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IDataPoint.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IDataPointSet.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IDataStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IEvaluator.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFillStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFilter.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFitData.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFitFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFitResult.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFitter.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFunction.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IHistogram.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IHistogram1D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IHistogram2D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IHistogram3D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IInfo.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IInfoStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ILineStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IManagedObject.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IMeasurement.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IModelFunction.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IPlotter.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IProfile.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IProfile1D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IProfile2D.h create mode 100644 examples/extended/analysis/A01/include/AIDA/IRangeSet.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITextStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITitleStyle.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITree.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITreeFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITuple.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITupleEntry.h create mode 100644 examples/extended/analysis/A01/include/AIDA/ITupleFactory.h create mode 100644 examples/extended/analysis/A01/include/AIDA/readme.txt create mode 100644 examples/extended/analysis/A01/novis.mac create mode 100644 examples/extended/analysis/A01/opengl.mac create mode 100644 examples/extended/analysis/A01/setup-analysis.csh create mode 100644 examples/extended/analysis/A01/setup-analysis.sh create mode 100644 examples/extended/analysis/A01/setup-analysis.win32 create mode 100644 examples/extended/analysis/A01/src/A01AnalysisManager.cc create mode 100644 examples/extended/analysis/A01/src/A01CellParameterisation.cc create mode 100644 examples/extended/analysis/A01/src/A01DetectorConstMessenger.cc create mode 100644 examples/extended/analysis/A01/src/A01DetectorConstruction.cc create mode 100644 examples/extended/analysis/A01/src/A01DriftChamber.cc create mode 100644 examples/extended/analysis/A01/src/A01DriftChamberHit.cc create mode 100644 examples/extended/analysis/A01/src/A01EMPhysics.cc create mode 100644 examples/extended/analysis/A01/src/A01EmCalorimeter.cc create mode 100644 examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc create mode 100644 examples/extended/analysis/A01/src/A01EventAction.cc create mode 100644 examples/extended/analysis/A01/src/A01EventActionMessenger.cc create mode 100644 examples/extended/analysis/A01/src/A01GeneralPhysics.cc create mode 100644 examples/extended/analysis/A01/src/A01HadCalorimeter.cc create mode 100644 examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc create mode 100644 examples/extended/analysis/A01/src/A01HadronPhysics.cc create mode 100644 examples/extended/analysis/A01/src/A01Hodoscope.cc create mode 100644 examples/extended/analysis/A01/src/A01HodoscopeHit.cc create mode 100644 examples/extended/analysis/A01/src/A01IonPhysics.cc create mode 100644 examples/extended/analysis/A01/src/A01MagneticField.cc create mode 100644 examples/extended/analysis/A01/src/A01MagneticFieldMessenger.cc create mode 100644 examples/extended/analysis/A01/src/A01MuonPhysics.cc create mode 100644 examples/extended/analysis/A01/src/A01PhysicsList.cc create mode 100644 examples/extended/analysis/A01/src/A01PrimaryGeneratorAction.cc create mode 100644 examples/extended/analysis/A01/src/A01PrimaryGeneratorMessenger.cc rename source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc => examples/extended/analysis/A01/src/A01TrackingAction.cc (74%) create mode 100644 examples/extended/analysis/A01/src/A01Trajectory.cc create mode 100644 examples/extended/analysis/A01/src/A01VisManager.cc create mode 100644 examples/extended/analysis/A01/src/DummyAnalysisFactory.cc mode change 100644 => 100755 examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc create mode 100644 examples/extended/analysis/History delete mode 100644 examples/extended/biasing/B01/exampleB01.out create mode 100644 examples/extended/biasing/B02/B02plot.py create mode 100644 examples/extended/biasing/B02/include/B02CellScorer.hh rename source/processes/transportation/include/G4MassImportanceScoreSampler.hh => examples/extended/biasing/B02/include/B02CellScorerStore.hh (52%) create mode 100644 examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh create mode 100644 examples/extended/biasing/B02/include/B02PVolumeStore.hh create mode 100755 examples/extended/biasing/B02/setupAnaphe.csh rename source/geometry/biasing/src/G4PTouchableKey.cc => examples/extended/biasing/B02/src/B02CellScorer.cc (60%) rename source/processes/transportation/src/G4ParallelScoreSampler.cc => examples/extended/biasing/B02/src/B02CellScorerStore.cc (51%) create mode 100644 examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc create mode 100644 examples/extended/biasing/B02/src/B02PVolumeStore.cc create mode 100644 examples/extended/biasing/B03/B03App.py create mode 100644 examples/extended/biasing/B03/B03Application.py create mode 100755 examples/extended/biasing/B03/B03RunApplication.py create mode 100755 examples/extended/biasing/B03/buildit.sh create mode 100644 examples/extended/biasing/B03/env.csh create mode 100644 examples/extended/biasing/B03/include/B03App.hh create mode 100644 examples/extended/biasing/B03/include/B03App.i create mode 100644 examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh create mode 100644 examples/extended/biasing/B03/include/B03PVolumeStore.hh delete mode 100644 examples/extended/biasing/B03/init.mac create mode 100644 examples/extended/biasing/B03/python.rc rename examples/extended/biasing/{B04/exampleB04.cc => B03/src/B03App.cc} (56%) create mode 100644 examples/extended/biasing/B03/src/B03App_wrap.cc create mode 100644 examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc create mode 100644 examples/extended/biasing/B03/src/B03PVolumeStore.cc delete mode 100644 examples/extended/biasing/B04/GNUmakefile delete mode 100644 examples/extended/biasing/B04/exampleB04.out delete mode 100644 examples/extended/biasing/B04/src/B04DetectorConstruction.cc delete mode 100644 examples/extended/biasing/B04/src/B04ImportanceDetectorConstruction.cc delete mode 100644 examples/extended/biasing/B04/src/B04PhysicsList.cc delete mode 100644 examples/extended/biasing/B05/GNUmakefile delete mode 100644 examples/extended/biasing/B05/exampleB05.cc delete mode 100644 examples/extended/biasing/B05/exampleB05.out delete mode 100644 examples/extended/biasing/B05/init.mac delete mode 100644 examples/extended/biasing/B05/src/B05DetectorConstruction.cc delete mode 100644 examples/extended/biasing/B05/src/B05PhysicsList.cc delete mode 100644 examples/extended/biasing/B06/exampleB06.cc delete mode 100644 examples/extended/biasing/B06/exampleB06.out delete mode 100644 examples/extended/biasing/B06/src/B06DetectorConstruction.cc delete mode 100644 examples/extended/biasing/B06/src/B06ImportanceDetectorConstruction.cc delete mode 100644 examples/extended/biasing/B06/src/B06PhysicsList.cc delete mode 100644 examples/extended/biasing/B06/src/B06ScorePrinter.cc delete mode 100644 examples/extended/biasing/B06/src/B06Scorer.cc delete mode 100644 examples/extended/biasing/B07/exampleB07.cc delete mode 100644 examples/extended/biasing/B07/exampleB07.out delete mode 100644 examples/extended/biasing/B07/src/B07DetectorConstruction.cc delete mode 100644 examples/extended/biasing/B07/src/B07ImportanceDetectorConstruction.cc delete mode 100644 examples/extended/biasing/B07/src/B07PhysicsList.cc delete mode 100644 examples/extended/biasing/B08/B08ScoreResults.txt delete mode 100644 examples/extended/biasing/B08/GNUmakefile delete mode 100644 examples/extended/biasing/B08/exampleB08.cc delete mode 100644 examples/extended/biasing/B08/exampleB08.out delete mode 100644 examples/extended/biasing/B08/include/B08Scorer.hh delete mode 100644 examples/extended/biasing/B08/init.mac delete mode 100644 examples/extended/biasing/B08/src/B08DetectorConstruction.cc delete mode 100644 examples/extended/biasing/B08/src/B08ImportanceDetectorConstruction.cc delete mode 100644 examples/extended/biasing/B08/src/B08ImportanceMessenger.cc delete mode 100644 examples/extended/biasing/B08/src/B08MainMessenger.cc delete mode 100644 examples/extended/biasing/B08/src/B08PhysicsList.cc delete mode 100644 examples/extended/biasing/B08/src/B08PrimaryGeneratorAction.cc delete mode 100644 examples/extended/biasing/B08/src/B08ScorePrinter.cc delete mode 100644 examples/extended/biasing/B08/src/B08Scorer.cc create mode 100644 examples/extended/electromagnetic/TestEm1/geant3/run10.dat create mode 100644 examples/extended/electromagnetic/TestEm1/run10.mac mode change 100644 => 100755 examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc mode change 100644 => 100755 examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm2/TestEm2.model.in create mode 100644 examples/extended/electromagnetic/TestEm2/TestEm2.model.out create mode 100644 examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.hh create mode 100644 examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.hh create mode 100644 examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh rename examples/extended/{persistency/PersistentEx02/include/PersEx02PhysicsList.hh => electromagnetic/TestEm2/include/Em2PhysListParticles.hh} (63%) create mode 100644 examples/extended/electromagnetic/TestEm2/run01.out create mode 100644 examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.cc create mode 100644 examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc create mode 100644 examples/extended/electromagnetic/TestEm2/src/Em2PhysListGeneral.cc create mode 100644 examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc mode change 100644 => 100755 examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm3/run08.mac mode change 100644 => 100755 examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc mode change 100644 => 100755 examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc mode change 100644 => 100755 examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc create mode 100644 examples/extended/electromagnetic/TestEm6/TestEm6.out mode change 100644 => 100755 examples/extended/electromagnetic/TestEm6/src/VisManager.cc mode change 100644 => 100755 examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/README create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.dat create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterROGeometry.hh rename examples/extended/{persistency/PersistentEx02/include/PersEx02TrackerSD.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterSD.hh} (74%) rename examples/extended/{persistency/PersistentEx01/include/PersEx01DetectorConstruction.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh} (84%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorParameterDef.hh rename examples/extended/{biasing/B01/include/B01Scorer.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh} (72%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh rename examples/extended/{persistency/PersistentEx01/include/PersEx01EventAction.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EventAction.hh} (82%) rename examples/extended/{persistency/PersistentEx01/include/PersEx01RunAction.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04Field.hh} (82%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh rename examples/extended/{persistency/PersistentEx01/include/PersEx01TrackerHit.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh} (69%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh rename examples/extended/{persistency/PersistentEx01/include/PersEx01TrackerSD.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonSD.hh} (83%) rename source/persistency/digits+hits/hits/src/G4PVHit.cc => examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PhysicsList.hh (83%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh rename examples/extended/{persistency/PersistentEx02/include/PersEx02StackingAction.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh} (68%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingActionMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingAction.hh rename source/persistency/digits+hits/hits/include/G4PVHit.ddl => examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh (61%) rename examples/extended/{persistency/PersistentEx02/include/PersEx02TrackerHit.ddl => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh} (63%) rename examples/extended/{biasing/B07/include/B07ImportanceDetectorConstruction.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh} (70%) rename examples/extended/{persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh => eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerSD.hh} (72%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackingAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyh4mu.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyset.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc rename examples/extended/{biasing/B06/src/B06PrimaryGeneratorAction.cc => eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc} (61%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterROGeometry.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorParameterDef.icc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EventAction.cc rename source/persistency/global/src/G4VMaterialMap.cc => examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04Field.cc (79%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc rename examples/extended/{persistency/PersistentEx01/src/PersEx01EventAction.cc => eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc} (50%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingActionMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc rename examples/extended/{biasing/B04/src/B04PrimaryGeneratorAction.cc => eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc} (65%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/vis.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx01/vis.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/README create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/GNUmakefile create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.dat rename examples/extended/{persistency/PersistentEx02/PersistentEx02.cc => eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc} (55%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.in create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh rename examples/extended/{persistency/PersistentEx02/include/PersEx02EventAction.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh} (74%) rename examples/extended/{persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh} (76%) rename examples/extended/{persistency/PersistentEx01/include/PersEx01PhysicsList.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh} (63%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh rename examples/extended/{biasing/B06/include/B06Scorer.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh} (66%) rename source/persistency/digits+hits/digits/src/G4PVDigit.cc => examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PhysicsList.hh (82%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh rename examples/extended/{biasing/B08/include/B08MainMessenger.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh} (65%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh rename examples/extended/{biasing/B04/include/B04DetectorConstruction.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh} (74%) rename examples/extended/{biasing/B07/include/B07DetectorConstruction.hh => eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh} (76%) create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyh4mu.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyset.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/vis.mac create mode 100644 examples/extended/eventgenerator/HepMC/HepMCEx02/vis.mac create mode 100644 examples/extended/persistency/History create mode 100644 examples/extended/persistency/PersEx01/G4PersEx01.cc create mode 100644 examples/extended/persistency/PersEx01/GNUmakefile create mode 100644 examples/extended/persistency/PersEx01/HitsAnalyzer/GNUmakefile create mode 100644 examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc create mode 100644 examples/extended/persistency/PersEx01/HitsAnalyzer/README create mode 100644 examples/extended/persistency/PersEx01/HitsAnalyzer/draw.C create mode 100755 examples/extended/persistency/PersEx01/HitsAnalyzer/run create mode 100644 examples/extended/persistency/PersEx01/README create mode 100644 examples/extended/persistency/PersEx01/README.jp create mode 100644 examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh rename source/persistency/management/include/G4PersistencyMessenger.hh => examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh (56%) create mode 100644 examples/extended/persistency/PersEx01/include/Pers01EventAction.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh rename examples/extended/{biasing/B07/include/B07PhysicsList.hh => persistency/PersEx01/include/Pers01PhysicsList.hh} (64%) create mode 100644 examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01RunAction.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh create mode 100644 examples/extended/persistency/PersEx01/include/Pers01VisManager.hh create mode 100644 examples/extended/persistency/PersEx01/rootio/Pers01CalorHit.rootio create mode 100755 examples/extended/persistency/PersEx01/run create mode 100644 examples/extended/persistency/PersEx01/run.mac create mode 100644 examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01EventAction.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01RunAction.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc create mode 100644 examples/extended/persistency/PersEx01/src/Pers01VisManager.cc create mode 100644 examples/extended/persistency/PersEx01/vis.mac delete mode 100644 examples/extended/persistency/PersistentEx01/GNUmakefile delete mode 100644 examples/extended/persistency/PersistentEx01/History delete mode 100644 examples/extended/persistency/PersistentEx01/PersistentEx01.in delete mode 100644 examples/extended/persistency/PersistentEx01/PersistentEx01.out delete mode 100755 examples/extended/persistency/PersistentEx01/PersistentEx01run delete mode 100644 examples/extended/persistency/PersistentEx01/README delete mode 100644 examples/extended/persistency/PersistentEx01/createTag/GNUmakefile delete mode 100644 examples/extended/persistency/PersistentEx01/createTag/README delete mode 100644 examples/extended/persistency/PersistentEx01/createTag/createTag.cpp delete mode 100755 examples/extended/persistency/PersistentEx01/createTag/setup.csh delete mode 100755 examples/extended/persistency/PersistentEx01/createTag/setup.sh delete mode 100644 examples/extended/persistency/PersistentEx01/g4odbms_setup.csh delete mode 100644 examples/extended/persistency/PersistentEx01/g4odbms_setup.sh delete mode 100644 examples/extended/persistency/PersistentEx01/prerunPEx01.mac delete mode 100644 examples/extended/persistency/PersistentEx01/readDB/GNUmakefile delete mode 100644 examples/extended/persistency/PersistentEx01/readDB/README delete mode 100644 examples/extended/persistency/PersistentEx01/readDB/readDB.cpp delete mode 100644 examples/extended/persistency/PersistentEx01/readDB/setup.csh delete mode 100644 examples/extended/persistency/PersistentEx01/readDB/setup.sh delete mode 100644 examples/extended/persistency/PersistentEx01/readTag/GNUmakefile delete mode 100644 examples/extended/persistency/PersistentEx01/readTag/README delete mode 100644 examples/extended/persistency/PersistentEx01/readTag/readTag.cpp delete mode 100755 examples/extended/persistency/PersistentEx01/readTag/setup.csh delete mode 100755 examples/extended/persistency/PersistentEx01/readTag/setup.sh delete mode 100644 examples/extended/persistency/PersistentEx01/setup_lhcxx.csh delete mode 100644 examples/extended/persistency/PersistentEx01/setup_lhcxx.sh delete mode 100644 examples/extended/persistency/PersistentEx01/src/PersEx01DetectorConstruction.cc delete mode 100644 examples/extended/persistency/PersistentEx01/src/PersEx01PhysicsList.cc delete mode 100644 examples/extended/persistency/PersistentEx01/src/PersEx01TrackerSD.cc delete mode 100644 examples/extended/persistency/PersistentEx02/GNUmakefile delete mode 100644 examples/extended/persistency/PersistentEx02/History delete mode 100644 examples/extended/persistency/PersistentEx02/PersistentEx02.in delete mode 100644 examples/extended/persistency/PersistentEx02/PersistentEx02.out delete mode 100755 examples/extended/persistency/PersistentEx02/PersistentEx02run delete mode 100644 examples/extended/persistency/PersistentEx02/README delete mode 100644 examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl delete mode 100644 examples/extended/persistency/PersistentEx02/prerunPEx02.mac delete mode 100644 examples/extended/persistency/PersistentEx02/readDB/GNUmakefile delete mode 100644 examples/extended/persistency/PersistentEx02/readDB/README delete mode 100644 examples/extended/persistency/PersistentEx02/readDB/readDB.cpp delete mode 100644 examples/extended/persistency/PersistentEx02/readDB/setup.csh delete mode 100644 examples/extended/persistency/PersistentEx02/readDB/setup.sh delete mode 100644 examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc delete mode 100644 examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc delete mode 100644 examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc delete mode 100644 examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc create mode 100644 examples/extended/persistency/README create mode 100644 examples/extended/persistency/rootio/GNUmakefile create mode 100644 examples/extended/persistency/rootio/README create mode 100644 examples/extended/persistency/rootio/config/G4PEXsetup.gmk create mode 100644 examples/extended/persistency/rootio/config/binmake.gmk create mode 100644 examples/extended/persistency/rootio/config/common.gmk create mode 100755 examples/extended/persistency/rootio/config/g4rootio.pl create mode 100755 examples/extended/persistency/rootio/config/hepmctest.csh create mode 100755 examples/extended/persistency/rootio/config/rootdict.sh create mode 100644 examples/extended/persistency/rootio/config/rootio.gmk rename examples/extended/persistency/{PersistentEx02/src/PersEx02TrackerHitsCollection.cc => rootio/include/G4DigitRootIO.hh} (50%) create mode 100644 examples/extended/persistency/rootio/include/G4EventRootIO.hh rename source/persistency/geometry/solids/CSG/include/G4PPara.ddl => examples/extended/persistency/rootio/include/G4HepMCRootIO.hh (58%) rename source/persistency/global/include/G4VPersistentSubMan.hh => examples/extended/persistency/rootio/include/G4HitRootIO.hh (53%) rename source/persistency/geometry/solids/CSG/include/G4PTorus.ddl => examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh (61%) rename source/persistency/geometry/solids/CSG/include/G4PSphere.ddl => examples/extended/persistency/rootio/include/G4RootEvent.hh (62%) create mode 100644 examples/extended/persistency/rootio/include/G4RootIOManager.hh create mode 100644 examples/extended/persistency/rootio/include/G4RootTransManager.hh rename source/persistency/geometry/global/src/G4PVSolid.cc => examples/extended/persistency/rootio/src/G4DigitRootIO.cc (65%) rename source/persistency/geometry/solids/Boolean/src/G4PDisplacedSolid.cc => examples/extended/persistency/rootio/src/G4EventRootIO.cc (54%) rename source/persistency/geometry/solids/CSG/src/G4PBox.cc => examples/extended/persistency/rootio/src/G4HepMCRootIO.cc (61%) create mode 100644 examples/extended/persistency/rootio/src/G4HitRootIO.cc rename examples/extended/persistency/{PersistentEx01/src/PersEx01TrackerHit.cc => rootio/src/G4MCTruthRootIO.cc} (70%) rename source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc => examples/extended/persistency/rootio/src/G4RootEvent.cc (66%) create mode 100644 examples/extended/persistency/rootio/src/G4RootIOManager.cc create mode 100644 examples/extended/persistency/rootio/src/G4RootTransManager.cc create mode 100644 examples/extended/persistency/rootio/tools/README create mode 100755 examples/extended/persistency/rootio/tools/g4exmv.sh create mode 100755 examples/extended/persistency/rootio/tools/g4exsed.sh create mode 100755 examples/extended/persistency/rootio/tools/g4psed.sh create mode 100755 examples/extended/persistency/rootio/tools/mksed.pl create mode 100755 examples/extended/persistency/rootio/tools/rename.sh create mode 100755 examples/extended/persistency/rootio/tools/sed.sh create mode 100755 examples/extended/persistency/rootio/tools/sedrootio.sh create mode 100644 examples/extended/persistency/rootio/tools/setup.csh delete mode 100644 examples/novice/N01/GNUmakefile.light mode change 100644 => 100755 examples/novice/N02/src/ExN02VisManager.cc mode change 100644 => 100755 examples/novice/N03/src/ExN03VisManager.cc mode change 100644 => 100755 examples/novice/N04/src/ExN04VisManager.cc mode change 100644 => 100755 examples/novice/N05/src/ExN05VisManager.cc rename examples/{extended/persistency/PersistentEx01/include/PersEx01StackingAction.hh => novice/N06/include/ExN06StackingAction.hh} (78%) rename examples/{extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc => novice/N06/src/ExN06StackingAction.cc} (70%) create mode 100644 source/digits+hits/detector/include/G4CellScoreComposer.hh create mode 100644 source/digits+hits/detector/include/G4CellScoreValues.hh rename source/{processes/transportation/include/G4PScorer.hh => digits+hits/detector/include/G4CellStoreScorer.hh} (62%) create mode 100644 source/digits+hits/detector/include/G4TrackLogger.hh create mode 100644 source/digits+hits/detector/src/G4CellScoreComposer.cc rename source/{processes/transportation/src/G4PScorer.cc => digits+hits/detector/src/G4CellStoreScorer.cc} (55%) rename source/{geometry/biasing/src/G4PMapPtkTallys.cc => digits+hits/detector/src/G4TrackLogger.cc} (68%) create mode 100644 source/event/include/G4CellScorer.hh create mode 100644 source/event/include/G4CellScorerStore.hh create mode 100644 source/event/include/G4HepMCAsciiReader.hh create mode 100644 source/event/include/G4HepMCAsciiReaderMessenger.hh create mode 100644 source/event/include/G4HepMCInterface.hh rename source/{geometry/biasing/include/G4Sigma.hh => event/include/G4ScoreTable.hh} (54%) create mode 100644 source/event/include/G4Scorer.hh create mode 100644 source/event/src/G4CellScorer.cc create mode 100644 source/event/src/G4CellScorerStore.cc rename source/{persistency/geometry/management/src/G4PPVPlacement.cc => event/src/G4HepMCAsciiReader.cc} (52%) create mode 100644 source/event/src/G4HepMCAsciiReaderMessenger.cc create mode 100644 source/event/src/G4HepMCInterface.cc create mode 100644 source/event/src/G4ScoreTable.cc create mode 100644 source/event/src/G4Scorer.cc rename source/geometry/biasing/include/{G4PTouchableKey.hh => G4GeometryCell.hh} (73%) rename source/geometry/biasing/include/{G4Pstring.hh => G4GeometryCellComp.hh} (75%) rename source/geometry/biasing/include/{G4PtkImportance.hh => G4GeometryCellImportance.hh} (77%) create mode 100644 source/geometry/biasing/include/G4GeometryCellStep.hh rename source/geometry/biasing/include/{G4PStepStream.hh => G4GeometryCellStepStream.hh} (77%) create mode 100644 source/geometry/biasing/include/G4VCellScorer.hh create mode 100644 source/geometry/biasing/include/G4VCellScorerStore.hh rename source/geometry/biasing/include/{G4PMapPtkTallys.hh => G4VGCellFinder.hh} (67%) rename source/geometry/biasing/include/{G4VPScorer.hh => G4VScorer.hh} (77%) create mode 100644 source/geometry/biasing/src/G4GeometryCell.cc create mode 100644 source/geometry/biasing/src/G4GeometryCellComp.cc rename source/geometry/biasing/src/{G4PtkImportance.cc => G4GeometryCellImportance.cc} (80%) create mode 100644 source/geometry/biasing/src/G4GeometryCellStep.cc rename source/geometry/biasing/src/{G4PStepStream.cc => G4GeometryCellStepStream.cc} (71%) delete mode 100644 source/geometry/biasing/src/G4Sigma.cc create mode 100644 source/geometry/biasing/src/G4VCellScorer.cc create mode 100644 source/geometry/biasing/src/G4VCellScorerStore.cc create mode 100644 source/geometry/biasing/src/G4VGCellFinder.cc create mode 100644 source/geometry/biasing/src/G4VIStore.cc create mode 100644 source/geometry/biasing/src/G4VImportanceAlgorithm.cc create mode 100644 source/geometry/biasing/src/G4VImportanceSplitExaminer.cc create mode 100644 source/geometry/biasing/src/G4VPGeoDriver.cc create mode 100644 source/geometry/biasing/src/G4VParallelStepper.cc create mode 100644 source/geometry/biasing/src/G4VScorer.cc create mode 100644 source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc create mode 100644 source/geometry/solids/CSG/include/G4Box.icc create mode 100644 source/geometry/solids/CSG/include/G4Cons.icc create mode 100644 source/geometry/solids/CSG/include/G4Para.icc create mode 100644 source/geometry/solids/CSG/include/G4Sphere.icc create mode 100644 source/geometry/solids/CSG/include/G4Torus.icc create mode 100644 source/geometry/solids/CSG/include/G4Trap.icc create mode 100644 source/geometry/solids/CSG/include/G4Trd.icc create mode 100644 source/geometry/solids/CSG/include/G4Tubs.icc rename source/{processes/transportation/src/G4MassImportanceScoreSampler.cc => geometry/solids/specific/include/G4EllipticalTube.icc} (59%) create mode 100644 source/geometry/solids/specific/include/G4Polycone.icc create mode 100644 source/geometry/solids/specific/include/G4Polyhedra.icc create mode 100644 source/geometry/volumes/include/G4IdentityTrajectoryFilter.hh create mode 100644 source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh rename source/{persistency/digits+hits/digits/src/G4PVDigitsCollection.cc => geometry/volumes/src/G4IdentityTrajectoryFilter.cc} (68%) rename source/{persistency/global/include/G4VMaterialMap.hh => geometry/volumes/src/G4VCurvedTrajectoryFilter.cc} (56%) create mode 100644 source/global/management/include/G4ExceptionSeverity.hh create mode 100644 source/global/management/include/G4VExceptionHandler.hh rename source/{persistency/geometry/management/src/G4PPVParameterised.cc => global/management/src/G4VExceptionHandler.cc} (56%) create mode 100644 source/graphics_reps/include/G4AttDef.hh rename examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh => source/graphics_reps/include/G4AttDefStore.hh (71%) create mode 100644 source/graphics_reps/include/G4AttValue.hh create mode 100644 source/graphics_reps/src/G4AttDefStore.cc delete mode 100644 source/persistency/digits+hits/digits/GNUmakefile delete mode 100644 source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl delete mode 100644 source/persistency/digits+hits/digits/include/G4PVDigitsCollection.ddl delete mode 100644 source/persistency/digits+hits/digits/include/G4PersistentDigitMan.hh delete mode 100644 source/persistency/digits+hits/hits/GNUmakefile delete mode 100644 source/persistency/digits+hits/hits/include/G4PHCofThisEvent.ddl delete mode 100644 source/persistency/digits+hits/hits/include/G4PVHitsCollection.ddl delete mode 100644 source/persistency/digits+hits/hits/include/G4PersistentHitMan.hh delete mode 100644 source/persistency/digits+hits/hits/src/G4PVHitsCollection.cc delete mode 100644 source/persistency/events/GNUmakefile delete mode 100644 source/persistency/events/include/G4PEvent.ddl delete mode 100644 source/persistency/events/include/G4PPrimaryParticle.ddl delete mode 100644 source/persistency/events/include/G4PPrimaryVertex.ddl delete mode 100644 source/persistency/events/include/G4PersistentEventMan.hh delete mode 100644 source/persistency/events/src/G4PEvent.cc delete mode 100644 source/persistency/events/src/G4PPrimaryParticle.cc delete mode 100644 source/persistency/events/src/G4PPrimaryVertex.cc delete mode 100644 source/persistency/events/src/G4PersistentEventMan.cc delete mode 100644 source/persistency/geometry/GNUmakefile delete mode 100644 source/persistency/geometry/global/GNUmakefile delete mode 100644 source/persistency/geometry/global/src/G4PAffineTransform.cc delete mode 100644 source/persistency/geometry/management/GNUmakefile delete mode 100644 source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl delete mode 100644 source/persistency/geometry/management/include/G4PLogicalVolume.ddl delete mode 100644 source/persistency/geometry/management/include/G4PPVPlacement.ddl delete mode 100644 source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl delete mode 100644 source/persistency/geometry/management/include/G4PersistentGeomMan.hh delete mode 100644 source/persistency/geometry/management/src/G4PGeometryObjectMap.cc delete mode 100644 source/persistency/geometry/management/src/G4PLogicalVolume.cc delete mode 100644 source/persistency/geometry/management/src/G4PPVReplica.cc delete mode 100644 source/persistency/geometry/management/src/G4PVPhysicalVolume.cc delete mode 100644 source/persistency/geometry/management/src/G4PersistentGeomMan.cc delete mode 100644 source/persistency/geometry/solids/Boolean/GNUmakefile delete mode 100644 source/persistency/geometry/solids/Boolean/src/G4PBooleanSolid.cc delete mode 100644 source/persistency/geometry/solids/Boolean/src/G4PIntersectionSolid.cc delete mode 100644 source/persistency/geometry/solids/Boolean/src/G4PUnionSolid.cc delete mode 100644 source/persistency/geometry/solids/CSG/GNUmakefile delete mode 100644 source/persistency/geometry/solids/CSG/include/G4PTrap.ddl delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PCons.cc delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PPara.cc delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PSphere.cc delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PTorus.cc delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PTrap.cc delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PTrd.cc delete mode 100644 source/persistency/geometry/solids/CSG/src/G4PTubs.cc delete mode 100644 source/persistency/geometry/solids/specific/GNUmakefile delete mode 100644 source/persistency/geometry/solids/specific/include/G4PHype.ddl delete mode 100644 source/persistency/geometry/solids/specific/src/G4PHype.cc delete mode 100644 source/persistency/global/GNUmakefile delete mode 100644 source/persistency/global/include/G4PersistentSchema.hh delete mode 100644 source/persistency/global/include/G4Pglobals.hh delete mode 100644 source/persistency/global/include/G4VPersistentSubDbMan.hh create mode 100644 source/persistency/include/G4DCIOcatalog.hh create mode 100644 source/persistency/include/G4DCIOentryT.hh create mode 100644 source/persistency/include/G4FileUtilities.hh create mode 100644 source/persistency/include/G4HCIOcatalog.hh create mode 100644 source/persistency/include/G4HCIOentryT.hh create mode 100644 source/persistency/include/G4MCTEvent.hh create mode 100644 source/persistency/include/G4MCTGenEvent.hh create mode 100644 source/persistency/include/G4MCTGenParticle.hh create mode 100644 source/persistency/include/G4MCTSimEvent.hh create mode 100644 source/persistency/include/G4MCTSimParticle.hh create mode 100644 source/persistency/include/G4MCTSimVertex.hh create mode 100644 source/persistency/include/G4PersistencyCenter.hh create mode 100644 source/persistency/include/G4PersistencyCenterMessenger.hh create mode 100644 source/persistency/include/G4PersistencyManager.hh create mode 100644 source/persistency/include/G4PersistencyManagerT.hh create mode 100644 source/persistency/include/G4Pevent.hh rename source/persistency/{geometry/solids/CSG/include/G4PTubs.ddl => include/G4VDCIOentry.hh} (62%) rename source/persistency/{geometry/solids/CSG/include/G4PTrd.ddl => include/G4VHCIOentry.hh} (62%) rename source/persistency/{geometry/management/include/G4PPVReplica.ddl => include/G4VHepMCIO.hh} (56%) create mode 100644 source/persistency/include/G4VMCTruthIO.hh create mode 100644 source/persistency/include/G4VPDigitIO.hh create mode 100644 source/persistency/include/G4VPDigitsCollectionIO.hh rename source/persistency/{geometry/solids/Boolean/include/G4PDisplacedSolid.ddl => include/G4VPEventIO.hh} (53%) rename source/persistency/{geometry/solids/Boolean/include/G4PBooleanSolid.ddl => include/G4VPHitIO.hh} (50%) create mode 100644 source/persistency/include/G4VPHitsCollectionIO.hh rename source/persistency/{geometry/global/include/G4PVSolid.ddl => include/G4VTransactionManager.hh} (52%) delete mode 100644 source/persistency/management/GNUmakefile delete mode 100644 source/persistency/management/include/G4PersistencyManager.hh delete mode 100644 source/persistency/management/include/G4TransactionManager.hh delete mode 100644 source/persistency/management/src/G4PersistencyManager.cc delete mode 100644 source/persistency/management/src/G4PersistencyMessenger.cc delete mode 100644 source/persistency/management/src/G4TransactionManager.cc delete mode 100644 source/persistency/run/GNUmakefile delete mode 100644 source/persistency/run/include/G4PRun.ddl delete mode 100644 source/persistency/run/include/G4PersistentRunMan.hh delete mode 100644 source/persistency/run/src/G4PersistentRunMan.cc create mode 100644 source/persistency/src/G4DCIOcatalog.cc rename source/persistency/{geometry/global/include/G4PAffineTransform.ddl => src/G4FileUtilities.cc} (60%) create mode 100644 source/persistency/src/G4HCIOcatalog.cc create mode 100644 source/persistency/src/G4MCTEvent.cc create mode 100644 source/persistency/src/G4MCTGenEvent.cc create mode 100644 source/persistency/src/G4MCTSimEvent.cc create mode 100644 source/persistency/src/G4MCTSimParticle.cc create mode 100644 source/persistency/src/G4MCTSimVertex.cc create mode 100644 source/persistency/src/G4PersistencyCenter.cc create mode 100644 source/persistency/src/G4PersistencyCenterMessenger.cc create mode 100644 source/persistency/src/G4PersistencyManager.cc rename source/persistency/{geometry/solids/CSG/include/G4PCSGSolid.ddl => src/G4Pevent.cc} (74%) create mode 100644 source/persistency/src/G4VDCIOentry.cc create mode 100644 source/persistency/src/G4VHCIOentry.cc rename source/persistency/{geometry/solids/CSG/src/G4PCSGSolid.cc => src/G4VHepMCIO.cc} (81%) rename source/persistency/{global/src/G4VPersistentSubMan.cc => src/G4VMCTruthIO.cc} (81%) rename source/persistency/{global/include/G4DatabaseTypes.hh => src/G4VPDigitIO.cc} (69%) create mode 100644 source/persistency/src/G4VPDigitsCollectionIO.cc create mode 100644 source/persistency/src/G4VPEventIO.cc rename source/persistency/{digits+hits/hits/src/G4PHCofThisEvent.cc => src/G4VPHitIO.cc} (70%) rename source/persistency/{global/include/G4PersistentTypes.hh => src/G4VPHitsCollectionIO.cc} (71%) create mode 100644 source/persistency/tools/README create mode 100755 source/persistency/tools/g4pmv.sh create mode 100755 source/persistency/tools/g4psed.sh create mode 100755 source/persistency/tools/rename.sh create mode 100644 source/persistency/tools/setup.csh create mode 100644 source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh create mode 100644 source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh create mode 100644 source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh create mode 100644 source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh create mode 100644 source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh create mode 100644 source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh create mode 100644 source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc create mode 100644 source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc create mode 100644 source/processes/electromagnetic/muons/src/G4MuBremsstrahlungSTD.cc create mode 100644 source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc create mode 100644 source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc create mode 100644 source/processes/electromagnetic/muons/src/G4MuPairProductionSTD.cc create mode 100644 source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh create mode 100644 source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh create mode 100644 source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh create mode 100644 source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh create mode 100644 source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh create mode 100644 source/processes/electromagnetic/standard/include/G4ionIonisation.hh create mode 100644 source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc create mode 100644 source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc create mode 100644 source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc create mode 100644 source/processes/electromagnetic/standard/src/G4eIonisationSTD.cc create mode 100644 source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc create mode 100644 source/processes/electromagnetic/standard/src/G4ionIonisation.cc create mode 100644 source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh create mode 100644 source/processes/electromagnetic/utils/include/G4BraggModel.hh create mode 100644 source/processes/electromagnetic/utils/include/G4EmModelManager.hh create mode 100644 source/processes/electromagnetic/utils/include/G4EnergyLossMessengerSTD.hh create mode 100644 source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh create mode 100644 source/processes/electromagnetic/utils/include/G4LossTableManager.hh create mode 100644 source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh create mode 100644 source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.icc create mode 100644 source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh create mode 100644 source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh create mode 100644 source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh create mode 100644 source/processes/electromagnetic/utils/include/G4VEmModel.hh create mode 100644 source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh create mode 100644 source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh create mode 100644 source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc create mode 100644 source/processes/electromagnetic/utils/src/G4BraggModel.cc create mode 100644 source/processes/electromagnetic/utils/src/G4EmModelManager.cc create mode 100644 source/processes/electromagnetic/utils/src/G4EnergyLossMessengerSTD.cc create mode 100644 source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc create mode 100644 source/processes/electromagnetic/utils/src/G4LossTableManager.cc create mode 100644 source/processes/electromagnetic/utils/src/G4MultipleScatteringSTD.cc create mode 100644 source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc create mode 100644 source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc create mode 100644 source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc create mode 100644 source/processes/hadronic/cross_sections/include/G4PiData.hh create mode 100644 source/processes/hadronic/cross_sections/include/G4PiNuclearCrossSection.hh create mode 100644 source/processes/hadronic/cross_sections/src/G4PiData.cc create mode 100644 source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc create mode 100644 source/processes/hadronic/management/include/G4HadLeadBias.hh create mode 100644 source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh create mode 100644 source/processes/hadronic/management/src/G4HadLeadBias.cc delete mode 100644 source/processes/hadronic/models/cascade/README create mode 100644 source/processes/hadronic/models/cascade/cascade/GNUmakefile create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh rename examples/extended/biasing/B06/include/B06DetectorConstruction.hh => source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh (76%) create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh rename examples/extended/biasing/B08/include/B08ScorePrinter.hh => source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh (69%) create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh rename examples/extended/biasing/B08/include/B08DetectorConstruction.hh => source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh (74%) create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4BigBanger.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc rename examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc => source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc (56%) create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/G4WatcherGun.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/bindingEnergy.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/bindingEnergyAsymptotic.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/bindingEnergyExact.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc create mode 100644 source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc create mode 100644 source/processes/hadronic/models/cascade/doc/GNUmakefile create mode 100644 source/processes/hadronic/models/cascade/doc/README create mode 100644 source/processes/hadronic/models/cascade/doc/espcrc2.sty create mode 100644 source/processes/hadronic/models/cascade/doc/evaporationUml.eps create mode 100644 source/processes/hadronic/models/cascade/doc/hetc.eps create mode 100644 source/processes/hadronic/models/cascade/doc/hetc.mdl create mode 100644 source/processes/hadronic/models/cascade/doc/manCascade.ps create mode 100644 source/processes/hadronic/models/cascade/doc/manCascade.tex create mode 100644 source/processes/hadronic/models/cascade/doc/manHetc.tex create mode 100644 source/processes/hadronic/models/cascade/doc/manInucl.tex create mode 100644 source/processes/hadronic/models/cascade/doc/massPb.eps2 create mode 100644 source/processes/hadronic/models/cascade/doc/preEquilibriumUml.eps delete mode 100644 source/processes/hadronic/models/cascade/hetc.wst create mode 100644 source/processes/hadronic/models/cascade/pre_compound/GNUmakefile create mode 100644 source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh create mode 100644 source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc create mode 100644 source/processes/hadronic/models/generator/de_excitation/History.icm create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4Absorber.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4AntiProtonField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4KaonMinusField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4KaonPlusField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4KaonZeroField.hh rename source/{geometry/biasing/include/G4PStep.hh => processes/hadronic/models/generator/kinetic_model/include/G4NeutronField.hh} (55%) create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4PionMinusField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4PionPlusField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4PionZeroField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4ProtonField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaMinusField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaZeroField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4VKM_NuclearDensity.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.hh create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4Absorber.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4FieldPropagation.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4KM_NucleonEqRhs.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4RKFieldIntegrator.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.cc create mode 100644 source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.cc create mode 100644 source/processes/hadronic/models/generator/scattering/GNUmakefile create mode 100644 source/processes/hadronic/models/generator/scattering/README create mode 100644 source/processes/hadronic/models/generator/scattering/TAGINFO create mode 100644 source/processes/hadronic/models/generator/scattering/elastic.logbook create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNP.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNPData.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPP.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPPData.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4BaryonPartialWidth.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4BaryonWidth.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4Clebsch.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh rename source/{persistency/geometry/solids/CSG/include/G4PCons.ddl => processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh} (63%) create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionPtr.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDelta.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDeltastar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaNstar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDelta.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDeltaStar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNNStar.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ConcreteNStarNToNN.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CrossSectionComposite.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CrossSectionPatch.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CrossSectionSourcePtr.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4CrossSectionVector.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh rename examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh => source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh (71%) create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh rename examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh => source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh (77%) create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4PartialWidthTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ParticleTypeConverter.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ResonanceNames.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ResonancePartialWidth.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4ResonanceWidth.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4Scatterer.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionComposite.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VScatterer.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VXResonance.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4VXResonanceTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XAnnihilationChannel.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XAqmElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XAqmTotal.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltaTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltastarTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XDeltaNstarTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XMesonBaryonElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XNDeltaTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XNDeltastarTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XNNElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XNNElasticLowE.hh rename examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh => source/processes/hadronic/models/generator/scattering/include/G4XNNTotal.hh (70%) create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XNNTotalLowE.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XNNstarTable.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XPDGTotal.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XResonance.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XnpElastic.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XnpElasticLowE.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XnpTotal.hh create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XnpTotalLowE.hh rename examples/extended/biasing/B02/include/B02Scorer.hh => source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh (71%) create mode 100644 source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionNP.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4BaryonPartialWidth.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4BaryonWidth.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionInitialState.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionManager.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryon.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionPtr.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToDeltaDelta.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToDeltaDeltastar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToDeltaNstar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDelta.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDeltaStar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNNStar.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNTwoBodyResonance.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ConcreteNStarNToNN.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CrossSectionComposite.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CrossSectionPatch.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4CrossSectionSourcePtr.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4DetailedBalancePhaseSpaceIntegral.cc rename examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh => source/processes/hadronic/models/generator/scattering/src/G4LowEXsection.cc (70%) create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4PartialWidthTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VAnnihilationCollision.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XAqmTotal.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltaTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltastarTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XDeltaNstarTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XMesonBaryonElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNDeltaTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNDeltastarTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNNElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNNElasticLowE.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNNTotal.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNNTotalLowE.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XNNstarTable.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XPDGTotal.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XnpElastic.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XnpElasticLowE.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XnpTotal.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XnpTotalLowE.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc create mode 100644 source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc create mode 100644 source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh rename examples/extended/biasing/B08/include/B08PhysicsList.hh => source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh (50%) rename source/processes/hadronic/models/low_energy/src/{G4LEKaonZeroLInelastic.cc => G4LEAntiKaonZeroInelastic.cc} (97%) rename source/processes/hadronic/models/low_energy/src/{G4LEKaonZeroSInelastic.cc => G4LEKaonZeroInelastic.cc} (97%) create mode 100644 source/processes/transportation/include/G4MImportanceConfigurator.hh create mode 100644 source/processes/transportation/include/G4MScoreConfigurator.hh create mode 100644 source/processes/transportation/include/G4MassGCellFinder.hh rename source/processes/transportation/include/{G4ParallelScoreSampler.hh => G4MassGeometrySampler.hh} (54%) delete mode 100644 source/processes/transportation/include/G4PIScorer.hh create mode 100644 source/processes/transportation/include/G4PImportanceConfigurator.hh delete mode 100644 source/processes/transportation/include/G4PImportanceWWindowScoreSampler.hh create mode 100644 source/processes/transportation/include/G4PScoreConfigurator.hh create mode 100644 source/processes/transportation/include/G4ParallelGCellFinder.hh rename source/processes/transportation/include/{G4MassImportanceSampler.hh => G4ParallelGeometrySampler.hh} (50%) delete mode 100644 source/processes/transportation/include/G4ParallelImportanceSampler.hh delete mode 100644 source/processes/transportation/include/G4ParallelImportanceScoreSampler.hh rename source/processes/transportation/include/{G4MassScoreSampler.hh => G4ParallelTransportConfigurator.hh} (59%) delete mode 100644 source/processes/transportation/include/G4ParallelWeightWindowProcess.hh create mode 100644 source/processes/transportation/include/G4TrackTerminator.hh create mode 100644 source/processes/transportation/include/G4VSamplerConfigurator.hh create mode 100644 source/processes/transportation/include/G4VTrackTerminator.hh create mode 100644 source/processes/transportation/include/G4WeightCutOffConfigurator.hh create mode 100644 source/processes/transportation/include/G4WeightCutOffProcess.hh rename source/processes/transportation/src/{G4MassImportanceSampler.cc => G4MImportanceConfigurator.cc} (59%) rename source/processes/transportation/src/{G4MassScoreSampler.cc => G4MScoreConfigurator.cc} (65%) create mode 100644 source/processes/transportation/src/G4MassGCellFinder.cc create mode 100644 source/processes/transportation/src/G4MassGeometrySampler.cc delete mode 100644 source/processes/transportation/src/G4PIScorer.cc create mode 100644 source/processes/transportation/src/G4PImportanceConfigurator.cc delete mode 100644 source/processes/transportation/src/G4PImportanceWWindowScoreSampler.cc create mode 100644 source/processes/transportation/src/G4PScoreConfigurator.cc create mode 100644 source/processes/transportation/src/G4ParallelGCellFinder.cc create mode 100644 source/processes/transportation/src/G4ParallelGeometrySampler.cc delete mode 100644 source/processes/transportation/src/G4ParallelImportanceSampler.cc delete mode 100644 source/processes/transportation/src/G4ParallelImportanceScoreSampler.cc create mode 100644 source/processes/transportation/src/G4ParallelTransportConfigurator.cc delete mode 100644 source/processes/transportation/src/G4ParallelWeightWindowProcess.cc create mode 100644 source/processes/transportation/src/G4VProcessPlacer.cc rename source/{persistency/global/src/G4VPersistentSubDbMan.cc => processes/transportation/src/G4VSampler.cc} (79%) rename source/{geometry/biasing/src/G4Pstring.cc => processes/transportation/src/G4VSamplerConfigurator.cc} (77%) create mode 100644 source/processes/transportation/src/G4VTrackTerminator.cc create mode 100644 source/processes/transportation/src/G4WeightCutOffConfigurator.cc create mode 100644 source/processes/transportation/src/G4WeightCutOffProcess.cc create mode 100644 source/run/include/G4ExceptionHandler.hh create mode 100644 source/run/src/G4ExceptionHandler.cc create mode 100644 source/tracking/include/G4SmoothTrajectory.hh create mode 100644 source/tracking/include/G4SmoothTrajectoryPoint.hh create mode 100644 source/tracking/src/G4SmoothTrajectory.cc create mode 100644 source/tracking/src/G4SmoothTrajectoryPoint.cc create mode 100644 source/tracking/src/G4VTrajectory.cc create mode 100644 source/visualization/FukuiRenderer/CUSTOMIZE create mode 100644 source/visualization/HepRep/copyfreehep create mode 100755 source/visualization/HepRep/copyfreehep.bat create mode 100644 source/visualization/HepRep/include/DefaultHepRepAction.h create mode 100644 source/visualization/HepRep/include/DefaultHepRepAttDef.h create mode 100644 source/visualization/HepRep/include/DefaultHepRepAttValue.h create mode 100644 source/visualization/HepRep/include/DefaultHepRepTreeID.h create mode 100644 source/visualization/HepRep/include/FreeHepTypes.h create mode 100644 source/visualization/HepRep/include/G4HepRep.hh create mode 100644 source/visualization/HepRep/include/G4HepRepSceneHandler.hh create mode 100644 source/visualization/HepRep/include/G4HepRepViewer.hh create mode 100644 source/visualization/HepRep/include/HEPREP/HepRep.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepAction.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepAttDef.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepAttValue.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepAttribute.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepConstants.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepDefinition.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepFactory.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepInstance.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepIterator.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepPoint.h rename source/{persistency/geometry/solids/CSG/include/G4PBox.ddl => visualization/HepRep/include/HEPREP/HepRepSelectFilter.h} (60%) create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepTreeID.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepType.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h create mode 100644 source/visualization/HepRep/include/HEPREP/HepRepWriter.h create mode 100644 source/visualization/HepRep/include/IndentPrintWriter.h create mode 100644 source/visualization/HepRep/include/README create mode 100644 source/visualization/HepRep/include/StreamerHepRep.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepAttribute.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepDefinition.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepInstance.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepInstanceTree.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepPoint.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepType.h create mode 100644 source/visualization/HepRep/include/StreamerHepRepTypeTree.h create mode 100644 source/visualization/HepRep/include/XMLHepRepStreamer.h create mode 100644 source/visualization/HepRep/include/XMLHepRepStreamerFactory.h create mode 100644 source/visualization/HepRep/include/XMLWriter.h create mode 100644 source/visualization/HepRep/src/DefaultHepRepAction.cc create mode 100644 source/visualization/HepRep/src/DefaultHepRepAttDef.cc create mode 100644 source/visualization/HepRep/src/DefaultHepRepAttValue.cc rename source/{persistency/run/src/G4PRun.cc => visualization/HepRep/src/DefaultHepRepTreeID.cc} (69%) create mode 100644 source/visualization/HepRep/src/G4HepRep.cc create mode 100644 source/visualization/HepRep/src/G4HepRepSceneHandler.cc create mode 100644 source/visualization/HepRep/src/G4HepRepViewer.cc create mode 100644 source/visualization/HepRep/src/IndentPrintWriter.cc create mode 100644 source/visualization/HepRep/src/README create mode 100644 source/visualization/HepRep/src/StreamerHepRep.cc create mode 100644 source/visualization/HepRep/src/StreamerHepRepAttribute.cc create mode 100644 source/visualization/HepRep/src/StreamerHepRepDefinition.cc create mode 100644 source/visualization/HepRep/src/StreamerHepRepInstance.cc create mode 100644 source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc create mode 100644 source/visualization/HepRep/src/StreamerHepRepPoint.cc rename examples/extended/biasing/B01/src/B01Scorer.cc => source/visualization/HepRep/src/StreamerHepRepType.cc (54%) rename examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc => source/visualization/HepRep/src/StreamerHepRepTypeTree.cc (68%) create mode 100644 source/visualization/HepRep/src/XMLHepRepStreamer.cc create mode 100644 source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc create mode 100644 source/visualization/HepRep/src/XMLWriter.cc diff --git a/Configure b/Configure index 506b1a8f06..7c24dbae31 100755 --- a/Configure +++ b/Configure @@ -18,9 +18,9 @@ # you may fetch it yourself from your nearest archive site.) # -# $Id: Configure,v 1.29 2002/07/01 10:45:04 stesting Exp $ +# $Id: Configure,v 1.31 2002/12/13 15:46:47 stesting Exp $ # -# Generated on Mon Jul 1 12:23:24 CEST 2002 [metaconfig 3.0 PL70] +# Generated on Fri Dec 13 16:43:52 CET 2002 [metaconfig 3.0 PL70] cat >/tmp/c1$$ <&2 <.echotmp if $contains c .echotmp >/dev/null 2>&1 ; then @@ -764,8 +775,8 @@ case "$rsrc" in ;; ../../.) ;; *) - echo " " - echo "Sources for $package found in $src" >&4 +# echo " " +# echo "Sources for $package found in $src" >&4 ;; esac @@ -895,27 +906,27 @@ true) esac : Eunice requires " " instead of "", can you believe it -echo " " +#echo " " : Here we go... -if [ X$install = Xyes ] ; then -echo " " -echo " " -echo " " -echo " --- Geant4 Toolkit Installation ---" -echo " " -echo " " -echo " " -echo " " -else -echo " " -echo " " -echo " " -echo " --- Geant4 Toolkit Installation ---" -echo " (setting environments for USER )" -echo " " -echo " " -echo " " -fi +#if [ X$install = Xyes ] ; then +#echo " " +#echo " " +#echo " " +#echo " --- Geant4 Toolkit Installation ---" +#echo " " +#echo " " +#echo " " +#echo " " +#else +#echo " " +#echo " " +#echo " " +#echo " --- Geant4 Toolkit Installation ---" +#echo " (setting environments for USER )" +#echo " " +#echo " " +#echo " " +#fi trap 'echo " ";rm -rf ../../.config/UU; test -d ../../.config/UU && rm -rf X $rmlist; exit 1' 1 2 3 15 @@ -936,6 +947,16 @@ case "$user" in '') user=`whoami 2>&1`;; esac if [ X$install = Xyes ] ; then + +echo " " +echo " " +echo " " +echo " --- Geant4 Toolkit Installation ---" +echo " " +echo " " +echo " " +echo " " + if $contains "^$user\$" ../../.config/instruct >/dev/null 2>&1; then firsttime=false echo " " @@ -1560,7 +1581,7 @@ fi fi : Sadilov: g4system.U - inserted here. : 'current' directory is where 'Configure' is started -echo " " +#echo " " case "$g4osname" in '') @@ -1584,7 +1605,7 @@ case "$g4osname" in esac esac -echo " " +#echo " " case "$g4compiler" in @@ -1752,6 +1773,7 @@ EOM ;; esac done + fi # @@ -1759,11 +1781,11 @@ fi # g4system=$g4osname-$g4compiler -cat << EOM - -G4SYSTEM is now set to $g4system. - -EOM +#cat << EOM +# +#G4SYSTEM is now set to $g4system. +# +#EOM cd .config/UU @@ -1775,7 +1797,148 @@ dflt=n cd ../.. if [ X$install = X ] ; then + + if test -f $src/.config/bin/$g4system/env.sh; then + + # create not_display flag + +if [ X$g4ldlibs != X -o X$g4ldflags != X -o X$g4cxxflags != X -o X$g4cppflags != X -o X$g4incflags != X ] ; then + g4non_display=yes +# echo g4non_display=$g4non_display +fi + + if [ X$g4cppflags = Xyes ] ; then + + . $src/.config/bin/$g4system/env.sh + + CPPFLAGS=`grep 'CPPFLAGS_FINAL :=' $G4LIB/$G4SYSTEM/GNUmakefile.db | awk -F := '{print $2}'` + +# echo CPPFLAGS=$CPPFLAGS + echo $CPPFLAGS + + $rm -rf .config/UU + exit 1 + + fi #end of cppflags + + if [ X$g4cxxflags = Xyes ] ; then + + . $src/.config/bin/$g4system/env.sh + + CXXFLAGS=`grep 'CXXFLAGS_FINAL :=' $G4LIB/$G4SYSTEM/GNUmakefile.db | awk -F := '{print $2}'` + +# echo CXXFLAGS=$CXXFLAGS + echo $CXXFLAGS + + $rm -rf .config/UU + exit 1 + + fi #end of cxxflags + + if [ X$g4incflags = Xyes ] ; then + + . $src/.config/bin/$g4system/env.sh + + INCFLAGS=`grep 'INCFLAGS_FINAL :=' $G4LIB/$G4SYSTEM/GNUmakefile.db | awk -F := '{print $2}'` + +# echo INCFLAGS=$INCFLAGS + echo $INCFLAGS + + $rm -rf .config/UU + exit 1 + + fi #end of incflags + + if [ X$g4ldflags = Xyes ] ; then + + . $src/.config/bin/$g4system/env.sh + + LDFLAGS=`grep 'LDFLAGS_FINAL :=' $G4LIB/$G4SYSTEM/GNUmakefile.db | awk -F := '{print $2}'` + +# echo LDFLAGS=$LDFLAGS + echo $LDFLAGS + + $rm -rf .config/UU + exit 1 + + fi #end of ldflags + + if [ X$g4ldlibs = Xyes ] ; then + +# cat >&2 <&2 <> stepTrialOld, to take + large multiple - not small + o added guard for stepTrial==0.0 in FindNextChord(). + - G4MagIntegratorDriver: + o added protection against error of 0.0 in ComputeNewStepSize. + o cleared warning of unused variable. + - G4EquationOfMotion: + o made RightHandSide() an inline method + o in GetFieldValue() signature of Point is double[4], + instead of double[3] + o defined G4maximum_number_of_field_components as enum. + + solids/CSG: + - G4Cons: + o Bug fixed in DistanceToIn(p,v) concerning z-crossing at + the edge with Rmin,Rmax. + + solids/STEP: + - Fixed GNUmakefile to parse 'g++' string in G4SYSTEM to detect + non-ISO setup for gcc-2.95 and higher. + + solids/STEPinterface: + - Fixed GNUmakefile to parse 'g++' string in G4SYSTEM to detect + non-ISO setup for gcc-2.95 and higher. + + verification: + - G4GeomTestVolume: + o Fixed recursive call to G4GeomTestVolume to consider also + 'tolerance' as argument in the recursive test algorithm. + + volumes: + - Code cleanup and cosmetics for most classes. + - G4PropagatorInField: + o In ComputeStep(), reset status to original by setting 'fNoZeroStep' + to zero if (fNoZeroStep > fAbandonThreshold_NoZeroSteps). + Fixes a problem observed in cases when a looping track is killed, + the bug was causing also subsequent tracks to be killed. + o Removed not-implemented constructor taking G4Navigator* as argument. + o Get rid of static const data for default 'epsilonStep' size. + o Initialised all data members in constructor! + + o Global: + ------ + - G4Allocator: + o Moved page size to become data-member of G4Allocator. + 'fPageSize' is now computed according to the size of the object + to be allocated. The default size is 1024 bytes for objects whose + size is less than 512 bytes, 10 times the size of the object otherwise. + + o Hadronic processes: + ------------------ + + management, utils, models/high_energy: + o Introduced accounting of strange baryons. + o Introduced accounting for anti-nucleons and strange mesons. + o Improved treatement of inelasticity for annihilation events and pion + absorptive reactions. + o Added protection in the call to phase-space method for pion induced + reactions. + o Fixed error in energy conservation observed by BTEV. + Used to show (1/500) for 1.5-2.5 GeV pion reactions in medium A nuclei. + + cross-sections: + o Fixed bug in caching information in gamma nuclear cross-sections + (G4PhotoNuclearCrossSection). + + o Examples: + -------- + - Corrected README in exampleN01. + - Updated reference outputs. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 4.1. + o Technical notes distributed for release 4.1 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 4.1 are available through +our "Source Code" Web page: +- see our Geant4 Home Page. + +Please refer to Geant4 +User Documentation for further information about using Geant4. diff --git a/ReleaseNotes/ReleaseNotes4.5.0.txt b/ReleaseNotes/ReleaseNotes4.5.0.txt new file mode 100644 index 0000000000..ccdebe9974 --- /dev/null +++ b/ReleaseNotes/ReleaseNotes4.5.0.txt @@ -0,0 +1,652 @@ + + Geant4 5.0 Release Notes + ------------------------ + + 13th December 2002 + +These are the main new features/fixes included in this release since the +last public release (for the detailed list of fixes/additions, please refer +to the related History files): + + + o Configuration: + ------------- + - Specific setups: + o Linux-g++.gmk: added assignment 'CC := gcc' for default 'cc' compiler. + o SUN-CC.gmk: removed -L/usr/lib path specification from LOADLIBS + definition. + o AIX-xlC.gmk: updated for porting on AIX with xlC 6.0 (unsupported). + o WIN32-g++.gmk: updated setup to compile with -ansi and gcc-2.95.3 + for most recent versions of CygWin (unsupported). + o Darwin-g++.gmk: updated setup to support MacOS 10.2 (unsupported). + - liblist.c: + o Enhanced script to provide the whole list of installed libraries + in the correct order, without requiring parsing of dependencies. + The functionality is achieved by invoking "liblist" with option '-m", + i.e. - liblist -m [libpath] < libname.map + where [libpath] is the path where libraries are placed + (i.e. $G4LIB/$G4SYSTEM). + - binmake.gmk: + o Use "liblist -m [libpath]" to retrieve the list of libraries to link + in case headers are installed in $G4INCLUDE, and granular libraries + are used. + - Adopt new dependency file algorithm to avoid leaving corrupt .d files + when #include's cannot be found. + - Removed ODBMS setup. Now library for persistency is built as part of the + kernel and specific implementations for persistency have been moved to + examples. Setup for ODBMS no more required. G4USE_HEPODBMS is no longer + used. + - Removed obsolete setup for ObjectSpace-STL (G4USE_OSPACE and related + variables). Removed obsolete variable G4USE_STL. + - Made compilation of g3tog4 module optional (only if G4USE_G3TOG4 is + defined). The module is not built by default. + + o Digitization & Hits: + ------------------- + - Added classes for event scoring in module "detector": + G4CellScoreComposer[.hh.cc], G4CellScoreValues.hh, + G4CellStoreScorer[.hh.cc], G4TrackLogger[.hh.cc]. + - Added methods to G4VHit: + virtual const G4std::vector* GetAttDefs/Values() + - Added GetHit() and GetSize() to G4VHitsCollection. + - Fixed minor memory leak in G4SDManager. + + o Event: + ----- + - Added classes for scoring management: + G4CellScorer[.hh.cc], G4CellScorerStore[.hh.cc], + G4ScoreTable[.hh.cc], G4Scorer[.hh.cc]. + - Introduced first implementation of HepMC interfaces (not functional + yet on Windows platforms, pending HepMC support in CLHEP). + - Critical bug fix in G4PrimaryParticle for initialisation of non + charged particles. + - G4Event: introduced 'EventAborted' flag. + - Added protection against user's mis-use of destruction of + G4TrajectoryContainer. + - Fix memory leak caused by deleting stacked tracks. + + o Electromagnetic Processes (Low-energy): + -------------------------------------- + - Bug fix in delta-electron spectra. + - Bug fix in simulation of EM processes in compounds. + - Optimised loading of data in G4AugerData. + - Fix in calculation of restricted energy loss of e-. + - Fixed memory leak problem in G4AtomicTransition. + - Bug fixes for ion ionisation, related to the interaction between + energy loss and fluorescence. + - Bug fix in G4BremsstrahlungParameters, to load EEDL correctly. + Fixes problem report #430. + - New model for angular distribution in Rayleigh. + Fixes problem report #406. + - Optimisation of tables in G4LowEnergyIonisation, G4eLowEnergyLoss, + G4hLowEnergyLoss and G4hLowEnergyIonisation. + + o Electromagnetic Processes (Standard): + ------------------------------------ + - Introduced new prototype implementation of model-dependent processes: + G4MuBremsstrahlungSTD, G4MuIonisationSTD, G4MuPairProductionSTD, + G4eBremsstrahlungSTD, G4eIonisationSTD, G4hIonisationSTD. + G4MultipleScatteringSTD, G4VEnergyLossSTD, G4EnergyLossMessengerSTD. + - G4Scintillation: + o now allowing for fast and slow components. Scintillation properties + are stored with the material and retrieved with GetConstProperty(). + o now allowing for particle dependent excitation levels. + o using Poisson distribution (G4Poissin) for small MeanNumPhotons in + a step. + o using the nearest integer to calculate the number of photons in DoIt(). + - G4MultipleScattering: + o Bug fix in PostStepDoIt() for lateral displacement. + o Corrected angle distribution and fixes in the boundary algorithm. + This new parameterisation improves the ~100 MeV proton scattering. + - G4eBremsstrahlung::BuiltLossTable(): fixed rare cases of division by 0. + - GammaConversionToMuons: corrected syntax of OR conditions in DoIt(). + - G4VEnergyLoss: fix for gaussian fluctuations sampling at very low energy. + - Fixes in proton scattering and LossTableBuilder. + - G4PAIonisation[.hh.icc.cc]: patched access to public static data. + Added static accessor to be used in the kernel for inline functions + to allow porting on Windows DLLs. + + o General Processes, Parameterisation, Decay, Optical: + --------------------------------------------------- + - Added new command /process/setVerbose for G4ProcessTableMessenger. + - Fixed memory leak in G4ProcessTable::Insert(). + - Optical processes: fixed calculation of polarization on dielectric + dielectric interfaces. Fixes problem report #427. + - Fast simulation management: + o Added method to retrieve G4VFastSimulationModel by name + G4GlobalFastSimulationManager::GetFastSimulationModel(). + The method is matched also in G4FastSimulationManager. + o Patched access to public static data in G4FastStep.cc and + G4GlobalFastSimulationManager.cc to allow porting on Windows DLLs. + + o Geometry: + -------- + - Importance biasing + o New design iteration for importance biasing and scoring and + reorganisation of classes to proper modules (digits+hits/detector, + event and processes/transportation). + + no biasing is applied between cells that are not known by + the G4IStore and its neighbors. + + importance value 0 is allowed to flag that no biasing should + be done betweeen the cell and its neighbors. + + changed G4ParallelNavigator to use G4TouchableHanle and + LocateGlobalPointAndSetup(). + + renamed G4VPScorer to G4VScorer and G4PStep to G4GeometryCellStep + + changes to handle 'pre' and 'post' importance in + G4(V)ImportanceAlgorithm, G4ImportanceSplitExaminer and + G4ImportanceFinder. + + renamed G4PTouchableKey to G4GeometryCell. + + removed G4VPrintableScorer.hh G4VPrintableScorerFactory.hh. + + added G4VCellScorer.hh and G4VCellScorerStore.hh. + - Management + o Added checks for illegal geometry contructions for G4PVReplica and + G4PVParameterised. Contructors now verify unicity of daughter volumes + for replicas and parameterised volumes, as well as checks for attempt + to replicate/parameterise the world volume. + o Added pure virtual method StreamInfo() in G4VSolid to stream contents + of a solid to a generic output stream. Interface change required for + all derived concrete solids. + Added method DumpInfo() using StreamInfo() to dump contents to the + standard output. + o G4AssemblyVolume: + + Fixed bug #409 concerning missing imprint counter method. + + Fixed bug #410 concerning the internal counting mechanism. + Added accessor methods for retrieving the instance ID. + o Added new method IsParameterised() for G4PVParameterised and + G4PVPlacement, to enquire for existing parameterisation for a placed + volume. + o Added methods IsParameterised() and GetMultiplicity() for G4PVReplica + and G4VPhysicalVolume to enquire for existing parameterisation of + placed volume, and number of replicated volumes. + o Fixed bug in G4GeometryManager for the initialisation of + fine-grained timer for voxelisation statistics. + o Correction in G4LogicalVolume to allow correct propagation of the + Field Manager to the daughter volumes. Fixes bug report for field + by logical volume. + - Solids + o Implemented mechanism for dumping contents of solids to streams. + o G4Cons: bug fixed in DistanceToIn(p,v) concerning z-crossing at + the edge with Rmin,Rmax. + o Boolean solids: + + Added method CleanTransformations() to G4DisplacedSolid and + corrected implementation in destructor of G4BooleanSolid not to + call for deletion of G4VSolid in the case where displacement is used. + Fixes a problem noticed on Linux-g++ at application closeout for + double deletion of a solid in such special case. + o BREPS solids: + + Fix in G4BREPSolidPCone in construction for creation of + begin & end planar surfaces in the case where + [RMIN[0] == 0.0 && RMAX[0] > 0.0] and/or + [RMIN[sections] == 0.0 && RMAX[sections] > 0.0]. + Fixes problem report #419. + + G4Ray, G4Surface: made static inline methods not inlined + to allow porting on Windows DLLs. + o Specific solids: fixed un-initialised data members in constructors + of classes: G4ClippablePolygon, G4EnclosingCylinder, G4PolyconeSide, + G4ReduciblePolygon, G4VCSGfaceted. + o STEPinterface: made all static inline methods not inlined, + to allow porting on Windows DLLs. + o Some general cleanup. + - Verification + o G4GeomTestVolume: fixed recursive call to G4GeomTestVolume to + consider also 'tolerance' as argument in the recursive test algorithm. + - Volumes + o Introduced abstract class G4VCurvedTrajectoryFilter, and created + class G4IdentityTrajectoryFilter, concrete filter for trajectory + points. + o Code cleanup and cosmetics for most classes. + o G4PropagatorInField: + + Fix in ComputeStep() to correctly handle cases when tracks + get killed. + + Introduced memory of Charge Mass and Momentum in order for it to + message the correct ChordFinder at each step. Fixes problem observed + when multiple field managers are used. + + Removed not-implemented constructor taking G4Navigator* as argument. + + Get rid of static const data for default 'epsilonStep' size. + + Initialised all data members in constructor! + o G4BlockingList.cc: fixed initialisation of fBlockTagNo. + Fixes warnings reported by Valgrind to G4BlockingList, + G4VoxelNavigation and G4ParameterisedNavigation. + o Formatting cleanup in source implementation files. + + o Global: + ------ + - Introduced new G4Exception scheme based on severity level. + Added enumeration G4ExceptionSeverity. + o Modified : G4VStateDependent[.hh.cc], G4Exception.cc, + G4StateManager.hh and globals.hh + - Migration to new G4ApplicationState, prepending "G4State_" to each + application state ID. + - G4Allocator: moved page size to become data-member of G4Allocator. + 'fPageSize' is now computed according to the size of the object + to be allocated. The default size is 1024 bytes for objects whose + size is less than 512 bytes, 10 times the size of the object otherwise. + - G4UnitsTable: made GetUnitsTable() static method not inlined. + - G4Integrator: plugged minor memory leak and fixed uninitialised values. + + o Graphical representations: + ------------------------- + - Introduced classes G4AttDef, G4AttDefStore and G4AttValue. + - Added const G4std::vector* fAttValues/Defs to + G4VisAttributes. + - HepPolyhedron: + o added methods createTwistedTrap() and createPolyhedron(). + o minor bug fix in method GetFacet(). + o changed inline static methods to not inlined. + - Small revison of G4Scale and improvements in G4VMarker class description. + - G4Colour class description corrected. + - Patched access to public static data in G4Scale and G4VisAttributes. + Added static accessors to be used in the kernel to allow porting on + Windows DLLs. + + o Hadronic Processes: + ------------------ + - cross_sections + + added protection for low nuclear mass limit in high precision classes + for neutron and proton nuclear scattering + + added protection in electro-nuclear scattering (solves the problem + seen in CMS, linear collider, and electron beam-dump studies) + + added alternative description of pion nuclear reactions cross-sections + (G4PiNuclearCrossSection), affecting in particular the absorption + dominated (T<500MeV) region. + - management + + changed the memory management policy for model classes + (G4HadronicInteraction derived), so they get deleted exactly once, + no matter what the physics list looks like. + - processes + + corrected documentation for electro and gamma nuclear process classes. + - stopping + + fixed light material problem and neutrino-flavour problem in + muon-nuclear scatterering + - util + + enabled tracing of originator model (in development mode) for more + detailed verfication + + more work on energy conservation for low energy models in the case + of annihilation events, charge exchange reactions, and strangeness + production. + - models/cascade + + first release of the cascade part of the HETC re-write + - models/chiral_inv_phase_space + + bug fixes, and revised rho width. + - models/coherent_elastic + + removed some conservative programming in favour of performance. + - models/high_energy + + fixed known bug in the Cross method, and energy non-conservation + problems in cases of strangeness production and anti-particle + reactions + - models/leading_particle + + extended neutron spectrum to reach below 1 MeV + - models/low_energy + + improved treatement of the K0 system. + + removed long-standing (small) memory leak in light ion reactions + + improved treatement of pion absorption at lowest energies + - models/neutron_hp + + added description of inelastic channel in case no energy distributions + are given, and there are exactely two secondaries + Fixes a problem seen in neutron scattering off iron + + added protection a case where cross-sections went negative in + non-linear interpolation mode + + added an exception in case heavy elements with no data provided are + searched for + - models/de_excitation + + new feature: internal conversion now available + + fixes for integration problem in multi-fragmentation and random + numbers generation + - models/radiative_decay + + now also using internal conversion + - models/high_energy + + cleared compilation warnings + - models/kinetic_model + + first release of the binary-cascade model + - models/management + + added coulomb barrier information to nucleus interface + - models/pre_equilibrium + + enabled source tracing in developer mode + + fixed rare integration problem in the probability distribution + function for ion emission + - models/quark_gluon_string + + added developer mode + - models/scattering + + First release of the generic scattering term, currently used by + binary cascade. + - models/string_fragmentation + + removed some conservative programming + - models/util + + added coulomb barrier to nucleus' public interface + + kinetic track now decay in cascade type codes with correct life-time + + track 4-momentum can now be updated by specifying new energy + - New data required for photon-evaporation and radioactive decay databases. + - High precision neutron code will work with G4NDL0.2 through G4NDL3.7. + + + o Magnetic Field: + -------------- + - G4FieldManager: + o made 'fDefault_Delta_One_Step_Value' and + 'fDefault_Delta_Intersection_Val' non static constants to resolve + initialisation problems. Fixes problem report #383. + - G4ChordFinder: + o fixed case of stepTrial >> stepTrialOld, for large multiple. + o added guard for null stepTrial in FindNextChord(). + o correction from zero dChord in case of not-updated 'Unconstrained' + step estimate (state). + o Added instance variables to store number of calls and chord-trials. + - G4EquationOfMotion: + o made RightHandSide() inlined. + o changed signature of Point in GetFieldValue(), now double[4]. + - Protection against division by 0 in + G4MagIntegratorDriver::ComputeNewStepSize. + - Fixes for unitialised variables in G4MagIntegratorStepper, + G4FieldTrack, G4MagErrorStepper, G4Mag_SpinEqRhs, G4ExplicitEuler, + and G4ImplicitEuler + - Fixed memory leaks in G4ImplicitEuler and ExplicitEuler. + + o Materials: + --------- + - G4Material: removed constructors with chemical formula. + - Added constant material properties to G4MaterialPropertiesTable. + - G4IonisParamElm: fix in excitation energy interpolation. + - G4IonisParamMat: added methods to Set/Find the mean excitation energy. + + o Particles: + --------- + - Updated mass width for resonance particles. + - Fixed PDG codes for k0_star(1430), a0(1450) and f0(1370). + - Made static inline method G4VDecayChannel::GetNoName() not inlined + for porting on Windows DLLs. + + o Persistency: + ----------- + - Implementation of abstract layer for persistency. Removed ODBMS + specific implementation and setup. Now persistency library is part of + the Geant4 kernel (see documentation on user manuals for details) + o HepMC is not currently supported by CLHEP on Windows, so HepMC + persistency is temporarly excluded from compilation on Windows. + + o Run, Intercoms and Interfaces + ----------------------------- + - G4RunManager, G4RunMessenger: + o Introduced "soft abortion", to allow event loop to abort after + processing the current event. G4RunManager sets "eventAbortion" + flag of G4Event if that particular event is aborted. + o Introduced AbortEvent() method and corresponding UI command. + - Introduced new G4Exception scheme: added G4ExceptionHandler class. + - G4RunManager: introduced ResetNavigator() method needed in cases + where a geometry has been modified between runs in order to properly + re-initialize navigator's state. + - Added two new pure virtual functions to G4VGraphicsScene: + void AddThis(const G4VTrajectory&) + void AddThis(const G4VHit&) + - Fixed uninitialized data member and minor memory leak in G4UIcommand. + - Fixed G4UIArrayStrings to work for "konsole" type termcap. + - Patched access to public static data in G4VGlobalFastSimulationManager + and G4VVisManager. Added static accessors to be used in the kernel to + allow porting on Windows DLLs. + + o Tracking & Track: + ---------------- + - Extensions of G4VTrajectory and introduction of curved trajectories + o Added classes G4SmoothTrajectory and G4SmoothTrajectoryPoint. + o Implemented default Show/DrawTrajectory() in G4VTrajectory. + - G4SteppingManager: + o implemented new ForceCondition flag StronglyForced. + o fixed problem observed with optical processes. + - G4TrackingManager + o Re-implemented EventAborted() method to ensure this command + works properly during stepping phase. + o Set fpTrajectory pointer to zero when the trajectory is deleted. + - Added accessors to auxiliary point vector, in both G4Step and + G4ParticleChangeForTransport. + - Set 'fUndefined' for the StepStatus in G4PostStepPoint. + - Fixed initialisation of 'fCharge' in G4StepPoint constructor. + - Patched access to public static data in G4VParticleChange. + Added accessors to be used in the kernel to allow porting on + Windows DLLs. + + o Transportation: + -------------- + - G4Transportation: enable use of smooth (curved) trajectories. + - Design iteration for standard scoring and class reorganisation + o changed sampler concept: instead of separate samplers for + all combinations of importance sampling, scoring, weight roulette + for parallel and mass geometry, two samplers now are used + for the mass and parallel geometry: G4MassGeometrySampler + and G4ParallelGeometrySampler. + o bug fixes in G4MassGeometrySampler, G4ParallelGeometrySampler, + and G4MassGeometry. + o moved G4CellStoreScorer, G4TrackLogger to digits+hits/detector. + + o Visualization: + ------------- + - New implementation of HepRep driver (version 2). + - Precision control of g4_XX.prim files are now generated by the + DAWNFILE/DAWN-Network drivers, by use of a new variable for tuning + precision G4DAWNFILE_PRECISION. Default precision is now set to + 9 digits. + - Fix (removal) of ambiguous G4VVisCommand::GetNewDoubleValue(). + - Added /vis/viewer/set/globalMarkerScale. + - Improved algorithm of CompareForKernelVisit on OpenGL and OpenInventor. + - OpenGL driver: fixes for WIN32 architecture at compilation level. + Viewer still to be implemented. + - Patched access to static data in G4VisCommandsSceneAdd.cc, + G4VisManager.cc and G4FlavoredParallelWorldModel.cc to allow porting + on Windows DLLs. + - Corrected inclusion of G4OpenGLXViewer #ifdef X_DRIVER for Windows + and other small changes in OpenGL. + - Added integer argument to /vis/scene/add/trajectories [drawing-mode]. + drawing-mode is passed to DrawTrajectory. + - Fixed bug in G4VisManager wich lead to zero G4VModel pointer. + - Improved handling of models. + - Fixed division-by-zero cases in G4RayTracer. + - VRML driver: bug fix for marker size. + - Improved end of run behaviour for non-post-processing graphics systems. + + o g3tog4 tool: + ----------- + - Fix in G4gsdvn G4gsposp to enable larger number of clone volumes + - Fix for division defined in a mother with not yet defined parameters. + + o data + ---- + - Updated data-sets for: + o PhotonEvaporation: data-base now includes internal conversion + coefficients. + o RadiativeDecay. + + o Examples: + -------- + - advanced: + + Migration of most examples to use AIDA 3.X for histogramming. + + Added "composite_calorimeter" example based on CMS test-beam setup. + + Added "lAr_calorimeter" example based on ATLAS lAr-calorimeter + test-beam setup. + + underground_physics: + o Updates to cope with new interface for G4scintillation process. + o Updated geometry for better comparison with data. Corrected + overlapping volumes and inefficient physics list. + - extended + o analysis + + added "A01" example for usage of analysis and HepRep. + o biasing + + reduced examples to three: + B01 - importance sampling and scoring. Importance values are + defined according to the mass geometry. Scoring performed. + B02 - uses a parallel geometry to define G4GeometryCell objects + for scoring and importance sampling. In addition it customizes + the scoring. In this example one scorer creates a histogram. + It can be run through a Python script. + B03 - importance sampling and scoring interactively through Python. + o electromagnetic: + + migrated histogramming to AIDA 3.X. + + fixes to allow compilation in gcc-3.2 (TestEm1, TestEm2, TestEm3). + o eventGenerator + + enhanced interface to HepMC to use CLHEP module. + o gdml: + + fixed warnings on SUN and SUN linker problem. + o persistency + + introduced example (PersEx01) for persistency of calorimeter hits + using ROOT-I/O. + + removed old ODBMS-based examples. + - novice + o N06: updates according to new interface for G4Scintillation process. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + +The code and some binary libraries are available through our "Source Code" +Web page: +- see our Geant4 Home Page. + +Please refer to Geant4 +User Documentation for further information about using Geant4. + + +Contents +-------- + + 1. Supported and Tested Platforms + 2. AIDA and CLHEP + 3. The Standard Template Library (STL) + 4. Compiler Specific Problems + 5. Known Run-Time Problems + 6. Compilation Warnings + 7. Known Run-Time Warnings + 8. Items for migration of user code + +1. Supported and Tested Platforms +--------------------------------- + + o SUN Solaris 5.8, C++ 5.3 Patch 111685-07, C++ 5.4 Patch 111715-02. + o Linux, gcc 2.95.2, gcc 3.2. + This configuration was tested with the RedHat 7.2 and 7.3 distributions, + versions of Geant4 have also been compiled successfully on other Linux + distributions, like Debian or Suse. + The default RedHat compiler gcc-2.96 ditributed in RedHat 7.X is NOT + supported. It has been verified that it produces incorrect binaries, + therefore is not reliable. See also note below. + o Windows-2000/XP and CygWin Tools with: Visual C++ 6.0 Service Pack 5 + +Platforms configured but not tested and not supported: + o DEC V4.0, cxx C++ V6.1-027 + o HP 10.20, aCC C++ B3910B A.01.23 + o SGI V6.5.5, CC 7.2.1 + o AIX 4.3.2, xlC 6.0 + o MacOS 10.2, gcc 2.92.2 / gcc-3.2 + +2. AIDA and CLHEP +----------------- + +Geant4 5.0 requires the installation of CLHEP. + +See +CLHEP. Tests have been performed with CLHEP 1.8.0.0. + +Geant4 5.0 examples with histogramming cowork with AIDA 3.0 implementations. +These include: +- ANAPHE and components included therein + (see: ANAPHE) +- JAS (Java Analysis Studio) + (see: JAS) +- Open Scientist + (see: Open Scientist) + +AIDA headers can be downloaded from: + AIDA + + +3. The Standard Template Library +-------------------------------- + +Native versions of STL have been tested on the following platforms: + + Windows/2000, Linux, and SUN. + +NOTES: + +- Platform specific setup: + o SUN: Native STL is required for ISO/ANSI setup. + o Linux: Native STL is required (non ISO/ANSI setup for egcs compiler only). + o Windows: Native STL and ISO/ANSI setup required (VC++ 6.0). + + +4. Compiler Specific Problems +----------------------------- + + o Linux Red Hat 7.X, gcc-2.96. + + - The default compiler distributed by Red Hat since release 7.0 is + NOT supported and not considered reliable for running a Geant4-based + application. In more than one test case, binaries produced by gcc-2.96 + have shown incorrect behavior, either due to wrong order of + initialisation of static data in memory or to bugs in the system + iostream classes, problems which apparently have all been solved in + more recent versions of the compiler (3.X series). + For information, gcc-2.96 is a compiler that has never been + officially released, nor supported by the GNU team itself and is not + considered reliable by the authors (for more information, see also + http://gcc.gnu.org/gcc-2.96.html). + + +5. 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, available on the Web at this address: + + http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport + + +6. Compilation Warnings +----------------------- + +There are compilation warnings on some platforms. We do not believe +that any will lead to incorrect run-time behaviour, but we are working +on reducing them. + + +7. Known Run-Time Warnings +-------------------------- + +The following messages can be written to error output while tracking. +We believe none give rise to incorrect behaviour. + + o G4PropagateInField: Warning: Particle is looping + - tracking in field will be stopped. + It has performed 10000 steps in Field while a maximum of 10000 + are allowed. + + +8. Items for migration of user code +----------------------------------- + +o Compilation/installation of the 'g3tog4' module is now -optional- in + release 5.0 and can be triggered only if G4USE_G3TOG4 is set during + installation. +o The new data sets for photon-evaporation and radioactive-decay are + required, old data-sets are not compatible with this release. +o Definition of the state IDs in G4ApplicationState have changed to + prepend the "G4State_" prefix to the original state ID (i.e. "Idle" + becomes "G4State_Idle", "Init" becomes "G4State_Init", and so on...). + The user code (particularly, user defined messengers defining state + dependent commands) will need to migrate to this new convention. +o The interface for usage of the scintillation process has changed. + Refer to the user's manual to learn about how to migrate the user code + to use the new interface. +o Interfaces for importance biasing and scoring have substantially changed + and migration of the user code using these classes is required. Refer to + the user's manual to learn about how to migrate the user code + to use the new interfaces. +o User defined solids will need to implement a new method: + std::ostream& StreamInfo(std::ostream& os) const + to dump solid's contents to an output stream. + The method is now pure virtual in the base class G4VSolid. +o The base class G4VTrajectory has been enhanced and new pure virtual + functions have been introduced in G4VGraphicsScene: + void AddThis(const G4VTrajectory&) + void AddThis(const G4VHit&) + User inherited classes require concrete implementations of the methods + above, as well. diff --git a/config/G4ODBMS_BUILD.gmk b/config/G4ODBMS_BUILD.gmk deleted file mode 100644 index b1d240e567..0000000000 --- a/config/G4ODBMS_BUILD.gmk +++ /dev/null @@ -1,17 +0,0 @@ -# $Id: G4ODBMS_BUILD.gmk,v 1.2 1999/09/17 13:15:29 morita Exp $ -# ---------------------------------------------------------------- -# GNUmakefile for CPPFLAGS for HepODBMS and Objectivity/DB. -# Youhei Morita, 9th July 1998. -#-------------------------------------------------------------------- -# Objectivity and HepODBMS definitions - -ifdef OBJY_DIR - CPPFLAGS += -I$(OBJY_DIR)/include -endif - -ifdef HEP_ODBMS_DIR - CPPFLAGS += -I$(HEP_ODBMS_DIR)/include \ - -DHEP_ODBMS_EXPORT="" \ - -DHep_HAS_BUILDIN_BOOL_CONSTANTS -endif -#-------------------------------------------------------------------- diff --git a/config/G4UI_USE.gmk b/config/G4UI_USE.gmk index a17b4bd01b..53de081d03 100644 --- a/config/G4UI_USE.gmk +++ b/config/G4UI_USE.gmk @@ -1,4 +1,4 @@ -# $Id: G4UI_USE.gmk,v 1.5 2001/11/13 16:00:44 johna Exp $ +# $Id: G4UI_USE.gmk,v 1.6 2002/11/22 11:53:02 gcosmo Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for interfaces USE phase. # John Allison, 6th July 1998. @@ -21,11 +21,13 @@ UILIBS := # C-pre-processor variable G4UI_USE_TERMINAL is set by default, although # there is no need to use it. -CPPFLAGS += -I$(G4BASE)/interfaces/basic/include +ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/interfaces/basic/include + CPPFLAGS += -I$(G4BASE)/interfaces/common/include + CPPFLAGS += -I$(G4BASE)/interfaces/GAG/include +endif UILIBS += -lG4UIbasic -CPPFLAGS += -I$(G4BASE)/interfaces/common/include UILIBS += -lG4UIcommon -CPPFLAGS += -I$(G4BASE)/interfaces/GAG/include UILIBS += -lG4UIGAG ifdef G4UI_USE_TERMINAL @@ -74,7 +76,9 @@ ifdef G4UI_USE_WO G4UI_USE = 1 G4INTY_USE_XT = 1 CPPFLAGS += -DG4UI_USE_WO - CPPFLAGS += -I$(G4BASE)/interfaces/OPACS/include + ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/interfaces/OPACS/include + endif UILIBS += -lG4UIOPACS INC_OPACS = 1 LOAD_OPACS = 1 diff --git a/config/G4VIS_USE.gmk b/config/G4VIS_USE.gmk index bbfd3497e8..1cce89336e 100644 --- a/config/G4VIS_USE.gmk +++ b/config/G4VIS_USE.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_USE.gmk,v 1.13 2002/03/09 03:12:33 johna Exp $ +# $Id: G4VIS_USE.gmk,v 1.14 2002/11/22 11:53:09 gcosmo Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for visualization USE phase. # John Allison, 24th January 1998. @@ -13,26 +13,29 @@ endif # Set old USE C-pre-processor flags for backwards compatibility of user code... CPPFLAGS += -DG4VIS_USE_DAWNFILE -CPPFLAGS += -I$(G4BASE)/visualization/FukuiRenderer/include VISLIBS += -lG4FR CPPFLAGS += -DG4VIS_USE_HEPREPFILE -CPPFLAGS += -I$(G4BASE)/visualization/HepRep/include VISLIBS += -lG4visHepRep CPPFLAGS += -DG4VIS_USE_RAYTRACER -CPPFLAGS += -I$(G4BASE)/visualization/RayTracer/include VISLIBS += -lG4RayTracer CPPFLAGS += -DG4VIS_USE_VRMLFILE -CPPFLAGS += -I$(G4BASE)/visualization/VRML/include VISLIBS += -lG4VRML CPPFLAGS += -DG4VIS_USE_ASCIITREE CPPFLAGS += -DG4VIS_USE_GAGTREE -CPPFLAGS += -I$(G4BASE)/visualization/Tree/include VISLIBS += -lG4Tree +ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/visualization/FukuiRenderer/include + CPPFLAGS += -I$(G4BASE)/visualization/HepRep/include + CPPFLAGS += -I$(G4BASE)/visualization/RayTracer/include + CPPFLAGS += -I$(G4BASE)/visualization/VRML/include + CPPFLAGS += -I$(G4BASE)/visualization/Tree/include +endif + ifdef G4VIS_USE_DAWN CPPFLAGS += -DG4VIS_USE_DAWN # CPPFLAGS += -I... and VISLIBS += set above. @@ -42,7 +45,9 @@ ifdef G4VIS_USE_OPACS INC_OPACS = 1 LOAD_OPACS = 1 CPPFLAGS += -DG4VIS_USE_OPACS - CPPFLAGS += -I$(G4BASE)/visualization/OPACS/include + ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/visualization/OPACS/include + endif VISLIBS += -lG4OPACS endif @@ -64,7 +69,9 @@ ifdef G4VIS_USE_OPENGLWIN32 endif ifdef G4VIS_USE_OPENGL CPPFLAGS += -DG4VIS_USE_OPENGL - CPPFLAGS += -I$(G4BASE)/visualization/OpenGL/include + ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/visualization/OpenGL/include + endif VISLIBS += -lG4OpenGL INC_GL = 1 LOAD_GL = 1 @@ -82,7 +89,9 @@ ifdef G4VIS_USE_OIWIN32 endif ifdef G4VIS_USE_OI CPPFLAGS += -DG4VIS_USE_OI - CPPFLAGS += -I$(G4BASE)/visualization/OpenInventor/include + ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/visualization/OpenInventor/include + endif VISLIBS += -lG4OpenInventor INC_IV = 1 LOAD_IV = 1 @@ -106,8 +115,10 @@ endif ifdef G4_SOLVE_VIS_TEMPLATES CPPFLAGS += -DG4_SOLVE_VIS_TEMPLATES endif -CPPFLAGS += -I$(G4BASE)/visualization/management/include -CPPFLAGS += -I$(G4BASE)/visualization/modeling/include +ifneq ($(G4INCLUDE_EXEC),1) + CPPFLAGS += -I$(G4BASE)/visualization/management/include + CPPFLAGS += -I$(G4BASE)/visualization/modeling/include +endif VISLIBS += -lG4vis_management VISLIBS += -lG4modeling diff --git a/config/History b/config/History index 85ea81991d..1c2d759158 100644 --- a/config/History +++ b/config/History @@ -1,6 +1,5 @@ -$Id: History,v 1.193 2002/06/26 17:27:18 gcosmo Exp $ -$Name: geant4-04-01 $ - +$Id: History,v 1.209 2002/12/10 14:05:59 gcosmo Exp $ +$Name: geant4-05-00 $ ------------------------------------------------------------------- ========================================================= @@ -18,6 +17,76 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +4th December 2002 Gabriele Cosmo (config-V04-01-08) +- Removed obsolete setup for ObjectSpace-STL (G4USE_OSPACE and related + variables). Removed obsolete variable G4USE_STL. +- Updated Configure scripts. + +2nd December 2002 John Allison (config-V04-01-07) +- common.gmk, binmake.gmk: New dependency file algorithm that avoids + leaving corrupt .d files when #include'd files cannot be found. +- Removed obsolete schema targets in common.gmk. + +25th November 2002 Gabriele Cosmo (config-V04-01-06) +- Removed ODBMS setup. Now library for persistency is built as part of the + kernel and specific implementations for persistency have been moved to + examples. Setup for ODBMS no more required. G4USE_HEPODBMS is no longer + used. +- Updated configuration file AIX-xlC.gmk to port code on AIX with xlC 6.0 + (K.Murakami). + +22nd November 2002 Gabriele Cosmo (config-V04-01-05) +- liblist.c: + o Enhanced script to provide the whole list of installed libraries + in the correct order, without requiring parsing of dependencies. + The functionality is achieved by invoking "liblist" with option '-m", + i.e. - liblist -m [libpath] < libname.map + where [libpath] is the path where libraries are placed + (i.e. $G4LIB/$G4SYSTEM). +- binmake.gmk: + o Use "liblist -m [libpath]" to retrieve the list of libraries to link in + case headers are installed in $G4INCLUDE, and granular libraries are used. +- G4UI_USE.gmk, G4VIS_USE.gmk: + o Protected specification of -I paths for headers, in case $G4INCLUDE is + used. A single -I$G4INCLUDE path will be used for compilation in such case. + +16th November 2002 Hans-Peter Wellisch +- binmake.gmk: + o Added hadronic/models/cascade/cascade and + hadronic/models/generator/scattering include paths. + +8th November 2002 Gabriele Cosmo (config-V04-01-04) +- Darwin-g++.gmk: + o Updated setup to support MacOS 10.2 (H.Burkhardt). + +30th October 2002 Gabriele Cosmo (config-V04-01-03) +- architecture.gmk: + o Issue an error if G4SYSTEM is not defined in the environment or not valid. + o Define G4LIB_BUILD_G3TOG4 and G4USE_G3TOG4 for optional installation and + usage of the g3tog4 module. + o Updated list of supported systems/compilers. +- binmake.gmk: + o Include path and library for g3tog4 module only if G4USE_G3TOG4 is defined. + Implies proper handling of G4USE_G3TOG4 in source/GNUmakefile. +- Removed obsolete OSPACE setup for WIN32-VC, HP-aCC, DEC-cxx. Still kept for + platforms with ODBMS setup. +- SUN-CC.gmk: removed -L/usr/lib path specification from LOADLIBS definition. + +10th September 2002 Gabriele Cosmo (config-V04-01-02) +- Linux-g++.gmk: added assignment 'CC := gcc' for default 'cc' compiler. + +26th August 2002 Gabriele Cosmo (config-V04-01-01) +- binmake.gmk: added include path to persistency/run/include which was + missing. Removed unnecessary processes/general/include. + +8th July 2002 John Allison +- liblist.c: added protection and warning for file/directory not found + in parsedir. Also small cosmetic improvements. + +4th July 2002 Gabriele Cosmo (config-V04-01-00) +- Upgraded WIN32-g++ to compile with -ansi and gcc-2.95.3 for most recent versions + of CygWin. + 26th June 2002 Gabriele Cosmo (config-V04-00-10) - Moved STEP PERL scripts to examples/extended/geometry/cad/scripts. - Updated scripts for Configure. diff --git a/config/architecture.gmk b/config/architecture.gmk index 27ddbfccbf..7fb6bebbf3 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk,v 1.78 2002/06/27 14:24:28 gcosmo Exp $ +# $Id: architecture.gmk,v 1.84 2002/12/04 14:44:23 gcosmo Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -13,34 +13,16 @@ # List of the supported architectures/compilers and related flavors for # the environment variable G4SYSTEM: # -# Linux-g++ Linux (Red Hat 6.1 or 7.2), gcc-2.95.2 (default) +# Linux-g++ Linux (Red Hat 7.3), gcc-2.95.2 or gcc-3.2 (default) # -# Linux-egcs Linux (Red Hat 6.1), egcs-1.1.2 +# SUN-CC SunOS 5.8, CC 5.3 or 5.4 # -# SUN-CC SunOS 5.7, CC 5.2 -# -# WIN32-VC Windows/2000 and Microsoft Visual C++ 6.0 - SP5 +# WIN32-VC Windows/2000/XP and Microsoft Visual C++ 6.0 - SP5 # Adding CYGWIN32 tools # ------------------------------------------------------------------------- -# Definition of HEP_ODBMS_LIBS, OBJY_LIBS and OSPACE_LIBS by HepODBMS. -# Note: If G4ODBMS is defined, it calls for HEP_ODBMS setup files in -# $(HEP_ODBMS_DIR)/etc/. -# -ifdef G4ODBMS - # variables LHCXXTOP and PLATF are used in HepODBMS setup - include $(HEP_ODBMS_DIR)/etc/$(OS).mk - G4ODBMS_LIBS := $(HEP_ODBMS_LIBS) $(OBJY_LIBS) $(OSPACE_LIBS) -endif - MAKEFLAGS= --no-print-directory -# If not specified, the default platform for G4SYSTEM is Linux-g++ ... -# -ifndef G4SYSTEM - G4SYSTEM := Linux-g++ -endif - # If not specified, the default path for G4 installation G4INSTALL is # set to $HOME/geant4 ... # @@ -87,19 +69,27 @@ ifndef G4INCLUDE endif G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4INCLUDE) ] && mkdir -p $(G4INCLUDE) ) -# backwards compatiblity +# Backwards compatibility +# ifneq ($(G4MAKESHLIB),) G4LIB_BUILD_SHARED = 1 endif -# defaults for library BUILD. No default for USE, ie. take what is found. +# Defaults for library BUILD. No default for USE, ie. take what is found. +# Default is building static libraries. +# ifeq ($(G4LIB_BUILD_SHARED),) ifeq ($(G4LIB_BUILD_STATIC),) -# default is building static libs G4LIB_BUILD_STATIC = 1 endif endif +# Specify if to build the G3TOG4 module or not. Default is NO. +# +ifneq ($(G4LIB_BUILD_G3TOG4),) + G4LIB_BUILD_G3TOG4 = 1 + G4USE_G3TOG4 = 1 +endif # If not specified, the default path for G4 binaries G4BIN is # set to $G4WORKDIR/bin/$G4SYSTEM ... @@ -109,56 +99,6 @@ ifndef G4BIN endif G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4BIN) ] && mkdir -p $(G4BIN) ) -#################### schema directories & setup for G4ODBMS ################### -# -ifdef G4ODBMS -# If not specified, the default path for G4 schema G4SCHEMA_DIR is -# set to $G4LIB/$G4SYSTEM/schema ... -# -ifndef G4SCHEMA_DIR - G4SCHEMA_DIR := $(G4LIB)/$(G4SYSTEM)/schema - G4SCHEMA_BOOT := $(G4SCHEMA_DIR)/G4SCHEMA - G4SCHEMA_INCLUDE := $(G4SCHEMA_DIR)/include -endif -ifndef G4SCHEMA_FDID - G4SCHEMA_FDID := 207 -endif - -G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4SCHEMA_DIR) ] && mkdir -p $(G4SCHEMA_DIR) ) -G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4SCHEMA_INCLUDE) ] && mkdir -p $(G4SCHEMA_INCLUDE) ) - -# If not specified, the default path for G4 example schema G4EXAMPLE_BOOT_DIR is -# set to $G4WORKDIR/exampleSchema (for persistency examples)... -# -ifndef G4EXAMPLE_BOOT_DIR - G4EXAMPLE_BOOT_DIR := $(G4WORKDIR)/exampleSchema/$(G4SYSTEM) -endif - -G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4EXAMPLE_BOOT_DIR) ] && mkdir -p $(G4EXAMPLE_BOOT_DIR) ) - -ifndef G4EXAMPLE_BOOT - G4EXAMPLE_BOOT = $(G4EXAMPLE_BOOT_DIR)/$(name) -endif - -# If not specified, the default path for G4 example runtime federated -# database directory G4EXAMPLE_FD_DIR is set to $G4WORKDIR/exampleFD -# (for persistency examples)... -# -ifndef G4EXAMPLE_FD_DIR - G4EXAMPLE_FD_DIR := $(G4WORKDIR)/exampleFD/$(G4SYSTEM) -endif - -G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4EXAMPLE_FD_DIR) ] && mkdir -p $(G4EXAMPLE_FD_DIR) ) -G4DDLX_FLAGS := -DTEMPLATEP_HIDES_FNCD - -ifndef G4EXAMPLE_FD - G4EXAMPLE_FD = $(G4EXAMPLE_FD_DIR)/$(name) -endif - -endif -# -########################### end setup for G4ODBMS ############################# - # If G4DEBUG or G4NO_OPTIMISE are not specified, # the default compilation is optimised ... # @@ -191,23 +131,6 @@ ifndef CLHEP_LIB endif endif -# Native STL is the default -# -CPPFLAGS += -DG4USE_STL - -# Path to ObjectSpace STL (NOT supported. Kept for backward compatibility) -# -ifdef G4USE_OSPACE - # - # ObjectSpace STL implementation - # - ifndef OSPACE_BASE_DIR - OSPACE_BASE_DIR := /afs/cern.ch/sw/geant4/dev/ObjectSpace/$(G4SYSTEM)/pro/ToolKit - endif - OSPACEINC := -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR)/ospace/stl - OSPACELIBS := -L$(OSPACE_BASE_DIR)/lib -lospace -endif #OSPACE - # Paths for G4 data # ifndef G4DATA @@ -262,9 +185,7 @@ ifeq ($(G4SYSTEM),WIN32-VC) LOADLIBS := $(CLHEP_LIB) else LDFLAGS := -L$(CLHEP_LIB_DIR) -# LDFLAGS := LOADLIBS := -l$(CLHEP_LIB) -# LOADLIBS := $(CLHEP_LIB_DIR)/lib$(CLHEP_LIB).a LOADLIBS += -lm endif @@ -395,3 +316,9 @@ ifdef CFRONT G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4TREP)/exec ] &&mkdir -p $(G4TREP)/exec ) endif +# If G4SYSTEM is not specified or not valid, issue an ERROR ! +# +#$(G4INSTALL)/config/sys/$(G4SYSTEM).gmk: +# @echo "ERROR - G4SYSTEM is not defined in the environment" +# @echo " or $(G4SYSTEM) architecture is not a valid one !" +# exit 1 diff --git a/config/binmake.gmk b/config/binmake.gmk index 5fa66d385d..2b5adda66b 100644 --- a/config/binmake.gmk +++ b/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.76 2002/06/13 11:08:08 jwellisc Exp $ +# $Id: binmake.gmk,v 1.85 2002/12/04 14:44:23 gcosmo Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -10,6 +10,11 @@ endif G4LIBDIR := $(G4LIB)/$(G4SYSTEM) +# Define variable checking for existence of centrally installed headers. +# If check will be true, avoid explicit definition of paths to INCFLAGS. +# +G4INCLUDE_EXEC := $(shell [ -r $(G4INCLUDE)/globals.hh ] && echo 1) + include $(G4INSTALL)/config/G4UI_USE.gmk include $(G4INSTALL)/config/G4VIS_USE.gmk include $(G4INSTALL)/config/interactivity.gmk @@ -27,18 +32,6 @@ ifndef SHAREDLIBS SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4globman.$(SHEXT) && echo yes) endif -# Define variable checking for existence of centrally installed headers, -# and global compound libraries installed (in future, the mechanism will -# be extended to the granular libraries as well. The liblist application -# must be re-engineered for that). -# If check will be true, avoid explicit definition of paths to INCFLAGS. -# -ifndef GLOBALLIBS - G4INCLUDE_EXEC := 0 -else - G4INCLUDE_EXEC := $(shell [ -r $(G4INCLUDE)/globals.hh ] && echo 1) -endif - ifndef INCFLAGS ifeq ($(G4INCLUDE_EXEC),1) INCFLAGS := -I$(G4INCLUDE) @@ -59,7 +52,6 @@ ifndef INCFLAGS -I$(G4BASE)/particles/hadrons/mesons/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/processes/management/include \ - -I$(G4BASE)/processes/general/include \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/processes/optical/include \ -I$(G4BASE)/processes/transportation/include \ @@ -76,6 +68,7 @@ ifndef INCFLAGS -I$(G4BASE)/processes/hadronic/cross_sections/include \ -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \ -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \ @@ -88,6 +81,7 @@ ifndef INCFLAGS -I$(G4BASE)/processes/hadronic/models/generator/quark_gluon_string/include \ -I$(G4BASE)/processes/hadronic/models/generator/string_common/include \ -I$(G4BASE)/processes/hadronic/models/generator/string_fragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/generator/scattering/include \ -I$(G4BASE)/processes/hadronic/models/generator/util/include \ -I$(G4BASE)/processes/hadronic/models/high_energy/include \ -I$(G4BASE)/processes/hadronic/models/low_energy/include \ @@ -112,34 +106,17 @@ ifndef INCFLAGS -I$(G4BASE)/digits+hits/detector/include \ -I$(G4BASE)/digits+hits/hits/include \ -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/persistency/include \ -I$(G4BASE)/readout/include \ -I$(G4BASE)/event/include \ -I$(G4BASE)/graphics_reps/include \ - -I$(G4BASE)/intercoms/include \ - -I$(G4BASE)/g3tog4/include + -I$(G4BASE)/intercoms/include + ifdef G4USE_G3TOG4 + INCFLAGS += -I$(G4BASE)/g3tog4/include + endif endif endif -ifdef G4ODBMS -ifneq ($(G4INCLUDE_EXEC),1) - INCFLAGS += \ - -I$(G4BASE)/persistency/global/include \ - -I$(G4BASE)/persistency/digits+hits/hits/include \ - -I$(G4BASE)/persistency/digits+hits/digits/include \ - -I$(G4BASE)/persistency/events/include \ - -I$(G4BASE)/persistency/geometry/global/include \ - -I$(G4BASE)/persistency/geometry/solids/CSG/include \ - -I$(G4BASE)/persistency/geometry/solids/Boolean/include \ - -I$(G4BASE)/persistency/geometry/solids/specific/include \ - -I$(G4BASE)/persistency/geometry/management/include \ - -I$(G4BASE)/persistency/management/include \ - -I$(G4SCHEMA_INCLUDE) -endif - INCFLAGS += -I$(OBJY_DIR)/include \ - -I$(HEP_ODBMS_DIR)/include \ - -DHep_HAS_BUILDIN_BOOL_CONSTANTS -endif - CPPFLAGS += $(INCFLAGS) LDFLAGS += -L$(G4LIBDIR) @@ -179,19 +156,15 @@ LDLIBS1 += $(EXTRALIBS) # VISLIBS and UILIBS are now handled by the granular library script... # ifdef GLOBALLIBS - LDLIBS1 += $(VISLIBS) $(UILIBS) -endif + LDLIBS1 += $(VISLIBS) $(UILIBS) -lG4persistency -ifdef GLOBALLIBS - - ifdef G4ODBMS - LDLIBS1 += -lG4persistency + ifdef G4USE_G3TOG4 + LDLIBS1 += -lG3toG4 endif LDLIBS2 := -lG4readout \ -lG4run \ -lG4event \ - -lG3toG4 \ -lG4tracking \ -lG4parmodels \ -lG4processes \ @@ -204,9 +177,18 @@ ifdef GLOBALLIBS -lG4intercoms \ -lG4global else -# The next line specifically should read LDLIBS2 = , not LDLIBS2 :=, so -# that it is not expanded until the directory G4TMPDIR is created. - LDLIBS2 = $(shell \ +# The next lines specifically should read LDLIBS2 = , not LDLIBS2 :=, so +# that it is not expanded until the directory G4TMPDIR is created. + ifeq ($(G4INCLUDE_EXEC),1) + LDLIBS2 = $(shell \ + G4TMP=$(G4TMP); export G4TMP; \ + if [ \( -f $(G4LIB)/$(G4SYSTEM)/liblist \ + -a -f $(G4LIB)/$(G4SYSTEM)/libname.map \) ]; then \ + $(G4LIB)/$(G4SYSTEM)/liblist \ + -m $(G4LIB)/$(G4SYSTEM) \ + < $(G4LIB)/$(G4SYSTEM)/libname.map; fi) + else + LDLIBS2 = $(shell \ G4TMP=$(G4TMP); export G4TMP; \ if [ \( -f $(G4LIB)/$(G4SYSTEM)/liblist \ -a -f $(G4LIB)/$(G4SYSTEM)/libname.map \) ]; then \ @@ -217,6 +199,7 @@ else # expanded too soon. Hence extra libraries must have a different name... # Extra libraries to resolve remaining circular dependencies... # LDLIBS2EXTRA = + endif endif # LDLIBS3 contains the first set of low level libraries... @@ -229,19 +212,6 @@ endif # ifndef USER_DEFINED_LDLIBS # LDLIBS4 contains the next set of low level libraries which historically # (why?) the user is not supposed to be able to define... # -ifdef G4ODBMS - LDFLAGS += -L$(OBJY_DIR)/lib \ - -L$(HEP_ODBMS_DIR)/lib - -# Note: $(G4ODBMS_LIBS) should be placed -# _before_ -l$(CLHEP_LIB) - - LDLIBS4 += $(G4ODBMS_LIBS) -endif -ifdef G4USE_OSPACE - LDLIBS4 += $(OSPACELIBS) -endif - LDLIBS4 += $(LOADLIBS) # Finally assemble libraries... @@ -273,16 +243,7 @@ dependencies := $(patsubst %.cc,$(G4TMPDIR)/exe/%.d,$(sources)) LINK_DEPENDENCIES := $(G4TMPDIR)/exe/obj.last $(EXTRA_LINK_DEPENDENCIES) -ifndef G4ODBMS .PHONY: bin clean clean_bin debug -else -.PHONY: bin clean clean_bin debug cleandb newboot newfd -endif - -# -# Target "bin" requires dependency files when G4ODBMS=1. -# gmake must be recursively called with MAKE_DFILES=1. -# # Make $(G4TARGET) executable. @@ -338,20 +299,37 @@ else -c $(OUT_OBJ)$(G4TMPDIR)/exe/$(G4TARGET).o $(G4TARGET).cc endif -ifdef G4ODBMS - GPPFLAGS := "-MM" -else - GPPFLAGS := "-M" -endif +GPPFLAGS := "-M" # Make the $(G4TARGET).d file and include it. + +# The ideas for this come from the GNU Make Manual, Section 4.12, +# Generating Prerequisites Automatically. The g++ compiler has an +# option -M or -MM to write to standard output a list of dependencies +# based on the #include statements. The "sed" adds the dependency +# file itself as a second target. The result is a mini-makefile which +# specifies the .o and .d files as targets which depend on all the +# files found through the #include statements. This file is then +# included, causing GNU Make to honour these dependencies. + +# The "set -e" causes the shell to exit with an error when the "g++" +# fails (otherwise it would only notice the last command in the +# pipeline, namely "sed"). GNU Make notices the error and exits +# sooner than it otherwise would (still not as soon as I expect, +# though!). Even then, an empty file is made, so "[ -s $@ ] || rm -f +# $@" removes it ([ -s filename ] gives zero exit code only if file +# exists and has a size greater than zero). This avoids making +# corrupt .d files which would play havoc with your next build. + $(G4TMPDIR)/exe/$(G4TARGET).d: $(G4TARGET).cc @if [ ! -d $(G4TMP)/$(G4SYSTEM) ] ; then mkdir $(G4TMP)/$(G4SYSTEM) ;fi @if [ ! -d $(G4TMPDIR) ] ; then mkdir $(G4TMPDIR) ;fi @if [ ! -d $(G4TMPDIR)/exe ] ; then mkdir $(G4TMPDIR)/exe ;fi @echo Making dependency for file $<... - @($(ECHO) $(G4TMPDIR)/exe/\\c ; \ - g++ $(GPPFLAGS) $(CPPFLAGS) $< ) | sed 's!$(G4TMPDIR)/exe/$*.o!& $@!' >$@ + @set -e;\ + g++ $(GPPFLAGS) $(CPPFLAGS) $< |\ + sed 's!$(G4TARGET)\.o!$(G4TMPDIR)/exe/& $@!' >$@;\ + [ -s $@ ] || rm -f $@ ifneq ($(dependencies),) -include $(dependencies) endif @@ -370,44 +348,3 @@ clean_bin: @echo Removing application $(G4TARGET) ... @rm -f ./core @rm -f $(G4BINDIR)/$(G4TARGET) - -############################+ targets for G4ODBMS +############################ -ifdef G4ODBMS - -cleandb: clean newboot - -$(G4EXAMPLE_BOOT): - @echo Copying schema file to $(G4EXAMPLE_BOOT) for FDID $(G4EXAMPLE_FDID) - @rm -f $(G4EXAMPLE_BOOT_DIR)/$(name) - @rm -f $(G4EXAMPLE_BOOT_DIR)/$(name).FDDB - @rm -f $(G4EXAMPLE_BOOT_DIR)/*.$(name).DB - @$(HEP_ODBMS_DIR)/etc/getdb $(G4SCHEMA_DIR)/G4SCHEMA \ - $(G4EXAMPLE_BOOT) $(G4SCHEMA_FDID) - -newboot: - @echo Copying schema file to $(G4EXAMPLE_BOOT) for FDID $(G4EXAMPLE_FDID) - @rm -f $(G4EXAMPLE_BOOT_DIR)/$(name) - @rm -f $(G4EXAMPLE_BOOT_DIR)/$(name).FDDB - @rm -f $(G4EXAMPLE_BOOT_DIR)/*.$(name).DB - @$(HEP_ODBMS_DIR)/etc/getdb $(G4SCHEMA_DIR)/G4SCHEMA \ - $(G4EXAMPLE_BOOT) $(G4SCHEMA_FDID) - -$(G4EXAMPLE_FD): - @echo Creating new runtime federated database $(G4EXAMPLE_BOOT) for FDID $(G4EXAMPLE_FDID) - @rm -f $(G4EXAMPLE_FD_DIR)/$(name) - @rm -f $(G4EXAMPLE_FD_DIR)/$(name).FDDB - @rm -f $(G4EXAMPLE_FD_DIR)/*.$(name).DB - @$(HEP_ODBMS_DIR)/etc/getdb $(G4EXAMPLE_BOOT) \ - $(G4EXAMPLE_FD) $(G4EXAMPLE_FDID) - -newfd: - @echo Creating new runtime federated database $(G4EXAMPLE_BOOT) for FDID $(G4EXAMPLE_FDID) - @rm -f $(G4EXAMPLE_FD_DIR)/$(name) - @rm -f $(G4EXAMPLE_FD_DIR)/$(name).FDDB - @rm -f $(G4EXAMPLE_FD_DIR)/*.$(name).DB - @$(HEP_ODBMS_DIR)/etc/getdb $(G4EXAMPLE_BOOT) \ - $(G4EXAMPLE_FD) $(G4EXAMPLE_FDID) - -endif -############################- targets for G4ODBMS -############################ - diff --git a/config/common.gmk b/config/common.gmk index ad7697096b..d73d80f2d2 100644 --- a/config/common.gmk +++ b/config/common.gmk @@ -1,12 +1,9 @@ -# $Id: common.gmk,v 1.30 2001/06/25 10:58:51 morita Exp $ +# $Id: common.gmk,v 1.34 2002/12/04 08:36:14 gcosmo Exp $ # ---------------------------------------------------------------- # Common part of GNUmakefile for libraries. John Allison, 5/7/95. # ---------------------------------------------------------------- # Libraries are created according to G4SYSTEM. G.Cosmo, 11/6/96. # Introduced G4LIBDIR and G4TMPDIR. G.Cosmo, 23/6/98. -# Introduced G4SCHEMA_HEADER_DIR and G4SCHEMA_SRC_DIR. Y.Morita, 16/11/99. -# Actual targets splitted into common_kernel.gmk and common_objy.gmk, -# Y.Morita, 15/3/01. ifndef G4LIBDIR G4LIBDIR := $(G4LIB)/$(G4SYSTEM) @@ -26,33 +23,15 @@ ifneq ($(G4LIB_BUILD_STATIC),) endif # GPPFLAGS is defined here to make the .d file(s) and include it(them). -# This variable is actually used in common_kernel.gmk and common_objy.gmk. -ifdef G4ODBMS - GPPFLAGS := "-MM" -else - GPPFLAGS := "-M" -endif +GPPFLAGS := "-M" ############################################################################### # # Actual gmake targets. # -# -# Target "lib" requires dependency files when G4ODBMS=1. -# gmake must be recursively called with MAKE_DFILES=1. -# - -ifdef G4ODBMS -lib: - @if [ ! -d $(G4TMPDIR) ] ; then mkdir -p $(G4TMPDIR) ;fi - @(MAKE_DFILES=1; export MAKE_DFILES; $(MAKE) lib_d) - -lib_d: $(g4libraries_to_build) -else lib: $(g4libraries_to_build) -endif ifneq ($(G4LIB_BUILD_SHARED),) # Make shared library. @@ -76,42 +55,56 @@ endif ############################################################################### # -# Actual targets for .o, .d files and others are defined in -# common_kernel.gmk and common_objy.gmk. +# Actual targets for .o, .d files # -ifndef G4ODBMS - - include $(G4INSTALL)/config/common_kernel.gmk +$(G4TMPDIR)/%.o: src/%.cc +ifdef CPPVERBOSE + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ)$(G4TMPDIR)/$(*F).o src/$*.cc else - - include $(G4INSTALL)/config/common_objy.gmk - + @echo Compiling $*.cc ... + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ)$(G4TMPDIR)/$(*F).o src/$*.cc endif -############################################################################### + +# .PHONY targets are executed regardless of time-stamp of any file of +# same name. +.PHONY: all obj lib clean clean_libs includes + +obj: $(G4TMPDIR)/obj.last # Touch the versioning file -$(G4TMPDIR)/obj.last: $(objects) $(schema_o) +$(G4TMPDIR)/obj.last: $(objects) @touch $@ # Make the .d file(s) and include it(them). -# g++ -MM (or -M) is good at this, except it forgets the subdirectory -# (hence the use of $G4TMP/). -# schema_hh and schema_ref_hh are defined in common_objy.gmk. -$(G4TMPDIR)/%.d: src/%.cc $(schema_hh) $(schema_ref_hh) +# The ideas for this come from the GNU Make Manual, Section 4.12, +# Generating Prerequisites Automatically. The g++ compiler has an +# option -M or -MM to write to standard output a list of dependencies +# based on the #include statements. The "sed" adds the dependency +# file itself as a second target. The result is a mini-makefile which +# specifies the .o and .d files as targets which depend on all the +# files found through the #include statements. This file is then +# included, causing GNU Make to honour these dependencies. + +# The "set -e" causes the shell to exit with an error when the "g++" +# fails (otherwise it would only notice the last command in the +# pipeline, namely "sed"). GNU Make notices the error and exits +# sooner than it otherwise would (still not as soon as I expect, +# though!). Even then, an empty file is made, so "[ -s $@ ] || rm -f +# $@" removes it ([ -s filename ] gives zero exit code only if file +# exists and has a size greater than zero). This avoids making +# corrupt .d files which would play havoc with your next build. + +$(G4TMPDIR)/%.d: src/%.cc @echo Making dependency for file $< ... @if [ ! -d $(G4TMPDIR) ] ; then mkdir -p $(G4TMPDIR) ;fi - @($(ECHO) $(G4TMPDIR)/\\c ; \ - g++ $(GPPFLAGS) $(CPPFLAGS) $< ) | sed 's!$(G4TMPDIR)/$*.o!& $@!' >$@ + @set -e;\ + g++ $(GPPFLAGS) $(CPPFLAGS) $< |\ + sed 's!$*\.o!$(G4TMPDIR)/& $@!' >$@;\ + [ -s $@ ] || rm -f $@ ifneq ($(dependencies),) -ifndef G4ODBMS -include $(dependencies) -else -ifdef MAKE_DFILES --include $(dependencies) -endif -endif endif # @@ -138,9 +131,6 @@ clean: @echo Cleaning up ... @rm -f $(G4LIBDIR)/lib$(name).a @rm -f $(G4LIBDIR)/lib$(name).$(SHEXT) -ifdef schema_hh - @rm -f $(schema_hh) $(schema_ref_hh) -endif @rm -rf $(G4TMPDIR) endif @@ -151,4 +141,3 @@ clean_libs: @if [ -f $(G4LIBDIR)/lib$(name).$(SHEXT) ] ; then \ $(ECHO) Removing library lib$(name).$(SHEXT) ... ; \ $(RM) -f $(G4LIBDIR)/lib$(name).$(SHEXT) ; fi - diff --git a/config/common_kernel.gmk b/config/common_kernel.gmk deleted file mode 100644 index bc406f1a23..0000000000 --- a/config/common_kernel.gmk +++ /dev/null @@ -1,20 +0,0 @@ -# $Id: common_kernel.gmk,v 1.3 2001/06/21 17:48:33 morita Exp $ -# ---------------------------------------------------------------- -# Common part of GNUmakefile for libraries. John Allison, 5/7/95. -# ---------------------------------------------------------------- -# Splitted from common.gmk for transient part of G4. Y.Morita, 15/3/01. - -$(G4TMPDIR)/%.o: src/%.cc -ifdef CPPVERBOSE - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ)$(G4TMPDIR)/$(*F).o src/$*.cc -else - @echo Compiling $*.cc ... - @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ)$(G4TMPDIR)/$(*F).o src/$*.cc -endif - -# .PHONY targets are executed regardless of time-stamp of any file of -# same name. -.PHONY: all obj lib clean clean_libs includes - -obj: $(G4TMPDIR)/obj.last - diff --git a/config/common_objy.gmk b/config/common_objy.gmk deleted file mode 100644 index 43c5fb5e4b..0000000000 --- a/config/common_objy.gmk +++ /dev/null @@ -1,105 +0,0 @@ -# $Id: common_objy.gmk,v 1.3 2001/06/22 15:09:25 gunter Exp $ -# ---------------------------------------------------------------- -# Common part of GNUmakefile for libraries. John Allison, 5/7/95. -# ---------------------------------------------------------------- -# Splitted from common.gmk for persistency part of G4. Y.Morita, 15/3/01. - -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifdef G4ODBMS_INSTALLATION - G4_SCHEMA_NAME := -schema Geant4 -else - G4_SCHEMA_NAME := -endif -G4SCHEMA_HEADER_DIR := $(G4TMPDIR) - -G4DDLX := ooddlx -notitle $(G4_SCHEMA_NAME) -G4DDLX_FLAGS += -header_suffix .hh -ref_suffix _ref.hh -c++_suffix _ddl.cc - -schema_ddl := $(wildcard include/*.ddl) -schema_hh := $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%.hh,$(schema_ddl)) -schema_ref_hh := $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%_ref.hh,$(schema_ddl)) -schema_cc := $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%_ddl.cc,$(schema_ddl)) -schema_o := $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%_ddl.o ,$(schema_ddl)) - -# output of ooddlx in G4TMPDIR (.hh, _ref.hh, _ddl.cc) -# -temporaries := $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%.hh,$(schema_ddl)) - -# output of ooddlx in the current directory (if the process does not finish) -# -temporaries2 := $(patsubst include/%.ddl,%.hh,$(schema_ddl)) - -temporaries += $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%_ddl.cc,$(schema_ddl)) \ - $(patsubst include/%.ddl,$(G4SCHEMA_HEADER_DIR)/%_ref.hh,$(schema_ddl)) -temporaries2 += $(patsubst include/%.ddl,%_ddl.cc,$(schema_ddl)) \ - $(patsubst include/%.ddl,%_ref.hh,$(schema_ddl)) -objects += $(patsubst include/%.ddl,$(G4TMPDIR)/%_ddl.o,$(schema_ddl)) - -############################################################################### -# -# Actual target. -# - -# Make the .o files. -$(G4TMPDIR)/%.o: src/%.cc $(G4TMPDIR)/%.d $(G4OODDLX_BOOT) -ifdef CPPVERBOSE - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ) $@ $< -else - @echo Compiling $*.cc ... - @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ) $@ $< -endif - -$(G4TMPDIR)/%_ddl.o: $(G4SCHEMA_HEADER_DIR)/%_ddl.cc \ - $(G4SCHEMA_HEADER_DIR)/%.hh \ - $(G4SCHEMA_HEADER_DIR)/%_ref.hh \ - $(G4TMPDIR)/%.d $(G4OODDLX_BOOT) -ifdef CPPVERBOSE - $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ) $@ $< -else - @echo Compiling $*.cc ... - @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(OUT_OBJ) $@ $< -endif - -# Make the temporary files. -.PRECIOUS: $(G4SCHEMA_HEADER_DIR)/%_ddl.cc $(G4SCHEMA_HEADER_DIR)/%.hh \ - $(G4SCHEMA_HEADER_DIR)/%_ref.hh - -$(G4SCHEMA_HEADER_DIR)/%_ddl.cc \ -$(G4SCHEMA_HEADER_DIR)/%.hh \ -$(G4SCHEMA_HEADER_DIR)/%_ref.hh: include/%.ddl $(G4OODDLX_BOOT) -ifndef G4OODDLX_BOOT - @echo G4OODDLX_BOOT is not defined. Stop. - exit 1 -endif - @if [ ! -d $(G4TMPDIR) ] ; then mkdir -p $(G4TMPDIR) ;fi - @if [ ! -d $(G4SCHEMA_HEADER_DIR) ] ; then mkdir -p $(G4SCHEMA_HEADER_DIR) ;fi -ifdef CPPVERBOSE - (cd $(G4SCHEMA_HEADER_DIR) ; \ - $(G4DDLX) $(G4DDLX_FLAGS) $(CPPFLAGS) $(PWD)/$< $(G4OODDLX_BOOT) ) -else - @echo Preprocessing $< ... - @(cd $(G4SCHEMA_HEADER_DIR) ; \ - $(G4DDLX) $(G4DDLX_FLAGS) $(CPPFLAGS) $(PWD)/$< $(G4OODDLX_BOOT) ) -endif - -# .PHONY targets are executed regardless of time-stamp of any file of -# same name. -.PHONY: all obj lib clean clean_libs includes - -obj: $(G4TMPDIR)/obj.last - -$(schema_hh): $(schema_ddl) - -install_schema: - @echo installing schema header files ... - -@(cp -f $(G4TMPDIR)/*.hh $(G4SCHEMA_INCLUDE)/ || \ - echo " schema header file does not exist, so ignore the error message...") - -$(G4SCHEMA_BOOT): - @rm -f $(G4SCHEMA_DIR)/G4SCHEMA - @rm -f $(G4SCHEMA_DIR)/G4SCHEMA.FDDB - @echo Copying schema file to $(G4SCHEMA_DIR) for FDID $(G4SCHEMA_FDID) - @$(HEP_ODBMS_DIR)/etc/getdb $(HEP_ODBMS_DIR)/schema/HEP_BASE \ - $(G4SCHEMA_BOOT) $(G4SCHEMA_FDID) - diff --git a/config/globlib.gmk b/config/globlib.gmk index 2b87d8b64a..fecb6f261f 100644 --- a/config/globlib.gmk +++ b/config/globlib.gmk @@ -1,4 +1,4 @@ -# $Id: globlib.gmk,v 1.18 2001/06/26 02:16:10 morita Exp $ +# $Id: globlib.gmk,v 1.19 2002/11/25 12:10:44 gcosmo Exp $ # -------------------------------------------------------------- # Script for compound libraries. Gabriele Cosmo, 25/6/98. # -------------------------------------------------------------- @@ -13,15 +13,10 @@ G4LIBDIR = $(G4LIB)/$(G4SYSTEM) .PHONY : all glob global objs includes clean clean_libs wipe_libs -all: makesub $(G4SCHEMA_BOOT) +all: makesub makesub: @for dir in $(SUBDIRS); do (cd $$dir && $(MAKE)); done -ifdef G4ODBMS - @echo Copying tmp schema header from G4TMPDIR to $(G4SCHEMA_INCLUDE) - @rm -f $(G4SCHEMA_INCLUDE)/*.hh - @for dir in $(SUBDIRS); do (cd $$dir && $(MAKE) install_schema); done -endif g4libraries_to_build:= @@ -100,9 +95,6 @@ objs: includes:: @for dir in $(SUBDIRS); do (cd $$dir && $(MAKE) $@ ); done -ifdef G4ODBMS - -@cp -p $(G4SCHEMA_INCLUDE)/*.hh $(G4INCLUDE)/ -endif wipe_libs: @for lib in $(SUBLIBS); do (rm -f $(G4LIBDIR)/lib$$lib.a); done diff --git a/config/liblist.c b/config/liblist.c index a780ead1ab..6c1c88b07d 100644 --- a/config/liblist.c +++ b/config/liblist.c @@ -1,4 +1,4 @@ -/* $Id: liblist.c,v 1.14 2002/05/03 12:59:08 gcosmo Exp $ */ +/* $Id: liblist.c,v 1.17 2002/11/22 11:53:10 gcosmo Exp $ */ /* Given a "libname.map" file on standard input and a list or directory @@ -9,7 +9,9 @@ of .d dependency files liblist produces: original libname.map file, then reordered according to the dependencies found in the .d files. This option is used for compiling the file libname.map from all the dependencies. -The .d files are specfied in the argument(s). + c) with -m option, the whole existing libraries list ordered + according to the libname.map, where libraries are placed in . +The .d files are specified in the argument(s). The libname.map is on standard input. Usage: @@ -18,8 +20,11 @@ Usage: liblist -l *.d < libname.map liblist -ld < libname.map liblist -l -d < libname.map -where is a directory name of a directory which is recursively -searched for dependency files. + liblist -m < libname.map +where: + is a directory name of a directory which is recursively + searched for dependency files + is the path where libraries are located Frank Behner, John Allison 13th February 1999. */ @@ -103,7 +108,13 @@ char** parsedir(char *directory,int *argc) } } else - perror(" No status"); + { + fprintf + (stderr, + " No status - perhaps file %s does not exist.\n", + directory); + exit(1); + } } if(buffer) free(buffer); @@ -116,9 +127,10 @@ char** parsedir(char *directory,int *argc) int main (int argc, char** argv) { char static buffer[BUFSIZE],*bufferPtr,workbuf[256]; - char *ptr,*p,**pp,**pp1,**pp2,*directory=0; + char *ptr,*p,**pp,**pp1,**pp2,*directory=0,*libpath=0; char **rargv; - int i,optl=0,swapping,c,rargc; + char libname[128]; + int i,optl=0,optm=0,swapping,c,rargc; FILE *fp; #if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) @@ -138,7 +150,7 @@ int main (int argc, char** argv) { struct libmap_ *libmap=0,*libmapPtr=0,*libmapPtr1=0,*libmapPtr2=0, *prevPtr1,*prevPtr2,*tmpp,*userLibmapPtr; - while((c=getopt(argc,argv,"ld:"))!=EOF) + while((c=getopt(argc,argv,"ld: m:"))!=EOF) { switch(c) { @@ -148,6 +160,10 @@ int main (int argc, char** argv) { case 'd': directory=strdup(optarg); break; + case 'm': + optm=1; + libpath=strdup(optarg); + break; } } @@ -172,8 +188,10 @@ int main (int argc, char** argv) { } else { - fprintf(stderr," ERROR: If you specify a directory don't also specify files\n"); - exit(-1); + fprintf + (stderr, + " ERROR: If you specify a directory don't also specify files\n"); + exit(1); } } @@ -215,7 +233,7 @@ int main (int argc, char** argv) { libmapPtr->uses=(char**)calloc(NLIBMAX,sizeof(char*)); /* If option -l not specified, fill uses list... */ - if(!optl) + if(!optl && !optm) { pp=libmapPtr->uses; if(ptr) @@ -230,34 +248,39 @@ int main (int argc, char** argv) { } } - /* Get directory name... */ - gets(buffer); - ptr=strtok(buffer,"/"); - if(!ptr) - { - fprintf(stderr," ERROR: \"/\" before \"source\" expected.\n"); - exit(1); - } - while(ptr&&strcmp (ptr,"source"))ptr=strtok(NULL,"/"); - ptr=strtok(NULL,"/"); - if(!ptr) - { - fprintf(stderr," ERROR: \"source\" expected.\n"); - exit(1); - } - libmapPtr->trigger=(char*)malloc(TRIGSIZE); - strcpy(libmapPtr->trigger,ptr); - ptr=strtok(NULL,"/"); - while(ptr&&strcmp(ptr,"GNUmakefile")) - { - strcat(libmapPtr->trigger,"/"); - strcat(libmapPtr->trigger,ptr); - ptr=strtok(NULL,"/"); - } - if(!ptr) - { - fprintf(stderr," ERROR: \"source//GNUmakefile\" expected.\n"); - exit(1); + if(!optm) + { + /* Get directory name... */ + gets(buffer); + ptr=strtok(buffer,"/"); + if(!ptr) + { + fprintf(stderr," ERROR: \"/\" before \"source\" expected.\n"); + exit(1); + } + while(ptr&&strcmp (ptr,"source"))ptr=strtok(NULL,"/"); + ptr=strtok(NULL,"/"); + if(!ptr) + { + fprintf(stderr," ERROR: \"source\" expected.\n"); + exit(1); + } + libmapPtr->trigger=(char*)malloc(TRIGSIZE); + strcpy(libmapPtr->trigger,ptr); + ptr=strtok(NULL,"/"); + while(ptr&&strcmp(ptr,"GNUmakefile")) + { + strcat(libmapPtr->trigger,"/"); + strcat(libmapPtr->trigger,ptr); + ptr=strtok(NULL,"/"); + } + if(!ptr) + { + fprintf + (stderr, + " ERROR: \"source//GNUmakefile\" expected.\n"); + exit(1); + } } } @@ -310,69 +333,72 @@ int main (int argc, char** argv) { userLibmapPtr=0; } - /* Look for a "used" library and add it to the "user" uses list... */ - bufferPtr=strtok(NULL,"\n"); /* Start *after* ":". */ - if (!bufferPtr) + if(!optm) { - fprintf(stderr," WARNING: It seems there is nothing after \':\' in dependency file %s.\n", rargv[i]); - } - else { - do - { - for(libmapPtr=libmap;libmapPtr;libmapPtr=libmapPtr->next) - { - /* Look for trigger string. */ - strcpy(workbuf,libmapPtr->trigger); - strcat(workbuf,"/include"); - ptr=strstr(bufferPtr,workbuf); - if(ptr && (userLibmapPtr != libmapPtr)) - { - libmapPtr->used=1; - if(userLibmapPtr) - { - for(pp=userLibmapPtr->uses;*pp;pp++) - { - if(strcmp(*pp,libmapPtr->lib)==0)break; - } - if(!*pp)*pp=libmapPtr->lib; - } - } - /* Also look for library name in case header files are - placed in temporary directories under a subdirectory - with the same name as the library name. This can - happen with Objectivity which makes header files - from .ddl files and places them in a temporary - directory. */ - strcpy(workbuf,libmapPtr->lib); - strcat(workbuf,"/"); - ptr=strstr(bufferPtr,workbuf); - if(ptr && (userLibmapPtr != libmapPtr)) - { - libmapPtr->used=1; - if(userLibmapPtr) - { - for(pp=userLibmapPtr->uses;*pp;pp++) - { - if(strcmp(*pp,libmapPtr->lib)==0)break; - } - if(!*pp)*pp=libmapPtr->lib; - } - } - } - fgets(buffer,BUFSIZE,fp); - bufferPtr=buffer; + /* Look for a "used" library and add it to the "user" uses list... */ + bufferPtr=strtok(NULL,"\n"); /* Start *after* ":". */ + if (!bufferPtr) + { + fprintf(stderr," WARNING: It seems there is nothing after \':\' in dependency file %s.\n", rargv[i]); + } + else { + do + { + for(libmapPtr=libmap;libmapPtr;libmapPtr=libmapPtr->next) + { + /* Look for trigger string. */ + strcpy(workbuf,libmapPtr->trigger); + strcat(workbuf,"/include"); + ptr=strstr(bufferPtr,workbuf); + if(ptr && (userLibmapPtr != libmapPtr)) + { + libmapPtr->used=1; + if(userLibmapPtr) + { + for(pp=userLibmapPtr->uses;*pp;pp++) + { + if(strcmp(*pp,libmapPtr->lib)==0)break; + } + if(!*pp)*pp=libmapPtr->lib; + } + } + /* Also look for library name in case header files are + placed in temporary directories under a subdirectory + with the same name as the library name. This can + happen with Objectivity which makes header files + from .ddl files and places them in a temporary + directory. */ + strcpy(workbuf,libmapPtr->lib); + strcat(workbuf,"/"); + ptr=strstr(bufferPtr,workbuf); + if(ptr && (userLibmapPtr != libmapPtr)) + { + libmapPtr->used=1; + if(userLibmapPtr) + { + for(pp=userLibmapPtr->uses;*pp;pp++) + { + if(strcmp(*pp,libmapPtr->lib)==0)break; + } + if(!*pp)*pp=libmapPtr->lib; + } + } + } + fgets(buffer,BUFSIZE,fp); + bufferPtr=buffer; #if defined ( _WIN32 ) || defined ( __CYGWIN__ ) || defined ( __CYGWIN32__ ) - while ( ptr=strchr(buffer,'\\') ) *ptr='/'; + while ( ptr=strchr(buffer,'\\') ) *ptr='/'; - while (ntg4tmp1 && (ptr=strstr(buffer,ntg4tmp1)) ) - { - for(nti=0;ntitrigger); } } + else if (optm) + { + /* Write out full library list... */ + for(libmapPtr=libmap;libmapPtr;libmapPtr=libmapPtr->next) + { + /* Check existance of libraries and print out only installed ones */ + sprintf(libname, "%s/lib%s.a", libpath, libmapPtr->lib); + if (access(libname,R_OK)) + { + sprintf(libname, "%s/lib%s.so", libpath, libmapPtr->lib); + if (!access(libname,R_OK)) + { + printf("-l%s ",libmapPtr->lib); + } + } + else + { + printf("-l%s ",libmapPtr->lib); + } + libmapPtr=libmapPtr->next; + } + } else { /* Add dependent libraries... */ diff --git a/config/scripts/GNUmakefile b/config/scripts/GNUmakefile new file mode 100644 index 0000000000..50d818d32d --- /dev/null +++ b/config/scripts/GNUmakefile @@ -0,0 +1,23 @@ +# $Id: GNUmakefile,v 1.1 2002/12/13 15:47:31 stesting Exp $ +# -------------------------------------------------------------- +# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. +# -------------------------------------------------------------- + +name := Marker +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../.. +endif + +.PHONY: all + +all: lib bin + +include $(G4INSTALL)/config/scripts/binmake.gmk + +CXXFLAGS_FINAL := $(CXXFLAGS) +INCFLAGS_FINAL := $(INCFLAGS) +LDLIBS_FINAL := $(LDLIBS) +#LDFLAGS_FINAL := $(LDFLAGS) diff --git a/config/scripts/binmake.gmk b/config/scripts/binmake.gmk new file mode 100644 index 0000000000..3fb8a80a78 --- /dev/null +++ b/config/scripts/binmake.gmk @@ -0,0 +1,354 @@ +# $Id: binmake.gmk,v 1.1 2002/12/13 15:47:27 stesting Exp $ +# ---------------------------------------------------------- +# Script defining rules and paths for making binaries. +# First implementation: Gabriele Cosmo, 25/06/1998. +# ---------------------------------------------------------- + +ifndef LDFLAGS + include $(G4INSTALL)/config/architecture.gmk +endif + +G4LIBDIR := $(G4LIB)/$(G4SYSTEM) + +# Define variable checking for existence of centrally installed headers. +# If check will be true, avoid explicit definition of paths to INCFLAGS. +# +G4INCLUDE_EXEC := $(shell [ -r $(G4INCLUDE)/globals.hh ] && echo 1) + +include $(G4INSTALL)/config/G4UI_USE.gmk +include $(G4INSTALL)/config/G4VIS_USE.gmk +include $(G4INSTALL)/config/interactivity.gmk +include $(G4INSTALL)/config/analysis.gmk + +ifndef G4LIB_USE_GRANULAR + GLOBALLIBS := 1 + ifndef GLOBALLIBS + GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes) + SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes) + endif +endif + +ifndef SHAREDLIBS + SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4globman.$(SHEXT) && echo yes) +endif + +ifndef INCFLAGS + ifeq ($(G4INCLUDE_EXEC),1) + INCFLAGS := -I$(G4INCLUDE) + else + INCFLAGS := \ + -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/run/include \ + -I$(G4BASE)/materials/include \ + -I$(G4BASE)/parameterisations/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/decay/include \ + -I$(G4BASE)/processes/optical/include \ + -I$(G4BASE)/processes/transportation/include \ + -I$(G4BASE)/processes/parameterisation/include \ + -I$(G4BASE)/processes/photolepton_hadron/include \ + -I$(G4BASE)/processes/electromagnetic/standard/include \ + -I$(G4BASE)/processes/electromagnetic/muons/include \ + -I$(G4BASE)/processes/electromagnetic/utils/include \ + -I$(G4BASE)/processes/electromagnetic/xrays/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ + -I$(G4BASE)/processes/hadronic/management/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ + -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ + -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \ + -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \ + -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ + -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ + -I$(G4BASE)/processes/hadronic/models/generator/high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/generator/kinetic_model/include \ + -I$(G4BASE)/processes/hadronic/models/generator/management/include \ + -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ + -I$(G4BASE)/processes/hadronic/models/generator/quark_gluon_string/include \ + -I$(G4BASE)/processes/hadronic/models/generator/string_common/include \ + -I$(G4BASE)/processes/hadronic/models/generator/string_fragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/generator/scattering/include \ + -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/low_energy/include \ + -I$(G4BASE)/processes/hadronic/models/neutron_hp/include \ + -I$(G4BASE)/processes/hadronic/models/isotope_production/include \ + -I$(G4BASE)/processes/hadronic/models/radiative_decay/include \ + -I$(G4BASE)/processes/hadronic/models/leading_particle/include \ + -I$(G4BASE)/processes/hadronic/stopping/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/solids/CSG/include \ + -I$(G4BASE)/geometry/solids/specific/include \ + -I$(G4BASE)/geometry/solids/BREPS/include \ + -I$(G4BASE)/geometry/solids/Boolean/include \ + -I$(G4BASE)/geometry/solids/STEP/include \ + -I$(G4BASE)/geometry/solids/STEPinterface/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/verification/include \ + -I$(G4BASE)/geometry/magneticfield/include \ + -I$(G4BASE)/geometry/biasing/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/tracking/include \ + -I$(G4BASE)/digits+hits/detector/include \ + -I$(G4BASE)/digits+hits/hits/include \ + -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/persistency/include \ + -I$(G4BASE)/readout/include \ + -I$(G4BASE)/event/include \ + -I$(G4BASE)/graphics_reps/include \ + -I$(G4BASE)/intercoms/include + ifdef G4USE_G3TOG4 + INCFLAGS += -I$(G4BASE)/g3tog4/include + endif + endif +endif + +CPPFLAGS_FINAL := $(CPPFLAGS) + +CPPFLAGS += $(INCFLAGS) +LDFLAGS += -L$(G4LIBDIR) + +G4TMPDIR := $(G4TMP)/$(G4SYSTEM)/$(G4TARGET) +G4BINDIR := $(G4BIN)/$(G4SYSTEM) + +LDFLAGS_FINAL := $(LDFLAGS) + +ifdef G4EXLIB + G4LIBDIR := $(G4TMPDIR) + LDFLAGS += -L$(G4LIBDIR) + ifdef SHAREDLIBS + ifdef G4RUNPATHOPTION +# For the example dependent directory, keep the +# path to the shared lib in the executable. + LDFLAGS += $(G4RUNPATHOPTION)$(G4LIBDIR) + endif + endif + include $(G4INSTALL)/config/common.gmk +endif + +ifdef LDLIBS + USER_DEFINED_LDLIBS := 1 +endif + +# Because of the script for granular libraries which replaces part of LDLIBS +# and because of the way user defined LDLIBS was augmented historically I +# have split LDLIBS into 4 parts... +# +ifndef USER_DEFINED_LDLIBS + +# LDLIBS1 contains the very high level libraries... +# +ifdef G4EXLIB + LDLIBS1 := -l$(G4TARGET) +endif +LDLIBS1 += $(EXTRALIBS) + +# VISLIBS and UILIBS are now handled by the granular library script... +# +ifdef GLOBALLIBS + LDLIBS1 += $(VISLIBS) $(UILIBS) -lG4persistency + + ifdef G4USE_G3TOG4 + LDLIBS1 += -lG3toG4 + endif + + LDLIBS2 := -lG4readout \ + -lG4run \ + -lG4event \ + -lG4tracking \ + -lG4parmodels \ + -lG4processes \ + -lG4digits+hits \ + -lG4track \ + -lG4particles \ + -lG4geometry \ + -lG4materials \ + -lG4graphics_reps \ + -lG4intercoms \ + -lG4global +else +# The next lines specifically should read LDLIBS2 = , not LDLIBS2 :=, so +# that it is not expanded until the directory G4TMPDIR is created. + ifeq ($(G4INCLUDE_EXEC),1) + LDLIBS2 = $(shell \ + G4TMP=$(G4TMP); export G4TMP; \ + if [ \( -f $(G4LIB)/$(G4SYSTEM)/liblist \ + -a -f $(G4LIB)/$(G4SYSTEM)/libname.map \) ]; then \ + $(G4LIB)/$(G4SYSTEM)/liblist \ + -m $(G4LIB)/$(G4SYSTEM) \ + < $(G4LIB)/$(G4SYSTEM)/libname.map; fi) + else + LDLIBS2 = $(shell \ + G4TMP=$(G4TMP); export G4TMP; \ + if [ \( -f $(G4LIB)/$(G4SYSTEM)/liblist \ + -a -f $(G4LIB)/$(G4SYSTEM)/libname.map \) ]; then \ + $(G4LIB)/$(G4SYSTEM)/liblist \ + -d $(G4TMPDIR) \ + < $(G4LIB)/$(G4SYSTEM)/libname.map; fi) +# Warning: do not add to LDLIBS2 with += because this causes it to be +# expanded too soon. Hence extra libraries must have a different name... +# Extra libraries to resolve remaining circular dependencies... +# LDLIBS2EXTRA = + endif +endif + +# LDLIBS3 contains the first set of low level libraries... +# +LDLIBS3 += $(INTYLIBS) +LDLIBS3 += $(ANALYSISLIBS) + +endif # ifndef USER_DEFINED_LDLIBS + +# LDLIBS4 contains the next set of low level libraries which historically +# (why?) the user is not supposed to be able to define... +# +LDLIBS4 += $(LOADLIBS) + +# Finally assemble libraries... +# +ifdef USER_DEFINED_LDLIBS + LDLIBS_PREFINAL := $(LDLIBS) +else +# Again, do not use := or +=. See note on LDLIBS2 above. + LDLIBS_PREFINAL = $(LDLIBS1) $(LDLIBS2) $(LDLIBS2EXTRA) $(LDLIBS3) +endif +LDLIBS_PREFINAL += $(LDLIBS4) + +ifeq ($(G4SYSTEM),WIN32-VC) + WIN32TMP := $(patsubst -L%,$(LIB_PATH)%,$(LDFLAGS)) + LDFLAGS = $(patsubst /,$(PATH_DEL),$(WIN32TMP)) + LDLIBS = $(patsubst -l%,lib%.a,$(LDLIBS_PREFINAL)) +else + LDLIBS = $(LDLIBS_PREFINAL) +endif + +ifdef transform-RPath +#invoke system specific transformation of +include $(G4INSTALL)/config/sys/$(G4SYSTEM)-runpath.gmk +endif + +sources := $(wildcard $(G4TARGET).cc) +objects := $(patsubst %.cc,$(G4TMPDIR)/exe/%.o,$(sources)) +dependencies := $(patsubst %.cc,$(G4TMPDIR)/exe/%.d,$(sources)) + +LINK_DEPENDENCIES := $(G4TMPDIR)/exe/obj.last $(EXTRA_LINK_DEPENDENCIES) + +.PHONY: bin clean clean_bin debug + +# Make $(G4TARGET) executable. + +bin: $(G4BINDIR)/$(G4TARGET) + +$(G4BINDIR)/$(G4TARGET): $(LINK_DEPENDENCIES) +ifndef USER_DEFINED_LDLIBS + ifndef GLOBALLIBS + @echo "Using granular libraries ..." + @if [ ! \( -f $(G4LIB)/$(G4SYSTEM)/liblist \ + -a -f $(G4LIB)/$(G4SYSTEM)/libname.map \) ]; then \ + echo "ERROR: No liblist program or library map file."; \ + echo " These are needed for building with granular"; \ + echo " libraries."; \ + echo ' cd $$G4INSTALL/source'; \ + echo " gmake"; \ + echo " or if you are sure you have already made all the"; \ + echo " granular libraries:"; \ + echo " gmake libmap"; \ + exit 1; fi + else + @echo "Using global libraries." + endif +endif + @if [ ! -d $(G4BINDIR) ] ; then mkdir $(G4BINDIR) ;fi +ifdef CPPVERBOSE + $(CXX) $(CXXFLAGS) $(CPPFLAGS) \ + -o $(G4BINDIR)/$(G4TARGET) $(objects) $(LDFLAGS) \ + $(LDLIBS) +else + @echo Linking $(G4TARGET) ... + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) \ + -o $(G4BINDIR)/$(G4TARGET) $(objects) $(LDFLAGS) \ + $(LDLIBS) +endif + +# Touch the versioning file +ifdef G4EXLIB +$(G4TMPDIR)/exe/obj.last: lib $(objects) +else +$(G4TMPDIR)/exe/obj.last: $(objects) +endif + @touch $@ + +# Make the $(G4TARGET).o file. +$(G4TMPDIR)/exe/$(G4TARGET).o : $(G4TARGET).cc +ifdef CPPVERBOSE + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(APPFLAGS) \ + -c $(OUT_OBJ)$(G4TMPDIR)/exe/$(G4TARGET).o $(G4TARGET).cc +else + @echo Compiling $(G4TARGET).cc ... + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(APPFLAGS) \ + -c $(OUT_OBJ)$(G4TMPDIR)/exe/$(G4TARGET).o $(G4TARGET).cc +endif + +GPPFLAGS := "-M" + +# Make the $(G4TARGET).d file and include it. + +# The ideas for this come from the GNU Make Manual, Section 4.12, +# Generating Prerequisites Automatically. The g++ compiler has an +# option -M or -MM to write to standard output a list of dependencies +# based on the #include statements. The "sed" adds the dependency +# file itself as a second target. The result is a mini-makefile which +# specifies the .o and .d files as targets which depend on all the +# files found through the #include statements. This file is then +# included, causing GNU Make to honour these dependencies. + +# The "set -e" causes the shell to exit with an error when the "g++" +# fails (otherwise it would only notice the last command in the +# pipeline, namely "sed"). GNU Make notices the error and exits +# sooner than it otherwise would (still not as soon as I expect, +# though!). Even then, an empty file is made, so "[ -s $@ ] || rm -f +# $@" removes it ([ -s filename ] gives zero exit code only if file +# exists and has a size greater than zero). This avoids making +# corrupt .d files which would play havoc with your next build. + +$(G4TMPDIR)/exe/$(G4TARGET).d: $(G4TARGET).cc + @if [ ! -d $(G4TMP)/$(G4SYSTEM) ] ; then mkdir $(G4TMP)/$(G4SYSTEM) ;fi + @if [ ! -d $(G4TMPDIR) ] ; then mkdir $(G4TMPDIR) ;fi + @if [ ! -d $(G4TMPDIR)/exe ] ; then mkdir $(G4TMPDIR)/exe ;fi + @echo Making dependency for file $<... + @set -e;\ + g++ $(GPPFLAGS) $(CPPFLAGS) $< |\ + sed 's!$(G4TARGET)\.o!$(G4TMPDIR)/exe/& $@!' >$@;\ + [ -s $@ ] || rm -f $@ +ifneq ($(dependencies),) +-include $(dependencies) +endif + +clean: + @echo Cleaning up ... + @rm -f ./core + @rm -rf $(G4TMPDIR) + @rm -f $(G4LIBDIR)/lib$(G4TARGET).a + @rm -f $(G4BINDIR)/$(G4TARGET) +ifdef CFRONT + @rm -rf $(G4TREP)/exec +endif + +clean_bin: + @echo Removing application $(G4TARGET) ... + @rm -f ./core + @rm -f $(G4BINDIR)/$(G4TARGET) diff --git a/config/scripts/env.csh.SH b/config/scripts/env.csh.SH index 77166fbdd3..6aecabe9cf 100755 --- a/config/scripts/env.csh.SH +++ b/config/scripts/env.csh.SH @@ -117,16 +117,6 @@ setenv G4ANALYSIS_USE 1 echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE" endif -#+ -# -# g4persistency -# -if ( X$g4use_hepodbms == Xy ) then -setenv G4USE_HEPODBMS 1 -source \$G4INSTALL/examples/extended/persistency/PersistentEx01/g4odbms_setup.csh -echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS" -endif - # # g4ui # @@ -283,6 +273,20 @@ setenv OGLHOME "$g4vis_oglhome" echo "On this machine the OGLHOME=\$OGLHOME" endif +# +# Use G3TOG4 module +# +#+ +if ( X$g4wlib_build_g3tog4 == Xy ) then +setenv G4LIB_BUILD_G3TOG4 1 +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" +endif + #+ # # g4shared diff --git a/config/scripts/env.sh.SH b/config/scripts/env.sh.SH index 56aab09179..67a0368756 100755 --- a/config/scripts/env.sh.SH +++ b/config/scripts/env.sh.SH @@ -29,7 +29,9 @@ $spitshell >env.sh <>env.sh <<'!NO!SUBS!' # G4WORKDIR # if [ $G4WORKDIR ] ; then +if [ X$g4non_display = X ] ; then echo "In your environment you have the G4WORKDIR=$G4WORKDIR" +fi else +if [ X$g4non_display = X ] ; then echo "G4WORKDIR will be set to HOME=$HOME." +fi export G4WORKDIR=$HOME fi diff --git a/config/scripts/install.sh.SH b/config/scripts/install.sh.SH index 79a12287b8..208ef9758b 100755 --- a/config/scripts/install.sh.SH +++ b/config/scripts/install.sh.SH @@ -138,17 +138,6 @@ export G4ANALYSIS_USE echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE" fi -#+ -# -# g4persistency -# -if [ X$g4use_hepodbms = Xy ] ; then -G4USE_HEPODBMS=1 -export G4USE_HEPODBMS -. \$G4INSTALL/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh -echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS" -fi - # # g4ui # @@ -330,6 +319,22 @@ export OGLHOME echo "On this machine the OGLHOME=\$OGLHOME" fi +# +# Use G3TOG4 module +# +#+ +if [ X$g4wlib_build_g3tog4 = Xy ] ; then +G4LIB_BUILD_G3TOG4=1 +export G4LIB_BUILD_G3TOG4 +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" +fi + #+ # # g4shared @@ -370,13 +375,21 @@ fi ##################################################################### +# Create GNUmakefile.db to keep ALL GNUmakefile DB :) + +if test -f \$G4INSTALL/config/scripts/GNUmakefile.db ; then +mv \$G4INSTALL/config/scripts/GNUmakefile.db \$G4LIB/\$G4SYSTEM/GNUmakefile.db.bac +fi + +$g4make -n -p -f \$G4INSTALL/config/scripts/GNUmakefile > \$G4LIB/\$G4SYSTEM/GNUmakefile.db + echo "" echo "Starting installation..." echo "" cd $g4install/source echo `pwd` -# THere is no env! +# There is no env! if [ X$g4global = Xy ] ; then $g4make global fi diff --git a/config/sys/AIX-xlC.gmk b/config/sys/AIX-xlC.gmk index 847f3d50c8..1418575c7c 100644 --- a/config/sys/AIX-xlC.gmk +++ b/config/sys/AIX-xlC.gmk @@ -1,6 +1,7 @@ # # -------- AIX ---------- !!! not supported !!! -# AIX-4.3.2 xlC +# AIX-4.3.2 xlC 6.0 + ifeq ($(G4SYSTEM),AIX-xlC) CXX := xlC ifdef G4OPTIMISE @@ -27,13 +28,8 @@ ifeq ($(G4SYSTEM),AIX-xlC) ifndef OGLLIBS OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif - CPPFLAGS += -DG4NOT_ISO_DELETES - CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_AIX_4 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS - CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) - endif + G4USE_STD_NAMESPACE := yes + CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @echo "Shared Libraries not supported on $(G4SYSTEM) diff --git a/config/sys/DEC-cxx.gmk b/config/sys/DEC-cxx.gmk index 3bc6ada1d7..a469cd3aec 100644 --- a/config/sys/DEC-cxx.gmk +++ b/config/sys/DEC-cxx.gmk @@ -1,6 +1,6 @@ # -# -------- DEC --------- -# +# -------- DEC --------- !!! not supported !!! +# OSF V4.0, cxx C++ V6.1-027 ifeq ($(G4SYSTEM),DEC-cxx) CXX := cxx ifdef G4OPTIMISE @@ -28,18 +28,9 @@ ifeq ($(G4SYSTEM),DEC-cxx) # OGLLIBS := -lMesaGLU -lMesaGL endif CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) - ifdef G4USE_OSPACE - CPPFLAGS += -DG4USE_OSPACE -DOS_OSF1_4 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING - CPPFLAGS += -DOS_NO_ALLOCATORS -D__NO_EDG_EXCEPTION_CLASSES - CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) - CXXFLAGS += -nostdnew - else - ifndef G4NO_STD_NAMESPACE - G4USE_STD_NAMESPACE := yes - CXXFLAGS += -std strict_ansi - CPPFLAGS += -DG4USE_STD_NAMESPACE - endif - endif + G4USE_STD_NAMESPACE := yes + CXXFLAGS += -std strict_ansi + CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk index 588865aaff..aa7a98d807 100644 --- a/config/sys/Darwin-g++.gmk +++ b/config/sys/Darwin-g++.gmk @@ -1,13 +1,21 @@ # -# ------ MacOS-X ------ !!! not supported !!! -# MacOS 10.1 GNU-gcc 2.92.2 +# ------ 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 +# use echo -n (there is not the echo -e option of Linux) +# # Helmut Burkhardt - CERN # ifeq ($(G4SYSTEM),Darwin-g++) - CXX := g++ +# choice of GNU compilers: + CXX := g++2 +# CXX := g++3 GNU_GCC = 1 CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC +# optionally add verbose flag +# CXXFLAGS += -v ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O @@ -33,7 +41,7 @@ ifeq ($(G4SYSTEM),Darwin-g++) FC := g77 FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore FCLIBS := -lg2c -lnsl - ECHO := /bin/echo -e + ECHO := /bin/echo -n SHEXT := so X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lSM -lICE @@ -52,9 +60,6 @@ ifeq ($(G4SYSTEM),Darwin-g++) OIVFLAGS += -I$(OIHOME)/include G4USE_STD_NAMESPACE := yes CPPFLAGS += -DG4USE_STD_NAMESPACE - ifdef G4ODBMS - G4DDLX_FLAGS += -DG4std="" - endif define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ diff --git a/config/sys/HP-aCC.gmk b/config/sys/HP-aCC.gmk index a15dc92c49..50a10ebf37 100644 --- a/config/sys/HP-aCC.gmk +++ b/config/sys/HP-aCC.gmk @@ -39,11 +39,6 @@ ifeq ($(G4SYSTEM),HP-aCC) OGLLIBS += -L/opt/graphics/common/lib -lXwindow -lhpgfx -lXhp11 -ldld endif CPPFLAGS += -DG4NOT_ISO_DELETES -DG4NO_ISO_VECDIST - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_HPUX_10_20 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS -D__HPACC_NOEH - CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) - endif define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ diff --git a/config/sys/Linux-egcs.gmk b/config/sys/Linux-egcs.gmk index 9f007322e2..204b7655f0 100644 --- a/config/sys/Linux-egcs.gmk +++ b/config/sys/Linux-egcs.gmk @@ -1,6 +1,6 @@ # -# ------ GNU/LINUX ------ egcs-1.1.2 (gcc-2.91.66) -# +# ------ GNU/LINUX ------ !!! not supported !!! +# Red-Hat 6.1, egcs-1.1.2 (gcc-2.91.66) ifeq ($(G4SYSTEM),Linux-egcs) CXX := g++ GNU_GCC = 1 @@ -44,14 +44,6 @@ ifeq ($(G4SYSTEM),Linux-egcs) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif OIVFLAGS += -I$(OIHOME)/include - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS - CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR) - endif - ifdef G4ODBMS - G4DDLX_FLAGS += -D__STL_CLASS_PARTIAL_SPECIALIZATION -Dstd="" -DG4std="" - endif define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ diff --git a/config/sys/Linux-g++.gmk b/config/sys/Linux-g++.gmk index 43a3c75fae..ebbe97cfb1 100644 --- a/config/sys/Linux-g++.gmk +++ b/config/sys/Linux-g++.gmk @@ -28,6 +28,7 @@ ifeq ($(G4SYSTEM),Linux-g++) CCFLAGS += -fPIC endif G4RUNPATHOPTION := -Wl,-rpath + CC := gcc FC := g77 FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore FCLIBS := -lg2c -lnsl @@ -47,9 +48,6 @@ ifeq ($(G4SYSTEM),Linux-g++) OIVFLAGS += -I$(OIHOME)/include G4USE_STD_NAMESPACE := yes CPPFLAGS += -DG4USE_STD_NAMESPACE - ifdef G4ODBMS - G4DDLX_FLAGS += -DG4std="" - endif define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ cd $(G4TMPDIR); \ diff --git a/config/sys/SGI-CC.gmk b/config/sys/SGI-CC.gmk index 0fbfcf3b30..bf8e3124a9 100644 --- a/config/sys/SGI-CC.gmk +++ b/config/sys/SGI-CC.gmk @@ -1,6 +1,6 @@ # # -------- SGI --------- !!! not supported !!! -# Irix-6.5.5 CC-7.2.1 +# Irix-6.5.5 CC-8 ifeq ($(G4SYSTEM),SGI-CC) CXX := CC ifdef G4OPTIMISE @@ -26,13 +26,8 @@ ifeq ($(G4SYSTEM),SGI-CC) ifndef OGLLIBS OGLLIBS := -L/usr/lib -lGLU -lGL endif - CPPFLAGS += -DSOCKET_IRIX_SOLARIS - CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM) - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_IRIX_6_5 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS - CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) - endif + G4USE_STD_NAMESPACE := yes + CPPFLAGS += -DSOCKET_IRIX_SOLARIS -DG4USE_STD_NAMESPACE define build-granular-shared-lib @echo "Shared Libraries not supported on $(G4SYSTEM) diff --git a/config/sys/SUN-CC.gmk b/config/sys/SUN-CC.gmk index 7de2c2dc4a..916f2ed219 100644 --- a/config/sys/SUN-CC.gmk +++ b/config/sys/SUN-CC.gmk @@ -13,7 +13,6 @@ ifeq ($(G4SYSTEM),SUN-CC) endif endif CXXFLAGS += -features=no%anachronisms -mt -lpthread -# CXXFLAGS += -fnonstd ifdef G4LIB_BUILD_SHARED CXXFLAGS += -KPIC FCFLAGS += -KPIC @@ -44,27 +43,10 @@ ifeq ($(G4SYSTEM),SUN-CC) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif CPPFLAGS += -DSOCKET_IRIX_SOLARIS - LOADLIBS += -L/usr/lib -lsocket -lnsl + LOADLIBS += -lsocket -lnsl CPPFLAGS += -DG4NOT_ISO_DELETES -DG4NO_ISO_VECDIST - ifdef G4ODBMS - G4DDLX_FLAGS += -noline - endif - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_SOLARIS_2_5 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS - CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR) - CXXFLAGS += -compat - else - ifndef G4NO_STD_NAMESPACE - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE - ifdef G4ODBMS - G4DDLX_FLAGS += -DG4std="std" - endif - else - CXXFLAGS += -compat - endif - endif + G4USE_STD_NAMESPACE := yes + CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @libdir=`(cd $(@D);/bin/pwd)`; \ diff --git a/config/sys/WIN32-VC.gmk b/config/sys/WIN32-VC.gmk index 628663fce2..16348b2b8c 100644 --- a/config/sys/WIN32-VC.gmk +++ b/config/sys/WIN32-VC.gmk @@ -15,20 +15,10 @@ ifeq ($(G4SYSTEM),WIN32-VC) CXXFLAGS += -D_WIN32 -DOS CPPFLAGS += -DWIN32 # - # Should set $INCLUDE environment, if not set as below + # Use ISO standard version. # - ifdef G4USE_OSPACE - CXXFLAGS += $(OSPACEINC) - CPPFLAGS += -DG4USE_OSPACE - else - ifdef G4USE_STLPORT - CXXFLAGS += $(OSPACEINC) - else - # If native STL is selected, use ISO standard version. - G4USE_STD_NAMESPACE := yes - CPPFLAGS += -DG4USE_STD_NAMESPACE - endif - endif #ospace + G4USE_STD_NAMESPACE := yes + CPPFLAGS += -DG4USE_STD_NAMESPACE LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll diff --git a/config/sys/WIN32-g++.gmk b/config/sys/WIN32-g++.gmk index 1bed387ac8..a750286c06 100644 --- a/config/sys/WIN32-g++.gmk +++ b/config/sys/WIN32-g++.gmk @@ -1,14 +1,14 @@ # # ------ GNU/WIN32 CYGNUS ------ !!! not supported !!! -# cygnus b20 with cygwin1.dll 1.1.5 patch -# Windows 95 4.00.1111 +# Cygnus CygWin - gcc-2.95.3 +# Windows 2000 # -# Stefano Agostinelli - IST Group, Genova +# Stefano Agostinelli (agos001@pn.itnet.it) - IST Group, Genova # ifeq ($(G4SYSTEM),WIN32-g++) CXX := g++ GNU_GCC = 1 - CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC + CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O @@ -40,14 +40,8 @@ ifeq ($(G4SYSTEM),WIN32-g++) OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL endif OIVFLAGS += -I$(OIHOME)/include - ifdef G4USE_OSPACE - CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT - CPPFLAGS += -DG4USE_OSPACE -DOS_NO_WSTRING -DOS_NO_ALLOCATORS - CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR) - endif - ifdef G4ODBMS - G4DDLX_FLAGS += -D__STL_CLASS_PARTIAL_SPECIALIZATION -Dstd="" -DG4std="" - endif + G4USE_STD_NAMESPACE := yes + CPPFLAGS += -DG4USE_STD_NAMESPACE define build-granular-shared-lib @echo "Shared Libraries not supported on $(G4SYSTEM) diff --git a/environments/History b/environments/History index f20d9f0baa..b2644b7426 100644 --- a/environments/History +++ b/environments/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2000/06/09 10:09:21 barrand Exp $ +$Id: History,v 1.7 2002/12/06 16:19:38 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -18,6 +18,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +envs-V04-01-00 06 December 2002 Gabriele Cosmo +- Synchronized HEAD (disclaimer of liability). +- Updates for new G4ApplicationState. + envs-V01-01-01 09 June 2000 John Allison - Only OPACS and History tagged. diff --git a/environments/OPACS/app/EXPO.cc b/environments/OPACS/app/EXPO.cc index aca46b75dc..c54faf4649 100644 --- a/environments/OPACS/app/EXPO.cc +++ b/environments/OPACS/app/EXPO.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EXPO.cc,v 1.8.4.1 2001/06/28 19:06:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: EXPO.cc,v 1.9 2001/07/11 09:56:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include diff --git a/environments/OPACS/app/TEST.cc b/environments/OPACS/app/TEST.cc index c2ee30ca78..4817b4d8b6 100644 --- a/environments/OPACS/app/TEST.cc +++ b/environments/OPACS/app/TEST.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TEST.cc,v 1.3.4.1 2001/06/28 19:06:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: TEST.cc,v 1.4 2001/07/11 09:56:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include diff --git a/environments/OPACS/include/EXPO_Detector.icc b/environments/OPACS/include/EXPO_Detector.icc index 3ec00501c6..0c961924ba 100644 --- a/environments/OPACS/include/EXPO_Detector.icc +++ b/environments/OPACS/include/EXPO_Detector.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EXPO_Detector.icc,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: EXPO_Detector.icc,v 1.4 2001/07/11 09:56:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // See also G4/run/example/MyDetectorConstruction.cc. diff --git a/environments/OPACS/include/EXPO_PhysicsList.hh b/environments/OPACS/include/EXPO_PhysicsList.hh index 99d20ed188..e97117ce44 100644 --- a/environments/OPACS/include/EXPO_PhysicsList.hh +++ b/environments/OPACS/include/EXPO_PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EXPO_PhysicsList.hh,v 1.4.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: EXPO_PhysicsList.hh,v 1.5 2001/07/11 09:56:43 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/environments/OPACS/include/EXPO_PhysicsList.icc b/environments/OPACS/include/EXPO_PhysicsList.icc index ef7a73de99..630dfd23a0 100644 --- a/environments/OPACS/include/EXPO_PhysicsList.icc +++ b/environments/OPACS/include/EXPO_PhysicsList.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EXPO_PhysicsList.icc,v 1.4.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: EXPO_PhysicsList.icc,v 1.5 2001/07/11 09:56:43 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/environments/OPACS/include/EXPO_Primary.icc b/environments/OPACS/include/EXPO_Primary.icc index 73bded150c..7f87476301 100644 --- a/environments/OPACS/include/EXPO_Primary.icc +++ b/environments/OPACS/include/EXPO_Primary.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EXPO_Primary.icc,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: EXPO_Primary.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // See also G4/run/example/EXPO_PrimaryGeneratorAction.cc. diff --git a/environments/OPACS/include/G4o.h b/environments/OPACS/include/G4o.h index e0c5220f55..fcc88718ad 100644 --- a/environments/OPACS/include/G4o.h +++ b/environments/OPACS/include/G4o.h @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4o.h,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4o.h,v 1.4 2001/07/11 09:56:43 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* +---------------------- Copyright notice -------------------------------+ */ /* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ diff --git a/environments/OPACS/include/G4oCommon.hh b/environments/OPACS/include/G4oCommon.hh index 0886412e84..20d2437561 100644 --- a/environments/OPACS/include/G4oCommon.hh +++ b/environments/OPACS/include/G4oCommon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oCommon.hh,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oCommon.hh,v 1.4 2001/07/11 09:56:43 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* Included by G4o.h. diff --git a/environments/OPACS/include/G4oCommon.icc b/environments/OPACS/include/G4oCommon.icc index 628e1dc605..532265b12d 100644 --- a/environments/OPACS/include/G4oCommon.icc +++ b/environments/OPACS/include/G4oCommon.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oCommon.icc,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oCommon.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* Included by G4o.cc. diff --git a/environments/OPACS/include/G4oDrawer.hh b/environments/OPACS/include/G4oDrawer.hh index 44dfabebc5..5f65144f9b 100644 --- a/environments/OPACS/include/G4oDrawer.hh +++ b/environments/OPACS/include/G4oDrawer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oDrawer.hh,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oDrawer.hh,v 1.4 2001/07/11 09:56:44 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* +---------------------- Copyright notice -------------------------------+ */ /* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ diff --git a/environments/OPACS/include/G4oEXPO.h b/environments/OPACS/include/G4oEXPO.h index 510be3d1e6..a9337f6155 100644 --- a/environments/OPACS/include/G4oEXPO.h +++ b/environments/OPACS/include/G4oEXPO.h @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oEXPO.h,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oEXPO.h,v 1.4 2001/07/11 09:56:44 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* +---------------------- Copyright notice -------------------------------+ */ /* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ diff --git a/environments/OPACS/include/G4oScene.hh b/environments/OPACS/include/G4oScene.hh index 3f57448641..44a224aba4 100644 --- a/environments/OPACS/include/G4oScene.hh +++ b/environments/OPACS/include/G4oScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oScene.hh,v 1.4.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oScene.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* +---------------------- Copyright notice -------------------------------+ */ /* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ diff --git a/environments/OPACS/include/G4oState.hh b/environments/OPACS/include/G4oState.hh index 0b0f5f8b87..b6e3daeff6 100644 --- a/environments/OPACS/include/G4oState.hh +++ b/environments/OPACS/include/G4oState.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oState.hh,v 1.4.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oState.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4oState_h #define G4oState_h diff --git a/environments/OPACS/include/WoG4o.h b/environments/OPACS/include/WoG4o.h index c98decf48f..950c26b8e5 100644 --- a/environments/OPACS/include/WoG4o.h +++ b/environments/OPACS/include/WoG4o.h @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: WoG4o.h,v 1.3.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: WoG4o.h,v 1.4 2001/07/11 09:56:44 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* +---------------------- Copyright notice -------------------------------+ */ /* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ diff --git a/environments/OPACS/src/G4o.cc b/environments/OPACS/src/G4o.cc index ac31456d54..e665f89617 100644 --- a/environments/OPACS/src/G4o.cc +++ b/environments/OPACS/src/G4o.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4o.cc,v 1.7.4.1 2001/06/28 19:06:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4o.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* #define DEBUG diff --git a/environments/OPACS/src/G4oDrawer.cc b/environments/OPACS/src/G4oDrawer.cc index d6edc18292..e89b2b00e0 100644 --- a/environments/OPACS/src/G4oDrawer.cc +++ b/environments/OPACS/src/G4oDrawer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oDrawer.cc,v 1.6.4.1 2001/06/28 19:06:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oDrawer.cc,v 1.7 2001/07/11 09:56:45 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* From geant4/visualization/management/src/G4VisManager.cc. diff --git a/environments/OPACS/src/G4oScene.cc b/environments/OPACS/src/G4oScene.cc index 8522f49ed1..447cc9edb4 100644 --- a/environments/OPACS/src/G4oScene.cc +++ b/environments/OPACS/src/G4oScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oScene.cc,v 1.7.4.1 2001/06/28 19:06:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oScene.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* +---------------------- Copyright notice -------------------------------+ */ /* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ diff --git a/environments/OPACS/src/G4oState.cc b/environments/OPACS/src/G4oState.cc index 7384c0c757..f6fdfe65a9 100644 --- a/environments/OPACS/src/G4oState.cc +++ b/environments/OPACS/src/G4oState.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4oState.cc,v 1.6.4.1 2001/06/28 19:06:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4oState.cc,v 1.8 2002/12/06 16:19:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //#define DEBUG @@ -65,22 +65,22 @@ G4bool G4oState::Notify ( G4StateManager* statM = G4StateManager::GetStateManager(); G4ApplicationState previousState = statM->GetPreviousState(); - if(previousState==Idle && requestedState==GeomClosed) { + if(previousState==G4State_Idle && requestedState==G4State_GeomClosed) { //beginOfRun G4String string = name; string += "RunBegin.osh"; OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } else if(previousState==GeomClosed && requestedState==Idle) { + } else if(previousState==G4State_GeomClosed && requestedState==G4State_Idle) { //endOfRun G4String string = name; string += "RunEnd.osh"; OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } else if(previousState==GeomClosed && requestedState==EventProc) { + } else if(previousState==G4State_GeomClosed && requestedState==G4State_EventProc) { //beginOfEvent G4String string = name; string += "EventBegin.osh"; OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } else if(previousState==EventProc && requestedState==GeomClosed) { + } else if(previousState==G4State_EventProc && requestedState==G4State_GeomClosed) { // EndOfEvent G4String string = name; string += "EventEnd.osh"; diff --git a/examples/History b/examples/History index 67dbb305d4..87d8b7c39d 100644 --- a/examples/History +++ b/examples/History @@ -1,4 +1,4 @@ -$Id: History,v 1.63 2001/12/13 17:49:48 gcosmo Exp $ +$Id: History,v 1.65 2002/12/06 19:02:55 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +6th December 2002 Gabriele Cosmo (examples-V04-01-04) +- Merged with recent development + +4th December 2002 Makoto Asai (examples-V04-01-03) +- Migration to new G4ApplicationState + 13th December 2001 Gabriele Cosmo (examples-V03-02-05) - Updated reference outputs. diff --git a/examples/advanced/brachytherapy/Brachy.cc b/examples/advanced/brachytherapy/Brachy.cc index d5dc1c939f..22bf6a0b99 100644 --- a/examples/advanced/brachytherapy/Brachy.cc +++ b/examples/advanced/brachytherapy/Brachy.cc @@ -1,4 +1,3 @@ - // // ******************************************************************** // * DISCLAIMER * @@ -20,33 +19,39 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// ******************************************************************** +// +// $Id: Brachy.cc +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example // -------------------------------------------------------------- // // Code developed by: -// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano,S.Guatelli +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli + +// +// ******************************* +// * * +// * Brachy.cc * +// * * +// ******************************* +// +// Brachytherapy simulates the energy deposition in a cubic (30*cm) // -// Brachytherapy simulates the dose deposition in a cubic (30*cm) -// water phantom for a IsoSeed I-125 Bebig // brachytherapy source. // // Simplified gamma generation is used. -// Source axis is oriented along Z axis. -// Voxel data on the X-Z plan -//e is output to -// "Brachy3.hbk". +// Source axis is oriented along Z axis. The source is in the centre +//of the box. - -// $Id: Brachy.cc,v 1.11 2002/06/18 22:20:37 guatelli Exp $ -// GEANT4 tag $Name: brachy-V04-00-05 $ +//default source Ir-192 #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" #include "G4UItcsh.hh" - +#include "BrachyFactoryIr.hh" #ifdef G4UI_USE_XM #include "G4UIXm.hh" #endif @@ -58,55 +63,67 @@ #include "BrachyEventAction.hh" #include "BrachyDetectorConstruction.hh" #include "BrachyPhysicsList.hh" -#include "BrachyPrimaryGeneratorAction.hh" #include "BrachyPhantomSD.hh" - +#include "BrachyPrimaryGeneratorActionIr.hh" #include "G4SDManager.hh" - #include"BrachyRunAction.hh" - #include "Randomize.hh" #include "G4RunManager.hh" #include "G4SDManager.hh" #include "G4UImanager.hh" - - +#include "G4UImessenger.hh" //Interactive mode// int main(int argc ,char ** argv) { - // semi diversi li ha usati per l'errore - - //HepRandom::setTheSeed(16520); + + // fix the seed + // HepRandom::setTheSeed(16520); HepRandom::setTheEngine(new RanecuEngine); - - + G4int seed=time(NULL); + HepRandom ::setTheSeed(seed); + + // Construct the default run manager - G4RunManager* pRunManager = new G4RunManager; + G4RunManager* pRunManager = new G4RunManager; - // Set mandatory initialization classes - G4String SDName = "Phantom"; - - BrachyDetectorConstruction *pDetectorConstruction=new BrachyDetectorConstruction(SDName); + // Set mandatory initialization classes + G4String SDName = "Phantom"; + + BrachyDetectorConstruction *pDetectorConstruction=new BrachyDetectorConstruction(SDName); + pRunManager->SetUserInitialization(pDetectorConstruction) ; - - pRunManager->SetUserInitialization(new BrachyPhysicsList); - + pRunManager->SetUserInitialization(new BrachyPhysicsList); + + /* #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new BrachyVisManager; - visManager->Initialize(); + G4VisManager* visManager = new BrachyVisManager; + visManager->Initialize(); #endif - - G4UIsession* session=0; + */ - +// output environment variables: +#ifdef G4ANALYSIS_USE + G4cout << G4endl << G4endl << G4endl + << " User Environment " << G4endl + << " Using AIDA 3.0 analysis " << G4endl; +# else + G4cout << G4endl << G4endl << G4endl + << " User Environment " << G4endl + << " G4ANALYSIS_USE environment variable not set, NO ANALYSIS " + << G4endl; +#endif + /* +G4UIsession* session=0; + + if (argc==1) // Define UI session for interactive mode. { // G4UIterminal is a (dumb) terminal. @@ -120,19 +137,18 @@ int main(int argc ,char ** argv) #endif #endif } - + + */ + BrachyEventAction *pEventAction=new BrachyEventAction(SDName); + pRunManager->SetUserAction(pEventAction ); - BrachyEventAction *pEventAction=new BrachyEventAction(SDName); - - pRunManager->SetUserAction(pEventAction ); - pRunManager->SetUserAction(new BrachyPrimaryGeneratorAction); - - BrachyRunAction *pRunAction=new BrachyRunAction(); + +BrachyRunAction *pRunAction=new BrachyRunAction(SDName); pRunManager->SetUserAction(pRunAction); - - - + + + //Initialize G4 kernel pRunManager->Initialize(); @@ -142,7 +158,9 @@ int main(int argc ,char ** argv) UI->ApplyCommand("/event/verbose 0"); UI->ApplyCommand("/tracking/verbose 0"); - if (session) // Define UI session for interactive mode. + /* + + if (session) // Define UI session for interactive mode. { // G4UIterminal is a (dumb) terminal. UI->ApplyCommand("/control/execute initInter.mac"); @@ -159,25 +177,24 @@ int main(int argc ,char ** argv) G4String fileName = argv[1]; UI->ApplyCommand(command+fileName); } - - //int numberOfEvent = 10000; - //pRunManager->BeamOn(numberOfEvent); - - - - // Job termination + */ + int numberOfEvent = 1000; + pRunManager->BeamOn(numberOfEvent); - + +// Job termination + + /* #ifdef G4VIS_USE delete visManager; #endif - - + */ - delete pRunManager; - return 0; + delete pRunManager; + + return 0; } diff --git a/examples/advanced/brachytherapy/GNUmakefile b/examples/advanced/brachytherapy/GNUmakefile index 103419b5fe..e4cdc52454 100644 --- a/examples/advanced/brachytherapy/GNUmakefile +++ b/examples/advanced/brachytherapy/GNUmakefile @@ -1,5 +1,5 @@ # -------------------------------------------------------------- -# $Id: GNUmakefile,v 1.6 2002/06/13 15:11:27 guatelli Exp $ +# $Id: GNUmakefile,v 1.7 2002/11/15 17:36:55 guatelli Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,10 +14,10 @@ G4ANALYSIS_USE = 1 ifndef G4INSTALL - G4INSTALL = ../../../ + G4INSTALL =~/GEANT4/geant4/ endif -CPPFLAGS += -I${LHCXX_REL_DIR}/include -I/afs/cern.ch/sw/contrib/AIDA/2.2/cpp +CPPFLAGS += -I${LHCXX_REL_DIR}/include -I/afs/cern.ch/sw/contrib/AIDA/3.0/cpp -g .PHONY: all @@ -25,9 +25,5 @@ all: lib bin include $(G4INSTALL)/config/binmake.gmk -# From lowenergy/test/GNUmakefile -CPPFLAGS += `aida-config --useHBook --include` -LDFLAGS += `aida-config --useHBook --lib` -LOADLIBS += `aida-config --useHBook --lib` diff --git a/examples/advanced/brachytherapy/History b/examples/advanced/brachytherapy/History index 90f3739719..92cb1602dd 100644 --- a/examples/advanced/brachytherapy/History +++ b/examples/advanced/brachytherapy/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.3 2000/12/10 08:42:44 chauvie Exp $ +$Id: History,v 1.4 2002/12/06 16:32:25 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.3 2000/12/10 08:42:44 chauvie Exp $ Category History file --------------------- +06.12.2002 - Gabriele Cosmo, tag brachy-V04-01-04 + Migration to new G4ApplicationState. + 09.11.2000 - SA, tag brachy-V02-00-00 (dvnote) First submission of Brachytherapy advanced example. diff --git a/examples/advanced/brachytherapy/README b/examples/advanced/brachytherapy/README index be84b940d2..a42c2f2dde 100644 --- a/examples/advanced/brachytherapy/README +++ b/examples/advanced/brachytherapy/README @@ -1,6 +1,3 @@ -------------------------------------------------------------------- -$Id: README,v 1.5 2002/06/13 15:59:43 guatelli Exp $ -------------------------------------------------------------------- ========================================================= Geant4 - Brachytherapy example @@ -11,52 +8,63 @@ $Id: README,v 1.5 2002/06/13 15:59:43 guatelli Exp $ 0. Introduction. -Brachytherapy example simulates energy deposition on a voxel grid -for a Ir brachytherapy source. +Brachytherapy example simulates energy deposition in a Phantom filled with +soft tissue for: +1) Ir brachytherapy source. +2) I brachytherapy source. +3) Leipzig Applicator. -1. Technical description +1.Technical information. -1.0. the source is constructed in the -brachyDetectorConstruction class. The source is composed by -an iridium core encapsulated in a capsule (body + tip). -The source is put in the center of a 30*cm water box. +The default source is an Ir source put in the center of the Phantom. +The Phantom is a box (dimension:30cm) -1.1. The water box is made sensitive detector. A longitudinal slice -of it is associated to a planar read out geometry. At every hit -energy deposition is read and stored in a 2D histogram. +2.How to run the example. + + - run "Brachy" executable. + - you can run the example in batch or interative mode. -1.2. the output is the file brachy2.hbk -(e.g. anysotropy and isodose calculations): - 1)1Dhistogram with the spectrum of initial energy of gamma +Default: batch mode with 1000 events + + +In interative mode, you can choose: + +1)Ir source: +idle>/run/beamOn NumberOfEvents and then +idle> exit + +2)Leipzig Applicator: +idle>/geom/switch Leipzig +idle>/run/beamOn NumberOfEvents and then +idle> exit + +3) I source: +idle>/geom/switch Iodium +idle>/run/energy Iodium +idle>/run/beamOn NumberOfEvents +idle>exit + +Before the run you can also change the absorber material of the Phantom: +idle>/detecor/setMaterial name + +4)simulation output: brachytherapy.hbk + It contains: + 1)1Dhistogram with the primary particle energy 2)2Dhistogram with the distribution of energy in the plane (x,z,energy) -2. Make + 3)Ntuple with the energy deposit in the Phantom -1.3.the default visualization is with Dawn + +5)the default visualization is with Dawn A standard Geant4 example GNUmakefile is provided. -2. Usage - - run "Brachy" executable. -The framework in in interactive mode,so -you have to do: -idle>/run/beamOn ( numberofevents) - -The output is ("brachy2.hbk") - - - - -------How to run the new version of AIDA:---------------------- - - -1)Aida platform for Linux:gcc compiler 2.95.2 -------------------------enviroment with the compiler 2.95.2 on lxplus--------- setenv G4LEDATA /afs/cern.ch/sw/geant4/dev/data/G4EMLOW1.1 setenv G4INSTALL /... +setenv CLHEP_BASE_DIR /afs/cern.ch/sw/geant4/dev/CLHEP/Linux-g++/1.7.5 # # ---- Linux setup ---- # @@ -95,7 +103,7 @@ setenv G4VIS_USE_DAWN 1 setenv G4VIS_USE_DAWNFILE 1 setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++" - +setenv LD_LIBRARY_PATH $OGLHOME/lib ----------------------------------------------------------------------------------- @@ -103,21 +111,15 @@ setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++" # ---- Analysis---- setenv G4ANALYSIS_BUILD 1 -setenv PATH "${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/4.0.0/bin" -source /afs/cern.ch/sw/lhcxx/share/LHCXX/4.0.0/install/sharedstart.csh -setenv G4ANALYSIS_AIDA_CONFIG_CFLAGS `aida-config --noLicense --include` -setenv G4ANALYSIS_AIDA_CONFIG_LIBS `aida-config --noLicense --libs` +setenv PATH "${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/5.0.1/bin" +setenv G4ANALYSIS_AIDA_CONFIG_LIBS "-L/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/5.0.1/lib -lAnaphe_AIDA_AnalysisFactory_native -lAnaphe_AIDA_Annotation_native -lAnaphe_AIDA_Histogram_native -lAnaphe_AIDA_Tree_native -lAnaphe_AIDA_HBookStore -lg2c-forMinuit -lHepUtilities -lCLHEP -lAnaphe_AIDA_Tuple_native" +setenv G4ANALYSIS_AIDA_CONFIG_CFLAGS "-I/afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp -I/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/5.0.1/include" +setenv ANAPHE5_REL_DIR /afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp +setenv LD_LIBRARY_PATH /afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/5.0.1/lib:$LD_LIBRARY_PATH +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:"/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/5.0.1/lib" + -# ---- add to the LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH $OGLHOME/lib -# -# ---- end of Linux set-up ---- -before running remenber to delete *.hbk -in the file brachy.py there are the instructions to visualize the histograms with the old version of Lizard; -in order to do that open another lxplus with egcs-2.91.66 and make: -source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.3-sec/install/sharedstart.csh -then digit lizard in the directory where brachy3.hbk is and then follow the instruction of the brachy.py diff --git a/examples/advanced/brachytherapy/brachy.py b/examples/advanced/brachytherapy/brachy.py index 575f32ab80..d1b2f44d91 100644 --- a/examples/advanced/brachytherapy/brachy.py +++ b/examples/advanced/brachytherapy/brachy.py @@ -1,15 +1,12 @@ -hm.selectStore("brachy3.hbk") +#Lizard 3.6.6 + + +hm.selectStore("brachytherapy.hbk") hm.ls() #spectrum of initial particles -hEn=hm.load1D("30") +hEn=hm.load1D("20") hplot(hEn) -#if you want to print the results:pl.psPrint("Brachyspettro.ps") -h2=hm.load2D("20") +#if you want to print the results:pl.psPrint("Brachytherapy.ps") +h2=hm.load2D("10") hplot(h2) -v=vm.from2D(h2) -vm.list() -vector=vm.retrieve2D (3) -pl.dataOption("representation","color") -pl.plot(vector) -vector.toAscii("brachy.dat") -pl.reset() \ No newline at end of file +pl.reset() diff --git a/examples/advanced/brachytherapy/brachytherapy.hbk b/examples/advanced/brachytherapy/brachytherapy.hbk new file mode 100644 index 0000000000000000000000000000000000000000..c9830330275ac71e8d556972214563f872dd993e GIT binary patch literal 450560 zcmeF)2UrwawkZB42gykR0|+7tf&wOluC>-yOdy~rm=Lp|C}zQgq6i9z3SvYM%mFb6 zOsE(UvzRbr&H)qpZ~8EE&-~xq_wIc&-+gE1tokf#@2Xu@d;eank)jZJT~aPkj=d}Krw%6)v`#L z%64mIq5t@Aq#~&pRcrq?OKo8FA_v8^kxZs;Rz3R3WLo)(ZB{KdRg9{N(M0C;HbG{z zbe^n%O%Ivbkr~zVtCp!L{ykN!tJr@B*{@%}ekw-gAd^YI6w7&F0Ty5Z7GMDuU;!3j z0Ty5Z7GMDu_#YS0+Nap1%5S^X`ubbCp|Rqc|5J6^M3H`1omO1`YrU#YD?T64diGno zi>)I4xH?^5k-lG@wo|0Ky#f{K z6V+)_q>omog(7{hI^9;0-la(EDn`Xn^_hiCQAZwFfCX591z3OuSbzmsfCX591^!uFe}(=Z&iJq1rOT>bzlf-k>^fP@UJW&g)m_^{VrFRrwy;vKrO- z8r6B->b&BLQ@LEHI|w^2+LwfW2E0m`Y0;`{vf)$;9ecDR}93-r#^1zA)n~=39Ylx!<@IFn$iZWVM%&m788NE=xJlL1zvN?VZ2qi#f0lNutx^1* z@b3-2^{y*t|Mq_LT#;7kK)#(7)2ee6#d&~Cai;axq3XQgog&xluX7ZM9@v$9{Y7WZ zHL_a2pa0jiui~8OFN1G0N5y&6cE$Ujmty>FzOVay#d%e-qKHa|j%}-6 zoIaV1`>(1~)p^Qa#;S5vX~lVwa;oX->f60bv%maW^B-jn_koh)EQtYkz{k&;aKDBE99fW@u#k6`*dMVS+5nBRyWCM-?jscDVjscDVjscDV zjscDVjscDVjscE=KXwc#F5;`ccTrsbSAE~(xLENyz=HqZ_5b{;GXL52KRTo)QScXI z(Z8JroV~Y8cuW~aKHXMf!%Q>u9g~7{jmE*u23ue#dZFIqJ<{&3oniISSjm54KPWk2 zEFHgoQ)pfd#eTzEQvOh9F?ruiSm(YAuMS!RyB1|gOFn-={oLNPO=mPk7;K;i3ttju z8eo5wapZEyjPmb>Q-$>{VSTC|8P!V>QC-(ljr-}))a?k4`}h{S*Ia=Yho2DPTOzQe zktPoL?jYB4aFV_b@RaVwn8BMbDc}!xq^Z^$r52HT;O*1{jLUtX?WHI%3Qm{qs)Wc( zI>h3&RVHFc{{eXGtPiT3d4Y}tMvCY`0*x!$V7&_lQeovJ_%US`Sm)0N4M`72{VK;= zJGIeZOXum~zKg|a!3%@{2 zkfHp19egk8EiQu@vja-;!zh1`kS|y#+6?|AZZL)oJX~jnX@59r-%{q`7W)u*P>QI?}kOP}3Yo&mFCV zQ73gAv>**r6Z5g=x@qumvI?a5cY(+UPo?}0eZW|~xw0-=gSOMj$F=Ev))hK3s|7X8 zc!XA$w&SE$McDAm9kiL)0LN+$h0F7HLz=yxJVr%RYWlE3Sx1%i@9A!4TTyFgqd*UjkM+ZXOoJUge=^oO9;@NO%ovm_R%a-?r>yvG`Fa0DY zr9|KsP{#-DcH)e*0?HI`^qxMzO`uHX%j_j^~18#XdGJ*CYm09i}BM!sQL3zqVp4bvav&oR)$<_Ud%yM{3Pn{>yuop+|5D@LYxp-O&jdFT@r?B+8Fel1%ITK+qv<6myW{(8e; zV@@ydUVce>W|}YQHknc7jX(CEp-n>~C@naZmgWbeHrAtAIkmyHmOZsBZjI|bV=&tO z4XW>ol|JUqR~{qzH5)o_Wi36~0(==gIeiz&3oTh}3FEHN8 z8I!!-V6syH+Ngyo>$-AP7tyj&6z;NkM>^k4NN1V_jwUyzQinz+NxuYR<(b&irc&I&wKRAz`wL@{{_kpNB!yT<|4wNESL`yAB+sFs5dkXJ;2K zuz)O{PJozu&+*x6cTnASUFs*_rriI$`Ub+U+j`-ewaNSHFLQD~)dKr|T}Ecj`--|T z$+YIvPK{&JsO9UGxah(Lp_SMTEEXG3`64IGQW-+!8+!?dxGT6=`-`;Wdl^n| z>4+|^6X3m9f^r`XMh&69Z)5P>cEH`8(?!ku`$W&FJ@7!CyI69+7VhYC3AHq9!a=iP z(EaLsX{KHi<$B(a&I*26t4S;jmt9VdGUDh@JKbr^bDQv<=^((xC|Tiasd! zWA0T~Xq_~Md+TfA^umQ=h{I4!sdFA z!o$D;uGAbr6FZI*X8Tj{u=P?5x0yyByK4xu4yQ0?q#LF~Z~5iKFnG1y2%&227T#kOm@P@^t{^X2k z8(To*Rqf!$n5MYE6XB(E06PAv4e4EjV8oV{UTf`8hzYRL+9hXgA|-{co({8?}mOIM?*k}H5^{0B46?(ge*!|(++)A zAvbJ=vu=(c`G<>meNHyoy!1fPq%$;b)84xxO%IovcBi^4FVn9V&2aUK^K|y&Q4wtV zkZydQ3nj6hLg(OBtf%jfl1dTvsXZF+o5aBNS1B|(bq~!v8!J=~I1A?-pf&1~QTLuM z&3s`@Yxj2+vDY6;OY@%L3D;-v^2!zvgZ0tr>m2FL@&0gXt*Mys_%S|c>;<{aO(3V; zd~BJS1j!8sVU2>>u)Vu4#Kznw~@ zTHn}-Z5FK%P}%eD zH2+LLVV(1l>PI($exu&uu%R>Hq?tQ*JktX%e3wH(iV7^O@Ptq^FR8JWdDU^nOI9<5 z?W;$^zg>6Sy1fqO2G=F$wu{KXY6Z^A%@f*bS(tNiD%Q5Q1i7OJT7N8%tUAS^+OQX3 zaB~+FGS7at1hk z?~i)DN1~>@1hy<_1_cG9VS4F7`IWC3l2;8Y;d;G*bXC@3>W*}ZbIla^VJx1h+YxKm zbjHwIM@T#7ENU2P!h+Mi#lUgfaTjjIl6yT+r{^}*^EiNp2X@Ji`F_9}E7rkek6N%` z-V^9!t^*B|+~xYy4e@n9H_^x0Rle_d0cqzvLQ~NW!e_q26|vpX`OYzTbm0{oD2|je zHtN!>q_dcjSU_a44Vzr4fps&UknG1*Oukkhn_1YyM~#)ztP`2AsnKVM{-mn>TYd9o zjIfBmtu%O4H=A}HSs-l7PD9N4DEK%>6JGrYhx#ke!SR$B`LgUxSaW0!JbCpK_O#py z!)j$fZrf21qgoS6Up$2Qm(PPnU_VK3sUh^5cZoJB&NbGQbRqMxdm&maRA?Q$L+=ZG zv0l(5tXbIy>rB5OFI(h+{h}K{@O)<}=e3V$(r7MqYV{7E^$8Rfq-uXV7|%i1*I zM|a%5|07N*o`yYC&O)oTJ)v@Lx|IGj1WtU;ghZ*f_qf$PNyEZlbdP9^w}*`to%OV+ z>B2C|wi3dl+W?%I(p0#=n<`y@z6y>9=|Cf!7kJZk2L_C5B)SL7$#8$U=oYvUk3M&W zBb`Fv^u*)%D>(!<*S!KSr98N4ybrB(euC4531aYul~~8S6P`-!0p{9ibX(evH_mxc z?)mq)WUIX}>vSG!zrKdaHy@+^k_C&bd~&v#$YcbFU>@d$@=ItEIwd z&=~UZJuJd!`jgeZ6qs=Q49@negyZRtL8rbwl<&O-&q9t%i%0+Vo?_jo4n>zIiDrv~ z741-iQ1#6ib<+m3Clky!y$>53ctM>e6RGd0p>(=w5^atcBAVGxC+88G`0nj5x;;Ni zs4W>mJtr0lt8?vfWqu&!jhT;2%x>b*xLoY%_CR|3x~}|?b{@ry-9p=+?Ix=y&ShP*qXvy~p8?SJXKh#!Uf9=mRq9R`{G3J*FB;@OYQO0t-o*E{--~1YfjP51W z9A1*|$WdhC*%wE6?j`GEj+oVVHY^yq0~T5xRK{(vT`IlpHv{MOKP=3f-=^gOtLQ>u zGmQJzgbaJ7qd~eAc6+)P>*a2SOqGGO^;oK?z0(Mm_jaXWO;tru(RaM2x&t3fi^MR+ zdf}6FV4=}>dBv&ia@V-Y)V0O3|G56I`pu{Pa^+_LfBXG^ilU6#e|G(^SjGbjumB6N z01L1H3$OqSumB6N01L3dA77yQ`~RwbpEg;_&j9}R`oF3VgF0XT|M3qb*N_ERfCX59 z1z3OuSbzmsfCX591^zbz)z|-udp&Xgf4-Li-_L<#fMbATfMbATfMbATfMbATfMbAT zfMej_G6oc%3;aX<|E0URPlf&7p?FI3048>949(kmOFIMQsI^WL+B#%OqFyodI}s|R zwML{~*bOx1e1NfUdZ3!^Jvg|@5!@C15H^kv!M!&lMB~v1VAhNYbfAHo7$=^}7uA}E z8;XlDCM*NI<0e8bxJdDt7tvMI4=hziL-@!mqV}|LP*!IcELw4tN;`KDrY&Azqo=;! zg$r&_Cl^ODZn}%+Pm>Alu8Cx(I~&K1*9FIVZnQJ*op9dUj%wK%W5D)Gvf0!Q4Q?*R z=pHMv`-(+USmP;JV^k=BL4UAXw;0-J2h;s`LohmN46I9gMh81}#7E0|ie}+&G5bvk zEE_WlD>e6E7q7ceZ^~t<%wjG&E_~(f@MF3Z*Lgb3jP5UK#yuyen_0rT(;8`OZc7?b z;6k>Y2cdLf4K~`l4NVhcAklOdoHIbw*LtGt0|HvPLSJn^Og{Jvj|LsW6Z0LE^V2); zq^+tqMeXSi@q+eG?4*}~D$DQFx$|x!WX)GxYky0GMGlr;j!^Uqj}JrBm)Xko&K*Tu z|G1&(K*OO_I>%P$JY_I+6~o+l}r&426EHjpXV%9(Ax3 z7t0&s%$xr3W~VtU*06`<%PoXn&6eaGkxCzyxkFy;5v*bO79%#i!Ny-7EBEWwVXH7T zd_@;(XVA=#W)$JyS!f*66PjWvE{`gp6%A z*-dq%#ru|l)un4--*gJh>$4ID?D{CRx9TU|9Uzqc#a~M)lq%_R_XN76;ztuZDgM?R zp5mt~#<1+uBV6gf8r!(6!_l`ckd>k@WBiakbUh)FrZ}fzc|wJ-O4xw~zX)?}d&Bcl za+!H?KDIF*x?cG@t=szSI(dl1$M&2qYyhgoJQ+CGjUU_sn9vPlY$Hm zk>7M}#HXWiRPrG-GW&&X0zyTLz#XElluJvOXT$8-*WqWGC1_tsLXG>2aX~H&df_?V;}Hr?mA&lxP$4i$2?YuQC=I zQElkNi)hL@vY*^tx4;?0M4`Uz8eTHkh{vSuQhB-`#{CR|@(#UW_nlPfq^!F%{%IGO zb*LXab5@bmJK4x{o_vSUXCtAT|1V|#W7*e+l&5&jtp6wsEyrrph2GhuQF|+ODbT^4 zihgG0ca5=BZ@h3B5CydZ!^!ZbgtBeJsAG#p^et>CK3UO^n&bdz1jWhHXw!wncU9D#|)hDvU0qQcgJJ&W2vDslN3(%OJ7 zrpl;xUL@{(c!JJ!xlXP2o}#XAU2yZzmuPy>2Mr%|2A^}jQ1S8}^tOzZ4~Z$4vKC#2 zS$0pU!G2vbirp>xz5apm&tf2^+YB*Ho`J=`1di=73w~_~SN_cfn(GMjpm(G6utLu1+Swau<5$;IFrlLNuowfD@=SBNL!`^3XPi^snwVV z*m#=*yn5SC`Y`?%s;BOUn-$klx6U2qK70opq;?S?biF%MsMZT9s2y%U0le8Ra;hGPT8Jv-VsPlv|`&MVig)1@umpEU|9f9(dZ>?LHhaF)<;{v_Q} z+=r)GtfMfK*Awn$U!hjWR!a3NA`{I4_;LRnsnTnb5Z_DSar=BMh>FFwSN6c}DMiX{ zE^9puoZ1`~swt;v>H8vrwVUzMxoKE9xIPMlE42ILF**{n42L*PrQ271A!SfkOgmRf zx03Ym)!8|yZY)QY)(2_%^vl@OptJ6i(2*o`O zHYdURuTMmikBd=vKyyqo|A?)-jg>apJ*QZ&Xc1+z8!Of~hF|s;nB?3?G*X|B_cX3i z@M#}vHn%%@r^s>HvC-6QogQXaOrb|HQz$FtM)(ArW+hg#%g zgNUorj0Zxx{K#6W8*VI}(!3;HO?^YIkB^ISrQLDTc{2=kEXVXi4Pjr>0T`e01oium zS9-dBX(K#4@59Wf1gK#?L$u#>fqFC_0xFU0iFzfya zOL{gDuFeZ7x#?AmOQ?bSO~WueqC~m9zAGo8WS0w>X)Q!R-$SHle;qHxPDYJl2_CE~ zhDC?GFmgwIVZ7i7q=Y8Ztt*3Z>L7`1dtRcb+R5a()K*w78i91e8%8zF#Vk`zF;q53 zN<7w|RQgy7huw>C+KEbB`YH^Tn0rzEGc)mLP8iO3`xEY+I|i>^yHlOxa=OyNMZWI* zJ1X*jN)A!Sgk$f9)T~gCHktPkHu`ex;jRZi%vO_k?cvILR~96RX-ih&6&!^Dg-fBn z<4!1;sDmcUbfBh5cL)pn1uIWBRhCs-`I_D*hLdd4YMlS!Hk#d*Lq%ecw8UvY=#<`q z(1FdQ%#uKm>qSTjkKaoDZ!7PWgg>J0(L|@DRjXQ>^)0UI%)O}nnhSb#OfbXd9Sr1$nF|V zO>Br?j(4H{cITkxrmo=lps#2$DvV~ec|pVUfm*HpCe$J>P|uy?ah#sF;_rA1?O$z1 zXAD;htFu2Ss_|=bs-c3iv{t0+h1B4ZBpesqBzpcB6BVy;72j^*?f_HhQy359#6Yrm zsfS0bc2dfbB=XdpM5nF{5ZdjBk!*ioNXa&Y*uh3riasJ%XPY#^!UV@Vbj2Db+R`C| zSQvZZ5o}nHA$7BkLG6CqP^JGI(H((P4N@U>f+{E5+R)S5b( zT35tUjV%rEV}1}BUk#^gj=eCieHm`52*Im;lb|AGt@LQyCTwL;qylxGJC)=`P*@D&Ia}$FapiBXlm#PVXUVUu{B~o(nL) z{#l{94>AAFUaG%5OK3PKVoV1x>AM7@j$Xsz+ZuqORyXWjYXIh)I3l9gyu;@m&S3K> z9jxzGE*0L2fl)4AbyAu=5!23X1{Loyh3x4Eof0FW&xX zg04TBL&Muv*z95htnoAhE>EZdZhkHxYSvO74~+pil=C7*7+gIkEH2yQ*W+*Sn^6qj zpc3Kmc_?^EMwq`zi1E7JFlqmM2;F~7K6KDl+R@ELO!*j(NskY~{0EmX=GZl?o2W0% z+7JV}i)KUR<3Jd0*Feft+*8M1x0`ZbMi<)S<`&u_ME@b49P~`MeX0drtW0sgNTT&K z4pVVtb9z54oQgKs;+7W9v?FjS$@~5g?d&o!^UQplpW+N-HBmY>dz5@mPD83_eOCCb zZ%RjPuhaVkUpPG`AIHyW4X>`~V$n1ooPWUtXDrC1EBS$RII$%~KF*@Yi`9irK}Rh6 z7zlpNcEh%cd!XTRjaxw>8 z7Sn=_cSWcA$KYH0*Lc8vI2O8Rfqbtfo*4cC!c270;7VQ5O=mu-&FhR89JMiSf}Zr| zMGbhlHww*~=R=Zpwp8kPURobqM5Vz*KNDTCV)1z4ptu)aR?jIY)966$EwgDuk`4Ch zl`E!{El0JXL$Fq5W1JUaA_Dv9;mfuG_+{i(ul#)%(Bs!25w>mtOzK@i*0V0-jD3MP zDMfKlH@yY4K}AD&K5v5A>o(%;ac1!F?g!DP!Ux|D@`E{Gh<&G5!0R_{p`x~#w9@sb z)Wtwod93OcyrfAFW{dG5Goiq(0lqx4Ub=M4`9H4zx&QzF<~I_&hy_@H1z3OuSbzms zfCX591z3Ou{?!Gz|Np=G5#;)_01L1H3$OqSumB6N01L1H3$VcdS%CZhbKjPK%f2oA z?9o5=vq$;(@bTdo;27W-;27W-;27W-;27W-_@9jd#m58xQ2&3(`SAlZQnMgbO&xX~ z)<(-=mT;>4BP1!HoEk z(Cmnul0UvD{hbGeMR0BOD;y+Gjvs*8^FGq>ppLjMW|Yt^x5Q@aPypbXT4@#GRODARDjHkC8s?${0BzOkmV zE;c?#L?gqEMOeB0TBc!WZ=F+d%NkuY+ywmSJ{Ag!29o zQ?q^PY1DCCKHxr;EjS`3K75bgCwO8@mszm+G3*OG)k})s!!fi zO8q4C9;=UmEf(UuF*)F|PYvzre3Eick zcIce4Q~Hz_4_Q7h!7TDDZ0X@iEp-Zo(VwUh$KF5J{VCZI{`@>MtCqEf) zN4uj#%X4UDcptlIErzXWE#YurtnygbJGxTTD%(UIyC=XGw@=c$u3uFmF1_8=qY?w3>FrLic#zGL!6_dhs_-O)1Ik;c;L}v(dF4W(#d-c zz4R1)`x`Y88an+Twz)gmw%3%hYB*uz4+&T&b0*q7948$z{|dH2N1$8T4XM4?96IFX zFJzZ0VBU=`G$wI_aBCTk;lG{>&5P5?=+t7|cyJ(Q_d6##d&T0K+#aMYc1lYdmMQvE zcBijPe&CofYv9Tm4~l=fl$yV6FM3_q!WH8(!NBwoHgDV+jBN7Jz+?%WA5bX88Y}v6 z`^2KFX&j{&T0)aEGE(u7qlg=TR-dmyxnpbj^G45O?<+Gw4;LUP8|xnzV|7z}T{lbn#_3Oc6$~>U=wxxz<$L zUUM~^t2iTle18Hm-^rER*V}%RPH(fNxWwMVqq2eg%ktBBZsj7#Sk)Cx#;-xGVso^3 zy`Sngu_g1M=fYvoDDrVDz@hplgk`!b-e0_udPOZ2e)-p^XQ449&U**3PNT8?{R(t# zmMH83rjZRK;O5%jXzaWW!erP}e4Xu!M=lP;L%j}Ql!-4I+_IKzgDj-4L1*Cfx9t$) za6?%)&Fl5ye8^Yf?VUpbo0?GK(~sahsww&{IEm)7*F$h!3(3dn1FBY@f|dJqpw*!c z(shp<`n>Qu7)713Yl&c3Zwyzd~C)p#p>uZNOz+I8$cv;eo<7%L_>XpC2O41jBo z7Q)PoOW+oD2AfX(B*xEfi=SuB#CjVpV9V}T(JJH}+!^^5&YmIV^P<&4=2Ck4XpBEK zoua-yBmLs1aQ0OvENU@PS?`1aXX#I#ap+)XL=|%~yzuNsSC zrn8~d7(X$s!6Y-K=spFL$$rXZxw-vubm1ytv0fJ}-}~eG zoH*LqJ(#2|ru0T}kD|=mE$Fn0B`lm}Ks%zJ3ajr=!ANmWf!H@)@YJ1#kYADyrh)CH zUL#IQWmz@g`21y*<8_-pM=Zj|S&eCl$`oO8bOyF~{gZw~jFq}9AB-R3gYb0za(b*j z7mJ2`mOe@oX|{ngy4bBC^XM`x>y#$+S6ZY0CwF*vz7?rH^oPi!r|I#j?No7oH9h#2 zDWo1cl1sWZrKHCx?(yM3t(&Z)27Q0h@R>tl;q1Y&RV3se>t6eX(o)4Jz!qxRE#pMplL?6u+F)|M5d7t zTj+t5~D*ZAR=#qa9 zKRqZD4j=Q#ykD4dpKov3lj`kSw5<0-VOvm((uM}WsxJ{(<}ix}Q!o@7$6)@oP&5pG zjgh@7;A+7^DA~J28T9YB zW;k`09$dC~LY0fG$^4R;@Jw(d=Z%P&-x{M&$KT%X!Au#8L|B#3E|LG*3wRr2Y$lhUU@L5s?CEV1g0mfeR) znO;6HyZtn@9Fp z-dk#EaF4FEDi@90Dekjlz7HJ~*Hl_1JD}L2IgB}dPq{zO{SDA!V<%z#X*(UXHj-xE z9V2XXj=FaFxbapxd^@}n?(ba%DdBm_^SVYI#)|-3 zH!*!}8lE@NLgTmy_~@DmuAj6})^6c%`;k}DsqqIOGxaFx)j1};%WVU@i(El}%03Ks ze*j0uSi+Je^`vdvPC!=rDe2jE65844X;tG&y!yH>J$?K_ge~<%JKKlS$O%J9D=t#G z-A#KIi{S4D*d%%kez>(4mP{KX>OIpI-j<5`)*gm+AKk-Y%fqmJ^d057TWp>#-G64I zxTi*U`N-|};qa!t!XoDqwcq7V`NKZT%WqF3uXhuK*-AOCtaXBl&5}i+`f<$iPlB9F z1M#@uAxv(qiE@}vi7qnXRCAsD&cIOltqYIj&BF5GqgpMv({W=kj-+3(MRD^gD4o; zHWz06u=K7pT`wh^4W`Y(8WecmTQrzA9@9cXNGt0Yw*U1GWBaa9_M_X&xoh6^x9skd+DYS8jnRt z?j6i+vkyis^uvWS>`-g}3oP$(n38raq-=}1WO3972cMoL%@1FKy?xDagHteG>|2Bj zrfe5AENq0;;BuN zbG2T(xp4>))BjFe;K z2@R*8knXItLbvC&P~?Qbo6%M@?`S4Y_8%f5%KA$C-4xG<9v+4UI|HQ9`94Zh=bFES z?S_1qwcLRw9Nq;PW~z9h*GVC_s3p2adXn#khS;~}Q4!UvQgUr!4>bk^!93N=V#cq! zSU=bV+mBblfi0Iw=ZxCHvRRL$<*kpvAicY=Ve&HRUPvUGQoMY%#*nIgVTIK`dh~KB zEqrkfOfPQ6_hT|~S&NZU`&s*;_?N3R`kM^|hc-mjyIHW;sDy$q%|LJeZ1_26H0Y$> zktWtPg5`ZzEBpJaEy@wHpHuW6P4o4h^OC3+BOFR2dSGLj4 z$d7VcUKh0tU(w2!$-?sTP7Jbo10PCiV%+q@*mUN3tUudN%A0%;ZXfsr?&YJD>lrM& zNJol4(YBj!$;5iGG}}KKU7cG|t7l!|eo-k+m^1?}JuaZw-k-^}-&o}9?Xkg72a8`&+PSy1eBc+-oYD|SM2)4?laDDr zsXZ3X>qX8#_R{jSc2sk&qHpNkz0$7%y3{yt9PV15DJ^||p2nptr}#C#=$r0|^QWH1 z92+-bdv!h*j$RHOz8rg?T9K5yGTFICWHRE0LY5i1R){HKF;{@ zZW)C-nu?kegN66vei%G28nybUfy&z`Ovzk{jr8`ydD4T(F1w-Nn*`JB>>$)vd4CJM zx9ucN+~)vuPyL|e;bGF!{2szuRTq1{xrc9F=LuPh$51@89EVsORUW^%XAkN2&w2FF zd^jCUiW3n=HSopo130{yF?!r+D*f1=LobIn!-e06Q-e-n^fPD@#ci!bnYllHsOuz# z^ty?KtD1tVxi{Xh8wQ=C_*}dphW4nhDM5 z984drFY3ky(xy@!VY+oTCHAW!Mz`(;C2>A@A>2dyy7DsW?K&aq>>DL42gK9X@I92E zzFrL3*_jr;%chTCLnv%bJg7a2ly1+75xOc`Xt%DAiVD_|cm2kABwU|t7i^VoZ(B;E zpZd^86A$cZ{$2EWH3$7lE@G~MKekBi2c5Q`hJKU$Vc5odkQ4VEXRTR?dS$Qi{DIq| zb5n0=w_iG{K8wfeTYtMx%Z>v{_}CyzjGez3S4Nmg5kKX)cJmbM_jD-CwyjjU2DY0g zB5HrZ*I}i&@3;x<)U=W=DEe5|uXR&?Hzp2Fml#1|R2tNFqFaC*U2}&))>H>Lx%;6MSnoXK&{WV|6(FVbb%!Z7&AlJYFO_!9&riOPr^b8HV1P_`f9Xz*57|S--noJ*H<47|5l@f*hWVw>ApW8k z8b!Vloljh%t`;M)@B4mea`yzRY-=Y>KCQspE;9V3=Z}*=2V#%uc~IWwE=~JVB!-Sy zLAu=hd&{*L+%*?ehhCS8CuPF>qlR+F(ax|< zUJL5((1)5{f%35?`c=mU-_==1&xiLH-C8`CXSlhc>-SptCTg#!dD0SNq6~4H>O<`G zsTAgJGMB8s?W55RrwiG$b*T0*5?VP$;m@(9v?pjJ4W0W*xD=^SqJ5>X9@!sLBb?A~ zXg*%9@F(*q3o;9I#jWc7sQ%Oar1kYQCfbHWn}b_$<55qnm*^$NVxj!po-n-Fz)&6< zct~_LvcpBjzHr7KG3)R;Vc)cqfcR+eOpC>Fg&@5?_#SSn%tdn(eYj?ET==RrLaX=? zx(Ys+5L+TtEJjgxlW39^w#JgBjYQX%r$}euK}n@(A`E%HPTC%w4X1)`q329F)d*`M znw}hjD<&Ply@eZas6`*i@uW3Yd?*vmP4?oXMus9ds}H7q=!YfWvT1v|ny_`sgY<+B zcsggMaEslBAF}6Cov0DGx-<&IUFuW)EpF7KthZ=r*bhIREr1zM&q`B$@^FFP0+?m| z22xi}$3E8jP;hHIR8D&;fm5F?ds$<325aG0c7xnwr z8M};MfMvbUp@U5vt>{xv$U5~DLtZS$3w=E>wO#_WYpaP#1J|QRYD4AU9?=UiGH@Z< zwLOeaCLG7)eY?^0P@MGWlncu4FMz>6X2bB>9#!WZSQ#}P+&jui-IwCTkoRG*CtHn+pM9?*WE(#WI$u(#(ZtEWxiFv4{*$o z`8qHBZJygX#X4sdX_XFL&`&YdP|lahVt<>~w^2+r6{E^;d6{BARcY0m)$^+I%Aq1E z!$c{;vFA_FGk6vF_g~pMsZuS6=IP+gGgfcgtU^F2j@m zTLCqho^n-XT)90_q}4lgZHK?xT=1JZ5OLjm?k|qxz4VR6YGmKE}r8&&u~_X}8)Mnc`gH?+m{6 zt}EyM_I~tSkyhzIzMU1*s&ka8a|a#8_?JPEH(0O8H2ceps%a1GO1}Q0v*sFEt>4f8 zYuZR!;*`9j)6f;yh2!A)lw5m?3GL=C-)rD*ni?XWIJYfMAU;!3j0Ty5Z7GMDu zU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j z0Ty5Z7GMDuU;!3j0Ty5Z7GQxtoq+K6&iT_dnj6dlEWiRRzyd750xZA+EWiRRzyd75 z0xZA+EWiRRzyd750xZA+EWiRRzyd750xZA+EWiRRzyd750xZA+EWiRRzyd750xZA+ zEWiRRzyd750xZA+EWiRRzyd7rrxpN9mC=7{0B$@BumB6N01L1H3$OqSumB6N01L1H z3$OqSumB6N01L1H3$OqSumB6N01L1H3$OqSumB6N01L1H3$OqSumB6N01L1H3$OqS zumB6N01L1H3$OqSumB6N01L1H3$OqSumB6N01L1H3$VaHT>ww7&HJZslsCu%EWiRR zzyd750xZA+EWiRRzyd750xZA+EWiRRzyd7rKQ2Hi^^^X`cgj0t0Ty5Z7GMDuU;!3j z0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3jfj@}=rbF*P zNmIF*EWiRRzyd750xZA+EWiRRzyd750xZA+EWiRRzyg0@0X+KL^$%P-+1 z)|>0h0xZA+EWiT)ZUU&X{QkdNo47qJzyd750xZA+EWiRRzyd750xZA+{~iL6n9%y) zqb1x57GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7GMDuU;!3j0Ty5Z7WjWJAc9RF{=csU z*MJ3BfCX591z3OuSbzmsfCX591z3OuSbzmsfCX6K-&sI(vV8vU+&*p_3$OqSumB6N z01N!t1aR1)J%7YDf5dumomhYcSl~Ys5Dhzd|7Xj1J`1n_3;Z(##MrBM{~6oi zZLk0fumB6N01L1H3$OqSumB6Nz<*T$KjsJhSIcra7GMDupd-bf{)h^sv8&-9v0hv! z7GMDuV1a*3fas;(lfB=D&2t<#x`_I-&0L2m@K!5-N0t5&UAV7cs0RjXF z5FkK+009C72oPuxfzs*6r!JLheBkJNmzp<6fI$8P;v3I=lfSA|M1TMR0t5&UAV7cs z0Rovoyz%3G%^(qd`N5;jP-m@cjJrm!t91_cC(sB2@%G8Xm&-GnJ-qF5YZ_@jE_5`- z_e~=`6S)!~K!5-N0t5&UAdp{yxO?*V{8pzj0tE6X5WTuEl*hW%M1TMR0t5&UAV7cs z0RjXF5FkK+009C7u2vxG*&bbOjP(Qv5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RmSpQ2L_d`zv2@5i2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBnQZ-LV16Fv2vq3j3{AV7cs0RjXF5FkK+009C72-K%Q)Vb~3 z`pisL1PBnQUZ8K?k|E(R#1kMuV6_FJk7jqR_MY}5K!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK%h1P(S0Z8YO}Ll2@oJafB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Fk*!K<}=%f2uxO zBmn{h2oNAZfB*pk1PBlyK!8BA2=uKxvbkAmRVM)g1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfIz+k`p$mxbG|B44FLiK2oNAZfB*pk1PBlyK!5-N0;?_1wJ~fc-PBSDt>MZ4 z-Mcb994gcOVaMG^!;Y;#r0Z_zA4s;Q=j)eRTNV3#Ew=%5zz7`4|`*eRg#C>EgfdS+Tf0qep-M0RjXF)KcIdP81#8 literal 0 HcmV?d00001 diff --git a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh index a8566d8d21..1eef7e7072 100644 --- a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh +++ b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh @@ -1,55 +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. * +// ******************************************************************** +// +// +// Code developed by: +// S.Guatelli +// +// +// $Id: BrachyAnalysisManager.hh,v 1.6 2002/11/27 11:11:22 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ********************************** +// * * +// * BrachyAnalysisManager.hh * +// * * +// ********************************** +// +// the class Analysis creates and managed histograms and ntuples +// +#ifdef G4ANALYSIS_USE #ifndef G4PROCESSTESTANALYSIS_HH #define G4PROCESSTESTANALYSIS_HH #include "globals.hh" #include "g4std/vector" #include "G4ThreeVector.hh" - +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" +#include "AIDA/IAnalysisFactory.h" +namespace AIDA{ class ITree; class IHistogramFactory; class IAnalysisFactory; class ITupleFactory; class ITuple; +class ITreeFactory; +}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class BrachyAnalysisManager { public: - - ~BrachyAnalysisManager(); - void book(); - - void finish(); +~BrachyAnalysisManager(); - static BrachyAnalysisManager* getInstance(); - - void analyse(G4double,G4double,G4float); - void hist(G4double,G4double,G4float); - void Spectrum(G4double); +void book(); + +void finish(); + +static BrachyAnalysisManager* getInstance(); + +void fill_Tuple(G4double,G4double,G4double,G4float); +void hist(G4double,G4double,G4float); +void Spectrum(G4double); private: - G4double xx,zz; - G4float en; - G4double x,z; - static BrachyAnalysisManager* instance; +G4double xx,zz,yy; +G4float en; +G4double x,y,z; +static BrachyAnalysisManager* instance; private: - BrachyAnalysisManager(); +BrachyAnalysisManager(); private: - IAnalysisFactory *aFact; - ITree *theTree; - IHistogramFactory *histFact; - ITupleFactory *tupFact; - +AIDA::IAnalysisFactory* aFact; +AIDA::ITree* theTree; +AIDA::IHistogramFactory *histFact; +AIDA::ITupleFactory *tupFact; +AIDA::ITreeFactory *treeFact; +AIDA::IHistogram2D *h1; +AIDA::IHistogram1D *h2; +AIDA::ITuple *ntuple; }; #endif +#endif - diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh index 5e29b113b3..cf1f5dfb66 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh @@ -1,9 +1,36 @@ +// +// ******************************************************************** +// * 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: BrachyDetectorConstruction.hh,v 1.13 2002/11/18 15:18:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // **************************************** // * * // * BrachyDetectorConstruction.hh * // * * // **************************************** - +// this class manages the geometry of the simulation set up +// #ifndef BrachyDetectorConstruction_H #define BrachyDetectorConstruction_H 1 @@ -12,7 +39,6 @@ #include "G4VUserDetectorConstruction.hh" #include "G4LogicalVolume.hh" - class BrachyPhantomSD; class BrachyDetectorMessenger; class G4LogicalVolume; @@ -21,89 +47,107 @@ class G4Tubs; class G4Box; class G4Sphere; class G4Tubs; - +class G4Colour; class G4VPhysicalVolume; - - - +class BrachyPhantomSD; +class BrachyPhantomROGeometry; class G4VPhysicalVolume; +class BrachyMaterial; +class BrachyFactoryIr; +class BrachyFactoryI; +class BrachyFactoryLeipzig; +class BrachyVoxelParameterisation; class BrachyDetectorConstruction : public G4VUserDetectorConstruction { public: - BrachyDetectorConstruction(G4String&); - ~BrachyDetectorConstruction(); + BrachyDetectorConstruction(G4String&); + ~BrachyDetectorConstruction(); private: - G4double m_BoxDimX; - G4double m_BoxDimY; - G4double m_BoxDimZ; - G4int NumVoxelX; - G4int NumVoxelZ; - G4double dimVoxel; - G4String m_SDName; +G4int* pVoxel; +G4double m_BoxDimX; +G4double m_BoxDimY; +G4double m_BoxDimZ; +G4int NumVoxelX; +G4int NumVoxelZ; +G4double dimVoxel; +G4String m_SDName; +G4int detectorChoice; +G4double ExpHall_x ; +G4double ExpHall_y ; +G4double ExpHall_z ; + + +BrachyPhantomSD* pPhantomSD; +BrachyPhantomROGeometry* pPhantomROGeometry; + + +BrachyFactoryLeipzig* factoryLeipzig; +BrachyFactoryI* factoryI; +BrachyFactoryIr* factoryIr; +BrachyMaterial* pMat; + public: - void PrintDetectorParameters(); - void SetAbsorberMaterial(G4String); - const G4double VoxelWidth_X() {return m_BoxDimX/NumVoxelX;};//num voxel - const G4double VoxelWidth_Z() {return m_BoxDimZ/NumVoxelZ;}; - const G4int GetNumVoxelX(){return NumVoxelX;}; - const G4int GetNumVoxelZ(){return NumVoxelZ;}; - const G4double GetDimX(){return m_BoxDimX;}; - - const G4double GetBoxDim_Z() {return m_BoxDimZ;}; - - - -private: +void PrintDetectorParameters(); +void SetAbsorberMaterial(G4String); - BrachyDetectorMessenger* detectorMessenger; +const G4double VoxelWidth_X() {return m_BoxDimX/NumVoxelX;};//num voxel +const G4double VoxelWidth_Z() {return m_BoxDimZ/NumVoxelZ;}; +const G4int GetNumVoxelX(){return NumVoxelX;}; +const G4int GetNumVoxelZ(){return NumVoxelZ;}; +const G4double GetDimX(){return m_BoxDimX;}; - G4Box* ExpHall; //pointer to the solid World - G4LogicalVolume* ExpHallLog; //pointer to the logical World - G4VPhysicalVolume* ExpHallPhys; //pointer to the physical World +const G4double GetBoxDim_Z() {return m_BoxDimZ;}; - - G4Box* Phantom; - G4LogicalVolume* PhantomLog; - G4VPhysicalVolume* PhantomPhys; - - - G4Tubs* Capsule ; - G4LogicalVolume* CapsuleLog; //pointer to the logical World - G4VPhysicalVolume* CapsulePhys; - - G4Sphere* CapsuleTip; - G4LogicalVolume* CapsuleTipLog; - G4VPhysicalVolume* CapsuleTipPhys; - - G4Tubs* IridiumCore; - G4LogicalVolume* IridiumCoreLog; - G4VPhysicalVolume* IridiumCorePhys; - - G4Material* air; - //G4Material* water; - G4Material* CapsuleMat; - G4Material* IridiumMat; - G4Material* AbsorberMaterial; - - G4VPhysicalVolume* Construct(); +void SwitchDetector(); private: - - void DefineMaterials(); - void ComputeDimVoxel(); - + +BrachyDetectorMessenger* detectorMessenger; + +G4Box* ExpHall; //pointer to the solid World +G4LogicalVolume* ExpHallLog; //pointer to the logical World +G4VPhysicalVolume* ExpHallPhys; //pointer to the physical World + +G4Box* solidVoxel; +G4LogicalVolume* logicVoxel; +G4VPhysicalVolume* physiVoxel; + + +G4Box* Phantom; +G4LogicalVolume* PhantomLog; +G4VPhysicalVolume* PhantomPhys; +G4Box* Voxel; +G4LogicalVolume* VoxelLog; +G4VPhysicalVolume* VoxelPhys; + + +G4Material* AbsorberMaterial; + + +void ConstructPhantom(); +void ConstructSensitiveDetector(); + +private: +G4VPhysicalVolume* Construct(); + + void ComputeDimVoxel(); + + public: - G4VPhysicalVolume* ConstructDetector(); - + G4VPhysicalVolume* ConstructDetector(); +void SelectDetector(G4String val); + + + }; inline void BrachyDetectorConstruction::ComputeDimVoxel() { - dimVoxel=m_BoxDimX/NumVoxelX; +dimVoxel=m_BoxDimX/NumVoxelX; } diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh new file mode 100644 index 0000000000..99e0728391 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * 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: BrachyDetectorConstructionI.hh,v 1.2 2002/11/18 15:18:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// **************************************** +// * * +// * BrachyDetectorConstructionI.hh * +// * * +// **************************************** +//Management of the Iodium source + +#ifndef BrachyDetectorConstructionI_H +#define BrachyDetectorConstructionI_H 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4LogicalVolume.hh" + + +class G4LogicalVolume; + +class G4Tubs; +class G4Box; +class G4Sphere; +class G4Tubs; +class G4Colour; +class G4VPhysicalVolume; +class G4VPhysicalVolume; +class BrachyMaterial; + +class BrachyDetectorConstructionI +{ +public: + BrachyDetectorConstructionI(); + ~BrachyDetectorConstructionI(); + + +private: +G4VisAttributes* simpleMarkerVisAtt; +G4VisAttributes* simpleIodiumVisAtt; + +G4VisAttributes* simpleCapsuleVisAtt; +G4VisAttributes* simpleCapsuleTipVisAtt; + +public: + + +void ConstructIodium(G4VPhysicalVolume*); +private: +G4Tubs* DefaultTub; +G4LogicalVolume* DefaultTub_log; +G4VPhysicalVolume*DefaultTub_Phys; + +G4Tubs* Capsule ; +G4LogicalVolume* CapsuleLog; //pointer to the logical World +G4VPhysicalVolume* CapsulePhys; + +G4Sphere* CapsuleTip; +G4LogicalVolume* CapsuleTipLog; +G4VPhysicalVolume* CapsuleTipPhys1; +G4VPhysicalVolume* CapsuleTipPhys2; + +G4Tubs* IodiumCore; +G4LogicalVolume* ICoreLog; +G4VPhysicalVolume* ICorePhys; + +G4Tubs* Marker; +G4LogicalVolume* MarkerLog; +G4VPhysicalVolume* MarkerPhys; + +BrachyMaterial* pMat; +}; + + + +#endif + + + + + + + + diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh new file mode 100644 index 0000000000..c837526691 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * 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: BrachyDetectorConstructionIr.hh,v 1.2 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// **************************************** +// * * +// * BrachyDetectorConstructionIr.hh * +// * * +// **************************************** +// +//Management of the Iridium source +// + +#ifndef BrachyDetectorConstructionIr_H +#define BrachyDetectorConstructionIr_H 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4LogicalVolume.hh" + + +class G4LogicalVolume; + +class G4Tubs; +class G4Box; +class G4Sphere; +class G4Tubs; +class G4Colour; +class G4VPhysicalVolume; +class G4VPhysicalVolume; +class BrachyMaterial; + +class BrachyDetectorConstructionIr +{ + public: + BrachyDetectorConstructionIr(); + ~BrachyDetectorConstructionIr(); + + + private: + + G4VisAttributes* simpleCapsuleVisAtt; + G4VisAttributes* simpleCapsuleTipVisAtt; + G4VisAttributes* simpleIridiumVisAtt; + + + +public: + + void CleanIridium(); + void ConstructIridium(G4VPhysicalVolume*); + private: + + G4Box* WaterBox; + G4LogicalVolume* WaterBoxLog; + G4VPhysicalVolume* WaterBoxPhys; + + G4Tubs* Capsule ; + G4LogicalVolume* CapsuleLog; //pointer to the logical World + G4VPhysicalVolume* CapsulePhys; + + G4Sphere* CapsuleTip; + G4LogicalVolume* CapsuleTipLog; + G4VPhysicalVolume* CapsuleTipPhys; + + G4Tubs* IridiumCore; + G4LogicalVolume* IridiumCoreLog; + G4VPhysicalVolume* IridiumCorePhys; + + + BrachyMaterial* pMat; + }; + + + +#endif + + + + + + + + diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh new file mode 100644 index 0000000000..720e5b2c63 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: BrachyDetectorConstructionLeipzig.hh,v 1.2 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ************************************************ +// * * +// * BrachyDetectorConstructionLeipzig.hh * +// * * +// ************************************************ +// +//Management of Leipzig Applicator +// +#ifndef BrachyDetectorConstructionLeipzig_H +#define BrachyDetectorConstructionLeipzig_H 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4LogicalVolume.hh" + + +class G4LogicalVolume; + +class G4Tubs; +class G4Box; +class G4Sphere; +class G4Tubs; +class G4Colour; +class G4VPhysicalVolume; +class G4VPhysicalVolume; +class BrachyMaterial; + +class BrachyDetectorConstructionLeipzig +{ + public: + BrachyDetectorConstructionLeipzig(); + ~BrachyDetectorConstructionLeipzig(); + + + private: + + G4VisAttributes* simpleCapsuleVisAtt; + G4VisAttributes* simpleCapsuleTipVisAtt; +public: + + void ConstructLeipzig(G4VPhysicalVolume*); + + private:G4Tubs* Capsule ; + G4LogicalVolume* CapsuleLog; //pointer to the logical World + G4VPhysicalVolume* CapsulePhys; + + G4Sphere* CapsuleTip; + G4LogicalVolume* CapsuleTipLog; + G4VPhysicalVolume* CapsuleTipPhys; + + G4Tubs* IridiumCore; + G4LogicalVolume* IridiumCoreLog; + G4VPhysicalVolume* IridiumCorePhys; + + G4Tubs* Appl1; + G4LogicalVolume* Appl1Log ; + G4VPhysicalVolume* Appl1Phys; + + G4Tubs* Appl2; + G4LogicalVolume* Appl2Log ; + G4VPhysicalVolume* Appl2Phys; + + BrachyMaterial* pMat; + }; + +#endif diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh index 9d9ae122ec..664a226ad8 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh @@ -21,8 +21,14 @@ // ******************************************************************** // // -// $Id: BrachyDetectorMessenger.hh,v 1.2 2002/06/18 22:24:22 guatelli Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ***************************************** +// * * +// * BrachyDetectrorMessenger.hh * +// * * +// ***************************************** +// +// $Id: BrachyDetectorMessenger.hh,v 1.4 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -36,6 +42,8 @@ #include "G4UImessenger.hh" class BrachyDetectorConstruction; +class BrachyFactoryIr; +class BrachyRunAction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; @@ -46,19 +54,24 @@ class G4UIcmdWithoutParameter; class BrachyDetectorMessenger: public G4UImessenger { -public: - BrachyDetectorMessenger(BrachyDetectorConstruction* ); - ~BrachyDetectorMessenger(); + public: + BrachyDetectorMessenger(BrachyDetectorConstruction* ); + ~BrachyDetectorMessenger(); - void SetNewValue(G4UIcommand*, G4String); - -private: - BrachyDetectorConstruction* Detector; - - G4UIdirectory* detDir; - G4UIcmdWithAString* AbsMaterCmd; - - G4UIcmdWithoutParameter* UpdateCmd; + void SetNewValue(G4UIcommand*, G4String); + + private: + +BrachyDetectorConstruction* Detector; +G4UIcmdWithAString* selDetCmd; +G4UIcmdWithAString* switchCmd; +G4UIcmdWithAString* cleanCmd; +G4UIdirectory* detDir; +G4UIdirectory* mydetDir; +G4UIcmdWithAString* AbsMaterCmd; +G4int detectorChoice; +G4int flag; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/brachytherapy/include/BrachyDummySD.hh b/examples/advanced/brachytherapy/include/BrachyDummySD.hh index 2877407693..0726524c6e 100644 --- a/examples/advanced/brachytherapy/include/BrachyDummySD.hh +++ b/examples/advanced/brachytherapy/include/BrachyDummySD.hh @@ -36,16 +36,16 @@ class G4Step; class BrachyDummySD : public G4VSensitiveDetector { -public: - BrachyDummySD(); - ~BrachyDummySD() {}; + public: + BrachyDummySD(); + ~BrachyDummySD() {}; - void Initialize(G4HCofThisEvent*HCE) {}; - G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} - void EndOfEvent(G4HCofThisEvent*HCE) {}; - void clear() {}; - void DrawAll() {}; - void PrintAll() {}; + void Initialize(G4HCofThisEvent*HCE) {}; + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} + void EndOfEvent(G4HCofThisEvent*HCE) {}; + void clear() {}; + void DrawAll() {}; + void PrintAll() {}; }; BrachyDummySD::BrachyDummySD() : G4VSensitiveDetector("dummySD") diff --git a/examples/advanced/brachytherapy/include/BrachyEventAction.hh b/examples/advanced/brachytherapy/include/BrachyEventAction.hh index 9dac292700..428a0a5e40 100644 --- a/examples/advanced/brachytherapy/include/BrachyEventAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyEventAction.hh @@ -20,6 +20,13 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: BrachyEventAction.hh,v 1.11 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// Code developed by: +// S.Guatelli +// // ********************************** // * * // * BrachyEventAction.hh * @@ -33,42 +40,42 @@ #include "globals.hh" class BrachyDetectorConstruction; class BrachyAnalysisManager; +class BrachyPrimaryGeneratorActionI; +class BrachyPrimaryGeneratorActionIr; class BrachyEventAction : public G4UserEventAction { public: - BrachyEventAction(G4String&); - ~BrachyEventAction(); +BrachyEventAction(G4String&); +~BrachyEventAction(); public: - void BeginOfEventAction(const G4Event*); - void EndOfEventAction(const G4Event*); - - - +void BeginOfEventAction(const G4Event*); +void EndOfEventAction(const G4Event*); private: - G4double EnergyDep; - G4int m_NumVoxelX; - G4int m_NumVoxelZ; - - BrachyDetectorConstruction *pDetector; - G4double VoxelWidth_Z; - G4double VoxelWidth_X; - +G4double EnergyDep; + G4int m_NumVoxelX; + G4int m_NumVoxelZ; + +G4double VoxelWidth_Z; +G4double VoxelWidth_X; + private: - G4int m_HitsCollectionID; - G4String drawFlag; - G4int j; - G4int i; - G4int k; - G4double x; - G4double z; - G4String SDname; - G4int printModulo; - +G4int m_HitsCollectionID; +G4String drawFlag; +G4int j; +G4int i; +G4int k; +G4double x; +G4double z; +G4double y; +G4String SDname; +G4int printModulo; +BrachyDetectorConstruction* pDetector; + }; #endif - + diff --git a/examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.hh b/examples/advanced/brachytherapy/include/BrachyFactory.hh similarity index 67% rename from examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.hh rename to examples/advanced/brachytherapy/include/BrachyFactory.hh index aaa0547d75..6d3411a438 100644 --- a/examples/extended/biasing/B08/include/B08PrimaryGeneratorAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactory.hh @@ -21,29 +21,50 @@ // ******************************************************************** // // -// $Id: B08PrimaryGeneratorAction.hh,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: BrachyFactory.hh,v 1.2 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // +// ********************************** +// * * +// * BrachyFactory.hh * +// * * +// ********************************** +// +// this is the abstract class which manages the sources -#ifndef B08PrimaryGeneratorAction_hh -#define B08PrimaryGeneratorAction_hh B08PrimaryGeneratorAction_hh - +#ifndef BrachyFactory_h +#define BrachyFactory_h 1 #include "G4VUserPrimaryGeneratorAction.hh" - +#include "G4RadioactiveDecay.hh" class G4ParticleGun; +class G4Run; class G4Event; +class BrachyAnalysisManager; -class B08PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class BrachyFactory { - public: - B08PrimaryGeneratorAction(); - ~B08PrimaryGeneratorAction(); - - public: - void GeneratePrimaries(G4Event* anEvent); - - private: - G4ParticleGun* particleGun; +public: + BrachyFactory(); + virtual ~BrachyFactory(); + virtual G4VUserPrimaryGeneratorAction* CreatePrimaryGeneratorAction()=0; + virtual void CreateSource(G4VPhysicalVolume*)=0; + virtual void CleanSource()=0; }; - #endif + + + + + + + + + + + + + + + + + diff --git a/examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.hh b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh similarity index 67% rename from examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.hh rename to examples/advanced/brachytherapy/include/BrachyFactoryI.hh index 58147c9a02..92d2466d51 100644 --- a/examples/extended/biasing/B07/include/B07PrimaryGeneratorAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh @@ -20,30 +20,37 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: BrachyFactoryI.hh,v 1.3 2002/12/13 09:25:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: B07PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#ifndef B07PrimaryGeneratorAction_hh -#define B07PrimaryGeneratorAction_hh B07PrimaryGeneratorAction_hh +// +// -------------------------------------------------------------- +#ifndef BrachyFactoryI_h +#define BrachyFactoryI_h 1 #include "G4VUserPrimaryGeneratorAction.hh" - +#include "G4RadioactiveDecay.hh" +#include"BrachyDetectorConstructionI.hh" +#include"BrachyFactory.hh" +#include "G4RunManager.hh" class G4ParticleGun; +class G4Run; class G4Event; - -class B07PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class BrachyAnalysisManager; +class BrachyFactory; +class BrachyPrimaryGeneratorActionI; +class BrachyDetectorConstructionI; +class BrachyFactoryI:public BrachyFactory { - public: - B07PrimaryGeneratorAction(); - ~B07PrimaryGeneratorAction(); +public: + BrachyFactoryI(); + ~BrachyFactoryI(); + G4VUserPrimaryGeneratorAction* CreatePrimaryGeneratorAction(); + void CreateSource(G4VPhysicalVolume*); + void CleanSource(); +private: + BrachyDetectorConstructionI* pIodio; + - public: - void GeneratePrimaries(G4Event* anEvent); - - private: - G4ParticleGun* particleGun; }; - #endif diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh new file mode 100644 index 0000000000..39e1a39c20 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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: BrachyFactoryIr.hh,v 1.2 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ********************************** +// * * +// * BrachyFactoryIr.hh * +// * * +// ********************************** +// +// +// +#ifndef BrachyFactoryIr_h +#define BrachyFactoryIr_h 1 +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4RadioactiveDecay.hh" +#include"BrachyFactory.hh" +#include "G4RunManager.hh" +class G4ParticleGun; +class G4Run; +class G4Event; +class BrachyAnalysisManager; +class BrachyFactory; +class BrachyPrimaryGeneratorActionIr; +class BrachyDetectorConstructionIr; + +class BrachyFactoryIr:public BrachyFactory +{ +public: + BrachyFactoryIr(); + ~BrachyFactoryIr(); + G4VUserPrimaryGeneratorAction* CreatePrimaryGeneratorAction(); + void CreateSource(G4VPhysicalVolume*); + void CleanSource(); +private: + BrachyDetectorConstructionIr* pIridio; +}; +#endif diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh new file mode 100644 index 0000000000..7d9860833f --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.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: BrachyFactoryLeipzig.hh,v 1.2 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ********************************** +// * * +// * BrachyFactoryLeipzig.hh * +// * * +// ********************************** +// +// +#ifndef BrachyFactoryLeipzig_h +#define BrachyFactoryLeipzig_h 1 +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4RadioactiveDecay.hh" +#include"BrachyFactory.hh" +#include "G4RunManager.hh" +class G4ParticleGun; +class G4Run; +class G4Event; +class BrachyAnalysisManager; +class BrachyFactory; +class BrachyPrimaryGeneratorActionIr; +class BrachyDetectorConstructionLeipzig; + +class BrachyFactoryLeipzig:public BrachyFactory +{ +public: + BrachyFactoryLeipzig(); + ~BrachyFactoryLeipzig(); + G4VUserPrimaryGeneratorAction* CreatePrimaryGeneratorAction(); + void CreateSource(G4VPhysicalVolume*); + void CleanSource(); +private: + BrachyDetectorConstructionLeipzig* pLeipzig; +}; +#endif diff --git a/examples/extended/biasing/B06/include/B06ScorePrinter.hh b/examples/advanced/brachytherapy/include/BrachyMaterial.hh similarity index 71% rename from examples/extended/biasing/B06/include/B06ScorePrinter.hh rename to examples/advanced/brachytherapy/include/BrachyMaterial.hh index 873e71abf0..dd7bec0288 100644 --- a/examples/extended/biasing/B06/include/B06ScorePrinter.hh +++ b/examples/advanced/brachytherapy/include/BrachyMaterial.hh @@ -21,32 +21,33 @@ // ******************************************************************** // // -// $Id: B06ScorePrinter.hh,v 1.4 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: BrachyMaterial.hh,v 1.2 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // - -#ifndef B06ScorePrinter_hh -#define B06ScorePrinter_hh B06ScorePrinter_hh - -#include "g4std/iostream" -#include "g4std/iomanip" - +// ********************************** +// * * +// * BrachyMaterial.hh * +// * * +// ********************************** +//This class manages the elments and materials nedded by the simulation +// set-up +// +#ifndef BrachyMaterial_H +#define BrachyMaterial_H 1 #include "globals.hh" -#include "G4PMapPtkTallys.hh" +class G4Material; + + +class BrachyMaterial +{ public: + BrachyMaterial(); + ~ BrachyMaterial(); -class B06ScorePrinter -{ public: - B06ScorePrinter(); - ~B06ScorePrinter(){} - void PrintHeader(G4std::ostream *out); - void PrintTable(const G4PMapPtkTallys &aMapPtkTallys, G4std::ostream *out); - G4std::string FillString(const G4std::string &name, - char c, G4int n, G4bool back = true); -private: - G4int FieldName; - G4int FieldValue; + void DefineMaterials(); +public: + G4Material* GetMat(G4String); }; #endif diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh index 0ac28597a3..9b3cd4cd68 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh @@ -20,11 +20,17 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: BrachyPhantomHit.hh,v 1.4 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// // ******************************** // * * // * BrachyPhantomHit.hh * // * * // ******************************** +// It manages the hits #ifndef BrachyPhantomHit_h #define BrachyPhantomHit_h 1 @@ -39,52 +45,56 @@ class BrachyPhantomHit : public G4VHit { -public: - BrachyPhantomHit(G4LogicalVolume* logVol,G4int XID,G4int ZID); - ~BrachyPhantomHit(); - BrachyPhantomHit(const BrachyPhantomHit &right); - const BrachyPhantomHit& operator=(const BrachyPhantomHit &right); - int operator==(const BrachyPhantomHit &right) const; + public: + BrachyPhantomHit(G4LogicalVolume* ,G4int ,G4int ,G4int ); + ~BrachyPhantomHit(); + BrachyPhantomHit(const BrachyPhantomHit &right); + const BrachyPhantomHit& operator=(const BrachyPhantomHit &right); + int operator==(const BrachyPhantomHit &right) const; - inline void *operator new(size_t); - inline void operator delete(void *aHit); + inline void *operator new(size_t); + inline void operator delete(void *aHit); - void Draw(); - void Print(); + void Draw(); + void Print(); -private: - G4ThreeVector m_Pos; - G4RotationMatrix m_Rot; - const G4LogicalVolume* m_pLogV; + private: + G4ThreeVector m_Pos; + G4RotationMatrix m_Rot; + const G4LogicalVolume* m_pLogV; - G4double m_Edep; + G4double m_Edep; - G4int m_XID; - G4int m_ZID; - -public: - inline void SetCellID(G4int XID,G4int ZID) - {m_XID = XID;m_ZID = ZID;} - inline G4int GetXID() - {return m_XID;} - inline G4int GetZID() - {return m_ZID;} - inline void SetEdep(G4double edep) - {m_Edep = edep;} - inline void AddEdep(G4double edep) - {m_Edep += edep;} - inline G4double GetEdep() - {return m_Edep;} - inline void SetPos(G4ThreeVector xyz) - {m_Pos = xyz;} - inline G4ThreeVector GetPos() - {return m_Pos;} - inline void SetRot(G4RotationMatrix rmat) - {m_Rot = rmat;} - inline G4RotationMatrix GetRot() - {return m_Rot;} - inline const G4LogicalVolume * GetLogV() - {return m_pLogV;} + G4int m_XID; + G4int m_ZID; + G4int m_YID; + public: + inline void SetCellID(G4int XID,G4int YID,G4int ZID) + {m_XID = XID;m_ZID = ZID; m_YID = YID; } + inline G4int GetXID() + {return m_XID;} + inline G4int GetZID() + {return m_ZID;} + + inline G4int GetYID() + {return m_YID;} + + inline void SetEdep(G4double edep) + {m_Edep = edep;} + inline void AddEdep(G4double edep) + {m_Edep += edep;} + inline G4double GetEdep() + {return m_Edep;} + inline void SetPos(G4ThreeVector xyz) + {m_Pos = xyz;} + inline G4ThreeVector GetPos() + {return m_Pos;} + inline void SetRot(G4RotationMatrix rmat) + {m_Rot = rmat;} + inline G4RotationMatrix GetRot() + {return m_Rot;} + inline const G4LogicalVolume * GetLogV() + {return m_pLogV;} }; typedef G4THitsCollection BrachyPhantomHitsCollection; @@ -92,14 +102,14 @@ extern G4Allocator BrachyPhantomHitAllocator; inline void* BrachyPhantomHit::operator new(size_t) { - void *aHit; - aHit = (void *) BrachyPhantomHitAllocator.MallocSingle(); - return aHit; + void *aHit; + aHit = (void *) BrachyPhantomHitAllocator.MallocSingle(); + return aHit; } inline void BrachyPhantomHit::operator delete(void *aHit) { - BrachyPhantomHitAllocator.FreeSingle((BrachyPhantomHit*) aHit); + BrachyPhantomHitAllocator.FreeSingle((BrachyPhantomHit*) aHit); } #endif diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh index ed5b4ce8b5..dc824319f0 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh @@ -20,13 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: BrachyPhantomROGeometry.hh,v 1.3 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // ************************************ // * * -// * BrachyWaterBoxROGeometry.hh * +// * BrachyPhantomROGeometry.hh * // * * // ************************************ - - +// +//The phantom is devided in voxels. the dimension of the voxel is 1mm +// #ifndef BrachyPhantomROGeometry_h #define BrachyPhantomROGeometry_h @@ -34,18 +39,18 @@ class BrachyPhantomROGeometry : public G4VReadOutGeometry { -public: - BrachyPhantomROGeometry(G4String aString,G4double DetDimX,G4double DetDimZ,G4int NumVoxelX,G4int NumVoxelZ); - ~BrachyPhantomROGeometry(); + public: + BrachyPhantomROGeometry(G4String aString,G4double DetDimX,G4double DetDimZ,G4int NumVoxelX,G4int NumVoxelZ); + ~BrachyPhantomROGeometry(); -private: - const G4double m_DetDimX; - const G4double m_DetDimZ; - const G4int m_NumVoxelX; - const G4int m_NumVoxelZ; + private: + const G4double m_DetDimX; + const G4double m_DetDimZ; + const G4int m_NumVoxelX; + const G4int m_NumVoxelZ; -private: - G4VPhysicalVolume* Build(); + private: + G4VPhysicalVolume* Build(); }; #endif diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh index 32f0073d9a..699e421bb6 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh @@ -20,14 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: BrachyPhantomSD.hh,v 1.3 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // ******************************** // * * -// * BrachyWaterBoxSD.hh * +// * BrachyPhantomSD.hh * // * * // ******************************** #ifndef BrachyPhantomSD_h -#define BrachyPHANTOMSD_h 1 +#define BrachyPhantomSD_h 1 #include "G4VSensitiveDetector.hh" #include "BrachyPhantomHit.hh" @@ -38,22 +42,23 @@ class G4TouchableHistory; class BrachyPhantomSD : public G4VSensitiveDetector { -public: - BrachyPhantomSD(G4String name, G4int NumVoxelX, G4int NumVoxelZ); - ~BrachyPhantomSD(); + public: + BrachyPhantomSD(G4String name, G4int NumVoxelX, G4int NumVoxelZ); + ~BrachyPhantomSD(); - void Initialize(G4HCofThisEvent*HCE); - G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); - void EndOfEvent(G4HCofThisEvent*HCE); - void clear(); - void DrawAll(); - void PrintAll(); -private: - BrachyPhantomHitsCollection *m_pPhantomHitsCollection; + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + private: + BrachyPhantomHitsCollection *m_pPhantomHitsCollection; - const G4int m_NumVoxelX; - const G4int m_NumVoxelZ; - G4int *m_pVoxelID; + const G4int m_NumVoxelX; + const G4int m_NumVoxelZ; + G4int *m_pVoxelID; }; #endif + diff --git a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh index e054b645a2..477459a82c 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh @@ -20,6 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: BrachyPhysicsList.hh,v 1.6 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // ********************************** // * * // * BrachyPhysicsList.hh * @@ -40,46 +44,46 @@ class G4LowEnergyBremsstrahlung; class BrachyPhysicsList: public G4VUserPhysicsList { -public: - BrachyPhysicsList(); - ~BrachyPhysicsList(); + public: + BrachyPhysicsList(); + ~BrachyPhysicsList(); -protected: - // Construct particle and physics - void ConstructParticle(); - void ConstructProcess(); + protected: + // Construct particle and physics + void ConstructParticle(); + void ConstructProcess(); - void SetCuts(); + void SetCuts(); -public: - // Set Cuts - void SetGammaCut(G4double); - void SetElectronCut(G4double); - void SetPositronCut(G4double); + public: + // Set Cuts + void SetGammaCut(G4double); + void SetElectronCut(G4double); + void SetPositronCut(G4double); - void SetGammaLowLimit(G4double); - void SetElectronLowLimit(G4double); - void SetGELowLimit(G4double); - void SetLowEnSecPhotCut(G4double); - void SetLowEnSecElecCut(G4double); + void SetGammaLowLimit(G4double); + void SetElectronLowLimit(G4double); + void SetGELowLimit(G4double); + void SetLowEnSecPhotCut(G4double); + void SetLowEnSecElecCut(G4double); -private: + private: - G4double cutForGamma; - G4double cutForElectron; - G4double cutForPositron; + G4double cutForGamma; + G4double cutForElectron; + G4double cutForPositron; -protected: - // these methods Construct particles - void ConstructBosons(); - void ConstructLeptons(); + protected: + // these methods Construct particles + void ConstructBosons(); + void ConstructLeptons(); -protected: + protected: // these methods Construct physics processes and register them - void ConstructGeneral(); - void ConstructEM(); + void ConstructGeneral(); + void ConstructEM(); -private: + private: G4LowEnergyIonisation* loweIon; G4LowEnergyPhotoElectric* lowePhot; G4LowEnergyBremsstrahlung* loweBrem; diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh index a476e8960c..145179c7fa 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh @@ -1,3 +1,29 @@ +// +// ******************************************************************** +// * 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: BrachyPrimaryGeneratorAction.hh,v 1.8 2002/11/18 15:18:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // ******************************************** // * * // * BrachyPrimaryGeneratorAction.hh * @@ -15,25 +41,18 @@ class G4ParticleGun; class G4Run; class G4Event; class BrachyAnalysisManager; - class BrachyPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { -public: - BrachyPrimaryGeneratorAction(); - ~BrachyPrimaryGeneratorAction(); + public: + BrachyPrimaryGeneratorAction(); + ~BrachyPrimaryGeneratorAction(); -public: - void GeneratePrimaries(G4Event* anEvent); + public: + virtual void GeneratePrimaries(G4Event* anEvent)=0; -private: - G4ParticleGun* m_pParticleGun; + - G4RadioactiveDecay *m_pRadioactiveDecay; - G4double Energy; - - // BrachyPrimaryGeneratorMessenger* gunMessenger; - G4std::vector vettore; }; #endif diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh new file mode 100644 index 0000000000..555dbc7afa --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.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: BrachyPrimaryGeneratorActionI.hh,v 1.2 2002/11/18 15:18:37 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// +// ******************************************** +// * * +// * BrachyPrimaryGeneratorActionI.hh * +// * * +// ******************************************** +//Primary particles of the Iodium source. They are delivered from a random +//point of the radionuclide with random direction. The energy spectrum +// of the gamma delivered is activated + +#ifndef BrachyPrimaryGeneratorActionI_h +#define BrachyPrimaryGeneratorActionI_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4RadioactiveDecay.hh" +#include "BrachyPrimaryGeneratorAction.hh" +class G4ParticleGun; +class G4Run; +class G4Event; +class BrachyAnalysisManager; +class BrachyPrimaryGeneratorAction; +//class BrachyPrimaryGeneratorMessenger; +class BrachyPrimaryGeneratorActionI : public G4VUserPrimaryGeneratorAction +{ + public: + BrachyPrimaryGeneratorActionI(); + ~BrachyPrimaryGeneratorActionI(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + G4double GetEnergy(); + private: + G4ParticleGun* m_pParticleGun; + + G4RadioactiveDecay *m_pRadioactiveDecay; + G4double Energy; + + // BrachyPrimaryGeneratorMessenger* gunMessenger; + G4std::vector vettore; +}; + +#endif + + diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh new file mode 100644 index 0000000000..5e8e766523 --- /dev/null +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh @@ -0,0 +1,131 @@ +// +// ******************************************************************** +// * 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: BrachyPrimaryGeneratorActionIr.hh,v 1.2 2002/11/18 15:18:37 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ************************************************* +// * * +// * BrachyPrimaryGeneratorActionIr.hh" * +// * * +// ************************************************* +// +// +//Primary particles of the Iridium source. They are delivered from a random +//point of the radionuclide with random direction. + +#ifndef BrachyPrimaryGeneratorActionIr_h +#define BrachyPrimaryGeneratorActionIr_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4RadioactiveDecay.hh" +#include "BrachyPrimaryGeneratorAction.hh" + +class G4ParticleGun; +class G4Run; +class G4Event; +class BrachyAnalysisManager; +class BrachyPrimaryGeneratorAction; +class BrachyPrimaryGeneratorActionIr: public G4VUserPrimaryGeneratorAction +{ + public: + BrachyPrimaryGeneratorActionIr(); + ~BrachyPrimaryGeneratorActionIr(); + + public: + void GeneratePrimaries(G4Event* anEvent); + G4double GetEnergy(){return Energy;}; + + private: + // G4ParticleGun* m_pParticleGun; + G4ParticleGun* m_pParticleGun; + //G4RadioactiveDecay *m_pRadioactiveDecay; + G4double Energy; + G4RadioactiveDecay *m_pRadioactiveDecay; + // BrachyPrimaryGeneratorMessenger* gunMessenger; + G4std::vector vettore; +}; + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/advanced/brachytherapy/include/BrachyRunAction.hh b/examples/advanced/brachytherapy/include/BrachyRunAction.hh index 8be800bdda..21af86fe46 100644 --- a/examples/advanced/brachytherapy/include/BrachyRunAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunAction.hh @@ -1,28 +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: BrachyRunAction.hh,v 1.6 2002/11/18 15:18:37 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// +// ******************************************** +// * * +// * BrachyRunAction.hh * +// * * +// ******************************************** +// #ifndef BrachyRunAction_h #define BrachyRunAction_h 1 #include "G4UserRunAction.hh" +#include "G4RunManager.hh" #include "globals.hh" class G4Run; class BrachyAnalysisManager; +class BrachyDetectorConstruction; +class BrachyRunMessenger; + +class BrachyFactory; +class BrachyFactoryIr; +class BrachyFactoryI; class BrachyRunAction : public G4UserRunAction { -public: - BrachyRunAction( ); - ~BrachyRunAction(); + public: + BrachyRunAction(G4String& ); + ~BrachyRunAction(); -public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run* ); -private: - - G4String SDname; + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run* ); + void SelectEnergy(G4int); + private: + G4String SDname; + BrachyFactory *factory; + G4VUserDetectorConstruction* pDetector; + BrachyDetectorConstruction* pDet; + + G4int a; + BrachyRunMessenger* pRun; }; #endif + diff --git a/examples/extended/biasing/B08/include/B08ImportanceMessenger.hh b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh similarity index 52% rename from examples/extended/biasing/B08/include/B08ImportanceMessenger.hh rename to examples/advanced/brachytherapy/include/BrachyRunMessenger.hh index 246b21dfee..5fadf116d3 100644 --- a/examples/extended/biasing/B08/include/B08ImportanceMessenger.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh @@ -21,57 +21,60 @@ // ******************************************************************** // // -// $Id: B08ImportanceMessenger.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: BrachyRunMessenger.hh,v 1.2 2002/11/18 15:18:37 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // +// +// +// +// ******************************************** +// * * +// * BrachyRunMessenger.hh * +// * * +// ******************************************** +// This class permits to switch the energy of the gamma delivered from the +//radionuclides (Iodium/Iridium) +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef B08ImportanceMessenger_hh -#define B08ImportanceMessenger_hh B08ImportanceMessenger_hh +#ifndef BrachyRunMessenger_h +#define BrachyRunMessenger_h 1 -#include "G4UImessenger.hh" #include "globals.hh" -#include "g4std/map" +#include "G4UImessenger.hh" -class G4VIStore; +class BrachyRunAction; +class BrachyFactoryIr; +class BrachyRunAction; +class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; -class G4UIcmdWithADouble; -class G4UIcommand; -class G4VPhysicalVolume; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; -class B08BaseExp { -public: - B08BaseExp(G4double b = 1, G4double e = 1) : fBase(b), fExp(e){} - void SetBase(G4double b){fBase = b;} - void SetExponent(G4double e){fExp = e;} - G4double GetImportance() const {return pow(fBase, fExp);} -private: - G4double fBase; - G4double fExp; -}; - -class B08ImportanceMessenger: public G4UImessenger{ -public: - B08ImportanceMessenger(G4VIStore &istore); - ~B08ImportanceMessenger(){} - void SetNewValue(G4UIcommand* pCmd,G4String szValue); - void AddCell(const G4String &cellname, G4VPhysicalVolume *p); - void SetImportanceBase(const G4String &cellname, G4double base); - void SetImportanceExponent(const G4String &cellname, G4double exp); - - typedef G4std::map B08BaseMap; - typedef G4std::map B08ExpMap; - typedef G4std::map B08BaseExpMap; - typedef G4std::map B08CellVolMap; - -private: - G4VIStore &fIStore; - - B08BaseMap fBaseMap; - B08ExpMap fExpMap; - B08BaseExpMap fBaseExpMap; - B08CellVolMap fCellVolMap; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class BrachyRunMessenger: public G4UImessenger +{ + public: + BrachyRunMessenger(BrachyRunAction* ); + ~BrachyRunMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + BrachyRunAction* pRun; + G4UIcmdWithAString* selDetCmd; + + G4UIdirectory* detDir; + G4UIdirectory* mydetDir; + + }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + diff --git a/examples/advanced/brachytherapy/include/BrachyVisManager.hh b/examples/advanced/brachytherapy/include/BrachyVisManager.hh index b8bcda7db5..eca0090747 100644 --- a/examples/advanced/brachytherapy/include/BrachyVisManager.hh +++ b/examples/advanced/brachytherapy/include/BrachyVisManager.hh @@ -1,4 +1,39 @@ - +// +// ******************************************************************** +// * 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.4 2002/11/18 15:18:37 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// +// ******************************************** +// * * +// * BrachyVisManager.hh * +// * * +// ******************************************** +// +//This class permits the visualisation of the experimerimental set up +// #ifndef BrachyVisManager_h #define BrachyVisManager_h 1 diff --git a/examples/advanced/brachytherapy/initInter.mac b/examples/advanced/brachytherapy/initInter.mac index 4eef276236..8a8bec5339 100644 --- a/examples/advanced/brachytherapy/initInter.mac +++ b/examples/advanced/brachytherapy/initInter.mac @@ -15,6 +15,8 @@ #/vis/open OGLIX /vis/open DAWNFILE /vis/viewer/flush + + # # draw scene/ # diff --git a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc index b44894db60..966bd4f175 100644 --- a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc +++ b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc @@ -1,5 +1,38 @@ - - +// +// ******************************************************************** +// * 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.Guatelli +// +// ******************************* +// * * +// * BrachyAnalysisManager.cc * +// * * +// ******************************* +// +// $Id: BrachyAnalysisManager.cc,v 1.9 2002/12/12 19:16:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#ifdef G4ANALYSIS_USE #include #include "g4std/fstream" #include "BrachyAnalysisManager.hh" @@ -25,20 +58,19 @@ BrachyAnalysisManager::BrachyAnalysisManager() : { //build up the factories - aFact = AIDA_createAnalysisFactory(); + aFact = AIDA_createAnalysisFactory(); - ITreeFactory * treeFact = aFact->createTreeFactory(); + AIDA::ITreeFactory *treeFact = aFact->createTreeFactory(); - //parameters for the TreeFactory - bool fileExists = false; - bool readOnly = false; - std::string fileName="Brachy3.hbk"; - theTree = treeFact->create(fileName, readOnly, fileExists, "hbook"); + //parameters for the TreeFactory + + std::string fileName="brachytherapy.hbk"; + theTree = treeFact->create(fileName,"hbook",false, true); delete treeFact; - //HistoFactory and TupleFactory depend on theTree + histFact = aFact->createHistogramFactory( *theTree ); tupFact = aFact->createTupleFactory ( *theTree ); @@ -51,7 +83,7 @@ BrachyAnalysisManager::~BrachyAnalysisManager() delete tupFact; tupFact=0; - delete histFact; + delete histFact; histFact=0; delete theTree; @@ -71,71 +103,53 @@ BrachyAnalysisManager* BrachyAnalysisManager::getInstance() void BrachyAnalysisManager::book() { + + h1 = histFact->createHistogram2D("10","Energy, pos",300 ,-150.,150.,300,-150.,150.); - // histograms and ntuple are managed by theTree - // h2 e h3 are not necessary ,useful for:check for non-zero - //you could do histFact->create2D("20","Energy, pos",300 ,-150.,150.,300,-15 //0.,150.); - - IHistogram2D *h2 = histFact->create2D("20","Energy, pos",300 ,-150.,150.,300,-150.,150.); - - // check for non-zero + h2= histFact->createHistogram1D("20","Initial Energy", 100,0.,4.); - IHistogram1D *h3 = histFact->create1D("30","Initial Energy", 100,0.,1.); - // check for non-zero - - //Ntuple management - std::string columnNames = "float energy, float x, float z"; - std::string options = ""; - ITuple *tup = tupFact->create("1","brachy",columnNames, options); - // check for non-zero ... - if (tup) G4cout<<"The Ntuple is non-zero"<create("1","1",columnNames, options); + // check for non-zero ... + if (ntuple) G4cout<<"The Ntuple is non-zero"< ( theTree->find("1") ); + //ntuple = dynamic_cast ( theTree->find("1") ); + + if (ntuple == 0) { + cout << "AAAAAAAGH" << endl; + return; + } - ntuple->fill(1, en);// fill ( int column, double value ) ntuple->fill(2, xx); - ntuple->fill(3, zz); + ntuple->fill(3, yy); + ntuple->fill(4, zz); - // alternatively(if all the columns are of the same type): - // std::vector row; - // row.push_back(en); - // row.push_back(xx); - // row.push_back(zz); - // ntuple->fill(row); - - // write Ntuple-row to file - // Should be called after fill is called for the columns. - // Unfilled columns will be filled with the default value for that column. ntuple->addRow(); } void BrachyAnalysisManager::hist(G4double x,G4double z, G4float enn) { - - - IHistogram2D* h2 = dynamic_cast ( theTree->find("20") ); - h2->fill(x,z,enn); + h1->fill(x,z,enn); + } - void BrachyAnalysisManager::Spectrum(G4double Init_En) -{ - IHistogram1D* h3 = dynamic_cast ( theTree->find("30") ); - h3->fill(Init_En); +{ + h2->fill(Init_En); } - void BrachyAnalysisManager::finish() { // write all histograms to file @@ -145,7 +159,7 @@ void BrachyAnalysisManager::finish() theTree->close(); } - +#endif diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc index 04f821fa3f..3a599b5669 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc @@ -1,9 +1,44 @@ +// +// ******************************************************************** +// * 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 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// +// // **************************************** // * * // * BrachyDetectorConstruction.cc * // * * // **************************************** - +// +// $Id: BrachyDetectorConstruction.cc,v 1.13 2002/12/12 19:16:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// #include "BrachyPhantomROGeometry.hh" #include "BrachyPhantomSD.hh" #include "BrachyDetectorMessenger.hh" @@ -23,8 +58,8 @@ #include "G4PVPlacement.hh" #include "globals.hh" #include "G4MaterialTable.hh" - - +#include "Randomize.hh" +#include "G4RunManager.hh" #include "G4Element.hh" #include "G4ElementTable.hh" #include "G4PVParameterised.hh" @@ -38,386 +73,258 @@ #include "G4UnionSolid.hh" #include "G4VisAttributes.hh" #include "G4Colour.hh" - +#include "BrachyMaterial.hh" +#include "BrachyFactoryLeipzig.hh" +#include "BrachyFactoryIr.hh" +#include "BrachyFactoryI.hh" BrachyDetectorConstruction::BrachyDetectorConstruction(G4String &SDName): - NumVoxelX(0),NumVoxelZ(0),m_BoxDimX(0), m_BoxDimY(0), m_BoxDimZ(0), - ExpHall(0),ExpHallLog(0),ExpHallPhys(0), - Phantom(0), PhantomLog(0), PhantomPhys(0), - Capsule(0),CapsuleLog(0),CapsulePhys(0), - CapsuleTip(0),CapsuleTipLog(0),CapsuleTipPhys(0), - IridiumCore(0),IridiumCoreLog(0),IridiumCorePhys(0) - +NumVoxelX(0),NumVoxelZ(0),m_BoxDimX(0), m_BoxDimY(0), m_BoxDimZ(0), +ExpHall(0),ExpHallLog(0),ExpHallPhys(0), +Phantom(0), PhantomLog (0), PhantomPhys (0), +detectorChoice(0) + { +NumVoxelX=300; +NumVoxelZ=300; - NumVoxelX=300; - NumVoxelZ=300; +m_BoxDimX=30*cm ; +m_BoxDimY=30*cm; +m_BoxDimZ=30*cm; - m_BoxDimX=30*cm ; - m_BoxDimY=30*cm; - m_BoxDimZ=30*cm; +ComputeDimVoxel(); - ComputeDimVoxel(); - - - m_SDName = SDName;//pointer to sensitive detector - // create commands for interactive definition of the calorimeter - detectorMessenger = new BrachyDetectorMessenger(this); +ExpHall_x = 4.0*m; +ExpHall_y = 4.0*m; +ExpHall_z = 4.0*m; - m_SDName = SDName; +m_SDName = SDName;//pointer to sensitive detector + +detectorMessenger = new BrachyDetectorMessenger(this); + + +G4Colour white (1.0, 1.0, 1.0) ; +G4Colour grey (0.5, 0.5, 0.5) ; +G4Colour lgrey (.75, .75, .75) ; +G4Colour red (1.0, 0.0, 0.0) ; +G4Colour blue (0.0, 0.0, 1.0) ; +G4Colour cyan (0.0, 1.0, 1.0) ; +G4Colour magenta (1.0, 0.0, 1.0) ; +G4Colour yellow (1.0, 1.0, 0.0) ; +G4Colour lblue (0.0, 0.0, .75); + +factoryIr=new BrachyFactoryIr(); + +pMat= new BrachyMaterial(); } -//.... - BrachyDetectorConstruction::~BrachyDetectorConstruction() { - + +delete detectorMessenger; +delete pMat; + +if (factoryLeipzig) delete factoryLeipzig; +if (factoryI) delete factoryI; +delete factoryIr; } //.... - G4VPhysicalVolume* BrachyDetectorConstruction::Construct() -{ - DefineMaterials(); - return ConstructDetector(); -} +{ pMat-> DefineMaterials(); -void BrachyDetectorConstruction::DefineMaterials() +if (ExpHallPhys==0) { - // Define required materials + ConstructPhantom(); } - G4double A; // atomic mass - G4double Z; // atomic number - G4double d; // density - - // General 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); +switch(detectorChoice) +{ + case 1: + factoryI=new BrachyFactoryI(); + factoryI->CreateSource(PhantomPhys); - 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); + break; - - // Elements for source capsule and cable + case 2: + factoryLeipzig=new BrachyFactoryLeipzig(); + factoryLeipzig->CreateSource(PhantomPhys); + break; - - - - A=65.38*g/mole; - G4Element* elZn=new G4Element("Zinc","Zn",Z=30.,A); - A=26.98*g/mole; - G4Element* elAl=new G4Element("Aluminum","Al", Z=13.,A); +case 3: + factoryIr->CreateSource(PhantomPhys); + break; +default: - - A = 54.94*g/mole; - G4Element* elMn = new G4Element("Manganese","Mn",Z=25.,A); - - A = 28.09*g/mole; - G4Element* elSi = new G4Element("Silicon","Si",Z=14.,A); - - A = 52.00*g/mole; - G4Element* elCr = new G4Element("Chromium","Cr",Z=24.,A); - - A = 58.70*g/mole; - G4Element* elNi = new G4Element("Nickel","Ni",Z=28.,A); - - A = 55.85*g/mole; - G4Element* elFe = new G4Element("Iron","Fe",Z=26.,A); - -// Lead material - A = 207.19*g/mole; - Z = 82; - d = 11.35*g/cm3; - G4Material* matPb = new G4Material("Lead",Z,A,d); - - // Iridium (Medical Physics, Vol 25, No 10, Oct 1998) - d = 22.42*g/cm3; - A = 191.96260*g/mole ; - Z = 77; - G4Material* matIr192 = new G4Material("Iridium",Z,A,d); - - //titanium - A=47.88*g/mole; - d=4.50*g/cm3; - G4Material* Titanium=new G4Material("titanium" ,Z=22.,A,d); - - // Air material - d = 1.290*mg/cm3; - G4Material* matAir = new G4Material("Air",d,2); - matAir->AddElement(elN,0.7); - matAir->AddElement(elO,0.3); - - - // Water - d = 1.000*g/cm3; - G4Material* matH2O = new G4Material("Water",d,2); - matH2O->AddElement(elH,2); - matH2O->AddElement(elO,1); - -//soft tissue(NIST data) - - d=1.0*g/cm3; - G4Material* soft=new G4Material("tissue",d,13); - 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); - - - - - - // Stainless steel (Medical Physics, Vol 25, No 10, Oct 1998) - d = 8.02*g/cm3 ; - G4Material* matSteel = new G4Material("Stainless steel",d,5); - matSteel->AddElement(elMn, 0.02); - matSteel->AddElement(elSi, 0.01); - matSteel->AddElement(elCr, 0.19); - matSteel->AddElement(elNi, 0.10); - matSteel->AddElement(elFe, 0.68); - - - //--elements for Iodium source which will be introduced in the next release - - - - -//--elements for Iodium source which will be introduced in the next release - - //gold(chimica degli elementi N.N Greenwood,A.Earnshaw) - A=196.97*g/mole; - d=19.32*g/cm3; - G4Material* gold=new G4Material("gold",Z=79.,A,d); - - - - //IodiumCore(chimica degli elementi N.N Greenwood,A.Earnshaw) - A=124.9*g/mole; - d=4.862*g/cm3; - G4Material* matI=new G4Material("Iodium",Z=53.,A,d); - - //ceramica(Medical Physics, May 2000) - - d=2.88*g/cm3; - G4Material* ceramica=new G4Material("allumina",d,2); - ceramica->AddElement(elAl,2); - ceramica->AddElement(elO,3); - - - AbsorberMaterial=matH2O; - air= matAir; - CapsuleMat=matSteel; - IridiumMat=matIr192; - + factoryIr->CreateSource(PhantomPhys); } + ConstructSensitiveDetector(); -G4VPhysicalVolume* BrachyDetectorConstruction::ConstructDetector() -{// Volumes - ComputeDimVoxel(); - // EXPERIMENTAL HALL (our world volume) - G4double ExpHall_x = 4.0*m; - G4double ExpHall_y = 4.0*m; - G4double ExpHall_z = 4.0*m; +return ExpHallPhys; - - +} +void BrachyDetectorConstruction::SwitchDetector() +{ +factoryIr->CleanSource(); +switch(detectorChoice) +{ +case 1: + factoryI=new BrachyFactoryI(); + factoryI->CreateSource(PhantomPhys); + break; + +case 2: + factoryLeipzig=new BrachyFactoryLeipzig(); + factoryLeipzig->CreateSource(PhantomPhys); + + break; + +case 3: + factoryIr->CreateSource(PhantomPhys); + + break; +default: + factoryIr->CreateSource(PhantomPhys); +} + +// Notify run manager that the new geometry has been built + +G4RunManager::GetRunManager()->DefineWorldVolume( ExpHallPhys ); +G4RunManager::GetRunManager()->GeometryHasBeenModified(); + +// Let the navigator to know about the new top of the new geometry +G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->SetWorldVolume(ExpHallPhys); +// We have to tweak the navigator's state. By the following dummy call we ensure that navigator's +// state is reset properly +G4ThreeVector center(0,0,0); +G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->LocateGlobalPointAndSetup(center,0,false); - G4Colour white (1.0, 1.0, 1.0) ; - G4Colour grey (0.5, 0.5, 0.5) ; - G4Colour lgrey (.75, .75, .75) ; - G4Colour red (1.0, 0.0, 0.0) ; - G4Colour blue (0.0, 0.0, 1.0) ; - G4Colour cyan (0.0, 1.0, 1.0) ; - G4Colour magenta (1.0, 0.0, 1.0) ; - G4Colour yellow (1.0, 1.0, 0.0) ; - G4Colour lblue (0.0, 0.0, .75); +} - - //World volume - ExpHall = new G4Box("ExpHall",ExpHall_x,ExpHall_y,ExpHall_z); - ExpHallLog = new G4LogicalVolume(ExpHall,air,"ExpHallLog",0,0,0); - ExpHallPhys = new G4PVPlacement(0,G4ThreeVector(),"ExpHallPhys",ExpHallLog,NULL,false,0); +void BrachyDetectorConstruction::SelectDetector(G4String val) +{ if(val=="Iodium") +{ detectorChoice = 1; } + else + {if(val=="Leipzig") detectorChoice = 2; + else { if(val=="Iridium")detectorChoice = 3;}} - // Water Box - Phantom= new G4Box("Phantom",m_BoxDimX/2,m_BoxDimY/2,m_BoxDimZ/2); - PhantomLog = new G4LogicalVolume(Phantom,AbsorberMaterial,"PhantomLog",0,0,0); + G4cout << "Now Detector is " << val << G4endl; +} +void BrachyDetectorConstruction::ConstructPhantom() +{ +G4Colour white (1.0, 1.0, 1.0) ; +G4Colour grey (0.5, 0.5, 0.5) ; +G4Colour lgrey (.75, .75, .75) ; +G4Colour red (1.0, 0.0, 0.0) ; +G4Colour blue (0.0, 0.0, 1.0) ; +G4Colour cyan (0.0, 1.0, 1.0) ; +G4Colour magenta (1.0, 0.0, 1.0) ; +G4Colour yellow (1.0, 1.0, 0.0) ; +G4Colour lblue (0.0, 0.0, .75); - PhantomPhys = new G4PVPlacement(0,G4ThreeVector(),"WaterBoxPhys",PhantomLog,ExpHallPhys,false,0); +G4Material* air=pMat->GetMat("Air") ; +G4Material* soft=pMat->GetMat("tissue"); +ComputeDimVoxel(); +//World volume +ExpHall = new G4Box("ExpHall",ExpHall_x,ExpHall_y,ExpHall_z); +ExpHallLog = new G4LogicalVolume(ExpHall,air,"ExpHallLog",0,0,0); +ExpHallPhys = new G4PVPlacement(0,G4ThreeVector(),"ExpHallPhys",ExpHallLog,NULL,false,0); +// Water Box +Phantom = new G4Box("Phantom",m_BoxDimX/2,m_BoxDimY/2,m_BoxDimZ/2); +PhantomLog = new G4LogicalVolume(Phantom,soft,"PhantomLog",0,0,0); +PhantomPhys = new G4PVPlacement(0,G4ThreeVector(),"PhantomPhys",PhantomLog,ExpHallPhys,false,0); +ExpHallLog->SetVisAttributes (G4VisAttributes::Invisible); - // Capsule main body +G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(lblue); +simpleBoxVisAtt->SetVisibility(true); +simpleBoxVisAtt->SetForceWireframe(true); +PhantomLog->SetVisAttributes(simpleBoxVisAtt); - G4Tubs* Capsule = new G4Tubs("Capsule",0,0.55*mm,3.725*mm,0.*deg,360.*deg); - G4LogicalVolume* CapsuleLog = new G4LogicalVolume(Capsule,CapsuleMat,"CapsuleLog"); - G4VPhysicalVolume* CapsulePhys = new G4PVPlacement(0,G4ThreeVector(0,0,-1.975),"CapsulePhys",CapsuleLog,PhantomPhys,false,0); +} - // Capsule tip +void BrachyDetectorConstruction::ConstructSensitiveDetector() +// Sensitive Detector and ReadOut geometry definition +{ +G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); - G4Sphere* CapsuleTip = new G4Sphere("CapsuleTip",0.*mm,0.55*mm,0.*deg,360.*deg,0.*deg,90.*deg); - G4LogicalVolume* CapsuleTipLog = new G4LogicalVolume(CapsuleTip,CapsuleMat,"CapsuleTipLog"); - G4VPhysicalVolume* CapsuleTipPhys = new G4PVPlacement(0,G4ThreeVector(0.,0.,1.75*mm),"CapsuleTipPhys",CapsuleTipLog,PhantomPhys,false,0); - - // Iridium core - - G4Tubs* IridiumCore = new G4Tubs("IrCore",0,0.30*mm,1.75*mm,0.*deg,360.*deg); - G4LogicalVolume* IridiumCoreLog = new G4LogicalVolume(IridiumCore,IridiumMat,"IridiumCoreLog"); - G4VPhysicalVolume* IridiumCorePhys = new G4PVPlacement(0,G4ThreeVector(),"IridiumCorePhys",IridiumCoreLog,CapsulePhys,false,0); - - - - // Sensitive Detector and ReadOut geometry definition - // - G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); - BrachyPhantomSD* pPhantomSD = new BrachyPhantomSD(m_SDName,NumVoxelX,NumVoxelZ); - if(pPhantomSD) - { +if( pPhantomSD ==0) + { +pPhantomSD = new BrachyPhantomSD(m_SDName,NumVoxelX,NumVoxelZ); +if(pPhantomSD) +{ G4String ROGeometryName = "PhantomROGeometry"; - BrachyPhantomROGeometry* pPhantomROGeometry = new BrachyPhantomROGeometry(ROGeometryName,m_BoxDimX,m_BoxDimZ,NumVoxelX,NumVoxelZ); + pPhantomROGeometry = new BrachyPhantomROGeometry(ROGeometryName,m_BoxDimX,m_BoxDimZ,NumVoxelX,NumVoxelZ); + + pPhantomROGeometry->BuildROGeometry(); pPhantomSD->SetROgeometry(pPhantomROGeometry); pSDManager->AddNewDetector(pPhantomSD); - + PhantomLog->SetSensitiveDetector(pPhantomSD); - CapsuleLog->SetSensitiveDetector(pPhantomSD); - CapsuleTipLog->SetSensitiveDetector(pPhantomSD); - IridiumCoreLog->SetSensitiveDetector(pPhantomSD); - - } - // - // Visualization attributes - // - ExpHallLog->SetVisAttributes (G4VisAttributes::Invisible); - - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(lblue); - simpleBoxVisAtt->SetVisibility(true); - simpleBoxVisAtt->SetForceWireframe(true); - PhantomLog->SetVisAttributes(simpleBoxVisAtt); - - - - G4VisAttributes* simpleIridiumVisAtt= new G4VisAttributes(magenta); - simpleIridiumVisAtt->SetVisibility(true); - simpleIridiumVisAtt->SetForceWireframe(true); - IridiumCoreLog->SetVisAttributes(simpleIridiumVisAtt); - - - - G4VisAttributes* simpleCapsuleVisAtt= new G4VisAttributes(red); - simpleCapsuleVisAtt->SetVisibility(true); - simpleCapsuleVisAtt->SetForceWireframe(true); - CapsuleLog->SetVisAttributes( simpleCapsuleVisAtt); - - G4VisAttributes* simpleCapsuleTipVisAtt= new G4VisAttributes(red); - simpleCapsuleTipVisAtt->SetVisibility(true); - simpleCapsuleTipVisAtt->SetForceSolid(true); - CapsuleTipLog->SetVisAttributes( simpleCapsuleTipVisAtt); - - - //always return the physical World - - PrintDetectorParameters(); - return ExpHallPhys; } + } +} void BrachyDetectorConstruction::PrintDetectorParameters() { - G4cout << "-----------------------------------------------------------------------" - << G4endl - <<"the detector is a box whose size is: " - <GetName() - <GetName() + <SetMaterial(pttoMaterial); - PrintDetectorParameters(); - } - else G4cout<<"that's not avaiable!"<SetMaterial(pttoMaterial); + PrintDetectorParameters(); + } +else G4cout<<"that's not avaiable!"<GetMat("titanium"); +G4Material* air =pMat->GetMat("Air"); +G4Material* Iodio=pMat->GetMat("Iodium"); +G4Material* Gold=pMat->GetMat("gold"); + +G4Colour white (1.0, 1.0, 1.0) ; +G4Colour grey (0.5, 0.5, 0.5) ; +G4Colour lgrey (.75, .75, .75) ; +G4Colour red (1.0, 0.0, 0.0) ; +G4Colour blue (0.0, 0.0, 1.0) ; +G4Colour cyan (0.0, 1.0, 1.0) ; +G4Colour magenta (1.0, 0.0, 1.0) ; +G4Colour yellow (1.0, 1.0, 0.0) ; +G4Colour lblue (0.0, 0.0, .75); + +// Rotation Matrix +G4RotationMatrix* rotateMatrix=new G4RotationMatrix(); //=new G4RotationMatrix() ; +rotateMatrix->rotateX(180.0*deg); + +DefaultTub=new G4Tubs("DefaultTub", + 0.*mm, + 0.40*mm, + 1.84*mm, + 0.*deg, + 360.*deg); +DefaultTub_log = new G4LogicalVolume(DefaultTub,air,"DefaultTub_Log"); +DefaultTub_Phys = new G4PVPlacement(0,G4ThreeVector(),"DefaultTub_Phys",DefaultTub_log, + mother,false,0); +// Capsule main body +G4double CapsuleR=0.35*mm; +Capsule = new G4Tubs("Capsule", + CapsuleR,//raggio interno + 0.40*mm,//raggio esterno + 1.84*mm,//meta' lunghezza + 0.*deg,//angolo di partenza + 360.*deg);//angolo di rotazione + +CapsuleLog = new G4LogicalVolume(Capsule,titanium,"CapsuleLog"); +CapsulePhys = new G4PVPlacement + (0,G4ThreeVector(),"CapsulePhys",CapsuleLog, + DefaultTub_Phys,false,0); + +// Capsule tip + +CapsuleTip = new G4Sphere("CapsuleTip",0.*mm,0.40*mm,0.*deg,360.*deg,0.*deg,90.*deg); +CapsuleTipLog = new G4LogicalVolume(CapsuleTip,titanium,"CapsuleTipLog"); +CapsuleTipPhys1 = new G4PVPlacement + (0,G4ThreeVector(0.,0.,1.84*mm), "CapsuleTipPhys1",CapsuleTipLog,mother,false,0); + + +CapsuleTipPhys2 = new G4PVPlacement(rotateMatrix, G4ThreeVector(0,0,-1.84*mm),"CapsuleTipPhys2",CapsuleTipLog,mother,false,0); + + +IodiumCore = new G4Tubs("ICore",0.085*mm,0.35*mm,1.75*mm,0.*deg,360.*deg); + +ICoreLog = new G4LogicalVolume(IodiumCore,Iodio,"IodiumCoreLog"); +ICorePhys = new G4PVPlacement(0,G4ThreeVector(0.,0.,0.), + "IodiumCorePhys",ICoreLog,DefaultTub_Phys,false,0); + +Marker=new G4Tubs("GoldenMarker",0.*mm,0.085*mm,1.75*mm, + 0.*deg,360.*deg); +MarkerLog = new G4LogicalVolume(Marker,Gold,"MarkerLog"); +MarkerPhys=new G4PVPlacement(0,G4ThreeVector(0.,0.,0.),"MarkerPhys",MarkerLog,DefaultTub_Phys,false,0); + +G4VisAttributes* simpleMarkerVisAtt= new G4VisAttributes(lblue); +simpleMarkerVisAtt->SetVisibility(true); +simpleMarkerVisAtt->SetForceSolid(true); + + + +G4VisAttributes* simpleIodiumVisAtt= new G4VisAttributes(magenta); +simpleIodiumVisAtt->SetVisibility(true); +simpleIodiumVisAtt->SetForceWireframe(true); +ICoreLog->SetVisAttributes(simpleIodiumVisAtt); + + + +G4VisAttributes* simpleCapsuleVisAtt= new G4VisAttributes(red); +simpleCapsuleVisAtt->SetVisibility(true); +simpleCapsuleVisAtt->SetForceWireframe(true); +CapsuleLog->SetVisAttributes( simpleCapsuleVisAtt); + +G4VisAttributes* simpleCapsuleTipVisAtt= new G4VisAttributes(red); +simpleCapsuleTipVisAtt->SetVisibility(true); +simpleCapsuleTipVisAtt->SetForceSolid(true); +CapsuleTipLog->SetVisAttributes( simpleCapsuleTipVisAtt); + + +} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc new file mode 100644 index 0000000000..e323bdb3a6 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc @@ -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. * +// ******************************************************************** +// ******************************************************************** + +// +// -------------------------------------------------------------- +// GEANT 4 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// +// **************************************** +// * * +// * BrachyDetectorConstructionIr.cc * +// * * +// **************************************** +// +// $Id: BrachyDetectorConstructionIr.cc,v 1.3 2002/12/12 19:16:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyDetectorConstructionIr.hh" +#include "G4CSGSolid.hh" +#include "G4Sphere.hh" +#include "G4MaterialPropertyVector.hh" +#include "G4SDManager.hh" +#include "G4SubtractionSolid.hh" +#include "G4RunManager.hh" +#include "G4MaterialPropertiesTable.hh" +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "globals.hh" +#include "G4MaterialTable.hh" +#include "Randomize.hh" +#include "G4RunManager.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4PVParameterised.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4UnionSolid.hh" +#include "BrachyMaterial.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +BrachyDetectorConstructionIr::BrachyDetectorConstructionIr(): +Capsule(0),CapsuleLog(0),CapsulePhys(0), +CapsuleTip(0),CapsuleTipLog(0),CapsuleTipPhys(0), +IridiumCore(0),IridiumCoreLog(0),IridiumCorePhys(0) + +{ +pMat= new BrachyMaterial() ; + +} + + +//.... + +BrachyDetectorConstructionIr::~BrachyDetectorConstructionIr() +{ + +delete pMat; +} + +//.... +void BrachyDetectorConstructionIr::ConstructIridium(G4VPhysicalVolume* mother) +{ + +G4Colour white (1.0, 1.0, 1.0) ; +G4Colour grey (0.5, 0.5, 0.5) ; +G4Colour lgrey (.75, .75, .75) ; +G4Colour red (1.0, 0.0, 0.0) ; +G4Colour blue (0.0, 0.0, 1.0) ; +G4Colour cyan (0.0, 1.0, 1.0) ; +G4Colour magenta (1.0, 0.0, 1.0) ; +G4Colour yellow (1.0, 1.0, 0.0) ; +G4Colour lblue (0.0, 0.0, .75); + +G4Material* CapsuleMat=pMat->GetMat("Stainless steel"); +G4Material*IridiumMat=pMat->GetMat("Iridium"); + +// Capsule main body + + +G4Tubs* Capsule = new G4Tubs("Capsule",0,0.55*mm,3.725*mm,0.*deg,360.*deg); +G4LogicalVolume* CapsuleLog = new G4LogicalVolume(Capsule,CapsuleMat,"CapsuleLog"); +G4VPhysicalVolume* CapsulePhys = new G4PVPlacement + (0,G4ThreeVector(0,0,-1.975),"CapsulePhys",CapsuleLog,mother,false,0); + +// Capsule tip + +G4Sphere* CapsuleTip = new G4Sphere("CapsuleTipIridium",0.*mm,0.55*mm,0.*deg,360.*deg,0.*deg,90.*deg); + +G4LogicalVolume* CapsuleTipLog = new G4LogicalVolume(CapsuleTip,CapsuleMat,"CapsuleTipIridumLog"); +G4VPhysicalVolume* CapsuleTipPhys = new G4PVPlacement(0,G4ThreeVector(0.,0.,1.75*mm),"CapsuleTipIridiumPhys",CapsuleTipLog,mother,false,0); + +// Iridium core + +G4Tubs* IridiumCore = new G4Tubs("IrCore",0,0.30*mm,1.75*mm,0.*deg,360.*deg); +G4LogicalVolume* IridiumCoreLog = new G4LogicalVolume(IridiumCore,IridiumMat,"IridiumCoreLog"); +G4VPhysicalVolume* IridiumCorePhys = new G4PVPlacement(0,G4ThreeVector(),"IridiumCorePhys",IridiumCoreLog,CapsulePhys,false,0); + +simpleIridiumVisAtt= new G4VisAttributes(magenta); +simpleIridiumVisAtt->SetVisibility(true); +simpleIridiumVisAtt->SetForceWireframe(true); +IridiumCoreLog->SetVisAttributes(simpleIridiumVisAtt); + +simpleCapsuleVisAtt= new G4VisAttributes(red); +simpleCapsuleVisAtt->SetVisibility(true); +simpleCapsuleVisAtt->SetForceWireframe(true); +CapsuleLog->SetVisAttributes( simpleCapsuleVisAtt); + +simpleCapsuleTipVisAtt= new G4VisAttributes(red); +simpleCapsuleTipVisAtt->SetVisibility(true); +simpleCapsuleTipVisAtt->SetForceSolid(true); +CapsuleTipLog->SetVisAttributes( simpleCapsuleTipVisAtt); +} + +void BrachyDetectorConstructionIr::CleanIridium() +{ +G4VPhysicalVolume* toDieCapsule = CapsulePhys; +G4VPhysicalVolume* toDieTip =CapsuleTipPhys; +G4VPhysicalVolume* toDieCore = IridiumCorePhys; + + + +if ( toDieTip != 0 ){delete toDieTip;} +if ( toDieCore !=0){delete toDieCore;} +if(toDieCapsule !=0){delete toDieCapsule;} + +if(CapsuleTipLog !=0) +{G4VSolid* solToDieTip =CapsuleTipLog->GetSolid(); +if (solToDieTip !=0) + {delete solToDieTip;} +delete CapsuleTipLog; +CapsuleTipLog=0; } + +if( CapsuleLog !=0) +{G4VSolid* solToDieCapsule =CapsuleLog->GetSolid(); +if (solToDieCapsule !=0) + {delete solToDieCapsule;} +delete CapsuleLog; +CapsuleLog=0;} + +if (IridiumCoreLog !=0) +{G4VSolid* solToDieCore =IridiumCoreLog->GetSolid(); +if (solToDieCore !=0) + {delete solToDieCore;} +delete IridiumCoreLog; +IridiumCoreLog=0 ;} + +if( simpleIridiumVisAtt !=0){delete simpleIridiumVisAtt;} +if (simpleCapsuleVisAtt !=0){ delete simpleCapsuleVisAtt;} +if (simpleCapsuleTipVisAtt !=0) {delete simpleCapsuleTipVisAtt;} + +} + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc new file mode 100644 index 0000000000..549bbf0f26 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc @@ -0,0 +1,158 @@ +// +// ******************************************************************** +// * 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 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// +// ******************************************* +// * * +// * BrachyDetectorConstructionLeipzig.cc * +// * * +// ******************************************* +// +// +// $Id: BrachyDetectorConstructionLeipzig.cc,v 1.3 2002/12/12 19:16:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyDetectorConstructionLeipzig.hh" +#include "G4CSGSolid.hh" +#include "G4Sphere.hh" +#include "G4MaterialPropertyVector.hh" +#include "G4SDManager.hh" +#include "G4SubtractionSolid.hh" +#include "G4RunManager.hh" +#include "G4MaterialPropertiesTable.hh" +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "globals.hh" +#include "G4MaterialTable.hh" +#include "Randomize.hh" +#include "G4RunManager.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4PVParameterised.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4UnionSolid.hh" +#include "BrachyMaterial.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" +BrachyDetectorConstructionLeipzig::BrachyDetectorConstructionLeipzig(): +Capsule(0),CapsuleLog(0),CapsulePhys(0), +CapsuleTip(0),CapsuleTipLog(0),CapsuleTipPhys(0), +IridiumCore(0),IridiumCoreLog(0),IridiumCorePhys(0), +Appl1(0),Appl1Log(0),Appl1Phys(0), +Appl2(0),Appl2Log(0),Appl2Phys(0) + +{ +pMat= new BrachyMaterial() ; + +} + + +//.... + +BrachyDetectorConstructionLeipzig::~BrachyDetectorConstructionLeipzig() +{ + +delete pMat; +} +void BrachyDetectorConstructionLeipzig::ConstructLeipzig(G4VPhysicalVolume* WaterBoxPhys) +{ + +G4Colour white (1.0, 1.0, 1.0) ; +G4Colour grey (0.5, 0.5, 0.5) ; +G4Colour lgrey (.75, .75, .75) ; +G4Colour red (1.0, 0.0, 0.0) ; +G4Colour blue (0.0, 0.0, 1.0) ; +G4Colour cyan (0.0, 1.0, 1.0) ; +G4Colour magenta (1.0, 0.0, 1.0) ; +G4Colour yellow (1.0, 1.0, 0.0) ; +G4Colour lblue (0.0, 0.0, .75); + +G4Material* CapsuleMat=pMat->GetMat("Stainless steel"); +G4Material*IridiumMat=pMat->GetMat("Iridium"); +G4Material* matTung=pMat->GetMat("Tungsten"); + +Capsule = new G4Tubs("Capsule",0,0.55*mm,3.725*mm,0.*deg,360.*deg); +CapsuleLog = new G4LogicalVolume(Capsule,CapsuleMat,"CapsuleLog"); +CapsulePhys = new G4PVPlacement(0,G4ThreeVector(0,0,-1.975*mm),"CapsulePhys", + CapsuleLog,WaterBoxPhys,false,0); + +// Capsule tip + +CapsuleTip = new G4Sphere("CapsuleTip", + 0.*mm,0.55*mm,0.*deg,360.*deg,0.*deg,90.*deg); +CapsuleTipLog = new G4LogicalVolume(CapsuleTip,CapsuleMat,"CapsuleTipLog"); +CapsuleTipPhys = new G4PVPlacement(0,G4ThreeVector(0.,0.,1.75*mm),"CapsuleTipPhys", + CapsuleTipLog,WaterBoxPhys,false,0); + +// Iridium core + +IridiumCore = new G4Tubs("IrCore",0,0.30*mm,1.75*mm,0.*deg,360.*deg); +IridiumCoreLog = new G4LogicalVolume(IridiumCore,IridiumMat,"IridiumCoreLog"); +IridiumCorePhys = new G4PVPlacement(0,G4ThreeVector(0.,0.,1.975*mm),"IridiumCorePhys", + IridiumCoreLog,CapsulePhys,false,0); +// Applicator + +Appl1 = new G4Tubs("Appl1",5*mm,10.5*mm,12*mm,0.*deg,360.*deg); +Appl1Log = new G4LogicalVolume(Appl1,matTung,"Appl1"); +Appl1Phys = new G4PVPlacement (0,G4ThreeVector(0,0,4.0*mm),"Appl1Phys", Appl1Log, + WaterBoxPhys,false,0); + +Appl2 = new G4Tubs("Appl2",0.55*mm,5.*mm,3.125*mm,0.*deg,360.*deg); +Appl2Log = new G4LogicalVolume(Appl2,matTung,"Appl2"); +Appl2Phys = new G4PVPlacement(0,G4ThreeVector(0,0,-4.875*mm),"Appl2Phys",Appl2Log, + WaterBoxPhys,false,0); + + +simpleCapsuleVisAtt= new G4VisAttributes(red); +simpleCapsuleVisAtt->SetVisibility(true); +simpleCapsuleVisAtt->SetForceSolid(true); +CapsuleLog->SetVisAttributes(simpleCapsuleVisAtt); + + +//CapsuleTipLog->SetVisAttributes (G4VisAttributes::Invisible); +simpleCapsuleTipVisAtt= new G4VisAttributes(red); +simpleCapsuleTipVisAtt->SetVisibility(true); +simpleCapsuleTipVisAtt->SetForceSolid(true); +CapsuleTipLog->SetVisAttributes(simpleCapsuleTipVisAtt); + + + +} + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc index c29fd49edf..9b81b4a07b 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc @@ -21,8 +21,18 @@ // ******************************************************************** // // -// $Id: BrachyDetectorMessenger.cc,v 1.2 2002/06/18 22:30:31 guatelli Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// Code developed by: +// S.Guatelli +// +// ********************************* +// * * +// * BrachyDetectorMessenger.cc * +// * * +// ********************************* +// +// +// $Id: BrachyDetectorMessenger.cc,v 1.5 2002/12/06 16:32:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -30,7 +40,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "BrachyDetectorMessenger.hh" - +#include "BrachyFactoryIr.hh" +#include "BrachyRunAction.hh" #include "BrachyDetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" @@ -40,8 +51,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -BrachyDetectorMessenger::BrachyDetectorMessenger( BrachyDetectorConstruction* Det) - :Detector(Det) +BrachyDetectorMessenger::BrachyDetectorMessenger( BrachyDetectorConstruction* Det): + Detector(Det) { detDir = new G4UIdirectory("/detector/"); detDir->SetGuidance(" detector control."); @@ -49,9 +60,32 @@ BrachyDetectorMessenger::BrachyDetectorMessenger( BrachyDetectorConstruction* De AbsMaterCmd = new G4UIcmdWithAString("/detector/setMaterial",this); AbsMaterCmd->SetGuidance("Select Material of the detector."); AbsMaterCmd->SetParameterName("choice",false); - AbsMaterCmd->AvailableForStates(Idle); - -} + AbsMaterCmd->AvailableForStates(G4State_Idle); + selDetCmd = new G4UIcmdWithAString("/geom/select",this); + + mydetDir = new G4UIdirectory("/geom/"); + mydetDir->SetGuidance("Geometry setup commands."); + + selDetCmd->SetGuidance("Select the way detector geometry is built."); + selDetCmd->SetGuidance(" Iodium: Iodium Source "); + selDetCmd->SetGuidance(" Iridium: Iridium Source " ); + selDetCmd->SetGuidance(" Leipzig: Leipzig Source " ); + selDetCmd->SetParameterName("choice",true); + selDetCmd->SetDefaultValue("Iridium"); + selDetCmd->SetCandidates("Iridium / Iodium / Leipzig"); + selDetCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + switchCmd = new G4UIcmdWithAString("/geom/switch",this); + switchCmd->SetGuidance("Assign the selected geometry to G4RunManager."); + switchCmd->SetGuidance("In case the choice is present to this command,"); + switchCmd->SetGuidance("\"/geom/select\" will be invoked and then switched."); + switchCmd->SetParameterName("choice",true); + switchCmd->SetDefaultValue(" "); + switchCmd->SetCandidates("Iridium Iodium Leipzig "); + switchCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,7 +93,7 @@ BrachyDetectorMessenger::~BrachyDetectorMessenger() { delete AbsMaterCmd; - delete UpdateCmd; + delete mydetDir; delete detDir; } @@ -68,11 +102,20 @@ BrachyDetectorMessenger::~BrachyDetectorMessenger() void BrachyDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if( command == AbsMaterCmd ) - { Detector->SetAbsorberMaterial(newValue);} - - + { Detector->SetAbsorberMaterial(newValue);} - + if( command == selDetCmd ) + { + Detector->SelectDetector(newValue); + } + if( command == switchCmd ) + { + if(newValue=="Iodium" || newValue=="Iridium"|| newValue=="Leipzig") + { + Detector->SelectDetector(newValue); + Detector->SwitchDetector(); + } + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/brachytherapy/src/BrachyEventAction.cc b/examples/advanced/brachytherapy/src/BrachyEventAction.cc index bfaff83fef..4d1e41747e 100644 --- a/examples/advanced/brachytherapy/src/BrachyEventAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyEventAction.cc @@ -20,12 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// Code developed by: +// S.Guatelli +// // ******************************* // * * -// * BrachyEventAction.cc * +// * BrachyEventAction.cc * // * * // ******************************* - +// +// $Id: BrachyEventAction.cc,v 1.13 2002/11/27 11:11:22 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyPrimaryGeneratorActionI.hh" #include "BrachyEventAction.hh" #include "BrachyPhantomHit.hh" #include "BrachyPhantomSD.hh" @@ -41,22 +48,30 @@ #include "G4UImanager.hh" #include "G4ios.hh" #include "G4VVisManager.hh" + +#ifdef G4ANALYSIS_USE #include"BrachyAnalysisManager.hh" +#endif + +#include "BrachyPrimaryGeneratorActionIr.hh" //.... BrachyEventAction::BrachyEventAction(G4String &SDName) : drawFlag("all" ),printModulo(1) { + m_HitsCollectionID = -1; - SDname=SDName; - pDetector=new BrachyDetectorConstruction(SDname); - - m_NumVoxelX=pDetector-> GetNumVoxelX(); - m_NumVoxelZ=pDetector->GetNumVoxelZ(); - VoxelWidth_Z= pDetector -> VoxelWidth_Z() ; - VoxelWidth_X=pDetector->VoxelWidth_X(); + SDname=SDName; + + pDetector=new BrachyDetectorConstruction(SDname); + + + m_NumVoxelX=pDetector-> GetNumVoxelX(); + m_NumVoxelZ=pDetector->GetNumVoxelZ(); + VoxelWidth_Z= 0.1*cm ; + VoxelWidth_X=0.1*cm; } @@ -64,7 +79,7 @@ BrachyEventAction::BrachyEventAction(G4String &SDName) : BrachyEventAction::~BrachyEventAction() { - delete pDetector; + delete pDetector; } @@ -73,80 +88,82 @@ BrachyEventAction::~BrachyEventAction() void BrachyEventAction::BeginOfEventAction(const G4Event* aEvent) { - G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); - if(m_HitsCollectionID == -1) - m_HitsCollectionID = pSDManager->GetCollectionID("PhantomHitsCollection"); - + G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); + if(m_HitsCollectionID == -1) + m_HitsCollectionID = pSDManager->GetCollectionID("PhantomHitsCollection"); + } //.... void BrachyEventAction::EndOfEventAction(const G4Event* evt) { - - - G4int evno = fpEventManager->GetConstCurrentEvent()->GetEventID() ; - if((evno==100)||(evno==500)||(evno==1000)||(evno==2500) - ||(evno==5000)||(evno==7000)||(evno==9000)|| - (evno==9500)||(evno==29000000)||(evno==29500000)) - G4cout << evno << G4endl; - - if(m_HitsCollectionID < 0) - return; +if(m_HitsCollectionID < 0) + return; - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - BrachyPhantomHitsCollection* CHC = NULL; + G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); + BrachyPhantomHitsCollection* CHC = NULL; - if(HCE) - CHC = (BrachyPhantomHitsCollection*)(HCE->GetHC(m_HitsCollectionID)); + if(HCE) + CHC = (BrachyPhantomHitsCollection*)(HCE->GetHC(m_HitsCollectionID)); - if(CHC) - { + if(CHC) + { - G4int HitCount = CHC->entries(); + G4int HitCount = CHC->entries(); - for (G4int h=0; hGetZID(); - k=((*CHC)[h])->GetXID(); - - j=i+k*m_NumVoxelX; +#ifdef G4ANALYSIS_USE + BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); +#endif + i=((*CHC)[h])->GetZID(); + k=((*CHC)[h])->GetXID(); + j=((*CHC)[h])->GetYID(); + - EnergyDep=(*CHC)[h]->GetEdep(); + EnergyDep=((*CHC)[h]->GetEdep())/keV; - x = (-m_NumVoxelZ+1+2*k)*VoxelWidth_X/2; - z = (- m_NumVoxelZ+1+2*i)*VoxelWidth_Z/2; - - if(EnergyDep!=0){ - { if( abs(x)>0.56*mm && abs(z)>3.8*mm) - analysis->hist(x,z,EnergyDep); analysis->analyse(x,z,EnergyDep);}}} - - } - - // extract the trajectories and draw them + x = (-m_NumVoxelZ+1+2*k)*VoxelWidth_X/2; + z = (- m_NumVoxelZ+1+2*i)*VoxelWidth_Z/2; + y=(- m_NumVoxelZ+1+2*j)*VoxelWidth_Z/2; +#ifdef G4ANALYSIS_USE + if(EnergyDep!=0) + + { + + if (y<1.*mm){if (y> -1.*mm) + {analysis->hist(x,z,EnergyDep);}} + + + } + + if(EnergyDep!=0)analysis->fill_Tuple(x,y,z,EnergyDep); +#endif + + } + } +// extract the trajectories and draw them if (G4VVisManager::GetConcreteInstance()) { - G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer(); - G4int n_trajectories = 0; - if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); - for (G4int i=0; i 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); + 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); } } diff --git a/source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc b/examples/advanced/brachytherapy/src/BrachyFactory.cc similarity index 68% rename from source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc rename to examples/advanced/brachytherapy/src/BrachyFactory.cc index 496f94f9fa..79baf7242a 100644 --- a/source/persistency/digits+hits/hits/src/G4PersistentHitMan.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactory.cc @@ -19,37 +19,36 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// ******************************************************************** // -// -// $Id: G4PersistentHitMan.cc,v 1.6 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PersistentHitMan -// -// History: -// 99.11.16 Y.Morita Initial version +// Code developed by: +// S.Guatelli -#include "G4PersistentHitMan.hh" +// +// ******************************* +// * * +// * BrachyFactory.cc * +// * * +// ******************************* +// +// $Id: BrachyFactory.cc,v 1.3 2002/12/12 19:16:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include"BrachyFactory.hh" -G4PersistentHitMan* G4PersistentHitMan::f_PersistentHitMan = 0; -G4PersistentHitMan* G4PersistentHitMan::GetPersistentHitMan() +BrachyFactory::BrachyFactory() +{ ;} +BrachyFactory::~BrachyFactory() { - if(!f_PersistentHitMan) - { - f_PersistentHitMan = new G4PersistentHitMan; - } - return f_PersistentHitMan; +; } -G4PersistentHitMan* G4PersistentHitMan::get_PersistentHitManIfExist() -{ return f_PersistentHitMan; } - -G4PersistentHitMan::G4PersistentHitMan() - : f_CurrentPHCofThisEvent(0) +G4VUserPrimaryGeneratorAction* BrachyFactory::CreatePrimaryGeneratorAction() {;} -G4PersistentHitMan::~G4PersistentHitMan() +void BrachyFactory::CreateSource(G4VPhysicalVolume* mother) +{;} +void BrachyFactory::CleanSource() {;} - diff --git a/examples/extended/biasing/B07/src/B07PrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc similarity index 58% rename from examples/extended/biasing/B07/src/B07PrimaryGeneratorAction.cc rename to examples/advanced/brachytherapy/src/BrachyFactoryI.cc index ca68d65393..9a105d835b 100644 --- a/examples/extended/biasing/B07/src/B07PrimaryGeneratorAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc @@ -20,36 +20,64 @@ // * statement, and all its terms. * // ******************************************************************** // +// Code developed by: +// S.Guatelli // -// $Id: B07PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:45 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************* +// * * +// * BrachyFactoryI.cc +// * * +// ******************************* // - -#include "globals.hh" - -#include "B07PrimaryGeneratorAction.hh" - +// $Id: BrachyFactoryI.cc,v 1.2 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyFactoryI.hh" +#include"BrachyPrimaryGeneratorActionI.hh" +#include"BrachyDetectorConstructionI.hh" +#include "G4ParticleTable.hh" +#include "Randomize.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" -#include "G4Neutron.hh" -#include "G4ThreeVector.hh" +#include "G4IonTable.hh" +#include "G4RadioactiveDecay.hh" +#include "G4UImanager.hh" +#include "globals.hh" +#include +#include "G4RunManager.hh" -B07PrimaryGeneratorAction::B07PrimaryGeneratorAction() +BrachyFactoryI:: BrachyFactoryI() { - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); - particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); + pIodio=new BrachyDetectorConstructionI(); } -B07PrimaryGeneratorAction::~B07PrimaryGeneratorAction() +BrachyFactoryI:: ~BrachyFactoryI() { - delete particleGun; + +delete pIodio; +} + + +G4VUserPrimaryGeneratorAction* BrachyFactoryI::CreatePrimaryGeneratorAction() + +{ + + + G4VUserPrimaryGeneratorAction* pIodium =new BrachyPrimaryGeneratorActionI(); + if(pIodium) return pIodium ; + + + + } -void B07PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void BrachyFactoryI::CreateSource(G4VPhysicalVolume* mother) { - particleGun->GeneratePrimaryVertex(anEvent); + + pIodio -> ConstructIodium(mother); + } + +void BrachyFactoryI::CleanSource() +{;} + diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc new file mode 100644 index 0000000000..1a840dbac1 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * 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.Guatelli +// +// ******************************* +// * * +// * BrachyFactoryIr * +// * * +// ******************************* +// +// $Id: BrachyFactoryIr.cc,v 1.2 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyFactoryIr.hh" +#include"BrachyPrimaryGeneratorActionIr.hh" +#include "G4ParticleTable.hh" +#include "Randomize.hh" +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4IonTable.hh" +#include "G4RadioactiveDecay.hh" +#include "G4UImanager.hh" +#include "globals.hh" +#include +#include "G4RunManager.hh" +#include"BrachyDetectorMessenger.hh" +#include"BrachyDetectorConstructionIr.hh" +BrachyFactoryIr:: BrachyFactoryIr() +{ + pIridio=new BrachyDetectorConstructionIr(); + +} + +BrachyFactoryIr:: ~BrachyFactoryIr() +{ + delete pIridio; + +} + + +G4VUserPrimaryGeneratorAction* BrachyFactoryIr::CreatePrimaryGeneratorAction() + +{ + + + G4VUserPrimaryGeneratorAction* pIridium =new BrachyPrimaryGeneratorActionIr(); + if(pIridium) return pIridium ; + + +} + +void BrachyFactoryIr::CreateSource(G4VPhysicalVolume* mother) +{ + + pIridio -> ConstructIridium(mother); + +} +void BrachyFactoryIr::CleanSource() +{ + + pIridio -> CleanIridium(); + +} diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc new file mode 100644 index 0000000000..1eef970b18 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc @@ -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. * +// ******************************************************************** +// +// Code developed by: +// S.Guatelli +// +// ******************************* +// * * +// * BrachyFactoryLeipzig.cc * +// * * +// ******************************* +// +// $Id: BrachyFactoryLeipzig.cc,v 1.2 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + + +#include "BrachyFactoryLeipzig.hh" +#include"BrachyPrimaryGeneratorActionIr.hh" +#include "G4ParticleTable.hh" +#include "Randomize.hh" +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4IonTable.hh" +#include "G4RadioactiveDecay.hh" +#include "G4UImanager.hh" +#include "globals.hh" +#include +#include "G4RunManager.hh" +#include"BrachyDetectorMessenger.hh" +#include"BrachyDetectorConstructionLeipzig.hh" +BrachyFactoryLeipzig:: BrachyFactoryLeipzig() +{ + pLeipzig=new BrachyDetectorConstructionLeipzig(); + +} + +BrachyFactoryLeipzig:: ~BrachyFactoryLeipzig() +{ + delete pLeipzig; + +} + + +G4VUserPrimaryGeneratorAction* BrachyFactoryLeipzig::CreatePrimaryGeneratorAction() + +{ + + + G4VUserPrimaryGeneratorAction* pIridium =new BrachyPrimaryGeneratorActionIr(); + if(pIridium) return pIridium ; + + +} + +void BrachyFactoryLeipzig::CreateSource(G4VPhysicalVolume* mother) +{ + + pLeipzig -> ConstructLeipzig(mother); + +} +void BrachyFactoryLeipzig::CleanSource() +{ + + ; + +} diff --git a/examples/advanced/brachytherapy/src/BrachyMaterial.cc b/examples/advanced/brachytherapy/src/BrachyMaterial.cc new file mode 100644 index 0000000000..3926f6b35c --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyMaterial.cc @@ -0,0 +1,262 @@ +// +// ******************************************************************** +// * 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.Guatelli +// +// ******************************* +// * * +// * BrachyMaterial.cc * +// * * +// ******************************* +// +// $Id: BrachyMaterial.cc,v 1.2 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + +#include "G4MaterialPropertiesTable.hh" +#include "G4MaterialPropertyVector.hh" +#include "globals.hh" +#include "G4MaterialTable.hh" +#include "Randomize.hh" +#include "G4RunManager.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "BrachyMaterial.hh" + +BrachyMaterial::BrachyMaterial() +{;} + +BrachyMaterial::~BrachyMaterial() +{;} +void BrachyMaterial::DefineMaterials() +{ +// Define required materials + + G4double A; // atomic mass + G4double Z; // atomic number + G4double d; // density + + // General 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=26.98*g/mole; + G4Element* elAl=new G4Element("Aluminum","Al", Z=13.,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); + + + + // Elements for source capsule and cable + + + + +A=65.38*g/mole; + G4Element* elZn=new G4Element("Zinc","Zn",Z=30.,A); + + + + A = 54.94*g/mole; + G4Element* elMn = new G4Element("Manganese","Mn",Z=25.,A); + + A = 28.09*g/mole; + G4Element* elSi = new G4Element("Silicon","Si",Z=14.,A); + + A = 52.00*g/mole; + G4Element* elCr = new G4Element("Chromium","Cr",Z=24.,A); + + A = 58.70*g/mole; + G4Element* elNi = new G4Element("Nickel","Ni",Z=28.,A); + + A = 55.85*g/mole; + G4Element* elFe = new G4Element("Iron","Fe",Z=26.,A); + +// Material for Leipzig applicator and cup + +// Tungsten + + + A= 183.84* g/mole; + d=19.3*g/cm3; + G4Material* matW = new G4Material("Tungsten",Z=74.,A,d); + + +// Perspex, plexiglass, lucite + d= 1.19*g/cm3; + +G4Material* matplexiglass = new G4Material("Plexiglass",d,3); + matplexiglass->AddElement(elH,0.08); + matplexiglass->AddElement(elC,0.60); + matplexiglass->AddElement(elO,0.32); + +// Lead material + A = 207.19*g/mole; + Z = 82; + d = 11.35*g/cm3; + G4Material* matPb = new G4Material("Lead",Z,A,d); + + // Iridium (Medical Physics, Vol 25, No 10, Oct 1998) + d = 22.42*g/cm3; + A = 191.96260*g/mole ; + Z = 77; + G4Material* matir192 = new G4Material("Iridium",Z,A,d); + + //titanium + A=47.88*g/mole; + d=4.50*g/cm3; + G4Material* Titanium=new G4Material("titanium" ,Z=22.,A,d); + + // Air material + d = 1.290*mg/cm3; + G4Material* matAir = new G4Material("Air",d,2); + matAir->AddElement(elN,0.7); + matAir->AddElement(elO,0.3); + + + // Water + d = 1.000*g/cm3; + G4Material* matH2O = new G4Material("Water",d,2); + matH2O->AddElement(elH,2); + matH2O->AddElement(elO,1); + +//soft tissue(NIST data) + + d=1.0*g/cm3; + G4Material* soft=new G4Material("tissue",d,13); + 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); + + + + // Stainless steel (Medical Physics, Vol 25, No 10, Oct 1998) + d = 8.02*g/cm3 ; + G4Material* matsteel = new G4Material("Stainless steel",d,5); + matsteel->AddElement(elMn, 0.02); + matsteel->AddElement(elSi, 0.01); + matsteel->AddElement(elCr, 0.19); + matsteel->AddElement(elNi, 0.10); + matsteel->AddElement(elFe, 0.68); + + + //gold(chimica degli elementi N.N Greenwood,A.Earnshaw) + A=196.97*g/mole; + d=19.32*g/cm3; + G4Material* gold=new G4Material("gold",Z=79.,A,d); + + + + //IodiumCore(chimica degli elementi N.N Greenwood,A.Earnshaw) + A=124.9*g/mole; + d=4.862*g/cm3; + G4Material* matI=new G4Material("Iodium",Z=53.,A,d); + + //ceramica(Medical Physics, May 2000) + + d=2.88*g/cm3; + G4Material* ceramica=new G4Material("allumina",d,2); + ceramica->AddElement(elAl,2); + ceramica->AddElement(elO,3); + + G4double density = universe_mean_density; + G4double pressure = 3.e-18*pascal; +G4double temperature = 2.73*kelvin; + A=1.01*g/mole; +G4Material*Vacuum = new G4Material("Galactic", Z=1., A, + density,kStateGas,temperature,pressure); + + + //compact bone + + d=1.85*g/cm3; + G4Material* bone=new G4Material("bone",d,8); + 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); + + G4Material* muscle=new G4Material("muscle",d,9); + 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* BrachyMaterial::GetMat(G4String material) +{ + G4Material* pttoMaterial = G4Material::GetMaterial(material); + if (pttoMaterial) return pttoMaterial; +} diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc index 87751bcf2e..15d695f93c 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc @@ -20,12 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// // ******************************** // * * -// * BrachyPhantomHit.cc * +// * BrachyPhantomHit.cc * // * * // ******************************** - +// +// $Id: BrachyPhantomHit.cc,v 1.3 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// #include "BrachyPhantomHit.hh" #include "G4ios.hh" #include "G4VVisManager.hh" @@ -37,10 +44,10 @@ G4Allocator BrachyPhantomHitAllocator; //.... -BrachyPhantomHit::BrachyPhantomHit(G4LogicalVolume* logVol,G4int XID,G4int ZID) - :m_pLogV(logVol),m_XID(XID),m_ZID(ZID) +BrachyPhantomHit::BrachyPhantomHit(G4LogicalVolume* logVol,G4int XID,G4int YID,G4int ZID) +:m_pLogV(logVol),m_XID(XID),m_ZID(ZID),m_YID(YID) { - m_Edep=0; + m_Edep=0; } //.... @@ -53,32 +60,34 @@ BrachyPhantomHit::~BrachyPhantomHit() BrachyPhantomHit::BrachyPhantomHit(const BrachyPhantomHit &right) { - m_XID = right.m_XID; - m_ZID = right.m_ZID; - m_Edep = right.m_Edep; - m_Pos = right.m_Pos; - m_Rot = right.m_Rot; - m_pLogV = right.m_pLogV; + m_XID = right.m_XID; + m_ZID = right.m_ZID; + m_YID = right.m_YID; + m_Edep = right.m_Edep; + m_Pos = right.m_Pos; + m_Rot = right.m_Rot; + m_pLogV = right.m_pLogV; } //.... const BrachyPhantomHit& BrachyPhantomHit::operator=(const BrachyPhantomHit &right) { - m_XID = right.m_XID; - m_ZID = right.m_ZID; - m_Edep = right.m_Edep; - m_Pos = right.m_Pos; - m_Rot = right.m_Rot; - m_pLogV = right.m_pLogV; - return *this; + m_XID = right.m_XID; + m_ZID = right.m_ZID; + m_YID = right.m_YID; + m_Edep = right.m_Edep; + m_Pos = right.m_Pos; + m_Rot = right.m_Rot; + m_pLogV = right.m_pLogV; + return *this; } //.... int BrachyPhantomHit::operator==(const BrachyPhantomHit &right) const { - return((m_XID==right.m_XID)&&(m_ZID==right.m_ZID)); + return((m_XID==right.m_XID)&&(m_ZID==right.m_ZID)&&(m_YID==right.m_YID)); } //.... diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc index 1a740c6d76..a6fe57f0e9 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc @@ -20,12 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// // ************************************ // * * -// * BrachyWaterBoxROGeometry.cc * +// * BrachyPhantomROGeometry.cc * // * * // ************************************ - +// +// $Id: BrachyPhantomROGeometry.cc,v 1.3 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// #include "BrachyPhantomROGeometry.hh" #include "BrachyDummySD.hh" @@ -43,7 +50,7 @@ //.... BrachyPhantomROGeometry::BrachyPhantomROGeometry(G4String aString,G4double DetDimX,G4double DetDimZ,G4int NumVoxelX,G4int NumVoxelZ) - : G4VReadOutGeometry(aString),m_DetDimX(DetDimX),m_DetDimZ(DetDimZ),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) +: G4VReadOutGeometry(aString),m_DetDimX(DetDimX),m_DetDimZ(DetDimZ),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) { } @@ -57,59 +64,70 @@ BrachyPhantomROGeometry::~BrachyPhantomROGeometry() G4VPhysicalVolume* BrachyPhantomROGeometry::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.) + +// 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); + G4Material* dummyMat = new G4Material(name="dummyMat", 1., 1.*g/mole, 1.*g/cm3); // Slice thickness is the average of Voxel X and Z sizes - G4double DetVoxel_y = (m_DetDimX/m_NumVoxelX+m_DetDimZ/m_NumVoxelZ)/2.0; + G4double DetVoxel_y = (m_DetDimX/m_NumVoxelX+m_DetDimZ/m_NumVoxelZ)/2.0; - G4double ExpHall_x = 4.0*m; - G4double ExpHall_y = 4.0*m; - G4double ExpHall_z = 4.0*m; + G4double ExpHall_x = 4.0*m; + G4double ExpHall_y = 4.0*m; + G4double ExpHall_z = 4.0*m; - G4double Det_x = m_DetDimX/2; - G4double Det_y = DetVoxel_y; - G4double Det_z = m_DetDimZ/2; + G4double Det_x = m_DetDimX/2; + G4double Det_y = DetVoxel_y; + G4double Det_z = m_DetDimZ/2; + G4double Det_y2 =m_DetDimX/2 ; - G4double DetVoxelX_x = Det_x/m_NumVoxelX; - G4double DetVoxelX_y = DetVoxel_y; - G4double DetVoxelX_z = Det_z; - G4double DetVoxelX_dx = 2*DetVoxelX_x; + G4double DetVoxelX_x = Det_x/m_NumVoxelX; + G4double DetVoxelX_y = DetVoxel_y; + G4double DetVoxelX_z = Det_z; + G4double DetVoxelX_dx = 2*DetVoxelX_x; - G4double DetVoxelZ_x = Det_x; - G4double DetVoxelZ_y = DetVoxel_y; - G4double DetVoxelZ_z = Det_z/m_NumVoxelZ; - G4double DetVoxelZ_dz = 2*DetVoxelZ_z; + G4double DetVoxelZ_x = Det_x; + G4double DetVoxelZ_y = DetVoxel_y; + G4double DetVoxelZ_z = Det_z/m_NumVoxelZ; + G4double DetVoxelZ_dz = 2*DetVoxelZ_z; - G4Box *ROExpHall = new G4Box("ROExpHall",ExpHall_x,ExpHall_y,ExpHall_z); - G4LogicalVolume *ROExpHallLog = new G4LogicalVolume(ROExpHall,dummyMat,"ROExpHallLog",0,0,0); - G4VPhysicalVolume *ROExpHallPhys = new G4PVPlacement(0,G4ThreeVector(),"ROExpHallPhys",ROExpHallLog,0,false,0); + G4Box *ROExpHall = new G4Box("ROExpHall",ExpHall_x,ExpHall_y,ExpHall_z); + G4LogicalVolume *ROExpHallLog = new G4LogicalVolume(ROExpHall,dummyMat,"ROExpHallLog",0,0,0); + G4VPhysicalVolume *ROExpHallPhys = new G4PVPlacement(0,G4ThreeVector(),"ROExpHallPhys",ROExpHallLog,0,false,0); - G4Box *RODetector = new G4Box("RODetector", Det_x, Det_y, Det_z); - G4LogicalVolume *RODetectorLog = new G4LogicalVolume(RODetector,dummyMat,"RODetectorLog",0,0,0); - G4VPhysicalVolume *RODetectorPhys = new G4PVPlacement(0,G4ThreeVector(),"DetectorPhys",RODetectorLog,ROExpHallPhys,false,0); + G4Box *RODetector = new G4Box("RODetector", Det_x, Det_y2, Det_z); + G4LogicalVolume *RODetectorLog = new G4LogicalVolume(RODetector,dummyMat,"RODetectorLog",0,0,0); + G4VPhysicalVolume *RODetectorPhys = new G4PVPlacement(0,G4ThreeVector(),"DetectorPhys",RODetectorLog,ROExpHallPhys,false,0); - // ReadOut Voxel division + + // ReadOut Voxel division // X division first... - G4Box *RODetectorXDivision = new G4Box("RODetectorXDivision",DetVoxelX_x,DetVoxelX_y,DetVoxelX_z); - G4LogicalVolume *RODetectorXDivisionLog = new G4LogicalVolume(RODetectorXDivision,dummyMat,"RODetectorXDivisionLog",0,0,0); - G4VPhysicalVolume *RODetectorXDivisionPhys = new G4PVReplica("RODetectorXDivisionPhys",RODetectorXDivisionLog,RODetectorPhys,kXAxis,m_NumVoxelX,DetVoxelX_dx); + G4Box *RODetectorXDivision = new G4Box("RODetectorXDivision",DetVoxelX_x,DetVoxelX_z,DetVoxelX_z); + G4LogicalVolume *RODetectorXDivisionLog = new G4LogicalVolume(RODetectorXDivision,dummyMat,"RODetectorXDivisionLog",0,0,0); + G4VPhysicalVolume *RODetectorXDivisionPhys = new G4PVReplica("RODetectorXDivisionPhys",RODetectorXDivisionLog,RODetectorPhys,kXAxis,m_NumVoxelX,DetVoxelX_dx); - // ...then Z division - - G4Box *RODetectorZDivision = new G4Box("RODetectorZDivision",DetVoxelZ_x,DetVoxelZ_y,DetVoxelZ_z); - G4LogicalVolume *RODetectorZDivisionLog = new G4LogicalVolume(RODetectorZDivision,dummyMat,"RODetectorZDivisionLog",0,0,0); - G4VPhysicalVolume *RODetectorZDivisionPhys = new G4PVReplica("RODetectorZDivisionPhys",RODetectorZDivisionLog,RODetectorXDivisionPhys,kZAxis,m_NumVoxelZ,DetVoxelZ_dz); - - BrachyDummySD *dummySD = new BrachyDummySD; - RODetectorZDivisionLog->SetSensitiveDetector(dummySD); - return ROExpHallPhys; +// ...then Z division + + G4Box *RODetectorZDivision = new G4Box("RODetectorZDivision",DetVoxelZ_x,DetVoxelZ_x,DetVoxelZ_z); + G4LogicalVolume *RODetectorZDivisionLog = new G4LogicalVolume(RODetectorZDivision,dummyMat,"RODetectorZDivisionLog",0,0,0); + G4VPhysicalVolume *RODetectorZDivisionPhys = new G4PVReplica("RODetectorZDivisionPhys",RODetectorZDivisionLog,RODetectorXDivisionPhys,kZAxis,m_NumVoxelZ,DetVoxelZ_dz); + + // ...then Y division + + G4Box *RODetectorYDivision = new G4Box("RODetectorYDivision",DetVoxelZ_x,DetVoxelZ_y,DetVoxelZ_x); + G4LogicalVolume *RODetectorYDivisionLog = new G4LogicalVolume(RODetectorYDivision,dummyMat,"RODetectorYDivisionLog",0,0,0); + + G4VPhysicalVolume *RODetectorYDivisionPhys = new G4PVReplica("RODetectorYDivisionPhys",RODetectorYDivisionLog,RODetectorZDivisionPhys,kYAxis,m_NumVoxelZ,DetVoxelZ_dz); + + BrachyDummySD *dummySD = new BrachyDummySD; + RODetectorYDivisionLog->SetSensitiveDetector(dummySD); + + return ROExpHallPhys; } diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc index 31f40317e4..8e6be76f3a 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc @@ -20,16 +20,23 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// // ******************************** // * * -// * BrachyWaterBoxSD.cc * +// * BrachyPhantomSD.cc * // * * // ******************************** - +// +// $Id: BrachyPhantomSD.cc,v 1.3 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// #include "BrachyPhantomSD.hh" #include "BrachyPhantomHit.hh" -#include "BrachyDetectorConstruction.hh" +#include "BrachyDetectorConstruction.hh" #include "G4Track.hh" #include "G4LogicalVolume.hh" #include "G4VPhysicalVolume.hh" @@ -42,72 +49,75 @@ //.... BrachyPhantomSD::BrachyPhantomSD(G4String name, G4int NumVoxelX, G4int NumVoxelZ) - :G4VSensitiveDetector(name),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) + :G4VSensitiveDetector(name),m_NumVoxelX(NumVoxelX),m_NumVoxelZ(NumVoxelZ) { - G4String HCname; - collectionName.insert(HCname="PhantomHitsCollection"); - m_pVoxelID = new G4int[NumVoxelX*NumVoxelZ]; - m_pPhantomHitsCollection = NULL; + G4String HCname; + collectionName.insert(HCname="PhantomHitsCollection"); + m_pVoxelID = new G4int[NumVoxelX*NumVoxelZ*NumVoxelZ]; + m_pPhantomHitsCollection = NULL; } //.... BrachyPhantomSD::~BrachyPhantomSD() { - delete[] m_pVoxelID; + delete[] m_pVoxelID; } //.... void BrachyPhantomSD::Initialize(G4HCofThisEvent*HCE) { - m_pPhantomHitsCollection = new BrachyPhantomHitsCollection(SensitiveDetectorName,collectionName[0]); + G4int m_NumVoxelY=300; + m_pPhantomHitsCollection = new BrachyPhantomHitsCollection(SensitiveDetectorName,collectionName[0]); + + for(G4int k=0;kGetPreStepPoint()->GetPhysicalVolume()->GetName() != "WaterBoxPhys") - return false; + if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName() != "PhantomPhys") + return false; - G4double edep = aStep->GetTotalEnergyDeposit(); - if(edep==0.) - return false; + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) + return false; - G4VPhysicalVolume* physVol = ROhist->GetVolume(); - G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); + G4VPhysicalVolume* physVol = ROhist->GetVolume(); + G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); - // Read Voxel indexes: i is the x index, k is the z index - G4int k = ROhist->GetReplicaNumber(); - G4int i = ROhist->GetReplicaNumber(1); - - if(m_pVoxelID[i+k*m_NumVoxelX]==-1) - { - BrachyPhantomHit* PhantomHit = new BrachyPhantomHit(physVol->GetLogicalVolume(),i,k); + // Read Voxel indexes: i is the x index, k is the z index + G4int k = ROhist->GetReplicaNumber(1); + G4int i = ROhist->GetReplicaNumber(2); + G4int j= ROhist->GetReplicaNumber(); + if(m_pVoxelID[i+k*m_NumVoxelX+j*m_NumVoxelX*m_NumVoxelX]==-1) + { + BrachyPhantomHit* PhantomHit = new BrachyPhantomHit(physVol->GetLogicalVolume(),i,j,k); - G4RotationMatrix rotM; - if(physVol->GetObjectRotation()) - rotM = *(physVol->GetObjectRotation()); + G4RotationMatrix rotM; + if(physVol->GetObjectRotation()) + rotM = *(physVol->GetObjectRotation()); - PhantomHit->SetEdep(edep); - PhantomHit->SetPos(physVol->GetTranslation()); - PhantomHit->SetRot(rotM); + PhantomHit->SetEdep(edep); + PhantomHit->SetPos(physVol->GetTranslation()); + PhantomHit->SetRot(rotM); - G4int VoxelID = m_pPhantomHitsCollection->insert(PhantomHit); - m_pVoxelID[i+k*m_NumVoxelX] = VoxelID - 1; - } - else - (*m_pPhantomHitsCollection)[m_pVoxelID[i+k*m_NumVoxelX]]->AddEdep(edep); + G4int VoxelID = m_pPhantomHitsCollection->insert(PhantomHit); + m_pVoxelID[i+k*m_NumVoxelX+j*m_NumVoxelX*m_NumVoxelX] = VoxelID - 1; + } + else + (*m_pPhantomHitsCollection)[m_pVoxelID[i+k*m_NumVoxelX+j*m_NumVoxelX*m_NumVoxelX]]->AddEdep(edep); - return true; + return true; } //.... @@ -116,9 +126,9 @@ void BrachyPhantomSD::EndOfEvent(G4HCofThisEvent*HCE) { static G4int HCID = -1; if(HCID<0) - { - HCID = GetCollectionID(0); - } + { + HCID = GetCollectionID(0); + } HCE->AddHitsCollection(HCID,m_pPhantomHitsCollection); } @@ -139,3 +149,6 @@ void BrachyPhantomSD::DrawAll() void BrachyPhantomSD::PrintAll() { } + + + diff --git a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc index 35b4e6610b..80a8352832 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc @@ -20,12 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// // ********************************** // * * // * BrachyPhysicsList.cc * // * * // ********************************** - +// +// $Id: BrachyPhysicsList.cc,v 1.6 2002/11/18 15:18:38 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// #include "BrachyPhysicsList.hh" #include "G4ParticleDefinition.hh" @@ -41,7 +48,7 @@ BrachyPhysicsList::BrachyPhysicsList(): G4VUserPhysicsList() { - defaultCutValue = 1*mm; + defaultCutValue = 0.1*mm; cutForGamma = defaultCutValue; cutForElectron = defaultCutValue; cutForPositron = defaultCutValue; @@ -121,12 +128,10 @@ void BrachyPhysicsList::ConstructEM() G4String particleName = particle->GetParticleName(); //processes - lowePhot = new G4LowEnergyPhotoElectric("LowEnPhotoElec"); - loweIon = new G4LowEnergyIonisation("LowEnergyIoni"); - loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem"); if (particleName == "gamma") { - //gamma + //gamma + lowePhot = new G4LowEnergyPhotoElectric("LowEnPhotoElec"); pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh); pmanager->AddDiscreteProcess(lowePhot); pmanager->AddDiscreteProcess(new G4LowEnergyCompton); @@ -134,6 +139,9 @@ void BrachyPhysicsList::ConstructEM() } else if (particleName == "e-") { //electron + loweIon = new G4LowEnergyIonisation("LowEnergyIoni"); + loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem"); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(loweIon, -1, 2,2); pmanager->AddProcess(loweBrem, -1,-1,3); diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc index 72d63268a6..3f5f7dc36c 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc @@ -1,9 +1,43 @@ +// +// ******************************************************************** +// * 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 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S.Guatelli +// // ******************************************** // * * // * BrachyPrimaryGeneratorAction.cc * // * * // ******************************************** - +// +// $Id: BrachyPrimaryGeneratorAction.cc,v 1.12 2002/12/12 19:16:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// #include "BrachyPrimaryGeneratorAction.hh" #include "BrachyAnalysisManager.hh" #include "G4ParticleTable.hh" @@ -22,16 +56,8 @@ BrachyPrimaryGeneratorAction::BrachyPrimaryGeneratorAction() { - G4int NumParticles = 1; - - m_pParticleGun = new G4ParticleGun(NumParticles); - - - - m_pParticleGun = new G4ParticleGun(NumParticles); - - + ; } @@ -39,9 +65,8 @@ BrachyPrimaryGeneratorAction::BrachyPrimaryGeneratorAction() BrachyPrimaryGeneratorAction::~BrachyPrimaryGeneratorAction() { - if(m_pParticleGun) - delete m_pParticleGun; - + + ; } @@ -49,60 +74,12 @@ BrachyPrimaryGeneratorAction::~BrachyPrimaryGeneratorAction() void BrachyPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { - BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); - - G4ParticleTable* pParticleTable = G4ParticleTable::GetParticleTable(); - G4String ParticleName = "gamma"; - G4ParticleDefinition* pParticle = pParticleTable->FindParticle(ParticleName); - - - m_pParticleGun->SetParticleDefinition(pParticle); - - // Random generation of gamma source point inside the Iodium core - G4double x,y,z; - G4double radius= 0.30*mm; - - - do{ - x = (G4UniformRand()-0.5)*(radius)/0.5; - y = (G4UniformRand()-0.5)*(radius)/0.5; - }while(x*x+y*y > radius*radius); - - z = (G4UniformRand()-0.5)*1.75*mm/0.5 ; - - G4ThreeVector position(x,y,z); - m_pParticleGun->SetParticlePosition(position); - - - // Random generation of the impulse direction - G4double a,b,c; - G4double n; - do{ - a = (G4UniformRand()-0.5)/0.5; - b = (G4UniformRand()-0.5)/0.5; - c = (G4UniformRand()-0.5)/0.5; - n = a*a+b*b+c*c; - }while(n > 1 || n == 0.0); - n = sqrt(n); - a /= n; - b /= n; - c /= n; - - G4ThreeVector direction(a,b,c); - m_pParticleGun->SetParticleMomentumDirection(direction); - - - //Energy = 0.356*MeV; - - Energy = 356*keV; - m_pParticleGun->SetParticleEnergy(Energy); - - //Check the energy - analysis->Spectrum(Energy); - - m_pParticleGun->GeneratePrimaryVertex(anEvent); - - - + ; } + + + + + + diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc new file mode 100644 index 0000000000..60a0b7a9aa --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc @@ -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. * +// ******************************************************************** +// ******************************************************************** + +// +// -------------------------------------------------------------- +// GEANT 4 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S.Guatelli +// +// ******************************************** +// * * +// * BrachyPrimaryGeneratorActionI.cc * +// * * +// ******************************************** +// +// $Id: BrachyPrimaryGeneratorActionI.cc,v 1.4 2002/12/12 19:16:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyPrimaryGeneratorActionI.hh" + +#ifdef G4ANALYSIS_USE +#include "BrachyAnalysisManager.hh" +#endif + +//#include "BrachyPrimaryGeneratorMessenger.hh" +#include "G4ParticleTable.hh" +#include "Randomize.hh" +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4IonTable.hh" +#include "G4RadioactiveDecay.hh" +#include "G4UImanager.hh" +#include "globals.hh" +#include +#include "G4RunManager.hh" + +//.... + +BrachyPrimaryGeneratorActionI::BrachyPrimaryGeneratorActionI() +{ + + G4int NumParticles = 1; + + m_pParticleGun = new G4ParticleGun(NumParticles); + +//create a messenger for this class + // gunMessenger = new BrachyPrimaryGeneratorMessenger(this); + + vettore.push_back(0.783913); + vettore.push_back(0.170416); + vettore.push_back(0.045671); + +} + +//.... + +BrachyPrimaryGeneratorActionI::~BrachyPrimaryGeneratorActionI() +{ + if(m_pParticleGun) + delete m_pParticleGun; + + //delete gunMessenger; +} + +//.... + +void BrachyPrimaryGeneratorActionI::GeneratePrimaries(G4Event* anEvent) +{ +#ifdef G4ANALYSIS_USE +BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); +#endif + + G4ParticleTable* pParticleTable = G4ParticleTable::GetParticleTable(); + G4String ParticleName = "gamma"; + G4ParticleDefinition* pParticle = pParticleTable->FindParticle(ParticleName); + // G4cout<<"arrivo allfind particle"<SetParticleDefinition(pParticle); + + // Random generation of gamma source point inside the Iodium core + G4double x,y,z; + G4double radiusmax = 0.30*mm; + G4double radiusmin=0.085*mm; + + do{ + x = (G4UniformRand()-0.5)*(radiusmax)/0.5; + y = (G4UniformRand()-0.5)*(radiusmax)/0.5; + }while(((x*x+y*y )> (radiusmax*radiusmax))||((x*x+y*y)<(radiusmin*radiusmin))); + + z = (G4UniformRand()-0.5)*1.75*mm/0.5 ; + + G4ThreeVector position(x,y,z); + m_pParticleGun->SetParticlePosition(position); + + + // Random generation of the impulse direction + G4double a,b,c; + G4double n; + do{ + a = (G4UniformRand()-0.5)/0.5; + b = (G4UniformRand()-0.5)/0.5; + c = (G4UniformRand()-0.5)/0.5; + n = a*a+b*b+c*c; + }while(n > 1 || n == 0.0); + n = sqrt(n); + a /= n; + b /= n; + c /= n; + + G4ThreeVector direction(a,b,c); + m_pParticleGun->SetParticleMomentumDirection(direction); + + + + G4double random=G4UniformRand(); + G4double sum=0; + G4int i=0; + while(sumSetParticleEnergy(Energy); + +#ifdef G4ANALYSIS_USE + analysis->Spectrum(Energy); +#endif + + m_pParticleGun->GeneratePrimaryVertex(anEvent); + +} + + +G4double BrachyPrimaryGeneratorActionI::GetEnergy() +{ return Energy;} + diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc new file mode 100644 index 0000000000..a20fe6c860 --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc @@ -0,0 +1,140 @@ +// +// ******************************************************************** +// * 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 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S. Agostinelli, F. Foppiano, S. Garelli , M. Tropeano, S.Guatelli +// +// ******************************************** +// * * +// * BrachyPrimaryGeneratorActionIr.cc * +// * * +// ******************************************** +// +// $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.4 2002/12/12 19:16:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +#include "BrachyPrimaryGeneratorActionIr.hh" + +#ifdef G4ANALYSIS_USE +#include "BrachyAnalysisManager.hh" +#endif + +#include "G4ParticleTable.hh" +#include "Randomize.hh" +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4IonTable.hh" +#include "G4RadioactiveDecay.hh" +#include "G4UImanager.hh" +#include "globals.hh" +#include +#include "G4RunManager.hh" + + +//.... + +BrachyPrimaryGeneratorActionIr::BrachyPrimaryGeneratorActionIr() +{ + G4int NumParticles = 1; + + m_pParticleGun = new G4ParticleGun(NumParticles); + +} + +//.... + +BrachyPrimaryGeneratorActionIr::~BrachyPrimaryGeneratorActionIr() +{ + if(m_pParticleGun) + delete m_pParticleGun; +} + +//.... + +void BrachyPrimaryGeneratorActionIr::GeneratePrimaries(G4Event* anEvent) +{ +#ifdef G4ANALYSIS_USE +BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); +#endif + + G4ParticleTable* pParticleTable = G4ParticleTable::GetParticleTable(); + G4String ParticleName = "gamma"; + G4ParticleDefinition* pParticle = pParticleTable->FindParticle(ParticleName); + + + m_pParticleGun->SetParticleDefinition(pParticle); + + // Random generation of gamma source point inside the Iodium core + G4double x,y,z; + G4double radius= 0.30*mm; + + + do{ + x = (G4UniformRand()-0.5)*(radius)/0.5; + y = (G4UniformRand()-0.5)*(radius)/0.5; + }while(x*x+y*y > radius*radius); + + z = (G4UniformRand()-0.5)*1.75*mm/0.5 ; + + G4ThreeVector position(x,y,z); + m_pParticleGun->SetParticlePosition(position); + + + // Random generation of the impulse direction + G4double a,b,c; + G4double n; + do{ + a = (G4UniformRand()-0.5)/0.5; + b = (G4UniformRand()-0.5)/0.5; + c = (G4UniformRand()-0.5)/0.5; + n = a*a+b*b+c*c; + }while(n > 1 || n == 0.0); + n = sqrt(n); + a /= n; + b /= n; + c /= n; + + G4ThreeVector direction(a,b,c); + m_pParticleGun->SetParticleMomentumDirection(direction); + + + //Energy = 0.356*MeV; + +Energy = 356*keV; + m_pParticleGun->SetParticleEnergy(Energy); + + //Check the energy +#ifdef G4ANALYSIS_USE + analysis->Spectrum(Energy); +#endif + m_pParticleGun->GeneratePrimaryVertex(anEvent); + + + +} + diff --git a/examples/advanced/brachytherapy/src/BrachyRunAction.cc b/examples/advanced/brachytherapy/src/BrachyRunAction.cc index fae75c82d6..51d5d7c7b7 100644 --- a/examples/advanced/brachytherapy/src/BrachyRunAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyRunAction.cc @@ -1,52 +1,126 @@ +// +// ******************************************************************** +// * 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 - Brachytherapy example +// -------------------------------------------------------------- +// +// Code developed by: +// S.Guatelli +// +// +// ******************************* +// * * +// * BrachyRunAction.cc * +// * * +// ******************************* +// +// $Id: BrachyRunAction.cc,v 1.10 2002/12/12 19:16:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + #include "BrachyRunAction.hh" #include "BrachyEventAction.hh" + +#ifdef G4ANALYSIS_USE #include "BrachyAnalysisManager.hh" +#endif + #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4ios.hh" #include "BrachyDetectorConstruction.hh" +#include "BrachyRunMessenger.hh" #include "G4SDManager.hh" #include "G4Timer.hh" - -BrachyRunAction::BrachyRunAction() +#include "BrachyFactoryIr.hh" +#include "BrachyFactoryI.hh" +#include "BrachyFactory.hh" +#include "BrachyRunAction.hh" +BrachyRunAction::BrachyRunAction(G4String &SDNAME) { - - - + SDname=SDNAME; + pDet=new BrachyDetectorConstruction(SDname); + pRun= new BrachyRunMessenger(this); } BrachyRunAction::~BrachyRunAction() -{ - +{ delete pDet; + delete pDetector; + delete pRun; } void BrachyRunAction::BeginOfRunAction(const G4Run* aRun) -{ BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); - analysis->book(); - G4RunManager* pRunManager=G4RunManager::GetRunManager() ; +{ +#ifdef G4ANALYSIS_USE +BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); + analysis->book(); +#endif + G4RunManager* pRunManager=G4RunManager::GetRunManager() ; + if(pRunManager) + { switch(a) + { case 1: + factory=new BrachyFactoryI; + break; - G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - + default: + factory=new BrachyFactoryIr; + } + + G4VUserPrimaryGeneratorAction* irPrimary=factory->CreatePrimaryGeneratorAction(); + + + if(irPrimary) + { pRunManager->SetUserAction (irPrimary);} + + } } - - +void BrachyRunAction::SelectEnergy(G4int choice) +{a=choice; +if (a==1)factory=new BrachyFactoryI; + else factory=new BrachyFactoryIr; + +} void BrachyRunAction::EndOfRunAction(const G4Run* aRun) { +#ifdef G4ANALYSIS_USE BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); - +#endif - G4cout << "number of event = " << aRun->GetNumberOfEvent() << G4endl; + G4cout << "number of event = " << aRun->GetNumberOfEvent() << G4endl; - - analysis->finish(); - +#ifdef G4ANALYSIS_USE + analysis->finish(); +#endif + delete factory; } diff --git a/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc new file mode 100644 index 0000000000..4a367e04ca --- /dev/null +++ b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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.Guatelli +// +// $Id: BrachyRunMessenger.cc,v 1.3 2002/12/08 22:40:55 stesting Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// +// ******************************* +// * * +// * BrachyRunMessenger.cc * +// * * +// ******************************* + + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +#include "BrachyRunMessenger.hh" +#include"BrachyFactoryIr.hh" +#include "BrachyRunAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +BrachyRunMessenger::BrachyRunMessenger( BrachyRunAction* pBrachyRun): + pRun(pBrachyRun) +{ + + mydetDir = new G4UIdirectory("/run/"); + mydetDir->SetGuidance("Control gamma energy."); + selDetCmd=new G4UIcmdWithAString("/run/energy",this); + + + + selDetCmd->SetGuidance("Select the energy of gamma emitted by the source."); + selDetCmd->SetGuidance(" Iodium: Iodium Source "); + selDetCmd->SetGuidance(" Iridium: Iridium Source " ); + selDetCmd->SetParameterName("choice",true); + selDetCmd->SetDefaultValue("Iridium"); + selDetCmd->SetCandidates("Iridium / Iodium"); + selDetCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + + } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +BrachyRunMessenger::~BrachyRunMessenger() +{ + + delete selDetCmd; + delete mydetDir; + //delete detDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void BrachyRunMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + + + if( command == selDetCmd ) + {if (newValue== "Iodium") pRun->SelectEnergy(1); + else pRun->SelectEnergy(0); + } + +} + diff --git a/examples/advanced/brachytherapy/src/BrachyVisManager.cc b/examples/advanced/brachytherapy/src/BrachyVisManager.cc index f61a70251e..9fc8402c48 100644 --- a/examples/advanced/brachytherapy/src/BrachyVisManager.cc +++ b/examples/advanced/brachytherapy/src/BrachyVisManager.cc @@ -1,3 +1,40 @@ +// +// ******************************************************************** +// * 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.5 2002/11/18 15:18:39 guatelli Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + + + + #ifdef G4VIS_USE #include "BrachyVisManager.hh" diff --git a/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc b/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc new file mode 100644 index 0000000000..1ee81841a6 --- /dev/null +++ b/examples/advanced/composite_calorimeter/CompositeCalorimeter.cc @@ -0,0 +1,148 @@ +// +// ******************************************************************** +// * 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: CompositeCalorimeter.cc +// Description: Main function for Geant4 application HCAL Test-BEAM H2-96 +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalDetectorConstruction.hh" +#include "CCalEndOfEventAction.hh" +#include "CCalRunAction.hh" + +#include "CCalPrimaryGeneratorAction.hh" +#include "CCalPhysicsList.hh" + +#include "G4RunManager.hh" +#include "G4UIterminal.hh" + +#ifdef G4UI_USE_XM +#include "G4UIXm.hh" +#endif + +#ifdef G4VIS_USE + #include "CCalVisManager.hh" +#endif + + +int main(int argc,char** argv) { + +#ifdef G4VIS_USE + CCalVisManager *visManager = new CCalVisManager; + visManager->Initialize(); +#endif + + G4RunManager * runManager = new G4RunManager; + runManager->SetUserInitialization(new CCalDetectorConstruction); + runManager->SetUserInitialization(new CCalPhysicsList); + + //////////////////////////// + // User action classes. // + // -------------------- // + //////////////////////////// + + ////////////////////////////////// + // PRIMARY PARTICLEs GENERATION // + ////////////////////////////////// + + CCalPrimaryGeneratorAction* primaryGenerator = new CCalPrimaryGeneratorAction; + runManager->SetUserAction(primaryGenerator); + + ///////// + // RUN // + ///////// + + runManager->SetUserAction(new CCalRunAction); + + /////////// + // EVENT // + /////////// + + runManager->SetUserAction(new CCalEndOfEventAction(primaryGenerator)); + + G4UImanager * UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/CCal/generator/verbose 2"); + UI->ApplyCommand("/gun/position -1380. 0. 0. mm"); + UI->ApplyCommand("/gun/direction 1. 0. 0."); + UI->ApplyCommand("/gun/energy 100 GeV"); + + G4UIsession * session = 0; + // Define (G)UI terminal for interactive mode + if (argc==1) { + +#ifdef G4UI_USE_XM + session = new G4UIXm(argc,argv); +#else // G4UIterminal is a (dumb) terminal. + session = new G4UIterminal; +#endif + + G4cout <<" Run initializing ..."<ApplyCommand("/process/verbose 0"); + UI->ApplyCommand("/run/verbose 2"); + UI->ApplyCommand("/run/initialize"); + +#ifdef G4VIS_USE + // Create empty scene + G4String visCommand = "/vis/scene/create"; + UI->ApplyCommand(visCommand); + + // Choose one default viewer + // (the user can always change it later on) + // visCommand = "/vis/open DAWNFILE"; + // visCommand = "/vis/open VRML2FILE"; + visCommand = "/vis/open OGLIX"; + UI->ApplyCommand(visCommand); + + visCommand = "/vis/viewer/flush"; + UI->ApplyCommand(visCommand); + visCommand = "/tracking/storeTrajectory 1"; + UI->ApplyCommand(visCommand); +#endif + +#ifdef G4UI_USE_XM + // Customize the G4UIXm menubar with a macro file : + UI->ApplyCommand("/control/execute gui.mac"); +#else + G4cout <<"Now, please, apply beamOn command..."<SessionStart(); + delete session; + + } else { + + // Batch mode + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + + } + + delete runManager; + +#ifdef G4VIS_USE + delete visManager; +#endif + + return 0; +} + diff --git a/examples/extended/biasing/B06/GNUmakefile b/examples/advanced/composite_calorimeter/GNUmakefile similarity index 50% rename from examples/extended/biasing/B06/GNUmakefile rename to examples/advanced/composite_calorimeter/GNUmakefile index 27ed5a1f44..642fa064e7 100644 --- a/examples/extended/biasing/B06/GNUmakefile +++ b/examples/advanced/composite_calorimeter/GNUmakefile @@ -1,18 +1,26 @@ -# $Id: GNUmakefile,v 1.1 2002/03/27 16:17:43 dressel Exp $ +# -------------------------------------------------------------- +# $Id: GNUmakefile,v 1.5 2002/12/05 18:09:07 ribon Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- -name := exampleB06 +name := CompositeCalorimeter + G4TARGET := $(name) G4EXLIB := true ifndef G4INSTALL - G4INSTALL = ../../.. + G4INSTALL = ../../../ endif .PHONY: all all: lib bin -CPPFLAGS += include $(G4INSTALL)/config/binmake.gmk + +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` + LOADLIBS += `aida-config --lib` +endif + diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History new file mode 100644 index 0000000000..e96601cf8c --- /dev/null +++ b/examples/advanced/composite_calorimeter/History @@ -0,0 +1,37 @@ +------------------------------------------------------------------- +$Id: History,v 1.8 2002/12/11 14:32:29 ribon Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - Composite calorimeter example + ========================================================= + + Example History file + --------------------- + +11.12.2002 - A.Ribon (ccal-V04-01-04) +- Some clean up and fixes, but unfortunately not yet fixed + the problem of reading the material in the Sun platform + (it looks like a problem with file stream). + +06.12.2002 - G.Cosmo (ccal-V04-01-03) +- Migrated messenger to new G4ApplicationState. + +15.11.2002 - A.Ribon (ccal-V04-01-02) +- Fixed problem of Anaphe with c-shell, and tested with + geant4-04-01-ref-04 + +24.10.2002 - A.Ribon (ccal-V04-01-01) +- Changed default physics list to QGSC, with the possibility + of easily switching to either LHEP or QGSP. + +24.10.2002 - A.Ribon (ccal-V04-01-00) +- Replaced physics list with ufficial LHEP one; + added visualization and GUI; written README file. + +9.10.2002 - S.Banerjee +- Put the various classes in place, and rename them. + +30.09.2002 - M.G.Pia +- Created directory + diff --git a/examples/advanced/composite_calorimeter/README b/examples/advanced/composite_calorimeter/README new file mode 100644 index 0000000000..0508c67523 --- /dev/null +++ b/examples/advanced/composite_calorimeter/README @@ -0,0 +1,603 @@ +------------------------------------------------------------------- +$Id: README,v 1.6 2002/12/05 18:09:07 ribon Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - Composite calorimeter example + ========================================================= + + README + --------------------- + + CompositeCalorimeter is an example of a test-beam simulation used + by the CMS Collaboration to validate Geant4 against real data taken + (in 1996) in a CMS Hadron calorimeter test-beam. + The name "Composite" for this example emphasizes that, although the + test-beam had the goal of study the hadronic calorimeter response, + part of the data was taken with the presence of the electromagnetic + crystal calorimeter in front of the hadronic calorimeter, to better + reproduce the situation as in the real CMS experiment. + The geometry of the simulation has been setup in such a way to allow + very easily, at run time (therefore without need of changing any code; + see below for the details) the inclusion or exclusion of the + electromagnetic calorimeter part. + Although some important aspects, for a detailed comparison between + test-beam data and simulation, like beam profile, noise, and digitization, + have been omitted here (to avoid too many technical details), + nevertheless, this example is able to reproduce the main features of + most of the relevant observables as measured in the real test-beam. + The output of this example, if the AIDA or Anaphe/Lizard environment + has been properly setup (see below), consists of a set of histograms + and one ntuple which are stored on a HBOOK file. + In our opinion, the most original "lesson" which is offered by this + advanced example for the Geant4 user is to show how the Geometry and + the Sensitive/Hit part of the simulation is treated in a big experiment. + Although the details of how this is done vary from experiment to + experiment (it is worth, for instance, to compare with the Atlas-based + advanced example lAr_calorimeter), the main driving needs and goals + are quite general: to have consistency, but avoiding duplication + and couplings as much as possibile, between Simulation, Reconstruction, + and Visualization. Notice that the solution offered in this example + by CMS could appear "overdone" for the sake of simulating only a + relatively simple test-beam setup; but it should be kept in mind + that the same approach is used also for the full CMS detector + simulation, as well as for any subdetector. + + +1. Setting up the environment variables +--------------------------------------- + + The user should first setup, as "usual", the Geant4 environmental + variables (in particular, the variable G4ANALYSIS_USE must be set + if you want to have the histograms and the ntuple). + Then the specific setup for this example should be run: + + > source envExample.csh in the case of C-shell + or + > . envExample.sh in the case of bash-shell + + The analysis part is based on: + *** AIDA version 3.0 & Anaphe version 5.0.1 *** + + NB) Be careful that if you want to have this analysis part, + you have not only to set the variable G4ANALYSIS_USE but + also to edit the above script file (envExample.csh or envExample.sh) + and remove the comments "#" on the setup of AIDA/Anaphe, + because, by default, the analysis is not done (the reason being + that, in some platform, such AIDA/Anaphe setup does not work). + + Please take a look to the Anaphe/Lizard web page + http://anaphe.web.cern.ch/anaphe + + +2. Sample run +------------- + + Once the environmental variables are setup, you can get the executable + $G4WORKDIR/bin/$G4SYSTEM/CompositeCalorimeter + by typing "gmake" on this directory. + Then, you can execute it using the Geant4 macro command input file test.g4mac + as follows: + + > $G4WORKDIR/bin/$G4SYSTEM/CompositeCalorimeter test.g4mac + + which simulate 10 events, each being a 100 GeV pi- incident on the + electromagnetic crystal calorimeter followed by the hadronic calorimeter, + without magnetic field. + The output is the HBOOK file "ccal.his" , which can be seen either with + Lizard (or any other AIDA-compliant package) or with Paw or Root. + See part "8. Analysis / Histogramming" below for more details on the + content of that file. + If you run instead: + + > $G4WORKDIR/bin/$G4SYSTEM/CompositeCalorimeter + + after having setup the Geant4 visualization variables and the PATH, + you can visualize the geometry of the apparatus, and also see some + events. Similarly, you can get a very simple graphical user interface + that allows to select the particle type, its energy, and the number + of events (between a limited number of possibilities). + For more details, see part "9. Visualization / GUI". + + +3. Detector description +----------------------- + + Let's start with a brief description of the test-beam setup. + + There are two possible configurations: + i) HCAL only, that is only the hadronic calorimeter is present; + ii) ECAL+HCAL, that is the electromagnetic calorimeter (ECAL) + is placed in front of the hadronic calorimeter. + ECAL is made of 23 cm long PbWO4 crystals (corresponding to about + 25.8 radiation lengths, and 1.1 interaction lengths); for the + test beam a 7 x 7 = 49 matrix of crystals is used. + HCAL is a sampling calorimeter, with plastic scintillator as sensitive + part and copper as absorber. 28 scintillator plates were used with + absorber of varying thickness in between, and also varying thickness + and type of scintillator. More precisely: + --- layer 1: 2 cm of Copper + --- layer 2 to 7: 4 cm of Copper + --- layer 8 to 21: 6 cm of Copper + --- layer 22 to 27: 8 cm of Copper + For the scintillators: 2 mm passive Plastic; 4 mm active Plastic; + 1 mm passive Plastic. + The total length of HCAL consists of 152 cm of Copper plus 189 mm of Plastic. + The dimension orthogonal to the beam direction is 64 cm x 64 cm. + The ECAL and HCAL considered here are prototypes for the Central and + Endcap calorimeters of the CMS detector (which covers the rapidity + region |eta| < 3.0 ; CMS has also a Forward calorimeter, which covers + the region 3.0 < |eta| < 5.0, but this part was not considered in + this test-beam setup). Notice, however, that there are more layers + (28 instead of 19 in the Barrel or 18 in the Endcap) of HCAL in the + test-beam setup than in the real CMS detector, in order to study + energy containment. Therefore, the ECAL+HCAL in the test-beam amounts + to more than 11 radiation lengths as for the real CMS detector (the + 19 layers of the Barrel have each 6 cm of absorber, whereas the + 18 layers of the Endcap have each 6.6 cm of absorber, so that the + number of interaction lengths are rougly the same). + Five values of the magnetic field (parallel to the face of the scintillators) + have been considered in the test-beam: 0.0 , 0.375 , 0.75 , 1.50 , 3.0 Tesla. + + In order to set the magnetic field, you have to edit the file + dataglobal/fmap.tb96 + and change the first number (which appears in the third line of + that file, on the first column; the unit being Tesla): + #. Field map + *DO FLDM + 0.0 9 652.0 + for example, if you want a magnetic field of 3.0 Tesla the last + line must be set as follows: + 3.0 9 652.0 + + In this test-beam setup, at the back of ECAL, there is also some + material for support and readout, which has been considered in the + simulation. For the HCAL, only the fibres are close to the test-beam, + and because they have the same composition as the scintillators + they are adequately represented in the simulation; the remaining + of the readout, including the photomultipliers, are in readout boxes + far away from the HCAL, and hence are not present in the simulation. + + Let's summarizes now the geometry description of the simulation. + As said in the introduction, this part is the most original and + important of this example, but it is quite complex and can be fully + appreciated only in the context of the CMS software framework, in + particular in the relation between Simulation, Reconstruction, and + Visualization. Therefore we limit ourself to only few considerations, + pointing to the internal CMS documentation for more details. + + --- In order to share the same geometrical and physical information + about CMS between Simulation, Reconstruction, and Visualization, + avoiding inconsistencies, duplications, and unnecessary dependecies, + all these information is store, once for all, in common databases + (typically in XML format), instead of putting them inside C++ classes, + as usually done in simpler detector descriptions (in most of the + the Geant4 examples, novice or advanced, the geometry information + is kept inside the concrete class which inherits from + G4VUserDetectorConstruction). For simplicity, in this example, + these "databases" are nothing more than ASCII files: + + datageom/ : tbhcal96.geom, tbhcal96hcal.geom, tbhcal96xtal.geom + store the information about the experimental Hall, + the HCAL, and the ECAL, respectively. + + dataconf/ : g4testbeamhcal96.conf, testbeamhcal96.conf + store the information about which configuration + (HCAL only, or ECAL+HACL) is considered, in the + Simulation and Reconstruction, respectively. + + dataglobal/ : fmap.tb96, material.cms, rotation.cms + The first one is the magnetic field map (how the + intensity of the magnetic field, in the direction + orthogonal to the beam direction, varies along + the beam axis). The second one, material.cms, + keeps the full collection of all materials used in + the CMS detector (not only in the calorimeters, + although we are simulating only them in this example!). + The third one, rotation.cms, collects a set of useful + rotation parameters (angles). + + datavis/ : tbhcal96.vis, tbhcal96hcal.vis, tbhcal96xtal.vis + visualization information for, respectively, the + experimental Hall, HCAL, and ECAL. + + --- In order to allow an high degree of flexibility, at the geometry + level the user can choose which subsystem of the detector setup + should be simulated and can activate or deactivate the sensitive + parts, subsystem by subsystem. This can be done at run time, + by modifying one of the above database information, without need + of putting the hands on the code, recompiling, etc. + + --- There are two "parallel geometry factories": one described by "core" + classes, which are independent from the Simulation (and therefore + can be used, for instance, by the Reconstruction); and one which + is specific of the Simulation. In the latter case (Geant4 side of + the geometry model), all the geometry factories are derived from the + base class CCalG4Albe. Furthermore, using double inheritance, each + of them derives also from the counterpart in the "core" hierarchy. + The design of the CCalG4Able class helps a modular approach and easy + interchanging at the level of subdetectors, allowing a straightforward + transition from the simulation of the entire CMS detector to that of + just a part of it, or to a test-beam geometry, as indeed in this example. + Of course this modular, flexible, and general approach does not come + for free: the price to pay here is its complexity, which would be + otherwise unjustified if we limited ourself to the pure simulation + of a relatively simple test-beam setup. + + --- See "10. Classes Overview" below for a schematic summary of the + various classes involved in the Geometry description of this example. + + +4. Physics processes +-------------------- + + By the default, one of the ufficial High Energy Physics List for + Calorimetry, QGSC, is used in this example. However, it is + very easy to use instead either LHEP or QGSP. To do so, it is + enough to copy one file (and then, of course, rebuild the executable) + as follows: + > cp src/CCalPhysicsList.cc-LHEP src/CCalPhysicsList.cc + if you want to use LHEP, or + > cp src/CCalPhysicsList.cc-QGSP src/CCalPhysicsList.cc + if you want to use QGSP. + (The fact that by default QGSC is used means that the file + src/CCalPhysicsList.cc that you find in the Repository is + a copy of src/CCalPhysicsList.cc-QGSC) + + Notice that, for most of the cases (and certainly also in this case + in which we don't even take into account the beam profile, noise + and digitization!) the faster LHEP Physics List would be good enough + for calorimetry studies. However, we prefer to use, as default, the + more sophisticated (but slower) QGSP Physics List for the learning + purposes of this example. + + Please refer to the Web page: + + http://cmsdoc.cern.ch/~hpw/GHAD/HomePage/index.html + + for more information on these (and others) Physics Lists. + Please notice that, for the time being, some classes, which can be + downloaded from the above Web page, have to be included in the + include/ and src/ subdirectories of this example. However, soon + (probably with the next December release) these classes will be + distributed with Geant4 and therefore their explicit inclusion + in the example will no longer be necessary. + + +5. Particle Generator +--------------------- + + The 1996 test-beam has been taken with the following particles: + --- 225 GeV muons (for calibration) + --- 10 to 300 GeV pions + --- 10 to 300 GeV electrons + therefore the standard Geant4 Particle Gun has been used as primary + generator. Notice that, for the sake of keeping the example not too + complicated, the proper simulation of the beam profile and + beam contamination have been neglected. + + +6. Hits +------- + + In CMS there are two groups of hits: Tracker-like and Calorimeter-like. + Only the latter one appears in this example. + For the same reasons, as seen for the Geometry, of consistency without + duplication of information and unnecessary coupling between Simulation, + Reconstruction, and Visualization, the simulation calorimeter hit class, + CCalG4Hit, doubly inherits from the common Geant4 abstract class for + all hits, G4VHit, and from the "core" (i.e. simulation independent) + CMS calorimeter hit class, CCalHit. + A new Hit object is created + - for each new particle entering the calorimeter; + - for each detector unit (i.e cristal or fiber or scintillator layer); + - for each nanosecond of the shower development; + The information stored in each CCalHit object is the following: + - Entry : local coordinates of the entrance point of the particle + in the unit where the shower starts; + - the TrackID : Identification number of the incident particle; + - the IncidentEnergy : kinetic energy of that incident particle; + - the UnitID : the identification number of the detector unit + (crystal, or fiber, or scintillator layer); + - the TimeSlice : the time interval, in nanoseconds, in which the + hit has been created; + - the EnergyDeposit : the energy deposit in this hit. + Notice that all hit objects created for a given shower have the same + values for the first three pieces of information. + + +No Noise and Digitization +-------------------------- + + In order to keep the complexity of this example to a reasonable + level, both noise and digitization effects have not been included. + + +7. User Actions +---------------- + + In this example. there have been used the following User Actions: + + --- G4UserRunAction (the derived, concrete class is CCalRunAction): + it is used to invoke the Analysis object at the beginning of + the Run, to instantiate it and passing it the Run number, and + at the end of the Run, to inform it that the Run is finished + and therefore the histograms, ntuples, etc. must be closed. + + --- G4UserEventAction (the derived, concrete class is CCalEndOfEventAction): + it is used to examine, at the end of the Event, all collected + (calorimeter) hits, extract the various observables which are + interesting (to the goal of understanding things like: the effect + of magnetic field on scintiallator; choice of the absorber + thickness by optimizing resolution versus containment; impact of + the absorber depth in the energy caontainment; electromagnetic + calorimeter contribution in the electron - pion separation; etc.) + and finally call the analysis object to store such selected + information on histograms and/or in the ntuple. + The name of the class "CCalEndOfEventAction" is motivated by the + fact that at the beginning of the Event nothing is done. + + --- G4UserSteppingAction (the derived, concrete class is CCalSteppingAction): + it is used to extract some "unphysical" information (that is not + experimentally measurable, although interesting for a better + understanding of the shower development), namely the lateral profile + and the deposit as a function of the time (see "8.Analysis/Histogramming + for more details"), which is available only from simulation, and then, + at the end of Event, the analysis object is invoked to store such + information on histograms. + Please notice that the stepping action is not used to create hits. + + --- G4UserStackingAction (the derived, concrete class is CCalStackingAction): + it is used to ensure that the same track ID of the particle + originating a shower appears in all hits (calorimeter hit objects + of class CCalHit) of the shower, in any calorimeter part. + + +8. Analysis / Histogramming +---------------------------- + + The analysis part of CompositeCalorimeter is kept in class CCalAnalysis, + and is based on the AIDA interfaces and their implementation in Anaphe: + *** AIDA version 3.0 & Anaphe version 5.0.1 *** + please look at their documentation for more details: + http://anaphe.web.cern.ch/anaphe + Both the histograms and the ntuple are saved at the end of the run in the + HBOOK file "ccal.his". You can than analyze offline the contents of such + a file, using Lizard (or any other AIDA-compliant package) or with + Paw or Root. Please note that in a multiple run session, the last run + always override the HBOOK file. + What the histograms and the variables of the ntuple represent is + explained below: + + Histograms 100 - 127 : energy deposit (in GeV) in the sensitive part + (plastic scintillator layer) of one Hadronic + calorimeter module (there are 28 modules, numbered + from 0 to 27, and the corresponding histogram has + ID = 100 + number of module). + Ntuple variables hcal0 - hcal27 : provide the same information. + + Histograms 200 - 248 : energy deposit (in GeV) in one crystal + electromagnetic towers (there are a matrix of + 7 x 7 = 49 towers, numbered from 0 to 48, and + the corresponding histogram has + ID = 200 + number of tower). + Ntuple variables ecal0 - ecal48 : provide the same information. + + Histograms 300 - 339 : total energy deposit (in GeV) in any + electromagnetic crystal tower or hadronic module + (either in a sensitive or insensitive layer) + in one of the 40 nanosecond time slices: in other + words, histogram 300+I , where I = 0 - 39, + contains the total deposit energy between + I and I+1 nanoseconds after the "collision". + (Notice that the time window considered, + 40 nanoseconds, is larger than the LHC + bunch-crossing of 25 nanoseconds.) + + Histograms 400 - 469 : energy profile (in GeV), summed over all layers + sensitive (plastic scintillator) and insensitive + (copper absorber), as a function of the radial + distance (in centimeter) from the beam axis + ( ID histo = 400 + radial distance in cm ). + + Histogram 4000 : total energy deposit (in GeV) in the sensitive parts + of either the electromagnetic or hadronic calorimeters. + Ntuple variable edep provides the same information. + + Other ntuple variables are the following: + --- elab : energy (in GeV) of the incident particle. + --- xpos, ypos, zpos : position (in mm) from where the projectile + has been shot. + --- edec, edhc : total energy deposit (in GeV) in the sensitive + parts of, respectively, the electromagnetic + and hadronic calorimeters. Notice that their + sum edec+edhc coincides with edep + + Notice that lateral profile (400-469) and time-slice (300-339) + histograms show purely Monte Carlo quantities, which cannot be + experimentally measured. + Please be careful that the range of the histograms has been chosen + in such a way to contain most of the entries, but only few histograms + fill a large fraction of that range, whereas the remaining majority + fill only the first few bins (corresponding to lower energy), and, + therefore, when plotted they look almost empty, but they are not, + and the results are sensible. We suggest to plot the ntuple's variables, + rather than the histograms, when the same information is available + from the ntuple. + + +9. Visualization / GUI +----------------------- + + If you setup one of the following Geant4 environmental variables: + G4VIS_USE_DAWN + G4VIS_USE_VRML + G4VIS_USE_OPENGLX + which correspond to the use of DAWN, VRML, and OPENGLX, respectively, + as visualization engine of Geant4, and set properly the corresponding + PATH as well, it is then possible to visualize the detector and also + some events. + To do so, you have to run + > $G4WORKDIR/bin/$G4SYSTEM/CompositeCalorimeter + without input file: you then see the detector; after that, + you can select the particle gun and its energy, in the + case you want something different from the the default + (which is a 100 GeV pi-), for example: + Idle> /gun/particle e- + Idle> /gun/energy 200 GeV + and then run some events, for example: + Idle> /run/beamOn 3 + + Notice that, by default, OGLIX is used for the visualization, + because it is quite fast and it does not produce any files in + output. However, you can always choose something else, for example + VRML2FILE or DAWNFILE, either interactively as follows: + Idle> /vis/open DAWNFILE + or by changing the default, by editing the file (main program) + CompositeCalorimeter.cc and comment/uncomment the lines + in such a way to have, at the end: + visCommand = "/vis/open DAWNFILE"; + // visCommand = "/vis/open VRML2FILE"; + // visCommand = "/vis/open OGLIX"; + + The tracks that are shown include both charged and neutral particles + of any momentum: if you want instead only charged, or only neutral, + then you have simply to edit src/CCalEndOfEventAction.cc + at the end of the method EndOfEventAction and uncomment the line + where the condition on the charge is made (it should then be + straighforward to eventual add some other conditions, for example + if you want to see only those particles that satisfy certain + kinematic conditions). + + Rather than to specify "by hand" the type of particle gun, + its energy, and the number of events, it is possible to have + a very simple GUI (graphical user interface) from which to make + such choices, between a limited set of possibilities, via menus. + Such GUI is based on Motif XmCommand widget, but it would be + straightforward, eventually, to make the necessary changes + in order to use a different one. + The only thing you need to do to get the GUI is to setup + the following Geant4 environmental variables: + G4UI_BUILD_XM_SESSION=1 + G4UI_USE_XM=1 + Then, if you run the executable without specifying a macro file + (like test.g4mac): + > $G4WORKDIR/bin/$G4SYSTEM/CompositeCalorimeter + a window automatically pops out, with the menus where you + can make your selection of particle type, energy, and number + of events to be run. + + +10. Classes Overview +--------------------- + + This is a schematic overview of the classes defined in this example: + + CCalPrimaryGeneratorAction + CCalPrimaryGeneratorMessenger + User action for primaries generator. + + CCalPhysicsList + EMPhysics + G4EMBuilder + G4ElectroNuclearBuilder + G4HadronQEDBuilder + G4LEPNeutronBuilder + G4LEPPiKBuilder + G4LEPProtonBuilder + G4LHEPNeutronBuilder + G4LHEPPiKBuilder + G4LHEPProtonBuilder + G4MiscLHEPBuilder + G4NeutronBuilder + G4NeutronHPBuilder + G4PiKBuilder + G4PrecoNeutronBuilder + G4PrecoProtonBuilder + G4ProtonBuilder + G4QGSCNeutronBuilder + G4QGSCPiKBuilder + G4QGSCProtonBuilder + G4QGSPNeutronBuilder + G4QGSPPiKBuilder + G4QGSPProtonBuilder + G4StoppingHadronBuilder + G4VNeutronBuilder + G4VPiKBuilder + G4VProtonBuilder + GeneralPhysics + HadronPhysicsLHEP + HadronPhysicsQGSC + HadronPhysicsQGSP + IonPhysics + MuonPhysics + Determination of particles and processes active in this example. + The following three major Physics Lists for High Energy + Calorimetry can been selected: LHEP, QGSC, QGSP. + Most of these classes will be soon moved in the Geant4 kernel. + Please refer to the Web page: + http://cmsdoc.cern.ch/~hpw/GHAD/HomePage/index.html + for more information of these (and others) Physics Lists, + and for eventual updated versions. + + CCalDetectorConstruction + CCalAMaterial + CCalDataSet + CCalDetector + CCalEcal + CCalEcalOrganization + CCalG4Able + CCalG4Ecal + CCalG4Hall + CCalG4Hcal + CCalGeometryConfiguration + CCalHall + CCalHcal + CCalHcalOrganization + CCalMagneticField + CCalMaterial + CCalMaterialFactory + CCalRotationMatrixFactory + CCalVOrganization + CCalVisManager + CCalVisualisable + CCaloOrganization + CCalutils + Geometry and material definitions for the detector. + Notice in particular that: + CCalHall, CCalEcal, CCalHcal derive from CCalDetector; + CCalG4Hall, CCalG4Ecal, CCalG4Hcal derive from the above + corresponding classes and from CCalG4Able; + CCalEcalOrganization, CCalHcalOrganization derive from + CCalVOrganization : each sensitive cell has an unique + number for detector organization (this is a software + ID not an hardware/electronic one). + + CCalHit + CCalG4Hit + CCalG4HitCollection + CCalSDList + CCalSensAssign + CCalSensitiveConfiguration + CCalSensitiveDetectors + CCaloSD + Hit and Sensitive Detectors. + Notice in particular that: + CCalG4Hit derives from G4VHit and CCalHit; + CCaloSD derives from G4VSensitiveDetector. + + CCalAnalysis + Analysis manager class which uses Anaphe. + + CCalRunAction + User run action class. + + CCalEndOfEventAction + User event action class. + + CCalStackingAction + User Stacking action class. + + CCalSteppingAction + User Stepping action class. + diff --git a/examples/advanced/composite_calorimeter/dataconf/g4testbeamhcal96.conf b/examples/advanced/composite_calorimeter/dataconf/g4testbeamhcal96.conf new file mode 100644 index 0000000000..b29d30ea97 --- /dev/null +++ b/examples/advanced/composite_calorimeter/dataconf/g4testbeamhcal96.conf @@ -0,0 +1,11 @@ +#. Configuration file to select the G4 Geometry properties +#. Name Base Filename IsSensitive +"HcalTB96" "tbhcal96" 1 + +#.============= Hadron Calorimeter + +"HadronCalorimeter" "tbhcal96hcal" 1 + +#.============= CrystalMatrixModule +"CrystalMatrixModule" "tbhcal96xtal" 1 + diff --git a/examples/advanced/composite_calorimeter/dataconf/testbeamhcal96.conf b/examples/advanced/composite_calorimeter/dataconf/testbeamhcal96.conf new file mode 100644 index 0000000000..4415bbed3a --- /dev/null +++ b/examples/advanced/composite_calorimeter/dataconf/testbeamhcal96.conf @@ -0,0 +1,11 @@ +#. Configuration file to select the Geometry +#. Name Base Filename Construct? +"HcalTB96" "tbhcal96" 1 + +#.============= Hadron Calorimeter + +"HadronCalorimeter" "tbhcal96hcal" 1 + +#.============= CrystalMatrixModule +"CrystalMatrixModule" "tbhcal96xtal" 1 + diff --git a/examples/advanced/composite_calorimeter/datageom/tbhcal96.geom b/examples/advanced/composite_calorimeter/datageom/tbhcal96.geom new file mode 100644 index 0000000000..29eadd17f9 --- /dev/null +++ b/examples/advanced/composite_calorimeter/datageom/tbhcal96.geom @@ -0,0 +1,6 @@ +#. HCAL 96 Test beam description fil +*DO HcalTB96 +#.Experimentall hall size +#. Material dy/2 dx/2 + "Air" 375.0 1384.0 +*ENDDO diff --git a/examples/advanced/composite_calorimeter/datageom/tbhcal96hcal.geom b/examples/advanced/composite_calorimeter/datageom/tbhcal96hcal.geom new file mode 100644 index 0000000000..f07586956e --- /dev/null +++ b/examples/advanced/composite_calorimeter/datageom/tbhcal96hcal.geom @@ -0,0 +1,55 @@ +#. HCAL 96 Test beam description file for HCAL part +*DO HCal +#. Mother volume of HCal +#. Material dy/2 dx/2 Xpos + "Air" 375.0 1013.0 361.0 +#. Boxes +#. Material Number dy/2 dx/2 Wall_T Positions + "Aluminium" 2 375.0 490.0 4.0 -523.0 509.0 +#. Scintillator Layers +#. Type_Name Number +#. Type Mother Xpos Type Mother Xpos + "ScintillatorLayer" 28 + 2 0 -427.0 1 0 -393.5 + 0 0 -351.5 0 0 -314.5 + 0 0 -277.5 0 0 -238.5 + 0 0 -201.5 0 0 -164.5 + 0 0 -95.5 0 0 -27.5 + 0 0 39.5 0 0 107.5 + 0 0 175.5 0 0 243.5 + 0 0 318.5 0 0 388.5 + 0 -1 -14.5 0 1 -412.5 + 0 1 -344.5 0 1 -274.5 + 0 1 -205.5 0 1 -136.5 + 2 1 -47.0 1 1 45.5 + 2 1 138.0 1 1 232.5 + 2 1 328.0 0 -1 1009.5 +#. Absorber Layers +#. Type_Name Number +#. Type Mother Xpos Type Mother Xpos + "AbsorberLayer" 28 + 0 0 -410.0 1 0 -370.0 + 1 0 -333.0 1 0 -296.0 + 1 0 -257.0 1 0 -220.0 + 1 0 -183.0 3 0 -129.0 + 3 0 -61.0 3 0 6.0 + 3 0 74.0 3 0 142.0 + 3 0 210.0 3 0 285.0 + 3 0 355.0 3 0 429.0 + 3 1 -446.0 3 1 -378.0 + 3 1 -308.0 3 1 -239.0 + 3 1 -170.0 4 1 -92.0 + 4 1 -1.0 4 1 93.0 + 4 1 186.0 4 1 283.0 + 2 1 358.0 2 1 438.0 +#. Absorber +#. Material Number dY/2 Half thicknesses + "Copper" 5 330.0 10.0 15.0 20.0 30.0 40.0 +#. Scintillator +#. Material Wrapper Plastic Number +#. dY/2 dX/2(L) dX/2(W) dX/2(FP) dX/2(BP) dX/2(Sc) + "Scintillator" "Aluminium" "Polystyrene" 3 + 320.0 3.5 0.0 0.5 1.0 2.0 + 320.0 6.5 0.0 0.5 1.0 5.0 + 330.0 5.0 0.5 0.5 0.5 2.0 +*ENDDO diff --git a/examples/advanced/composite_calorimeter/datageom/tbhcal96xtal.geom b/examples/advanced/composite_calorimeter/datageom/tbhcal96xtal.geom new file mode 100644 index 0000000000..ec3c0a60a6 --- /dev/null +++ b/examples/advanced/composite_calorimeter/datageom/tbhcal96xtal.geom @@ -0,0 +1,18 @@ +#. HCAL 96 Test beam description file for crystal matrix +*DO CrystalMatrix +#. Envelope +#. Material Width Length Position in space and Rotation angles + "Air" 320.0 682.0 + -1033.0 0.0 0.0 90.0 90.0 0.0 0.0 90.0 0.0 +#. -1033.0 0.0 0.0 90.0 270.0 0.0 0.0 90.0 180.0 +#. Layer +#. Material Number Radius Angle FrontLength Parameters + "Air" 7 1500.0 0.01386 100.0 + 10.5 11.9 73.5 85.0 115.5 +#. Crystal +#. Material Number Length Toler. Parameters + "E_PbWO4" 7 232.0 0.5 10.25 11.90 10.25 11.90 115.0 +#. Support +#. Material dX dY dZ dist + "Copper" 170.0 5.5 37.0 20.0 +*ENDDO diff --git a/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 b/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 new file mode 100644 index 0000000000..04db5eab3f --- /dev/null +++ b/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 @@ -0,0 +1,13 @@ +#. Field map +*DO FLDM + 0.0 9 652.0 + -480.0 0.0012125 0.80 + -240.0 0.0015625 0.93 + 80.0 0.0010 0.82 + 260.0 0.0003889 0.90 + 620.0 0.0 1.00 + 800.0 -0.0003333 1.20 + 1120.0 -0.0010 1.70 + 1360.0 -0.0015625 2.30 + 2026.0 -0.0012125 1.85 +*ENDDO diff --git a/examples/advanced/composite_calorimeter/dataglobal/material.cms b/examples/advanced/composite_calorimeter/dataglobal/material.cms new file mode 100644 index 0000000000..b201b81214 --- /dev/null +++ b/examples/advanced/composite_calorimeter/dataglobal/material.cms @@ -0,0 +1,2139 @@ +*.-- material.tz +*LOG OFF +*DO GMAT 0 -u -A4CW -c1/80 #. GPUR + #.list of pure materials + #. S A Z dens X_0 abs_l +"Hydrogen" H 1.00794 1.0 0.708E-1 865.54 717.51 +"Deuterium" D 2.01 1.0 0.162 756.79 337.65 +"Helium" He 4.0026 2.0 0.125 754.56 520.80 +"Lithium" Li 6.9410 3.0 0.534 154.98 137.45 +"Beryllium" Be 9.0122 4.0 1.8480 35.276 40.690 +"Bor 10" B10 10. 5.0 2.34 21.0209 0.0 +"Bor 11" B11 11. 5.0 2.34 23.1229 0.0 +"Carbon" C 12.011 6.0 2.2650 18.850 38.102 +"Nitrogen" N 14.007 7.0 0.808 47.017 108.660 +"Oxygen" O 15.999 8.0 0.143E-2 23944. 63636. +"Fluorine" F 18.998 9.0 1.1080 29.925 0.0 +"Neon" Ne 20.180 10. 1.2070 23.977 80.033 +"Sodium" Na 22.990 11. 0.969 28.8675 0.0 +"Magnesium" Mg 24.305 12. 1.735 0.0 0.0 +"Aluminium" Al 26.980 13. 2.7 8.8926 39.407 +"Silicon" Si 28.090 14. 2.33 9.3648 45.494 +"Phosphor" P 30.974 15. 1.82 0.0 0.0 +"Sulfur" S 32.066 16. 2.07 0.0 0.0 +"Chlorine" Cl 35.450 17. 1.56 0.0 0.0 +"Argon" Ar 39.948 18. 0.16390E-2 10983. 65842.69 +"Potassium" K 39.098 19. 0.860 0.0 0.0 +"Calcium" Ca 40.078 20. 1.55 0.0 0.0 +"Scandium" Sc 44.956 21. 2.98 0.0 0.0 +"Titanium" Ti 47.880 22. 4.53 3.5617 27.511 +"Vanadium" V 50.941 23. 6.10 0.0 0.0 +"Chromium" Cr 51.996 24. 7.18 0.0 0.0 +"Manganese" Mn 54.938 25. 7.43 0.0 0.0 +"Iron" Fe 55.850 26. 7.87 1.7585 16.760 +"Cobalt" Co 58.933 27. 8.90 0.0 0.0 +"Nickel" Ni 58.693 28. 8.876 0.0 0.0 +"Copper" Cu 63.546 29. 8.96 1.4353 15.056 +"Zinc" Zn 65.390 30. 7.112 0.0 0.0 +"Gallium" Ga 69.723 31. 5.877 0.0 0.0 +"Germanium" Ge 72.610 32. 5.3230 2.3013 26.395 +"Arsenic" As 74.922 33. 5.72 0.0 0.0 +"Selenium" Se 78.960 34. 4.78 0.0 0.0 +"Bromine" Br 79.904 35. 3.11 0.0 0.0 +"Krypton" Kr 83.8 36. 2.60 0.0 0.0 +"Rubidium" Rb 85.4678 37. 1.529 0.0 0.0 +"Strontium" Sr 87.62 38. 2.54 0.0 0.0 +"Yttrium" Y 88.9059 39. 4.456 0.0 0.0 +"Zirconium" Zr 91.22 40. 6.494 0.0 0.0 +"Niobium" Nb 92.906 41. 8.55 0.0 0.0 +"Molybdenum" Mo 95.940 42. 10.20 0.0 0.0 +"Technetium" Yv 98.0 43. 11.48 0.0 0.0 +"Ruthenium" Ru 101.07 44. 12.39 0.0 0.0 +"Rhodium" Rh 102.9055 45. 12.39 0.0 0.0 +"Palladium" Pd 106.42 46. 12.00 0.0 0.0 +"Silver" Ag 107.87 47. 10.48 0.0 0.0 +"Cadmium" Cd 112.41 48. 8.63 0.0 0.0 +"Indium" In 114.82 49. 7.30 0.0 0.0 +"Tin" Sn 118.69 50. 7.31 1.2066 22.30 +"Antimony" Sb 121.75 51. 6.679 0.0 0.0 +"Tellurium" Te 127.60 52. 6.23 0.0 0.0 +"Iodine" I 114.82 53. 7.30 0.0 0.0 +"Xenon" Xe 131.29 54. 3.057 2.7740 55.28 +"Cesium" Cs 132.9054 55. 1.870 4.52 0.0 +"Barium" Ba 137.33 56. 3.50 29.581 9999.0 +"Lanthanum" La 138.9055 57. 6.127 0.0 0.0 +"Cerium" Ce 140.12 58. 6.637 0.0 0.0 +"Praseodymium" Pr 140.9077 59. 0.0 0.0 0.0 +"Neodymium" Nm 144.24 60. 0.0 0.0 0.0 +"Tungsten" W 183.85 74. 19.3 0.35 9.5855 +"Gold" Au 196.97 79. 18.85 0.0 0.0 +"Lead" Pb 207.19 82. 11.350 0.56120 17.092 +"Bismuth" Bi 208.98 83. 9.37 0.0 0.0 +"Uranium" U 238.03 92. 18.950 0.31662 10.501 +*ENDDO + +*DO GMIX 0 -U -A4CW -c1/50 #. GMIX + #. list of mixtures +"Boron" 2 2.34 #. comp.no. dens GMIX + "Bor 10" -.20 #. Atomic proportions + "Bor 11" -.80 +"B_2 O_3" 2 2.34 #. comp.no. dens GMIX + "Boron" -2. #. Atomic proportions + "Oxygen" -3. +"Al_2 O_3" 2 -1.0 #. comp.no. dens GMIX + "Aluminium" -2.0 #. Atomic proportions + "Oxygen" -3.0 +"Fe_2 O_3" 2 -1.0 #. comp.no. dens GMIX + "Iron" -2.0 #. Atomic proportions + "Oxygen" -3.0 +"S_2 O_3" 2 -1.0 #. comp.no. dens GMIX + "Sulfur" -2.0 #. Atomic proportions + "Oxygen" -3.0 +"Barium sulfate" 3 -1.0 #. comp.no. dens GMIX + "Barium" -1.0 #. Atomic proportions + "Sulfur" -1.0 + "Oxygen" -4.0 +"Ni_2 O_3" 2 -1.0 #. comp.no. dens GMIX + "Nickel" -2.0 #. Atomic proportions + "Oxygen" -3.0 +"C O_2" 2 1.8182E-3 #. comp.no. dens GMIX + "Carbon" -1.0 #. Atomic proportions + "Oxygen" -2.0 +"Ti_2 O_3" 2 4.6 #. + "Titanium" -2.0 + "Oxygen" -3.0 +"C F_4" 2 3.7037E-3 #. comp.no. dens GMIX + "Carbon" -1.0 #. Atomic proportions + "Fluorine" -4.0 +"Si O_2" 2 2.64 #. comp.no. dens GMIX + "Silicon" -1.0 #. Atomic proportions + "Oxygen" -2.0 +"Quartz" 2 2.64 #. comp.no. dens GMIX + "Silicon" -1.0 #. Atomic proportions + "Oxygen" -2.0 +"QuartzFibers" 1 2.64 #. comp.no. dens GMIX + "Quartz" -1.0 +"Doped Quartz" 3 2.5 #. comp.no dens + "Silicon" -1.0000 #. Atomic proportions + "Oxygen" -2.0000 + "Fluorine" -2.0000 +"PhotoCathode" 1 1.87 + "Cesium" -1.0 +"Ca O" 2 -1.0 #. comp.no. dens GMIX + "Calcium" -1.0 #. Atomic proportions + "Oxygen" -1.0 +"Mg O" 2 -1.0 #. comp.no. dens GMIX + "Magnesium" -1.0 #. Atomic proportions + "Oxygen" -1.0 +"Mn O" 2 -1.0 #. comp.no. dens GMIX + "Manganese" -1.0 #. Atomic proportions + "Oxygen" -1.0 +"Ba O" 2 -1.0 #. comp.no. dens GMIX + "Barium" -1.0 #. Atomic proportions + "Oxygen" -1.0 +"Na_2 O" 2 -1.0 #. comp.no. dens GMIX + "Sodium" -2.0 #. Atomic proportions + "Oxygen" -1.0 +"K_2 O" 2 -1.0 #. comp.no. dens GMIX + "Potassium" -2.0 #. Atomic proportions + "Oxygen" -1.0 +"Water" 2 1.0 #. comp.no. dens GMIX + "Hydrogen" -2.0 #. Atomic proportions + "Oxygen" -1.0 +"Air" 4 1.214e-3 #. Huhtinen, Air 18 degr.C and 58% humidity + "Nitrogen" 74.94 #. Weight fraction + "Oxygen" 23.69 #. Weight fraction + "Argon" 1.29 #. Weight fraction + "Hydrogen" 0.08 #. Weight fraction +"Wood" 2 0.5 #. comp.no. dens GMIX + "Hydrogen" -21. #. Atomic proportions + "Oxygen" -10. +"Gas" 3 0.19573E-2 #. comp.no. dens GMIX + "Carbon" -0.52 #. Atomic proportions + "Oxygen" -0.40 + "Hydrogen" -0.08 +"Freon-12" 3 0.493E-2 #. comp.no. dens GMIX + "Carbon" -1.0 #. Atomic proportions + "Chlorine" -2.0 + "Fluorine" -2.0 +"RPC Gas" 3 1.8768520E-3 #. comp.no. dens GMIX + "Argon" -0.02 #. Atomic proportions + "Freon-12" -0.02 + "C O_2" -0.96 +"Kapton" 3 1.11 #. comp.no. dens GMIX + "Carbon" -5.0 #. Atomic proportions + "Hydrogen" -8.0 + "Oxygen" -2.0 +"StainlessSteel" 5 8.02 #. AISI Cr-Ni steel,default is type 304 + "Iron" 69.96 #. Weight fractions SDC definition + "Carbon" 0.04 + "Manganese" 1.00 + "Chromium" 19.00 + "Nickel" 10.00 +"Methane" 2 0.71700E-3 #. comp.no. dens GMIX + "Carbon" -1.0 #. Atomic proportions + "Hydrogen" -4.0 +"Ethane" 2 1.35600E-3 #. comp.no. dens GMIX + "Carbon" -2.0 #. Atomic proportions + "Hydrogen" -6.0 +"Carbon fibre str." 3 1.69 #. comp.no. dens GMIX + "Carbon" -10. #. Atomic proportions + "Hydrogen" -6.0 + "Oxygen" -1.0 + #. ECAL Carbon fiber mixture parameters from Jean-Pierre VIALLE +"Carbon fib.str." 2 1.45 #. comp.no. dens GMIX + "Carbon" -2.0 #. Atomic proportions + "Hydrogen" -13.0 +"Rohacell" 1 0.7 #. comp.no. dens GMIX + "Carbon fibre str." -1.0 +"Foam" 2 0.10 #. comp.no. dens GMIX + "Carbon" -1.0 #. Atomic proportions + "Hydrogen" -2.0 +"Al support" 1 0.254 #. comp.no. dens GMIX + "Aluminium" -1.0 #. Atomic proportions +"Insulation" 6 1.69 #. comp.no. dens GMIX + "Helium" -0.250E-1 #. Atomic proportions + "Carbon" -0.450E-1 + "Hydrogen" -0.360E-1 + "Oxygen" -0.180E-1 + "Aluminium" -0.500E-1 + "Iron" -0.18 +"Epoxy" 3 1.3 #. comp.no. dens GMIX + "Carbon" -15. #. Atomic proportions + "Hydrogen" -44. + "Oxygen" -7.0 +"Al-MMC" 1 1.84 #. comp.no. dens GMIX + "Aluminium" -1.0 #. Atomic proportion +"Mg-MMC" 1 1.52 #. comp.no. dens GMIX + "Magnesium" -1.0 #. Atomic proportion +"Polystyrene" 2 1.032 #. comp.no dens + "Carbon" -19.000 #. Atomic proportions + "Hydrogen" -21.000 +"Scintillator" 1 1.0320 #. comp.no. dens GMIX + "Polystyrene" -1.0 +"NEMA G10 plate" 3 1.7 #. from rho=1.7=>1.57 for X_0=19.4 + "Si O_2" -0.773 #. Atomic proportions + "Epoxy" -0.147 + "Chlorine" -0.080 +"Polyethylene" 2 0.95 + "Carbon" -1.0 #. Atomic proportions + "Hydrogen" -2.0 +"DropsPolyethylene" 1 0.45 + "Polyethylene" -1.0 #. Atomic proportion +"Noryl" 1 1.0 #. should be checked + "Polyethylene" -1.00000 +"Polymer Concrete" 2 0.45 #. from rho=1.7=>1.57 for X_0=19.4 + "Si O_2" -0.853 #. Atomic proportions + "Epoxy" -0.147 +"FrontEnd Electronics" -3 -1.0 #. comp.no. dens GMIX + "Air" -0.750 #. Volume fractions + "Silicon" -0.200 + "Lead" -0.050 +"Plexiglas" 3 1.18 #. comp.no. dens GMIX + "Hydrogen" -8.0 #. Atomic proportions + "Carbon" -5.0 + "Oxygen" -2.0 +"Ar CO_2 gas 50:50" 2 -1.0 #. comp.no. dens GMIX + "Argon" -1.0 #. Atomic proportions + "C O_2" -1.0 +"CF_4 CO_2 50:50" 2 -1.0 #. comp.no. dens GMIX + "C F_4" -0.5 #. Atomic proportions + "C O_2" -0.5 +"Argon CF_4 CO_2" -3 -1.0 #. comp.no. dens GMIX + "Argon" -0.3 #. Atomic proportions + "C F_4" -0.2 + "C O_2" -0.5 +"Argon 50% CF_4 CO_2" 3 -1.0 #. comp.no. dens GMIX + "Argon" -0.5 #. Atomic proportions + "C F_4" -0.2 + "C O_2" -0.3 +"Isobutane" 2 0.267E-2 #. comp.no. dens GMIX + "Carbon" -4.0 #. Atomic proportions + "Hydrogen" -10. +"80% Argon + 20% CO_2" 2 -1.0 #. comp.no. dens GMIX + "Argon" -0.8 #. Atomic proportions + "C O_2" -0.2 +"DTBX gas" 2 0.0018194 + "Argon" -5.4800 + "C O_2" -94.5200 +"Honeycomb" 1 0.28 #. comp.no. dens GMIX + "Aluminium" -1.0 #. Atomic proportions +"Aluminium honeycomb" -2 -1.0 #. 0.050 + "Aluminium" -1.850 #. Volume fractions + "Air" -98.150 +"Glass" 3 2.23 #. Borisilcate glass (Pyrex) + "Si O_2" -0.800 #. Atomic fraction + "B_2 O_3" -0.120 #. Atomic fraction + "Na_2 O" -0.080 #. Atomic fraction +#. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX +#. +"Ca C O_3" 2 -1.0 #. comp.no. dens GMIX + "Ca O" -1.0 #. Atomic fraction + "C O_2" -1.0 #. Atomic fraction +"Stand.Concrete" 9 2.35 + "Hydrogen" 0.6 #. Weight fraction + "Carbon" 3.0 #. Weight fraction + "Oxygen" 50.0 #. Weight fraction + "Sodium" 1.0 #. Weight fraction + "Aluminium" 3.0 #. Weight fraction + "Silicon" 20.0 #. Weight fraction + "Potassium" 1.0 #. Weight fraction + "Calcium" 20.0 #. Weight fraction + "Iron" 1.4 #. Weight fraction +#. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX + #. + #. John Rutherfoord: REPORT ON THE FIRST GEM NOBLE LIQUID MONITORING + #. WORKING GROUP MEETING 6/18/93 + #. LAr (89K) LKr (123K) + #. rho (density) 1.38 g/cm^3 2.39 g/cm^3 + #. (1/rho)d(rho)/dT 0.458%/K 0.324%/K + #. (1/rho)d(rho)/dP 0.03%/bar 0.02%/bar +"Liquid Argon" 1 1.39 #. comp.no. dens GMIX + "Argon" -1.0 #. Atomic proportions +"Liquid Ar Detector" 1 1.39 #. comp.no. dens GMIX + "Argon" -1.0 #. Atomic proportions +"Liquid Krypton" 1 2.39 #. comp.no. dens GMIX + "Krypton" -1.0 #. Atomic proportions +"Liquid Kr Detector" 1 2.39 #. comp.no. dens GMIX + "Krypton" -1.0 #. Atomic proportions +"Bakelite" 3 1.3 #. comp.no. dens GMIX + "Hydrogen" -8.0 #. Atomic proportions + "Carbon" -7.0 + "Oxygen" -1.0 +"Borated Polyethyl." 5 0.95 #. 5%-borated polyethylene (BPE) + "Hydrogen" 11.6 #. C.R.Wuest SSCL-GEM TN 92-172. + "Carbon" 61.2 #. composition of "Reactor Experiments, Inc." + "Bor 11" 4.0 #. Weight fraction GMIX + "Bor 10" 1.0 #. Weight fraction GMIX + "Oxygen" 22.2 #. Weight fraction GMIX +"Lithium Polyethyl." 4 0.95 #. + "Hydrogen" 11.3 #. + "Carbon" 59.6 #. + "Lithium" 7.5 #. Weight fraction GMIX + "Oxygen" 21.6 #. Weight fraction GMIX +"Lucite" 3 1.16 #. comp.no. dens GMIX + "Carbon" -5.0 #. Atomic proportions + "Hydrogen" -8.0 + "Oxygen" -2.0 +"Mylar" 3 1.39 #. comp.no. dens GMIX + "Carbon" -5.0 #. Atomic proportions + "Hydrogen" -4.0 + "Oxygen" -2.0 +"Aluminized Mylar" -2 -1.0 #. comp.no. dens GMIX + "Mylar" -5.0 #. Atomic proportions + "Aluminium" -1.0000 +"Hexel for CSC" 3 0.1650 #. comp.no. dens GMIX + #. 2cm Hexel+G10+2*17mkm Cu + "Copper" -0.00170 #. Atomic proportions + "NEMA G10 plate" -1. + "Epoxy" -1.10 +"Transmission line" 1 1.5 #. comp.no. dens GMIX + "Si O_2" -1.0 #. Atomic proportion +"Quartz support" 1 2.64 #. comp.no. dens GMIX + "Si O_2" -1.0 #. Atomic proportion +"Super Conductor" -4 -1.0 #. comp.no. dens GMIX + "Copper" -0.45 #. Atomic proportions + "Niobium" -0.450E-1 + "Titanium" -0.105 + "Helium" -0.40 +"Magnet Conductor" 6 3.1570 #. comp.no. dens GMIX + "Copper" -0.458E-1 #. Atomic proportions + "Niobium" -0.460E-2 + "Titanium" -0.107E-1 + "Helium" -0.407E-1 + "Aluminium" -0.84110 + "Iron" -0.572E-1 +"Graphite Epoxy suprt" 3 1.3830 #. comp.no. dens GMIX + "Carbon" -18.450 #. Atomic proportions + "Hydrogen" -20. + "Oxygen" -2.0 +"Graph.Epoxy Sup." 3 0.13830 #. comp.no. dens GMIX + "Carbon" -18.450 #. Atomic proportions + "Hydrogen" -20. + "Oxygen" -2.0 +"CO2Ar Freon" 5 0.204E-2 #. comp.no. dens GMIX + "Argon" -0.200E-1 #. Atomic proportions + "Carbon" -0.98 + "Chlorine" -0.400E-1 + "Fluorine" -0.400E-1 + "Oxygen" -1.98 +"Marble" 2 2.35 #. comp.no. dens GMIX + "Si O_2" -.95 #. Atomic proportions + "Water" -.05 +"CSC Electronics" -2 -1.0 #. comp.no. dens GMIX + "FrontEnd Electronics" -10.0 #. Volume fractions + "Aluminium" -1.50 +"Nomex for CSC" 1 0.0289 #. comp.no. dens GMIX + "Lucite" -1. #. Atomic proportion +"NEMA FR4 plate" 4 1.025 #. from rho=1.7=>1.025 for X_0=19.4 + "Si O_2" -0.613 #. Atomic proportions + "Epoxy" -0.147 + "Bromine" -0.080 + "Oxygen" -0.160 +"HV Light Guides" -2 1.32 #. Volume fraction + "Quartz" -0.50 + "Air" -0.50 +"Polycarbonate" 1 0.0070 #. comp.no. dens GMIX + "Lucite" -1. #. Atomic proportions +#. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX +"Kr/Pb mixture for EM" -6 -1.0 #. comp.no. dens GMIX + "Liquid Krypton" -0.20 #. Volume fraction + "Lead" -0.05 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.01 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction + "Copper" -0.00050 #. Volume fraction +"Kr/Pb mixture for HD" -6 -1.0 #. comp.no. dens GMIX + "Liquid Krypton" -0.20 #. Volume fraction + "Lead" -0.90 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.10 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction + "Copper" -0.00050 #. Volume fraction +"Kr/Cu mixture for HD" -5 -1.0 #. comp.no. dens GMIX + "Liquid Krypton" -0.20 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.10 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction + "Copper" -0.90050 #. Volume fraction +"Ar/Pb mixture for EM" -6 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -0.20 #. Volume fraction + "Lead" -0.05 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.01 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction + "Copper" -0.00050 #. Volume fraction +"Ar/Cu mixture for EM" -5 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -0.20 #. Volume fraction + "Copper" -0.05050 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.01 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction +"Ar/Cu mixture for HD" -5 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -0.20 #. Volume fraction + "Copper" -0.90050 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.10 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction +"Ar/Cu mixt. for Cors" -5 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -0.20 #. Volume fraction + "Copper" -0.90050 #. Volume fraction + "Iron" -0.02 #. Volume fraction + "NEMA FR4 plate" -0.10 #. Volume fraction + "Kapton" -0.01950 #. Volume fraction +"Pb/Sci spaghetti mix" -2 -1.0 #. comp.no. dens GMIX + "Scintillator" -0.185 #. Volume fraction + "Lead" -0.80 #. Volume fraction +"Cu/Sci spaghetti mix" -3 -1.0 #. comp.no. dens GMIX + "Scintillator" -.52 #. Volume fraction + "Borated Polyethyl." -.8 #. Volume fraction + "Copper" -8.3 #. Volume fraction +"W/Sci spaghetti mix" -3 -1.0 #. comp.no. dens GMIX + "Scintillator" -.52 #. Volume fraction + "Borated Polyethyl." -.8 #. Volume fraction + "Tungsten" -8.3 #. Volume fraction +"Ar/W mixt. for E.M." -2 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -.001 #. Volume fraction + "Tungsten" -.749 #. Volume fraction +"Ar/W Hadron section" -2 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -.001 #. Volume fraction + "Tungsten" -.749 #. Volume fraction +"Ar/W Catcher section" -2 -1.0 #. comp.no. dens GMIX + "Liquid Argon" -.001 #. Volume fraction + "Tungsten" -.749 #. Volume fraction +"Cu/Scintillator/PolB" -3 -1.0 #. comp.no. dens GMIX + "Scintillator" -0.06 #. Volume fraction + "Copper" -0.83 #. Volume fraction + "Borated Polyethyl." -0.08 #. Volume fraction +"Cu/Quartz" -3 -1.0 #. comp.no. dens + "Si O_2" -0.0560 #. Volume fraction + "Polystyrene" -0.0107 #. Volume fraction + "Copper" -0.9330 #. Volume fraction +#. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX +"AQBB borated concre" 6 2.1350 #. comp.no. dens GMIX + "Fe_2 O_3" -1.660 #. Atomic proportions + "Al_2 O_3" -21.810 + "Si O_2" -10.550 + "Ca O" -28.8 + "B_2 O_3" -7. + "Water" -30.190 +"BET2a concrete +Poly" 7 1.7 #. comp.no. dens GMIX + "Polystyrene" -55.870 + "Si O_2" -5.750 #. Atomic proportions + "Ca O" -14.850 + "Al_2 O_3" -12.550 + "Fe_2 O_3" -0.870 + "B_2 O_3" -3.550 + "Water" -6.560 +"BET2b concrete +Poly" 7 1.35 #. comp.no. dens GMIX + "Polystyrene" -81.420 + "Si O_2" -2.430 #. Atomic proportions + "Ca O" -6.180 + "Al_2 O_3" -5.230 + "Fe_2 O_3" -0.340 + "B_2 O_3" -1.540 + "Water" -2.850 +"Standard Serpentine" 9 2.302 #. comp.no. dens GMIX# + "Water" -25.31 #. Atomic proportions + "Si O_2" -61.23 + "Al_2 O_3" -5.36 + "Fe_2 O_3" -1.07 + "Ca O" -3.74 + "Mg O" -0.28 + "C O_2" -0.42 + "Na_2 O" -1.79 + "K_2 O" -0.85 +"Serpentine 2" 9 2.01 #. comp.no. dens GMIX# + "Water" -37.25 #. Atomic proportions + "Si O_2" -34.93 + "Al_2 O_3" -2.32 + "Fe_2 O_3" -2.17 + "Ca O" -5.31 + "Mg O" -17.38 + "C O_2" -0.39 + "K_2 O" -0.24 + "Ni_2 O_3" -0.07 +"Serpentine - Iron" 9 3.765 #. comp.no. dens GMIX# + "Water" -21.66 #. Atomic proportions + "Si O_2" -19.43 + "Al_2 O_3" -1.62 + "S_2 O_3" -0.18 + "Fe_2 O_3" -1.91 + "Ca O" -5.95 + "Mg O" -17. + "C O_2" -0.62 + "Iron" -31.62 +"Limonite" 6 2.96 #. comp.no. dens GMIX# + "Water" -41.66 #. Atomic proportions + "Si O_2" -3.84 + "Al_2 O_3" -1.30 + "Fe_2 O_3" -44.03 + "Ca O" -7.58 + "Mg O" -0.33 +"Magetite" 7 3.12 #. comp.no. dens GMIX# + "Water" -32.98 #. Atomic proportions + "Oxygen" -1.47 + "Si O_2" -4.02 + "Al_2 O_3" -1.44 + "Fe_2 O_3" -51.88 + "Ca O" -7.85 + "Mg O" -0.36 +"Limonite magetite" 6 3.41 #. comp.no. dens GMIX# + "Water" -25.31 #. Atomic proportions + "Si O_2" -4.15 + "Al_2 O_3" -1.35 + "Fe_2 O_3" -60.79 + "Ca O" -8. + "Mg O" -0.40 +"Limonite Iron" 8 4.16 #. comp.no. dens GMIX# + "Water" -23.94 #. Atomic fraction + "Si O_2" -7.91 #. Atomic fraction + "Al_2 O_3" -2.38 #. Atomic fraction + "Fe_2 O_3" -13.22 #. Atomic fraction + "Ca O" -9.63 #. Atomic fraction + "Mg O" -0.53 #. Atomic fraction + "Mn O" -0.12 #. Atomic fraction + "Iron" -42.27 #. Atomic fraction +"Barite" 8 3.20 #. comp.no. dens GMIX# + "Water" -28.07 #. Atomic proportions + "Si O_2" -2.88 + "Al_2 O_3" -1. + "Fe_2 O_3" -5.55 + "Ca O" -6.46 + "Mg O" -0.22 + "Barium sulfate" -52.30 + "B_2 O_3" -5.61 +"Boron-Barite" 10 3.20 #. comp.no. dens GMIX# + "Water" -31.31 #. Atomic fraction + "Si O_2" -4.65 #. Atomic fraction + "Al_2 O_3" -1.40 #. Atomic fraction + "Fe_2 O_3" -1.14 #. Atomic fraction + "Ca O" -10.45 #. Atomic fraction + "Mg O" -0.45 #. Atomic fraction + "Na_2 O" -0.18 #. Atomic fraction + "Mn O" -0.01 #. Atomic fraction + "B_2 O_3" -5.61 #. Atomic fraction + "Barium sulfate" -30.87 #. Atomic fraction +"Colmanite Barite" 11 3.20 #. comp.no. dens GMIX# + "Water" -22.26 #. Atomic fraction + "Si O_2" -9.44 #. Atomic fraction + "Al_2 O_3" -1.58 #. Atomic fraction + "Fe_2 O_3" -2.62 #. Atomic fraction + "Ca O" -8.34 #. Atomic fraction + "Mg O" -0.51 #. Atomic fraction + "Na_2 O" -2.11 #. Atomic fraction + "K_2 O" -0.10 #. Atomic fraction + "Mn O" -0.02 #. Atomic fraction + "B_2 O_3" -6.42 #. Atomic fraction + "Barium sulfate" -46.59 #. Atomic fraction +"Boron_frits-Lumnite" 11 3.10 #. comp.no. dens GMIX# + "Water" -37.15 #. Atomic fraction + "Si O_2" -2.35 #. Atomic fraction + "Al_2 O_3" -3.73 #. Atomic fraction + "Fe_2 O_3" -3.15 #. Atomic fraction + "Ca O" -6.26 #. Atomic fraction + "Mg O" -0.26 #. Atomic fraction + "Na_2 O" -0.16 #. Atomic fraction + "Mn O" -0.10 #. Atomic fraction + "B_2 O_3" -4.66 #. Atomic fraction + "Ti_2 O_3" -1.52 #. Atomic fraction + "Barium sulfate" -40.64 #. Atomic fraction +#. *DO GMIX 0 -U -A4CW -c1/50 #.Title created on 941013 at 0034 GMIX +"MagnetiteBoron" 9 3.637 #. comp.no. dens GMIX# + "Hydrogen" 0.70 #. Weight fractions + "Bor 10" 0.26 + "Bor 11" 1.04 + "Oxygen" 35.00 + "Sodium" 1.30 + "Aluminium" 2.00 + "Silicon" 2.00 + "Calcium" 2.70 + "Iron" 55.00 +"MagnetiteConc" 9 3.65 #. comp.no. dens GMIX# + "Hydrogen" 0.35 #. Weight fractions + "Bor 10" 0.26 + "Bor 11" 1.04 + "Oxygen" 35.12 + "Sodium" 1.31 + "Aluminium" 2.01 + "Silicon" 2.01 + "Calcium" 2.71 + "Iron" 55.19 +"Steel-008" 9 7.8 #. comp.no. dens GMIX# + "Carbon" -.416 + "Silicon" -.316 + "Manganese" -.434 + "Sulfur" -.031 + "Phosphor" -.023 + "Nickel" -.009 + "Copper" -.026 + "Aluminium" -.144 + "Iron" -98.599 +"YokeSteel" 6 7.87 #. M.Huhtinen 21-Sep-96 + "Carbon" 0.10 #. Weight fractions GMIX + "Silicon" 0.10 + "Manganese" 0.40 + "Nickel" 1.00 + "Copper" 0.15 + "Iron" 98.25 +"Steel-light" 1 0.52 + "Steel-008" 1.0 +#. *DO GMIX 0 -U -A4CW -c1/50 #.Title created on 941013 at 0034 GMIX +"Polyvinylchloride" 3 1.38 #. CH_2 : CHCl density from SDC + "Carbon" -2.0 #. Atomic fraction + "Hydrogen" -3.0 #. Atomic fraction + "Chlorine" -1.0 #. Atomic fraction +"Low Tension cables" -2 -1.0 #. comp.no. dens GMIX + #. Area/cable (cm^2) + "Aluminium" -0.105 #. Volume fractions + "Polyethylene" -0.006 +"High Tension cables" -3 -1.0 #. comp.no. dens GMIX + #. Area/cable (mm^2) + "Aluminium" -1.51 #. core + armour + screen + "Polyethylene" -4.406 #. PE + sheath + "Mylar" -0.47 #. PET +"Optical fibre" 1 1.05 + "Polystyrene" -0.0625 #. area/fibre +"Pipe with Water" -3 -1.0 #. Cooling pipe : water, + #. Al (500mkm) + 500 mkm insulation + "Polyethylene" -0.4765 #. Total cross section = 3.46 cm^2 + "Aluminium" -0.4565 + "Water" -2.5270 +"Flushing gas" -2 -1.0 #. Gas + 200 mkm of Al + "Air" -0.5246 #. Total cross section = 0.7 cm^2 + "Aluminium" -0.1654 +"Pipe with gas" -2 -1.0 #. Gas + 200 mkm of Al + "Argon CF_4 CO_2" -2.0295 #. Total cross section = 2.21 cm^2 + "Aluminium" -0.1805 +"Cable_0" -6 -1.0 #. Cable+Water+Gas for wheels 0-4 + "Low Tension cables" -2.10 #. xs = 10.44 cm^2 + "High Tension cables" -1.63 + "Optical fibre" -0.34 + "Pipe with Water" -3.46 + "Flushing gas" -0.70 + "Pipe with gas" -2.21 +"Cable_Si_1" -5 -1.0 #. Si Cable + Water + Gas for wheels 5,7,9 + "Low Tension cables" -0.62 #. xs = 5.69 cm^2 + "High Tension cables" -0.21 + "Optical fibre" -0.12 + "Pipe with Water" -2.73 + "Flushing gas" -2.01 +"Cable_MSGC_2" -6 -1.0 #. MSGC Cable + Water + Gas for wheels 5,7 + "Low Tension cables" -1.14 #. for wheels 5,7 xs = 8.83 cm^2 + "High Tension cables" -0.33 #. for wheels 6,8,9 xs = 7.06 cm^2 + "Optical fibre" -0.15 + "Pipe with Water" -3.42 + "Flushing gas" -0.25 + "Pipe with gas" -3.54 +"Cable_MSGC_3" -6 -1.0 #. MSGC Cable + Water + Gas + "Low Tension cables" -1.58 #. for wheels 10,12,14 xs = 10.26 cm^2 + "High Tension cables" -0.37 #. for wheels 11,13 xs = 8.21 cm^2 + "Optical fibre" -0.20 #. 15,17 xs = 7.27 cm^2 + "Pipe with Water" -3.86 #. 16,18 xs = 10.08 cm^2 + "Flushing gas" -0.28 + "Pipe with gas" -3.97 +"Cables" 4 2.68 #. 2.68 + "Copper" 58.600 #. Weight fractions + "Carbon" 25.900 + "Oxygen" 13.800 + "Hydrogen" 1.700 +"CT Cu cable" -4 -1.0 #. comp.no. dens GMIX + "Copper" -0.38 #. Volume fractions + "Carbon" -0.21 + "Hydrogen" -0.33 + "Oxygen" -0.800E-1 +"CT Al cable" -4 -1.0 #. comp.no. dens GMIX + "Aluminium" -0.38 #. Volume fractions + "Carbon" -0.21 + "Hydrogen" -0.33 + "Oxygen" -0.800E-1 +#. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX +"Coil average" -2 -1.0 #. comp.no. dens GMIX# + "Copper" -0.564 #. Volume fractions + "Helium" -0.436 +"Hcal sci" 2 1.032 #. comp.no. dens GMIX + "Carbon" -0.5 #. Atomic proportions + "Hydrogen" -0.5 +"Hcal average" -4 -1.0 #. comp.no. dens GMIX# + "Copper" -0.90 #. Volume fractions + "Air" -0.02 + "Carbon" -0.04 + "Hydrogen" -0.04 +"Vcal CO2" 1 0.00198 #. comp.no. dens GMIX# + "C O_2" 1.0 #. Atomic proportion +"Vcal C4H10" 2 0.00267 #. comp.no. dens GMIX# + "Carbon" -4. #. Atomic proportions + "Hydrogen" -10. +"Vcal average" 2 7.55 #. comp.no. dens GMIX# + "Steel-008" -1.750 #. Atomic proportions + "Vcal C4H10" -0.075 +"Bi_4 Ge_3 O_12" 3 7.1 #. comp.no. dens GMIX# + "Bismuth" -4. #. Atomic proportions + "Germanium" -3. + "Oxygen" -12. +"Ce F_3" 2 6.16 + "Cerium" -1.0 + "Fluorine" -3.0 +"Pb W O_4" 3 8.28 + "Lead" -1.0 + "Tungsten" -1.0 + "Oxygen" -4.0 +"Siliecal" 2 1.0859 + "Carbon" -0.3 + "Polyethylene" -2.0 +"Muon Al" 1 2.7 + "Aluminium" 1.0 +"Ar(40%)+Ethane(60%)" 2 1.46920E-3 + "Argon" -.40 + "Ethane" -.60 +"Muon average" -2 -1.0 #. comp.no. dens GMIX# + "Ar(40%)+Ethane(60%)" -1.0 #. Volume fractions + "Aluminium" -0.2 +#. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX +"Alumina" 2 3.52 #. comp.no. dens GMIX# + "Aluminium" -2.0 #. Atomic proportions + "Oxygen" -3.0 +"Ceramic" 2 3.96525 #. comp.no. + "Aluminium" -2.0 #. Atomic proportions + "Oxygen" -3.0 +"Beryllia" 2 2.63 #. comp.no. dens GMIX# + "Beryllium" -1.0 #. Atomic proportions + "Oxygen" -1.0 +#. *DO GMIX 0 -U -A4CW -c1/80 #. GMIX +"M_Copper" 1 8.96 #. + "Copper" -1. +"M_NEMA FR4 plate" 1 1.7 #. + "NEMA FR4 plate" -1. +"LeadLoadedPolymerCon" 9 3.53 #. M.Huhtinen CMS IN 1997/024 + "Hydrogen" 2.351270 #. Weight fractions + "Lithium" 4.164310 + "Iron" 11.416400 + "Carbon" 10.198300 + "Oxygen" 8.781870 + "Aluminium" 1.869690 + "Silicon" 0.283286 + "Calcium" 1.303120 + "Lead" 59.631700 +"E_PbWO4" 3 8.28 #. Lead tungstate for crystals + "Lead" -1.00 + "Tungsten" -1.00 + "Oxygen" -4.00 +"E_Air" -1 0.12050E-02 + "Air" -1.0 +"E_Aluminium" 1 2.7000 + "Aluminium" -1.0 +"E_Carbon Fibre" 2 1.45 + "Carbon" 0.65 + "Hydrogen" 0.35 +"E_Polythene" 1 0.95 + "Polyethylene" -1.0 +#. Barrel Muon materials +"M_B_Air" 1 0.12050E-02 + "Air" 1.0 #. Weight fraction +"M_Air" 1 0.12050E-02 + "Air" 1.0 #. Weight fraction +"M_Aluminium" 1 8.9000 + "Aluminium" 1.0 #. Weight fraction +"M_Cables" 1 2.68 + "Cables" 1.0 #. Weight fraction +"M_DTBX_Gas" 1 0.0018194 + "DTBX gas" 1.0 #. Weight fraction +"M_RPC_Bakelite" 1 1.3 + "Bakelite" 1.0 #. Weight fraction +"M_Electronics_averag" 1 1.3 + "Bakelite" 1.0 #. Weight fraction +"M_RPC_Gas" 1 1.8768520E-3 + "RPC Gas" 1.0 #. Weight fraction +"M_YokeSteel" 1 7.800 + "YokeSteel" 1.0 #. Weight fraction +"M_Steel-008" 1 7.800 + "Steel-008" -1.0 +"M_Thick_Steel-008" 1 7.800 + "Steel-008" -1.0 +"M_honeycomb" -2 -1.000 + "Aluminium" -1.85 #. Volume fraction + "Air" -98.15 #. Volume fraction +#. Forward Muon material +"AISI-1045-Steel" 5 7.87 + "Carbon" 0.50 + "Manganese" 0.90 + "Phosphor" 0.04 + "Sulfur" 0.05 + "Iron" 98.51 +#. Required for HCal + "Brass" 2 8.53 + "Copper" 0.70 + "Zinc" 0.30 + "QuartzBundle" -4 1.30515 + "Quartz" -0.3000 + "Polystyrene" -0.0600 + "Doped Quartz" -0.0600 + "Air" -0.5800 + "LeadBPolymer" 8 3.53 + "Hydrogen" 2.30 + "Boron" 2.00 + "Fluorine" 11.40 + "Carbon" 10.20 + "Oxygen" 8.80 + "Aluminium" 2.20 + "Calcium" 1.30 + "Lead" 61.80 +##. *DO GMIX 0 -U -A4CW -c1/50 #. GMIX +"Teflon" 2 2.20 + "Carbon" -33.0 + "Fluorine" -66.0 +"Ne30_DME70" 4 1.7E-3 + "Neon" -3.0 + "Carbon" -14.0 + "Oxygen" -7.0 + "Hydrogen" -42.0 +"Peek" 1 1.32 + "Epoxy" -100. +"c_Peek" 2 1.8 + "Epoxy" -0.50 + "Si O_2" -0.50 +"Hybrids" -2 1.785 + "Aluminium" -42.86 + "Kapton" -57.14 +"Connector" -3 1.119 + "Peek" -20.00 + "Copper" -10.00 + "Air" -70.00 +"Tk_CF_supp" 1 1.69 + "Carbon fibre str." -100. +"Tk_CF_supp_sili" 1 1.69 + "Carbon fibre str." -100. +"T_Carbon fibre str." 1 1.69 + "Carbon fibre str." -100. +"T_Kapton" -1 1.40 + "Kapton" -100. +"T_PIXEL-Average" 1 8.00 + "Silicon" 1.00 +"T_SITRA-Average" 1 7.00 + "Silicon" 1.00 +"T_MSGC-Average" 2 0.23 + "Carbon" 0.80 + "Silicon" 0.20 +"T_Silicon Detector" 1 2.3300 + "Silicon" -1.000 +"T_Argon CF_4 CO_2" -1 2.14160E-3 + "Argon CF_4 CO_2" -1.0 +"Nomex" -2 0.032 + "Air" -97.8 + "T_Kapton" -2.20 +"Aluminium silicate" 3 3.156 + "Aluminium" -6.0 + "Silicon" -2.0 + "Oxygen" -13.0 +"Al-silicate + Zi" 2 3.3196 + "Aluminium silicate" 0.9 + "Zinc" 0.1 +"HFE" 4 1.52 + "Hydrogen" -3. + "Oxygen" -1. + "Carbon" -5. + "Fluorine" -9. +"Silica" 2 2.20 + "Silicon" -1.0 + "Oxygen" -2.0 +"SMD_metal" -3 10.20 + "Nickel" -5.00 + "Silver" -75.00 + "Tin" -20.00 +"Tk_CCU_board" -8 1.71279 + "SMD_metal" -0.190 + "Copper" -1.695 + "Alumina" -0.912 + "Aluminium" -14.229 + "Silicon" -1.433 + "Carbon" -0.608 + "Carbon fibre str." -47.429 + "T_Kapton" -33.504 +"Tk_IO_board" -8 2.303 + "SMD_metal" -0.192 + "Copper" -1.727 + "Alumina" -20.247 + "Aluminium" -11.994 + "Silicon" -5.228 + "Carbon" -0.513 + "Carbon fibre str." -39.981 + "T_Kapton" -20.119 +"O_Hybrid" -8 2.838 + "Silver" -2.972 + "SMD_metal" -2.378 + "Copper" -3.535 + "Al-silicate + Zi" -23.779 + "Alumina" -6.341 + "Silicon" -7.728 + "Carbon" -3.171 + "T_Kapton" -50.095 +"Pigtails" -2 3.145 + "Copper" -23.077 + "T_Kapton" -76.923 +"G_conntr" -2 2.007 + "Copper" -8.100 + "T_Kapton" -91.900 +"P_pipes" -2 2.3285 + "Steel-008" -12.884 + "T_Kapton" -87.116 +"Outer_pipes" -2 2.533 + "Iron" -15.974 + "HFE" -84.026 +"G10" -2 1.7 + "Epoxy" -0.40 + "Si O_2" -0.60 +"ICB" -2 2.309 + "Copper" -6.367 + "G10" -93.633 +"Coolant" 4 1.52 + "Hydrogen" -3. + "Oxygen" -1. + "Carbon" -5. + "Fluorine" -9. +"C6F14" 2 1.76 + "Carbon" -6.0 + "Fluorine" -14.0 +"T_FR4" 1 1.7 + "NEMA FR4 plate" -100. +"T_Bronze" 2 8.89 + "Copper" 95.0 + "Tin" 6.0 +"MS_Al60" -3 0.866 + "Aluminium" -14.165 + "Polyethylene" -85.451 + "Silver" -0.384 +"MS_Al48" -3 0.877 + "Aluminium" -13.033 + "Polyethylene" -86.593 + "Silver" -0.374 +"MS_Al36" -3 0.901 + "Aluminium" -12.218 + "Polyethylene" -87.403 + "Silver" -0.379 +"MS_cntrl_cable" -2 1.467 + "Copper" -10.000 + "Polyethylene" -90.000 +"MS_cntr" -3 2.049 + "Iron" -8.306 + "Aluminium" -31.894 + "T_Kapton" -59.801 +"T_OPC" -3 1.05917 + "Iron" -5.739 + "Polyethylene" -63.943 + "Air" -30.318 +"Tk_Opt_Ribbon" -2 1.07852 + "Quartz" -10.144 + "Polyethylene" -89.856 +"Fibre_connector" -3 1.05917 + "Iron" -5.739 + "Polyethylene" -63.943 + "Air" -30.318 +"Fibre_Ribbon" -2 1.219 + "Quartz" -15.835 + "Polyethylene" -84.165 +"T_OP_cable" -3 0.601463 + "Quartz" -0.690 + "Polyethylene" -61.673 + "Air" -37.637 +"MS_Al_cable" -2 1.95062 + "Aluminium" -44.465 + "Polyethylene" -55.535 +"MS_Cu_cable" -2 9.4537 + "Copper" -52.830 + "Polyethylene" -47.170 +"Px_cool_pipe" -2 2.72629 + "Iron" -18.997 + "HFE" -81.003 +"Tk_cool_pipe" -2 2.53663 + "Iron" -15.999 + "HFE" -84.001 +"Tk_op_boxes" -3 0.173214 + "Aluminium" -30.947 + "T_OPC" -68.357 + "Tk_Opt_Ribbon" -0.696 +"Tk_panels_in" -1 0.1525 + "MS_Al_cable" -100. +"Tk_panels_mid1" -2 0.165 + "Carbon fibre str." -3.837 + "Nomex" -96.163 +"Tk_panels_mid2" -3 1.1085 + "MS_cntr" -18.361 + "Carbon fibre str." -6.048 + "Nomex" -75.592 +"Tk_panels_mid3" -3 0.166 + "Silver" -0.020 + "Carbon fibre str." -3.845 + "Nomex" -96.135 +"Tk_panels_out" -1 0.591 + "MS_Cu_cable" -100.0 +"Tk_panels_up" -3 0.1203 + "Outer_pipes" -38.678 + "MS_Al_cable" -55.743 + "Fibre_Ribbon" -5.579 +"Tk_Cable_1" -7 0.9428 + "MS_Cu_cable" -14.204 + "Px_cool_pipe" -0.873 + "Tk_cool_pipe" -12.569 + "Aluminium" -8.846 + "MS_Al_cable" -15.173 + "Peek" -1.208 + "Fibre_Ribbon" -47.127 +"Tk_square_bundles" -7 0.9710 + "MS_Cu_cable" -14.865 + "Px_cool_pipe" -0.913 + "Tk_cool_pipe" -13.153 + "Aluminium" -4.605 + "MS_Al_cable" -15.879 + "Peek" -1.264 + "Fibre_Ribbon" -49.320 +"Tk_support" -1 5.25617 + "Iron" -100. +"Pix_Bar_Det" -1 2.33 + "Silicon" -1.0 +"Pix_Bar_Readout" -1 2.33 + "Silicon" -1.0 +"Pix_Bar_Cable" -3 -1.0 + "Kapton" -0.0100 + "Copper" -0.0002 + "Aluminium" -0.0040 +"Pix_Bar_Hybrid" -6 -1.0 + "Carbon fibre str." -0.045 + "Si O_2" -0.0046 + "Epoxy" -0.0100 + "Tin" -0.0001 + "Copper" -0.0006 + "Kapton" -0.0050 +"Pix_Bar_Ring" -2 -1.0 + "Carbon fibre str." -0.0520 + "Carbon fibre str." -0.0150 +"Pix_Bar_Cool" -2 -1.0 + "Coolant" -9.61 + "Aluminium" -2.64 +"Pix_Bar_Water" -2 -1.0 + "Coolant" -0.25 + "Peek" -0.24 +"Pix_Bar_Conn1" -5 -1.0 + "NEMA G10 plate" -38.5 + "Copper" -10.7 + "Tin" -0.45 + "Epoxy" -5.65 + "Kapton" -48.6 +"Pix_Bar_Conn2" -8 -1.0 + "Carbon fibre str." -159.8 + "NEMA G10 plate" -77.0 + "Copper" -12.0 + "Tin" -0.45 + "Epoxy" -11.3 + "Kapton" -74.6 + "Aluminium" -44.4 + "Coolant" -126.7 +"Pix_Bar_Services" -6 -1.0 + "Carbon fibre str." -5.8 + "Coolant" -4.5 + "Copper" -0.02 + "Aluminium" -4.20 + "Optical fibre" -0.13 + "Polyethylene" -0.23 +"Carbon fibre st_b" 1 1.69 + "Carbon fibre str." -100. +"Aluminium Pix_b" 1 2.70 + "Aluminium" -100. +"Pixel Cables" -2 -1.0 + "Aluminium" -0.050 + "Kapton" -0.150 +"Barrel PixelCables" -2 -1.0 + "Pixel Cables" -0.400 + "Coolant" -0.600 +"Pix_Fwd_Det" -1 2.33 + "Silicon" -1.0 +"Pix_Fwd_Readout" -1 2.33 + "Silicon" -1.0 +"Pix_Fwd_Ring" -2 -1.0 + "Carbon fibre str." -0.14 + "Air" -0.36 +"Pix_Fwd_Cool" -2 -1.0 + "Coolant" -12.0 + "Aluminium" -3.2 +"Pix_Fwd_Blade" -5 -1.0 + "Carbon fibre str." -0.0250 + "Copper" -0.0003 + "Aluminium" -0.0029 + "Epoxy" -0.0043 + "Kapton" -0.0026 +"Pix_Fwd_PortCard" -8 -1.0 + "NEMA G10 plate" -0.0340 + "Copper" -0.0020 + "Aluminium" -0.0094 + "Epoxy" -0.0038 + "Kapton" -0.1038 + "Iron" -0.0032 + "Silicon" -0.0008 + "Air" -0.8430 +"Pix_Fwd_Services_1" -5 -1.0 + "Carbon fibre str." -0.0100 + "Coolant" -0.0175 + "Aluminium" -0.0170 + "Optical fibre" -0.0009 + "Air" -0.8430 +"Pix_Fwd_Services_2" -5 -1.0 + "Carbon fibre str." -0.0100 + "Coolant" -0.0350 + "Aluminium" -0.0240 + "Optical fibre" -0.0018 + "Air" -0.8292 +"Pix_Fwd_Services_3" -5 -1.0 + "Carbon fibre str." -0.0230 + "Coolant" -0.0350 + "Aluminium" -0.0240 + "Optical fibre" -0.0018 + "Air" -0.8162 +"Forw.Pixel Cooling" -2 -1.0 + "Aluminium" -0.200 + "Coolant" -0.800 +"ForwardPixelCables" -2 -1.0 + "Pixel Cables" -0.575 + "Coolant" -0.425 +"TIB_Wafer" 1 2.33 + "Silicon" -100. +"TIB_Silicon" 1 2.33 + "Silicon" -100. +"TIB_sid_rail1" -3 1.554 + "Carbon fibre str." -79.033 + "T_Kapton" -19.616 + "Copper" -1.351 +"TIB_sid_rail2" -2 1.419 + "Carbon fibre str." -81.818 + "T_Kapton" -18.182 +"TIB_ledge_side" -2 15.002 + "Aluminium" -65.240 + "Carbon fibre str." -34.760 +"TIB_ledge_hybrid" -2 23.813 + "Aluminium" -82.963 + "Carbon fibre str." -17.037 +"TIB_ledge_bss" -3 5.828 + "Aluminium" -59.155 + "T_Kapton" -2.981 + "Carbon fibre str." -37.864 +"TIB_ledge_bds" -3 6.870 + "Aluminium" -57.338 + "T_Kapton" -3.114 + "Carbon fibre str." -39.548 +"TIB_PA_rphi" -3 1.730 + "Silica" -44.836 + "Carbon fibre str." -44.320 + "Alumina" -10.843 +"TIB_PA_ster" -3 1.640 + "Silica" -42.582 + "Carbon fibre str." -46.131 + "Alumina" -11.286 +"TIB_mod_spacer1" -1 2.7 + "Aluminium" -100. +"TIB_mod_spacer2" -3 2.051 + "Aluminium" -27.979 + "T_Kapton" -7.254 + "Carbon fibre str." -64.767 +"TIB_mother_cable" -4 3.341 + "T_Kapton" -56.925 + "Copper" -20.458 + "Quartz" -0.452 + "Polyethylene" -22.165 +"TIB_mod_cool" -2 1.938 + "Aluminium" -18.953 + "C6F14" -81.047 +"TIB_outer_supp" -1 1.69 + "Carbon fibre str." -100. +"TIB_cylinder" -1 0.865 + "Carbon fibre str." -100. +"TIB_cent_supp" -3 0.703 + "Aluminium" -13.374 + "C6F14" -25.300 + "Carbon fibre str." -61.326 +"TIB_connector" -2 0.404 + "T_Kapton" -82.547 + "Copper" -17.453 +"TIB_disk" -6 0.214 + "Carbon fibre str." -13.848 + "T_Kapton" -65.072 + "Copper" -4.461 + "T_FR4" -10.505 + "T_Bronze" -2.526 + "G10" -3.588 +"TIB_rib0" -2 1.131 + "Carbon fibre str." -35.815 + "Aluminium" -64.185 +"TIB_rib1" -2 0.379 + "Carbon fibre str." -42.713 + "Aluminium" -57.287 +"TIB_rib2" -2 0.518 + "Carbon fibre str." -41.610 + "Aluminium" -58.390 +"TIB_rib3" -2 0.508 + "Carbon fibre str." -39.761 + "Aluminium" -60.239 +"TIB_rib4" -2 0.922 + "Carbon fibre str." -39.698 + "Aluminium" -60.302 +"TIB_cab_rad1" -6 0.979 + "T_Kapton" -16.894 + "Copper" -4.827 + "Fibre_Ribbon" -3.479 + "Aluminium" -8.137 + "C6F14" -26.479 + "MS_cntrl_cable" -40.184 +"TIB_cab_rad2" -6 0.976 + "T_Kapton" -15.903 + "Copper" -4.796 + "Fibre_Ribbon" -3.457 + "Aluminium" -8.936 + "C6F14" -29.080 + "MS_cntrl_cable" -37.827 +"TIB_cab_rad3" -6 0.546 + "T_Kapton" -19.015 + "Copper" -10.413 + "Fibre_Ribbon" -2.502 + "Aluminium" -10.685 + "C6F14" -34.771 + "MS_cntrl_cable" -22.615 +"TIB_cab_rad4" -6 0.501 + "T_Kapton" -21.045 + "Copper" -11.596 + "Fibre_Ribbon" -2.786 + "Aluminium" -10.136 + "C6F14" -32.984 + "MS_cntrl_cable" -21.453 +"TIB_cables_ax" -6 0.652 + "T_Kapton" -17.809 + "Copper" -7.281 + "Fibre_Ribbon" -3.140 + "Aluminium" -9.317 + "C6F14" -30.319 + "MS_cntrl_cable" -32.134 +"TIB_cables_ax_out" -6 1.098 + "Fibre_Ribbon" -0.913 + "Aluminium" -2.708 + "C6F14" -8.813 + "MS_cntrl_cable" -9.341 + "MS_Al36" -57.971 + "MS_Al48" -20.253 +"TIB_Rib_in1" -1 1.640 + "Carbon fibre str." -100.000 +"TIB_Rib_in2" -1 1.640 + "Carbon fibre str." -100.000 +"TIB_Rib_in3" -1 1.640 + "Carbon fibre str." -100.000 +"TIB_Rib_in4" -1 1.640 + "Carbon fibre str." -100.000 +"TIB_ele1" -6 2.774 + "Alumina" -44.700 + "Gold" -2.244 + "Carbon" -0.410 + "SMD_metal" -0.467 + "Silicon" -8.934 + "Carbon fibre str." -43.245 +"TIB_ele2" -6 2.774 + "Alumina" -44.700 + "Gold" -2.244 + "Carbon" -0.410 + "SMD_metal" -0.467 + "Silicon" -8.934 + "Carbon fibre str." -43.245 +"TIB_ele3" -6 2.781 + "Alumina" -43.778 + "Gold" -2.202 + "Carbon" -0.362 + "SMD_metal" -0.410 + "Silicon" -5.990 + "Carbon fibre str." -47.257 +"TIB_ele4" -6 2.781 + "Alumina" -43.778 + "Gold" -2.202 + "Carbon" -0.362 + "SMD_metal" -0.410 + "Silicon" -5.990 + "Carbon fibre str." -47.257 +"TIB_ICC1" -8 1.083 + "T_FR4" -19.019 + "T_Kapton" -69.278 + "Copper" -6.702 + "T_Bronze" -1.241 + "Alumina" -0.933 + "Carbon" -0.439 + "SMD_metal" -0.239 + "Silicon" -2.148 +"TIB_ICC2" -8 2.133 + "T_FR4" -16.175 + "T_Kapton" -70.875 + "Copper" -6.857 + "T_Bronze" -1.270 + "Alumina" -0.955 + "Carbon" -0.449 + "SMD_metal" -0.244 + "Silicon" -3.175 +"TIB_ICC_ledge1" -1 3.241 + "Aluminium" -100.000 +"TIB_ICC_ledge2" -1 3.497 + "Aluminium" -100.000 +"TIB_CCUM" -8 1.124 + "T_FR4" -34.050 + "Copper" -0.824 + "T_Kapton" -52.894 + "SMD_metal" -0.384 + "Alumina" -0.014 + "Carbon" -0.027 + "T_Bronze" -2.540 + "Aluminium" -9.268 +"TIE_Side_Wafer" 1 2.33 + "Silicon" -100. +"TIE_in_cable" -3 6.285 + "Outer_pipes" -34.927 + "MS_Al_cable" -59.618 + "Fibre_Ribbon" -5.455 +"TIE_ax_cable" -3 6.285 + "Outer_pipes" -34.927 + "MS_Al_cable" -59.618 + "Fibre_Ribbon" -5.455 +"TIE_rad_cable" -3 13.552 + "Steel-008" -35.902 + "Quartz" -0.535 + "HFE" -63.562 +"TIE_mech" -2 0.091 + "Carbon fibre str." -3.614 + "Nomex" -96.386 +"TIE_ele1" -7 14.745 + "SMD_metal" -0.591 + "Alumina" -6.942 + "Aluminium" -44.940 + "Silicon" -4.697 + "Carbon" -1.688 + "Carbon fibre str." -31.648 + "T_Kapton" -9.494 +"TIE_ele2" -7 14.745 + "SMD_metal" -0.591 + "Alumina" -6.942 + "Aluminium" -44.940 + "Silicon" -4.697 + "Carbon" -1.688 + "Carbon fibre str." -31.648 + "T_Kapton" -9.494 +"TIE_ele3" -7 20.3739 + "SMD_metal" -0.380 + "Alumina" -4.704 + "Aluminium" -60.338 + "Silicon" -2.429 + "Carbon" -1.267 + "Carbon fibre str." -23.755 + "T_Kapton" -7.127 +"TIE_ICC1" -7 1.074 + "Pigtails" -7.434 + "O_Hybrid" -14.433 + "P_pipes" -19.163 + "ICB" -32.022 + "G_conntr" -13.152 + "Quartz" -0.073 + "Carbon" -13.724 +"TIE_ICC2" -7 3.46 + "Pigtails" -4.991 + "O_Hybrid" -9.691 + "P_pipes" -21.227 + "Aluminium" -45.050 + "G_conntr" -8.831 + "Quartz" -0.074 + "Carbon" -10.136 +"TIE_ICC3" -11 3.534 + "Steel-008" -4.000 + "Pigtails" -0.695 + "O_Hybrid" -1.080 + "Aluminium" -7.918 + "P_pipes" -2.788 + "Quartz" -8.898 + "G_conntr" -1.995 + "Quartz" -0.008 + "Tk_CCU_board" -2.504 + "Carbon" -1.540 + "Fibre_connector" -68.574 +"TIE_Wafer" 1 2.33 + "Silicon" -100. +"TIE_frame_light" -2 2.33 + "Aluminium" -28.121 + "Carbon fibre str." -71.879 +"TIE_frame_light_back" -1 1.4378 + "Carbon fibre str." -100.00 +"TIE_PitchAdapter" -2 5.0505 + "Silica" -27.149 + "Carbon fibre str." -72.851 +"TIE_petal" -4 0.1958 + "Aluminium" -0.376 + "ICB" -2.484 + "Carbon fibre str." -5.497 + "Nomex" -91.643 +"TIE_Fixframe" -2 100. + "Iron" -6.421 + "Aluminium" -93.579 +"TIE_Connector" -2 0.303 + "T_Kapton" -95.052 + "Copper" -4.948 +"active_screen" -2 11.197 + "HFE" -58.824 + "Carbon fibre str." -41.176 +"Tk_SO_FC_G" -1 1.69 + "Carbon fibre str." -100. +"TOB_rail" -1 1.69 + "Carbon fibre str." -100.0 +"TIB_rail" -1 1.69 + "Carbon fibre str." -100.0 +"TOB_CuNi" 2 8.94 + "Copper" 70.0 + "Nickel" 30.0 +"TOB_Brass" 2 8.5 + "Copper" 63.0 + "Zinc" 37.0 +"TOB_cool_solder" 3 9.0 + "Tin" 62.0 + "Lead" 36.0 + "Silver" 2.0 +"TOB_CF_Str" -1 1.69 + "Carbon fibre str." -100.0 +"TOB_Nomex" -1 0.032 + "Nomex" -100.0 +"TOB_Epoxy" -1 1.32 + "Epoxy" -100.0 +"TOB_Aluminium" -1 2.7 + "Aluminium" -100.0 +"TOB_cool_SS" -2 3.083 + "TOB_CuNi" -18.421 + "C6F14" -81.579 +"TOB_cool_DS" -2 2.871 + "TOB_CuNi" -15.479 + "C6F14" -84.521 +"TOB_optfib_SS" -3 2.156 + "Aluminium" -4.441 + "Polyethylene" -93.796 + "Quartz" -1.763 +"TOB_optfib_DS" -3 3.926 + "Aluminium" -2.360 + "Polyethylene" -95.768 + "Quartz" -1.873 +"TOB_plate_A" -1 0.674 + "Aluminium" -100.0 +"TOB_plate_B" -1 2.7 + "Aluminium" -100.0 +"TOB_plate_C" -1 2.7 + "Aluminium" -100.0 +"TOB_coolmanifold1" -4 2.379 + "TOB_CuNi" -12.379 + "C6F14" -83.763 + "TOB_Brass" -3.128 + "TOB_cool_solder" -0.730 +"TOB_coolmanifold2" -4 2.382 + "TOB_CuNi" -12.374 + "C6F14" -83.730 + "TOB_Brass" -3.159 + "TOB_cool_solder" -0.737 +"TOB_coolmanifold3" -4 2.384 + "TOB_CuNi" -12.370 + "C6F14" -83.701 + "TOB_Brass" -3.186 + "TOB_cool_solder" -0.743 +"TOB_coolmanifold4" -4 2.386 + "TOB_CuNi" -12.367 + "C6F14" -83.680 + "TOB_Brass" -3.205 + "TOB_cool_solder" -0.748 +"TOB_coolmanifold5" -4 2.384 + "TOB_CuNi" -12.369 + "C6F14" -83.696 + "TOB_Brass" -3.190 + "TOB_cool_solder" -0.744 +"TOB_coolmanifold6" -4 2.386 + "TOB_CuNi" -12.366 + "C6F14" -83.676 + "TOB_Brass" -3.209 + "TOB_cool_solder" -0.749 +"TOB_ele5" -5 4.879 + "Alumina" -84.767 + "Gold" -3.977 + "Carbon" -0.525 + "SMD_metal" -0.597 + "Silicon" -10.134 +"TOB_ele6" -5 4.879 + "Alumina" -84.767 + "Gold" -3.977 + "Carbon" -0.525 + "SMD_metal" -0.597 + "Silicon" -10.134 +"TOB_ele7" -5 4.818 + "Alumina" -86.460 + "Gold" -4.059 + "Carbon" -0.507 + "SMD_metal" -0.575 + "Silicon" -8.398 +"TOB_ele8" -5 4.818 + "Alumina" -86.460 + "Gold" -4.059 + "Carbon" -0.507 + "SMD_metal" -0.575 + "Silicon" -8.398 +"TOB_ele9" -5 4.939 + "Alumina" -83.141 + "Gold" -3.899 + "Carbon" -0.541 + "SMD_metal" -0.617 + "Silicon" -11.801 +"TOB_ele10" -5 4.939 + "Alumina" -83.141 + "Gold" -3.899 + "Carbon" -0.541 + "SMD_metal" -0.617 + "Silicon" -11.801 +"TOB_rod" -1 1.796 + "Carbon fibre str." -100.000 +"TOB_sid_rail1" -6 1.604 + "Carbon fibre str." -79.484 + "T_Kapton" -18.571 + "Copper" -0.371 + "Alumina" -0.696 + "SMD_metal" -0.260 + "Carbon" -0.617 +"TOB_sid_rail2" -3 1.504 + "Carbon fibre str." -82.454 + "T_Kapton" -17.338 + "Copper" -0.208 +"TOB_frame_ele" -1 1.690 + "Carbon fibre str." -100.000 +"TOB_hybrid_supp" -1 1.726 + "Carbon fibre str." -100.000 +"TOB_PA_rphi" -3 1.549 + "Silica" -29.864 + "TOB_Nomex" -19.827 + "Carbon fibre str." -50.310 +"TOB_PA_ster" -2 2.057 + "Silica" -52.199 + "Carbon fibre str." -47.801 +"TOB_mod_cool_1" -3 6.634 + "Aluminium" -42.182 + "Carbon fibre str." -54.545 + "Steel-008" -3.273 +"TOB_mod_cool_2" -2 5.341 + "Aluminium" -39.024 + "Carbon fibre str." -60.976 +"TOB_mod_cool_3" -4 6.422 + "Aluminium" -44.127 + "Carbon fibre str." -48.670 + "Steel-008" -2.920 + "Copper" -4.283 +"TOB_mod_cool_4" -3 5.436 + "Aluminium" -41.547 + "Carbon fibre str." -53.725 + "Copper" -4.728 +"TOB_rib1" -3 0.460 + "T_Kapton" -85.326 + "Copper" -10.050 + "G10" -4.624 +"TOB_rib2" -3 0.461 + "T_Kapton" -85.382 + "Copper" -10.046 + "G10" -4.572 +"TOB_rib3" -3 0.261 + "T_Kapton" -74.349 + "Copper" -15.862 + "G10" -9.789 +"TOB_rib4" -3 0.260 + "T_Kapton" -74.496 + "Copper" -15.861 + "G10" -9.643 +"TOB_rib5" -3 0.457 + "T_Kapton" -85.347 + "Copper" -10.048 + "G10" -4.605 +"TOB_rib6" -3 0.457 + "T_Kapton" -85.457 + "Copper" -10.040 + "G10" -4.503 +"TOB_rad_cable1" -5 0.334 + "MS_Al60" -82.817 + "MS_cntrl_cable" -6.579 + "Fibre_Ribbon" -1.270 + "TOB_CuNi" -1.580 + "C6F14" -7.754 +"TOB_rad_cable2" -5 0.321 + "MS_Al60" -84.501 + "MS_cntrl_cable" -5.873 + "Fibre_Ribbon" -1.292 + "TOB_CuNi" -1.411 + "C6F14" -6.923 +"TOB_rad_cable3" -5 0.260 + "MS_Al36" -85.182 + "MS_cntrl_cable" -7.279 + "Fibre_Ribbon" -0.654 + "TOB_CuNi" -1.166 + "C6F14" -5.720 +"TOB_rad_cable4" -5 0.265 + "MS_Al36" -85.251 + "MS_cntrl_cable" -5.828 + "Fibre_Ribbon" -0.652 + "TOB_CuNi" -1.400 + "C6F14" -6.869 +"TOB_rad_cable5" -5 0.265 + "MS_Al36" -83.842 + "MS_cntrl_cable" -7.816 + "Fibre_Ribbon" -0.949 + "TOB_CuNi" -1.252 + "C6F14" -6.141 +"TOB_rad_cable6" -5 0.253 + "MS_Al36" -86.264 + "MS_cntrl_cable" -5.977 + "Fibre_Ribbon" -0.975 + "TOB_CuNi" -1.149 + "C6F14" -5.636 +"TOB_ax_cable" -6 7.930 + "MS_Al60" -25.704 + "MS_Al36" -59.007 + "MS_cntrl_cable" -6.551 + "Fibre_Ribbon" -0.964 + "TOB_CuNi" -1.316 + "C6F14" -6.458 +"TOB_middle_ribs" -1 1.69 + "Carbon fibre str." -100. +"TOB_ICB" -2 2.327 + "G10" -93.458 + "Copper" -6.542 +"TOB_ICC1" -9 1.056 + "Carbon fibre str." -25.970 + "G10" -39.167 + "Copper" -5.068 + "T_Kapton" -18.835 + "T_FR4" -5.309 + "Silicon" -0.808 + "Alumina" -4.425 + "Carbon" -0.248 + "SMD_metal" -0.169 +"TOB_ICC2" -9 1.067 + "Carbon fibre str." -17.218 + "G10" -40.404 + "Copper" -5.953 + "T_Kapton" -22.550 + "T_FR4" -7.040 + "Silicon" -1.071 + "Alumina" -5.249 + "Carbon" -0.311 + "SMD_metal" -0.204 +"TOB_ICC3" -9 0.877 + "Carbon fibre str." -30.211 + "G10" -45.563 + "Copper" -4.281 + "T_Kapton" -13.083 + "T_FR4" -3.088 + "Silicon" -0.380 + "Alumina" -3.115 + "Carbon" -0.165 + "SMD_metal" -0.113 +"TOB_ICC4" -9 0.835 + "Carbon fibre str." -21.158 + "G10" -49.650 + "Copper" -5.044 + "T_Kapton" -15.345 + "T_FR4" -4.326 + "Silicon" -0.533 + "Alumina" -3.605 + "Carbon" -0.202 + "SMD_metal" -0.138 +"TOB_ICC5" -9 0.879 + "Carbon fibre str." -30.157 + "G10" -45.482 + "Copper" -4.273 + "T_Kapton" -13.060 + "T_FR4" -3.083 + "Silicon" -0.558 + "Alumina" -3.110 + "Carbon" -0.164 + "SMD_metal" -0.113 +"TOB_ICC6" -9 0.837 + "Carbon fibre str." -21.105 + "G10" -49.526 + "Copper" -5.032 + "T_Kapton" -15.306 + "T_FR4" -4.315 + "Silicon" -0.782 + "Alumina" -3.596 + "Carbon" -0.201 + "SMD_metal" -0.138 +"TOB_CCUM1" -6 0.200 + "G10" -48.211 + "Copper" -4.714 + "T_Kapton" -46.489 + "SMD_metal" -0.529 + "Alumina" -0.019 + "Carbon" -0.038 +"TOB_CCUM2" -6 0.200 + "G10" -48.211 + "Copper" -4.714 + "T_Kapton" -46.489 + "SMD_metal" -0.529 + "Alumina" -0.019 + "Carbon" -0.038 +"TOB_CCUM3" -6 0.200 + "G10" -48.211 + "Copper" -4.714 + "T_Kapton" -46.489 + "SMD_metal" -0.529 + "Alumina" -0.019 + "Carbon" -0.038 +"TOB_CONN1" -4 2.326 + "Carbon fibre str." -24.941 + "Aluminium" -7.876 + "T_Kapton" -63.859 + "Copper" -3.324 +"TOB_CONN2" -4 1.567 + "Carbon fibre str." -37.556 + "Aluminium" -11.860 + "T_Kapton" -48.081 + "Copper" -2.503 +"TOB_CONN3" -4 1.567 + "Carbon fibre str." -37.556 + "Aluminium" -11.860 + "T_Kapton" -48.081 + "Copper" -2.503 +"TOB_Silicon" -1 2.33 + "Silicon" -100.0 +"TOB_Wafer" -1 2.33 + "Silicon" -100.0 +"TOE_ax_cable" -2 1.499 + "MS_Al_cable" -87.932 + "Fibre_Ribbon" -12.068 +"TOE_rad_cable" -3 21.5813 + "Steel-008" -35.635 + "Quartz" -1.275 + "HFE" -63.090 +"TOE_Wafer" -1 2.33 + "Silicon" -100.0 +"TOE_ele1" -7 14.745 + "SMD_metal" -0.591 + "Alumina" -6.942 + "Aluminium" -44.940 + "Silicon" -4.697 + "Carbon" -1.688 + "Carbon fibre str." -31.648 + "T_Kapton" -9.494 +"TOE_ele2" -7 14.745 + "SMD_metal" -0.591 + "Alumina" -6.942 + "Aluminium" -44.940 + "Silicon" -4.697 + "Carbon" -1.688 + "Carbon fibre str." -31.648 + "T_Kapton" -9.494 +"TOE_ele3" -7 20.37 + "SMD_metal" -0.380 + "Alumina" -4.704 + "Aluminium" -60.338 + "Silicon" -2.429 + "Carbon" -1.267 + "Carbon fibre str." -23.755 + "T_Kapton" -7.127 +"TOE_ele4" -7 20.37 + "SMD_metal" -0.380 + "Alumina" -4.704 + "Aluminium" -60.338 + "Silicon" -2.429 + "Carbon" -1.267 + "Carbon fibre str." -23.755 + "T_Kapton" -7.127 +"TOE_ele5" -7 14.745 + "SMD_metal" -0.591 + "Alumina" -6.942 + "Aluminium" -44.940 + "Silicon" -4.697 + "Carbon" -1.688 + "Carbon fibre str." -31.648 + "T_Kapton" -9.494 +"TOE_ele6" -7 20.37 + "SMD_metal" -0.380 + "Alumina" -4.704 + "Aluminium" -60.338 + "Silicon" -2.429 + "Carbon" -1.267 + "Carbon fibre str." -23.755 + "T_Kapton" -7.127 +"TOE_ele7" -7 20.37 + "SMD_metal" -0.380 + "Alumina" -4.704 + "Aluminium" -60.338 + "Silicon" -2.429 + "Carbon" -1.267 + "Carbon fibre str." -23.755 + "T_Kapton" -7.127 +"TOE_ICC1" -7 1.074 + "Pigtails" -7.434 + "O_Hybrid" -14.433 + "P_pipes" -19.163 + "ICB" -32.022 + "G_conntr" -13.152 + "Quartz" -0.073 + "Carbon" -13.724 +"TOE_ICC2" -1 0.001214 + "Air" -100.00 +"TOE_ICC3" -7 0.826 + "Pigtails" -4.991 + "O_Hybrid" -9.691 + "P_pipes" -21.227 + "ICB" -45.050 + "G_conntr" -8.831 + "Quartz" -0.074 + "Carbon" -10.136 +"TOE_ICC4" -7 0.6177 + "Pigtails" -3.966 + "O_Hybrid" -6.160 + "P_pipes" -24.085 + "ICB" -44.905 + "G_conntr" -8.891 + "Quartz" -0.044 + "Carbon" -11.949 +"TOE_ICC5" -7 0.659 + "Pigtails" -3.834 + "O_Hybrid" -6.381 + "P_pipes" -20.294 + "ICB" -51.908 + "G_conntr" -7.815 + "Quartz" -0.061 + "Carbon" -9.708 +"TOE_ICC6" -7 0.964 + "Pigtails" -6.112 + "O_Hybrid" -10.680 + "P_pipes" -18.346 + "ICB" -46.639 + "G_conntr" -11.679 + "Quartz" -0.113 + "Carbon" -6.432 +"TOE_ICC7" -11 0.7616 + "Steel-008" -3.421 + "Pigtails" -0.832 + "O_Hybrid" -1.385 + "Aluminium" -6.773 + "P_pipes" -6.443 + "ICB" -15.954 + "G_conntr" -1.485 + "Quartz" -0.012 + "Tk_CCU_board" -2.142 + "Carbon" -2.898 + "Fibre_connector" -58.655 +"TOE_rods" -2 2.379 + "Outer_pipes" -70.691 + "Carbon fibre str." -29.309 +"TOE_mech" -2 0.091 + "Carbon fibre str." -3.614 + "Nomex" -96.386 +"Tk_SO_FC_A" -1 1.69 + "Carbon fibre str." -100.0 +"Tk_SO_FC_B" -1 1.69 + "Carbon fibre str." -100.0 +"Tk_SO_FC_C" -1 1.69 + "Carbon fibre str." -100.0 +"Tk_SO_FC_D" -1 1.69 + "Carbon fibre str." -100.0 +"Tk_SO_FC_E" -1 1.69 + "Carbon fibre str." -100.0 +"Tk_SO_FC_F" -1 1.69 + "Carbon fibre str." -100.0 +"TOE_Side_Wafer" 1 2.33 + "Silicon" -100. +"TOE_frame_light" -2 2.33 + "Aluminium" -28.121 + "Carbon fibre str." -71.879 +"TOE_frame_heavy" -2 1.96 + "Aluminium" -11.906 + "Carbon fibre str." -88.094 +"TOE_frame_light_back" -1 1.4378 + "Carbon fibre str." -100.0 +"TOE_frame_heavy_back" -1 1.6137 + "Carbon fibre str." -100.0 +"TOE_PitchAdapter" -2 4.36854 + "Silica" -27.149 + "Carbon fibre str." -72.851 +"TOE_petal" -4 0.1958 + "Aluminium" -0.376 + "ICB" -2.484 + "Carbon fibre str." -5.497 + "Nomex" -91.643 +"TOE_Fixframe" -2 100. + "Iron" -6.421 + "Aluminium" -93.579 +"TEC_Nomex" -1 0.029 + "Nomex" -100.00 +"TEC_ax_cable" -5 7.038 + "Fibre_Ribbon" -1.046 + "MS_Al36" -73.003 + "MS_cntrl_cable" -14.037 + "Steel-008" -1.903 + "C6F14" -10.011 +"TEC_rad_cable" -2 1.072 + "Quartz" -1.998 + "Polyethylene" -98.002 +"TEC_Wafer" -1 2.33 + "Silicon" -100.0 +"TEC_ele1" -5 4.939 + "Alumina" -83.141 + "Gold" -3.899 + "Carbon" -0.541 + "SMD_metal" -0.617 + "Silicon" -11.801 +"TEC_ele2" -5 4.939 + "Alumina" -83.141 + "Gold" -3.899 + "Carbon" -0.541 + "SMD_metal" -0.617 + "Silicon" -11.801 +"TEC_ele3" -5 4.818 + "Alumina" -86.460 + "Gold" -4.059 + "Carbon" -0.507 + "SMD_metal" -0.575 + "Silicon" -8.398 +"TEC_ele4" -5 4.818 + "Alumina" -86.460 + "Gold" -4.059 + "Carbon" -0.507 + "SMD_metal" -0.575 + "Silicon" -8.398 +"TEC_ele5" -5 4.939 + "Alumina" -83.141 + "Gold" -3.899 + "Carbon" -0.541 + "SMD_metal" -0.617 + "Silicon" -11.801 +"TEC_ele6" -5 4.818 + "Alumina" -86.460 + "Gold" -4.059 + "Carbon" -0.507 + "SMD_metal" -0.575 + "Silicon" -8.398 +"TEC_ele7" -5 4.818 + "Alumina" -86.460 + "Gold" -4.059 + "Carbon" -0.507 + "SMD_metal" -0.575 + "Silicon" -8.398 +"TEC_ICC11" -3 1.803 + "T_FR4" -91.273 + "Copper" -4.655 + "Aluminium" -4.072 +"TEC_ICC21" -1 1.214e-3 + "Air" -100.00 +"TEC_ICC1B1" -4 1.696 + "T_FR4" -81.860 + "Copper" -5.124 + "T_Kapton" -10.761 + "Aluminium" -2.256 +"TEC_ICC2B1" -4 2.910 + "T_FR4" -76.524 + "Copper" -5.233 + "T_Kapton" -15.081 + "Aluminium" -3.162 +"TEC_ICC12" -4 2.804 + "T_FR4" -55.705 + "Copper" -8.520 + "T_Kapton" -34.072 + "Aluminium" -1.704 +"TEC_ICC22" -4 2.103 + "T_FR4" -70.535 + "Copper" -7.001 + "T_Kapton" -20.422 + "Aluminium" -2.042 +"TEC_ICC13" -4 2.165 + "T_FR4" -66.874 + "Copper" -7.481 + "T_Kapton" -24.424 + "Aluminium" -1.221 +"TEC_ICC23" -4 2.437 + "T_FR4" -68.774 + "Copper" -7.155 + "T_Kapton" -21.883 + "Aluminium" -2.188 +"TEC_ICC1B2" -4 1.725 + "T_FR4" -79.409 + "Copper" -5.273 + "T_Kapton" -13.865 + "Aluminium" -1.453 +"TEC_ICC2B2" -4 1.807 + "T_FR4" -75.515 + "Copper" -5.377 + "T_Kapton" -17.296 + "Aluminium" -1.813 +"TEC_ICC14" -4 1.445 + "T_FR4" -68.155 + "Copper" -7.310 + "T_Kapton" -23.002 + "Aluminium" -1.533 +"TEC_ICC24" -4 2.960 + "T_FR4" -78.947 + "Copper" -6.267 + "T_Kapton" -13.442 + "Aluminium" -1.344 +"TEC_ICC15" -4 2.359 + "T_FR4" -74.330 + "Copper" -6.788 + "T_Kapton" -17.983 + "Aluminium" -0.899 +"TEC_ICC25" -4 1.896 + "T_FR4" -75.399 + "Copper" -6.650 + "T_Kapton" -16.829 + "Aluminium" -1.122 +"TEC_ICC1B3" -4 1.822 + "T_FR4" -91.498 + "Copper" -4.927 + "T_Kapton" -2.955 + "Aluminium" -0.620 +"TEC_ICC2B3" -4 2.217 + "T_FR4" -92.218 + "Copper" -4.912 + "T_Kapton" -2.373 + "Aluminium" -0.497 +"TEC_ICC16" -4 2.191 + "T_FR4" -65.940 + "Copper" -7.666 + "T_Kapton" -25.820 + "Aluminium" -0.574 +"TEC_ICC26" -4 2.309 + "T_FR4" -65.429 + "Copper" -7.730 + "T_Kapton" -26.362 + "Aluminium" -0.479 +"TEC_ICC17" -4 1.809 + "T_FR4" -76.806 + "Copper" -6.558 + "T_Kapton" -15.844 + "Aluminium" -0.792 +"TEC_ICC27" -4 1.859 + "T_FR4" -75.755 + "Copper" -6.618 + "T_Kapton" -16.526 + "Aluminium" -1.102 +"TEC_ICC1B4" -8 1.994 + "T_FR4" -73.941 + "Copper" -4.791 + "Aluminium" -0.644 + "G10" -10.434 + "T_Kapton" -10.062 + "SMD_metal" -0.115 + "Alumina" -0.004 + "Carbon" -0.008 +"TEC_ICC2B4" -8 2.057 + "T_FR4" -74.587 + "Copper" -4.793 + "Aluminium" -0.625 + "G10" -10.117 + "T_Kapton" -9.755 + "SMD_metal" -0.111 + "Alumina" -0.004 + "Carbon" -0.008 +"TEC_rods" -1 0.275 + "Carbon fibre str." -100.000 +"TEC_wheel_CF" -1 1.124 + "Carbon fibre str." -100.000 +"TEC_wheel_Nomex" -1 0.019 + "TEC_Nomex" -100.000 +"TEC_wheelinsert" -1 3.162 + "Aluminium" -100.000 +"TEC_SO_FC_A" -1 1.69 + "Carbon fibre str." -100.0 +"TEC_SO_FC_B" -2 0.076 + "Carbon fibre str." -2.696 + "TEC_Nomex" -97.304 +"TEC_SO_FC_C" -2 0.152 + "Carbon fibre str." -7.407 + "TEC_Nomex" -92.593 +"TEC_SO_FC_D" -1 1.69 + "Carbon fibre str." -100.0 +"TEC_SO_FC_E" -1 1.69 + "Carbon fibre str." -100.0 +"TEC_SO_FC_F" -1 1.69 + "Carbon fibre str." -100.0 +"TEC_Side_Wafer" 1 2.33 + "Silicon" -100. +"TEC_frame_side" -3 2.231 + "Carbon fibre str." -81.845 + "T_Kapton" -17.857 + "Copper" -0.298 +"TEC_frame_top" -1 1.521 + "Carbon fibre str." -100.000 +"TEC_PitchAdapter" -1 2.200 + "Silica" -100.000 +"TEC_petal" -4 0.238 + "TEC_Nomex" -89.894 + "Carbon fibre str." -7.191 + "Titanium" -0.554 + "C6F14" -2.361 +"TEC_Fixframe" -2 3.068 + "Aluminium" -93.535 + "Steel-008" -6.465 +"TEC_FixServ" -2 3.050 + "Aluminium" -94.553 + "Steel-008" -5.447 +"TEC_Cool" -2 3.925 + "Aluminium" -99.417 + "Silver" -0.583 +"TEC_OptoH" -9 1.590 + "T_Kapton" -22.642 + "Copper" -4.867 + "T_FR4" -23.234 + "Alumina" -3.549 + "Carbon" -0.620 + "SMD_metal" -0.337 + "Silicon" -3.536 + "Aluminium" -40.879 + "Silver" -0.337 +"TEC_PetalCon" -4 5.283 + "Aluminium" -20.274 + "Steel-008" -28.053 + "T_Kapton" -42.915 + "Copper" -8.758 +"TEC_OptoCon" -2 1.638 + "T_Kapton" -97.113 + "Copper" -2.887 +"TEC_periscopes" -3 0.749 + "Silica" -3.197 + "Carbon fibre str." -91.597 + "Aluminium" -5.206 +"TEC_tiltmeter" -1 8.960 + "Copper" -100.000 +*ENDDO diff --git a/examples/advanced/composite_calorimeter/dataglobal/rotation.cms b/examples/advanced/composite_calorimeter/dataglobal/rotation.cms new file mode 100644 index 0000000000..9a02f2248a --- /dev/null +++ b/examples/advanced/composite_calorimeter/dataglobal/rotation.cms @@ -0,0 +1,112 @@ +*.-- rotation.tz +*LOG OFF +*DO ROTM 0 -U -A4CW -C1/80 #.Title for CMS100 created on 940722 at 1159 + #. Thet1 Phi1 Thet2 Phi2 Thet3 Phi3 +:000D 90.0 0.0 90.0 90.0 0.0 0.0 #. (x,y,z) => ( x, y, z) +:YZXD -90.0 0.0 -90.0 90.0 0.0 0.0 #. (x,y,z) => (-x,-y, z) +:180X 90.0 0.0 90.0 -90.0 180.0 0.0 #. (x,y,z) => ( x,-y,-z) +:180D 90.0 180.0 90.0 90.0 180.0 0.0 #. (x,y,z) => (-x, y,-z) +:180Z 90.0 90.0 -90.0 0.0 0.0 0.0 #. (x,y,z) => ( y,-x, z) +:Z180 -90.0 90.0 90.0 0.0 0.0 0.0 #. (x,y,z) => (-y, x, z) +:90ZD -90.0 0.0 0.0 0.0 90.0 90.0 #. (x,y,z) => (-x, z, y) +:90XD 90.0 90.0 0.0 0.0 90.0 0.0 #. (x,y,z) => ( y, z, x) +:90DX -90.0 90.0 180.0 0.0 90.0 0.0 #. (x,y,z) => (-y,-z, x) +:20XD 90.0 70.0 0.0 0.0 90.0 -20.0 #. (x,y,z) => ( ?, z, ?) +:60XD 90.0 110.0 0.0 0.0 90.0 20.0 #. (x,y,z) => ( ?, z, ?) +:90YZ 90.0 -90.0 180.0 0.0 90.0 0.0 #. (x,y,z) => (-y,-z, x) +:90YD 0.0 0.0 90.0 0.0 90.0 90.0 #. (x,y,z) => ( z, x, y) +:90XY 0.0 0.0 90.0 -90.0 90.0 0.0 #. (x,y,z) => ( z,-y, x) +:90YX 180.0 0.0 90.0 90.0 90.0 0.0 #. (x,y,z) => (-z, y, x) +:YXZ2 90.0 90.0 0.0 90.0 90.0 0.0 #. (x,y,z) => ( y, z, x) +:YXZ4 90.0 -90.0 90.0 0.0 0.0 0.0 #. (x,y,z) => (-y, x, z) +:YXZ5 90.0 -90.0 90.0 180.0 180.0 0.0 #. (x,y,z) => (-y,-x,-z) +:R000 90.0 0.0 90.0 90.0 0.0 0.0 #. (x,y,z) => ( x, y, z) +:R005 90.0 5.0 90.0 95.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R010 90.0 10.0 90.0 100.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R015 90.0 15.0 90.0 105.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R020 90.0 20.0 90.0 110.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R025 90.0 25.0 90.0 115.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R030 90.0 30.0 90.0 120.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R035 90.0 35.0 90.0 125.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R040 90.0 40.0 90.0 130.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R045 90.0 45.0 90.0 135.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R050 90.0 50.0 90.0 140.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R055 90.0 55.0 90.0 145.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R060 90.0 60.0 90.0 150.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R065 90.0 65.0 90.0 155.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R070 90.0 70.0 90.0 160.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R075 90.0 75.0 90.0 165.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R080 90.0 80.0 90.0 170.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R085 90.0 85.0 90.0 175.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R090 90.0 90.0 90.0 180.0 0.0 0.0 #. (x,y,z) => ( y,-x, z) +:R095 90.0 95.0 90.0 185.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R100 90.0 100.0 90.0 190.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R105 90.0 105.0 90.0 195.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R110 90.0 110.0 90.0 200.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R115 90.0 115.0 90.0 205.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R120 90.0 120.0 90.0 210.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R125 90.0 125.0 90.0 215.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R130 90.0 130.0 90.0 220.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R135 90.0 135.0 90.0 225.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R140 90.0 140.0 90.0 230.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R145 90.0 145.0 90.0 235.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R150 90.0 150.0 90.0 240.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R155 90.0 155.0 90.0 245.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R160 90.0 160.0 90.0 250.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R165 90.0 165.0 90.0 255.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R170 90.0 170.0 90.0 260.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R175 90.0 175.0 90.0 265.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R180 90.0 180.0 90.0 270.0 0.0 0.0 #. (x,y,z) => (-x,-y, z) +:R185 90.0 185.0 90.0 275.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R190 90.0 190.0 90.0 280.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R195 90.0 195.0 90.0 285.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R200 90.0 200.0 90.0 290.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R205 90.0 205.0 90.0 295.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R210 90.0 210.0 90.0 300.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R215 90.0 215.0 90.0 305.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R220 90.0 220.0 90.0 310.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R225 90.0 225.0 90.0 315.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R230 90.0 230.0 90.0 320.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R235 90.0 235.0 90.0 325.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R240 90.0 240.0 90.0 330.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R245 90.0 245.0 90.0 335.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R250 90.0 250.0 90.0 340.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R255 90.0 255.0 90.0 345.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R260 90.0 260.0 90.0 350.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R265 90.0 265.0 90.0 355.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R270 90.0 270.0 90.0 0.0 0.0 0.0 #. (x,y,z) => (-y, x, z) +:R275 90.0 275.0 90.0 5.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R280 90.0 280.0 90.0 10.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R285 90.0 285.0 90.0 15.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R290 90.0 290.0 90.0 20.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R295 90.0 295.0 90.0 25.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R300 90.0 300.0 90.0 30.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R305 90.0 305.0 90.0 35.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R310 90.0 310.0 90.0 40.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R315 90.0 315.0 90.0 45.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R320 90.0 320.0 90.0 50.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R325 90.0 325.0 90.0 55.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R330 90.0 330.0 90.0 60.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R335 90.0 335.0 90.0 65.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R340 90.0 340.0 90.0 70.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R345 90.0 345.0 90.0 75.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R350 90.0 350.0 90.0 80.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R355 90.0 355.0 90.0 85.0 0.0 0.0 #. (x,y,z) => ( ?, ?, z) +:R360 90.0 360.0 90.0 90.0 0.0 0.0 #. (x,y,z) => ( x, y, z) +:Z1YX 90.0 90.0 0.0 0.0 90.0 0.0 #. (x,y,z) => ( y, z, x) +:Z2XY 90.0 0.0 180.0 0.0 90.0 90.0 #. (x,y,z) => ( x,-z, y) +:Z3XY -90.0 0.0 0.0 0.0 90.0 90.0 #. (x,y,z) => (-x, z, y) +:Z4YX 90.0 90.0 180.0 0.0 -90.0 0.0 #. (x,y,z) => ( y,-z,-x) +:Z5YX -90.0 90.0 0.0 0.0 -90.0 0.0 #. (x,y,z) => (-y, z,-x) +:Z6XY -90.0 0.0 180.0 0.0 -90.0 90.0 #. (x,y,z) => (-x,-z,-y) +:Z7XY 90.0 0.0 0.0 0.0 -90.0 90.0 #. (x,y,z) => ( x, z,-y) +:Z8YX -90.0 90.0 180.0 0.0 90.0 0.0 #. (x,y,z) => (-y,-z, x) +:270Y 0.0 0.0 90.0 90.0 90.0 180.0 #. (x,y,z) => (-z, y, x) +:90XYZ 180.0 0.0 90.0 270.0 90.0 180.0 #. (x,y,z) => (-z,-y,-x) +:90ZX 180.0 0.0 90.0 0.0 90.0 270.0 #. (x,y,z) => (-z, x,-y) +:90ZXY 180.0 0.0 90.0 180.0 90.0 90.0 #. (x,y,z) => (-z,-x, y) +:270YX 0.0 0.0 90.0 180.0 90.0 270.0 #. (x,y,z) -> ( z,-x,-y) +:Y100 95.7296 0.0 90.0 90.0 5.7296 0.0 #. rotn by 100mr around y +:9NYX 0.0 0.0 90.0 90.0 -90.0 0.0 #. (x,y,z) => ( z, y,-x) +:F100 -95.7296 0.0 -90.0 90.0 -5.7296 0.0 #. flip z + rotn 100mr y +*ENDDO diff --git a/examples/advanced/composite_calorimeter/datavis/tbhcal96.vis b/examples/advanced/composite_calorimeter/datavis/tbhcal96.vis new file mode 100644 index 0000000000..c52132fc71 --- /dev/null +++ b/examples/advanced/composite_calorimeter/datavis/tbhcal96.vis @@ -0,0 +1,9 @@ +#. 96 Hcal Test beamm visualisation attributtes +#. visType visualisable? R G B WireFrame +"Sensitive" 1 0.0 0.0 1.0 0 +"Electronics" 0 0.0 0.0 0.0 1 +"Support" 0 0.0 0.0 0.2 1 +"Cable" 0 0.8 0.8 0.1 1 +"Absorber" 1 0.3 0.3 0.0 0 +"OtherServices" 0 0.2 0.4 0.2 1 +"PseudoVolumes" 0 0.2 0.4 0.2 1 diff --git a/examples/advanced/composite_calorimeter/datavis/tbhcal96hcal.vis b/examples/advanced/composite_calorimeter/datavis/tbhcal96hcal.vis new file mode 100644 index 0000000000..c31f348aee --- /dev/null +++ b/examples/advanced/composite_calorimeter/datavis/tbhcal96hcal.vis @@ -0,0 +1,9 @@ +#. HCal visualisation attributtes +#. visType visualisable? R G B WireFrame +"Sensitive" 1 0.0 0.0 1.0 0 +"Electronics" 0 0.0 0.0 0.0 1 +"Support" 0 0.0 0.0 0.2 1 +"Cable" 0 0.8 0.8 0.1 1 +"Absorber" 1 0.6 0.1 0.1 0 +"OtherServices" 0 0.2 0.4 0.2 1 +"PseudoVolumes" 0 0.2 0.4 0.2 1 diff --git a/examples/advanced/composite_calorimeter/datavis/tbhcal96xtal.vis b/examples/advanced/composite_calorimeter/datavis/tbhcal96xtal.vis new file mode 100644 index 0000000000..55fd3ecf0e --- /dev/null +++ b/examples/advanced/composite_calorimeter/datavis/tbhcal96xtal.vis @@ -0,0 +1,9 @@ +#. CrystalModule visualisation attributtes +#. visType visualisable? R G B WireFrame +"Sensitive" 1 1.0 0.0 0.0 0 +"Electronics" 0 0.0 0.0 0.0 1 +"Support" 1 0.0 0.5 0.0 1 +"Cable" 0 0.8 0.8 0.1 1 +"Absorber" 0 0.0 0.3 0.3 0 +"OtherServices" 0 0.2 0.4 0.2 1 +"PseudoVolumes" 0 0.2 0.4 0.2 1 diff --git a/examples/advanced/composite_calorimeter/envExample.csh b/examples/advanced/composite_calorimeter/envExample.csh new file mode 100755 index 0000000000..56e23290c8 --- /dev/null +++ b/examples/advanced/composite_calorimeter/envExample.csh @@ -0,0 +1,32 @@ +#------------------------------------------------------------------ +# C-shell script to be run before building/executing this example. +# It has two parts: one for the Aida setup (for the histograms, +# ntuples, and more in general for the data analysis); and one +# more specific for this test-beam example. +# Please notice that before running this script, you have to define +# the usual Geant4 variables (in particular, the variable +# G4ANALYSIS_USE must be set to 1). +#------------------------------------------------------------------ +# +### # --- Aida 2.2 , Anaphe 4.0.5 --- +### setenv LHCXXTOP /afs/cern.ch/sw/lhcxx/ +### setenv LHCXXVERS 4.0.5 +### setenv PLATF redhat72/gcc-2.95.2/ +### source $LHCXXTOP/share/LHCXX/$LHCXXVERS/install/sharedstart.csh +# +# --- Aida 3.0 , Anaphe 5.0.1 --- +#source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.1/scripts/setupAnaphe.csh +#setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.1/scripts/ +# +# --- Specific setup for this test-beam example --- +setenv CCAL_CONFPATH ./dataconf +setenv CCAL_SENSITIVECONF g4testbeamhcal96.conf +setenv CCAL_GEOMETRYCONF testbeamhcal96.conf +setenv CCAL_GLOBALPATH ./dataglobal +setenv CCAL_GEOMPATH ./datageom +setenv CCAL_VISPATH ./datavis +# --- + + + + diff --git a/examples/advanced/composite_calorimeter/envExample.sh b/examples/advanced/composite_calorimeter/envExample.sh new file mode 100755 index 0000000000..bf102dfea9 --- /dev/null +++ b/examples/advanced/composite_calorimeter/envExample.sh @@ -0,0 +1,32 @@ +#------------------------------------------------------------------ +# Bash-shell script to be run before building/executing this example. +# It has two parts: one for the Aida setup (for the histograms, +# ntuples, and more in general for the data analysis); and one +# more specific for this test-beam example. +# Please notice that before running this script, you have to define +# the usual Geant4 variables (in particular, the variable +# G4ANALYSIS_USE must be set to 1). +#------------------------------------------------------------------ +# +### # --- Aida 2.2 , Anaphe 4.0.5 --- +### export LHCXXTOP=/afs/cern.ch/sw/lhcxx/ +### export LHCXXVERS=4.0.5 +### export PLATF=redhat72/gcc-2.95.2/ +### . $LHCXXTOP/share/LHCXX/$LHCXXVERS/install/sharedstart.sh +# +# --- Aida 3.0 , Anaphe 5.0.1 --- +#. /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.1/scripts/setupAnaphe +#export PATH=$PATH:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.1/scripts/ +# +# --- Specific setup for this test-beam example --- +export CCAL_CONFPATH=./dataconf +export CCAL_SENSITIVECONF=g4testbeamhcal96.conf +export CCAL_GEOMETRYCONF=testbeamhcal96.conf +export CCAL_GLOBALPATH=./dataglobal +export CCAL_GEOMPATH=./datageom +export CCAL_VISPATH=./datavis +# --- + + + + diff --git a/examples/advanced/composite_calorimeter/gui.mac b/examples/advanced/composite_calorimeter/gui.mac new file mode 100644 index 0000000000..fc1e65ff26 --- /dev/null +++ b/examples/advanced/composite_calorimeter/gui.mac @@ -0,0 +1,34 @@ +# +# This file permits to customize, with commands, +# the menu bar of the G4UIXm sessions. +# It has no effect with G4UIterminal. +# +# --- File --- +/gui/addMenu file File +/gui/addButton file Continue continue +/gui/addButton file Exit "exit" +# +# --- Particle --- +/gui/addMenu particle Particle +/gui/addButton particle muon- "/gun/particle mu-" +/gui/addButton particle electron- "/gun/particle e-" +/gui/addButton particle pion- "/gun/particle pi-" +# +# --- Energy --- +/gui/addMenu energy Energy +/gui/addButton energy 50-GeV "/gun/energy 50 GeV" +/gui/addButton energy 100-GeV "/gun/energy 100 GeV" +/gui/addButton energy 150-GeV "/gun/energy 150 GeV" +/gui/addButton energy 200-GeV "/gun/energy 200 GeV" +/gui/addButton energy 250-GeV "/gun/energy 250 GeV" +/gui/addButton energy 300-GeV "/gun/energy 300 GeV" +# +# --- NumEvents --- +/gui/addMenu numEvents NumEvents +/gui/addButton numEvents 1 "/run/beamOn 1" +/gui/addButton numEvents 2 "/run/beamOn 2" +/gui/addButton numEvents 5 "/run/beamOn 5" +/gui/addButton numEvents 10 "/run/beamOn 10" +/gui/addButton numEvents 50 "/run/beamOn 50" +/gui/addButton numEvents 100 "/run/beamOn 100" +# diff --git a/source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl b/examples/advanced/composite_calorimeter/include/CCalAMaterial.hh similarity index 57% rename from source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl rename to examples/advanced/composite_calorimeter/include/CCalAMaterial.hh index c92d7257b1..7158ce840e 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PUnionSolid.ddl +++ b/examples/advanced/composite_calorimeter/include/CCalAMaterial.hh @@ -20,49 +20,41 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PUnionSolid.ddl,v 1.5 2001/07/11 10:02:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +/////////////////////////////////////////////////////////////////////////////// +// File: CCalAMaterial.hh +// Description: CCalAMaterial holds the basic information needed to make a +// G4Material from atomic proportions. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalAMaterial_h +#define CCalAMaterial_h 1 -// Class Description: -// Persistent class for description of intersection of two CSG solids +#include "CCalMaterial.hh" -// History: -// 10.11.99 Y.Morita, Initial creation +#include "G4Element.hh" -#ifndef G4PUNIONSOLID_DDL -#define G4PUNIONSOLID_DDL +class CCalAMaterial : public CCalMaterial { + friend G4std::ostream& operator<<(G4std::ostream&, const CCalAMaterial&); -#include "G4PersistentSchema.hh" -#include "G4PBooleanSolid.hh" +public: + //Construct from list of constituents + CCalAMaterial(G4String mat, double dens, int nelem, + CCalAMaterial** constituents, double* weights); + //Construct from one element + CCalAMaterial(G4String elemat, double Aeff, double dens); + //Copy constructor + CCalAMaterial(const CCalAMaterial&); + virtual ~CCalAMaterial(); -class G4VSolid; + G4double Aeff() const {return aEff;} -class G4PUnionSolid - : public G4PBooleanSolid -{ -public: // With description - G4PUnionSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ); - virtual ~G4PUnionSolid() ; - // Constructor and Destructor - - G4VSolid* MakeTransientObject() const; - G4VSolid* MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const; - // Creates a transient G4UnionSolid object. - - virtual G4GeometryType GetEntityType() const - { return G4String("G4UnionSolid"); } - // Returns the G4GeometryType of this solid. + CCalAMaterial& operator= (const CCalAMaterial&); //Assignment protected: + void computeAeff(G4int nconst, CCalAMaterial** constituents, double* weights); -private: +protected: + double aEff; //Effective mass }; #endif - diff --git a/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh b/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh new file mode 100644 index 0000000000..6eff88b6f5 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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: CCalAnalysis.hh +// Description: CCalAnalysis is a singleton class and interfaces all user +// analysis code +/////////////////////////////////////////////////////////////////////////////// + +#ifdef G4ANALYSIS_USE + +#ifndef CCalAnalysis_h +#define CCalAnalysis_h 1 + +#include "globals.hh" +#include "g4std/vector" +#include "G4ThreeVector.hh" + +namespace AIDA { + class IAnalysisFactory; + class IHistogramFactory; + class ITree; + class IHistogram1D; + class IHistogram2D; + class ITuple; + class IPlotter; +} + + +class CCalAnalysis { +public: + virtual ~CCalAnalysis(); + +public: + void BeginOfRun(G4int n); + void EndOfRun(G4int n); + void EndOfEvent(G4int flag); + + void Init(); + void Finish(); + + int maxbin() {return numberOfTimeSlices;} + + void InsertEnergyHcal(float*); + void InsertEnergyEcal(float*); + void InsertEnergy(float v); + void InsertLateralProfile(float*); + void InsertTime(float*); + + void setNtuple(float* hcalE, float* ecalE, float elab, float x, float y, + float z, float edep, float edec, float edhc); + + static CCalAnalysis* getInstance(); + +private: + CCalAnalysis(); +private: + static CCalAnalysis* instance; + + AIDA::IAnalysisFactory* analysisFactory; + AIDA::ITree* tree; + AIDA::ITuple* tuple; + + enum {numberOfTimeSlices = 40}; + + AIDA::IHistogram1D* energy; + AIDA::IHistogram1D* hcalE[28]; // 28 hadronic modules + AIDA::IHistogram1D* ecalE[49]; // 49 crystal towers + AIDA::IHistogram1D* timeHist[40]; // 40 nanoseconds time window + AIDA::IHistogram1D* lateralProfile[70]; // 70 centimeters lateral window + // (indeed 64 should be enough) +}; + + +#endif + +#endif diff --git a/examples/extended/biasing/B02/src/B02Scorer.cc b/examples/advanced/composite_calorimeter/include/CCalDataSet.hh similarity index 52% rename from examples/extended/biasing/B02/src/B02Scorer.cc rename to examples/advanced/composite_calorimeter/include/CCalDataSet.hh index c14bb4d766..271949b7bd 100644 --- a/examples/extended/biasing/B02/src/B02Scorer.cc +++ b/examples/advanced/composite_calorimeter/include/CCalDataSet.hh @@ -20,56 +20,69 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B02Scorer.cc,v 1.3 2002/04/19 10:54:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#ifndef CCalDataSet_h +#define CCalDataSet_h -#include "B02Scorer.hh" -#include "G4Step.hh" -#include "G4PStep.hh" -#include "G4Sigma.hh" -#include "G4StateManager.hh" +#include "G4NeutronHPInterpolator.hh" +#include "g4std/vector" -B02Scorer::B02Scorer(){} -B02Scorer::~B02Scorer(){} +// by JPW, working, but to be cleaned up. @@@@ -void B02Scorer::Score(const G4Step &aStep, const G4PStep &aPstep) +class CCalDataSet { - G4Track *track = aStep.GetTrack(); +public: - if (track->GetTrackStatus()==fStopAndKill) + void insert(double anEnergy, double aXsection) { - G4cout << " track status is StopAndKill -> do nothing" << G4endl; + pair aPoint(anEnergy, aXsection); + theData.push_back(aPoint); } - // do the scoring - else - { - // the map fPtkTallys, the map nametallys and the "G4Sigma" will - // be setup the first time they are accesed. - // the user may choos any other place to store the results e.g. - // histogramms - G4PTouchableKey post_ptk(aPstep.fPostTouchableKey); - if (aPstep.fCrossBoundary) - { - // Pstep crosses boundary - fPtkTallys[post_ptk]["HistorysEntering"].Xin(1); - fPtkTallys[post_ptk]["EnergyEnteringHistory"]. - Xin(track->GetKineticEnergy()); - } - else - { - // this check is necessary in case of scoring in a parallel world - if (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) - { - fPtkTallys[post_ptk]["Collisions"].Xin(1); - } + + double getCrossSection(double anEnergy) + { + double result; + if(anEnergy < theData[0].first) + { + result = 0; } + else + { + double x1,x2; + double y1,y2; + if(anEnergy > theData[theData.size()-1].second) + { + // extrapolation + int n=theData.size(); + x1 = theData[n-1].first; + y1 = theData[n-1].second; + x2 = theData[n-2].first; + y2 = theData[n-2].second; + } + else + { + // linear search and interpolation + unsigned int i; + for(i=0; ianEnergy) break; + } + x1 = theData[i-1].first; + y1 = theData[i-1].second; + x2 = theData[i].first; + y2 = theData[i].second; + } + // interpolate logarithmic in energy and linear in cross-section + result = theInterpolator.Interpolate(LOGLIN, anEnergy, x1,x2,y1,y2); + } + return result*barn; } -} -G4std::ostream& operator<<(G4std::ostream &out, const B02Scorer &ps) -{ - out << ps.GetMapPtkTallys(); - return out; -} +private: + + G4NeutronHPInterpolator theInterpolator; + +private: + + vector > theData; +}; +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalDetector.hh b/examples/advanced/composite_calorimeter/include/CCalDetector.hh new file mode 100644 index 0000000000..86d3e5822c --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalDetector.hh @@ -0,0 +1,126 @@ +// +// ******************************************************************** +// * 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: CCalDetector.hh +// Description: CCalDetector will provide the basic functionallity of a +// detector factory. It has a construct method that describes +// the construction sequence of the detector. It has a Name, +// a file associated with it, and a collection of other +// CCalDetectors that are supposed to be inside this one. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalDetector_h +#define CCalDetector_h 1 + +#include "g4std/iostream" +#include "g4std/vector" +#include "globals.hh" + +//Forward declartion for the CCalDetectorTable typedef +class CCalDetector; + +//A table to hold a list of pointers to CMS Detectors +typedef G4std::vector CCalDetectorTable; + +//////////////////// +//At last the class +class CCalDetector { + + friend G4std::ostream& operator<<(G4std::ostream&, const CCalDetector&); + +public: + //////////////////////////////////////////////////////////////// + //Constructor with a name and a filename. + CCalDetector(const G4String &name); + //////////////////////////////////////////////////////////////// + //Destructor + virtual ~CCalDetector(); + + + //////////////////////////////////////////////////////////////// + // Construction related methods + + //This starts the detector construction + void constructHierarchy() { construct();} + void construct(); + + + //////////////////////////////////////////////////////////////// + //A method that allows to add a new detector inside this one. + void addDetector(CCalDetector*); + + + //////////////////////////////////////////////////////////////// + //Other get methods + G4String Name() const {return detectorName;} + G4String baseFileName() const {return fileName;} + G4String File() const {return fileName+".geom";} + CCalDetector* getDaughter(int i) const {return theDetectorsInside[i];} + int getNDaughters() const {return theDetectorsInside.size();} + + + //////////////////////////////////////////////////////////////// + //Local operators + //Equality only checks name !!! + G4bool operator==(const CCalDetector& left) const { + return (detectorName==left.detectorName); + } + G4bool operator!=(const CCalDetector& left) const { + return (detectorName!=left.detectorName); + } + + +protected: + + //////////////////////////////////////////////////////////////// + //Pure Virtual methods + + //Should read a file and store the information inside the concrete + //CCalDetector + virtual int readFile() = 0; + //Construct the daughters by calling the apropiate constructors + virtual void constructDaughters() = 0; + + //////////////////////////////////////////////////////////////// + //Building related methods + + //Builds the detector from a file + int buildFromFile(); + +protected: + + //////////////////////////////////////////////////////////////// + //Data Members + + G4String detectorName; //Detector name + G4String fileName; //File name from it will be read + static G4String pathName; //Path in which to look for files + + CCalDetectorTable theDetectorsInside; //A collection of CCalDetectors inside + + int constructFlag; //True if this detector is to be built +}; + +#endif + + + diff --git a/examples/extended/biasing/B05/include/B05DetectorConstruction.hh b/examples/advanced/composite_calorimeter/include/CCalDetectorConstruction.hh similarity index 76% rename from examples/extended/biasing/B05/include/B05DetectorConstruction.hh rename to examples/advanced/composite_calorimeter/include/CCalDetectorConstruction.hh index 0db56e24c3..35428eeca3 100644 --- a/examples/extended/biasing/B05/include/B05DetectorConstruction.hh +++ b/examples/advanced/composite_calorimeter/include/CCalDetectorConstruction.hh @@ -20,31 +20,24 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B05DetectorConstruction.hh,v 1.2 2002/04/19 10:54:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalDetectorConstruction.hh +// Description: Constructs the 96 test beam configuration of HCAL +/////////////////////////////////////////////////////////////////////////////// -#ifndef B03DetectorConstruction_hh -#define B05DetectorConstruction_hh B05DetectorConstruction_hh +#ifndef CCalDetectorConstruction_h +#define CCalDetectorConstruction_h 1 -#include "globals.hh" #include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class CCalDetectorConstruction : public G4VUserDetectorConstruction { +public: + CCalDetectorConstruction(); + ~CCalDetectorConstruction(); -class G4VPhysicalVolume; -class G4VIStore; - -class B05DetectorConstruction : public G4VUserDetectorConstruction -{ public: - B05DetectorConstruction(); - ~B05DetectorConstruction(); - G4VPhysicalVolume* Construct(); - G4VIStore* GetIStore(); - -private: - G4VIStore *fIStore; }; #endif diff --git a/examples/advanced/composite_calorimeter/include/CCalEcal.hh b/examples/advanced/composite_calorimeter/include/CCalEcal.hh new file mode 100644 index 0000000000..cd8215a388 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalEcal.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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: CCalEcal.hh +// Description: CCalEcal Geometry factory class for crystal matrix +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalEcal_h +#define CCalEcal_h 1 + +#include "CCalDetector.hh" + +class CCalEcal: public CCalDetector { +public: + //Constructor and Destructor + CCalEcal(const G4String &name): + CCalDetector(name) {} + virtual ~CCalEcal(); + + //Get Methods + G4String getGenMat() const {return genMat;} + double getWidBox() const {return widBox;} + double getLengBox() const {return lengBox;} + double getXpos() const {return xpos;} + double getYpos() const {return ypos;} + double getZpos() const {return zpos;} + double getThetaX() const {return thetaX;} + double getPhiX() const {return phiX;} + double getThetaY() const {return thetaY;} + double getPhiY() const {return phiY;} + double getThetaZ() const {return thetaZ;} + double getPhiZ() const {return phiZ;} + G4String getLayMat() const {return layMat;} + int getLayNum() const {return layNum;} + double getLayRadius() const {return layRadius;} + double getLayAngle() const {return layAngle;} + double getLengFront() const {return lengFront;} + double getLayPar(unsigned int i) const {return layPar[i];} + G4String getCrystMat() const {return crystMat;} + int getCrystNum() const {return crystNum;} + double getCrystLength() const {return crystLength;} + double getCrystTol() const {return crystTol;} + double getCrystPar(unsigned int i) const {return crystPar[i];} + G4String getSuppMat() const {return suppMat;} + double getDxSupp() const {return dxSupp;} + double getDySupp() const {return dySupp;} + double getDzSupp() const {return dzSupp;} + double getDistSupp() const {return distSupp;} + + +protected: + virtual int readFile(); + virtual void constructDaughters(); + +private: + G4String genMat; //General material + double widBox, lengBox; //Box parameters + double xpos, ypos, zpos; //Translation matrix definition + double thetaX,phiX,thetaY,phiY,thetaZ,phiZ; //Rotation matrix definition + G4String layMat; //Material for the layers + int layNum; //Layer numbers + double layRadius,layAngle; //Positioning parameters + double lengFront; //Distance from front + double layPar[5]; //Layer parameters + G4String crystMat; //Material for the crystals + int crystNum; //Crystal numbers + double crystLength; //Crystal length + double crystTol; //Tolerance for position + double crystPar[5]; //Crystal parameters + G4String suppMat; //Material of support system + double dxSupp, dySupp, dzSupp; //Dimension of support material + double distSupp; //Separation of support material +}; + +#endif + + + + + + + + + + + + + + + + diff --git a/examples/advanced/composite_calorimeter/include/CCalEcalOrganization.hh b/examples/advanced/composite_calorimeter/include/CCalEcalOrganization.hh new file mode 100644 index 0000000000..a111bac080 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalEcalOrganization.hh @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * 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: CCalEcalOrganization.hh +// Description: Defines numbering schema for the Electromagnetic Calorimeter +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalEcalOrganization_h +#define CCalEcalOrganization_h + +#include "CCalVOrganization.hh" + +class CCalEcalOrganization: public CCalVOrganization { + +public: + CCalEcalOrganization(){}; + ~CCalEcalOrganization(); + + virtual unsigned int GetUnitID(const G4Step* aStep) const ; + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalEndOfEventAction.hh b/examples/advanced/composite_calorimeter/include/CCalEndOfEventAction.hh new file mode 100644 index 0000000000..745f3d8619 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalEndOfEventAction.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalEndOfEventAction.hh +// Description: CCalEndOfEventAction provides User actions at end of event +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCalEndOfEventAction_h +#define CCalEndOfEventAction_h + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class CCaloOrganization; +class G4HCofThisEvent; +class CCalSteppingAction; +class CCalPrimaryGeneratorAction; + +typedef G4String nameType; + +class CCalEndOfEventAction: public G4UserEventAction{ + +public: + CCalEndOfEventAction(CCalPrimaryGeneratorAction*); + ~CCalEndOfEventAction(); + virtual void StartOfEventAction(const G4Event* evt); + virtual void EndOfEventAction(const G4Event* evt); + +private: + void instanciateSteppingAction(); + void initialize(); + +private: + G4bool isInitialized; + + CCalPrimaryGeneratorAction* primaryGenerator; + CCalSteppingAction* theSteppingAction; + nameType* SDnames; + G4int numberOfSD; + CCaloOrganization* theOrg; + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalG4Able.hh b/examples/advanced/composite_calorimeter/include/CCalG4Able.hh new file mode 100644 index 0000000000..f9d79056c3 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalG4Able.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalG4Able.hh +// Description: CCalG4Able will provide the basic functionallity of a CCal +// "detector" to become a Geant4 Detector. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalG4Able_h +#define CCalG4Able_h 1 + +#include "g4std/vector" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "globals.hh" + +#include "CCalVisualisable.hh" + +#include "g4std/iostream" + +//Forward declartion for the CCalG4AbleTable typedef +class CCalG4Able; + +//A table to hold a list of pointers to CMS Detectors +typedef G4std::vector CCalG4AbleTable; + +//////////////////// +//At last the class +class CCalG4Able { + + friend G4std::ostream& operator<<(G4std::ostream&, const CCalG4Able&); + +public: + ////////////////////////////////////////////////////////////////////////// + //Constructor with a name + CCalG4Able(G4String name); + ////////////////////////////////////////////////////////////////////////// + //Destructor + virtual ~CCalG4Able() {delete detPhysicalVolume;} + + ////////////////////////////////////////////////////////////////////////// + //Get/Set methods + + //Method to retrieve the physical volume of the detector. + G4VPhysicalVolume* PhysicalVolume(G4VPhysicalVolume*); + + //Set the type of a logical volume to select its vis parameters. + void setVisType(CCalVisualisable::visType, G4LogicalVolume*); + + + //Sensitivity related + void setSensitivity(G4bool sens=true) {sensitivity=sens;} + G4bool isSensitive() const {return sensitivity;} + + //Name + G4String G4Name() const {return g4ableName;} + void setName(const G4String& name) {g4ableName = name;} + + + //Comparison operator needed for CCalG4AbleTable. Compares phys. volumes + G4bool operator==(const CCalG4Able& right) const; + +protected: + //A method that allows to add a new CCalG4Able inside this one. + void AddCCalG4Able(CCalG4Able*); + + //This method actually constructs the volume. Pure virtual. + virtual G4VPhysicalVolume* constructIn(G4VPhysicalVolume*) = 0; + + //Constructs the sensitive detectors and associates them to the corresponding + //logical volumes + virtual void constructSensitive() {} + +protected: + ////////////////////////////////////////////////////////////////////////// + // Data Members + G4VPhysicalVolume *detPhysicalVolume; //The G4PhysVolume or 0 if not created + CCalG4AbleTable theG4DetectorsInside; //CCalG4Able* daughters of this det. + + G4String g4ableName; + + G4bool sensitivity; //true if sentive, false if not. + + //Visualisation in G4 related Variables + CCalVisualisable visProperties; //Visualisation properties. + G4VisAttributes* g4VisAtt[CCalVisualisable::TotalVisTypes]; + +}; + +#endif diff --git a/source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl b/examples/advanced/composite_calorimeter/include/CCalG4Ecal.hh similarity index 52% rename from source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl rename to examples/advanced/composite_calorimeter/include/CCalG4Ecal.hh index 4d19991d00..5eb3b9c8ad 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PSubtractionSolid.ddl +++ b/examples/advanced/composite_calorimeter/include/CCalG4Ecal.hh @@ -20,49 +20,69 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PSubtractionSolid.ddl,v 1.5 2001/07/11 10:02:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +/////////////////////////////////////////////////////////////////////////////// +// File: CCalG4Ecal.hh +// Description: Equipped to describe crystal matrix for different testbeam run +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalG4Ecal_h +#define CCalG4Ecal_h 1 -// Class Description: -// Persistent class for description of subtraction of two CSG solids: A - B +#include "CCalEcal.hh" +#include "CCalG4Able.hh" +#include "g4std/vector" -// History: -// 10.11.99 Y.Morita, Initial creation +typedef G4LogicalVolume* ptrG4Log; -#ifndef G4PSUBTRACTIONSOLID_DDL -#define G4PSUBTRACTIONSOLID_DDL +class CCalG4Ecal: public CCalEcal, public CCalG4Able { +public: + //Backward or Forward type + enum CMType {module1, module2}; -#include "G4PersistentSchema.hh" -#include "G4PBooleanSolid.hh" + //Constructor and Destructor + CCalG4Ecal(const G4String &name); + virtual ~CCalG4Ecal(); -class G4VSolid; - -class G4PSubtractionSolid - : public G4PBooleanSolid -{ -public: // With description - G4PSubtractionSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ); - virtual ~G4PSubtractionSolid() ; - // Constructor and Destructor - - G4VSolid* MakeTransientObject() const; - G4VSolid* MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const; - // Creates a transient G4SubtractionSolid object. - - virtual G4GeometryType GetEntityType() const - { return G4String("G4SubtractionSolid"); } - // Returns the G4GeometryType of this solid. + void setType(CMType ty) {type = ty;} + + //Prefix to all names in the Detector + static G4String idName; protected: + //This methods actually constructs the volume. + virtual G4VPhysicalVolume* constructIn(G4VPhysicalVolume*); + + //Constructs the sensitive detectors and associates them to the corresponding + //logical volumes + virtual void constructSensitive() ; private: + //Methods to construct the different parts of the detector + G4LogicalVolume* constructGlobal(); + +private: + //Private data members + CMType type; + + //Static logical volumes shared by forward and backward detectors. + static G4LogicalVolume* crystalmatrixLog; + + // Logical volumes for sensitive detectors + G4std::vector sensitiveLogs; }; #endif + + + + + + + + + + + + + diff --git a/examples/advanced/composite_calorimeter/include/CCalG4Hall.hh b/examples/advanced/composite_calorimeter/include/CCalG4Hall.hh new file mode 100644 index 0000000000..67396dcac2 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalG4Hall.hh @@ -0,0 +1,45 @@ +// +// ******************************************************************** +// * 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: CCalG4Hall.hh +// Description: Equipped to construct G4 geometry of the experimental hall +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalG4Hall_h +#define CCalG4Hall_h 1 + +#include "CCalHall.hh" +#include "CCalG4Able.hh" + +class CCalG4Hall: public CCalHall, public CCalG4Able { +public: + //Constructor and Destructor + CCalG4Hall(const G4String &name); + virtual ~CCalG4Hall(); + +protected: + //This methods actually constructs the volume. + virtual G4VPhysicalVolume* constructIn(G4VPhysicalVolume*); + virtual void constructDaughters(); +}; + +#endif diff --git a/source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl b/examples/advanced/composite_calorimeter/include/CCalG4Hcal.hh similarity index 54% rename from source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl rename to examples/advanced/composite_calorimeter/include/CCalG4Hcal.hh index 4a1f364e32..b40e3e74b9 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PIntersectionSolid.ddl +++ b/examples/advanced/composite_calorimeter/include/CCalG4Hcal.hh @@ -20,48 +20,46 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PIntersectionSolid.ddl,v 1.5 2001/07/11 10:02:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +/////////////////////////////////////////////////////////////////////////////// +// File: CCalG4Hcal.hh +// Description: Euipped to construct the G4 geometry of the hadron calorimeter +// in the 96 test beam run +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalG4Hcal_h +#define CCalG4Hcal_h 1 -// Class Description: -// Persistent class for description of intersection of two CSG solids +#include "CCalHcal.hh" +#include "CCalG4Able.hh" +#include "g4std/vector" -// History: -// 10.11.99 Y.Morita, Initial creation +typedef G4LogicalVolume* ptrG4Log; -#ifndef G4PINTERSECTIONSOLID_DDL -#define G4PINTERSECTIONSOLID_DDL - -#include "G4PersistentSchema.hh" -#include "G4PBooleanSolid.hh" - -class G4VSolid; - -class G4PIntersectionSolid: public G4PBooleanSolid -{ -public: // With description - G4PIntersectionSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ); - virtual ~G4PIntersectionSolid() ; - // Constructor and destructor - - G4VSolid* MakeTransientObject() const; - G4VSolid* MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const; - // Creates a transient G4IntersectionSolid object. - - virtual G4GeometryType GetEntityType() const - { return G4String("G4IntersectionSolid"); } - // Returns the G4GeometryType of this solid. +class CCalG4Hcal: public CCalHcal, public CCalG4Able { +public: + //Constructor and Destructor + CCalG4Hcal(const G4String &name); + virtual ~CCalG4Hcal(); protected: + //This methods actually constructs the volume. + virtual G4VPhysicalVolume* constructIn(G4VPhysicalVolume*); + virtual void constructDaughters(); + + //Construct layer of scintillator or absorber + G4LogicalVolume* constructScintillatorLayer (G4int); + G4LogicalVolume* constructAbsorberLayer (G4int); + + //Constructs the sensitive detectors and associates them to the corresponding + //logical volumes + virtual void constructSensitive() ; private: + //Private data members + ptrG4Log* sclLog; + ptrG4Log* absLog; + // Logical volumes for sensitive detectors + G4std::vector allSensitiveLogs; }; #endif - diff --git a/examples/advanced/composite_calorimeter/include/CCalG4Hit.hh b/examples/advanced/composite_calorimeter/include/CCalG4Hit.hh new file mode 100644 index 0000000000..2f3707f2a7 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalG4Hit.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalG4Hit.hh +// Description: G4 Hit class for Calorimeters (Ecal, Hcal, ...) +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCalG4Hit_h +#define CCalG4Hit_h 1 + +#include "G4VHit.hh" +#include "CCalHit.hh" + + +class CCalG4Hit : public G4VHit, public CCalHit { + + friend G4std::ostream& operator<< (G4std::ostream& os, const CCalG4Hit& hit); + +public: + + CCalG4Hit(); + ~CCalG4Hit(); + CCalG4Hit(const CCalG4Hit & right); + const CCalG4Hit& operator=(const CCalG4Hit & right); + int operator==(const CCalG4Hit &right){return 0;} + +public: + + void Draw(){} + void Print(); + + double getEM() const; + void setEM (double e); + + double getHadr() const; + void setHadr (double e); + + void addEnergyDeposit(const CCalG4Hit& aHit); + void addEnergyDeposit(double em, double hd); + +private: + + double elem; // EnergyDeposit of EM particles + double hadr; // EnergyDeposit of HD particles + +}; +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalG4HitCollection.hh b/examples/advanced/composite_calorimeter/include/CCalG4HitCollection.hh new file mode 100644 index 0000000000..b264c6e190 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalG4HitCollection.hh @@ -0,0 +1,38 @@ +// +// ******************************************************************** +// * 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: CCalG4HitCollection.hh +// Description: Collection of calorimetric hits +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCalG4HitCollection_h +#define CCalG4HitCollection_h 1 + +#include "G4THitsCollection.hh" + +#include "CCalG4Hit.hh" + +typedef G4THitsCollection CCalG4HitCollection; + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/CCalGeometryConfiguration.hh b/examples/advanced/composite_calorimeter/include/CCalGeometryConfiguration.hh new file mode 100644 index 0000000000..15c6882405 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalGeometryConfiguration.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalGeometryConfiguration.hh +// Description: This singleton holds the information in the file geometry.conf +// Use getInstance to retrieve it. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalGeometryConfiguration_h +#define CCalGeometryConfiguration_h 1 + +#include "g4std/map" +#include "CCalutils.hh" + +class CCalGeometryConfiguration { + + struct GCInfo { + G4String FileName; + int ConstructFlag; + }; + + typedef G4std::map > CCalGeometryConfTable; + typedef G4std::map >::iterator CCalGeometryConfIterator; + + +public: + ~CCalGeometryConfiguration() {} + + static CCalGeometryConfiguration* getInstance(); + + int getConstructFlag(const G4String& n) /*const*/; + G4String getFileName(const G4String& n) /*const*/; + + CCalGeometryConfTable& getConfTable() { + return theConfiguration; + } + +private: + CCalGeometryConfiguration(); + +private: + static CCalGeometryConfiguration* instance; + CCalGeometryConfTable theConfiguration; +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalHall.hh b/examples/advanced/composite_calorimeter/include/CCalHall.hh new file mode 100644 index 0000000000..6a18a35408 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalHall.hh @@ -0,0 +1,53 @@ +// +// ******************************************************************** +// * 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: CCalHall.hh +// Description: Equipped to construct the geometry of the 96 Test Beam +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalHall_h +#define CCalHall_h 1 + +#include "CCalDetector.hh" + +class CCalHall: public CCalDetector { +public: + //Constructor and Destructor + CCalHall(const G4String &name); + virtual ~CCalHall(); + + //Get Methods + G4String getMaterial() const {return genMaterial;} + double getDy_2Hall() const {return dy_2Hall;} + double getDx_2Hall() const {return dx_2Hall;} + +protected: + virtual int readFile(); + virtual void constructDaughters(); + +private: + G4String genMaterial; //General material + double dy_2Hall; //Half width of the Experimental Hall + double dx_2Hall; //Half thickness of the Experimental Hall +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalHcal.hh b/examples/advanced/composite_calorimeter/include/CCalHcal.hh new file mode 100644 index 0000000000..90bb173da2 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalHcal.hh @@ -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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalHcal.hh +// Description: Equipped to construct the geometry of the hadron calorimeter +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalHcal_h +#define CCalHcal_h 1 + +#include "CCalDetector.hh" + +class CCalHcal: public CCalDetector { +public: + //Constructor and Destructor + CCalHcal(const G4String &name); + virtual ~CCalHcal(); + + //Get Methods + G4String getGenMat() const {return genMaterial;} + double getDy_2Cal() const {return dy_2Cal;} + double getDx_2Cal() const {return dx_2Cal;} + double getXposCal() const {return xposCal;} + G4String getBoxMat() const {return boxMaterial;} + int getNBox() const {return nBox;} + double getDy_2Box() const {return dy_2Box;} + double getDx_2Box() const {return dx_2Box;} + double getWallThickBox() const {return wallThickBox;} + double getXposBox(unsigned int i) const {return xposBox[i];} + int getNLayerScnt() const {return nLayerScnt;} + int getTypeScnt(unsigned int i) const {return typeLayerScnt[i];} + int getMotherScnt(unsigned int i) const {return mothLayerScnt[i];} + double getXposScnt(unsigned int i) const {return xposLayerScnt[i];} + int getNLayerAbs() const {return nLayerAbs;} + int getTypeAbs(unsigned int i) const {return typeLayerAbs[i];} + int getMotherAbs(unsigned int i) const {return mothLayerAbs[i];} + double getXposAbs(unsigned int i) const {return xposLayerAbs[i];} + G4String getAbsMat() const {return absMaterial;} + int getNAbsorber() const {return nAbsorber;} + double getDy_2Abs( ) const {return dy_2Absorber;} + double getDx_2Abs(unsigned int i) const {return dx_2Absorber[i];} + G4String getScntMat() const {return scntMaterial;} + G4String getWrapMat() const {return wrapMaterial;} + G4String getPlasMat() const {return plasMaterial;} + int getNScintillator() const {return nScintillator;} + double getDy_2ScntLay(unsigned int i) const {return dy_2ScntLayer[i];} + double getDx_2ScntLay(unsigned int i) const {return dx_2ScntLayer[i];} + double getDx_2Wrap(unsigned int i) const {return dx_2Wrapper[i];} + double getDx_2FrontP(unsigned int i) const {return dx_2FrontPlastic[i];} + double getDx_2BackP(unsigned int i) const {return dx_2BackPlastic[i];} + double getDx_2Scnt(unsigned int i) const {return dx_2Scintillator[i];} + +protected: + virtual int readFile(); + virtual void constructDaughters(); + +private: + G4String genMaterial; //General material + double dy_2Cal; //Half width of the Hcal + double dx_2Cal; //Half thickness of the Hcal + double xposCal; //Position in mother + + G4String boxMaterial; //Material of boxes + int nBox; //Number of boxes + double dy_2Box; //Half width of the Boxes + double dx_2Box; //Half thickness of the Boxes + double wallThickBox; //Wall thickness of the boxes + double* xposBox; //Position in mother + + int nLayerScnt; //Number of scintillator layers + int* typeLayerScnt; //Layer type + int* mothLayerScnt; //Mother type + double* xposLayerScnt; //Position in mother + + int nLayerAbs; //Number of absorber layers + int* typeLayerAbs; //Layer type + int* mothLayerAbs; //Mother type + double* xposLayerAbs; //Position in mother + + G4String absMaterial; //Material of absorbers + int nAbsorber; //Number of absorber types + double dy_2Absorber; //Half width of the absorbers + double* dx_2Absorber; //Half thickness of the absorbers + + G4String scntMaterial; //Material of Scintillator + G4String wrapMaterial; //Material of Wrapper + G4String plasMaterial; //Material of plastic cover + int nScintillator; //Number of scintillator types + double* dy_2ScntLayer; //Half width of scintillator layers + double* dx_2ScntLayer; //Half thickness of scintillator layers + double* dx_2Wrapper; //Half thickness of wrappers + double* dx_2FrontPlastic; //Half thickness of front plastic + double* dx_2BackPlastic; //Half thickness of back plastic + double* dx_2Scintillator; //Half thickness of scintillators +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalHcalOrganization.hh b/examples/advanced/composite_calorimeter/include/CCalHcalOrganization.hh new file mode 100644 index 0000000000..d3266109ae --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalHcalOrganization.hh @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * 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: CCalHcalOrganization.hh +// Description: Defines numbering schema for the Hadron Calorimeter +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalHcalOrganization_h +#define CCalHcalOrganization_h + +#include "CCalVOrganization.hh" + +class CCalHcalOrganization: public CCalVOrganization{ + +public: + CCalHcalOrganization(){}; + ~CCalHcalOrganization(); + + virtual unsigned int GetUnitID(const G4Step* aStep) const ; + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalHit.hh b/examples/advanced/composite_calorimeter/include/CCalHit.hh new file mode 100644 index 0000000000..a3734e35ba --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalHit.hh @@ -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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalHit.h +// Description: Hit class for Calorimeters (Ecal, Hcal, ...) +// +// One Hit object should be created +// -for each new particle entering the calorimeter +// -for each detector unit (= cristal or fiber or scintillator layer) +// -for each nanosecond of the shower development +// +// This implies that all hit objects created for a given shower +// have the same value for +// - Entry (= local coordinates of the entrance point of the particle +// in the unit where the shower starts) +// - the TrackID (= Identification number of the incident particle) +// - the IncidentEnergy (= energy of that particle) +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCalHit_h +#define CCalHit_h 1 + +#include "g4std/iostream" +#include "CLHEP/Vector/ThreeVector.h" +#include "globals.hh" + + +class CCalHit { + + friend G4std::ostream& operator<< (G4std::ostream&, const CCalHit&); + +public: + + CCalHit(); + ~CCalHit(); + CCalHit(const CCalHit &right); + const CCalHit& operator=(const CCalHit &right); + int operator==(const CCalHit &right){return 0;} + + void print(); + +public: + + Hep3Vector getEntry() const; + void setEntry(Hep3Vector xyz); + + double getIncidentEnergy() const; + void setIncidentEnergy (double e); + + int getTrackID() const; + void setTrackID (int i); + + unsigned int getUnitID() const; + void setUnitID (unsigned int i); + + double getTimeSlice() const; + void setTimeSlice(double d); + int getTimeSliceID() const; + + double getEnergyDeposit() const; + void setEnergyDeposit(const double e); + void addEnergyDeposit(const CCalHit& aHit); + void addEnergyDeposit(const double e); + +private: + + Hep3Vector entry; // Entry point + double theIncidentEnergy; // Energy of the primary particle + int theTrackID; // Identification number of the primary particle + unsigned int theUnitID; // Calorimeter Unit Number + double theTimeSlice; // Time Slice Identification + double theEnergyDeposit; // Cumulated Energy deposit + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalMagneticField.hh b/examples/advanced/composite_calorimeter/include/CCalMagneticField.hh new file mode 100644 index 0000000000..c21744dee4 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalMagneticField.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalMagneticField.hh +// Description: A class for control of the Magnetic Field of the detector. +// The field is assumed to be uniform. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalMagneticField_H +#define CCalMagneticField_H + +#include "G4UniformMagField.hh" +#include "G4ThreeVector.hh" +class G4FieldManager; + +class CCalMagneticField: public G4MagneticField { +public: + CCalMagneticField(const G4String &name); + ~CCalMagneticField(); + + // Access functions + void MagneticField(const double Point[3], double Bfield[3]) const; + Hep3Vector MagneticField(const Hep3Vector Point) const; + virtual void GetFieldValue(const double Point[3], double* Bfield) const; + G4double GetConstantFieldvalue() const {return fval;} + +protected: + // Find the global Field Manager + G4FieldManager* GetGlobalFieldManager(); + +private: + G4double fval; // Field value + G4int npts; // Number of poinst + G4double xoff; // Offset + G4double* pos; // Position + G4double* slope; // Slope + G4double* intercept; // Intercept +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalMaterial.hh b/examples/advanced/composite_calorimeter/include/CCalMaterial.hh new file mode 100644 index 0000000000..9fd444012e --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalMaterial.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. * +// ******************************************************************** +// +////////////////////////////////////////////////////////////////////////////// +// File: CCalMaterial.hh +// Description: CCalMaterial holds the basic information needed to make a +// G4Material. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalMaterial_h +#define CCalMaterial_h 1 +#include "g4std/iostream" +#include "globals.hh" + +class CCalMaterial { + +friend G4std::ostream& operator<<(G4std::ostream&, const CCalMaterial&); + +public: + enum FractionType {FTWeight, FTVolume}; + + //Constructors and destructors + CCalMaterial(G4String mat, double dens, int nelem, + CCalMaterial** constituents, double* weights, + FractionType=FTWeight); + CCalMaterial(const CCalMaterial&); + virtual ~CCalMaterial(); + + //Get methods + G4String Name() const {return name;} //Material name. + double Density() const {return density;} //Density in g/cm3. + int NElements() const {return nElem;} //Number of Elements. + G4String Element(int i) const {return theElements[i];} //Should be protected. + double Weight(int i) const {return theWeights[i];} //Should be protected. + + //Operators + G4bool operator==(const CCalMaterial&) const; //Compares ONLY names + G4bool operator!=(const CCalMaterial&) const; //Compares ONLY names + CCalMaterial& operator= (const CCalMaterial&); //Assignment + +protected: + CCalMaterial(){} //Default constructor + void computeDensity(int nconst, + CCalMaterial** constituents, double* weights, + FractionType ft); + void closeMaterial(); //Closes material construction. + +protected: + G4String name; //Material name + double density; //Density in g/cm3 + int nElem; //Number of constituents. + G4String* theElements; //Basic constituents + double* theWeights; //Elements' weight fractions +}; +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalMaterialFactory.hh b/examples/advanced/composite_calorimeter/include/CCalMaterialFactory.hh new file mode 100644 index 0000000000..565bbb6e9b --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalMaterialFactory.hh @@ -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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalMaterialFactory.hh +// Description: CCalMaterialFactory is a singleton class to get from a file +// the information to build CMS Materials. A G4Material is built +// only if asked. A parallel structure with the file information +// is keeped in a CCalMaterial pointer vector (CCalMaterialTable). +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalMaterialFactory_h +#define CCalMaterialFactory_h 1 + +#include "g4std/fstream" + +#include "CCalMaterial.hh" +#include "CCalAMaterial.hh" + +#include "G4MaterialTable.hh" +#include "G4ElementTable.hh" + +typedef G4std::vector CCalMaterialTable; +typedef G4std::vector CCalAMaterialTable; + +class CCalMaterialFactory { +public: + enum MatDescription {byWeight, byVolume, byAtomic}; + + ~CCalMaterialFactory(); + + static CCalMaterialFactory* getInstance(const G4String&, const G4String&); + static CCalMaterialFactory* getInstance(const G4String&); + static CCalMaterialFactory* getInstance(); + + G4Material* findMaterial(const G4String& ) const; + G4Element* findElement (const G4String& ) const; + + //Adds a new CCal Material to the list and returns a G4Material. + G4Element* addElement (const G4String&, const G4String&, G4double, + G4double, G4double ); + //Adds a new CCal Material to the list and returns a G4Material. + G4Material* addMaterial(const G4String& nam, G4double density, + G4int nconst, G4String mats[], G4double prop[], + MatDescription md=byWeight); + + void readElements (const G4String&); + void readMaterials(const G4String&); + +protected: + void readElements(G4std::ifstream&); + void readMaterials(G4std::ifstream&); + +private: + //Constructor + CCalMaterialFactory(); + + G4Material* findG4Material (const G4String& ) const; + CCalMaterial* findCCalMaterial (const G4String& ) const; + CCalAMaterial* findCCalAMaterial(const G4String& ) const; + + //Adds a CCalMaterial to the list. Used by readMaterials and addMaterial. + CCalMaterial* addCCalMaterial(const G4String& nam, G4double density, + G4int nconst, G4String mats[], G4double prop[], + MatDescription md=byWeight); + + +private: + static CCalMaterialFactory* instance; + + static G4String elementfile; //File with the elements. + static G4String mixturefile; //File with the materials. + + CCalMaterialTable theCCalMaterials; //Where the CCalMaterials are stored + CCalAMaterialTable theCCalAMaterials; //Where the CCalAMaterials are stored + +}; + +#endif diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh b/examples/advanced/composite_calorimeter/include/CCalPhysicsList.hh similarity index 76% rename from examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh rename to examples/advanced/composite_calorimeter/include/CCalPhysicsList.hh index 37a43ca35b..3dba64a64a 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02RunAction.hh +++ b/examples/advanced/composite_calorimeter/include/CCalPhysicsList.hh @@ -20,31 +20,32 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: PersEx02RunAction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +//----------------------------------------------------------- +// Renamed of the ufficial Physics List. +//----------------------------------------------------------- +#ifndef CCalPhysicsList_h +#define CCalPhysicsList_h 1 -#ifndef PersEx02RunAction_h -#define PersEx02RunAction_h 1 - -#include "G4UserRunAction.hh" +#include "G4VModularPhysicsList.hh" #include "globals.hh" -class G4Run; +#define kNuCut 5*m -class PersEx02RunAction : public G4UserRunAction +class CCalPhysicsList: public G4VModularPhysicsList { - public: - PersEx02RunAction(); - virtual ~PersEx02RunAction(); +public: + CCalPhysicsList(); + virtual ~CCalPhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); - public: - virtual void BeginOfRunAction(const G4Run* aRun); - virtual void EndOfRunAction(const G4Run* aRun); - - private: }; +// 2002 by J.P. Wellisch + #endif + + diff --git a/examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorAction.hh b/examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..69872a5473 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorAction.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalPrimaryGeneratorAction.hh +// Description: Sets up particle beam +// +// By default 1 pi+ is shot from (0,0,0) +// in (1,1,0.1) direction at 100 GeV +// Use /gun/... commands to modify energy,origin,direction at run time. +// or/and +// /CCal/generator/random true/false to have random direction +// /CCal/generator/scan true/false to scan in eta/phi +// Use +// /CCal/generator/minEnergy +// /CCal/generator/maxEnergy +// /CCal/generator/minPhi +// /CCal/generator/maxPhi +// /CCal/generator/minEta +// /CCal/generator/maxEta +// to set the range in energy and direction of particles shot at random. +// Use +// /CCal/generator/stepsPhi +// /CCal/generator/stepsEta +// to set number of steps in Phi and Eta for the scan +// +/////////////////////////////////////////////////////////////////////////////// + + +#ifndef CCalPrimaryGeneratorAction_h +#define CCalPrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4ParticleGun.hh" +#include "G4ThreeVector.hh" +#include "G4ios.hh" +#include "G4Event.hh" +#include "G4VPrimaryGenerator.hh" + +#include "CCalPrimaryGeneratorMessenger.hh" + +enum generatorInputType {singleFixed, singleRandom, singleScan}; + +class CCalPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { +public: + CCalPrimaryGeneratorAction(); + ~CCalPrimaryGeneratorAction(); + +public: + void GeneratePrimaries(G4Event* anEvent); + +public: + void SetVerboseLevel(G4int val); + void SetRandom(G4String val); + void SetScan(G4String val); + void SetMinimumEnergy(G4double p); + void SetMaximumEnergy(G4double p); + void SetMinimumPhi(G4double p); + void SetMaximumPhi(G4double p); + void SetStepsPhi(G4int val); + void SetMinimumEta(G4double p); + void SetMaximumEta(G4double p); + void SetStepsEta(G4int val); + void SetGunPosition(const G4ThreeVector & pos) const; + void SetRunNo(G4int val); + +public: + G4ThreeVector GetParticlePosition() {return particleGun->GetParticlePosition();} + G4double GetParticleEnergy() {return particleGun->GetParticleEnergy();} + +private: + CCalPrimaryGeneratorMessenger* gunMessenger; + G4ParticleGun* particleGun; + generatorInputType generatorInput; + + G4int verboseLevel; + G4int n_particle; + G4String particleName; + G4double particleEnergy; + G4ThreeVector particlePosition; + G4ThreeVector particleDir; + + G4double energyMin,energyMax; + G4double etaMin,etaMax; + G4double phiMin,phiMax; + G4int etaSteps,phiSteps; + + G4int isInitialized; + G4double etaValue, phiValue; + G4int scanSteps; + +private: + void initialize(); + void print(G4int val); + +}; + +#endif + + + diff --git a/examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorMessenger.hh b/examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..06247b2ffa --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalPrimaryGeneratorMessenger.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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: CCalPrimaryGeneratorMessenger.hh +// Description: Adds a new command to (un)select random shooting. +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCalPrimaryGeneratorMessenger_h +#define CCalPrimaryGeneratorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class CCalPrimaryGeneratorAction; + +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithADouble.hh" +#include "G4UIcmdWithAnInteger.hh" + +class CCalPrimaryGeneratorMessenger: public G4UImessenger { +public: + CCalPrimaryGeneratorMessenger(CCalPrimaryGeneratorAction* myGun); + ~CCalPrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand * command,G4String newValues); + +private: + CCalPrimaryGeneratorAction* myAction; + + G4UIcmdWithAnInteger* verboseCmd; + G4UIcmdWithAString* rndmCmd; + G4UIcmdWithAString* scanCmd; + G4UIcmdWithADoubleAndUnit* minEnergyCmd; + G4UIcmdWithADoubleAndUnit* maxEnergyCmd; + G4UIcmdWithADoubleAndUnit* minPhiCmd; + G4UIcmdWithADoubleAndUnit* maxPhiCmd; + G4UIcmdWithADouble* minEtaCmd; + G4UIcmdWithADouble* maxEtaCmd; + G4UIcmdWithAnInteger* stepsPhiCmd; + G4UIcmdWithAnInteger* stepsEtaCmd; + G4UIcmdWithAnInteger* runNoCmd; +}; + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/CCalRotationMatrixFactory.hh b/examples/advanced/composite_calorimeter/include/CCalRotationMatrixFactory.hh new file mode 100644 index 0000000000..801133b841 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalRotationMatrixFactory.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalRotationMatrixFactory.hh +// Description: CCalRotationFactory is a singleton class to get from a file +// the information to build CCal Rotation matrices. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalRotationMatrixFactory_h +#define CCalRotationMatrixFactory_h 1 + +#include "g4std/map" +#include "G4RotationMatrix.hh" + +typedef G4RotationMatrix* G4RotationMatrixPtr; +typedef G4std::map > G4RotationMatrixTable; +typedef G4std::map >::iterator G4RotationMatrixTableIterator; + + +//typedef RWTPtrOrderedVector G4RotationMatrixTable; +// Is an instantiation of the template class RWTPtrOrderedVector. + +class CCalRotationMatrixFactory { +public: + ~CCalRotationMatrixFactory(); + + static CCalRotationMatrixFactory* getInstance(); + static CCalRotationMatrixFactory* getInstance(const G4String& rotfile); + static void setFileName(const G4String& rotfile); + + G4RotationMatrix* findMatrix(const G4String&); + G4RotationMatrix* AddMatrix(const G4String& name, + G4double th1, G4double phi1, //Axis angles + G4double th2, G4double phi2, //in rads + G4double th3, G4double phi3); // + +private: + CCalRotationMatrixFactory(); + +private: + static CCalRotationMatrixFactory* instance; + static G4String file; + + G4RotationMatrixTable theMatrices; //Where the matrices are stored. +}; + +G4std::ostream& operator<<(G4std::ostream&, const G4RotationMatrix &); +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalRunAction.hh b/examples/advanced/composite_calorimeter/include/CCalRunAction.hh new file mode 100644 index 0000000000..f361329328 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalRunAction.hh @@ -0,0 +1,46 @@ +// +// ******************************************************************** +// * 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: CCalRunAction.hh +// Description: A class for providing user actions at begin and end of run +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalRunAction_h +#define CCalRunAction_h + +#include "G4UserRunAction.hh" + +class G4Run; +class CCalRunAction: public G4UserRunAction{ + +public: + CCalRunAction(){}; + virtual ~CCalRunAction(){}; + +public: + virtual void BeginOfRunAction(const G4Run* aRun); + virtual void EndOfRunAction(const G4Run* aRun); + + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalSDList.hh b/examples/advanced/composite_calorimeter/include/CCalSDList.hh new file mode 100644 index 0000000000..122c45aa3d --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalSDList.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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: CCalSDList.hh +// Description: Records name of all SD objects and classify them into +// CALO and Tracker SD +// Singleton class +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalSDList_h +#define CCalSDList_h 1 + +#include "g4std/vector" +#include "globals.hh" + +typedef G4String nameType; + +class CCalSDList{ +private: + CCalSDList(); + ~CCalSDList(); + +public: + static CCalSDList* getInstance(); + +public: + + void addCalo(nameType name); + void addTracker(nameType name); + + nameType getCaloSDName(int i); + nameType getTrackerSDName(int i); + + int getNumberOfCaloSD(); + int getNumberOfTrackerSD(); + +private: + static CCalSDList* theList; + G4std::vector caloSD; + G4std::vector trackerSD; + +private: + CCalSDList& operator=(CCalSDList&); + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalSensAssign.hh b/examples/advanced/composite_calorimeter/include/CCalSensAssign.hh new file mode 100644 index 0000000000..2e5060d56c --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalSensAssign.hh @@ -0,0 +1,53 @@ +// +// ******************************************************************** +// * 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: CCalSensAssign.hh +// Description: CCalSenAssign creates and assigns the sensitive detetctors +// from the map of logical volumes which are potentially sensitive +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalSensAssign_h +#define CCalSensAssign_h + +#include "CCalVOrganization.hh" + +#include "g4std/map" +#include "globals.hh" +#include "G4VSensitiveDetector.hh" + +class CCalSensAssign { + +public: + ~CCalSensAssign(){}; + static CCalSensAssign* getInstance(); + bool assign(); + bool stackingAction(); + bool addCaloSD(G4String name, CCalVOrganization* numberingScheme); + +private: + CCalSensAssign(); + + static CCalSensAssign* theInstance; + G4std::map sens_; + +}; +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalSensitiveConfiguration.hh b/examples/advanced/composite_calorimeter/include/CCalSensitiveConfiguration.hh new file mode 100644 index 0000000000..dce3ebf0d9 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalSensitiveConfiguration.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: CCalSensitiveConfiguration.h +// Description: This singleton holds the information given in the file +// g4geometry.conf +// Use getInstance to retrieve it. +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalSensitiveConfiguration_h +#define CCalSensitiveConfiguration_h 1 + +#include "g4std/map" +#include "CCalutils.hh" + +class CCalSensitiveConfiguration { + + struct GCInfo { + G4String FileName; + int SensitiveFlag; + }; + + typedef G4std::map > CCalSensitiveConfTable; + typedef G4std::map >::iterator CCalSensitiveConfIterator; + + +public: + ~CCalSensitiveConfiguration() {} + + static CCalSensitiveConfiguration* getInstance(); + + int getSensitiveFlag(const G4String& n) /*const*/; + G4String getFileName(const G4String& n) /*const*/; + +private: + CCalSensitiveConfiguration(); + +private: + static CCalSensitiveConfiguration* instance; + CCalSensitiveConfTable theConfiguration; +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalSensitiveDetectors.hh b/examples/advanced/composite_calorimeter/include/CCalSensitiveDetectors.hh new file mode 100644 index 0000000000..193d9a4ca6 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalSensitiveDetectors.hh @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * 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: CCalSensitiveDetectors.hh +// Description: Container of logical volume pointers which can be sensitive +// detectors +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalSensitiveDetectors_h +#define CCalSensitiveDetectors_h 1 + +#include "g4std/vector" +#include "g4std/map" +#include "G4VSensitiveDetector.hh" +#include "G4LogicalVolume.hh" + +typedef G4std::multimap< G4String, G4LogicalVolume*, G4std::less > mmslv; + +class CCalSensitiveDetectors { + +public: + ~CCalSensitiveDetectors(){}; + G4std::vector getVolumes (const G4String& name, bool exists = 0); + void registerVolume (const G4String& name, G4LogicalVolume*); + bool setSensitive(const G4String& string, G4VSensitiveDetector* sens); + static CCalSensitiveDetectors* getInstance(); +private: + CCalSensitiveDetectors(){}; + static CCalSensitiveDetectors* theInstance; + // logical volume container: name, G4LogicalVolume* + mmslv theLVs; + +}; + +#endif diff --git a/source/persistency/geometry/management/include/G4PPVParameterised.ddl b/examples/advanced/composite_calorimeter/include/CCalStackingAction.hh similarity index 56% rename from source/persistency/geometry/management/include/G4PPVParameterised.ddl rename to examples/advanced/composite_calorimeter/include/CCalStackingAction.hh index 38800d4e0d..a2b51c91cf 100644 --- a/source/persistency/geometry/management/include/G4PPVParameterised.ddl +++ b/examples/advanced/composite_calorimeter/include/CCalStackingAction.hh @@ -20,39 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PPVParameterised.ddl,v 1.6 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +/////////////////////////////////////////////////////////////////////////////// +// File: CCalStackingAction.hh +// Description: Action needed to keep track of the ID of particle generating +// showers in any calorimeter part. +// For the moment it is requested only by CCalSensAssign +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalStackingAction_h +#define CCalStackingAction_h 1 -// Class Description: -// Persistent version of G4PVParameterised. +#include "globals.hh" +#include "G4UserStackingAction.hh" -// History: -// 05.11.99 Y.Morita First non-stub version +class CCaloSD; -#ifndef G4PPVPARAMETERISED_DDL -#define G4PPVPARAMETERISED_DDL 1 +class CCalStackingAction : public G4UserStackingAction { -#include "G4PersistentSchema.hh" -#include "G4PPVReplica.hh" + friend class CCalSensAssign; + +private: + CCalStackingAction(); +public: + ~CCalStackingAction(); -class G4PPVParameterised - : public G4PPVReplica -{ - public: // With description - G4PPVParameterised(G4VPhysicalVolume *PhysVol, - HepRef(G4PLogicalVolume) persLogVol); - ~G4PPVParameterised(); - // Constructor and Destructor +public: + virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); + virtual void NewStage(); + virtual void PrepareNewEvent(); + +public: + enum stageLevel {firstStage, end} ; + enum {maxNumberOfSD = 30}; - G4VPhysicalVolume* MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother ); - // Creates a transient physical volume object. - - private: -// d_Ref fparam; +private: + stageLevel stage; + int numberOfSD; + G4String SDName[maxNumberOfSD]; + int nurgent; + int acceptSecondaries; + CCaloSD* theCaloSD[maxNumberOfSD]; + G4bool isInitialized; +private: + void initialize(); + G4bool trackStartsInCalo(const G4Track* atrack); + void setPrimaryID(G4int id); + }; #endif - diff --git a/examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh b/examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh new file mode 100644 index 0000000000..f0d4df7414 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalSteppingAction.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalSeppingAction.hh +// Description: Stepping action needed for analysis +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalSteppingAction_h +#define CCalSteppingAction_h + +#include "G4UserSteppingAction.hh" +#include "globals.hh" + +class G4Step; +class CCalSteppingAction : public G4UserSteppingAction { + + friend class CCalEndOfEventAction; +private: + CCalSteppingAction(); +public: + ~CCalSteppingAction(); + +public: + virtual void UserSteppingAction(const G4Step* aStep); + + +private: + + float LateralProfile[70]; + float timeDeposit[40]; + int timeHistoMaxBin; + +private: + void endOfEvent(); +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalVOrganization.hh b/examples/advanced/composite_calorimeter/include/CCalVOrganization.hh new file mode 100644 index 0000000000..d2a62d47da --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalVOrganization.hh @@ -0,0 +1,47 @@ +// +// ******************************************************************** +// * 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: CCalVOrganization.hh +// Description: Base class for definition of sensitive unit numbering schema +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalVOrganization_h +#define CCalVOrganization_h + +#include "G4Step.hh" +#include "CCaloOrganization.hh" + +class CCalVOrganization { + +public: + CCalVOrganization(){}; + virtual ~CCalVOrganization(){}; + + virtual unsigned int GetUnitID(const G4Step* aStep) const = 0; + virtual int Levels(const G4Step*) const; + virtual void DetectorLevel(const G4Step*, int&, int*, G4String*) const; + +protected: + CCaloOrganization theOrg; +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalVisManager.hh b/examples/advanced/composite_calorimeter/include/CCalVisManager.hh new file mode 100644 index 0000000000..51a73c64f7 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalVisManager.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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.hh +// Description: 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 CCalVisManager; +// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCalEXAMPLEVISMANAGER_HH +#define CCalEXAMPLEVISMANAGER_HH + +#ifdef G4VIS_USE +#include "G4VisManager.hh" + +class CCalVisManager: public G4VisManager { + +public: + + CCalVisManager (G4int verboseLevel = 0); + // Controls initial verbose level of VisManager and VisMessenger. + // Can be changed by /vis/set/verbose. + +private: + + virtual void RegisterGraphicsSystems (); + +}; + +#endif +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCalVisualisable.hh b/examples/advanced/composite_calorimeter/include/CCalVisualisable.hh new file mode 100644 index 0000000000..f995f131f0 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCalVisualisable.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalVisualisable.hh +// Description: Sets visualisable attributes from the information in flat file +/////////////////////////////////////////////////////////////////////////////// +#ifndef CCalVisualisable_hh +#define CCalVisualisable_hh 1 + +#include "globals.hh" + +#if __SUNPRO_CC==0x420 + typedef G4bool bool; +#endif + +class CCalVisualisable { +public: + + //Here we define the different type of volumes we consider. + enum visType {Sensitive=0, + Electronics=1, + Support=2, + Cable=3, + Absorber=4, + OtherServices=5, + PseudoVolumes=6, + TotalVisTypes=7, + Undefined=-1}; + +private: + + //This class groups the important visualization parameters. + class visParameters { + public: + visParameters(bool v=false, double r=1,double g=1,double b=1, bool w=true): + visibility(v),rColor(r),gColor(g),bColor(b),wireframe(w) {} + bool visibility; + double rColor; + double gColor; + double bColor; + bool wireframe; + }; + +public: + //Constructs this object from this file + CCalVisualisable(G4String file); + + virtual ~CCalVisualisable() {} + + //Reads this object from file + bool readFile(G4String file); + + //Sets visibility to true for Sensitive and to false otherwise. + void setDefault(); + + //Get & Set methods. + bool isVisible (visType v) const {return theParameters[v].visibility;} + void setVisible(visType v, bool flag=true){theParameters[v].visibility=flag;} + + double colorRed (visType v) const {return theParameters[v].rColor;} + double colorGreen(visType v) const {return theParameters[v].gColor;} + double colorBlue (visType v) const {return theParameters[v].bColor;} + void setColorRed (visType v, double r) {theParameters[v].rColor=r;} + void setColorGreen(visType v, double g) {theParameters[v].gColor=g;} + void setColorBlue (visType v, double b) {theParameters[v].bColor=b;} + void setColor(visType v, double r, double g, double b); + + bool isWireFrame (visType v) const {return theParameters[v].wireframe;} + void setWireFrame(visType v, bool wf=true){theParameters[v].wireframe=wf;} + + + +protected: + //Read this object from visFile + static void setPath(); + bool readFile(); + +private: + static const char* pathName; //Path in which to look for files + G4String visFile; //File with visualization info + visParameters theParameters[TotalVisTypes]; //Visualisation parameters + + double checkColorRange(double color, char type) const; +}; + +#endif + + + diff --git a/examples/advanced/composite_calorimeter/include/CCaloOrganization.hh b/examples/advanced/composite_calorimeter/include/CCaloOrganization.hh new file mode 100644 index 0000000000..b8a9305870 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCaloOrganization.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCaloOrganization.hh +// Description: Packing, unpacking and other related utilities for +// calorimetric numbering schema +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCaloOrganization_h +#define CCaloOrganization_h + +#include "g4std/map" +#include "globals.hh" + +class CCaloOrganization{ + +public: + CCaloOrganization(){}; + virtual ~CCaloOrganization(){}; + +public: + unsigned int packindex(int det, int z, int eta, int phi) const; + unsigned int packindex(int det, int depth, int z, int eta, int phi) const; + void unpackindex(const unsigned int& idx, int& det, int& z, int& eta, int& phi) const; + void unpackindex(const unsigned int& idx, int& det, int& depth, int& z, int& eta, int& phi) const; + +public: + + // additional tool: + int getUnitWithMaxEnergy(G4std::map >& themap); + + float energyInMatrix(int nCellInEta, int nCellInPhi, + int crystalWithMaxEnergy, + G4std::map >& themap); + + +}; + +#endif diff --git a/examples/advanced/composite_calorimeter/include/CCaloSD.hh b/examples/advanced/composite_calorimeter/include/CCaloSD.hh new file mode 100644 index 0000000000..de8b44158d --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/CCaloSD.hh @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * 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: CCaloSD.hh +// Description: Stores hits of calorimetric type in appropriate container +// +// Use in your geometry routine: +// CCaloSD* caloSD = new CCaloSD(SDname, new CalorimeterOrganization); +// G4SDManager::GetSDMpointer()->AddNewDetector(caloSD); +// and then for every Logical Volume to be declared as sensitive +// logVolume->SetSensitiveDetector(caloSD); +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef CCaloSD_h +#define CCaloSD_h 1 + +#include "CCalG4HitCollection.hh" +#include "CCalG4Hit.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Track.hh" +#include "G4ParticleDefinition.hh" +#include "G4Step.hh" +#include "G4TransportationManager.hh" +#include "G4VSensitiveDetector.hh" + +#include "g4std/iostream" +#include "g4std/fstream" + +class CCalVOrganization; + +//#define debug + +class CCaloSD : public G4VSensitiveDetector { + +public: + CCaloSD(G4String aSDname, CCalVOrganization* numberingScheme); + virtual ~CCaloSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + +public: + + void SetPrimaryID(int i) {PrimaryID = i; +#ifdef debug + cout<<"CCaloSD SetPrimaryID primID ="< theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; +}; + +// 2002 by J.P. Wellisch + +#endif + + + + + diff --git a/examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh b/examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh new file mode 100644 index 0000000000..a751e867de --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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 G4HadronQEDBuilder_h +#define G4HadronQEDBuilder_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/vector" + +#include "G4MultipleScattering.hh" +#include "G4hIonisation.hh" +#include "G4ProcessManager.hh" + +class G4HadronQEDBuilder +{ + public: + G4HadronQEDBuilder(); + virtual ~G4HadronQEDBuilder(); + + public: + virtual void Build(); + + private: + void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI); + + private: + + // Pi + + G4MultipleScattering thePionPlusMult; + G4hIonisation thePionPlusIonisation; + + // Pi - + G4MultipleScattering thePionMinusMult; + G4hIonisation thePionMinusIonisation; + + // K + + G4MultipleScattering theKaonPlusMult; + G4hIonisation theKaonPlusIonisation; + + // K - + G4MultipleScattering theKaonMinusMult; + G4hIonisation theKaonMinusIonisation; + + // Proton + G4MultipleScattering theProtonMult; + G4hIonisation theProtonIonisation; + + // anti-proton + G4MultipleScattering theAntiProtonMult; + G4hIonisation theAntiProtonIonisation; + + // SigmaMinus + G4MultipleScattering theSigmaMinusMult; + G4hIonisation theSigmaMinusIonisation; + + // AntiSigmaMinus + G4MultipleScattering theAntiSigmaMinusMult; + G4hIonisation theAntiSigmaMinusIonisation; + + // SigmaPlus + G4MultipleScattering theSigmaPlusMult; + G4hIonisation theSigmaPlusIonisation; + + // AntiSigmaPlus + G4MultipleScattering theAntiSigmaPlusMult; + G4hIonisation theAntiSigmaPlusIonisation; + + // XiMinus + G4MultipleScattering theXiMinusMult; + G4hIonisation theXiMinusIonisation; + + // AntiXiMinus + G4MultipleScattering theAntiXiMinusMult; + G4hIonisation theAntiXiMinusIonisation; + + // OmegaMinus + G4MultipleScattering theOmegaMinusMult; + G4hIonisation theOmegaMinusIonisation; + + // AntiOmegaMinus + G4MultipleScattering theAntiOmegaMinusMult; + G4hIonisation theAntiOmegaMinusIonisation; + + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.hh new file mode 100644 index 0000000000..aa0ea1770c --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.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. * +// ******************************************************************** +// +#ifndef G4LEPNeutronBuilder_h +#define G4LEPNeutronBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" + +#include "G4LElastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4LENeutronInelastic.hh" + +class G4LEPNeutronBuilder : public G4VNeutronBuilder +{ + public: + G4LEPNeutronBuilder(); + virtual ~G4LEPNeutronBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4HadronFissionProcess & aP); + virtual void Build(G4HadronCaptureProcess & aP); + virtual void Build(G4NeutronInelasticProcess & aP); + + void SetMinEnergy(G4double aM) + { + theMin=aM; + theIMin = theMin; + } + void SetMinInelasticEnergy(G4double aM) + { + theIMin=aM; + } + void SetMaxEnergy(G4double aM) + { + theMax=aM; + } + + private: + G4double theMin; + G4double theIMin; + G4double theMax; + G4LElastic * theElasticModel; + G4LENeutronInelastic * theLENeutronModel; + G4LFission * theNeutronFissionModel; + G4LCapture * theNeutronCaptureModel; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh new file mode 100644 index 0000000000..bf545653f3 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * 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 G4LEPPiKBuilder_h +#define G4LEPPiKBuilder_h + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPiKBuilder.hh" + +#include "G4LElastic.hh" + +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4LEKaonPlusInelastic.hh" +#include "G4LEKaonZeroSInelastic.hh" +#include "G4LEKaonZeroLInelastic.hh" +#include "G4LEKaonMinusInelastic.hh" + +class G4LEPPiKBuilder : public G4VPiKBuilder +{ + public: + G4LEPPiKBuilder(); + virtual ~G4LEPPiKBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4PionPlusInelasticProcess & aP); + virtual void Build(G4PionMinusInelasticProcess & aP); + virtual void Build(G4KaonPlusInelasticProcess & aP); + virtual void Build(G4KaonMinusInelasticProcess & aP); + virtual void Build(G4KaonZeroLInelasticProcess & aP); + virtual void Build(G4KaonZeroSInelasticProcess & aP); + + void SetMinEnergy(G4double aM) + { + theMin=aM; + } + void SetMaxEnergy(G4double aM) + { + theMax=aM; + } + + private: + G4double theMin; + G4double theMax; + + G4LElastic * theElasticModel; + + G4LEPionPlusInelastic* theLEPionPlusModel; + G4LEPionMinusInelastic* theLEPionMinusModel; + G4LEKaonPlusInelastic* theLEKaonPlusModel; + G4LEKaonMinusInelastic* theLEKaonMinusModel; + G4LEKaonZeroLInelastic* theLEKaonZeroLModel; + G4LEKaonZeroSInelastic* theLEKaonZeroSModel; + +}; +// 2002 by J.P. Wellisch + +#endif diff --git a/examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.hh new file mode 100644 index 0000000000..6a34f5c41c --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.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. * +// ******************************************************************** +// +#ifndef G4LEPProtonBuilder_h +#define G4LEPProtonBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VProtonBuilder.hh" + +#include "G4LElastic.hh" +#include "G4LEProtonInelastic.hh" + +class G4LEPProtonBuilder : public G4VProtonBuilder +{ + public: + G4LEPProtonBuilder(); + virtual ~G4LEPProtonBuilder(); + + public: + virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess & aP); + + void SetMinEnergy(G4double aM) + { + theMin=aM; + } + void SetMaxEnergy(G4double aM) + { + theMax=aM; + } + + private: + G4double theMin; + G4double theMax; + G4LElastic * theElasticModel; + G4LEProtonInelastic * theLEProtonModel; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh new file mode 100644 index 0000000000..b2191be0ef --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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 G4LHEPNeutronBuilder_h +#define G4LHEPNeutronBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" + +#include "G4LElastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4LENeutronInelastic.hh" +#include "G4HENeutronInelastic.hh" + +class G4LHEPNeutronBuilder : public G4VNeutronBuilder +{ + public: + G4LHEPNeutronBuilder(); + virtual ~G4LHEPNeutronBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4HadronFissionProcess & aP); + virtual void Build(G4HadronCaptureProcess & aP); + virtual void Build(G4NeutronInelasticProcess & aP); + + void SetMinEnergy(G4double aM) + { + theMin = aM; + theIMin = aM; + } + void SetMinInelasticEnergy(G4double aM) + { + theIMin = aM; + } + + private: + G4LElastic * theElasticModel; + G4LENeutronInelastic * theLENeutronModel; + G4HENeutronInelastic * theHENeutronModel; + G4LFission * theNeutronFissionModel; + G4LCapture * theNeutronCaptureModel; + + G4double theMin; + G4double theIMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.hh new file mode 100644 index 0000000000..3a90d49dc8 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.hh @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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 G4LHEPPiKBuilder_h +#define G4LHEPPiKBuilder_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4LElastic.hh" +#include "G4VPiKBuilder.hh" + +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4LEKaonPlusInelastic.hh" +#include "G4LEKaonZeroSInelastic.hh" +#include "G4LEKaonZeroLInelastic.hh" +#include "G4LEKaonMinusInelastic.hh" + +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4HEKaonPlusInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonMinusInelastic.hh" + +class G4LHEPPiKBuilder : public G4VPiKBuilder +{ + public: + G4LHEPPiKBuilder(); + virtual ~G4LHEPPiKBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4PionPlusInelasticProcess & aP); + virtual void Build(G4PionMinusInelasticProcess & aP); + virtual void Build(G4KaonPlusInelasticProcess & aP); + virtual void Build(G4KaonMinusInelasticProcess & aP); + virtual void Build(G4KaonZeroLInelasticProcess & aP); + virtual void Build(G4KaonZeroSInelasticProcess & aP); + + void SetMinEnergy(G4double aM) + { + theM=aM; + } + + private: + G4double theM; + + G4LElastic * theElasticModel; + + // Pi + + G4LEPionPlusInelastic* theLEPionPlusModel; + G4HEPionPlusInelastic* theHEPionPlusModel; + + // Pi - + G4LEPionMinusInelastic* theLEPionMinusModel; + G4HEPionMinusInelastic* theHEPionMinusModel; + + // K + + G4LEKaonPlusInelastic* theLEKaonPlusModel; + G4HEKaonPlusInelastic* theHEKaonPlusModel; + + // K - + G4LEKaonMinusInelastic* theLEKaonMinusModel; + G4HEKaonMinusInelastic* theHEKaonMinusModel; + + // K0L + G4LEKaonZeroLInelastic* theLEKaonZeroLModel; + G4HEKaonZeroInelastic* theHEKaonZeroLModel; + + // K0S + G4LEKaonZeroSInelastic* theLEKaonZeroSModel; + G4HEKaonZeroInelastic* theHEKaonZeroSModel; + +}; +// 2002 by J.P. Wellisch + +#endif diff --git a/examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.hh new file mode 100644 index 0000000000..51f8906a31 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.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. * +// ******************************************************************** +// +#ifndef G4LHEPProtonBuilder_h +#define G4LHEPProtonBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VProtonBuilder.hh" + +#include "G4LElastic.hh" +#include "G4LEProtonInelastic.hh" +#include "G4HEProtonInelastic.hh" + +class G4LHEPProtonBuilder : public G4VProtonBuilder +{ + public: + G4LHEPProtonBuilder(); + virtual ~G4LHEPProtonBuilder(); + + public: + virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess & aP); + + void SetMinEnergy(G4double aM) + { + theMin = aM; + } + + private: + G4LElastic * theElasticModel; + G4LEProtonInelastic * theLEProtonModel; + G4HEProtonInelastic * theHEProtonModel; + + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh b/examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh new file mode 100644 index 0000000000..d0d014373c --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh @@ -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. * +// ******************************************************************** +// +#ifndef G4MiscLHEPBuilder_h +#define G4MiscLHEPBuilder_h 1 + +#include "globals.hh" +#include "G4LElastic.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4AntiNeutronInelasticProcess.hh" +#include "G4LambdaInelasticProcess.hh" +#include "G4AntiLambdaInelasticProcess.hh" +#include "G4SigmaPlusInelasticProcess.hh" +#include "G4SigmaMinusInelasticProcess.hh" +#include "G4AntiSigmaPlusInelasticProcess.hh" +#include "G4AntiSigmaMinusInelasticProcess.hh" +#include "G4XiZeroInelasticProcess.hh" +#include "G4XiMinusInelasticProcess.hh" +#include "G4AntiXiZeroInelasticProcess.hh" +#include "G4AntiXiMinusInelasticProcess.hh" +#include "G4OmegaMinusInelasticProcess.hh" +#include "G4AntiOmegaMinusInelasticProcess.hh" + +#include "G4LEAntiProtonInelastic.hh" +#include "G4LEAntiNeutronInelastic.hh" +#include "G4LELambdaInelastic.hh" +#include "G4LEAntiLambdaInelastic.hh" +#include "G4LESigmaPlusInelastic.hh" +#include "G4LESigmaMinusInelastic.hh" +#include "G4LEAntiSigmaPlusInelastic.hh" +#include "G4LEAntiSigmaMinusInelastic.hh" +#include "G4LEXiZeroInelastic.hh" +#include "G4LEXiMinusInelastic.hh" +#include "G4LEAntiXiZeroInelastic.hh" +#include "G4LEAntiXiMinusInelastic.hh" +#include "G4LEOmegaMinusInelastic.hh" +#include "G4LEAntiOmegaMinusInelastic.hh" + +// High-energy Models + +#include "G4HEAntiProtonInelastic.hh" +#include "G4HEAntiNeutronInelastic.hh" +#include "G4HELambdaInelastic.hh" +#include "G4HEAntiLambdaInelastic.hh" +#include "G4HESigmaPlusInelastic.hh" +#include "G4HESigmaMinusInelastic.hh" +#include "G4HEAntiSigmaPlusInelastic.hh" +#include "G4HEAntiSigmaMinusInelastic.hh" +#include "G4HEXiZeroInelastic.hh" +#include "G4HEXiMinusInelastic.hh" +#include "G4HEAntiXiZeroInelastic.hh" +#include "G4HEAntiXiMinusInelastic.hh" +#include "G4HEOmegaMinusInelastic.hh" +#include "G4HEAntiOmegaMinusInelastic.hh" + +class G4MiscLHEPBuilder +{ + public: + G4MiscLHEPBuilder(); + virtual ~G4MiscLHEPBuilder(); + + public: + void Build(); + + private: + + G4LElastic* theElasticModel; + + // anti-proton + G4HadronElasticProcess theAntiProtonElasticProcess; + G4AntiProtonInelasticProcess theAntiProtonInelastic; + G4LEAntiProtonInelastic* theLEAntiProtonModel; + G4HEAntiProtonInelastic* theHEAntiProtonModel; + + // anti-neutron + G4HadronElasticProcess theAntiNeutronElasticProcess; + G4AntiNeutronInelasticProcess theAntiNeutronInelastic; + G4LEAntiNeutronInelastic* theLEAntiNeutronModel; + G4HEAntiNeutronInelastic* theHEAntiNeutronModel; + + // Lambda + G4HadronElasticProcess theLambdaElasticProcess; + G4LambdaInelasticProcess theLambdaInelastic; + G4LELambdaInelastic* theLELambdaModel; + G4HELambdaInelastic* theHELambdaModel; + + // AntiLambda + G4HadronElasticProcess theAntiLambdaElasticProcess; + G4AntiLambdaInelasticProcess theAntiLambdaInelastic; + G4LEAntiLambdaInelastic* theLEAntiLambdaModel; + G4HEAntiLambdaInelastic* theHEAntiLambdaModel; + + // SigmaMinus + G4HadronElasticProcess theSigmaMinusElasticProcess; + G4SigmaMinusInelasticProcess theSigmaMinusInelastic; + G4LESigmaMinusInelastic* theLESigmaMinusModel; + G4HESigmaMinusInelastic* theHESigmaMinusModel; + + // AntiSigmaMinus + G4HadronElasticProcess theAntiSigmaMinusElasticProcess; + G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic; + G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel; + G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel; + + // SigmaPlus + G4HadronElasticProcess theSigmaPlusElasticProcess; + G4SigmaPlusInelasticProcess theSigmaPlusInelastic; + G4LESigmaPlusInelastic* theLESigmaPlusModel; + G4HESigmaPlusInelastic* theHESigmaPlusModel; + + // AntiSigmaPlus + G4HadronElasticProcess theAntiSigmaPlusElasticProcess; + G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic; + G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel; + G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel; + + // XiZero + G4HadronElasticProcess theXiZeroElasticProcess; + G4XiZeroInelasticProcess theXiZeroInelastic; + G4LEXiZeroInelastic* theLEXiZeroModel; + G4HEXiZeroInelastic* theHEXiZeroModel; + + // AntiXiZero + G4HadronElasticProcess theAntiXiZeroElasticProcess; + G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic; + G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel; + G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel; + + // XiMinus + G4HadronElasticProcess theXiMinusElasticProcess; + G4XiMinusInelasticProcess theXiMinusInelastic; + G4LEXiMinusInelastic* theLEXiMinusModel; + G4HEXiMinusInelastic* theHEXiMinusModel; + + // AntiXiMinus + G4HadronElasticProcess theAntiXiMinusElasticProcess; + G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic; + G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel; + G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel; + + // OmegaMinus + G4HadronElasticProcess theOmegaMinusElasticProcess; + G4OmegaMinusInelasticProcess theOmegaMinusInelastic; + G4LEOmegaMinusInelastic* theLEOmegaMinusModel; + G4HEOmegaMinusInelastic* theHEOmegaMinusModel; + + // AntiOmegaMinus + G4HadronElasticProcess theAntiOmegaMinusElasticProcess; + G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic; + G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel; + G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel; + +}; +// 2002 by J.P. Wellisch + +#endif diff --git a/source/persistency/geometry/solids/Boolean/src/G4PSubtractionSolid.cc b/examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh similarity index 66% rename from source/persistency/geometry/solids/Boolean/src/G4PSubtractionSolid.cc rename to examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh index 15009605d3..3610930390 100644 --- a/source/persistency/geometry/solids/Boolean/src/G4PSubtractionSolid.cc +++ b/examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh @@ -20,32 +20,40 @@ // * statement, and all its terms. * // ******************************************************************** // -// Persistent class for description of subtraction of two CSG solids: A - B -// -// History: -// 10.11.99 Y.Morita, Initial creation -// +#ifndef G4NeutronBuilder_h +#define G4NeutronBuilder_h 1 -#include "G4PSubtractionSolid.hh" -#include "G4SubtractionSolid.hh" +#include "globals.hh" -G4PSubtractionSolid::G4PSubtractionSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ) - : G4PBooleanSolid(pName, persSolidA, persSolidB) -{;} +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" -G4PSubtractionSolid::~G4PSubtractionSolid() -{;} +#include "g4std/vector" -G4VSolid* G4PSubtractionSolid::MakeTransientObject() const -{ return 0; } - -G4VSolid* G4PSubtractionSolid::MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const +class G4NeutronBuilder { - return new G4SubtractionSolid( GetName(), aSolidA, aSolidB ); -} + public: + G4NeutronBuilder(); + virtual ~G4NeutronBuilder(); + public: + void Build(); + void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);} + + private: + G4HadronElasticProcess theNeutronElasticProcess; + G4NeutronInelasticProcess theNeutronInelastic; + G4HadronFissionProcess theNeutronFission; + G4HadronCaptureProcess theNeutronCapture; + + G4std::vector theModelCollections; + +}; + +// 2002 by J.P. Wellisch + +#endif diff --git a/examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh b/examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh new file mode 100644 index 0000000000..c90f577473 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh @@ -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. * +// ******************************************************************** +// +#ifndef G4NeutronHPBuilder_h +#define G4NeutronHPBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" + +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +#include "G4NeutronHPFission.hh" +#include "G4NeutronHPFissionData.hh" +#include "G4NeutronHPCapture.hh" +#include "G4NeutronHPCaptureData.hh" + +class G4NeutronHPBuilder : public G4VNeutronBuilder +{ + public: + G4NeutronHPBuilder(); + virtual ~G4NeutronHPBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4HadronFissionProcess & aP); + virtual void Build(G4HadronCaptureProcess & aP); + virtual void Build(G4NeutronInelasticProcess & aP); + + private: + G4NeutronHPElastic * theHPElastic; + G4NeutronHPElasticData * theHPElasticData; + G4NeutronHPInelastic * theHPInelastic; + G4NeutronHPInelasticData * theHPInelasticData; + G4NeutronHPFission * theHPFission; + G4NeutronHPFissionData * theHPFissionData; + G4NeutronHPCapture * theHPCapture; + G4NeutronHPCaptureData * theHPCaptureData; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh new file mode 100644 index 0000000000..e82e3ba99b --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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 G4PiKBuilder_h +#define G4PiKBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VPiKBuilder.hh" + +#include "g4std/vector" + +class G4PiKBuilder +{ + public: + G4PiKBuilder(); + virtual ~G4PiKBuilder(); + + public: + void Build(); + void RegisterMe(G4VPiKBuilder * aB) {theModelCollections.push_back(aB);} + + private: + G4HadronElasticProcess thePionPlusElasticProcess; + G4HadronElasticProcess thePionMinusElasticProcess; + G4HadronElasticProcess theKaonPlusElasticProcess; + G4HadronElasticProcess theKaonMinusElasticProcess; + G4HadronElasticProcess theKaonZeroLElasticProcess; + G4HadronElasticProcess theKaonZeroSElasticProcess; + + G4PionPlusInelasticProcess thePionPlusInelastic; + G4PionMinusInelasticProcess thePionMinusInelastic; + G4KaonPlusInelasticProcess theKaonPlusInelastic; + G4KaonMinusInelasticProcess theKaonMinusInelastic; + G4KaonZeroLInelasticProcess theKaonZeroLInelastic; + G4KaonZeroSInelasticProcess theKaonZeroSInelastic; + + G4std::vector theModelCollections; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.hh new file mode 100644 index 0000000000..6acc31bda6 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.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. * +// ******************************************************************** +// +#ifndef G4PrecoNeutronBuilder_h +#define G4PrecoNeutronBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" + +#include "G4PreCompoundModel.hh" +#include "G4ExcitationHandler.hh" +#include "G4NeutronInelasticCrossSection.hh" + +class G4PrecoNeutronBuilder : public G4VNeutronBuilder +{ + public: + G4PrecoNeutronBuilder(); + virtual ~G4PrecoNeutronBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4HadronFissionProcess & aP); + virtual void Build(G4HadronCaptureProcess & aP); + virtual void Build(G4NeutronInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4PreCompoundModel * theModel; + G4ExcitationHandler theHandler; + G4NeutronInelasticCrossSection theXSec; + G4double theMin; + G4double theMax; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.hh new file mode 100644 index 0000000000..b196d74966 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4PrecoProtonBuilder_h +#define G4PrecoProtonBuilder_h + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VProtonBuilder.hh" + +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4ProtonInelasticCrossSection.hh" + +class G4PrecoProtonBuilder : public G4VProtonBuilder +{ + public: + G4PrecoProtonBuilder(); + virtual ~G4PrecoProtonBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4ProtonInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4ProtonInelasticCrossSection theXSec; + G4ExcitationHandler theHandler; + G4PreCompoundModel * theModel; + G4double theMin; + G4double theMax; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh new file mode 100644 index 0000000000..57a5dc63fe --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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 G4ProtonBuilder_h +#define G4ProtonBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VProtonBuilder.hh" + +#include "g4std/vector" + +class G4ProtonBuilder +{ + public: + G4ProtonBuilder(); + virtual ~G4ProtonBuilder(); + + public: + void Build(); + void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);} + + private: + G4HadronElasticProcess theProtonElasticProcess; + G4ProtonInelasticProcess theProtonInelastic; + + G4std::vector theModelCollections; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh new file mode 100644 index 0000000000..9e90ee4527 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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 G4QGSCNeutronBuilder_h +#define G4QGSCNeutronBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" + +#include "G4NeutronInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4StringChipsParticleLevelInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +class G4QGSCNeutronBuilder : public G4VNeutronBuilder +{ + public: + G4QGSCNeutronBuilder(); + virtual ~G4QGSCNeutronBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4HadronFissionProcess & aP); + virtual void Build(G4HadronCaptureProcess & aP); + virtual void Build(G4NeutronInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4TheoFSGenerator * theModel; + G4StringChipsParticleLevelInterface * theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + + G4NeutronInelasticCrossSection theXSec; + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh new file mode 100644 index 0000000000..24b33a31a1 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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 G4QGSCPiKBuilder_h +#define G4QGSCPiKBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VPiKBuilder.hh" + +#include "G4TheoFSGenerator.hh" +#include "G4StringChipsParticleLevelInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +class G4QGSCPiKBuilder : public G4VPiKBuilder +{ + public: + G4QGSCPiKBuilder(); + virtual ~G4QGSCPiKBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4PionPlusInelasticProcess & aP); + virtual void Build(G4PionMinusInelasticProcess & aP); + virtual void Build(G4KaonPlusInelasticProcess & aP); + virtual void Build(G4KaonMinusInelasticProcess & aP); + virtual void Build(G4KaonZeroLInelasticProcess & aP); + virtual void Build(G4KaonZeroSInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4TheoFSGenerator * theModel; + G4StringChipsParticleLevelInterface * theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh new file mode 100644 index 0000000000..1e31cd83d6 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh @@ -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. * +// ******************************************************************** +// +#ifndef G4QGSCProtonBuilder_h +#define G4QGSCProtonBuilder_h + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VProtonBuilder.hh" + +#include "G4NeutronInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4StringChipsParticleLevelInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +#include "G4ProtonInelasticCrossSection.hh" + +class G4QGSCProtonBuilder : public G4VProtonBuilder +{ + public: + G4QGSCProtonBuilder(); + virtual ~G4QGSCProtonBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4ProtonInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4ProtonInelasticCrossSection theXSec; + G4TheoFSGenerator * theModel; + G4StringChipsParticleLevelInterface * theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.hh new file mode 100644 index 0000000000..5f36947d4b --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.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. * +// ******************************************************************** +// +#ifndef G4QGSPNeutronBuilder_h +#define G4QGSPNeutronBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VNeutronBuilder.hh" + +#include "G4NeutronInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +class G4QGSPNeutronBuilder : public G4VNeutronBuilder +{ + public: + G4QGSPNeutronBuilder(); + virtual ~G4QGSPNeutronBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4HadronFissionProcess & aP); + virtual void Build(G4HadronCaptureProcess & aP); + virtual void Build(G4NeutronInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4TheoFSGenerator * theModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface * theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + + G4NeutronInelasticCrossSection theXSec; + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.hh new file mode 100644 index 0000000000..d4292c2e5e --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.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. * +// ******************************************************************** +// +#ifndef G4QGSPPiKBuilder_h +#define G4QGSPPiKBuilder_h 1 + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4VPiKBuilder.hh" + +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +class G4QGSPPiKBuilder : public G4VPiKBuilder +{ + public: + G4QGSPPiKBuilder(); + virtual ~G4QGSPPiKBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4PionPlusInelasticProcess & aP); + virtual void Build(G4PionMinusInelasticProcess & aP); + virtual void Build(G4KaonPlusInelasticProcess & aP); + virtual void Build(G4KaonMinusInelasticProcess & aP); + virtual void Build(G4KaonZeroLInelasticProcess & aP); + virtual void Build(G4KaonZeroSInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4TheoFSGenerator * theModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface * theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.hh new file mode 100644 index 0000000000..3e178cef93 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.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. * +// ******************************************************************** +// +#ifndef G4QGSPProtonBuilder_h +#define G4QGSPProtonBuilder_h + +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4VProtonBuilder.hh" + +#include "G4NeutronInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +#include "G4ProtonInelasticCrossSection.hh" + +class G4QGSPProtonBuilder : public G4VProtonBuilder +{ + public: + G4QGSPProtonBuilder(); + virtual ~G4QGSPProtonBuilder(); + + public: + virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4ProtonInelasticProcess & aP); + + void SetMinEnergy(G4double aM) {theMin = aM;} + + private: + G4ProtonInelasticCrossSection theXSec; + G4TheoFSGenerator * theModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface * theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + G4double theMin; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.hh new file mode 100644 index 0000000000..af1e894a45 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.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. * +// ******************************************************************** +// +#ifndef G4StoppingHadronBuilder_h +#define G4StoppingHadronBuilder_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/vector" + + +// At rest processes +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4AntiNeutronAnnihilationAtRest.hh" +#include "G4PionMinusAbsorptionAtRest.hh" +#include "G4KaonMinusAbsorption.hh" + +class G4StoppingHadronBuilder +{ + public: + G4StoppingHadronBuilder(); + virtual ~G4StoppingHadronBuilder(); + + public: + virtual void Build(); + + private: + + // Pi - + G4PionMinusAbsorptionAtRest thePionMinusAbsorption; + + // K - + G4KaonMinusAbsorption theKaonMinusAbsorption; + + // anti-proton + G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation; + + // anti-neutron + G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation; + +}; +// 2002 by J.P. Wellisch + + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh new file mode 100644 index 0000000000..7ee1913f04 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * 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 G4VNeutronBuilder_h +#define G4VNeutronBuilder_h + +class G4HadronElasticProcess; +class G4HadronFissionProcess; +class G4HadronCaptureProcess; +class G4NeutronInelasticProcess; + +class G4VNeutronBuilder +{ + public: + G4VNeutronBuilder() {} + virtual ~G4VNeutronBuilder() {} + virtual void Build(G4HadronElasticProcess & aP) = 0; + virtual void Build(G4HadronFissionProcess & aP) = 0; + virtual void Build(G4HadronCaptureProcess & aP) = 0; + virtual void Build(G4NeutronInelasticProcess & aP) = 0; +}; +// 2002 by J.P. Wellisch + +#endif diff --git a/examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh new file mode 100644 index 0000000000..da20d1bf5a --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh @@ -0,0 +1,49 @@ +// +// ******************************************************************** +// * 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 G4VPiKBuilder_h +#define G4VPiKBuilder_h + +#include "G4HadronElasticProcess.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4KaonPlusInelasticProcess.hh" +#include "G4KaonMinusInelasticProcess.hh" +#include "G4KaonZeroLInelasticProcess.hh" +#include "G4KaonZeroSInelasticProcess.hh" + +class G4VPiKBuilder +{ + public: + G4VPiKBuilder() {} + virtual ~G4VPiKBuilder() {} + virtual void Build(G4HadronElasticProcess & aP) = 0; + virtual void Build(G4PionPlusInelasticProcess & aP) = 0; + virtual void Build(G4PionMinusInelasticProcess & aP) = 0; + virtual void Build(G4KaonPlusInelasticProcess & aP) = 0; + virtual void Build(G4KaonMinusInelasticProcess & aP) = 0; + virtual void Build(G4KaonZeroLInelasticProcess & aP) = 0; + virtual void Build(G4KaonZeroSInelasticProcess & aP) = 0; +}; +// 2002 by J.P. Wellisch + +#endif diff --git a/examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh new file mode 100644 index 0000000000..362aa0a53f --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh @@ -0,0 +1,38 @@ +// +// ******************************************************************** +// * 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 G4VProtonBuilder_h +#define G4VProtonBuilder_h + +class G4ProtonInelasticProcess; + +class G4VProtonBuilder +{ + public: + G4VProtonBuilder() {} + virtual ~G4VProtonBuilder() {} + virtual void Build(G4HadronElasticProcess & aP) = 0; + virtual void Build(G4ProtonInelasticProcess & aP) = 0; +}; +// 2002 by J.P. Wellisch + +#endif diff --git a/examples/extended/biasing/B05/include/B05PhysicsList.hh b/examples/advanced/composite_calorimeter/include/GeneralPhysics.hh similarity index 68% rename from examples/extended/biasing/B05/include/B05PhysicsList.hh rename to examples/advanced/composite_calorimeter/include/GeneralPhysics.hh index 81b003526e..d670b57dfd 100644 --- a/examples/extended/biasing/B05/include/B05PhysicsList.hh +++ b/examples/advanced/composite_calorimeter/include/GeneralPhysics.hh @@ -20,47 +20,45 @@ // * statement, and all its terms. * // ******************************************************************** // -// -#ifndef B05PhysicsList_h -#define B05PhysicsList_h 1 +#ifndef GeneralPhysics_h +#define GeneralPhysics_h 1 -#include "G4VUserPhysicsList.hh" #include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" -// taken from Tst12PhysicsList +#include "G4Decay.hh" -class B05PhysicsList: public G4VUserPhysicsList +class GeneralPhysics : public G4VPhysicsConstructor { - public: - B05PhysicsList(); - virtual ~B05PhysicsList(); + public: + GeneralPhysics(const G4String& name = "general"); + virtual ~GeneralPhysics(); - protected: - // Construct particle and physics + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated 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(); - // - virtual void SetCuts(); - protected: - // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); - // - void ConstructAllBosons(); - void ConstructAllLeptons(); - void ConstructAllMesons(); - void ConstructAllBaryons(); - void ConstructAllIons(); - void ConstructAllShortLiveds(); - + G4Decay fDecayProcess; }; +// 2002 by J.P. Wellisch + #endif + + + + + diff --git a/examples/advanced/composite_calorimeter/include/HadronPhysicsLHEP.hh b/examples/advanced/composite_calorimeter/include/HadronPhysicsLHEP.hh new file mode 100644 index 0000000000..0a283420bd --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/HadronPhysicsLHEP.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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 HadronPhysicsLHEP_h +#define HadronPhysicsLHEP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4LHEPPiKBuilder.hh" +#include "G4PiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" + +class HadronPhysicsLHEP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsLHEP(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + + G4PiKBuilder thePiK; + G4LHEPPiKBuilder theLHEPPiK; + + G4ProtonBuilder thePro; + G4LHEPProtonBuilder theLHEPPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSC.hh b/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSC.hh new file mode 100644 index 0000000000..bfa93b462f --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSC.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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 HadronPhysicsQGSC_h +#define HadronPhysicsQGSC_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSCPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSCProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSCNeutronBuilder.hh" + +class HadronPhysicsQGSC : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSC(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSC(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSCNeutronBuilder theQGSCNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSCPiKBuilder theQGSCPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSCProtonBuilder theQGSCPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSP.hh b/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSP.hh new file mode 100644 index 0000000000..3c1582be13 --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSP.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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 HadronPhysicsQGSP_h +#define HadronPhysicsQGSP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSPNeutronBuilder.hh" + +class HadronPhysicsQGSP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSP(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSPNeutronBuilder theQGSPNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSPPiKBuilder theQGSPPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSPProtonBuilder theQGSPPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/IonPhysics.hh b/examples/advanced/composite_calorimeter/include/IonPhysics.hh new file mode 100644 index 0000000000..b611739e0f --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/IonPhysics.hh @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +//======================== +// taken from example N04 of G4 distribution +//======================== +#ifndef IonPhysics_h +#define IonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4LElastic.hh" + +#include "G4DeuteronInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" + +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" + +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" + +class IonPhysics : public G4VPhysicsConstructor +{ + public: + IonPhysics(const G4String& name="ion"); + virtual ~IonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Elastic Process + G4LElastic* theElasticModel; + + // Generic Ion physics + G4HadronElasticProcess theIonElasticProcess; + G4MultipleScattering fIonMultipleScattering; + G4hIonisation fIonIonisation; + + // Deuteron physics + G4HadronElasticProcess theDElasticProcess; + G4MultipleScattering fDeuteronMultipleScattering; + G4hIonisation fDeuteronIonisation; + G4DeuteronInelasticProcess fDeuteronProcess; + G4LEDeuteronInelastic* fDeuteronModel; + + // Triton physics + G4HadronElasticProcess theTElasticProcess; + G4MultipleScattering fTritonMultipleScattering; + G4hIonisation fTritonIonisation; + G4TritonInelasticProcess fTritonProcess; + G4LETritonInelastic* fTritonModel; + + // Alpha physics + G4HadronElasticProcess theAElasticProcess; + G4MultipleScattering fAlphaMultipleScattering; + G4hIonisation fAlphaIonisation; + G4AlphaInelasticProcess fAlphaProcess; + G4LEAlphaInelastic* fAlphaModel; + + // He3 physics + G4HadronElasticProcess theHe3ElasticProcess; + G4MultipleScattering fHe3MultipleScattering; + G4hIonisation fHe3Ionisation; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/MuonPhysics.hh b/examples/advanced/composite_calorimeter/include/MuonPhysics.hh new file mode 100644 index 0000000000..c137b0875d --- /dev/null +++ b/examples/advanced/composite_calorimeter/include/MuonPhysics.hh @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * 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 MuonPhysics_h +#define MuonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4MultipleScattering.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuIonisation.hh" +#include "G4hIonisation.hh" + +#include "G4MuonMinusCaptureAtRest.hh" + +class MuonPhysics : public G4VPhysicsConstructor +{ + public: + MuonPhysics(const G4String& name="muon"); + virtual ~MuonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Muon physics + G4MultipleScattering fMuPlusMultipleScattering; + G4MuBremsstrahlung fMuPlusBremsstrahlung ; + G4MuPairProduction fMuPlusPairProduction; + G4MuIonisation fMuPlusIonisation; + + G4MultipleScattering fMuMinusMultipleScattering; + G4MuBremsstrahlung fMuMinusBremsstrahlung ; + G4MuPairProduction fMuMinusPairProduction; + G4MuIonisation fMuMinusIonisation; + + G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; + + // Tau physics + G4MultipleScattering fTauPlusMultipleScattering; + G4hIonisation fTauPlusIonisation; + + G4MultipleScattering fTauMinusMultipleScattering; + G4hIonisation fTauMinusIonisation; + +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/src/CCalAMaterial.cc b/examples/advanced/composite_calorimeter/src/CCalAMaterial.cc new file mode 100644 index 0000000000..e2a516521e --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalAMaterial.cc @@ -0,0 +1,126 @@ +// +// ******************************************************************** +// * 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: CCalAMaterial.cc +// Description: Specialised class to store information to make G4Material +// from atomic proportion +/////////////////////////////////////////////////////////////////////////////// +#include "CCalAMaterial.hh" + +CCalAMaterial::CCalAMaterial(G4String mat, G4double dens, int nconst, + CCalAMaterial** constituents, G4double* weights) { + name=mat; + nElem=0; + int i=0; + for (i=0; iNElements()); + + theElements = new G4String[nElem]; + theWeights = new double[nElem]; + + double factor; + int nelem=0; + for (i=0; iAeff(); + for (int j=0; jNElements(); j++) { + theElements[nelem] = constituents[i]->Element(j); + theWeights[nelem] = constituents[i]->Weight(j)* weights[i] * factor; + nelem++; + } + } + + if (dens>0) + density=dens; + else //Let's compute density + computeDensity(nconst,(CCalMaterial**)constituents, weights, FTVolume); + + computeAeff(nconst, constituents, weights); + closeMaterial(); +} + +CCalAMaterial::CCalAMaterial(G4String elemat, double Aeff, double dens) { + name=elemat; + density=dens; + nElem=1; + theElements = new G4String[nElem]; + theWeights = new double[nElem]; + + theElements[0] = elemat; + theWeights[0] = 1; + + aEff=Aeff; +} + +CCalAMaterial::~CCalAMaterial() { + //The base class destructor is called? +} + +CCalAMaterial::CCalAMaterial(const CCalAMaterial& mat){ + name = mat.name; + density = mat.density; + nElem = mat.nElem; + theElements = new G4String[nElem]; + theWeights = new double[nElem]; + for (int i=0; iAeff(); +} + +G4std::ostream& operator<<(G4std::ostream& os, const CCalAMaterial& mat) { + os << mat.name << G4endl; + os << "Density= " << mat.density << " g/cm3. Number of Elements: " + << mat.nElem + << ". Aeff= " << mat.aEff << G4endl; + for (int i=0; i + +//#define debug + +CCalAnalysis* CCalAnalysis::instance = 0; + +CCalAnalysis::CCalAnalysis() :analysisFactory(0), tree(0), tuple(0), energy(0) { + + int i=0; + for (i=0; i<28; i++) { + hcalE[i] = 0; + } + for (i=0; i<70; i++) { + lateralProfile[i] = 0; + } + for (i=0; i<49; i++) {ecalE[i] = 0;} + for (i=0; icreateTreeFactory(); + if (treeFactory) { + // Tree in memory : + // Create a "tree" associated to an hbook + const char* opFileptr = getenv("CCAL_FILENAME"); + G4String opFilestr = "ccal.his"; + if (opFileptr) opFilestr = opFileptr; + cout << "********************************************" << endl + << "* o/p file on " << opFilestr << endl + << "********************************************" << endl << endl; + bool readOnly = false; // we want to write. + bool createNew = true; // create file if it doesn't exist. + tree = treeFactory->create(opFilestr, "hbook", readOnly,createNew); + if (tree) { + // Get a tuple factory : + AIDA::ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree); + if (tupleFactory) { + // Create a tuple : + G4String tag2, tag = "float"; + for (i=0; i<28; i++) { + tag2 = tag + " hcal" + i + ","; + tag = tag2; + } + for (i=0; i<49; i++) { + tag2 = tag + " ecal" + i + ","; + tag = tag2; + } + tag2 = tag + " ELAB, XPOS, YPOS, ZPOS"; + tag = tag2 + ", EDEP, EDEC, EDHC"; + + //tuple = tupleFactory->create("1","Event info", tag); // Column wise (default) + tuple = tupleFactory->create("1","Event info", tag, "--preferRWN"); // Row wise + + assert(tuple); + + delete tupleFactory; + } + + AIDA::IHistogramFactory* histoFactory = + analysisFactory->createHistogramFactory(*tree); + if (histoFactory) { + // Create histos : + char id[4], ntupletag[50]; + //Energy deposit in Hcal layers + for (int i = 0; i<28; i++) { + sprintf(id, "%d",i+100); + sprintf(ntupletag, "Energy Deposit in Hcal Layer%d in GeV",i); + hcalE[i] = histoFactory->createHistogram1D(id, ntupletag, 100, 0., 1.0); + } + // Energy deposits in Ecal towers + for (i = 0; i<49; i++) { + sprintf(id, "%d",i+200); + sprintf(ntupletag, "Energy Deposit in Ecal Tower%d in GeV",i); + ecalE[i] = histoFactory->createHistogram1D(id, ntupletag, 100, 0., 100.0); + } + // Total energy deposit + energy = histoFactory->createHistogram1D("4000", "Total energy deposited in GeV", + 100, 0., 100.0); + + // Time slices + for (i=0; icreateHistogram1D(id, ntupletag, 100, 0., 100.0); + } + + // Profile of lateral energy deposit in Hcal + for (i = 0; i<70; i++) { + sprintf(id, "%d",i+400); + sprintf(ntupletag, "Lateral energy profile at %d cm in GeV",i); + lateralProfile[i] = histoFactory->createHistogram1D(id, ntupletag, 100, 0., 10.0); + } + + delete histoFactory; + } + + } + delete treeFactory; // Will not delete the ITree. + } + + } + +} + + +CCalAnalysis::~CCalAnalysis() { + Finish(); +} + + +void CCalAnalysis::Init() { +} + +void CCalAnalysis::Finish() { + if (tree) { + delete tree; + tree = 0; + } + if (analysisFactory) { + delete analysisFactory; // Will delete tree and histos. + analysisFactory = 0; + } +} + +CCalAnalysis* CCalAnalysis::getInstance() { + if (instance == 0) instance = new CCalAnalysis(); + return instance; +} + + +// This function fill the 1d histogram of the energies in HCal layers +void CCalAnalysis::InsertEnergyHcal(float* v) { + double totalFilledEnergyHcal = 0.0; + for (int i=0; i<28; i++) { + if (hcalE[i]) { + double x = v[i]; + hcalE[i]->fill(x); +#ifdef debug + cout << "Fill Hcal histo " << i << " with " << x << endl; + totalFilledEnergyHcal += x; +#endif + } + } +#ifdef debug + cout << "\t total filled Energy Hcal histo " << totalFilledEnergyHcal << endl; +#endif +} + + +// This function fill the 1d histogram of the energies in ECal layers +void CCalAnalysis::InsertEnergyEcal(float* v) { + double totalFilledEnergyEcal = 0.0; + for (int i=0; i<49; i++) { + if (ecalE[i]) { + double x = v[i]; + ecalE[i]->fill(x); +#ifdef debug + cout << "Fill Ecal histo " << i << " with " << x << endl; + totalFilledEnergyEcal += x; +#endif + } + } +#ifdef debug + cout << "\t total filled Energy Ecal histo " << totalFilledEnergyEcal << endl; +#endif +} + + +// This function fill the 1d histogram of the lateral profile +void CCalAnalysis::InsertLateralProfile(float* v) { + double totalFilledProfileHcal = 0.0; + for (int i=0; i<70; i++) { + if (lateralProfile[i]) { + double x = v[i]; + lateralProfile[i]->fill(x); +#ifdef debug + cout << "Fill Profile Hcal histo " << i << " with " << x << endl; + totalFilledProfileHcal += x; +#endif + } + } +#ifdef debug + cout << "\t total filled Profile Hcal histo " << totalFilledProfileHcal << endl; +#endif +} + + +// This function fill the 1d histogram of the energy +void CCalAnalysis::InsertEnergy(float v) { + if (energy) { + double x = v; + energy->fill(x); +#ifdef debug + cout << "Fill Total energy Hcal histo with " << x << endl; +#endif + } +} + + +// This function fill the 1d histograms of time profiles +void CCalAnalysis::InsertTime(float* v) { + double totalFilledTimeProfile = 0.0; + for (int j=0; jfill(x); +#ifdef debug + cout << "Fill Time profile histo " << j << " with " << x << endl; + totalFilledTimeProfile += x; +#endif + } + } +#ifdef debug + cout << "\t total filled Time profile histo " << totalFilledTimeProfile << endl; +#endif +} + + +void CCalAnalysis::setNtuple(float* hcalE, float* ecalE, float elab, + float x, float y, float z, float edep, + float edec, float edhc) { + + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("1") ); + if (ntuple) { + char tag[10]; + int i=0; + for (i=0; i<28; i++) { + sprintf (tag, "hcal%d", i); + ntuple->fill(tuple->findColumn(tag),hcalE[i]); + } + for (i=0; i<49; i++) { + sprintf (tag, "ecal%d", i); + ntuple->fill(tuple->findColumn(tag),ecalE[i]); + } + ntuple->fill(tuple->findColumn("ELAB"),elab); + ntuple->fill(tuple->findColumn("XPOS"),x); + ntuple->fill(tuple->findColumn("YPOS"),y); + ntuple->fill(tuple->findColumn("ZPOS"),z); + ntuple->fill(tuple->findColumn("EDEP"),edep); + ntuple->fill(tuple->findColumn("EDEC"),edec); + ntuple->fill(tuple->findColumn("EDHC"),edhc); + ntuple->addRow(); + } +} + + +/* + This member reset the histograms and it is called at the begin + of each run; here we put the inizialization so that the histograms have + always the right dimensions depending from the detector geometry +*/ +void CCalAnalysis::BeginOfRun(G4int n) { + + int i=0; + /* + if (energy) energy->reset(); + for (i=0; i<28; i++) { + if (hcalE[i]) hcalE[i]->reset(); + } + for (i=0; i<70; i++) { + if (lateralProfile[i]) lateralProfile[i]->reset(); + } + for (i=0; i<49; i++) { + if (ecalE[i]) ecalE[i]->reset(); + } + */ + for (i=0; ireset(); + } + +} + + +// This member is called at the end of each run +void CCalAnalysis::EndOfRun(G4int n) { + + if (tree) { + tree->commit(); + tree->close(); + } + +} + + +// This member is called at the end of every event +void CCalAnalysis::EndOfEvent(G4int flag) { + +#ifdef debug + cout << " Check if empty histograms " << endl; + int i=0; + if ( energy ) { + if ( energy->allEntries() == 0 ) { + cout << "EMPTY HISTO energy " << endl; + } else if ( energy->allEntries() == energy->extraEntries() ) { + cout << "EXTRA entries only HISTO energy " << endl; + } + } else { + cout << "UNDEFINED HISTO energy " << endl; + } + for (i=0; i<28; i++) { + if ( hcalE[i] ) { + if ( hcalE[i]->allEntries() == 0 ) { + cout << "EMPTY HISTO hcal " << i << endl; + } else if ( hcalE[i]->allEntries() == hcalE[i]->extraEntries() ) { + cout << "EXTRA entries only HISTO hcal " << i << endl; + } + } else { + cout << "UNDEFINED HISTO hcal " << i << endl; + } + } + for (i=0; i<70; i++) { + if ( lateralProfile[i] ) { + if ( lateralProfile[i]->allEntries() == 0 ) { + cout << "EMPTY HISTO lateralProfile " << i << endl; + } else if ( lateralProfile[i]->allEntries() == + lateralProfile[i]->extraEntries() ) { + cout << "EXTRA entries only HISTO lateralProfile " << i << endl; + } + } else { + cout << "UNDEFINED HISTO lateralProfile " << i << endl; + } + } + for (i=0; i<49; i++) { + if ( ecalE[i] ) { + if ( ecalE[i]->allEntries() == 0 ) { + cout << "EMPTY HISTO ecalE " << i << endl; + } else if ( ecalE[i]->allEntries() == ecalE[i]->extraEntries() ) { + cout << "EXTRA entries only HISTO ecal " << i << endl; + } + } else { + cout << "UNDEFINED HISTO hcal " << i << endl; + } + } + for (i=0; iallEntries() == 0 ) { + cout << "EMPTY HISTO timeHist " << i << endl; + } else if ( timeHist[i]->allEntries() == timeHist[i]->extraEntries() ) { + cout << "EXTRA entries only HISTO timeHist " << i << endl; + } + } else { + cout << "UNDEFINED HISTO timeHist " << i << endl; + } + } +#endif + + // The plotter is updated only if there is some + // hits in the event + if (!flag) return; +} + +#endif diff --git a/examples/advanced/composite_calorimeter/src/CCalDetector.cc b/examples/advanced/composite_calorimeter/src/CCalDetector.cc new file mode 100644 index 0000000000..2ef2498fe7 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalDetector.cc @@ -0,0 +1,122 @@ +// +// ******************************************************************** +// * 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: CCalDetector.cc +// Description: CCalDetector is a detector factory class +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalDetector.hh" + +#include "g4std/fstream" +#include "CCalGeometryConfiguration.hh" +#include "CCalutils.hh" + +//Comment/Uncomment to hide/show some debug information +//#define debug +//Comment/Uncomment to hide/show some more debug information +//#define ddebug + +G4String CCalDetector::pathName = getenv("CCAL_GEOMPATH"); + +CCalDetector::CCalDetector(const G4String &name): + detectorName(name) { +#ifdef ddebug + cout << "CCAL_GEOMPATH=" << pathName << endl; +#endif + fileName = + CCalGeometryConfiguration::getInstance()->getFileName(name); + constructFlag = + CCalGeometryConfiguration::getInstance()->getConstructFlag(name); +} + +CCalDetector::~CCalDetector() { + CCalDetectorTable::iterator ite; + for( ite = theDetectorsInside.begin(); ite != theDetectorsInside.end(); ite++ ) { + delete *ite; + } + theDetectorsInside.clear(); +} + +void CCalDetector::construct() { +#ifdef debug + cout << "===> Entering CCalDetector::construct() for " << CCalDetectorName << endl; +#endif + int isgood = 0; + + //If constructFlag is unset we don't go into all this bussines + if (constructFlag!=0) { + + if (!isgood) + isgood = buildFromFile(); + + if (isgood) { + constructDaughters(); + for (unsigned int i=0; i < theDetectorsInside.size(); i++) { + theDetectorsInside[i]->constructHierarchy(); + } + } + } +#ifdef debug + cout << "===> Exiting CCalDetector::construct() for " << detectorName + << endl; +#endif +} + + +void CCalDetector::addDetector(CCalDetector* det) { + theDetectorsInside.push_back(det); +} + + + +//======================================================================== +//Protected and private methods. +int CCalDetector::buildFromFile() { + return readFile(); +} + + + +//======================================================================== +//Global operators +G4std::ostream& operator<<(G4std::ostream& os, const CCalDetector& det) { + os << "Detector \"" << det.detectorName + << "\" read from " << det.fileName << "." << G4endl; + + os << "With " << det.theDetectorsInside.size() + << " detectors inside { "<< G4endl; + + for (unsigned int i=0; iGetConstantFieldvalue(); + if (field == 0) { + ccalField = NULL; + G4cout << "***************************" << G4endl + << "* *" << G4endl + << "* Magnetic Field is off *" << G4endl + << "* *" << G4endl + << "***************************" << G4endl; + } else { + G4cout << "***************************" << G4endl + << "* *" << G4endl + << "* Magnetic Field is on *" << G4endl + << "* *" << G4endl + << "***************************" << G4endl << G4endl + << " Field Value " << tab << field << G4endl; + } + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager()->GetFieldManager(); + fieldMgr->SetDetectorField(ccalField); + G4Mag_UsualEqRhs *fEquation = new G4Mag_UsualEqRhs(ccalField); + G4MagIntegratorStepper *pStepper = new G4SimpleRunge (fEquation); + G4ChordFinder *pChordFinder = new G4ChordFinder(ccalField, + 1.0e-2*mm, pStepper); + fieldMgr->SetChordFinder(pChordFinder); + fieldIsInitialized = true; + } + +#ifdef debug + G4cout << tab << "CCalDetectorConstruction: Starting timer!!!" + << G4endl; + G4Timer timer; + timer.Start(); +#endif + + //HCAL Test Beam 96 + CCalG4Hall* testBeamHCal96 = new CCalG4Hall("HcalTB96"); + testBeamHCal96->constructHierarchy(); +#ifdef debug + timer.Stop(); + G4cout << tab << "CCalDetectorConstruction: Total time to " + << "construct the geometry: " << timer << G4endl; +#endif //debug + G4VPhysicalVolume* volume = testBeamHCal96->PhysicalVolume(0); + + //Addsenistive detector types + bool result; + result = CCalSensAssign::getInstance()->addCaloSD("HadronCalorimeter", + new CCalHcalOrganization); + result = CCalSensAssign::getInstance()->addCaloSD("CrystalMatrix", + new CCalEcalOrganization); + + //Assign the sensitive detectors + result = CCalSensAssign::getInstance()->assign(); + + //Create the stacking manager required by Calorimeter + result = CCalSensAssign::getInstance()->stackingAction(); + + return volume; + +} diff --git a/examples/advanced/composite_calorimeter/src/CCalEcal.cc b/examples/advanced/composite_calorimeter/src/CCalEcal.cc new file mode 100644 index 0000000000..f09d9449f5 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalEcal.cc @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * 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: CCalEcal.cc +// Description: CCalEcal Geometry factory class for crystal matrix +/////////////////////////////////////////////////////////////////////////////// +#include "CCalEcal.hh" + +#include "g4std/fstream" +#include "CCalutils.hh" + +//#define debug + +CCalEcal::~CCalEcal() {} + +int CCalEcal::readFile() { + /////////////////////////////////////////////////////////////// + //Let's open the file + G4cout << " ==> Opening file " << File() << " to read elements..." + << G4endl; + + G4std::ifstream is; + bool ok = openGeomFile(is, pathName, File()); + if (!ok) + return 0; + + // Find *DO CrystalMatrix + findDO(is, G4String("CrystalMatrix")); + + //Let's read overall box dimensions and positions + readName(is,genMat); + is >> widBox >> lengBox >> xpos >> ypos >> zpos >> thetaX >> phiX + >> thetaY >> phiY >> thetaZ >> phiZ >> jump; +#ifdef debug + G4cout << tab << "General material: " << genMat << "\tBox dimensions " + << widBox << ", " << lengBox << G4endl; + G4cout << tab << "Positioned at (" << xpos << ", " << ypos << ", " << zpos + << ") with rotation (" << thetaX << ", " << phiX << ", " << thetaY + << ", " << phiY << ", " << thetaZ << ", " << phiZ << ")" << G4endl; +#endif + + //Then the layer positions + int i=0; + readName(is,layMat); + is >> layNum >> layRadius >> layAngle >> lengFront; + for (i=0; i<5; i++) + is >> layPar[i]; +#ifdef debug + G4cout << tab << "Layer material: " << layMat << " Number " << layNum + << " Radius " << layRadius << " Angle " << layAngle/deg + << " front dist " << lengFront << " Parameters "; + for (i=0; i<5; i++) + G4cout << layPar[i] << " "; + G4cout << G4endl; +#endif + + //Then the crystal positions + readName(is,crystMat); + is >> crystNum >> crystLength >> crystTol; + for (i=0; i<5; i++) + is >> crystPar[i]; +#ifdef debug + G4cout << tab << "Crystal material: " << crystMat << " Number " << crystNum + << " Length " << crystLength << " Tolerance " << crystTol + << " Parameters "; + for (i=0; i<5; i++) + G4cout << crystPar[i] << " "; + G4cout << G4endl; +#endif + + //Then the support material + readName(is,suppMat); + is >> dxSupp >> dySupp >> dzSupp >> distSupp >> jump; +#ifdef debug + G4cout << tab << "Support material: " << suppMat << " Dimensions " << dxSupp + << ", " << dySupp << ", " << dzSupp << " Distance " << distSupp << G4endl; +#endif + + /////////////////////////////////////////////////////////////// + // Close the file + G4cout << " ==> Closing file " << File() << G4endl; + is.close(); + + return 1; + +} + +void CCalEcal::constructDaughters() {} diff --git a/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc b/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc new file mode 100644 index 0000000000..79af7b9e33 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: CCalEcalOrganization.cc +// Description: Defines numbering schema for the Electromagnetic Calorimeter +/////////////////////////////////////////////////////////////////////////////// +#include "CCalEcalOrganization.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "SystemOfUnits.h" + +CCalEcalOrganization::~CCalEcalOrganization(){ + G4cout << " Deleting CCalEcalOrganization" << G4endl; +} + + +unsigned int CCalEcalOrganization::GetUnitID(const G4Step* aStep) const { + + G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); + int idx=0, idl=0, idn=0; + if (pv > 0) { + idx = pv->GetCopyNo() - 1; + pv = pv->GetMother(); + if (pv > 0) { + idl = pv->GetCopyNo() - 1; + pv = pv->GetMother(); + if (pv > 0) + idn = pv->GetCopyNo(); + } + } + unsigned int idunit = idn*4096 + idl*64 + idx; + + return idunit; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc b/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc new file mode 100644 index 0000000000..9dcd37a71c --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc @@ -0,0 +1,248 @@ +// +// ******************************************************************** +// * 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: CCalEndOfEventAction.cc +// Description: CCalEndOfEventAction provides User actions at end of event +/////////////////////////////////////////////////////////////////////////////// +#include "CCalEndOfEventAction.hh" +#include "CCaloSD.hh" +#include "CCalPrimaryGeneratorAction.hh" +#include "CCalG4HitCollection.hh" +#include "CCalG4Hit.hh" +#include "CCaloOrganization.hh" +#include "CCalSDList.hh" +#include "CCalSteppingAction.hh" + +#include "G4ios.hh" +#include "G4Event.hh" +#include "G4SDManager.hh" +#include "G4HCofThisEvent.hh" +#include "g4std/iostream" +#include "g4std/map" +#include "G4RunManager.hh" +#include "G4UserSteppingAction.hh" + +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" + +#ifdef G4ANALYSIS_USE +#include "CCalAnalysis.hh" +#endif + +//#define debug +//#define ddebug + + +CCalEndOfEventAction::CCalEndOfEventAction (CCalPrimaryGeneratorAction* pg): + isInitialized(false),SDnames(0),numberOfSD(0) { + + primaryGenerator = pg; +#ifdef debug + G4cout << "Instantiate CCalEndOfEventAction" << G4endl; +#endif + + G4cout << "Now Instantiate stepping action" << G4endl; + instanciateSteppingAction(); + + G4cout << "Get Calorimter organisation" << G4endl; + theOrg = new CCaloOrganization; + G4cout << "end of instantiation of EndofEventAction" << G4endl; +} + + +CCalEndOfEventAction::~CCalEndOfEventAction() { + + if (theOrg) + delete theOrg; + if (SDnames) + delete SDnames; + G4cout << "Deleting CCalEndOfEventAction" << G4endl; +} + + +void CCalEndOfEventAction::initialize() { + + isInitialized = true; + numberOfSD = CCalSDList::getInstance()->getNumberOfCaloSD(); +#ifdef debug + G4cout << "CCalEndOfEventAction look for " << numberOfSD + << " calorimeter-like SD" << G4endl; +#endif + if (numberOfSD > 0) + SDnames = new nameType[numberOfSD]; + for (int i=0; igetCaloSDName(i)); +#ifdef debug + G4cout << "CCalEndOfEventAction: found SD " << i << " name " + << SDnames[i] << G4endl; +#endif + } +} + + +void CCalEndOfEventAction::StartOfEventAction(const G4Event* evt) { + G4cout << "\n---> Begin of event: " << evt->GetEventID() << G4endl; +} + + +void CCalEndOfEventAction::EndOfEventAction(const G4Event* evt){ + +#ifdef debug + G4cout << G4endl << "=== Begin of EndOfEventAction === " << G4endl; +#endif + + if (!isInitialized) initialize(); + + theSteppingAction->endOfEvent(); + + // + // Look for the Hit Collection + // + G4HCofThisEvent* allHC = evt->GetHCofThisEvent(); + if (allHC == 0) { +#ifdef debug + G4cout << "CCalEndOfEventAction: No Hit Collection in this event" + << G4endl; +#endif + return; + } + + // + // hits info + // + + //Now make summary + float hcalE[28], ecalE[49], fullE=0.; + int i = 0; + for (i = 0; i < 28; i++) {hcalE[i]=0.;} + for (i = 0; i < 49; i++) {ecalE[i]=0.;} + + float* edep = new float[numberOfSD]; + int nhit=0; + for (i = 0; i < numberOfSD; i++){ + + // + // Look for the Hit Collection + // + edep[i] = 0; + int caloHCid = G4SDManager::GetSDMpointer()->GetCollectionID(SDnames[i]); + + CCalG4HitCollection* theHC = + (CCalG4HitCollection*) allHC->GetHC(caloHCid); + if (theHC != 0) { + + G4int nentries = theHC->entries(); +#ifdef debug + G4cout << " There are " << nentries << " hits in " << SDnames[i] << " :" + << G4endl; +#endif + + if (nentries > 0) { + + int j; + for (j=0; jgetEnergyDeposit(); + int unitID = aHit->getUnitID(); + int id=-1; + if (unitID > 0 && unitID < 29) { + id = unitID - 1; // HCal + hcalE[id] += En/GeV; + } else { + int i0 = unitID/4096; + int i1 = (unitID/64)%64; + int i2 = unitID%64; + if (i0 == 1 && i1 < 8 && i2 < 8) { + id = i1*7 + i2; // ECal + ecalE[id] += En/GeV; + } + } +#ifdef ddebug + G4cout << "Seeing Energy = " << En/MeV << " MeV in Unit " << unitID + << " " << id << G4endl; +#endif + fullE += En/GeV; + edep[i] += En/GeV; + nhit++; + } +#ifdef ddebug + G4cout << " ===> Total Energy Deposit in this Calorimeter = " + << edep[i]*1000.0 << " MeV " << G4endl; +#endif + } + } + } + + G4ThreeVector pos = primaryGenerator->GetParticlePosition(); + float ener = primaryGenerator->GetParticleEnergy()/GeV; + float x = pos.x()/mm; + float y = pos.y()/mm; + float z = pos.z()/mm; + float edec = edep[1]; + float edhc = edep[0]; + delete[] edep; + +#ifdef G4ANALYSIS_USE + CCalAnalysis* analysis = CCalAnalysis::getInstance(); + analysis->InsertEnergy(fullE); + analysis->InsertEnergyHcal(hcalE); + analysis->InsertEnergyEcal(ecalE); + analysis->setNtuple(hcalE, ecalE, ener, x, y, z, fullE, edec, edhc); + analysis->EndOfEvent(nhit); +#endif + + //A.R. Add to visualize tracks + // extract the trajectories and draw them + if (G4VVisManager::GetConcreteInstance()) { + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + for (G4int i=0; iGetTrajectoryContainer()))[i]); + trj->DrawTrajectory(50); // Draw all tracks + // if ( trj->GetCharge() != 0. ) trj->DrawTrajectory(50); // Draw only charged tracks + // if ( trj->GetCharge() == 0. ) trj->DrawTrajectory(50); // Draw only neutral tracks + } + } + +} + + +void CCalEndOfEventAction::instanciateSteppingAction(){ + + G4UserSteppingAction* theUA = const_cast(G4RunManager::GetRunManager()->GetUserSteppingAction()); + + if (theUA == 0) { +#ifdef debug + G4cout << " CCalEndOfEventAction::instanciateSteppingAction creates" + << " CCalSteppingAction" << G4endl; +#endif + theSteppingAction = new CCalSteppingAction; + G4RunManager::GetRunManager()->SetUserAction(theSteppingAction); + } + +} diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Able.cc b/examples/advanced/composite_calorimeter/src/CCalG4Able.cc new file mode 100644 index 0000000000..35df1e3d76 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalG4Able.cc @@ -0,0 +1,148 @@ +// +// ******************************************************************** +// * 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: CCalG4Able.cc +// Description: CCalG4Able is the base class of a Geant4 geometry factory +/////////////////////////////////////////////////////////////////////////////// +//Comment/Uncomment next line to unset/set debug information printing +//#define debug +//#define ddebug + +#ifdef ddebug + #include "G4Timer.hh" +#endif +#ifdef debug + #include "CCalutils.hh" +#endif + +#include "CCalGeometryConfiguration.hh" +#include "CCalG4Able.hh" +#include "CCalSensitiveConfiguration.hh" + +#include "G4Color.hh" +#include "G4VisAttributes.hh" + + +CCalG4Able::CCalG4Able(G4String name): + detPhysicalVolume(0), g4ableName(name), sensitivity(false), + visProperties(CCalSensitiveConfiguration::getInstance()->getFileName(name)+".vis") { + //Initialize g4VisAtt pointers + for (int i=0; igetSensitiveFlag(name); +} + +G4VPhysicalVolume* CCalG4Able::PhysicalVolume(G4VPhysicalVolume* pv) { + //If detPhysicalVolume is not (nil) the volume has already been built + //so return it. In other case, construct it and its daughters, then + //check for sensitivity and build it if set. +#ifdef ddebug + G4Timer timer; + timer.Start(); +#endif + if (CCalGeometryConfiguration::getInstance()->getConstructFlag(G4Name())!=0){ + if (!detPhysicalVolume) { + detPhysicalVolume = constructIn(pv); + for (unsigned int i = 0; i < theG4DetectorsInside.size(); i++) { + theG4DetectorsInside[i]->PhysicalVolume(detPhysicalVolume); + } + if (sensitivity) { +#ifdef debug + G4cout << "==> Making " << detPhysicalVolume->GetName() << " sensitive..." + << G4endl; +#endif + constructSensitive(); + } //if sensitivity + } //if sensitive + } //if construct + else { + G4cout << "NOTE: You decided to skip the construction of " + << G4Name() << G4endl; + } +#ifdef ddebug + timer.Stop(); + G4cout << tab << "CCalG4Able::PhysicalVolume(...) --> time spent: " + << timer << G4endl; +#endif + return detPhysicalVolume; +} + +void CCalG4Able::AddCCalG4Able(CCalG4Able* det) { + theG4DetectorsInside.push_back(det); +} + +void CCalG4Able::setVisType(CCalVisualisable::visType vt, G4LogicalVolume* log) { + if (!g4VisAtt[vt]) { +#ifdef debug + G4cout << "CCalG4Able::setVisType: Constructing G4VisAttributes for " + << log->GetName() << " as " << vt << G4endl; +#endif + G4Color col(visProperties.colorRed(vt), + visProperties.colorGreen(vt), + visProperties.colorBlue(vt)); + G4bool wf = visProperties.isWireFrame(vt); + G4bool visible = visProperties.isVisible(vt); + +#ifdef debug + G4cout << "Color: " + << visProperties.colorRed(vt) << ", " + << visProperties.colorGreen(vt) << ", " + << visProperties.colorBlue(vt) << tab + << "Wireframe: " << wf << tab + << "Visible: " << visible << G4endl; +#endif + g4VisAtt[vt] = new G4VisAttributes(col); + g4VisAtt[vt]->SetForceWireframe(wf); + g4VisAtt[vt]->SetVisibility(visible); + } + log->SetVisAttributes(g4VisAtt[vt]); +} + + + +G4bool CCalG4Able::operator==(const CCalG4Able& right) const { + return detPhysicalVolume==right.detPhysicalVolume; +} + + + +//======================================================================== +//Protected and private methods. + +//======================================================================== +//Global operators +G4std::ostream& operator<<(G4std::ostream& os, const CCalG4Able& det) { + if (det.detPhysicalVolume) + os << "Physical volume already constructed." << G4endl; + else + os << "Physical volume still not constructed." << G4endl; + + if (det.isSensitive()) + os << "and it is Sensitive" << G4endl; + else + os << "and it is not Sensitive" << G4endl; + + return os; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc b/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc new file mode 100644 index 0000000000..d8985383e0 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalG4Ecal.cc @@ -0,0 +1,291 @@ +// +// ******************************************************************** +// * 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: CCalG4Ecal.cc +// Description: CCalG4Ecal Factory class to construct the G4 geometry of the +// electromagnetic calorimeter +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalG4Ecal.hh" + +#include "CCalMaterialFactory.hh" +#include "CCalRotationMatrixFactory.hh" +#include "CCalSensitiveDetectors.hh" + +#include "CCalutils.hh" +#include + +#include "G4ThreeVector.hh" +#include "G4Box.hh" +#include "G4Trd.hh" + +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" + +//#define debug +//#define ddebug +//#define pdebug +//#define sdebug + +//Initialize static logical volumes +G4LogicalVolume* CCalG4Ecal::crystalmatrixLog = 0; + +//Initialize static prefix name +G4String CCalG4Ecal::idName = "CrystalMatrix"; + +//////////////////////////////////////////////////////////////////// +// CCalG4Ecal constructor & destructor... +//////////////////////////////////////////////////////////////////// + +CCalG4Ecal::CCalG4Ecal(const G4String &name): + CCalEcal(name), CCalG4Able(name), type(module1) {} + +CCalG4Ecal::~CCalG4Ecal() {} + +//////////////////////////////////////////////////////////////////// +// CCalG4Ecal methods... +//////////////////////////////////////////////////////////////////// + +G4VPhysicalVolume* CCalG4Ecal::constructIn(G4VPhysicalVolume* mother) { + G4cout << "==>> Constructing CCalG4Ecal..." << G4endl; + + /////////////////////////////////////////////////////////////// + // Construction of global volume as a Box + + if (!crystalmatrixLog) { + crystalmatrixLog = constructGlobal(); + } + CCalRotationMatrixFactory* rotfact = CCalRotationMatrixFactory::getInstance(); + + G4double x, y, z; + if (mother != 0) { + x = getXpos()*mm; + y = getYpos()*mm; + z = getZpos()*mm; + } else { + x = y = z = 0; + } + + int num; + if (type == module2) { + num = 2; + } else { + num = 1; + } +#ifdef pdebug + G4String name("Null"); + if (mother != 0) name = mother->GetName(); + G4cout << crystalmatrixLog->GetName() << " Number " << num << " positioned in " + << name << " at (" << x << ", " << y << ", " << z << ")"; +#endif + + G4RotationMatrix* cmrot = 0; + if (mother != 0) { + G4String rotstr = idName + num; + cmrot = rotfact->findMatrix(rotstr); + if (!cmrot) { +#ifdef ddebug + G4cout << "Creating a new rotation: " << rotstr << tab + << getThetaX()*deg << "," << getPhiX()*deg << "," + << getThetaY()*deg << "," << getPhiY()*deg << "," + << getThetaZ()*deg << "," << getPhiZ()*deg << G4endl; +#endif + cmrot = rotfact->AddMatrix(rotstr, getThetaX()*deg, getPhiX()*deg, + getThetaY()*deg, getPhiY()*deg, + getThetaZ()*deg, getPhiZ()*deg); + } // if !cmrot +#ifdef pdebug + G4cout << " rotation by (" << getThetaX() << ", " << getPhiX() << ", " + << getThetaY() << "," << getPhiY() << ", " << getThetaZ() << ", " + << getPhiZ() << ")" << G4endl; +#endif + } else { +#ifdef pdebug + G4cout << " without rotation..." << G4endl; +#endif + } + + G4PVPlacement* crystalmatrix; + if (mother != 0) { + crystalmatrix = new G4PVPlacement(cmrot, G4ThreeVector(x,y,z), + crystalmatrixLog, idName, + mother->GetLogicalVolume(), false, num); + } else { + crystalmatrix = new G4PVPlacement(cmrot, G4ThreeVector(x,y,z), + idName, crystalmatrixLog, + mother, false, num); + } + G4cout << "<<== End of CCalG4Ecal construction ..." << G4endl; + + return crystalmatrix; +} + + +G4LogicalVolume* CCalG4Ecal::constructGlobal() { + + //Pointers to the Materials and Rotation Matrix factory + CCalMaterialFactory* matfact = CCalMaterialFactory::getInstance(); + CCalRotationMatrixFactory* rotfact = CCalRotationMatrixFactory::getInstance(); + + G4Material* matter = matfact->findMaterial(getGenMat()); + G4VSolid* solid = new G4Box (idName, 0.5*getWidBox()*mm, 0.5*getWidBox()*mm, + 0.5*getLengBox()*mm); +#ifdef debug + G4cout << tab << idName << " Box made of " << getGenMat() << " of dimension " + << 0.5*getWidBox()*mm << ", " << 0.5*getWidBox()*mm << ", " + << 0.5*getLengBox()*mm << G4endl; +#endif + G4LogicalVolume* glog = new G4LogicalVolume (solid, matter, idName); + setVisType(CCalVisualisable::PseudoVolumes,glog); + + //Now the layers + G4String name = idName + "Layer"; + matter = matfact->findMaterial(getLayMat()); + solid = new G4Trd(name, getLayPar(0)*mm, getLayPar(1)*mm, getLayPar(2)*mm, + getLayPar(3)*mm, getLayPar(4)*mm); +#ifdef debug + G4cout << tab << name << " Trd made of " << getLayMat() << " of dimension " + << getLayPar(0)*mm << ", " << getLayPar(1)*mm << ", " << getLayPar(2)*mm + << ", " << getLayPar(3)*mm << ", " << getLayPar(4)*mm << G4endl; +#endif + G4LogicalVolume* laylog = new G4LogicalVolume (solid, matter, name); + setVisType(CCalVisualisable::OtherServices,laylog); + + G4int i = 0; + G4String rotstr; + G4double xp, yp, zp, angle; + G4double zshift = -0.5 * (getLengBox() - getCrystLength()) + getLengFront(); + G4RotationMatrix* rot = 0; + for (i = 0; i < getLayNum(); i++) { + angle = 0.5 * getLayAngle() * (2*i + 1 - getLayNum()); + xp = angle * (getLayPar(4) + getLayRadius()) * mm; + zp = (zshift + getLayPar(0)*abs(sin(angle))) * mm; + rotstr = idName + "Layer" + i; + rot = rotfact->findMatrix(rotstr); + if (!rot) { +#ifdef ddebug + G4cout << "Creating a new rotation: " << rotstr << tab + << (90.0*deg+angle) << "," << 0.0*deg << "," << 90.0*deg << "," + << 90.0*deg << "," << angle << "," << 0.0*deg << G4endl; +#endif + rot = rotfact->AddMatrix(rotstr, (90.0*deg+angle), 0.0*deg, 90.0*deg, + 90.0*deg, angle, 0.0*deg); + } + new G4PVPlacement(rot, G4ThreeVector(xp,0.,zp), laylog, name, glog, + false, i+1); +#ifdef pdebug + G4cout << laylog->GetName() << " number " << i+1 << " positioned in " + << glog->GetName() << " at (" << xp << ", 0," << zp + << ") with rotation angle " << angle/deg << G4endl; +#endif + } + + //Now the crystals + name = idName + "Crystal"; + matter = matfact->findMaterial(getCrystMat()); + solid = new G4Trd(name, getCrystPar(0)*mm, getCrystPar(1)*mm, + getCrystPar(2)*mm, getCrystPar(3)*mm, getCrystPar(4)*mm); +#ifdef debug + G4cout << tab << name << " Trd made of " << getCrystMat() << " of dimension " + << getCrystPar(0)*mm << ", " << getCrystPar(1)*mm << ", " + << getCrystPar(2)*mm << ", " << getCrystPar(3)*mm << ", " + << getCrystPar(4)*mm << G4endl; +#endif + + G4LogicalVolume* detLog = new G4LogicalVolume (solid, matter, name); + setVisType(CCalVisualisable::Sensitive,detLog); + sensitiveLogs.push_back(detLog); + for (i = 0; i < getCrystNum(); i++) { + angle = 0.5 * getLayAngle() * (2*i + 1 - getCrystNum()); + yp = angle * (getCrystPar(4) + getLayRadius()) * mm; + zp = (getCrystPar(0)*abs(sin(angle)) - getCrystTol()) * mm; + rotstr = idName + "Crystal" + i; + rot = rotfact->findMatrix(rotstr); + if (!rot) { +#ifdef ddebug + G4cout << "Creating a new rotation: " << rotstr << tab << 90.0*deg << "," + << 0.0*deg << "," << (90.0*deg+angle) << "," << 0.0*deg << "," + << angle << "," << 90.0*deg << G4endl; +#endif + rot = rotfact->AddMatrix(rotstr, 90.0*deg, 0.0*deg, (90.0*deg+angle), + 90.0*deg, angle, 90.0*deg); + } + new G4PVPlacement(rot, G4ThreeVector(0,yp,zp), detLog, name, laylog, + false, i+1); +#ifdef pdebug + G4cout << detLog->GetName() << " number " << i+1 << " positioned in " + << laylog->GetName() << " at (0," << yp << "," << zp + << ") with rotation angle " << angle/deg << G4endl; +#endif + } + + //Support boxes + name = idName + "Support"; + matter = matfact->findMaterial(getSuppMat()); + solid = new G4Box (name, 0.5*getDxSupp()*mm, 0.5*getDySupp()*mm, + 0.5*getDzSupp()*mm); +#ifdef debug + G4cout << tab << name << " Box made of " << getSuppMat() << " of dimension " + << 0.5*getDxSupp()*mm << ", " << 0.5*getDySupp()*mm << ", " + << 0.5*getDzSupp()*mm << G4endl; +#endif + G4LogicalVolume* slog = new G4LogicalVolume (solid, matter, name); + setVisType(CCalVisualisable::Support,slog); + + zp = (-0.5 * getLengBox() + getCrystLength() + getLengFront() + + 0.5 * getDzSupp() + getDistSupp()) * mm; + for (i = 0; i < getCrystNum(); i++) { + yp = getLayPar(1) * (2*i + 1 - getCrystNum()) * mm; + new G4PVPlacement(0, G4ThreeVector(0,yp,zp), slog, name, glog, + false, i+1); +#ifdef pdebug + G4cout << slog->GetName() << " number " << i+1 << " positioned in " + << glog->GetName() << " at (0," << yp << "," << zp + << ") with no rotation" << G4endl; +#endif + } + + return glog; +} + +void CCalG4Ecal::constructSensitive() { + +#ifdef debug + G4cout << "Now registering CrystalMatrix LogicalVolume's to SD's:" << G4endl; +#endif + if (sensitiveLogs.size()>0) { + CCalSensitiveDetectors* sensDets = CCalSensitiveDetectors::getInstance(); + G4String SDname = idName; + for(G4std::vector::iterator iter=sensitiveLogs.begin(); + iterregisterVolume(SDname, (*iter)); +#ifdef sdebug + G4cout << "Register volume " << (*iter)->GetName() << " for" << SDname + << G4endl; +#endif + } + } + +} + + diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Hall.cc b/examples/advanced/composite_calorimeter/src/CCalG4Hall.cc new file mode 100644 index 0000000000..39af31f153 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalG4Hall.cc @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * 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: CCalG4Hall.cc +// Description: CCalG4Hall Geometry factory class to construct G4 geometry +// of the experimental hall +/////////////////////////////////////////////////////////////////////////////// +#include "CCalG4Hall.hh" + +#include "CCalMaterialFactory.hh" + +#include "CCalG4Hcal.hh" +#include "CCalG4Ecal.hh" + +#include "CCalutils.hh" + +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "G4Box.hh" + +//#define debug +//#define pdebug + +//////////////////////////////////////////////////////////////////// +// CCalG4Hall constructor & destructor... +//////////////////////////////////////////////////////////////////// + +CCalG4Hall::CCalG4Hall(const G4String &name): + CCalHall(name),CCalG4Able(name) {} + +CCalG4Hall::~CCalG4Hall() {} + +//////////////////////////////////////////////////////////////////// +// CCalG4Hall methods... +//////////////////////////////////////////////////////////////////// + +G4VPhysicalVolume* CCalG4Hall::constructIn(G4VPhysicalVolume* mother) { + + G4cout << "==>> Constructing CCalG4Hall..." << G4endl; + + /////////////////////////////////////////////////////////////// + //Pointers to the Rotation Matrices and to the Materials + CCalMaterialFactory* matfact = CCalMaterialFactory::getInstance(); + + //Experimental Hall. The mother volume.... +#ifdef debug + G4cout << tab << "Building experimental Hall geometry...." << G4endl; +#endif + + G4Box* solid = new G4Box(Name(), getDx_2Hall()*mm, getDy_2Hall()*mm, + getDy_2Hall()*mm); +#ifdef debug + G4cout << solid->GetName() << " made of " << getMaterial() << " of dimension " + << getDx_2Hall()*mm << " " << getDy_2Hall()*mm << " " + << getDy_2Hall()*mm << " (all in mm)" << G4endl; +#endif + + G4Material* matter = matfact->findMaterial(getMaterial()); + G4LogicalVolume* glog = new G4LogicalVolume (solid, matter, Name(), 0, 0, 0); + setVisType(CCalVisualisable::PseudoVolumes,glog); + + G4VPhysicalVolume* volume = new G4PVPlacement(0,G4ThreeVector(),Name(), + glog,mother,false,0); +#ifdef pdebug + G4String name("Null"); + if (mother != 0) name = mother->GetName(); + G4cout << glog->GetName() << " number 1 positioned in " << name + << " at (0,0,0) with no rotation" << G4endl; +#endif + + G4cout << "<<== End of CCalG4Hall construction ..." << G4endl; + + return volume; +} + +void CCalG4Hall::constructDaughters(){ + //Hadron Calorimeter + CCalG4Hcal* hcal = new CCalG4Hcal("HadronCalorimeter"); + addDetector(hcal); + AddCCalG4Able(hcal); + + //Crystal matrix + CCalG4Ecal* ecal = new CCalG4Ecal("CrystalMatrixModule"); + ecal->setType(CCalG4Ecal::module1); + addDetector(ecal); + AddCCalG4Able(ecal); +} diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc b/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc new file mode 100644 index 0000000000..5389816cbb --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalG4Hcal.cc @@ -0,0 +1,356 @@ +// +// ******************************************************************** +// * 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: CCalG4Hcal.cc +// Description: CCalG4Hcal Factory class to construct the G4 geometry of the +// hadron calorimeter +/////////////////////////////////////////////////////////////////////////////// +#include "CCalG4Hcal.hh" + +#include "CCalMaterialFactory.hh" +#include "CCalRotationMatrixFactory.hh" +#include "CCalSensitiveDetectors.hh" + +#include "CCalutils.hh" +#include + +#include "G4ThreeVector.hh" +#include "G4Box.hh" + +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" + +//#define debug +//#define ddebug +//#define pdebug +//#define sdebug + +//////////////////////////////////////////////////////////////////// +// CCalG4Hcal constructor & destructor... +//////////////////////////////////////////////////////////////////// + +CCalG4Hcal::CCalG4Hcal(const G4String &name): + CCalHcal(name), CCalG4Able(name), sclLog(0), absLog(0) {} + +CCalG4Hcal::~CCalG4Hcal(){ + if (sclLog) + delete[] sclLog; + if (absLog) + delete[] absLog; +} + +//////////////////////////////////////////////////////////////////// +// CCalG4Hcal methods... +//////////////////////////////////////////////////////////////////// + +G4VPhysicalVolume* CCalG4Hcal::constructIn(G4VPhysicalVolume* mother) { + G4cout << "==>> Constructing CCalG4Hcal..." << G4endl; + + //Common logical volumes between methods. +#ifdef debug + G4cout << tab << "Common logical volumes initialization: " + << getNScintillator() << " scintillaor and " << getNAbsorber() + << " absorber layers." << G4endl; +#endif + G4int i = 0; + sclLog = new ptrG4Log[getNScintillator()]; + absLog = new ptrG4Log[getNAbsorber()]; + for (i=0; i < getNScintillator(); i++) + sclLog[i] = 0; + for (i=0; i < getNAbsorber(); i++) + absLog[i] = 0; + + //Pointers to the Materials + CCalMaterialFactory* matfact = CCalMaterialFactory::getInstance(); + + //Mother volume + G4Material* matter = matfact->findMaterial(getGenMat()); + G4VSolid* solid = new G4Box (Name(), getDx_2Cal()*mm, getDy_2Cal()*mm, + getDy_2Cal()*mm); + G4LogicalVolume* logh = new G4LogicalVolume(solid, matter, Name()); + setVisType(CCalVisualisable::PseudoVolumes,logh); +#ifdef debug + G4cout << tab << Name() << " Box made of " << getGenMat() + << " of dimension " << getDx_2Cal()*mm << " " << getDy_2Cal()*mm + << " " << getDy_2Cal()*mm << G4endl; +#endif + + G4PVPlacement* hcal = new G4PVPlacement(0,G4ThreeVector(getXposCal()*mm,0,0), + Name(), logh, mother, false, 1); + G4String name("Null"); +#ifdef pdebug + if (mother != 0) name = mother->GetName(); + G4cout << Name() << " Number 1 positioned in " << name << " at (" + << getXposCal()*mm << ",0,0) with no rotation" << G4endl; +#endif + + //Wall of the Boxes + solid = new G4Box (name, 0.5*getWallThickBox()*mm, getDy_2Box()*mm, + getDy_2Box()*mm); + matter = matfact->findMaterial(getBoxMat()); + name = Name() + "Wall"; + G4LogicalVolume* logw = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::Support,logw); +#ifdef debug + G4cout << tab << name << " Box made of " << getBoxMat() + << " of dimension " << 0.5*getWallThickBox()*mm << " " + << getDy_2Box()*mm << " " << getDy_2Box()*mm << G4endl; +#endif + + //Now the boxes + ptrG4Log* logb = new ptrG4Log[getNBox()]; + matter = matfact->findMaterial(getGenMat()); + for (i=0; iGetName(), + logb[i], false, 1); +#ifdef pdebug + G4cout << logw->GetName() << " Number 1 positioned in " << name + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + xpos = (getDx_2Box() - 0.5*getWallThickBox()); + new G4PVPlacement (0, G4ThreeVector(xpos*mm,0,0), logw, logw->GetName(), + logb[i], false, 2); +#ifdef pdebug + G4cout << logw->GetName() << " Number 2 positioned in " << name + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + + new G4PVPlacement (0, G4ThreeVector(getXposBox(i)*mm,0,0), logb[i], name, + logh, false, i+1); +#ifdef pdebug + G4cout << name << " Number " << i+1 << " positioned in " << logh->GetName() + << " at (" << getXposBox(i)*mm << ",0,0) with no rotation" << G4endl; +#endif + } + + //Loop over scintillator layers + for (i=0; i= getNScintillator()) { + logw = logh; + } else { + logw = logb[getMotherScnt(i)]; + } + G4double xpos = getXposScnt(i); + new G4PVPlacement (0, G4ThreeVector(xpos*mm,0,0), sclLog[lay], + sclLog[lay]->GetName(), logw, false, i+1); +#ifdef pdebug + G4cout << sclLog[lay]->GetName() << " Number " << i+1 << " positioned in " + << logw->GetName() << " at (" << xpos*mm << ",0,0) with no rotation" + << G4endl; +#endif + } + + //Loop over absorber layers + for (i=0; i= getNAbsorber()) { + logw = logh; + } else { + logw = logb[getMotherAbs(i)]; + } + G4double xpos = getXposAbs(i); + new G4PVPlacement (0, G4ThreeVector(xpos*mm,0,0), absLog[lay], + absLog[lay]->GetName(), logw, false, i+1); +#ifdef pdebug + G4cout << absLog[lay]->GetName() << " Number " << i+1 << " positioned in " + << logw->GetName() << " at (" << xpos*mm << ",0,0) with no rotation" + << G4endl; +#endif + } + + delete [] logb; + + G4cout << "<<== End of CCalG4Hcal construction ..." << G4endl; + + return hcal; +} + + +G4LogicalVolume* CCalG4Hcal::constructScintillatorLayer(G4int lay) { + + //Pointers to the Materials + CCalMaterialFactory* matfact = CCalMaterialFactory::getInstance(); + + //The scintillator layer + G4Material* matter = matfact->findMaterial(getGenMat()); + G4String name = Name() + "ScntLayer" + lay; + G4VSolid* solid = new G4Box (name, getDx_2ScntLay(lay)*mm, + getDy_2ScntLay(lay)*mm, + getDy_2ScntLay(lay)*mm); + G4LogicalVolume* log = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::PseudoVolumes,log); +#ifdef debug + G4cout << tab << name << " Box made of " << getGenMat() << " of dimension " + << getDx_2ScntLay(lay)*mm << " " << getDy_2ScntLay(lay)*mm << " " + << getDy_2ScntLay(lay)*mm << G4endl; +#endif + + G4LogicalVolume* logd; + G4double xpos; + //Wrappers if any + if (getDx_2Wrap(lay) > 0) { + name = Name() + "ScntWrapper" + lay; + matter = matfact->findMaterial(getWrapMat()); + solid = new G4Box (name, getDx_2Wrap(lay)*mm, + getDy_2ScntLay(lay)*mm, getDy_2ScntLay(lay)*mm); + logd = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::Support,logd); +#ifdef debug + G4cout << tab << name << " Box made of " << getWrapMat() << " of dimension " + << getDx_2Wrap(lay)*mm << " " << getDy_2ScntLay(lay)*mm << " " + << getDy_2ScntLay(lay)*mm << G4endl; +#endif + xpos =-(getDx_2ScntLay(lay)-getDx_2Wrap(lay)); + new G4PVPlacement(0, G4ThreeVector(xpos*mm,0,0), logd, name, log, false,1); +#ifdef pdebug + G4cout << logd->GetName() << " Number 1 positioned in " << log->GetName() + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + xpos = (getDx_2ScntLay(lay)-getDx_2Wrap(lay)); + new G4PVPlacement(0, G4ThreeVector(xpos*mm,0,0), logd, name, log, false,2); +#ifdef pdebug + G4cout << logd->GetName() << " Number 2 positioned in " << log->GetName() + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + } + + //Plastic covers + matter = matfact->findMaterial(getPlasMat()); + name = Name() + "FrontPlastic" + lay; + solid = new G4Box (name, getDx_2FrontP(lay)*mm, getDy_2ScntLay(lay)*mm, + getDy_2ScntLay(lay)*mm); + logd = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::Cable,logd); +#ifdef debug + G4cout << tab << name << " Box made of " << getPlasMat() << " of dimension " + << getDx_2FrontP(lay)*mm << " " << getDy_2ScntLay(lay)*mm << " " + << getDy_2ScntLay(lay)*mm << G4endl; +#endif + xpos =-getDx_2ScntLay(lay)+2.*getDx_2Wrap(lay)+getDx_2FrontP(lay); + new G4PVPlacement(0, G4ThreeVector(xpos*mm,0,0), logd, name, log, false,1); +#ifdef pdebug + G4cout << logd->GetName() << " Number 1 positioned in " << log->GetName() + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + name = Name() + "BackPlastic" + lay; + solid = new G4Box (name, getDx_2BackP(lay)*mm, getDy_2ScntLay(lay)*mm, + getDy_2ScntLay(lay)*mm); + logd = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::Cable,logd); +#ifdef debug + G4cout << tab << name << " Box made of " << getPlasMat() << " of dimension " + << getDx_2BackP(lay)*mm << " " << getDy_2ScntLay(lay)*mm << " " + << getDy_2ScntLay(lay)*mm << G4endl; +#endif + xpos =(-getDx_2ScntLay(lay)+2.*getDx_2Wrap(lay)+2.*getDx_2FrontP(lay)+ + 2.*getDx_2Scnt(lay)+getDx_2BackP(lay)); + new G4PVPlacement(0, G4ThreeVector(xpos*mm,0,0), logd, name, log, false,1); +#ifdef pdebug + G4cout << logd->GetName() << " Number 1 positioned in " << log->GetName() + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + + //Now the scintillators + matter = matfact->findMaterial(getScntMat()); + name = Name() + "Scintillator" + lay; + solid = new G4Box (name, getDx_2Scnt(lay)*mm, getDy_2ScntLay(lay)*mm, + getDy_2ScntLay(lay)*mm); + logd = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::Sensitive,logd); + allSensitiveLogs.push_back(logd); +#ifdef debug + G4cout << tab << name << " Box made of " << getScntMat() << " of dimension " + << getDx_2Scnt(lay)*mm << " " << getDy_2ScntLay(lay)*mm << " " + << getDy_2ScntLay(lay)*mm << G4endl; +#endif + xpos =(-getDx_2ScntLay(lay)+2.*getDx_2Wrap(lay)+2.*getDx_2FrontP(lay)+ + getDx_2Scnt(lay)); + new G4PVPlacement(0, G4ThreeVector(xpos*mm,0,0), logd, name, log, false,1); +#ifdef pdebug + G4cout << logd->GetName() << " Number 1 positioned in " << log->GetName() + << " at (" << xpos*mm << ",0,0) with no rotation" << G4endl; +#endif + + return log; +} + + +G4LogicalVolume* CCalG4Hcal::constructAbsorberLayer(G4int lay) { + + //Pointers to the Materials + CCalMaterialFactory* matfact = CCalMaterialFactory::getInstance(); + + //Now the absorber layer + G4Material* matter = matfact->findMaterial(getAbsMat()); + G4String name = Name() + "Absorber" + lay; + G4VSolid* solid = new G4Box (name, getDx_2Abs(lay)*mm, getDy_2Abs()*mm, + getDy_2Abs()*mm); + G4LogicalVolume* log = new G4LogicalVolume(solid, matter, name); + setVisType(CCalVisualisable::Absorber,log); +#ifdef debug + G4cout << tab << name << " Box made of " << getAbsMat() << " of dimension " + << getDx_2Abs(lay)*mm << " " << getDy_2Abs()*mm << " " + << getDy_2Abs()*mm << G4endl; +#endif + + return log; +} + + +void CCalG4Hcal::constructSensitive(){ + + if (allSensitiveLogs.size()>0) { + CCalSensitiveDetectors* sensDets = CCalSensitiveDetectors::getInstance(); + G4String SDname = Name(); + for (G4std::vector::iterator iter=allSensitiveLogs.begin(); + iterregisterVolume(SDname, (*iter)); +#ifdef sdebug + G4cout << "Register volume " << (*iter)->GetName() << " for" << SDname + << G4endl; +#endif + } + } else { + G4cerr << "CCalG4Hcal ERROR: Could not construct Sensitive Detector" + << G4endl; + } +} + +void CCalG4Hcal::constructDaughters() {} diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Hit.cc b/examples/advanced/composite_calorimeter/src/CCalG4Hit.cc new file mode 100644 index 0000000000..de0ce80787 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalG4Hit.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * 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: CCalG4Hit.cc +// Description: G4 Hit class for Calorimeters (Ecal, Hcal, ...) +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalG4Hit.hh" +#include "g4std/iostream" + + +CCalG4Hit::CCalG4Hit() : CCalHit(), + elem(0.0), hadr(0.0) +{} + + +CCalG4Hit::~CCalG4Hit() {} + + +CCalG4Hit::CCalG4Hit(const CCalG4Hit &right) : CCalHit(right), + elem(right.elem), hadr(right.hadr) +{} + + +const CCalG4Hit& CCalG4Hit::operator=(const CCalG4Hit &right) { + CCalHit::operator=(right); + elem = right.elem; + hadr = right.hadr; + return *this; +} + + +double CCalG4Hit::getEM() const { return elem; } +void CCalG4Hit::setEM (double e) { elem = e; } + +double CCalG4Hit::getHadr() const { return hadr; } +void CCalG4Hit::setHadr (double e) { hadr = e; } + +void CCalG4Hit::addEnergyDeposit(const CCalG4Hit& aHit) { + addEnergyDeposit( aHit.getEM(), aHit.getHadr() ); +} + +void CCalG4Hit::addEnergyDeposit(double em, double hd) { + elem += em; + hadr += hd; + CCalHit::addEnergyDeposit(em+hd); +} + + +void CCalG4Hit::Print() { + G4cout << (*this); +} + + +G4std::ostream& operator<< (G4std::ostream& os, const CCalG4Hit& hit) { + os << static_cast(hit); + os << " Data specific of this CCalG4Hit are:" << G4endl + << " \t EnergyDeposit of EM particles = " << hit.getEM() + << " (MeV)" << G4endl + << " \t EnergyDeposit of HD particles = " << hit.getHadr() + << " (MeV)" << G4endl; + return os; +} + diff --git a/examples/advanced/composite_calorimeter/src/CCalGeometryConfiguration.cc b/examples/advanced/composite_calorimeter/src/CCalGeometryConfiguration.cc new file mode 100644 index 0000000000..6de2f545fe --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalGeometryConfiguration.cc @@ -0,0 +1,115 @@ +// +// ******************************************************************** +// * 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: CCalGeometryConfiguration.cc +// Description: Handles geometry configuration to be constructed +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalGeometryConfiguration.hh" + +#include "g4std/fstream" + +//Comment/Uncomment next line to hide/show debug information +//#define debug + + +CCalGeometryConfiguration * CCalGeometryConfiguration::instance = 0; + +CCalGeometryConfiguration* CCalGeometryConfiguration::getInstance(){ + if (!instance) + instance = new CCalGeometryConfiguration; + return instance; +} + + +int CCalGeometryConfiguration::getConstructFlag(const G4String& n) /*const*/ { + int flag = -1; + CCalGeometryConfIterator it = theConfiguration.find(n); + + if (it != theConfiguration.end()) + flag = (*it).second.ConstructFlag; + else { + G4cerr << "ERROR: In CCalGeometryConfiguration::getConstructFlag(const G4String& n)" + << G4endl + << " " << n << " not found in configuration file" << G4endl; + } + + return flag; +} + +G4String CCalGeometryConfiguration::getFileName(const G4String& n) /*const*/ { + G4String fn; + CCalGeometryConfIterator it = theConfiguration.find(n); + + if (it != theConfiguration.end()) + fn = (*it).second.FileName; + else { + G4cerr << "ERROR: In CCalGeometryConfiguration::getConstructFlag(const G4String& n)" + << G4endl + << " " << n << " not found in configuration file" << G4endl; + } + + return fn; +} + +CCalGeometryConfiguration::CCalGeometryConfiguration(): + theConfiguration() { + + /////////////////////////////////////////////////////////////// + // Open the file + G4String pathName = getenv("CCAL_CONFPATH"); + G4String fileenv = getenv("CCAL_GEOMETRYCONF"); + if (!pathName || !fileenv) { + G4cerr << "ERROR: CCAL_GEOMETRYCONF and/or CCAL_CONFPATH not set" << G4endl + << " Set them to the geometry configuration file/path" << G4endl; + exit(-2); + } + + G4cout << " ==> Opening file " << fileenv << "..." << G4endl; + G4std::ifstream is; + bool ok = openGeomFile(is, pathName, fileenv); + if (!ok) + exit(-1); + + G4String name; + GCInfo gcinfo; + + while (is) { + readName(is, name); + readName(is, gcinfo.FileName); + is >> gcinfo.ConstructFlag >> jump; +#ifdef debug + G4cout << "CCalGeometryConfiguration constructor: Read \"" << name + << "\" \"" << gcinfo.FileName << "\"" << tab << gcinfo.ConstructFlag + << G4endl; +#endif + theConfiguration[name] = gcinfo; + } + + + + /////////////////////////////////////////////////////////////// + // Close the file + is.close(); + G4cout << " <== Closed file " << fileenv << G4endl; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalHall.cc b/examples/advanced/composite_calorimeter/src/CCalHall.cc new file mode 100644 index 0000000000..d660359e1a --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalHall.cc @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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: CCalHall.cc +// Description: CCalHall Geometry factory class for the experimental hall +/////////////////////////////////////////////////////////////////////////////// +#include "CCalHall.hh" + +#include "g4std/fstream" +#include "CCalutils.hh" + +#include "CCalHcal.hh" +#include "CCalEcal.hh" + +//#define debug + +CCalHall::CCalHall(const G4String &name): CCalDetector(name) {} + +CCalHall::~CCalHall() {} + +int CCalHall::readFile() { + /////////////////////////////////////////////////////////////// + //Let's open the file + G4cout << " ==> Opening file " << File() << " to read elements..." + << G4endl; + + G4std::ifstream is; + bool ok = openGeomFile(is, pathName, File()); + if (!ok) + return 0; + + // Find *DO HcalTB96 + findDO(is, G4String("HcalTB96")); + + // Calorimeter boundaries + readName(is,genMaterial); + is >> dy_2Hall >> dx_2Hall >> jump; +#ifdef debug + G4cout << tab << "General material: " << genMaterial << " Size " << dy_2Hall + << ", " << dx_2Hall << G4endl; +#endif + + /////////////////////////////////////////////////////////////// + // Close the file + G4cout << " ==> Closing file " << File() << G4endl; + is.close(); + + return 1; + +} + +void CCalHall::constructDaughters() { + CCalHcal* hcal = new CCalHcal("HadronCalorimeter"); + addDetector(hcal); + + CCalEcal* ecal = new CCalEcal("CrystalMatrixModule"); + addDetector(ecal); +} diff --git a/examples/advanced/composite_calorimeter/src/CCalHcal.cc b/examples/advanced/composite_calorimeter/src/CCalHcal.cc new file mode 100644 index 0000000000..d0a4d160ea --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalHcal.cc @@ -0,0 +1,190 @@ +// +// ******************************************************************** +// * 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: CCalHcal.cc +// Description: CCalHcal Geometry factory class for the hadron calorimeter +/////////////////////////////////////////////////////////////////////////////// +#include "CCalHcal.hh" + +#include "g4std/fstream" +#include "CCalutils.hh" + +//#define debug + +CCalHcal::CCalHcal(const G4String &name): + CCalDetector(name),xposBox(0),typeLayerScnt(0),mothLayerScnt(0), + xposLayerScnt(0),typeLayerAbs(0),mothLayerAbs(0),xposLayerAbs(0), + dx_2Absorber(0),dy_2ScntLayer(0),dx_2ScntLayer(0),dx_2Wrapper(0), + dx_2FrontPlastic(0),dx_2BackPlastic(0),dx_2Scintillator(0) {} + +CCalHcal::~CCalHcal() { + if (xposBox) + delete[] xposBox; + if (typeLayerScnt) + delete[] typeLayerScnt; + if (mothLayerScnt) + delete[] mothLayerScnt; + if (xposLayerScnt) + delete[] xposLayerScnt; + if (typeLayerAbs) + delete[] typeLayerAbs; + if (mothLayerAbs) + delete[] mothLayerAbs; + if (xposLayerAbs) + delete[] xposLayerAbs; + if (dx_2Absorber) + delete[] dx_2Absorber; + if (dy_2ScntLayer) + delete[] dy_2ScntLayer; + if (dx_2ScntLayer) + delete[] dx_2ScntLayer; + if (dx_2Wrapper) + delete[] dx_2Wrapper; + if (dx_2FrontPlastic) + delete[] dx_2FrontPlastic; + if (dx_2BackPlastic) + delete[] dx_2BackPlastic; + if (dx_2Scintillator) + delete[] dx_2Scintillator; +} + +int CCalHcal::readFile() { + /////////////////////////////////////////////////////////////// + //Let's open the file + G4cout << " ==> Opening file " << File() << " to read elements..." + << G4endl; + + G4std::ifstream is; + bool ok = openGeomFile(is, pathName, File()); + if (!ok) + return 0; + + // Find *DO HCal + findDO(is, G4String("HCal")); + + // Calorimeter boundaries + readName(is,genMaterial); + is >> dy_2Cal >> dx_2Cal >> xposCal >> jump; +#ifdef debug + G4cout << tab << "General material: " << genMaterial << " Size " << dy_2Cal + << ", " << dx_2Cal << " Position " << xposCal << G4endl; +#endif + + // Boxes + readName(is,boxMaterial); + is >> nBox >> dy_2Box >> dx_2Box >> wallThickBox; + int i = 0; + xposBox = new double[nBox]; + for (i=0; i> xposBox[i]; +#ifdef debug + G4cout << tab << "Box material: " << boxMaterial << " Size " << dy_2Box + << ", " << dx_2Box << " Wall Thickness " << wallThickBox << " number " + << nBox << " position "; + for (i=0; i> nLayerScnt; + typeLayerScnt = new int[nLayerScnt]; + mothLayerScnt = new int[nLayerScnt]; + xposLayerScnt = new double[nLayerScnt]; + for (i=0; i> typeLayerScnt[i] >> mothLayerScnt[i] >> xposLayerScnt[i]; +#ifdef debug + G4cout << tab << nLayerScnt << " Layers of scintillators of type/mother box/" + << "position" << G4endl; + for (i=0; i> nLayerAbs; + typeLayerAbs = new int[nLayerAbs]; + mothLayerAbs = new int[nLayerAbs]; + xposLayerAbs = new double[nLayerAbs]; + for (i=0; i> typeLayerAbs[i] >> mothLayerAbs[i] >> xposLayerAbs[i]; +#ifdef debug + G4cout << tab << nLayerAbs << " Layers of absorbers of type/mother box/" + << "position" << G4endl; + for (i=0; i> nAbsorber >> dy_2Absorber; + dx_2Absorber = new double[nAbsorber]; + for (i=0; i> dx_2Absorber[i]; +#ifdef debug + G4cout << "\tAbsorber mad of " << absMaterial << " with " << nAbsorber + << " types and size " << dy_2Absorber; + for (i=0; i> nScintillator; + dy_2ScntLayer = new double[nScintillator]; + dx_2ScntLayer = new double[nScintillator]; + dx_2Wrapper = new double[nScintillator]; + dx_2FrontPlastic = new double[nScintillator]; + dx_2BackPlastic = new double[nScintillator]; + dx_2Scintillator = new double[nScintillator]; + for (i=0; i> dy_2ScntLayer[i] >> dx_2ScntLayer[i] >> dx_2Wrapper[i] + >> dx_2FrontPlastic[i] >> dx_2BackPlastic[i] >> dx_2Scintillator[i]; +#ifdef debug + G4cout << tab << nScintillator << " Scintillator layers made of " + << scntMaterial << " " << wrapMaterial << " and " << plasMaterial + << " of sizes " << G4endl; + for (i=0; i Closing file " << File() << G4endl; + is.close(); + + return 1; + +} + +void CCalHcal::constructDaughters() { +} diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01RunAction.cc b/examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc similarity index 66% rename from examples/extended/persistency/PersistentEx01/src/PersEx01RunAction.cc rename to examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc index 331019a78b..739af5ae55 100644 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01RunAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc @@ -20,39 +20,30 @@ // * statement, and all its terms. * // ******************************************************************** // +/////////////////////////////////////////////////////////////////////////////// +// File: CCalHcalOrganization.cc +// Description: Defines numbering schema for the Hadron Calorimeter +/////////////////////////////////////////////////////////////////////////////// -#include "PersEx01RunAction.hh" - -#include "G4Run.hh" -#include "G4VPersistencyManager.hh" -#include "G4TransportationManager.hh" +#include "CCalHcalOrganization.hh" #include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "SystemOfUnits.h" -PersEx01RunAction::PersEx01RunAction() -{ +CCalHcalOrganization::~CCalHcalOrganization() { + G4cout << " Deleting CCalHcalOrganization" << G4endl; } -PersEx01RunAction::~PersEx01RunAction() -{ -} -void PersEx01RunAction::BeginOfRunAction(const G4Run* aRun) -{ - if(aRun->GetRunID()==0) - { - G4VPersistencyManager* persM - = G4VPersistencyManager::GetPersistencyManager(); - if(persM) - { - G4VPhysicalVolume* theWorld - = G4TransportationManager::GetTransportationManager() - ->GetNavigatorForTracking()->GetWorldVolume(); - persM->Store(theWorld); - } - } -} +unsigned int CCalHcalOrganization::GetUnitID(const G4Step* aStep) const { -void PersEx01RunAction::EndOfRunAction(const G4Run* ) -{ -} + G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); + if (pv > 0) + pv = pv->GetMother(); + int idunit=0; + if (pv > 0) + idunit = pv->GetCopyNo(); + return idunit; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalHit.cc b/examples/advanced/composite_calorimeter/src/CCalHit.cc new file mode 100644 index 0000000000..eba1791b1b --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalHit.cc @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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: CCalHit.cc +// Description: Hit class for Calorimeters (Ecal, Hcal, ...) +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalHit.hh" +#include "g4std/iostream" + + +CCalHit::CCalHit() : + entry(0), theIncidentEnergy(0.0), theTrackID(-1), + theUnitID(0), theTimeSlice(0.0), theEnergyDeposit(0.0) +{} + + +CCalHit::~CCalHit() {} + + +CCalHit::CCalHit(const CCalHit &right) : + entry( right.entry ), + theIncidentEnergy( right.theIncidentEnergy ), + theTrackID( right.theTrackID ), + theUnitID( right.theUnitID ), + theTimeSlice( right.theTimeSlice ), + theEnergyDeposit( right.theEnergyDeposit ) +{} + + +const CCalHit& CCalHit::operator=(const CCalHit &right) { + entry = right.entry; + theIncidentEnergy = right.theIncidentEnergy; + theTrackID = right.theTrackID; + theUnitID = right.theUnitID; + theTimeSlice = right.theTimeSlice; + theEnergyDeposit = right.theEnergyDeposit; + return *this; +} + + +Hep3Vector CCalHit::getEntry() const {return entry;} +void CCalHit::setEntry(Hep3Vector xyz) { entry = xyz; } + +double CCalHit::getIncidentEnergy() const {return theIncidentEnergy; } +void CCalHit::setIncidentEnergy (double e){theIncidentEnergy = e; } + +int CCalHit::getTrackID() const {return theTrackID; } +void CCalHit::setTrackID (int i) { theTrackID = i; } + +unsigned int CCalHit::getUnitID() const {return theUnitID; } +void CCalHit::setUnitID (unsigned int i) { theUnitID = i; } + +double CCalHit::getTimeSlice() const {return theTimeSlice; } +void CCalHit::setTimeSlice (double d) { theTimeSlice = d; } +int CCalHit::getTimeSliceID() const {return (int)theTimeSlice;} + + +void CCalHit::setEnergyDeposit(const double e) { + theEnergyDeposit = e; +} + +double CCalHit::getEnergyDeposit() const { + return theEnergyDeposit; +} + +void CCalHit::addEnergyDeposit(const CCalHit& aHit) { + addEnergyDeposit( aHit.getEnergyDeposit() ); +} + +void CCalHit::addEnergyDeposit(const double e) { + theEnergyDeposit += e; +} + + +void CCalHit::print() { + G4cout << (*this); +} + + +G4std::ostream& operator<<(G4std::ostream& os, const CCalHit& hit) { + os << " Data of this CCalHit are:"<< G4endl + << " \t Time slice ID: " << hit.getTimeSliceID() << G4endl + << " \t Energy of primary particle (ID = " << hit.getTrackID() + << ") = " << hit.getIncidentEnergy() << " (MeV)"<< G4endl + << " \t Entry point in Calorimeter unit number " << hit.getUnitID() + << " is: " << hit.getEntry() << " (mm)" << G4endl + << " \t EnergyDeposit = " << hit.getEnergyDeposit() << " (MeV)" << G4endl; + return os; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc b/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc new file mode 100644 index 0000000000..a41c6e0f60 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc @@ -0,0 +1,137 @@ +// +// ******************************************************************** +// * 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: CCalMagneticField.cc +// Description: User Field class implementation. +/////////////////////////////////////////////////////////////////////////////// +#include "CCalMagneticField.hh" +#include "CCalutils.hh" +#include "G4FieldManager.hh" +#include "g4std/fstream" + +//#define ddebug +//#define debug + +//Constructor and destructor: + +CCalMagneticField::CCalMagneticField(const G4String &filename) : + fval(0), pos(0), slope(0), intercept(0) { + + //Let's open the file + G4cout << " ==> Opening file " << filename << " to read magnetic field..." + << G4endl; + G4String pathName = getenv("CCAL_GLOBALPATH"); + G4std::ifstream is; + bool ok = openGeomFile(is, pathName, filename); + + if (ok) { + findDO(is, G4String("FLDM")); + is >> fval >> npts >> xoff; +#ifdef debug + G4cout << "Field value " << fval << " # points " << npts << " offset in x " + << xoff*mm << G4endl; +#endif + + if (npts > 0) { + pos = new G4double[npts]; + slope = new G4double[npts]; + intercept = new G4double[npts]; + + for (G4int i = 0; i < npts; i++) { + is >> pos[i] >> slope[i] >> intercept[i]; +#ifdef debug + G4cout << tab << "Position " << i << " " << pos[i] << " Slope " + << slope[i] << " Intercept " << intercept[i] << G4endl; +#endif + } + } + + /////////////////////////////////////////////////////////////// + // Close the file + G4cout << " ==> Closing file " << filename << G4endl; + is.close(); + } +} + + +CCalMagneticField::~CCalMagneticField() { + if (pos) + delete[] pos; + if (slope) + delete[] slope; + if (intercept) + delete[] intercept; +} + + +// Member functions + +void CCalMagneticField::MagneticField(const double x[3], double B[3]) const { + + G4int i=0; + for (i=0; i<2; i++) { + B[i] = 0*kilogauss; + } + + G4double m=0, c=1; + G4double xnew = x[0]/mm + xoff; + if (npts > 0) { + m = slope[npts-1]; + c = intercept[i-1]; + for (i=npts-2; i>=0; i--) { + if (xnew < pos[i]*mm) { + m = slope[i]; + c = intercept[i]; + } + } + } + G4double scor = c + m*xnew; + if (scor < 0.) scor = 0.; + // G4cout << "X: " << xnew << " Slope " << m << " " << c << " " << scor << G4endl; + B[2] = scor*fval*kilogauss; +#ifdef ddebug + G4cout << "Field at x: " << x[0]/mm << "mm = " << B[2]/tesla << "T" << G4endl; +#endif +} + + +Hep3Vector CCalMagneticField::MagneticField(const Hep3Vector point) const { + + G4double x[3],B[3]; + Hep3Vector v; + + x[0] = point.x(); + x[1] = point.y(); + x[2] = point.z(); + CCalMagneticField::MagneticField(x, B); + v.setX(B[0]); + v.setY(B[1]); + v.setZ(B[2]); + return v; +} + + +void CCalMagneticField::GetFieldValue(const double x[3], double* B) const { + CCalMagneticField::MagneticField(x, B); +} + diff --git a/examples/advanced/composite_calorimeter/src/CCalMaterial.cc b/examples/advanced/composite_calorimeter/src/CCalMaterial.cc new file mode 100644 index 0000000000..4d2996b489 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalMaterial.cc @@ -0,0 +1,181 @@ +// +// ******************************************************************** +// * 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: CCalMaterial.cc +// Description: CCalMaterial transient class to store information from +// material table (database) which is used to make a G4Material +/////////////////////////////////////////////////////////////////////////////// +#include "CCalMaterial.hh" + +//#define debug + +CCalMaterial::CCalMaterial(G4String mat, double dens, int nconst, + CCalMaterial** constituents, double* weights, + FractionType ft): name(mat), density(dens) { + nElem = 0; + + int i=0; + for (i=0; iNElements(); + + theElements = new G4String[nElem]; + theWeights = new double[nElem]; + + double factor; + int nelem=0; + for (i=0; iDensity(); + for (int j=0; jNElements(); j++) { + theElements[nelem] = constituents[i]->Element(j); + theWeights[nelem] = constituents[i]->Weight(j)* weights[i] * factor; + nelem++; + } + } + + if (density<0) { //Let's compute density + computeDensity(nconst, constituents, weights, ft); + } + closeMaterial(); +} + +CCalMaterial::CCalMaterial(const CCalMaterial& mat): + name(mat.name), density(mat.density), nElem(mat.nElem) { + theElements = new G4String[nElem]; + theWeights = new double[nElem]; + for (int i=0; iDensity()); + } + else { //by volume + mass+=(weights[i]*constituents[i]->Density()); + volume+=weights[i]; + } + } + density=mass/volume; +} + +CCalMaterial& CCalMaterial::operator=(const CCalMaterial& mat){ + if(theElements) + delete[] theElements; + if(theWeights) + delete[] theWeights; + + name=mat.name; + density=mat.density; + nElem=mat.nElem; + + theElements = new G4String[nElem]; + theWeights = new double[nElem]; + for (int i=0; i + +#include "G4Material.hh" + +//#define ddebug +//#define debug + +typedef CCalMaterial* ptrCCalMaterial; +typedef CCalAMaterial* ptrCCalAMaterial; + + +CCalMaterialFactory * CCalMaterialFactory::instance = 0; +G4String CCalMaterialFactory::elementfile = ""; +G4String CCalMaterialFactory::mixturefile = ""; + + +CCalMaterialFactory* CCalMaterialFactory::getInstance(const G4String& matfile, + const G4String& mixfile){ + if ((matfile=="" || matfile==elementfile) && + (mixfile=="" || mixfile==mixturefile)) + return getInstance(); + else if ((matfile != "" && elementfile != "" && matfile != elementfile) || + (mixfile != "" && mixturefile != "" && mixfile != mixturefile)) { + G4cerr << "ERROR: Trying to get materials from " << matfile << " and " + << mixfile << " while previously were retrieved from " + << elementfile << " and " << mixturefile << "." << G4endl; + return 0; + } else { + if (elementfile == "") + elementfile=matfile; + if (mixturefile == "") + mixturefile=mixfile; + return getInstance(); + } +} + + +CCalMaterialFactory* CCalMaterialFactory::getInstance(const G4String& matfile){ + return getInstance(matfile,matfile); +} + + +CCalMaterialFactory* CCalMaterialFactory::getInstance(){ + if (elementfile=="" || mixturefile=="") { + G4cerr << "ERROR: You haven't defined files to be used for materials in " + << "CCalMaterialFactory::getInstance(const G4String&,const G4String&)" + << G4endl; + return 0; + } + + if (instance==0) { + instance = new CCalMaterialFactory; + return instance; + } + else + return instance; +} + + +CCalMaterialFactory::~CCalMaterialFactory(){ + CCalMaterialTable::iterator ite; + for(ite = theCCalMaterials.begin(); ite != theCCalMaterials.end(); ite++ ){ + delete *ite; + } + theCCalMaterials.clear(); + CCalAMaterialTable::iterator itea; + for(itea = theCCalAMaterials.begin(); itea != theCCalAMaterials.end(); + itea++ ){ + delete *itea; + } + theCCalAMaterials.clear(); +} + + +G4Material* CCalMaterialFactory::findMaterial(const G4String & mat) const { + G4Material* theMat=findG4Material(mat); + + if (theMat) { +#ifdef ddebug + G4cout << "Material " << mat << " already defined. Returning previous " + << "instance." << G4endl; +#endif + return theMat; + } else { + CCalMaterial* CCalmat=findCCalMaterial(mat); + if (CCalmat){ + G4Material* G4Mat = new G4Material(CCalmat->Name(), + CCalmat->Density()*g/cm3, + CCalmat->NElements()); + for(G4int i=0; iNElements(); i++) { + G4Element* elem = findElement(CCalmat->Element(i)); + if (!elem) { + G4cerr << " Could not build material " << mat << "." << G4endl; + exit(-10); + } + G4Mat->AddElement(elem, CCalmat->Weight(i)); + } +#ifdef ddebug + G4cout << "Material " << mat << " has been built successfully." << G4endl; +#endif + return G4Mat; + } else { + G4cerr << "ERROR: Material " << mat << " not found in CCal database!!!" + << G4endl; + return 0; + } + } +} + + +G4Element* CCalMaterialFactory::findElement(const G4String & mat) const { + const G4ElementTable theElements = *(G4Element::GetElementTable()); + for (unsigned int i=0; iGetName()==mat){ +#ifdef ddebug + G4cout << "Element " << mat << " found!" << G4endl; +#endif + return theElements[i]; + } + return 0; +} + + +G4Element* CCalMaterialFactory::addElement(const G4String & name, + const G4String & symbol, + G4double Z, G4double A, + G4double density) { + + G4Element* theEl = new G4Element(name, symbol, Z, A*g/mole); + //Make it also as a material. + CCalAMaterial* theMat = new CCalAMaterial(name,A,density); + theCCalAMaterials.push_back(theMat); + +#ifdef ddebug + G4cout << "Element " << name << " created!" << G4endl; +#endif + return theEl; +} + + +G4Material* CCalMaterialFactory::addMaterial(const G4String& name, + G4double density, + G4int nconst, + G4String mats[], + G4double prop[], + MatDescription md){ + addCCalMaterial(name, density, nconst, mats, prop, md); + return findMaterial(name); +} + + +void CCalMaterialFactory::readElements(const G4String& matfile) { + + G4String path = getenv("CCAL_GLOBALPATH"); + G4cout << " ==> Opening file " << matfile << " to read elements..." << G4endl; + G4std::ifstream is; + bool ok = openGeomFile(is, path, matfile); + if (!ok) { + G4cerr << "ERROR: Could not open file " << matfile << G4endl; + return; + } + + // Find *DO GMAT + findDO(is, G4String("GMAT")); + + readElements(is); + + is.close(); +} + + +void CCalMaterialFactory::readMaterials(const G4String& matfile) { + + G4String path = getenv("CCAL_GLOBALPATH"); + G4cout << " ==> Opening file " << matfile << " to read materials..." << G4endl; + G4std::ifstream is; + bool ok = openGeomFile(is, path, matfile); + if (!ok) { + G4cerr << "ERROR: Could not open file " << matfile << G4endl; + return; + } + + // Find *DO GMIX + findDO(is, G4String("GMIX")); + + readMaterials(is); + + is.close(); +} + + +//=========================================================================== +// Protected & private methods ============================================== + + +G4Material* CCalMaterialFactory::findG4Material(const G4String & mat) const { + const G4MaterialTable theG4Materials = *(G4Material::GetMaterialTable()); + for (unsigned int i=0; iGetName()==mat){ + return theG4Materials[i]; + } + } + return 0; +} + + +CCalMaterial* CCalMaterialFactory::findCCalMaterial(const G4String & mat) + const { + for (unsigned int i=0; iName()==mat){ +#ifdef ddebug + G4cout << "CCalMaterial " << mat << " found!" << G4endl; +#endif + return theCCalMaterials[i]; + } + return (CCalMaterial*) findCCalAMaterial(mat); +} + + +CCalAMaterial* CCalMaterialFactory::findCCalAMaterial(const G4String & mat) + const { + for (unsigned int i=0; iName()==mat){ +#ifdef ddebug + G4cout << "CCalMaterial " << mat << " found!" << G4endl; +#endif + return theCCalAMaterials[i]; + } + return 0; +} + + +CCalMaterial* CCalMaterialFactory::addCCalMaterial(const G4String& name, + G4double density, + G4int nconst, + G4String mats[], + G4double prop[], + MatDescription md){ + ptrCCalMaterial* matcol=0; + ptrCCalAMaterial* amatcol=0; + + if (md==byAtomic) + amatcol = new ptrCCalAMaterial[nconst]; + else + matcol = new ptrCCalMaterial[nconst]; + + for (G4int i=0; i Reading elements... " << G4endl; +#ifdef debug + G4cout << " Element \tsymbol\tA\tZ\tdensity\tX_0 abs_l"<< G4endl; +#endif + //There should come the list of materials. #. Defines a comment + //*DO defines the beguining of the Mixes block. + + readName(is,name); + while (name != "*ENDDO") { + //It should be an element definition + G4double A, Z, density; + is >> symbol >> A >> Z >> density >> jump; +#ifdef debug + G4cout << " " << name << " \t" << symbol << "\t" + << A << "\t" << Z << "\t" << density << G4endl; +#endif + addElement(name, symbol, Z, A, density); + readName(is,name); + }; + G4cout << " " << G4Element::GetElementTable()->size() + << " elements read from file" << G4endl << G4endl; +} + + +void CCalMaterialFactory::readMaterials(G4std::ifstream& is){ + G4String name, matname; + + G4cout << " ==> Reading materials... " << G4endl; + + //Take into account the special case of vacuum... +#ifdef debug + G4cout <<" \"Vacuum\"" << G4endl; +#endif + G4double density = universe_mean_density; //from PhysicalConstants.h + G4double pressure = 1.E-19*pascal; + G4double temperature = 0.1*kelvin; + new G4Material("Vacuum", /*Z=*/ 1., /*A=*/ 1.01*g/mole, + density, kStateGas, temperature, pressure); + + //There should come the list of materials. #. Defines a comment + //*ENDDO defines the block. + readName(is,name); + while (name != "*ENDDO") { + //It should be a material definition + matname=name; + G4int nElem; + G4double density; + is >> nElem >> density >> jump; + +#ifdef debug + G4cout <<" " << matname + << " made of " << nElem + << " elements. Density=" << density + << G4endl; +#endif + + G4int absnelem = abs(nElem); + + G4String* mats = new G4String[absnelem]; + G4double* weights = new G4double[absnelem]; + + G4double prop; + for(int i=0; i> prop >> jump; + mats[i]=name; + weights[i]=abs(prop); + } //for... + MatDescription md; + if (nElem>0 && prop<0) + md = byAtomic; + else if (nElem>0) + md = byWeight; + else + md = byVolume; + + addCCalMaterial(matname, density, absnelem, mats, weights, md); + delete[] mats; + delete[] weights; + + readName(is,name); + }; //while + + G4cout << " " << theCCalMaterials.size() << " materials read from " + << mixturefile << G4endl << G4endl; +} + + +CCalMaterialFactory::CCalMaterialFactory() { + readElements (elementfile); + readMaterials(mixturefile); +} diff --git a/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc new file mode 100644 index 0000000000..a90ac7fe3e --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc @@ -0,0 +1,107 @@ +// +// ******************************************************************** +// * 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 should be copied as CCalPhysicsList.cc +// if you want to use the +// *** QGSC *** +// Physics List +//--------------------------------------------------- +#include "CCalPhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "HadronPhysicsQGSC.hh" +#include "IonPhysics.hh" + +CCalPhysicsList::CCalPhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + defaultCutValue = 0.7*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new HadronPhysicsQGSC("hadron")); + + // Ion Physics + RegisterPhysics( new IonPhysics("ion")); + + +} + +CCalPhysicsList::~CCalPhysicsList() +{ +} + +void CCalPhysicsList::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "CCalPhysicsList::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + SetCutValue(kNuCut,"nu_e"); + SetCutValue(kNuCut,"nu_tau"); + SetCutValue(kNuCut,"nu_mu"); + SetCutValue(kNuCut,"anti_nu_e"); + SetCutValue(kNuCut,"anti_nu_tau"); + SetCutValue(kNuCut,"anti_nu_mu"); + + DumpCutValues(G4Electron::ElectronDefinition() ); + DumpCutValues(G4Positron::PositronDefinition()); + DumpCutValues(G4MuonPlus::MuonPlusDefinition() ); + DumpCutValues(G4MuonMinus::MuonMinusDefinition()); + DumpCutValues(G4Gamma::GammaDefinition() ) ; + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-LHEP b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-LHEP new file mode 100644 index 0000000000..7bd5f83e84 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-LHEP @@ -0,0 +1,85 @@ +//--------------------------------------------------- +// This file should be copied as CCalPhysicsList.cc +// if you want to use the +// *** LHEP *** +// Physics List +//--------------------------------------------------- +#include "CCalPhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "HadronPhysicsLHEP.hh" +#include "IonPhysics.hh" + +CCalPhysicsList::CCalPhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + defaultCutValue = 0.7*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new HadronPhysicsLHEP("hadron")); + + // Ion Physics + RegisterPhysics( new IonPhysics("ion")); + + +} + +CCalPhysicsList::~CCalPhysicsList() +{ +} + +void CCalPhysicsList::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "CCalPhysicsList::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + SetCutValue(kNuCut,"nu_e"); + SetCutValue(kNuCut,"nu_tau"); + SetCutValue(kNuCut,"nu_mu"); + SetCutValue(kNuCut,"anti_nu_e"); + SetCutValue(kNuCut,"anti_nu_tau"); + SetCutValue(kNuCut,"anti_nu_mu"); + + DumpCutValues(G4Electron::ElectronDefinition() ); + DumpCutValues(G4Positron::PositronDefinition()); + DumpCutValues(G4MuonPlus::MuonPlusDefinition() ); + DumpCutValues(G4MuonMinus::MuonMinusDefinition()); + DumpCutValues(G4Gamma::GammaDefinition() ) ; + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSC b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSC new file mode 100644 index 0000000000..00dee6978f --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSC @@ -0,0 +1,85 @@ +//--------------------------------------------------- +// This file should be copied as CCalPhysicsList.cc +// if you want to use the +// *** QGSC *** +// Physics List +//--------------------------------------------------- +#include "CCalPhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "HadronPhysicsQGSC.hh" +#include "IonPhysics.hh" + +CCalPhysicsList::CCalPhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + defaultCutValue = 0.7*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new HadronPhysicsQGSC("hadron")); + + // Ion Physics + RegisterPhysics( new IonPhysics("ion")); + + +} + +CCalPhysicsList::~CCalPhysicsList() +{ +} + +void CCalPhysicsList::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "CCalPhysicsList::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + SetCutValue(kNuCut,"nu_e"); + SetCutValue(kNuCut,"nu_tau"); + SetCutValue(kNuCut,"nu_mu"); + SetCutValue(kNuCut,"anti_nu_e"); + SetCutValue(kNuCut,"anti_nu_tau"); + SetCutValue(kNuCut,"anti_nu_mu"); + + DumpCutValues(G4Electron::ElectronDefinition() ); + DumpCutValues(G4Positron::PositronDefinition()); + DumpCutValues(G4MuonPlus::MuonPlusDefinition() ); + DumpCutValues(G4MuonMinus::MuonMinusDefinition()); + DumpCutValues(G4Gamma::GammaDefinition() ) ; + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSP b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSP new file mode 100644 index 0000000000..0e904eabbe --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalPhysicsList.cc-QGSP @@ -0,0 +1,85 @@ +//--------------------------------------------------- +// This file should be copied as CCalPhysicsList.cc +// if you want to use the +// *** QGSP *** +// Physics List +//--------------------------------------------------- +#include "CCalPhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "HadronPhysicsQGSP.hh" +#include "IonPhysics.hh" + +CCalPhysicsList::CCalPhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + defaultCutValue = 0.7*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new HadronPhysicsQGSP("hadron")); + + // Ion Physics + RegisterPhysics( new IonPhysics("ion")); + + +} + +CCalPhysicsList::~CCalPhysicsList() +{ +} + +void CCalPhysicsList::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "CCalPhysicsList::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + SetCutValue(kNuCut,"nu_e"); + SetCutValue(kNuCut,"nu_tau"); + SetCutValue(kNuCut,"nu_mu"); + SetCutValue(kNuCut,"anti_nu_e"); + SetCutValue(kNuCut,"anti_nu_tau"); + SetCutValue(kNuCut,"anti_nu_mu"); + + DumpCutValues(G4Electron::ElectronDefinition() ); + DumpCutValues(G4Positron::PositronDefinition()); + DumpCutValues(G4MuonPlus::MuonPlusDefinition() ); + DumpCutValues(G4MuonMinus::MuonMinusDefinition()); + DumpCutValues(G4Gamma::GammaDefinition() ) ; + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc new file mode 100644 index 0000000000..f8a44b9e42 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc @@ -0,0 +1,390 @@ +// +// ******************************************************************** +// * 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: CCalPrimaryGeneratorAction.cc +// Description: CCalPrimaryGeneratorAction Sets up particle beam +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalPrimaryGeneratorAction.hh" +#include "CCalPrimaryGeneratorMessenger.hh" +#include "G4HEPEvtInterface.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "CLHEP/Random/RandFlat.h" +#include "G4HEPEvtInterface.hh" +#include "G4RunManager.hh" +#include "SystemOfUnits.h" + +#define debug + +CCalPrimaryGeneratorAction::CCalPrimaryGeneratorAction(): particleGun(0), + generatorInput(singleFixed), verboseLevel(0), n_particle(1), + particleName("pi-"), particleEnergy(100*GeV), particlePosition(0.,0.,0.), + particleDir(1.,1.,0.1), isInitialized(0), scanSteps(0) { + + //Initialise the messenger + gunMessenger = new CCalPrimaryGeneratorMessenger(this); + + //Default settings: + SetMinimumEnergy(1.*GeV); + SetMaximumEnergy(1.*TeV); + SetMinimumEta(0.); + SetMaximumEta(3.5); + SetMinimumPhi(0.*degree); + SetMaximumPhi(360.*degree); + SetStepsPhi(1); + SetStepsEta(1); + + // Number of particles per gun + particleGun = new G4ParticleGun(n_particle); + + // Getting particle definition + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* particle = particleTable->FindParticle(particleName); + particleGun->SetParticleDefinition(particle); + + // Setting particle properties + particleGun->SetParticleEnergy(particleEnergy); + particleGun->SetParticleMomentumDirection(particleDir); + particleGun->SetParticlePosition(particlePosition); + print(0); +} + +CCalPrimaryGeneratorAction::~CCalPrimaryGeneratorAction() { + if (gunMessenger) + delete gunMessenger; + if (particleGun) + delete particleGun; +} + +void CCalPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { + + if (isInitialized == 0) initialize(); + + if (generatorInput == singleRandom) { + particleEnergy = RandFlat::shoot(energyMin,energyMax); + particleGun->SetParticleEnergy(particleEnergy); + + G4double eta = RandFlat::shoot(etaMin,etaMax); + G4double phi = RandFlat::shoot(phiMin,phiMax); + G4double theta = atan(exp(-eta))*2.; + G4double randomX = sin(theta)*cos(phi); + G4double randomY = sin(theta)*sin(phi); + G4double randomZ = cos(theta); + + particleDir = G4ThreeVector(randomX,randomY,randomZ); + particleGun->SetParticleMomentumDirection(particleDir); +#ifdef debug + if (verboseLevel >= 2 ) { + G4cout << "Energy " << particleEnergy/GeV << " GeV; Theta " + << theta/deg << " degree; Phi " << phi/deg << " degree" << G4endl; + G4cout << "Shooting in " << particleDir << " direction "<< G4endl; + } +#endif + } else if (generatorInput == singleScan) { + G4double scanEtaStep, scanPhiStep; + if (scanSteps == 0) { + scanPhiStep = (phiMax - phiMin) / phiSteps; + phiValue = phiMin - scanPhiStep; //first step is going to change scanCurrentPhiValue + etaValue = etaMin; + } + + scanEtaStep = (etaMax - etaMin) / etaSteps; + scanPhiStep = (phiMax - phiMin) / phiSteps; +#ifdef debug + if (verboseLevel > 2 ) { + G4cout << " scanEtaStep " << scanEtaStep << " # of Steps " << etaSteps + << G4endl; + G4cout << " scanPhiStep " << scanPhiStep << " # of Steps " << phiSteps + << G4endl; + } +#endif + + //----- First scan in phi, then in eta + if (phiMax - phiValue < 1.E-6 * scanPhiStep) { // !only <= 1.E6 steps allowed + if (etaMax - etaValue < 1.E-6 * scanEtaStep) { // !only <= 1.E6 steps allowed + G4cout << " Scan completed!" << G4endl; + return; + } else { + etaValue += scanEtaStep; + phiValue = phiMin; + } + } else { + phiValue += scanPhiStep; + } + G4double theta = atan(exp(-etaValue))*2.; + + G4double scanX = sin(theta)*cos(phiValue); + G4double scanY = sin(theta)*sin(phiValue); + G4double scanZ = cos(theta); + if (verboseLevel >= 2 ) { + G4cout << "Scan eta " << etaValue << " Phi " << phiValue/deg + << " theta " << theta/deg << G4endl; + } + particleDir = G4ThreeVector(scanX,scanY,scanZ); + particleGun->SetParticleMomentumDirection(particleDir); +#ifdef debug + if (verboseLevel > 2 ) { + G4cout << "Shooting in " << particleDir << " direction "<< G4endl; + } +#endif + scanSteps++; + } + + // Generate GEANT4 primary vertex + particleGun->GeneratePrimaryVertex(anEvent); +} + + +void CCalPrimaryGeneratorAction::SetVerboseLevel(G4int val){ + verboseLevel = val; +} + + +void CCalPrimaryGeneratorAction::SetRandom(G4String val) { + + if (val=="on") { + generatorInput = singleRandom; + print (1); + } else { + generatorInput = singleFixed; + print (1); + } +} + + +void CCalPrimaryGeneratorAction::SetScan(G4String val) { + + if (val=="on") { + generatorInput = singleScan; + scanSteps = 0; + print (1); + } else { + generatorInput = singleFixed; + print (1); + } +} + + +void CCalPrimaryGeneratorAction::SetMinimumEnergy(G4double p){ + + if (p <= 0.) { + G4cerr << "CCalPrimaryGeneratorAction::SetMinimumEnergy: value " << p/GeV + << "GeV is out of bounds, it will not be used" << G4endl; + G4cerr << " Should be >0. Please check" << G4endl; + } else { + energyMin = p; +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting min. value of energy to " + << energyMin/GeV << " GeV " << G4endl; + } +#endif + } +} + + +void CCalPrimaryGeneratorAction::SetMaximumEnergy(G4double p){ + + if (p <= 0.) { + G4cerr << "CCalPrimaryGeneratorAction::SetMaximumEnergy: value " << p/GeV + << "GeV is out of bounds, it will not be used" << G4endl; + G4cerr << " Should be >0. Please check" << G4endl; + } else { + energyMax = p; +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting max. value of energy to " + << energyMax/GeV << " GeV " << G4endl; + } +#endif + } +} + + +void CCalPrimaryGeneratorAction::SetMinimumPhi(G4double p){ + + if (fabs(p)>2.*pi) { + G4cerr << "CCalPrimaryGeneratorAction::SetMinimumPhi: setting value quite " + << "large" << G4endl; + G4cerr << " Should be given in radians - Please check" << G4endl; + } else { + phiMin = fabs(p); +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting min. value of phi to " + << phiMin << G4endl; + } +#endif + } +} + + +void CCalPrimaryGeneratorAction::SetMaximumPhi(G4double p){ + + if (fabs(p)>2.*pi) { + G4cerr << "CCalPrimaryGeneratorAction::SetMaximumPhi: setting value quite " + << "large" << G4endl; + G4cerr << " Should be given in radians - Please check" << G4endl; + } else { + phiMax = fabs(p); +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting max. value of phi to " + << phiMax << G4endl; + } +#endif + } +} + + +void CCalPrimaryGeneratorAction::SetStepsPhi(G4int val){ + + if (val <= 0) { + G4cerr << "CCalPrimaryGeneratorAction::SetStepsPhi: value " << val + << " is out of bounds, it will not be used" << G4endl; + G4cerr << " Should be > 0 Please check" << G4endl; + } else { + phiSteps = val; +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting no. of steps in phi to " + << phiSteps << G4endl; + } +#endif + } +} + + +void CCalPrimaryGeneratorAction::SetMinimumEta(G4double p){ + + etaMin = p; +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting min. value of eta to " + << etaMin << G4endl; + } +#endif +} + + +void CCalPrimaryGeneratorAction::SetMaximumEta(G4double p){ + + etaMax = p; +#ifdef debug + if (verboseLevel >= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting max. value of eta to " + << etaMax << G4endl; + } +#endif +} + + +void CCalPrimaryGeneratorAction::SetStepsEta(G4int val){ + + if (val <= 0) { + G4cerr<<"CCalPrimaryGeneratorAction::SetStepsEta: value " << val << " is out of bounds, it will not be used"< 0 Please check"<= 1 ) { + G4cout << " CCalPrimaryGeneratorAction: setting no. of steps in eta to " + << etaSteps << G4endl; + } +#endif + } +} + +void CCalPrimaryGeneratorAction::SetGunPosition(const G4ThreeVector & pos) const { + + particleGun->SetParticlePosition(pos); +} + +void CCalPrimaryGeneratorAction::SetRunNo(G4int val){ + G4RunManager::GetRunManager()->SetRunIDCounter( val ); +} + +void CCalPrimaryGeneratorAction::initialize(){ + + isInitialized = 1; + + print (1); +} + + +void CCalPrimaryGeneratorAction::print(G4int val){ + +#ifdef debug + if (verboseLevel >= val) { + + if (generatorInput == singleRandom) { + G4cout << G4endl + << "**********************************************************************" << G4endl + << "* *" << G4endl + << "* CCalPrimaryGeneratorAction DEFAULT Random Energy/Direction setting:*" << G4endl + << "* *" << G4endl + << "* *" << G4endl + << "* Energy in [ "<< energyMin/GeV << " - " << energyMax/GeV << "] (GeV) "<< G4endl + << "* Phi angle in [ "<< phiMin << " - " << phiMax << "] (rad) "<< G4endl + << "* [ "<< phiMin/degree << " - " << phiMax/degree << "] (deg) "<< G4endl + << "* Eta in [ "<< etaMin << " - " << etaMax << "] "<< G4endl + << "* *" << G4endl + << "* *" << G4endl + << "**********************************************************************" << G4endl; + } else if (generatorInput == singleScan) { + G4cout << G4endl + << "**********************************************************************" << G4endl + << "* *" << G4endl + << "* CCalPrimaryGeneratorAction DEFAULT Scan Direction settings : *" << G4endl + << "* *" << G4endl + << "* *" << G4endl + << "* Phi angle in [ " << phiMin/degree << " - " << phiMax/degree << "] (deg) " << G4endl + << "* Eta in [ " << etaMin << " - " << etaMax << "] " << G4endl + << "* Steps along eta " << etaSteps << " and along phi " << phiSteps << G4endl + << "* *" << G4endl + << "* *" << G4endl + << "**********************************************************************" << G4endl; + } else if (generatorInput == singleFixed) { + G4cout << G4endl + << "*******************************************************************" << G4endl + << "* *" << G4endl + << "* CCalPrimaryGeneratorAction: Current settings : *" << G4endl + << "* *" << G4endl + << "* " << particleGun->GetNumberOfParticles() + << " " << particleGun->GetParticleDefinition()->GetParticleName() + << " of " << particleGun->GetParticleEnergy()/GeV << " GeV" << G4endl + << "* will be shot from " << particleGun->GetParticlePosition() << G4endl; + G4cout << "* in direction " << particleGun->GetParticleMomentumDirection() << G4endl; + G4cout << "* *" << G4endl + << "* *" << G4endl + << "*******************************************************************" << G4endl; + } + } +#endif + +} + diff --git a/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorMessenger.cc b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..4d77a0c4cb --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorMessenger.cc @@ -0,0 +1,186 @@ +// +// ******************************************************************** +// * 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: CCalPrimaryGeneratorMessenger.cc +// Description: CCalPrimaryGeneratorMessenger adds new commands for +// primary generator action +/////////////////////////////////////////////////////////////////////////////// +#include "CCalPrimaryGeneratorMessenger.hh" +#include "CCalPrimaryGeneratorAction.hh" + +#include "G4UImanager.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithADouble.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "globals.hh" + +#include "PhysicalConstants.h" + +CCalPrimaryGeneratorMessenger::CCalPrimaryGeneratorMessenger(CCalPrimaryGeneratorAction* myGun) : myAction(myGun) { + + verboseCmd = new G4UIcmdWithAnInteger("/CCal/generator/verbose",this); + verboseCmd->SetGuidance("set Verbosity level "); + verboseCmd->SetParameterName("value",true); + verboseCmd->SetDefaultValue(0); + verboseCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + rndmCmd = new G4UIcmdWithAString("/CCal/generator/random",this); + rndmCmd->SetGuidance("Choose randomly energy and direction of the incident particle."); + rndmCmd->SetGuidance(" Choice : on,off(default)"); + rndmCmd->SetParameterName("choice",true); + rndmCmd->SetDefaultValue("off"); + rndmCmd->SetCandidates("on off ON OFF"); + rndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + scanCmd = new G4UIcmdWithAString("/CCal/generator/scan",this); + scanCmd->SetGuidance("Scan eta and phi ranges with single incident particle"); + scanCmd->SetGuidance(" Choice : on,off(default)"); + scanCmd->SetGuidance(" Ranges : etamin/max, phimin/max are set by other commands "); + scanCmd->SetParameterName("choice",true); + scanCmd->SetDefaultValue("off"); + scanCmd->SetCandidates("on off ON OFF"); + scanCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + minEnergyCmd = new G4UIcmdWithADoubleAndUnit("/CCal/generator/minEnergy",this); + minEnergyCmd->SetGuidance("Set minimum Energy for the incident particle."); + minEnergyCmd->SetParameterName("value",true); + minEnergyCmd->SetDefaultValue(1.); + minEnergyCmd->SetDefaultUnit("GeV"); + minEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + maxEnergyCmd = new G4UIcmdWithADoubleAndUnit("/CCal/generator/maxEnergy",this); + maxEnergyCmd->SetGuidance("Set maximum Energy for the incident particle."); + maxEnergyCmd->SetParameterName("value",true); + maxEnergyCmd->SetDefaultValue(1.); + maxEnergyCmd->SetDefaultUnit("TeV"); + maxEnergyCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + minPhiCmd = new G4UIcmdWithADoubleAndUnit("/CCal/generator/minPhi",this); + minPhiCmd->SetGuidance("Set minimum Phi angle for the incident particle direction"); + minPhiCmd->SetGuidance(" Choice : from 0 to 2*pi "); + minPhiCmd->SetParameterName("value",true); + minPhiCmd->SetDefaultValue(0); + minPhiCmd->SetDefaultUnit("radian"); + minPhiCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + maxPhiCmd = new G4UIcmdWithADoubleAndUnit("/CCal/generator/maxPhi",this); + maxPhiCmd->SetGuidance("Set maximum Phi angle for the incident particle direction"); + maxPhiCmd->SetGuidance(" Choice : from 0 to 2*pi "); + maxPhiCmd->SetParameterName("value",true); + maxPhiCmd->SetDefaultValue(2.*pi); + maxPhiCmd->SetDefaultUnit("radian"); + maxPhiCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + stepsPhiCmd = new G4UIcmdWithAnInteger("/CCal/generator/stepsPhi",this); + stepsPhiCmd->SetGuidance("number of steps along Phi for scan "); + stepsPhiCmd->SetParameterName("value",true); + stepsPhiCmd->SetDefaultValue(1); + stepsPhiCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + minEtaCmd = new G4UIcmdWithADouble("/CCal/generator/minEta",this); + minEtaCmd->SetGuidance("Set minimum Eta angle for the incident particle direction"); + minEtaCmd->SetGuidance(" Choice : from 0 to infinity"); + minEtaCmd->SetParameterName("value",true); + minEtaCmd->SetDefaultValue(0); + minEtaCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + maxEtaCmd = new G4UIcmdWithADouble("/CCal/generator/maxEta",this); + maxEtaCmd->SetGuidance("Set maximum Eta angle for the incident particle direction"); + maxEtaCmd->SetGuidance(" Choice : from 0 to infinity"); + maxEtaCmd->SetParameterName("value",true); + maxEtaCmd->SetDefaultValue(3.5); + maxEtaCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + stepsEtaCmd = new G4UIcmdWithAnInteger("/CCal/generator/stepsEta",this); + stepsEtaCmd->SetGuidance("number of steps along Eta for scan "); + stepsEtaCmd->SetParameterName("value",true); + stepsEtaCmd->SetDefaultValue(1); + stepsEtaCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + runNoCmd = new G4UIcmdWithAnInteger("/CCal/generator/runNo",this); + runNoCmd->SetGuidance("set the run number "); + runNoCmd->SetParameterName("value",true); + runNoCmd->SetDefaultValue(0); + runNoCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + +} + +CCalPrimaryGeneratorMessenger::~CCalPrimaryGeneratorMessenger() { + + if (verboseCmd) + delete verboseCmd; + if (scanCmd) + delete rndmCmd; + if (scanCmd) + delete scanCmd; + if (minEnergyCmd) + delete minEnergyCmd; + if (maxEnergyCmd) + delete maxEnergyCmd; + if (minPhiCmd) + delete minPhiCmd; + if (maxPhiCmd) + delete maxPhiCmd; + if (stepsPhiCmd) + delete stepsPhiCmd; + if (minEtaCmd) + delete minEtaCmd; + if (maxEtaCmd) + delete maxEtaCmd; + if (stepsEtaCmd) + delete stepsEtaCmd; + if (runNoCmd) + delete runNoCmd; + +} + +void CCalPrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command, + G4String newValues) { + if (command == verboseCmd) + myAction->SetVerboseLevel(verboseCmd->GetNewIntValue(newValues)); + else if (command == rndmCmd) + myAction->SetRandom(newValues); + else if (command == scanCmd) + myAction->SetScan(newValues); + else if (command == minEnergyCmd) + myAction->SetMinimumEnergy(minEnergyCmd->GetNewDoubleValue(newValues)); + else if (command == maxEnergyCmd) + myAction->SetMaximumEnergy(maxEnergyCmd->GetNewDoubleValue(newValues)); + else if (command == minPhiCmd) + myAction->SetMinimumPhi(minPhiCmd->GetNewDoubleValue(newValues)); + else if (command == maxPhiCmd) + myAction->SetMaximumPhi(maxPhiCmd->GetNewDoubleValue(newValues)); + else if (command == stepsPhiCmd) + myAction->SetStepsPhi(stepsPhiCmd->GetNewIntValue(newValues)); + else if (command == minEtaCmd) + myAction->SetMinimumEta(minEtaCmd->GetNewDoubleValue(newValues)); + else if (command == maxEtaCmd) + myAction->SetMaximumEta(maxEtaCmd->GetNewDoubleValue(newValues)); + else if (command == stepsEtaCmd) + myAction->SetStepsEta(stepsEtaCmd->GetNewIntValue(newValues)); + else if (command == runNoCmd) + myAction->SetRunNo(runNoCmd->GetNewIntValue(newValues)); + +} diff --git a/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc b/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc new file mode 100644 index 0000000000..69e4c93b7a --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc @@ -0,0 +1,287 @@ +// +// ******************************************************************** +// * 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: CCalRotationMatrixFactory.cc +// Description: CCalRotationFactory is a factory class to define all rotation +// matrices used in geometry building +/////////////////////////////////////////////////////////////////////////////// +#include "CCalRotationMatrixFactory.hh" + +#include "CCalutils.hh" + +#include "g4std/fstream" +#include + +//#define debug +//#define ddebug + +CCalRotationMatrixFactory * CCalRotationMatrixFactory::instance = 0; +G4String CCalRotationMatrixFactory::file=""; + +CCalRotationMatrixFactory* CCalRotationMatrixFactory::getInstance(const G4String & rotfile){ + if (rotfile=="" || rotfile==file) + return getInstance(); + else if (file="") { + file=rotfile; + return getInstance(); + } else { + G4cerr << "ERROR: Trying to get Rotation Matrices from " << rotfile + << " when previously were retrieved from " << file <<"." << G4endl; + return 0; + } +} + + +CCalRotationMatrixFactory* CCalRotationMatrixFactory::getInstance(){ + if (file=="") { + G4cerr << "ERROR: You haven't defined which file to use for materials in " + << "CCalRotationMatrixFactory::getInstance(G4String)" << G4endl; + return 0; + } + + if (instance==0) { + instance = new CCalRotationMatrixFactory; + return instance; + } + else + return instance; +} + +void CCalRotationMatrixFactory::setFileName(const G4String& rotfile) { + if (rotfile!=file && file!="") { + G4cerr << "ERROR: Trying to change Rotation Matrices file name to " + << rotfile << "." << G4endl; + G4cerr << " Using previous file: " << file << G4endl; + } + file=rotfile; +} + +CCalRotationMatrixFactory::~CCalRotationMatrixFactory(){ + G4RotationMatrixTableIterator i; + for(i=theMatrices.begin(); i != theMatrices.end(); ++i) { + delete (*i).second; + }; + theMatrices.clear(); +} + +G4RotationMatrix* CCalRotationMatrixFactory::findMatrix(const G4String & rot) { + G4RotationMatrix* retrot=0; + //Rotation :NULL is no rotation so a null pointer is returned + if (rot != ":NULL") { + //retrot untouched if rot not found!!! + G4RotationMatrixTableIterator it = theMatrices.find(rot); + if (it != theMatrices.end()) + retrot = (*it).second; + } + + return retrot; //!!!Maybe a treatment on not-found case needed. +} + +G4RotationMatrix* CCalRotationMatrixFactory::AddMatrix(const G4String& name, + G4double th1, + G4double phi1, + G4double th2, + G4double phi2, + G4double th3, + G4double phi3){ + G4double sinth1, sinth2, sinth3, costh1, costh2, costh3; + G4double sinph1, sinph2, sinph3, cosph1, cosph2, cosph3; + G4double TH1 = th1/deg, TH2 = th2/deg, TH3 = th3/deg; + G4double PH1 = phi1/deg, PH2 = phi2/deg, PH3 = phi3/deg; + + if (TH1 == 0.0 || TH1 == 360) { + sinth1 = 0.0; costh1 = 1.0; + } else if (TH1 == 90.0 || TH1 == -270) { + sinth1 = 1.0; costh1 = 0.0; + } else if (TH1 == 180.0 || TH1 == -180.0) { + sinth1 = 0.0; costh1 = -1.0; + } else if (TH1 == 270.0 || TH1 == -90.0) { + sinth1 = -1.0; costh1 = 0.0; + } else { + sinth1 = sin(th1); costh1 = cos(th1); + } + + if (TH2 == 0.0 || TH2 == 360) { + sinth2 = 0.0; costh2 = 1.0; + } else if (TH2 == 90.0 || TH2 == -270) { + sinth2 = 1.0; costh2 = 0.0; + } else if (TH2 == 180.0 || TH2 == -180.0) { + sinth2 = 0.0; costh2 = -1.0; + } else if (TH2 == 270.0 || TH2 == -90.0) { + sinth2 = -1.0; costh2 = 0.0; + } else { + sinth2 = sin(th2); costh2 = cos(th2); + } + + if (TH3 == 0.0 || TH3 == 360) { + sinth3 = 0.0; costh3 = 1.0; + } else if (TH3 == 90.0 || TH2 == -270) { + sinth3 = 1.0; costh3 = 0.0; + } else if (TH3 == 180.0 || TH3 == -180.0) { + sinth3 = 0.0; costh3 = -1.0; + } else if (TH3 == 270.0 || TH3 == -90.0) { + sinth3 = -1.0; costh3 = 0.0; + } else { + sinth3 = sin(th3); costh3 = cos(th3); + } + + if (PH1 == 0.0 || PH1 == 360) { + sinph1 = 0.0; cosph1 = 1.0; + } else if (PH1 == 90.0 || PH1 == -270) { + sinph1 = 1.0; cosph1 = 0.0; + } else if (PH1 == 180.0 || PH1 == -180.0) { + sinph1 = 0.0; cosph1 = -1.0; + } else if (PH1 == 270.0 || PH1 == -90.0) { + sinph1 = -1.0; cosph1 = 0.0; + } else { + sinph1 = sin(phi1); cosph1 = cos(phi1); + } + + if (PH2 == 0.0 || PH2 == 360) { + sinph2 = 0.0; cosph2 = 1.0; + } else if (PH2 == 90.0 || PH2 == -270) { + sinph2 = 1.0; cosph2 = 0.0; + } else if (PH2 == 180.0 || PH2 == -180.0) { + sinph2 = 0.0; cosph2 = -1.0; + } else if (PH2 == 270.0 || PH2 == -90.0) { + sinph2 = -1.0; cosph2 = 0.0; + } else { + sinph2 = sin(phi2); cosph2 = cos(phi2); + } + + if (PH3 == 0.0 || PH3 == 360) { + sinph3 = 0.0; cosph3 = 1.0; + } else if (PH3 == 90.0 || PH3 == -270) { + sinph3 = 1.0; cosph3 = 0.0; + } else if (PH3 == 180.0 || PH3 == -180.0) { + sinph3 = 0.0; cosph3 = -1.0; + } else if (PH3 == 270.0 || PH3 == -90.0) { + sinph3 = -1.0; cosph3 = 0.0; + } else { + sinph3 = sin(phi3); cosph3 = cos(phi3); + } + + //xprime axis coordinates + Hep3Vector xprime(sinth1*cosph1,sinth1*sinph1,costh1); + //yprime axis coordinates + Hep3Vector yprime(sinth2*cosph2,sinth2*sinph2,costh2); + //zprime axis coordinates + Hep3Vector zprime(sinth3*cosph3,sinth3*sinph3,costh3); + +#ifdef ddebug + G4cout << xprime << '\t'; G4cout << yprime << '\t'; G4cout << zprime << G4endl; +#endif + G4RotationMatrix *rotMat = new G4RotationMatrix(); + rotMat->rotateAxes(xprime, yprime, zprime); + if (*rotMat == G4RotationMatrix()) { + // G4cerr << "WARNING: Matrix " << name << " will not be created as a rotation matrix." + G4cerr << "WARNING: Matrix " << name << " is = identity matrix. It will not be created as a rotation matrix." + << G4endl; + delete rotMat; + rotMat=0; + } else { + rotMat->invert(); + theMatrices[name]=rotMat; +#ifdef ddebug + G4cout << *rotMat << G4endl; +#endif + } + + return rotMat; +} + +CCalRotationMatrixFactory::CCalRotationMatrixFactory():theMatrices(){ + + G4String path = getenv("CCAL_GLOBALPATH"); + G4cout << " ==> Opening file " << file << "..." << G4endl; + G4std::ifstream is; + bool ok = openGeomFile(is, path, file); + if (!ok) { + G4cerr << "ERROR: Could not open file " << file << " ... Exiting!" << G4endl; + exit(-1); + } + + ////////////////////////////////////////////////// + // Find *DO ROTM + findDO(is, G4String("ROTM")); + + char rubish[256]; + G4String name; + +#ifdef debug + G4cout << " ==> Reading Rotation Matrices... " << G4endl; + G4cout << " Name\tTheta1\tPhi1\tTheta2\tPhi2\tTheta3\tPhi3"<< G4endl; +#endif + + is >> name; + while(name!="*ENDDO") { + if (name.index("#.")==0) { //It is a comment.Skip line. + is.getline(rubish,256,'\n'); + } else { +#ifdef debug + G4cout << " " << name <<'\t'; +#endif + G4double th1, phi1, th2, phi2, th3, phi3; + //Get xprime axis angles + is >> th1 >> phi1; +#ifdef debug + G4cout << th1 << '\t' << phi1 << '\t'; +#endif + //Get yprime axis angles + is >> th2 >> phi2; +#ifdef debug + G4cout << th2 << '\t' << phi2 << '\t'; +#endif + //Get zprime axis angles + is >> th3 >> phi3; +#ifdef debug + G4cout << th3 << '\t' << phi3 << '\t'; +#endif + + is.getline(rubish,256,'\n'); +#ifdef debug + G4cout << rubish << G4endl; +#endif + + AddMatrix(name, th1*deg, phi1*deg, th2*deg, phi2*deg, th3*deg, phi3*deg); + } + + is >> name; + }; + + is.close(); + G4cout << " " << theMatrices.size() << " rotation matrices read in." << G4endl; +} + +G4std::ostream& operator<<(G4std::ostream& os , const G4RotationMatrix & rot){ + // os << "( " << rot.xx() << tab << rot.xy() << tab << rot.xz() << " )" << G4endl; + // os << "( " << rot.yx() << tab << rot.yy() << tab << rot.yz() << " )" << G4endl; + // os << "( " << rot.zx() << tab << rot.zy() << tab << rot.zz() << " )" << G4endl; + + os << "[" + << rot.thetaX()/deg << tab << rot.phiX()/deg << tab + << rot.thetaY()/deg << tab << rot.phiY()/deg << tab + << rot.thetaZ()/deg << tab << rot.phiZ()/deg << "]" + << G4endl; + return os; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalRunAction.cc b/examples/advanced/composite_calorimeter/src/CCalRunAction.cc new file mode 100644 index 0000000000..f3030dda90 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalRunAction.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalRunAction.cc +// Description: A class for providing user actions at begin and end of run +/////////////////////////////////////////////////////////////////////////////// +#include "CCalRunAction.hh" + +#include "globals.hh" +#include "G4Run.hh" + +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +#ifdef G4ANALYSIS_USE +#include "CCalAnalysis.hh" +#endif + + +void CCalRunAction::BeginOfRunAction(const G4Run* aRun) { + + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + // A.R. Added for visualization of events. + if ( G4VVisManager::GetConcreteInstance() ) { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } + +#ifdef G4ANALYSIS_USE + CCalAnalysis* analysis = CCalAnalysis::getInstance(); + analysis->BeginOfRun(aRun->GetRunID()); +#endif + +} + + +void CCalRunAction::EndOfRunAction(const G4Run* aRun) { + + G4cout << "Executing CCalRunAction" << G4endl; + + // A.R. Added for visualization of events. + if (G4VVisManager::GetConcreteInstance()) { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } + +#ifdef G4ANALYSIS_USE + CCalAnalysis* analysis = CCalAnalysis::getInstance(); + analysis->EndOfRun(aRun->GetRunID()); +#endif + +} + diff --git a/examples/advanced/composite_calorimeter/src/CCalSDList.cc b/examples/advanced/composite_calorimeter/src/CCalSDList.cc new file mode 100644 index 0000000000..a636e25bbb --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalSDList.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalSDList.cc +// Description: Records names of all SD objects +/////////////////////////////////////////////////////////////////////////////// +#include "CCalSDList.hh" + +CCalSDList* CCalSDList::theList = 0; + +CCalSDList::CCalSDList(){} +CCalSDList::~CCalSDList(){ delete theList;} + +CCalSDList* CCalSDList::getInstance(){ + + if (theList == 0) + theList = new CCalSDList; + return theList; +} + +void CCalSDList::addCalo(nameType name){ + + theList->caloSD.push_back(name); +} + +void CCalSDList::addTracker(nameType name){ + + theList->trackerSD.push_back(name); +} + +nameType CCalSDList::getCaloSDName(int i){ + + if (i>=theList->getNumberOfCaloSD() || i<0) { + G4cout << "CCalSDList invalid calo SD no: " << i << " max is " + << theList->getNumberOfCaloSD() << G4endl; + return " "; + } else + return theList->caloSD[i]; +} + +nameType CCalSDList::getTrackerSDName(int i){ + + if (i>=theList->getNumberOfTrackerSD() || i<0) { + G4cout << "CCalSDList invalid tracker SD no: " << i << " max is " + << theList->getNumberOfTrackerSD() << G4endl; + return " "; + } + else + return theList->trackerSD[i]; +} + + +int CCalSDList::getNumberOfCaloSD(){ + + return theList->caloSD.size(); +} + +int CCalSDList::getNumberOfTrackerSD(){ + + return theList->trackerSD.size(); +} + + +CCalSDList& CCalSDList::operator=(CCalSDList&){ + + return *this; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalSensAssign.cc b/examples/advanced/composite_calorimeter/src/CCalSensAssign.cc new file mode 100644 index 0000000000..881e08c56c --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalSensAssign.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalSensAssign.cc +// Description: CCalSenAssign creates and assigns the sensitive detetctors +/////////////////////////////////////////////////////////////////////////////// +#include "CCalSensAssign.hh" +#include "CCalStackingAction.hh" +#include "CCalSensitiveDetectors.hh" +#include "CCaloSD.hh" + +#include "G4RunManager.hh" +#include "G4SDManager.hh" + +//#define debug + +CCalSensAssign* CCalSensAssign::theInstance = 0; + + +CCalSensAssign* CCalSensAssign::getInstance() { + if (!theInstance) theInstance = new CCalSensAssign; + return theInstance; +} + + +CCalSensAssign::CCalSensAssign() {} + + +bool CCalSensAssign::assign() { + bool result = false; + + CCalSensitiveDetectors* sensDets = CCalSensitiveDetectors::getInstance(); + for (G4std::map::const_iterator sens_it = sens_.begin(); + sens_it!=sens_.end(); ++sens_it) { + G4String name = sens_it->first; + G4VSensitiveDetector* sens = sens_it->second; + if (sensDets->setSensitive(name, sens)) { + G4SDManager::GetSDMpointer()->AddNewDetector(sens); +#ifdef debug + G4cout << "Add " << sens->GetName() + << " to the list of Sensitive detetctors" << G4endl; +#endif + } + } + + return result; +} + +bool CCalSensAssign::stackingAction() { + + bool result = false; + //Create the stacking manager required by Calorimeter + if (G4RunManager::GetRunManager()->GetUserStackingAction() == 0) { + G4cout << "***CCalSensAssign creating a CCalStackingAction ***" << G4endl; + G4RunManager::GetRunManager()->SetUserAction(new CCalStackingAction); + result = true; + } else { + G4cout << "***CCalSens: a StackingAction already exists. " + << "Maybe not the one CCaloSD needs?" << G4endl; + } + return result; +} + + +bool CCalSensAssign::addCaloSD(G4String name, + CCalVOrganization* numberingScheme) { + sens_[name] = new CCaloSD(name, numberingScheme); + return true; + +} diff --git a/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc b/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc new file mode 100644 index 0000000000..f57e403fc2 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalSensitiveConfiguration.cc +// Description: CCalSensitiveConfiguration handles the declaration of +// sensitive detectors and visibilities +/////////////////////////////////////////////////////////////////////////////// +#include "CCalSensitiveConfiguration.hh" + +#include "g4std/fstream" +#include + + +//Comment/Uncomment next line to hide/show debug information +//#define debug + + +CCalSensitiveConfiguration * CCalSensitiveConfiguration::instance = 0; + +CCalSensitiveConfiguration* CCalSensitiveConfiguration::getInstance(){ + if (!instance) + instance = new CCalSensitiveConfiguration; + return instance; +} + + +int CCalSensitiveConfiguration::getSensitiveFlag(const G4String& n) /*const*/ { + int flag = -1; + CCalSensitiveConfIterator it = theConfiguration.find(n); + + if (it != theConfiguration.end()) + flag = (*it).second.SensitiveFlag; + else { + G4cerr << "ERROR: In CCalSensitiveConfiguration::getConstructFlag(const " + << "G4String& n)" << G4endl + << " " << n << " not found in configuration file" << G4endl; + } + + return flag; +} + +G4String CCalSensitiveConfiguration::getFileName(const G4String& n) /*const*/ { + G4String fn; + CCalSensitiveConfIterator it = theConfiguration.find(n); + + if (it != theConfiguration.end()) + fn = (*it).second.FileName; + else { + G4cerr << "ERROR: In CCalSensitiveConfiguration::getConstructFlag(const " + << "G4String& n)" << G4endl + << " " << n << " not found in configuration file" << G4endl; + } + + return fn; +} + +CCalSensitiveConfiguration::CCalSensitiveConfiguration(): + theConfiguration() { + + /////////////////////////////////////////////////////////////// + // Open the file + G4String pathName = getenv("CCAL_CONFPATH"); + G4String fileenv = getenv("CCAL_SENSITIVECONF"); + if (!pathName || !fileenv) { + G4cerr << "ERROR: CCAL_SENSITIVECONF and/or CCAL_CONFPATH not set" << G4endl + << " Set them to the sensitive configuration file/path" << G4endl; + exit(-2); + } + + G4cout << " ==> Opening file " << fileenv << "..." << G4endl; + G4std::ifstream is; + bool ok = openGeomFile(is, pathName, fileenv); + if (!ok) + exit(-1); + + G4String name; + GCInfo gcinfo; + + while (is) { + readName(is, name); + readName(is, gcinfo.FileName); + is >> gcinfo.SensitiveFlag >> jump; +#ifdef debug + G4cout << "CCalSensitiveConfiguration constructor: Read \"" << name + << "\" \"" << gcinfo.FileName << "\"" << tab << gcinfo.SensitiveFlag + << G4endl; +#endif + theConfiguration[name] = gcinfo; + } + + + /////////////////////////////////////////////////////////////// + // Close the file + is.close(); + G4cout << " <== Closed file " << fileenv << G4endl; +} diff --git a/examples/advanced/composite_calorimeter/src/CCalSensitiveDetectors.cc b/examples/advanced/composite_calorimeter/src/CCalSensitiveDetectors.cc new file mode 100644 index 0000000000..6c44451d09 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalSensitiveDetectors.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. * +// ******************************************************************** +// +/////////////////////////////////////////////////////////////////////////////// +// File: CCalSensitiveDetectors.cc +// Description: Provides a map of logicalvolume pointers which can be sensitive +/////////////////////////////////////////////////////////////////////////////// + +#include "CCalSensitiveDetectors.hh" + +//#define debug + +CCalSensitiveDetectors* CCalSensitiveDetectors::theInstance = 0; + + +CCalSensitiveDetectors* CCalSensitiveDetectors::getInstance() { + if (!theInstance) theInstance = new CCalSensitiveDetectors; + return theInstance; +} + + +void CCalSensitiveDetectors::registerVolume (const G4String& string, + G4LogicalVolume* logv) { + + theLVs.insert(mmslv::value_type(string, logv)); +#ifdef debug + G4cout << "CCalSensitiveDetectors : Register " << logv->GetName() + << " in category " << string << G4endl; +#endif +} + +G4std::vector CCalSensitiveDetectors::getVolumes (const G4String& string, + bool exist) { + + mmslv::const_iterator mmscite; + G4std::pair mmsdi; + mmsdi = theLVs.equal_range(string); + G4std::vector lvs; + for (mmscite = mmsdi.first; mmscite != mmsdi.second; mmscite++ ) { + lvs.push_back(const_cast((*mmscite).second)); + } + + if (exist) G4cout << "CCalSensitiveDetector : " << lvs.size() + << " detectors for " << string << G4endl; + + return lvs; +} + + +bool CCalSensitiveDetectors::setSensitive(const G4String& string, + G4VSensitiveDetector* sens) { + + bool result=false; + mmslv::const_iterator mmscite; + G4std::pair mmsdi; + mmsdi = theLVs.equal_range(string); + for (mmscite = mmsdi.first; mmscite != mmsdi.second; mmscite++ ) { + G4LogicalVolume* lv = const_cast((*mmscite).second); + lv ->SetSensitiveDetector(sens); + result = true; +#ifdef debug + G4cout << " Associate SD " << sens->GetName() << " to " << lv->GetName() + << G4endl; +#endif + } + return result; + +} diff --git a/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc b/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc new file mode 100644 index 0000000000..972ed2b001 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc @@ -0,0 +1,209 @@ +// +// ******************************************************************** +// * 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: CCalStackingAction.cc +// Description: Stacking action needed for the application +/////////////////////////////////////////////////////////////////////////////// +#include "CCalStackingAction.hh" +#include "G4StackManager.hh" + +#include "G4SDManager.hh" +#include "CCaloSD.hh" +#include "CCalSDList.hh" +#include "G4RunManager.hh" +#include "G4Navigator.hh" + +//#define debug +//#define ddebug + +CCalStackingAction::CCalStackingAction(): +isInitialized(false) +{} + + +CCalStackingAction::~CCalStackingAction(){} + + +void CCalStackingAction::PrepareNewEvent(){ + + if(!isInitialized) initialize(); + stage = firstStage; + nurgent = 0; + acceptSecondaries = 1; + +} + +void CCalStackingAction::initialize(){ + + isInitialized = true; + + numberOfSD = CCalSDList::getInstance()->getNumberOfCaloSD(); +#ifdef debug + cout << "CCalStackingAction look for " << numberOfSD + << " calorimeter-like SD" << endl; +#endif + int i = 0; + for (i=0; igetCaloSDName(i)); + SDName[i] = theName; +#ifdef debug + cout << "Found SD name " << theName << endl; +#endif + theCaloSD[i] = 0; + } + + G4SDManager* sd = G4SDManager::GetSDMpointerIfExist(); + if (sd != 0) { + + for (i=0; iFindSensitiveDetector(SDName[i]); + if (aSD==0) { +#ifdef debug + cout << "CCalStackingAction::initialize: No SD with name " << SDName[i] + << " in this Setup " << endl; +#endif + } else { + theCaloSD[i] = dynamic_cast(aSD); + theCaloSD[i]->SetPrimaryID(0); + } + } +#ifdef debug + cout << "CCalStackingAction::initialize: Could not get SD Manager !" + << endl; +#endif + } + +} + +G4ClassificationOfNewTrack CCalStackingAction::ClassifyNewTrack(const G4Track* aTrack){ + + G4ClassificationOfNewTrack classification=fKill; + int parentID = aTrack->GetParentID(); +#ifdef ddebug + G4TrackStatus status = aTrack->GetTrackStatus(); + cout << "Classifying track " << aTrack->GetTrackID() + << " with status " << aTrack->GetTrackStatus() << endl; +#endif + + if (parentID < 0) { +#ifdef debug + cout << "Killing track " << aTrack->GetTrackID() + << " from previous event. Should not happen" << endl; + cout << "returning classification= " << classification << endl; +#endif + return classification= fKill; + } + + if (aTrack->GetDefinition()->GetParticleName() == "gamma" && + aTrack->GetKineticEnergy() < 1.*eV) { +#ifdef debug + cout << "Kills particle " << aTrack->GetDefinition()->GetParticleName() + << " of energy " << aTrack->GetKineticEnergy()/MeV << " MeV" << endl; +#endif + return classification= fKill; + } + + if (stageGetTrackID()); + } + else classification = fWaiting; + } + + /////////////////// + /// SECONDARIES /// + /////////////////// + + if (parentID > 0) { + if (acceptSecondaries == 1) { + if (trackStartsInCalo(const_cast(aTrack))!=0 ) + classification = fUrgent; + else + classification = fWaiting; + } else { + if(nurgent == 0){ + nurgent++; + classification = fUrgent; + setPrimaryID(aTrack->GetTrackID()); + } else + classification = fWaiting; + } + } + + + } else + classification = G4UserStackingAction::ClassifyNewTrack(aTrack); + +#ifdef ddebug + cout << " returning classification= " << classification + << " for track "<< aTrack->GetTrackID() << endl; +#endif + return classification; + +} + + +void CCalStackingAction::NewStage(){ + +#ifdef ddebug + cout << "In NewStage with stage = " << stage << endl; +#endif + if (stage ReClassify(); + acceptSecondaries = 1; + if (stackManager->GetNUrgentTrack() == 0) { + stage = stageLevel(stage+1); + } + + } +} + +G4bool CCalStackingAction::trackStartsInCalo(const G4Track* atrack){ + + /// This method should check that the secondary particle + /// was produced inside the detector calorimeter and + /// really is part of the shower. + /// If it has been produced before the calorimeter + /// for ex. Bremsstrahlung, it should be treated as a new + /// particle producing a new shower. + + return true; +} + +void CCalStackingAction::setPrimaryID(G4int id){ + + for (int i=0; iSetPrimaryID(id); + } + +} diff --git a/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc b/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc new file mode 100644 index 0000000000..d821486732 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalSteppingAction.cc @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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: CCalSeppingAction.cc +// Description: Study profiling during the steps +/////////////////////////////////////////////////////////////////////////////// +#include "CCalSteppingAction.hh" + +#include "G4SDManager.hh" +#include "G4StepPoint.hh" +#include "g4std/iostream" +#include "G4ThreeVector.hh" +#include + +#ifdef G4ANALYSIS_USE +#include "CCalAnalysis.hh" +#endif + + +CCalSteppingAction::CCalSteppingAction(){ + +#ifdef G4ANALYSIS_USE + CCalAnalysis* analysis = CCalAnalysis::getInstance(); + timeHistoMaxBin=analysis->maxbin(); +#endif + + int i; + for (i=0; i<40; i++){timeDeposit[i] = 0.;} + for (i=0; i<70; i++){LateralProfile[i] = 0.;} + +} + + +CCalSteppingAction::~CCalSteppingAction(){ + G4cout <<"Deleting CCalSteppingAction"<GetPostStepPoint(); + G4StepPoint* PreStepPoint= aStep->GetPreStepPoint(); + int TSliceID; + + TSliceID = (int) (PostStepPoint->GetGlobalTime() ) / nanosecond; + TSliceID = TSliceIDGetTotalEnergyDeposit() / GeV; + + G4ThreeVector HitPoint = 0.5*(PostStepPoint->GetPosition()+ + PreStepPoint->GetPosition()); + // Because the beam axis has been defined as the x-axis, + // the lateral displacement is given in terms of the y and z positions. + double perp = sqrt(HitPoint.y()*HitPoint.y()+HitPoint.z()*HitPoint.z()); + int radialPosition = G4std::min(69,int(perp/cm)); + LateralProfile[radialPosition] += aStep->GetTotalEnergyDeposit() / GeV; + +} + + +void CCalSteppingAction::endOfEvent(){ + +#ifdef G4ANALYSIS_USE + CCalAnalysis* analysis = CCalAnalysis::getInstance(); + analysis->InsertLateralProfile(LateralProfile); + analysis->InsertTime(timeDeposit); +#endif + + int i=0; + for (i=0; i<70; i++){LateralProfile[i] = 0.;} + for (i=0; i<40; i++){timeDeposit[i] = 0.;} + +} diff --git a/examples/extended/biasing/B05/src/B05PrimaryGeneratorAction.cc b/examples/advanced/composite_calorimeter/src/CCalVOrganization.cc similarity index 60% rename from examples/extended/biasing/B05/src/B05PrimaryGeneratorAction.cc rename to examples/advanced/composite_calorimeter/src/CCalVOrganization.cc index 2ba07d783a..23fcf47b58 100644 --- a/examples/extended/biasing/B05/src/B05PrimaryGeneratorAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalVOrganization.cc @@ -20,36 +20,36 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B05PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:44 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - +/////////////////////////////////////////////////////////////////////////////// +// File: CCalVOrganization.cc +// Description: Base class for definition of sensitive unit numbering schema +/////////////////////////////////////////////////////////////////////////////// +#include "CCalVOrganization.hh" #include "globals.hh" -#include "B05PrimaryGeneratorAction.hh" +int CCalVOrganization::Levels(const G4Step* aStep) const { -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4Neutron.hh" -#include "G4ThreeVector.hh" - -B05PrimaryGeneratorAction::B05PrimaryGeneratorAction() -{ - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); - particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); + //Find number of levels + G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); + int level = 0; + while (pv > 0) { + level++; + pv = pv->GetMother(); + } + return level; } -B05PrimaryGeneratorAction::~B05PrimaryGeneratorAction() -{ - delete particleGun; -} -void B05PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ - particleGun->GeneratePrimaryVertex(anEvent); +void CCalVOrganization::DetectorLevel(const G4Step* aStep, int& level, + int* copyno, G4String* name) const { + + //Get name and copy numbers + if (level > 0) { + G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); + for (int ii = level-1; ii >= 0; ii--) { + name[ii] = pv->GetName(); + copyno[ii] = pv->GetCopyNo(); + pv = pv->GetMother(); + } + } } diff --git a/examples/advanced/composite_calorimeter/src/CCalVisManager.cc b/examples/advanced/composite_calorimeter/src/CCalVisManager.cc new file mode 100644 index 0000000000..8de667ac5a --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalVisManager.cc @@ -0,0 +1,139 @@ +// +// ******************************************************************** +// * 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 "g4std/iostream" + +#ifdef G4VIS_USE +#include "CCalVisManager.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_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_RAYX +#include "G4RayX.hh" +#endif + +#ifdef G4VIS_USE_VRML +//#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + +#ifdef G4VIS_USE_VRMLFILE +//#include "G4VRML1File.hh" +#include "G4VRML2File.hh" +#endif + +CCalVisManager::CCalVisManager (G4int verboseLevel) { + SetVerboseLevel( verboseLevel ); +} + +void CCalVisManager::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_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_RAYX + RegisterGraphicsSystem (new G4RayX); +#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 diff --git a/examples/advanced/composite_calorimeter/src/CCalVisualisable.cc b/examples/advanced/composite_calorimeter/src/CCalVisualisable.cc new file mode 100644 index 0000000000..7aeea04d82 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalVisualisable.cc @@ -0,0 +1,168 @@ +// +// ******************************************************************** +// * 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: CCalVisualisable.cc +// Description: Sets visualisable attributes from .vis files +/////////////////////////////////////////////////////////////////////////////// +#include "CCalVisualisable.hh" + +#include "g4std/fstream" +#include "CCalutils.hh" + +//Comment/Uncomment next line to unset/set debug information printing +//#define debug + +const char* visEnvName = "CCAL_VISPATH"; +const char* CCalVisualisable::pathName=0; + +CCalVisualisable::CCalVisualisable(G4String file):visFile(file) { + if (!pathName) + setPath(); + setDefault(); + readFile(); +} + +bool CCalVisualisable::readFile(G4String file) { + visFile=file; + return readFile(); +} + +void CCalVisualisable::setDefault(){ + theParameters[Sensitive] = visParameters(true); + theParameters[Electronics] = visParameters(false); + theParameters[Support] = visParameters(false); + theParameters[Cable] = visParameters(false); + theParameters[OtherServices] = visParameters(false); + theParameters[PseudoVolumes] = visParameters(false); +} + +void CCalVisualisable::setColor(visType v, double r, double g, double b){ + theParameters[v].rColor=r; + theParameters[v].gColor=g; + theParameters[v].bColor=b; +} + +void CCalVisualisable::setPath() { + pathName = getenv(visEnvName); + if (!pathName) { + G4cerr << "ERROR: " << visEnvName << " environmental variable not set!" + << G4endl; + G4cerr << " Set it and restart." << G4endl; + exit(-333); + } +} + +bool CCalVisualisable::readFile() { + if (visFile=="") { + G4cerr << "ERROR: No file was specified from which to read Visualisation parameters" + << G4endl; + return false; + } + + /////////////////////////////////////////////////////////////// + //Let's open the file + G4cout << " ==> Opening file " << visFile + << " to read visualisation parameters..." + << G4endl; + + G4String pathname(pathName); + G4std::ifstream is; +#ifdef debug + G4cout << "Viualisable : Path " << pathname << " FIle " << visFile << G4endl; +#endif + bool ok = openGeomFile(is, pathname, visFile); + if (!ok) { + G4cout << "WARNING: Could not read " << visFile << G4endl; + G4cout << " Default visualization parameters will be used." << G4endl; + return false; + } + + while (is) { + G4String viewvol; + readName(is,viewvol); + + visType vt = Undefined; + if (viewvol=="Sensitive") + vt=Sensitive; + else if (viewvol=="Electronics") + vt=Electronics; + else if (viewvol=="Support") + vt=Support; + else if (viewvol=="Absorber") + vt=Absorber; + else if (viewvol=="Cable") + vt=Cable; + else if (viewvol=="OtherServices") + vt=OtherServices; + else if (viewvol=="PseudoVolumes") + vt=PseudoVolumes; + else { + vt=Undefined; + G4cerr << "WARNING: Unknown type of visualisable object \"" << viewvol + << "\"." << G4endl; + } + + + int isvisible, wireframe; + double r, g, b; + + is >> isvisible >> r >> g >> b >> wireframe >> jump; + + r=checkColorRange(r,'R'); + g=checkColorRange(g,'G'); + b=checkColorRange(b,'B'); + + if (vt!=Undefined) { +#ifdef debug + G4cout << tab << viewvol << tab << isvisible << tab + << r << " " << g << " "<< b << tab + << wireframe << G4endl; +#endif + theParameters[vt]=visParameters(isvisible, r, g, b, wireframe); + } + + } + + /////////////////////////////////////////////////////////////// + // Close the file + G4cout << " ==> Closing file " << visFile << G4endl; + is.close(); + + return true; +} + +double CCalVisualisable::checkColorRange(double cvalue, char ctype) const { + if (cvalue>1) { + G4cerr << "ERROR: In " << visFile << ". Color " << ctype << "=" + << cvalue << " > 1" << G4endl; + G4cerr << " It will be reset to 1." << G4endl; + return 1.; + } + if (cvalue<0) { + G4cerr << "ERROR: In " << visFile << ". Color " << ctype << "=" + << cvalue << " < 0" << G4endl; + G4cerr << " It will be reset to 0." << G4endl; + return 0.; + } + return cvalue; +} diff --git a/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc b/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc new file mode 100644 index 0000000000..1b7eb847ca --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc @@ -0,0 +1,149 @@ +// +// ******************************************************************** +// * 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: CCaloOrganization.cc +// Description: Packing, unpacking and other related utilities for +// calorimetric numbering schema +/////////////////////////////////////////////////////////////////////////////// +#include "CCaloOrganization.hh" + +//#define debug + +unsigned int CCaloOrganization::packindex(int det, int z, int eta, + int phi) const { + //So this is the actual encoding of the index: + //top 4 bits encode Detector type + // + // Should work for all calorimeter with no depth information + + unsigned int idx=(det&15)<<28; //bits 28-31 (21-23 are free for now) + idx+=(((z+1)/2)&1)<<20; //bits 20 + idx+=(eta&1023)<<10; //bits 10-19 + idx+=(phi&1023); //bits 0-9 +#ifdef debug + G4cout << " ECAL packing " << det << " " << z << " " << eta << " " << phi + << " into " << idx << G4endl; +#endif + return idx; +} + +unsigned int CCaloOrganization::packindex(int det, int depth, int z, int eta, + int phi) const { + //So this is the actual encoding of the index: + //top 4 bits encode Detector type + //next 4 bits encode depth information + // Should work for all calorimeter with no depth information + + unsigned int idx=(det&15)<<28; //bits 28-31 (21-23 are free for now) + idx+=(depth&15)<<24; //bits 24-27 + idx+=(z&1)<<20; //bits 20 + idx+=(eta&1023)<<10; //bits 10-19 + idx+=(phi&1023); //bits 0-9 +#ifdef debug + G4cout << " HCAL packing " << det << " " << depth << " " << z << " " << eta + << " " << phi << " into " << idx << G4endl; +#endif + return idx; +} + + +void CCaloOrganization::unpackindex(const unsigned int& idx, int& det, int& z, + int& eta, int& phi) const { + det = (idx>>28)&15; + z = (idx>>20)&1; + z = 2*z-1; + eta = (idx>>10)&1023; + phi = (idx&1023); +} + + +void CCaloOrganization::unpackindex(const unsigned int& idx, int& det, + int& depth, int& z, int& eta, + int& phi) const { + det = (idx>>28)&15; + depth=(idx>>24)&15; + z = (idx>>20)&1; + eta = (idx>>10)&1023; + phi = (idx&1023); +} + + +int CCaloOrganization::getUnitWithMaxEnergy(G4std::map >& themap){ + + //look for max + int UnitWithMaxEnergy = 0; + float maxEnergy = 0.; + + for(G4std::map >::iterator iter = themap.begin(); + iter != themap.end(); iter++){ + + if( maxEnergy < (*iter).second) { + maxEnergy = (*iter).second; + UnitWithMaxEnergy = (*iter).first; + } + } + G4cout << " *** max energy of " << maxEnergy << " MeV was found in Unit id " + << UnitWithMaxEnergy; + int det,z,eta,phi; + unpackindex(UnitWithMaxEnergy, det, z, eta, phi); + G4cout << " corresponding to z= " << z << " eta= " << eta << " phi = " << phi + << G4endl; + return UnitWithMaxEnergy; + +} + + +float CCaloOrganization::energyInMatrix(int nCellInEta, int nCellInPhi, + int crystalWithMaxEnergy, + G4std::map >& themap){ + + int det,z,eta,phi; + this->unpackindex(crystalWithMaxEnergy, det, z, eta, phi); + int ncristals=0; + + int goBackInEta = nCellInEta/2; + int goBackInPhi = nCellInPhi/2; + int startEta = eta-goBackInEta; + int startPhi = phi-goBackInPhi; + + float totalEnergy = 0.; + + for(int ieta=startEta; ietapackindex(det,z,ieta,iphi); + totalEnergy += themap[index]; + ncristals+=1; + G4cout<<"ieta - iphi - E = "<addCalo(name); +} + + +CCaloSD::~CCaloSD() { + if (theDescription) + delete theDescription; +} + + +void CCaloSD::Initialize(G4HCofThisEvent*HCE) { + +#ifdef debug + G4cout << "CCaloSD : Initialize called for " << SDname << G4endl; +#endif + //This initialization is performed at the beginning of an event + //------------------------------------------------------------ + + theHC = new CCalG4HitCollection(SDname, collectionName[0]); + if (HCID<0) + HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); + HCE->AddHitsCollection( HCID, theHC ); + + TSID = -2; + PrimID = -2; + /////PrimaryID = -99; <--- initialized by StackingAction. +} + + +G4bool CCaloSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) { + + if (aStep == NULL) return true; + + getStepInfo(aStep); + if (hitExists() == false && EdepositEM+EdepositEHAD>0.) + createNewHit(); + + return true; +} + + +void CCaloSD::getStepInfo(G4Step* aStep) { + + PreStepPoint = aStep->GetPreStepPoint(); + PostStepPoint= aStep->GetPostStepPoint(); + HitPoint = PreStepPoint->GetPosition(); + + theTrack = aStep->GetTrack(); + CurrentPV= PreStepPoint->GetPhysicalVolume(); + + G4String particleType = theTrack->GetDefinition()->GetParticleName(); + + if (particleType == "e-" || + particleType == "e+" || + particleType == "gamma" ){ + EdepositEM = aStep->GetTotalEnergyDeposit(); + EdepositEHAD = 0.; + } else { + EdepositEM = 0.; + EdepositEHAD = aStep->GetTotalEnergyDeposit(); + } + + TSlice = (PostStepPoint->GetGlobalTime() )/nanosecond; + TSliceID = (int) TSlice; + if (theDescription!=0) + UnitID = theDescription->GetUnitID(aStep); + else + UnitID = 0; + +} + + +G4bool CCaloSD::hitExists() { + + if (PrimaryID<1) { + G4cerr << "***** CCaloSD error: PrimaryID = " << PrimaryID + << " Maybe detector name changed" + << G4endl; + } + + + if ( CurrentPV==PreviousPV && PrimaryID == PrimID && TSliceID == TSID && + UnitID==PreviousUnitID) { + updateHit(); + return true; + } + + + if (PrimaryID != PrimID) + ResetForNewPrimary(); + + + //look in HC whether a hit with the same primID,UnitID,TSliceID exists already: + + G4bool found = false; + for (int j=0; jentries()&&!found; j++) { + + CCalG4Hit* aPreviousHit = (*theHC)[j]; + if (aPreviousHit->getTrackID() == PrimaryID && + aPreviousHit->getTimeSliceID() == TSliceID && + aPreviousHit->getUnitID()== UnitID ) { + CurrentHit = aPreviousHit; + found = true; + } + } + + if (found) { + updateHit(); + return true; + } else { + return false; + } +} + + +void CCaloSD::ResetForNewPrimary() { + + EntrancePoint = SetToLocal(HitPoint); + IncidentEnergy = PreStepPoint->GetKineticEnergy(); + +} + + +void CCaloSD::StoreHit(CCalG4Hit* hit){ + + if (PrimID<0) return; + if (hit == 0 ) { + G4cout << "CCaloSD: hit to be stored is NULL !!" <insert( hit ); +} + + +void CCaloSD::createNewHit() { + +#ifdef debug + G4cout << "CCaloSD createNewHit for" + << " PV " << CurrentPV->GetName() + << " PVid = " << CurrentPV->GetCopyNo() + << " MVid = " << CurrentPV->GetMother()->GetCopyNo() + << " Unit " << UnitID <GetTrackID() + << " which is a " << theTrack->GetDefinition()->GetParticleName(); + + if (theTrack->GetTrackID()==1) { + G4cout << " of energy " << theTrack->GetTotalEnergy(); + } else { + G4cout << " daughter of part. " << theTrack->GetParentID(); + } + + G4cout << " and created by " ; + if (theTrack->GetCreatorProcess()!=NULL) + G4cout << theTrack->GetCreatorProcess()->GetProcessName() ; + else + G4cout << "NO process"; + G4cout << G4endl; +#endif + + + CurrentHit = new CCalG4Hit; + CurrentHit->setTrackID(PrimaryID); + CurrentHit->setTimeSlice(TSlice); + CurrentHit->setUnitID(UnitID); + CurrentHit->setEntry(EntrancePoint); + CurrentHit->setIncidentEnergy(IncidentEnergy); + updateHit(); + + StoreHit(CurrentHit); + +} + + +void CCaloSD::updateHit() { + if (EdepositEM+EdepositEHAD != 0) { + CurrentHit->addEnergyDeposit(EdepositEM,EdepositEHAD); +#ifdef debug + G4cout << "Energy deposit in Unit " << UnitID << " em " << EdepositEM/MeV + << " hadronic " << EdepositEHAD/MeV << " MeV" << G4endl; +#endif + } + + // buffer for next steps: + TSID = TSliceID; + PrimID = PrimaryID; + PreviousPV = CurrentPV; + PreviousUnitID = UnitID; +} + + +G4ThreeVector CCaloSD::SetToLocal(G4ThreeVector global){ + + G4ThreeVector localPoint; + const G4VTouchable* touch= PreStepPoint->GetTouchable(); + localPoint=touch->GetHistory()->GetTopTransform().TransformPoint(global); + + return localPoint; + +} + + +void CCaloSD::EndOfEvent(G4HCofThisEvent*HCE) { + summarize(); +} + + +void CCaloSD::summarize() { +} + + +void CCaloSD::clear() { +} + + +void CCaloSD::DrawAll() { +} + + +void CCaloSD::PrintAll() { + G4cout << "CCaloSD: Collection " << theHC->GetName() << G4endl; + theHC->PrintAllHits(); +} + + +void CCaloSD::SetOrganization(CCalVOrganization* org){ + + if (theDescription!=0) + delete theDescription; + theDescription = org; + +} + + diff --git a/examples/advanced/composite_calorimeter/src/CCalutils.cc b/examples/advanced/composite_calorimeter/src/CCalutils.cc new file mode 100644 index 0000000000..0cb4b3784b --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/CCalutils.cc @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * 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: CCalutils.cc +// Description: General utilities. +/////////////////////////////////////////////////////////////////////////////// +#include "CCalutils.hh" +#include "G4ios.hh" +#include "G4UnitsTable.hh" +#include "g4std/strstream" + + +G4String operator+(const G4String& str, const int i) { + int l = str.length() + 15; //How long can an integer be? + char *cname = new char[l]; + cname[0]='\0'; + G4std::ostrstream os(cname, l); + os << str << i <<'\0'; + G4String back(cname); + delete[] cname; + return back; +} + + +G4String operator+(const G4String& str, const double i) { + int l = str.length() + 15; //How long can an double be? + char *cname = new char[l]; + cname[0]='\0'; + G4std::ostrstream os(cname, l); + os << str << i <<'\0'; + G4String back(cname); + delete[] cname; + return back; +} + + +G4std::ifstream& readName(G4std::ifstream& is, G4String& name){ + is >> name; + if ( name != "*ENDDO" ) { + while ( name.find("#.") != G4String::npos ) { // It is a comment. Skip line. + is.ignore(999,'\n'); + is >> name; + }; + while ( name.rfind('\"') != name.length()-1 ) { + G4String other; + is >> other; + name += " "; + name += other; + }; + name = name.strip(G4String::both, '\"'); + } + return is; +} + + +G4std::ifstream& findDO(G4std::ifstream& is, const G4String& str){ + // Loop until *DO str is found + G4String firstwd, dowhat; + dowhat = ""; + while (dowhat != str && is) { + is >> firstwd; + while (firstwd != "*DO" && is) { + is.ignore(999,'\n'); + is >> firstwd; + }; + is >> dowhat; + }; + is.ignore(999,'\n'); + return is; +} + + +G4std::ostream& tab(G4std::ostream& os) { + os << '\t'; + return os; +} + + +G4std::istream& jump(G4std::istream& is) { + char first, second; + is.ignore(999,'\n'); + do { + is.get(first); + second = is.peek(); + if (first == '#' && second =='.') { + is.ignore(999,'\n'); + } + else if (first == '\n'); //it was already picked + else { + is.putback(first); + return is; + } + } + while (is); + return is; +} + + +bool openGeomFile(G4std::ifstream& is, + const G4String& pathname, const G4String& filename) { + G4String fullname = pathname+"/"+filename; + is.open( fullname.c_str() ); + if (!is) { + G4cerr << "ERROR: Could not open file " << filename << G4endl; + return false; + } + return true; +} diff --git a/examples/advanced/composite_calorimeter/src/EMPhysics.cc b/examples/advanced/composite_calorimeter/src/EMPhysics.cc new file mode 100644 index 0000000000..a79062e3e4 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/EMPhysics.cc @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "EMPhysics.hh" +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + + +EMPhysics:: +EMPhysics(const G4String& name) : G4VPhysicsConstructor(name) {} + +EMPhysics:: +~EMPhysics() {} + +void EMPhysics:: +ConstructParticle() +{ + G4Gamma::GammaDefinition(); + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); +} + +void EMPhysics:: +ConstructProcess() +{ + theEMPhysics.Build(); +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4EMBuilder.cc b/examples/advanced/composite_calorimeter/src/G4EMBuilder.cc new file mode 100644 index 0000000000..bf53664f17 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4EMBuilder.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. * +// ******************************************************************** +// +#include "G4EMBuilder.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +G4EMBuilder:: +G4EMBuilder() {} + +G4EMBuilder:: +~G4EMBuilder() {} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4ProcessManager.hh" + + +void G4EMBuilder::Build() +{ + G4ProcessManager * pManager = 0; + + pManager = G4Gamma::Gamma()->GetProcessManager(); + pManager->AddDiscreteProcess(&thePhotoEffect); + pManager->AddDiscreteProcess(&theComptonEffect); + pManager->AddDiscreteProcess(&thePairProduction); + + pManager = G4Electron::Electron()->GetProcessManager(); + pManager->AddDiscreteProcess(&theElectronBremsStrahlung); + pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + pManager->AddProcess(&theElectronMultipleScattering); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); + + pManager = G4Positron::Positron()->GetProcessManager(); + pManager->AddDiscreteProcess(&thePositronBremsStrahlung); + pManager->AddDiscreteProcess(&theAnnihilation); + pManager->AddRestProcess(&theAnnihilation); + pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); + pManager->AddProcess(&thePositronMultipleScattering); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4ElectroNuclearBuilder.cc b/examples/advanced/composite_calorimeter/src/G4ElectroNuclearBuilder.cc new file mode 100644 index 0000000000..be83d3953e --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4ElectroNuclearBuilder.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. * +// ******************************************************************** +// +#include "G4ElectroNuclearBuilder.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4ProcessManager.hh" + +G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() +{ + theElectroReaction = new G4ElectroNuclearReaction; + theGammaReaction = new G4GammaNuclearReaction; + theModel = new G4TheoFSGenerator; + theCascade = new G4StringChipsParticleLevelInterface; + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); +} + +G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder() {delete theStringDecay;} + +void G4ElectroNuclearBuilder::Build() +{ + G4ProcessManager * aProcMan = 0; + + aProcMan = G4Gamma::Gamma()->GetProcessManager(); + theGammaReaction->SetMaxEnergy(3.5*GeV); + thePhotoNuclearProcess.RegisterMe(theGammaReaction); + theModel->SetMinEnergy(3.*GeV); + theModel->SetMaxEnergy(100*TeV); + thePhotoNuclearProcess.RegisterMe(theModel); + aProcMan->AddDiscreteProcess(&thePhotoNuclearProcess); + + aProcMan = G4Electron::Electron()->GetProcessManager(); + theElectronNuclearProcess.RegisterMe(theElectroReaction); + aProcMan->AddDiscreteProcess(&theElectronNuclearProcess); + + aProcMan = G4Positron::Positron()->GetProcessManager(); + thePositronNuclearProcess.RegisterMe(theElectroReaction); + aProcMan->AddDiscreteProcess(&thePositronNuclearProcess); +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc b/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc new file mode 100644 index 0000000000..924e41c783 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4HadronQEDBuilder.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ProcessManager.hh" + +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4SigmaMinus.hh" +#include "G4AntiSigmaMinus.hh" +#include "G4SigmaPlus.hh" +#include "G4AntiSigmaPlus.hh" +#include "G4XiMinus.hh" +#include "G4AntiXiMinus.hh" +#include "G4OmegaMinus.hh" +#include "G4AntiOmegaMinus.hh" + +G4HadronQEDBuilder::G4HadronQEDBuilder() {} +G4HadronQEDBuilder::~G4HadronQEDBuilder(){} + +void G4HadronQEDBuilder:: +RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI) +{ + aP->AddProcess(aI, ordInActive,2, 2); + aP->AddProcess(aM); + aP->SetProcessOrdering(aM, idxAlongStep, 1); + aP->SetProcessOrdering(aM, idxPostStep, 1); +} + +void G4HadronQEDBuilder::Build() +{ + // PionPlus + RegisterOne(G4PionPlus::PionPlus()->GetProcessManager(), &thePionPlusMult, &thePionPlusIonisation); + + // PionMinus + RegisterOne(G4PionMinus::PionMinus()->GetProcessManager(), &thePionMinusMult, &thePionMinusIonisation); + + // KaonPlus + RegisterOne(G4KaonPlus::KaonPlus()->GetProcessManager(), &theKaonPlusMult, &theKaonPlusIonisation); + + // KaonMinus + RegisterOne(G4KaonMinus::KaonMinus()->GetProcessManager(), &theKaonMinusMult, &theKaonMinusIonisation); + + // Proton + RegisterOne(G4Proton::Proton()->GetProcessManager(), &theProtonMult, &theProtonIonisation); + + // anti-Proton + RegisterOne(G4AntiProton::AntiProton()->GetProcessManager(), &theAntiProtonMult, &theAntiProtonIonisation); + + // SigmaMinus + RegisterOne(G4SigmaMinus::SigmaMinus()->GetProcessManager(), &theSigmaMinusMult, &theSigmaMinusIonisation); + + // anti-SigmaMinus + RegisterOne(G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(), &theAntiSigmaMinusMult, &theAntiSigmaMinusIonisation); + + // SigmaPlus + RegisterOne(G4SigmaPlus::SigmaPlus()->GetProcessManager(), &theSigmaPlusMult, &theSigmaPlusIonisation); + + // anti-SigmaPlus + RegisterOne(G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(), &theAntiSigmaPlusMult, &theAntiSigmaPlusIonisation); + + // XiMinus + RegisterOne(G4XiMinus::XiMinus()->GetProcessManager(), &theXiMinusMult, &theXiMinusIonisation); + + // anti-XiMinus + RegisterOne(G4AntiXiMinus::AntiXiMinus()->GetProcessManager(), &theAntiXiMinusMult, &theAntiXiMinusIonisation); + + // OmegaMinus + RegisterOne(G4OmegaMinus::OmegaMinus()->GetProcessManager(), &theOmegaMinusMult, &theOmegaMinusIonisation); + + // anti-OmegaMinus + RegisterOne(G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(), &theAntiOmegaMinusMult, &theAntiOmegaMinusIonisation); +} + + + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc new file mode 100644 index 0000000000..357b7bf6a5 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4LEPNeutronBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4LEPNeutronBuilder:: +G4LEPNeutronBuilder() +{ + theMin = 0; + theMax = 55*GeV; +} + +G4LEPNeutronBuilder:: +~G4LEPNeutronBuilder() {} + +void G4LEPNeutronBuilder:: +Build(G4HadronElasticProcess & aP) +{ + theElasticModel = new G4LElastic(); + theElasticModel->SetMinEnergy(theMin); + aP.RegisterMe(theElasticModel); +} + +void G4LEPNeutronBuilder:: +Build(G4HadronFissionProcess & aP) +{ + theNeutronFissionModel = new G4LFission(); + theNeutronFissionModel->SetMinEnergy(theMin); + aP.RegisterMe(theNeutronFissionModel); +} + +void G4LEPNeutronBuilder:: +Build(G4HadronCaptureProcess & aP) +{ + theNeutronCaptureModel = new G4LCapture(); + theNeutronCaptureModel->SetMinEnergy(theMin); + aP.RegisterMe(theNeutronCaptureModel); +} + +void G4LEPNeutronBuilder:: +Build(G4NeutronInelasticProcess & aP) +{ + theLENeutronModel = new G4LENeutronInelastic(); + theLENeutronModel->SetMinEnergy(theIMin); + theLENeutronModel->SetMaxEnergy(theMax); + aP.RegisterMe(theLENeutronModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc new file mode 100644 index 0000000000..462911d4bd --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4LEPPiKBuilder.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ProcessManager.hh" + +G4LEPPiKBuilder:: +G4LEPPiKBuilder() +{ + theElasticModel = new G4LElastic(); + theMin = 0; + theMax = 55*GeV; +} + +G4LEPPiKBuilder:: +~G4LEPPiKBuilder() {} + +void G4LEPPiKBuilder:: +Build(G4HadronElasticProcess & aP) +{ + aP.RegisterMe(theElasticModel); +} + +void G4LEPPiKBuilder:: +Build(G4PionPlusInelasticProcess & aP) +{ + theLEPionPlusModel = new G4LEPionPlusInelastic(); + theLEPionPlusModel->SetMinEnergy(theMin); + theLEPionPlusModel->SetMaxEnergy(theMax); + aP.RegisterMe(theLEPionPlusModel); +} + +void G4LEPPiKBuilder:: +Build(G4PionMinusInelasticProcess & aP) +{ + theLEPionMinusModel = new G4LEPionMinusInelastic(); + theLEPionMinusModel->SetMinEnergy(theMin); + theLEPionMinusModel->SetMaxEnergy(theMax); + aP.RegisterMe(theLEPionMinusModel); +} + +void G4LEPPiKBuilder:: +Build(G4KaonPlusInelasticProcess & aP) +{ + theLEKaonPlusModel = new G4LEKaonPlusInelastic(); + theLEKaonPlusModel->SetMinEnergy(theMin); + theLEKaonPlusModel->SetMaxEnergy(theMax); + aP.RegisterMe(theLEKaonPlusModel); +} + +void G4LEPPiKBuilder:: +Build(G4KaonMinusInelasticProcess & aP) +{ + theLEKaonMinusModel = new G4LEKaonMinusInelastic(); + theLEKaonMinusModel->SetMaxEnergy(theMax); + theLEKaonMinusModel->SetMinEnergy(theMin); + aP.RegisterMe(theLEKaonMinusModel); +} + +void G4LEPPiKBuilder:: +Build(G4KaonZeroLInelasticProcess & aP) +{ + theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); + theLEKaonZeroLModel->SetMaxEnergy(theMax); + theLEKaonZeroLModel->SetMinEnergy(theMin); + aP.RegisterMe(theLEKaonZeroLModel); +} + +void G4LEPPiKBuilder:: +Build(G4KaonZeroSInelasticProcess & aP) +{ + theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); + theLEKaonZeroSModel->SetMaxEnergy(theMax); + theLEKaonZeroSModel->SetMinEnergy(theMin); + aP.RegisterMe(theLEKaonZeroSModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01StackingAction.cc b/examples/advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc similarity index 70% rename from examples/extended/persistency/PersistentEx01/src/PersEx01StackingAction.cc rename to examples/advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc index ca2c25a55d..90e06655c9 100644 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01StackingAction.cc +++ b/examples/advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc @@ -20,33 +20,35 @@ // * statement, and all its terms. * // ******************************************************************** // - -#include "PersEx01StackingAction.hh" -#include "G4Track.hh" -#include "G4TrackStatus.hh" +#include "G4LEPProtonBuilder.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleTypes.hh" -#include "G4ios.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" -PersEx01StackingAction::PersEx01StackingAction() -{;} - -PersEx01StackingAction::~PersEx01StackingAction() -{;} - -G4ClassificationOfNewTrack -PersEx01StackingAction::ClassifyNewTrack(const G4Track * aTrack) +G4LEPProtonBuilder:: +G4LEPProtonBuilder() { - G4ClassificationOfNewTrack classification = fKill; - if(aTrack->GetParentID()==0) - { classification = fUrgent; } - return classification; + theMin = 0; + theMax=55*GeV; } -void PersEx01StackingAction::NewStage() -{;} - -void PersEx01StackingAction::PrepareNewEvent() -{;} +G4LEPProtonBuilder:: +~G4LEPProtonBuilder() {} +void G4LEPProtonBuilder:: +Build(G4HadronElasticProcess & aP) +{ + theElasticModel = new G4LElastic(); + aP.RegisterMe(theElasticModel); +} +void G4LEPProtonBuilder:: +Build(G4ProtonInelasticProcess & aP) +{ + theLEProtonModel = new G4LEProtonInelastic(); + theLEProtonModel->SetMinEnergy(theMin); + theLEProtonModel->SetMaxEnergy(theMax); + aP.RegisterMe(theLEProtonModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LHEPNeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4LHEPNeutronBuilder.cc new file mode 100644 index 0000000000..f54322df18 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4LHEPNeutronBuilder.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. * +// ******************************************************************** +// +#include "G4LHEPNeutronBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4LHEPNeutronBuilder:: +G4LHEPNeutronBuilder() +{ + theMin = 0; + theIMin = 0; +} + +G4LHEPNeutronBuilder:: +~G4LHEPNeutronBuilder() {} + +void G4LHEPNeutronBuilder:: +Build(G4HadronElasticProcess & aP) +{ + theElasticModel = new G4LElastic(); + theElasticModel->SetMinEnergy(theMin); + aP.RegisterMe(theElasticModel); +} + +void G4LHEPNeutronBuilder:: +Build(G4HadronFissionProcess & aP) +{ + theNeutronFissionModel = new G4LFission(); + theNeutronFissionModel->SetMinEnergy(theMin); + aP.RegisterMe(theNeutronFissionModel); +} + +void G4LHEPNeutronBuilder:: +Build(G4HadronCaptureProcess & aP) +{ + theNeutronCaptureModel = new G4LCapture(); + theNeutronCaptureModel->SetMinEnergy(theMin); + aP.RegisterMe(theNeutronCaptureModel); +} + +void G4LHEPNeutronBuilder:: +Build(G4NeutronInelasticProcess & aP) +{ + theLENeutronModel = new G4LENeutronInelastic(); + theHENeutronModel = new G4HENeutronInelastic(); + theLENeutronModel->SetMinEnergy(theIMin); + theLENeutronModel->SetMaxEnergy(55*GeV); + theHENeutronModel->SetMinEnergy(25*GeV); + aP.RegisterMe(theLENeutronModel); + aP.RegisterMe(theHENeutronModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.cc new file mode 100644 index 0000000000..110483511b --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.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. * +// ******************************************************************** +// +#include "G4LHEPPiKBuilder.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ProcessManager.hh" + +G4LHEPPiKBuilder:: +G4LHEPPiKBuilder() +{ + theElasticModel = new G4LElastic(); + theM = 0; +} + +G4LHEPPiKBuilder:: +~G4LHEPPiKBuilder() {} + +void G4LHEPPiKBuilder:: +Build(G4HadronElasticProcess & aP) +{ + aP.RegisterMe(theElasticModel); +} + +void G4LHEPPiKBuilder:: +Build(G4PionPlusInelasticProcess & aP) +{ + theLEPionPlusModel = new G4LEPionPlusInelastic(); + theHEPionPlusModel = new G4HEPionPlusInelastic(); + theLEPionPlusModel->SetMinEnergy(theM); + theLEPionPlusModel->SetMaxEnergy(55*GeV); + theHEPionPlusModel->SetMinEnergy(25*GeV); + aP.RegisterMe(theLEPionPlusModel); + aP.RegisterMe(theHEPionPlusModel); +} + +void G4LHEPPiKBuilder:: +Build(G4PionMinusInelasticProcess & aP) +{ + theLEPionMinusModel = new G4LEPionMinusInelastic(); + theHEPionMinusModel = new G4HEPionMinusInelastic(); + theLEPionMinusModel->SetMinEnergy(theM); + theLEPionMinusModel->SetMaxEnergy(55*GeV); + theHEPionMinusModel->SetMinEnergy(25*GeV); + aP.RegisterMe(theLEPionMinusModel); + aP.RegisterMe(theHEPionMinusModel); +} + +void G4LHEPPiKBuilder:: +Build(G4KaonPlusInelasticProcess & aP) +{ + theLEKaonPlusModel = new G4LEKaonPlusInelastic(); + theHEKaonPlusModel = new G4HEKaonPlusInelastic(); + theLEKaonPlusModel->SetMinEnergy(theM); + aP.RegisterMe(theLEKaonPlusModel); + aP.RegisterMe(theHEKaonPlusModel); +} + +void G4LHEPPiKBuilder:: +Build(G4KaonMinusInelasticProcess & aP) +{ + theLEKaonMinusModel = new G4LEKaonMinusInelastic(); + theHEKaonMinusModel = new G4HEKaonMinusInelastic(); + theLEKaonMinusModel->SetMinEnergy(theM); + aP.RegisterMe(theLEKaonMinusModel); + aP.RegisterMe(theHEKaonMinusModel); +} + +void G4LHEPPiKBuilder:: +Build(G4KaonZeroLInelasticProcess & aP) +{ + theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); + theHEKaonZeroLModel = new G4HEKaonZeroInelastic(); + theLEKaonZeroLModel->SetMinEnergy(theM); + aP.RegisterMe(theLEKaonZeroLModel); + aP.RegisterMe(theHEKaonZeroLModel); +} + +void G4LHEPPiKBuilder:: +Build(G4KaonZeroSInelasticProcess & aP) +{ + theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); + theHEKaonZeroSModel = new G4HEKaonZeroInelastic(); + theLEKaonZeroSModel->SetMinEnergy(theM); + aP.RegisterMe(theLEKaonZeroSModel); + aP.RegisterMe(theHEKaonZeroSModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.cc b/examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.cc new file mode 100644 index 0000000000..421070c1f0 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.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. * +// ******************************************************************** +// +#include "G4LHEPProtonBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4LHEPProtonBuilder:: +G4LHEPProtonBuilder() +{ + theMin = 0; +} + +G4LHEPProtonBuilder:: +~G4LHEPProtonBuilder() {} + +void G4LHEPProtonBuilder:: +Build(G4HadronElasticProcess & aP) +{ + theElasticModel = new G4LElastic(); + aP.RegisterMe(theElasticModel); +} + +void G4LHEPProtonBuilder:: +Build(G4ProtonInelasticProcess & aP) +{ + theLEProtonModel = new G4LEProtonInelastic(); + theHEProtonModel = new G4HEProtonInelastic(); + theLEProtonModel->SetMinEnergy(theMin); + theLEProtonModel->SetMaxEnergy(55*GeV); + theHEProtonModel->SetMinEnergy(25*GeV); + aP.RegisterMe(theLEProtonModel); + aP.RegisterMe(theHEProtonModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc b/examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc new file mode 100644 index 0000000000..628fcf8d65 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc @@ -0,0 +1,178 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4MiscLHEPBuilder.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4MiscLHEPBuilder::G4MiscLHEPBuilder() {} +G4MiscLHEPBuilder::~G4MiscLHEPBuilder() {} + +void G4MiscLHEPBuilder::Build() +{ + G4ProcessManager * aProcMan = 0; + theElasticModel = new G4LElastic; + + // anti-Proton + aProcMan = G4AntiProton::AntiProton()->GetProcessManager(); + theLEAntiProtonModel = new G4LEAntiProtonInelastic(); + theHEAntiProtonModel = new G4HEAntiProtonInelastic(); + theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel); + theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel); + aProcMan->AddDiscreteProcess(&theAntiProtonInelastic); + theAntiProtonElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiProtonElasticProcess); + + // AntiNeutron + aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager(); + theLEAntiNeutronModel = new G4LEAntiNeutronInelastic(); + theHEAntiNeutronModel = new G4HEAntiNeutronInelastic(); + theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel); + theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel); + aProcMan->AddDiscreteProcess(&theAntiNeutronInelastic); + theAntiNeutronElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiNeutronElasticProcess); + + // Lambda + aProcMan = G4Lambda::Lambda()->GetProcessManager(); + theLELambdaModel = new G4LELambdaInelastic(); + theHELambdaModel = new G4HELambdaInelastic(); + theLambdaInelastic.RegisterMe(theLELambdaModel); + theLambdaInelastic.RegisterMe(theHELambdaModel); + aProcMan->AddDiscreteProcess(&theLambdaInelastic); + theLambdaElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theLambdaElasticProcess); + + // AntiLambda + aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager(); + theLEAntiLambdaModel = new G4LEAntiLambdaInelastic(); + theHEAntiLambdaModel = new G4HEAntiLambdaInelastic(); + theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel); + theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel); + aProcMan->AddDiscreteProcess(&theAntiLambdaInelastic); + theAntiLambdaElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiLambdaElasticProcess); + + // SigmaMinus + aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager(); + theLESigmaMinusModel = new G4LESigmaMinusInelastic(); + theHESigmaMinusModel = new G4HESigmaMinusInelastic(); + theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel); + theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel); + aProcMan->AddDiscreteProcess(&theSigmaMinusInelastic); + theSigmaMinusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theSigmaMinusElasticProcess); + + // anti-SigmaMinus + aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); + theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic(); + theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic(); + theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel); + theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel); + aProcMan->AddDiscreteProcess(&theAntiSigmaMinusInelastic); + theAntiSigmaMinusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiSigmaMinusElasticProcess); + + // SigmaPlus + aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager(); + theLESigmaPlusModel = new G4LESigmaPlusInelastic(); + theHESigmaPlusModel = new G4HESigmaPlusInelastic(); + theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel); + theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel); + aProcMan->AddDiscreteProcess(&theSigmaPlusInelastic); + theSigmaPlusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theSigmaPlusElasticProcess); + + // anti-SigmaPlus + aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); + theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic(); + theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic(); + theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel); + theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel); + aProcMan->AddDiscreteProcess(&theAntiSigmaPlusInelastic); + theAntiSigmaPlusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiSigmaPlusElasticProcess); + + // XiMinus + aProcMan = G4XiMinus::XiMinus()->GetProcessManager(); + theLEXiMinusModel = new G4LEXiMinusInelastic(); + theHEXiMinusModel = new G4HEXiMinusInelastic(); + theXiMinusInelastic.RegisterMe(theLEXiMinusModel); + theXiMinusInelastic.RegisterMe(theHEXiMinusModel); + aProcMan->AddDiscreteProcess(&theXiMinusInelastic); + theXiMinusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theXiMinusElasticProcess); + + // anti-XiMinus + aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); + theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic(); + theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic(); + theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel); + theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel); + aProcMan->AddDiscreteProcess(&theAntiXiMinusInelastic); + theAntiXiMinusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiXiMinusElasticProcess); + + // XiZero + aProcMan = G4XiZero::XiZero()->GetProcessManager(); + theLEXiZeroModel = new G4LEXiZeroInelastic(); + theHEXiZeroModel = new G4HEXiZeroInelastic(); + theXiZeroInelastic.RegisterMe(theLEXiZeroModel); + theXiZeroInelastic.RegisterMe(theHEXiZeroModel); + aProcMan->AddDiscreteProcess(&theXiZeroInelastic); + theXiZeroElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theXiZeroElasticProcess); + + // anti-XiZero + aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager(); + theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic(); + theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic(); + theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel); + theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel); + aProcMan->AddDiscreteProcess(&theAntiXiZeroInelastic); + theAntiXiZeroElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiXiZeroElasticProcess); + + // OmegaMinus + aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager(); + theLEOmegaMinusModel = new G4LEOmegaMinusInelastic(); + theHEOmegaMinusModel = new G4HEOmegaMinusInelastic(); + theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel); + theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel); + aProcMan->AddDiscreteProcess(&theOmegaMinusInelastic); + theOmegaMinusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theOmegaMinusElasticProcess); + + // anti-OmegaMinus + aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); + theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic(); + theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic(); + theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel); + theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel); + aProcMan->AddDiscreteProcess(&theAntiOmegaMinusInelastic); + theAntiOmegaMinusElasticProcess.RegisterMe(theElasticModel); + aProcMan->AddDiscreteProcess(&theAntiOmegaMinusElasticProcess); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc new file mode 100644 index 0000000000..30d75ed09f --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4NeutronBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4NeutronBuilder:: +G4NeutronBuilder() {} + +G4NeutronBuilder:: +~G4NeutronBuilder() {} + +void G4NeutronBuilder:: +Build() +{ + G4std::vector::iterator i; + for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) + { + (*i)->Build(theNeutronElasticProcess); + (*i)->Build(theNeutronInelastic); + (*i)->Build(theNeutronCapture); + (*i)->Build(theNeutronFission); + } + G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&theNeutronElasticProcess); + theProcMan->AddDiscreteProcess(&theNeutronInelastic); + theProcMan->AddDiscreteProcess(&theNeutronCapture); + theProcMan->AddDiscreteProcess(&theNeutronFission); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.cc b/examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.cc new file mode 100644 index 0000000000..218000367f --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4NeutronHPBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4NeutronHPBuilder:: +G4NeutronHPBuilder() +{ + theHPElastic = NULL; + theHPElasticData = NULL; + + theHPFission = NULL; + theHPFissionData = NULL; + + theHPCapture = NULL; + theHPCaptureData = NULL; + + theHPInelastic = NULL; + theHPInelasticData = NULL; +} + +G4NeutronHPBuilder:: +~G4NeutronHPBuilder() +{ + delete theHPElasticData; + delete theHPFissionData; + delete theHPCaptureData; + delete theHPInelasticData; +} + +void G4NeutronHPBuilder:: +Build(G4HadronElasticProcess & aP) +{ + if(theHPElastic==NULL) theHPElastic = new G4NeutronHPElastic; + if(theHPElasticData == NULL) theHPElasticData = new G4NeutronHPElasticData; + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(theHPElasticData); + aP.RegisterMe(theHPElastic); +} + +void G4NeutronHPBuilder:: +Build(G4HadronFissionProcess & aP) +{ + if(theHPFission == NULL) theHPFission = new G4NeutronHPFission; + if(theHPFissionData==NULL) theHPFissionData=new G4NeutronHPFissionData; + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(theHPFissionData); + aP.RegisterMe(theHPFission); +} + +void G4NeutronHPBuilder:: +Build(G4HadronCaptureProcess & aP) +{ + if(theHPCapture==NULL) theHPCapture = new G4NeutronHPCapture; + if(theHPCaptureData==NULL) theHPCaptureData = new G4NeutronHPCaptureData; + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(theHPCaptureData); + aP.RegisterMe(theHPCapture); +} + +void G4NeutronHPBuilder:: +Build(G4NeutronInelasticProcess & aP) +{ + if(theHPInelastic==NULL) theHPInelastic = new G4NeutronHPInelastic; + if(theHPInelasticData==NULL) theHPInelasticData = new G4NeutronHPInelasticData; + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(theHPInelasticData); + aP.RegisterMe(theHPInelastic); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4PiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4PiKBuilder.cc new file mode 100644 index 0000000000..600b842a65 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4PiKBuilder.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. * +// ******************************************************************** +// +#include "G4PiKBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4PiKBuilder:: +G4PiKBuilder() {} + +G4PiKBuilder:: +~G4PiKBuilder() {} + +void G4PiKBuilder:: +Build() +{ + G4std::vector::iterator i; + for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) + { + (*i)->Build(thePionPlusElasticProcess); + (*i)->Build(thePionMinusElasticProcess); + (*i)->Build(theKaonPlusElasticProcess); + (*i)->Build(theKaonMinusElasticProcess); + (*i)->Build(theKaonZeroLElasticProcess); + (*i)->Build(theKaonZeroSElasticProcess); + + (*i)->Build(thePionPlusInelastic); + (*i)->Build(thePionMinusInelastic); + (*i)->Build(theKaonPlusInelastic); + (*i)->Build(theKaonMinusInelastic); + (*i)->Build(theKaonZeroLInelastic); + (*i)->Build(theKaonZeroSInelastic); + } + G4ProcessManager * theProcMan; + theProcMan = G4PionPlus::PionPlus()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&thePionPlusElasticProcess); + theProcMan->AddDiscreteProcess(&thePionPlusInelastic); + theProcMan = G4PionMinus::PionMinus()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&thePionMinusElasticProcess); + theProcMan->AddDiscreteProcess(&thePionMinusInelastic); + theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&theKaonPlusElasticProcess); + theProcMan->AddDiscreteProcess(&theKaonPlusInelastic); + theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&theKaonMinusElasticProcess); + theProcMan->AddDiscreteProcess(&theKaonMinusInelastic); + theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&theKaonZeroLElasticProcess); + theProcMan->AddDiscreteProcess(&theKaonZeroLInelastic); + theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&theKaonZeroSElasticProcess); + theProcMan->AddDiscreteProcess(&theKaonZeroSInelastic); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc new file mode 100644 index 0000000000..8f84680f93 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc @@ -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. * +// ******************************************************************** +// +#include "G4PrecoNeutronBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4PrecoNeutronBuilder:: +G4PrecoNeutronBuilder() +{ + theMin = 0; + theMax = 150.*MeV; + theModel = new G4PreCompoundModel(&theHandler); +} + +G4PrecoNeutronBuilder:: +~G4PrecoNeutronBuilder() {} + +void G4PrecoNeutronBuilder:: +Build(G4HadronElasticProcess & aP) +{ +} + +void G4PrecoNeutronBuilder:: +Build(G4HadronFissionProcess & aP) +{ +} + +void G4PrecoNeutronBuilder:: +Build(G4HadronCaptureProcess & aP) +{ +} + +void G4PrecoNeutronBuilder:: +Build(G4NeutronInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(theMax); + aP.RegisterMe(theModel); + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(&theXSec); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc b/examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc new file mode 100644 index 0000000000..eb4925b73b --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4PrecoProtonBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4PrecoProtonBuilder:: +G4PrecoProtonBuilder() +{ + theMin = 0; + theMax = 150.*MeV; + theModel = new G4PreCompoundModel(&theHandler); +} + +G4PrecoProtonBuilder:: +~G4PrecoProtonBuilder() {} + +void G4PrecoProtonBuilder:: +Build(G4HadronElasticProcess & aP) +{ +} + +void G4PrecoProtonBuilder:: +Build(G4ProtonInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(theMax); + aP.RegisterMe(theModel); + G4CrossSectionDataStore * thePStore; + thePStore = aP.GetCrossSectionDataStore(); + thePStore->AddDataSet(&theXSec); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc b/examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc new file mode 100644 index 0000000000..bede1310b5 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc @@ -0,0 +1,47 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4ProtonBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4ProtonBuilder:: +G4ProtonBuilder() {} + +G4ProtonBuilder:: +~G4ProtonBuilder() {} + +void G4ProtonBuilder:: +Build() +{ + G4std::vector::iterator i; + for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) + { + (*i)->Build(theProtonElasticProcess); + (*i)->Build(theProtonInelastic); + } + G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager(); + theProcMan->AddDiscreteProcess(&theProtonElasticProcess); + theProcMan->AddDiscreteProcess(&theProtonInelastic); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.cc new file mode 100644 index 0000000000..0f8e652b52 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.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. * +// ******************************************************************** +// +#include "G4QGSCNeutronBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4QGSCNeutronBuilder:: +G4QGSCNeutronBuilder() +{ + theMin = 15*GeV; + theModel = new G4TheoFSGenerator; + theCascade = new G4StringChipsParticleLevelInterface; + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); +} + +G4QGSCNeutronBuilder:: +~G4QGSCNeutronBuilder() +{ + delete theStringDecay; +} + +void G4QGSCNeutronBuilder:: +Build(G4HadronElasticProcess & aP) +{ +} + +void G4QGSCNeutronBuilder:: +Build(G4HadronFissionProcess & aP) +{ +} + +void G4QGSCNeutronBuilder:: +Build(G4HadronCaptureProcess & aP) +{ +} + +void G4QGSCNeutronBuilder:: +Build(G4NeutronInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(&theXSec); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.cc new file mode 100644 index 0000000000..a575c6f1e3 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.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. * +// ******************************************************************** +// +#include "G4QGSCPiKBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4QGSCPiKBuilder:: +G4QGSCPiKBuilder() +{ + theMin = 15*GeV; + theModel = new G4TheoFSGenerator; + theCascade = new G4StringChipsParticleLevelInterface; + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); +} + +G4QGSCPiKBuilder:: +~G4QGSCPiKBuilder() +{ + delete theStringDecay; +} + +void G4QGSCPiKBuilder:: +Build(G4HadronElasticProcess & aP) {} + +void G4QGSCPiKBuilder:: +Build(G4PionPlusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSCPiKBuilder:: +Build(G4PionMinusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSCPiKBuilder:: +Build(G4KaonPlusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSCPiKBuilder:: +Build(G4KaonMinusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSCPiKBuilder:: +Build(G4KaonZeroLInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSCPiKBuilder:: +Build(G4KaonZeroSInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01PrimaryGeneratorAction.cc b/examples/advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc similarity index 62% rename from examples/extended/persistency/PersistentEx01/src/PersEx01PrimaryGeneratorAction.cc rename to examples/advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc index a81eb21aff..1be233a553 100644 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01PrimaryGeneratorAction.cc +++ b/examples/advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc @@ -20,41 +20,43 @@ // * statement, and all its terms. * // ******************************************************************** // - -#include "PersEx01PrimaryGeneratorAction.hh" - -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" +#include "G4QGSCProtonBuilder.hh" #include "G4ParticleDefinition.hh" -#include "globals.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" -PersEx01PrimaryGeneratorAction::PersEx01PrimaryGeneratorAction() +G4QGSCProtonBuilder:: +G4QGSCProtonBuilder() { - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - -// default particle - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="mu-"); - particleGun->SetParticleDefinition(particle); - particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,1.,0.)); - particleGun->SetParticleEnergy(1.*GeV); - particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); - + theMin = 15*GeV; + theModel = new G4TheoFSGenerator; + theCascade = new G4StringChipsParticleLevelInterface; + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); } -PersEx01PrimaryGeneratorAction::~PersEx01PrimaryGeneratorAction() +G4QGSCProtonBuilder:: +~G4QGSCProtonBuilder() { - delete particleGun; + delete theStringDecay; } -void PersEx01PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void G4QGSCProtonBuilder:: +Build(G4HadronElasticProcess & aP) { - particleGun->GeneratePrimaryVertex(anEvent); } +void G4QGSCProtonBuilder:: +Build(G4ProtonInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); + G4CrossSectionDataStore * thePStore; + thePStore = aP.GetCrossSectionDataStore(); + thePStore->AddDataSet(&theXSec); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.cc new file mode 100644 index 0000000000..76262cda4c --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.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. * +// ******************************************************************** +// +#include "G4QGSPNeutronBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4QGSPNeutronBuilder:: +G4QGSPNeutronBuilder() +{ + theMin = 15*GeV; + theModel = new G4TheoFSGenerator; + theCascade = new G4GeneratorPrecompoundInterface; + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade->SetDeExcitation(thePreEquilib); + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); +} + +G4QGSPNeutronBuilder:: +~G4QGSPNeutronBuilder() +{ + delete theStringDecay; +} + +void G4QGSPNeutronBuilder:: +Build(G4HadronElasticProcess & aP) +{ +} + +void G4QGSPNeutronBuilder:: +Build(G4HadronFissionProcess & aP) +{ +} + +void G4QGSPNeutronBuilder:: +Build(G4HadronCaptureProcess & aP) +{ +} + +void G4QGSPNeutronBuilder:: +Build(G4NeutronInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); + G4CrossSectionDataStore * theNStore; + theNStore = aP.GetCrossSectionDataStore(); + theNStore->AddDataSet(&theXSec); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc new file mode 100644 index 0000000000..d87b85483c --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4QGSPPiKBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4QGSPPiKBuilder:: +G4QGSPPiKBuilder() +{ + theMin = 15*GeV; + theModel = new G4TheoFSGenerator; + theCascade = new G4GeneratorPrecompoundInterface; + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade->SetDeExcitation(thePreEquilib); + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); +} + +G4QGSPPiKBuilder:: +~G4QGSPPiKBuilder() +{ + delete theStringDecay; +} + +void G4QGSPPiKBuilder:: +Build(G4HadronElasticProcess & aP) {} + +void G4QGSPPiKBuilder:: +Build(G4PionPlusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSPPiKBuilder:: +Build(G4PionMinusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSPPiKBuilder:: +Build(G4KaonPlusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSPPiKBuilder:: +Build(G4KaonMinusInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSPPiKBuilder:: +Build(G4KaonZeroLInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +void G4QGSPPiKBuilder:: +Build(G4KaonZeroSInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc new file mode 100644 index 0000000000..f8b49dc95e --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc @@ -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. * +// ******************************************************************** +// +#include "G4QGSPProtonBuilder.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +G4QGSPProtonBuilder:: +G4QGSPProtonBuilder() +{ + theMin = 15*GeV; + theModel = new G4TheoFSGenerator; + theCascade = new G4GeneratorPrecompoundInterface; + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade->SetDeExcitation(thePreEquilib); + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); +} + +G4QGSPProtonBuilder:: +~G4QGSPProtonBuilder() +{ + delete theStringDecay; +} + +void G4QGSPProtonBuilder:: +Build(G4HadronElasticProcess & aP) +{ +} + +void G4QGSPProtonBuilder:: +Build(G4ProtonInelasticProcess & aP) +{ + theModel->SetMinEnergy(theMin); + theModel->SetMaxEnergy(100*TeV); + aP.RegisterMe(theModel); + G4CrossSectionDataStore * thePStore; + thePStore = aP.GetCrossSectionDataStore(); + thePStore->AddDataSet(&theXSec); +} + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc new file mode 100644 index 0000000000..dbf6d20909 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc @@ -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. * +// ******************************************************************** +// +#include "G4StoppingHadronBuilder.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" +#include "G4PionMinus.hh" +#include "G4KaonMinus.hh" +#include "G4AntiProton.hh" +#include "G4AntiNeutron.hh" + +G4StoppingHadronBuilder:: +G4StoppingHadronBuilder() {} + +G4StoppingHadronBuilder:: +~G4StoppingHadronBuilder() {} + +void G4StoppingHadronBuilder::Build() +{ + G4ProcessManager * aProcMan = 0; + + // PionMinus + aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager(); + aProcMan->AddRestProcess(&thePionMinusAbsorption, ordDefault); + + // KaonMinus + aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager(); + aProcMan->AddRestProcess(&theKaonMinusAbsorption, ordDefault); + + // anti-Proton + aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager(); + aProcMan->AddRestProcess(&theAntiProtonAnnihilation); + + // AntiNeutron + aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager(); + aProcMan->AddRestProcess(&theAntiNeutronAnnihilation); + +} + + + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/GeneralPhysics.cc b/examples/advanced/composite_calorimeter/src/GeneralPhysics.cc new file mode 100644 index 0000000000..15eba60a32 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/GeneralPhysics.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "GeneralPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +GeneralPhysics::GeneralPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +GeneralPhysics::~GeneralPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +// Bosons +#include "G4ChargedGeantino.hh" +#include "G4Geantino.hh" + +void GeneralPhysics::ConstructParticle() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); +} + +void GeneralPhysics::ConstructProcess() +{ + // Add Decay Process + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (fDecayProcess.IsApplicable(*particle)) { + pmanager ->AddProcess(&fDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(&fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(&fDecayProcess, idxAtRest); + } + } +} + + +// 2002 by J.P. Wellisch diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc b/examples/advanced/composite_calorimeter/src/HadronPhysicsLHEP.cc similarity index 60% rename from examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc rename to examples/advanced/composite_calorimeter/src/HadronPhysicsLHEP.cc index dbbdfacf3a..c60f30c99e 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02PrimaryGeneratorAction.cc +++ b/examples/advanced/composite_calorimeter/src/HadronPhysicsLHEP.cc @@ -20,45 +20,48 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: PersEx02PrimaryGeneratorAction.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#include "HadronPhysicsLHEP.hh" -#include "PersEx02PrimaryGeneratorAction.hh" - -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" #include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" -PersEx02PrimaryGeneratorAction::PersEx02PrimaryGeneratorAction() +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsLHEP::HadronPhysicsLHEP(const G4String& name) + : G4VPhysicsConstructor(name) { - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - -// default particle - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="mu-"); - particleGun->SetParticleDefinition(particle); - particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,1.,0.)); - particleGun->SetParticleEnergy(1.*GeV); - particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); - + theNeutrons.RegisterMe(&theLHEPNeutron); + thePro.RegisterMe(&theLHEPPro); + thePiK.RegisterMe(&theLHEPPiK); } -PersEx02PrimaryGeneratorAction::~PersEx02PrimaryGeneratorAction() +HadronPhysicsLHEP::~HadronPhysicsLHEP() {} + +void HadronPhysicsLHEP::ConstructParticle() { - delete particleGun; + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); } -void PersEx02PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +#include "G4ProcessManager.hh" +void HadronPhysicsLHEP::ConstructProcess() { - particleGun->GeneratePrimaryVertex(anEvent); + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); } - - +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc b/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc new file mode 100644 index 0000000000..f4d3e3e2a7 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc @@ -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. * +// ******************************************************************** +// +#include "HadronPhysicsQGSC.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsQGSC::HadronPhysicsQGSC(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theQGSCNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theLEPNeutron.SetMaxEnergy(25*GeV); + + thePro.RegisterMe(&theQGSCPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + + thePiK.RegisterMe(&theQGSCPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); +} + +HadronPhysicsQGSC::~HadronPhysicsQGSC() {} + +void HadronPhysicsQGSC::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSC::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc b/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc new file mode 100644 index 0000000000..e8565fed0e --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc @@ -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. * +// ******************************************************************** +// +#include "HadronPhysicsQGSP.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsQGSP::HadronPhysicsQGSP(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theQGSPNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theLEPNeutron.SetMaxEnergy(25*GeV); + + thePro.RegisterMe(&theQGSPPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + + thePiK.RegisterMe(&theQGSPPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); +} + +HadronPhysicsQGSP::~HadronPhysicsQGSP() {} + +void HadronPhysicsQGSP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/IonPhysics.cc b/examples/advanced/composite_calorimeter/src/IonPhysics.cc new file mode 100644 index 0000000000..5dc0ee4f85 --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/IonPhysics.cc @@ -0,0 +1,139 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "IonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +IonPhysics::IonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +IonPhysics::~IonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +// Nuclei +#include "G4IonConstructor.hh" + +void IonPhysics::ConstructParticle() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + + +#include "G4ProcessManager.hh" + + +void IonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + theIonElasticProcess.RegisterMe(theElasticModel); + theDElasticProcess.RegisterMe(theElasticModel); + theTElasticProcess.RegisterMe(theElasticModel); + theAElasticProcess.RegisterMe(theElasticModel); + theHe3ElasticProcess.RegisterMe(theElasticModel); + + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theIonElasticProcess); + + pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fIonMultipleScattering); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theDElasticProcess); + + fDeuteronModel = new G4LEDeuteronInelastic(); + fDeuteronProcess.RegisterMe(fDeuteronModel); + pManager->AddDiscreteProcess(&fDeuteronProcess); + + pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fDeuteronMultipleScattering); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); + + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theTElasticProcess); + + fTritonModel = new G4LETritonInelastic(); + fTritonProcess.RegisterMe(fTritonModel); + pManager->AddDiscreteProcess(&fTritonProcess); + + pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fTritonMultipleScattering); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1); + + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theAElasticProcess); + + fAlphaModel = new G4LEAlphaInelastic(); + fAlphaProcess.RegisterMe(fAlphaModel); + pManager->AddDiscreteProcess(&fAlphaProcess); + + pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fAlphaMultipleScattering); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); + + // He3 + pManager = G4He3::He3()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theHe3ElasticProcess); + + pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + + pManager->AddProcess(&fHe3MultipleScattering); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/MuonPhysics.cc b/examples/advanced/composite_calorimeter/src/MuonPhysics.cc new file mode 100644 index 0000000000..fd42445f6b --- /dev/null +++ b/examples/advanced/composite_calorimeter/src/MuonPhysics.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. * +// ******************************************************************** +// +#include "MuonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +MuonPhysics::MuonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +MuonPhysics::~MuonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" +#include "G4NeutrinoTau.hh" +#include "G4AntiNeutrinoTau.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" + +void MuonPhysics::ConstructParticle() +{ + // Mu + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + + // Tau + G4TauMinus::TauMinusDefinition(); + G4TauPlus::TauPlusDefinition(); + G4NeutrinoTau::NeutrinoTauDefinition(); + G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); + +} + + +#include "G4ProcessManager.hh" + +void MuonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Muon Plus Physics + pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuPlusPairProduction); + + pManager->AddProcess(&fMuPlusMultipleScattering); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1); + + // Muon Minus Physics + pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuMinusPairProduction); + + pManager->AddProcess(&fMuMinusMultipleScattering); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1); + pManager->AddRestProcess(&fMuMinusCaptureAtRest); + + // Tau Plus Physics + pManager = G4TauPlus::TauPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauPlusMultipleScattering); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1); + + // Tau Minus Physics + pManager = G4TauMinus::TauMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauMinusMultipleScattering); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1); + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/test.g4mac b/examples/advanced/composite_calorimeter/test.g4mac new file mode 100644 index 0000000000..017266014b --- /dev/null +++ b/examples/advanced/composite_calorimeter/test.g4mac @@ -0,0 +1,20 @@ +### Set the verbosity off/on +# get lots of info about the tracking of each particle through detector +# (one line for each step of each track, including secondaries...) +/process/verbose 0 +/tracking/verbose 0 +/run/verbose 2 +/event/verbose 0 + +### Initialise the detector and the physics +/run/initialize + +### Select the incident particle and its energy +/gun/particle pi- +#/gun/particle mu- +#/gun/particle e- +/gun/energy 100 GeV + +### Simulate ten events +/run/beamOn 10 + diff --git a/examples/advanced/gammaray_telescope/GNUmakefile b/examples/advanced/gammaray_telescope/GNUmakefile index ad2b698e2c..215a16c4c4 100644 --- a/examples/advanced/gammaray_telescope/GNUmakefile +++ b/examples/advanced/gammaray_telescope/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.19 2002/06/18 18:45:39 griccard Exp $ +# $Id: GNUmakefile,v 1.21 2002/12/08 18:17:25 flongo Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -13,9 +13,13 @@ endif include $(G4INSTALL)/config/architecture.gmk +ifdef G4STORE_DATA + CPPFLAGS += -DG4STORE_DATA +endif + ifdef G4ANALYSIS_USE - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif ifdef G4ANALYSIS_USE_NTUPLE diff --git a/examples/advanced/gammaray_telescope/GammaRayTel.cc b/examples/advanced/gammaray_telescope/GammaRayTel.cc index 2bd1aaf46b..0a012c8fa7 100644 --- a/examples/advanced/gammaray_telescope/GammaRayTel.cc +++ b/examples/advanced/gammaray_telescope/GammaRayTel.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTel.cc,v 1.9 2002/06/18 18:45:39 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/README b/examples/advanced/gammaray_telescope/README index a4a785b795..7157c92802 100644 --- a/examples/advanced/gammaray_telescope/README +++ b/examples/advanced/gammaray_telescope/README @@ -1,4 +1,4 @@ -$Id: README,v 1.16 2002/06/18 21:15:13 griccard Exp $ +$Id: README,v 1.18 2002/12/08 18:08:10 flongo Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,7 +8,7 @@ $Id: README,v 1.16 2002/06/18 21:15:13 griccard Exp $ gammaray_telescope ------------------ F.Longo, R.Giannitrapani & G.Santin - December 2000 + December 2002 -------------------------------------------------------------- Acknowledgments to GEANT4 people, in particular to R.Nartallo, @@ -23,7 +23,7 @@ anticoincidence system. In this version, the three detectors are made sensitive but only the hits on the tracker strips are registered and relevant information (energy deposition, position etc) are dumped to an external ASCII file for subsequent analysis. If the user has set up the -AIDA (version 2.2 or compatible) environment or Anaphe/Lizard is available, +AIDA (version 3.0 or compatible) environment or Anaphe/Lizard is available, then some histograms with relevant hits information are displayed and saved as PostScript files, and histograms and ntuples with relevant information are stored on a HBOOK file. @@ -53,6 +53,14 @@ The main features of this example are 1. Setting up the environment variables --------------------------------------- + - Setup for storing ASCII data + + If you want to store the output data in an ASCII file 'Tracks_x.dat' + where x stays for the run number. You should specify the environment + variable: + + setenv G4STORE_DATA 1 + - Setup for Visualization IMPORTANT: be sure that your Geant4 installation has been done @@ -70,8 +78,6 @@ The main features of this example are - Setup for Xmotif user interface setenv G4UI_USE_XM 1 - (IMPORTANT: Do not set G4ANALYSIS_USE_NTUPLE when using XM!) - - Set up for analysis using AIDA @@ -86,14 +92,12 @@ The main features of this example are (on a CERN machine with the gcc-2.95 compiler) - setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/4.0.3/bin - source /afs/cern.ch/sw/lhcxx/share/LHCXX/4.0.3/install/sharedstart.csh - - (on a CERN machine with the egcs-2.91.66 compiler (G4SYSTEM Linux-egcs) - - setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/egcs_1.1.2/4.0.3-sec/bin - source /afs/cern.ch/sw/lhcxx/share/LHCXX/4.0.3-sec/install/sharedstart.csh + ln -s /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/scripts/* ~/bin/. + (to be done once) + + setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/5.0.2/bin + source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/install/sharedstart.csh 2. Sample run @@ -191,31 +195,25 @@ The main features of this example are Please note that in a multiple run session, the last run always override the hbook file. - - 9. Histogramming ---------------- - Some hits information can be visualized runtime using the Anaphe QPlotter - (if it is available on the user platform); two 2D histograms and two - 1D histograms can be visualized and saved (as PostScript files) - during the simulation run. + Some hits information can be visualized runtime using the Anaphe Plotter + (if it is available on the user platform); two 1D histograms can be + visualized during the simulation run. - The 2D histograms contain the hits positions on the TKR projected on - the XZ plane and the YZ plane; the 1D histograms contain the energy - deposition in the last X plane of the TKR and the hits distribution along - the X planes of the TKR (note again that this histograms have been chosen more - for pedagogical motivation than for physical one). + The 1D histograms contain the energy deposition in the last X plane of + the TKR and the hits distribution along the X planes of the TKR + (note again that these histograms have been chosen more for pedagogical + motivation than for physical one). These histograms are filled and updated at every event and are initialized with each new run; the scale of the histograms is automatically derived from the detector geometry. Throught a messenger it is possible to set some options with - the UI subtree "/analysis/" (use the UI help for more info); in particular - it is possible to enable or disable the drawing of the 1D and 2D histograms - at every event and to enable or disable the saving of PostScript files at the - end of each run. If you feel that the simulation is too slow with the + the UI subtree "/analysis/" (use the UI help for more info); + If you feel that the simulation is too slow with the histograms updated every event, you can disable the drawing and retain the saving. Please note that the updating of the histograms is triggered only when there is some hit in an event. diff --git a/examples/advanced/gammaray_telescope/gammaraytel.in b/examples/advanced/gammaray_telescope/gammaraytel.in new file mode 100644 index 0000000000..c81513694f --- /dev/null +++ b/examples/advanced/gammaray_telescope/gammaraytel.in @@ -0,0 +1,33 @@ +# Macro file for the test of +# GammaRayTel +# +# + +/control/verbose 1 +/control/saveHistory +/run/verbose 1 + +/gun/particle proton +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 + +/gun/particle gamma +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 + +/gun/particle e- +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 + +/gun/particle proton +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 + + + + + diff --git a/examples/advanced/gammaray_telescope/gammaraytel.out b/examples/advanced/gammaray_telescope/gammaraytel.out new file mode 100644 index 0000000000..efb1f24d71 --- /dev/null +++ b/examples/advanced/gammaray_telescope/gammaraytel.out @@ -0,0 +1,3943 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (28-Feb-2002) + Copyright : Geant4 Collaboration +********************************************** +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) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +***** 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 % + + Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm + ---> Element: CarbonC Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % + ---> Element: HydrogenH 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: CesiumCs Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % + ---> Element: IodineI Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % + + Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.049 m + ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: OxygenO 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: AluminumAl 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: SiliconSi 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: IronFe 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: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + + 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 % + + Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.771 km + ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: OxygenO Z = 8.0 N = 16.0 A = 15.99 g/mole fractionMass: 30.00 % Abundance 27.29 % + + +2 LAT +1 TOP + +------------------------------------------------------------ +---> The Tracker is 15 layers of: 0.3mm of Tungsten +------------------------------------------------------------ + +phot: Total cross sections from Sandia parametrisation. +GammaRayTelPhysicsList::SetCuts:CutLength : 100 mum + +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: 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: 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. + +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. + +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: 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. + +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. + +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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. +============= The cut Energy ============================== + gamma e- +Cut in range + Tungsten 100 mum 100 mum + Scintillator 100 mum 100 mum + CesiumIodide 100 mum 100 mum + Air 100 mum 100 mum + Aluminum 100 mum 100 mum + Silicon 100 mum 100 mum + Iron 100 mum 100 mum + Lead 100 mum 100 mum + Galactic 100 mum 100 mum + Beam 100 mum 100 mum + dummyMat 100 mum 100 mum +Cut in energy + Tungsten 36 keV 351 keV + Scintillator 995 eV 85.3 keV + CesiumIodide 9.28 keV 143 keV + Air 990 eV 990 eV + Aluminum 2.31 keV 130 keV + Silicon 2.3 keV 120 keV + Iron 6.26 keV 234 keV + Lead 29.3 keV 240 keV + Galactic 990 eV 990 eV + Beam 990 eV 990 eV + dummyMat 990 eV 133 keV +=================================================== +/control/saveHistory +/run/verbose 1 +/gun/particle proton +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 +Start Run processing. +Event: 0 +Number of tracker hits in this event = 1 + 0 30.0091 896 1 0 0.25 -0.417602 -175.897 +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 = 4 + 2 140.003 896 1 1 -0.289757 0.985271 -174.45 + 2 178.027 901 1 0 -0.293456 0.995756 -175.85 + 2 132.263 896 0 1 -0.365953 1.22138 -204.45 + 2 143.39 902 0 0 -0.373218 1.23923 -205.85 +Number of tracker digits in this event = 4 +Event: 3 +Number of tracker hits in this event = 2 + 3 86.6958 853 3 0 -0.680176 -8.95913 -115.85 + 3 319.644 852 3 0 -0.697024 -9.16369 -115.857 +Number of tracker digits in this event = 1 +Event: 4 +Number of tracker hits in this event = 8 + 4 244.295 894 3 0 -0.425991 -0.76508 -115.85 + 4 271.498 893 3 0 -0.647779 -0.960238 -116.045 + 4 40.3872 892 3 0 -0.637087 -1.07814 -116.236 + 4 125.63 895 5 0 -0.300286 -0.583451 -55.85 + 4 40.3133 894 5 0 -0.331907 -0.802453 -56.1559 + 4 280.318 858 5 0 3.6125 -7.96846 -56.25 + 4 93.0461 859 5 0 3.74719 -7.75907 -56.1827 + 4 4.0079 860 5 0 3.63772 -7.62083 -56.2432 +Number of tracker digits in this event = 4 +Event: 5 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 6 +Number of tracker hits in this event = 1 + 6 112.009 896 1 0 0.261313 -0.254664 -175.85 +Number of tracker digits in this event = 0 +Event: 7 +Number of tracker hits in this event = 2 + 7 142.189 902 1 0 -0.537318 1.16109 -175.85 + 7 55.953 903 1 0 -0.591404 1.2765 -175.886 +Number of tracker digits in this event = 1 +Event: 8 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 9 +Number of tracker hits in this event = 6 + 9 148.249 898 2 1 0.338074 -0.6201 -144.45 + 9 102.671 895 2 0 0.34366 -0.640511 -145.85 + 9 151.584 899 1 1 0.462609 -1.06257 -174.45 + 9 274.018 892 1 0 0.461107 -1.0839 -175.85 + 9 276.538 898 0 1 0.440788 -1.53507 -204.45 + 9 270.783 890 0 0 0.437885 -1.56032 -205.85 +Number of tracker digits in this event = 5 +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 = 6 + 11 119.182 895 2 1 -0.515368 -0.265807 -144.45 + 11 129.274 896 2 0 -0.528098 -0.2702 -145.85 + 11 127.645 894 1 1 -0.77121 -0.355909 -174.45 + 11 118.987 896 1 0 -0.78008 -0.360188 -175.85 + 11 131.35 893 0 1 -0.955219 -0.431377 -204.45 + 11 106.088 896 0 0 -0.962749 -0.435514 -205.85 +Number of tracker digits in this event = 3 +Event: 12 +Number of tracker hits in this event = 6 + 12 150.189 895 1 1 -0.457216 -0.53032 -174.45 + 12 109.657 895 1 0 -0.470506 -0.53682 -175.85 + 12 178.133 894 0 1 -0.732411 -0.663245 -204.45 + 12 126.349 894 0 0 -0.745912 -0.670281 -205.85 + 12 393.32 941 3 0 5.86507 8.9146 -115.85 + 12 97.9584 942 3 0 6.03459 9.14376 -115.93 +Number of tracker digits in this event = 4 +Event: 13 +Number of tracker hits in this event = 8 + 13 192.193 896 3 1 -0.399796 0.454459 -114.45 + 13 116.473 899 3 0 -0.408605 0.467586 -115.85 + 13 276.618 895 2 1 -0.623805 0.777391 -144.45 + 13 339.628 900 2 0 -0.633369 0.797155 -145.85 + 13 166.383 894 1 1 -0.802962 1.18971 -174.45 + 13 135.295 902 1 0 -0.804277 1.20782 -175.85 + 13 118.515 894 0 1 -0.829782 1.57266 -204.45 + 13 179.663 904 0 0 -0.829927 1.58381 -205.85 +Number of tracker digits in this event = 6 +Event: 14 +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 = 3 + 15 291.193 896 1 0 -0.709019 -0.252618 -175.85 + 15 125.742 893 0 1 -0.872854 -0.348888 -204.45 + 15 119.236 896 0 0 -0.883028 -0.348345 -205.85 +Number of tracker digits in this event = 2 +Event: 16 +Number of tracker hits in this event = 10 + 16 219.044 898 4 1 0.295614 0.50625 -84.45 + 16 97.7439 899 4 0 0.303038 0.519476 -85.85 + 16 174.517 899 3 1 0.456073 0.779324 -114.45 + 16 146.891 900 3 0 0.463375 0.793411 -115.85 + 16 127.358 899 2 1 0.612313 1.08199 -144.45 + 16 105.31 902 2 0 0.619992 1.09671 -145.85 + 16 207.32 900 1 1 0.767273 1.40282 -174.45 + 16 129.911 903 1 0 0.775445 1.41969 -175.85 + 16 133.822 901 0 1 0.947455 1.76492 -204.45 + 16 125.534 905 0 0 0.95825 1.78178 -205.85 +Number of tracker digits in this event = 8 +Event: 17 +Number of tracker hits in this event = 2 + 17 133.782 896 0 1 -0.291018 0.335191 -204.45 + 17 178.697 898 0 0 -0.289682 0.341757 -205.85 +Number of tracker digits in this event = 2 +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 = 2 + 19 238.047 898 0 1 0.393826 0.493239 -204.45 + 19 116.076 899 0 0 0.403087 0.499119 -205.85 +Number of tracker digits in this event = 1 +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 = 2 + 21 134.138 896 0 1 -0.276425 0.612162 -204.45 + 21 127.996 899 0 0 -0.2803 0.615855 -205.85 +Number of tracker digits in this event = 2 +Event: 22 +Number of tracker hits in this event = 6 + 22 176.453 898 2 1 0.293409 -0.577377 -144.45 + 22 122.51 895 2 0 0.297217 -0.592178 -145.85 + 22 130.225 898 1 1 0.375738 -0.895419 -174.45 + 22 124.797 893 1 0 0.383784 -0.919846 -175.85 + 22 137.124 899 0 1 0.534972 -1.43357 -204.45 + 22 165.839 890 0 0 0.545308 -1.45562 -205.85 +Number of tracker digits in this event = 6 +Event: 23 +Number of tracker hits in this event = 4 + 23 234.845 926 0 0 4.66911 5.85102 -205.85 + 23 24.0561 927 0 0 4.99543 6.20717 -205.913 + 23 5.76164 929 0 1 6.64813 7.47553 -204.85 + 23 248.821 930 0 1 6.65737 7.48613 -204.84 +Number of tracker digits in this event = 2 +Event: 24 +Number of tracker hits in this event = 2 + 24 136.509 896 0 1 -0.380211 0.290075 -204.45 + 24 201.234 898 0 0 -0.386077 0.288163 -205.85 +Number of tracker digits in this event = 2 +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 = 0 +Number of tracker digits in this event = 0 +Event: 27 +Number of tracker hits in this event = 6 + 27 130.143 899 2 1 0.452645 0.585871 -144.45 + 27 162.191 899 2 0 0.461019 0.604961 -145.85 + 27 140.035 899 1 1 0.569832 0.996312 -174.45 + 27 117.285 901 1 0 0.570219 1.01206 -175.85 + 27 154.111 899 0 1 0.58518 1.3501 -204.45 + 27 117.018 903 0 0 0.582699 1.3677 -205.85 +Number of tracker digits in this event = 4 +Event: 28 +Number of tracker hits in this event = 3 + 28 109.924 937 1 0 -40.6175 8.22133 -176.25 + 28 212.506 938 1 0 -40.6315 8.29103 -175.981 + 28 185.025 939 1 0 -40.5038 8.53886 -176.135 +Number of tracker digits in this event = 2 +Event: 29 +Number of tracker hits in this event = 2 + 29 113.746 898 0 1 0.304117 -0.61044 -204.45 + 29 112.72 895 0 0 0.307069 -0.613696 -205.85 +Number of tracker digits in this event = 0 +Event: 30 +Number of tracker hits in this event = 2 + 30 145.2 896 0 1 -0.328476 -0.355444 -204.45 + 30 117.691 896 0 0 -0.334502 -0.35369 -205.85 +Number of tracker digits in this event = 1 +Event: 31 +Number of tracker hits in this event = 2 + 31 135.458 896 3 1 -0.315548 0.300529 -114.45 + 31 130.386 898 3 0 -0.311053 0.313586 -115.85 +Number of tracker digits in this event = 2 +Event: 32 +Number of tracker hits in this event = 7 + 32 131.339 895 2 1 -0.626028 -0.258072 -144.45 + 32 146.545 896 2 0 -0.637105 -0.269221 -145.85 + 32 276.706 894 1 1 -0.817046 -0.527015 -174.45 + 32 122.063 895 1 0 -0.827287 -0.538721 -175.85 + 32 158.244 893 0 1 -1.03556 -0.77484 -204.45 + 32 133.709 894 0 0 -1.03527 -0.782787 -205.85 + 32 236.328 894 3 0 0.985356 -0.786088 -115.85 +Number of tracker digits in this event = 7 +Event: 33 +Number of tracker hits in this event = 10 + 33 124.562 896 3 1 -0.322801 -0.524431 -114.45 + 33 161.793 895 3 0 -0.325163 -0.534283 -115.85 + 33 171.806 896 2 1 -0.368818 -0.740599 -144.45 + 33 157.37 894 2 0 -0.372684 -0.750768 -145.85 + 33 148.957 895 1 1 -0.465421 -0.927914 -174.45 + 33 119.668 893 1 0 -0.471118 -0.938122 -175.85 + 33 178.098 895 0 1 -0.582739 -1.14163 -204.45 + 33 172.258 892 0 0 -0.584889 -1.14909 -205.85 + 33 12.4963 897 6 1 -0.25 -0.286369 -24.72 + 33 253.334 896 6 1 -0.267384 -0.311845 -24.726 +Number of tracker digits in this event = 8 +Event: 34 +Number of tracker hits in this event = 2 + 34 128.286 890 0 1 -1.46704 -0.256764 -204.45 + 34 143.272 896 0 0 -1.4899 -0.254533 -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 = 4 + 36 120.892 900 1 1 0.658754 0.574993 -174.45 + 36 155.017 899 1 0 0.665696 0.598073 -175.85 + 36 126.895 900 0 1 0.814802 1.05822 -204.45 + 36 145.905 902 0 0 0.820235 1.07828 -205.85 +Number of tracker digits in this event = 4 +Event: 37 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 38 +Number of tracker hits in this event = 3 + 38 103.358 894 4 0 -0.787373 -0.777816 -85.85 + 38 148.832 893 4 0 -0.957483 -0.964417 -85.9815 + 38 11.6939 892 4 0 -1.09216 -1.10066 -86.2258 +Number of tracker digits in this event = 1 +Event: 39 +Number of tracker hits in this event = 3 + 39 25.8568 1208 3 0 -10.1174 62.2518 -116.25 + 39 91.9094 1207 3 0 -10.126 62.2179 -116.221 + 39 215.416 1011 3 0 -89.3845 22.8706 -116.25 +Number of tracker digits in this event = 1 +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 = 0 +Number of tracker digits in this event = 0 +Event: 42 +Number of tracker hits in this event = 4 + 42 118.899 896 1 1 -0.333407 0.32078 -174.45 + 42 134.76 898 1 0 -0.335476 0.330172 -175.85 + 42 124.848 896 0 1 -0.395899 0.519465 -204.45 + 42 94.9942 899 0 0 -0.404711 0.527994 -205.85 +Number of tracker digits in this event = 2 +Event: 43 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +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 = 0 +Number of tracker digits in this event = 0 +Event: 46 +Number of tracker hits in this event = 2 + 46 226.095 898 0 1 0.386313 -1.1999 -204.45 + 46 137.995 892 0 0 0.391487 -1.21515 -205.85 +Number of tracker digits in this event = 2 +Event: 47 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 48 +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 = 6 + 49 139.142 896 2 1 -0.302729 -0.526935 -144.45 + 49 119.485 895 2 0 -0.306115 -0.543311 -145.85 + 49 124.898 896 1 1 -0.335926 -0.865809 -174.45 + 49 121.184 893 1 0 -0.335703 -0.880482 -175.85 + 49 177.396 896 0 1 -0.346035 -1.19689 -204.45 + 49 142.224 892 0 0 -0.350004 -1.21356 -205.85 +Number of tracker digits in this event = 5 +Event: 50 +Number of tracker hits in this event = 7 + 50 143.254 899 2 1 0.470342 0.37227 -144.45 + 50 109.686 898 2 0 0.477586 0.375232 -145.85 + 50 204.194 899 1 1 0.613145 0.439229 -174.45 + 50 107.679 898 1 0 0.621506 0.44396 -175.85 + 50 113.384 900 0 1 0.790765 0.544853 -204.45 + 50 207.341 899 0 0 0.799684 0.545169 -205.85 + 50 153.32 901 6 0 -0.745799 0.871201 -25.85 +Number of tracker digits in this event = 4 +Event: 51 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +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 = 4 + 53 119.361 895 1 1 -0.463986 0.260723 -174.45 + 53 135.635 898 1 0 -0.470619 0.26195 -175.85 + 53 138.014 895 0 1 -0.606901 0.28323 -204.45 + 53 143.7 898 0 0 -0.622225 0.278626 -205.85 +Number of tracker digits in this event = 3 +Event: 54 +Number of tracker hits in this event = 2 + 54 108.943 898 0 1 0.319002 0.537998 -204.45 + 54 131.28 899 0 0 0.322521 0.552146 -205.85 +Number of tracker digits in this event = 1 +Event: 55 +Number of tracker hits in this event = 4 + 55 152.558 896 1 1 -0.396062 0.518379 -174.45 + 55 139.032 899 1 0 -0.4044 0.519278 -175.85 + 55 134.919 895 0 1 -0.568716 0.544619 -204.45 + 55 132.109 899 0 0 -0.575131 0.548709 -205.85 +Number of tracker digits in this event = 4 +Event: 56 +Number of tracker hits in this event = 2 + 56 108.902 895 0 1 -0.528492 0.252043 -204.45 + 56 164.501 898 0 0 -0.543402 0.259775 -205.85 +Number of tracker digits in this event = 1 +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 = 2 + 59 2.16968 897 0 0 -0.283716 -0.25 -206.103 + 59 98.7584 896 0 0 -0.28505 -0.252802 -206.105 +Number of tracker digits in this event = 0 +Event: 60 +Number of tracker hits in this event = 1 + 60 306.465 898 0 0 2.11784 0.25 -206.067 +Number of tracker digits in this event = 1 +Event: 61 +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 = 0 +Number of tracker digits in this event = 0 +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 = 0 +Number of tracker digits in this event = 0 +Event: 65 +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 = 0 +Number of tracker digits in this event = 0 +Event: 67 +Number of tracker hits in this event = 6 + 67 139.24 898 2 1 0.29648 0.270031 -144.45 + 67 133.043 898 2 0 0.303367 0.273678 -145.85 + 67 152.539 898 1 1 0.43457 0.38378 -174.45 + 67 127.716 898 1 0 0.4351 0.39026 -175.85 + 67 121.923 898 0 1 0.416507 0.478875 -204.45 + 67 120.695 899 0 0 0.411746 0.482024 -205.85 +Number of tracker digits in this event = 6 +Event: 68 +Number of tracker hits in this event = 4 + 68 109.67 896 1 1 -0.284978 -0.274317 -174.45 + 68 149.975 896 1 0 -0.29037 -0.277271 -175.85 + 68 229.127 896 0 1 -0.390383 -0.339754 -204.45 + 68 109.553 896 0 0 -0.394999 -0.333862 -205.85 +Number of tracker digits in this event = 2 +Event: 69 +Number of tracker hits in this event = 2 + 69 237.229 896 0 1 -0.364466 1.07533 -204.45 + 69 152.075 902 0 0 -0.370601 1.09521 -205.85 +Number of tracker digits in this event = 2 +Event: 70 +Number of tracker hits in this event = 3 + 70 103.325 895 1 0 -0.2551 -0.467944 -175.85 + 70 257.012 896 0 1 -0.435667 -0.664463 -204.45 + 70 148.336 894 0 0 -0.441278 -0.678729 -205.85 +Number of tracker digits in this event = 2 +Event: 71 +Number of tracker hits in this event = 4 + 71 130.142 899 1 1 0.45671 0.375652 -174.45 + 71 140.249 898 1 0 0.466465 0.382931 -175.85 + 71 159.559 900 0 1 0.689092 0.522488 -204.45 + 71 171.678 899 0 0 0.699557 0.527313 -205.85 +Number of tracker digits in this event = 4 +Event: 72 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 73 +Number of tracker hits in this event = 7 + 73 109.492 898 1 1 0.449044 0.337446 -174.45 + 73 157.558 899 1 1 0.451268 0.337851 -174.726 + 73 183.347 898 1 0 0.462381 0.339684 -175.85 + 73 128.414 900 0 1 0.742155 0.39472 -204.45 + 73 131.598 898 0 0 0.754225 0.397283 -205.85 + 73 9.06977 920 1 0 -1.02132 4.71141 -175.85 + 73 145.331 886 1 1 -2.26342 7.94835 -174.85 +Number of tracker digits in this event = 5 +Event: 74 +Number of tracker hits in this event = 8 + 74 129.691 896 2 1 -0.317947 -0.848862 -144.45 + 74 118.73 893 2 0 -0.320551 -0.860446 -145.85 + 74 127.612 896 1 1 -0.379926 -1.10136 -174.45 + 74 143.661 892 1 0 -0.382918 -1.11568 -175.85 + 74 124.955 896 0 1 -0.445772 -1.4165 -204.45 + 74 173.938 891 0 0 -0.46204 -1.42863 -205.85 + 74 1.844 880 6 0 -1.81785 -3.5642 -25.85 + 74 22.8354 877 6 0 -2.08312 -4.0938 -26.063 +Number of tracker digits in this event = 5 +Event: 75 +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 = 8 + 77 125.79 896 3 1 -0.256444 -0.321478 -114.45 + 77 119.639 896 3 0 -0.263404 -0.330548 -115.85 + 77 113.617 896 2 1 -0.414592 -0.526243 -144.45 + 77 139.27 895 2 0 -0.419348 -0.537289 -145.85 + 77 123.778 895 1 1 -0.523175 -0.774335 -174.45 + 77 128.987 894 1 0 -0.529262 -0.782996 -175.85 + 77 128.503 895 0 1 -0.642048 -0.961452 -204.45 + 77 200.383 893 0 0 -0.643605 -0.971546 -205.85 +Number of tracker digits in this event = 6 +Event: 78 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 79 +Number of tracker hits in this event = 8 + 79 116.102 898 3 1 0.296991 -0.318502 -114.45 + 79 166.066 896 3 0 0.305774 -0.319065 -115.85 + 79 151.294 899 2 1 0.484399 -0.32571 -144.45 + 79 221.259 896 2 0 0.482867 -0.325338 -145.85 + 79 176.578 898 1 1 0.439948 -0.302251 -174.45 + 79 105.208 896 1 0 0.436525 -0.300664 -175.85 + 79 103.38 898 0 1 0.356193 -0.278797 -204.45 + 79 119.056 896 0 0 0.353147 -0.276815 -205.85 +Number of tracker digits in this event = 4 +Event: 80 +Number of tracker hits in this event = 4 + 80 33.7068 898 1 1 0.251528 -0.25 -174.779 + 80 229.18 894 1 0 -0.581419 -0.792742 -175.85 + 80 232.393 893 1 0 -0.613901 -0.859315 -175.949 + 80 21.3366 895 1 0 -0.85817 -0.620044 -176.151 +Number of tracker digits in this event = 2 +Event: 81 +Number of tracker hits in this event = 6 + 81 113.764 898 2 1 0.334933 0.569147 -144.45 + 81 140.897 899 2 0 0.339282 0.578974 -145.85 + 81 419.573 898 1 1 0.44284 0.785778 -174.45 + 81 138.199 900 1 0 0.44855 0.794346 -175.85 + 81 122.59 899 0 1 0.556185 0.96233 -204.45 + 81 151.366 901 0 0 0.565255 0.972088 -205.85 +Number of tracker digits in this event = 5 +Event: 82 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 83 +Number of tracker hits in this event = 10 + 83 127.13 898 2 1 0.412305 -0.286301 -144.45 + 83 162.575 896 2 0 0.419477 -0.286883 -145.85 + 83 124.916 899 1 1 0.567987 -0.271087 -174.45 + 83 149.194 896 1 0 0.568535 -0.26926 -175.85 + 83 132.954 1244 4 0 -56.5698 69.4564 -86.25 + 83 35.7243 1243 4 0 -56.5649 69.4457 -86.1882 + 83 35.4344 613 4 1 -57.0288 69.0931 -84.85 + 83 272.999 612 4 1 -57.0764 69.0784 -84.7471 + 83 1.82803 611 4 1 -57.3478 69.0379 -84.4526 + 83 31.6857 393 4 0 33.7694 -101.249 -86.25 +Number of tracker digits in this event = 6 +Event: 84 +Number of tracker hits in this event = 2 + 84 34.9388 896 2 0 0.25 -0.421552 -146.162 + 84 1.11575 856 2 0 66.4266 -8.38543 -146.25 +Number of tracker digits in this event = 0 +Event: 85 +Number of tracker hits in this event = 5 + 85 151.138 897 1 0 1.31413 -0.25 -175.879 + 85 229.201 904 0 1 1.60057 -0.446062 -204.45 + 85 119.852 895 0 0 1.61943 -0.45793 -205.85 + 85 349.965 905 3 0 2.2311 1.71301 -115.85 + 85 90.1584 906 3 0 2.3733 1.85996 -115.993 +Number of tracker digits in this event = 3 +Event: 86 +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 = 0 +Number of tracker digits in this event = 0 +Event: 88 +Number of tracker hits in this event = 6 + 88 133.381 896 3 1 -0.255595 0.274724 -114.45 + 88 140.166 898 3 0 -0.258877 0.277693 -115.85 + 88 125.1 896 2 1 -0.322702 0.347162 -144.45 + 88 144.44 898 2 0 -0.32167 0.347356 -145.85 + 88 140.134 896 1 1 -0.308027 0.33835 -174.45 + 88 216.145 898 1 0 -0.304723 0.336153 -175.85 +Number of tracker digits in this event = 6 +Event: 89 +Number of tracker hits in this event = 6 + 89 141.716 898 2 1 0.300427 0.280927 -144.45 + 89 149.419 898 2 0 0.306228 0.282102 -145.85 + 89 149.101 898 1 1 0.418111 0.305356 -174.45 + 89 216.117 898 1 0 0.424339 0.306897 -175.85 + 89 145.964 899 0 1 0.558708 0.341981 -204.45 + 89 197.688 898 0 0 0.566061 0.346208 -205.85 +Number of tracker digits in this event = 6 +Event: 90 +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 = 6 + 91 180.466 899 2 1 0.472896 -0.299021 -144.45 + 91 136.153 896 2 0 0.474522 -0.301994 -145.85 + 91 132.764 899 1 1 0.520531 -0.352178 -174.45 + 91 126.979 896 1 0 0.525175 -0.35527 -175.85 + 91 136.009 899 0 1 0.605884 -0.382989 -204.45 + 91 234.776 896 0 0 0.613322 -0.387109 -205.85 +Number of tracker digits in this event = 6 +Event: 92 +Number of tracker hits in this event = 8 + 92 111.288 899 3 1 0.621204 -0.413278 -114.45 + 92 114.381 896 3 0 0.635413 -0.421755 -115.85 + 92 120.969 901 2 1 0.928911 -0.587801 -144.45 + 92 136.726 895 2 0 0.939159 -0.597476 -145.85 + 92 176.101 902 1 1 1.14488 -0.793402 -174.45 + 92 118.44 894 1 0 1.156 -0.801401 -175.85 + 92 125.408 903 0 1 1.36502 -0.969252 -204.45 + 92 111.55 893 0 0 1.37311 -0.976198 -205.85 +Number of tracker digits in this event = 4 +Event: 93 +Number of tracker hits in this event = 4 + 93 64.4653 895 2 1 -0.473428 1.65122 -144.85 + 93 75.9225 896 2 1 -0.435464 1.65644 -144.784 + 93 190.254 901 5 0 -1.65491 0.869173 -55.85 + 93 82.7535 885 5 1 -2.57247 0.460478 -54.85 +Number of tracker digits in this event = 1 +Event: 94 +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 = 0 +Number of tracker digits in this event = 0 +Event: 96 +Number of tracker hits in this event = 8 + 96 130.373 899 3 1 0.607371 -0.38472 -114.45 + 96 109.446 896 3 0 0.613924 -0.395777 -115.85 + 96 174.94 900 2 1 0.736242 -0.629105 -144.45 + 96 121.754 895 2 0 0.745883 -0.635864 -145.85 + 96 119.875 901 1 1 0.979466 -0.779646 -174.45 + 96 157.397 894 1 0 1.00171 -0.788967 -175.85 + 96 171.583 903 0 1 1.44498 -0.946153 -204.45 + 96 246.568 893 0 0 1.46705 -0.950984 -205.85 +Number of tracker digits in this event = 6 +Event: 97 +Number of tracker hits in this event = 4 + 97 125.339 898 1 1 0.317422 -0.672306 -174.45 + 97 113.441 894 1 0 0.321475 -0.678455 -175.85 + 97 120.947 898 0 1 0.398042 -0.815691 -204.45 + 97 183.65 894 0 0 0.405806 -0.825383 -205.85 +Number of tracker digits in this event = 3 +Event: 98 +Number of tracker hits in this event = 2 + 98 137.626 898 2 1 0.266829 -0.361964 -144.45 + 98 131.473 896 2 0 0.262964 -0.368785 -145.85 +Number of tracker digits in this event = 2 +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=0.82s Real=0.82s Sys=0s +/gun/particle gamma +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 +Start Run processing. +Event: 0 +Number of tracker hits in this event = 9 + 0 103.192 893 0 1 -1.02506 -0.415622 -204.45 + 0 122.281 896 0 0 -1.02141 -0.418566 -205.85 + 0 120.624 896 3 1 -0.265583 -0.857187 -114.45 + 0 174.778 887 1 1 -2.21864 2.89272 -174.45 + 0 119.843 911 1 0 -2.34667 3.02674 -175.85 + 0 98.7894 875 0 1 -4.52888 5.57525 -204.45 + 0 104.82 925 0 0 -4.5496 5.66223 -205.85 + 0 2.75827 629 1 0 -73.5652 -53.7966 -176.183 + 0 56.3771 648 1 0 -78.1845 -49.9498 -176.067 +Number of tracker digits in this event = 3 +Event: 1 +Number of tracker hits in this event = 21 + 1 112.441 887 4 1 -2.14562 -0.358688 -84.45 + 1 126.171 896 4 0 -2.17787 -0.343082 -85.85 + 1 167.674 870 1 1 -5.57122 0.41738 -174.45 + 1 162.849 899 1 0 -5.66083 0.517518 -175.85 + 1 108.042 861 0 1 -7.37696 2.53998 -204.45 + 1 136.537 909 0 0 -7.46723 2.61898 -205.85 + 1 17.414 897 5 0 -0.438487 -0.25 -56.1753 + 1 6.13449 896 5 0 -0.394538 -0.277544 -56.2272 + 1 114.309 710 4 1 -37.5008 16.6601 -84.4855 + 1 162.343 893 3 1 -1.04423 0.348458 -114.45 + 1 240.942 898 3 0 -1.06813 0.354938 -115.85 + 1 118.115 890 2 1 -1.54278 0.473762 -144.45 + 1 175.456 899 2 0 -1.5619 0.463529 -145.85 + 1 101.891 888 1 1 -1.96018 0.261033 -174.45 + 1 143.949 751 8 0 167.137 -29.2882 33.75 + 1 293.865 1597 8 1 140.435 -93.2894 35.3569 + 1 57.7639 234 4 0 -40.8599 -133.044 -86.2231 + 1 23.6786 887 3 0 -0.881925 -2.17609 -115.85 + 1 166.634 886 3 0 -0.90058 -2.25029 -115.884 + 1 350.99 885 3 0 -0.71226 -2.4538 -116.116 + 1 223.02 884 3 0 -0.659428 -2.66742 -116.127 +Number of tracker digits in this event = 12 +Event: 2 +Number of tracker hits in this event = 6 + 2 139.193 891 0 1 -1.33993 0.867204 -204.45 + 2 107.613 901 0 0 -1.39145 0.904774 -205.85 + 2 100.562 898 0 0 -0.287033 0.38959 -205.85 + 2 24.9881 899 0 0 -0.371832 0.470215 -206.178 + 2 360.565 884 0 0 -0.875813 -2.65362 -205.85 + 2 396.437 883 0 0 -0.895994 -2.86759 -205.96 +Number of tracker digits in this event = 3 +Event: 3 +Number of tracker hits in this event = 16 + 3 109.763 898 2 1 0.25 0.310196 -144.622 + 3 142.838 898 2 0 0.27002 0.326731 -145.85 + 3 286.83 900 1 1 0.745634 0.700617 -174.45 + 3 121.342 900 1 0 0.772325 0.719157 -175.85 + 3 147.151 903 0 1 1.35349 1.1096 -204.45 + 3 104.528 902 0 0 1.39166 1.12336 -205.85 + 3 46.3764 898 1 0 0.626874 0.286006 -175.85 + 3 50.5842 900 3 1 0.736961 -0.25988 -114.45 + 3 196.519 899 2 1 0.517767 1.66929 -144.45 + 3 124.496 905 2 0 0.536942 1.66774 -145.85 + 3 136.9 899 1 1 0.640419 0.512253 -174.45 + 3 139.617 914 0 1 3.49526 -8.35984 -204.45 + 3 149.59 854 0 0 3.85786 -8.80108 -205.85 + 3 44.6727 1094 1 0 17.0795 39.5042 -176.214 + 3 98.2499 1022 0 1 25.2475 96.9049 -204.511 + 3 228.035 1023 0 1 25.3312 97.0857 -204.504 +Number of tracker digits in this event = 10 +Event: 4 +Number of tracker hits in this event = 2 + 4 2.20009 720 4 0 -135.268 -35.4768 -85.8509 + 4 99.9726 229 4 1 -134.143 -34.6201 -84.85 +Number of tracker digits in this event = 0 +Event: 5 +Number of tracker hits in this event = 9 + 5 151.535 898 1 1 0.250947 1.57916 -174.45 + 5 150.878 905 1 0 0.506436 1.76405 -175.85 + 5 105.268 921 0 1 4.87197 6.08426 -204.45 + 5 139.295 928 0 0 5.14869 6.35831 -205.85 + 5 116.274 900 0 1 0.733457 1.73719 -204.45 + 5 278.692 908 0 0 0.5412 2.25237 -205.85 + 5 134.871 877 0 1 -4.14689 3.98987 -204.45 + 5 169.309 917 0 0 -5.00202 4.19248 -205.85 + 5 137.31 882 0 1 -3.21846 8.66665 -204.525 +Number of tracker digits in this event = 7 +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 = 1 + 7 17.6182 892 2 1 -1.22068 -57.0467 -144.827 +Number of tracker digits in this event = 0 +Event: 8 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +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 = 0 +Number of tracker digits in this event = 0 +Event: 11 +Number of tracker hits in this event = 32 + 11 120.026 895 4 1 -0.523012 0.746783 -84.45 + 11 115.265 900 4 0 -0.535614 0.794026 -85.85 + 11 101.317 894 3 1 -0.820861 1.75869 -114.45 + 11 145.142 905 3 0 -0.848416 1.81189 -115.85 + 11 115.388 892 2 1 -1.17939 2.98549 -144.45 + 11 101.523 911 2 0 -1.18195 3.03041 -145.85 + 11 92.3166 892 1 1 -1.19349 3.93417 -174.45 + 11 117.051 916 1 0 -1.17952 3.98973 -175.85 + 11 125.436 893 0 1 -0.872394 5.08092 -204.45 + 11 192.793 922 0 0 -0.84968 5.13319 -205.85 + 11 30.5561 897 0 0 54.1238 -0.25 -205.88 + 11 2.10828 896 0 0 54.1312 -0.341101 -205.852 + 11 76.5769 1173 0 1 55.436 -3.74661 -204.85 + 11 60.7421 1174 0 1 55.4536 -3.8376 -204.837 + 11 66.3229 869 0 0 57.9821 -5.73426 -205.85 + 11 115.965 868 0 0 58.1258 -5.89091 -205.887 + 11 115.403 867 0 0 58.191 -6.1452 -205.949 + 11 179.422 866 0 0 58.2396 -6.39989 -205.99 + 11 99.6319 865 0 0 58.5102 -6.5428 -205.878 + 11 2.65627 1178 0 1 56.4095 19.6716 -204.85 + 11 60.5186 1019 0 0 58.2855 24.6158 -205.85 + 11 53.6596 1020 0 0 58.2789 24.6594 -205.854 + 11 161.359 840 2 1 -11.5642 -3.5168 -144.45 + 11 83.4631 872 2 0 -11.9706 -5.15012 -145.85 + 11 190.949 871 2 0 -12.029 -5.40094 -146.069 + 11 117.403 900 2 1 0.737934 -0.56117 -144.45 + 11 131.276 895 2 0 0.767553 -0.586307 -145.85 + 11 143.736 903 1 1 1.3632 -1.09725 -174.45 + 11 117.965 892 1 0 1.38897 -1.13045 -175.85 + 11 118.593 906 0 1 1.89844 -1.76517 -204.45 + 11 112.114 889 0 0 1.93431 -1.79328 -205.85 + 11 61.1181 899 3 1 0.619501 -0.25 -114.457 +Number of tracker digits in this event = 9 +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 = 3 + 13 260.487 691 9 0 44.5647 -41.3542 63.75 + 13 27.7878 1118 9 1 44.253 -42.5262 65.15 + 13 262.2 1117 9 1 44.2075 -42.6127 65.2207 +Number of tracker digits in this event = 2 +Event: 14 +Number of tracker hits in this event = 1 + 14 114.956 139 8 1 -151.983 120.015 35.4531 +Number of tracker digits in this event = 0 +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 +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 = 3 + 18 38.8221 912 1 0 -35.4154 3.06665 -176.185 + 18 118.722 892 0 1 -1.23241 -0.274381 -204.45 + 18 151.975 896 0 0 -1.25784 -0.258423 -205.85 +Number of tracker digits in this event = 1 +Event: 19 +Number of tracker hits in this event = 11 + 19 193.061 895 3 1 -0.513187 -2.69165 -114.45 + 19 98.1663 884 3 0 -0.514597 -2.77876 -115.85 + 19 102.488 896 2 1 -0.449195 -4.60994 -144.45 + 19 168.03 874 2 0 -0.43963 -4.71762 -145.85 + 19 126.169 898 0 1 0.434413 0.663195 -204.45 + 19 117.098 900 0 0 0.474983 0.669998 -205.85 + 19 153.033 895 0 1 -0.491107 -0.793602 -204.45 + 19 114.317 894 0 0 -0.541494 -0.76183 -205.85 + 19 147.965 880 0 1 -3.54983 -0.532029 -204.45 + 19 94.2939 896 0 0 -3.93404 -0.297519 -205.85 + 19 311.015 786 0 1 -22.2573 -23.4764 -204.524 +Number of tracker digits in this event = 6 +Event: 20 +Number of tracker hits in this event = 1 + 20 196.334 1614 6 1 143.792 48.2946 -24.7177 +Number of tracker digits in this event = 1 +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 = 0 +Number of tracker digits in this event = 0 +Event: 23 +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 163.239 896 0 1 -0.423154 0.507613 -204.45 + 24 108.118 899 0 0 -0.418496 0.520754 -205.85 +Number of tracker digits in this event = 1 +Event: 25 +Number of tracker hits in this event = 20 + 25 104.587 899 3 1 0.489137 -0.633818 -114.45 + 25 110.421 895 3 0 0.548177 -0.582044 -115.85 + 25 263.839 901 2 1 1.0463 0.514879 -144.45 + 25 269.749 899 2 0 1.02648 0.559377 -145.85 + 25 119.683 900 1 1 0.69831 1.49384 -174.45 + 25 100.046 904 1 0 0.696742 1.57253 -175.85 + 25 105.387 896 0 1 -0.423175 3.44497 -204.45 + 25 100.053 914 0 0 -0.44361 3.4948 -205.85 + 25 169.4 894 1 1 -0.675356 8.18477 -174.45 + 25 143.911 934 1 0 -1.53168 7.4695 -175.85 + 25 197.074 810 0 1 -17.4867 -2.12947 -204.45 + 25 154.414 879 0 0 -17.6166 -3.65093 -205.85 + 25 104.383 901 0 1 0.925872 -0.355664 -204.45 + 25 123.479 896 0 0 0.929272 -0.372334 -205.85 + 25 274.669 972 9 0 5.17696 15.106 63.8289 + 25 102.412 971 9 0 5.10196 15.0478 64.0182 + 25 169.401 1031 7 0 23.103 26.8837 3.77322 + 25 113.793 895 1 0 0.856462 -0.497719 -175.85 + 25 133.453 916 0 1 4.04264 -9.71089 -204.45 + 25 114.27 849 0 0 4.09458 -9.67546 -205.85 +Number of tracker digits in this event = 10 +Event: 26 +Number of tracker hits in this event = 1 + 26 17.7648 1144 1 1 49.6112 -126.345 -174.519 +Number of tracker digits in this event = 0 +Event: 27 +Number of tracker hits in this event = 4 + 27 141.027 884 0 0 -74.8465 -2.82456 -206.25 + 27 137.108 525 0 1 -74.5992 -1.98206 -204.85 + 27 92.2355 1542 2 0 159.943 129.505 -146.161 + 27 64.14 1543 2 0 159.968 129.56 -146.128 +Number of tracker digits in this event = 2 +Event: 28 +Number of tracker hits in this event = 3 + 28 37.8387 1091 0 0 115.09 38.8709 -206.25 + 28 300.385 1090 0 0 115.118 38.7829 -206.171 + 28 7.26907 1088 0 0 115.134 38.437 -206.237 +Number of tracker digits in this event = 1 +Event: 29 +Number of tracker hits in this event = 9 + 29 115.202 896 1 1 -0.274359 0.307903 -174.45 + 29 117.859 898 1 0 -0.317583 0.338299 -175.85 + 29 107.709 892 0 1 -1.19817 0.972309 -204.45 + 29 98.5961 901 0 0 -1.24106 1.00846 -205.85 + 29 23.839 633 1 1 -52.8972 44.3125 -174.577 + 29 131.026 893 1 1 -0.918791 -0.644185 -174.45 + 29 145.031 894 1 0 -0.942934 -0.677856 -175.85 + 29 124.458 891 0 1 -1.26704 -1.43744 -204.45 + 29 305.893 890 0 0 -1.2916 -1.48998 -205.85 +Number of tracker digits in this event = 4 +Event: 30 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 31 +Number of tracker hits in this event = 12 + 31 113.697 895 2 1 -0.622908 -0.256458 -144.45 + 31 158.156 896 2 0 -0.646383 -0.27908 -145.85 + 31 101.836 893 1 1 -1.04399 -0.901309 -174.45 + 31 122.236 893 1 0 -1.10707 -0.860647 -175.85 + 31 115.598 898 0 1 0.351534 0.328679 -204.45 + 31 253.45 898 0 0 0.354407 0.336733 -205.85 + 31 119.567 896 1 0 -3.34504 -0.367483 -175.85 + 31 321.084 895 1 0 -3.77068 -0.499085 -175.934 + 31 141.643 898 1 0 -5.03879 0.25 -176.117 + 31 320.909 899 1 0 -5.31522 0.45827 -176.045 + 31 144.656 866 1 1 -6.30356 0.875363 -174.85 + 31 55.958 864 1 1 -6.67185 0.880318 -174.562 +Number of tracker digits in this event = 7 +Event: 32 +Number of tracker hits in this event = 10 + 32 48.6513 479 0 0 58.7786 -83.7619 -206.25 + 32 112.038 478 0 0 58.9044 -83.9031 -206.224 + 32 225.168 477 0 0 58.9862 -84.2138 -206.017 + 32 68.1351 474 0 0 59.2772 -84.6944 -205.918 + 32 105.002 1293 0 1 79.2976 -93.5145 -204.85 + 32 215.112 1294 0 1 79.5954 -93.707 -204.803 + 32 94.4313 1296 0 1 79.8736 -93.9997 -204.844 + 32 101.158 1297 0 1 80.0985 -94.075 -204.83 + 32 289.559 1298 0 1 80.2807 -94.0398 -204.85 + 32 127.255 1299 0 1 80.5237 -94.0807 -204.679 +Number of tracker digits in this event = 4 +Event: 33 +Number of tracker hits in this event = 7 + 33 128.429 520 3 1 -75.516 1.77991 -114.614 + 33 163.324 519 3 1 -75.7634 1.67501 -114.588 + 33 54.37 895 3 0 -76.4866 -0.579985 -115.85 + 33 319.192 894 3 0 -76.5487 -0.685319 -115.94 + 33 185.549 893 3 0 -76.499 -0.980069 -115.915 + 33 199.952 90 12 0 170.149 -161.887 153.845 + 33 100.696 89 12 0 170.083 -162.005 154.035 +Number of tracker digits in this event = 5 +Event: 34 +Number of tracker hits in this event = 22 + 34 122.782 899 3 1 0.514798 -0.316493 -114.45 + 34 115.294 896 3 0 0.522876 -0.329378 -115.85 + 34 106.044 900 2 1 0.703387 -0.57684 -144.45 + 34 96.25 895 2 0 0.710594 -0.596152 -145.85 + 34 145.76 901 1 1 0.908114 -1.00724 -174.45 + 34 108.794 893 1 0 0.919208 -1.03192 -175.85 + 34 130.878 902 0 1 1.12604 -1.50074 -204.45 + 34 305.852 890 0 0 1.15867 -1.52808 -205.85 + 34 107.9 900 3 1 0.810368 -0.461793 -114.45 + 34 130.012 895 3 0 0.82625 -0.462921 -115.85 + 34 122.022 902 2 1 1.14816 -0.374731 -144.45 + 34 99.4528 896 2 0 1.17547 -0.37494 -145.85 + 34 181.553 905 1 1 1.72074 -0.385754 -174.45 + 34 586.468 896 1 0 1.76426 -0.380611 -175.85 + 34 108.516 910 0 1 2.68027 -0.325941 -204.45 + 34 116.189 896 0 0 2.73009 -0.28986 -205.85 + 34 308.64 947 0 0 -71.2612 10.0576 -206.25 + 34 182.646 1123 0 0 -92.7664 45.2513 -206.25 + 34 32.2838 1124 0 0 -92.7414 45.5492 -206.208 + 34 28.4917 898 0 0 -1.35587 0.25 -206.158 + 34 108.279 887 0 1 -2.16469 -1.79687 -204.45 + 34 172.369 895 1 0 1.47257 -0.483183 -176.101 +Number of tracker digits in this event = 11 +Event: 35 +Number of tracker hits in this event = 6 + 35 65.6444 1226 2 1 66.0104 -11.3708 -144.718 + 35 182.394 840 2 0 67.5932 -11.5746 -145.85 + 35 45.9343 1059 2 0 46.7721 32.645 -146.25 + 35 119.931 1060 2 0 46.6895 32.7589 -146.17 + 35 117.254 1061 2 0 46.41 32.92 -146.132 + 35 145.298 1130 2 1 46.6671 33.3706 -144.85 +Number of tracker digits in this event = 2 +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 +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 = 9 + 39 146.009 900 1 1 0.796336 -0.962794 -174.45 + 39 199.672 892 1 0 0.778845 -1.06842 -175.85 + 39 128.969 898 0 1 0.398388 -3.39616 -204.45 + 39 115.479 881 0 0 0.493135 -3.40722 -205.85 + 39 100.963 898 1 1 0.288727 0.903308 -174.45 + 39 116.971 901 1 0 0.815422 1.04815 -175.85 + 39 123.076 953 0 1 11.2983 3.44275 -204.45 + 39 129.902 913 0 0 11.968 3.41639 -205.85 + 39 111.733 755 1 1 -28.6285 -36.9402 -174.536 +Number of tracker digits in this event = 5 +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 = 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 = 4 + 43 131.607 696 2 1 -40.3346 -85.7189 -144.847 + 43 185.405 697 2 1 -40.2306 -85.9102 -144.613 + 43 142.032 698 2 1 -40.0497 -85.9749 -144.775 + 43 120.631 466 2 0 -36.6765 -86.2974 -145.85 +Number of tracker digits in this event = 4 +Event: 44 +Number of tracker hits in this event = 8 + 44 238.949 933 0 0 -6.70296 7.40956 -206.25 + 44 62.9961 900 1 0 -0.25 0.822954 -175.957 + 44 297.198 892 1 1 -1.05071 1.51629 -174.85 + 44 251.579 891 1 1 -1.27943 1.92469 -174.779 + 44 218.738 895 1 1 -0.630442 0.837035 -174.45 + 44 438.606 901 1 0 -0.669097 0.904427 -175.85 + 44 133.236 888 0 1 -1.88318 1.48291 -204.45 + 44 180.705 904 0 0 -2.00261 1.48948 -205.85 +Number of tracker digits in this event = 7 +Event: 45 +Number of tracker hits in this event = 2 + 45 26.2072 1736 5 1 168.244 15.513 -54.6871 + 45 62.5461 1124 1 0 60.5888 45.5718 -176.099 +Number of tracker digits in this event = 0 +Event: 46 +Number of tracker hits in this event = 3 + 46 116.806 100 2 0 -118.361 -159.821 -145.978 + 46 179.147 99 2 0 -118.551 -159.987 -146.105 + 46 193.992 98 2 0 -118.607 -160.191 -145.967 +Number of tracker digits in this event = 2 +Event: 47 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 48 +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 = 0 +Number of tracker digits in this event = 0 +Event: 50 +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 = 24 + 51 156.244 893 2 1 -1.04949 1.45099 -144.45 + 51 261.37 904 2 0 -1.07784 1.52951 -145.85 + 51 187.534 890 1 1 -1.63094 3.13527 -174.45 + 51 130.13 912 1 0 -1.66901 3.19867 -175.85 + 51 119.028 885 0 1 -2.58409 4.58616 -204.45 + 51 166.163 919 0 0 -2.65674 4.62746 -205.85 + 51 140.262 492 1 1 -81.1037 17.7307 -174.587 + 51 120.052 896 5 0 0.61487 -0.298259 -55.85 + 51 42.9855 892 5 1 -1.24367 0.25 -54.7305 + 51 99.8646 891 5 1 -1.3884 0.32076 -54.6866 + 51 95.7046 890 5 1 -1.63623 0.516866 -54.5929 + 51 273.403 888 5 1 -1.89854 0.673922 -54.45 + 51 191.319 889 5 1 -1.78887 0.657675 -54.4944 + 51 123.629 896 3 1 -0.26013 -0.60477 -114.45 + 51 117.455 895 3 0 -0.262856 -0.630871 -115.85 + 51 131.178 896 2 1 -0.262574 -1.09694 -144.45 + 51 108.045 892 2 0 -0.277196 -1.11287 -145.85 + 51 102.802 895 1 1 -0.572461 -1.45571 -174.45 + 51 135.08 890 1 0 -0.595757 -1.48089 -175.85 + 51 329.144 893 0 1 -0.999069 -1.99438 -204.45 + 51 127.735 888 0 0 -1.02765 -2.01456 -205.85 + 51 73.7708 886 0 1 -2.26827 -25.9762 -204.622 + 51 134.608 1705 5 1 162.091 -103.388 -54.8251 + 51 196.317 1706 5 1 162.184 -103.411 -54.8304 +Number of tracker digits in this event = 16 +Event: 52 +Number of tracker hits in this event = 4 + 52 142.878 894 0 1 -0.691697 -0.958458 -204.45 + 52 215.984 893 0 0 -0.695192 -0.958014 -205.85 + 52 54.77 1263 5 1 73.3798 52.6966 -54.5558 + 52 14.1679 678 5 0 142.715 -43.9128 -56.1492 +Number of tracker digits in this event = 2 +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 70.1945 1293 1 0 -8.79804 79.3566 -176.25 + 54 256.083 1294 1 0 -8.908 79.4605 -176.227 + 54 101.039 1534 0 1 127.879 50.0635 -204.577 +Number of tracker digits in this event = 1 +Event: 55 +Number of tracker hits in this event = 5 + 55 166.938 894 1 1 -0.701804 0.535757 -174.45 + 55 108.403 899 1 0 -0.813986 0.493045 -175.85 + 55 127.232 883 0 1 -3.00558 -0.396468 -204.45 + 55 285.428 896 0 0 -3.11864 -0.400061 -205.85 + 55 94.8766 310 2 1 -117.862 125.424 -144.501 +Number of tracker digits in this event = 3 +Event: 56 +Number of tracker hits in this event = 3 + 56 115.958 895 0 1 -0.463659 0.275658 -204.45 + 56 122.187 898 0 0 -0.477803 0.284608 -205.85 + 56 68.1967 287 1 0 97.2984 -122.396 -176.167 +Number of tracker digits in this event = 1 +Event: 57 +Number of tracker hits in this event = 39 + 57 141.639 913 1 1 3.25562 0.396444 -174.45 + 57 148.927 898 1 0 3.29139 0.403034 -175.85 + 57 142.519 917 0 1 4.08418 0.564875 -204.45 + 57 109.881 899 0 0 4.13854 0.560045 -205.85 + 57 104.98 1393 10 0 61.8749 99.6948 93.9532 + 57 250.472 902 2 1 1.21738 -2.96142 -144.45 + 57 120.041 882 2 0 1.24604 -3.052 -145.85 + 57 116.211 906 1 1 1.93899 -4.97096 -174.45 + 57 140.265 873 1 0 2.03791 -5.03954 -175.85 + 57 115.569 916 0 1 3.85921 -6.76156 -204.45 + 57 105.583 864 0 0 4.01124 -6.79268 -205.85 + 57 533.915 903 2 1 1.4403 -2.97235 -144.85 + 57 73.9413 904 2 1 1.47407 -3.03149 -144.798 + 57 91.8561 904 0 1 1.62864 -1.41788 -204.45 + 57 241.295 903 0 1 1.44371 -1.46556 -204.621 + 57 314.447 901 0 1 1.00372 -1.6411 -204.61 + 57 138.124 900 0 1 0.796633 -1.92586 -204.835 + 57 259.143 895 2 1 -0.634028 1.0004 -144.45 + 57 161.229 901 2 0 -0.669501 1.04234 -145.85 + 57 113.145 890 1 1 -1.45372 1.84708 -174.45 + 57 222.18 906 1 0 -1.45597 1.87577 -175.85 + 57 116.393 890 0 1 -1.51183 2.23311 -204.45 + 57 107.618 907 0 0 -1.44994 2.213 -205.85 + 57 132.678 184 3 1 -143.095 114.385 -114.7 + 57 57.5541 183 3 1 -143.178 114.438 -114.694 + 57 390.841 896 4 1 -0.28621 -0.25 -84.7903 + 57 68.361 895 4 1 -0.505363 -0.792434 -84.7691 + 57 228.806 898 3 1 0.25 -0.350282 -114.664 + 57 134.021 899 2 1 0.481714 -1.30235 -144.45 + 57 135.556 889 2 0 0.842179 -1.72653 -145.85 + 57 127.186 941 1 1 9.02689 -17.0208 -174.45 + 57 110.332 812 1 0 8.85123 -17.22 -175.85 + 57 165.297 933 0 1 7.26165 -20.3496 -204.45 + 57 67.9075 793 0 0 8.22693 -21.0185 -205.85 + 57 134.263 792 0 0 8.43056 -21.0752 -206.019 + 57 153.872 790 0 0 8.72882 -21.5143 -206.021 + 57 176.103 905 2 0 1.31039 1.75907 -145.85 + 57 115.301 908 1 1 2.26094 1.17211 -174.45 + 57 134.849 902 1 0 2.25662 1.13552 -175.85 +Number of tracker digits in this event = 24 +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 = 2 + 60 147.811 899 0 1 0.453228 -0.772489 -204.45 + 60 104.867 894 0 0 0.462761 -0.79069 -205.85 +Number of tracker digits in this event = 1 +Event: 61 +Number of tracker hits in this event = 2 + 61 137.611 67 4 0 -34.2457 -166.395 -86.1161 + 61 415.908 679 4 1 -43.7408 -154.523 -84.85 +Number of tracker digits in this event = 2 +Event: 62 +Number of tracker hits in this event = 15 + 62 106.736 899 2 1 0.524494 -0.504514 -144.45 + 62 139.642 895 2 0 0.555972 -0.512144 -145.85 + 62 132.207 902 1 1 1.21456 -0.652415 -174.45 + 62 120.632 894 1 0 1.2538 -0.668871 -175.85 + 62 130.396 907 0 1 2.06374 -1.00013 -204.45 + 62 100.78 893 0 0 2.10866 -1.01341 -205.85 + 62 124.271 900 3 1 0.803773 -1.04323 -114.45 + 62 154.948 892 3 0 0.904217 -1.11284 -115.85 + 62 131.263 910 2 1 2.78351 -2.54098 -144.45 + 62 115.882 885 2 0 2.88745 -2.59232 -145.85 + 62 125.565 922 1 1 5.10108 -3.65951 -174.45 + 62 99.8193 879 1 0 5.17131 -3.65539 -175.85 + 62 115.804 929 0 1 6.60046 -3.48017 -204.45 + 62 230.031 881 0 0 6.68158 -3.44839 -205.85 + 62 75.1441 880 0 0 6.74754 -3.50364 -206.206 +Number of tracker digits in this event = 9 +Event: 63 +Number of tracker hits in this event = 28 + 63 110.466 893 5 1 -0.980226 0.374275 -54.45 + 63 159.454 898 5 0 -0.891208 0.298637 -55.85 + 63 106.372 900 4 1 0.76412 -1.55873 -84.45 + 63 123.219 890 4 0 0.838088 -1.61631 -85.85 + 63 257.319 910 3 1 2.79456 -2.94294 -114.45 + 63 115.108 883 3 0 2.93998 -2.92631 -115.85 + 63 94.512 930 2 1 6.82255 -3.03393 -144.45 + 63 112.341 882 2 0 6.82751 -3.10442 -145.85 + 63 130.639 931 1 1 6.95899 -4.23345 -174.45 + 63 231.414 877 1 0 7.32337 -4.16465 -175.85 + 63 134.917 972 0 1 15.063 -2.90202 -204.45 + 63 116.872 884 0 0 15.2966 -2.76062 -205.85 + 63 401.337 888 0 0 15.468 -1.93906 -205.85 + 63 202.82 889 0 0 15.585 -1.7774 -205.935 + 63 106.35 890 0 0 15.617 -1.48606 -206.004 + 63 47.1385 887 0 0 15.2773 -2.07018 -205.965 + 63 199.458 876 3 0 2.02932 -4.37452 -115.85 + 63 50.5621 875 3 0 1.79934 -4.61538 -116.163 + 63 45.5357 748 3 0 12.6367 -29.9565 -116.25 + 63 123.607 902 2 1 1.14158 0.495614 -144.45 + 63 154.765 899 2 0 1.16749 0.530503 -145.85 + 63 289.13 905 1 1 1.69246 1.23688 -174.45 + 63 135.126 903 1 0 1.72843 1.28588 -175.85 + 63 175.62 908 0 1 2.41518 2.21084 -204.45 + 63 123.815 908 0 0 2.44874 2.25324 -205.85 + 63 93.0738 1084 0 0 6.19821 37.4982 -206.25 + 63 142.935 1085 0 0 6.24129 37.7783 -206.112 + 63 11.8701 1087 0 0 6.18355 38.1082 -206.206 +Number of tracker digits in this event = 16 +Event: 64 +Number of tracker hits in this event = 1 + 64 175.869 1219 2 0 -113.947 64.5335 -145.994 +Number of tracker digits in this event = 1 +Event: 65 +Number of tracker hits in this event = 24 + 65 308.721 898 2 1 0.326595 0.985576 -144.45 + 65 121.969 901 2 0 0.329241 1.00935 -145.85 + 65 109.603 898 1 1 0.425419 1.49749 -174.45 + 65 102.487 904 1 0 0.436806 1.52128 -175.85 + 65 424.364 900 0 1 0.673123 1.91195 -204.45 + 65 119.145 906 0 0 0.682723 1.93395 -205.85 + 65 277.47 899 0 1 0.539515 1.95627 -204.45 + 65 189.889 1340 0 1 88.6956 -40.2103 -204.845 + 65 136.903 1341 0 1 88.881 -40.3326 -204.783 + 65 135.168 904 0 0 0.511559 1.56216 -205.85 + 65 359.652 883 1 1 -2.85549 -0.902741 -174.45 + 65 428.291 892 1 0 -2.83945 -1.14523 -175.85 + 65 192.827 882 0 1 -3.08152 -7.47789 -204.45 + 65 166.337 860 0 0 -3.08505 -7.63377 -205.85 + 65 117.645 891 1 0 -3.30295 -1.31627 -175.85 + 65 109.583 868 0 0 0.961644 -6.00387 -205.85 + 65 57.53 893 1 0 -2.61177 -1.00192 -176.23 + 65 36.0883 898 4 1 0.293886 0.25 -84.7978 + 65 426.602 888 1 1 -1.94578 -1.52201 -174.45 + 65 311.463 890 1 0 -1.96932 -1.53703 -175.85 + 65 142.845 884 0 1 -2.69472 -1.81203 -204.45 + 65 110.266 889 0 0 -2.7388 -1.84112 -205.85 + 65 121.081 894 0 1 -0.798671 -0.983674 -204.45 + 65 109.301 893 0 0 -0.580912 -0.892983 -205.85 +Number of tracker digits in this event = 15 +Event: 66 +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 +Event: 68 +Number of tracker hits in this event = 4 + 68 140.109 902 0 1 1.091 -0.536052 -204.45 + 68 107.54 895 0 0 1.18404 -0.572632 -205.85 + 68 182.882 901 0 1 1.02904 -0.496502 -204.505 + 68 127.261 902 1 0 1.60131 1.20371 -175.85 +Number of tracker digits in this event = 3 +Event: 69 +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 = 0 +Number of tracker digits in this event = 0 +Event: 71 +Number of tracker hits in this event = 51 + 71 234.504 898 4 1 0.265191 -0.372463 -84.45 + 71 105.025 896 4 0 0.27454 -0.391093 -85.85 + 71 117.172 898 3 1 0.4178 -0.80512 -114.45 + 71 126.23 894 3 0 0.428615 -0.814542 -115.85 + 71 120.65 900 2 1 0.669623 -0.975336 -144.45 + 71 136.105 893 2 0 0.679003 -0.982995 -145.85 + 71 109.617 900 1 1 0.817028 -1.14064 -174.45 + 71 119.327 892 1 0 0.827046 -1.15523 -175.85 + 71 113.871 901 0 1 1.00578 -1.37784 -204.45 + 71 157.268 891 0 0 1.01371 -1.38435 -205.85 + 71 116.188 893 4 0 0.383916 -0.99672 -85.85 + 71 120.071 903 3 1 1.27811 -2.43724 -114.45 + 71 133.612 885 3 0 1.29614 -2.47865 -115.85 + 71 122.1 904 2 1 1.54401 -3.22826 -144.45 + 71 249.101 881 2 0 1.52312 -3.27182 -145.85 + 71 158.396 901 1 1 1.03451 -4.14443 -174.45 + 71 110.998 877 1 0 1.03976 -4.12256 -175.85 + 71 132.007 903 0 1 1.29092 -3.6256 -204.45 + 71 142.182 880 0 0 1.35561 -3.62586 -205.85 + 71 158.972 891 2 1 -1.32036 2.29234 -144.45 + 71 134.745 908 2 0 -1.45631 2.38972 -145.85 + 71 194.739 878 1 1 -3.97655 4.06507 -174.45 + 71 189.642 918 1 0 -4.01284 4.26349 -175.85 + 71 132.113 878 0 1 -4.01842 7.85717 -204.45 + 71 148.317 936 0 0 -4.08842 8.01017 -205.85 + 71 130.058 939 0 0 -0.508948 8.64211 -206.25 + 71 133.375 894 0 1 -0.792378 9.24123 -204.85 + 71 288.495 1065 1 0 8.85583 33.7696 -176.25 + 71 115.426 942 1 1 9.15595 34.7871 -174.85 + 71 127.62 1162 2 0 8.0889 53.228 -146.25 + 71 125.504 937 2 1 8.13938 54.2087 -144.85 + 71 86.4608 1347 3 0 17.5634 90.35 -116.09 + 71 155.188 986 3 1 17.9356 91.2901 -114.85 + 71 1274.96 1327 4 0 -32.6858 86.1915 -86.25 + 71 143.666 1326 4 0 -35.7602 85.9874 -86.25 + 71 162.848 718 4 1 -35.9125 88.3427 -84.85 + 71 96.3611 719 4 1 -35.771 88.8192 -84.6063 + 71 6.37564 1328 4 0 -35.905 86.4093 -85.8581 + 71 43.8405 1067 1 0 8.87374 34.0516 -176.188 + 71 220.478 993 2 1 19.3907 59.5587 -144.488 + 71 116.616 881 2 1 -3.44666 -3.16921 -144.45 + 71 372.384 851 1 1 -9.26884 -7.77564 -174.45 + 71 95.9951 858 1 0 -9.50068 -8.04968 -175.85 + 71 24.5249 857 1 0 -9.56907 -8.11315 -176.206 + 71 178.011 827 0 1 -14.0967 -14.1464 -204.45 + 71 110.183 826 0 0 -14.5002 -14.2794 -205.85 + 71 362.375 839 1 0 -18.0106 -11.6709 -175.85 + 71 7.75139 1192 1 0 -4.59437 59.0711 -176.25 + 71 118.084 1353 1 0 28.2121 91.6332 -176.25 + 71 226.568 852 1 0 -9.15992 -9.05246 -175.85 + 71 218.711 851 1 0 -9.13037 -9.31533 -176.062 +Number of tracker digits in this event = 33 +Event: 72 +Number of tracker hits in this event = 10 + 72 141.706 894 1 1 -0.729961 -0.260167 -174.45 + 72 103.522 896 1 0 -0.758732 -0.27369 -175.85 + 72 95.2415 891 0 1 -1.33351 -0.51959 -204.45 + 72 124.716 895 0 0 -1.34366 -0.544855 -205.85 + 72 302.23 905 3 1 1.82198 -2.05359 -114.45 + 72 104.344 888 3 0 1.83052 -1.94481 -115.85 + 72 113.086 914 2 1 3.6209 0.756337 -144.45 + 72 122.926 903 2 0 3.42509 1.32291 -145.85 + 72 205.298 891 1 1 -1.2505 11.7708 -174.45 + 72 102.931 955 1 0 -1.28206 11.8404 -175.85 +Number of tracker digits in this event = 5 +Event: 73 +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 194.119 1129 0 0 -12.8561 46.4644 -206.131 +Number of tracker digits in this event = 1 +Event: 75 +Number of tracker hits in this event = 10 + 75 121.788 901 1 1 0.889849 -1.00403 -174.45 + 75 232.674 893 1 0 0.942444 -0.969278 -175.85 + 75 105.674 906 0 1 1.89405 -0.287077 -204.45 + 75 126.266 900 1 1 0.658372 -1.21825 -174.461 + 75 165.611 899 1 1 0.64474 -1.12523 -174.797 + 75 227.794 892 1 0 0.586785 -1.13392 -175.85 + 75 215.71 898 0 1 0.294163 -1.00894 -204.45 + 75 152.297 892 0 0 0.283623 -1.06149 -205.85 + 75 40.0501 719 11 0 -16.3165 -35.7354 124.052 + 75 266.197 815 11 1 -16.5752 -36.2024 125.15 +Number of tracker digits in this event = 8 +Event: 76 +Number of tracker hits in this event = 1 + 76 39.6768 247 4 0 170.119 -130.545 -86.1697 +Number of tracker digits in this event = 0 +Event: 77 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 78 +Number of tracker hits in this event = 2 + 78 115.253 1576 7 0 -141.445 136.261 3.75 + 78 117.57 190 7 1 -141.889 136.384 5.15 +Number of tracker digits in this event = 0 +Event: 79 +Number of tracker hits in this event = 12 + 79 52.2457 904 3 0 -0.320041 1.54117 -115.85 + 79 195.944 896 4 1 -0.268091 -0.25 -84.5025 + 79 138.054 895 0 1 -0.533577 0.559931 -204.45 + 79 100.349 899 0 0 -0.567021 0.618835 -205.85 + 79 44.7909 898 4 1 0.399137 -0.25 -84.5043 + 79 120.056 899 4 1 0.488256 -0.338923 -84.5369 + 79 163.75 900 4 1 0.678324 -0.499979 -84.595 + 79 7.40141 901 4 1 0.960952 -0.725414 -84.8298 + 79 325.938 891 4 0 1.57692 -1.30496 -85.85 + 79 115.505 892 4 0 1.95401 -1.13912 -85.9509 + 79 91.2037 893 4 0 2.10275 -0.984174 -86.0653 + 79 208.304 894 4 0 2.07569 -0.843649 -86.0779 +Number of tracker digits in this event = 6 +Event: 80 +Number of tracker hits in this event = 4 + 80 134.46 898 0 1 0.439877 -1.66115 -204.45 + 80 120.981 889 0 0 0.522984 -1.68244 -205.85 + 80 199.784 499 5 1 -79.7001 143.171 -54.8192 + 80 11.5387 500 5 1 -79.6174 143.293 -54.4687 +Number of tracker digits in this event = 3 +Event: 81 +Number of tracker hits in this event = 4 + 81 47.4188 1353 5 0 168.439 91.6322 -56.0543 + 81 9.57736 851 4 0 -58.6097 -9.27363 -85.8709 + 81 222.181 604 4 1 -58.8443 -9.81062 -84.85 + 81 190.249 603 4 1 -58.8588 -9.82682 -84.8222 +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 +Event: 83 +Number of tracker hits in this event = 2 + 83 139.664 564 1 0 86.5713 -66.7035 -175.912 + 83 188.317 973 11 0 111.131 15.3725 123.923 +Number of tracker digits in this event = 2 +Event: 84 +Number of tracker hits in this event = 4 + 84 276.308 799 0 0 -111.583 -19.7498 -205.997 + 84 210.061 800 0 0 -111.952 -19.6377 -206.029 + 84 1.844 1207 6 0 -165.506 62.1551 -25.85 + 84 54.2231 1206 6 0 -165.491 62.0291 -25.9223 +Number of tracker digits in this event = 2 +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 = 0 +Number of tracker digits in this event = 0 +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 = 1 + 88 179.572 1130 13 0 -171.828 46.7822 183.828 +Number of tracker digits in this event = 1 +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 = 40 + 90 124.598 898 3 1 0.417167 -0.254268 -114.45 + 90 238.592 896 3 0 0.414755 -0.254086 -115.85 + 90 106.439 898 2 1 0.316423 -0.258184 -144.45 + 90 161.036 896 2 0 0.307239 -0.252673 -145.85 + 90 113.254 770 1 0 57.5165 -25.5967 -176.25 + 90 319.862 769 1 0 57.6799 -25.7406 -176.125 + 90 41.5424 988 1 0 -58.6416 18.2593 -176.25 + 90 86.1743 899 1 1 0.501685 -0.25 -174.584 + 90 130.476 892 1 0 -0.60749 -1.14117 -175.85 + 90 76.4396 891 1 0 -0.896924 -1.44732 -176.108 + 90 18.3526 684 1 0 -1.00596 -42.841 -176.25 + 90 133.031 683 1 0 -0.987986 -42.8637 -176.192 + 90 301.182 891 1 1 -1.30726 -42.1587 -174.85 + 90 162.094 842 1 0 -28.3293 -11.1399 -176.25 + 90 805.384 758 1 1 -28.0062 -9.49715 -174.85 + 90 185.292 759 1 1 -27.7537 -8.80594 -174.669 + 90 80.8079 757 1 1 -28.1076 -8.83838 -174.598 + 90 23.474 898 1 0 0.923012 0.25 -176.166 + 90 307.941 900 1 1 0.65335 -0.25 -174.553 + 90 104.256 895 4 0 -0.25 -0.459344 -85.8525 + 90 203.936 871 3 1 -5.34241 -0.510489 -114.45 + 90 156.984 892 3 0 -5.2482 -1.22276 -115.85 + 90 66.4576 559 3 0 -13.4857 -67.6947 -116.25 + 90 130.358 558 3 0 -13.5309 -67.9003 -116.107 + 90 466.606 556 3 0 -13.6871 -68.3124 -115.93 + 90 543.883 552 3 0 -14.0612 -69.1225 -115.931 + 90 141.624 550 3 0 -14.4311 -69.5289 -116.128 + 90 230.214 551 3 0 -14.7091 -69.4256 -115.994 + 90 222.786 826 3 1 -14.4201 -72.4082 -114.85 + 90 63.3028 555 3 0 -13.8755 -68.4859 -115.992 + 90 202.026 891 2 1 -1.27382 -1.31735 -144.45 + 90 387.251 891 2 0 -1.35984 -1.36267 -145.85 + 90 106.265 880 1 1 -3.50373 -2.09141 -174.45 + 90 144.643 887 1 0 -3.5592 -2.10714 -175.85 + 90 142.964 874 0 1 -4.80116 -1.90748 -204.45 + 90 191.635 889 0 0 -4.90516 -1.71332 -205.85 + 90 113.401 886 1 1 -2.4233 -3.138 -174.45 + 90 118.625 881 1 0 -2.3414 -3.35515 -175.85 + 90 117.333 899 0 1 0.639305 -6.81823 -204.45 + 90 145.691 863 0 0 0.783017 -7.00127 -205.85 +Number of tracker digits in this event = 25 +Event: 91 +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 = 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 = 0 +Number of tracker digits in this event = 0 +Event: 95 +Number of tracker hits in this event = 3 + 95 207.576 425 0 1 -94.8544 -2.36336 -204.576 + 95 82.8641 887 0 0 -95.5398 -2.13786 -205.85 + 95 64.3279 888 0 0 -95.5816 -1.98493 -206.043 +Number of tracker digits in this event = 1 +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 = 16 + 97 195.115 900 2 1 0.651979 -0.332982 -144.45 + 97 282.345 896 2 0 0.674182 -0.333597 -145.85 + 97 107.978 902 1 1 1.13158 -0.347779 -174.45 + 97 127.693 896 1 0 1.15777 -0.349703 -175.85 + 97 103.851 905 0 1 1.71112 -0.39388 -204.45 + 97 98.976 896 0 0 1.74526 -0.359473 -205.85 + 97 104.524 896 3 1 -0.346069 -0.36357 -114.45 + 97 105.807 896 3 0 -0.361704 -0.374619 -115.85 + 97 222.199 894 2 1 -0.669347 -0.588668 -144.45 + 97 108.06 895 2 0 -0.696082 -0.607573 -145.85 + 97 131.428 891 1 1 -1.27481 -1.03898 -174.45 + 97 103.568 892 1 0 -1.30147 -1.05801 -175.85 + 97 313.052 888 0 1 -1.87868 -1.40597 -204.45 + 97 181.024 891 0 0 -1.87881 -1.42887 -205.85 + 97 62.0973 893 0 0 -2.73659 -0.8672 -205.85 + 97 69.6203 894 0 0 -2.85928 -0.79873 -206.086 +Number of tracker digits in this event = 7 +Event: 98 +Number of tracker hits in this event = 15 + 98 19.2392 895 0 1 -0.510369 4.19111 -204.818 + 98 190.687 898 3 1 0.337699 0.435541 -114.45 + 98 116.614 899 3 0 0.368432 0.453324 -115.85 + 98 340.16 899 2 1 0.636513 0.416298 -144.45 + 98 125.443 898 2 0 0.526325 0.410739 -145.85 + 98 137.429 880 0 1 -3.52227 0.545888 -204.45 + 98 112.061 899 0 0 -3.56655 0.637588 -205.85 + 98 116.592 902 1 1 1.1329 1.36083 -174.45 + 98 157.155 905 1 0 1.14337 1.65037 -175.85 + 98 157.103 931 0 1 6.94229 10.6559 -204.45 + 98 104.298 945 0 0 7.0795 9.7855 -205.85 + 98 26.3067 944 0 0 7.17885 9.60484 -206.151 + 98 108.602 462 5 1 -87.1249 -177.734 -54.5192 + 98 159.555 948 2 0 -0.480901 10.2527 -146.25 + 98 451.021 898 2 1 0.25 9.71108 -144.599 +Number of tracker digits in this event = 8 +Event: 99 +Number of tracker hits in this event = 2 + 99 117.154 899 0 0 -0.86496 0.483162 -205.85 + 99 112.853 900 0 0 -0.917534 0.677712 -206.061 +Number of tracker digits in this event = 0 +Run terminated. +Run Summary + Number of events processed : 100 + User=12.37s Real=12.38s Sys=0.01s +/gun/particle e- +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 +Start Run processing. +Event: 0 +Number of tracker hits in this event = 1 + 0 7.07574 964 3 0 -23.674 13.6297 -116.211 +Number of tracker digits in this event = 0 +Event: 1 +Number of tracker hits in this event = 25 + 1 162.119 899 3 1 0.517477 -0.361123 -114.45 + 1 130.855 896 3 0 0.536223 -0.37503 -115.85 + 1 122.817 901 2 1 0.876497 -0.66613 -144.45 + 1 123.725 894 2 0 0.889966 -0.684256 -145.85 + 1 343.893 902 1 1 1.21861 -1.07001 -174.45 + 1 476.179 892 1 0 1.23192 -1.1278 -175.85 + 1 256.22 904 0 1 1.5207 -2.3578 -204.45 + 1 113.507 886 0 0 1.52674 -2.41332 -205.85 + 1 36.9294 1446 14 0 -14.3785 110.184 214.018 + 1 36.8141 826 14 1 -14.2649 110.553 215.15 + 1 129.716 827 14 1 -14.2326 110.59 215.237 + 1 130.373 885 0 0 0.718516 -2.54928 -205.85 + 1 598.148 817 0 0 3.1774 -16.1473 -206.25 + 1 158.494 816 0 1 -16.3686 -7.5978 -204.45 + 1 161.055 867 0 0 -16.5415 -6.09829 -205.85 + 1 41.3962 869 0 0 -16.6453 -5.69761 -206.179 + 1 150.548 899 0 1 0.577466 -1.64521 -204.45 + 1 229.262 888 0 0 -1.11934 -2.04614 -205.85 + 1 22.9561 887 0 0 -1.52977 -2.2114 -206.2 + 1 164.56 452 2 1 -89.1713 97.8432 -144.45 + 1 115.51 454 2 1 -88.7409 97.7647 -144.577 + 1 227.521 1382 2 0 -87.7332 97.4763 -145.85 + 1 68.7011 1549 2 0 -58.2221 130.912 -146.036 + 1 99.1219 606 2 1 -58.3419 132.04 -144.85 + 1 235.278 605 2 1 -58.4697 132.238 -144.67 +Number of tracker digits in this event = 17 +Event: 2 +Number of tracker hits in this event = 40 + 2 110.553 898 4 0 0.433849 0.282308 -85.85 + 2 218.54 944 3 1 9.61824 6.30012 -114.45 + 2 292.401 930 3 0 10.2216 6.65018 -115.85 + 2 121.435 999 2 1 20.5604 13.9425 -144.45 + 2 295.042 966 2 0 21.22 14.0001 -145.85 + 2 840.99 965 2 0 21.808 13.7059 -146.179 + 2 415.014 1026 2 1 25.9435 11.064 -144.85 + 2 10.8384 1031 2 1 26.8949 10.5387 -144.464 + 2 223.857 1079 3 0 71.7145 36.6221 -116.25 + 2 15.7895 1081 3 0 72.317 36.9882 -115.886 + 2 230.523 1268 3 1 74.3158 37.7035 -114.85 + 2 84.6983 1271 3 1 74.947 37.8346 -114.564 + 2 150.54 1273 3 1 75.4433 38.0674 -114.45 + 2 266.982 1274 3 1 75.538 38.5288 -114.581 + 2 141.788 1116 3 0 79.5313 43.9149 -115.85 + 2 258.25 1117 3 0 79.8427 44.2023 -115.882 + 2 502.599 1120 3 0 80.3179 44.8474 -115.922 + 2 117.669 1124 3 0 81.4314 45.5448 -116.233 + 2 156.36 1125 3 0 81.6361 45.8346 -116.235 + 2 294.854 1127 3 0 82.0177 46.1832 -116.077 + 2 25.0535 1131 3 0 82.6252 46.8805 -115.85 + 2 189.912 1343 3 1 89.2899 54.948 -114.85 + 2 29.587 1345 3 1 89.7212 55.2009 -114.679 + 2 97.3069 1347 3 1 90.35 55.3195 -114.721 + 2 59.1981 1130 3 0 96.6532 46.7692 -115.87 + 2 30.7924 1129 3 0 96.7731 46.6035 -115.851 + 2 28.4992 1582 3 1 137.475 32.7507 -114.85 + 2 0.0489101 1583 3 1 137.56 32.7227 -114.85 + 2 234.343 1046 3 0 143.678 29.9938 -115.85 + 2 126.843 1620 3 1 145.008 29.1439 -114.85 + 2 86.0797 1621 3 1 145.177 28.9841 -114.721 + 2 253.245 1622 3 1 145.384 29.0734 -114.736 + 2 93.3008 1045 3 0 143.822 29.7806 -115.894 + 2 130.247 907 3 1 2.20166 6.51877 -114.45 + 2 111.043 925 2 1 5.68134 10.202 -144.45 + 2 171.451 945 2 0 6.09257 9.8488 -145.85 + 2 118.393 965 1 1 13.8255 3.34099 -174.45 + 2 126.629 911 1 0 14.0185 2.86965 -175.85 + 2 128.439 978 0 1 16.4188 -6.64334 -204.45 + 2 186.978 862 0 0 16.2984 -7.13091 -205.85 +Number of tracker digits in this event = 24 +Event: 3 +Number of tracker hits in this event = 38 + 3 115.94 893 3 1 -1.03508 -0.411869 -114.45 + 3 357.41 896 3 0 -1.04565 -0.428501 -115.85 + 3 106.563 892 2 1 -1.18105 -0.854989 -144.45 + 3 132.93 893 2 0 -1.19881 -0.87673 -145.85 + 3 109.761 890 1 1 -1.5836 -1.3057 -174.45 + 3 230.942 891 1 0 -1.55118 -1.3302 -175.85 + 3 118.027 893 0 1 -0.897091 -1.83709 -204.45 + 3 109.985 888 0 0 -0.869602 -1.85346 -205.85 + 3 100.875 1528 3 0 -170.147 126.727 -115.901 + 3 23.6025 1530 3 0 -169.893 126.985 -115.909 + 3 62.6466 44 3 1 -171.107 129.118 -114.85 + 3 233.41 43 3 1 -171.163 129.31 -114.812 + 3 5.54044 42 3 1 -171.357 129.598 -114.459 + 3 258.093 892 3 1 -1.08294 -0.385773 -114.45 + 3 134.017 905 1 1 1.70178 -1.27217 -174.45 + 3 141.61 911 0 1 3.0375 -0.819853 -204.45 + 3 93.7752 894 0 0 3.09279 -0.744302 -205.85 + 3 95.5208 893 2 1 -1.04225 -0.526121 -144.45 + 3 250.085 895 2 0 -1.05443 -0.512744 -145.85 + 3 517.91 888 1 1 -1.90644 -0.778278 -174.45 + 3 253.176 895 1 0 -1.9744 -0.528183 -175.85 + 3 595.273 878 0 1 -4.03302 4.20658 -204.45 + 3 787.335 877 0 1 -4.09288 3.89802 -204.85 + 3 110.832 882 0 1 -3.05713 -0.25 -204.508 + 3 150.175 912 0 0 -3.67208 3.2159 -205.85 + 3 149.537 860 2 1 -7.49608 3.08461 -144.85 + 3 356.454 859 2 1 -7.74385 3.01664 -144.758 + 3 117.087 889 1 1 -1.78062 -0.562478 -174.45 + 3 112.505 886 0 1 -2.33591 2.49254 -204.45 + 3 114.716 910 0 0 -2.35131 2.73387 -205.85 + 3 57.8331 886 1 1 -2.43111 -1.5871 -174.815 + 3 401.905 866 1 0 -3.8711 -6.33977 -175.85 + 3 44.1533 861 1 0 -4.21145 -7.35391 -176.224 + 3 158.312 858 0 1 -8.01002 -141.494 -204.45 + 3 206.577 195 0 0 -9.0294 -140.868 -205.85 + 3 208.232 257 0 0 -31.7889 -128.505 -206.25 + 3 166.325 741 0 1 -31.348 -128.873 -204.85 + 3 128.254 742 0 1 -31.1979 -128.982 -204.728 +Number of tracker digits in this event = 21 +Event: 4 +Number of tracker hits in this event = 38 + 4 107.048 896 3 1 -0.325041 -0.3029 -114.45 + 4 125.774 896 3 0 -0.336824 -0.310154 -115.85 + 4 482.199 895 2 1 -0.603675 -0.423456 -144.45 + 4 147.511 896 2 0 -0.638763 -0.425277 -145.85 + 4 106.813 891 1 1 -1.33145 -0.455876 -174.45 + 4 142.262 895 1 0 -1.35927 -0.463837 -175.85 + 4 111.306 888 0 1 -1.93054 -0.613189 -204.45 + 4 121.622 895 0 0 -1.95852 -0.621999 -205.85 + 4 125.799 895 2 0 -0.48501 -0.508063 -145.85 + 4 120.121 900 1 1 0.683287 -1.03589 -174.45 + 4 147.046 892 1 0 0.779346 -1.05104 -175.85 + 4 146.524 911 0 1 2.8958 -1.51888 -204.45 + 4 113.529 890 0 0 3.20151 -1.64001 -205.85 + 4 134.236 922 1 1 5.22286 -2.85312 -174.45 + 4 104.454 885 1 0 5.26393 -2.60176 -175.85 + 4 184.805 924 0 1 5.46298 1.5013 -204.45 + 4 44.0027 923 0 1 5.4134 1.75533 -204.811 + 4 203.806 912 0 0 5.0538 3.06973 -205.85 + 4 72.4381 1102 0 0 7.42307 41.1812 -206.25 + 4 90.137 1103 0 0 7.52396 41.3401 -206.068 + 4 35.1545 1104 0 0 7.76332 41.5084 -205.948 + 4 147.5 937 0 1 8.13193 42.8735 -204.85 + 4 161.442 938 0 1 8.29487 43.0768 -204.577 + 4 191.991 887 3 1 -2.08224 -1.49197 -114.45 + 4 110.406 891 3 0 -2.4951 -1.36009 -115.85 + 4 114.573 838 2 1 -11.8569 0.557274 -144.45 + 4 92.2923 898 2 0 -12.1726 0.395239 -145.85 + 4 144.019 802 1 1 -19.1281 -1.86535 -174.45 + 4 103.906 887 1 0 -19.5293 -2.08684 -175.85 + 4 175.449 759 0 1 -27.6697 -7.68027 -204.45 + 4 137.57 855 0 0 -28.3951 -8.45389 -205.85 + 4 220.744 910 3 1 2.66505 2.84655 -114.45 + 4 162.964 917 3 0 1.83944 4.13477 -115.85 + 4 312.933 819 2 1 -15.8421 28.6427 -144.45 + 4 390.427 1050 2 0 -18.9732 30.6856 -145.85 + 4 128.704 1283 1 0 -114.533 77.2993 -176.25 + 4 115.776 1282 1 0 -114.703 77.1001 -176.088 + 4 191.503 327 1 1 -114.423 75.5165 -174.85 +Number of tracker digits in this event = 24 +Event: 5 +Number of tracker hits in this event = 8 + 5 180.724 896 2 1 -0.359354 0.428633 -144.45 + 5 131.295 898 2 0 -0.359876 0.43701 -145.85 + 5 407.385 896 1 1 -0.339643 0.551441 -174.45 + 5 297.703 899 1 0 -0.329179 0.552599 -175.85 + 5 111.448 902 0 1 1.15641 2.88598 -204.45 + 5 135.487 912 0 0 1.19244 3.07875 -205.85 + 5 90.6905 896 0 1 -0.389528 0.943985 -204.45 + 5 127.473 901 0 0 -0.370051 0.967734 -205.85 +Number of tracker digits in this event = 6 +Event: 6 +Number of tracker hits in this event = 6 + 6 103.79 890 2 1 -1.49298 -0.26512 -144.45 + 6 110.605 896 2 0 -1.51479 -0.270329 -145.85 + 6 131.289 888 1 1 -1.98162 -0.362323 -174.45 + 6 105.364 896 1 0 -2.00607 -0.367479 -175.85 + 6 122.353 885 0 1 -2.49626 -0.493755 -204.45 + 6 103.873 895 0 0 -2.51675 -0.497799 -205.85 +Number of tracker digits in this event = 2 +Event: 7 +Number of tracker hits in this event = 9 + 7 162.392 896 3 1 -0.267738 0.818223 -114.45 + 7 129.291 900 3 0 -0.268259 0.839782 -115.85 + 7 175.842 896 2 1 -0.256651 1.39947 -144.45 + 7 115.518 904 2 0 -0.287992 1.45419 -145.85 + 7 255.289 893 1 1 -0.939334 2.66113 -174.45 + 7 94.0002 910 1 0 -0.966105 2.72563 -175.85 + 7 130.372 890 0 1 -1.51267 3.97986 -204.45 + 7 24.4017 916 0 0 -1.53201 4.04706 -205.85 + 7 72.1199 917 0 0 -1.53335 4.0516 -205.948 +Number of tracker digits in this event = 5 +Event: 8 +Number of tracker hits in this event = 13 + 8 86.7274 938 1 0 -57.0863 8.38144 -176.25 + 8 282.26 939 1 0 -57.3055 8.49799 -176.08 + 8 123.976 940 1 0 -57.6615 8.66554 -176.121 + 8 29.7215 941 1 0 -57.8102 8.86147 -175.931 + 8 31.7019 607 1 1 -58.0557 8.59558 -174.85 + 8 388.71 608 1 1 -58.0456 8.52059 -174.784 + 8 73.961 898 0 1 0.363804 -0.25 -204.826 + 8 86.9042 884 0 0 0.47923 -2.74591 -205.85 + 8 203.542 883 0 0 0.473914 -3.02706 -205.911 + 8 356.506 880 0 0 0.691476 -3.51178 -206.08 + 8 208.897 878 0 0 1.12134 -4.0312 -206.223 + 8 7.4904 876 0 0 0.900109 -4.42029 -205.876 + 8 297.012 899 0 1 0.581061 -5.31266 -204.85 +Number of tracker digits in this event = 7 +Event: 9 +Number of tracker hits in this event = 19 + 9 240.101 898 2 1 0.315778 -0.266848 -144.45 + 9 119.375 896 2 0 0.345467 -0.284485 -145.85 + 9 164.482 896 1 0 0.964813 -0.257973 -175.85 + 9 174.531 902 0 1 1.13197 -0.507127 -204.45 + 9 233.636 895 0 0 1.09399 -0.541571 -205.85 + 9 118.746 899 0 1 0.475268 -0.44509 -204.45 + 9 139.039 894 0 1 -0.658019 -2.32792 -204.45 + 9 129.188 885 0 0 -0.91805 -2.50049 -205.85 + 9 98.9538 883 2 0 0.45764 -2.94393 -145.85 + 9 117.84 911 1 1 2.9802 -4.00752 -174.45 + 9 148.539 877 1 0 3.28603 -4.10128 -175.85 + 9 115.329 943 0 1 9.41921 -5.72966 -204.45 + 9 131.511 868 0 0 9.86371 -5.95172 -205.85 + 9 226.266 891 2 1 -1.32687 1.38768 -144.45 + 9 133.385 904 2 0 -1.46172 1.45077 -145.85 + 9 108.979 878 1 1 -3.94908 2.96559 -174.45 + 9 129.06 911 1 0 -4.11298 3.02485 -175.85 + 9 144.553 860 0 1 -7.51392 4.24994 -204.45 + 9 128.218 918 0 0 -7.66939 4.29208 -205.85 +Number of tracker digits in this event = 13 +Event: 10 +Number of tracker hits in this event = 8 + 10 49.9362 894 4 0 0.25 -0.650326 -86.0304 + 10 140.021 899 3 1 0.566565 -0.879856 -114.45 + 10 142.287 893 3 0 0.578483 -0.887088 -115.85 + 10 130.606 900 2 1 0.800418 -1.0156 -144.45 + 10 134.866 893 2 0 0.77239 -1.01482 -145.85 + 10 393.596 896 0 1 -0.345165 -0.893963 -204.45 + 10 143.117 893 0 0 -0.374276 -0.882063 -205.85 + 10 127.666 1101 3 1 41.0064 36.8915 -114.732 +Number of tracker digits in this event = 7 +Event: 11 +Number of tracker hits in this event = 16 + 11 148.228 898 3 1 0.338022 -0.276024 -114.45 + 11 128.99 896 3 0 0.339566 -0.302836 -115.85 + 11 133.255 898 2 1 0.340186 -0.872271 -144.45 + 11 221.483 893 2 0 0.350639 -0.914601 -145.85 + 11 192.642 899 1 1 0.572074 -1.76847 -174.45 + 11 123.959 889 1 0 0.579488 -1.82574 -175.85 + 11 290.647 900 0 1 0.71807 -2.92277 -204.45 + 11 96.4126 883 0 0 0.729637 -2.98162 -205.85 + 11 154.936 1184 3 1 57.489 154.536 -114.691 + 11 180.896 758 0 1 -27.9864 117.828 -204.736 + 11 13.5323 1484 0 0 -28.967 117.816 -205.85 + 11 17.8719 484 7 0 -93.7672 -82.6669 3.98045 + 11 5.67718 565 8 0 -5.97634 -66.4629 34.1354 + 11 15.27 945 8 1 9.82979 -61.8499 35.5156 + 11 175.806 837 1 1 -12.1923 -3.17573 -174.716 + 11 112.521 895 0 0 0.748413 -0.561992 -205.85 +Number of tracker digits in this event = 10 +Event: 12 +Number of tracker hits in this event = 26 + 12 164.259 896 4 1 -0.422332 -0.463723 -84.45 + 12 167.323 895 4 0 -0.426902 -0.476368 -85.85 + 12 163.139 895 3 1 -0.531512 -0.694221 -114.45 + 12 159.852 894 3 0 -0.544632 -0.712562 -115.85 + 12 525.696 894 2 1 -0.83706 -1.10085 -144.45 + 12 107.855 892 2 0 -0.846675 -1.14235 -145.85 + 12 100.759 892 1 1 -1.0579 -2.03138 -174.45 + 12 237.854 887 1 0 -1.05193 -2.0865 -175.85 + 12 108.625 893 0 1 -0.924974 -3.25457 -204.45 + 12 136.11 881 0 0 -0.927969 -3.29364 -205.85 + 12 48.1932 895 2 1 -0.605422 -0.860216 -144.785 + 12 115.855 893 3 1 -0.981994 -0.443317 -114.45 + 12 98.5476 895 3 0 -0.947264 -0.494241 -115.85 + 12 98.8277 904 1 1 1.5585 -3.17533 -174.45 + 12 320.794 881 1 0 1.71485 -3.33511 -175.85 + 12 133.638 922 0 1 5.11152 -6.43704 -204.45 + 12 96.886 865 0 0 5.28756 -6.54702 -205.85 + 12 79.5237 1087 7 1 38.2365 112.563 5.53963 + 12 122.303 899 3 1 0.591035 -1.17441 -114.45 + 12 163.293 891 3 0 0.614034 -1.38417 -115.85 + 12 118.95 906 2 1 1.86425 -5.79041 -144.45 + 12 120.977 866 2 0 1.99227 -6.26922 -145.85 + 12 119.495 917 1 1 4.15885 -16.0822 -174.45 + 12 122.971 813 1 0 4.16765 -16.9215 -175.85 + 12 144.351 914 0 1 3.50247 -32.5709 -204.45 + 12 169.134 729 0 0 3.75793 -33.7321 -205.85 +Number of tracker digits in this event = 15 +Event: 13 +Number of tracker hits in this event = 32 + 13 136.571 899 3 1 0.579272 -0.415506 -114.45 + 13 128.033 896 3 0 0.592238 -0.42971 -115.85 + 13 134.866 901 2 1 0.913837 -0.728749 -144.45 + 13 151.564 894 2 0 0.928741 -0.751034 -145.85 + 13 401.103 902 1 1 1.17446 -1.28982 -174.45 + 13 165.245 891 1 0 1.18257 -1.30234 -175.85 + 13 393.175 903 0 1 1.34383 -1.50769 -204.45 + 13 121.254 890 0 0 1.33719 -1.52075 -205.85 + 13 17.0833 142 8 1 -151.447 5.90096 35.2009 + 13 147.524 1374 3 0 -52.5321 95.7973 -116.25 + 13 279.024 1372 3 0 -52.1802 95.5477 -116.225 + 13 394.518 1370 3 0 -51.4372 95.1431 -116.232 + 13 378.254 1369 3 0 -50.3194 94.8946 -116.093 + 13 33.6066 1371 3 0 -49.1412 95.2904 -115.924 + 13 191.39 658 3 1 -48.0425 95.598 -114.85 + 13 136.101 1301 5 1 81.014 172.248 -54.8445 + 13 101.967 1302 5 1 81.0897 172.257 -54.8355 + 13 104.564 893 1 0 1.21996 -0.865442 -175.85 + 13 257.69 893 0 0 1.31467 -0.91013 -205.85 + 13 157.89 894 1 0 1.23571 -0.847924 -175.85 + 13 357.574 902 0 1 1.23051 -0.721057 -204.45 + 13 132.688 894 0 0 1.26281 -0.746237 -205.85 + 13 104.859 892 0 0 1.31445 -1.10165 -205.85 + 13 6.71989 899 6 0 0.25 0.483403 -26.2197 + 13 134.638 913 5 1 3.30332 5.72441 -54.45 + 13 122.455 928 5 0 2.99554 6.34124 -55.85 + 13 181.803 864 4 1 -6.83189 17.3286 -84.45 + 13 142.318 981 4 0 -6.91454 17.002 -85.85 + 13 165.228 848 3 1 -9.96332 8.40796 -114.45 + 13 140.185 933 3 0 -10.625 7.40363 -115.85 + 13 369.569 795 2 1 -20.527 -19.6831 -144.45 + 13 130.621 797 2 0 -20.8624 -20.1028 -145.85 +Number of tracker digits in this event = 26 +Event: 14 +Number of tracker hits in this event = 12 + 14 133.327 901 2 1 0.925609 -0.376672 -144.45 + 14 104.343 896 2 0 0.929527 -0.399669 -145.85 + 14 156.196 902 1 1 1.06022 -0.879118 -174.45 + 14 157.617 893 1 0 1.06568 -0.904057 -175.85 + 14 155.172 902 0 1 1.15656 -1.35848 -204.45 + 14 113.465 891 0 0 1.15418 -1.38857 -205.85 + 14 124.51 917 4 1 4.18741 -0.904285 -84.45 + 14 293.954 894 4 0 4.78036 -0.723617 -85.85 + 14 154.44 987 3 1 18.0795 3.68624 -114.45 + 14 187.297 917 3 0 18.6832 4.05796 -115.85 + 14 177.41 1058 2 1 32.2608 10.5352 -144.45 + 14 189.513 956 2 0 32.981 11.8938 -145.85 +Number of tracker digits in this event = 10 +Event: 15 +Number of tracker hits in this event = 25 + 15 99.1751 899 5 0 -0.2641 0.610437 -55.85 + 15 112.735 895 4 1 -0.616723 1.25573 -84.45 + 15 124.28 903 4 0 -0.6239 1.32969 -85.85 + 15 159.284 895 3 1 -0.603246 3.2086 -114.45 + 15 127.792 913 3 0 -0.54847 3.29184 -115.85 + 15 172.715 899 2 1 0.462982 4.76606 -144.45 + 15 111.476 921 2 0 0.493964 4.8636 -145.85 + 15 309.411 901 1 1 0.904724 7.00676 -174.45 + 15 128.017 932 1 0 1.0092 7.18618 -175.85 + 15 97.8127 910 0 1 2.79557 10.721 -204.45 + 15 117.336 951 0 0 2.94275 10.9088 -205.85 + 15 1.36725 994 1 1 19.6221 -30.8165 -174.451 + 15 205.665 892 3 1 -1.12283 1.48886 -114.624 + 15 257.357 904 3 0 -1.15637 1.49637 -115.85 + 15 204.465 888 2 1 -2.03149 1.52007 -144.45 + 15 223.861 904 2 0 -1.97236 1.56154 -145.85 + 15 120.011 893 1 1 -1.04583 2.19316 -174.45 + 15 128.007 907 1 0 -0.98852 2.19085 -175.85 + 15 50.1357 911 0 0 -0.25 2.88548 -206.123 + 15 290.245 905 2 0 -1.92863 1.66498 -146.118 + 15 97.3107 882 1 1 -3.23548 2.15457 -174.615 + 15 180.911 889 2 1 -1.79606 2.05003 -144.45 + 15 137.604 882 1 0 0.612577 -3.24281 -175.85 + 15 109.542 877 0 1 -4.06505 -13.4194 -204.45 + 15 236.41 828 0 0 -4.34479 -13.9692 -205.85 +Number of tracker digits in this event = 16 +Event: 16 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 17 +Number of tracker hits in this event = 35 + 17 114.168 914 3 1 3.58559 -2.60291 -114.45 + 17 127.529 884 3 0 3.6939 -2.70263 -115.85 + 17 108.748 927 2 1 6.05247 -4.8324 -144.45 + 17 110.581 873 2 0 6.28784 -4.89359 -145.85 + 17 107.661 953 1 1 11.3112 -6.42923 -174.45 + 17 94.0526 865 1 0 11.7227 -6.6028 -175.85 + 17 39.2184 864 1 0 11.8207 -6.65099 -176.198 + 17 312.802 997 0 1 20.1746 -10.8782 -204.45 + 17 149.962 842 0 0 20.6138 -11.0952 -205.85 + 17 87.6645 839 0 0 20.9094 -11.7954 -205.85 + 17 102.748 838 0 0 21.0699 -12.0362 -206.089 + 17 91.0779 692 0 0 55.8516 -41.2414 -206.25 + 17 266.122 691 0 0 56.0149 -41.4321 -206.148 + 17 279.201 689 0 0 56.4261 -41.7199 -206.02 + 17 57.6032 686 0 0 57.0694 -42.3021 -205.899 + 17 49.5247 1207 0 1 62.1484 -43.3768 -204.85 + 17 60.4383 1208 0 1 62.305 -43.3859 -204.838 + 17 119.014 662 0 0 69.7755 -47.0853 -205.85 + 17 169.41 661 0 0 70.1446 -47.2771 -205.865 + 17 79.77 660 0 0 70.5522 -47.5793 -205.894 + 17 137.561 659 0 0 70.7474 -47.7475 -205.85 + 17 329.586 658 0 0 70.9095 -47.9084 -205.967 + 17 285.423 618 0 0 65.6403 -55.9669 -206.25 + 17 103.236 894 0 1 -0.658637 2.73339 -204.497 + 17 110.735 910 0 0 -0.852568 2.78425 -205.85 + 17 90.1948 928 0 0 -8.21687 6.28343 -205.941 + 17 200.653 898 2 1 0.25 0.561445 -144.643 + 17 59.8364 900 2 0 2.21428 0.678506 -145.85 + 17 126.29 899 2 0 2.39787 0.592373 -145.987 + 17 53.7183 896 2 1 -0.294052 9.08241 -144.45 + 17 160.147 911 1 1 3.02803 18.033 -174.45 + 17 129.066 990 1 0 2.96883 18.6874 -175.85 + 17 110.834 913 0 1 3.38527 28.9857 -204.45 + 17 117.318 1042 0 0 3.41374 29.2073 -205.85 + 17 118.398 898 3 0 0.541085 0.25 -116.082 +Number of tracker digits in this event = 13 +Event: 18 +Number of tracker hits in this event = 9 + 18 168.977 901 3 1 0.89619 -0.350402 -114.45 + 18 108.254 896 3 0 0.910109 -0.354315 -115.85 + 18 329.72 903 2 1 1.28288 -0.425837 -144.45 + 18 121.549 896 2 0 1.31058 -0.429711 -145.85 + 18 129.134 906 1 1 1.93486 -0.544995 -174.45 + 18 151.688 895 1 0 1.95809 -0.553119 -175.85 + 18 122.269 909 0 1 2.52793 -0.752667 -204.45 + 18 113.339 894 0 0 2.54843 -0.767976 -205.85 + 18 22.1194 902 2 1 1.24243 -0.298611 -144.492 +Number of tracker digits in this event = 6 +Event: 19 +Number of tracker hits in this event = 39 + 19 129.744 890 2 1 -1.59823 -0.924292 -144.45 + 19 184.07 893 2 0 -1.6159 -0.999893 -145.85 + 19 150.054 888 1 1 -2.00178 -2.83348 -174.45 + 19 110.871 883 1 0 -2.00581 -2.9389 -175.85 + 19 141.29 887 0 1 -2.16458 -5.07489 -204.45 + 19 129.582 872 0 0 -2.21665 -5.15266 -205.85 + 19 111.443 899 3 1 0.554555 1.28963 -114.45 + 19 270.161 903 3 0 0.597934 1.39391 -115.85 + 19 175.139 905 2 1 1.69468 4.84347 -144.45 + 19 103.707 922 2 0 1.70933 5.07473 -145.85 + 19 114.836 906 1 1 1.93241 9.68762 -174.45 + 19 140.683 946 1 0 1.97833 9.86568 -175.85 + 19 156.018 910 0 1 2.65671 13.5883 -204.45 + 19 138.389 965 0 0 2.70238 13.7619 -205.85 + 19 311.448 909 1 1 2.50823 4.08623 -174.45 + 19 132.049 916 1 0 3.09426 4.01215 -175.85 + 19 98.915 978 0 1 16.4413 -2.88395 -204.45 + 19 161.442 980 0 1 16.7259 -3.00567 -204.599 + 19 1.94045 983 0 1 17.3293 -3.13856 -204.847 + 19 274.091 875 0 0 22.7946 -4.5518 -205.85 + 19 165.732 874 0 0 23.5626 -4.69298 -206.191 + 19 67.417 924 1 0 3.04561 5.58053 -175.85 + 19 102.325 925 1 0 3.07396 5.73578 -176.025 + 19 58.1801 1096 1 0 12.3226 40.023 -176.25 + 19 128.653 1097 1 0 12.2516 40.1101 -176.154 + 19 151.729 954 1 1 11.6116 39.8915 -174.85 + 19 114.424 908 2 1 2.34423 0.918667 -144.45 + 19 115.777 901 2 0 2.44272 0.954506 -145.85 + 19 135.097 920 1 1 4.68948 1.75842 -174.45 + 19 136.343 901 1 0 4.19159 1.02751 -175.85 + 19 168.411 848 0 1 -9.92937 -11.2793 -204.45 + 19 267.858 847 0 1 -10.1739 -11.6684 -204.547 + 19 371.315 843 0 1 -10.8789 -12.2463 -204.657 + 19 139.597 774 0 0 -21.1773 -24.7226 -205.85 + 19 196.401 773 0 0 -21.3905 -24.9834 -205.894 + 19 468.371 771 0 0 -21.939 -25.3607 -205.87 + 19 329.392 767 0 0 -22.8987 -26.107 -205.89 + 19 279.915 765 0 0 -23.6629 -26.5101 -205.872 + 19 156.28 766 0 0 -24.312 -26.3257 -206.143 +Number of tracker digits in this event = 28 +Event: 20 +Number of tracker hits in this event = 7 + 20 91.947 899 2 1 0.572481 -0.384387 -144.45 + 20 127.972 896 2 0 0.588741 -0.396245 -145.85 + 20 125.557 901 1 1 0.907868 -0.642465 -174.45 + 20 128.155 894 1 0 0.927383 -0.655511 -175.85 + 20 257.212 903 0 1 1.3542 -0.8991 -204.45 + 20 139.256 893 0 0 1.36784 -0.902031 -205.85 + 20 106.918 889 0 0 1.76118 -1.65496 -205.85 +Number of tracker digits in this event = 5 +Event: 21 +Number of tracker hits in this event = 15 + 21 98.3182 891 2 1 -1.38883 0.417921 -144.45 + 21 263.726 898 2 0 -1.41741 0.434313 -145.85 + 21 180.523 888 1 1 -1.91376 0.741224 -174.45 + 21 175.495 900 1 0 -1.94519 0.7531 -175.85 + 21 106.8 885 0 1 -2.55159 0.980861 -204.45 + 21 168.943 901 0 0 -2.57555 1.01266 -205.85 + 21 258.154 895 2 1 -0.62975 0.453094 -144.45 + 21 129.437 909 0 1 2.55538 1.18508 -204.45 + 21 112.163 903 0 0 2.65755 1.3798 -205.85 + 21 206.077 718 0 1 -35.8604 -1.99171 -204.55 + 21 134.555 899 2 0 -0.633359 0.468787 -145.85 + 21 106.431 895 1 1 -0.627493 0.878693 -174.45 + 21 147.495 901 1 0 -0.670016 0.910464 -175.85 + 21 19.3419 897 0 0 -4.2037 -0.25 -206.135 + 21 248.371 896 0 0 -4.21759 -0.255231 -206.198 +Number of tracker digits in this event = 10 +Event: 22 +Number of tracker hits in this event = 4 + 22 130.607 901 0 1 1.00125 -0.425093 -204.45 + 22 144.446 896 0 0 1.02197 -0.434571 -205.85 + 22 72.2372 860 1 1 -7.54981 35.5573 -174.602 + 22 239.598 1019 3 0 -55.9706 24.5647 -116.022 +Number of tracker digits in this event = 3 +Event: 23 +Number of tracker hits in this event = 17 + 23 107.469 900 3 1 0.834707 -0.358557 -114.45 + 23 126.827 896 3 0 0.827712 -0.379193 -115.85 + 23 198.095 899 2 1 0.648663 -0.804499 -144.45 + 23 135.238 894 2 0 0.662728 -0.815911 -145.85 + 23 122.583 901 1 1 0.995402 -0.986782 -174.45 + 23 126.856 893 1 0 1.02323 -0.984151 -175.85 + 23 133.638 904 0 1 1.63571 -0.895836 -204.45 + 23 217.775 893 0 0 1.67247 -0.887487 -205.85 + 23 150.735 194 4 1 -140.994 -86.0789 -84.5447 + 23 208.996 899 4 1 0.587058 -0.25 -84.6278 + 23 304.404 888 4 0 0.329709 -1.87274 -85.85 + 23 132.728 887 4 0 0.397482 -2.13125 -86.0159 + 23 287.82 902 0 1 1.12101 -0.5409 -204.45 + 23 278.858 895 0 0 1.18164 -0.560268 -205.85 + 23 221.962 892 0 0 -34.6626 -1.15995 -206.25 + 23 15.1437 723 0 1 -35.0439 -0.768399 -204.85 + 23 166.06 722 0 1 -35.0565 -0.760841 -204.803 +Number of tracker digits in this event = 15 +Event: 24 +Number of tracker hits in this event = 10 + 24 109.722 895 3 1 -0.452071 0.524431 -114.45 + 24 116.856 899 3 0 -0.458264 0.554 -115.85 + 24 190.975 895 2 1 -0.596072 1.1328 -144.45 + 24 182.475 902 2 0 -0.595323 1.16114 -145.85 + 24 139.275 895 1 1 -0.5522 1.72305 -174.45 + 24 134.082 905 1 0 -0.559174 1.75164 -175.85 + 24 125.428 894 0 1 -0.741017 2.23 -204.45 + 24 115.275 908 0 0 -0.758466 2.25213 -205.85 + 24 4.51443 897 6 0 0.33612 -0.25 -26.113 + 24 357.263 896 6 0 0.341042 -0.261029 -26.105 +Number of tracker digits in this event = 6 +Event: 25 +Number of tracker hits in this event = 24 + 25 169.358 895 2 1 -0.491723 -0.612645 -144.45 + 25 161.233 894 2 0 -0.515126 -0.65214 -145.85 + 25 329.725 893 1 1 -0.972768 -1.40339 -174.45 + 25 127.605 891 1 0 -0.992552 -1.41655 -175.85 + 25 397.37 891 0 1 -1.38106 -1.59535 -204.45 + 25 118.553 890 0 0 -1.40858 -1.61448 -205.85 + 25 144.59 887 0 0 -1.76245 -2.13083 -205.85 + 25 212.161 888 0 0 -1.78092 -1.9763 -205.984 + 25 130.034 896 2 1 -0.326327 2.14358 -144.45 + 25 97.4832 907 2 0 -0.354741 2.17414 -145.85 + 25 120.538 910 1 0 -0.961081 2.80799 -175.85 + 25 99.3875 888 0 1 -1.98279 3.40548 -204.45 + 25 135.619 913 0 0 -2.02195 3.43938 -205.85 + 25 125.404 902 4 1 1.07417 -1.30564 -84.45 + 25 108.349 891 4 0 1.08872 -1.39253 -85.85 + 25 180.571 903 3 1 1.39663 -3.29634 -114.45 + 25 105.599 881 3 0 1.36478 -3.37273 -115.85 + 25 136.347 901 2 1 0.890582 -4.95107 -144.45 + 25 118.921 871 2 0 1.06877 -5.2686 -145.85 + 25 109.4 923 1 1 5.41938 -12.7133 -174.45 + 25 140.994 834 1 0 5.21902 -12.7628 -175.85 + 25 125.837 902 0 1 1.06786 -16.4239 -204.45 + 25 168.755 810 0 0 0.882212 -17.5586 -205.85 + 25 103.158 703 11 0 106.421 -38.9297 123.842 +Number of tracker digits in this event = 16 +Event: 26 +Number of tracker hits in this event = 10 + 26 114.934 898 4 1 0.25399 0.443505 -84.45 + 26 188.226 899 4 0 0.265146 0.463921 -85.85 + 26 118.263 899 3 1 0.48825 0.860141 -114.45 + 26 102.489 901 3 0 0.496352 0.870495 -115.85 + 26 180.239 899 2 1 0.46757 0.952562 -144.45 + 26 135.666 901 2 0 0.463725 0.964907 -145.85 + 26 101.775 898 1 1 0.442509 1.16663 -174.45 + 26 170.344 902 1 0 0.441545 1.1818 -175.85 + 26 116.066 899 0 1 0.460906 1.54081 -204.45 + 26 133.985 904 0 0 0.45426 1.5526 -205.85 +Number of tracker digits in this event = 5 +Event: 27 +Number of tracker hits in this event = 16 + 27 106.287 898 4 1 0.366275 -0.425711 -84.45 + 27 101.241 896 4 0 0.385455 -0.435328 -85.85 + 27 132.705 900 3 1 0.790947 -0.625381 -114.45 + 27 129.528 895 3 0 0.805156 -0.644045 -115.85 + 27 113.708 902 2 1 1.08949 -0.977043 -144.45 + 27 112.816 893 2 0 1.10373 -0.985481 -145.85 + 27 115.741 903 1 1 1.3625 -1.14537 -174.45 + 27 104.74 892 1 0 1.39 -1.15619 -175.85 + 27 108.231 906 0 1 1.92107 -1.43006 -204.45 + 27 616.153 890 0 0 2.02943 -1.53867 -205.85 + 27 372.746 889 0 0 1.91801 -1.71882 -206.111 + 27 118.098 904 0 1 1.51736 -1.66543 -204.45 + 27 143.394 888 0 0 1.33005 -1.98687 -205.85 + 27 220.023 887 0 0 1.2048 -2.06956 -206.167 + 27 1241.09 898 0 1 0.28947 2.60883 -204.85 + 27 286.926 359 5 1 -108.083 84.817 -54.8433 +Number of tracker digits in this event = 8 +Event: 28 +Number of tracker hits in this event = 21 + 28 107.629 898 1 1 0.427458 0.314235 -174.45 + 28 114.007 898 1 0 0.436717 0.307478 -175.85 + 28 159.936 852 2 1 -9.0737 2.78833 -144.45 + 28 167.27 910 2 0 -7.61932 2.80055 -145.85 + 28 134.052 951 1 1 10.857 -2.37128 -174.45 + 28 263.305 953 1 1 11.2564 -2.51112 -174.68 + 28 71.7259 879 1 0 13.0578 -3.76239 -175.85 + 28 159.327 878 1 0 13.2179 -3.89293 -176.028 + 28 157.769 955 1 1 11.7526 -2.57753 -174.714 + 28 78.7127 898 2 0 0.407913 0.25 -145.974 + 28 102.826 904 1 1 1.46604 4.55733 -174.45 + 28 118.206 919 1 0 1.50403 4.63266 -175.85 + 28 127.433 904 0 1 1.56312 5.17101 -204.45 + 28 113.772 924 0 0 1.71885 5.61896 -205.85 + 28 141.24 1034 0 0 -19.186 27.6046 -205.868 + 28 177.128 814 0 1 -16.7712 24.9889 -204.787 + 28 110.004 899 2 0 2.00566 0.479931 -145.85 + 28 102.008 907 1 1 2.18208 6.20124 -174.45 + 28 113.19 927 1 0 2.21245 6.09337 -175.85 + 28 114.538 908 0 1 2.43239 4.67305 -204.45 + 28 141.205 918 0 0 2.12138 4.29326 -205.85 +Number of tracker digits in this event = 10 +Event: 29 +Number of tracker hits in this event = 8 + 29 203.177 898 2 1 0.40981 -0.447974 -144.45 + 29 113.09 896 2 0 0.411665 -0.446329 -145.85 + 29 156.234 898 1 1 0.4423 -0.416722 -174.45 + 29 111.636 896 1 0 0.451435 -0.412536 -175.85 + 29 295.864 899 0 1 0.462695 -0.593126 -204.45 + 29 114.912 895 0 0 0.64437 -0.490752 -205.85 + 29 115.913 894 4 0 -0.439906 -0.713943 -85.85 + 29 11.053 893 4 0 -0.579561 -0.85783 -86.2125 +Number of tracker digits in this event = 3 +Event: 30 +Number of tracker hits in this event = 12 + 30 123.387 899 2 1 0.642968 1.15749 -144.45 + 30 114.363 902 2 0 0.677578 1.17481 -145.85 + 30 129.759 903 1 1 1.4041 1.5474 -174.45 + 30 145.704 904 1 0 1.4344 1.56366 -175.85 + 30 181.449 907 0 1 2.13052 1.96399 -204.45 + 30 120.099 906 0 0 2.17563 1.99717 -205.85 + 30 27.0949 1617 4 1 144.413 25.6195 -84.5233 + 30 161.89 899 0 1 0.631232 1.08175 -204.45 + 30 243.177 898 0 1 0.32254 1.17623 -204.45 + 30 211.269 902 0 0 0.317967 1.19349 -205.85 + 30 178.285 1777 2 0 -14.1606 176.351 -146.25 + 30 116.413 922 0 1 5.09564 18.368 -204.575 +Number of tracker digits in this event = 9 +Event: 31 +Number of tracker hits in this event = 12 + 31 96.9257 896 3 1 -0.432928 0.373085 -114.45 + 31 105.207 898 3 0 -0.438343 0.374461 -115.85 + 31 102.618 895 2 1 -0.480965 0.436904 -144.45 + 31 189.337 898 2 0 -0.468138 0.397119 -145.85 + 31 103.015 899 0 1 0.5644 -1.57248 -204.45 + 31 119.699 890 0 0 0.565239 -1.61767 -205.85 + 31 383.968 896 0 1 -0.43028 0.723824 -204.45 + 31 110.536 900 0 0 -0.420054 0.739354 -205.85 + 31 62.6251 445 11 0 -124.438 -90.8443 123.75 + 31 105.832 444 11 0 -124.473 -90.9627 123.918 + 31 506.092 277 11 1 -124.527 -90.7118 125.15 + 31 116.586 899 0 0 -0.569592 0.620644 -205.85 +Number of tracker digits in this event = 3 +Event: 32 +Number of tracker hits in this event = 8 + 32 125.308 898 2 1 0.296178 0.667192 -144.45 + 32 219.007 900 2 0 0.302604 0.679051 -145.85 + 32 110.192 899 1 1 0.459479 0.911665 -174.45 + 32 133.335 901 1 0 0.45821 0.917615 -175.85 + 32 185.597 898 0 1 0.411271 1.02326 -204.45 + 32 150.015 901 0 0 0.412119 1.02382 -205.85 + 32 45.4527 88 1 1 -162.209 -48.7165 -174.499 + 32 70.2232 899 2 0 0.258835 0.64014 -146.228 +Number of tracker digits in this event = 5 +Event: 33 +Number of tracker hits in this event = 8 + 33 127.109 898 3 1 0.312314 0.435134 -114.45 + 33 160.531 898 3 0 0.325541 0.443696 -115.85 + 33 110.132 899 2 1 0.557401 0.593153 -144.45 + 33 147.472 899 2 0 0.564057 0.602023 -145.85 + 33 119.239 900 1 1 0.668201 0.811845 -174.45 + 33 118.87 900 1 0 0.700541 0.830009 -175.85 + 33 186.811 903 0 1 1.35516 1.24171 -204.45 + 33 111.408 903 0 0 1.36984 1.27872 -205.85 +Number of tracker digits in this event = 4 +Event: 34 +Number of tracker hits in this event = 29 + 34 260.033 894 2 1 -0.670271 -0.95359 -144.45 + 34 109.801 893 2 0 -0.703349 -0.97028 -145.85 + 34 109.083 890 1 1 -1.62114 -1.40367 -174.45 + 34 120.753 891 1 0 -1.64961 -1.4213 -175.85 + 34 141.641 887 0 1 -2.21112 -1.89228 -204.45 + 34 218.696 889 0 0 -2.29624 -1.84695 -205.85 + 34 241.526 972 0 0 -14.8185 15.2117 -206.25 + 34 108.1 973 0 0 -14.6864 15.2885 -205.985 + 34 8.12631 895 2 1 -0.539611 -1.03137 -144.85 + 34 308.305 896 2 1 -0.363229 -0.36783 -144.45 + 34 174.967 896 2 0 -0.403726 -0.257456 -145.85 + 34 172.348 885 1 1 -2.45537 1.42331 -174.45 + 34 185.599 905 1 0 -2.81803 1.78882 -175.85 + 34 153.333 854 0 1 -8.82669 6.41515 -204.45 + 34 143.625 929 0 0 -9.46586 6.56113 -205.85 + 34 121.568 893 1 0 0.27608 -0.913024 -175.85 + 34 102.84 909 0 1 2.55026 -1.90199 -204.45 + 34 121.195 895 1 1 -0.593669 -0.355187 -174.45 + 34 111.106 896 1 0 -0.611772 -0.34143 -175.85 + 34 156.866 412 0 0 20.3582 -97.4748 -206.038 + 34 237.782 1536 0 0 50.485 128.267 -206.25 + 34 54.1219 1539 0 0 50.8942 128.814 -205.955 + 34 492.025 1156 0 1 51.9342 129.963 -204.85 + 34 136.761 1157 0 1 52.1626 130.674 -204.45 + 34 101.228 1153 0 1 51.301 130.258 -204.799 + 34 80.2296 1542 0 0 46.4275 129.361 -205.85 + 34 496.241 1541 0 0 46.157 129.347 -205.866 + 34 21.2091 1334 0 0 -8.87081 87.4581 -206.25 + 34 17.5998 1333 0 0 -8.90831 87.4101 -206.229 +Number of tracker digits in this event = 18 +Event: 35 +Number of tracker hits in this event = 6 + 35 108.323 899 3 1 0.604962 0.274326 -114.45 + 35 160.466 898 3 0 0.614049 0.277273 -115.85 + 35 116.941 900 2 1 0.816773 0.320817 -144.45 + 35 120.317 898 2 0 0.823316 0.318934 -145.85 + 35 185.318 901 1 1 0.931249 0.273152 -174.45 + 35 111.948 898 1 0 0.939634 0.265794 -175.85 +Number of tracker digits in this event = 3 +Event: 36 +Number of tracker hits in this event = 23 + 36 112.159 886 4 1 -2.28134 0.395788 -84.45 + 36 144.284 898 4 0 -2.3791 0.406274 -85.85 + 36 113.344 876 3 1 -4.31854 0.615723 -114.45 + 36 207.516 899 3 0 -4.48028 0.636048 -115.85 + 36 130.953 860 2 1 -7.53926 1.23022 -144.45 + 36 120.85 903 2 0 -7.69103 1.26676 -145.85 + 36 117.186 844 1 1 -10.7104 2.25558 -174.45 + 36 100.756 908 1 0 -10.8686 2.27213 -175.85 + 36 221.338 827 0 1 -14.1196 2.53793 -204.45 + 36 282.729 909 0 0 -14.2475 2.59695 -205.85 + 36 27.0912 910 0 0 -14.254 2.6789 -206.014 + 36 187.325 293 2 1 -121.297 -68.1901 -144.606 + 36 129.97 292 2 1 -121.4 -68.2221 -144.474 + 36 12.7384 1006 0 0 -96.1208 22.0489 -206.049 + 36 349.181 900 3 0 -4.67285 0.712376 -116.01 + 36 215.681 896 0 1 -0.426686 -1.03167 -204.45 + 36 249.101 893 0 0 -0.479761 -1.04257 -205.85 + 36 120.687 874 0 1 -4.78864 -3.83118 -204.45 + 36 118.282 877 0 0 -4.88016 -4.18258 -205.85 + 36 177.341 894 1 0 -0.36191 -0.847858 -175.85 + 36 199.019 828 0 1 -13.903 4.75093 -204.45 + 36 151.059 920 0 0 -14.1818 4.65929 -205.85 + 36 174.722 829 0 1 -13.8462 4.73453 -204.746 +Number of tracker digits in this event = 16 +Event: 37 +Number of tracker hits in this event = 19 + 37 221.822 898 3 1 0.331107 0.305212 -114.45 + 37 128.558 898 3 0 0.357389 0.320356 -115.85 + 37 104.256 901 2 1 0.945657 0.650411 -144.45 + 37 122.496 900 2 0 0.959669 0.656088 -145.85 + 37 228.503 902 1 1 1.236 0.73917 -174.45 + 37 100.2 900 1 0 1.24152 0.732648 -175.85 + 37 111.135 903 0 1 1.36098 0.887217 -204.45 + 37 122.837 901 0 0 1.35788 0.950366 -205.85 + 37 97.9814 904 0 1 1.56823 0.562106 -204.45 + 37 601.429 899 0 0 1.57855 0.572997 -205.85 + 37 160.499 900 2 1 0.794811 0.565673 -144.45 + 37 124.674 902 2 0 1.0141 1.12988 -145.85 + 37 161.653 840 2 0 -21.6978 -11.515 -145.918 + 37 40.2938 786 2 1 -22.2516 -9.58468 -144.85 + 37 37.8525 787 2 1 -22.2457 -9.56497 -144.84 + 37 265.744 899 0 1 0.553778 0.496692 -204.45 + 37 20.0902 468 0 1 -85.8989 7.03098 -204.85 + 37 50.1003 596 1 1 -60.3879 42.4991 -174.503 + 37 151.773 1106 5 0 -63.052 41.8726 -56.25 +Number of tracker digits in this event = 11 +Event: 38 +Number of tracker hits in this event = 7 + 38 145.894 898 1 0 -0.658564 0.412388 -175.85 + 38 572.401 886 0 1 -2.29873 11.2302 -204.45 + 38 587.023 887 0 1 -2.17799 11.2607 -204.604 + 38 184.57 888 0 1 -1.94378 12.7601 -204.755 + 38 131.46 889 0 1 -1.78426 12.6939 -204.744 + 38 3.90532 897 3 0 -0.467078 -0.25 -115.969 + 38 39.7519 896 3 0 -0.453908 -0.254759 -115.967 +Number of tracker digits in this event = 5 +Event: 39 +Number of tracker hits in this event = 12 + 39 108.825 896 3 1 -0.329683 -0.333127 -114.45 + 39 122.756 896 3 0 -0.334291 -0.348651 -115.85 + 39 147.148 896 2 1 -0.4336 -0.634542 -144.45 + 39 112.095 894 2 0 -0.438196 -0.65265 -145.85 + 39 188.322 895 1 1 -0.477246 -1.00656 -174.45 + 39 117.391 893 1 0 -0.48578 -1.03357 -175.85 + 39 151.203 895 0 1 -0.630904 -1.54695 -204.45 + 39 104.431 890 0 0 -0.640687 -1.57409 -205.85 + 39 77.328 844 0 1 -10.7693 136.078 -204.722 + 39 226.43 843 0 1 -10.9318 136.047 -204.674 + 39 308.638 893 0 0 0.371678 -0.987028 -205.85 + 39 139.857 892 0 0 0.511526 -1.07149 -206.001 +Number of tracker digits in this event = 7 +Event: 40 +Number of tracker hits in this event = 8 + 40 125.157 898 2 1 0.357725 -0.324267 -144.45 + 40 154.026 896 2 0 0.371387 -0.333228 -145.85 + 40 183.399 899 1 1 0.643682 -0.514752 -174.45 + 40 90.9672 895 1 0 0.656657 -0.517807 -175.85 + 40 132.338 901 0 1 0.954981 -0.559514 -204.45 + 40 160.223 895 0 0 0.970135 -0.563408 -205.85 + 40 134.235 1405 6 1 101.969 130.09 -24.5986 + 40 69.3942 1406 6 1 102.151 130.115 -24.4722 +Number of tracker digits in this event = 6 +Event: 41 +Number of tracker hits in this event = 20 + 41 117.451 895 4 1 -0.548482 0.324384 -84.45 + 41 110.305 898 4 0 -0.573869 0.339112 -85.85 + 41 139.237 892 3 1 -1.0732 0.65292 -114.45 + 41 120.265 900 3 0 -1.09022 0.667589 -115.85 + 41 242.543 891 2 1 -1.42873 0.958598 -144.45 + 41 116.673 901 2 0 -1.44516 0.972715 -145.85 + 41 108.559 889 1 1 -1.75939 1.27338 -174.45 + 41 235.121 903 1 0 -1.7729 1.28512 -175.85 + 41 100.884 888 0 1 -2.03866 1.58679 -204.45 + 41 114.187 904 0 0 -2.01982 1.62341 -205.85 + 41 117.868 976 1 1 15.9123 -60.9102 -174.52 + 41 354.699 890 2 1 -1.6095 0.753127 -144.566 + 41 1.84682 1151 0 1 50.9319 82.8942 -204.453 + 41 238.166 895 1 1 -0.57791 0.829606 -174.45 + 41 110.634 901 1 0 -0.744106 1.01256 -175.85 + 41 146.677 881 0 1 -3.40911 3.63657 -204.45 + 41 122.258 914 0 0 -3.74899 3.57194 -205.85 + 41 130.532 900 1 0 -0.58658 0.838175 -175.85 + 41 147.186 893 0 1 -0.921414 0.788613 -204.45 + 41 126.986 900 0 0 -0.907768 0.773699 -205.85 +Number of tracker digits in this event = 11 +Event: 42 +Number of tracker hits in this event = 6 + 42 144.551 898 4 1 0.324145 0.27604 -84.45 + 42 121.61 898 4 0 0.330673 0.282159 -85.85 + 42 124.975 899 3 1 0.467915 0.359271 -114.45 + 42 108.663 898 3 0 0.459927 0.367771 -115.85 + 42 125.621 898 2 1 0.274261 0.556434 -144.45 + 42 109.877 899 2 0 0.263256 0.55762 -145.85 +Number of tracker digits in this event = 4 +Event: 43 +Number of tracker hits in this event = 28 + 43 165.867 898 0 1 0.272696 0.612115 -204.45 + 43 129.043 899 0 0 0.282642 0.609745 -205.85 + 43 184.875 1042 0 0 13.2911 29.0982 -206.244 + 43 110.126 1043 0 0 13.3141 29.305 -206.176 + 43 109.86 937 5 1 8.11202 -4.80394 -54.45 + 43 140.601 874 5 0 8.81046 -4.66463 -55.85 + 43 134.347 1031 4 1 26.8588 -2.13569 -84.45 + 43 196.616 885 4 0 27.8232 -2.55631 -85.85 + 43 169.959 1132 3 1 47.2414 -11.177 -114.45 + 43 263.032 831 3 0 47.9157 -13.3806 -115.85 + 43 367.773 366 3 0 126.364 -106.694 -116.25 + 43 366.041 1206 2 1 61.9735 -60.948 -144.45 + 43 479.694 1207 2 1 62.0536 -61.4712 -144.562 + 43 132.422 579 2 0 62.2684 -63.6906 -145.85 + 43 24.7221 578 2 0 62.2475 -63.9042 -146.101 + 43 117.302 890 5 1 -1.49298 0.924939 -54.45 + 43 116.716 900 5 0 -1.78212 0.849426 -55.85 + 43 245.21 830 3 1 -13.5041 1.48626 -114.45 + 43 108.849 904 3 0 -13.7029 1.53794 -115.85 + 43 121.015 809 2 1 -17.6643 3.01148 -144.45 + 43 218.419 911 2 0 -17.9861 2.87471 -145.85 + 43 218.645 910 2 0 -18.0636 2.84329 -146.175 + 43 209.711 728 0 1 -33.9539 -3.00964 -204.45 + 43 119.323 883 0 0 -34.4187 -2.90421 -205.85 + 43 126.12 848 1 0 -66.8117 -9.93415 -176.25 + 43 103.233 849 1 0 -66.7709 -9.79706 -176.043 + 43 226.374 564 1 1 -66.7167 -8.65912 -174.85 + 43 137.575 829 3 1 -13.6888 1.48925 -114.546 +Number of tracker digits in this event = 20 +Event: 44 +Number of tracker hits in this event = 10 + 44 129.325 895 4 1 -0.526523 0.36807 -84.45 + 44 138.323 898 4 0 -0.541391 0.376042 -85.85 + 44 148.06 893 3 1 -0.903686 0.580873 -114.45 + 44 206.212 899 3 0 -0.929764 0.596763 -115.85 + 44 230.655 890 2 1 -1.49568 0.900853 -144.45 + 44 164.367 901 2 0 -1.53204 0.91172 -145.85 + 44 121.805 887 1 1 -2.2416 1.13573 -174.45 + 44 101.424 902 1 0 -2.25173 1.14148 -175.85 + 44 113.186 886 0 1 -2.30295 1.26652 -204.45 + 44 105.573 903 0 0 -2.31207 1.29873 -205.85 +Number of tracker digits in this event = 7 +Event: 45 +Number of tracker hits in this event = 24 + 45 130.536 906 5 1 1.91967 -0.800113 -54.45 + 45 172.101 893 5 0 2.05658 -0.912439 -55.85 + 45 275.916 920 4 1 4.75863 -2.95173 -84.45 + 45 179.373 883 4 0 4.75909 -3.00932 -85.85 + 45 174.024 920 3 1 4.81332 -5.13039 -114.45 + 45 101.135 871 3 0 4.83686 -5.30927 -115.85 + 45 208.431 925 2 1 5.7284 -9.13635 -144.45 + 45 142.598 851 2 0 5.85953 -9.29777 -145.85 + 45 144.414 939 1 1 8.48066 -12.463 -174.45 + 45 128.427 835 1 0 8.60626 -12.6222 -175.85 + 45 130.207 952 0 1 11.0753 -16.0776 -204.45 + 45 122.868 817 0 0 11.119 -16.1125 -205.85 + 45 119.707 1626 1 0 68.3962 146.253 -176.223 + 45 11.5506 1627 1 0 68.4264 146.357 -176.245 + 45 46.1164 1526 1 0 94.3197 126.322 -176.25 + 45 131.378 881 4 0 5.03679 -3.32803 -85.85 + 45 126.202 946 3 1 9.97218 -11.5213 -114.45 + 45 131.204 838 3 0 10.4408 -11.8986 -115.85 + 45 172.182 1000 2 1 20.6971 -19.8571 -144.45 + 45 172.499 796 2 0 21.5872 -20.4024 -145.85 + 45 296.216 1092 1 1 39.1358 -31.7236 -174.45 + 45 184.705 736 1 0 41.1111 -32.3056 -175.85 + 45 167.958 1272 0 1 75.196 -39.441 -204.45 + 45 163.742 702 0 0 76.2951 -39.1792 -205.85 +Number of tracker digits in this event = 20 +Event: 46 +Number of tracker hits in this event = 2 + 46 115.159 22 2 1 -175.529 -100.563 -144.704 + 46 157.574 21 2 1 -175.579 -100.578 -144.615 +Number of tracker digits in this event = 1 +Event: 47 +Number of tracker hits in this event = 4 + 47 108.436 898 1 1 0.341428 -0.282261 -174.45 + 47 101.443 896 1 0 0.352969 -0.309477 -175.85 + 47 150.669 899 0 1 0.586065 -0.852191 -204.45 + 47 124.643 893 0 0 0.594211 -0.878582 -205.85 +Number of tracker digits in this event = 2 +Event: 48 +Number of tracker hits in this event = 6 + 48 201.176 889 2 1 -1.71355 -0.311765 -144.45 + 48 194.289 896 2 0 -1.74579 -0.334513 -145.85 + 48 124.099 885 1 1 -2.4922 -0.811701 -174.45 + 48 117.988 894 1 0 -2.51506 -0.821369 -175.85 + 48 112.242 883 0 1 -2.96273 -1.1091 -204.45 + 48 201.107 892 0 0 -2.98346 -1.1451 -205.85 +Number of tracker digits in this event = 4 +Event: 49 +Number of tracker hits in this event = 17 + 49 106.561 898 0 1 0.334856 -0.377144 -204.45 + 49 147.956 896 0 0 0.317739 -0.428583 -205.85 + 49 119.655 897 4 0 0.403347 -0.25 -85.9871 + 49 116.966 926 3 1 6.01645 -5.00333 -114.45 + 49 118.537 873 3 0 5.46809 -4.98536 -115.85 + 49 173.871 872 2 1 -5.21529 -4.71578 -144.45 + 49 133.145 875 2 0 -5.82633 -4.53382 -145.85 + 49 171.536 1125 2 0 -81.4179 45.847 -146.25 + 49 208.615 482 2 1 -83.1105 46.3152 -144.85 + 49 1.22951 480 2 1 -83.586 46.3843 -144.461 + 49 120.599 898 4 0 -0.415973 0.38313 -85.85 + 49 199.322 823 3 1 -15.0182 4.56143 -114.45 + 49 59.566 825 3 1 -14.5565 4.12528 -114.753 + 49 72.4047 911 3 0 -13.0437 2.85431 -115.85 + 49 129.633 910 3 0 -12.9191 2.76671 -115.979 + 49 14.9286 909 3 0 -12.6421 2.57609 -116.182 + 49 19.3866 1472 2 1 115.432 -26.3976 -144.758 +Number of tracker digits in this event = 8 +Event: 50 +Number of tracker hits in this event = 2 + 50 122.316 899 0 1 0.483334 -0.256537 -204.45 + 50 114.522 896 0 0 0.48743 -0.257305 -205.85 +Number of tracker digits in this event = 1 +Event: 51 +Number of tracker hits in this event = 6 + 51 111.006 898 2 1 0.268689 0.372589 -144.45 + 51 171.038 898 2 0 0.272936 0.376936 -145.85 + 51 105.287 898 1 1 0.338306 0.481416 -174.45 + 51 117.537 899 1 0 0.341417 0.485852 -175.85 + 51 172.997 898 0 1 0.376354 0.587971 -204.45 + 51 180.207 899 0 0 0.368229 0.576019 -205.85 +Number of tracker digits in this event = 3 +Event: 52 +Number of tracker hits in this event = 14 + 52 105.042 896 4 1 -0.272965 0.346342 -84.45 + 52 134.827 898 4 0 -0.317421 0.411086 -85.85 + 52 159.4 893 3 1 -0.90587 1.93647 -114.45 + 52 165.556 907 3 0 -0.886034 2.05375 -115.85 + 52 114.227 894 2 1 -0.805943 4.07229 -144.45 + 52 127.153 917 2 0 -0.741445 4.23245 -145.85 + 52 94.1285 904 1 1 1.47026 7.19246 -174.45 + 52 90.7502 933 1 0 1.40652 7.29738 -175.85 + 52 159.042 893 0 1 -1.00614 10.0014 -204.45 + 52 308.217 948 0 0 -0.961059 10.3214 -205.85 + 52 36.3697 654 1 1 -48.8065 23.6914 -174.719 + 52 88.1593 642 0 1 -51.0919 22.9924 -204.481 + 52 61.0466 1035 2 1 27.8206 146.446 -144.66 + 52 34.3173 1036 2 1 27.8712 146.519 -144.503 +Number of tracker digits in this event = 6 +Event: 53 +Number of tracker hits in this event = 8 + 53 331.552 898 1 1 0.382477 0.317374 -174.45 + 53 396.558 898 1 0 0.393382 0.3075 -175.85 + 53 148.932 923 0 1 5.37612 2.45031 -204.45 + 53 156.29 910 0 0 6.14511 2.78385 -205.85 + 53 165.774 900 0 1 0.699129 0.619697 -204.45 + 53 106.181 899 0 0 0.755319 0.630902 -205.85 + 53 4.02526 896 0 0 -0.950416 -0.318707 -205.85 + 53 105.901 883 0 1 -2.88832 -1.82358 -204.85 +Number of tracker digits in this event = 5 +Event: 54 +Number of tracker hits in this event = 22 + 54 102.786 898 3 1 0.254934 -1.27347 -114.45 + 54 114.215 891 3 0 0.261847 -1.28833 -115.85 + 54 200.775 898 2 1 0.37838 -1.55693 -144.45 + 54 122.186 890 2 0 0.381368 -1.57317 -145.85 + 54 140.704 899 1 1 0.479049 -1.86553 -174.45 + 54 108.349 888 1 0 0.484528 -1.88226 -175.85 + 54 107.664 899 0 1 0.615269 -1.95873 -204.45 + 54 117.112 888 0 0 0.692661 -1.9528 -205.85 + 54 78.4949 991 13 0 35.766 18.8933 183.75 + 54 275.05 990 13 0 35.8204 18.8126 183.922 + 54 22.115 1083 13 1 37.3041 19.4495 185.15 + 54 102.985 893 2 0 0.348915 -0.978279 -145.85 + 54 162.422 920 1 1 4.70384 8.10106 -174.45 + 54 116.545 934 1 0 5.00407 7.64382 -175.85 + 54 144.864 869 1 0 -12.5883 -5.73142 -176.25 + 54 214.754 830 1 1 -13.494 -5.98162 -174.85 + 54 110.796 828 1 1 -14.0192 -6.20758 -174.596 + 54 101.287 860 1 0 -15.0731 -7.55942 -175.85 + 54 112.502 859 1 0 -15.1384 -7.70576 -175.961 + 54 121.795 857 1 0 -15.2417 -8.07385 -176.003 + 54 29.3224 480 1 1 -83.5666 -146.058 -174.671 + 54 285.988 894 4 0 0.25 -0.791775 -86.0086 +Number of tracker digits in this event = 9 +Event: 55 +Number of tracker hits in this event = 3 + 55 120.014 896 1 0 -0.403631 -0.251272 -175.85 + 55 101.441 892 0 1 -1.24358 -0.757354 -204.45 + 55 102.943 894 0 0 -1.27861 -0.778251 -205.85 +Number of tracker digits in this event = 1 +Event: 56 +Number of tracker hits in this event = 23 + 56 148.956 898 3 1 0.320671 -1.28754 -114.45 + 56 101.931 891 3 0 0.329363 -1.31577 -115.85 + 56 314.193 899 2 1 0.546626 -1.91907 -144.45 + 56 121.943 888 2 0 0.55744 -1.94524 -145.85 + 56 143.43 900 1 1 0.771641 -2.45854 -174.45 + 56 237.975 885 1 0 0.781662 -2.48167 -175.85 + 56 96.606 901 0 1 0.992178 -2.88256 -204.45 + 56 288.013 883 0 0 1.00973 -2.90132 -205.85 + 56 186.608 885 0 0 0.926161 -2.59881 -205.954 + 56 194.117 886 0 0 0.762812 -2.31891 -206.082 + 56 193.806 892 2 0 0.722286 -1.17167 -145.85 + 56 143.288 893 2 0 0.772895 -0.857195 -146.179 + 56 131.634 895 2 0 0.955306 -0.492155 -146.25 + 56 36.4761 896 2 0 1.03536 -0.354474 -145.983 + 56 229.725 903 2 1 1.3424 -0.438722 -144.85 + 56 70.3317 894 6 0 0.739216 -0.722679 -25.85 + 56 88.9949 893 6 0 0.805716 -0.871381 -26.0729 + 56 33.2235 696 6 0 23.8756 -40.3944 -26.25 + 56 29.1551 695 6 0 23.9217 -40.4926 -26.1851 + 56 81.1796 960 6 0 -6.39644 12.6905 -26.25 + 56 147.541 961 6 0 -6.5398 12.909 -26.0992 + 56 260.598 850 6 1 -9.50145 11.8954 -24.85 + 56 398.252 849 6 1 -9.65195 11.7745 -24.6356 +Number of tracker digits in this event = 15 +Event: 57 +Number of tracker hits in this event = 25 + 57 66.7255 900 4 1 0.673691 -0.25 -84.6254 + 57 140.585 896 4 0 0.684127 -0.260906 -85.85 + 57 134.532 901 3 1 0.913987 -0.50987 -114.45 + 57 113.71 895 3 0 0.920408 -0.522492 -115.85 + 57 257.735 901 2 1 0.987698 -0.757904 -144.45 + 57 140.032 894 2 0 0.989239 -0.767138 -145.85 + 57 130.307 901 1 1 1.04029 -0.922513 -174.45 + 57 151.973 893 1 0 1.05032 -0.930956 -175.85 + 57 110.485 902 0 1 1.20327 -1.04984 -204.45 + 57 156.315 892 0 0 1.21118 -1.05652 -205.85 + 57 131.988 940 0 0 -46.514 8.83048 -205.881 + 57 149.877 654 0 1 -48.6723 9.03724 -204.85 + 57 120.442 653 0 1 -48.9917 9.1759 -204.641 + 57 300.167 651 0 1 -49.2647 9.12408 -204.684 + 57 35.7141 652 0 1 -49.2065 9.04538 -204.664 + 57 144.509 901 2 0 -1.59478 0.910903 -145.85 + 57 135.745 896 3 0 -1.23985 -0.381294 -115.85 + 57 88.3531 904 0 1 1.58316 -1.02219 -204.45 + 57 29.1098 905 0 1 1.68543 -0.951441 -204.75 + 57 133.934 895 0 0 2.22744 -0.638997 -205.85 + 57 233.061 899 5 1 0.62249 0.25 -54.5934 + 57 397.949 901 5 1 1.02826 0.872907 -54.6875 + 57 1042.2 905 5 1 1.72782 2.1435 -54.7389 + 57 256.611 911 5 1 2.95792 4.16036 -54.6382 + 57 6.85571 912 5 1 3.23014 4.84064 -54.6148 +Number of tracker digits in this event = 18 +Event: 58 +Number of tracker hits in this event = 4 + 58 99.6108 896 1 1 -0.345438 -0.849505 -174.45 + 58 153.46 893 1 0 -0.353165 -0.867577 -175.85 + 58 148.531 895 0 1 -0.500902 -1.41606 -204.45 + 58 117.721 891 0 0 -0.511789 -1.44152 -205.85 +Number of tracker digits in this event = 2 +Event: 59 +Number of tracker hits in this event = 8 + 59 116.419 896 3 1 -0.384846 0.318923 -114.45 + 59 131.267 898 3 0 -0.390064 0.328067 -115.85 + 59 125.768 895 2 1 -0.458788 0.515567 -144.45 + 59 137.139 899 2 0 -0.458256 0.522775 -145.85 + 59 109.992 895 1 1 -0.454151 0.684427 -174.45 + 59 110.008 900 1 0 -0.459716 0.694807 -175.85 + 59 387.411 895 0 1 -0.577534 0.912299 -204.45 + 59 377.089 901 0 0 -0.596475 0.921144 -205.85 +Number of tracker digits in this event = 5 +Event: 60 +Number of tracker hits in this event = 19 + 60 124.047 896 3 1 -0.282364 1.18609 -114.45 + 60 145.333 902 3 0 -0.284955 1.19516 -115.85 + 60 120.638 896 2 1 -0.30595 1.35892 -144.45 + 60 126.826 903 2 0 -0.307968 1.36557 -145.85 + 60 294.061 896 1 1 -0.317537 1.52449 -174.45 + 60 100.426 904 1 0 -0.314442 1.53894 -175.85 + 60 250.203 896 0 1 -0.300522 1.88353 -204.45 + 60 119.518 906 0 0 -0.308246 1.89875 -205.85 + 60 627.188 819 0 0 40.8041 -15.8137 -206.25 + 60 278.327 821 0 0 42.5397 -15.3531 -205.904 + 60 420.804 895 0 1 -0.458281 1.73256 -204.45 + 60 236.73 904 0 0 -0.559936 1.5985 -205.85 + 60 128.76 908 0 0 -1.12968 2.38366 -205.85 + 60 40.2574 849 4 0 -3.22209 -9.79762 -86.25 + 60 120.365 848 4 0 -3.26591 -9.85111 -86.1095 + 60 97.9058 880 4 1 -3.51907 -9.53614 -84.85 + 60 27.5017 879 4 1 -3.65468 -9.42589 -84.5189 + 60 84.5281 1296 6 1 80.0361 24.3681 -24.5499 + 60 78.7515 1297 6 1 80.0747 24.43 -24.5346 +Number of tracker digits in this event = 12 +Event: 61 +Number of tracker hits in this event = 18 + 61 253.197 900 1 1 0.747417 -0.3127 -174.45 + 61 118.334 896 1 0 0.767871 -0.316701 -175.85 + 61 295.273 902 0 1 1.17358 -0.434925 -204.45 + 61 241.875 895 0 0 1.18385 -0.452051 -205.85 + 61 4.7586 1670 5 1 155.022 -59.4367 -54.4637 + 61 208.32 550 3 1 -69.535 146.285 -114.812 + 61 396.459 549 3 1 -69.7368 146.773 -114.467 + 61 99.0109 903 0 1 1.31466 -0.706213 -204.756 + 61 133.636 876 0 0 1.28014 -4.28454 -205.85 + 61 93.7639 875 0 0 1.30483 -4.61227 -205.877 + 61 6.01961 874 0 0 1.44343 -4.81106 -205.856 + 61 318.074 914 0 1 3.49955 -2.10855 -204.85 + 61 251.602 899 0 1 0.529397 -0.550061 -204.45 + 61 166.564 894 0 0 1.07781 -0.660016 -205.85 + 61 226.886 878 0 0 14.3113 -4.01072 -206.25 + 61 190.657 972 0 1 15.1783 -3.49586 -204.85 + 61 47.6214 973 0 1 15.448 -3.36976 -204.569 + 61 28.1774 768 0 0 64.6836 -25.9492 -205.946 +Number of tracker digits in this event = 11 +Event: 62 +Number of tracker hits in this event = 8 + 62 114.163 894 3 1 -0.699362 0.755978 -114.45 + 62 113.292 900 3 0 -0.71751 0.785005 -115.85 + 62 264.305 892 2 1 -1.09491 1.37507 -144.45 + 62 130.702 903 2 0 -1.11974 1.40951 -145.85 + 62 161.748 889 1 1 -1.70437 2.07913 -174.45 + 62 489.3 907 1 0 -1.73428 2.1132 -175.85 + 62 139.429 886 0 1 -2.33939 2.7951 -204.45 + 62 204.233 910 0 0 -2.36338 2.83367 -205.85 +Number of tracker digits in this event = 6 +Event: 63 +Number of tracker hits in this event = 18 + 63 192.861 898 4 1 0.421172 0.571447 -84.45 + 63 134.527 899 4 0 0.448277 0.591801 -85.85 + 63 283.888 902 3 1 1.07031 0.983844 -114.45 + 63 120.586 901 3 0 1.11162 0.993298 -115.85 + 63 130.165 906 2 1 1.97508 1.18204 -144.45 + 63 116.685 902 2 0 2.00248 1.19995 -145.85 + 63 102.587 909 1 1 2.54295 1.49708 -174.45 + 63 113.941 904 1 0 2.56141 1.49823 -175.85 + 63 91.7719 911 0 1 2.95529 1.53532 -204.45 + 63 108.064 904 0 0 2.93324 1.55501 -205.85 + 63 114.018 902 3 0 0.83373 1.0644 -115.866 + 63 126.351 883 2 1 -2.853 -5.80581 -144.45 + 63 129.177 874 2 0 -3.23941 -4.70437 -145.85 + 63 137.092 876 2 0 -3.3218 -4.42472 -146.083 + 63 269.861 1347 2 0 -13.5932 90.35 -146.141 + 63 46.0875 1349 2 0 -14.1812 90.8513 -146.172 + 63 94.0312 1470 2 0 -52.6579 115.101 -146.25 + 63 176.53 1152 2 0 -44.5489 51.1939 -146.25 +Number of tracker digits in this event = 10 +Event: 64 +Number of tracker hits in this event = 14 + 64 110.826 896 2 1 -0.291905 -0.672867 -144.45 + 64 167.105 894 2 0 -0.295407 -0.666724 -145.85 + 64 183.404 896 1 1 -0.416109 -0.517405 -174.45 + 64 114.215 895 1 0 -0.433923 -0.508618 -175.85 + 64 131.073 894 0 1 -0.780302 -0.329116 -204.45 + 64 125.48 896 0 0 -0.786211 -0.323042 -205.85 + 64 225.312 912 2 1 3.2177 4.28127 -144.45 + 64 127.875 917 2 0 3.46594 4.2132 -145.85 + 64 139.384 939 1 1 8.5578 3.0102 -174.45 + 64 115.517 912 1 0 9.41062 3.15817 -175.85 + 64 178.911 913 2 1 3.30967 4.14001 -144.463 + 64 126.162 930 2 1 6.76967 5.85671 -144.45 + 64 217.897 932 2 1 7.16982 6.01157 -144.642 + 64 172.282 931 2 0 8.81133 6.87412 -145.85 +Number of tracker digits in this event = 11 +Event: 65 +Number of tracker hits in this event = 11 + 65 158.975 890 4 1 -1.61859 -1.10922 -84.45 + 65 109.389 892 4 0 -1.64096 -1.11982 -85.85 + 65 126.73 887 3 1 -2.23261 -1.34236 -114.45 + 65 104.851 891 3 0 -2.27729 -1.34778 -115.85 + 65 119.835 882 2 1 -3.08579 -1.64176 -144.45 + 65 112.833 889 2 0 -3.13852 -1.66843 -145.85 + 65 124.055 876 1 1 -4.28571 -2.21755 -174.45 + 65 226.314 887 1 0 -4.34928 -2.18628 -175.85 + 65 389.47 871 0 1 -5.36704 -1.41831 -204.45 + 65 160.264 890 0 0 -5.4684 -1.45449 -205.85 + 65 209.589 881 0 0 -5.47743 -3.41494 -205.85 +Number of tracker digits in this event = 7 +Event: 66 +Number of tracker hits in this event = 14 + 66 93.3936 894 4 1 -0.836688 1.01755 -84.45 + 66 131.749 902 4 0 -0.866055 1.06146 -85.85 + 66 107.33 889 3 1 -1.77699 1.7181 -114.45 + 66 101.634 905 3 0 -1.84599 1.73254 -115.85 + 66 129.226 882 2 1 -3.15418 2.237 -144.45 + 66 138.91 908 2 0 -3.22267 2.27133 -145.85 + 66 237.375 875 1 1 -4.49609 2.90929 -174.45 + 66 378.279 911 1 0 -4.55556 2.87804 -175.85 + 66 111.509 870 0 1 -5.45236 1.91559 -204.45 + 66 86.8423 906 0 0 -5.54498 1.86048 -205.85 + 66 24.3657 905 0 0 -5.5657 1.84953 -206.158 + 66 112.51 912 1 0 -4.77971 3.11201 -176.218 + 66 84.8243 913 1 0 -4.92503 3.29005 -176.179 + 66 52.0408 914 1 0 -4.95781 3.51152 -176.199 +Number of tracker digits in this event = 5 +Event: 67 +Number of tracker hits in this event = 12 + 67 128.7 895 3 1 -0.477711 -1.91658 -114.45 + 67 105.12 888 3 0 -0.506145 -1.96132 -115.85 + 67 120.741 894 2 1 -0.845604 -2.87862 -144.45 + 67 106.068 883 2 0 -0.858395 -2.95261 -145.85 + 67 111.795 891 1 1 -1.31484 -4.50882 -174.45 + 67 124.689 875 1 0 -1.32948 -4.59267 -175.85 + 67 111.81 890 0 1 -1.6002 -6.78785 -204.45 + 67 128.866 863 0 0 -1.60299 -6.86622 -205.85 + 67 39.3161 1332 4 1 87.1999 -98.4323 -84.5554 + 67 0.278158 401 4 0 93.0059 -99.7331 -86.0845 + 67 1.844 1035 1 0 -20.816 27.8168 -175.85 + 67 182.319 1033 1 0 -19.5671 27.3787 -175.948 +Number of tracker digits in this event = 5 +Event: 68 +Number of tracker hits in this event = 14 + 68 121.373 893 2 1 -0.951004 -0.567555 -144.45 + 68 266.401 895 2 0 -0.968276 -0.584633 -145.85 + 68 100.185 892 1 1 -1.23215 -0.952695 -174.45 + 68 137.9 893 1 0 -1.24623 -0.966431 -175.85 + 68 132.238 890 0 1 -1.55705 -1.26589 -204.45 + 68 119.849 891 0 0 -1.56938 -1.27647 -205.85 + 68 126.882 1047 7 0 -134.663 30.0952 3.75 + 68 166.293 1093 0 0 30.2376 39.3636 -206.241 + 68 209.302 1050 0 1 30.8372 40.1425 -204.85 + 68 84.9609 1051 0 1 30.9635 40.2864 -204.479 + 68 129.507 1052 0 1 31.1119 40.2457 -204.45 + 68 157.408 1053 0 1 31.2747 40.2025 -204.819 + 68 137.022 1097 0 0 31.8247 40.2159 -205.85 + 68 59.733 1098 0 0 31.2086 40.2542 -205.85 +Number of tracker digits in this event = 10 +Event: 69 +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 = 32 + 70 484.173 900 1 1 0.807403 0.279852 -174.45 + 70 364.455 898 1 0 0.860244 0.295353 -175.85 + 70 255.97 906 0 1 1.941 0.886498 -204.45 + 70 344.359 901 0 0 1.98461 0.919666 -205.85 + 70 89.1851 905 6 0 -115.519 1.79261 -26.2248 + 70 148.272 906 6 0 -115.471 1.87506 -26.0985 + 70 181.926 1378 10 1 96.7446 -9.7359 95.4475 + 70 92.0678 1379 10 1 96.7611 -9.74701 95.527 + 70 294.919 902 0 1 1.21278 0.795962 -204.45 + 70 106.304 596 8 0 -70.132 -60.3757 33.9724 + 70 121.137 899 0 0 1.26107 0.541674 -205.85 + 70 294.757 903 0 1 1.25603 0.822334 -204.45 + 70 148.829 903 0 0 0.886549 1.28702 -205.85 + 70 239.181 902 1 1 1.13773 -0.253954 -174.45 + 70 251.213 896 1 0 0.955981 -0.309265 -175.85 + 70 118.973 884 0 1 -2.79105 -1.43219 -204.45 + 70 112.709 890 0 0 -3.03068 -1.47283 -205.85 + 70 71.7135 544 1 0 -13.5762 -70.7536 -175.943 + 70 236.924 472 1 0 -11.7886 -85.1253 -176.066 + 70 43.9084 471 1 0 -11.7548 -85.2828 -176.034 + 70 137.643 894 0 0 1.46508 -0.703452 -205.85 + 70 100.002 902 1 0 -0.25 1.16432 -175.93 + 70 301.862 859 0 1 -7.7724 19.117 -204.45 + 70 534.98 860 0 1 -7.56085 18.3283 -204.538 + 70 53.12 982 0 0 -5.8709 17.1421 -205.85 + 70 146.77 981 0 0 -5.74742 17.0139 -205.956 + 70 48.4418 980 0 0 -5.55576 16.7277 -206.166 + 70 205.532 861 0 1 -7.42848 17.6605 -204.557 + 70 111.329 972 0 0 -8.09627 15.2021 -205.85 + 70 23.8477 971 0 0 -8.22422 14.9356 -205.867 + 70 182.689 857 0 1 -8.21089 13.748 -204.85 + 70 0.721027 858 0 1 -7.99211 13.4906 -204.452 +Number of tracker digits in this event = 19 +Event: 71 +Number of tracker hits in this event = 6 + 71 120.554 895 2 1 -0.516934 0.279293 -144.45 + 71 113.829 898 2 0 -0.525898 0.278301 -145.85 + 71 149.138 892 0 1 -1.12974 0.28882 -204.45 + 71 117.006 898 0 0 -1.1469 0.288659 -205.85 + 71 220.421 894 0 1 -0.801106 0.413218 -204.45 + 71 141.11 894 0 0 -0.568441 -0.65454 -205.85 +Number of tracker digits in this event = 4 +Event: 72 +Number of tracker hits in this event = 12 + 72 126.025 898 2 1 0.365795 -0.624704 -144.45 + 72 120.444 895 2 0 0.376263 -0.643143 -145.85 + 72 117.843 899 1 1 0.592365 -1.02111 -174.45 + 72 147.091 893 1 0 0.6018 -1.04917 -175.85 + 72 102.792 900 0 1 0.722782 -1.60396 -204.45 + 72 128.183 890 0 0 0.746062 -1.64212 -205.85 + 72 124.855 793 0 0 16.5866 -21.0041 -205.916 + 72 5.07103 898 4 1 0.257613 -0.25 -84.5843 + 72 557.72 898 0 1 0.4383 -1.12048 -204.45 + 72 108.383 892 0 0 0.446875 -1.12415 -205.85 + 72 129.404 893 0 0 0.398062 -0.97991 -205.85 + 72 273.143 1453 4 1 111.641 135.237 -84.6344 +Number of tracker digits in this event = 8 +Event: 73 +Number of tracker hits in this event = 14 + 73 402.129 906 1 1 1.88242 -0.339137 -174.45 + 73 204.608 896 1 0 1.91936 -0.366719 -175.85 + 73 145.356 909 0 1 2.57571 -0.869461 -204.45 + 73 127.043 893 0 0 2.61021 -0.887929 -205.85 + 73 171.088 1071 3 0 106.201 34.9937 -115.975 + 73 126.3 898 1 0 1.91348 0.261812 -175.85 + 73 112.591 929 0 1 6.51651 2.78308 -204.45 + 73 120.765 909 0 0 7.02904 2.52241 -205.85 + 73 190.464 521 4 0 -63.4833 -75.3942 -86.25 + 73 186.08 902 1 0 3.14172 1.11208 -175.85 + 73 127.53 1174 1 0 62.4066 55.5389 -176.25 + 73 51.0801 1175 1 0 62.6961 55.7209 -175.98 + 73 134.368 1214 1 1 63.5114 56.5181 -174.85 + 73 45.7152 1215 1 1 63.6924 56.7745 -174.593 +Number of tracker digits in this event = 11 +Event: 74 +Number of tracker hits in this event = 18 + 74 168.307 895 2 1 -0.477817 0.954475 -144.45 + 74 169.196 901 2 0 -0.490674 0.962094 -145.85 + 74 97.7787 894 1 1 -0.727556 1.11924 -174.45 + 74 119.142 902 1 0 -0.752488 1.13251 -175.85 + 74 127.56 891 0 1 -1.40236 1.40814 -204.45 + 74 131.732 903 0 0 -1.44637 1.40135 -205.85 + 74 53.3912 1281 10 1 76.8655 -114.273 95.2245 + 74 81.7517 900 4 0 0.461324 0.800696 -85.85 + 74 44.5343 901 4 0 0.520215 0.870636 -86.1687 + 74 92.0891 847 4 0 44.9802 -10.2074 -86.25 + 74 195.991 846 4 0 45.1225 -10.3432 -86.0625 + 74 71.6124 1129 4 1 46.5545 -10.7398 -84.85 + 74 158.578 1130 4 1 46.7479 -10.783 -84.7391 + 74 128.029 895 6 0 0.25 -0.56296 -26.028 + 74 174.174 939 5 1 8.62647 -14.3963 -54.45 + 74 126.226 825 5 0 8.16563 -14.486 -55.85 + 74 30.2159 897 6 1 -0.25 -0.362091 -24.7411 + 74 224.129 891 6 0 -0.77188 -1.35472 -25.85 +Number of tracker digits in this event = 10 +Event: 75 +Number of tracker hits in this event = 11 + 75 130.941 1205 1 1 61.7059 -89.4524 -174.71 + 75 33.5858 1206 1 1 61.9591 -89.7524 -174.45 + 75 98.1697 1208 1 1 62.334 -90.35 -174.697 + 75 5.10506 1207 1 1 62.2185 -90.3574 -174.753 + 75 199.45 466 1 0 58.9751 -86.3903 -175.85 + 75 200.273 467 1 0 58.9435 -86.2354 -175.99 + 75 84.2777 612 1 0 35.3646 -57.1355 -176.25 + 75 136.307 613 1 0 35.2927 -57.0033 -176.17 + 75 130.414 1520 6 0 132.737 125.095 -26.0691 + 75 180.947 1521 6 0 132.812 125.214 -25.9263 + 75 19.8454 1404 9 1 101.882 16.0651 65.4159 +Number of tracker digits in this event = 6 +Event: 76 +Number of tracker hits in this event = 6 + 76 119.27 896 1 1 -0.314765 -1.2732 -174.45 + 76 256.176 891 1 0 -0.329537 -1.30328 -175.85 + 76 191.178 895 0 1 -0.624921 -1.94284 -204.45 + 76 398.975 888 0 0 -0.643934 -1.96856 -205.85 + 76 27.6163 924 0 1 5.60214 -8.97554 -204.508 + 76 30.8225 889 0 0 0.616723 -1.83796 -205.85 +Number of tracker digits in this event = 3 +Event: 77 +Number of tracker hits in this event = 1 + 77 242.116 879 0 1 -3.82547 -10.0733 -204.5 +Number of tracker digits in this event = 1 +Event: 78 +Number of tracker hits in this event = 5 + 78 116.204 899 3 1 0.459584 -0.351247 -114.45 + 78 196.509 896 3 0 0.472808 -0.351303 -115.85 + 78 132.226 900 2 1 0.747511 -0.351219 -144.45 + 78 119.77 896 2 0 0.753357 -0.337145 -145.85 + 78 16.2277 1117 0 0 59.903 44.2057 -205.951 +Number of tracker digits in this event = 2 +Event: 79 +Number of tracker hits in this event = 16 + 79 151.114 894 4 1 -0.702968 -0.734996 -84.45 + 79 301.871 894 4 0 -0.718766 -0.781603 -85.85 + 79 130.795 894 3 1 -0.847961 -1.62465 -114.45 + 79 127.447 889 3 0 -0.875777 -1.68324 -115.85 + 79 108.511 890 2 1 -1.55768 -2.88896 -144.45 + 79 114.128 883 2 0 -1.58392 -2.95993 -145.85 + 79 117.768 887 1 1 -2.12431 -4.39977 -174.45 + 79 107.818 875 1 0 -2.14572 -4.46954 -175.85 + 79 129.477 884 0 1 -2.69816 -5.86967 -204.45 + 79 98.2998 868 0 0 -2.65563 -5.96457 -205.85 + 79 185.856 959 3 1 12.4782 74.024 -114.702 + 79 12.3164 937 0 1 8.09632 11.7626 -204.595 + 79 303.176 893 0 1 -0.989648 -0.417387 -204.45 + 79 284.474 896 0 0 -1.011 -0.407628 -205.85 + 79 210.692 729 5 0 29.5191 -33.7822 -55.9582 + 79 165.372 1356 3 0 -177.832 92.3078 -115.998 +Number of tracker digits in this event = 10 +Event: 80 +Number of tracker hits in this event = 10 + 80 13.815 895 2 1 -0.492719 0.25 -144.796 + 80 110.619 898 2 0 -0.495281 0.260928 -145.85 + 80 102.526 895 1 1 -0.519328 0.505896 -174.45 + 80 195.356 899 1 0 -0.52121 0.524921 -175.85 + 80 271.498 895 0 1 -0.567066 0.897057 -204.45 + 80 99.5429 901 0 0 -0.551873 0.907587 -205.85 + 80 218.358 458 5 1 -87.9055 28.4267 -54.5886 + 80 39.7641 459 5 1 -87.8149 28.4804 -54.4959 + 80 117.389 898 5 0 0.846872 0.288628 -55.85 + 80 259.943 728 0 1 -33.8673 25.8839 -204.45 +Number of tracker digits in this event = 4 +Event: 81 +Number of tracker hits in this event = 55 + 81 7.52914 851 0 0 71.8145 -9.44859 -205.862 + 81 5.7979 1245 0 1 69.6525 -9.44289 -204.85 + 81 8.49644 1244 0 1 69.6413 -9.43998 -204.843 + 81 10.2287 841 0 0 73.3071 -11.4415 -205.85 + 81 5.5346 1290 0 1 78.844 -12.8975 -204.85 + 81 0.285098 1291 0 1 78.8543 -12.9014 -204.85 + 81 188.308 831 0 0 81.4356 -13.2832 -205.85 + 81 120.106 1121 1 1 45.02 -21.6708 -174.801 + 81 26.391 1122 1 1 45.0546 -21.6642 -174.517 + 81 167.699 1435 2 0 87.443 107.976 -146.182 + 81 12.8744 897 1 0 -0.38725 -0.25 -176.079 + 81 77.8951 896 1 0 -0.408317 -0.283544 -176.101 + 81 42.4614 899 3 0 2.57364 0.63147 -115.85 + 81 146.511 900 3 0 2.61176 0.656199 -115.892 + 81 36.7569 896 2 0 0.348551 -0.419847 -145.85 + 81 102.556 895 2 0 0.358561 -0.472456 -145.942 + 81 116.11 919 1 1 4.5339 -17.6326 -174.45 + 81 211.278 803 1 0 4.62292 -18.8691 -175.85 + 81 212.3 929 0 1 6.63973 -42.7711 -204.45 + 81 167.034 680 0 0 7.08374 -43.5827 -205.85 + 81 41.6889 536 0 0 -103.867 -72.362 -205.887 + 81 32.9681 377 0 1 -104.369 -69.5425 -204.85 + 81 95.2913 548 0 0 -104.629 -69.9248 -205.85 + 81 136.29 381 0 1 -103.603 -70.5817 -204.85 + 81 7.98487 727 3 0 -46.9022 -34.1277 -116.179 + 81 131.861 896 1 1 -0.316883 11.5078 -174.45 + 81 104.423 957 1 0 -0.49102 12.144 -175.85 + 81 30.7152 958 1 0 -0.551847 12.323 -176.232 + 81 210.45 866 0 1 -6.3911 24.831 -204.45 + 81 164.519 1025 0 0 -6.81978 25.709 -205.85 + 81 270.305 896 5 1 -0.270215 0.45327 -54.45 + 81 171.391 896 2 1 -0.370996 5.49912 -144.45 + 81 311.437 925 2 0 -0.437893 5.67772 -145.85 + 81 214.771 890 1 1 -1.6013 9.57555 -174.45 + 81 180.311 945 1 0 -1.6783 9.76566 -175.85 + 81 124.074 884 0 1 -2.79111 14.2411 -204.45 + 81 218.797 969 0 0 -3.05156 14.6089 -205.85 + 81 124.321 924 2 0 -0.550605 5.50377 -146.033 + 81 133.767 923 2 0 -0.413777 5.41393 -146.069 + 81 105.788 894 5 0 -0.324467 -0.807294 -55.85 + 81 119.136 900 4 1 0.797222 -2.99555 -84.45 + 81 126.706 881 4 0 0.988049 -3.44394 -85.85 + 81 112.339 921 3 1 4.86195 -13.0413 -114.45 + 81 119.041 830 3 0 4.89207 -13.4853 -115.85 + 81 134.234 922 2 1 5.10924 -22.4985 -144.45 + 81 122.286 783 2 0 5.15299 -22.9711 -145.85 + 81 117.7 927 1 1 6.07697 -32.4772 -174.45 + 81 137.623 733 1 0 6.11084 -32.9946 -175.85 + 81 225.864 930 0 1 6.81643 -43.3667 -204.45 + 81 140.41 678 0 0 6.88852 -43.8636 -205.85 + 81 408.213 4 5 0 -12.7262 -178.951 -56.25 + 81 45.0015 5 5 0 -12.7568 -178.948 -56.2139 + 81 51.5742 838 5 1 -12.0141 -177.049 -54.85 + 81 32.3237 357 8 1 -108.49 -72.3554 35.3978 + 81 100.203 355 8 1 -108.869 -71.185 35.5455 +Number of tracker digits in this event = 27 +Event: 82 +Number of tracker hits in this event = 5 + 82 263.687 903 1 1 1.34147 0.447201 -174.45 + 82 195.8 899 1 0 1.37443 0.465978 -175.85 + 82 153.313 906 0 1 2.0314 0.938799 -204.45 + 82 204.461 901 0 0 2.06008 0.953448 -205.85 + 82 56.254 784 3 1 -22.7276 160.413 -114.704 +Number of tracker digits in this event = 4 +Event: 83 +Number of tracker hits in this event = 17 + 83 117.797 896 3 1 -0.333132 0.342755 -114.45 + 83 135.439 898 3 0 -0.339427 0.349883 -115.85 + 83 158.266 895 2 1 -0.491753 0.508416 -144.45 + 83 99.9647 899 2 0 -0.502079 0.513073 -145.85 + 83 326.031 894 1 1 -0.699662 0.595455 -174.45 + 83 183.059 899 1 0 -0.713264 0.596682 -175.85 + 83 99.5012 893 0 1 -0.95442 0.599552 -204.45 + 83 167.17 899 0 0 -0.964247 0.596352 -205.85 + 83 146.768 900 1 0 0.337786 0.672189 -175.85 + 83 106.808 946 0 1 9.95125 17.8791 -204.45 + 83 209.393 948 0 1 10.3347 17.8838 -204.515 + 83 168.066 951 0 1 11.0032 18.1715 -204.706 + 83 76.6978 986 0 0 12.7664 18.0209 -205.85 + 83 163.927 987 0 0 13.0092 18.0536 -206.04 + 83 234.743 943 0 0 67.0738 9.38174 -206.25 + 83 188.814 1238 0 1 68.2764 9.39813 -204.85 + 83 64.6006 1243 0 1 69.2727 9.43976 -204.524 +Number of tracker digits in this event = 11 +Event: 84 +Number of tracker hits in this event = 8 + 84 100.124 895 1 1 -0.501568 0.772849 -174.45 + 84 130.426 900 1 0 -0.541696 0.746855 -175.85 + 84 128.11 891 0 1 -1.32709 0.270523 -204.45 + 84 53.141 949 7 1 10.5676 22.0155 5.42901 + 84 182.531 1016 4 1 23.8544 -91.2006 -84.6841 + 84 28.7909 1015 4 1 23.7937 -91.2581 -84.45 + 84 197.264 1017 4 1 24.0897 -91.1288 -84.5092 + 84 205.898 1018 4 1 24.317 -90.8871 -84.45 +Number of tracker digits in this event = 5 +Event: 85 +Number of tracker hits in this event = 9 + 85 115.961 893 4 0 -0.250046 -0.901187 -85.85 + 85 111.711 896 3 1 -0.306527 -1.50904 -114.45 + 85 154.129 890 3 0 -0.301878 -1.53921 -115.85 + 85 31.0614 900 5 0 0.408711 0.847948 -55.85 + 85 47.4131 901 5 0 0.413228 0.927016 -55.9106 + 85 77.5005 902 5 0 0.303444 1.06425 -55.9968 + 85 60.8664 826 5 0 32.525 -14.4014 -56.25 + 85 291.721 825 5 0 32.5702 -14.4686 -56.1357 + 85 171.919 824 5 0 32.3713 -14.7129 -56.0888 +Number of tracker digits in this event = 3 +Event: 86 +Number of tracker hits in this event = 13 + 86 103.93 898 4 1 0.379491 -0.297704 -84.45 + 86 248.661 896 4 0 0.393068 -0.309755 -85.85 + 86 167.907 900 3 1 0.692285 -0.481128 -114.45 + 86 93.0569 895 3 0 0.730018 -0.487947 -115.85 + 86 119.05 904 2 1 1.63489 -0.6054 -144.45 + 86 116.388 894 2 0 1.6379 -0.697886 -145.85 + 86 235.579 905 1 1 1.66439 -2.50596 -174.45 + 86 225.693 885 1 0 1.66223 -2.61797 -175.85 + 86 137.447 905 0 1 1.71854 -4.87875 -204.45 + 86 107.92 873 0 0 1.70376 -4.98229 -205.85 + 86 66.869 899 3 1 0.619504 -0.412892 -114.666 + 86 43.6352 546 3 0 -105.183 -70.3753 -116.25 + 86 134.015 545 3 0 -105.281 -70.4686 -116.201 +Number of tracker digits in this event = 6 +Event: 87 +Number of tracker hits in this event = 7 + 87 133.488 895 3 1 -0.590239 7.32092 -114.45 + 87 115.127 933 3 0 -0.568037 7.41561 -115.85 + 87 110.636 896 2 1 -0.304716 9.14466 -144.45 + 87 107.476 942 2 0 -0.295526 9.22356 -145.85 + 87 143.434 892 0 1 -1.18366 12.5034 -204.45 + 87 113.129 959 0 0 -1.21722 12.5809 -205.85 + 87 131.417 1344 11 1 89.5572 170.085 125.266 +Number of tracker digits in this event = 3 +Event: 88 +Number of tracker hits in this event = 20 + 88 141.689 895 0 1 -0.618854 -0.311684 -204.45 + 88 139.128 896 0 0 -0.623603 -0.322662 -205.85 + 88 125.878 892 1 1 -1.2471 3.35245 -174.45 + 88 100.3 914 1 0 -1.18471 3.52712 -175.85 + 88 264.188 896 0 1 -0.305319 7.10165 -204.45 + 88 358.303 896 2 0 -0.329712 -0.251079 -145.85 + 88 109.252 885 1 1 -2.51046 -1.8034 -174.45 + 88 132.749 889 1 0 -2.63335 -1.77768 -175.85 + 88 300.54 873 0 1 -4.92545 -0.835312 -204.45 + 88 103.271 894 0 0 -5.08172 -0.668837 -205.85 + 88 42.8318 934 0 0 22.6644 7.63502 -206.25 + 88 106.462 935 0 0 22.8078 7.71913 -206.181 + 88 37.3036 936 0 0 22.934 7.90601 -205.918 + 88 37.1325 1020 0 1 24.7231 8.99685 -204.85 + 88 86.7676 1021 0 1 24.8538 9.04102 -204.795 + 88 175.024 1022 0 1 25.1424 8.99685 -204.763 + 88 274.017 1024 0 1 25.5383 8.7444 -204.85 + 88 1.844 1006 0 1 21.901 7.98975 -204.85 + 88 14.8764 1005 0 1 21.6934 8.00207 -204.642 + 88 148.529 892 0 0 -5.89262 -1.15459 -205.85 +Number of tracker digits in this event = 10 +Event: 89 +Number of tracker hits in this event = 4 + 89 102.516 901 4 1 1.02975 0.305021 -84.45 + 89 115.728 898 4 0 1.04327 0.300562 -85.85 + 89 387.476 908 1 1 2.25353 0.80183 -174.452 + 89 152.803 907 1 1 2.15146 0.908788 -174.731 +Number of tracker digits in this event = 2 +Event: 90 +Number of tracker hits in this event = 10 + 90 98.7802 889 2 1 -1.67694 0.906423 -144.45 + 90 123.434 901 2 0 -1.78458 0.960275 -145.85 + 90 151.314 878 1 1 -3.9055 2.26267 -174.45 + 90 124.503 908 1 0 -4.00791 2.39672 -175.85 + 90 116.313 867 0 1 -6.10851 5.26592 -204.45 + 90 233.78 923 0 0 -6.22109 5.41477 -205.85 + 90 110.34 901 0 1 0.990485 0.879881 -204.45 + 90 125.018 901 0 0 1.02481 0.879551 -205.85 + 90 118.75 891 1 1 -1.3351 0.306509 -174.45 + 90 407.605 898 1 0 -1.34574 0.294371 -175.85 +Number of tracker digits in this event = 6 +Event: 91 +Number of tracker hits in this event = 16 + 91 143.665 898 2 0 0.256223 0.30371 -145.85 + 91 416.361 900 1 1 0.703399 0.586089 -174.45 + 91 118.632 899 1 0 0.73029 0.604769 -175.85 + 91 132.117 903 0 1 1.31064 0.958185 -204.45 + 91 200.066 901 0 0 1.34533 0.985293 -205.85 + 91 102.192 864 1 0 3.40626 -6.73909 -176.002 + 91 226.668 863 1 0 3.44436 -6.86527 -176.048 + 91 126.554 903 1 0 0.617166 1.35531 -175.85 + 91 113.762 1213 1 0 10.1361 63.4221 -176.25 + 91 112.163 1215 1 0 10.3038 63.742 -176.087 + 91 241.606 948 1 1 10.3233 66.0147 -174.85 + 91 7.98176 926 1 0 -15.4126 6.02239 -176.25 + 91 290.185 899 1 1 0.613254 0.51908 -174.831 + 91 226.681 905 1 0 2.16683 1.78706 -175.85 + 91 172.744 1187 0 1 58.0967 77.9404 -204.672 + 91 22.7089 509 0 1 -77.7938 -65.3739 -204.712 +Number of tracker digits in this event = 10 +Event: 92 +Number of tracker hits in this event = 15 + 92 125.575 896 0 1 -0.271938 -1.11972 -204.45 + 92 131.823 892 0 0 -0.285412 -1.12177 -205.85 + 92 0.279076 898 4 1 0.316589 -0.490484 -84.8481 + 92 332.377 895 4 0 0.304654 -0.472355 -85.85 + 92 122.914 908 3 1 2.40101 -3.20094 -114.45 + 92 137.5 882 3 0 2.24525 -3.20889 -115.85 + 92 472.037 899 2 1 0.563656 2.09899 -144.45 + 92 104.843 909 2 0 0.854956 2.61489 -145.85 + 92 155.264 956 1 1 12.006 14.8287 -174.45 + 92 187.268 974 1 0 13.4588 15.5752 -175.85 + 92 117.647 1119 0 1 44.6417 31.7274 -204.45 + 92 161.17 1058 0 0 45.721 32.3695 -205.85 + 92 249.025 900 2 1 0.652873 2.22771 -144.726 + 92 27.6678 910 2 0 0.600646 2.8025 -146.027 + 92 121.429 896 4 0 0.308795 -0.388963 -86.0052 +Number of tracker digits in this event = 11 +Event: 93 +Number of tracker hits in this event = 7 + 93 101.948 896 3 1 -0.333879 -0.413497 -114.45 + 93 150.169 896 3 0 -0.331187 -0.410292 -115.85 + 93 30.9897 896 2 0 -0.25 -0.297486 -146.115 + 93 102.071 1313 2 1 83.4131 -8.54796 -144.564 + 93 60.8438 1314 2 1 83.487 -8.56525 -144.542 + 93 147.324 564 5 0 32.3881 -66.6608 -56.25 + 93 305.573 563 5 0 32.3936 -66.9084 -56.2487 +Number of tracker digits in this event = 3 +Event: 94 +Number of tracker hits in this event = 4 + 94 124.789 899 3 1 0.51237 -0.294008 -114.45 + 94 124.014 896 3 0 0.525747 -0.293085 -115.85 + 94 4.4199 362 10 0 178.236 -107.441 93.7504 + 94 100.266 1515 14 0 -79.1031 123.983 213.777 +Number of tracker digits in this event = 2 +Event: 95 +Number of tracker hits in this event = 3 + 95 81.3012 767 0 0 34.7945 -26.175 -206.151 + 95 19.0989 13 5 0 -167.049 -177.257 -55.8614 + 95 166.784 62 5 1 -167.488 -179.717 -54.85 +Number of tracker digits in this event = 1 +Event: 96 +Number of tracker hits in this event = 9 + 96 146.617 899 3 1 0.453335 0.473613 -114.45 + 96 297.666 898 3 0 0.444171 0.436306 -115.85 + 96 225.197 905 1 1 1.84963 -0.352854 -174.45 + 96 135.035 896 1 0 1.93489 -0.394996 -175.85 + 96 165.394 914 0 1 3.46255 -1.20412 -204.45 + 96 120.588 891 0 0 3.5635 -1.25029 -205.85 + 96 101.734 899 3 0 0.283238 0.462588 -116.01 + 96 148.868 647 0 0 22.061 -50.0646 -206.25 + 96 93.3678 645 0 0 21.8817 -50.4846 -206.045 +Number of tracker digits in this event = 7 +Event: 97 +Number of tracker hits in this event = 8 + 97 180.335 898 3 1 0.280314 -0.627969 -114.45 + 97 121.739 895 3 0 0.289811 -0.643322 -115.85 + 97 111.161 899 2 1 0.473619 -0.905576 -144.45 + 97 128.064 893 2 0 0.487302 -0.929158 -145.85 + 97 183.244 900 1 1 0.756473 -1.45976 -174.45 + 97 117.745 890 1 0 0.76475 -1.4797 -175.85 + 97 114.894 901 0 1 0.975367 -1.88244 -204.45 + 97 122.898 888 0 0 0.983799 -1.89976 -205.85 +Number of tracker digits in this event = 5 +Event: 98 +Number of tracker hits in this event = 25 + 98 181.262 900 3 1 0.689911 0.456327 -114.45 + 98 117.974 899 3 0 0.701957 0.454138 -115.85 + 98 112.779 901 2 1 0.894542 0.353596 -144.45 + 98 155.657 898 2 0 0.910957 0.359329 -145.85 + 98 111.137 903 1 1 1.28171 0.430339 -174.45 + 98 123.829 898 1 0 1.29621 0.433676 -175.85 + 98 311.908 904 0 1 1.55889 0.489218 -204.45 + 98 167.921 899 0 0 1.56119 0.497121 -205.85 + 98 57.0329 905 0 1 1.68005 0.504884 -204.77 + 98 180.437 888 3 1 -2.02189 1.23208 -114.45 + 98 208.089 907 3 0 -0.701151 2.16021 -115.85 + 98 213.918 1012 2 1 23.1508 18.9578 -144.45 + 98 214.385 996 2 0 24.8468 19.9521 -145.85 + 98 260.682 1204 1 1 61.6444 46.3888 -174.45 + 98 203.257 1133 1 0 63.9401 47.3197 -175.85 + 98 126.201 1407 0 1 102.35 60.7049 -204.45 + 98 132.189 1201 0 0 103.38 60.8508 -205.85 + 98 353.02 898 3 0 -0.262929 0.385656 -115.85 + 98 165.313 893 2 1 -0.916022 0.728667 -144.45 + 98 228.437 900 2 0 -0.856962 0.794793 -145.85 + 98 115.322 899 1 1 0.460479 2.03544 -174.45 + 98 147.697 907 1 0 0.589422 2.06732 -175.85 + 98 95.5692 912 0 1 3.10649 2.51323 -204.45 + 98 110.396 908 0 0 3.15648 2.41434 -205.85 + 98 73.491 1330 4 0 -10.2604 86.7108 -86.25 +Number of tracker digits in this event = 17 +Event: 99 +Number of tracker hits in this event = 8 + 99 224.641 867 1 1 -6.11457 0.764054 -174.45 + 99 126.623 900 1 0 -6.20589 0.816127 -175.85 + 99 107.731 854 0 1 -8.71916 1.81326 -204.45 + 99 127.369 904 0 0 -8.64185 1.60248 -205.85 + 99 234.57 865 1 1 -6.45337 0.57422 -174.544 + 99 722.231 889 1 0 -66.1666 -1.77133 -175.85 + 99 198.157 898 2 1 0.262641 0.25 -144.483 + 99 127.807 1175 0 0 31.1657 55.8151 -206.123 +Number of tracker digits in this event = 7 +Run terminated. +Run Summary + Number of events processed : 100 + User=13.84s Real=13.87s Sys=0.01s +/gun/particle proton +/gun/energy 1 GeV +/gun/sourceType 2 +/run/beamOn 100 +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 = 6 + 1 122.41 895 2 1 -0.488004 -0.301103 -144.45 + 1 165.978 896 2 0 -0.496096 -0.301143 -145.85 + 1 198.808 894 1 1 -0.659216 -0.308873 -174.45 + 1 184.345 896 1 0 -0.667245 -0.308732 -175.85 + 1 164.146 894 0 1 -0.836595 -0.304648 -204.45 + 1 121.782 896 0 0 -0.847231 -0.30173 -205.85 +Number of tracker digits in this event = 6 +Event: 2 +Number of tracker hits in this event = 6 + 2 135.941 898 2 1 0.353813 0.79202 -144.45 + 2 131.18 900 2 0 0.367833 0.802273 -145.85 + 2 140.219 899 1 1 0.648932 1.02627 -174.45 + 2 115.022 901 1 0 0.658975 1.03963 -175.85 + 2 120.842 900 0 1 0.84627 1.28162 -204.45 + 2 140.328 903 0 0 0.853297 1.30095 -205.85 +Number of tracker digits in this event = 5 +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 = 4 + 4 157.491 896 1 1 -0.319506 -0.288723 -174.45 + 4 125.142 896 1 0 -0.320331 -0.292515 -175.85 + 4 246.638 896 0 1 -0.342081 -0.36992 -204.45 + 4 122.121 896 0 0 -0.340081 -0.373965 -205.85 +Number of tracker digits in this event = 4 +Event: 5 +Number of tracker hits in this event = 4 + 5 150.958 898 1 1 0.410856 0.274791 -174.45 + 5 146.076 898 1 0 0.412696 0.27744 -175.85 + 5 128.898 898 0 1 0.441612 0.328358 -204.45 + 5 142.19 898 0 0 0.443729 0.337352 -205.85 +Number of tracker digits in this event = 4 +Event: 6 +Number of tracker hits in this event = 4 + 6 111.119 895 1 1 -0.540464 -0.294142 -174.45 + 6 127.33 896 1 0 -0.558793 -0.308733 -175.85 + 6 123.505 893 0 1 -0.943255 -0.643881 -204.45 + 6 128.278 894 0 0 -0.95783 -0.656524 -205.85 +Number of tracker digits in this event = 3 +Event: 7 +Number of tracker hits in this event = 2 + 7 140.258 894 0 1 -0.675428 0.367037 -204.45 + 7 235.182 898 0 0 -0.692687 0.373498 -205.85 +Number of tracker digits in this event = 2 +Event: 8 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 9 +Number of tracker hits in this event = 2 + 9 169.155 896 0 1 -0.350674 -0.32031 -204.45 + 9 216.484 896 0 0 -0.358257 -0.326453 -205.85 +Number of tracker digits in this event = 2 +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 = 8 + 11 46.0117 898 2 0 0.467878 0.25 -146.135 + 11 182.793 899 1 1 0.611207 0.313448 -174.45 + 11 127.808 898 1 0 0.613279 0.313486 -175.85 + 11 151.098 899 0 1 0.646012 0.32402 -204.45 + 11 226.493 898 0 0 0.64603 0.32368 -205.85 + 11 37.2023 893 0 0 27.4636 -1.03024 -206.25 + 11 388.906 892 0 0 27.5062 -1.05496 -206.238 + 11 103.766 891 0 0 27.7446 -1.31486 -206.103 +Number of tracker digits in this event = 5 +Event: 12 +Number of tracker hits in this event = 8 + 12 113.799 896 3 0 -0.520359 -0.251464 -115.85 + 12 141.19 894 2 1 -0.684619 -0.344576 -144.45 + 12 120.212 896 2 0 -0.692213 -0.348848 -145.85 + 12 127.264 894 1 1 -0.831483 -0.449965 -174.45 + 12 233.317 895 1 0 -0.83881 -0.455722 -175.85 + 12 117.997 893 0 1 -1.00246 -0.57656 -204.45 + 12 119.486 895 0 0 -1.01351 -0.583235 -205.85 + 12 243.367 896 1 0 -0.715839 -0.431266 -176.238 +Number of tracker digits in this event = 5 +Event: 13 +Number of tracker hits in this event = 2 + 13 147.259 896 0 1 -0.309051 0.420699 -204.45 + 13 121.709 898 0 0 -0.317289 0.427677 -205.85 +Number of tracker digits in this event = 2 +Event: 14 +Number of tracker hits in this event = 11 + 14 109.78 895 4 1 -0.63494 -0.467706 -84.45 + 14 141.196 895 4 0 -0.673656 -0.48169 -85.85 + 14 118.554 890 3 1 -1.46974 -0.756537 -114.45 + 14 112.702 894 3 0 -1.50713 -0.774353 -115.85 + 14 135.159 886 2 1 -2.27093 -1.14552 -144.45 + 14 251.972 892 2 0 -2.30708 -1.16407 -145.85 + 14 128.197 882 1 1 -3.05127 -1.53657 -174.45 + 14 121.137 890 1 0 -3.09042 -1.55573 -175.85 + 14 117.198 878 0 1 -3.91666 -1.99612 -204.45 + 14 181.259 888 0 0 -3.95727 -2.01937 -205.85 + 14 155.771 398 0 0 -164.154 -100.172 -206.25 +Number of tracker digits in this event = 7 +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 = 6 + 16 173.46 899 2 1 0.649977 0.316793 -144.45 + 16 195.684 898 2 0 0.651752 0.323101 -145.85 + 16 120.77 900 1 1 0.680175 0.446969 -174.45 + 16 180.693 899 1 0 0.683357 0.456912 -175.85 + 16 170.439 900 0 1 0.75344 0.645933 -204.45 + 16 120.673 900 0 0 0.762968 0.657267 -205.85 +Number of tracker digits in this event = 6 +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 = 12 + 18 110.765 892 5 1 -1.16735 -0.660341 -54.45 + 18 217.028 894 5 0 -1.22307 -0.692392 -55.85 + 18 137.987 886 4 1 -2.37826 -1.35108 -84.45 + 18 144.56 891 4 0 -2.43651 -1.38332 -85.85 + 18 157.971 880 3 1 -3.63952 -2.02244 -114.45 + 18 140.806 887 3 0 -3.70044 -2.05212 -115.85 + 18 138.909 873 2 1 -4.95673 -2.66439 -144.45 + 18 121.152 884 2 0 -5.01803 -2.69292 -145.85 + 18 135.238 866 1 1 -6.26828 -3.27199 -174.45 + 18 117.22 881 1 0 -6.32674 -3.29876 -175.85 + 18 131.347 860 0 1 -7.53076 -3.85676 -204.45 + 18 115.896 878 0 0 -7.59347 -3.88608 -205.85 +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 = 0 +Number of tracker digits in this event = 0 +Event: 21 +Number of tracker hits in this event = 6 + 21 150.504 898 2 1 0.281466 -0.276221 -144.45 + 21 143.678 896 2 0 0.296135 -0.290266 -145.85 + 21 161.657 899 1 1 0.597796 -0.573561 -174.45 + 21 128.883 895 1 0 0.614739 -0.584758 -175.85 + 21 151.83 901 0 1 0.949851 -0.787389 -204.45 + 21 124.015 894 0 0 0.961339 -0.795769 -205.85 +Number of tracker digits in this event = 6 +Event: 22 +Number of tracker hits in this event = 8 + 22 118.16 895 3 1 -0.478137 -0.47974 -114.45 + 22 119.291 895 3 0 -0.50827 -0.492392 -115.85 + 22 142.959 892 2 1 -1.12787 -0.739126 -144.45 + 22 145.844 894 2 0 -1.16077 -0.752752 -145.85 + 22 121.484 889 1 1 -1.82275 -1.0283 -174.45 + 22 165.493 893 1 0 -1.9181 -1.03 -175.85 + 22 140.697 878 0 1 -3.88445 -1.05548 -204.45 + 22 185.237 892 0 0 -3.98644 -1.05136 -205.85 +Number of tracker digits in this event = 6 +Event: 23 +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 = 0 +Number of tracker digits in this event = 0 +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 = 0 +Number of tracker digits in this event = 0 +Event: 27 +Number of tracker hits in this event = 2 + 27 129.26 900 0 1 0.816568 -0.315219 -204.45 + 27 147.487 896 0 0 0.818558 -0.323309 -205.85 +Number of tracker digits in this event = 2 +Event: 28 +Number of tracker hits in this event = 2 + 28 163.759 896 0 1 -0.374435 0.277087 -204.45 + 28 120.839 898 0 0 -0.369322 0.276996 -205.85 +Number of tracker digits in this event = 2 +Event: 29 +Number of tracker hits in this event = 2 + 29 115.119 903 1 1 1.38452 -0.318003 -174.45 + 29 135.221 896 1 0 1.40149 -0.310979 -175.85 +Number of tracker digits in this event = 1 +Event: 30 +Number of tracker hits in this event = 9 + 30 145.207 895 1 1 -0.460506 -0.3538 -174.45 + 30 143.529 896 1 0 -0.463175 -0.363558 -175.85 + 30 308.025 895 0 1 -0.519919 -0.573266 -204.45 + 30 167.042 895 0 0 -0.524925 -0.584794 -205.85 + 30 38.9779 843 0 0 43.9229 -10.9052 -206.25 + 30 75.3828 895 5 1 -0.644064 -0.25 -54.7389 + 30 151.871 893 5 1 -0.855726 -0.384133 -54.7184 + 30 90.447 885 5 0 -3.09425 -2.53969 -55.85 + 30 209.313 884 5 0 -3.22906 -2.66198 -55.9629 +Number of tracker digits in this event = 6 +Event: 31 +Number of tracker hits in this event = 6 + 31 121.473 896 2 1 -0.286333 0.4744 -144.45 + 31 111.333 899 2 0 -0.286333 0.478105 -145.85 + 31 111.951 896 1 1 -0.276707 0.552374 -174.45 + 31 123.603 899 1 0 -0.276394 0.554715 -175.85 + 31 176.832 896 0 1 -0.253775 0.605695 -204.45 + 31 132.59 899 0 0 -0.252895 0.60509 -205.85 +Number of tracker digits in this event = 4 +Event: 32 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 33 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 34 +Number of tracker hits in this event = 5 + 34 170.891 896 4 1 -0.278132 -0.25 -84.6017 + 34 7.17668 894 4 1 -0.661319 -0.468809 -84.8254 + 34 182.333 893 4 0 -0.950238 -0.940447 -85.85 + 34 748.937 892 4 0 -1.06488 -1.17985 -86.1564 + 34 228.496 891 4 0 -1.20264 -1.26263 -86.1715 +Number of tracker digits in this event = 4 +Event: 35 +Number of tracker hits in this event = 6 + 35 123.276 898 2 1 0.379841 0.413692 -144.45 + 35 288.557 898 2 0 0.386968 0.41588 -145.85 + 35 119.363 899 1 1 0.537565 0.471299 -174.45 + 35 164.257 899 1 0 0.547855 0.473703 -175.85 + 35 124.442 900 0 1 0.759458 0.50744 -204.45 + 35 114.144 899 0 0 0.771504 0.511946 -205.85 +Number of tracker digits in this event = 4 +Event: 36 +Number of tracker hits in this event = 8 + 36 171.907 896 3 1 -0.424634 0.323507 -114.45 + 36 140.069 898 3 0 -0.429775 0.329368 -115.85 + 36 130.672 895 2 1 -0.53154 0.431581 -144.45 + 36 120.559 898 2 0 -0.53716 0.435546 -145.85 + 36 130.696 894 1 1 -0.662484 0.520168 -174.45 + 36 123.129 899 1 0 -0.666683 0.524555 -175.85 + 36 130.942 894 0 1 -0.760328 0.619748 -204.45 + 36 186.911 899 0 0 -0.764636 0.62934 -205.85 +Number of tracker digits in this event = 8 +Event: 37 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 38 +Number of tracker hits in this event = 11 + 38 125.415 896 4 1 -0.355037 0.319456 -84.45 + 38 181.437 898 4 0 -0.363046 0.32672 -85.85 + 38 123.006 895 3 1 -0.514383 0.482204 -114.45 + 38 126.951 899 3 0 -0.521788 0.486049 -115.85 + 38 212.775 894 2 1 -0.674058 0.553012 -144.45 + 38 187.079 899 2 0 -0.680875 0.554824 -145.85 + 38 248.594 894 1 1 -0.809598 0.595334 -174.45 + 38 139.724 899 1 0 -0.817324 0.59816 -175.85 + 38 138.268 893 0 1 -0.971198 0.655814 -204.45 + 38 148.105 900 0 0 -0.979844 0.656907 -205.85 + 38 20.189 893 1 1 -0.864084 0.448743 -174.478 +Number of tracker digits in this event = 10 +Event: 39 +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 = 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 140.322 896 0 1 -0.295242 0.549218 -204.45 + 43 104.988 899 0 0 -0.300993 0.554475 -205.85 +Number of tracker digits in this event = 1 +Event: 44 +Number of tracker hits in this event = 8 + 44 176.698 896 3 1 -0.443845 0.308898 -114.45 + 44 120.616 898 3 0 -0.451552 0.308743 -115.85 + 44 191.974 895 2 1 -0.609417 0.30023 -144.45 + 44 138.669 898 2 0 -0.619253 0.301187 -145.85 + 44 131.787 894 1 1 -0.811029 0.326264 -174.45 + 44 164.799 898 1 0 -0.824529 0.330527 -175.85 + 44 173.834 892 0 1 -1.1319 0.401057 -204.45 + 44 123.051 898 0 0 -1.14223 0.402934 -205.85 +Number of tracker digits in this event = 8 +Event: 45 +Number of tracker hits in this event = 2 + 45 120.001 896 0 1 -0.424813 -0.291671 -204.45 + 45 146.449 896 0 0 -0.427469 -0.293883 -205.85 +Number of tracker digits in this event = 2 +Event: 46 +Number of tracker hits in this event = 6 + 46 129.965 898 2 1 0.31969 -0.262744 -144.45 + 46 134.706 896 2 0 0.321214 -0.274151 -145.85 + 46 166.09 898 1 1 0.339107 -0.521047 -174.45 + 46 154.38 895 1 0 0.343424 -0.534638 -175.85 + 46 145.078 898 0 1 0.4208 -0.824481 -204.45 + 46 159.541 894 0 0 0.421451 -0.837504 -205.85 +Number of tracker digits in this event = 6 +Event: 47 +Number of tracker hits in this event = 1 + 47 44.4552 891 6 0 0.563773 -1.30727 -25.85 +Number of tracker digits in this event = 0 +Event: 48 +Number of tracker hits in this event = 8 + 48 130.656 895 2 1 -0.467194 0.388561 -144.45 + 48 119.544 898 2 0 -0.477878 0.402808 -145.85 + 48 263.81 894 1 1 -0.662668 0.681367 -174.45 + 48 109.23 900 1 0 -0.672063 0.695558 -175.85 + 48 353.913 893 0 1 -0.865162 0.986923 -204.45 + 48 177.42 901 0 0 -0.872752 1.00292 -205.85 + 48 246.087 894 0 1 -0.734644 1.15041 -204.539 + 48 105.797 895 1 0 -0.72253 -0.452722 -175.85 +Number of tracker digits in this event = 5 +Event: 49 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 50 +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 = 0 +Number of tracker digits in this event = 0 +Event: 52 +Number of tracker hits in this event = 1 + 52 124.661 900 3 0 -0.25 0.786169 -116.187 +Number of tracker digits in this event = 1 +Event: 53 +Number of tracker hits in this event = 3 + 53 49.5437 898 1 0 0.48637 0.25 -176.088 + 53 175.076 899 0 1 0.609648 0.484606 -204.45 + 53 137.267 899 0 0 0.614108 0.494846 -205.85 +Number of tracker digits in this event = 2 +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 = 6 + 55 111.191 896 1 1 -0.412205 0.298883 -174.45 + 55 139.96 898 1 0 -0.411337 0.302554 -175.85 + 55 161.874 896 0 1 -0.389684 0.410457 -204.45 + 55 194.173 898 0 0 -0.391086 0.412297 -205.85 + 55 186.053 1015 4 0 -113.064 23.6801 -86.25 + 55 5.50963 1014 4 0 -113.429 23.6269 -86.2449 +Number of tracker digits in this event = 4 +Event: 56 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +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 = 0 +Number of tracker digits in this event = 0 +Event: 61 +Number of tracker hits in this event = 2 + 61 130.212 898 0 1 0.310723 1.07407 -204.45 + 61 151.045 902 0 0 0.325073 1.09348 -205.85 +Number of tracker digits in this event = 2 +Event: 62 +Number of tracker hits in this event = 6 + 62 121.809 895 2 1 -0.467862 -0.278038 -144.45 + 62 109.367 896 2 0 -0.477668 -0.281484 -145.85 + 62 175.496 894 1 1 -0.707899 -0.343914 -174.45 + 62 206.545 896 1 0 -0.716762 -0.345649 -175.85 + 62 137.798 893 0 1 -0.892134 -0.383037 -204.45 + 62 242.263 896 0 0 -0.899204 -0.381883 -205.85 +Number of tracker digits in this event = 5 +Event: 63 +Number of tracker hits in this event = 2 + 63 155.151 899 0 1 0.477157 0.315265 -204.45 + 63 136.65 898 0 0 0.479263 0.327748 -205.85 +Number of tracker digits in this event = 2 +Event: 64 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 65 +Number of tracker hits in this event = 2 + 65 144.91 896 0 1 -0.293847 1.49714 -204.45 + 65 127.948 904 0 0 -0.299271 1.51469 -205.85 +Number of tracker digits in this event = 2 +Event: 66 +Number of tracker hits in this event = 2 + 66 136.055 896 0 1 -0.263672 1.1127 -204.45 + 66 184.638 902 0 0 -0.270711 1.12582 -205.85 +Number of tracker digits in this event = 2 +Event: 67 +Number of tracker hits in this event = 0 +Number of tracker digits in this event = 0 +Event: 68 +Number of tracker hits in this event = 2 + 68 192.988 898 0 1 0.321905 -1.16118 -204.45 + 68 222.769 892 0 0 0.322386 -1.18044 -205.85 +Number of tracker digits in this event = 2 +Event: 69 +Number of tracker hits in this event = 2 + 69 121.771 896 0 1 -0.268358 -0.687731 -204.45 + 69 126.6 894 0 0 -0.266186 -0.693378 -205.85 +Number of tracker digits in this event = 2 +Event: 70 +Number of tracker hits in this event = 4 + 70 133.831 895 1 1 -0.507156 -0.264535 -174.45 + 70 148.913 896 1 0 -0.511962 -0.275315 -175.85 + 70 277.764 895 0 1 -0.586693 -0.496897 -204.45 + 70 124.702 895 0 0 -0.587502 -0.507144 -205.85 +Number of tracker digits in this event = 4 +Event: 71 +Number of tracker hits in this event = 2 + 71 404.578 900 0 1 0.700988 2.91527 -204.85 + 71 200.325 902 6 0 -0.25 1.13879 -25.8669 +Number of tracker digits in this event = 2 +Event: 72 +Number of tracker hits in this event = 4 + 72 149.699 896 1 1 -0.401792 0.308958 -174.45 + 72 159.692 898 1 0 -0.408602 0.316005 -175.85 + 72 137.568 895 0 1 -0.537054 0.470406 -204.45 + 72 166.196 899 0 0 -0.54522 0.482178 -205.85 +Number of tracker digits in this event = 4 +Event: 73 +Number of tracker hits in this event = 1 + 73 205.628 898 2 0 -1.00995 0.344757 -145.85 +Number of tracker digits in this event = 1 +Event: 74 +Number of tracker hits in this event = 4 + 74 116.978 898 2 1 0.290282 -0.29772 -144.45 + 74 292.437 896 2 0 0.290656 -0.300822 -145.85 + 74 136.353 898 1 1 0.374419 -0.363333 -174.45 + 74 128.061 896 1 0 0.376195 -0.357203 -175.85 +Number of tracker digits in this event = 3 +Event: 75 +Number of tracker hits in this event = 4 + 75 141.769 896 1 1 -0.375844 0.645867 -174.45 + 75 165.392 900 1 0 -0.386102 0.659821 -175.85 + 75 153.766 895 0 1 -0.59794 0.94094 -204.45 + 75 159.019 901 0 0 -0.615751 0.953168 -205.85 +Number of tracker digits in this event = 4 +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 118.015 896 0 1 -0.278143 -0.427058 -204.45 + 77 154.276 896 0 0 -0.286905 -0.426801 -205.85 +Number of tracker digits in this event = 1 +Event: 78 +Number of tracker hits in this event = 6 + 78 110.693 898 2 1 0.283262 0.528515 -144.45 + 78 150.52 899 2 0 0.287123 0.532698 -145.85 + 78 197.515 898 1 1 0.3719 0.631892 -174.45 + 78 114.712 899 1 0 0.383143 0.636693 -175.85 + 78 120.758 899 0 1 0.606854 0.73632 -204.45 + 78 185.467 900 0 0 0.619225 0.746461 -205.85 +Number of tracker digits in this event = 4 +Event: 79 +Number of tracker hits in this event = 7 + 79 158.995 898 2 1 0.258984 -0.359544 -144.45 + 79 147.594 896 2 0 0.268311 -0.361794 -145.85 + 79 181.111 899 1 1 0.460243 -0.411567 -174.45 + 79 158.046 896 1 0 0.473167 -0.409328 -175.85 + 79 153.644 900 0 1 0.713288 -0.363223 -204.45 + 79 131.644 896 0 0 0.719843 -0.365166 -205.85 + 79 45.5041 898 3 0 -0.309792 0.25 -116.109 +Number of tracker digits in this event = 6 +Event: 80 +Number of tracker hits in this event = 6 + 80 125.837 901 2 1 1.00403 -0.271374 -144.45 + 80 109.316 896 2 0 1.01441 -0.276597 -145.85 + 80 143.792 902 1 1 1.21007 -0.401627 -174.45 + 80 181.776 896 1 0 1.21647 -0.400369 -175.85 + 80 112.499 903 0 1 1.37018 -0.386942 -204.45 + 80 156.707 896 0 0 1.37741 -0.39096 -205.85 +Number of tracker digits in this event = 4 +Event: 81 +Number of tracker hits in this event = 6 + 81 155.858 899 2 1 0.635476 -0.317044 -144.45 + 81 217.707 896 2 0 0.642902 -0.31943 -145.85 + 81 219.618 900 1 1 0.801123 -0.361692 -174.45 + 81 160.615 896 1 0 0.810028 -0.363356 -175.85 + 81 121.857 901 0 1 0.986836 -0.414739 -204.45 + 81 169.666 896 0 0 0.993904 -0.421014 -205.85 +Number of tracker digits in this event = 6 +Event: 82 +Number of tracker hits in this event = 6 + 82 188.815 896 2 1 -0.250954 -0.412511 -144.45 + 82 122.365 896 2 0 -0.255949 -0.418027 -145.85 + 82 144.656 896 1 1 -0.345465 -0.510838 -174.45 + 82 120.527 895 1 0 -0.351159 -0.51676 -175.85 + 82 136.143 895 0 1 -0.454811 -0.637739 -204.45 + 82 131.754 895 0 0 -0.460045 -0.645274 -205.85 +Number of tracker digits in this event = 6 +Event: 83 +Number of tracker hits in this event = 4 + 83 126.859 900 1 1 0.757367 0.304742 -174.45 + 83 119.545 898 1 0 0.763269 0.31178 -175.85 + 83 380.044 901 0 1 0.880147 0.470944 -204.45 + 83 122.816 899 0 0 0.886187 0.479906 -205.85 +Number of tracker digits in this event = 3 +Event: 84 +Number of tracker hits in this event = 4 + 84 135.307 895 1 1 -0.627593 -0.287941 -174.45 + 84 176.666 896 1 0 -0.641308 -0.286977 -175.85 + 84 131.568 893 0 1 -0.928181 -0.26817 -204.45 + 84 317.442 896 0 0 -0.94066 -0.26956 -205.85 +Number of tracker digits in this event = 4 +Event: 85 +Number of tracker hits in this event = 6 + 85 131.765 894 2 1 -0.718671 0.25 -144.455 + 85 121.079 898 2 0 -0.722805 0.255931 -145.85 + 85 136.385 894 1 1 -0.809418 0.382708 -174.45 + 85 115.115 898 1 0 -0.811191 0.385835 -175.85 + 85 116.324 894 0 1 -0.847802 0.442741 -204.45 + 85 146.612 898 0 0 -0.849521 0.444347 -205.85 +Number of tracker digits in this event = 4 +Event: 86 +Number of tracker hits in this event = 7 + 86 270.552 896 3 0 0.253036 -0.384182 -115.85 + 86 125.132 899 2 1 0.51068 -0.477975 -144.45 + 86 116.709 895 2 0 0.530469 -0.486547 -145.85 + 86 123.123 901 1 1 0.929466 -0.656364 -174.45 + 86 166.995 894 1 0 0.948982 -0.663646 -175.85 + 86 149.318 903 0 1 1.35381 -0.842527 -204.45 + 86 123.943 893 0 0 1.3745 -0.856456 -205.85 +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 +Event: 89 +Number of tracker hits in this event = 2 + 89 69.5657 890 0 1 -1.61876 0.25 -204.726 + 89 154.282 898 0 0 -1.63268 0.25192 -205.85 +Number of tracker digits in this event = 1 +Event: 90 +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 = 2 + 91 114.615 898 0 1 0.333364 -0.435091 -204.45 + 91 297.788 896 0 0 0.342693 -0.443997 -205.85 +Number of tracker digits in this event = 1 +Event: 92 +Number of tracker hits in this event = 2 + 92 205.675 903 2 0 -2.19764 1.28081 -145.85 + 92 191.013 904 2 0 -2.34361 1.50025 -146.14 +Number of tracker digits in this event = 2 +Event: 93 +Number of tracker hits in this event = 2 + 93 198.662 895 0 1 -0.458594 0.285684 -204.45 + 93 140.451 898 0 0 -0.458088 0.286581 -205.85 +Number of tracker digits in this event = 2 +Event: 94 +Number of tracker hits in this event = 4 + 94 116.433 898 1 1 0.338544 0.366333 -174.45 + 94 113.879 898 1 0 0.349122 0.369522 -175.85 + 94 115.83 899 0 1 0.549367 0.444772 -204.45 + 94 160.384 899 0 0 0.549698 0.45444 -205.85 +Number of tracker digits in this event = 1 +Event: 95 +Number of tracker hits in this event = 8 + 95 141.787 898 3 1 0.291606 -0.299213 -114.45 + 95 165.953 896 3 0 0.298104 -0.309282 -115.85 + 95 150.877 898 2 1 0.420579 -0.504743 -144.45 + 95 122.759 895 2 0 0.425194 -0.518016 -145.85 + 95 117.172 899 1 1 0.524221 -0.788232 -174.45 + 95 157.251 894 1 0 0.526144 -0.801261 -175.85 + 95 120.933 899 0 1 0.558334 -1.07026 -204.45 + 95 123.731 892 0 0 0.560594 -1.08397 -205.85 +Number of tracker digits in this event = 7 +Event: 96 +Number of tracker hits in this event = 4 + 96 371.82 896 1 1 -0.260751 0.5008 -174.45 + 96 218.895 899 1 0 -0.26639 0.512061 -175.85 + 96 121.903 896 0 1 -0.36042 0.733356 -204.45 + 96 186.899 900 0 0 -0.364496 0.743726 -205.85 +Number of tracker digits in this event = 4 +Event: 97 +Number of tracker hits in this event = 10 + 97 256.591 896 3 1 -0.413682 -0.737759 -114.45 + 97 255.998 894 3 0 -0.426339 -0.745526 -115.85 + 97 132.198 894 2 1 -0.689035 -0.911662 -144.45 + 97 118.602 893 2 0 -0.695098 -0.91671 -145.85 + 97 135.407 894 1 1 -0.816918 -1.00332 -174.45 + 97 119.472 893 1 0 -0.824215 -1.00315 -175.85 + 97 114.593 893 0 1 -0.962991 -0.969914 -204.45 + 97 142.032 893 0 0 -0.969907 -0.966612 -205.85 + 97 96.3784 895 4 0 -0.25 -0.453647 -86.0351 + 97 55.5479 896 4 0 -0.255789 -0.449054 -86.0364 +Number of tracker digits in this event = 5 +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 = 2 + 99 110.785 898 0 1 0.2791 0.274497 -204.45 + 99 160.008 898 0 0 0.276065 0.274515 -205.85 +Number of tracker digits in this event = 1 +Run terminated. +Run Summary + Number of events processed : 100 + User=0.81s Real=0.83s Sys=0.02s +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/advanced/gammaray_telescope/gammaraytel.py b/examples/advanced/gammaray_telescope/gammaraytel.py index 6ab5a0ae25..645d24ab3b 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.py +++ b/examples/advanced/gammaray_telescope/gammaraytel.py @@ -1,29 +1,52 @@ -global tree, hm -# Here use the name of the hbook you want to analyze -tree = tf.create("gammaraytel.hbook",1,1,"hbook") -tree.thisown=1 -hm = af.createHistogramFactory(tree) +# Creating a memory-mapped tree + +tree=tf.create() + +# Creating a histogram factory mapped to the tree + +hf=af.createHistogramFactory( tree ) + +# Open an existing HBook file + +treeHBook=tf.create("gammaraytel.hbook", "hbook", 1, 0 ) + +# Mounting the hbook tree under the master memory tree. + +tree.mkdir( "hbook" ) +tree.mount( "/hbook", treeHBook, "/" ) # Retrieve histograms and load them into memory: -hE = tree.findH1D("10") -hPl = tree.findH1D("20") -hXZ = tree.findH2D("30") -hYZ = tree.findH2D("40") + +# Fetching the histograms from hbook + +hE=tree.findH1D( "/hbook/10" ) +hPl=tree.findH1D( "/hbook/20" ) +hXZ=tree.findH2D("/hbook/30") +hYZ=tree.findH2D("/hbook/40") # set plotter to 2*2 zones -pl.createRegions(2,2) - -# ... and plot the histograms -pl.plot(hE ) ; pl.show() ; pl.next() -pl.plot(hPl ) ; pl.show() ; pl.next() -pl.plot(hXZ ) ; pl.show() ; pl.next() -pl.plot(hYZ ) ; pl.show() ; pl.next() - -# get the primary ntuple from the NtupleManager (just a check) -nt1 = tree.findTuple("1") +#pl.createRegions(2,2) +#>>> NOTE! ONLY SINGLE REGION IN THIS VERSION! +# plot the histograms +pr = pl.currentRegion() +pr.plot(hE,"") +pl.refresh() + +wait() + +pr.clear() +pr.plot(hPl,"") +pl.refresh() + +wait() + +del hf +del tree +del treeHBook +exit() diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh index 70e8eafc11..579ac11c6e 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelAnalysis.hh,v 1.11 2002/06/18 18:47:14 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelAnalysis.hh,v 1.12 2002/11/08 14:18:52 pfeiffer Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland @@ -52,13 +52,15 @@ class GammaRayTelAnalysisMessenger; class GammaRayTelDetectorConstruction; -class IAnalysisFactory; -class IHistogramFactory; -class ITree; -class IHistogram1D; -class IHistogram2D; -class ITuple; -class IPlotter; +namespace AIDA { + class IAnalysisFactory; + class IHistogramFactory; + class ITree; + class IHistogram1D; + class IHistogram2D; + class ITuple; + class IPlotter; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -93,23 +95,23 @@ public: private: GammaRayTelAnalysis(int = 0, char** = 0); - void plot1D(IHistogram1D* histo); - void plot2D(IHistogram2D* histo); + void plot1D(AIDA::IHistogram1D* histo); + void plot2D(AIDA::IHistogram2D* histo); void Plot(); private: static GammaRayTelAnalysis* instance; GammaRayTelDetectorConstruction* GammaRayTelDetector; - IAnalysisFactory* analysisFactory; - ITree* tree; - IPlotter* plotter; - ITuple* tuple; + AIDA::IAnalysisFactory* analysisFactory; + AIDA::ITree* tree; + AIDA::IPlotter* plotter; + AIDA::ITuple* tuple; - IHistogram1D* energy; - IHistogram1D* hits; - IHistogram2D* posXZ; - IHistogram2D* posYZ; + AIDA::IHistogram1D* energy; + AIDA::IHistogram1D* hits; + AIDA::IHistogram2D* posXZ; + AIDA::IHistogram2D* posYZ; G4String histo1DDraw; G4String histo1DSave; diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh index 430d828e0a..846f34b1ea 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh index 1e552c50dc..64610263ff 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 396f498685..0c369cad7e 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.3 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 84122f12e0..b07ff7b407 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 c179aba834..fc3de0d9f0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 d87f3cd1d2..b2519aa6c6 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.6 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 bfd327ea35..5045fcfb60 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh index f7e939eede..a8611653e4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 8f10fe20b6..b22b618b2a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 27fbe46506..19f9d34ba4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh index b891663651..74e5d7d5f3 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.4 2001/11/28 10:07:01 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh index d9698aaea8..d4780f3a6c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh index e45a7f8aa3..a93c367986 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPhysicsList.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh index 19e54fe656..aa8229aba4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh index acab6d5fbb..17739a075e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh index f4e6e970d4..b001ffb58a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 e313db5ed7..1a2c6f0384 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 f287efe444..a5e8b3a677 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 b08fa948a7..f64c826681 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh index 6f301ee464..b41f65c2a6 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelVisManager.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/macro1.mac b/examples/advanced/gammaray_telescope/macro1.mac index c3aac92a3e..a0007e9c6b 100644 --- a/examples/advanced/gammaray_telescope/macro1.mac +++ b/examples/advanced/gammaray_telescope/macro1.mac @@ -40,9 +40,7 @@ # Flush visualization /vis/viewer/update - - - - +# run 10 events +/run/beamOn 10 diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc index 9c5cab66ef..18903a14d4 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelAnalysis.cc,v 1.14 2002/06/18 21:15:13 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelAnalysis.cc,v 1.15 2002/11/08 14:18:53 pfeiffer Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -53,21 +53,12 @@ #include "GammaRayTelAnalysisMessenger.hh" #ifdef G4ANALYSIS_USE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +# include #endif GammaRayTelAnalysis* GammaRayTelAnalysis::instance = 0; - + +//-------------------------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv) @@ -88,27 +79,24 @@ GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv) analysisFactory = AIDA_createAnalysisFactory(); if(analysisFactory) { - ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); + AIDA::ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); if(treeFactory) { // Tree in memory : // Create a "tree" associated to an hbook - tree = treeFactory->create("gammaraytel.hbook", false, false,"hbook"); + tree = treeFactory->create("gammaraytel.hbook", "hbook", false, false); if(tree) { // Get a tuple factory : - ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree); + AIDA::ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree); if(tupleFactory) { // Create a tuple : - tuple = tupleFactory->create("tuple","Event info", - "float energy, plane, x, y, z"); + tuple = tupleFactory->create("1","1", "float energy, plane, x, y, z"); assert(tuple); delete tupleFactory; } - - IHistogramFactory* histoFactory = - analysisFactory->createHistogramFactory(*tree); + AIDA::IHistogramFactory* histoFactory = analysisFactory->createHistogramFactory(*tree); if(histoFactory) { // Create histos : int Nplane = GammaRayTelDetector->GetNbOfTKRLayers(); @@ -120,28 +108,28 @@ GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv) // 1D histogram that store the energy deposition of the // particle in the last (number 0) TKR X-plane - energy = histoFactory->create1D("10","Energy deposition in the last X plane (keV)", 100, 50, 200); + energy = histoFactory->createHistogram1D("10","Energy deposition in the last X plane (keV)", 100, 50, 200); // 1D histogram that store the hits distribution along the TKR X-planes - hits = histoFactory->create1D("20","Hits distribution in the TKR X planes",Nplane, 0, Nplane-1); + hits = histoFactory->createHistogram1D("20","Hits distribution in the TKR X planes",Nplane, 0, Nplane-1); // 2D histogram that store the position (mm) of the hits (XZ projection) if (histo2DMode == "strip") - posXZ = histoFactory->create2D("30","Tracker Hits XZ (strip,plane)", + posXZ = histoFactory->createHistogram2D("30","Tracker Hits XZ (strip,plane)", N, 0, N-1, 2*Nplane, 0, Nplane-1); else - posXZ = histoFactory->create2D("30","Tracker Hits XZ (x,z) in mm", + posXZ = histoFactory->createHistogram2D("30","Tracker Hits XZ (x,z) in mm", sizexy/5, -sizexy/2, sizexy/2, sizez/5, -sizez/2, sizez/2); // 2D histogram that store the position (mm) of the hits (YZ projection) if(histo2DMode=="strip") - posYZ = histoFactory->create2D("40","Tracker Hits YZ (strip,plane)", + posYZ = histoFactory->createHistogram2D("40","Tracker Hits YZ (strip,plane)", N, 0, N-1, 2*Nplane, 0, Nplane-1); else - posYZ = histoFactory->create2D("40","Tracker Hits YZ (y,z) in mm", + posYZ = histoFactory->createHistogram2D("40","Tracker Hits YZ (y,z) in mm", sizexy/5, -sizexy/2, sizexy/2, sizez/5, -sizez/2, sizez/2); @@ -152,11 +140,11 @@ GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv) delete treeFactory; // Will not delete the ITree. } - IPlotterFactory* plotterFactory = + AIDA::IPlotterFactory* plotterFactory = analysisFactory->createPlotterFactory(argc,argv); if(plotterFactory) { - plotter = plotterFactory->create(); - if(plotter) { + plotter = plotterFactory->create(); + if(plotter) { plotter->show(); plotter->setParameter("pageTitle","Gamma Ray Tel"); } @@ -240,7 +228,7 @@ void GammaRayTelAnalysis::InsertHits(int nplane) void GammaRayTelAnalysis::setNtuple(float E, float p, float x, float y, float z) { #ifdef G4ANALYSIS_USE - ITuple * ntuple = dynamic_cast ( tree->find("tuple") ); + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("1") ); if(ntuple) { ntuple->fill(tuple->findColumn("energy"),E); ntuple->fill(tuple->findColumn("plane"),p); @@ -261,13 +249,13 @@ void GammaRayTelAnalysis::setNtuple(float E, float p, float x, float y, float z) void GammaRayTelAnalysis::BeginOfRun(G4int n) { #ifdef G4ANALYSIS_USE - /* if(energy) energy->reset(); if(hits) hits->reset(); if(posXZ) posXZ->reset(); if(posYZ) posYZ->reset(); */ + #endif } @@ -279,41 +267,44 @@ void GammaRayTelAnalysis::BeginOfRun(G4int n) void GammaRayTelAnalysis::EndOfRun(G4int n) { #ifdef G4ANALYSIS_USE - if(tree) tree->commit(); - + if(tree) { + tree->commit(); + tree->close(); + } if(plotter) { + // We set one single region for the plotter // We now print the histograms, each one in a separate file if(histo2DSave == "enable") { char name[15]; plotter->createRegions(1,1); sprintf(name,"posxz_%d.ps", n); - plotter->plot(*posXZ); + plotter->currentRegion().plot(*posXZ); plotter->refresh(); - plotter->write(name,"ps"); + //plotter->write(name,"ps"); plotter->createRegions(1,1); sprintf(name,"posyz_%d.ps", n); - plotter->plot(*posYZ); + plotter->currentRegion().plot(*posYZ); plotter->refresh(); - plotter->write(name,"ps"); + //plotter->write(name,"ps"); } if(histo1DSave == "enable") { plotter->createRegions(1,1); char name[15]; sprintf(name,"energy_%d.ps", n); - plotter->plot(*energy); + plotter->currentRegion().plot(*energy); plotter->refresh(); - plotter->write(name,"ps"); + //plotter->write(name,"ps"); plotter->createRegions(1,1); sprintf(name,"hits_%d.ps", n); - plotter->clearRegion(); - plotter->plot(*hits); + //plotter->clearRegion(); + plotter->currentRegion().plot(*hits); plotter->refresh(); - plotter->write(name,"ps"); + //plotter->write(name,"ps"); } } @@ -335,40 +326,22 @@ void GammaRayTelAnalysis::EndOfEvent(G4int flag) // for paper output. if(plotter) { if((histo2DDraw == "enable") && (histo1DDraw == "enable")) { - plotter->createRegions(2,2); - plotter->plot(*posXZ); - plotter->show(); - plotter->next(); - - plotter->plot(*posYZ); - plotter->show(); - plotter->next(); - - plotter->plot(*energy); - plotter->show(); - plotter->next(); - plotter->plot(*hits); - plotter->show(); - + plotter->currentRegion().plot(*posXZ); + plotter->currentRegion().plot(*posYZ); + plotter->currentRegion().plot(*energy); + plotter->currentRegion().plot(*hits); } else if((histo1DDraw == "enable") && (histo2DDraw != "enable")) { - plotter->createRegions(1,2); - plotter->plot(*energy); - plotter->show(); - plotter->next(); - plotter->plot(*hits); + plotter->currentRegion().plot(*energy); + plotter->currentRegion().plot(*hits); } else if((histo1DDraw != "enable") && (histo2DDraw == "enable")) { - plotter->createRegions(1,2); - plotter->plot(*posXZ); - plotter->show(); - plotter->next(); - plotter->plot(*posYZ); + plotter->currentRegion().plot(*posXZ); + plotter->currentRegion().plot(*posYZ); } else { // Nothing to plot. plotter->createRegions(1,1); } plotter->refresh(); } - #endif } diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc index f5ab582883..b539b176a9 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelAnalysisMessenger.cc,v 1.5 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelAnalysisMessenger.cc,v 1.8 2002/12/11 17:13:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -67,7 +67,7 @@ GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* Histo1DDrawCmd->SetParameterName("choice",true); Histo1DDrawCmd->SetDefaultValue("ebable"); Histo1DDrawCmd->SetCandidates("disable enable"); - Histo1DDrawCmd->AvailableForStates(Idle); + Histo1DDrawCmd->AvailableForStates(G4State_Idle); Histo1DSaveCmd = new G4UIcmdWithAString("/analysis/histo1dSave",this); Histo1DSaveCmd->SetGuidance("Enable the saving of the 1d histograms every run."); @@ -75,7 +75,7 @@ GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* Histo1DSaveCmd->SetParameterName("choice",true); Histo1DSaveCmd->SetDefaultValue("enable"); Histo1DSaveCmd->SetCandidates("disable enable"); - Histo1DSaveCmd->AvailableForStates(Idle); + Histo1DSaveCmd->AvailableForStates(G4State_Idle); /* Commands for the 2D histograms (hits positions along the TKR) @@ -100,7 +100,7 @@ GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* Histo2DDrawCmd->SetParameterName("choice",true); Histo2DDrawCmd->SetDefaultValue("enable"); Histo2DDrawCmd->SetCandidates("disable enable"); - Histo2DDrawCmd->AvailableForStates(Idle); + Histo2DDrawCmd->AvailableForStates(G4State_Idle); Histo2DSaveCmd = new G4UIcmdWithAString("/analysis/histo2dSave",this); Histo2DSaveCmd->SetGuidance("Enable the saving of the 2d histograms every run."); @@ -108,7 +108,7 @@ GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* Histo2DSaveCmd->SetParameterName("choice",true); Histo2DSaveCmd->SetDefaultValue("enable"); Histo2DSaveCmd->SetCandidates("disable enable"); - Histo2DSaveCmd->AvailableForStates(Idle); + Histo2DSaveCmd->AvailableForStates(G4State_Idle); Histo2DModeCmd = new G4UIcmdWithAString("/analysis/histo2dMode",this); Histo2DModeCmd->SetGuidance("Select the mode for the 2d histograms."); @@ -118,7 +118,7 @@ GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* Histo2DModeCmd->SetParameterName("choice",true); Histo2DModeCmd->SetDefaultValue("strip"); Histo2DModeCmd->SetCandidates("position strip"); - Histo2DModeCmd->AvailableForStates(Idle); + Histo2DModeCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc index e437c51730..62e413820a 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.2 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 21c0a8e797..4b24acd6b8 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.4 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 770a0a920a..96f2f05d87 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.2 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 092e55e791..0cf0d284fd 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.4 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 7bb855556b..bf03978d5a 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorConstruction.cc,v 1.9 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc index 25483e7aee..893d9497a8 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelDetectorMessenger.cc,v 1.4 2001/07/11 09:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelDetectorMessenger.cc,v 1.7 2002/12/11 17:13:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -57,7 +57,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo ConverterMaterCmd = new G4UIcmdWithAString("/payload/setConvMat",this); ConverterMaterCmd->SetGuidance("Select Material of the Converter."); ConverterMaterCmd->SetParameterName("choice",false); - ConverterMaterCmd->AvailableForStates(Idle); + ConverterMaterCmd->AvailableForStates(G4State_Idle); // converter thickness command @@ -67,7 +67,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo ConverterThickCmd->SetParameterName("Size",false); ConverterThickCmd->SetRange("Size>=0."); ConverterThickCmd->SetUnitCategory("Length"); - ConverterThickCmd->AvailableForStates(Idle); + ConverterThickCmd->AvailableForStates(G4State_Idle); // tracker silicon thickness command @@ -77,7 +77,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo SiliconThickCmd->SetParameterName("Size",false); SiliconThickCmd->SetRange("Size>=0."); SiliconThickCmd->SetUnitCategory("Length"); - SiliconThickCmd->AvailableForStates(Idle); + SiliconThickCmd->AvailableForStates(G4State_Idle); // tracker silicon pitch command @@ -87,7 +87,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo SiliconPitchCmd->SetParameterName("Size",false); SiliconPitchCmd->SetRange("Size>=0."); SiliconPitchCmd->SetUnitCategory("Length"); - SiliconPitchCmd->AvailableForStates(Idle); + SiliconPitchCmd->AvailableForStates(G4State_Idle); // tracker silicon tile size command @@ -97,7 +97,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo SiliconTileXYCmd->SetParameterName("Size",false); SiliconTileXYCmd->SetRange("Size>=0."); SiliconTileXYCmd->SetUnitCategory("Length"); - SiliconTileXYCmd->AvailableForStates(Idle); + SiliconTileXYCmd->AvailableForStates(G4State_Idle); // tracker number of silicon tiles @@ -105,7 +105,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo NbSiTilesCmd->SetGuidance("Set number of Si Tiles."); NbSiTilesCmd->SetParameterName("NbSiTiles",false); NbSiTilesCmd->SetRange("NbSiTiles>0 && NbSiTiles<100"); - NbSiTilesCmd->AvailableForStates(Idle); + NbSiTilesCmd->AvailableForStates(G4State_Idle); // tracker number of silicon layers @@ -113,7 +113,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo NbTKRLayersCmd->SetGuidance("Set number of TKR Layers."); NbTKRLayersCmd->SetParameterName("NbTKRLayers",false); NbTKRLayersCmd->SetRange("NbTKRLayers>0 && NbTKRLayers<30"); - NbTKRLayersCmd->AvailableForStates(Idle); + NbTKRLayersCmd->AvailableForStates(G4State_Idle); // tracker layer distance @@ -123,7 +123,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo LayerDistanceCmd->SetParameterName("Size",false); LayerDistanceCmd->SetRange("Size>=0."); LayerDistanceCmd->SetUnitCategory("Length"); - LayerDistanceCmd->AvailableForStates(Idle); + LayerDistanceCmd->AvailableForStates(G4State_Idle); // tracker views distance @@ -133,7 +133,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo ViewsDistanceCmd->SetParameterName("Size",false); ViewsDistanceCmd->SetRange("Size>=0."); ViewsDistanceCmd->SetUnitCategory("Length"); - ViewsDistanceCmd->AvailableForStates(Idle); + ViewsDistanceCmd->AvailableForStates(G4State_Idle); // calorimeter detector thickness @@ -143,7 +143,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo CALThickCmd->SetParameterName("Size",false); CALThickCmd->SetRange("Size>=0."); CALThickCmd->SetUnitCategory("Length"); - CALThickCmd->AvailableForStates(Idle); + CALThickCmd->AvailableForStates(G4State_Idle); // number calorimeter detectors @@ -151,7 +151,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo NbCALBarsCmd->SetGuidance("Set number of CsI Bars."); NbCALBarsCmd->SetParameterName("NbSiTiles",false); NbCALBarsCmd->SetRange("NbSiTiles>0 && NbSiTiles<100"); - NbCALBarsCmd->AvailableForStates(Idle); + NbCALBarsCmd->AvailableForStates(G4State_Idle); // number calorimeter layers @@ -159,7 +159,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo NbCALLayersCmd->SetGuidance("Set number of CAL Layers."); NbCALLayersCmd->SetParameterName("NbCALLayers",false); NbCALLayersCmd->SetRange("NbCALLayers>0 && NbCALLayers<16"); - NbCALLayersCmd->AvailableForStates(Idle); + NbCALLayersCmd->AvailableForStates(G4State_Idle); // calorimeter detector thickness @@ -169,7 +169,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo ACDThickCmd->SetParameterName("Size",false); ACDThickCmd->SetRange("Size>=0."); ACDThickCmd->SetUnitCategory("Length"); - ACDThickCmd->AvailableForStates(Idle); + ACDThickCmd->AvailableForStates(G4State_Idle); // update Payload @@ -177,7 +177,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo UpdateCmd->SetGuidance("Update payload geometry."); UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); UpdateCmd->SetGuidance("if you changed geometrical value(s)."); - UpdateCmd->AvailableForStates(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); // magnetic field @@ -186,7 +186,7 @@ GammaRayTelDetectorMessenger::GammaRayTelDetectorMessenger(GammaRayTelDetectorCo MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false); MagFieldCmd->SetUnitCategory("Magnetic flux density"); - MagFieldCmd->AvailableForStates(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc index 22e1d33f39..cd5f7508db 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.2 2001/12/13 13:44:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 f3642d778c..e244d972ef 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.3 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 2fe9906d4d..145333488f 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelDigitizerMessenger.cc,v 1.1 2001/11/29 09:34:17 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelDigitizerMessenger.cc,v 1.4 2002/12/11 17:13:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -53,7 +53,7 @@ GammaRayTelDigitizerMessenger::GammaRayTelDigitizerMessenger ThresholdCmd->SetDefaultValue((G4double)20.*keV); ThresholdCmd->SetRange("Threshold >=0."); ThresholdCmd->SetUnitCategory("Energy"); - ThresholdCmd->AvailableForStates(PreInit,Idle); + ThresholdCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc index 7d3c48e97a..09f986f769 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelEventAction.cc,v 1.14 2002/06/18 18:45:42 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelEventAction.cc,v 1.15 2002/11/14 10:55:28 flongo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -66,7 +66,9 @@ // This file is a global variable in which we store energy deposition per hit // and other relevant information +#ifdef G4STORE_DATA extern G4std::ofstream outFile; +#endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -153,14 +155,24 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt) NPlane = (*THC)[i]->GetNSilPlane(); IsX = (*THC)[i]->GetPlaneType(); +#ifdef G4STORE_DATA outFile << G4std::setw(7) << event_id << " " << ESil/keV << " " << NStrip << " " << NPlane << " " << IsX << " " << (*THC)[i]->GetPos().x()/mm <<" "<< (*THC)[i]->GetPos().y()/mm <<" "<< (*THC)[i]->GetPos().z()/mm <<" "<< - G4endl; - + G4endl; +#else + G4cout << G4std::setw(7) << event_id << " " << + ESil/keV << " " << NStrip << + " " << NPlane << " " << IsX << " " << + (*THC)[i]->GetPos().x()/mm <<" "<< + (*THC)[i]->GetPos().y()/mm <<" "<< + (*THC)[i]->GetPos().z()/mm <<" "<< + G4endl; +#endif + #ifdef G4ANALYSIS_USE // Here we fill the histograms of the Analysis manager @@ -222,8 +234,8 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt) NPlane = (*DC)[i]->GetPlaneNumber(); IsX = (*DC)[i]->GetPlaneType(); - outFile << G4std::setw(7) << event_id << " " << NStrip << - " " << NPlane << " " << IsX << " " << G4endl; + // outFile << G4std::setw(7) << event_id << " " << NStrip << + // " " << NPlane << " " << IsX << " " << G4endl; } } diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc index a9d6affb06..2b67c82ac3 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.3 2001/07/11 09:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc index 0ebac2c9a9..907cdfd9d5 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.6 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc index 0ae2f78c54..aed93e1c0b 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.3 2001/07/11 09:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.6 2002/12/11 17:13:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -55,27 +55,27 @@ GammaRayTelPrimaryGeneratorMessenger::GammaRayTelPrimaryGeneratorMessenger RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("on"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); SourceTypeCmd = new G4UIcmdWithAnInteger("/gun/sourceType",this); SourceTypeCmd->SetGuidance("Select the type of incident flux."); SourceTypeCmd->SetGuidance(" Choice : 0(default), 1(isotropic), 2(wide parallel beam)"); SourceTypeCmd->SetParameterName("choice",true); SourceTypeCmd->SetDefaultValue((G4int)0); - SourceTypeCmd->AvailableForStates(PreInit,Idle); + SourceTypeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); VertexRadiusCmd = new G4UIcmdWithADoubleAndUnit("/gun/vertexRadius",this); VertexRadiusCmd->SetGuidance("Radius (and unit) of sphere for vertices of incident flux."); VertexRadiusCmd->SetParameterName("choice",true); VertexRadiusCmd->SetDefaultValue((G4double)1.*cm); - VertexRadiusCmd->AvailableForStates(PreInit,Idle); + VertexRadiusCmd->AvailableForStates(G4State_PreInit,G4State_Idle); SpectrumTypeCmd = new G4UIcmdWithAnInteger("/gun/spectrumType",this); SpectrumTypeCmd->SetGuidance("Select the type of incident spectrum."); SpectrumTypeCmd->SetGuidance(" Choice : 0(default), 1(), 2(E^{-gamma}), 3()"); SpectrumTypeCmd->SetParameterName("choice",true); SpectrumTypeCmd->SetDefaultValue((G4int)0); - SpectrumTypeCmd->AvailableForStates(PreInit,Idle); + SpectrumTypeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc index 269322ae1f..3968db028e 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelRunAction.cc,v 1.7 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelRunAction.cc,v 1.8 2002/11/14 10:55:17 flongo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -71,8 +71,11 @@ void GammaRayTelRunAction::BeginOfRunAction(const G4Run* aRun) char name[15]; // Open the file for the tracks of this run + +#ifdef G4STORE_DATA sprintf(name,"Tracks_%d.dat", aRun->GetRunID()); outFile.open(name); +#endif // Prepare the visualization if (G4VVisManager::GetConcreteInstance()) @@ -98,7 +101,9 @@ void GammaRayTelRunAction::EndOfRunAction(const G4Run* aRun) } // Close the file with the hits information +#ifdef G4STORE_DATA outFile.close(); +#endif // If analysis is used, print out the histograms #ifdef G4ANALYSIS_USE diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc index a3626e7777..6b3be0949a 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.2 2001/07/11 09:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 e838692124..2937047365 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc index d448aede9d..4c4bae7682 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.6 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 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 old mode 100644 new mode 100755 index 0e114c784a..ab5585b474 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc @@ -22,8 +22,8 @@ // // -// $Id: GammaRayTelVisManager.cc,v 1.6 2001/11/23 17:39:04 santin Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GammaRayTelVisManager.cc,v 1.7 2002/11/13 19:17:13 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -45,6 +45,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" //#include "G4HepRepFile.hh" +//#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -101,6 +102,7 @@ void GammaRayTelVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); // RegisterGraphicsSystem (new G4HepRepFile); + // RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/biasing/B07/GNUmakefile b/examples/advanced/lAr_calorimeter/GNUmakefile similarity index 50% rename from examples/extended/biasing/B07/GNUmakefile rename to examples/advanced/lAr_calorimeter/GNUmakefile index 67ad1bf7f6..b3c41488fa 100644 --- a/examples/extended/biasing/B07/GNUmakefile +++ b/examples/advanced/lAr_calorimeter/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.1 2002/03/27 16:17:44 dressel Exp $ +# $Id: GNUmakefile,v 1.3 2002/11/08 13:32:16 ahoward Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- -name := exampleB07 +name := lArCal G4TARGET := $(name) G4EXLIB := true @@ -11,8 +11,24 @@ ifndef G4INSTALL G4INSTALL = ../../.. endif +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + + +include $(G4INSTALL)/config/architecture.gmk + +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` +endif + .PHONY: all all: lib bin -CPPFLAGS += include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* + diff --git a/examples/advanced/lAr_calorimeter/History b/examples/advanced/lAr_calorimeter/History new file mode 100644 index 0000000000..55416921fc --- /dev/null +++ b/examples/advanced/lAr_calorimeter/History @@ -0,0 +1,17 @@ +------------------------------------------------------------------- +$Id: History,v 1.2 2002/12/06 18:32:24 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - Liquid Argon calorimeter example + ========================================================= + + Example History file + --------------------- + +06.12.2002 - G.Cosmo (lAr_calorimeter-V04-01-03) +- Migrated messenger to new G4ApplicationState. + +30.09.2002 - MGP +- Created directory + diff --git a/examples/advanced/lAr_calorimeter/README b/examples/advanced/lAr_calorimeter/README new file mode 100644 index 0000000000..c22b1b7560 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/README @@ -0,0 +1,133 @@ + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + lArCal + -------- + + +This example is intended to simulate the Liquid Argon Calorimeter +of the ATLAS Detector at LHC. + +1. GEOMETRY DEFINITION +------------------------ + +The liquid Argon calorimeter consists of two modules; an electromagnetic +and a hadronic one whose geometry parameters are defined in +FCALEMModuleParameters.input and FCALHadModuleParameters.input files. +It contains a FCALTestbemSetup class whose geometry is given by +FCALTestbeamSetupParameters.input. See these files for details concerning to +radius, lenght and angles of the different components. + + +2. AN EVENT : THE PRIMARY GENERATOR +------------------------------------ + + The primary kinematic consists of a single particle which hits the + geometry perpendicular to the input face. The FCALPrimaryGeneratorAction + class gives the particle and its energy (by default it is an electron of + 80 GeV). Theses parameters can be changed in commands of ParticleGun class + inside the macros given in this example. + + The subdirectory data-tracks contains the kinematic files + of the particles for different energies (20 GeV, 40 GeV, 60 GeV, 80 GeV, + 120 GeV and 200 GeV). + The information given inside these files are the X, Y, Z and cosX, + cosY, cosZ variables for each event. + + A RUN is a set of events. + + +3. VISUALIZATION +------------------ + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the command + > /control/execute vis.mac + + The detector has a default view which is a transversal view of the geometry. + + The tracks are drawn at the end of event, and erased at the end of run. + Optionally the way of drawing the particles can be changed in the + TBEVentActionMessenger class. + + + 4. PHYSICS DEMO + ----------------- + + The particle's type and the physic processes which will be available + in this example are set in FCALPhysicsList class. + + In addition a build-in interactive command (/process/inactivate proname) + allows to activate/inactivate the processes one by one. + + The threshold for producing secondaries can be changed. + eg: /run/particle/setCut 100 micrometer + /run/initialize + + + 5. HOW TO START ? + ----------------- + + - compile and link to generate an executable + % cd geant4/examples/advanced/lAr_calorimeter/lArcal + % gmake + + - execute the program in 'batch' mode from macro files + % lArcal prerunlAr.mac + + - execute Test in 'interactive mode' with visualization + % lArcal + .... + + Idle> type your commands + .... + + Idle> exit + +6. HISTOGRAMS +-------------- + + lArcal produces 4 histograms (saved as fcal.paw) which illustrate + the final state of the most important variables of the example: + + Histo1 --> Number of tracks out of World + Histo2 --> Number of secondary particles + Histo3 --> Electromagnetic Energy deposit in the EMModule + Histo4 --> Hadronic Energy deposit in the HadModule + + The example generates 3 ntuples too which contains the same information + than the histograms. + + See their definitions in FCALRunAction.cc + + Note that histograms are disabled via the flag G4ANALYSIS_USE in GNUmakefile. + + + 7. Using the Anaphe implementation of the AIDA 3.0 histograms: + --------------------------------------------------------------- + + In order to use the new Anaphe implementation of the AIDA 3.0 interfaces, + prepare some environment variables by source-ing one of the following + startup scripts. + + # This example has been developed and tested with the gcc-2.95.2 compiler: + ---------- + + o Set up the environment variable: G4ANALYSIS_USE + o setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat72/gcc-2.95.2/5.0.2/bin + | + | + (Hier your system must be specified; + if it is redhat61 or redhat73... this + link has to be changed to the + corresponding system.) + + o source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/install/sharedstart.csh or .sh + o ln -s /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/scripts/* ~/bin/. + (This has to be made only one) + + After this, you will have access to the 'aida-config' command which + is used in the GNUmakefile. + diff --git a/examples/advanced/lAr_calorimeter/data-tracks/tracks-120GeV.dat b/examples/advanced/lAr_calorimeter/data-tracks/tracks-120GeV.dat new file mode 100644 index 0000000000..40a30a9d67 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/data-tracks/tracks-120GeV.dat @@ -0,0 +1 @@ + 1 0.86008890000E+00 -0.37157550000E+00 0.32740000000E+04 0.12683240000E+02 0.92830260000E+01 NaN 2 0.11295210000E+01 -0.10982180000E+01 0.32740000000E+04 0.46707763000E-03 -0.23536943000E-03 0.99999986322E+00 3 -0.14041200000E+01 -0.15569190000E+01 0.32740000000E+04 -0.17790307000E-03 0.12093694000E-03 0.99999997686E+00 4 0.12086540000E+01 0.33866990000E+00 0.32740000000E+04 0.38476315000E-03 0.12129710000E-03 0.99999991862E+00 5 0.82538960000E+00 -0.58731300000E+00 0.32740000000E+04 -0.86496284000E-05 -0.23791366000E-03 0.99999997166E+00 6 -0.59168330000E+00 0.10630150000E+01 0.32740000000E+04 -0.28758583000E-03 0.15014333000E-03 0.99999994738E+00 7 0.23658060000E+00 0.66729310000E-01 0.32740000000E+04 -0.11134973000E-03 -0.60494607000E-04 0.99999999197E+00 8 0.29885410000E+00 0.55604391000E-02 0.32740000000E+04 -0.65705477000E-04 -0.67336719000E-05 0.99999999782E+00 9 0.96608820000E+00 0.77787390000E+00 0.32740000000E+04 0.21009620000E-03 0.25484635000E-03 0.99999994546E+00 10 -0.46046040000E-01 -0.22875670000E+00 0.32740000000E+04 -0.19259860000E-03 -0.13581640000E-03 0.99999997223E+00 11 0.19732750000E+00 -0.15458420000E+00 0.32740000000E+04 -0.17637233000E-03 0.59523252000E-04 0.99999998267E+00 12 0.19732750000E+00 -0.15458420000E+00 0.32740000000E+04 -0.17637233000E-03 0.59523252000E-04 0.99999998267E+00 13 0.10465010000E+01 0.25330710000E-01 0.32740000000E+04 0.36301668000E-03 -0.12497480000E-03 0.99999992630E+00 14 0.10398070000E+01 0.11050890000E+01 0.32740000000E+04 0.36574900000E-03 0.24477392000E-03 0.99999990316E+00 15 -0.48985110000E+00 -0.63975600000E+00 0.32740000000E+04 -0.51736122000E-03 -0.15775455000E-03 0.99999985373E+00 16 0.43677700000E+00 -0.56681080000E+00 0.32740000000E+04 -0.89187793000E-04 -0.15375145000E-03 0.99999998420E+00 17 0.90599540000E+00 0.41422270000E+00 0.32740000000E+04 0.27946089000E-03 0.43120566000E-04 0.99999996002E+00 18 0.73579090000E+00 -0.48821050000E+00 0.32740000000E+04 0.10084744000E-03 -0.18828052000E-03 0.99999997719E+00 19 0.77569650000E+00 -0.31973520000E+00 0.32740000000E+04 0.21637080000E-03 -0.12478388000E-03 0.99999996881E+00 20 -0.14033450000E+01 -0.33430650000E+00 0.32740000000E+04 0.62112442000E-04 -0.99890029000E-04 0.99999999308E+00 21 0.13814140000E+01 -0.19715260000E+01 0.32740000000E+04 0.60194067000E-03 -0.19495246000E-03 0.99999979983E+00 22 0.13814140000E+01 -0.19715260000E+01 0.32740000000E+04 0.60194067000E-03 -0.19495246000E-03 0.99999979983E+00 23 0.11040270000E+01 0.44141420000E+00 0.32740000000E+04 0.38434894000E-03 0.88776767000E-04 0.99999992220E+00 24 -0.13180740000E+00 0.15831400000E+01 0.32740000000E+04 -0.25613041000E-03 0.41006037000E-03 0.99999988312E+00 25 0.68366050000E-01 -0.11736080000E+01 0.32740000000E+04 -0.12374052000E-03 -0.32794051000E-03 0.99999993857E+00 26 0.92174680000E+00 -0.69091120000E-01 0.32740000000E+04 0.25952584000E-03 -0.11039516000E-04 0.99999996626E+00 27 0.10461150000E+01 0.70015380000E+00 0.32740000000E+04 0.38143632000E-03 0.14187911000E-03 0.99999991719E+00 28 0.81603980000E+00 0.16405580000E+01 0.32740000000E+04 0.24562731000E-03 0.33125491000E-03 0.99999991497E+00 29 0.81603980000E+00 0.16405580000E+01 0.32740000000E+04 0.24562731000E-03 0.33125491000E-03 0.99999991497E+00 30 -0.95700140000E+00 0.51474150000E+00 0.32740000000E+04 -0.77133166000E-03 0.19417136000E-03 0.99999968367E+00 31 -0.11602540000E+00 -0.69011280000E+00 0.32740000000E+04 -0.41686036000E-03 -0.84979038000E-04 0.99999990950E+00 32 0.81160850000E+00 0.13222150000E+01 0.32740000000E+04 0.27439912000E-03 0.33363630000E-03 0.99999990670E+00 33 0.11268810000E+01 -0.37011190000E+00 0.32740000000E+04 0.48930291000E-03 -0.84179570000E-04 0.99999987675E+00 34 0.11159260000E+01 -0.36328090000E+00 0.32740000000E+04 0.35114487000E-03 -0.18543495000E-03 0.99999992116E+00 35 0.40786120000E+00 -0.94366690000E+00 0.32740000000E+04 -0.15904547000E-04 -0.26319028000E-03 0.99999996524E+00 36 0.46452620000E+00 -0.37669420000E+00 0.32740000000E+04 0.17066681000E-04 -0.16992226000E-03 0.99999998542E+00 37 0.20325910000E+00 0.22537490000E+01 0.32740000000E+04 -0.19542324000E-03 -0.16072749000E-03 0.99999996799E+00 38 0.98740720000E+00 -0.31443890000E+00 0.32740000000E+04 0.33070843000E-03 -0.61294348000E-04 0.99999994344E+00 39 0.39640230000E+00 -0.76336410000E+00 0.32740000000E+04 0.76055047000E-04 -0.28960136000E-03 0.99999995517E+00 40 0.81857940000E+00 0.14602880000E+01 0.32740000000E+04 0.20688988000E-03 0.38513631000E-03 0.99999990443E+00 41 0.92518910000E+00 0.20065860000E+01 0.32740000000E+04 0.25187733000E-03 0.68432244000E-03 0.99999973413E+00 42 -0.22514750000E+00 -0.41276010000E+00 0.32740000000E+04 -0.43786975000E-03 -0.27160256000E-03 0.99999986725E+00 43 0.11141290000E+01 -0.27836220000E+00 0.32740000000E+04 0.48055916000E-03 -0.63456806000E-04 0.99999988252E+00 44 0.48984140000E+00 0.57741300000E+00 0.32740000000E+04 0.65023705000E-04 0.15467886000E-03 0.99999998592E+00 45 -0.67337300000E+00 0.26011030000E+01 0.32740000000E+04 -0.72047010000E-05 0.51255769000E-03 0.99999986862E+00 46 -0.89969250000E-01 -0.45705690000E+00 0.32740000000E+04 -0.22698274000E-03 -0.10566975000E-03 0.99999996866E+00 47 -0.12251240000E+00 0.59893720000E+00 0.32740000000E+04 -0.19498041000E-03 0.14300324000E-03 0.99999997077E+00 48 0.86736430000E+00 0.64164480000E+00 0.32740000000E+04 0.18493347000E-03 0.14685364000E-03 0.99999997212E+00 49 0.73331630000E+00 -0.28489290000E+00 0.32740000000E+04 0.25573280000E-03 -0.81224636000E-04 0.99999996400E+00 50 -0.20488480000E+00 0.98224370000E-01 0.32740000000E+04 -0.34063676000E-03 0.27274786000E-04 0.99999994161E+00 51 0.10615970000E+01 -0.17958370000E+01 0.32740000000E+04 0.29668593000E-03 -0.51852094000E-03 0.99999982156E+00 52 0.12023310000E+01 -0.92816700000E-01 0.32740000000E+04 0.32895690000E-03 -0.29544562000E-04 0.99999994546E+00 53 0.67508270000E+00 0.51816570000E+00 0.32740000000E+04 0.22118118000E-03 0.16618683000E-03 0.99999996173E+00 54 -0.11712630000E+01 0.15346240000E+01 0.32740000000E+04 -0.90141670000E-03 0.25469193000E-03 0.99999956129E+00 55 -0.15428720000E+00 -0.33980150000E+00 0.32740000000E+04 -0.12345811000E-03 -0.88789122000E-04 0.99999998844E+00 56 -0.14662360000E+00 0.18106430000E+01 0.32740000000E+04 -0.55494509000E-03 -0.11354250000E-03 0.99999983957E+00 57 0.46823100000E+00 -0.20094990000E+00 0.32740000000E+04 0.14540591000E-04 -0.63790831000E-04 0.99999999786E+00 58 0.15020990000E-01 -0.10943130000E+01 0.32740000000E+04 -0.14150509000E-03 -0.16697909000E-03 0.99999997605E+00 59 -0.63048490000E+00 -0.91663780000E+00 0.32740000000E+04 -0.48516309000E-03 -0.34325349000E-03 0.99999982340E+00 60 0.11946280000E+01 0.60431970000E+00 0.32740000000E+04 0.43189991000E-03 0.17782686000E-03 0.99999989092E+00 61 0.10545260000E+01 0.26402220000E+00 0.32740000000E+04 0.34704094000E-03 0.20050886000E-04 0.99999993958E+00 62 0.24282210000E+00 -0.39503400000E+00 0.32740000000E+04 -0.29465466000E-04 -0.75151038000E-04 0.99999999674E+00 63 0.94926640000E+00 -0.32787340000E+00 0.32740000000E+04 0.29253855000E-03 -0.13073644000E-03 0.99999994866E+00 64 -0.14711130000E+00 -0.46964210000E+00 0.32740000000E+04 -0.22710278000E-03 -0.13432941000E-03 0.99999996519E+00 65 0.13310150000E+01 0.77905860000E+00 0.32740000000E+04 0.13692634000E-02 0.16095091000E-03 0.99999904961E+00 66 0.83871640000E+00 -0.24618760000E+00 0.32740000000E+04 -0.79696218000E-03 -0.11508905000E-02 0.99999902015E+00 67 0.86953810000E-01 0.37598050000E+00 0.32740000000E+04 -0.55818405000E-03 0.48515893000E-03 0.99999972653E+00 68 0.86953810000E-01 0.37598050000E+00 0.32740000000E+04 -0.55818405000E-03 0.48515893000E-03 0.99999972653E+00 69 0.11619940000E+01 0.16793489000E-02 0.32740000000E+04 0.35125864000E-03 -0.12984194000E-03 0.99999992988E+00 70 -0.20825660000E+00 0.10267270000E+00 0.32740000000E+04 0.10228627000E-03 -0.79365374000E-04 0.99999999162E+00 71 0.35455410000E+00 0.31108070000E+00 0.32740000000E+04 0.14790028000E-03 0.10155317000E-03 0.99999998391E+00 72 -0.12201600000E+01 0.65005170000E-01 0.32740000000E+04 -0.12489508000E-02 -0.65632848000E-04 0.99999921791E+00 73 0.51269460000E+00 0.23940290000E+00 0.32740000000E+04 0.26577941000E-03 0.59225480000E-04 0.99999996293E+00 74 0.51269460000E+00 0.23940290000E+00 0.32740000000E+04 0.26577941000E-03 0.59225480000E-04 0.99999996293E+00 75 0.15192620000E+00 -0.89023490000E+00 0.32740000000E+04 -0.99027246000E-04 -0.12714221000E-03 0.99999998701E+00 76 0.95294640000E+00 -0.43105850000E+00 0.32740000000E+04 0.29741644000E-03 -0.12933261000E-03 0.99999994741E+00 77 0.64925150000E+00 -0.79371810000E+00 0.32740000000E+04 -0.17992983000E-04 -0.49935654000E-03 0.99999987516E+00 78 0.12695300000E+01 0.14767370000E+00 0.32740000000E+04 0.41473948000E-03 0.11984313000E-04 0.99999991392E+00 79 0.28146690000E+00 0.82017600000E+00 0.32740000000E+04 -0.15117494000E-03 0.23403681000E-03 0.99999996119E+00 80 -0.42272660000E+00 0.15259430000E+00 0.32740000000E+04 -0.53566584000E-03 0.80706006000E-04 0.99999985327E+00 81 0.87527120000E+00 0.41542530000E+00 0.32740000000E+04 0.21639711000E-03 0.93630886000E-04 0.99999997220E+00 82 0.38261080000E-01 0.25653450000E+01 0.32740000000E+04 0.32132531000E-04 0.39358559000E-03 0.99999992203E+00 83 0.62453400000E+00 0.90532260000E+00 0.32740000000E+04 0.14961530000E-03 0.24718427000E-03 0.99999995826E+00 84 0.16658270000E+01 0.68993150000E+00 0.32740000000E+04 -0.10966525000E-03 0.59573189000E-03 0.99999981654E+00 85 0.16658270000E+01 0.68993150000E+00 0.32740000000E+04 -0.10966525000E-03 0.59573189000E-03 0.99999981654E+00 86 0.11557170000E+01 0.26623640000E+01 0.32740000000E+04 -0.26304487000E-03 0.11415724000E-03 0.99999995889E+00 87 0.63669780000E+00 0.72580500000E+00 0.32740000000E+04 0.85572225000E-04 0.16400933000E-03 0.99999998289E+00 88 0.64267930000E+00 -0.53192440000E+00 0.32740000000E+04 0.44867375000E-04 -0.14133047000E-03 0.99999998901E+00 89 0.34333820000E+00 0.30546050000E+01 0.32740000000E+04 0.16167342000E-03 0.36953689000E-03 0.99999991865E+00 90 0.55013090000E+00 -0.73508740000E+00 0.32740000000E+04 0.11619318000E-03 -0.19258889000E-03 0.99999997470E+00 91 0.18300220000E-01 -0.76887470000E+00 0.32740000000E+04 -0.17829375000E-03 -0.20197808000E-03 0.99999996371E+00 92 0.10308330000E+01 -0.22028260000E+01 0.32740000000E+04 0.19756140000E-03 -0.39961416000E-03 0.99999990064E+00 93 0.10848720000E+01 0.12918930000E+00 0.32740000000E+04 0.42907559000E-03 -0.10455356000E-04 0.99999990789E+00 94 0.79330810000E+00 0.86676580000E+00 0.32740000000E+04 0.66526525000E-04 0.27375153000E-03 0.99999996032E+00 95 0.11985530000E+01 0.23044740000E+01 0.32740000000E+04 0.43066929000E-03 0.24144375000E-03 0.99999987811E+00 96 0.15921800000E+01 0.17018040000E+01 0.32740000000E+04 0.22483860000E-03 0.84252574000E-03 0.99999961980E+00 97 0.77100870000E+00 -0.92529820000E-01 0.32740000000E+04 0.14662929000E-03 -0.17467343000E-03 0.99999997399E+00 98 0.13931520000E+00 -0.21994080000E-01 0.32740000000E+04 -0.86908462000E-04 -0.32948836000E-04 0.99999999568E+00 99 -0.15078260000E+00 -0.14098280000E+01 0.32740000000E+04 0.18576222000E-05 0.24489267000E-03 0.99999997001E+00 100 -0.15078260000E+00 -0.14098280000E+01 0.32740000000E+04 0.18576222000E-05 0.24489267000E-03 0.99999997001E+00 101 0.95280050000E+00 0.91583630000E-01 0.32740000000E+04 0.28668268000E-03 0.40067327000E-04 0.99999995810E+00 102 0.97422870000E+00 0.31085030000E+00 0.32740000000E+04 0.28873983000E-03 0.40467952000E-04 0.99999995750E+00 103 0.12383440000E+01 -0.48389210000E+00 0.32740000000E+04 0.52480638000E-03 -0.43342345000E-04 0.99999986135E+00 104 -0.17430830000E+00 -0.10111290000E+01 0.32740000000E+04 -0.21761293000E-03 -0.11887466000E-03 0.99999996926E+00 105 0.53260530000E+00 0.31754210000E+00 0.32740000000E+04 0.68908499000E-04 0.20540293000E-03 0.99999997653E+00 106 -0.25411980000E+00 0.11308620000E+00 0.32740000000E+04 -0.28711645000E-03 -0.10718660000E-03 0.99999995304E+00 107 -0.19745370000E+01 0.18286080000E+01 0.32740000000E+04 -0.63088717000E-03 0.40366119000E-03 0.99999971952E+00 108 0.90870310000E+00 0.21448070000E+00 0.32740000000E+04 0.29551459000E-03 0.68254005000E-04 0.99999995401E+00 109 0.29765964000E-02 0.56093110000E-01 0.32740000000E+04 -0.17210208000E-03 0.63091488000E-05 0.99999998517E+00 110 0.15060670000E+01 -0.69861630000E+00 0.32740000000E+04 -0.30881687000E-03 -0.19491964000E-03 0.99999993332E+00 111 0.38501850000E+00 0.72739970000E+00 0.32740000000E+04 0.12058562000E-04 0.66190434000E-04 0.99999999774E+00 112 0.10158310000E+01 0.50321950000E+00 0.32740000000E+04 0.22799078000E-03 0.17193673000E-03 0.99999995923E+00 113 0.89113610000E+00 -0.61950090000E+00 0.32740000000E+04 0.21891165000E-03 -0.85735803000E-04 0.99999997236E+00 114 0.11687760000E+01 -0.29918550000E+00 0.32740000000E+04 0.38499050000E-03 -0.14738117000E-03 0.99999991503E+00 115 0.10974090000E+01 0.75316200000E+00 0.32740000000E+04 0.49865514000E-03 0.26416784000E-03 0.99999984078E+00 116 -0.11413850000E+00 0.96225490000E+00 0.32740000000E+04 -0.38062478000E-03 0.31204292000E-03 0.99999987888E+00 117 0.80992810000E+00 0.34441630000E+00 0.32740000000E+04 0.10672851000E-03 0.91025824000E-04 0.99999999016E+00 118 0.15385800000E+00 0.73622190000E+00 0.32740000000E+04 -0.22089096000E-03 0.19184720000E-03 0.99999995720E+00 119 -0.35681250000E+00 -0.34411750000E+00 0.32740000000E+04 -0.53216067000E-04 -0.11943815000E-03 0.99999999145E+00 120 0.16028340000E+00 -0.35868070000E+00 0.32740000000E+04 -0.10035686000E-03 -0.13929627000E-03 0.99999998526E+00 121 0.11906750000E+01 0.70688240000E+00 0.32740000000E+04 0.44014395000E-03 0.20734440000E-03 0.99999988164E+00 122 0.12578020000E+01 0.26315360000E+01 0.32740000000E+04 -0.12938537000E-03 0.51706232000E-03 0.99999985795E+00 123 0.93662540000E+00 -0.90122970000E+00 0.32740000000E+04 0.22782116000E-03 -0.28930139000E-03 0.99999993220E+00 124 0.62219770000E+00 -0.64258900000E+00 0.32740000000E+04 0.78824967000E-04 -0.15631100000E-03 0.99999998468E+00 125 0.10468920000E+01 -0.26705930000E+00 0.32740000000E+04 0.29609675000E-03 -0.87866079000E-04 0.99999995230E+00 126 -0.66495720000E+00 0.77023940000E+00 0.32740000000E+04 -0.12555106000E-03 -0.11204608000E-02 0.99999936440E+00 127 0.13374530000E+01 -0.78872960000E+00 0.32740000000E+04 0.54260041000E-03 -0.24646468000E-03 0.99999982242E+00 128 0.13374530000E+01 -0.78872960000E+00 0.32740000000E+04 0.54260041000E-03 -0.24646468000E-03 0.99999982242E+00 129 -0.34720990000E+00 0.50735750000E+00 0.32740000000E+04 -0.48574878000E-03 0.15954772000E-03 0.99999986930E+00 130 -0.59570100000E+00 -0.13118820000E+01 0.32740000000E+04 -0.31041825000E-03 -0.32255761000E-03 0.99999989980E+00 131 0.11306280000E+01 -0.61890440000E+00 0.32740000000E+04 0.43748642000E-03 -0.20624707000E-03 0.99999988303E+00 132 0.14269720000E+01 0.47953240000E+00 0.32740000000E+04 0.60357508000E-03 0.21879828000E-03 0.99999979391E+00 133 0.11474680000E+01 0.42414310000E-01 0.32740000000E+04 0.43729995000E-03 0.33127570000E-04 0.99999990384E+00 134 0.19294160000E+00 -0.68656330000E+00 0.32740000000E+04 -0.16824306000E-03 -0.11967780000E-03 0.99999997869E+00 135 0.57757330000E+00 0.21364830000E+00 0.32740000000E+04 0.14375395000E-03 0.58336485000E-04 0.99999998797E+00 136 -0.13019300000E+00 -0.17676060000E+00 0.32740000000E+04 -0.30558722000E-03 0.35615503000E-04 0.99999995267E+00 137 -0.38936810000E+00 0.94683180000E+00 0.32740000000E+04 -0.49572665000E-03 0.34058889000E-03 0.99999981913E+00 138 -0.47665020000E-01 0.12626820000E+01 0.32740000000E+04 -0.24457919000E-03 0.28343723000E-03 0.99999992992E+00 139 0.98919890000E+00 -0.72238290000E+00 0.32740000000E+04 0.41393659000E-03 -0.17947593000E-03 0.99999989822E+00 140 0.96459780000E+00 0.32386560000E+00 0.32740000000E+04 0.27338698000E-03 0.22941234000E-04 0.99999996237E+00 141 0.96459780000E+00 0.32386560000E+00 0.32740000000E+04 0.27338698000E-03 0.22941234000E-04 0.99999996237E+00 142 0.11160560000E+01 -0.93844590000E+00 0.32740000000E+04 0.41562304000E-03 -0.30474106000E-03 0.99999986720E+00 143 0.37350750000E+00 -0.38597980000E+00 0.32740000000E+04 0.59807888000E-04 -0.18273015000E-03 0.99999998152E+00 144 -0.18601600000E+00 -0.65118110000E+00 0.32740000000E+04 -0.27656159000E-03 -0.16387661000E-03 0.99999994833E+00 145 0.10042390000E+01 0.35594270000E+00 0.32740000000E+04 0.20567996000E-03 0.17208931000E-03 0.99999996404E+00 146 -0.13132150000E+00 -0.23213190000E+00 0.32740000000E+04 -0.19639483000E-03 0.14721492000E-03 0.99999996988E+00 147 0.57387700000E+00 -0.56962190000E+00 0.32740000000E+04 0.18087626000E-03 -0.87078952000E-04 0.99999997985E+00 148 0.11661430000E+01 0.64586160000E+00 0.32740000000E+04 0.44923023000E-03 0.21540449000E-03 0.99999987590E+00 149 -0.13201940000E+00 -0.13198700000E+01 0.32740000000E+04 -0.23393182000E-03 -0.40559508000E-03 0.99999989038E+00 150 0.80123950000E+00 0.91541170000E+00 0.32740000000E+04 0.11022455000E-03 0.23534676000E-03 0.99999996623E+00 151 -0.33688510000E+00 -0.30844090000E+00 0.32740000000E+04 -0.47525272000E-03 -0.10706611000E-03 0.99999988134E+00 152 0.29021900000E+00 0.14103070000E+01 0.32740000000E+04 0.89700028000E-04 0.13383444000E-03 0.99999998702E+00 153 0.66315180000E+00 0.17947460000E+00 0.32740000000E+04 0.91278496000E-04 0.26039741000E-05 0.99999999583E+00 154 0.50513470000E+00 0.29550930000E+00 0.32740000000E+04 0.68983936000E-04 -0.60912887000E-04 0.99999999577E+00 155 0.97657550000E+00 0.12007420000E+00 0.32740000000E+04 0.32675875000E-03 -0.14891762000E-03 0.99999993553E+00 156 0.11904960000E+00 -0.19183060000E+00 0.32740000000E+04 -0.21509695000E-03 -0.79502815000E-05 0.99999997684E+00 157 0.93494070000E+00 -0.46921460000E+00 0.32740000000E+04 0.33551926000E-03 -0.24119229000E-03 0.99999991463E+00 158 0.12160850000E+01 0.63271270000E+00 0.32740000000E+04 0.37433306000E-03 0.47944726000E-04 0.99999992879E+00 159 0.66782880000E+00 0.24212760000E+01 0.32740000000E+04 -0.10395118000E-03 0.44629749000E-03 0.99999989501E+00 160 -0.10425990000E+01 -0.79252060000E+00 0.32740000000E+04 0.12576964000E-03 -0.71200113000E-04 0.99999998956E+00 161 0.68237180000E+00 -0.16353400000E-01 0.32740000000E+04 0.20889660000E-03 0.46929126000E-04 0.99999997708E+00 162 0.11993560000E+01 0.13906840000E+01 0.32740000000E+04 -0.20690930000E-03 0.17731600000E-03 0.99999996287E+00 163 0.53932730000E+00 -0.27809680000E+00 0.32740000000E+04 0.23879660000E-04 -0.39203100000E-04 0.99999999895E+00 164 -0.25379090000E+00 0.41355620000E+01 0.32740000000E+04 0.22533291000E-02 -0.31393536000E-02 0.99999253346E+00 165 -0.25379090000E+00 0.41355620000E+01 0.32740000000E+04 0.22533291000E-02 -0.31393536000E-02 0.99999253346E+00 166 -0.40866740000E+00 -0.58314480000E+00 0.32740000000E+04 -0.44695093000E-03 -0.16434284000E-03 0.99999988661E+00 167 0.74287940000E-01 -0.10485950000E+01 0.32740000000E+04 -0.12591864000E-03 -0.23345646000E-03 0.99999996482E+00 168 0.31532850000E-01 -0.63515120000E+00 0.32740000000E+04 -0.18266430000E-03 -0.25666584000E-03 0.99999995038E+00 169 0.10653750000E+01 0.30117920000E+00 0.32740000000E+04 0.39965825000E-03 0.14856402000E-03 0.99999990910E+00 170 -0.17114770000E+00 -0.41721370000E+00 0.32740000000E+04 -0.28608638000E-03 -0.10267365000E-03 0.99999995381E+00 171 0.39429900000E+00 -0.89875640000E+00 0.32740000000E+04 0.35268281000E-03 -0.35006151000E-03 0.99999987654E+00 172 -0.14724370000E+01 0.79521430000E+00 0.32740000000E+04 -0.11701077000E-02 0.20099750000E-03 0.99999929522E+00 173 -0.22152180000E+01 -0.15176390000E+01 0.32740000000E+04 -0.69144322000E-03 -0.11330113000E-03 0.99999975453E+00 174 0.35447360000E+00 -0.44060700000E+00 0.32740000000E+04 0.48315010000E-03 -0.21606418000E-04 0.99999988305E+00 175 0.13397430000E+01 -0.33443580000E+00 0.32740000000E+04 0.55413321000E-03 -0.12993372000E-03 0.99999983803E+00 176 -0.77038130000E+00 0.18899520000E+01 0.32740000000E+04 0.24447747000E-03 -0.11110256000E-03 0.99999996394E+00 177 0.13063200000E+00 0.42792340000E+00 0.32740000000E+04 -0.83565123000E-04 0.21925085000E-03 0.99999997247E+00 178 0.24438330000E+00 -0.34597880000E+00 0.32740000000E+04 -0.94970215000E-04 -0.16613385000E-03 0.99999998169E+00 179 0.66955960000E+00 0.46959010000E+00 0.32740000000E+04 0.13457143000E-03 0.18487430000E-03 0.99999997386E+00 180 0.79636650000E+00 0.51442910000E+00 0.32740000000E+04 0.25985989000E-03 0.16762427000E-03 0.99999995219E+00 181 0.79636650000E+00 0.51442910000E+00 0.32740000000E+04 0.25985989000E-03 0.16762427000E-03 0.99999995219E+00 182 0.12770460000E+01 0.18054870000E+00 0.32740000000E+04 0.51129883000E-03 0.51045376000E-04 0.99999986798E+00 183 0.29561670000E+00 0.19158580000E+01 0.32740000000E+04 -0.18306002000E-03 0.56725234000E-03 0.99999982236E+00 184 0.73356900000E+00 -0.14743980000E+01 0.32740000000E+04 0.23266065000E-03 -0.42448711000E-03 0.99999988284E+00 185 0.66330640000E+00 -0.37116610000E+00 0.32740000000E+04 0.24080642000E-03 -0.21985505000E-03 0.99999994684E+00 186 0.73828780000E+00 0.27299870000E+01 0.32740000000E+04 -0.33179933000E-03 0.26400966000E-03 0.99999991010E+00 187 0.12525010000E+01 -0.30588920000E+00 0.32740000000E+04 0.31244152000E-03 -0.20088244000E-03 0.99999993101E+00 188 0.70137330000E+00 0.22050980000E+00 0.32740000000E+04 0.87355809000E-04 -0.75363168000E-04 0.99999999334E+00 189 -0.99005440000E-01 0.21910330000E+00 0.32740000000E+04 -0.24553118000E-03 0.23973116000E-04 0.99999996957E+00 190 0.11581490000E+01 -0.82810770000E-01 0.32740000000E+04 0.43311619000E-03 -0.11957768000E-03 0.99999989906E+00 191 -0.47611960000E+00 -0.20336810000E+00 0.32740000000E+04 -0.52224140000E-03 -0.33685013000E-04 0.99999986306E+00 192 0.64758120000E+00 0.35288300000E+00 0.32740000000E+04 0.55976394000E-04 0.12464155000E-04 0.99999999836E+00 193 -0.62834270000E+00 -0.12252460000E+01 0.32740000000E+04 0.96949232000E-04 0.94283678000E-04 0.99999999086E+00 194 0.14339650000E+01 0.12004570000E+01 0.32740000000E+04 0.76128745000E-04 0.99359400000E-04 0.99999999217E+00 195 0.11157060000E+01 0.37810310000E+00 0.32740000000E+04 0.38697771000E-03 0.44997567000E-04 0.99999992411E+00 196 0.11157060000E+01 0.37810310000E+00 0.32740000000E+04 0.38697771000E-03 0.44997567000E-04 0.99999992411E+00 197 0.54546260000E+00 0.17346950000E+00 0.32740000000E+04 0.25442334000E-04 -0.12980186000E-05 0.99999999968E+00 198 0.54978480000E+00 0.16021610000E+00 0.32740000000E+04 0.36410700000E-04 0.26006284000E-04 0.99999999900E+00 199 0.95637190000E+00 -0.15740150000E+01 0.32740000000E+04 0.32804842000E-03 -0.42390454000E-03 0.99999985634E+00 200 -0.56056660000E+00 -0.50426120000E+00 0.32740000000E+04 -0.59480761000E-03 0.10043405000E-03 0.99999981806E+00 201 0.61312170000E+00 -0.65882270000E+00 0.32740000000E+04 0.83984451000E-04 -0.19926105000E-03 0.99999997662E+00 202 -0.15389500000E+01 0.11776800000E+01 0.32740000000E+04 -0.82799001000E-03 0.20165583000E-03 0.99999963688E+00 203 -0.22462080000E+01 -0.18780000000E+00 0.32740000000E+04 -0.77149161000E-03 -0.12324713000E-03 0.99999969481E+00 204 0.12497390000E+01 -0.13163020000E+00 0.32740000000E+04 0.65391674000E-03 0.32171287000E-03 0.99999973445E+00 205 0.83472120000E+00 0.79137790000E+00 0.32740000000E+04 0.31626184000E-03 0.13940688000E-03 0.99999994027E+00 206 0.41105540000E+00 -0.43986910000E+00 0.32740000000E+04 0.84058192000E-04 -0.16297714000E-03 0.99999998319E+00 207 0.41105540000E+00 -0.43986910000E+00 0.32740000000E+04 0.84058192000E-04 -0.16297714000E-03 0.99999998319E+00 208 0.34861710000E+00 0.10220170000E+00 0.32740000000E+04 0.55088756000E-04 0.13516918000E-03 0.99999998935E+00 209 0.20624270000E+01 0.23356520000E+01 0.32740000000E+04 0.12587283000E-03 0.44355835000E-03 0.99999989371E+00 210 0.13781190000E+00 -0.17786000000E+00 0.32740000000E+04 -0.17721613000E-03 -0.84400519000E-04 0.99999998074E+00 211 0.74909950000E+00 0.12529310000E+00 0.32740000000E+04 0.22472181000E-03 0.15356741000E-03 0.99999996296E+00 212 0.13938720000E+01 0.55615740000E+00 0.32740000000E+04 0.63810131000E-03 0.15289341000E-03 0.99999978473E+00 213 0.64499540000E+00 0.25366930000E+00 0.32740000000E+04 0.19271887000E-03 -0.12301287000E-04 0.99999998135E+00 214 0.82084060000E+00 0.23664960000E+00 0.32740000000E+04 0.20125310000E-03 -0.11779474000E-03 0.99999997281E+00 215 0.12322000000E+01 0.83012850000E+00 0.32740000000E+04 0.34620083000E-03 0.27500099000E-03 0.99999990226E+00 216 0.12322000000E+01 0.83012850000E+00 0.32740000000E+04 0.34620083000E-03 0.27500099000E-03 0.99999990226E+00 217 0.76866300000E+00 0.45241020000E+00 0.32740000000E+04 0.25747844000E-03 0.14870128000E-03 0.99999995580E+00 218 0.13658540000E+00 -0.44311730000E+00 0.32740000000E+04 -0.14813979000E-03 -0.16134081000E-03 0.99999997601E+00 219 0.24671320000E+00 -0.28901230000E+00 0.32740000000E+04 -0.20751132000E-03 0.34497632000E-03 0.99999991897E+00 220 0.49709240000E+00 -0.55914250000E+00 0.32740000000E+04 -0.15036676000E-04 -0.22296391000E-03 0.99999997503E+00 221 0.41431470000E+00 0.80639880000E+00 0.32740000000E+04 -0.31865823000E-05 0.97787553000E-04 0.99999999521E+00 222 0.84248790000E+00 0.51876320000E+00 0.32740000000E+04 0.19455430000E-03 0.36367706000E-04 0.99999998041E+00 223 0.84248790000E+00 0.51876320000E+00 0.32740000000E+04 0.19455430000E-03 0.36367706000E-04 0.99999998041E+00 224 0.81142690000E+00 -0.81120680000E+00 0.32740000000E+04 0.23495185000E-03 -0.21769950000E-03 0.99999994870E+00 225 -0.19706210000E+00 0.10691480000E+01 0.32740000000E+04 -0.19752758000E-03 0.31538022000E-03 0.99999993076E+00 226 0.19057040000E+00 0.65463170000E-01 0.32740000000E+04 -0.30367979000E-03 0.51064602000E-04 0.99999995259E+00 227 0.58061720000E+00 -0.11476090000E+01 0.32740000000E+04 0.28853881000E-03 -0.36033045000E-03 0.99999989345E+00 228 -0.16064300000E+01 0.44853010000E+00 0.32740000000E+04 -0.26699639000E-03 -0.69164578000E-03 0.99999972517E+00 229 0.91138410000E+00 -0.79723440000E-01 0.32740000000E+04 0.21217193000E-03 -0.41750922000E-04 0.99999997662E+00 230 -0.12488370000E-01 0.89985570000E+00 0.32740000000E+04 -0.58301212000E-03 -0.14663761000E-03 0.99999981930E+00 231 0.10844070000E+01 0.55423940000E+00 0.32740000000E+04 0.33150014000E-03 0.12695539000E-03 0.99999993699E+00 232 -0.15208220000E+00 0.30667610000E+00 0.32740000000E+04 -0.30248996000E-03 0.12224911000E-03 0.99999994678E+00 233 -0.12819730000E+00 -0.55151130000E+00 0.32740000000E+04 -0.26679286000E-03 -0.18381306000E-03 0.99999994752E+00 234 0.61638170000E+00 0.14483290000E+01 0.32740000000E+04 0.16534961000E-03 0.35859106000E-03 0.99999992204E+00 235 0.61638170000E+00 0.14483290000E+01 0.32740000000E+04 0.16534961000E-03 0.35859106000E-03 0.99999992204E+00 236 0.79369960000E+00 0.19020300000E+01 0.32740000000E+04 -0.13781730000E-03 -0.76102828000E-04 0.99999998761E+00 237 0.65015970000E+00 0.35968520000E+00 0.32740000000E+04 0.15576420000E-03 0.11493482000E-03 0.99999998126E+00 238 0.67361430000E+00 0.84746840000E+00 0.32740000000E+04 0.10347481000E-03 0.19322988000E-03 0.99999997598E+00 239 -0.71746720000E+00 0.16487810000E+01 0.32740000000E+04 -0.57906559000E-03 0.21472241000E-03 0.99999980929E+00 240 -0.17642021000E-02 -0.18319560000E+01 0.32740000000E+04 -0.13522049000E-03 0.73237621000E-04 0.99999998818E+00 241 0.20385270000E+00 -0.74720070000E+00 0.32740000000E+04 -0.14218250000E-03 -0.29756367000E-03 0.99999994562E+00 242 0.13198720000E+01 0.29724380000E+01 0.32740000000E+04 0.55802451000E-03 0.14804381000E-03 0.99999983335E+00 243 0.13198720000E+01 0.29724380000E+01 0.32740000000E+04 0.55802451000E-03 0.14804381000E-03 0.99999983335E+00 244 -0.17504000000E+00 -0.90047360000E+00 0.32740000000E+04 -0.24261820000E-03 -0.20461499000E-03 0.99999994963E+00 245 -0.15692190000E+00 -0.19077380000E+00 0.32740000000E+04 -0.11858425000E-03 -0.16956222000E-03 0.99999997859E+00 246 0.22981890000E+01 0.19496600000E+01 0.32740000000E+04 0.46230981000E-03 0.43445639000E-03 0.99999979876E+00 247 0.23402300000E+00 -0.55732090000E+00 0.32740000000E+04 0.13890219000E-03 -0.90046378000E-04 0.99999998630E+00 248 0.23528340000E+01 0.72114620000E+00 0.32740000000E+04 0.21998888000E-03 0.11866505000E-02 0.99999927173E+00 249 0.13737690000E+01 0.26292290000E+00 0.32740000000E+04 -0.10058651000E-03 -0.12728796000E-03 0.99999998684E+00 250 0.51454990000E+00 -0.12429880000E+00 0.32740000000E+04 0.31619678000E-04 -0.12128380000E-03 0.99999999215E+00 251 0.41126930000E+00 0.59686660000E+00 0.32740000000E+04 -0.55688026000E-03 -0.52741630000E-04 0.99999984355E+00 252 0.22815390000E+00 -0.79900780000E+00 0.32740000000E+04 -0.46686611000E-04 -0.22730175000E-03 0.99999997308E+00 253 -0.45387480000E+00 -0.17961600000E+01 0.32740000000E+04 0.32005855000E-03 0.16110901000E-02 0.99999865097E+00 254 0.12284300000E+00 -0.23134940000E+01 0.32740000000E+04 -0.16990358000E-03 -0.30339064000E-03 0.99999993954E+00 255 0.22226260000E+00 -0.92765540000E+00 0.32740000000E+04 0.87176231000E-05 -0.27026914000E-03 0.99999996344E+00 256 0.22226260000E+00 -0.92765540000E+00 0.32740000000E+04 0.87176231000E-05 -0.27026914000E-03 0.99999996344E+00 257 -0.70343610000E+00 0.16429340000E+01 0.32740000000E+04 -0.64951205000E-03 -0.11883651000E-03 0.99999978201E+00 258 0.53575470000E+00 0.35520300000E+00 0.32740000000E+04 0.86980464000E-04 -0.19561712000E-04 0.99999999603E+00 259 0.96675950000E+00 -0.21437850000E+00 0.32740000000E+04 0.37830256000E-03 -0.36779969000E-04 0.99999992777E+00 260 0.13373010000E+01 -0.93520700000E+00 0.32740000000E+04 -0.14876376000E-03 -0.28556045000E-04 0.99999998853E+00 261 0.77598610000E+00 -0.70632120000E+00 0.32740000000E+04 0.92600507000E-03 -0.57801942000E-03 0.99999940420E+00 262 -0.16749950000E+01 0.10127010000E+01 0.32740000000E+04 -0.60236757000E-03 0.59090518000E-04 0.99999981683E+00 263 0.15394430000E-01 -0.63722440000E-01 0.32740000000E+04 -0.25406698000E-03 -0.13592257000E-03 0.99999995849E+00 264 0.23062590000E+00 0.10943680000E+01 0.32740000000E+04 -0.18265116000E-03 0.32127771000E-03 0.99999993171E+00 265 0.76611650000E-01 0.54455390000E+00 0.32740000000E+04 -0.11341112000E-03 0.33012885000E-03 0.99999993908E+00 266 -0.11578550000E+00 -0.90374400000E+00 0.32740000000E+04 -0.69830450000E-03 0.64793334000E-04 0.99999975409E+00 267 -0.11578550000E+00 -0.90374400000E+00 0.32740000000E+04 -0.69830450000E-03 0.64793334000E-04 0.99999975409E+00 268 0.47458540000E+00 -0.58841260000E+00 0.32740000000E+04 0.11939574000E-03 -0.11409586000E-03 0.99999998636E+00 269 0.14504410000E+01 0.88786200000E+00 0.32740000000E+04 -0.15121783000E-03 0.30891295000E-03 0.99999994085E+00 270 0.86016290000E-01 0.14674290000E+01 0.32740000000E+04 0.57218067000E-05 0.35829411000E-03 0.99999993580E+00 271 0.54733500000E+00 0.42630150000E+00 0.32740000000E+04 0.15516389000E-03 -0.93205917000E-05 0.99999998792E+00 272 -0.61675150000E+00 0.49450080000E+00 0.32740000000E+04 -0.48809298000E-03 0.17201611000E-03 0.99999986609E+00 273 0.21838690000E+01 0.71019330000E+00 0.32740000000E+04 0.10248919000E-02 0.40916895000E-03 0.99999939109E+00 274 0.21838690000E+01 0.71019330000E+00 0.32740000000E+04 0.10248919000E-02 0.40916895000E-03 0.99999939109E+00 275 0.12446260000E+01 0.18938260000E+00 0.32740000000E+04 0.40870500000E-03 0.10891592000E-03 0.99999991055E+00 276 0.12014740000E+01 0.26309110000E+00 0.32740000000E+04 0.46946114000E-03 0.51230963000E-04 0.99999988849E+00 277 -0.44682503000E-02 -0.84915940000E+00 0.32740000000E+04 -0.24580958000E-03 -0.17183278000E-03 0.99999995503E+00 278 -0.19089860000E+00 0.25997710000E+00 0.32740000000E+04 -0.27433003000E-03 0.21746881000E-04 0.99999996214E+00 279 0.33256720000E-01 0.68008650000E+00 0.32740000000E+04 -0.42803196000E-03 0.10055808000E-03 0.99999990334E+00 280 0.84320340000E+00 -0.32306270000E+00 0.32740000000E+04 0.18763750000E-03 -0.83732550000E-04 0.99999997889E+00 281 0.62349360000E+00 -0.91993450000E+00 0.32740000000E+04 0.15728435000E-03 -0.40543094000E-03 0.99999990544E+00 282 0.41812970000E+00 -0.64543550000E+00 0.32740000000E+04 -0.42724543000E-04 -0.25312879000E-03 0.99999996705E+00 283 -0.22292080000E+00 0.10216840000E+01 0.32740000000E+04 -0.24640051000E-03 0.32145836000E-03 0.99999991798E+00 284 0.38075110000E+00 -0.48363520000E+00 0.32740000000E+04 -0.12867121000E-03 -0.11890794000E-03 0.99999998465E+00 285 0.38075110000E+00 -0.48363520000E+00 0.32740000000E+04 -0.12867121000E-03 -0.11890794000E-03 0.99999998465E+00 286 0.12666090000E+01 -0.23935280000E+00 0.32740000000E+04 0.37922969000E-03 0.68724585000E-05 0.99999992807E+00 287 0.61925460000E-01 -0.28475920000E+00 0.32740000000E+04 -0.14989031000E-03 -0.12217414000E-03 0.99999998130E+00 288 0.22338960000E+01 0.29676750000E+01 0.32740000000E+04 0.19178691000E-03 0.40028730000E-03 0.99999990149E+00 289 0.12063430000E+01 0.93937030000E-01 0.32740000000E+04 0.44956204000E-03 -0.31942855000E-04 0.99999989844E+00 290 0.27485640000E+00 0.14983230000E+00 0.32740000000E+04 -0.23541313000E-03 -0.12044849000E-04 0.99999997222E+00 291 0.58189460000E+00 0.13318400000E+01 0.32740000000E+04 0.63172396000E-04 0.33078124000E-03 0.99999994330E+00 292 0.18932680000E-01 -0.15714980000E+01 0.32740000000E+04 -0.45996348000E-03 -0.24972099000E-03 0.99999986304E+00 293 0.42778020000E+00 0.30823470000E+00 0.32740000000E+04 -0.58503061000E-04 0.13879860000E-03 0.99999998866E+00 294 0.11930070000E+01 -0.68526540000E+00 0.32740000000E+04 0.33566903000E-03 -0.18283913000E-03 0.99999992695E+00 295 0.10375130000E+01 0.11167010000E+00 0.32740000000E+04 0.36677302000E-03 -0.72097435000E-04 0.99999993014E+00 296 -0.89679380000E-01 0.16369430000E+01 0.32740000000E+04 -0.46053567000E-03 0.43686686000E-03 0.99999979853E+00 297 -0.30342430000E+01 -0.10424350000E+00 0.32740000000E+04 0.29763114000E-03 -0.26777116000E-03 0.99999991986E+00 298 -0.30342430000E+01 -0.10424350000E+00 0.32740000000E+04 0.29763114000E-03 -0.26777116000E-03 0.99999991986E+00 299 0.10710160000E+00 -0.45990140000E+00 0.32740000000E+04 -0.16983016000E-03 -0.17851747000E-03 0.99999996964E+00 300 0.28504170000E+00 0.73350620000E+00 0.32740000000E+04 -0.12999878000E-03 -0.21446757000E-03 0.99999996855E+00 301 0.11963130000E+01 -0.27534480000E+00 0.32740000000E+04 0.40493652000E-03 -0.21123498000E-03 0.99999989570E+00 302 0.69473110000E+00 -0.17853510000E+00 0.32740000000E+04 0.13196073000E-03 -0.13709663000E-03 0.99999998190E+00 303 0.78075760000E+00 0.60144160000E+00 0.32740000000E+04 -0.23787835000E-03 0.17272173000E-03 0.99999995679E+00 304 0.95532100000E+00 0.31339980000E+00 0.32740000000E+04 0.22176073000E-03 0.88516172000E-04 0.99999997149E+00 305 0.59304870000E+00 0.48134830000E+00 0.32740000000E+04 0.10246488000E-03 0.14415551000E-03 0.99999998436E+00 306 0.54210600000E+00 -0.19829610000E+00 0.32740000000E+04 0.47318208000E-04 -0.73274379000E-04 0.99999999620E+00 307 0.29637960000E-01 0.29093610000E+01 0.32740000000E+04 -0.29153770000E-03 0.28137764000E-03 0.99999991792E+00 308 0.29637960000E-01 0.29093610000E+01 0.32740000000E+04 -0.29153770000E-03 0.28137764000E-03 0.99999991792E+00 309 -0.36163170000E+00 0.24192400000E+00 0.32740000000E+04 -0.51832938000E-03 0.15847255000E-03 0.99999985311E+00 310 0.15082890000E+00 0.14641990000E+01 0.32740000000E+04 -0.29754065000E-03 0.53918594000E-03 0.99999981037E+00 311 0.16905420000E+01 0.21103360000E+01 0.32740000000E+04 0.74744876000E-03 0.27435375000E-03 0.99999968303E+00 312 0.20579540000E+00 0.33476310000E+00 0.32740000000E+04 -0.17485076000E-03 0.12396334000E-03 0.99999997703E+00 313 0.66948210000E+00 0.47451540000E+00 0.32740000000E+04 0.84664578000E-04 0.17073951000E-03 0.99999998184E+00 314 0.19632830000E+00 -0.62298100000E+00 0.32740000000E+04 -0.13091796000E-03 -0.26008952000E-03 0.99999995761E+00 315 0.39509740000E+00 0.28132260000E+01 0.32740000000E+04 -0.24985563000E-03 0.34360305000E-03 0.99999990975E+00 316 0.10716180000E+00 -0.36537785000E-02 0.32740000000E+04 -0.15518379000E-03 -0.11233645000E-05 0.99999998796E+00 317 -0.44694640000E+00 0.22975590000E-01 0.32740000000E+04 -0.50967903000E-03 -0.93495466000E-04 0.99999986574E+00 318 0.90081990000E+00 0.80450060000E+00 0.32740000000E+04 0.12882616000E-02 0.86104532000E-03 0.99999879949E+00 319 0.25546150000E+01 -0.13196930000E+01 0.32740000000E+04 0.61245548000E-03 -0.14054806000E-03 0.99999980257E+00 320 0.69179560000E+00 0.42115650000E-01 0.32740000000E+04 0.10823912000E-03 -0.51724583000E-04 0.99999999280E+00 321 0.82226840000E+00 0.69016030000E-01 0.32740000000E+04 0.16606219000E-03 -0.22918874000E-04 0.99999998595E+00 322 0.42339680000E-01 0.10626290000E-01 0.32740000000E+04 0.22905431000E-03 -0.16989859000E-03 0.99999995933E+00 323 0.66721940000E+00 -0.11091390000E+00 0.32740000000E+04 0.83349274000E-04 -0.32263637000E-04 0.99999999601E+00 324 0.32239250000E+00 0.18743480000E+01 0.32740000000E+04 0.36638181000E-03 -0.90970768000E-03 0.99999951910E+00 325 0.32239250000E+00 0.18743480000E+01 0.32740000000E+04 0.36638181000E-03 -0.90970768000E-03 0.99999951910E+00 326 0.77739740000E+00 -0.23452000000E-01 0.32740000000E+04 0.16736664000E-03 0.41700241000E-05 0.99999998599E+00 327 0.12375800000E+01 -0.72512310000E+00 0.32740000000E+04 0.33517671000E-03 -0.31698472000E-03 0.99999989359E+00 328 0.87810670000E-01 -0.18299600000E+00 0.32740000000E+04 -0.94617957000E-04 -0.67619607000E-04 0.99999999324E+00 329 -0.52297930000E+00 0.18476220000E+01 0.32740000000E+04 -0.12584931000E-02 0.27496147000E-03 0.99999917030E+00 330 -0.24788220000E+00 -0.88797250000E+00 0.32740000000E+04 -0.41194010000E-03 -0.23864466000E-03 0.99999988668E+00 331 0.27509280000E+00 -0.67186070000E+00 0.32740000000E+04 0.30418808000E-03 0.15795993000E-04 0.99999995361E+00 332 -0.17602130000E+00 -0.16204270000E+01 0.32740000000E+04 -0.20659527000E-03 -0.16350062000E-03 0.99999996529E+00 333 0.13107560000E+00 0.12151550000E+01 0.32740000000E+04 -0.32911691000E-03 -0.15521918000E-03 0.99999993379E+00 334 0.54056880000E+00 -0.73020270000E+00 0.32740000000E+04 0.90679518000E-04 -0.26494273000E-03 0.99999996079E+00 335 0.11757970000E+01 0.44815490000E+00 0.32740000000E+04 0.48190873000E-03 0.12812964000E-03 0.99999987567E+00 336 0.36311510000E-01 0.54926380000E-01 0.32740000000E+04 -0.25660876000E-03 -0.19361512000E-04 0.99999996689E+00 337 0.13395520000E+00 0.60904380000E+00 0.32740000000E+04 -0.96951735000E-04 0.96428004000E-04 0.99999999065E+00 338 0.13395520000E+00 0.60904380000E+00 0.32740000000E+04 -0.96951735000E-04 0.96428004000E-04 0.99999999065E+00 339 0.67620390000E+00 -0.12443630000E+01 0.32740000000E+04 0.95763266000E-04 -0.36850391000E-03 0.99999992752E+00 340 0.91248320000E+00 -0.18607880000E-01 0.32740000000E+04 0.25680620000E-03 -0.10485596000E-04 0.99999996697E+00 341 0.76275280000E+00 -0.27815700000E+00 0.32740000000E+04 0.16058258000E-03 -0.13779302000E-03 0.99999997761E+00 342 0.97957060000E+00 0.29460720000E+01 0.32740000000E+04 0.30774190000E-03 0.40754277000E-03 0.99999986960E+00 343 0.10774450000E+01 0.13860730000E+00 0.32740000000E+04 0.43222270000E-03 0.90996109000E-04 0.99999990245E+00 344 -0.19776880000E+00 0.42800730000E+00 0.32740000000E+04 -0.31234973000E-03 0.12334647000E-03 0.99999994361E+00 345 -0.52904430000E+00 0.21470310000E+01 0.32740000000E+04 -0.22178132000E-06 0.44110478000E-03 0.99999990271E+00 346 -0.29280500000E+00 0.14664840000E+00 0.32740000000E+04 -0.30615545000E-03 -0.92611743000E-04 0.99999994885E+00 347 -0.84629310000E-01 0.99567380000E+00 0.32740000000E+04 -0.21481865000E-03 -0.71495771000E-04 0.99999997437E+00 348 0.91676480000E+00 -0.56096680000E-01 0.32740000000E+04 0.28917642000E-03 -0.74576797000E-04 0.99999995541E+00 349 0.91676480000E+00 -0.56096680000E-01 0.32740000000E+04 0.28917642000E-03 -0.74576797000E-04 0.99999995541E+00 350 0.23793770000E+01 0.17612320000E+01 0.32740000000E+04 -0.11135765000E-03 -0.22143224000E-04 0.99999999355E+00 351 -0.29085980000E+00 -0.22263920000E+00 0.32740000000E+04 -0.48067188000E-03 -0.96469681000E-04 0.99999987982E+00 352 0.24867900000E+00 -0.48383862000E-02 0.32740000000E+04 -0.87508546000E-04 -0.47051064000E-04 0.99999999506E+00 353 0.52992930000E-01 0.25376390000E+00 0.32740000000E+04 -0.25021372000E-03 0.20686079000E-03 0.99999994730E+00 354 -0.26790860000E+00 0.12521770000E+00 0.32740000000E+04 -0.35471155000E-03 -0.14875442000E-03 0.99999992603E+00 355 0.10067640000E+01 -0.15616480000E+00 0.32740000000E+04 0.40870436000E-03 -0.52308773000E-04 0.99999991511E+00 356 0.11303640000E+01 -0.30917940000E+00 0.32740000000E+04 0.37050428000E-03 -0.33533979000E-04 0.99999993080E+00 357 -0.23014440000E+00 0.69552380000E+00 0.32740000000E+04 -0.34299033000E-03 0.16244024000E-03 0.99999992799E+00 358 0.10339050000E+01 0.75537890000E+00 0.32740000000E+04 0.19352048000E-03 0.10984117000E-03 0.99999997524E+00 359 0.10339050000E+01 0.75537890000E+00 0.32740000000E+04 0.19352048000E-03 0.10984117000E-03 0.99999997524E+00 360 0.29265230000E+00 0.41683630000E+00 0.32740000000E+04 -0.50212104000E-04 0.80653575000E-04 0.99999999549E+00 361 0.93984640000E+00 0.54620180000E+00 0.32740000000E+04 0.32145184000E-03 0.18664230000E-03 0.99999993092E+00 362 0.17874630000E+00 -0.10919200000E+00 0.32740000000E+04 -0.16008616000E-03 -0.68501606000E-04 0.99999998484E+00 363 -0.73571060000E-01 -0.19259940000E+00 0.32740000000E+04 -0.42625662000E-03 0.32810192000E-04 0.99999990861E+00 364 -0.81402640000E-01 0.29510770000E+01 0.32740000000E+04 -0.35944392000E-03 0.29233904000E-03 0.99999989267E+00 365 0.45622710000E+00 -0.56161790000E+00 0.32740000000E+04 0.18482378000E-04 -0.13723786000E-03 0.99999999041E+00 366 0.19945320000E+01 -0.65128700000E+00 0.32740000000E+04 0.71314449000E-03 -0.16741065000E-03 0.99999973170E+00 367 0.98857790000E+00 -0.33609600000E+00 0.32740000000E+04 0.38113419000E-03 -0.15871937000E-03 0.99999991477E+00 368 0.14023900000E+01 0.23272300000E+01 0.32740000000E+04 0.55834110000E-03 0.16408932000E-03 0.99999983066E+00 369 0.79906680000E+00 0.86609940000E+00 0.32740000000E+04 0.13545356000E-03 0.16726572000E-03 0.99999997684E+00 370 0.11525020000E+01 -0.53141270000E+00 0.32740000000E+04 0.37105073000E-03 -0.17984747000E-03 0.99999991499E+00 371 -0.20365200000E+00 0.11516420000E+00 0.32740000000E+04 -0.30139854000E-03 0.27143044000E-03 0.99999991774E+00 372 0.51651680000E-01 0.29650940000E+01 0.32740000000E+04 -0.26429113000E-03 0.19357284000E-03 0.99999994634E+00 373 0.55364880000E+00 -0.89729650000E+00 0.32740000000E+04 0.18831572000E-03 -0.23421868000E-03 0.99999995484E+00 374 -0.72866100000E+00 -0.87688750000E+00 0.32740000000E+04 -0.98292693000E-03 -0.13304048000E-03 0.99999950808E+00 375 -0.23068430000E+00 0.37744270000E+00 0.32740000000E+04 -0.30587902000E-03 0.10852277000E-03 0.99999994733E+00 376 0.45445730000E+00 0.36350160000E+00 0.32740000000E+04 0.10183077000E-03 0.16694449000E-03 0.99999998088E+00 377 0.45445730000E+00 0.36350160000E+00 0.32740000000E+04 0.10183077000E-03 0.16694449000E-03 0.99999998088E+00 378 0.99189860000E+00 -0.60066490000E-01 0.32740000000E+04 0.21034974000E-03 -0.61444087000E-04 0.99999997599E+00 379 0.11840610000E+01 -0.94269560000E+00 0.32740000000E+04 0.47172877000E-03 -0.43630620000E-03 0.99999979355E+00 380 0.14293690000E+01 0.26027100000E+01 0.32740000000E+04 0.14076864000E-03 -0.16038815000E-03 0.99999997723E+00 381 0.14764170000E-01 0.13123560000E+01 0.32740000000E+04 -0.21220013000E-03 0.24736914000E-03 0.99999994689E+00 382 -0.73710460000E+00 0.81956280000E+00 0.32740000000E+04 -0.66483708000E-03 0.12947776000E-03 0.99999977061E+00 383 -0.67022450000E+00 0.73646550000E+00 0.32740000000E+04 -0.59629849000E-03 -0.25560523000E-03 0.99999978955E+00 384 0.40709280000E-01 0.57928350000E+00 0.32740000000E+04 -0.22253861000E-03 0.13930300000E-03 0.99999996554E+00 385 0.10421450000E+01 0.23246370000E+00 0.32740000000E+04 0.27843239000E-03 0.82523839000E-04 0.99999995783E+00 386 -0.28093920000E+00 0.47893570000E+00 0.32740000000E+04 -0.28765196000E-03 0.10008969000E-03 0.99999995362E+00 387 0.87173180000E+00 -0.86156060000E+00 0.32740000000E+04 0.28746331000E-03 -0.26701263000E-03 0.99999992303E+00 388 0.14340190000E+01 0.18753560000E+00 0.32740000000E+04 0.60669490000E-03 0.53907434000E-05 0.99999981595E+00 389 0.14340190000E+01 0.18753560000E+00 0.32740000000E+04 0.60669490000E-03 0.53907434000E-05 0.99999981595E+00 390 0.11390590000E+01 -0.46869980000E+00 0.32740000000E+04 0.38427897000E-03 -0.22595403000E-03 0.99999990064E+00 391 -0.16938650000E+00 -0.29630970000E+00 0.32740000000E+04 -0.23897452000E-03 -0.70778433000E-05 0.99999997142E+00 392 -0.48283880000E+00 0.92322440000E+00 0.32740000000E+04 -0.74215699000E-03 0.52287034000E-03 0.99999958790E+00 393 0.47544300000E+00 -0.15246360000E+01 0.32740000000E+04 -0.97519871000E-04 -0.38784149000E-03 0.99999992003E+00 394 0.59864630000E+00 0.97250730000E+00 0.32740000000E+04 0.11859323000E-03 0.13366948000E-03 0.99999998403E+00 395 0.11262860000E+01 0.35252610000E+00 0.32740000000E+04 0.34236370000E-03 0.29899607000E-06 0.99999994139E+00 396 0.20543270000E+01 -0.10703010000E+01 0.32740000000E+04 0.22440046000E-03 0.16783718000E-03 0.99999996074E+00 397 -0.36509020000E+00 0.10970780000E+01 0.32740000000E+04 -0.29438330000E-03 -0.17665289000E-03 0.99999994107E+00 398 -0.29328120000E-01 0.61908430000E+00 0.32740000000E+04 -0.15830135000E-03 0.23411482000E-03 0.99999996007E+00 399 0.87496260000E+00 -0.12392810000E+01 0.32740000000E+04 0.15531055000E-03 -0.33561394000E-03 0.99999993162E+00 400 0.95970760000E+00 -0.95512960000E+00 0.32740000000E+04 0.41940124000E-03 -0.26636603000E-03 0.99999987658E+00 401 0.95970760000E+00 -0.95512960000E+00 0.32740000000E+04 0.41940124000E-03 -0.26636603000E-03 0.99999987658E+00 402 -0.18336550000E+00 -0.38101820000E-01 0.32740000000E+04 -0.35508961000E-03 -0.95351832000E-04 0.99999993241E+00 403 0.13432330000E+01 -0.15765140000E+01 0.32740000000E+04 0.59718749000E-03 -0.42430332000E-03 0.99999973167E+00 404 -0.90436750000E+00 0.20627340000E-01 0.32740000000E+04 -0.72022859000E-03 -0.74279691000E-04 0.99999973788E+00 405 -0.17958160000E+01 -0.12778930000E+01 0.32740000000E+04 0.11971434000E-03 -0.84407890000E-03 0.99999963660E+00 406 -0.16899800000E+01 0.22119800000E+00 0.32740000000E+04 -0.44465074000E-03 0.53588103000E-03 0.99999975756E+00 407 0.24098010000E+01 -0.72344980000E+00 0.32740000000E+04 0.11970619000E-03 0.29310881000E-03 0.99999994988E+00 408 0.11587110000E+01 0.16806520000E+01 0.32740000000E+04 0.10129760000E-02 0.16479393000E-04 0.99999948680E+00 409 0.82014540000E+00 0.26566800000E+00 0.32740000000E+04 0.21454044000E-03 0.56311994000E-04 0.99999997540E+00 410 -0.17954560000E+01 0.18702050000E+01 0.32740000000E+04 -0.14907360000E-02 0.25535931000E-03 0.99999885625E+00 411 0.80691660000E+00 -0.44831420000E+00 0.32740000000E+04 0.51741692000E-03 0.15423736000E-03 0.99999985425E+00 412 0.80691660000E+00 -0.44831420000E+00 0.32740000000E+04 0.51741692000E-03 0.15423736000E-03 0.99999985425E+00 413 0.78706670000E+00 0.65991690000E+00 0.32740000000E+04 0.17028343000E-03 0.11514910000E-03 0.99999997887E+00 414 0.35199970000E+00 0.19615970000E-01 0.32740000000E+04 0.23112034000E-04 -0.10123585000E-04 0.99999999968E+00 415 0.31190030000E+00 0.37339140000E-01 0.32740000000E+04 -0.65633540000E-04 0.19628537000E-03 0.99999997858E+00 416 0.31190030000E+00 0.37339140000E-01 0.32740000000E+04 -0.65633540000E-04 0.19628537000E-03 0.99999997858E+00 417 0.78421490000E+00 0.54732180000E+00 0.32740000000E+04 0.16983975000E-03 0.97853808000E-04 0.99999998079E+00 418 0.16573690000E+00 0.32911550000E+00 0.32740000000E+04 -0.12197223000E-03 0.26390002000E-04 0.99999999221E+00 419 0.10278060000E+01 -0.44064940000E+00 0.32740000000E+04 0.31320704000E-03 0.10484519000E-02 0.99999940132E+00 420 0.91261720000E+00 0.38272960000E+00 0.32740000000E+04 0.37966837000E-03 0.14363405000E-03 0.99999991761E+00 421 0.14332850000E+01 0.95346510000E+00 0.32740000000E+04 0.48795747000E-03 0.23723916000E-03 0.99999985281E+00 422 0.90977450000E+00 -0.22616070000E+00 0.32740000000E+04 0.39930752000E-03 -0.26356973000E-04 0.99999991993E+00 423 0.10598180000E+01 -0.33705610000E+00 0.32740000000E+04 -0.32729006000E-03 0.14278927000E-04 0.99999994634E+00 424 0.38765310000E+00 0.98802120000E+00 0.32740000000E+04 0.14592701000E-03 0.25212253000E-03 0.99999995757E+00 425 -0.72503850000E+00 0.23318700000E+01 0.32740000000E+04 -0.17430620000E-03 0.44511771000E-03 0.99999988574E+00 426 -0.10334540000E+01 -0.47235460000E+00 0.32740000000E+04 -0.80443372000E-03 -0.21841280000E-03 0.99999965259E+00 427 -0.10334540000E+01 -0.47235460000E+00 0.32740000000E+04 -0.80443372000E-03 -0.21841280000E-03 0.99999965259E+00 428 -0.70801540000E-01 0.25851210000E+01 0.32740000000E+04 -0.29202836000E-03 0.24733058000E-03 0.99999992677E+00 429 0.10254550000E+00 -0.62721130000E+00 0.32740000000E+04 -0.13622071000E-03 -0.22109009000E-03 0.99999996628E+00 430 0.94168170000E+00 0.53322110000E+00 0.32740000000E+04 0.35295007000E-03 0.16758585000E-03 0.99999992367E+00 431 0.12643420000E+01 -0.58407670000E+00 0.32740000000E+04 0.43673615000E-03 -0.17068085000E-03 0.99999989006E+00 432 0.27421600000E+00 -0.43981810000E+00 0.32740000000E+04 -0.44415305000E-04 -0.18171858000E-03 0.99999998250E+00 433 0.28371430000E-01 -0.35057220000E+00 0.32740000000E+04 -0.15227179000E-03 -0.12803168000E-03 0.99999998021E+00 434 0.12299580000E+01 0.77414910000E+00 0.32740000000E+04 -0.93715900000E-03 0.85774309000E-03 0.99999919300E+00 435 -0.96637060000E-01 -0.14443740000E+01 0.32740000000E+04 -0.13695181000E-03 -0.38601647000E-03 0.99999991612E+00 436 0.37591160000E+00 0.52476160000E+00 0.32740000000E+04 -0.14059796000E-04 0.87924367000E-04 0.99999999604E+00 437 0.37591160000E+00 0.52476160000E+00 0.32740000000E+04 -0.14059796000E-04 0.87924367000E-04 0.99999999604E+00 438 0.10546680000E+00 0.36295890000E+00 0.32740000000E+04 -0.17271243000E-03 0.11340369000E-03 0.99999997866E+00 439 0.34835600000E+00 0.11461230000E+01 0.32740000000E+04 0.17548160000E-04 0.19307213000E-03 0.99999998121E+00 440 -0.74755620000E-01 -0.53226050000E+00 0.32740000000E+04 -0.31414491000E-03 -0.98104698000E-04 0.99999994584E+00 441 0.14267220000E+01 -0.72421310000E+00 0.32740000000E+04 0.65009558000E-03 -0.15187477000E-03 0.99999977715E+00 442 0.10351120000E+01 -0.65752350000E+00 0.32740000000E+04 0.31617490000E-03 -0.26492227000E-03 0.99999991492E+00 443 0.22531300000E+00 0.46825860000E+00 0.32740000000E+04 0.28281122000E-04 0.13549614000E-03 0.99999999042E+00 444 0.91462230000E+00 -0.34772150000E+00 0.32740000000E+04 0.29389429000E-03 -0.86625812000E-04 0.99999995306E+00 445 0.10080350000E+01 0.55848560000E+00 0.32740000000E+04 0.23163961000E-03 0.23077129000E-03 0.99999994654E+00 446 -0.21709560000E+01 -0.16450850000E+00 0.32740000000E+04 -0.61797176000E-03 0.22256644000E-03 0.99999978429E+00 447 0.11534890000E+01 -0.19123980000E+00 0.32740000000E+04 0.33528579000E-03 -0.29384246000E-04 0.99999994336E+00 448 0.72508710000E+00 -0.38977460000E+00 0.32740000000E+04 0.64870743000E-04 -0.20718302000E-03 0.99999997643E+00 449 0.64062430000E+00 0.74773310000E-01 0.32740000000E+04 0.16878772000E-03 0.31742014000E-03 0.99999993538E+00 450 0.50197140000E+00 0.11015670000E+01 0.32740000000E+04 0.25904965000E-05 0.32770252000E-03 0.99999994630E+00 451 0.11692640000E+01 0.94930290000E+00 0.32740000000E+04 0.22888705000E-03 0.67790061000E-04 0.99999997151E+00 452 0.75011810000E+00 -0.53843270000E+00 0.32740000000E+04 0.19048080000E-03 -0.22783388000E-03 0.99999995590E+00 453 -0.36188990000E+00 0.26370720000E+01 0.32740000000E+04 -0.63414534000E-03 0.22837479000E-03 0.99999977285E+00 454 0.29803750000E+00 -0.46061360000E+00 0.32740000000E+04 -0.13422228000E-03 -0.12426975000E-03 0.99999998327E+00 455 0.21167300000E+01 -0.24601590000E+01 0.32740000000E+04 0.17800927000E-03 -0.26256600000E-03 0.99999994969E+00 456 -0.21972810000E+01 -0.37623970000E+00 0.32740000000E+04 -0.58898801000E-03 -0.63696018000E-04 0.99999982452E+00 457 -0.11274100000E+00 -0.78633350000E+00 0.32740000000E+04 -0.33837929000E-03 -0.14511423000E-03 0.99999993222E+00 458 -0.63257790000E+00 -0.32879880000E+00 0.32740000000E+04 -0.53357723000E-03 -0.12996097000E-03 0.99999984920E+00 459 0.11221910000E+01 0.44458810000E-01 0.32740000000E+04 0.31820522000E-03 -0.38126171000E-04 0.99999994865E+00 460 0.11221910000E+01 0.44458810000E-01 0.32740000000E+04 0.31820522000E-03 -0.38126171000E-04 0.99999994865E+00 461 0.49606510000E+00 -0.33027030000E+00 0.32740000000E+04 -0.29147210000E-04 -0.23461613000E-03 0.99999997205E+00 462 0.95830790000E+00 -0.39874970000E+00 0.32740000000E+04 0.26188433000E-03 -0.13896724000E-03 0.99999995605E+00 463 0.11430680000E+01 0.97876400000E+00 0.32740000000E+04 0.40190085000E-03 0.21776612000E-03 0.99999989553E+00 464 0.59880760000E+00 -0.10383900000E+01 0.32740000000E+04 0.29611663000E-03 -0.12420990000E-03 0.99999994844E+00 465 0.75726509000E-02 -0.12222160000E+01 0.32740000000E+04 -0.17411630000E-03 -0.34708981000E-03 0.99999992461E+00 466 0.55058830000E+00 -0.40422160000E+00 0.32740000000E+04 -0.32404274000E-04 -0.14442633000E-03 0.99999998905E+00 467 0.55058830000E+00 -0.40422160000E+00 0.32740000000E+04 -0.32404274000E-04 -0.14442633000E-03 0.99999998905E+00 468 0.48516890000E+00 0.13042320000E+00 0.32740000000E+04 0.14062485000E-03 -0.11489318000E-04 0.99999999005E+00 469 -0.87983760000E+00 0.11096240000E+01 0.32740000000E+04 -0.23212373000E-03 0.47345291000E-03 0.99999986098E+00 470 0.10761370000E+01 -0.27898350000E+00 0.32740000000E+04 0.38421529000E-03 -0.14293846000E-03 0.99999991597E+00 471 0.12455920000E+01 0.13953840000E+00 0.32740000000E+04 0.43113102000E-03 0.12697295000E-03 0.99999989900E+00 472 -0.36188290000E-01 -0.44216750000E+00 0.32740000000E+04 -0.21465565000E-03 -0.20590849000E-03 0.99999995576E+00 473 0.10041200000E+01 -0.10830490000E+01 0.32740000000E+04 0.31193715000E-03 -0.33189778000E-03 0.99999989627E+00 474 0.21939300000E+00 -0.64869880000E+00 0.32740000000E+04 -0.48751484000E-04 -0.22277415000E-03 0.99999997400E+00 475 -0.33911920000E-01 -0.35474800000E+00 0.32740000000E+04 -0.19698586000E-03 -0.83039078000E-04 0.99999997715E+00 476 0.18153690000E+00 -0.50179220000E+00 0.32740000000E+04 -0.12853438000E-03 -0.20799170000E-03 0.99999997011E+00 477 0.44786260000E+00 0.84383340000E-01 0.32740000000E+04 0.81212856000E-04 -0.10446023000E-03 0.99999999125E+00 478 0.74286110000E+00 0.11619730000E+00 0.32740000000E+04 0.15684791000E-03 0.31297310000E-04 0.99999998721E+00 479 -0.16104360000E+00 0.10012770000E+01 0.32740000000E+04 -0.56920154000E-03 0.34392768000E-03 0.99999977886E+00 480 0.13087870000E+01 -0.68125190000E+00 0.32740000000E+04 0.39615601000E-03 -0.13700032000E-03 0.99999991215E+00 481 0.13087870000E+01 -0.68125190000E+00 0.32740000000E+04 0.39615601000E-03 -0.13700032000E-03 0.99999991215E+00 482 0.92140680000E+00 0.12028690000E+01 0.32740000000E+04 0.30267387000E-03 0.22024794000E-03 0.99999992994E+00 483 0.77296560000E+00 0.77928260000E+00 0.32740000000E+04 0.20039096000E-03 0.10696105000E-03 0.99999997420E+00 484 0.15118900000E+00 -0.83700180000E-01 0.32740000000E+04 -0.45620560000E-03 -0.37374254000E-03 0.99999982610E+00 485 -0.21059320000E+00 -0.47499490000E+00 0.32740000000E+04 -0.30180925000E-03 -0.13781348000E-03 0.99999994496E+00 486 0.72709750000E+00 0.73296970000E+00 0.32740000000E+04 0.28883273000E-03 0.16139280000E-03 0.99999994526E+00 487 0.99468170000E+00 0.44931070000E+00 0.32740000000E+04 0.24739775000E-03 0.62387648000E-04 0.99999996745E+00 488 0.13774380000E+01 -0.86723180000E+00 0.32740000000E+04 0.61969430000E-03 -0.17227592000E-03 0.99999979315E+00 489 0.38554870000E+00 -0.29364870000E+00 0.32740000000E+04 -0.16585320000E-03 -0.93745286000E-04 0.99999998185E+00 490 0.89626530000E+00 -0.81464590000E+00 0.32740000000E+04 0.24518726000E-03 -0.23507592000E-03 0.99999994231E+00 491 -0.48293590000E+00 -0.11140230000E+01 0.32740000000E+04 -0.54031622000E-03 -0.42343340000E-03 0.99999976438E+00 492 0.11843910000E+01 0.72089360000E+00 0.32740000000E+04 0.42919634000E-03 0.30285522000E-03 0.99999986203E+00 493 0.11843910000E+01 0.72089360000E+00 0.32740000000E+04 0.42919634000E-03 0.30285522000E-03 0.99999986203E+00 494 0.98439930000E+00 0.25372690000E+01 0.32740000000E+04 0.46667043000E-03 0.29921377000E-03 0.99999984634E+00 495 0.42523690000E+00 0.24716800000E+00 0.32740000000E+04 -0.10175054000E-04 0.11834880000E-03 0.99999999295E+00 496 0.12118190000E+01 0.15341440000E+00 0.32740000000E+04 0.37317933000E-03 0.13297217000E-03 0.99999992153E+00 497 -0.17712090000E+00 -0.72744300000E-01 0.32740000000E+04 -0.35643936000E-03 0.11518574000E-03 0.99999992984E+00 498 -0.17169290000E+00 0.54465040000E+00 0.32740000000E+04 -0.34294609000E-03 0.82942934000E-04 0.99999993775E+00 499 0.11331660000E+01 -0.36891020000E+00 0.32740000000E+04 0.38701485000E-03 -0.91497663000E-04 0.99999992092E+00 500 0.18876780000E+01 -0.61568010000E+00 0.32740000000E+04 -0.70953212000E-03 -0.11629455000E-02 0.99999907206E+00 501 0.16653880000E+01 0.14363830000E+01 0.32740000000E+04 0.53931767000E-03 0.56730834000E-03 0.99999969365E+00 502 -0.12527630000E+00 0.59807620000E-01 0.32740000000E+04 -0.13604922000E-03 -0.15243743000E-05 0.99999999074E+00 503 0.70300820000E+00 0.37568580000E+00 0.32740000000E+04 0.98491393000E-04 0.14668345000E-03 0.99999998439E+00 504 0.67612870000E+00 -0.55808070000E+00 0.32740000000E+04 0.18086103000E-03 -0.18961797000E-03 0.99999996567E+00 505 0.89720040000E+00 0.42588190000E+00 0.32740000000E+04 0.19435165000E-03 0.16353653000E-03 0.99999996774E+00 506 0.89720040000E+00 0.42588190000E+00 0.32740000000E+04 0.19435165000E-03 0.16353653000E-03 0.99999996774E+00 507 -0.12980740000E+00 -0.44059330000E+00 0.32740000000E+04 -0.33397356000E-03 -0.94937677000E-04 0.99999993972E+00 508 0.10904050000E+01 0.60374700000E+00 0.32740000000E+04 0.31557120000E-03 0.83260020000E-04 0.99999994674E+00 509 0.39335980000E+00 -0.10802200000E+01 0.32740000000E+04 -0.59005059000E-04 -0.27792924000E-03 0.99999995964E+00 510 0.73011540000E+00 0.73813190000E+00 0.32740000000E+04 0.14362118000E-03 0.13211515000E-03 0.99999998096E+00 511 -0.39849140000E+00 -0.14736800000E+01 0.32740000000E+04 -0.30696497000E-03 -0.42697624000E-03 0.99999986173E+00 512 0.69429970000E+00 -0.27391930000E+00 0.32740000000E+04 0.13181689000E-03 -0.95241576000E-05 0.99999999127E+00 513 0.24305590000E+01 0.41796930000E+00 0.32740000000E+04 0.97828952000E-03 -0.27892071000E-04 0.99999952109E+00 514 0.57725310000E+00 -0.22597320000E+01 0.32740000000E+04 0.11867529000E-03 0.21722230000E-03 0.99999996937E+00 515 0.51654380000E+00 0.64521140000E+00 0.32740000000E+04 0.74710188000E-04 0.23023091000E-03 0.99999997071E+00 516 -0.30232780000E+00 0.96709880000E+00 0.32740000000E+04 -0.50968857000E-03 0.24779185000E-03 0.99999983941E+00 517 0.76049720000E+00 -0.17219120000E+00 0.32740000000E+04 0.15343301000E-03 0.16380708000E-03 0.99999997481E+00 518 0.76049720000E+00 -0.17219120000E+00 0.32740000000E+04 0.15343301000E-03 0.16380708000E-03 0.99999997481E+00 519 0.79344580000E+00 0.12251090000E+00 0.32740000000E+04 0.14715103000E-03 0.34940793000E-04 0.99999998856E+00 520 0.38581440000E+00 0.83358000000E+00 0.32740000000E+04 -0.17536311000E-04 0.22957932000E-03 0.99999997349E+00 521 -0.43609860000E+00 -0.11212740000E+01 0.32740000000E+04 -0.33117857000E-03 -0.13899343000E-03 0.99999993550E+00 522 0.65634270000E-01 -0.68901890000E+00 0.32740000000E+04 -0.15881048000E-03 -0.14498208000E-03 0.99999997688E+00 523 0.22285840000E+01 0.20847330000E+01 0.32740000000E+04 0.26909425000E-03 0.28841358000E-03 0.99999992220E+00 524 0.22285840000E+01 0.20847330000E+01 0.32740000000E+04 0.26909425000E-03 0.28841358000E-03 0.99999992220E+00 525 0.11984000000E+01 0.20688380000E+00 0.32740000000E+04 0.24581500000E-03 -0.24120627000E-03 0.99999994070E+00 526 0.94695270000E+00 0.14040630000E+01 0.32740000000E+04 0.11777217000E-03 0.43833244000E-03 0.99999989700E+00 527 0.58526100000E+00 0.86953310000E+00 0.32740000000E+04 0.63252874000E-05 0.52794459000E-03 0.99999986062E+00 528 0.62720490000E+00 -0.17531040000E+01 0.32740000000E+04 0.27050357000E-03 -0.90740039000E-04 0.99999995930E+00 529 0.18105670000E+00 0.92765010000E+00 0.32740000000E+04 -0.30466329000E-03 0.89713052000E-04 0.99999994957E+00 530 0.26247900000E+01 -0.17948890000E+01 0.32740000000E+04 0.50483498000E-03 -0.13409813000E-03 0.99999986358E+00 531 -0.14337310000E+00 0.33737130000E-01 0.32740000000E+04 -0.19239905000E-03 0.89508894000E-05 0.99999998145E+00 532 0.70757660000E+00 0.17006940000E+01 0.32740000000E+04 0.29851714000E-03 0.30633883000E-03 0.99999990852E+00 533 -0.69599010000E-01 0.82035240000E+00 0.32740000000E+04 -0.42322278000E-03 -0.16034188000E-03 0.99999989759E+00 534 0.11173220000E+01 -0.11949310000E+01 0.32740000000E+04 0.26721385000E-03 0.13527062000E-03 0.99999995515E+00 535 -0.21381020000E+00 -0.10718130000E+01 0.32740000000E+04 -0.37491065000E-03 -0.55134017000E-03 0.99999977773E+00 536 -0.21381020000E+00 -0.10718130000E+01 0.32740000000E+04 -0.37491065000E-03 -0.55134017000E-03 0.99999977773E+00 537 0.11328630000E+01 0.96968060000E+00 0.32740000000E+04 0.41748662000E-03 0.25240742000E-03 0.99999988100E+00 538 0.12644090000E+01 0.33309910000E+00 0.32740000000E+04 0.44389570000E-03 0.15081374000E-03 0.99999989011E+00 539 0.87904680000E+00 0.12111130000E+01 0.32740000000E+04 0.27900067000E-03 0.34041630000E-03 0.99999990314E+00 540 0.10523300000E+01 0.92225210000E+00 0.32740000000E+04 0.27857622000E-03 0.22077515000E-03 0.99999993683E+00 541 0.76209190000E+00 0.81608560000E+00 0.32740000000E+04 0.18889103000E-03 0.22406968000E-03 0.99999995706E+00 542 0.12379970000E+01 0.61396910000E+00 0.32740000000E+04 0.38975239000E-03 0.17624896000E-03 0.99999990851E+00 543 0.11638570000E+01 0.92994480000E+00 0.32740000000E+04 0.35764562000E-03 0.23838055000E-03 0.99999990763E+00 544 0.23116490000E+01 0.42367980000E+00 0.32740000000E+04 0.85698842000E-03 0.37383399000E-03 0.99999956291E+00 545 -0.19578570000E+00 -0.46160980000E-01 0.32740000000E+04 -0.34430128000E-03 -0.23467059000E-04 0.99999994045E+00 546 -0.19578570000E+00 -0.46160980000E-01 0.32740000000E+04 -0.34430128000E-03 -0.23467059000E-04 0.99999994045E+00 547 0.24701160000E+01 -0.21320790000E+01 0.32740000000E+04 0.12186114000E-03 -0.17408525000E-03 0.99999997742E+00 548 0.12094880000E+01 0.17817680000E+00 0.32740000000E+04 0.43628534000E-03 0.81522594000E-05 0.99999990479E+00 549 0.38443710000E-01 0.11078750000E+01 0.32740000000E+04 -0.25849338000E-03 0.34128269000E-03 0.99999990835E+00 550 0.39810510000E+00 0.19892310000E+00 0.32740000000E+04 -0.34092340000E-04 0.44116379000E-04 0.99999999845E+00 551 0.12471220000E+01 0.13823740000E+01 0.32740000000E+04 0.50264882000E-03 0.31191885000E-03 0.99999982503E+00 552 0.78244270000E+00 -0.12815280000E+01 0.32740000000E+04 0.28391113000E-03 -0.35304780000E-03 0.99999989738E+00 553 -0.34553470000E+00 -0.40673100000E+00 0.32740000000E+04 -0.33810455000E-03 -0.24149855000E-03 0.99999991368E+00 554 -0.15480550000E+01 0.10278190000E+01 0.32740000000E+04 -0.49822679000E-03 0.33835930000E-03 0.99999981864E+00 555 -0.27198320000E+00 0.34457060000E+00 0.32740000000E+04 -0.42963770000E-03 -0.57834062000E-04 0.99999990603E+00 556 0.41125130000E+00 -0.71711510000E+00 0.32740000000E+04 0.33303215000E-04 -0.17843279000E-03 0.99999998353E+00 557 0.55290040000E+00 0.10936050000E+01 0.32740000000E+04 0.59475824000E-04 0.32284862000E-03 0.99999994612E+00 558 -0.14311700000E+00 0.86679330000E+00 0.32740000000E+04 -0.29573042000E-03 0.28442300000E-03 0.99999991582E+00 559 0.75448300000E-01 0.29012750000E+01 0.32740000000E+04 -0.38690644000E-03 0.29971550000E-03 0.99999988024E+00 560 0.75448300000E-01 0.29012750000E+01 0.32740000000E+04 -0.38690644000E-03 0.29971550000E-03 0.99999988024E+00 561 -0.92060490000E+00 0.25646250000E+01 0.32740000000E+04 -0.20192766000E-03 0.41697614000E-03 0.99999989268E+00 562 0.94183440000E+00 -0.38105850000E+00 0.32740000000E+04 0.12029001000E-03 -0.91788788000E-04 0.99999998855E+00 563 0.16219500000E+01 0.27011350000E+01 0.32740000000E+04 0.71607053000E-03 0.18966997000E-03 0.99999972563E+00 564 0.48166270000E+00 -0.19401550000E+01 0.32740000000E+04 0.20318662000E-03 -0.46042600000E-03 0.99999987336E+00 565 0.42226580000E+00 0.92825910000E+00 0.32740000000E+04 -0.30592444000E-05 0.29934847000E-03 0.99999995519E+00 566 0.81536450000E+00 -0.33851390000E+00 0.32740000000E+04 0.25752466000E-03 -0.10458464000E-03 0.99999996137E+00 567 0.81321450000E+00 0.11151460000E+01 0.32740000000E+04 0.21741986000E-03 0.25409352000E-03 0.99999994408E+00 568 -0.65324370000E+00 -0.10422910000E+01 0.32740000000E+04 -0.62328205000E-03 -0.36737177000E-03 0.99999973828E+00 569 0.67909140000E+00 -0.16555490000E+01 0.32740000000E+04 0.70121750000E-04 -0.32935952000E-03 0.99999994330E+00 570 -0.32167480000E-01 0.19038470000E+01 0.32740000000E+04 -0.44067120000E-03 0.52294522000E-05 0.99999990289E+00 571 0.73864260000E+00 -0.46912650000E+00 0.32740000000E+04 0.95532210000E-04 -0.12606762000E-03 0.99999998749E+00 572 0.95013120000E+00 -0.64184260000E+00 0.32740000000E+04 0.29897975000E-03 -0.22513224000E-03 0.99999992996E+00 573 0.11970040000E+01 -0.59323230000E+00 0.32740000000E+04 0.40503888000E-03 -0.24215526000E-03 0.99999988865E+00 574 0.82070850000E+00 0.55592340000E+00 0.32740000000E+04 0.21496424000E-03 0.15374235000E-03 0.99999996508E+00 575 0.39356030000E+00 -0.54103680000E+00 0.32740000000E+04 0.70697047000E-06 -0.16202292000E-03 0.99999998687E+00 576 -0.22298700000E+00 -0.29912330000E+00 0.32740000000E+04 -0.33221935000E-03 -0.11662438000E-03 0.99999993801E+00 577 -0.82840970000E-01 0.99799510000E+00 0.32740000000E+04 -0.21263373000E-03 0.17417253000E-03 0.99999996223E+00 578 0.11144170000E+01 -0.64023440000E+00 0.32740000000E+04 0.33221609000E-03 -0.15626744000E-03 0.99999993261E+00 579 -0.14797270000E+01 -0.15630000000E+01 0.32740000000E+04 -0.75319392000E-03 -0.40640321000E-03 0.99999963377E+00 580 0.17979680000E+00 -0.22692920000E+00 0.32740000000E+04 -0.20079422000E-03 0.10870821000E-03 0.99999997393E+00 581 0.10851370000E+01 -0.14760500000E+01 0.32740000000E+04 0.62907330000E-03 -0.25743971000E-03 0.99999976900E+00 582 -0.93796830000E+00 -0.18770260000E+01 0.32740000000E+04 -0.81946375000E-03 0.43680568000E-03 0.99999956884E+00 583 0.76327210000E+00 -0.60459910000E+00 0.32740000000E+04 0.16866752000E-03 -0.19268204000E-03 0.99999996721E+00 584 0.83282050000E+00 0.26398270000E+00 0.32740000000E+04 0.20959317000E-03 -0.22017039000E-04 0.99999997779E+00 585 0.20809570000E+00 -0.20212090000E+01 0.32740000000E+04 -0.11065399000E-03 0.17935966000E-03 0.99999997779E+00 586 0.20809570000E+00 -0.20212090000E+01 0.32740000000E+04 -0.11065399000E-03 0.17935966000E-03 0.99999997779E+00 587 0.28746610000E+00 -0.55867770000E+00 0.32740000000E+04 -0.10586993000E-03 -0.25586813000E-03 0.99999996166E+00 588 0.11130290000E+01 -0.10012650000E+01 0.32740000000E+04 0.44419215000E-03 -0.36722689000E-03 0.99999983392E+00 589 0.38665390000E+00 -0.84312390000E+00 0.32740000000E+04 0.40899527000E-05 -0.35312769000E-03 0.99999993764E+00 590 0.13099160000E+01 0.66914010000E+00 0.32740000000E+04 0.62247628000E-03 0.24623901000E-03 0.99999977594E+00 591 0.65106980000E+00 -0.74580850000E-01 0.32740000000E+04 0.16523010000E-03 0.21659394000E-04 0.99999998611E+00 592 0.12910510000E+01 -0.96856170000E+00 0.32740000000E+04 0.54354756000E-03 -0.25097927000E-03 0.99999982078E+00 593 0.78441930000E-01 0.43191290000E+00 0.32740000000E+04 -0.27297510000E-03 0.15683853000E-03 0.99999995044E+00 594 0.19281520000E+00 -0.46160120000E+00 0.32740000000E+04 -0.27334079000E-03 -0.44308450000E-04 0.99999996166E+00 595 0.11243220000E+01 0.30525320000E+00 0.32740000000E+04 0.37265127000E-03 0.14068943000E-03 0.99999992067E+00 596 -0.11854490000E+00 0.28596390000E+00 0.32740000000E+04 -0.24912399000E-03 0.29673449000E-04 0.99999996853E+00 597 0.61974060000E+00 0.82953780000E+00 0.32740000000E+04 0.16767882000E-03 0.21372281000E-03 0.99999996310E+00 598 0.98290830000E+00 -0.60017750000E-01 0.32740000000E+04 0.26459398000E-03 0.33984608000E-04 0.99999996442E+00 599 0.10252660000E+01 -0.51226550000E+00 0.32740000000E+04 0.32273357000E-03 -0.16766996000E-03 0.99999993386E+00 600 0.53432270000E-01 0.91573000000E+00 0.32740000000E+04 -0.19151485000E-03 0.26641719000E-03 0.99999994617E+00 601 0.88477900000E+00 0.67456080000E+00 0.32740000000E+04 0.36927115000E-03 0.22309438000E-03 0.99999990693E+00 602 0.42420650000E+00 -0.24459740000E+00 0.32740000000E+04 -0.71147100000E-04 -0.12099635000E-03 0.99999999015E+00 603 -0.12202700000E+01 0.94398090000E+00 0.32740000000E+04 -0.11703733000E-03 -0.27923295000E-03 0.99999995417E+00 604 -0.31392770000E+00 -0.83650380000E+00 0.32740000000E+04 -0.37636486000E-03 -0.16895375000E-03 0.99999991490E+00 605 -0.31392770000E+00 -0.83650380000E+00 0.32740000000E+04 -0.37636486000E-03 -0.16895375000E-03 0.99999991490E+00 606 0.75003870000E+00 -0.80318090000E+00 0.32740000000E+04 0.19118642000E-03 -0.26358062000E-03 0.99999994699E+00 607 0.94801910000E+00 0.14459350000E+01 0.32740000000E+04 0.19145814000E-03 0.36614359000E-03 0.99999991464E+00 608 0.12818630000E+01 -0.92635100000E+00 0.32740000000E+04 0.54687663000E-03 -0.24320566000E-03 0.99999982089E+00 609 0.12222790000E+01 0.34362270000E+00 0.32740000000E+04 0.35703767000E-03 0.64195061000E-04 0.99999993420E+00 610 0.62541540000E+00 0.21950180000E-01 0.32740000000E+04 0.10028645000E-03 -0.30033680000E-04 0.99999999452E+00 611 0.13093610000E+01 -0.31840060000E+00 0.32740000000E+04 0.52312139000E-03 -0.85945561000E-04 0.99999985948E+00 612 0.70377010000E+00 -0.61901440000E+00 0.32740000000E+04 0.20829248000E-03 -0.11036685000E-03 0.99999997222E+00 613 0.15051900000E+00 0.95687640000E+00 0.32740000000E+04 -0.26111797000E-04 0.17214326000E-03 0.99999998484E+00 614 0.10639470000E+01 0.16712300000E+00 0.32740000000E+04 0.35505771000E-03 -0.93069342000E-04 0.99999993264E+00 615 0.93596020000E+00 -0.11848500000E+01 0.32740000000E+04 0.28300224000E-03 -0.24552250000E-03 0.99999992981E+00 616 -0.32025010000E+00 0.15867450000E+01 0.32740000000E+04 -0.57273911000E-03 -0.49013681000E-04 0.99999983478E+00 617 0.26318510000E+00 0.24474280000E+01 0.32740000000E+04 -0.20647013000E-03 0.19849112000E-03 0.99999995899E+00 618 0.21011280000E+00 0.16320270000E+01 0.32740000000E+04 -0.19212636000E-03 -0.84377811000E-04 0.99999997798E+00 619 0.10985160000E+01 0.43691590000E+00 0.32740000000E+04 0.23745759000E-03 0.11571877000E-03 0.99999996511E+00 620 0.10985160000E+01 0.43691590000E+00 0.32740000000E+04 0.23745759000E-03 0.11571877000E-03 0.99999996511E+00 621 0.66723940000E+00 -0.66739210000E+00 0.32740000000E+04 0.47047830000E-04 -0.25488093000E-03 0.99999996641E+00 622 0.37037770000E+00 0.51281740000E-01 0.32740000000E+04 0.34075005000E-04 0.67996341000E-04 0.99999999711E+00 623 0.12124780000E+01 -0.24412040000E+00 0.32740000000E+04 0.37014825000E-03 -0.15581081000E-03 0.99999991936E+00 624 0.13794610000E+01 -0.87524580000E-01 0.32740000000E+04 0.58405922000E-03 -0.17548045000E-03 0.99999981404E+00 625 0.88963270000E+00 -0.10816030000E+01 0.32740000000E+04 0.34712764000E-03 -0.32611212000E-03 0.99999988658E+00 626 -0.57456420000E+00 -0.21447030000E+01 0.32740000000E+04 0.65286533000E-03 -0.14248719000E-03 0.99999977673E+00 627 0.78867010000E+00 -0.37548190000E+00 0.32740000000E+04 0.31027757000E-03 -0.88567933000E-04 0.99999994794E+00 628 0.52959360000E+00 -0.54153720000E+00 0.32740000000E+04 0.63177227000E-04 -0.26176314000E-03 0.99999996374E+00 629 -0.10543800000E+00 0.16156060000E+01 0.32740000000E+04 -0.41374005000E-03 0.28378103000E-03 0.99999987414E+00 630 0.50174620000E-01 0.10851410000E+01 0.32740000000E+04 -0.30108911000E-03 0.77508759000E-06 0.99999995467E+00 631 0.51685140000E+00 0.80446150000E+00 0.32740000000E+04 0.31093183000E-04 0.22510660000E-03 0.99999997418E+00 632 -0.50370450000E+00 0.28773570000E+00 0.32740000000E+04 -0.54847304000E-03 0.11095370000E-03 0.99999984343E+00 633 0.26317290000E-01 -0.25918400000E+01 0.32740000000E+04 -0.67749177000E-03 -0.38012528000E-03 0.99999969825E+00 634 0.38423580000E+00 -0.43795420000E+00 0.32740000000E+04 0.46712488000E-04 -0.16904248000E-03 0.99999998462E+00 635 0.50984080000E+00 -0.17036710000E+00 0.32740000000E+04 -0.75428914000E-04 0.41334759000E-03 0.99999991173E+00 636 0.97723030000E+00 0.50502630000E+00 0.32740000000E+04 0.25476268000E-03 0.12359253000E-03 0.99999995991E+00 637 0.49276410000E+00 -0.84155830000E+00 0.32740000000E+04 0.38256745000E-04 0.32448873000E-03 0.99999994662E+00 638 -0.30510250000E+00 0.39708960000E+00 0.32740000000E+04 -0.54994755000E-03 -0.28518607000E-05 0.99999984877E+00 639 0.91537110000E-01 -0.24698560000E+00 0.32740000000E+04 -0.13851916000E-03 -0.22939809000E-03 0.99999996409E+00 640 0.63315380000E+00 0.52509350000E+00 0.32740000000E+04 0.12923512000E-03 0.15454607000E-03 0.99999997971E+00 641 0.34646390000E+00 0.23059230000E+00 0.32740000000E+04 0.70129630000E-04 0.25580943000E-04 0.99999999721E+00 642 0.34646390000E+00 0.23059230000E+00 0.32740000000E+04 0.70129630000E-04 0.25580943000E-04 0.99999999721E+00 643 0.17234610000E-01 -0.19144190000E+00 0.32740000000E+04 -0.21965703000E-03 -0.10980204000E-03 0.99999996985E+00 644 0.45268140000E+00 0.29337260000E+01 0.32740000000E+04 0.30057474000E-04 0.33782801000E-03 0.99999994248E+00 645 0.18063470000E-01 -0.18290370000E+00 0.32740000000E+04 -0.17814670000E-03 0.19642831000E-03 0.99999996484E+00 646 0.10759940000E+01 -0.47894230000E+00 0.32740000000E+04 0.39634798000E-03 -0.13710356000E-03 0.99999991206E+00 647 0.82983730000E+00 0.75734600000E-01 0.32740000000E+04 0.20186535000E-03 -0.16770189000E-04 0.99999997948E+00 648 -0.41834430000E+00 0.41916760000E+00 0.32740000000E+04 -0.68622519000E-03 0.13097387000E-03 0.99999975597E+00 649 0.60369900000E+00 0.22061650000E+00 0.32740000000E+04 0.13550190000E-03 0.28859451000E-04 0.99999999040E+00 650 0.52729980000E+00 0.91217120000E+00 0.32740000000E+04 0.52911153000E-04 0.23590417000E-03 0.99999997077E+00 651 0.10144270000E+01 -0.88937190000E+00 0.32740000000E+04 0.35106172000E-03 -0.35194089000E-03 0.99999987645E+00 652 0.10295330000E+01 -0.32076050000E+00 0.32740000000E+04 0.26498700000E-03 -0.26160635000E-04 0.99999996455E+00 653 -0.40684720000E-01 0.12146480000E+01 0.32740000000E+04 -0.25873617000E-03 0.38146068000E-03 0.99999989377E+00 654 -0.40361643000E-02 -0.32510180000E+00 0.32740000000E+04 -0.26887219000E-03 -0.17346632000E-03 0.99999994881E+00 655 -0.87300660000E+00 0.22661130000E+01 0.32740000000E+04 -0.63718006000E-03 0.42799267000E-03 0.99999970541E+00 656 0.34039000000E+00 -0.33593090000E+00 0.32740000000E+04 -0.43545719000E-03 0.27035535000E-03 0.99999986864E+00 657 0.53048110000E+00 -0.28553790000E+00 0.32740000000E+04 0.98328157000E-04 -0.29306256000E-03 0.99999995222E+00 658 0.64366610000E+00 -0.22051620000E+00 0.32740000000E+04 0.19344979000E-03 -0.72056864000E-04 0.99999997869E+00 659 0.28524400000E+00 0.11537530000E+00 0.32740000000E+04 -0.12920155000E-03 0.31378582000E-04 0.99999999116E+00 660 0.11179840000E+01 0.63635550000E+00 0.32740000000E+04 0.38679622000E-03 0.18492312000E-03 0.99999990810E+00 661 0.10240450000E+01 -0.17159400000E+00 0.32740000000E+04 0.45592317000E-03 -0.10731170000E-03 0.99999989031E+00 662 0.10473890000E+01 0.39425770000E+00 0.32740000000E+04 0.48012150000E-03 0.14872619000E-03 0.99999987368E+00 663 0.10724070000E+01 0.13205270000E+00 0.32740000000E+04 0.31000527000E-03 0.61811770000E-04 0.99999995004E+00 664 -0.82466300000E+00 0.36213090000E+00 0.32740000000E+04 -0.98440051000E-03 0.11930068000E-03 0.99999950836E+00 665 0.56053860000E+00 -0.28550260000E+00 0.32740000000E+04 0.16018956000E-03 -0.78238212000E-04 0.99999998411E+00 666 0.31210450000E+00 -0.46991610000E-01 0.32740000000E+04 -0.29684091000E-03 -0.18214626000E-03 0.99999993935E+00 667 -0.23722280000E+00 -0.24419860000E+00 0.32740000000E+04 -0.37805407000E-03 -0.94466959000E-04 0.99999992408E+00 668 -0.20672830000E+00 -0.93083890000E+00 0.32740000000E+04 -0.67098928000E-03 -0.90503786000E-03 0.99999936534E+00 669 0.63250470000E+00 -0.26103050000E-01 0.32740000000E+04 0.14780281000E-03 -0.26738540000E-04 0.99999998872E+00 670 0.32034870000E+00 -0.45151420000E+00 0.32740000000E+04 -0.42444644000E-04 -0.12188288000E-03 0.99999999167E+00 671 0.10859220000E+01 0.86874750000E+00 0.32740000000E+04 0.33661022000E-03 0.32042564000E-03 0.99999989201E+00 672 0.11449650000E+01 0.20745250000E+00 0.32740000000E+04 0.36495447000E-03 -0.28307352000E-05 0.99999993340E+00 673 0.17674530000E+01 0.38485720000E+01 0.32740000000E+04 0.89937117000E-03 -0.60125481000E-03 0.99999941481E+00 674 0.91064210000E+00 -0.98193660000E-02 0.32740000000E+04 0.34037663000E-03 0.40310870000E-05 0.99999994206E+00 675 0.10879990000E+01 -0.18608830000E+00 0.32740000000E+04 0.42091592000E-03 -0.14754935000E-03 0.99999990053E+00 676 0.34168060000E+00 -0.27051600000E+00 0.32740000000E+04 -0.10047432000E-03 -0.32187425000E-03 0.99999994315E+00 677 0.34168060000E+00 -0.27051600000E+00 0.32740000000E+04 -0.10047432000E-03 -0.32187425000E-03 0.99999994315E+00 678 0.10730370000E+01 -0.96846570000E+00 0.32740000000E+04 0.38666598000E-03 -0.15766236000E-02 0.99999868237E+00 679 0.11817150000E+01 0.55739210000E+00 0.32740000000E+04 0.35167777000E-03 0.53027736000E-04 0.99999993676E+00 680 0.73994450000E+00 -0.44346920000E+00 0.32740000000E+04 0.19466867000E-03 -0.23524098000E-03 0.99999995338E+00 681 0.17737060000E+00 -0.10846150000E+00 0.32740000000E+04 -0.89722846000E-04 -0.41842923000E-04 0.99999999510E+00 682 0.23980220000E+00 0.37136270000E+00 0.32740000000E+04 -0.50823692000E-04 0.16802295000E-03 0.99999998459E+00 683 0.12893100000E+01 0.25694110000E+01 0.32740000000E+04 -0.27863379000E-03 -0.19815520000E-03 0.99999994155E+00 684 0.71926480000E+00 -0.11199070000E+01 0.32740000000E+04 0.35377414000E-03 -0.32518886000E-03 0.99999988455E+00 685 0.36463950000E-01 -0.21390140000E+00 0.32740000000E+04 -0.28345297000E-03 -0.22126497000E-03 0.99999993535E+00 686 0.71316980000E+00 -0.80625400000E+00 0.32740000000E+04 0.15931118000E-03 -0.27480145000E-03 0.99999994955E+00 687 0.96909360000E+00 -0.70016560000E-01 0.32740000000E+04 0.18625327000E-03 -0.10264032000E-04 0.99999998260E+00 688 0.52281730000E+00 0.14059690000E+01 0.32740000000E+04 -0.64949145000E-05 0.31296394000E-03 0.99999995101E+00 689 -0.14306570000E+00 0.51491540000E+00 0.32740000000E+04 -0.22859056000E-03 0.21040392000E-03 0.99999995174E+00 690 0.63875910000E+00 0.21395680000E+00 0.32740000000E+04 0.17232739000E-03 0.58077989000E-04 0.99999998347E+00 691 0.81145080000E+00 -0.29262910000E-01 0.32740000000E+04 0.25389154000E-03 -0.53213083000E-04 0.99999996635E+00 692 -0.23775620000E+00 -0.47368710000E+00 0.32740000000E+04 -0.27442133000E-03 -0.13263343000E-03 0.99999995355E+00 693 -0.44871350000E+00 -0.37861110000E-01 0.32740000000E+04 0.44211376000E-03 0.13980113000E-04 0.99999990217E+00 694 0.25400770000E+00 0.39972480000E+00 0.32740000000E+04 -0.17933889000E-04 0.28119470000E-04 0.99999999944E+00 695 0.18571220000E+00 0.12154020000E+00 0.32740000000E+04 -0.16610352000E-03 0.24053041000E-04 0.99999998592E+00 696 -0.88935100000E+00 0.17621230000E+01 0.32740000000E+04 -0.10014548000E-02 0.32537579000E-03 0.99999944561E+00 697 0.92656580000E-01 -0.73759410000E+00 0.32740000000E+04 -0.21085324000E-03 -0.26867134000E-03 0.99999994168E+00 698 0.16092640000E+01 -0.19041030000E+01 0.32740000000E+04 0.36115589000E-03 -0.28422213000E-03 0.99999989439E+00 699 0.16092640000E+01 -0.19041030000E+01 0.32740000000E+04 0.36115589000E-03 -0.28422213000E-03 0.99999989439E+00 700 0.97362170000E+00 0.90574026000E-02 0.32740000000E+04 0.36932787000E-03 -0.88485511000E-04 0.99999992788E+00 701 0.58005520000E+00 -0.12050150000E+01 0.32740000000E+04 0.54660934000E-03 0.89990972000E-05 0.99999985057E+00 702 -0.73632000000E+00 0.18969220000E+01 0.32740000000E+04 -0.80219825000E-03 0.63951127000E-04 0.99999967619E+00 703 0.21386140000E+00 -0.10717030000E+01 0.32740000000E+04 -0.30836942000E-04 -0.26976716000E-03 0.99999996314E+00 704 0.99183460000E+00 0.10319860000E-01 0.32740000000E+04 0.30063174000E-03 -0.14736150000E-03 0.99999994395E+00 705 0.99183460000E+00 0.10319860000E-01 0.32740000000E+04 0.30063174000E-03 -0.14736150000E-03 0.99999994395E+00 706 0.25058830000E+01 -0.20152770000E+01 0.32740000000E+04 0.21012052000E-03 -0.90986048000E-03 0.99999956400E+00 707 -0.18911240000E+00 0.34013200000E+00 0.32740000000E+04 -0.24561054000E-03 0.21282579000E-03 0.99999994719E+00 708 0.50290490000E+00 0.88016020000E+00 0.32740000000E+04 -0.73451745000E-04 0.19050123000E-03 0.99999997916E+00 709 0.29923916000E-02 -0.14115750000E+00 0.32740000000E+04 -0.28261004000E-03 -0.58731424000E-04 0.99999995834E+00 710 0.11736240000E+01 0.71721370000E+00 0.32740000000E+04 0.39182734000E-03 0.20458418000E-03 0.99999990231E+00 711 -0.15804600000E+01 -0.93384290000E+00 0.32740000000E+04 -0.17307058000E-02 -0.42199346000E-03 0.99999841329E+00 712 0.10952550000E+01 0.40333550000E+00 0.32740000000E+04 0.42506450000E-03 0.11038204000E-03 0.99999990357E+00 713 0.88306260000E+00 -0.37097720000E+00 0.32740000000E+04 0.32185970000E-03 -0.48830494000E-04 0.99999994701E+00 714 0.92531750000E+00 0.25294490000E-01 0.32740000000E+04 0.65766025000E-03 0.97877614000E-03 0.99999930474E+00 715 0.12211010000E+01 -0.87684760000E+00 0.32740000000E+04 0.44126529000E-03 -0.47047620000E-03 0.99999979197E+00 716 0.85219780000E+00 0.62566940000E+00 0.32740000000E+04 0.22579567000E-03 0.58895344000E-04 0.99999997277E+00 717 0.38465770000E+00 0.54356130000E+00 0.32740000000E+04 -0.29290981000E-04 0.99363329000E-04 0.99999999463E+00 718 0.47722110000E+00 -0.53421490000E+00 0.32740000000E+04 -0.27267377000E-04 -0.13410728000E-03 0.99999999064E+00 719 0.47722110000E+00 -0.53421490000E+00 0.32740000000E+04 -0.27267377000E-04 -0.13410728000E-03 0.99999999064E+00 720 -0.32627540000E+00 -0.13624620000E+01 0.32740000000E+04 -0.43953981000E-03 -0.40603298000E-03 0.99999982097E+00 721 0.45695180000E+00 -0.12625250000E+01 0.32740000000E+04 0.13290020000E-03 -0.38759309000E-03 0.99999991605E+00 722 0.49376350000E+00 -0.36751810000E+00 0.32740000000E+04 0.82336694000E-04 -0.80094169000E-05 0.99999999658E+00 723 0.19629320000E+01 0.17099720000E+01 0.32740000000E+04 0.53096778000E-03 -0.38757941000E-03 0.99999978393E+00 724 0.60320960000E+00 -0.68346040000E+00 0.32740000000E+04 0.36131103000E-04 -0.28416843000E-03 0.99999995897E+00 725 0.86137200000E+00 -0.69195628000E-02 0.32740000000E+04 0.31578634000E-03 -0.47975904000E-04 0.99999994899E+00 726 0.27572460000E+00 -0.12603230000E+00 0.32740000000E+04 0.11935167000E-03 -0.99956422000E-04 0.99999998788E+00 727 -0.15077330000E+01 0.19870240000E+01 0.32740000000E+04 -0.69967052000E-03 0.31394768000E-03 0.99999970595E+00 728 0.63430040000E+00 -0.60958440000E+00 0.32740000000E+04 0.18389718000E-03 -0.21684526000E-03 0.99999995958E+00 729 0.22207770000E+00 0.51678500000E+00 0.32740000000E+04 -0.85864966000E-04 0.19267527000E-03 0.99999997775E+00 730 0.19011190000E+00 0.65791340000E+00 0.32740000000E+04 -0.64682172000E-04 0.17255933000E-03 0.99999998302E+00 731 -0.22847650000E+00 0.73603370000E+00 0.32740000000E+04 -0.31336746000E-03 0.24677158000E-03 0.99999992045E+00 732 0.10399930000E+01 0.25128530000E+00 0.32740000000E+04 0.44046005000E-03 0.82498118000E-05 0.99999990296E+00 733 0.45293260000E+00 -0.92855370000E+00 0.32740000000E+04 -0.11083001000E-03 -0.14125663000E-03 0.99999998388E+00 734 -0.92171530000E-01 0.60749230000E+00 0.32740000000E+04 -0.13884976000E-03 0.26474829000E-03 0.99999995531E+00 735 -0.54972450000E+00 0.33188210000E+01 0.32740000000E+04 0.60781126000E-03 0.10496500000E-03 0.99999980977E+00 736 -0.44891390000E+00 -0.16410940000E+01 0.32740000000E+04 -0.64112170000E-03 -0.60606474000E-03 0.99999961082E+00 737 -0.75477030000E+00 -0.12110390000E+01 0.32740000000E+04 -0.12195854000E-02 0.21274645000E-04 0.99999925608E+00 738 -0.75477030000E+00 -0.12110390000E+01 0.32740000000E+04 -0.12195854000E-02 0.21274645000E-04 0.99999925608E+00 739 -0.12085040000E+00 0.27295400000E-01 0.32740000000E+04 -0.30956409000E-03 -0.21713244000E-04 0.99999995185E+00 740 0.16596520000E+01 -0.16740260000E+01 0.32740000000E+04 0.79847802000E-03 0.76033539000E-04 0.99999967833E+00 741 0.13814620000E+01 0.17242410000E+01 0.32740000000E+04 0.41366075000E-03 0.20761011000E-03 0.99999989289E+00 742 0.10525920000E+01 0.10604550000E+01 0.32740000000E+04 0.32856371000E-03 0.22421172000E-03 0.99999992089E+00 743 -0.91031720000E-01 -0.25556240000E+00 0.32740000000E+04 -0.21611083000E-03 -0.71083727000E-04 0.99999997412E+00 744 -0.50468180000E-01 -0.11235370000E+01 0.32740000000E+04 -0.25193117000E-03 -0.46542170000E-03 0.99999985996E+00 745 0.57666870000E+00 0.70335190000E-01 0.32740000000E+04 0.87639528000E-05 -0.18635465000E-04 0.99999999979E+00 746 0.65402680000E+00 0.66685130000E+00 0.32740000000E+04 -0.43506618000E-03 0.66788233000E-03 0.99999968233E+00 747 0.95752380000E+00 0.14840730000E+01 0.32740000000E+04 0.28200724000E-03 0.26807381000E-03 0.99999992430E+00 748 0.82068500000E+00 0.93060870000E+00 0.32740000000E+04 0.30645591000E-04 0.23767762000E-03 0.99999997129E+00 749 -0.25925310000E+00 -0.19038370000E+00 0.32740000000E+04 -0.28360184000E-03 -0.11970453000E-03 0.99999995262E+00 750 0.79144060000E+00 -0.87637600000E-01 0.32740000000E+04 0.10841169000E-03 -0.77553283000E-04 0.99999999112E+00 751 0.10156890000E+01 0.92529030000E+00 0.32740000000E+04 0.24072404000E-03 0.16973831000E-03 0.99999995662E+00 752 0.94252290000E+00 -0.21055330000E+00 0.32740000000E+04 0.35871909000E-03 -0.89562454000E-04 0.99999993165E+00 753 -0.18383980000E+00 -0.42268330000E+00 0.32740000000E+04 -0.35461446000E-03 -0.15720898000E-03 0.99999992477E+00 754 -0.12741590000E+00 -0.33624470000E+00 0.32740000000E+04 -0.23461060000E-03 -0.14626901000E-03 0.99999996178E+00 755 0.12336690000E+01 0.14700490000E+00 0.32740000000E+04 0.49133954000E-03 0.90229669000E-05 0.99999987925E+00 756 0.60623810000E+00 -0.10029590000E+00 0.32740000000E+04 0.10337071000E-03 0.62838284000E-04 0.99999999268E+00 757 0.68289360000E+00 -0.14538680000E+01 0.32740000000E+04 0.28155386000E-03 -0.41008278000E-03 0.99999987628E+00 758 -0.26900170000E-01 -0.74643490000E+00 0.32740000000E+04 -0.14616070000E-03 -0.16193801000E-03 0.99999997621E+00 759 0.65281880000E+00 0.54665690000E+00 0.32740000000E+04 0.13463564000E-03 -0.23933449000E-03 0.99999996230E+00 760 0.15047420000E+01 0.21878510000E+00 0.32740000000E+04 0.18916695000E-03 0.15971238000E-03 0.99999996935E+00 761 -0.52165680000E+00 0.21837810000E+00 0.32740000000E+04 -0.98743127000E-03 -0.53466945000E-04 0.99999951106E+00 762 0.57178360000E+00 0.12712320000E+01 0.32740000000E+04 -0.11374523000E-04 0.27574447000E-03 0.99999996192E+00 763 0.10192980000E+01 0.13621070000E+01 0.32740000000E+04 0.31938736000E-03 0.40088865000E-03 0.99999986864E+00 764 0.45777660000E+00 0.47059600000E+00 0.32740000000E+04 0.94898322000E-04 0.13670296000E-03 0.99999998615E+00 765 0.40949870000E+00 0.13036610000E+00 0.32740000000E+04 -0.35024270000E-04 0.18445309000E-04 0.99999999922E+00 766 0.10958790000E+01 0.17165190000E-01 0.32740000000E+04 0.29047037000E-03 0.23247732000E-04 0.99999995754E+00 767 0.10958790000E+01 0.17165190000E-01 0.32740000000E+04 0.29047037000E-03 0.23247732000E-04 0.99999995754E+00 768 -0.57883520000E+00 0.20995760000E+01 0.32740000000E+04 -0.58463472000E-03 0.99629840000E-04 0.99999982414E+00 769 0.74908950000E+00 0.12898670000E+01 0.32740000000E+04 0.28305312000E-03 0.43664145000E-03 0.99999986461E+00 770 0.67706890000E+00 -0.31034790000E+00 0.32740000000E+04 -0.12892153000E-03 0.34352968000E-03 0.99999993268E+00 771 0.43542910000E+00 0.31045790000E+00 0.32740000000E+04 0.25459403000E-04 0.13247487000E-03 0.99999999090E+00 772 0.85742090000E+00 -0.12896050000E+01 0.32740000000E+04 0.24968293000E-03 -0.34057812000E-03 0.99999991083E+00 773 0.14646150000E+01 -0.12711710000E+01 0.32740000000E+04 0.60198887000E-03 -0.30076515000E-03 0.99999977357E+00 774 0.13792990000E+01 0.61442610000E+00 0.32740000000E+04 0.47366167000E-03 0.13125173000E-03 0.99999987921E+00 775 0.89810500000E+00 -0.85130370000E+00 0.32740000000E+04 0.29494349000E-03 -0.22758260000E-03 0.99999993061E+00 776 0.35433790000E+00 0.11775190000E+00 0.32740000000E+04 -0.89593432000E-05 0.67137435000E-05 0.99999999994E+00 777 -0.14037930000E+00 0.51675670000E-01 0.32740000000E+04 -0.26586893000E-03 0.12777928000E-04 0.99999996458E+00 778 -0.14037930000E+00 0.51675670000E-01 0.32740000000E+04 -0.26586893000E-03 0.12777928000E-04 0.99999996458E+00 779 -0.15096020000E+01 -0.75080395000E-02 0.32740000000E+04 0.14245823000E-02 0.27477054000E-03 0.99999894753E+00 780 0.58806310000E+00 0.12471200000E+01 0.32740000000E+04 0.11471047000E-03 0.43408043000E-03 0.99999989921E+00 781 0.10113060000E+01 -0.28770660000E+00 0.32740000000E+04 0.36370565000E-03 0.20954303000E-04 0.99999993364E+00 782 0.91738140000E+00 0.19771580000E+01 0.32740000000E+04 -0.48835955000E-04 -0.12170983000E-03 0.99999999140E+00 783 0.14113440000E+01 0.35598200000E+00 0.32740000000E+04 0.49285585000E-03 0.16047012000E-03 0.99999986567E+00 784 0.10038250000E+00 0.89231520000E+00 0.32740000000E+04 -0.65150292000E-04 0.21331076000E-03 0.99999997513E+00 785 0.14865370000E+01 0.47042920000E-01 0.32740000000E+04 0.60575589000E-03 0.15681019000E-03 0.99999980424E+00 786 -0.10379350000E+01 0.46699190000E-01 0.32740000000E+04 -0.78203549000E-04 -0.35460957000E-03 0.99999993407E+00 787 0.17872710000E+01 -0.14044720000E+01 0.32740000000E+04 0.71794813000E-03 0.16974107000E-04 0.99999974213E+00 788 0.11555300000E+01 -0.53516470000E+00 0.32740000000E+04 0.34735797000E-03 -0.19253124000E-03 0.99999992114E+00 789 0.35846550000E+00 0.44949540000E+00 0.32740000000E+04 0.21111455000E-02 -0.48933149000E-03 0.99999765181E+00 790 0.47785760000E+00 -0.30055590000E+00 0.32740000000E+04 0.44114764000E-04 -0.72645918000E-04 0.99999999639E+00 791 -0.13773940000E+00 0.17666370000E+01 0.32740000000E+04 -0.26881622000E-03 -0.14716109000E-03 0.99999995304E+00 792 -0.56956780000E+00 -0.76476260000E+00 0.32740000000E+04 -0.46623786000E-03 0.37208272000E-04 0.99999989062E+00 793 -0.32542090000E+00 0.49044070000E+00 0.32740000000E+04 -0.51899086000E-03 0.10369661000E-03 0.99999985995E+00 794 0.10208360000E+01 0.22426330000E+01 0.32740000000E+04 0.25258123000E-03 0.60004386000E-03 0.99999978808E+00 795 0.45092320000E+00 0.31205550000E+00 0.32740000000E+04 -0.80781516000E-04 0.34855642000E-04 0.99999999613E+00 796 -0.25030680000E+00 -0.73741850000E+00 0.32740000000E+04 -0.32959032000E-03 -0.33025452000E-03 0.99999989115E+00 797 0.69920030000E+00 -0.34007240000E+00 0.32740000000E+04 0.15268473000E-03 -0.12113420000E-03 0.99999998101E+00 798 -0.14678760000E+01 0.25886250000E+01 0.32740000000E+04 -0.32660423000E-03 0.18488851000E-03 0.99999992957E+00 799 0.11394330000E+01 -0.11195430000E+01 0.32740000000E+04 0.38894865000E-03 -0.32532887000E-03 0.99999987144E+00 800 -0.74703650000E+00 0.15582890000E+01 0.32740000000E+04 -0.78133855000E-03 -0.20514130000E-04 0.99999969454E+00 801 0.17761920000E+01 0.74111280000E+00 0.32740000000E+04 0.23041762000E-03 0.54499978000E-04 0.99999997197E+00 802 0.26373100000E+01 0.85275780000E-01 0.32740000000E+04 0.42521270000E-03 0.60191655000E-05 0.99999990958E+00 803 0.94961270000E+00 -0.23802810000E+00 0.32740000000E+04 0.27822159000E-03 -0.13219711000E-03 0.99999995256E+00 804 0.94961270000E+00 -0.23802810000E+00 0.32740000000E+04 0.27822159000E-03 -0.13219711000E-03 0.99999995256E+00 805 0.46851560000E+00 0.10825230000E+01 0.32740000000E+04 0.10462237000E-03 0.27885346000E-03 0.99999995565E+00 806 -0.10850970000E+00 -0.27431040000E+00 0.32740000000E+04 -0.30350575000E-03 -0.18056466000E-03 0.99999993764E+00 807 0.11123420000E+01 -0.44329720000E+00 0.32740000000E+04 0.43583254000E-03 -0.16179819000E-03 0.99999989194E+00 808 -0.21531450000E+00 -0.11958600000E+01 0.32740000000E+04 -0.58460631000E-03 0.43320026000E-04 0.99999982818E+00 809 0.16277130000E+01 -0.41307480000E+00 0.32740000000E+04 -0.66696812000E-03 0.10306147000E-02 0.99999924649E+00 810 -0.59112220000E-01 -0.14544780000E+01 0.32740000000E+04 -0.29243316000E-03 -0.39244824000E-03 0.99999988023E+00 811 0.36417460000E+00 -0.66024160000E+00 0.32740000000E+04 -0.31073234000E-05 -0.29543892000E-03 0.99999995635E+00 812 0.94913120000E+00 -0.69052820000E+00 0.32740000000E+04 0.31205718000E-03 0.41777672000E-04 0.99999995044E+00 813 0.10533560000E+01 -0.15903240000E+01 0.32740000000E+04 0.88633264000E-04 -0.31359794000E-03 0.99999994690E+00 814 0.11343010000E+01 -0.94112120000E+00 0.32740000000E+04 0.48778878000E-03 -0.22304084000E-03 0.99999985616E+00 815 0.12974720000E+01 -0.15034280000E+01 0.32740000000E+04 0.35132738000E-03 -0.37015183000E-03 0.99999986978E+00 816 -0.30738880000E+00 -0.12282010000E+01 0.32740000000E+04 -0.64915477000E-03 -0.48680810000E-03 0.99999967081E+00 817 -0.30738880000E+00 -0.12282010000E+01 0.32740000000E+04 -0.64915477000E-03 -0.48680810000E-03 0.99999967081E+00 818 0.10767840000E+00 0.18437260000E+00 0.32740000000E+04 -0.10619693000E-03 0.69319482000E-04 0.99999999196E+00 819 -0.63833810000E+00 -0.14876920000E+01 0.32740000000E+04 -0.76905017000E-04 0.95432770000E-04 0.99999999249E+00 820 0.36440680000E+00 0.29269970000E-01 0.32740000000E+04 0.80440412000E-04 0.40797455000E-04 0.99999999593E+00 821 0.11477630000E+01 -0.17067190000E+00 0.32740000000E+04 0.42447096000E-03 -0.90113892000E-04 0.99999990585E+00 822 -0.21582840000E+00 0.33757800000E+00 0.32740000000E+04 -0.41984240000E-03 0.18225204000E-04 0.99999991170E+00 823 -0.12110290000E+00 -0.12203450000E+01 0.32740000000E+04 -0.24188327000E-03 -0.40500620000E-03 0.99999988873E+00 824 0.21726700000E+01 0.27936190000E+00 0.32740000000E+04 0.72056393000E-03 0.45634148000E-03 0.99999963627E+00 825 0.64630350000E+00 0.98849960000E+00 0.32740000000E+04 0.34064891000E-04 0.25063546000E-03 0.99999996801E+00 826 0.10415900000E+01 0.18595580000E-01 0.32740000000E+04 0.41509088000E-03 0.13478892000E-03 0.99999990477E+00 827 0.18317080000E+00 0.48867450000E+00 0.32740000000E+04 -0.12892482000E-03 0.16673529000E-03 0.99999997779E+00 828 0.32780340000E+00 0.10907120000E+01 0.32740000000E+04 -0.19096052000E-03 0.31369957000E-03 0.99999993256E+00 829 0.32780340000E+00 0.10907120000E+01 0.32740000000E+04 -0.19096052000E-03 0.31369957000E-03 0.99999993256E+00 830 0.11147660000E+01 0.10687360000E+01 0.32740000000E+04 0.41183885000E-03 0.27808527000E-03 0.99999987653E+00 831 -0.24025300000E+00 0.53229110000E+00 0.32740000000E+04 -0.37072468000E-03 0.44372602000E-03 0.99999983284E+00 832 -0.14778130000E+01 -0.19888030000E+01 0.32740000000E+04 -0.10372788000E-02 -0.33269887000E-03 0.99999940668E+00 833 0.93038290000E+00 -0.18189730000E+01 0.32740000000E+04 0.19761351000E-03 -0.40595833000E-03 0.99999989807E+00 834 0.19977780000E+00 0.82152480000E+00 0.32740000000E+04 -0.15523042000E-03 0.33270376000E-03 0.99999993261E+00 835 0.64837430000E+00 0.36253980000E+00 0.32740000000E+04 0.15890821000E-03 0.51264509000E-04 0.99999998606E+00 836 0.94382020000E+00 -0.44793210000E+00 0.32740000000E+04 0.33406654000E-03 -0.19472305000E-03 0.99999992524E+00 837 0.14576130000E+01 0.12831910000E+01 0.32740000000E+04 0.11904765000E-02 0.85753491000E-04 0.99999928771E+00 838 0.14576130000E+01 0.12831910000E+01 0.32740000000E+04 0.11904765000E-02 0.85753491000E-04 0.99999928771E+00 839 0.11175420000E+01 -0.31420780000E+00 0.32740000000E+04 0.41176306000E-03 -0.13665270000E-03 0.99999990589E+00 840 0.95144790000E+00 0.73866620000E+00 0.32740000000E+04 0.31655288000E-03 0.16555346000E-03 0.99999993619E+00 841 0.26657480000E+00 -0.15840600000E+01 0.32740000000E+04 0.49920840000E-04 -0.40033847000E-03 0.99999991862E+00 842 0.25427930000E+00 0.13674970000E+00 0.32740000000E+04 -0.32985648000E-04 0.63812722000E-05 0.99999999944E+00 843 0.64501200000E+00 -0.21298420000E+00 0.32740000000E+04 0.31086587000E-03 -0.31554871000E-04 0.99999995118E+00 844 -0.17488920000E+00 0.10382110000E+01 0.32740000000E+04 -0.38823867000E-03 0.25335682000E-03 0.99999989254E+00 845 -0.69682340000E-01 -0.79604900000E+00 0.32740000000E+04 -0.28708708000E-03 0.96860720000E-04 0.99999995410E+00 846 0.51385080000E+00 0.14354560000E+01 0.32740000000E+04 0.63089450000E-04 0.25710164000E-03 0.99999996496E+00 847 0.88612230000E+00 -0.26732040000E+00 0.32740000000E+04 0.27516347000E-03 -0.10469574000E-03 0.99999995666E+00 848 0.11011530000E+01 -0.80884060000E+00 0.32740000000E+04 0.40402051000E-03 -0.20131328000E-03 0.99999989812E+00 849 0.75880630000E+00 -0.73921280000E-01 0.32740000000E+04 0.18066203000E-03 -0.18734549000E-03 0.99999996613E+00 850 0.15461330000E+00 -0.52492820000E-01 0.32740000000E+04 -0.19086229000E-03 -0.13942408000E-03 0.99999997207E+00 851 -0.13510370000E+01 0.25967750000E+01 0.32740000000E+04 -0.35674247000E-03 -0.24464674000E-03 0.99999990644E+00 852 0.93234280000E+00 -0.15223250000E+01 0.32740000000E+04 0.27597323000E-03 -0.36145837000E-03 0.99999989659E+00 853 0.26602440000E-01 0.27663620000E+00 0.32740000000E+04 -0.21640366000E-03 0.70019552000E-04 0.99999997413E+00 854 0.26602440000E-01 0.27663620000E+00 0.32740000000E+04 -0.21640366000E-03 0.70019552000E-04 0.99999997413E+00 855 0.53538170000E+00 0.24590290000E+00 0.32740000000E+04 -0.85632018000E-05 -0.55960922000E-04 0.99999999840E+00 856 0.10292410000E+01 0.74235380000E+00 0.32740000000E+04 0.24804779000E-03 0.25752874000E-03 0.99999993608E+00 857 0.37460460000E+00 0.33226040000E+00 0.32740000000E+04 0.52210875000E-04 0.12436688000E-03 0.99999999090E+00 858 0.12987080000E+01 -0.35417410000E+00 0.32740000000E+04 0.48518501000E-03 -0.12875775000E-03 0.99999987401E+00 859 -0.15793690000E+00 -0.92733390000E+00 0.32740000000E+04 0.19407416000E-03 0.89548514000E-04 0.99999997716E+00 860 0.23218910000E+01 0.14114300000E+01 0.32740000000E+04 0.11363219000E-02 0.32024527000E-04 0.99999935387E+00 861 0.99903800000E+00 0.27964360000E+00 0.32740000000E+04 0.42588575000E-03 0.39674247000E-04 0.99999990852E+00 862 0.67324850000E+00 -0.54495770000E+00 0.32740000000E+04 0.20504034000E-03 -0.21631725000E-03 0.99999995558E+00 863 0.13775350000E+01 0.42451930000E+00 0.32740000000E+04 0.85567456000E-03 0.28119517000E-04 0.99999963352E+00 864 0.32748350000E+00 0.15301370000E+00 0.32740000000E+04 -0.18963312000E-04 0.28736467000E-04 0.99999999941E+00 865 0.32748350000E+00 0.15301370000E+00 0.32740000000E+04 -0.18963312000E-04 0.28736467000E-04 0.99999999941E+00 866 -0.59164200000E+00 -0.99158870000E+00 0.32740000000E+04 -0.13078721000E-02 -0.60756403000E-04 0.99999914289E+00 867 0.64260160000E+00 0.52987460000E+00 0.32740000000E+04 0.63914704000E-04 0.12046903000E-03 0.99999999070E+00 868 0.38118840000E+00 -0.73810310000E+00 0.32740000000E+04 0.11810465000E-03 -0.19019710000E-03 0.99999997494E+00 869 -0.61528420000E+00 -0.88484470000E+00 0.32740000000E+04 -0.50591596000E-03 0.47427227000E-04 0.99999987090E+00 870 -0.11728820000E+01 -0.10894600000E+01 0.32740000000E+04 0.11185746000E-02 -0.32358560000E-05 0.99999937439E+00 871 0.84677760000E+00 0.12789340000E+01 0.32740000000E+04 0.11834265000E-03 0.32658232000E-03 0.99999993967E+00 872 -0.62715010000E+00 -0.12179870000E+01 0.32740000000E+04 -0.48006739000E-03 -0.65964286000E-03 0.99999966720E+00 873 0.22537040000E+00 -0.73016450000E+00 0.32740000000E+04 -0.14261407000E-03 -0.20853792000E-03 0.99999996809E+00 874 0.69576010000E+00 0.52770376000E-02 0.32740000000E+04 0.15487579000E-03 0.59559865000E-04 0.99999998623E+00 875 0.90445180000E+00 -0.67731230000E-01 0.32740000000E+04 0.34356958000E-03 -0.49219176000E-04 0.99999993977E+00 876 -0.33790870000E+00 -0.15926010000E+01 0.32740000000E+04 -0.28296301000E-03 -0.62759785000E-03 0.99999976303E+00 877 0.97591980000E+00 -0.26156370000E+00 0.32740000000E+04 0.21693307000E-03 -0.18006186000E-03 0.99999996026E+00 878 0.97591980000E+00 -0.26156370000E+00 0.32740000000E+04 0.21693307000E-03 -0.18006186000E-03 0.99999996026E+00 879 0.22766290000E+01 -0.20436910000E+01 0.32740000000E+04 0.58476871000E-03 -0.47912460000E-03 0.99999971424E+00 880 -0.40573060000E+00 -0.57532080000E+00 0.32740000000E+04 -0.50554215000E-03 -0.12435901000E-03 0.99999986448E+00 881 0.11695080000E+01 -0.93641960000E+00 0.32740000000E+04 -0.59762900000E-03 -0.83505918000E-04 0.99999981793E+00 882 0.51925700000E+00 0.21599420000E+00 0.32740000000E+04 0.10562644000E-03 -0.76678070000E-05 0.99999999439E+00 883 0.12666850000E+01 -0.14583710000E+00 0.32740000000E+04 0.38638437000E-03 -0.11885402000E-03 0.99999991829E+00 884 -0.14623950000E+00 -0.53140370000E+00 0.32740000000E+04 -0.25314567000E-03 -0.13476933000E-03 0.99999995888E+00 885 0.61308350000E-01 0.53552610000E+00 0.32740000000E+04 -0.16900475000E-03 0.15138590000E-03 0.99999997426E+00 886 0.92091310000E+00 0.24067160000E+00 0.32740000000E+04 0.26194990000E-03 0.59855953000E-04 0.99999996390E+00 887 0.88809280000E+00 -0.47757830000E+00 0.32740000000E+04 0.26888496000E-03 -0.15000803000E-03 0.99999995260E+00 888 -0.18573510000E+00 -0.43501990000E+00 0.32740000000E+04 -0.27335409000E-03 -0.23377733000E-03 0.99999993531E+00 889 0.26189370000E+00 0.42578640000E+00 0.32740000000E+04 -0.12022358000E-03 0.88826811000E-04 0.99999998883E+00 890 0.34482460000E+00 -0.53584450000E+00 0.32740000000E+04 0.81098435000E-04 -0.15252647000E-03 0.99999998508E+00 891 0.27938670000E+00 -0.10208080000E+01 0.32740000000E+04 0.73269790000E-03 0.10537256000E-03 0.99999972603E+00 892 0.63880620000E+00 0.62862490000E+00 0.32740000000E+04 0.14798490000E-04 0.16931520000E-03 0.99999998556E+00 893 0.63880620000E+00 0.62862490000E+00 0.32740000000E+04 0.14798490000E-04 0.16931520000E-03 0.99999998556E+00 894 0.11443760000E+01 0.41663700000E+00 0.32740000000E+04 0.38667992000E-03 -0.14716115000E-03 0.99999991441E+00 895 -0.56558920000E+00 -0.53144320000E+00 0.32740000000E+04 -0.76935464000E-03 -0.17683722000E-03 0.99999968841E+00 896 0.61640060000E+00 0.14926560000E+00 0.32740000000E+04 0.80765225000E-04 0.62028492000E-04 0.99999999481E+00 897 0.93253020000E+00 0.74160430000E+00 0.32740000000E+04 0.25270757000E-03 0.22667077000E-03 0.99999994238E+00 898 0.40160240000E+00 -0.19854450000E+00 0.32740000000E+04 0.98978446000E-04 -0.48601480000E-04 0.99999999392E+00 899 0.40160240000E+00 -0.19854450000E+00 0.32740000000E+04 0.98978446000E-04 -0.48601480000E-04 0.99999999392E+00 900 -0.89365300000E+00 0.21373740000E+01 0.32740000000E+04 0.31858130000E-03 0.68999000000E-03 0.99999971121E+00 901 -0.14168260000E+00 0.88778140000E+00 0.32740000000E+04 -0.34479803000E-03 0.10449177000E-03 0.99999993510E+00 902 0.11770340000E+01 -0.85302470000E+00 0.32740000000E+04 0.37831365000E-03 -0.30684640000E-03 0.99999988136E+00 903 0.52134320000E+00 0.63097500000E+00 0.32740000000E+04 -0.44321019000E-04 0.22477101000E-03 0.99999997376E+00 904 -0.17072450000E+00 0.10190690000E+01 0.32740000000E+04 -0.52161206000E-03 0.33918035000E-03 0.99999980644E+00 905 -0.20421290000E+01 0.16496380000E+01 0.32740000000E+04 -0.78258774000E-03 -0.65335218000E-04 0.99999969164E+00 906 0.53393430000E+00 -0.24170680000E+01 0.32740000000E+04 -0.39216664000E-03 0.13724227000E-03 0.99999991368E+00 907 0.56118280000E+00 -0.18943700000E+00 0.32740000000E+04 0.18476309000E-03 -0.12683017000E-03 0.99999997489E+00 908 0.84036170000E+00 0.18961480000E+01 0.32740000000E+04 0.15847615000E-03 0.18289794000E-03 0.99999997072E+00 909 0.86112750000E+00 -0.17285860000E+01 0.32740000000E+04 0.36922959000E-03 -0.45783207000E-03 0.99999982703E+00 910 0.11970110000E+01 0.48912420000E+00 0.32740000000E+04 0.55353111000E-03 0.17142670000E-03 0.99999983211E+00 911 0.11685990000E+01 -0.46847220000E+00 0.32740000000E+04 0.39322471000E-03 -0.23881053000E-03 0.99999989417E+00 912 0.35411200000E+00 0.31767070000E+01 0.32740000000E+04 -0.24339941000E-03 0.20257766000E-03 0.99999994986E+00 913 0.35411200000E+00 0.31767070000E+01 0.32740000000E+04 -0.24339941000E-03 0.20257766000E-03 0.99999994986E+00 914 0.10484880000E+01 0.10451260000E+00 0.32740000000E+04 0.31896471000E-03 -0.35951086000E-03 0.99999988451E+00 915 0.12303460000E+01 0.34908440000E+00 0.32740000000E+04 0.34044951000E-03 0.11950557000E-03 0.99999993491E+00 916 -0.13725670000E+01 -0.10552390000E+01 0.32740000000E+04 -0.77120896000E-03 -0.20382409000E-03 0.99999968185E+00 917 0.59653510000E+00 0.82065450000E+00 0.32740000000E+04 0.35634599000E-04 0.23254985000E-03 0.99999997233E+00 918 0.97002120000E+00 -0.11552810000E+01 0.32740000000E+04 0.12134025000E-03 -0.47245575000E-03 0.99999988103E+00 919 0.58539230000E+00 -0.74574090000E+00 0.32740000000E+04 0.15167044000E-03 -0.21649784000E-03 0.99999996506E+00 920 0.11566840000E+00 0.55484210000E+00 0.32740000000E+04 -0.34815088000E-03 0.22151570000E-03 0.99999991486E+00 921 0.20276680000E+00 0.31327070000E+01 0.32740000000E+04 -0.28224650000E-03 0.55744746000E-04 0.99999995861E+00 922 -0.76831630000E-01 -0.36461240000E+00 0.32740000000E+04 -0.27990437000E-03 -0.11402762000E-03 0.99999995433E+00 923 0.97559850000E+00 -0.10611530000E+01 0.32740000000E+04 0.21404734000E-03 -0.20521918000E-03 0.99999995603E+00 924 0.11721090000E+01 0.16261740000E+00 0.32740000000E+04 0.30507526000E-03 -0.90656897000E-04 0.99999994936E+00 925 -0.28836460000E+00 0.46833610000E+00 0.32740000000E+04 -0.45654367000E-03 0.19087964000E-04 0.99999989560E+00 926 -0.28836460000E+00 0.46833610000E+00 0.32740000000E+04 -0.45654367000E-03 0.19087964000E-04 0.99999989560E+00 927 0.10849930000E+01 -0.49550790000E+00 0.32740000000E+04 0.33634010000E-03 -0.20655869000E-03 0.99999992210E+00 928 0.71353230000E+00 -0.45087450000E+00 0.32740000000E+04 0.20990807000E-03 -0.26183427000E-03 0.99999994369E+00 929 0.62015320000E+00 -0.32439420000E+00 0.32740000000E+04 0.13343027000E-03 -0.15065684000E-03 0.99999997975E+00 930 -0.18309450000E+00 0.29347200000E+01 0.32740000000E+04 -0.56890352000E-03 0.22927260000E-03 0.99999981189E+00 931 0.11949000000E+01 -0.49522260000E+00 0.32740000000E+04 0.36994444000E-03 -0.24152339000E-03 0.99999990240E+00 932 0.85650230000E+00 -0.29503700000E+00 0.32740000000E+04 0.22347980000E-03 -0.11152364000E-03 0.99999996881E+00 933 0.44582190000E+00 0.73377860000E+00 0.32740000000E+04 -0.36040763000E-03 0.16755049000E-03 0.99999992102E+00 934 -0.28034360000E+00 0.96741680000E+00 0.32740000000E+04 -0.36039148000E-03 -0.14362455000E-04 0.99999993496E+00 935 0.88468000000E+00 -0.54612300000E+00 0.32740000000E+04 0.18262933000E-03 -0.17939412000E-03 0.99999996723E+00 936 -0.25005240000E+01 0.51134510000E+00 0.32740000000E+04 -0.28666219000E-03 0.86295442000E-03 0.99999958657E+00 937 0.15452360000E+00 0.19011090000E+01 0.32740000000E+04 -0.23320563000E-03 0.72217814000E-03 0.99999971204E+00 938 0.66666960000E+00 0.62523470000E+00 0.32740000000E+04 0.13505819000E-03 0.18941105000E-03 0.99999997294E+00 939 0.57745620000E-01 -0.36534830000E+00 0.32740000000E+04 -0.12004181000E-03 -0.12351041000E-03 0.99999998517E+00 940 0.17365860000E+00 -0.14145460000E+01 0.32740000000E+04 0.19774611000E-03 -0.10401219000E-03 0.99999997504E+00 941 0.70118140000E+00 0.48730080000E+00 0.32740000000E+04 0.12243098000E-03 0.14046628000E-03 0.99999998264E+00 942 0.49299880000E+00 0.63622870000E+00 0.32740000000E+04 0.22062368000E-04 0.12314363000E-03 0.99999999217E+00 943 -0.19485090000E+00 0.10970400000E+01 0.32740000000E+04 -0.20998415000E-03 0.37878999000E-03 0.99999990621E+00 944 0.86629530000E+00 -0.77485800000E-01 0.32740000000E+04 0.18414544000E-03 -0.11246521000E-03 0.99999997672E+00 945 -0.54509410000E+00 -0.14554260000E+01 0.32740000000E+04 -0.63594099000E-03 -0.38144426000E-03 0.99999972504E+00 946 0.84139350000E+00 -0.34243740000E+00 0.32740000000E+04 0.22854058000E-03 -0.13582119000E-03 0.99999996466E+00 947 0.59787800000E-01 0.27627750000E+01 0.32740000000E+04 -0.30567011000E-03 0.47417803000E-03 0.99999984086E+00 948 0.20538550000E+00 -0.31153930000E+00 0.32740000000E+04 -0.44519169000E-04 -0.20451442000E-03 0.99999997810E+00 949 -0.15531000000E+01 -0.75868680000E+00 0.32740000000E+04 -0.30841076000E-03 -0.27177311000E-03 0.99999991551E+00 950 0.95924030000E+00 0.53782840000E+00 0.32740000000E+04 0.31272165000E-03 0.28919018000E-03 0.99999990929E+00 951 0.90699600000E+00 -0.64502270000E+00 0.32740000000E+04 0.20370772000E-03 -0.25347795000E-03 0.99999994713E+00 952 -0.11666630000E+00 0.11012110000E+01 0.32740000000E+04 -0.35510954000E-03 0.45285537000E-03 0.99999983441E+00 953 -0.11666630000E+00 0.11012110000E+01 0.32740000000E+04 -0.35510954000E-03 0.45285537000E-03 0.99999983441E+00 954 0.52688490000E+00 -0.17419320000E-01 0.32740000000E+04 0.82490740000E-04 -0.54873432000E-04 0.99999999509E+00 955 0.36919820000E+00 -0.77473740000E+00 0.32740000000E+04 0.15081190000E-03 -0.23747781000E-03 0.99999996043E+00 956 -0.11286890000E+01 0.61404320000E+00 0.32740000000E+04 -0.26332043000E-03 0.12602573000E-03 0.99999995739E+00 957 0.44752110000E+00 -0.99470170000E+00 0.32740000000E+04 0.97437412000E-04 -0.35828570000E-03 0.99999993107E+00 958 0.20401590000E+00 0.12783780000E+01 0.32740000000E+04 -0.21514640000E-03 0.35734923000E-03 0.99999991301E+00 959 0.23946700000E+01 0.10876680000E+01 0.32740000000E+04 0.29098967000E-03 0.35684009000E-03 0.99999989400E+00 960 0.11824080000E+01 -0.38265290000E+00 0.32740000000E+04 0.40622786000E-03 -0.27768995000E-03 0.99999987893E+00 961 0.12507360000E+01 0.19513690000E+01 0.32740000000E+04 0.51948475000E-03 0.61691541000E-03 0.99999967478E+00 962 0.98204310000E+00 -0.61592940000E+00 0.32740000000E+04 0.37559934000E-03 -0.16477889000E-03 0.99999991589E+00 963 0.18536420000E+00 0.95208406000E-02 0.32740000000E+04 0.70972706000E-03 0.25771122000E-03 0.99999971494E+00 964 0.68651820000E+00 0.17417310000E+00 0.32740000000E+04 0.14063460000E-03 0.12658769000E-03 0.99999998210E+00 965 0.38206010000E+00 -0.75771950000E+00 0.32740000000E+04 -0.27906321000E-04 -0.26708152000E-03 0.99999996394E+00 966 0.38206010000E+00 -0.75771950000E+00 0.32740000000E+04 -0.27906321000E-04 -0.26708152000E-03 0.99999996394E+00 967 0.78896720000E+00 -0.66572180000E+00 0.32740000000E+04 0.24330214000E-03 -0.29284038000E-03 0.99999992752E+00 968 0.45566680000E+00 -0.51273300000E+00 0.32740000000E+04 -0.19305291000E-03 -0.11866576000E-03 0.99999997432E+00 969 0.86332610000E+00 -0.71267640000E+00 0.32740000000E+04 0.21812893000E-03 -0.19171610000E-03 0.99999995783E+00 970 0.20376000000E-01 0.10923210000E+01 0.32740000000E+04 -0.17811036000E-03 0.23253678000E-03 0.99999995710E+00 971 0.51585930000E+00 -0.67357320000E+00 0.32740000000E+04 -0.54138010000E-04 -0.20815636000E-03 0.99999997687E+00 972 0.37986430000E+00 0.12878470000E+01 0.32740000000E+04 -0.17994580000E-03 0.58490073000E-03 0.99999981276E+00 973 0.12689510000E+01 0.27803740000E+00 0.32740000000E+04 0.44200386000E-03 0.45480971000E-04 0.99999990128E+00 974 0.92597600000E+00 -0.73103180000E+00 0.32740000000E+04 0.23123815000E-03 -0.28089798000E-03 0.99999993381E+00 975 0.86829670000E+00 -0.30025000000E+00 0.32740000000E+04 0.23739655000E-03 -0.18509410000E-03 0.99999995469E+00 976 -0.97387510000E+00 -0.76706420000E+00 0.32740000000E+04 -0.69222780000E-03 -0.64148982000E-04 0.99999975835E+00 977 0.12119790000E+01 0.94384380000E-01 0.32740000000E+04 0.39481148000E-03 0.42335982000E-04 0.99999992117E+00 978 -0.18331100000E+00 0.48573970000E-01 0.32740000000E+04 -0.52072573000E-03 -0.39997289000E-04 0.99999986362E+00 979 -0.18331100000E+00 0.48573970000E-01 0.32740000000E+04 -0.52072573000E-03 -0.39997289000E-04 0.99999986362E+00 980 0.22079830000E+00 0.69520390000E-01 0.32740000000E+04 -0.10609904000E-03 0.26077538000E-04 0.99999999403E+00 981 0.39694220000E+00 0.63242580000E+00 0.32740000000E+04 0.11476319000E-05 0.19896797000E-03 0.99999998021E+00 982 0.59417540000E+00 0.10308280000E+01 0.32740000000E+04 0.17630213000E-03 0.29846153000E-03 0.99999993992E+00 983 0.12693260000E+01 0.21301270000E+01 0.32740000000E+04 0.36328542000E-03 0.43746279000E-03 0.99999983832E+00 984 0.19701860000E+01 0.26207800000E+01 0.32740000000E+04 0.47891089000E-03 0.62117743000E-03 0.99999969239E+00 985 0.11870840000E+01 -0.35811330000E+00 0.32740000000E+04 0.37871578000E-03 -0.88777721000E-04 0.99999992435E+00 986 -0.35602650000E+00 -0.55659840000E+00 0.32740000000E+04 -0.46649427000E-03 -0.22068978000E-03 0.99999986684E+00 987 0.59445200000E+00 0.13701900000E+01 0.32740000000E+04 0.37445719000E-04 -0.62189072000E-04 0.99999999737E+00 988 0.21041190000E+01 0.24801770000E+01 0.32740000000E+04 0.86422072000E-03 0.49930398000E-03 0.99999950191E+00 989 0.21041190000E+01 0.24801770000E+01 0.32740000000E+04 0.86422072000E-03 0.49930398000E-03 0.99999950191E+00 990 0.12789660000E+01 0.36847940000E+00 0.32740000000E+04 0.34480408000E-03 0.21756114000E-03 0.99999991689E+00 991 0.86454970000E+00 0.11354720000E+01 0.32740000000E+04 0.31509090000E-03 0.42727581000E-03 0.99999985908E+00 992 -0.32844540000E+00 0.52792600000E+00 0.32740000000E+04 -0.43582171000E-03 0.15247376000E-03 0.99999989341E+00 993 0.20115270000E+00 -0.42817700000E+00 0.32740000000E+04 0.15309629000E-03 -0.19433872000E-04 0.99999998809E+00 994 0.28428370000E+00 -0.50629980000E+00 0.32740000000E+04 -0.29529127000E-04 -0.20583591000E-03 0.99999997838E+00 995 0.73909270000E+00 0.93787440000E-01 0.32740000000E+04 0.11538065000E-03 -0.95558491000E-04 0.99999998878E+00 996 0.75276300000E+00 -0.79465420000E+00 0.32740000000E+04 0.23886259000E-03 -0.22925636000E-03 0.99999994519E+00 997 0.89160020000E+00 0.88854160000E+00 0.32740000000E+04 0.26788059000E-03 0.25261904000E-03 0.99999993221E+00 998 0.11173910000E+01 -0.96238670000E-01 0.32740000000E+04 0.32339871000E-03 -0.77213932000E-04 0.99999994473E+00 999 0.82106630000E+00 0.21861480000E+00 0.32740000000E+04 0.21466741000E-03 0.16094118000E-03 0.99999996401E+00 1000 0.94608780000E+00 -0.13674960000E+00 0.32740000000E+04 0.25706491000E-03 -0.19081173000E-03 0.99999994875E+00 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/data-tracks/tracks-200GeV.dat b/examples/advanced/lAr_calorimeter/data-tracks/tracks-200GeV.dat new file mode 100644 index 0000000000..11bf7e3b52 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/data-tracks/tracks-200GeV.dat @@ -0,0 +1 @@ + 1 0.11313880000E+01 0.54647170000E+00 0.32740000000E+04 0.14458345000E-03 -0.20869415000E-03 0.99999996777E+00 2 0.75217000000E+00 0.73489640000E+00 0.32740000000E+04 0.41608611000E-03 -0.28161365000E-04 0.99999991304E+00 3 0.83618580000E+00 0.32186200000E+00 0.32740000000E+04 -0.46390816000E-03 -0.97945507000E-04 0.99999988760E+00 4 0.45696190000E+00 0.31853030000E+00 0.32740000000E+04 -0.38690912000E-03 -0.22441515000E-03 0.99999989997E+00 5 0.81169810000E+00 0.20201750000E+00 0.32740000000E+04 -0.20589244000E-03 -0.23317301000E-03 0.99999995162E+00 6 0.52365370000E+00 0.33400750000E+00 0.32740000000E+04 0.28625462000E-03 -0.94521842000E-04 0.99999995456E+00 7 0.10701520000E+01 0.74270760000E+00 0.32740000000E+04 -0.16326259000E-03 -0.17126018000E-03 0.99999997201E+00 8 0.44887770000E+00 0.28659980000E+00 0.32740000000E+04 -0.39110848000E-03 -0.40252556000E-03 0.99999984250E+00 9 -0.42931600000E+00 0.43916920000E+00 0.32740000000E+04 -0.11348579000E-02 -0.10108854000E-03 0.99999935094E+00 10 0.65178890000E+00 -0.33470490000E-01 0.32740000000E+04 0.20444949000E-03 -0.26028999000E-03 0.99999994522E+00 11 0.71949550000E+00 0.10312920000E+01 0.32740000000E+04 -0.69705443000E-03 -0.38318153000E-05 0.99999975705E+00 12 0.82382090000E+00 0.13874520000E+01 0.32740000000E+04 0.56335173000E-03 -0.17432657000E-03 0.99999982612E+00 13 0.72710190000E+00 -0.46811700000E+00 0.32740000000E+04 0.75183087000E-03 -0.36339241000E-03 0.99999965135E+00 14 0.72710190000E+00 -0.46811700000E+00 0.32740000000E+04 0.75183087000E-03 -0.36339241000E-03 0.99999965135E+00 15 0.88649380000E+00 0.99327510000E+00 0.32740000000E+04 -0.71027555000E-03 -0.13845756000E-04 0.99999974766E+00 16 -0.71884870000E-01 -0.76061050000E+00 0.32740000000E+04 -0.79297990000E-03 -0.29926316000E-03 0.99999964081E+00 17 0.83891900000E+00 -0.10270950000E+00 0.32740000000E+04 -0.39378952000E-03 -0.23793620000E-03 0.99999989416E+00 18 0.41404980000E+00 0.70961690000E+00 0.32740000000E+04 0.47167236000E-04 -0.14439969000E-03 0.99999998846E+00 19 0.26009840000E+00 0.23900180000E+00 0.32740000000E+04 -0.57957420000E-03 -0.29733338000E-03 0.99999978784E+00 20 0.11645590000E+01 -0.23054380000E+01 0.32740000000E+04 0.65804453000E-03 -0.67778199000E-03 0.99999955379E+00 21 0.66483080000E+00 -0.62884100000E+00 0.32740000000E+04 0.31340602000E-03 -0.22445609000E-03 0.99999992570E+00 22 0.48580630000E+00 0.15562720000E+01 0.32740000000E+04 -0.43973225000E-03 -0.18523057000E-03 0.99999988616E+00 23 0.10766330000E+01 -0.15277030000E+01 0.32740000000E+04 0.89248770000E-03 -0.66572346000E-03 0.99999938014E+00 24 0.92758180000E+00 -0.42947650000E+00 0.32740000000E+04 -0.46093218000E-03 -0.47211171000E-03 0.99999978233E+00 25 0.90128750000E+00 -0.96359580000E+00 0.32740000000E+04 -0.20848573000E-04 -0.62378083000E-03 0.99999980523E+00 26 0.78883780000E+00 0.94500060000E+00 0.32740000000E+04 0.80638705000E-03 -0.69570211000E-04 0.99999967245E+00 27 0.92422450000E+00 0.77377090000E+00 0.32740000000E+04 0.15294523000E-03 -0.17004690000E-03 0.99999997385E+00 28 0.92422450000E+00 0.77377090000E+00 0.32740000000E+04 0.15294523000E-03 -0.17004690000E-03 0.99999997385E+00 29 0.10754080000E+01 0.56540840000E+00 0.32740000000E+04 0.52426825000E-03 -0.48052450000E-04 0.99999986142E+00 30 0.15550090000E+01 0.17524070000E+01 0.32740000000E+04 0.47997679000E-03 0.21507769000E-03 0.99999986168E+00 31 0.56692610000E+00 -0.34083070000E+00 0.32740000000E+04 0.75737647000E-04 -0.26684187000E-03 0.99999996153E+00 32 0.74453990000E+00 -0.24025010000E-01 0.32740000000E+04 -0.26369538000E-04 -0.28683324000E-03 0.99999995852E+00 33 0.11312350000E+01 0.38619460000E+00 0.32740000000E+04 -0.25397388000E-03 -0.12376167000E-03 0.99999996009E+00 34 0.91362800000E-01 -0.44411690000E+00 0.32740000000E+04 -0.18384767000E-03 -0.27571394000E-03 0.99999994509E+00 35 0.63571660000E+00 0.10728960000E+01 0.32740000000E+04 0.80509948000E-04 -0.25629935000E-04 0.99999999643E+00 36 0.25518760000E+00 0.30253700000E-01 0.32740000000E+04 -0.46355606000E-03 -0.23412319000E-03 0.99999986515E+00 37 0.17252330000E+00 0.81620140000E+00 0.32740000000E+04 -0.60758390000E-03 -0.10616794000E-03 0.99999980979E+00 38 0.89640210000E+00 0.41134590000E+00 0.32740000000E+04 -0.43777924000E-03 -0.34260243000E-03 0.99999984549E+00 39 0.27533170000E-01 -0.67317820000E+00 0.32740000000E+04 -0.52249717000E-03 -0.35460774000E-03 0.99999980063E+00 40 -0.16593230000E+00 0.28029930000E+01 0.32740000000E+04 -0.14742167000E-02 0.18950399000E-03 0.99999889539E+00 41 0.78821600000E+00 0.55095190000E+00 0.32740000000E+04 -0.54981548000E-03 -0.20350622000E-03 0.99999982814E+00 42 0.50219720000E+00 -0.97843840000E+00 0.32740000000E+04 -0.18813624000E-04 -0.28266048000E-03 0.99999995987E+00 43 0.94240450000E+00 -0.19920690000E+00 0.32740000000E+04 -0.38321933000E-03 -0.43757504000E-03 0.99999983084E+00 44 0.79739380000E+00 -0.20095100000E-01 0.32740000000E+04 0.37548612000E-03 -0.10976101000E-03 0.99999992348E+00 45 0.16954860000E+00 0.11923360000E+01 0.32740000000E+04 -0.47020521000E-03 0.22544820000E-04 0.99999988920E+00 46 -0.15387590000E+01 -0.15789390000E+01 0.32740000000E+04 -0.14577430000E-02 -0.83019090000E-03 0.99999859288E+00 47 0.10422640000E+01 0.14081700000E+00 0.32740000000E+04 0.45335403000E-03 -0.33804000000E-03 0.99999984010E+00 48 0.74391190000E+00 -0.31332860000E+00 0.32740000000E+04 -0.43751163000E-03 -0.32076344000E-03 0.99999985285E+00 49 0.74391190000E+00 -0.31332860000E+00 0.32740000000E+04 -0.43751163000E-03 -0.32076344000E-03 0.99999985285E+00 50 0.54049930000E+00 -0.47861260000E+00 0.32740000000E+04 0.25091032000E-03 -0.21057946000E-03 0.99999994635E+00 51 0.67554070000E+00 -0.61340950000E+00 0.32740000000E+04 0.59405802000E-03 -0.43395135000E-03 0.99999972939E+00 52 0.74619020000E+00 0.35668670000E+00 0.32740000000E+04 0.52597100000E-03 -0.13125103000E-03 0.99999985306E+00 53 0.65434660000E+00 0.16166760000E-01 0.32740000000E+04 0.91871148000E-03 -0.33739142000E-03 0.99999952107E+00 54 0.10071330000E+01 -0.43990420000E+00 0.32740000000E+04 0.33711223000E-03 -0.51652652000E-03 0.99999980978E+00 55 0.10162570000E+01 -0.41517450000E+00 0.32740000000E+04 0.36816078000E-03 -0.38236129000E-03 0.99999985913E+00 56 0.94670380000E+00 0.46525970000E+00 0.32740000000E+04 0.97322545000E-03 -0.12502979000E-03 0.99999951860E+00 57 0.28117610000E+00 -0.70498000000E+00 0.32740000000E+04 -0.43974776000E-03 -0.34158785000E-03 0.99999984497E+00 58 0.55544690000E+00 -0.58459860000E+00 0.32740000000E+04 0.35544997000E-03 -0.37386399000E-03 0.99999986694E+00 59 0.55063620000E+00 -0.74496030000E+00 0.32740000000E+04 0.86550706000E-03 -0.28614516000E-03 0.99999958451E+00 60 0.61208520000E+00 0.10038910000E+01 0.32740000000E+04 0.23059247000E-03 -0.20217113000E-03 0.99999995298E+00 61 0.71754450000E+00 0.90001680000E+00 0.32740000000E+04 0.52237039000E-03 -0.12896195000E-03 0.99999985525E+00 62 0.88288270000E+00 0.69440750000E+00 0.32740000000E+04 0.11508795000E-03 -0.26353876000E-03 0.99999995865E+00 63 0.84305340000E+00 0.12172950000E+01 0.32740000000E+04 -0.29615307000E-03 -0.23740194000E-03 0.99999992797E+00 64 0.27555380000E+00 -0.20626010000E+00 0.32740000000E+04 -0.29139989000E-03 -0.40908842000E-03 0.99999987387E+00 65 0.56981520000E-01 0.36813020000E-01 0.32740000000E+04 -0.78578369000E-03 -0.27755351000E-03 0.99999965275E+00 66 0.90545430000E+00 0.29195670000E+00 0.32740000000E+04 -0.15170187000E-03 -0.29239643000E-03 0.99999994575E+00 67 0.12718840000E+01 0.74013450000E+00 0.32740000000E+04 0.12911238000E-02 -0.16280601000E-03 0.99999915325E+00 68 -0.50919520000E+00 0.85584180000E+00 0.32740000000E+04 -0.76611125000E-03 -0.28132071000E-03 0.99999966697E+00 69 0.18794530000E+00 -0.57423380000E+00 0.32740000000E+04 -0.20317786000E-03 -0.23500407000E-03 0.99999995175E+00 70 0.77864440000E+00 -0.65121980000E+00 0.32740000000E+04 0.98935177000E-03 -0.31966899000E-03 0.99999945950E+00 71 0.35628340000E+00 -0.50307370000E+00 0.32740000000E+04 -0.19719655000E-03 -0.32398666000E-03 0.99999992807E+00 72 0.21949160000E+00 0.12220660000E+01 0.32740000000E+04 -0.67809183000E-03 -0.17291475000E-03 0.99999975515E+00 73 0.74518380000E+00 -0.38397300000E+00 0.32740000000E+04 0.83166891000E-03 -0.19761834000E-03 0.99999963464E+00 74 0.74518380000E+00 -0.38397300000E+00 0.32740000000E+04 0.83166891000E-03 -0.19761834000E-03 0.99999963464E+00 75 0.11316240000E+01 0.62697690000E+00 0.32740000000E+04 -0.52941414000E-04 -0.19782520000E-03 0.99999997903E+00 76 -0.97895450000E+00 -0.25012740000E+01 0.32740000000E+04 0.84370718000E-03 -0.60093624000E-03 0.99999946352E+00 77 0.40875360000E+00 0.79762630000E+00 0.32740000000E+04 -0.19066731000E-03 -0.43977729000E-04 0.99999998086E+00 78 0.83050140000E+00 -0.52212810000E-01 0.32740000000E+04 -0.44402637000E-03 -0.26949722000E-03 0.99999986511E+00 79 0.58468260000E+00 0.12873120000E+01 0.32740000000E+04 0.69433241000E-04 -0.11801440000E-03 0.99999999063E+00 80 0.76338270000E+00 -0.54483960000E+00 0.32740000000E+04 0.94147527000E-03 -0.48289727000E-03 0.99999944022E+00 81 0.57331530000E+00 -0.77696120000E+00 0.32740000000E+04 0.44660718000E-03 -0.46791922000E-03 0.99999979080E+00 82 0.10438840000E+00 0.19085130000E-01 0.32740000000E+04 -0.50277979000E-03 -0.13567554000E-03 0.99999986440E+00 83 0.56286130000E+00 0.96828310000E-01 0.32740000000E+04 0.55010302000E-03 -0.18953909000E-03 0.99999983073E+00 84 0.64323580000E+00 0.19939810000E+00 0.32740000000E+04 0.69665367000E-03 -0.12386525000E-03 0.99999974967E+00 85 0.63322160000E+00 0.36706770000E+00 0.32740000000E+04 -0.84651064000E-03 -0.47809765000E-04 0.99999964057E+00 86 0.63322160000E+00 0.36706770000E+00 0.32740000000E+04 -0.84651064000E-03 -0.47809765000E-04 0.99999964057E+00 87 0.63478830000E+00 -0.41747400000E+00 0.32740000000E+04 0.25302931000E-03 -0.30046236000E-03 0.99999992285E+00 88 0.26383920000E+00 0.91897880000E+00 0.32740000000E+04 -0.57209015000E-03 -0.19103398000E-03 0.99999981811E+00 89 0.10632630000E+00 0.58985200000E+00 0.32740000000E+04 -0.53274375000E-03 -0.12516293000E-03 0.99999985026E+00 90 0.67967240000E+00 0.96314060000E+00 0.32740000000E+04 -0.11394411000E-03 -0.17734119000E-03 0.99999997778E+00 91 0.46164400000E+00 -0.70397020000E+00 0.32740000000E+04 0.27849938000E-03 -0.33562549000E-03 0.99999990490E+00 92 0.89989210000E+00 -0.39873720000E+00 0.32740000000E+04 -0.35041757000E-03 -0.31832783000E-03 0.99999988794E+00 93 0.76020260000E+00 0.10761660000E+01 0.32740000000E+04 -0.41815935000E-03 -0.88500572000E-04 0.99999990866E+00 94 0.60032940000E+00 -0.18144240000E+00 0.32740000000E+04 0.21638270000E-04 -0.33891472000E-03 0.99999994233E+00 95 0.83570010000E+00 -0.85345260000E+00 0.32740000000E+04 0.64267154000E-03 -0.41064160000E-03 0.99999970917E+00 96 0.72845670000E+00 -0.86782410000E-01 0.32740000000E+04 0.56271948000E-03 -0.34662831000E-03 0.99999978160E+00 97 0.12041310000E+00 -0.18132150000E+00 0.32740000000E+04 -0.36742762000E-03 -0.38220763000E-03 0.99999985946E+00 98 0.35612950000E+00 0.22144820000E+00 0.32740000000E+04 0.35882709000E-04 -0.51205490000E-04 0.99999999805E+00 99 0.47933060000E+00 0.27088690000E+00 0.32740000000E+04 -0.50921150000E-04 -0.28165683000E-03 0.99999995904E+00 100 0.61609950000E+00 -0.18597680000E+01 0.32740000000E+04 -0.55022369000E-03 -0.44223957000E-03 0.99999975084E+00 101 0.51462770000E+00 -0.99827980000E-01 0.32740000000E+04 -0.48833922000E-03 -0.10422216000E-03 0.99999987533E+00 102 0.81095760000E+00 0.60603460000E+00 0.32740000000E+04 0.82572753000E-03 -0.25686674000E-03 0.99999962610E+00 103 0.62324580000E+00 0.85751130000E+00 0.32740000000E+04 0.27687786000E-03 -0.31911445000E-03 0.99999991075E+00 104 0.37796700000E+00 -0.13130110000E+01 0.32740000000E+04 0.31393633000E-03 -0.32991281000E-03 0.99999989630E+00 105 0.37796700000E+00 -0.13130110000E+01 0.32740000000E+04 0.31393633000E-03 -0.32991281000E-03 0.99999989630E+00 106 0.84609600000E+00 -0.48001890000E+00 0.32740000000E+04 -0.18710655000E-03 -0.41846564000E-03 0.99999989494E+00 107 0.10618900000E+01 0.44603670000E+00 0.32740000000E+04 0.12297103000E-02 -0.22406524000E-03 0.99999921880E+00 108 0.95800670000E+00 0.63225910000E+00 0.32740000000E+04 0.75190247000E-03 -0.22717507000E-03 0.99999969152E+00 109 0.11493070000E+01 0.34384160000E+00 0.32740000000E+04 0.41946219000E-03 -0.18192850000E-03 0.99999989548E+00 110 0.11360120000E+00 0.73396750000E+00 0.32740000000E+04 -0.55960688000E-03 -0.14124773000E-03 0.99999983344E+00 111 0.68891740000E+00 0.17500680000E+00 0.32740000000E+04 0.82141306000E-03 -0.31119119000E-03 0.99999961422E+00 112 0.16225230000E+01 0.19362850000E+01 0.32740000000E+04 0.13287625000E-02 -0.19218425000E-03 0.99999909873E+00 113 0.72334590000E+00 0.11164500000E+01 0.32740000000E+04 -0.41706246000E-03 -0.72228591000E-04 0.99999991042E+00 114 0.10680880000E+01 0.58431080000E+00 0.32740000000E+04 0.27690953000E-03 -0.29536174000E-03 0.99999991804E+00 115 -0.26489880000E-01 0.72484170000E+00 0.32740000000E+04 -0.85764012000E-03 -0.88527893000E-04 0.99999962831E+00 116 0.49695390000E+00 -0.96725270000E-01 0.32740000000E+04 -0.65286568000E-03 -0.44999708000E-03 0.99999968563E+00 117 0.43906510000E+00 0.94695100000E+00 0.32740000000E+04 0.17785859000E-03 0.27601563000E-03 0.99999994609E+00 118 0.43906510000E+00 0.94695100000E+00 0.32740000000E+04 0.17785859000E-03 0.27601563000E-03 0.99999994609E+00 119 0.71453340000E+00 0.19626617000E-02 0.32740000000E+04 -0.61920396000E-03 -0.30132046000E-03 0.99999976290E+00 120 0.30828800000E+00 -0.18860470000E+00 0.32740000000E+04 -0.45511927000E-03 -0.36670160000E-03 0.99999982920E+00 121 0.11013000000E+01 0.64108000000E+00 0.32740000000E+04 0.52854139000E-03 -0.33822056000E-04 0.99999985975E+00 122 0.57530490000E+00 0.63238290000E+00 0.32740000000E+04 0.12096179000E-04 -0.24006664000E-03 0.99999997111E+00 123 0.68042680000E+00 0.29001980000E+01 0.32740000000E+04 -0.30898035000E-03 0.45247136000E-04 0.99999995124E+00 124 0.60023720000E+00 0.11641820000E+01 0.32740000000E+04 0.64546277000E-03 -0.12699208000E-04 0.99999979161E+00 125 0.43761370000E+00 -0.28701710000E+00 0.32740000000E+04 0.17433148000E-03 -0.37859267000E-03 0.99999991314E+00 126 0.22404930000E+00 -0.28513240000E+00 0.32740000000E+04 -0.21630460000E-03 -0.35603484000E-03 0.99999991323E+00 127 0.83138320000E+00 0.52229750000E+00 0.32740000000E+04 0.87803497000E-03 -0.34056607000E-03 0.99999955653E+00 128 0.38234550000E+00 -0.13645090000E+00 0.32740000000E+04 0.30505440000E-04 -0.36959597000E-03 0.99999993123E+00 129 0.38234550000E+00 -0.13645090000E+00 0.32740000000E+04 0.30505440000E-04 -0.36959597000E-03 0.99999993123E+00 130 0.76345750000E+00 -0.34940560000E+00 0.32740000000E+04 0.88502455000E-03 -0.32139500000E-03 0.99999955672E+00 131 -0.34767720000E-01 -0.10363060000E+01 0.32740000000E+04 -0.74819854000E-03 -0.43305935000E-03 0.99999962633E+00 132 0.45115470000E+00 0.12275670000E+01 0.32740000000E+04 0.13877140000E-04 -0.52316096000E-04 0.99999999854E+00 133 0.88695590000E+00 -0.68281880000E+00 0.32740000000E+04 0.94637118000E-03 -0.46019696000E-03 0.99999944630E+00 134 0.67809470000E+00 -0.34133720000E+00 0.32740000000E+04 0.94418932000E-03 -0.41458706000E-03 0.99999946831E+00 135 0.25580860000E+00 -0.40607510000E+00 0.32740000000E+04 -0.13507767000E-03 -0.25622812000E-03 0.99999995805E+00 136 0.23984530000E-01 -0.64603360000E+00 0.32740000000E+04 -0.94959349000E-03 -0.42147562000E-03 0.99999946032E+00 137 0.59662240000E+00 -0.80047860000E+00 0.32740000000E+04 0.51175454000E-03 -0.23965104000E-03 0.99999984034E+00 138 0.86179880000E+00 0.48399580000E+00 0.32740000000E+04 -0.13831726000E-03 -0.16005489000E-03 0.99999997763E+00 139 0.11151470000E+00 -0.34045120000E+00 0.32740000000E+04 -0.47702668000E-03 -0.29008751000E-03 0.99999984415E+00 140 0.63438410000E+00 -0.69624970000E+00 0.32740000000E+04 -0.55877882000E-03 -0.26629033000E-03 0.99999980843E+00 141 0.63438410000E+00 -0.69624970000E+00 0.32740000000E+04 -0.55877882000E-03 -0.26629033000E-03 0.99999980843E+00 142 0.10588690000E+01 0.15841500000E+01 0.32740000000E+04 0.73180119000E-04 -0.11898113000E-04 0.99999999725E+00 143 -0.35694120000E+00 0.53870020000E+00 0.32740000000E+04 -0.53544855000E-03 -0.73617521000E-04 0.99999985394E+00 144 0.11419510000E+01 0.16202420000E+00 0.32740000000E+04 0.65989117000E-03 -0.25515893000E-03 0.99999974972E+00 145 0.59379220000E+00 0.55674390000E+00 0.32740000000E+04 0.86928287000E-03 -0.83449457000E-04 0.99999961869E+00 146 0.59379220000E+00 0.55674390000E+00 0.32740000000E+04 0.86928287000E-03 -0.83449457000E-04 0.99999961869E+00 147 0.54900830000E+00 0.77575140000E+00 0.32740000000E+04 0.14867236000E-03 -0.21101241000E-04 0.99999998873E+00 148 0.33121090000E+00 -0.57564480000E+00 0.32740000000E+04 -0.51900215000E-03 -0.30483818000E-03 0.99999981886E+00 149 0.86895700000E+00 0.90230560000E+00 0.32740000000E+04 0.11131928000E-03 -0.29438629000E-03 0.99999995047E+00 150 0.11993980000E+01 0.19714710000E+01 0.32740000000E+04 -0.51818078000E-03 0.12303708000E-03 0.99999985818E+00 151 0.56675200000E+00 -0.37714310000E-01 0.32740000000E+04 0.24092816000E-03 -0.23168855000E-03 0.99999994414E+00 152 0.72273040000E+00 0.60131440000E+00 0.32740000000E+04 -0.66246686000E-03 -0.13572276000E-03 0.99999977136E+00 153 0.10616630000E+01 0.54564810000E+00 0.32740000000E+04 -0.99838093000E-04 -0.29279056000E-03 0.99999995215E+00 154 0.62640820000E+00 0.74093080000E+00 0.32740000000E+04 -0.47175484000E-03 -0.25980646000E-03 0.99999985497E+00 155 0.40204350000E+00 -0.43222270000E+00 0.32740000000E+04 -0.23777326000E-03 -0.45020974000E-03 0.99999987039E+00 156 0.26195800000E+00 0.10902000000E+01 0.32740000000E+04 -0.41952857000E-03 0.54521461000E-05 0.99999991198E+00 157 0.65209980000E+00 0.11678810000E+00 0.32740000000E+04 0.47844683000E-03 -0.17186420000E-03 0.99999987078E+00 158 0.65209980000E+00 0.11678810000E+00 0.32740000000E+04 0.47844683000E-03 -0.17186420000E-03 0.99999987078E+00 159 0.13410190000E+00 -0.72145690000E+00 0.32740000000E+04 -0.83735510000E-03 -0.28572077000E-03 0.99999960860E+00 160 0.76799330000E+00 0.29662800000E+00 0.32740000000E+04 -0.34735200000E-04 -0.24603799000E-03 0.99999996913E+00 161 0.58808140000E+00 -0.34499360000E+00 0.32740000000E+04 0.38311569000E-03 -0.42145004000E-03 0.99999983780E+00 162 0.61202320000E+00 0.92671420000E+00 0.32740000000E+04 0.12717875000E-03 -0.70352900000E-04 0.99999998944E+00 163 0.24667280000E+00 0.90995540000E+00 0.32740000000E+04 -0.56176621000E-03 -0.17430921000E-03 0.99999982702E+00 164 0.41360200000E+00 -0.69557520000E+00 0.32740000000E+04 -0.25537598000E-03 -0.35215917000E-03 0.99999990538E+00 165 0.10165130000E+00 -0.17294530000E+00 0.32740000000E+04 -0.57603756000E-03 -0.41008435000E-03 0.99999975001E+00 166 0.46961840000E+00 0.15881170000E+01 0.32740000000E+04 -0.31209175000E-03 -0.16119766000E-03 0.99999993831E+00 167 0.69213310000E+00 0.27268440000E+00 0.32740000000E+04 0.47727383000E-03 -0.22357331000E-03 0.99999986111E+00 168 0.49694010000E+00 0.54369360000E+00 0.32740000000E+04 0.20800924000E-03 -0.65706903000E-03 0.99999976250E+00 169 0.17968520000E+00 0.69347670000E+00 0.32740000000E+04 -0.77279500000E-03 -0.14379872000E-03 0.99999969105E+00 170 0.29858560000E+00 -0.12548680000E+01 0.32740000000E+04 -0.36102560000E-04 -0.55775023000E-03 0.99999984381E+00 171 0.29858560000E+00 -0.12548680000E+01 0.32740000000E+04 -0.36102560000E-04 -0.55775023000E-03 0.99999984381E+00 172 0.13922400000E+00 0.83091950000E+00 0.32740000000E+04 -0.78808586000E-03 -0.40226962000E-04 0.99999968865E+00 173 0.44687080000E+00 -0.46829370000E+00 0.32740000000E+04 0.75671298000E-03 -0.27712135000E-03 0.99999967529E+00 174 0.24863520000E+00 -0.99996470000E-01 0.32740000000E+04 0.24622786000E-03 -0.74220094000E-03 0.99999969425E+00 175 0.75657820000E+00 0.21544600000E+01 0.32740000000E+04 -0.50345884000E-03 -0.86645951000E-03 0.99999949789E+00 176 0.19393810000E+01 0.10921010000E+00 0.32740000000E+04 0.87739207000E-03 -0.95299853000E-04 0.99999961055E+00 177 0.19631860000E+00 0.52520480000E+00 0.32740000000E+04 -0.92587445000E-03 0.12082907000E-03 0.99999956408E+00 178 0.41048740000E+00 -0.29514100000E-01 0.32740000000E+04 -0.82062310000E-04 -0.29401740000E-03 0.99999995341E+00 179 0.10510950000E+01 0.36107420000E+00 0.32740000000E+04 0.32101525000E-03 -0.11492725000E-03 0.99999994187E+00 180 0.84398940000E+00 0.28508580000E+00 0.32740000000E+04 0.80227375000E-03 -0.72735274000E-04 0.99999967553E+00 181 0.97699560000E+00 -0.10034810000E+01 0.32740000000E+04 0.30112600000E-04 -0.54134545000E-03 0.99999985302E+00 182 0.96229900000E+00 0.13235550000E+01 0.32740000000E+04 0.26431354000E-03 -0.24231451000E-03 0.99999993571E+00 183 0.93798060000E+00 0.13235550000E+01 0.32740000000E+04 0.27071277000E-03 -0.24231451000E-03 0.99999993400E+00 184 0.27520170000E+00 -0.12929150000E+01 0.32740000000E+04 -0.32126240000E-03 -0.12396136000E-03 0.99999994071E+00 185 0.13770600000E+01 -0.16398890000E+01 0.32740000000E+04 0.34597051000E-04 -0.72134880000E-03 0.99999973923E+00 186 0.10846920000E+01 0.62742430000E+00 0.32740000000E+04 0.43272405000E-03 0.96404983000E-04 0.99999990173E+00 187 0.72971010000E-01 -0.12314700000E+00 0.32740000000E+04 -0.53155102000E-03 -0.32281957000E-03 0.99999980662E+00 188 -0.12371030000E+00 0.29889820000E+00 0.32740000000E+04 -0.10180726000E-02 -0.13924026000E-03 0.99999947207E+00 189 0.49578950000E+00 0.12700020000E+00 0.32740000000E+04 -0.13314973000E-03 -0.42856540000E-03 0.99999989930E+00 190 0.73183130000E+00 -0.33372340000E+00 0.32740000000E+04 0.46208900000E-03 -0.18454484000E-03 0.99999987621E+00 191 0.82687570000E+00 0.33776170000E+00 0.32740000000E+04 -0.45455224000E-03 -0.26635197000E-03 0.99999986122E+00 192 -0.10573910000E+00 0.93380810000E+00 0.32740000000E+04 -0.61317638000E-03 0.33723007000E-03 0.99999975515E+00 193 0.48843190000E+00 -0.17368080000E+01 0.32740000000E+04 0.59565355000E-03 -0.21985974000E-03 0.99999979843E+00 194 0.94478320000E+00 -0.81419920000E-01 0.32740000000E+04 0.12060469000E-02 -0.22262525000E-03 0.99999924794E+00 195 0.32909120000E+00 0.37103530000E+00 0.32740000000E+04 -0.89497204000E-04 -0.37744121000E-04 0.99999999528E+00 196 0.76676110000E+00 0.13716090000E+00 0.32740000000E+04 0.54784172000E-03 -0.31229216000E-03 0.99999980117E+00 197 0.61431770000E+00 -0.68385600000E+00 0.32740000000E+04 0.34018338000E-03 -0.27161773000E-03 0.99999990525E+00 198 0.31997770000E+00 0.99179400000E+00 0.32740000000E+04 -0.20879292000E-03 0.95885356000E-04 0.99999997361E+00 199 0.27245640000E+00 0.50126840000E+00 0.32740000000E+04 -0.67740103000E-03 -0.15659069000E-03 0.99999975830E+00 200 0.49131410000E+00 0.11479040000E+01 0.32740000000E+04 -0.98821132000E-04 -0.10618142000E-03 0.99999998948E+00 201 0.49131410000E+00 0.11479040000E+01 0.32740000000E+04 -0.98821132000E-04 -0.10618142000E-03 0.99999998948E+00 202 0.88510830000E+00 0.69140440000E+00 0.32740000000E+04 0.49029605000E-03 -0.11527288000E-03 0.99999987316E+00 203 -0.93130920000E-01 -0.35254290000E+00 0.32740000000E+04 -0.89920516000E-03 -0.17614152000E-03 0.99999958020E+00 204 -0.37540960000E-01 0.10050300000E+01 0.32740000000E+04 -0.63849473000E-03 -0.15933710000E-03 0.99999978347E+00 205 -0.29946990000E+00 0.30456230000E+00 0.32740000000E+04 -0.10657784000E-02 -0.18604839000E-03 0.99999941475E+00 206 -0.93049049000E-02 0.10633490000E+00 0.32740000000E+04 -0.84678968000E-03 -0.35953056000E-03 0.99999957684E+00 207 0.83240760000E+00 0.12848750000E+01 0.32740000000E+04 0.36366004000E-03 -0.19679815000E-03 0.99999991451E+00 208 0.56062640000E+00 0.83304710000E+00 0.32740000000E+04 -0.70590305000E-03 -0.15716015000E-02 0.99999851588E+00 209 0.13320310000E+00 -0.57339910000E-01 0.32740000000E+04 -0.52534288000E-03 -0.28583725000E-03 0.99999982116E+00 210 0.64805970000E+00 -0.41995230000E+00 0.32740000000E+04 -0.52886666000E-04 -0.46053302000E-03 0.99999989256E+00 211 0.61638230000E+00 0.24287870000E-01 0.32740000000E+04 0.60260523000E-03 -0.17429178000E-03 0.99999980324E+00 212 0.76762640000E+00 0.17515420000E-01 0.32740000000E+04 -0.27516161000E-03 -0.38043768000E-03 0.99999988978E+00 213 0.90983280000E+00 0.92497950000E+00 0.32740000000E+04 0.17308235000E-04 -0.25468649000E-03 0.99999996742E+00 214 0.90983280000E+00 0.92497950000E+00 0.32740000000E+04 0.17308235000E-04 -0.25468649000E-03 0.99999996742E+00 215 0.17056820000E+01 0.13268200000E+01 0.32740000000E+04 0.25741116000E-04 0.39735017000E-03 0.99999992073E+00 216 0.79893310000E+00 0.62700700000E+00 0.32740000000E+04 0.62822562000E-03 -0.19502750000E-03 0.99999978365E+00 217 0.68938650000E+00 -0.35350630000E-01 0.32740000000E+04 -0.30627841000E-03 -0.28695818000E-03 0.99999991192E+00 218 0.50660510000E+00 -0.10046680000E+00 0.32740000000E+04 0.29940324000E-03 -0.37273578000E-03 0.99999988571E+00 219 0.83222010000E+00 -0.22635150000E+00 0.32740000000E+04 0.77952951000E-03 -0.32882890000E-03 0.99999964210E+00 220 0.14420990000E+00 -0.34752010000E+00 0.32740000000E+04 -0.39507425000E-03 -0.25779518000E-03 0.99999988873E+00 221 0.56271550000E+00 -0.96616400000E+00 0.32740000000E+04 0.10725758000E-02 -0.35739559000E-03 0.99999936092E+00 222 0.90879810000E+00 0.52461550000E+00 0.32740000000E+04 0.24452433000E-04 -0.15658599000E-03 0.99999998744E+00 223 0.10337960000E+01 -0.17253590000E+00 0.32740000000E+04 0.73906308000E-03 -0.41151504000E-03 0.99999964222E+00 224 0.69765670000E+00 0.19773200000E+00 0.32740000000E+04 -0.25430048000E-03 -0.41091628000E-03 0.99999988324E+00 225 0.58071750000E+00 0.34726760000E+00 0.32740000000E+04 0.30718083000E-03 -0.31241629000E-03 0.99999990402E+00 226 0.10895920000E+01 -0.25582030000E+00 0.32740000000E+04 0.89443946000E-03 -0.55480952000E-03 0.99999944608E+00 227 0.10895920000E+01 -0.25582030000E+00 0.32740000000E+04 0.89443946000E-03 -0.55480952000E-03 0.99999944608E+00 228 -0.54180610000E+00 0.19644130000E+01 0.32740000000E+04 -0.10217008000E-02 -0.53111336000E-04 0.99999947665E+00 229 0.40039590000E-01 0.61993050000E+00 0.32740000000E+04 -0.54536614000E-03 -0.49531325000E-04 0.99999985006E+00 230 0.86167590000E+00 0.69760010000E+00 0.32740000000E+04 -0.86425753000E-05 -0.29505792000E-03 0.99999995643E+00 231 0.20891000000E+00 0.99443460000E+00 0.32740000000E+04 -0.48610789000E-03 -0.10252942000E-03 0.99999987659E+00 232 0.44331550000E+00 -0.64243460000E-01 0.32740000000E+04 -0.63329312000E-03 -0.29514180000E-03 0.99999975592E+00 233 0.77817970000E+00 0.42854960000E+00 0.32740000000E+04 -0.64588012000E-03 -0.11337151000E-03 0.99999978499E+00 234 0.75305690000E+00 -0.41739850000E+00 0.32740000000E+04 0.27349722000E-03 -0.93698042000E-03 0.99999952363E+00 235 0.16009320000E+01 -0.39733720000E-01 0.32740000000E+04 0.15219646000E-03 -0.16799378000E-03 0.99999997431E+00 236 0.10988770000E+01 0.21724420000E+01 0.32740000000E+04 0.10016084000E-02 0.90014822000E-04 0.99999949434E+00 237 -0.40175290000E-01 0.11717780000E+01 0.32740000000E+04 -0.94249158000E-03 -0.34326040000E-04 0.99999955527E+00 238 0.29754520000E+00 0.65726910000E+00 0.32740000000E+04 -0.37643133000E-03 -0.15055414000E-03 0.99999991782E+00 239 0.41314000000E+00 -0.66188790000E+00 0.32740000000E+04 0.39839648000E-04 -0.24908912000E-03 0.99999996818E+00 240 0.68534520000E+00 -0.44972340000E+00 0.32740000000E+04 0.25853550000E-03 -0.46117126000E-03 0.99999986024E+00 241 0.68534520000E+00 -0.44972340000E+00 0.32740000000E+04 0.25853550000E-03 -0.46117126000E-03 0.99999986024E+00 242 0.43947640000E+00 -0.63724610000E+00 0.32740000000E+04 -0.28262753000E-03 -0.23378264000E-03 0.99999993273E+00 243 0.18335790000E+00 0.32407540000E+00 0.32740000000E+04 -0.35295199000E-03 -0.25452996000E-03 0.99999990532E+00 244 0.22439670000E-01 -0.79367170000E+00 0.32740000000E+04 -0.71359827000E-03 -0.36582706000E-03 0.99999967847E+00 245 0.34095520000E+00 0.29014860000E-01 0.32740000000E+04 -0.17934134000E-03 -0.16689627000E-03 0.99999996999E+00 246 0.19506500000E+00 0.89562190000E-01 0.32740000000E+04 -0.57695596000E-03 -0.13113806000E-03 0.99999982496E+00 247 0.39330740000E+00 0.11856200000E+01 0.32740000000E+04 -0.94551523000E-03 -0.10248899000E-03 0.99999954775E+00 248 0.14827010000E+01 0.15802040000E+01 0.32740000000E+04 0.39542021000E-03 0.13230455000E-04 0.99999992173E+00 249 0.11200140000E+01 -0.74443950000E-01 0.32740000000E+04 0.58039709000E-03 -0.77169578000E-04 0.99999982859E+00 250 0.83569660000E+00 0.64559630000E+00 0.32740000000E+04 -0.14904058000E-04 -0.11462098000E-03 0.99999999332E+00 251 0.37331740000E+00 -0.96840860000E-01 0.32740000000E+04 -0.43645981000E-03 -0.39513694000E-03 0.99999982668E+00 252 0.49801330000E+00 0.69231350000E+00 0.32740000000E+04 -0.27938737000E-03 -0.12752978000E-03 0.99999995284E+00 253 0.55857390000E+00 -0.65463800000E+00 0.32740000000E+04 -0.39563616000E-03 -0.27422394000E-03 0.99999988414E+00 254 0.97422040000E+00 -0.26049830000E+00 0.32740000000E+04 0.94853140000E-05 -0.43920943000E-03 0.99999990350E+00 255 0.66736910000E+00 -0.70800400000E+00 0.32740000000E+04 0.17915519000E-03 -0.50043495000E-03 0.99999985873E+00 256 0.50298430000E+00 -0.74758310000E+00 0.32740000000E+04 0.13935757000E-03 -0.48571930000E-03 0.99999987233E+00 257 0.17887410000E+01 0.91783120000E+00 0.32740000000E+04 0.57696865000E-03 0.22446136000E-03 0.99999980836E+00 258 0.49693400000E+00 -0.32294950000E+00 0.32740000000E+04 0.10661597000E-03 -0.37060838000E-03 0.99999992564E+00 259 0.10468800000E+01 -0.36367010000E+00 0.32740000000E+04 0.38496012000E-03 -0.19893715000E-03 0.99999990611E+00 260 0.10468800000E+01 -0.36367010000E+00 0.32740000000E+04 0.38496012000E-03 -0.19893715000E-03 0.99999990611E+00 261 0.87997720000E+00 0.24895220000E+00 0.32740000000E+04 -0.24157709000E-03 -0.22107510000E-03 0.99999994638E+00 262 0.41662780000E+00 -0.57927130000E+00 0.32740000000E+04 -0.42771007000E-03 -0.33681153000E-03 0.99999985181E+00 263 0.24006500000E+00 0.43200710000E+00 0.32740000000E+04 -0.36434026000E-03 -0.20795607000E-03 0.99999991201E+00 264 0.36331010000E+00 0.31723340000E+00 0.32740000000E+04 0.89345389000E-03 -0.13481145000E-03 0.99999959178E+00 265 0.78756420000E+00 0.26999160000E+00 0.32740000000E+04 -0.44240666000E-03 -0.32272350000E-03 0.99999985006E+00 266 0.15328230000E+00 -0.15307450000E+00 0.32740000000E+04 -0.63517544000E-03 -0.31321339000E-03 0.99999974922E+00 267 0.82016930000E+00 0.46594500000E+00 0.32740000000E+04 -0.93176757000E-04 -0.33681799000E-03 0.99999993894E+00 268 0.91162320000E+00 0.92390900000E+00 0.32740000000E+04 -0.12074382000E-03 -0.23100182000E-03 0.99999996603E+00 269 0.10660080000E+01 0.95527120000E-01 0.32740000000E+04 0.79981238000E-03 -0.29379039000E-03 0.99999963699E+00 270 0.31022480000E+00 0.83997840000E+00 0.32740000000E+04 -0.32755779000E-03 -0.71666240000E-04 0.99999994378E+00 271 0.94061660000E+00 -0.34474970000E+00 0.32740000000E+04 0.42806953000E-03 -0.27935213000E-03 0.99999986936E+00 272 0.88239270000E+00 0.70963350000E+00 0.32740000000E+04 0.82427473000E-03 -0.32557515000E-03 0.99999960729E+00 273 0.84012350000E+00 0.51963520000E+00 0.32740000000E+04 0.26821825000E-03 -0.96865471000E-04 0.99999995934E+00 274 0.11447750000E+01 -0.90540409000E-02 0.32740000000E+04 -0.16111710000E-03 -0.45349024000E-03 0.99999988419E+00 275 0.13992080000E+00 0.13539050000E+01 0.32740000000E+04 -0.92207716000E-03 0.10336674000E-03 0.99999956954E+00 276 0.32665670000E+00 -0.16459700000E+00 0.32740000000E+04 0.46315385000E-04 -0.24564890000E-03 0.99999996876E+00 277 0.79069200000E+00 -0.10204380000E+00 0.32740000000E+04 0.73474552000E-03 -0.29607030000E-03 0.99999968625E+00 278 0.10143650000E+01 -0.20409220000E+00 0.32740000000E+04 0.44128342000E-03 -0.39305296000E-03 0.99999982539E+00 279 0.21043780000E-01 -0.61932550000E+00 0.32740000000E+04 -0.79499127000E-03 -0.36047905000E-03 0.99999961902E+00 280 0.43433400000E+00 -0.57117430000E+00 0.32740000000E+04 0.81529994000E-04 -0.45484278000E-03 0.99999989324E+00 281 0.14518600000E+01 -0.13900740000E+01 0.32740000000E+04 0.60162408000E-03 -0.61510998000E-03 0.99999962984E+00 282 0.62961100000E+00 0.11147810000E+01 0.32740000000E+04 0.70341746000E-03 -0.22117380000E-03 0.99999972814E+00 283 0.64872370000E+00 -0.52161150000E+00 0.32740000000E+04 -0.86911481000E-04 0.50896360000E-04 0.99999999493E+00 284 0.64697300000E+00 0.92041530000E+00 0.32740000000E+04 0.73460711000E-03 -0.49767325000E-04 0.99999972894E+00 285 0.64084220000E+00 0.27339740000E+00 0.32740000000E+04 0.25107726000E-03 -0.13864152000E-03 0.99999995887E+00 286 0.56519610000E+00 -0.46694550000E+00 0.32740000000E+04 -0.84268738000E-03 -0.21892239000E-03 0.99999962098E+00 287 0.44323710000E+00 -0.29627180000E+00 0.32740000000E+04 0.14084834000E-03 -0.43907066000E-03 0.99999989369E+00 288 0.12604630000E+01 -0.12973180000E+00 0.32740000000E+04 0.12464501000E-02 -0.32264864000E-03 0.99999917113E+00 289 0.32149240000E+00 0.83597250000E+00 0.32740000000E+04 -0.69437956000E-03 -0.22999989000E-03 0.99999973247E+00 290 0.38433810000E+00 0.81291850000E+00 0.32740000000E+04 0.99987672000E-04 -0.74949829000E-04 0.99999999219E+00 291 0.38902850000E+00 0.16256790000E+00 0.32740000000E+04 0.30663566000E-03 -0.31752707000E-03 0.99999990258E+00 292 0.88994650000E-01 -0.48205830000E+00 0.32740000000E+04 -0.62475645000E-03 -0.25189461000E-03 0.99999977311E+00 293 0.36094770000E+00 -0.40587340000E+00 0.32740000000E+04 -0.30764076000E-03 -0.22467566000E-03 0.99999992744E+00 294 0.25122670000E+00 0.30726360000E+00 0.32740000000E+04 -0.29216369000E-03 -0.21138276000E-03 0.99999993498E+00 295 0.25122670000E+00 0.30726360000E+00 0.32740000000E+04 -0.29216369000E-03 -0.21138276000E-03 0.99999993498E+00 296 0.33209330000E+00 0.15712040000E+01 0.32740000000E+04 0.35747371000E-03 -0.18011234000E-03 0.99999991989E+00 297 0.10860200000E+01 0.28673370000E+01 0.32740000000E+04 -0.23531268000E-03 0.84741558000E-04 0.99999996872E+00 298 0.28797990000E+00 0.89606950000E-01 0.32740000000E+04 -0.55580202000E-03 -0.30365647000E-03 0.99999979944E+00 299 0.92808950000E+00 -0.63900610000E-01 0.32740000000E+04 -0.89311070000E-04 -0.41304255000E-03 0.99999991071E+00 300 0.57681980000E+00 0.11478300000E+01 0.32740000000E+04 0.40413707000E-03 -0.31405690000E-03 0.99999986902E+00 301 0.14904310000E+01 0.78295390000E+00 0.32740000000E+04 0.75903861000E-03 -0.15015398000E-03 0.99999970066E+00 302 0.76949250000E+00 0.14973130000E+00 0.32740000000E+04 0.11112438000E-03 -0.25190000000E-03 0.99999996210E+00 303 0.81916780000E+00 0.14973130000E+00 0.32740000000E+04 0.92993942000E-04 -0.25190000000E-03 0.99999996395E+00 304 0.89436660000E+00 0.51323070000E+00 0.32740000000E+04 0.11434229000E-03 -0.19053301000E-03 0.99999997531E+00 305 0.10172190000E+01 0.32456980000E+00 0.32740000000E+04 0.37483315000E-03 -0.30971217000E-03 0.99999988179E+00 306 0.66877470000E+00 -0.16712060000E+00 0.32740000000E+04 0.82881731000E-03 -0.14111087000E-03 0.99999964657E+00 307 0.36604550000E+00 0.39586420000E+00 0.32740000000E+04 0.40252268000E-03 -0.85948064000E-04 0.99999991529E+00 308 0.46139730000E+00 0.10464210000E+01 0.32740000000E+04 -0.88985410000E-03 -0.59939604000E-04 0.99999960228E+00 309 0.64590570000E+00 -0.16065150000E+01 0.32740000000E+04 -0.39056121000E-03 -0.41627322000E-03 0.99999983709E+00 310 0.66645040000E+00 -0.54753260000E-01 0.32740000000E+04 0.58867934000E-03 -0.34375174000E-03 0.99999976765E+00 311 0.12058270000E+01 0.63032460000E+00 0.32740000000E+04 -0.13966249000E-03 -0.10076507000E-03 0.99999998517E+00 312 0.16135660000E+01 -0.27375250000E-01 0.32740000000E+04 -0.58535876000E-03 -0.63853622000E-04 0.99999982664E+00 313 0.66599440000E+00 -0.58469190000E+00 0.32740000000E+04 0.65843837000E-03 -0.46301924000E-03 0.99999967604E+00 314 0.12503860000E+01 -0.25291440000E+00 0.32740000000E+04 0.73175970000E-03 -0.45497090000E-03 0.99999962876E+00 315 0.47962700000E+00 0.87268620000E+00 0.32740000000E+04 -0.36469521000E-03 -0.22296312000E-03 0.99999990864E+00 316 0.17678740000E+00 -0.63482180000E+00 0.32740000000E+04 -0.35786448000E-03 -0.49005932000E-03 0.99999981589E+00 317 0.61798340000E+00 -0.67759950000E+00 0.32740000000E+04 0.33700193000E-03 -0.27346521000E-03 0.99999990582E+00 318 0.12461070000E+01 0.23891730000E+01 0.32740000000E+04 -0.70804002000E-03 -0.94470684000E-04 0.99999974488E+00 319 0.27533680000E+00 -0.50622650000E+00 0.32740000000E+04 -0.30823963000E-03 -0.39775748000E-03 0.99999987339E+00 320 0.77181020000E+00 0.43916610000E+00 0.32740000000E+04 -0.10457716000E-03 -0.30947750000E-03 0.99999994664E+00 321 0.28809080000E+00 -0.84749550000E+00 0.32740000000E+04 -0.38355724000E-04 -0.34088152000E-03 0.99999994116E+00 322 0.14568590000E+01 0.25779840000E+01 0.32740000000E+04 0.51641662000E-03 0.23766309000E-03 0.99999983842E+00 323 0.80138520000E+00 0.74474210000E+00 0.32740000000E+04 -0.81157516000E-04 -0.84162588000E-04 0.99999999317E+00 324 0.77729090000E+00 0.73688960000E+00 0.32740000000E+04 -0.59662317000E-03 -0.20660418000E-03 0.99999980068E+00 325 0.77969970000E+00 0.10771390000E+01 0.32740000000E+04 -0.42180420000E-03 -0.89545836000E-04 0.99999990703E+00 326 0.11550240000E+01 0.73138380000E-01 0.32740000000E+04 0.74014749000E-03 -0.20577897000E-03 0.99999970492E+00 327 0.11550240000E+01 0.73138380000E-01 0.32740000000E+04 0.74014749000E-03 -0.20577897000E-03 0.99999970492E+00 328 0.22043620000E+01 0.13569550000E+01 0.32740000000E+04 0.94321498000E-03 -0.11308533000E-03 0.99999954878E+00 329 0.91195180000E+00 -0.31599880000E+00 0.32740000000E+04 0.52637221000E-04 -0.45573126000E-03 0.99999989477E+00 330 0.52173170000E+00 0.23580260000E+01 0.32740000000E+04 -0.23884364000E-03 0.12730996000E-03 0.99999996337E+00 331 0.93330930000E+00 0.24799830000E+00 0.32740000000E+04 0.13424746000E-04 -0.23438130000E-03 0.99999997244E+00 332 0.58589530000E+00 0.12337230000E+01 0.32740000000E+04 0.52139623000E-03 -0.20910475000E-03 0.99999984221E+00 333 0.27983900000E+00 0.55200600000E+00 0.32740000000E+04 -0.15421353000E-03 -0.67830384000E-04 0.99999998581E+00 334 0.49898440000E+00 0.98314550000E+00 0.32740000000E+04 -0.40834426000E-03 -0.14800293000E-03 0.99999990568E+00 335 0.10800210000E+01 -0.27953550000E+00 0.32740000000E+04 0.57867073000E-04 -0.22327411000E-03 0.99999997340E+00 336 0.51186900000E+00 -0.50550170000E-01 0.32740000000E+04 0.85460232000E-03 -0.48779830000E-03 0.99999951585E+00 337 0.60989460000E+00 -0.27757380000E+00 0.32740000000E+04 0.39307834000E-03 -0.23104304000E-03 0.99999989605E+00 338 0.74237620000E+00 -0.26492700000E+00 0.32740000000E+04 0.63550490000E-03 -0.44366458000E-03 0.99999969965E+00 339 0.74237620000E+00 -0.26492700000E+00 0.32740000000E+04 0.63550490000E-03 -0.44366458000E-03 0.99999969965E+00 340 0.26736660000E+00 0.11324160000E-01 0.32740000000E+04 -0.48801096000E-03 -0.13254995000E-03 0.99999987214E+00 341 0.40744220000E+00 0.63058640000E+00 0.32740000000E+04 -0.20447628000E-03 -0.36850097000E-03 0.99999991120E+00 342 0.94371690000E+00 0.37464560000E+00 0.32740000000E+04 -0.23054623000E-03 -0.10624219000E-03 0.99999996778E+00 343 0.43722490000E+00 -0.45427900000E+00 0.32740000000E+04 0.49700856000E-03 -0.41140313000E-03 0.99999979186E+00 344 0.64864520000E+00 0.50801640000E+00 0.32740000000E+04 -0.38514833000E-03 -0.27446053000E-03 0.99999988817E+00 345 0.51748930000E+00 -0.35882190000E-01 0.32740000000E+04 0.33152988000E-03 -0.30075855000E-03 0.99999989982E+00 346 0.26541180000E+00 -0.52933240000E+00 0.32740000000E+04 0.10555236000E-03 -0.32107605000E-03 0.99999994288E+00 347 0.83270870000E+00 -0.37481900000E+00 0.32740000000E+04 -0.83985047000E-04 -0.52379648000E-03 0.99999985929E+00 348 0.35426560000E+00 -0.32092890000E+00 0.32740000000E+04 -0.47129916000E-03 -0.22505833000E-03 0.99999986361E+00 349 0.21866070000E+00 -0.73568960000E+00 0.32740000000E+04 -0.71177020000E-03 -0.26247386000E-03 0.99999971225E+00 350 0.52156940000E+00 0.58469030000E-01 0.32740000000E+04 0.12456621000E-03 -0.42013713000E-03 0.99999990398E+00 351 0.52156940000E+00 0.58469030000E-01 0.32740000000E+04 0.12456621000E-03 -0.42013713000E-03 0.99999990398E+00 352 0.45315760000E+00 -0.14369620000E+00 0.32740000000E+04 0.37581954000E-03 -0.18924856000E-03 0.99999991147E+00 353 0.52263150000E+00 0.13337560000E+00 0.32740000000E+04 -0.89178749000E-04 -0.33982043000E-03 0.99999993828E+00 354 0.24349090000E+00 -0.12515350000E+00 0.32740000000E+04 -0.12462666000E-03 -0.29120510000E-03 0.99999994983E+00 355 0.60246380000E+00 0.56067140000E+00 0.32740000000E+04 0.43631508000E-03 -0.35252020000E-03 0.99999984268E+00 356 0.60246380000E+00 0.56067140000E+00 0.32740000000E+04 0.43631508000E-03 -0.35252020000E-03 0.99999984268E+00 357 0.16234350000E+00 0.53061060000E+00 0.32740000000E+04 0.21152955000E-03 -0.34661821000E-03 0.99999991756E+00 358 0.74005900000E+00 0.43451990000E+00 0.32740000000E+04 -0.37493976000E-03 -0.28303577000E-03 0.99999988966E+00 359 0.87280030000E+00 -0.91401540000E+00 0.32740000000E+04 0.72238065000E-03 -0.42326070000E-03 0.99999964951E+00 360 0.84216630000E+00 0.70157040000E+00 0.32740000000E+04 -0.24390024000E-03 -0.12838222000E-03 0.99999996202E+00 361 0.59607100000E+00 -0.44089520000E+00 0.32740000000E+04 0.16883825000E-03 -0.54000347000E-03 0.99999983994E+00 362 0.60069220000E+00 0.33689130000E+00 0.32740000000E+04 -0.18169257000E-02 0.62985782000E-03 0.99999815103E+00 363 0.17031330000E+00 -0.11002980000E+00 0.32740000000E+04 -0.40005709000E-03 -0.40809574000E-03 0.99999983671E+00 364 0.72426130000E+00 -0.56162670000E+00 0.32740000000E+04 0.70363493000E-03 -0.39454125000E-03 0.99999967462E+00 365 0.67052440000E+00 0.47544620000E+00 0.32740000000E+04 0.26586911000E-03 -0.24936622000E-03 0.99999993357E+00 366 0.44784980000E+00 0.62617440000E+00 0.32740000000E+04 0.17443796000E-03 -0.31365524000E-03 0.99999993560E+00 367 0.44784980000E+00 0.62617440000E+00 0.32740000000E+04 0.17443796000E-03 -0.31365524000E-03 0.99999993560E+00 368 0.72458460000E+00 -0.16587530000E+00 0.32740000000E+04 -0.49257441000E-03 -0.27305249000E-03 0.99999984141E+00 369 0.70986180000E+00 0.59850850000E+00 0.32740000000E+04 0.83907304000E-03 -0.27433317000E-03 0.99999961035E+00 370 0.91318140000E+00 0.80236150000E+00 0.32740000000E+04 0.85549182000E-04 -0.30445628000E-03 0.99999994999E+00 371 0.54015890000E+00 0.62130760000E+00 0.32740000000E+04 0.14845451000E-03 -0.33985745000E-03 0.99999993123E+00 372 0.11449730000E+01 0.27873130000E+01 0.32740000000E+04 -0.31270599000E-03 0.51093801000E-04 0.99999994980E+00 373 0.36919260000E+00 -0.19233500000E+00 0.32740000000E+04 0.62672912000E-05 -0.46417362000E-03 0.99999989225E+00 374 0.11745250000E+01 -0.51831160000E+00 0.32740000000E+04 0.10138919000E-03 -0.43019140000E-03 0.99999990233E+00 375 0.59511160000E+00 -0.21604940000E+00 0.32740000000E+04 0.36563916000E-03 -0.30095861000E-03 0.99999988787E+00 376 0.51689148000E-04 0.83409200000E-01 0.32740000000E+04 -0.87348442000E-03 -0.18812342000E-03 0.99999960082E+00 377 0.11408260000E+01 -0.22052430000E+00 0.32740000000E+04 0.11095445000E-04 -0.31864180000E-03 0.99999994917E+00 378 0.67098510000E+00 0.11675130000E+01 0.32740000000E+04 0.31205450000E-03 -0.17853994000E-03 0.99999993537E+00 379 0.33513110000E+00 0.33059160000E+00 0.32740000000E+04 -0.78779907000E-03 -0.30800336000E-03 0.99999964225E+00 380 0.33513110000E+00 0.33059160000E+00 0.32740000000E+04 -0.78779907000E-03 -0.30800336000E-03 0.99999964225E+00 381 0.11376890000E+01 -0.16513600000E+00 0.32740000000E+04 0.83354523000E-03 -0.37114538000E-03 0.99999958373E+00 382 0.11843030000E+01 -0.22051390000E+01 0.32740000000E+04 0.72597532000E-03 -0.92702330000E-03 0.99999930679E+00 383 0.60946780000E+00 0.51441530000E+00 0.32740000000E+04 0.50670013000E-03 -0.17013887000E-03 0.99999985715E+00 384 0.28171150000E+00 -0.69789350000E+00 0.32740000000E+04 -0.71208365000E-05 -0.40211444000E-03 0.99999991913E+00 385 0.56062160000E+00 0.42225160000E+00 0.32740000000E+04 0.72755189000E-04 -0.89170135000E-04 0.99999999338E+00 386 0.19535910000E+00 -0.28631290000E+00 0.32740000000E+04 -0.59089041000E-03 -0.40455593000E-03 0.99999974359E+00 387 0.68132440000E+00 -0.50755760000E+00 0.32740000000E+04 0.37225334000E-04 -0.54151029000E-03 0.99999985269E+00 388 0.10046730000E+00 0.88999830000E+00 0.32740000000E+04 -0.65401988000E-03 -0.16158263000E-03 0.99999977307E+00 389 -0.29908990000E+00 -0.24230690000E+00 0.32740000000E+04 -0.94891974000E-03 -0.22288862000E-03 0.99999952494E+00 390 0.65734150000E+00 -0.11396400000E+00 0.32740000000E+04 0.70216332000E-03 -0.22336880000E-03 0.99999972854E+00 391 0.74312920000E+00 0.11826340000E+00 0.32740000000E+04 0.86903339000E-03 -0.37141042000E-03 0.99999955342E+00 392 0.66545360000E+00 0.91947210000E+00 0.32740000000E+04 0.48722047000E-03 0.24316494000E-05 0.99999988131E+00 393 0.66545360000E+00 0.91947210000E+00 0.32740000000E+04 0.48722047000E-03 0.24316494000E-05 0.99999988131E+00 394 0.80108090000E+00 0.57032350000E+00 0.32740000000E+04 -0.58912853000E-03 -0.28328405000E-03 0.99999978634E+00 395 0.72569680000E+00 0.21766320000E+00 0.32740000000E+04 -0.36324511000E-03 -0.30718508000E-03 0.99999988685E+00 396 0.36436710000E+00 -0.76497140000E+00 0.32740000000E+04 0.73456272000E-05 -0.28206175000E-03 0.99999996019E+00 397 0.74500820000E+00 -0.13565090000E+00 0.32740000000E+04 -0.48069723000E-03 -0.39274257000E-03 0.99999980734E+00 398 0.80872010000E+00 -0.13301200000E+00 0.32740000000E+04 -0.69952779000E-03 -0.39897452000E-03 0.99999967574E+00 399 0.48523690000E+00 -0.56441040000E+00 0.32740000000E+04 -0.72694318000E-04 -0.48213868000E-03 0.99999988113E+00 400 0.57049930000E+00 0.65124400000E+00 0.32740000000E+04 0.13013218000E-03 0.74438503000E-04 0.99999998876E+00 401 0.45490090000E+00 -0.64583690000E+00 0.32740000000E+04 0.41114222000E-03 -0.31524803000E-03 0.99999986579E+00 402 0.31445330000E+00 -0.21840430000E+01 0.32740000000E+04 -0.28527214000E-03 -0.59940369000E-03 0.99999977967E+00 403 -0.12174280000E+01 -0.11215970000E+01 0.32740000000E+04 -0.12029116000E-02 -0.38262291000E-03 0.99999920330E+00 404 0.42285290000E+00 -0.87289810000E-01 0.32740000000E+04 0.15868939000E-03 -0.42953790000E-03 0.99999989516E+00 405 0.20434990000E+01 0.82245380000E+00 0.32740000000E+04 0.11487352000E-02 -0.32061147000E-04 0.99999933969E+00 406 0.75710570000E+00 0.70122970000E+00 0.32740000000E+04 -0.44810536000E-03 -0.88644978000E-04 0.99999989567E+00 407 0.10818320000E+00 0.22880970000E+00 0.32740000000E+04 -0.75297506000E-03 -0.21328166000E-03 0.99999969377E+00 408 0.14465580000E+01 -0.27742200000E+00 0.32740000000E+04 0.86077885000E-03 -0.31193570000E-03 0.99999958088E+00 409 0.82047330000E+00 0.28841940000E+00 0.32740000000E+04 -0.20187585000E-03 -0.77173107000E-04 0.99999997665E+00 410 0.22135210000E+01 0.21694900000E+01 0.32740000000E+04 0.21454271000E-03 0.41128183000E-03 0.99999989241E+00 411 0.17931650000E+00 -0.67058570000E+00 0.32740000000E+04 -0.45171496000E-03 -0.58318680000E-03 0.99999972792E+00 412 0.17931650000E+00 -0.67058570000E+00 0.32740000000E+04 -0.45171496000E-03 -0.58318680000E-03 0.99999972792E+00 413 0.84155400000E+00 0.11022100000E+01 0.32740000000E+04 -0.86428445000E-04 0.29200438000E-03 0.99999995363E+00 414 0.83493990000E+00 0.12916610000E+01 0.32740000000E+04 0.62590529000E-03 -0.11379935000E-03 0.99999979765E+00 415 0.56316300000E+00 -0.53896140000E-01 0.32740000000E+04 0.34745684000E-03 -0.45508894000E-03 0.99999983608E+00 416 0.51829780000E+00 -0.90787230000E+00 0.32740000000E+04 0.45979273000E-03 -0.34441991000E-03 0.99999983498E+00 417 0.10883350000E+01 0.53675750000E+00 0.32740000000E+04 0.63159323000E-03 -0.11226206000E-03 0.99999979424E+00 418 0.91447640000E+00 -0.53137830000E+00 0.32740000000E+04 0.26244507000E-03 -0.37678872000E-03 0.99999989458E+00 419 0.34432190000E+00 0.98938270000E+00 0.32740000000E+04 -0.22446332000E-03 -0.32008736000E-03 0.99999992358E+00 420 0.20527510000E-01 0.26434580000E+00 0.32740000000E+04 -0.79415040000E-03 -0.12036539000E-03 0.99999967742E+00 421 0.16657100000E+00 -0.63781250000E+00 0.32740000000E+04 -0.42843190000E-03 -0.26198238000E-03 0.99999987391E+00 422 0.92897850000E+00 0.88880980000E+00 0.32740000000E+04 0.61640696000E-03 -0.22972547000E-03 0.99999978363E+00 423 0.33976190000E+00 -0.12778460000E+00 0.32740000000E+04 0.21420725000E-03 -0.14654793000E-03 0.99999996632E+00 424 0.69659250000E+00 -0.11547840000E+00 0.32740000000E+04 -0.54196763000E-03 -0.12324293000E-03 0.99999984554E+00 425 0.37555850000E+00 0.59294320000E+00 0.32740000000E+04 0.10282574000E-02 -0.61583589000E-04 0.99999946945E+00 426 0.70664880000E+00 -0.80770790000E+00 0.32740000000E+04 -0.21041073000E-03 -0.50194404000E-03 0.99999985189E+00 427 0.39847350000E+00 -0.78724550000E+00 0.32740000000E+04 -0.32995784000E-03 -0.25216819000E-03 0.99999991377E+00 428 0.43431640000E+00 -0.51128200000E+00 0.32740000000E+04 0.30221709000E-03 -0.32961799000E-03 0.99999990001E+00 429 0.89856850000E+00 0.73983700000E+00 0.32740000000E+04 0.19363397000E-03 -0.33241995000E-04 0.99999998070E+00 430 0.77548820000E+00 0.45631510000E+00 0.32740000000E+04 -0.48069816000E-03 -0.37639387000E-03 0.99999981363E+00 431 0.88595867000E-02 0.10122650000E+01 0.32740000000E+04 -0.78398886000E-03 -0.35030071000E-05 0.99999969267E+00 432 0.51461900000E+00 -0.63486220000E+00 0.32740000000E+04 0.44020308000E-04 0.85186702000E-03 0.99999963619E+00 433 0.28159710000E+00 -0.81636340000E+00 0.32740000000E+04 0.10162126000E-03 -0.30232023000E-03 0.99999994914E+00 434 0.12953930000E+00 -0.22469560000E+00 0.32740000000E+04 -0.42522998000E-03 -0.19366431000E-03 0.99999989084E+00 435 0.12953930000E+00 -0.22469560000E+00 0.32740000000E+04 -0.42522998000E-03 -0.19366431000E-03 0.99999989084E+00 436 0.67579150000E+00 0.51597090000E+00 0.32740000000E+04 0.50860015000E-03 0.76017583000E-04 0.99999986777E+00 437 0.47189370000E+00 -0.11855970000E+01 0.32740000000E+04 0.52009948000E-03 -0.80748991000E-03 0.99999953873E+00 438 0.68610500000E+00 0.45149610000E+00 0.32740000000E+04 -0.68336248000E-03 -0.14860462000E-03 0.99999975547E+00 439 0.77195830000E+00 0.33729770000E+00 0.32740000000E+04 -0.43596132000E-03 -0.20406531000E-03 0.99999988415E+00 440 0.54720390000E+00 -0.18700820000E+00 0.32740000000E+04 0.11331727000E-03 -0.41677448000E-03 0.99999990673E+00 441 0.74917540000E+00 -0.22400810000E+00 0.32740000000E+04 0.61964733000E-03 -0.32223758000E-03 0.99999975610E+00 442 -0.45703700000E-01 0.80097700000E+00 0.32740000000E+04 -0.73565962000E-03 0.64124652000E-04 0.99999972735E+00 443 0.45253430000E+00 -0.18068960000E-01 0.32740000000E+04 0.10918214000E-03 -0.18951810000E-03 0.99999997608E+00 444 0.10613970000E+01 0.38361400000E+00 0.32740000000E+04 0.66069874000E-03 -0.96087213000E-04 0.99999977712E+00 445 0.17973650000E+00 0.34606430000E+00 0.32740000000E+04 -0.79190510000E-03 -0.21248678000E-03 0.99999966387E+00 446 0.68505150000E+00 0.17368270000E+01 0.32740000000E+04 0.65463316000E-03 0.23390538000E-03 0.99999975837E+00 447 0.10330800000E+01 0.35093990000E+00 0.32740000000E+04 0.36198139000E-03 -0.10148784000E-03 0.99999992933E+00 448 0.75408200000E+00 0.59905250000E+00 0.32740000000E+04 -0.31908066000E-03 -0.12967491000E-03 0.99999994069E+00 449 0.98343580000E+00 0.99931650000E+00 0.32740000000E+04 -0.95519164000E-04 0.54617249000E-04 0.99999999395E+00 450 0.80290640000E+00 -0.23854730000E+00 0.32740000000E+04 0.51129289000E-03 -0.31922807000E-03 0.99999981834E+00 451 0.53330560000E+00 -0.63560820000E+00 0.32740000000E+04 0.25373991000E-03 -0.23248536000E-03 0.99999994078E+00 452 0.10893270000E+01 -0.10340690000E+00 0.32740000000E+04 0.25746415000E-03 -0.16415873000E-03 0.99999995338E+00 453 0.74698820000E+00 -0.60443930000E-01 0.32740000000E+04 0.75047393000E-03 -0.43330106000E-03 0.99999962452E+00 454 0.97550770000E+00 -0.96672780000E+00 0.32740000000E+04 0.12207305000E-02 -0.48179552000E-03 0.99999913884E+00 455 0.11270810000E+01 0.18495040000E+00 0.32740000000E+04 0.15695933000E-03 -0.12179018000E-03 0.99999998027E+00 456 0.41873640000E+00 -0.34408290000E+00 0.32740000000E+04 0.85644642000E-04 -0.15977521000E-03 0.99999998357E+00 457 0.85712560000E+00 0.12296190000E+01 0.32740000000E+04 0.37702886000E-03 -0.23149485000E-04 0.99999992866E+00 458 0.79341030000E+00 -0.15996160000E+00 0.32740000000E+04 -0.25506140000E-03 -0.31635643000E-03 0.99999991743E+00 459 0.10342000000E+01 -0.98603440000E+00 0.32740000000E+04 -0.38949712000E-03 -0.57697640000E-03 0.99999975770E+00 460 0.84363180000E+00 0.11883000000E+01 0.32740000000E+04 -0.23655970000E-03 -0.10667556000E-03 0.99999996633E+00 461 0.99504180000E+00 0.85251093000E-02 0.32740000000E+04 0.34160653000E-03 -0.22528700000E-03 0.99999991628E+00 462 0.99504180000E+00 0.85251093000E-02 0.32740000000E+04 0.34160653000E-03 -0.22528700000E-03 0.99999991628E+00 463 0.89564220000E+00 -0.47901710000E+00 0.32740000000E+04 0.85497135000E-03 -0.48545329000E-03 0.99999951668E+00 464 -0.24566900000E+00 -0.25552810000E+00 0.32740000000E+04 -0.10078828000E-02 -0.27614183000E-03 0.99999945396E+00 465 0.84224520000E+00 0.62234040000E+00 0.32740000000E+04 -0.57127752000E-03 -0.17089162000E-03 0.99999982222E+00 466 0.48453190000E-01 0.11450740000E+01 0.32740000000E+04 -0.80724282000E-03 -0.69428259000E-03 0.99999943317E+00 467 0.18413190000E+00 0.79349900000E+00 0.32740000000E+04 -0.54339651000E-03 -0.27509222000E-04 0.99999985198E+00 468 0.32596590000E+00 0.10432930000E+01 0.32740000000E+04 -0.77682309000E-03 -0.59015856000E-04 0.99999969653E+00 469 0.13156470000E+01 0.28525480000E+00 0.32740000000E+04 -0.12022937000E-03 -0.31517178000E-03 0.99999994311E+00 470 0.94423980000E+00 0.45501780000E+00 0.32740000000E+04 0.14525224000E-03 -0.17388682000E-03 0.99999997433E+00 471 0.48429630000E+00 0.55423200000E+00 0.32740000000E+04 -0.78646769000E-03 0.30919760000E-04 0.99999969026E+00 472 0.86456630000E+00 0.82395800000E+00 0.32740000000E+04 0.67557872000E-03 0.35781864000E-04 0.99999977116E+00 473 0.66213860000E+00 0.13727950000E-01 0.32740000000E+04 -0.21979577000E-05 -0.50721646000E-04 0.99999999871E+00 474 0.68778890000E+00 0.37257480000E+00 0.32740000000E+04 -0.38494542000E-03 -0.17079322000E-03 0.99999991132E+00 475 0.54542610000E+00 -0.30308040000E+00 0.32740000000E+04 0.70883759000E-03 -0.50913630000E-03 0.99999961916E+00 476 0.59819220000E+00 -0.12299310000E+01 0.32740000000E+04 0.84875803000E-03 -0.58789400000E-03 0.99999946700E+00 477 0.66865590000E+00 -0.61451020000E+00 0.32740000000E+04 0.58801135000E-03 -0.38814903000E-03 0.99999975179E+00 478 0.66477570000E+00 0.10741980000E+00 0.32740000000E+04 0.70810254000E-03 -0.16293148000E-03 0.99999973602E+00 479 0.98637890000E+00 -0.41084290000E+00 0.32740000000E+04 0.31604728000E-03 -0.38430738000E-03 0.99999987621E+00 480 0.68415140000E+00 0.36291020000E+00 0.32740000000E+04 0.76210208000E-03 -0.46086757000E-03 0.99999960340E+00 481 0.76796250000E+00 0.35530110000E+00 0.32740000000E+04 -0.66116743000E-03 -0.22239232000E-03 0.99999975670E+00 482 0.14727360000E+00 -0.92403889000E-02 0.32740000000E+04 -0.72777981000E-03 -0.18011496000E-03 0.99999971895E+00 483 0.90228250000E+00 0.58078760000E+00 0.32740000000E+04 -0.53772709000E-03 -0.24705016000E-03 0.99999982491E+00 484 0.90228250000E+00 0.58078760000E+00 0.32740000000E+04 -0.53772709000E-03 -0.24705016000E-03 0.99999982491E+00 485 0.47692360000E+00 -0.27394090000E+00 0.32740000000E+04 -0.22848416000E-03 -0.46742341000E-03 0.99999986466E+00 486 0.12280820000E+00 -0.74381520000E+00 0.32740000000E+04 -0.50990796000E-03 -0.34013137000E-03 0.99999981215E+00 487 0.42439040000E+00 -0.52875910000E+00 0.32740000000E+04 0.14763259000E-03 -0.22818196000E-03 0.99999996307E+00 488 0.86751790000E+00 0.10031420000E+00 0.32740000000E+04 0.95209159000E-03 -0.18538613000E-03 0.99999952958E+00 489 0.46294650000E+00 0.11352520000E+01 0.32740000000E+04 -0.20995089000E-03 -0.41868167000E-04 0.99999997708E+00 490 0.36991370000E+00 -0.91874960000E+00 0.32740000000E+04 -0.60722599000E-03 -0.33844993000E-03 0.99999975836E+00 491 0.68330110000E+00 0.11869620000E+00 0.32740000000E+04 -0.27619166000E-04 -0.27683406000E-03 0.99999996130E+00 492 0.91000020000E+00 -0.55597100000E+00 0.32740000000E+04 0.38307859000E-03 -0.46598577000E-03 0.99999981805E+00 493 0.50874440000E+00 0.61571420000E+00 0.32740000000E+04 -0.22233248000E-03 -0.15130527000E-03 0.99999996384E+00 494 0.68921270000E+00 0.23744822000E-02 0.32740000000E+04 0.38014731000E-03 -0.19756716000E-03 0.99999990823E+00 495 0.73996150000E+00 -0.35920680000E+00 0.32740000000E+04 0.70436817000E-03 -0.29881761000E-03 0.99999970729E+00 496 0.10422300000E+01 0.46245130000E+01 0.32740000000E+04 -0.25015235000E-04 -0.12549855000E-02 0.99999921219E+00 497 0.11010760000E+01 -0.10790310000E+00 0.32740000000E+04 -0.66295892000E-04 -0.21853847000E-03 0.99999997392E+00 498 0.11010760000E+01 -0.10790310000E+00 0.32740000000E+04 -0.66295892000E-04 -0.21853847000E-03 0.99999997392E+00 499 0.91676640000E-01 -0.72269440000E+00 0.32740000000E+04 -0.48384207000E-03 -0.36721968000E-03 0.99999981552E+00 500 0.94782510000E+00 0.65626650000E+00 0.32740000000E+04 -0.24892169000E-03 -0.10612223000E-03 0.99999996339E+00 501 0.68063280000E+00 -0.36067030000E+00 0.32740000000E+04 -0.40405660000E-03 -0.50838041000E-03 0.99999978914E+00 502 0.35366470000E+00 -0.95330100000E+00 0.32740000000E+04 -0.60114111000E-04 -0.34308436000E-03 0.99999993934E+00 503 0.43510530000E+00 0.80471940000E+00 0.32740000000E+04 -0.12165300000E-03 -0.21654891000E-03 0.99999996915E+00 504 0.69284770000E+00 -0.23218740000E+00 0.32740000000E+04 0.36424625000E-03 -0.22669751000E-03 0.99999990797E+00 505 -0.52062660000E+00 -0.91214060000E-01 0.32740000000E+04 -0.11114471000E-02 -0.20416097000E-03 0.99999936150E+00 506 0.67254420000E+00 -0.36610050000E+00 0.32740000000E+04 -0.52710646000E-03 -0.38110657000E-03 0.99999978846E+00 507 0.59380730000E+00 -0.27082800000E+00 0.32740000000E+04 -0.68824663000E-03 -0.31802602000E-03 0.99999971259E+00 508 0.28569140000E+00 -0.85871260000E+00 0.32740000000E+04 -0.33117647000E-03 -0.40258936000E-03 0.99999986412E+00 509 0.62337480000E+00 0.71955650000E+00 0.32740000000E+04 0.43034868000E-03 -0.18613122000E-03 0.99999989008E+00 510 0.81966420000E+00 0.51744610000E+00 0.32740000000E+04 -0.73410534000E-04 -0.17410000000E-03 0.99999998215E+00 511 0.44666000000E+00 -0.75574240000E+00 0.32740000000E+04 -0.31809850000E-04 -0.44779468000E-03 0.99999989923E+00 512 0.67519850000E+00 0.24648570000E+00 0.32740000000E+04 0.74588676000E-03 -0.18192675000E-03 0.99999970528E+00 513 0.30244590000E+00 0.27260880000E+00 0.32740000000E+04 0.99598590000E-04 -0.74416319000E-04 0.99999999227E+00 514 -0.78708640000E+00 0.13543170000E+01 0.32740000000E+04 -0.10617371000E-02 -0.17919547000E-03 0.99999942030E+00 515 0.33530790000E+00 0.12250310000E+00 0.32740000000E+04 -0.43442138000E-03 -0.23070254000E-03 0.99999987903E+00 516 0.41874930000E+00 0.16447390000E+00 0.32740000000E+04 -0.25052510000E-03 -0.59673068000E-03 0.99999979057E+00 517 0.12143610000E+01 0.11554490000E+01 0.32740000000E+04 0.23529085000E-03 -0.16796624000E-03 0.99999995821E+00 518 0.12143610000E+01 0.11554490000E+01 0.32740000000E+04 0.23529085000E-03 -0.16796624000E-03 0.99999995821E+00 519 0.60397120000E+00 0.24540820000E+00 0.32740000000E+04 -0.10447836000E-03 -0.26890036000E-03 0.99999995839E+00 520 0.10167870000E+01 0.23493530000E+00 0.32740000000E+04 0.49738376000E-03 -0.32841976000E-03 0.99999982237E+00 521 0.16830810000E+01 0.17879890000E+01 0.32740000000E+04 0.27776702000E-03 -0.51168085000E-04 0.99999996011E+00 522 0.49583780000E+00 0.10114780000E+00 0.32740000000E+04 0.14980140000E-03 -0.36879547000E-03 0.99999992077E+00 523 0.53066370000E+00 -0.50142850000E+00 0.32740000000E+04 0.22091421000E-03 -0.23308804000E-03 0.99999994843E+00 524 0.50652520000E+00 -0.51450160000E+00 0.32740000000E+04 0.76557987000E-03 -0.34652679000E-03 0.99999964690E+00 525 0.60738240000E+00 -0.34218930000E+00 0.32740000000E+04 0.22340324000E-03 -0.14032652000E-03 0.99999996520E+00 526 0.92251750000E+00 0.29185400000E+00 0.32740000000E+04 -0.56274829000E-03 -0.30403759000E-03 0.99999979544E+00 527 0.10089910000E+01 -0.83340530000E-01 0.32740000000E+04 0.45226311000E-03 -0.40415084000E-03 0.99999981606E+00 528 0.26161480000E+01 -0.18591100000E+01 0.32740000000E+04 -0.23726492000E-03 -0.45989684000E-03 0.99999986610E+00 529 0.10697540000E+01 0.47826930000E+00 0.32740000000E+04 0.43500954000E-03 -0.19834405000E-03 0.99999988571E+00 530 0.26337760000E+00 0.20348390000E+00 0.32740000000E+04 -0.20950762000E-03 -0.13030914000E-03 0.99999996956E+00 531 0.10521450000E+01 0.39751100000E+00 0.32740000000E+04 -0.20527409000E-03 -0.39223401000E-03 0.99999990201E+00 532 0.10521450000E+01 0.39751100000E+00 0.32740000000E+04 -0.20527409000E-03 -0.39223401000E-03 0.99999990201E+00 533 0.21020260000E+00 -0.44981580000E+00 0.32740000000E+04 -0.65656344000E-03 -0.51128352000E-03 0.99999965376E+00 534 0.51197000000E+00 0.11642180000E+01 0.32740000000E+04 -0.27773564000E-03 -0.24489334000E-03 0.99999993145E+00 535 0.90656640000E+00 0.54523710000E+00 0.32740000000E+04 -0.27574983000E-03 -0.45760782000E-04 0.99999996093E+00 536 0.41134590000E+00 0.62681790000E+00 0.32740000000E+04 0.83833397000E-03 -0.39023330000E-03 0.99999957246E+00 537 0.57563930000E+00 -0.68581030000E+00 0.32740000000E+04 0.29006714000E-03 -0.26574993000E-03 0.99999992262E+00 538 0.87276120000E+00 0.68983720000E+00 0.32740000000E+04 -0.48743139000E-04 -0.11903722000E-03 0.99999999173E+00 539 0.20410670000E+00 -0.13611630000E+00 0.32740000000E+04 -0.58811205000E-03 -0.26877155000E-03 0.99999979094E+00 540 0.33089510000E+00 0.96043590000E-01 0.32740000000E+04 -0.68524474000E-03 -0.26246661000E-03 0.99999973078E+00 541 0.79277800000E+00 -0.37826530000E+00 0.32740000000E+04 -0.44312379000E-04 -0.41978210000E-03 0.99999991091E+00 542 0.10066500000E+01 -0.13290870000E+00 0.32740000000E+04 0.29212472000E-03 -0.28973943000E-03 0.99999991536E+00 543 0.10066500000E+01 -0.13290870000E+00 0.32740000000E+04 0.29212472000E-03 -0.28973943000E-03 0.99999991536E+00 544 0.17214490000E+00 -0.42704940000E+00 0.32740000000E+04 0.10354554000E-03 -0.18276725000E-03 0.99999997794E+00 545 0.42595720000E+00 -0.29528870000E+00 0.32740000000E+04 0.13101027000E-03 -0.21391879000E-03 0.99999996854E+00 546 0.10524500000E+00 -0.65674300000E+00 0.32740000000E+04 -0.72446337000E-03 -0.41626717000E-03 0.99999965094E+00 547 -0.57035260000E-01 -0.11397430000E+01 0.32740000000E+04 -0.75458782000E-03 -0.11619600000E-03 0.99999970855E+00 548 0.10109910000E+01 0.13253580000E+01 0.32740000000E+04 0.17821496000E-04 -0.19831788000E-03 0.99999998018E+00 549 0.21929840000E+00 0.62487400000E+00 0.32740000000E+04 -0.65889175000E-03 -0.34408004000E-04 0.99999978234E+00 550 0.31005570000E+00 -0.21450100000E+01 0.32740000000E+04 -0.37701163000E-03 -0.57192228000E-03 0.99999976538E+00 551 0.11939790000E+01 -0.41227450000E+00 0.32740000000E+04 0.80831908000E-03 -0.46838706000E-03 0.99999956362E+00 552 0.87889800000E+00 -0.67032290000E+00 0.32740000000E+04 -0.28654151000E-04 -0.41120170000E-03 0.99999991505E+00 553 0.83930430000E+00 0.10801450000E+01 0.32740000000E+04 -0.36751284000E-04 -0.11098594000E-03 0.99999999317E+00 554 0.71809730000E+00 -0.17854240000E+01 0.32740000000E+04 0.17848662000E-03 -0.49157767000E-03 0.99999986325E+00 555 0.12189700000E+01 -0.12855050000E+01 0.32740000000E+04 0.99040999000E-03 -0.50092296000E-03 0.99999938408E+00 556 0.69131430000E+00 -0.51582670000E-01 0.32740000000E+04 -0.68147521000E-03 -0.36341362000E-03 0.99999970176E+00 557 0.69131430000E+00 -0.51582670000E-01 0.32740000000E+04 -0.68147521000E-03 -0.36341362000E-03 0.99999970176E+00 558 0.31932830000E-01 -0.52481760000E+00 0.32740000000E+04 -0.84361069000E-04 -0.24958351000E-03 0.99999996530E+00 559 0.90913420000E+00 -0.27304649000E-02 0.32740000000E+04 0.33494679000E-03 -0.46702221000E-03 0.99999983485E+00 560 0.34438810000E+00 0.10444000000E+01 0.32740000000E+04 0.96845743000E-05 -0.68080284000E-04 0.99999999764E+00 561 0.33770930000E+00 0.57852040000E+00 0.32740000000E+04 0.19241529000E-05 -0.82660095000E-04 0.99999999658E+00 562 0.91991920000E+00 -0.18970900000E+00 0.32740000000E+04 0.22127475000E-03 -0.28743545000E-03 0.99999993421E+00 563 0.24263990000E+00 0.46346070000E+00 0.32740000000E+04 -0.42458434000E-03 -0.26334749000E-03 0.99999987519E+00 564 0.55341960000E+00 0.52349940000E+00 0.32740000000E+04 0.31858718000E-03 -0.23402140000E-03 0.99999992187E+00 565 0.61556880000E+00 -0.74148740000E+00 0.32740000000E+04 0.84321818000E-03 -0.32757214000E-03 0.99999959084E+00 566 0.68843130000E+00 -0.27214080000E+00 0.32740000000E+04 0.61849761000E-03 -0.47218421000E-03 0.99999969725E+00 567 0.72669120000E+00 0.23821140000E+00 0.32740000000E+04 -0.88629553000E-04 -0.26746097000E-03 0.99999996030E+00 568 0.14338940000E+01 -0.11303650000E+01 0.32740000000E+04 0.60721498000E-03 -0.72685815000E-03 0.99999955148E+00 569 0.13626200000E+00 -0.16873160000E+00 0.32740000000E+04 -0.55453018000E-03 -0.43724332000E-03 0.99999975066E+00 570 0.93495090000E+00 -0.21983750000E+01 0.32740000000E+04 0.75179327000E-03 -0.68305770000E-03 0.99999948412E+00 571 0.64473030000E+00 -0.15875480000E+00 0.32740000000E+04 -0.44197461000E-03 -0.23948503000E-03 0.99999987365E+00 572 0.12327090000E+01 0.53931240000E+00 0.32740000000E+04 0.10294595000E-02 -0.20607974000E-03 0.99999944887E+00 573 0.77868760000E+00 0.11673960000E+00 0.32740000000E+04 -0.59686624000E-03 -0.31283591000E-03 0.99999977294E+00 574 0.51854150000E+00 -0.15241420000E+00 0.32740000000E+04 0.42035553000E-03 -0.49893232000E-03 0.99999978718E+00 575 0.51854150000E+00 -0.15241420000E+00 0.32740000000E+04 0.42035553000E-03 -0.49893232000E-03 0.99999978718E+00 576 0.76283050000E+00 -0.23880410000E+00 0.32740000000E+04 -0.87986053000E-04 -0.94012197000E-04 0.99999999171E+00 577 0.44698070000E+00 0.85742410000E+00 0.32740000000E+04 -0.45584192000E-03 0.12363476000E-03 0.99999988846E+00 578 0.44266960000E+00 0.71748940000E+00 0.32740000000E+04 -0.25275839000E-03 -0.50588282000E-04 0.99999996678E+00 579 0.26186260000E+00 -0.61280940000E+00 0.32740000000E+04 -0.20965644000E-03 -0.41395234000E-03 0.99999989234E+00 580 0.15609600000E+01 -0.14542420000E+01 0.32740000000E+04 -0.19634613000E-05 -0.88208716000E-03 0.99999961096E+00 581 0.25481720000E+00 -0.55001030000E+00 0.32740000000E+04 -0.23565815000E-03 -0.25181510000E-03 0.99999994053E+00 582 0.34235800000E+00 0.11222710000E+01 0.32740000000E+04 0.40837214000E-04 -0.14643506000E-03 0.99999998844E+00 583 0.35496430000E+00 -0.10002690000E+01 0.32740000000E+04 0.82141174000E-04 -0.41090677000E-03 0.99999991220E+00 584 0.10525650000E+00 -0.40758700000E+00 0.32740000000E+04 -0.78508619000E-03 -0.29823743000E-03 0.99999964735E+00 585 0.67854660000E+00 0.11202290000E+01 0.32740000000E+04 -0.19295684000E-03 -0.31599084000E-04 0.99999998088E+00 586 0.14209620000E+01 -0.36042380000E+00 0.32740000000E+04 0.12225134000E-02 -0.27355526000E-03 0.99999921531E+00 587 0.28124620000E+00 0.84117010000E+00 0.32740000000E+04 -0.27440910000E-03 -0.38321048000E-03 0.99999988892E+00 588 0.28124620000E+00 0.84117010000E+00 0.32740000000E+04 -0.27440910000E-03 -0.38321048000E-03 0.99999988892E+00 589 -0.11102470000E+00 -0.16227370000E+01 0.32740000000E+04 -0.37541840000E-03 -0.58747135000E-03 0.99999975697E+00 590 0.89492440000E+00 -0.29568090000E+00 0.32740000000E+04 0.40133524000E-03 -0.47263168000E-03 0.99999980777E+00 591 0.95642540000E+00 -0.52252550000E+00 0.32740000000E+04 -0.33378042000E-03 -0.49480784000E-03 0.99999982188E+00 592 0.71446290000E+00 0.14460170000E+01 0.32740000000E+04 0.73955784000E-03 -0.79026257000E-04 0.99999972340E+00 593 0.28871440000E+00 0.74338700000E+00 0.32740000000E+04 -0.64885826000E-03 -0.30434103000E-05 0.99999978949E+00 594 0.99297930000E+00 0.24613860000E+00 0.32740000000E+04 0.36676758000E-03 -0.14573979000E-03 0.99999992212E+00 595 0.39154940000E+00 -0.82474590000E+00 0.32740000000E+04 -0.74722302000E-04 -0.33524615000E-03 0.99999994101E+00 596 0.87459720000E+00 0.44764650000E+00 0.32740000000E+04 0.62453112000E-03 -0.48571578000E-03 0.99999968702E+00 597 0.91490560000E+00 0.51761730000E+00 0.32740000000E+04 -0.20856797000E-03 -0.23907289000E-03 0.99999994967E+00 598 0.65848980000E+00 0.83174630000E+00 0.32740000000E+04 -0.60179736000E-03 0.13962554000E-04 0.99999981882E+00 599 0.10763960000E+01 0.21399370000E+01 0.32740000000E+04 0.45945827000E-03 -0.31081474000E-03 0.99999984615E+00 600 0.10763960000E+01 0.21399370000E+01 0.32740000000E+04 0.45945827000E-03 -0.31081474000E-03 0.99999984615E+00 601 0.36980830000E+00 -0.93214240000E+00 0.32740000000E+04 -0.54454117000E-03 -0.30591557000E-03 0.99999980495E+00 602 0.44582390000E+00 -0.12972950000E+01 0.32740000000E+04 0.10323935000E-02 -0.45721748000E-03 0.99999936256E+00 603 0.73060540000E+00 0.67796150000E-01 0.32740000000E+04 -0.50759775000E-03 -0.15988239000E-03 0.99999985839E+00 604 0.46666410000E+00 0.70102510000E-01 0.32740000000E+04 -0.44537555000E-05 -0.15474296000E-03 0.99999998802E+00 605 0.85823350000E+00 -0.68410340000E+00 0.32740000000E+04 -0.49623388000E-04 -0.48409379000E-03 0.99999988160E+00 606 0.11380480000E+00 0.21961240000E+00 0.32740000000E+04 -0.57153101000E-03 -0.31665691000E-04 0.99999983617E+00 607 0.63062310000E+00 -0.27312660000E+00 0.32740000000E+04 0.84875844000E-03 -0.33141841000E-03 0.99999958489E+00 608 0.34113910000E+00 0.33801660000E+00 0.32740000000E+04 -0.10351822000E-02 -0.29104634000E-03 0.99999942184E+00 609 0.80074670000E+00 0.80123810000E+00 0.32740000000E+04 0.34769077000E-03 -0.23384213000E-04 0.99999993928E+00 610 0.28736570000E+00 -0.39709840000E-01 0.32740000000E+04 -0.22043148000E-03 -0.11964392000E-03 0.99999996855E+00 611 0.10743830000E+01 0.42655510000E+00 0.32740000000E+04 0.45680365000E-03 -0.22352253000E-03 0.99999987068E+00 612 0.46665670000E+00 0.96596510000E+00 0.32740000000E+04 -0.39805981000E-03 -0.20841071000E-03 0.99999989906E+00 613 0.72770990000E+00 -0.14507260000E+01 0.32740000000E+04 -0.51297247000E-03 -0.42469688000E-04 0.99999986753E+00 614 0.72770990000E+00 -0.14507260000E+01 0.32740000000E+04 -0.51297247000E-03 -0.42469688000E-04 0.99999986753E+00 615 0.97856800000E+00 0.88765480000E+00 0.32740000000E+04 0.11278720000E-02 -0.87731336000E-04 0.99999936010E+00 616 0.46026610000E-01 0.74408100000E+00 0.32740000000E+04 -0.42589402000E-03 -0.63224748000E-03 0.99999970944E+00 617 0.81460730000E+00 -0.34777990000E+00 0.32740000000E+04 0.43298790000E-03 -0.39164483000E-03 0.99999982957E+00 618 0.24470470000E+00 0.64911500000E+00 0.32740000000E+04 -0.79211174000E-03 -0.22370217000E-03 0.99999966126E+00 619 0.29449590000E+00 0.79623520000E+00 0.32740000000E+04 -0.14943130000E-03 -0.86364635000E-04 0.99999998511E+00 620 0.34704800000E+00 -0.46506580000E+00 0.32740000000E+04 -0.18494127000E-03 -0.38162724000E-03 0.99999991008E+00 621 0.28187850000E+00 0.66007790000E-01 0.32740000000E+04 -0.45686471000E-03 -0.11485953000E-03 0.99999988904E+00 622 0.61808140000E+00 -0.98569010000E+00 0.32740000000E+04 0.79716067000E-03 -0.39679266000E-03 0.99999960355E+00 623 0.82017920000E+00 0.21282590000E+00 0.32740000000E+04 -0.25100671000E-03 -0.34037235000E-03 0.99999991057E+00 624 0.92675730000E+00 -0.14835280000E+00 0.32740000000E+04 0.84463664000E-03 -0.39461127000E-03 0.99999956544E+00 625 -0.26446850000E+00 0.40945000000E+00 0.32740000000E+04 -0.99205715000E-03 -0.11307507000E-03 0.99999950152E+00 626 0.71107650000E+00 0.46179240000E+00 0.32740000000E+04 0.91203285000E-03 -0.25693167000E-03 0.99999955109E+00 627 0.11637830000E+01 0.11844830000E+00 0.32740000000E+04 0.41394326000E-03 -0.40799970000E-03 0.99999983109E+00 628 0.19922060000E+00 -0.72578140000E+00 0.32740000000E+04 -0.26716164000E-03 -0.31492574000E-03 0.99999991472E+00 629 0.82936560000E+00 0.29047740000E+00 0.32740000000E+04 0.17732418000E-03 -0.21831816000E-03 0.99999996045E+00 630 0.74847640000E+00 0.96813880000E+00 0.32740000000E+04 0.61806920000E-03 -0.21955594000E-03 0.99999978489E+00 631 0.54412810000E+00 -0.26192470000E+00 0.32740000000E+04 0.45738707000E-03 -0.38714436000E-03 0.99999982046E+00 632 0.33411920000E+00 -0.13678010000E+00 0.32740000000E+04 -0.72898401000E-04 -0.25148029000E-03 0.99999996572E+00 633 0.44319730000E+00 -0.52569510000E+00 0.32740000000E+04 0.42597193000E-03 -0.35405095000E-03 0.99999984660E+00 634 0.62083220000E+00 0.27174940000E-01 0.32740000000E+04 0.83974859000E-03 -0.15534181000E-03 0.99999963535E+00 635 0.77025780000E+00 0.11260760000E+01 0.32740000000E+04 -0.36414425000E-03 -0.23212502000E-03 0.99999990676E+00 636 0.26638930000E+00 -0.37933190000E+00 0.32740000000E+04 -0.43036445000E-03 -0.43655123000E-03 0.99999981210E+00 637 0.57031370000E+00 -0.64419490000E+00 0.32740000000E+04 -0.10420166000E-03 -0.25475051000E-03 0.99999996212E+00 638 0.93989590000E+00 0.79922850000E+00 0.32740000000E+04 0.50864997000E-03 -0.23249380000E-03 0.99999984361E+00 639 0.98245190000E+00 0.63223380000E+00 0.32740000000E+04 0.13641070000E-03 -0.44613666000E-05 0.99999999069E+00 640 0.11433290000E+01 -0.36389860000E+00 0.32740000000E+04 0.53210236000E-03 -0.38294622000E-03 0.99999978511E+00 641 0.11433290000E+01 -0.36389860000E+00 0.32740000000E+04 0.53210236000E-03 -0.38294622000E-03 0.99999978511E+00 642 0.30058330000E+00 0.43727710000E+00 0.32740000000E+04 -0.16789294000E-03 -0.20926951000E-03 0.99999996401E+00 643 0.29895570000E+00 0.47930570000E-01 0.32740000000E+04 -0.19443358000E-03 -0.19650087000E-03 0.99999996179E+00 644 0.70938340000E+00 -0.63670820000E+00 0.32740000000E+04 -0.38276787000E-03 -0.44182784000E-03 0.99999982914E+00 645 0.20929590000E+00 -0.62544170000E+00 0.32740000000E+04 -0.49814413000E-03 -0.26645450000E-03 0.99999984043E+00 646 0.69014300000E+00 -0.60002230000E+00 0.32740000000E+04 0.78976579000E-03 -0.29569920000E-03 0.99999964442E+00 647 0.32410070000E+00 -0.91350230000E+00 0.32740000000E+04 -0.12319964000E-03 -0.36334869000E-03 0.99999992640E+00 648 0.88336320000E+00 -0.10402470000E+01 0.32740000000E+04 0.50344937000E-04 -0.51002234000E-03 0.99999986867E+00 649 0.10597160000E+01 -0.43588500000E-01 0.32740000000E+04 0.79689524000E-03 -0.22425018000E-03 0.99999965733E+00 650 0.10597160000E+01 -0.43588500000E-01 0.32740000000E+04 0.79689524000E-03 -0.22425018000E-03 0.99999965733E+00 651 0.10377160000E+01 0.89863670000E+00 0.32740000000E+04 -0.39849148000E-03 -0.41668602000E-04 0.99999991973E+00 652 0.66268850000E+00 -0.95483020000E-01 0.32740000000E+04 0.92447794000E-03 -0.32822255000E-03 0.99999951881E+00 653 0.63122690000E+00 0.13152490000E+00 0.32740000000E+04 0.64439431000E-03 -0.44885711000E-03 0.99999969164E+00 654 -0.54624990000E-01 0.52523970000E+00 0.32740000000E+04 -0.75797731000E-03 -0.24874974000E-03 0.99999968180E+00 655 0.79274000000E+00 0.63933780000E+00 0.32740000000E+04 -0.28746453000E-03 -0.17807662000E-03 0.99999994283E+00 656 0.11125310000E+01 -0.15546670000E+00 0.32740000000E+04 -0.16103838000E-03 -0.38033363000E-03 0.99999991471E+00 657 0.62878190000E+00 -0.49604670000E-01 0.32740000000E+04 -0.58592745000E-03 -0.85073465000E-04 0.99999982473E+00 658 0.79092440000E+00 0.89112050000E+00 0.32740000000E+04 -0.53473254000E-03 -0.11819173000E-03 0.99999985005E+00 659 0.79107200000E+00 0.19903230000E+00 0.32740000000E+04 -0.49526116000E-04 -0.22211709000E-03 0.99999997411E+00 660 0.73870160000E+00 0.25795410000E+00 0.32740000000E+04 0.75984775000E-03 -0.71932576000E-04 0.99999970873E+00 661 0.73064580000E+00 0.93987770000E+00 0.32740000000E+04 0.72103599000E-03 0.66412547000E-04 0.99999973785E+00 662 0.11451220000E+00 -0.63039220000E+00 0.32740000000E+04 -0.76667225000E-03 -0.36906538000E-03 0.99999963800E+00 663 0.76651620000E+00 -0.20683320000E+00 0.32740000000E+04 -0.47655692000E-03 -0.40307528000E-03 0.99999980521E+00 664 0.69885910000E+00 0.74441570000E+00 0.32740000000E+04 0.46279593000E-03 -0.20686563000E-03 0.99999987151E+00 665 0.69885910000E+00 0.74441570000E+00 0.32740000000E+04 0.46279593000E-03 -0.20686563000E-03 0.99999987151E+00 666 0.92583030000E+00 0.50475770000E+00 0.32740000000E+04 0.60119750000E-04 -0.34569259000E-03 0.99999993844E+00 667 0.63323070000E+00 0.80002840000E+00 0.32740000000E+04 0.28968434000E-03 -0.62904939000E-04 0.99999995606E+00 668 0.69133340000E+00 -0.78875180000E+00 0.32740000000E+04 0.91115519000E-03 -0.34404447000E-03 0.99999952571E+00 669 0.18370140000E+00 0.85371100000E+00 0.32740000000E+04 -0.54551667000E-03 0.62124159000E-05 0.99999985119E+00 670 0.66521220000E+00 0.37894350000E+00 0.32740000000E+04 0.69391204000E-03 -0.34350844000E-03 0.99999970024E+00 671 0.72325480000E+00 0.62001590000E+00 0.32740000000E+04 0.53737039000E-03 -0.19794072000E-03 0.99999983603E+00 672 0.76127960000E+00 0.75630150000E+00 0.32740000000E+04 -0.44442463000E-03 -0.24089558000E-03 0.99999987223E+00 673 0.76195290000E+00 -0.18715860000E+00 0.32740000000E+04 -0.30289104000E-03 -0.34014275000E-03 0.99999989628E+00 674 0.16554930000E-01 -0.11943030000E+01 0.32740000000E+04 -0.79256966000E-03 -0.70667174000E-03 0.99999943622E+00 675 0.87606400000E+00 0.63704630000E+00 0.32740000000E+04 -0.21497149000E-03 -0.62532941000E-04 0.99999997494E+00 676 0.14772790000E+01 0.65347290000E+00 0.32740000000E+04 0.62145141000E-03 0.10468282000E-03 0.99999980142E+00 677 0.86599950000E+00 0.55085830000E+00 0.32740000000E+04 -0.75541575000E-04 -0.25723409000E-03 0.99999996406E+00 678 0.52095000000E+00 -0.43908650000E+00 0.32740000000E+04 0.22013050000E-03 -0.32399333000E-03 0.99999992329E+00 679 0.52095000000E+00 -0.43908650000E+00 0.32740000000E+04 0.22013050000E-03 -0.32399333000E-03 0.99999992329E+00 680 0.15574550000E+01 0.20248930000E+01 0.32740000000E+04 0.99558034000E-03 0.71194896000E-04 0.99999950188E+00 681 0.72523040000E+00 0.99521380000E+00 0.32740000000E+04 -0.48753122000E-03 -0.23528803000E-04 0.99999988088E+00 682 0.53533530000E+00 -0.68650800000E+00 0.32740000000E+04 0.10493596000E-03 -0.38601935000E-03 0.99999991999E+00 683 0.10868040000E+01 -0.58080480000E+00 0.32740000000E+04 0.41129306000E-03 -0.57148433000E-03 0.99999975212E+00 684 0.27140790000E+00 0.23195160000E+00 0.32740000000E+04 -0.57113287000E-03 -0.23844537000E-03 0.99999980848E+00 685 0.42253980000E+00 -0.11865850000E+00 0.32740000000E+04 -0.39828839000E-04 -0.23899163000E-03 0.99999997065E+00 686 0.69731530000E+00 0.21352280000E+01 0.32740000000E+04 0.48145623000E-04 0.13632854000E-03 0.99999998955E+00 687 0.31738820000E+00 -0.70268930000E+00 0.32740000000E+04 -0.45824316000E-03 -0.33788150000E-03 0.99999983792E+00 688 0.31762220000E+00 -0.23803090000E+00 0.32740000000E+04 -0.33732140000E-03 -0.55277866000E-03 0.99999979032E+00 689 0.95091530000E+00 0.94346960000E+00 0.32740000000E+04 0.45555935000E-03 -0.95704912000E-04 0.99999989165E+00 690 0.66050740000E+00 -0.48837700000E+00 0.32740000000E+04 0.55501930000E-03 -0.31698879000E-03 0.99999979574E+00 691 0.23136770000E+00 -0.19919060000E+00 0.32740000000E+04 0.12883834000E-03 -0.40720945000E-03 0.99999990879E+00 692 0.82317470000E+00 -0.31717130000E-01 0.32740000000E+04 0.42151677000E-03 0.19054802000E-03 0.99999989301E+00 693 0.53233020000E+00 0.58694730000E+00 0.32740000000E+04 -0.30468882000E-03 0.20242001000E-05 0.99999995358E+00 694 0.59394850000E+00 0.24104960000E+00 0.32740000000E+04 0.34241224000E-03 -0.20086630000E-03 0.99999992120E+00 695 0.82413130000E+00 -0.53241550000E+00 0.32740000000E+04 0.93499251000E-03 -0.30848893000E-03 0.99999951531E+00 696 0.12198000000E+01 -0.17273820000E+00 0.32740000000E+04 0.10337484000E-02 -0.56297489000E-03 0.99999930721E+00 697 0.84245890000E+00 0.73280350000E+00 0.32740000000E+04 -0.33253021000E-03 -0.13851009000E-03 0.99999993512E+00 698 0.30902740000E+00 -0.88362260000E+00 0.32740000000E+04 -0.58277650000E-03 -0.33296226000E-03 0.99999977475E+00 699 0.11441830000E+01 0.11027810000E+01 0.32740000000E+04 0.12019885000E-02 -0.12435345000E-03 0.99999926988E+00 700 0.26720000000E+00 -0.56111870000E+00 0.32740000000E+04 -0.64139726000E-03 -0.37505609000E-03 0.99999972397E+00 701 0.64893640000E+00 0.93910760000E+00 0.32740000000E+04 0.20968055000E-03 -0.17458737000E-03 0.99999996278E+00 702 0.48462630000E+00 0.15595190000E+01 0.32740000000E+04 0.68730518000E-03 -0.29325622000E-03 0.99999972081E+00 703 0.38869890000E+00 0.27727290000E-01 0.32740000000E+04 0.10375007000E-03 -0.19789280000E-03 0.99999997504E+00 704 0.11696330000E+01 0.30766520000E+00 0.32740000000E+04 0.66463667000E-03 -0.17094956000E-03 0.99999976452E+00 705 0.11696330000E+01 0.30766520000E+00 0.32740000000E+04 0.66463667000E-03 -0.17094956000E-03 0.99999976452E+00 706 0.91033480000E+00 0.62700700000E+00 0.32740000000E+04 0.17769918000E-04 -0.19502750000E-03 0.99999998082E+00 707 0.94420470000E+00 -0.51787850000E-01 0.32740000000E+04 -0.30285303000E-03 -0.18373737000E-03 0.99999993726E+00 708 0.31193160000E+00 -0.78081510000E-01 0.32740000000E+04 -0.37093507000E-03 -0.34603826000E-03 0.99999987133E+00 709 0.42639590000E+00 0.11157760000E+00 0.32740000000E+04 -0.29632493000E-03 -0.13250539000E-03 0.99999994732E+00 710 0.81579020000E+00 0.11088860000E+01 0.32740000000E+04 0.76324644000E-03 0.78446596000E-04 0.99999970565E+00 711 0.23065110000E+00 -0.34019470000E-02 0.32740000000E+04 0.29097541000E-03 -0.31212793000E-03 0.99999990895E+00 712 0.70801170000E+00 -0.57358060000E+00 0.32740000000E+04 0.77182130000E-03 -0.22517118000E-03 0.99999967679E+00 713 0.91925740000E+00 -0.72069870000E+00 0.32740000000E+04 0.51166848000E-04 -0.52339287000E-03 0.99999986172E+00 714 0.27675970000E+00 0.60630110000E+00 0.32740000000E+04 -0.35710170000E-03 -0.22451988000E-03 0.99999991103E+00 715 0.35835650000E+00 0.91315730000E+00 0.32740000000E+04 -0.32926814000E-03 -0.25697486000E-03 0.99999991277E+00 716 0.64172370000E+00 -0.21023490000E+01 0.32740000000E+04 0.72226085000E-03 -0.75747538000E-03 0.99999945229E+00 717 0.28544450000E+00 -0.35624560000E+00 0.32740000000E+04 -0.45888330000E-03 -0.45931988000E-03 0.99999978923E+00 718 0.32961510000E+00 0.19841000000E+01 0.32740000000E+04 -0.56531624000E-03 0.38000866000E-03 0.99999976801E+00 719 0.89128730000E+00 -0.21162210000E+01 0.32740000000E+04 -0.26525612000E-03 -0.54105697000E-03 0.99999981845E+00 720 0.40754080000E-01 -0.48162860000E-01 0.32740000000E+04 -0.30215801000E-03 0.60288909000E-04 0.99999995253E+00 721 0.83664840000E+00 -0.22915363000E-02 0.32740000000E+04 -0.29466260000E-04 -0.30659535000E-03 0.99999995257E+00 722 0.96234080000E-01 0.19063510000E+00 0.32740000000E+04 -0.48184421000E-03 -0.19266304000E-03 0.99999986535E+00 723 0.93168980000E+00 0.32180410000E+00 0.32740000000E+04 0.45434888000E-04 -0.29121927000E-03 0.99999995656E+00 724 0.12671190000E+01 -0.17859770000E+01 0.32740000000E+04 0.11285315000E-02 -0.68134925000E-03 0.99999913109E+00 725 0.76119100000E+00 0.59405900000E+00 0.32740000000E+04 0.39463455000E-03 -0.82749801000E-04 0.99999991871E+00 726 0.12232070000E+00 -0.38816110000E+00 0.32740000000E+04 -0.52094791000E-03 -0.28772125000E-03 0.99999982291E+00 727 0.12232070000E+00 -0.38816110000E+00 0.32740000000E+04 -0.52094791000E-03 -0.28772125000E-03 0.99999982291E+00 728 0.65371790000E+00 0.96312870000E+00 0.32740000000E+04 0.58949128000E-03 -0.77774472000E-04 0.99999982323E+00 729 0.73760920000E+00 0.91323640000E+00 0.32740000000E+04 -0.45854831000E-03 -0.99915424000E-05 0.99999989482E+00 730 -0.20384800000E+01 -0.11628490000E+01 0.32740000000E+04 -0.11276080000E-02 -0.49919728000E-03 0.99999923965E+00 731 0.76771300000E+00 0.19222280000E+00 0.32740000000E+04 -0.11347234000E-05 -0.16574329000E-03 0.99999998626E+00 732 0.68750860000E+00 -0.64270620000E+00 0.32740000000E+04 -0.11279684000E-03 -0.27339198000E-03 0.99999995627E+00 733 0.61485520000E+00 0.78147190000E+00 0.32740000000E+04 0.28772390000E-03 0.32250979000E-03 0.99999990660E+00 734 0.61031818000E-02 -0.20639760000E+00 0.32740000000E+04 -0.82881498000E-03 -0.37195673000E-03 0.99999958736E+00 735 0.75602310000E+00 -0.48711320000E+00 0.32740000000E+04 0.68592088000E-03 -0.36762521000E-03 0.99999969718E+00 736 0.94519020000E+00 0.48559520000E+00 0.32740000000E+04 0.94112800000E-03 -0.83027589000E-04 0.99999955369E+00 737 0.10059590000E+01 -0.11788330000E+00 0.32740000000E+04 0.64383802000E-03 -0.45508239000E-03 0.99999968919E+00 738 0.33644010000E+00 0.56955810000E-01 0.32740000000E+04 0.11733649000E-03 -0.18643987000E-03 0.99999997574E+00 739 0.41114070000E+00 -0.35788490000E-01 0.32740000000E+04 -0.61633473000E-03 -0.37542230000E-03 0.99999973959E+00 740 0.10106900000E+01 -0.17855020000E-01 0.32740000000E+04 0.26145505000E-03 -0.26715279000E-03 0.99999993014E+00 741 0.10106900000E+01 -0.17855020000E-01 0.32740000000E+04 0.26145505000E-03 -0.26715279000E-03 0.99999993014E+00 742 0.83565620000E+00 -0.68831050000E+00 0.32740000000E+04 -0.77129476000E-03 -0.33369186000E-03 0.99999964688E+00 743 0.69177080000E+00 0.64493320000E+00 0.32740000000E+04 0.36503893000E-03 -0.18836121000E-03 0.99999991563E+00 744 0.75989110000E+00 -0.99005360000E+00 0.32740000000E+04 -0.19262858000E-03 -0.30134528000E-03 0.99999993604E+00 745 0.35847970000E+00 -0.56459210000E+00 0.32740000000E+04 -0.29053976000E-03 -0.54128241000E-03 0.99999981130E+00 746 0.89376450000E+00 0.11701890000E+01 0.32740000000E+04 -0.16232279000E-03 -0.21674359000E-03 0.99999996334E+00 747 0.70987410000E+00 -0.33700630000E+00 0.32740000000E+04 -0.42773306000E-03 -0.36551748000E-03 0.99999984172E+00 748 0.47401950000E+00 -0.15966070000E+00 0.32740000000E+04 0.69606642000E-04 -0.31661204000E-03 0.99999994746E+00 749 0.94727720000E+00 0.47099290000E+00 0.32740000000E+04 0.47413411000E-03 -0.28550454000E-04 0.99999988719E+00 750 0.71693440000E+00 0.45397150000E+00 0.32740000000E+04 0.81740512000E-03 0.23892910000E-04 0.99999966564E+00 751 0.55893090000E+00 0.12135850000E+01 0.32740000000E+04 -0.42631200000E-05 -0.19557563000E-03 0.99999998087E+00 752 0.55893090000E+00 0.12135850000E+01 0.32740000000E+04 -0.42631200000E-05 -0.19557563000E-03 0.99999998087E+00 753 -0.17755810000E+00 -0.53048300000E+00 0.32740000000E+04 0.36623282000E-03 -0.36026820000E-03 0.99999986804E+00 754 0.74325160000E+00 0.17278740000E-01 0.32740000000E+04 -0.32545388000E-03 -0.22323996000E-03 0.99999992212E+00 755 0.87179980000E+00 0.10513740000E+01 0.32740000000E+04 0.14610945000E-03 0.31445790000E-04 0.99999998883E+00 756 0.12289940000E+01 -0.22919820000E+01 0.32740000000E+04 0.26558644000E-04 -0.65723649000E-03 0.99999978367E+00 757 0.73200250000E+00 0.53785370000E+00 0.32740000000E+04 0.70542347000E-03 -0.94231436000E-04 0.99999974675E+00 758 0.38480850000E+00 -0.97391080000E-01 0.32740000000E+04 -0.29649069000E-04 -0.22325265000E-03 0.99999997464E+00 759 0.24650820000E+00 0.88514550000E-01 0.32740000000E+04 -0.57474543000E-04 -0.16151040000E-03 0.99999998531E+00 760 0.53421830000E+00 -0.17832800000E+00 0.32740000000E+04 -0.10997617000E-04 -0.41450546000E-03 0.99999991403E+00 761 0.99379580000E+00 0.34451270000E+01 0.32740000000E+04 0.58761798000E-03 -0.11292316000E-03 0.99999982098E+00 762 0.90823470000E+00 -0.70771210000E+00 0.32740000000E+04 0.89527501000E-04 -0.35513501000E-03 0.99999993293E+00 763 -0.33087830000E-01 -0.81461740000E-01 0.32740000000E+04 -0.81655144000E-03 -0.27584020000E-03 0.99999962858E+00 764 0.68418510000E+00 0.10960260000E+01 0.32740000000E+04 -0.60999132000E-03 -0.12652390000E-03 0.99999980595E+00 765 0.68418510000E+00 0.10960260000E+01 0.32740000000E+04 -0.60999132000E-03 -0.12652390000E-03 0.99999980595E+00 766 0.13590520000E+01 0.82174880000E+00 0.32740000000E+04 0.66057534000E-03 -0.27020666000E-04 0.99999978146E+00 767 0.60373020000E+00 0.90855210000E+00 0.32740000000E+04 -0.65604190000E-03 -0.23402143000E-03 0.99999975742E+00 768 0.10585970000E+01 -0.17794740000E+01 0.32740000000E+04 -0.15357180000E-03 -0.64067484000E-03 0.99999978298E+00 769 0.73276370000E+00 0.61988310000E+00 0.32740000000E+04 -0.51337935000E-03 -0.25895369000E-03 0.99999983469E+00 770 0.32096040000E+00 0.18684270000E+00 0.32740000000E+04 -0.11085185000E-03 -0.40686686000E-03 0.99999991109E+00 771 0.97625780000E-01 -0.44280440000E+00 0.32740000000E+04 -0.69026934000E-03 -0.39346132000E-03 0.99999968436E+00 772 0.66618550000E+00 0.41533020000E-01 0.32740000000E+04 0.24133649000E-03 -0.14336256000E-03 0.99999996060E+00 773 0.77423730000E+00 -0.30697360000E+00 0.32740000000E+04 -0.61492989000E-03 -0.44567027000E-03 0.99999971162E+00 774 0.31252400000E+00 -0.92251410000E+00 0.32740000000E+04 -0.34082928000E-03 -0.43864248000E-03 0.99999984571E+00 775 0.72137680000E+00 -0.10242670000E+00 0.32740000000E+04 0.18093633000E-03 -0.15627782000E-03 0.99999997142E+00 776 0.24233770000E+00 0.47307420000E+00 0.32740000000E+04 -0.28226618000E-03 -0.82109698000E-04 0.99999995679E+00 777 0.20822460000E+00 -0.57693410000E+00 0.32740000000E+04 0.89585999000E-04 -0.27894802000E-03 0.99999995708E+00 778 0.43451420000E+00 -0.12182480000E+01 0.32740000000E+04 -0.50727016000E-03 -0.32659498000E-03 0.99999981801E+00 779 0.96484760000E-01 -0.45279820000E+00 0.32740000000E+04 -0.39379013000E-03 -0.19376568000E-03 0.99999990369E+00 780 0.95475050000E+00 0.70292470000E+00 0.32740000000E+04 0.67604618000E-03 -0.99946606000E-04 0.99999976649E+00 781 0.15384400000E+00 -0.56035840000E+00 0.32740000000E+04 0.10397695000E-02 -0.24843038000E-03 0.99999942858E+00 782 0.15384400000E+00 -0.56035840000E+00 0.32740000000E+04 0.10397695000E-02 -0.24843038000E-03 0.99999942858E+00 783 0.10289650000E+01 -0.29000630000E+00 0.32740000000E+04 0.53210679000E-03 -0.39208186000E-03 0.99999978157E+00 784 0.43722680000E+00 -0.81154040000E+00 0.32740000000E+04 0.81381324000E-04 -0.31612589000E-03 0.99999994672E+00 785 0.78726480000E-01 -0.39844170000E+00 0.32740000000E+04 -0.64356794000E-03 -0.47086392000E-04 0.99999979180E+00 786 0.18086060000E+00 -0.82865090000E+00 0.32740000000E+04 -0.67965360000E-03 -0.46243949000E-03 0.99999966211E+00 787 0.10082920000E+01 0.71071610000E+00 0.32740000000E+04 0.47108275000E-03 -0.95967647000E-04 0.99999988444E+00 788 0.93976380000E+00 -0.18339640000E+01 0.32740000000E+04 0.25179589000E-03 -0.66060288000E-03 0.99999975010E+00 789 0.51875520000E+00 0.35682190000E+00 0.32740000000E+04 -0.67497254000E-04 -0.21750892000E-03 0.99999997407E+00 790 0.69492990000E+00 -0.22265480000E+01 0.32740000000E+04 0.16754826000E-03 -0.57863613000E-03 0.99999981855E+00 791 0.54693030000E-01 -0.52186350000E+00 0.32740000000E+04 -0.91588596000E-03 -0.34247819000E-03 0.99999952193E+00 792 0.10834850000E+01 -0.36147810000E+00 0.32740000000E+04 0.62627216000E-04 -0.40923103000E-03 0.99999991430E+00 793 0.37949970000E+00 -0.40234530000E+00 0.32740000000E+04 0.20082443000E-03 -0.35657021000E-03 0.99999991626E+00 794 0.10150420000E+01 0.45735240000E+00 0.32740000000E+04 0.40138970000E-03 -0.25436573000E-03 0.99999988709E+00 795 0.29646920000E+00 -0.92133890000E+00 0.32740000000E+04 0.88255947000E-04 -0.40990132000E-03 0.99999991210E+00 796 0.44629300000E+00 -0.75000050000E+00 0.32740000000E+04 -0.18758337000E-03 -0.25728531000E-03 0.99999994931E+00 797 -0.14747820000E+01 -0.96361690000E+00 0.32740000000E+04 -0.12725947000E-02 -0.82435261000E-03 0.99999885047E+00 798 0.28911300000E+00 -0.11072170000E+00 0.32740000000E+04 -0.76277700000E-03 -0.18455595000E-03 0.99999969206E+00 799 0.55104840000E+00 0.12666080000E+01 0.32740000000E+04 -0.82029474000E-04 -0.49659477000E-04 0.99999999540E+00 800 0.90243890000E+00 0.19746910000E+00 0.32740000000E+04 0.64541516000E-03 -0.67599540000E-04 0.99999978943E+00 801 0.18351610000E+01 0.61213370000E+00 0.32740000000E+04 0.14423140000E-02 -0.45595964000E-03 0.99999885591E+00 802 0.18351610000E+01 0.61213370000E+00 0.32740000000E+04 0.14423140000E-02 -0.45595964000E-03 0.99999885591E+00 803 0.25791070000E+00 0.13625700000E+01 0.32740000000E+04 0.31817915000E-04 -0.17911439000E-03 0.99999998345E+00 804 0.59710810000E+00 -0.30635470000E+00 0.32740000000E+04 -0.14924022000E-03 -0.24220598000E-03 0.99999995953E+00 805 0.96672230000E+00 0.40073820000E+00 0.32740000000E+04 0.27773544000E-03 -0.20722390000E-03 0.99999993996E+00 806 0.34640210000E+00 -0.25736680000E+00 0.32740000000E+04 -0.15552647000E-04 -0.31082466000E-03 0.99999995157E+00 807 0.24030620000E+00 -0.88200270000E+00 0.32740000000E+04 -0.38787542000E-03 -0.33993818000E-03 0.99999986700E+00 808 0.23881840000E+00 -0.10012250000E+01 0.32740000000E+04 -0.18973591000E-04 -0.35014428000E-03 0.99999993852E+00 809 0.75874670000E+00 0.68572620000E-01 0.32740000000E+04 -0.80258073000E-03 -0.36284566000E-03 0.99999961210E+00 810 0.60232060000E+00 -0.55826480000E+00 0.32740000000E+04 0.93078386000E-04 -0.46034245000E-03 0.99999988971E+00 811 0.92970640000E+00 -0.48187890000E+00 0.32740000000E+04 0.76870772000E-03 -0.37033821000E-03 0.99999963597E+00 812 0.43080520000E+00 -0.30700370000E+00 0.32740000000E+04 0.48666456000E-03 -0.28014363000E-03 0.99999984234E+00 813 0.80527110000E+00 -0.54319990000E+00 0.32740000000E+04 0.58299693000E-03 -0.65909611000E-03 0.99999961285E+00 814 0.36624510000E+00 0.53974140000E+00 0.32740000000E+04 -0.20695140000E-03 -0.14547369000E-03 0.99999996800E+00 815 0.36624510000E+00 0.53974140000E+00 0.32740000000E+04 -0.20695140000E-03 -0.14547369000E-03 0.99999996800E+00 816 0.26092950000E+00 0.28488030000E+00 0.32740000000E+04 -0.51843980000E-03 -0.23317419000E-03 0.99999983842E+00 817 0.59860970000E+00 0.19377950000E+01 0.32740000000E+04 0.21770786000E-04 0.20559796000E-03 0.99999997863E+00 818 0.37882160000E+00 0.34169640000E+00 0.32740000000E+04 -0.64535721000E-04 -0.58134159000E-04 0.99999999623E+00 819 0.60539230000E+00 -0.33279400000E-01 0.32740000000E+04 0.60805929000E-03 -0.18131536000E-03 0.99999979869E+00 820 0.46577700000E+00 0.33082960000E+00 0.32740000000E+04 0.24109439000E-03 -0.18225126000E-03 0.99999995433E+00 821 0.13820930000E+00 0.41547990000E+00 0.32740000000E+04 -0.47144017000E-03 0.23857077000E-04 0.99999988859E+00 822 0.13820930000E+00 0.41547990000E+00 0.32740000000E+04 -0.47144017000E-03 0.23857077000E-04 0.99999988859E+00 823 0.22500930000E+00 0.42583560000E+00 0.32740000000E+04 -0.23385126000E-03 -0.13458174000E-03 0.99999996360E+00 824 0.62511790000E+00 -0.37640140000E+00 0.32740000000E+04 -0.32051353000E-03 -0.43389239000E-03 0.99999985450E+00 825 -0.13597580000E+00 0.88088280000E+00 0.32740000000E+04 -0.81314554000E-03 -0.19497021000E-03 0.99999965039E+00 826 0.42407730000E+00 0.72415730000E-01 0.32740000000E+04 -0.50800878000E-04 -0.23569878000E-03 0.99999997093E+00 827 0.42800500000E+00 0.65088150000E+00 0.32740000000E+04 0.80517588000E-04 -0.14020367000E-03 0.99999998693E+00 828 0.82090870000E+00 -0.40178870000E+00 0.32740000000E+04 -0.43545497000E-04 -0.45568685000E-03 0.99999989523E+00 829 -0.76518060000E-01 0.52627900000E+00 0.32740000000E+04 0.85935689000E-03 -0.14444418000E-04 0.99999963065E+00 830 0.59557180000E+00 -0.66673980000E+00 0.32740000000E+04 -0.68393099000E-03 -0.30771387000E-03 0.99999971878E+00 831 0.78364250000E+00 0.24066610000E+00 0.32740000000E+04 -0.37281885000E-03 -0.18053246000E-03 0.99999991421E+00 832 0.23508970000E+00 -0.10105590000E+00 0.32740000000E+04 -0.22071038000E-03 -0.13815824000E-03 0.99999996610E+00 833 0.38085520000E+00 0.30130460000E+00 0.32740000000E+04 -0.19998499000E-03 -0.33909929000E-03 0.99999992251E+00 834 0.17864990000E+01 -0.78848710000E+00 0.32740000000E+04 0.77850890000E-03 -0.36835822000E-03 0.99999962912E+00 835 0.13379740000E+01 -0.36012630000E+00 0.32740000000E+04 0.10870143000E-02 -0.40311931000E-03 0.99999932795E+00 836 0.13379740000E+01 -0.36012630000E+00 0.32740000000E+04 0.10870143000E-02 -0.40311931000E-03 0.99999932795E+00 837 0.10047650000E+01 0.54604700000E+00 0.32740000000E+04 -0.54387645000E-04 -0.19554693000E-03 0.99999997940E+00 838 0.38839380000E+00 -0.65811360000E+00 0.32740000000E+04 0.17086742000E-03 -0.40331975000E-03 0.99999990407E+00 839 0.50465630000E+00 -0.44151800000E+00 0.32740000000E+04 0.69647835000E-03 -0.46568821000E-03 0.99999964903E+00 840 0.34745370000E+00 0.21424230000E+00 0.32740000000E+04 -0.45109100000E-04 -0.33919580000E-03 0.99999994146E+00 841 0.66197660000E+00 0.99700030000E+00 0.32740000000E+04 0.60969178000E-03 -0.90945192000E-04 0.99999981000E+00 842 -0.17923120000E+01 0.35637730000E+01 0.32740000000E+04 -0.45584547000E-03 -0.25678551000E-03 0.99999986313E+00 843 0.10746850000E+01 -0.44406110000E+00 0.32740000000E+04 0.31378682000E-03 -0.20027498000E-03 0.99999993071E+00 844 0.60019180000E+00 -0.27664930000E+00 0.32740000000E+04 0.22964382000E-03 -0.38396701000E-03 0.99999989992E+00 845 0.62213580000E+00 0.77472130000E+00 0.32740000000E+04 0.79876743000E-04 -0.97613965000E-05 0.99999999676E+00 846 0.16076410000E+00 -0.32065370000E+00 0.32740000000E+04 -0.39420213000E-03 -0.20041442000E-03 0.99999990222E+00 847 0.10680070000E+01 0.43173650000E+00 0.32740000000E+04 0.59281179000E-03 -0.32436033000E-03 0.99999977168E+00 848 0.19119980000E+01 -0.27550850000E+00 0.32740000000E+04 0.49957028000E-03 -0.30258007000E-03 0.99999982944E+00 849 0.31924360000E+00 -0.34222400000E+00 0.32740000000E+04 -0.35028905000E-03 -0.30454004000E-03 0.99999989228E+00 850 0.22569450000E+00 -0.62092700000E+00 0.32740000000E+04 -0.33344925000E-03 -0.29386912000E-03 0.99999990123E+00 851 0.85921360000E+00 -0.48673580000E-01 0.32740000000E+04 -0.57520148000E-04 -0.22866884000E-03 0.99999997220E+00 852 0.52757770000E+00 0.63558610000E+00 0.32740000000E+04 0.37670127000E-03 0.70153350000E-04 0.99999992659E+00 853 0.82310860000E+00 0.11407830000E+00 0.32740000000E+04 0.95236785000E-03 -0.34379750000E-03 0.99999948740E+00 854 0.69990230000E+00 0.10911920000E-01 0.32740000000E+04 0.56663699000E-04 -0.34150187000E-03 0.99999994008E+00 855 0.54775050000E-01 0.46521210000E+00 0.32740000000E+04 -0.63721644000E-03 -0.24679455000E-03 0.99999976652E+00 856 0.85921080000E+00 -0.18217710000E-01 0.32740000000E+04 0.76887722000E-03 -0.39446651000E-03 0.99999962661E+00 857 0.48524870000E+00 0.26415520000E+01 0.32740000000E+04 -0.47703931000E-03 -0.10854349000E-03 0.99999988033E+00 858 0.27060320000E+00 -0.72849450000E+00 0.32740000000E+04 -0.53415872000E-03 -0.53159334000E-03 0.99999971604E+00 859 0.69322970000E+00 0.71681820000E+00 0.32740000000E+04 0.79660671000E-03 -0.26465920000E-03 0.99999964769E+00 860 0.78945680000E+00 0.10055720000E+01 0.32740000000E+04 0.75852824000E-03 -0.26887888000E-04 0.99999971196E+00 861 0.32252720000E+00 -0.57870410000E+00 0.32740000000E+04 -0.35701956000E-04 -0.20961744000E-03 0.99999997739E+00 862 0.27473050000E+00 -0.39989030000E+00 0.32740000000E+04 -0.47040635000E-03 -0.41545756000E-03 0.99999980306E+00 863 0.19580970000E+00 -0.87495000000E+00 0.32740000000E+04 -0.61659823000E-03 -0.33665646000E-03 0.99999975323E+00 864 0.68768450000E+00 0.46604450000E+00 0.32740000000E+04 -0.19580634000E-03 -0.48066874000E-03 0.99999986531E+00 865 0.86270900000E+00 0.55242780000E+00 0.32740000000E+04 -0.43552183000E-03 -0.11137903000E-03 0.99999989896E+00 866 0.69098780000E+00 0.42147900000E+00 0.32740000000E+04 -0.63250755000E-03 -0.25990905000E-03 0.99999976619E+00 867 0.11346300000E+01 -0.70034480000E+00 0.32740000000E+04 0.49581344000E-03 -0.42182975000E-03 0.99999978811E+00 868 0.74946690000E+00 0.68798070000E+00 0.32740000000E+04 0.87292021000E-03 -0.30035040000E-03 0.99999957390E+00 869 0.31074080000E+00 0.39020960000E+00 0.32740000000E+04 -0.65762777000E-03 -0.30386265000E-03 0.99999973760E+00 870 0.11565050000E+01 0.10491340000E+01 0.32740000000E+04 0.67517610000E-03 0.43487893000E-04 0.99999977112E+00 871 0.86041400000E+00 -0.49882560000E-01 0.32740000000E+04 -0.43913686000E-04 -0.42798766000E-03 0.99999990745E+00 872 0.37969610000E+00 0.11195760000E+01 0.32740000000E+04 -0.64777740000E-03 -0.20246081000E-03 0.99999976970E+00 873 0.87326340000E+00 0.72846370000E+00 0.32740000000E+04 -0.69269272000E-05 -0.10237576000E-03 0.99999999474E+00 874 0.87326340000E+00 0.72846370000E+00 0.32740000000E+04 -0.69269272000E-05 -0.10237576000E-03 0.99999999474E+00 875 0.77365580000E+00 0.60885930000E+00 0.32740000000E+04 -0.55330008000E-03 -0.13719487000E-03 0.99999983752E+00 876 0.74692500000E+00 -0.56401470000E+00 0.32740000000E+04 0.84249617000E-03 -0.32873749000E-03 0.99999959107E+00 877 0.19437840000E+01 0.17904070000E+00 0.32740000000E+04 0.11122142000E-02 -0.28248041000E-03 0.99999934159E+00 878 0.34129010000E+00 -0.22601090000E+01 0.32740000000E+04 -0.60010073000E-03 -0.56713348000E-03 0.99999965912E+00 879 0.80387530000E+00 0.12574240000E+00 0.32740000000E+04 -0.40986491000E-03 -0.23136020000E-03 0.99999988924E+00 880 0.57712410000E+00 -0.10566500000E+01 0.32740000000E+04 0.17610658000E-03 -0.20097825000E-03 0.99999996430E+00 881 0.99677160000E+00 -0.37133030000E-01 0.32740000000E+04 -0.23580641000E-03 -0.32055497000E-03 0.99999992082E+00 882 0.17554120000E+00 -0.87435350000E+00 0.32740000000E+04 -0.39893217000E-03 -0.44271917000E-03 0.99999982243E+00 883 0.10205990000E+01 -0.16136700000E+00 0.32740000000E+04 0.33134667000E-03 -0.27123859000E-03 0.99999990832E+00 884 0.99305460000E+00 -0.84810960000E+00 0.32740000000E+04 0.58664713000E-03 -0.23612329000E-03 0.99999980005E+00 885 0.88953510000E+00 0.35605920000E+00 0.32740000000E+04 0.48067499000E-03 -0.36287581000E-03 0.99999981864E+00 886 0.11120020000E+01 -0.77840320000E+00 0.32740000000E+04 0.44516029000E-03 -0.25964971000E-03 0.99999986721E+00 887 0.26897250000E+00 -0.39838800000E+00 0.32740000000E+04 -0.47016647000E-03 -0.27651887000E-03 0.99999985124E+00 888 0.11511980000E+01 0.99654980000E+00 0.32740000000E+04 0.10613537000E-02 -0.49961822000E-04 0.99999943552E+00 889 0.10909260000E+01 -0.22071050000E+01 0.32740000000E+04 0.55002869000E-03 -0.54590340000E-03 0.99999969973E+00 890 0.85994190000E+00 0.27579610000E+00 0.32740000000E+04 -0.32951193000E-04 -0.23065846000E-03 0.99999997286E+00 891 0.46123910000E+00 0.46168380000E+00 0.32740000000E+04 -0.63913065000E-03 -0.17822511000E-03 0.99999977987E+00 892 0.46123910000E+00 0.46168380000E+00 0.32740000000E+04 -0.63913065000E-03 -0.17822511000E-03 0.99999977987E+00 893 0.45171730000E+00 0.93532790000E+00 0.32740000000E+04 0.13407304000E-03 -0.12287834000E-03 0.99999998346E+00 894 0.37469740000E+00 -0.19721810000E+01 0.32740000000E+04 -0.46276944000E-03 -0.73056720000E-03 0.99999962606E+00 895 0.34791560000E-01 0.36670920000E+00 0.32740000000E+04 -0.73529605000E-03 -0.11193936000E-03 0.99999972340E+00 896 0.72208310000E+00 -0.29939930000E+00 0.32740000000E+04 -0.45241226000E-03 -0.43599639000E-03 0.99999980262E+00 897 0.90615500000E+00 0.66075090000E+00 0.32740000000E+04 -0.29771385000E-03 -0.11545824000E-03 0.99999994902E+00 898 0.81045670000E+00 0.65276600000E-01 0.32740000000E+04 0.76430425000E-03 -0.38372655000E-03 0.99999963430E+00 899 0.91997560000E+00 0.85273290000E+00 0.32740000000E+04 -0.31327305000E-03 0.11688597000E-03 0.99999994410E+00 900 0.28419080000E+00 0.68133660000E+00 0.32740000000E+04 -0.51165215000E-03 0.47207086000E-04 0.99999986799E+00 901 0.84813960000E+00 0.11502150000E+01 0.32740000000E+04 0.88564405000E-03 0.23515031000E-03 0.99999958017E+00 902 0.96846840000E+00 -0.21725230000E+00 0.32740000000E+04 0.30787065000E-04 -0.30160279000E-03 0.99999995404E+00 903 0.58723520000E+00 -0.56575890000E-01 0.32740000000E+04 0.38221502000E-03 -0.14483125000E-03 0.99999991647E+00 904 0.71002260000E+00 0.32510650000E+01 0.32740000000E+04 0.76040009000E-03 0.30403817000E-04 0.99999971043E+00 905 0.32563580000E+00 -0.82107570000E+00 0.32740000000E+04 0.47541533000E-04 -0.41241301000E-03 0.99999991383E+00 906 0.50783140000E+00 0.39756890000E+00 0.32740000000E+04 -0.14665758000E-03 -0.29062687000E-04 0.99999998882E+00 907 0.54081820000E+00 -0.20955490000E-01 0.32740000000E+04 0.28748816000E-03 -0.20145631000E-03 0.99999993838E+00 908 0.50484660000E+00 0.11019900000E+00 0.32740000000E+04 0.55176955000E-04 -0.20566428000E-03 0.99999997733E+00 909 0.38233230000E+00 -0.64174730000E+00 0.32740000000E+04 -0.42048738000E-04 -0.40323916000E-03 0.99999991782E+00 910 0.46908120000E+00 -0.74910860000E+00 0.32740000000E+04 0.27665150000E-03 -0.38732059000E-03 0.99999988672E+00 911 0.63276450000E+00 0.82113000000E+00 0.32740000000E+04 0.42574992000E-03 -0.23048509000E-03 0.99999988281E+00 912 0.63276450000E+00 0.82113000000E+00 0.32740000000E+04 0.42574992000E-03 -0.23048509000E-03 0.99999988281E+00 913 0.58553750000E+00 -0.27315800000E+00 0.32740000000E+04 0.37956130000E-03 -0.26841465000E-03 0.99999989194E+00 914 0.80325890000E+00 0.65962120000E-01 0.32740000000E+04 0.80303161000E-03 -0.40714021000E-03 0.99999959469E+00 915 0.61534040000E+00 0.15921000000E+01 0.32740000000E+04 -0.59996289000E-03 0.46932779000E-04 0.99999981892E+00 916 0.63135140000E+00 0.62160040000E+00 0.32740000000E+04 0.63944979000E-04 0.11759770000E-03 0.99999999104E+00 917 0.63135140000E+00 0.62160040000E+00 0.32740000000E+04 0.63944979000E-04 0.11759770000E-03 0.99999999104E+00 918 0.59023890000E+00 -0.55601100000E+00 0.32740000000E+04 0.40373288000E-03 -0.24946811000E-03 0.99999988738E+00 919 0.62865490000E+00 -0.86224400000E+00 0.32740000000E+04 -0.54197118000E-03 -0.59457647000E-03 0.99999967637E+00 920 0.86771720000E+00 -0.68492240000E+00 0.32740000000E+04 -0.29439700000E-03 -0.55587536000E-03 0.99999980217E+00 921 0.38942000000E+00 -0.75658050000E+00 0.32740000000E+04 -0.98078548000E-04 -0.14482954000E-03 0.99999998470E+00 922 0.79406400000E+00 -0.51046100000E+00 0.32740000000E+04 -0.31514897000E-03 -0.40647446000E-03 0.99999986773E+00 923 0.99837110000E+00 0.11521020000E+01 0.32740000000E+04 0.39873368000E-03 0.11690660000E-04 0.99999992044E+00 924 0.75773180000E+00 0.67891910000E+00 0.32740000000E+04 -0.18537228000E-03 -0.12048960000E-03 0.99999997556E+00 925 0.74518200000E+00 0.61165690000E+00 0.32740000000E+04 0.50784915000E-03 -0.28350001000E-04 0.99999987064E+00 926 0.87792720000E+00 0.44607570000E+00 0.32740000000E+04 0.58412788000E-04 -0.31309432000E-03 0.99999994928E+00 927 0.52053260000E-01 -0.56464780000E+00 0.32740000000E+04 -0.36329284000E-03 -0.26522233000E-03 0.99999989884E+00 928 0.94760270000E+00 -0.21152420000E+01 0.32740000000E+04 -0.46131268000E-03 -0.66984951000E-03 0.99999966925E+00 929 0.97665230000E+00 0.89514400000E+00 0.32740000000E+04 0.37373355000E-03 -0.58475758000E-04 0.99999992845E+00 930 0.90930520000E+00 0.86225010000E+00 0.32740000000E+04 -0.20657211000E-03 -0.22655912000E-03 0.99999995300E+00 931 0.90930520000E+00 0.86225010000E+00 0.32740000000E+04 -0.20657211000E-03 -0.22655912000E-03 0.99999995300E+00 932 0.33079530000E-01 -0.23359050000E+00 0.32740000000E+04 -0.65779447000E-03 -0.30527526000E-03 0.99999973706E+00 933 0.63195790000E+00 -0.25043040000E+00 0.32740000000E+04 0.55593339000E-03 -0.30449618000E-03 0.99999979911E+00 934 0.71900840000E+00 0.80533460000E-01 0.32740000000E+04 -0.65102638000E-03 -0.35578207000E-03 0.99999972479E+00 935 0.50527570000E+00 -0.89697990000E+00 0.32740000000E+04 0.71177818000E-03 -0.38359515000E-03 0.99999967311E+00 936 0.73870550000E+00 0.32337110000E+00 0.32740000000E+04 -0.63731073000E-03 -0.24179285000E-03 0.99999976769E+00 937 0.79450440000E+00 0.64847180000E+00 0.32740000000E+04 -0.33473485000E-03 -0.31313358000E-03 0.99999989495E+00 938 0.38120160000E+00 0.10763700000E+01 0.32740000000E+04 0.64096828000E-04 -0.69302885000E-04 0.99999999554E+00 939 0.10803020000E+01 0.88769020000E+00 0.32740000000E+04 0.21687055000E-03 -0.55963141000E-04 0.99999997492E+00 940 0.88931680000E+00 -0.28692980000E+00 0.32740000000E+04 0.77267335000E-03 -0.33951391000E-03 0.99999964385E+00 941 0.62171420000E+00 0.32876690000E+00 0.32740000000E+04 0.29468694000E-03 -0.32338695000E-03 0.99999990429E+00 942 0.11242090000E+00 -0.64432870000E+00 0.32740000000E+04 -0.62424509000E-03 -0.40980201000E-03 0.99999972119E+00 943 0.10673750000E+01 0.61346040000E+00 0.32740000000E+04 0.16857922000E-03 -0.22713427000E-03 0.99999996000E+00 944 0.10673750000E+01 0.61346040000E+00 0.32740000000E+04 0.16857922000E-03 -0.22713427000E-03 0.99999996000E+00 945 0.16236360000E+01 -0.45319670000E+00 0.32740000000E+04 0.14957980000E-02 -0.36913241000E-03 0.99999881316E+00 946 0.72136140000E+00 -0.53660100000E+00 0.32740000000E+04 0.49713557000E-03 -0.15068622000E-03 0.99999986507E+00 947 -0.34946150000E+00 0.55129780000E+00 0.32740000000E+04 -0.12802315000E-02 -0.41822001000E-03 0.99999909305E+00 948 0.14608580000E+00 0.63334420000E+00 0.32740000000E+04 0.13660766000E-03 -0.28085665000E-03 0.99999995123E+00 949 0.11440500000E+01 -0.15219060000E+01 0.32740000000E+04 0.12264132000E-02 -0.56406704000E-03 0.99999908887E+00 950 0.10935060000E+01 -0.68043260000E+00 0.32740000000E+04 0.86878991000E-03 -0.41025618000E-03 0.99999953845E+00 951 0.93585210000E+00 0.63612680000E+00 0.32740000000E+04 -0.12687070000E-03 -0.16683455000E-03 0.99999997804E+00 952 0.61816020000E+00 -0.45547900000E+00 0.32740000000E+04 0.18736809000E-03 -0.18216517000E-03 0.99999996585E+00 953 0.33178120000E+00 0.29930210000E+00 0.32740000000E+04 -0.12576867000E-03 -0.13036341000E-03 0.99999998359E+00 954 0.55428720000E+00 0.16577640000E+00 0.32740000000E+04 0.40511435000E-03 -0.14157592000E-03 0.99999990792E+00 955 0.20709220000E+00 -0.26998770000E+00 0.32740000000E+04 -0.17771954000E-03 -0.46070755000E-03 0.99999987808E+00 956 -0.14825580000E+01 -0.47245900000E+00 0.32740000000E+04 0.14923610000E-04 -0.44590939000E-03 0.99999990047E+00 957 0.97046040000E-01 -0.90355430000E+00 0.32740000000E+04 -0.53012173000E-03 -0.47348475000E-03 0.99999974739E+00 958 0.10237650000E+01 0.10687860000E+01 0.32740000000E+04 0.39605401000E-03 -0.95978088000E-04 0.99999991696E+00 959 0.68964720000E+00 0.14235540000E+01 0.32740000000E+04 0.39973808000E-03 -0.24231381000E-03 0.99999989075E+00 960 0.11074260000E-01 -0.70891460000E+00 0.32740000000E+04 -0.54871768000E-03 -0.19898576000E-03 0.99999982966E+00 961 0.48766080000E+00 0.20575950000E-01 0.32740000000E+04 0.97981370000E-04 -0.17199249000E-03 0.99999998041E+00 962 0.87519490000E+00 -0.33570890000E+00 0.32740000000E+04 0.18848006000E-03 -0.28671091000E-03 0.99999994114E+00 963 0.15307340000E+01 0.37150660000E+00 0.32740000000E+04 -0.28512033000E-03 -0.21140923000E-03 0.99999993701E+00 964 0.56989970000E+00 0.52224970000E+00 0.32740000000E+04 0.61393378000E-03 -0.34018181000E-03 0.99999975368E+00 965 0.82825600000E+00 -0.14399400000E+01 0.32740000000E+04 0.32988048000E-03 -0.33209863000E-03 0.99999989044E+00 966 0.81414840000E+00 0.82897900000E+00 0.32740000000E+04 -0.56639634000E-03 -0.19973585000E-03 0.99999981965E+00 967 0.11468190000E+01 0.82120680000E+00 0.32740000000E+04 0.70686324000E-03 -0.17849606000E-03 0.99999973424E+00 968 0.47883300000E+00 0.15298820000E+00 0.32740000000E+04 0.43962794000E-03 -0.25388223000E-04 0.99999990304E+00 969 0.26990650000E+00 -0.31420820000E+00 0.32740000000E+04 -0.60357212000E-03 -0.28919260000E-03 0.99999977603E+00 970 0.72378310000E+00 0.37882890000E+00 0.32740000000E+04 -0.69869129000E-03 -0.14050564000E-03 0.99999974604E+00 971 0.72378310000E+00 0.37882890000E+00 0.32740000000E+04 -0.69869129000E-03 -0.14050564000E-03 0.99999974604E+00 972 0.51544840000E+00 0.24321910000E+00 0.32740000000E+04 -0.58694067000E-03 -0.40279796000E-04 0.99999982694E+00 973 0.24467550000E+00 -0.24997650000E+00 0.32740000000E+04 -0.29052095000E-03 -0.23654866000E-03 0.99999992982E+00 974 0.61801240000E-01 -0.63708110000E+00 0.32740000000E+04 -0.55072980000E-03 -0.36793516000E-03 0.99999978066E+00 975 0.20493510000E+00 -0.44883600000E+00 0.32740000000E+04 -0.52668055000E-03 -0.21637035000E-03 0.99999983790E+00 976 0.96476050000E+00 -0.53479160000E+00 0.32740000000E+04 0.74645877000E-03 -0.40596240000E-03 0.99999963900E+00 977 0.56855420000E+00 0.79121990000E+00 0.32740000000E+04 0.41095185000E-03 0.13023750000E-03 0.99999990708E+00 978 0.10269920000E+01 0.67819780000E+00 0.32740000000E+04 0.64267387000E-03 -0.12161083000E-03 0.99999978609E+00 979 0.80049010000E+00 -0.12641100000E+01 0.32740000000E+04 0.98410086000E-03 -0.44628145000E-03 0.99999941619E+00 980 0.59023060000E+00 -0.63221070000E+00 0.32740000000E+04 0.78360332000E-04 -0.53081359000E-03 0.99999985605E+00 981 0.57680590000E+00 -0.10969870000E+01 0.32740000000E+04 0.31159179000E-04 -0.49558317000E-03 0.99999987671E+00 982 0.50370470000E+00 -0.23774710000E+00 0.32740000000E+04 0.19096483000E-03 -0.32090221000E-03 0.99999993028E+00 983 0.11160690000E+01 -0.19319980000E+00 0.32740000000E+04 0.65734610000E-03 -0.26779377000E-03 0.99999974809E+00 984 0.39860700000E+00 0.11176220000E+01 0.32740000000E+04 -0.11368204000E-03 -0.20806129000E-03 0.99999997189E+00 985 0.39860700000E+00 0.11176220000E+01 0.32740000000E+04 -0.11368204000E-03 -0.20806129000E-03 0.99999997189E+00 986 0.76326620000E+00 0.13285340000E+00 0.32740000000E+04 -0.40918158000E-03 -0.44452664000E-03 0.99999981748E+00 987 0.94860980000E+00 -0.79678300000E-01 0.32740000000E+04 0.31750100000E-04 -0.39487242000E-03 0.99999992153E+00 988 0.56446010000E+00 0.11603850000E+01 0.32740000000E+04 -0.24165295000E-03 0.58406808000E-04 0.99999996910E+00 989 0.67517020000E+00 -0.86089820000E+00 0.32740000000E+04 0.98532659000E-03 -0.38776427000E-03 0.99999943939E+00 990 0.30235350000E+00 -0.20763690000E+00 0.32740000000E+04 -0.44792646000E-03 -0.45898621000E-03 0.99999979435E+00 991 -0.11428750000E+00 -0.76570480000E+00 0.32740000000E+04 -0.93729660000E-03 -0.65221486000E-03 0.99999934805E+00 992 0.15635720000E+00 0.27078820000E+00 0.32740000000E+04 0.69246872000E-03 -0.41917115000E-03 0.99999967239E+00 993 0.10837810000E+01 0.22264000000E+01 0.32740000000E+04 -0.49917225000E-03 0.21919222000E-03 0.99999985139E+00 994 0.20758920000E+00 0.60019600000E+00 0.32740000000E+04 -0.54626615000E-03 -0.86229702000E-04 0.99999984708E+00 995 0.19880300000E+01 -0.13454450000E+01 0.32740000000E+04 0.75575820000E-03 -0.31774718000E-03 0.99999966393E+00 996 0.21382150000E+00 0.11582340000E+01 0.32740000000E+04 -0.58759510000E-03 -0.14989641000E-03 0.99999981613E+00 997 0.57850890000E+00 -0.63524880000E+00 0.32740000000E+04 0.13729768000E-03 -0.31904152000E-03 0.99999993968E+00 998 0.71601940000E+00 0.77262270000E+00 0.32740000000E+04 0.36173986000E-03 -0.11908443000E-03 0.99999992748E+00 999 0.71601940000E+00 0.77262270000E+00 0.32740000000E+04 0.36173986000E-03 -0.11908443000E-03 0.99999992748E+00 1000 0.33912020000E+00 -0.21246950000E+00 0.32740000000E+04 -0.26761973000E-03 -0.22134377000E-03 0.99999993969E+00 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/data-tracks/tracks-20GeV.dat b/examples/advanced/lAr_calorimeter/data-tracks/tracks-20GeV.dat new file mode 100644 index 0000000000..17f6c585eb --- /dev/null +++ b/examples/advanced/lAr_calorimeter/data-tracks/tracks-20GeV.dat @@ -0,0 +1 @@ + 1 0.55555210000E+00 0.71656850000E+00 0.32740000000E+04 0.34348338000E-03 0.32770280000E-04 0.99999994047E+00 2 -0.37603230000E+00 0.10975110000E+01 0.32740000000E+04 -0.32180065000E-03 0.66165457000E-03 0.99999972933E+00 3 0.13195150000E+01 0.26769960000E+00 0.32740000000E+04 -0.30453833000E-04 0.36410254000E-03 0.99999993325E+00 4 -0.86614760000E+00 -0.88073100000E+00 0.32740000000E+04 -0.28178209000E-03 -0.32814927000E-03 0.99999990646E+00 5 0.47585950000E+00 0.70162240000E+00 0.32740000000E+04 0.19272376000E-03 0.12282436000E-03 0.99999997389E+00 6 0.19433530000E+00 0.14922780000E+01 0.32740000000E+04 0.24189534000E-03 0.44052373000E-03 0.99999987371E+00 7 -0.10987850000E+01 -0.67949050000E+00 0.32740000000E+04 0.40250504000E-03 -0.37533347000E-03 0.99999984856E+00 8 0.10975730000E+01 -0.14958510000E+00 0.32740000000E+04 0.35843819000E-04 -0.15238677000E-03 0.99999998775E+00 9 -0.27773370000E+01 0.33644380000E+00 0.32740000000E+04 0.16704103000E-03 0.79160579000E-03 0.99999967273E+00 10 -0.22547370000E+01 0.41006050000E+00 0.32740000000E+04 -0.23508929000E-03 -0.19017704000E-03 0.99999995428E+00 11 -0.63193880000E+00 0.21505590000E+01 0.32740000000E+04 0.47186154000E-03 -0.17172766000E-03 0.99999987393E+00 12 0.17101550000E+01 0.63055740000E+00 0.32740000000E+04 0.42895143000E-03 0.29050096000E-03 0.99999986580E+00 13 -0.24948440000E+01 0.11865940000E+01 0.32740000000E+04 0.15500410000E-02 0.10771250000E-02 0.99999821859E+00 14 -0.13369620000E-01 0.18315110000E+01 0.32740000000E+04 -0.61276383000E-04 -0.26978375000E-03 0.99999996173E+00 15 0.17319560000E+01 0.17661650000E+01 0.32740000000E+04 0.60240802000E-03 -0.43069621000E-03 0.99999972580E+00 16 -0.20848950000E+01 0.10898800000E+01 0.32740000000E+04 0.51312504000E-03 0.53848873000E-03 0.99999972337E+00 17 -0.99631630000E+00 -0.93347810000E+00 0.32740000000E+04 0.33459949000E-03 -0.60767425000E-05 0.99999994400E+00 18 -0.99631630000E+00 -0.93347810000E+00 0.32740000000E+04 0.33459949000E-03 -0.60767425000E-05 0.99999994400E+00 19 -0.36418360000E+00 -0.34837980000E+00 0.32740000000E+04 0.12833907000E-03 0.96355347000E-04 0.99999998712E+00 20 -0.33874140000E+00 0.10143860000E+00 0.32740000000E+04 0.23610709000E-03 -0.37446336000E-03 0.99999990202E+00 21 0.19816460000E+01 0.18791900000E+01 0.32740000000E+04 0.43043317000E-03 -0.41705262000E-03 0.99999982040E+00 22 -0.68500390000E+00 0.10003440000E+01 0.32740000000E+04 0.77119046000E-04 -0.56950252000E-04 0.99999999540E+00 23 -0.16447130000E+01 0.15287570000E+01 0.32740000000E+04 -0.12585515000E-03 0.28774500000E-03 0.99999995068E+00 24 0.10496620000E-01 0.10282180000E+01 0.32740000000E+04 -0.33948300000E-03 0.82361410000E-04 0.99999993898E+00 25 -0.15287010000E+01 -0.18209670000E+01 0.32740000000E+04 -0.23848475000E-03 -0.39417445000E-03 0.99999989388E+00 26 -0.44803940000E-01 0.36433670000E-01 0.32740000000E+04 -0.11409864000E-03 -0.17870250000E-03 0.99999997752E+00 27 -0.26792380000E+01 0.40718750000E+00 0.32740000000E+04 -0.17541983000E-03 -0.80475205000E-03 0.99999966080E+00 28 -0.10905160000E+01 -0.52118180000E+00 0.32740000000E+04 0.28210509000E-03 -0.54642203000E-03 0.99999981092E+00 29 0.10467730000E+01 0.15092190000E+01 0.32740000000E+04 0.71452430000E-03 0.50417922000E-03 0.99999961763E+00 30 0.71161190000E+00 -0.80414870000E+00 0.32740000000E+04 -0.41407242000E-03 -0.78292367000E-04 0.99999991121E+00 31 -0.73706160000E+00 0.10963210000E+01 0.32740000000E+04 -0.20776186000E-03 -0.44081867000E-05 0.99999997841E+00 32 -0.26148060000E+01 -0.11235650000E+01 0.32740000000E+04 -0.40479275000E-03 -0.28651478000E-03 0.99999987703E+00 33 -0.11788120000E+01 -0.76725770000E+00 0.32740000000E+04 0.50053507000E-03 -0.30376033000E-04 0.99999987427E+00 34 0.70355360000E+00 0.71344100000E+00 0.32740000000E+04 0.16591487000E-03 0.16205529000E-03 0.99999997311E+00 35 -0.25737110000E+01 0.30090900000E+00 0.32740000000E+04 -0.11135116000E-03 -0.50333742000E-03 0.99999986713E+00 36 -0.15186350000E+01 -0.51838600000E+00 0.32740000000E+04 -0.15601574000E-03 0.88156616000E-04 0.99999998394E+00 37 -0.15186350000E+01 -0.51838600000E+00 0.32740000000E+04 -0.15601574000E-03 0.88156616000E-04 0.99999998394E+00 38 -0.94653710000E+00 0.96433660000E+00 0.32740000000E+04 0.22733558000E-03 0.41808729000E-03 0.99999988676E+00 39 0.93647460000E+00 0.21398680000E+01 0.32740000000E+04 0.18618870000E-03 -0.15723727000E-03 0.99999997031E+00 40 0.10221000000E+01 0.14883960000E+01 0.32740000000E+04 0.31775908000E-03 0.19390196000E-03 0.99999993072E+00 41 0.11966410000E+00 0.19372070000E+01 0.32740000000E+04 0.63972634000E-05 -0.22501973000E-03 0.99999997466E+00 42 -0.31086470000E+00 -0.10110010000E+01 0.32740000000E+04 0.45888079000E-04 0.22721582000E-04 0.99999999869E+00 43 -0.84683910000E+00 0.22572560000E+00 0.32740000000E+04 -0.11179889000E-03 -0.93728420000E-03 0.99999955450E+00 44 0.30691830000E+00 0.15089730000E+01 0.32740000000E+04 0.42196797000E-03 -0.14582889000E-03 0.99999990034E+00 45 -0.22724230000E+01 0.41958520000E+00 0.32740000000E+04 -0.13817134000E-03 -0.81699232000E-04 0.99999998712E+00 46 -0.45615200000E+00 -0.10727170000E+00 0.32740000000E+04 -0.69505608000E-04 -0.40344711000E-03 0.99999991620E+00 47 0.20246500000E+00 0.13921280000E+01 0.32740000000E+04 0.20919216000E-03 0.23166300000E-03 0.99999995129E+00 48 0.16736260000E+01 0.16387450000E+01 0.32740000000E+04 0.56862918000E-03 0.39201207000E-03 0.99999976149E+00 49 -0.43539510000E+00 0.12139400000E+01 0.32740000000E+04 0.95361080000E-04 -0.90245143000E-04 0.99999999138E+00 50 -0.43329540000E+00 0.18699010000E+01 0.32740000000E+04 -0.17144476000E-03 0.33931236000E-03 0.99999992774E+00 51 0.20038300000E+01 -0.87811390000E+00 0.32740000000E+04 0.39613096000E-03 -0.15635583000E-03 0.99999990932E+00 52 -0.50688740000E-01 0.21656060000E+01 0.32740000000E+04 -0.60199609000E-03 0.30077726000E-03 0.99999977357E+00 53 0.10413190000E+01 0.97505530000E+00 0.32740000000E+04 0.36368202000E-03 -0.50217897000E-03 0.99999980778E+00 54 0.71776920000E+00 0.27483970000E+00 0.32740000000E+04 0.21623434000E-03 -0.48998266000E-03 0.99999985658E+00 55 0.14970780000E+01 -0.14785660000E+01 0.32740000000E+04 0.57110074000E-03 -0.38569534000E-03 0.99999976254E+00 56 0.61607170000E-01 0.90618860000E+00 0.32740000000E+04 0.33799509000E-03 0.24572093000E-03 0.99999991269E+00 57 -0.19487460000E+00 0.60632590000E-01 0.32740000000E+04 0.42060306000E-03 -0.16952767000E-03 0.99999989718E+00 58 -0.66920990000E+00 0.93711430000E+00 0.32740000000E+04 0.40939677000E-03 0.84864194000E-04 0.99999991260E+00 59 -0.10074560000E+01 0.75151710000E+00 0.32740000000E+04 0.26185490000E-03 0.43995818000E-03 0.99999986893E+00 60 -0.55044270000E+00 0.56320310000E+00 0.32740000000E+04 -0.55024058000E-04 0.22463127000E-03 0.99999997326E+00 61 -0.14322840000E+01 0.10820630000E+01 0.32740000000E+04 -0.41141282000E-03 -0.84532527000E-04 0.99999991180E+00 62 -0.14322840000E+01 0.10820630000E+01 0.32740000000E+04 -0.41141282000E-03 -0.84532527000E-04 0.99999991180E+00 63 0.19874370000E+00 0.16312110000E+01 0.32740000000E+04 -0.27761716000E-03 0.25047129000E-04 0.99999996115E+00 64 0.19713530000E+00 0.14541580000E+01 0.32740000000E+04 -0.95331139000E-04 0.30430256000E-04 0.99999999499E+00 65 -0.13644360000E+01 0.43545160000E+00 0.32740000000E+04 -0.37487905000E-03 0.21532267000E-03 0.99999990655E+00 66 -0.45151820000E+00 -0.80132710000E-01 0.32740000000E+04 0.38281031000E-03 0.15254755000E-03 0.99999991509E+00 67 -0.13932870000E+00 -0.27154500000E+00 0.32740000000E+04 0.28986612000E-03 -0.43601979000E-03 0.99999986293E+00 68 -0.15439600000E+01 0.13253200000E+01 0.32740000000E+04 -0.99331965000E-06 0.12675166000E-03 0.99999999197E+00 69 -0.20866720000E+01 0.85851040000E+00 0.32740000000E+04 -0.34350369000E-03 -0.28428927000E-03 0.99999990059E+00 70 -0.18998900000E+00 0.20692920000E+01 0.32740000000E+04 -0.21857704000E-04 -0.35394917000E-03 0.99999993712E+00 71 -0.42217810000E+00 0.17815560000E+01 0.32740000000E+04 -0.57943298000E-05 -0.48177732000E-04 0.99999999882E+00 72 0.76321200000E+00 0.55468670000E+00 0.32740000000E+04 0.21815307000E-03 -0.20916788000E-03 0.99999995433E+00 73 0.50600870000E+00 -0.58097850000E+00 0.32740000000E+04 0.39244408000E-03 -0.17113017000E-03 0.99999990835E+00 74 -0.81384180000E+00 -0.51453050000E+00 0.32740000000E+04 0.10578960000E-04 -0.52431831000E-03 0.99999986249E+00 75 0.73424660000E+00 0.10151920000E+01 0.32740000000E+04 0.25853445000E-03 0.38558949000E-03 0.99999989224E+00 76 0.10392600000E+01 0.12894510000E+01 0.32740000000E+04 0.14915154000E-03 0.33922456000E-03 0.99999993134E+00 77 -0.17361080000E+01 -0.81667140000E+00 0.32740000000E+04 0.18992642000E-03 -0.16978581000E-03 0.99999996755E+00 78 0.10117140000E+01 0.22754510000E+00 0.32740000000E+04 0.10837677000E-03 -0.43101373000E-03 0.99999990124E+00 79 -0.14071060000E+01 0.24070330000E+01 0.32740000000E+04 -0.10652914000E-03 0.15523285000E-04 0.99999999421E+00 80 -0.10220650000E+01 0.18427430000E+01 0.32740000000E+04 -0.13137204000E-04 0.40353152000E-04 0.99999999910E+00 81 -0.10220650000E+01 0.18427430000E+01 0.32740000000E+04 -0.13137204000E-04 0.40353152000E-04 0.99999999910E+00 82 -0.22439240000E+01 -0.78784310000E+00 0.32740000000E+04 -0.26441299000E-03 -0.22427199000E-03 0.99999993989E+00 83 -0.86561510000E+00 0.21297010000E+01 0.32740000000E+04 -0.13248190000E-03 0.40010575000E-03 0.99999991118E+00 84 -0.11392240000E+01 0.21663770000E+01 0.32740000000E+04 0.36821142000E-03 0.17953430000E-03 0.99999991609E+00 85 0.39772390000E+00 0.10495090000E+01 0.32740000000E+04 -0.25418407000E-03 -0.67423724000E-04 0.99999996542E+00 86 -0.15913140000E+01 0.20276260000E+01 0.32740000000E+04 -0.48977591000E-03 0.31422634000E-03 0.99999983069E+00 87 0.51930890000E+00 0.15976060000E+01 0.32740000000E+04 -0.13037340000E-03 -0.72049559000E-04 0.99999998891E+00 88 -0.15961530000E+01 0.29657220000E+01 0.32740000000E+04 -0.40559686000E-03 -0.21349249000E-03 0.99999989496E+00 89 -0.26177430000E+00 -0.10409820000E+01 0.32740000000E+04 0.26707686000E-03 -0.56575140000E-03 0.99999980430E+00 90 -0.11967850000E+01 0.26911830000E+01 0.32740000000E+04 0.47737602000E-04 0.38778122000E-04 0.99999999811E+00 91 0.17871010000E+00 0.31011430000E+00 0.32740000000E+04 0.32807002000E-03 0.11386357000E-03 0.99999993970E+00 92 -0.19089730000E+01 0.26782980000E+01 0.32740000000E+04 0.25897182000E-03 -0.77658195000E-04 0.99999996345E+00 93 -0.21708480000E+01 0.12140280000E+01 0.32740000000E+04 0.67613394000E-06 0.31768647000E-03 0.99999994954E+00 94 0.41415920000E+00 0.18089210000E+01 0.32740000000E+04 -0.16345773000E-03 0.18909563000E-03 0.99999996876E+00 95 -0.92335950000E+00 0.18427980000E+01 0.32740000000E+04 0.39343875000E-04 0.17041045000E-03 0.99999998471E+00 96 -0.92335950000E+00 0.18427980000E+01 0.32740000000E+04 0.39343875000E-04 0.17041045000E-03 0.99999998471E+00 97 -0.11925740000E+00 -0.11956740000E+01 0.32740000000E+04 -0.26898045000E-03 -0.21692640000E-03 0.99999994030E+00 98 -0.25563770000E+01 0.21765530000E+01 0.32740000000E+04 -0.30100677000E-03 0.46138253000E-03 0.99999984826E+00 99 -0.21054260000E+01 -0.13591280000E+00 0.32740000000E+04 -0.15475374000E-03 0.70169925000E-04 0.99999998556E+00 100 0.74366350000E+00 0.17599700000E+01 0.32740000000E+04 -0.42257857000E-03 0.33475002000E-03 0.99999985468E+00 101 -0.23037240000E+01 0.14270470000E+01 0.32740000000E+04 0.17583596000E-03 -0.11581241000E-02 0.99999931391E+00 102 -0.20871600000E+01 -0.97692780000E+00 0.32740000000E+04 -0.11931319000E-03 -0.26205485000E-03 0.99999995855E+00 103 -0.20871600000E+01 -0.97692780000E+00 0.32740000000E+04 -0.11931319000E-03 -0.26205485000E-03 0.99999995855E+00 104 -0.10706710000E+01 -0.14440370000E+01 0.32740000000E+04 -0.45034039000E-03 -0.15444109000E-03 0.99999988667E+00 105 0.57078270000E+00 0.12318250000E+01 0.32740000000E+04 -0.91179114000E-04 -0.72396077000E-04 0.99999999322E+00 106 -0.16102860000E+01 0.21873474000E-02 0.32740000000E+04 0.22808641000E-03 0.29532929000E-03 0.99999993038E+00 107 -0.20625640000E+01 -0.17724660000E+01 0.32740000000E+04 -0.13440491000E-03 -0.41571012000E-03 0.99999990456E+00 108 -0.23383100000E+01 -0.19244630000E+00 0.32740000000E+04 -0.11989843000E-03 0.15786078000E-03 0.99999998035E+00 109 0.62658930000E+00 -0.13778630000E+01 0.32740000000E+04 -0.78105528000E-04 0.49144163000E-03 0.99999987619E+00 110 -0.12781930000E+00 0.11694960000E+01 0.32740000000E+04 -0.10160671000E-02 -0.55260625000E-03 0.99999933112E+00 111 -0.22786520000E+00 0.16658830000E+01 0.32740000000E+04 0.74962672000E-03 -0.79478697000E-04 0.99999971587E+00 112 -0.44167550000E+00 -0.61663170000E+00 0.32740000000E+04 0.46205893000E-03 -0.31476523000E-03 0.99999984371E+00 113 0.53601860000E+00 0.14532670000E+01 0.32740000000E+04 0.20140699000E-03 0.19951521000E-03 0.99999995981E+00 114 -0.10759180000E+01 0.11436790000E+01 0.32740000000E+04 0.49266993000E-03 0.11957915000E-03 0.99999987149E+00 115 0.13519650000E+01 0.36537160000E+00 0.32740000000E+04 -0.50648447000E-04 0.19142502000E-03 0.99999998040E+00 116 -0.92313100000E-01 -0.40156010000E+00 0.32740000000E+04 0.32647967000E-03 0.22750460000E-03 0.99999992083E+00 117 -0.88782260000E-01 -0.87484320000E+00 0.32740000000E+04 -0.37041260000E-03 0.12464698000E-03 0.99999992363E+00 118 -0.26275520000E+01 -0.46090450000E+00 0.32740000000E+04 -0.27767336000E-03 0.26542440000E-03 0.99999992622E+00 119 -0.14165340000E+01 0.13596600000E+01 0.32740000000E+04 0.18660921000E-04 0.64900640000E-04 0.99999999772E+00 120 0.85781870000E+00 -0.98046670000E+00 0.32740000000E+04 0.15315227000E-04 0.22084574000E-03 0.99999997550E+00 121 0.15099520000E+01 -0.50727060000E+00 0.32740000000E+04 0.36765105000E-03 -0.13745276000E-03 0.99999992297E+00 122 0.71184220000E+00 0.65884540000E-01 0.32740000000E+04 -0.52856842000E-04 0.13935527000E-03 0.99999998889E+00 123 -0.40844390000E+00 -0.20782850000E-01 0.32740000000E+04 -0.10101943000E-03 0.10101503000E-03 0.99999998980E+00 124 0.92694910000E+00 0.84034980000E+00 0.32740000000E+04 -0.91324124000E-04 0.41375673000E-03 0.99999991023E+00 125 -0.13263310000E+01 -0.13447360000E+01 0.32740000000E+04 0.53406978000E-03 -0.20213705000E-03 0.99999983696E+00 126 -0.13263310000E+01 -0.13447360000E+01 0.32740000000E+04 0.53406978000E-03 -0.20213705000E-03 0.99999983696E+00 127 0.14716890000E+01 0.10799130000E+01 0.32740000000E+04 0.44755207000E-03 -0.21674385000E-03 0.99999987636E+00 128 0.66110010000E+00 0.27412000000E+00 0.32740000000E+04 0.40603784000E-03 0.37015762000E-03 0.99999984906E+00 129 0.87813780000E+00 0.85675150000E+00 0.32740000000E+04 0.24094318000E-03 0.31708114000E-03 0.99999992070E+00 130 0.79614940000E+00 -0.21763570000E+00 0.32740000000E+04 0.16707013000E-03 -0.12011728000E-03 0.99999997883E+00 131 -0.10732510000E+01 0.53675350000E+00 0.32740000000E+04 -0.50999568000E-03 -0.29422194000E-04 0.99999986952E+00 132 -0.12755610000E+00 0.56532920000E+00 0.32740000000E+04 0.50511578000E-03 -0.50978590000E-03 0.99999974249E+00 133 -0.86619930000E+00 0.28776220000E+00 0.32740000000E+04 -0.19507472000E-03 -0.44753921000E-03 0.99999988083E+00 134 0.31811660000E+00 -0.64336290000E+00 0.32740000000E+04 0.27206508000E-03 0.34650066000E-03 0.99999990296E+00 135 0.31811660000E+00 -0.64336290000E+00 0.32740000000E+04 0.27206508000E-03 0.34650066000E-03 0.99999990296E+00 136 -0.16129590000E+01 0.19012620000E+01 0.32740000000E+04 -0.24085170000E-04 0.29063222000E-03 0.99999995748E+00 137 -0.11097210000E+01 -0.61375850000E+00 0.32740000000E+04 0.25548768000E-03 0.10506842000E-03 0.99999996184E+00 138 -0.13098120000E+01 -0.13948230000E+01 0.32740000000E+04 0.43330927000E-03 -0.15427230000E-03 0.99999989422E+00 139 -0.20293640000E+01 0.12068960000E+01 0.32740000000E+04 0.26244579000E-04 0.33031374000E-04 0.99999999911E+00 140 0.98392230000E+00 0.47240670000E+00 0.32740000000E+04 0.36899987000E-03 -0.35311471000E-03 0.99999986957E+00 141 -0.16945990000E+01 0.26206800000E+01 0.32740000000E+04 -0.60543367000E-04 -0.49417844000E-03 0.99999987606E+00 142 -0.47789750000E+00 0.11617050000E+01 0.32740000000E+04 0.70468595000E-04 -0.12146137000E-03 0.99999999014E+00 143 -0.28376910000E+00 0.16622440000E+01 0.32740000000E+04 -0.41549027000E-03 -0.34859410000E-03 0.99999985292E+00 144 -0.22740990000E+01 -0.65475220000E+00 0.32740000000E+04 0.21736165000E-04 0.39780579000E-03 0.99999992064E+00 145 -0.10856030000E+01 0.93284190000E+00 0.32740000000E+04 -0.20885617000E-03 0.12981937000E-03 0.99999996976E+00 146 -0.19209430000E+00 0.12408730000E+01 0.32740000000E+04 -0.22872833000E-03 0.17609964000E-03 0.99999995834E+00 147 -0.12325510000E+01 -0.10817610000E+01 0.32740000000E+04 -0.84334868000E-04 -0.53502223000E-03 0.99999985332E+00 148 -0.16170510000E+01 0.87665600000E+00 0.32740000000E+04 0.10782482000E-03 0.47179003000E-03 0.99999988289E+00 149 -0.70000850000E+00 0.53799860000E+00 0.32740000000E+04 0.24705782000E-03 -0.64209729000E-04 0.99999996742E+00 150 0.65606840000E+00 0.23425760000E+00 0.32740000000E+04 0.11653521000E-03 -0.52479829000E-03 0.99999985550E+00 151 0.65606840000E+00 0.23425760000E+00 0.32740000000E+04 0.11653521000E-03 -0.52479829000E-03 0.99999985550E+00 152 -0.14034330000E+00 -0.18938780000E+00 0.32740000000E+04 0.63963991000E-03 -0.37224655000E-03 0.99999972615E+00 153 -0.60725050000E+00 0.22997680000E+01 0.32740000000E+04 0.20770737000E-03 0.47564894000E-03 0.99999986531E+00 154 0.29758880000E+00 0.21351610000E+01 0.32740000000E+04 0.50383626000E-03 0.28935527000E-04 0.99999987266E+00 155 0.10759430000E+01 0.12872170000E+01 0.32740000000E+04 0.38874079000E-03 0.58422040000E-04 0.99999992273E+00 156 0.85607550000E+00 0.85506760000E+00 0.32740000000E+04 0.36404553000E-03 0.24274408000E-04 0.99999993344E+00 157 -0.27597040000E+00 0.26285260000E+01 0.32740000000E+04 0.41251374000E-05 0.45744975000E-04 0.99999999895E+00 158 -0.20662210000E+01 0.10139310000E+01 0.32740000000E+04 -0.32880239000E-03 0.51301502000E-03 0.99999981435E+00 159 -0.16476480000E+01 0.26351760000E+01 0.32740000000E+04 0.24221798000E-03 -0.62598614000E-04 0.99999996871E+00 160 -0.11110640000E+01 0.21004670000E+00 0.32740000000E+04 0.25562069000E-03 0.29486534000E-03 0.99999992386E+00 161 0.11969330000E+01 0.10868370000E+01 0.32740000000E+04 -0.13359525000E-03 -0.16043840000E-03 0.99999997821E+00 162 -0.11187640000E+01 -0.93497590000E+00 0.32740000000E+04 0.90001631000E-04 -0.34696396000E-03 0.99999993576E+00 163 -0.23052870000E+01 0.95929030000E+00 0.32740000000E+04 0.15480710000E-03 0.34464665000E-04 0.99999998742E+00 164 0.16802330000E+01 -0.69512300000E+00 0.32740000000E+04 0.35069927000E-03 -0.11266799000E-03 0.99999993216E+00 165 0.10937280000E+01 0.18802260000E+00 0.32740000000E+04 -0.23298571000E-03 0.34956582000E-03 0.99999991176E+00 166 0.16957220000E+01 0.73920390000E+00 0.32740000000E+04 -0.51955401000E-04 -0.14456855000E-03 0.99999998820E+00 167 -0.52214550000E+00 0.13666140000E+01 0.32740000000E+04 0.25495878000E-03 0.98075121000E-04 0.99999996269E+00 168 -0.80912300000E+00 0.17330440000E+01 0.32740000000E+04 0.96972231000E-04 -0.32070748000E-03 0.99999994387E+00 169 0.17800190000E+00 0.16862560000E+01 0.32740000000E+04 0.27741012000E-03 0.10860680000E-03 0.99999995562E+00 170 -0.62973960000E+00 -0.14492550000E+01 0.32740000000E+04 0.12738047000E-03 -0.26684286000E-03 0.99999995628E+00 171 -0.99169730000E-01 0.69858660000E+00 0.32740000000E+04 -0.10790153000E-03 0.25507159000E-03 0.99999996165E+00 172 -0.99169730000E-01 0.69858660000E+00 0.32740000000E+04 -0.10790153000E-03 0.25507159000E-03 0.99999996165E+00 173 0.16350760000E+00 0.42187950000E-01 0.32740000000E+04 0.48871397000E-03 0.28672875000E-03 0.99999983947E+00 174 -0.27581480000E+01 -0.33084760000E+00 0.32740000000E+04 0.32409484000E-04 -0.17907399000E-03 0.99999998344E+00 175 -0.23075480000E+01 0.18716900000E+01 0.32740000000E+04 -0.17025280000E-03 0.49832446000E-03 0.99999986134E+00 176 -0.19994340000E+01 -0.20076280000E+00 0.32740000000E+04 0.19314160000E-03 -0.96582016000E-05 0.99999998130E+00 177 -0.42378640000E+00 -0.10251420000E+01 0.32740000000E+04 0.17507414000E-03 0.35873274000E-03 0.99999992033E+00 178 -0.91710900000E+00 -0.57522460000E-01 0.32740000000E+04 -0.23425659000E-03 -0.70575530000E-04 0.99999997007E+00 179 0.68483170000E+00 0.30617840000E+01 0.32740000000E+04 0.33526638000E-03 -0.26431817000E-05 0.99999994379E+00 180 -0.36311070000E+00 0.97085230000E+00 0.32740000000E+04 -0.89348498000E-04 0.44037392000E-05 0.99999999600E+00 181 -0.12713760000E+01 0.82111970000E+00 0.32740000000E+04 -0.32409190000E-03 -0.29182105000E-03 0.99999990490E+00 182 0.18498920000E+01 -0.69074200000E+00 0.32740000000E+04 0.30498192000E-03 -0.56504860000E-03 0.99999979385E+00 183 -0.11780140000E+01 0.16158240000E+01 0.32740000000E+04 -0.32085666000E-03 -0.12868100000E-03 0.99999994025E+00 184 -0.11780140000E+01 0.16158240000E+01 0.32740000000E+04 -0.32085666000E-03 -0.12868100000E-03 0.99999994025E+00 185 -0.10866140000E+01 0.20416680000E+01 0.32740000000E+04 -0.35280545000E-03 0.15074588000E-03 0.99999992640E+00 186 -0.89709530000E+00 0.82958840000E+00 0.32740000000E+04 0.16923477000E-03 0.19055933000E-04 0.99999998550E+00 187 -0.70513170000E+00 0.73503760000E+00 0.32740000000E+04 -0.46233393000E-03 0.38593760000E-03 0.99999981865E+00 188 0.15760950000E+01 0.10855890000E+01 0.32740000000E+04 0.64929802000E-03 -0.33887062000E-03 0.99999973179E+00 189 -0.74890360000E+00 0.15869200000E+01 0.32740000000E+04 0.43207593000E-03 0.26711824000E-03 0.99999987098E+00 190 -0.19864660000E+01 0.62179940000E+00 0.32740000000E+04 0.29957031000E-02 0.36338635000E-03 0.99999544685E+00 191 -0.69412220000E+00 0.24362710000E+01 0.32740000000E+04 -0.30944298000E-04 0.42875935000E-03 0.99999990760E+00 192 -0.16366320000E+01 0.14170280000E+01 0.32740000000E+04 -0.35641805000E-03 -0.96415941000E-04 0.99999993184E+00 193 -0.29085700000E+01 -0.49354550000E+00 0.32740000000E+04 0.28041916000E-03 0.32659413000E-03 0.99999990735E+00 194 -0.15518110000E+01 0.95971300000E+00 0.32740000000E+04 -0.14564861000E-03 -0.21828727000E-03 0.99999996557E+00 195 0.12051680000E+01 0.90281910000E+00 0.32740000000E+04 -0.19365942000E-03 0.35444778000E-03 0.99999991843E+00 196 0.71598780000E+00 0.38016920000E+00 0.32740000000E+04 0.69332722000E-03 -0.92632974000E-04 0.99999975536E+00 197 -0.50882640000E+00 0.49288800000E+00 0.32740000000E+04 -0.48079764000E-03 0.52754203000E-03 0.99999974527E+00 198 -0.17479970000E+01 0.66742840000E+00 0.32740000000E+04 -0.38962688000E-04 -0.40139936000E-03 0.99999991868E+00 199 -0.62787190000E+00 0.20814240000E+00 0.32740000000E+04 0.86126232000E-03 -0.29280709000E-03 0.99999958625E+00 200 -0.62787190000E+00 0.20814240000E+00 0.32740000000E+04 0.86126232000E-03 -0.29280709000E-03 0.99999958625E+00 201 -0.18907950000E+01 0.19338250000E+01 0.32740000000E+04 0.53175067000E-03 0.25326715000E-03 0.99999982655E+00 202 -0.10807100000E+01 0.21499160000E+00 0.32740000000E+04 -0.11091484000E-03 0.66598511000E-03 0.99999977208E+00 203 -0.12806880000E+00 0.14968000000E+01 0.32740000000E+04 -0.54185552000E-03 0.58666867000E-03 0.99999968111E+00 204 0.57118010000E+00 0.14796980000E+01 0.32740000000E+04 -0.68595855000E-05 0.27760796000E-03 0.99999996144E+00 205 -0.17390320000E+01 0.30096770000E+00 0.32740000000E+04 0.37900815000E-03 -0.12988053000E-03 0.99999991974E+00 206 -0.41641450000E+00 0.20465960000E+00 0.32740000000E+04 -0.58526767000E-03 0.16532120000E-04 0.99999982859E+00 207 0.19158920000E+00 0.70740560000E+00 0.32740000000E+04 0.56307996000E-03 -0.14632900000E-03 0.99999983076E+00 208 0.48417780000E+00 0.11040540000E+01 0.32740000000E+04 -0.27152270000E-03 -0.19203455000E-04 0.99999996295E+00 209 0.21627910000E+01 0.15714170000E+01 0.32740000000E+04 0.16000863000E-03 -0.28334558000E-03 0.99999994706E+00 210 -0.22268930000E+00 0.87929360000E+00 0.32740000000E+04 -0.13196554000E-03 -0.13969396000E-03 0.99999998154E+00 211 -0.22268930000E+00 0.87929360000E+00 0.32740000000E+04 -0.13196554000E-03 -0.13969396000E-03 0.99999998154E+00 212 0.99123990000E+00 0.19230880000E+01 0.32740000000E+04 -0.63156607000E-04 -0.15450976000E-03 0.99999998607E+00 213 -0.19878930000E+01 -0.12159160000E-01 0.32740000000E+04 -0.63953717000E-03 -0.25353211000E-03 0.99999976336E+00 214 -0.84577950000E-01 0.24359250000E+01 0.32740000000E+04 -0.35685902000E-04 0.12280090000E-04 0.99999999929E+00 215 -0.15209850000E+01 0.11558560000E+01 0.32740000000E+04 -0.67688653000E-03 0.36912659000E-03 0.99999970279E+00 216 -0.80888680000E+00 0.18565490000E+01 0.32740000000E+04 0.13449580000E-02 -0.60042442000E-03 0.99999891529E+00 217 0.64391360000E+00 0.11199230000E+01 0.32740000000E+04 0.21215008000E-04 -0.10678675000E-03 0.99999999407E+00 218 -0.10459300000E+01 0.19652400000E+01 0.32740000000E+04 0.45562370000E-04 0.22609919000E-03 0.99999997340E+00 219 -0.45314370000E+00 0.74574200000E+00 0.32740000000E+04 0.11332604000E-03 -0.19623979000E-03 0.99999997432E+00 220 -0.63650900000E+00 0.38451140000E+00 0.32740000000E+04 -0.35602701000E-03 -0.32459805000E-03 0.99999988394E+00 221 0.72591960000E+00 0.20696160000E+01 0.32740000000E+04 0.24161785000E-03 0.29127870000E-03 0.99999992839E+00 222 0.72591960000E+00 0.20696160000E+01 0.32740000000E+04 0.24161785000E-03 0.29127870000E-03 0.99999992839E+00 223 0.13494360000E+01 -0.36229140000E+00 0.32740000000E+04 0.37712482000E-03 -0.17935759000E-03 0.99999991280E+00 224 -0.13433080000E+01 0.11221250000E+01 0.32740000000E+04 -0.14032180000E-05 0.49882202000E-03 0.99999987559E+00 225 -0.13050250000E+01 0.96132150000E+00 0.32740000000E+04 -0.45817732000E-03 0.27195417000E-03 0.99999985806E+00 226 -0.16747960000E+01 0.11836610000E+01 0.32740000000E+04 0.10807357000E-04 -0.73967640000E-04 0.99999999721E+00 227 0.21228090000E+01 0.16720680000E+00 0.32740000000E+04 0.11619757000E-03 -0.24552815000E-03 0.99999996311E+00 228 -0.21819490000E+01 0.25695760000E+00 0.32740000000E+04 -0.69825976000E-04 0.72474912000E-03 0.99999973493E+00 229 0.41899920000E+00 0.10827580000E+01 0.32740000000E+04 0.37822363000E-04 0.68773353000E-03 0.99999976280E+00 230 -0.46178870000E+00 0.56927530000E+00 0.32740000000E+04 -0.49873994000E-03 -0.11618266000E-03 0.99999986888E+00 231 -0.12094820000E+01 -0.24307800000E+00 0.32740000000E+04 -0.26966067000E-03 -0.42031552000E-04 0.99999996276E+00 232 -0.13955100000E+01 0.52685040000E+00 0.32740000000E+04 0.34824302000E-03 0.24913714000E-03 0.99999990833E+00 233 -0.13955100000E+01 0.52685040000E+00 0.32740000000E+04 0.34824302000E-03 0.24913714000E-03 0.99999990833E+00 234 -0.46410440000E+00 0.54554850000E+00 0.32740000000E+04 -0.34417352000E-03 0.31661667000E-03 0.99999989065E+00 235 -0.25252310000E+01 -0.58037230000E-01 0.32740000000E+04 -0.31622258000E-03 -0.43495628000E-03 0.99999985541E+00 236 -0.15333420000E+01 0.13289970000E+01 0.32740000000E+04 -0.24550201000E-03 0.10819429000E-03 0.99999996401E+00 237 0.14559300000E+01 -0.17058340000E+00 0.32740000000E+04 0.85875334000E-04 -0.34027037000E-03 0.99999993842E+00 238 -0.10939240000E+01 0.18716210000E-01 0.32740000000E+04 0.22518336000E-03 -0.74274612000E-05 0.99999997462E+00 239 -0.17119180000E+01 0.15351960000E+01 0.32740000000E+04 0.27795186000E-04 0.48093571000E-03 0.99999988396E+00 240 -0.10728250000E+01 0.83374250000E+00 0.32740000000E+04 -0.30852872000E-03 -0.20892751000E-03 0.99999993058E+00 241 -0.12843100000E+01 0.75580630000E+00 0.32740000000E+04 0.39149847000E-03 -0.76776589000E-04 0.99999992042E+00 242 -0.56210900000E+00 0.49167560000E+00 0.32740000000E+04 -0.46990704000E-03 0.77015866000E-03 0.99999959302E+00 243 -0.24663610000E+00 0.15419600000E+01 0.32740000000E+04 -0.25915873000E-03 -0.95247393000E-04 0.99999996188E+00 244 -0.21218430000E+01 -0.19354310000E+01 0.32740000000E+04 0.61195882000E-04 -0.47196870000E-03 0.99999988675E+00 245 -0.32653160000E+00 0.26559540000E+01 0.32740000000E+04 -0.89623580000E-04 0.41221740000E-03 0.99999991102E+00 246 -0.13956330000E+01 0.28472170000E+01 0.32740000000E+04 0.13990549000E-03 0.34480254000E-03 0.99999993077E+00 247 -0.13984350000E+01 -0.34723520000E+00 0.32740000000E+04 -0.15074175000E-03 -0.28303367000E-03 0.99999994858E+00 248 -0.80196850000E+00 0.37225520000E+00 0.32740000000E+04 0.17324006000E-03 -0.76675700000E-04 0.99999998205E+00 249 -0.10475230000E+01 0.79998930000E+00 0.32740000000E+04 -0.24889881000E-03 0.48091108000E-03 0.99999985339E+00 250 -0.10475230000E+01 0.79998930000E+00 0.32740000000E+04 -0.24889881000E-03 0.48091108000E-03 0.99999985339E+00 251 -0.19549420000E+01 -0.24361070000E+00 0.32740000000E+04 -0.15855356000E-04 -0.34605793000E-03 0.99999994000E+00 252 -0.14309280000E+01 0.97403450000E+00 0.32740000000E+04 -0.30066998000E-03 0.20156073000E-03 0.99999993449E+00 253 -0.18234240000E+01 0.67179440000E-01 0.32740000000E+04 -0.13078658000E-03 -0.44896823000E-03 0.99999989066E+00 254 -0.60939780000E+00 -0.55478120000E+00 0.32740000000E+04 0.45546400000E-03 -0.20738679000E-03 0.99999987477E+00 255 0.37450190000E+00 0.13468810000E+01 0.32740000000E+04 -0.50969102000E-03 -0.71529110000E-04 0.99999986755E+00 256 -0.14457100000E+01 0.90499780000E-01 0.32740000000E+04 0.44699493000E-03 -0.11984162000E-02 0.99999918200E+00 257 0.17258800000E+01 -0.66276950000E+00 0.32740000000E+04 0.34181558000E-03 -0.29144282000E-03 0.99999989911E+00 258 0.14275790000E+01 0.24627760000E+01 0.32740000000E+04 0.41276458000E-03 0.12787274000E-03 0.99999990664E+00 259 -0.17099320000E+01 0.23572140000E+01 0.32740000000E+04 -0.59615639000E-04 0.52894978000E-03 0.99999985833E+00 260 -0.18358170000E+01 0.10961370000E+01 0.32740000000E+04 -0.27970615000E-04 -0.77846671000E-04 0.99999999658E+00 261 -0.18358170000E+01 0.10961370000E+01 0.32740000000E+04 -0.27970615000E-04 -0.77846671000E-04 0.99999999658E+00 262 -0.18261500000E+01 0.46101340000E+00 0.32740000000E+04 -0.14371205000E-04 0.11854218000E-03 0.99999999287E+00 263 -0.13987340000E+01 0.18816390000E+01 0.32740000000E+04 -0.25957015000E-04 0.76331446000E-04 0.99999999675E+00 264 0.70728120000E+00 0.19852020000E+01 0.32740000000E+04 0.12604907000E-03 -0.23577808000E-03 0.99999996426E+00 265 0.13929830000E+01 0.21038470000E+01 0.32740000000E+04 0.75420749000E-03 0.32244634000E-03 0.99999966360E+00 266 0.24908130000E+01 0.13086750000E+01 0.32740000000E+04 0.48880646000E-03 0.24764825000E-03 0.99999984987E+00 267 -0.24536540000E+01 0.14115530000E+00 0.32740000000E+04 -0.12983957000E-03 -0.72196672000E-04 0.99999998896E+00 268 -0.15754760000E+01 0.35047650000E+00 0.32740000000E+04 0.31767943000E-03 -0.24018934000E-03 0.99999992069E+00 269 0.17638850000E+00 0.66457450000E+00 0.32740000000E+04 0.48672991000E-04 0.23563164000E-03 0.99999997105E+00 270 -0.21926580000E+01 0.77931590000E+00 0.32740000000E+04 0.19255075000E-03 -0.40581715000E-04 0.99999998064E+00 271 0.81704650000E+00 -0.33176330000E+00 0.32740000000E+04 0.37551869000E-03 -0.16375168000E-03 0.99999991609E+00 272 -0.19727750000E+01 0.13935050000E+01 0.32740000000E+04 -0.11195117000E-03 0.96590637000E-04 0.99999998907E+00 273 -0.38670680000E+00 0.23091940000E+01 0.32740000000E+04 -0.14459650000E-03 0.18968842000E-03 0.99999997156E+00 274 -0.15063380000E+01 0.83030860000E+00 0.32740000000E+04 -0.13769732000E-03 0.11291723000E-03 0.99999998414E+00 275 0.12243500000E+01 0.29538650000E+01 0.32740000000E+04 0.24348093000E-03 -0.16207894000E-03 0.99999995722E+00 276 0.78680630000E-01 0.21208550000E+01 0.32740000000E+04 0.33342876000E-03 0.81918544000E-04 0.99999994106E+00 277 0.67856410000E+00 0.17056810000E+01 0.32740000000E+04 0.57851797000E-03 -0.18769932000E-03 0.99999981504E+00 278 -0.27119390000E+00 0.18087100000E+01 0.32740000000E+04 -0.22362420000E-03 0.15547359000E-03 0.99999996291E+00 279 -0.29285880000E+01 -0.21160960000E+01 0.32740000000E+04 0.26400271000E-03 -0.62785367000E-03 0.99999976805E+00 280 0.16665690000E+01 0.52710640000E+00 0.32740000000E+04 0.11661264000E-03 0.43313610000E-03 0.99999989940E+00 281 0.28375560000E+00 0.57784800000E-01 0.32740000000E+04 -0.12226027000E-03 -0.36210223000E-03 0.99999992697E+00 282 0.50687070000E+00 -0.73095140000E+00 0.32740000000E+04 0.50056848000E-03 -0.27869060000E-03 0.99999983588E+00 283 0.50687070000E+00 -0.73095140000E+00 0.32740000000E+04 0.50056848000E-03 -0.27869060000E-03 0.99999983588E+00 284 0.87227130000E+00 -0.11852310000E-01 0.32740000000E+04 0.20704082000E-03 -0.44609216000E-03 0.99999987907E+00 285 -0.18901370000E+01 -0.10842590000E+01 0.32740000000E+04 0.77430456000E-03 -0.19040842000E-03 0.99999968210E+00 286 -0.17025960000E+01 0.13837800000E+01 0.32740000000E+04 -0.60433120000E-03 -0.19588160000E-03 0.99999979821E+00 287 -0.97427300000E+00 0.24736800000E+01 0.32740000000E+04 -0.28363528000E-03 -0.45589876000E-03 0.99999985585E+00 288 -0.16036110000E+01 -0.14005330000E+01 0.32740000000E+04 -0.12054613000E-02 0.16966045000E-02 0.99999783420E+00 289 -0.16036110000E+01 -0.14005330000E+01 0.32740000000E+04 -0.12054613000E-02 0.16966045000E-02 0.99999783420E+00 290 0.35393130000E+00 0.11854160000E+00 0.32740000000E+04 0.65267301000E-03 0.13442834000E-03 0.99999977797E+00 291 0.25875690000E+00 -0.88368580000E+00 0.32740000000E+04 0.94894211000E-04 -0.11701131000E-03 0.99999998865E+00 292 0.88198510000E+00 -0.97221010000E+00 0.32740000000E+04 0.18128469000E-03 -0.43503108000E-03 0.99999988894E+00 293 -0.12246310000E+01 0.18720930000E+00 0.32740000000E+04 0.18502506000E-03 -0.12279394000E-03 0.99999997534E+00 294 -0.19257070000E+01 0.15887730000E+01 0.32740000000E+04 -0.38232185000E-04 0.28573300000E-04 0.99999999886E+00 295 0.15494360000E+01 0.40264450000E+00 0.32740000000E+04 -0.35679643000E-03 -0.26909698000E-03 0.99999990014E+00 296 0.26677940000E+01 0.13624550000E+00 0.32740000000E+04 0.17406168000E-04 -0.33929612000E-03 0.99999994229E+00 297 -0.24306360000E+01 0.10433580000E+01 0.32740000000E+04 0.12484338000E-03 0.13995316000E-03 0.99999998241E+00 298 -0.45644760000E+00 0.20926000000E+01 0.32740000000E+04 0.11316028000E-03 -0.65595632000E-04 0.99999999145E+00 299 -0.47531670000E+00 -0.11858220000E-01 0.32740000000E+04 -0.46961903000E-03 -0.96484565000E-03 0.99999942427E+00 300 -0.47531670000E+00 -0.11858220000E-01 0.32740000000E+04 -0.46961903000E-03 -0.96484565000E-03 0.99999942427E+00 301 0.21436270000E+01 -0.22650100000E+00 0.32740000000E+04 0.66369580000E-03 -0.25471247000E-03 0.99999974731E+00 302 -0.14332430000E+00 0.17895250000E+01 0.32740000000E+04 -0.30328170000E-03 0.43283002000E-04 0.99999995307E+00 303 0.54854000000E+00 0.21710630000E+01 0.32740000000E+04 0.22195277000E-03 0.44614222000E-03 0.99999987585E+00 304 0.59335540000E-01 0.29052190000E+00 0.32740000000E+04 -0.18052908000E-03 -0.29680188000E-03 0.99999993966E+00 305 0.28404270000E+00 0.99310660000E+00 0.32740000000E+04 0.41913769000E-04 0.12306568000E-03 0.99999999155E+00 306 0.87740670000E+00 0.17397990000E+01 0.32740000000E+04 0.76838733000E-04 0.71318436000E-03 0.99999974273E+00 307 -0.98781570000E+00 0.62568680000E+00 0.32740000000E+04 0.19952905000E-03 0.20946919000E-03 0.99999995816E+00 308 -0.17255510000E+01 0.12980020000E+01 0.32740000000E+04 0.15642791000E-03 0.30796602000E-03 0.99999994034E+00 309 -0.17125850000E+01 0.13965480000E+01 0.32740000000E+04 -0.17140889000E-03 -0.15591630000E-04 0.99999998519E+00 310 -0.76007680000E+00 0.12118230000E+01 0.32740000000E+04 0.32215726000E-03 0.62138069000E-03 0.99999975505E+00 311 -0.76007680000E+00 0.12118230000E+01 0.32740000000E+04 0.32215726000E-03 0.62138069000E-03 0.99999975505E+00 312 -0.60834630000E+00 0.37320250000E+00 0.32740000000E+04 0.24551197000E-03 -0.73757436000E-03 0.99999969785E+00 313 0.10845920000E+01 -0.13927680000E+00 0.32740000000E+04 -0.19684529000E-03 0.19227903000E-03 0.99999996214E+00 314 -0.34334350000E+00 0.14554140000E+01 0.32740000000E+04 0.24506528000E-03 0.47236248000E-04 0.99999996886E+00 315 -0.17849660000E+01 0.21596620000E+00 0.32740000000E+04 -0.23586629000E-03 -0.48103792000E-03 0.99999985648E+00 316 0.19727010000E+01 0.10009250000E+01 0.32740000000E+04 0.42130578000E-04 0.25864592000E-03 0.99999996566E+00 317 0.45472710000E+00 0.23826760000E+01 0.32740000000E+04 -0.12380403000E-03 0.42507111000E-03 0.99999990199E+00 318 -0.64529400000E-01 0.17133910000E+00 0.32740000000E+04 0.24568985000E-03 0.10428959000E-03 0.99999996438E+00 319 0.15929650000E+01 -0.20325370000E+00 0.32740000000E+04 0.71691565000E-03 -0.17257745000E-03 0.99999972812E+00 320 0.12774580000E+01 0.17737670000E+01 0.32740000000E+04 0.10028770000E-03 -0.10969481000E-03 0.99999998895E+00 321 -0.17609020000E+01 -0.92012750000E+00 0.32740000000E+04 -0.43570899000E-03 -0.15922595000E-03 0.99999989240E+00 322 -0.10301140000E+01 0.65835930000E+00 0.32740000000E+04 -0.26702817000E-03 0.66144938000E-04 0.99999996216E+00 323 -0.14401390000E+01 0.94775620000E+00 0.32740000000E+04 -0.25934208000E-03 -0.46753831000E-03 0.99999985707E+00 324 0.57539020000E+00 0.20013010000E+01 0.32740000000E+04 0.22243788000E-03 0.61943232000E-04 0.99999997334E+00 325 -0.41907290000E+00 0.75288290000E+00 0.32740000000E+04 0.28333135000E-03 0.14672459000E-03 0.99999994910E+00 326 -0.38259980000E-01 0.18900660000E+01 0.32740000000E+04 -0.15120101000E-03 -0.91614747000E-04 0.99999998437E+00 327 -0.38259980000E-01 0.18900660000E+01 0.32740000000E+04 -0.15120101000E-03 -0.91614747000E-04 0.99999998437E+00 328 -0.23380410000E+00 0.27810540000E+01 0.32740000000E+04 0.11634001000E-03 0.71038958000E-04 0.99999999071E+00 329 -0.15693230000E+01 -0.66661150000E+00 0.32740000000E+04 -0.30559015000E-04 -0.42869642000E-03 0.99999990764E+00 330 0.14596510000E+01 0.13083540000E+01 0.32740000000E+04 0.72608906000E-04 -0.11819116000E-03 0.99999999038E+00 331 -0.15915880000E+01 -0.96345170000E+00 0.32740000000E+04 -0.99839941000E-04 -0.25739032000E-03 0.99999996189E+00 332 0.70882400000E+00 0.89281000000E+00 0.32740000000E+04 0.93195813000E-04 -0.18100832000E-03 0.99999997928E+00 333 -0.15506530000E+01 -0.64582680000E+00 0.32740000000E+04 -0.12239109000E-03 -0.11719975000E-03 0.99999998564E+00 334 -0.14860000000E+01 0.53302370000E+00 0.32740000000E+04 0.30025878000E-04 0.83583669000E-04 0.99999999606E+00 335 0.76201400000E+00 -0.11338270000E+01 0.32740000000E+04 -0.34361004000E-03 0.55153790000E-03 0.99999978887E+00 336 -0.96471890000E+00 0.17873560000E+00 0.32740000000E+04 -0.17804613000E-03 -0.45496962000E-03 0.99999988065E+00 337 -0.29447080000E+01 0.36812000000E+00 0.32740000000E+04 0.29029423000E-04 -0.23371313000E-03 0.99999997227E+00 338 -0.12446170000E+01 0.18110930000E+01 0.32740000000E+04 0.14658659000E-03 0.23553219000E-03 0.99999996152E+00 339 0.23511110000E+00 0.17551960000E+01 0.32740000000E+04 -0.18264457000E-03 -0.20831705000E-04 0.99999998310E+00 340 -0.10261540000E+01 -0.52925970000E-01 0.32740000000E+04 0.23814455000E-03 -0.10867876000E-03 0.99999996574E+00 341 0.10757080000E+01 -0.13030220000E+01 0.32740000000E+04 0.64726564000E-05 0.20932901000E-03 0.99999997807E+00 342 -0.27074470000E+01 0.96930060000E+00 0.32740000000E+04 0.52560563000E-03 -0.11265985000E-03 0.99999985552E+00 343 -0.19927920000E+00 0.26572950000E+00 0.32740000000E+04 0.86574357000E-04 -0.26694161000E-03 0.99999996062E+00 344 -0.23990320000E+01 0.17103790000E+00 0.32740000000E+04 -0.36188346000E-03 -0.38915596000E-03 0.99999985880E+00 345 0.96286460000E+00 0.19890490000E+01 0.32740000000E+04 -0.17007964000E-04 0.47689464000E-03 0.99999988614E+00 346 -0.15355250000E+01 0.14260210000E+01 0.32740000000E+04 -0.54885379000E-04 0.54075167000E-03 0.99999985229E+00 347 -0.37750260000E+00 0.24503550000E+01 0.32740000000E+04 0.70724709000E-04 0.55402350000E-04 0.99999999596E+00 348 0.18119690000E+01 0.84356990000E+00 0.32740000000E+04 0.10343092000E-03 0.69972593000E-04 0.99999999220E+00 349 -0.16723590000E+01 0.26130940000E+01 0.32740000000E+04 -0.19901847000E-03 -0.35217210000E-04 0.99999997958E+00 350 -0.12214350000E+01 0.23810863000E-02 0.32740000000E+04 -0.42410320000E-03 -0.49888378000E-03 0.99999978563E+00 351 0.22207960000E+01 0.55983880000E+00 0.32740000000E+04 0.36008580000E-03 0.77013625000E-04 0.99999993220E+00 352 -0.22086310000E+00 0.14643150000E+00 0.32740000000E+04 -0.29359342000E-03 -0.77069133000E-04 0.99999995393E+00 353 -0.11705400000E+01 0.19274330000E+00 0.32740000000E+04 0.38674320000E-04 -0.17995732000E-03 0.99999998306E+00 354 -0.24372170000E+01 0.38989990000E+00 0.32740000000E+04 0.83608546000E-04 -0.37112212000E-03 0.99999992764E+00 355 -0.24372170000E+01 0.38989990000E+00 0.32740000000E+04 0.83608546000E-04 -0.37112212000E-03 0.99999992764E+00 356 -0.36720330000E+00 0.58267540000E+00 0.32740000000E+04 0.11845185000E-03 -0.21431906000E-03 0.99999997002E+00 357 -0.15889420000E+00 0.16493100000E+01 0.32740000000E+04 0.26414241000E-03 -0.75030868000E-04 0.99999996230E+00 358 -0.18687670000E+01 0.66427140000E+00 0.32740000000E+04 -0.51908649000E-03 -0.20952112000E-03 0.99999984333E+00 359 -0.39971890000E+00 0.19972090000E+01 0.32740000000E+04 0.55191351000E-04 -0.19053363000E-04 0.99999999830E+00 360 0.47246450000E+00 -0.11146460000E+01 0.32740000000E+04 0.11457860000E-03 -0.64640702000E-03 0.99999978451E+00 361 -0.90715810000E+00 0.10045270000E+01 0.32740000000E+04 0.15606040000E-03 -0.61291634000E-04 0.99999998594E+00 362 -0.92972890000E+00 0.20312450000E+01 0.32740000000E+04 -0.37517853000E-03 0.27864054000E-03 0.99999989080E+00 363 0.16090320000E+01 0.13646720000E+01 0.32740000000E+04 0.31705044000E-03 0.11577780000E-03 0.99999994304E+00 364 -0.24630950000E+01 -0.55003920000E+00 0.32740000000E+04 0.10803414000E-03 0.66837893000E-04 0.99999999193E+00 365 -0.12948450000E+01 -0.10251920000E+01 0.32740000000E+04 0.16229606000E-03 -0.35929546000E-03 0.99999992228E+00 366 -0.66168980000E+00 0.93568570000E+00 0.32740000000E+04 -0.34659967000E-03 -0.20385504000E-03 0.99999991916E+00 367 -0.66168980000E+00 0.93568570000E+00 0.32740000000E+04 -0.34659967000E-03 -0.20385504000E-03 0.99999991916E+00 368 -0.13546630000E+01 -0.15922440000E+00 0.32740000000E+04 0.12441845000E-03 -0.94677882000E-04 0.99999998778E+00 369 -0.21653180000E+01 0.23218190000E+01 0.32740000000E+04 -0.21785450000E-03 0.35432581000E-03 0.99999991350E+00 370 -0.28766670000E+00 0.81307350000E+00 0.32740000000E+04 0.21779444000E-03 0.36759369000E-03 0.99999990872E+00 371 -0.38678500000E+00 0.98285720000E+00 0.32740000000E+04 0.65661978000E-03 -0.52211723000E-04 0.99999978306E+00 372 -0.37360700000E+00 0.12625720000E+01 0.32740000000E+04 0.35794277000E-04 0.34970995000E-04 0.99999999875E+00 373 -0.13586050000E+01 0.17116790000E+01 0.32740000000E+04 0.26261801000E-03 0.28913206000E-03 0.99999992372E+00 374 -0.75157580000E+00 0.49062500000E+00 0.32740000000E+04 -0.17215460000E-03 0.88269255000E-04 0.99999998129E+00 375 0.11544390000E+01 0.71977030000E+00 0.32740000000E+04 0.27422060000E-03 0.38853413000E-03 0.99999988692E+00 376 -0.29741510000E+00 0.11845390000E+01 0.32740000000E+04 0.13771439000E-03 -0.28617634000E-03 0.99999994957E+00 377 -0.49525650000E+00 0.13625390000E+01 0.32740000000E+04 0.24523769000E-03 -0.37969614000E-03 0.99999989784E+00 378 -0.49525650000E+00 0.13625390000E+01 0.32740000000E+04 0.24523769000E-03 -0.37969614000E-03 0.99999989784E+00 379 -0.19608470000E+01 -0.14814770000E+01 0.32740000000E+04 -0.16176762000E-03 -0.24230254000E-03 0.99999995756E+00 380 -0.16451250000E+01 0.15095240000E+01 0.32740000000E+04 0.48025206000E-03 -0.49008685000E-03 0.99999976459E+00 381 -0.17185210000E+01 0.12996660000E+01 0.32740000000E+04 0.12015805000E-02 -0.40622943000E-03 0.99999919559E+00 382 0.25361530000E+01 0.89104100000E+00 0.32740000000E+04 0.85093960000E-03 0.13738459000E-03 0.99999962851E+00 383 -0.16250430000E+01 0.12026190000E+01 0.32740000000E+04 -0.31132855000E-04 -0.18408780000E-04 0.99999999935E+00 384 0.10595810000E+01 0.11878200000E+00 0.32740000000E+04 0.49159302000E-04 -0.11747787000E-03 0.99999999189E+00 385 -0.17112240000E+01 0.11648450000E+01 0.32740000000E+04 -0.33781287000E-03 0.35330956000E-03 0.99999988053E+00 386 0.17036430000E+00 0.98654040000E+00 0.32740000000E+04 -0.31219872000E-04 -0.81729209000E-04 0.99999999617E+00 387 0.27110830000E+01 0.19285090000E+01 0.32740000000E+04 0.49111282000E-03 0.44957415000E-04 0.99999987839E+00 388 -0.20982430000E+01 -0.70654010000E+00 0.32740000000E+04 -0.49057807000E-03 0.55266984000E-04 0.99999987814E+00 389 0.66517430000E+00 0.16895690000E+01 0.32740000000E+04 0.82421897000E-03 -0.47067530000E-04 0.99999965922E+00 390 -0.49725800000E+00 0.49736320000E+00 0.32740000000E+04 0.28710373000E-03 0.69254113000E-03 0.99999971898E+00 391 -0.18094880000E+01 0.17654280000E+01 0.32740000000E+04 -0.80858350000E-04 0.13161860000E-03 0.99999998807E+00 392 -0.68765120000E+00 -0.89749720000E-01 0.32740000000E+04 -0.43529156000E-03 -0.45848746000E-03 0.99999980016E+00 393 -0.68765120000E+00 -0.89749720000E-01 0.32740000000E+04 -0.43529156000E-03 -0.45848746000E-03 0.99999980016E+00 394 0.37867860000E+00 -0.81636160000E+00 0.32740000000E+04 0.97601158000E-04 -0.62741229000E-03 0.99999979841E+00 395 -0.62560090000E+00 -0.15017640000E+01 0.32740000000E+04 -0.52807608000E-03 0.18022407000E-04 0.99999986041E+00 396 0.15840570000E+01 0.20444060000E+01 0.32740000000E+04 0.41017108000E-03 -0.56055342000E-04 0.99999991431E+00 397 -0.81952510000E+00 -0.46374420000E-01 0.32740000000E+04 0.25949997000E-03 -0.41432516000E-03 0.99999988050E+00 398 -0.53648840000E+00 0.10040720000E+01 0.32740000000E+04 0.20754778000E-03 0.15260273000E-03 0.99999996682E+00 399 -0.46042190000E+00 0.12560010000E+01 0.32740000000E+04 0.24445652000E-03 -0.95165444000E-04 0.99999996559E+00 400 0.64239580000E+00 0.24758110000E+01 0.32740000000E+04 0.23652520000E-03 -0.84779858000E-04 0.99999996843E+00 401 -0.27458860000E+01 0.25097200000E+01 0.32740000000E+04 -0.87160552000E-04 0.10220139000E-04 0.99999999615E+00 402 -0.25445180000E+01 0.72196030000E+00 0.32740000000E+04 -0.21433916000E-03 -0.18551666000E-03 0.99999995982E+00 403 -0.13765120000E+01 0.27483740000E+01 0.32740000000E+04 -0.61547337000E-03 0.14053659000E-03 0.99999980072E+00 404 -0.25694940000E+01 -0.11685320000E+00 0.32740000000E+04 -0.75987395000E-04 -0.72104718000E-04 0.99999999451E+00 405 -0.15889430000E+01 -0.75059800000E+00 0.32740000000E+04 -0.56108336000E-04 -0.18865685000E-03 0.99999998063E+00 406 -0.15889430000E+01 -0.75059800000E+00 0.32740000000E+04 -0.56108336000E-04 -0.18865685000E-03 0.99999998063E+00 407 -0.62173510000E-01 0.20455440000E+01 0.32740000000E+04 -0.42339280000E-03 -0.42023923000E-04 0.99999990949E+00 408 0.97423440000E+00 0.17304360000E+01 0.32740000000E+04 0.34019840000E-03 -0.18933172000E-03 0.99999992421E+00 409 -0.51493650000E+00 0.16343020000E+01 0.32740000000E+04 -0.16060128000E-03 0.62888930000E-05 0.99999998708E+00 410 -0.17437650000E-01 0.16063570000E+01 0.32740000000E+04 0.43011399000E-03 0.48607858000E-03 0.99999978936E+00 411 -0.74419210000E+00 0.18253990000E+01 0.32740000000E+04 -0.29393253000E-03 0.29330049000E-03 0.99999991379E+00 412 0.78393820000E+00 0.17017120000E+00 0.32740000000E+04 0.38502883000E-04 0.25843710000E-03 0.99999996586E+00 413 -0.90430890000E+00 0.23497780000E+00 0.32740000000E+04 -0.10410110000E-02 -0.31172461000E-03 0.99999940956E+00 414 -0.56975610000E+00 -0.51781130000E+00 0.32740000000E+04 0.83384046000E-04 0.62330822000E-04 0.99999999458E+00 415 0.34615240000E+00 0.11177060000E+01 0.32740000000E+04 0.16061407000E-03 -0.30009315000E-03 0.99999994207E+00 416 0.16710900000E+00 0.19148720000E+01 0.32740000000E+04 0.46770860000E-03 -0.25131914000E-03 0.99999985904E+00 417 0.16710900000E+00 0.19148720000E+01 0.32740000000E+04 0.46770860000E-03 -0.25131914000E-03 0.99999985904E+00 418 0.93954520000E+00 0.15267710000E+01 0.32740000000E+04 0.26893217000E-03 -0.64645479000E-04 0.99999996175E+00 419 0.14457160000E+01 0.95105340000E+00 0.32740000000E+04 0.34734950000E-03 0.19587149000E-03 0.99999992049E+00 420 0.31191830000E+00 0.28171370000E+01 0.32740000000E+04 0.10536062000E-02 -0.23855618000E-03 0.99999941650E+00 421 -0.19521210000E+01 0.11121780000E+01 0.32740000000E+04 -0.38945730000E-03 0.35500099000E-03 0.99999986115E+00 422 -0.39699580000E-01 0.19147350000E+01 0.32740000000E+04 0.21890686000E-03 0.30805578000E-03 0.99999992859E+00 423 -0.11762250000E+00 0.25129940000E+01 0.32740000000E+04 0.10748862000E-03 -0.58999978000E-03 0.99999982017E+00 424 -0.61439960000E+00 -0.22868710000E+00 0.32740000000E+04 0.23840182000E-03 -0.78492640000E-05 0.99999997155E+00 425 -0.11064380000E+01 0.68051880000E+00 0.32740000000E+04 -0.53916356000E-04 -0.92458795000E-04 0.99999999427E+00 426 -0.13921440000E+01 0.10822360000E+01 0.32740000000E+04 0.39261915000E-04 -0.49217260000E-05 0.99999999922E+00 427 -0.13764390000E+01 0.19149290000E+01 0.32740000000E+04 -0.15124853000E-03 0.38018732000E-03 0.99999991629E+00 428 -0.15354740000E+01 -0.50163300000E+00 0.32740000000E+04 -0.12309334000E-03 -0.30290935000E-03 0.99999994655E+00 429 -0.12215690000E+01 0.48590080000E+00 0.32740000000E+04 0.17288084000E-03 0.97846838000E-04 0.99999998027E+00 430 -0.12215690000E+01 0.48590080000E+00 0.32740000000E+04 0.17288084000E-03 0.97846838000E-04 0.99999998027E+00 431 -0.10632020000E+01 0.64212210000E+00 0.32740000000E+04 -0.38604962000E-03 -0.32074362000E-03 0.99999987404E+00 432 0.17617940000E+01 0.11996870000E+01 0.32740000000E+04 -0.33415519000E-03 -0.12017482000E-03 0.99999993695E+00 433 -0.23012650000E+01 -0.22925430000E+00 0.32740000000E+04 -0.46505898000E-04 0.16622887000E-03 0.99999998510E+00 434 0.14832550000E+01 0.20197160000E+01 0.32740000000E+04 -0.57726133000E-05 -0.40506016000E-03 0.99999991795E+00 435 -0.60353330000E+00 -0.10381960000E+01 0.32740000000E+04 0.80739835000E-03 -0.37568042000E-03 0.99999960349E+00 436 -0.12040240000E+01 -0.80219020000E+00 0.32740000000E+04 -0.14680330000E-03 -0.65097229000E-04 0.99999998711E+00 437 0.26584480000E+00 0.17921940000E+01 0.32740000000E+04 -0.82224596000E-03 -0.29036036000E-03 0.99999961980E+00 438 0.18384540000E+01 -0.11374300000E+01 0.32740000000E+04 0.69537078000E-03 -0.23246562000E-03 0.99999973121E+00 439 0.28932030000E+00 -0.36195060000E+00 0.32740000000E+04 0.95435345000E-04 0.41896430000E-04 0.99999999457E+00 440 -0.20748700000E+01 -0.23460170000E+00 0.32740000000E+04 0.29461315000E-04 -0.79936604000E-03 0.99999968007E+00 441 -0.12823850000E+01 0.32949200000E+00 0.32740000000E+04 0.68743079000E-03 -0.74042194000E-03 0.99999948961E+00 442 0.33567490000E+00 0.36957420000E+00 0.32740000000E+04 -0.28754343000E-03 -0.37596282000E-03 0.99999988799E+00 443 -0.51161000000E-01 0.11458260000E+01 0.32740000000E+04 0.61075320000E-04 -0.15148023000E-03 0.99999998666E+00 444 0.10847400000E+01 0.80415450000E+00 0.32740000000E+04 -0.86592547000E-04 0.22522482000E-03 0.99999997089E+00 445 0.72410120000E-01 0.23670280000E+01 0.32740000000E+04 0.98349687000E-04 0.47276105000E-03 0.99999988341E+00 446 -0.43967160000E+00 0.18001350000E+01 0.32740000000E+04 -0.44179298000E-04 -0.14091286000E-03 0.99999998910E+00 447 -0.23085260000E+01 -0.89614300000E+00 0.32740000000E+04 0.10863115000E-02 -0.12517527000E-03 0.99999940213E+00 448 -0.11443470000E+00 0.96369920000E+00 0.32740000000E+04 0.35463457000E-03 0.84002921000E-03 0.99999958429E+00 449 -0.11443470000E+00 0.96369920000E+00 0.32740000000E+04 0.35463457000E-03 0.84002921000E-03 0.99999958429E+00 450 0.16570210000E+00 0.19231630000E+01 0.32740000000E+04 -0.11589353000E-03 0.26869433000E-03 0.99999995719E+00 451 -0.73118920000E+00 -0.31086080000E+00 0.32740000000E+04 0.20028312000E-03 0.12346283000E-03 0.99999997232E+00 452 -0.22777660000E+00 0.85104160000E+00 0.32740000000E+04 0.23458424000E-03 0.83457824000E-03 0.99999962422E+00 453 -0.26666760000E+01 -0.73488140000E+00 0.32740000000E+04 -0.10755530000E-03 -0.96822550000E-05 0.99999999417E+00 454 -0.13344840000E+01 -0.77173233000E-02 0.32740000000E+04 0.25832557000E-03 -0.69450738000E-03 0.99999972546E+00 455 -0.24937140000E+01 -0.77443470000E+00 0.32740000000E+04 -0.22772548000E-03 0.10469695000E-04 0.99999997402E+00 456 -0.61315590000E+00 0.12300200000E+01 0.32740000000E+04 -0.31244132000E-03 -0.54927982000E-05 0.99999995118E+00 457 -0.60470350000E+00 0.19593760000E+01 0.32740000000E+04 0.11202919000E-03 0.26691385000E-03 0.99999995810E+00 458 -0.13640010000E+01 0.14931350000E+01 0.32740000000E+04 0.49362410000E-04 0.15550901000E-03 0.99999998669E+00 459 -0.19358800000E+01 0.13631720000E+01 0.32740000000E+04 0.39587956000E-03 0.68979272000E-04 0.99999991926E+00 460 0.15789880000E+01 0.19226710000E+01 0.32740000000E+04 -0.39932632000E-03 -0.13205775000E-02 0.99999904831E+00 461 -0.14679560000E+01 -0.47696190000E+00 0.32740000000E+04 0.47780201000E-03 0.74549793000E-03 0.99999960797E+00 462 -0.61341320000E+00 -0.88399770000E+00 0.32740000000E+04 0.43885416000E-03 -0.38035880000E-04 0.99999990298E+00 463 -0.24792750000E+01 0.11048430000E+00 0.32740000000E+04 -0.35298898000E-03 0.78439924000E-04 0.99999993462E+00 464 -0.60079980000E+00 0.15853150000E+01 0.32740000000E+04 -0.52355276000E-03 -0.35605583000E-04 0.99999986231E+00 465 -0.12181350000E+01 -0.23770360000E+00 0.32740000000E+04 -0.25444225000E-03 0.45067786000E-05 0.99999996762E+00 466 -0.24487820000E+01 0.78970830000E+00 0.32740000000E+04 -0.88716246000E-04 0.51474583000E-03 0.99999986358E+00 467 0.86673580000E+00 0.16546110000E+01 0.32740000000E+04 0.36399774000E-03 0.43599852000E-03 0.99999983871E+00 468 -0.64953990000E+00 0.25437670000E+00 0.32740000000E+04 -0.31386112000E-03 -0.26732929000E-04 0.99999995039E+00 469 -0.24853450000E+01 -0.28813490000E+00 0.32740000000E+04 -0.20141744000E-03 0.20570567000E-03 0.99999995856E+00 470 0.90732330000E+00 0.11637850000E+01 0.32740000000E+04 -0.32162116000E-03 -0.58450690000E-03 0.99999977746E+00 471 0.90732330000E+00 0.11637850000E+01 0.32740000000E+04 -0.32162116000E-03 -0.58450690000E-03 0.99999977746E+00 472 -0.95819210000E+00 0.23049720000E+01 0.32740000000E+04 -0.14172314000E-03 0.24480376000E-03 0.99999995999E+00 473 -0.21148500000E+01 0.10240370000E+01 0.32740000000E+04 -0.32591826000E-03 0.54578049000E-04 0.99999994540E+00 474 0.24319780000E+01 0.33872430000E+00 0.32740000000E+04 0.44617546000E-03 0.32422494000E-03 0.99999984790E+00 475 -0.22120560000E+01 0.14159610000E+01 0.32740000000E+04 -0.60302502000E-03 0.35999398000E-03 0.99999975338E+00 476 0.14449050000E+01 0.30253840000E+01 0.32740000000E+04 0.51939656000E-03 0.11507365000E-03 0.99999985849E+00 477 -0.17877900000E+00 -0.12637410000E+01 0.32740000000E+04 -0.24137989000E-03 0.76424080000E-03 0.99999967884E+00 478 -0.13811130000E+01 0.12874610000E+01 0.32740000000E+04 0.14551902000E-03 -0.12894312000E-04 0.99999998933E+00 479 0.32419420000E+00 0.22558260000E+01 0.32740000000E+04 0.46623285000E-04 0.10889040000E-03 0.99999999298E+00 480 0.32419420000E+00 0.22558260000E+01 0.32740000000E+04 0.46623285000E-04 0.10889040000E-03 0.99999999298E+00 481 -0.24652260000E+01 0.15616060000E+01 0.32740000000E+04 0.34694406000E-03 -0.52142812000E-04 0.99999993846E+00 482 0.43454540000E+00 0.43793180000E-01 0.32740000000E+04 0.28388403000E-03 0.16589115000E-03 0.99999994594E+00 483 0.82661560000E+00 0.92070840000E+00 0.32740000000E+04 -0.24155062000E-03 0.12162232000E-03 0.99999996343E+00 484 -0.33667350000E+00 0.66907710000E+00 0.32740000000E+04 0.27055136000E-03 0.56260629000E-04 0.99999996182E+00 485 -0.15563820000E+01 0.24194200000E+01 0.32740000000E+04 -0.11848548000E-03 0.35704797000E-03 0.99999992924E+00 486 -0.14203610000E+01 0.14703800000E+01 0.32740000000E+04 -0.46354704000E-04 -0.29626972000E-03 0.99999995504E+00 487 -0.25869740000E+01 0.34902160000E+00 0.32740000000E+04 -0.52152405000E-03 -0.27697266000E-03 0.99999982565E+00 488 -0.76134510000E+00 -0.73131330000E+00 0.32740000000E+04 -0.20118247000E-04 -0.47595816000E-03 0.99999988653E+00 489 0.23432220000E+01 -0.50449710000E+00 0.32740000000E+04 0.17492846000E-03 -0.45513251000E-03 0.99999988113E+00 490 -0.96968850000E+00 -0.37115320000E+00 0.32740000000E+04 0.15569480000E-04 -0.45262984000E-03 0.99999989744E+00 491 -0.23269210000E+01 0.10398760000E+01 0.32740000000E+04 -0.60016846000E-04 0.33016352000E-03 0.99999994370E+00 492 -0.11633480000E+01 0.26313080000E+00 0.32740000000E+04 -0.73573387000E-05 0.64174856000E-04 0.99999999791E+00 493 -0.22598480000E+01 0.61617730000E+00 0.32740000000E+04 0.56595622000E-04 0.22161548000E-03 0.99999997384E+00 494 -0.23224800000E+01 -0.95037100000E+00 0.32740000000E+04 -0.97102820000E-04 -0.91575406000E-04 0.99999999109E+00 495 -0.22949690000E+01 -0.79775820000E+00 0.32740000000E+04 0.63244195000E-04 -0.95294286000E-04 0.99999999346E+00 496 -0.13607330000E+01 0.81899470000E+00 0.32740000000E+04 -0.50811970000E-03 -0.45657641000E-03 0.99999976668E+00 497 -0.12523320000E+01 0.12700480000E+01 0.32740000000E+04 -0.49290538000E-04 0.15187750000E-03 0.99999998725E+00 498 -0.13666490000E+01 -0.47556500000E+00 0.32740000000E+04 0.39981273000E-05 -0.34347231000E-04 0.99999999940E+00 499 0.14670960000E+01 0.11823470000E+01 0.32740000000E+04 0.38064791000E-04 -0.12305024000E-03 0.99999999170E+00 500 -0.49703280000E+00 0.24282020000E+01 0.32740000000E+04 0.18628940000E-03 -0.24949702000E-04 0.99999998234E+00 501 0.26776690000E+01 0.82981850000E+00 0.32740000000E+04 0.79069671000E-03 -0.16515337000E-03 0.99999967376E+00 502 0.10647610000E+01 0.33082320000E+00 0.32740000000E+04 -0.18788379000E-03 -0.15921515000E-03 0.99999996968E+00 503 -0.51196750000E+00 0.58249860000E+00 0.32740000000E+04 0.40310808000E-03 0.14370210000E-03 0.99999990843E+00 504 -0.15778910000E+01 -0.13514200000E+01 0.32740000000E+04 0.55680791000E-03 -0.41377902000E-03 0.99999975938E+00 505 -0.22776250000E+01 0.45704760000E+00 0.32740000000E+04 -0.49094597000E-04 0.44750877000E-05 0.99999999878E+00 506 0.81298700000E+00 0.16693570000E+01 0.32740000000E+04 0.36356336000E-03 0.28207188000E-03 0.99999989413E+00 507 -0.47733040000E+00 0.82527170000E+00 0.32740000000E+04 -0.11184522000E-03 -0.13681952000E-03 0.99999998439E+00 508 -0.14616280000E+01 0.15074600000E+01 0.32740000000E+04 0.21874133000E-03 0.10400492000E-03 0.99999997067E+00 509 0.14032690000E+01 0.48496530000E+00 0.32740000000E+04 0.27790191000E-04 -0.42561249000E-04 0.99999999871E+00 510 -0.28374360000E+01 0.96726300000E+00 0.32740000000E+04 -0.18370363000E-03 0.19294165000E-03 0.99999996451E+00 511 -0.10934350000E+01 0.15281440000E+01 0.32740000000E+04 0.95662821000E-04 0.56699920000E-03 0.99999983468E+00 512 0.33222910000E+00 -0.14869800000E+00 0.32740000000E+04 -0.58081721000E-04 -0.22816284000E-03 0.99999997228E+00 513 0.15335060000E+01 0.17797820000E+01 0.32740000000E+04 -0.13984249000E-03 -0.37305828000E-03 0.99999992064E+00 514 -0.46489980000E+00 0.11930050000E+01 0.32740000000E+04 0.14122993000E-03 -0.28687343000E-03 0.99999994888E+00 515 -0.90050740000E+00 0.26935230000E+01 0.32740000000E+04 -0.25685050000E-03 0.39492716000E-03 0.99999988903E+00 516 0.16368820000E+01 0.77228720000E+00 0.32740000000E+04 0.44096337000E-03 0.32296948000E-03 0.99999985062E+00 517 -0.94425410000E+00 0.15150050000E+01 0.32740000000E+04 -0.21651952000E-05 0.48322033000E-03 0.99999988325E+00 518 -0.94425410000E+00 0.15150050000E+01 0.32740000000E+04 -0.21651952000E-05 0.48322033000E-03 0.99999988325E+00 519 0.66697620000E+00 0.15501990000E+01 0.32740000000E+04 0.47014219000E-04 0.37804708000E-04 0.99999999818E+00 520 -0.17337080000E+01 0.26384200000E+01 0.32740000000E+04 -0.20997107000E-03 0.18836757000E-03 0.99999996021E+00 521 0.41849180000E+00 0.22990030000E+01 0.32740000000E+04 -0.24505120000E-03 -0.84896856000E-04 0.99999996637E+00 522 0.19784340000E+01 0.23259470000E+01 0.32740000000E+04 0.41105831000E-03 -0.34347235000E-04 0.99999991493E+00 523 -0.19745720000E+01 0.55977950000E+00 0.32740000000E+04 0.47970047000E-06 0.11265878000E-04 0.99999999994E+00 524 -0.28973110000E+00 0.20949440000E+01 0.32740000000E+04 -0.40802860000E-03 0.26552379000E-03 0.99999988150E+00 525 -0.88745580000E+00 0.18148300000E+01 0.32740000000E+04 0.12959293000E-03 0.23409462000E-03 0.99999996420E+00 526 0.38351610000E-01 0.18212090000E+01 0.32740000000E+04 0.27602873000E-03 0.35272850000E-03 0.99999989970E+00 527 -0.20651700000E+01 -0.16764400000E+00 0.32740000000E+04 -0.11060348000E-03 -0.55421871000E-03 0.99999984030E+00 528 -0.31714730000E+00 -0.80502740000E+00 0.32740000000E+04 0.29904681000E-03 -0.26680159000E-03 0.99999991969E+00 529 -0.14160360000E+01 0.17390900000E+01 0.32740000000E+04 0.14461707000E-04 0.62400206000E-04 0.99999999795E+00 530 0.30671940000E+00 0.78168940000E+00 0.32740000000E+04 -0.37627487000E-03 -0.68741589000E-03 0.99999969294E+00 531 0.12923800000E+01 -0.80756270000E+00 0.32740000000E+04 0.30366358000E-03 0.58359288000E-04 0.99999995219E+00 532 -0.21342560000E+01 -0.54182210000E+00 0.32740000000E+04 -0.27014516000E-03 -0.60114154000E-03 0.99999978283E+00 533 -0.21448130000E+01 0.15855980000E+01 0.32740000000E+04 0.35571994000E-03 0.17416943000E-03 0.99999992156E+00 534 0.54836890000E+00 0.19737080000E+01 0.32740000000E+04 -0.12634459000E-03 -0.18013922000E-03 0.99999997579E+00 535 0.11795560000E+01 -0.10130140000E+01 0.32740000000E+04 0.44929935000E-03 -0.52306167000E-03 0.99999976227E+00 536 -0.16102940000E+01 0.15030930000E+01 0.32740000000E+04 -0.11595239000E-03 0.48418713000E-03 0.99999987606E+00 537 -0.80928520000E-01 0.84490580000E+00 0.32740000000E+04 0.17151528000E-03 -0.31924591000E-03 0.99999993433E+00 538 -0.80928520000E-01 0.84490580000E+00 0.32740000000E+04 0.17151528000E-03 -0.31924591000E-03 0.99999993433E+00 539 0.79048930000E+00 0.17613830000E+01 0.32740000000E+04 0.29200412000E-03 -0.30172776000E-03 0.99999991185E+00 540 -0.28631090000E+00 0.17701560000E+01 0.32740000000E+04 -0.36875630000E-03 -0.34588290000E-03 0.99999987219E+00 541 -0.22206230000E+01 0.26466790000E+00 0.32740000000E+04 -0.48283278000E-03 0.13162714000E-03 0.99999987477E+00 542 -0.24287430000E+01 -0.31681170000E+00 0.32740000000E+04 -0.34014633000E-06 -0.17385675000E-04 0.99999999985E+00 543 -0.19322330000E+01 -0.40982960000E+00 0.32740000000E+04 0.34043699000E-03 -0.88177449000E-05 0.99999994201E+00 544 -0.23229890000E+01 0.13162550000E+01 0.32740000000E+04 -0.48360875000E-03 -0.11006663000E-03 0.99999987700E+00 545 -0.13495170000E+01 0.49174290000E+00 0.32740000000E+04 -0.15810091000E-03 0.89169480000E-04 0.99999998353E+00 546 -0.20658150000E+01 -0.45540920000E+00 0.32740000000E+04 -0.17943002000E-03 0.39002541000E-03 0.99999990784E+00 547 -0.17852780000E+01 -0.24692340000E+00 0.32740000000E+04 0.13991170000E-03 0.37037331000E-03 0.99999992162E+00 548 -0.50204650000E+00 -0.29633020000E+00 0.32740000000E+04 0.63548672000E-04 -0.53746643000E-03 0.99999985355E+00 549 -0.37961470000E+00 0.49644440000E+00 0.32740000000E+04 0.17467361000E-03 -0.16454935000E-03 0.99999997121E+00 550 -0.25482690000E+01 0.20300900000E+01 0.32740000000E+04 -0.52730041000E-03 0.17008059000E-03 0.99999984651E+00 551 -0.25482690000E+01 0.20300900000E+01 0.32740000000E+04 -0.52730041000E-03 0.17008059000E-03 0.99999984651E+00 552 -0.19829240000E+01 -0.46878310000E+00 0.32740000000E+04 -0.44148746000E-04 -0.48573091000E-03 0.99999988106E+00 553 -0.14987090000E+01 0.47084350000E+00 0.32740000000E+04 -0.44620517000E-03 -0.14455910000E-03 0.99999989000E+00 554 -0.12242640000E+01 0.12996150000E+01 0.32740000000E+04 -0.30162578000E-03 -0.80982034000E-04 0.99999995123E+00 555 -0.15263610000E+01 0.11804010000E+00 0.32740000000E+04 0.26036950000E-03 0.11730659000E-03 0.99999995922E+00 556 -0.71620230000E-01 0.23167400000E+01 0.32740000000E+04 -0.39091779000E-03 0.22318453000E-03 0.99999989869E+00 557 -0.50599870000E+00 0.16634380000E+01 0.32740000000E+04 0.28535226000E-03 0.27391990000E-03 0.99999992177E+00 558 -0.24153060000E+01 0.25498950000E+01 0.32740000000E+04 -0.16533482000E-04 0.24584829000E-03 0.99999996964E+00 559 0.11685730000E+01 0.67145260000E+00 0.32740000000E+04 0.16456397000E-03 0.14721508000E-03 0.99999997562E+00 560 -0.59450570000E+00 -0.93414080000E+00 0.32740000000E+04 0.47955091000E-04 0.35280170000E-03 0.99999993662E+00 561 -0.20547980000E+01 -0.79747420000E+00 0.32740000000E+04 0.13459576000E-03 -0.12163199000E-03 0.99999998354E+00 562 -0.11283820000E+01 -0.95330190000E-01 0.32740000000E+04 0.28668102000E-03 -0.46879673000E-03 0.99999984902E+00 563 -0.91300560000E+00 0.31119770000E+00 0.32740000000E+04 0.19534047000E-03 -0.24470806000E-03 0.99999995098E+00 564 -0.15299980000E+01 0.24061080000E+00 0.32740000000E+04 -0.56740700000E-03 0.82995233000E-04 0.99999983558E+00 565 -0.10348560000E+01 0.66673770000E+00 0.32740000000E+04 0.46139667000E-04 0.68670153000E-04 0.99999999658E+00 566 0.92626110000E+00 0.83902890000E+00 0.32740000000E+04 0.57345722000E-03 -0.11548309000E-03 0.99999982891E+00 567 -0.38052770000E+00 0.53686640000E+00 0.32740000000E+04 0.10956969000E-03 0.15244888000E-03 0.99999998238E+00 568 -0.25001850000E+01 -0.59623320000E+00 0.32740000000E+04 -0.28214927000E-04 -0.10502149000E-03 0.99999999409E+00 569 0.26666350000E+01 0.10964130000E+01 0.32740000000E+04 0.93900642000E-04 -0.29279289000E-03 0.99999995273E+00 570 0.26666350000E+01 0.10964130000E+01 0.32740000000E+04 0.93900642000E-04 -0.29279289000E-03 0.99999995273E+00 571 -0.19290240000E+01 0.10122660000E+01 0.32740000000E+04 -0.25017469000E-03 0.12725900000E-03 0.99999996061E+00 572 -0.17169940000E+01 -0.44152990000E+00 0.32740000000E+04 0.79143269000E-04 -0.17001855000E-03 0.99999998242E+00 573 -0.25021090000E+01 0.59466220000E+00 0.32740000000E+04 0.21618847000E-04 -0.69868882000E-04 0.99999999733E+00 574 -0.46899090000E+00 -0.18173060000E+00 0.32740000000E+04 -0.25001628000E-03 0.68761263000E-04 0.99999996638E+00 575 0.42888800000E+00 -0.13896590000E+00 0.32740000000E+04 0.53473725000E-03 0.21205518000E-03 0.99999983454E+00 576 0.30051130000E+00 0.15298340000E+01 0.32740000000E+04 0.11257723000E-02 -0.62601932000E-04 0.99999936436E+00 577 -0.39101300000E-01 0.98698020000E+00 0.32740000000E+04 -0.21092168000E-04 -0.27225036000E-03 0.99999996272E+00 578 0.56737330000E+00 -0.39254900000E+00 0.32740000000E+04 0.45317525000E-03 -0.36507213000E-03 0.99999983068E+00 579 0.18057000000E+01 0.23990620000E+01 0.32740000000E+04 0.51219779000E-03 -0.24733974000E-04 0.99999986852E+00 580 -0.12607040000E+00 -0.96370650000E+00 0.32740000000E+04 -0.36237878000E-03 -0.30828538000E-04 0.99999993387E+00 581 -0.16073240000E+01 0.11022200000E+01 0.32740000000E+04 -0.45469706000E-03 0.17464349000E-03 0.99999988138E+00 582 -0.11337650000E+01 -0.10981140000E+01 0.32740000000E+04 -0.12462527000E-03 0.40008847000E-03 0.99999991220E+00 583 0.43343060000E+00 0.19951510000E+01 0.32740000000E+04 -0.31829893000E-03 0.26831590000E-03 0.99999991335E+00 584 -0.19890170000E+01 0.87125300000E-01 0.32740000000E+04 -0.50590414000E-03 -0.71525900000E-03 0.99999961623E+00 585 0.84045750000E+00 0.71044280000E+00 0.32740000000E+04 0.42818206000E-05 0.18445037000E-03 0.99999998298E+00 586 0.10352710000E+01 0.67277220000E+00 0.32740000000E+04 0.43343331000E-03 0.45660730000E-04 0.99999990503E+00 587 -0.12007010000E+01 0.93103400000E+00 0.32740000000E+04 0.76991149000E-04 0.13998029000E-03 0.99999998724E+00 588 -0.23345030000E+01 -0.59540010000E+00 0.32740000000E+04 -0.89741341000E-04 -0.69652975000E-03 0.99999975340E+00 589 -0.19362820000E+01 0.89871440000E-01 0.32740000000E+04 -0.13299490000E-03 -0.13376938000E-04 0.99999999107E+00 590 -0.22999020000E+00 0.74233900000E+00 0.32740000000E+04 -0.31928691000E-05 0.43615026000E-04 0.99999999904E+00 591 -0.91757790000E+00 0.52538420000E+00 0.32740000000E+04 -0.29450655000E-03 -0.16270926000E-03 0.99999994340E+00 592 0.17728070000E+01 0.38934550000E+00 0.32740000000E+04 0.57497859000E-03 -0.27390849000E-03 0.99999979719E+00 593 -0.17138520000E+01 0.11514280000E+01 0.32740000000E+04 -0.60386659000E-03 0.36385885000E-03 0.99999975148E+00 594 -0.12656180000E+01 0.14221380000E+01 0.32740000000E+04 -0.49845467000E-03 0.20404372000E-03 0.99999985495E+00 595 0.77380790000E+00 -0.11738610000E+01 0.32740000000E+04 0.10595205000E-02 0.78574143000E-04 0.99999943562E+00 596 -0.59464880000E+00 0.11095710000E+01 0.32740000000E+04 -0.16194940000E-03 0.29246492000E-03 0.99999994412E+00 597 0.96057940000E+00 0.81713490000E+00 0.32740000000E+04 -0.10054465000E-03 0.56065858000E-03 0.99999983778E+00 598 -0.15379870000E+01 -0.47038860000E+00 0.32740000000E+04 -0.41513171000E-03 0.42791180000E-04 0.99999991292E+00 599 -0.10873130000E+01 0.19344960000E+01 0.32740000000E+04 -0.10769000000E-03 -0.45876988000E-03 0.99999988897E+00 600 -0.10873130000E+01 0.19344960000E+01 0.32740000000E+04 -0.10769000000E-03 -0.45876988000E-03 0.99999988897E+00 601 -0.85566180000E+00 -0.22634940000E+00 0.32740000000E+04 0.19650518000E-03 0.13845411000E-03 0.99999997111E+00 602 0.27836323000E-02 0.18115240000E+01 0.32740000000E+04 -0.58571948000E-03 -0.95146424000E-04 0.99999982394E+00 603 -0.72600290000E+00 0.10958210000E+01 0.32740000000E+04 -0.12033604000E-03 -0.57088048000E-03 0.99999982981E+00 604 0.47559960000E+00 0.11448830000E+01 0.32740000000E+04 0.51829079000E-03 -0.73909038000E-03 0.99999959256E+00 605 -0.16939500000E+01 0.15882270000E+01 0.32740000000E+04 -0.17135334000E-03 -0.10585891000E-04 0.99999998526E+00 606 -0.15232140000E+01 0.20962870000E+01 0.32740000000E+04 -0.48662725000E-04 0.62322657000E-03 0.99999980461E+00 607 0.34527760000E+00 0.26515610000E+01 0.32740000000E+04 0.23427182000E-03 0.27934124000E-03 0.99999993354E+00 608 0.12650590000E+01 0.14565230000E+01 0.32740000000E+04 0.68202120000E-03 0.46564668000E-03 0.99999965901E+00 609 -0.23909840000E+00 -0.13968600000E+01 0.32740000000E+04 0.32968388000E-03 -0.13743158000E-03 0.99999993621E+00 610 0.14793740000E+00 0.91810340000E+00 0.32740000000E+04 0.43257661000E-03 0.98926423000E-04 0.99999990155E+00 611 -0.14061580000E+01 -0.18675960000E+01 0.32740000000E+04 -0.34692261000E-03 -0.63513203000E-05 0.99999993980E+00 612 0.71016170000E+00 0.91026840000E+00 0.32740000000E+04 0.30676959000E-03 0.72306982000E-04 0.99999995033E+00 613 -0.25570690000E+01 0.10348840000E+01 0.32740000000E+04 -0.25381439000E-03 0.17463487000E-03 0.99999995254E+00 614 -0.11987480000E+01 0.60522350000E+00 0.32740000000E+04 0.21391251000E-03 0.69508865000E-03 0.99999973555E+00 615 -0.11987480000E+01 0.60522350000E+00 0.32740000000E+04 0.21391251000E-03 0.69508865000E-03 0.99999973555E+00 616 -0.21005410000E+00 0.18189030000E+00 0.32740000000E+04 -0.31322864000E-03 -0.10405041000E-03 0.99999994553E+00 617 -0.71575390000E+00 0.17396460000E+01 0.32740000000E+04 -0.32248843000E-03 0.15145163000E-03 0.99999993653E+00 618 -0.14240210000E+01 0.10232870000E+01 0.32740000000E+04 0.34619756000E-04 -0.13795533000E-03 0.99999998988E+00 619 0.11356480000E+01 0.36862610000E+00 0.32740000000E+04 0.11358139000E-03 -0.17204735000E-03 0.99999997875E+00 620 -0.18547250000E+01 0.90456830000E+00 0.32740000000E+04 0.30904313000E-03 0.39769677000E-03 0.99999987316E+00 621 -0.74696290000E+00 0.65275110000E+00 0.32740000000E+04 -0.35272617000E-03 0.25468451000E-03 0.99999990536E+00 622 -0.40131660000E-01 0.66434160000E+00 0.32740000000E+04 0.77170884000E-03 -0.30772091000E-03 0.99999965489E+00 623 -0.42413400000E-01 0.14762320000E+00 0.32740000000E+04 -0.16106557000E-03 0.38596053000E-03 0.99999991255E+00 624 0.15619190000E+00 -0.85759200000E+00 0.32740000000E+04 -0.46826925000E-03 0.13872284000E-03 0.99999988074E+00 625 0.15619190000E+00 -0.85759200000E+00 0.32740000000E+04 -0.46826925000E-03 0.13872284000E-03 0.99999988074E+00 626 -0.37699140000E-01 0.63427900000E+00 0.32740000000E+04 0.19791680000E-03 0.28912080000E-03 0.99999993862E+00 627 -0.61837920000E-01 0.39907150000E+00 0.32740000000E+04 0.12264178000E-03 -0.72967792000E-04 0.99999998982E+00 628 -0.11864400000E+01 0.29931290000E+00 0.32740000000E+04 0.16931100000E-03 -0.16613860000E-03 0.99999997187E+00 629 -0.15541320000E+01 0.35613960000E+00 0.32740000000E+04 -0.21843720000E-03 0.33680678000E-03 0.99999991942E+00 630 -0.52535310000E+00 -0.59589420000E+00 0.32740000000E+04 0.88347448000E-03 -0.31881416000E-03 0.99999955892E+00 631 -0.14457350000E+01 0.20356570000E+01 0.32740000000E+04 -0.12640023000E-03 -0.12369039000E-03 0.99999998436E+00 632 0.95635870000E+00 0.16963650000E+01 0.32740000000E+04 0.19198794000E-03 -0.15208220000E-04 0.99999998145E+00 633 -0.45461840000E+00 0.99816970000E+00 0.32740000000E+04 -0.19703311000E-03 0.19824027000E-04 0.99999998039E+00 634 -0.56044020000E+00 0.10145950000E+01 0.32740000000E+04 0.13972043000E-03 0.25729578000E-04 0.99999998991E+00 635 -0.14591580000E+01 0.80293840000E+00 0.32740000000E+04 0.10669068000E-03 -0.42947966000E-04 0.99999999339E+00 636 -0.21689370000E+01 0.80648470000E+00 0.32740000000E+04 0.73615280000E-04 0.32074473000E-03 0.99999994585E+00 637 -0.26154520000E+01 0.71988750000E-01 0.32740000000E+04 -0.39212231000E-04 -0.25312544000E-03 0.99999996719E+00 638 -0.26154520000E+01 0.71988750000E-01 0.32740000000E+04 -0.39212231000E-04 -0.25312544000E-03 0.99999996719E+00 639 0.10499950000E+01 -0.31949230000E+00 0.32740000000E+04 0.58809062000E-03 -0.14879393000E-03 0.99999981600E+00 640 -0.37965040000E+00 0.85098460000E+00 0.32740000000E+04 0.28318947000E-03 -0.39966652000E-03 0.99999988004E+00 641 -0.18753990000E+01 0.10686610000E+00 0.32740000000E+04 -0.25342949000E-03 -0.51355164000E-04 0.99999996657E+00 642 -0.23318000000E+01 0.20151790000E+01 0.32740000000E+04 -0.54102886000E-03 0.49238151000E-03 0.99999973242E+00 643 -0.35447130000E+00 -0.44168320000E+00 0.32740000000E+04 0.29688160000E-03 -0.21070553000E-03 0.99999993373E+00 644 -0.15976280000E+01 -0.55272020000E+00 0.32740000000E+04 -0.33731459000E-03 0.30568487000E-03 0.99999989639E+00 645 0.11735280000E+01 0.26121520000E+01 0.32740000000E+04 0.43385490000E-03 -0.57466848000E-04 0.99999990423E+00 646 -0.61093280000E-01 -0.33034780000E+00 0.32740000000E+04 -0.36226903000E-03 -0.44030830000E-05 0.99999993437E+00 647 0.91279360000E-01 0.11847490000E+01 0.32740000000E+04 0.19446277000E-03 0.16677110000E-03 0.99999996719E+00 648 0.34333467000E-02 0.14786440000E+01 0.32740000000E+04 0.28278364000E-03 0.24700738000E-03 0.99999992951E+00 649 -0.68733660000E+00 0.12971120000E+01 0.32740000000E+04 -0.93933857000E-04 0.30380831000E-03 0.99999994944E+00 650 -0.13086990000E+01 0.19296390000E+01 0.32740000000E+04 0.41709890000E-03 0.34696906000E-03 0.99999985282E+00 651 -0.98956850000E+00 0.11216780000E+01 0.32740000000E+04 -0.24753978000E-03 0.19973329000E-03 0.99999994942E+00 652 -0.98956850000E+00 0.11216780000E+01 0.32740000000E+04 -0.24753978000E-03 0.19973329000E-03 0.99999994942E+00 653 -0.63198180000E+00 -0.38690690000E+00 0.32740000000E+04 -0.18784538000E-04 0.18167045000E-03 0.99999998332E+00 654 -0.45626590000E+00 0.77789190000E+00 0.32740000000E+04 -0.25499650000E-03 0.21747009000E-03 0.99999994384E+00 655 -0.62222400000E+00 -0.23966810000E-01 0.32740000000E+04 -0.12497717000E-03 -0.86550363000E-05 0.99999999215E+00 656 -0.19068790000E+01 0.19014790000E+01 0.32740000000E+04 -0.12712834000E-03 -0.17836175000E-03 0.99999997601E+00 657 0.23351100000E+00 0.83654170000E+00 0.32740000000E+04 0.42693556000E-03 0.12219997000E-03 0.99999990140E+00 658 0.23351100000E+00 0.83654170000E+00 0.32740000000E+04 0.42693556000E-03 0.12219997000E-03 0.99999990140E+00 659 -0.18383750000E+00 0.82218120000E+00 0.32740000000E+04 -0.28404905000E-03 0.22336340000E-04 0.99999995941E+00 660 -0.21959770000E+01 0.11821910000E+00 0.32740000000E+04 0.43760519000E-03 0.29816898000E-03 0.99999985980E+00 661 0.96081410000E+00 0.16395570000E+01 0.32740000000E+04 0.12219889000E-03 -0.33466046000E-03 0.99999993653E+00 662 0.16223960000E+01 -0.17304060000E-01 0.32740000000E+04 0.15659783000E-03 -0.67779220000E-04 0.99999998544E+00 663 -0.22198880000E+01 -0.17549120000E+01 0.32740000000E+04 -0.30188874000E-04 0.54571919000E-04 0.99999999806E+00 664 -0.13417380000E+01 0.69224310000E+00 0.32740000000E+04 -0.29957629000E-03 0.32107343000E-03 0.99999990358E+00 665 0.16597270000E+01 -0.73867120000E+00 0.32740000000E+04 -0.52098048000E-05 -0.36324745000E-04 0.99999999933E+00 666 0.11870880000E+01 0.12732760000E+00 0.32740000000E+04 0.12230998000E-03 0.14361522000E-03 0.99999998221E+00 667 -0.14496750000E+01 -0.39007740000E+00 0.32740000000E+04 -0.72470990000E-04 -0.19646166000E-04 0.99999999718E+00 668 0.98440030000E+00 0.32632080000E+00 0.32740000000E+04 0.44337776000E-03 -0.32410739000E-03 0.99999984919E+00 669 -0.17858260000E+01 0.19146190000E+01 0.32740000000E+04 0.30192407000E-03 0.16943731000E-03 0.99999994007E+00 670 -0.19938980000E+01 0.14097610000E+01 0.32740000000E+04 -0.37707036000E-03 -0.19434677000E-03 0.99999991002E+00 671 -0.69235430000E+00 -0.36800840000E+00 0.32740000000E+04 -0.17292752000E-03 -0.12307045000E-03 0.99999997747E+00 672 -0.25200920000E+00 -0.13634600000E+01 0.32740000000E+04 0.14610517000E-03 -0.30868698000E-03 0.99999994168E+00 673 0.24530430000E+00 0.32087470000E+01 0.32740000000E+04 0.33960171000E-03 0.16242822000E-04 0.99999994220E+00 674 -0.72973080000E+00 -0.27418540000E-01 0.32740000000E+04 0.41920128000E-04 0.29338503000E-03 0.99999995608E+00 675 0.18628800000E+01 0.41661340000E+00 0.32740000000E+04 0.10722298000E-03 0.27837037000E-03 0.99999995551E+00 676 -0.17121940000E+01 0.74116490000E+00 0.32740000000E+04 -0.13249130000E-03 0.12101823000E-03 0.99999998390E+00 677 -0.20133820000E+01 -0.93226050000E+00 0.32740000000E+04 -0.34249556000E-03 -0.55178354000E-03 0.99999978912E+00 678 -0.17904400000E+00 0.11427790000E+01 0.32740000000E+04 -0.37525030000E-03 -0.52715052000E-03 0.99999979065E+00 679 -0.18239510000E+01 -0.12769990000E+01 0.32740000000E+04 -0.27085203000E-03 0.78580924000E-03 0.99999965457E+00 680 0.18472970000E+00 0.37263290000E+00 0.32740000000E+04 0.46539042000E-03 -0.44590484000E-04 0.99999989071E+00 681 -0.11341440000E+01 0.12122950000E+01 0.32740000000E+04 0.43525131000E-04 0.87993161000E-04 0.99999999518E+00 682 0.22345090000E+01 0.14987950000E+01 0.32740000000E+04 0.29836132000E-04 -0.31983995000E-03 0.99999994841E+00 683 0.30998470000E+00 0.19065120000E+01 0.32740000000E+04 0.12231424000E-02 0.51281846000E-03 0.99999912047E+00 684 -0.75588680000E+00 0.30949580000E-01 0.32740000000E+04 0.41713013000E-03 -0.17593315000E-03 0.99999989752E+00 685 -0.49297680000E+00 0.73732280000E+00 0.32740000000E+04 -0.41487862000E-03 -0.19824259000E-03 0.99999989429E+00 686 0.43446180000E+00 0.53696680000E+00 0.32740000000E+04 0.63261285000E-03 -0.30586700000E-03 0.99999975312E+00 687 -0.17925190000E+01 0.13470790000E+01 0.32740000000E+04 -0.72377379000E-03 -0.12005753000E-02 0.99999901738E+00 688 -0.17270760000E+01 0.18317820000E+01 0.32740000000E+04 0.12166861000E-04 0.48675897000E-03 0.99999988146E+00 689 -0.17270760000E+01 0.18317820000E+01 0.32740000000E+04 0.12166861000E-04 0.48675897000E-03 0.99999988146E+00 690 -0.32022900000E+00 -0.66145900000E+00 0.32740000000E+04 -0.14361707000E-03 -0.73332900000E-04 0.99999998700E+00 691 0.78191950000E+00 -0.11926470000E+01 0.32740000000E+04 0.64201641000E-03 -0.49171189000E-03 0.99999967302E+00 692 0.95266990000E+00 0.10930610000E+01 0.32740000000E+04 0.33620343000E-03 -0.26118031000E-03 0.99999990938E+00 693 -0.83193890000E+00 0.13510370000E+01 0.32740000000E+04 0.38651924000E-03 0.94785792000E-05 0.99999992526E+00 694 -0.15194010000E+01 -0.11111530000E+01 0.32740000000E+04 0.28878884000E-03 -0.33911496000E-04 0.99999995773E+00 695 0.44665770000E-01 0.17031070000E+01 0.32740000000E+04 0.31496567000E-03 0.31364978000E-05 0.99999995039E+00 696 -0.21359670000E+01 0.11933390000E+00 0.32740000000E+04 0.37852718000E-03 0.52291012000E-04 0.99999992699E+00 697 -0.26307500000E+01 0.42598830000E+00 0.32740000000E+04 0.85122010000E-05 0.74963021000E-03 0.99999971899E+00 698 -0.50484280000E+00 -0.45624760000E-01 0.32740000000E+04 0.33883491000E-03 -0.22934671000E-03 0.99999991630E+00 699 -0.34671170000E+00 -0.35716220000E+00 0.32740000000E+04 0.16871786000E-03 0.29283805000E-04 0.99999998534E+00 700 0.14993630000E+01 0.15672280000E+01 0.32740000000E+04 0.32712458000E-03 0.18168733000E-03 0.99999992999E+00 701 0.14993630000E+01 0.15672280000E+01 0.32740000000E+04 0.32712458000E-03 0.18168733000E-03 0.99999992999E+00 702 0.38239110000E+00 -0.47100340000E+00 0.32740000000E+04 -0.95035968000E-04 -0.65688329000E-03 0.99999977974E+00 703 -0.84529410000E+00 0.83529640000E+00 0.32740000000E+04 0.29435146000E-03 0.25539618000E-03 0.99999992407E+00 704 -0.65680660000E+00 0.21411270000E+01 0.32740000000E+04 0.19758302000E-03 0.14494798000E-03 0.99999996998E+00 705 -0.78494930000E+00 0.28513150000E+01 0.32740000000E+04 -0.34811173000E-03 0.35278191000E-03 0.99999987718E+00 706 -0.27220400000E+01 -0.14243330000E+01 0.32740000000E+04 -0.26537056000E-03 -0.52151841000E-03 0.99999982880E+00 707 0.20723590000E+01 -0.87893780000E+00 0.32740000000E+04 0.95103466000E-03 0.80353439000E-05 0.99999954773E+00 708 0.13621050000E+01 -0.15610020000E+01 0.32740000000E+04 -0.34288541000E-03 -0.13125353000E-03 0.99999993260E+00 709 -0.10892440000E+01 0.20524060000E+01 0.32740000000E+04 0.16648530000E-03 -0.73614996000E-03 0.99999971518E+00 710 -0.76452090000E+00 0.11590410000E+00 0.32740000000E+04 -0.39898307000E-03 0.50257429000E-04 0.99999991914E+00 711 0.24013260000E+01 0.90107960000E+00 0.32740000000E+04 -0.36458267000E-03 0.23574609000E-03 0.99999990575E+00 712 -0.20364030000E+01 0.22450550000E+01 0.32740000000E+04 -0.84620574000E-03 -0.79800072000E-03 0.99999932357E+00 713 0.11164870000E+01 -0.12155920000E+00 0.32740000000E+04 0.77156012000E-03 0.10136126000E-03 0.99999969721E+00 714 -0.13129740000E+01 0.18047170000E+01 0.32740000000E+04 0.16450445000E-03 0.24395058000E-03 0.99999995671E+00 715 0.16857190000E+01 0.13067450000E+01 0.32740000000E+04 0.42197545000E-03 -0.20672649000E-03 0.99999988960E+00 716 0.16857190000E+01 0.13067450000E+01 0.32740000000E+04 0.42197545000E-03 -0.20672649000E-03 0.99999988960E+00 717 -0.14562710000E+01 0.88328610000E+00 0.32740000000E+04 0.24582053000E-03 -0.18753835000E-03 0.99999995220E+00 718 -0.83890890000E+00 -0.64420270000E+00 0.32740000000E+04 -0.33959092000E-03 -0.55315863000E-05 0.99999994232E+00 719 -0.61836340000E+00 -0.64458590000E+00 0.32740000000E+04 0.20482160000E-03 0.20819037000E-03 0.99999995735E+00 720 -0.13807530000E+01 0.13594120000E+01 0.32740000000E+04 0.30101152000E-03 0.47172757000E-03 0.99999984343E+00 721 -0.18957860000E+01 0.15144850000E+01 0.32740000000E+04 0.81877055000E-03 -0.18470448000E-03 0.99999964775E+00 722 -0.24529660000E+01 0.17069360000E+01 0.32740000000E+04 -0.10187466000E-03 0.21408732000E-04 0.99999999458E+00 723 -0.22096750000E+01 0.11722760000E+01 0.32740000000E+04 -0.17271616000E-03 0.11538370000E-03 0.99999997843E+00 724 0.92408920000E+00 0.78418750000E+00 0.32740000000E+04 0.41423959000E-03 0.43097208000E-03 0.99999982133E+00 725 -0.24512400000E+01 -0.15280580000E+00 0.32740000000E+04 0.37984391000E-04 -0.97750817000E-04 0.99999999450E+00 726 -0.24955990000E+01 0.12584300000E+01 0.32740000000E+04 -0.62995547000E-04 0.18940134000E-03 0.99999998008E+00 727 -0.64448030000E+00 0.13264000000E+01 0.32740000000E+04 0.24076492000E-03 0.22094013000E-03 0.99999994661E+00 728 0.10881010000E+01 0.15119970000E+01 0.32740000000E+04 -0.23472444000E-03 -0.83797087000E-03 0.99999962135E+00 729 -0.23535220000E+01 -0.85789430000E+00 0.32740000000E+04 0.27755779000E-03 -0.62987278000E-03 0.99999976311E+00 730 -0.16086980000E+01 -0.35773150000E+00 0.32740000000E+04 -0.63617357000E-04 -0.10837323000E-03 0.99999999210E+00 731 0.24076610000E+01 0.13147760000E+01 0.32740000000E+04 -0.73813026000E-04 0.32834258000E-03 0.99999994337E+00 732 0.59372900000E+00 0.10333030000E+01 0.32740000000E+04 0.25230684000E-03 0.61800552000E-03 0.99999977721E+00 733 -0.97482010000E+00 0.81400110000E+00 0.32740000000E+04 0.59805170000E-03 0.44404855000E-03 0.99999972258E+00 734 -0.18397360000E+01 -0.95920970000E+00 0.32740000000E+04 -0.27689172000E-03 -0.49527513000E-03 0.99999983902E+00 735 -0.12646380000E+01 -0.60323520000E+00 0.32740000000E+04 0.17441760000E-03 -0.56720214000E-05 0.99999998477E+00 736 0.16034310000E+00 -0.16668290000E+01 0.32740000000E+04 0.18620609000E-03 -0.54422172000E-03 0.99999983457E+00 737 -0.16783770000E+01 0.11101000000E+01 0.32740000000E+04 0.98922721000E-03 0.14922804000E-04 0.99999951060E+00 738 -0.16783770000E+01 0.11101000000E+01 0.32740000000E+04 0.98922721000E-03 0.14922804000E-04 0.99999951060E+00 739 0.15488250000E+01 0.60108690000E-01 0.32740000000E+04 -0.25958483000E-03 -0.28257709000E-04 0.99999996591E+00 740 -0.17763750000E+01 0.15064180000E+01 0.32740000000E+04 0.33355245000E-03 0.22496542000E-03 0.99999991907E+00 741 0.77414240000E+00 0.25164100000E+01 0.32740000000E+04 -0.18679537000E-03 0.30171580000E-03 0.99999993704E+00 742 0.23273460000E+01 0.15814700000E+01 0.32740000000E+04 0.42519698000E-03 -0.17605432000E-03 0.99999989411E+00 743 -0.29562080000E+01 0.16501960000E+01 0.32740000000E+04 0.55489340000E-03 0.20990557000E-03 0.99999982402E+00 744 -0.12543980000E+01 0.23336230000E+00 0.32740000000E+04 0.11766401000E-03 0.21620058000E-03 0.99999996971E+00 745 -0.11880290000E+00 -0.85624630000E+00 0.32740000000E+04 0.11197294000E-05 0.11416683000E-03 0.99999999348E+00 746 -0.21126270000E+01 0.16635640000E+01 0.32740000000E+04 -0.15052907000E-03 0.35019180000E-04 0.99999998806E+00 747 0.23122950000E+01 -0.53027700000E+00 0.32740000000E+04 0.14193257000E-03 -0.79106679000E-03 0.99999967703E+00 748 -0.16563230000E+01 0.12951630000E+01 0.32740000000E+04 0.43315318000E-03 0.99735538000E-04 0.99999990122E+00 749 -0.16875840000E+00 0.15258540000E+01 0.32740000000E+04 -0.63416577000E-04 0.65348914000E-03 0.99999978447E+00 750 -0.82277590000E+00 0.60777290000E+00 0.32740000000E+04 0.32120330000E-04 -0.70457179000E-04 0.99999999700E+00 751 -0.82277590000E+00 0.60777290000E+00 0.32740000000E+04 0.32120330000E-04 -0.70457179000E-04 0.99999999700E+00 752 -0.15636210000E+01 0.20192760000E+01 0.32740000000E+04 -0.44137210000E-03 0.29420300000E-03 0.99999985932E+00 753 -0.18225200000E+00 0.14779220000E+01 0.32740000000E+04 0.40823492000E-03 0.34858371000E-03 0.99999985592E+00 754 0.11721070000E+01 0.23298950000E-01 0.32740000000E+04 0.79340200000E-04 0.14038692000E-03 0.99999998700E+00 755 -0.63566910000E+00 0.11593560000E+01 0.32740000000E+04 -0.26185543000E-03 -0.18958695000E-03 0.99999994774E+00 756 0.41396170000E+00 0.12371580000E+01 0.32740000000E+04 0.16043463000E-04 0.41271508000E-03 0.99999991470E+00 757 0.95049130000E+00 0.66712070000E+00 0.32740000000E+04 0.16036945000E-03 -0.20924927000E-03 0.99999996525E+00 758 0.57272220000E-01 0.43999510000E+00 0.32740000000E+04 -0.15418346000E-03 0.17232334000E-04 0.99999998797E+00 759 0.85495080000E+00 0.20568320000E+01 0.32740000000E+04 0.25856905000E-03 -0.23874440000E-03 0.99999993807E+00 760 -0.12229130000E+01 0.13079470000E+00 0.32740000000E+04 0.11975697000E-04 -0.22197692000E-03 0.99999997529E+00 761 0.47042260000E+00 0.22929190000E+01 0.32740000000E+04 -0.49052600000E-04 0.44322631000E-03 0.99999990057E+00 762 0.47042260000E+00 0.22929190000E+01 0.32740000000E+04 -0.49052600000E-04 0.44322631000E-03 0.99999990057E+00 763 -0.59696120000E+00 0.56590780000E+00 0.32740000000E+04 0.98402073000E-04 -0.19057293000E-03 0.99999997700E+00 764 -0.95924630000E+00 0.72049260000E+00 0.32740000000E+04 -0.51992571000E-04 -0.16124899000E-03 0.99999998565E+00 765 -0.11828930000E+01 0.27810190000E+01 0.32740000000E+04 0.23573775000E-03 0.22698150000E-03 0.99999994645E+00 766 -0.18839570000E+01 -0.38670910000E+00 0.32740000000E+04 0.11671539000E-02 0.31445862000E-03 0.99999926943E+00 767 0.17518840000E+00 0.61599770000E+00 0.32740000000E+04 0.10910282000E-03 -0.89488522000E-05 0.99999999401E+00 768 0.11430340000E+01 0.17198220000E+01 0.32740000000E+04 0.26103824000E-04 -0.26020111000E-03 0.99999996581E+00 769 0.85600800000E+00 0.15385900000E+01 0.32740000000E+04 -0.82558501000E-04 -0.34525310000E-04 0.99999999600E+00 770 -0.12039690000E+01 0.17193140000E+01 0.32740000000E+04 0.50780567000E-03 0.48025459000E-03 0.99999975574E+00 771 -0.10584150000E+01 0.16498230000E+01 0.32740000000E+04 -0.44103610000E-03 0.15606689000E-03 0.99999989057E+00 772 -0.25399000000E+01 0.19666800000E+01 0.32740000000E+04 -0.29105137000E-03 -0.62951422000E-05 0.99999995762E+00 773 -0.10600660000E+01 -0.20591560000E+00 0.32740000000E+04 -0.47064608000E-04 -0.29219489000E-03 0.99999995620E+00 774 0.79227600000E+00 -0.15493570000E+01 0.32740000000E+04 0.44022140000E-03 -0.68034482000E-04 0.99999990079E+00 775 0.68218040000E+00 -0.35045140000E+00 0.32740000000E+04 0.14158199000E-04 -0.31081468000E-04 0.99999999942E+00 776 -0.18577410000E+01 0.17472620000E+01 0.32740000000E+04 0.22540589000E-03 0.31088386000E-03 0.99999992627E+00 777 0.25566610000E+01 0.49372720000E-01 0.32740000000E+04 0.57410460000E-03 0.14740306000E-03 0.99999982434E+00 778 -0.88886500000E+00 -0.10960270000E+01 0.32740000000E+04 0.93842296000E-04 -0.56231562000E-04 0.99999999402E+00 779 -0.20023460000E+01 0.27168530000E+01 0.32740000000E+04 -0.17092140000E-03 -0.11829421000E-03 0.99999997840E+00 780 -0.23566520000E+01 0.77239790000E+00 0.32740000000E+04 -0.24735351000E-03 -0.10451793000E-03 0.99999996395E+00 781 -0.22200490000E+01 0.18534280000E+01 0.32740000000E+04 -0.41294258000E-03 0.43567008000E-03 0.99999981983E+00 782 -0.20642170000E+01 0.46839090000E+00 0.32740000000E+04 0.95994771000E-03 0.10681205000E-03 0.99999953355E+00 783 -0.24212390000E+01 0.14678650000E+01 0.32740000000E+04 -0.14049954000E-03 -0.79358899000E-04 0.99999998698E+00 784 -0.24212390000E+01 0.14678650000E+01 0.32740000000E+04 -0.14049954000E-03 -0.79358899000E-04 0.99999998698E+00 785 -0.18275700000E+01 0.17037410000E+01 0.32740000000E+04 -0.24325230000E-03 0.37721530000E-03 0.99999989927E+00 786 0.16972980000E+01 0.21349280000E+01 0.32740000000E+04 0.14802693000E-03 0.14204692000E-03 0.99999997896E+00 787 -0.24344200000E+00 0.66327310000E+00 0.32740000000E+04 -0.11639256000E-03 -0.14028793000E-03 0.99999998339E+00 788 -0.11677370000E+01 -0.20636170000E+01 0.32740000000E+04 0.13989625000E-03 -0.21448942000E-03 0.99999996721E+00 789 -0.24589640000E+01 0.60956120000E+00 0.32740000000E+04 -0.10029670000E-03 -0.38487616000E-03 0.99999992091E+00 790 0.11402140000E+01 0.19858860000E+01 0.32740000000E+04 -0.37196741000E-03 0.44757515000E-03 0.99999983066E+00 791 0.10441560000E+01 0.13059280000E+01 0.32740000000E+04 0.74171339000E-03 0.47205878000E-04 0.99999972382E+00 792 -0.26764480000E+01 0.61293770000E+00 0.32740000000E+04 -0.11248203000E-03 0.50883544000E-04 0.99999999238E+00 793 0.41539220000E+00 0.16203020000E+01 0.32740000000E+04 0.17425572000E-03 -0.51736981000E-04 0.99999998348E+00 794 -0.15735750000E+01 0.10297450000E+01 0.32740000000E+04 -0.39639900000E-03 -0.11437969000E-03 0.99999991489E+00 795 -0.26734060000E+00 0.10447550000E+01 0.32740000000E+04 0.38604200000E-03 -0.34264816000E-04 0.99999992490E+00 796 -0.14476950000E+01 0.76215990000E+00 0.32740000000E+04 0.70768961000E-04 0.18802333000E-03 0.99999997982E+00 797 -0.18258090000E+01 0.34713330000E+00 0.32740000000E+04 -0.11186265000E-03 0.73281094000E-03 0.99999972524E+00 798 -0.15915580000E+01 0.14566580000E+01 0.32740000000E+04 0.11685465000E-03 0.71455099000E-04 0.99999999062E+00 799 -0.74204140000E+00 0.10632570000E+01 0.32740000000E+04 0.75945654000E-03 -0.81510871000E-03 0.99999937941E+00 800 0.47297720000E+00 0.17693210000E+01 0.32740000000E+04 0.37523580000E-03 0.21187979000E-03 0.99999990715E+00 801 0.47297720000E+00 0.17693210000E+01 0.32740000000E+04 0.37523580000E-03 0.21187979000E-03 0.99999990715E+00 802 -0.46799980000E+00 0.20222420000E+01 0.32740000000E+04 0.10783482000E-03 0.21414799000E-03 0.99999997126E+00 803 -0.22234090000E+01 0.17937480000E+01 0.32740000000E+04 -0.13881638000E-03 0.81622311000E-04 0.99999998703E+00 804 -0.20796620000E+01 0.85741550000E+00 0.32740000000E+04 0.57757665000E-04 0.55496879000E-04 0.99999999679E+00 805 -0.13033150000E+00 -0.64281620000E+00 0.32740000000E+04 0.50641206000E-03 -0.12665355000E-03 0.99999986375E+00 806 0.78115910000E+00 -0.15627860000E+00 0.32740000000E+04 0.11655604000E-03 -0.34265380000E-03 0.99999993450E+00 807 -0.13510220000E+01 -0.16168720000E+01 0.32740000000E+04 -0.24919884000E-03 -0.27873329000E-03 0.99999993010E+00 808 -0.61508150000E+00 -0.20942211000E-02 0.32740000000E+04 -0.59902336000E-03 0.13676222000E-02 0.99999888539E+00 809 -0.74648770000E+00 0.87566560000E+00 0.32740000000E+04 0.18755722000E-04 -0.15087794000E-03 0.99999998844E+00 810 -0.10751100000E+00 -0.87950468000E-02 0.32740000000E+04 0.57183095000E-03 -0.10738764000E-03 0.99999983074E+00 811 -0.15220350000E+01 0.11020120000E+01 0.32740000000E+04 -0.23292439000E-03 -0.19517627000E-03 0.99999995383E+00 812 0.13363300000E+01 0.11327550000E+01 0.32740000000E+04 -0.30155406000E-04 0.26933354000E-03 0.99999996328E+00 813 0.27912700000E+00 0.12467200000E+01 0.32740000000E+04 0.27104883000E-03 -0.96508476000E-04 0.99999995861E+00 814 -0.54865090000E+00 -0.42376330000E+00 0.32740000000E+04 0.12646184000E-02 -0.39913837000E-03 0.99999912071E+00 815 -0.12299090000E+01 0.93740270000E+00 0.32740000000E+04 0.18765693000E-03 -0.20462086000E-04 0.99999998218E+00 816 -0.24155100000E+00 0.18901730000E+01 0.32740000000E+04 -0.89587971000E-04 0.43274241000E-03 0.99999990235E+00 817 -0.27021560000E+00 0.93102390000E+00 0.32740000000E+04 0.17704620000E-03 0.39534614000E-03 0.99999990618E+00 818 0.30072860000E+00 -0.68273490000E+00 0.32740000000E+04 -0.45069435000E-03 0.90133959000E-04 0.99999989438E+00 819 0.30072860000E+00 -0.68273490000E+00 0.32740000000E+04 -0.45069435000E-03 0.90133959000E-04 0.99999989438E+00 820 0.97050000000E-01 0.18293820000E+01 0.32740000000E+04 0.69027458000E-03 0.39157725000E-03 0.99999968509E+00 821 -0.45240120000E-01 0.14185190000E+01 0.32740000000E+04 0.28200389000E-03 0.19759471000E-03 0.99999994072E+00 822 -0.24689670000E+01 0.60829010000E+00 0.32740000000E+04 0.13412129000E-03 0.47532867000E-04 0.99999998988E+00 823 -0.14280260000E+01 -0.64548460000E+00 0.32740000000E+04 0.96226466000E-03 -0.13346058000E-07 0.99999953702E+00 824 0.49733540000E+00 0.14722840000E+01 0.32740000000E+04 0.46341269000E-04 0.11658901000E-03 0.99999999213E+00 825 -0.20874630000E+01 0.52926840000E+00 0.32740000000E+04 -0.31016496000E-03 -0.16867615000E-03 0.99999993767E+00 826 0.11074370000E+01 0.21397740000E+00 0.32740000000E+04 0.55809377000E-03 -0.48757315000E-03 0.99999972540E+00 827 -0.13416110000E+01 0.59014300000E+00 0.32740000000E+04 -0.70082388000E-04 -0.33983015000E-03 0.99999993980E+00 828 -0.16870380000E+01 0.11572620000E+01 0.32740000000E+04 -0.51140710000E-03 0.17836952000E-03 0.99999985332E+00 829 -0.14445950000E+01 0.16388040000E+01 0.32740000000E+04 0.21303324000E-03 0.17118109000E-03 0.99999996266E+00 830 0.13093980000E+01 0.66863570000E+00 0.32740000000E+04 0.22449065000E-03 -0.12061502000E-04 0.99999997473E+00 831 -0.13137850000E+01 0.18228260000E+00 0.32740000000E+04 -0.84131403000E-04 -0.17454895000E-04 0.99999999631E+00 832 -0.11088870000E+01 0.12628990000E+01 0.32740000000E+04 0.35820043000E-03 0.10899571000E-03 0.99999992991E+00 833 -0.64490520000E+00 0.17507520000E+01 0.32740000000E+04 0.10892154000E-03 0.57386387000E-04 0.99999999242E+00 834 -0.94176220000E-01 0.11899820000E+01 0.32740000000E+04 -0.21528800000E-03 0.35541216000E-03 0.99999991367E+00 835 0.85496230000E+00 -0.81740440000E+00 0.32740000000E+04 -0.87088578000E-04 -0.65319357000E-03 0.99999978288E+00 836 -0.71615450000E+00 0.24877610000E+01 0.32740000000E+04 0.29484098000E-03 0.75294905000E-04 0.99999995370E+00 837 0.24659810000E+01 0.32894150000E+01 0.32740000000E+04 0.68072189000E-03 0.14762639000E-03 0.99999975741E+00 838 -0.35339110000E+00 0.63173650000E+00 0.32740000000E+04 0.75053325000E-03 -0.81953758000E-05 0.99999971832E+00 839 0.10268920000E+01 0.16018400000E+01 0.32740000000E+04 0.31828106000E-03 0.49914635000E-03 0.99999982478E+00 840 -0.84038510000E+00 0.24640600000E+01 0.32740000000E+04 -0.11200078000E-02 0.19999233000E-03 0.99999935279E+00 841 -0.11385550000E+00 0.74995590000E+00 0.32740000000E+04 0.29701641000E-03 0.10249118000E-03 0.99999995064E+00 842 0.30741640000E-01 0.55530800000E+00 0.32740000000E+04 -0.31488488000E-03 0.93937857000E-03 0.99999950921E+00 843 -0.15551970000E+01 0.78574960000E+00 0.32740000000E+04 -0.72635296000E-04 -0.49885397000E-03 0.99999987293E+00 844 0.89610520000E+00 0.66514420000E+00 0.32740000000E+04 -0.30945870000E-03 0.51869451000E-04 0.99999995077E+00 845 -0.70715400000E+00 0.84857990000E+00 0.32740000000E+04 0.10194108000E-02 0.28475295000E-03 0.99999943986E+00 846 -0.10888200000E+01 0.13280380000E+01 0.32740000000E+04 -0.21895995000E-03 0.41014314000E-03 0.99999989192E+00 847 0.22963680000E+00 -0.82757760000E+00 0.32740000000E+04 -0.28589173000E-03 -0.51196211000E-03 0.99999982808E+00 848 0.10331970000E+01 0.12348560000E+01 0.32740000000E+04 -0.11542168000E-03 0.16007939000E-03 0.99999998053E+00 849 0.10331970000E+01 0.12348560000E+01 0.32740000000E+04 -0.11542168000E-03 0.16007939000E-03 0.99999998053E+00 850 -0.24515630000E+01 0.37478780000E+00 0.32740000000E+04 -0.42167393000E-03 -0.73115702000E-03 0.99999964380E+00 851 0.73111000000E+00 -0.10986740000E+01 0.32740000000E+04 0.15368132000E-03 -0.78399351000E-03 0.99999968087E+00 852 -0.19788330000E+01 0.73391890000E+00 0.32740000000E+04 0.21102437000E-03 -0.56624907000E-04 0.99999997613E+00 853 -0.12487040000E+01 0.77945580000E+00 0.32740000000E+04 0.88966204000E-04 -0.20151147000E-03 0.99999997574E+00 854 -0.10807130000E+01 0.36441290000E+00 0.32740000000E+04 -0.58113434000E-03 -0.20093605000E-03 0.99999981095E+00 855 -0.45775070000E+00 -0.80247390000E+00 0.32740000000E+04 0.24246056000E-03 -0.56541839000E-03 0.99999981076E+00 856 -0.18744380000E+01 0.19062140000E-01 0.32740000000E+04 -0.63350119000E-04 0.21644747000E-03 0.99999997457E+00 857 0.15593140000E+01 0.29977360000E+00 0.32740000000E+04 -0.17456528000E-03 0.44848343000E-06 0.99999998476E+00 858 -0.87955420000E+00 0.50845020000E+00 0.32740000000E+04 -0.49792853000E-03 -0.42236768000E-03 0.99999978684E+00 859 -0.66364900000E+00 0.10244530000E+01 0.32740000000E+04 0.13557426000E-03 0.14680185000E-03 0.99999998003E+00 860 0.83878970000E+00 0.29789610000E+01 0.32740000000E+04 0.27904808000E-03 0.25926871000E-04 0.99999996073E+00 861 0.53345000000E+00 0.94226220000E+00 0.32740000000E+04 0.94717063000E-04 0.26960636000E-03 0.99999995917E+00 862 0.53345000000E+00 0.94226220000E+00 0.32740000000E+04 0.94717063000E-04 0.26960636000E-03 0.99999995917E+00 863 -0.10921350000E+01 0.25140850000E+00 0.32740000000E+04 -0.26933174000E-03 0.94775176000E-04 0.99999995924E+00 864 -0.11463420000E+01 0.17763710000E+01 0.32740000000E+04 0.13610591000E-03 0.56402587000E-04 0.99999998915E+00 865 -0.91769320000E+00 0.10544390000E+01 0.32740000000E+04 -0.19550597000E-03 -0.22959271000E-03 0.99999995453E+00 866 -0.14224120000E+01 -0.61074950000E-01 0.32740000000E+04 0.74967492000E-03 0.43005903000E-05 0.99999971898E+00 867 -0.10335400000E+01 0.71835770000E+00 0.32740000000E+04 0.54406963000E-03 0.32672333000E-03 0.99999979862E+00 868 -0.47486910000E+00 0.20659650000E+01 0.32740000000E+04 0.58538728000E-04 -0.21003631000E-03 0.99999997623E+00 869 0.10915860000E+01 0.65685400000E+00 0.32740000000E+04 0.30047243000E-03 0.10427050000E-03 0.99999994942E+00 870 0.18386700000E+00 0.17185280000E+01 0.32740000000E+04 0.30500643000E-03 -0.42208700000E-03 0.99999986441E+00 871 -0.38921390000E+00 0.23360210000E+01 0.32740000000E+04 0.31106701000E-04 -0.14701391000E-03 0.99999998871E+00 872 -0.38921390000E+00 0.23360210000E+01 0.32740000000E+04 0.31106701000E-04 -0.14701391000E-03 0.99999998871E+00 873 0.35914360000E+00 0.21605970000E+01 0.32740000000E+04 -0.25430982000E-03 0.31598148000E-03 0.99999991774E+00 874 0.51784130000E+00 0.19102130000E+01 0.32740000000E+04 0.18166365000E-03 0.42711262000E-03 0.99999989229E+00 875 -0.74037310000E+00 0.90297230000E+00 0.32740000000E+04 0.15501925000E-03 0.35504636000E-03 0.99999992496E+00 876 0.21193900000E+01 0.87530250000E+00 0.32740000000E+04 -0.20741546000E-03 -0.57713198000E-03 0.99999981195E+00 877 0.21122710000E+01 0.35805530000E+00 0.32740000000E+04 0.31035871000E-03 0.10803653000E-03 0.99999994600E+00 878 -0.55431680000E+00 0.13762650000E+01 0.32740000000E+04 -0.42696940000E-03 0.40194267000E-03 0.99999982807E+00 879 -0.20289910000E+01 0.21703470000E+01 0.32740000000E+04 -0.11511881000E-03 -0.10951706000E-03 0.99999998738E+00 880 -0.59786310000E+00 0.13337680000E+01 0.32740000000E+04 -0.51470206000E-03 0.15902202000E-03 0.99999985490E+00 881 -0.11906620000E+01 0.52884230000E+00 0.32740000000E+04 0.28438677000E-03 -0.64992433000E-04 0.99999995745E+00 882 0.18373910000E+01 0.17391480000E+01 0.32740000000E+04 -0.83826999000E-04 0.41446759000E-03 0.99999991059E+00 883 -0.97230160000E+00 0.16565690000E+01 0.32740000000E+04 0.13293914000E-03 0.16476672000E-03 0.99999997759E+00 884 -0.72485670000E+00 -0.55781780000E+00 0.32740000000E+04 -0.83631930000E-04 0.91650254000E-05 0.99999999646E+00 885 0.48254010000E+00 0.14230460000E+01 0.32740000000E+04 0.24386669000E-03 -0.31682104000E-03 0.99999992008E+00 886 0.14411130000E+01 -0.12493260000E+01 0.32740000000E+04 0.69118006000E-03 0.23678302000E-03 0.99999973310E+00 887 -0.20504300000E+01 -0.14809630000E+01 0.32740000000E+04 -0.77571394000E-05 -0.15619348000E-03 0.99999998777E+00 888 0.16085190000E+01 0.80581920000E+00 0.32740000000E+04 0.32287545000E-03 0.15306499000E-03 0.99999993616E+00 889 -0.18712540000E+01 0.15330890000E+01 0.32740000000E+04 0.41388077000E-03 -0.70717098000E-03 0.99999966431E+00 890 -0.54962530000E+00 0.15043540000E+01 0.32740000000E+04 0.87820154000E-04 0.29543007000E-03 0.99999995250E+00 891 -0.54962530000E+00 0.15043540000E+01 0.32740000000E+04 0.87820154000E-04 0.29543007000E-03 0.99999995250E+00 892 -0.22589500000E+01 0.13869230000E+01 0.32740000000E+04 -0.44202614000E-04 -0.37736964000E-03 0.99999992782E+00 893 -0.37970380000E+00 0.14545950000E+01 0.32740000000E+04 0.14917418000E-04 0.64997199000E-04 0.99999999778E+00 894 -0.23464050000E+01 -0.37566185000E-02 0.32740000000E+04 0.11452726000E-03 0.19343244000E-03 0.99999997473E+00 895 0.32646480000E+00 -0.38719200000E+00 0.32740000000E+04 0.17281513000E-03 -0.74159098000E-03 0.99999971009E+00 896 0.58056090000E+00 0.30439480000E+01 0.32740000000E+04 0.10842709000E-03 -0.18332193000E-03 0.99999997732E+00 897 0.10681640000E+01 0.23449150000E+01 0.32740000000E+04 0.17917177000E-03 -0.31680258000E-04 0.99999998345E+00 898 -0.59387220000E+00 0.59411050000E+00 0.32740000000E+04 0.11318488000E-03 0.24327388000E-03 0.99999996400E+00 899 -0.13036560000E+01 0.92047390000E+00 0.32740000000E+04 0.88694236000E-04 0.41156000000E-03 0.99999991138E+00 900 0.15332950000E+01 0.11725480000E+01 0.32740000000E+04 -0.59627961000E-04 -0.14017257000E-03 0.99999998840E+00 901 -0.54335490000E+00 0.20111220000E+01 0.32740000000E+04 0.11017522000E-04 -0.12372792000E-03 0.99999999229E+00 902 -0.54335490000E+00 0.20111220000E+01 0.32740000000E+04 0.11017522000E-04 -0.12372792000E-03 0.99999999229E+00 903 0.17399370000E+00 0.16328500000E+01 0.32740000000E+04 0.24240670000E-04 0.50579125000E-04 0.99999999843E+00 904 -0.86972600000E+00 -0.10781960000E+01 0.32740000000E+04 -0.32843268000E-03 -0.26657904000E-03 0.99999991053E+00 905 0.20993540000E+01 -0.13485510000E+00 0.32740000000E+04 -0.20333324000E-03 0.18445465000E-03 0.99999996232E+00 906 -0.24891490000E+00 0.51089970000E+00 0.32740000000E+04 0.51431847000E-03 0.54859190000E-03 0.99999971726E+00 907 -0.69800550000E+00 -0.35564580000E+00 0.32740000000E+04 0.38374899000E-03 0.44949825000E-05 0.99999992636E+00 908 -0.20984100000E+01 0.16781520000E+01 0.32740000000E+04 0.23383301000E-03 0.25035339000E-03 0.99999994132E+00 909 -0.20684420000E+01 0.10327760000E-01 0.32740000000E+04 0.14236879000E-03 0.85566011000E-04 0.99999998620E+00 910 -0.12441590000E+01 -0.84026990000E+00 0.32740000000E+04 0.11878794000E-03 -0.50768693000E-03 0.99999986407E+00 911 0.25587300000E+01 0.19663750000E+01 0.32740000000E+04 0.44842236000E-05 0.37460381000E-03 0.99999992983E+00 912 -0.79000280000E+00 0.41975720000E+00 0.32740000000E+04 0.28888398000E-03 0.19021431000E-03 0.99999994018E+00 913 -0.47640730000E+00 0.58618370000E+00 0.32740000000E+04 0.17656574000E-03 0.31557199000E-03 0.99999993462E+00 914 0.22253120000E+00 -0.68269290000E-01 0.32740000000E+04 0.53553154000E-04 -0.91978844000E-04 0.99999999434E+00 915 -0.72984200000E+00 0.72525150000E+00 0.32740000000E+04 0.23526596000E-03 0.38881600000E-03 0.99999989674E+00 916 -0.72984200000E+00 0.72525150000E+00 0.32740000000E+04 0.23526596000E-03 0.38881600000E-03 0.99999989674E+00 917 -0.30923680000E+01 -0.10630610000E+01 0.32740000000E+04 0.21980515000E-03 -0.10722003000E-03 0.99999997009E+00 918 -0.23956930000E+01 0.20275230000E+01 0.32740000000E+04 0.77467179000E-03 -0.67370180000E-04 0.99999969767E+00 919 -0.24298120000E+00 0.69682380000E+00 0.32740000000E+04 -0.99513301000E-04 -0.67865207000E-04 0.99999999275E+00 920 0.85272510000E+00 0.15968010000E+01 0.32740000000E+04 -0.48638482000E-04 -0.74462099000E-04 0.99999999604E+00 921 -0.59841850000E+00 0.45656020000E+00 0.32740000000E+04 0.36384942000E-03 -0.23060631000E-03 0.99999990722E+00 922 -0.27666730000E+00 0.17369240000E+01 0.32740000000E+04 0.23906003000E-04 0.72040471000E-04 0.99999999712E+00 923 -0.11774490000E+01 0.13678100000E+01 0.32740000000E+04 -0.28178748000E-03 -0.47431295000E-03 0.99999984781E+00 924 -0.11521180000E+01 0.39466260000E+00 0.32740000000E+04 -0.24984623000E-03 -0.18774794000E-03 0.99999995116E+00 925 -0.30382020000E+01 0.15881140000E+01 0.32740000000E+04 0.79301785000E-03 0.58811631000E-04 0.99999968383E+00 926 -0.24889280000E+01 0.92504880000E+00 0.32740000000E+04 -0.28353712000E-04 0.26313303000E-03 0.99999996498E+00 927 -0.24889280000E+01 0.92504880000E+00 0.32740000000E+04 -0.28353712000E-04 0.26313303000E-03 0.99999996498E+00 928 -0.37897950000E+00 -0.22300640000E+00 0.32740000000E+04 -0.36389235000E-03 -0.26752244000E-03 0.99999989801E+00 929 0.26035050000E+01 -0.44100980000E-01 0.32740000000E+04 0.59953600000E-03 0.68846814000E-04 0.99999981791E+00 930 0.83017390000E+00 0.18564010000E+01 0.32740000000E+04 0.38181734000E-03 0.41273684000E-03 0.99999984193E+00 931 -0.10731530000E+01 0.86338210000E+00 0.32740000000E+04 -0.16490978000E-03 0.80269019000E-05 0.99999998637E+00 932 -0.16481900000E+01 0.15137480000E+01 0.32740000000E+04 0.25733266000E-03 -0.46077868000E-04 0.99999996583E+00 933 0.22596590000E+00 0.76903340000E+00 0.32740000000E+04 -0.32223397000E-04 -0.43213997000E-04 0.99999999855E+00 934 -0.20787210000E+01 -0.11897660000E+01 0.32740000000E+04 -0.12734956000E-03 -0.12063792000E-03 0.99999998461E+00 935 -0.11956570000E+01 0.15834610000E+01 0.32740000000E+04 -0.92061509000E-05 -0.12489935000E-03 0.99999999216E+00 936 -0.11956570000E+01 0.15834610000E+01 0.32740000000E+04 -0.92061509000E-05 -0.12489935000E-03 0.99999999216E+00 937 -0.69117810000E+00 0.13339180000E+01 0.32740000000E+04 0.20523150000E-03 0.48774292000E-03 0.99999985999E+00 938 0.18733310000E+01 0.13343520000E+01 0.32740000000E+04 -0.75890304000E-04 -0.19713797000E-03 0.99999997769E+00 939 -0.12223760000E+01 0.30780090000E+00 0.32740000000E+04 -0.13228272000E-03 0.50751911000E-03 0.99999986246E+00 940 -0.66286750000E+00 0.13862100000E+01 0.32740000000E+04 0.67934241000E-04 0.25364148000E-03 0.99999996553E+00 941 -0.11329630000E+01 0.58471730000E+00 0.32740000000E+04 0.16554308000E-03 -0.39869823000E-03 0.99999990682E+00 942 0.52122660000E+00 0.22777540000E+01 0.32740000000E+04 0.20041058000E-03 0.63133521000E-04 0.99999997792E+00 943 -0.27244700000E+01 0.31031990000E+00 0.32740000000E+04 -0.17198941000E-03 -0.15665594000E-03 0.99999997294E+00 944 -0.26845340000E+00 0.64096770000E+00 0.32740000000E+04 0.91126043000E-04 -0.42189265000E-03 0.99999990685E+00 945 -0.84740810000E-01 0.88620300000E+00 0.32740000000E+04 0.35104185000E-03 0.25845837000E-03 0.99999990498E+00 946 -0.13121760000E+01 0.75312300000E+00 0.32740000000E+04 -0.10423295000E-03 0.17796668000E-03 0.99999997873E+00 947 0.15456890000E+01 0.13052400000E+01 0.32740000000E+04 0.13135061000E-03 0.37481336000E-03 0.99999992113E+00 948 0.15456890000E+01 0.13052400000E+01 0.32740000000E+04 0.13135061000E-03 0.37481336000E-03 0.99999992113E+00 949 -0.61631190000E+00 0.13048620000E+01 0.32740000000E+04 0.50330628000E-03 0.26287647000E-04 0.99999987300E+00 950 -0.76820390000E+00 -0.34629070000E+00 0.32740000000E+04 -0.75976066000E-04 -0.37721155000E-03 0.99999992597E+00 951 -0.71727410000E+00 0.35186970000E+01 0.32740000000E+04 -0.32778442000E-03 -0.37010966000E-03 0.99999987779E+00 952 0.94725570000E+00 0.27496030000E+01 0.32740000000E+04 -0.13246457000E-03 0.17584744000E-03 0.99999997577E+00 953 -0.20119870000E+01 0.13597560000E+01 0.32740000000E+04 -0.53779926000E-03 0.18820602000E-03 0.99999983768E+00 954 -0.99027810000E+00 0.20509190000E+01 0.32740000000E+04 -0.34577129000E-03 0.35762190000E-04 0.99999993958E+00 955 0.94342570000E-01 0.18351480000E+01 0.32740000000E+04 0.25809338000E-03 0.56270423000E-03 0.99999980838E+00 956 -0.29841240000E+00 0.93690860000E+00 0.32740000000E+04 0.22430597000E-03 0.43647979000E-04 0.99999997389E+00 957 -0.14337620000E+01 0.16499670000E+01 0.32740000000E+04 -0.57392452000E-04 0.20844029000E-03 0.99999997663E+00 958 0.25186960000E+01 -0.23020210000E+00 0.32740000000E+04 0.23437500000E-04 -0.20503702000E-03 0.99999997871E+00 959 0.25186960000E+01 -0.23020210000E+00 0.32740000000E+04 0.23437500000E-04 -0.20503702000E-03 0.99999997871E+00 960 -0.22442320000E+01 -0.31015520000E+00 0.32740000000E+04 -0.27038294000E-03 0.25077382000E-03 0.99999993200E+00 961 -0.12134140000E+01 -0.57394460000E-01 0.32740000000E+04 -0.61213344000E-04 -0.33030443000E-04 0.99999999758E+00 962 -0.93694150000E+00 0.90049370000E+00 0.32740000000E+04 0.32459281000E-03 0.18855040000E-04 0.99999994714E+00 963 -0.18488570000E+01 0.13159040000E+01 0.32740000000E+04 -0.11265231000E-03 -0.52347372000E-03 0.99999985664E+00 964 0.32047700000E-01 -0.54803440000E+00 0.32740000000E+04 0.23742656000E-03 -0.36892292000E-03 0.99999990376E+00 965 -0.10720630000E+01 0.23289100000E+01 0.32740000000E+04 0.23144693000E-03 0.17461267000E-03 0.99999995797E+00 966 0.17984190000E+00 0.13088570000E+01 0.32740000000E+04 -0.36474230000E-03 0.43233891000E-03 0.99999984002E+00 967 -0.11270340000E+01 0.85847320000E+00 0.32740000000E+04 0.35118684000E-03 -0.26810521000E-03 0.99999990239E+00 968 -0.85973820000E+00 0.90179870000E+00 0.32740000000E+04 -0.35146647000E-03 -0.20940046000E-03 0.99999991631E+00 969 -0.31759470000E+00 0.16798880000E+01 0.32740000000E+04 0.60206406000E-04 0.36370009000E-03 0.99999993205E+00 970 -0.27363820000E+01 0.52359130000E-01 0.32740000000E+04 -0.78284029000E-04 -0.71560258000E-04 0.99999999438E+00 971 -0.27363820000E+01 0.52359130000E-01 0.32740000000E+04 -0.78284029000E-04 -0.71560258000E-04 0.99999999438E+00 972 -0.42113380000E+00 0.81588120000E+00 0.32740000000E+04 -0.44986559000E-03 -0.17009705000E-03 0.99999988434E+00 973 -0.31447780000E+00 0.69739410000E+00 0.32740000000E+04 0.15408375000E-03 0.19309788000E-03 0.99999996949E+00 974 0.45527080000E+00 0.22067320000E+01 0.32740000000E+04 -0.43740231000E-03 -0.15574350000E-03 0.99999989221E+00 975 -0.69977380000E+00 0.51482340000E+00 0.32740000000E+04 -0.17091740000E-03 0.47462061000E-03 0.99999987276E+00 976 -0.66032940000E+00 -0.64272760000E+00 0.32740000000E+04 -0.61409676000E-03 -0.72498212000E-03 0.99999954864E+00 977 0.96639290000E+00 0.25480020000E+01 0.32740000000E+04 -0.46735979000E-03 0.24672688000E-03 0.99999986035E+00 978 -0.73850810000E+00 -0.13971100000E+00 0.32740000000E+04 -0.26818886000E-03 0.97652734000E-03 0.99999948723E+00 979 -0.12246160000E+01 0.85720370000E+00 0.32740000000E+04 -0.26948875000E-03 -0.41682250000E-03 0.99999987682E+00 980 -0.12246160000E+01 0.85720370000E+00 0.32740000000E+04 -0.26948875000E-03 -0.41682250000E-03 0.99999987682E+00 981 -0.12046710000E+01 -0.23757030000E+00 0.32740000000E+04 0.94076029000E-04 -0.41132988000E-03 0.99999991098E+00 982 0.13200660000E+01 -0.90040430000E+00 0.32740000000E+04 0.69993017000E-04 -0.25375880000E-03 0.99999996535E+00 983 0.66695990000E+00 0.24981420000E+01 0.32740000000E+04 -0.56130806000E-03 0.37227219000E-03 0.99999977317E+00 984 -0.19132140000E+01 0.18532150000E+01 0.32740000000E+04 -0.18914987000E-03 -0.17047234000E-03 0.99999996758E+00 985 -0.19132140000E+01 0.18532150000E+01 0.32740000000E+04 -0.18914987000E-03 -0.17047234000E-03 0.99999996758E+00 986 -0.19105460000E+01 -0.93957330000E+00 0.32740000000E+04 0.72158815000E-04 -0.41632832000E-03 0.99999991073E+00 987 -0.21156860000E+01 0.28613270000E+00 0.32740000000E+04 -0.71719021000E-03 -0.14072808000E-04 0.99999974272E+00 988 -0.17495630000E+01 0.52025890000E-01 0.32740000000E+04 -0.17241493000E-03 -0.57420292000E-03 0.99999982028E+00 989 0.53931120000E+00 0.10110070000E+01 0.32740000000E+04 0.20915487000E-03 -0.66980062000E-03 0.99999975381E+00 990 0.54160510000E+00 -0.10153040000E+01 0.32740000000E+04 0.16627632000E-03 0.28944472000E-03 0.99999994429E+00 991 0.29871450000E+00 -0.10266570000E+01 0.32740000000E+04 0.50724018000E-03 -0.24511595000E-03 0.99999984131E+00 992 0.19613910000E+01 0.17625550000E+01 0.32740000000E+04 0.18903206000E-03 -0.45972506000E-05 0.99999998212E+00 993 0.51355350000E+00 -0.12194140000E+01 0.32740000000E+04 0.45393081000E-03 -0.52140607000E-03 0.99999976104E+00 994 0.51355350000E+00 -0.12194140000E+01 0.32740000000E+04 0.45393081000E-03 -0.52140607000E-03 0.99999976104E+00 995 -0.56519460000E+00 0.18484150000E+01 0.32740000000E+04 -0.23291197000E-04 -0.13153414000E-03 0.99999999108E+00 996 -0.91950700000E-01 0.11718920000E+01 0.32740000000E+04 0.27272571000E-03 0.10675514000E-03 0.99999995711E+00 997 0.72497270000E-01 0.14671340000E+01 0.32740000000E+04 0.44402652000E-03 -0.19745032000E-03 0.99999988193E+00 998 -0.15744890000E+01 0.30715030000E+00 0.32740000000E+04 -0.46024285000E-04 0.21608321000E-03 0.99999997559E+00 999 -0.22610230000E+01 0.55555130000E+00 0.32740000000E+04 -0.35882741000E-03 -0.11146263000E-03 0.99999992941E+00 1000 0.52017780000E+00 0.11862630000E+01 0.32740000000E+04 -0.36466352000E-03 0.93671016000E-03 0.99999949480E+00 1 0.55555210000E+00 0.71656850000E+00 0.32740000000E+04 0.34348338000E-03 0.32770280000E-04 0.99999994047E+00 2 -0.37603230000E+00 0.10975110000E+01 0.32740000000E+04 -0.32180065000E-03 0.66165457000E-03 0.99999972933E+00 3 0.13195150000E+01 0.26769960000E+00 0.32740000000E+04 -0.30453833000E-04 0.36410254000E-03 0.99999993325E+00 4 -0.86614760000E+00 -0.88073100000E+00 0.32740000000E+04 -0.28178209000E-03 -0.32814927000E-03 0.99999990646E+00 5 0.47585950000E+00 0.70162240000E+00 0.32740000000E+04 0.19272376000E-03 0.12282436000E-03 0.99999997389E+00 6 0.19433530000E+00 0.14922780000E+01 0.32740000000E+04 0.24189534000E-03 0.44052373000E-03 0.99999987371E+00 7 -0.10987850000E+01 -0.67949050000E+00 0.32740000000E+04 0.40250504000E-03 -0.37533347000E-03 0.99999984856E+00 8 0.10975730000E+01 -0.14958510000E+00 0.32740000000E+04 0.35843819000E-04 -0.15238677000E-03 0.99999998775E+00 9 -0.27773370000E+01 0.33644380000E+00 0.32740000000E+04 0.16704103000E-03 0.79160579000E-03 0.99999967273E+00 10 -0.22547370000E+01 0.41006050000E+00 0.32740000000E+04 -0.23508929000E-03 -0.19017704000E-03 0.99999995428E+00 11 -0.63193880000E+00 0.21505590000E+01 0.32740000000E+04 0.47186154000E-03 -0.17172766000E-03 0.99999987393E+00 12 0.17101550000E+01 0.63055740000E+00 0.32740000000E+04 0.42895143000E-03 0.29050096000E-03 0.99999986580E+00 13 -0.24948440000E+01 0.11865940000E+01 0.32740000000E+04 0.15500410000E-02 0.10771250000E-02 0.99999821859E+00 14 -0.13369620000E-01 0.18315110000E+01 0.32740000000E+04 -0.61276383000E-04 -0.26978375000E-03 0.99999996173E+00 15 0.17319560000E+01 0.17661650000E+01 0.32740000000E+04 0.60240802000E-03 -0.43069621000E-03 0.99999972580E+00 16 -0.20848950000E+01 0.10898800000E+01 0.32740000000E+04 0.51312504000E-03 0.53848873000E-03 0.99999972337E+00 17 -0.99631630000E+00 -0.93347810000E+00 0.32740000000E+04 0.33459949000E-03 -0.60767425000E-05 0.99999994400E+00 18 -0.99631630000E+00 -0.93347810000E+00 0.32740000000E+04 0.33459949000E-03 -0.60767425000E-05 0.99999994400E+00 19 -0.36418360000E+00 -0.34837980000E+00 0.32740000000E+04 0.12833907000E-03 0.96355347000E-04 0.99999998712E+00 20 -0.33874140000E+00 0.10143860000E+00 0.32740000000E+04 0.23610709000E-03 -0.37446336000E-03 0.99999990202E+00 21 0.19816460000E+01 0.18791900000E+01 0.32740000000E+04 0.43043317000E-03 -0.41705262000E-03 0.99999982040E+00 22 -0.68500390000E+00 0.10003440000E+01 0.32740000000E+04 0.77119046000E-04 -0.56950252000E-04 0.99999999540E+00 23 -0.16447130000E+01 0.15287570000E+01 0.32740000000E+04 -0.12585515000E-03 0.28774500000E-03 0.99999995068E+00 24 0.10496620000E-01 0.10282180000E+01 0.32740000000E+04 -0.33948300000E-03 0.82361410000E-04 0.99999993898E+00 25 -0.15287010000E+01 -0.18209670000E+01 0.32740000000E+04 -0.23848475000E-03 -0.39417445000E-03 0.99999989388E+00 26 -0.44803940000E-01 0.36433670000E-01 0.32740000000E+04 -0.11409864000E-03 -0.17870250000E-03 0.99999997752E+00 27 -0.26792380000E+01 0.40718750000E+00 0.32740000000E+04 -0.17541983000E-03 -0.80475205000E-03 0.99999966080E+00 28 -0.10905160000E+01 -0.52118180000E+00 0.32740000000E+04 0.28210509000E-03 -0.54642203000E-03 0.99999981092E+00 29 0.10467730000E+01 0.15092190000E+01 0.32740000000E+04 0.71452430000E-03 0.50417922000E-03 0.99999961763E+00 30 0.71161190000E+00 -0.80414870000E+00 0.32740000000E+04 -0.41407242000E-03 -0.78292367000E-04 0.99999991121E+00 31 -0.73706160000E+00 0.10963210000E+01 0.32740000000E+04 -0.20776186000E-03 -0.44081867000E-05 0.99999997841E+00 32 -0.26148060000E+01 -0.11235650000E+01 0.32740000000E+04 -0.40479275000E-03 -0.28651478000E-03 0.99999987703E+00 33 -0.11788120000E+01 -0.76725770000E+00 0.32740000000E+04 0.50053507000E-03 -0.30376033000E-04 0.99999987427E+00 34 0.70355360000E+00 0.71344100000E+00 0.32740000000E+04 0.16591487000E-03 0.16205529000E-03 0.99999997311E+00 35 -0.25737110000E+01 0.30090900000E+00 0.32740000000E+04 -0.11135116000E-03 -0.50333742000E-03 0.99999986713E+00 36 -0.15186350000E+01 -0.51838600000E+00 0.32740000000E+04 -0.15601574000E-03 0.88156616000E-04 0.99999998394E+00 37 -0.15186350000E+01 -0.51838600000E+00 0.32740000000E+04 -0.15601574000E-03 0.88156616000E-04 0.99999998394E+00 38 -0.94653710000E+00 0.96433660000E+00 0.32740000000E+04 0.22733558000E-03 0.41808729000E-03 0.99999988676E+00 39 0.93647460000E+00 0.21398680000E+01 0.32740000000E+04 0.18618870000E-03 -0.15723727000E-03 0.99999997031E+00 40 0.10221000000E+01 0.14883960000E+01 0.32740000000E+04 0.31775908000E-03 0.19390196000E-03 0.99999993072E+00 41 0.11966410000E+00 0.19372070000E+01 0.32740000000E+04 0.63972634000E-05 -0.22501973000E-03 0.99999997466E+00 42 -0.31086470000E+00 -0.10110010000E+01 0.32740000000E+04 0.45888079000E-04 0.22721582000E-04 0.99999999869E+00 43 -0.84683910000E+00 0.22572560000E+00 0.32740000000E+04 -0.11179889000E-03 -0.93728420000E-03 0.99999955450E+00 44 0.30691830000E+00 0.15089730000E+01 0.32740000000E+04 0.42196797000E-03 -0.14582889000E-03 0.99999990034E+00 45 -0.22724230000E+01 0.41958520000E+00 0.32740000000E+04 -0.13817134000E-03 -0.81699232000E-04 0.99999998712E+00 46 -0.45615200000E+00 -0.10727170000E+00 0.32740000000E+04 -0.69505608000E-04 -0.40344711000E-03 0.99999991620E+00 47 0.20246500000E+00 0.13921280000E+01 0.32740000000E+04 0.20919216000E-03 0.23166300000E-03 0.99999995129E+00 48 0.16736260000E+01 0.16387450000E+01 0.32740000000E+04 0.56862918000E-03 0.39201207000E-03 0.99999976149E+00 49 -0.43539510000E+00 0.12139400000E+01 0.32740000000E+04 0.95361080000E-04 -0.90245143000E-04 0.99999999138E+00 50 -0.43329540000E+00 0.18699010000E+01 0.32740000000E+04 -0.17144476000E-03 0.33931236000E-03 0.99999992774E+00 51 0.20038300000E+01 -0.87811390000E+00 0.32740000000E+04 0.39613096000E-03 -0.15635583000E-03 0.99999990932E+00 52 -0.50688740000E-01 0.21656060000E+01 0.32740000000E+04 -0.60199609000E-03 0.30077726000E-03 0.99999977357E+00 53 0.10413190000E+01 0.97505530000E+00 0.32740000000E+04 0.36368202000E-03 -0.50217897000E-03 0.99999980778E+00 54 0.71776920000E+00 0.27483970000E+00 0.32740000000E+04 0.21623434000E-03 -0.48998266000E-03 0.99999985658E+00 55 0.14970780000E+01 -0.14785660000E+01 0.32740000000E+04 0.57110074000E-03 -0.38569534000E-03 0.99999976254E+00 56 0.61607170000E-01 0.90618860000E+00 0.32740000000E+04 0.33799509000E-03 0.24572093000E-03 0.99999991269E+00 57 -0.19487460000E+00 0.60632590000E-01 0.32740000000E+04 0.42060306000E-03 -0.16952767000E-03 0.99999989718E+00 58 -0.66920990000E+00 0.93711430000E+00 0.32740000000E+04 0.40939677000E-03 0.84864194000E-04 0.99999991260E+00 59 -0.10074560000E+01 0.75151710000E+00 0.32740000000E+04 0.26185490000E-03 0.43995818000E-03 0.99999986893E+00 60 -0.55044270000E+00 0.56320310000E+00 0.32740000000E+04 -0.55024058000E-04 0.22463127000E-03 0.99999997326E+00 61 -0.14322840000E+01 0.10820630000E+01 0.32740000000E+04 -0.41141282000E-03 -0.84532527000E-04 0.99999991180E+00 62 -0.14322840000E+01 0.10820630000E+01 0.32740000000E+04 -0.41141282000E-03 -0.84532527000E-04 0.99999991180E+00 63 0.19874370000E+00 0.16312110000E+01 0.32740000000E+04 -0.27761716000E-03 0.25047129000E-04 0.99999996115E+00 64 0.19713530000E+00 0.14541580000E+01 0.32740000000E+04 -0.95331139000E-04 0.30430256000E-04 0.99999999499E+00 65 -0.13644360000E+01 0.43545160000E+00 0.32740000000E+04 -0.37487905000E-03 0.21532267000E-03 0.99999990655E+00 66 -0.45151820000E+00 -0.80132710000E-01 0.32740000000E+04 0.38281031000E-03 0.15254755000E-03 0.99999991509E+00 67 -0.13932870000E+00 -0.27154500000E+00 0.32740000000E+04 0.28986612000E-03 -0.43601979000E-03 0.99999986293E+00 68 -0.15439600000E+01 0.13253200000E+01 0.32740000000E+04 -0.99331965000E-06 0.12675166000E-03 0.99999999197E+00 69 -0.20866720000E+01 0.85851040000E+00 0.32740000000E+04 -0.34350369000E-03 -0.28428927000E-03 0.99999990059E+00 70 -0.18998900000E+00 0.20692920000E+01 0.32740000000E+04 -0.21857704000E-04 -0.35394917000E-03 0.99999993712E+00 71 -0.42217810000E+00 0.17815560000E+01 0.32740000000E+04 -0.57943298000E-05 -0.48177732000E-04 0.99999999882E+00 72 0.76321200000E+00 0.55468670000E+00 0.32740000000E+04 0.21815307000E-03 -0.20916788000E-03 0.99999995433E+00 73 0.50600870000E+00 -0.58097850000E+00 0.32740000000E+04 0.39244408000E-03 -0.17113017000E-03 0.99999990835E+00 74 -0.81384180000E+00 -0.51453050000E+00 0.32740000000E+04 0.10578960000E-04 -0.52431831000E-03 0.99999986249E+00 75 0.73424660000E+00 0.10151920000E+01 0.32740000000E+04 0.25853445000E-03 0.38558949000E-03 0.99999989224E+00 76 0.10392600000E+01 0.12894510000E+01 0.32740000000E+04 0.14915154000E-03 0.33922456000E-03 0.99999993134E+00 77 -0.17361080000E+01 -0.81667140000E+00 0.32740000000E+04 0.18992642000E-03 -0.16978581000E-03 0.99999996755E+00 78 0.10117140000E+01 0.22754510000E+00 0.32740000000E+04 0.10837677000E-03 -0.43101373000E-03 0.99999990124E+00 79 -0.14071060000E+01 0.24070330000E+01 0.32740000000E+04 -0.10652914000E-03 0.15523285000E-04 0.99999999421E+00 80 -0.10220650000E+01 0.18427430000E+01 0.32740000000E+04 -0.13137204000E-04 0.40353152000E-04 0.99999999910E+00 81 -0.10220650000E+01 0.18427430000E+01 0.32740000000E+04 -0.13137204000E-04 0.40353152000E-04 0.99999999910E+00 82 -0.22439240000E+01 -0.78784310000E+00 0.32740000000E+04 -0.26441299000E-03 -0.22427199000E-03 0.99999993989E+00 83 -0.86561510000E+00 0.21297010000E+01 0.32740000000E+04 -0.13248190000E-03 0.40010575000E-03 0.99999991118E+00 84 -0.11392240000E+01 0.21663770000E+01 0.32740000000E+04 0.36821142000E-03 0.17953430000E-03 0.99999991609E+00 85 0.39772390000E+00 0.10495090000E+01 0.32740000000E+04 -0.25418407000E-03 -0.67423724000E-04 0.99999996542E+00 86 -0.15913140000E+01 0.20276260000E+01 0.32740000000E+04 -0.48977591000E-03 0.31422634000E-03 0.99999983069E+00 87 0.51930890000E+00 0.15976060000E+01 0.32740000000E+04 -0.13037340000E-03 -0.72049559000E-04 0.99999998891E+00 88 -0.15961530000E+01 0.29657220000E+01 0.32740000000E+04 -0.40559686000E-03 -0.21349249000E-03 0.99999989496E+00 89 -0.26177430000E+00 -0.10409820000E+01 0.32740000000E+04 0.26707686000E-03 -0.56575140000E-03 0.99999980430E+00 90 -0.11967850000E+01 0.26911830000E+01 0.32740000000E+04 0.47737602000E-04 0.38778122000E-04 0.99999999811E+00 91 0.17871010000E+00 0.31011430000E+00 0.32740000000E+04 0.32807002000E-03 0.11386357000E-03 0.99999993970E+00 92 -0.19089730000E+01 0.26782980000E+01 0.32740000000E+04 0.25897182000E-03 -0.77658195000E-04 0.99999996345E+00 93 -0.21708480000E+01 0.12140280000E+01 0.32740000000E+04 0.67613394000E-06 0.31768647000E-03 0.99999994954E+00 94 0.41415920000E+00 0.18089210000E+01 0.32740000000E+04 -0.16345773000E-03 0.18909563000E-03 0.99999996876E+00 95 -0.92335950000E+00 0.18427980000E+01 0.32740000000E+04 0.39343875000E-04 0.17041045000E-03 0.99999998471E+00 96 -0.92335950000E+00 0.18427980000E+01 0.32740000000E+04 0.39343875000E-04 0.17041045000E-03 0.99999998471E+00 97 -0.11925740000E+00 -0.11956740000E+01 0.32740000000E+04 -0.26898045000E-03 -0.21692640000E-03 0.99999994030E+00 98 -0.25563770000E+01 0.21765530000E+01 0.32740000000E+04 -0.30100677000E-03 0.46138253000E-03 0.99999984826E+00 99 -0.21054260000E+01 -0.13591280000E+00 0.32740000000E+04 -0.15475374000E-03 0.70169925000E-04 0.99999998556E+00 100 0.74366350000E+00 0.17599700000E+01 0.32740000000E+04 -0.42257857000E-03 0.33475002000E-03 0.99999985468E+00 101 -0.23037240000E+01 0.14270470000E+01 0.32740000000E+04 0.17583596000E-03 -0.11581241000E-02 0.99999931391E+00 102 -0.20871600000E+01 -0.97692780000E+00 0.32740000000E+04 -0.11931319000E-03 -0.26205485000E-03 0.99999995855E+00 103 -0.20871600000E+01 -0.97692780000E+00 0.32740000000E+04 -0.11931319000E-03 -0.26205485000E-03 0.99999995855E+00 104 -0.10706710000E+01 -0.14440370000E+01 0.32740000000E+04 -0.45034039000E-03 -0.15444109000E-03 0.99999988667E+00 105 0.57078270000E+00 0.12318250000E+01 0.32740000000E+04 -0.91179114000E-04 -0.72396077000E-04 0.99999999322E+00 106 -0.16102860000E+01 0.21873474000E-02 0.32740000000E+04 0.22808641000E-03 0.29532929000E-03 0.99999993038E+00 107 -0.20625640000E+01 -0.17724660000E+01 0.32740000000E+04 -0.13440491000E-03 -0.41571012000E-03 0.99999990456E+00 108 -0.23383100000E+01 -0.19244630000E+00 0.32740000000E+04 -0.11989843000E-03 0.15786078000E-03 0.99999998035E+00 109 0.62658930000E+00 -0.13778630000E+01 0.32740000000E+04 -0.78105528000E-04 0.49144163000E-03 0.99999987619E+00 110 -0.12781930000E+00 0.11694960000E+01 0.32740000000E+04 -0.10160671000E-02 -0.55260625000E-03 0.99999933112E+00 111 -0.22786520000E+00 0.16658830000E+01 0.32740000000E+04 0.74962672000E-03 -0.79478697000E-04 0.99999971587E+00 112 -0.44167550000E+00 -0.61663170000E+00 0.32740000000E+04 0.46205893000E-03 -0.31476523000E-03 0.99999984371E+00 113 0.53601860000E+00 0.14532670000E+01 0.32740000000E+04 0.20140699000E-03 0.19951521000E-03 0.99999995981E+00 114 -0.10759180000E+01 0.11436790000E+01 0.32740000000E+04 0.49266993000E-03 0.11957915000E-03 0.99999987149E+00 115 0.13519650000E+01 0.36537160000E+00 0.32740000000E+04 -0.50648447000E-04 0.19142502000E-03 0.99999998040E+00 116 -0.92313100000E-01 -0.40156010000E+00 0.32740000000E+04 0.32647967000E-03 0.22750460000E-03 0.99999992083E+00 117 -0.88782260000E-01 -0.87484320000E+00 0.32740000000E+04 -0.37041260000E-03 0.12464698000E-03 0.99999992363E+00 118 -0.26275520000E+01 -0.46090450000E+00 0.32740000000E+04 -0.27767336000E-03 0.26542440000E-03 0.99999992622E+00 119 -0.14165340000E+01 0.13596600000E+01 0.32740000000E+04 0.18660921000E-04 0.64900640000E-04 0.99999999772E+00 120 0.85781870000E+00 -0.98046670000E+00 0.32740000000E+04 0.15315227000E-04 0.22084574000E-03 0.99999997550E+00 121 0.15099520000E+01 -0.50727060000E+00 0.32740000000E+04 0.36765105000E-03 -0.13745276000E-03 0.99999992297E+00 122 0.71184220000E+00 0.65884540000E-01 0.32740000000E+04 -0.52856842000E-04 0.13935527000E-03 0.99999998889E+00 123 -0.40844390000E+00 -0.20782850000E-01 0.32740000000E+04 -0.10101943000E-03 0.10101503000E-03 0.99999998980E+00 124 0.92694910000E+00 0.84034980000E+00 0.32740000000E+04 -0.91324124000E-04 0.41375673000E-03 0.99999991023E+00 125 -0.13263310000E+01 -0.13447360000E+01 0.32740000000E+04 0.53406978000E-03 -0.20213705000E-03 0.99999983696E+00 126 -0.13263310000E+01 -0.13447360000E+01 0.32740000000E+04 0.53406978000E-03 -0.20213705000E-03 0.99999983696E+00 127 0.14716890000E+01 0.10799130000E+01 0.32740000000E+04 0.44755207000E-03 -0.21674385000E-03 0.99999987636E+00 128 0.66110010000E+00 0.27412000000E+00 0.32740000000E+04 0.40603784000E-03 0.37015762000E-03 0.99999984906E+00 129 0.87813780000E+00 0.85675150000E+00 0.32740000000E+04 0.24094318000E-03 0.31708114000E-03 0.99999992070E+00 130 0.79614940000E+00 -0.21763570000E+00 0.32740000000E+04 0.16707013000E-03 -0.12011728000E-03 0.99999997883E+00 131 -0.10732510000E+01 0.53675350000E+00 0.32740000000E+04 -0.50999568000E-03 -0.29422194000E-04 0.99999986952E+00 132 -0.12755610000E+00 0.56532920000E+00 0.32740000000E+04 0.50511578000E-03 -0.50978590000E-03 0.99999974249E+00 133 -0.86619930000E+00 0.28776220000E+00 0.32740000000E+04 -0.19507472000E-03 -0.44753921000E-03 0.99999988083E+00 134 0.31811660000E+00 -0.64336290000E+00 0.32740000000E+04 0.27206508000E-03 0.34650066000E-03 0.99999990296E+00 135 0.31811660000E+00 -0.64336290000E+00 0.32740000000E+04 0.27206508000E-03 0.34650066000E-03 0.99999990296E+00 136 -0.16129590000E+01 0.19012620000E+01 0.32740000000E+04 -0.24085170000E-04 0.29063222000E-03 0.99999995748E+00 137 -0.11097210000E+01 -0.61375850000E+00 0.32740000000E+04 0.25548768000E-03 0.10506842000E-03 0.99999996184E+00 138 -0.13098120000E+01 -0.13948230000E+01 0.32740000000E+04 0.43330927000E-03 -0.15427230000E-03 0.99999989422E+00 139 -0.20293640000E+01 0.12068960000E+01 0.32740000000E+04 0.26244579000E-04 0.33031374000E-04 0.99999999911E+00 140 0.98392230000E+00 0.47240670000E+00 0.32740000000E+04 0.36899987000E-03 -0.35311471000E-03 0.99999986957E+00 141 -0.16945990000E+01 0.26206800000E+01 0.32740000000E+04 -0.60543367000E-04 -0.49417844000E-03 0.99999987606E+00 142 -0.47789750000E+00 0.11617050000E+01 0.32740000000E+04 0.70468595000E-04 -0.12146137000E-03 0.99999999014E+00 143 -0.28376910000E+00 0.16622440000E+01 0.32740000000E+04 -0.41549027000E-03 -0.34859410000E-03 0.99999985292E+00 144 -0.22740990000E+01 -0.65475220000E+00 0.32740000000E+04 0.21736165000E-04 0.39780579000E-03 0.99999992064E+00 145 -0.10856030000E+01 0.93284190000E+00 0.32740000000E+04 -0.20885617000E-03 0.12981937000E-03 0.99999996976E+00 146 -0.19209430000E+00 0.12408730000E+01 0.32740000000E+04 -0.22872833000E-03 0.17609964000E-03 0.99999995834E+00 147 -0.12325510000E+01 -0.10817610000E+01 0.32740000000E+04 -0.84334868000E-04 -0.53502223000E-03 0.99999985332E+00 148 -0.16170510000E+01 0.87665600000E+00 0.32740000000E+04 0.10782482000E-03 0.47179003000E-03 0.99999988289E+00 149 -0.70000850000E+00 0.53799860000E+00 0.32740000000E+04 0.24705782000E-03 -0.64209729000E-04 0.99999996742E+00 150 0.65606840000E+00 0.23425760000E+00 0.32740000000E+04 0.11653521000E-03 -0.52479829000E-03 0.99999985550E+00 151 0.65606840000E+00 0.23425760000E+00 0.32740000000E+04 0.11653521000E-03 -0.52479829000E-03 0.99999985550E+00 152 -0.14034330000E+00 -0.18938780000E+00 0.32740000000E+04 0.63963991000E-03 -0.37224655000E-03 0.99999972615E+00 153 -0.60725050000E+00 0.22997680000E+01 0.32740000000E+04 0.20770737000E-03 0.47564894000E-03 0.99999986531E+00 154 0.29758880000E+00 0.21351610000E+01 0.32740000000E+04 0.50383626000E-03 0.28935527000E-04 0.99999987266E+00 155 0.10759430000E+01 0.12872170000E+01 0.32740000000E+04 0.38874079000E-03 0.58422040000E-04 0.99999992273E+00 156 0.85607550000E+00 0.85506760000E+00 0.32740000000E+04 0.36404553000E-03 0.24274408000E-04 0.99999993344E+00 157 -0.27597040000E+00 0.26285260000E+01 0.32740000000E+04 0.41251374000E-05 0.45744975000E-04 0.99999999895E+00 158 -0.20662210000E+01 0.10139310000E+01 0.32740000000E+04 -0.32880239000E-03 0.51301502000E-03 0.99999981435E+00 159 -0.16476480000E+01 0.26351760000E+01 0.32740000000E+04 0.24221798000E-03 -0.62598614000E-04 0.99999996871E+00 160 -0.11110640000E+01 0.21004670000E+00 0.32740000000E+04 0.25562069000E-03 0.29486534000E-03 0.99999992386E+00 161 0.11969330000E+01 0.10868370000E+01 0.32740000000E+04 -0.13359525000E-03 -0.16043840000E-03 0.99999997821E+00 162 -0.11187640000E+01 -0.93497590000E+00 0.32740000000E+04 0.90001631000E-04 -0.34696396000E-03 0.99999993576E+00 163 -0.23052870000E+01 0.95929030000E+00 0.32740000000E+04 0.15480710000E-03 0.34464665000E-04 0.99999998742E+00 164 0.16802330000E+01 -0.69512300000E+00 0.32740000000E+04 0.35069927000E-03 -0.11266799000E-03 0.99999993216E+00 165 0.10937280000E+01 0.18802260000E+00 0.32740000000E+04 -0.23298571000E-03 0.34956582000E-03 0.99999991176E+00 166 0.16957220000E+01 0.73920390000E+00 0.32740000000E+04 -0.51955401000E-04 -0.14456855000E-03 0.99999998820E+00 167 -0.52214550000E+00 0.13666140000E+01 0.32740000000E+04 0.25495878000E-03 0.98075121000E-04 0.99999996269E+00 168 -0.80912300000E+00 0.17330440000E+01 0.32740000000E+04 0.96972231000E-04 -0.32070748000E-03 0.99999994387E+00 169 0.17800190000E+00 0.16862560000E+01 0.32740000000E+04 0.27741012000E-03 0.10860680000E-03 0.99999995562E+00 170 -0.62973960000E+00 -0.14492550000E+01 0.32740000000E+04 0.12738047000E-03 -0.26684286000E-03 0.99999995628E+00 171 -0.99169730000E-01 0.69858660000E+00 0.32740000000E+04 -0.10790153000E-03 0.25507159000E-03 0.99999996165E+00 172 -0.99169730000E-01 0.69858660000E+00 0.32740000000E+04 -0.10790153000E-03 0.25507159000E-03 0.99999996165E+00 173 0.16350760000E+00 0.42187950000E-01 0.32740000000E+04 0.48871397000E-03 0.28672875000E-03 0.99999983947E+00 174 -0.27581480000E+01 -0.33084760000E+00 0.32740000000E+04 0.32409484000E-04 -0.17907399000E-03 0.99999998344E+00 175 -0.23075480000E+01 0.18716900000E+01 0.32740000000E+04 -0.17025280000E-03 0.49832446000E-03 0.99999986134E+00 176 -0.19994340000E+01 -0.20076280000E+00 0.32740000000E+04 0.19314160000E-03 -0.96582016000E-05 0.99999998130E+00 177 -0.42378640000E+00 -0.10251420000E+01 0.32740000000E+04 0.17507414000E-03 0.35873274000E-03 0.99999992033E+00 178 -0.91710900000E+00 -0.57522460000E-01 0.32740000000E+04 -0.23425659000E-03 -0.70575530000E-04 0.99999997007E+00 179 0.68483170000E+00 0.30617840000E+01 0.32740000000E+04 0.33526638000E-03 -0.26431817000E-05 0.99999994379E+00 180 -0.36311070000E+00 0.97085230000E+00 0.32740000000E+04 -0.89348498000E-04 0.44037392000E-05 0.99999999600E+00 181 -0.12713760000E+01 0.82111970000E+00 0.32740000000E+04 -0.32409190000E-03 -0.29182105000E-03 0.99999990490E+00 182 0.18498920000E+01 -0.69074200000E+00 0.32740000000E+04 0.30498192000E-03 -0.56504860000E-03 0.99999979385E+00 183 -0.11780140000E+01 0.16158240000E+01 0.32740000000E+04 -0.32085666000E-03 -0.12868100000E-03 0.99999994025E+00 184 -0.11780140000E+01 0.16158240000E+01 0.32740000000E+04 -0.32085666000E-03 -0.12868100000E-03 0.99999994025E+00 185 -0.10866140000E+01 0.20416680000E+01 0.32740000000E+04 -0.35280545000E-03 0.15074588000E-03 0.99999992640E+00 186 -0.89709530000E+00 0.82958840000E+00 0.32740000000E+04 0.16923477000E-03 0.19055933000E-04 0.99999998550E+00 187 -0.70513170000E+00 0.73503760000E+00 0.32740000000E+04 -0.46233393000E-03 0.38593760000E-03 0.99999981865E+00 188 0.15760950000E+01 0.10855890000E+01 0.32740000000E+04 0.64929802000E-03 -0.33887062000E-03 0.99999973179E+00 189 -0.74890360000E+00 0.15869200000E+01 0.32740000000E+04 0.43207593000E-03 0.26711824000E-03 0.99999987098E+00 190 -0.19864660000E+01 0.62179940000E+00 0.32740000000E+04 0.29957031000E-02 0.36338635000E-03 0.99999544685E+00 191 -0.69412220000E+00 0.24362710000E+01 0.32740000000E+04 -0.30944298000E-04 0.42875935000E-03 0.99999990760E+00 192 -0.16366320000E+01 0.14170280000E+01 0.32740000000E+04 -0.35641805000E-03 -0.96415941000E-04 0.99999993184E+00 193 -0.29085700000E+01 -0.49354550000E+00 0.32740000000E+04 0.28041916000E-03 0.32659413000E-03 0.99999990735E+00 194 -0.15518110000E+01 0.95971300000E+00 0.32740000000E+04 -0.14564861000E-03 -0.21828727000E-03 0.99999996557E+00 195 0.12051680000E+01 0.90281910000E+00 0.32740000000E+04 -0.19365942000E-03 0.35444778000E-03 0.99999991843E+00 196 0.71598780000E+00 0.38016920000E+00 0.32740000000E+04 0.69332722000E-03 -0.92632974000E-04 0.99999975536E+00 197 -0.50882640000E+00 0.49288800000E+00 0.32740000000E+04 -0.48079764000E-03 0.52754203000E-03 0.99999974527E+00 198 -0.17479970000E+01 0.66742840000E+00 0.32740000000E+04 -0.38962688000E-04 -0.40139936000E-03 0.99999991868E+00 199 -0.62787190000E+00 0.20814240000E+00 0.32740000000E+04 0.86126232000E-03 -0.29280709000E-03 0.99999958625E+00 200 -0.62787190000E+00 0.20814240000E+00 0.32740000000E+04 0.86126232000E-03 -0.29280709000E-03 0.99999958625E+00 201 -0.18907950000E+01 0.19338250000E+01 0.32740000000E+04 0.53175067000E-03 0.25326715000E-03 0.99999982655E+00 202 -0.10807100000E+01 0.21499160000E+00 0.32740000000E+04 -0.11091484000E-03 0.66598511000E-03 0.99999977208E+00 203 -0.12806880000E+00 0.14968000000E+01 0.32740000000E+04 -0.54185552000E-03 0.58666867000E-03 0.99999968111E+00 204 0.57118010000E+00 0.14796980000E+01 0.32740000000E+04 -0.68595855000E-05 0.27760796000E-03 0.99999996144E+00 205 -0.17390320000E+01 0.30096770000E+00 0.32740000000E+04 0.37900815000E-03 -0.12988053000E-03 0.99999991974E+00 206 -0.41641450000E+00 0.20465960000E+00 0.32740000000E+04 -0.58526767000E-03 0.16532120000E-04 0.99999982859E+00 207 0.19158920000E+00 0.70740560000E+00 0.32740000000E+04 0.56307996000E-03 -0.14632900000E-03 0.99999983076E+00 208 0.48417780000E+00 0.11040540000E+01 0.32740000000E+04 -0.27152270000E-03 -0.19203455000E-04 0.99999996295E+00 209 0.21627910000E+01 0.15714170000E+01 0.32740000000E+04 0.16000863000E-03 -0.28334558000E-03 0.99999994706E+00 210 -0.22268930000E+00 0.87929360000E+00 0.32740000000E+04 -0.13196554000E-03 -0.13969396000E-03 0.99999998154E+00 211 -0.22268930000E+00 0.87929360000E+00 0.32740000000E+04 -0.13196554000E-03 -0.13969396000E-03 0.99999998154E+00 212 0.99123990000E+00 0.19230880000E+01 0.32740000000E+04 -0.63156607000E-04 -0.15450976000E-03 0.99999998607E+00 213 -0.19878930000E+01 -0.12159160000E-01 0.32740000000E+04 -0.63953717000E-03 -0.25353211000E-03 0.99999976336E+00 214 -0.84577950000E-01 0.24359250000E+01 0.32740000000E+04 -0.35685902000E-04 0.12280090000E-04 0.99999999929E+00 215 -0.15209850000E+01 0.11558560000E+01 0.32740000000E+04 -0.67688653000E-03 0.36912659000E-03 0.99999970279E+00 216 -0.80888680000E+00 0.18565490000E+01 0.32740000000E+04 0.13449580000E-02 -0.60042442000E-03 0.99999891529E+00 217 0.64391360000E+00 0.11199230000E+01 0.32740000000E+04 0.21215008000E-04 -0.10678675000E-03 0.99999999407E+00 218 -0.10459300000E+01 0.19652400000E+01 0.32740000000E+04 0.45562370000E-04 0.22609919000E-03 0.99999997340E+00 219 -0.45314370000E+00 0.74574200000E+00 0.32740000000E+04 0.11332604000E-03 -0.19623979000E-03 0.99999997432E+00 220 -0.63650900000E+00 0.38451140000E+00 0.32740000000E+04 -0.35602701000E-03 -0.32459805000E-03 0.99999988394E+00 221 0.72591960000E+00 0.20696160000E+01 0.32740000000E+04 0.24161785000E-03 0.29127870000E-03 0.99999992839E+00 222 0.72591960000E+00 0.20696160000E+01 0.32740000000E+04 0.24161785000E-03 0.29127870000E-03 0.99999992839E+00 223 0.13494360000E+01 -0.36229140000E+00 0.32740000000E+04 0.37712482000E-03 -0.17935759000E-03 0.99999991280E+00 224 -0.13433080000E+01 0.11221250000E+01 0.32740000000E+04 -0.14032180000E-05 0.49882202000E-03 0.99999987559E+00 225 -0.13050250000E+01 0.96132150000E+00 0.32740000000E+04 -0.45817732000E-03 0.27195417000E-03 0.99999985806E+00 226 -0.16747960000E+01 0.11836610000E+01 0.32740000000E+04 0.10807357000E-04 -0.73967640000E-04 0.99999999721E+00 227 0.21228090000E+01 0.16720680000E+00 0.32740000000E+04 0.11619757000E-03 -0.24552815000E-03 0.99999996311E+00 228 -0.21819490000E+01 0.25695760000E+00 0.32740000000E+04 -0.69825976000E-04 0.72474912000E-03 0.99999973493E+00 229 0.41899920000E+00 0.10827580000E+01 0.32740000000E+04 0.37822363000E-04 0.68773353000E-03 0.99999976280E+00 230 -0.46178870000E+00 0.56927530000E+00 0.32740000000E+04 -0.49873994000E-03 -0.11618266000E-03 0.99999986888E+00 231 -0.12094820000E+01 -0.24307800000E+00 0.32740000000E+04 -0.26966067000E-03 -0.42031552000E-04 0.99999996276E+00 232 -0.13955100000E+01 0.52685040000E+00 0.32740000000E+04 0.34824302000E-03 0.24913714000E-03 0.99999990833E+00 233 -0.13955100000E+01 0.52685040000E+00 0.32740000000E+04 0.34824302000E-03 0.24913714000E-03 0.99999990833E+00 234 -0.46410440000E+00 0.54554850000E+00 0.32740000000E+04 -0.34417352000E-03 0.31661667000E-03 0.99999989065E+00 235 -0.25252310000E+01 -0.58037230000E-01 0.32740000000E+04 -0.31622258000E-03 -0.43495628000E-03 0.99999985541E+00 236 -0.15333420000E+01 0.13289970000E+01 0.32740000000E+04 -0.24550201000E-03 0.10819429000E-03 0.99999996401E+00 237 0.14559300000E+01 -0.17058340000E+00 0.32740000000E+04 0.85875334000E-04 -0.34027037000E-03 0.99999993842E+00 238 -0.10939240000E+01 0.18716210000E-01 0.32740000000E+04 0.22518336000E-03 -0.74274612000E-05 0.99999997462E+00 239 -0.17119180000E+01 0.15351960000E+01 0.32740000000E+04 0.27795186000E-04 0.48093571000E-03 0.99999988396E+00 240 -0.10728250000E+01 0.83374250000E+00 0.32740000000E+04 -0.30852872000E-03 -0.20892751000E-03 0.99999993058E+00 241 -0.12843100000E+01 0.75580630000E+00 0.32740000000E+04 0.39149847000E-03 -0.76776589000E-04 0.99999992042E+00 242 -0.56210900000E+00 0.49167560000E+00 0.32740000000E+04 -0.46990704000E-03 0.77015866000E-03 0.99999959302E+00 243 -0.24663610000E+00 0.15419600000E+01 0.32740000000E+04 -0.25915873000E-03 -0.95247393000E-04 0.99999996188E+00 244 -0.21218430000E+01 -0.19354310000E+01 0.32740000000E+04 0.61195882000E-04 -0.47196870000E-03 0.99999988675E+00 245 -0.32653160000E+00 0.26559540000E+01 0.32740000000E+04 -0.89623580000E-04 0.41221740000E-03 0.99999991102E+00 246 -0.13956330000E+01 0.28472170000E+01 0.32740000000E+04 0.13990549000E-03 0.34480254000E-03 0.99999993077E+00 247 -0.13984350000E+01 -0.34723520000E+00 0.32740000000E+04 -0.15074175000E-03 -0.28303367000E-03 0.99999994858E+00 248 -0.80196850000E+00 0.37225520000E+00 0.32740000000E+04 0.17324006000E-03 -0.76675700000E-04 0.99999998205E+00 249 -0.10475230000E+01 0.79998930000E+00 0.32740000000E+04 -0.24889881000E-03 0.48091108000E-03 0.99999985339E+00 250 -0.10475230000E+01 0.79998930000E+00 0.32740000000E+04 -0.24889881000E-03 0.48091108000E-03 0.99999985339E+00 251 -0.19549420000E+01 -0.24361070000E+00 0.32740000000E+04 -0.15855356000E-04 -0.34605793000E-03 0.99999994000E+00 252 -0.14309280000E+01 0.97403450000E+00 0.32740000000E+04 -0.30066998000E-03 0.20156073000E-03 0.99999993449E+00 253 -0.18234240000E+01 0.67179440000E-01 0.32740000000E+04 -0.13078658000E-03 -0.44896823000E-03 0.99999989066E+00 254 -0.60939780000E+00 -0.55478120000E+00 0.32740000000E+04 0.45546400000E-03 -0.20738679000E-03 0.99999987477E+00 255 0.37450190000E+00 0.13468810000E+01 0.32740000000E+04 -0.50969102000E-03 -0.71529110000E-04 0.99999986755E+00 256 -0.14457100000E+01 0.90499780000E-01 0.32740000000E+04 0.44699493000E-03 -0.11984162000E-02 0.99999918200E+00 257 0.17258800000E+01 -0.66276950000E+00 0.32740000000E+04 0.34181558000E-03 -0.29144282000E-03 0.99999989911E+00 258 0.14275790000E+01 0.24627760000E+01 0.32740000000E+04 0.41276458000E-03 0.12787274000E-03 0.99999990664E+00 259 -0.17099320000E+01 0.23572140000E+01 0.32740000000E+04 -0.59615639000E-04 0.52894978000E-03 0.99999985833E+00 260 -0.18358170000E+01 0.10961370000E+01 0.32740000000E+04 -0.27970615000E-04 -0.77846671000E-04 0.99999999658E+00 261 -0.18358170000E+01 0.10961370000E+01 0.32740000000E+04 -0.27970615000E-04 -0.77846671000E-04 0.99999999658E+00 262 -0.18261500000E+01 0.46101340000E+00 0.32740000000E+04 -0.14371205000E-04 0.11854218000E-03 0.99999999287E+00 263 -0.13987340000E+01 0.18816390000E+01 0.32740000000E+04 -0.25957015000E-04 0.76331446000E-04 0.99999999675E+00 264 0.70728120000E+00 0.19852020000E+01 0.32740000000E+04 0.12604907000E-03 -0.23577808000E-03 0.99999996426E+00 265 0.13929830000E+01 0.21038470000E+01 0.32740000000E+04 0.75420749000E-03 0.32244634000E-03 0.99999966360E+00 266 0.24908130000E+01 0.13086750000E+01 0.32740000000E+04 0.48880646000E-03 0.24764825000E-03 0.99999984987E+00 267 -0.24536540000E+01 0.14115530000E+00 0.32740000000E+04 -0.12983957000E-03 -0.72196672000E-04 0.99999998896E+00 268 -0.15754760000E+01 0.35047650000E+00 0.32740000000E+04 0.31767943000E-03 -0.24018934000E-03 0.99999992069E+00 269 0.17638850000E+00 0.66457450000E+00 0.32740000000E+04 0.48672991000E-04 0.23563164000E-03 0.99999997105E+00 270 -0.21926580000E+01 0.77931590000E+00 0.32740000000E+04 0.19255075000E-03 -0.40581715000E-04 0.99999998064E+00 271 0.81704650000E+00 -0.33176330000E+00 0.32740000000E+04 0.37551869000E-03 -0.16375168000E-03 0.99999991609E+00 272 -0.19727750000E+01 0.13935050000E+01 0.32740000000E+04 -0.11195117000E-03 0.96590637000E-04 0.99999998907E+00 273 -0.38670680000E+00 0.23091940000E+01 0.32740000000E+04 -0.14459650000E-03 0.18968842000E-03 0.99999997156E+00 274 -0.15063380000E+01 0.83030860000E+00 0.32740000000E+04 -0.13769732000E-03 0.11291723000E-03 0.99999998414E+00 275 0.12243500000E+01 0.29538650000E+01 0.32740000000E+04 0.24348093000E-03 -0.16207894000E-03 0.99999995722E+00 276 0.78680630000E-01 0.21208550000E+01 0.32740000000E+04 0.33342876000E-03 0.81918544000E-04 0.99999994106E+00 277 0.67856410000E+00 0.17056810000E+01 0.32740000000E+04 0.57851797000E-03 -0.18769932000E-03 0.99999981504E+00 278 -0.27119390000E+00 0.18087100000E+01 0.32740000000E+04 -0.22362420000E-03 0.15547359000E-03 0.99999996291E+00 279 -0.29285880000E+01 -0.21160960000E+01 0.32740000000E+04 0.26400271000E-03 -0.62785367000E-03 0.99999976805E+00 280 0.16665690000E+01 0.52710640000E+00 0.32740000000E+04 0.11661264000E-03 0.43313610000E-03 0.99999989940E+00 281 0.28375560000E+00 0.57784800000E-01 0.32740000000E+04 -0.12226027000E-03 -0.36210223000E-03 0.99999992697E+00 282 0.50687070000E+00 -0.73095140000E+00 0.32740000000E+04 0.50056848000E-03 -0.27869060000E-03 0.99999983588E+00 283 0.50687070000E+00 -0.73095140000E+00 0.32740000000E+04 0.50056848000E-03 -0.27869060000E-03 0.99999983588E+00 284 0.87227130000E+00 -0.11852310000E-01 0.32740000000E+04 0.20704082000E-03 -0.44609216000E-03 0.99999987907E+00 285 -0.18901370000E+01 -0.10842590000E+01 0.32740000000E+04 0.77430456000E-03 -0.19040842000E-03 0.99999968210E+00 286 -0.17025960000E+01 0.13837800000E+01 0.32740000000E+04 -0.60433120000E-03 -0.19588160000E-03 0.99999979821E+00 287 -0.97427300000E+00 0.24736800000E+01 0.32740000000E+04 -0.28363528000E-03 -0.45589876000E-03 0.99999985585E+00 288 -0.16036110000E+01 -0.14005330000E+01 0.32740000000E+04 -0.12054613000E-02 0.16966045000E-02 0.99999783420E+00 289 -0.16036110000E+01 -0.14005330000E+01 0.32740000000E+04 -0.12054613000E-02 0.16966045000E-02 0.99999783420E+00 290 0.35393130000E+00 0.11854160000E+00 0.32740000000E+04 0.65267301000E-03 0.13442834000E-03 0.99999977797E+00 291 0.25875690000E+00 -0.88368580000E+00 0.32740000000E+04 0.94894211000E-04 -0.11701131000E-03 0.99999998865E+00 292 0.88198510000E+00 -0.97221010000E+00 0.32740000000E+04 0.18128469000E-03 -0.43503108000E-03 0.99999988894E+00 293 -0.12246310000E+01 0.18720930000E+00 0.32740000000E+04 0.18502506000E-03 -0.12279394000E-03 0.99999997534E+00 294 -0.19257070000E+01 0.15887730000E+01 0.32740000000E+04 -0.38232185000E-04 0.28573300000E-04 0.99999999886E+00 295 0.15494360000E+01 0.40264450000E+00 0.32740000000E+04 -0.35679643000E-03 -0.26909698000E-03 0.99999990014E+00 296 0.26677940000E+01 0.13624550000E+00 0.32740000000E+04 0.17406168000E-04 -0.33929612000E-03 0.99999994229E+00 297 -0.24306360000E+01 0.10433580000E+01 0.32740000000E+04 0.12484338000E-03 0.13995316000E-03 0.99999998241E+00 298 -0.45644760000E+00 0.20926000000E+01 0.32740000000E+04 0.11316028000E-03 -0.65595632000E-04 0.99999999145E+00 299 -0.47531670000E+00 -0.11858220000E-01 0.32740000000E+04 -0.46961903000E-03 -0.96484565000E-03 0.99999942427E+00 300 -0.47531670000E+00 -0.11858220000E-01 0.32740000000E+04 -0.46961903000E-03 -0.96484565000E-03 0.99999942427E+00 301 0.21436270000E+01 -0.22650100000E+00 0.32740000000E+04 0.66369580000E-03 -0.25471247000E-03 0.99999974731E+00 302 -0.14332430000E+00 0.17895250000E+01 0.32740000000E+04 -0.30328170000E-03 0.43283002000E-04 0.99999995307E+00 303 0.54854000000E+00 0.21710630000E+01 0.32740000000E+04 0.22195277000E-03 0.44614222000E-03 0.99999987585E+00 304 0.59335540000E-01 0.29052190000E+00 0.32740000000E+04 -0.18052908000E-03 -0.29680188000E-03 0.99999993966E+00 305 0.28404270000E+00 0.99310660000E+00 0.32740000000E+04 0.41913769000E-04 0.12306568000E-03 0.99999999155E+00 306 0.87740670000E+00 0.17397990000E+01 0.32740000000E+04 0.76838733000E-04 0.71318436000E-03 0.99999974273E+00 307 -0.98781570000E+00 0.62568680000E+00 0.32740000000E+04 0.19952905000E-03 0.20946919000E-03 0.99999995816E+00 308 -0.17255510000E+01 0.12980020000E+01 0.32740000000E+04 0.15642791000E-03 0.30796602000E-03 0.99999994034E+00 309 -0.17125850000E+01 0.13965480000E+01 0.32740000000E+04 -0.17140889000E-03 -0.15591630000E-04 0.99999998519E+00 310 -0.76007680000E+00 0.12118230000E+01 0.32740000000E+04 0.32215726000E-03 0.62138069000E-03 0.99999975505E+00 311 -0.76007680000E+00 0.12118230000E+01 0.32740000000E+04 0.32215726000E-03 0.62138069000E-03 0.99999975505E+00 312 -0.60834630000E+00 0.37320250000E+00 0.32740000000E+04 0.24551197000E-03 -0.73757436000E-03 0.99999969785E+00 313 0.10845920000E+01 -0.13927680000E+00 0.32740000000E+04 -0.19684529000E-03 0.19227903000E-03 0.99999996214E+00 314 -0.34334350000E+00 0.14554140000E+01 0.32740000000E+04 0.24506528000E-03 0.47236248000E-04 0.99999996886E+00 315 -0.17849660000E+01 0.21596620000E+00 0.32740000000E+04 -0.23586629000E-03 -0.48103792000E-03 0.99999985648E+00 316 0.19727010000E+01 0.10009250000E+01 0.32740000000E+04 0.42130578000E-04 0.25864592000E-03 0.99999996566E+00 317 0.45472710000E+00 0.23826760000E+01 0.32740000000E+04 -0.12380403000E-03 0.42507111000E-03 0.99999990199E+00 318 -0.64529400000E-01 0.17133910000E+00 0.32740000000E+04 0.24568985000E-03 0.10428959000E-03 0.99999996438E+00 319 0.15929650000E+01 -0.20325370000E+00 0.32740000000E+04 0.71691565000E-03 -0.17257745000E-03 0.99999972812E+00 320 0.12774580000E+01 0.17737670000E+01 0.32740000000E+04 0.10028770000E-03 -0.10969481000E-03 0.99999998895E+00 321 -0.17609020000E+01 -0.92012750000E+00 0.32740000000E+04 -0.43570899000E-03 -0.15922595000E-03 0.99999989240E+00 322 -0.10301140000E+01 0.65835930000E+00 0.32740000000E+04 -0.26702817000E-03 0.66144938000E-04 0.99999996216E+00 323 -0.14401390000E+01 0.94775620000E+00 0.32740000000E+04 -0.25934208000E-03 -0.46753831000E-03 0.99999985707E+00 324 0.57539020000E+00 0.20013010000E+01 0.32740000000E+04 0.22243788000E-03 0.61943232000E-04 0.99999997334E+00 325 -0.41907290000E+00 0.75288290000E+00 0.32740000000E+04 0.28333135000E-03 0.14672459000E-03 0.99999994910E+00 326 -0.38259980000E-01 0.18900660000E+01 0.32740000000E+04 -0.15120101000E-03 -0.91614747000E-04 0.99999998437E+00 327 -0.38259980000E-01 0.18900660000E+01 0.32740000000E+04 -0.15120101000E-03 -0.91614747000E-04 0.99999998437E+00 328 -0.23380410000E+00 0.27810540000E+01 0.32740000000E+04 0.11634001000E-03 0.71038958000E-04 0.99999999071E+00 329 -0.15693230000E+01 -0.66661150000E+00 0.32740000000E+04 -0.30559015000E-04 -0.42869642000E-03 0.99999990764E+00 330 0.14596510000E+01 0.13083540000E+01 0.32740000000E+04 0.72608906000E-04 -0.11819116000E-03 0.99999999038E+00 331 -0.15915880000E+01 -0.96345170000E+00 0.32740000000E+04 -0.99839941000E-04 -0.25739032000E-03 0.99999996189E+00 332 0.70882400000E+00 0.89281000000E+00 0.32740000000E+04 0.93195813000E-04 -0.18100832000E-03 0.99999997928E+00 333 -0.15506530000E+01 -0.64582680000E+00 0.32740000000E+04 -0.12239109000E-03 -0.11719975000E-03 0.99999998564E+00 334 -0.14860000000E+01 0.53302370000E+00 0.32740000000E+04 0.30025878000E-04 0.83583669000E-04 0.99999999606E+00 335 0.76201400000E+00 -0.11338270000E+01 0.32740000000E+04 -0.34361004000E-03 0.55153790000E-03 0.99999978887E+00 336 -0.96471890000E+00 0.17873560000E+00 0.32740000000E+04 -0.17804613000E-03 -0.45496962000E-03 0.99999988065E+00 337 -0.29447080000E+01 0.36812000000E+00 0.32740000000E+04 0.29029423000E-04 -0.23371313000E-03 0.99999997227E+00 338 -0.12446170000E+01 0.18110930000E+01 0.32740000000E+04 0.14658659000E-03 0.23553219000E-03 0.99999996152E+00 339 0.23511110000E+00 0.17551960000E+01 0.32740000000E+04 -0.18264457000E-03 -0.20831705000E-04 0.99999998310E+00 340 -0.10261540000E+01 -0.52925970000E-01 0.32740000000E+04 0.23814455000E-03 -0.10867876000E-03 0.99999996574E+00 341 0.10757080000E+01 -0.13030220000E+01 0.32740000000E+04 0.64726564000E-05 0.20932901000E-03 0.99999997807E+00 342 -0.27074470000E+01 0.96930060000E+00 0.32740000000E+04 0.52560563000E-03 -0.11265985000E-03 0.99999985552E+00 343 -0.19927920000E+00 0.26572950000E+00 0.32740000000E+04 0.86574357000E-04 -0.26694161000E-03 0.99999996062E+00 344 -0.23990320000E+01 0.17103790000E+00 0.32740000000E+04 -0.36188346000E-03 -0.38915596000E-03 0.99999985880E+00 345 0.96286460000E+00 0.19890490000E+01 0.32740000000E+04 -0.17007964000E-04 0.47689464000E-03 0.99999988614E+00 346 -0.15355250000E+01 0.14260210000E+01 0.32740000000E+04 -0.54885379000E-04 0.54075167000E-03 0.99999985229E+00 347 -0.37750260000E+00 0.24503550000E+01 0.32740000000E+04 0.70724709000E-04 0.55402350000E-04 0.99999999596E+00 348 0.18119690000E+01 0.84356990000E+00 0.32740000000E+04 0.10343092000E-03 0.69972593000E-04 0.99999999220E+00 349 -0.16723590000E+01 0.26130940000E+01 0.32740000000E+04 -0.19901847000E-03 -0.35217210000E-04 0.99999997958E+00 350 -0.12214350000E+01 0.23810863000E-02 0.32740000000E+04 -0.42410320000E-03 -0.49888378000E-03 0.99999978563E+00 351 0.22207960000E+01 0.55983880000E+00 0.32740000000E+04 0.36008580000E-03 0.77013625000E-04 0.99999993220E+00 352 -0.22086310000E+00 0.14643150000E+00 0.32740000000E+04 -0.29359342000E-03 -0.77069133000E-04 0.99999995393E+00 353 -0.11705400000E+01 0.19274330000E+00 0.32740000000E+04 0.38674320000E-04 -0.17995732000E-03 0.99999998306E+00 354 -0.24372170000E+01 0.38989990000E+00 0.32740000000E+04 0.83608546000E-04 -0.37112212000E-03 0.99999992764E+00 355 -0.24372170000E+01 0.38989990000E+00 0.32740000000E+04 0.83608546000E-04 -0.37112212000E-03 0.99999992764E+00 356 -0.36720330000E+00 0.58267540000E+00 0.32740000000E+04 0.11845185000E-03 -0.21431906000E-03 0.99999997002E+00 357 -0.15889420000E+00 0.16493100000E+01 0.32740000000E+04 0.26414241000E-03 -0.75030868000E-04 0.99999996230E+00 358 -0.18687670000E+01 0.66427140000E+00 0.32740000000E+04 -0.51908649000E-03 -0.20952112000E-03 0.99999984333E+00 359 -0.39971890000E+00 0.19972090000E+01 0.32740000000E+04 0.55191351000E-04 -0.19053363000E-04 0.99999999830E+00 360 0.47246450000E+00 -0.11146460000E+01 0.32740000000E+04 0.11457860000E-03 -0.64640702000E-03 0.99999978451E+00 361 -0.90715810000E+00 0.10045270000E+01 0.32740000000E+04 0.15606040000E-03 -0.61291634000E-04 0.99999998594E+00 362 -0.92972890000E+00 0.20312450000E+01 0.32740000000E+04 -0.37517853000E-03 0.27864054000E-03 0.99999989080E+00 363 0.16090320000E+01 0.13646720000E+01 0.32740000000E+04 0.31705044000E-03 0.11577780000E-03 0.99999994304E+00 364 -0.24630950000E+01 -0.55003920000E+00 0.32740000000E+04 0.10803414000E-03 0.66837893000E-04 0.99999999193E+00 365 -0.12948450000E+01 -0.10251920000E+01 0.32740000000E+04 0.16229606000E-03 -0.35929546000E-03 0.99999992228E+00 366 -0.66168980000E+00 0.93568570000E+00 0.32740000000E+04 -0.34659967000E-03 -0.20385504000E-03 0.99999991916E+00 367 -0.66168980000E+00 0.93568570000E+00 0.32740000000E+04 -0.34659967000E-03 -0.20385504000E-03 0.99999991916E+00 368 -0.13546630000E+01 -0.15922440000E+00 0.32740000000E+04 0.12441845000E-03 -0.94677882000E-04 0.99999998778E+00 369 -0.21653180000E+01 0.23218190000E+01 0.32740000000E+04 -0.21785450000E-03 0.35432581000E-03 0.99999991350E+00 370 -0.28766670000E+00 0.81307350000E+00 0.32740000000E+04 0.21779444000E-03 0.36759369000E-03 0.99999990872E+00 371 -0.38678500000E+00 0.98285720000E+00 0.32740000000E+04 0.65661978000E-03 -0.52211723000E-04 0.99999978306E+00 372 -0.37360700000E+00 0.12625720000E+01 0.32740000000E+04 0.35794277000E-04 0.34970995000E-04 0.99999999875E+00 373 -0.13586050000E+01 0.17116790000E+01 0.32740000000E+04 0.26261801000E-03 0.28913206000E-03 0.99999992372E+00 374 -0.75157580000E+00 0.49062500000E+00 0.32740000000E+04 -0.17215460000E-03 0.88269255000E-04 0.99999998129E+00 375 0.11544390000E+01 0.71977030000E+00 0.32740000000E+04 0.27422060000E-03 0.38853413000E-03 0.99999988692E+00 376 -0.29741510000E+00 0.11845390000E+01 0.32740000000E+04 0.13771439000E-03 -0.28617634000E-03 0.99999994957E+00 377 -0.49525650000E+00 0.13625390000E+01 0.32740000000E+04 0.24523769000E-03 -0.37969614000E-03 0.99999989784E+00 378 -0.49525650000E+00 0.13625390000E+01 0.32740000000E+04 0.24523769000E-03 -0.37969614000E-03 0.99999989784E+00 379 -0.19608470000E+01 -0.14814770000E+01 0.32740000000E+04 -0.16176762000E-03 -0.24230254000E-03 0.99999995756E+00 380 -0.16451250000E+01 0.15095240000E+01 0.32740000000E+04 0.48025206000E-03 -0.49008685000E-03 0.99999976459E+00 381 -0.17185210000E+01 0.12996660000E+01 0.32740000000E+04 0.12015805000E-02 -0.40622943000E-03 0.99999919559E+00 382 0.25361530000E+01 0.89104100000E+00 0.32740000000E+04 0.85093960000E-03 0.13738459000E-03 0.99999962851E+00 383 -0.16250430000E+01 0.12026190000E+01 0.32740000000E+04 -0.31132855000E-04 -0.18408780000E-04 0.99999999935E+00 384 0.10595810000E+01 0.11878200000E+00 0.32740000000E+04 0.49159302000E-04 -0.11747787000E-03 0.99999999189E+00 385 -0.17112240000E+01 0.11648450000E+01 0.32740000000E+04 -0.33781287000E-03 0.35330956000E-03 0.99999988053E+00 386 0.17036430000E+00 0.98654040000E+00 0.32740000000E+04 -0.31219872000E-04 -0.81729209000E-04 0.99999999617E+00 387 0.27110830000E+01 0.19285090000E+01 0.32740000000E+04 0.49111282000E-03 0.44957415000E-04 0.99999987839E+00 388 -0.20982430000E+01 -0.70654010000E+00 0.32740000000E+04 -0.49057807000E-03 0.55266984000E-04 0.99999987814E+00 389 0.66517430000E+00 0.16895690000E+01 0.32740000000E+04 0.82421897000E-03 -0.47067530000E-04 0.99999965922E+00 390 -0.49725800000E+00 0.49736320000E+00 0.32740000000E+04 0.28710373000E-03 0.69254113000E-03 0.99999971898E+00 391 -0.18094880000E+01 0.17654280000E+01 0.32740000000E+04 -0.80858350000E-04 0.13161860000E-03 0.99999998807E+00 392 -0.68765120000E+00 -0.89749720000E-01 0.32740000000E+04 -0.43529156000E-03 -0.45848746000E-03 0.99999980016E+00 393 -0.68765120000E+00 -0.89749720000E-01 0.32740000000E+04 -0.43529156000E-03 -0.45848746000E-03 0.99999980016E+00 394 0.37867860000E+00 -0.81636160000E+00 0.32740000000E+04 0.97601158000E-04 -0.62741229000E-03 0.99999979841E+00 395 -0.62560090000E+00 -0.15017640000E+01 0.32740000000E+04 -0.52807608000E-03 0.18022407000E-04 0.99999986041E+00 396 0.15840570000E+01 0.20444060000E+01 0.32740000000E+04 0.41017108000E-03 -0.56055342000E-04 0.99999991431E+00 397 -0.81952510000E+00 -0.46374420000E-01 0.32740000000E+04 0.25949997000E-03 -0.41432516000E-03 0.99999988050E+00 398 -0.53648840000E+00 0.10040720000E+01 0.32740000000E+04 0.20754778000E-03 0.15260273000E-03 0.99999996682E+00 399 -0.46042190000E+00 0.12560010000E+01 0.32740000000E+04 0.24445652000E-03 -0.95165444000E-04 0.99999996559E+00 400 0.64239580000E+00 0.24758110000E+01 0.32740000000E+04 0.23652520000E-03 -0.84779858000E-04 0.99999996843E+00 401 -0.27458860000E+01 0.25097200000E+01 0.32740000000E+04 -0.87160552000E-04 0.10220139000E-04 0.99999999615E+00 402 -0.25445180000E+01 0.72196030000E+00 0.32740000000E+04 -0.21433916000E-03 -0.18551666000E-03 0.99999995982E+00 403 -0.13765120000E+01 0.27483740000E+01 0.32740000000E+04 -0.61547337000E-03 0.14053659000E-03 0.99999980072E+00 404 -0.25694940000E+01 -0.11685320000E+00 0.32740000000E+04 -0.75987395000E-04 -0.72104718000E-04 0.99999999451E+00 405 -0.15889430000E+01 -0.75059800000E+00 0.32740000000E+04 -0.56108336000E-04 -0.18865685000E-03 0.99999998063E+00 406 -0.15889430000E+01 -0.75059800000E+00 0.32740000000E+04 -0.56108336000E-04 -0.18865685000E-03 0.99999998063E+00 407 -0.62173510000E-01 0.20455440000E+01 0.32740000000E+04 -0.42339280000E-03 -0.42023923000E-04 0.99999990949E+00 408 0.97423440000E+00 0.17304360000E+01 0.32740000000E+04 0.34019840000E-03 -0.18933172000E-03 0.99999992421E+00 409 -0.51493650000E+00 0.16343020000E+01 0.32740000000E+04 -0.16060128000E-03 0.62888930000E-05 0.99999998708E+00 410 -0.17437650000E-01 0.16063570000E+01 0.32740000000E+04 0.43011399000E-03 0.48607858000E-03 0.99999978936E+00 411 -0.74419210000E+00 0.18253990000E+01 0.32740000000E+04 -0.29393253000E-03 0.29330049000E-03 0.99999991379E+00 412 0.78393820000E+00 0.17017120000E+00 0.32740000000E+04 0.38502883000E-04 0.25843710000E-03 0.99999996586E+00 413 -0.90430890000E+00 0.23497780000E+00 0.32740000000E+04 -0.10410110000E-02 -0.31172461000E-03 0.99999940956E+00 414 -0.56975610000E+00 -0.51781130000E+00 0.32740000000E+04 0.83384046000E-04 0.62330822000E-04 0.99999999458E+00 415 0.34615240000E+00 0.11177060000E+01 0.32740000000E+04 0.16061407000E-03 -0.30009315000E-03 0.99999994207E+00 416 0.16710900000E+00 0.19148720000E+01 0.32740000000E+04 0.46770860000E-03 -0.25131914000E-03 0.99999985904E+00 417 0.16710900000E+00 0.19148720000E+01 0.32740000000E+04 0.46770860000E-03 -0.25131914000E-03 0.99999985904E+00 418 0.93954520000E+00 0.15267710000E+01 0.32740000000E+04 0.26893217000E-03 -0.64645479000E-04 0.99999996175E+00 419 0.14457160000E+01 0.95105340000E+00 0.32740000000E+04 0.34734950000E-03 0.19587149000E-03 0.99999992049E+00 420 0.31191830000E+00 0.28171370000E+01 0.32740000000E+04 0.10536062000E-02 -0.23855618000E-03 0.99999941650E+00 421 -0.19521210000E+01 0.11121780000E+01 0.32740000000E+04 -0.38945730000E-03 0.35500099000E-03 0.99999986115E+00 422 -0.39699580000E-01 0.19147350000E+01 0.32740000000E+04 0.21890686000E-03 0.30805578000E-03 0.99999992859E+00 423 -0.11762250000E+00 0.25129940000E+01 0.32740000000E+04 0.10748862000E-03 -0.58999978000E-03 0.99999982017E+00 424 -0.61439960000E+00 -0.22868710000E+00 0.32740000000E+04 0.23840182000E-03 -0.78492640000E-05 0.99999997155E+00 425 -0.11064380000E+01 0.68051880000E+00 0.32740000000E+04 -0.53916356000E-04 -0.92458795000E-04 0.99999999427E+00 426 -0.13921440000E+01 0.10822360000E+01 0.32740000000E+04 0.39261915000E-04 -0.49217260000E-05 0.99999999922E+00 427 -0.13764390000E+01 0.19149290000E+01 0.32740000000E+04 -0.15124853000E-03 0.38018732000E-03 0.99999991629E+00 428 -0.15354740000E+01 -0.50163300000E+00 0.32740000000E+04 -0.12309334000E-03 -0.30290935000E-03 0.99999994655E+00 429 -0.12215690000E+01 0.48590080000E+00 0.32740000000E+04 0.17288084000E-03 0.97846838000E-04 0.99999998027E+00 430 -0.12215690000E+01 0.48590080000E+00 0.32740000000E+04 0.17288084000E-03 0.97846838000E-04 0.99999998027E+00 431 -0.10632020000E+01 0.64212210000E+00 0.32740000000E+04 -0.38604962000E-03 -0.32074362000E-03 0.99999987404E+00 432 0.17617940000E+01 0.11996870000E+01 0.32740000000E+04 -0.33415519000E-03 -0.12017482000E-03 0.99999993695E+00 433 -0.23012650000E+01 -0.22925430000E+00 0.32740000000E+04 -0.46505898000E-04 0.16622887000E-03 0.99999998510E+00 434 0.14832550000E+01 0.20197160000E+01 0.32740000000E+04 -0.57726133000E-05 -0.40506016000E-03 0.99999991795E+00 435 -0.60353330000E+00 -0.10381960000E+01 0.32740000000E+04 0.80739835000E-03 -0.37568042000E-03 0.99999960349E+00 436 -0.12040240000E+01 -0.80219020000E+00 0.32740000000E+04 -0.14680330000E-03 -0.65097229000E-04 0.99999998711E+00 437 0.26584480000E+00 0.17921940000E+01 0.32740000000E+04 -0.82224596000E-03 -0.29036036000E-03 0.99999961980E+00 438 0.18384540000E+01 -0.11374300000E+01 0.32740000000E+04 0.69537078000E-03 -0.23246562000E-03 0.99999973121E+00 439 0.28932030000E+00 -0.36195060000E+00 0.32740000000E+04 0.95435345000E-04 0.41896430000E-04 0.99999999457E+00 440 -0.20748700000E+01 -0.23460170000E+00 0.32740000000E+04 0.29461315000E-04 -0.79936604000E-03 0.99999968007E+00 441 -0.12823850000E+01 0.32949200000E+00 0.32740000000E+04 0.68743079000E-03 -0.74042194000E-03 0.99999948961E+00 442 0.33567490000E+00 0.36957420000E+00 0.32740000000E+04 -0.28754343000E-03 -0.37596282000E-03 0.99999988799E+00 443 -0.51161000000E-01 0.11458260000E+01 0.32740000000E+04 0.61075320000E-04 -0.15148023000E-03 0.99999998666E+00 444 0.10847400000E+01 0.80415450000E+00 0.32740000000E+04 -0.86592547000E-04 0.22522482000E-03 0.99999997089E+00 445 0.72410120000E-01 0.23670280000E+01 0.32740000000E+04 0.98349687000E-04 0.47276105000E-03 0.99999988341E+00 446 -0.43967160000E+00 0.18001350000E+01 0.32740000000E+04 -0.44179298000E-04 -0.14091286000E-03 0.99999998910E+00 447 -0.23085260000E+01 -0.89614300000E+00 0.32740000000E+04 0.10863115000E-02 -0.12517527000E-03 0.99999940213E+00 448 -0.11443470000E+00 0.96369920000E+00 0.32740000000E+04 0.35463457000E-03 0.84002921000E-03 0.99999958429E+00 449 -0.11443470000E+00 0.96369920000E+00 0.32740000000E+04 0.35463457000E-03 0.84002921000E-03 0.99999958429E+00 450 0.16570210000E+00 0.19231630000E+01 0.32740000000E+04 -0.11589353000E-03 0.26869433000E-03 0.99999995719E+00 451 -0.73118920000E+00 -0.31086080000E+00 0.32740000000E+04 0.20028312000E-03 0.12346283000E-03 0.99999997232E+00 452 -0.22777660000E+00 0.85104160000E+00 0.32740000000E+04 0.23458424000E-03 0.83457824000E-03 0.99999962422E+00 453 -0.26666760000E+01 -0.73488140000E+00 0.32740000000E+04 -0.10755530000E-03 -0.96822550000E-05 0.99999999417E+00 454 -0.13344840000E+01 -0.77173233000E-02 0.32740000000E+04 0.25832557000E-03 -0.69450738000E-03 0.99999972546E+00 455 -0.24937140000E+01 -0.77443470000E+00 0.32740000000E+04 -0.22772548000E-03 0.10469695000E-04 0.99999997402E+00 456 -0.61315590000E+00 0.12300200000E+01 0.32740000000E+04 -0.31244132000E-03 -0.54927982000E-05 0.99999995118E+00 457 -0.60470350000E+00 0.19593760000E+01 0.32740000000E+04 0.11202919000E-03 0.26691385000E-03 0.99999995810E+00 458 -0.13640010000E+01 0.14931350000E+01 0.32740000000E+04 0.49362410000E-04 0.15550901000E-03 0.99999998669E+00 459 -0.19358800000E+01 0.13631720000E+01 0.32740000000E+04 0.39587956000E-03 0.68979272000E-04 0.99999991926E+00 460 0.15789880000E+01 0.19226710000E+01 0.32740000000E+04 -0.39932632000E-03 -0.13205775000E-02 0.99999904831E+00 461 -0.14679560000E+01 -0.47696190000E+00 0.32740000000E+04 0.47780201000E-03 0.74549793000E-03 0.99999960797E+00 462 -0.61341320000E+00 -0.88399770000E+00 0.32740000000E+04 0.43885416000E-03 -0.38035880000E-04 0.99999990298E+00 463 -0.24792750000E+01 0.11048430000E+00 0.32740000000E+04 -0.35298898000E-03 0.78439924000E-04 0.99999993462E+00 464 -0.60079980000E+00 0.15853150000E+01 0.32740000000E+04 -0.52355276000E-03 -0.35605583000E-04 0.99999986231E+00 465 -0.12181350000E+01 -0.23770360000E+00 0.32740000000E+04 -0.25444225000E-03 0.45067786000E-05 0.99999996762E+00 466 -0.24487820000E+01 0.78970830000E+00 0.32740000000E+04 -0.88716246000E-04 0.51474583000E-03 0.99999986358E+00 467 0.86673580000E+00 0.16546110000E+01 0.32740000000E+04 0.36399774000E-03 0.43599852000E-03 0.99999983871E+00 468 -0.64953990000E+00 0.25437670000E+00 0.32740000000E+04 -0.31386112000E-03 -0.26732929000E-04 0.99999995039E+00 469 -0.24853450000E+01 -0.28813490000E+00 0.32740000000E+04 -0.20141744000E-03 0.20570567000E-03 0.99999995856E+00 470 0.90732330000E+00 0.11637850000E+01 0.32740000000E+04 -0.32162116000E-03 -0.58450690000E-03 0.99999977746E+00 471 0.90732330000E+00 0.11637850000E+01 0.32740000000E+04 -0.32162116000E-03 -0.58450690000E-03 0.99999977746E+00 472 -0.95819210000E+00 0.23049720000E+01 0.32740000000E+04 -0.14172314000E-03 0.24480376000E-03 0.99999995999E+00 473 -0.21148500000E+01 0.10240370000E+01 0.32740000000E+04 -0.32591826000E-03 0.54578049000E-04 0.99999994540E+00 474 0.24319780000E+01 0.33872430000E+00 0.32740000000E+04 0.44617546000E-03 0.32422494000E-03 0.99999984790E+00 475 -0.22120560000E+01 0.14159610000E+01 0.32740000000E+04 -0.60302502000E-03 0.35999398000E-03 0.99999975338E+00 476 0.14449050000E+01 0.30253840000E+01 0.32740000000E+04 0.51939656000E-03 0.11507365000E-03 0.99999985849E+00 477 -0.17877900000E+00 -0.12637410000E+01 0.32740000000E+04 -0.24137989000E-03 0.76424080000E-03 0.99999967884E+00 478 -0.13811130000E+01 0.12874610000E+01 0.32740000000E+04 0.14551902000E-03 -0.12894312000E-04 0.99999998933E+00 479 0.32419420000E+00 0.22558260000E+01 0.32740000000E+04 0.46623285000E-04 0.10889040000E-03 0.99999999298E+00 480 0.32419420000E+00 0.22558260000E+01 0.32740000000E+04 0.46623285000E-04 0.10889040000E-03 0.99999999298E+00 481 -0.24652260000E+01 0.15616060000E+01 0.32740000000E+04 0.34694406000E-03 -0.52142812000E-04 0.99999993846E+00 482 0.43454540000E+00 0.43793180000E-01 0.32740000000E+04 0.28388403000E-03 0.16589115000E-03 0.99999994594E+00 483 0.82661560000E+00 0.92070840000E+00 0.32740000000E+04 -0.24155062000E-03 0.12162232000E-03 0.99999996343E+00 484 -0.33667350000E+00 0.66907710000E+00 0.32740000000E+04 0.27055136000E-03 0.56260629000E-04 0.99999996182E+00 485 -0.15563820000E+01 0.24194200000E+01 0.32740000000E+04 -0.11848548000E-03 0.35704797000E-03 0.99999992924E+00 486 -0.14203610000E+01 0.14703800000E+01 0.32740000000E+04 -0.46354704000E-04 -0.29626972000E-03 0.99999995504E+00 487 -0.25869740000E+01 0.34902160000E+00 0.32740000000E+04 -0.52152405000E-03 -0.27697266000E-03 0.99999982565E+00 488 -0.76134510000E+00 -0.73131330000E+00 0.32740000000E+04 -0.20118247000E-04 -0.47595816000E-03 0.99999988653E+00 489 0.23432220000E+01 -0.50449710000E+00 0.32740000000E+04 0.17492846000E-03 -0.45513251000E-03 0.99999988113E+00 490 -0.96968850000E+00 -0.37115320000E+00 0.32740000000E+04 0.15569480000E-04 -0.45262984000E-03 0.99999989744E+00 491 -0.23269210000E+01 0.10398760000E+01 0.32740000000E+04 -0.60016846000E-04 0.33016352000E-03 0.99999994370E+00 492 -0.11633480000E+01 0.26313080000E+00 0.32740000000E+04 -0.73573387000E-05 0.64174856000E-04 0.99999999791E+00 493 -0.22598480000E+01 0.61617730000E+00 0.32740000000E+04 0.56595622000E-04 0.22161548000E-03 0.99999997384E+00 494 -0.23224800000E+01 -0.95037100000E+00 0.32740000000E+04 -0.97102820000E-04 -0.91575406000E-04 0.99999999109E+00 495 -0.22949690000E+01 -0.79775820000E+00 0.32740000000E+04 0.63244195000E-04 -0.95294286000E-04 0.99999999346E+00 496 -0.13607330000E+01 0.81899470000E+00 0.32740000000E+04 -0.50811970000E-03 -0.45657641000E-03 0.99999976668E+00 497 -0.12523320000E+01 0.12700480000E+01 0.32740000000E+04 -0.49290538000E-04 0.15187750000E-03 0.99999998725E+00 498 -0.13666490000E+01 -0.47556500000E+00 0.32740000000E+04 0.39981273000E-05 -0.34347231000E-04 0.99999999940E+00 499 0.14670960000E+01 0.11823470000E+01 0.32740000000E+04 0.38064791000E-04 -0.12305024000E-03 0.99999999170E+00 500 -0.49703280000E+00 0.24282020000E+01 0.32740000000E+04 0.18628940000E-03 -0.24949702000E-04 0.99999998234E+00 501 0.26776690000E+01 0.82981850000E+00 0.32740000000E+04 0.79069671000E-03 -0.16515337000E-03 0.99999967376E+00 502 0.10647610000E+01 0.33082320000E+00 0.32740000000E+04 -0.18788379000E-03 -0.15921515000E-03 0.99999996968E+00 503 -0.51196750000E+00 0.58249860000E+00 0.32740000000E+04 0.40310808000E-03 0.14370210000E-03 0.99999990843E+00 504 -0.15778910000E+01 -0.13514200000E+01 0.32740000000E+04 0.55680791000E-03 -0.41377902000E-03 0.99999975938E+00 505 -0.22776250000E+01 0.45704760000E+00 0.32740000000E+04 -0.49094597000E-04 0.44750877000E-05 0.99999999878E+00 506 0.81298700000E+00 0.16693570000E+01 0.32740000000E+04 0.36356336000E-03 0.28207188000E-03 0.99999989413E+00 507 -0.47733040000E+00 0.82527170000E+00 0.32740000000E+04 -0.11184522000E-03 -0.13681952000E-03 0.99999998439E+00 508 -0.14616280000E+01 0.15074600000E+01 0.32740000000E+04 0.21874133000E-03 0.10400492000E-03 0.99999997067E+00 509 0.14032690000E+01 0.48496530000E+00 0.32740000000E+04 0.27790191000E-04 -0.42561249000E-04 0.99999999871E+00 510 -0.28374360000E+01 0.96726300000E+00 0.32740000000E+04 -0.18370363000E-03 0.19294165000E-03 0.99999996451E+00 511 -0.10934350000E+01 0.15281440000E+01 0.32740000000E+04 0.95662821000E-04 0.56699920000E-03 0.99999983468E+00 512 0.33222910000E+00 -0.14869800000E+00 0.32740000000E+04 -0.58081721000E-04 -0.22816284000E-03 0.99999997228E+00 513 0.15335060000E+01 0.17797820000E+01 0.32740000000E+04 -0.13984249000E-03 -0.37305828000E-03 0.99999992064E+00 514 -0.46489980000E+00 0.11930050000E+01 0.32740000000E+04 0.14122993000E-03 -0.28687343000E-03 0.99999994888E+00 515 -0.90050740000E+00 0.26935230000E+01 0.32740000000E+04 -0.25685050000E-03 0.39492716000E-03 0.99999988903E+00 516 0.16368820000E+01 0.77228720000E+00 0.32740000000E+04 0.44096337000E-03 0.32296948000E-03 0.99999985062E+00 517 -0.94425410000E+00 0.15150050000E+01 0.32740000000E+04 -0.21651952000E-05 0.48322033000E-03 0.99999988325E+00 518 -0.94425410000E+00 0.15150050000E+01 0.32740000000E+04 -0.21651952000E-05 0.48322033000E-03 0.99999988325E+00 519 0.66697620000E+00 0.15501990000E+01 0.32740000000E+04 0.47014219000E-04 0.37804708000E-04 0.99999999818E+00 520 -0.17337080000E+01 0.26384200000E+01 0.32740000000E+04 -0.20997107000E-03 0.18836757000E-03 0.99999996021E+00 521 0.41849180000E+00 0.22990030000E+01 0.32740000000E+04 -0.24505120000E-03 -0.84896856000E-04 0.99999996637E+00 522 0.19784340000E+01 0.23259470000E+01 0.32740000000E+04 0.41105831000E-03 -0.34347235000E-04 0.99999991493E+00 523 -0.19745720000E+01 0.55977950000E+00 0.32740000000E+04 0.47970047000E-06 0.11265878000E-04 0.99999999994E+00 524 -0.28973110000E+00 0.20949440000E+01 0.32740000000E+04 -0.40802860000E-03 0.26552379000E-03 0.99999988150E+00 525 -0.88745580000E+00 0.18148300000E+01 0.32740000000E+04 0.12959293000E-03 0.23409462000E-03 0.99999996420E+00 526 0.38351610000E-01 0.18212090000E+01 0.32740000000E+04 0.27602873000E-03 0.35272850000E-03 0.99999989970E+00 527 -0.20651700000E+01 -0.16764400000E+00 0.32740000000E+04 -0.11060348000E-03 -0.55421871000E-03 0.99999984030E+00 528 -0.31714730000E+00 -0.80502740000E+00 0.32740000000E+04 0.29904681000E-03 -0.26680159000E-03 0.99999991969E+00 529 -0.14160360000E+01 0.17390900000E+01 0.32740000000E+04 0.14461707000E-04 0.62400206000E-04 0.99999999795E+00 530 0.30671940000E+00 0.78168940000E+00 0.32740000000E+04 -0.37627487000E-03 -0.68741589000E-03 0.99999969294E+00 531 0.12923800000E+01 -0.80756270000E+00 0.32740000000E+04 0.30366358000E-03 0.58359288000E-04 0.99999995219E+00 532 -0.21342560000E+01 -0.54182210000E+00 0.32740000000E+04 -0.27014516000E-03 -0.60114154000E-03 0.99999978283E+00 533 -0.21448130000E+01 0.15855980000E+01 0.32740000000E+04 0.35571994000E-03 0.17416943000E-03 0.99999992156E+00 534 0.54836890000E+00 0.19737080000E+01 0.32740000000E+04 -0.12634459000E-03 -0.18013922000E-03 0.99999997579E+00 535 0.11795560000E+01 -0.10130140000E+01 0.32740000000E+04 0.44929935000E-03 -0.52306167000E-03 0.99999976227E+00 536 -0.16102940000E+01 0.15030930000E+01 0.32740000000E+04 -0.11595239000E-03 0.48418713000E-03 0.99999987606E+00 537 -0.80928520000E-01 0.84490580000E+00 0.32740000000E+04 0.17151528000E-03 -0.31924591000E-03 0.99999993433E+00 538 -0.80928520000E-01 0.84490580000E+00 0.32740000000E+04 0.17151528000E-03 -0.31924591000E-03 0.99999993433E+00 539 0.79048930000E+00 0.17613830000E+01 0.32740000000E+04 0.29200412000E-03 -0.30172776000E-03 0.99999991185E+00 540 -0.28631090000E+00 0.17701560000E+01 0.32740000000E+04 -0.36875630000E-03 -0.34588290000E-03 0.99999987219E+00 541 -0.22206230000E+01 0.26466790000E+00 0.32740000000E+04 -0.48283278000E-03 0.13162714000E-03 0.99999987477E+00 542 -0.24287430000E+01 -0.31681170000E+00 0.32740000000E+04 -0.34014633000E-06 -0.17385675000E-04 0.99999999985E+00 543 -0.19322330000E+01 -0.40982960000E+00 0.32740000000E+04 0.34043699000E-03 -0.88177449000E-05 0.99999994201E+00 544 -0.23229890000E+01 0.13162550000E+01 0.32740000000E+04 -0.48360875000E-03 -0.11006663000E-03 0.99999987700E+00 545 -0.13495170000E+01 0.49174290000E+00 0.32740000000E+04 -0.15810091000E-03 0.89169480000E-04 0.99999998353E+00 546 -0.20658150000E+01 -0.45540920000E+00 0.32740000000E+04 -0.17943002000E-03 0.39002541000E-03 0.99999990784E+00 547 -0.17852780000E+01 -0.24692340000E+00 0.32740000000E+04 0.13991170000E-03 0.37037331000E-03 0.99999992162E+00 548 -0.50204650000E+00 -0.29633020000E+00 0.32740000000E+04 0.63548672000E-04 -0.53746643000E-03 0.99999985355E+00 549 -0.37961470000E+00 0.49644440000E+00 0.32740000000E+04 0.17467361000E-03 -0.16454935000E-03 0.99999997121E+00 550 -0.25482690000E+01 0.20300900000E+01 0.32740000000E+04 -0.52730041000E-03 0.17008059000E-03 0.99999984651E+00 551 -0.25482690000E+01 0.20300900000E+01 0.32740000000E+04 -0.52730041000E-03 0.17008059000E-03 0.99999984651E+00 552 -0.19829240000E+01 -0.46878310000E+00 0.32740000000E+04 -0.44148746000E-04 -0.48573091000E-03 0.99999988106E+00 553 -0.14987090000E+01 0.47084350000E+00 0.32740000000E+04 -0.44620517000E-03 -0.14455910000E-03 0.99999989000E+00 554 -0.12242640000E+01 0.12996150000E+01 0.32740000000E+04 -0.30162578000E-03 -0.80982034000E-04 0.99999995123E+00 555 -0.15263610000E+01 0.11804010000E+00 0.32740000000E+04 0.26036950000E-03 0.11730659000E-03 0.99999995922E+00 556 -0.71620230000E-01 0.23167400000E+01 0.32740000000E+04 -0.39091779000E-03 0.22318453000E-03 0.99999989869E+00 557 -0.50599870000E+00 0.16634380000E+01 0.32740000000E+04 0.28535226000E-03 0.27391990000E-03 0.99999992177E+00 558 -0.24153060000E+01 0.25498950000E+01 0.32740000000E+04 -0.16533482000E-04 0.24584829000E-03 0.99999996964E+00 559 0.11685730000E+01 0.67145260000E+00 0.32740000000E+04 0.16456397000E-03 0.14721508000E-03 0.99999997562E+00 560 -0.59450570000E+00 -0.93414080000E+00 0.32740000000E+04 0.47955091000E-04 0.35280170000E-03 0.99999993662E+00 561 -0.20547980000E+01 -0.79747420000E+00 0.32740000000E+04 0.13459576000E-03 -0.12163199000E-03 0.99999998354E+00 562 -0.11283820000E+01 -0.95330190000E-01 0.32740000000E+04 0.28668102000E-03 -0.46879673000E-03 0.99999984902E+00 563 -0.91300560000E+00 0.31119770000E+00 0.32740000000E+04 0.19534047000E-03 -0.24470806000E-03 0.99999995098E+00 564 -0.15299980000E+01 0.24061080000E+00 0.32740000000E+04 -0.56740700000E-03 0.82995233000E-04 0.99999983558E+00 565 -0.10348560000E+01 0.66673770000E+00 0.32740000000E+04 0.46139667000E-04 0.68670153000E-04 0.99999999658E+00 566 0.92626110000E+00 0.83902890000E+00 0.32740000000E+04 0.57345722000E-03 -0.11548309000E-03 0.99999982891E+00 567 -0.38052770000E+00 0.53686640000E+00 0.32740000000E+04 0.10956969000E-03 0.15244888000E-03 0.99999998238E+00 568 -0.25001850000E+01 -0.59623320000E+00 0.32740000000E+04 -0.28214927000E-04 -0.10502149000E-03 0.99999999409E+00 569 0.26666350000E+01 0.10964130000E+01 0.32740000000E+04 0.93900642000E-04 -0.29279289000E-03 0.99999995273E+00 570 0.26666350000E+01 0.10964130000E+01 0.32740000000E+04 0.93900642000E-04 -0.29279289000E-03 0.99999995273E+00 571 -0.19290240000E+01 0.10122660000E+01 0.32740000000E+04 -0.25017469000E-03 0.12725900000E-03 0.99999996061E+00 572 -0.17169940000E+01 -0.44152990000E+00 0.32740000000E+04 0.79143269000E-04 -0.17001855000E-03 0.99999998242E+00 573 -0.25021090000E+01 0.59466220000E+00 0.32740000000E+04 0.21618847000E-04 -0.69868882000E-04 0.99999999733E+00 574 -0.46899090000E+00 -0.18173060000E+00 0.32740000000E+04 -0.25001628000E-03 0.68761263000E-04 0.99999996638E+00 575 0.42888800000E+00 -0.13896590000E+00 0.32740000000E+04 0.53473725000E-03 0.21205518000E-03 0.99999983454E+00 576 0.30051130000E+00 0.15298340000E+01 0.32740000000E+04 0.11257723000E-02 -0.62601932000E-04 0.99999936436E+00 577 -0.39101300000E-01 0.98698020000E+00 0.32740000000E+04 -0.21092168000E-04 -0.27225036000E-03 0.99999996272E+00 578 0.56737330000E+00 -0.39254900000E+00 0.32740000000E+04 0.45317525000E-03 -0.36507213000E-03 0.99999983068E+00 579 0.18057000000E+01 0.23990620000E+01 0.32740000000E+04 0.51219779000E-03 -0.24733974000E-04 0.99999986852E+00 580 -0.12607040000E+00 -0.96370650000E+00 0.32740000000E+04 -0.36237878000E-03 -0.30828538000E-04 0.99999993387E+00 581 -0.16073240000E+01 0.11022200000E+01 0.32740000000E+04 -0.45469706000E-03 0.17464349000E-03 0.99999988138E+00 582 -0.11337650000E+01 -0.10981140000E+01 0.32740000000E+04 -0.12462527000E-03 0.40008847000E-03 0.99999991220E+00 583 0.43343060000E+00 0.19951510000E+01 0.32740000000E+04 -0.31829893000E-03 0.26831590000E-03 0.99999991335E+00 584 -0.19890170000E+01 0.87125300000E-01 0.32740000000E+04 -0.50590414000E-03 -0.71525900000E-03 0.99999961623E+00 585 0.84045750000E+00 0.71044280000E+00 0.32740000000E+04 0.42818206000E-05 0.18445037000E-03 0.99999998298E+00 586 0.10352710000E+01 0.67277220000E+00 0.32740000000E+04 0.43343331000E-03 0.45660730000E-04 0.99999990503E+00 587 -0.12007010000E+01 0.93103400000E+00 0.32740000000E+04 0.76991149000E-04 0.13998029000E-03 0.99999998724E+00 588 -0.23345030000E+01 -0.59540010000E+00 0.32740000000E+04 -0.89741341000E-04 -0.69652975000E-03 0.99999975340E+00 589 -0.19362820000E+01 0.89871440000E-01 0.32740000000E+04 -0.13299490000E-03 -0.13376938000E-04 0.99999999107E+00 590 -0.22999020000E+00 0.74233900000E+00 0.32740000000E+04 -0.31928691000E-05 0.43615026000E-04 0.99999999904E+00 591 -0.91757790000E+00 0.52538420000E+00 0.32740000000E+04 -0.29450655000E-03 -0.16270926000E-03 0.99999994340E+00 592 0.17728070000E+01 0.38934550000E+00 0.32740000000E+04 0.57497859000E-03 -0.27390849000E-03 0.99999979719E+00 593 -0.17138520000E+01 0.11514280000E+01 0.32740000000E+04 -0.60386659000E-03 0.36385885000E-03 0.99999975148E+00 594 -0.12656180000E+01 0.14221380000E+01 0.32740000000E+04 -0.49845467000E-03 0.20404372000E-03 0.99999985495E+00 595 0.77380790000E+00 -0.11738610000E+01 0.32740000000E+04 0.10595205000E-02 0.78574143000E-04 0.99999943562E+00 596 -0.59464880000E+00 0.11095710000E+01 0.32740000000E+04 -0.16194940000E-03 0.29246492000E-03 0.99999994412E+00 597 0.96057940000E+00 0.81713490000E+00 0.32740000000E+04 -0.10054465000E-03 0.56065858000E-03 0.99999983778E+00 598 -0.15379870000E+01 -0.47038860000E+00 0.32740000000E+04 -0.41513171000E-03 0.42791180000E-04 0.99999991292E+00 599 -0.10873130000E+01 0.19344960000E+01 0.32740000000E+04 -0.10769000000E-03 -0.45876988000E-03 0.99999988897E+00 600 -0.10873130000E+01 0.19344960000E+01 0.32740000000E+04 -0.10769000000E-03 -0.45876988000E-03 0.99999988897E+00 601 -0.85566180000E+00 -0.22634940000E+00 0.32740000000E+04 0.19650518000E-03 0.13845411000E-03 0.99999997111E+00 602 0.27836323000E-02 0.18115240000E+01 0.32740000000E+04 -0.58571948000E-03 -0.95146424000E-04 0.99999982394E+00 603 -0.72600290000E+00 0.10958210000E+01 0.32740000000E+04 -0.12033604000E-03 -0.57088048000E-03 0.99999982981E+00 604 0.47559960000E+00 0.11448830000E+01 0.32740000000E+04 0.51829079000E-03 -0.73909038000E-03 0.99999959256E+00 605 -0.16939500000E+01 0.15882270000E+01 0.32740000000E+04 -0.17135334000E-03 -0.10585891000E-04 0.99999998526E+00 606 -0.15232140000E+01 0.20962870000E+01 0.32740000000E+04 -0.48662725000E-04 0.62322657000E-03 0.99999980461E+00 607 0.34527760000E+00 0.26515610000E+01 0.32740000000E+04 0.23427182000E-03 0.27934124000E-03 0.99999993354E+00 608 0.12650590000E+01 0.14565230000E+01 0.32740000000E+04 0.68202120000E-03 0.46564668000E-03 0.99999965901E+00 609 -0.23909840000E+00 -0.13968600000E+01 0.32740000000E+04 0.32968388000E-03 -0.13743158000E-03 0.99999993621E+00 610 0.14793740000E+00 0.91810340000E+00 0.32740000000E+04 0.43257661000E-03 0.98926423000E-04 0.99999990155E+00 611 -0.14061580000E+01 -0.18675960000E+01 0.32740000000E+04 -0.34692261000E-03 -0.63513203000E-05 0.99999993980E+00 612 0.71016170000E+00 0.91026840000E+00 0.32740000000E+04 0.30676959000E-03 0.72306982000E-04 0.99999995033E+00 613 -0.25570690000E+01 0.10348840000E+01 0.32740000000E+04 -0.25381439000E-03 0.17463487000E-03 0.99999995254E+00 614 -0.11987480000E+01 0.60522350000E+00 0.32740000000E+04 0.21391251000E-03 0.69508865000E-03 0.99999973555E+00 615 -0.11987480000E+01 0.60522350000E+00 0.32740000000E+04 0.21391251000E-03 0.69508865000E-03 0.99999973555E+00 616 -0.21005410000E+00 0.18189030000E+00 0.32740000000E+04 -0.31322864000E-03 -0.10405041000E-03 0.99999994553E+00 617 -0.71575390000E+00 0.17396460000E+01 0.32740000000E+04 -0.32248843000E-03 0.15145163000E-03 0.99999993653E+00 618 -0.14240210000E+01 0.10232870000E+01 0.32740000000E+04 0.34619756000E-04 -0.13795533000E-03 0.99999998988E+00 619 0.11356480000E+01 0.36862610000E+00 0.32740000000E+04 0.11358139000E-03 -0.17204735000E-03 0.99999997875E+00 620 -0.18547250000E+01 0.90456830000E+00 0.32740000000E+04 0.30904313000E-03 0.39769677000E-03 0.99999987316E+00 621 -0.74696290000E+00 0.65275110000E+00 0.32740000000E+04 -0.35272617000E-03 0.25468451000E-03 0.99999990536E+00 622 -0.40131660000E-01 0.66434160000E+00 0.32740000000E+04 0.77170884000E-03 -0.30772091000E-03 0.99999965489E+00 623 -0.42413400000E-01 0.14762320000E+00 0.32740000000E+04 -0.16106557000E-03 0.38596053000E-03 0.99999991255E+00 624 0.15619190000E+00 -0.85759200000E+00 0.32740000000E+04 -0.46826925000E-03 0.13872284000E-03 0.99999988074E+00 625 0.15619190000E+00 -0.85759200000E+00 0.32740000000E+04 -0.46826925000E-03 0.13872284000E-03 0.99999988074E+00 626 -0.37699140000E-01 0.63427900000E+00 0.32740000000E+04 0.19791680000E-03 0.28912080000E-03 0.99999993862E+00 627 -0.61837920000E-01 0.39907150000E+00 0.32740000000E+04 0.12264178000E-03 -0.72967792000E-04 0.99999998982E+00 628 -0.11864400000E+01 0.29931290000E+00 0.32740000000E+04 0.16931100000E-03 -0.16613860000E-03 0.99999997187E+00 629 -0.15541320000E+01 0.35613960000E+00 0.32740000000E+04 -0.21843720000E-03 0.33680678000E-03 0.99999991942E+00 630 -0.52535310000E+00 -0.59589420000E+00 0.32740000000E+04 0.88347448000E-03 -0.31881416000E-03 0.99999955892E+00 631 -0.14457350000E+01 0.20356570000E+01 0.32740000000E+04 -0.12640023000E-03 -0.12369039000E-03 0.99999998436E+00 632 0.95635870000E+00 0.16963650000E+01 0.32740000000E+04 0.19198794000E-03 -0.15208220000E-04 0.99999998145E+00 633 -0.45461840000E+00 0.99816970000E+00 0.32740000000E+04 -0.19703311000E-03 0.19824027000E-04 0.99999998039E+00 634 -0.56044020000E+00 0.10145950000E+01 0.32740000000E+04 0.13972043000E-03 0.25729578000E-04 0.99999998991E+00 635 -0.14591580000E+01 0.80293840000E+00 0.32740000000E+04 0.10669068000E-03 -0.42947966000E-04 0.99999999339E+00 636 -0.21689370000E+01 0.80648470000E+00 0.32740000000E+04 0.73615280000E-04 0.32074473000E-03 0.99999994585E+00 637 -0.26154520000E+01 0.71988750000E-01 0.32740000000E+04 -0.39212231000E-04 -0.25312544000E-03 0.99999996719E+00 638 -0.26154520000E+01 0.71988750000E-01 0.32740000000E+04 -0.39212231000E-04 -0.25312544000E-03 0.99999996719E+00 639 0.10499950000E+01 -0.31949230000E+00 0.32740000000E+04 0.58809062000E-03 -0.14879393000E-03 0.99999981600E+00 640 -0.37965040000E+00 0.85098460000E+00 0.32740000000E+04 0.28318947000E-03 -0.39966652000E-03 0.99999988004E+00 641 -0.18753990000E+01 0.10686610000E+00 0.32740000000E+04 -0.25342949000E-03 -0.51355164000E-04 0.99999996657E+00 642 -0.23318000000E+01 0.20151790000E+01 0.32740000000E+04 -0.54102886000E-03 0.49238151000E-03 0.99999973242E+00 643 -0.35447130000E+00 -0.44168320000E+00 0.32740000000E+04 0.29688160000E-03 -0.21070553000E-03 0.99999993373E+00 644 -0.15976280000E+01 -0.55272020000E+00 0.32740000000E+04 -0.33731459000E-03 0.30568487000E-03 0.99999989639E+00 645 0.11735280000E+01 0.26121520000E+01 0.32740000000E+04 0.43385490000E-03 -0.57466848000E-04 0.99999990423E+00 646 -0.61093280000E-01 -0.33034780000E+00 0.32740000000E+04 -0.36226903000E-03 -0.44030830000E-05 0.99999993437E+00 647 0.91279360000E-01 0.11847490000E+01 0.32740000000E+04 0.19446277000E-03 0.16677110000E-03 0.99999996719E+00 648 0.34333467000E-02 0.14786440000E+01 0.32740000000E+04 0.28278364000E-03 0.24700738000E-03 0.99999992951E+00 649 -0.68733660000E+00 0.12971120000E+01 0.32740000000E+04 -0.93933857000E-04 0.30380831000E-03 0.99999994944E+00 650 -0.13086990000E+01 0.19296390000E+01 0.32740000000E+04 0.41709890000E-03 0.34696906000E-03 0.99999985282E+00 651 -0.98956850000E+00 0.11216780000E+01 0.32740000000E+04 -0.24753978000E-03 0.19973329000E-03 0.99999994942E+00 652 -0.98956850000E+00 0.11216780000E+01 0.32740000000E+04 -0.24753978000E-03 0.19973329000E-03 0.99999994942E+00 653 -0.63198180000E+00 -0.38690690000E+00 0.32740000000E+04 -0.18784538000E-04 0.18167045000E-03 0.99999998332E+00 654 -0.45626590000E+00 0.77789190000E+00 0.32740000000E+04 -0.25499650000E-03 0.21747009000E-03 0.99999994384E+00 655 -0.62222400000E+00 -0.23966810000E-01 0.32740000000E+04 -0.12497717000E-03 -0.86550363000E-05 0.99999999215E+00 656 -0.19068790000E+01 0.19014790000E+01 0.32740000000E+04 -0.12712834000E-03 -0.17836175000E-03 0.99999997601E+00 657 0.23351100000E+00 0.83654170000E+00 0.32740000000E+04 0.42693556000E-03 0.12219997000E-03 0.99999990140E+00 658 0.23351100000E+00 0.83654170000E+00 0.32740000000E+04 0.42693556000E-03 0.12219997000E-03 0.99999990140E+00 659 -0.18383750000E+00 0.82218120000E+00 0.32740000000E+04 -0.28404905000E-03 0.22336340000E-04 0.99999995941E+00 660 -0.21959770000E+01 0.11821910000E+00 0.32740000000E+04 0.43760519000E-03 0.29816898000E-03 0.99999985980E+00 661 0.96081410000E+00 0.16395570000E+01 0.32740000000E+04 0.12219889000E-03 -0.33466046000E-03 0.99999993653E+00 662 0.16223960000E+01 -0.17304060000E-01 0.32740000000E+04 0.15659783000E-03 -0.67779220000E-04 0.99999998544E+00 663 -0.22198880000E+01 -0.17549120000E+01 0.32740000000E+04 -0.30188874000E-04 0.54571919000E-04 0.99999999806E+00 664 -0.13417380000E+01 0.69224310000E+00 0.32740000000E+04 -0.29957629000E-03 0.32107343000E-03 0.99999990358E+00 665 0.16597270000E+01 -0.73867120000E+00 0.32740000000E+04 -0.52098048000E-05 -0.36324745000E-04 0.99999999933E+00 666 0.11870880000E+01 0.12732760000E+00 0.32740000000E+04 0.12230998000E-03 0.14361522000E-03 0.99999998221E+00 667 -0.14496750000E+01 -0.39007740000E+00 0.32740000000E+04 -0.72470990000E-04 -0.19646166000E-04 0.99999999718E+00 668 0.98440030000E+00 0.32632080000E+00 0.32740000000E+04 0.44337776000E-03 -0.32410739000E-03 0.99999984919E+00 669 -0.17858260000E+01 0.19146190000E+01 0.32740000000E+04 0.30192407000E-03 0.16943731000E-03 0.99999994007E+00 670 -0.19938980000E+01 0.14097610000E+01 0.32740000000E+04 -0.37707036000E-03 -0.19434677000E-03 0.99999991002E+00 671 -0.69235430000E+00 -0.36800840000E+00 0.32740000000E+04 -0.17292752000E-03 -0.12307045000E-03 0.99999997747E+00 672 -0.25200920000E+00 -0.13634600000E+01 0.32740000000E+04 0.14610517000E-03 -0.30868698000E-03 0.99999994168E+00 673 0.24530430000E+00 0.32087470000E+01 0.32740000000E+04 0.33960171000E-03 0.16242822000E-04 0.99999994220E+00 674 -0.72973080000E+00 -0.27418540000E-01 0.32740000000E+04 0.41920128000E-04 0.29338503000E-03 0.99999995608E+00 675 0.18628800000E+01 0.41661340000E+00 0.32740000000E+04 0.10722298000E-03 0.27837037000E-03 0.99999995551E+00 676 -0.17121940000E+01 0.74116490000E+00 0.32740000000E+04 -0.13249130000E-03 0.12101823000E-03 0.99999998390E+00 677 -0.20133820000E+01 -0.93226050000E+00 0.32740000000E+04 -0.34249556000E-03 -0.55178354000E-03 0.99999978912E+00 678 -0.17904400000E+00 0.11427790000E+01 0.32740000000E+04 -0.37525030000E-03 -0.52715052000E-03 0.99999979065E+00 679 -0.18239510000E+01 -0.12769990000E+01 0.32740000000E+04 -0.27085203000E-03 0.78580924000E-03 0.99999965457E+00 680 0.18472970000E+00 0.37263290000E+00 0.32740000000E+04 0.46539042000E-03 -0.44590484000E-04 0.99999989071E+00 681 -0.11341440000E+01 0.12122950000E+01 0.32740000000E+04 0.43525131000E-04 0.87993161000E-04 0.99999999518E+00 682 0.22345090000E+01 0.14987950000E+01 0.32740000000E+04 0.29836132000E-04 -0.31983995000E-03 0.99999994841E+00 683 0.30998470000E+00 0.19065120000E+01 0.32740000000E+04 0.12231424000E-02 0.51281846000E-03 0.99999912047E+00 684 -0.75588680000E+00 0.30949580000E-01 0.32740000000E+04 0.41713013000E-03 -0.17593315000E-03 0.99999989752E+00 685 -0.49297680000E+00 0.73732280000E+00 0.32740000000E+04 -0.41487862000E-03 -0.19824259000E-03 0.99999989429E+00 686 0.43446180000E+00 0.53696680000E+00 0.32740000000E+04 0.63261285000E-03 -0.30586700000E-03 0.99999975312E+00 687 -0.17925190000E+01 0.13470790000E+01 0.32740000000E+04 -0.72377379000E-03 -0.12005753000E-02 0.99999901738E+00 688 -0.17270760000E+01 0.18317820000E+01 0.32740000000E+04 0.12166861000E-04 0.48675897000E-03 0.99999988146E+00 689 -0.17270760000E+01 0.18317820000E+01 0.32740000000E+04 0.12166861000E-04 0.48675897000E-03 0.99999988146E+00 690 -0.32022900000E+00 -0.66145900000E+00 0.32740000000E+04 -0.14361707000E-03 -0.73332900000E-04 0.99999998700E+00 691 0.78191950000E+00 -0.11926470000E+01 0.32740000000E+04 0.64201641000E-03 -0.49171189000E-03 0.99999967302E+00 692 0.95266990000E+00 0.10930610000E+01 0.32740000000E+04 0.33620343000E-03 -0.26118031000E-03 0.99999990938E+00 693 -0.83193890000E+00 0.13510370000E+01 0.32740000000E+04 0.38651924000E-03 0.94785792000E-05 0.99999992526E+00 694 -0.15194010000E+01 -0.11111530000E+01 0.32740000000E+04 0.28878884000E-03 -0.33911496000E-04 0.99999995773E+00 695 0.44665770000E-01 0.17031070000E+01 0.32740000000E+04 0.31496567000E-03 0.31364978000E-05 0.99999995039E+00 696 -0.21359670000E+01 0.11933390000E+00 0.32740000000E+04 0.37852718000E-03 0.52291012000E-04 0.99999992699E+00 697 -0.26307500000E+01 0.42598830000E+00 0.32740000000E+04 0.85122010000E-05 0.74963021000E-03 0.99999971899E+00 698 -0.50484280000E+00 -0.45624760000E-01 0.32740000000E+04 0.33883491000E-03 -0.22934671000E-03 0.99999991630E+00 699 -0.34671170000E+00 -0.35716220000E+00 0.32740000000E+04 0.16871786000E-03 0.29283805000E-04 0.99999998534E+00 700 0.14993630000E+01 0.15672280000E+01 0.32740000000E+04 0.32712458000E-03 0.18168733000E-03 0.99999992999E+00 701 0.14993630000E+01 0.15672280000E+01 0.32740000000E+04 0.32712458000E-03 0.18168733000E-03 0.99999992999E+00 702 0.38239110000E+00 -0.47100340000E+00 0.32740000000E+04 -0.95035968000E-04 -0.65688329000E-03 0.99999977974E+00 703 -0.84529410000E+00 0.83529640000E+00 0.32740000000E+04 0.29435146000E-03 0.25539618000E-03 0.99999992407E+00 704 -0.65680660000E+00 0.21411270000E+01 0.32740000000E+04 0.19758302000E-03 0.14494798000E-03 0.99999996998E+00 705 -0.78494930000E+00 0.28513150000E+01 0.32740000000E+04 -0.34811173000E-03 0.35278191000E-03 0.99999987718E+00 706 -0.27220400000E+01 -0.14243330000E+01 0.32740000000E+04 -0.26537056000E-03 -0.52151841000E-03 0.99999982880E+00 707 0.20723590000E+01 -0.87893780000E+00 0.32740000000E+04 0.95103466000E-03 0.80353439000E-05 0.99999954773E+00 708 0.13621050000E+01 -0.15610020000E+01 0.32740000000E+04 -0.34288541000E-03 -0.13125353000E-03 0.99999993260E+00 709 -0.10892440000E+01 0.20524060000E+01 0.32740000000E+04 0.16648530000E-03 -0.73614996000E-03 0.99999971518E+00 710 -0.76452090000E+00 0.11590410000E+00 0.32740000000E+04 -0.39898307000E-03 0.50257429000E-04 0.99999991914E+00 711 0.24013260000E+01 0.90107960000E+00 0.32740000000E+04 -0.36458267000E-03 0.23574609000E-03 0.99999990575E+00 712 -0.20364030000E+01 0.22450550000E+01 0.32740000000E+04 -0.84620574000E-03 -0.79800072000E-03 0.99999932357E+00 713 0.11164870000E+01 -0.12155920000E+00 0.32740000000E+04 0.77156012000E-03 0.10136126000E-03 0.99999969721E+00 714 -0.13129740000E+01 0.18047170000E+01 0.32740000000E+04 0.16450445000E-03 0.24395058000E-03 0.99999995671E+00 715 0.16857190000E+01 0.13067450000E+01 0.32740000000E+04 0.42197545000E-03 -0.20672649000E-03 0.99999988960E+00 716 0.16857190000E+01 0.13067450000E+01 0.32740000000E+04 0.42197545000E-03 -0.20672649000E-03 0.99999988960E+00 717 -0.14562710000E+01 0.88328610000E+00 0.32740000000E+04 0.24582053000E-03 -0.18753835000E-03 0.99999995220E+00 718 -0.83890890000E+00 -0.64420270000E+00 0.32740000000E+04 -0.33959092000E-03 -0.55315863000E-05 0.99999994232E+00 719 -0.61836340000E+00 -0.64458590000E+00 0.32740000000E+04 0.20482160000E-03 0.20819037000E-03 0.99999995735E+00 720 -0.13807530000E+01 0.13594120000E+01 0.32740000000E+04 0.30101152000E-03 0.47172757000E-03 0.99999984343E+00 721 -0.18957860000E+01 0.15144850000E+01 0.32740000000E+04 0.81877055000E-03 -0.18470448000E-03 0.99999964775E+00 722 -0.24529660000E+01 0.17069360000E+01 0.32740000000E+04 -0.10187466000E-03 0.21408732000E-04 0.99999999458E+00 723 -0.22096750000E+01 0.11722760000E+01 0.32740000000E+04 -0.17271616000E-03 0.11538370000E-03 0.99999997843E+00 724 0.92408920000E+00 0.78418750000E+00 0.32740000000E+04 0.41423959000E-03 0.43097208000E-03 0.99999982133E+00 725 -0.24512400000E+01 -0.15280580000E+00 0.32740000000E+04 0.37984391000E-04 -0.97750817000E-04 0.99999999450E+00 726 -0.24955990000E+01 0.12584300000E+01 0.32740000000E+04 -0.62995547000E-04 0.18940134000E-03 0.99999998008E+00 727 -0.64448030000E+00 0.13264000000E+01 0.32740000000E+04 0.24076492000E-03 0.22094013000E-03 0.99999994661E+00 728 0.10881010000E+01 0.15119970000E+01 0.32740000000E+04 -0.23472444000E-03 -0.83797087000E-03 0.99999962135E+00 729 -0.23535220000E+01 -0.85789430000E+00 0.32740000000E+04 0.27755779000E-03 -0.62987278000E-03 0.99999976311E+00 730 -0.16086980000E+01 -0.35773150000E+00 0.32740000000E+04 -0.63617357000E-04 -0.10837323000E-03 0.99999999210E+00 731 0.24076610000E+01 0.13147760000E+01 0.32740000000E+04 -0.73813026000E-04 0.32834258000E-03 0.99999994337E+00 732 0.59372900000E+00 0.10333030000E+01 0.32740000000E+04 0.25230684000E-03 0.61800552000E-03 0.99999977721E+00 733 -0.97482010000E+00 0.81400110000E+00 0.32740000000E+04 0.59805170000E-03 0.44404855000E-03 0.99999972258E+00 734 -0.18397360000E+01 -0.95920970000E+00 0.32740000000E+04 -0.27689172000E-03 -0.49527513000E-03 0.99999983902E+00 735 -0.12646380000E+01 -0.60323520000E+00 0.32740000000E+04 0.17441760000E-03 -0.56720214000E-05 0.99999998477E+00 736 0.16034310000E+00 -0.16668290000E+01 0.32740000000E+04 0.18620609000E-03 -0.54422172000E-03 0.99999983457E+00 737 -0.16783770000E+01 0.11101000000E+01 0.32740000000E+04 0.98922721000E-03 0.14922804000E-04 0.99999951060E+00 738 -0.16783770000E+01 0.11101000000E+01 0.32740000000E+04 0.98922721000E-03 0.14922804000E-04 0.99999951060E+00 739 0.15488250000E+01 0.60108690000E-01 0.32740000000E+04 -0.25958483000E-03 -0.28257709000E-04 0.99999996591E+00 740 -0.17763750000E+01 0.15064180000E+01 0.32740000000E+04 0.33355245000E-03 0.22496542000E-03 0.99999991907E+00 741 0.77414240000E+00 0.25164100000E+01 0.32740000000E+04 -0.18679537000E-03 0.30171580000E-03 0.99999993704E+00 742 0.23273460000E+01 0.15814700000E+01 0.32740000000E+04 0.42519698000E-03 -0.17605432000E-03 0.99999989411E+00 743 -0.29562080000E+01 0.16501960000E+01 0.32740000000E+04 0.55489340000E-03 0.20990557000E-03 0.99999982402E+00 744 -0.12543980000E+01 0.23336230000E+00 0.32740000000E+04 0.11766401000E-03 0.21620058000E-03 0.99999996971E+00 745 -0.11880290000E+00 -0.85624630000E+00 0.32740000000E+04 0.11197294000E-05 0.11416683000E-03 0.99999999348E+00 746 -0.21126270000E+01 0.16635640000E+01 0.32740000000E+04 -0.15052907000E-03 0.35019180000E-04 0.99999998806E+00 747 0.23122950000E+01 -0.53027700000E+00 0.32740000000E+04 0.14193257000E-03 -0.79106679000E-03 0.99999967703E+00 748 -0.16563230000E+01 0.12951630000E+01 0.32740000000E+04 0.43315318000E-03 0.99735538000E-04 0.99999990122E+00 749 -0.16875840000E+00 0.15258540000E+01 0.32740000000E+04 -0.63416577000E-04 0.65348914000E-03 0.99999978447E+00 750 -0.82277590000E+00 0.60777290000E+00 0.32740000000E+04 0.32120330000E-04 -0.70457179000E-04 0.99999999700E+00 751 -0.82277590000E+00 0.60777290000E+00 0.32740000000E+04 0.32120330000E-04 -0.70457179000E-04 0.99999999700E+00 752 -0.15636210000E+01 0.20192760000E+01 0.32740000000E+04 -0.44137210000E-03 0.29420300000E-03 0.99999985932E+00 753 -0.18225200000E+00 0.14779220000E+01 0.32740000000E+04 0.40823492000E-03 0.34858371000E-03 0.99999985592E+00 754 0.11721070000E+01 0.23298950000E-01 0.32740000000E+04 0.79340200000E-04 0.14038692000E-03 0.99999998700E+00 755 -0.63566910000E+00 0.11593560000E+01 0.32740000000E+04 -0.26185543000E-03 -0.18958695000E-03 0.99999994774E+00 756 0.41396170000E+00 0.12371580000E+01 0.32740000000E+04 0.16043463000E-04 0.41271508000E-03 0.99999991470E+00 757 0.95049130000E+00 0.66712070000E+00 0.32740000000E+04 0.16036945000E-03 -0.20924927000E-03 0.99999996525E+00 758 0.57272220000E-01 0.43999510000E+00 0.32740000000E+04 -0.15418346000E-03 0.17232334000E-04 0.99999998797E+00 759 0.85495080000E+00 0.20568320000E+01 0.32740000000E+04 0.25856905000E-03 -0.23874440000E-03 0.99999993807E+00 760 -0.12229130000E+01 0.13079470000E+00 0.32740000000E+04 0.11975697000E-04 -0.22197692000E-03 0.99999997529E+00 761 0.47042260000E+00 0.22929190000E+01 0.32740000000E+04 -0.49052600000E-04 0.44322631000E-03 0.99999990057E+00 762 0.47042260000E+00 0.22929190000E+01 0.32740000000E+04 -0.49052600000E-04 0.44322631000E-03 0.99999990057E+00 763 -0.59696120000E+00 0.56590780000E+00 0.32740000000E+04 0.98402073000E-04 -0.19057293000E-03 0.99999997700E+00 764 -0.95924630000E+00 0.72049260000E+00 0.32740000000E+04 -0.51992571000E-04 -0.16124899000E-03 0.99999998565E+00 765 -0.11828930000E+01 0.27810190000E+01 0.32740000000E+04 0.23573775000E-03 0.22698150000E-03 0.99999994645E+00 766 -0.18839570000E+01 -0.38670910000E+00 0.32740000000E+04 0.11671539000E-02 0.31445862000E-03 0.99999926943E+00 767 0.17518840000E+00 0.61599770000E+00 0.32740000000E+04 0.10910282000E-03 -0.89488522000E-05 0.99999999401E+00 768 0.11430340000E+01 0.17198220000E+01 0.32740000000E+04 0.26103824000E-04 -0.26020111000E-03 0.99999996581E+00 769 0.85600800000E+00 0.15385900000E+01 0.32740000000E+04 -0.82558501000E-04 -0.34525310000E-04 0.99999999600E+00 770 -0.12039690000E+01 0.17193140000E+01 0.32740000000E+04 0.50780567000E-03 0.48025459000E-03 0.99999975574E+00 771 -0.10584150000E+01 0.16498230000E+01 0.32740000000E+04 -0.44103610000E-03 0.15606689000E-03 0.99999989057E+00 772 -0.25399000000E+01 0.19666800000E+01 0.32740000000E+04 -0.29105137000E-03 -0.62951422000E-05 0.99999995762E+00 773 -0.10600660000E+01 -0.20591560000E+00 0.32740000000E+04 -0.47064608000E-04 -0.29219489000E-03 0.99999995620E+00 774 0.79227600000E+00 -0.15493570000E+01 0.32740000000E+04 0.44022140000E-03 -0.68034482000E-04 0.99999990079E+00 775 0.68218040000E+00 -0.35045140000E+00 0.32740000000E+04 0.14158199000E-04 -0.31081468000E-04 0.99999999942E+00 776 -0.18577410000E+01 0.17472620000E+01 0.32740000000E+04 0.22540589000E-03 0.31088386000E-03 0.99999992627E+00 777 0.25566610000E+01 0.49372720000E-01 0.32740000000E+04 0.57410460000E-03 0.14740306000E-03 0.99999982434E+00 778 -0.88886500000E+00 -0.10960270000E+01 0.32740000000E+04 0.93842296000E-04 -0.56231562000E-04 0.99999999402E+00 779 -0.20023460000E+01 0.27168530000E+01 0.32740000000E+04 -0.17092140000E-03 -0.11829421000E-03 0.99999997840E+00 780 -0.23566520000E+01 0.77239790000E+00 0.32740000000E+04 -0.24735351000E-03 -0.10451793000E-03 0.99999996395E+00 781 -0.22200490000E+01 0.18534280000E+01 0.32740000000E+04 -0.41294258000E-03 0.43567008000E-03 0.99999981983E+00 782 -0.20642170000E+01 0.46839090000E+00 0.32740000000E+04 0.95994771000E-03 0.10681205000E-03 0.99999953355E+00 783 -0.24212390000E+01 0.14678650000E+01 0.32740000000E+04 -0.14049954000E-03 -0.79358899000E-04 0.99999998698E+00 784 -0.24212390000E+01 0.14678650000E+01 0.32740000000E+04 -0.14049954000E-03 -0.79358899000E-04 0.99999998698E+00 785 -0.18275700000E+01 0.17037410000E+01 0.32740000000E+04 -0.24325230000E-03 0.37721530000E-03 0.99999989927E+00 786 0.16972980000E+01 0.21349280000E+01 0.32740000000E+04 0.14802693000E-03 0.14204692000E-03 0.99999997896E+00 787 -0.24344200000E+00 0.66327310000E+00 0.32740000000E+04 -0.11639256000E-03 -0.14028793000E-03 0.99999998339E+00 788 -0.11677370000E+01 -0.20636170000E+01 0.32740000000E+04 0.13989625000E-03 -0.21448942000E-03 0.99999996721E+00 789 -0.24589640000E+01 0.60956120000E+00 0.32740000000E+04 -0.10029670000E-03 -0.38487616000E-03 0.99999992091E+00 790 0.11402140000E+01 0.19858860000E+01 0.32740000000E+04 -0.37196741000E-03 0.44757515000E-03 0.99999983066E+00 791 0.10441560000E+01 0.13059280000E+01 0.32740000000E+04 0.74171339000E-03 0.47205878000E-04 0.99999972382E+00 792 -0.26764480000E+01 0.61293770000E+00 0.32740000000E+04 -0.11248203000E-03 0.50883544000E-04 0.99999999238E+00 793 0.41539220000E+00 0.16203020000E+01 0.32740000000E+04 0.17425572000E-03 -0.51736981000E-04 0.99999998348E+00 794 -0.15735750000E+01 0.10297450000E+01 0.32740000000E+04 -0.39639900000E-03 -0.11437969000E-03 0.99999991489E+00 795 -0.26734060000E+00 0.10447550000E+01 0.32740000000E+04 0.38604200000E-03 -0.34264816000E-04 0.99999992490E+00 796 -0.14476950000E+01 0.76215990000E+00 0.32740000000E+04 0.70768961000E-04 0.18802333000E-03 0.99999997982E+00 797 -0.18258090000E+01 0.34713330000E+00 0.32740000000E+04 -0.11186265000E-03 0.73281094000E-03 0.99999972524E+00 798 -0.15915580000E+01 0.14566580000E+01 0.32740000000E+04 0.11685465000E-03 0.71455099000E-04 0.99999999062E+00 799 -0.74204140000E+00 0.10632570000E+01 0.32740000000E+04 0.75945654000E-03 -0.81510871000E-03 0.99999937941E+00 800 0.47297720000E+00 0.17693210000E+01 0.32740000000E+04 0.37523580000E-03 0.21187979000E-03 0.99999990715E+00 801 0.47297720000E+00 0.17693210000E+01 0.32740000000E+04 0.37523580000E-03 0.21187979000E-03 0.99999990715E+00 802 -0.46799980000E+00 0.20222420000E+01 0.32740000000E+04 0.10783482000E-03 0.21414799000E-03 0.99999997126E+00 803 -0.22234090000E+01 0.17937480000E+01 0.32740000000E+04 -0.13881638000E-03 0.81622311000E-04 0.99999998703E+00 804 -0.20796620000E+01 0.85741550000E+00 0.32740000000E+04 0.57757665000E-04 0.55496879000E-04 0.99999999679E+00 805 -0.13033150000E+00 -0.64281620000E+00 0.32740000000E+04 0.50641206000E-03 -0.12665355000E-03 0.99999986375E+00 806 0.78115910000E+00 -0.15627860000E+00 0.32740000000E+04 0.11655604000E-03 -0.34265380000E-03 0.99999993450E+00 807 -0.13510220000E+01 -0.16168720000E+01 0.32740000000E+04 -0.24919884000E-03 -0.27873329000E-03 0.99999993010E+00 808 -0.61508150000E+00 -0.20942211000E-02 0.32740000000E+04 -0.59902336000E-03 0.13676222000E-02 0.99999888539E+00 809 -0.74648770000E+00 0.87566560000E+00 0.32740000000E+04 0.18755722000E-04 -0.15087794000E-03 0.99999998844E+00 810 -0.10751100000E+00 -0.87950468000E-02 0.32740000000E+04 0.57183095000E-03 -0.10738764000E-03 0.99999983074E+00 811 -0.15220350000E+01 0.11020120000E+01 0.32740000000E+04 -0.23292439000E-03 -0.19517627000E-03 0.99999995383E+00 812 0.13363300000E+01 0.11327550000E+01 0.32740000000E+04 -0.30155406000E-04 0.26933354000E-03 0.99999996328E+00 813 0.27912700000E+00 0.12467200000E+01 0.32740000000E+04 0.27104883000E-03 -0.96508476000E-04 0.99999995861E+00 814 -0.54865090000E+00 -0.42376330000E+00 0.32740000000E+04 0.12646184000E-02 -0.39913837000E-03 0.99999912071E+00 815 -0.12299090000E+01 0.93740270000E+00 0.32740000000E+04 0.18765693000E-03 -0.20462086000E-04 0.99999998218E+00 816 -0.24155100000E+00 0.18901730000E+01 0.32740000000E+04 -0.89587971000E-04 0.43274241000E-03 0.99999990235E+00 817 -0.27021560000E+00 0.93102390000E+00 0.32740000000E+04 0.17704620000E-03 0.39534614000E-03 0.99999990618E+00 818 0.30072860000E+00 -0.68273490000E+00 0.32740000000E+04 -0.45069435000E-03 0.90133959000E-04 0.99999989438E+00 819 0.30072860000E+00 -0.68273490000E+00 0.32740000000E+04 -0.45069435000E-03 0.90133959000E-04 0.99999989438E+00 820 0.97050000000E-01 0.18293820000E+01 0.32740000000E+04 0.69027458000E-03 0.39157725000E-03 0.99999968509E+00 821 -0.45240120000E-01 0.14185190000E+01 0.32740000000E+04 0.28200389000E-03 0.19759471000E-03 0.99999994072E+00 822 -0.24689670000E+01 0.60829010000E+00 0.32740000000E+04 0.13412129000E-03 0.47532867000E-04 0.99999998988E+00 823 -0.14280260000E+01 -0.64548460000E+00 0.32740000000E+04 0.96226466000E-03 -0.13346058000E-07 0.99999953702E+00 824 0.49733540000E+00 0.14722840000E+01 0.32740000000E+04 0.46341269000E-04 0.11658901000E-03 0.99999999213E+00 825 -0.20874630000E+01 0.52926840000E+00 0.32740000000E+04 -0.31016496000E-03 -0.16867615000E-03 0.99999993767E+00 826 0.11074370000E+01 0.21397740000E+00 0.32740000000E+04 0.55809377000E-03 -0.48757315000E-03 0.99999972540E+00 827 -0.13416110000E+01 0.59014300000E+00 0.32740000000E+04 -0.70082388000E-04 -0.33983015000E-03 0.99999993980E+00 828 -0.16870380000E+01 0.11572620000E+01 0.32740000000E+04 -0.51140710000E-03 0.17836952000E-03 0.99999985332E+00 829 -0.14445950000E+01 0.16388040000E+01 0.32740000000E+04 0.21303324000E-03 0.17118109000E-03 0.99999996266E+00 830 0.13093980000E+01 0.66863570000E+00 0.32740000000E+04 0.22449065000E-03 -0.12061502000E-04 0.99999997473E+00 831 -0.13137850000E+01 0.18228260000E+00 0.32740000000E+04 -0.84131403000E-04 -0.17454895000E-04 0.99999999631E+00 832 -0.11088870000E+01 0.12628990000E+01 0.32740000000E+04 0.35820043000E-03 0.10899571000E-03 0.99999992991E+00 833 -0.64490520000E+00 0.17507520000E+01 0.32740000000E+04 0.10892154000E-03 0.57386387000E-04 0.99999999242E+00 834 -0.94176220000E-01 0.11899820000E+01 0.32740000000E+04 -0.21528800000E-03 0.35541216000E-03 0.99999991367E+00 835 0.85496230000E+00 -0.81740440000E+00 0.32740000000E+04 -0.87088578000E-04 -0.65319357000E-03 0.99999978288E+00 836 -0.71615450000E+00 0.24877610000E+01 0.32740000000E+04 0.29484098000E-03 0.75294905000E-04 0.99999995370E+00 837 0.24659810000E+01 0.32894150000E+01 0.32740000000E+04 0.68072189000E-03 0.14762639000E-03 0.99999975741E+00 838 -0.35339110000E+00 0.63173650000E+00 0.32740000000E+04 0.75053325000E-03 -0.81953758000E-05 0.99999971832E+00 839 0.10268920000E+01 0.16018400000E+01 0.32740000000E+04 0.31828106000E-03 0.49914635000E-03 0.99999982478E+00 840 -0.84038510000E+00 0.24640600000E+01 0.32740000000E+04 -0.11200078000E-02 0.19999233000E-03 0.99999935279E+00 841 -0.11385550000E+00 0.74995590000E+00 0.32740000000E+04 0.29701641000E-03 0.10249118000E-03 0.99999995064E+00 842 0.30741640000E-01 0.55530800000E+00 0.32740000000E+04 -0.31488488000E-03 0.93937857000E-03 0.99999950921E+00 843 -0.15551970000E+01 0.78574960000E+00 0.32740000000E+04 -0.72635296000E-04 -0.49885397000E-03 0.99999987293E+00 844 0.89610520000E+00 0.66514420000E+00 0.32740000000E+04 -0.30945870000E-03 0.51869451000E-04 0.99999995077E+00 845 -0.70715400000E+00 0.84857990000E+00 0.32740000000E+04 0.10194108000E-02 0.28475295000E-03 0.99999943986E+00 846 -0.10888200000E+01 0.13280380000E+01 0.32740000000E+04 -0.21895995000E-03 0.41014314000E-03 0.99999989192E+00 847 0.22963680000E+00 -0.82757760000E+00 0.32740000000E+04 -0.28589173000E-03 -0.51196211000E-03 0.99999982808E+00 848 0.10331970000E+01 0.12348560000E+01 0.32740000000E+04 -0.11542168000E-03 0.16007939000E-03 0.99999998053E+00 849 0.10331970000E+01 0.12348560000E+01 0.32740000000E+04 -0.11542168000E-03 0.16007939000E-03 0.99999998053E+00 850 -0.24515630000E+01 0.37478780000E+00 0.32740000000E+04 -0.42167393000E-03 -0.73115702000E-03 0.99999964380E+00 851 0.73111000000E+00 -0.10986740000E+01 0.32740000000E+04 0.15368132000E-03 -0.78399351000E-03 0.99999968087E+00 852 -0.19788330000E+01 0.73391890000E+00 0.32740000000E+04 0.21102437000E-03 -0.56624907000E-04 0.99999997613E+00 853 -0.12487040000E+01 0.77945580000E+00 0.32740000000E+04 0.88966204000E-04 -0.20151147000E-03 0.99999997574E+00 854 -0.10807130000E+01 0.36441290000E+00 0.32740000000E+04 -0.58113434000E-03 -0.20093605000E-03 0.99999981095E+00 855 -0.45775070000E+00 -0.80247390000E+00 0.32740000000E+04 0.24246056000E-03 -0.56541839000E-03 0.99999981076E+00 856 -0.18744380000E+01 0.19062140000E-01 0.32740000000E+04 -0.63350119000E-04 0.21644747000E-03 0.99999997457E+00 857 0.15593140000E+01 0.29977360000E+00 0.32740000000E+04 -0.17456528000E-03 0.44848343000E-06 0.99999998476E+00 858 -0.87955420000E+00 0.50845020000E+00 0.32740000000E+04 -0.49792853000E-03 -0.42236768000E-03 0.99999978684E+00 859 -0.66364900000E+00 0.10244530000E+01 0.32740000000E+04 0.13557426000E-03 0.14680185000E-03 0.99999998003E+00 860 0.83878970000E+00 0.29789610000E+01 0.32740000000E+04 0.27904808000E-03 0.25926871000E-04 0.99999996073E+00 861 0.53345000000E+00 0.94226220000E+00 0.32740000000E+04 0.94717063000E-04 0.26960636000E-03 0.99999995917E+00 862 0.53345000000E+00 0.94226220000E+00 0.32740000000E+04 0.94717063000E-04 0.26960636000E-03 0.99999995917E+00 863 -0.10921350000E+01 0.25140850000E+00 0.32740000000E+04 -0.26933174000E-03 0.94775176000E-04 0.99999995924E+00 864 -0.11463420000E+01 0.17763710000E+01 0.32740000000E+04 0.13610591000E-03 0.56402587000E-04 0.99999998915E+00 865 -0.91769320000E+00 0.10544390000E+01 0.32740000000E+04 -0.19550597000E-03 -0.22959271000E-03 0.99999995453E+00 866 -0.14224120000E+01 -0.61074950000E-01 0.32740000000E+04 0.74967492000E-03 0.43005903000E-05 0.99999971898E+00 867 -0.10335400000E+01 0.71835770000E+00 0.32740000000E+04 0.54406963000E-03 0.32672333000E-03 0.99999979862E+00 868 -0.47486910000E+00 0.20659650000E+01 0.32740000000E+04 0.58538728000E-04 -0.21003631000E-03 0.99999997623E+00 869 0.10915860000E+01 0.65685400000E+00 0.32740000000E+04 0.30047243000E-03 0.10427050000E-03 0.99999994942E+00 870 0.18386700000E+00 0.17185280000E+01 0.32740000000E+04 0.30500643000E-03 -0.42208700000E-03 0.99999986441E+00 871 -0.38921390000E+00 0.23360210000E+01 0.32740000000E+04 0.31106701000E-04 -0.14701391000E-03 0.99999998871E+00 872 -0.38921390000E+00 0.23360210000E+01 0.32740000000E+04 0.31106701000E-04 -0.14701391000E-03 0.99999998871E+00 873 0.35914360000E+00 0.21605970000E+01 0.32740000000E+04 -0.25430982000E-03 0.31598148000E-03 0.99999991774E+00 874 0.51784130000E+00 0.19102130000E+01 0.32740000000E+04 0.18166365000E-03 0.42711262000E-03 0.99999989229E+00 875 -0.74037310000E+00 0.90297230000E+00 0.32740000000E+04 0.15501925000E-03 0.35504636000E-03 0.99999992496E+00 876 0.21193900000E+01 0.87530250000E+00 0.32740000000E+04 -0.20741546000E-03 -0.57713198000E-03 0.99999981195E+00 877 0.21122710000E+01 0.35805530000E+00 0.32740000000E+04 0.31035871000E-03 0.10803653000E-03 0.99999994600E+00 878 -0.55431680000E+00 0.13762650000E+01 0.32740000000E+04 -0.42696940000E-03 0.40194267000E-03 0.99999982807E+00 879 -0.20289910000E+01 0.21703470000E+01 0.32740000000E+04 -0.11511881000E-03 -0.10951706000E-03 0.99999998738E+00 880 -0.59786310000E+00 0.13337680000E+01 0.32740000000E+04 -0.51470206000E-03 0.15902202000E-03 0.99999985490E+00 881 -0.11906620000E+01 0.52884230000E+00 0.32740000000E+04 0.28438677000E-03 -0.64992433000E-04 0.99999995745E+00 882 0.18373910000E+01 0.17391480000E+01 0.32740000000E+04 -0.83826999000E-04 0.41446759000E-03 0.99999991059E+00 883 -0.97230160000E+00 0.16565690000E+01 0.32740000000E+04 0.13293914000E-03 0.16476672000E-03 0.99999997759E+00 884 -0.72485670000E+00 -0.55781780000E+00 0.32740000000E+04 -0.83631930000E-04 0.91650254000E-05 0.99999999646E+00 885 0.48254010000E+00 0.14230460000E+01 0.32740000000E+04 0.24386669000E-03 -0.31682104000E-03 0.99999992008E+00 886 0.14411130000E+01 -0.12493260000E+01 0.32740000000E+04 0.69118006000E-03 0.23678302000E-03 0.99999973310E+00 887 -0.20504300000E+01 -0.14809630000E+01 0.32740000000E+04 -0.77571394000E-05 -0.15619348000E-03 0.99999998777E+00 888 0.16085190000E+01 0.80581920000E+00 0.32740000000E+04 0.32287545000E-03 0.15306499000E-03 0.99999993616E+00 889 -0.18712540000E+01 0.15330890000E+01 0.32740000000E+04 0.41388077000E-03 -0.70717098000E-03 0.99999966431E+00 890 -0.54962530000E+00 0.15043540000E+01 0.32740000000E+04 0.87820154000E-04 0.29543007000E-03 0.99999995250E+00 891 -0.54962530000E+00 0.15043540000E+01 0.32740000000E+04 0.87820154000E-04 0.29543007000E-03 0.99999995250E+00 892 -0.22589500000E+01 0.13869230000E+01 0.32740000000E+04 -0.44202614000E-04 -0.37736964000E-03 0.99999992782E+00 893 -0.37970380000E+00 0.14545950000E+01 0.32740000000E+04 0.14917418000E-04 0.64997199000E-04 0.99999999778E+00 894 -0.23464050000E+01 -0.37566185000E-02 0.32740000000E+04 0.11452726000E-03 0.19343244000E-03 0.99999997473E+00 895 0.32646480000E+00 -0.38719200000E+00 0.32740000000E+04 0.17281513000E-03 -0.74159098000E-03 0.99999971009E+00 896 0.58056090000E+00 0.30439480000E+01 0.32740000000E+04 0.10842709000E-03 -0.18332193000E-03 0.99999997732E+00 897 0.10681640000E+01 0.23449150000E+01 0.32740000000E+04 0.17917177000E-03 -0.31680258000E-04 0.99999998345E+00 898 -0.59387220000E+00 0.59411050000E+00 0.32740000000E+04 0.11318488000E-03 0.24327388000E-03 0.99999996400E+00 899 -0.13036560000E+01 0.92047390000E+00 0.32740000000E+04 0.88694236000E-04 0.41156000000E-03 0.99999991138E+00 900 0.15332950000E+01 0.11725480000E+01 0.32740000000E+04 -0.59627961000E-04 -0.14017257000E-03 0.99999998840E+00 901 -0.54335490000E+00 0.20111220000E+01 0.32740000000E+04 0.11017522000E-04 -0.12372792000E-03 0.99999999229E+00 902 -0.54335490000E+00 0.20111220000E+01 0.32740000000E+04 0.11017522000E-04 -0.12372792000E-03 0.99999999229E+00 903 0.17399370000E+00 0.16328500000E+01 0.32740000000E+04 0.24240670000E-04 0.50579125000E-04 0.99999999843E+00 904 -0.86972600000E+00 -0.10781960000E+01 0.32740000000E+04 -0.32843268000E-03 -0.26657904000E-03 0.99999991053E+00 905 0.20993540000E+01 -0.13485510000E+00 0.32740000000E+04 -0.20333324000E-03 0.18445465000E-03 0.99999996232E+00 906 -0.24891490000E+00 0.51089970000E+00 0.32740000000E+04 0.51431847000E-03 0.54859190000E-03 0.99999971726E+00 907 -0.69800550000E+00 -0.35564580000E+00 0.32740000000E+04 0.38374899000E-03 0.44949825000E-05 0.99999992636E+00 908 -0.20984100000E+01 0.16781520000E+01 0.32740000000E+04 0.23383301000E-03 0.25035339000E-03 0.99999994132E+00 909 -0.20684420000E+01 0.10327760000E-01 0.32740000000E+04 0.14236879000E-03 0.85566011000E-04 0.99999998620E+00 910 -0.12441590000E+01 -0.84026990000E+00 0.32740000000E+04 0.11878794000E-03 -0.50768693000E-03 0.99999986407E+00 911 0.25587300000E+01 0.19663750000E+01 0.32740000000E+04 0.44842236000E-05 0.37460381000E-03 0.99999992983E+00 912 -0.79000280000E+00 0.41975720000E+00 0.32740000000E+04 0.28888398000E-03 0.19021431000E-03 0.99999994018E+00 913 -0.47640730000E+00 0.58618370000E+00 0.32740000000E+04 0.17656574000E-03 0.31557199000E-03 0.99999993462E+00 914 0.22253120000E+00 -0.68269290000E-01 0.32740000000E+04 0.53553154000E-04 -0.91978844000E-04 0.99999999434E+00 915 -0.72984200000E+00 0.72525150000E+00 0.32740000000E+04 0.23526596000E-03 0.38881600000E-03 0.99999989674E+00 916 -0.72984200000E+00 0.72525150000E+00 0.32740000000E+04 0.23526596000E-03 0.38881600000E-03 0.99999989674E+00 917 -0.30923680000E+01 -0.10630610000E+01 0.32740000000E+04 0.21980515000E-03 -0.10722003000E-03 0.99999997009E+00 918 -0.23956930000E+01 0.20275230000E+01 0.32740000000E+04 0.77467179000E-03 -0.67370180000E-04 0.99999969767E+00 919 -0.24298120000E+00 0.69682380000E+00 0.32740000000E+04 -0.99513301000E-04 -0.67865207000E-04 0.99999999275E+00 920 0.85272510000E+00 0.15968010000E+01 0.32740000000E+04 -0.48638482000E-04 -0.74462099000E-04 0.99999999604E+00 921 -0.59841850000E+00 0.45656020000E+00 0.32740000000E+04 0.36384942000E-03 -0.23060631000E-03 0.99999990722E+00 922 -0.27666730000E+00 0.17369240000E+01 0.32740000000E+04 0.23906003000E-04 0.72040471000E-04 0.99999999712E+00 923 -0.11774490000E+01 0.13678100000E+01 0.32740000000E+04 -0.28178748000E-03 -0.47431295000E-03 0.99999984781E+00 924 -0.11521180000E+01 0.39466260000E+00 0.32740000000E+04 -0.24984623000E-03 -0.18774794000E-03 0.99999995116E+00 925 -0.30382020000E+01 0.15881140000E+01 0.32740000000E+04 0.79301785000E-03 0.58811631000E-04 0.99999968383E+00 926 -0.24889280000E+01 0.92504880000E+00 0.32740000000E+04 -0.28353712000E-04 0.26313303000E-03 0.99999996498E+00 927 -0.24889280000E+01 0.92504880000E+00 0.32740000000E+04 -0.28353712000E-04 0.26313303000E-03 0.99999996498E+00 928 -0.37897950000E+00 -0.22300640000E+00 0.32740000000E+04 -0.36389235000E-03 -0.26752244000E-03 0.99999989801E+00 929 0.26035050000E+01 -0.44100980000E-01 0.32740000000E+04 0.59953600000E-03 0.68846814000E-04 0.99999981791E+00 930 0.83017390000E+00 0.18564010000E+01 0.32740000000E+04 0.38181734000E-03 0.41273684000E-03 0.99999984193E+00 931 -0.10731530000E+01 0.86338210000E+00 0.32740000000E+04 -0.16490978000E-03 0.80269019000E-05 0.99999998637E+00 932 -0.16481900000E+01 0.15137480000E+01 0.32740000000E+04 0.25733266000E-03 -0.46077868000E-04 0.99999996583E+00 933 0.22596590000E+00 0.76903340000E+00 0.32740000000E+04 -0.32223397000E-04 -0.43213997000E-04 0.99999999855E+00 934 -0.20787210000E+01 -0.11897660000E+01 0.32740000000E+04 -0.12734956000E-03 -0.12063792000E-03 0.99999998461E+00 935 -0.11956570000E+01 0.15834610000E+01 0.32740000000E+04 -0.92061509000E-05 -0.12489935000E-03 0.99999999216E+00 936 -0.11956570000E+01 0.15834610000E+01 0.32740000000E+04 -0.92061509000E-05 -0.12489935000E-03 0.99999999216E+00 937 -0.69117810000E+00 0.13339180000E+01 0.32740000000E+04 0.20523150000E-03 0.48774292000E-03 0.99999985999E+00 938 0.18733310000E+01 0.13343520000E+01 0.32740000000E+04 -0.75890304000E-04 -0.19713797000E-03 0.99999997769E+00 939 -0.12223760000E+01 0.30780090000E+00 0.32740000000E+04 -0.13228272000E-03 0.50751911000E-03 0.99999986246E+00 940 -0.66286750000E+00 0.13862100000E+01 0.32740000000E+04 0.67934241000E-04 0.25364148000E-03 0.99999996553E+00 941 -0.11329630000E+01 0.58471730000E+00 0.32740000000E+04 0.16554308000E-03 -0.39869823000E-03 0.99999990682E+00 942 0.52122660000E+00 0.22777540000E+01 0.32740000000E+04 0.20041058000E-03 0.63133521000E-04 0.99999997792E+00 943 -0.27244700000E+01 0.31031990000E+00 0.32740000000E+04 -0.17198941000E-03 -0.15665594000E-03 0.99999997294E+00 944 -0.26845340000E+00 0.64096770000E+00 0.32740000000E+04 0.91126043000E-04 -0.42189265000E-03 0.99999990685E+00 945 -0.84740810000E-01 0.88620300000E+00 0.32740000000E+04 0.35104185000E-03 0.25845837000E-03 0.99999990498E+00 946 -0.13121760000E+01 0.75312300000E+00 0.32740000000E+04 -0.10423295000E-03 0.17796668000E-03 0.99999997873E+00 947 0.15456890000E+01 0.13052400000E+01 0.32740000000E+04 0.13135061000E-03 0.37481336000E-03 0.99999992113E+00 948 0.15456890000E+01 0.13052400000E+01 0.32740000000E+04 0.13135061000E-03 0.37481336000E-03 0.99999992113E+00 949 -0.61631190000E+00 0.13048620000E+01 0.32740000000E+04 0.50330628000E-03 0.26287647000E-04 0.99999987300E+00 950 -0.76820390000E+00 -0.34629070000E+00 0.32740000000E+04 -0.75976066000E-04 -0.37721155000E-03 0.99999992597E+00 951 -0.71727410000E+00 0.35186970000E+01 0.32740000000E+04 -0.32778442000E-03 -0.37010966000E-03 0.99999987779E+00 952 0.94725570000E+00 0.27496030000E+01 0.32740000000E+04 -0.13246457000E-03 0.17584744000E-03 0.99999997577E+00 953 -0.20119870000E+01 0.13597560000E+01 0.32740000000E+04 -0.53779926000E-03 0.18820602000E-03 0.99999983768E+00 954 -0.99027810000E+00 0.20509190000E+01 0.32740000000E+04 -0.34577129000E-03 0.35762190000E-04 0.99999993958E+00 955 0.94342570000E-01 0.18351480000E+01 0.32740000000E+04 0.25809338000E-03 0.56270423000E-03 0.99999980838E+00 956 -0.29841240000E+00 0.93690860000E+00 0.32740000000E+04 0.22430597000E-03 0.43647979000E-04 0.99999997389E+00 957 -0.14337620000E+01 0.16499670000E+01 0.32740000000E+04 -0.57392452000E-04 0.20844029000E-03 0.99999997663E+00 958 0.25186960000E+01 -0.23020210000E+00 0.32740000000E+04 0.23437500000E-04 -0.20503702000E-03 0.99999997871E+00 959 0.25186960000E+01 -0.23020210000E+00 0.32740000000E+04 0.23437500000E-04 -0.20503702000E-03 0.99999997871E+00 960 -0.22442320000E+01 -0.31015520000E+00 0.32740000000E+04 -0.27038294000E-03 0.25077382000E-03 0.99999993200E+00 961 -0.12134140000E+01 -0.57394460000E-01 0.32740000000E+04 -0.61213344000E-04 -0.33030443000E-04 0.99999999758E+00 962 -0.93694150000E+00 0.90049370000E+00 0.32740000000E+04 0.32459281000E-03 0.18855040000E-04 0.99999994714E+00 963 -0.18488570000E+01 0.13159040000E+01 0.32740000000E+04 -0.11265231000E-03 -0.52347372000E-03 0.99999985664E+00 964 0.32047700000E-01 -0.54803440000E+00 0.32740000000E+04 0.23742656000E-03 -0.36892292000E-03 0.99999990376E+00 965 -0.10720630000E+01 0.23289100000E+01 0.32740000000E+04 0.23144693000E-03 0.17461267000E-03 0.99999995797E+00 966 0.17984190000E+00 0.13088570000E+01 0.32740000000E+04 -0.36474230000E-03 0.43233891000E-03 0.99999984002E+00 967 -0.11270340000E+01 0.85847320000E+00 0.32740000000E+04 0.35118684000E-03 -0.26810521000E-03 0.99999990239E+00 968 -0.85973820000E+00 0.90179870000E+00 0.32740000000E+04 -0.35146647000E-03 -0.20940046000E-03 0.99999991631E+00 969 -0.31759470000E+00 0.16798880000E+01 0.32740000000E+04 0.60206406000E-04 0.36370009000E-03 0.99999993205E+00 970 -0.27363820000E+01 0.52359130000E-01 0.32740000000E+04 -0.78284029000E-04 -0.71560258000E-04 0.99999999438E+00 971 -0.27363820000E+01 0.52359130000E-01 0.32740000000E+04 -0.78284029000E-04 -0.71560258000E-04 0.99999999438E+00 972 -0.42113380000E+00 0.81588120000E+00 0.32740000000E+04 -0.44986559000E-03 -0.17009705000E-03 0.99999988434E+00 973 -0.31447780000E+00 0.69739410000E+00 0.32740000000E+04 0.15408375000E-03 0.19309788000E-03 0.99999996949E+00 974 0.45527080000E+00 0.22067320000E+01 0.32740000000E+04 -0.43740231000E-03 -0.15574350000E-03 0.99999989221E+00 975 -0.69977380000E+00 0.51482340000E+00 0.32740000000E+04 -0.17091740000E-03 0.47462061000E-03 0.99999987276E+00 976 -0.66032940000E+00 -0.64272760000E+00 0.32740000000E+04 -0.61409676000E-03 -0.72498212000E-03 0.99999954864E+00 977 0.96639290000E+00 0.25480020000E+01 0.32740000000E+04 -0.46735979000E-03 0.24672688000E-03 0.99999986035E+00 978 -0.73850810000E+00 -0.13971100000E+00 0.32740000000E+04 -0.26818886000E-03 0.97652734000E-03 0.99999948723E+00 979 -0.12246160000E+01 0.85720370000E+00 0.32740000000E+04 -0.26948875000E-03 -0.41682250000E-03 0.99999987682E+00 980 -0.12246160000E+01 0.85720370000E+00 0.32740000000E+04 -0.26948875000E-03 -0.41682250000E-03 0.99999987682E+00 981 -0.12046710000E+01 -0.23757030000E+00 0.32740000000E+04 0.94076029000E-04 -0.41132988000E-03 0.99999991098E+00 982 0.13200660000E+01 -0.90040430000E+00 0.32740000000E+04 0.69993017000E-04 -0.25375880000E-03 0.99999996535E+00 983 0.66695990000E+00 0.24981420000E+01 0.32740000000E+04 -0.56130806000E-03 0.37227219000E-03 0.99999977317E+00 984 -0.19132140000E+01 0.18532150000E+01 0.32740000000E+04 -0.18914987000E-03 -0.17047234000E-03 0.99999996758E+00 985 -0.19132140000E+01 0.18532150000E+01 0.32740000000E+04 -0.18914987000E-03 -0.17047234000E-03 0.99999996758E+00 986 -0.19105460000E+01 -0.93957330000E+00 0.32740000000E+04 0.72158815000E-04 -0.41632832000E-03 0.99999991073E+00 987 -0.21156860000E+01 0.28613270000E+00 0.32740000000E+04 -0.71719021000E-03 -0.14072808000E-04 0.99999974272E+00 988 -0.17495630000E+01 0.52025890000E-01 0.32740000000E+04 -0.17241493000E-03 -0.57420292000E-03 0.99999982028E+00 989 0.53931120000E+00 0.10110070000E+01 0.32740000000E+04 0.20915487000E-03 -0.66980062000E-03 0.99999975381E+00 990 0.54160510000E+00 -0.10153040000E+01 0.32740000000E+04 0.16627632000E-03 0.28944472000E-03 0.99999994429E+00 991 0.29871450000E+00 -0.10266570000E+01 0.32740000000E+04 0.50724018000E-03 -0.24511595000E-03 0.99999984131E+00 992 0.19613910000E+01 0.17625550000E+01 0.32740000000E+04 0.18903206000E-03 -0.45972506000E-05 0.99999998212E+00 993 0.51355350000E+00 -0.12194140000E+01 0.32740000000E+04 0.45393081000E-03 -0.52140607000E-03 0.99999976104E+00 994 0.51355350000E+00 -0.12194140000E+01 0.32740000000E+04 0.45393081000E-03 -0.52140607000E-03 0.99999976104E+00 995 -0.56519460000E+00 0.18484150000E+01 0.32740000000E+04 -0.23291197000E-04 -0.13153414000E-03 0.99999999108E+00 996 -0.91950700000E-01 0.11718920000E+01 0.32740000000E+04 0.27272571000E-03 0.10675514000E-03 0.99999995711E+00 997 0.72497270000E-01 0.14671340000E+01 0.32740000000E+04 0.44402652000E-03 -0.19745032000E-03 0.99999988193E+00 998 -0.15744890000E+01 0.30715030000E+00 0.32740000000E+04 -0.46024285000E-04 0.21608321000E-03 0.99999997559E+00 999 -0.22610230000E+01 0.55555130000E+00 0.32740000000E+04 -0.35882741000E-03 -0.11146263000E-03 0.99999992941E+00 1000 0.52017780000E+00 0.11862630000E+01 0.32740000000E+04 -0.36466352000E-03 0.93671016000E-03 0.99999949480E+00 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/data-tracks/tracks-40GeV.dat b/examples/advanced/lAr_calorimeter/data-tracks/tracks-40GeV.dat new file mode 100644 index 0000000000..31d31e2946 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/data-tracks/tracks-40GeV.dat @@ -0,0 +1 @@ + 1 0.10768170000E+01 0.20578330000E+01 0.32740000000E+04 0.30917592000E-04 0.21376104000E-03 0.99999997668E+00 2 -0.86150870000E+00 0.29702750000E+00 0.32740000000E+04 -0.23758557000E-03 -0.20634479000E-03 0.99999995049E+00 3 0.13576850000E+01 0.37163300000E+00 0.32740000000E+04 -0.30954802000E-03 -0.16690702000E-03 0.99999993816E+00 4 -0.68590450000E+00 0.90345040000E+00 0.32740000000E+04 -0.75106174000E-04 0.29540627000E-03 0.99999995355E+00 5 0.14368520000E+01 -0.14771430000E+01 0.32740000000E+04 0.15548224000E-03 -0.11644382000E-03 0.99999998113E+00 6 0.85394130000E+00 0.59753680000E+00 0.32740000000E+04 -0.17360371000E-03 -0.72424322000E-04 0.99999998231E+00 7 -0.12717040000E+01 0.15411210000E+01 0.32740000000E+04 -0.42390931000E-03 0.31393973000E-03 0.99999986087E+00 8 -0.18699950000E+01 0.41837620000E+00 0.32740000000E+04 -0.13006572000E-03 0.33764823000E-04 0.99999999097E+00 9 0.23833880000E+01 0.62789340000E+00 0.32740000000E+04 -0.75477874000E-04 0.16346201000E-04 0.99999999702E+00 10 -0.32854390000E-01 0.21712280000E+00 0.32740000000E+04 0.23959912000E-03 -0.84063468000E-04 0.99999996776E+00 11 0.97364450000E+00 -0.81370300000E+00 0.32740000000E+04 -0.33641110000E-04 -0.15323400000E-03 0.99999998769E+00 12 0.11940200000E+01 0.18713530000E+01 0.32740000000E+04 -0.23888773000E-03 0.53412846000E-03 0.99999982882E+00 13 0.24326360000E+00 -0.97504890000E+00 0.32740000000E+04 0.40156135000E-03 -0.34119657000E-03 0.99999986117E+00 14 -0.10676640000E+01 -0.93490980000E+00 0.32740000000E+04 0.43309105000E-04 0.96359308000E-03 0.99999953481E+00 15 0.28729100000E+00 0.18894680000E+01 0.32740000000E+04 0.39003481000E-03 0.35479365000E-03 0.99999986100E+00 16 0.18067670000E+01 0.16932100000E+01 0.32740000000E+04 0.13221630000E-03 0.10468887000E-03 0.99999998578E+00 17 0.14340990000E+00 0.33498990000E+00 0.32740000000E+04 0.25234552000E-03 0.90873416000E-03 0.99999955526E+00 18 0.17928810000E-01 0.93217320000E+00 0.32740000000E+04 -0.26569382000E-04 0.35989404000E-03 0.99999993489E+00 19 0.17928810000E-01 0.93217320000E+00 0.32740000000E+04 -0.26569382000E-04 0.35989404000E-03 0.99999993489E+00 20 0.97823510000E+00 0.14773360000E+01 0.32740000000E+04 0.82337683000E-04 0.33118468000E-03 0.99999994177E+00 21 -0.82331910000E+00 -0.64428860000E+00 0.32740000000E+04 0.21718412000E-03 -0.43933681000E-03 0.99999987991E+00 22 -0.88273320000E+00 -0.15416810000E+01 0.32740000000E+04 0.40107549000E-03 -0.19044954000E-03 0.99999990143E+00 23 0.65818360000E+00 0.25511650000E+01 0.32740000000E+04 0.25334049000E-03 0.13180930000E-03 0.99999995922E+00 24 -0.19142960000E+01 -0.37751570000E+00 0.32740000000E+04 0.16359811000E-04 -0.15698948000E-03 0.99999998754E+00 25 -0.14416450000E+01 -0.75695510000E+00 0.32740000000E+04 0.43727156000E-04 -0.17987832000E-03 0.99999998287E+00 26 0.13463400000E+01 -0.10154740000E+01 0.32740000000E+04 0.21250255000E-03 -0.36700189000E-04 0.99999997675E+00 27 -0.12081120000E+01 0.10790330000E+01 0.32740000000E+04 -0.21886965000E-04 0.71026829000E-04 0.99999999724E+00 28 -0.22865510000E+00 0.15768610000E+00 0.32740000000E+04 0.25440010000E-03 0.79043100000E-04 0.99999996452E+00 29 0.10502820000E+01 0.91590820000E+00 0.32740000000E+04 -0.31175870000E-04 -0.48350477000E-04 0.99999999835E+00 30 0.10555840000E+01 -0.55690170000E+00 0.32740000000E+04 0.16429024000E-03 -0.33538073000E-03 0.99999993026E+00 31 0.19962270000E+01 0.23823180000E+01 0.32740000000E+04 -0.87878390000E-04 -0.19529021000E-03 0.99999997707E+00 32 -0.41362910000E+00 -0.11616390000E+00 0.32740000000E+04 -0.11046180000E-03 -0.14341279000E-03 0.99999998362E+00 33 0.52422470000E+00 0.44222810000E+00 0.32740000000E+04 -0.90144335000E-04 0.22101292000E-03 0.99999997151E+00 34 0.52422470000E+00 0.44222810000E+00 0.32740000000E+04 -0.90144335000E-04 0.22101292000E-03 0.99999997151E+00 35 -0.35628690000E+00 -0.13023690000E+00 0.32740000000E+04 -0.21397480000E-03 -0.27737045000E-03 0.99999993864E+00 36 -0.13703750000E+01 0.35994850000E+00 0.32740000000E+04 0.25013520000E-03 -0.73881383000E-04 0.99999996599E+00 37 -0.16042960000E+01 0.81072740000E+00 0.32740000000E+04 0.42169835000E-04 0.90643138000E-04 0.99999999500E+00 38 -0.14674490000E+01 -0.25377380000E+00 0.32740000000E+04 -0.45335630000E-04 -0.25649377000E-03 0.99999996608E+00 39 0.83106750000E+00 0.86135090000E+00 0.32740000000E+04 0.53477539000E-04 0.45276056000E-05 0.99999999856E+00 40 -0.26133330000E+01 -0.61843250000E+00 0.32740000000E+04 0.15450304000E-03 -0.49003167000E-04 0.99999998686E+00 41 0.26580550000E+00 0.70025540000E-01 0.32740000000E+04 -0.25708924000E-03 0.36920785000E-03 0.99999989880E+00 42 -0.21635400000E+01 -0.10088270000E+01 0.32740000000E+04 0.19184499000E-04 -0.40764871000E-03 0.99999991673E+00 43 0.10423460000E+01 0.67558510000E+00 0.32740000000E+04 -0.19511746000E-03 0.45886395000E-05 0.99999998095E+00 44 0.16656610000E+01 -0.79393830000E+00 0.32740000000E+04 0.86389999000E-04 -0.25702515000E-04 0.99999999594E+00 45 0.50274550000E+00 0.17502960000E+00 0.32740000000E+04 -0.43055665000E-04 0.48744056000E-03 0.99999988027E+00 46 0.43503030000E+00 0.67184300000E+00 0.32740000000E+04 0.17681732000E-03 0.14498296000E-03 0.99999997386E+00 47 -0.37449100000E+00 -0.87026680000E+00 0.32740000000E+04 -0.18949733000E-04 -0.39163593000E-03 0.99999992313E+00 48 -0.37449100000E+00 -0.87026680000E+00 0.32740000000E+04 -0.18949733000E-04 -0.39163593000E-03 0.99999992313E+00 49 0.15400160000E+01 -0.25413770000E+00 0.32740000000E+04 0.15053898000E-03 -0.83655810000E-04 0.99999998517E+00 50 0.85708220000E+00 -0.16638100000E+00 0.32740000000E+04 0.95969568000E-04 0.44959681000E-04 0.99999999438E+00 51 -0.28091470000E+00 0.11001890000E+01 0.32740000000E+04 0.23518628000E-03 0.17301344000E-03 0.99999995738E+00 52 0.65639310000E+00 0.12338910000E+01 0.32740000000E+04 0.15693824000E-03 0.15075790000E-03 0.99999997632E+00 53 -0.73264590000E-01 0.12300400000E+01 0.32740000000E+04 0.82387312000E-04 -0.20966360000E-03 0.99999997463E+00 54 -0.23543610000E+01 0.13129540000E+01 0.32740000000E+04 0.17054002000E-03 0.12006146000E-03 0.99999997825E+00 55 -0.20831620000E+01 -0.13138510000E+01 0.32740000000E+04 0.62425307000E-03 0.42674041000E-03 0.99999971410E+00 56 0.13713710000E-01 0.10719950000E+00 0.32740000000E+04 0.73459996000E-04 -0.13022139000E-03 0.99999998882E+00 57 0.15843110000E+01 0.80242160000E+00 0.32740000000E+04 0.34372439000E-04 0.43894124000E-04 0.99999999845E+00 58 0.18940240000E+01 0.17317250000E+01 0.32740000000E+04 -0.15476953000E-03 0.22593819000E-03 0.99999996250E+00 59 -0.14224010000E+00 -0.83327950000E+00 0.32740000000E+04 0.10078627000E-03 -0.19582194000E-03 0.99999997575E+00 60 -0.74113410000E+00 0.49396500000E+00 0.32740000000E+04 -0.14445935000E-03 0.45143371000E-03 0.99999988767E+00 61 0.36580030000E+00 0.11713170000E+01 0.32740000000E+04 -0.59881000000E-04 0.37143924000E-04 0.99999999752E+00 62 0.36580030000E+00 0.11713170000E+01 0.32740000000E+04 -0.59881000000E-04 0.37143924000E-04 0.99999999752E+00 63 0.14303280000E+01 0.14631180000E+01 0.32740000000E+04 -0.36348210000E-04 0.76736331000E-04 0.99999999640E+00 64 0.17080440000E+01 0.56496900000E-01 0.32740000000E+04 0.56700195000E-04 -0.60395894000E-04 0.99999999657E+00 65 0.82688710000E-01 0.17155130000E+01 0.32740000000E+04 0.81256068000E-04 0.95760712000E-04 0.99999999211E+00 66 0.74337590000E+00 0.11907740000E+00 0.32740000000E+04 -0.22701541000E-04 -0.80120204000E-04 0.99999999653E+00 67 -0.15662780000E+00 0.12247520000E+01 0.32740000000E+04 -0.30697737000E-03 0.26407928000E-03 0.99999991801E+00 68 0.11412700000E+01 0.24358030000E+01 0.32740000000E+04 -0.25639008000E-05 0.11589674000E-04 0.99999999993E+00 69 -0.99229150000E+00 -0.12761000000E+00 0.32740000000E+04 0.13132773000E-03 0.84885469000E-04 0.99999998777E+00 70 0.14145250000E+00 0.20088170000E+00 0.32740000000E+04 0.40194724000E-03 0.30913707000E-03 0.99999987144E+00 71 -0.10798910000E+01 0.99114790000E-01 0.32740000000E+04 -0.18245816000E-03 -0.63463408000E-05 0.99999998333E+00 72 0.30539460000E+00 0.59200510000E+00 0.32740000000E+04 -0.52174198000E-03 0.68724103000E-05 0.99999986387E+00 73 -0.20060830000E+00 -0.83400550000E+00 0.32740000000E+04 0.37406795000E-03 -0.92275426000E-04 0.99999992578E+00 74 0.12573580000E+00 0.18737840000E+01 0.32740000000E+04 -0.16693913000E-03 0.31158730000E-03 0.99999993752E+00 75 -0.64698200000E-01 -0.31919420000E+00 0.32740000000E+04 -0.33472597000E-06 -0.31844570000E-03 0.99999994930E+00 76 -0.83340370000E+00 -0.49380630000E+00 0.32740000000E+04 -0.10550684000E-03 -0.17957317000E-03 0.99999997831E+00 77 0.24176750000E+01 0.12490530000E+01 0.32740000000E+04 0.20107342000E-03 0.29170071000E-03 0.99999993724E+00 78 -0.12102100000E+01 -0.17277840000E+00 0.32740000000E+04 -0.17821272000E-03 -0.19691294000E-03 0.99999996473E+00 79 -0.11284490000E+01 0.89200110000E+00 0.32740000000E+04 0.37369868000E-04 -0.27479895000E-03 0.99999996154E+00 80 -0.11284490000E+01 0.89200110000E+00 0.32740000000E+04 0.37369868000E-04 -0.27479895000E-03 0.99999996154E+00 81 0.13660730000E+01 0.96837750000E+00 0.32740000000E+04 0.32237140000E-03 -0.17897275000E-03 0.99999993202E+00 82 0.17891230000E+01 0.12041880000E+01 0.32740000000E+04 0.25992777000E-03 0.16653274000E-03 0.99999995235E+00 83 0.12277270000E+01 0.17988730000E+01 0.32740000000E+04 0.44853907000E-04 0.13745386000E-03 0.99999998955E+00 84 0.49175190000E+00 -0.12812310000E+01 0.32740000000E+04 0.11776261000E-03 -0.14917867000E-03 0.99999998194E+00 85 0.50614310000E+00 0.13417730000E+01 0.32740000000E+04 0.24847107000E-03 -0.45172626000E-04 0.99999996811E+00 86 0.15447760000E+00 0.74885340000E-01 0.32740000000E+04 -0.33744151000E-03 -0.24212673000E-03 0.99999991375E+00 87 -0.41000050000E+00 0.15708080000E+01 0.32740000000E+04 0.59922033000E-04 0.11856107000E-03 0.99999999118E+00 88 0.19295780000E-01 -0.89944290000E+00 0.32740000000E+04 -0.10641227000E-03 -0.14624973000E-03 0.99999998364E+00 89 -0.29735100000E+01 -0.63338230000E+00 0.32740000000E+04 -0.58984087000E-05 0.10098029000E-03 0.99999999488E+00 90 -0.90942330000E+00 0.54447340000E+00 0.32740000000E+04 -0.15040660000E-03 -0.14851593000E-03 0.99999997766E+00 91 0.74705480000E+00 0.25850790000E+00 0.32740000000E+04 0.30027237000E-03 -0.30277233000E-03 0.99999990908E+00 92 0.74705480000E+00 0.25850790000E+00 0.32740000000E+04 0.30027237000E-03 -0.30277233000E-03 0.99999990908E+00 93 -0.98271320000E+00 0.23413100000E+01 0.32740000000E+04 0.89837726000E-04 -0.19803495000E-03 0.99999997636E+00 94 -0.55513050000E-01 -0.69872100000E+00 0.32740000000E+04 -0.29479060000E-03 -0.11943260000E-03 0.99999994942E+00 95 -0.15638870000E+01 0.17141570000E+01 0.32740000000E+04 0.13164399000E-03 -0.83432817000E-04 0.99999998785E+00 96 0.72019520000E+00 0.10732810000E+01 0.32740000000E+04 -0.21237919000E-03 0.24804129000E-04 0.99999997714E+00 97 -0.18064900000E+00 -0.94258380000E+00 0.32740000000E+04 0.52441228000E-04 -0.27153984000E-03 0.99999996176E+00 98 -0.20326160000E+01 0.35025310000E+00 0.32740000000E+04 -0.99460465000E-06 0.14995891000E-03 0.99999998876E+00 99 -0.14433240000E+01 0.11444850000E+01 0.32740000000E+04 -0.48176746000E-04 0.46687790000E-04 0.99999999775E+00 100 0.45526190000E+00 0.67734360000E+00 0.32740000000E+04 -0.24592882000E-04 -0.13621396000E-03 0.99999999042E+00 101 0.60920830000E+00 0.18174290000E+01 0.32740000000E+04 -0.19772467000E-03 0.20450481000E-04 0.99999998024E+00 102 0.10837150000E+01 0.11893380000E+01 0.32740000000E+04 -0.16675991000E-03 0.20714525000E-03 0.99999996464E+00 103 0.10221140000E+01 0.81429420000E+00 0.32740000000E+04 0.29474040000E-03 -0.31869786000E-03 0.99999990578E+00 104 0.13128980000E+01 0.20645660000E+01 0.32740000000E+04 0.61166022000E-04 0.45834199000E-03 0.99999989309E+00 105 -0.22790630000E+00 0.64110770000E+00 0.32740000000E+04 0.70121321000E-04 0.21694331000E-03 0.99999997401E+00 106 0.51849490000E+00 0.25842510000E+00 0.32740000000E+04 0.45314859000E-03 0.41772262000E-04 0.99999989646E+00 107 0.57394250000E+00 0.12568170000E+01 0.32740000000E+04 -0.35115459000E-03 0.15231526000E-03 0.99999992675E+00 108 0.16937630000E+00 -0.24859650000E+00 0.32740000000E+04 0.74805117000E-04 -0.30061172000E-03 0.99999995202E+00 109 0.13269940000E+01 0.19500370000E+01 0.32740000000E+04 0.12598823000E-03 -0.13156144000E-04 0.99999999198E+00 110 0.23600300000E+01 -0.38759320000E+00 0.32740000000E+04 0.25188175000E-03 0.30482488000E-03 0.99999992182E+00 111 0.21964760000E+01 0.15290360000E+01 0.32740000000E+04 -0.23099370000E-03 0.32452052000E-03 0.99999992066E+00 112 -0.16715030000E+00 -0.43052880000E+00 0.32740000000E+04 0.16020023000E-03 -0.21036509000E-03 0.99999996504E+00 113 -0.15245840000E+01 -0.19747830000E-01 0.32740000000E+04 0.93765739000E-04 -0.21705221000E-03 0.99999997205E+00 114 0.16822450000E+00 0.21337670000E+01 0.32740000000E+04 -0.20017344000E-03 0.18698728000E-03 0.99999996248E+00 115 -0.20672060000E+01 -0.13734520000E+01 0.32740000000E+04 -0.14436741000E-03 0.61989660000E-04 0.99999998766E+00 116 -0.55454050000E+00 -0.19757720000E+00 0.32740000000E+04 0.87688808000E-04 0.20406552000E-03 0.99999997533E+00 117 -0.55454050000E+00 -0.19757720000E+00 0.32740000000E+04 0.87688808000E-04 0.20406552000E-03 0.99999997533E+00 118 -0.18305200000E+01 -0.11003800000E+00 0.32740000000E+04 0.13876657000E-03 0.24785503000E-03 0.99999995966E+00 119 0.82721180000E+00 -0.59133680000E+00 0.32740000000E+04 0.18847077000E-04 -0.21590384000E-03 0.99999997652E+00 120 0.10491350000E+01 0.14327680000E+01 0.32740000000E+04 0.15960082000E-03 -0.54934648000E-04 0.99999998575E+00 121 -0.65859450000E+00 0.16477730000E+01 0.32740000000E+04 -0.13774192000E-03 0.63882049000E-04 0.99999998847E+00 122 -0.18387670000E+00 0.18521200000E+01 0.32740000000E+04 0.90214948000E-04 0.44369983000E-04 0.99999999495E+00 123 -0.15591370000E+01 -0.55413010000E-01 0.32740000000E+04 -0.12867899000E-03 -0.37458469000E-03 0.99999992156E+00 124 0.15626370000E+01 0.19153780000E+01 0.32740000000E+04 -0.33219309000E-04 0.58154732000E-04 0.99999999776E+00 125 -0.91360860000E+00 0.10485960000E+01 0.32740000000E+04 -0.18455241000E-04 0.65242391000E-04 0.99999999770E+00 126 0.20240520000E+01 0.16440850000E+01 0.32740000000E+04 -0.33181722000E-03 0.23057565000E-03 0.99999991837E+00 127 0.11039870000E+01 -0.89779310000E+00 0.32740000000E+04 -0.84321500000E-05 -0.19348506000E-03 0.99999998125E+00 128 -0.59886830000E+00 -0.64753020000E+00 0.32740000000E+04 -0.79740545000E-04 -0.27067919000E-03 0.99999996019E+00 129 -0.60313740000E+00 -0.71786220000E+00 0.32740000000E+04 -0.15941914000E-03 -0.17509391000E-03 0.99999997196E+00 130 0.11213480000E+01 0.54445650000E+00 0.32740000000E+04 0.61154205000E-04 -0.33436427000E-03 0.99999994223E+00 131 0.10918050000E+01 0.11358040000E+01 0.32740000000E+04 -0.17736436000E-03 -0.42808286000E-04 0.99999998335E+00 132 0.58868390000E+00 0.18672550000E+01 0.32740000000E+04 0.13324119000E-03 0.30448425000E-03 0.99999994477E+00 133 0.58868390000E+00 0.18672550000E+01 0.32740000000E+04 0.13324119000E-03 0.30448425000E-03 0.99999994477E+00 134 0.20202860000E+01 0.10661240000E+01 0.32740000000E+04 0.12007913000E-03 0.24571014000E-03 0.99999996260E+00 135 -0.13277570000E+01 0.16781280000E+01 0.32740000000E+04 -0.52894666000E-05 0.32223834000E-05 0.99999999998E+00 136 0.14323900000E+01 -0.36227540000E+00 0.32740000000E+04 -0.30000878000E-04 -0.26878796000E-03 0.99999996343E+00 137 0.14438750000E+01 0.17804690000E+01 0.32740000000E+04 -0.36163107000E-03 -0.27445937000E-03 0.99999989695E+00 138 0.90255450000E+00 0.10502050000E+01 0.32740000000E+04 -0.11052879000E-03 -0.13090613000E-04 0.99999999381E+00 139 -0.77470170000E+00 0.12603660000E+01 0.32740000000E+04 0.30687399000E-03 0.14660227000E-03 0.99999994217E+00 140 -0.90346800000E+00 -0.81600610000E+00 0.32740000000E+04 -0.11857288000E-04 -0.70310780000E-04 0.99999999746E+00 141 -0.18240240000E+01 0.20359930000E+01 0.32740000000E+04 0.26901672000E-03 -0.11640589000E-03 0.99999995704E+00 142 0.13982040000E+01 0.22605770000E+01 0.32740000000E+04 -0.14504819000E-03 0.71365779000E-04 0.99999998693E+00 143 -0.24504870000E+00 -0.65315350000E+00 0.32740000000E+04 -0.90717738000E-04 0.82307852000E-04 0.99999999250E+00 144 0.24328860000E+01 0.21531510000E-01 0.32740000000E+04 0.13485155000E-03 0.54772529000E-04 0.99999998941E+00 145 0.27000340000E+01 0.12903220000E+01 0.32740000000E+04 0.29287165000E-04 0.20908678000E-03 0.99999997771E+00 146 -0.44042090000E+00 0.24946510000E+01 0.32740000000E+04 0.80617989000E-04 0.27334213000E-03 0.99999995939E+00 147 -0.44042090000E+00 0.24946510000E+01 0.32740000000E+04 0.80617989000E-04 0.27334213000E-03 0.99999995939E+00 148 -0.51043400000E+00 -0.10104179000E-03 0.32740000000E+04 -0.30840501000E-05 -0.22075580000E-03 0.99999997563E+00 149 0.28244670000E+01 0.63380290000E+00 0.32740000000E+04 0.26243217000E-04 0.12419804000E-03 0.99999999194E+00 150 0.83180590000E+00 -0.30430460000E+00 0.32740000000E+04 0.56288857000E-03 -0.36625771000E-03 0.99999977451E+00 151 0.28776260000E+00 0.11915210000E+01 0.32740000000E+04 -0.24808192000E-03 -0.66207490000E-05 0.99999996921E+00 152 -0.92660650000E+00 0.23295900000E+01 0.32740000000E+04 -0.24423230000E-03 0.23514361000E-03 0.99999994253E+00 153 0.23231310000E+01 0.20139560000E+01 0.32740000000E+04 0.19282376000E-03 -0.13274667000E-05 0.99999998141E+00 154 -0.12340750000E+00 0.16134660000E+01 0.32740000000E+04 0.68852110000E-04 -0.14639324000E-04 0.99999999752E+00 155 -0.83367400000E+00 0.10907110000E+01 0.32740000000E+04 0.23736863000E-03 0.10399024000E-03 0.99999996642E+00 156 -0.13968160000E+01 -0.28148110000E+00 0.32740000000E+04 0.16193220000E-03 0.20162024000E-04 0.99999998669E+00 157 0.49890390000E+00 0.52039590000E+00 0.32740000000E+04 0.21277077000E-03 -0.11144731000E-03 0.99999997115E+00 158 0.16465630000E+01 0.51427460000E+00 0.32740000000E+04 -0.15540411000E-03 -0.32661433000E-03 0.99999993459E+00 159 0.16465630000E+01 0.51427460000E+00 0.32740000000E+04 -0.15540411000E-03 -0.32661433000E-03 0.99999993459E+00 160 -0.27409560000E+00 0.13835420000E+01 0.32740000000E+04 0.35900262000E-03 0.23863815000E-03 0.99999990708E+00 161 0.11360800000E+01 0.62148110000E+00 0.32740000000E+04 -0.73361371000E-04 0.10352028000E-03 0.99999999195E+00 162 0.18839360000E+01 -0.34447640000E+00 0.32740000000E+04 -0.38274651000E-04 -0.28585407000E-03 0.99999995841E+00 163 -0.75040030000E-01 0.19891140000E+01 0.32740000000E+04 0.43719329000E-03 -0.71960356000E-04 0.99999990184E+00 164 -0.28094520000E+00 0.13541980000E+01 0.32740000000E+04 0.12334010000E-03 0.13627934000E-03 0.99999998311E+00 165 -0.23947410000E+00 0.13295930000E+01 0.32740000000E+04 0.36198107000E-03 0.39095226000E-04 0.99999993372E+00 166 0.15782940000E+01 0.23620180000E+01 0.32740000000E+04 -0.27967256000E-03 -0.57832644000E-04 0.99999995922E+00 167 -0.16605720000E+01 -0.87929120000E-01 0.32740000000E+04 0.12016955000E-03 0.16324567000E-03 0.99999997946E+00 168 0.38791400000E+00 -0.10601560000E+01 0.32740000000E+04 -0.10619875000E-05 -0.31997144000E-04 0.99999999949E+00 169 -0.11747760000E+00 -0.99366160000E-01 0.32740000000E+04 0.34374880000E-04 0.19883343000E-03 0.99999997964E+00 170 0.53516160000E+00 0.12496690000E+00 0.32740000000E+04 -0.46361436000E-03 -0.37428643000E-04 0.99999989183E+00 171 -0.21347110000E+01 -0.68204370000E-01 0.32740000000E+04 0.11472320000E-03 0.15055083000E-03 0.99999998209E+00 172 -0.17883430000E+01 -0.68855460000E+00 0.32740000000E+04 -0.30304289000E-04 -0.12575067000E-03 0.99999999163E+00 173 -0.35005430000E+00 -0.31743320000E+00 0.32740000000E+04 -0.81959748000E-04 -0.20808264000E-03 0.99999997499E+00 174 -0.15693640000E+00 0.96396600000E+00 0.32740000000E+04 -0.57952798000E-05 0.76338154000E-04 0.99999999707E+00 175 0.20783850000E+00 -0.38617200000E+00 0.32740000000E+04 -0.42699079000E-03 -0.15135153000E-03 0.99999989739E+00 176 0.67660440000E+00 -0.10750640000E+01 0.32740000000E+04 0.38213836000E-03 0.54317115000E-04 0.99999992551E+00 177 0.67660440000E+00 -0.10750640000E+01 0.32740000000E+04 0.38213836000E-03 0.54317115000E-04 0.99999992551E+00 178 0.12766080000E+00 0.89267270000E+00 0.32740000000E+04 -0.48748640000E-04 -0.13750877000E-04 0.99999999872E+00 179 0.17720020000E+01 0.60717030000E+00 0.32740000000E+04 -0.21067398000E-03 -0.14108498000E-03 0.99999996786E+00 180 0.12465370000E+01 0.36527340000E+00 0.32740000000E+04 -0.46858946000E-04 -0.30601217000E-03 0.99999995208E+00 181 -0.64386500000E+00 0.72865180000E+00 0.32740000000E+04 0.14346167000E-03 0.29912393000E-03 0.99999994497E+00 182 0.46227660000E+00 0.36842260000E+00 0.32740000000E+04 0.19557864000E-03 0.11284230000E-03 0.99999997451E+00 183 -0.27273340000E+00 0.24053760000E+01 0.32740000000E+04 0.10743988000E-02 -0.25870893000E-03 0.99999938937E+00 184 -0.14068960000E+01 0.20921400000E+00 0.32740000000E+04 -0.90255948000E-04 -0.14754086000E-03 0.99999998504E+00 185 -0.10839020000E+01 0.49457280000E+00 0.32740000000E+04 -0.61224733000E-03 -0.65080436000E-04 0.99999981046E+00 186 -0.52371150000E+00 0.19341430000E+01 0.32740000000E+04 0.12607796000E-05 0.22808828000E-04 0.99999999974E+00 187 0.16567490000E+01 0.51959850000E+00 0.32740000000E+04 -0.23687995000E-03 -0.90974238000E-04 0.99999996781E+00 188 0.94884640000E+00 -0.10519890000E+01 0.32740000000E+04 -0.12411483000E-03 -0.29987458000E-03 0.99999994734E+00 189 0.94884640000E+00 -0.10519890000E+01 0.32740000000E+04 -0.12411483000E-03 -0.29987458000E-03 0.99999994734E+00 190 0.14042750000E+01 0.18095460000E+01 0.32740000000E+04 0.95941527000E-04 0.16380362000E-03 0.99999998198E+00 191 -0.23206900000E+00 0.17031180000E+01 0.32740000000E+04 -0.61433857000E-05 0.29697179000E-03 0.99999995589E+00 192 0.22507050000E+00 0.39650820000E+00 0.32740000000E+04 0.13354211000E-03 0.33726962000E-03 0.99999993421E+00 193 0.81640560000E+00 0.43321371000E-02 0.32740000000E+04 0.49384820000E-04 -0.53056396000E-04 0.99999999737E+00 194 -0.13886880000E+01 -0.11699500000E+01 0.32740000000E+04 0.99787801000E-04 -0.21465508000E-04 0.99999999479E+00 195 -0.10478080000E+01 0.36594790000E+00 0.32740000000E+04 -0.33107583000E-03 -0.21742725000E-03 0.99999992156E+00 196 0.15633110000E+01 0.17605580000E+01 0.32740000000E+04 -0.44483849000E-03 -0.57766785000E-04 0.99999989939E+00 197 0.13744200000E+01 0.71722190000E+00 0.32740000000E+04 -0.27926132000E-03 -0.22604948000E-03 0.99999993546E+00 198 0.11258350000E+01 -0.91620680000E-01 0.32740000000E+04 -0.32748855000E-03 0.30551414000E-03 0.99999989971E+00 199 -0.15063500000E+01 0.10991380000E+01 0.32740000000E+04 -0.10665940000E-03 -0.10263292000E-03 0.99999998905E+00 200 -0.24994360000E+00 -0.21199550000E+00 0.32740000000E+04 -0.15989362000E-03 -0.25228463000E-03 0.99999995539E+00 201 -0.24994360000E+00 -0.21199550000E+00 0.32740000000E+04 -0.15989362000E-03 -0.25228463000E-03 0.99999995539E+00 202 0.69508270000E+00 0.20038670000E+01 0.32740000000E+04 -0.17302185000E-03 -0.76327669000E-04 0.99999998212E+00 203 0.15370500000E+01 0.63783090000E+00 0.32740000000E+04 -0.11971871000E-03 -0.12874833000E-03 0.99999998455E+00 204 0.10196230000E+01 0.22856260000E+01 0.32740000000E+04 0.96331438000E-04 0.20552105000E-03 0.99999997424E+00 205 -0.10214230000E+01 -0.34500730000E+00 0.32740000000E+04 -0.64963257000E-04 -0.12481127000E-03 0.99999999010E+00 206 0.66622620000E+00 0.22265640000E+01 0.32740000000E+04 0.10487311000E-03 -0.33386939000E-04 0.99999999394E+00 207 0.40017930000E+00 -0.11499350000E+01 0.32740000000E+04 0.23458695000E-04 -0.22738027000E-03 0.99999997387E+00 208 0.48131490000E+00 0.72387380000E+00 0.32740000000E+04 0.23150385000E-04 -0.16248036000E-03 0.99999998653E+00 209 0.73828920000E+00 -0.15043240000E+00 0.32740000000E+04 -0.17858755000E-03 -0.30729722000E-03 0.99999993684E+00 210 -0.37588430000E+00 -0.49672740000E+00 0.32740000000E+04 0.19826884000E-03 -0.74816249000E-04 0.99999997755E+00 211 0.29090550000E+00 0.21908710000E+01 0.32740000000E+04 -0.19800669000E-03 0.32762866000E-03 0.99999992673E+00 212 -0.41290250000E+00 -0.10541210000E+01 0.32740000000E+04 -0.13531814000E-03 -0.33464556000E-03 0.99999993485E+00 213 -0.21227780000E+00 0.72938290000E+00 0.32740000000E+04 0.12756846000E-02 -0.10281012000E-02 0.99999865782E+00 214 0.61325860000E+00 0.99703730000E+00 0.32740000000E+04 -0.35537759000E-03 -0.32236401000E-03 0.99999988489E+00 215 0.61325860000E+00 0.99703730000E+00 0.32740000000E+04 -0.35537759000E-03 -0.32236401000E-03 0.99999988489E+00 216 -0.14286700000E+01 -0.57384300000E+00 0.32740000000E+04 0.30271008000E-03 -0.70825900000E-03 0.99999970337E+00 217 0.68684900000E+00 0.18832760000E+01 0.32740000000E+04 0.14474601000E-03 -0.15316454000E-03 0.99999997779E+00 218 0.52533390000E-01 -0.18920570000E+00 0.32740000000E+04 0.41483095000E-03 -0.13050587000E-03 0.99999990544E+00 219 -0.13984430000E+01 -0.92852240000E+00 0.32740000000E+04 -0.18016328000E-04 -0.37271911000E-03 0.99999993038E+00 220 0.18026980000E+01 0.13607030000E+01 0.32740000000E+04 0.21282655000E-03 0.19042651000E-03 0.99999995922E+00 221 0.25985840000E+01 0.15836330000E+01 0.32740000000E+04 0.10327852000E-04 0.93558403000E-04 0.99999999557E+00 222 0.77253880000E-01 0.71593980000E+00 0.32740000000E+04 -0.10579218000E-03 -0.10276489000E-04 0.99999999435E+00 223 0.53044770000E+00 0.69485160000E+00 0.32740000000E+04 -0.51990559000E-04 0.16477490000E-03 0.99999998507E+00 224 -0.28944340000E+00 0.13656690000E+00 0.32740000000E+04 0.21469366000E-04 -0.25344302000E-03 0.99999996765E+00 225 0.11165740000E+01 -0.13765160000E+01 0.32740000000E+04 -0.79883095000E-04 -0.16799412000E-03 0.99999998270E+00 226 -0.52815400000E+00 0.10680160000E+01 0.32740000000E+04 -0.20427357000E-03 -0.72035458000E-04 0.99999997654E+00 227 -0.77980370000E+00 -0.37255860000E+00 0.32740000000E+04 -0.77250595000E-04 -0.32761553000E-03 0.99999994335E+00 228 -0.52225480000E+00 0.54168980000E+00 0.32740000000E+04 -0.31412070000E-03 -0.24823195000E-03 0.99999991985E+00 229 0.78256250000E+00 0.73679990000E+00 0.32740000000E+04 -0.10617984000E-03 -0.15448373000E-03 0.99999998243E+00 230 0.19248130000E+01 0.34612030000E+00 0.32740000000E+04 -0.15103132000E-03 -0.16128343000E-03 0.99999997559E+00 231 -0.18627120000E+01 0.18503460000E+01 0.32740000000E+04 -0.21014881000E-03 0.25463771000E-03 0.99999994550E+00 232 0.15479160000E+01 0.13320010000E+01 0.32740000000E+04 0.40566325000E-03 0.13044399000E-03 0.99999990921E+00 233 0.17119470000E+01 0.19265790000E+01 0.32740000000E+04 0.92642462000E-04 0.53381454000E-03 0.99999985323E+00 234 0.62030320000E+00 0.44177490000E+00 0.32740000000E+04 -0.46644629000E-04 -0.88393979000E-04 0.99999999501E+00 235 0.62030320000E+00 0.44177490000E+00 0.32740000000E+04 -0.46644629000E-04 -0.88393979000E-04 0.99999999501E+00 236 -0.71358430000E+00 -0.79083440000E+00 0.32740000000E+04 0.46732579000E-03 0.59662583000E-04 0.99999988902E+00 237 -0.59318240000E+00 -0.12826880000E+00 0.32740000000E+04 -0.11299037000E-04 0.61443789000E-04 0.99999999805E+00 238 -0.62902620000E-01 -0.12755990000E+00 0.32740000000E+04 0.23448253000E-03 -0.15462309000E-03 0.99999996055E+00 239 -0.11599300000E+01 0.18059450000E+01 0.32740000000E+04 -0.29238049000E-03 0.59314142000E-03 0.99999978135E+00 240 -0.21105180000E+00 -0.61465220000E+00 0.32740000000E+04 0.25425752000E-03 -0.21953473000E-03 0.99999994358E+00 241 0.16704990000E+01 -0.12411480000E+01 0.32740000000E+04 0.16246467000E-03 -0.22397429000E-03 0.99999996172E+00 242 -0.46839290000E+00 0.32637360000E+00 0.32740000000E+04 0.23781513000E-03 0.99159124000E-05 0.99999997167E+00 243 0.82033170000E-01 0.11537870000E+01 0.32740000000E+04 0.13508125000E-03 0.25083285000E-03 0.99999995942E+00 244 -0.16786810000E+01 0.16380850000E+01 0.32740000000E+04 0.26263166000E-03 -0.72978364000E-04 0.99999996285E+00 245 0.18994340000E+00 0.11225400000E+01 0.32740000000E+04 -0.36259409000E-03 0.29593188000E-04 0.99999993382E+00 246 0.18994340000E+00 0.11225400000E+01 0.32740000000E+04 -0.36259409000E-03 0.29593188000E-04 0.99999993382E+00 247 -0.71725240000E+00 -0.53565750000E+00 0.32740000000E+04 0.14556883000E-03 -0.36091416000E-03 0.99999992428E+00 248 0.42335610000E-01 -0.38620210000E+00 0.32740000000E+04 0.10766219000E-02 -0.31843831000E-03 0.99999936974E+00 249 -0.17793250000E+01 -0.20271360000E+00 0.32740000000E+04 0.31612708000E-04 -0.28332968000E-04 0.99999999910E+00 250 -0.74148740000E+00 -0.15870490000E+01 0.32740000000E+04 -0.12812664000E-03 -0.57424937000E-03 0.99999982691E+00 251 0.12521530000E+01 0.12879470000E+01 0.32740000000E+04 -0.27268541000E-04 0.92259274000E-04 0.99999999537E+00 252 -0.14057390000E+01 0.16354330000E+01 0.32740000000E+04 0.91151123000E-04 0.86169002000E-05 0.99999999581E+00 253 0.20762980000E+01 -0.12346260000E+01 0.32740000000E+04 -0.71517345000E-04 -0.18984424000E-03 0.99999997942E+00 254 0.16780670000E+01 0.10284160000E+01 0.32740000000E+04 -0.75216674000E-04 -0.18830580000E-03 0.99999997944E+00 255 0.45389010000E+00 -0.13603180000E+00 0.32740000000E+04 0.22253953000E-04 0.40336810000E-04 0.99999999894E+00 256 0.89328750000E+00 0.63381540000E+00 0.32740000000E+04 0.55580069000E-04 -0.15330146000E-03 0.99999998670E+00 257 0.89328750000E+00 0.63381540000E+00 0.32740000000E+04 0.55580069000E-04 -0.15330146000E-03 0.99999998670E+00 258 0.32242780000E+00 -0.21014270000E+00 0.32740000000E+04 -0.15490213000E-03 0.98312521000E-04 0.99999998317E+00 259 -0.79131240000E+00 0.13964670000E+01 0.32740000000E+04 0.13303217000E-04 0.24291952000E-03 0.99999997041E+00 260 0.70977480000E+00 -0.82960250000E+00 0.32740000000E+04 0.66388930000E-04 0.94200550000E-04 0.99999999336E+00 261 0.37868910000E+00 0.61284280000E+00 0.32740000000E+04 -0.11205264000E-03 -0.18801760000E-03 0.99999997605E+00 262 0.22645710000E+01 0.56412000000E+00 0.32740000000E+04 0.18465170000E-03 0.17862774000E-03 0.99999996700E+00 263 0.33229960000E+00 0.11403530000E+01 0.32740000000E+04 0.81291391000E-05 0.12206821000E-03 0.99999999252E+00 264 0.41303020000E+00 -0.18072770000E+00 0.32740000000E+04 0.64526859000E-04 0.66146022000E-05 0.99999999790E+00 265 -0.16892470000E+01 0.25798620000E+01 0.32740000000E+04 -0.88483364000E-04 0.13990006000E-03 0.99999998630E+00 266 -0.22133840000E+01 -0.13562630000E+01 0.32740000000E+04 0.16764759000E-03 -0.22387457000E-03 0.99999996089E+00 267 0.77272010000E+00 -0.33057280000E+00 0.32740000000E+04 0.10980390000E-05 -0.43626354000E-04 0.99999999905E+00 268 0.12055990000E+01 0.21663370000E+01 0.32740000000E+04 -0.29852509000E-03 -0.19157103000E-04 0.99999995526E+00 269 -0.11029750000E+01 -0.15023790000E+01 0.32740000000E+04 -0.14677372000E-03 -0.25663420000E-03 0.99999995630E+00 270 -0.11029750000E+01 -0.15023790000E+01 0.32740000000E+04 -0.14677372000E-03 -0.25663420000E-03 0.99999995630E+00 271 0.71069930000E+00 0.14924480000E+01 0.32740000000E+04 0.51672774000E-04 0.15398272000E-03 0.99999998681E+00 272 0.25288320000E+00 -0.13901270000E+01 0.32740000000E+04 -0.50942635000E-04 -0.11062423000E-03 0.99999999258E+00 273 -0.51389050000E+00 0.17694270000E+01 0.32740000000E+04 0.55644592000E-04 0.35241240000E-03 0.99999993635E+00 274 0.99903990000E+00 0.16044650000E+01 0.32740000000E+04 0.52196818000E-03 0.25263315000E-03 0.99999983186E+00 275 -0.25773430000E+00 0.12951370000E+01 0.32740000000E+04 0.75245393000E-04 -0.27979186000E-03 0.99999995803E+00 276 -0.15712120000E+01 -0.81812520000E+00 0.32740000000E+04 -0.22756318000E-04 -0.20131837000E-03 0.99999997948E+00 277 0.92738470000E+00 -0.57682030000E+00 0.32740000000E+04 0.19668197000E-03 -0.24034055000E-03 0.99999995178E+00 278 -0.97248554000E-02 -0.54903580000E+00 0.32740000000E+04 0.13294078000E-03 -0.54692693000E-04 0.99999998967E+00 279 0.49459660000E+00 -0.13501250000E+01 0.32740000000E+04 -0.59459460000E-04 -0.12582404000E-03 0.99999999032E+00 280 0.76697400000E+00 -0.47344740000E+00 0.32740000000E+04 -0.68296686000E-04 -0.57113764000E-04 0.99999999604E+00 281 0.11504310000E+01 0.10582950000E+01 0.32740000000E+04 -0.40643458000E-03 0.91666720000E-04 0.99999991320E+00 282 0.34020450000E+00 0.16144170000E+01 0.32740000000E+04 0.23500102000E-03 -0.63764586000E-04 0.99999997035E+00 283 0.60041210000E+00 -0.19634400000E+01 0.32740000000E+04 -0.56910882000E-04 -0.41253449000E-03 0.99999991329E+00 284 0.23404430000E+01 0.55145060000E+00 0.32740000000E+04 -0.21479317000E-03 -0.53168653000E-04 0.99999997552E+00 285 0.22181060000E+01 -0.84481890000E+00 0.32740000000E+04 0.94495459000E-04 -0.30326177000E-03 0.99999994955E+00 286 0.24787430000E+01 0.11361760000E+01 0.32740000000E+04 0.62350293000E-04 -0.12225292000E-03 0.99999999058E+00 287 -0.54518330000E+00 -0.32346420000E+01 0.32740000000E+04 0.28697791000E-03 0.37215705000E-03 0.99999988957E+00 288 0.13437600000E+01 -0.19051090000E+00 0.32740000000E+04 -0.25888623000E-03 -0.42000096000E-03 0.99999987829E+00 289 0.13437600000E+01 -0.19051090000E+00 0.32740000000E+04 -0.25888623000E-03 -0.42000096000E-03 0.99999987829E+00 290 0.78662380000E+00 0.11363440000E+01 0.32740000000E+04 -0.64118089000E-04 -0.16310063000E-03 0.99999998464E+00 291 0.20530930000E+01 -0.59966080000E+00 0.32740000000E+04 0.35050229000E-03 -0.27106437000E-03 0.99999990184E+00 292 -0.44807150000E+00 -0.14165910000E+01 0.32740000000E+04 0.28040009000E-04 -0.24066864000E-03 0.99999997065E+00 293 -0.13269740000E+01 -0.56062110000E+00 0.32740000000E+04 -0.24350532000E-03 -0.98348879000E-04 0.99999996552E+00 294 -0.51429040000E+00 0.97341140000E+00 0.32740000000E+04 -0.23341825000E-03 0.24349065000E-03 0.99999994311E+00 295 -0.18854490000E+01 0.15617660000E+01 0.32740000000E+04 -0.16063552000E-04 -0.19543708000E-04 0.99999999968E+00 296 0.81748080000E+00 0.85231650000E+00 0.32740000000E+04 0.96025113000E-04 0.11826876000E-03 0.99999998840E+00 297 -0.64307090000E+00 -0.76127340000E+00 0.32740000000E+04 -0.12708729000E-03 -0.27577594000E-03 0.99999995390E+00 298 0.86810490000E+00 0.20362710000E+01 0.32740000000E+04 -0.34850955000E-03 0.11722973000E-03 0.99999993240E+00 299 -0.48000980000E+00 0.17396390000E+01 0.32740000000E+04 -0.22665526000E-03 -0.20454008000E-04 0.99999997410E+00 300 -0.58027230000E-01 0.68134100000E+00 0.32740000000E+04 -0.34319037000E-04 -0.64694759000E-04 0.99999999732E+00 301 0.34218880000E+00 0.12582820000E+01 0.32740000000E+04 0.17464976000E-03 0.11513642000E-03 0.99999997812E+00 302 0.34218880000E+00 0.12582820000E+01 0.32740000000E+04 0.17464976000E-03 0.11513642000E-03 0.99999997812E+00 303 -0.51577100000E+00 0.21970750000E+00 0.32740000000E+04 0.39009744000E-03 -0.20814323000E-03 0.99999990225E+00 304 0.27210660000E+01 0.15355430000E+01 0.32740000000E+04 0.30021317000E-03 0.30002356000E-03 0.99999990993E+00 305 0.12335090000E+01 0.72078340000E+00 0.32740000000E+04 -0.37888222000E-03 0.26904749000E-04 0.99999992786E+00 306 -0.56298960000E+00 0.22174810000E+01 0.32740000000E+04 -0.17298471000E-03 0.30145564000E-03 0.99999993960E+00 307 -0.25825210000E+00 -0.97325180000E+00 0.32740000000E+04 -0.59323091000E-04 -0.82415630000E-04 0.99999999484E+00 308 -0.76414730000E+00 0.21940190000E+01 0.32740000000E+04 -0.41939496000E-04 0.33447903000E-03 0.99999994318E+00 309 0.79207790000E+00 -0.27130700000E+00 0.32740000000E+04 -0.49806084000E-06 0.14399757000E-03 0.99999998963E+00 310 -0.97786040000E+00 -0.30981160000E-01 0.32740000000E+04 -0.12530893000E-03 0.14643902000E-05 0.99999999215E+00 311 -0.31173700000E+00 0.23368730000E+01 0.32740000000E+04 0.10758267000E-03 -0.48158190000E-03 0.99999987825E+00 312 -0.70651750000E+00 -0.42332580000E+00 0.32740000000E+04 0.13170062000E-03 -0.33403613000E-03 0.99999993554E+00 313 -0.48330980000E-01 0.63900340000E+00 0.32740000000E+04 0.39835231000E-04 0.14871561000E-03 0.99999998815E+00 314 0.11294500000E+01 -0.97530810000E-01 0.32740000000E+04 -0.58650232000E-04 -0.49509068000E-04 0.99999999705E+00 315 -0.62854790000E+00 0.38354750000E+00 0.32740000000E+04 0.30204959000E-03 0.38382925000E-04 0.99999995365E+00 316 0.90461370000E+00 -0.18213930000E+00 0.32740000000E+04 0.27411350000E-03 0.12597667000E-03 0.99999995450E+00 317 -0.12242090000E+01 0.80221130000E+00 0.32740000000E+04 0.19774245000E-03 0.24693141000E-04 0.99999998014E+00 318 0.74610140000E-01 0.20815220000E+01 0.32740000000E+04 0.35790892000E-03 0.70288930000E-04 0.99999993348E+00 319 -0.31312430000E+00 0.27111750000E+01 0.32740000000E+04 0.63159299000E-04 0.23066141000E-04 0.99999999774E+00 320 -0.98641120000E+00 -0.58648470000E+00 0.32740000000E+04 0.67419300000E-04 0.24569448000E-03 0.99999996754E+00 321 -0.56111020000E+00 -0.85561350000E-01 0.32740000000E+04 -0.38537654000E-03 0.22350391000E-03 0.99999990077E+00 322 -0.16215770000E+01 0.13605440000E+01 0.32740000000E+04 0.16653404000E-03 -0.77563645000E-05 0.99999998610E+00 323 -0.54957450000E+00 0.58335730000E+00 0.32740000000E+04 -0.75169497000E-04 0.18432966000E-03 0.99999998019E+00 324 -0.35061420000E+00 0.66483190000E+00 0.32740000000E+04 0.11047834000E-04 0.28439829000E-03 0.99999995950E+00 325 -0.20447390000E+00 0.83992490000E+00 0.32740000000E+04 -0.25999836000E-04 -0.27232652000E-03 0.99999996258E+00 326 -0.20447390000E+00 0.83992490000E+00 0.32740000000E+04 -0.25999836000E-04 -0.27232652000E-03 0.99999996258E+00 327 -0.20828510000E+01 -0.36708330000E+00 0.32740000000E+04 -0.32271849000E-03 0.20649801000E-03 0.99999992661E+00 328 0.10665100000E+01 0.16590750000E+01 0.32740000000E+04 -0.33293993000E-04 -0.57862926000E-04 0.99999999777E+00 329 0.12940150000E+01 0.11148950000E+01 0.32740000000E+04 0.93502138000E-04 0.57931247000E-04 0.99999999395E+00 330 0.14847800000E+01 0.14366100000E+01 0.32740000000E+04 0.36188020000E-03 0.27670257000E-03 0.99999989624E+00 331 0.16681850000E+01 -0.14220270000E+01 0.32740000000E+04 0.72296840000E-04 -0.35244075000E-03 0.99999993528E+00 332 0.41939160000E+00 -0.17059440000E+00 0.32740000000E+04 0.58228696000E-04 0.22376640000E-03 0.99999997327E+00 333 0.76775620000E+00 -0.16142790000E+01 0.32740000000E+04 0.26254306000E-03 -0.60317805000E-03 0.99999978362E+00 334 0.15913530000E+01 0.17055260000E+00 0.32740000000E+04 0.11064192000E-03 0.73711693000E-04 0.99999999116E+00 335 0.28825580000E+01 0.14275990000E+01 0.32740000000E+04 -0.60921542000E-04 0.53123815000E-04 0.99999999673E+00 336 -0.11421720000E+01 0.11189320000E+01 0.32740000000E+04 0.69300491000E-04 0.56238183000E-04 0.99999999602E+00 337 -0.17799560000E+01 0.15305350000E+01 0.32740000000E+04 -0.12338418000E-03 -0.10698773000E-03 0.99999998666E+00 338 -0.10720230000E-01 -0.82783490000E+00 0.32740000000E+04 -0.17549390000E-03 -0.14307555000E-03 0.99999997437E+00 339 -0.39208280000E+00 0.15629050000E+01 0.32740000000E+04 0.97304946000E-04 0.28491064000E-03 0.99999995468E+00 340 -0.39169420000E+00 0.19119620000E+01 0.32740000000E+04 -0.10039408000E-03 0.26202769000E-03 0.99999996063E+00 341 -0.37708320000E+00 -0.38504430000E+00 0.32740000000E+04 -0.47400777000E-05 -0.22538452000E-03 0.99999997459E+00 342 0.18805240000E+01 0.65081120000E+00 0.32740000000E+04 0.12925448000E-03 -0.28607564000E-03 0.99999995073E+00 343 -0.33158060000E+00 0.12815300000E+01 0.32740000000E+04 0.28770417000E-03 0.68736234000E-04 0.99999995625E+00 344 -0.14032450000E+01 0.53061550000E+00 0.32740000000E+04 0.37030131000E-04 0.52088235000E-04 0.99999999796E+00 345 -0.45061480000E+00 0.32125330000E+00 0.32740000000E+04 0.94725976000E-04 0.15026257000E-03 0.99999998422E+00 346 0.12081420000E+00 -0.27145650000E+00 0.32740000000E+04 0.52392850000E-04 0.18575307000E-03 0.99999998138E+00 347 -0.10908970000E+01 0.12219890000E+01 0.32740000000E+04 0.36505491000E-04 0.53664698000E-03 0.99999985534E+00 348 0.10549040000E+01 0.13309490000E+01 0.32740000000E+04 -0.10131631000E-03 0.18423307000E-03 0.99999997790E+00 349 -0.95792930000E+00 -0.56277540000E+00 0.32740000000E+04 0.27160652000E-03 -0.21229315000E-03 0.99999994058E+00 350 0.11380850000E+01 0.15486540000E+01 0.32740000000E+04 -0.51724674000E-04 -0.13791201000E-03 0.99999998915E+00 351 -0.24377160000E+01 0.42608000000E-01 0.32740000000E+04 -0.24309356000E-03 -0.19884339000E-03 0.99999995068E+00 352 0.84673020000E+00 0.34134730000E+00 0.32740000000E+04 -0.36077254000E-04 -0.24066390000E-04 0.99999999906E+00 353 0.15782910000E+00 0.12704200000E+01 0.32740000000E+04 -0.20987977000E-03 0.39479873000E-03 0.99999990004E+00 354 0.17333950000E+01 0.16486070000E+01 0.32740000000E+04 -0.15482542000E-03 0.19195185000E-03 0.99999996959E+00 355 0.10329620000E+01 0.10057000000E+01 0.32740000000E+04 -0.24253159000E-03 -0.48622245000E-04 0.99999996941E+00 356 0.56107230000E+00 0.26175260000E+00 0.32740000000E+04 0.69200942000E-04 0.35221168000E-04 0.99999999699E+00 357 0.53812680000E+00 0.53188030000E+00 0.32740000000E+04 0.35534676000E-05 -0.12151684000E-03 0.99999999261E+00 358 0.36467250000E+00 0.11490620000E+01 0.32740000000E+04 0.18148018000E-03 0.25338720000E-03 0.99999995143E+00 359 0.95047390000E-01 0.33362790000E+00 0.32740000000E+04 -0.71766677000E-04 0.14369312000E-03 0.99999998710E+00 360 0.37682050000E-01 0.80997370000E+00 0.32740000000E+04 0.27643708000E-04 0.44589510000E-03 0.99999990021E+00 361 -0.43978520000E-01 0.13150590000E+01 0.32740000000E+04 0.11873607000E-03 0.21053883000E-03 0.99999997079E+00 362 -0.31996350000E-01 0.26975700000E+00 0.32740000000E+04 0.82140854000E-04 -0.38136335000E-03 0.99999992391E+00 363 -0.15919650000E+01 -0.67816260000E+00 0.32740000000E+04 -0.59664078000E-04 0.49284728000E-04 0.99999999701E+00 364 0.95488240000E+00 -0.73612810000E+00 0.32740000000E+04 0.25170972000E-03 -0.17005297000E-03 0.99999995386E+00 365 -0.54415740000E+00 -0.46651130000E+00 0.32740000000E+04 -0.17433942000E-03 -0.23205977000E-03 0.99999995788E+00 366 0.22427300000E+01 0.10359170000E+01 0.32740000000E+04 -0.21850565000E-03 -0.23484071000E-03 0.99999994855E+00 367 0.15816820000E+01 0.79303170000E-01 0.32740000000E+04 0.17060564000E-03 -0.34750180000E-03 0.99999992507E+00 368 0.64113570000E+00 0.21250560000E+01 0.32740000000E+04 -0.22884774000E-05 0.23164239000E-03 0.99999997317E+00 369 0.64113570000E+00 0.21250560000E+01 0.32740000000E+04 -0.22884774000E-05 0.23164239000E-03 0.99999997317E+00 370 0.17940940000E+01 0.26231800000E+01 0.32740000000E+04 -0.11472854000E-03 0.22983161000E-03 0.99999996701E+00 371 0.71614420000E+00 0.41975690000E+00 0.32740000000E+04 -0.74083495000E-04 0.15508465000E-03 0.99999998523E+00 372 0.16102240000E+01 0.14922070000E+01 0.32740000000E+04 0.52201172000E-04 0.34303250000E-03 0.99999993980E+00 373 -0.45294060000E+00 0.43185100000E+00 0.32740000000E+04 0.29343931000E-03 0.42688553000E-03 0.99999986583E+00 374 0.23083010000E+01 -0.10558030000E+00 0.32740000000E+04 0.19722313000E-05 -0.16396218000E-03 0.99999998656E+00 375 -0.99956480000E+00 0.34033900000E+00 0.32740000000E+04 -0.90353042000E-05 -0.21814095000E-03 0.99999997617E+00 376 0.22499420000E+01 0.21739540000E+01 0.32740000000E+04 0.22581704000E-03 -0.61153638000E-03 0.99999978751E+00 377 -0.44851760000E+00 0.68106610000E+00 0.32740000000E+04 0.12031955000E-03 -0.14663913000E-03 0.99999998201E+00 378 0.89453330000E-01 0.58585430000E+00 0.32740000000E+04 -0.52894778000E-04 -0.17361320000E-03 0.99999998353E+00 379 0.13227960000E+01 0.20232810000E+01 0.32740000000E+04 0.39667862000E-04 0.29115283000E-03 0.99999995683E+00 380 0.22488440000E+01 -0.32943910000E+00 0.32740000000E+04 0.72603441000E-04 0.57415482000E-05 0.99999999735E+00 381 0.22488440000E+01 -0.32943910000E+00 0.32740000000E+04 0.72603441000E-04 0.57415482000E-05 0.99999999735E+00 382 -0.30000390000E+00 0.80178380000E+00 0.32740000000E+04 -0.86673253000E-05 0.38913023000E-03 0.99999992425E+00 383 0.97079670000E+00 0.22875240000E+01 0.32740000000E+04 0.28408098000E-03 0.30942293000E-03 0.99999991178E+00 384 0.17644670000E+01 0.15012264000E-02 0.32740000000E+04 0.98390432000E-04 -0.27642548000E-03 0.99999995695E+00 385 -0.12031580000E+00 0.70221210000E-01 0.32740000000E+04 0.34312464000E-03 0.82863276000E-04 0.99999993770E+00 386 -0.12031580000E+00 0.70221210000E-01 0.32740000000E+04 0.34312464000E-03 0.82863276000E-04 0.99999993770E+00 387 -0.11982730000E+00 -0.33049660000E+00 0.32740000000E+04 -0.25281511000E-03 -0.47323553000E-03 0.99999985607E+00 388 0.40216420000E+00 0.12276680000E+01 0.32740000000E+04 -0.46017481000E-03 -0.23294979000E-03 0.99999986699E+00 389 -0.19993160000E+01 -0.13609300000E+01 0.32740000000E+04 -0.42591324000E-04 -0.20359454000E-03 0.99999997837E+00 390 -0.12065610000E+01 0.34130940000E+00 0.32740000000E+04 -0.21338774000E-03 -0.19803474000E-03 0.99999995762E+00 391 0.17504650000E+00 0.18249630000E+01 0.32740000000E+04 0.27218967000E-03 0.26386217000E-03 0.99999992814E+00 392 0.11745120000E+00 -0.48544270000E+00 0.32740000000E+04 -0.26903662000E-03 0.56111556000E-03 0.99999980638E+00 393 0.86964010000E+00 0.27175310000E+01 0.32740000000E+04 0.53896147000E-04 -0.40776443000E-03 0.99999991541E+00 394 0.51273840000E+00 -0.82024650000E+00 0.32740000000E+04 0.24542638000E-04 0.62200772000E-04 0.99999999776E+00 395 0.75293590000E+00 -0.14404370000E+01 0.32740000000E+04 0.19349679000E-03 -0.38697934000E-03 0.99999990640E+00 396 -0.17855960000E+01 0.11734690000E+01 0.32740000000E+04 0.87162785000E-04 0.30359827000E-03 0.99999995012E+00 397 0.14068970000E+01 0.13205230000E+00 0.32740000000E+04 -0.43249183000E-04 -0.12186691000E-03 0.99999999164E+00 398 -0.85826933000E-02 0.82556400000E+00 0.32740000000E+04 -0.41308889000E-04 0.54035638000E-04 0.99999999769E+00 399 -0.12556710000E+01 0.81875790000E+00 0.32740000000E+04 -0.10612511000E-04 -0.42037078000E-04 0.99999999906E+00 400 -0.79506440000E+00 -0.54556750000E+00 0.32740000000E+04 -0.20558551000E-03 0.43020627000E-04 0.99999997794E+00 401 -0.14394230000E+00 0.14386520000E+01 0.32740000000E+04 -0.23501553000E-03 0.11065888000E-03 0.99999996626E+00 402 -0.10442790000E+01 -0.14523950000E+00 0.32740000000E+04 -0.27190955000E-03 -0.31890415000E-03 0.99999991218E+00 403 0.82432720000E+00 0.24836130000E+01 0.32740000000E+04 0.10588136000E-04 0.12987331000E-04 0.99999999986E+00 404 0.82432720000E+00 0.24836130000E+01 0.32740000000E+04 0.10588136000E-04 0.12987331000E-04 0.99999999986E+00 405 -0.42436440000E+00 0.10829980000E+01 0.32740000000E+04 0.10414263000E-02 0.45656122000E-03 0.99999935349E+00 406 0.35178680000E+00 0.54220250000E-01 0.32740000000E+04 0.35050958000E-04 -0.72877490000E-04 0.99999999673E+00 407 -0.90015896000E-02 0.60807660000E+00 0.32740000000E+04 -0.82279184000E-05 -0.36221743000E-03 0.99999993437E+00 408 0.38398120000E+00 -0.66304640000E+00 0.32740000000E+04 0.17433209000E-03 -0.24767086000E-03 0.99999995413E+00 409 0.94153100000E+00 0.18543790000E+01 0.32740000000E+04 -0.55971068000E-04 -0.15312518000E-03 0.99999998671E+00 410 -0.65023770000E+00 0.49258000000E+00 0.32740000000E+04 0.41095482000E-04 -0.14357315000E-03 0.99999998885E+00 411 0.25006690000E+00 0.21314450000E+01 0.32740000000E+04 0.27842051000E-03 0.14914459000E-03 0.99999995012E+00 412 0.17251420000E+01 -0.74244350000E+00 0.32740000000E+04 -0.27981463000E-04 -0.14392442000E-03 0.99999998925E+00 413 -0.14219870000E+01 0.23222710000E-01 0.32740000000E+04 0.70810469000E-03 -0.21085123000E-03 0.99999972706E+00 414 -0.24673320000E+00 0.22482280000E+00 0.32740000000E+04 0.18639557000E-03 -0.12497579000E-03 0.99999997482E+00 415 -0.24673320000E+00 0.22482280000E+00 0.32740000000E+04 0.18639557000E-03 -0.12497579000E-03 0.99999997482E+00 416 -0.20084190000E+01 0.79339520000E+00 0.32740000000E+04 -0.14777567000E-03 0.12817694000E-03 0.99999998087E+00 417 0.53652220000E+00 0.42341150000E+00 0.32740000000E+04 0.10353114000E-03 0.35806588000E-03 0.99999993054E+00 418 -0.14028830000E+01 0.21913750000E+01 0.32740000000E+04 0.24099918000E-04 0.12973780000E-03 0.99999999129E+00 419 0.87024410000E+00 -0.49703390000E+00 0.32740000000E+04 -0.22286126000E-03 0.22785617000E-03 0.99999994921E+00 420 -0.17616610000E+01 -0.55317530000E+00 0.32740000000E+04 -0.95058414000E-04 -0.33864548000E-03 0.99999993814E+00 421 -0.15770800000E+00 0.17975220000E+00 0.32740000000E+04 -0.60384864000E-04 -0.34826924000E-03 0.99999993753E+00 422 0.54866500000E+00 0.12176540000E+01 0.32740000000E+04 -0.16034336000E-03 0.16298857000E-03 0.99999997386E+00 423 0.16751000000E+00 -0.34372320000E+00 0.32740000000E+04 -0.37328777000E-03 -0.98608201000E-04 0.99999992547E+00 424 0.88229410000E+00 0.55520050000E-01 0.32740000000E+04 0.32294009000E-03 -0.67688711000E-05 0.99999994783E+00 425 -0.80581310000E-01 0.47293300000E+00 0.32740000000E+04 0.34243686000E-03 0.13629136000E-03 0.99999993208E+00 426 0.16319720000E+00 0.21429410000E+01 0.32740000000E+04 0.15413031000E-03 0.27755390000E-04 0.99999998774E+00 427 0.16008590000E+01 0.20860630000E+01 0.32740000000E+04 0.55193661000E-04 0.14177205000E-03 0.99999998843E+00 428 0.22762320000E+01 0.11020680000E+01 0.32740000000E+04 -0.14491317000E-03 0.96426113000E-04 0.99999998485E+00 429 0.22762320000E+01 0.11020680000E+01 0.32740000000E+04 -0.14491317000E-03 0.96426113000E-04 0.99999998485E+00 430 -0.60897480000E+00 -0.52518570000E-01 0.32740000000E+04 0.27719539000E-03 0.14178800000E-03 0.99999995153E+00 431 0.27914610000E+00 0.13622690000E+01 0.32740000000E+04 -0.73062394000E-04 0.38629511000E-03 0.99999992272E+00 432 -0.57947320000E+00 0.10463330000E+01 0.32740000000E+04 0.12047360000E-03 -0.30281735000E-03 0.99999994689E+00 433 0.11218510000E+01 -0.39155810000E+00 0.32740000000E+04 0.10560354000E-03 -0.11361518000E-03 0.99999998797E+00 434 -0.42516920000E+00 0.81371560000E+00 0.32740000000E+04 0.76258024000E-04 0.23211245000E-03 0.99999997015E+00 435 -0.25529240000E+00 -0.16982910000E+01 0.32740000000E+04 -0.15929407000E-03 -0.16104909000E-03 0.99999997434E+00 436 -0.27675790000E+00 -0.35682870000E+00 0.32740000000E+04 0.82193161000E-04 -0.29926738000E-04 0.99999999617E+00 437 0.75759120000E+00 0.16390120000E+01 0.32740000000E+04 0.12682282000E-03 0.19045486000E-03 0.99999997382E+00 438 0.17513670000E+01 0.15532490000E+01 0.32740000000E+04 -0.10059537000E-03 0.26247534000E-03 0.99999996049E+00 439 0.69537230000E-01 0.42233920000E+00 0.32740000000E+04 -0.19048361000E-04 0.60419168000E-03 0.99999981729E+00 440 -0.15181530000E+01 -0.20922600000E+01 0.32740000000E+04 -0.11466049000E-02 -0.44363202000E-04 0.99999934166E+00 441 -0.41754220000E+00 -0.19187110000E+01 0.32740000000E+04 0.29830157000E-03 0.32023552000E-04 0.99999995500E+00 442 0.10554860000E+01 0.52898420000E+00 0.32740000000E+04 -0.61568676000E-03 0.12075590000E-03 0.99999980317E+00 443 0.15605000000E+01 0.20535310000E+01 0.32740000000E+04 -0.14218609000E-03 0.19697388000E-03 0.99999997049E+00 444 -0.20773460000E+01 0.70099590000E+00 0.32740000000E+04 -0.89395362000E-04 -0.76524193000E-05 0.99999999597E+00 445 0.48979044000E-02 0.17471110000E+01 0.32740000000E+04 -0.27964916000E-03 0.96988624000E-05 0.99999996085E+00 446 -0.65728360000E+00 0.16879670000E+01 0.32740000000E+04 0.19587633000E-03 0.45423082000E-03 0.99999987765E+00 447 -0.35764340000E+00 0.44435360000E+00 0.32740000000E+04 0.33319049000E-03 -0.26755276000E-03 0.99999990870E+00 448 -0.35764340000E+00 0.44435360000E+00 0.32740000000E+04 0.33319049000E-03 -0.26755276000E-03 0.99999990870E+00 449 0.57830820000E+00 -0.11395300000E+01 0.32740000000E+04 -0.30464240000E-04 -0.41295905000E-03 0.99999991427E+00 450 0.73828730000E+00 0.10096390000E+01 0.32740000000E+04 0.12814032000E-03 0.40717615000E-03 0.99999990889E+00 451 0.17188170000E+01 0.13866130000E+01 0.32740000000E+04 -0.51034938000E-04 0.93966526000E-04 0.99999999428E+00 452 0.10426010000E+01 0.23152420000E+01 0.32740000000E+04 -0.18035289000E-03 -0.38747548000E-03 0.99999990867E+00 453 0.19333020000E+01 0.16724710000E+01 0.32740000000E+04 0.24608750000E-03 0.22113280000E-03 0.99999994527E+00 454 0.17904250000E+01 -0.25785370000E+00 0.32740000000E+04 0.13113991000E-03 0.80850485000E-04 0.99999998813E+00 455 0.71253380000E+00 0.11056040000E+01 0.32740000000E+04 0.73439151000E-04 0.19246827000E-04 0.99999999712E+00 456 -0.82770550000E+00 0.11378730000E+00 0.32740000000E+04 0.37133650000E-03 -0.18246127000E-03 0.99999991441E+00 457 -0.99443320000E+00 0.92674310000E+00 0.32740000000E+04 0.31455350000E-03 -0.40344810000E-03 0.99999986914E+00 458 -0.63266590000E+00 0.13001020000E+01 0.32740000000E+04 0.10638968000E-02 0.49571408000E-03 0.99999931120E+00 459 0.15459860000E+01 0.32866550000E+00 0.32740000000E+04 0.79900492000E-05 -0.71032817000E-04 0.99999999745E+00 460 0.22398870000E+01 0.83727860000E-01 0.32740000000E+04 0.12561514000E-03 -0.20849312000E-03 0.99999997038E+00 461 -0.17747590000E+01 -0.98468310000E+00 0.32740000000E+04 0.84634907000E-04 -0.27532747000E-03 0.99999995852E+00 462 -0.17747590000E+01 -0.98468310000E+00 0.32740000000E+04 0.84634907000E-04 -0.27532747000E-03 0.99999995852E+00 463 -0.11622030000E+01 -0.13662540000E+01 0.32740000000E+04 -0.53352042000E-03 -0.45634867000E-03 0.99999975355E+00 464 0.84164050000E+00 0.14683200000E+01 0.32740000000E+04 -0.62453044000E-04 -0.46843669000E-03 0.99999988833E+00 465 -0.17680230000E+01 0.59273980000E+00 0.32740000000E+04 -0.59327514000E-04 0.60147839000E-03 0.99999981735E+00 466 0.13023770000E+01 0.89597290000E+00 0.32740000000E+04 0.84241197000E-04 0.15867646000E-03 0.99999998386E+00 467 -0.12872840000E+00 0.11992630000E-01 0.32740000000E+04 0.14284081000E-03 0.95337506000E-04 0.99999998525E+00 468 -0.64887130000E+00 0.20801940000E+01 0.32740000000E+04 0.13383044000E-03 0.23128970000E-03 0.99999996430E+00 469 0.46449930000E+00 -0.12466310000E+00 0.32740000000E+04 0.66685847000E-04 -0.21024517000E-03 0.99999997567E+00 470 -0.23343700000E+00 -0.47589860000E+00 0.32740000000E+04 0.46558075000E-05 -0.11331317000E-03 0.99999999357E+00 471 -0.19703310000E+01 -0.46336170000E+00 0.32740000000E+04 0.84457051000E-05 0.15463214000E-03 0.99999998801E+00 472 -0.77571150000E+00 -0.66063180000E+00 0.32740000000E+04 0.22910922000E-03 -0.15949862000E-03 0.99999996103E+00 473 0.11540880000E+01 0.20475590000E+01 0.32740000000E+04 0.11538376000E-03 0.15121046000E-03 0.99999998191E+00 474 -0.34752250000E+00 0.14467640000E+01 0.32740000000E+04 0.18624200000E-03 -0.12544733000E-03 0.99999997479E+00 475 -0.34752250000E+00 0.14467640000E+01 0.32740000000E+04 0.18624200000E-03 -0.12544733000E-03 0.99999997479E+00 476 0.11312000000E+00 0.29362280000E+00 0.32740000000E+04 0.13407061000E-03 0.27883446000E-03 0.99999995214E+00 477 -0.21667500000E+00 0.11428880000E+01 0.32740000000E+04 -0.24544710000E-04 0.12165336000E-03 0.99999999230E+00 478 0.28518070000E+00 0.10914080000E+01 0.32740000000E+04 -0.31858045000E-03 0.29791619000E-04 0.99999994881E+00 479 0.11418100000E+01 -0.89971610000E+00 0.32740000000E+04 -0.35283531000E-03 -0.44241632000E-03 0.99999983989E+00 480 -0.14773740000E+00 -0.52527050000E-01 0.32740000000E+04 -0.17264318000E-03 0.15060502000E-03 0.99999997376E+00 481 0.15893670000E+00 0.67985415000E-02 0.32740000000E+04 -0.58029578000E-04 -0.80690908000E-04 0.99999999506E+00 482 0.17883270000E+01 -0.72061570000E+00 0.32740000000E+04 0.63530070000E-03 -0.12163851000E-03 0.99999979080E+00 483 -0.33601850000E+00 0.21108840000E+01 0.32740000000E+04 -0.12246706000E-03 0.20714567000E-03 0.99999997105E+00 484 0.44217380000E+00 -0.39111560000E+00 0.32740000000E+04 0.11345148000E-03 0.22093195000E-03 0.99999996916E+00 485 0.13754400000E+01 -0.93884500000E+00 0.32740000000E+04 0.87612876000E-04 -0.93125084000E-06 0.99999999616E+00 486 -0.84238520000E+00 0.64915490000E+00 0.32740000000E+04 -0.27914258000E-03 0.32844581000E-03 0.99999990710E+00 487 -0.11018350000E+01 0.27852270000E+00 0.32740000000E+04 0.10279136000E-03 -0.11312855000E-03 0.99999998832E+00 488 0.10647770000E+01 -0.52428350000E+00 0.32740000000E+04 0.18322153000E-03 -0.20015803000E-03 0.99999996318E+00 489 0.10647770000E+01 -0.52428350000E+00 0.32740000000E+04 0.18322153000E-03 -0.20015803000E-03 0.99999996318E+00 490 0.90253353000E-02 0.21374400000E+00 0.32740000000E+04 -0.66631765000E-04 0.16139394000E-03 0.99999998476E+00 491 -0.66879870000E+00 -0.33725110000E+00 0.32740000000E+04 0.23981482000E-03 -0.95477320000E-04 0.99999996669E+00 492 0.53694090000E+00 0.14605260000E+01 0.32740000000E+04 -0.13068866000E-03 0.32979462000E-03 0.99999993708E+00 493 -0.39800110000E+00 0.32605820000E+00 0.32740000000E+04 0.12473515000E-03 0.15587089000E-03 0.99999998007E+00 494 0.14870140000E+01 0.14758960000E+01 0.32740000000E+04 -0.55846889000E-04 0.18776806000E-03 0.99999998081E+00 495 0.35664150000E+00 0.23336870000E+01 0.32740000000E+04 -0.15546601000E-03 0.53174654000E-03 0.99999984654E+00 496 0.91030730000E+00 0.10075110000E+01 0.32740000000E+04 0.28152464000E-03 0.42388091000E-03 0.99999987053E+00 497 -0.39168460000E+00 0.16440700000E+01 0.32740000000E+04 -0.19904580000E-03 0.27685703000E-03 0.99999994187E+00 498 0.23555460000E+01 0.14795340000E+00 0.32740000000E+04 0.69881580000E-03 -0.14095756000E-03 0.99999974589E+00 499 0.16957280000E+00 -0.70586810000E-01 0.32740000000E+04 0.16283398000E-03 -0.77395904000E-04 0.99999998375E+00 500 -0.10791140000E+00 0.19633910000E+01 0.32740000000E+04 -0.39379773000E-03 -0.59205489000E-04 0.99999992071E+00 501 -0.18649370000E+01 -0.52300030000E+00 0.32740000000E+04 -0.24596040000E-03 -0.34922376000E-03 0.99999990877E+00 502 0.13550460000E+01 0.88786720000E+00 0.32740000000E+04 -0.27682725000E-03 -0.14184474000E-03 0.99999995162E+00 503 -0.14039150000E+01 0.71990230000E+00 0.32740000000E+04 0.25817874000E-03 0.12401355000E-03 0.99999995898E+00 504 0.11947240000E+01 -0.77706530000E+00 0.32740000000E+04 0.31171072000E-04 0.60437294000E-04 0.99999999769E+00 505 -0.47551590000E+00 0.36293430000E+00 0.32740000000E+04 -0.30995792000E-03 -0.17521039000E-04 0.99999995181E+00 506 0.14392170000E+01 0.14326380000E+01 0.32740000000E+04 -0.12663097000E-03 0.29099936000E-03 0.99999994964E+00 507 -0.49109936000E-02 0.90988350000E+00 0.32740000000E+04 0.79878932000E-03 0.97361277000E-04 0.99999967623E+00 508 0.20525640000E+01 0.20596960000E+01 0.32740000000E+04 0.19318491000E-03 -0.29114197000E-03 0.99999993896E+00 509 -0.37477070000E+00 -0.15448130000E+01 0.32740000000E+04 0.14369310000E-02 0.16895438000E-02 0.99999754033E+00 510 0.17132930000E+01 -0.12625710000E+01 0.32740000000E+04 0.20932168000E-03 0.32627204000E-03 0.99999992487E+00 511 0.16203180000E+01 0.17293690000E+01 0.32740000000E+04 -0.22394441000E-03 -0.10974809000E-04 0.99999997486E+00 512 0.14664180000E+01 -0.17628510000E+00 0.32740000000E+04 -0.14211738000E-03 -0.24008275000E-03 0.99999996108E+00 513 0.26779350000E+01 0.14999990000E+01 0.32740000000E+04 0.46309120000E-04 0.13926132000E-03 0.99999998923E+00 514 -0.11183580000E+01 -0.22750370000E+01 0.32740000000E+04 0.80567034000E-03 0.66460716000E-03 0.99999945460E+00 515 0.19129330000E+01 -0.43733740000E+00 0.32740000000E+04 0.28075991000E-03 0.10138149000E-03 0.99999995545E+00 516 0.20059200000E+01 0.16533800000E+01 0.32740000000E+04 -0.44096505000E-04 0.16950893000E-04 0.99999999888E+00 517 0.20059200000E+01 0.16533800000E+01 0.32740000000E+04 -0.44096505000E-04 0.16950893000E-04 0.99999999888E+00 518 0.78189100000E+00 0.46373160000E+00 0.32740000000E+04 -0.16765067000E-03 0.14313360000E-03 0.99999997570E+00 519 0.15590740000E+01 0.25249850000E+01 0.32740000000E+04 0.36183839000E-04 0.54413213000E-04 0.99999999786E+00 520 -0.14522880000E+01 -0.99338490000E+00 0.32740000000E+04 -0.71228722000E-04 -0.62947125000E-04 0.99999999548E+00 521 0.15447080000E+00 -0.55405240000E+00 0.32740000000E+04 -0.29792509000E-03 -0.18306528000E-03 0.99999993886E+00 522 -0.61407470000E+00 -0.17031550000E+00 0.32740000000E+04 -0.11020256000E-03 -0.48653892000E-03 0.99999987557E+00 523 -0.47754290000E+00 0.43659100000E+00 0.32740000000E+04 0.13124933000E-03 -0.10347351000E-03 0.99999998603E+00 524 0.69068660000E+00 0.29548800000E+00 0.32740000000E+04 -0.50196368000E-05 0.27653954000E-04 0.99999999961E+00 525 0.31382200000E+00 0.90427470000E+00 0.32740000000E+04 -0.42739877000E-03 -0.12428673000E-03 0.99999990094E+00 526 -0.16288530000E+00 0.12226180000E+01 0.32740000000E+04 0.51172865000E-04 0.15761616000E-03 0.99999998627E+00 527 -0.15372660000E+01 -0.10226780000E+00 0.32740000000E+04 0.76674747000E-04 0.91754599000E-04 0.99999999285E+00 528 -0.12386470000E+01 -0.38207540000E+00 0.32740000000E+04 -0.33826366000E-03 -0.73434319000E-04 0.99999994009E+00 529 -0.15139860000E+01 0.20308990000E+01 0.32740000000E+04 0.28415616000E-04 0.15095799000E-04 0.99999999948E+00 530 -0.15139860000E+01 0.20308990000E+01 0.32740000000E+04 0.28415616000E-04 0.15095799000E-04 0.99999999948E+00 531 0.15512360000E+01 0.13724620000E+01 0.32740000000E+04 -0.25354378000E-03 -0.42948996000E-04 0.99999996694E+00 532 0.52603430000E+00 -0.12785300000E+01 0.32740000000E+04 0.35833512000E-03 -0.11612433000E-03 0.99999992906E+00 533 0.47969690000E+00 0.14323780000E-01 0.32740000000E+04 -0.20825899000E-03 0.21490989000E-04 0.99999997808E+00 534 -0.40749890000E+00 -0.12424090000E+00 0.32740000000E+04 -0.45456126000E-03 0.21975902000E-03 0.99999987254E+00 535 0.11619390000E+01 0.12439260000E+01 0.32740000000E+04 0.49110712000E-03 0.39801397000E-03 0.99999980020E+00 536 0.70294630000E+00 0.58786670000E+00 0.32740000000E+04 0.33186434000E-03 -0.14184456000E-03 0.99999993487E+00 537 -0.91117910000E+00 0.67504110000E+00 0.32740000000E+04 -0.69044596000E-04 0.39571532000E-03 0.99999991932E+00 538 -0.10910460000E+01 -0.13587380000E+01 0.32740000000E+04 0.10053692000E-03 -0.46082219000E-03 0.99999988877E+00 539 -0.86368980000E+00 -0.52007130000E+00 0.32740000000E+04 -0.16131611000E-03 -0.10638113000E-04 0.99999998693E+00 540 0.10594180000E+01 0.13262650000E+01 0.32740000000E+04 0.71646347000E-04 0.71932111000E-04 0.99999999485E+00 541 -0.23227500000E+00 -0.12983790000E+01 0.32740000000E+04 -0.16418907000E-03 0.22825701000E-04 0.99999998626E+00 542 -0.23227500000E+00 -0.12983790000E+01 0.32740000000E+04 -0.16418907000E-03 0.22825701000E-04 0.99999998626E+00 543 -0.13395650000E+00 -0.66292660000E-01 0.32740000000E+04 -0.19476672000E-03 -0.26434485000E-04 0.99999998068E+00 544 -0.12675150000E+01 0.52878580000E+00 0.32740000000E+04 0.20145913000E-03 -0.49611938000E-03 0.99999985664E+00 545 0.62011590000E+00 0.67170143000E-02 0.32740000000E+04 0.37913845000E-03 -0.34763711000E-03 0.99999986770E+00 546 0.17657620000E+01 0.10569630000E+01 0.32740000000E+04 -0.22796376000E-05 -0.10840605000E-03 0.99999999412E+00 547 0.17851340000E+00 0.25948060000E+01 0.32740000000E+04 -0.59465357000E-04 0.34843073000E-04 0.99999999762E+00 548 0.18556200000E+01 0.94089230000E+00 0.32740000000E+04 -0.13928158000E-03 0.29490716000E-03 0.99999994682E+00 549 0.18556200000E+01 0.94089230000E+00 0.32740000000E+04 -0.13928158000E-03 0.29490716000E-03 0.99999994682E+00 550 -0.55195700000E+00 -0.67897470000E+00 0.32740000000E+04 -0.35223453000E-04 -0.35922375000E-03 0.99999993486E+00 551 0.23596340000E+00 0.16875920000E+01 0.32740000000E+04 0.56168541000E-04 -0.42875941000E-04 0.99999999750E+00 552 0.50504470000E+00 0.26734350000E+00 0.32740000000E+04 0.89398352000E-04 0.24808757000E-03 0.99999996523E+00 553 -0.34289270000E+00 -0.84571950000E+00 0.32740000000E+04 0.14784676000E-03 -0.30249479000E-03 0.99999994332E+00 554 0.16497180000E+01 0.43405870000E+00 0.32740000000E+04 0.18794035000E-04 -0.16605300000E-03 0.99999998604E+00 555 0.37445750000E+00 0.16645210000E+01 0.32740000000E+04 -0.24647638000E-03 0.16924087000E-03 0.99999995530E+00 556 -0.46827750000E+00 0.16531640000E+01 0.32740000000E+04 0.71518577000E-03 -0.46842347000E-03 0.99999963454E+00 557 0.12210670000E+01 0.12087270000E+01 0.32740000000E+04 0.25966862000E-03 -0.10639554000E-03 0.99999996063E+00 558 0.69273940000E+00 0.12791640000E+01 0.32740000000E+04 0.26403239000E-03 0.71889539000E-04 0.99999996256E+00 559 0.59691360000E+00 0.13822410000E+01 0.32740000000E+04 0.28691278000E-03 -0.13992205000E-03 0.99999994905E+00 560 0.30049360000E+00 -0.25441350000E+00 0.32740000000E+04 0.19336896000E-05 -0.14572059000E-03 0.99999998938E+00 561 -0.10384980000E+01 0.95714230000E+00 0.32740000000E+04 0.11349915000E-03 0.38484833000E-03 0.99999991950E+00 562 -0.10384980000E+01 0.95714230000E+00 0.32740000000E+04 0.11349915000E-03 0.38484833000E-03 0.99999991950E+00 563 -0.53914150000E+00 -0.10096930000E+01 0.32740000000E+04 0.23717881000E-03 -0.74661759000E-04 0.99999996909E+00 564 -0.11446680000E+01 0.19550760000E+01 0.32740000000E+04 -0.26403191000E-04 0.79914789000E-04 0.99999999646E+00 565 -0.10175430000E+01 0.16418030000E+01 0.32740000000E+04 0.18365527000E-04 -0.12991703000E-03 0.99999999139E+00 566 0.59591570000E+00 -0.16085390000E+01 0.32740000000E+04 0.23082622000E-03 0.27646704000E-03 0.99999993514E+00 567 -0.73160090000E+00 -0.82786560000E-01 0.32740000000E+04 0.10266597000E-03 -0.12200265000E-03 0.99999998729E+00 568 -0.15560760000E+00 0.15801900000E+01 0.32740000000E+04 -0.13846542000E-03 0.20628833000E-03 0.99999996914E+00 569 -0.79977090000E+00 0.35347700000E+00 0.32740000000E+04 -0.88192464000E-04 0.28999016000E-03 0.99999995406E+00 570 0.21842330000E+01 0.10636710000E+01 0.32740000000E+04 -0.15368871000E-03 0.14455814000E-03 0.99999997774E+00 571 -0.10490640000E+01 0.17529600000E+01 0.32740000000E+04 0.73642055000E-04 0.65132997000E-04 0.99999999517E+00 572 -0.46876200000E+00 0.14545800000E+01 0.32740000000E+04 0.23221837000E-03 -0.86119660000E-04 0.99999996933E+00 573 -0.35651950000E+00 -0.14979400000E+01 0.32740000000E+04 -0.15284005000E-03 0.62010891000E-04 0.99999998640E+00 574 0.11746540000E+01 0.30995560000E-01 0.32740000000E+04 -0.10985151000E-03 -0.21398166000E-03 0.99999997107E+00 575 0.99064560000E+00 0.12889210000E+01 0.32740000000E+04 -0.15358652000E-03 0.44872406000E-04 0.99999998720E+00 576 0.91682400000E-01 0.24029150000E+01 0.32740000000E+04 0.18842460000E-04 0.27031277000E-03 0.99999996329E+00 577 0.91682400000E-01 0.24029150000E+01 0.32740000000E+04 0.18842460000E-04 0.27031277000E-03 0.99999996329E+00 578 0.48992820000E+00 0.23156920000E+01 0.32740000000E+04 -0.32391731000E-03 0.15541693000E-03 0.99999993546E+00 579 0.97394680000E+00 -0.14063410000E+01 0.32740000000E+04 0.24494043000E-03 -0.50335960000E-03 0.99999984332E+00 580 0.10928120000E+01 0.86311610000E+00 0.32740000000E+04 -0.41946965000E-04 0.17266629000E-03 0.99999998421E+00 581 -0.56081890000E+00 -0.93412070000E-01 0.32740000000E+04 0.22843284000E-03 0.60397659000E-04 0.99999997209E+00 582 0.12514880000E-01 0.39446450000E+00 0.32740000000E+04 0.82996546000E-03 -0.86148473000E-03 0.99999928450E+00 583 -0.39707180000E+00 0.54832150000E+00 0.32740000000E+04 0.73402662000E-04 -0.11979145000E-03 0.99999999013E+00 584 0.70527430000E+00 0.16764630000E+01 0.32740000000E+04 0.30332897000E-03 0.10112220000E-03 0.99999994888E+00 585 -0.15340620000E+01 -0.71926490000E+00 0.32740000000E+04 0.60718379000E-04 -0.13630901000E-03 0.99999998887E+00 586 0.48643470000E+00 -0.19389380000E+01 0.32740000000E+04 0.23648499000E-03 -0.44724680000E-03 0.99999987202E+00 587 -0.15901950000E+00 0.55176880000E+00 0.32740000000E+04 0.37271154000E-05 0.21706881000E-03 0.99999997643E+00 588 0.63139160000E-01 0.12723270000E+01 0.32740000000E+04 -0.83575360000E-04 0.11015385000E-03 0.99999999044E+00 589 -0.13163430000E+01 0.87956910000E+00 0.32740000000E+04 0.18302276000E-03 0.33740877000E-03 0.99999992633E+00 590 -0.13163430000E+01 0.87956910000E+00 0.32740000000E+04 0.18302276000E-03 0.33740877000E-03 0.99999992633E+00 591 0.87908080000E+00 0.93393540000E+00 0.32740000000E+04 0.34571567000E-04 0.93318900000E-04 0.99999999505E+00 592 0.24173870000E+00 -0.22297990000E+01 0.32740000000E+04 -0.50475301000E-05 -0.44378699000E-04 0.99999999900E+00 593 0.15011210000E+01 0.24220880000E+01 0.32740000000E+04 0.42357974000E-03 0.22957931000E-03 0.99999988394E+00 594 -0.27529010000E+01 0.65620570000E-01 0.32740000000E+04 -0.19820388000E-03 0.38131827000E-03 0.99999990766E+00 595 -0.59765450000E+00 0.90333900000E-01 0.32740000000E+04 -0.31265753000E-03 0.78701400000E-04 0.99999994803E+00 596 -0.13284500000E+00 0.23902420000E+00 0.32740000000E+04 0.22607822000E-03 -0.12804751000E-03 0.99999996625E+00 597 0.43943550000E+00 -0.11886060000E+00 0.32740000000E+04 -0.40205585000E-04 -0.24937268000E-03 0.99999996810E+00 598 0.20617300000E+01 0.27445630000E+01 0.32740000000E+04 -0.27586363000E-03 -0.58063848000E-04 0.99999996026E+00 599 0.90010530000E+00 0.10154990000E+01 0.32740000000E+04 -0.11576048000E-03 -0.28173139000E-03 0.99999995361E+00 600 -0.10686310000E+01 0.11057100000E+01 0.32740000000E+04 -0.56469638000E-03 -0.10474082000E-03 0.99999983507E+00 601 -0.12248690000E+01 -0.18921470000E+00 0.32740000000E+04 -0.10830368000E-03 -0.18667277000E-03 0.99999997671E+00 602 -0.10924370000E+01 -0.10289820000E+01 0.32740000000E+04 0.29065058000E-03 -0.14949517000E-03 0.99999994659E+00 603 -0.71713770000E+00 -0.26610880000E+00 0.32740000000E+04 0.66998335000E-04 -0.22969860000E-04 0.99999999749E+00 604 -0.34687930000E+00 0.14586220000E+01 0.32740000000E+04 -0.19087872000E-03 0.49680856000E-03 0.99999985837E+00 605 -0.19209370000E+01 -0.64353200000E+00 0.32740000000E+04 -0.41427258000E-04 -0.65655395000E-03 0.99999978361E+00 606 -0.12727900000E+01 0.16325180000E+00 0.32740000000E+04 0.75140873000E-04 0.19073946000E-05 0.99999999718E+00 607 0.26557280000E+00 0.14686150000E+01 0.32740000000E+04 0.43147436000E-03 0.48185250000E-03 0.99999979082E+00 608 -0.22300790000E+01 0.44944930000E+00 0.32740000000E+04 -0.41856129000E-05 -0.26288079000E-03 0.99999996544E+00 609 -0.22300790000E+01 0.44944930000E+00 0.32740000000E+04 -0.41856129000E-05 -0.26288079000E-03 0.99999996544E+00 610 0.23788740000E+01 0.32822730000E+00 0.32740000000E+04 -0.72501389000E-04 0.18125217000E-03 0.99999998095E+00 611 0.42702260000E+00 0.41631500000E+00 0.32740000000E+04 0.22996124000E-03 0.94561306000E-04 0.99999996909E+00 612 0.41886020000E+00 0.18611480000E+01 0.32740000000E+04 -0.11407551000E-04 -0.12055824000E-03 0.99999999267E+00 613 0.98430540000E+00 0.85940120000E+00 0.32740000000E+04 0.30199668000E-03 -0.18235571000E-03 0.99999993777E+00 614 0.81406730000E+00 0.24585340000E+01 0.32740000000E+04 -0.23547810000E-03 -0.16377137000E-03 0.99999995886E+00 615 -0.14352380000E+01 -0.10495600000E+01 0.32740000000E+04 -0.13477993000E-03 -0.25700111000E-03 0.99999995789E+00 616 -0.14278130000E+01 0.22100070000E+01 0.32740000000E+04 -0.39854564000E-03 0.23318331000E-03 0.99999989339E+00 617 0.34108500000E+00 -0.10239870000E+01 0.32740000000E+04 -0.21165625000E-03 -0.80424776000E-04 0.99999997437E+00 618 0.90284150000E+00 -0.94445380000E+00 0.32740000000E+04 0.23150015000E-03 0.62069867000E-03 0.99999978057E+00 619 -0.42569580000E+00 0.14995710000E+00 0.32740000000E+04 0.17253701000E-03 0.44923941000E-04 0.99999998411E+00 620 0.90982940000E-01 0.15968200000E+01 0.32740000000E+04 -0.11004977000E-03 -0.89401357000E-04 0.99999998995E+00 621 -0.15394300000E+01 0.19756740000E+01 0.32740000000E+04 -0.23530858000E-04 -0.17840357000E-03 0.99999998381E+00 622 -0.12842160000E+01 0.82061620000E+00 0.32740000000E+04 -0.66339606000E-04 0.13430453000E-03 0.99999998878E+00 623 -0.51826830000E+00 0.45353670000E-01 0.32740000000E+04 -0.30816314000E-04 -0.29953211000E-03 0.99999995467E+00 624 -0.51826830000E+00 0.45353670000E-01 0.32740000000E+04 -0.30816314000E-04 -0.29953211000E-03 0.99999995467E+00 625 -0.10862120000E+01 -0.94594390000E-01 0.32740000000E+04 -0.84766187000E-04 0.99587451000E-04 0.99999999145E+00 626 0.17434800000E+01 0.63550750000E+00 0.32740000000E+04 -0.15777787000E-03 -0.94115021000E-04 0.99999998312E+00 627 0.11756200000E+01 0.37632630000E+00 0.32740000000E+04 0.39450411000E-03 0.24332348000E-03 0.99999989258E+00 628 0.81263390000E+00 0.20631180000E+01 0.32740000000E+04 0.10663732000E-03 0.76736520000E-04 0.99999999137E+00 629 -0.16725810000E+00 0.93356150000E+00 0.32740000000E+04 0.56020006000E-04 0.29039432000E-03 0.99999995627E+00 630 -0.16158740000E+01 -0.68384410000E+00 0.32740000000E+04 -0.11065627000E-03 -0.64065313000E-03 0.99999978866E+00 631 0.36838270000E+00 0.19165300000E+01 0.32740000000E+04 0.90697897000E-03 -0.34257447000E-03 0.99999953002E+00 632 -0.16660470000E+01 0.19677930000E+01 0.32740000000E+04 0.91578768000E-04 0.26134505000E-04 0.99999999547E+00 633 0.74687360000E+00 -0.73512220000E+00 0.32740000000E+04 -0.96782525000E-04 -0.60537644000E-04 0.99999999348E+00 634 -0.42372170000E+00 0.14512320000E+01 0.32740000000E+04 0.11261010000E-03 -0.16518260000E-03 0.99999998002E+00 635 -0.79834190000E+00 0.16637770000E+01 0.32740000000E+04 0.59486665000E-04 -0.12131665000E-03 0.99999999087E+00 636 -0.17998150000E+01 -0.16050750000E+01 0.32740000000E+04 0.18790252000E-03 -0.45131655000E-04 0.99999998133E+00 637 0.56768980000E+00 -0.26605620000E+00 0.32740000000E+04 0.39209972000E-04 0.82086823000E-04 0.99999999586E+00 638 0.56768980000E+00 -0.26605620000E+00 0.32740000000E+04 0.39209972000E-04 0.82086823000E-04 0.99999999586E+00 639 -0.71926540000E+00 0.91483870000E+00 0.32740000000E+04 -0.40509568000E-06 -0.44778915000E-03 0.99999989974E+00 640 0.11178950000E+01 0.13669360000E+01 0.32740000000E+04 -0.22272245000E-03 0.21161274000E-03 0.99999995281E+00 641 0.80854710000E+00 -0.10696540000E+00 0.32740000000E+04 -0.48526792000E-04 -0.31325305000E-03 0.99999994976E+00 642 0.23054840000E+01 -0.18922200000E+00 0.32740000000E+04 0.37041909000E-03 -0.28006619000E-03 0.99999989218E+00 643 -0.33397820000E+00 -0.71184520000E+00 0.32740000000E+04 -0.14721308000E-03 0.20158996000E-04 0.99999998896E+00 644 -0.72875290000E+00 0.54523680000E+00 0.32740000000E+04 -0.12787676000E-02 -0.36819536000E-04 0.99999918170E+00 645 -0.95648270000E-01 0.67477250000E+00 0.32740000000E+04 0.20256119000E-04 0.14631294000E-03 0.99999998909E+00 646 -0.96518980000E+00 -0.16684160000E+00 0.32740000000E+04 -0.12965313000E-03 -0.19151079000E-03 0.99999997326E+00 647 0.23704920000E+00 0.45655510000E+00 0.32740000000E+04 0.21822406000E-03 -0.16047295000E-03 0.99999996331E+00 648 0.49863090000E-01 0.76604060000E+00 0.32740000000E+04 -0.15101771000E-03 0.19389785000E-03 0.99999996980E+00 649 0.12045520000E+01 -0.14107930000E+01 0.32740000000E+04 0.37532701000E-03 -0.23618720000E-03 0.99999990167E+00 650 0.21560580000E+01 -0.13188690000E+01 0.32740000000E+04 0.51638414000E-03 -0.40116458000E-03 0.99999978621E+00 651 -0.18727540000E+01 -0.14393860000E+01 0.32740000000E+04 -0.44940873000E-04 -0.11347502000E-03 0.99999999255E+00 652 -0.18727540000E+01 -0.14393860000E+01 0.32740000000E+04 -0.44940873000E-04 -0.11347502000E-03 0.99999999255E+00 653 -0.10046860000E+01 -0.36777590000E+00 0.32740000000E+04 -0.14189577000E-03 -0.90335932000E-04 0.99999998585E+00 654 0.93830500000E+00 -0.34113530000E+00 0.32740000000E+04 0.87079685000E-03 -0.57984802000E-04 0.99999961918E+00 655 0.28453000000E+01 0.10277130000E+01 0.32740000000E+04 -0.20471239000E-03 0.23134089000E-03 0.99999995229E+00 656 -0.41192360000E+00 -0.91035650000E+00 0.32740000000E+04 0.28469204000E-03 -0.59288018000E-03 0.99999978372E+00 657 0.27769800000E+00 -0.12411920000E+01 0.32740000000E+04 -0.96282529000E-04 -0.39332858000E-03 0.99999991801E+00 658 -0.16067320000E+01 -0.28268880000E+00 0.32740000000E+04 -0.40879728000E-04 -0.17572374000E-04 0.99999999901E+00 659 -0.25034330000E+00 0.19784090000E+01 0.32740000000E+04 -0.27041123000E-03 -0.40906292000E-03 0.99999987977E+00 660 0.12420990000E+01 0.42574880000E+00 0.32740000000E+04 0.18497671000E-03 0.15823061000E-03 0.99999997037E+00 661 0.20211040000E+00 0.68771210000E+00 0.32740000000E+04 -0.88462111000E-05 0.68665468000E-04 0.99999999760E+00 662 0.17272420000E+01 0.63144160000E+00 0.32740000000E+04 -0.99609097000E-04 -0.20874904000E-03 0.99999997325E+00 663 0.42955220000E-02 0.18850940000E+01 0.32740000000E+04 0.12939012000E-03 0.22249566000E-03 0.99999996688E+00 664 0.71818520000E+00 0.16919180000E+01 0.32740000000E+04 0.31424363000E-03 -0.13755841000E-03 0.99999994116E+00 665 -0.92224850000E+00 0.43606830000E+00 0.32740000000E+04 -0.11043796000E-03 -0.12295373000E-03 0.99999998634E+00 666 -0.15623690000E-01 0.15700320000E+01 0.32740000000E+04 0.13153229000E-03 0.28247366000E-03 0.99999995145E+00 667 -0.23288390000E+00 0.24516110000E+01 0.32740000000E+04 0.29618194000E-03 0.50513456000E-04 0.99999995486E+00 668 0.42149130000E-01 0.17967980000E+01 0.32740000000E+04 -0.96158961000E-04 -0.40555293000E-04 0.99999999455E+00 669 -0.65199900000E+00 -0.17873510000E+01 0.32740000000E+04 -0.10925228000E-03 -0.36680308000E-03 0.99999992676E+00 670 -0.10731120000E+00 0.15796950000E+01 0.32740000000E+04 -0.71263574000E-04 -0.10733234000E-03 0.99999999170E+00 671 -0.10731120000E+00 0.15796950000E+01 0.32740000000E+04 -0.71263574000E-04 -0.10733234000E-03 0.99999999170E+00 672 0.12452270000E+00 0.36407800000E+00 0.32740000000E+04 -0.39619097000E-03 -0.16446109000E-03 0.99999990799E+00 673 -0.83861140000E+00 0.30835650000E+00 0.32740000000E+04 0.80411854000E-04 0.29195471000E-04 0.99999999634E+00 674 -0.24605770000E+00 -0.81289520000E+00 0.32740000000E+04 -0.35131874000E-04 -0.25536021000E-03 0.99999996678E+00 675 0.19806770000E+01 -0.10798640000E+01 0.32740000000E+04 -0.29527395000E-04 -0.24071481000E-03 0.99999997059E+00 676 -0.26916230000E+00 0.19777610000E+01 0.32740000000E+04 -0.42621366000E-04 0.56759903000E-03 0.99999983801E+00 677 0.21821930000E+00 0.23333920000E+01 0.32740000000E+04 -0.22215834000E-03 0.18182081000E-03 0.99999995879E+00 678 -0.73068540000E+00 0.18777790000E+01 0.32740000000E+04 -0.18906798000E-04 -0.21130643000E-03 0.99999997750E+00 679 0.54031670000E+00 0.10828820000E+01 0.32740000000E+04 -0.23325044000E-03 0.99232966000E-04 0.99999996787E+00 680 0.16098670000E+01 -0.30387660000E+00 0.32740000000E+04 0.26024265000E-05 0.53279800000E-03 0.99999985806E+00 681 -0.33063600000E+00 0.14989690000E+00 0.32740000000E+04 -0.23359577000E-03 -0.30086935000E-03 0.99999992746E+00 682 -0.19620030000E+00 0.11942350000E+01 0.32740000000E+04 -0.30622388000E-04 0.30247109000E-04 0.99999999907E+00 683 -0.65691950000E+00 0.14998370000E+01 0.32740000000E+04 -0.59983082000E-04 0.43098884000E-04 0.99999999727E+00 684 -0.11957910000E+01 -0.10658790000E+01 0.32740000000E+04 0.12933575000E-03 -0.92476272000E-04 0.99999998736E+00 685 -0.11957910000E+01 -0.10658790000E+01 0.32740000000E+04 0.12933575000E-03 -0.92476272000E-04 0.99999998736E+00 686 -0.55967740000E+00 -0.72188220000E+00 0.32740000000E+04 0.44018510000E-03 -0.13844081000E-03 0.99999989354E+00 687 -0.10383090000E+01 -0.24167280000E+00 0.32740000000E+04 0.11480325000E-04 -0.28845429000E-03 0.99999995833E+00 688 0.45838180000E+00 0.10800710000E+01 0.32740000000E+04 0.41274412000E-03 -0.26658662000E-06 0.99999991482E+00 689 0.14255320000E+01 -0.19015380000E+00 0.32740000000E+04 -0.21937194000E-03 0.46814675000E-04 0.99999997484E+00 690 0.42414060000E+00 0.48463700000E-01 0.32740000000E+04 -0.22372427000E-03 -0.78277801000E-04 0.99999997191E+00 691 0.74495930000E+00 0.53331710000E-01 0.32740000000E+04 0.38291982000E-04 -0.10789310000E-03 0.99999999345E+00 692 -0.30855410000E+00 0.19369930000E+01 0.32740000000E+04 0.28117289000E-03 -0.31486384000E-03 0.99999991090E+00 693 -0.12479060000E+01 0.27392420000E+00 0.32740000000E+04 -0.31220197000E-03 0.27724987000E-03 0.99999991283E+00 694 0.39589350000E+00 0.64319270000E+00 0.32740000000E+04 0.28778275000E-03 -0.16922466000E-04 0.99999995845E+00 695 0.22783570000E+00 -0.69249320000E+00 0.32740000000E+04 0.15459595000E-03 0.83465457000E-04 0.99999998457E+00 696 0.30813080000E+00 0.76578690000E+00 0.32740000000E+04 -0.17849453000E-03 0.86504355000E-04 0.99999998033E+00 697 -0.14317580000E+01 0.35737730000E+00 0.32740000000E+04 0.22290076000E-04 -0.37052637000E-03 0.99999993111E+00 698 0.35951740000E+00 0.11540070000E+01 0.32740000000E+04 -0.14557602000E-03 0.14026137000E-03 0.99999997957E+00 699 -0.26270540000E+00 -0.55647420000E+00 0.32740000000E+04 0.11377266000E-03 -0.15648763000E-03 0.99999998128E+00 700 -0.19766790000E+01 -0.83124480000E+00 0.32740000000E+04 0.14613895000E-03 -0.92118091000E-04 0.99999998508E+00 701 -0.17778790000E+00 0.68967650000E+00 0.32740000000E+04 0.79778903000E-04 -0.72169736000E-04 0.99999999421E+00 702 -0.11223940000E+01 0.14853280000E+01 0.32740000000E+04 0.48644892000E-04 -0.14084404000E-03 0.99999998890E+00 703 0.15701750000E+00 -0.63146920000E+00 0.32740000000E+04 0.24813775000E-03 -0.20560746000E-03 0.99999994808E+00 704 -0.12725690000E+01 0.25362870000E+00 0.32740000000E+04 0.51173400000E-04 -0.37149244000E-03 0.99999992969E+00 705 -0.92383290000E+00 0.18815850000E+01 0.32740000000E+04 0.57120888000E-04 0.48757560000E-03 0.99999987950E+00 706 0.30708130000E+00 0.25285740000E-01 0.32740000000E+04 -0.18833055000E-03 -0.18554699000E-03 0.99999996505E+00 707 0.77302280000E+00 -0.39004820000E+00 0.32740000000E+04 0.18248976000E-03 -0.46013159000E-03 0.99999987749E+00 708 -0.12517380000E+01 -0.40829830000E+00 0.32740000000E+04 0.16637160000E-03 -0.50211570000E-03 0.99999986010E+00 709 -0.75602170000E+00 0.12770080000E+01 0.32740000000E+04 0.20385772000E-03 0.28051782000E-03 0.99999993988E+00 710 -0.98610530000E+00 0.10265700000E+01 0.32740000000E+04 -0.84549632000E-04 0.46099463000E-03 0.99999989017E+00 711 0.20302670000E+01 0.21840940000E+01 0.32740000000E+04 -0.55805536000E-04 0.43441050000E-03 0.99999990409E+00 712 -0.30838800000E+00 0.15413200000E+01 0.32740000000E+04 0.19265406000E-03 0.53481030000E-03 0.99999983843E+00 713 0.10235940000E+01 0.40982480000E-01 0.32740000000E+04 -0.29651160000E-03 0.84605264000E-04 0.99999995246E+00 714 -0.29280890000E+00 0.10948270000E+00 0.32740000000E+04 0.56417211000E-03 -0.81617516000E-04 0.99999983752E+00 715 -0.11490320000E+01 0.16478550000E+01 0.32740000000E+04 0.48908943000E-04 0.22408842000E-03 0.99999997370E+00 716 -0.60606160000E+00 0.72599100000E-01 0.32740000000E+04 0.23905172000E-03 -0.27678121000E-03 0.99999993312E+00 717 -0.24545260000E+01 -0.12968580000E+01 0.32740000000E+04 0.20115297000E-05 -0.21096875000E-03 0.99999997774E+00 718 0.39409540000E+00 -0.76201190000E+00 0.32740000000E+04 -0.41633291000E-04 -0.50143251000E-03 0.99999987342E+00 719 0.13650360000E+01 0.42706600000E+00 0.32740000000E+04 -0.13701485000E-03 0.89682442000E-04 0.99999998659E+00 720 -0.14584820000E+01 0.13481800000E+01 0.32740000000E+04 0.43987126000E-04 0.71576229000E-04 0.99999999647E+00 721 0.74537640000E+00 0.64681610000E+00 0.32740000000E+04 -0.23313874000E-03 0.63802127000E-03 0.99999976929E+00 722 -0.86071370000E+00 0.10325490000E+01 0.32740000000E+04 -0.59437771000E-04 0.17515560000E-03 0.99999998289E+00 723 -0.17957880000E+01 -0.37572080000E+00 0.32740000000E+04 -0.56077959000E-03 -0.61742103000E-04 0.99999984086E+00 724 0.91701890000E+00 -0.90683590000E+00 0.32740000000E+04 -0.50065442000E-04 -0.10035872000E-03 0.99999999371E+00 725 0.27888980000E+00 -0.36966590000E+00 0.32740000000E+04 -0.97321965000E-04 -0.30587573000E-03 0.99999994848E+00 726 0.10751630000E+00 -0.43736270000E+00 0.32740000000E+04 0.14851672000E-03 -0.33964406000E-03 0.99999993129E+00 727 -0.79665650000E+00 0.17244210000E+01 0.32740000000E+04 0.37823708000E-03 -0.38913731000E-04 0.99999992771E+00 728 0.26993950000E+00 -0.15488930000E+01 0.32740000000E+04 0.26170435000E-05 -0.12805685000E-03 0.99999999180E+00 729 -0.97809390000E+00 0.14501780000E+01 0.32740000000E+04 0.57435154000E-04 -0.12802250000E-03 0.99999999016E+00 730 -0.97809390000E+00 0.14501780000E+01 0.32740000000E+04 0.57435154000E-04 -0.12802250000E-03 0.99999999016E+00 731 -0.82979340000E+00 -0.68767320000E+00 0.32740000000E+04 -0.29155182000E-04 -0.11863321000E-03 0.99999999254E+00 732 -0.85737840000E+00 0.68488360000E+00 0.32740000000E+04 -0.13796568000E-03 0.16272950000E-03 0.99999997724E+00 733 0.11598790000E+01 0.72563430000E+00 0.32740000000E+04 -0.30012903000E-03 -0.32891560000E-03 0.99999990087E+00 734 -0.40386400000E+00 -0.67502250000E+00 0.32740000000E+04 -0.67370303000E-04 -0.26529393000E-03 0.99999996254E+00 735 0.35908430000E+00 0.78232760000E+00 0.32740000000E+04 0.26518463000E-04 -0.24527108000E-03 0.99999996957E+00 736 -0.10993630000E+01 -0.94357360000E+00 0.32740000000E+04 -0.25147203000E-03 0.47298134000E-04 0.99999996726E+00 737 -0.19429860000E+01 0.17361730000E+01 0.32740000000E+04 0.50920404000E-04 0.22223884000E-03 0.99999997401E+00 738 0.12562360000E+01 0.13457570000E+01 0.32740000000E+04 -0.19355514000E-03 0.15611538000E-03 0.99999996908E+00 739 0.13383520000E+00 -0.54664130000E+00 0.32740000000E+04 0.51767245000E-03 -0.29568427000E-03 0.99999982229E+00 740 0.10774530000E+00 0.19240650000E+01 0.32740000000E+04 0.52768672000E-04 0.63685809000E-04 0.99999999658E+00 741 0.66502080000E+00 0.11872280000E+01 0.32740000000E+04 -0.24709425000E-04 0.34619714000E-03 0.99999993977E+00 742 -0.13964780000E+01 0.33541730000E+00 0.32740000000E+04 0.10242678000E-03 -0.10524267000E-03 0.99999998922E+00 743 0.13759090000E+01 0.22557200000E+00 0.32740000000E+04 -0.17555212000E-03 0.45374324000E-03 0.99999988165E+00 744 -0.52292970000E+00 0.88692630000E+00 0.32740000000E+04 0.34372188000E-03 -0.25226286000E-03 0.99999990911E+00 745 -0.11010260000E+01 -0.13602700000E+00 0.32740000000E+04 0.62869518000E-03 -0.67256056000E-04 0.99999980011E+00 746 -0.89101610000E+00 -0.60088050000E+00 0.32740000000E+04 0.82610910000E-04 0.26283664000E-04 0.99999999624E+00 747 -0.13374490000E+00 0.23846150000E+00 0.32740000000E+04 0.31728568000E-03 0.15340823000E-03 0.99999993790E+00 748 -0.14336410000E+01 -0.70268490000E-01 0.32740000000E+04 0.86359512000E-04 0.23132721000E-03 0.99999996951E+00 749 0.35123690000E+00 0.54816490000E+00 0.32740000000E+04 -0.38306600000E-04 0.14276404000E-03 0.99999998908E+00 750 0.15204400000E+01 0.16818550000E+01 0.32740000000E+04 -0.62574756000E-04 0.32211433000E-03 0.99999994616E+00 751 -0.62517600000E+00 0.18015930000E+01 0.32740000000E+04 -0.70366084000E-04 0.44368018000E-04 0.99999999654E+00 752 0.10981670000E+01 0.74204340000E+00 0.32740000000E+04 0.19969283000E-03 0.18959583000E-03 0.99999996209E+00 753 -0.15478200000E+01 0.85250780000E+00 0.32740000000E+04 -0.29515990000E-03 0.27893219000E-03 0.99999991754E+00 754 -0.15478200000E+01 0.85250780000E+00 0.32740000000E+04 -0.29515990000E-03 0.27893219000E-03 0.99999991754E+00 755 -0.81825980000E+00 0.16617830000E+01 0.32740000000E+04 0.18347143000E-03 -0.21406460000E-04 0.99999998294E+00 756 0.60511150000E+00 -0.75617900000E+00 0.32740000000E+04 0.23876981000E-04 -0.23622569000E-03 0.99999997181E+00 757 0.93133210000E-01 -0.30158430000E+00 0.32740000000E+04 -0.48373427000E-03 -0.52172109000E-03 0.99999974690E+00 758 0.15354260000E+01 0.20520920000E+00 0.32740000000E+04 0.37314722000E-03 0.14554901000E-03 0.99999991979E+00 759 0.17887160000E+01 0.15040390000E+01 0.32740000000E+04 0.20828120000E-03 -0.50991090000E-04 0.99999997701E+00 760 -0.60683160000E+00 -0.69774760000E+00 0.32740000000E+04 0.15556849000E-03 -0.35255094000E-03 0.99999992575E+00 761 -0.92215370000E+00 0.12290050000E+01 0.32740000000E+04 0.94377792000E-04 0.19276077000E-03 0.99999997697E+00 762 0.11745020000E+00 -0.12203160000E+01 0.32740000000E+04 -0.15947839000E-04 0.14344980000E-04 0.99999999977E+00 763 -0.66923650000E+00 0.14157860000E+00 0.32740000000E+04 0.81083970000E-04 0.33267923000E-04 0.99999999616E+00 764 0.10881700000E+01 0.16416720000E+00 0.32740000000E+04 -0.24892166000E-03 -0.34911057000E-03 0.99999990808E+00 765 -0.63743220000E+00 0.12625550000E+01 0.32740000000E+04 0.69212270000E-04 0.23113366000E-03 0.99999997089E+00 766 -0.94388730000E+00 0.38878550000E-01 0.32740000000E+04 -0.10148079000E-03 -0.46612950000E-04 0.99999999376E+00 767 -0.78043010000E+00 -0.45843890000E+00 0.32740000000E+04 -0.50036833000E-04 -0.29008227000E-03 0.99999995667E+00 768 0.61974310000E-01 0.21486200000E+01 0.32740000000E+04 0.17602796000E-03 -0.23133720000E-03 0.99999995775E+00 769 -0.97458410000E+00 -0.82203040000E+00 0.32740000000E+04 0.94811876000E-04 0.40668154000E-04 0.99999999468E+00 770 0.37385670000E+00 0.40297770000E+00 0.32740000000E+04 0.17299360000E-03 0.15812782000E-03 0.99999997253E+00 771 0.11147070000E+01 0.20038250000E+01 0.32740000000E+04 -0.25745443000E-03 -0.14570792000E-03 0.99999995624E+00 772 0.56698310000E+00 0.11386110000E+01 0.32740000000E+04 -0.18423501000E-04 -0.18232331000E-04 0.99999999966E+00 773 0.19246750000E+01 -0.14531620000E+01 0.32740000000E+04 0.73666906000E-03 -0.35105390000E-03 0.99999966704E+00 774 -0.55202950000E-01 0.19934370000E+00 0.32740000000E+04 -0.10970194000E-03 -0.72422416000E-04 0.99999999136E+00 775 0.95267290000E+00 0.30341050000E+00 0.32740000000E+04 0.32086606000E-04 -0.18254700000E-03 0.99999998282E+00 776 0.13515790000E+01 0.16519850000E+01 0.32740000000E+04 -0.21125437000E-03 0.26633887000E-03 0.99999994222E+00 777 -0.15461740000E+00 -0.28433840000E+00 0.32740000000E+04 0.35499834000E-03 -0.47663558000E-04 0.99999993585E+00 778 -0.14571950000E-01 0.11862140000E+01 0.32740000000E+04 -0.11443260000E-03 0.40760761000E-03 0.99999991038E+00 779 -0.10514480000E+01 -0.12308200000E+01 0.32740000000E+04 0.27001312000E-03 -0.76153337000E-04 0.99999996065E+00 780 -0.86888510000E+00 0.64775050000E-01 0.32740000000E+04 -0.91838534000E-04 -0.39161005000E-04 0.99999999502E+00 781 -0.16895190000E+01 -0.84815240000E+00 0.32740000000E+04 -0.78224810000E-04 -0.33701028000E-03 0.99999994015E+00 782 -0.13925230000E+01 -0.11279970000E+01 0.32740000000E+04 -0.16727638000E-03 0.45051060000E-04 0.99999998499E+00 783 -0.79908670000E+00 0.19567360000E+01 0.32740000000E+04 0.83562692000E-04 -0.67400259000E-04 0.99999999424E+00 784 -0.70134160000E+00 0.83578640000E+00 0.32740000000E+04 0.92037008000E-04 0.34635374000E-03 0.99999993578E+00 785 0.15328410000E+01 0.81611260000E+00 0.32740000000E+04 -0.15383195000E-03 -0.29841310000E-03 0.99999994364E+00 786 -0.34059060000E+00 -0.55698830000E+00 0.32740000000E+04 -0.28707764000E-04 -0.11949214000E-03 0.99999999245E+00 787 -0.34059060000E+00 -0.55698830000E+00 0.32740000000E+04 -0.28707764000E-04 -0.11949214000E-03 0.99999999245E+00 788 0.10614560000E-01 0.18692330000E+00 0.32740000000E+04 0.25867205000E-03 -0.97486685000E-04 0.99999996179E+00 789 -0.11372460000E+01 -0.65073090000E+00 0.32740000000E+04 0.17754018000E-03 -0.31984074000E-03 0.99999993309E+00 790 0.11707480000E+00 -0.64577370000E+00 0.32740000000E+04 0.17045281000E-03 -0.72954186000E-04 0.99999998281E+00 791 0.48927030000E+00 0.50473000000E+00 0.32740000000E+04 -0.38382437000E-04 0.33337181000E-03 0.99999994370E+00 792 0.20234410000E+00 -0.42335760000E+00 0.32740000000E+04 0.17522874000E-03 -0.70551148000E-03 0.99999973577E+00 793 0.19950210000E+01 0.38881340000E+00 0.32740000000E+04 -0.73778785000E-04 -0.17281577000E-03 0.99999998235E+00 794 0.24804230000E-01 -0.10888070000E+01 0.32740000000E+04 -0.29454835000E-04 -0.44254446000E-03 0.99999990164E+00 795 -0.92760110000E+00 0.15842640000E+01 0.32740000000E+04 0.17253113000E-03 0.44534370000E-03 0.99999988595E+00 796 -0.70283760000E+00 -0.17513580000E+01 0.32740000000E+04 -0.32186115000E-04 0.79217716000E-05 0.99999999945E+00 797 -0.70283760000E+00 -0.17513580000E+01 0.32740000000E+04 -0.32186115000E-04 0.79217716000E-05 0.99999999945E+00 798 -0.21947210000E+01 0.13524530000E+01 0.32740000000E+04 -0.30159141000E-03 0.57023681000E-04 0.99999995290E+00 799 0.10300370000E+01 0.16909230000E+01 0.32740000000E+04 -0.16024447000E-03 0.43042173000E-03 0.99999989453E+00 800 0.42516160000E+00 0.25357460000E+01 0.32740000000E+04 -0.19870685000E-03 0.27606997000E-03 0.99999994215E+00 801 0.18166530000E+01 0.11291540000E+01 0.32740000000E+04 -0.24381904000E-03 0.18889486000E-03 0.99999995244E+00 802 0.12356940000E+01 -0.10432300000E+01 0.32740000000E+04 0.33492624000E-03 -0.33858727000E-03 0.99999988659E+00 803 -0.13217800000E+01 0.62465730000E+00 0.32740000000E+04 0.31946220000E-04 0.20528359000E-03 0.99999997842E+00 804 0.98238820000E+00 0.48560360000E+00 0.32740000000E+04 -0.10267088000E-03 0.48902559000E-04 0.99999999353E+00 805 -0.21473050000E+00 0.15036540000E+01 0.32740000000E+04 -0.10119045000E-03 0.30860788000E-03 0.99999994726E+00 806 -0.10034490000E+01 -0.84907830000E+00 0.32740000000E+04 -0.24779880000E-04 -0.43094673000E-03 0.99999990684E+00 807 -0.10034490000E+01 -0.84907830000E+00 0.32740000000E+04 -0.24779880000E-04 -0.43094673000E-03 0.99999990684E+00 808 -0.18971350000E+01 0.26621900000E+00 0.32740000000E+04 -0.79257428000E-04 -0.26323469000E-03 0.99999996221E+00 809 -0.10188010000E+01 -0.74772000000E+00 0.32740000000E+04 0.19278879000E-03 -0.46775729000E-03 0.99999987202E+00 810 0.71485100000E+00 0.28124180000E+00 0.32740000000E+04 -0.10560310000E-03 -0.25301820000E-03 0.99999996241E+00 811 -0.16388490000E+00 0.64702410000E+00 0.32740000000E+04 0.54432905000E-04 -0.58785681000E-04 0.99999999679E+00 812 0.69744180000E+00 0.13263100000E+01 0.32740000000E+04 -0.21342080000E-03 0.97484372000E-04 0.99999997247E+00 813 0.39823860000E+00 -0.14662680000E+01 0.32740000000E+04 0.26669892000E-03 -0.25169805000E-03 0.99999993276E+00 814 -0.24568920000E+00 0.15395730000E+01 0.32740000000E+04 0.10639503000E-03 0.51874458000E-03 0.99999985979E+00 815 -0.83558240000E+00 0.22884340000E+01 0.32740000000E+04 0.20261691000E-03 -0.64342647000E-04 0.99999997740E+00 816 0.17357200000E+01 -0.25564560000E+00 0.32740000000E+04 -0.17895875000E-03 -0.12113457000E-03 0.99999997665E+00 817 0.96461380000E+00 0.54031100000E+00 0.32740000000E+04 0.29573133000E-04 -0.56321045000E-04 0.99999999798E+00 818 0.96461380000E+00 0.54031100000E+00 0.32740000000E+04 0.29573133000E-04 -0.56321045000E-04 0.99999999798E+00 819 -0.85101240000E+00 0.11594080000E+01 0.32740000000E+04 0.11127228000E-03 0.40490599000E-03 0.99999991183E+00 820 -0.27082500000E+00 0.69549300000E+00 0.32740000000E+04 0.17885907000E-03 -0.41649466000E-04 0.99999998314E+00 821 -0.80232500000E+00 -0.10816410000E+01 0.32740000000E+04 0.34025041000E-03 -0.45324725000E-03 0.99999983940E+00 822 -0.19908450000E+01 -0.60692360000E+00 0.32740000000E+04 -0.55123295000E-04 -0.68712025000E-03 0.99999976241E+00 823 -0.16430440000E+00 0.52557330000E+00 0.32740000000E+04 0.88186520000E-04 -0.15556529000E-03 0.99999998401E+00 824 0.16526670000E+01 0.22488960000E+00 0.32740000000E+04 -0.18688296000E-03 -0.19663032000E-03 0.99999996321E+00 825 0.16526670000E+01 0.22488960000E+00 0.32740000000E+04 -0.18688296000E-03 -0.19663032000E-03 0.99999996321E+00 826 0.83649120000E+00 0.19062710000E-01 0.32740000000E+04 0.35191371000E-03 0.21458037000E-03 0.99999991506E+00 827 -0.20431170000E+01 -0.22630610000E+00 0.32740000000E+04 -0.18552071000E-03 -0.32674585000E-03 0.99999992941E+00 828 0.65761240000E+00 0.74235160000E+00 0.32740000000E+04 -0.24765756000E-03 -0.25304562000E-04 0.99999996901E+00 829 0.25593390000E-01 0.66693010000E+00 0.32740000000E+04 -0.84788240000E-04 0.16041688000E-03 0.99999998354E+00 830 0.71392420000E+00 -0.12908140000E+01 0.32740000000E+04 -0.22795412000E-03 -0.53536445000E-04 0.99999997259E+00 831 0.15424840000E+01 0.11790650000E+01 0.32740000000E+04 -0.40249911000E-03 0.83404666000E-04 0.99999991552E+00 832 0.15261050000E+01 0.12027650000E+01 0.32740000000E+04 -0.25251413000E-04 0.24967549000E-04 0.99999999937E+00 833 0.60731430000E+00 -0.10229700000E+01 0.32740000000E+04 -0.57030582000E-04 0.34450696000E-03 0.99999993903E+00 834 0.11920100000E+01 -0.11345850000E+01 0.32740000000E+04 0.15019393000E-03 -0.14008534000E-03 0.99999997891E+00 835 -0.10876030000E+00 0.62642760000E+00 0.32740000000E+04 0.13113261000E-03 0.53525047000E-04 0.99999998997E+00 836 0.34607990000E+00 0.10343650000E+01 0.32740000000E+04 -0.13675277000E-03 0.35837138000E-03 0.99999992643E+00 837 0.19323740000E+01 0.18052880000E+01 0.32740000000E+04 -0.93327260000E-04 -0.31727588000E-04 0.99999999514E+00 838 -0.27199450000E+01 0.13818480000E+00 0.32740000000E+04 -0.19216010000E-04 -0.13494970000E-03 0.99999999071E+00 839 0.12144960000E+00 0.79314360000E+00 0.32740000000E+04 0.59778785000E-03 0.77101300000E-04 0.99999981835E+00 840 -0.13595490000E+01 -0.25209630000E+00 0.32740000000E+04 -0.16026436000E-03 -0.12684763000E-03 0.99999997911E+00 841 -0.16383900000E+01 0.10532200000E+01 0.32740000000E+04 -0.11729190000E-04 -0.33497967000E-04 0.99999999937E+00 842 -0.75931410000E+00 0.55025090000E+00 0.32740000000E+04 -0.95427284000E-04 -0.48213202000E-04 0.99999999428E+00 843 0.16316770000E+01 0.10878670000E+01 0.32740000000E+04 0.64264572000E-06 -0.14184474000E-03 0.99999998994E+00 844 -0.28307910000E+00 -0.56541420000E+00 0.32740000000E+04 0.12719311000E-03 -0.81230952000E-04 0.99999998861E+00 845 -0.18135470000E+01 -0.16776870000E-01 0.32740000000E+04 -0.16482576000E-03 -0.24978799000E-03 0.99999995522E+00 846 0.17243580000E+01 0.16136180000E+01 0.32740000000E+04 -0.15040013000E-03 -0.46264337000E-04 0.99999998762E+00 847 -0.79758880000E+00 0.22769040000E+01 0.32740000000E+04 0.18108054000E-03 0.30588923000E-03 0.99999993682E+00 848 0.21530000000E+01 0.12737400000E+01 0.32740000000E+04 -0.14952187000E-03 -0.32081869000E-04 0.99999998831E+00 849 -0.41485500000E+00 -0.11213570000E+01 0.32740000000E+04 -0.75358403000E-04 -0.34202787000E-03 0.99999993867E+00 850 -0.21073630000E+01 0.64354550000E+00 0.32740000000E+04 -0.66975350000E-04 -0.27539094000E-04 0.99999999738E+00 851 -0.21073630000E+01 0.64354550000E+00 0.32740000000E+04 -0.66975350000E-04 -0.27539094000E-04 0.99999999738E+00 852 0.96021160000E+00 -0.11666540000E+01 0.32740000000E+04 -0.40740156000E-03 -0.26866110000E-03 0.99999988092E+00 853 0.18733800000E+01 0.16817960000E+01 0.32740000000E+04 -0.34421351000E-03 -0.90094502000E-04 0.99999993670E+00 854 0.14292720000E+01 -0.10293080000E+01 0.32740000000E+04 0.32957140000E-03 -0.30753552000E-03 0.99999989840E+00 855 -0.83018010000E+00 0.11196790000E+01 0.32740000000E+04 0.23129811000E-03 0.94277551000E-04 0.99999996881E+00 856 0.10462250000E+01 0.16656440000E+01 0.32740000000E+04 0.14659403000E-03 0.30238921000E-05 0.99999998925E+00 857 -0.23793890000E+01 0.25552420000E+00 0.32740000000E+04 -0.56151021000E-04 0.24674588000E-03 0.99999996798E+00 858 0.74758250000E+00 0.43836050000E+00 0.32740000000E+04 0.61099400000E-03 -0.43146839000E-03 0.99999972026E+00 859 0.16832960000E+01 -0.28442900000E+00 0.32740000000E+04 0.71640388000E-04 -0.24503647000E-03 0.99999996741E+00 860 -0.50844430000E+00 0.11869310000E+01 0.32740000000E+04 -0.40806619000E-04 -0.24615499000E-03 0.99999996887E+00 861 0.17916600000E+01 0.60891500000E+00 0.32740000000E+04 0.23010917000E-03 0.11329532000E-04 0.99999997346E+00 862 -0.70159680000E+00 0.88786720000E+00 0.32740000000E+04 0.17161574000E-03 -0.14184474000E-03 0.99999997521E+00 863 0.12400720000E+01 -0.89851070000E+00 0.32740000000E+04 -0.11381999000E-03 -0.26864861000E-03 0.99999995744E+00 864 0.14579590000E+01 0.17300670000E+01 0.32740000000E+04 -0.52679465000E-04 0.16561602000E-03 0.99999998490E+00 865 0.81117511000E-02 0.14173260000E+01 0.32740000000E+04 -0.14404446000E-03 0.27917992000E-03 0.99999995065E+00 866 -0.83746430000E+00 0.63603030000E+00 0.32740000000E+04 0.25935218000E-04 -0.15962234000E-03 0.99999998692E+00 867 -0.91883840000E+00 -0.41869070000E+00 0.32740000000E+04 -0.17181037000E-03 -0.36085135000E-03 0.99999992013E+00 868 0.24216850000E+00 0.51368590000E+00 0.32740000000E+04 0.77898236000E-04 -0.11030977000E-03 0.99999999088E+00 869 0.17438360000E+01 -0.24317640000E+00 0.32740000000E+04 -0.99847472000E-04 0.17344371000E-04 0.99999999486E+00 870 -0.73630420000E+00 0.71615550000E+00 0.32740000000E+04 0.30203318000E-03 0.95285810000E-04 0.99999994985E+00 871 -0.77442320000E+00 -0.31105770000E+00 0.32740000000E+04 -0.24417214000E-03 -0.11898129000E-05 0.99999997019E+00 872 0.49020140000E+00 0.17676900000E+01 0.32740000000E+04 -0.13396148000E-03 -0.72709103000E-04 0.99999998838E+00 873 -0.73823880000E+00 -0.17450980000E+00 0.32740000000E+04 0.93832983000E-04 -0.32210568000E-03 0.99999994372E+00 874 -0.13834770000E+00 0.76614210000E+00 0.32740000000E+04 -0.52680884000E-04 0.70134971000E-04 0.99999999615E+00 875 -0.26009080000E+01 -0.83394720000E-01 0.32740000000E+04 0.93448980000E-04 -0.18852548000E-03 0.99999997786E+00 876 0.10046010000E+01 0.65106690000E+00 0.32740000000E+04 0.16519144000E-03 0.56994093000E-04 0.99999998473E+00 877 -0.11730610000E+01 -0.21892450000E+00 0.32740000000E+04 -0.11939564000E-03 0.22399254000E-03 0.99999996779E+00 878 0.44224750000E-01 0.24387420000E+01 0.32740000000E+04 -0.15794118000E-03 0.19678059000E-03 0.99999996817E+00 879 0.15019550000E+01 -0.91563640000E+00 0.32740000000E+04 0.22392152000E-03 -0.53771946000E-03 0.99999983036E+00 880 0.12724760000E+01 0.15509300000E+01 0.32740000000E+04 0.66630600000E-03 0.36463144000E-03 0.99999971154E+00 881 -0.51487590000E+00 0.91134600000E+00 0.32740000000E+04 -0.22296644000E-03 -0.18063141000E-03 0.99999995883E+00 882 0.17374700000E+01 0.11663920000E+01 0.32740000000E+04 0.58390367000E-04 -0.27949634000E-03 0.99999995924E+00 883 -0.11207500000E+01 0.27359270000E+01 0.32740000000E+04 0.22331225000E-03 0.38758505000E-03 0.99999989995E+00 884 -0.56823420000E-01 -0.50395370000E+00 0.32740000000E+04 0.18565370000E-04 -0.13625307000E-03 0.99999999055E+00 885 0.32635560000E+00 0.18465710000E+01 0.32740000000E+04 -0.41222873000E-04 0.24460029000E-03 0.99999996924E+00 886 0.31319390000E+00 0.12187620000E+01 0.32740000000E+04 0.21837915000E-03 0.28547138000E-03 0.99999993541E+00 887 0.13156670000E+01 0.19619220000E+01 0.32740000000E+04 0.24385883000E-03 -0.13668265000E-04 0.99999997017E+00 888 0.18092910000E+01 0.95793540000E+00 0.32740000000E+04 0.87071770000E-04 -0.20010148000E-04 0.99999999601E+00 889 -0.45004530000E+00 -0.16663910000E+01 0.32740000000E+04 -0.19799927000E-03 -0.15916728000E-03 0.99999996773E+00 890 -0.45816460000E+00 0.19987820000E+01 0.32740000000E+04 0.57654077000E-03 0.14382583000E-03 0.99999982346E+00 891 -0.16716460000E+01 -0.86488500000E+00 0.32740000000E+04 -0.93572089000E-04 -0.12775224000E-03 0.99999998746E+00 892 -0.16716460000E+01 -0.86488500000E+00 0.32740000000E+04 -0.93572089000E-04 -0.12775224000E-03 0.99999998746E+00 893 -0.75486060000E+00 0.17544690000E+00 0.32740000000E+04 0.21048365000E-03 0.71142727000E-04 0.99999997532E+00 894 0.10246080000E+01 0.41947700000E+00 0.32740000000E+04 0.20453449000E-03 0.16008294000E-03 0.99999996627E+00 895 0.10000810000E+01 0.81253590000E+00 0.32740000000E+04 0.36636769000E-03 0.10542509000E-03 0.99999992733E+00 896 0.17594660000E+01 0.10644340000E+01 0.32740000000E+04 -0.10358870000E-03 -0.21985383000E-03 0.99999997047E+00 897 0.53012390000E+00 0.11610450000E+01 0.32740000000E+04 0.54117852000E-04 0.35128662000E-04 0.99999999792E+00 898 -0.14404790000E+01 0.18526380000E+01 0.32740000000E+04 0.17955282000E-03 0.10149551000E-03 0.99999997873E+00 899 -0.25912000000E+00 -0.14963400000E+01 0.32740000000E+04 -0.17300601000E-04 -0.35378718000E-03 0.99999993727E+00 900 -0.18387680000E+01 0.20063660000E+00 0.32740000000E+04 -0.40464077000E-03 -0.29060084000E-03 0.99999987591E+00 901 -0.21372160000E+01 0.43999840000E+00 0.32740000000E+04 0.17783137000E-03 -0.81358463000E-04 0.99999998088E+00 902 -0.13076970000E+01 0.12874260000E+01 0.32740000000E+04 0.22429915000E-04 0.27017409000E-03 0.99999996325E+00 903 -0.18494550000E+00 0.47436140000E+00 0.32740000000E+04 -0.17319046000E-03 -0.10176296000E-03 0.99999997982E+00 904 -0.15751480000E+01 -0.10081300000E+01 0.32740000000E+04 -0.53543001000E-04 -0.14277974000E-03 0.99999998837E+00 905 -0.15751480000E+01 -0.10081300000E+01 0.32740000000E+04 -0.53543001000E-04 -0.14277974000E-03 0.99999998837E+00 906 0.22713680000E+00 0.13961650000E+01 0.32740000000E+04 0.22231294000E-03 0.27420765000E-03 0.99999993769E+00 907 -0.52069570000E-01 -0.11068270000E+01 0.32740000000E+04 0.26294112000E-03 -0.62748534000E-03 0.99999976856E+00 908 -0.92289010000E-01 0.18599150000E+01 0.32740000000E+04 0.24763352000E-03 0.27479359000E-03 0.99999993158E+00 909 0.24914040000E+00 -0.47223580000E+00 0.32740000000E+04 0.11033674000E-03 -0.39041199000E-03 0.99999991770E+00 910 0.17149900000E+01 0.22865720000E+01 0.32740000000E+04 -0.66100343000E-04 -0.10455323000E-03 0.99999999235E+00 911 0.33553910000E+00 0.81731380000E+00 0.32740000000E+04 0.76969591000E-04 -0.25209831000E-03 0.99999996526E+00 912 0.33347730000E+00 0.23987080000E-01 0.32740000000E+04 0.20814579000E-04 -0.12099646000E-04 0.99999999971E+00 913 0.69669840000E+00 -0.82410480000E-01 0.32740000000E+04 0.15195129000E-03 -0.42217041000E-03 0.99999989934E+00 914 0.20883580000E+01 0.18929080000E+01 0.32740000000E+04 -0.23054259000E-03 0.62962703000E-04 0.99999997144E+00 915 0.59460430000E+00 -0.88344610000E+00 0.32740000000E+04 -0.24951363000E-03 -0.42332095000E-03 0.99999987927E+00 916 0.12393140000E+01 0.19030010000E+01 0.32740000000E+04 -0.20396777000E-04 0.35126955000E-03 0.99999993810E+00 917 0.20347950000E+01 0.63729820000E-01 0.32740000000E+04 0.14654086000E-03 0.60240047000E-04 0.99999998745E+00 918 0.10209310000E+01 -0.97042250000E+00 0.32740000000E+04 0.14302708000E-03 -0.42988104000E-03 0.99999989737E+00 919 0.27088560000E+01 -0.72526670000E+00 0.32740000000E+04 -0.18598903000E-04 0.13998782000E-03 0.99999999003E+00 920 0.27088560000E+01 -0.72526670000E+00 0.32740000000E+04 -0.18598903000E-04 0.13998782000E-03 0.99999999003E+00 921 -0.11262830000E+01 -0.10309490000E+01 0.32740000000E+04 0.89531990000E-04 0.14350361000E-03 0.99999998570E+00 922 0.56449660000E+00 0.61609010000E+00 0.32740000000E+04 -0.28250777000E-03 0.25730666000E-04 0.99999995976E+00 923 -0.14535730000E+01 0.14034590000E+01 0.32740000000E+04 0.16965450000E-06 -0.12225911000E-03 0.99999999253E+00 924 -0.60362450000E+00 -0.10473730000E+01 0.32740000000E+04 -0.11411661000E-03 -0.36287689000E-03 0.99999992765E+00 925 -0.11426490000E+00 0.18590200000E+01 0.32740000000E+04 -0.31508458000E-06 0.59497205000E-03 0.99999982300E+00 926 0.98810030000E+00 0.14703900000E+01 0.32740000000E+04 -0.11449267000E-03 -0.32554011000E-03 0.99999994046E+00 927 -0.57179490000E+00 0.21782090000E+00 0.32740000000E+04 0.54320350000E-04 -0.15304107000E-03 0.99999998681E+00 928 0.36378410000E+00 0.18823940000E+00 0.32740000000E+04 0.79143167000E-04 -0.55625974000E-05 0.99999999685E+00 929 0.18811380000E+00 -0.57239560000E+00 0.32740000000E+04 0.14217538000E-03 0.53121763000E-04 0.99999998848E+00 930 0.10915040000E+01 0.16240910000E+01 0.32740000000E+04 0.23451236000E-03 0.16601986000E-03 0.99999995872E+00 931 -0.14938090000E+01 0.44558110000E+00 0.32740000000E+04 0.32523807000E-03 0.84381310000E-04 0.99999994355E+00 932 0.17910260000E+01 0.93417700000E+00 0.32740000000E+04 -0.83183892000E-04 -0.28087149000E-03 0.99999995710E+00 933 -0.11607660000E+01 -0.10422150000E+01 0.32740000000E+04 0.11212683000E-03 -0.99813333000E-04 0.99999998873E+00 934 0.14387590000E+01 0.13960880000E+01 0.32740000000E+04 0.18701388000E-03 -0.14438886000E-03 0.99999997209E+00 935 -0.16921550000E+01 -0.98368440000E-01 0.32740000000E+04 -0.24679515000E-04 0.25707222000E-04 0.99999999937E+00 936 -0.53060410000E+00 0.19897530000E+01 0.32740000000E+04 -0.25207191000E-03 0.20929516000E-04 0.99999996801E+00 937 0.11778640000E+01 0.14018310000E+01 0.32740000000E+04 -0.45276264000E-03 0.42451674000E-03 0.99999980740E+00 938 0.11778640000E+01 0.14018310000E+01 0.32740000000E+04 -0.45276264000E-03 0.42451674000E-03 0.99999980740E+00 939 -0.12380840000E+01 -0.11087530000E+01 0.32740000000E+04 0.12904793000E-03 -0.31133130000E-03 0.99999994321E+00 940 -0.40290430000E+00 0.17922840000E+00 0.32740000000E+04 0.45094562000E-05 0.70838571000E-04 0.99999999748E+00 941 -0.51843640000E+00 0.10654130000E+01 0.32740000000E+04 0.25767350000E-03 -0.20641630000E-03 0.99999994550E+00 942 -0.38271020000E+00 0.14825020000E+00 0.32740000000E+04 -0.29361399000E-04 -0.26340509000E-03 0.99999996488E+00 943 0.18170280000E+01 0.15319690000E+01 0.32740000000E+04 -0.29294181000E-03 0.18939193000E-03 0.99999993916E+00 944 0.87964130000E+00 0.28051060000E+00 0.32740000000E+04 -0.10502701000E-03 -0.65491578000E-04 0.99999999234E+00 945 -0.76119020000E-01 0.62786160000E+00 0.32740000000E+04 -0.18751991000E-03 0.10263731000E-03 0.99999997715E+00 946 0.34431330000E+00 -0.15709370000E+01 0.32740000000E+04 0.61631459000E-03 -0.28577467000E-03 0.99999976924E+00 947 -0.46338320000E+00 0.19927250000E+01 0.32740000000E+04 0.11436962000E-03 0.34867728000E-03 0.99999993267E+00 948 0.39404730000E+00 0.54785760000E+00 0.32740000000E+04 0.10629456000E-05 -0.44440574000E-03 0.99999990125E+00 949 0.15322850000E+01 0.28396720000E+00 0.32740000000E+04 -0.92983661000E-04 0.24166847000E-03 0.99999996648E+00 950 0.39516390000E+00 -0.14657670000E+01 0.32740000000E+04 0.53258811000E-03 -0.36825779000E-04 0.99999985750E+00 951 0.39516390000E+00 -0.14055070000E+01 0.32740000000E+04 0.53258811000E-03 -0.42517160000E-03 0.99999976779E+00 952 -0.14779360000E+01 0.10390050000E+01 0.32740000000E+04 -0.53883556000E-04 0.11641787000E-03 0.99999999177E+00 953 0.95161750000E+00 0.64223010000E+00 0.32740000000E+04 0.29512335000E-04 0.22575262000E-03 0.99999997408E+00 954 -0.10966230000E+01 0.31745650000E-01 0.32740000000E+04 0.87352410000E-05 0.84333760000E-05 0.99999999993E+00 955 -0.20732180000E+00 -0.93804690000E+00 0.32740000000E+04 -0.77038814000E-04 -0.10273032000E-03 0.99999999176E+00 956 0.20215570000E+01 -0.55660100000E+00 0.32740000000E+04 0.29741437000E-03 -0.29350637000E-03 0.99999991270E+00 957 0.99863140000E+00 0.17497420000E+01 0.32740000000E+04 0.12780604000E-04 0.25364809000E-03 0.99999996775E+00 958 -0.17709770000E+01 0.26280860000E+00 0.32740000000E+04 -0.12017457000E-02 0.79859677000E-03 0.99999895902E+00 959 -0.23199760000E+00 -0.10599330000E+01 0.32740000000E+04 0.21776759000E-03 -0.23037594000E-03 0.99999994975E+00 960 -0.16569050000E+01 -0.18034340000E+01 0.32740000000E+04 0.75019751000E-04 -0.32703151000E-03 0.99999994371E+00 961 0.34096560000E-01 -0.14991300000E+00 0.32740000000E+04 0.72289462000E-04 -0.12800978000E-03 0.99999998919E+00 962 0.67918520000E+00 -0.13252870000E-01 0.32740000000E+04 -0.20772858000E-03 -0.11001235000E-03 0.99999997237E+00 963 0.60949750000E+00 -0.70154420000E+00 0.32740000000E+04 0.12213670000E-03 -0.76779710000E-04 0.99999998959E+00 964 0.60949750000E+00 -0.70154420000E+00 0.32740000000E+04 0.12213670000E-03 -0.76779710000E-04 0.99999998959E+00 965 0.10825060000E+00 0.11777510000E+01 0.32740000000E+04 0.20380205000E-03 0.14359485000E-03 0.99999996892E+00 966 -0.37003640000E+00 0.12015100000E+01 0.32740000000E+04 -0.53441236000E-04 0.19666877000E-03 0.99999997923E+00 967 -0.66124630000E-01 0.11456360000E+01 0.32740000000E+04 -0.34340820000E-03 0.84066043000E-04 0.99999993750E+00 968 0.18182600000E+00 0.23190510000E+01 0.32740000000E+04 -0.13054324000E-04 0.92678187000E-04 0.99999999562E+00 969 0.80458760000E+00 0.20851550000E+01 0.32740000000E+04 0.66492683000E-03 0.49145721000E-04 0.99999977773E+00 970 -0.68335500000E+00 -0.63567980000E+00 0.32740000000E+04 -0.34996000000E-03 -0.41416966000E-03 0.99999985300E+00 971 0.42185960000E+00 -0.11104380000E+01 0.32740000000E+04 0.13159408000E-03 -0.31568529000E-03 0.99999994151E+00 972 0.12941380000E+00 0.18878640000E+01 0.32740000000E+04 0.19691195000E-03 -0.14184337000E-03 0.99999997055E+00 973 -0.18184630000E+01 0.71536730000E+00 0.32740000000E+04 -0.49646565000E-04 0.57325538000E-04 0.99999999712E+00 974 0.33293320000E-01 -0.10247360000E+01 0.32740000000E+04 0.22464398000E-03 -0.11128274000E-03 0.99999996858E+00 975 0.21092140000E+01 -0.19607900000E+00 0.32740000000E+04 -0.14178762000E-03 -0.39895394000E-03 0.99999991037E+00 976 -0.20930960000E-01 0.11509080000E+01 0.32740000000E+04 -0.14724814000E-03 -0.41425694000E-04 0.99999998830E+00 977 -0.90875940000E+00 0.14749340000E+01 0.32740000000E+04 0.13113226000E-03 0.97337412000E-04 0.99999998666E+00 978 -0.90875940000E+00 0.14749340000E+01 0.32740000000E+04 0.13113226000E-03 0.97337412000E-04 0.99999998666E+00 979 0.10786860000E+01 0.14614690000E+01 0.32740000000E+04 -0.23584085000E-04 -0.89538938000E-04 0.99999999571E+00 980 0.88529210000E+00 0.39708760000E-01 0.32740000000E+04 -0.19039515000E-03 -0.25394873000E-03 0.99999994963E+00 981 0.11453600000E+01 0.11953040000E+01 0.32740000000E+04 0.13669685000E-03 -0.97586249000E-03 0.99999951450E+00 982 -0.22878680000E+01 -0.62870670000E+00 0.32740000000E+04 -0.22968194000E-03 -0.21637919000E-03 0.99999995021E+00 983 0.94416870000E+00 -0.28778570000E+00 0.32740000000E+04 0.14224768000E-03 0.23115732000E-03 0.99999996317E+00 984 0.94416870000E+00 -0.28778570000E+00 0.32740000000E+04 0.14224768000E-03 0.23115732000E-03 0.99999996317E+00 985 -0.80078620000E+00 0.75201730000E+00 0.32740000000E+04 0.18978816000E-03 0.83565654000E-04 0.99999997850E+00 986 0.21433330000E+01 0.31346570000E+00 0.32740000000E+04 0.27668840000E-03 0.24504351000E-03 0.99999993170E+00 987 -0.77222490000E-01 0.93134420000E+00 0.32740000000E+04 0.55369298000E-03 0.51671403000E-04 0.99999984538E+00 988 -0.91422630000E+00 0.18536960000E+01 0.32740000000E+04 0.18170828000E-03 0.11130833000E-03 0.99999997730E+00 989 -0.13460920000E+00 0.18672290000E+01 0.32740000000E+04 0.62344148000E-03 -0.29429211000E-03 0.99999976236E+00 990 -0.52767030000E-01 -0.37265630000E+00 0.32740000000E+04 -0.60978648000E-04 -0.16866553000E-03 0.99999998392E+00 991 0.10793210000E+01 -0.27196780000E+01 0.32740000000E+04 -0.20143931000E-03 0.10959493000E-02 0.99999937916E+00 992 0.24692390000E+01 0.58176830000E+00 0.32740000000E+04 -0.14278057000E-03 0.50599716000E-03 0.99999986179E+00 993 0.84623580000E+00 0.16174860000E+00 0.32740000000E+04 -0.48898703000E-04 -0.28473127000E-03 0.99999995827E+00 994 0.17429090000E+01 0.18553360000E+00 0.32740000000E+04 0.11815931000E-03 -0.17132681000E-03 0.99999997834E+00 995 -0.10296480000E+01 0.14324000000E+01 0.32740000000E+04 -0.25723994000E-04 0.64036656000E-04 0.99999999762E+00 996 -0.35657120000E+00 0.13405260000E+01 0.32740000000E+04 -0.96200252000E-04 -0.29516677000E-04 0.99999999494E+00 997 0.59575600000E+00 -0.77549610000E+00 0.32740000000E+04 0.12787702000E-03 0.42964417000E-04 0.99999999090E+00 998 0.59575600000E+00 -0.77549610000E+00 0.32740000000E+04 0.12787702000E-03 0.42964417000E-04 0.99999999090E+00 999 0.25431430000E+00 0.49674870000E+00 0.32740000000E+04 0.34214713000E-03 0.10668266000E-03 0.99999993578E+00 1000 -0.27461290000E+00 0.28995030000E+00 0.32740000000E+04 -0.30993487000E-03 0.30625186000E-04 0.99999995150E+00 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/data-tracks/tracks-60GeV.dat b/examples/advanced/lAr_calorimeter/data-tracks/tracks-60GeV.dat new file mode 100644 index 0000000000..06bd2fdb62 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/data-tracks/tracks-60GeV.dat @@ -0,0 +1 @@ + 1 -0.58179020000E+00 0.23709120000E+01 0.32740000000E+04 0.22321547000E-04 0.11690357000E-03 0.99999999292E+00 2 -0.76069670000E+00 0.16813310000E+01 0.32740000000E+04 0.16298023000E-03 0.14134833000E-03 0.99999997673E+00 3 0.23645840000E+01 0.81548430000E+00 0.32740000000E+04 -0.66564171000E-04 -0.17225195000E-03 0.99999998295E+00 4 -0.84648130000E+00 0.24117040000E+01 0.32740000000E+04 -0.10626015000E-03 0.34180059000E-04 0.99999999377E+00 5 0.15031610000E+01 -0.73165660000E-01 0.32740000000E+04 -0.25222840000E-03 -0.20069884000E-03 0.99999994805E+00 6 0.19408070000E+01 -0.10999610000E+00 0.32740000000E+04 -0.23086005000E-03 -0.13398951000E-03 0.99999996438E+00 7 0.22175970000E+01 0.14749270000E+01 0.32740000000E+04 -0.12256191000E-03 0.13855314000E-03 0.99999998289E+00 8 -0.15987280000E+01 -0.20855290000E+00 0.32740000000E+04 0.26701612000E-05 -0.23086018000E-03 0.99999997335E+00 9 -0.70266240000E+00 -0.81222610000E+00 0.32740000000E+04 -0.80902297000E-04 -0.30378174000E-03 0.99999995059E+00 10 -0.13693560000E+00 0.78110120000E+00 0.32740000000E+04 0.26394086000E-03 -0.13395569000E-03 0.99999995620E+00 11 -0.65112520000E+00 0.11395310000E+00 0.32740000000E+04 -0.75345604000E-04 0.11236932000E-03 0.99999999085E+00 12 0.25070960000E+01 0.35620660000E+00 0.32740000000E+04 -0.12501232000E-03 0.83568542000E-04 0.99999998869E+00 13 0.15255320000E+01 0.13955560000E+01 0.32740000000E+04 -0.12598957000E-03 0.14857695000E-03 0.99999998103E+00 14 0.15255320000E+01 0.13955560000E+01 0.32740000000E+04 -0.12598957000E-03 0.14857695000E-03 0.99999998103E+00 15 0.15254770000E+01 -0.14742920000E+01 0.32740000000E+04 0.63927087000E-04 -0.33226309000E-03 0.99999994276E+00 16 -0.18731580000E+00 0.63586160000E-01 0.32740000000E+04 0.16685828000E-03 0.12126330000E-04 0.99999998601E+00 17 -0.21226630000E+01 0.78807650000E+00 0.32740000000E+04 0.14212789000E-04 0.46326413000E-05 0.99999999989E+00 18 -0.38024920000E+00 -0.83187450000E+00 0.32740000000E+04 -0.11422686000E-03 -0.15479200000E-03 0.99999998150E+00 19 -0.17095760000E+01 -0.52925620000E+00 0.32740000000E+04 -0.39901926000E-04 -0.19446126000E-03 0.99999998030E+00 20 0.15013670000E+01 0.51936400000E+00 0.32740000000E+04 0.75674550000E-04 0.21803282000E-04 0.99999999690E+00 21 0.17453780000E+01 0.46388770000E+00 0.32740000000E+04 -0.16372999000E-03 -0.53863478000E-04 0.99999998515E+00 22 0.48679160000E+00 0.21040680000E+00 0.32740000000E+04 0.34765289000E-04 -0.52766372000E-04 0.99999999800E+00 23 0.74586760000E+00 0.15671800000E+01 0.32740000000E+04 -0.60038856000E-04 0.86224849000E-04 0.99999999448E+00 24 0.11000530000E+01 0.10728350000E+01 0.32740000000E+04 -0.55070741000E-04 0.25744698000E-03 0.99999996534E+00 25 -0.98636900000E+00 0.36983230000E+00 0.32740000000E+04 -0.49373750000E-04 0.37381229000E-04 0.99999999808E+00 26 0.25364480000E+01 0.16061340000E+01 0.32740000000E+04 -0.21806211000E-03 0.25111571000E-03 0.99999994469E+00 27 0.93273740000E+00 -0.26652530000E+01 0.32740000000E+04 0.49813458000E-03 0.98853232000E-03 0.99999938733E+00 28 0.84123290000E+00 0.73178010000E+00 0.32740000000E+04 0.90186659000E-04 0.28410446000E-03 0.99999995558E+00 29 0.15823200000E+00 0.50859650000E+00 0.32740000000E+04 0.27833658000E-03 -0.13833103000E-03 0.99999995170E+00 30 0.20608590000E+01 0.12754120000E+01 0.32740000000E+04 -0.11063085000E-03 -0.34015378000E-04 0.99999999330E+00 31 -0.11339460000E+01 -0.14151810000E+01 0.32740000000E+04 0.39765258000E-04 -0.19473299000E-03 0.99999998025E+00 32 -0.56488950000E+00 0.46687050000E+00 0.32740000000E+04 0.19343747000E-03 0.21982465000E-04 0.99999998105E+00 33 0.16889140000E+01 0.21250010000E+01 0.32740000000E+04 -0.24706670000E-03 0.23356405000E-03 0.99999994220E+00 34 0.65961550000E-01 0.14599510000E+01 0.32740000000E+04 -0.28833660000E-04 0.57724676000E-04 0.99999999792E+00 35 -0.72184870000E-01 -0.78907120000E+00 0.32740000000E+04 -0.36644436000E-04 -0.39821865000E-04 0.99999999854E+00 36 0.10796050000E+01 0.28511270000E+00 0.32740000000E+04 0.98360062000E-04 -0.42265754000E-04 0.99999999427E+00 37 0.68190360000E+00 0.10804570000E+01 0.32740000000E+04 -0.12547212000E-04 0.13187733000E-03 0.99999999123E+00 38 0.26046350000E+00 -0.11378250000E+00 0.32740000000E+04 -0.59253143000E-04 -0.13771557000E-03 0.99999998876E+00 39 -0.40477660000E+00 0.15216970000E+01 0.32740000000E+04 -0.28664686000E-03 -0.19824585000E-04 0.99999995872E+00 40 0.28033460000E+01 0.10220610000E+01 0.32740000000E+04 0.83262512000E-05 0.14970085000E-03 0.99999998876E+00 41 0.27004570000E+00 0.22234120000E+01 0.32740000000E+04 -0.46917376000E-04 0.37866036000E-03 0.99999992721E+00 42 0.10290520000E+01 -0.22694220000E+01 0.32740000000E+04 0.16740499000E-03 -0.40293101000E-03 0.99999990481E+00 43 0.10290520000E+01 -0.22694220000E+01 0.32740000000E+04 0.16740499000E-03 -0.40293101000E-03 0.99999990481E+00 44 0.20241710000E+01 0.64181860000E+00 0.32740000000E+04 -0.12694602000E-03 0.23770330000E-04 0.99999999166E+00 45 0.16499690000E+01 0.16153150000E+01 0.32740000000E+04 -0.64357322000E-04 -0.16565309000E-04 0.99999999779E+00 46 -0.89453870000E+00 -0.69366330000E+00 0.32740000000E+04 0.10715953000E-03 -0.24205573000E-03 0.99999996496E+00 47 0.47273920000E+00 0.24212950000E+01 0.32740000000E+04 0.71868621000E-04 0.39417714000E-05 0.99999999741E+00 48 0.21568800000E+01 0.10844430000E+01 0.32740000000E+04 -0.90517708000E-04 0.22853948000E-04 0.99999999564E+00 49 -0.74615660000E-01 0.11745500000E+01 0.32740000000E+04 -0.70489914000E-04 0.15544193000E-03 0.99999998543E+00 50 0.81624950000E+00 -0.56756320000E+00 0.32740000000E+04 0.22815862000E-03 -0.11029695000E-03 0.99999996789E+00 51 -0.49913750000E+00 -0.72765920000E+00 0.32740000000E+04 0.16936024000E-03 0.65908697000E-03 0.99999976846E+00 52 0.14322800000E+00 0.12690030000E+01 0.32740000000E+04 0.11187531000E-03 -0.11722615000E-03 0.99999998687E+00 53 -0.96974510000E+00 0.20745970000E-01 0.32740000000E+04 0.11993524000E-03 -0.22911539000E-03 0.99999996656E+00 54 -0.10764600000E+00 0.24877380000E+01 0.32740000000E+04 0.30638414000E-03 0.44588120000E-06 0.99999995306E+00 55 0.11010790000E+01 -0.34676240000E+00 0.32740000000E+04 -0.44432152000E-04 -0.15735264000E-04 0.99999999889E+00 56 0.12609080000E+01 0.14181050000E+00 0.32740000000E+04 -0.12972437000E-03 0.21865435000E-04 0.99999999135E+00 57 0.12609080000E+01 0.14181050000E+00 0.32740000000E+04 -0.12972437000E-03 0.21865435000E-04 0.99999999135E+00 58 0.56578900000E+00 -0.14539220000E+01 0.32740000000E+04 -0.20244077000E-03 -0.62700521000E-04 0.99999997754E+00 59 -0.86638450000E+00 0.19124030000E+01 0.32740000000E+04 0.40072414000E-05 0.14391029000E-03 0.99999998964E+00 60 0.66068470000E+00 0.38783170000E+00 0.32740000000E+04 0.72634342000E-04 -0.56731664000E-04 0.99999999575E+00 61 -0.17476630000E+00 -0.12646970000E+01 0.32740000000E+04 -0.10079522000E-04 -0.20990665000E-04 0.99999999973E+00 62 0.13724270000E+01 0.48053860000E-01 0.32740000000E+04 -0.11123529000E-04 -0.42731197000E-04 0.99999999903E+00 63 0.24417510000E+01 0.42472940000E+00 0.32740000000E+04 0.13022030000E-03 0.37897017000E-03 0.99999991971E+00 64 -0.10476050000E+01 0.72293530000E+00 0.32740000000E+04 -0.68657813000E-04 -0.14384660000E-03 0.99999998730E+00 65 -0.10138910000E+01 0.13255760000E+01 0.32740000000E+04 0.18163300000E-03 0.14311641000E-03 0.99999997326E+00 66 0.47056210000E+00 0.10344340000E+01 0.32740000000E+04 0.13732551000E-03 0.11958022000E-03 0.99999998342E+00 67 0.17304740000E+01 0.66145880000E+00 0.32740000000E+04 -0.93359849000E-04 0.17518073000E-03 0.99999998030E+00 68 0.80233500000E+00 0.79653140000E+00 0.32740000000E+04 -0.84847707000E-05 0.11220659000E-03 0.99999999367E+00 69 -0.75284830000E+00 0.38768350000E+00 0.32740000000E+04 0.14752844000E-03 -0.90616559000E-04 0.99999998501E+00 70 0.83713750000E+00 -0.40259090000E+00 0.32740000000E+04 -0.21091808000E-04 -0.60290669000E-04 0.99999999796E+00 71 0.83713750000E+00 -0.40259090000E+00 0.32740000000E+04 -0.21091808000E-04 -0.60290669000E-04 0.99999999796E+00 72 -0.17310660000E+01 -0.91216450000E+00 0.32740000000E+04 0.77100085000E-04 -0.19157413000E-03 0.99999997868E+00 73 0.14856140000E+01 -0.28820930000E+00 0.32740000000E+04 -0.24547346000E-03 -0.41031325000E-03 0.99999988569E+00 74 0.58712950000E-01 -0.80829280000E+00 0.32740000000E+04 0.13013463000E-03 -0.15830995000E-03 0.99999997900E+00 75 -0.12996420000E+00 -0.55940130000E+00 0.32740000000E+04 0.67837755000E-04 -0.10514481000E-04 0.99999999764E+00 76 0.43842060000E+00 -0.80247980000E+00 0.32740000000E+04 0.19125424000E-03 -0.41277951000E-03 0.99999989652E+00 77 0.22598730000E+01 0.46990030000E+00 0.32740000000E+04 -0.11319400000E-03 0.88239918000E-04 0.99999998970E+00 78 0.20206740000E+01 0.58983110000E+00 0.32740000000E+04 -0.13854690000E-05 0.25616371000E-04 0.99999999967E+00 79 -0.60434790000E+00 -0.47149010000E+00 0.32740000000E+04 0.16973107000E-03 -0.29255134000E-04 0.99999998517E+00 80 -0.82109740000E+00 0.90262380000E+00 0.32740000000E+04 0.34422765000E-03 0.24675418000E-03 0.99999991031E+00 81 -0.92762430000E+00 0.14735070000E+01 0.32740000000E+04 -0.13638803000E-04 0.48416601000E-04 0.99999999873E+00 82 -0.12833650000E+01 -0.32637070000E+00 0.32740000000E+04 0.23633052000E-04 -0.16829740000E-03 0.99999998556E+00 83 0.20443390000E+01 -0.80397100000E+00 0.32740000000E+04 -0.57874669000E-04 -0.15863968000E-03 0.99999998574E+00 84 0.24354840000E+01 0.15508410000E+01 0.32740000000E+04 0.41440329000E-04 0.36680925000E-03 0.99999993187E+00 85 0.71804700000E+00 0.43434950000E+00 0.32740000000E+04 -0.14094971000E-03 -0.24084843000E-03 0.99999996106E+00 86 0.67510830000E+00 -0.22608040000E+00 0.32740000000E+04 0.63819170000E-04 -0.16384371000E-03 0.99999998454E+00 87 0.65172830000E+00 -0.66378660000E-01 0.32740000000E+04 -0.12575460000E-03 -0.11156392000E-03 0.99999998587E+00 88 0.92380270000E+00 0.25653740000E+01 0.32740000000E+04 -0.94639028000E-04 -0.10968546000E-02 0.99999939398E+00 89 0.46212460000E+00 0.15321640000E+01 0.32740000000E+04 0.31084048000E-04 0.33409806000E-03 0.99999994371E+00 90 0.17427920000E+01 0.40720020000E+00 0.32740000000E+04 0.62864376000E-04 0.13401071000E-03 0.99999998904E+00 91 0.11345160000E+01 0.12814010000E+01 0.32740000000E+04 -0.93411203000E-04 0.86574852000E-04 0.99999999189E+00 92 0.57421820000E+00 0.71803350000E+00 0.32740000000E+04 0.10228144000E-05 -0.10548596000E-03 0.99999999444E+00 93 0.15934530000E+01 0.23763210000E+01 0.32740000000E+04 -0.11361998000E-03 0.88724679000E-04 0.99999998961E+00 94 0.22797590000E+00 -0.30006690000E+00 0.32740000000E+04 0.35580833000E-03 -0.22806194000E-03 0.99999991069E+00 95 -0.11378270000E+01 -0.11651820000E+01 0.32740000000E+04 -0.13319960000E-03 0.85754669000E-04 0.99999998745E+00 96 -0.36470230000E+00 -0.12440750000E+01 0.32740000000E+04 0.40834377000E-04 -0.38137729000E-03 0.99999992644E+00 97 0.12504730000E+01 0.13201790000E+01 0.32740000000E+04 -0.27058480000E-03 0.11140181000E-03 0.99999995719E+00 98 -0.88965490000E+00 0.35769410000E+00 0.32740000000E+04 -0.47859863000E-04 0.59421098000E-04 0.99999999709E+00 99 -0.15089130000E+00 -0.14568420000E+00 0.32740000000E+04 0.85481493000E-04 0.15585316000E-04 0.99999999623E+00 100 0.62285840000E+00 0.18496590000E+00 0.32740000000E+04 0.21228172000E-03 0.38140814000E-03 0.99999990473E+00 101 0.90681940000E+00 -0.16551480000E+00 0.32740000000E+04 -0.89857043000E-04 -0.12803332000E-03 0.99999998777E+00 102 0.12029260000E+01 0.11914010000E-01 0.32740000000E+04 -0.11758320000E-03 0.69518843000E-04 0.99999999067E+00 103 -0.52943980000E+00 -0.12827180000E+01 0.32740000000E+04 0.76462857000E-04 -0.37787261000E-03 0.99999992568E+00 104 -0.52943980000E+00 -0.12827180000E+01 0.32740000000E+04 0.76462857000E-04 -0.37787261000E-03 0.99999992568E+00 105 0.62889230000E+00 -0.15397310000E+01 0.32740000000E+04 0.67346438000E-04 0.11892849000E-03 0.99999999066E+00 106 -0.30637200000E+00 -0.21499850000E+00 0.32740000000E+04 0.72178551000E-06 0.11756852000E-04 0.99999999993E+00 107 0.12280630000E+01 0.85661950000E+00 0.32740000000E+04 -0.12711275000E-03 0.45692414000E-05 0.99999999191E+00 108 0.63289840000E+00 -0.61488940000E-01 0.32740000000E+04 -0.63606181000E-04 -0.11926801000E-03 0.99999999086E+00 109 0.12406970000E+01 -0.13387420000E+01 0.32740000000E+04 0.22276504000E-03 -0.53516641000E-03 0.99999983199E+00 110 -0.24174000000E+00 0.11471630000E+01 0.32740000000E+04 0.18646168000E-03 -0.92579126000E-06 0.99999998262E+00 111 0.11473380000E+01 0.54529210000E+00 0.32740000000E+04 0.51527191000E-03 -0.13999931000E-03 0.99999985745E+00 112 0.10348900000E+01 0.15157500000E+01 0.32740000000E+04 -0.26464681000E-03 0.10556180000E-03 0.99999995941E+00 113 0.47063780000E+00 0.15599000000E+01 0.32740000000E+04 -0.32451804000E-04 0.77451456000E-04 0.99999999647E+00 114 -0.12356470000E+01 -0.55766790000E+00 0.32740000000E+04 -0.11925425000E-05 -0.11124477000E-03 0.99999999381E+00 115 -0.30150490000E+00 -0.17014780000E+01 0.32740000000E+04 0.53797936000E-04 -0.73375943000E-03 0.99999972935E+00 116 0.85626980000E+00 -0.12540860000E+00 0.32740000000E+04 -0.27540556000E-04 -0.19961465000E-03 0.99999997970E+00 117 -0.24910620000E+00 0.22099350000E+01 0.32740000000E+04 0.36498441000E-03 0.15835217000E-03 0.99999992086E+00 118 0.16731450000E+01 -0.54466963000E-02 0.32740000000E+04 -0.33713775000E-04 -0.26396886000E-03 0.99999996459E+00 119 0.68985010000E+00 -0.30177740000E+00 0.32740000000E+04 -0.13785390000E-03 -0.21869671000E-04 0.99999999026E+00 120 0.12837470000E+01 -0.40482550000E+00 0.32740000000E+04 -0.92855495000E-04 0.27094780000E-04 0.99999999532E+00 121 -0.70539140000E+00 0.90673080000E+00 0.32740000000E+04 0.17831320000E-03 0.25495089000E-03 0.99999995160E+00 122 -0.53793260000E+00 0.11313920000E+01 0.32740000000E+04 0.19861144000E-03 0.13040284000E-03 0.99999997177E+00 123 0.34669350000E+00 -0.10252890000E+01 0.32740000000E+04 0.18223295000E-03 0.21912903000E-04 0.99999998316E+00 124 0.10168590000E+01 0.14040580000E+01 0.32740000000E+04 -0.98550801000E-04 0.17761512000E-03 0.99999997937E+00 125 -0.48742920000E-01 -0.81222390000E+00 0.32740000000E+04 -0.26797747000E-04 -0.24078909000E-03 0.99999997065E+00 126 -0.20448610000E+01 0.14837980000E+01 0.32740000000E+04 -0.14761424000E-03 -0.35737219000E-03 0.99999992525E+00 127 0.89889620000E-01 0.81718190000E+00 0.32740000000E+04 0.26686548000E-03 -0.19125469000E-03 0.99999994610E+00 128 0.20224160000E+01 0.80454560000E+00 0.32740000000E+04 0.21382579000E-04 0.35231846000E-04 0.99999999915E+00 129 0.20224160000E+01 0.80454560000E+00 0.32740000000E+04 0.21382579000E-04 0.35231846000E-04 0.99999999915E+00 130 0.49973930000E+00 0.12500530000E+01 0.32740000000E+04 0.11314324000E-02 -0.16952094000E-05 0.99999935993E+00 131 -0.18956970000E+01 -0.64965440000E+00 0.32740000000E+04 -0.20873398000E-03 -0.15231587000E-03 0.99999996662E+00 132 0.17347100000E+01 -0.99648460000E+00 0.32740000000E+04 0.19616698000E-03 -0.12856336000E-03 0.99999997249E+00 133 0.92802190000E+00 0.15911510000E+01 0.32740000000E+04 0.44732722000E-04 -0.17287355000E-03 0.99999998406E+00 134 0.18503550000E+01 0.12100710000E-01 0.32740000000E+04 -0.62517887000E-04 0.88624634000E-04 0.99999999412E+00 135 0.20707510000E+01 0.14463730000E+01 0.32740000000E+04 -0.10838144000E-03 -0.78668840000E-04 0.99999999103E+00 136 0.88190160000E-01 -0.71367210000E+00 0.32740000000E+04 -0.41208357000E-04 -0.33440493000E-03 0.99999994324E+00 137 0.32100800000E-01 0.55225580000E+00 0.32740000000E+04 0.27231759000E-03 -0.80372578000E-04 0.99999995969E+00 138 -0.10585180000E+01 -0.15268150000E+00 0.32740000000E+04 -0.59407714000E-04 -0.60354647000E-04 0.99999999641E+00 139 0.55467640000E-01 0.20425570000E+01 0.32740000000E+04 0.46895118000E-04 0.33896469000E-03 0.99999994145E+00 140 0.11820040000E+01 0.17341750000E+01 0.32740000000E+04 0.11236034000E-03 0.14726400000E-03 0.99999998284E+00 141 -0.68223260000E+00 -0.51888510000E+00 0.32740000000E+04 0.17667579000E-03 -0.91647642000E-04 0.99999998019E+00 142 0.20694930000E+01 -0.77750970000E+00 0.32740000000E+04 -0.33018430000E-04 -0.25314675000E-03 0.99999996741E+00 143 0.72016010000E+00 0.82003410000E+00 0.32740000000E+04 0.11973303000E-03 0.14034082000E-03 0.99999998298E+00 144 0.10982010000E+01 0.24435750000E+01 0.32740000000E+04 -0.63271982000E-04 -0.46308654000E-04 0.99999999693E+00 145 0.10982010000E+01 0.24435750000E+01 0.32740000000E+04 -0.63271982000E-04 -0.46308654000E-04 0.99999999693E+00 146 -0.18022830000E+00 -0.37159280000E+00 0.32740000000E+04 -0.88266148000E-04 -0.17270580000E-03 0.99999998119E+00 147 0.44178740000E+00 -0.92204600000E+00 0.32740000000E+04 0.18880118000E-03 0.25798034000E-03 0.99999994890E+00 148 0.16484270000E+00 0.13075750000E+01 0.32740000000E+04 0.31789918000E-04 0.13949902000E-03 0.99999998976E+00 149 -0.19722760000E+01 0.88533130000E+00 0.32740000000E+04 0.79855010000E-04 0.13594778000E-03 0.99999998757E+00 150 0.92912960000E+00 0.65360130000E+00 0.32740000000E+04 0.37467547000E-03 -0.27789429000E-03 0.99999989120E+00 151 -0.12832300000E+01 0.24085150000E+00 0.32740000000E+04 0.43434506000E-04 0.53692253000E-04 0.99999999762E+00 152 0.22619120000E+01 0.14173450000E+01 0.32740000000E+04 -0.20068140000E-03 0.10456084000E-03 0.99999997440E+00 153 -0.14143980000E+01 -0.15971170000E+00 0.32740000000E+04 0.75242140000E-04 -0.76572760000E-04 0.99999999424E+00 154 -0.38879240000E+00 0.30405530000E+00 0.32740000000E+04 -0.29895079000E-03 -0.99793368000E-04 0.99999995033E+00 155 -0.25621680000E+00 0.76833600000E+00 0.32740000000E+04 0.15451730000E-03 0.46058669000E-03 0.99999988199E+00 156 0.10063430000E+01 0.81216574000E-02 0.32740000000E+04 0.65607957000E-04 -0.17453097000E-03 0.99999998262E+00 157 -0.76470310000E+00 -0.20335197000E-02 0.32740000000E+04 0.15041631000E-03 -0.49369916000E-03 0.99999986682E+00 158 -0.76470310000E+00 -0.20335197000E-02 0.32740000000E+04 0.15041631000E-03 -0.49369916000E-03 0.99999986682E+00 159 0.22456480000E+00 -0.66397470000E+00 0.32740000000E+04 -0.79114572000E-04 -0.15539475000E-03 0.99999998480E+00 160 0.22989690000E+01 0.10317050000E+01 0.32740000000E+04 -0.62036437000E-04 0.21027641000E-03 0.99999997597E+00 161 0.74545860000E+00 0.19353490000E+01 0.32740000000E+04 -0.23930297000E-04 0.62057436000E-04 0.99999999779E+00 162 0.98781360000E+00 -0.11628570000E+01 0.32740000000E+04 0.10563735000E-03 -0.20490208000E-03 0.99999997343E+00 163 -0.61200130000E-01 0.72063180000E+00 0.32740000000E+04 0.11784962000E-03 0.65328823000E-04 0.99999999092E+00 164 0.22753210000E+01 0.36578890000E+00 0.32740000000E+04 -0.28404726000E-04 0.62196406000E-04 0.99999999766E+00 165 0.31345260000E+00 -0.66775360000E+00 0.32740000000E+04 0.17865680000E-03 0.19048182000E-03 0.99999996590E+00 166 0.11941110000E+01 0.58632240000E+00 0.32740000000E+04 0.19370188000E-03 -0.57899972000E-04 0.99999997956E+00 167 0.65667820000E+00 -0.12439250000E+01 0.32740000000E+04 -0.20123659000E-03 -0.15621199000E-03 0.99999996755E+00 168 0.15580740000E+01 0.71544080000E-01 0.32740000000E+04 -0.39973151000E-03 0.42231411000E-04 0.99999991922E+00 169 -0.14836280000E+00 0.11216080000E+01 0.32740000000E+04 0.25565125000E-03 -0.10527251000E-03 0.99999996178E+00 170 -0.30251330000E+00 0.78955590000E+00 0.32740000000E+04 -0.55550154000E-04 -0.26381651000E-04 0.99999999811E+00 171 0.26186610000E+01 0.53148590000E+00 0.32740000000E+04 -0.51983799000E-04 -0.13598692000E-03 0.99999998940E+00 172 -0.93796020000E+00 -0.10854310000E+01 0.32740000000E+04 0.21232151000E-03 -0.86966516000E-04 0.99999997368E+00 173 -0.15492210000E+00 0.14466910000E+00 0.32740000000E+04 -0.17121165000E-04 -0.11503198000E-04 0.99999999979E+00 174 -0.11527180000E-01 -0.14525240000E+01 0.32740000000E+04 0.25381829000E-03 -0.26391074000E-03 0.99999993296E+00 175 0.28403220000E+01 0.19696270000E+01 0.32740000000E+04 -0.16198649000E-03 0.23435334000E-03 0.99999995942E+00 176 0.48796590000E+00 0.43179250000E+00 0.32740000000E+04 -0.18582585000E-03 0.14003622000E-04 0.99999998264E+00 177 0.22139410000E+01 0.21495870000E+01 0.32740000000E+04 -0.23941454000E-03 0.92065005000E-04 0.99999996710E+00 178 0.16315610000E+01 -0.10665770000E+01 0.32740000000E+04 -0.11778554000E-03 0.14206368000E-03 0.99999998297E+00 179 0.21992510000E+01 0.22048940000E+01 0.32740000000E+04 0.39605828000E-04 0.53215481000E-03 0.99999985762E+00 180 0.21992510000E+01 0.22048940000E+01 0.32740000000E+04 0.39605828000E-04 0.53215481000E-03 0.99999985762E+00 181 0.13971740000E+01 -0.22371550000E+01 0.32740000000E+04 -0.96330710000E-04 0.10075361000E-02 0.99999948780E+00 182 0.79124550000E+00 -0.12800860000E+01 0.32740000000E+04 0.27946986000E-04 -0.22382537000E-03 0.99999997456E+00 183 -0.81965940000E+00 0.77157420000E+00 0.32740000000E+04 0.13440104000E-03 -0.24231731000E-04 0.99999999067E+00 184 0.18928690000E+01 0.22211120000E+00 0.32740000000E+04 -0.27667021000E-03 -0.24274892000E-03 0.99999993226E+00 185 0.24107680000E+00 0.19173320000E+01 0.32740000000E+04 -0.87797180000E-05 0.20743211000E-03 0.99999997845E+00 186 -0.52816450000E+00 -0.91463260000E+00 0.32740000000E+04 0.39866634000E-04 0.43073873000E-04 0.99999999828E+00 187 -0.52816450000E+00 -0.91463260000E+00 0.32740000000E+04 0.39866634000E-04 0.43073873000E-04 0.99999999828E+00 188 0.64243490000E+00 -0.14997190000E+00 0.32740000000E+04 -0.19498718000E-03 -0.55605724000E-04 0.99999997944E+00 189 -0.53021650000E+00 -0.36038700000E+00 0.32740000000E+04 0.16170851000E-03 -0.35085861000E-03 0.99999992537E+00 190 0.14268660000E+01 -0.39020680000E+00 0.32740000000E+04 0.35631761000E-03 -0.30488442000E-03 0.99999989004E+00 191 0.22689870000E+01 0.52413970000E+00 0.32740000000E+04 -0.34847605000E-03 0.27356333000E-04 0.99999993891E+00 192 0.70881570000E+00 0.17659030000E+01 0.32740000000E+04 0.25159560000E-03 0.15610737000E-03 0.99999995617E+00 193 0.17901760000E+01 0.12387870000E+01 0.32740000000E+04 -0.20850205000E-03 -0.23144820000E-03 0.99999995148E+00 194 -0.12860080000E+00 0.72716650000E+00 0.32740000000E+04 0.14849948000E-04 -0.12129831000E-04 0.99999999982E+00 195 0.59138570000E+00 -0.14514500000E+00 0.32740000000E+04 -0.54639236000E-05 0.29348323000E-03 0.99999995692E+00 196 0.10943400000E+01 -0.10655170000E+01 0.32740000000E+04 0.49657108000E-04 0.61201448000E-04 0.99999999689E+00 197 0.14055990000E+01 -0.13878260000E+01 0.32740000000E+04 -0.28049506000E-03 -0.23899648000E-03 0.99999993210E+00 198 -0.76882520000E+00 0.58458380000E+00 0.32740000000E+04 0.61414736000E-04 -0.25384052000E-03 0.99999996590E+00 199 0.16325910000E+01 0.26175690000E+01 0.32740000000E+04 0.10093528000E-04 0.10349724000E-03 0.99999999459E+00 200 0.44254170000E+00 0.90995500000E+00 0.32740000000E+04 -0.30529735000E-03 -0.34208622000E-03 0.99999989489E+00 201 0.19241690000E+01 0.21216040000E+00 0.32740000000E+04 -0.10538383000E-03 0.70339061000E-04 0.99999999197E+00 202 0.19241690000E+01 0.21216040000E+00 0.32740000000E+04 -0.10538383000E-03 0.70339061000E-04 0.99999999197E+00 203 -0.13219800000E+01 0.66785980000E-01 0.32740000000E+04 0.62232793000E-04 -0.25289907000E-03 0.99999996608E+00 204 -0.13794710000E+00 -0.62239170000E-01 0.32740000000E+04 -0.29059156000E-04 -0.17435894000E-03 0.99999998438E+00 205 0.95447580000E+00 -0.51671270000E+00 0.32740000000E+04 0.30252984000E-03 -0.85520849000E-04 0.99999995058E+00 206 -0.14548560000E+01 0.63481170000E+00 0.32740000000E+04 -0.96446012000E-04 0.93339295000E-04 0.99999999099E+00 207 0.23694250000E+01 0.62317450000E+00 0.32740000000E+04 -0.38348153000E-04 -0.17519182000E-03 0.99999998392E+00 208 0.21184670000E+01 0.42343910000E+00 0.32740000000E+04 0.66051231000E-03 -0.40975548000E-03 0.99999969791E+00 209 0.19987140000E+01 0.93673560000E+00 0.32740000000E+04 0.74828662000E-04 0.21302365000E-04 0.99999999697E+00 210 0.24987940000E+01 0.14757270000E+01 0.32740000000E+04 0.93817303000E-04 0.19797312000E-03 0.99999997600E+00 211 0.28922110000E+01 0.14665510000E+01 0.32740000000E+04 -0.76767785000E-04 0.80116057000E-04 0.99999999384E+00 212 0.32470090000E+00 -0.78918770000E+00 0.32740000000E+04 0.22959049000E-03 -0.23708631000E-03 0.99999994554E+00 213 -0.65304830000E+00 0.18563970000E+01 0.32740000000E+04 0.33274014000E-03 0.15480352000E-03 0.99999993266E+00 214 0.15630750000E+01 0.62676390000E+00 0.32740000000E+04 -0.10296760000E-03 -0.14500582000E-03 0.99999998419E+00 215 0.52905000000E+00 0.46175310000E+00 0.32740000000E+04 -0.31143500000E-04 -0.21442976000E-03 0.99999997652E+00 216 0.52905000000E+00 0.46175310000E+00 0.32740000000E+04 -0.31143500000E-04 -0.21442976000E-03 0.99999997652E+00 217 -0.16615690000E+01 0.47243450000E+00 0.32740000000E+04 0.10548623000E-03 0.47523838000E-04 0.99999999331E+00 218 0.98190390000E+00 0.39048690000E+00 0.32740000000E+04 -0.29472799000E-05 0.11687133000E-03 0.99999999317E+00 219 -0.20759020000E+00 0.24386650000E+00 0.32740000000E+04 -0.11725612000E-03 0.91498541000E-05 0.99999999308E+00 220 -0.30283830000E+00 0.22123680000E+00 0.32740000000E+04 0.25130302000E-03 -0.75044682000E-05 0.99999996840E+00 221 -0.23035740000E+00 0.12534550000E+01 0.32740000000E+04 -0.24939538000E-04 -0.14355434000E-03 0.99999998939E+00 222 0.11905160000E+01 0.96692900000E+00 0.32740000000E+04 -0.11920661000E-03 -0.18304092000E-04 0.99999999273E+00 223 -0.61827650000E+00 -0.35213380000E-01 0.32740000000E+04 -0.33959237000E-03 -0.83459010000E-04 0.99999993886E+00 224 -0.16411570000E+01 -0.62865050000E+00 0.32740000000E+04 -0.15986399000E-03 -0.27361096000E-03 0.99999994979E+00 225 0.11254620000E+01 0.50753280000E+00 0.32740000000E+04 -0.52415871000E-04 0.69621012000E-04 0.99999999620E+00 226 0.21072400000E+01 0.22236470000E+01 0.32740000000E+04 -0.83206447000E-04 0.20593268000E-03 0.99999997533E+00 227 0.10996870000E+01 0.66025040000E+00 0.32740000000E+04 -0.16002246000E-03 0.36044535000E-03 0.99999992224E+00 228 0.10996870000E+01 0.66025040000E+00 0.32740000000E+04 -0.16002246000E-03 0.36044535000E-03 0.99999992224E+00 229 0.69205880000E+00 -0.13076780000E+00 0.32740000000E+04 0.35417607000E-03 -0.56886984000E-04 0.99999993566E+00 230 0.11361040000E+01 -0.23883030000E+00 0.32740000000E+04 -0.56130706000E-04 -0.38806198000E-03 0.99999992313E+00 231 -0.41355340000E+00 -0.95913870000E+00 0.32740000000E+04 0.37700418000E-03 -0.28137825000E-03 0.99999988935E+00 232 0.48853550000E+00 -0.66972100000E+00 0.32740000000E+04 0.14350037000E-04 -0.38129589000E-03 0.99999992720E+00 233 -0.18035020000E+01 -0.46686810000E+00 0.32740000000E+04 -0.42893786000E-04 -0.32093644000E-03 0.99999994758E+00 234 0.31214470000E+00 0.10319070000E+01 0.32740000000E+04 -0.15897775000E-03 0.27014216000E-03 0.99999995087E+00 235 0.11924450000E+01 0.15215550000E+01 0.32740000000E+04 0.35710909000E-03 0.66433269000E-04 0.99999993403E+00 236 0.20336370000E+01 0.15901470000E+01 0.32740000000E+04 -0.37522444000E-04 -0.54958673000E-04 0.99999999779E+00 237 0.62311240000E+00 0.20634440000E+01 0.32740000000E+04 0.15452580000E-03 0.27150154000E-03 0.99999995120E+00 238 0.20315070000E+01 0.55408220000E+00 0.32740000000E+04 0.17670607000E-03 -0.21142261000E-03 0.99999996204E+00 239 0.16529260000E+01 0.23344650000E+00 0.32740000000E+04 -0.31720614000E-04 -0.34867378000E-03 0.99999993871E+00 240 -0.98195950000E+00 -0.53708590000E+00 0.32740000000E+04 0.10870397000E-03 -0.12161916000E-03 0.99999998670E+00 241 0.22205560000E+00 -0.96246990000E+00 0.32740000000E+04 0.60596147000E-04 -0.27988589000E-03 0.99999995900E+00 242 0.31190780000E+00 -0.33346440000E+00 0.32740000000E+04 0.73884337000E-04 -0.42795557000E-04 0.99999999635E+00 243 0.19497060000E+01 0.10707890000E+01 0.32740000000E+04 0.10545465000E-03 -0.13337417000E-03 0.99999998555E+00 244 0.93343010000E+00 -0.72721010000E+00 0.32740000000E+04 -0.56880759000E-04 -0.19528808000E-03 0.99999997931E+00 245 0.93343010000E+00 -0.72721010000E+00 0.32740000000E+04 -0.56880759000E-04 -0.19528808000E-03 0.99999997931E+00 246 -0.69893890000E+00 0.19283290000E+01 0.32740000000E+04 0.17110760000E-03 0.30378890000E-03 0.99999993922E+00 247 0.92918320000E+00 0.11722670000E+01 0.32740000000E+04 -0.26312872000E-03 -0.48706017000E-04 0.99999996420E+00 248 0.10573220000E+01 0.14178080000E+01 0.32740000000E+04 0.62649480000E-04 0.23809233000E-03 0.99999996969E+00 249 -0.67353790000E+00 0.98023540000E+00 0.32740000000E+04 0.82326769000E-04 0.21731702000E-03 0.99999997300E+00 250 -0.84766650000E+00 -0.61186690000E+00 0.32740000000E+04 0.21940874000E-04 -0.36671068000E-03 0.99999993252E+00 251 0.71461780000E+00 0.60075910000E+00 0.32740000000E+04 0.10057638000E-04 0.13760068000E-03 0.99999999048E+00 252 0.11041310000E+01 0.19590950000E+01 0.32740000000E+04 -0.11289071000E-04 0.39353149000E-03 0.99999992250E+00 253 0.46898890000E+00 0.15091460000E+01 0.32740000000E+04 0.66002096000E-04 0.66619134000E-04 0.99999999560E+00 254 0.16297700000E+00 0.81207190000E+00 0.32740000000E+04 0.14081027000E-03 -0.22632454000E-03 0.99999996447E+00 255 -0.94084530000E+00 0.15275580000E+01 0.32740000000E+04 0.21777443000E-03 0.70335678000E-04 0.99999997381E+00 256 -0.12658850000E+01 0.22921210000E+01 0.32740000000E+04 -0.56828067000E-04 0.11410622000E-03 0.99999999188E+00 257 0.67941380000E+00 0.19812370000E+01 0.32740000000E+04 0.21520458000E-03 0.19703126000E-03 0.99999995743E+00 258 0.33057030000E+00 0.17470520000E+01 0.32740000000E+04 0.16628300000E-03 -0.11203238000E-04 0.99999998611E+00 259 0.33057030000E+00 0.17470520000E+01 0.32740000000E+04 0.16628300000E-03 -0.11203238000E-04 0.99999998611E+00 260 0.19506330000E+01 0.18771890000E+01 0.32740000000E+04 -0.33643321000E-03 -0.17081451000E-04 0.99999994326E+00 261 -0.11303180000E+01 0.81887340000E+00 0.32740000000E+04 0.85692773000E-04 0.24025577000E-03 0.99999996747E+00 262 -0.59083380000E+00 0.17599080000E+01 0.32740000000E+04 0.33380350000E-03 0.51898314000E-04 0.99999994294E+00 263 -0.99901150000E-01 0.12989200000E+01 0.32740000000E+04 0.33983920000E-03 -0.29735503000E-03 0.99999989804E+00 264 0.89471780000E+00 -0.36219330000E+00 0.32740000000E+04 -0.32409088000E-03 0.86886375000E-05 0.99999994744E+00 265 -0.65709650000E-01 0.63263820000E+00 0.32740000000E+04 0.22307401000E-03 -0.70889205000E-05 0.99999997509E+00 266 -0.18106830000E+01 0.19799540000E+01 0.32740000000E+04 -0.33100563000E-03 0.43058200000E-03 0.99999985252E+00 267 0.84615400000E+00 0.66705710000E+00 0.32740000000E+04 0.97957047000E-04 0.13539979000E-03 0.99999998604E+00 268 -0.10774380000E+01 0.19028040000E+01 0.32740000000E+04 0.84046500000E-04 0.13497949000E-03 0.99999998736E+00 269 0.15206570000E+01 0.44867980000E+00 0.32740000000E+04 0.15705430000E-03 0.83481600000E-05 0.99999998763E+00 270 0.27107720000E+00 0.26923540000E+01 0.32740000000E+04 0.19251724000E-03 0.24739429000E-03 0.99999995087E+00 271 -0.17844050000E+00 0.63712110000E+00 0.32740000000E+04 0.13152968000E-03 -0.10995509000E-03 0.99999998530E+00 272 0.18568860000E+01 -0.29728460000E+00 0.32740000000E+04 0.30654232000E-05 -0.31920106000E-04 0.99999999949E+00 273 0.18568860000E+01 -0.29728460000E+00 0.32740000000E+04 0.30654232000E-05 -0.31920106000E-04 0.99999999949E+00 274 0.34017610000E+00 -0.22108610000E-01 0.32740000000E+04 -0.27730508000E-04 -0.11572620000E-03 0.99999999292E+00 275 -0.64738980000E+00 0.19802820000E+01 0.32740000000E+04 0.19959314000E-03 0.14359664000E-03 0.99999996977E+00 276 -0.91646530000E+00 -0.15883550000E-01 0.32740000000E+04 -0.32061529000E-04 -0.47082049000E-03 0.99999988865E+00 277 0.75365510000E+00 0.18489440000E+01 0.32740000000E+04 -0.37617101000E-04 0.23915261000E-03 0.99999997070E+00 278 0.25426940000E+01 -0.16779390000E+00 0.32740000000E+04 -0.15314497000E-03 -0.13617653000E-03 0.99999997900E+00 279 0.32740360000E+00 0.12298480000E+01 0.32740000000E+04 0.93453644000E-04 -0.12840072000E-03 0.99999998739E+00 280 -0.35441540000E+00 0.97443010000E+00 0.32740000000E+04 0.69902955000E-04 0.25644575000E-03 0.99999996467E+00 281 -0.83598080000E+00 0.12042180000E+01 0.32740000000E+04 0.13403436000E-03 -0.13667166000E-03 0.99999998168E+00 282 0.76578580000E+00 0.15114470000E+01 0.32740000000E+04 0.15307470000E-03 0.28178052000E-03 0.99999994858E+00 283 -0.76811930000E+00 0.13476270000E+00 0.32740000000E+04 -0.29683804000E-04 -0.53407828000E-03 0.99999985694E+00 284 -0.16610240000E+00 0.93282980000E+00 0.32740000000E+04 0.30626801000E-04 -0.66875458000E-04 0.99999999729E+00 285 0.21971810000E+01 -0.53562160000E+00 0.32740000000E+04 -0.18669237000E-03 -0.15879753000E-03 0.99999996996E+00 286 0.13422450000E+01 0.17924290000E+01 0.32740000000E+04 -0.34234396000E-03 0.21018546000E-03 0.99999991931E+00 287 -0.97480100000E+00 -0.10370610000E+01 0.32740000000E+04 -0.15210014000E-03 0.46940948000E-03 0.99999987826E+00 288 -0.97480100000E+00 -0.10370610000E+01 0.32740000000E+04 -0.15210014000E-03 0.46940948000E-03 0.99999987826E+00 289 0.18783970000E+01 -0.11437820000E+00 0.32740000000E+04 0.23521377000E-04 -0.56556673000E-04 0.99999999812E+00 290 -0.19073830000E+01 0.41663910000E+00 0.32740000000E+04 0.11409046000E-04 0.46446999000E-04 0.99999999886E+00 291 -0.78443290000E+00 -0.10386710000E+01 0.32740000000E+04 0.13377017000E-03 -0.81979459000E-04 0.99999998769E+00 292 0.19032280000E+01 0.74109670000E+00 0.32740000000E+04 -0.25300460000E-03 -0.15072384000E-04 0.99999996788E+00 293 0.16482980000E+01 0.26153910000E+01 0.32740000000E+04 -0.30658854000E-03 0.69912458000E-04 0.99999995056E+00 294 0.13602140000E+01 -0.11751190000E+01 0.32740000000E+04 0.10176066000E-03 -0.57906665000E-04 0.99999999315E+00 295 0.17040880000E+01 0.22548420000E+01 0.32740000000E+04 0.28937924000E-03 0.16602471000E-03 0.99999994435E+00 296 -0.65407230000E-01 0.19322070000E+01 0.32740000000E+04 -0.97721177000E-05 0.72276140000E-04 0.99999999734E+00 297 -0.15982860000E+00 0.25261530000E+00 0.32740000000E+04 0.14948691000E-03 -0.74712705000E-04 0.99999998604E+00 298 0.34672120000E+00 0.53932010000E+00 0.32740000000E+04 -0.13419220000E-03 0.28175517000E-03 0.99999995130E+00 299 -0.72217460000E+00 -0.26147640000E+00 0.32740000000E+04 0.32600285000E-04 -0.21778888000E-03 0.99999997575E+00 300 -0.19758430000E+01 0.15528370000E+01 0.32740000000E+04 0.44891076000E-04 0.91434413000E-04 0.99999999481E+00 301 0.13101870000E+01 0.11852280000E+01 0.32740000000E+04 -0.22802920000E-04 0.17264308000E-03 0.99999998484E+00 302 0.45405360000E-01 0.58236920000E+00 0.32740000000E+04 0.28405257000E-03 0.45342863000E-03 0.99999985686E+00 303 -0.18139500000E+00 0.61876510000E-01 0.32740000000E+04 0.64842432000E-04 -0.60558985000E-04 0.99999999606E+00 304 -0.20387420000E+01 0.17712860000E-01 0.32740000000E+04 0.19246017000E-04 0.16786270000E-03 0.99999998573E+00 305 -0.24388190000E+01 -0.12223490000E+01 0.32740000000E+04 -0.45233889000E-03 -0.21905144000E-05 0.99999989769E+00 306 0.15350690000E+01 0.43432050000E+00 0.32740000000E+04 0.28052126000E-03 0.13483733000E-03 0.99999995156E+00 307 0.31274190000E+00 0.18178890000E+00 0.32740000000E+04 0.43535154000E-04 -0.92507420000E-04 0.99999999477E+00 308 0.31274190000E+00 0.18178890000E+00 0.32740000000E+04 0.43535154000E-04 -0.92507420000E-04 0.99999999477E+00 309 0.20641510000E+01 0.91054250000E+00 0.32740000000E+04 0.65788794000E-04 -0.65634806000E-04 0.99999999568E+00 310 -0.79679360000E+00 0.21938390000E+01 0.32740000000E+04 -0.22434386000E-03 0.77556033000E-04 0.99999997183E+00 311 -0.29756940000E+00 0.90245100000E+00 0.32740000000E+04 -0.82028484000E-04 0.16546668000E-03 0.99999998295E+00 312 -0.12598450000E+01 -0.10590180000E+01 0.32740000000E+04 0.18480862000E-03 -0.44983528000E-04 0.99999998191E+00 313 -0.99115430000E+00 0.12623910000E+01 0.32740000000E+04 -0.40924791000E-04 0.87858753000E-04 0.99999999530E+00 314 -0.16798970000E+01 -0.46733330000E-01 0.32740000000E+04 0.71619041000E-04 -0.40532221000E-03 0.99999991529E+00 315 -0.43073470000E+00 0.99883270000E+00 0.32740000000E+04 0.54441375000E-03 0.14154008000E-03 0.99999984179E+00 316 -0.62102930000E+00 0.21682180000E+01 0.32740000000E+04 0.75539271000E-03 0.28968803000E-03 0.99999967273E+00 317 0.23930570000E+01 0.14388800000E+01 0.32740000000E+04 -0.82500032000E-04 0.30822202000E-03 0.99999994910E+00 318 0.81103320000E+00 -0.22106370000E-01 0.32740000000E+04 0.27167227000E-03 -0.52733569000E-04 0.99999996171E+00 319 0.27092560000E+01 0.14853790000E+01 0.32740000000E+04 0.19555637000E-05 0.29443204000E-03 0.99999995665E+00 320 0.20940410000E+00 0.10729570000E+01 0.32740000000E+04 0.93287585000E-04 0.35222375000E-03 0.99999993362E+00 321 0.57822680000E+00 0.82200990000E+00 0.32740000000E+04 -0.59668560000E-04 0.23932947000E-03 0.99999996958E+00 322 0.57822680000E+00 0.82200990000E+00 0.32740000000E+04 -0.59668560000E-04 0.23932947000E-03 0.99999996958E+00 323 -0.16153100000E+00 0.23536690000E+01 0.32740000000E+04 0.15572576000E-03 0.32322420000E-03 0.99999993564E+00 324 -0.57166090000E+00 0.19806570000E+01 0.32740000000E+04 0.15385219000E-03 0.25455956000E-03 0.99999995576E+00 325 -0.65965780000E+00 -0.36054350000E+00 0.32740000000E+04 0.36191332000E-05 -0.26821709000E-03 0.99999996402E+00 326 0.11242550000E+01 -0.93486430000E+00 0.32740000000E+04 0.36136748000E-03 -0.20282892000E-03 0.99999991414E+00 327 0.17718350000E+01 0.15904350000E+01 0.32740000000E+04 0.27092322000E-03 0.23991412000E-03 0.99999993452E+00 328 -0.11353580000E+01 -0.84788110000E+00 0.32740000000E+04 0.13454637000E-03 -0.14470545000E-03 0.99999998048E+00 329 0.27635610000E+00 0.24809530000E+01 0.32740000000E+04 -0.70714334000E-04 0.27315615000E-03 0.99999996019E+00 330 0.16161330000E+01 0.21766930000E+01 0.32740000000E+04 0.81040019000E-06 0.16809368000E-03 0.99999998587E+00 331 0.21395170000E+01 -0.46825130000E+00 0.32740000000E+04 0.48027872000E-03 -0.68695832000E-03 0.99999964871E+00 332 -0.12423170000E+01 0.27814490000E+00 0.32740000000E+04 0.95466021000E-04 -0.37311201000E-03 0.99999992584E+00 333 -0.62797970000E+00 0.13903030000E+01 0.32740000000E+04 0.22364505000E-03 0.28218426000E-05 0.99999997499E+00 334 0.14839170000E+01 -0.11413750000E+00 0.32740000000E+04 -0.73424206000E-04 0.85365551000E-04 0.99999999366E+00 335 0.13763630000E+01 -0.11631250000E+01 0.32740000000E+04 -0.23648174000E-04 -0.13615434000E-03 0.99999999045E+00 336 0.13763630000E+01 -0.11631250000E+01 0.32740000000E+04 -0.23648174000E-04 -0.13615434000E-03 0.99999999045E+00 337 -0.19260780000E+00 -0.73853670000E+00 0.32740000000E+04 0.14886845000E-03 -0.12141528000E-03 0.99999998155E+00 338 -0.33395580000E+00 0.18218270000E+01 0.32740000000E+04 0.27639268000E-03 0.24201942000E-03 0.99999993252E+00 339 0.70955180000E+00 0.17839000000E+01 0.32740000000E+04 -0.11521347000E-03 0.14297210000E-03 0.99999998314E+00 340 -0.16186710000E+00 0.65725990000E+00 0.32740000000E+04 0.26012611000E-03 0.33341444000E-03 0.99999991058E+00 341 0.86527820000E+00 0.21417190000E+01 0.32740000000E+04 0.25443250000E-03 0.33065883000E-03 0.99999991296E+00 342 -0.86528310000E+00 0.54354550000E+00 0.32740000000E+04 -0.92766495000E-04 0.14315436000E-03 0.99999998545E+00 343 -0.12280560000E+01 -0.87478730000E+00 0.32740000000E+04 -0.20556765000E-03 -0.29079174000E-03 0.99999993659E+00 344 -0.16428510000E+00 0.65479590000E+00 0.32740000000E+04 -0.43693246000E-03 0.37696122000E-03 0.99999983350E+00 345 0.20468260000E+01 -0.17063720000E+00 0.32740000000E+04 -0.43062806000E-04 -0.86359491000E-04 0.99999999534E+00 346 0.20942860000E+01 0.13548430000E+00 0.32740000000E+04 -0.18976645000E-03 -0.14272574000E-03 0.99999997181E+00 347 0.16567140000E+01 0.66629220000E+00 0.32740000000E+04 -0.28982278000E-04 -0.85860993000E-04 0.99999999589E+00 348 0.44649910000E+00 -0.65680890000E+00 0.32740000000E+04 -0.41999596000E-04 -0.23291114000E-03 0.99999997199E+00 349 0.27452550000E+01 -0.57211420000E+00 0.32740000000E+04 -0.12882377000E-03 0.63293221000E-04 0.99999998970E+00 350 0.11278100000E+01 -0.55687470000E+00 0.32740000000E+04 -0.74816198000E-04 -0.64902917000E-04 0.99999999510E+00 351 0.44710230000E+00 -0.48924950000E+00 0.32740000000E+04 0.39272869000E-03 0.26903854000E-05 0.99999992288E+00 352 -0.60610420000E+00 -0.38669640000E+00 0.32740000000E+04 -0.71085102000E-04 -0.13933580000E-03 0.99999998777E+00 353 0.14911530000E+01 0.10758150000E+00 0.32740000000E+04 -0.18032462000E-04 -0.27396411000E-03 0.99999996231E+00 354 0.23399870000E+01 0.20088480000E+01 0.32740000000E+04 -0.37675152000E-04 0.22224031000E-03 0.99999997459E+00 355 0.12713520000E+01 0.14294890000E+00 0.32740000000E+04 -0.33899931000E-04 -0.37454156000E-04 0.99999999872E+00 356 0.26441520000E+00 0.16257640000E+01 0.32740000000E+04 -0.11027486000E-03 0.41172359000E-03 0.99999990916E+00 357 0.49877820000E+00 0.40328650000E+00 0.32740000000E+04 -0.11727085000E-03 0.10455235000E-03 0.99999998766E+00 358 0.86410100000E+00 0.10899150000E+01 0.32740000000E+04 0.17644423000E-03 0.88320812000E-05 0.99999998439E+00 359 -0.66617720000E+00 -0.64188460000E+00 0.32740000000E+04 -0.21579499000E-03 -0.40974587000E-03 0.99999989277E+00 360 0.40486440000E+00 0.33413880000E+00 0.32740000000E+04 -0.25437438000E-03 -0.13866744000E-03 0.99999995803E+00 361 0.32512610000E+00 0.15457230000E+01 0.32740000000E+04 -0.12554182000E-03 0.13293540000E-03 0.99999998328E+00 362 0.19761390000E+01 -0.10348710000E+01 0.32740000000E+04 -0.20183434000E-03 -0.15765817000E-03 0.99999996720E+00 363 0.14454450000E+01 -0.24268480000E-01 0.32740000000E+04 -0.40542651000E-04 0.21019968000E-03 0.99999997709E+00 364 0.20581210000E+01 0.14219110000E+01 0.32740000000E+04 0.10120292000E-03 -0.15623446000E-03 0.99999998267E+00 365 0.10096180000E+01 -0.15051250000E+00 0.32740000000E+04 -0.11904794000E-03 -0.21577458000E-03 0.99999996963E+00 366 -0.19287440000E+00 -0.55015900000E-01 0.32740000000E+04 0.12796106000E-03 -0.35021960000E-04 0.99999999120E+00 367 -0.19287440000E+00 -0.55015900000E-01 0.32740000000E+04 0.12796106000E-03 -0.35021960000E-04 0.99999999120E+00 368 0.29619640000E+00 0.16825440000E+01 0.32740000000E+04 0.19739009000E-03 0.29073018000E-03 0.99999993826E+00 369 0.92147190000E+00 0.15730200000E+01 0.32740000000E+04 0.13742011000E-03 0.30946467000E-03 0.99999994267E+00 370 0.11937760000E-01 -0.26239570000E+00 0.32740000000E+04 0.49279570000E-04 -0.31875813000E-03 0.99999994798E+00 371 -0.52446500000E+00 -0.21646760000E+00 0.32740000000E+04 0.58734644000E-04 -0.10271155000E-03 0.99999999300E+00 372 -0.67217420000E+00 -0.96885320000E+00 0.32740000000E+04 0.38421822000E-04 -0.19673022000E-03 0.99999997991E+00 373 0.93039530000E+00 -0.66674620000E+00 0.32740000000E+04 -0.15321031000E-03 0.22071322000E-03 0.99999996391E+00 374 -0.94890380000E+00 -0.94260740000E+00 0.32740000000E+04 -0.98165125000E-04 -0.42394277000E-04 0.99999999428E+00 375 0.11203450000E+00 -0.44798720000E+00 0.32740000000E+04 0.22490225000E-04 -0.11210429000E-05 0.99999999975E+00 376 0.13098710000E+01 -0.17779230000E+01 0.32740000000E+04 -0.35432004000E-03 -0.52915275000E-03 0.99999979723E+00 377 0.16504090000E+01 0.75117410000E+00 0.32740000000E+04 0.58487570000E-03 0.18067898000E-04 0.99999982880E+00 378 0.16003080000E+01 0.98576470000E+00 0.32740000000E+04 -0.88061061000E-04 0.36777224000E-03 0.99999992849E+00 379 0.25757020000E+01 0.23349440000E+01 0.32740000000E+04 -0.75372853000E-04 0.40167844000E-03 0.99999991649E+00 380 0.25040830000E+00 0.26376640000E+01 0.32740000000E+04 0.59823491000E-04 0.12922930000E-03 0.99999998986E+00 381 0.13648630000E+01 0.35786880000E+00 0.32740000000E+04 0.15939350000E-03 0.89978494000E-04 0.99999998325E+00 382 -0.11756950000E+01 0.73839140000E+00 0.32740000000E+04 0.19829383000E-03 -0.17834027000E-03 0.99999996444E+00 383 -0.66307680000E+00 0.13508520000E+01 0.32740000000E+04 0.41497879000E-04 0.31483168000E-03 0.99999994958E+00 384 -0.61288200000E+00 0.71866020000E+00 0.32740000000E+04 -0.62771825000E-04 -0.14003973000E-03 0.99999998822E+00 385 0.10414700000E+01 -0.78467730000E+00 0.32740000000E+04 -0.59219863000E-04 0.86624081000E-04 0.99999999449E+00 386 -0.51836030000E+00 -0.52455860000E+00 0.32740000000E+04 0.34027561000E-03 0.22980708000E-03 0.99999991570E+00 387 0.87810080000E+00 0.21468760000E+01 0.32740000000E+04 -0.22444015000E-03 0.13689895000E-03 0.99999996544E+00 388 0.23279140000E+01 0.41832460000E+00 0.32740000000E+04 0.26753301000E-05 -0.16211618000E-03 0.99999998686E+00 389 0.96117250000E-01 -0.24941740000E-01 0.32740000000E+04 0.60185244000E-04 -0.52063406000E-04 0.99999999683E+00 390 -0.37921280000E+00 -0.36491060000E+00 0.32740000000E+04 -0.54573833000E-04 -0.42336618000E-04 0.99999999761E+00 391 -0.14660660000E+01 -0.71355780000E+00 0.32740000000E+04 0.46479632000E-04 -0.27804656000E-03 0.99999996026E+00 392 -0.11595860000E+01 -0.35634780000E-01 0.32740000000E+04 0.26450766000E-03 -0.19398039000E-03 0.99999994620E+00 393 -0.69577050000E+00 0.14131990000E+01 0.32740000000E+04 0.21033862000E-03 0.86550346000E-04 0.99999997413E+00 394 0.20913990000E+01 0.22665650000E+01 0.32740000000E+04 -0.75846241000E-04 0.69753155000E-05 0.99999999710E+00 395 -0.80559720000E+00 0.20785140000E+01 0.32740000000E+04 0.62865613000E-04 -0.59071474000E-04 0.99999999628E+00 396 0.10435160000E+01 -0.47911040000E+00 0.32740000000E+04 0.48764039000E-04 -0.35198531000E-03 0.99999993686E+00 397 -0.33861630000E+00 -0.74738140000E+00 0.32740000000E+04 0.10599037000E-03 0.55045250000E-04 0.99999999287E+00 398 -0.54077860000E-01 -0.39853000000E+00 0.32740000000E+04 -0.26886043000E-03 -0.33411803000E-03 0.99999990804E+00 399 0.17221680000E+01 -0.14295980000E+00 0.32740000000E+04 -0.21827787000E-03 -0.14596707000E-03 0.99999996552E+00 400 0.17221680000E+01 -0.14295980000E+00 0.32740000000E+04 -0.21827787000E-03 -0.14596707000E-03 0.99999996552E+00 401 -0.32680710000E+00 0.77767970000E+00 0.32740000000E+04 -0.39298564000E-04 0.33630193000E-04 0.99999999866E+00 402 0.19533350000E+01 0.24553260000E+01 0.32740000000E+04 -0.86279222000E-04 0.72705741000E-04 0.99999999363E+00 403 -0.55652680000E+00 -0.11252920000E+01 0.32740000000E+04 0.43521195000E-04 -0.12884558000E-03 0.99999999075E+00 404 -0.54261790000E+00 -0.92976500000E+00 0.32740000000E+04 0.49081897000E-04 -0.12498671000E-03 0.99999999098E+00 405 0.61215910000E+00 0.12371560000E+01 0.32740000000E+04 0.24024128000E-03 0.36452497000E-04 0.99999997048E+00 406 0.22689540000E+01 0.20671690000E+01 0.32740000000E+04 -0.54872853000E-05 -0.45600591000E-04 0.99999999895E+00 407 -0.30159780000E+00 -0.29515390000E+00 0.32740000000E+04 -0.11376376000E-04 -0.23602368000E-03 0.99999997208E+00 408 0.10484950000E+01 -0.10951310000E+00 0.32740000000E+04 0.41603795000E-04 -0.23650199000E-03 0.99999997117E+00 409 -0.71035530000E+00 0.37751870000E+00 0.32740000000E+04 0.20523943000E-04 -0.53184791000E-04 0.99999999838E+00 410 -0.93966782000E-02 0.17221710000E+01 0.32740000000E+04 0.67894638000E-04 0.32507945000E-03 0.99999994486E+00 411 -0.46209920000E+00 0.19397990000E+01 0.32740000000E+04 0.62265506000E-04 0.45288022000E-03 0.99999989551E+00 412 0.56431340000E-01 0.38084220000E-01 0.32740000000E+04 -0.29364886000E-04 -0.54086087000E-03 0.99999985330E+00 413 0.10449270000E+01 0.99814050000E+00 0.32740000000E+04 0.72789117000E-04 0.40216913000E-04 0.99999999654E+00 414 -0.11931070000E+00 -0.51617950000E+00 0.32740000000E+04 0.29895902000E-04 -0.37271355000E-03 0.99999993010E+00 415 -0.58731910000E+00 0.10259980000E+01 0.32740000000E+04 -0.53889369000E-04 -0.20449309000E-03 0.99999997764E+00 416 0.23918580000E+01 0.19559910000E+01 0.32740000000E+04 -0.46597699000E-04 0.26334752000E-03 0.99999996424E+00 417 0.18690310000E+01 -0.79500860000E+00 0.32740000000E+04 -0.10504829000E-03 -0.37556596000E-03 0.99999992396E+00 418 0.11253190000E+01 0.15748920000E+01 0.32740000000E+04 -0.53718806000E-04 0.41966916000E-04 0.99999999768E+00 419 0.20118730000E+00 0.17143530000E+01 0.32740000000E+04 0.81485457000E-04 0.84149680000E-04 0.99999999314E+00 420 0.20118730000E+00 0.17143530000E+01 0.32740000000E+04 0.81485457000E-04 0.84149680000E-04 0.99999999314E+00 421 -0.13340400000E+01 0.22258620000E+01 0.32740000000E+04 -0.75681361000E-04 0.16443289000E-03 0.99999998362E+00 422 0.13896180000E+01 -0.25804890000E+00 0.32740000000E+04 0.36532460000E-05 -0.15381916000E-03 0.99999998816E+00 423 -0.93145280000E+00 0.12484070000E+01 0.32740000000E+04 0.18748360000E-03 0.10544617000E-03 0.99999997687E+00 424 -0.21943970000E+00 -0.39711500000E+00 0.32740000000E+04 -0.11373600000E-03 -0.19871918000E-03 0.99999997379E+00 425 0.27779130000E+00 0.71506930000E-01 0.32740000000E+04 -0.17168997000E-03 -0.18041606000E-03 0.99999996899E+00 426 0.30310650000E+00 0.15123460000E+01 0.32740000000E+04 0.83699349000E-04 0.24267464000E-03 0.99999996705E+00 427 -0.50156040000E+00 0.19905020000E+01 0.32740000000E+04 0.30814766000E-03 0.28868133000E-03 0.99999991085E+00 428 0.23094890000E+01 0.74815420000E+00 0.32740000000E+04 -0.12046826000E-03 0.12969501000E-03 0.99999998433E+00 429 0.37464240000E+00 -0.14696490000E+01 0.32740000000E+04 -0.21261880000E-03 -0.11843865000E-03 0.99999997038E+00 430 0.54784350000E+00 -0.38795180000E+00 0.32740000000E+04 -0.27017837000E-03 -0.71952185000E-04 0.99999996091E+00 431 0.10577630000E+01 0.16433100000E+01 0.32740000000E+04 -0.19297673000E-03 0.16829872000E-03 0.99999996722E+00 432 0.10577630000E+01 0.16433100000E+01 0.32740000000E+04 -0.19297673000E-03 0.16829872000E-03 0.99999996722E+00 433 0.19140560000E+01 0.22389000000E+01 0.32740000000E+04 -0.18391896000E-03 -0.16022568000E-03 0.99999997025E+00 434 -0.82605970000E+00 0.50264790000E-01 0.32740000000E+04 0.49653143000E-04 -0.26369269000E-03 0.99999996400E+00 435 0.23153900000E+01 0.15018590000E+00 0.32740000000E+04 -0.37520422000E-04 -0.73567193000E-04 0.99999999659E+00 436 0.14657250000E+01 0.10253440000E+01 0.32740000000E+04 -0.22472505000E-03 -0.19084413000E-04 0.99999997457E+00 437 -0.38154600000E+00 0.14695250000E+01 0.32740000000E+04 -0.46759246000E-05 0.49208269000E-04 0.99999999878E+00 438 0.21881130000E+01 0.12858100000E+01 0.32740000000E+04 -0.14020529000E-03 0.16708803000E-03 0.99999997621E+00 439 0.17089140000E+00 0.11550690000E+01 0.32740000000E+04 0.33567162000E-05 0.25070293000E-03 0.99999996857E+00 440 0.59839330000E+00 0.94406330000E+00 0.32740000000E+04 -0.12194685000E-03 0.22528319000E-03 0.99999996719E+00 441 0.89009570000E+00 0.18272920000E+01 0.32740000000E+04 0.33156227000E-03 0.11305220000E-03 0.99999993864E+00 442 0.27772890000E+00 -0.31626110000E+00 0.32740000000E+04 -0.15069383000E-03 -0.11867299000E-03 0.99999998160E+00 443 0.61228830000E+00 -0.71208600000E+00 0.32740000000E+04 0.41484076000E-04 -0.29945851000E-03 0.99999995430E+00 444 -0.13931620000E+00 0.15416720000E+01 0.32740000000E+04 0.20382773000E-03 -0.13834902000E-04 0.99999997913E+00 445 -0.10108890000E+01 0.18237290000E+01 0.32740000000E+04 0.25386063000E-03 0.20186116000E-03 0.99999994740E+00 446 -0.10108890000E+01 0.18237290000E+01 0.32740000000E+04 0.25386063000E-03 0.20186116000E-03 0.99999994740E+00 447 -0.74155170000E+00 0.33892930000E+00 0.32740000000E+04 0.31933142000E-03 -0.22038867000E-03 0.99999992473E+00 448 0.18114540000E+01 0.10768630000E+01 0.32740000000E+04 -0.61423823000E-04 -0.22636930000E-03 0.99999997249E+00 449 0.13235970000E+01 0.77129490000E+00 0.32740000000E+04 -0.17054264000E-04 0.12352546000E-03 0.99999999223E+00 450 0.16987940000E+00 0.56946940000E+00 0.32740000000E+04 -0.87700893000E-04 0.86069027000E-04 0.99999999245E+00 451 -0.85037540000E+00 -0.13400290000E+01 0.32740000000E+04 -0.14080123000E-03 0.50013183000E-04 0.99999998884E+00 452 0.48318240000E-01 0.19405150000E+00 0.32740000000E+04 0.13192867000E-03 -0.13283646000E-03 0.99999998247E+00 453 0.27225340000E+00 -0.12465270000E+01 0.32740000000E+04 0.76325610000E-04 -0.11643388000E-03 0.99999999031E+00 454 -0.13511340000E+01 -0.66992200000E+00 0.32740000000E+04 0.82496328000E-04 -0.24008696000E-03 0.99999996778E+00 455 0.91819120000E+00 0.20282090000E+01 0.32740000000E+04 0.48544818000E-04 0.24677694000E-03 0.99999996837E+00 456 0.37846230000E+00 -0.34973580000E+00 0.32740000000E+04 0.46333583000E-03 -0.28645407000E-03 0.99999985163E+00 457 -0.16909580000E-01 -0.24349600000E+00 0.32740000000E+04 0.82662227000E-04 -0.35633318000E-03 0.99999993310E+00 458 -0.27885090000E-01 -0.37837620000E+00 0.32740000000E+04 0.13926966000E-03 0.20196156000E-03 0.99999996991E+00 459 -0.14127540000E+01 0.17111450000E+01 0.32740000000E+04 0.21705800000E-03 0.20960627000E-03 0.99999995448E+00 460 -0.13999070000E+01 0.82221985000E-02 0.32740000000E+04 -0.11906151000E-04 -0.12193208000E-03 0.99999999250E+00 461 -0.14378930000E+01 -0.41404740000E+00 0.32740000000E+04 0.21295442000E-03 -0.40034417000E-03 0.99999989719E+00 462 0.98710100000E+00 -0.39983470000E+00 0.32740000000E+04 0.18537241000E-03 0.99288096000E-04 0.99999997789E+00 463 0.10270370000E+01 0.10898790000E+01 0.32740000000E+04 0.10572852000E-03 0.11692080000E-04 0.99999999434E+00 464 0.11928770000E+01 0.20174420000E+01 0.32740000000E+04 0.37694001000E-05 0.24068821000E-03 0.99999997103E+00 465 0.66343350000E+00 0.23519070000E+01 0.32740000000E+04 0.31273281000E-04 0.22249325000E-03 0.99999997476E+00 466 0.66343350000E+00 0.23519070000E+01 0.32740000000E+04 0.31273281000E-04 0.22249325000E-03 0.99999997476E+00 467 -0.15724530000E+01 -0.36723500000E+00 0.32740000000E+04 0.49799335000E-04 -0.27694326000E-03 0.99999996041E+00 468 0.11639590000E+01 -0.22704720000E+00 0.32740000000E+04 -0.20727639000E-03 -0.32258604000E-03 0.99999992649E+00 469 0.26139070000E+01 0.14174530000E+01 0.32740000000E+04 0.17082466000E-04 0.37038513000E-04 0.99999999917E+00 470 0.33487240000E+00 -0.37953050000E+00 0.32740000000E+04 0.11625318000E-03 0.33140735000E-04 0.99999999269E+00 471 0.11751240000E+01 -0.24814580000E+00 0.32740000000E+04 -0.70722395000E-04 -0.11676287000E-03 0.99999999068E+00 472 -0.28836810000E-01 -0.33443030000E+00 0.32740000000E+04 -0.15604212000E-05 -0.12284741000E-03 0.99999999245E+00 473 0.72402670000E+00 0.10052910000E+01 0.32740000000E+04 0.10160654000E-03 0.18242114000E-03 0.99999997820E+00 474 0.84406090000E+00 0.11881620000E+01 0.32740000000E+04 0.12892901000E-04 0.31649301000E-03 0.99999994983E+00 475 0.11074120000E+01 0.92247870000E+00 0.32740000000E+04 -0.22076363000E-03 0.13964748000E-03 0.99999996588E+00 476 0.13485200000E+01 0.19607570000E+01 0.32740000000E+04 0.56038833000E-04 0.15655016000E-03 0.99999998618E+00 477 -0.18455960000E+01 -0.10917920000E+01 0.32740000000E+04 0.94357601000E-04 -0.10786179000E-03 0.99999998973E+00 478 0.58100550000E+00 -0.82732820000E+00 0.32740000000E+04 -0.69795678000E-04 0.90582080000E-05 0.99999999752E+00 479 0.58100550000E+00 -0.82732820000E+00 0.32740000000E+04 -0.69795678000E-04 0.90582080000E-05 0.99999999752E+00 480 -0.58640520000E+00 0.15150520000E+01 0.32740000000E+04 0.79784681000E-04 -0.18405647000E-03 0.99999997988E+00 481 0.56293520000E+00 0.74174270000E+00 0.32740000000E+04 -0.44647299000E-04 0.37140948000E-04 0.99999999831E+00 482 0.18626050000E+01 -0.61515420000E+00 0.32740000000E+04 -0.84326304000E-04 -0.99059245000E-04 0.99999999154E+00 483 0.27521420000E+01 0.79173740000E+00 0.32740000000E+04 -0.23443099000E-03 -0.20571822000E-04 0.99999997231E+00 484 0.11952370000E+01 0.16716990000E+01 0.32740000000E+04 0.52958945000E-04 -0.15183049000E-04 0.99999999848E+00 485 0.10728870000E+01 -0.25479720000E+00 0.32740000000E+04 -0.16931372000E-03 -0.29746917000E-03 0.99999994142E+00 486 -0.23768400000E-01 0.13783910000E+01 0.32740000000E+04 -0.84523403000E-04 0.17852597000E-03 0.99999998049E+00 487 -0.32645590000E-01 0.14608270000E+01 0.32740000000E+04 -0.31933567000E-04 0.11445000000E-03 0.99999999294E+00 488 0.14398190000E+01 -0.22032640000E+00 0.32740000000E+04 -0.19317018000E-03 -0.21436968000E-03 0.99999995837E+00 489 0.11509640000E+01 -0.73796820000E+00 0.32740000000E+04 -0.55613701000E-03 -0.40413375000E-03 0.99999976369E+00 490 -0.32058690000E+00 0.17096170000E+01 0.32740000000E+04 0.19666889000E-03 0.34324860000E-03 0.99999992175E+00 491 0.16757860000E+01 -0.32917460000E-01 0.32740000000E+04 -0.35616853000E-04 -0.91962189000E-04 0.99999999514E+00 492 0.16757860000E+01 -0.32917460000E-01 0.32740000000E+04 -0.35616853000E-04 -0.91962189000E-04 0.99999999514E+00 493 -0.56038420000E+00 -0.57835550000E+00 0.32740000000E+04 0.13198581000E-03 -0.45203302000E-04 0.99999999027E+00 494 0.21403610000E+01 0.47339960000E+00 0.32740000000E+04 -0.41604369000E-04 -0.20627464000E-04 0.99999999892E+00 495 0.15261130000E+01 0.16239470000E+01 0.32740000000E+04 0.10411675000E-03 0.20961421000E-03 0.99999997261E+00 496 -0.15624700000E+01 -0.78754220000E+00 0.32740000000E+04 0.46509820000E-04 -0.11997876000E-03 0.99999999172E+00 497 -0.47158600000E+00 0.61417630000E+00 0.32740000000E+04 0.26289540000E-03 -0.17719890000E-03 0.99999994974E+00 498 0.10809910000E+01 -0.10903730000E+01 0.32740000000E+04 -0.35334776000E-05 0.24031659000E-03 0.99999997112E+00 499 -0.24212770000E+00 0.10977430000E+01 0.32740000000E+04 -0.33464505000E-04 0.14334796000E-03 0.99999998917E+00 500 0.15611040000E+01 -0.87882990000E+00 0.32740000000E+04 0.85283082000E-05 -0.10941870000E-03 0.99999999398E+00 501 0.22793570000E+01 -0.41323720000E+00 0.32740000000E+04 -0.14978998000E-03 -0.38903998000E-03 0.99999991311E+00 502 -0.59371440000E+00 0.24946490000E+01 0.32740000000E+04 0.26296146000E-03 0.21541810000E-03 0.99999994222E+00 503 0.23930380000E+00 0.17794030000E+01 0.32740000000E+04 0.17517641000E-03 0.13778939000E-03 0.99999997516E+00 504 0.14119200000E+01 0.16511080000E+00 0.32740000000E+04 0.24499079000E-04 -0.84819767000E-04 0.99999999610E+00 505 -0.29135740000E+00 0.10813750000E+01 0.32740000000E+04 0.24640281000E-03 -0.24422941000E-04 0.99999996934E+00 506 -0.18699640000E+00 0.64875010000E+00 0.32740000000E+04 -0.12141989000E-03 0.17074151000E-03 0.99999997805E+00 507 -0.35544110000E+00 -0.46598730000E+00 0.32740000000E+04 0.53910091000E-04 -0.24287525000E-03 0.99999996905E+00 508 -0.97363610000E+00 0.14051820000E+01 0.32740000000E+04 0.23964792000E-03 0.24929171000E-03 0.99999994021E+00 509 0.40139830000E+00 0.51379090000E+00 0.32740000000E+04 0.16400999000E-03 0.15266950000E-03 0.99999997490E+00 510 0.10985030000E+01 0.85010410000E+00 0.32740000000E+04 -0.24976142000E-03 -0.48273072000E-04 0.99999996764E+00 511 0.18882420000E-01 0.10371770000E+01 0.32740000000E+04 -0.40441152000E-03 0.98744669000E-04 0.99999991335E+00 512 0.83385210000E-01 0.15092990000E+01 0.32740000000E+04 0.26215153000E-03 0.39275223000E-04 0.99999996487E+00 513 0.22243500000E+00 0.10599660000E+01 0.32740000000E+04 0.45361259000E-03 0.41333889000E-03 0.99999981169E+00 514 0.92799290000E-01 -0.16562170000E+00 0.32740000000E+04 0.62987070000E-04 -0.11183683000E-03 0.99999999176E+00 515 -0.14741680000E+00 -0.60070570000E+00 0.32740000000E+04 0.10177092000E-04 -0.10469927000E-03 0.99999999447E+00 516 -0.22579920000E+00 0.12780050000E+01 0.32740000000E+04 0.10161185000E-03 -0.13945378000E-03 0.99999998511E+00 517 0.17985940000E+01 0.13176350000E+01 0.32740000000E+04 -0.27003782000E-03 0.14487635000E-03 0.99999995305E+00 518 0.11674520000E+01 0.17395600000E+01 0.32740000000E+04 -0.20327992000E-03 -0.14491138000E-04 0.99999997923E+00 519 0.89756090000E+00 0.76751840000E+00 0.32740000000E+04 0.27866825000E-04 -0.17892133000E-03 0.99999998361E+00 520 0.33724010000E+00 0.71449150000E+00 0.32740000000E+04 -0.13826693000E-03 -0.61015984000E-04 0.99999998858E+00 521 0.21185730000E+00 0.18895650000E+01 0.32740000000E+04 0.21784601000E-03 0.37624207000E-03 0.99999990549E+00 522 -0.54633710000E+00 0.78352960000E+00 0.32740000000E+04 -0.56703447000E-03 -0.57718944000E-03 0.99999967266E+00 523 0.12758950000E+01 0.48652700000E+00 0.32740000000E+04 0.19652587000E-03 -0.64995656000E-04 0.99999997858E+00 524 0.45838460000E+00 0.10480010000E+01 0.32740000000E+04 0.10801590000E-03 0.19324671000E-04 0.99999999398E+00 525 0.45838460000E+00 0.10480010000E+01 0.32740000000E+04 0.10801590000E-03 0.19324671000E-04 0.99999999398E+00 526 0.31640040000E+00 -0.68953870000E-01 0.32740000000E+04 0.13225712000E-03 -0.17321980000E-03 0.99999997625E+00 527 0.12489720000E+01 0.24421750000E+01 0.32740000000E+04 -0.36578367000E-04 0.24268907000E-03 0.99999996988E+00 528 -0.53454660000E+00 0.17242180000E+00 0.32740000000E+04 0.28204749000E-03 -0.12522891000E-03 0.99999995238E+00 529 0.10414830000E+01 0.84962330000E+00 0.32740000000E+04 -0.59408398000E-04 0.15518228000E-03 0.99999998619E+00 530 0.13336470000E+01 0.88850770000E+00 0.32740000000E+04 -0.22937138000E-03 -0.86032589000E-04 0.99999996999E+00 531 -0.12024420000E+01 0.14403300000E+01 0.32740000000E+04 0.79323785000E-04 -0.50292670000E-04 0.99999999559E+00 532 0.76713380000E+00 0.37404910000E+00 0.32740000000E+04 -0.11514009000E-03 -0.39043228000E-03 0.99999991715E+00 533 0.96385640000E+00 -0.11818040000E+01 0.32740000000E+04 -0.24437200000E-03 -0.28280410000E-03 0.99999993015E+00 534 -0.17599960000E+01 -0.15434870000E+01 0.32740000000E+04 -0.22998576000E-04 -0.30361317000E-03 0.99999995365E+00 535 -0.14759290000E+01 -0.92775580000E+00 0.32740000000E+04 0.17722798000E-03 -0.67831286000E-04 0.99999998199E+00 536 -0.11535180000E+01 0.21273690000E+01 0.32740000000E+04 0.74302734000E-04 0.52877611000E-04 0.99999999584E+00 537 0.37425040000E+00 0.56941060000E+00 0.32740000000E+04 -0.71330454000E-04 -0.18985673000E-04 0.99999999728E+00 538 0.93201070000E+00 0.76767020000E+00 0.32740000000E+04 0.41751195000E-04 -0.14755318000E-03 0.99999998824E+00 539 0.12808410000E+01 0.34408940000E+00 0.32740000000E+04 0.13452237000E-03 -0.20634822000E-03 0.99999996966E+00 540 -0.17946390000E+00 0.18963850000E+01 0.32740000000E+04 0.78912810000E-04 -0.27630229000E-04 0.99999999650E+00 541 -0.77963640000E+00 0.21091350000E+01 0.32740000000E+04 0.96664604000E-04 0.35471996000E-03 0.99999993241E+00 542 0.98601620000E+00 0.89532960000E+00 0.32740000000E+04 -0.14123014000E-04 0.19927105000E-03 0.99999998005E+00 543 0.66625790000E+00 0.19972120000E+01 0.32740000000E+04 0.68414185000E-04 0.86611661000E-04 0.99999999391E+00 544 0.66625790000E+00 0.19972120000E+01 0.32740000000E+04 0.68414185000E-04 0.86611661000E-04 0.99999999391E+00 545 0.38812170000E+00 -0.34939700000E+00 0.32740000000E+04 0.25928783000E-03 -0.36284284000E-03 0.99999990056E+00 546 -0.22745370000E+01 0.24064550000E+01 0.32740000000E+04 -0.20884884000E-05 0.17265063000E-03 0.99999998509E+00 547 0.10268850000E+00 -0.33055480000E+00 0.32740000000E+04 -0.21192762000E-04 -0.99081524000E-04 0.99999999487E+00 548 -0.31516120000E+00 0.78511740000E-01 0.32740000000E+04 0.84499901000E-04 -0.18403979000E-03 0.99999997949E+00 549 -0.52509500000E+00 -0.73665360000E+00 0.32740000000E+04 0.28243742000E-03 -0.41787012000E-03 0.99999987281E+00 550 -0.13640890000E+01 0.29124300000E+00 0.32740000000E+04 -0.11791992000E-03 0.88616223000E-04 0.99999998912E+00 551 0.11044280000E+01 0.16600320000E+01 0.32740000000E+04 -0.20408284000E-03 0.21012245000E-04 0.99999997895E+00 552 -0.91132530000E+00 0.11772560000E+01 0.32740000000E+04 -0.29557711000E-03 0.53162390000E-03 0.99999981501E+00 553 -0.35863030000E+00 0.30671590000E+00 0.32740000000E+04 0.16406715000E-03 0.77308410000E-04 0.99999998355E+00 554 0.18296360000E+01 -0.12913360000E+01 0.32740000000E+04 -0.11654475000E-03 -0.16893627000E-03 0.99999997894E+00 555 -0.94667710000E+00 0.44448200000E+00 0.32740000000E+04 -0.19538245000E-04 0.99922050000E-04 0.99999999482E+00 556 -0.12059800000E+01 -0.90469870000E-01 0.32740000000E+04 -0.17569355000E-04 -0.71966308000E-04 0.99999999726E+00 557 0.17349650000E+01 0.17435330000E+01 0.32740000000E+04 -0.63288753000E-03 0.26791162000E-03 0.99999976384E+00 558 0.17349650000E+01 0.17435330000E+01 0.32740000000E+04 -0.63288753000E-03 0.26791162000E-03 0.99999976384E+00 559 -0.91900990000E+00 0.73679230000E+00 0.32740000000E+04 0.11407572000E-03 -0.12887068000E-03 0.99999998519E+00 560 0.58165430000E+00 -0.34137430000E+00 0.32740000000E+04 -0.10925729000E-03 -0.80010839000E-04 0.99999999083E+00 561 -0.43126620000E+00 0.27924850000E+00 0.32740000000E+04 -0.37805919000E-03 -0.66907123000E-04 0.99999992630E+00 562 -0.10882770000E+01 0.86671920000E+00 0.32740000000E+04 -0.15363566000E-04 0.39054063000E-04 0.99999999912E+00 563 0.62724020000E+00 0.11099340000E+01 0.32740000000E+04 0.21611401000E-03 -0.14749929000E-04 0.99999997654E+00 564 0.81604090000E+00 -0.11606950000E+00 0.32740000000E+04 0.43995253000E-04 -0.24539346000E-04 0.99999999873E+00 565 0.64431450000E+00 0.84443570000E+00 0.32740000000E+04 -0.63214502000E-04 0.16059861000E-04 0.99999999787E+00 566 -0.14408827000E-03 0.13108630000E+01 0.32740000000E+04 0.45978599000E-04 0.16994111000E-03 0.99999998450E+00 567 -0.55303040000E+00 0.59851100000E+00 0.32740000000E+04 -0.56017634000E-04 0.32748628000E-03 0.99999994481E+00 568 -0.83112430000E-01 0.18772990000E+01 0.32740000000E+04 -0.12187153000E-03 -0.21611233000E-04 0.99999999234E+00 569 -0.68440330000E+00 -0.11779100000E+01 0.32740000000E+04 0.10905969000E-03 -0.14000120000E-04 0.99999999395E+00 570 0.17739920000E+01 0.14400140000E+01 0.32740000000E+04 -0.11120005000E-03 0.27461060000E-05 0.99999999381E+00 571 0.32707280000E+00 -0.13065710000E+00 0.32740000000E+04 -0.54806911000E-04 -0.12655521000E-04 0.99999999842E+00 572 -0.57405230000E+00 0.62946050000E+00 0.32740000000E+04 -0.35239358000E-04 0.14544411000E-03 0.99999998880E+00 573 -0.57405230000E+00 0.62946050000E+00 0.32740000000E+04 -0.35239358000E-04 0.14544411000E-03 0.99999998880E+00 574 0.12423680000E+01 0.12500040000E+01 0.32740000000E+04 0.71383802000E-04 -0.85543514000E-04 0.99999999379E+00 575 0.99927960000E+00 0.11354230000E+00 0.32740000000E+04 -0.39053246000E-03 -0.30595946000E-03 0.99999987694E+00 576 0.41023550000E+00 0.18253680000E+01 0.32740000000E+04 0.29264358000E-03 0.30982650000E-04 0.99999995670E+00 577 0.24426450000E+00 0.17314850000E+01 0.32740000000E+04 0.45710098000E-04 0.23270668000E-03 0.99999997188E+00 578 0.15991240000E+01 -0.14690200000E+01 0.32740000000E+04 0.64716543000E-04 -0.70197879000E-04 0.99999999544E+00 579 0.27769030000E+00 0.70307810000E+00 0.32740000000E+04 -0.72017785000E-04 -0.99732417000E-04 0.99999999243E+00 580 -0.95030280000E+00 -0.11830860000E+01 0.32740000000E+04 0.11261242000E-04 -0.10196165000E-03 0.99999999474E+00 581 0.14681890000E+01 0.13274840000E+01 0.32740000000E+04 -0.24043927000E-03 0.52419445000E-03 0.99999983370E+00 582 -0.42195950000E+00 -0.12133490000E+00 0.32740000000E+04 0.25566580000E-03 -0.54291668000E-04 0.99999996584E+00 583 0.64140120000E-01 0.16698180000E+01 0.32740000000E+04 0.11156094000E-03 0.26003010000E-04 0.99999999344E+00 584 0.31824600000E+00 0.71957610000E+00 0.32740000000E+04 0.58628480000E-04 0.28226579000E-04 0.99999999788E+00 585 -0.76216590000E+00 -0.62475880000E+00 0.32740000000E+04 -0.56513312000E-06 -0.16238318000E-03 0.99999998682E+00 586 0.53695240000E+00 0.11499860000E+01 0.32740000000E+04 -0.30107429000E-03 0.54728503000E-05 0.99999995466E+00 587 0.46630130000E+00 -0.52978910000E+00 0.32740000000E+04 0.91295624000E-04 -0.12284270000E-03 0.99999998829E+00 588 0.46630130000E+00 -0.52978910000E+00 0.32740000000E+04 0.91295624000E-04 -0.12284270000E-03 0.99999998829E+00 589 0.76404970000E+00 0.13469180000E+01 0.32740000000E+04 -0.29893661000E-04 0.18601109000E-03 0.99999998225E+00 590 0.20578950000E+01 0.16204690000E+01 0.32740000000E+04 -0.16906789000E-03 -0.18055481000E-03 0.99999996941E+00 591 -0.48672510000E-01 0.11737640000E+01 0.32740000000E+04 0.29840268000E-03 0.24351093000E-03 0.99999992583E+00 592 0.36535250000E+00 0.14660350000E+01 0.32740000000E+04 0.97782999000E-04 0.75607682000E-05 0.99999999519E+00 593 -0.34646150000E+00 -0.11909130000E+01 0.32740000000E+04 0.70092778000E-04 -0.28028135000E-03 0.99999995826E+00 594 0.14754510000E+01 -0.58560900000E-01 0.32740000000E+04 -0.60398932000E-04 -0.18679565000E-03 0.99999998073E+00 595 0.15023510000E+01 -0.38875490000E+00 0.32740000000E+04 -0.18097629000E-03 0.69768837000E-04 0.99999998119E+00 596 0.24014990000E+01 0.21698230000E+01 0.32740000000E+04 -0.14372711000E-03 0.36388679000E-04 0.99999998901E+00 597 0.10056440000E+01 0.55279040000E+00 0.32740000000E+04 0.82222832000E-04 0.16515484000E-03 0.99999998298E+00 598 0.23059470000E+01 0.61267400000E+00 0.32740000000E+04 -0.25376343000E-03 0.62955449000E-04 0.99999996582E+00 599 0.11336200000E+01 0.26187770000E+00 0.32740000000E+04 -0.43586220000E-04 0.52733063000E-04 0.99999999766E+00 600 0.31075060000E+00 0.49860210000E+00 0.32740000000E+04 0.45459339000E-03 -0.19035928000E-03 0.99999987855E+00 601 0.14721360000E+01 0.91465050000E+00 0.32740000000E+04 -0.34163975000E-04 0.31535770000E-03 0.99999994969E+00 602 0.19780440000E+01 0.89214080000E+00 0.32740000000E+04 0.12670516000E-03 0.42099884000E-04 0.99999999109E+00 603 0.18618250000E+01 0.12695130000E+01 0.32740000000E+04 -0.16554486000E-03 -0.44051678000E-04 0.99999998533E+00 604 0.19600210000E+01 0.83584920000E+00 0.32740000000E+04 -0.73500021000E-04 0.34928431000E-04 0.99999999669E+00 605 0.13091310000E+00 0.32822080000E-01 0.32740000000E+04 0.26286501000E-03 -0.33308938000E-03 0.99999990998E+00 606 0.26497770000E+01 -0.40436080000E+00 0.32740000000E+04 0.97774227000E-05 -0.36104649000E-03 0.99999993477E+00 607 0.18801680000E+01 -0.28041480000E+00 0.32740000000E+04 -0.78882986000E-05 -0.43303578000E-03 0.99999990621E+00 608 -0.28076400000E+00 -0.11853060000E+01 0.32740000000E+04 0.18738947000E-03 0.13340951000E-05 0.99999998244E+00 609 -0.33113260000E+00 -0.63633840000E+00 0.32740000000E+04 -0.10451270000E-03 -0.36560930000E-03 0.99999992770E+00 610 -0.33113260000E+00 -0.63633840000E+00 0.32740000000E+04 -0.10451270000E-03 -0.36560930000E-03 0.99999992770E+00 611 -0.97807900000E+00 0.19209160000E+01 0.32740000000E+04 0.92590693000E-04 0.11049488000E-03 0.99999998961E+00 612 0.19426770000E-01 0.20845900000E+01 0.32740000000E+04 0.26746452000E-03 0.46218498000E-03 0.99999985742E+00 613 -0.16922090000E+00 -0.15987060000E+00 0.32740000000E+04 0.53711876000E-04 -0.32258045000E-03 0.99999994653E+00 614 0.16424580000E+01 0.13406590000E+01 0.32740000000E+04 0.14876846000E-03 0.26465810000E-03 0.99999995391E+00 615 0.78876820000E+00 -0.32609070000E+00 0.32740000000E+04 -0.35298875000E-03 -0.16239032000E-03 0.99999992451E+00 616 0.89162330000E+00 0.12805430000E+01 0.32740000000E+04 0.58897676000E-04 0.99006444000E-04 0.99999999336E+00 617 -0.84344340000E+00 -0.32606910000E-01 0.32740000000E+04 0.20161306000E-03 0.18541378000E-03 0.99999996249E+00 618 -0.14164380000E+01 -0.32705830000E+00 0.32740000000E+04 0.20911662000E-03 0.36114991000E-04 0.99999997748E+00 619 -0.11456320000E+01 0.67949380000E+00 0.32740000000E+04 -0.14821856000E-03 -0.17553804000E-03 0.99999997361E+00 620 0.87035530000E+00 -0.16710910000E+01 0.32740000000E+04 -0.58940379000E-04 -0.27539261000E-03 0.99999996034E+00 621 -0.15046930000E+01 0.10106790000E+01 0.32740000000E+04 0.15427014000E-03 0.24862334000E-03 0.99999995719E+00 622 0.14781570000E+00 0.36099130000E+00 0.32740000000E+04 0.11028373000E-03 0.57269426000E-04 0.99999999228E+00 623 0.20283030000E-01 0.53512630000E+00 0.32740000000E+04 0.18753696000E-03 -0.43067848000E-04 0.99999998149E+00 624 0.10042380000E+01 0.12234950000E+01 0.32740000000E+04 -0.15457741000E-04 0.40529958000E-04 0.99999999906E+00 625 0.16298500000E-01 0.20046130000E+00 0.32740000000E+04 0.96725969000E-04 0.31213669000E-04 0.99999999483E+00 626 0.94980680000E+00 0.87106920000E-01 0.32740000000E+04 -0.29621174000E-03 -0.75496355000E-04 0.99999995328E+00 627 0.93038030000E+00 0.13670330000E+01 0.32740000000E+04 -0.50358816000E-04 0.28190546000E-03 0.99999995900E+00 628 0.68622670000E+00 -0.49055220000E+00 0.32740000000E+04 0.97258535000E-05 -0.34162641000E-03 0.99999994160E+00 629 0.54425350000E+00 -0.61181150000E+00 0.32740000000E+04 -0.15477196000E-03 -0.51718589000E-03 0.99999985428E+00 630 0.54425350000E+00 -0.61181150000E+00 0.32740000000E+04 -0.15477196000E-03 -0.51718589000E-03 0.99999985428E+00 631 0.21772780000E+01 -0.71771690000E+00 0.32740000000E+04 -0.31512759000E-05 -0.39323003000E-03 0.99999992268E+00 632 -0.59736040000E-01 -0.13628580000E+01 0.32740000000E+04 -0.79280369000E-04 -0.30107086000E-03 0.99999995154E+00 633 -0.47818080000E+00 -0.78390570000E+00 0.32740000000E+04 -0.15591686000E-03 -0.34692595000E-03 0.99999992767E+00 634 -0.13671190000E+01 0.65161160000E-01 0.32740000000E+04 0.78106736000E-04 -0.44162593000E-05 0.99999999694E+00 635 0.20110150000E+00 -0.51751850000E+00 0.32740000000E+04 0.12632685000E-03 -0.49003880000E-04 0.99999999082E+00 636 0.10951520000E+01 0.10013960000E+00 0.32740000000E+04 0.22614606000E-03 -0.62749554000E-04 0.99999997246E+00 637 0.72853990000E+00 0.51102540000E+00 0.32740000000E+04 0.43758348000E-04 -0.46582125000E-04 0.99999999796E+00 638 0.11855120000E+01 0.16541760000E+00 0.32740000000E+04 -0.50300773000E-05 0.21679098000E-03 0.99999997649E+00 639 -0.13940240000E+01 -0.15547160000E+00 0.32740000000E+04 -0.12150086000E-04 0.20587584000E-03 0.99999997873E+00 640 0.12751460000E+01 0.97501260000E+00 0.32740000000E+04 -0.13762353000E-03 0.12290066000E-03 0.99999998298E+00 641 0.16013370000E+01 0.69467980000E+00 0.32740000000E+04 -0.23543138000E-03 -0.16524430000E-03 0.99999995863E+00 642 -0.62445650000E+00 0.22015030000E+01 0.32740000000E+04 0.11402784000E-03 0.24188861000E-03 0.99999996424E+00 643 -0.62445650000E+00 0.22015030000E+01 0.32740000000E+04 0.11402784000E-03 0.24188861000E-03 0.99999996424E+00 644 0.26321220000E+01 -0.85851240000E+00 0.32740000000E+04 -0.25318897000E-04 -0.15045235000E-03 0.99999998836E+00 645 -0.45016570000E+00 -0.21247920000E+00 0.32740000000E+04 0.57484308000E-03 0.51786137000E-05 0.99999983476E+00 646 0.10101520000E-01 0.11684940000E+01 0.32740000000E+04 0.10767607000E-03 0.12243942000E-03 0.99999998671E+00 647 0.12433530000E-01 -0.48457630000E+00 0.32740000000E+04 -0.46237059000E-06 -0.21596003000E-03 0.99999997668E+00 648 0.10178460000E+01 0.76338460000E-01 0.32740000000E+04 -0.67099194000E-04 -0.51945008000E-04 0.99999999640E+00 649 0.20718880000E+01 -0.37441380000E+00 0.32740000000E+04 -0.15718443000E-03 -0.18112559000E-03 0.99999997124E+00 650 0.17741280000E+01 0.56406100000E+00 0.32740000000E+04 0.25962893000E-03 -0.12202225000E-03 0.99999995885E+00 651 -0.61807370000E+00 0.76068100000E+00 0.32740000000E+04 0.91081316000E-03 0.47616946000E-03 0.99999947184E+00 652 0.26772950000E+01 0.25444480000E+00 0.32740000000E+04 -0.71762493000E-04 -0.28427196000E-03 0.99999995702E+00 653 -0.76629520000E+00 -0.11238190000E+01 0.32740000000E+04 -0.58771369000E-04 -0.20039575000E-03 0.99999997819E+00 654 -0.19856080000E+01 0.58215200000E+00 0.32740000000E+04 -0.63286594000E-03 0.37067715000E-03 0.99999973104E+00 655 -0.91622940000E+00 0.15631580000E+01 0.32740000000E+04 -0.20217741000E-03 -0.12058777000E-03 0.99999997229E+00 656 -0.91622940000E+00 0.15631580000E+01 0.32740000000E+04 -0.20217741000E-03 -0.12058777000E-03 0.99999997229E+00 657 -0.75304900000E+00 0.10336880000E+01 0.32740000000E+04 0.38151764000E-04 -0.21034791000E-03 0.99999997715E+00 658 -0.52694920000E+00 0.63986300000E+00 0.32740000000E+04 -0.63872831000E-04 0.23354352000E-04 0.99999999769E+00 659 0.11124700000E+01 0.22929330000E+01 0.32740000000E+04 0.14377242000E-04 0.99796955000E-04 0.99999999492E+00 660 0.82599420000E+00 0.77615700000E+00 0.32740000000E+04 0.31939230000E-03 0.29162172000E-03 0.99999990647E+00 661 0.12614870000E+01 0.16938840000E+01 0.32740000000E+04 -0.10419625000E-04 0.89856607000E-04 0.99999999591E+00 662 0.22497390000E+01 0.10505880000E+01 0.32740000000E+04 -0.26630272000E-04 0.14590356000E-03 0.99999998900E+00 663 0.18785860000E+01 -0.23358390000E-01 0.32740000000E+04 -0.27964392000E-03 -0.12636527000E-03 0.99999995292E+00 664 0.22908070000E+01 0.18067960000E+00 0.32740000000E+04 -0.18215649000E-03 -0.60686438000E-04 0.99999998157E+00 665 0.21683490000E+01 0.34118330000E+00 0.32740000000E+04 -0.13866735000E-03 -0.11177467000E-03 0.99999998414E+00 666 0.97110290000E+00 -0.72924470000E+00 0.32740000000E+04 -0.25910157000E-03 -0.33430348000E-03 0.99999991055E+00 667 0.62682070000E+00 0.20553480000E+01 0.32740000000E+04 0.88398037000E-05 0.91003480000E-04 0.99999999582E+00 668 0.62682070000E+00 0.20553480000E+01 0.32740000000E+04 0.88398037000E-05 0.91003480000E-04 0.99999999582E+00 669 0.22420770000E+01 0.15165490000E+01 0.32740000000E+04 -0.96675249000E-04 0.34605004000E-03 0.99999993545E+00 670 -0.12072390000E+01 -0.57290320000E+00 0.32740000000E+04 0.20198291000E-03 -0.25809708000E-03 0.99999994629E+00 671 -0.11841440000E+01 0.14967170000E+01 0.32740000000E+04 0.67642264000E-04 0.15918830000E-03 0.99999998504E+00 672 0.87105310000E-01 0.11759330000E+01 0.32740000000E+04 0.96976102000E-04 -0.46559948000E-04 0.99999999421E+00 673 0.20020860000E+01 0.14274310000E+01 0.32740000000E+04 -0.51022638000E-04 -0.36767474000E-03 0.99999993111E+00 674 0.11889460000E+01 0.17448010000E+01 0.32740000000E+04 -0.22177090000E-03 -0.48312206000E-04 0.99999997424E+00 675 -0.12042960000E+01 0.15026970000E+01 0.32740000000E+04 0.93513103000E-04 0.99085359000E-04 0.99999999072E+00 676 -0.16768860000E+00 -0.13240220000E+01 0.32740000000E+04 -0.98358592000E-04 -0.29893778000E-03 0.99999995048E+00 677 0.81361760000E+00 -0.18375430000E+00 0.32740000000E+04 -0.23586040000E-03 -0.74287040000E-04 0.99999996943E+00 678 0.89263460000E+00 -0.20963830000E+01 0.32740000000E+04 0.48489336000E-03 -0.47664790000E-03 0.99999976884E+00 679 0.35910230000E+00 0.34587310000E+00 0.32740000000E+04 -0.15145134000E-03 0.12556732000E-05 0.99999998853E+00 680 0.79980080000E+00 0.19863650000E+01 0.32740000000E+04 -0.96537646000E-04 0.16313195000E-03 0.99999998203E+00 681 0.27689250000E+01 0.34206620000E+00 0.32740000000E+04 0.37751519000E-03 0.52994338000E-03 0.99999978832E+00 682 -0.17918890000E+01 -0.13558180000E+01 0.32740000000E+04 0.65330118000E-04 -0.12564566000E-03 0.99999998997E+00 683 -0.89853490000E+00 0.77971260000E+00 0.32740000000E+04 0.24751871000E-03 0.21384515000E-03 0.99999994650E+00 684 -0.17385710000E+01 -0.93889830000E+00 0.32740000000E+04 0.68542608000E-05 -0.32863033000E-03 0.99999994598E+00 685 0.12922410000E+01 -0.15519070000E+01 0.32740000000E+04 -0.78245561000E-04 -0.59011796000E-04 0.99999999520E+00 686 0.12922410000E+01 -0.15519070000E+01 0.32740000000E+04 -0.78245561000E-04 -0.59011796000E-04 0.99999999520E+00 687 0.89159210000E+00 -0.47641320000E-01 0.32740000000E+04 -0.58587091000E-04 -0.71852184000E-04 0.99999999570E+00 688 0.19628800000E+01 0.34963970000E-01 0.32740000000E+04 -0.82776722000E-04 -0.18940827000E-03 0.99999997864E+00 689 -0.55341580000E+00 0.99728310000E+00 0.32740000000E+04 0.57562091000E-03 0.20012048000E-03 0.99999981431E+00 690 0.14696050000E+01 -0.19875710000E+01 0.32740000000E+04 0.50154503000E-03 -0.13870075000E-03 0.99999986461E+00 691 -0.55656780000E+00 -0.55835750000E+00 0.32740000000E+04 0.74377538000E-04 -0.37290974000E-03 0.99999992770E+00 692 -0.14806850000E+01 -0.17778080000E+01 0.32740000000E+04 0.95914547000E-04 -0.44102871000E-04 0.99999999443E+00 693 0.18743290000E+01 -0.74410880000E+00 0.32740000000E+04 0.66336506000E-04 -0.15500333000E-03 0.99999998579E+00 694 -0.35499670000E+00 -0.19620120000E+00 0.32740000000E+04 0.12265729000E-03 0.72944022000E-04 0.99999998982E+00 695 0.26443240000E+01 0.16793430000E+01 0.32740000000E+04 0.73796742000E-04 0.19472669000E-04 0.99999999709E+00 696 0.77657870000E-01 0.45771620000E+00 0.32740000000E+04 -0.26243779000E-06 -0.19262085000E-03 0.99999998145E+00 697 0.92363590000E+00 0.15624130000E+01 0.32740000000E+04 -0.18690876000E-03 0.42742823000E-03 0.99999989119E+00 698 -0.11263390000E+01 -0.46705540000E+00 0.32740000000E+04 -0.70622169000E-04 -0.11133403000E-03 0.99999999131E+00 699 0.25036090000E+01 0.31119800000E+01 0.32740000000E+04 -0.25734225000E-04 0.24794272000E-03 0.99999996893E+00 700 0.25036090000E+01 0.31119800000E+01 0.32740000000E+04 -0.25734225000E-04 0.24794272000E-03 0.99999996893E+00 701 0.10969750000E+01 0.10114000000E+01 0.32740000000E+04 -0.34975543000E-03 -0.23090036000E-03 0.99999991218E+00 702 0.15669270000E+01 0.32014820000E+00 0.32740000000E+04 -0.25957436000E-05 0.36785434000E-05 0.99999999999E+00 703 -0.83587280000E+00 -0.10974140000E+01 0.32740000000E+04 0.24787473000E-03 -0.56679241000E-04 0.99999996767E+00 704 0.65921650000E+00 0.32913710000E-01 0.32740000000E+04 -0.64350075000E-04 0.54473931000E-04 0.99999999645E+00 705 0.27793440000E+01 -0.68396330000E+00 0.32740000000E+04 -0.21260670000E-04 -0.17444704000E-03 0.99999998456E+00 706 0.21202850000E+01 -0.13804070000E+01 0.32740000000E+04 -0.15565983000E-03 0.23323570000E-03 0.99999996069E+00 707 0.28726520000E+01 0.99647110000E+00 0.32740000000E+04 -0.17502235000E-03 -0.95607786000E-04 0.99999998011E+00 708 -0.60881270000E+00 -0.12907200000E+01 0.32740000000E+04 0.87428431000E-04 -0.76056902000E-04 0.99999999329E+00 709 0.10811670000E+00 -0.93714000000E-01 0.32740000000E+04 0.22247752000E-04 -0.22488754000E-03 0.99999997447E+00 710 -0.30207380000E+00 0.10388860000E+01 0.32740000000E+04 0.21954918000E-03 0.30576609000E-03 0.99999992915E+00 711 -0.10336920000E+01 -0.77586120000E+00 0.32740000000E+04 0.18451279000E-04 0.14024163000E-04 0.99999999973E+00 712 -0.10336920000E+01 -0.77586120000E+00 0.32740000000E+04 0.18451279000E-04 0.14024163000E-04 0.99999999973E+00 713 0.32301580000E+00 -0.97487570000E+00 0.32740000000E+04 -0.79128236000E-04 -0.44879314000E-03 0.99999989616E+00 714 0.71556830000E+00 -0.15081520000E+00 0.32740000000E+04 0.77682635000E-04 -0.12829107000E-03 0.99999998875E+00 715 0.13759410000E+01 0.67080980000E+00 0.32740000000E+04 0.19863284000E-04 -0.15935523000E-03 0.99999998711E+00 716 0.21986020000E+01 0.70945130000E+00 0.32740000000E+04 -0.78435492000E-04 0.39367940000E-04 0.99999999615E+00 717 -0.10135730000E+01 -0.70174840000E+00 0.32740000000E+04 0.89495559000E-04 0.25078136000E-03 0.99999996455E+00 718 -0.10043930000E+01 0.17037970000E+01 0.32740000000E+04 -0.15085816000E-03 0.27171461000E-03 0.99999995171E+00 719 0.10894170000E+01 0.95445450000E+00 0.32740000000E+04 -0.33854390000E-03 -0.57747206000E-04 0.99999994103E+00 720 0.61380600000E+00 -0.11150430000E+01 0.32740000000E+04 -0.25757818000E-03 -0.46898084000E-03 0.99999985686E+00 721 0.18005120000E+00 0.19759820000E+01 0.32740000000E+04 -0.36554677000E-04 0.18654796000E-03 0.99999998193E+00 722 0.14896930000E+01 0.13538770000E+01 0.32740000000E+04 0.34240609000E-04 0.35871964000E-03 0.99999993507E+00 723 0.14896930000E+01 0.13538770000E+01 0.32740000000E+04 0.34240609000E-04 0.35871964000E-03 0.99999993507E+00 724 0.44839080000E+00 -0.95208720000E+00 0.32740000000E+04 -0.32358130000E-04 -0.38826049000E-03 0.99999992410E+00 725 0.28746440000E+00 -0.57519360000E+00 0.32740000000E+04 -0.13949588000E-03 -0.31683309000E-03 0.99999994008E+00 726 0.80987720000E-01 -0.69350220000E+00 0.32740000000E+04 0.15705968000E-03 -0.38150425000E-04 0.99999998694E+00 727 0.23655590000E+01 -0.76031330000E+00 0.32740000000E+04 -0.67654735000E-04 -0.17553354000E-03 0.99999998231E+00 728 0.11752730000E+01 -0.54891960000E+00 0.32740000000E+04 -0.10245089000E-03 -0.12295609000E-03 0.99999998719E+00 729 0.67817640000E+00 0.70861640000E+00 0.32740000000E+04 0.20952917000E-03 0.52738131000E-04 0.99999997666E+00 730 0.14492340000E+01 -0.88541470000E+00 0.32740000000E+04 -0.22641507000E-05 -0.28787268000E-03 0.99999995856E+00 731 0.53983140000E+00 0.18352460000E+01 0.32740000000E+04 -0.13152938000E-03 0.19729012000E-03 0.99999997189E+00 732 0.54606200000E+00 -0.14356530000E+01 0.32740000000E+04 -0.13631611000E-03 -0.14368758000E-04 0.99999999061E+00 733 -0.34128460000E+00 0.13986620000E+01 0.32740000000E+04 0.18282965000E-03 0.14215169000E-03 0.99999997318E+00 734 -0.63733270000E+00 0.84365900000E-01 0.32740000000E+04 0.29432061000E-03 0.18770959000E-04 0.99999995651E+00 735 -0.58940780000E+00 -0.15396380000E+01 0.32740000000E+04 0.87072724000E-04 0.11788069000E-03 0.99999998926E+00 736 -0.47893970000E+00 0.81347150000E+00 0.32740000000E+04 -0.36560470000E-03 -0.28786832000E-03 0.99999989173E+00 737 -0.88938600000E+00 0.85420280000E+00 0.32740000000E+04 0.21969402000E-03 0.55087334000E-04 0.99999997435E+00 738 0.70035890000E+00 0.17216140000E+01 0.32740000000E+04 -0.21524467000E-03 0.12418370000E-03 0.99999996912E+00 739 0.29064010000E+00 0.90603560000E+00 0.32740000000E+04 -0.17204433000E-03 -0.74484947000E-05 0.99999998517E+00 740 0.31752700000E+00 0.52630240000E+00 0.32740000000E+04 0.21978743000E-03 0.16931543000E-03 0.99999996151E+00 741 0.43935390000E-01 -0.10866110000E+01 0.32740000000E+04 0.72855699000E-04 -0.47931244000E-03 0.99999988248E+00 742 -0.57977700000E+00 -0.68771450000E+00 0.32740000000E+04 0.90359063000E-04 -0.18437020000E-03 0.99999997892E+00 743 -0.82261730000E+00 0.21095330000E+01 0.32740000000E+04 0.20842426000E-04 0.10409350000E-03 0.99999999437E+00 744 -0.82261730000E+00 0.21095330000E+01 0.32740000000E+04 0.20842426000E-04 0.10409350000E-03 0.99999999437E+00 745 -0.14946700000E+01 0.11832760000E+01 0.32740000000E+04 0.15975700000E-04 0.46287605000E-03 0.99999989275E+00 746 -0.12206440000E+01 0.19090870000E+01 0.32740000000E+04 0.42021231000E-04 0.30012091000E-03 0.99999995408E+00 747 0.24204260000E+01 -0.72261890000E+00 0.32740000000E+04 0.84464766000E-04 -0.28424358000E-03 0.99999995604E+00 748 -0.66092490000E+00 0.14289320000E+01 0.32740000000E+04 0.10524720000E-03 -0.12768788000E-03 0.99999998631E+00 749 0.10165880000E+01 0.15028680000E+01 0.32740000000E+04 -0.84729523000E-04 0.12825897000E-03 0.99999998819E+00 750 0.68412210000E+00 -0.41944000000E+00 0.32740000000E+04 0.13112833000E-03 -0.25761139000E-03 0.99999995822E+00 751 0.52045240000E+00 0.25297510000E+00 0.32740000000E+04 -0.24934538000E-03 0.24374263000E-04 0.99999996862E+00 752 0.11342520000E+01 0.18518050000E+01 0.32740000000E+04 -0.10045444000E-03 0.12007169000E-03 0.99999998775E+00 753 0.11270610000E+01 0.16972010000E+01 0.32740000000E+04 -0.28493620000E-04 0.18565690000E-03 0.99999998236E+00 754 -0.41018620000E+00 -0.92197420000E+00 0.32740000000E+04 -0.83561841000E-04 -0.48040103000E-04 0.99999999535E+00 755 -0.38820320000E+00 -0.15283670000E+00 0.32740000000E+04 0.28104772000E-03 -0.36700127000E-04 0.99999995983E+00 756 -0.48107020000E+00 0.13126550000E+01 0.32740000000E+04 0.47600599000E-04 -0.25108844000E-03 0.99999996734E+00 757 0.22307240000E+01 0.15600190000E+01 0.32740000000E+04 -0.91928116000E-04 0.36746758000E-03 0.99999992826E+00 758 0.22307240000E+01 0.15600190000E+01 0.32740000000E+04 -0.91928116000E-04 0.36746758000E-03 0.99999992826E+00 759 -0.73590350000E+00 0.72293750000E+00 0.32740000000E+04 0.18852505000E-03 -0.80853912000E-04 0.99999997896E+00 760 0.70991070000E+00 -0.36398720000E+00 0.32740000000E+04 0.46064777000E-03 0.11470606000E-03 0.99999988732E+00 761 0.17470830000E+00 -0.22747250000E+00 0.32740000000E+04 -0.53025804000E-04 0.21390816000E-03 0.99999997572E+00 762 -0.10549590000E+01 0.42165940000E+00 0.32740000000E+04 0.73837982000E-04 -0.14764183000E-03 0.99999998637E+00 763 0.90582350000E+00 -0.47820490000E+00 0.32740000000E+04 -0.21706455000E-03 -0.34585135000E-03 0.99999991663E+00 764 -0.73299630000E+00 0.11282470000E+01 0.32740000000E+04 0.24429717000E-03 -0.50569528000E-04 0.99999996888E+00 765 0.16867610000E+01 0.23954040000E+00 0.32740000000E+04 0.95321731000E-04 0.13394360000E-03 0.99999998649E+00 766 -0.52116450000E+00 -0.11260370000E+01 0.32740000000E+04 -0.13598226000E-03 -0.39751499000E-03 0.99999991175E+00 767 0.13790220000E+01 -0.61996080000E+00 0.32740000000E+04 0.17586247000E-03 -0.71392511000E-04 0.99999998199E+00 768 -0.72074030000E+00 -0.12232820000E+01 0.32740000000E+04 0.13487667000E-03 0.16896002000E-03 0.99999997663E+00 769 0.15794220000E+01 0.16424020000E+01 0.32740000000E+04 -0.17139594000E-03 0.14861848000E-03 0.99999997427E+00 770 0.63194180000E+00 0.19467450000E+01 0.32740000000E+04 -0.26325468000E-03 0.24066608000E-03 0.99999993639E+00 771 0.10767270000E+01 0.16591460000E+01 0.32740000000E+04 0.61468713000E-05 0.52512234000E-04 0.99999999860E+00 772 0.10767270000E+01 0.16591460000E+01 0.32740000000E+04 0.61468713000E-05 0.52512234000E-04 0.99999999860E+00 773 -0.33907060000E+00 0.18800190000E+01 0.32740000000E+04 0.12214531000E-03 0.25371622000E-03 0.99999996035E+00 774 -0.11560270000E+01 0.16612040000E+01 0.32740000000E+04 0.14365888000E-03 0.26172222000E-03 0.99999995543E+00 775 -0.59371920000E+00 0.12196880000E+01 0.32740000000E+04 0.19330686000E-03 -0.34071857000E-03 0.99999992327E+00 776 0.13123240000E+01 -0.71779560000E+00 0.32740000000E+04 0.36436497000E-03 -0.29760139000E-03 0.99999988934E+00 777 -0.54658920000E+00 0.89520080000E+00 0.32740000000E+04 0.22532768000E-04 0.32395241000E-03 0.99999994727E+00 778 -0.14889750000E+01 -0.11945000000E+01 0.32740000000E+04 -0.10363215000E-03 -0.24747493000E-03 0.99999996401E+00 779 -0.61431260000E+00 0.21423690000E+01 0.32740000000E+04 0.14708325000E-03 0.58787427000E-04 0.99999998746E+00 780 -0.58311600000E+00 0.35744220000E+00 0.32740000000E+04 0.31543648000E-03 -0.11290010000E-03 0.99999994388E+00 781 0.22525610000E+01 0.10592860000E+01 0.32740000000E+04 0.39451308000E-04 0.13843988000E-03 0.99999998964E+00 782 -0.42963680000E+00 -0.37513550000E+00 0.32740000000E+04 0.34538817000E-03 -0.14509716000E-03 0.99999992983E+00 783 -0.16799910000E+00 -0.52602110000E+00 0.32740000000E+04 0.11326483000E-04 -0.15730252000E-03 0.99999998756E+00 784 -0.16799910000E+00 -0.52602110000E+00 0.32740000000E+04 0.11326483000E-04 -0.15730252000E-03 0.99999998756E+00 785 -0.62093160000E+00 -0.81055770000E+00 0.32740000000E+04 -0.16856927000E-03 -0.18344905000E-03 0.99999996897E+00 786 0.23118610000E+01 0.15774540000E+01 0.32740000000E+04 -0.47917783000E-04 0.25522363000E-03 0.99999996628E+00 787 -0.24994710000E-01 -0.80182010000E+00 0.32740000000E+04 -0.13111423000E-03 -0.38101512000E-03 0.99999991882E+00 788 0.23347480000E+01 0.19260120000E+01 0.32740000000E+04 -0.66037515000E-04 0.13126261000E-03 0.99999998920E+00 789 0.10467010000E+01 -0.41036330000E+00 0.32740000000E+04 -0.14620039000E-03 0.17326132000E-03 0.99999997430E+00 790 0.10467010000E+01 -0.41036330000E+00 0.32740000000E+04 -0.14620039000E-03 0.17326132000E-03 0.99999997430E+00 791 -0.53947710000E+00 0.19016320000E+00 0.32740000000E+04 0.69666137000E-04 0.40924693000E-04 0.99999999674E+00 792 0.13660530000E+01 0.26546630000E+01 0.32740000000E+04 0.15210628000E-03 0.30962314000E-04 0.99999998795E+00 793 0.21085920000E+01 0.98444210000E+00 0.32740000000E+04 -0.25430718000E-03 0.25315490000E-03 0.99999993562E+00 794 0.17388760000E+01 0.83422810000E+00 0.32740000000E+04 0.50985131000E-04 -0.64186665000E-05 0.99999999868E+00 795 -0.92478340000E+00 0.60474240000E-01 0.32740000000E+04 0.36131925000E-04 -0.14785341000E-03 0.99999998842E+00 796 0.23064530000E+01 -0.10152990000E+01 0.32740000000E+04 0.33933070000E-03 -0.72706729000E-03 0.99999967811E+00 797 -0.11448350000E+01 -0.52599250000E+00 0.32740000000E+04 0.17353745000E-03 -0.42783158000E-03 0.99999989342E+00 798 0.15006940000E+01 -0.10346550000E+01 0.32740000000E+04 -0.14193071000E-03 -0.88585635000E-04 0.99999998600E+00 799 0.23614470000E+01 -0.71270060000E+00 0.32740000000E+04 -0.20098446000E-03 0.47513695000E-04 0.99999997867E+00 800 0.92689000000E+00 0.90140600000E+00 0.32740000000E+04 0.44679338000E-04 -0.56187464000E-05 0.99999999899E+00 801 0.64929950000E+00 0.15322740000E+01 0.32740000000E+04 0.18930830000E-03 0.32956828000E-03 0.99999992777E+00 802 0.25636400000E+01 0.13584850000E+01 0.32740000000E+04 -0.53005100000E-04 0.20270754000E-03 0.99999997805E+00 803 0.88604830000E+00 0.26535740000E+01 0.32740000000E+04 -0.75006908000E-04 0.16041225000E-03 0.99999998432E+00 804 -0.61307450000E+00 -0.71645020000E-01 0.32740000000E+04 0.40534203000E-04 -0.19581502000E-03 0.99999998001E+00 805 -0.61307450000E+00 -0.71645020000E-01 0.32740000000E+04 0.40534203000E-04 -0.19581502000E-03 0.99999998001E+00 806 0.14460340000E+01 0.26008060000E+01 0.32740000000E+04 0.40326439000E-03 0.24930778000E-03 0.99999988761E+00 807 -0.10964750000E+01 0.88791270000E+00 0.32740000000E+04 0.10853610000E-03 0.19258852000E-03 0.99999997556E+00 808 -0.24867990000E+00 0.17805410000E+01 0.32740000000E+04 0.12849018000E-03 -0.16618838000E-04 0.99999999161E+00 809 -0.19691160000E+00 0.13792400000E+01 0.32740000000E+04 0.77283607000E-04 -0.27660531000E-04 0.99999999663E+00 810 -0.40106410000E+00 0.71784310000E-01 0.32740000000E+04 -0.14078896000E-03 -0.12607212000E-03 0.99999998214E+00 811 -0.38856030000E+00 -0.80021400000E+00 0.32740000000E+04 0.80020494000E-04 -0.50445145000E-03 0.99999986956E+00 812 0.23677930000E+01 0.19109960000E+01 0.32740000000E+04 -0.24883010000E-03 0.14573535000E-03 0.99999995842E+00 813 -0.58434580000E+00 -0.13745500000E+01 0.32740000000E+04 0.95471201000E-04 -0.20740601000E-04 0.99999999523E+00 814 0.21606010000E+01 0.20621390000E+01 0.32740000000E+04 -0.27491112000E-03 0.22447843000E-03 0.99999993702E+00 815 0.12890820000E+00 0.76657850000E+00 0.32740000000E+04 0.48945596000E-04 0.11578501000E-03 0.99999999210E+00 816 0.51200510000E+00 0.23549450000E+00 0.32740000000E+04 -0.15637952000E-03 -0.20519099000E-05 0.99999998777E+00 817 -0.14291840000E+01 0.19160710000E+01 0.32740000000E+04 0.34337289000E-04 0.34113773000E-03 0.99999994122E+00 818 -0.13361710000E+00 -0.52055850000E+00 0.32740000000E+04 0.10598751000E-03 -0.23207330000E-03 0.99999996745E+00 819 -0.65852990000E+00 0.25982790000E+00 0.32740000000E+04 0.10889978000E-03 0.11564871000E-03 0.99999998738E+00 820 0.16366280000E+01 -0.11317400000E+01 0.32740000000E+04 -0.26617871000E-03 -0.50079118000E-03 0.99999983918E+00 821 -0.21938160000E+00 0.10470680000E+01 0.32740000000E+04 0.25719521000E-03 0.22397202000E-03 0.99999994184E+00 822 0.10378700000E+01 0.12124060000E+01 0.32740000000E+04 0.75820550000E-04 0.79117621000E-04 0.99999999400E+00 823 -0.10311020000E+01 -0.18193090000E+00 0.32740000000E+04 0.66068802000E-04 0.30735473000E-03 0.99999995058E+00 824 -0.79673450000E+00 -0.11937700000E+01 0.32740000000E+04 0.74973155000E-04 0.96135693000E-04 0.99999999257E+00 825 -0.38356840000E+00 -0.49412180000E+00 0.32740000000E+04 -0.12258442000E-03 -0.75607291000E-04 0.99999998963E+00 826 -0.46082350000E+00 0.55661940000E+00 0.32740000000E+04 0.38143276000E-03 0.43159736000E-04 0.99999992632E+00 827 -0.46082350000E+00 0.55661940000E+00 0.32740000000E+04 0.38143276000E-03 0.43159736000E-04 0.99999992632E+00 828 0.10764630000E+01 0.14137970000E+01 0.32740000000E+04 -0.13196869000E-03 0.15574183000E-03 0.99999997916E+00 829 0.35422390000E+00 -0.73669880000E+00 0.32740000000E+04 0.64428954000E-03 -0.22369821000E-03 0.99999976743E+00 830 0.13860360000E+01 -0.59444890000E+00 0.32740000000E+04 0.60510003000E-04 -0.17296862000E-03 0.99999998321E+00 831 0.24600220000E+01 -0.13914440000E+00 0.32740000000E+04 -0.77331308000E-04 -0.18872130000E-03 0.99999997920E+00 832 -0.14185620000E+01 0.23838010000E+01 0.32740000000E+04 -0.19567031000E-03 0.39788711000E-03 0.99999990170E+00 833 0.16947920000E+01 0.12031380000E+01 0.32740000000E+04 0.17895896000E-03 0.56036172000E-03 0.99999982698E+00 834 0.24588180000E+01 0.22873070000E+01 0.32740000000E+04 -0.11375275000E-03 0.43850196000E-04 0.99999999257E+00 835 0.81044280000E-01 0.65466070000E-01 0.32740000000E+04 0.16568622000E-03 -0.21627484000E-03 0.99999996289E+00 836 0.80860760000E+00 0.37893740000E+00 0.32740000000E+04 -0.25571740000E-03 -0.10396958000E-03 0.99999996190E+00 837 0.13204870000E+01 0.61675740000E+00 0.32740000000E+04 -0.31820058000E-04 0.50456852000E-04 0.99999999822E+00 838 0.47171360000E+00 -0.65271860000E+00 0.32740000000E+04 0.26880396000E-04 -0.27709058000E-03 0.99999996125E+00 839 -0.12945920000E+00 0.81390010000E+00 0.32740000000E+04 -0.34404450000E-03 -0.98910870000E-03 0.99999945165E+00 840 -0.21581600000E+01 -0.47282310000E+00 0.32740000000E+04 0.12938913000E-03 -0.11136018000E-03 0.99999998543E+00 841 0.20337790000E+01 0.20561020000E+00 0.32740000000E+04 0.43363532000E-03 -0.39377291000E-03 0.99999982845E+00 842 -0.40602640000E+00 0.40322480000E+00 0.32740000000E+04 0.12097431000E-04 -0.37537029000E-04 0.99999999922E+00 843 -0.40602640000E+00 0.40322480000E+00 0.32740000000E+04 0.12097431000E-04 -0.37537029000E-04 0.99999999922E+00 844 0.20890110000E+01 0.17340720000E+01 0.32740000000E+04 -0.24823839000E-03 0.18076584000E-03 0.99999995285E+00 845 -0.24194260000E+00 0.35484050000E+00 0.32740000000E+04 -0.11547780000E-03 0.43644159000E-05 0.99999999332E+00 846 -0.10851010000E+01 -0.10986660000E+01 0.32740000000E+04 0.77668839000E-03 -0.22181489000E-03 0.99999967378E+00 847 -0.47837990000E+00 0.21950050000E+00 0.32740000000E+04 0.10630442000E-03 -0.94529599000E-06 0.99999999435E+00 848 0.17636530000E+01 0.15621020000E+01 0.32740000000E+04 -0.11964313000E-04 0.27192678000E-03 0.99999996296E+00 849 0.10149460000E+01 -0.27768110000E+00 0.32740000000E+04 -0.11667373000E-03 -0.11222495000E-05 0.99999999319E+00 850 0.30402870000E+00 0.14881920000E+01 0.32740000000E+04 -0.44452776000E-04 -0.14932812000E-03 0.99999998786E+00 851 0.30402870000E+00 0.14881920000E+01 0.32740000000E+04 -0.44452776000E-04 -0.14932812000E-03 0.99999998786E+00 852 0.22954090000E+01 0.13751960000E+01 0.32740000000E+04 -0.42349077000E-03 -0.17955902000E-03 0.99999989421E+00 853 -0.15967340000E+01 -0.34823580000E+00 0.32740000000E+04 -0.15632962000E-04 -0.24740791000E-03 0.99999996927E+00 854 0.11999380000E+01 0.74359210000E+00 0.32740000000E+04 -0.34954929000E-03 -0.16442050000E-03 0.99999992539E+00 855 0.68384490000E-01 0.21374690000E+00 0.32740000000E+04 -0.18080354000E-03 -0.33697113000E-03 0.99999992688E+00 856 -0.92927610000E+00 -0.44564020000E+00 0.32740000000E+04 -0.13274494000E-03 -0.13701947000E-03 0.99999998180E+00 857 0.43226150000E+00 0.23796190000E+01 0.32740000000E+04 0.38890168000E-03 0.15274406000E-03 0.99999991271E+00 858 0.16172480000E+01 0.20572370000E+01 0.32740000000E+04 -0.19674642000E-03 0.29846616000E-03 0.99999993610E+00 859 0.49201750000E+00 0.72811810000E+00 0.32740000000E+04 0.27739961000E-03 0.41336770000E-03 0.99999987609E+00 860 0.15179360000E+01 0.24251440000E+00 0.32740000000E+04 -0.43631392000E-03 -0.18768762000E-03 0.99999988720E+00 861 0.15121560000E+01 -0.39285580000E+00 0.32740000000E+04 0.19573885000E-04 -0.96584183000E-04 0.99999999514E+00 862 0.15121560000E+01 -0.39285580000E+00 0.32740000000E+04 0.19573885000E-04 -0.96584183000E-04 0.99999999514E+00 863 -0.18290640000E+01 -0.85629070000E+00 0.32740000000E+04 0.12518813000E-03 -0.14494846000E-03 0.99999998166E+00 864 -0.82706280000E-01 -0.14589280000E+01 0.32740000000E+04 -0.83245694000E-04 -0.19547461000E-03 0.99999997743E+00 865 -0.12868800000E+01 0.38433970000E+00 0.32740000000E+04 0.15146424000E-03 -0.34393903000E-03 0.99999992938E+00 866 -0.29500410000E+00 0.70721290000E+00 0.32740000000E+04 0.94848874000E-04 0.27990087000E-04 0.99999999511E+00 867 0.20218110000E+00 0.15954470000E+01 0.32740000000E+04 0.96597047000E-04 -0.13964210000E-03 0.99999998558E+00 868 0.28657970000E+01 0.12587270000E+01 0.32740000000E+04 0.47623384000E-04 0.27161383000E-03 0.99999996198E+00 869 0.55772870000E+00 0.44640770000E+00 0.32740000000E+04 0.95729047000E-03 -0.78599151000E-04 0.99999953871E+00 870 -0.13608570000E+01 0.12806380000E+01 0.32740000000E+04 -0.55655812000E-04 0.88312387000E-04 0.99999999455E+00 871 0.10055460000E+01 -0.28155980000E+00 0.32740000000E+04 -0.80521371000E-04 0.23401505000E-03 0.99999996938E+00 872 -0.54865370000E+00 0.69378580000E+00 0.32740000000E+04 0.24381396000E-03 0.11315588000E-03 0.99999996388E+00 873 0.19514720000E+01 0.27425050000E+00 0.32740000000E+04 -0.13149306000E-03 -0.21880151000E-03 0.99999996742E+00 874 0.11052640000E+00 0.25838800000E+00 0.32740000000E+04 -0.80075690000E-04 -0.18804510000E-03 0.99999997911E+00 875 0.10947680000E+01 -0.61406090000E+00 0.32740000000E+04 -0.43286353000E-04 -0.29062535000E-03 0.99999995683E+00 876 0.19555710000E+01 0.16770520000E+01 0.32740000000E+04 0.70472626000E-04 0.12214106000E-03 0.99999999006E+00 877 -0.15898990000E+00 0.16381070000E+01 0.32740000000E+04 0.19837996000E-03 0.20767366000E-03 0.99999995876E+00 878 -0.70561860000E+00 -0.97409130000E-01 0.32740000000E+04 0.14631840000E-03 -0.16629756000E-03 0.99999997547E+00 879 -0.22655860000E+00 -0.10253610000E+01 0.32740000000E+04 0.38311784000E-04 -0.33653915000E-03 0.99999994264E+00 880 0.19862730000E+01 0.46847180000E+00 0.32740000000E+04 0.22511501000E-03 0.28589489000E-04 0.99999997425E+00 881 -0.68685010000E-01 0.13179000000E+01 0.32740000000E+04 0.19501906000E-03 -0.48018370000E-04 0.99999997983E+00 882 0.65768570000E+00 -0.35287070000E+00 0.32740000000E+04 0.21027682000E-03 -0.19056756000E-03 0.99999995973E+00 883 0.22998710000E+01 -0.37328820000E+00 0.32740000000E+04 0.25310813000E-03 0.20018243000E-03 0.99999994793E+00 884 0.71916440000E+00 0.13805280000E+00 0.32740000000E+04 0.45069333000E-03 -0.32188118000E-03 0.99999984663E+00 885 -0.75925200000E-01 0.10979040000E+00 0.32740000000E+04 0.15457082000E-03 0.32545486000E-04 0.99999998752E+00 886 0.18510280000E+00 0.33546390000E+00 0.32740000000E+04 0.14453135000E-03 -0.24765122000E-03 0.99999995889E+00 887 0.54112300000E+00 0.15248260000E+01 0.32740000000E+04 0.44199191000E-04 0.27718632000E-04 0.99999999864E+00 888 0.54112300000E+00 0.15248260000E+01 0.32740000000E+04 0.44199191000E-04 0.27718632000E-04 0.99999999864E+00 889 0.84641360000E+00 0.20573650000E+01 0.32740000000E+04 -0.37896974000E-03 0.22589068000E-03 0.99999990268E+00 890 0.10437610000E+01 0.13694850000E+01 0.32740000000E+04 0.38809838000E-04 0.12427385000E-03 0.99999999152E+00 891 -0.10966150000E+01 0.14574690000E+01 0.32740000000E+04 0.15093782000E-04 -0.51445906000E-04 0.99999999856E+00 892 0.58544410000E+00 0.17949680000E+01 0.32740000000E+04 0.23908523000E-03 0.23949666000E-03 0.99999994274E+00 893 0.93014340000E+00 -0.18902550000E+00 0.32740000000E+04 -0.18883386000E-03 0.20588993000E-03 0.99999996098E+00 894 0.15496620000E+01 0.16415670000E+01 0.32740000000E+04 0.15927749000E-03 0.22399801000E-03 0.99999996223E+00 895 0.16501880000E+01 -0.88471780000E+00 0.32740000000E+04 0.84856671000E-03 -0.56064437000E-03 0.99999948281E+00 896 0.18564590000E+01 0.91721700000E+00 0.32740000000E+04 0.25253748000E-05 0.73209492000E-04 0.99999999732E+00 897 -0.12607360000E+01 -0.64764210000E+00 0.32740000000E+04 0.14364891000E-03 0.15843199000E-04 0.99999998956E+00 898 -0.27020300000E+00 0.20506030000E+01 0.32740000000E+04 0.19710236000E-03 0.22886255000E-03 0.99999995439E+00 899 -0.27020300000E+00 0.20506030000E+01 0.32740000000E+04 0.19710236000E-03 0.22886255000E-03 0.99999995439E+00 900 0.89109750000E+00 0.17874390000E+01 0.32740000000E+04 -0.76412740000E-04 0.19551549000E-03 0.99999997797E+00 901 0.15948630000E+01 0.87077180000E+00 0.32740000000E+04 -0.78928359000E-04 0.18970491000E-03 0.99999997889E+00 902 0.12257370000E+01 -0.63647430000E+00 0.32740000000E+04 -0.97464457000E-04 -0.28019931000E-03 0.99999995599E+00 903 -0.53744210000E-01 0.24353300000E+00 0.32740000000E+04 -0.13374696000E-03 0.26791162000E-03 0.99999995517E+00 904 -0.15503480000E+01 0.31964810000E+00 0.32740000000E+04 -0.18342468000E-03 0.67586094000E-04 0.99999998089E+00 905 -0.76348540000E+00 0.14309600000E+01 0.32740000000E+04 -0.93403018000E-04 0.19796258000E-03 0.99999997604E+00 906 -0.39464710000E+00 0.43980980000E-01 0.32740000000E+04 0.25277035000E-03 -0.17747925000E-03 0.99999995230E+00 907 -0.14388020000E+01 0.43096490000E+00 0.32740000000E+04 0.49510668000E-05 0.35668967000E-04 0.99999999935E+00 908 -0.17971810000E+01 -0.77441160000E+00 0.32740000000E+04 0.65697102000E-04 -0.31678713000E-03 0.99999994766E+00 909 -0.16130390000E+01 -0.90352020000E+00 0.32740000000E+04 0.13321926000E-03 -0.46709215000E-03 0.99999988204E+00 910 0.70997340000E+00 0.13402760000E+01 0.32740000000E+04 -0.97168253000E-04 0.23269080000E-03 0.99999996821E+00 911 0.72229790000E-01 -0.16331640000E+00 0.32740000000E+04 0.13622013000E-03 -0.19023352000E-03 0.99999997263E+00 912 0.12494550000E+00 0.10021900000E+01 0.32740000000E+04 0.11613715000E-03 0.38853064000E-04 0.99999999250E+00 913 0.12494550000E+00 0.10021900000E+01 0.32740000000E+04 0.11613715000E-03 0.38853064000E-04 0.99999999250E+00 914 -0.72465750000E+00 -0.64037870000E+00 0.32740000000E+04 0.16190550000E-03 0.91317643000E-05 0.99999998685E+00 915 -0.79408870000E+00 0.18050550000E+00 0.32740000000E+04 0.28093282000E-04 -0.15285253000E-03 0.99999998792E+00 916 -0.14106250000E+00 0.25111270000E+01 0.32740000000E+04 0.15006770000E-03 0.57344372000E-04 0.99999998710E+00 917 0.16197490000E+01 -0.16173760000E+01 0.32740000000E+04 0.48459004000E-03 -0.54933532000E-03 0.99999973170E+00 918 0.11370240000E+01 0.24423400000E+01 0.32740000000E+04 0.28569582000E-04 0.21897072000E-03 0.99999997562E+00 919 -0.63039140000E+00 0.13037980000E+01 0.32740000000E+04 0.15231101000E-03 0.72944415000E-04 0.99999998574E+00 920 -0.64656660000E+00 -0.13714360000E+01 0.32740000000E+04 0.38600712000E-04 -0.28742757000E-03 0.99999995795E+00 921 0.23614760000E-01 -0.16645960000E+00 0.32740000000E+04 0.68889836000E-04 -0.30770720000E-03 0.99999995029E+00 922 -0.22104850000E+00 0.17505440000E+01 0.32740000000E+04 0.13788116000E-03 0.93335031000E-04 0.99999998614E+00 923 -0.36133130000E+00 -0.10937100000E+00 0.32740000000E+04 0.22235567000E-03 0.30565102000E-05 0.99999997527E+00 924 -0.35098930000E+00 0.76810960000E+00 0.32740000000E+04 -0.48995586000E-04 -0.20983242000E-03 0.99999997678E+00 925 0.13366300000E+01 0.23668150000E-01 0.32740000000E+04 -0.11963097000E-03 0.17042698000E-03 0.99999997832E+00 926 0.32748200000E+00 0.17138770000E+00 0.32740000000E+04 -0.15474786000E-03 0.29435521000E-04 0.99999998759E+00 927 0.32748200000E+00 0.17138770000E+00 0.32740000000E+04 -0.15474786000E-03 0.29435521000E-04 0.99999998759E+00 928 -0.65174470000E+00 -0.21105670000E+00 0.32740000000E+04 0.11197947000E-04 -0.22954165000E-03 0.99999997359E+00 929 0.82980380000E+00 -0.94225120000E+00 0.32740000000E+04 -0.19366573000E-04 -0.12655229000E-03 0.99999999180E+00 930 -0.23003130000E+00 0.19980230000E+01 0.32740000000E+04 -0.20127340000E-03 0.15785804000E-06 0.99999997974E+00 931 -0.89794400000E-01 0.16530440000E+01 0.32740000000E+04 0.47832503000E-03 -0.22416258000E-03 0.99999986048E+00 932 -0.17317190000E+01 -0.13774900000E+01 0.32740000000E+04 0.10287063000E-03 -0.35316631000E-03 0.99999993235E+00 933 0.81613810000E+00 -0.55264580000E+00 0.32740000000E+04 -0.18506880000E-03 0.29662217000E-04 0.99999998243E+00 934 0.24430560000E+01 0.11724530000E+01 0.32740000000E+04 -0.95193456000E-04 -0.29375454000E-03 0.99999995232E+00 935 0.11525880000E+01 -0.10686110000E+01 0.32740000000E+04 -0.28473480000E-04 -0.32508883000E-03 0.99999994675E+00 936 0.37275160000E+00 -0.72583170000E+00 0.32740000000E+04 0.18702615000E-03 -0.24929052000E-03 0.99999995144E+00 937 -0.45831010000E+00 0.10137520000E+01 0.32740000000E+04 -0.20125034000E-03 -0.50728449000E-05 0.99999997974E+00 938 0.45300000000E+00 0.98078050000E+00 0.32740000000E+04 0.23163235000E-03 0.24522613000E-04 0.99999997287E+00 939 0.13614960000E+01 0.22818760000E+01 0.32740000000E+04 -0.17516744000E-03 0.13025540000E-03 0.99999997617E+00 940 0.25738620000E+01 0.17546540000E+01 0.32740000000E+04 -0.19191606000E-03 0.77787445000E-04 0.99999997856E+00 941 -0.13534680000E+01 -0.64189740000E-01 0.32740000000E+04 0.62263396000E-04 0.16066854000E-03 0.99999998515E+00 942 -0.21699130000E+00 0.98726190000E+00 0.32740000000E+04 0.27378212000E-03 0.96100550000E-04 0.99999995790E+00 943 -0.97065320000E+00 -0.14226310000E+01 0.32740000000E+04 -0.55845198000E-03 -0.94006980000E-04 0.99999983965E+00 944 -0.97065320000E+00 -0.14226310000E+01 0.32740000000E+04 -0.55845198000E-03 -0.94006980000E-04 0.99999983965E+00 945 0.18662590000E+01 0.90486800000E+00 0.32740000000E+04 -0.68077767000E-04 0.91790534000E-04 0.99999999347E+00 946 0.18832500000E+01 -0.24043720000E+00 0.32740000000E+04 0.20613022000E-03 -0.81682054000E-04 0.99999997542E+00 947 0.16999740000E+00 0.33069880000E+00 0.32740000000E+04 0.11938505000E-03 -0.25682597000E-03 0.99999995989E+00 948 0.74759960000E+00 -0.11680450000E+01 0.32740000000E+04 0.34474062000E-04 -0.26166285000E-03 0.99999996517E+00 949 0.18883420000E+00 0.31631970000E+00 0.32740000000E+04 0.91102207000E-04 -0.74820608000E-04 0.99999999305E+00 950 0.55106250000E+00 0.20071340000E+01 0.32740000000E+04 -0.15785007000E-03 0.23816168000E-03 0.99999995918E+00 951 0.18457410000E+01 0.33914800000E+00 0.32740000000E+04 0.30982468000E-04 0.12221592000E-03 0.99999999205E+00 952 -0.13100630000E+01 0.33093450000E+00 0.32740000000E+04 0.26617292000E-04 0.29363015000E-03 0.99999995654E+00 953 -0.53453020000E+00 -0.24337700000E+01 0.32740000000E+04 -0.32255255000E-04 -0.29650645000E-03 0.99999995552E+00 954 0.18227730000E+01 0.20120460000E+01 0.32740000000E+04 -0.12693380000E-03 0.30668432000E-03 0.99999994492E+00 955 0.74502110000E-01 -0.50809110000E+00 0.32740000000E+04 0.43061686000E-04 -0.68835805000E-04 0.99999999670E+00 956 0.24475010000E+01 0.66367830000E+00 0.32740000000E+04 -0.79416219000E-04 0.81631268000E-04 0.99999999351E+00 957 0.10434230000E+01 0.57594520000E+00 0.32740000000E+04 -0.35087553000E-04 -0.26158561000E-03 0.99999996517E+00 958 -0.66463690000E-01 -0.12231580000E+00 0.32740000000E+04 -0.26570499000E-03 -0.29943165000E-03 0.99999991987E+00 959 -0.11805900000E+01 0.36018080000E+00 0.32740000000E+04 -0.88536864000E-04 -0.15648920000E-04 0.99999999596E+00 960 0.28588880000E+01 -0.79687130000E+00 0.32740000000E+04 0.48170194000E-04 -0.10027547000E-03 0.99999999381E+00 961 0.37357120000E+00 -0.13984250000E+01 0.32740000000E+04 -0.47306614000E-04 -0.29157934000E-03 0.99999995637E+00 962 0.84720760000E+00 0.11864480000E+01 0.32740000000E+04 -0.13424506000E-03 0.48800863000E-03 0.99999987191E+00 963 0.25797580000E+01 0.11894100000E+01 0.32740000000E+04 -0.34675519000E-04 0.19172486000E-03 0.99999998102E+00 964 0.14832200000E+01 0.21910130000E+01 0.32740000000E+04 -0.18233278000E-03 0.57328842000E-03 0.99999981905E+00 965 0.24860350000E+01 0.15847210000E+01 0.32740000000E+04 0.13205994000E-03 -0.14718517000E-03 0.99999998045E+00 966 0.21855040000E+01 0.16136430000E+01 0.32740000000E+04 0.80799327000E-04 0.31273736000E-03 0.99999994783E+00 967 0.14550400000E+01 -0.11409480000E+01 0.32740000000E+04 -0.63505220000E-04 -0.20136526000E-03 0.99999997771E+00 968 0.49198310000E+00 0.12791710000E+01 0.32740000000E+04 0.44594773000E-04 0.14972543000E-03 0.99999998780E+00 969 0.49198310000E+00 0.12791710000E+01 0.32740000000E+04 0.44594773000E-04 0.14972543000E-03 0.99999998780E+00 970 -0.45956430000E+00 0.23427060000E+01 0.32740000000E+04 0.36965066000E-03 0.21929813000E-03 0.99999990763E+00 971 0.30704370000E+00 0.60536150000E+00 0.32740000000E+04 -0.10909465000E-03 -0.22956601000E-03 0.99999996770E+00 972 -0.99922650000E+00 0.12545230000E+01 0.32740000000E+04 0.21460518000E-03 -0.19562469000E-04 0.99999997678E+00 973 0.13001290000E+01 -0.23785940000E+00 0.32740000000E+04 -0.45021239000E-04 -0.70773181000E-05 0.99999999896E+00 974 0.21896670000E+01 0.99261700000E+00 0.32740000000E+04 0.33113713000E-04 -0.10510044000E-03 0.99999999393E+00 975 -0.28782830000E+00 -0.95122470000E+00 0.32740000000E+04 0.24445829000E-03 -0.33677305000E-03 0.99999991341E+00 976 0.15866340000E+01 0.14225290000E+01 0.32740000000E+04 0.60821149000E-04 0.16082749000E-04 0.99999999802E+00 977 0.13301500000E+01 0.14296210000E+01 0.32740000000E+04 -0.18983107000E-03 0.31669013000E-03 0.99999993184E+00 978 0.18924540000E+01 0.14102920000E+01 0.32740000000E+04 -0.21299612000E-03 0.23720761000E-03 0.99999994918E+00 979 0.18435550000E+01 0.14932580000E+01 0.32740000000E+04 -0.11449779000E-03 0.91374413000E-05 0.99999999340E+00 980 0.44249120000E+00 -0.10133990000E+01 0.32740000000E+04 0.48569982000E-04 -0.20462606000E-03 0.99999997788E+00 981 0.22025960000E+01 -0.91045900000E+00 0.32740000000E+04 -0.25336552000E-03 -0.35884103000E-03 0.99999990352E+00 982 0.22025960000E+01 -0.91045900000E+00 0.32740000000E+04 -0.25336552000E-03 -0.35884103000E-03 0.99999990352E+00 983 -0.23648630000E+00 0.32834060000E+00 0.32740000000E+04 0.11549301000E-03 0.58752605000E-04 0.99999999160E+00 984 0.15087730000E+01 0.25645420000E+01 0.32740000000E+04 -0.12050338000E-03 -0.47630303000E-04 0.99999999161E+00 985 0.53948160000E+00 0.38657400000E+00 0.32740000000E+04 -0.27328813000E-04 0.30111012000E-03 0.99999995429E+00 986 0.15861340000E+01 -0.38610458000E-02 0.32740000000E+04 0.96211057000E-04 -0.27527809000E-03 0.99999995748E+00 987 0.24107840000E+01 0.66955280000E-01 0.32740000000E+04 -0.88252447000E-04 -0.30509173000E-03 0.99999994957E+00 988 0.29538940000E+00 -0.63321340000E+00 0.32740000000E+04 -0.19888816000E-04 -0.23887762000E-04 0.99999999952E+00 989 0.16325240000E+01 -0.35584740000E+00 0.32740000000E+04 0.78246114000E-04 -0.18405226000E-03 0.99999998000E+00 990 0.95864270000E+00 0.13469100000E+01 0.32740000000E+04 -0.15832287000E-03 0.13137767000E-03 0.99999997884E+00 991 -0.33147800000E+00 -0.53980590000E+00 0.32740000000E+04 0.13876637000E-03 -0.31933319000E-03 0.99999993939E+00 992 0.15191220000E+01 0.13234630000E+01 0.32740000000E+04 0.16310888000E-03 -0.72380564000E-04 0.99999998408E+00 993 -0.12459180000E+01 -0.99621730000E+00 0.32740000000E+04 0.99770172000E-04 -0.32181726000E-03 0.99999994324E+00 994 -0.84419060000E+00 -0.92852930000E+00 0.32740000000E+04 -0.23478813000E-04 -0.25470479000E-04 0.99999999940E+00 995 0.25406930000E+01 0.51648940000E+00 0.32740000000E+04 0.33071678000E-05 -0.31595395000E-04 0.99999999950E+00 996 0.26940990000E+00 0.19276370000E+01 0.32740000000E+04 -0.14225293000E-03 0.16398984000E-03 0.99999997644E+00 997 -0.12823110000E+00 -0.84119510000E+00 0.32740000000E+04 0.38836137000E-04 -0.49571012000E-03 0.99999987638E+00 998 -0.17787000000E+00 0.16001950000E+01 0.32740000000E+04 0.15596108000E-03 0.37862050000E-04 0.99999998712E+00 999 -0.17787000000E+00 0.16001950000E+01 0.32740000000E+04 0.15596108000E-03 0.37862050000E-04 0.99999998712E+00 1000 0.34501480000E+00 -0.14316340000E+01 0.32740000000E+04 0.11167658000E-03 -0.12814344000E-03 0.99999998555E+00 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/data-tracks/tracks-80GeV.dat b/examples/advanced/lAr_calorimeter/data-tracks/tracks-80GeV.dat new file mode 100644 index 0000000000..0288f51eb5 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/data-tracks/tracks-80GeV.dat @@ -0,0 +1 @@ + 1 0.11385350000E+01 -0.11247550000E+01 0.32740000000E+04 0.38680897000E-04 -0.48123806000E-03 0.99999988346E+00 2 0.84425950000E+00 0.19658050000E+01 0.32740000000E+04 -0.11119278000E-03 0.38649194000E-03 0.99999991913E+00 3 0.12486350000E+01 0.63493840000E+00 0.32740000000E+04 0.34592456000E-04 0.94554205000E-04 0.99999999493E+00 4 0.12919540000E+01 0.15908250000E+01 0.32740000000E+04 0.11311127000E-03 0.34557533000E-03 0.99999993389E+00 5 0.78217570000E+00 -0.45500120000E+00 0.32740000000E+04 -0.14424956000E-04 -0.33422824000E-04 0.99999999934E+00 6 0.11742550000E+01 -0.20317420000E-01 0.32740000000E+04 -0.67713983000E-04 0.47436279000E-04 0.99999999658E+00 7 -0.51041380000E+00 -0.47448590000E+00 0.32740000000E+04 0.74248514000E-04 0.23036217000E-04 0.99999999698E+00 8 -0.34518890000E+00 -0.70563340000E+00 0.32740000000E+04 0.71793685000E-04 -0.40282300000E-03 0.99999991629E+00 9 -0.47751640000E+00 -0.11465940000E+01 0.32740000000E+04 0.12370313000E-04 -0.23165345000E-03 0.99999997309E+00 10 0.10696640000E+01 0.17068130000E+01 0.32740000000E+04 0.16317041000E-03 0.47661658000E-03 0.99999987311E+00 11 0.43618910000E-01 -0.71744050000E+00 0.32740000000E+04 0.72562165000E-04 -0.19788484000E-03 0.99999997779E+00 12 -0.11668010000E+01 -0.85882020000E+00 0.32740000000E+04 0.37502672000E-04 -0.33315993000E-03 0.99999994380E+00 13 0.18681660000E+01 0.60301280000E-01 0.32740000000E+04 0.82153994000E-04 -0.11916481000E-03 0.99999998953E+00 14 0.52173170000E+00 0.33006070000E+00 0.32740000000E+04 -0.29373352000E-04 -0.88254574000E-05 0.99999999953E+00 15 0.52173170000E+00 0.33006070000E+00 0.32740000000E+04 -0.29373352000E-04 -0.88254574000E-05 0.99999999953E+00 16 0.10121260000E+01 0.36153330000E+00 0.32740000000E+04 0.91007671000E-04 0.12321502000E-03 0.99999998827E+00 17 0.16663560000E+01 -0.19901290000E+00 0.32740000000E+04 0.34004744000E-03 -0.78825433000E-04 0.99999993908E+00 18 -0.71613450000E+00 0.97527750000E+00 0.32740000000E+04 0.24572142000E-04 0.16082345000E-03 0.99999998677E+00 19 -0.79994710000E+00 -0.81326150000E+00 0.32740000000E+04 0.27320884000E-04 0.40301375000E-03 0.99999991842E+00 20 0.10040210000E+01 0.18577220000E+01 0.32740000000E+04 -0.15719689000E-03 0.15306799000E-03 0.99999997593E+00 21 0.11317640000E-01 0.29079510000E+00 0.32740000000E+04 0.39930153000E-04 0.13475004000E-03 0.99999999012E+00 22 0.86660480000E+00 0.10787070000E+01 0.32740000000E+04 0.35279194000E-04 0.14363465000E-03 0.99999998906E+00 23 -0.44433450000E-01 -0.99340640000E+00 0.32740000000E+04 0.18074231000E-03 -0.30994220000E-03 0.99999993563E+00 24 0.18323410000E+01 0.14062020000E+01 0.32740000000E+04 -0.39329916000E-04 0.20248021000E-03 0.99999997873E+00 25 0.16325110000E+01 0.16135110000E+01 0.32740000000E+04 -0.33358057000E-04 0.30570253000E-03 0.99999995272E+00 26 0.22874610000E+01 0.47422220000E+00 0.32740000000E+04 0.14955818000E-03 -0.88183246000E-04 0.99999998493E+00 27 0.13339640000E+01 0.14832900000E+01 0.32740000000E+04 0.38669846000E-03 0.51094464000E-03 0.99999979470E+00 28 0.13339640000E+01 0.14832900000E+01 0.32740000000E+04 0.38669846000E-03 0.51094464000E-03 0.99999979470E+00 29 0.46409140000E+00 -0.13067320000E+00 0.32740000000E+04 0.16491373000E-03 0.43342799000E-04 0.99999998546E+00 30 -0.11160410000E+01 0.48312910000E-01 0.32740000000E+04 0.18973535000E-03 0.20937150000E-04 0.99999998178E+00 31 0.73523180000E+00 -0.11714790000E-01 0.32740000000E+04 0.15452126000E-03 -0.24639945000E-04 0.99999998776E+00 32 0.98149770000E+00 0.12246500000E+01 0.32740000000E+04 -0.77409088000E-04 -0.44405533000E-04 0.99999999602E+00 33 0.27456790000E+01 0.18690360000E+01 0.32740000000E+04 -0.26627733000E-05 0.46256979000E-03 0.99999989301E+00 34 0.14598360000E+01 0.14419750000E+01 0.32740000000E+04 0.10955103000E-03 0.13926983000E-03 0.99999998430E+00 35 -0.53133420000E+00 0.78601790000E+00 0.32740000000E+04 0.11919309000E-03 0.48971397000E-03 0.99999987299E+00 36 -0.23384390000E+00 0.23445920000E+00 0.32740000000E+04 0.96309435000E-04 0.81827733000E-04 0.99999999201E+00 37 0.14771920000E+01 -0.55697340000E+00 0.32740000000E+04 0.24749017000E-04 -0.87903318000E-04 0.99999999583E+00 38 0.24967680000E+01 0.25034940000E+01 0.32740000000E+04 0.10257991000E-03 -0.41286802000E-03 0.99999990951E+00 39 0.10300220000E+01 0.12492590000E+01 0.32740000000E+04 0.11327467000E-03 0.56392237000E-04 0.99999999199E+00 40 -0.49887080000E+00 0.11648410000E+01 0.32740000000E+04 0.91053036000E-04 0.81522385000E-05 0.99999999582E+00 41 0.17691440000E+01 0.13199110000E+01 0.32740000000E+04 0.27009206000E-04 0.13559293000E-03 0.99999999044E+00 42 0.17691440000E+01 0.13199110000E+01 0.32740000000E+04 0.27009206000E-04 0.13559293000E-03 0.99999999044E+00 43 0.18876460000E+01 0.23130900000E+01 0.32740000000E+04 -0.74023890000E-04 0.29878880000E-03 0.99999995262E+00 44 -0.17005100000E+00 0.14022330000E+01 0.32740000000E+04 0.18838212000E-03 0.52100117000E-03 0.99999984653E+00 45 0.85296990000E+00 0.13582120000E+00 0.32740000000E+04 0.86475360000E-04 0.18848435000E-03 0.99999997850E+00 46 0.17413900000E+01 0.14281000000E+01 0.32740000000E+04 0.35204186000E-04 0.83165076000E-04 0.99999999592E+00 47 0.26983640000E+01 0.15899460000E+01 0.32740000000E+04 0.20205826000E-03 0.17893192000E-03 0.99999996358E+00 48 0.34918850000E+00 -0.78645960000E+00 0.32740000000E+04 0.71448801000E-06 -0.29326766000E-03 0.99999995700E+00 49 -0.69100180000E+00 -0.43584300000E+00 0.32740000000E+04 0.11129004000E-03 -0.27341877000E-04 0.99999999343E+00 50 0.13633050000E+01 0.33446500000E+00 0.32740000000E+04 -0.80820973000E-04 0.12468010000E-03 0.99999998896E+00 51 -0.62197030000E+00 0.14815700000E+01 0.32740000000E+04 0.65789973000E-04 0.59368627000E-04 0.99999999607E+00 52 0.59353010000E+00 0.54022980000E+00 0.32740000000E+04 0.18778273000E-04 0.23627445000E-04 0.99999999954E+00 53 0.15470110000E+01 0.11545390000E+01 0.32740000000E+04 0.24391220000E-04 0.18060175000E-04 0.99999999954E+00 54 0.13166630000E+00 -0.69466620000E+00 0.32740000000E+04 0.21912601000E-03 -0.22239592000E-03 0.99999995126E+00 55 0.12354410000E+01 0.20949570000E+01 0.32740000000E+04 -0.70500952000E-04 0.14007598000E-03 0.99999998770E+00 56 -0.22287270000E+00 -0.97375100000E+00 0.32740000000E+04 0.15488139000E-03 -0.11152772000E-03 0.99999998179E+00 57 0.13233270000E+01 -0.62122160000E+00 0.32740000000E+04 0.12472487000E-03 -0.31630060000E-03 0.99999994220E+00 58 -0.10518070000E+01 -0.24315119000E-02 0.32740000000E+04 0.14881676000E-03 -0.12084239000E-03 0.99999998163E+00 59 0.72555840000E+00 -0.12207310000E+01 0.32740000000E+04 0.12123850000E-03 -0.14526662000E-03 0.99999998210E+00 60 -0.18899590000E+01 -0.85383220000E+00 0.32740000000E+04 -0.70524234000E-05 -0.59077531000E-04 0.99999999823E+00 61 -0.18899590000E+01 -0.85383220000E+00 0.32740000000E+04 -0.70524234000E-05 -0.59077531000E-04 0.99999999823E+00 62 0.18515220000E+01 0.19251850000E+01 0.32740000000E+04 -0.40621493000E-04 0.12865553000E-03 0.99999999090E+00 63 0.41448370000E+00 0.17025160000E+00 0.32740000000E+04 0.83702689000E-04 -0.12933910000E-03 0.99999998813E+00 64 0.22626310000E+01 0.16709680000E+01 0.32740000000E+04 -0.74196825000E-04 0.28776319000E-03 0.99999995584E+00 65 0.38390380000E-01 -0.52721210000E+00 0.32740000000E+04 0.68243935000E-04 -0.92019487000E-04 0.99999999344E+00 66 -0.52290980000E+00 -0.80133090000E+00 0.32740000000E+04 0.22559203000E-03 -0.37954451000E-04 0.99999997383E+00 67 0.21312610000E+01 0.17339260000E+01 0.32740000000E+04 -0.24080454000E-03 0.22327993000E-03 0.99999994608E+00 68 0.19064720000E+01 -0.58677360000E+00 0.32740000000E+04 0.31318294000E-04 -0.41431565000E-04 0.99999999865E+00 69 0.10410680000E+01 -0.60735960000E+00 0.32740000000E+04 0.16292196000E-03 -0.38473168000E-03 0.99999991272E+00 70 -0.46712410000E+00 -0.44531510000E+00 0.32740000000E+04 0.10229481000E-03 0.30154566000E-04 0.99999999431E+00 71 -0.73398170000E+00 -0.12039270000E+01 0.32740000000E+04 0.27561749000E-04 -0.11344554000E-03 0.99999999319E+00 72 0.20737830000E+01 0.74118820000E+00 0.32740000000E+04 -0.47630925000E-04 0.12261947000E-03 0.99999999135E+00 73 0.13775370000E+01 0.11000880000E+01 0.32740000000E+04 0.23470493000E-04 -0.44894292000E-04 0.99999999872E+00 74 -0.14392540000E+01 -0.96359410000E+00 0.32740000000E+04 0.10235787000E-03 0.11241136000E-03 0.99999998844E+00 75 0.13870050000E+01 -0.45907270000E+00 0.32740000000E+04 0.19105921000E-03 -0.92519738000E-04 0.99999997747E+00 76 0.13870050000E+01 -0.45907270000E+00 0.32740000000E+04 0.19105921000E-03 -0.92519738000E-04 0.99999997747E+00 77 0.16146950000E+01 0.13666400000E+01 0.32740000000E+04 -0.26015858000E-04 0.60050824000E-03 0.99999981936E+00 78 0.88237730000E+00 0.16358260000E+01 0.32740000000E+04 0.82378501000E-04 0.21881044000E-03 0.99999997267E+00 79 0.13793400000E+01 0.22689910000E+01 0.32740000000E+04 -0.49539387000E-04 0.11253315000E-03 0.99999999244E+00 80 0.97190070000E+00 -0.38298990000E-01 0.32740000000E+04 0.98904529000E-04 -0.22442680000E-03 0.99999996993E+00 81 0.15172040000E+01 0.14672660000E+01 0.32740000000E+04 0.12977405000E-03 0.12008327000E-03 0.99999998437E+00 82 0.19985440000E+01 0.20343010000E+01 0.32740000000E+04 -0.30085098000E-03 -0.10792747000E-04 0.99999995469E+00 83 -0.38102960000E+00 0.91449040000E+00 0.32740000000E+04 -0.58424142000E-04 0.19461472000E-03 0.99999997936E+00 84 0.12214450000E+01 0.34285290000E+00 0.32740000000E+04 0.46623598000E-04 0.33805853000E-04 0.99999999834E+00 85 0.12560270000E+01 0.13451780000E+01 0.32740000000E+04 0.87233595000E-04 0.19545559000E-03 0.99999997709E+00 86 0.78707780000E+00 0.92163110000E+00 0.32740000000E+04 0.26401296000E-04 0.24898471000E-04 0.99999999934E+00 87 -0.68429970000E+00 0.53376450000E+00 0.32740000000E+04 -0.10058379000E-04 0.45440138000E-04 0.99999999892E+00 88 -0.69448150000E+00 0.77510020000E+00 0.32740000000E+04 0.18462545000E-03 -0.31393076000E-04 0.99999998246E+00 89 0.39231260000E+00 -0.12734370000E+00 0.32740000000E+04 0.21761177000E-03 0.51771590000E-05 0.99999997631E+00 90 0.39231260000E+00 -0.12734370000E+00 0.32740000000E+04 0.21761177000E-03 0.51771590000E-05 0.99999997631E+00 91 0.65741960000E+00 -0.12151140000E+01 0.32740000000E+04 0.31146741000E-04 -0.22126049000E-03 0.99999997504E+00 92 -0.17650690000E+00 -0.98832450000E+00 0.32740000000E+04 -0.27556858000E-04 -0.18754024000E-03 0.99999998203E+00 93 -0.11302900000E+01 0.34897200000E+00 0.32740000000E+04 0.62706727000E-04 -0.12682909000E-03 0.99999998999E+00 94 0.13492430000E+01 0.63894270000E-01 0.32740000000E+04 0.40067305000E-04 -0.30502660000E-03 0.99999995268E+00 95 0.74452740000E+00 0.70295170000E+00 0.32740000000E+04 0.30547035000E-04 0.12546162000E-03 0.99999999166E+00 96 0.14994260000E+00 -0.52629320000E+00 0.32740000000E+04 0.10620424000E-03 -0.62390391000E-04 0.99999999241E+00 97 -0.63696980000E+00 -0.56672540000E+00 0.32740000000E+04 0.14507340000E-03 -0.18375987000E-03 0.99999997259E+00 98 0.48088870000E+00 -0.14773670000E+01 0.32740000000E+04 -0.15538133000E-03 -0.16045742000E-03 0.99999997506E+00 99 0.27047780000E+00 -0.18024700000E+00 0.32740000000E+04 0.30528008000E-04 -0.39208090000E-03 0.99999992267E+00 100 -0.84808660000E+00 0.21868810000E+01 0.32740000000E+04 0.15904345000E-03 0.28491998000E-03 0.99999994676E+00 101 -0.16636300000E+01 -0.14986620000E+01 0.32740000000E+04 0.11110752000E-03 -0.34904111000E-04 0.99999999322E+00 102 0.13960000000E+01 0.90066390000E+00 0.32740000000E+04 -0.18991745000E-04 0.20690283000E-03 0.99999997842E+00 103 0.13960000000E+01 0.90066390000E+00 0.32740000000E+04 -0.18991745000E-04 0.20690283000E-03 0.99999997842E+00 104 -0.71493110000E+00 -0.99005900000E+00 0.32740000000E+04 0.19203738000E-03 -0.17822828000E-03 0.99999996568E+00 105 -0.49649040000E-01 0.18810820000E+01 0.32740000000E+04 0.16917953000E-03 0.38846090000E-03 0.99999991024E+00 106 -0.41874690000E+00 0.12107540000E+01 0.32740000000E+04 0.22430428000E-04 0.12900538000E-03 0.99999999143E+00 107 0.18054610000E+00 -0.75620055000E-02 0.32740000000E+04 0.22069597000E-04 -0.69625145000E-04 0.99999999733E+00 108 -0.99450810000E+00 -0.12296910000E+01 0.32740000000E+04 0.62738673000E-05 -0.31305689000E-03 0.99999995098E+00 109 0.10156000000E+01 0.48498270000E+00 0.32740000000E+04 -0.16676344000E-04 0.21701919000E-03 0.99999997631E+00 110 0.10156000000E+01 0.48498270000E+00 0.32740000000E+04 -0.16676344000E-04 0.21701919000E-03 0.99999997631E+00 111 0.45308450000E-01 0.12001700000E+01 0.32740000000E+04 0.12052568000E-03 -0.26303647000E-04 0.99999999239E+00 112 0.17288020000E+01 0.98117380000E+00 0.32740000000E+04 -0.12877595000E-03 0.83016039000E-05 0.99999999167E+00 113 -0.10079500000E+01 0.47252180000E+00 0.32740000000E+04 -0.87903536000E-04 0.24222658000E-04 0.99999999584E+00 114 0.55091320000E+00 0.25965040000E+00 0.32740000000E+04 0.32043172000E-04 0.33153108000E-03 0.99999994453E+00 115 0.87833820000E+00 -0.68046800000E+00 0.32740000000E+04 0.23505885000E-04 -0.18972621000E-03 0.99999998173E+00 116 0.34243570000E+00 -0.56158400000E+00 0.32740000000E+04 0.17281325000E-03 -0.11682186000E-03 0.99999997824E+00 117 -0.26871710000E+01 0.57050800000E+00 0.32740000000E+04 -0.22346005000E-03 -0.43293153000E-05 0.99999997502E+00 118 0.52804410000E+00 0.79342370000E+00 0.32740000000E+04 -0.88815523000E-05 0.25085715000E-03 0.99999996850E+00 119 0.30535980000E+00 0.18420560000E+01 0.32740000000E+04 -0.61315171000E-04 0.31919984000E-03 0.99999994718E+00 120 0.12462090000E+01 0.34505830000E+00 0.32740000000E+04 0.41813553000E-04 0.96737989000E-04 0.99999999445E+00 121 0.54951290000E+00 0.19866710000E+00 0.32740000000E+04 0.14544286000E-03 0.70689486000E-04 0.99999998692E+00 122 0.60582970000E+00 0.17877850000E+01 0.32740000000E+04 0.80372723000E-04 0.39483988000E-03 0.99999991882E+00 123 -0.21672290000E+00 -0.53566840000E+00 0.32740000000E+04 -0.70402995000E-04 -0.25445395000E-03 0.99999996515E+00 124 -0.21672290000E+00 -0.53566840000E+00 0.32740000000E+04 -0.70402995000E-04 -0.25445395000E-03 0.99999996515E+00 125 -0.73676240000E+00 -0.97745450000E-01 0.32740000000E+04 -0.24719504000E-03 0.92541239000E-04 0.99999996517E+00 126 -0.64560870000E+00 0.23150740000E+00 0.32740000000E+04 0.52158939000E-04 -0.21389325000E-03 0.99999997576E+00 127 0.18941010000E+01 0.10234000000E+01 0.32740000000E+04 0.17172042000E-04 -0.48057013000E-03 0.99999988438E+00 128 -0.13944300000E+01 -0.22721420000E+01 0.32740000000E+04 0.12345155000E-03 -0.66875378000E-04 0.99999999014E+00 129 0.68510060000E+00 0.14580590000E+01 0.32740000000E+04 0.33998283000E-04 0.28734733000E-03 0.99999995814E+00 130 0.20469310000E+01 0.36267400000E+00 0.32740000000E+04 0.83464045000E-04 -0.20825012000E-05 0.99999999651E+00 131 0.14804140000E+01 0.11658990000E+01 0.32740000000E+04 0.22656752000E-04 0.10223324000E-03 0.99999999452E+00 132 0.14370480000E+00 -0.59556410000E+00 0.32740000000E+04 0.31319585000E-04 -0.13767675000E-03 0.99999999003E+00 133 0.43754980000E+00 -0.81671600000E+00 0.32740000000E+04 0.17262505000E-05 -0.11691169000E-03 0.99999999316E+00 134 0.26036970000E+01 0.21984620000E+01 0.32740000000E+04 -0.12052698000E-03 0.44773020000E-04 0.99999999173E+00 135 0.23467120000E+01 0.93591830000E+00 0.32740000000E+04 -0.14774717000E-04 -0.46936395000E-04 0.99999999879E+00 136 -0.92260190000E+00 0.50579070000E+00 0.32740000000E+04 0.97678072000E-04 0.17504000000E-03 0.99999997991E+00 137 -0.92260190000E+00 0.50579070000E+00 0.32740000000E+04 0.97678072000E-04 0.17504000000E-03 0.99999997991E+00 138 0.31475900000E-01 0.14300510000E+00 0.32740000000E+04 0.29679341000E-03 0.12160229000E-03 0.99999994856E+00 139 -0.10814110000E+00 0.90646810000E+00 0.32740000000E+04 0.19329029000E-04 0.17186326000E-03 0.99999998504E+00 140 0.12085410000E+01 0.16526500000E+01 0.32740000000E+04 0.51985808000E-04 0.12922115000E-03 0.99999999030E+00 141 -0.19309000000E+01 0.22189090000E+01 0.32740000000E+04 -0.19083975000E-03 0.23532189000E-03 0.99999995410E+00 142 0.60736740000E+00 0.52582360000E+00 0.32740000000E+04 0.14872685000E-03 0.20144740000E-03 0.99999996865E+00 143 -0.48442650000E+00 0.64131900000E+00 0.32740000000E+04 0.13152596000E-03 0.18872206000E-03 0.99999997354E+00 144 0.22895090000E+01 0.11190320000E+01 0.32740000000E+04 -0.21689074000E-03 0.54090044000E-04 0.99999997502E+00 145 -0.36665450000E+00 -0.87894990000E+00 0.32740000000E+04 0.16852193000E-03 -0.79511083000E-04 0.99999998264E+00 146 -0.39812480000E+00 -0.56766140000E+00 0.32740000000E+04 0.52721934000E-04 0.30450512000E-04 0.99999999815E+00 147 -0.44317480000E+00 -0.30334990000E+00 0.32740000000E+04 0.43891021000E-04 -0.53158932000E-04 0.99999999762E+00 148 0.11750530000E+01 0.77798380000E+00 0.32740000000E+04 0.15674173000E-03 0.20783182000E-03 0.99999996612E+00 149 -0.90609810000E+00 -0.11149720000E+01 0.32740000000E+04 0.18274211000E-03 -0.95642710000E-04 0.99999997873E+00 150 -0.60759530000E+00 0.91571770000E+00 0.32740000000E+04 0.10313783000E-03 0.13154971000E-03 0.99999998603E+00 151 -0.60759530000E+00 0.91571770000E+00 0.32740000000E+04 0.10313783000E-03 0.13154971000E-03 0.99999998603E+00 152 0.12856190000E+01 0.24785980000E-01 0.32740000000E+04 0.20100415000E-04 -0.78585135000E-05 0.99999999977E+00 153 0.63272500000E+00 0.65476700000E+00 0.32740000000E+04 0.33690947000E-04 0.13396068000E-03 0.99999999046E+00 154 0.15430120000E-01 -0.53870380000E+00 0.32740000000E+04 0.83677289000E-04 0.45523975000E-04 0.99999999546E+00 155 0.97996150000E+00 0.18457850000E+01 0.32740000000E+04 -0.48162328000E-04 0.29385713000E-03 0.99999995566E+00 156 -0.36275780000E-01 0.45602270000E+00 0.32740000000E+04 0.15582007000E-03 0.49012109000E-04 0.99999998666E+00 157 -0.16146220000E+00 -0.55589200000E+00 0.32740000000E+04 -0.13385956000E-03 -0.21910307000E-03 0.99999996704E+00 158 0.16756470000E+00 0.38946780000E+00 0.32740000000E+04 0.88418579000E-04 -0.28668350000E-04 0.99999999568E+00 159 0.60504810000E+00 0.97263250000E+00 0.32740000000E+04 0.18432240000E-03 -0.25588206000E-04 0.99999998269E+00 160 0.18338620000E+01 0.17260810000E+01 0.32740000000E+04 0.10153202000E-03 0.10192436000E-03 0.99999998965E+00 161 0.26788430000E+01 0.99901500000E+00 0.32740000000E+04 0.53161722000E-04 0.32157724000E-03 0.99999994688E+00 162 0.16877700000E+01 0.24068240000E+01 0.32740000000E+04 0.19149420000E-03 0.37920949000E-03 0.99999990977E+00 163 0.15524100000E+00 0.23004180000E+00 0.32740000000E+04 0.29191689000E-04 0.89379966000E-04 0.99999999558E+00 164 0.15524100000E+00 0.23004180000E+00 0.32740000000E+04 0.29191689000E-04 0.89379966000E-04 0.99999999558E+00 165 0.16767430000E+01 0.15860040000E+01 0.32740000000E+04 0.23909382000E-04 0.10599256000E-03 0.99999999410E+00 166 0.15676660000E+01 -0.35681830000E+00 0.32740000000E+04 0.14415913000E-03 -0.82561688000E-04 0.99999998620E+00 167 -0.23371120000E+00 0.96594510000E+00 0.32740000000E+04 0.12683665000E-03 0.32186494000E-03 0.99999994016E+00 168 0.40924990000E+00 -0.57700050000E+00 0.32740000000E+04 0.16361447000E-03 0.12145127000E-02 0.99999924909E+00 169 0.40924990000E+00 -0.57700050000E+00 0.32740000000E+04 0.16361447000E-03 0.12145127000E-02 0.99999924909E+00 170 -0.78690560000E+00 -0.20564490000E+00 0.32740000000E+04 0.17490402000E-03 -0.10648966000E-03 0.99999997903E+00 171 0.15118040000E+01 0.20896150000E+01 0.32740000000E+04 -0.61162536000E-04 0.19801906000E-03 0.99999997852E+00 172 0.15859930000E+01 0.48982840000E+00 0.32740000000E+04 0.33139018000E-03 -0.10702029000E-03 0.99999993936E+00 173 -0.11464880000E+01 -0.13394890000E+01 0.32740000000E+04 0.99263583000E-04 0.30972678000E-04 0.99999999459E+00 174 -0.90727830000E+00 -0.59788920000E-01 0.32740000000E+04 -0.20327669000E-04 -0.18067696000E-04 0.99999999963E+00 175 0.13767150000E+01 0.22321780000E+01 0.32740000000E+04 0.48417496000E-04 0.23644553000E-03 0.99999997087E+00 176 0.63164400000E+00 -0.31895990000E+00 0.32740000000E+04 0.64550746000E-04 0.22514278000E-04 0.99999999766E+00 177 0.17359790000E+01 0.20496070000E+01 0.32740000000E+04 -0.10070405000E-03 0.59087863000E-04 0.99999999318E+00 178 0.20152940000E+00 0.22300030000E+01 0.32740000000E+04 0.64721069000E-04 0.43571010000E-03 0.99999990298E+00 179 0.14248720000E+01 0.54184790000E+00 0.32740000000E+04 0.17918927000E-03 -0.82479157000E-04 0.99999998054E+00 180 0.97587340000E+00 0.21033420000E+01 0.32740000000E+04 0.18342168000E-03 0.34921779000E-03 0.99999992220E+00 181 0.97587340000E+00 0.21033420000E+01 0.32740000000E+04 0.18342168000E-03 0.34921779000E-03 0.99999992220E+00 182 -0.70188530000E+00 -0.14342590000E+01 0.32740000000E+04 0.27393328000E-03 -0.19244474000E-03 0.99999994396E+00 183 0.21354420000E+00 0.16614830000E+01 0.32740000000E+04 0.47969224000E-04 0.21888065000E-03 0.99999997490E+00 184 -0.77773750000E+00 -0.10547240000E+01 0.32740000000E+04 0.28287363000E-03 -0.27034682000E-03 0.99999992345E+00 185 -0.93420570000E+00 -0.15762270000E+01 0.32740000000E+04 0.27701881000E-04 -0.20472426000E-03 0.99999997866E+00 186 0.24762980000E+01 0.17711750000E+01 0.32740000000E+04 -0.42965592000E-04 0.11220264000E-03 0.99999999278E+00 187 -0.42943390000E+00 0.32917690000E+00 0.32740000000E+04 0.21453846000E-03 0.40353338000E-04 0.99999997617E+00 188 0.25622310000E+00 0.64656310000E+00 0.32740000000E+04 -0.96909789000E-04 0.15666342000E-03 0.99999998303E+00 189 0.13698810000E+01 -0.41035550000E+00 0.32740000000E+04 0.19780926000E-03 0.20940216000E-03 0.99999995851E+00 190 0.88584200000E-01 0.44500070000E+00 0.32740000000E+04 0.14520972000E-03 0.33366334000E-04 0.99999998890E+00 191 0.18550210000E+00 -0.26331650000E+00 0.32740000000E+04 0.14097508000E-03 0.13623482000E-04 0.99999998997E+00 192 0.16568230000E-01 -0.12641730000E+01 0.32740000000E+04 0.26038691000E-03 -0.24202974000E-03 0.99999993681E+00 193 -0.52239510000E+00 0.24495430000E+00 0.32740000000E+04 0.15210111000E-03 -0.15264475000E-04 0.99999998832E+00 194 0.12967580000E+00 -0.10155590000E+01 0.32740000000E+04 0.17586065000E-03 -0.14932030000E-03 0.99999997339E+00 195 0.12967580000E+00 -0.98809860000E+00 0.32740000000E+04 0.17586065000E-03 -0.28764075000E-03 0.99999994317E+00 196 -0.38599210000E+00 -0.36662230000E+00 0.32740000000E+04 0.10284474000E-03 0.14437977000E-03 0.99999998429E+00 197 0.25742950000E+01 0.35628360000E+00 0.32740000000E+04 0.67416108000E-05 -0.24731144000E-04 0.99999999967E+00 198 -0.62824450000E+00 -0.38500770000E+00 0.32740000000E+04 0.31619806000E-04 0.87791312000E-04 0.99999999565E+00 199 0.55063260000E+00 0.17539180000E+01 0.32740000000E+04 0.27315112000E-03 0.48275467000E-03 0.99999984617E+00 200 0.21245740000E+01 -0.18004540000E+01 0.32740000000E+04 0.79038111000E-03 -0.53688290000E-03 0.99999954353E+00 201 0.16228710000E+01 0.45372510000E+00 0.32740000000E+04 0.80534977000E-04 0.88542176000E-04 0.99999999284E+00 202 0.16945130000E+01 0.25707910000E+00 0.32740000000E+04 0.16830472000E-04 0.32644856000E-03 0.99999994657E+00 203 -0.70662810000E+00 0.27267890000E+00 0.32740000000E+04 0.52236177000E-04 -0.17176016000E-03 0.99999998388E+00 204 0.14352490000E+01 -0.96060900000E-01 0.32740000000E+04 0.22301808000E-03 -0.27786038000E-03 0.99999993653E+00 205 -0.67858870000E+00 -0.13116730000E+01 0.32740000000E+04 0.29136508000E-03 -0.80545062000E-04 0.99999995431E+00 206 0.92804680000E+00 0.97297420000E+00 0.32740000000E+04 0.78304380000E-04 -0.98754026000E-04 0.99999999206E+00 207 -0.80077630000E+00 -0.50570210000E+00 0.32740000000E+04 0.38705326000E-04 -0.11001302000E-03 0.99999999320E+00 208 0.13471850000E+01 0.19530040000E+01 0.32740000000E+04 -0.10387263000E-03 0.34737744000E-03 0.99999993427E+00 209 0.13471850000E+01 0.19530040000E+01 0.32740000000E+04 -0.10387263000E-03 0.34737744000E-03 0.99999993427E+00 210 0.17911770000E+01 0.14315630000E+01 0.32740000000E+04 -0.67109031000E-04 0.26966434000E-03 0.99999996139E+00 211 -0.52115720000E+00 -0.18695040000E+00 0.32740000000E+04 -0.50356422000E-04 -0.14408477000E-03 0.99999998835E+00 212 -0.33607560000E-01 -0.91897540000E+00 0.32740000000E+04 -0.19787391000E-04 0.82833409000E-04 0.99999999637E+00 213 -0.61976520000E-01 -0.30902450000E+00 0.32740000000E+04 -0.35278536000E-04 -0.28868570000E-03 0.99999995771E+00 214 0.17633220000E+01 0.23049540000E+00 0.32740000000E+04 0.29040531000E-04 0.12049187000E-03 0.99999999232E+00 215 -0.96097070000E+00 -0.12011310000E+01 0.32740000000E+04 -0.25320047000E-04 -0.30083107000E-03 0.99999995443E+00 216 0.69903380000E+00 0.97243280000E+00 0.32740000000E+04 0.27491350000E-03 -0.64947679000E-04 0.99999996010E+00 217 0.99600430000E+00 0.35407140000E+00 0.32740000000E+04 0.21379704000E-03 -0.12870545000E-03 0.99999996886E+00 218 -0.39524400000E+00 -0.58371850000E+00 0.32740000000E+04 0.13559579000E-03 -0.15579819000E-04 0.99999999069E+00 219 0.70047140000E+00 -0.71653980000E-01 0.32740000000E+04 0.50082563000E-04 0.90133646000E-04 0.99999999468E+00 220 0.18714950000E+01 0.21955770000E+01 0.32740000000E+04 -0.11961118000E-03 0.18711803000E-03 0.99999997534E+00 221 0.20088170000E+01 0.18782050000E+01 0.32740000000E+04 -0.59669433000E-05 0.36008641000E-03 0.99999993515E+00 222 0.14277700000E+01 -0.55192680000E+00 0.32740000000E+04 0.31343047000E-03 0.53893583000E-03 0.99999980565E+00 223 0.12133170000E+01 0.12118550000E+01 0.32740000000E+04 0.67012326000E-04 0.70781934000E-04 0.99999999525E+00 224 0.15944150000E+01 0.27755310000E+00 0.32740000000E+04 0.30402804000E-04 0.41816975000E-05 0.99999999953E+00 225 0.18650260000E+01 -0.20436970000E+00 0.32740000000E+04 0.54983804000E-04 0.95366908000E-04 0.99999999394E+00 226 0.38970600000E+00 0.93431630000E+00 0.32740000000E+04 -0.37003756000E-04 0.99616063000E-05 0.99999999927E+00 227 0.10271380000E+01 0.15442020000E+01 0.32740000000E+04 -0.54109510000E-05 0.24768591000E-03 0.99999996931E+00 228 -0.55520940000E+00 0.37003760000E+00 0.32740000000E+04 -0.52079366000E-04 0.14282778000E-03 0.99999998844E+00 229 0.13459200000E+01 0.33352800000E+00 0.32740000000E+04 -0.87085857000E-04 0.24220522000E-03 0.99999996688E+00 230 0.13459200000E+01 0.33352800000E+00 0.32740000000E+04 -0.87085857000E-04 0.24220522000E-03 0.99999996688E+00 231 0.16791590000E+01 -0.13546000000E+01 0.32740000000E+04 -0.13193315000E-03 -0.12134534000E-03 0.99999998393E+00 232 0.78378100000E+00 -0.39076660000E+00 0.32740000000E+04 0.21257241000E-04 -0.75412318000E-04 0.99999999693E+00 233 0.14246100000E+01 0.14659490000E+01 0.32740000000E+04 0.10585463000E-03 0.17038078000E-03 0.99999997988E+00 234 0.18856180000E+01 0.93696110000E+00 0.32740000000E+04 0.89994304000E-04 0.70940837000E-03 0.99999974432E+00 235 0.15973860000E+01 0.20381930000E+01 0.32740000000E+04 -0.63034696000E-06 0.23377838000E-03 0.99999997267E+00 236 0.10623000000E+01 0.14176210000E+01 0.32740000000E+04 -0.38620652000E-04 -0.42610041000E-04 0.99999999835E+00 237 0.26472890000E+00 -0.26321180000E+00 0.32740000000E+04 0.34543715000E-03 -0.11689104000E-03 0.99999993350E+00 238 0.20880640000E+01 0.12913030000E+01 0.32740000000E+04 -0.52786010000E-04 0.62564291000E-05 0.99999999859E+00 239 -0.12253900000E+01 -0.96819770000E-01 0.32740000000E+04 0.60887447000E-04 -0.42458621000E-04 0.99999999724E+00 240 0.53559280000E+00 0.15280320000E+01 0.32740000000E+04 0.17243880000E-03 0.43305219000E-03 0.99999989137E+00 241 -0.75340830000E+00 0.64233900000E+00 0.32740000000E+04 -0.29799589000E-05 -0.55739371000E-03 0.99999984465E+00 242 0.23261550000E+01 0.11320130000E+01 0.32740000000E+04 -0.93374700000E-04 0.26748819000E-04 0.99999999528E+00 243 0.23261550000E+01 0.11320130000E+01 0.32740000000E+04 -0.93374700000E-04 0.26748819000E-04 0.99999999528E+00 244 -0.94415800000E+00 0.29865070000E-01 0.32740000000E+04 0.22306954000E-03 0.10733241000E-03 0.99999996936E+00 245 0.20343470000E+00 -0.46248870000E+00 0.32740000000E+04 -0.78083955000E-04 0.17897555000E-03 0.99999998094E+00 246 0.58827940000E-01 0.69359210000E-01 0.32740000000E+04 0.60682654000E-04 -0.49099595000E-04 0.99999999695E+00 247 -0.31086810000E+00 -0.10117570000E+01 0.32740000000E+04 0.19637008000E-03 0.17487876000E-05 0.99999998072E+00 248 0.79797930000E+00 0.10199360000E+01 0.32740000000E+04 0.18703922000E-03 -0.49550331000E-05 0.99999998250E+00 249 -0.15628690000E+01 -0.94104300000E+00 0.32740000000E+04 0.99844379000E-04 -0.20565189000E-03 0.99999997387E+00 250 0.23487010000E+00 0.18270240000E+01 0.32740000000E+04 0.17572923000E-03 0.23702144000E-03 0.99999995647E+00 251 0.15644300000E-01 0.96656470000E+00 0.32740000000E+04 0.89374837000E-04 0.11885884000E-03 0.99999998894E+00 252 0.13398210000E+01 0.46175640000E+00 0.32740000000E+04 0.37473848000E-04 0.11735822000E-04 0.99999999923E+00 253 0.28839680000E+00 0.22733170000E+01 0.32740000000E+04 0.21361720000E-04 0.34873100000E-03 0.99999993897E+00 254 0.60811500000E-01 0.52087200000E+00 0.32740000000E+04 -0.45038047000E-04 -0.79891790000E-04 0.99999999579E+00 255 0.96109200000E+00 0.21112850000E+00 0.32740000000E+04 0.65915541000E-04 0.50819053000E-05 0.99999999781E+00 256 0.96109200000E+00 0.21112850000E+00 0.32740000000E+04 0.65915541000E-04 0.50819053000E-05 0.99999999781E+00 257 0.32005930000E+00 0.88978690000E+00 0.32740000000E+04 0.70907678000E-04 0.31394322000E-03 0.99999994821E+00 258 0.15372030000E+01 0.17829960000E+01 0.32740000000E+04 -0.13278617000E-03 0.21762484000E-03 0.99999996750E+00 259 0.17308450000E+01 0.21093560000E+01 0.32740000000E+04 -0.68282425000E-04 0.20808363000E-03 0.99999997602E+00 260 0.21479060000E+00 0.16813020000E+01 0.32740000000E+04 0.31482901000E-04 0.24917605000E-03 0.99999996846E+00 261 0.22859140000E+01 0.11259800000E+01 0.32740000000E+04 -0.11562684000E-03 0.59912920000E-04 0.99999999152E+00 262 0.68997680000E+00 0.17280750000E+01 0.32740000000E+04 0.35524452000E-04 0.18489445000E-03 0.99999998228E+00 263 -0.15939760000E+00 -0.17376160000E+00 0.32740000000E+04 0.17557893000E-03 -0.19963022000E-03 0.99999996466E+00 264 -0.53785500000E+00 0.53239600000E-01 0.32740000000E+04 0.63877444000E-04 0.86973065000E-04 0.99999999418E+00 265 0.13322310000E+00 0.13872930000E+01 0.32740000000E+04 0.78764155000E-04 0.42847932000E-04 0.99999999598E+00 266 -0.99980000000E+00 0.39533830000E-01 0.32740000000E+04 0.16347576000E-04 0.16635912000E-03 0.99999998603E+00 267 -0.22970990000E-01 -0.34918770000E+00 0.32740000000E+04 0.16198389000E-03 -0.54070711000E-04 0.99999998542E+00 268 0.20921590000E+00 -0.84846740000E+00 0.32740000000E+04 -0.99053148000E-04 -0.53576143000E-04 0.99999999366E+00 269 0.92619830000E+00 0.14748420000E+01 0.32740000000E+04 0.14795859000E-03 0.36779419000E-03 0.99999992142E+00 270 -0.17300700000E+00 -0.13557000000E+00 0.32740000000E+04 0.47105328000E-04 0.39434428000E-04 0.99999999811E+00 271 -0.17300700000E+00 -0.13557000000E+00 0.32740000000E+04 0.47105328000E-04 0.39434428000E-04 0.99999999811E+00 272 0.14548160000E+01 0.64684920000E+00 0.32740000000E+04 0.53540080000E-04 0.13889294000E-03 0.99999998892E+00 273 0.57480220000E+00 0.96566780000E+00 0.32740000000E+04 0.17300028000E-03 -0.84458181000E-04 0.99999998147E+00 274 0.17552410000E+01 0.37570660000E+00 0.32740000000E+04 -0.38038252000E-05 0.32513798000E-03 0.99999994714E+00 275 0.18019440000E+01 0.23709680000E+01 0.32740000000E+04 -0.15401153000E-03 0.39114529000E-04 0.99999998738E+00 276 -0.99445610000E+00 0.73106220000E-01 0.32740000000E+04 0.67592096000E-04 -0.23477981000E-03 0.99999997015E+00 277 0.27647190000E+00 0.15719380000E+01 0.32740000000E+04 0.28533510000E-04 0.21974515000E-03 0.99999997545E+00 278 -0.99420390000E+00 -0.68973950000E+00 0.32740000000E+04 0.66569330000E-04 -0.13937519000E-03 0.99999998807E+00 279 -0.28616860000E+00 0.13175320000E+01 0.32740000000E+04 0.11387585000E-03 0.26412582000E-03 0.99999995863E+00 280 -0.10397160000E+01 0.16853450000E+01 0.32740000000E+04 0.12141532000E-03 0.32838696000E-04 0.99999999209E+00 281 0.19668310000E+01 0.20395330000E+01 0.32740000000E+04 0.24790980000E-03 -0.21631767000E-03 0.99999994587E+00 282 0.84963620000E+00 -0.10495250000E+01 0.32740000000E+04 0.63756524000E-04 -0.18413663000E-03 0.99999998101E+00 283 -0.28181070000E+00 -0.22636770000E+00 0.32740000000E+04 0.33674962000E-04 0.46039943000E-03 0.99999989345E+00 284 -0.10615550000E+01 0.74917793000E-02 0.32740000000E+04 -0.17690803000E-04 -0.20473983000E-03 0.99999997888E+00 285 0.16822790000E+00 0.12522950000E+01 0.32740000000E+04 0.76206561000E-04 0.21638192000E-03 0.99999997369E+00 286 0.11790130000E+00 0.11958710000E+01 0.32740000000E+04 0.87834123000E-04 0.10133038000E-03 0.99999999101E+00 287 0.10754240000E+00 -0.31762060000E+00 0.32740000000E+04 0.47147696000E-04 0.28420708000E-03 0.99999995850E+00 288 -0.89346640000E-01 0.10596670000E+01 0.32740000000E+04 0.11166977000E-04 0.21982548000E-03 0.99999997578E+00 289 0.15920770000E+01 0.17258330000E+01 0.32740000000E+04 -0.17709155000E-04 0.20337477000E-03 0.99999997916E+00 290 -0.50333450000E-01 -0.55854530000E+00 0.32740000000E+04 0.70220900000E-04 -0.26018824000E-03 0.99999996369E+00 291 0.16209350000E+01 0.54201580000E+00 0.32740000000E+04 -0.85813386000E-04 0.29104451000E-04 0.99999999589E+00 292 -0.92197820000E+00 0.64216830000E+00 0.32740000000E+04 0.62461426000E-04 0.13399680000E-03 0.99999998907E+00 293 0.78400370000E-01 0.13333570000E+01 0.32740000000E+04 -0.64920954000E-04 0.23068674000E-03 0.99999997128E+00 294 0.24850750000E+01 0.11474160000E+01 0.32740000000E+04 -0.80344464000E-04 0.29555254000E-03 0.99999995310E+00 295 -0.86331380000E+00 0.15376370000E+01 0.32740000000E+04 0.13637860000E-03 0.31340661000E-03 0.99999994159E+00 296 0.20683170000E+01 0.18870940000E+01 0.32740000000E+04 -0.80211030000E-05 0.67397857000E-04 0.99999999770E+00 297 0.11865280000E+00 0.10739200000E+01 0.32740000000E+04 0.34926258000E-03 0.28827315000E-03 0.99999989746E+00 298 0.28045020000E+01 0.13726750000E+01 0.32740000000E+04 -0.88036060000E-04 0.12917496000E-03 0.99999998778E+00 299 -0.12772940000E+01 -0.97818490000E+00 0.32740000000E+04 0.16604004000E-03 -0.27092194000E-03 0.99999994952E+00 300 0.17491050000E+01 0.73267750000E+00 0.32740000000E+04 -0.27838844000E-05 0.16284375000E-03 0.99999998674E+00 301 0.17491050000E+01 0.73267750000E+00 0.32740000000E+04 -0.27838844000E-05 0.16284375000E-03 0.99999998674E+00 302 -0.23729430000E+00 0.15694470000E+01 0.32740000000E+04 0.79246791000E-04 0.32181208000E-03 0.99999994508E+00 303 -0.12505130000E+01 -0.11743210000E+01 0.32740000000E+04 0.16669782000E-03 0.29140681000E-04 0.99999998568E+00 304 -0.31585650000E-01 -0.46109150000E+00 0.32740000000E+04 -0.20616452000E-03 -0.86492953000E-04 0.99999997501E+00 305 -0.12183180000E+01 -0.11234660000E+01 0.32740000000E+04 0.19263124000E-03 0.46850077000E-04 0.99999998035E+00 306 0.47796320000E+00 0.74463560000E+00 0.32740000000E+04 0.19869633000E-03 0.18793078000E-03 0.99999996260E+00 307 -0.17509830000E+00 -0.17531280000E-01 0.32740000000E+04 0.14108168000E-03 -0.78903366000E-04 0.99999998694E+00 308 0.66076780000E+00 0.20995660000E+00 0.32740000000E+04 0.10124699000E-03 -0.37052443000E-04 0.99999999419E+00 309 0.25121690000E+00 -0.72342396000E-02 0.32740000000E+04 0.42364781000E-03 0.20233281000E-03 0.99999988979E+00 310 0.95183090000E+00 0.97425750000E+00 0.32740000000E+04 0.18672302000E-03 -0.63905369000E-04 0.99999998053E+00 311 0.11718020000E+00 0.19383980000E+01 0.32740000000E+04 -0.81325443000E-05 0.22822604000E-03 0.99999997392E+00 312 -0.12745580000E+01 0.25523160000E+00 0.32740000000E+04 0.12874286000E-03 -0.22306581000E-03 0.99999996683E+00 313 0.67447920000E+00 -0.43915390000E+00 0.32740000000E+04 0.12435853000E-03 0.64746430000E-03 0.99999978266E+00 314 0.67447920000E+00 -0.43915390000E+00 0.32740000000E+04 0.12435853000E-03 0.64746430000E-03 0.99999978266E+00 315 0.25386700000E+00 -0.17058190000E+00 0.32740000000E+04 -0.76863849000E-04 -0.21786281000E-03 0.99999997331E+00 316 -0.37461530000E+00 -0.94671360000E+00 0.32740000000E+04 -0.18177750000E-03 -0.45952047000E-03 0.99999987790E+00 317 -0.15497210000E+01 0.70633350000E+00 0.32740000000E+04 0.70819289000E-04 0.32602521000E-03 0.99999994435E+00 318 0.70753740000E+00 0.34209610000E+00 0.32740000000E+04 0.47830839000E-03 -0.28700810000E-04 0.99999988520E+00 319 0.17436170000E+01 0.14185250000E+01 0.32740000000E+04 0.12180017000E-05 0.23535140000E-03 0.99999997230E+00 320 -0.67373470000E+00 0.35580130000E+00 0.32740000000E+04 -0.73660842000E-04 0.73785101000E-04 0.99999999456E+00 321 0.40081020000E+00 -0.91888260000E+00 0.32740000000E+04 0.12441908000E-03 -0.18274738000E-03 0.99999997556E+00 322 -0.12507180000E+00 0.74802190000E+00 0.32740000000E+04 0.98070886000E-04 -0.12678104000E-03 0.99999998715E+00 323 0.14231570000E+01 0.19855840000E+01 0.32740000000E+04 0.14125057000E-03 0.59564091000E-03 0.99999981263E+00 324 0.11392060000E+00 -0.24239360000E+00 0.32740000000E+04 -0.20948262000E-04 -0.20836679000E-03 0.99999997807E+00 325 0.92683320000E+00 0.14224290000E+01 0.32740000000E+04 -0.31146326000E-04 -0.37665720000E-03 0.99999992858E+00 326 0.94259350000E+00 0.32036550000E+00 0.32740000000E+04 -0.98566452000E-04 0.24606667000E-04 0.99999999484E+00 327 0.94259350000E+00 0.32036550000E+00 0.32740000000E+04 -0.98566452000E-04 0.24606667000E-04 0.99999999484E+00 328 -0.21041560000E+01 -0.12878660000E+01 0.32740000000E+04 0.18879138000E-02 0.15012042000E-02 0.99999709108E+00 329 0.52769460000E+00 0.20414210000E+01 0.32740000000E+04 0.15160772000E-03 -0.27868125000E-03 0.99999994968E+00 330 -0.29769080000E-01 0.17795620000E+01 0.32740000000E+04 0.43921566000E-04 0.16751916000E-03 0.99999998500E+00 331 0.28428920000E+00 0.84349870000E+00 0.32740000000E+04 -0.53143307000E-04 -0.70264819000E-05 0.99999999856E+00 332 0.14050870000E+01 -0.64049240000E-01 0.32740000000E+04 -0.95203439000E-04 -0.25514289000E-03 0.99999996292E+00 333 -0.24644680000E+00 0.14691200000E+01 0.32740000000E+04 0.85738946000E-04 0.11223791000E-03 0.99999999003E+00 334 0.12798260000E+01 -0.71427120000E+00 0.32740000000E+04 0.22484433000E-03 -0.54986886000E-04 0.99999997321E+00 335 0.57680070000E+00 -0.90915410000E+00 0.32740000000E+04 0.34103764000E-03 -0.65501816000E-04 0.99999993970E+00 336 -0.25796970000E+00 -0.46480120000E-01 0.32740000000E+04 0.12103328000E-03 -0.12311505000E-03 0.99999998510E+00 337 -0.28566620000E+00 0.80021970000E+00 0.32740000000E+04 0.33970275000E-04 0.38540144000E-04 0.99999999868E+00 338 -0.91211810000E-01 0.11600110000E+01 0.32740000000E+04 0.26794451000E-04 0.25791529000E-03 0.99999996638E+00 339 0.43852720000E+00 0.17667200000E+01 0.32740000000E+04 -0.70428025000E-04 0.28575855000E-03 0.99999995669E+00 340 0.84973130000E+00 -0.13807320000E+01 0.32740000000E+04 0.44400786000E-05 -0.21541720000E-03 0.99999997679E+00 341 0.68659930000E+00 0.71040990000E+00 0.32740000000E+04 -0.29076438000E-03 0.20688925000E-03 0.99999993633E+00 342 0.11832290000E+01 0.16866130000E+01 0.32740000000E+04 -0.13780405000E-03 0.80044003000E-04 0.99999998730E+00 343 0.12063530000E+01 0.11756130000E+01 0.32740000000E+04 -0.29866305000E-04 0.42080319000E-04 0.99999999867E+00 344 0.35163310000E+00 0.19751740000E+01 0.32740000000E+04 0.16629131000E-03 0.11286989000E-03 0.99999997980E+00 345 0.67066180000E+00 -0.40513610000E-01 0.32740000000E+04 0.30173513000E-03 -0.18770291000E-03 0.99999993686E+00 346 0.67066180000E+00 -0.40513610000E-01 0.32740000000E+04 0.30173513000E-03 -0.18770291000E-03 0.99999993686E+00 347 0.42544000000E+00 0.20987470000E+01 0.32740000000E+04 0.23267003000E-03 -0.71920294000E-04 0.99999997035E+00 348 0.14344060000E+01 0.31937170000E+00 0.32740000000E+04 0.24191939000E-04 -0.17622076000E-04 0.99999999955E+00 349 0.57861390000E+00 -0.60126070000E+00 0.32740000000E+04 0.12316632000E-03 -0.39895322000E-05 0.99999999241E+00 350 0.17803240000E+00 0.22905580000E-01 0.32740000000E+04 0.71864524000E-04 0.19685469000E-04 0.99999999722E+00 351 -0.70335850000E+00 -0.36286740000E-01 0.32740000000E+04 -0.55269804000E-03 -0.17510830000E-03 0.99999983193E+00 352 -0.25519420000E+00 -0.10390210000E+01 0.32740000000E+04 0.15760743000E-03 -0.40471405000E-04 0.99999998676E+00 353 -0.15109240000E+01 -0.84078760000E+00 0.32740000000E+04 0.44032332000E-03 -0.19729187000E-03 0.99999988360E+00 354 0.65145200000E+00 -0.79748000000E+00 0.32740000000E+04 -0.70887523000E-04 -0.37586229000E-04 0.99999999678E+00 355 0.26054580000E+01 0.20586980000E+01 0.32740000000E+04 -0.22276061000E-04 0.26279100000E-03 0.99999996522E+00 356 0.12988240000E+01 -0.21107700000E-01 0.32740000000E+04 -0.19220475000E-03 -0.19993650000E-03 0.99999996154E+00 357 -0.29117990000E+01 0.24862950000E+01 0.32740000000E+04 0.56164994000E-04 0.49828232000E-03 0.99999987428E+00 358 0.93779530000E-01 -0.13988330000E+01 0.32740000000E+04 0.16987669000E-04 -0.29110356000E-03 0.99999995749E+00 359 0.24867670000E+00 0.72860920000E+00 0.32740000000E+04 0.10425857000E-03 0.21991396000E-03 0.99999997038E+00 360 0.12075020000E+00 0.14234380000E+01 0.32740000000E+04 0.14976438000E-03 -0.14473690000E-03 0.99999997831E+00 361 -0.41245450000E+00 0.14780400000E+01 0.32740000000E+04 -0.28448494000E-04 0.18887369000E-03 0.99999998176E+00 362 0.27915620000E+00 -0.75682470000E+00 0.32740000000E+04 0.41122035000E-04 -0.93501912000E-04 0.99999999478E+00 363 0.17421660000E+01 0.24418340000E+01 0.32740000000E+04 -0.74316107000E-04 0.15915290000E-03 0.99999998457E+00 364 0.97619590000E+00 0.10085140000E+01 0.32740000000E+04 -0.11061514000E-04 0.16219316000E-03 0.99999998679E+00 365 0.78832460000E+00 -0.72742220000E+00 0.32740000000E+04 -0.16670523000E-04 -0.11832506000E-03 0.99999999286E+00 366 0.21205470000E+01 0.12801380000E+01 0.32740000000E+04 0.70424007000E-05 0.29446065000E-03 0.99999995662E+00 367 -0.10368410000E+00 0.12785390000E+01 0.32740000000E+04 0.11497911000E-03 0.40611212000E-04 0.99999999257E+00 368 0.10796940000E+01 0.53242520000E+00 0.32740000000E+04 0.13963916000E-03 -0.77724864000E-04 0.99999998723E+00 369 -0.18833500000E+00 -0.27828520000E+00 0.32740000000E+04 0.29202277000E-03 -0.16741084000E-03 0.99999994335E+00 370 0.17300830000E+01 0.18278640000E+01 0.32740000000E+04 0.68425675000E-05 0.16499832000E-03 0.99999998636E+00 371 0.17300830000E+01 0.18278640000E+01 0.32740000000E+04 0.68425675000E-05 0.16499832000E-03 0.99999998636E+00 372 0.19875120000E+00 0.88169350000E-01 0.32740000000E+04 0.13848681000E-03 0.56806275000E-04 0.99999998880E+00 373 0.18150390000E+01 0.17578550000E+01 0.32740000000E+04 0.32899575000E-03 0.26354150000E-03 0.99999991115E+00 374 0.22318740000E+01 0.90272410000E+00 0.32740000000E+04 0.15053859000E-03 0.79907171000E-04 0.99999998548E+00 375 0.16683100000E+01 0.38841890000E+00 0.32740000000E+04 0.27112968000E-03 0.19735334000E-03 0.99999994377E+00 376 0.16830490000E+01 0.89934870000E+00 0.32740000000E+04 0.61982294000E-03 -0.38278933000E-04 0.99999980718E+00 377 0.76897750000E+00 0.11289450000E-01 0.32740000000E+04 -0.10445243000E-03 -0.39281287000E-04 0.99999999377E+00 378 0.10058970000E+01 0.31887560000E+00 0.32740000000E+04 0.49417631000E-04 0.23906572000E-03 0.99999997020E+00 379 0.12037050000E+01 0.54027910000E+00 0.32740000000E+04 -0.51421530000E-05 0.12251598000E-03 0.99999999248E+00 380 -0.45833800000E+00 -0.63705870000E+00 0.32740000000E+04 0.72473762000E-04 -0.25561918000E-03 0.99999996470E+00 381 0.19660440000E+01 0.18619170000E+01 0.32740000000E+04 -0.13096933000E-03 0.24758489000E-03 0.99999996077E+00 382 0.12298730000E+01 0.45314880000E+00 0.32740000000E+04 0.48022684000E-05 0.25882802000E-03 0.99999996649E+00 383 0.12298730000E+01 0.45314880000E+00 0.32740000000E+04 0.48022684000E-05 0.25882802000E-03 0.99999996649E+00 384 0.12191260000E+01 -0.20741370000E+00 0.32740000000E+04 0.80953396000E-04 -0.69053982000E-04 0.99999999434E+00 385 0.67993300000E+00 0.28643470000E+00 0.32740000000E+04 -0.10037379000E-03 -0.28115852000E-04 0.99999999457E+00 386 0.41234550000E+00 -0.60912440000E+00 0.32740000000E+04 -0.59600679000E-04 -0.33089691000E-04 0.99999999768E+00 387 0.14650950000E+01 0.15484270000E+01 0.32740000000E+04 0.10298902000E-03 0.42366839000E-04 0.99999999380E+00 388 0.68761800000E+00 -0.64691770000E+00 0.32740000000E+04 0.90136818000E-04 -0.28952438000E-03 0.99999995403E+00 389 0.17128790000E+01 0.10443920000E+01 0.32740000000E+04 0.14046860000E-03 0.19601954000E-03 0.99999997092E+00 390 0.25383790000E+01 0.14215900000E+01 0.32740000000E+04 -0.21758226000E-03 -0.41066567000E-04 0.99999997549E+00 391 0.51812980000E+00 -0.25087670000E+00 0.32740000000E+04 0.13103253000E-03 -0.48546590000E-04 0.99999999024E+00 392 0.11844860000E+00 -0.33999030000E+00 0.32740000000E+04 0.29302714000E-03 -0.14923657000E-04 0.99999995696E+00 393 -0.65962620000E+00 -0.13727870000E+01 0.32740000000E+04 0.10366496000E-03 0.33228938000E-04 0.99999999407E+00 394 0.52776050000E+00 0.16358530000E+01 0.32740000000E+04 -0.92689197000E-06 0.19965079000E-03 0.99999998007E+00 395 0.37364850000E+00 -0.12995510000E+01 0.32740000000E+04 0.19601443000E-03 -0.25229287000E-03 0.99999994896E+00 396 -0.70059490000E+00 -0.55115360000E+00 0.32740000000E+04 0.86886655000E-04 0.50833838000E-04 0.99999999493E+00 397 0.11498830000E+01 -0.99772470000E+00 0.32740000000E+04 0.82033857000E-05 -0.16541156000E-03 0.99999998629E+00 398 0.95587280000E+00 0.71293910000E+00 0.32740000000E+04 -0.35149209000E-04 0.57994839000E-04 0.99999999770E+00 399 -0.11696330000E+01 -0.43254340000E+00 0.32740000000E+04 -0.14443336000E-04 0.11889038000E-03 0.99999999283E+00 400 -0.11696330000E+01 -0.43254340000E+00 0.32740000000E+04 -0.14443336000E-04 0.11889038000E-03 0.99999999283E+00 401 0.23573420000E+01 0.57645960000E+00 0.32740000000E+04 -0.13409773000E-03 -0.15282171000E-03 0.99999997933E+00 402 0.10712430000E+00 0.10989510000E+01 0.32740000000E+04 0.89711670000E-04 0.25106434000E-03 0.99999996446E+00 403 0.65755546000E-02 -0.48420450000E+00 0.32740000000E+04 0.49962200000E-04 -0.28562370000E-04 0.99999999834E+00 404 0.66732970000E+00 0.10740140000E+01 0.32740000000E+04 -0.47686932000E-04 -0.94842755000E-04 0.99999999437E+00 405 0.14738410000E+00 -0.13050620000E+01 0.32740000000E+04 0.90420544000E-04 0.24927660000E-04 0.99999999560E+00 406 -0.14120700000E+01 0.21059550000E+01 0.32740000000E+04 -0.27372469000E-04 0.17120570000E-03 0.99999998497E+00 407 -0.54032830000E+00 0.34973290000E+00 0.32740000000E+04 0.12908425000E-03 -0.15279929000E-03 0.99999997999E+00 408 0.10689880000E+01 0.95125100000E+00 0.32740000000E+04 -0.15046528000E-04 0.32774743000E-03 0.99999994618E+00 409 0.13570500000E+00 -0.57277470000E+00 0.32740000000E+04 0.15350670000E-03 -0.18176780000E-03 0.99999997170E+00 410 -0.11042080000E+01 -0.10966980000E+01 0.32740000000E+04 0.12686219000E-03 -0.22024907000E-03 0.99999996770E+00 411 0.61701380000E+00 0.18107480000E+01 0.32740000000E+04 0.72181268000E-04 0.13466581000E-03 0.99999998833E+00 412 0.14916290000E+01 0.73437470000E+00 0.32740000000E+04 0.12348020000E-03 0.80171553000E-03 0.99999967100E+00 413 0.14916290000E+01 0.73437470000E+00 0.32740000000E+04 0.12348020000E-03 0.80171553000E-03 0.99999967100E+00 414 0.96595900000E+00 0.17492790000E+00 0.32740000000E+04 0.10233594000E-03 0.96840988000E-04 0.99999999007E+00 415 -0.13410000000E+01 -0.44102950000E+00 0.32740000000E+04 0.15481118000E-03 0.58177939000E-05 0.99999998800E+00 416 0.13454520000E+01 -0.37878760000E+00 0.32740000000E+04 0.30709176000E-04 -0.18941618000E-03 0.99999998159E+00 417 0.10754810000E+01 0.21396910000E-01 0.32740000000E+04 -0.77083008000E-04 -0.11625960000E-03 0.99999999027E+00 418 0.74291980000E+00 -0.43116500000E+00 0.32740000000E+04 0.36653364000E-04 -0.15380961000E-03 0.99999998750E+00 419 0.10260270000E+00 0.26678640000E+00 0.32740000000E+04 0.12436780000E-03 0.44664910000E-04 0.99999999127E+00 420 -0.11430370000E+01 -0.10642210000E+01 0.32740000000E+04 0.93562841000E-04 -0.18275772000E-03 0.99999997892E+00 421 0.42014520000E+00 -0.64198940000E+00 0.32740000000E+04 0.88189641000E-04 0.79204328000E-04 0.99999999297E+00 422 0.49794470000E+00 -0.18258800000E-01 0.32740000000E+04 0.10854784000E-03 -0.35106859000E-04 0.99999999349E+00 423 -0.21932900000E+01 -0.14286960000E+01 0.32740000000E+04 0.15911239000E-04 -0.97409815000E-04 0.99999999513E+00 424 0.92613620000E+00 -0.29682990000E+00 0.32740000000E+04 0.43008113000E-04 -0.98446748000E-04 0.99999999423E+00 425 0.13546410000E+01 0.21023400000E+01 0.32740000000E+04 0.92092982000E-04 0.10043057000E-03 0.99999999072E+00 426 0.21084330000E+01 0.22249490000E+01 0.32740000000E+04 0.15856234000E-03 0.38151498000E-03 0.99999991465E+00 427 0.30741600000E+00 -0.26892330000E-01 0.32740000000E+04 0.14737788000E-03 0.32623939000E-03 0.99999993592E+00 428 0.12777170000E+01 0.19294760000E+01 0.32740000000E+04 -0.13522689000E-04 0.23632479000E-03 0.99999997198E+00 429 0.12777170000E+01 0.19294760000E+01 0.32740000000E+04 -0.13522689000E-04 0.23632479000E-03 0.99999997198E+00 430 -0.43926990000E+00 0.10239330000E+01 0.32740000000E+04 0.65674052000E-04 -0.71671238000E-05 0.99999999782E+00 431 -0.84458830000E-01 0.32877530000E+00 0.32740000000E+04 0.17778180000E-03 -0.89561654000E-04 0.99999998019E+00 432 0.60846260000E+00 -0.63395450000E+00 0.32740000000E+04 0.59300473000E-04 0.39918716000E-04 0.99999999744E+00 433 0.27539500000E+01 0.15465510000E+01 0.32740000000E+04 0.10840602000E-04 -0.71697163000E-04 0.99999999737E+00 434 0.16331180000E+01 0.50571260000E+00 0.32740000000E+04 -0.92566544000E-04 0.15429845000E-03 0.99999998381E+00 435 -0.25722670000E+00 -0.54022620000E+00 0.32740000000E+04 0.85418367000E-04 -0.83373605000E-04 0.99999999288E+00 436 0.13943540000E+01 0.14661790000E+01 0.32740000000E+04 0.14942202000E-03 0.33512778000E-03 0.99999993268E+00 437 0.15856310000E+01 0.17178370000E+01 0.32740000000E+04 -0.15485439000E-04 0.16894712000E-03 0.99999998561E+00 438 0.50654310000E+00 0.19817450000E+01 0.32740000000E+04 0.75472846000E-04 0.21322237000E-03 0.99999997442E+00 439 0.10533250000E+01 -0.71942420000E+00 0.32740000000E+04 0.14222803000E-03 -0.16693801000E-03 0.99999997595E+00 440 0.40974920000E+00 0.14990430000E+01 0.32740000000E+04 0.22154981000E-03 0.13783762000E-03 0.99999996596E+00 441 0.53824070000E+00 -0.14587780000E+01 0.32740000000E+04 0.11587025000E-04 0.28059570000E-03 0.99999996057E+00 442 0.19475250000E+01 0.15663580000E+01 0.32740000000E+04 0.51091964000E-04 0.66148984000E-03 0.99999977991E+00 443 0.19475250000E+01 0.15663580000E+01 0.32740000000E+04 0.51091964000E-04 0.66148984000E-03 0.99999977991E+00 444 -0.11908480000E+01 -0.46336110000E+00 0.32740000000E+04 0.21046499000E-04 -0.12223463000E-03 0.99999999231E+00 445 -0.37619970000E-01 0.70722420000E+00 0.32740000000E+04 0.65258515000E-04 0.16575065000E-03 0.99999998413E+00 446 0.10806960000E+01 0.16441380000E+01 0.32740000000E+04 0.16197137000E-04 0.28770871000E-03 0.99999995848E+00 447 0.17475050000E+01 0.19528610000E+01 0.32740000000E+04 -0.12744435000E-04 0.12498669000E-03 0.99999999211E+00 448 0.25666430000E+00 -0.36254890000E+00 0.32740000000E+04 0.20288846000E-03 -0.13435341000E-03 0.99999997039E+00 449 -0.54442820000E+00 0.14465250000E+01 0.32740000000E+04 0.57493078000E-04 0.36713926000E-03 0.99999993095E+00 450 0.42555330000E+00 -0.63719420000E+00 0.32740000000E+04 0.60206199000E-04 -0.25872936000E-03 0.99999996472E+00 451 0.90354790000E+00 0.14294090000E+01 0.32740000000E+04 -0.58074329000E-04 0.30363389000E-03 0.99999995222E+00 452 0.90354790000E+00 0.14294090000E+01 0.32740000000E+04 -0.58074329000E-04 0.30363389000E-03 0.99999995222E+00 453 0.96472660000E+00 0.12872160000E+01 0.32740000000E+04 0.66080400000E-04 -0.20287688000E-03 0.99999997724E+00 454 0.11772370000E+01 -0.82211971000E-02 0.32740000000E+04 0.59744503000E-04 0.10346680000E-03 0.99999999286E+00 455 0.10054250000E+01 0.10328490000E+01 0.32740000000E+04 -0.28364215000E-04 0.23874451000E-03 0.99999997110E+00 456 0.62284900000E+00 0.25983240000E+00 0.32740000000E+04 0.10342967000E-04 -0.94036091000E-04 0.99999999553E+00 457 0.86193560000E+00 0.24076240000E+01 0.32740000000E+04 -0.11741671000E-03 0.22283694000E-03 0.99999996828E+00 458 0.46341160000E-01 0.63399860000E+00 0.32740000000E+04 0.71687173000E-04 0.33245533000E-03 0.99999994217E+00 459 0.19714600000E+00 -0.37128950000E-01 0.32740000000E+04 0.13892770000E-03 0.13391330000E-03 0.99999998138E+00 460 -0.26701470000E+00 0.19876050000E+01 0.32740000000E+04 0.73273251000E-04 0.38510709000E-03 0.99999992316E+00 461 -0.72778710000E+00 -0.10824180000E+01 0.32740000000E+04 0.50570245000E-04 0.87165921000E-04 0.99999999492E+00 462 0.14418600000E+01 -0.54966070000E+00 0.32740000000E+04 0.11124366000E-03 -0.22363439000E-03 0.99999996881E+00 463 0.14433010000E+01 0.64868780000E+00 0.32740000000E+04 -0.20246432000E-05 -0.95259556000E-05 0.99999999995E+00 464 -0.75379300000E+00 0.15468630000E+01 0.32740000000E+04 0.25593309000E-03 0.32330758000E-03 0.99999991499E+00 465 -0.75379300000E+00 0.15468630000E+01 0.32740000000E+04 0.25593309000E-03 0.32330758000E-03 0.99999991499E+00 466 -0.91678510000E+00 0.24982000000E+00 0.32740000000E+04 0.11796928000E-03 0.11905427000E-03 0.99999998595E+00 467 -0.18336820000E+00 -0.96742310000E+00 0.32740000000E+04 0.24890545000E-03 -0.32907320000E-03 0.99999991488E+00 468 0.29147130000E+00 -0.25911890000E+00 0.32740000000E+04 -0.67806184000E-04 -0.13528666000E-04 0.99999999761E+00 469 -0.83557960000E+00 -0.69728980000E-01 0.32740000000E+04 0.32282114000E-03 0.10867720000E-04 0.99999994783E+00 470 0.21264360000E+00 -0.25717540000E+00 0.32740000000E+04 -0.32244570000E-04 0.58439327000E-04 0.99999999777E+00 471 0.27345860000E+00 0.20164590000E+01 0.32740000000E+04 0.26789585000E-04 0.16820924000E-03 0.99999998549E+00 472 -0.83580880000E+00 -0.52655950000E+00 0.32740000000E+04 0.15524916000E-03 0.12454482000E-04 0.99999998787E+00 473 0.16113520000E+00 -0.64438900000E+00 0.32740000000E+04 0.15283289000E-03 -0.11826959000E-03 0.99999998133E+00 474 0.81589740000E+00 0.10843430000E+01 0.32740000000E+04 0.10677698000E-03 0.21134953000E-03 0.99999997197E+00 475 0.91515690000E+00 0.13113020000E+01 0.32740000000E+04 0.96082018000E-04 0.24661353000E-04 0.99999999508E+00 476 -0.45491890000E+00 -0.84325430000E+00 0.32740000000E+04 0.15702256000E-03 -0.61793435000E-04 0.99999998576E+00 477 0.22471900000E+01 0.19541820000E+00 0.32740000000E+04 -0.33826953000E-04 -0.19565971000E-05 0.99999999943E+00 478 0.22471900000E+01 0.19541820000E+00 0.32740000000E+04 -0.33826953000E-04 -0.19565971000E-05 0.99999999943E+00 479 -0.76038370000E+00 0.25775910000E+00 0.32740000000E+04 -0.32073555000E-06 -0.47578436000E-04 0.99999999887E+00 480 -0.46297480000E+00 0.53106670000E+00 0.32740000000E+04 0.21118762000E-03 0.17422806000E-03 0.99999996252E+00 481 -0.78846340000E+00 -0.95471750000E+00 0.32740000000E+04 0.18256801000E-03 -0.12602984000E-03 0.99999997539E+00 482 0.17200540000E+01 0.68687770000E+00 0.32740000000E+04 0.30851294000E-03 0.17164911000E-03 0.99999993768E+00 483 0.12756510000E+01 0.77704820000E+00 0.32740000000E+04 0.16808848000E-04 0.18864132000E-04 0.99999999968E+00 484 0.19167300000E+01 0.13056570000E+01 0.32740000000E+04 0.11844816000E-04 0.45051659000E-03 0.99999989845E+00 485 0.60542260000E+00 -0.44066990000E+00 0.32740000000E+04 -0.32089352000E-04 -0.23001200000E-03 0.99999997303E+00 486 0.13858630000E+00 0.15484970000E+01 0.32740000000E+04 -0.26210785000E-03 0.25344401000E-03 0.99999993353E+00 487 0.11535100000E+01 0.14513690000E+01 0.32740000000E+04 -0.40634863000E-04 0.52329506000E-04 0.99999999781E+00 488 -0.91076770000E+00 -0.10434660000E+01 0.32740000000E+04 0.16573645000E-03 -0.19642391000E-03 0.99999996697E+00 489 -0.20356950000E+00 -0.33669670000E+00 0.32740000000E+04 -0.15499264000E-03 -0.13242879000E-03 0.99999997922E+00 490 0.11622970000E+01 0.17315940000E+01 0.32740000000E+04 0.21494907000E-04 0.52081989000E-04 0.99999999841E+00 491 0.18220010000E+01 0.21593110000E+01 0.32740000000E+04 0.10308254000E-03 -0.57130939000E-04 0.99999999306E+00 492 0.10225090000E+01 0.21102560000E+01 0.32740000000E+04 0.44735822000E-04 0.26547461000E-03 0.99999996376E+00 493 0.10225090000E+01 0.21102560000E+01 0.32740000000E+04 0.44735822000E-04 0.26547461000E-03 0.99999996376E+00 494 -0.45106720000E-01 0.36480720000E+00 0.32740000000E+04 -0.67268006000E-05 0.78149798000E-03 0.99999969461E+00 495 0.59355980000E+00 -0.32654810000E+00 0.32740000000E+04 -0.50126207000E-04 -0.13474890000E-03 0.99999998967E+00 496 0.15671910000E+01 0.60941950000E+00 0.32740000000E+04 0.12082732000E-03 0.23340191000E-03 0.99999996546E+00 497 0.63974170000E+00 0.19400940000E+00 0.32740000000E+04 0.18102324000E-03 0.67187626000E-04 0.99999998136E+00 498 0.90295980000E+00 0.18364150000E+01 0.32740000000E+04 -0.22989961000E-03 0.20384662000E-03 0.99999995280E+00 499 0.84914710000E+00 0.11425610000E+01 0.32740000000E+04 -0.13479976000E-03 -0.14647746000E-04 0.99999999081E+00 500 -0.26817020000E+00 0.12908530000E+01 0.32740000000E+04 0.17441368000E-03 0.14084026000E-03 0.99999997487E+00 501 0.16008110000E+01 0.12960180000E+01 0.32740000000E+04 0.71736838000E-04 0.40911633000E-03 0.99999991374E+00 502 -0.72334260000E+00 0.14712410000E+01 0.32740000000E+04 0.16657017000E-03 0.17960381000E-03 0.99999997000E+00 503 0.10196520000E+01 0.11936710000E+01 0.32740000000E+04 -0.46288445000E-04 0.14079423000E-03 0.99999998902E+00 504 -0.35329570000E+00 -0.12946370000E+01 0.32740000000E+04 -0.94960640000E-04 -0.13934901000E-03 0.99999998578E+00 505 0.46151290000E+00 0.19137030000E+01 0.32740000000E+04 0.10418169000E-03 0.16916290000E-03 0.99999998027E+00 506 0.46151290000E+00 0.19137030000E+01 0.32740000000E+04 0.10418169000E-03 0.16916290000E-03 0.99999998027E+00 507 0.20639610000E+01 0.13948290000E+01 0.32740000000E+04 -0.76841585000E-04 0.16690233000E-03 0.99999998312E+00 508 -0.72020500000E+00 -0.22286570000E+00 0.32740000000E+04 -0.47705209000E-04 0.24578051000E-03 0.99999996866E+00 509 0.11901140000E+01 -0.32488230000E+00 0.32740000000E+04 0.21632540000E-03 0.16581349000E-04 0.99999997646E+00 510 -0.27688990000E+00 0.24272540000E+00 0.32740000000E+04 0.15790902000E-04 -0.13015207000E-04 0.99999999979E+00 511 -0.31529280000E-01 -0.29298650000E+00 0.32740000000E+04 0.16250675000E-03 0.26552338000E-04 0.99999998644E+00 512 -0.30507920000E+00 0.24669730000E+00 0.32740000000E+04 0.65951142000E-04 0.33588778000E-04 0.99999999726E+00 513 -0.49794610000E+00 -0.59568690000E-01 0.32740000000E+04 -0.47658537000E-04 -0.21664755000E-03 0.99999997540E+00 514 0.90171030000E+00 0.63704360000E+00 0.32740000000E+04 0.87949615000E-04 -0.11312393000E-04 0.99999999607E+00 515 0.64536110000E+00 0.18934120000E+01 0.32740000000E+04 0.84834151000E-04 0.24609841000E-03 0.99999996612E+00 516 0.76821440000E+00 0.20628530000E+01 0.32740000000E+04 0.27541808000E-04 0.13159589000E-03 0.99999999096E+00 517 0.14498270000E+01 0.14893540000E+01 0.32740000000E+04 0.88811175000E-04 0.27418838000E-03 0.99999995847E+00 518 -0.68438740000E+00 -0.14162460000E+01 0.32740000000E+04 0.39006743000E-03 -0.64680826000E-04 0.99999992183E+00 519 0.96503830000E+00 0.35505900000E+00 0.32740000000E+04 0.64493739000E-04 0.87621724000E-04 0.99999999408E+00 520 0.96503830000E+00 0.35505900000E+00 0.32740000000E+04 0.64493739000E-04 0.87621724000E-04 0.99999999408E+00 521 0.29039180000E+00 -0.99684860000E+00 0.32740000000E+04 0.67237554000E-04 -0.10058327000E-03 0.99999999268E+00 522 0.42132650000E+00 -0.56279510000E+00 0.32740000000E+04 0.46090012000E-04 -0.42415202000E-04 0.99999999804E+00 523 0.49119770000E+00 0.67974000000E-01 0.32740000000E+04 -0.36488240000E-04 0.48411252000E-05 0.99999999932E+00 524 -0.14391280000E+01 -0.48200920000E-01 0.32740000000E+04 0.72303308000E-04 -0.20143222000E-03 0.99999997710E+00 525 0.64934950000E+00 0.80382240000E+00 0.32740000000E+04 0.13131887000E-03 0.11615812000E-03 0.99999998463E+00 526 -0.25508020000E-01 0.11814740000E+01 0.32740000000E+04 0.25884388000E-04 0.10800715000E-03 0.99999999383E+00 527 0.24716990000E+00 0.16848650000E+01 0.32740000000E+04 0.95775773000E-04 0.35222128000E-03 0.99999993338E+00 528 0.13617240000E+01 -0.68386250000E+00 0.32740000000E+04 0.11361634000E-03 -0.17003769000E-03 0.99999997909E+00 529 0.98843770000E+00 0.96510750000E+00 0.32740000000E+04 0.60771243000E-04 0.18026782000E-03 0.99999998191E+00 530 0.17171840000E+01 0.18298020000E+01 0.32740000000E+04 -0.23138905000E-05 0.31774622000E-03 0.99999994952E+00 531 0.89705530000E+00 0.13536250000E+01 0.32740000000E+04 0.78993035000E-04 0.11879375000E-03 0.99999998982E+00 532 0.87170500000E+00 -0.29116320000E+00 0.32740000000E+04 0.24879870000E-04 -0.75552307000E-04 0.99999999684E+00 533 -0.40641980000E+00 -0.10939970000E+01 0.32740000000E+04 0.17686810000E-03 -0.21041524000E-03 0.99999996222E+00 534 -0.40641980000E+00 -0.10939970000E+01 0.32740000000E+04 0.17686810000E-03 -0.21041524000E-03 0.99999996222E+00 535 0.41951100000E+00 0.81700620000E+00 0.32740000000E+04 0.82380910000E-04 0.13697703000E-03 0.99999998723E+00 536 0.46949950000E+00 -0.38836790000E+00 0.32740000000E+04 0.28055576000E-04 -0.20746957000E-03 0.99999997808E+00 537 0.25232040000E+01 0.16818090000E+01 0.32740000000E+04 0.39629635000E-04 0.31618163000E-03 0.99999994923E+00 538 0.67579410000E+00 0.80001670000E+00 0.32740000000E+04 0.23584395000E-04 -0.28722432000E-04 0.99999999931E+00 539 0.21065810000E+01 0.12249840000E+01 0.32740000000E+04 0.12983095000E-03 0.17653058000E-03 0.99999997599E+00 540 0.17602940000E+01 0.10319270000E+01 0.32740000000E+04 -0.28236717000E-03 0.68263290000E-03 0.99999972714E+00 541 0.11344560000E+01 -0.13729580000E-01 0.32740000000E+04 -0.16959503000E-03 -0.26062758000E-04 0.99999998528E+00 542 0.19537810000E+01 0.27590140000E+00 0.32740000000E+04 -0.43242384000E-04 0.21743625000E-04 0.99999999883E+00 543 0.15597170000E+01 0.17320600000E+01 0.32740000000E+04 0.12788902000E-04 0.42163042000E-03 0.99999991103E+00 544 -0.35678160000E+00 0.10286920000E+01 0.32740000000E+04 0.11912319000E-04 0.41506588000E-03 0.99999991379E+00 545 -0.11532900000E+01 -0.74693420000E+00 0.32740000000E+04 0.15966073000E-03 -0.16936951000E-03 0.99999997291E+00 546 0.21937550000E+01 0.17777220000E+01 0.32740000000E+04 -0.15934293000E-03 0.42854651000E-03 0.99999989548E+00 547 -0.86749190000E+00 -0.55268960000E+00 0.32740000000E+04 0.16305703000E-03 -0.26241489000E-03 0.99999995228E+00 548 -0.87691220000E+00 -0.35653210000E+00 0.32740000000E+04 0.15208332000E-03 -0.12474184000E-03 0.99999998066E+00 549 -0.16081270000E+00 -0.43974560000E+00 0.32740000000E+04 0.61486135000E-04 -0.16728080000E-03 0.99999998412E+00 550 -0.13639870000E+01 -0.99740580000E+00 0.32740000000E+04 0.14873956000E-03 0.21501927000E-03 0.99999996582E+00 551 0.19446040000E+01 0.67180190000E+00 0.32740000000E+04 0.20739458000E-03 0.52108404000E-04 0.99999997714E+00 552 0.90316840000E-01 0.12911110000E+01 0.32740000000E+04 0.18814562000E-04 0.27846485000E-04 0.99999999944E+00 553 -0.27307210000E+00 -0.27367890000E+00 0.32740000000E+04 -0.61942745000E-04 0.19591711000E-03 0.99999997889E+00 554 -0.86283980000E+00 -0.15097110000E+01 0.32740000000E+04 0.38165639000E-04 -0.75073425000E-04 0.99999999645E+00 555 -0.12166750000E+01 -0.98938510000E-01 0.32740000000E+04 0.20480104000E-03 -0.11219396000E-04 0.99999997897E+00 556 -0.88135060000E+00 -0.27198790000E+00 0.32740000000E+04 0.97122545000E-04 0.30924310000E-03 0.99999994747E+00 557 0.13904630000E+01 0.13331120000E+01 0.32740000000E+04 0.11815597000E-03 0.18677457000E-03 0.99999997558E+00 558 0.94525880000E+00 0.17416670000E+01 0.32740000000E+04 -0.18885141000E-04 0.26154908000E-03 0.99999996562E+00 559 0.75085120000E+00 0.77896750000E+00 0.32740000000E+04 0.20710370000E-03 0.18330140000E-03 0.99999996175E+00 560 -0.12739660000E-01 0.84171860000E+00 0.32740000000E+04 0.81641722000E-03 0.17741309000E-03 0.99999965099E+00 561 0.31777060000E-01 -0.12910940000E+01 0.32740000000E+04 0.15738560000E-03 -0.73477946000E-04 0.99999998492E+00 562 -0.81627240000E+00 -0.78997910000E+00 0.32740000000E+04 0.19253657000E-03 -0.16282946000E-03 0.99999996821E+00 563 0.35924060000E+00 -0.32877660000E+00 0.32740000000E+04 0.20233590000E-03 0.49646249000E-04 0.99999997830E+00 564 0.12937250000E+01 -0.38866970000E-01 0.32740000000E+04 0.19537169000E-03 0.18793164000E-03 0.99999996326E+00 565 0.11411740000E+01 0.36059860000E+00 0.32740000000E+04 0.72937524000E-04 0.15718779000E-04 0.99999999722E+00 566 -0.99660430000E+00 0.13318130000E+01 0.32740000000E+04 0.14312675000E-02 0.57742593000E-04 0.99999897407E+00 567 0.72614090000E+00 -0.80649600000E+00 0.32740000000E+04 -0.11654746000E-03 0.20767440000E-03 0.99999997164E+00 568 -0.32849880000E+00 -0.96399930000E+00 0.32740000000E+04 0.19837946000E-03 -0.18467364000E-03 0.99999996327E+00 569 -0.32849880000E+00 -0.96399930000E+00 0.32740000000E+04 0.19837946000E-03 -0.18467364000E-03 0.99999996327E+00 570 0.21266850000E+01 0.18545940000E+01 0.32740000000E+04 0.52846199000E-05 0.25771992000E-03 0.99999996678E+00 571 0.28537270000E+00 0.13719560000E+00 0.32740000000E+04 0.98165190000E-04 -0.12307211000E-03 0.99999998761E+00 572 -0.85519720000E+00 -0.50595000000E+00 0.32740000000E+04 -0.99538382000E-04 -0.26091622000E-03 0.99999996101E+00 573 -0.23467910000E+00 -0.19142220000E+00 0.32740000000E+04 0.64457272000E-04 0.33974002000E-05 0.99999999792E+00 574 0.60827910000E+00 -0.42050550000E+00 0.32740000000E+04 0.97824814000E-04 0.32506177000E-05 0.99999999521E+00 575 0.82924040000E+00 0.40573910000E+00 0.32740000000E+04 -0.32816821000E-04 0.26416709000E-03 0.99999996457E+00 576 0.13454840000E+01 0.13117140000E-01 0.32740000000E+04 0.71878174000E-04 -0.82335129000E-06 0.99999999742E+00 577 0.16797740000E+01 0.37661670000E+00 0.32740000000E+04 0.35070010000E-04 0.10972543000E-03 0.99999999337E+00 578 0.75138590000E+00 -0.12976850000E+01 0.32740000000E+04 0.41821212000E-03 -0.19378947000E-03 0.99999989377E+00 579 0.17920910000E+01 0.18662500000E+00 0.32740000000E+04 -0.13094614000E-04 -0.20816733000E-03 0.99999997825E+00 580 -0.64840880000E+00 -0.10056490000E+01 0.32740000000E+04 0.69613452000E-04 -0.33548680000E-04 0.99999999701E+00 581 0.79257860000E+00 0.64152570000E+00 0.32740000000E+04 -0.22624715000E-03 -0.25632276000E-05 0.99999997440E+00 582 0.79257860000E+00 0.64152570000E+00 0.32740000000E+04 -0.22624715000E-03 -0.25632276000E-05 0.99999997440E+00 583 0.71972550000E+00 0.21704200000E+01 0.32740000000E+04 -0.26523305000E-04 0.22177378000E-03 0.99999997506E+00 584 0.87022850000E+00 0.14787030000E+01 0.32740000000E+04 0.12680845000E-03 0.25477173000E-03 0.99999995951E+00 585 -0.10101800000E+01 -0.50714570000E+00 0.32740000000E+04 0.55073280000E-04 -0.62703795000E-04 0.99999999652E+00 586 -0.76023790000E-01 -0.13012540000E+00 0.32740000000E+04 0.93018076000E-04 -0.10373790000E-03 0.99999999029E+00 587 -0.63521890000E+00 -0.10310470000E+01 0.32740000000E+04 0.33391876000E-04 -0.16321156000E-03 0.99999998612E+00 588 0.78131020000E+00 -0.44216020000E+00 0.32740000000E+04 -0.39017083000E-04 -0.22505542000E-03 0.99999997391E+00 589 0.13848870000E+00 -0.62302920000E-01 0.32740000000E+04 0.16362224000E-03 0.38108716000E-03 0.99999991400E+00 590 0.12095410000E+01 -0.57111320000E+00 0.32740000000E+04 0.10028008000E-02 0.58322999000E-04 0.99999949549E+00 591 -0.58108700000E+00 0.16556140000E+01 0.32740000000E+04 -0.30951932000E-03 0.66897174000E-03 0.99999972834E+00 592 0.73620290000E+00 0.92187580000E-01 0.32740000000E+04 0.20995059000E-03 -0.62681429000E-04 0.99999997600E+00 593 -0.69928760000E-01 -0.14329840000E+00 0.32740000000E+04 0.15486384000E-03 0.22539120000E-04 0.99999998775E+00 594 0.91186290000E+00 -0.18207840000E+00 0.32740000000E+04 -0.10082059000E-03 0.29735456000E-03 0.99999995071E+00 595 0.19876200000E+01 0.17936550000E+01 0.32740000000E+04 0.11816975000E-03 0.10843278000E-04 0.99999999296E+00 596 -0.72549030000E-01 0.13904090000E+01 0.32740000000E+04 0.63068408000E-04 0.14157388000E-03 0.99999998799E+00 597 0.45311600000E+00 -0.65730090000E+00 0.32740000000E+04 0.81996688000E-04 -0.29130766000E-03 0.99999995421E+00 598 0.12491530000E+01 0.17881500000E+01 0.32740000000E+04 0.97215547000E-04 0.35158489000E-03 0.99999993347E+00 599 0.12491530000E+01 0.17881500000E+01 0.32740000000E+04 0.97215547000E-04 0.35158489000E-03 0.99999993347E+00 600 0.85853670000E+00 -0.54306660000E+00 0.32740000000E+04 -0.38614764000E-03 -0.98939454000E-04 0.99999992055E+00 601 -0.65594030000E+00 -0.10500350000E+01 0.32740000000E+04 0.68012901000E-04 -0.15382950000E-03 0.99999998586E+00 602 0.10854740000E+01 0.28319900000E+00 0.32740000000E+04 0.57192385000E-04 -0.65891749000E-04 0.99999999619E+00 603 0.21216740000E+01 0.36130550000E+00 0.32740000000E+04 0.59782938000E-05 -0.26695625000E-03 0.99999996435E+00 604 -0.74654570000E+00 -0.12652730000E+01 0.32740000000E+04 0.91711678000E-04 -0.91292219000E-04 0.99999999163E+00 605 0.53248830000E+00 -0.17238580000E+00 0.32740000000E+04 0.40899318000E-04 -0.45494075000E-04 0.99999999813E+00 606 0.16480190000E+01 0.39507300000E+00 0.32740000000E+04 -0.97394259000E-04 0.10256191000E-03 0.99999999000E+00 607 0.67632950000E+00 0.98485910000E+00 0.32740000000E+04 0.99338125000E-04 0.86045417000E-04 0.99999999136E+00 608 -0.83126220000E-01 -0.11048260000E+01 0.32740000000E+04 0.18197880000E-03 -0.16186853000E-03 0.99999997034E+00 609 0.89541900000E+00 0.52643870000E-01 0.32740000000E+04 -0.25499729000E-04 0.15503915000E-03 0.99999998766E+00 610 0.11233110000E+01 0.74787300000E+00 0.32740000000E+04 0.15681963000E-03 0.20671163000E-03 0.99999996634E+00 611 0.22238480000E+01 0.12796070000E+01 0.32740000000E+04 0.37918202000E-04 -0.29587740000E-04 0.99999999884E+00 612 -0.18595940000E+01 -0.10108110000E+01 0.32740000000E+04 0.12296429000E-03 -0.41519183000E-04 0.99999999158E+00 613 -0.18595940000E+01 -0.10108110000E+01 0.32740000000E+04 0.12296429000E-03 -0.41519183000E-04 0.99999999158E+00 614 0.12424220000E+01 0.18550580000E+01 0.32740000000E+04 0.12311047000E-03 0.11715800000E-03 0.99999998556E+00 615 -0.32619190000E+00 0.15317960000E+01 0.32740000000E+04 0.11008157000E-03 0.94716444000E-04 0.99999998946E+00 616 0.62608280000E+00 0.13778330000E+01 0.32740000000E+04 -0.15304977000E-03 0.16369094000E-03 0.99999997489E+00 617 0.46957670000E-01 -0.19907870000E+00 0.32740000000E+04 0.72153125000E-04 -0.20199167000E-03 0.99999997700E+00 618 0.14877720000E+01 0.10145850000E+01 0.32740000000E+04 0.22147069000E-04 0.20685467000E-03 0.99999997836E+00 619 -0.13416670000E+00 -0.65997570000E+00 0.32740000000E+04 0.51034436000E-04 -0.20945024000E-03 0.99999997676E+00 620 0.33624190000E+00 -0.41957020000E-01 0.32740000000E+04 0.63479172000E-04 0.12052348000E-03 0.99999999072E+00 621 0.17223790000E+01 -0.11612510000E+00 0.32740000000E+04 0.15896908000E-03 0.27232672000E-03 0.99999995028E+00 622 0.13102180000E+01 -0.11231800000E+01 0.32740000000E+04 -0.69165770000E-04 -0.18515674000E-03 0.99999998047E+00 623 0.73474350000E+00 0.26694840000E+01 0.32740000000E+04 0.19012821000E-03 -0.42381152000E-03 0.99999989212E+00 624 0.16214750000E+01 0.54068430000E+00 0.32740000000E+04 0.27867671000E-03 0.26938098000E-03 0.99999992489E+00 625 0.35147160000E+00 0.64750630000E+00 0.32740000000E+04 0.10213385000E-03 0.13029497000E-03 0.99999998630E+00 626 -0.33678840000E+00 0.11209250000E+01 0.32740000000E+04 0.10792326000E-03 0.12989942000E-03 0.99999998574E+00 627 -0.33678840000E+00 0.11209250000E+01 0.32740000000E+04 0.10792326000E-03 0.12989942000E-03 0.99999998574E+00 628 -0.83292310000E+00 0.38293820000E-01 0.32740000000E+04 0.12756957000E-03 -0.84929154000E-04 0.99999998826E+00 629 -0.11068500000E+01 0.85468780000E+00 0.32740000000E+04 0.79884659000E-04 0.48875358000E-04 0.99999999561E+00 630 0.45238680000E+00 0.84901130000E+00 0.32740000000E+04 -0.62097330000E-04 -0.15540993000E-03 0.99999998600E+00 631 0.20930770000E+01 0.11541330000E+01 0.32740000000E+04 0.13550738000E-03 0.15296589000E-03 0.99999997912E+00 632 0.80779760000E+00 0.18787250000E+01 0.32740000000E+04 -0.54493721000E-05 0.38826943000E-03 0.99999992461E+00 633 -0.88900440000E+00 0.15874970000E+01 0.32740000000E+04 0.14806338000E-03 0.17904199000E-03 0.99999997301E+00 634 0.92525500000E+00 -0.45068710000E+00 0.32740000000E+04 0.20184707000E-03 -0.18476734000E-03 0.99999996256E+00 635 0.80534010000E+00 0.14805050000E+01 0.32740000000E+04 -0.21862601000E-04 0.78752506000E-04 0.99999999666E+00 636 0.74085030000E+00 -0.56205180000E+00 0.32740000000E+04 0.26806595000E-03 -0.14540559000E-03 0.99999995350E+00 637 0.24491210000E+00 0.13749390000E+01 0.32740000000E+04 0.17365188000E-03 0.11096054000E-03 0.99999997877E+00 638 0.24693840000E+01 0.19007330000E+01 0.32740000000E+04 -0.10057059000E-03 0.54594013000E-03 0.99999984592E+00 639 0.14469150000E+01 -0.55489660000E+00 0.32740000000E+04 -0.10039956000E-03 -0.18859094000E-03 0.99999997718E+00 640 0.14469150000E+01 -0.55489660000E+00 0.32740000000E+04 -0.10039956000E-03 -0.18859094000E-03 0.99999997718E+00 641 -0.85482600000E+00 -0.61982960000E+00 0.32740000000E+04 -0.92725131000E-05 -0.21681737000E-04 0.99999999972E+00 642 -0.11885160000E+01 0.44338170000E-01 0.32740000000E+04 0.49036884000E-04 -0.82118248000E-04 0.99999999543E+00 643 -0.64861160000E+00 0.19445570000E+00 0.32740000000E+04 0.15593199000E-03 -0.19314163000E-03 0.99999996919E+00 644 0.19912200000E+00 -0.39903750000E+00 0.32740000000E+04 -0.19445615000E-04 0.50340288000E-04 0.99999999854E+00 645 -0.59678390000E+00 0.15738020000E+01 0.32740000000E+04 0.34298548000E-04 -0.20771893000E-04 0.99999999920E+00 646 -0.15572710000E+01 -0.85313100000E+00 0.32740000000E+04 0.72911062000E-04 -0.12053902000E-03 0.99999999008E+00 647 0.38226590000E+00 0.44929910000E+00 0.32740000000E+04 0.22781673000E-04 0.82744933000E-04 0.99999999632E+00 648 0.11002310000E+00 0.73931240000E-01 0.32740000000E+04 0.30550131000E-03 -0.63059881000E-04 0.99999995135E+00 649 -0.21747590000E+00 0.12925620000E+00 0.32740000000E+04 0.30030546000E-03 -0.59489347000E-03 0.99999977796E+00 650 0.76434700000E+00 0.18449660000E+00 0.32740000000E+04 -0.14253546000E-03 0.11340542000E-03 0.99999998341E+00 651 -0.11175930000E+01 0.31833060000E+00 0.32740000000E+04 0.61167862000E-04 0.43562482000E-04 0.99999999718E+00 652 -0.11808450000E+00 0.16560000000E+00 0.32740000000E+04 0.17596669000E-03 -0.12712908000E-03 0.99999997644E+00 653 0.69417590000E+00 -0.35650030000E+00 0.32740000000E+04 0.96595810000E-04 0.49704203000E-03 0.99999987181E+00 654 0.78261160000E+00 0.17996010000E+01 0.32740000000E+04 0.22156542000E-04 0.16687434000E-03 0.99999998583E+00 655 0.44860250000E+00 0.24882040000E+00 0.32740000000E+04 0.17113534000E-03 0.89941786000E-04 0.99999998131E+00 656 0.10386650000E+01 0.13956800000E+01 0.32740000000E+04 0.87514658000E-04 0.10836380000E-03 0.99999999030E+00 657 0.55187230000E+00 -0.91152860000E+00 0.32740000000E+04 0.20801814000E-03 0.80618214000E-04 0.99999997511E+00 658 0.65985340000E+00 0.13760960000E+01 0.32740000000E+04 0.39646321000E-03 0.55101293000E-03 0.99999976960E+00 659 -0.45763300000E+00 -0.11708730000E+01 0.32740000000E+04 0.14342742000E-03 -0.44420551000E-03 0.99999989106E+00 660 -0.11537510000E+00 0.12887090000E+01 0.32740000000E+04 0.10311355000E-03 0.25315888000E-03 0.99999996264E+00 661 -0.42544950000E+00 0.60598710000E+00 0.32740000000E+04 -0.16427402000E-03 0.17158888000E-03 0.99999997179E+00 662 0.17887880000E+01 0.16016490000E+01 0.32740000000E+04 -0.17619794000E-03 0.74573436000E-04 0.99999998170E+00 663 -0.11700500000E+01 -0.11446460000E+01 0.32740000000E+04 0.19972418000E-03 -0.61296931000E-04 0.99999997818E+00 664 0.13870290000E+01 0.14708330000E+01 0.32740000000E+04 0.20326199000E-04 0.16015538000E-03 0.99999998697E+00 665 0.10562850000E+01 0.11922660000E+01 0.32740000000E+04 0.56111501000E-04 0.31083071000E-03 0.99999995012E+00 666 0.17791070000E+01 -0.14256770000E+01 0.32740000000E+04 -0.49201793000E-04 -0.55971715000E-04 0.99999999722E+00 667 0.64946400000E+00 -0.48753230000E+00 0.32740000000E+04 0.59314047000E-04 -0.18247962000E-03 0.99999998159E+00 668 0.99214260000E+00 -0.12587490000E+01 0.32740000000E+04 0.11692167000E-03 -0.15987951000E-03 0.99999998038E+00 669 0.10973040000E+01 -0.68901860000E+00 0.32740000000E+04 0.53175354000E-04 -0.16224095000E-03 0.99999998543E+00 670 0.10973040000E+01 -0.68901860000E+00 0.32740000000E+04 0.53175354000E-04 -0.16224095000E-03 0.99999998543E+00 671 0.17784850000E+01 0.51065900000E+00 0.32740000000E+04 0.22719469000E-04 0.16987666000E-03 0.99999998531E+00 672 -0.11963650000E+00 0.34967350000E+00 0.32740000000E+04 0.59169099000E-04 -0.10621520000E-04 0.99999999819E+00 673 0.48814060000E+00 0.12791730000E+01 0.32740000000E+04 0.55363740000E-04 0.40354709000E-04 0.99999999765E+00 674 -0.12523740000E+01 0.10173150000E+01 0.32740000000E+04 0.10315078000E-03 0.26091278000E-03 0.99999996064E+00 675 -0.52407850000E+00 -0.10814640000E+01 0.32740000000E+04 0.24348450000E-04 -0.56433491000E-05 0.99999999969E+00 676 0.68415370000E+00 -0.95826140000E+00 0.32740000000E+04 0.15095931000E-03 -0.14392854000E-04 0.99999998850E+00 677 0.58040900000E+00 0.17754840000E+00 0.32740000000E+04 0.69002097000E-04 0.48692815000E-04 0.99999999643E+00 678 -0.67393310000E-01 -0.12983670000E+01 0.32740000000E+04 -0.39894552000E-04 -0.20343716000E-03 0.99999997851E+00 679 0.17146520000E-01 -0.21537125000E-02 0.32740000000E+04 -0.15710895000E-03 -0.34810415000E-04 0.99999998705E+00 680 -0.29612670000E+00 0.27013000000E+00 0.32740000000E+04 0.44090502000E-04 -0.42952117000E-04 0.99999999811E+00 681 0.13519360000E+01 0.96204210000E+00 0.32740000000E+04 0.34435849000E-04 0.16339218000E-03 0.99999998606E+00 682 0.10645080000E+01 0.99208340000E+00 0.32740000000E+04 0.30481096000E-04 -0.19988764000E-04 0.99999999934E+00 683 -0.77130347000E-02 0.33010090000E+00 0.32740000000E+04 0.19565468000E-04 0.35455701000E-03 0.99999993695E+00 684 -0.77130347000E-02 0.33010090000E+00 0.32740000000E+04 0.19565468000E-04 0.35455701000E-03 0.99999993695E+00 685 0.85360200000E+00 0.12349950000E+01 0.32740000000E+04 0.93997965000E-04 0.24135060000E-03 0.99999996646E+00 686 0.87401390000E+00 0.11544850000E+01 0.32740000000E+04 0.19999815000E-03 -0.54069933000E-04 0.99999997854E+00 687 0.22614930000E+01 0.14575910000E+01 0.32740000000E+04 0.84889987000E-04 0.15230280000E-03 0.99999998480E+00 688 0.36467490000E+00 0.57147200000E+00 0.32740000000E+04 0.32290311000E-04 0.36963142000E-04 0.99999999880E+00 689 -0.12594010000E-01 -0.16150530000E+01 0.32740000000E+04 -0.52975443000E-04 0.13278541000E-04 0.99999999851E+00 690 0.20799430000E+00 0.38379390000E+00 0.32740000000E+04 0.22172132000E-03 0.10710445000E-03 0.99999996968E+00 691 -0.82582680000E-01 -0.12708040000E+01 0.32740000000E+04 0.95594674000E-04 -0.15599691000E-03 0.99999998326E+00 692 0.11042590000E+01 0.19963460000E+01 0.32740000000E+04 -0.22228569000E-04 0.78681696000E-04 0.99999999666E+00 693 0.39831940000E+00 -0.44055060000E-01 0.32740000000E+04 0.65878841000E-04 -0.56006433000E-04 0.99999999626E+00 694 0.36864310000E+00 0.62987980000E+00 0.32740000000E+04 0.69787283000E-03 -0.36300135000E-05 0.99999975648E+00 695 0.36864310000E+00 0.62987980000E+00 0.32740000000E+04 0.69787283000E-03 -0.36300135000E-05 0.99999975648E+00 696 -0.13628050000E+00 -0.12720170000E+00 0.32740000000E+04 -0.20513407000E-04 0.61459473000E-05 0.99999999977E+00 697 0.61785120000E+00 0.11803300000E+01 0.32740000000E+04 0.19274474000E-03 0.42744775000E-03 0.99999989007E+00 698 -0.86067890000E+00 0.53789616000E-02 0.32740000000E+04 0.12910967000E-03 -0.21026634000E-03 0.99999996956E+00 699 0.14845280000E+01 0.70829440000E-01 0.32740000000E+04 0.31065432000E-03 0.21558840000E-03 0.99999992851E+00 700 -0.47122960000E-01 -0.55328140000E-01 0.32740000000E+04 -0.72888157000E-04 0.12088846000E-03 0.99999999004E+00 701 -0.26130200000E+00 0.68040350000E+00 0.32740000000E+04 0.50630194000E-06 0.31262163000E-04 0.99999999951E+00 702 0.10293780000E+01 0.28826100000E+00 0.32740000000E+04 0.54596250000E-04 0.11710042000E-03 0.99999999165E+00 703 -0.57284060000E+00 -0.11696110000E+01 0.32740000000E+04 0.20107006000E-03 -0.10907718000E-03 0.99999997384E+00 704 0.68971500000E+00 -0.91917090000E+00 0.32740000000E+04 -0.17769042000E-03 -0.33123020000E-03 0.99999992936E+00 705 0.10562570000E-01 -0.37656860000E+00 0.32740000000E+04 0.18526288000E-03 -0.13063892000E-03 0.99999997431E+00 706 0.67419610000E+00 0.94678350000E+00 0.32740000000E+04 0.37391375000E-04 0.18972220000E-04 0.99999999912E+00 707 0.51130510000E+00 -0.21217090000E+00 0.32740000000E+04 -0.25357111000E-04 -0.30119109000E-03 0.99999995432E+00 708 -0.60575200000E+00 -0.48897180000E+00 0.32740000000E+04 0.17281222000E-04 -0.11977999000E-03 0.99999999268E+00 709 0.26429260000E+01 0.19199220000E+01 0.32740000000E+04 -0.17057377000E-04 0.27689562000E-03 0.99999996152E+00 710 0.96032290000E+00 -0.44623540000E+00 0.32740000000E+04 -0.17425622000E-03 0.15467289000E-03 0.99999997286E+00 711 0.23521970000E+00 0.33314600000E+00 0.32740000000E+04 0.76582401000E-04 0.99832672000E-04 0.99999999208E+00 712 0.19324460000E+01 0.10030050000E+01 0.32740000000E+04 -0.16772027000E-03 0.63176594000E-04 0.99999998394E+00 713 -0.43984530000E-01 0.36302020000E+00 0.32740000000E+04 0.32708394000E-04 0.20295529000E-03 0.99999997887E+00 714 0.49036250000E+00 0.91672940000E+00 0.32740000000E+04 0.10408025000E-03 0.63259111000E-04 0.99999999258E+00 715 0.74247718000E-03 0.44100440000E+00 0.32740000000E+04 -0.39636197000E-04 0.19729479000E-03 0.99999997975E+00 716 -0.13255240000E+01 0.10798330000E+01 0.32740000000E+04 0.15654910000E-03 -0.44706275000E-03 0.99999988781E+00 717 0.12268950000E+01 0.12268340000E+00 0.32740000000E+04 0.20954989000E-03 -0.17342952000E-03 0.99999996301E+00 718 0.47240890000E+00 0.56928640000E+00 0.32740000000E+04 0.11189970000E-03 -0.86184904000E-04 0.99999999003E+00 719 -0.91915040000E+00 -0.22737690000E+01 0.32740000000E+04 0.13203300000E-03 -0.23536493000E-04 0.99999999101E+00 720 0.56151080000E+00 0.90565810000E+00 0.32740000000E+04 0.29053086000E-04 0.98944838000E-04 0.99999999468E+00 721 0.51233020000E+00 0.70787510000E+00 0.32740000000E+04 0.52209252000E-04 -0.28451611000E-03 0.99999995816E+00 722 0.30048570000E+00 -0.14818440000E+01 0.32740000000E+04 0.53114309000E-04 0.66245870000E-04 0.99999999640E+00 723 -0.12954170000E+01 -0.10990840000E+01 0.32740000000E+04 0.11839623000E-03 -0.14153375000E-03 0.99999998298E+00 724 0.11651540000E+01 0.19045640000E+00 0.32740000000E+04 0.15849390000E-03 -0.19244956000E-03 0.99999996892E+00 725 -0.83430620000E-01 0.72349140000E+00 0.32740000000E+04 -0.16280970000E-04 0.86092456000E-04 0.99999999616E+00 726 -0.83430620000E-01 0.72349140000E+00 0.32740000000E+04 -0.16280970000E-04 0.86092456000E-04 0.99999999616E+00 727 0.11303850000E+01 -0.97022530000E+00 0.32740000000E+04 0.15143651000E-03 -0.42864092000E-03 0.99999989667E+00 728 0.16689700000E+01 0.17093220000E+01 0.32740000000E+04 0.48714770000E-04 0.14226577000E-03 0.99999998869E+00 729 -0.46184040000E+00 -0.64027390000E+00 0.32740000000E+04 -0.11117385000E-04 0.58749956000E-05 0.99999999992E+00 730 -0.53276000000E+00 -0.59389360000E+00 0.32740000000E+04 0.93606452000E-03 0.21139244000E-03 0.99999953955E+00 731 0.17873860000E+01 0.14212390000E+01 0.32740000000E+04 0.47564114000E-04 0.42622505000E-04 0.99999999796E+00 732 0.11948700000E+01 0.18003580000E+01 0.32740000000E+04 -0.21795726000E-03 -0.83699555000E-03 0.99999962597E+00 733 0.14240170000E+01 0.11499150000E+01 0.32740000000E+04 0.57723213000E-04 0.10492065000E-03 0.99999999283E+00 734 -0.12829240000E+01 -0.75773070000E+00 0.32740000000E+04 0.17414500000E-03 -0.15285422000E-03 0.99999997315E+00 735 0.70455230000E-01 -0.22368780000E+00 0.32740000000E+04 0.15380683000E-04 -0.27238677000E-03 0.99999996278E+00 736 -0.51282790000E+00 0.32961060000E+00 0.32740000000E+04 0.12539243000E-03 0.53457741000E-04 0.99999999071E+00 737 0.33813410000E+00 0.18418290000E+01 0.32740000000E+04 0.12331415000E-03 0.60590068000E-04 0.99999999056E+00 738 0.20420310000E+01 -0.49035840000E+00 0.32740000000E+04 0.31874244000E-03 0.23393433000E-04 0.99999994893E+00 739 0.38139210000E+00 0.18890390000E+01 0.32740000000E+04 0.36810248000E-04 0.17795069000E-03 0.99999998349E+00 740 0.38139210000E+00 0.18890390000E+01 0.32740000000E+04 0.36810248000E-04 0.17795069000E-03 0.99999998349E+00 741 0.58137880000E+00 0.97652760000E+00 0.32740000000E+04 0.83139988000E-04 0.31237811000E-03 0.99999994775E+00 742 0.18628030000E+01 0.91137120000E+00 0.32740000000E+04 -0.50190520000E-04 0.34814389000E-03 0.99999993814E+00 743 0.11464270000E+01 0.18573470000E+01 0.32740000000E+04 0.24204416000E-03 0.22689770000E-03 0.99999994497E+00 744 -0.30131170000E+00 0.10163960000E+01 0.32740000000E+04 -0.10067891000E-03 0.23128373000E-03 0.99999996819E+00 745 -0.19114480000E+01 -0.10995630000E+01 0.32740000000E+04 -0.80830368000E-05 -0.30699893000E-03 0.99999995284E+00 746 0.37980420000E+00 0.25632140000E+00 0.32740000000E+04 -0.40051764000E-04 -0.75437747000E-04 0.99999999635E+00 747 0.69346490000E+00 -0.62824370000E+00 0.32740000000E+04 0.26243727000E-03 -0.14016491000E-03 0.99999995574E+00 748 0.35076680000E+00 -0.49345580000E-01 0.32740000000E+04 0.25370761000E-03 0.51857332000E-04 0.99999996647E+00 749 0.33139830000E+00 0.12110940000E+01 0.32740000000E+04 0.10261557000E-03 0.96752243000E-04 0.99999999005E+00 750 -0.98828330000E+00 0.16099420000E+00 0.32740000000E+04 0.25658761000E-03 -0.11942563000E-03 0.99999995995E+00 751 0.11680130000E+01 0.18525670000E+01 0.32740000000E+04 -0.47232694000E-04 0.23613762000E-03 0.99999997100E+00 752 0.74855290000E+00 -0.11248020000E+01 0.32740000000E+04 -0.14178767000E-04 -0.19719597000E-03 0.99999998046E+00 753 -0.15084420000E+01 0.35696230000E+00 0.32740000000E+04 -0.35589743000E-04 0.11274401000E-03 0.99999999301E+00 754 -0.15084420000E+01 0.35696230000E+00 0.32740000000E+04 -0.35589743000E-04 0.11274401000E-03 0.99999999301E+00 755 0.27323600000E-01 0.17125630000E+01 0.32740000000E+04 0.21470986000E-03 0.16495299000E-03 0.99999996335E+00 756 -0.79531210000E-01 -0.11050090000E+01 0.32740000000E+04 0.87601838000E-04 -0.97895841000E-04 0.99999999137E+00 757 -0.88870120000E+00 -0.63304560000E+00 0.32740000000E+04 -0.25894593000E-04 -0.69996582000E-04 0.99999999721E+00 758 0.13287510000E+01 0.16694810000E+01 0.32740000000E+04 0.23897801000E-04 0.28440729000E-03 0.99999995927E+00 759 0.23262690000E+01 -0.80393150000E+00 0.32740000000E+04 -0.92467206000E-04 -0.76080367000E-04 0.99999999283E+00 760 -0.58177460000E+00 -0.11745890000E+01 0.32740000000E+04 0.11817954000E-03 -0.10984808000E-03 0.99999998698E+00 761 -0.58177460000E+00 -0.11745890000E+01 0.32740000000E+04 0.11817954000E-03 -0.10984808000E-03 0.99999998698E+00 762 -0.10869050000E+01 -0.61413590000E+00 0.32740000000E+04 0.23297235000E-03 -0.16608137000E-03 0.99999995907E+00 763 0.47713620000E+00 -0.92260420000E+00 0.32740000000E+04 0.84264146000E-04 -0.23665305000E-03 0.99999996845E+00 764 -0.35579410000E+00 0.19218460000E+01 0.32740000000E+04 0.32822383000E-03 -0.14852142000E-03 0.99999993511E+00 765 0.19036540000E+01 0.21943880000E+01 0.32740000000E+04 -0.19244071000E-03 0.19575300000E-03 0.99999996232E+00 766 -0.13439200000E+01 -0.98991370000E+00 0.32740000000E+04 0.46916510000E-04 -0.22533830000E-03 0.99999997351E+00 767 -0.13126220000E+00 -0.89663870000E+00 0.32740000000E+04 -0.75382891000E-05 -0.16014742000E-03 0.99999998715E+00 768 0.19724550000E+01 0.19615420000E+01 0.32740000000E+04 -0.51789266000E-04 0.48252172000E-04 0.99999999749E+00 769 0.18944770000E+01 0.14122500000E+01 0.32740000000E+04 -0.20152025000E-03 -0.89992202000E-04 0.99999997565E+00 770 0.86940490000E+00 -0.51123920000E+00 0.32740000000E+04 -0.30054236000E-04 0.48762537000E-03 0.99999988066E+00 771 0.82935740000E+00 -0.40915170000E+00 0.32740000000E+04 -0.21402971000E-04 0.35126315000E-04 0.99999999915E+00 772 -0.31083590000E+00 0.59748410000E-01 0.32740000000E+04 0.98525968000E-04 0.16698448000E-04 0.99999999501E+00 773 0.50584890000E-01 0.57333390000E+00 0.32740000000E+04 -0.44939256000E-05 -0.98392411000E-04 0.99999999515E+00 774 0.50584890000E-01 0.57333390000E+00 0.32740000000E+04 -0.44939256000E-05 -0.98392411000E-04 0.99999999515E+00 775 0.25832220000E+01 -0.75816800000E+00 0.32740000000E+04 0.29370483000E-03 -0.47358079000E-03 0.99999984473E+00 776 0.56016040000E+00 0.11078940000E+01 0.32740000000E+04 0.16497773000E-03 0.96993732000E-04 0.99999998169E+00 777 0.86556210000E+00 0.38489490000E+00 0.32740000000E+04 -0.39269438000E-03 0.53720636000E-03 0.99999977860E+00 778 -0.25214140000E+00 0.81202550000E+00 0.32740000000E+04 0.90383386000E-04 0.21956327000E-03 0.99999997181E+00 779 0.54421190000E+00 -0.12726700000E+01 0.32740000000E+04 0.40532916000E-03 -0.35199625000E-03 0.99999985590E+00 780 -0.23897886000E-03 0.53790970000E+00 0.32740000000E+04 0.13833532000E-03 -0.14548430000E-03 0.99999997985E+00 781 -0.93890970000E+00 -0.11901990000E+01 0.32740000000E+04 -0.69333801000E-04 -0.27236878000E-03 0.99999996050E+00 782 -0.12937490000E+01 -0.55414000000E+00 0.32740000000E+04 0.12994822000E-03 -0.13460181000E-05 0.99999999156E+00 783 0.15079060000E+01 0.68131570000E+00 0.32740000000E+04 0.46244237000E-04 0.16846019000E-03 0.99999998474E+00 784 0.68687310000E+00 -0.51690990000E+00 0.32740000000E+04 0.15566898000E-03 -0.21159978000E-03 0.99999996550E+00 785 0.57347200000E+00 0.94738530000E-01 0.32740000000E+04 0.25707131000E-04 -0.69676687000E-04 0.99999999724E+00 786 0.25097360000E+01 0.14760290000E+01 0.32740000000E+04 -0.10317913000E-03 0.25321534000E-03 0.99999996262E+00 787 0.11366430000E+00 0.77597240000E-01 0.32740000000E+04 -0.10782994000E-03 -0.21122622000E-04 0.99999999396E+00 788 0.17832530000E+01 0.89595520000E+00 0.32740000000E+04 -0.62414598000E-04 0.10197687000E-03 0.99999999285E+00 789 0.17832530000E+01 0.89595520000E+00 0.32740000000E+04 -0.62414598000E-04 0.10197687000E-03 0.99999999285E+00 790 0.10403260000E+01 0.12122570000E+01 0.32740000000E+04 0.27878600000E-03 0.27447206000E-03 0.99999992347E+00 791 0.15521820000E+01 0.16534740000E+01 0.32740000000E+04 -0.40991090000E-04 0.28037716000E-03 0.99999995985E+00 792 0.43708810000E-01 0.23310430000E+01 0.32740000000E+04 0.68894849000E-04 0.19939235000E-03 0.99999997775E+00 793 -0.58996130000E+00 0.24343320000E+00 0.32740000000E+04 0.35454100000E-03 0.25748703000E-03 0.99999990400E+00 794 -0.58239770000E+00 0.10921440000E+00 0.32740000000E+04 0.43891545000E-04 -0.11601019000E-03 0.99999999231E+00 795 0.18244750000E+01 -0.66154490000E+00 0.32740000000E+04 0.21471632000E-03 0.60068814000E-04 0.99999997514E+00 796 -0.30068510000E+00 0.12295640000E+00 0.32740000000E+04 0.86371751000E-04 0.59285579000E-04 0.99999999451E+00 797 0.14237060000E+01 -0.55570560000E+00 0.32740000000E+04 0.84264075000E-05 -0.46867914000E-04 0.99999999887E+00 798 0.58996170000E+00 0.12756850000E+01 0.32740000000E+04 0.54502492000E-04 -0.20231480000E-04 0.99999999831E+00 799 -0.98772560000E+00 -0.64067830000E+00 0.32740000000E+04 0.28355440000E-04 0.73651681000E-04 0.99999999689E+00 800 0.17774050000E+01 -0.14057020000E+00 0.32740000000E+04 -0.12860702000E-03 0.29386179000E-04 0.99999999130E+00 801 0.17774050000E+01 -0.14057020000E+00 0.32740000000E+04 -0.12860702000E-03 0.29386179000E-04 0.99999999130E+00 802 0.28473440000E+00 -0.57975710000E+00 0.32740000000E+04 -0.14969555000E-04 -0.11833305000E-03 0.99999999289E+00 803 0.19963910000E+00 0.13478520000E+01 0.32740000000E+04 -0.10189208000E-04 0.36591743000E-03 0.99999993300E+00 804 0.29664940000E+00 -0.68745650000E+00 0.32740000000E+04 0.14474060000E-03 -0.36033426000E-03 0.99999992460E+00 805 0.36563730000E+00 -0.16872810000E+00 0.32740000000E+04 -0.23776591000E-04 -0.89932801000E-04 0.99999999567E+00 806 0.12457610000E+01 0.46586550000E+00 0.32740000000E+04 0.23471015000E-04 0.46315909000E-04 0.99999999865E+00 807 -0.89347370000E+00 0.13860220000E+01 0.32740000000E+04 -0.27746180000E-03 -0.91582406000E-04 0.99999995731E+00 808 0.97409900000E-01 -0.78457800000E+00 0.32740000000E+04 -0.30948449000E-05 -0.28676738000E-03 0.99999995888E+00 809 0.84234700000E+00 0.18893130000E+01 0.32740000000E+04 0.10544569000E-03 0.73504430000E-04 0.99999999174E+00 810 -0.71144710000E+00 0.17172370000E+01 0.32740000000E+04 -0.51796855000E-03 -0.39855800000E-04 0.99999986506E+00 811 0.80313850000E+00 -0.66395040000E-01 0.32740000000E+04 -0.23931336000E-04 0.87409629000E-04 0.99999999589E+00 812 0.16788710000E+01 0.12919670000E+01 0.32740000000E+04 -0.12672823000E-04 0.21350139000E-03 0.99999997713E+00 813 -0.23941550000E+00 0.11935650000E+00 0.32740000000E+04 0.66453729000E-04 -0.89539367000E-06 0.99999999779E+00 814 0.31159480000E+00 -0.21307330000E+00 0.32740000000E+04 0.74485739000E-04 -0.22421901000E-03 0.99999997209E+00 815 0.12100830000E+01 -0.66634420000E+00 0.32740000000E+04 0.84745181000E-04 0.31761152000E-04 0.99999999590E+00 816 0.16645490000E+01 0.88283900000E+00 0.32740000000E+04 -0.45880912000E-04 0.17568521000E-03 0.99999998351E+00 817 0.96745210000E+00 -0.51052950000E+00 0.32740000000E+04 0.19825205000E-03 0.68504660000E-05 0.99999998032E+00 818 0.39944500000E+00 0.12632530000E+01 0.32740000000E+04 0.14553638000E-04 -0.77881494000E-04 0.99999999686E+00 819 0.39944500000E+00 0.12632530000E+01 0.32740000000E+04 0.14553638000E-04 -0.77881494000E-04 0.99999999686E+00 820 0.17447280000E+01 0.22368470000E+01 0.32740000000E+04 0.19086174000E-04 -0.21239568000E-04 0.99999999959E+00 821 -0.77021970000E+00 -0.11588430000E+01 0.32740000000E+04 0.29271495000E-03 -0.20703902000E-03 0.99999993573E+00 822 0.11094270000E+00 -0.38674120000E+00 0.32740000000E+04 0.42463435000E-04 -0.77219767000E-04 0.99999999612E+00 823 0.23290210000E+01 0.10416230000E+01 0.32740000000E+04 0.46570709000E-04 0.60098388000E-04 0.99999999711E+00 824 0.16136100000E+01 -0.69708290000E+00 0.32740000000E+04 0.10328207000E-03 -0.13006142000E-03 0.99999998621E+00 825 0.28566430000E+00 0.10803350000E+01 0.32740000000E+04 0.10483761000E-03 0.31779218000E-03 0.99999994401E+00 826 0.23812480000E+00 0.20138510000E+00 0.32740000000E+04 0.15363526000E-04 -0.72714218000E-04 0.99999999724E+00 827 0.10699500000E+01 0.23293740000E+00 0.32740000000E+04 -0.55832806000E-03 -0.10133400000E-02 0.99999933071E+00 828 0.23239160000E+01 0.21593110000E+01 0.32740000000E+04 -0.67667970000E-04 -0.57130939000E-04 0.99999999608E+00 829 0.69251950000E-01 0.99901780000E+00 0.32740000000E+04 0.16374754000E-03 0.43941156000E-04 0.99999998563E+00 830 -0.16290630000E+01 0.88027580000E+00 0.32740000000E+04 0.15184094000E-03 -0.56935678000E-04 0.99999998685E+00 831 0.21111640000E+01 0.10965430000E+01 0.32740000000E+04 -0.24817331000E-04 -0.34585988000E-04 0.99999999909E+00 832 0.18713650000E+01 0.11940820000E+01 0.32740000000E+04 0.26097579000E-04 -0.39483290000E-04 0.99999999888E+00 833 0.18713650000E+01 0.11940820000E+01 0.32740000000E+04 0.26097579000E-04 -0.39483290000E-04 0.99999999888E+00 834 0.41668690000E+00 0.12607280000E+01 0.32740000000E+04 -0.16262307000E-03 0.18775123000E-04 0.99999998660E+00 835 -0.46380150000E-01 -0.23933040000E+01 0.32740000000E+04 0.10228375000E-03 -0.65338379000E-03 0.99999978131E+00 836 -0.28472880000E+00 0.14406860000E+01 0.32740000000E+04 0.18228588000E-03 0.94170209000E-04 0.99999997895E+00 837 -0.73573870000E+00 0.12796100000E+01 0.32740000000E+04 -0.12919158000E-04 0.24689574000E-03 0.99999996944E+00 838 0.23700960000E+01 0.24690470000E+01 0.32740000000E+04 0.40008421000E-04 0.42625755000E-03 0.99999990835E+00 839 -0.32261090000E+00 -0.10605460000E+01 0.32740000000E+04 0.59397702000E-04 -0.16463859000E-03 0.99999998468E+00 840 0.14836650000E+01 0.11005370000E+01 0.32740000000E+04 0.23435692000E-04 0.24148784000E-03 0.99999997057E+00 841 0.11455380000E+01 0.22563740000E+01 0.32740000000E+04 -0.69640402000E-04 0.44068563000E-03 0.99999990047E+00 842 0.86753590000E-01 0.28694860000E+00 0.32740000000E+04 -0.44781387000E-04 -0.91988273000E-04 0.99999999477E+00 843 0.14223520000E+01 0.93577900000E+00 0.32740000000E+04 -0.10093251000E-03 -0.14100122000E-03 0.99999998497E+00 844 -0.64727900000E+00 -0.16377570000E+01 0.32740000000E+04 0.98291981000E-04 -0.51957650000E-04 0.99999999382E+00 845 0.51842880000E+00 -0.31542240000E+00 0.32740000000E+04 0.81999722000E-04 -0.47247027000E-04 0.99999999552E+00 846 0.37190390000E-01 0.10302650000E+01 0.32740000000E+04 0.22303149000E-03 -0.75775577000E-04 0.99999997226E+00 847 -0.11763300000E+01 -0.63386510000E+00 0.32740000000E+04 0.19795512000E-03 -0.15139625000E-03 0.99999996895E+00 848 -0.11763300000E+01 -0.63386510000E+00 0.32740000000E+04 0.19795512000E-03 -0.15139625000E-03 0.99999996895E+00 849 0.93164850000E-01 0.26605870000E+00 0.32740000000E+04 0.22416726000E-03 -0.69991824000E-04 0.99999997243E+00 850 -0.18241810000E+01 0.22428900000E+01 0.32740000000E+04 -0.35849429000E-03 -0.10123926000E-02 0.99999942327E+00 851 0.48072060000E+00 0.12013720000E+00 0.32740000000E+04 -0.13636737000E-04 0.61973471000E-04 0.99999999799E+00 852 0.28590110000E+00 -0.11412170000E+01 0.32740000000E+04 0.14425688000E-03 -0.24309941000E-03 0.99999996005E+00 853 0.40057390000E+00 0.21600720000E+01 0.32740000000E+04 -0.44628228000E-04 0.29059229000E-03 0.99999995678E+00 854 0.12295630000E+01 0.56595580000E+00 0.32740000000E+04 0.28772814000E-04 0.48919384000E-04 0.99999999839E+00 855 0.24271780000E+01 0.26750880000E+00 0.32740000000E+04 0.11386906000E-03 -0.27333063000E-03 0.99999995616E+00 856 -0.14294220000E+01 0.15408970000E+01 0.32740000000E+04 0.10530963000E-03 0.20822026000E-03 0.99999997278E+00 857 -0.91756700000E+00 -0.83913650000E+00 0.32740000000E+04 -0.14593822000E-04 -0.22645931000E-03 0.99999997425E+00 858 0.25910460000E+00 0.82837770000E+00 0.32740000000E+04 0.12193587000E-03 0.18509223000E-03 0.99999997544E+00 859 0.46405920000E+00 0.44015050000E+00 0.32740000000E+04 0.70696296000E-04 0.49369228000E-04 0.99999999628E+00 860 0.24885270000E+00 -0.50799580000E+00 0.32740000000E+04 0.13296053000E-03 0.43611099000E-05 0.99999999115E+00 861 0.24563110000E+00 0.16363000000E+01 0.32740000000E+04 0.63219712000E-04 0.21342737000E-03 0.99999997523E+00 862 0.49907610000E+00 0.69504050000E+00 0.32740000000E+04 0.20521382000E-03 0.42985182000E-03 0.99999988656E+00 863 0.49907610000E+00 0.69504050000E+00 0.32740000000E+04 0.20521382000E-03 0.42985182000E-03 0.99999988656E+00 864 0.82934120000E+00 0.21629290000E+01 0.32740000000E+04 0.10189770000E-03 0.35996988000E-03 0.99999993002E+00 865 0.68310390000E-01 0.91123680000E+00 0.32740000000E+04 0.62871033000E-04 0.16825982000E-03 0.99999998387E+00 866 0.87134240000E-01 -0.57971910000E+00 0.32740000000E+04 -0.76460812000E-04 -0.85182328000E-04 0.99999999345E+00 867 0.15569140000E+01 0.14204460000E+01 0.32740000000E+04 -0.11398620000E-03 0.25886469000E-04 0.99999999317E+00 868 -0.24034650000E+00 0.14968530000E+01 0.32740000000E+04 0.12853852000E-03 0.28264312000E-04 0.99999999134E+00 869 -0.18205330000E+00 -0.73184250000E+00 0.32740000000E+04 0.12503308000E-03 -0.15468431000E-03 0.99999998022E+00 870 0.30679560000E+00 -0.48019080000E+00 0.32740000000E+04 -0.85086329000E-04 -0.35215265000E-03 0.99999993437E+00 871 0.38091360000E+00 0.21836200000E+00 0.32740000000E+04 0.23019440000E-04 -0.72940886000E-04 0.99999999707E+00 872 0.12288320000E+01 0.30144130000E+00 0.32740000000E+04 -0.16767641000E-03 -0.11623410000E-03 0.99999997919E+00 873 -0.63174450000E+00 0.13484220000E+00 0.32740000000E+04 0.13086136000E-03 0.10622492000E-03 0.99999998580E+00 874 0.50840250000E+00 0.70819980000E+00 0.32740000000E+04 0.55305063000E-04 0.21390892000E-03 0.99999997559E+00 875 0.14442200000E+01 0.99067370000E+00 0.32740000000E+04 -0.13561532000E-03 -0.42961055000E-04 0.99999998988E+00 876 0.10453600000E+01 0.27491560000E+00 0.32740000000E+04 0.39882871000E-03 0.35904825000E-03 0.99999985601E+00 877 -0.18539170000E+00 -0.42687430000E-01 0.32740000000E+04 0.17488511000E-03 0.73899399000E-04 0.99999998198E+00 878 -0.10658750000E+01 -0.15527990000E+01 0.32740000000E+04 0.13312501000E-03 0.46264369000E-03 0.99999988412E+00 879 -0.52529770000E+00 0.11720230000E+01 0.32740000000E+04 0.60544524000E-04 0.68718502000E-04 0.99999999581E+00 880 -0.61424670000E+00 0.60244170000E+00 0.32740000000E+04 0.14606159000E-03 0.21606000000E-03 0.99999996599E+00 881 0.29033520000E+00 -0.74027470000E+00 0.32740000000E+04 0.13930741000E-03 0.15145351000E-04 0.99999999018E+00 882 0.29033520000E+00 -0.74027470000E+00 0.32740000000E+04 0.13930741000E-03 0.15145351000E-04 0.99999999018E+00 883 0.12113200000E+01 -0.57381610000E+00 0.32740000000E+04 0.43448893000E-03 0.19460772000E-03 0.99999988667E+00 884 -0.10513420000E+01 -0.54574100000E+00 0.32740000000E+04 0.29380622000E-03 -0.10585765000E-03 0.99999995124E+00 885 0.48122400000E+00 0.10499400000E+01 0.32740000000E+04 0.53151478000E-04 0.15785370000E-03 0.99999998613E+00 886 0.10269460000E+01 0.20116580000E+01 0.32740000000E+04 0.10932941000E-03 0.13288035000E-03 0.99999998519E+00 887 -0.52749680000E+00 0.20227890000E+01 0.32740000000E+04 0.12388898000E-03 0.30259354000E-03 0.99999994654E+00 888 0.10075530000E+01 0.19188050000E+00 0.32740000000E+04 0.21993737000E-03 0.72914823000E-04 0.99999997316E+00 889 0.11029680000E+01 0.19459000000E+01 0.32740000000E+04 0.48582555000E-04 -0.15081042000E-04 0.99999999871E+00 890 -0.10395470000E+01 -0.94773130000E+00 0.32740000000E+04 0.17152377000E-03 -0.42883647000E-03 0.99999989334E+00 891 0.14552230000E+01 0.13899320000E+01 0.32740000000E+04 -0.43272365000E-04 0.30101466000E-03 0.99999995376E+00 892 -0.54792070000E+00 -0.69642440000E+00 0.32740000000E+04 -0.30228337000E-05 -0.14676341000E-03 0.99999998923E+00 893 0.33590910000E+00 0.88258730000E-01 0.32740000000E+04 0.13686858000E-03 -0.13450858000E-03 0.99999998159E+00 894 0.16344410000E+01 -0.13039060000E+01 0.32740000000E+04 0.21751069000E-03 -0.99803583000E-04 0.99999997136E+00 895 0.45657670000E+00 -0.54187270000E+00 0.32740000000E+04 -0.63825428000E-04 -0.50302660000E-04 0.99999999670E+00 896 0.45657670000E+00 -0.54187270000E+00 0.32740000000E+04 -0.63825428000E-04 -0.50302660000E-04 0.99999999670E+00 897 0.18115280000E+01 0.45174480000E+00 0.32740000000E+04 0.11347968000E-03 -0.17088800000E-03 0.99999997896E+00 898 0.11206280000E+01 -0.55554330000E+00 0.32740000000E+04 0.85676671000E-04 0.55117262000E-05 0.99999999631E+00 899 0.85796460000E+00 -0.33681650000E+00 0.32740000000E+04 -0.10333965000E-03 -0.21293481000E-03 0.99999997199E+00 900 0.22867160000E+00 -0.18087770000E+00 0.32740000000E+04 0.78222751000E-04 -0.34528396000E-05 0.99999999693E+00 901 0.79337600000E+00 0.82504140000E+00 0.32740000000E+04 0.10512787000E-03 0.91521753000E-04 0.99999999029E+00 902 0.49823840000E+00 -0.76740070000E+00 0.32740000000E+04 0.89334302000E-04 -0.32021126000E-03 0.99999994474E+00 903 0.78206890000E+00 0.24302360000E+01 0.32740000000E+04 0.70577073000E-04 0.26744968000E-03 0.99999996174E+00 904 0.21174650000E+00 -0.51598300000E+00 0.32740000000E+04 -0.38371356000E-04 -0.65936387000E-04 0.99999999709E+00 905 0.17512620000E+01 0.23892650000E+01 0.32740000000E+04 -0.13990418000E-05 0.10586650000E-03 0.99999999440E+00 906 -0.17890610000E+00 0.40074640000E-01 0.32740000000E+04 0.14234630000E-03 0.42023617000E-04 0.99999998899E+00 907 -0.84660550000E+00 -0.24469380000E-01 0.32740000000E+04 0.11767171000E-03 -0.13102483000E-03 0.99999998449E+00 908 -0.12123130000E+01 -0.14618930000E+01 0.32740000000E+04 -0.31719884000E-03 -0.59559569000E-03 0.99999977233E+00 909 0.14492970000E-01 -0.13473590000E+01 0.32740000000E+04 -0.40458376000E-05 -0.21091636000E-03 0.99999997775E+00 910 0.14492970000E-01 -0.13473590000E+01 0.32740000000E+04 -0.40458376000E-05 -0.21091636000E-03 0.99999997775E+00 911 0.13182450000E+01 0.49443470000E+00 0.32740000000E+04 -0.34447541000E-04 -0.12089356000E-03 0.99999999210E+00 912 0.24350890000E+00 0.35751030000E+00 0.32740000000E+04 0.19548608000E-03 0.18469691000E-03 0.99999996384E+00 913 0.81611950000E+00 0.81210120000E+00 0.32740000000E+04 0.17261741000E-03 0.60319406000E-03 0.99999980318E+00 914 -0.16983290000E+01 -0.41591160000E+00 0.32740000000E+04 0.14464213000E-04 0.28141920000E-04 0.99999999950E+00 915 -0.93023090000E+00 -0.75747980000E+00 0.32740000000E+04 0.13528233000E-03 0.16595117000E-04 0.99999999071E+00 916 0.63729100000E+00 0.18732120000E+01 0.32740000000E+04 0.13755026000E-03 0.19042827000E-03 0.99999997241E+00 917 0.64452710000E+00 0.42958950000E+00 0.32740000000E+04 0.10283114000E-03 0.95235562000E-04 0.99999999018E+00 918 -0.16731790000E+01 -0.11929200000E+01 0.32740000000E+04 0.12792087000E-03 0.21139786000E-04 0.99999999159E+00 919 0.15098660000E+01 0.21359460000E+01 0.32740000000E+04 0.10497303000E-03 0.17705982000E-03 0.99999997882E+00 920 0.22811350000E+01 0.10331240000E+01 0.32740000000E+04 0.41419036000E-04 0.31550825000E-03 0.99999994937E+00 921 -0.58782440000E+00 -0.46568210000E+00 0.32740000000E+04 0.12086320000E-03 -0.17989110000E-04 0.99999999253E+00 922 -0.58782440000E+00 -0.46568210000E+00 0.32740000000E+04 0.12086320000E-03 -0.17989110000E-04 0.99999999253E+00 923 -0.11309110000E+01 0.63524160000E+00 0.32740000000E+04 0.15920095000E-03 0.16815933000E-03 0.99999997319E+00 924 -0.61003160000E-01 0.20405150000E+01 0.32740000000E+04 0.21113601000E-03 0.15993565000E-03 0.99999996492E+00 925 -0.14585000000E+01 -0.12919390000E+01 0.32740000000E+04 0.14055609000E-03 0.22670860000E-04 0.99999998987E+00 926 0.76597210000E+00 0.13263340000E+01 0.32740000000E+04 0.60932889000E-04 0.20168156000E-03 0.99999997781E+00 927 0.31703130000E+00 -0.14693520000E+01 0.32740000000E+04 0.17000723000E-03 -0.37335805000E-04 0.99999998485E+00 928 0.19247650000E+01 0.10386230000E+01 0.32740000000E+04 0.11049807000E-03 -0.11415409000E-03 0.99999998738E+00 929 0.19247650000E+01 0.10386230000E+01 0.32740000000E+04 0.11049807000E-03 -0.11415409000E-03 0.99999998738E+00 930 0.16803270000E+00 0.61680250000E+00 0.32740000000E+04 0.83265106000E-04 0.26577007000E-04 0.99999999618E+00 931 0.17231040000E+00 0.19796440000E+01 0.32740000000E+04 -0.26768856000E-03 0.28643437000E-03 0.99999992315E+00 932 0.18486160000E+01 0.12214110000E+01 0.32740000000E+04 -0.12660144000E-03 0.63111023000E-04 0.99999998999E+00 933 0.13691530000E+01 0.11820860000E+01 0.32740000000E+04 -0.82805105000E-04 0.44498222000E-04 0.99999999558E+00 934 -0.31241160000E+00 -0.20024310000E+00 0.32740000000E+04 0.15544749000E-03 0.11256629000E-03 0.99999998158E+00 935 0.13291800000E+01 0.10541980000E+01 0.32740000000E+04 -0.94252668000E-04 -0.37672889000E-04 0.99999999485E+00 936 -0.94022050000E+00 0.35616220000E+00 0.32740000000E+04 -0.91417438000E-04 0.11616026000E-03 0.99999998907E+00 937 -0.87115560000E+00 0.63124620000E+00 0.32740000000E+04 0.78397687000E-04 -0.21472985000E-03 0.99999997387E+00 938 -0.15572120000E+01 -0.77316750000E+00 0.32740000000E+04 -0.19560520000E-03 -0.25055278000E-03 0.99999994948E+00 939 0.24201180000E+00 0.89490070000E+00 0.32740000000E+04 -0.97995347000E-04 0.10264455000E-03 0.99999998993E+00 940 0.10057990000E+01 0.66385710000E+00 0.32740000000E+04 -0.17283989000E-03 0.18790315000E-03 0.99999996741E+00 941 0.17182880000E+01 0.21442050000E+00 0.32740000000E+04 0.45896861000E-04 -0.10280356000E-03 0.99999999366E+00 942 0.48411940000E-01 0.55005240000E+00 0.32740000000E+04 0.13278784000E-03 0.59322774000E-04 0.99999998942E+00 943 0.48411940000E-01 0.55005240000E+00 0.32740000000E+04 0.13278784000E-03 0.59322774000E-04 0.99999998942E+00 944 0.13379390000E+01 0.30420080000E+00 0.32740000000E+04 0.11175220000E-03 -0.17384197000E-03 0.99999997865E+00 945 -0.63586500000E+00 0.15292510000E+00 0.32740000000E+04 0.22414955000E-03 0.54225411000E-05 0.99999997486E+00 946 0.17489850000E+01 0.15540880000E+01 0.32740000000E+04 -0.70468850000E-04 0.54713557000E-04 0.99999999602E+00 947 0.15547710000E+01 0.20654170000E+01 0.32740000000E+04 -0.42198651000E-04 0.15174800000E-03 0.99999998760E+00 948 0.27782100000E+00 0.16257060000E+01 0.32740000000E+04 0.36647507000E-04 0.60129991000E-04 0.99999999752E+00 949 0.87276220000E+00 0.30080120000E+00 0.32740000000E+04 0.25315974000E-04 0.13763089000E-03 0.99999999021E+00 950 0.13555520000E+01 0.24500400000E+01 0.32740000000E+04 0.67940564000E-04 0.75801174000E-04 0.99999999482E+00 951 -0.16363150000E+00 0.16968210000E+00 0.32740000000E+04 0.11160709000E-03 0.11004167000E-03 0.99999998772E+00 952 0.17446720000E+01 0.10837100000E+01 0.32740000000E+04 0.12668499000E-03 0.41897863000E-03 0.99999990420E+00 953 0.68670930000E+00 0.17320320000E+01 0.32740000000E+04 0.22611815000E-04 -0.71583614000E-04 0.99999999718E+00 954 -0.41859690000E+00 -0.28318140000E+00 0.32740000000E+04 0.17223509000E-03 0.45174317000E-03 0.99999988313E+00 955 0.17663640000E+01 0.19617590000E+01 0.32740000000E+04 -0.68240042000E-04 0.13840277000E-03 0.99999998809E+00 956 0.17663640000E+01 0.19617590000E+01 0.32740000000E+04 -0.68240042000E-04 0.13840277000E-03 0.99999998809E+00 957 0.56647290000E+00 0.16324780000E+01 0.32740000000E+04 0.28702440000E-04 0.12528581000E-03 0.99999999174E+00 958 0.19932500000E+00 -0.77236720000E-01 0.32740000000E+04 0.52054747000E-04 -0.11636279000E-03 0.99999999188E+00 959 0.18049890000E+01 -0.12172470000E+01 0.32740000000E+04 0.26699889000E-04 -0.16544698000E-03 0.99999998596E+00 960 -0.85846670000E+00 -0.27599070000E+00 0.32740000000E+04 0.74184713000E-05 -0.11759785000E-03 0.99999999306E+00 961 0.24662770000E+01 0.20898510000E+01 0.32740000000E+04 0.42715390000E-04 0.28166652000E-03 0.99999995942E+00 962 -0.23602780000E+00 0.66775500000E+00 0.32740000000E+04 0.23098825000E-03 0.24823329000E-03 0.99999994251E+00 963 0.10609430000E+01 0.63427910000E+00 0.32740000000E+04 0.16272013000E-03 0.26764633000E-03 0.99999995094E+00 964 -0.24830760000E+00 -0.67351820000E+00 0.32740000000E+04 -0.10064494000E-03 -0.10290584000E-03 0.99999998964E+00 965 0.73521420000E+00 0.22700550000E+00 0.32740000000E+04 -0.56366778000E-04 -0.64439955000E-04 0.99999999634E+00 966 0.43114110000E+00 0.13204480000E+01 0.32740000000E+04 0.36627742000E-04 0.64314401000E-04 0.99999999726E+00 967 0.40349080000E+00 0.77946480000E+00 0.32740000000E+04 0.32274899000E-03 -0.16038469000E-03 0.99999993505E+00 968 -0.22608050000E+01 -0.80039890000E+00 0.32740000000E+04 -0.42840828000E-04 -0.16930411000E-03 0.99999998475E+00 969 -0.22608050000E+01 -0.80039890000E+00 0.32740000000E+04 -0.42840828000E-04 -0.16930411000E-03 0.99999998475E+00 970 0.12339240000E+00 -0.49086920000E+00 0.32740000000E+04 0.21512272000E-03 -0.13083740000E-03 0.99999996830E+00 971 0.70704980000E+00 0.99083400000E-01 0.32740000000E+04 -0.23440214000E-04 -0.40648734000E-04 0.99999999890E+00 972 -0.10772900000E+01 -0.67726870000E+00 0.32740000000E+04 0.72314801000E-05 -0.12284637000E-03 0.99999999243E+00 973 0.75436660000E+00 0.23532780000E+01 0.32740000000E+04 0.52395473000E-04 0.19266061000E-03 0.99999998007E+00 974 0.99905050000E+00 0.83604350000E+00 0.32740000000E+04 0.58206428000E-04 -0.45223438000E-04 0.99999999728E+00 975 0.19352790000E+01 0.60012060000E+00 0.32740000000E+04 -0.24782729000E-03 -0.20237427000E-03 0.99999994881E+00 976 -0.11260950000E+01 -0.85880610000E+00 0.32740000000E+04 0.23913513000E-03 0.17195792000E-03 0.99999995662E+00 977 -0.15210280000E+01 -0.12140230000E+01 0.32740000000E+04 0.52859974000E-04 -0.47474145000E-03 0.99999988591E+00 978 -0.80073180000E+00 0.50383860000E+00 0.32740000000E+04 0.17240513000E-03 0.32841833000E-03 0.99999993121E+00 979 -0.12180450000E+01 -0.93090920000E+00 0.32740000000E+04 -0.50570816000E-04 0.75318269000E-04 0.99999999588E+00 980 -0.48446800000E+00 -0.50901120000E+00 0.32740000000E+04 -0.25130523000E-03 0.12947680000E-03 0.99999996004E+00 981 0.85868180000E+00 0.16345510000E+01 0.32740000000E+04 0.16727956000E-03 0.87593129000E-04 0.99999998217E+00 982 0.14238720000E+01 0.17136240000E+01 0.32740000000E+04 0.10446917000E-03 0.28639779000E-03 0.99999995353E+00 983 0.15933380000E+01 0.12874160000E+01 0.32740000000E+04 -0.15323507000E-05 0.14202196000E-03 0.99999998991E+00 984 0.22710650000E+01 0.17502970000E+01 0.32740000000E+04 0.50030834000E-04 0.26569807000E-03 0.99999996345E+00 985 0.22710650000E+01 0.17502970000E+01 0.32740000000E+04 0.50030834000E-04 0.26569807000E-03 0.99999996345E+00 986 0.47866380000E+00 0.23006120000E+00 0.32740000000E+04 0.24246610000E-04 -0.91129208000E-04 0.99999999555E+00 987 0.11501960000E+01 0.62525080000E+00 0.32740000000E+04 0.15555161000E-03 0.15838657000E-03 0.99999997536E+00 988 -0.88924840000E-01 -0.86314570000E+00 0.32740000000E+04 0.40451260000E-03 -0.21003191000E-03 0.99999989613E+00 989 0.10906050000E+01 0.34442260000E+00 0.32740000000E+04 0.15519717000E-03 0.16332906000E-04 0.99999998782E+00 990 0.79620910000E+00 0.50800640000E+00 0.32740000000E+04 -0.82836224000E-04 0.28045000000E-04 0.99999999618E+00 991 0.38376670000E-01 -0.74002690000E+00 0.32740000000E+04 0.24434112000E-03 -0.24847116000E-03 0.99999993928E+00 992 0.38376670000E-01 -0.74002690000E+00 0.32740000000E+04 0.24434112000E-03 -0.24847116000E-03 0.99999993928E+00 993 -0.11023060000E+01 0.84705510000E+00 0.32740000000E+04 0.91833681000E-04 0.35463347000E-05 0.99999999578E+00 994 0.10900000000E+01 -0.29737690000E+00 0.32740000000E+04 0.10592616000E-03 0.12475107000E-03 0.99999998661E+00 995 0.17758720000E+00 0.16628690000E+01 0.32740000000E+04 -0.49988063000E-04 0.21818810000E-03 0.99999997495E+00 996 0.11932510000E+00 -0.95365960000E+00 0.32740000000E+04 -0.53230342000E-04 -0.23118684000E-03 0.99999997186E+00 997 0.12681520000E+01 0.15582790000E+01 0.32740000000E+04 0.15635566000E-03 0.28306083000E-03 0.99999994771E+00 998 0.16296030000E+01 0.20119170000E+01 0.32740000000E+04 0.98734956000E-04 0.30757810000E-03 0.99999994782E+00 999 -0.62039110000E+00 -0.93347270000E+00 0.32740000000E+04 0.21813497000E-03 -0.13370455000E-03 0.99999996727E+00 1000 0.57625300000E+00 0.92749320000E+00 0.32740000000E+04 0.24307725000E-04 0.90824920000E-04 0.99999999558E+00 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/geom_data/FCal1Electrodes.dat b/examples/advanced/lAr_calorimeter/geom_data/FCal1Electrodes.dat new file mode 100644 index 0000000000..8298b0eccd --- /dev/null +++ b/examples/advanced/lAr_calorimeter/geom_data/FCal1Electrodes.dat @@ -0,0 +1 @@ + 1 6.1875 8.1190 16 12 0000 2 6.9375 8.1190 18 12 0000 3 6.5625 8.7685 17 13 0000 4 7.3125 8.7685 19 13 0000 5 7.6875 8.1190 20 12 0001 6 8.4375 8.1190 22 12 0001 7 8.0625 8.7685 21 13 0001 8 8.8125 8.7685 23 13 0001 9 6.1875 9.4180 16 14 0002 10 6.9375 9.4180 18 14 0002 11 6.5625 10.0675 17 15 0002 12 7.3125 10.0675 19 15 0002 13 7.6875 9.4180 20 14 0003 14 8.4375 9.4180 22 14 0003 15 8.0625 10.0675 21 15 0003 16 8.8125 10.0675 23 15 0003 17 6.1875 10.7171 16 16 0004 18 6.9375 10.7171 18 16 0004 19 6.5625 11.3666 17 17 0004 20 7.3125 11.3666 19 17 0004 21 7.6875 10.7171 20 16 0004 22 8.4375 10.7171 22 16 0004 23 8.0625 11.3666 21 17 0004 24 8.8125 11.3666 23 17 0004 25 6.1875 12.0161 16 18 0004 26 6.9375 12.0161 18 18 0004 27 6.5625 12.6656 17 19 0004 28 7.3125 12.6656 19 19 0004 29 7.6875 12.0161 20 18 0004 30 8.4375 12.0161 22 18 0004 31 8.0625 12.6656 21 19 0004 32 8.8125 12.6656 23 19 0004 33 9.1875 10.7171 24 16 0005 34 9.9375 10.7171 26 16 0005 35 9.5625 11.3666 25 17 0005 36 10.3125 11.3666 27 17 0005 37 10.6875 10.7171 28 16 0005 38 11.4375 10.7171 30 16 0005 39 11.0625 11.3666 29 17 0005 40 11.8125 11.3666 31 17 0005 41 9.1875 12.0161 24 18 0005 42 9.9375 12.0161 26 18 0005 43 9.5625 12.6656 25 19 0005 44 10.3125 12.6656 27 19 0005 45 10.6875 12.0161 28 18 0005 46 11.4375 12.0161 30 18 0005 47 11.0625 12.6656 29 19 0005 48 11.8125 12.6656 31 19 0005 49 6.1875 13.3151 16 20 0006 50 6.9375 13.3151 18 20 0006 51 6.5625 13.9647 17 21 0006 52 7.3125 13.9647 19 21 0006 53 7.6875 13.3151 20 20 0006 54 8.4375 13.3151 22 20 0006 55 8.0625 13.9647 21 21 0006 56 8.8125 13.9647 23 21 0006 57 6.1875 14.6142 16 22 0006 58 6.9375 14.6142 18 22 0006 59 6.5625 15.2637 17 23 0006 60 7.3125 15.2637 19 23 0006 61 7.6875 14.6142 20 22 0006 62 8.4375 14.6142 22 22 0006 63 8.0625 15.2637 21 23 0006 64 8.8125 15.2637 23 23 0006 65 9.1875 13.3151 24 20 0007 66 9.9375 13.3151 26 20 0007 67 9.5625 13.9647 25 21 0007 68 10.3125 13.9647 27 21 0007 69 10.6875 13.3151 28 20 0007 70 11.4375 13.3151 30 20 0007 71 11.0625 13.9647 29 21 0007 72 11.8125 13.9647 31 21 0007 73 9.1875 14.6142 24 22 0007 74 9.9375 14.6142 26 22 0007 75 9.5625 15.2637 25 23 0007 76 10.3125 15.2637 27 23 0007 77 10.6875 14.6142 28 22 0007 78 11.4375 14.6142 30 22 0007 79 11.0625 15.2637 29 23 0007 80 11.8125 15.2637 31 23 0007 81 6.1875 15.9132 16 24 0008 82 6.9375 15.9132 18 24 0008 83 6.5625 16.5627 17 25 0008 84 7.3125 16.5627 19 25 0008 85 7.6875 15.9132 20 24 0008 86 8.4375 15.9132 22 24 0008 87 8.0625 16.5627 21 25 0008 88 8.8125 16.5627 23 25 0008 89 6.1875 17.2123 16 26 0008 90 6.9375 17.2123 18 26 0008 91 6.5625 17.8618 17 27 0008 92 7.3125 17.8618 19 27 0008 93 7.6875 17.2123 20 26 0008 94 8.4375 17.2123 22 26 0008 95 8.0625 17.8618 21 27 0008 96 8.8125 17.8618 23 27 0008 97 12.1875 13.3151 32 20 0009 98 12.9375 13.3151 34 20 0009 99 12.5625 13.9647 33 21 0009 100 13.3125 13.9647 35 21 0009 101 13.6875 13.3151 36 20 0009 102 14.4375 13.3151 38 20 0009 103 14.0625 13.9647 37 21 0009 104 14.8125 13.9647 39 21 0009 105 12.1875 14.6142 32 22 0009 106 12.9375 14.6142 34 22 0009 107 12.5625 15.2637 33 23 0009 108 13.3125 15.2637 35 23 0009 109 13.6875 14.6142 36 22 0009 110 14.4375 14.6142 38 22 0009 111 14.0625 15.2637 37 23 0009 112 14.8125 15.2637 39 23 0009 113 9.1875 15.9132 24 24 0010 114 9.9375 15.9132 26 24 0010 115 9.5625 16.5627 25 25 0010 116 10.3125 16.5627 27 25 0010 117 10.6875 15.9132 28 24 0010 118 11.4375 15.9132 30 24 0010 119 11.0625 16.5627 29 25 0010 120 11.8125 16.5627 31 25 0010 121 9.1875 17.2123 24 26 0010 122 9.9375 17.2123 26 26 0010 123 9.5625 17.8618 25 27 0010 124 10.3125 17.8618 27 27 0010 125 10.6875 17.2123 28 26 0010 126 11.4375 17.2123 30 26 0010 127 11.0625 17.8618 29 27 0010 128 11.8125 17.8618 31 27 0010 129 6.1875 18.5113 16 28 0011 130 6.9375 18.5113 18 28 0011 131 6.5625 19.1608 17 29 0011 132 7.3125 19.1608 19 29 0011 133 7.6875 18.5113 20 28 0011 134 8.4375 18.5113 22 28 0011 135 8.0625 19.1608 21 29 0011 136 8.8125 19.1608 23 29 0011 137 6.1875 19.8103 16 30 0011 138 6.9375 19.8103 18 30 0011 139 6.5625 20.4599 17 31 0011 140 7.3125 20.4599 19 31 0011 141 7.6875 19.8103 20 30 0011 142 8.4375 19.8103 22 30 0011 143 8.0625 20.4599 21 31 0011 144 8.8125 20.4599 23 31 0011 145 12.1875 15.9132 32 24 0012 146 12.9375 15.9132 34 24 0012 147 12.5625 16.5627 33 25 0012 148 13.3125 16.5627 35 25 0012 149 13.6875 15.9132 36 24 0012 150 14.4375 15.9132 38 24 0012 151 14.0625 16.5627 37 25 0012 152 14.8125 16.5627 39 25 0012 153 12.1875 17.2123 32 26 0012 154 12.9375 17.2123 34 26 0012 155 12.5625 17.8618 33 27 0012 156 13.3125 17.8618 35 27 0012 157 13.6875 17.2123 36 26 0012 158 14.4375 17.2123 38 26 0012 159 14.0625 17.8618 37 27 0012 160 14.8125 17.8618 39 27 0012 161 9.1875 18.5113 24 28 0013 162 9.9375 18.5113 26 28 0013 163 9.5625 19.1608 25 29 0013 164 10.3125 19.1608 27 29 0013 165 10.6875 18.5113 28 28 0013 166 11.4375 18.5113 30 28 0013 167 11.0625 19.1608 29 29 0013 168 11.8125 19.1608 31 29 0013 169 9.1875 19.8103 24 30 0013 170 9.9375 19.8103 26 30 0013 171 9.5625 20.4599 25 31 0013 172 10.3125 20.4599 27 31 0013 173 10.6875 19.8103 28 30 0013 174 11.4375 19.8103 30 30 0013 175 11.0625 20.4599 29 31 0013 176 11.8125 20.4599 31 31 0013 177 6.1875 21.1094 16 32 0014 178 6.9375 21.1094 18 32 0014 179 6.5625 21.7589 17 33 0014 180 7.3125 21.7589 19 33 0014 181 7.6875 21.1094 20 32 0014 182 8.4375 21.1094 22 32 0014 183 8.0625 21.7589 21 33 0014 184 8.8125 21.7589 23 33 0014 185 6.1875 22.4084 16 34 0014 186 6.9375 22.4084 18 34 0014 187 6.5625 23.0579 17 35 0014 188 7.3125 23.0579 19 35 0014 189 7.6875 22.4084 20 34 0014 190 8.4375 22.4084 22 34 0014 191 8.0625 23.0579 21 35 0014 192 8.8125 23.0579 23 35 0014 193 15.1875 15.9132 40 24 0015 194 15.9375 15.9132 42 24 0015 195 15.5625 16.5627 41 25 0015 196 16.3125 16.5627 43 25 0015 197 16.6875 15.9132 44 24 0015 198 17.4375 15.9132 46 24 0015 199 17.0625 16.5627 45 25 0015 200 17.8125 16.5627 47 25 0015 201 15.1875 17.2123 40 26 0015 202 15.9375 17.2123 42 26 0015 203 15.5625 17.8618 41 27 0015 204 16.3125 17.8618 43 27 0015 205 16.6875 17.2123 44 26 0015 206 17.4375 17.2123 46 26 0015 207 17.0625 17.8618 45 27 0015 208 17.8125 17.8618 47 27 0015 209 12.1875 18.5113 32 28 0016 210 12.9375 18.5113 34 28 0016 211 12.5625 19.1608 33 29 0016 212 13.3125 19.1608 35 29 0016 213 13.6875 18.5113 36 28 0016 214 14.4375 18.5113 38 28 0016 215 14.0625 19.1608 37 29 0016 216 14.8125 19.1608 39 29 0016 217 12.1875 19.8103 32 30 0016 218 12.9375 19.8103 34 30 0016 219 12.5625 20.4599 33 31 0016 220 13.3125 20.4599 35 31 0016 221 13.6875 19.8103 36 30 0016 222 14.4375 19.8103 38 30 0016 223 14.0625 20.4599 37 31 0016 224 14.8125 20.4599 39 31 0016 225 9.1875 21.1094 24 32 0017 226 9.9375 21.1094 26 32 0017 227 9.5625 21.7589 25 33 0017 228 10.3125 21.7589 27 33 0017 229 10.6875 21.1094 28 32 0017 230 11.4375 21.1094 30 32 0017 231 11.0625 21.7589 29 33 0017 232 11.8125 21.7589 31 33 0017 233 9.1875 22.4084 24 34 0017 234 9.9375 22.4084 26 34 0017 235 9.5625 23.0579 25 35 0017 236 10.3125 23.0579 27 35 0017 237 10.6875 22.4084 28 34 0017 238 11.4375 22.4084 30 34 0017 239 11.0625 23.0579 29 35 0017 240 11.8125 23.0579 31 35 0017 241 15.1875 18.5113 40 28 0018 242 15.9375 18.5113 42 28 0018 243 15.5625 19.1608 41 29 0018 244 16.3125 19.1608 43 29 0018 245 16.6875 18.5113 44 28 0018 246 17.4375 18.5113 46 28 0018 247 17.0625 19.1608 45 29 0018 248 17.8125 19.1608 47 29 0018 249 15.1875 19.8103 40 30 0018 250 15.9375 19.8103 42 30 0018 251 15.5625 20.4599 41 31 0018 252 16.3125 20.4599 43 31 0018 253 16.6875 19.8103 44 30 0018 254 17.4375 19.8103 46 30 0018 255 17.0625 20.4599 45 31 0018 256 17.8125 20.4599 47 31 0018 257 6.1875 23.7074 16 36 0019 258 6.9375 23.7074 18 36 0019 259 6.5625 24.3570 17 37 0019 260 7.3125 24.3570 19 37 0019 261 7.6875 23.7074 20 36 0019 262 8.4375 23.7074 22 36 0019 263 8.0625 24.3570 21 37 0019 264 8.8125 24.3570 23 37 0019 265 6.1875 25.0065 16 38 0019 266 6.9375 25.0065 18 38 0019 267 6.5625 25.6560 17 39 0019 268 7.3125 25.6560 19 39 0019 269 7.6875 25.0065 20 38 0019 270 8.4375 25.0065 22 38 0019 271 8.0625 25.6560 21 39 0019 272 8.8125 25.6560 23 39 0019 273 12.1875 21.1094 32 32 0020 274 12.9375 21.1094 34 32 0020 275 12.5625 21.7589 33 33 0020 276 13.3125 21.7589 35 33 0020 277 13.6875 21.1094 36 32 0020 278 14.4375 21.1094 38 32 0020 279 14.0625 21.7589 37 33 0020 280 14.8125 21.7589 39 33 0020 281 12.1875 22.4084 32 34 0020 282 12.9375 22.4084 34 34 0020 283 12.5625 23.0579 33 35 0020 284 13.3125 23.0579 35 35 0020 285 13.6875 22.4084 36 34 0020 286 14.4375 22.4084 38 34 0020 287 14.0625 23.0579 37 35 0020 288 14.8125 23.0579 39 35 0020 289 9.1875 23.7074 24 36 0021 290 9.9375 23.7074 26 36 0021 291 9.5625 24.3570 25 37 0021 292 10.3125 24.3570 27 37 0021 293 10.6875 23.7074 28 36 0021 294 11.4375 23.7074 30 36 0021 295 11.0625 24.3570 29 37 0021 296 11.8125 24.3570 31 37 0021 297 9.1875 25.0065 24 38 0021 298 9.9375 25.0065 26 38 0021 299 9.5625 25.6560 25 39 0021 300 10.3125 25.6560 27 39 0021 301 10.6875 25.0065 28 38 0021 302 11.4375 25.0065 30 38 0021 303 11.0625 25.6560 29 39 0021 304 11.8125 25.6560 31 39 0021 305 15.1875 21.1094 40 32 0022 306 15.9375 21.1094 42 32 0022 307 15.5625 21.7589 41 33 0022 308 16.3125 21.7589 43 33 0022 309 16.6875 21.1094 44 32 0022 310 17.4375 21.1094 46 32 0022 311 17.0625 21.7589 45 33 0022 312 17.8125 21.7589 47 33 0022 313 15.1875 22.4084 40 34 0022 314 15.9375 22.4084 42 34 0022 315 15.5625 23.0579 41 35 0022 316 16.3125 23.0579 43 35 0022 317 16.6875 22.4084 44 34 0022 318 17.4375 22.4084 46 34 0022 319 17.0625 23.0579 45 35 0022 320 17.8125 23.0579 47 35 0022 321 18.1875 18.5113 48 28 0023 322 18.9375 18.5113 50 28 0023 323 18.5625 19.1608 49 29 0023 324 19.3125 19.1608 51 29 0023 325 19.6875 18.5113 52 28 0023 326 20.4375 18.5113 54 28 0023 327 20.0625 19.1608 53 29 0023 328 20.8125 19.1608 55 29 0023 329 18.1875 19.8103 48 30 0023 330 18.9375 19.8103 50 30 0023 331 18.5625 20.4599 49 31 0023 332 19.3125 20.4599 51 31 0023 333 19.6875 19.8103 52 30 0023 334 20.4375 19.8103 54 30 0023 335 20.0625 20.4599 53 31 0023 336 20.8125 20.4599 55 31 0023 337 12.1875 23.7074 32 36 0024 338 12.9375 23.7074 34 36 0024 339 12.5625 24.3570 33 37 0024 340 13.3125 24.3570 35 37 0024 341 13.6875 23.7074 36 36 0024 342 14.4375 23.7074 38 36 0024 343 14.0625 24.3570 37 37 0024 344 14.8125 24.3570 39 37 0024 345 12.1875 25.0065 32 38 0024 346 12.9375 25.0065 34 38 0024 347 12.5625 25.6560 33 39 0024 348 13.3125 25.6560 35 39 0024 349 13.6875 25.0065 36 38 0024 350 14.4375 25.0065 38 38 0024 351 14.0625 25.6560 37 39 0024 352 14.8125 25.6560 39 39 0024 353 18.1875 21.1094 48 32 0025 354 18.9375 21.1094 50 32 0025 355 18.5625 21.7589 49 33 0025 356 19.3125 21.7589 51 33 0025 357 19.6875 21.1094 52 32 0025 358 20.4375 21.1094 54 32 0025 359 20.0625 21.7589 53 33 0025 360 20.8125 21.7589 55 33 0025 361 18.1875 22.4084 48 34 0025 362 18.9375 22.4084 50 34 0025 363 18.5625 23.0579 49 35 0025 364 19.3125 23.0579 51 35 0025 365 19.6875 22.4084 52 34 0025 366 20.4375 22.4084 54 34 0025 367 20.0625 23.0579 53 35 0025 368 20.8125 23.0579 55 35 0025 369 15.1875 23.7074 40 36 0026 370 15.9375 23.7074 42 36 0026 371 15.5625 24.3570 41 37 0026 372 16.3125 24.3570 43 37 0026 373 16.6875 23.7074 44 36 0026 374 17.4375 23.7074 46 36 0026 375 17.0625 24.3570 45 37 0026 376 17.8125 24.3570 47 37 0026 377 15.1875 25.0065 40 38 0026 378 15.9375 25.0065 42 38 0026 379 15.5625 25.6560 41 39 0026 380 16.3125 25.6560 43 39 0026 381 16.6875 25.0065 44 38 0026 382 17.4375 25.0065 46 38 0026 383 17.0625 25.6560 45 39 0026 384 17.8125 25.6560 47 39 0026 385 12.1875 26.3055 32 40 0027 386 12.9375 26.3055 34 40 0027 387 12.5625 26.9550 33 41 0027 388 13.3125 26.9550 35 41 0027 389 13.6875 26.3055 36 40 0027 390 14.4375 26.3055 38 40 0027 391 14.0625 26.9550 37 41 0027 392 14.8125 26.9550 39 41 0027 393 12.1875 27.6046 32 42 0027 394 12.9375 27.6046 34 42 0027 395 12.5625 28.2541 33 43 0027 396 13.3125 28.2541 35 43 0027 397 13.6875 27.6046 36 42 0027 398 14.4375 27.6046 38 42 0027 399 14.0625 28.2541 37 43 0027 400 14.8125 28.2541 39 43 0027 401 18.1875 23.7074 48 36 0028 402 18.9375 23.7074 50 36 0028 403 18.5625 24.3570 49 37 0028 404 19.3125 24.3570 51 37 0028 405 19.6875 23.7074 52 36 0028 406 20.4375 23.7074 54 36 0028 407 20.0625 24.3570 53 37 0028 408 20.8125 24.3570 55 37 0028 409 18.1875 25.0065 48 38 0028 410 18.9375 25.0065 50 38 0028 411 18.5625 25.6560 49 39 0028 412 19.3125 25.6560 51 39 0028 413 19.6875 25.0065 52 38 0028 414 20.4375 25.0065 54 38 0028 415 20.0625 25.6560 53 39 0028 416 20.8125 25.6560 55 39 0028 417 15.1875 26.3055 40 40 0029 418 15.9375 26.3055 42 40 0029 419 15.5625 26.9550 41 41 0029 420 16.3125 26.9550 43 41 0029 421 16.6875 26.3055 44 40 0029 422 17.4375 26.3055 46 40 0029 423 17.0625 26.9550 45 41 0029 424 17.8125 26.9550 47 41 0029 425 15.1875 27.6046 40 42 0029 426 15.9375 27.6046 42 42 0029 427 15.5625 28.2541 41 43 0029 428 16.3125 28.2541 43 43 0029 429 16.6875 27.6046 44 42 0029 430 17.4375 27.6046 46 42 0029 431 17.0625 28.2541 45 43 0029 432 17.8125 28.2541 47 43 0029 433 21.1875 23.7074 56 36 0030 434 21.9375 23.7074 58 36 0030 435 21.5625 24.3570 57 37 0030 436 22.3125 24.3570 59 37 0030 437 22.6875 23.7074 60 36 0030 438 23.4375 23.7074 62 36 0030 439 23.0625 24.3570 61 37 0030 440 23.8125 24.3570 63 37 0030 441 21.1875 25.0065 56 38 0030 442 21.9375 25.0065 58 38 0030 443 21.5625 25.6560 57 39 0030 444 22.3125 25.6560 59 39 0030 445 22.6875 25.0065 60 38 0030 446 23.4375 25.0065 62 38 0030 447 23.0625 25.6560 61 39 0030 448 23.8125 25.6560 63 39 0030 449 18.1875 26.3055 48 40 0031 450 18.9375 26.3055 50 40 0031 451 18.5625 26.9550 49 41 0031 452 19.3125 26.9550 51 41 0031 453 19.6875 26.3055 52 40 0031 454 20.4375 26.3055 54 40 0031 455 20.0625 26.9550 53 41 0031 456 20.8125 26.9550 55 41 0031 457 18.1875 27.6046 48 42 0031 458 18.9375 27.6046 50 42 0031 459 18.5625 28.2541 49 43 0031 460 19.3125 28.2541 51 43 0031 461 19.6875 27.6046 52 42 0031 462 20.4375 27.6046 54 42 0031 463 20.0625 28.2541 53 43 0031 464 20.8125 28.2541 55 43 0031 465 5.8125 6.1704 15 9 0100 466 5.4375 5.5209 14 8 0100 467 5.0625 6.1704 13 9 0100 468 4.6875 6.8200 12 10 0100 469 5.4375 6.8200 14 10 0101 470 5.8125 7.4695 15 11 0101 471 5.0625 7.4695 13 11 0101 472 4.3125 7.4695 11 11 0101 473 6.1875 6.8200 16 10 0102 474 6.9375 6.8200 18 10 0102 475 6.5625 7.4695 17 11 0102 476 7.3125 7.4695 19 11 0102 477 4.6875 8.1190 12 12 0103 478 5.4375 8.1190 14 12 0103 479 5.0625 8.7685 13 13 0103 480 5.8125 8.7685 15 13 0103 481 4.6875 9.4180 12 14 0104 482 5.4375 9.4180 14 14 0104 483 5.0625 10.0675 13 15 0104 484 5.8125 10.0675 15 15 0104 485 12.1875 28.9036 32 44 0105 486 12.9375 28.9036 34 44 0105 487 12.5625 29.5531 33 45 0105 488 13.3125 29.5531 35 45 0105 489 13.6875 28.9036 36 44 0105 490 14.4375 28.9036 38 44 0105 491 14.0625 29.5531 37 45 0105 492 14.8125 29.5531 39 45 0105 493 12.1875 30.2026 32 46 0105 494 12.9375 30.2026 34 46 0105 495 12.5625 30.8522 33 47 0105 496 13.3125 30.8522 35 47 0105 497 13.6875 30.2026 36 46 0105 498 14.4375 30.2026 38 46 0105 499 14.0625 30.8522 37 47 0105 500 14.8125 30.8522 39 47 0105 501 15.1875 28.9036 40 44 0106 502 15.9375 28.9036 42 44 0106 503 15.5625 29.5531 41 45 0106 504 16.3125 29.5531 43 45 0106 505 16.6875 28.9036 44 44 0106 506 17.4375 28.9036 46 44 0106 507 17.0625 29.5531 45 45 0106 508 17.8125 29.5531 47 45 0106 509 15.1875 30.2026 40 46 0106 510 15.9375 30.2026 42 46 0106 511 15.5625 30.8522 41 47 0106 512 16.3125 30.8522 43 47 0106 513 16.6875 30.2026 44 46 0106 514 17.4375 30.2026 46 46 0106 515 17.0625 30.8522 45 47 0106 516 17.8125 30.8522 47 47 0106 517 21.1875 26.3055 56 40 0107 518 21.9375 26.3055 58 40 0107 519 21.5625 26.9550 57 41 0107 520 22.3125 26.9550 59 41 0107 521 22.6875 26.3055 60 40 0107 522 23.4375 26.3055 62 40 0107 523 23.0625 26.9550 61 41 0107 524 23.8125 26.9550 63 41 0107 525 21.1875 27.6046 56 42 0107 526 21.9375 27.6046 58 42 0107 527 21.5625 28.2541 57 43 0107 528 22.3125 28.2541 59 43 0107 529 22.6875 27.6046 60 42 0107 530 23.4375 27.6046 62 42 0107 531 23.0625 28.2541 61 43 0107 532 23.8125 28.2541 63 43 0107 533 18.1875 28.9036 48 44 0108 534 18.9375 28.9036 50 44 0108 535 18.5625 29.5531 49 45 0108 536 19.3125 29.5531 51 45 0108 537 19.6875 28.9036 52 44 0108 538 20.4375 28.9036 54 44 0108 539 20.0625 29.5531 53 45 0108 540 20.8125 29.5531 55 45 0108 541 18.1875 30.2026 48 46 0108 542 18.9375 30.2026 50 46 0108 543 18.5625 30.8522 49 47 0108 544 19.3125 30.8522 51 47 0108 545 19.6875 30.2026 52 46 0108 546 20.4375 30.2026 54 46 0108 547 20.0625 30.8522 53 47 0108 548 20.8125 30.8522 55 47 0108 549 15.1875 31.5017 40 48 0109 550 15.9375 31.5017 42 48 0109 551 15.5625 32.1512 41 49 0109 552 16.3125 32.1512 43 49 0109 553 16.6875 31.5017 44 48 0109 554 17.4375 31.5017 46 48 0109 555 17.0625 32.1512 45 49 0109 556 17.8125 32.1512 47 49 0109 557 15.1875 32.8007 40 50 0109 558 15.9375 32.8007 42 50 0109 559 15.5625 33.4502 41 51 0109 560 16.3125 33.4502 43 51 0109 561 16.6875 32.8007 44 50 0109 562 17.4375 32.8007 46 50 0109 563 17.0625 33.4502 45 51 0109 564 17.8125 33.4502 47 51 0109 565 24.1875 26.3055 64 40 0110 566 24.9375 26.3055 66 40 0110 567 24.5625 26.9550 65 41 0110 568 25.3125 26.9550 67 41 0110 569 25.6875 26.3055 68 40 0110 570 26.4375 26.3055 70 40 0110 571 26.0625 26.9550 69 41 0110 572 26.8125 26.9550 71 41 0110 573 24.1875 27.6046 64 42 0110 574 24.9375 27.6046 66 42 0110 575 24.5625 28.2541 65 43 0110 576 25.3125 28.2541 67 43 0110 577 25.6875 27.6046 68 42 0110 578 26.4375 27.6046 70 42 0110 579 26.0625 28.2541 69 43 0110 580 26.8125 28.2541 71 43 0110 581 21.1875 28.9036 56 44 0111 582 21.9375 28.9036 58 44 0111 583 21.5625 29.5531 57 45 0111 584 22.3125 29.5531 59 45 0111 585 22.6875 28.9036 60 44 0111 586 23.4375 28.9036 62 44 0111 587 23.0625 29.5531 61 45 0111 588 23.8125 29.5531 63 45 0111 589 21.1875 30.2026 56 46 0111 590 21.9375 30.2026 58 46 0111 591 21.5625 30.8522 57 47 0111 592 22.3125 30.8522 59 47 0111 593 22.6875 30.2026 60 46 0111 594 23.4375 30.2026 62 46 0111 595 23.0625 30.8522 61 47 0111 596 23.8125 30.8522 63 47 0111 597 18.1875 31.5017 48 48 0112 598 18.9375 31.5017 50 48 0112 599 18.5625 32.1512 49 49 0112 600 19.3125 32.1512 51 49 0112 601 19.6875 31.5017 52 48 0112 602 20.4375 31.5017 54 48 0112 603 20.0625 32.1512 53 49 0112 604 20.8125 32.1512 55 49 0112 605 18.1875 32.8007 48 50 0112 606 18.9375 32.8007 50 50 0112 607 18.5625 33.4502 49 51 0112 608 19.3125 33.4502 51 51 0112 609 19.6875 32.8007 52 50 0112 610 20.4375 32.8007 54 50 0112 611 20.0625 33.4502 53 51 0112 612 20.8125 33.4502 55 51 0112 613 15.1875 34.0998 40 52 0113 614 15.9375 34.0998 42 52 0113 615 15.5625 34.7493 41 53 0113 616 16.3125 34.7493 43 53 0113 617 16.6875 34.0998 44 52 0113 618 17.4375 34.0998 46 52 0113 619 17.0625 34.7493 45 53 0113 620 17.8125 34.7493 47 53 0113 621 15.1875 35.3988 40 54 0113 622 15.9375 35.3988 42 54 0113 623 15.5625 36.0483 41 55 0113 624 16.3125 36.0483 43 55 0113 625 16.6875 35.3988 44 54 0113 626 17.4375 35.3988 46 54 0113 627 17.0625 36.0483 45 55 0113 628 17.8125 36.0483 47 55 0113 629 24.1875 28.9036 64 44 0114 630 24.9375 28.9036 66 44 0114 631 24.5625 29.5531 65 45 0114 632 25.3125 29.5531 67 45 0114 633 25.6875 28.9036 68 44 0114 634 26.4375 28.9036 70 44 0114 635 26.0625 29.5531 69 45 0114 636 26.8125 29.5531 71 45 0114 637 24.1875 30.2026 64 46 0114 638 24.9375 30.2026 66 46 0114 639 24.5625 30.8522 65 47 0114 640 25.3125 30.8522 67 47 0114 641 25.6875 30.2026 68 46 0114 642 26.4375 30.2026 70 46 0114 643 26.0625 30.8522 69 47 0114 644 26.8125 30.8522 71 47 0114 645 21.1875 31.5017 56 48 0115 646 21.9375 31.5017 58 48 0115 647 21.5625 32.1512 57 49 0115 648 22.3125 32.1512 59 49 0115 649 22.6875 31.5017 60 48 0115 650 23.4375 31.5017 62 48 0115 651 23.0625 32.1512 61 49 0115 652 23.8125 32.1512 63 49 0115 653 21.1875 32.8007 56 50 0115 654 21.9375 32.8007 58 50 0115 655 21.5625 33.4502 57 51 0115 656 22.3125 33.4502 59 51 0115 657 22.6875 32.8007 60 50 0115 658 23.4375 32.8007 62 50 0115 659 23.0625 33.4502 61 51 0115 660 23.8125 33.4502 63 51 0115 661 18.1875 34.0998 48 52 0116 662 18.9375 34.0998 50 52 0116 663 18.5625 34.7493 49 53 0116 664 19.3125 34.7493 51 53 0116 665 19.6875 34.0998 52 52 0116 666 20.4375 34.0998 54 52 0116 667 20.0625 34.7493 53 53 0116 668 20.8125 34.7493 55 53 0116 669 18.1875 35.3988 48 54 0116 670 18.9375 35.3988 50 54 0116 671 18.5625 36.0483 49 55 0116 672 19.3125 36.0483 51 55 0116 673 19.6875 35.3988 52 54 0116 674 20.4375 35.3988 54 54 0116 675 20.0625 36.0483 53 55 0116 676 20.8125 36.0483 55 55 0116 677 15.1875 36.6978 40 56 0117 678 15.9375 36.6978 42 56 0117 679 15.5625 37.3473 41 57 0117 680 16.3125 37.3473 43 57 0117 681 16.6875 36.6978 44 56 0117 682 17.4375 36.6978 46 56 0117 683 17.0625 37.3473 45 57 0117 684 17.8125 37.3473 47 57 0117 685 15.1875 37.9969 40 58 0117 686 15.9375 37.9969 42 58 0117 687 15.5625 38.6464 41 59 0117 688 16.3125 38.6464 43 59 0117 689 16.6875 37.9969 44 58 0117 690 17.4375 37.9969 46 58 0117 691 17.0625 38.6464 45 59 0117 692 17.8125 38.6464 47 59 0117 693 24.1875 31.5017 64 48 0118 694 24.9375 31.5017 66 48 0118 695 24.5625 32.1512 65 49 0118 696 25.3125 32.1512 67 49 0118 697 25.6875 31.5017 68 48 0118 698 26.4375 31.5017 70 48 0118 699 26.0625 32.1512 69 49 0118 700 26.8125 32.1512 71 49 0118 701 24.1875 32.8007 64 50 0118 702 24.9375 32.8007 66 50 0118 703 24.5625 33.4502 65 51 0118 704 25.3125 33.4502 67 51 0118 705 25.6875 32.8007 68 50 0118 706 26.4375 32.8007 70 50 0118 707 26.0625 33.4502 69 51 0118 708 26.8125 33.4502 71 51 0118 709 27.1875 28.9036 72 44 0119 710 27.9375 28.9036 74 44 0119 711 27.5625 29.5531 73 45 0119 712 28.3125 29.5531 75 45 0119 713 28.6875 28.9036 76 44 0119 714 29.4375 28.9036 78 44 0119 715 29.0625 29.5531 77 45 0119 716 29.8125 29.5531 79 45 0119 717 27.1875 30.2026 72 46 0119 718 27.9375 30.2026 74 46 0119 719 27.5625 30.8522 73 47 0119 720 28.3125 30.8522 75 47 0119 721 28.6875 30.2026 76 46 0119 722 29.4375 30.2026 78 46 0119 723 29.0625 30.8522 77 47 0119 724 29.8125 30.8522 79 47 0119 725 21.1875 34.0998 56 52 0120 726 21.9375 34.0998 58 52 0120 727 21.5625 34.7493 57 53 0120 728 22.3125 34.7493 59 53 0120 729 22.6875 34.0998 60 52 0120 730 23.4375 34.0998 62 52 0120 731 23.0625 34.7493 61 53 0120 732 23.8125 34.7493 63 53 0120 733 21.1875 35.3988 56 54 0120 734 21.9375 35.3988 58 54 0120 735 21.5625 36.0483 57 55 0120 736 22.3125 36.0483 59 55 0120 737 22.6875 35.3988 60 54 0120 738 23.4375 35.3988 62 54 0120 739 23.0625 36.0483 61 55 0120 740 23.8125 36.0483 63 55 0120 741 18.1875 36.6978 48 56 0121 742 18.9375 36.6978 50 56 0121 743 18.5625 37.3473 49 57 0121 744 19.3125 37.3473 51 57 0121 745 19.6875 36.6978 52 56 0121 746 20.4375 36.6978 54 56 0121 747 20.0625 37.3473 53 57 0121 748 20.8125 37.3473 55 57 0121 749 18.1875 37.9969 48 58 0121 750 18.9375 37.9969 50 58 0121 751 18.5625 38.6464 49 59 0121 752 19.3125 38.6464 51 59 0121 753 19.6875 37.9969 52 58 0121 754 20.4375 37.9969 54 58 0121 755 20.0625 38.6464 53 59 0121 756 20.8125 38.6464 55 59 0121 757 25.3125 34.7493 67 53 0122 758 24.1875 34.0998 64 52 0122 759 24.9375 34.0998 66 52 0122 760 25.6875 34.0998 68 52 0122 761 21.5625 37.3473 57 57 0123 762 21.1875 36.6978 56 56 0123 763 21.9375 36.6978 58 56 0123 764 22.6875 36.6978 60 56 0123 765 24.5625 34.7493 65 53 0124 766 24.1875 35.3988 64 54 0124 767 24.9375 35.3988 66 54 0124 768 24.5625 36.0483 65 55 0124 769 27.1875 31.5017 72 48 0125 770 27.9375 31.5017 74 48 0125 771 27.5625 32.1512 73 49 0125 772 28.3125 32.1512 75 49 0125 773 29.0625 32.1512 77 49 0125 774 28.6875 31.5017 76 48 0125 775 29.4375 31.5017 78 48 0125 776 30.1875 31.5017 80 48 0125 777 27.1875 32.8007 72 50 0125 778 27.9375 32.8007 74 50 0125 779 27.5625 33.4502 73 51 0125 780 28.3125 33.4502 75 51 0125 781 28.6875 32.8007 76 50 0125 782 29.0625 33.4502 77 51 0125 783 29.4375 32.8007 78 50 0125 784 29.8125 32.1512 79 49 0125 785 26.0625 34.7493 69 53 0126 786 26.4375 34.0998 70 52 0126 787 26.8125 34.7493 71 53 0126 788 27.1875 35.3988 72 54 0126 789 21.1875 37.9969 56 58 0127 790 21.5625 38.6464 57 59 0127 791 21.9375 37.9969 58 58 0127 792 22.3125 37.3473 59 57 0127 793 19.3125 39.9454 51 61 0128 794 18.9375 39.2959 50 60 0128 795 18.5625 39.9454 49 61 0128 796 18.1875 40.5949 48 62 0128 797 27.5625 34.7493 73 53 0129 798 27.1875 34.0998 72 52 0129 799 27.9375 34.0998 74 52 0129 800 28.6875 34.0998 76 52 0129 801 20.0625 39.9454 53 61 0130 802 19.6875 39.2959 52 60 0130 803 20.4375 39.2959 54 60 0130 804 21.1875 39.2959 56 60 0130 805 31.6875 31.5017 84 48 0131 806 30.9375 31.5017 82 48 0131 807 30.5625 32.1512 81 49 0131 808 30.1875 32.8007 80 50 0131 809 3.9375 6.8200 10 10 0200 810 3.5625 7.4695 9 11 0200 811 2.8125 7.4695 7 11 0200 812 2.0625 7.4695 5 11 0200 813 1.6875 8.1190 4 12 0201 814 2.4375 8.1190 6 12 0201 815 2.0625 8.7685 5 13 0201 816 2.8125 8.7685 7 13 0201 817 3.1875 8.1190 8 12 0202 818 3.9375 8.1190 10 12 0202 819 3.5625 8.7685 9 13 0202 820 4.3125 8.7685 11 13 0202 821 1.6875 9.4180 4 14 0203 822 2.4375 9.4180 6 14 0203 823 2.0625 10.0675 5 15 0203 824 2.8125 10.0675 7 15 0203 825 3.1875 9.4180 8 14 0204 826 3.9375 9.4180 10 14 0204 827 3.5625 10.0675 9 15 0204 828 4.3125 10.0675 11 15 0204 829 3.1875 10.7171 8 16 0205 830 3.9375 10.7171 10 16 0205 831 3.5625 11.3666 9 17 0205 832 4.3125 11.3666 11 17 0205 833 4.6875 10.7171 12 16 0205 834 5.4375 10.7171 14 16 0205 835 5.0625 11.3666 13 17 0205 836 5.8125 11.3666 15 17 0205 837 3.1875 12.0161 8 18 0205 838 3.9375 12.0161 10 18 0205 839 3.5625 12.6656 9 19 0205 840 4.3125 12.6656 11 19 0205 841 4.6875 12.0161 12 18 0205 842 5.4375 12.0161 14 18 0205 843 5.0625 12.6656 13 19 0205 844 5.8125 12.6656 15 19 0205 845 3.1875 13.3151 8 20 0206 846 3.9375 13.3151 10 20 0206 847 3.5625 13.9647 9 21 0206 848 4.3125 13.9647 11 21 0206 849 4.6875 13.3151 12 20 0206 850 5.4375 13.3151 14 20 0206 851 5.0625 13.9647 13 21 0206 852 5.8125 13.9647 15 21 0206 853 3.1875 14.6142 8 22 0206 854 3.9375 14.6142 10 22 0206 855 3.5625 15.2637 9 23 0206 856 4.3125 15.2637 11 23 0206 857 4.6875 14.6142 12 22 0206 858 5.4375 14.6142 14 22 0206 859 5.0625 15.2637 13 23 0206 860 5.8125 15.2637 15 23 0206 861 3.1875 15.9132 8 24 0207 862 3.9375 15.9132 10 24 0207 863 3.5625 16.5627 9 25 0207 864 4.3125 16.5627 11 25 0207 865 4.6875 15.9132 12 24 0207 866 5.4375 15.9132 14 24 0207 867 5.0625 16.5627 13 25 0207 868 5.8125 16.5627 15 25 0207 869 3.1875 17.2123 8 26 0207 870 3.9375 17.2123 10 26 0207 871 3.5625 17.8618 9 27 0207 872 4.3125 17.8618 11 27 0207 873 4.6875 17.2123 12 26 0207 874 5.4375 17.2123 14 26 0207 875 5.0625 17.8618 13 27 0207 876 5.8125 17.8618 15 27 0207 877 3.1875 18.5113 8 28 0208 878 3.9375 18.5113 10 28 0208 879 3.5625 19.1608 9 29 0208 880 4.3125 19.1608 11 29 0208 881 4.6875 18.5113 12 28 0208 882 5.4375 18.5113 14 28 0208 883 5.0625 19.1608 13 29 0208 884 5.8125 19.1608 15 29 0208 885 3.1875 19.8103 8 30 0208 886 3.9375 19.8103 10 30 0208 887 3.5625 20.4599 9 31 0208 888 4.3125 20.4599 11 31 0208 889 4.6875 19.8103 12 30 0208 890 5.4375 19.8103 14 30 0208 891 5.0625 20.4599 13 31 0208 892 5.8125 20.4599 15 31 0208 893 3.1875 21.1094 8 32 0209 894 3.9375 21.1094 10 32 0209 895 3.5625 21.7589 9 33 0209 896 4.3125 21.7589 11 33 0209 897 4.6875 21.1094 12 32 0209 898 5.4375 21.1094 14 32 0209 899 5.0625 21.7589 13 33 0209 900 5.8125 21.7589 15 33 0209 901 3.1875 22.4084 8 34 0209 902 3.9375 22.4084 10 34 0209 903 3.5625 23.0579 9 35 0209 904 4.3125 23.0579 11 35 0209 905 4.6875 22.4084 12 34 0209 906 5.4375 22.4084 14 34 0209 907 5.0625 23.0579 13 35 0209 908 5.8125 23.0579 15 35 0209 909 6.1875 26.3055 16 40 0210 910 6.9375 26.3055 18 40 0210 911 6.5625 26.9550 17 41 0210 912 7.3125 26.9550 19 41 0210 913 7.6875 26.3055 20 40 0210 914 8.4375 26.3055 22 40 0210 915 8.0625 26.9550 21 41 0210 916 8.8125 26.9550 23 41 0210 917 6.1875 27.6046 16 42 0210 918 6.9375 27.6046 18 42 0210 919 6.5625 28.2541 17 43 0210 920 7.3125 28.2541 19 43 0210 921 7.6875 27.6046 20 42 0210 922 8.4375 27.6046 22 42 0210 923 8.0625 28.2541 21 43 0210 924 8.8125 28.2541 23 43 0210 925 9.1875 26.3055 24 40 0211 926 9.9375 26.3055 26 40 0211 927 9.5625 26.9550 25 41 0211 928 10.3125 26.9550 27 41 0211 929 10.6875 26.3055 28 40 0211 930 11.4375 26.3055 30 40 0211 931 11.0625 26.9550 29 41 0211 932 11.8125 26.9550 31 41 0211 933 9.1875 27.6046 24 42 0211 934 9.9375 27.6046 26 42 0211 935 9.5625 28.2541 25 43 0211 936 10.3125 28.2541 27 43 0211 937 10.6875 27.6046 28 42 0211 938 11.4375 27.6046 30 42 0211 939 11.0625 28.2541 29 43 0211 940 11.8125 28.2541 31 43 0211 941 6.1875 28.9036 16 44 0212 942 6.9375 28.9036 18 44 0212 943 6.5625 29.5531 17 45 0212 944 7.3125 29.5531 19 45 0212 945 7.6875 28.9036 20 44 0212 946 8.4375 28.9036 22 44 0212 947 8.0625 29.5531 21 45 0212 948 8.8125 29.5531 23 45 0212 949 6.1875 30.2026 16 46 0212 950 6.9375 30.2026 18 46 0212 951 6.5625 30.8522 17 47 0212 952 7.3125 30.8522 19 47 0212 953 7.6875 30.2026 20 46 0212 954 8.4375 30.2026 22 46 0212 955 8.0625 30.8522 21 47 0212 956 8.8125 30.8522 23 47 0212 957 9.1875 28.9036 24 44 0213 958 9.9375 28.9036 26 44 0213 959 9.5625 29.5531 25 45 0213 960 10.3125 29.5531 27 45 0213 961 10.6875 28.9036 28 44 0213 962 11.4375 28.9036 30 44 0213 963 11.0625 29.5531 29 45 0213 964 11.8125 29.5531 31 45 0213 965 9.1875 30.2026 24 46 0213 966 9.9375 30.2026 26 46 0213 967 9.5625 30.8522 25 47 0213 968 10.3125 30.8522 27 47 0213 969 10.6875 30.2026 28 46 0213 970 11.4375 30.2026 30 46 0213 971 11.0625 30.8522 29 47 0213 972 11.8125 30.8522 31 47 0213 973 6.1875 31.5017 16 48 0214 974 6.9375 31.5017 18 48 0214 975 6.5625 32.1512 17 49 0214 976 7.3125 32.1512 19 49 0214 977 7.6875 31.5017 20 48 0214 978 8.4375 31.5017 22 48 0214 979 8.0625 32.1512 21 49 0214 980 8.8125 32.1512 23 49 0214 981 6.1875 32.8007 16 50 0214 982 6.9375 32.8007 18 50 0214 983 6.5625 33.4502 17 51 0214 984 7.3125 33.4502 19 51 0214 985 7.6875 32.8007 20 50 0214 986 8.4375 32.8007 22 50 0214 987 8.0625 33.4502 21 51 0214 988 8.8125 33.4502 23 51 0214 989 9.1875 31.5017 24 48 0215 990 9.9375 31.5017 26 48 0215 991 9.5625 32.1512 25 49 0215 992 10.3125 32.1512 27 49 0215 993 10.6875 31.5017 28 48 0215 994 11.4375 31.5017 30 48 0215 995 11.0625 32.1512 29 49 0215 996 11.8125 32.1512 31 49 0215 997 9.1875 32.8007 24 50 0215 998 9.9375 32.8007 26 50 0215 999 9.5625 33.4502 25 51 0215 1000 10.3125 33.4502 27 51 0215 1001 10.6875 32.8007 28 50 0215 1002 11.4375 32.8007 30 50 0215 1003 11.0625 33.4502 29 51 0215 1004 11.8125 33.4502 31 51 0215 1005 12.1875 31.5017 32 48 0216 1006 12.9375 31.5017 34 48 0216 1007 12.5625 32.1512 33 49 0216 1008 13.3125 32.1512 35 49 0216 1009 13.6875 31.5017 36 48 0216 1010 14.4375 31.5017 38 48 0216 1011 14.0625 32.1512 37 49 0216 1012 14.8125 32.1512 39 49 0216 1013 12.1875 32.8007 32 50 0216 1014 12.9375 32.8007 34 50 0216 1015 12.5625 33.4502 33 51 0216 1016 13.3125 33.4502 35 51 0216 1017 13.6875 32.8007 36 50 0216 1018 14.4375 32.8007 38 50 0216 1019 14.0625 33.4502 37 51 0216 1020 14.8125 33.4502 39 51 0216 1021 6.1875 34.0998 16 52 0217 1022 6.9375 34.0998 18 52 0217 1023 6.5625 34.7493 17 53 0217 1024 7.3125 34.7493 19 53 0217 1025 7.6875 34.0998 20 52 0217 1026 8.4375 34.0998 22 52 0217 1027 8.0625 34.7493 21 53 0217 1028 8.8125 34.7493 23 53 0217 1029 6.1875 35.3988 16 54 0217 1030 6.9375 35.3988 18 54 0217 1031 6.5625 36.0483 17 55 0217 1032 7.3125 36.0483 19 55 0217 1033 7.6875 35.3988 20 54 0217 1034 8.4375 35.3988 22 54 0217 1035 8.0625 36.0483 21 55 0217 1036 8.8125 36.0483 23 55 0217 1037 9.1875 34.0998 24 52 0218 1038 9.9375 34.0998 26 52 0218 1039 9.5625 34.7493 25 53 0218 1040 10.3125 34.7493 27 53 0218 1041 10.6875 34.0998 28 52 0218 1042 11.4375 34.0998 30 52 0218 1043 11.0625 34.7493 29 53 0218 1044 11.8125 34.7493 31 53 0218 1045 9.1875 35.3988 24 54 0218 1046 9.9375 35.3988 26 54 0218 1047 9.5625 36.0483 25 55 0218 1048 10.3125 36.0483 27 55 0218 1049 10.6875 35.3988 28 54 0218 1050 11.4375 35.3988 30 54 0218 1051 11.0625 36.0483 29 55 0218 1052 11.8125 36.0483 31 55 0218 1053 12.1875 34.0998 32 52 0219 1054 12.9375 34.0998 34 52 0219 1055 12.5625 34.7493 33 53 0219 1056 13.3125 34.7493 35 53 0219 1057 13.6875 34.0998 36 52 0219 1058 14.4375 34.0998 38 52 0219 1059 14.0625 34.7493 37 53 0219 1060 14.8125 34.7493 39 53 0219 1061 12.1875 35.3988 32 54 0219 1062 12.9375 35.3988 34 54 0219 1063 12.5625 36.0483 33 55 0219 1064 13.3125 36.0483 35 55 0219 1065 13.6875 35.3988 36 54 0219 1066 14.4375 35.3988 38 54 0219 1067 14.0625 36.0483 37 55 0219 1068 14.8125 36.0483 39 55 0219 1069 6.1875 36.6978 16 56 0220 1070 6.9375 36.6978 18 56 0220 1071 6.5625 37.3473 17 57 0220 1072 7.3125 37.3473 19 57 0220 1073 7.6875 36.6978 20 56 0220 1074 8.4375 36.6978 22 56 0220 1075 8.0625 37.3473 21 57 0220 1076 8.8125 37.3473 23 57 0220 1077 6.1875 37.9969 16 58 0220 1078 6.9375 37.9969 18 58 0220 1079 6.5625 38.6464 17 59 0220 1080 7.3125 38.6464 19 59 0220 1081 7.6875 37.9969 20 58 0220 1082 8.4375 37.9969 22 58 0220 1083 8.0625 38.6464 21 59 0220 1084 8.8125 38.6464 23 59 0220 1085 9.1875 36.6978 24 56 0221 1086 9.9375 36.6978 26 56 0221 1087 9.5625 37.3473 25 57 0221 1088 10.3125 37.3473 27 57 0221 1089 10.6875 36.6978 28 56 0221 1090 11.4375 36.6978 30 56 0221 1091 11.0625 37.3473 29 57 0221 1092 11.8125 37.3473 31 57 0221 1093 9.1875 37.9969 24 58 0221 1094 9.9375 37.9969 26 58 0221 1095 9.5625 38.6464 25 59 0221 1096 10.3125 38.6464 27 59 0221 1097 10.6875 37.9969 28 58 0221 1098 11.4375 37.9969 30 58 0221 1099 11.0625 38.6464 29 59 0221 1100 11.8125 38.6464 31 59 0221 1101 12.1875 36.6978 32 56 0222 1102 12.9375 36.6978 34 56 0222 1103 12.5625 37.3473 33 57 0222 1104 13.3125 37.3473 35 57 0222 1105 13.6875 36.6978 36 56 0222 1106 14.4375 36.6978 38 56 0222 1107 14.0625 37.3473 37 57 0222 1108 14.8125 37.3473 39 57 0222 1109 12.1875 37.9969 32 58 0222 1110 12.9375 37.9969 34 58 0222 1111 12.5625 38.6464 33 59 0222 1112 13.3125 38.6464 35 59 0222 1113 13.6875 37.9969 36 58 0222 1114 14.4375 37.9969 38 58 0222 1115 14.0625 38.6464 37 59 0222 1116 14.8125 38.6464 39 59 0222 1117 9.1875 39.2959 24 60 0223 1118 9.9375 39.2959 26 60 0223 1119 9.5625 39.9454 25 61 0223 1120 10.3125 39.9454 27 61 0223 1121 10.6875 39.2959 28 60 0223 1122 11.4375 39.2959 30 60 0223 1123 11.0625 39.9454 29 61 0223 1124 11.8125 39.9454 31 61 0223 1125 9.1875 40.5949 24 62 0223 1126 9.9375 40.5949 26 62 0223 1127 9.5625 41.2445 25 63 0223 1128 10.3125 41.2445 27 63 0223 1129 10.6875 40.5949 28 62 0223 1130 11.4375 40.5949 30 62 0223 1131 11.0625 41.2445 29 63 0223 1132 11.8125 41.2445 31 63 0223 1133 12.1875 39.2959 32 60 0224 1134 12.9375 39.2959 34 60 0224 1135 12.5625 39.9454 33 61 0224 1136 13.3125 39.9454 35 61 0224 1137 13.6875 39.2959 36 60 0224 1138 14.4375 39.2959 38 60 0224 1139 14.0625 39.9454 37 61 0224 1140 14.8125 39.9454 39 61 0224 1141 12.1875 40.5949 32 62 0224 1142 12.9375 40.5949 34 62 0224 1143 12.5625 41.2445 33 63 0224 1144 13.3125 41.2445 35 63 0224 1145 13.6875 40.5949 36 62 0224 1146 14.4375 40.5949 38 62 0224 1147 14.0625 41.2445 37 63 0224 1148 14.8125 41.2445 39 63 0224 1149 9.1875 41.8940 24 64 0225 1150 9.9375 41.8940 26 64 0225 1151 9.5625 42.5435 25 65 0225 1152 8.8125 42.5435 23 65 0225 1153 15.1875 39.2959 40 60 0226 1154 15.9375 39.2959 42 60 0226 1155 15.5625 39.9454 41 61 0226 1156 16.3125 39.9454 43 61 0226 1157 17.0625 39.9454 45 61 0226 1158 16.6875 39.2959 44 60 0226 1159 17.4375 39.2959 46 60 0226 1160 18.1875 39.2959 48 60 0226 1161 15.1875 40.5949 40 62 0226 1162 15.9375 40.5949 42 62 0226 1163 15.5625 41.2445 41 63 0226 1164 16.3125 41.2445 43 63 0226 1165 16.6875 40.5949 44 62 0226 1166 17.0625 41.2445 45 63 0226 1167 17.4375 40.5949 46 62 0226 1168 17.8125 39.9454 47 61 0226 1169 10.6875 41.8940 28 64 0227 1170 11.4375 41.8940 30 64 0227 1171 11.0625 42.5435 29 65 0227 1172 11.8125 42.5435 31 65 0227 1173 12.1875 41.8940 32 64 0228 1174 12.9375 41.8940 34 64 0228 1175 12.5625 42.5435 33 65 0228 1176 13.3125 42.5435 35 65 0228 1177 13.6875 41.8940 36 64 0229 1178 14.4375 41.8940 38 64 0229 1179 15.1875 41.8940 40 64 0229 1180 7.6875 1.6238 20 2 0300 1181 8.4375 1.6238 22 2 0300 1182 8.0625 2.2733 21 3 0300 1183 8.8125 2.2733 23 3 0300 1184 7.6875 2.9228 20 4 0301 1185 8.4375 2.9228 22 4 0301 1186 8.0625 3.5724 21 5 0301 1187 8.8125 3.5724 23 5 0301 1188 9.1875 1.6238 24 2 0302 1189 9.9375 1.6238 26 2 0302 1190 9.5625 2.2733 25 3 0302 1191 10.3125 2.2733 27 3 0302 1192 9.1875 2.9228 24 4 0303 1193 9.9375 2.9228 26 4 0303 1194 9.5625 3.5724 25 5 0303 1195 10.3125 3.5724 27 5 0303 1196 10.6875 2.9228 28 4 0304 1197 11.4375 2.9228 30 4 0304 1198 11.0625 3.5724 29 5 0304 1199 11.8125 3.5724 31 5 0304 1200 10.6875 4.2219 28 6 0305 1201 11.4375 4.2219 30 6 0305 1202 11.0625 4.8714 29 7 0305 1203 11.8125 4.8714 31 7 0305 1204 12.1875 2.9228 32 4 0306 1205 12.9375 2.9228 34 4 0306 1206 12.5625 3.5724 33 5 0306 1207 13.3125 3.5724 35 5 0306 1208 13.6875 2.9228 36 4 0306 1209 14.4375 2.9228 38 4 0306 1210 14.0625 3.5724 37 5 0306 1211 14.8125 3.5724 39 5 0306 1212 12.1875 4.2219 32 6 0306 1213 12.9375 4.2219 34 6 0306 1214 12.5625 4.8714 33 7 0306 1215 13.3125 4.8714 35 7 0306 1216 13.6875 4.2219 36 6 0306 1217 14.4375 4.2219 38 6 0306 1218 14.0625 4.8714 37 7 0306 1219 14.8125 4.8714 39 7 0306 1220 15.1875 2.9228 40 4 0307 1221 15.9375 2.9228 42 4 0307 1222 15.5625 3.5724 41 5 0307 1223 16.3125 3.5724 43 5 0307 1224 16.6875 2.9228 44 4 0307 1225 17.4375 2.9228 46 4 0307 1226 17.0625 3.5724 45 5 0307 1227 17.8125 3.5724 47 5 0307 1228 15.1875 4.2219 40 6 0307 1229 15.9375 4.2219 42 6 0307 1230 15.5625 4.8714 41 7 0307 1231 16.3125 4.8714 43 7 0307 1232 16.6875 4.2219 44 6 0307 1233 17.4375 4.2219 46 6 0307 1234 17.0625 4.8714 45 7 0307 1235 17.8125 4.8714 47 7 0307 1236 18.1875 2.9228 48 4 0308 1237 18.9375 2.9228 50 4 0308 1238 18.5625 3.5724 49 5 0308 1239 19.3125 3.5724 51 5 0308 1240 19.6875 2.9228 52 4 0308 1241 20.4375 2.9228 54 4 0308 1242 20.0625 3.5724 53 5 0308 1243 20.8125 3.5724 55 5 0308 1244 18.1875 4.2219 48 6 0308 1245 18.9375 4.2219 50 6 0308 1246 18.5625 4.8714 49 7 0308 1247 19.3125 4.8714 51 7 0308 1248 19.6875 4.2219 52 6 0308 1249 20.4375 4.2219 54 6 0308 1250 20.0625 4.8714 53 7 0308 1251 20.8125 4.8714 55 7 0308 1252 24.1875 5.5209 64 8 0309 1253 24.9375 5.5209 66 8 0309 1254 24.5625 6.1704 65 9 0309 1255 25.3125 6.1704 67 9 0309 1256 25.6875 5.5209 68 8 0309 1257 26.4375 5.5209 70 8 0309 1258 26.0625 6.1704 69 9 0309 1259 26.8125 6.1704 71 9 0309 1260 24.1875 6.8200 64 10 0309 1261 24.9375 6.8200 66 10 0309 1262 24.5625 7.4695 65 11 0309 1263 25.3125 7.4695 67 11 0309 1264 25.6875 6.8200 68 10 0309 1265 26.4375 6.8200 70 10 0309 1266 26.0625 7.4695 69 11 0309 1267 26.8125 7.4695 71 11 0309 1268 27.1875 5.5209 72 8 0310 1269 27.9375 5.5209 74 8 0310 1270 27.5625 6.1704 73 9 0310 1271 28.3125 6.1704 75 9 0310 1272 28.6875 5.5209 76 8 0310 1273 29.4375 5.5209 78 8 0310 1274 29.0625 6.1704 77 9 0310 1275 29.8125 6.1704 79 9 0310 1276 27.1875 6.8200 72 10 0310 1277 27.9375 6.8200 74 10 0310 1278 27.5625 7.4695 73 11 0310 1279 28.3125 7.4695 75 11 0310 1280 28.6875 6.8200 76 10 0310 1281 29.4375 6.8200 78 10 0310 1282 29.0625 7.4695 77 11 0310 1283 29.8125 7.4695 79 11 0310 1284 27.1875 8.1190 72 12 0311 1285 27.9375 8.1190 74 12 0311 1286 27.5625 8.7685 73 13 0311 1287 28.3125 8.7685 75 13 0311 1288 28.6875 8.1190 76 12 0311 1289 29.4375 8.1190 78 12 0311 1290 29.0625 8.7685 77 13 0311 1291 29.8125 8.7685 79 13 0311 1292 27.1875 9.4180 72 14 0311 1293 27.9375 9.4180 74 14 0311 1294 27.5625 10.0675 73 15 0311 1295 28.3125 10.0675 75 15 0311 1296 28.6875 9.4180 76 14 0311 1297 29.4375 9.4180 78 14 0311 1298 29.0625 10.0675 77 15 0311 1299 29.8125 10.0675 79 15 0311 1300 27.1875 10.7171 72 16 0312 1301 27.9375 10.7171 74 16 0312 1302 27.5625 11.3666 73 17 0312 1303 28.3125 11.3666 75 17 0312 1304 28.6875 10.7171 76 16 0312 1305 29.4375 10.7171 78 16 0312 1306 29.0625 11.3666 77 17 0312 1307 29.8125 11.3666 79 17 0312 1308 27.1875 12.0161 72 18 0312 1309 27.9375 12.0161 74 18 0312 1310 27.5625 12.6656 73 19 0312 1311 28.3125 12.6656 75 19 0312 1312 28.6875 12.0161 76 18 0312 1313 29.4375 12.0161 78 18 0312 1314 29.0625 12.6656 77 19 0312 1315 29.8125 12.6656 79 19 0312 1316 30.1875 5.5209 80 8 0313 1317 30.9375 5.5209 82 8 0313 1318 30.5625 6.1704 81 9 0313 1319 31.3125 6.1704 83 9 0313 1320 31.6875 5.5209 84 8 0313 1321 32.4375 5.5209 86 8 0313 1322 32.0625 6.1704 85 9 0313 1323 32.8125 6.1704 87 9 0313 1324 30.1875 6.8200 80 10 0313 1325 30.9375 6.8200 82 10 0313 1326 30.5625 7.4695 81 11 0313 1327 31.3125 7.4695 83 11 0313 1328 31.6875 6.8200 84 10 0313 1329 32.4375 6.8200 86 10 0313 1330 32.0625 7.4695 85 11 0313 1331 32.8125 7.4695 87 11 0313 1332 30.1875 8.1190 80 12 0314 1333 30.9375 8.1190 82 12 0314 1334 30.5625 8.7685 81 13 0314 1335 31.3125 8.7685 83 13 0314 1336 31.6875 8.1190 84 12 0314 1337 32.4375 8.1190 86 12 0314 1338 32.0625 8.7685 85 13 0314 1339 32.8125 8.7685 87 13 0314 1340 30.1875 9.4180 80 14 0314 1341 30.9375 9.4180 82 14 0314 1342 30.5625 10.0675 81 15 0314 1343 31.3125 10.0675 83 15 0314 1344 31.6875 9.4180 84 14 0314 1345 32.4375 9.4180 86 14 0314 1346 32.0625 10.0675 85 15 0314 1347 32.8125 10.0675 87 15 0314 1348 30.1875 10.7171 80 16 0315 1349 30.9375 10.7171 82 16 0315 1350 30.5625 11.3666 81 17 0315 1351 31.3125 11.3666 83 17 0315 1352 31.6875 10.7171 84 16 0315 1353 32.4375 10.7171 86 16 0315 1354 32.0625 11.3666 85 17 0315 1355 32.8125 11.3666 87 17 0315 1356 30.1875 12.0161 80 18 0315 1357 30.9375 12.0161 82 18 0315 1358 30.5625 12.6656 81 19 0315 1359 31.3125 12.6656 83 19 0315 1360 31.6875 12.0161 84 18 0315 1361 32.4375 12.0161 86 18 0315 1362 32.0625 12.6656 85 19 0315 1363 32.8125 12.6656 87 19 0315 1364 33.1875 5.5209 88 8 0316 1365 33.9375 5.5209 90 8 0316 1366 33.5625 6.1704 89 9 0316 1367 34.3125 6.1704 91 9 0316 1368 34.6875 5.5209 92 8 0316 1369 35.4375 5.5209 94 8 0316 1370 35.0625 6.1704 93 9 0316 1371 35.8125 6.1704 95 9 0316 1372 33.1875 6.8200 88 10 0316 1373 33.9375 6.8200 90 10 0316 1374 33.5625 7.4695 89 11 0316 1375 34.3125 7.4695 91 11 0316 1376 34.6875 6.8200 92 10 0316 1377 35.4375 6.8200 94 10 0316 1378 35.0625 7.4695 93 11 0316 1379 35.8125 7.4695 95 11 0316 1380 33.1875 8.1190 88 12 0317 1381 33.9375 8.1190 90 12 0317 1382 33.5625 8.7685 89 13 0317 1383 34.3125 8.7685 91 13 0317 1384 34.6875 8.1190 92 12 0317 1385 35.4375 8.1190 94 12 0317 1386 35.0625 8.7685 93 13 0317 1387 35.8125 8.7685 95 13 0317 1388 33.1875 9.4180 88 14 0317 1389 33.9375 9.4180 90 14 0317 1390 33.5625 10.0675 89 15 0317 1391 34.3125 10.0675 91 15 0317 1392 34.6875 9.4180 92 14 0317 1393 35.4375 9.4180 94 14 0317 1394 35.0625 10.0675 93 15 0317 1395 35.8125 10.0675 95 15 0317 1396 33.1875 10.7171 88 16 0318 1397 33.9375 10.7171 90 16 0318 1398 33.5625 11.3666 89 17 0318 1399 34.3125 11.3666 91 17 0318 1400 34.6875 10.7171 92 16 0318 1401 35.4375 10.7171 94 16 0318 1402 35.0625 11.3666 93 17 0318 1403 35.8125 11.3666 95 17 0318 1404 33.1875 12.0161 88 18 0318 1405 33.9375 12.0161 90 18 0318 1406 33.5625 12.6656 89 19 0318 1407 34.3125 12.6656 91 19 0318 1408 34.6875 12.0161 92 18 0318 1409 35.4375 12.0161 94 18 0318 1410 35.0625 12.6656 93 19 0318 1411 35.8125 12.6656 95 19 0318 1412 33.1875 13.3151 88 20 0319 1413 33.9375 13.3151 90 20 0319 1414 33.5625 13.9647 89 21 0319 1415 34.3125 13.9647 91 21 0319 1416 34.6875 13.3151 92 20 0319 1417 35.4375 13.3151 94 20 0319 1418 35.0625 13.9647 93 21 0319 1419 35.8125 13.9647 95 21 0319 1420 33.1875 14.6142 88 22 0319 1421 33.9375 14.6142 90 22 0319 1422 33.5625 15.2637 89 23 0319 1423 34.3125 15.2637 91 23 0319 1424 34.6875 14.6142 92 22 0319 1425 35.4375 14.6142 94 22 0319 1426 35.0625 15.2637 93 23 0319 1427 35.8125 15.2637 95 23 0319 1428 36.1875 8.1190 96 12 0320 1429 36.9375 8.1190 98 12 0320 1430 36.5625 8.7685 97 13 0320 1431 37.3125 8.7685 99 13 0320 1432 37.6875 8.1190 100 12 0320 1433 38.4375 8.1190 102 12 0320 1434 38.0625 8.7685 101 13 0320 1435 38.8125 8.7685 103 13 0320 1436 36.1875 9.4180 96 14 0320 1437 36.9375 9.4180 98 14 0320 1438 36.5625 10.0675 97 15 0320 1439 37.3125 10.0675 99 15 0320 1440 37.6875 9.4180 100 14 0320 1441 38.4375 9.4180 102 14 0320 1442 38.0625 10.0675 101 15 0320 1443 38.8125 10.0675 103 15 0320 1444 36.1875 10.7171 96 16 0321 1445 36.9375 10.7171 98 16 0321 1446 36.5625 11.3666 97 17 0321 1447 37.3125 11.3666 99 17 0321 1448 37.6875 10.7171 100 16 0321 1449 38.4375 10.7171 102 16 0321 1450 38.0625 11.3666 101 17 0321 1451 38.8125 11.3666 103 17 0321 1452 36.1875 12.0161 96 18 0321 1453 36.9375 12.0161 98 18 0321 1454 36.5625 12.6656 97 19 0321 1455 37.3125 12.6656 99 19 0321 1456 37.6875 12.0161 100 18 0321 1457 38.4375 12.0161 102 18 0321 1458 38.0625 12.6656 101 19 0321 1459 38.8125 12.6656 103 19 0321 1460 36.1875 13.3151 96 20 0322 1461 36.9375 13.3151 98 20 0322 1462 36.5625 13.9647 97 21 0322 1463 37.3125 13.9647 99 21 0322 1464 37.6875 13.3151 100 20 0322 1465 38.4375 13.3151 102 20 0322 1466 38.0625 13.9647 101 21 0322 1467 38.8125 13.9647 103 21 0322 1468 36.1875 14.6142 96 22 0322 1469 36.9375 14.6142 98 22 0322 1470 36.5625 15.2637 97 23 0322 1471 37.3125 15.2637 99 23 0322 1472 37.6875 14.6142 100 22 0322 1473 38.4375 14.6142 102 22 0322 1474 38.0625 15.2637 101 23 0322 1475 38.8125 15.2637 103 23 0322 1476 36.1875 15.9132 96 24 0323 1477 36.9375 15.9132 98 24 0323 1478 36.5625 16.5627 97 25 0323 1479 37.3125 16.5627 99 25 0323 1480 37.6875 15.9132 100 24 0323 1481 38.4375 15.9132 102 24 0323 1482 38.0625 16.5627 101 25 0323 1483 38.8125 16.5627 103 25 0323 1484 36.1875 17.2123 96 26 0323 1485 36.9375 17.2123 98 26 0323 1486 36.5625 17.8618 97 27 0323 1487 37.3125 17.8618 99 27 0323 1488 37.6875 17.2123 100 26 0323 1489 38.4375 17.2123 102 26 0323 1490 38.0625 17.8618 101 27 0323 1491 38.8125 17.8618 103 27 0323 1492 39.1875 8.1190 104 12 0324 1493 39.9375 8.1190 106 12 0324 1494 39.5625 8.7685 105 13 0324 1495 40.3125 8.7685 107 13 0324 1496 40.6875 8.1190 108 12 0324 1497 41.4375 8.1190 110 12 0324 1498 41.0625 8.7685 109 13 0324 1499 41.8125 8.7685 111 13 0324 1500 39.1875 9.4180 104 14 0324 1501 39.9375 9.4180 106 14 0324 1502 39.5625 10.0675 105 15 0324 1503 40.3125 10.0675 107 15 0324 1504 40.6875 9.4180 108 14 0324 1505 41.4375 9.4180 110 14 0324 1506 41.0625 10.0675 109 15 0324 1507 41.8125 10.0675 111 15 0324 1508 39.1875 10.7171 104 16 0325 1509 39.9375 10.7171 106 16 0325 1510 39.5625 11.3666 105 17 0325 1511 40.3125 11.3666 107 17 0325 1512 40.6875 10.7171 108 16 0325 1513 41.4375 10.7171 110 16 0325 1514 41.0625 11.3666 109 17 0325 1515 41.8125 11.3666 111 17 0325 1516 39.1875 12.0161 104 18 0325 1517 39.9375 12.0161 106 18 0325 1518 39.5625 12.6656 105 19 0325 1519 40.3125 12.6656 107 19 0325 1520 40.6875 12.0161 108 18 0325 1521 41.4375 12.0161 110 18 0325 1522 41.0625 12.6656 109 19 0325 1523 41.8125 12.6656 111 19 0325 1524 39.1875 15.9132 104 24 0326 1525 39.9375 15.9132 106 24 0326 1526 39.5625 16.5627 105 25 0326 1527 40.3125 16.5627 107 25 0326 1528 39.1875 13.3151 104 20 0327 1529 39.9375 13.3151 106 20 0327 1530 39.5625 13.9647 105 21 0327 1531 40.3125 13.9647 107 21 0327 1532 40.6875 13.3151 108 20 0327 1533 41.4375 13.3151 110 20 0327 1534 41.0625 13.9647 109 21 0327 1535 41.8125 13.9647 111 21 0327 1536 39.1875 14.6142 104 22 0327 1537 39.9375 14.6142 106 22 0327 1538 39.5625 15.2637 105 23 0327 1539 40.3125 15.2637 107 23 0327 1540 40.6875 14.6142 108 22 0327 1541 41.4375 14.6142 110 22 0327 1542 41.0625 15.2637 109 23 0327 1543 41.8125 15.2637 111 23 0327 1544 39.1875 17.2123 104 26 0328 1545 39.9375 17.2123 106 26 0328 1546 39.5625 17.8618 105 27 0328 1547 40.3125 17.8618 107 27 0328 1548 42.1875 8.1190 112 12 0329 1549 42.9375 8.1190 114 12 0329 1550 42.5625 8.7685 113 13 0329 1551 42.1875 9.4180 112 14 0329 1552 42.1875 10.7171 112 16 0330 1553 42.5625 11.3666 113 17 0330 1554 42.1875 12.0161 112 18 0330 1555 42.5625 12.6656 113 19 0330 1556 40.6875 15.9132 108 24 0331 1557 41.4375 15.9132 110 24 0331 1558 41.0625 16.5627 109 25 0331 1559 40.6875 17.2123 108 26 0331 1560 7.6875 6.8200 20 10 1000 1561 8.4375 6.8200 22 10 1000 1562 8.0625 7.4695 21 11 1000 1563 8.8125 7.4695 23 11 1000 1564 9.1875 5.5209 24 8 1001 1565 9.9375 5.5209 26 8 1001 1566 9.5625 6.1704 25 9 1001 1567 10.3125 6.1704 27 9 1001 1568 9.1875 6.8200 24 10 1002 1569 9.9375 6.8200 26 10 1002 1570 9.5625 7.4695 25 11 1002 1571 10.3125 7.4695 27 11 1002 1572 10.6875 5.5209 28 8 1003 1573 11.4375 5.5209 30 8 1003 1574 11.0625 6.1704 29 9 1003 1575 11.8125 6.1704 31 9 1003 1576 10.6875 6.8200 28 10 1004 1577 11.4375 6.8200 30 10 1004 1578 11.0625 7.4695 29 11 1004 1579 11.8125 7.4695 31 11 1004 1580 9.1875 8.1190 24 12 1005 1581 9.9375 8.1190 26 12 1005 1582 9.5625 8.7685 25 13 1005 1583 10.3125 8.7685 27 13 1005 1584 10.6875 8.1190 28 12 1005 1585 11.4375 8.1190 30 12 1005 1586 11.0625 8.7685 29 13 1005 1587 11.8125 8.7685 31 13 1005 1588 9.1875 9.4180 24 14 1005 1589 9.9375 9.4180 26 14 1005 1590 9.5625 10.0675 25 15 1005 1591 10.3125 10.0675 27 15 1005 1592 10.6875 9.4180 28 14 1005 1593 11.4375 9.4180 30 14 1005 1594 11.0625 10.0675 29 15 1005 1595 11.8125 10.0675 31 15 1005 1596 12.1875 5.5209 32 8 1006 1597 12.9375 5.5209 34 8 1006 1598 12.5625 6.1704 33 9 1006 1599 13.3125 6.1704 35 9 1006 1600 13.6875 5.5209 36 8 1006 1601 14.4375 5.5209 38 8 1006 1602 14.0625 6.1704 37 9 1006 1603 14.8125 6.1704 39 9 1006 1604 12.1875 6.8200 32 10 1006 1605 12.9375 6.8200 34 10 1006 1606 12.5625 7.4695 33 11 1006 1607 13.3125 7.4695 35 11 1006 1608 13.6875 6.8200 36 10 1006 1609 14.4375 6.8200 38 10 1006 1610 14.0625 7.4695 37 11 1006 1611 14.8125 7.4695 39 11 1006 1612 12.1875 8.1190 32 12 1007 1613 12.9375 8.1190 34 12 1007 1614 12.5625 8.7685 33 13 1007 1615 13.3125 8.7685 35 13 1007 1616 13.6875 8.1190 36 12 1007 1617 14.4375 8.1190 38 12 1007 1618 14.0625 8.7685 37 13 1007 1619 14.8125 8.7685 39 13 1007 1620 12.1875 9.4180 32 14 1007 1621 12.9375 9.4180 34 14 1007 1622 12.5625 10.0675 33 15 1007 1623 13.3125 10.0675 35 15 1007 1624 13.6875 9.4180 36 14 1007 1625 14.4375 9.4180 38 14 1007 1626 14.0625 10.0675 37 15 1007 1627 14.8125 10.0675 39 15 1007 1628 15.1875 5.5209 40 8 1008 1629 15.9375 5.5209 42 8 1008 1630 15.5625 6.1704 41 9 1008 1631 16.3125 6.1704 43 9 1008 1632 16.6875 5.5209 44 8 1008 1633 17.4375 5.5209 46 8 1008 1634 17.0625 6.1704 45 9 1008 1635 17.8125 6.1704 47 9 1008 1636 15.1875 6.8200 40 10 1008 1637 15.9375 6.8200 42 10 1008 1638 15.5625 7.4695 41 11 1008 1639 16.3125 7.4695 43 11 1008 1640 16.6875 6.8200 44 10 1008 1641 17.4375 6.8200 46 10 1008 1642 17.0625 7.4695 45 11 1008 1643 17.8125 7.4695 47 11 1008 1644 12.1875 10.7171 32 16 1009 1645 12.9375 10.7171 34 16 1009 1646 12.5625 11.3666 33 17 1009 1647 13.3125 11.3666 35 17 1009 1648 13.6875 10.7171 36 16 1009 1649 14.4375 10.7171 38 16 1009 1650 14.0625 11.3666 37 17 1009 1651 14.8125 11.3666 39 17 1009 1652 12.1875 12.0161 32 18 1009 1653 12.9375 12.0161 34 18 1009 1654 12.5625 12.6656 33 19 1009 1655 13.3125 12.6656 35 19 1009 1656 13.6875 12.0161 36 18 1009 1657 14.4375 12.0161 38 18 1009 1658 14.0625 12.6656 37 19 1009 1659 14.8125 12.6656 39 19 1009 1660 15.1875 8.1190 40 12 1010 1661 15.9375 8.1190 42 12 1010 1662 15.5625 8.7685 41 13 1010 1663 16.3125 8.7685 43 13 1010 1664 16.6875 8.1190 44 12 1010 1665 17.4375 8.1190 46 12 1010 1666 17.0625 8.7685 45 13 1010 1667 17.8125 8.7685 47 13 1010 1668 15.1875 9.4180 40 14 1010 1669 15.9375 9.4180 42 14 1010 1670 15.5625 10.0675 41 15 1010 1671 16.3125 10.0675 43 15 1010 1672 16.6875 9.4180 44 14 1010 1673 17.4375 9.4180 46 14 1010 1674 17.0625 10.0675 45 15 1010 1675 17.8125 10.0675 47 15 1010 1676 15.1875 10.7171 40 16 1011 1677 15.9375 10.7171 42 16 1011 1678 15.5625 11.3666 41 17 1011 1679 16.3125 11.3666 43 17 1011 1680 16.6875 10.7171 44 16 1011 1681 17.4375 10.7171 46 16 1011 1682 17.0625 11.3666 45 17 1011 1683 17.8125 11.3666 47 17 1011 1684 15.1875 12.0161 40 18 1011 1685 15.9375 12.0161 42 18 1011 1686 15.5625 12.6656 41 19 1011 1687 16.3125 12.6656 43 19 1011 1688 16.6875 12.0161 44 18 1011 1689 17.4375 12.0161 46 18 1011 1690 17.0625 12.6656 45 19 1011 1691 17.8125 12.6656 47 19 1011 1692 18.1875 5.5209 48 8 1012 1693 18.9375 5.5209 50 8 1012 1694 18.5625 6.1704 49 9 1012 1695 19.3125 6.1704 51 9 1012 1696 19.6875 5.5209 52 8 1012 1697 20.4375 5.5209 54 8 1012 1698 20.0625 6.1704 53 9 1012 1699 20.8125 6.1704 55 9 1012 1700 18.1875 6.8200 48 10 1012 1701 18.9375 6.8200 50 10 1012 1702 18.5625 7.4695 49 11 1012 1703 19.3125 7.4695 51 11 1012 1704 19.6875 6.8200 52 10 1012 1705 20.4375 6.8200 54 10 1012 1706 20.0625 7.4695 53 11 1012 1707 20.8125 7.4695 55 11 1012 1708 18.1875 8.1190 48 12 1013 1709 18.9375 8.1190 50 12 1013 1710 18.5625 8.7685 49 13 1013 1711 19.3125 8.7685 51 13 1013 1712 19.6875 8.1190 52 12 1013 1713 20.4375 8.1190 54 12 1013 1714 20.0625 8.7685 53 13 1013 1715 20.8125 8.7685 55 13 1013 1716 18.1875 9.4180 48 14 1013 1717 18.9375 9.4180 50 14 1013 1718 18.5625 10.0675 49 15 1013 1719 19.3125 10.0675 51 15 1013 1720 19.6875 9.4180 52 14 1013 1721 20.4375 9.4180 54 14 1013 1722 20.0625 10.0675 53 15 1013 1723 20.8125 10.0675 55 15 1013 1724 18.1875 10.7171 48 16 1014 1725 18.9375 10.7171 50 16 1014 1726 18.5625 11.3666 49 17 1014 1727 19.3125 11.3666 51 17 1014 1728 19.6875 10.7171 52 16 1014 1729 20.4375 10.7171 54 16 1014 1730 20.0625 11.3666 53 17 1014 1731 20.8125 11.3666 55 17 1014 1732 18.1875 12.0161 48 18 1014 1733 18.9375 12.0161 50 18 1014 1734 18.5625 12.6656 49 19 1014 1735 19.3125 12.6656 51 19 1014 1736 19.6875 12.0161 52 18 1014 1737 20.4375 12.0161 54 18 1014 1738 20.0625 12.6656 53 19 1014 1739 20.8125 12.6656 55 19 1014 1740 15.1875 13.3151 40 20 1015 1741 15.9375 13.3151 42 20 1015 1742 15.5625 13.9647 41 21 1015 1743 16.3125 13.9647 43 21 1015 1744 16.6875 13.3151 44 20 1015 1745 17.4375 13.3151 46 20 1015 1746 17.0625 13.9647 45 21 1015 1747 17.8125 13.9647 47 21 1015 1748 15.1875 14.6142 40 22 1015 1749 15.9375 14.6142 42 22 1015 1750 15.5625 15.2637 41 23 1015 1751 16.3125 15.2637 43 23 1015 1752 16.6875 14.6142 44 22 1015 1753 17.4375 14.6142 46 22 1015 1754 17.0625 15.2637 45 23 1015 1755 17.8125 15.2637 47 23 1015 1756 21.1875 5.5209 56 8 1016 1757 21.9375 5.5209 58 8 1016 1758 21.5625 6.1704 57 9 1016 1759 22.3125 6.1704 59 9 1016 1760 22.6875 5.5209 60 8 1016 1761 23.4375 5.5209 62 8 1016 1762 23.0625 6.1704 61 9 1016 1763 23.8125 6.1704 63 9 1016 1764 21.1875 6.8200 56 10 1016 1765 21.9375 6.8200 58 10 1016 1766 21.5625 7.4695 57 11 1016 1767 22.3125 7.4695 59 11 1016 1768 22.6875 6.8200 60 10 1016 1769 23.4375 6.8200 62 10 1016 1770 23.0625 7.4695 61 11 1016 1771 23.8125 7.4695 63 11 1016 1772 18.1875 13.3151 48 20 1017 1773 18.9375 13.3151 50 20 1017 1774 18.5625 13.9647 49 21 1017 1775 19.3125 13.9647 51 21 1017 1776 19.6875 13.3151 52 20 1017 1777 20.4375 13.3151 54 20 1017 1778 20.0625 13.9647 53 21 1017 1779 20.8125 13.9647 55 21 1017 1780 18.1875 14.6142 48 22 1017 1781 18.9375 14.6142 50 22 1017 1782 18.5625 15.2637 49 23 1017 1783 19.3125 15.2637 51 23 1017 1784 19.6875 14.6142 52 22 1017 1785 20.4375 14.6142 54 22 1017 1786 20.0625 15.2637 53 23 1017 1787 20.8125 15.2637 55 23 1017 1788 21.1875 8.1190 56 12 1018 1789 21.9375 8.1190 58 12 1018 1790 21.5625 8.7685 57 13 1018 1791 22.3125 8.7685 59 13 1018 1792 22.6875 8.1190 60 12 1018 1793 23.4375 8.1190 62 12 1018 1794 23.0625 8.7685 61 13 1018 1795 23.8125 8.7685 63 13 1018 1796 21.1875 9.4180 56 14 1018 1797 21.9375 9.4180 58 14 1018 1798 21.5625 10.0675 57 15 1018 1799 22.3125 10.0675 59 15 1018 1800 22.6875 9.4180 60 14 1018 1801 23.4375 9.4180 62 14 1018 1802 23.0625 10.0675 61 15 1018 1803 23.8125 10.0675 63 15 1018 1804 21.1875 10.7171 56 16 1019 1805 21.9375 10.7171 58 16 1019 1806 21.5625 11.3666 57 17 1019 1807 22.3125 11.3666 59 17 1019 1808 22.6875 10.7171 60 16 1019 1809 23.4375 10.7171 62 16 1019 1810 23.0625 11.3666 61 17 1019 1811 23.8125 11.3666 63 17 1019 1812 21.1875 12.0161 56 18 1019 1813 21.9375 12.0161 58 18 1019 1814 21.5625 12.6656 57 19 1019 1815 22.3125 12.6656 59 19 1019 1816 22.6875 12.0161 60 18 1019 1817 23.4375 12.0161 62 18 1019 1818 23.0625 12.6656 61 19 1019 1819 23.8125 12.6656 63 19 1019 1820 18.1875 15.9132 48 24 1020 1821 18.9375 15.9132 50 24 1020 1822 18.5625 16.5627 49 25 1020 1823 19.3125 16.5627 51 25 1020 1824 19.6875 15.9132 52 24 1020 1825 20.4375 15.9132 54 24 1020 1826 20.0625 16.5627 53 25 1020 1827 20.8125 16.5627 55 25 1020 1828 18.1875 17.2123 48 26 1020 1829 18.9375 17.2123 50 26 1020 1830 18.5625 17.8618 49 27 1020 1831 19.3125 17.8618 51 27 1020 1832 19.6875 17.2123 52 26 1020 1833 20.4375 17.2123 54 26 1020 1834 20.0625 17.8618 53 27 1020 1835 20.8125 17.8618 55 27 1020 1836 21.1875 13.3151 56 20 1021 1837 21.9375 13.3151 58 20 1021 1838 21.5625 13.9647 57 21 1021 1839 22.3125 13.9647 59 21 1021 1840 22.6875 13.3151 60 20 1021 1841 23.4375 13.3151 62 20 1021 1842 23.0625 13.9647 61 21 1021 1843 23.8125 13.9647 63 21 1021 1844 21.1875 14.6142 56 22 1021 1845 21.9375 14.6142 58 22 1021 1846 21.5625 15.2637 57 23 1021 1847 22.3125 15.2637 59 23 1021 1848 22.6875 14.6142 60 22 1021 1849 23.4375 14.6142 62 22 1021 1850 23.0625 15.2637 61 23 1021 1851 23.8125 15.2637 63 23 1021 1852 24.1875 8.1190 64 12 1022 1853 24.9375 8.1190 66 12 1022 1854 24.5625 8.7685 65 13 1022 1855 25.3125 8.7685 67 13 1022 1856 25.6875 8.1190 68 12 1022 1857 26.4375 8.1190 70 12 1022 1858 26.0625 8.7685 69 13 1022 1859 26.8125 8.7685 71 13 1022 1860 24.1875 9.4180 64 14 1022 1861 24.9375 9.4180 66 14 1022 1862 24.5625 10.0675 65 15 1022 1863 25.3125 10.0675 67 15 1022 1864 25.6875 9.4180 68 14 1022 1865 26.4375 9.4180 70 14 1022 1866 26.0625 10.0675 69 15 1022 1867 26.8125 10.0675 71 15 1022 1868 24.1875 10.7171 64 16 1023 1869 24.9375 10.7171 66 16 1023 1870 24.5625 11.3666 65 17 1023 1871 25.3125 11.3666 67 17 1023 1872 25.6875 10.7171 68 16 1023 1873 26.4375 10.7171 70 16 1023 1874 26.0625 11.3666 69 17 1023 1875 26.8125 11.3666 71 17 1023 1876 24.1875 12.0161 64 18 1023 1877 24.9375 12.0161 66 18 1023 1878 24.5625 12.6656 65 19 1023 1879 25.3125 12.6656 67 19 1023 1880 25.6875 12.0161 68 18 1023 1881 26.4375 12.0161 70 18 1023 1882 26.0625 12.6656 69 19 1023 1883 26.8125 12.6656 71 19 1023 1884 21.1875 15.9132 56 24 1024 1885 21.9375 15.9132 58 24 1024 1886 21.5625 16.5627 57 25 1024 1887 22.3125 16.5627 59 25 1024 1888 22.6875 15.9132 60 24 1024 1889 23.4375 15.9132 62 24 1024 1890 23.0625 16.5627 61 25 1024 1891 23.8125 16.5627 63 25 1024 1892 21.1875 17.2123 56 26 1024 1893 21.9375 17.2123 58 26 1024 1894 21.5625 17.8618 57 27 1024 1895 22.3125 17.8618 59 27 1024 1896 22.6875 17.2123 60 26 1024 1897 23.4375 17.2123 62 26 1024 1898 23.0625 17.8618 61 27 1024 1899 23.8125 17.8618 63 27 1024 1900 24.1875 13.3151 64 20 1025 1901 24.9375 13.3151 66 20 1025 1902 24.5625 13.9647 65 21 1025 1903 25.3125 13.9647 67 21 1025 1904 25.6875 13.3151 68 20 1025 1905 26.4375 13.3151 70 20 1025 1906 26.0625 13.9647 69 21 1025 1907 26.8125 13.9647 71 21 1025 1908 24.1875 14.6142 64 22 1025 1909 24.9375 14.6142 66 22 1025 1910 24.5625 15.2637 65 23 1025 1911 25.3125 15.2637 67 23 1025 1912 25.6875 14.6142 68 22 1025 1913 26.4375 14.6142 70 22 1025 1914 26.0625 15.2637 69 23 1025 1915 26.8125 15.2637 71 23 1025 1916 21.1875 18.5113 56 28 1026 1917 21.9375 18.5113 58 28 1026 1918 21.5625 19.1608 57 29 1026 1919 22.3125 19.1608 59 29 1026 1920 22.6875 18.5113 60 28 1026 1921 23.4375 18.5113 62 28 1026 1922 23.0625 19.1608 61 29 1026 1923 23.8125 19.1608 63 29 1026 1924 21.1875 19.8103 56 30 1026 1925 21.9375 19.8103 58 30 1026 1926 21.5625 20.4599 57 31 1026 1927 22.3125 20.4599 59 31 1026 1928 22.6875 19.8103 60 30 1026 1929 23.4375 19.8103 62 30 1026 1930 23.0625 20.4599 61 31 1026 1931 23.8125 20.4599 63 31 1026 1932 24.1875 15.9132 64 24 1027 1933 24.9375 15.9132 66 24 1027 1934 24.5625 16.5627 65 25 1027 1935 25.3125 16.5627 67 25 1027 1936 25.6875 15.9132 68 24 1027 1937 26.4375 15.9132 70 24 1027 1938 26.0625 16.5627 69 25 1027 1939 26.8125 16.5627 71 25 1027 1940 24.1875 17.2123 64 26 1027 1941 24.9375 17.2123 66 26 1027 1942 24.5625 17.8618 65 27 1027 1943 25.3125 17.8618 67 27 1027 1944 25.6875 17.2123 68 26 1027 1945 26.4375 17.2123 70 26 1027 1946 26.0625 17.8618 69 27 1027 1947 26.8125 17.8618 71 27 1027 1948 21.1875 21.1094 56 32 1028 1949 21.9375 21.1094 58 32 1028 1950 21.5625 21.7589 57 33 1028 1951 22.3125 21.7589 59 33 1028 1952 22.6875 21.1094 60 32 1028 1953 23.4375 21.1094 62 32 1028 1954 23.0625 21.7589 61 33 1028 1955 23.8125 21.7589 63 33 1028 1956 21.1875 22.4084 56 34 1028 1957 21.9375 22.4084 58 34 1028 1958 21.5625 23.0579 57 35 1028 1959 22.3125 23.0579 59 35 1028 1960 22.6875 22.4084 60 34 1028 1961 23.4375 22.4084 62 34 1028 1962 23.0625 23.0579 61 35 1028 1963 23.8125 23.0579 63 35 1028 1964 24.1875 18.5113 64 28 1029 1965 24.9375 18.5113 66 28 1029 1966 24.5625 19.1608 65 29 1029 1967 25.3125 19.1608 67 29 1029 1968 25.6875 18.5113 68 28 1029 1969 26.4375 18.5113 70 28 1029 1970 26.0625 19.1608 69 29 1029 1971 26.8125 19.1608 71 29 1029 1972 24.1875 19.8103 64 30 1029 1973 24.9375 19.8103 66 30 1029 1974 24.5625 20.4599 65 31 1029 1975 25.3125 20.4599 67 31 1029 1976 25.6875 19.8103 68 30 1029 1977 26.4375 19.8103 70 30 1029 1978 26.0625 20.4599 69 31 1029 1979 26.8125 20.4599 71 31 1029 1980 24.1875 21.1094 64 32 1030 1981 24.9375 21.1094 66 32 1030 1982 24.5625 21.7589 65 33 1030 1983 25.3125 21.7589 67 33 1030 1984 25.6875 21.1094 68 32 1030 1985 26.4375 21.1094 70 32 1030 1986 26.0625 21.7589 69 33 1030 1987 26.8125 21.7589 71 33 1030 1988 24.1875 22.4084 64 34 1030 1989 24.9375 22.4084 66 34 1030 1990 24.5625 23.0579 65 35 1030 1991 25.3125 23.0579 67 35 1030 1992 25.6875 22.4084 68 34 1030 1993 26.4375 22.4084 70 34 1030 1994 26.0625 23.0579 69 35 1030 1995 26.8125 23.0579 71 35 1030 1996 24.1875 23.7074 64 36 1031 1997 24.9375 23.7074 66 36 1031 1998 24.5625 24.3570 65 37 1031 1999 25.3125 24.3570 67 37 1031 2000 25.6875 23.7074 68 36 1031 2001 26.4375 23.7074 70 36 1031 2002 26.0625 24.3570 69 37 1031 2003 26.8125 24.3570 71 37 1031 2004 24.1875 25.0065 64 38 1031 2005 24.9375 25.0065 66 38 1031 2006 24.5625 25.6560 65 39 1031 2007 25.3125 25.6560 67 39 1031 2008 25.6875 25.0065 68 38 1031 2009 26.4375 25.0065 70 38 1031 2010 26.0625 25.6560 69 39 1031 2011 26.8125 25.6560 71 39 1031 2012 7.3125 4.8714 19 7 1100 2013 6.5625 4.8714 17 7 1100 2014 6.9375 4.2219 18 6 1100 2015 7.3125 3.5724 19 5 1100 2016 6.1875 5.5209 16 8 1101 2017 6.9375 5.5209 18 8 1101 2018 6.5625 6.1704 17 9 1101 2019 7.3125 6.1704 19 9 1101 2020 7.6875 4.2219 20 6 1102 2021 8.4375 4.2219 22 6 1102 2022 8.0625 4.8714 21 7 1102 2023 8.8125 4.8714 23 7 1102 2024 7.6875 5.5209 20 8 1103 2025 8.4375 5.5209 22 8 1103 2026 8.0625 6.1704 21 9 1103 2027 8.8125 6.1704 23 9 1103 2028 9.1875 4.2219 24 6 1104 2029 9.9375 4.2219 26 6 1104 2030 9.5625 4.8714 25 7 1104 2031 10.3125 4.8714 27 7 1104 2032 27.1875 13.3151 72 20 1105 2033 27.9375 13.3151 74 20 1105 2034 27.5625 13.9647 73 21 1105 2035 28.3125 13.9647 75 21 1105 2036 28.6875 13.3151 76 20 1105 2037 29.4375 13.3151 78 20 1105 2038 29.0625 13.9647 77 21 1105 2039 29.8125 13.9647 79 21 1105 2040 27.1875 14.6142 72 22 1105 2041 27.9375 14.6142 74 22 1105 2042 27.5625 15.2637 73 23 1105 2043 28.3125 15.2637 75 23 1105 2044 28.6875 14.6142 76 22 1105 2045 29.4375 14.6142 78 22 1105 2046 29.0625 15.2637 77 23 1105 2047 29.8125 15.2637 79 23 1105 2048 27.1875 15.9132 72 24 1106 2049 27.9375 15.9132 74 24 1106 2050 27.5625 16.5627 73 25 1106 2051 28.3125 16.5627 75 25 1106 2052 28.6875 15.9132 76 24 1106 2053 29.4375 15.9132 78 24 1106 2054 29.0625 16.5627 77 25 1106 2055 29.8125 16.5627 79 25 1106 2056 27.1875 17.2123 72 26 1106 2057 27.9375 17.2123 74 26 1106 2058 27.5625 17.8618 73 27 1106 2059 28.3125 17.8618 75 27 1106 2060 28.6875 17.2123 76 26 1106 2061 29.4375 17.2123 78 26 1106 2062 29.0625 17.8618 77 27 1106 2063 29.8125 17.8618 79 27 1106 2064 27.1875 18.5113 72 28 1107 2065 27.9375 18.5113 74 28 1107 2066 27.5625 19.1608 73 29 1107 2067 28.3125 19.1608 75 29 1107 2068 28.6875 18.5113 76 28 1107 2069 29.4375 18.5113 78 28 1107 2070 29.0625 19.1608 77 29 1107 2071 29.8125 19.1608 79 29 1107 2072 27.1875 19.8103 72 30 1107 2073 27.9375 19.8103 74 30 1107 2074 27.5625 20.4599 73 31 1107 2075 28.3125 20.4599 75 31 1107 2076 28.6875 19.8103 76 30 1107 2077 29.4375 19.8103 78 30 1107 2078 29.0625 20.4599 77 31 1107 2079 29.8125 20.4599 79 31 1107 2080 30.1875 13.3151 80 20 1108 2081 30.9375 13.3151 82 20 1108 2082 30.5625 13.9647 81 21 1108 2083 31.3125 13.9647 83 21 1108 2084 31.6875 13.3151 84 20 1108 2085 32.4375 13.3151 86 20 1108 2086 32.0625 13.9647 85 21 1108 2087 32.8125 13.9647 87 21 1108 2088 30.1875 14.6142 80 22 1108 2089 30.9375 14.6142 82 22 1108 2090 30.5625 15.2637 81 23 1108 2091 31.3125 15.2637 83 23 1108 2092 31.6875 14.6142 84 22 1108 2093 32.4375 14.6142 86 22 1108 2094 32.0625 15.2637 85 23 1108 2095 32.8125 15.2637 87 23 1108 2096 30.1875 15.9132 80 24 1109 2097 30.9375 15.9132 82 24 1109 2098 30.5625 16.5627 81 25 1109 2099 31.3125 16.5627 83 25 1109 2100 31.6875 15.9132 84 24 1109 2101 32.4375 15.9132 86 24 1109 2102 32.0625 16.5627 85 25 1109 2103 32.8125 16.5627 87 25 1109 2104 30.1875 17.2123 80 26 1109 2105 30.9375 17.2123 82 26 1109 2106 30.5625 17.8618 81 27 1109 2107 31.3125 17.8618 83 27 1109 2108 31.6875 17.2123 84 26 1109 2109 32.4375 17.2123 86 26 1109 2110 32.0625 17.8618 85 27 1109 2111 32.8125 17.8618 87 27 1109 2112 27.1875 21.1094 72 32 1110 2113 27.9375 21.1094 74 32 1110 2114 27.5625 21.7589 73 33 1110 2115 28.3125 21.7589 75 33 1110 2116 28.6875 21.1094 76 32 1110 2117 29.4375 21.1094 78 32 1110 2118 29.0625 21.7589 77 33 1110 2119 29.8125 21.7589 79 33 1110 2120 27.1875 22.4084 72 34 1110 2121 27.9375 22.4084 74 34 1110 2122 27.5625 23.0579 73 35 1110 2123 28.3125 23.0579 75 35 1110 2124 28.6875 22.4084 76 34 1110 2125 29.4375 22.4084 78 34 1110 2126 29.0625 23.0579 77 35 1110 2127 29.8125 23.0579 79 35 1110 2128 30.1875 18.5113 80 28 1111 2129 30.9375 18.5113 82 28 1111 2130 30.5625 19.1608 81 29 1111 2131 31.3125 19.1608 83 29 1111 2132 31.6875 18.5113 84 28 1111 2133 32.4375 18.5113 86 28 1111 2134 32.0625 19.1608 85 29 1111 2135 32.8125 19.1608 87 29 1111 2136 30.1875 19.8103 80 30 1111 2137 30.9375 19.8103 82 30 1111 2138 30.5625 20.4599 81 31 1111 2139 31.3125 20.4599 83 31 1111 2140 31.6875 19.8103 84 30 1111 2141 32.4375 19.8103 86 30 1111 2142 32.0625 20.4599 85 31 1111 2143 32.8125 20.4599 87 31 1111 2144 27.1875 23.7074 72 36 1112 2145 27.9375 23.7074 74 36 1112 2146 27.5625 24.3570 73 37 1112 2147 28.3125 24.3570 75 37 1112 2148 28.6875 23.7074 76 36 1112 2149 29.4375 23.7074 78 36 1112 2150 29.0625 24.3570 77 37 1112 2151 29.8125 24.3570 79 37 1112 2152 27.1875 25.0065 72 38 1112 2153 27.9375 25.0065 74 38 1112 2154 27.5625 25.6560 73 39 1112 2155 28.3125 25.6560 75 39 1112 2156 28.6875 25.0065 76 38 1112 2157 29.4375 25.0065 78 38 1112 2158 29.0625 25.6560 77 39 1112 2159 29.8125 25.6560 79 39 1112 2160 33.1875 15.9132 88 24 1113 2161 33.9375 15.9132 90 24 1113 2162 33.5625 16.5627 89 25 1113 2163 34.3125 16.5627 91 25 1113 2164 34.6875 15.9132 92 24 1113 2165 35.4375 15.9132 94 24 1113 2166 35.0625 16.5627 93 25 1113 2167 35.8125 16.5627 95 25 1113 2168 33.1875 17.2123 88 26 1113 2169 33.9375 17.2123 90 26 1113 2170 33.5625 17.8618 89 27 1113 2171 34.3125 17.8618 91 27 1113 2172 34.6875 17.2123 92 26 1113 2173 35.4375 17.2123 94 26 1113 2174 35.0625 17.8618 93 27 1113 2175 35.8125 17.8618 95 27 1113 2176 30.1875 21.1094 80 32 1114 2177 30.9375 21.1094 82 32 1114 2178 30.5625 21.7589 81 33 1114 2179 31.3125 21.7589 83 33 1114 2180 31.6875 21.1094 84 32 1114 2181 32.4375 21.1094 86 32 1114 2182 32.0625 21.7589 85 33 1114 2183 32.8125 21.7589 87 33 1114 2184 30.1875 22.4084 80 34 1114 2185 30.9375 22.4084 82 34 1114 2186 30.5625 23.0579 81 35 1114 2187 31.3125 23.0579 83 35 1114 2188 31.6875 22.4084 84 34 1114 2189 32.4375 22.4084 86 34 1114 2190 32.0625 23.0579 85 35 1114 2191 32.8125 23.0579 87 35 1114 2192 27.1875 26.3055 72 40 1115 2193 27.9375 26.3055 74 40 1115 2194 27.5625 26.9550 73 41 1115 2195 28.3125 26.9550 75 41 1115 2196 28.6875 26.3055 76 40 1115 2197 29.4375 26.3055 78 40 1115 2198 29.0625 26.9550 77 41 1115 2199 29.8125 26.9550 79 41 1115 2200 27.1875 27.6046 72 42 1115 2201 27.9375 27.6046 74 42 1115 2202 27.5625 28.2541 73 43 1115 2203 28.3125 28.2541 75 43 1115 2204 28.6875 27.6046 76 42 1115 2205 29.4375 27.6046 78 42 1115 2206 29.0625 28.2541 77 43 1115 2207 29.8125 28.2541 79 43 1115 2208 33.1875 18.5113 88 28 1116 2209 33.9375 18.5113 90 28 1116 2210 33.5625 19.1608 89 29 1116 2211 34.3125 19.1608 91 29 1116 2212 34.6875 18.5113 92 28 1116 2213 35.4375 18.5113 94 28 1116 2214 35.0625 19.1608 93 29 1116 2215 35.8125 19.1608 95 29 1116 2216 33.1875 19.8103 88 30 1116 2217 33.9375 19.8103 90 30 1116 2218 33.5625 20.4599 89 31 1116 2219 34.3125 20.4599 91 31 1116 2220 34.6875 19.8103 92 30 1116 2221 35.4375 19.8103 94 30 1116 2222 35.0625 20.4599 93 31 1116 2223 35.8125 20.4599 95 31 1116 2224 30.1875 23.7074 80 36 1117 2225 30.9375 23.7074 82 36 1117 2226 30.5625 24.3570 81 37 1117 2227 31.3125 24.3570 83 37 1117 2228 31.6875 23.7074 84 36 1117 2229 32.4375 23.7074 86 36 1117 2230 32.0625 24.3570 85 37 1117 2231 32.8125 24.3570 87 37 1117 2232 30.1875 25.0065 80 38 1117 2233 30.9375 25.0065 82 38 1117 2234 30.5625 25.6560 81 39 1117 2235 31.3125 25.6560 83 39 1117 2236 31.6875 25.0065 84 38 1117 2237 32.4375 25.0065 86 38 1117 2238 32.0625 25.6560 85 39 1117 2239 32.8125 25.6560 87 39 1117 2240 33.1875 21.1094 88 32 1118 2241 33.9375 21.1094 90 32 1118 2242 33.5625 21.7589 89 33 1118 2243 34.3125 21.7589 91 33 1118 2244 34.6875 21.1094 92 32 1118 2245 35.4375 21.1094 94 32 1118 2246 35.0625 21.7589 93 33 1118 2247 35.8125 21.7589 95 33 1118 2248 33.1875 22.4084 88 34 1118 2249 33.9375 22.4084 90 34 1118 2250 33.5625 23.0579 89 35 1118 2251 34.3125 23.0579 91 35 1118 2252 34.6875 22.4084 92 34 1118 2253 35.4375 22.4084 94 34 1118 2254 35.0625 23.0579 93 35 1118 2255 35.8125 23.0579 95 35 1118 2256 30.1875 26.3055 80 40 1119 2257 30.9375 26.3055 82 40 1119 2258 30.5625 26.9550 81 41 1119 2259 31.3125 26.9550 83 41 1119 2260 31.6875 26.3055 84 40 1119 2261 32.4375 26.3055 86 40 1119 2262 32.0625 26.9550 85 41 1119 2263 32.8125 26.9550 87 41 1119 2264 30.1875 27.6046 80 42 1119 2265 30.9375 27.6046 82 42 1119 2266 30.5625 28.2541 81 43 1119 2267 31.3125 28.2541 83 43 1119 2268 31.6875 27.6046 84 42 1119 2269 32.4375 27.6046 86 42 1119 2270 32.0625 28.2541 85 43 1119 2271 32.8125 28.2541 87 43 1119 2272 36.1875 18.5113 96 28 1120 2273 36.9375 18.5113 98 28 1120 2274 36.5625 19.1608 97 29 1120 2275 37.3125 19.1608 99 29 1120 2276 37.6875 18.5113 100 28 1120 2277 38.4375 18.5113 102 28 1120 2278 38.0625 19.1608 101 29 1120 2279 38.8125 19.1608 103 29 1120 2280 36.1875 19.8103 96 30 1120 2281 36.9375 19.8103 98 30 1120 2282 36.5625 20.4599 97 31 1120 2283 37.3125 20.4599 99 31 1120 2284 37.6875 19.8103 100 30 1120 2285 38.4375 19.8103 102 30 1120 2286 38.0625 20.4599 101 31 1120 2287 38.8125 20.4599 103 31 1120 2288 33.1875 23.7074 88 36 1121 2289 33.9375 23.7074 90 36 1121 2290 33.5625 24.3570 89 37 1121 2291 34.3125 24.3570 91 37 1121 2292 35.0625 24.3570 93 37 1121 2293 34.6875 23.7074 92 36 1121 2294 35.4375 23.7074 94 36 1121 2295 36.1875 23.7074 96 36 1121 2296 33.1875 25.0065 88 38 1121 2297 33.9375 25.0065 90 38 1121 2298 33.5625 25.6560 89 39 1121 2299 34.3125 25.6560 91 39 1121 2300 34.6875 25.0065 92 38 1121 2301 35.0625 25.6560 93 39 1121 2302 35.4375 25.0065 94 38 1121 2303 35.8125 24.3570 95 37 1121 2304 36.1875 21.1094 96 32 1122 2305 36.9375 21.1094 98 32 1122 2306 36.5625 21.7589 97 33 1122 2307 37.3125 21.7589 99 33 1122 2308 33.1875 27.6046 88 42 1123 2309 33.9375 27.6046 90 42 1123 2310 33.5625 26.9550 89 41 1123 2311 33.1875 26.3055 88 40 1123 2312 30.1875 28.9036 80 44 1124 2313 30.9375 28.9036 82 44 1124 2314 30.5625 29.5531 81 45 1124 2315 31.3125 29.5531 83 45 1124 2316 32.0625 29.5531 85 45 1124 2317 31.6875 28.9036 84 44 1124 2318 32.4375 28.9036 86 44 1124 2319 33.1875 28.9036 88 44 1124 2320 30.1875 30.2026 80 46 1124 2321 30.9375 30.2026 82 46 1124 2322 30.5625 30.8522 81 47 1124 2323 31.3125 30.8522 83 47 1124 2324 31.6875 30.2026 84 46 1124 2325 32.0625 30.8522 85 47 1124 2326 32.4375 30.2026 86 46 1124 2327 32.8125 29.5531 87 45 1124 2328 36.5625 23.0579 97 35 1125 2329 36.1875 22.4084 96 34 1125 2330 36.9375 22.4084 98 34 1125 2331 37.6875 22.4084 100 34 1125 2332 33.9375 26.3055 90 40 1126 2333 34.6875 26.3055 92 40 1126 2334 34.3125 26.9550 91 41 1126 2335 35.0625 26.9550 93 41 1126 2336 37.6875 21.1094 100 32 1127 2337 38.4375 21.1094 102 32 1127 2338 38.0625 21.7589 101 33 1127 2339 38.8125 21.7589 103 33 1127 2340 39.1875 18.5113 104 28 1128 2341 39.9375 18.5113 106 28 1128 2342 39.5625 19.1608 105 29 1128 2343 40.3125 19.1608 107 29 1128 2344 33.5625 28.2541 89 43 1129 2345 33.9375 28.9036 90 44 1129 2346 34.3125 28.2541 91 43 1129 2347 34.6875 27.6046 92 42 1129 2348 39.1875 19.8103 104 30 1130 2349 39.9375 19.8103 106 30 1130 2350 39.5625 20.4599 105 31 1130 2351 39.1875 21.1094 104 32 1130 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/geom_data/FCal2Electrodes.dat b/examples/advanced/lAr_calorimeter/geom_data/FCal2Electrodes.dat new file mode 100644 index 0000000000..fb90ef75e8 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/geom_data/FCal2Electrodes.dat @@ -0,0 +1 @@ + 2352 10.0193 8.8540 24 12 2000 2353 10.8372 8.8540 26 12 2000 2354 10.4282 9.5624 25 13 2000 2355 11.2461 9.5624 27 13 2000 2356 10.0193 10.2707 24 14 2000 2357 10.8372 10.2707 26 14 2000 2358 11.6551 8.8540 28 12 2000 2359 12.4730 8.8540 30 12 2000 2360 12.0640 9.5624 29 13 2000 2361 12.8819 9.5624 31 13 2000 2362 11.6551 10.2707 28 14 2000 2363 12.4730 10.2707 30 14 2000 2364 10.4282 10.9790 25 15 2000 2365 11.2461 10.9790 27 15 2000 2366 10.0193 11.6873 24 16 2000 2367 10.8372 11.6873 26 16 2000 2368 10.4282 12.3956 25 17 2000 2369 11.2461 12.3956 27 17 2000 2370 12.0640 10.9790 29 15 2000 2371 12.8819 10.9790 31 15 2000 2372 11.6551 11.6873 28 16 2000 2373 12.4730 11.6873 30 16 2000 2374 12.0640 12.3956 29 17 2000 2375 12.8819 12.3956 31 17 2000 2376 13.2909 8.8540 32 12 2001 2377 14.1088 8.8540 34 12 2001 2378 13.6998 9.5624 33 13 2001 2379 14.5177 9.5624 35 13 2001 2380 13.2909 10.2707 32 14 2001 2381 14.1088 10.2707 34 14 2001 2382 14.9267 8.8540 36 12 2001 2383 15.7446 8.8540 38 12 2001 2384 15.3356 9.5624 37 13 2001 2385 16.1535 9.5624 39 13 2001 2386 14.9267 10.2707 36 14 2001 2387 15.7446 10.2707 38 14 2001 2388 13.6998 10.9790 33 15 2001 2389 14.5177 10.9790 35 15 2001 2390 13.2909 11.6873 32 16 2001 2391 14.1088 11.6873 34 16 2001 2392 13.6998 12.3956 33 17 2001 2393 14.5177 12.3956 35 17 2001 2394 15.3356 10.9790 37 15 2001 2395 16.1535 10.9790 39 15 2001 2396 14.9267 11.6873 36 16 2001 2397 15.7446 11.6873 38 16 2001 2398 15.3356 12.3956 37 17 2001 2399 16.1535 12.3956 39 17 2001 2400 16.5625 8.8540 40 12 2002 2401 17.3804 8.8540 42 12 2002 2402 16.9714 9.5624 41 13 2002 2403 17.7893 9.5624 43 13 2002 2404 16.5625 10.2707 40 14 2002 2405 17.3804 10.2707 42 14 2002 2406 18.1983 8.8540 44 12 2002 2407 19.0162 8.8540 46 12 2002 2408 18.6072 9.5624 45 13 2002 2409 19.4251 9.5624 47 13 2002 2410 18.1983 10.2707 44 14 2002 2411 19.0162 10.2707 46 14 2002 2412 16.9714 10.9790 41 15 2002 2413 17.7893 10.9790 43 15 2002 2414 16.5625 11.6873 40 16 2002 2415 17.3804 11.6873 42 16 2002 2416 16.9714 12.3956 41 17 2002 2417 17.7893 12.3956 43 17 2002 2418 18.6072 10.9790 45 15 2002 2419 19.4251 10.9790 47 15 2002 2420 18.1983 11.6873 44 16 2002 2421 19.0162 11.6873 46 16 2002 2422 18.6072 12.3956 45 17 2002 2423 19.4251 12.3956 47 17 2002 2424 19.8341 8.8540 48 12 2003 2425 20.6520 8.8540 50 12 2003 2426 20.2430 9.5624 49 13 2003 2427 21.0609 9.5624 51 13 2003 2428 19.8341 10.2707 48 14 2003 2429 20.6520 10.2707 50 14 2003 2430 21.4699 8.8540 52 12 2003 2431 22.2878 8.8540 54 12 2003 2432 21.8788 9.5624 53 13 2003 2433 22.6967 9.5624 55 13 2003 2434 21.4699 10.2707 52 14 2003 2435 22.2878 10.2707 54 14 2003 2436 20.2430 10.9790 49 15 2003 2437 21.0609 10.9790 51 15 2003 2438 19.8341 11.6873 48 16 2003 2439 20.6520 11.6873 50 16 2003 2440 20.2430 12.3956 49 17 2003 2441 21.0609 12.3956 51 17 2003 2442 21.8788 10.9790 53 15 2003 2443 22.6967 10.9790 55 15 2003 2444 21.4699 11.6873 52 16 2003 2445 22.2878 11.6873 54 16 2003 2446 21.8788 12.3956 53 17 2003 2447 22.6967 12.3956 55 17 2003 2448 23.1057 8.8540 56 12 2004 2449 23.9236 8.8540 58 12 2004 2450 23.5146 9.5624 57 13 2004 2451 24.3325 9.5624 59 13 2004 2452 23.1057 10.2707 56 14 2004 2453 23.9236 10.2707 58 14 2004 2454 24.7415 8.8540 60 12 2004 2455 25.5594 8.8540 62 12 2004 2456 25.1504 9.5624 61 13 2004 2457 25.9683 9.5624 63 13 2004 2458 24.7415 10.2707 60 14 2004 2459 25.5594 10.2707 62 14 2004 2460 23.5146 10.9790 57 15 2004 2461 24.3325 10.9790 59 15 2004 2462 23.1057 11.6873 56 16 2004 2463 23.9236 11.6873 58 16 2004 2464 23.5146 12.3956 57 17 2004 2465 24.3325 12.3956 59 17 2004 2466 25.1504 10.9790 61 15 2004 2467 25.9683 10.9790 63 15 2004 2468 24.7415 11.6873 60 16 2004 2469 25.5594 11.6873 62 16 2004 2470 25.1504 12.3956 61 17 2004 2471 25.9683 12.3956 63 17 2004 2472 26.3773 8.8540 64 12 2005 2473 27.1952 8.8540 66 12 2005 2474 26.7862 9.5624 65 13 2005 2475 27.6041 9.5624 67 13 2005 2476 26.3773 10.2707 64 14 2005 2477 27.1952 10.2707 66 14 2005 2478 28.0131 8.8540 68 12 2005 2479 28.8310 8.8540 70 12 2005 2480 28.4220 9.5624 69 13 2005 2481 29.2399 9.5624 71 13 2005 2482 28.0131 10.2707 68 14 2005 2483 28.8310 10.2707 70 14 2005 2484 26.7862 10.9790 65 15 2005 2485 27.6041 10.9790 67 15 2005 2486 26.3773 11.6873 64 16 2005 2487 27.1952 11.6873 66 16 2005 2488 26.7862 12.3956 65 17 2005 2489 27.6041 12.3956 67 17 2005 2490 28.4220 10.9790 69 15 2005 2491 29.2399 10.9790 71 15 2005 2492 28.0131 11.6873 68 16 2005 2493 28.8310 11.6873 70 16 2005 2494 28.4220 12.3956 69 17 2005 2495 29.2399 12.3956 71 17 2005 2496 10.0193 13.1040 24 18 2006 2497 10.8372 13.1040 26 18 2006 2498 10.4282 13.8123 25 19 2006 2499 11.2461 13.8123 27 19 2006 2500 10.0193 14.5206 24 20 2006 2501 10.8372 14.5206 26 20 2006 2502 11.6551 13.1040 28 18 2006 2503 12.4730 13.1040 30 18 2006 2504 12.0640 13.8123 29 19 2006 2505 12.8819 13.8123 31 19 2006 2506 11.6551 14.5206 28 20 2006 2507 12.4730 14.5206 30 20 2006 2508 10.4282 15.2289 25 21 2006 2509 11.2461 15.2289 27 21 2006 2510 10.0193 15.9373 24 22 2006 2511 10.8372 15.9373 26 22 2006 2512 10.4282 16.6456 25 23 2006 2513 11.2461 16.6456 27 23 2006 2514 12.0640 15.2289 29 21 2006 2515 12.8819 15.2289 31 21 2006 2516 11.6551 15.9373 28 22 2006 2517 12.4730 15.9373 30 22 2006 2518 12.0640 16.6456 29 23 2006 2519 12.8819 16.6456 31 23 2006 2520 13.2909 13.1040 32 18 2007 2521 14.1088 13.1040 34 18 2007 2522 13.6998 13.8123 33 19 2007 2523 14.5177 13.8123 35 19 2007 2524 13.2909 14.5206 32 20 2007 2525 14.1088 14.5206 34 20 2007 2526 14.9267 13.1040 36 18 2007 2527 15.7446 13.1040 38 18 2007 2528 15.3356 13.8123 37 19 2007 2529 16.1535 13.8123 39 19 2007 2530 14.9267 14.5206 36 20 2007 2531 15.7446 14.5206 38 20 2007 2532 13.6998 15.2289 33 21 2007 2533 14.5177 15.2289 35 21 2007 2534 13.2909 15.9373 32 22 2007 2535 14.1088 15.9373 34 22 2007 2536 13.6998 16.6456 33 23 2007 2537 14.5177 16.6456 35 23 2007 2538 15.3356 15.2289 37 21 2007 2539 16.1535 15.2289 39 21 2007 2540 14.9267 15.9373 36 22 2007 2541 15.7446 15.9373 38 22 2007 2542 15.3356 16.6456 37 23 2007 2543 16.1535 16.6456 39 23 2007 2544 16.5625 13.1040 40 18 2008 2545 17.3804 13.1040 42 18 2008 2546 16.9714 13.8123 41 19 2008 2547 17.7893 13.8123 43 19 2008 2548 16.5625 14.5206 40 20 2008 2549 17.3804 14.5206 42 20 2008 2550 18.1983 13.1040 44 18 2008 2551 19.0162 13.1040 46 18 2008 2552 18.6072 13.8123 45 19 2008 2553 19.4251 13.8123 47 19 2008 2554 18.1983 14.5206 44 20 2008 2555 19.0162 14.5206 46 20 2008 2556 16.9714 15.2289 41 21 2008 2557 17.7893 15.2289 43 21 2008 2558 16.5625 15.9373 40 22 2008 2559 17.3804 15.9373 42 22 2008 2560 16.9714 16.6456 41 23 2008 2561 17.7893 16.6456 43 23 2008 2562 18.6072 15.2289 45 21 2008 2563 19.4251 15.2289 47 21 2008 2564 18.1983 15.9373 44 22 2008 2565 19.0162 15.9373 46 22 2008 2566 18.6072 16.6456 45 23 2008 2567 19.4251 16.6456 47 23 2008 2568 19.8341 13.1040 48 18 2009 2569 20.6520 13.1040 50 18 2009 2570 20.2430 13.8123 49 19 2009 2571 21.0609 13.8123 51 19 2009 2572 19.8341 14.5206 48 20 2009 2573 20.6520 14.5206 50 20 2009 2574 21.4699 13.1040 52 18 2009 2575 22.2878 13.1040 54 18 2009 2576 21.8788 13.8123 53 19 2009 2577 22.6967 13.8123 55 19 2009 2578 21.4699 14.5206 52 20 2009 2579 22.2878 14.5206 54 20 2009 2580 20.2430 15.2289 49 21 2009 2581 21.0609 15.2289 51 21 2009 2582 19.8341 15.9373 48 22 2009 2583 20.6520 15.9373 50 22 2009 2584 20.2430 16.6456 49 23 2009 2585 21.0609 16.6456 51 23 2009 2586 21.8788 15.2289 53 21 2009 2587 22.6967 15.2289 55 21 2009 2588 21.4699 15.9373 52 22 2009 2589 22.2878 15.9373 54 22 2009 2590 21.8788 16.6456 53 23 2009 2591 22.6967 16.6456 55 23 2009 2592 23.1057 13.1040 56 18 2010 2593 23.9236 13.1040 58 18 2010 2594 23.5146 13.8123 57 19 2010 2595 24.3325 13.8123 59 19 2010 2596 23.1057 14.5206 56 20 2010 2597 23.9236 14.5206 58 20 2010 2598 24.7415 13.1040 60 18 2010 2599 25.5594 13.1040 62 18 2010 2600 25.1504 13.8123 61 19 2010 2601 25.9683 13.8123 63 19 2010 2602 24.7415 14.5206 60 20 2010 2603 25.5594 14.5206 62 20 2010 2604 23.5146 15.2289 57 21 2010 2605 24.3325 15.2289 59 21 2010 2606 23.1057 15.9373 56 22 2010 2607 23.9236 15.9373 58 22 2010 2608 23.5146 16.6456 57 23 2010 2609 24.3325 16.6456 59 23 2010 2610 25.1504 15.2289 61 21 2010 2611 25.9683 15.2289 63 21 2010 2612 24.7415 15.9373 60 22 2010 2613 25.5594 15.9373 62 22 2010 2614 25.1504 16.6456 61 23 2010 2615 25.9683 16.6456 63 23 2010 2616 26.3773 13.1040 64 18 2011 2617 27.1952 13.1040 66 18 2011 2618 26.7862 13.8123 65 19 2011 2619 27.6041 13.8123 67 19 2011 2620 26.3773 14.5206 64 20 2011 2621 27.1952 14.5206 66 20 2011 2622 28.0131 13.1040 68 18 2011 2623 28.8310 13.1040 70 18 2011 2624 28.4220 13.8123 69 19 2011 2625 29.2399 13.8123 71 19 2011 2626 28.0131 14.5206 68 20 2011 2627 28.8310 14.5206 70 20 2011 2628 26.7862 15.2289 65 21 2011 2629 27.6041 15.2289 67 21 2011 2630 26.3773 15.9373 64 22 2011 2631 27.1952 15.9373 66 22 2011 2632 26.7862 16.6456 65 23 2011 2633 27.6041 16.6456 67 23 2011 2634 28.4220 15.2289 69 21 2011 2635 29.2399 15.2289 71 21 2011 2636 28.0131 15.9373 68 22 2011 2637 28.8310 15.9373 70 22 2011 2638 28.4220 16.6456 69 23 2011 2639 29.2399 16.6456 71 23 2011 2640 6.7477 17.3539 16 24 2012 2641 7.5656 17.3539 18 24 2012 2642 7.1566 18.0622 17 25 2012 2643 7.9745 18.0622 19 25 2012 2644 6.7477 18.7705 16 26 2012 2645 7.5656 18.7705 18 26 2012 2646 8.3835 17.3539 20 24 2012 2647 9.2014 17.3539 22 24 2012 2648 8.7924 18.0622 21 25 2012 2649 9.6103 18.0622 23 25 2012 2650 8.3835 18.7705 20 26 2012 2651 9.2014 18.7705 22 26 2012 2652 7.1566 19.4789 17 27 2012 2653 7.9745 19.4789 19 27 2012 2654 6.7477 20.1872 16 28 2012 2655 7.5656 20.1872 18 28 2012 2656 7.1566 20.8955 17 29 2012 2657 7.9745 20.8955 19 29 2012 2658 8.7924 19.4789 21 27 2012 2659 9.6103 19.4789 23 27 2012 2660 8.3835 20.1872 20 28 2012 2661 9.2014 20.1872 22 28 2012 2662 8.7924 20.8955 21 29 2012 2663 9.6103 20.8955 23 29 2012 2664 10.0193 17.3539 24 24 2013 2665 10.8372 17.3539 26 24 2013 2666 10.4282 18.0622 25 25 2013 2667 11.2461 18.0622 27 25 2013 2668 10.0193 18.7705 24 26 2013 2669 10.8372 18.7705 26 26 2013 2670 11.6551 17.3539 28 24 2013 2671 12.4730 17.3539 30 24 2013 2672 12.0640 18.0622 29 25 2013 2673 12.8819 18.0622 31 25 2013 2674 11.6551 18.7705 28 26 2013 2675 12.4730 18.7705 30 26 2013 2676 10.4282 19.4789 25 27 2013 2677 11.2461 19.4789 27 27 2013 2678 10.0193 20.1872 24 28 2013 2679 10.8372 20.1872 26 28 2013 2680 10.4282 20.8955 25 29 2013 2681 11.2461 20.8955 27 29 2013 2682 12.0640 19.4789 29 27 2013 2683 12.8819 19.4789 31 27 2013 2684 11.6551 20.1872 28 28 2013 2685 12.4730 20.1872 30 28 2013 2686 12.0640 20.8955 29 29 2013 2687 12.8819 20.8955 31 29 2013 2688 13.2909 17.3539 32 24 2014 2689 14.1088 17.3539 34 24 2014 2690 13.6998 18.0622 33 25 2014 2691 14.5177 18.0622 35 25 2014 2692 13.2909 18.7705 32 26 2014 2693 14.1088 18.7705 34 26 2014 2694 14.9267 17.3539 36 24 2014 2695 15.7446 17.3539 38 24 2014 2696 15.3356 18.0622 37 25 2014 2697 16.1535 18.0622 39 25 2014 2698 14.9267 18.7705 36 26 2014 2699 15.7446 18.7705 38 26 2014 2700 13.6998 19.4789 33 27 2014 2701 14.5177 19.4789 35 27 2014 2702 13.2909 20.1872 32 28 2014 2703 14.1088 20.1872 34 28 2014 2704 13.6998 20.8955 33 29 2014 2705 14.5177 20.8955 35 29 2014 2706 15.3356 19.4789 37 27 2014 2707 16.1535 19.4789 39 27 2014 2708 14.9267 20.1872 36 28 2014 2709 15.7446 20.1872 38 28 2014 2710 15.3356 20.8955 37 29 2014 2711 16.1535 20.8955 39 29 2014 2712 16.5625 17.3539 40 24 2015 2713 17.3804 17.3539 42 24 2015 2714 16.9714 18.0622 41 25 2015 2715 17.7893 18.0622 43 25 2015 2716 16.5625 18.7705 40 26 2015 2717 17.3804 18.7705 42 26 2015 2718 18.1983 17.3539 44 24 2015 2719 19.0162 17.3539 46 24 2015 2720 18.6072 18.0622 45 25 2015 2721 19.4251 18.0622 47 25 2015 2722 18.1983 18.7705 44 26 2015 2723 19.0162 18.7705 46 26 2015 2724 16.9714 19.4789 41 27 2015 2725 17.7893 19.4789 43 27 2015 2726 16.5625 20.1872 40 28 2015 2727 17.3804 20.1872 42 28 2015 2728 16.9714 20.8955 41 29 2015 2729 17.7893 20.8955 43 29 2015 2730 18.6072 19.4789 45 27 2015 2731 19.4251 19.4789 47 27 2015 2732 18.1983 20.1872 44 28 2015 2733 19.0162 20.1872 46 28 2015 2734 18.6072 20.8955 45 29 2015 2735 19.4251 20.8955 47 29 2015 2736 19.8341 17.3539 48 24 2016 2737 20.6520 17.3539 50 24 2016 2738 20.2430 18.0622 49 25 2016 2739 21.0609 18.0622 51 25 2016 2740 19.8341 18.7705 48 26 2016 2741 20.6520 18.7705 50 26 2016 2742 21.4699 17.3539 52 24 2016 2743 22.2878 17.3539 54 24 2016 2744 21.8788 18.0622 53 25 2016 2745 22.6967 18.0622 55 25 2016 2746 21.4699 18.7705 52 26 2016 2747 22.2878 18.7705 54 26 2016 2748 20.2430 19.4789 49 27 2016 2749 21.0609 19.4789 51 27 2016 2750 19.8341 20.1872 48 28 2016 2751 20.6520 20.1872 50 28 2016 2752 20.2430 20.8955 49 29 2016 2753 21.0609 20.8955 51 29 2016 2754 21.8788 19.4789 53 27 2016 2755 22.6967 19.4789 55 27 2016 2756 21.4699 20.1872 52 28 2016 2757 22.2878 20.1872 54 28 2016 2758 21.8788 20.8955 53 29 2016 2759 22.6967 20.8955 55 29 2016 2760 23.1057 17.3539 56 24 2017 2761 23.9236 17.3539 58 24 2017 2762 23.5146 18.0622 57 25 2017 2763 24.3325 18.0622 59 25 2017 2764 23.1057 18.7705 56 26 2017 2765 23.9236 18.7705 58 26 2017 2766 24.7415 17.3539 60 24 2017 2767 25.5594 17.3539 62 24 2017 2768 25.1504 18.0622 61 25 2017 2769 25.9683 18.0622 63 25 2017 2770 24.7415 18.7705 60 26 2017 2771 25.5594 18.7705 62 26 2017 2772 23.5146 19.4789 57 27 2017 2773 24.3325 19.4789 59 27 2017 2774 23.1057 20.1872 56 28 2017 2775 23.9236 20.1872 58 28 2017 2776 23.5146 20.8955 57 29 2017 2777 24.3325 20.8955 59 29 2017 2778 25.1504 19.4789 61 27 2017 2779 25.9683 19.4789 63 27 2017 2780 24.7415 20.1872 60 28 2017 2781 25.5594 20.1872 62 28 2017 2782 25.1504 20.8955 61 29 2017 2783 25.9683 20.8955 63 29 2017 2784 26.3773 17.3539 64 24 2018 2785 27.1952 17.3539 66 24 2018 2786 26.7862 18.0622 65 25 2018 2787 27.6041 18.0622 67 25 2018 2788 26.3773 18.7705 64 26 2018 2789 27.1952 18.7705 66 26 2018 2790 28.0131 17.3539 68 24 2018 2791 28.8310 17.3539 70 24 2018 2792 28.4220 18.0622 69 25 2018 2793 29.2399 18.0622 71 25 2018 2794 28.0131 18.7705 68 26 2018 2795 28.8310 18.7705 70 26 2018 2796 26.7862 19.4789 65 27 2018 2797 27.6041 19.4789 67 27 2018 2798 26.3773 20.1872 64 28 2018 2799 27.1952 20.1872 66 28 2018 2800 26.7862 20.8955 65 29 2018 2801 27.6041 20.8955 67 29 2018 2802 28.4220 19.4789 69 27 2018 2803 29.2399 19.4789 71 27 2018 2804 28.0131 20.1872 68 28 2018 2805 28.8310 20.1872 70 28 2018 2806 28.4220 20.8955 69 29 2018 2807 29.2399 20.8955 71 29 2018 2808 29.6489 17.3539 72 24 2019 2809 30.4668 17.3539 74 24 2019 2810 30.0578 18.0622 73 25 2019 2811 30.8757 18.0622 75 25 2019 2812 29.6489 18.7705 72 26 2019 2813 30.4668 18.7705 74 26 2019 2814 31.2847 17.3539 76 24 2019 2815 32.1026 17.3539 78 24 2019 2816 31.6936 18.0622 77 25 2019 2817 32.5115 18.0622 79 25 2019 2818 31.2847 18.7705 76 26 2019 2819 32.1026 18.7705 78 26 2019 2820 30.0578 19.4789 73 27 2019 2821 30.8757 19.4789 75 27 2019 2822 29.6489 20.1872 72 28 2019 2823 30.4668 20.1872 74 28 2019 2824 30.0578 20.8955 73 29 2019 2825 30.8757 20.8955 75 29 2019 2826 31.6936 19.4789 77 27 2019 2827 32.5115 19.4789 79 27 2019 2828 31.2847 20.1872 76 28 2019 2829 32.1026 20.1872 78 28 2019 2830 31.6936 20.8955 77 29 2019 2831 32.5115 20.8955 79 29 2019 2832 10.0193 21.6038 24 30 2020 2833 10.8372 21.6038 26 30 2020 2834 10.4282 22.3122 25 31 2020 2835 11.2461 22.3122 27 31 2020 2836 10.0193 23.0205 24 32 2020 2837 10.8372 23.0205 26 32 2020 2838 11.6551 21.6038 28 30 2020 2839 12.4730 21.6038 30 30 2020 2840 12.0640 22.3122 29 31 2020 2841 12.8819 22.3122 31 31 2020 2842 11.6551 23.0205 28 32 2020 2843 12.4730 23.0205 30 32 2020 2844 10.4282 23.7288 25 33 2020 2845 11.2461 23.7288 27 33 2020 2846 10.0193 24.4371 24 34 2020 2847 10.8372 24.4371 26 34 2020 2848 10.4282 25.1454 25 35 2020 2849 11.2461 25.1454 27 35 2020 2850 12.0640 23.7288 29 33 2020 2851 12.8819 23.7288 31 33 2020 2852 11.6551 24.4371 28 34 2020 2853 12.4730 24.4371 30 34 2020 2854 12.0640 25.1454 29 35 2020 2855 12.8819 25.1454 31 35 2020 2856 13.2909 21.6038 32 30 2021 2857 14.1088 21.6038 34 30 2021 2858 13.6998 22.3122 33 31 2021 2859 14.5177 22.3122 35 31 2021 2860 13.2909 23.0205 32 32 2021 2861 14.1088 23.0205 34 32 2021 2862 14.9267 21.6038 36 30 2021 2863 15.7446 21.6038 38 30 2021 2864 15.3356 22.3122 37 31 2021 2865 16.1535 22.3122 39 31 2021 2866 14.9267 23.0205 36 32 2021 2867 15.7446 23.0205 38 32 2021 2868 13.6998 23.7288 33 33 2021 2869 14.5177 23.7288 35 33 2021 2870 13.2909 24.4371 32 34 2021 2871 14.1088 24.4371 34 34 2021 2872 13.6998 25.1454 33 35 2021 2873 14.5177 25.1454 35 35 2021 2874 15.3356 23.7288 37 33 2021 2875 16.1535 23.7288 39 33 2021 2876 14.9267 24.4371 36 34 2021 2877 15.7446 24.4371 38 34 2021 2878 15.3356 25.1454 37 35 2021 2879 16.1535 25.1454 39 35 2021 2880 16.5625 21.6038 40 30 2022 2881 17.3804 21.6038 42 30 2022 2882 16.9714 22.3122 41 31 2022 2883 17.7893 22.3122 43 31 2022 2884 16.5625 23.0205 40 32 2022 2885 17.3804 23.0205 42 32 2022 2886 18.1983 21.6038 44 30 2022 2887 19.0162 21.6038 46 30 2022 2888 18.6072 22.3122 45 31 2022 2889 19.4251 22.3122 47 31 2022 2890 18.1983 23.0205 44 32 2022 2891 19.0162 23.0205 46 32 2022 2892 16.9714 23.7288 41 33 2022 2893 17.7893 23.7288 43 33 2022 2894 16.5625 24.4371 40 34 2022 2895 17.3804 24.4371 42 34 2022 2896 16.9714 25.1454 41 35 2022 2897 17.7893 25.1454 43 35 2022 2898 18.6072 23.7288 45 33 2022 2899 19.4251 23.7288 47 33 2022 2900 18.1983 24.4371 44 34 2022 2901 19.0162 24.4371 46 34 2022 2902 18.6072 25.1454 45 35 2022 2903 19.4251 25.1454 47 35 2022 2904 19.8341 21.6038 48 30 2023 2905 20.6520 21.6038 50 30 2023 2906 20.2430 22.3122 49 31 2023 2907 21.0609 22.3122 51 31 2023 2908 19.8341 23.0205 48 32 2023 2909 20.6520 23.0205 50 32 2023 2910 21.4699 21.6038 52 30 2023 2911 22.2878 21.6038 54 30 2023 2912 21.8788 22.3122 53 31 2023 2913 22.6967 22.3122 55 31 2023 2914 21.4699 23.0205 52 32 2023 2915 22.2878 23.0205 54 32 2023 2916 20.2430 23.7288 49 33 2023 2917 21.0609 23.7288 51 33 2023 2918 19.8341 24.4371 48 34 2023 2919 20.6520 24.4371 50 34 2023 2920 20.2430 25.1454 49 35 2023 2921 21.0609 25.1454 51 35 2023 2922 21.8788 23.7288 53 33 2023 2923 22.6967 23.7288 55 33 2023 2924 21.4699 24.4371 52 34 2023 2925 22.2878 24.4371 54 34 2023 2926 21.8788 25.1454 53 35 2023 2927 22.6967 25.1454 55 35 2023 2928 23.1057 21.6038 56 30 2024 2929 23.9236 21.6038 58 30 2024 2930 23.5146 22.3122 57 31 2024 2931 24.3325 22.3122 59 31 2024 2932 23.1057 23.0205 56 32 2024 2933 23.9236 23.0205 58 32 2024 2934 24.7415 21.6038 60 30 2024 2935 25.5594 21.6038 62 30 2024 2936 25.1504 22.3122 61 31 2024 2937 25.9683 22.3122 63 31 2024 2938 24.7415 23.0205 60 32 2024 2939 25.5594 23.0205 62 32 2024 2940 23.5146 23.7288 57 33 2024 2941 24.3325 23.7288 59 33 2024 2942 23.1057 24.4371 56 34 2024 2943 23.9236 24.4371 58 34 2024 2944 23.5146 25.1454 57 35 2024 2945 24.3325 25.1454 59 35 2024 2946 25.1504 23.7288 61 33 2024 2947 25.9683 23.7288 63 33 2024 2948 24.7415 24.4371 60 34 2024 2949 25.5594 24.4371 62 34 2024 2950 25.1504 25.1454 61 35 2024 2951 25.9683 25.1454 63 35 2024 2952 26.3773 21.6038 64 30 2025 2953 27.1952 21.6038 66 30 2025 2954 26.7862 22.3122 65 31 2025 2955 27.6041 22.3122 67 31 2025 2956 26.3773 23.0205 64 32 2025 2957 27.1952 23.0205 66 32 2025 2958 28.0131 21.6038 68 30 2025 2959 28.8310 21.6038 70 30 2025 2960 28.4220 22.3122 69 31 2025 2961 29.2399 22.3122 71 31 2025 2962 28.0131 23.0205 68 32 2025 2963 28.8310 23.0205 70 32 2025 2964 26.7862 23.7288 65 33 2025 2965 27.6041 23.7288 67 33 2025 2966 26.3773 24.4371 64 34 2025 2967 27.1952 24.4371 66 34 2025 2968 26.7862 25.1454 65 35 2025 2969 27.6041 25.1454 67 35 2025 2970 28.4220 23.7288 69 33 2025 2971 29.2399 23.7288 71 33 2025 2972 28.0131 24.4371 68 34 2025 2973 28.8310 24.4371 70 34 2025 2974 28.4220 25.1454 69 35 2025 2975 29.2399 25.1454 71 35 2025 2976 10.0193 25.8538 24 36 2026 2977 10.8372 25.8538 26 36 2026 2978 10.4282 26.5621 25 37 2026 2979 11.2461 26.5621 27 37 2026 2980 10.0193 27.2704 24 38 2026 2981 10.8372 27.2704 26 38 2026 2982 11.6551 25.8538 28 36 2026 2983 12.4730 25.8538 30 36 2026 2984 12.0640 26.5621 29 37 2026 2985 12.8819 26.5621 31 37 2026 2986 11.6551 27.2704 28 38 2026 2987 12.4730 27.2704 30 38 2026 2988 10.4282 27.9787 25 39 2026 2989 11.2461 27.9787 27 39 2026 2990 10.0193 28.6870 24 40 2026 2991 10.8372 28.6870 26 40 2026 2992 10.4282 29.3954 25 41 2026 2993 11.2461 29.3954 27 41 2026 2994 12.0640 27.9787 29 39 2026 2995 12.8819 27.9787 31 39 2026 2996 11.6551 28.6870 28 40 2026 2997 12.4730 28.6870 30 40 2026 2998 12.0640 29.3954 29 41 2026 2999 12.8819 29.3954 31 41 2026 3000 13.2909 25.8538 32 36 2027 3001 14.1088 25.8538 34 36 2027 3002 13.6998 26.5621 33 37 2027 3003 14.5177 26.5621 35 37 2027 3004 13.2909 27.2704 32 38 2027 3005 14.1088 27.2704 34 38 2027 3006 14.9267 25.8538 36 36 2027 3007 15.7446 25.8538 38 36 2027 3008 15.3356 26.5621 37 37 2027 3009 16.1535 26.5621 39 37 2027 3010 14.9267 27.2704 36 38 2027 3011 15.7446 27.2704 38 38 2027 3012 13.6998 27.9787 33 39 2027 3013 14.5177 27.9787 35 39 2027 3014 13.2909 28.6870 32 40 2027 3015 14.1088 28.6870 34 40 2027 3016 13.6998 29.3954 33 41 2027 3017 14.5177 29.3954 35 41 2027 3018 15.3356 27.9787 37 39 2027 3019 16.1535 27.9787 39 39 2027 3020 14.9267 28.6870 36 40 2027 3021 15.7446 28.6870 38 40 2027 3022 15.3356 29.3954 37 41 2027 3023 16.1535 29.3954 39 41 2027 3024 16.5625 25.8538 40 36 2028 3025 17.3804 25.8538 42 36 2028 3026 16.9714 26.5621 41 37 2028 3027 17.7893 26.5621 43 37 2028 3028 16.5625 27.2704 40 38 2028 3029 17.3804 27.2704 42 38 2028 3030 18.1983 25.8538 44 36 2028 3031 19.0162 25.8538 46 36 2028 3032 18.6072 26.5621 45 37 2028 3033 19.4251 26.5621 47 37 2028 3034 18.1983 27.2704 44 38 2028 3035 19.0162 27.2704 46 38 2028 3036 16.9714 27.9787 41 39 2028 3037 17.7893 27.9787 43 39 2028 3038 16.5625 28.6870 40 40 2028 3039 17.3804 28.6870 42 40 2028 3040 16.9714 29.3954 41 41 2028 3041 17.7893 29.3954 43 41 2028 3042 18.6072 27.9787 45 39 2028 3043 19.4251 27.9787 47 39 2028 3044 18.1983 28.6870 44 40 2028 3045 19.0162 28.6870 46 40 2028 3046 18.6072 29.3954 45 41 2028 3047 19.4251 29.3954 47 41 2028 3048 19.8341 25.8538 48 36 2029 3049 20.6520 25.8538 50 36 2029 3050 20.2430 26.5621 49 37 2029 3051 21.0609 26.5621 51 37 2029 3052 19.8341 27.2704 48 38 2029 3053 20.6520 27.2704 50 38 2029 3054 21.4699 25.8538 52 36 2029 3055 22.2878 25.8538 54 36 2029 3056 21.8788 26.5621 53 37 2029 3057 22.6967 26.5621 55 37 2029 3058 21.4699 27.2704 52 38 2029 3059 22.2878 27.2704 54 38 2029 3060 20.2430 27.9787 49 39 2029 3061 21.0609 27.9787 51 39 2029 3062 19.8341 28.6870 48 40 2029 3063 20.6520 28.6870 50 40 2029 3064 20.2430 29.3954 49 41 2029 3065 21.0609 29.3954 51 41 2029 3066 21.8788 27.9787 53 39 2029 3067 22.6967 27.9787 55 39 2029 3068 21.4699 28.6870 52 40 2029 3069 22.2878 28.6870 54 40 2029 3070 21.8788 29.3954 53 41 2029 3071 22.6967 29.3954 55 41 2029 3072 23.1057 25.8538 56 36 2030 3073 23.9236 25.8538 58 36 2030 3074 23.5146 26.5621 57 37 2030 3075 24.3325 26.5621 59 37 2030 3076 23.1057 27.2704 56 38 2030 3077 23.9236 27.2704 58 38 2030 3078 24.7415 25.8538 60 36 2030 3079 25.5594 25.8538 62 36 2030 3080 25.1504 26.5621 61 37 2030 3081 25.9683 26.5621 63 37 2030 3082 24.7415 27.2704 60 38 2030 3083 25.5594 27.2704 62 38 2030 3084 23.5146 27.9787 57 39 2030 3085 24.3325 27.9787 59 39 2030 3086 23.1057 28.6870 56 40 2030 3087 23.9236 28.6870 58 40 2030 3088 23.5146 29.3954 57 41 2030 3089 24.3325 29.3954 59 41 2030 3090 25.1504 27.9787 61 39 2030 3091 25.9683 27.9787 63 39 2030 3092 24.7415 28.6870 60 40 2030 3093 25.5594 28.6870 62 40 2030 3094 25.1504 29.3954 61 41 2030 3095 25.9683 29.3954 63 41 2030 3096 26.3773 25.8538 64 36 2031 3097 27.1952 25.8538 66 36 2031 3098 26.7862 26.5621 65 37 2031 3099 27.6041 26.5621 67 37 2031 3100 26.3773 27.2704 64 38 2031 3101 27.1952 27.2704 66 38 2031 3102 28.0131 25.8538 68 36 2031 3103 28.8310 25.8538 70 36 2031 3104 28.4220 26.5621 69 37 2031 3105 29.2399 26.5621 71 37 2031 3106 28.0131 27.2704 68 38 2031 3107 28.8310 27.2704 70 38 2031 3108 26.7862 27.9787 65 39 2031 3109 27.6041 27.9787 67 39 2031 3110 26.3773 28.6870 64 40 2031 3111 27.1952 28.6870 66 40 2031 3112 26.7862 29.3954 65 41 2031 3113 27.6041 29.3954 67 41 2031 3114 28.4220 27.9787 69 39 2031 3115 29.2399 27.9787 71 39 2031 3116 28.0131 28.6870 68 40 2031 3117 28.8310 28.6870 70 40 2031 3118 28.4220 29.3954 69 41 2031 3119 29.2399 29.3954 71 41 2031 3120 8.3835 0.3542 20 0 2100 3121 9.2014 0.3542 22 0 2100 3122 8.7924 1.0625 21 1 2100 3123 9.6103 1.0625 23 1 2100 3124 8.3835 1.7708 20 2 2100 3125 9.2014 1.7708 22 2 2100 3126 8.7924 2.4791 21 3 2101 3127 9.6103 2.4791 23 3 2101 3128 8.3835 3.1874 20 4 2101 3129 9.2014 3.1874 22 4 2101 3130 8.7924 3.8958 21 5 2101 3131 9.6103 3.8958 23 5 2101 3132 10.0193 0.3542 24 0 2102 3133 10.8372 0.3542 26 0 2102 3134 10.4282 1.0625 25 1 2102 3135 11.2461 1.0625 27 1 2102 3136 10.0193 1.7708 24 2 2102 3137 10.8372 1.7708 26 2 2102 3138 11.6551 0.3542 28 0 2102 3139 12.4730 0.3542 30 0 2102 3140 12.0640 1.0625 29 1 2102 3141 12.8819 1.0625 31 1 2102 3142 11.6551 1.7708 28 2 2102 3143 12.4730 1.7708 30 2 2102 3144 10.4282 2.4791 25 3 2102 3145 11.2461 2.4791 27 3 2102 3146 10.0193 3.1874 24 4 2102 3147 10.8372 3.1874 26 4 2102 3148 10.4282 3.8958 25 5 2102 3149 11.2461 3.8958 27 5 2102 3150 12.0640 2.4791 29 3 2102 3151 12.8819 2.4791 31 3 2102 3152 11.6551 3.1874 28 4 2102 3153 12.4730 3.1874 30 4 2102 3154 12.0640 3.8958 29 5 2102 3155 12.8819 3.8958 31 5 2102 3156 13.2909 0.3542 32 0 2103 3157 14.1088 0.3542 34 0 2103 3158 13.6998 1.0625 33 1 2103 3159 14.5177 1.0625 35 1 2103 3160 13.2909 1.7708 32 2 2103 3161 14.1088 1.7708 34 2 2103 3162 14.9267 0.3542 36 0 2103 3163 15.7446 0.3542 38 0 2103 3164 15.3356 1.0625 37 1 2103 3165 16.1535 1.0625 39 1 2103 3166 14.9267 1.7708 36 2 2103 3167 15.7446 1.7708 38 2 2103 3168 13.6998 2.4791 33 3 2103 3169 14.5177 2.4791 35 3 2103 3170 13.2909 3.1874 32 4 2103 3171 14.1088 3.1874 34 4 2103 3172 13.6998 3.8958 33 5 2103 3173 14.5177 3.8958 35 5 2103 3174 15.3356 2.4791 37 3 2103 3175 16.1535 2.4791 39 3 2103 3176 14.9267 3.1874 36 4 2103 3177 15.7446 3.1874 38 4 2103 3178 15.3356 3.8958 37 5 2103 3179 16.1535 3.8958 39 5 2103 3180 4.2940 7.4374 10 10 2104 3181 5.1119 7.4374 12 10 2104 3182 2.2492 8.1457 5 11 2104 3183 3.0671 8.1457 7 11 2104 3184 3.8850 8.1457 9 11 2104 3185 4.7029 8.1457 11 11 2104 3186 5.5208 6.7291 13 9 2105 3187 5.5208 8.1457 13 11 2105 3188 5.9298 6.0207 14 8 2105 3189 5.9298 7.4374 14 10 2105 3190 6.3387 6.7291 15 9 2105 3191 6.3387 8.1457 15 11 2105 3192 7.9745 3.8958 19 5 2106 3193 7.5656 4.6041 18 6 2106 3194 7.1566 5.3124 17 7 2106 3195 7.9745 5.3124 19 7 2106 3196 6.7477 6.0207 16 8 2106 3197 7.5656 6.0207 18 8 2106 3198 8.3835 4.6041 20 6 2106 3199 9.2014 4.6041 22 6 2106 3200 8.7924 5.3124 21 7 2106 3201 9.6103 5.3124 23 7 2106 3202 8.3835 6.0207 20 8 2106 3203 9.2014 6.0207 22 8 2106 3204 7.1566 6.7291 17 9 2106 3205 7.9745 6.7291 19 9 2106 3206 6.7477 7.4374 16 10 2106 3207 7.5656 7.4374 18 10 2106 3208 7.1566 8.1457 17 11 2106 3209 7.9745 8.1457 19 11 2106 3210 8.7924 6.7291 21 9 2106 3211 9.6103 6.7291 23 9 2106 3212 8.3835 7.4374 20 10 2106 3213 9.2014 7.4374 22 10 2106 3214 8.7924 8.1457 21 11 2106 3215 9.6103 8.1457 23 11 2106 3216 10.0193 4.6041 24 6 2107 3217 10.8372 4.6041 26 6 2107 3218 10.4282 5.3124 25 7 2107 3219 11.2461 5.3124 27 7 2107 3220 10.0193 6.0207 24 8 2107 3221 10.8372 6.0207 26 8 2107 3222 11.6551 4.6041 28 6 2107 3223 12.4730 4.6041 30 6 2107 3224 12.0640 5.3124 29 7 2107 3225 12.8819 5.3124 31 7 2107 3226 11.6551 6.0207 28 8 2107 3227 12.4730 6.0207 30 8 2107 3228 10.4282 6.7291 25 9 2107 3229 11.2461 6.7291 27 9 2107 3230 10.0193 7.4374 24 10 2107 3231 10.8372 7.4374 26 10 2107 3232 10.4282 8.1457 25 11 2107 3233 11.2461 8.1457 27 11 2107 3234 12.0640 6.7291 29 9 2107 3235 12.8819 6.7291 31 9 2107 3236 11.6551 7.4374 28 10 2107 3237 12.4730 7.4374 30 10 2107 3238 12.0640 8.1457 29 11 2107 3239 12.8819 8.1457 31 11 2107 3240 13.2909 4.6041 32 6 2108 3241 14.1088 4.6041 34 6 2108 3242 13.6998 5.3124 33 7 2108 3243 14.5177 5.3124 35 7 2108 3244 13.2909 6.0207 32 8 2108 3245 14.1088 6.0207 34 8 2108 3246 14.9267 4.6041 36 6 2108 3247 15.7446 4.6041 38 6 2108 3248 15.3356 5.3124 37 7 2108 3249 16.1535 5.3124 39 7 2108 3250 14.9267 6.0207 36 8 2108 3251 15.7446 6.0207 38 8 2108 3252 13.6998 6.7291 33 9 2108 3253 14.5177 6.7291 35 9 2108 3254 13.2909 7.4374 32 10 2108 3255 14.1088 7.4374 34 10 2108 3256 13.6998 8.1457 33 11 2108 3257 14.5177 8.1457 35 11 2108 3258 15.3356 6.7291 37 9 2108 3259 16.1535 6.7291 39 9 2108 3260 14.9267 7.4374 36 10 2108 3261 15.7446 7.4374 38 10 2108 3262 15.3356 8.1457 37 11 2108 3263 16.1535 8.1457 39 11 2108 3264 0.2045 8.8540 0 12 2109 3265 1.0224 8.8540 2 12 2109 3266 0.6134 9.5624 1 13 2109 3267 1.4313 9.5624 3 13 2109 3268 0.2045 10.2707 0 14 2109 3269 1.0224 10.2707 2 14 2109 3270 1.8403 8.8540 4 12 2109 3271 2.6582 8.8540 6 12 2109 3272 2.2492 9.5624 5 13 2109 3273 3.0671 9.5624 7 13 2109 3274 1.8403 10.2707 4 14 2109 3275 2.6582 10.2707 6 14 2109 3276 0.6134 10.9790 1 15 2109 3277 1.4313 10.9790 3 15 2109 3278 0.2045 11.6873 0 16 2109 3279 1.0224 11.6873 2 16 2109 3280 0.6134 12.3956 1 17 2109 3281 1.4313 12.3956 3 17 2109 3282 2.2492 10.9790 5 15 2109 3283 3.0671 10.9790 7 15 2109 3284 1.8403 11.6873 4 16 2109 3285 2.6582 11.6873 6 16 2109 3286 2.2492 12.3956 5 17 2109 3287 3.0671 12.3956 7 17 2109 3288 3.4761 8.8540 8 12 2110 3289 4.2940 8.8540 10 12 2110 3290 3.8850 9.5624 9 13 2110 3291 4.7029 9.5624 11 13 2110 3292 3.4761 10.2707 8 14 2110 3293 4.2940 10.2707 10 14 2110 3294 5.1119 8.8540 12 12 2110 3295 5.9298 8.8540 14 12 2110 3296 5.5208 9.5624 13 13 2110 3297 6.3387 9.5624 15 13 2110 3298 5.1119 10.2707 12 14 2110 3299 5.9298 10.2707 14 14 2110 3300 3.8850 10.9790 9 15 2110 3301 4.7029 10.9790 11 15 2110 3302 3.4761 11.6873 8 16 2110 3303 4.2940 11.6873 10 16 2110 3304 3.8850 12.3956 9 17 2110 3305 4.7029 12.3956 11 17 2110 3306 5.5208 10.9790 13 15 2110 3307 6.3387 10.9790 15 15 2110 3308 5.1119 11.6873 12 16 2110 3309 5.9298 11.6873 14 16 2110 3310 5.5208 12.3956 13 17 2110 3311 6.3387 12.3956 15 17 2110 3312 6.7477 8.8540 16 12 2111 3313 7.5656 8.8540 18 12 2111 3314 7.1566 9.5624 17 13 2111 3315 7.9745 9.5624 19 13 2111 3316 6.7477 10.2707 16 14 2111 3317 7.5656 10.2707 18 14 2111 3318 8.3835 8.8540 20 12 2111 3319 9.2014 8.8540 22 12 2111 3320 8.7924 9.5624 21 13 2111 3321 9.6103 9.5624 23 13 2111 3322 8.3835 10.2707 20 14 2111 3323 9.2014 10.2707 22 14 2111 3324 7.1566 10.9790 17 15 2111 3325 7.9745 10.9790 19 15 2111 3326 6.7477 11.6873 16 16 2111 3327 7.5656 11.6873 18 16 2111 3328 7.1566 12.3956 17 17 2111 3329 7.9745 12.3956 19 17 2111 3330 8.7924 10.9790 21 15 2111 3331 9.6103 10.9790 23 15 2111 3332 8.3835 11.6873 20 16 2111 3333 9.2014 11.6873 22 16 2111 3334 8.7924 12.3956 21 17 2111 3335 9.6103 12.3956 23 17 2111 3336 0.2045 13.1040 0 18 2112 3337 1.0224 13.1040 2 18 2112 3338 0.6134 13.8123 1 19 2112 3339 1.4313 13.8123 3 19 2112 3340 0.2045 14.5206 0 20 2112 3341 1.0224 14.5206 2 20 2112 3342 1.8403 13.1040 4 18 2112 3343 2.6582 13.1040 6 18 2112 3344 2.2492 13.8123 5 19 2112 3345 3.0671 13.8123 7 19 2112 3346 1.8403 14.5206 4 20 2112 3347 2.6582 14.5206 6 20 2112 3348 0.6134 15.2289 1 21 2112 3349 1.4313 15.2289 3 21 2112 3350 0.2045 15.9373 0 22 2112 3351 1.0224 15.9373 2 22 2112 3352 0.6134 16.6456 1 23 2112 3353 1.4313 16.6456 3 23 2112 3354 2.2492 15.2289 5 21 2112 3355 3.0671 15.2289 7 21 2112 3356 1.8403 15.9373 4 22 2112 3357 2.6582 15.9373 6 22 2112 3358 2.2492 16.6456 5 23 2112 3359 3.0671 16.6456 7 23 2112 3360 3.4761 13.1040 8 18 2113 3361 4.2940 13.1040 10 18 2113 3362 3.8850 13.8123 9 19 2113 3363 4.7029 13.8123 11 19 2113 3364 3.4761 14.5206 8 20 2113 3365 4.2940 14.5206 10 20 2113 3366 5.1119 13.1040 12 18 2113 3367 5.9298 13.1040 14 18 2113 3368 5.5208 13.8123 13 19 2113 3369 6.3387 13.8123 15 19 2113 3370 5.1119 14.5206 12 20 2113 3371 5.9298 14.5206 14 20 2113 3372 3.8850 15.2289 9 21 2113 3373 4.7029 15.2289 11 21 2113 3374 3.4761 15.9373 8 22 2113 3375 4.2940 15.9373 10 22 2113 3376 3.8850 16.6456 9 23 2113 3377 4.7029 16.6456 11 23 2113 3378 5.5208 15.2289 13 21 2113 3379 6.3387 15.2289 15 21 2113 3380 5.1119 15.9373 12 22 2113 3381 5.9298 15.9373 14 22 2113 3382 5.5208 16.6456 13 23 2113 3383 6.3387 16.6456 15 23 2113 3384 6.7477 13.1040 16 18 2114 3385 7.5656 13.1040 18 18 2114 3386 7.1566 13.8123 17 19 2114 3387 7.9745 13.8123 19 19 2114 3388 6.7477 14.5206 16 20 2114 3389 7.5656 14.5206 18 20 2114 3390 8.3835 13.1040 20 18 2114 3391 9.2014 13.1040 22 18 2114 3392 8.7924 13.8123 21 19 2114 3393 9.6103 13.8123 23 19 2114 3394 8.3835 14.5206 20 20 2114 3395 9.2014 14.5206 22 20 2114 3396 7.1566 15.2289 17 21 2114 3397 7.9745 15.2289 19 21 2114 3398 6.7477 15.9373 16 22 2114 3399 7.5656 15.9373 18 22 2114 3400 7.1566 16.6456 17 23 2114 3401 7.9745 16.6456 19 23 2114 3402 8.7924 15.2289 21 21 2114 3403 9.6103 15.2289 23 21 2114 3404 8.3835 15.9373 20 22 2114 3405 9.2014 15.9373 22 22 2114 3406 8.7924 16.6456 21 23 2114 3407 9.6103 16.6456 23 23 2114 3408 0.2045 17.3539 0 24 2115 3409 1.0224 17.3539 2 24 2115 3410 0.6134 18.0622 1 25 2115 3411 1.4313 18.0622 3 25 2115 3412 0.2045 18.7705 0 26 2115 3413 1.0224 18.7705 2 26 2115 3414 1.8403 17.3539 4 24 2115 3415 2.6582 17.3539 6 24 2115 3416 2.2492 18.0622 5 25 2115 3417 3.0671 18.0622 7 25 2115 3418 1.8403 18.7705 4 26 2115 3419 2.6582 18.7705 6 26 2115 3420 0.6134 19.4789 1 27 2115 3421 1.4313 19.4789 3 27 2115 3422 0.2045 20.1872 0 28 2115 3423 1.0224 20.1872 2 28 2115 3424 0.6134 20.8955 1 29 2115 3425 1.4313 20.8955 3 29 2115 3426 2.2492 19.4789 5 27 2115 3427 3.0671 19.4789 7 27 2115 3428 1.8403 20.1872 4 28 2115 3429 2.6582 20.1872 6 28 2115 3430 2.2492 20.8955 5 29 2115 3431 3.0671 20.8955 7 29 2115 3432 3.4761 17.3539 8 24 2116 3433 4.2940 17.3539 10 24 2116 3434 3.8850 18.0622 9 25 2116 3435 4.7029 18.0622 11 25 2116 3436 3.4761 18.7705 8 26 2116 3437 4.2940 18.7705 10 26 2116 3438 5.1119 17.3539 12 24 2116 3439 5.9298 17.3539 14 24 2116 3440 5.5208 18.0622 13 25 2116 3441 6.3387 18.0622 15 25 2116 3442 5.1119 18.7705 12 26 2116 3443 5.9298 18.7705 14 26 2116 3444 3.8850 19.4789 9 27 2116 3445 4.7029 19.4789 11 27 2116 3446 3.4761 20.1872 8 28 2116 3447 4.2940 20.1872 10 28 2116 3448 3.8850 20.8955 9 29 2116 3449 4.7029 20.8955 11 29 2116 3450 5.5208 19.4789 13 27 2116 3451 6.3387 19.4789 15 27 2116 3452 5.1119 20.1872 12 28 2116 3453 5.9298 20.1872 14 28 2116 3454 5.5208 20.8955 13 29 2116 3455 6.3387 20.8955 15 29 2116 3456 0.2045 21.6038 0 30 2117 3457 1.0224 21.6038 2 30 2117 3458 0.6134 22.3122 1 31 2117 3459 1.4313 22.3122 3 31 2117 3460 0.2045 23.0205 0 32 2117 3461 1.0224 23.0205 2 32 2117 3462 1.8403 21.6038 4 30 2117 3463 2.6582 21.6038 6 30 2117 3464 2.2492 22.3122 5 31 2117 3465 3.0671 22.3122 7 31 2117 3466 1.8403 23.0205 4 32 2117 3467 2.6582 23.0205 6 32 2117 3468 0.6134 23.7288 1 33 2117 3469 1.4313 23.7288 3 33 2117 3470 0.2045 24.4371 0 34 2117 3471 1.0224 24.4371 2 34 2117 3472 0.6134 25.1454 1 35 2117 3473 1.4313 25.1454 3 35 2117 3474 2.2492 23.7288 5 33 2117 3475 3.0671 23.7288 7 33 2117 3476 1.8403 24.4371 4 34 2117 3477 2.6582 24.4371 6 34 2117 3478 2.2492 25.1454 5 35 2117 3479 3.0671 25.1454 7 35 2117 3480 3.4761 21.6038 8 30 2118 3481 4.2940 21.6038 10 30 2118 3482 3.8850 22.3122 9 31 2118 3483 4.7029 22.3122 11 31 2118 3484 3.4761 23.0205 8 32 2118 3485 4.2940 23.0205 10 32 2118 3486 5.1119 21.6038 12 30 2118 3487 5.9298 21.6038 14 30 2118 3488 5.5208 22.3122 13 31 2118 3489 6.3387 22.3122 15 31 2118 3490 5.1119 23.0205 12 32 2118 3491 5.9298 23.0205 14 32 2118 3492 3.8850 23.7288 9 33 2118 3493 4.7029 23.7288 11 33 2118 3494 3.4761 24.4371 8 34 2118 3495 4.2940 24.4371 10 34 2118 3496 3.8850 25.1454 9 35 2118 3497 4.7029 25.1454 11 35 2118 3498 5.5208 23.7288 13 33 2118 3499 6.3387 23.7288 15 33 2118 3500 5.1119 24.4371 12 34 2118 3501 5.9298 24.4371 14 34 2118 3502 5.5208 25.1454 13 35 2118 3503 6.3387 25.1454 15 35 2118 3504 6.7477 21.6038 16 30 2119 3505 7.5656 21.6038 18 30 2119 3506 7.1566 22.3122 17 31 2119 3507 7.9745 22.3122 19 31 2119 3508 6.7477 23.0205 16 32 2119 3509 7.5656 23.0205 18 32 2119 3510 8.3835 21.6038 20 30 2119 3511 9.2014 21.6038 22 30 2119 3512 8.7924 22.3122 21 31 2119 3513 9.6103 22.3122 23 31 2119 3514 8.3835 23.0205 20 32 2119 3515 9.2014 23.0205 22 32 2119 3516 7.1566 23.7288 17 33 2119 3517 7.9745 23.7288 19 33 2119 3518 6.7477 24.4371 16 34 2119 3519 7.5656 24.4371 18 34 2119 3520 7.1566 25.1454 17 35 2119 3521 7.9745 25.1454 19 35 2119 3522 8.7924 23.7288 21 33 2119 3523 9.6103 23.7288 23 33 2119 3524 8.3835 24.4371 20 34 2119 3525 9.2014 24.4371 22 34 2119 3526 8.7924 25.1454 21 35 2119 3527 9.6103 25.1454 23 35 2119 3528 0.2045 25.8538 0 36 2120 3529 1.0224 25.8538 2 36 2120 3530 0.6134 26.5621 1 37 2120 3531 1.4313 26.5621 3 37 2120 3532 0.2045 27.2704 0 38 2120 3533 1.0224 27.2704 2 38 2120 3534 1.8403 25.8538 4 36 2120 3535 2.6582 25.8538 6 36 2120 3536 2.2492 26.5621 5 37 2120 3537 3.0671 26.5621 7 37 2120 3538 1.8403 27.2704 4 38 2120 3539 2.6582 27.2704 6 38 2120 3540 0.6134 27.9787 1 39 2120 3541 1.4313 27.9787 3 39 2120 3542 0.2045 28.6870 0 40 2120 3543 1.0224 28.6870 2 40 2120 3544 0.6134 29.3954 1 41 2120 3545 1.4313 29.3954 3 41 2120 3546 2.2492 27.9787 5 39 2120 3547 3.0671 27.9787 7 39 2120 3548 1.8403 28.6870 4 40 2120 3549 2.6582 28.6870 6 40 2120 3550 2.2492 29.3954 5 41 2120 3551 3.0671 29.3954 7 41 2120 3552 3.4761 25.8538 8 36 2121 3553 4.2940 25.8538 10 36 2121 3554 3.8850 26.5621 9 37 2121 3555 4.7029 26.5621 11 37 2121 3556 3.4761 27.2704 8 38 2121 3557 4.2940 27.2704 10 38 2121 3558 5.1119 25.8538 12 36 2121 3559 5.9298 25.8538 14 36 2121 3560 5.5208 26.5621 13 37 2121 3561 6.3387 26.5621 15 37 2121 3562 5.1119 27.2704 12 38 2121 3563 5.9298 27.2704 14 38 2121 3564 3.8850 27.9787 9 39 2121 3565 4.7029 27.9787 11 39 2121 3566 3.4761 28.6870 8 40 2121 3567 4.2940 28.6870 10 40 2121 3568 3.8850 29.3954 9 41 2121 3569 4.7029 29.3954 11 41 2121 3570 5.5208 27.9787 13 39 2121 3571 6.3387 27.9787 15 39 2121 3572 5.1119 28.6870 12 40 2121 3573 5.9298 28.6870 14 40 2121 3574 5.5208 29.3954 13 41 2121 3575 6.3387 29.3954 15 41 2121 3576 6.7477 25.8538 16 36 2122 3577 7.5656 25.8538 18 36 2122 3578 7.1566 26.5621 17 37 2122 3579 7.9745 26.5621 19 37 2122 3580 6.7477 27.2704 16 38 2122 3581 7.5656 27.2704 18 38 2122 3582 8.3835 25.8538 20 36 2122 3583 9.2014 25.8538 22 36 2122 3584 8.7924 26.5621 21 37 2122 3585 9.6103 26.5621 23 37 2122 3586 8.3835 27.2704 20 38 2122 3587 9.2014 27.2704 22 38 2122 3588 7.1566 27.9787 17 39 2122 3589 7.9745 27.9787 19 39 2122 3590 6.7477 28.6870 16 40 2122 3591 7.5656 28.6870 18 40 2122 3592 7.1566 29.3954 17 41 2122 3593 7.9745 29.3954 19 41 2122 3594 8.7924 27.9787 21 39 2122 3595 9.6103 27.9787 23 39 2122 3596 8.3835 28.6870 20 40 2122 3597 9.2014 28.6870 22 40 2122 3598 8.7924 29.3954 21 41 2122 3599 9.6103 29.3954 23 41 2122 3600 0.2045 30.1037 0 42 2123 3601 1.0224 30.1037 2 42 2123 3602 0.6134 30.8120 1 43 2123 3603 1.4313 30.8120 3 43 2123 3604 0.2045 31.5203 0 44 2123 3605 1.0224 31.5203 2 44 2123 3606 1.8403 30.1037 4 42 2123 3607 2.6582 30.1037 6 42 2123 3608 2.2492 30.8120 5 43 2123 3609 3.0671 30.8120 7 43 2123 3610 1.8403 31.5203 4 44 2123 3611 2.6582 31.5203 6 44 2123 3612 0.6134 32.2287 1 45 2123 3613 1.4313 32.2287 3 45 2123 3614 0.2045 32.9370 0 46 2123 3615 1.0224 32.9370 2 46 2123 3616 0.6134 33.6453 1 47 2123 3617 1.4313 33.6453 3 47 2123 3618 2.2492 32.2287 5 45 2123 3619 3.0671 32.2287 7 45 2123 3620 1.8403 32.9370 4 46 2123 3621 2.6582 32.9370 6 46 2123 3622 2.2492 33.6453 5 47 2123 3623 3.0671 33.6453 7 47 2123 3624 3.4761 30.1037 8 42 2124 3625 4.2940 30.1037 10 42 2124 3626 3.8850 30.8120 9 43 2124 3627 4.7029 30.8120 11 43 2124 3628 3.4761 31.5203 8 44 2124 3629 4.2940 31.5203 10 44 2124 3630 5.1119 30.1037 12 42 2124 3631 5.9298 30.1037 14 42 2124 3632 5.5208 30.8120 13 43 2124 3633 6.3387 30.8120 15 43 2124 3634 5.1119 31.5203 12 44 2124 3635 5.9298 31.5203 14 44 2124 3636 3.8850 32.2287 9 45 2124 3637 4.7029 32.2287 11 45 2124 3638 3.4761 32.9370 8 46 2124 3639 4.2940 32.9370 10 46 2124 3640 3.8850 33.6453 9 47 2124 3641 4.7029 33.6453 11 47 2124 3642 5.5208 32.2287 13 45 2124 3643 6.3387 32.2287 15 45 2124 3644 5.1119 32.9370 12 46 2124 3645 5.9298 32.9370 14 46 2124 3646 5.5208 33.6453 13 47 2124 3647 6.3387 33.6453 15 47 2124 3648 0.2045 34.3536 0 48 2125 3649 1.0224 34.3536 2 48 2125 3650 0.6134 35.0620 1 49 2125 3651 1.4313 35.0620 3 49 2125 3652 0.2045 35.7703 0 50 2125 3653 1.0224 35.7703 2 50 2125 3654 1.8403 34.3536 4 48 2125 3655 2.6582 34.3536 6 48 2125 3656 2.2492 35.0620 5 49 2125 3657 3.0671 35.0620 7 49 2125 3658 1.8403 35.7703 4 50 2125 3659 2.6582 35.7703 6 50 2125 3660 0.6134 36.4786 1 51 2125 3661 1.4313 36.4786 3 51 2125 3662 0.2045 37.1869 0 52 2125 3663 1.0224 37.1869 2 52 2125 3664 0.6134 37.8952 1 53 2125 3665 1.4313 37.8952 3 53 2125 3666 2.2492 36.4786 5 51 2125 3667 3.0671 36.4786 7 51 2125 3668 1.8403 37.1869 4 52 2125 3669 2.6582 37.1869 6 52 2125 3670 2.2492 37.8952 5 53 2125 3671 3.0671 37.8952 7 53 2125 3672 3.4761 34.3536 8 48 2126 3673 4.2940 34.3536 10 48 2126 3674 3.8850 35.0620 9 49 2126 3675 4.7029 35.0620 11 49 2126 3676 3.4761 35.7703 8 50 2126 3677 4.2940 35.7703 10 50 2126 3678 5.1119 34.3536 12 48 2126 3679 5.9298 34.3536 14 48 2126 3680 5.5208 35.0620 13 49 2126 3681 6.3387 35.0620 15 49 2126 3682 5.1119 35.7703 12 50 2126 3683 5.9298 35.7703 14 50 2126 3684 3.8850 36.4786 9 51 2126 3685 4.7029 36.4786 11 51 2126 3686 3.4761 37.1869 8 52 2126 3687 4.2940 37.1869 10 52 2126 3688 3.8850 37.8952 9 53 2126 3689 4.7029 37.8952 11 53 2126 3690 5.5208 36.4786 13 51 2126 3691 6.3387 36.4786 15 51 2126 3692 5.1119 37.1869 12 52 2126 3693 5.9298 37.1869 14 52 2126 3694 5.5208 37.8952 13 53 2126 3695 6.3387 37.8952 15 53 2126 3696 0.2045 38.6036 0 54 2127 3697 1.0224 38.6036 2 54 2127 3698 0.6134 39.3119 1 55 2127 3699 1.4313 39.3119 3 55 2127 3700 0.2045 40.0202 0 56 2127 3701 1.0224 40.0202 2 56 2127 3702 1.8403 38.6036 4 54 2127 3703 2.6582 38.6036 6 54 2127 3704 2.2492 39.3119 5 55 2127 3705 3.0671 39.3119 7 55 2127 3706 1.8403 40.0202 4 56 2127 3707 2.6582 40.0202 6 56 2127 3708 0.6134 40.7285 1 57 2127 3709 1.4313 40.7285 3 57 2127 3710 0.2045 41.4369 0 58 2127 3711 1.0224 41.4369 2 58 2127 3712 0.6134 42.1452 1 59 2127 3713 1.4313 42.1452 3 59 2127 3714 2.2492 40.7285 5 57 2127 3715 3.0671 40.7285 7 57 2127 3716 1.8403 41.4369 4 58 2127 3717 2.6582 41.4369 6 58 2127 3718 2.2492 42.1452 5 59 2127 3719 3.0671 42.1452 7 59 2127 3720 3.4761 38.6036 8 54 2128 3721 4.2940 38.6036 10 54 2128 3722 3.8850 39.3119 9 55 2128 3723 4.7029 39.3119 11 55 2128 3724 3.4761 40.0202 8 56 2128 3725 4.2940 40.0202 10 56 2128 3726 5.1119 38.6036 12 54 2128 3727 5.9298 38.6036 14 54 2128 3728 5.5208 39.3119 13 55 2128 3729 6.3387 39.3119 15 55 2128 3730 5.1119 40.0202 12 56 2128 3731 5.9298 40.0202 14 56 2128 3732 3.8850 40.7285 9 57 2128 3733 4.7029 40.7285 11 57 2128 3734 3.4761 41.4369 8 58 2128 3735 4.2940 41.4369 10 58 2128 3736 3.8850 42.1452 9 59 2128 3737 4.7029 42.1452 11 59 2128 3738 5.5208 40.7285 13 57 2128 3739 6.3387 40.7285 15 57 2128 3740 5.1119 41.4369 12 58 2128 3741 5.9298 41.4369 14 58 2128 3742 5.5208 42.1452 13 59 2128 3743 6.3387 42.1452 15 59 2128 3744 0.2045 42.8535 0 60 2129 3745 1.0224 42.8535 2 60 2129 3746 0.6134 43.5618 1 61 2129 3747 1.4313 43.5618 3 61 2129 3748 0.2045 44.2701 0 62 2129 3749 1.0224 44.2701 2 62 2129 3750 1.8403 42.8535 4 60 2129 3751 2.6582 42.8535 6 60 2129 3752 2.2492 43.5618 5 61 2129 3753 3.0671 43.5618 7 61 2129 3754 1.8403 44.2701 4 62 2129 3755 2.6582 44.2701 6 62 2129 3756 3.4761 42.8535 8 60 2129 3757 4.2940 42.8535 10 60 2129 3758 3.8850 43.5618 9 61 2129 3759 4.7029 43.5618 11 61 2129 3760 3.4761 44.2701 8 62 2129 3761 4.2940 44.2701 10 62 2129 3762 5.1119 42.8535 12 60 2129 3763 5.9298 42.8535 14 60 2129 3764 6.7477 42.8535 16 60 2129 3765 7.5656 42.8535 18 60 2129 3766 5.5208 43.5618 13 61 2129 3767 5.1119 44.2701 12 62 2129 3768 16.5625 0.3542 40 0 2200 3769 17.3804 0.3542 42 0 2200 3770 16.9714 1.0625 41 1 2200 3771 17.7893 1.0625 43 1 2200 3772 16.5625 1.7708 40 2 2200 3773 17.3804 1.7708 42 2 2200 3774 18.1983 0.3542 44 0 2200 3775 19.0162 0.3542 46 0 2200 3776 18.6072 1.0625 45 1 2200 3777 19.4251 1.0625 47 1 2200 3778 18.1983 1.7708 44 2 2200 3779 19.0162 1.7708 46 2 2200 3780 16.9714 2.4791 41 3 2200 3781 17.7893 2.4791 43 3 2200 3782 16.5625 3.1874 40 4 2200 3783 17.3804 3.1874 42 4 2200 3784 16.9714 3.8958 41 5 2200 3785 17.7893 3.8958 43 5 2200 3786 18.6072 2.4791 45 3 2200 3787 19.4251 2.4791 47 3 2200 3788 18.1983 3.1874 44 4 2200 3789 19.0162 3.1874 46 4 2200 3790 18.6072 3.8958 45 5 2200 3791 19.4251 3.8958 47 5 2200 3792 19.8341 0.3542 48 0 2201 3793 20.6520 0.3542 50 0 2201 3794 20.2430 1.0625 49 1 2201 3795 21.0609 1.0625 51 1 2201 3796 19.8341 1.7708 48 2 2201 3797 20.6520 1.7708 50 2 2201 3798 21.4699 0.3542 52 0 2201 3799 22.2878 0.3542 54 0 2201 3800 21.8788 1.0625 53 1 2201 3801 22.6967 1.0625 55 1 2201 3802 21.4699 1.7708 52 2 2201 3803 22.2878 1.7708 54 2 2201 3804 20.2430 2.4791 49 3 2201 3805 21.0609 2.4791 51 3 2201 3806 19.8341 3.1874 48 4 2201 3807 20.6520 3.1874 50 4 2201 3808 20.2430 3.8958 49 5 2201 3809 21.0609 3.8958 51 5 2201 3810 21.8788 2.4791 53 3 2201 3811 22.6967 2.4791 55 3 2201 3812 21.4699 3.1874 52 4 2201 3813 22.2878 3.1874 54 4 2201 3814 21.8788 3.8958 53 5 2201 3815 22.6967 3.8958 55 5 2201 3816 23.1057 0.3542 56 0 2202 3817 23.9236 0.3542 58 0 2202 3818 23.5146 1.0625 57 1 2202 3819 24.3325 1.0625 59 1 2202 3820 23.1057 1.7708 56 2 2202 3821 23.9236 1.7708 58 2 2202 3822 24.7415 0.3542 60 0 2202 3823 25.5594 0.3542 62 0 2202 3824 25.1504 1.0625 61 1 2202 3825 25.9683 1.0625 63 1 2202 3826 24.7415 1.7708 60 2 2202 3827 25.5594 1.7708 62 2 2202 3828 23.5146 2.4791 57 3 2202 3829 24.3325 2.4791 59 3 2202 3830 23.1057 3.1874 56 4 2202 3831 23.9236 3.1874 58 4 2202 3832 23.5146 3.8958 57 5 2202 3833 24.3325 3.8958 59 5 2202 3834 25.1504 2.4791 61 3 2202 3835 25.9683 2.4791 63 3 2202 3836 24.7415 3.1874 60 4 2202 3837 25.5594 3.1874 62 4 2202 3838 25.1504 3.8958 61 5 2202 3839 25.9683 3.8958 63 5 2202 3840 26.3773 0.3542 64 0 2203 3841 27.1952 0.3542 66 0 2203 3842 26.7862 1.0625 65 1 2203 3843 27.6041 1.0625 67 1 2203 3844 26.3773 1.7708 64 2 2203 3845 27.1952 1.7708 66 2 2203 3846 28.0131 0.3542 68 0 2203 3847 28.8310 0.3542 70 0 2203 3848 28.4220 1.0625 69 1 2203 3849 29.2399 1.0625 71 1 2203 3850 28.0131 1.7708 68 2 2203 3851 28.8310 1.7708 70 2 2203 3852 26.7862 2.4791 65 3 2203 3853 27.6041 2.4791 67 3 2203 3854 26.3773 3.1874 64 4 2203 3855 27.1952 3.1874 66 4 2203 3856 26.7862 3.8958 65 5 2203 3857 27.6041 3.8958 67 5 2203 3858 28.4220 2.4791 69 3 2203 3859 29.2399 2.4791 71 3 2203 3860 28.0131 3.1874 68 4 2203 3861 28.8310 3.1874 70 4 2203 3862 28.4220 3.8958 69 5 2203 3863 29.2399 3.8958 71 5 2203 3864 29.6489 0.3542 72 0 2204 3865 30.4668 0.3542 74 0 2204 3866 30.0578 1.0625 73 1 2204 3867 30.8757 1.0625 75 1 2204 3868 29.6489 1.7708 72 2 2204 3869 30.4668 1.7708 74 2 2204 3870 31.2847 0.3542 76 0 2204 3871 32.1026 0.3542 78 0 2204 3872 31.6936 1.0625 77 1 2204 3873 32.5115 1.0625 79 1 2204 3874 31.2847 1.7708 76 2 2204 3875 32.1026 1.7708 78 2 2204 3876 30.0578 2.4791 73 3 2204 3877 30.8757 2.4791 75 3 2204 3878 29.6489 3.1874 72 4 2204 3879 30.4668 3.1874 74 4 2204 3880 30.0578 3.8958 73 5 2204 3881 30.8757 3.8958 75 5 2204 3882 31.6936 2.4791 77 3 2204 3883 32.5115 2.4791 79 3 2204 3884 31.2847 3.1874 76 4 2204 3885 32.1026 3.1874 78 4 2204 3886 31.6936 3.8958 77 5 2204 3887 32.5115 3.8958 79 5 2204 3888 32.9205 0.3542 80 0 2205 3889 33.7384 0.3542 82 0 2205 3890 33.3294 1.0625 81 1 2205 3891 34.1473 1.0625 83 1 2205 3892 32.9205 1.7708 80 2 2205 3893 33.7384 1.7708 82 2 2205 3894 34.5563 0.3542 84 0 2205 3895 35.3742 0.3542 86 0 2205 3896 34.9652 1.0625 85 1 2205 3897 35.7831 1.0625 87 1 2205 3898 34.5563 1.7708 84 2 2205 3899 35.3742 1.7708 86 2 2205 3900 33.3294 2.4791 81 3 2205 3901 34.1473 2.4791 83 3 2205 3902 32.9205 3.1874 80 4 2205 3903 33.7384 3.1874 82 4 2205 3904 33.3294 3.8958 81 5 2205 3905 34.1473 3.8958 83 5 2205 3906 34.9652 2.4791 85 3 2205 3907 35.7831 2.4791 87 3 2205 3908 34.5563 3.1874 84 4 2205 3909 35.3742 3.1874 86 4 2205 3910 34.9652 3.8958 85 5 2205 3911 35.7831 3.8958 87 5 2205 3912 36.1921 0.3542 88 0 2206 3913 37.0100 0.3542 90 0 2206 3914 36.6010 1.0625 89 1 2206 3915 37.4189 1.0625 91 1 2206 3916 36.1921 1.7708 88 2 2206 3917 37.0100 1.7708 90 2 2206 3918 37.8279 0.3542 92 0 2206 3919 38.6458 0.3542 94 0 2206 3920 38.2368 1.0625 93 1 2206 3921 39.0547 1.0625 95 1 2206 3922 37.8279 1.7708 92 2 2206 3923 38.6458 1.7708 94 2 2206 3924 36.6010 2.4791 89 3 2206 3925 37.4189 2.4791 91 3 2206 3926 36.1921 3.1874 88 4 2206 3927 37.0100 3.1874 90 4 2206 3928 36.6010 3.8958 89 5 2206 3929 37.4189 3.8958 91 5 2206 3930 38.2368 2.4791 93 3 2206 3931 39.0547 2.4791 95 3 2206 3932 37.8279 3.1874 92 4 2206 3933 38.6458 3.1874 94 4 2206 3934 38.2368 3.8958 93 5 2206 3935 39.0547 3.8958 95 5 2206 3936 39.4637 0.3542 96 0 2207 3937 40.2816 0.3542 98 0 2207 3938 39.8726 1.0625 97 1 2207 3939 40.6905 1.0625 99 1 2207 3940 39.4637 1.7708 96 2 2207 3941 40.2816 1.7708 98 2 2207 3942 41.0995 0.3542 100 0 2207 3943 41.9174 0.3542 102 0 2207 3944 41.5084 1.0625 101 1 2207 3945 42.3263 1.0625 103 1 2207 3946 41.0995 1.7708 100 2 2207 3947 41.9174 1.7708 102 2 2207 3948 39.8726 2.4791 97 3 2207 3949 40.6905 2.4791 99 3 2207 3950 39.4637 3.1874 96 4 2207 3951 40.2816 3.1874 98 4 2207 3952 39.8726 3.8958 97 5 2207 3953 40.6905 3.8958 99 5 2207 3954 41.5084 2.4791 101 3 2207 3955 42.3263 2.4791 103 3 2207 3956 41.0995 3.1874 100 4 2207 3957 41.9174 3.1874 102 4 2207 3958 41.5084 3.8958 101 5 2207 3959 42.3263 3.8958 103 5 2207 3960 42.7353 0.3542 104 0 2208 3961 43.5532 0.3542 106 0 2208 3962 43.1442 1.0625 105 1 2208 3963 43.9621 1.0625 107 1 2208 3964 42.7353 1.7708 104 2 2208 3965 43.5532 1.7708 106 2 2208 3966 43.1442 2.4791 105 3 2209 3967 43.9621 2.4791 107 3 2209 3968 42.7353 3.1874 104 4 2209 3969 43.5532 3.1874 106 4 2209 3970 43.1442 3.8958 105 5 2209 3971 43.9621 3.8958 107 5 2209 3972 16.5625 4.6041 40 6 2210 3973 17.3804 4.6041 42 6 2210 3974 16.9714 5.3124 41 7 2210 3975 17.7893 5.3124 43 7 2210 3976 16.5625 6.0207 40 8 2210 3977 17.3804 6.0207 42 8 2210 3978 18.1983 4.6041 44 6 2210 3979 19.0162 4.6041 46 6 2210 3980 18.6072 5.3124 45 7 2210 3981 19.4251 5.3124 47 7 2210 3982 18.1983 6.0207 44 8 2210 3983 19.0162 6.0207 46 8 2210 3984 16.9714 6.7291 41 9 2210 3985 17.7893 6.7291 43 9 2210 3986 16.5625 7.4374 40 10 2210 3987 17.3804 7.4374 42 10 2210 3988 16.9714 8.1457 41 11 2210 3989 17.7893 8.1457 43 11 2210 3990 18.6072 6.7291 45 9 2210 3991 19.4251 6.7291 47 9 2210 3992 18.1983 7.4374 44 10 2210 3993 19.0162 7.4374 46 10 2210 3994 18.6072 8.1457 45 11 2210 3995 19.4251 8.1457 47 11 2210 3996 19.8341 4.6041 48 6 2211 3997 20.6520 4.6041 50 6 2211 3998 20.2430 5.3124 49 7 2211 3999 21.0609 5.3124 51 7 2211 4000 19.8341 6.0207 48 8 2211 4001 20.6520 6.0207 50 8 2211 4002 21.4699 4.6041 52 6 2211 4003 22.2878 4.6041 54 6 2211 4004 21.8788 5.3124 53 7 2211 4005 22.6967 5.3124 55 7 2211 4006 21.4699 6.0207 52 8 2211 4007 22.2878 6.0207 54 8 2211 4008 20.2430 6.7291 49 9 2211 4009 21.0609 6.7291 51 9 2211 4010 19.8341 7.4374 48 10 2211 4011 20.6520 7.4374 50 10 2211 4012 20.2430 8.1457 49 11 2211 4013 21.0609 8.1457 51 11 2211 4014 21.8788 6.7291 53 9 2211 4015 22.6967 6.7291 55 9 2211 4016 21.4699 7.4374 52 10 2211 4017 22.2878 7.4374 54 10 2211 4018 21.8788 8.1457 53 11 2211 4019 22.6967 8.1457 55 11 2211 4020 23.1057 4.6041 56 6 2212 4021 23.9236 4.6041 58 6 2212 4022 23.5146 5.3124 57 7 2212 4023 24.3325 5.3124 59 7 2212 4024 23.1057 6.0207 56 8 2212 4025 23.9236 6.0207 58 8 2212 4026 24.7415 4.6041 60 6 2212 4027 25.5594 4.6041 62 6 2212 4028 25.1504 5.3124 61 7 2212 4029 25.9683 5.3124 63 7 2212 4030 24.7415 6.0207 60 8 2212 4031 25.5594 6.0207 62 8 2212 4032 23.5146 6.7291 57 9 2212 4033 24.3325 6.7291 59 9 2212 4034 23.1057 7.4374 56 10 2212 4035 23.9236 7.4374 58 10 2212 4036 23.5146 8.1457 57 11 2212 4037 24.3325 8.1457 59 11 2212 4038 25.1504 6.7291 61 9 2212 4039 25.9683 6.7291 63 9 2212 4040 24.7415 7.4374 60 10 2212 4041 25.5594 7.4374 62 10 2212 4042 25.1504 8.1457 61 11 2212 4043 25.9683 8.1457 63 11 2212 4044 26.3773 4.6041 64 6 2213 4045 27.1952 4.6041 66 6 2213 4046 26.7862 5.3124 65 7 2213 4047 27.6041 5.3124 67 7 2213 4048 26.3773 6.0207 64 8 2213 4049 27.1952 6.0207 66 8 2213 4050 28.0131 4.6041 68 6 2213 4051 28.8310 4.6041 70 6 2213 4052 28.4220 5.3124 69 7 2213 4053 29.2399 5.3124 71 7 2213 4054 28.0131 6.0207 68 8 2213 4055 28.8310 6.0207 70 8 2213 4056 26.7862 6.7291 65 9 2213 4057 27.6041 6.7291 67 9 2213 4058 26.3773 7.4374 64 10 2213 4059 27.1952 7.4374 66 10 2213 4060 26.7862 8.1457 65 11 2213 4061 27.6041 8.1457 67 11 2213 4062 28.4220 6.7291 69 9 2213 4063 29.2399 6.7291 71 9 2213 4064 28.0131 7.4374 68 10 2213 4065 28.8310 7.4374 70 10 2213 4066 28.4220 8.1457 69 11 2213 4067 29.2399 8.1457 71 11 2213 4068 29.6489 4.6041 72 6 2214 4069 30.4668 4.6041 74 6 2214 4070 30.0578 5.3124 73 7 2214 4071 30.8757 5.3124 75 7 2214 4072 29.6489 6.0207 72 8 2214 4073 30.4668 6.0207 74 8 2214 4074 31.2847 4.6041 76 6 2214 4075 32.1026 4.6041 78 6 2214 4076 31.6936 5.3124 77 7 2214 4077 32.5115 5.3124 79 7 2214 4078 31.2847 6.0207 76 8 2214 4079 32.1026 6.0207 78 8 2214 4080 30.0578 6.7291 73 9 2214 4081 30.8757 6.7291 75 9 2214 4082 29.6489 7.4374 72 10 2214 4083 30.4668 7.4374 74 10 2214 4084 30.0578 8.1457 73 11 2214 4085 30.8757 8.1457 75 11 2214 4086 31.6936 6.7291 77 9 2214 4087 32.5115 6.7291 79 9 2214 4088 31.2847 7.4374 76 10 2214 4089 32.1026 7.4374 78 10 2214 4090 31.6936 8.1457 77 11 2214 4091 32.5115 8.1457 79 11 2214 4092 32.9205 4.6041 80 6 2215 4093 33.7384 4.6041 82 6 2215 4094 33.3294 5.3124 81 7 2215 4095 34.1473 5.3124 83 7 2215 4096 32.9205 6.0207 80 8 2215 4097 33.7384 6.0207 82 8 2215 4098 34.5563 4.6041 84 6 2215 4099 35.3742 4.6041 86 6 2215 4100 34.9652 5.3124 85 7 2215 4101 35.7831 5.3124 87 7 2215 4102 34.5563 6.0207 84 8 2215 4103 35.3742 6.0207 86 8 2215 4104 33.3294 6.7291 81 9 2215 4105 34.1473 6.7291 83 9 2215 4106 32.9205 7.4374 80 10 2215 4107 33.7384 7.4374 82 10 2215 4108 33.3294 8.1457 81 11 2215 4109 34.1473 8.1457 83 11 2215 4110 34.9652 6.7291 85 9 2215 4111 35.7831 6.7291 87 9 2215 4112 34.5563 7.4374 84 10 2215 4113 35.3742 7.4374 86 10 2215 4114 34.9652 8.1457 85 11 2215 4115 35.7831 8.1457 87 11 2215 4116 36.1921 4.6041 88 6 2216 4117 37.0100 4.6041 90 6 2216 4118 36.6010 5.3124 89 7 2216 4119 37.4189 5.3124 91 7 2216 4120 36.1921 6.0207 88 8 2216 4121 37.0100 6.0207 90 8 2216 4122 37.8279 4.6041 92 6 2216 4123 38.6458 4.6041 94 6 2216 4124 38.2368 5.3124 93 7 2216 4125 39.0547 5.3124 95 7 2216 4126 37.8279 6.0207 92 8 2216 4127 38.6458 6.0207 94 8 2216 4128 36.6010 6.7291 89 9 2216 4129 37.4189 6.7291 91 9 2216 4130 36.1921 7.4374 88 10 2216 4131 37.0100 7.4374 90 10 2216 4132 36.6010 8.1457 89 11 2216 4133 37.4189 8.1457 91 11 2216 4134 38.2368 6.7291 93 9 2216 4135 39.0547 6.7291 95 9 2216 4136 37.8279 7.4374 92 10 2216 4137 38.6458 7.4374 94 10 2216 4138 38.2368 8.1457 93 11 2216 4139 39.0547 8.1457 95 11 2216 4140 39.4637 4.6041 96 6 2217 4141 40.2816 4.6041 98 6 2217 4142 39.8726 5.3124 97 7 2217 4143 40.6905 5.3124 99 7 2217 4144 39.4637 6.0207 96 8 2217 4145 40.2816 6.0207 98 8 2217 4146 41.0995 4.6041 100 6 2217 4147 41.9174 4.6041 102 6 2217 4148 41.5084 5.3124 101 7 2217 4149 42.3263 5.3124 103 7 2217 4150 41.0995 6.0207 100 8 2217 4151 41.9174 6.0207 102 8 2217 4152 39.8726 6.7291 97 9 2217 4153 40.6905 6.7291 99 9 2217 4154 39.4637 7.4374 96 10 2217 4155 40.2816 7.4374 98 10 2217 4156 39.8726 8.1457 97 11 2217 4157 40.6905 8.1457 99 11 2217 4158 41.5084 6.7291 101 9 2217 4159 42.3263 6.7291 103 9 2217 4160 41.0995 7.4374 100 10 2217 4161 41.9174 7.4374 102 10 2217 4162 41.5084 8.1457 101 11 2217 4163 42.3263 8.1457 103 11 2217 4164 42.7353 4.6041 104 6 2218 4165 43.5532 4.6041 106 6 2218 4166 43.1442 5.3124 105 7 2218 4167 43.9621 5.3124 107 7 2218 4168 42.7353 6.0207 104 8 2218 4169 43.5532 6.0207 106 8 2218 4170 29.6489 8.8540 72 12 2219 4171 30.4668 8.8540 74 12 2219 4172 30.0578 9.5624 73 13 2219 4173 30.8757 9.5624 75 13 2219 4174 29.6489 10.2707 72 14 2219 4175 30.4668 10.2707 74 14 2219 4176 31.2847 8.8540 76 12 2219 4177 32.1026 8.8540 78 12 2219 4178 31.6936 9.5624 77 13 2219 4179 32.5115 9.5624 79 13 2219 4180 31.2847 10.2707 76 14 2219 4181 32.1026 10.2707 78 14 2219 4182 30.0578 10.9790 73 15 2219 4183 30.8757 10.9790 75 15 2219 4184 29.6489 11.6873 72 16 2219 4185 30.4668 11.6873 74 16 2219 4186 30.0578 12.3956 73 17 2219 4187 30.8757 12.3956 75 17 2219 4188 31.6936 10.9790 77 15 2219 4189 32.5115 10.9790 79 15 2219 4190 31.2847 11.6873 76 16 2219 4191 32.1026 11.6873 78 16 2219 4192 31.6936 12.3956 77 17 2219 4193 32.5115 12.3956 79 17 2219 4194 32.9205 8.8540 80 12 2220 4195 33.7384 8.8540 82 12 2220 4196 33.3294 9.5624 81 13 2220 4197 34.1473 9.5624 83 13 2220 4198 32.9205 10.2707 80 14 2220 4199 33.7384 10.2707 82 14 2220 4200 34.5563 8.8540 84 12 2220 4201 35.3742 8.8540 86 12 2220 4202 34.9652 9.5624 85 13 2220 4203 35.7831 9.5624 87 13 2220 4204 34.5563 10.2707 84 14 2220 4205 35.3742 10.2707 86 14 2220 4206 33.3294 10.9790 81 15 2220 4207 34.1473 10.9790 83 15 2220 4208 32.9205 11.6873 80 16 2220 4209 33.7384 11.6873 82 16 2220 4210 33.3294 12.3956 81 17 2220 4211 34.1473 12.3956 83 17 2220 4212 34.9652 10.9790 85 15 2220 4213 35.7831 10.9790 87 15 2220 4214 34.5563 11.6873 84 16 2220 4215 35.3742 11.6873 86 16 2220 4216 34.9652 12.3956 85 17 2220 4217 35.7831 12.3956 87 17 2220 4218 36.1921 8.8540 88 12 2221 4219 37.0100 8.8540 90 12 2221 4220 36.6010 9.5624 89 13 2221 4221 37.4189 9.5624 91 13 2221 4222 36.1921 10.2707 88 14 2221 4223 37.0100 10.2707 90 14 2221 4224 37.8279 8.8540 92 12 2221 4225 38.6458 8.8540 94 12 2221 4226 38.2368 9.5624 93 13 2221 4227 39.0547 9.5624 95 13 2221 4228 37.8279 10.2707 92 14 2221 4229 38.6458 10.2707 94 14 2221 4230 36.6010 10.9790 89 15 2221 4231 37.4189 10.9790 91 15 2221 4232 36.1921 11.6873 88 16 2221 4233 37.0100 11.6873 90 16 2221 4234 36.6010 12.3956 89 17 2221 4235 37.4189 12.3956 91 17 2221 4236 38.2368 10.9790 93 15 2221 4237 39.0547 10.9790 95 15 2221 4238 37.8279 11.6873 92 16 2221 4239 38.6458 11.6873 94 16 2221 4240 38.2368 12.3956 93 17 2221 4241 39.0547 12.3956 95 17 2221 4242 39.4637 8.8540 96 12 2222 4243 40.2816 8.8540 98 12 2222 4244 39.8726 9.5624 97 13 2222 4245 40.6905 9.5624 99 13 2222 4246 39.4637 10.2707 96 14 2222 4247 40.2816 10.2707 98 14 2222 4248 41.0995 8.8540 100 12 2222 4249 41.9174 8.8540 102 12 2222 4250 41.5084 9.5624 101 13 2222 4251 42.3263 9.5624 103 13 2222 4252 41.0995 10.2707 100 14 2222 4253 41.9174 10.2707 102 14 2222 4254 39.8726 10.9790 97 15 2222 4255 40.6905 10.9790 99 15 2222 4256 39.4637 11.6873 96 16 2222 4257 40.2816 11.6873 98 16 2222 4258 39.8726 12.3956 97 17 2222 4259 40.6905 12.3956 99 17 2222 4260 41.5084 10.9790 101 15 2222 4261 42.3263 10.9790 103 15 2222 4262 41.0995 11.6873 100 16 2222 4263 41.9174 11.6873 102 16 2222 4264 41.5084 12.3956 101 17 2222 4265 42.3263 12.3956 103 17 2222 4266 29.6489 13.1040 72 18 2223 4267 30.4668 13.1040 74 18 2223 4268 30.0578 13.8123 73 19 2223 4269 30.8757 13.8123 75 19 2223 4270 29.6489 14.5206 72 20 2223 4271 30.4668 14.5206 74 20 2223 4272 31.2847 13.1040 76 18 2223 4273 32.1026 13.1040 78 18 2223 4274 31.6936 13.8123 77 19 2223 4275 32.5115 13.8123 79 19 2223 4276 31.2847 14.5206 76 20 2223 4277 32.1026 14.5206 78 20 2223 4278 30.0578 15.2289 73 21 2223 4279 30.8757 15.2289 75 21 2223 4280 29.6489 15.9373 72 22 2223 4281 30.4668 15.9373 74 22 2223 4282 30.0578 16.6456 73 23 2223 4283 30.8757 16.6456 75 23 2223 4284 31.6936 15.2289 77 21 2223 4285 32.5115 15.2289 79 21 2223 4286 31.2847 15.9373 76 22 2223 4287 32.1026 15.9373 78 22 2223 4288 31.6936 16.6456 77 23 2223 4289 32.5115 16.6456 79 23 2223 4290 32.9205 13.1040 80 18 2224 4291 33.7384 13.1040 82 18 2224 4292 33.3294 13.8123 81 19 2224 4293 34.1473 13.8123 83 19 2224 4294 32.9205 14.5206 80 20 2224 4295 33.7384 14.5206 82 20 2224 4296 34.5563 13.1040 84 18 2224 4297 35.3742 13.1040 86 18 2224 4298 34.9652 13.8123 85 19 2224 4299 35.7831 13.8123 87 19 2224 4300 34.5563 14.5206 84 20 2224 4301 35.3742 14.5206 86 20 2224 4302 33.3294 15.2289 81 21 2224 4303 34.1473 15.2289 83 21 2224 4304 32.9205 15.9373 80 22 2224 4305 33.7384 15.9373 82 22 2224 4306 33.3294 16.6456 81 23 2224 4307 34.1473 16.6456 83 23 2224 4308 34.9652 15.2289 85 21 2224 4309 35.7831 15.2289 87 21 2224 4310 34.5563 15.9373 84 22 2224 4311 35.3742 15.9373 86 22 2224 4312 34.9652 16.6456 85 23 2224 4313 35.7831 16.6456 87 23 2224 4314 36.1921 13.1040 88 18 2225 4315 37.0100 13.1040 90 18 2225 4316 36.6010 13.8123 89 19 2225 4317 37.4189 13.8123 91 19 2225 4318 36.1921 14.5206 88 20 2225 4319 37.0100 14.5206 90 20 2225 4320 37.8279 13.1040 92 18 2225 4321 38.6458 13.1040 94 18 2225 4322 38.2368 13.8123 93 19 2225 4323 39.0547 13.8123 95 19 2225 4324 37.8279 14.5206 92 20 2225 4325 38.6458 14.5206 94 20 2225 4326 36.6010 15.2289 89 21 2225 4327 37.4189 15.2289 91 21 2225 4328 36.1921 15.9373 88 22 2225 4329 37.0100 15.9373 90 22 2225 4330 36.6010 16.6456 89 23 2225 4331 37.4189 16.6456 91 23 2225 4332 38.2368 15.2289 93 21 2225 4333 39.0547 15.2289 95 21 2225 4334 37.8279 15.9373 92 22 2225 4335 38.6458 15.9373 94 22 2225 4336 38.2368 16.6456 93 23 2225 4337 39.0547 16.6456 95 23 2225 4338 39.4637 13.1040 96 18 2226 4339 40.2816 13.1040 98 18 2226 4340 39.8726 13.8123 97 19 2226 4341 40.6905 13.8123 99 19 2226 4342 39.4637 14.5206 96 20 2226 4343 40.2816 14.5206 98 20 2226 4344 41.0995 13.1040 100 18 2226 4345 41.9174 13.1040 102 18 2226 4346 41.5084 13.8123 101 19 2226 4347 42.3263 13.8123 103 19 2226 4348 41.0995 14.5206 100 20 2226 4349 41.9174 14.5206 102 20 2226 4350 39.8726 15.2289 97 21 2226 4351 40.6905 15.2289 99 21 2226 4352 41.5084 15.2289 101 21 2226 4353 39.4637 15.9373 96 22 2226 4354 40.2816 15.9373 98 22 2226 4355 41.0995 15.9373 100 22 2226 4356 39.8726 16.6456 97 23 2226 4357 40.6905 16.6456 99 23 2226 4358 39.4637 17.3539 96 24 2226 4359 40.2816 17.3539 98 24 2226 4360 39.8726 18.0622 97 25 2226 4361 39.4637 18.7705 96 26 2226 4362 32.9205 17.3539 80 24 2227 4363 33.7384 17.3539 82 24 2227 4364 33.3294 18.0622 81 25 2227 4365 34.1473 18.0622 83 25 2227 4366 32.9205 18.7705 80 26 2227 4367 33.7384 18.7705 82 26 2227 4368 34.5563 17.3539 84 24 2227 4369 35.3742 17.3539 86 24 2227 4370 34.9652 18.0622 85 25 2227 4371 35.7831 18.0622 87 25 2227 4372 34.5563 18.7705 84 26 2227 4373 35.3742 18.7705 86 26 2227 4374 33.3294 19.4789 81 27 2227 4375 34.1473 19.4789 83 27 2227 4376 32.9205 20.1872 80 28 2227 4377 33.7384 20.1872 82 28 2227 4378 33.3294 20.8955 81 29 2227 4379 34.1473 20.8955 83 29 2227 4380 34.9652 19.4789 85 27 2227 4381 35.7831 19.4789 87 27 2227 4382 34.5563 20.1872 84 28 2227 4383 35.3742 20.1872 86 28 2227 4384 34.9652 20.8955 85 29 2227 4385 35.7831 20.8955 87 29 2227 4386 36.1921 17.3539 88 24 2228 4387 37.0100 17.3539 90 24 2228 4388 36.6010 18.0622 89 25 2228 4389 37.4189 18.0622 91 25 2228 4390 36.1921 18.7705 88 26 2228 4391 37.0100 18.7705 90 26 2228 4392 37.8279 17.3539 92 24 2228 4393 38.6458 17.3539 94 24 2228 4394 38.2368 18.0622 93 25 2228 4395 39.0547 18.0622 95 25 2228 4396 37.8279 18.7705 92 26 2228 4397 38.6458 18.7705 94 26 2228 4398 36.6010 19.4789 89 27 2228 4399 37.4189 19.4789 91 27 2228 4400 36.1921 20.1872 88 28 2228 4401 37.0100 20.1872 90 28 2228 4402 36.6010 20.8955 89 29 2228 4403 37.4189 20.8955 91 29 2228 4404 38.2368 19.4789 93 27 2228 4405 39.0547 19.4789 95 27 2228 4406 37.8279 20.1872 92 28 2228 4407 38.6458 20.1872 94 28 2228 4408 38.2368 20.8955 93 29 2228 4409 39.0547 20.8955 95 29 2228 4410 29.6489 21.6038 72 30 2229 4411 30.4668 21.6038 74 30 2229 4412 30.0578 22.3122 73 31 2229 4413 30.8757 22.3122 75 31 2229 4414 29.6489 23.0205 72 32 2229 4415 30.4668 23.0205 74 32 2229 4416 31.2847 21.6038 76 30 2229 4417 32.1026 21.6038 78 30 2229 4418 31.6936 22.3122 77 31 2229 4419 32.5115 22.3122 79 31 2229 4420 31.2847 23.0205 76 32 2229 4421 32.1026 23.0205 78 32 2229 4422 30.0578 23.7288 73 33 2229 4423 30.8757 23.7288 75 33 2229 4424 29.6489 24.4371 72 34 2229 4425 30.4668 24.4371 74 34 2229 4426 30.0578 25.1454 73 35 2229 4427 30.8757 25.1454 75 35 2229 4428 31.6936 23.7288 77 33 2229 4429 32.5115 23.7288 79 33 2229 4430 31.2847 24.4371 76 34 2229 4431 32.1026 24.4371 78 34 2229 4432 31.6936 25.1454 77 35 2229 4433 32.5115 25.1454 79 35 2229 4434 32.9205 21.6038 80 30 2230 4435 33.7384 21.6038 82 30 2230 4436 33.3294 22.3122 81 31 2230 4437 34.1473 22.3122 83 31 2230 4438 32.9205 23.0205 80 32 2230 4439 33.7384 23.0205 82 32 2230 4440 34.5563 21.6038 84 30 2230 4441 35.3742 21.6038 86 30 2230 4442 34.9652 22.3122 85 31 2230 4443 35.7831 22.3122 87 31 2230 4444 34.5563 23.0205 84 32 2230 4445 35.3742 23.0205 86 32 2230 4446 33.3294 23.7288 81 33 2230 4447 34.1473 23.7288 83 33 2230 4448 32.9205 24.4371 80 34 2230 4449 33.7384 24.4371 82 34 2230 4450 33.3294 25.1454 81 35 2230 4451 34.1473 25.1454 83 35 2230 4452 34.9652 23.7288 85 33 2230 4453 34.5563 24.4371 84 34 2230 4454 34.9652 25.1454 85 35 2230 4455 35.3742 24.4371 86 34 2230 4456 35.7831 23.7288 87 33 2230 4457 36.1921 23.0205 88 32 2230 4458 36.6010 22.3122 89 31 2231 4459 37.4189 22.3122 91 31 2231 4460 38.2368 22.3122 93 31 2231 4461 39.0547 22.3122 95 31 2231 4462 37.0100 23.0205 90 32 2231 4463 37.8279 23.0205 92 32 2231 4464 29.6489 25.8538 72 36 2300 4465 30.4668 25.8538 74 36 2300 4466 30.0578 26.5621 73 37 2300 4467 30.8757 26.5621 75 37 2300 4468 29.6489 27.2704 72 38 2300 4469 30.4668 27.2704 74 38 2300 4470 31.2847 25.8538 76 36 2300 4471 32.1026 25.8538 78 36 2300 4472 31.6936 26.5621 77 37 2300 4473 32.5115 26.5621 79 37 2300 4474 31.2847 27.2704 76 38 2300 4475 32.1026 27.2704 78 38 2300 4476 30.0578 27.9787 73 39 2300 4477 30.8757 27.9787 75 39 2300 4478 29.6489 28.6870 72 40 2300 4479 30.4668 28.6870 74 40 2300 4480 30.0578 29.3954 73 41 2300 4481 30.8757 29.3954 75 41 2300 4482 31.6936 27.9787 77 39 2300 4483 32.5115 27.9787 79 39 2300 4484 31.2847 28.6870 76 40 2300 4485 32.1026 28.6870 78 40 2300 4486 31.6936 29.3954 77 41 2300 4487 32.5115 29.3954 79 41 2300 4488 32.9205 25.8538 80 36 2301 4489 33.7384 25.8538 82 36 2301 4490 34.5563 25.8538 84 36 2301 4491 33.3294 26.5621 81 37 2301 4492 34.1473 26.5621 83 37 2301 4493 34.9652 26.5621 85 37 2301 4494 32.9205 27.2704 80 38 2302 4495 33.7384 27.2704 82 38 2302 4496 33.3294 27.9787 81 39 2302 4497 34.1473 27.9787 83 39 2302 4498 32.9205 28.6870 80 40 2302 4499 33.7384 28.6870 82 40 2302 4500 6.7477 30.1037 16 42 2303 4501 7.5656 30.1037 18 42 2303 4502 7.1566 30.8120 17 43 2303 4503 7.9745 30.8120 19 43 2303 4504 6.7477 31.5203 16 44 2303 4505 7.5656 31.5203 18 44 2303 4506 8.3835 30.1037 20 42 2303 4507 9.2014 30.1037 22 42 2303 4508 8.7924 30.8120 21 43 2303 4509 9.6103 30.8120 23 43 2303 4510 8.3835 31.5203 20 44 2303 4511 9.2014 31.5203 22 44 2303 4512 7.1566 32.2287 17 45 2303 4513 7.9745 32.2287 19 45 2303 4514 6.7477 32.9370 16 46 2303 4515 7.5656 32.9370 18 46 2303 4516 7.1566 33.6453 17 47 2303 4517 7.9745 33.6453 19 47 2303 4518 8.7924 32.2287 21 45 2303 4519 9.6103 32.2287 23 45 2303 4520 8.3835 32.9370 20 46 2303 4521 9.2014 32.9370 22 46 2303 4522 8.7924 33.6453 21 47 2303 4523 9.6103 33.6453 23 47 2303 4524 10.0193 30.1037 24 42 2304 4525 10.8372 30.1037 26 42 2304 4526 10.4282 30.8120 25 43 2304 4527 11.2461 30.8120 27 43 2304 4528 10.0193 31.5203 24 44 2304 4529 10.8372 31.5203 26 44 2304 4530 11.6551 30.1037 28 42 2304 4531 12.4730 30.1037 30 42 2304 4532 12.0640 30.8120 29 43 2304 4533 12.8819 30.8120 31 43 2304 4534 11.6551 31.5203 28 44 2304 4535 12.4730 31.5203 30 44 2304 4536 10.4282 32.2287 25 45 2304 4537 11.2461 32.2287 27 45 2304 4538 10.0193 32.9370 24 46 2304 4539 10.8372 32.9370 26 46 2304 4540 10.4282 33.6453 25 47 2304 4541 11.2461 33.6453 27 47 2304 4542 12.0640 32.2287 29 45 2304 4543 12.8819 32.2287 31 45 2304 4544 11.6551 32.9370 28 46 2304 4545 12.4730 32.9370 30 46 2304 4546 12.0640 33.6453 29 47 2304 4547 12.8819 33.6453 31 47 2304 4548 13.2909 30.1037 32 42 2305 4549 14.1088 30.1037 34 42 2305 4550 13.6998 30.8120 33 43 2305 4551 14.5177 30.8120 35 43 2305 4552 13.2909 31.5203 32 44 2305 4553 14.1088 31.5203 34 44 2305 4554 14.9267 30.1037 36 42 2305 4555 15.7446 30.1037 38 42 2305 4556 15.3356 30.8120 37 43 2305 4557 16.1535 30.8120 39 43 2305 4558 14.9267 31.5203 36 44 2305 4559 15.7446 31.5203 38 44 2305 4560 13.6998 32.2287 33 45 2305 4561 14.5177 32.2287 35 45 2305 4562 13.2909 32.9370 32 46 2305 4563 14.1088 32.9370 34 46 2305 4564 13.6998 33.6453 33 47 2305 4565 14.5177 33.6453 35 47 2305 4566 15.3356 32.2287 37 45 2305 4567 16.1535 32.2287 39 45 2305 4568 14.9267 32.9370 36 46 2305 4569 15.7446 32.9370 38 46 2305 4570 15.3356 33.6453 37 47 2305 4571 16.1535 33.6453 39 47 2305 4572 16.5625 30.1037 40 42 2306 4573 17.3804 30.1037 42 42 2306 4574 16.9714 30.8120 41 43 2306 4575 17.7893 30.8120 43 43 2306 4576 16.5625 31.5203 40 44 2306 4577 17.3804 31.5203 42 44 2306 4578 18.1983 30.1037 44 42 2306 4579 19.0162 30.1037 46 42 2306 4580 18.6072 30.8120 45 43 2306 4581 19.4251 30.8120 47 43 2306 4582 18.1983 31.5203 44 44 2306 4583 19.0162 31.5203 46 44 2306 4584 16.9714 32.2287 41 45 2306 4585 17.7893 32.2287 43 45 2306 4586 16.5625 32.9370 40 46 2306 4587 17.3804 32.9370 42 46 2306 4588 16.9714 33.6453 41 47 2306 4589 17.7893 33.6453 43 47 2306 4590 18.6072 32.2287 45 45 2306 4591 19.4251 32.2287 47 45 2306 4592 18.1983 32.9370 44 46 2306 4593 19.0162 32.9370 46 46 2306 4594 18.6072 33.6453 45 47 2306 4595 19.4251 33.6453 47 47 2306 4596 19.8341 30.1037 48 42 2307 4597 20.6520 30.1037 50 42 2307 4598 20.2430 30.8120 49 43 2307 4599 21.0609 30.8120 51 43 2307 4600 19.8341 31.5203 48 44 2307 4601 20.6520 31.5203 50 44 2307 4602 21.4699 30.1037 52 42 2307 4603 22.2878 30.1037 54 42 2307 4604 21.8788 30.8120 53 43 2307 4605 22.6967 30.8120 55 43 2307 4606 21.4699 31.5203 52 44 2307 4607 22.2878 31.5203 54 44 2307 4608 20.2430 32.2287 49 45 2307 4609 21.0609 32.2287 51 45 2307 4610 19.8341 32.9370 48 46 2307 4611 20.6520 32.9370 50 46 2307 4612 20.2430 33.6453 49 47 2307 4613 21.0609 33.6453 51 47 2307 4614 21.8788 32.2287 53 45 2307 4615 22.6967 32.2287 55 45 2307 4616 21.4699 32.9370 52 46 2307 4617 22.2878 32.9370 54 46 2307 4618 21.8788 33.6453 53 47 2307 4619 22.6967 33.6453 55 47 2307 4620 23.1057 30.1037 56 42 2308 4621 23.9236 30.1037 58 42 2308 4622 23.5146 30.8120 57 43 2308 4623 24.3325 30.8120 59 43 2308 4624 23.1057 31.5203 56 44 2308 4625 23.9236 31.5203 58 44 2308 4626 24.7415 30.1037 60 42 2308 4627 25.5594 30.1037 62 42 2308 4628 25.1504 30.8120 61 43 2308 4629 25.9683 30.8120 63 43 2308 4630 24.7415 31.5203 60 44 2308 4631 25.5594 31.5203 62 44 2308 4632 23.5146 32.2287 57 45 2308 4633 24.3325 32.2287 59 45 2308 4634 23.1057 32.9370 56 46 2308 4635 23.9236 32.9370 58 46 2308 4636 23.5146 33.6453 57 47 2308 4637 24.3325 33.6453 59 47 2308 4638 25.1504 32.2287 61 45 2308 4639 25.9683 32.2287 63 45 2308 4640 24.7415 32.9370 60 46 2308 4641 25.5594 32.9370 62 46 2308 4642 25.1504 33.6453 61 47 2308 4643 25.9683 33.6453 63 47 2308 4644 26.3773 30.1037 64 42 2309 4645 27.1952 30.1037 66 42 2309 4646 26.7862 30.8120 65 43 2309 4647 27.6041 30.8120 67 43 2309 4648 26.3773 31.5203 64 44 2309 4649 27.1952 31.5203 66 44 2309 4650 28.0131 30.1037 68 42 2309 4651 28.8310 30.1037 70 42 2309 4652 28.4220 30.8120 69 43 2309 4653 29.2399 30.8120 71 43 2309 4654 28.0131 31.5203 68 44 2309 4655 28.8310 31.5203 70 44 2309 4656 26.7862 32.2287 65 45 2309 4657 27.6041 32.2287 67 45 2309 4658 26.3773 32.9370 64 46 2309 4659 27.1952 32.9370 66 46 2309 4660 26.7862 33.6453 65 47 2309 4661 27.6041 33.6453 67 47 2309 4662 28.4220 32.2287 69 45 2309 4663 29.2399 32.2287 71 45 2309 4664 28.0131 32.9370 68 46 2309 4665 28.8310 32.9370 70 46 2309 4666 28.4220 33.6453 69 47 2309 4667 29.2399 33.6453 71 47 2309 4668 29.6489 30.1037 72 42 2310 4669 30.4668 30.1037 74 42 2310 4670 31.2847 30.1037 76 42 2310 4671 30.0578 30.8120 73 43 2310 4672 30.8757 30.8120 75 43 2310 4673 31.6936 30.8120 77 43 2310 4674 29.6489 31.5203 72 44 2311 4675 30.4668 31.5203 74 44 2311 4676 31.2847 31.5203 76 44 2311 4677 30.0578 32.2287 73 45 2311 4678 30.8757 32.2287 75 45 2311 4679 29.6489 32.9370 72 46 2311 4680 6.7477 34.3536 16 48 2312 4681 7.5656 34.3536 18 48 2312 4682 7.1566 35.0620 17 49 2312 4683 7.9745 35.0620 19 49 2312 4684 6.7477 35.7703 16 50 2312 4685 7.5656 35.7703 18 50 2312 4686 8.3835 34.3536 20 48 2312 4687 9.2014 34.3536 22 48 2312 4688 8.7924 35.0620 21 49 2312 4689 9.6103 35.0620 23 49 2312 4690 8.3835 35.7703 20 50 2312 4691 9.2014 35.7703 22 50 2312 4692 7.1566 36.4786 17 51 2312 4693 7.9745 36.4786 19 51 2312 4694 6.7477 37.1869 16 52 2312 4695 7.5656 37.1869 18 52 2312 4696 7.1566 37.8952 17 53 2312 4697 7.9745 37.8952 19 53 2312 4698 8.7924 36.4786 21 51 2312 4699 9.6103 36.4786 23 51 2312 4700 8.3835 37.1869 20 52 2312 4701 9.2014 37.1869 22 52 2312 4702 8.7924 37.8952 21 53 2312 4703 9.6103 37.8952 23 53 2312 4704 10.0193 34.3536 24 48 2313 4705 10.8372 34.3536 26 48 2313 4706 10.4282 35.0620 25 49 2313 4707 11.2461 35.0620 27 49 2313 4708 10.0193 35.7703 24 50 2313 4709 10.8372 35.7703 26 50 2313 4710 11.6551 34.3536 28 48 2313 4711 12.4730 34.3536 30 48 2313 4712 12.0640 35.0620 29 49 2313 4713 12.8819 35.0620 31 49 2313 4714 11.6551 35.7703 28 50 2313 4715 12.4730 35.7703 30 50 2313 4716 10.4282 36.4786 25 51 2313 4717 11.2461 36.4786 27 51 2313 4718 10.0193 37.1869 24 52 2313 4719 10.8372 37.1869 26 52 2313 4720 10.4282 37.8952 25 53 2313 4721 11.2461 37.8952 27 53 2313 4722 12.0640 36.4786 29 51 2313 4723 12.8819 36.4786 31 51 2313 4724 11.6551 37.1869 28 52 2313 4725 12.4730 37.1869 30 52 2313 4726 12.0640 37.8952 29 53 2313 4727 12.8819 37.8952 31 53 2313 4728 13.2909 34.3536 32 48 2314 4729 14.1088 34.3536 34 48 2314 4730 13.6998 35.0620 33 49 2314 4731 14.5177 35.0620 35 49 2314 4732 13.2909 35.7703 32 50 2314 4733 14.1088 35.7703 34 50 2314 4734 14.9267 34.3536 36 48 2314 4735 15.7446 34.3536 38 48 2314 4736 15.3356 35.0620 37 49 2314 4737 16.1535 35.0620 39 49 2314 4738 14.9267 35.7703 36 50 2314 4739 15.7446 35.7703 38 50 2314 4740 13.6998 36.4786 33 51 2314 4741 14.5177 36.4786 35 51 2314 4742 13.2909 37.1869 32 52 2314 4743 14.1088 37.1869 34 52 2314 4744 13.6998 37.8952 33 53 2314 4745 14.5177 37.8952 35 53 2314 4746 15.3356 36.4786 37 51 2314 4747 16.1535 36.4786 39 51 2314 4748 14.9267 37.1869 36 52 2314 4749 15.7446 37.1869 38 52 2314 4750 15.3356 37.8952 37 53 2314 4751 16.1535 37.8952 39 53 2314 4752 16.5625 34.3536 40 48 2315 4753 17.3804 34.3536 42 48 2315 4754 16.9714 35.0620 41 49 2315 4755 17.7893 35.0620 43 49 2315 4756 16.5625 35.7703 40 50 2315 4757 17.3804 35.7703 42 50 2315 4758 18.1983 34.3536 44 48 2315 4759 19.0162 34.3536 46 48 2315 4760 18.6072 35.0620 45 49 2315 4761 19.4251 35.0620 47 49 2315 4762 18.1983 35.7703 44 50 2315 4763 19.0162 35.7703 46 50 2315 4764 16.9714 36.4786 41 51 2315 4765 17.7893 36.4786 43 51 2315 4766 16.5625 37.1869 40 52 2315 4767 17.3804 37.1869 42 52 2315 4768 16.9714 37.8952 41 53 2315 4769 17.7893 37.8952 43 53 2315 4770 18.6072 36.4786 45 51 2315 4771 19.4251 36.4786 47 51 2315 4772 18.1983 37.1869 44 52 2315 4773 19.0162 37.1869 46 52 2315 4774 18.6072 37.8952 45 53 2315 4775 19.4251 37.8952 47 53 2315 4776 19.8341 34.3536 48 48 2316 4777 20.6520 34.3536 50 48 2316 4778 20.2430 35.0620 49 49 2316 4779 21.0609 35.0620 51 49 2316 4780 19.8341 35.7703 48 50 2316 4781 20.6520 35.7703 50 50 2316 4782 21.4699 34.3536 52 48 2317 4783 22.2878 34.3536 54 48 2317 4784 21.8788 35.0620 53 49 2317 4785 22.6967 35.0620 55 49 2317 4786 21.4699 35.7703 52 50 2317 4787 22.2878 35.7703 54 50 2317 4788 23.1057 34.3536 56 48 2318 4789 23.9236 34.3536 58 48 2318 4790 23.5146 35.0620 57 49 2318 4791 24.3325 35.0620 59 49 2318 4792 23.1057 35.7703 56 50 2318 4793 23.9236 35.7703 58 50 2318 4794 24.7415 34.3536 60 48 2319 4795 25.5594 34.3536 62 48 2319 4796 26.3773 34.3536 64 48 2319 4797 27.1952 34.3536 66 48 2319 4798 25.1504 35.0620 61 49 2319 4799 25.9683 35.0620 63 49 2319 4800 20.2430 36.4786 49 51 2320 4801 21.0609 36.4786 51 51 2320 4802 19.8341 37.1869 48 52 2320 4803 20.6520 37.1869 50 52 2320 4804 20.2430 37.8952 49 53 2320 4805 21.0609 37.8952 51 53 2320 4806 21.8788 36.4786 53 51 2321 4807 22.6967 36.4786 55 51 2321 4808 23.5146 36.4786 57 51 2321 4809 21.4699 37.1869 52 52 2321 4810 22.2878 37.1869 54 52 2321 4811 21.8788 37.8952 53 53 2321 4812 6.7477 38.6036 16 54 2322 4813 7.5656 38.6036 18 54 2322 4814 7.1566 39.3119 17 55 2322 4815 7.9745 39.3119 19 55 2322 4816 6.7477 40.0202 16 56 2322 4817 7.5656 40.0202 18 56 2322 4818 8.3835 38.6036 20 54 2322 4819 9.2014 38.6036 22 54 2322 4820 8.7924 39.3119 21 55 2322 4821 9.6103 39.3119 23 55 2322 4822 8.3835 40.0202 20 56 2322 4823 9.2014 40.0202 22 56 2322 4824 7.1566 40.7285 17 57 2322 4825 7.9745 40.7285 19 57 2322 4826 6.7477 41.4369 16 58 2322 4827 7.5656 41.4369 18 58 2322 4828 7.1566 42.1452 17 59 2322 4829 7.9745 42.1452 19 59 2322 4830 8.7924 40.7285 21 57 2322 4831 9.6103 40.7285 23 57 2322 4832 8.3835 41.4369 20 58 2322 4833 9.2014 41.4369 22 58 2322 4834 8.7924 42.1452 21 59 2322 4835 9.6103 42.1452 23 59 2322 4836 10.0193 38.6036 24 54 2323 4837 10.8372 38.6036 26 54 2323 4838 10.4282 39.3119 25 55 2323 4839 11.2461 39.3119 27 55 2323 4840 10.0193 40.0202 24 56 2323 4841 10.8372 40.0202 26 56 2323 4842 11.6551 38.6036 28 54 2323 4843 12.4730 38.6036 30 54 2323 4844 12.0640 39.3119 29 55 2323 4845 12.8819 39.3119 31 55 2323 4846 11.6551 40.0202 28 56 2323 4847 12.4730 40.0202 30 56 2323 4848 10.4282 40.7285 25 57 2323 4849 11.2461 40.7285 27 57 2323 4850 10.0193 41.4369 24 58 2323 4851 10.8372 41.4369 26 58 2323 4852 10.4282 42.1452 25 59 2323 4853 11.2461 42.1452 27 59 2323 4854 12.0640 40.7285 29 57 2323 4855 12.8819 40.7285 31 57 2323 4856 11.6551 41.4369 28 58 2323 4857 12.4730 41.4369 30 58 2323 4858 12.0640 42.1452 29 59 2323 4859 12.8819 42.1452 31 59 2323 4860 13.2909 38.6036 32 54 2324 4861 14.1088 38.6036 34 54 2324 4862 13.6998 39.3119 33 55 2324 4863 14.5177 39.3119 35 55 2324 4864 13.2909 40.0202 32 56 2324 4865 14.1088 40.0202 34 56 2324 4866 14.9267 38.6036 36 54 2325 4867 15.7446 38.6036 38 54 2325 4868 15.3356 39.3119 37 55 2325 4869 16.1535 39.3119 39 55 2325 4870 14.9267 40.0202 36 56 2325 4871 15.7446 40.0202 38 56 2325 4872 16.5625 38.6036 40 54 2326 4873 17.3804 38.6036 42 54 2326 4874 16.9714 39.3119 41 55 2326 4875 17.7893 39.3119 43 55 2326 4876 16.5625 40.0202 40 56 2326 4877 17.3804 40.0202 42 56 2326 4878 18.1983 38.6036 44 54 2327 4879 19.0162 38.6036 46 54 2327 4880 18.6072 39.3119 45 55 2327 4881 19.4251 39.3119 47 55 2327 4882 18.1983 40.0202 44 56 2327 4883 19.0162 40.0202 46 56 2327 4884 19.8341 38.6036 48 54 2328 4885 20.6520 38.6036 50 54 2328 4886 21.4699 38.6036 52 54 2328 4887 22.2878 38.6036 54 54 2328 4888 20.2430 39.3119 49 55 2328 4889 14.1088 40.0202 34 56 2329 4890 13.6998 40.7285 33 57 2329 4891 14.5177 40.7285 35 57 2329 4892 15.3356 40.7285 37 57 2330 4893 16.1535 40.7285 39 57 2330 4894 16.9714 40.7285 41 57 2330 4895 17.7893 40.7285 43 57 2330 4896 14.9267 41.4369 36 58 2330 4897 15.7446 41.4369 38 58 2330 \ No newline at end of file diff --git a/examples/advanced/lAr_calorimeter/gui.mac b/examples/advanced/lAr_calorimeter/gui.mac new file mode 100644 index 0000000000..1d8cc47647 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/gui.mac @@ -0,0 +1,27 @@ +# +# 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 run1 "/control/execute run1.mac" +/gui/addButton run run2 "/control/execute run2.mac" +# +# Vis menu : +/gui/addMenu vis Vis +/gui/addButton vis Vis0 "/control/execute exN03Vis0.mac" +/gui/addButton vis Vis1 "/control/execute exN03Vis1.mac" +/gui/addButton vis Vis2 "/control/execute exN03Vis2.mac" +/gui/addButton vis Vis3 "/control/execute exN03Vis3.mac" +/gui/addButton vis Vis4 "/control/execute exN03Vis4.mac" +/gui/addButton vis Vis5 "/control/execute exN03Vis5.mac" +/gui/addButton vis Vis6 "/control/execute exN03Vis6.mac" +# +# To limit the output flow in the "dump" widget : +/event/printModulo 100 diff --git a/examples/advanced/lAr_calorimeter/include/FCALAnalysisManager.hh b/examples/advanced/lAr_calorimeter/include/FCALAnalysisManager.hh new file mode 100644 index 0000000000..c5a90eb242 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALAnalysisManager.hh @@ -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: FCALAnalysisManager.hh +// GEANT4 tag $Name: +// +// Author: Alex Howard (a.s.howard@ic.ac.uk) +// +// History: +// ----------- +// 16 Jan 2002 Alex Howard Created +// +// ------------------------------------------------------------------- + + + +#ifdef G4ANALYSIS_USE +#ifndef FCALAnalysisManager_h +#define FCALAnalysisManager_h 1 + +#include "globals.hh" + +// Histogramming from AIDA + +#include "AIDA/IAnalysisFactory.h" + +#include "AIDA/ITreeFactory.h" +#include "AIDA/ITree.h" + +#include "AIDA/IHistogramFactory.h" +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" +#include "AIDA/IHistogram3D.h" + +#include "AIDA/IPlotterFactory.h" +#include "AIDA/IPlotter.h" + +#include "AIDA/ITupleFactory.h" +#include "AIDA/ITuple.h" + +#include "AIDA/IManagedObject.h" + + +class IAnalysisFactory; +class ITree; +class IHistogramFactory; +class ITupleFactory; +class ITuple; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALAnalysisManager +{ +public: + + virtual ~FCALAnalysisManager(); + + // void book(); + void book(); + + void finish(); + + //fill histograms with OutOfWorld + void NumOutOfWorld(G4double, G4int, G4int); + + //fill histograms with Number of Secondaries + void Secondaries(G4double, G4int, G4int); + + //fill histograms with Energy Deposit + void Edep(G4double, G4double); + + //method to call to create an instance of this class + static FCALAnalysisManager* getInstance(); + + +private: + + //private constructor in order to create a singleton + FCALAnalysisManager(); + + static FCALAnalysisManager* instance; + + // Quantities for the ntuple + + G4double OutOfWorld; G4int i; G4int j; + + G4double Secondary; + + G4double EmEdep; G4double HadEdep; + + AIDA::IAnalysisFactory *af; + AIDA::ITree *tree; + AIDA::IHistogramFactory *hf; + AIDA::ITupleFactory *tpf; + AIDA::IPlotterFactory *pf; + AIDA::IPlotter *plotter; + +}; +#endif +#endif + + + diff --git a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh new file mode 100644 index 0000000000..970281d668 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh @@ -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. * +// ******************************************************************** +// 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: FCALCalorHit.hh,v 1.3 2002/12/12 19:16:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALCalorHit_h +#define FCALCalorHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALCalorHit : public G4VHit +{ + public: + + FCALCalorHit(); + ~FCALCalorHit(); + FCALCalorHit(const FCALCalorHit&); + const FCALCalorHit& operator=(const FCALCalorHit&); + int operator==(const FCALCalorHit&) const; + + inline void* operator new(size_t); + inline void operator delete(void*); + + void Draw(); + 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; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +typedef G4THitsCollection FCALCalorHitsCollection; + +extern G4Allocator FCALCalorHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void* FCALCalorHit::operator new(size_t) +{ + void* aHit; + aHit = (void*) FCALCalorHitAllocator.MallocSingle(); + return aHit; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void FCALCalorHit::operator delete(void* aHit) +{ + FCALCalorHitAllocator.FreeSingle((FCALCalorHit*) aHit); +} + +#endif + + diff --git a/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh b/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh new file mode 100644 index 0000000000..afdb7a5652 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.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. * +// ******************************************************************** +// Author: Mathieu Fontaine Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: Header file for FCALCryostatVolume.cc, which defines +// the volumes in the cryostat. +// Developped: 10-March-2000 M.F. +// +//---------------------------------------------------------------------------- + +#ifndef FCALCryostatVolumes_h +#define FCALCryostatVolumes_h 1 + +#include "globals.hh" +#include "G4LogicalVolume.hh" +#include "FCALEMModule.hh" +#include "FCALHadModule.hh" + +class FCALCryostatVolumes +{ +public: + + FCALCryostatVolumes(); + ~FCALCryostatVolumes(); + +public: + + G4LogicalVolume * Construct(); + +private: + + G4double CryostatRMin, CryostatRMax, CryostatLength, StartingPhi, DPhi; + + G4double InsulationRMin, InsulationRMax, InsulationLength; + G4double InsulationPosX, InsulationPosY, InsulationPosZ; + + G4double LArgRMin, LArgRMax, LArgLength; + G4double LArgPosX, LArgPosY, LArgPosZ; + + G4double FrontExcluderSizeX, FrontExcluderSizeY, FrontExcluderSizeZ; + G4double FrontExcluderPosX, FrontExcluderPosY, FrontExcluderPosZ; + + G4double BackExcluderSize1X, BackExcluderSize1Y, + BackExcluderSize2X, BackExcluderSize2Y, + BackExcluderSizeZ; + G4double BackExcluderPosX, BackExcluderPosY, BackExcluderPosZ, + BackExcluderRotX; + + G4double FCALEnvelopeRMin, FCALEnvelopeRMax, FCALEnvelopeLength, + FCALEnvelopeStartPhi, FCALEnvelopeDPhi; + G4double FCALEnvelopePosX, FCALEnvelopePosY, FCALEnvelopePosZ, + FCALEnvelopeRotX, FCALEnvelopeRotY; + + G4double FCALEmModulePosX, FCALEmModulePosY, FCALEmModulePosZ; + + G4double ModuleRotZ; + + G4double FCALHadModulePosX, FCALHadModulePosY, FCALHadModulePosZ; + + FCALEMModule * EmModule; + FCALHadModule * HadModule; + + +}; + +#endif /* FCALcryostatVolumes.hh */ + diff --git a/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh b/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh new file mode 100644 index 0000000000..23ca8493e2 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Author: Mathieu Fontaine Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: Header file for FCALEMModule.cc, which defines +// the geometry of the FCAL EMModule 0. +// Developped: 10-March-2000 M.F. +// +//---------------------------------------------------------------------------- + +#ifndef FCALEMModule_h +#define FCALEMModule_h 1 + +#include "globals.hh" +#include "G4LogicalVolume.hh" +#include "FCALEMModuleSD.hh" + + +class FCALEMModule +{ +public: + + FCALEMModule(); + ~FCALEMModule(); + +public: + + G4LogicalVolume * Construct(); + + void InitializeGeometry(); + G4int GetF1TileID(G4int); + G4double GetF1LArGapPosX(G4int); + +private: + G4int NF1LarGap; + G4int* F1LArGapID; + G4int* F1LArIX; + G4int* F1LArJY; + G4int* F1LArITile; + G4double* F1LArGapPosX; + G4double* F1LArGapPosY; + +private: + + G4double EmModuleRMin, EmModuleRMax, EmModuleLength, CableTroffLength, + EmModuleStartPhi, EmModuleDPhi; + G4double FCALEmSmart; + + G4int NCableTroff; + G4double F1CableTroffRMin, F1CableTroffRMax, F1CableTroffLength, F1CableTroffStartPhi, + F1CableTroffDPhi; + G4double F1CableTroffRotZ; + + G4double F1LArGapRmin, F1LArGapRmax, F1LArGapLength, F1LArGapStartPhi, F1LArGapDPhi; + + FCALEMModuleSD* FcalEmModuleSD; + + // G4double GapPosX, GapPosY; + //G4int GapID, IX, IY, ITile; + +}; + +#endif /* FCALEMModule.hh */ diff --git a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh new file mode 100644 index 0000000000..e3fca0e266 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.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. * +// ******************************************************************** +// 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: FCALEMModuleSD.hh,v 1.4 2002/12/12 19:16:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALEMModuleSD_h +#define FCALEMModuleSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "globals.hh" +#include "G4Event.hh" + +class FCALTestbeamSetup; +class FCALEMModule; +class G4HCofThisEvent; +class G4Step; +#include "FCALCalorHit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALEMModuleSD : public G4VSensitiveDetector +{ + public: + + // FCALEMModuleSD(G4String, FCALTestbeamSetup* ); + FCALEMModuleSD(G4String); + ~FCALEMModuleSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*,G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + + // FCALCalorHitsCollection* CalCollection; + // FCALTestbeamSetup* Detector; + // G4int* HitID; + FCALEMModule* EmModule; + G4int Init_state; + + public: + + G4double EvisF1Tile[1131]; + +}; + +#endif + diff --git a/examples/advanced/lAr_calorimeter/include/FCALHadModule.hh b/examples/advanced/lAr_calorimeter/include/FCALHadModule.hh new file mode 100644 index 0000000000..2ddfbd436f --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALHadModule.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. * +// ******************************************************************** +// Author: Mathieu Fontaine Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: Header file for FCALHadModule.cc, which defines +// the geometry of the FCAL HadModule 0. +// Developped: 10-March-2000 M.F. +// +//---------------------------------------------------------------------------- + +#ifndef FCALHadModule_h +#define FCALHadModule_h 1 + +#include "globals.hh" +#include "G4LogicalVolume.hh" +#include "G4SDManager.hh" +#include "FCALHadModuleSD.hh" + +class FCALHadModule +{ +public: + + FCALHadModule(); + ~FCALHadModule(); + +public: + + G4LogicalVolume * Construct(); + + void InitializeGeometry(); + G4int GetF2TileID(G4int); + +private: + G4int NF2LarGap; + G4int* F2LArGapID; + G4int* F2LArIX; + G4int* F2LArJY; + G4int* F2LArITile; + G4double* F2LArGapPosX; + G4double* F2LArGapPosY; + +private: + + G4double HadModuleRMin, HadModuleRMax, HadModuleLength; + G4double HadModuleStartPhi, HadModuleDPhi; + G4double FCAL2HadSmart; + + G4double WAbsorberRMin, WAbsorberRMax, WAbsorberLength; + G4double WAbsorberStartPhi, WAbsorberDPhi; + + G4double CuPlateLength, CuPlateAPosZ, CuPlateBPosZ; + + G4int NCableTroff; + G4double F2TroffRmin, F2TroffRmax, F2TroffMainLength; + G4double F2TroffABLength, F2TroffStartPhi, F2TroffDphi; + G4double F2TroffRotZ, F2TroffABPosZ; + + G4double F2LArGapRmin, F2LArGapRmax, F2LArGapLength; + G4double F2LArGapStartPhi, F2LArGapDphi; + G4double F2RodRmin, F2RodRmax, F2RodLength, F2RodStartPhi, F2RodDphi; + + FCALHadModuleSD* FcalHadModuleSD; + +}; + +#endif /* FCALHadModule.hh */ diff --git a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh new file mode 100644 index 0000000000..fa75526449 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALHadModuleSD.hh,v 1.4 2002/12/12 19:16:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALHadModuleSD_h +#define FCALHadModuleSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "globals.hh" + +class FCALTestbeamSetup; +class FCALHadModule; +class G4HCofThisEvent; +class G4Step; +#include "FCALCalorHit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALHadModuleSD : public G4VSensitiveDetector +{ + public: + + // FCALHadModuleSD(G4String, FCALTestbeamSetup* ); + FCALHadModuleSD(G4String); + ~FCALHadModuleSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*,G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + + // FCALCalorHitsCollection* CalCollection; + // FCALTestbeamSetup* Detector; + // G4int* HitID; + FCALHadModule* HadModule; + G4int InitF2; +public: + + G4double EvisF2Tile[2330]; + +}; + +#endif + diff --git a/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh b/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh new file mode 100644 index 0000000000..5c67b2f1f9 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Rachid Mazini Rachid.Mazini@cern.ch +// +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: Header file for the Material Expert for the Atlas FCAL +// See FCALMaterialConsultant for more details. +// Developped on: 10-March-2000 M.F. R.M. +// History: +// +//---------------------------------------------------------------------------- + +#ifndef FCALMaterialConsultant_h +#define FCALMaterialConsultant_h 1 + +#include "G4Material.hh" +#include "G4Element.hh" +#include "globals.hh" + +//#include "FCALParameters.hh" + +class FCALMaterialConsultant +{ +public: + + FCALMaterialConsultant(); + +public: + + ~FCALMaterialConsultant() {theFCALMaterialConsultant = NULL;}; + static FCALMaterialConsultant * construct(); + G4Material * Material(G4String); + +public: + + static FCALMaterialConsultant * theFCALMaterialConsultant; + +private: + + G4Element *elH, *elD, *elHe, *elLi, *elBe, *elC, *elN, *elNi; + G4Element *elNe, *elAl, *elFe, *elCu, *elW, *elPb, *elU, *elO; + G4Element *elCa, *elNa, *elSi; + + G4Material *Aluminium, *Iron, *Copper, *Tungsten, *Lead; + G4Material *Air, *RhoaCell, *Vacuum, *CO2, *ArgonGas, *ShieldingConcrete; + G4Material *Polystyrene, *StainlessSteel, *Nickel, *LiquidArgon; + G4Material *Kapton, *FCAL1CuArKap, *FCAL1CuAr, *FCAL2CuArKap; + G4Material *FCAL2WFeNi, *FCAL2WFeNiCuAr, *MWPCArCO2; + +}; + +#endif /* FCALMaterialConsultant.hh */ + + + + diff --git a/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh b/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh new file mode 100644 index 0000000000..819d90d0e3 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.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. * +// ******************************************************************** +// 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: FCALPhysicsList.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// $Id: FCALPhysicsList.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALPhysicsList_h +#define FCALPhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALPhysicsList: public G4VUserPhysicsList +{ + public: + FCALPhysicsList(); + ~FCALPhysicsList(); + + protected: + // Construct particle and physics + void ConstructParticle(); + void ConstructProcess(); + + void SetCuts(); + + public: + // Set/Get cut values + void SetCutForGamma(G4double); + void SetCutForElectron(G4double); + void SetCutForProton(G4double); + G4double GetCutForGamma() const; + G4double GetCutForElectron() const; + G4double GetCutForProton() const; + + protected: + // these methods Construct particles + void ConstructBosons(); + void ConstructLeptons(); + void ConstructMesons(); + void ConstructBaryons(); + + protected: + // these methods Construct physics processes and register them + void ConstructGeneral(); + void ConstructEM(); + + private: + G4double cutForGamma; + G4double cutForElectron; + G4double cutForProton; + G4double currentDefaultCut; +}; + +#endif + diff --git a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..a3ca205637 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.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. * +// ******************************************************************** +// 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: FCALPrimaryGeneratorAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALPrimaryGeneratorAction_h +#define FCALPrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4ParticleGun; +class G4Event; +class FCALTestbeamSetup; + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + FCALPrimaryGeneratorAction(); + ~FCALPrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + // void SetRndmFlag(G4String val) { rndmFlag = val;} + + private: + G4ParticleGun* particleGun; //pointer a to G4 service class + + + private: + G4int Ievent; + G4double* X; + G4double* Y; + G4double* Z; + G4double* Cos_X; + G4double* Cos_Y; + G4double* Cos_Z; + + G4int Nevent; + +}; + +#endif + + diff --git a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh new file mode 100644 index 0000000000..fbef596a2e --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALRunAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALRunAction_h +#define FCALRunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4Run; + +class FCALRunAction : public G4UserRunAction +{ + public: + FCALRunAction(); + ~FCALRunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + +}; + +#endif + diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh new file mode 100644 index 0000000000..9fa929a3a8 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALSteppingAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALSteppingAction_h +#define FCALSteppingAction_h 1 + +#include "G4UserSteppingAction.hh" +#include "G4ThreeVector.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALSteppingAction : public G4UserSteppingAction +{ + public: + FCALSteppingAction(); + virtual ~FCALSteppingAction(); + + virtual void UserSteppingAction(const G4Step*); + + private: + G4int EventNo; + G4int IDnow, IDout, IDold; + G4int NTracks, NSecondaries; + G4double OutOfWorldTracksData[6000][11], Secondaries[6000][11]; + G4double EdepFCALEm, EdepFCALHad; + + G4ThreeVector PrimaryVertex, PrimaryDirection; + G4ThreeVector SecondaryVertex, SecondaryDirection; + G4ThreeVector Distance, VectorProduct, VectorProductNorm; + G4double VectorProductMagnitude, DistOfClosestApproach; + + public: + void initialize(G4int); + G4double GetOutOfWorldTracks(G4int, G4int); + G4double GetSecondaries(G4int, G4int); + G4double GetEdepFCAL(G4String); + +}; + +#endif diff --git a/source/persistency/digits+hits/digits/include/G4PVDigit.ddl b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh similarity index 62% rename from source/persistency/digits+hits/digits/include/G4PVDigit.ddl rename to examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh index da6f5d2d18..70c5132a7a 100644 --- a/source/persistency/digits+hits/digits/include/G4PVDigit.ddl +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh @@ -19,43 +19,42 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// 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: FCALSteppingVerbose.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PVDigit.ddl,v 1.5 2001/12/07 03:49:10 morita Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// +//--------------------------------------------------------------- +// +// FCALSteppingVerbose.hh +// +// Description: +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose +// +//--------------------------------------------------------------- + +class FCALSteppingVerbose; + +#ifndef FCALSteppingVerbose_h +#define FCALSteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +class FCALSteppingVerbose : public G4SteppingVerbose { +public: +// Constructor/Destructor + FCALSteppingVerbose(); + ~FCALSteppingVerbose(); +// + void StepInfo(); + void TrackingStarted(); // -// Class Description: -// This is a persistent version of abstract base class of a detector -// digit. User should inherit from this class for his/her sensitive -// detector digit, to be added to the correponding digits collection. -// -#ifndef G4PVDigit_h -#define G4PVDigit_h 1 - -#include "G4Pglobals.hh" -#include "G4PersistentSchema.hh" - -#include "G4VDigi.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -class G4PVDigit - : public HepPersObj, public G4VDigi -{ - - public: // with description - G4PVDigit(); - // Constructor. - virtual ~G4PVDigit(); - // (Virtual) destructor. - - public: - int operator==(const G4PVDigit &right) const; - virtual void Draw(); - virtual void Print(); }; #endif - diff --git a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh new file mode 100644 index 0000000000..ba59950fc7 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.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. * +// ******************************************************************** +// 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: FCALTBEventAction.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALTBEventAction_h +#define FCALTBEventAction_h 1 + +#include "G4UserEventAction.hh" +#include "FCALSteppingAction.hh" +#include "globals.hh" +#include "G4ThreeVector.hh" + +class FCALAnalysisManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALTBEventAction : public G4UserEventAction +{ + public: + FCALTBEventAction(FCALSteppingAction* ); + virtual ~FCALTBEventAction(); + + public: + virtual void BeginOfEventAction(const G4Event*); + virtual void EndOfEventAction(const G4Event*); + + void SetDrawFlag (G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; + + private: + G4int calorimeterCollID; + G4String drawFlag; + G4int printModulo; + + FCALSteppingAction* StepAction; + + private: + G4int NTracksOutOfWorld, NSecondaries, Init1, Init2, Init3; + // G4double OutOfWorldTracks[1000][11], Secondaries[1000][11]; + +}; + +#endif + + diff --git a/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh b/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh new file mode 100644 index 0000000000..910ff88957 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.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. * +// ******************************************************************** + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef FCALTBEventActionMessenger_h +#define FCALTBEventActionMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class FCALTBEventAction; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class FCALTBEventActionMessenger: public G4UImessenger +{ + public: + FCALTBEventActionMessenger(FCALTBEventAction*); + ~FCALTBEventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + FCALTBEventAction* fcaltbeventAction; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh new file mode 100644 index 0000000000..248daf10a2 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh @@ -0,0 +1,129 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Author: Mathieu Fontaine Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: Header file for FCALFrontVolume.cc, which defines +// the volumes in the testbeam front. +// Developped: 10-March-2000 M.F. +// +//---------------------------------------------------------------------------- + + +#ifndef FCALTestbeamSetup_h +#define FCALTestbeamSetup_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" +#include "FCALTestbeamSetupSD.hh" + +//class FCALFrontVolumes; +//class FCALTailVolumes; +//class FCALCryostatVolumes; + +class G4LogicalVolume; +class G4VPhysicalVolume; + +class FCALTestbeamSetup : public G4VUserDetectorConstruction +{ + +public: + + FCALTestbeamSetup(); + ~FCALTestbeamSetup(); + +public: + + G4VPhysicalVolume* Construct(); + +private: + + G4double MotherSizeX, MotherSizeY, MotherSizeZ; + + G4double MWPCSizeX, MWPCSizeY, MWPCSizeZ; + G4double MWPCPosX, MWPCPosY, MWPCPosZ[5]; + + G4double ScintS1andS3SizeX, ScintS1andS3SizeY, ScintS1andS3SizeZ; + G4double ScintS2SizeX, ScintS2SizeY, ScintS2SizeZ; + G4double ScintS1_S3PosX, ScintS1_S3PosY, ScintS1PosZ,ScintS2PosZ, ScintS3PosZ; + + G4double HoleCntrSizeX, HoleCntrSizeY, HoleCntrScintSizeZ, HoleCntrAbsrbSizeZ; + G4double HoleCntrScintPosX, HoleCntrScintPosY, HoleCntrScintPosZ; + G4double HoleCntrPbPosX, HoleCntrPbPosY, HoleCntrPbPosZ; + G4double HoleCntrAlPosX, HoleCntrAlPosY, HoleCntrAlPosZ; + G4double ScintHoleRmin, ScintHoleRmax, ScintHoleLength; + G4double AbsrbHoleRmin, AbsrbHoleRmax, AbsrbHoleLength; + G4double HoleStartPhi, HoleDPhi; + G4double HolePosX, HolePosY, HolePosZ; + + G4double LeadWallSizeX, LeadWallSizeY, LeadWallSizeZ; + G4double LeadWallSlitSizeX, LeadWallSlitSizeY, LeadWallSlitSizeZ; + G4double LeadWallPosX,LeadWallPosY, LeadWallPosZ; + + G4double IronWallSizeX, IronWallSizeY, IronWallSizeZ; + G4double IronWallSlitSizeX, IronWallSlitSizeY, IronWallSlitSizeZ; + G4double IronWallPosX,IronWallPosY, IronWallPosZ; + + G4int NBigScint, NSmallScint, NBigIron, NSmallIron; + G4double BigScintSizeX, BigScintSizeY, SmallScintSizeX, SmallScintSizeY, ScintSizeZ; + G4double ScintPosX, ScintPosY, ScintPosZ[7]; + G4double BigIronSizeX, BigIronSizeY, SmallIronSizeX, SmallIronSizeY, IronSizeZ; + G4double IronPosX, IronPosY, IronPosZ[6]; + + G4double ConcWallSizeX, ConcWallSizeY, ConcWallSizeZ; + G4double ConcWallPosX, ConcWallPosY, ConcWallAPosZ, ConcWallBPosZ; + G4double ConcWallInsSizeX, ConcWallInsSizeY, ConcWallInsSizeZ; + G4double ConcWallInsPosX, ConcWallInsPosY, ConcWallInsPosZ; + + G4double MuCntrSIzeX, MuCntrSIzeY, MuCntrSIzeZ; + G4double MuCntrPosX, MuCntrPosY, MuCntrPosZ; + + + G4double CryostatPosX, CryostatPosY, CryostatPosZ; + + + FCALTestbeamSetupSD* FCALTBSetupSD; // Senstive detector + + /* + G4double TailPosX; + G4double TailPosY; + G4double TailPosZ; + + G4double FrontPosX; + G4double FrontPosY; + G4double FrontPosZ; + */ + /* + G4double EMModulePosX; + G4double EMModulePosY; + G4double EMModulePosZ; + + G4double HadModulePosX; + G4double HadModulePosY; + G4double HadModulePosZ; + */ + +}; + +#endif /* FCALTestbeamSetup.hh */ diff --git a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh new file mode 100644 index 0000000000..a464f29225 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.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. * +// ******************************************************************** +// 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: FCALTestbeamSetupSD.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef FCALTestbeamSetupSD_h +#define FCALTestbeamSetupSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "globals.hh" + +class FCALTestbeamSetup; +class G4HCofThisEvent; +class G4Step; +#include "FCALCalorHit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class FCALTestbeamSetupSD : public G4VSensitiveDetector +{ + public: + + // FCALTestbeamSetupSD(G4String, FCALTestbeamSetup* ); + FCALTestbeamSetupSD(G4String); + ~FCALTestbeamSetupSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*,G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + + // FCALCalorHitsCollection* CalCollection; + // FCALTestbeamSetup* Detector; + // G4int* HitID; + + G4int InitBeam; + +public: + + G4double EBeamS1, EBeamS2, EBeamS3; + G4double EHoleScint, EBeamHole; + G4double EBeamDead; + G4int TailCatcherID; + G4double ETailVis[8], ETailDep[7]; + + +}; + +#endif + diff --git a/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh b/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh new file mode 100644 index 0000000000..cc47c8280c --- /dev/null +++ b/examples/advanced/lAr_calorimeter/include/FCALVisManager.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. * +// ******************************************************************** +// 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.3 2002/12/12 19:16:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-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 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 new file mode 100644 index 0000000000..395aac3151 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/lArCal.cc @@ -0,0 +1,135 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: lArCal.cc,v 1.3 2002/12/12 19:16:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleN03 +// +// For information related to this code contact: +// CERN, IT Division, ASD Group +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" + +#ifdef G4UI_USE_XM +#include "G4UIXm.hh" +#endif + +#include "Randomize.hh" + +#ifdef G4VIS_USE +#include "FCALVisManager.hh" +#endif + +#include "FCALTestbeamSetup.hh" +#include "FCALPhysicsList.hh" +#include "FCALPrimaryGeneratorAction.hh" +#include "FCALRunAction.hh" +#include "FCALTBEventAction.hh" +#include "FCALSteppingAction.hh" +#include "FCALSteppingVerbose.hh" + +int main(int argc,char** argv) { + + // choose the Random engine + HepRandom::setTheEngine(new RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new FCALSteppingVerbose); + + // Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + // set mandatory initialization classes + FCALTestbeamSetup* detector = new FCALTestbeamSetup; + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new FCALPhysicsList); + + G4UIsession* session=0; + + if (argc==1) // Define UI session for interactive mode. + { + // G4UIterminal is a (dumb) terminal. +#ifdef G4UI_USE_XM + session = new G4UIXm(argc,argv); +#else + session = new G4UIterminal; +#endif + } + +#ifdef G4VIS_USE + // visualization manager + G4VisManager* visManager = new FCALVisManager; + visManager->Initialize(); +#endif + + // set user action classes + runManager->SetUserAction(new FCALPrimaryGeneratorAction()); + runManager->SetUserAction(new FCALRunAction); + FCALSteppingAction* StepAction = new FCALSteppingAction; + runManager->SetUserAction(new FCALTBEventAction(StepAction)); + runManager->SetUserAction(StepAction); + + //Initialize G4 kernel + runManager->Initialize(); + + // get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (session) // Define UI session for interactive mode. + { + // G4UIterminal is a (dumb) terminal. + UI->ApplyCommand("/control/execute prerunN03.mac"); +#ifdef G4UI_USE_XM + // Customize the G4UIXm menubar with a macro file : + UI->ApplyCommand("/control/execute gui.mac"); +#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 runManager; + + return 0; +} + diff --git a/examples/advanced/lAr_calorimeter/lAr_calorimeter.ps b/examples/advanced/lAr_calorimeter/lAr_calorimeter.ps new file mode 100644 index 0000000000..ac1b31f866 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/lAr_calorimeter.ps @@ -0,0 +1,1688 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 16.0 40.0 577.0 757.0 +%%Creator: pmendez using rose_exe +%%CreationDate: Thu Dec 12 18:00:07 2002 +%%Title: lAr_calorimeter.ps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +657 1098 1134 1269 FillRectangle +657 1098 1134 1269 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALMaterialConsultant) 443 -0.00 674 1194 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +657 1208 1134 1269 FillRectangle +657 1208 1134 1269 RectangleOutLine +657 1231 1134 1269 FillRectangle +657 1231 1134 1269 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(<>) 258 -0.00 767 1147 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1503 1460 1856 1579 FillRectangle +1503 1460 1856 1579 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALPhysicsList) 307 -0.00 1526 1509 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1503 1523 1856 1579 FillRectangle +1503 1523 1856 1579 RectangleOutLine +1503 1546 1856 1579 FillRectangle +1503 1546 1856 1579 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +576 148 1023 267 FillRectangle +576 148 1023 267 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALSteppingVerbose) 416 -0.00 592 197 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +576 211 1023 267 FillRectangle +576 211 1023 267 RectangleOutLine +576 234 1023 267 FillRectangle +576 234 1023 267 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1270 436 1641 555 FillRectangle +1270 436 1641 555 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALVisManager) 321 -0.00 1295 485 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1270 499 1641 555 FillRectangle +1270 499 1641 555 RectangleOutLine +1270 522 1641 555 FillRectangle +1270 522 1641 555 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +183 450 456 669 FillRectangle +183 450 456 669 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALCalorHit) 251 -0.00 194 546 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(sCollection) 199 -0.00 220 593 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +183 607 456 669 FillRectangle +183 607 456 669 RectangleOutLine +183 630 456 669 FillRectangle +183 630 456 669 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(<>) 228 -0.00 206 499 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +169 148 470 267 FillRectangle +169 148 470 267 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALCalorHit) 251 -0.00 194 197 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +169 211 470 267 FillRectangle +169 211 470 267 RectangleOutLine +169 234 470 267 FillRectangle +169 234 470 267 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 320 358 +320 449 LineTo +pop pop 320 449 +335 413 LineTo +pop pop 320 449 +305 413 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 320 358 +320 268 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 320 358 +320 449 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 320 358 +320 268 LineTo +[0 255 255 255 0 <>] UpdateBrush +320 268 305 295 320 322 335 295 320 268 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +68 740 475 859 FillRectangle +68 740 475 859 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALHadModuleSD) 368 -0.00 88 789 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +68 803 475 859 FillRectangle +68 803 475 859 RectangleOutLine +68 826 475 859 FillRectangle +68 826 475 859 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +95 1124 448 1243 FillRectangle +95 1124 448 1243 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALHadModule) 312 -0.00 116 1173 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +95 1187 448 1243 FillRectangle +95 1187 448 1243 RectangleOutLine +95 1210 448 1243 FillRectangle +95 1210 448 1243 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[1 0 153 0 51] UpdatePen +pop pop 449 1184 +656 1184 LineTo +[0 1 153 0 51] UpdatePen +pop pop 656 1184 +620 1199 LineTo +pop pop 656 1184 +620 1169 LineTo +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 272 991 +272 1123 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 272 991 +272 860 LineTo +[0 255 255 255 0 <>] UpdateBrush +272 860 257 887 272 914 287 887 272 860 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 272 991 +272 860 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 272 991 +272 1123 LineTo +[0 255 255 255 0 <>] UpdateBrush +272 1123 257 1096 272 1069 287 1096 272 1123 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +673 1540 1118 1659 FillRectangle +673 1540 1118 1659 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALCryostatVolumes) 413 -0.00 689 1589 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +673 1603 1118 1659 FillRectangle +673 1603 1118 1659 RectangleOutLine +673 1626 1118 1659 FillRectangle +673 1626 1118 1659 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[1 0 153 0 51] UpdatePen +pop pop 896 1539 +896 1270 LineTo +[0 1 153 0 51] UpdatePen +pop pop 896 1270 +911 1306 LineTo +pop pop 896 1270 +881 1306 LineTo +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 583 1391 +362 1244 LineTo +pop pop 362 1244 +400 1252 LineTo +pop pop 362 1244 +384 1276 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 583 1391 +805 1539 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 583 1391 +362 1244 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 583 1391 +805 1539 LineTo +[0 255 255 255 0 <>] UpdateBrush +805 1539 775 1536 760 1509 791 1512 805 1539 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1555 1108 1900 1227 FillRectangle +1555 1108 1900 1227 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALEMModule) 298 -0.00 1579 1157 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1555 1171 1900 1227 FillRectangle +1555 1171 1900 1227 RectangleOutLine +1555 1194 1900 1227 FillRectangle +1555 1194 1900 1227 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1310 1383 +1611 1228 LineTo +pop pop 1611 1228 +1586 1258 LineTo +pop pop 1611 1228 +1572 1232 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1310 1383 +1010 1539 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1310 1383 +1611 1228 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1310 1383 +1010 1539 LineTo +[0 255 255 255 0 <>] UpdateBrush +1010 1539 1027 1514 1058 1514 1041 1540 1010 1539 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[1 0 153 0 51] UpdatePen +pop pop 1554 1171 +1135 1179 LineTo +[0 1 153 0 51] UpdatePen +pop pop 1135 1179 +1171 1193 LineTo +pop pop 1135 1179 +1171 1163 LineTo +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1529 724 1926 843 FillRectangle +1529 724 1926 843 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALEMModuleSD) 355 -0.00 1550 773 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1529 787 1926 843 FillRectangle +1529 787 1926 843 RectangleOutLine +1529 810 1926 843 FillRectangle +1529 810 1926 843 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 844 LineTo +pop pop 1728 844 +1743 880 LineTo +pop pop 1728 844 +1713 880 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 1107 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 844 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 1107 LineTo +[0 255 255 255 0 <>] UpdateBrush +1728 1107 1713 1080 1728 1053 1743 1080 1728 1107 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 844 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 1107 LineTo +[0 255 255 255 0 <>] UpdateBrush +1728 1107 1713 1080 1728 1053 1743 1080 1728 1107 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 1107 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1728 975 +1728 844 LineTo +[0 255 255 255 0 <>] UpdateBrush +1728 844 1713 871 1728 898 1743 871 1728 844 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1169 148 1742 267 FillRectangle +1169 148 1742 267 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALPrimaryGeneratorAction) 540 -0.00 1186 197 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1169 211 1742 267 FillRectangle +1169 211 1742 267 RectangleOutLine +1169 234 1742 267 FillRectangle +1169 234 1742 267 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +689 852 1102 971 FillRectangle +689 852 1102 971 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALTestbeamSetup) 391 -0.00 700 901 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +689 915 1102 971 FillRectangle +689 915 1102 971 RectangleOutLine +689 938 1102 971 FillRectangle +689 938 1102 971 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[1 0 153 0 51] UpdatePen +pop pop 896 972 +896 1097 LineTo +[0 1 153 0 51] UpdatePen +pop pop 896 1097 +911 1061 LineTo +pop pop 896 1097 +881 1061 LineTo +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +662 532 1129 651 FillRectangle +662 532 1129 651 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALTestbeamSetupSD) 447 -0.00 672 581 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +662 595 1129 651 FillRectangle +662 595 1129 651 RectangleOutLine +662 618 1129 651 FillRectangle +662 618 1129 651 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 896 751 +896 652 LineTo +pop pop 896 652 +911 688 LineTo +pop pop 896 652 +881 688 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 896 751 +896 851 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 896 751 +896 652 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 896 751 +896 851 LineTo +[0 255 255 255 0 <>] UpdateBrush +896 851 881 824 896 797 911 824 896 851 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 896 751 +896 851 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 896 751 +896 652 LineTo +[0 255 255 255 0 <>] UpdateBrush +896 652 881 679 896 706 911 679 896 652 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +637 2132 1250 2251 FillRectangle +637 2132 1250 2251 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALTBEventActionMessenger) 574 -0.00 657 2181 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +637 2195 1250 2251 FillRectangle +637 2195 1250 2251 RectangleOutLine +637 2218 1250 2251 FillRectangle +637 2218 1250 2251 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1392 1780 1807 1899 FillRectangle +1392 1780 1807 1899 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALSteppingAction) 377 -0.00 1411 1829 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1392 1843 1807 1899 FillRectangle +1392 1843 1807 1899 RectangleOutLine +1392 1866 1807 1899 FillRectangle +1392 1866 1807 1899 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +167 1780 504 1899 FillRectangle +167 1780 504 1899 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALRunAction) 291 -0.00 190 1829 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +167 1843 504 1899 FillRectangle +167 1843 504 1899 RectangleOutLine +167 1866 504 1899 FillRectangle +167 1866 504 1899 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +740 1780 1147 1899 FillRectangle +740 1780 1147 1899 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(FCALTBEventAction) 373 -0.00 757 1829 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +740 1843 1147 1899 FillRectangle +740 1843 1147 1899 RectangleOutLine +740 1866 1147 1899 FillRectangle +740 1866 1147 1899 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 40 0 MwSetFont +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 944 2015 +944 2131 LineTo +pop pop 944 2131 +959 2095 LineTo +pop pop 944 2131 +929 2095 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 944 2015 +944 1900 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 944 2015 +944 2131 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 944 2015 +944 1900 LineTo +[0 255 255 255 0 <>] UpdateBrush +944 1900 929 1927 944 1954 959 1927 944 1900 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1269 1840 +1391 1840 LineTo +pop pop 1391 1840 +1355 1855 LineTo +pop pop 1391 1840 +1355 1825 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1269 1840 +1148 1840 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 1269 1840 +1391 1840 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 1269 1840 +1148 1840 LineTo +[0 255 255 255 0 <>] UpdateBrush +1148 1840 1175 1825 1202 1840 1175 1855 1148 1840 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +[0 153 0 51 0 <>] UpdateBrush +pop pop 622 1840 +505 1840 LineTo +pop pop 505 1840 +541 1855 LineTo +pop pop 505 1840 +541 1825 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 153 0 51 0 <>] UpdateBrush +pop pop 622 1840 +739 1840 LineTo +[0 255 255 255 0 <>] UpdateBrush +739 1840 712 1825 685 1840 712 1855 739 1840 5 Polygon +[0 153 0 51 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Helvetica 32 0 MwSetFont +/Courier 38 0 MwSetFont +/Helvetica 32 0 MwSetFont +(File: /afs/cern.ch/user/p/pmendez/geant4/examples/advanced/lAr_calorimeter/include/lAr_calo.mdl Thu Dec 12 18:00:07 2002 Class Diagram: Logical ) 2240 -0.00 166 3092 TextOut +(View / Main Page 1) 292 -0.00 166 3130 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file diff --git a/examples/advanced/lAr_calorimeter/prerunN03.mac b/examples/advanced/lAr_calorimeter/prerunN03.mac new file mode 100644 index 0000000000..098af7f381 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/prerunN03.mac @@ -0,0 +1,51 @@ +# +# Macro file for the initialization phase of "exampleN03.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Create empty scene ("world" is default) +/vis/scene/create +# +# Add volume to scene +/vis/scene/add/volume +# +# 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 OGLIX +#/vis/sceneHandler/create RAYX + + +/vis/viewer/zoom 10. +# Create a viewer +/vis/viewer/create +# +# Draw scene +/vis/scene/notifyHandlers +# +# for drawing the tracks +# if too many tracks cause core dump => storeTrajectory 0 +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +# +# Flush visualization +/vis/viewer/update + +/vis/camera/reset +/vis/camera/viewpoint 90 0 +/vis/camera/zoom 1.5 + +/control/verbose 2 +/run/verbose 2 +/event/verbose 0 +/tracking/verbose 1 +/gun/particle mu+ +/gun/energy 300 MeV +/run/beamOn 3 +#/gun/particle geantino diff --git a/examples/advanced/lAr_calorimeter/prerunlArcal.mac b/examples/advanced/lAr_calorimeter/prerunlArcal.mac new file mode 100644 index 0000000000..22081964f2 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/prerunlArcal.mac @@ -0,0 +1,51 @@ +# +# Macro file for the initialization phase of "exampleN03.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# Create empty scene ("world" is default) +/vis/scene/create +# +# Add volume to scene +/vis/scene/add/volume +# +# 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 OGLIX +#/vis/sceneHandler/create RAYX + + +/vis/viewer/zoom 10. +# Create a viewer +/vis/viewer/create +# +# Draw scene +/vis/scene/notifyHandlers +# +# for drawing the tracks +# if too many tracks cause core dump => storeTrajectory 0 +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +# +# Flush visualization +/vis/viewer/update + +#/vis/camera/reset +#/vis/camera/viewpoint 90 0 +#vis/camera/zoom 1.5 + +/control/verbose 2 +/run/verbose 2 +/event/verbose 0 +/tracking/verbose 1 +/gun/particle mu+ +/gun/energy 300 MeV +/run/beamOn 2 +#/gun/particle geantino diff --git a/examples/advanced/lAr_calorimeter/src/FCALAnalysisManager.cc b/examples/advanced/lAr_calorimeter/src/FCALAnalysisManager.cc new file mode 100644 index 0000000000..97925d91d9 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALAnalysisManager.cc @@ -0,0 +1,255 @@ +// +// ******************************************************************** +// * 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: FCALAnalysisManager.cc +// GEANT4 tag $Name: +// +// Author: Alex Howard (a.s.howard@ic.ac.uk) +// +// History: +// ----------- +// 3 Oct 2002 Alex Howard Created +// 5 Nov 2002 Alex Howard Successfully Modified to AIDA 3.x +// +// ------------------------------------------------------------------- +#ifdef G4ANALYSIS_USE + +#include "FCALAnalysisManager.hh" + +//#include "g4std/iomanip" + +FCALAnalysisManager* FCALAnalysisManager::instance = 0; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALAnalysisManager::FCALAnalysisManager() : + af(0), tree(0), hf(0), tpf(0), pf(0) +{ + // tree is created and booked inside book() + ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALAnalysisManager::~FCALAnalysisManager() +{ + + delete pf; + pf=0; + + delete tpf; + tpf=0; + + delete hf; + hf=0; + + delete tree; + tree=0; + + delete af; + af = 0; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALAnalysisManager* FCALAnalysisManager::getInstance() +{ + if (instance == 0) instance = new FCALAnalysisManager; + return instance; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +void FCALAnalysisManager::book() + +{ + // histoManager->selectStore("FCAL.his"); + G4String histogramfile = "FCAL.his"; + + G4cout << " Histogramfile: " << histogramfile << G4endl; + + + //build up the factories + af = AIDA_createAnalysisFactory(); + + + //parameters for the TreeFactory + G4bool fileExists = false; + G4bool readOnly = false; + + AIDA::ITreeFactory * tf = af->createTreeFactory(); + + tree = tf->create(histogramfile, "hbook", readOnly, fileExists); + + G4cout << "Tree store : " << tree->storeName() << G4endl; + + G4cout << " Booked Hbook File " << G4endl; + + //HistoFactory and TupleFactory depend on theTree + hf = af->createHistogramFactory( *tree ); + tpf = af->createTupleFactory(*tree ); + + // ---- primary ntuple ------ + + AIDA::ITuple* ntuple1 = tpf->create( "1", "Number out of World", + "float OutOfWorld,i,j" ); + + assert(ntuple1); + + // ---- secondary ntuple ------ + + AIDA::ITuple* ntuple2 = tpf->create( "2", "Secondary Info", + "float Secondary,i,j"); + + assert(ntuple2); + + // ---- tertiary ntuple ------ + + AIDA::ITuple* ntuple3 = tpf->create( "3", "Energy Deposits", + "float EmEdep,HadEdep" ); + + assert(ntuple3); + + // Creating an 1-dimensional histogram in the root directory of the tree + + AIDA::IHistogram1D* hOutOfWorld; + hOutOfWorld = hf->createHistogram1D("10","Number Of OutOfWorld", 100,0.,100.); + + AIDA::IHistogram1D* hSecondary; + hSecondary = hf->createHistogram1D("20","Number Of Secondaries", 100,0.,100.); + + AIDA::IHistogram1D* hEmEdep; + hEmEdep = hf->createHistogram1D("30","Electromagnetic Energy /MeV", 100,0.,100.); + + AIDA::IHistogram1D* hHadEdep; + hHadEdep = hf->createHistogram1D("30","Hadronic Energy /MeV", 100,0.,100.); + + delete tf; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALAnalysisManager::finish() +{ + + // Committing the transaction with the tree + G4std::cout << "Committing..." << G4std::endl; + // write all histograms to file + tree->commit(); + + G4std::cout << "Closing the tree..." << G4std::endl; + + // close (will again commit) + tree->close(); + + // extra delete as objects are created in book() method rather than during + // initialisation of class + delete pf; + delete tpf; + delete hf; + delete tree; + delete af; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void FCALAnalysisManager::NumOutOfWorld(G4double OutOfWorld, G4int i, G4int j) + +{ + AIDA::IHistogram1D* h1 = dynamic_cast ( tree->find("10") ); + h1->fill(OutOfWorld); // fill(x,y,weight) + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("1") ); + + // Fill the ntuple + ntuple->fill( ntuple->findColumn( "OutOfWorld" ), (G4float) OutOfWorld ); + ntuple->fill( ntuple->findColumn( "i" ), (G4float) i ); + ntuple->fill( ntuple->findColumn( "j" ), (G4float) j ); +//ntuple->fill( ntuple->findColumn( "Event" ), static_cast(event_id) ); + + //Values of attributes are prepared; store them to the nTuple: + ntuple->addRow(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALAnalysisManager::Secondaries(G4double Secondary, G4int i, G4int j) + +{ + AIDA::IHistogram1D* h2 = dynamic_cast ( tree->find("20") ); + h2->fill(Secondary); // fill(x,y,weight) + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("2") ); + + // Fill the ntuple + ntuple->fill( ntuple->findColumn( "Secondary" ), (G4float) Secondary ); + ntuple->fill( ntuple->findColumn( "i" ), (G4float) i ); + ntuple->fill( ntuple->findColumn( "j" ), (G4float) j ); +//ntuple->fill( ntuple->findColumn( "Event" ), static_cast(event_id) ); + + //Values of attributes are prepared; store them to the nTuple: + ntuple->addRow(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALAnalysisManager::Edep(G4double EmEdep, G4double HadEdep) + +{ + //EM: + AIDA::IHistogram1D* h3 = dynamic_cast ( tree->find("30") ); + h3->fill(EmEdep); // fill(x,y,weight) + //Had: + AIDA::IHistogram1D* h4 = dynamic_cast ( tree->find("40") ); + h4->fill(HadEdep); // fill(x,y,weight) + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("3") ); + + // Fill the ntuple + ntuple->fill( ntuple->findColumn( "EmEdep" ), (G4float) EmEdep ); + ntuple->fill( ntuple->findColumn( "HadEdep" ), (G4float) HadEdep ); +//ntuple->fill( ntuple->findColumn( "Event" ), static_cast(event_id) ); + + //Values of attributes are prepared; store them to the nTuple: + ntuple->addRow(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +#endif + + + + + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc new file mode 100644 index 0000000000..a6c7f9c5ec --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc @@ -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. * +// ******************************************************************** +// 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: FCALCalorHit.cc,v 1.2 2002/12/12 19:16:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALCalorHit.hh" + +G4Allocator FCALCalorHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALCalorHit::FCALCalorHit() +{ + EdepAbs = 0.; TrackLengthAbs = 0.; + EdepGap = 0.; TrackLengthGap = 0.; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALCalorHit::~FCALCalorHit() +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALCalorHit::FCALCalorHit(const FCALCalorHit& right) +{ + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const FCALCalorHit& FCALCalorHit::operator=(const FCALCalorHit& right) +{ + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + return *this; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +int FCALCalorHit::operator==(const FCALCalorHit& right) const +{ + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALCalorHit::Draw() +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALCalorHit::Print() +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc new file mode 100644 index 0000000000..b457ac31f2 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc @@ -0,0 +1,246 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Author: Mathieu Fontaine Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// Language: C++ +// Tested on : g++ +// Prerequisites: None +// Purpose: Source file defining the differents volumes +// in the cryostat +// Developped: 10-March-2000 M.F. +// +//----------------------------------------------------------------------------- + +#include "FCALCryostatVolumes.hh" + +#include "FCALMaterialConsultant.hh" + +#include "FCALEMModule.hh" +#include "FCALHadModule.hh" + + +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4Trd.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4SubtractionSolid.hh" + +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +FCALCryostatVolumes::FCALCryostatVolumes() { +#include "FCALCryostatVolumesParameters.icc" +}; + +FCALCryostatVolumes::~FCALCryostatVolumes() {;}; + +G4LogicalVolume * FCALCryostatVolumes::Construct() +{ + + //----------------------------- + // construction of materials + //----------------------------- + + FCALMaterialConsultant * FCALMaterials = new FCALMaterialConsultant(); + + FCALMaterials->construct(); + + +//----------------------------------------- + G4VisAttributes * ColorOfIron = new G4VisAttributes(G4Colour(0.3,0.3,0.3)); + G4VisAttributes * ColorOfLead = new G4VisAttributes(G4Colour(0.5,0.5,0.5)); + G4VisAttributes * ColorOfAir = new G4VisAttributes(G4Colour(1.,1.,1.)); + G4VisAttributes * ColorOfLarg = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0)); + + + //----------------------------- + // Cryostat + //----------------------------- + G4Tubs * SolidCryostat = + new G4Tubs("CryostatSolid", CryostatRMin, CryostatRMax, CryostatLength, + StartingPhi, DPhi); + G4LogicalVolume * LogicalCryostat = + new G4LogicalVolume(SolidCryostat,FCALMaterials->Material("Iron"), + "CryostatLogical"); + + // LogicalCryostat->SetVisAttributes(ColorOfIron); + LogicalCryostat->SetVisAttributes(G4VisAttributes::Invisible); + + + //------------------------------ + // Insulation + //------------------------------ + G4Tubs * SolidInsulation = + new G4Tubs("InsulationSolid", InsulationRMin, InsulationRMax, + InsulationLength, StartingPhi, DPhi); + G4LogicalVolume * LogicalInsulation = + new G4LogicalVolume(SolidInsulation, FCALMaterials->Material("Air"), + "InsulationLogical"); + G4VPhysicalVolume * PhysicalInsulation = + new G4PVPlacement(0, 0, LogicalInsulation, "InsulationPhysical", + LogicalCryostat, 0, 0); + + LogicalInsulation->SetVisAttributes(ColorOfAir); + // LogicalInsulation->SetVisAttributes(G4VisAttributes::Invisible); + + + //------------------------------------- + // Air to replace Iron inside Cryostat + //------------------------------------- + /* + G4Tubs * SolidAirCryostat = + new G4Tubs("AirCryostatSolid", CryostatRMin, LArgRMax, CryostatLength, + StartingPhi, DPhi); + G4LogicalVolume * LogicalAirCryostat = + new G4LogicalVolume(SolidAirCryostat, FCALMaterials->Material("Air"), + "AirCryostatLogical"); + G4VPhysicalVolume * PhysicalAirCryostat = + new G4PVPlacement(0, 0, LogicalAirCryostat, "AirCryostatPhysical", + LogicalCryostat, 0, 0); + + LogicalAirCryostat->SetVisAttributes(ColorOfAir); + // LogicalAirCryostat->SetVisAttributes(G4VisAttributes::Invisible); + */ + + + //-------------------- + // Liquid Argon + //-------------------- + G4Tubs * SolidLArg = + new G4Tubs("LArgSolid", LArgRMin, LArgRMax, LArgLength,StartingPhi,DPhi); + G4LogicalVolume * LogicalLArg = + new G4LogicalVolume(SolidLArg, FCALMaterials->Material("LiquidArgon"), + "LArgLogical"); + G4VPhysicalVolume * PhysicalLArg = + new G4PVPlacement(0,G4ThreeVector(LArgPosX, LArgPosY, LArgPosZ), + LogicalLArg, "LArgPhysical", LogicalCryostat, 0,0); + + // LogicalLArg->SetVisAttributes(ColorOfLarg); + LogicalLArg->SetVisAttributes(G4VisAttributes::Invisible); + + //------------------- + // Front Excluder + //------------------- + G4Box * SolidFrontExcluder = + new G4Box("FrontExcluderSolid", FrontExcluderSizeX, FrontExcluderSizeY, + FrontExcluderSizeZ); + G4LogicalVolume * LogicalFrontExcluder = + new G4LogicalVolume(SolidFrontExcluder, FCALMaterials->Material("Air") + , "FrontExcluderLogical"); + + G4VPhysicalVolume * PhysicalFrontExcluder = + new G4PVPlacement(0,G4ThreeVector(FrontExcluderPosX, FrontExcluderPosY, + FrontExcluderPosZ), "FrontExcluderPhysical", + LogicalFrontExcluder, PhysicalLArg, 0,0); + + LogicalFrontExcluder->SetVisAttributes(ColorOfLead); + // LogicalFrontExcluder->SetVisAttributes(G4VisAttributes::Invisible); + + + //-------------------- + // Back Excluder + //-------------------- + G4Trd * SolidBackExcluder = + new G4Trd("BackExcluderSolid", BackExcluderSize1X, BackExcluderSize2X, + BackExcluderSize1Y, BackExcluderSize2Y, BackExcluderSizeZ); + G4LogicalVolume * LogicalBackExcluder = + new G4LogicalVolume(SolidBackExcluder, FCALMaterials->Material("Air"), + "BackExcluderLogical"); + + G4RotationMatrix * BackExcluderRotationMatrix = new G4RotationMatrix(); + BackExcluderRotationMatrix->rotateX(BackExcluderRotX); + + G4VPhysicalVolume * PhysicalBackExcluder = + new G4PVPlacement(BackExcluderRotationMatrix, + G4ThreeVector(BackExcluderPosX, BackExcluderPosY, + BackExcluderPosZ), "BackExcluder", LogicalBackExcluder, + PhysicalLArg, 0,0); + + LogicalBackExcluder->SetVisAttributes(ColorOfLead); + // LogicalBackExcluder->SetVisAttributes(G4VisAttributes::Invisible); + + + //------------------------ + // fcal envelope + //------------------------ + G4Tubs * SolidFCALEnvelope = + new G4Tubs("FCALEnvelopeSolid", FCALEnvelopeRMin, FCALEnvelopeRMax, + FCALEnvelopeLength, FCALEnvelopeStartPhi, FCALEnvelopeDPhi); + + G4LogicalVolume * LogicalFCALEnvelope = + new G4LogicalVolume(SolidFCALEnvelope, FCALMaterials->Material("LiquidArgon"), + "FCALEnvelopeLogical"); + + G4RotationMatrix * FCALRotationMatrix = new G4RotationMatrix(); + FCALRotationMatrix->rotateX(FCALEnvelopeRotX); + // FCALRotationMatrix->rotateY(FCALEnvelopeRotY); + + G4VPhysicalVolume * PhysicalFCALEnvelopp = + new G4PVPlacement(FCALRotationMatrix, + G4ThreeVector(FCALEnvelopePosX,FCALEnvelopePosY,FCALEnvelopePosZ) + , LogicalFCALEnvelope, "FCALEnvelopePhysical", LogicalLArg, 0,0); + + //LogicalFCALEnvelope->SetVisAttributes(ColorOfIron); + LogicalFCALEnvelope->SetVisAttributes(G4VisAttributes::Invisible); + + //----------------------------- + // FCAL electromagnetic Module + //----------------------------- + EmModule = new FCALEMModule(); + G4LogicalVolume * LogicalFCALEmModule = EmModule->Construct(); + + G4RotationMatrix * EmModuleRot = new G4RotationMatrix(); + EmModuleRot->rotateZ(ModuleRotZ); + + G4VPhysicalVolume * PhysicalFCALEmModule = + new G4PVPlacement(EmModuleRot, + G4ThreeVector(FCALEmModulePosX,FCALEmModulePosY,FCALEmModulePosZ), + LogicalFCALEmModule,"FCALEmModulePhysical",LogicalFCALEnvelope,0,0); + + + //----------------------------- + // hadronic fcal + //---------------------------- + HadModule = new FCALHadModule(); + G4LogicalVolume * LogicalFCALHadModule = HadModule->Construct(); + + G4RotationMatrix * HadModuleRot = new G4RotationMatrix(); + HadModuleRot->rotateZ(ModuleRotZ); + + G4VPhysicalVolume * PhysicalFCALHadModule = + new G4PVPlacement(HadModuleRot, + G4ThreeVector(FCALHadModulePosX,FCALHadModulePosY,FCALHadModulePosZ), + LogicalFCALHadModule, "FCALHadModulePhysical",LogicalFCALEnvelope,0,0); + + + + //------------------------- + // Returning the mother + //------------------------- + + return LogicalCryostat; + +}; diff --git a/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.icc b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.icc new file mode 100644 index 0000000000..541a83abad --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.icc @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +CryostatRMin = 0.0*cm; +CryostatRMax = 135.0*cm; +CryostatLength = 147.5*cm; +StartingPhi = 0.; +DPhi = 2*pi; + + +//--------------------- +// Insulation +//--------------------- +InsulationRMin = 127.75*cm; +InsulationRMax = 134.75*cm; +InsulationLength = 147.5*cm; + + +//--------------------- +// Inactive LArg +//--------------------- +LArgRMin = 0.0; +LArgRMax = 127.45*cm; +LArgLength = 97.5*cm; + +LArgPosX = 0.0; +LArgPosY = 0.0; +LArgPosZ = -50.*cm; + +//---------------------- +// Front Excluder +//---------------------- +FrontExcluderSizeX = 31.926*cm; +FrontExcluderSizeY = 17.218*cm; +FrontExcluderSizeZ = 31.926*cm; + +FrontExcluderPosX = 0.; +FrontExcluderPosY = -106.168*cm; +FrontExcluderPosZ = 0.; + +//---------------------- +// Back Excluder +//---------------------- +BackExcluderSize1X = 39.53*cm; +BackExcluderSize2X = 52.29*cm; +BackExcluderSize1Y = 25.56*cm; +BackExcluderSize2Y = 51.84*cm; +BackExcluderSizeZ = 52.325*cm; + +BackExcluderPosX = 0.; +BackExcluderPosY = 63.904*cm; +BackExcluderPosZ = 0.; +BackExcluderRotX = 90.0*deg; + + +//------------------------ +// FCAL Enveloppe +//------------------------ +FCALEnvelopeRMin = 0.0*cm; +FCALEnvelopeRMax = 45.15*cm; +FCALEnvelopeLength = 45.975*cm; +FCALEnvelopeStartPhi = pi/4; +FCALEnvelopeDPhi = pi/2 + pi/180. ; + +FCALEnvelopePosX = 0.0*cm; +FCALEnvelopePosY = -38.156*cm; +FCALEnvelopePosZ = -25.341*cm; + +FCALEnvelopeRotX = 2.8291*deg-pi/2; +FCALEnvelopeRotY = 0.*deg; + + +//----------------------------- +// FCAL electromagnetic Module +//----------------------------- +FCALEmModulePosX = 0.0*cm; +FCALEmModulePosY = 0.0*cm; +FCALEmModulePosZ = 23.675*cm; + +ModuleRotZ = -45*deg; + +//----------------------------- +// FCAL Hadronic Module +//----------------------------- +FCALHadModulePosX = 0.; +FCALHadModulePosY = 0.; +FCALHadModulePosZ = -23.675*cm; + diff --git a/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.input b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.input new file mode 100644 index 0000000000..e335a9db99 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumesParameters.input @@ -0,0 +1,88 @@ +//--------------------- +// Cryostat +//--------------------- +CryostatRMin = 0.0*cm; +CryostatRMax = 135.0*cm; +CryostatLenght = 147.5*cm; +StartingPhi = 0.; +DPhi = 2*pi; + + +//--------------------- +// Insulation +//--------------------- +InsulationRMin = 127.75*cm; +InsulationRMax = 134.75*cm; +InsulationLenght = 147.5*cm; + + +//--------------------- +// Inactive LArg +//--------------------- +LArgRMin = 0.0; +LArgRMax = 127.45*cm; +LArgLenght = 97.5*cm; + +LArgPosX = 0.0; +LArgPosY = 0.0; +LArgPosZ = -50.*cm; + +//---------------------- +// Front Excluder +//---------------------- +FrontExcluderSizeX = 31.926*cm; +FrontExcluderSizeY = 17.218*cm; +FrontExcluderSizeZ = 31.926*cm; + +FrontExcluderPosX = 0.; +FrontExcluderPosY = -106.168*cm; +FrontExcluderPosZ = 0.; + +//---------------------- +// Back Excluder +//---------------------- +BackExcluderSize1X = 39.53*cm; +BackExcluderSize2X = 52.29*cm; +BackExcluderSize1Y = 25.56*cm; +BackExcluderSize2Y = 51.84*cm; +BackExcluderSizeZ = 52.325*cm; + +BackExcluderPosX = 0.; +BackExcluderPosY = 63.904*cm; +BackExcluderPosZ = 0.; +BackExcluderRotX = 90.0*deg; + + +//------------------------ +// FCAL Enveloppe +//------------------------ +FCALEnvelopeRMin = 0.0*cm; +FCALEnvelopeRMax = 45.15*cm; +FCALEnvelopeLenght = 45.975*cm; +FCALEnvelopeStartPhi = pi/4; +FCALEnvelopeDPhi = pi/2 + pi/180. ; + +FCALEnvelopePosX = 0.0*cm; +FCALEnvelopePosY = -38.156*cm; +FCALEnvelopePosZ = -25.341*cm; + +FCALEnvelopeRotX = 2.8291*deg-pi/2; +FCALEnvelopeRotY = 0.*deg; + + +//----------------------------- +// FCAL electromagnetic Module +//----------------------------- +FCALEmModulePosX = 0.0*cm; +FCALEmModulePosY = 0.0*cm; +FCALEmModulePosZ = 23.675*cm; + +ModuleRotZ = -45*deg; + +//----------------------------- +// FCAL Hadronic Module +//----------------------------- +FCALHadModulePosX = 0.; +FCALHadModulePosY = 0.; +FCALHadModulePosZ = -23.675*cm; + diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc new file mode 100644 index 0000000000..72554ddc23 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc @@ -0,0 +1,198 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Author: Rachid Mazini +// Rachid.Mazini@cern.ch +// Language: C++ +// Tested on : g++ (egcs.2.1.1, RH6.1) +// Prerequisites: None +// Purpose: Source file defining the geometry of EMModule 0 of the +// FCAL. +// Developped: 10-March-2000 R.M. +// +// +//----------------------------------------------------------------------------- + +#include "FCALEMModule.hh" + +#include "FCALMaterialConsultant.hh" + +#include "G4SDManager.hh" +#include "FCALEMModuleSD.hh" + +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4SubtractionSolid.hh" + +#include "G4ThreeVector.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "fstream.h" +#include "stdlib.h" + +FCALEMModule::FCALEMModule() { + F1LArGapID = new G4int[2400]; + F1LArIX = new G4int[2400]; + F1LArJY = new G4int[2400]; + F1LArITile = new G4int[2400]; + F1LArGapPosX = new G4double[2400]; + F1LArGapPosY = new G4double[2400]; +}; + + +FCALEMModule::~FCALEMModule(){ + delete [] F1LArGapID; + delete [] F1LArGapPosX; + delete [] F1LArGapPosY; + delete [] F1LArIX; + delete [] F1LArJY; + delete [] F1LArITile; +}; + + +void FCALEMModule::InitializeGeometry() { +#include "FCALEMModuleParameters.icc" + ifstream File + ("geom_data/FCal1Electrodes.dat"); + + if(!File) G4cerr << "Failed to open file FCal1Electrodes data file " << endl; + File.seekg(0); + + NF1LarGap = 0; + while(!(File.eof())) { + NF1LarGap++; + File >> F1LArGapID[NF1LarGap] >> F1LArGapPosX[NF1LarGap] >> F1LArGapPosY[NF1LarGap] + >> F1LArIX[NF1LarGap] >> F1LArJY[NF1LarGap] >> F1LArITile[NF1LarGap]; + }; + G4cout << "********" << " Number of Rods in FCAL1 : " << NF1LarGap-1 << endl;; +}; + + + +G4LogicalVolume * FCALEMModule::Construct() +{ + //----------------------------- + // construction of materials + //----------------------------- + FCALMaterialConsultant * FCALMaterials = new FCALMaterialConsultant(); + FCALMaterials->construct(); + + G4VisAttributes * ColorOfEMModule = new G4VisAttributes(G4Colour(1.,0.,0.5)); + G4VisAttributes * ColorOfLArg = new G4VisAttributes(G4Colour(0.,0.,1.)); + + //---------------------------- + // Read Parameters + //---------------------------- + InitializeGeometry(); + +//----------------------------------------- +// Logical to be returned (FCAL EM module) +//----------------------------------------- + G4Tubs * SolidEmModule = + new G4Tubs("EmModuleSold", EmModuleRMin, EmModuleRMax, EmModuleLength, + EmModuleStartPhi,EmModuleDPhi); + G4LogicalVolume * LogicalEmModule = + new G4LogicalVolume(SolidEmModule, FCALMaterials->Material("Copper"), + "EmModuleLogical"); + + LogicalEmModule->SetSmartless(FCALEmSmart); + + LogicalEmModule->SetVisAttributes(ColorOfEMModule); + // LogicalEmModule->SetVisAttributes(G4VisAttributes::Invisible); + + +//--------------------- +// FCAL Cable Troff +//--------------------- + G4Tubs * SolidF1CableTroff = + new G4Tubs("F1CableTroffSolid", F1CableTroffRMin, F1CableTroffRMax, + F1CableTroffLength, F1CableTroffStartPhi, F1CableTroffDPhi); + G4LogicalVolume * LogicalF1CableTroff = + new G4LogicalVolume(SolidF1CableTroff, FCALMaterials->Material("FCAL1CuArKap"), + "F1CableTroffLogical"); + + G4ThreeVector F1CableTroffTrans(0.,0.,0.); + G4RotationMatrix F1CableTroffRot; + + for(G4int i=0 ; i < NCableTroff ; i++) + { + G4VPhysicalVolume * PhysicalF1CableTroff = + new G4PVPlacement(G4Transform3D(F1CableTroffRot,F1CableTroffTrans), + LogicalF1CableTroff,"F1CableTroffPhysical", + LogicalEmModule,0,i+1); + + F1CableTroffRot.rotateZ(F1CableTroffRotZ); + } + + LogicalF1CableTroff->SetVisAttributes(ColorOfEMModule); + // LogicalF1CableTroff->SetVisAttributes(G4VisAttributes::Invisible); + + + //---------------------- + // LArg gaps + //---------------------- + + G4Tubs * SolidF1LArGap = + new G4Tubs("F1LArGapSolid",F1LArGapRmin, F1LArGapRmax, F1LArGapLength, + F1LArGapStartPhi,F1LArGapDPhi); + + G4LogicalVolume * LogicalF1LArGap = + new G4LogicalVolume(SolidF1LArGap, FCALMaterials->Material("LiquidArgon"), + "LArg Gap"); + + for(i=1; i < NF1LarGap; i++){ + G4VPhysicalVolume * PhysicalF1LArGap = + new G4PVPlacement(0,G4ThreeVector(F1LArGapPosX[i]*cm,F1LArGapPosY[i]*cm,0.*cm), + LogicalF1LArGap,"F1LArGapPhysical", LogicalEmModule, 0, i); + }; + + // LogicalF1LArGap->SetVisAttributes(ColorOfLArg); + LogicalF1LArGap->SetVisAttributes(G4VisAttributes::Invisible); + + + // Sensitive Volumes + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + if(!FcalEmModuleSD) + { + FcalEmModuleSD = new FCALEMModuleSD("FCALTB/EmModuleSD"); + SDman->AddNewDetector(FcalEmModuleSD); + } + LogicalF1LArGap->SetSensitiveDetector(FcalEmModuleSD); + + + + return LogicalEmModule; + +}; + + +G4int FCALEMModule::GetF1TileID(G4int GapID) +{ return F1LArITile[GapID]; } + +G4double FCALEMModule::GetF1LArGapPosX(G4int GapID) +{ return F1LArGapPosX[GapID]; } + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.icc b/examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.icc new file mode 100644 index 0000000000..0f6417dc95 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.icc @@ -0,0 +1,53 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +EmModuleRMin = 0.0*cm; +EmModuleRMax = 45.15*cm; +EmModuleLength = 22.3*cm; +EmModuleStartPhi = 0.0*deg; +EmModuleDPhi = 90.0*deg; + +FCALEmSmart = 0.2; + +//--------------------- +// FCAL Cable Troff +//--------------------- +NCableTroff = 4; +F1CableTroffRMin = 44.16*cm; +F1CableTroffRMax = 45.15*cm; +F1CableTroffLength = 22.3*cm; +F1CableTroffStartPhi = 8.438*deg; +F1CableTroffDPhi = 5.624*deg; +F1CableTroffRotZ = 22.5*deg; + + +//----------------------- +// Active LArg Gap +//----------------------- +F1LArGapRmin = 0.236*cm; +F1LArGapRmax = 0.263*cm; +F1LArGapLength = 22.3*cm; +F1LArGapStartPhi = 0.0*deg; +F1LArGapDPhi = 2*pi; + + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.input b/examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.input new file mode 100644 index 0000000000..49a820d3f8 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModuleParameters.input @@ -0,0 +1,32 @@ +//--------------------- +// FCAL EM Module +//--------------------- +EmModuleRMin = 0.0*cm; +EmModuleRMax = 45.15*cm; +EmModuleLenght = 22.3*cm; +EmModuleStartPhi = 0.0*deg; +EmModuleDPhi = 90.0*deg; + +FCALEmSmart = 0.2; + +//--------------------- +// FCAL Cable Troff +//--------------------- +NCableTroff = 4; +F1CableTroffRMin = 44.16*cm; +F1CableTroffRMax = 45.15*cm; +F1CableTroffLenght = 22.3*cm; +F1CableTroffStartPhi = 8.438*deg; +F1CableTroffDPhi = 5.624*deg; +F1CableTroffRotZ = 22.5*deg; + + +//----------------------- +// Active LArg Gap +//----------------------- +F1LArGapRmin = 0.236*cm; +F1LArGapRmax = 0.263*cm; +F1LArGapLenght = 22.3*cm; +F1LArGapStartPhi = 0.0*deg; +F1LArGapDPhi = 2*pi; + diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc new file mode 100644 index 0000000000..6575a045aa --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc @@ -0,0 +1,158 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALEMModuleSD.cc,v 1.4 2002/12/12 19:16:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALEMModuleSD.hh" + +#include "FCALCalorHit.hh" + +#include "FCALTestbeamSetup.hh" +#include "FCALEMModule.hh" +#include "FCALSteppingAction.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4Track.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" + +#include "G4ios.hh" +#include "iostream.h" +#include "fstream.h" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALEMModuleSD::FCALEMModuleSD(G4String name) : G4VSensitiveDetector(name) +{ + EmModule = new FCALEMModule(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALEMModuleSD::~FCALEMModuleSD() +{ + delete EmModule; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALEMModuleSD::Initialize(G4HCofThisEvent*HCE) +{ + if (Init_state==0) + { + EmModule->InitializeGeometry(); + Init_state++; + }; + + for (G4int j=0 ; j<1131 ; j++) {EvisF1Tile[j] = 0.;} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool FCALEMModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +{ + + G4double edep = aStep->GetTotalEnergyDeposit(); + if (edep==0.) return false; + + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); + G4VPhysicalVolume* physVol = theTouchable->GetVolume(); + + + if(strcmp(physVol->GetName(),"F1LArGapPhysical")==0){ + G4int F1LArGapId = physVol->GetCopyNo(); + G4int F1TileId = EmModule->GetF1TileID(F1LArGapId); + EvisF1Tile[F1TileId] = EvisF1Tile[F1TileId] + edep; + }; + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALEMModuleSD::EndOfEvent(G4HCofThisEvent* HCE) +{ + G4int NF1Tile = 0; + G4int AddTileP[300]; + G4double EvisTileP[300]; + + for (G4int i=1; i <= 1130; i++){ + if(EvisF1Tile[i] > 0.) { + NF1Tile++; + AddTileP[NF1Tile] = i; + EvisTileP[NF1Tile] = EvisF1Tile[i]; + };}; + + G4cout << "Number of F1 Tiles with Positive energy : " << NF1Tile << endl; + + // Write in File + //-------------- + G4String FileName = "EmModule_802_1mm.dat"; + G4int iostemp; + if(Init_state == 1) { + iostemp = ios::out; + Init_state++; + } else { + iostemp = ios::out|ios::app; // ios::app; + }; + + ofstream EmDatafile(FileName, iostemp); + // EmDatafile.precision(5); + + EmDatafile << NF1Tile << endl; + for (i=1; i <= NF1Tile; i++) { + EmDatafile << AddTileP[i] << " " << EvisTileP[i]/MeV << endl; + } + EmDatafile.close(); + +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALEMModuleSD::clear() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALEMModuleSD::DrawAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALEMModuleSD::PrintAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc new file mode 100644 index 0000000000..da02bc5152 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc @@ -0,0 +1,266 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Name of file: FCALHadModule.cc +// Author: Mathieu Fontaine Rachid Mazini +// fontainerlps.umontreal.ca Rachid.Mazinircern.ch +// Language: C++ +// Tested on : g++ +// Prerequisites: None +// Purpose: Source file defining the geometry of HadModule 0 of the +// FCAL. +// Developped: 10-March-2000 M.F. +// +//----------------------------------------------------------------------------- + +#include "FCALHadModule.hh" + +#include "FCALMaterialConsultant.hh" +#include "FCALHadModuleSD.hh" +#include "G4SDManager.hh" + + +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4SubtractionSolid.hh" + +#include "G4ThreeVector.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "fstream.h" +#include "G4ios.hh" + + +FCALHadModule::FCALHadModule() { + + F2LArGapID = new G4int[2600]; + F2LArIX = new G4int[2600]; + F2LArJY = new G4int[2600]; + F2LArITile = new G4int[2600]; + F2LArGapPosX = new G4double[2600]; + F2LArGapPosY = new G4double[2600]; +}; + +FCALHadModule::~FCALHadModule() { + delete [] F2LArGapID; + delete [] F2LArGapPosX; + delete [] F2LArGapPosY; + delete [] F2LArIX; + delete [] F2LArJY; + delete [] F2LArITile; +}; + + +void FCALHadModule::InitializeGeometry() { + +#include "FCALHadModuleParameters.icc" + + ifstream File + ("geom_data/FCal2Electrodes.dat"); + + if(!File) G4cerr << "Failed to open file FCal2Electrode data file" << endl; + File.seekg(0); + + NF2LarGap = 0; + while(!(File.eof())) { + NF2LarGap++; + File >> F2LArGapID[NF2LarGap] >> F2LArGapPosX[NF2LarGap] >> F2LArGapPosY[NF2LarGap] + >> F2LArIX[NF2LarGap] >> F2LArJY[NF2LarGap] >> F2LArITile[NF2LarGap]; + }; + + G4cout << "*********" << " Number of Rods in FCAL2 : " << NF2LarGap-1 << endl; +}; + + +G4LogicalVolume * FCALHadModule::Construct() +{ + //----------------------------- + // construction of materials + //----------------------------- + + FCALMaterialConsultant * FCALMaterials = new FCALMaterialConsultant(); + FCALMaterials->construct(); + + G4VisAttributes * ColorOfTungsten = new G4VisAttributes(G4Colour(.5,.5,.5)); + G4VisAttributes * ColorOfCopper =new G4VisAttributes(G4Colour(0.58,0.15,0.05)); + G4VisAttributes * ColorOfLarg = new G4VisAttributes(G4Colour(0.,0.,1.)); + + + //---------------------------- + // Read Parameters + //---------------------------- + InitializeGeometry(); + + + //----------------------------------------- + // the logical to be returned (mother) + //----------------------------------------- + + G4Tubs * SolidHadModule = + new G4Tubs("HadModuleSolid", HadModuleRMin, HadModuleRMax, HadModuleLength, + HadModuleStartPhi,HadModuleDPhi); + G4LogicalVolume * LogicalHadModule = + new G4LogicalVolume(SolidHadModule, FCALMaterials->Material("Copper"), + "HadModuleLogical"); + + LogicalHadModule->SetSmartless(FCAL2HadSmart); + + LogicalHadModule->SetVisAttributes(ColorOfCopper); + // LogicalHadModule->SetVisAttributes(G4VisAttributes::Invisible); + + + //----------------------------------------- + // Tungsten Absorber + //----------------------------------------- + G4Tubs * SolidWAbsorber = + new G4Tubs("WAbsorberSolid", WAbsorberRMin, WAbsorberRMax, WAbsorberLength, + WAbsorberStartPhi, WAbsorberDPhi); + G4LogicalVolume * LogicalWAbsorber = + new G4LogicalVolume(SolidWAbsorber, FCALMaterials->Material("FCAL2WFeNi"), + "SolidWLogical"); + G4VPhysicalVolume * PhysicalWAbsorber = + new G4PVPlacement(0, G4ThreeVector(), LogicalWAbsorber, "WAbsorberPhysical", + LogicalHadModule, 0, 0); + + LogicalWAbsorber->SetVisAttributes(ColorOfTungsten); + // LogicalWAbsorber->SetVisAttributes(G4VisAttributes::Invisible); + + + // ----------------- + // Copper Plates + //------------------ + G4Tubs * SolidCuPlate = + new G4Tubs("CuPlateSolid",HadModuleRMin, HadModuleRMax, CuPlateLength, + HadModuleStartPhi, HadModuleDPhi); + G4LogicalVolume * LogicalCuPlate = + new G4LogicalVolume(SolidCuPlate, FCALMaterials->Material("Copper"), "CuPlateLogical"); + + G4VPhysicalVolume * PhysicalCuPlateA = + new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateAPosZ), LogicalCuPlate, + "CuPlateAPhysical", LogicalHadModule, 0, 0); + G4VPhysicalVolume * PhysicalCuPlateB = + new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateBPosZ), LogicalCuPlate, + "CuPlateBPhysical", LogicalHadModule, 0, 0); + + LogicalCuPlate->SetVisAttributes(ColorOfCopper); + // LogicalCuPlate->SetVisAttributes(G4VisAttributes::Invisible); + + //------------------------------------------ + // Had Module (F2) Main and A/B Cable Troff + //------------------------------------------ + G4Tubs * SolidF2TroffMain = + new G4Tubs("F2TroffMainSolid", F2TroffRmin, F2TroffRmax, F2TroffMainLength, + F2TroffStartPhi, F2TroffDphi); + G4LogicalVolume * LogicalF2TroffMain = + new G4LogicalVolume(SolidF2TroffMain, FCALMaterials->Material("FCAL2CuArKap"), + "F2TroffMainLogical"); + + G4Tubs * SolidF2TroffAB = + new G4Tubs("F2TroffABSolid", F2TroffRmin, F2TroffRmax, F2TroffABLength, + F2TroffStartPhi, F2TroffDphi); + G4LogicalVolume * LogicalF2TroffAB = + new G4LogicalVolume(SolidF2TroffAB, FCALMaterials->Material("FCAL2CuArKap"), + "F2TroffABLogical"); + + G4ThreeVector F2TroffMainTrans(0.,0.,0.); + G4ThreeVector F2TroffABTrans(0.,0.,0.); + G4RotationMatrix F2TroffRot; + for(G4int i=0 ; i < NCableTroff ; i++) + { + G4VPhysicalVolume * PhysicalF2TroffMain = + new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffMainTrans), LogicalF2TroffMain, + "F2TroffMainPhysical", LogicalWAbsorber,0,i+1); + + G4VPhysicalVolume * PhysicalF2TroffAB = + new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffABTrans), LogicalF2TroffAB, + "F2TroffAPhysical", LogicalCuPlate, 0, i+1); + + F2TroffRot.rotateZ(F2TroffRotZ); + } + + LogicalF2TroffMain->SetVisAttributes(ColorOfCopper); + // LogicalF2TroffMain->SetVisAttributes(G4VisAttributes::Invisible); + LogicalF2TroffAB->SetVisAttributes(ColorOfCopper); + // LogicalF2TroffAB->SetVisAttributes(G4VisAttributes::Invisible); + + + //---------------------- + // LArg Gaps + F2 Rod + //---------------------- + G4Tubs * SolidF2LArGap = + new G4Tubs("F2LArGapSolid", F2LArGapRmin, F2LArGapRmax, F2LArGapLength, + F2LArGapStartPhi, F2LArGapDphi); + G4LogicalVolume * LogicalF2LArGap = + new G4LogicalVolume(SolidF2LArGap, FCALMaterials->Material("LiquidArgon"), + "F2LArGapLogical"); + + LogicalF2LArGap->SetVisAttributes(ColorOfLarg); + // LogicalF2LArGap->SetVisAttributes(G4VisAttributes::Invisible); + + G4Tubs * SolidF2Rod = + new G4Tubs("F2RodSolid", F2RodRmin, F2RodRmax, F2RodLength, F2RodStartPhi, F2RodDphi); + G4LogicalVolume * LogicalF2Rod = + new G4LogicalVolume(SolidF2Rod, FCALMaterials->Material("Tungsten"),"F2RodLogical"); + G4VPhysicalVolume * PhysicalF2Rod = + new G4PVPlacement(0,G4ThreeVector(),LogicalF2Rod,"F2RodPhysical",LogicalF2LArGap,0, 0); + + LogicalF2Rod->SetVisAttributes(ColorOfTungsten); + // LogicalF2Rod->SetVisAttributes(G4VisAttributes::Invisible); + + //--------------------------------- + // Electrod (Rod + LArg) placement + //--------------------------------- + for(i=1; i < NF2LarGap; i++){ + G4VPhysicalVolume * PhysicalF2LArGap = + new G4PVPlacement(0,G4ThreeVector(F2LArGapPosX[i]*cm,F2LArGapPosY[i]*cm,0.*cm), + LogicalF2LArGap,"F2LArGapPhysical", + LogicalHadModule, 0, i); + }; + + LogicalF2LArGap->SetVisAttributes(ColorOfLarg); + // LogicalF2LArGap->SetVisAttributes(G4VisAttributes::Invisible); + + + // Sensitive Volumes + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + if(!FcalHadModuleSD) + { + FcalHadModuleSD = new FCALHadModuleSD("FCALTB/HadModuleSD"); + SDman->AddNewDetector(FcalHadModuleSD); + } + LogicalF2LArGap->SetSensitiveDetector(FcalHadModuleSD); + + + return LogicalHadModule; + +}; + +G4int FCALHadModule::GetF2TileID(G4int TileID) +{ return F2LArITile[TileID]; +}; + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.icc b/examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.icc new file mode 100644 index 0000000000..2e8ce5a40a --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.icc @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +HadModuleRMin = 7.923*cm; +HadModuleRMax = 45.15*cm; +HadModuleLength = 22.3*cm; +HadModuleStartPhi = 0.; +HadModuleDPhi = 90.*deg; + +FCAL2HadSmart = 0.2; + + +//--------------------- +// Tungsten Absorber +//--------------------- +WAbsorberRMin = 7.923*cm; +WAbsorberRMax = 45.15*cm; +WAbsorberLength = 19.8*cm; +WAbsorberStartPhi = 0.; +WAbsorberDPhi = 90.*deg; + +//--------------------- +// Copper Plates +//--------------------- +CuPlateLength = 1.25*cm; +CuPlateAPosZ = 21.05*cm; +CuPlateBPosZ = -21.05*cm; + + +//------------------------------- +// Had Module (F2) Cable Troff +//------------------------------- +NCableTroff = 4; +F2TroffRmin = 44.16*cm; +F2TroffRmax = 45.15*cm; +F2TroffMainLength = 19.8*cm; // 22.3*cm; +F2TroffABLength = 1.25*cm; +F2TroffStartPhi = 8.438*deg; +F2TroffDphi = 5.624*deg; + +F2TroffRotZ = 22.5*deg; +F2TroffABPosZ = 21.05*cm; + +//---------------------- +// LArg Gaps + F2 Rod +//---------------------- +F2LArGapRmin = 0.0*cm; +F2LArGapRmax = 0.284*cm; +F2LArGapLength = 22.3*cm; +F2LArGapStartPhi = 0.0*deg; +F2LArGapDphi = 2*pi; + + +F2RodRmin = 0.0*cm; +F2RodRmax = 0.247*cm; +F2RodLength = 22.3*cm; +F2RodStartPhi = 0.0*deg; +F2RodDphi = 2*pi; + + + +/* + +LArgGapRMin = 2.375*mm; +LArgGapRMax = 2.625*mm; +LArgGapDZ = 223.*mm; +LArgGapSPhi = 0.; +LArgGapDPhi = 2*pi; + +CopperRodRMin = 0.; +CopperRodRMax = 2.375*mm; +CopperRodDZ = 223.*mm; +CopperRodSPhi = 0.; +CopperRodDPhi = 2*pi; +*/ + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.input b/examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.input new file mode 100644 index 0000000000..e0bafd8ee2 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModuleParameters.input @@ -0,0 +1,79 @@ +//--------------------- +// FCAL Had Module +//--------------------- +HadModuleRMin = 7.923*cm; +HadModuleRMax = 45.15*cm; +HadModuleLenght = 22.3*cm; +HadModuleStartPhi = 0.; +HadModuleDPhi = 90.*deg; + +FCAL2HadSmart = 0.2; + + +//--------------------- +// Tungsten Absorber +//--------------------- +WAbsorberRMin = 7.923*cm; +WAbsorberRMax = 45.15*cm; +WAbsorberLenght = 19.8*cm; +WAbsorberStartPhi = 0.; +WAbsorberDPhi = 90.*deg; + +//--------------------- +// Copper Plates +//--------------------- +CuPlateLenght = 1.25*cm; +CuPlateAPosZ = 21.05*cm; +CuPlateBPosZ = -21.05*cm; + + +//------------------------------- +// Had Module (F2) Cable Troff +//------------------------------- +NCableTroff = 4; +F2TroffRmin = 44.16*cm; +F2TroffRmax = 45.15*cm; +F2TroffMainLenght = 19.8*cm; // 22.3*cm; +F2TroffABLenght = 1.25*cm; +F2TroffStartPhi = 8.438*deg; +F2TroffDphi = 5.624*deg; + +F2TroffRotZ = 22.5*deg; +F2TroffABPosZ = 21.05*cm; + +//---------------------- +// LArg Gaps + F2 Rod +//---------------------- +F2LArGapRmin = 0.0*cm; +F2LArGapRmax = 0.284*cm; +F2LArGapLenght = 22.3*cm; +F2LArGapStartPhi = 0.0*deg; +F2LArGapDphi = 2*pi; + + +F2RodRmin = 0.0*cm; +F2RodRmax = 0.247*cm; +F2RodLenght = 22.3*cm; +F2RodStartPhi = 0.0*deg; +F2RodDphi = 2*pi; + + + +/* + +LArgGapRMin = 2.375*mm; +LArgGapRMax = 2.625*mm; +LArgGapDZ = 223.*mm; +LArgGapSPhi = 0.; +LArgGapDPhi = 2*pi; + +CopperRodRMin = 0.; +CopperRodRMax = 2.375*mm; +CopperRodDZ = 223.*mm; +CopperRodSPhi = 0.; +CopperRodDPhi = 2*pi; +*/ + + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc new file mode 100644 index 0000000000..ef89c980c2 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc @@ -0,0 +1,156 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALHadModuleSD.cc,v 1.3 2002/12/12 19:16:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALHadModuleSD.hh" + +#include "FCALCalorHit.hh" + +#include "FCALTestbeamSetup.hh" +#include "FCALHadModule.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4Track.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" + +#include "G4ios.hh" +#include "iostream.h" +#include "fstream.h" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALHadModuleSD::FCALHadModuleSD(G4String name) : G4VSensitiveDetector(name) +{ + HadModule = new FCALHadModule(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALHadModuleSD::~FCALHadModuleSD() +{ + delete HadModule; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALHadModuleSD::Initialize(G4HCofThisEvent*HCE) +{ + if(InitF2 == 0) { + HadModule->InitializeGeometry(); + InitF2++; + } + for (G4int j=0; j<2330; j++) { EvisF2Tile[j]=0.;} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool FCALHadModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +{ + + G4double edep = aStep->GetTotalEnergyDeposit(); + if (edep==0.) return false; + + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); + G4VPhysicalVolume* physVol = theTouchable->GetVolume(); + + + if(strcmp(physVol->GetName(),"F2LArGapPhysical")==0){ + G4int F2LArGapId = physVol->GetCopyNo(); + G4int F2TileId = HadModule->GetF2TileID(F2LArGapId); + EvisF2Tile[F2TileId] = EvisF2Tile[F2TileId] + edep; + }; + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALHadModuleSD::EndOfEvent(G4HCofThisEvent* HCE) +{ + G4int NF2Tile = 0; + G4int AddTileP[300]; + G4double EvisTileP[300]; + + for (G4int i=0; i<2330; i++){ + if(EvisF2Tile[i] > 0.) { + NF2Tile++; + AddTileP[NF2Tile] = i; + EvisTileP[NF2Tile] = EvisF2Tile[i]; + };}; + + G4cout << "Number of F2 tiles with Positive energy : " << NF2Tile << endl; + + // Write data in File + //------------------- + G4String FileName = "HadModule_802_1mm.dat"; + G4int iostemp; + if(InitF2 == 1) { + iostemp = ios::out; + InitF2++; + } else { + iostemp = ios::out|ios::app; // ios::app; + }; + + ofstream HadDatafile(FileName, iostemp); + // EmDatafile.precision(5); + + HadDatafile << NF2Tile << endl; + for (i=1; i <= NF2Tile; i++) { + HadDatafile << AddTileP[i] << " " << EvisTileP[i]/MeV << endl; + } + HadDatafile.close(); + + + + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALHadModuleSD::clear() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALHadModuleSD::DrawAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALHadModuleSD::PrintAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc b/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc new file mode 100644 index 0000000000..9435c9081e --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc @@ -0,0 +1,283 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Author: Mathieu Fontaine, Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: This is the place, where all the materials get defined. +// Instead of coding those materials locally, where they +// are needed, it is much easier to maintain, if we keep +// all materials for a detector component in one place. +// Everybody who needs some of these parameters, can +// query the FCALMaterialConsultant. +// --> This class is made a singleton by making the +// constructor private and hiding it behind the +// construct() method, which creates a first instance +// if it does not exist. This is to prevent multiple +// copies of this consultant with potentially different +// contents (once the data is loaded from files and/or +// can be changed by user interaction). +// --> The method Material is provided to access to the data +// stored, a routine ShowMeAllYouKnow can be queried to +// dump the entire knowledge of this consultant. +// +// * Ideas on how the theFCALMaterialConsultant pointer +// is made static are borrowed from G4VisManager. +// +//---------------------------------------------------------------------------------- + +#include "FCALMaterialConsultant.hh" +#include "PhysicalConstants.h" + +#include "globals.hh" + +FCALMaterialConsultant *FCALMaterialConsultant::theFCALMaterialConsultant = NULL; + +FCALMaterialConsultant::FCALMaterialConsultant() +{ + G4double a,z,density,fractionmass; + G4String name,symbol; + G4int nel,natoms; + + //------------ + // elements + //------------ + + a=1.01*g/mole; + elH=new G4Element(name="Hydrogen",symbol="H2",z=1.,a); + + a=2.01*g/mole; + elD=new G4Element(name="Deuterium",symbol="D",z=1.,a); + + a=4.*g/mole; + elHe=new G4Element(name="Helium",symbol="He",z=2.,a); + + a=6.94*g/mole; + elLi=new G4Element(name="Lithium",symbol="Li",z=3.,a); + + a=9.01*g/mole; + elBe=new G4Element(name="Berillium",symbol="Be",z=4.,a); + + a=12.01*g/mole; + elC=new G4Element(name="Carbon",symbol="C",z=6.,a); + + a=14.01*g/mole; + elN=new G4Element(name="Nitrogen",symbol="N2",z=7.,a); + + a=16.*g/mole; + elO=new G4Element(name="Oxygen",symbol="O2",z=8.,a); + + a=20.18*g/mole; + elNe=new G4Element(name="Neon",symbol="Ne",z=10.,a); + + a=22.99*g/mole; + elNa=new G4Element(name="Sodium",symbol="Na",z=11.,a); + + a=26.98*g/mole; + elAl=new G4Element(name="Aluminium",symbol="Al",z=13.,a); + + a=28.085*g/mole; + elSi=new G4Element(name="Silicon",symbol="Si",z=14.,a); + + a=40.08*g/mole; + elCa=new G4Element(name="Calcium",symbol="Ca",z=20.,a); + + a=55.850*g/mole; + elFe=new G4Element(name="Iron",symbol="Fe",z=26.,a); + + a=63.54*g/mole; + elCu=new G4Element(name="Copper",symbol="Cu",z=29.,a); + + a=183.85*g/mole; + elW=new G4Element(name="Tungstenm",symbol="W",z=74.,a); + + a=207.19*g/mole; + elPb=new G4Element(name="Lead",symbol="Pb",z=82.,a); + + a=238.03*g/mole; + elU=new G4Element(name="Uranium",symbol="U",z=92.,a); + + + //------------------- + // simple materials + //------------------- + + density = 2.7*g/cm3; + a = 26.98*g/mole; + Aluminium = new G4Material(name="Aluminium",z=13.,a,density); + + density = 7.87*g/cm3; + a = 55.85*g/mole; + Iron = new G4Material(name="Iron",z=26.,a,density); + + density = 8.96*g/cm3; + a = 63.54*g/mole; + Copper = new G4Material(name="Copper",z=29.,a,density); + + density = 19.3*g/cm3; + a = 183.85*g/mole; + Tungsten = new G4Material(name="Tungsten",z=74.,a,density); + + density = 11.35*g/cm3; + a = 207.19*g/mole; + Lead = new G4Material(name="Lead",z=82.,a,density); + + density = 1.4*g/cm3; + a = 39.95*g/mole; + LiquidArgon = new G4Material(name="LiquidArgon",z=18.,a,density); + + density = 0.002*g/cm3; + a = 39.95*g/mole; + ArgonGas = new G4Material(name="ArgonGas",z=18.,a,density); + + density = 8.96*g/cm3; + a = 58.69*g/mole; + Nickel = new G4Material(name="Nickel",z=28.,a,density); + + + //------------------ + // mixtures + //------------------ + + density = 1.290*mg/cm3; + Air = new G4Material(name="Air",density, nel=2); + Air->AddElement(elN, 0.7); + Air->AddElement(elO, 0.3); + + RhoaCell = Air; + + + density = 1.e-5*g/cm3; + G4double pressure = 2.e-2*bar; + G4double temperature = STP_Temperature; //from PhysicalConstants.h + G4Material* Vacuum = new G4Material(name="Vacuum", density, nel=1, + kStateGas,temperature,pressure); + Vacuum->AddMaterial(Air, fractionmass=1.); + + + density = 0.002*g/cm3; + CO2 = new G4Material(name="CO2",density,nel=2); + CO2->AddElement(elC, natoms=1); + CO2->AddElement(elO, natoms=2); + + density = 1.42*g/cm3; + Kapton = new G4Material(name="Kapton",density, nel=4); + Kapton->AddElement(elH, fractionmass = 0.0273); + Kapton->AddElement(elC, fractionmass = 0.7213); + Kapton->AddElement(elN, fractionmass = 0.0765); + Kapton->AddElement(elO, fractionmass = 0.1749); + + density = 1.032*g/cm3; + Polystyrene = new G4Material(name="Polystyrene",density,nel=2); + Polystyrene->AddElement(elC, natoms=8); + Polystyrene->AddElement(elH, natoms=8); + + density = 5.185*g/cm3; + FCAL1CuArKap = new G4Material(name="FCAL1CuArKap",density,nel=3); + FCAL1CuArKap->AddMaterial(Copper, fractionmass = 0.864); + FCAL1CuArKap->AddMaterial(Kapton, fractionmass = 0.068); + FCAL1CuArKap->AddMaterial(LiquidArgon, fractionmass = 0.068); + + density = 8.701*g/cm3; + FCAL1CuAr = new G4Material(name="FCAL1CuAr",density,nel=2); + FCAL1CuAr->AddMaterial(Copper, fractionmass = 0.994); + FCAL1CuAr->AddMaterial(LiquidArgon, fractionmass = 0.006); + + density = 5.185*g/cm3; + FCAL2CuArKap = new G4Material(name="FCAL2CuArKap",density,nel=3); + FCAL2CuArKap->AddMaterial(Copper, fractionmass = 0.864); + FCAL2CuArKap->AddMaterial(Kapton, fractionmass = 0.068); + FCAL2CuArKap->AddMaterial(LiquidArgon, fractionmass = 0.068); + + density = 18.6*g/cm3; + FCAL2WFeNi = new G4Material(name="FCAL2WFeNi",density,nel=3); + FCAL2WFeNi->AddMaterial(Tungsten, fractionmass = 0.97); + FCAL2WFeNi->AddMaterial(Iron, fractionmass = 0.01); + FCAL2WFeNi->AddMaterial(Nickel, fractionmass = 0.02); + + density = 15.366*g/cm3; + FCAL2WFeNiCuAr = new G4Material(name="FCAL2WFeNiCuAr",density,nel=3); + FCAL2WFeNiCuAr->AddMaterial(FCAL2WFeNi, fractionmass = 0.913); + FCAL2WFeNiCuAr->AddMaterial(Copper, fractionmass = 0.077); + FCAL2WFeNiCuAr->AddMaterial(LiquidArgon, fractionmass = 0.01); + + density = 0.002*g/cm3; + MWPCArCO2 = new G4Material(name="MWPCArCO2",density,nel=2); + MWPCArCO2->AddMaterial(CO2, fractionmass = 0.2); + MWPCArCO2->AddMaterial(ArgonGas, fractionmass = 0.8); + + + // must check recipe for concrete + + density = 2.5*g/cm3; + ShieldingConcrete = new G4Material(name="ShieldingConcrete",density,nel=6); + ShieldingConcrete->AddElement(elO, fractionmass = 0.52); + ShieldingConcrete->AddElement(elSi, fractionmass = 0.325); + ShieldingConcrete->AddElement(elCa, fractionmass = 0.06); + ShieldingConcrete->AddElement(elNa, fractionmass = 0.015); + ShieldingConcrete->AddElement(elFe, fractionmass = 0.04); + ShieldingConcrete->AddElement(elAl, fractionmass = 0.04); + + // must have the right composition for stainless steel + + density = 8.96*g/cm3; + StainlessSteel = new G4Material(name="StainlessSteel",density,nel=1); + StainlessSteel->AddElement(elO, fractionmass = 1.); + +}; + +FCALMaterialConsultant * FCALMaterialConsultant::construct() +{ + if (theFCALMaterialConsultant == NULL) { + theFCALMaterialConsultant = new FCALMaterialConsultant(); + } + return theFCALMaterialConsultant; +}; + +G4Material * FCALMaterialConsultant::Material(G4String what) +{ + if(what == "Air") return Air; + if(what == "Vacuum") return Vacuum; + if(what == "LiquidArgon") return LiquidArgon; + if(what == "Aluminium") return Aluminium; + if(what == "Iron") return Iron; + if(what == "Copper") return Copper; + if(what == "Tungsten") return Tungsten; + if(what == "Lead") return Lead; + if(what == "CO2") return CO2; + if(what == "ArgonGas") return ArgonGas; + if(what == "ShieldingConcrete") return ShieldingConcrete; + if(what == "Polystyrene") return Polystyrene; + if(what == "StainlessSteel") return StainlessSteel; + if(what == "Nickel") return Nickel; + if(what == "FCAL1CuArKap") return FCAL1CuArKap; + if(what == "FCAL1CuAr") return FCAL1CuAr; + if(what == "FCAL2CuArKap") return FCAL2CuArKap; + if(what == "FCAL2WFeNi") return FCAL2WFeNi; + if(what == "FCAL2WFeNiCuAr") return FCAL2WFeNiCuAr; + if(what == "MWPCArCO2") return MWPCArCO2; + if(what == "RhoaCell") return RhoaCell; + +}; + diff --git a/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc b/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc new file mode 100644 index 0000000000..b62abaf661 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc @@ -0,0 +1,374 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALPhysicsList.cc,v 1.3 2002/12/12 19:16:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALPhysicsList.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALPhysicsList::FCALPhysicsList(): G4VUserPhysicsList() +{ + currentDefaultCut = defaultCutValue = 1.*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForProton = defaultCutValue; + + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALPhysicsList::~FCALPhysicsList() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructParticle() +{ + // 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(); + ConstructBaryons(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); + + // optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructMesons() +{ + // mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructBaryons() +{ +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructEM(); + ConstructGeneral(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#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" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4GammaConversion()); + pmanager->AddDiscreteProcess(new G4ComptonScattering()); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); + + } else if (particleName == "e-") { + //electron + G4VProcess* theeminusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeminusIonisation = new G4eIonisation(); + G4VProcess* theeminusBremsstrahlung = new G4eBremsstrahlung(); + // + // add processes + pmanager->AddProcess(theeminusMultipleScattering); + pmanager->AddProcess(theeminusIonisation); + pmanager->AddProcess(theeminusBremsstrahlung); + // + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep,1); + pmanager->SetProcessOrdering(theeminusIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(theeminusIonisation, idxPostStep,2); + pmanager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep,3); + + } else if (particleName == "e+") { + //positron + G4VProcess* theeplusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeplusIonisation = new G4eIonisation(); + G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung(); + G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation(); + // + // add processes + pmanager->AddProcess(theeplusMultipleScattering); + pmanager->AddProcess(theeplusIonisation); + pmanager->AddProcess(theeplusBremsstrahlung); + pmanager->AddProcess(theeplusAnnihilation); + // + // set ordering for AtRestDoIt + pmanager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest); + // + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep,1); + pmanager->SetProcessOrdering(theeplusIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(theeplusIonisation, idxPostStep,2); + pmanager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep,3); + pmanager->SetProcessOrdering(theeplusAnnihilation, idxPostStep,4); + + } else 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); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(anIonisation, idxPostStep,2); + pmanager->SetProcessOrdering(aBremsstrahlung, idxPostStep,3); + pmanager->SetProcessOrdering(aPairProduction, idxPostStep,4); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + // all others charged particles except geantino + G4VProcess* aMultipleScattering = new G4MultipleScattering(); + G4VProcess* anIonisation = new G4hIonisation(); + // + // add processes + pmanager->AddProcess(anIonisation); + pmanager->AddProcess(aMultipleScattering); + // + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1); + pmanager->SetProcessOrdering(anIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(anIonisation, idxPostStep,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4Decay.hh" + +void FCALPhysicsList::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 ->AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPhysicsList::SetCuts() +{ + // reactualise cutValues + if (currentDefaultCut != defaultCutValue) + { + if(cutForGamma == currentDefaultCut) cutForGamma = defaultCutValue; + if(cutForElectron == currentDefaultCut) cutForElectron = defaultCutValue; + if(cutForProton == currentDefaultCut) cutForProton = defaultCutValue; + currentDefaultCut = defaultCutValue; + } + + if (verboseLevel >0){ + G4cout << "FCALPhysicsList::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(cutForElectron, "e+"); + + // set cut values for proton and anti_proton before all other hadrons + // because some processes for hadrons need cut values for proton/anti_proton + SetCutValue(cutForProton, "proton"); + SetCutValue(cutForProton, "anti_proton"); + + SetCutValueForOthers(defaultCutValue); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +void FCALPhysicsList::SetCutForGamma(G4double cut) +{ + ResetCuts(); + cutForGamma = cut; +} + +void FCALPhysicsList::SetCutForElectron(G4double cut) +{ + ResetCuts(); + cutForElectron = cut; +} + +void FCALPhysicsList::SetCutForProton(G4double cut) +{ + ResetCuts(); + cutForProton = cut; +} + +G4double FCALPhysicsList::GetCutForGamma() const +{ + return cutForGamma; +} + +G4double FCALPhysicsList::GetCutForElectron() const +{ + return cutForElectron; +} + +G4double FCALPhysicsList::GetCutForProton() const +{ + return cutForGamma; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + + + + + + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc new file mode 100644 index 0000000000..de4c27e577 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc @@ -0,0 +1,124 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// $Id: FCALPrimaryGeneratorAction.cc,v 1.2 2002/12/12 19:16:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALPrimaryGeneratorAction.hh" + + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +#include "fstream.h" +#include "stdlib.h" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction() +{ + X = new G4double[5001]; + Y = new G4double[5001]; + Z = new G4double[5001]; + Cos_X = new G4double[5001]; + Cos_Y = new G4double[5001]; + Cos_Z = new G4double[5001]; + + + G4int Nparticles = 1; + particleGun = new G4ParticleGun(Nparticles); + + // default Particle + G4String particleName; + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* particle = particleTable->FindParticle(particleName="e+"); + particleGun->SetParticleDefinition(particle); + + + // default Energy + particleGun->SetParticleEnergy(80*GeV); + + // Read Kinematics from file + G4int InEvent = 0; + G4String file_name = "data-tracks/tracks-80GeV.dat"; + ifstream Traks_file(file_name); + if(!Traks_file) G4cerr << "WARNING: Failed to open file " << file_name << endl; + Traks_file.seekg(0); + + while(!(Traks_file.eof())) { + InEvent++; + Traks_file >> Ievent >> X[InEvent] >> Y[InEvent] >> Z[InEvent] + >> Cos_X[InEvent] >> Cos_Y[InEvent] >> Cos_Z[InEvent]; + }; + + Nevent = 2500; +}; + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALPrimaryGeneratorAction::~FCALPrimaryGeneratorAction() +{ + delete particleGun; + delete [] X; + delete [] Y; + delete [] Z; + delete [] Cos_X; + delete [] Cos_Y; + delete [] Cos_Z; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + + Nevent++; + + particleGun->SetParticlePosition(G4ThreeVector(X[Nevent]*cm,Y[Nevent]*cm,Z[Nevent]*cm)); + particleGun->SetParticleMomentumDirection(G4ThreeVector(-Cos_X[Nevent],Cos_Y[Nevent],-Cos_Z[Nevent])); + + + particleGun->GeneratePrimaryVertex(anEvent); + + G4cout << "--------------------------------------------" << endl; + G4cout << " Event, X,Y,Z Generated Vertex : " << endl; + G4cout << Nevent << " " << X[Nevent] << " " << Y[Nevent] << " " << Z[Nevent]<< endl; + G4cout << "--------------------------------------------" << endl; + + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc new file mode 100644 index 0000000000..6363f949e3 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc @@ -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. * +// ******************************************************************** +// 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: FCALRunAction.cc,v 1.2 2002/12/12 19:16:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALRunAction.hh" + +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALRunAction::FCALRunAction() +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALRunAction::~FCALRunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALRunAction::BeginOfRunAction(const G4Run* aRun) +{ + + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALRunAction::EndOfRunAction(const G4Run* ) +{ + if (G4VVisManager::GetConcreteInstance()) { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc new file mode 100644 index 0000000000..26379e233c --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc @@ -0,0 +1,250 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALSteppingAction.cc,v 1.2 2002/12/12 19:16:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALSteppingAction.hh" +#include "G4SteppingManager.hh" + +#include "G4Track.hh" +#include "G4DynamicParticle.hh" +#include "G4Material.hh" + +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" + +#include "G4Event.hh" + +#include "G4ThreeVector.hh" + +#include "G4ios.hh" +#include "iostream.h" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALSteppingAction::FCALSteppingAction() : IDold(-1), IDout(-1) +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALSteppingAction::~FCALSteppingAction() +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALSteppingAction::UserSteppingAction(const G4Step* astep) +{ + // Get Edep + G4double Edep = astep->GetTotalEnergyDeposit(); + + // Get Track + G4Track* aTrack = astep->GetTrack(); + + // Get Touchable History + G4TouchableHistory* theTouchable = (G4TouchableHistory*)(aTrack->GetTouchable()); + + // Energy deposit in FCAL1 and FCAL2 + if(Edep != 0.) + { + G4VPhysicalVolume* physVol = theTouchable->GetVolume(); + + if(strcmp(physVol->GetName(),"FCALEmModulePhysical")== 0 || + strcmp(physVol->GetName(),"F1LArGapPhysical") == 0) + { + EdepFCALEm = EdepFCALEm + Edep; + }; + + if( (strcmp(physVol->GetName(), "FCALHadModulePhysical") == 0) || + (strcmp(physVol->GetName(), "CuPlateAPhysical") == 0) || + (strcmp(physVol->GetName(), "CuPlateBPhysical") == 0) || + (strcmp(physVol->GetName(), "WAbsorberPhysical") == 0) || + (strcmp(physVol->GetName(), "F2RodPhysical") == 0) || + (strcmp(physVol->GetName(), "F2LArGapPhysical") == 0) ) + { + EdepFCALHad = EdepFCALHad + Edep; + }; + }; + + // Get Tracks properties + G4int TrackID = aTrack->GetTrackID(); + G4int ParentID = aTrack->GetParentID(); + // Get Associated particle + const G4DynamicParticle * aDynamicParticle = aTrack->GetDynamicParticle(); + G4ParticleDefinition * aParticle = aTrack->GetDefinition(); + G4String ParticleName = aParticle->GetParticleName(); + + IDnow = EventNo + 10000*TrackID+ 100000000*ParentID; + + if(IDnow != IDold) + { + IDold = IDnow; + + // Get the primary particle + if(TrackID==1 && ParentID==0 && (aTrack->GetCurrentStepNumber()) == 1) + { + PrimaryVertex = aTrack->GetVertexPosition(); + PrimaryDirection = aTrack->GetVertexMomentumDirection(); + + NSecondaries = 1; + Secondaries[NSecondaries][1] = aParticle->GetPDGEncoding(); + Secondaries[NSecondaries][2] = PrimaryVertex.x(); + Secondaries[NSecondaries][3] = PrimaryVertex.y(); + Secondaries[NSecondaries][4] = PrimaryVertex.z(); + Secondaries[NSecondaries][5] = (aDynamicParticle->GetMomentum()).x(); + Secondaries[NSecondaries][6] = (aDynamicParticle->GetMomentum()).y(); + Secondaries[NSecondaries][7] = (aDynamicParticle->GetMomentum()).z(); + Secondaries[NSecondaries][8] = aDynamicParticle->GetTotalMomentum(); + Secondaries[NSecondaries][9] = aDynamicParticle->GetTotalEnergy(); + Secondaries[NSecondaries][10] = aDynamicParticle->GetKineticEnergy(); + + G4cout << " **** Primary : " << EventNo << endl; + G4cout << " Vertex : " << PrimaryVertex << endl; + } + + + // Get secondaries in air close to the primary tracks (DCA < 2.mm) + G4double DCACut = 2.*mm; + G4String Material = aTrack->GetMaterial()->GetName(); + G4ThreeVector TrackPos = aTrack->GetVertexPosition(); + + if(TrackID != 1 && ParentID == 1 && (strcmp(Material,"Air")==0) && (TrackPos.z() > 135.*cm)) + { + SecondaryVertex = aTrack->GetVertexPosition(); + SecondaryDirection = aTrack->GetVertexMomentumDirection(); + + // calculate DCA of secondries to primary particle + Distance = PrimaryVertex - SecondaryVertex ; + VectorProduct = PrimaryDirection.cross(SecondaryDirection); + if(VectorProduct == 0. && + PrimaryDirection != 0. && SecondaryDirection != 0.) + { + G4ThreeVector Temp = Distance.cross(PrimaryDirection); + VectorProduct = Temp.cross(PrimaryDirection); + }; + VectorProductMagnitude = VectorProduct.mag(); + if(VectorProductMagnitude == 0.) + { + VectorProductNorm = 0.; + } else { + VectorProductNorm = (1./VectorProduct.mag()) * VectorProduct ; + }; + DistOfClosestApproach = Distance * VectorProductNorm ; + + if(abs(DistOfClosestApproach) < DCACut) + { + NSecondaries++; + Secondaries[0][0] = NSecondaries; + Secondaries[NSecondaries][1] = aParticle->GetPDGEncoding(); + Secondaries[NSecondaries][2] = (aTrack->GetVertexPosition()).x(); + Secondaries[NSecondaries][3] = (aTrack->GetVertexPosition()).y(); + Secondaries[NSecondaries][4] = (aTrack->GetVertexPosition()).z(); + Secondaries[NSecondaries][5] =(aDynamicParticle->GetMomentum()).x(); + Secondaries[NSecondaries][6] = (aDynamicParticle->GetMomentum()).y(); + Secondaries[NSecondaries][7] = (aDynamicParticle->GetMomentum()).z(); + Secondaries[NSecondaries][8] = aDynamicParticle->GetTotalMomentum(); + Secondaries[NSecondaries][9] = aDynamicParticle->GetTotalEnergy(); + Secondaries[NSecondaries][10] =aDynamicParticle->GetKineticEnergy(); + }; + }; + }; + + + // Get the World leaving particle + if(aTrack->GetNextVolume() == 0) { + if(IDnow != IDout) { + IDout = IDnow; + + NTracks++; + + OutOfWorldTracksData[0][0] = NTracks; + + OutOfWorldTracksData[NTracks][1] = aParticle->GetPDGEncoding(); + + OutOfWorldTracksData[NTracks][2] = (aTrack->GetVertexPosition()).x(); + OutOfWorldTracksData[NTracks][3] = (aTrack->GetVertexPosition()).y(); + OutOfWorldTracksData[NTracks][4] = (aTrack->GetVertexPosition()).z(); + + OutOfWorldTracksData[NTracks][5] = (aDynamicParticle->GetMomentum()).x(); + OutOfWorldTracksData[NTracks][6] = (aDynamicParticle->GetMomentum()).y(); + OutOfWorldTracksData[NTracks][7] = (aDynamicParticle->GetMomentum()).z(); + + OutOfWorldTracksData[NTracks][8] = aDynamicParticle->GetTotalMomentum(); + + OutOfWorldTracksData[NTracks][9] = aDynamicParticle->GetTotalEnergy(); + + OutOfWorldTracksData[NTracks][10] = aDynamicParticle->GetKineticEnergy(); + }; + }; + + +} + +void FCALSteppingAction::initialize(G4int Nev) { + EventNo = Nev; + NTracks = 0; + NSecondaries = 0; + EdepFCALEm = EdepFCALHad = 0.; + + for(G4int i=0; i<6000; i++) + { + for(G4int j=0; j<11; j++) + { + OutOfWorldTracksData[i][j] = 0.; + Secondaries[i][j] = 0.; + } + }; +} + +G4double FCALSteppingAction::GetOutOfWorldTracks(G4int i, G4int j){ + return OutOfWorldTracksData[i][j]; +} + +G4double FCALSteppingAction::GetSecondaries(G4int i, G4int j){ + return Secondaries[i][j]; +} + +G4double FCALSteppingAction::GetEdepFCAL(G4String FCAL) { + if(strcmp(FCAL,"FCALEm") == 0) { + return EdepFCALEm; + } else { + if(strcmp(FCAL,"FCALHad") == 0) { + return EdepFCALHad;} + }; +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc new file mode 100644 index 0000000000..66831e2ad8 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc @@ -0,0 +1,185 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALSteppingVerbose.cc,v 1.2 2002/12/12 19:16:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +//--------------------------------------------------------------- +// +// FCALSteppingVerbose.cc +// +// Description: +// Implementation of the FCALSteppingVerbose class +// +//--------------------------------------------------------------- + +#include "FCALSteppingVerbose.hh" +#include "G4SteppingManager.hh" +#include "G4VProcess.hh" +#include "G4ParticleTypes.hh" +#include "G4UnitsTable.hh" + +//////////////////////////////////////////////// +FCALSteppingVerbose::FCALSteppingVerbose() +//////////////////////////////////////////////// +{ +} + +////////////////////////////////////////////////// +FCALSteppingVerbose::~FCALSteppingVerbose() +////////////////////////////////////////////////// +{ +} + +///////////////////////////////////////// +void FCALSteppingVerbose::StepInfo() +///////////////////////////////////////// +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << G4std::setw( 5) << "#Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "NextVolu" + << G4std::setw(10) << "Process" << G4endl; + } + + G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName(); + } else { + G4cout << G4std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); + } else { + G4cout << "User Limit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot + << "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(G4int lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << G4std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//////////////////////////////////////////////// +void FCALSteppingVerbose::TrackingStarted() +//////////////////////////////////////////////// +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << G4std::setw( 5) << "Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "NextVolu" + << G4std::setw(10) << "Process" << G4endl; + + G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + if(fTrack->GetNextVolume()){ + G4cout << G4std::setw(10) << fTrack->GetNextVolume()->GetName() << " "; + } else { + G4cout << G4std::setw(10) << "OutOfWorld" << " "; + } + G4cout << G4std::setw(10) << "initStep" << G4endl; + } + G4cout.precision(prec); +} diff --git a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc new file mode 100644 index 0000000000..aaf0d5eba0 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc @@ -0,0 +1,194 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALTBEventAction.cc,v 1.3 2002/12/12 19:16:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALTBEventAction.hh" + +#include "FCALCalorHit.hh" + +#ifdef G4ANALYSIS_USE +#include "FCALAnalysisManager.hh" +#endif + +//#include "g4rw/tvordvec.h" +#include "g4std/vector" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" +#include "G4UnitsTable.hh" +#include "Randomize.hh" +#include "FCALSteppingAction.hh" + +#include "G4ios.hh" +#include "iostream.h" +#include "fstream.h" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALTBEventAction::FCALTBEventAction(FCALSteppingAction* SA) +:calorimeterCollID(-1),drawFlag("all"),printModulo(10), StepAction(SA) +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALTBEventAction::~FCALTBEventAction() +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTBEventAction::BeginOfEventAction(const G4Event* evt) +{ + G4int evtNb = evt->GetEventID(); + if (evtNb%printModulo == 0) + { + G4cout << "\n---> Begin of event: " << evtNb+1 << G4endl; +// HepRandom::showEngineStatus(); + } + + NTracksOutOfWorld = 0; + NSecondaries = 0; + + StepAction->initialize(evtNb+1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTBEventAction::EndOfEventAction(const G4Event* evt) +{ + NTracksOutOfWorld = StepAction->GetOutOfWorldTracks(0, 0); + G4cout << "N Tracks out of world " << NTracksOutOfWorld << endl; + + // Write Leaving Particles in File + //-------------------------------- + G4String FileName1 = "OutTracks_802_1mm.dat"; + G4int iostemp1; + if(Init1 == 0) { + iostemp1 = ios::out; + Init1++; + } else { + iostemp1 = ios::out|ios::app; // ios::app; + }; + ofstream OutTracks(FileName1, iostemp1); + + OutTracks << NTracksOutOfWorld << endl; + for(G4int i=1; i<= NTracksOutOfWorld ; i++){ + for(G4int j=1; j<11 ; j++) { + G4double OutOfWorld = StepAction->GetOutOfWorldTracks(i,j); + OutTracks << OutOfWorld << " " ; } + OutTracks << endl; +#ifdef G4ANALYSIS_USE + // pass first event for histogram record: + G4double OutOfWorld2 = StepAction->GetOutOfWorldTracks(i,j); + FCALAnalysisManager* analysis = FCALAnalysisManager::getInstance(); + analysis->NumOutOfWorld(OutOfWorld2,i,j); +#endif + } + OutTracks.close(); + + NSecondaries = StepAction->GetSecondaries(0,0); + G4cout << "N Scondaries " << NSecondaries << endl; + + + + + // Write Secondary Particles in File + //-------------------------------- + G4String FileName2 = "SecndTracks_802_1mm.dat"; + G4int iostemp2; + if(Init2 == 0) { + iostemp2 = ios::out; + Init2++; + } else { + iostemp2 = ios::out|ios::app; // ios::app; + }; + + ofstream SecndTracks(FileName2, iostemp2); + + SecndTracks << NSecondaries << endl; + for(i=1; i<= NSecondaries ; i++){ + for(G4int j=1; j<11 ; j++) { + G4double Secondary = StepAction->GetSecondaries(i,j); + SecndTracks << Secondary << " " ; } + SecndTracks << endl; +#ifdef G4ANALYSIS_USE + // pass first event for histogram record: + G4double Secondary2 = StepAction->GetSecondaries(i,j); + FCALAnalysisManager* analysis = FCALAnalysisManager::getInstance(); + analysis->Secondaries(Secondary2,i,j); +#endif + } + SecndTracks.close(); + + + // Write Edep in FCAL1 and FCAL2 + G4String FileName3 = "EdepFCAL_802_1mm.dat"; + G4int iostemp3; + if(Init3 == 0) { + iostemp3 = ios::out; + Init3++; + } else { + iostemp3 = ios::out|ios::app; // ios::app; + }; + + ofstream EdepFCAL(FileName3, iostemp3); + + G4double EmEdep = StepAction->GetEdepFCAL("FCALEm"); + G4double HadEdep = StepAction->GetEdepFCAL("FCALHad"); + + EdepFCAL << EmEdep << " "; + EdepFCAL << HadEdep; + EdepFCAL << endl; + EdepFCAL.close(); + +#ifdef G4ANALYSIS_USE + // pass first event for histogram record: + FCALAnalysisManager* analysis = FCALAnalysisManager::getInstance(); + analysis->Edep(EmEdep,HadEdep); +#endif + + + + G4cout << "Edep in FCAL1 FCAl2 : " << StepAction->GetEdepFCAL("FCALEm") << " "; + G4cout << StepAction->GetEdepFCAL("FCALHad") << endl; +} + + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc b/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc new file mode 100644 index 0000000000..367b29e17f --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.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. * +// ******************************************************************** + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "FCALTBEventActionMessenger.hh" + +#include "FCALTBEventAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +FCALTBEventActionMessenger::FCALTBEventActionMessenger(FCALTBEventAction* EvAct) +:fcaltbeventAction(EvAct) +{ + DrawCmd = new G4UIcmdWithAString("/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("/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...... + +FCALTBEventActionMessenger::~FCALTBEventActionMessenger() +{ + delete DrawCmd; + delete PrintCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void FCALTBEventActionMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if(command == DrawCmd) + {fcaltbeventAction->SetDrawFlag(newValue);} + + if(command == PrintCmd) + {fcaltbeventAction->SetPrintModulo(PrintCmd->GetNewIntValue(newValue));} + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc new file mode 100644 index 0000000000..4621244e95 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc @@ -0,0 +1,431 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// Author: Mathieu Fontaine Rachid Mazini +// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch +// Language: C++ +// Tested on: g++ +// Prerequisites: None +// Purpose: Header file for FCALFrontVolume.cc, which defines +// the volumes in the testbeam front. +// Developped: 10-March-2000 M.F. +// +//---------------------------------------------------------------------------- + + +#include "FCALTestbeamSetup.hh" + +#include "FCALMaterialConsultant.hh" +#include "FCALCryostatVolumes.hh" +//#include "FCALEMModule.hh" +//#include "FCALHadModule.hh" + +#include "FCALTestbeamSetupSD.hh" + +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4SubtractionSolid.hh" +#include "G4Material.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" + +#include "G4SDManager.hh" +#include "G4RunManager.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4ios.hh" + + +FCALTestbeamSetup::FCALTestbeamSetup() { +#include "FCALTestbeamSetupParameters.icc" +}; + +FCALTestbeamSetup::~FCALTestbeamSetup() {}; + +G4VPhysicalVolume * FCALTestbeamSetup::Construct() +{ + //----------------------------- + // construction of materials + //----------------------------- + + FCALMaterialConsultant * FCALMaterials = new FCALMaterialConsultant(); + FCALMaterials->construct(); + + //------------------- + // Experimental Hall + //------------------- + G4Box * SolidMother = new G4Box("Mother",MotherSizeX,MotherSizeY,MotherSizeZ); + G4LogicalVolume * LogicalMother = + new G4LogicalVolume(SolidMother,FCALMaterials->Material("Air"),"Mother"); + G4VPhysicalVolume * PhysicalMother = + new G4PVPlacement(0, G4ThreeVector(),"Mother", LogicalMother, NULL, 0,0); + + LogicalMother->SetVisAttributes(G4VisAttributes::Invisible); + + + //------------------------------- + // Scintillators S1, S2 and S3 + //------------------------------- + G4Box * SolidScintS1andS3 = + new G4Box("ScintS1andS3Solid",ScintS1andS3SizeX, ScintS1andS3SizeY, ScintS1andS3SizeZ); + G4Box * SolidScintS2 = + new G4Box("ScintS2Solid", ScintS2SizeX, ScintS2SizeY, ScintS2SizeZ); + + G4LogicalVolume * LogicalScintS1andS3 = + new G4LogicalVolume(SolidScintS1andS3,FCALMaterials->Material("Polystyrene"), + "ScintS1andS3Logical"); + G4LogicalVolume * LogicalScintS2 = + new G4LogicalVolume(SolidScintS2, FCALMaterials->Material("Polystyrene"), + "ScintS2Logical"); + + G4VPhysicalVolume * PhysicalScintS1 = + new G4PVPlacement(0, G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS1PosZ), + "ScintS1Physical",LogicalScintS1andS3,PhysicalMother,0,0); + G4VPhysicalVolume * PhysicalScintS3 = + new G4PVPlacement(0, G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS3PosZ), + "ScintS3Physical",LogicalScintS1andS3,PhysicalMother,0,0); + G4VPhysicalVolume * PhysicalScintS2 = + new G4PVPlacement(0, G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS2PosZ), + "ScintS2Physical", LogicalScintS2, PhysicalMother,0,0); + + G4VisAttributes * ColorOfScintillator = new G4VisAttributes(G4Colour(0.,0.8,0.)); + LogicalScintS1andS3->SetVisAttributes(ColorOfScintillator); + LogicalScintS2->SetVisAttributes(ColorOfScintillator); + + + //------------------- + // MWPC's + //------------------- + G4Box* SolidMWPC = new G4Box("MWPCSolid",MWPCSizeX,MWPCSizeY,MWPCSizeZ); + G4LogicalVolume * LogicalMWPC = + new G4LogicalVolume(SolidMWPC,FCALMaterials->Material("MWPCArCO2"),"MWPCLogical"); + for(G4int i=0; i<5; i++) + { + G4VPhysicalVolume * PhysicalMWPC = + new G4PVPlacement(0,G4ThreeVector(MWPCPosX,MWPCPosY,MWPCPosZ[i]), + "MWPCPhysical", LogicalMWPC, PhysicalMother,0,i+1); + } + G4VisAttributes * ColorOfMWPC = new G4VisAttributes(G4Colour(0.,0.,0.5)); + LogicalMWPC->SetVisAttributes(ColorOfMWPC); + + //--------------------------------------- + // Hole Counter (scintillator + Pb + Al + //--------------------------------------- + // Scintillator Counter + G4Box * SolidHoleCntrScint = + new G4Box("ScintSolid", HoleCntrSizeX, HoleCntrSizeY, HoleCntrScintSizeZ); + G4LogicalVolume * LogicalHoleCntrScint = + new G4LogicalVolume(SolidHoleCntrScint, FCALMaterials->Material("Polystyrene"), + "HoleCntrScintLogical"); + // Hole in scintillator Counter + G4Tubs * SolidHole = + new G4Tubs("HoleSolid", ScintHoleRmin, ScintHoleRmax, ScintHoleLength, + HoleStartPhi, HoleDPhi); + G4LogicalVolume * LogicalHole = + new G4LogicalVolume(SolidHole, FCALMaterials->Material("Air"), "HoleLogical"); + G4VPhysicalVolume * PhysicalHoleScint = + new G4PVPlacement(0, G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHole, + "HolePhysicalScint", LogicalHoleCntrScint, 0, 0); + // Scintillator Hole counter placement + G4VPhysicalVolume * PhysicalHoleCntrScint = new G4PVPlacement(0, + G4ThreeVector(HoleCntrScintPosX, HoleCntrScintPosY, HoleCntrScintPosZ), + "HoleCntrScintPhysical", LogicalHoleCntrScint, PhysicalMother, 0, 0); + + // Absorber Lead + G4Box * SolidHoleCntrAbsrb = + new G4Box("AbsrbSolid", HoleCntrSizeX, HoleCntrSizeY, HoleCntrAbsrbSizeZ); + G4LogicalVolume * LogicalHoleCntrPb = + new G4LogicalVolume(SolidHoleCntrAbsrb, FCALMaterials->Material("Lead"), + "HoleCntrPbLoghical"); + + //hole in ABsorber, both Lead and Al. + G4Tubs * SolidHoleAbs = + new G4Tubs("HoleSolidAbs", AbsrbHoleRmin, AbsrbHoleRmax, AbsrbHoleLength, + HoleStartPhi, HoleDPhi); + G4LogicalVolume * LogicalHoleAbs = + new G4LogicalVolume(SolidHoleAbs, FCALMaterials->Material("Air"),"HoleAbsLogical"); + G4VPhysicalVolume * PhysicalHolePb = + new G4PVPlacement(0, G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHoleAbs, + "HolePbPhysical", LogicalHoleCntrPb, 0, 0); + + // Lead Placement + G4VPhysicalVolume * PhysicalHoleCntrPb = + new G4PVPlacement(0, G4ThreeVector(HoleCntrPbPosX, HoleCntrPbPosY, HoleCntrPbPosZ), + "HoleCntrPbPhysical", LogicalHoleCntrPb, PhysicalMother, 0, 0); + + // Absorber Al. + G4LogicalVolume * LogicalHoleCntrAl = + new G4LogicalVolume(SolidHoleCntrAbsrb, FCALMaterials->Material("Aluminium"), + "HoleCntrAlLoghical"); + G4VPhysicalVolume * PhysicalHoleAl = + new G4PVPlacement(0, G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHoleAbs, + "HoleAlPhysical", LogicalHoleCntrAl, 0, 0); + G4VPhysicalVolume * PhysicalHoleCntrAl = + new G4PVPlacement(0, G4ThreeVector(HoleCntrAlPosX, HoleCntrAlPosY, HoleCntrAlPosZ), + "HoleCntrAlPhysical", LogicalHoleCntrAl, PhysicalMother, 0, 0); + + LogicalHoleCntrScint->SetVisAttributes(ColorOfScintillator); + + G4VisAttributes * ColorOfLead = new G4VisAttributes(G4Colour(0.5,0.5,0.8)); + G4VisAttributes * ColorOfAlu = new G4VisAttributes(G4Colour(0.5,0.5,0.3)); + LogicalHoleCntrPb->SetVisAttributes(ColorOfLead); + LogicalHoleCntrAl->SetVisAttributes(ColorOfAlu); + + G4VisAttributes * ColorOfAir = new G4VisAttributes(G4Colour(1.,1.,1.)); + LogicalHole->SetVisAttributes(ColorOfAir); + LogicalHoleAbs->SetVisAttributes(ColorOfAir); + + + //------------------- + // Lead Wall + //------------------- + G4Box * SolidLeadWall = + new G4Box("LeadWallSolid", LeadWallSizeX, LeadWallSizeY, LeadWallSizeZ); + G4LogicalVolume * LogicalLeadWall = + new G4LogicalVolume(SolidLeadWall, FCALMaterials->Material("Lead"), + "LeadWallLogical"); + + G4Box * SolidSlitPb = new G4Box("SlitPb", LeadWallSlitSizeX, LeadWallSlitSizeY, + LeadWallSlitSizeZ); + G4LogicalVolume * LogicalSlitPb = + new G4LogicalVolume(SolidSlitPb, FCALMaterials->Material("Air"), "SlitPbLogical"); + G4VPhysicalVolume * PhysicalSlitPb = + new G4PVPlacement(0, 0, LogicalSlitPb, "SlitPbPhysical", LogicalLeadWall, 0, 0); + + G4VPhysicalVolume * PhysicalLeadWall = + new G4PVPlacement(0, G4ThreeVector(LeadWallPosX,LeadWallPosY,LeadWallPosZ), + "LeadWallPhysical", LogicalLeadWall, PhysicalMother, 0, 0); + + LogicalLeadWall->SetVisAttributes(ColorOfLead); + LogicalSlitPb->SetVisAttributes(ColorOfAir); + + + //------------------- + // Iron Wall + //------------------- + G4Box * SolidIronWall = + new G4Box("IronWallSolid", IronWallSizeX, IronWallSizeY, IronWallSizeZ); + G4LogicalVolume * LogicalIronWall = + new G4LogicalVolume(SolidIronWall, FCALMaterials->Material("Iron"), + "IronWallLogical"); + + G4Box * SolidSlitFe = new G4Box("SlitFe", IronWallSlitSizeX, IronWallSlitSizeY, + IronWallSlitSizeZ); + G4LogicalVolume * LogicalSlitFe = + new G4LogicalVolume(SolidSlitFe, FCALMaterials->Material("Air"), "SlitFeLogical"); + G4VPhysicalVolume * PhysicalSlitFe = + new G4PVPlacement(0, 0, LogicalSlitFe, "SlitFePhysical", LogicalIronWall, 0, 0); + + G4VPhysicalVolume * PhysicalIronWall = + new G4PVPlacement(0, G4ThreeVector(IronWallPosX,IronWallPosY,IronWallPosZ), + "IronWallPhysical", LogicalIronWall, PhysicalMother, 0, 0); + + G4VisAttributes * ColorOfIron = new G4VisAttributes(G4Colour(0.2,0.2,0.2)); + LogicalIronWall->SetVisAttributes(ColorOfIron); + LogicalSlitFe->SetVisAttributes(ColorOfAir); + + //---------------- + // Tail Catcher + //---------------- + G4Box * SolidBigScint = + new G4Box("BigSolidScint",BigScintSizeX, BigScintSizeY, ScintSizeZ); + G4LogicalVolume * LogicalBigScint = + new G4LogicalVolume(SolidBigScint, FCALMaterials->Material("Polystyrene"), + "BigScintLogical"); + + G4Box * SolidSmallScint = + new G4Box("SmallSolidScint",SmallScintSizeX, SmallScintSizeY, ScintSizeZ); + G4LogicalVolume * LogicalSmallScint = + new G4LogicalVolume(SolidSmallScint, FCALMaterials->Material("Polystyrene"), + "SmallScintLogical"); + + for( i=0; i<(NBigScint+NSmallScint); i++) + { + if(iSetVisAttributes(ColorOfScintillator); + LogicalSmallScint->SetVisAttributes(ColorOfScintillator); + + + G4Box * SolidBigIron = + new G4Box("BigSolidIron",BigIronSizeX, BigIronSizeY, IronSizeZ); + G4LogicalVolume * LogicalBigIron = + new G4LogicalVolume(SolidBigIron, FCALMaterials->Material("Polystyrene"), + "BigIronLogical"); + + G4Box * SolidSmallIron = + new G4Box("SmallSolidIron",SmallIronSizeX, SmallIronSizeY, IronSizeZ); + G4LogicalVolume * LogicalSmallIron = + new G4LogicalVolume(SolidSmallIron, FCALMaterials->Material("Iron"), + "SmallIronLogical"); + + for( i=0; i<(NBigIron+NSmallIron); i++) + { + if(iSetVisAttributes(ColorOfIron); + LogicalSmallIron->SetVisAttributes(ColorOfIron); + + //------------------------- + // Concrete Walls A and B + //------------------------- + G4Box * SolidConcWall = + new G4Box("ConcWallSolid", ConcWallSizeX, ConcWallSizeY, ConcWallSizeZ); + G4LogicalVolume * LogicalConcWallA = + new G4LogicalVolume(SolidConcWall, FCALMaterials->Material("ShieldingConcrete"), + "ConcWallALogical"); + G4VPhysicalVolume * PhysicalConcWallA = + new G4PVPlacement(0, G4ThreeVector(ConcWallPosX, ConcWallPosY, ConcWallAPosZ), + "ConcWallAPhysical", LogicalConcWallA, PhysicalMother, 0, 0); + + G4LogicalVolume * LogicalConcWallB = + new G4LogicalVolume(SolidConcWall, FCALMaterials->Material("ShieldingConcrete"), + "ConcWallBLogical"); + G4VPhysicalVolume * PhysicalConcWallB = + new G4PVPlacement(0, G4ThreeVector(ConcWallPosX, ConcWallPosY, ConcWallBPosZ), + "ConcWallBPhysical", LogicalConcWallB, PhysicalMother, 0, 0); + + G4Box * SolidConcWallIns = + new G4Box("ConcWallInsSolid", ConcWallInsSizeX,ConcWallInsSizeY,ConcWallInsSizeZ); + G4LogicalVolume * LogicalConcWallIns = + new G4LogicalVolume(SolidConcWallIns, FCALMaterials->Material("Iron"), + "LogicalConcWallIns"); + G4VPhysicalVolume * PhysicalConcWallIns = + new G4PVPlacement(0, 0, "ConcWallInsPhysical", LogicalConcWallIns, PhysicalConcWallA, 0, 0); + + G4VisAttributes * ColorOfConcrete = new G4VisAttributes(G4Colour(0.,0.,0.)); + LogicalConcWallA->SetVisAttributes(ColorOfConcrete); + LogicalConcWallB->SetVisAttributes(ColorOfConcrete); + LogicalConcWallIns->SetVisAttributes(ColorOfIron); + + //------------------ + // Muon Counter + //------------------- + G4Box * SolidMuContr = + new G4Box("MuContrSolid", MuCntrSIzeX, MuCntrSIzeY, MuCntrSIzeZ); + G4LogicalVolume * LogicalMuContr = + new G4LogicalVolume(SolidMuContr, FCALMaterials->Material("Polystyrene"), + "MuContrLogical"); + G4VPhysicalVolume * PhysicalMuContr = + new G4PVPlacement(0, G4ThreeVector(MuCntrPosX, MuCntrPosY, MuCntrPosZ), + "MuContrPhyiscal", LogicalMuContr, PhysicalMother, 0, 0); + + LogicalMuContr->SetVisAttributes(ColorOfScintillator); + + //----------------- + // cryostat + //----------------- + + + G4RotationMatrix* CryostatRotationMatrix = + new G4RotationMatrix(); + + // new G4RotationMatrix(1.,0.,0.,0.,0.,-1.,0.,1.,0.); + + // Theta(...) 90.0000 180.0000 90.0000 + // Phi(...) 0.0000 0.0000 90.0000 + // + // Matrix(...) | 1.0000 0.0000 0.0000 | + // | 0.0000 0.0000 -1.0000 | + // | 0.0000 1.0000 0.0000 | + // + // How to input? + + CryostatRotationMatrix->rotateX(90*deg); + + FCALCryostatVolumes * CryostatVolumes = new FCALCryostatVolumes(); + + G4LogicalVolume * theCryostatVolumes = CryostatVolumes->Construct(); + + G4VPhysicalVolume * PhysiCryostatVolumes = + new G4PVPlacement(CryostatRotationMatrix, + G4ThreeVector(CryostatPosX,CryostatPosY,CryostatPosZ),"CryostatVolumes" + , theCryostatVolumes, PhysicalMother, 0,0); + + + //----------------------- + // Senstive detectors + //----------------------- + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + if(!FCALTBSetupSD) + { + FCALTBSetupSD = new FCALTestbeamSetupSD("FCALTB/TBSetupSD"); + SDman->AddNewDetector(FCALTBSetupSD); + } + LogicalScintS1andS3->SetSensitiveDetector(FCALTBSetupSD); + LogicalScintS2->SetSensitiveDetector(FCALTBSetupSD); + LogicalMWPC->SetSensitiveDetector(FCALTBSetupSD); + LogicalHoleCntrScint->SetSensitiveDetector(FCALTBSetupSD); + LogicalHoleCntrPb->SetSensitiveDetector(FCALTBSetupSD); + LogicalHoleCntrAl->SetSensitiveDetector(FCALTBSetupSD); + + + // theCryostatVolumes->SetSensitiveDetector(FCALTBSetupSD); + + LogicalLeadWall->SetSensitiveDetector(FCALTBSetupSD); + LogicalIronWall->SetSensitiveDetector(FCALTBSetupSD); + LogicalBigScint->SetSensitiveDetector(FCALTBSetupSD); + LogicalSmallScint->SetSensitiveDetector(FCALTBSetupSD); + + LogicalBigIron->SetSensitiveDetector(FCALTBSetupSD); + LogicalSmallIron->SetSensitiveDetector(FCALTBSetupSD); + LogicalConcWallA->SetSensitiveDetector(FCALTBSetupSD); + LogicalConcWallB->SetSensitiveDetector(FCALTBSetupSD); + LogicalConcWallIns->SetSensitiveDetector(FCALTBSetupSD); + + LogicalMuContr->SetSensitiveDetector(FCALTBSetupSD); + + + + return PhysicalMother; + +}; + + + diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.icc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.icc new file mode 100644 index 0000000000..bcf7370025 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.icc @@ -0,0 +1,205 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +MotherSizeX = 500.*cm; +MotherSizeY = 500.*cm ; +MotherSizeZ = 3300.*cm; + +//--------------------------- +// Sciantillators S1, S2, S3 +//--------------------------- +ScintS1andS3SizeX = 3.5*cm; +ScintS1andS3SizeY = 3.5*cm; +ScintS1andS3SizeZ = 0.5*cm; + +ScintS2SizeX = 7.5*cm; +ScintS2SizeY = 15.*cm; +ScintS2SizeZ = 0.5*cm; + +ScintS1_S3PosX = 0.*cm; +ScintS1_S3PosY = 0.*cm; +ScintS1PosZ = 3221.5*cm; +ScintS2PosZ = 3107.5*cm; +ScintS3PosZ = 3104.5*cm; + + +//---------- +// MWPC's +//---------- +MWPCSizeX = 6.4*cm; +MWPCSizeY = 6.4*cm; +MWPCSizeZ = 2.*cm; +MWPCPosX = 0.; +MWPCPosY = 0.; +MWPCPosZ[0] = 2591.*cm; +MWPCPosZ[1] = 895.*cm; +MWPCPosZ[2] = 440.*cm; +MWPCPosZ[3] = 352.*cm; +MWPCPosZ[4] = 349.*cm; + + +//------------------- +// Hole Counter +//------------------- +HoleCntrSizeX = 10.0*cm; +HoleCntrSizeY = 40.0*cm; +HoleCntrScintSizeZ = 1.0*cm; +HoleCntrAbsrbSizeZ = 0.5*cm; // Absrb = Pb or Al + +HoleCntrScintPosX = 0.0*cm; +HoleCntrScintPosY = 18.75*cm; +HoleCntrScintPosZ = 289.0*cm; + +HoleCntrPbPosX = 0.0*cm; +HoleCntrPbPosY = 18.75*cm; +HoleCntrPbPosZ = 290.5*cm; + +HoleCntrAlPosX = 0.0*cm; +HoleCntrAlPosY = 18.75*cm; +HoleCntrAlPosZ = 291.5*cm; + +ScintHoleRmin = 0.0*cm; +ScintHoleRmax = 2.5*cm; +ScintHoleLength = 1.0*cm; +AbsrbHoleRmin = 0.0*cm; // Absrb = Pb or Al +AbsrbHoleRmax = 2.75*cm; +AbsrbHoleLength = 0.5*cm; +HoleStartPhi = 0.; +HoleDPhi = 2.*pi; + +HolePosX = 0.0*cm; +HolePosY = -18.75*cm; +HolePosZ = 0.0*cm; + +//------------------ +// Lead Wall +//------------------ +LeadWallSizeX = 100.0*cm; +LeadWallSizeY = 67.5*cm; +LeadWallSizeZ = 0.55*cm; + +LeadWallSlitSizeX = 2.5*cm; +LeadWallSlitSizeY = 10.0*cm; +LeadWallSlitSizeZ = 0.55*cm; + +LeadWallPosX = 0.0*cm; +LeadWallPosY = 0.0*cm; +LeadWallPosZ = 249.55*cm; + +//------------------ +// Iron Wall +//------------------ +IronWallSizeX = 130.0*cm; +IronWallSizeY = 75.0*cm; +IronWallSizeZ = 20.0*cm; + +IronWallSlitSizeX = 5.0*cm; +IronWallSlitSizeY = 30.0*cm; +IronWallSlitSizeZ = 20.0*cm; + +IronWallPosX = 0.0*cm; +IronWallPosY = 0.0*cm; +IronWallPosZ = 162.0*cm; + + +//---------------- +// Tail Catcher +//---------------- +NBigScint = 3; +BigScintSizeX = 60.0*cm; +BigScintSizeY = 60.0*cm; +NSmallScint = 4; +SmallScintSizeX = 20.0*cm; +SmallScintSizeY = 20.0*cm; +ScintSizeZ = 1.0*cm; +ScintPosX = 0.0*cm; +ScintPosY = 0.0*cm; +ScintPosZ[0] = -188.0*cm; // Big Scintillators +ScintPosZ[1] = -208.0*cm; +ScintPosZ[2] = -229.0*cm; +ScintPosZ[3] = -247.0*cm; // Small Scintillators +ScintPosZ[4] = -261.0*cm; +ScintPosZ[5] = -275.0*cm; +ScintPosZ[6] = -289.0*cm; + +NBigIron = 2; +BigIronSizeX = 60.0*cm; +BigIronSizeY = 60.0*cm; +NSmallIron = 4; +SmallIronSizeX = 20.0*cm; +SmallIronSizeY = 20.0*cm; +IronSizeZ = 5.0*cm; +IronPosX = 0.0*cm; +IronPosY = 0.0*cm; +IronPosZ[0] = -200.0*cm; // Big Iron Plates +IronPosZ[1] = -219.0*cm; +IronPosZ[2] = -240.0*cm; // Small Iron Plates +IronPosZ[3] = -254.0*cm; +IronPosZ[4] = -268.0*cm; +IronPosZ[5] = -282.0*cm; + +//------------------------- +// Concrete Walls A and B +//------------------------- +ConcWallSizeX = 130.0*cm; +ConcWallSizeY = 120.*cm; +ConcWallSizeZ = 80.*cm; +ConcWallPosX = 0.0*cm; +ConcWallPosY = 0.0*cm; +ConcWallAPosZ = -375.0*cm; +ConcWallBPosZ = -535.0*cm; + +ConcWallInsSizeX = 40.0*cm; +ConcWallInsSizeY = 40.0*cm; +ConcWallInsSizeZ = 80.0*cm; +ConcWallInsPosZ = 0.0*cm; + +//------------------ +// Muon Counter +//------------------ +MuCntrSIzeX = 20.0*cm; +MuCntrSIzeY = 20.0*cm; +MuCntrSIzeZ = 1.0*cm; +MuCntrPosX = 0.0*cm; +MuCntrPosY = 0.0*cm; +MuCntrPosZ = -681.0*cm; + + + +//------------------ +// Cryostat +//------------------ +CryostatPosX = 0.; +CryostatPosY = 50.*cm; +CryostatPosZ = 0.; + + + +/* +EMModulePosX = 0.; +EMModulePosY = 0.; +EMModulePosZ = -1.691*cm; + +HadModulePosX = 0.; +HadModulePosY = 0.; +HadModulePosZ = -48.991*cm; +*/ diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.input b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.input new file mode 100644 index 0000000000..3bb98f2c57 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupParameters.input @@ -0,0 +1,183 @@ +MotherSizeX = 500.*cm; +MotherSizeY = 500.*cm ; +MotherSizeZ = 3300.*cm; + +//--------------------------- +// Sciantillators S1, S2, S3 +//--------------------------- +ScintS1andS3SizeX = 3.5*cm; +ScintS1andS3SizeY = 3.5*cm; +ScintS1andS3SizeZ = 0.5*cm; + +ScintS2SizeX = 7.5*cm; +ScintS2SizeY = 15.*cm; +ScintS2SizeZ = 0.5*cm; + +ScintS1_S3PosX = 0.*cm; +ScintS1_S3PosY = 0.*cm; +ScintS1PosZ = 3221.5*cm; +ScintS2PosZ = 3107.5*cm; +ScintS3PosZ = 3104.5*cm; + + +//---------- +// MWPC's +//---------- +MWPCSizeX = 6.4*cm; +MWPCSizeY = 6.4*cm; +MWPCSizeZ = 2.*cm; +MWPCPosX = 0.; +MWPCPosY = 0.; +MWPCPosZ[0] = 2591.*cm; +MWPCPosZ[1] = 895.*cm; +MWPCPosZ[2] = 440.*cm; +MWPCPosZ[3] = 352.*cm; +MWPCPosZ[4] = 349.*cm; + + +//------------------- +// Hole Counter +//------------------- +HoleCntrSizeX = 10.0*cm; +HoleCntrSizeY = 40.0*cm; +HoleCntrScintSizeZ = 1.0*cm; +HoleCntrAbsrbSizeZ = 0.5*cm; // Absrb = Pb or Al + +HoleCntrScintPosX = 0.0*cm; +HoleCntrScintPosY = 18.75*cm; +HoleCntrScintPosZ = 289.0*cm; + +HoleCntrPbPosX = 0.0*cm; +HoleCntrPbPosY = 18.75*cm; +HoleCntrPbPosZ = 290.5*cm; + +HoleCntrAlPosX = 0.0*cm; +HoleCntrAlPosY = 18.75*cm; +HoleCntrAlPosZ = 291.5*cm; + +ScintHoleRmin = 0.0*cm; +ScintHoleRmax = 2.5*cm; +ScintHoleLenght = 1.0*cm; +AbsrbHoleRmin = 0.0*cm; // Absrb = Pb or Al +AbsrbHoleRmax = 2.75*cm; +AbsrbHoleLenght = 0.5*cm; +HoleStartPhi = 0.; +HoleDPhi = 2.*pi; + +HolePosX = 0.0*cm; +HolePosY = -18.75*cm; +HolePosZ = 0.0*cm; + +//------------------ +// Lead Wall +//------------------ +LeadWallSizeX = 100.0*cm; +LeadWallSizeY = 67.5*cm; +LeadWallSizeZ = 0.55*cm; + +LeadWallSlitSizeX = 2.5*cm; +LeadWallSlitSizeY = 10.0*cm; +LeadWallSlitSizeZ = 0.55*cm; + +LeadWallPosX = 0.0*cm; +LeadWallPosY = 0.0*cm; +LeadWallPosZ = 249.55*cm; + +//------------------ +// Iron Wall +//------------------ +IronWallSizeX = 130.0*cm; +IronWallSizeY = 75.0*cm; +IronWallSizeZ = 20.0*cm; + +IronWallSlitSizeX = 5.0*cm; +IronWallSlitSizeY = 30.0*cm; +IronWallSlitSizeZ = 20.0*cm; + +IronWallPosX = 0.0*cm; +IronWallPosY = 0.0*cm; +IronWallPosZ = 162.0*cm; + + +//---------------- +// Tail Catcher +//---------------- +NBigScint = 3; +BigScintSizeX = 60.0*cm; +BigScintSizeY = 60.0*cm; +NSmallScint = 4; +SmallScintSizeX = 20.0*cm; +SmallScintSizeY = 20.0*cm; +ScintSizeZ = 1.0*cm; +ScintPosX = 0.0*cm; +ScintPosY = 0.0*cm; +ScintPosZ[0] = -188.0*cm; // Big Scintillators +ScintPosZ[1] = -208.0*cm; +ScintPosZ[2] = -229.0*cm; +ScintPosZ[3] = -247.0*cm; // Small Scintillators +ScintPosZ[4] = -261.0*cm; +ScintPosZ[5] = -275.0*cm; +ScintPosZ[6] = -289.0*cm; + +NBigIron = 2; +BigIronSizeX = 60.0*cm; +BigIronSizeY = 60.0*cm; +NSmallIron = 4; +SmallIronSizeX = 20.0*cm; +SmallIronSizeY = 20.0*cm; +IronSizeZ = 5.0*cm; +IronPosX = 0.0*cm; +IronPosY = 0.0*cm; +IronPosZ[0] = -200.0*cm; // Big Iron Plates +IronPosZ[1] = -219.0*cm; +IronPosZ[2] = -240.0*cm; // Small Iron Plates +IronPosZ[3] = -254.0*cm; +IronPosZ[4] = -268.0*cm; +IronPosZ[5] = -282.0*cm; + +//------------------------- +// Concrete Walls A and B +//------------------------- +ConcWallSizeX = 130.0*cm; +ConcWallSizeY = 120.*cm; +ConcWallSizeZ = 80.*cm; +ConcWallPosX = 0.0*cm; +ConcWallPosY = 0.0*cm; +ConcWallAPosZ = -375.0*cm; +ConcWallBPosZ = -535.0*cm; + +ConcWallInsSizeX = 40.0*cm; +ConcWallInsSizeY = 40.0*cm; +ConcWallInsSizeZ = 80.0*cm; +ConcWallInsPosZ = 0.0*cm; + +//------------------ +// Muon Counter +//------------------ +MuCntrSIzeX = 20.0*cm; +MuCntrSIzeY = 20.0*cm; +MuCntrSIzeZ = 1.0*cm; +MuCntrPosX = 0.0*cm; +MuCntrPosY = 0.0*cm; +MuCntrPosZ = -681.0*cm; + + + +//------------------ +// Cryostat +//------------------ +CryostatPosX = 0.; +CryostatPosY = 50.*cm; +CryostatPosZ = 0.; + + + +/* +EMModulePosX = 0.; +EMModulePosY = 0.; +EMModulePosZ = -1.691*cm; + +HadModulePosX = 0.; +HadModulePosY = 0.; +HadModulePosZ = -48.991*cm; +*/ diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc new file mode 100644 index 0000000000..4df8a0e606 --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc @@ -0,0 +1,186 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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: FCALTestbeamSetupSD.cc,v 1.4 2002/12/12 19:16:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "FCALTestbeamSetupSD.hh" + +#include "FCALCalorHit.hh" + +#include "FCALTestbeamSetup.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4Track.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" + +#include "G4ios.hh" +#include "iostream.h" +#include "fstream.h" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALTestbeamSetupSD::FCALTestbeamSetupSD(G4String name) : G4VSensitiveDetector(name) +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +FCALTestbeamSetupSD::~FCALTestbeamSetupSD() +{;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTestbeamSetupSD::Initialize(G4HCofThisEvent*HCE) +{ + EBeamS1 = EBeamS2 = EBeamS3 = 0.; + EHoleScint = EBeamHole = 0.; + EBeamDead = 0; + for (G4int j =0 ; j<8 ; j++) { ETailVis[j] = 0.;}; + for ( j =0 ; j<7 ; j++) { ETailDep[j] = 0.;}; + TailCatcherID = 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool FCALTestbeamSetupSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +{ + + G4double edep = aStep->GetTotalEnergyDeposit(); + if (edep==0.) return false; + + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); + G4VPhysicalVolume* physVol = theTouchable->GetVolume(); + + + if(strcmp(physVol->GetName(),"ScintS1Physical")==0) { + EBeamS1 = EBeamS1 + edep;} + + if(strcmp(physVol->GetName(),"ScintS2Physical")==0) { + EBeamS2 = EBeamS2 + edep;} + + if(strcmp(physVol->GetName(),"ScintS3Physical")==0) { + EBeamS3 = EBeamS3 + edep;} + + if(strcmp(physVol->GetName(),"HoleScintPhysical")==0){ EHoleScint =+ edep;} + if(strcmp(physVol->GetName(),"HoleCntrScintPhysical")==0){ + EBeamHole = EBeamHole + edep;} + + if(strcmp(physVol->GetName(),"MWPCPhysical")==0) { EBeamDead =+ edep;}; + if(strcmp(physVol->GetName(),"HoleCntrPbPhysical")==0) { EBeamDead =+ edep;}; + if(strcmp(physVol->GetName(),"HoleCntrAlPhysical")==0) { EBeamDead =+ edep;}; + if(strcmp(physVol->GetName(),"LeadWallPhysical")==0) { EBeamDead =+ edep;}; + if(strcmp(physVol->GetName(),"IronWallPhysical")==0) { EBeamDead =+ edep;}; + + if(strcmp(physVol->GetName(),"BigScintPhysical")==0) { + TailCatcherID = physVol->GetCopyNo(); + if(TailCatcherID > 0) ETailVis[TailCatcherID] =+ edep; + } + if(strcmp(physVol->GetName(),"SmallScintPhysical")==0) { + TailCatcherID = physVol->GetCopyNo(); + if(TailCatcherID > 0) ETailVis[TailCatcherID + 3] =+ edep; + } + + if(strcmp(physVol->GetName(),"BigIronPhysical")==0) { + TailCatcherID = physVol->GetCopyNo(); + if(TailCatcherID > 0) ETailDep[TailCatcherID] =+ edep; + } + if(strcmp(physVol->GetName(),"SmallIronPhysical")==0) { + TailCatcherID = physVol->GetCopyNo(); + if(TailCatcherID > 0) ETailDep[TailCatcherID+2] =+ edep; + } + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTestbeamSetupSD::EndOfEvent(G4HCofThisEvent* HCE) +{ + G4cout << " Visisble Energy in S1 , S2 , S3 in (MeV)" << endl; + G4cout << EBeamS1/MeV << " " << EBeamS2/MeV << " " << EBeamS3/MeV << " " << endl; + + G4cout << " Visible Energy in Hole Counter (MeV) " << endl; + G4cout << EHoleScint/MeV << " " << EBeamHole/MeV << endl; + + G4cout << " Visible Energy in Upstream Dead Materials " << endl; + G4cout << EBeamDead/MeV << endl; + + G4cout << " Visible Energy in Tail Catcher Scintillator" << endl; + for (G4int j=1; j<8 ; j++) {G4cout << ETailVis[j]/MeV << " " ;}; G4cout << endl; + + G4cout << " Visible Energy in Tail Catcher Absorber" << endl; + for (j=1; j<7 ; j++) {G4cout << ETailDep[j]/MeV << " " ;}; G4cout << endl; + +// Write data in File + //------------------- + G4String FileName = "Beam_802_1mm.dat"; + G4int iostemp; + if(InitBeam == 0) { + iostemp = ios::out; + InitBeam++; + } else { + iostemp = ios::out|ios::app; + }; + + ofstream BeamDatafile(FileName, iostemp); + // BeamDatafile.precision(5); + + BeamDatafile << EBeamS1/MeV << " " << EBeamS2/MeV << " " << EBeamS3/MeV << endl; + BeamDatafile << EBeamHole/MeV << endl; + BeamDatafile << EBeamDead/MeV << endl; + for (j=1; j<8 ; j++) { BeamDatafile << ETailVis[j]/MeV << " " ;} ; BeamDatafile << endl; + for (j=1; j<7 ; j++) { BeamDatafile << ETailDep[j]/MeV << " " ;} ; BeamDatafile << endl; + + BeamDatafile.close(); + + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTestbeamSetupSD::clear() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTestbeamSetupSD::DrawAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALTestbeamSetupSD::PrintAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc b/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc new file mode 100644 index 0000000000..4e7611f21d --- /dev/null +++ b/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc @@ -0,0 +1,187 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// 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.4 2002/12/12 19:16:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifdef G4VIS_USE + +#include "FCALVisManager.hh" + + +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.hh" +#include "G4RayTracer.hh" +#include "G4VRML1File.hh" +#include "G4VRML2File.hh" + + +// Supported drivers... + +#ifdef G4VIS_USE_DAWN +#include "G4FukuiRenderer.hh" +#endif + +#ifdef G4VIS_USE_OPACS +#include "G4Wo.hh" +#include "G4Xo.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.... + +FCALVisManager::FCALVisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void FCALVisManager::RegisterGraphicsSystems () { + + + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + + +#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/advanced/underground_physics/GNUmakefile b/examples/advanced/underground_physics/GNUmakefile index 327e25e41d..5f916dacbb 100644 --- a/examples/advanced/underground_physics/GNUmakefile +++ b/examples/advanced/underground_physics/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/06/18 15:57:42 ahoward Exp $ +# $Id: GNUmakefile,v 1.8 2002/11/08 13:58:28 ahoward Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -23,8 +23,8 @@ endif include $(G4INSTALL)/config/architecture.gmk ifdef G4ANALYSIS_USE - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif .PHONY: all diff --git a/examples/advanced/underground_physics/README_stt b/examples/advanced/underground_physics/README_stt new file mode 100644 index 0000000000..121b4174db --- /dev/null +++ b/examples/advanced/underground_physics/README_stt @@ -0,0 +1,41 @@ +******************************************************************************* +******************************************************************************* + Readme File for STT of the Underground_Physics Advanced Example, DMX +******************************************************************************* +******************************************************************************* + +STT testing of DMX should contain the following: + +gmake +DMX stt.mat + +this should produce two output files: +stt.out +stt_pmt.out + +These should be compared with +stt_ref.out +stt_pmt_ref.out + +The job should take +real 6m0.226s +user 5m25.870s +sys 0m2.410s +on a 850MHz Linux machine. + +The memory usage should be around 110Mbytes. + +The initialisation time is ~4.5 minutes, requires loading G4EMLOW1.1 and +G4NDL3.5 via setting G4LEDATA and NeutronHPCrossSections environment variables. + +Platforms to be tested on: +SUN and LINUX, NOT WINDOWS. + +At a future date G4ANALYSIS_USE should be set and the AIDA/Anaphe packages +tested. + +Alex Howard +e-mail: a.s.howard@ic.ac.uk + +******************************************************************************* +******************************************************************************* diff --git a/examples/advanced/underground_physics/alpha.mac b/examples/advanced/underground_physics/alpha.mac index dc1a71dc69..c898b80b80 100644 --- a/examples/advanced/underground_physics/alpha.mac +++ b/examples/advanced/underground_physics/alpha.mac @@ -39,7 +39,7 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm /dmx/gun/confine americium_phys # /dmx/hitsfile alpha.out diff --git a/examples/advanced/underground_physics/alpha_1000.mac b/examples/advanced/underground_physics/alpha_1000.mac index c06452f03e..7cd90e1e04 100644 --- a/examples/advanced/underground_physics/alpha_1000.mac +++ b/examples/advanced/underground_physics/alpha_1000.mac @@ -43,15 +43,15 @@ /dmx/gun/radius 650 mum /dmx/gun/halfz 300.0 nm #/dmx/gun/centre 0 0 82.750 mm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm #/dmx/gun/centre 0 0 0 mm /dmx/gun/confine americium_phys # # set to 0 if too many tracks to store /tracking/storeTrajectory 0 # -/dmx/hitsfile alpha.out -/dmx/histogramfile alpha.his +/dmx/hitsfile alpha_1000.out +/dmx/histogramfile alpha_1000.his /run/beamOn 1000 # diff --git a/examples/advanced/underground_physics/alpha_low.mac b/examples/advanced/underground_physics/alpha_low.mac index 60adf72bc4..4e162b406e 100644 --- a/examples/advanced/underground_physics/alpha_low.mac +++ b/examples/advanced/underground_physics/alpha_low.mac @@ -39,7 +39,7 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm /dmx/gun/confine americium_phys # /dmx/hitsfile alpha_low.out diff --git a/examples/advanced/underground_physics/ambe_spectrum.mac b/examples/advanced/underground_physics/ambe_spectrum.mac index 35f419f0f9..3016a206c4 100644 --- a/examples/advanced/underground_physics/ambe_spectrum.mac +++ b/examples/advanced/underground_physics/ambe_spectrum.mac @@ -38,7 +38,7 @@ /gps/type Surface /gps/shape Sphere /gps/radius 1.0 cm -/gps/centre 0. 132.0 -311.75 mm +/gps/centre 0. 132.0 -302.65 mm /gps/angtype iso /gps/surfnorm 1 /gps/mintheta 0. diff --git a/examples/advanced/underground_physics/anaphe b/examples/advanced/underground_physics/anaphe deleted file mode 100644 index fd92eca6f9..0000000000 --- a/examples/advanced/underground_physics/anaphe +++ /dev/null @@ -1,3 +0,0 @@ -gtar xvfz anaphe.tar.gz -export AIDA_DIR = `pwd` -source anaphe_run.sh diff --git a/examples/advanced/underground_physics/anaphe.tar.gz b/examples/advanced/underground_physics/anaphe.tar.gz deleted file mode 100644 index b33f1baec4f6e51d97d94314da9aca787f9538ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6712 zcmV-88pq`yiwFSZ2M;{}1MEHhQ`^Xr`|I&nOvF}UZ*18ZNa}cjJVMBZIsz$Rv+os4 z`N{Iw)couw z;Q0Ju8QiM&|D~VJ7oC9@bdt$N79>1nXCIIM_P74!$yxvX>81Yc%gN=H{Qddt==#IP zCVz;+7=9gHe>~`9N!;;6*YP`J*KIp~+V0u^zGwH4`u>jy^B0z*oW1X#oxZy~y8L^8 z1-9=E_J1saZ^Tp9jz`R&xDO8-)4QP;%kLVy*B75nZtadks@{fYS!73Z)^4X^^d6A^ z5#0~}(IFD>aK_`r3j?-mckOL}b~nBWb>|yixnsYwUu`_=_?I|b%RA8iU+?WLu>V)R z?w+v!-VS(x-5s?5ySu9>)Vj}=_fw>dz z-X-jQ!r?(oXp!UIIb)!K7!DhIGafKyec?zEabgbmjt?Ce&f(plBEHXu4En2n2{xu) zl6b+Gg#prx!zn#Q`2c>*qcHK(FrKqUihYUs@0k|^WWdw=Fur4s>+&RNitZjENr1Zd ze4k|rFq;j0&-LdL%p3UF0pPv`?}NwqDgfZ%<=Uf|Bg>Hk-WB?hN=X2@VR#?-p)&;b zvC}~)rOO|jX#^DUVU_^deR|AlT^9RSC!I#pok@p9-fB<$7_c2i=)}AfkBr z1f&-^0l_wKsDOWGkYG!rN!bXp?oita|n}#uGWJAC;>IynA-}~ysL*+8S=9~cD zmWHdzy>|kS`|K)>GoQT?zij&TR}YlW&H~Q|zjlbMucn5EAE)RSUNlSM-4^2A+0K0- zh*tE!KTBA$Kbrdzdl0E|L{SG`81pXIW;TLP<*CIzh`$@ z!wu1}$w_?92JgeEslZ*Oz}jREU6-@7QnvLu=rnvE%6Y2I#t_`28!#nV5=;OeVBgLkG74m24_$xh4m@`TNA<1ZpA7!RBsGiC>Sp+>r zNCe#ciy}7xB_|>Q)uwJV96t%EyCKCu0yUw?jR|+zY^t|F573z-_b~O$0DsJf`>3*0 z8KK1)s9!KH$bgs0VlSOb&7(P7aOZ}ZKSW`ToIBJv07G*?2~p4#22D+RNhVyLBK)@K zQQ}4@b{uROOAJMvupS-T@TQcahDj@#!+$CAtsVjsVU((0;FUp%Hh_yV*NgvWxtQ3U-B0kbH8vr6dk*~}O1I|XhGU5$f{oO|JX zCF>N^V7tLx0WAHF>Zk!M`&j@Z`y)lT1T4FzvB9SrA0;+aPc_;YvYqi6_iHg!*Tq1s zPjB8iU^r4?=(~8Vrrl#SIWTl|0;kfK#mo}jSc6q9P|23i-K0)62bej{K}FizCH=y5 z9TfoD!o&uPbnl0aW)5Ql_rnCg*J*K|^q{^8GoA%ll=;+aKBY|1Bzje8`$E0q4bg0C zssb*!)(+M=6hg+l>KvrL0&@*>Fq-RUs*sY>keTBzRS#${i!RrKb#lss*~MK&c9sYQ zRK-E%z!*TltTl6D&l%9950NnRwQ!6u^)@Iz)U_5;4W@sJcA>h9+lBrvZWl_dbFPhi zWBcHsTNo7gb6-*exUE^<`uv%6SPk@Lifijw1bHZ67!5BDgDEDsnv}u4ZH+UCt9Y`7 zngU-@(qcI5rPF1dZ*ro@pA!$Z0&Yp@CPb3bu;KfkV9t<94NrpE7bngQC%)vrXOv9U zs3@g_HBw_+I^q_|Plv4^#GmA0&W_80DyCd$MfKqq>1S>hKogyV00n90KyHc z11Ux4>X-9h6UekEoue+W-k}9vMWd;Y_6#4QmY{|#g1L0=0Ym~XP#e+a`WTrsb@s9V zfbSO4)^siMy|jV98seRX1C%+tmUxRyRFxme!@v^==mvb^%)Bs*S>xvQEqhzlZtM8C zjY2`ietr9=X)YwhNAWl*VkcuB*J2b9DLZ64mg5QM;`fJn^u2U-+r%k-&P0;GxG092_{O$7a%@svBc6Vq2xjYzdA zizfRADrLJ=?6|mUi3Q#kwL!PrKE~8Vt-7T&OfBvxM_P*B`&r;jD_UK6VQl8C?U)W2 z{Hv+$1+Uh{RVnkuxK0XRo39bBX=soc36{e&jg-bYFtUIR5>J^EmHbqg5zx(ze^WMR z%;zQU1Qo*qawsWBq}@;~w=DG3R+GKJ#IDja{NxjvVyu{Ln-$=ybBXy7OLjQqmml+b zWEsztfhCY$ZFhuk$(@M$aDPdU#PpT-sT_367uKR)WdV*od#X6pl=&EeTwFa?3P~31 zKJ@oqYf>5OrVOB}V(g@7BwYFb1hKAbTViqolfvFuVv^2@2 zGaOPFSy@06Ym@mpS`mp_3k*x2YsHV3l8s8>a+CW6-6&gyPPQ~Mx9hGR<|V;A-(GW) zOnnRZ{b#j1{8#&B<61e{*i^K|Gi8#Q2 zK+prG6-YPR!u{i72@u6H8YD8G-ZhOCGChA$a=5}JvQGef!1lVO)=+QVhURClZiwJl z>Rca(9R5I8bj4fcek7We2hwQC`eK_^qi{B;GY3~f$j!x?cS8WTm~Fx9{{;D@GI}nm zKW7jnS4yXOJzN4X3>!@d6%XVP+hqt<9nT?pWe8Oy&mnf6W_k+L#G&cpTIy;!wGoYB z-uUcU%qAQ42e{(ff-j?3eH-|pdza8RG;R9g%pA`rF!W6HMYWBJHs2ZJUralu&V#Mz zN}3!Nrc1QHB47Qc{R|{tJ?}}Kl*WguP55gz5*j4Or;ssH67M^pSymuo_S0dF?QU<^ z{)zs@aO0<NQIXm#=)4Ng~z2Nmt)xVXe zelvc>aE=FIHl7q>E3r_AEow-Rclg{%(tRC8y|@l?@*Ggg?SL#%Z;iXwY93F zf`hhILq~mksZW`hAP`}Z#l##YW0=kKoWSZ>Edat;+OpG!)H0d;=mbM542#VvHvFOT zm3&>(0G2Uxfmd52)|$&@;(8N#rI|>+%QVM{?#9x9AyzjDX}KGflNE9k)N8l9%g#aF zKj5kpCV%xclX{MJ>Nu)V*53kYSa}L`C^s_Ef)_Bx@?3+K0x*VD!Mdd!{=keIm^UE!7LvWK6gdkTCfj%8@`@5XGGQ>E zD8XP{UZz9775?4|b=!D?21)En&a9r}qqX~oEW$GkU(9Vr+N>0DR|{t;LPn2(&%Kf7 zYTkmZSkDCIYARK=L5M9{GfhL>`srryz8UxDP3GcR3QjX5ILc}b3hUHPIa2zmqrI|JRn@wsb)nPq4;Kaxbkac%i{itRdz&SHi#@{TGSP0b zMwIYu7`B`Fc@??w6bpY^DM0*|?(~LPN2l+P`X}OGM*?p*AM`)+=;R@)dHya8?<`h? zJ{l`N62~eB9Y$fpaO!wLagGM-3!ka!J+%~;AJO*Vf;T)vkm9?qem(se|B7A5_}aSH zsTbT&AWTrz5wUYd9-|rJu>@!U@8!=6mL+KM;)}sQVQ{>em(KCE=gzo)j9fUQjU}`;O0H%B@{TAuoJjvdb2F`5Xn_ zqG<}K>SAS%06xFr%tab%xQ)zwmz}zEyw^J(#{48?5 zv)sYX@Iazfcno+%+*>s>!cvodW2{v$JPKeNC0iMH(B=_G9Pi2JpPJcJ->bTKaeZBp z3z9Vx8&$EFLz`6gEv(QwEE_XTZx(A52DeE%471c8`B^flE9l9xyxb}yb+|2c_!|OG|8uq1G8&BC>La6ovZb%oVCjshaW! zbdU~$2dicXo;?SyQhIDc^FL~MmH#iELMk)??5F^ewYZQvp%B53^l@T4o zX*>qlpzO{{`9s>7q*LE2OF?eaQai#lKAL5?>jw;sBtmV*uMw=I{DsKN*}5S8gj^jz zk59buls*mQKDc;YZ)!Mtc>0;o>WX$QoRiDTi%U&7T9$Rl#vmcJ-2y`|h+y0JI;zl_?_XS?lb{QV6uoj9 zSFyJ}-QILf2ku0vuxuF%)@hg8-YPewPgl~;wM6i_iitA(sg?=!`i{1!U9(|Co3=%9 zrn=%t3yw9S$(2U3VWcI$1?DQWtWVIr0pDKDP>4%P2{4>z;aIvTa}I#{jv7m4@zMlP z5Xg%fYKLmkVn~{tg_3l>4dBU>hm3oOoEbGQkExeLLB@DV&6Eooa#}`b_w`{^o|NGi z^$LW>dWT|va3R<_CtcgMMP69Oyye!%_GHtj1QbeF*>9j}wZ`IO->IaIOe$`PuU`1d3zx!tRqBJ#tukg?D~doSS& zHavhQm^fHbktq9%$BTBtwF!K|pkZ6B`#_vd&6%fiO;F(1)GlR1jlZdBSv_`oU%o@5 z@O?;0vlwW|mb6s^fPM#O1 z@RM}=# zbZUh1fD>7nE1Kk~(AzvuhG!kq0lrs2|u-O~%!-?sW^r6pCcV z8rF@->2DzjTL7V!5)WipPS)EnHdSGX^(DIbMKtpL+_KT2AsScGkTqSo!O${ksGWx^ zXvmB1az+dqVhhe>18?kSUWy@i`Y>(#%u;wwMGGXUn$7iko7HBI{F44OMrK-KsIYqa zY`a87aJSHJYYC%ylNJQ?;+~nOx^ch}FuGXb;cCweYVVNjS*w^;K}7@! zP?h|!aw)gb<&K{PH%n9}=yGq^idAk)h|^lwotOvC6y>fKD};{8QGl>Pe6zz?*F(vZ z3U8(}g`h(h$_G#N5}{(M#kTIZDo|2=EqOicz)2>*1%^8=1B&Y!iSLP%umR_RTpk}X zCrcqGOg#+x<}LRAg3f`Qyg$8WFP4)n#ca!gAx|%bXd>sJIKNX3={iz>L~1gm@wc&~ zEBX2S_v?=r=X7`NkH(F;9X$nBi=5&X+X9Cz??#EDcC+1&KP|_sZL9bj(&K43EK~q* zXRXOziiortj6UPeysHU^_&ghpyy}VjWb}X`hPFIYxp5#t^k4AWDAQM6eLOikv&uIP zEOR$Qyk-gPRP4hcx@;b1v?+m3pSO@@C-YOWJ7mBa8jiSaOC0jJ<4tQJcNRh~S?DoO zHz~xH#9MR%aS_rT;IOA6ef<`s)YY*nC*;Hs>OHSnX_io~4yLYF8a+HmQMcHuQ<*>) ztiqLcH|1%D-e6XTlWc$!3rx5-a&7_fbzml2>uR z5o(w%F#d$#WfI<3tiM|PvdWLdrA+c9EPW2dz6t$2jJapR+_?-NIul*S%vXt*VP1U72GOKT=kenWnVrUhjiy&Xk5rU3VlDk*H;DhwYAVkEl~*aOBW^{HALlQ z)O8$bMBTx;xKSKc+{oFX>$mb7yNoNj1eDszf-zxnEK-sp2v^>vhGVR*DN^myD9q~% ztlGA>P8^$r%h{KJ!EhkuX2RqvFK$T*O>~_j{Hvf~<2CQJ4F46tCZ> zof!Q-I+cFkDsI1k$g^;h&=cIs+7d_G59H0Ew)oS?hkSegw#9C?-flq_HrcwZ?#iqG z+-yN~6(N$)kOTZG)j@s7RU`VY)PR17K|9z|w?fHlw)U%TT5Ty1V`A%mTk3P+#~m+` z`*;4ky(?I47>1!c=PN?kVS}cLQ@e&j*kzYpcO7Gd5!hi{p=19)OSW7&iAxJhF7-R~ zkk+zgN3x@+PuBGrg&B1znJAL~m>B`nbn_FQpLrR$vvXBp-Ha|>q>hg*PU}N7wQb(T*3||ZBkhT-_C$MUEKvzZzS=I_(v1+G zi%zbqLk6+_(C_>v=qJc=GJyj@B0c{6#MH&D)&Gbu!tlNy-t*YoXaDUT47@c~=ZXjx zil3RR@MY`LBrF3P<9?&q*DQTt{jY7j{#T=gt^c*HH%ejsFQsIv|FZ;KKokEE^!W5_ zoE(;>%BWJ8dlYF|!K&-eFZc(k?3m1%Z6cLupJXbDQ2FM>&W=S zB%5P>@<#sySopd7F!o$)t)upDVC-M&M#_zr#uo@7>gFbI*6Rw!SIs%NE4TlIgoK2I O>%<=fhVmN#cmM#jp9}*4 diff --git a/examples/advanced/underground_physics/gamma.mac b/examples/advanced/underground_physics/gamma.mac index 58b6bfbccb..37f0081f8b 100644 --- a/examples/advanced/underground_physics/gamma.mac +++ b/examples/advanced/underground_physics/gamma.mac @@ -40,7 +40,7 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm /dmx/gun/confine americium_phys # /dmx/hitsfile gamma.out diff --git a/examples/advanced/underground_physics/gamma_1000.mac b/examples/advanced/underground_physics/gamma_1000.mac index 68ac83820d..9a4e23e636 100644 --- a/examples/advanced/underground_physics/gamma_1000.mac +++ b/examples/advanced/underground_physics/gamma_1000.mac @@ -40,7 +40,7 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm /dmx/gun/confine americium_phys # /dmx/hitsfile gamma_1000.out diff --git a/examples/advanced/underground_physics/gamma_2000.mac b/examples/advanced/underground_physics/gamma_2000.mac index 2b052dd7be..b850ad3b0f 100644 --- a/examples/advanced/underground_physics/gamma_2000.mac +++ b/examples/advanced/underground_physics/gamma_2000.mac @@ -45,10 +45,11 @@ /dmx/gun/radius 650 mum /dmx/gun/halfz 300.0 nm #/dmx/gun/centre 0 0 82.750 mm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm /dmx/gun/confine americium_phys # /dmx/hitsfile gamma_2000.out /dmx/histogramfile gamma_2000.his +/dmx/pmtfile gamma_pmt_2000.out /run/beamOn 2000 diff --git a/examples/advanced/underground_physics/gamma_low.mac b/examples/advanced/underground_physics/gamma_low.mac index 5e4f33f064..4f88b50e61 100644 --- a/examples/advanced/underground_physics/gamma_low.mac +++ b/examples/advanced/underground_physics/gamma_low.mac @@ -40,7 +40,7 @@ /dmx/gun/shape Cylinder /dmx/gun/radius 250 mum /dmx/gun/halfz 10.0 nm -/dmx/gun/centre 0 0 -311.75 mm +/dmx/gun/centre 0 0 -302.65 mm /dmx/gun/confine americium_phys # /dmx/hitsfile gamma_low.out diff --git a/examples/advanced/underground_physics/include/DMXAnalysisManager.hh b/examples/advanced/underground_physics/include/DMXAnalysisManager.hh index 16037cd7b6..58c3f5af22 100644 --- a/examples/advanced/underground_physics/include/DMXAnalysisManager.hh +++ b/examples/advanced/underground_physics/include/DMXAnalysisManager.hh @@ -42,6 +42,7 @@ // Histogramming from AIDA + #include "AIDA/IAnalysisFactory.h" #include "AIDA/ITreeFactory.h" @@ -53,6 +54,7 @@ #include "AIDA/IHistogram3D.h" #include "AIDA/IPlotterFactory.h" +#include "AIDA/IPlotterRegion.h" #include "AIDA/IPlotter.h" #include "AIDA/ITupleFactory.h" @@ -60,12 +62,35 @@ #include "AIDA/IManagedObject.h" +# include "AIDA/IFitter.h" +# include "AIDA/IFitResult.h" +# include "AIDA/IFitData.h" +# include "AIDA/IRangeSet.h" +# include "AIDA/IFitParameterSettings.h" +# include "AIDA/IFunctionFactory.h" +# include "AIDA/IFunction.h" +# include "AIDA/IFitFactory.h" + +namespace AIDA { + class IAnalysisFactory; + class ITree; + class IHistogramFactory; + class ITupleFactory; + class ITuple; + class IHistogram1D; + class IHistogram2D; + class IPlotter; + class IFitter; + class IFitResult; + class IFitData; + class IRangeSet; + class IFitParameterSettings; + class IFunctionFactory; + class IFunction; + class IFitFactory; + +} -class IAnalysisFactory; -class ITree; -class IHistogramFactory; -class ITupleFactory; -class ITuple; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -76,9 +101,10 @@ public: virtual ~DMXAnalysisManager(); // void book(); - void book(G4String); + void book(G4String, G4bool); - void finish(); + void Init(); + void Finish(); //fill histograms with SHC (Scint Hits) data from DMXEventAction void analyseScintHits(G4int event_id, G4double energy_pri, G4double totEnergy, G4int S_hits, G4double firstLXeHitTime, G4int P_hits, G4double aveTimePmtHits, G4String firstparticleName, G4double firstParticleE, G4bool gamma_ev, G4bool neutron_ev, G4bool positron_ev, G4bool electron_ev, G4bool other_ev, long seed1, long seed2); @@ -93,15 +119,18 @@ public: void analysePrimaryGenerator(G4double); //fill histograms with data from DMXPrimaryGenerator - void HistFirstTime(G4double); + void HistTime(G4double); + //fit exponential decay time of scintillation time: + void PulseTimeFit(); + //Method to interactively display histograms void PlotHistos(G4bool); //Method to interactively display histograms void PlotHistosInit(); //Method to interactively display histograms - void PlotHistosInter(); + void PlotHistosInter(G4int flag); //method to call to create an instance of this class static DMXAnalysisManager* getInstance(); @@ -128,12 +157,38 @@ private: G4bool interactive; - IAnalysisFactory *af; - ITree *tree; - IHistogramFactory *hf; - ITupleFactory *tpf; - IPlotterFactory *pf; - IPlotter *plotter; + AIDA::IAnalysisFactory *af; + AIDA::ITree *tree; + AIDA::IHistogramFactory *hf; + AIDA::ITupleFactory *tpf; + AIDA::IPlotterFactory *pf; + AIDA::IPlotter *plotter; + AIDA::ITuple *ntuple1; + AIDA::ITuple *ntuple2; + AIDA::ITuple *ntuple3; + AIDA::ITuple *ntuple4; + + AIDA::IHistogram1D* hEsourcep; + AIDA::IHistogram1D* hEdepp; + AIDA::IHistogram1D* hEdepRecoil; + AIDA::IHistogram1D* hNumPhLow; + AIDA::IHistogram1D* hNumPhHigh; + AIDA::IHistogram1D* hAvPhArrival; + AIDA::IHistogram1D* hPhArrival; + AIDA::IHistogram2D* hPMTHits; + AIDA::IHistogram2D* h1stPMTHit; + AIDA::IHistogram1D* hGammaEdep; + AIDA::IHistogram1D* hNeutronEdep; + AIDA::IHistogram1D* hElectronEdep; + AIDA::IHistogram1D* hPositronEdep; + AIDA::IHistogram1D* hOtherEdep; + + AIDA::IFunctionFactory *funFact; + AIDA::IFitFactory *fitFact; + AIDA::IFunction *exponFun; + AIDA::IFunction *gaussFun; + AIDA::IFitter *e_fitter; + AIDA::IFitResult *fitResult; }; #endif diff --git a/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh b/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh index 6f4a91dc4c..54978b5556 100644 --- a/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh +++ b/examples/advanced/underground_physics/include/DMXDetectorMaterial.ihh @@ -1,3 +1,41 @@ +// +// ******************************************************************** +// * 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 +// (29th August 2002) +// +// Materials include header +// -------------------------------------------------------------- + G4Material* world_mat; // materials used G4Material* lab_mat; G4Material* cupboard_mat; diff --git a/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh b/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh index 7d209de247..c4c3edfa67 100644 --- a/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh +++ b/examples/advanced/underground_physics/include/DMXDetectorRoom.ihh @@ -1,3 +1,41 @@ +// +// ******************************************************************** +// * 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 +// (29th August 2002) +// +// Detector Room include header +// -------------------------------------------------------------- + G4LogicalVolume* glass_log; G4VPhysicalVolume* glass_phys; G4LogicalVolume* window_log; diff --git a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh index 9a5465300e..efec57ae4f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/underground_physics/include/DMXPhysicsList.hh b/examples/advanced/underground_physics/include/DMXPhysicsList.hh index 48dc384622..4504e9f718 100644 --- a/examples/advanced/underground_physics/include/DMXPhysicsList.hh +++ b/examples/advanced/underground_physics/include/DMXPhysicsList.hh @@ -48,7 +48,8 @@ class DMXPhysicsList: public G4VUserPhysicsList { public: DMXPhysicsList(); - virtual ~DMXPhysicsList(); + ~DMXPhysicsList(); + // virtual ~DMXPhysicsList(); public: @@ -89,7 +90,6 @@ private: G4double cutForProton; G4double cutForAlpha; G4double cutForGenericIon; - G4double cutForOpticalPhoton; // these methods Construct particles void ConstructMyBosons(); diff --git a/examples/advanced/underground_physics/include/DMXRunAction.hh b/examples/advanced/underground_physics/include/DMXRunAction.hh index 14aa602030..78823cfa1f 100644 --- a/examples/advanced/underground_physics/include/DMXRunAction.hh +++ b/examples/advanced/underground_physics/include/DMXRunAction.hh @@ -62,10 +62,12 @@ class DMXRunAction : public G4UserRunAction void SetsavehitsFile (G4String val) { savehitsFile = val;}; void SetsavepmtFile (G4String val) { savepmtFile = val;}; void SetsavehistFile (G4String val) { savehistFile = val;}; + void Setplotevent (G4bool valb) { plotevent = valb;}; void Setinteractplot (G4bool valb) { interactplot = valb;}; G4String GetsavehitsFile() {return savehitsFile;}; G4String GetsavepmtFile() {return savepmtFile;}; + G4bool Getplotevent() {return plotevent;}; private: @@ -73,6 +75,7 @@ class DMXRunAction : public G4UserRunAction G4String savehitsFile; G4String savepmtFile; G4String savehistFile; + G4bool plotevent; G4bool interactplot; DMXRunActionMessenger* runMessenger; diff --git a/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh b/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh index 77424d6745..3c85de3131 100644 --- a/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh +++ b/examples/advanced/underground_physics/include/DMXRunActionMessenger.hh @@ -62,6 +62,7 @@ class DMXRunActionMessenger: public G4UImessenger G4UIcmdWithAString* SaveHitsCmd; G4UIcmdWithAString* SavePmtCmd; G4UIcmdWithAString* SaveHistFileCmd; + G4UIcmdWithABool* PlotEventCmd; G4UIcmdWithABool* InteractPlotCmd; }; diff --git a/examples/advanced/underground_physics/src/DMXAnalysisManager.cc b/examples/advanced/underground_physics/src/DMXAnalysisManager.cc index 94cd7c29e2..d7cd252526 100644 --- a/examples/advanced/underground_physics/src/DMXAnalysisManager.cc +++ b/examples/advanced/underground_physics/src/DMXAnalysisManager.cc @@ -30,20 +30,24 @@ // ----------- // 16 Jan 2002 Alex Howard Created // 17 June 2002 Alex Howard Successfully Modified to AIDA 2.2 +// 17 November 2002 Alex Howard Migrated to AIDA 3.0 and added fitting // // ------------------------------------------------------------------- #ifdef G4ANALYSIS_USE #include "DMXAnalysisManager.hh" -//#include "g4std/iomanip" - DMXAnalysisManager* DMXAnalysisManager::instance = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DMXAnalysisManager::DMXAnalysisManager() : - af(0), tree(0), hf(0), tpf(0), pf(0) + af(0), tree(0), hf(0), tpf(0), pf(0), + plotter(0), ntuple1(0), ntuple2(0), ntuple3(0), ntuple4(0), + hEsourcep(0), hEdepp(0), hEdepRecoil(0), hNumPhLow(0), hNumPhHigh(0), + hAvPhArrival(0), hPhArrival(0), hPMTHits(0), h1stPMTHit(0),hGammaEdep(0), + hNeutronEdep(0), hElectronEdep(0), hPositronEdep(0), hOtherEdep(0), + funFact(0),fitFact(0),exponFun(0),gaussFun(0),e_fitter(0),fitResult(0) { // tree is created and booked inside book() ; @@ -53,35 +57,20 @@ DMXAnalysisManager::DMXAnalysisManager() : DMXAnalysisManager::~DMXAnalysisManager() { - - delete pf; - pf=0; - - delete tpf; - tpf=0; - - delete hf; - hf=0; - - delete tree; - tree=0; - - delete af; - af = 0; - + Finish(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DMXAnalysisManager* DMXAnalysisManager::getInstance() { - if (instance == 0) instance = new DMXAnalysisManager; + if (instance == 0) instance = new DMXAnalysisManager(); return instance; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void DMXAnalysisManager::book(G4String histogramfile) +void DMXAnalysisManager::book(G4String histogramfile, G4bool plotevent) { // histoManager->selectStore("DMX.his"); @@ -96,9 +85,9 @@ void DMXAnalysisManager::book(G4String histogramfile) G4bool fileExists = false; G4bool readOnly = false; - ITreeFactory * tf = af->createTreeFactory(); + AIDA::ITreeFactory * tf = af->createTreeFactory(); - tree = tf->create(histogramfile, readOnly, fileExists, "hbook"); + tree = tf->create(histogramfile, "hbook", readOnly, fileExists); G4cout << "Tree store : " << tree->storeName() << G4endl; @@ -110,27 +99,27 @@ void DMXAnalysisManager::book(G4String histogramfile) // ---- primary ntuple ------ - ITuple* ntuple1 = tpf->create( "1 Energy", "Particle Source Energy", - "float energy" ); + ntuple1 = tpf->create( "1", "Particle Source Energy", + "double energy" ); assert(ntuple1); // ---- secondary ntuple ------ - ITuple* ntuple2 = tpf->create( "2 Hits Info", "Scintillation Hits Info", + ntuple2 = tpf->create( "2", "Scintillation Hits Info", "float Event,e_prim,tot_e,s_hits,xe_time,num_ph,avphtime,1stpart,1stparte,gamma,neutron,posi,elec,other,seed1,seed2" ); assert(ntuple2); // ---- tertiary ntuple ------ - ITuple* ntuple3 = tpf->create( "3 Pmt Info", "PMT Hits Info", + ntuple3 = tpf->create( "3", "PMT Hits Info", "float event, hits, xpos, ypos, zpos" ); - assert(ntuple3); + assert(ntuple3); // ---- extra ntuple ------ - ITuple* ntuple4 = tpf->create( "4 Particle Info", "Particles energy type", + ntuple4 = tpf->create( "4", "Particles energy type", "float energy, NameIdx" ); assert(ntuple4); @@ -138,51 +127,88 @@ void DMXAnalysisManager::book(G4String histogramfile) // Creating an 1-dimensional histogram in the root directory of the tree - IHistogram1D* hEsourcep; - hEsourcep = hf->create1D("10","Source Energy /keV", 1000,0.,10000.); + hEsourcep = hf->createHistogram1D("10","Source Energy /keV", 1000,0.,10000.); - IHistogram1D* hEdepp; - hEdepp = hf->create1D("20","Energy Deposit /keV", 1000,0.,1000.); + hEdepp = hf->createHistogram1D("20","Energy Deposit /keV", 1000,0.,1000.); - IHistogram1D* hEdepRecoil; - hEdepRecoil = hf->create1D("30","Nuclear Recoil Edep /keV", 100,0.,100.); + hEdepRecoil = hf->createHistogram1D("30","Nuclear Recoil Edep /keV", 100,0.,100.); - IHistogram1D* hNumPhLow; - hNumPhLow = hf->create1D("40","Number of Photons - LowE", 200,0.,200.); + hNumPhLow = hf->createHistogram1D("40","Number of Photons - LowE", 200,0.,200.); - IHistogram1D* hNumPhHigh; - hNumPhHigh = hf->create1D("50","Number of Photons - HighE", 100,0.,10000.); + hNumPhHigh = hf->createHistogram1D("50","Number of Photons - HighE", 100,0.,10000.); - IHistogram1D* hAvPhArrival; - hAvPhArrival = hf->create1D("60","Average Photon Arrival/ns", 200,0.,200.); - IHistogram1D* h1stPhArrival; - h1stPhArrival = hf->create1D("61","1st event Photon Arrival", 200,0.,200.); + hAvPhArrival = hf->createHistogram1D("60","Average Photon Arrival/ns", 200,0.,200.); + + hPhArrival = hf->createHistogram1D("61","1st event Photon Arrival", 200,0.,200.); - IHistogram2D* hPMTHits; - hPMTHits = hf->create2D("70","PMT Hit Pattern", + //2D histograms: + hPMTHits = hf->createHistogram2D("70","PMT Hit Pattern", 300 ,-30.,30.,300,-30.,30.); - IHistogram2D* h1stPMTHit; - h1stPMTHit = hf->create2D("71","1st event PMT Hit Pattern", + + h1stPMTHit = hf->createHistogram2D("71","1st event PMT Hit Pattern", 300 ,-30.,30.,300,-30.,30.); - IHistogram1D* hGammaEdep; - hGammaEdep = hf->create1D("91","Gamma Energy Deposit/keV", 1000,0.,1000.); - IHistogram1D* hNeutronEdep; - hNeutronEdep = hf->create1D("92","Neutron Ener Deposit/keV", 1000,0.,1000.); - IHistogram1D* hElectronEdep; - hElectronEdep = hf->create1D("93","Electron Ener Deposit/keV",1000,0.,1000.); - IHistogram1D* hPositronEdep; - hPositronEdep = hf->create1D("94","Positron Ener Deposit/keV",1000,0.,1000.); - IHistogram1D* hOtherEdep; - hOtherEdep = hf->create1D("95","Other Ener Deposit/keV", 1000,0.,1000.); + // extra 1D Histos: + hGammaEdep = hf->createHistogram1D("91","Gamma Energy Deposit/keV", 1000,0.,1000.); + + hNeutronEdep = hf->createHistogram1D("92","Neutron Ener Deposit/keV", 1000,0.,1000.); + + hElectronEdep = hf->createHistogram1D("93","Electron Ener Deposit/keV",1000,0.,1000.); + + hPositronEdep = hf->createHistogram1D("94","Positron Ener Deposit/keV",1000,0.,1000.); + + hOtherEdep = hf->createHistogram1D("95","Other Ener Deposit/keV", 1000,0.,1000.); delete tf; + // Creating the plotter factory + pf = af->createPlotterFactory(); + + if(pf && plotevent) { + plotter = pf->create(); + if(plotter) { + plotter->show(); + plotter->setParameter("pageTitle","DMX Output Summary"); + } + delete pf; + } + + // create fitting factories .. + + G4cout << " creating fit factories " << G4endl; + + funFact = af->createFunctionFactory(*tree); + fitFact = af->createFitFactory(); + + G4cout << " creating Exponential Function " << G4endl; + exponFun = funFact->createFunctionByName("Exponential","E"); + G4cout << " created " << G4endl; + + G4cout << " creating Gaussian Function " << G4endl; + gaussFun = funFact->createFunctionByName("Gaussian","G"); + G4cout << " created " << G4endl; + + // assert(exponFun); + + // e_fitter = fitFact->createFitter("Chi2","","printLevel=-1 errorUP=1.0"); + G4cout << " creating fitter " << G4endl; + e_fitter = fitFact->createFitter(); + + // assert(e_fitter); + + G4cout << " Created e_fitter " << G4endl; + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void DMXAnalysisManager::finish() +void DMXAnalysisManager::Init() +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void DMXAnalysisManager::Finish() { // Committing the transaction with the tree @@ -202,15 +228,95 @@ void DMXAnalysisManager::finish() delete hf; delete tree; delete af; + delete plotter; + delete funFact; + delete fitFact; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void DMXAnalysisManager::PulseTimeFit() +{ + + // created fitter factory then fitter + + if(!plotter) plotter = pf->create(); + if(plotter) { + plotter->show(); + plotter->setParameter("pageTitle","DMX Fitting"); + } + + G4cout << " Started Pulse Time Fit " << G4endl; + + for (int i = 0; i < 2 ; ++i) + G4cout << "\n Fit Parameters: " << i << ":\t" + << exponFun->parameterNames()[i] << G4endl; + // first fit to time histogram: + exponFun->setParameter("amp", 3.); + exponFun->setParameter("slope", -0.03); + G4cout << " parameters set " << G4endl; + + fitResult = e_fitter->fit(*hPhArrival,*exponFun); + + G4cout << " Fit Completed " << G4endl; + G4cout << " chi2/ndf is: " << fitResult->quality() << " / " + << fitResult->ndf() << G4endl; + + // retrieve fitted parameters and errors and print them + + for (i = 0; i < 2 ; ++i) + G4cout << fitResult->fittedParameterNames()[i] << " = " + << fitResult->fittedParameters()[i] << " +/- " + << fitResult->errors()[i]; + + // plot function with its annotation and then histogram + + plotter->currentRegion().plot(*exponFun,"[0,100] annotation"); + plotter->currentRegion().plot(*hPhArrival, "overlay"); + plotter->refresh(); + plotter->writeToFile("ExponentialFit.ps","ps"); + + + for (i = 0; i < 3 ; ++i) + G4cout << "\n Fit Parameters: " << i << ":\t" + << gaussFun->parameterNames()[i] << G4endl; + // first fit to time histogram: + gaussFun->setParameter("mean", 50.); + gaussFun->setParameter("sigma", 10.); + gaussFun->setParameter("amp", 2.); + G4cout << " parameters set " << G4endl; + + fitResult = e_fitter->fit(*hAvPhArrival,*gaussFun); + + G4cout << " Fit Completed " << G4endl; + G4cout << " chi2/ndf is: " << fitResult->quality() << " / " + << fitResult->ndf() << G4endl; + + // retrieve fitted parameters and errors and print them + + for (i = 0; i < 3 ; ++i) + G4cout << fitResult->fittedParameterNames()[i] << " = " + << fitResult->fittedParameters()[i] << " +/- " + << fitResult->errors()[i]; + + // plot function with its annotation and then histogram + + plotter->createRegions(1,1); + plotter->currentRegion().plot(*gaussFun,"[0,100] annotation"); + plotter->currentRegion().plot(*hAvPhArrival, "overlay"); + plotter->refresh(); + plotter->writeToFile("TimeConstantFit.ps","ps"); + + G4cout << " Fit finished " << G4endl; + +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXAnalysisManager::analyseScintHits(G4int event_id, G4double energy_pri, G4double totEnergy, G4int S_hits, G4double firstLXeHitTime, G4int P_hits, G4double aveTimePmtHits, G4String firstparticleName, G4double firstParticleE, G4bool gamma_ev, G4bool neutron_ev, G4bool positron_ev,G4bool electron_ev,G4bool other_ev, long seed1, long seed2) { + G4int firstparticleIndex = 0; if(firstparticleName == "gamma") firstparticleIndex = 1; if(firstparticleName == "neutron") firstparticleIndex = 2; @@ -218,27 +324,21 @@ void DMXAnalysisManager::analyseScintHits(G4int event_id, G4double energy_pri, G if(firstparticleName == "positron") firstparticleIndex = 4; if(firstparticleName == "other") { firstparticleIndex = 5; - IHistogram1D* h4 = dynamic_cast ( tree->find("30") ); - h4->fill(totEnergy); // fill(x,y,weight) + hEdepRecoil->fill(totEnergy); } - IHistogram1D* h2 = dynamic_cast ( tree->find("40") ); - h2->fill(P_hits,10.); // fill(x,weight) + hNumPhLow->fill(P_hits,10.); // fill(x,weight) - IHistogram1D* h3 = dynamic_cast ( tree->find("50") ); - h3->fill(P_hits); // fill(x,y,weight) + hNumPhHigh->fill(P_hits); // fill(x,y,weight) - IHistogram1D* h1 = dynamic_cast ( tree->find("10") ); - h1->fill( energy_pri/keV ); // fill(x,weight) + hEsourcep->fill( energy_pri/keV ); - IHistogram1D* h5 = dynamic_cast ( tree->find("20") ); - h5->fill( totEnergy/keV ); + hEdepp->fill( totEnergy/keV ); - IHistogram1D* h6 = dynamic_cast ( tree->find("60") ); - h6->fill(aveTimePmtHits/ns); // fill(x,y,weight) + hAvPhArrival->fill(aveTimePmtHits/ns); - ITuple * ntuple = dynamic_cast ( tree->find("2 Hits Info") ); + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("2") ); // Fill the ntuple ntuple->fill( ntuple->findColumn( "Event" ), (G4float) event_id ); @@ -258,8 +358,6 @@ void DMXAnalysisManager::analyseScintHits(G4int event_id, G4double energy_pri, G ntuple->fill( ntuple->findColumn( "seed1" ), (G4float) seed1 ); ntuple->fill( ntuple->findColumn( "seed2" ), (G4float) seed2 ); -//ntuple->fill( ntuple->findColumn( "Event" ), static_cast(event_id) ); - //Values of attributes are prepared; store them to the nTuple: ntuple->addRow(); @@ -270,15 +368,13 @@ void DMXAnalysisManager::analyseScintHits(G4int event_id, G4double energy_pri, G void DMXAnalysisManager::analysePMTHits(G4int event, G4int i, G4double x, G4double y, G4double z) { - IHistogram2D* h7 = dynamic_cast ( tree->find("70") ); - h7->fill(x/mm, y/mm); // fill(x,y,weight) + hPMTHits->fill(x/mm, y/mm); // fill(x,y,weight) if (event == 0 ) { - IHistogram2D* h9 = dynamic_cast ( tree->find("71") ); - h9->fill(x,y); // fill(x,y,weight) + h1stPMTHit->fill(x,y); } - ITuple * ntuple = dynamic_cast ( tree->find("3 Pmt Info") ); + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("3") ); // Fill the secondaries ntuple ntuple->fill( ntuple->findColumn( "event" ), (G4float) event ); ntuple->fill( ntuple->findColumn( "hits" ), (G4float) i ); @@ -289,9 +385,6 @@ void DMXAnalysisManager::analysePMTHits(G4int event, G4int i, G4double x, G4doub // NEW: Values of attributes are prepared; store them to the nTuple: ntuple->addRow(); // check for returning true ... - // IHistogram1D* h3 = dynamic_cast ( theTree->find("30") ); - //h3->fill(ph_hits); - } @@ -300,18 +393,13 @@ void DMXAnalysisManager::analysePMTHits(G4int event, G4int i, G4double x, G4doub void DMXAnalysisManager::analysePrimaryGenerator(G4double energy) { - // IHistogram1D* h1 = dynamic_cast ( tree->find("10") ); - // h1->fill(static_cast(energy/keV)); // fill(x,weight) - - ITuple * ntuple = dynamic_cast ( tree->find("1 Energy") ); + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("1") ); // Fill energy ntple: - ntuple->fill( ntuple->findColumn( "energy" ), (G4float) energy ); + ntuple->fill( ntuple->findColumn( "energy" ), energy ); // NEW: Values of attributes are prepared; store them to the nTuple: ntuple->addRow(); // check for returning true ... - // h1 and h2 are the order in which they are filled, "1" and "2" - // are the labels associated with the histogram } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -322,121 +410,88 @@ void DMXAnalysisManager::analyseParticleSource(G4double energy, G4String name) { if(name == "gamma") { - IHistogram1D* h11 = dynamic_cast ( tree->find("91") ); - h11->fill(energy/keV); // fill(x,weight) + hGammaEdep->fill(energy/keV); } if(name == "neutron") { - IHistogram1D* h12 = dynamic_cast ( tree->find("92") ); - h12->fill(energy/keV); // fill(x,weight) + hNeutronEdep->fill(energy/keV); // fill(x,weight) } if(name == "electron") { - IHistogram1D* h13 = dynamic_cast ( tree->find("93") ); - h13->fill(energy/keV); // fill(x,weight) + hElectronEdep->fill(energy/keV); // fill(x,weight) } - if(name == "positron") { - IHistogram1D* h14 = dynamic_cast ( tree->find("94") ); - h14->fill(energy/keV); // fill(x,weight) + if(name == "positron") { + hPositronEdep->fill(energy/keV); // fill(x,weight) } - if(name == "other") { - IHistogram1D* h15 = dynamic_cast ( tree->find("95") ); - h15->fill(energy/keV); // fill(x,weight) + if(name == "other") { + hOtherEdep->fill(energy/keV); // fill(x,weight) } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void DMXAnalysisManager::HistFirstTime(G4double time) +void DMXAnalysisManager::HistTime(G4double time) { - IHistogram1D* h8 = dynamic_cast ( tree->find("61") ); - h8->fill(time/ns); // fill(x,y,weight) + hPhArrival->fill(time/ns); // fill(x,y,weight) +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void DMXAnalysisManager::PlotHistosInter(G4int flag) +{ + // The plotter is updated only if there are some hits in the event + if(!flag) return; + // Set the plotter ; set the number of regions and attach histograms + // to plot for each region. + // It is done here, since then EndOfRun set regions + // for paper output. + if(plotter) { + plotter->currentRegion().plot(*hNumPhLow); + plotter->refresh(); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void DMXAnalysisManager::PlotHistos(G4bool interactive) { - IHistogram1D* h1p = dynamic_cast ( tree->find("10") ); - IHistogram1D& h1 = *h1p; - IHistogram1D* h2p = dynamic_cast ( tree->find("20") ); - IHistogram1D& h2 = *h2p; - IHistogram1D* h3p = dynamic_cast ( tree->find("40") ); - IHistogram1D& h3 = *h3p; - IHistogram1D* h4p = dynamic_cast ( tree->find("50") ); - IHistogram1D& h4 = *h4p; - IHistogram1D* h5p = dynamic_cast ( tree->find("60") ); - IHistogram1D& h5 = *h5p; - IHistogram1D* h6p = dynamic_cast ( tree->find("61") ); - IHistogram1D& h6 = *h6p; - IHistogram2D* h7p = dynamic_cast ( tree->find("70") ); - IHistogram2D& h7 = *h7p; - IHistogram1D* h8p = dynamic_cast ( tree->find("91") ); - IHistogram1D& h8 = *h8p; - - // Creating the plotter factory - pf = af->createPlotterFactory(); - // Creating a plotter - IPlotter* plotter = pf->create(); - // plotter = pf->create(); - - // Creating two regions - plotter->clearPage(); - plotter->createRegions(2, 2, 0); // set the current working region to the first one + if(!plotter) plotter = pf->create(); plotter->show(); + plotter->setParameter("pageTitle","DMX Output Summary"); - // Plotting the second histogram in the first region - plotter->plot( h1 ); + // G4int n = 1; + if(plotter) { + // We set one single region for the plotter + // We now print the histograms, each one in a separate file + plotter->createRegions(1,1); + plotter->currentRegion().plot(*hNumPhHigh); + plotter->refresh(); + plotter->writeToFile("NumberPhotons.ps","ps"); + + plotter->createRegions(1,1); + plotter->currentRegion().plot(*hEdepp); + plotter->refresh(); + plotter->writeToFile("EnergyDeposit.ps","ps"); - // Plotting the first histogram in the next available region - plotter->next(); // or explicitly : plotter->setCurrentRegion( 1 ); - plotter->plot( h2 ); - - plotter->next(); // or explicitly : plotter->setCurrentRegion( 1 ); - plotter->plot( h3 ); - - plotter->next(); // or explicitly : plotter->setCurrentRegion( 1 ); - plotter->plot( h4 ); - - // Update the canvas on the screen - plotter->refresh(); - - plotter->write("summary1.ps", "ps"); - - - if (interactive) { - // Wait for the keyboard return to avoid destroying the plotter window too quickly. - G4cout << "Press to exit" << G4endl; - G4cin.get(); - } - - plotter = pf->create(); - plotter->clearPage(); - plotter->createRegions(2, 2, 0); // set the current working region to the first one - plotter->show(); - // plotter->setCurrentRegion( 0 ); - - plotter->plot( h5 ); - - // Plotting the first histogram in the next available region - plotter->next(); // or explicitly : plotter->setCurrentRegion( 1 ); - plotter->plot( h6 ); - - plotter->next(); // or explicitly : plotter->setCurrentRegion( 1 ); - plotter->plot( h7 ); - - plotter->next(); // or explicitly : plotter->setCurrentRegion( 1 ); - plotter->plot( h8 ); - - // Update the canvas on the screen - plotter->refresh(); - - plotter->write("summary2.ps", "ps"); - - if (interactive) { - // Wait for the keyboard return to avoid destroying the plotter window too quickly. - G4cout << "Press to exit" << G4endl; - G4cin.get(); + plotter->createRegions(1,1); + plotter->currentRegion().plot(*hEsourcep); + plotter->refresh(); + plotter->writeToFile("SourceEnergy.ps","ps"); + + plotter->createRegions(1,1); + plotter->currentRegion().plot(*hNumPhLow); + plotter->refresh(); + plotter->writeToFile("NumberPhotonsLow.ps","ps"); } + // // Creating two regions + // plotter->clearRegions(); + // // plotter->createRegions(2, 2, 0); // set the current working region to the first one + // plotter->show(); + + if (interactive) { + // Wait for the keyboard return to avoid destroying the plotter window too quickly. + G4cout << "Press to exit" << G4endl; + G4cin.get(); + } } @@ -446,10 +501,3 @@ void DMXAnalysisManager::PlotHistos(G4bool interactive) #endif - - - - - - - diff --git a/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc b/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc index 48a05eac2b..4b491669e3 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc +++ b/examples/advanced/underground_physics/src/DMXDetectorConstruction.cc @@ -213,10 +213,6 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4double LN2PosZ = 0.5*jacketHeight + 0.5*LN2jacketHeight + jacketflangeHeight + PosZ; - // G4double temp_jackZ = 0.5*labHeight - LN2PosZ - 0.5*LN2jacketHeight; - // G4cout << " Position of LN2 top from ceiling is: " - // << G4BestUnit(temp_jackZ,"Length") << G4endl; - G4Tubs* LN2jacket_tube = new G4Tubs("LN2jacket_tube", 0.*cm, LN2jacketRadius, 0.5*LN2jacketHeight, 0.*deg, 360.*deg); LN2jacket_log = new G4LogicalVolume @@ -247,17 +243,17 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // LN2 vessel: ************************************************************ G4double LN2Radius = 76.0*mm; - G4double LN2Height = 590.0*mm; + G4double LN2Height = 590.0*mm - 2.*LN2jacketMetalThick; G4double LN2vesselRadius = LN2Radius + LN2jacketMetalThick; - G4double LN2vesselHeight = LN2Height + 2.*LN2jacketMetalThick; - G4double LN2vesselPosZ = 0.5*LN2jacketHeight - 0.5*LN2vesselHeight; + G4double LN2vesselHeight = LN2Height; + G4double LN2vesselPosZ = 0.5*LN2vacuumHeight - 0.5*LN2vesselHeight; G4Tubs* LN2vessel_tube = new G4Tubs("LN2vessel_tube", 0.*cm, LN2vesselRadius, 0.5*LN2vesselHeight, 0.*deg, 360.*deg); LN2vessel_log = new G4LogicalVolume (LN2vessel_tube, LN2jacket_mat, "LN2vessel_log"); LN2vessel_phys = new G4PVPlacement(0, G4ThreeVector(0.,0.,LN2vesselPosZ), - "LN2jacket_phys", LN2vessel_log, LN2vacuum_phys, false,0); + "LN2vessel_phys", LN2vessel_log, LN2vacuum_phys, false,0); G4VisAttributes* LN2vessel_vat = new G4VisAttributes(lgrey); // LN2vessel_log->SetVisAttributes(G4VisAttributes::Invisible); @@ -579,7 +575,7 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { const G4int NUM = 2; G4double vessel_PP[NUM] = { 6.5*eV, 7.50*eV }; - G4double vessel_REFL[NUM] = { 0.1, 0.1 }; + G4double vessel_REFL[NUM] = { 0.2, 0.2 }; G4MaterialPropertiesTable* vessel_mt = new G4MaterialPropertiesTable(); vessel_mt->AddProperty("REFLECTIVITY", vessel_PP, vessel_REFL, NUM); OpVesselSurface->SetMaterialPropertiesTable(vessel_mt); @@ -629,16 +625,15 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { CuShield_log->SetVisAttributes(CuShield_vat); // Cu shield surface + G4double sigalpha; G4OpticalSurface* OpCuShieldSurface = new G4OpticalSurface - ("ShieldSurface", unified, ground, dielectric_metal, 0.2); - // ("ShieldSurface", unified, polished, dielectric_metal); + ("ShieldSurface", unified, ground, dielectric_metal, sigalpha=30.0*deg); G4LogicalBorderSurface* ShieldSurface; ShieldSurface = new G4LogicalBorderSurface ("Shield", LXe_phys, CuShield_phys, OpCuShieldSurface); G4double CuShield_PP[NUM] = { 7.0*eV, 7.50*eV }; - G4double CuShield_REFL[NUM] = { 0.4, 0.3 }; - // G4double CuShield_REFL[NUM] = { 0.271, 0.230 }; + G4double CuShield_REFL[NUM] = { 0.3, 0.2 }; G4MaterialPropertiesTable *CuShield_mt = new G4MaterialPropertiesTable(); CuShield_mt->AddProperty("REFLECTIVITY", CuShield_PP, CuShield_REFL, NUM); OpCuShieldSurface->SetMaterialPropertiesTable(CuShield_mt); @@ -658,13 +653,12 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // optical surface: ring materials table G4double ring_PP[NUM] = { 6.00*eV, 7.50*eV }; - G4double ring_REFL[NUM] = { 0.45, 0.35 }; + G4double ring_REFL[NUM] = { 0.7, 0.65 }; G4MaterialPropertiesTable *ring_mt = new G4MaterialPropertiesTable(); ring_mt->AddProperty("REFLECTIVITY", ring_PP, ring_REFL, NUM); G4OpticalSurface* OpRingSurface = new G4OpticalSurface - ("RingSurface", unified, ground, dielectric_metal, 0.05); - // ("RingSurface", unified, polished, dielectric_metal); + ("RingSurface", unified, ground, dielectric_metal, sigalpha=10.*deg); // last argument is surface roughness if it's non-polished - i.e. ground OpRingSurface->SetMaterialPropertiesTable(ring_mt); @@ -756,13 +750,13 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // mirror surface G4OpticalSurface * OpMirrorSurface = new G4OpticalSurface - ("MirrorSurface", unified, polished, dielectric_metal); + ("MirrorSurface", unified, ground, dielectric_metal, sigalpha=5.0*deg); G4LogicalBorderSurface* MirrorSurface; MirrorSurface = new G4LogicalBorderSurface ("Mirror", GXe_phys, mirror_phys, OpMirrorSurface); G4double mirror_PP[NUM] = { 6.00*eV, 7.50*eV }; - G4double mirror_REFL[NUM] = { 0.75, 0.7 }; + G4double mirror_REFL[NUM] = { 0.83, 0.78 }; G4MaterialPropertiesTable *mirror_mt = new G4MaterialPropertiesTable(); mirror_mt->AddProperty("REFLECTIVITY", mirror_PP, mirror_REFL, NUM); OpMirrorSurface->SetMaterialPropertiesTable(mirror_mt); @@ -772,9 +766,9 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4double gridHeight = 0.100*mm; G4double gridRadius = ringInnerRadius; - G4double grid1VOffset = 5.5*ringHeight+2.75*mm; + G4double grid1VOffset = 3.5*ringHeight+1.75*mm; G4double grid1VPosition = 0.5*LXeTubeHeight - grid1VOffset; - G4double grid2VOffset = 6.5*ringHeight+4.50*mm; + G4double grid2VOffset = 4.5*ringHeight+3.50*mm; G4double grid2VPosition = 0.5*LXeTubeHeight - grid2VOffset; G4Tubs* grid_tube = new G4Tubs("grid_tube", 0.*cm, gridRadius, @@ -795,16 +789,15 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // alpha source holder ************************************************ - G4double alphaHeight = 1.230*mm; // total lead thickness = 1.23 mm - G4double recessHeight = 0.20*mm; // totals lead thickness = 1.23 mm - G4double alphaRadius = 0.75*mm; - G4double recessRadius = 0.65*mm; + G4double alphaHeight = 0.7*mm; // total lead thickness = 1.23 mm + G4double recessHeight = 0.3*mm; // totals lead thickness = 1.23 mm + G4double alphaRadius = 1.2*mm; // was 0.8 + G4double recessRadius = 0.35*mm; // was 0.5 was 0.2 G4double recessVPosition = 0.5*(alphaHeight - recessHeight); - G4double alphaVOffset = grid1VOffset-0.5*alphaHeight; - G4double americiumHeight = 600.*nanometer; // assumes ~1% Am - G4double extra_offset = (recessHeight - 0.23*mm + 0.5*americiumHeight); - // 0.23 = offset for all release macros + G4double alphaVOffset = grid1VOffset-0.5*alphaHeight - gridHeight; + G4double americiumHeight = 3000.*nanometer; // assumes ~1% Am + G4double extra_offset = (recessHeight +0.3*mm + 0.5*americiumHeight); G4double alphaVPosition = 0.5*LXeTubeHeight - alphaVOffset + extra_offset; G4Tubs* alpha_tube = new G4Tubs("alpha_tube", 0.*cm, alphaRadius, @@ -812,12 +805,6 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4Tubs* recess_tube = new G4Tubs("recess_tube", 0.*cm, recessRadius, 0.5*recessHeight, 0.*deg, 360.*deg); - // G4RotationMatrix rotMatrixAlpha; // unit rotation matrix - // G4double anglealpha_Phys = 0.0*deg; // rotational angle - // rotMatrixAlpha.rotateY(anglealpha_Phys); // rot matrix - // G4SubtractionSolid* alpha_sol = new G4SubtractionSolid - // ("alpha_sol", alpha_tube, recess_tube, G4Transform3D - // (rotMatrixAlpha, G4ThreeVector(0,0,recessVPosition))); G4SubtractionSolid* alpha_sol = new G4SubtractionSolid ("alpha_sol", alpha_tube, recess_tube, G4Transform3D (G4RotationMatrix(), G4ThreeVector(0. ,0. , recessVPosition))); @@ -832,8 +819,7 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // alpha source HOLDER surface G4OpticalSurface* OpAlphaSurface = new G4OpticalSurface("AlphaSurface", - unified, ground, dielectric_metal, 0.4); - // unified, polished, dielectric_metal); + unified, ground, dielectric_metal, sigalpha=20.0*deg); G4LogicalBorderSurface* AlphaSurface; AlphaSurface = new G4LogicalBorderSurface ("Alpha", LXe_phys, alpha_phys, OpAlphaSurface); @@ -855,9 +841,6 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { sourceZ = vesselVPos + LXeVPos + alphaVPosition + americiumVPosition + PosZ; G4cout << G4endl << "Calibration source centre (X,Y,Z): 0, 0, " << sourceZ/mm << " mm" << G4endl; -// G4double sourceZ2 = vesselVPos+LXeVPos+alphaVPosition-0.5*recessHeight -// + americiumVPosition+ PosZ+0.5*labHeight; -// G4cout << "Height from Floor: Z= " << sourceZ2/mm << " mm" << G4endl; G4Tubs* americium_tube = new G4Tubs("americium_tube", 0.*cm, americiumRadius, 0.5*americiumHeight, 0.*deg, 360.*deg); @@ -868,14 +851,13 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { // americium optical properties: G4OpticalSurface* OpAmericiumSurface = new G4OpticalSurface - ("AmericiumSurface", unified, ground, dielectric_metal, 0.3); - // ("AmericiumSurface", unified, polished, dielectric_metal); + ("AmericiumSurface", unified, ground, dielectric_metal, sigalpha=5.0*deg); G4LogicalBorderSurface* AmericiumSurface; AmericiumSurface = new G4LogicalBorderSurface ("Americium", LXe_phys, americium_phys, OpAmericiumSurface); G4double americium_PP[NUM] = { 6.00*eV, 7.50*eV }; - G4double americium_REFL[NUM] = { 0.47, 0.42 }; + G4double americium_REFL[NUM] = { 0.7, 0.65 }; G4MaterialPropertiesTable *americium_mt = new G4MaterialPropertiesTable(); americium_mt->AddProperty("REFLECTIVITY", americium_PP, americium_REFL, NUM); OpAlphaSurface->SetMaterialPropertiesTable(americium_mt); @@ -908,7 +890,6 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() { G4OpticalSurface* pmt_opsurf = new G4OpticalSurface ("pmt_opsurf",unified, polished, dielectric_dielectric); - // ("pmt_opsurf",unified, ground, dielectric_dielectric, 1.0); G4LogicalBorderSurface* pmt_surf; pmt_surf = new G4LogicalBorderSurface ("pmt_surf", LXe_phys, pmt_phys, pmt_opsurf); diff --git a/examples/advanced/underground_physics/src/DMXDetectorField.icc b/examples/advanced/underground_physics/src/DMXDetectorField.icc index 44beeb58e4..6de97cd6b4 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorField.icc +++ b/examples/advanced/underground_physics/src/DMXDetectorField.icc @@ -1,3 +1,26 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// G4double EField = 0.0*kilovolt/cm; // create electric field diff --git a/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc b/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc index 9527f9f147..9502ed257a 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc +++ b/examples/advanced/underground_physics/src/DMXDetectorMaterial.icc @@ -1,3 +1,36 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// GEANT4 tag $Name: +// +// Author: Alex Howard (a.s.howard@ic.ac.uk) +// +// History: +// ----------- +// +// 23rd November 2002 Modified GXe and LXe material tables to include new +// scintillation method - Alex Howard +// G4double density, // density a, // atomic mass z; // atomic number @@ -33,9 +66,19 @@ G4double LXe_RIND[NUMENTRIES] = { 1.59 , 1.57, 1.54 }; G4double LXe_ABSL[NUMENTRIES] = { 35.*cm, 35.*cm, 35.*cm}; //atten length G4MaterialPropertiesTable *LXe_mt = new G4MaterialPropertiesTable(); - LXe_mt->AddProperty("SCINTILLATION", LXe_PP, LXe_SCINT, NUMENTRIES); + LXe_mt->AddProperty("FASTCOMPONENT", LXe_PP, LXe_SCINT, NUMENTRIES); + LXe_mt->AddProperty("SLOWCOMPONENT", LXe_PP, LXe_SCINT, NUMENTRIES); LXe_mt->AddProperty("RINDEX", LXe_PP, LXe_RIND, NUMENTRIES); LXe_mt->AddProperty("ABSLENGTH", LXe_PP, LXe_ABSL, NUMENTRIES); + LXe_mt->AddConstProperty("SCINTILLATIONYIELD",12000./MeV); // include QE 20% + // and 13eV creation energy for photons - may be 15eV? + // Fano factor assumed 1; should be much less for Xe ~ 0.13 + // but the Fano factor is already partially included in the correlated + // electron production - therefore not the absolute Fano factor here: + LXe_mt->AddConstProperty("RESOLUTIONSCALE",1.0); + LXe_mt->AddConstProperty("FASTTIMECONSTANT",20.*ns); + LXe_mt->AddConstProperty("SLOWTIMECONSTANT",45.*ns); + LXe_mt->AddConstProperty("YIELDRATIO",1.0); LXe->SetMaterialPropertiesTable(LXe_mt); // G4double GXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV }; @@ -44,9 +87,15 @@ G4double GXe_RIND[NUMENTRIES] = { 1.00, 1.00, 1.00 }; G4double GXe_ABSL[NUMENTRIES] = { 100*m, 100*m, 100*m}; //atten length G4MaterialPropertiesTable *GXe_mt = new G4MaterialPropertiesTable(); - GXe_mt->AddProperty("SCINTILLATION", GXe_PP, GXe_SCINT, NUMENTRIES); + GXe_mt->AddProperty("FASTCOMPONENT", GXe_PP, GXe_SCINT, NUMENTRIES); + GXe_mt->AddProperty("SLOWCOMPONENT", GXe_PP, GXe_SCINT, NUMENTRIES); GXe_mt->AddProperty("RINDEX", GXe_PP, GXe_RIND, NUMENTRIES); GXe_mt->AddProperty("ABSLENGTH", GXe_PP, GXe_ABSL, NUMENTRIES); + GXe_mt->AddConstProperty("SCINTILLATIONYIELD",12000./MeV); // include QE 20% + GXe_mt->AddConstProperty("RESOLUTIONSCALE",1.0); + GXe_mt->AddConstProperty("FASTTIMECONSTANT",20.*ns); + GXe_mt->AddConstProperty("SLOWTIMECONSTANT",45.*ns); + GXe_mt->AddConstProperty("YIELDRATIO",1.0); GXe->SetMaterialPropertiesTable(GXe_mt); @@ -111,6 +160,7 @@ metalPb->AddElement(Pb, 1); +/* // Americium: - NOTE it's AmO2.......... G4Isotope* Am241 = new G4Isotope (name="Americium241", iz= 95, in=241, a=241.0*g/mole); @@ -121,8 +171,8 @@ (name="AmericiumSource", density=13.61*g/cm3, ncomponents=2); sourceAm->AddElement(Am, 1); sourceAm->AddElement(O , 2); +*/ - /* // using Uranium because Americium not yet defined for RDM G4Isotope* U235 = new G4Isotope (name="Uranium235", iz= 92, in=235, a=235.0*g/mole); @@ -132,7 +182,6 @@ G4Material* sourceAm = new G4Material (name="UraniumSource", density=13.61*g/cm3, ncomponents=1); sourceAm->AddElement(U, 1); - */ // air G4Element* N = new G4Element diff --git a/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc b/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc index 5d41032ad7..b6c1c343b1 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXDetectorMessenger.cc @@ -55,7 +55,7 @@ DMXDetectorMessenger::DMXDetectorMessenger RoomEKineCutCmd->SetRange("ECut>=250.0*eV"); RoomEKineCutCmd->SetDefaultUnit("eV"); RoomEKineCutCmd->SetUnitCategory("Energy"); - RoomEKineCutCmd->AvailableForStates(PreInit,Idle); + RoomEKineCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); EKineCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/MinEnergyCut",this); EKineCutCmd->SetGuidance("Minimum Charged particle cut inside detector"); @@ -63,7 +63,7 @@ DMXDetectorMessenger::DMXDetectorMessenger EKineCutCmd->SetRange("ECut>=250.0*eV"); EKineCutCmd->SetDefaultUnit("eV"); EKineCutCmd->SetUnitCategory("Energy"); - EKineCutCmd->AvailableForStates(PreInit,Idle); + EKineCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RoomTimeCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/RoomTimeCut",this); RoomTimeCutCmd->SetGuidance("Set Time Cut (for neutrons) inside ROOM"); @@ -71,7 +71,7 @@ DMXDetectorMessenger::DMXDetectorMessenger RoomTimeCutCmd->SetRange("RTCut>0."); RoomTimeCutCmd->SetDefaultUnit("ns"); RoomTimeCutCmd->SetUnitCategory("Time"); - RoomTimeCutCmd->AvailableForStates(PreInit,Idle); + RoomTimeCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); TimeCutCmd = new G4UIcmdWithADoubleAndUnit("/dmx/TimeCut",this); TimeCutCmd->SetGuidance("Set Time Cut (for neutrons) inside detector"); @@ -79,13 +79,13 @@ DMXDetectorMessenger::DMXDetectorMessenger TimeCutCmd->SetRange("TCut>0."); TimeCutCmd->SetDefaultUnit("ns"); TimeCutCmd->SetUnitCategory("Time"); - TimeCutCmd->AvailableForStates(PreInit,Idle); + TimeCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); //UpdateCmd = new G4UIcmdWithoutParameter("/dmx/update",this); //UpdateCmd->SetGuidance("Update calorimeter geometry."); //UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); //UpdateCmd->SetGuidance("if you changed timecut value(s)."); - //UpdateCmd->AvailableForStates(Idle); + //UpdateCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/advanced/underground_physics/src/DMXDetectorRoom.icc b/examples/advanced/underground_physics/src/DMXDetectorRoom.icc index ea88c41bde..a8078e4377 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorRoom.icc +++ b/examples/advanced/underground_physics/src/DMXDetectorRoom.icc @@ -1,3 +1,26 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// // Window - AIR + glass ************************************************ G4double glassThick = 3.0*mm; @@ -65,12 +88,13 @@ // panel hole in wall between Al and "lab": ****************************** - G4double panelholePosX = sidepanelPosX; - G4double panelholePosY = 0.5*(worldLength - holeThick) - panelThick; - G4double panelholePosZ = sidepanelPosZ; + G4double panelholePosX = sidepanelPosX; + G4double panelholeThick = wallThick - panelThick; + G4double panelholePosY = 0.5*(worldLength - panelholeThick) - panelThick; + G4double panelholePosZ = sidepanelPosZ; G4Box* panelhole_box = new G4Box - ("panelhole_box",0.5*sidepanelWidth, 0.5*holeThick, 0.5*windowHeight ); + ("panelhole_box",0.5*sidepanelWidth, 0.5*panelholeThick, 0.5*windowHeight ); panelhole_log = new G4LogicalVolume (panelhole_box, lab_mat, "panelhole_log"); @@ -105,11 +129,11 @@ // door hole in wall between glass and "lab": ****************************** G4double doorwindowPosX = doorglassPosX; - G4double doorwindowPosY = 0.5*(worldLength - holeThick) - panelThick; + G4double doorwindowPosY = 0.5*(worldLength - panelholeThick) - panelThick; G4double doorwindowPosZ = doorglassPosZ; G4Box* doorwindow_box = new G4Box - ("doorwindow_box",0.5*doorwindowWidth, 0.5*holeThick, 0.5*doorwindowHeight ); + ("doorwindow_box",0.5*doorwindowWidth, 0.5*panelholeThick, 0.5*doorwindowHeight ); doorwindow_log = new G4LogicalVolume (doorwindow_box, lab_mat, "doorwindow_log"); doorwindow_phys = new G4PVPlacement diff --git a/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc b/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc index d42a718acf..88966a6ee3 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc +++ b/examples/advanced/underground_physics/src/DMXDetectorRoomLimits.icc @@ -1,3 +1,26 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// glass_log->SetUserLimits(theUserLimitsForRoom); window_log->SetUserLimits(theUserLimitsForRoom); sidepanel_log->SetUserLimits(theUserLimitsForRoom); diff --git a/examples/advanced/underground_physics/src/DMXEventAction.cc b/examples/advanced/underground_physics/src/DMXEventAction.cc index 39840f945e..9fe6c8af4b 100644 --- a/examples/advanced/underground_physics/src/DMXEventAction.cc +++ b/examples/advanced/underground_physics/src/DMXEventAction.cc @@ -120,7 +120,7 @@ void DMXEventAction::BeginOfEventAction(const G4Event* evt) { if (event_id%printModulo == 0) { G4cout << "\n---> Begin of event: " << event_id << G4endl; - G4cout << " Primary Energy: " << G4BestUnit(energy_pri,"Energy") + G4cout << "\n Primary Energy: " << G4BestUnit(energy_pri,"Energy") << G4endl; // HepRandom::showEngineStatus(); } @@ -189,9 +189,9 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { firstParticleName = (*SHC)[0]->GetParticle(); firstLXeHitTime = (*SHC)[0]->GetTime(); firstParticleE = (*SHC)[0]->GetParticleEnergy(); - if (event_id%printModulo == 0) { - G4cout << " First hit in LXe: " << firstParticleName << G4endl; - G4cout << " Number of hits in LXe: " << S_hits << G4endl; + if (event_id%printModulo == 0 && S_hits > 0) { + G4cout << " First hit in LXe: " << firstParticleName << G4endl; + G4cout << " Number of hits in LXe: " << S_hits << G4endl; } } hitEnergy = (*SHC)[i]->GetEdep(); @@ -240,23 +240,29 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { for (G4int i=0; iGetTime() - firstLXeHitTime ); aveTimePmtHits += time / (G4double)P_hits; - if (event_id == 0) { + //// if (event_id == 0) { + if(P_hits >= 0) { #ifdef G4ANALYSIS_USE // pass first event for histogram record: DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); - analysis->HistFirstTime(time); + analysis->HistTime(time); #endif - } } - if (event_id%printModulo == 0) { + } + + if (event_id%printModulo == 0 && P_hits > 0) { G4cout << " Average light collection time: " << G4BestUnit(aveTimePmtHits,"Time") << G4endl; - G4cout << " Number of PMT hits (photons): " << P_hits << G4endl; -// #ifdef G4ANALYSIS_USE -// // plot histograms, interactively: -// DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); -// analysis->PlotHistosInter(); -// #endif + G4cout << " Number of PMT hits (photoelectron equivalent): " + << P_hits << G4endl; +#ifdef G4ANALYSIS_USE + // plot histograms, interactively: + G4bool plotevent=runAct->Getplotevent(); + if(plotevent) { + DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); + analysis->PlotHistosInter(P_hits); + } +#endif } // write out (x,y,z) of PMT hits if (savePmtFlag) @@ -278,7 +284,7 @@ void DMXEventAction::EndOfEventAction(const G4Event* evt) { // print this event by event (modulo n) if (event_id%printModulo == 0) - G4cout << "---> End of event: " << event_id << G4endl; + G4cout << "\n---> End of event: " << event_id << G4endl << G4endl; } @@ -292,9 +298,9 @@ void DMXEventAction::writeScintHitsToFile(void) { G4std::ofstream hitsfile(filename, G4std::ios::app); if(!event_id) { G4std::ofstream hitsfile(filename); - hitsfile <<"Evt E_Prim Etot LXe LXeTime PMT PmtTime First Flags Seed1 Seed2" + hitsfile <<"Evt Eprim Etot LXe LXeTime PMT PMTTime Seed1 Seed2 First Flags" << G4endl; - hitsfile <<"# MeV MeV hits ns hits ns hit" + hitsfile <<"# MeV MeV hits ns hits ns hit" << G4endl << G4endl; } @@ -319,14 +325,14 @@ void DMXEventAction::writeScintHitsToFile(void) { << G4std::setiosflags(G4std::ios::fixed) << G4std::setprecision(4) << aveTimePmtHits/nanosecond << "\t" + << *seeds << "\t" + << *(seeds+1) << "\t" << firstParticleName << "\t" << (gamma_ev ? "gamma " : "") << (neutron_ev ? "neutron " : "") << (positron_ev ? "positron " : "") << (electron_ev ? "electron " : "") << (other_ev ? "other " : "") - << *seeds << "\t" - << *(seeds+1) << "\t" << G4endl; if (event_id%printModulo == 0) @@ -375,8 +381,8 @@ void DMXEventAction::writePmtHitsToFile(const DMXPmtHitsCollection* hits) { analysis->analysePMTHits(event_id,i,x,y,z); #endif } - if (event_id%printModulo == 0) - G4cout << P_hits << " PMT hits in " << filename << G4endl; + if (event_id%printModulo == 0 && P_hits > 0) + G4cout << " " << P_hits << " PMT hits in " << filename << G4endl; pmtfile.close(); } diff --git a/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc b/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc index cc41371e6c..d0b5abf975 100644 --- a/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc @@ -77,14 +77,14 @@ DMXEventActionMessenger::DMXEventActionMessenger(DMXEventAction* EvAct) DrawColsCmd->SetGuidance(" Choice : custom, standard(default)"); DrawColsCmd->SetParameterName("drawColsFlag", false); DrawColsCmd->SetCandidates("custom standard"); - DrawColsCmd->AvailableForStates(Idle); + DrawColsCmd->AvailableForStates(G4State_Idle); DrawTrksCmd = new G4UIcmdWithAString("/dmx/draw/drawTracks",this); DrawTrksCmd->SetGuidance("Draw the tracks in the event"); DrawTrksCmd->SetGuidance(" Choice : none, charged, noscint, all(default)"); DrawTrksCmd->SetParameterName("drawTrksFlag", false); DrawTrksCmd->SetCandidates("none charged noscint all"); - DrawTrksCmd->AvailableForStates(Idle); + DrawTrksCmd->AvailableForStates(G4State_Idle); DrawHitsCmd = new G4UIcmdWithABool("/dmx/draw/drawHits",this); DrawHitsCmd->SetGuidance("Set flag to draw hits in PMT."); @@ -96,7 +96,7 @@ DMXEventActionMessenger::DMXEventActionMessenger(DMXEventAction* EvAct) PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc index 7a1a3c4bb5..98caebe5cf 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.2 2002/06/18 10:17:30 ahoward Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/underground_physics/src/DMXPhysicsList.cc b/examples/advanced/underground_physics/src/DMXPhysicsList.cc index 67213ef75c..9353ac36de 100644 --- a/examples/advanced/underground_physics/src/DMXPhysicsList.cc +++ b/examples/advanced/underground_physics/src/DMXPhysicsList.cc @@ -64,7 +64,6 @@ DMXPhysicsList::DMXPhysicsList() : G4VUserPhysicsList() cutForProton = defaultCutValue; cutForAlpha = 1.0*nanometer; cutForGenericIon = 1.0*nanometer; - cutForOpticalPhoton = 1.0*mm; VerboseLevel = 1; OpVerbLevel = 0; @@ -256,6 +255,42 @@ void DMXPhysicsList::AddTransportation() { void DMXPhysicsList::ConstructEM() { +// processes: + G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); + + G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric(); + G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation(); + G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung(); + G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); + + // note LowEIon uses proton as basis for its data-base, therefore + // cannot specify different LowEnergyIonisation models for different + // particles, but can change model globally for Ion, Alpha and Proton. + + // ahadronLowEIon->SetNuclearStoppingOff() ; + ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ; + ahadronLowEIon->SetNuclearStoppingOn() ; + + //fluorescence switch off for hadrons (for now) PIXE: + ahadronLowEIon->SetFluorescence(false); + + //fluorescence apply specific cut for fluorescence from photons, electrons + //and bremsstrahlung photons: + G4double fluorcut = 250*eV; + lowePhot->SetCutForLowEnSecPhotons(fluorcut); + loweIon->SetCutForLowEnSecPhotons(fluorcut); + loweBrem->SetCutForLowEnSecPhotons(fluorcut); + + // setting tables explicitly for electronic stopping power + // ahadronLowEIon->SetElectronicStoppingPowerModel + // (G4GenericIon::GenericIonDefinition(), "ICRU_R49p") ; + // ahadronLowEIon->SetElectronicStoppingPowerModel + // (G4Proton::ProtonDefinition(), "ICRU_R49p") ; + + // Switch off the Barkas and Bloch corrections + // ahadronLowEIon->SetBarkasOff(); + + theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); @@ -264,17 +299,6 @@ void DMXPhysicsList::ConstructEM() { G4String particleType = particle->GetParticleType(); G4double charge = particle->GetPDGCharge(); - //processes - G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric(); - G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation(); - G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung(); - G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); - G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); - - // note LowEIon uses proton as basis for its data-base, therefore - // cannot specify different LowEnergyIonisation models for different - // particles, but can change model globally for Ion, Alpha and Proton. - if (particleName == "gamma") { //gamma @@ -308,7 +332,8 @@ void DMXPhysicsList::ConstructEM() { pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2); pmanager->AddProcess(new G4MuBremsstrahlung(), -1,-1, 3); pmanager->AddProcess(new G4MuPairProduction(), -1,-1, 4); - pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); + if( particleName == "mu-" ) + pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); } else if (particleName == "proton" || particleName == "alpha" || @@ -325,7 +350,7 @@ void DMXPhysicsList::ConstructEM() { pmanager->AddProcess(ahadronLowEIon,-1,2,2); } else if ((!particle->IsShortLived()) && - (particle->GetPDGCharge() != 0.0) && + (charge != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { //all others charged particles except geantino @@ -334,24 +359,6 @@ void DMXPhysicsList::ConstructEM() { // pmanager->AddProcess(new G4hIonisation(), -1,2,2); } - ahadronLowEIon->SetNuclearStoppingOn() ; - - //fluorescence switch off for hadrons (for now) PIXE: - ahadronLowEIon->SetFluorescence(false); - - //fluorescence apply specific cut for flourescence from photons, electrons - //and bremsstrahlung photons: - G4double cut = 250*eV; - lowePhot->SetCutForLowEnSecPhotons(cut); - loweIon->SetCutForLowEnSecPhotons(cut); - loweBrem->SetCutForLowEnSecPhotons(cut); - - // ahadronLowEIon->SetNuclearStoppingOff() ; - - // ahadronLowEIon->SetStoppingPowerTableName("ICRU_R49p") ; - - // ahadronLowEIon->SetStoppingPowerTableName("Ziegler1977H") ; - } } @@ -359,54 +366,43 @@ void DMXPhysicsList::ConstructEM() { // Optical Processes //////////////////////////////////////////////////////// #include "G4Scintillation.hh" #include "G4OpAbsorption.hh" -#include "G4OpRayleigh.hh" +//#include "G4OpRayleigh.hh" #include "G4OpBoundaryProcess.hh" void DMXPhysicsList::ConstructOp() { - // ATTENTION!!!!: - // Number of scintillation photons generated is wrong (!=correct yield) - // this is due to a mis-implementation within G4 Tracking and the - // scintillation process (to be corrected soon) - // default scintillation process G4Scintillation* theScintProcessDef = new G4Scintillation("Scintillation"); // theScintProcessDef->DumpPhysicsTable(); theScintProcessDef->SetTrackSecondariesFirst(true); - theScintProcessDef->SetScintillationYield(11000./MeV); // including QE 20% - // Fano factor assumed 1; should be much less for Xe ~ 0.13 - // but the Fano factor is already partially included in the correlated - // electron production - therefore not the absolute Fano factor here: - theScintProcessDef->SetResolutionScale(1.0); - theScintProcessDef->SetScintillationTime(45.*ns); + theScintProcessDef->SetScintillationYieldFactor(1.0); // + theScintProcessDef->SetScintillationExcitationRatio(0.0); // theScintProcessDef->SetVerboseLevel(OpVerbLevel); // scintillation process for alpha: G4Scintillation* theScintProcessAlpha = new G4Scintillation("Scintillation"); // theScintProcessNuc->DumpPhysicsTable(); theScintProcessAlpha->SetTrackSecondariesFirst(true); - theScintProcessAlpha->SetScintillationYield(12000./MeV); // including QE 20% - theScintProcessAlpha->SetResolutionScale(1.0); - theScintProcessAlpha->SetScintillationTime(20.*ns); + theScintProcessAlpha->SetScintillationYieldFactor(1.1); + theScintProcessAlpha->SetScintillationExcitationRatio(1.0); theScintProcessAlpha->SetVerboseLevel(OpVerbLevel); // scintillation process for heavy nuclei G4Scintillation* theScintProcessNuc = new G4Scintillation("Scintillation"); // theScintProcessNuc->DumpPhysicsTable(); theScintProcessNuc->SetTrackSecondariesFirst(true); - theScintProcessNuc->SetScintillationYield(1000./MeV); // including QE 20% - theScintProcessNuc->SetResolutionScale(1.); - theScintProcessNuc->SetScintillationTime(20.*ns); + theScintProcessNuc->SetScintillationYieldFactor(0.2); + theScintProcessNuc->SetScintillationExcitationRatio(1.0); theScintProcessNuc->SetVerboseLevel(OpVerbLevel); // optical processes G4OpAbsorption* theAbsorptionProcess = new G4OpAbsorption(); - G4OpRayleigh* theRayleighScatteringProcess = new G4OpRayleigh(); + // G4OpRayleigh* theRayleighScatteringProcess = new G4OpRayleigh(); G4OpBoundaryProcess* theBoundaryProcess = new G4OpBoundaryProcess(); // theAbsorptionProcess->DumpPhysicsTable(); // theRayleighScatteringProcess->DumpPhysicsTable(); theAbsorptionProcess->SetVerboseLevel(OpVerbLevel); - theRayleighScatteringProcess->SetVerboseLevel(OpVerbLevel); + // theRayleighScatteringProcess->SetVerboseLevel(OpVerbLevel); theBoundaryProcess->SetVerboseLevel(OpVerbLevel); G4OpticalSurfaceModel themodel = unified; theBoundaryProcess->SetModel(themodel); @@ -438,7 +434,7 @@ void DMXPhysicsList::ConstructOp() if (particleName == "opticalphoton") { pmanager->AddDiscreteProcess(theAbsorptionProcess); - pmanager->AddDiscreteProcess(theRayleighScatteringProcess); + // pmanager->AddDiscreteProcess(theRayleighScatteringProcess); pmanager->AddDiscreteProcess(theBoundaryProcess); } } @@ -816,8 +812,6 @@ void DMXPhysicsList::SetCuts() SetCutValue(cutForAlpha, "alpha"); SetCutValue(cutForGenericIon, "GenericIon"); - SetCutValue(cutForOpticalPhoton, "opticalphoton"); - SetCutValueForOthers(defaultCutValue); if (verboseLevel>0) DumpCutValuesTable(); diff --git a/examples/advanced/underground_physics/src/DMXRunAction.cc b/examples/advanced/underground_physics/src/DMXRunAction.cc index c4beee581d..aaace99530 100644 --- a/examples/advanced/underground_physics/src/DMXRunAction.cc +++ b/examples/advanced/underground_physics/src/DMXRunAction.cc @@ -63,6 +63,7 @@ DMXRunAction::DMXRunAction() savehitsFile = "hits.out"; savepmtFile = "pmt.out"; savehistFile = "dmx.his"; + plotevent = false; interactplot = false; } @@ -90,7 +91,7 @@ void DMXRunAction::BeginOfRunAction(const G4Run* aRun) #ifdef G4ANALYSIS_USE // Book histograms and ntuples DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); - analysis->book(savehistFile); + analysis->book(savehistFile, plotevent); // analysis->PlotHistosInit(); #endif @@ -105,7 +106,8 @@ void DMXRunAction::EndOfRunAction(const G4Run* aRun) #ifdef G4ANALYSIS_USE DMXAnalysisManager* analysis = DMXAnalysisManager::getInstance(); analysis->PlotHistos(interactplot); - analysis->finish(); + analysis->PulseTimeFit(); + analysis->Finish(); #endif if (G4VVisManager::GetConcreteInstance()) { diff --git a/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc b/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc index 029fa3c35e..7dfbf3ed40 100644 --- a/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc @@ -68,13 +68,19 @@ DMXRunActionMessenger::DMXRunActionMessenger(DMXRunAction* run) SaveHistFileCmd->SetParameterName("histFile", false); SaveHistFileCmd->SetDefaultValue("dmx.his"); + PlotEventCmd = new G4UIcmdWithABool("/dmx/PlotDuringRun",this); + PlotEventCmd->SetGuidance("Flag for Interactive plotting during run"); + PlotEventCmd->SetGuidance("Default = false"); + PlotEventCmd->SetParameterName("plotevent", false); + PlotEventCmd->SetDefaultValue(false); + InteractPlotCmd = new G4UIcmdWithABool("/dmx/PlotAtEnd",this); InteractPlotCmd->SetGuidance("Flag for Interactive plotting at end of run"); InteractPlotCmd->SetGuidance("Default = false"); InteractPlotCmd->SetParameterName("interactplot", false); InteractPlotCmd->SetDefaultValue(false); - // FileCmd->AvailableForStates(Idle); + // FileCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -84,6 +90,7 @@ DMXRunActionMessenger::~DMXRunActionMessenger() delete SaveHitsCmd; delete SavePmtCmd; delete SaveHistFileCmd; + delete PlotEventCmd; delete InteractPlotCmd; } @@ -100,6 +107,14 @@ void DMXRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) if(command == SaveHistFileCmd) DMXRun->SetsavehistFile(newValue); + if(command == PlotEventCmd) { + G4int vl; + const char* t = newValue; + G4std::istrstream is((char*)t); + is >> vl; + DMXRun->Setplotevent(vl!=0); + } + if(command == InteractPlotCmd) { G4int vl; const char* t = newValue; diff --git a/examples/advanced/underground_physics/src/DMXSteppingActionMessenger.cc b/examples/advanced/underground_physics/src/DMXSteppingActionMessenger.cc index 1c6e56eb67..19f8f5c382 100644 --- a/examples/advanced/underground_physics/src/DMXSteppingActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXSteppingActionMessenger.cc @@ -53,35 +53,35 @@ DMXSteppingActionMessenger::DMXSteppingActionMessenger colourNeutronCmd->SetGuidance(" Choice : white, grey, lgrey, black, red, green, blue, cyan, magenta(default), yellow, lgreen, lblue"); colourNeutronCmd->SetParameterName("colourNeutronFlag", false); colourNeutronCmd->SetCandidates("white grey lgrey black red green blue cyan magenta yellow lgreen lblue"); - colourNeutronCmd->AvailableForStates(Idle); + colourNeutronCmd->AvailableForStates(G4State_Idle); colourGammaCmd = new G4UIcmdWithAString("/dmx/draw/gammaColour",this); colourGammaCmd->SetGuidance("Colour of gamma in the event"); colourGammaCmd->SetGuidance(" Choice : white, grey, lgrey, black, red, green, blue, cyan(default), magenta, yellow, lgreen, lblue"); colourGammaCmd->SetParameterName("colourGammaFlag", false); colourGammaCmd->SetCandidates("white grey lgrey black red green blue cyan magenta yellow lgreen lblue"); - colourGammaCmd->AvailableForStates(Idle); + colourGammaCmd->AvailableForStates(G4State_Idle); colourOpticalCmd = new G4UIcmdWithAString("/dmx/draw/opticalColour",this); colourOpticalCmd->SetGuidance("Colour of gamma in the event"); colourOpticalCmd->SetGuidance(" Choice : white(default), grey, lgrey, black, red, green, blue, cyan, magenta, yellow, lgreen, lblue"); colourOpticalCmd->SetParameterName("colourOpticalFlag", false); colourOpticalCmd->SetCandidates("white grey lgrey black red green blue cyan magenta yellow lgreen lblue"); - colourOpticalCmd->AvailableForStates(Idle); + colourOpticalCmd->AvailableForStates(G4State_Idle); colourChargedPlusCmd = new G4UIcmdWithAString("/dmx/draw/chargedplusColour",this); colourChargedPlusCmd->SetGuidance("colour of chargedplus in the event"); colourChargedPlusCmd->SetGuidance(" Choice : white, grey, lgrey, black, red (default), green, blue, cyan, magenta, yellow, lgreen, lblue"); colourChargedPlusCmd->SetParameterName("ColourChargedPlusFlag", false); colourChargedPlusCmd->SetCandidates("white grey lgrey black red(default) green blue cyan magenta yellow lgreen lblue"); - colourChargedPlusCmd->AvailableForStates(Idle); + colourChargedPlusCmd->AvailableForStates(G4State_Idle); colourChargedMinusCmd = new G4UIcmdWithAString("/dmx/draw/chargedminusColour",this); colourChargedMinusCmd->SetGuidance("colour of chargedminus in the event"); colourChargedMinusCmd->SetGuidance(" Choice : white, grey, lgrey, black, red, green, blue(default), cyan, magenta, yellow, lgreen, lblue"); colourChargedMinusCmd->SetParameterName("colourChargedMinusFlag", false); colourChargedMinusCmd->SetCandidates("white grey lgrey black red green blue cyan magenta yellow lgreen lblue"); - colourChargedMinusCmd->AvailableForStates(Idle); + colourChargedMinusCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/advanced/underground_physics/src/DMXVisManager.cc b/examples/advanced/underground_physics/src/DMXVisManager.cc old mode 100644 new mode 100755 diff --git a/examples/advanced/underground_physics/stt.mac b/examples/advanced/underground_physics/stt.mac new file mode 100644 index 0000000000..0030dc8a8f --- /dev/null +++ b/examples/advanced/underground_physics/stt.mac @@ -0,0 +1,53 @@ +############################################################################### +# # +# stt.mac # +# Gamma spectrum from internal calibrator # +# output in file stt.out # +# 100 gamma events @60keV fired inside DMX # +############################################################################### +# +# verbosities +/control/verbose 0 +/run/verbose 0 +/tracking/verbose 0 +/hits/verbose 0 +#/dmx/printModulo 1 +/dmx/printModulo 10 +# +# draw flags +/dmx/draw/drawColours standard +/dmx/draw/drawTracks none +/dmx/draw/drawHits 0 +# +# file output +#/dmx/savePmt 0 +/dmx/savePmt 1 +/dmx/saveHits 1 +# +# gun: particle +/dmx/gun/verbose 0 +/dmx/gun/particle gamma +/dmx/gun/energytype Mono +/dmx/gun/energy 60.0 keV +# +# gun: isotropic +/dmx/gun/angtype iso +# +# OR gun: shoot up +#/dmx/gun/angtype direction +#/dmx/gun/direction 0 0 1 +# +# gun: source +/dmx/gun/type Volume +/dmx/gun/shape Cylinder +/dmx/gun/radius 650 mum +####/dmx/gun/halfz 300.0 nm +/dmx/gun/halfz 1500.0 nm +/dmx/gun/centre 0 0 -302.65 mm +/dmx/gun/confine americium_phys +# +/dmx/hitsfile stt.out +/dmx/pmtfile stt_pmt.out +# +# +/run/beamOn 100 diff --git a/examples/advanced/underground_physics/stt_pmt_ref.out b/examples/advanced/underground_physics/stt_pmt_ref.out new file mode 100644 index 0000000000..718b37ff77 --- /dev/null +++ b/examples/advanced/underground_physics/stt_pmt_ref.out @@ -0,0 +1,2469 @@ +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 3.386 17.079 -330.736 +1 11.121 -3.258 -328.984 +2 -8.297 -8.354 -329.028 +3 2.082 3.556 -327.802 +4 0.893 -12.367 -329.182 +5 4.168 -8.218 -328.483 +6 -2.030 1.942 -327.712 +7 -4.353 -5.396 -328.112 +8 -2.071 -14.320 -329.755 +9 14.175 3.054 -329.764 +10 4.761 -5.339 -328.144 +11 -13.066 -10.697 -330.546 +12 -7.056 0.812 -328.136 +13 17.586 -11.203 -332.149 +14 0.262 -14.228 -329.684 +15 -7.419 -15.202 -330.557 +16 2.835 -3.358 -327.825 +17 -1.856 9.073 -328.491 +18 -13.357 9.034 -330.282 +19 0.825 -9.346 -328.514 +20 12.011 17.625 -332.369 +21 -22.031 -4.777 -332.956 +22 -18.191 -11.037 -332.345 +23 -20.093 5.171 -332.102 +24 -4.502 13.735 -329.750 +25 4.452 14.826 -330.069 +26 10.292 -3.927 -328.852 +27 11.579 -8.414 -329.708 +28 -3.092 -19.170 -331.524 +29 12.402 8.522 -329.932 +30 12.546 -3.407 -329.339 +31 -3.604 19.444 -331.675 +32 -17.462 -6.081 -331.148 +33 13.464 -9.301 -330.364 +34 13.885 6.869 -330.073 +35 -9.597 -0.762 -328.561 +36 -18.412 -6.020 -331.505 +37 10.112 -16.971 -331.666 +38 -3.360 -12.857 -329.417 +39 8.867 0.645 -328.424 +40 -11.048 14.579 -331.070 +41 -8.297 8.848 -329.115 +42 -17.109 8.279 -331.355 +43 -4.550 -3.401 -327.954 +44 4.703 -19.677 -331.872 +45 -18.878 -1.004 -331.313 +46 -7.273 6.967 -328.650 +47 -1.652 8.650 -328.409 +48 -2.445 14.375 -329.789 +49 -17.188 5.992 -331.035 +50 3.113 -19.638 -331.721 +51 15.273 13.059 -331.813 +52 4.523 -13.848 -329.785 +53 -1.071 -3.969 -327.801 +54 -0.060 -12.884 -329.308 +55 8.770 0.181 -328.403 +56 -5.914 4.560 -328.190 +57 8.027 8.357 -328.984 +58 0.504 13.757 -329.550 +59 4.847 -20.282 -332.150 +60 -13.707 7.826 -330.169 +61 7.116 19.253 -332.003 +62 -8.504 -1.685 -328.385 +63 7.502 -11.059 -329.437 +64 10.467 15.796 -331.331 +65 -21.225 3.130 -332.428 +66 0.469 1.719 -327.665 +67 14.727 -15.717 -332.468 +68 -13.667 9.514 -330.464 +69 -0.336 -3.655 -327.767 +70 -1.756 -3.912 -327.816 +71 -11.724 -1.067 -329.028 +72 -2.226 1.589 -327.708 +73 -5.152 -12.357 -329.444 +74 -4.443 -17.064 -330.819 +75 13.237 0.561 -329.406 +76 -3.541 -12.941 -329.452 +77 0.629 -10.459 -328.735 +78 -17.828 1.305 -330.910 +79 -3.040 7.059 -328.223 +80 19.967 -0.632 -331.762 +81 6.311 -17.281 -331.111 +82 -8.122 -0.798 -328.299 +83 -3.542 -7.183 -328.274 +84 -0.380 -9.109 -328.465 +85 -5.544 -11.279 -329.226 +86 17.332 -2.444 -330.770 +87 -9.264 17.945 -331.856 +88 14.699 10.132 -330.901 +89 13.087 -10.114 -330.425 +90 7.402 -9.764 -329.145 +91 10.154 14.825 -330.945 +92 -3.775 -18.368 -331.251 +93 0.280 -22.807 -333.090 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 11.036 1.055 -328.868 +1 12.311 -0.410 -329.162 +2 15.486 -7.577 -330.674 +3 1.433 4.871 -327.890 +4 -5.802 7.172 -328.485 +5 -1.814 -12.723 -329.299 +6 14.989 14.247 -332.071 +7 -7.580 -7.351 -328.752 +8 -0.572 -12.036 -329.095 +9 12.401 12.272 -330.749 +10 19.985 -4.522 -331.987 +11 3.088 15.104 -330.049 +12 18.704 -1.634 -331.261 +13 -18.522 4.287 -331.357 +14 12.832 6.822 -329.774 +15 21.421 -0.453 -332.414 +16 -16.247 6.726 -330.800 +17 9.789 8.109 -329.263 +18 -5.456 8.706 -328.692 +19 -3.637 -13.841 -329.708 +20 11.353 -5.751 -329.266 +21 -16.771 7.891 -331.165 +22 19.003 11.953 -332.909 +23 22.110 -5.627 -333.093 +24 7.678 12.762 -329.884 +25 -2.194 4.818 -327.912 +26 -7.662 -9.650 -329.163 +27 9.986 -10.433 -329.747 +28 13.701 15.311 -332.012 +29 -11.235 -6.298 -329.307 +30 6.359 9.265 -328.902 +31 -9.312 -7.793 -329.118 +32 -19.162 1.240 -331.435 +33 20.290 3.170 -332.007 +34 12.076 15.276 -331.547 +35 -2.803 -6.973 -328.197 +36 -17.603 -6.248 -331.223 +37 2.726 1.545 -327.731 +38 -7.677 -4.792 -328.452 +39 -5.818 -12.685 -329.604 +40 -1.052 -15.341 -330.036 +41 -0.078 -4.765 -327.859 +42 -2.949 5.260 -327.995 +43 -0.550 9.706 -328.580 +44 16.907 1.134 -330.567 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -1.180 11.555 -328.990 +1 -21.479 5.329 -332.752 +2 -4.493 10.447 -328.933 +3 -20.011 8.904 -332.641 +4 -4.498 -10.243 -328.891 +5 -1.985 -8.360 -328.371 +6 1.150 -3.413 -327.762 +7 -21.651 3.380 -332.646 +8 12.998 1.212 -329.353 +9 18.085 -8.902 -331.840 +10 -8.643 17.883 -331.712 +11 15.891 3.922 -330.365 +12 4.907 -19.167 -331.679 +13 15.315 15.153 -332.470 +14 -14.686 -0.695 -329.825 +15 -9.081 -9.061 -329.293 +16 -2.242 -2.547 -327.748 +17 -5.389 -5.922 -328.273 +18 -6.036 1.227 -328.011 +19 2.904 20.061 -331.889 +20 -17.164 8.498 -331.414 +21 12.150 11.968 -330.607 +22 -3.517 11.272 -329.036 +23 -2.239 14.239 -329.738 +24 -2.215 5.932 -328.033 +25 20.847 -5.542 -332.483 +26 -18.149 -4.507 -331.231 +27 0.165 3.120 -327.730 +28 1.339 -7.223 -328.172 +29 -3.895 -17.378 -330.885 +30 -14.440 -9.844 -330.760 +31 -11.581 -0.138 -328.982 +32 -8.547 -3.169 -328.464 +33 -11.857 -12.093 -330.564 +34 -17.209 2.135 -330.710 +35 -11.600 -3.617 -329.120 +36 -4.710 4.788 -328.083 +37 5.859 -2.940 -328.061 +38 -2.381 -3.695 -327.825 +39 -7.270 -10.600 -329.300 +40 15.452 -13.024 -331.862 +41 12.033 -3.946 -329.250 +42 -2.313 13.654 -329.573 +43 4.044 13.807 -329.730 +44 -0.606 13.465 -329.469 +45 -18.844 -2.247 -331.343 +46 5.193 -1.194 -327.916 +47 -0.441 3.181 -327.736 +48 1.471 0.809 -327.661 +49 -9.991 13.452 -330.500 +50 11.884 -0.404 -329.056 +51 -19.963 4.847 -332.010 +52 -2.507 17.888 -330.981 +53 -13.970 -6.892 -330.101 +54 11.569 7.691 -329.586 +55 -1.021 8.134 -328.304 +56 6.048 2.307 -328.051 +57 -21.524 2.057 -332.507 +58 -3.935 -2.266 -327.838 +59 0.138 6.848 -328.101 +60 11.570 -7.601 -329.572 +61 15.126 0.296 -329.958 +62 14.470 6.415 -330.183 +63 5.011 5.576 -328.194 +64 -1.758 -9.482 -328.565 +65 8.181 -3.466 -328.423 +66 8.152 8.911 -329.102 +67 1.421 -1.034 -327.664 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 8.917 -20.455 -332.842 +1 5.838 -7.176 -328.490 +2 18.722 -8.063 -331.940 +3 -1.298 -9.311 -328.518 +4 11.501 -3.311 -329.075 +5 -3.708 -9.932 -328.761 +6 -20.536 -9.344 -332.965 +7 1.134 -0.750 -327.652 +8 10.938 -7.353 -329.387 +9 -0.635 3.013 -327.727 +10 4.557 -1.106 -327.852 +11 20.396 -8.999 -332.832 +12 9.051 4.784 -328.684 +13 17.348 -4.306 -330.909 +14 14.765 -11.447 -331.224 +15 6.645 -1.003 -328.083 +16 -0.671 16.464 -330.403 +17 -9.285 19.289 -332.406 +18 11.144 13.450 -330.757 +19 3.938 -1.443 -327.808 +20 13.547 1.942 -329.527 +21 -2.404 -14.656 -329.871 +22 -1.857 14.629 -329.839 +23 7.053 7.231 -328.656 +24 9.470 3.169 -328.632 +25 0.746 -13.529 -329.489 +26 1.114 5.194 -327.914 +27 -15.972 -7.043 -330.753 +28 17.856 11.490 -332.325 +29 -21.303 0.038 -332.357 +30 14.408 2.973 -329.828 +31 -6.079 -17.735 -331.250 +32 5.337 6.668 -328.362 +33 -2.231 -0.135 -327.683 +34 15.017 12.764 -331.646 +35 -1.607 -21.857 -332.648 +36 -3.097 -5.280 -328.006 +37 13.684 5.795 -329.874 +38 15.925 -3.163 -330.320 +39 -6.869 8.447 -328.823 +40 12.791 -10.114 -330.344 +41 18.924 -5.303 -331.623 +42 12.539 2.014 -329.260 +43 14.392 -2.922 -329.820 +44 12.792 -3.701 -329.425 +45 -10.636 16.916 -331.764 +46 2.638 -11.499 -329.034 +47 15.357 -9.067 -330.894 +48 -7.376 -15.294 -330.580 +49 8.015 18.954 -332.026 +50 -7.540 -20.466 -332.597 +51 5.280 13.618 -329.796 +52 8.653 -14.964 -330.690 +53 14.444 3.873 -329.903 +54 20.733 6.420 -332.546 +55 -12.684 -0.617 -329.259 +56 8.254 -7.962 -328.956 +57 5.092 -0.697 -327.896 +58 4.790 -11.008 -329.084 +59 -3.312 -10.105 -328.768 +60 0.965 -18.005 -330.969 +61 -4.706 -5.128 -328.116 +62 -1.695 -5.069 -327.918 +63 16.307 -5.880 -330.708 +64 -11.967 11.582 -330.465 +65 6.087 -8.694 -328.763 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 3.982 0.025 -327.791 +1 1.489 -12.254 -329.168 +2 -12.334 6.584 -329.611 +3 10.995 -17.414 -332.033 +4 15.668 -3.556 -330.263 +5 12.577 3.719 -329.370 +6 2.779 -10.379 -328.792 +7 -3.847 3.156 -327.880 +8 15.772 14.208 -332.322 +9 -16.719 -9.290 -331.404 +10 -0.376 10.521 -328.745 +11 11.707 10.052 -330.053 +12 -5.106 -0.151 -327.893 +13 -3.958 -2.368 -327.845 +14 -16.364 2.140 -330.412 +15 9.481 4.170 -328.709 +16 8.975 5.987 -328.802 +17 16.115 -7.212 -330.827 +18 8.394 0.386 -328.339 +19 -13.719 10.709 -330.734 +20 14.536 -8.604 -330.548 +21 4.375 12.975 -329.529 +22 -6.142 6.186 -328.393 +23 6.628 3.808 -328.216 +24 -14.160 12.520 -331.312 +25 13.330 10.872 -330.660 +26 -17.688 6.617 -331.305 +27 18.675 5.559 -331.552 +28 2.491 19.512 -331.630 +29 -3.815 0.762 -327.784 +30 -3.242 4.346 -327.926 +31 7.273 -14.287 -330.251 +32 8.304 5.350 -328.611 +33 -5.564 -16.794 -330.840 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 7.249 19.208 -332.004 +1 -4.489 7.268 -328.363 +2 -7.219 6.091 -328.526 +3 9.998 -6.038 -329.005 +4 7.268 12.041 -329.635 +5 -12.828 11.659 -330.708 +6 -0.200 14.884 -329.882 +7 -0.137 8.692 -328.389 +8 -4.276 16.900 -330.744 +9 -0.727 5.062 -327.893 +10 9.052 -17.329 -331.580 +11 13.902 15.109 -332.005 +12 -16.059 5.901 -330.626 +13 22.498 2.906 -333.027 +14 3.820 -5.867 -328.122 +15 -4.426 -11.144 -329.081 +16 12.136 10.666 -330.293 +17 -10.142 9.403 -329.568 +18 2.444 -14.578 -329.850 +19 12.015 2.788 -329.166 +20 8.293 6.135 -328.700 +21 13.126 18.521 -333.035 +22 10.112 4.672 -328.880 +23 6.252 -10.602 -329.159 +24 -7.856 11.556 -329.609 +25 14.473 4.646 -329.980 +26 -5.916 -3.392 -328.097 +27 -3.581 22.268 -332.961 +28 6.486 -7.712 -328.651 +29 4.580 -1.634 -327.868 +30 13.654 5.638 -329.847 +31 4.306 -2.948 -327.904 +32 -20.198 0.669 -331.863 +33 -13.352 -14.383 -331.611 +34 7.678 -16.426 -331.008 +35 -6.248 -13.623 -329.913 +36 -4.573 6.074 -328.210 +37 19.109 12.081 -332.988 +38 -4.071 0.975 -327.807 +39 -1.568 7.442 -328.210 +40 -2.082 12.337 -329.211 +41 5.649 19.715 -331.994 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -16.401 -2.957 -330.468 +1 3.504 2.843 -327.836 +2 -9.517 -12.552 -330.158 +3 0.476 3.210 -327.738 +4 16.791 -9.377 -331.447 +5 14.505 8.125 -330.455 +6 2.491 -16.363 -330.429 +7 6.180 4.611 -328.227 +8 -20.370 -6.140 -332.344 +9 -7.970 -6.434 -328.685 +10 -12.639 -2.725 -329.320 +11 14.162 16.758 -332.660 +12 10.416 1.196 -328.736 +13 -6.481 -18.043 -331.422 +14 -13.197 14.688 -331.662 +15 9.055 -10.015 -329.475 +16 -21.976 -4.136 -332.866 +17 0.673 9.872 -328.614 +18 -7.168 1.911 -328.182 +19 -9.180 -4.546 -328.685 +20 0.458 -9.947 -328.627 +21 -2.389 -1.679 -327.718 +22 -10.941 6.038 -329.207 +23 20.962 6.127 -332.611 +24 -3.028 -6.825 -328.189 +25 -0.185 11.391 -328.938 +26 -5.162 -14.089 -329.919 +27 -15.138 3.291 -330.073 +28 4.340 2.820 -327.900 +29 8.859 -17.166 -331.482 +30 4.375 -1.896 -327.859 +31 -2.809 -7.856 -328.329 +32 2.201 18.650 -331.263 +33 -4.613 -14.131 -329.875 +34 -16.339 -2.448 -330.418 +35 -20.887 -8.960 -333.049 +36 -10.671 -11.628 -330.168 +37 -6.509 12.200 -329.567 +38 -19.240 3.612 -331.590 +39 -5.412 -7.102 -328.431 +40 -6.609 20.781 -332.595 +41 0.225 18.566 -331.178 +42 8.545 16.895 -331.325 +43 -14.484 5.491 -330.073 +44 -1.225 21.219 -332.334 +45 -10.581 -5.839 -329.104 +46 -3.869 9.393 -328.668 +47 11.452 -19.196 -332.861 +48 -9.915 14.589 -330.821 +49 18.483 4.440 -331.355 +50 18.345 -9.076 -331.976 +51 13.663 17.438 -332.763 +52 -4.439 7.251 -328.356 +53 -17.356 1.474 -330.739 +54 -0.722 18.262 -331.064 +55 19.258 8.736 -332.284 +56 -18.991 2.626 -331.422 +57 -8.646 9.092 -329.220 +58 -2.343 21.111 -332.328 +59 -13.812 1.238 -329.579 +60 -21.145 6.119 -332.695 +61 -13.314 -9.491 -330.359 +62 5.771 -19.837 -332.062 +63 -9.110 -19.357 -332.399 +64 -3.688 -22.137 -332.906 +65 -21.366 -0.451 -332.389 +66 -8.169 13.746 -330.237 +67 1.541 18.301 -331.099 +68 -0.382 16.267 -330.332 +69 19.542 7.961 -332.263 +70 -9.800 -13.576 -330.496 +71 -3.506 10.966 -328.966 +72 -3.068 9.088 -328.554 +73 -11.081 1.760 -328.898 +74 1.960 9.453 -328.567 +75 -8.123 10.367 -329.384 +76 -8.964 12.779 -330.111 +77 13.591 10.359 -330.619 +78 -3.427 5.597 -328.062 +79 -1.084 16.061 -330.273 +80 -7.952 -5.423 -328.561 +81 13.842 12.742 -331.277 +82 -2.160 -5.848 -328.020 +83 -9.625 5.957 -328.921 +84 6.114 10.826 -329.191 +85 6.389 13.494 -329.896 +86 -10.036 -14.728 -330.890 +87 -3.788 6.708 -328.226 +88 20.871 4.994 -332.430 +89 -15.467 16.851 -333.123 +90 -16.316 6.354 -330.773 +91 -5.190 12.844 -329.574 +92 -17.546 6.584 -331.247 +93 14.913 1.016 -329.901 +94 -2.180 22.384 -332.930 +Hit# X, mm Y, mm Z, mm +0 -9.872 -10.101 -329.653 +1 4.529 -5.782 -328.171 +2 -18.053 -13.456 -332.942 +3 -6.695 -13.603 -329.968 +4 -3.546 -11.715 -329.142 +5 -2.071 7.092 -328.178 +6 -13.189 -0.118 -329.390 +7 20.029 -9.617 -332.795 +8 -8.853 4.849 -328.654 +9 8.181 6.010 -328.666 +10 -3.470 1.141 -327.766 +11 7.136 14.354 -330.250 +12 7.618 -17.550 -331.406 +13 7.397 -8.415 -328.894 +14 -0.376 13.517 -329.481 +15 -8.240 -17.038 -331.322 +16 -2.130 -17.271 -330.733 +17 -11.665 -13.752 -330.970 +18 -6.886 17.391 -331.233 +19 13.463 13.109 -331.267 +20 -9.430 1.764 -328.555 +21 11.306 7.686 -329.523 +22 1.918 3.953 -327.825 +23 9.691 18.063 -331.990 +24 -7.109 10.232 -329.198 +25 13.266 0.304 -329.412 +26 11.267 -11.197 -330.202 +27 -5.404 -19.610 -331.920 +28 -11.234 -7.130 -329.421 +29 2.294 10.746 -328.846 +30 4.265 21.324 -332.566 +31 -5.377 -5.129 -328.184 +32 -12.611 14.711 -331.507 +33 -8.524 8.776 -329.141 +34 6.631 19.193 -331.905 +35 -0.658 -7.692 -328.228 +36 21.878 6.353 -333.076 +37 14.223 -10.707 -330.882 +38 -12.156 -9.969 -330.148 +39 21.898 -0.925 -332.648 +40 -18.418 -4.873 -331.373 +41 4.472 -22.334 -333.074 +42 -2.665 -2.835 -327.784 +43 3.488 19.197 -331.563 +44 0.201 -11.368 -328.933 +45 12.279 6.317 -329.562 +46 -9.454 9.916 -329.531 +47 -6.695 -5.318 -328.364 +48 11.375 -7.248 -329.472 +49 15.479 16.216 -332.893 +50 1.254 4.084 -327.815 +51 -10.336 20.319 -333.084 +52 -0.786 15.732 -330.158 +53 -8.452 16.592 -331.199 +54 0.040 8.459 -328.348 +55 -18.112 -5.275 -331.297 +56 -5.339 -6.815 -328.382 +57 13.394 0.191 -329.446 +58 1.981 -6.916 -328.149 +59 3.786 22.073 -332.882 +60 1.302 -9.463 -328.547 +61 4.306 8.839 -328.602 +62 -6.170 -12.638 -329.635 +63 3.940 -3.328 -327.898 +64 -13.902 0.983 -329.598 +65 -5.817 1.113 -327.983 +66 6.219 -12.323 -329.560 +67 11.073 -16.543 -331.731 +68 -8.714 4.356 -328.584 +69 -4.162 6.216 -328.192 +70 6.798 -7.414 -328.647 +71 8.539 18.607 -331.979 +72 2.148 5.606 -327.992 +73 -21.286 2.625 -332.424 +74 6.603 7.829 -328.685 +75 -0.650 1.643 -327.664 +76 7.666 16.870 -331.163 +77 15.003 -6.262 -330.327 +78 -16.850 -5.055 -330.803 +79 3.121 11.949 -329.170 +80 3.878 9.133 -328.620 +81 10.436 13.296 -330.552 +82 -3.078 -3.225 -327.831 +83 8.353 7.675 -328.926 +84 3.632 -1.174 -327.778 +85 -2.054 15.127 -330.001 +86 5.847 11.710 -329.362 +87 -0.241 -7.720 -328.229 +88 8.727 10.720 -329.566 +89 2.112 4.162 -327.850 +90 -12.206 -2.261 -329.186 +91 -0.124 13.972 -329.609 +92 -5.699 9.454 -328.857 +93 6.179 12.778 -329.673 +94 1.567 0.286 -327.658 +95 -4.416 4.102 -327.995 +96 2.096 -1.966 -327.715 +97 13.884 4.111 -329.758 +98 -0.686 -1.440 -327.659 +99 -14.366 17.142 -332.868 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 1.099 -6.696 -328.092 +1 3.454 21.529 -332.594 +2 2.223 4.708 -327.903 +3 0.423 -9.772 -328.592 +4 11.504 12.696 -330.635 +5 3.684 0.929 -327.777 +6 -4.145 8.922 -328.603 +7 -3.124 3.100 -327.826 +8 6.288 -1.495 -328.049 +9 -22.429 -3.612 -333.044 +10 1.299 -1.235 -327.665 +11 1.171 16.943 -330.581 +12 9.468 10.906 -329.747 +13 -11.768 19.293 -332.984 +14 -10.410 12.864 -330.428 +15 1.582 9.965 -328.654 +16 -5.005 -13.438 -329.716 +17 -0.018 4.616 -327.845 +18 -9.943 -15.962 -331.273 +19 -0.327 7.275 -328.162 +20 -19.649 -1.354 -331.641 +21 -8.172 16.224 -331.021 +22 10.718 2.305 -328.840 +23 -6.860 11.047 -329.340 +24 -20.088 7.139 -332.364 +25 21.638 -1.374 -332.535 +26 -2.767 0.546 -327.712 +27 20.574 -0.765 -332.030 +28 12.209 -4.894 -329.380 +29 -8.773 13.325 -330.225 +30 5.128 16.059 -330.536 +31 -15.049 6.317 -330.349 +32 14.641 9.435 -330.739 +33 0.030 12.989 -329.336 +34 -9.937 2.375 -328.680 +35 5.911 -5.363 -328.269 +36 -0.890 1.836 -327.675 +37 -0.998 -12.089 -329.115 +38 3.936 -8.266 -328.472 +39 0.722 -17.043 -330.608 +40 -8.787 -11.721 -329.809 +41 -6.553 7.242 -328.589 +42 5.357 16.584 -330.742 +43 4.285 -2.311 -327.869 +44 -10.840 -2.514 -328.877 +45 -16.108 12.365 -331.905 +46 15.740 -2.576 -330.223 +47 -6.190 8.432 -328.731 +48 12.318 5.290 -329.449 +49 19.879 -2.721 -331.799 +50 -5.802 14.404 -330.085 +51 -8.576 9.476 -329.281 +52 8.051 -6.168 -328.664 +53 11.350 -6.881 -329.412 +54 -11.544 -11.277 -330.287 +55 -5.610 -5.476 -328.247 +56 -7.133 11.412 -329.463 +57 12.367 4.906 -329.421 +58 -0.851 2.561 -327.706 +59 12.374 3.615 -329.310 +60 -5.904 -15.617 -330.479 +61 15.166 16.136 -332.759 +62 14.524 3.354 -329.888 +63 -9.770 -13.541 -330.480 +64 -3.874 -17.586 -330.960 +65 5.972 17.604 -331.187 +66 16.000 -9.541 -331.202 +67 -14.109 -15.224 -332.106 +68 -5.250 -7.420 -328.460 +69 -2.435 -0.470 -327.694 +70 1.917 -11.792 -329.070 +71 -6.473 -19.114 -331.850 +72 -3.083 8.828 -328.508 +73 2.226 14.160 -329.715 +74 15.467 -4.510 -330.278 +75 -1.842 7.572 -328.239 +76 -0.439 3.779 -327.777 +77 8.222 -14.676 -330.524 +78 6.522 -3.801 -328.202 +79 10.642 -6.751 -329.235 +80 -12.998 2.117 -329.384 +81 2.880 -10.213 -328.763 +82 1.615 -8.187 -328.329 +83 2.065 -1.496 -327.698 +84 13.579 -4.869 -329.742 +85 2.199 10.343 -328.755 +86 -15.296 2.253 -330.063 +87 20.539 1.112 -332.022 +88 -4.659 16.199 -330.536 +89 -0.893 -17.368 -330.729 +90 -19.282 -4.774 -331.713 +91 -6.732 5.668 -328.408 +92 -5.011 12.276 -329.409 +93 9.481 6.653 -328.982 +94 -18.590 -0.811 -331.194 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -14.307 -7.252 -330.254 +1 -1.671 18.370 -331.130 +2 -15.687 -4.259 -330.327 +3 -9.906 -5.002 -328.870 +4 3.375 -18.605 -331.315 +5 -0.105 -3.500 -327.755 +6 14.764 -10.967 -331.109 +7 0.193 4.245 -327.813 +8 -12.380 10.186 -330.251 +9 4.355 -13.137 -329.571 +10 -7.747 7.225 -328.759 +11 1.435 -19.559 -331.605 +12 -6.811 7.007 -328.590 +13 -2.512 10.042 -328.708 +14 -18.869 9.227 -332.219 +15 -16.303 -10.779 -331.577 +16 8.729 3.603 -328.526 +17 20.973 -5.477 -332.533 +18 -11.682 -15.298 -331.454 +19 0.393 -7.828 -328.246 +20 5.427 -0.965 -327.936 +21 -16.536 -2.399 -330.484 +22 6.801 -10.654 -329.244 +23 -10.880 -5.565 -329.137 +24 -13.025 15.420 -331.852 +25 -6.756 0.271 -328.089 +26 -5.328 0.293 -327.917 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 4.168 -3.639 -327.938 +1 -8.124 9.464 -329.201 +2 5.074 16.620 -330.724 +3 7.495 10.786 -329.375 +4 -19.491 11.216 -332.928 +5 8.759 8.873 -329.200 +6 10.157 3.238 -328.774 +7 -5.546 -5.023 -328.192 +8 -19.841 10.248 -332.851 +9 11.178 7.206 -329.420 +10 -16.513 13.204 -332.282 +11 -2.885 0.548 -327.719 +12 5.608 7.921 -328.577 +13 -19.201 -4.148 -331.619 +14 -0.737 -19.798 -331.690 +15 7.103 -12.978 -329.854 +16 -11.819 6.343 -329.451 +17 -2.367 2.680 -327.760 +18 12.889 6.449 -329.738 +19 -11.908 -10.569 -330.214 +20 -3.521 10.580 -328.882 +21 -19.189 -1.872 -331.467 +22 16.931 6.955 -331.075 +23 -8.948 -11.600 -329.810 +24 -8.612 2.158 -328.422 +25 -13.088 18.363 -332.959 +26 14.452 -13.873 -331.786 +27 9.496 -8.183 -329.217 +28 14.655 0.610 -329.815 +29 -6.040 0.472 -327.999 +30 -2.426 7.216 -328.212 +31 14.169 -4.342 -329.861 +32 16.552 7.527 -331.028 +33 -13.890 -17.490 -332.852 +34 8.084 -19.873 -332.428 +35 -0.129 4.329 -327.820 +36 -1.755 -5.299 -327.943 +37 -16.753 7.151 -331.040 +38 -11.757 17.092 -332.101 +39 -0.643 -12.721 -329.269 +40 -6.525 12.727 -329.705 +41 -16.940 -10.473 -331.735 +42 5.633 6.558 -328.380 +43 7.534 2.794 -328.278 +44 -9.678 17.317 -331.702 +45 6.347 7.276 -328.567 +46 -20.550 0.978 -332.024 +47 -13.761 -0.744 -329.554 +48 -13.457 -10.201 -330.546 +49 -4.150 0.783 -327.811 +50 4.232 -8.547 -328.544 +51 -0.669 14.643 -329.812 +52 -17.255 8.974 -331.537 +53 3.811 -3.767 -327.919 +54 4.424 -11.277 -329.111 +55 8.157 7.438 -328.857 +56 -14.602 -2.278 -329.849 +57 -4.980 9.002 -328.694 +58 -7.009 1.270 -328.139 +59 -13.415 1.629 -329.479 +60 -4.828 -21.918 -332.907 +61 4.276 11.514 -329.153 +62 -11.475 -3.644 -329.092 +63 -20.012 -8.595 -332.582 +64 6.244 14.760 -330.249 +65 -8.936 -1.049 -328.443 +66 -4.203 -4.415 -328.003 +67 17.399 -8.079 -331.427 +68 -9.835 -16.266 -331.355 +69 -1.813 -19.007 -331.390 +70 16.100 5.040 -330.541 +71 -3.581 -13.513 -329.611 +72 1.866 14.518 -329.806 +73 -13.299 1.551 -329.444 +74 3.854 5.058 -328.036 +75 -2.607 19.363 -331.574 +76 -0.177 2.149 -327.679 +77 4.866 12.217 -329.379 +78 -19.346 -12.017 -333.072 +79 10.326 12.369 -330.278 +80 -3.813 1.118 -327.790 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -2.562 -19.438 -331.603 +1 11.845 -2.803 -329.125 +2 -21.194 -4.443 -332.523 +3 20.950 3.352 -332.317 +4 -12.774 -8.395 -330.007 +5 11.700 11.823 -330.457 +6 -0.079 7.522 -328.198 +7 -5.712 11.179 -329.222 +8 4.665 15.837 -330.414 +9 -5.690 8.471 -328.677 +10 4.320 8.742 -328.586 +11 1.321 8.150 -328.314 +12 -6.740 4.871 -328.324 +13 -21.570 3.166 -332.592 +14 -5.230 0.170 -327.906 +15 -4.988 10.836 -329.065 +16 -8.837 2.956 -328.502 +17 -7.559 -3.981 -328.363 +18 19.827 -3.382 -331.820 +19 -11.031 -9.839 -329.850 +20 -9.598 7.598 -329.142 +21 1.301 20.546 -332.030 +22 -11.830 18.011 -332.472 +23 7.508 -17.300 -331.295 +24 16.379 -6.131 -330.765 +25 -10.116 4.912 -328.904 +26 4.643 -10.115 -328.878 +27 5.213 -0.065 -327.904 +28 -12.960 0.484 -329.330 +29 4.645 -0.252 -327.848 +30 7.045 13.861 -330.092 +31 -1.381 -11.644 -329.016 +32 -4.272 7.823 -328.428 +33 0.620 -3.578 -327.764 +34 -11.814 -19.128 -332.925 +35 -9.907 -3.722 -328.757 +36 1.912 6.045 -328.034 +37 -20.616 7.715 -332.694 +38 11.995 -11.566 -330.468 +39 -3.895 -16.780 -330.669 +40 9.659 12.436 -330.156 +41 -21.268 -3.464 -332.472 +42 11.740 8.196 -329.710 +43 9.831 -11.114 -329.867 +44 -14.694 -8.142 -330.515 +45 -6.040 20.572 -332.421 +46 -1.617 -15.484 -330.098 +47 -12.937 -4.328 -329.515 +48 -20.682 7.888 -332.754 +49 -0.743 -9.033 -328.455 +50 3.593 13.228 -329.533 +51 -7.186 4.532 -328.355 +52 5.066 -10.024 -328.901 +53 10.776 -18.523 -332.416 +54 -6.659 5.132 -328.339 +55 -15.541 -16.071 -332.863 +56 7.365 3.376 -328.289 +57 -5.946 -6.839 -328.455 +58 -3.113 10.462 -328.830 +59 -13.314 -8.119 -330.107 +60 3.418 2.372 -327.805 +61 12.867 5.768 -329.646 +62 -13.196 3.203 -329.497 +63 -10.411 -8.172 -329.402 +64 -7.572 -1.673 -328.233 +65 22.379 -2.752 -332.958 +66 -12.177 -6.420 -329.550 +67 -9.473 8.829 -329.325 +68 7.969 17.000 -331.261 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -2.744 -10.579 -328.833 +1 12.518 -18.401 -332.813 +2 3.673 -13.646 -329.655 +3 -19.677 2.743 -331.714 +4 -3.188 -5.698 -328.058 +5 -0.304 -7.741 -328.232 +6 6.560 13.044 -329.795 +7 -8.041 -5.188 -328.550 +8 14.247 -2.038 -329.732 +9 5.617 -12.024 -329.412 +10 2.665 19.581 -331.669 +11 -12.856 -10.139 -330.367 +12 2.377 -1.737 -327.719 +13 -20.292 -2.220 -331.952 +14 1.197 4.893 -327.886 +15 15.034 -3.504 -330.056 +16 -6.364 -16.200 -330.734 +17 12.405 -12.050 -330.693 +18 -14.153 17.382 -332.892 +19 -2.029 -1.563 -327.698 +20 5.028 -10.016 -328.895 +21 -19.252 -5.427 -331.772 +22 3.013 -7.060 -328.221 +23 -15.140 -0.673 -329.966 +24 -9.392 -5.154 -328.785 +25 0.141 1.656 -327.661 +26 -0.550 -5.922 -327.985 +27 -6.979 -21.635 -333.052 +28 14.814 -8.508 -330.617 +29 -3.185 -11.114 -328.977 +30 -7.954 -2.226 -328.315 +31 3.560 -8.423 -328.470 +32 -8.023 -7.440 -328.835 +33 14.149 -3.061 -329.757 +34 4.349 3.283 -327.929 +35 -11.448 18.392 -332.527 +36 -20.616 -5.576 -332.382 +37 16.152 -13.853 -332.346 +38 18.325 4.487 -331.297 +39 4.525 -10.728 -328.997 +40 -0.183 13.987 -329.614 +41 7.295 -14.964 -330.462 +42 11.851 -12.378 -330.636 +43 -6.912 15.080 -330.441 +44 3.427 4.055 -327.914 +45 6.967 -14.288 -330.206 +46 7.460 3.378 -328.303 +47 16.713 -8.281 -331.212 +48 1.866 -4.855 -327.902 +49 -13.426 -8.825 -330.263 +50 -17.117 -14.189 -332.802 +51 -7.535 -20.831 -332.762 +52 1.746 -18.678 -331.255 +53 16.066 -2.835 -330.347 +54 9.679 8.632 -329.330 +55 0.011 -1.176 -327.647 +56 -0.094 -3.569 -327.760 +57 14.757 12.077 -331.380 +58 -7.878 4.580 -328.464 +59 11.797 -2.410 -329.093 +60 16.420 3.130 -330.486 +61 -11.406 7.796 -329.564 +62 -8.926 16.050 -331.099 +63 1.606 16.498 -330.437 +64 -2.264 13.199 -329.445 +65 11.935 -1.503 -329.090 +66 -21.815 5.341 -332.914 +67 7.836 1.901 -328.283 +68 19.783 -9.680 -332.700 +69 -6.798 -3.271 -328.201 +70 14.101 0.862 -329.654 +71 -15.310 -10.440 -331.163 +72 -5.795 9.968 -328.970 +73 13.088 7.585 -329.957 +74 -3.570 8.506 -328.485 +75 5.899 -11.757 -329.380 +76 -6.015 -0.698 -327.998 +77 -20.318 1.745 -331.943 +78 -0.669 -6.342 -328.038 +79 3.758 -19.931 -331.895 +80 7.318 -15.869 -330.760 +81 17.095 -11.289 -331.985 +82 -14.397 -5.763 -330.078 +83 -11.829 -3.132 -329.141 +84 -5.066 -18.933 -331.600 +85 1.054 -18.643 -331.220 +86 -4.333 11.925 -329.256 +87 -13.810 -8.808 -330.369 +Hit# X, mm Y, mm Z, mm +0 -13.597 8.808 -330.308 +1 5.718 -5.412 -328.252 +2 -3.025 6.712 -328.174 +3 -6.540 15.058 -330.382 +4 8.321 5.052 -328.582 +5 6.073 0.224 -328.001 +6 7.985 -9.234 -329.134 +7 5.842 15.652 -330.483 +8 -1.595 -12.482 -329.229 +9 -6.615 -9.689 -329.018 +10 -11.394 -19.122 -332.815 +11 20.436 1.794 -331.997 +12 -6.027 -8.592 -328.738 +13 -1.364 13.069 -329.376 +14 15.653 0.912 -330.134 +15 -17.750 -8.440 -331.624 +16 10.100 8.893 -329.463 +17 -17.918 9.647 -331.924 +18 -6.896 -12.784 -329.772 +19 -5.474 -15.462 -330.377 +20 12.961 13.770 -331.315 +21 -9.789 -3.292 -328.703 +22 -1.695 9.502 -328.566 +23 -7.896 -17.140 -331.300 +24 -19.126 -3.823 -331.560 +25 12.808 9.394 -330.202 +26 -0.156 -5.870 -327.977 +27 -11.392 -18.229 -332.447 +28 6.759 6.242 -328.480 +29 -11.851 -1.581 -329.072 +30 -6.778 2.376 -328.148 +31 -5.905 -16.944 -330.936 +32 3.642 4.335 -327.952 +33 4.045 -1.058 -327.807 +34 1.005 -9.735 -328.593 +35 0.282 16.294 -330.341 +36 -1.833 14.579 -329.823 +37 1.042 -11.796 -329.044 +38 -10.249 -2.252 -328.738 +39 17.030 3.256 -330.709 +40 19.797 -4.835 -331.937 +41 9.590 -5.777 -328.892 +42 -12.207 -7.300 -329.682 +43 -1.078 8.897 -328.436 +44 -3.207 18.043 -331.083 +45 -3.663 19.512 -331.708 +46 -3.689 -1.546 -327.792 +47 6.969 6.606 -328.556 +48 7.365 6.867 -328.649 +49 -4.596 2.933 -327.929 +50 -7.899 5.963 -328.615 +51 -4.876 7.538 -328.439 +52 6.440 -1.284 -328.063 +53 9.952 -18.322 -332.149 +54 2.895 19.100 -331.483 +55 4.333 12.109 -329.302 +56 4.831 -11.773 -329.266 +57 13.966 12.116 -331.147 +58 4.754 1.715 -327.887 +59 6.789 8.765 -328.868 +60 -8.513 -3.495 -328.481 +61 0.183 17.347 -330.713 +62 8.619 -9.326 -329.259 +63 22.171 -2.102 -332.821 +64 -8.073 4.876 -328.524 +65 6.326 -2.314 -328.085 +66 -0.682 1.920 -327.675 +67 -8.373 -1.094 -328.346 +68 -6.658 4.197 -328.252 +69 13.747 13.369 -331.424 +70 10.980 8.084 -329.513 +71 -5.691 -2.774 -328.033 +72 2.037 2.573 -327.740 +73 -5.246 -10.273 -328.971 +74 -0.766 -1.231 -327.654 +75 -14.316 -2.569 -329.778 +76 0.323 18.292 -331.071 +77 4.866 -11.700 -329.252 +78 -6.820 1.132 -328.110 +79 0.554 -19.305 -331.480 +80 9.449 -12.435 -330.114 +81 -3.344 -1.234 -327.760 +82 -21.762 -4.216 -332.770 +83 -5.992 8.963 -328.800 +84 11.270 -8.359 -329.626 +85 -8.099 3.329 -328.400 +86 -7.002 -11.149 -329.383 +87 10.828 8.808 -329.605 +88 -8.501 -2.636 -328.425 +89 6.675 11.176 -329.343 +90 -11.462 14.102 -331.024 +91 -0.837 0.380 -327.642 +92 -17.047 7.431 -331.190 +93 13.944 -4.483 -329.809 +94 13.549 17.535 -332.766 +95 11.129 1.705 -328.907 +96 12.095 -8.076 -329.777 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 14.026 -17.319 -332.828 +1 14.420 11.636 -331.163 +2 -12.016 -11.380 -330.428 +3 4.441 -13.030 -329.550 +4 -5.805 -1.931 -328.006 +5 -9.306 -16.585 -331.359 +6 8.744 -19.635 -332.446 +7 8.545 14.024 -330.384 +8 13.753 -1.945 -329.585 +9 17.329 5.623 -331.041 +10 0.012 18.559 -331.175 +11 11.386 -8.764 -329.725 +12 -3.280 21.137 -332.397 +13 11.895 -2.954 -329.146 +14 9.988 -12.358 -330.203 +15 11.841 -10.133 -330.103 +16 -3.008 3.052 -327.816 +17 6.044 -7.850 -328.617 +18 -5.874 -10.212 -329.029 +19 -0.232 6.667 -328.077 +20 -15.279 5.543 -330.326 +21 11.638 -9.111 -329.849 +22 -11.208 2.599 -328.964 +23 1.029 -12.836 -329.306 +24 5.812 19.873 -332.083 +25 -9.870 -14.768 -330.867 +26 16.055 11.758 -331.728 +27 17.500 -12.089 -332.341 +28 -12.156 2.095 -329.166 +29 -5.128 8.757 -328.666 +30 -0.454 12.505 -329.211 +31 2.384 -13.879 -329.641 +Hit# X, mm Y, mm Z, mm +0 -5.966 -1.110 -328.000 +1 21.915 -1.645 -332.677 +2 3.023 -14.641 -329.901 +3 -18.756 8.315 -331.998 +4 18.049 -7.965 -331.655 +5 -0.086 -1.833 -327.667 +6 7.822 -1.685 -328.272 +7 0.814 -3.868 -327.789 +8 3.633 -22.167 -332.916 +9 -2.362 4.658 -327.905 +10 -4.940 12.954 -329.578 +11 -0.607 7.935 -328.266 +12 14.428 -3.347 -329.859 +13 10.046 -4.221 -328.825 +14 -5.288 -1.809 -327.944 +15 12.874 -7.079 -329.822 +16 11.146 -6.521 -329.316 +17 4.723 8.689 -328.613 +18 7.175 3.832 -328.294 +19 0.759 9.833 -328.608 +20 -3.484 -11.963 -329.198 +21 -13.116 -9.572 -330.321 +22 19.714 -6.655 -332.129 +23 13.642 0.891 -329.523 +24 14.596 4.094 -329.967 +25 -1.824 -1.877 -327.701 +26 -10.614 11.271 -330.070 +27 11.829 12.639 -330.700 +28 -1.617 9.139 -328.495 +29 -0.530 0.799 -327.642 +30 -1.118 -14.831 -329.878 +31 -8.912 1.636 -328.454 +32 2.468 1.800 -327.726 +33 18.449 -5.259 -331.427 +34 -7.430 -14.715 -330.405 +35 -7.770 1.392 -328.255 +36 8.175 0.864 -328.308 +37 -16.905 -7.777 -331.194 +38 -5.228 -3.666 -328.039 +39 -7.456 -15.007 -330.500 +40 -1.531 10.535 -328.770 +41 12.488 -6.199 -329.600 +42 -16.183 7.583 -330.908 +43 -5.129 -3.819 -328.041 +44 13.206 1.861 -329.430 +45 4.165 -3.806 -327.950 +46 1.400 13.026 -329.366 +47 2.648 15.362 -330.105 +48 -13.763 17.354 -332.761 +49 0.627 5.015 -327.887 +50 -9.953 5.092 -328.889 +51 16.190 2.604 -330.376 +52 -3.579 20.397 -332.084 +53 -7.003 16.703 -331.000 +54 5.244 21.772 -332.882 +55 9.370 0.146 -328.512 +56 3.406 7.105 -328.253 +57 -15.682 15.314 -332.649 +58 4.762 15.741 -330.392 +59 -13.058 10.411 -330.481 +60 20.278 -3.353 -332.015 +61 6.570 7.376 -328.611 +62 5.136 12.722 -329.537 +63 -3.964 -0.344 -327.791 +64 -0.757 -13.584 -329.504 +65 -6.866 0.949 -328.112 +66 -18.635 4.687 -331.440 +67 -6.136 10.969 -329.226 +68 0.286 7.055 -328.130 +69 2.940 -9.340 -328.594 +70 5.602 5.269 -328.224 +71 12.450 2.960 -329.285 +72 -6.676 -4.964 -328.325 +73 2.705 4.212 -327.882 +74 7.883 -5.806 -328.593 +75 -11.234 7.230 -329.436 +76 16.082 2.686 -330.344 +77 -19.380 10.754 -332.768 +78 -9.308 5.705 -328.830 +79 3.635 -14.717 -329.967 +80 -2.768 6.549 -328.137 +81 6.395 -7.465 -328.601 +82 6.588 5.708 -328.393 +83 7.492 -13.422 -330.035 +84 13.496 9.353 -330.383 +85 -8.229 18.844 -332.019 +86 -19.437 -0.793 -331.539 +87 -4.928 -12.578 -329.478 +88 -19.931 -0.576 -331.745 +89 -2.001 8.676 -328.426 +90 2.417 18.121 -331.066 +91 16.246 11.092 -331.631 +92 -6.037 14.016 -329.999 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 1.161 15.384 -330.053 +1 -12.265 3.145 -329.250 +2 12.637 -10.388 -330.362 +3 -6.764 -12.569 -329.697 +4 -1.211 -18.440 -331.143 +5 5.789 4.343 -328.156 +6 -6.331 -2.370 -328.089 +7 -3.461 4.478 -327.952 +8 -0.408 -9.002 -328.445 +9 4.298 -2.414 -327.875 +10 -6.818 10.058 -329.120 +11 4.267 -3.157 -327.914 +12 -2.425 -11.351 -328.988 +13 6.406 -1.306 -328.059 +14 10.278 -11.108 -329.959 +15 11.978 15.268 -331.519 +16 -0.990 -0.998 -327.653 +17 -4.063 1.833 -327.831 +18 3.492 3.376 -327.868 +19 -6.151 6.611 -328.449 +20 9.341 4.228 -328.687 +21 -19.679 -8.834 -332.483 +22 -9.093 6.744 -328.921 +23 -15.567 -5.620 -330.428 +24 -0.912 -2.753 -327.717 +25 -12.092 -13.277 -330.941 +26 -2.500 -3.941 -327.850 +27 0.123 -9.507 -328.538 +28 -0.777 17.375 -330.729 +29 -4.477 -0.879 -327.840 +30 1.423 0.668 -327.658 +31 -4.426 -3.790 -327.971 +32 0.469 4.794 -327.864 +33 -15.765 -7.078 -330.689 +34 18.000 -11.166 -332.300 +35 11.652 -3.430 -329.119 +36 18.860 6.874 -331.804 +37 4.557 -11.008 -329.062 +38 16.896 11.788 -332.037 +39 -13.295 -16.149 -332.179 +40 -7.124 -12.985 -329.859 +41 -0.147 2.894 -327.717 +42 -12.161 -11.898 -330.592 +43 -6.174 -10.075 -329.038 +44 -17.832 13.903 -332.990 +45 -7.320 -14.650 -330.368 +46 -2.940 -12.182 -329.216 +47 12.794 12.563 -330.931 +48 -1.724 9.278 -328.525 +49 -5.509 -5.416 -328.229 +50 -0.166 -3.404 -327.749 +51 3.524 -4.874 -327.994 +52 13.158 -6.978 -329.884 +53 3.422 -11.694 -329.128 +54 -6.829 -6.779 -328.560 +55 -15.436 4.628 -330.279 +56 -12.762 2.306 -329.330 +57 1.003 6.339 -328.044 +58 7.960 0.245 -328.266 +59 4.457 -16.059 -330.469 +60 -13.537 17.606 -332.790 +61 12.381 -2.699 -329.252 +62 -5.043 -8.479 -328.608 +63 12.705 12.305 -330.839 +64 9.576 -16.350 -331.331 +65 -13.136 -16.204 -332.153 +66 9.817 17.998 -331.991 +67 -6.504 -7.117 -328.564 +68 -10.309 8.399 -329.419 +69 11.238 10.902 -330.127 +70 -9.581 -6.745 -329.014 +71 -3.555 13.141 -329.507 +72 -1.327 -5.290 -327.929 +73 14.954 5.821 -330.256 +74 -14.189 -8.066 -330.349 +75 -10.997 14.943 -331.172 +76 6.558 -9.510 -328.975 +77 -3.191 -12.348 -329.274 +78 12.664 0.687 -329.255 +79 -14.648 -5.773 -330.156 +80 -0.967 10.024 -328.650 +81 13.087 -3.981 -329.525 +82 16.729 2.518 -330.557 +83 -9.013 12.573 -330.066 +84 -8.046 -14.997 -330.594 +85 -13.567 -14.368 -331.669 +86 13.282 -5.130 -329.686 +87 -3.020 12.581 -329.322 +88 4.249 0.416 -327.814 +89 6.645 -0.970 -328.083 +90 -8.894 9.122 -329.270 +91 -20.349 -1.422 -331.946 +92 1.475 -11.782 -329.052 +93 -11.977 -3.826 -329.227 +94 -4.660 8.816 -328.630 +95 -5.966 15.720 -330.521 +96 4.114 21.314 -332.548 +97 -9.325 -13.901 -330.494 +98 -6.537 -9.840 -329.037 +99 9.867 -20.303 -332.971 +100 -2.368 3.454 -327.808 +101 18.595 7.399 -331.777 +102 -10.306 -12.537 -330.318 +103 -16.113 -4.402 -330.482 +104 16.389 3.115 -330.474 +105 -3.763 -14.762 -329.991 +106 -3.813 -14.394 -329.883 +107 -16.686 12.215 -332.071 +108 -0.171 19.090 -331.389 +109 -1.134 -11.049 -328.872 +110 -16.118 -7.369 -330.852 +111 -9.342 15.932 -331.139 +112 -6.362 8.659 -328.792 +113 -9.662 -7.116 -329.083 +114 -11.751 -10.760 -330.218 +115 -1.272 -12.276 -329.168 +116 3.052 -7.402 -328.273 +117 -4.245 11.634 -329.179 +118 -20.839 6.652 -332.628 +119 1.159 -9.555 -328.561 +Hit# X, mm Y, mm Z, mm +0 4.728 -8.309 -328.548 +1 -8.656 -12.039 -329.864 +2 9.997 13.292 -330.457 +3 19.488 9.499 -332.535 +4 3.451 17.416 -330.864 +5 -4.476 -4.588 -328.043 +6 -9.577 -3.349 -328.665 +7 -19.223 -5.624 -331.784 +8 12.225 -4.116 -329.312 +9 15.248 -13.798 -332.019 +10 -6.253 1.676 -328.051 +11 13.707 -7.941 -330.187 +12 5.758 21.918 -333.004 +13 22.385 -4.695 -333.122 +14 -6.046 -1.102 -328.009 +15 11.863 3.054 -329.145 +16 0.351 -14.990 -329.915 +17 12.061 -14.432 -331.274 +18 0.484 5.973 -327.991 +19 7.310 10.136 -329.207 +20 -1.751 -4.679 -327.882 +21 -14.598 14.694 -332.086 +22 0.337 -11.984 -329.080 +23 -17.130 8.486 -331.400 +24 -10.171 -14.536 -330.859 +25 1.691 -8.066 -328.312 +26 11.235 15.477 -331.403 +27 7.523 -1.096 -328.210 +28 18.157 4.947 -331.278 +29 2.270 14.699 -329.878 +30 6.047 -12.839 -329.673 +31 -8.403 15.316 -330.758 +32 1.171 -3.484 -327.768 +33 0.080 2.099 -327.677 +34 1.950 -3.651 -327.804 +35 4.515 -4.917 -328.077 +36 -8.866 7.550 -328.997 +37 -20.563 -2.283 -332.075 +38 -0.889 -4.528 -327.845 +39 11.835 -18.951 -332.856 +40 1.117 -12.173 -329.138 +41 -10.269 -7.548 -329.271 +42 10.687 -19.581 -332.839 +43 -17.393 -11.545 -332.160 +44 10.312 -8.226 -329.390 +45 -11.496 -15.564 -331.496 +46 -1.656 -5.437 -327.955 +47 4.209 -7.912 -328.437 +48 -3.738 5.713 -328.098 +49 4.709 -6.822 -328.320 +50 5.780 -9.329 -328.843 +51 -16.289 -8.118 -331.034 +52 9.393 -7.521 -329.091 +53 8.543 1.509 -328.386 +54 -0.853 -4.725 -327.863 +55 7.689 -1.817 -328.256 +56 -6.504 9.513 -328.968 +57 -6.423 9.231 -328.904 +58 9.194 2.951 -328.567 +59 -13.632 3.832 -329.663 +60 10.299 16.512 -331.542 +61 -22.093 -4.258 -332.934 +62 0.376 7.191 -328.150 +63 -17.771 8.102 -331.571 +64 -0.850 -13.698 -329.538 +65 -9.765 1.974 -328.628 +66 -10.406 6.276 -329.120 +67 9.222 -1.953 -328.523 +68 16.553 -4.000 -330.598 +69 -17.205 1.502 -330.685 +70 -4.915 2.953 -327.961 +71 1.180 -6.440 -328.060 +72 -3.262 17.279 -330.800 +73 1.202 22.627 -333.014 +74 5.689 20.770 -332.466 +75 16.272 3.221 -330.441 +76 -0.323 1.302 -327.651 +77 11.338 1.718 -328.955 +78 -7.617 -1.421 -328.232 +79 -2.753 -16.236 -330.400 +80 0.257 -20.156 -331.840 +81 -9.880 1.751 -328.642 +82 -11.167 -14.504 -331.075 +83 2.999 3.040 -327.815 +84 -4.681 -8.960 -328.657 +85 5.594 -19.001 -331.689 +86 18.950 11.602 -332.796 +87 -8.583 -16.295 -331.119 +88 14.437 -13.230 -331.593 +89 -11.026 -12.182 -330.387 +90 -8.052 5.608 -328.598 +91 -15.443 5.772 -330.406 +92 -0.594 -5.974 -327.992 +93 -12.762 2.472 -329.339 +94 -3.101 -0.034 -327.729 +95 11.774 6.679 -329.485 +96 -2.290 -12.283 -329.207 +97 -2.808 -22.398 -332.971 +98 -6.747 1.822 -328.120 +99 15.231 -13.620 -331.961 +100 -6.298 -15.176 -330.387 +101 -9.558 -5.565 -328.862 +102 -14.055 13.274 -331.488 +103 -6.386 -4.729 -328.264 +104 -8.272 17.584 -331.530 +105 10.652 -11.106 -330.040 +106 2.520 1.281 -327.713 +107 12.823 -14.859 -331.612 +108 11.915 4.557 -329.274 +109 12.367 6.088 -329.555 +110 4.429 8.778 -328.602 +111 -7.304 9.870 -329.152 +112 -0.099 8.071 -328.284 +113 -12.591 0.719 -329.237 +114 1.859 0.489 -327.670 +115 -1.844 12.661 -329.284 +116 9.936 -10.171 -329.681 +117 2.740 -0.140 -327.708 +118 0.516 14.424 -329.744 +119 3.581 0.667 -327.765 +120 -15.138 -8.100 -330.648 +121 -1.426 14.658 -329.833 +122 -2.616 -6.594 -328.135 +123 -16.823 7.623 -331.139 +124 -19.165 -6.431 -331.865 +125 -6.740 3.161 -328.186 +126 -6.762 -15.619 -330.594 +127 4.525 -6.657 -328.280 +128 -13.148 0.397 -329.380 +129 -13.951 -9.205 -330.485 +130 -14.694 3.044 -329.919 +131 -8.678 7.763 -328.997 +132 4.474 -1.980 -327.871 +133 1.557 -5.014 -327.908 +134 16.419 7.898 -331.042 +135 -0.452 -0.883 -327.643 +136 -6.606 12.253 -329.594 +137 -0.595 8.649 -328.385 +138 -19.975 -2.263 -331.816 +139 -7.218 20.877 -332.732 +140 0.629 -12.489 -329.209 +141 8.827 -2.942 -328.500 +142 5.503 -8.184 -328.608 +143 -1.979 -14.392 -329.772 +144 -6.073 9.342 -328.880 +145 0.279 -7.015 -328.125 +146 -12.269 -0.358 -329.151 +147 3.586 1.315 -327.778 +148 -8.643 -3.721 -328.520 +149 -8.244 -18.577 -331.913 +150 -16.569 -3.421 -330.558 +151 12.584 -8.804 -330.030 +152 5.010 -6.981 -328.371 +153 9.580 17.479 -331.742 +154 5.214 -6.027 -328.267 +155 -12.153 -13.289 -330.960 +156 -6.737 -3.737 -328.226 +157 -1.652 -2.287 -327.712 +158 13.590 0.662 -329.505 +159 -9.568 5.528 -328.859 +160 9.648 -0.167 -328.566 +161 -14.854 -4.601 -330.092 +162 9.293 -8.131 -329.169 +163 19.770 3.293 -331.790 +164 -10.549 9.981 -329.771 +165 -4.543 -11.353 -329.139 +166 -17.321 -14.667 -333.033 +167 1.460 5.256 -327.929 +Hit# X, mm Y, mm Z, mm +0 15.540 15.581 -332.691 +1 -20.095 -6.997 -332.345 +2 0.309 -14.163 -329.665 +3 -20.996 -6.871 -332.733 +4 -3.110 2.564 -327.795 +5 -5.079 -12.269 -329.414 +6 -3.198 -0.663 -327.739 +7 -4.029 -11.297 -329.081 +8 -10.133 7.133 -329.180 +9 -11.542 0.434 -328.975 +10 -7.127 1.775 -328.171 +11 7.504 5.655 -328.517 +12 -9.935 4.713 -328.848 +13 0.198 18.508 -331.155 +14 8.980 11.984 -329.910 +15 -10.737 -19.512 -332.821 +16 1.168 -0.955 -327.656 +17 13.795 -11.014 -330.826 +18 3.016 -16.513 -330.511 +19 4.511 17.351 -330.930 +20 19.942 0.506 -331.749 +21 -8.976 -18.963 -332.208 +22 13.832 1.376 -329.588 +23 -11.458 -6.150 -329.340 +24 6.476 -9.079 -328.883 +25 -0.267 -13.250 -329.407 +26 2.286 -15.849 -330.245 +27 -7.822 11.106 -329.499 +28 -19.104 7.863 -332.062 +29 -7.104 1.894 -328.172 +30 2.894 -21.972 -332.767 +31 3.315 -2.277 -327.794 +32 13.749 -0.017 -329.545 +33 -20.507 9.121 -332.906 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -12.419 -7.519 -329.769 +1 15.780 -6.987 -330.680 +2 10.719 0.537 -328.789 +3 -10.100 14.462 -330.821 +4 7.870 17.711 -331.508 +5 11.223 -4.146 -329.074 +6 -17.417 13.636 -332.747 +7 4.850 2.657 -327.938 +8 6.361 2.371 -328.093 +9 -3.679 18.677 -331.367 +10 14.796 15.504 -332.417 +11 -8.122 -1.490 -328.314 +12 -13.071 1.125 -329.371 +13 -21.142 0.803 -332.289 +14 -11.437 -3.905 -329.104 +15 12.864 12.347 -330.893 +16 -5.749 -12.675 -329.593 +17 5.739 -10.822 -329.144 +18 -4.124 14.854 -330.049 +19 -16.227 8.472 -331.075 +20 3.731 2.583 -327.838 +21 -1.298 1.105 -327.662 +22 5.255 1.079 -327.920 +23 3.788 12.505 -329.356 +24 7.035 14.766 -330.361 +25 2.539 -9.090 -328.525 +26 10.975 2.628 -328.913 +27 2.164 -8.117 -328.338 +28 4.073 -11.487 -329.129 +29 6.863 -11.647 -329.480 +30 -9.944 10.440 -329.740 +31 -16.576 11.427 -331.829 +32 -13.670 5.063 -329.787 +Hit# X, mm Y, mm Z, mm +0 -3.888 -5.071 -328.040 +1 11.390 -13.217 -330.750 +2 -10.498 18.790 -332.460 +3 13.184 -9.435 -330.312 +4 17.893 12.355 -332.565 +5 -2.871 11.373 -329.017 +6 11.240 4.627 -329.121 +7 -0.003 14.473 -329.756 +8 -3.817 13.039 -329.499 +9 -3.204 3.511 -327.858 +10 -2.946 7.102 -328.223 +11 -1.596 -18.810 -331.302 +12 -10.390 -10.315 -329.807 +13 0.972 1.436 -327.663 +14 2.493 -5.295 -327.974 +15 19.542 6.030 -331.969 +16 13.087 -5.771 -329.705 +17 8.859 -2.331 -328.473 +18 6.654 -7.262 -328.605 +19 -1.783 13.174 -329.418 +20 2.351 18.948 -331.390 +21 -5.297 5.540 -328.220 +22 9.035 9.557 -329.380 +23 11.399 -11.825 -330.385 +24 18.395 9.767 -332.138 +25 12.793 -1.004 -329.294 +26 -1.986 -5.236 -327.945 +27 1.622 -8.165 -328.326 +28 -2.631 -21.050 -332.315 +29 12.728 1.605 -329.293 +30 15.072 -15.123 -332.379 +31 9.838 -9.717 -329.567 +32 -3.754 5.400 -328.064 +33 6.393 -0.622 -328.044 +34 -2.402 -0.645 -327.695 +35 0.720 -13.135 -329.380 +36 -10.378 10.293 -329.799 +37 -6.846 -16.967 -331.072 +38 0.713 -3.476 -327.758 +39 -2.441 3.360 -327.805 +40 2.140 6.409 -328.088 +41 1.368 10.400 -328.737 +42 -3.038 5.902 -328.072 +43 3.778 -4.718 -327.997 +44 1.579 8.985 -328.466 +45 16.223 3.014 -330.411 +46 -8.581 -4.379 -328.563 +47 16.047 6.304 -330.674 +48 -13.308 -14.413 -331.608 +49 -13.898 6.246 -329.992 +50 -1.174 -20.365 -331.946 +51 -13.174 -5.382 -329.684 +52 -20.065 0.890 -331.808 +53 7.850 19.156 -332.081 +54 -3.199 3.706 -327.872 +55 -1.335 -4.943 -327.894 +56 -7.591 7.409 -328.762 +57 -19.211 -0.834 -331.446 +58 -0.228 7.099 -328.136 +59 4.014 -1.675 -327.821 +60 -2.128 17.135 -330.683 +61 -9.170 11.348 -329.791 +62 8.257 -11.239 -329.601 +63 3.990 -13.665 -329.686 +64 -7.615 -6.413 -328.626 +65 3.895 3.098 -327.880 +66 -8.837 6.435 -328.823 +67 -2.635 -14.434 -329.816 +68 6.788 7.249 -328.622 +69 -6.526 4.492 -328.260 +70 -5.583 -20.380 -332.277 +71 -2.654 -4.159 -327.875 +72 -2.424 -3.696 -327.828 +73 22.432 3.244 -333.017 +74 6.217 -18.014 -331.375 +75 3.956 13.868 -329.741 +76 -14.821 4.336 -330.057 +77 -12.618 10.299 -330.338 +78 -5.511 -18.509 -331.480 +79 -9.273 3.816 -328.641 +80 -5.814 -1.295 -327.987 +81 -1.663 -22.426 -332.928 +82 6.226 8.953 -328.827 +83 9.750 -15.720 -331.151 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 6.997 -6.958 -328.609 +1 6.746 -7.063 -328.589 +2 12.618 11.960 -330.727 +3 9.747 -7.362 -329.136 +4 -16.800 -12.825 -332.279 +5 18.240 -6.952 -331.567 +6 19.627 -5.172 -331.901 +7 0.368 17.567 -330.795 +8 6.402 -19.747 -332.107 +9 -0.872 -5.409 -327.932 +10 -10.157 -1.259 -328.683 +11 6.643 8.764 -328.848 +12 -1.746 8.397 -328.368 +13 -14.219 6.469 -330.115 +14 -4.230 15.467 -330.252 +15 -15.828 5.954 -330.555 +16 -12.454 11.250 -330.510 +17 7.333 18.928 -331.902 +18 -11.635 7.663 -329.597 +19 3.516 -4.979 -328.003 +20 5.745 -8.878 -328.755 +21 16.600 -9.675 -331.439 +22 16.822 5.586 -330.853 +23 1.782 -6.956 -328.147 +24 -13.911 10.867 -330.826 +25 -7.371 -3.519 -328.300 +26 -14.011 -5.314 -329.912 +27 1.955 -16.320 -330.389 +28 -5.358 14.484 -330.058 +29 -14.144 5.843 -330.013 +30 0.269 1.765 -327.665 +31 18.288 0.826 -331.075 +32 11.860 -4.385 -329.245 +33 6.996 2.741 -328.197 +34 -0.916 -7.090 -328.143 +35 2.881 -2.121 -327.760 +36 2.655 -0.660 -327.708 +37 19.572 2.532 -331.658 +38 5.901 -9.174 -328.828 +39 7.093 7.922 -328.768 +40 -2.090 2.589 -327.743 +41 -1.825 -6.565 -328.096 +42 7.302 5.555 -328.475 +43 9.732 -6.688 -329.036 +44 -8.197 -11.384 -329.625 +45 16.049 -2.954 -330.348 +46 -16.963 -6.550 -331.028 +47 13.265 -16.086 -332.148 +48 9.314 8.667 -329.266 +49 11.182 0.348 -328.891 +50 -11.969 16.400 -331.904 +51 0.937 -3.761 -327.783 +52 18.828 -12.158 -332.891 +53 5.833 1.184 -327.986 +54 -8.018 -6.921 -328.759 +55 5.803 0.120 -327.969 +56 3.027 -19.951 -331.850 +57 -15.155 -10.561 -331.140 +58 4.175 -18.203 -331.221 +59 20.309 8.133 -332.629 +60 6.180 7.155 -328.528 +61 -3.013 13.148 -329.472 +62 -12.315 16.674 -332.094 +63 16.639 -13.260 -332.344 +64 6.255 -16.712 -330.898 +65 -4.689 -6.565 -328.283 +66 7.776 8.193 -328.916 +67 9.338 13.447 -330.366 +68 17.742 3.725 -331.007 +69 0.491 -12.307 -329.162 +70 -5.874 10.520 -329.095 +71 -14.333 -9.768 -330.712 +72 -9.428 -5.161 -328.793 +73 -1.624 -12.339 -329.194 +74 14.898 -4.254 -330.074 +75 -3.786 -7.332 -328.313 +76 -1.150 16.823 -330.538 +77 -12.520 -6.786 -329.687 +78 -7.364 -9.941 -329.175 +79 13.036 5.567 -329.668 +80 0.320 1.087 -327.646 +81 -1.987 9.062 -328.495 +82 -4.405 -4.222 -328.004 +83 2.536 -10.598 -328.825 +84 -5.694 6.682 -328.404 +85 -18.489 -0.879 -331.155 +86 2.913 -7.153 -328.229 +87 14.084 13.151 -331.462 +88 -5.393 4.366 -328.113 +89 1.236 -13.757 -329.563 +90 3.406 -17.097 -330.744 +91 -12.134 8.122 -329.795 +92 -3.864 -9.491 -328.686 +93 0.569 14.417 -329.743 +94 4.682 -3.776 -327.994 +95 12.958 16.824 -332.325 +96 9.740 -0.031 -328.583 +97 17.117 -2.558 -330.698 +98 -17.378 -4.864 -330.975 +99 -12.239 4.084 -329.313 +100 -8.222 -2.684 -328.381 +101 0.534 8.984 -328.443 +102 15.863 8.011 -330.870 +103 10.153 13.377 -330.513 +104 -21.440 3.265 -332.538 +105 -11.484 19.779 -333.121 +106 -11.735 3.985 -329.181 +107 -13.866 -3.304 -329.691 +108 8.983 -4.644 -328.658 +109 8.768 20.032 -332.624 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -0.729 19.176 -331.429 +1 -4.910 -14.389 -329.981 +2 -1.391 -15.879 -330.220 +3 -2.107 14.895 -329.931 +4 -2.636 5.615 -328.016 +5 4.922 11.218 -329.145 +6 -11.199 -3.485 -329.017 +7 11.934 18.759 -332.802 +8 2.770 -6.812 -328.173 +9 -1.507 15.352 -330.052 +10 -10.952 -11.407 -330.178 +11 18.041 -6.856 -331.475 +12 -4.753 -15.238 -330.228 +13 9.224 15.873 -331.096 +14 6.773 -10.854 -329.284 +15 -12.729 3.991 -329.431 +16 -11.030 6.217 -329.250 +17 14.217 -2.444 -329.742 +18 10.384 1.455 -328.736 +19 16.662 -9.526 -331.431 +20 3.840 14.989 -330.067 +21 12.282 -9.149 -330.017 +22 -5.794 -5.069 -328.225 +23 1.758 12.626 -329.272 +24 -8.740 13.305 -330.214 +25 -12.960 5.931 -329.691 +26 20.039 10.125 -332.910 +27 -12.263 6.756 -329.617 +28 -9.654 -8.203 -329.251 +29 15.666 -10.833 -331.371 +30 16.210 11.574 -331.736 +31 -18.949 3.411 -331.456 +32 -13.275 1.940 -329.452 +33 -4.619 21.636 -332.748 +34 -4.322 8.664 -328.572 +35 -5.515 -7.308 -328.472 +36 -4.214 3.004 -327.900 +37 10.367 -1.788 -328.744 +38 -4.062 16.758 -330.675 +39 0.332 -22.779 -333.076 +40 -4.093 -1.534 -327.823 +41 12.863 -3.238 -329.410 +42 2.749 -8.922 -328.506 +43 13.296 -1.185 -329.433 +44 -10.182 13.530 -330.563 +45 -17.849 8.604 -331.692 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 2.621 18.444 -331.203 +1 6.625 12.122 -329.564 +2 -16.871 -9.266 -331.454 +3 -10.137 -1.613 -328.690 +4 -6.620 9.947 -329.070 +5 2.219 -7.243 -328.206 +6 12.099 -2.784 -329.186 +7 -14.890 -8.053 -330.561 +8 -11.100 9.858 -329.869 +9 7.199 -13.985 -330.151 +10 6.447 -2.671 -328.119 +11 -2.885 -13.493 -329.559 +12 -15.266 -3.038 -330.097 +13 4.340 -15.789 -330.367 +14 10.746 -9.107 -329.642 +15 -8.392 4.823 -328.572 +16 2.354 -13.766 -329.607 +17 0.636 8.478 -328.356 +18 2.872 -10.561 -328.836 +19 8.848 9.834 -329.400 +20 -1.625 10.800 -328.831 +21 4.855 3.362 -327.980 +22 5.574 -14.365 -330.046 +23 -10.561 1.798 -328.785 +24 -10.858 -8.182 -329.502 +25 9.119 7.354 -329.014 +26 -0.830 -9.600 -328.563 +27 17.131 0.624 -330.638 +28 12.581 -5.434 -329.532 +29 -12.180 0.959 -329.137 +30 16.473 15.472 -332.984 +31 -17.295 3.852 -330.851 +32 15.976 8.298 -330.958 +33 1.642 5.183 -327.927 +34 9.417 -1.822 -328.554 +35 2.551 -6.751 -328.153 +36 -5.597 -8.985 -328.758 +37 -6.991 -7.941 -328.756 +38 -4.596 -18.936 -331.552 +39 -12.197 -16.136 -331.870 +40 1.308 1.700 -327.679 +41 15.060 -0.505 -329.939 +42 -2.461 -3.796 -327.837 +43 8.140 -13.492 -330.160 +44 13.922 -15.780 -332.237 +45 -8.877 3.043 -328.515 +46 19.773 -4.857 -331.929 +47 -6.396 16.273 -330.763 +48 8.683 18.107 -331.807 +49 2.019 16.790 -330.555 +50 -0.597 22.278 -332.828 +51 -14.043 -13.424 -331.528 +52 2.527 -3.341 -327.808 +53 4.361 -0.210 -327.823 +54 8.914 17.616 -331.661 +55 7.910 -1.825 -328.291 +56 17.023 -1.963 -330.636 +57 -2.479 -17.358 -330.782 +58 8.281 5.707 -328.647 +59 13.738 -12.312 -331.131 +60 -12.033 10.209 -330.168 +61 -16.527 5.731 -330.766 +62 -3.677 13.382 -329.582 +63 -5.567 1.703 -327.971 +64 -16.010 8.459 -330.999 +65 6.727 6.981 -328.575 +66 -7.890 -17.438 -331.409 +67 -6.530 -1.134 -328.071 +68 -17.217 10.109 -331.757 +69 -12.289 -3.347 -329.269 +70 11.639 -4.359 -329.190 +71 11.017 2.428 -328.912 +72 4.946 -2.405 -327.934 +73 -0.982 1.146 -327.656 +74 -2.873 13.702 -329.617 +75 2.901 -18.060 -331.070 +76 -4.389 15.176 -330.173 +77 4.951 2.610 -327.945 +78 3.172 -2.652 -327.803 +79 21.118 0.495 -332.274 +80 -7.904 -18.088 -331.660 +81 -11.540 -12.945 -330.711 +82 -17.285 -5.883 -331.057 +83 -3.666 -3.447 -327.885 +84 3.198 -8.866 -328.522 +85 3.617 -3.965 -327.920 +86 0.043 5.213 -327.904 +87 -16.797 4.132 -330.695 +88 -8.804 9.299 -329.287 +89 -4.628 12.102 -329.327 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 3.460 2.402 -327.810 +1 12.150 -10.717 -330.308 +2 -6.416 -6.579 -328.478 +3 6.068 -8.352 -328.702 +4 -1.310 -2.758 -327.726 +5 -16.206 11.315 -331.671 +6 1.008 -10.419 -328.732 +7 -1.208 12.758 -329.290 +8 10.038 -11.653 -330.037 +9 1.207 9.213 -328.497 +10 -8.085 -14.224 -330.363 +11 -1.560 -2.059 -327.700 +12 -1.803 11.871 -329.085 +13 0.934 -20.322 -331.922 +14 -0.091 -7.676 -328.221 +15 -5.647 6.526 -328.378 +16 -6.557 -5.845 -328.405 +17 -11.311 0.849 -328.926 +18 -11.181 -4.650 -329.110 +19 -5.120 6.128 -328.270 +20 11.342 -6.879 -329.410 +21 -16.050 1.868 -330.294 +22 -5.115 17.467 -331.034 +23 0.785 -12.876 -329.312 +24 -2.902 19.321 -331.575 +25 -5.048 -15.236 -330.257 +26 3.643 -11.398 -329.074 +27 -18.606 10.046 -332.283 +28 16.425 -4.545 -330.602 +29 5.861 -7.883 -328.600 +30 10.209 15.828 -331.285 +31 -19.714 -8.324 -332.402 +32 1.429 1.586 -327.679 +33 14.425 2.456 -329.804 +34 -14.764 -14.465 -332.067 +35 -7.232 -19.232 -332.012 +36 2.825 -8.764 -328.482 +37 -1.390 -13.093 -329.384 +38 2.757 -0.936 -327.717 +39 11.439 -8.069 -329.616 +40 -4.607 -8.036 -328.492 +41 -7.388 5.801 -328.516 +42 1.228 -5.958 -328.002 +43 -10.047 -10.034 -329.675 +44 -0.885 -11.978 -329.085 +45 -10.102 2.633 -328.726 +46 5.314 -9.454 -328.814 +47 17.841 1.155 -330.911 +48 4.829 -4.694 -328.085 +49 -1.160 -17.809 -330.899 +50 2.412 2.456 -327.751 +51 -17.889 4.294 -331.111 +52 4.819 14.566 -330.025 +53 1.626 -9.886 -328.639 +54 8.193 0.883 -328.312 +55 10.975 12.672 -330.503 +56 -18.479 2.440 -331.207 +57 13.813 -15.350 -332.058 +58 -11.123 2.835 -328.958 +59 3.950 -14.761 -330.006 +60 -0.644 -12.644 -329.249 +61 -16.186 2.921 -330.392 +62 0.381 -12.554 -329.223 +63 -14.780 -8.023 -330.522 +64 8.598 2.515 -328.436 +65 13.917 2.956 -329.683 +66 4.874 -16.796 -330.765 +67 -2.861 -13.631 -329.596 +68 16.322 9.876 -331.384 +69 10.008 2.891 -328.722 +70 -2.091 19.206 -331.483 +71 -4.860 2.207 -327.917 +72 -8.044 -12.553 -329.889 +73 0.132 -18.201 -331.035 +74 17.404 -9.748 -331.749 +75 17.428 13.085 -332.589 +76 10.203 16.221 -331.418 +77 -8.092 -2.690 -328.360 +78 -8.627 10.754 -329.556 +79 -18.104 -3.886 -331.158 +80 8.968 -10.708 -329.607 +81 0.632 -7.895 -328.260 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 16.532 -0.168 -330.422 +1 18.311 -1.164 -331.092 +2 1.817 -0.384 -327.668 +3 6.705 -4.356 -328.272 +4 12.293 -15.349 -331.628 +5 -5.609 20.947 -332.537 +6 -6.243 -11.740 -329.419 +7 5.802 -9.803 -328.937 +8 15.102 2.323 -330.005 +9 -4.412 18.383 -331.313 +10 -6.237 -9.378 -328.908 +11 -18.212 6.175 -331.446 +12 -12.394 10.340 -330.288 +13 8.777 -12.919 -330.114 +14 -11.132 -5.488 -329.185 +15 -13.201 -2.215 -329.443 +16 2.619 -8.859 -328.487 +17 18.933 12.750 -333.099 +18 8.623 14.971 -330.687 +19 -16.791 -14.486 -332.774 +20 7.178 2.460 -328.208 +21 7.566 0.286 -328.205 +22 -1.099 1.856 -327.679 +23 -10.595 1.401 -328.779 +24 11.808 1.653 -329.064 +25 11.132 2.137 -328.925 +26 1.205 1.638 -327.674 +27 10.171 11.788 -330.098 +28 8.301 12.037 -329.801 +29 -0.275 -7.368 -328.175 +30 5.045 18.789 -331.539 +31 15.621 -8.408 -330.859 +32 -20.787 -2.867 -332.209 +33 -17.761 9.450 -331.823 +34 4.318 -14.970 -330.102 +35 -4.190 -13.082 -329.542 +36 8.877 1.727 -328.451 +37 -4.281 18.953 -331.529 +38 -7.902 -2.198 -328.305 +39 -4.765 -6.898 -328.335 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 15.021 -3.009 -330.018 +1 3.068 -20.990 -332.315 +2 3.616 -18.365 -331.238 +3 -11.870 -5.016 -329.309 +4 10.899 0.379 -328.827 +5 8.443 -3.457 -328.466 +6 1.334 1.676 -327.679 +7 2.143 7.302 -328.211 +8 8.730 -4.781 -328.626 +9 15.867 -13.734 -332.210 +10 -3.482 -12.925 -329.443 +11 -0.910 -10.568 -328.762 +12 -4.143 10.522 -328.918 +13 13.067 10.061 -330.408 +14 0.438 7.074 -328.134 +15 4.296 -18.830 -331.481 +16 14.739 -15.117 -332.269 +17 -2.899 -9.882 -328.697 +18 6.219 1.363 -328.037 +19 12.577 -3.579 -329.359 +20 -6.823 -2.665 -328.169 +21 21.120 -6.367 -332.717 +22 3.484 -8.126 -328.415 +23 -20.635 5.964 -332.440 +24 -1.032 1.310 -327.661 +25 -4.464 -13.836 -329.776 +26 9.274 -0.983 -328.504 +27 3.834 6.591 -328.213 +28 19.224 -0.858 -331.452 +29 -15.139 -6.322 -330.378 +30 9.435 1.234 -328.540 +31 1.777 7.143 -328.174 +32 -13.699 0.377 -329.532 +33 -4.116 7.139 -328.312 +34 8.608 -2.475 -328.436 +35 4.409 7.862 -328.446 +36 14.138 -3.900 -329.814 +37 -2.004 -21.671 -332.574 +38 21.131 -5.123 -332.565 +39 22.032 -1.666 -332.734 +40 15.073 -2.025 -329.983 +41 0.473 -7.229 -328.157 +42 5.092 13.307 -329.689 +43 4.815 -15.549 -330.334 +44 -5.515 0.881 -327.944 +45 8.038 -4.829 -328.513 +46 2.410 -6.676 -328.136 +47 -2.764 14.433 -329.823 +48 -4.286 4.447 -328.013 +49 12.847 5.051 -329.560 +50 7.657 -10.389 -329.314 +51 -20.092 3.219 -331.923 +52 0.861 -18.711 -331.243 +53 6.069 -6.224 -328.389 +54 3.350 -3.067 -327.838 +55 -3.683 -1.477 -327.790 +56 15.046 10.904 -331.184 +57 6.139 15.393 -330.436 +58 12.061 5.901 -329.455 +59 -3.516 6.326 -328.156 +60 -18.062 6.445 -331.424 +61 13.510 3.616 -329.613 +62 2.518 2.928 -327.782 +63 -13.714 15.547 -332.094 +64 21.228 5.246 -332.624 +65 -1.902 21.319 -332.404 +66 10.446 -5.140 -328.996 +67 7.828 12.941 -329.956 +68 3.476 4.034 -327.915 +69 9.940 -1.597 -328.649 +70 11.073 -16.084 -331.570 +71 13.601 -8.268 -330.213 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -11.033 1.775 -328.888 +1 22.433 3.946 -333.074 +2 -10.961 -12.255 -330.391 +3 -11.416 -4.600 -329.159 +4 17.993 -6.592 -331.418 +5 -10.413 3.519 -328.846 +6 3.161 8.007 -328.374 +7 -12.470 6.867 -329.686 +8 6.032 -6.881 -328.471 +9 -14.504 -5.292 -330.056 +10 9.204 -8.303 -329.181 +11 -7.363 6.221 -328.564 +12 19.332 -1.223 -331.505 +13 -11.035 -0.741 -328.862 +14 -12.864 15.520 -331.840 +15 2.201 11.862 -329.099 +16 -7.987 7.151 -328.787 +17 3.955 -20.559 -332.187 +18 5.219 -5.200 -328.175 +19 9.378 -4.635 -328.731 +20 1.902 -11.066 -328.900 +21 1.434 -12.010 -329.106 +22 -3.661 -6.024 -328.129 +23 -9.561 -8.962 -329.367 +24 8.066 3.860 -328.433 +25 -5.639 12.140 -329.444 +26 13.084 12.524 -331.000 +27 15.352 6.760 -330.507 +28 -10.620 -7.461 -329.333 +29 20.789 -0.889 -332.129 +30 7.610 9.429 -329.111 +31 3.050 -14.788 -329.948 +32 14.932 -4.224 -330.082 +33 1.127 -11.285 -328.926 +34 10.962 -10.886 -330.060 +35 -1.884 -18.368 -331.137 +36 1.722 -10.403 -328.749 +37 4.330 -4.222 -327.998 +38 3.704 7.578 -328.344 +39 -10.395 -5.492 -329.024 +40 8.926 10.810 -329.622 +41 5.867 -8.602 -328.721 +42 -7.486 -4.714 -328.416 +43 -3.130 20.091 -331.917 +44 13.467 -5.685 -329.800 +45 14.464 -1.335 -329.772 +46 -16.030 2.341 -330.308 +47 4.338 13.490 -329.667 +48 1.493 -2.210 -327.704 +49 8.957 -1.641 -328.463 +50 -0.985 -10.849 -328.825 +Hit# X, mm Y, mm Z, mm +0 20.904 -0.372 -332.174 +1 3.598 -16.214 -330.449 +2 6.894 -17.449 -331.255 +3 -9.773 5.269 -328.872 +4 -4.590 -16.827 -330.747 +5 6.479 11.868 -329.481 +6 15.758 2.244 -330.213 +7 -11.815 -0.888 -329.046 +8 5.242 11.588 -329.265 +9 12.987 12.350 -330.927 +10 3.606 -10.401 -328.850 +11 -17.994 -7.153 -331.501 +12 12.841 -6.674 -329.756 +13 16.738 12.722 -332.228 +14 8.296 -0.294 -328.322 +15 -6.164 6.735 -328.467 +16 -3.079 13.450 -329.559 +17 13.348 -8.760 -330.229 +18 -8.074 -19.020 -332.064 +19 6.380 2.896 -328.123 +20 3.128 -19.154 -331.520 +21 -7.113 4.884 -328.377 +22 -14.130 1.202 -329.669 +23 0.045 15.155 -329.966 +24 7.176 18.192 -331.582 +25 0.891 14.931 -329.904 +26 -2.834 8.538 -328.443 +27 13.740 -13.084 -331.341 +28 19.132 8.497 -332.187 +29 6.810 11.400 -329.414 +30 0.227 -15.259 -329.999 +31 -20.482 8.656 -332.804 +32 -12.746 -4.427 -329.473 +33 -2.417 17.795 -330.941 +34 3.247 13.952 -329.712 +35 20.971 7.825 -332.877 +36 -0.263 3.896 -327.785 +37 -20.635 0.300 -332.052 +38 -17.149 2.056 -330.685 +39 10.059 -7.256 -329.183 +40 5.738 -1.984 -328.000 +41 -1.012 1.460 -327.665 +42 6.735 3.523 -328.210 +43 11.937 9.337 -329.966 +44 3.137 -10.459 -328.830 +45 -8.559 -7.762 -328.976 +46 -10.013 -6.331 -329.045 +47 -6.352 0.588 -328.039 +48 6.388 -0.720 -328.045 +49 8.482 4.580 -328.564 +50 -1.497 0.938 -327.664 +51 -8.039 6.549 -328.711 +52 7.300 -19.979 -332.342 +53 -4.649 -5.614 -328.163 +54 15.202 13.177 -331.823 +55 -4.344 13.053 -329.547 +56 -11.552 -8.970 -329.802 +57 3.446 18.301 -331.200 +58 16.317 6.872 -330.846 +59 -21.869 6.623 -333.111 +60 2.685 -8.252 -328.386 +61 11.362 2.365 -328.988 +62 11.540 -3.871 -329.125 +63 17.569 13.313 -332.709 +64 -8.065 -10.212 -329.342 +65 -0.012 15.019 -329.923 +66 9.006 20.248 -332.767 +67 -13.993 8.683 -330.400 +68 -2.552 3.560 -327.824 +69 6.786 -9.644 -329.032 +70 9.201 2.105 -328.525 +71 -0.969 -2.575 -327.708 +72 -2.047 -1.959 -327.713 +73 -2.349 2.839 -327.768 +74 9.311 -2.286 -328.554 +75 20.174 6.292 -332.278 +76 -21.672 -5.075 -332.815 +77 0.194 -7.507 -328.196 +78 1.178 11.237 -328.916 +79 3.196 -19.512 -331.673 +80 -13.048 1.397 -329.372 +81 15.539 11.584 -331.509 +82 -1.418 5.358 -327.939 +83 -3.980 19.841 -331.874 +84 0.819 10.052 -328.653 +85 -6.920 2.513 -328.174 +86 -13.983 -7.673 -330.224 +87 12.167 -15.963 -331.802 +88 -12.378 0.551 -329.180 +89 -19.446 1.872 -331.574 +90 -6.810 -10.938 -329.308 +91 -13.757 -17.251 -332.720 +92 16.431 2.915 -330.476 +93 -4.029 11.227 -329.065 +94 3.647 -19.707 -331.789 +95 15.971 10.614 -331.424 +96 16.540 -12.748 -332.163 +97 -6.137 -7.604 -328.590 +98 10.848 0.299 -328.816 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -1.566 13.904 -329.614 +1 6.882 14.358 -330.214 +2 16.775 6.420 -330.942 +3 7.033 -1.356 -328.145 +4 3.679 -13.383 -329.582 +5 0.662 -20.517 -332.003 +6 16.161 16.047 -333.072 +7 -4.105 -3.434 -327.918 +8 3.672 -6.211 -328.153 +9 -11.906 -5.574 -329.378 +10 1.364 0.049 -327.652 +11 -7.273 -9.441 -329.063 +12 -10.956 -2.330 -328.894 +13 3.268 -3.499 -327.861 +14 0.063 -11.419 -328.944 +15 -14.823 -4.652 -330.088 +16 -6.325 1.928 -328.069 +17 8.131 16.004 -330.938 +18 -3.604 -19.346 -331.634 +19 9.113 -8.131 -329.136 +20 -11.131 16.162 -331.611 +21 17.628 5.270 -331.111 +22 -3.416 9.329 -328.622 +23 -1.290 6.316 -328.047 +24 -5.443 -16.219 -330.626 +25 18.027 3.925 -331.132 +26 1.415 -8.504 -328.376 +27 0.460 6.795 -328.096 +28 1.556 10.042 -328.668 +29 -5.543 -17.425 -331.067 +30 -8.854 2.067 -328.460 +31 13.140 2.136 -329.423 +32 -11.165 8.630 -329.649 +33 2.593 18.826 -331.354 +34 -11.383 -6.459 -329.362 +35 -11.728 -0.543 -329.020 +36 -15.077 16.604 -332.899 +37 15.283 -2.520 -330.073 +38 -4.008 -3.329 -327.903 +39 1.253 8.460 -328.364 +40 7.429 -8.074 -328.842 +41 6.389 -7.546 -328.613 +42 5.792 -1.348 -327.985 +43 -7.270 -11.134 -329.419 +44 12.857 7.643 -329.904 +45 0.761 11.762 -329.031 +46 -0.015 -3.131 -327.731 +47 -10.889 9.630 -329.775 +48 12.690 -5.207 -329.536 +49 10.863 -17.688 -332.106 +50 -5.825 0.140 -327.971 +51 1.285 -21.267 -332.358 +52 -7.564 -9.571 -329.132 +53 -14.654 -9.561 -330.768 +54 5.994 -11.243 -329.270 +55 4.966 1.617 -327.905 +56 -14.778 -3.336 -329.964 +57 21.234 -0.845 -332.333 +58 3.251 -17.560 -330.903 +59 -1.801 4.228 -327.843 +60 -6.108 9.584 -328.931 +61 3.241 4.125 -327.907 +62 9.359 -16.361 -331.291 +63 -12.305 -8.849 -329.966 +64 -18.159 2.545 -331.087 +65 -11.237 -0.507 -328.905 +66 1.562 -15.705 -330.168 +67 12.230 1.743 -329.171 +68 16.057 -16.236 -333.103 +69 9.352 -15.792 -331.094 +70 -7.290 5.390 -328.455 +71 -3.402 8.423 -328.459 +72 8.836 -11.189 -329.692 +73 14.581 16.164 -332.577 +74 -7.732 8.993 -329.049 +75 6.918 -20.337 -332.440 +76 -4.151 -3.057 -327.898 +77 -3.465 4.555 -327.959 +78 -7.069 -13.388 -329.961 +79 -2.220 8.963 -328.486 +80 0.475 -3.071 -327.729 +81 13.271 8.013 -330.077 +82 1.890 18.103 -331.035 +83 1.485 22.065 -332.744 +84 -1.488 6.063 -328.021 +85 -4.940 -5.931 -328.228 +86 -5.356 2.389 -327.976 +87 -18.062 0.707 -330.986 +88 -6.476 -3.097 -328.147 +89 -5.252 -13.603 -329.789 +90 -6.457 7.871 -328.672 +91 -1.674 -1.289 -327.678 +92 2.830 -14.510 -329.850 +Hit# X, mm Y, mm Z, mm +Hit# X, mm Y, mm Z, mm +0 -11.144 4.505 -329.088 +1 -1.559 -5.883 -328.002 +2 6.922 15.807 -330.679 +3 9.018 9.419 -329.349 +4 -0.538 1.471 -327.658 +5 0.113 -11.619 -328.991 +6 -3.639 -3.028 -327.856 +7 -4.366 -0.053 -327.823 +8 4.249 15.030 -330.114 +9 1.143 -1.029 -327.657 +10 -12.478 -8.188 -329.894 +11 -2.432 -19.967 -331.821 +12 -8.768 3.774 -328.546 +13 -3.994 -14.877 -330.045 +14 15.280 -14.658 -332.297 +15 -2.256 -5.544 -327.990 +16 -12.068 -8.961 -329.927 +17 -4.848 -11.829 -329.282 +18 7.273 -10.764 -329.336 +19 -9.902 2.821 -328.696 +20 -2.595 -12.661 -329.319 +21 15.313 13.957 -332.078 +22 -2.264 -12.391 -329.233 +23 -16.828 -3.812 -330.679 +24 -21.034 4.822 -332.487 +25 21.718 -6.632 -333.039 +26 -9.820 -17.585 -331.833 +27 -5.884 -6.052 -328.345 +28 6.522 18.929 -331.780 +29 16.550 8.015 -331.108 +30 -4.919 4.029 -328.036 +31 -19.624 -3.024 -331.710 +32 -6.134 -6.914 -328.488 +33 -5.416 1.278 -327.941 +34 11.984 -8.014 -329.739 +35 10.572 11.318 -330.072 +36 -12.630 -3.657 -329.379 +37 20.414 2.387 -332.015 +38 -15.577 9.290 -331.010 +39 6.244 3.367 -328.135 +40 7.757 13.956 -330.229 +41 -2.898 -6.288 -328.111 +42 5.632 15.826 -330.515 +43 -19.376 -2.553 -331.577 +44 -2.439 3.174 -327.792 +45 -4.656 3.519 -327.972 +46 -2.473 2.043 -327.735 +47 2.560 -7.789 -328.305 +48 18.062 5.926 -331.356 +49 6.382 6.845 -328.510 +50 -14.274 5.651 -330.028 +51 -6.763 18.713 -331.727 +52 10.170 -6.228 -329.064 +53 3.081 7.458 -328.284 +54 -6.414 8.251 -328.729 +55 16.216 5.498 -330.631 +56 9.006 -14.641 -330.655 +57 11.376 2.669 -329.007 +58 -1.303 -8.861 -328.436 +59 -15.015 -9.047 -330.780 +60 -13.956 -15.017 -331.991 +61 12.539 10.143 -330.283 +62 0.266 8.881 -328.423 +63 11.038 -1.024 -328.867 +64 13.527 -13.089 -331.280 +65 -2.409 -0.937 -327.700 +66 -7.257 11.843 -329.585 +67 -7.803 9.617 -329.179 +68 7.824 6.703 -328.698 +69 3.075 3.064 -327.821 +70 14.111 -5.440 -329.956 +71 -4.026 -5.013 -328.045 +72 -3.574 14.719 -329.963 +73 10.360 15.384 -331.170 +74 4.669 12.125 -329.337 +75 9.314 10.171 -329.557 +76 -9.628 -5.519 -328.870 +77 -4.189 -12.996 -329.518 +78 6.492 -2.286 -328.105 +79 -12.822 13.576 -331.220 +80 3.364 1.528 -327.769 +81 0.878 12.381 -329.186 +82 1.323 9.259 -328.509 +83 -3.495 11.194 -329.017 +84 17.787 10.100 -331.971 +85 -5.133 21.297 -332.643 +86 13.063 -13.058 -331.140 +87 2.428 14.189 -329.733 +88 0.316 -8.156 -328.299 +89 0.612 13.460 -329.468 +90 -7.523 14.553 -330.370 +91 -2.911 10.196 -328.761 +92 -4.710 -3.195 -327.956 +93 -2.077 0.455 -327.678 +94 3.925 20.818 -332.302 +95 -1.440 16.162 -330.317 +96 18.972 -0.875 -331.349 +97 9.375 8.711 -329.285 +98 -7.458 14.132 -330.233 +99 -1.730 19.662 -331.659 +100 -8.091 -3.941 -328.443 +101 -7.813 5.788 -328.580 +102 -11.866 -6.280 -329.454 +103 -1.348 6.455 -328.067 +104 -4.658 6.260 -328.241 +105 -0.634 13.048 -329.356 +106 15.983 -3.089 -330.335 +107 6.729 -11.648 -329.462 +108 16.825 -3.962 -330.690 +109 3.543 -16.547 -330.559 +110 3.703 -20.306 -332.054 +111 -7.856 -1.876 -328.285 +112 -2.316 13.271 -329.467 +113 -0.155 -8.383 -328.336 +114 12.578 9.765 -330.215 +115 6.924 -3.974 -328.270 +116 -11.350 1.813 -328.961 +117 -0.051 -8.382 -328.335 +118 2.363 -1.607 -327.714 +119 7.343 15.614 -330.679 +120 -5.609 5.491 -328.248 diff --git a/examples/advanced/underground_physics/stt_ref.out b/examples/advanced/underground_physics/stt_ref.out new file mode 100644 index 0000000000..97876026f4 --- /dev/null +++ b/examples/advanced/underground_physics/stt_ref.out @@ -0,0 +1,34 @@ +Evt Eprim Etot LXe LXeTime PMT PMTTime Seed1 Seed2 First Flags +# MeV MeV hits ns hits ns hit + +4 0.0600 0.0600 50 3.5e-05 94 42.28 1968182446 1716537691 gamma gamma electron +9 0.0600 0.0302 22 9.3e-05 45 39.42 178687722 2075812368 gamma gamma electron +11 0.0600 0.0302 28 1.9e-06 68 52.34 1887574559 2004746208 gamma gamma electron +14 0.0600 0.0432 24 4.5e-06 66 52.63 615495875 1550302978 gamma gamma electron +16 0.0600 0.0302 24 9.6e-06 34 52.27 2061184466 700290657 gamma gamma electron +23 0.0600 0.0264 14 1.2e-05 42 45.27 128197683 1449164024 gamma gamma electron +25 0.0600 0.0600 44 2e-05 95 46.82 1805119302 254041340 gamma gamma electron +26 0.0600 0.0600 34 3.3e-05 100 43.49 1414849669 1507485379 gamma gamma electron +31 0.0600 0.0600 52 1.7e-07 95 49.62 455884283 1106002838 gamma gamma electron +33 0.0600 0.0202 11 3.4e-05 27 37.78 293111776 1509497695 e- electron +36 0.0600 0.0600 34 9e-06 81 45.2 1113936874 802740258 gamma gamma electron +39 0.0600 0.0434 30 5.7e-06 69 48.18 519976615 1289900628 gamma gamma electron +42 0.0600 0.0600 28 1.3e-05 88 51.3 253648055 253013954 gamma gamma electron +43 0.0600 0.0600 40 0.0013 97 48.36 93680843 1105969111 gamma gamma electron +45 0.0600 0.0249 24 6.4e-05 32 50.97 637472031 271358370 e- gamma electron +46 0.0600 0.0600 40 0.00022 93 48.89 1165413488 278736840 gamma gamma electron +54 0.0600 0.0600 40 0.0022 120 50.61 1931680802 890037979 gamma gamma electron +55 0.0600 0.0600 29 0.0028 168 42.32 372700570 648216116 gamma gamma electron +56 0.0600 0.0305 20 2.3e-05 34 43.34 1905824942 388731321 gamma gamma electron +64 0.0600 0.0264 16 1.4e-05 33 49.87 1227902049 1012831664 gamma gamma electron +65 0.0600 0.0600 38 1.4e-05 84 47.71 502031473 675989546 gamma gamma electron +68 0.0600 0.0600 26 4.3e-06 110 40.51 1768166508 1399241399 gamma gamma electron +71 0.0600 0.0302 20 3.6e-06 46 52.45 1741221984 1907494518 gamma gamma electron +79 0.0600 0.0600 44 7.1e-06 90 44.69 180521426 1813575673 gamma gamma electron +82 0.0600 0.0600 41 4e-06 82 36.8 403119455 777773439 gamma gamma electron +84 0.0600 0.0302 26 1.1e-05 40 50.64 521537416 569971182 gamma gamma electron +86 0.0600 0.0600 33 1.2e-05 72 50.05 2096784665 1984097227 gamma gamma electron +93 0.0600 0.0305 22 0.00012 51 57.23 1417887897 950369683 gamma gamma electron +94 0.0600 0.0600 46 4.5e-06 99 41.94 589398397 1903169467 gamma gamma electron +97 0.0600 0.0600 36 1e-05 93 44.53 199563742 172511666 gamma gamma electron +99 0.0600 0.0600 56 5.2e-06 121 52.02 1379954648 783304824 gamma gamma electron diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh index dd0a9571aa..37297b47b4 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoAnalysisManager.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -30,6 +30,7 @@ // ----------- // 30 Nov 2001 Guy Barrand : migrate to AIDA-2.2. // 28 Nov 2001 Elena Guardincerri Created +// 29 Nov 2002 mgration to AIDA 3.0 (Alfonso.mantero@ge.infn.it) // // ------------------------------------------------------------------- @@ -43,16 +44,20 @@ #include "g4std/vector" #include "G4ThreeVector.hh" #include "XrayFluoDataSet.hh" - +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" +#include "XrayFluoAnalysisMessenger.hh" class G4Step; //class XrayFluoEventAction; +namespace AIDA { class IAnalysisFactory; class IHistogramFactory; class ITree; class ITupleFactory; class ITuple; +}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -72,35 +77,51 @@ public: //fill histograms with data from XrayFluoEventAction void analyseEnergyDep(G4double eDep); - //fill histograms with data from XrayFluoPrimarygeneratoraction + //fill histograms with data from XrayFluoPrimarygeneratorAction void analysePrimaryGenerator(G4double energy); //method to call to create an instance of this class static XrayFluoAnalysisManager* getInstance(); - G4double XrayFluoAnalysisManager::ResponseFunction(G4double energy); + //method intended to chenge the name of the hbook output file + void SetOutputFileName(G4String); private: //private constructor in order to create a singleton + + XrayFluoAnalysisManager(); + G4String outputFileName; + static XrayFluoAnalysisManager* instance; //pointer to the analysis messenger - + XrayFluoAnalysisMessenger* analisysMessenger; + //XrayFluoEventAction* pEvent; - IAnalysisFactory* analysisFactory; - ITree* tree; + AIDA::IAnalysisFactory* analysisFactory; + AIDA::ITree* tree; - IHistogramFactory *histogramFactory; - ITupleFactory* tupleFactory; - - - ITuple* tuple; + AIDA::IHistogramFactory *histogramFactory; + // ITupleFactory* tupleFactory; + // ITuple* tuple; + AIDA::IHistogram1D* histo_1; + AIDA::IHistogram1D* histo_2; + AIDA::IHistogram1D* histo_3; + AIDA::IHistogram1D* histo_4; + AIDA::IHistogram1D* histo_5; + AIDA::IHistogram1D* histo_6; + AIDA::IHistogram1D* histo_7; + AIDA::IHistogram1D* histo_8; + AIDA::IHistogram1D* histo_9; + AIDA::IHistogram1D* histo_10; + AIDA::IHistogram1D* histo_12; + AIDA::IHistogram1D* histo_11; }; #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh index b62519d9b1..391d3b26e1 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisMessenger.hh @@ -22,9 +22,10 @@ // // // $Id: XrayFluoAnalysisMessenger.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) +// 29 Nov 2002 minor updates (Alfonso.mantero@ge.infn.it) // // History: // ----------- @@ -51,7 +52,10 @@ class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4UIcmdWithAString; class XrayFluoAnalysisMessenger: public G4UImessenger + { public: XrayFluoAnalysisMessenger(XrayFluoAnalysisManager* ); @@ -62,9 +66,12 @@ public: private: //pointer to XrayFluoAnalysisManager - XrayFluoAnalysisManager* XrayFluoAnalysis; - G4UIdirectory* XrayFluoAnalysisDir; - + XrayFluoAnalysisManager* xrayFluoAnalysis; + G4UIdirectory* XrayFluoAnalysisDir; + G4UIcmdWithAString* ouputFileCommand; + }; #endif #endif + + diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh index 716a2b7bf5..67069df8af 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoDataSet.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh index 8ad627f87b..e7975bcdb8 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoDetectorConstruction.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -60,6 +60,8 @@ public: G4VPhysicalVolume* Construct(); void UpdateGeometry(); + + void SetSampleMaterial(G4String newMaterial); public: @@ -141,6 +143,23 @@ private: G4Material* Dia1Material; G4Material* Dia3Material; G4Material* defaultMaterial; + + G4Material* dolorite; + G4Material* FeMaterial; + G4Material* Al; + G4Material* Si; + G4Material* Cu; + G4Material* HPGe; + G4Material* materialMg; + G4Material* materialNd; + G4Material* Sn; + G4Material* Ti; + + + + + + G4double OhmicPosThickness; G4double OhmicNegThickness; @@ -221,6 +240,7 @@ private: //calculates some quantities used to construct geometry void ComputeApparateParameters(); + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorMessenger.hh index 96cca8469a..635bf037f1 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorMessenger.hh @@ -22,13 +22,14 @@ // // // $Id: XrayFluoDetectorMessenger.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // // History: // ----------- // 28 Nov 2001 Elena Guardincerri Created +// 29 Nov 2002 change of sample material added (Alfonso.mantero@ge.infn.it) // // ------------------------------------------------------------------- @@ -59,6 +60,8 @@ class XrayFluoDetectorMessenger: public G4UImessenger G4UIdirectory* detDir; G4UIcmdWithoutParameter* UpdateCmd; + G4UIcmdWithAString* sampleCmd; + }; #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh index b571d3f51d..ab805d11be 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoEventAction.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoEventActionMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoEventActionMessenger.hh index 466875e3bd..297c2c063a 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoEventActionMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoEventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoEventActionMessenger.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoHPGeSD.hh b/examples/advanced/xray_fluorescence/include/XrayFluoHPGeSD.hh index 7ba6d14c29..402a4b0e79 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoHPGeSD.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoHPGeSD.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoHPGeSD.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoNormalization.hh b/examples/advanced/xray_fluorescence/include/XrayFluoNormalization.hh index 2e8a0f9591..1f61d86507 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoNormalization.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoNormalization.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoNormalization.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh index f7bd8ab949..f9fe9b298d 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPhysicsList.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh index 010db96662..b48d9adddc 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPhysicsListMessenger.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorAction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorAction.hh index 1f41613451..bcff08f435 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorAction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPrimaryGeneratorAction.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh index aac0b99269..7425917d56 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPrimaryGeneratorMessenger.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoRunAction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoRunAction.hh index bff70b2645..16b9a63458 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoRunAction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoRunAction.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoSensorHit.hh b/examples/advanced/xray_fluorescence/include/XrayFluoSensorHit.hh index 0d80af6263..6a539eb45c 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoSensorHit.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoSensorHit.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoSensorHit.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoSteppingAction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoSteppingAction.hh index 1eafec51d5..05dfef645d 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoSteppingAction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoSteppingAction.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoSteppingVerbose.hh b/examples/advanced/xray_fluorescence/include/XrayFluoSteppingVerbose.hh index 23ca2ece74..5ef4de87bc 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoSteppingVerbose.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoSteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoSteppingVerbose.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoVisManager.hh b/examples/advanced/xray_fluorescence/include/XrayFluoVisManager.hh index 60688fdce8..b83ffcafe2 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoVisManager.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: XrayFluoVisManager.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc index 8e3c02eba8..da50ee240b 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoAnalysisManager.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -31,9 +31,11 @@ // 06 Dec 2001 A.Pfeiffer updated for singleton // 30 Nov 2001 Guy Barrand : migrate to AIDA-2.2. // 28 Nov 2001 Elena Guardincerri Created -// +// 29 Nov 2002 Muigration to AIDA 3.0 (Alfonso.mantero@ge.infn.it) + // ------------------------------------------------------------------- #include +#include "G4VProcess.hh" #include "g4std/fstream" #include "G4ios.hh" #include "AIDA/IManagedObject.h" @@ -42,6 +44,7 @@ #include "AIDA/ITree.h" #include "AIDA/IHistogramFactory.h" #include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" #include "AIDA/ITupleFactory.h" #include "AIDA/ITuple.h" @@ -55,23 +58,26 @@ XrayFluoAnalysisManager* XrayFluoAnalysisManager::instance = 0; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoAnalysisManager::XrayFluoAnalysisManager() - :analysisFactory(0), tree(0),histogramFactory(0) ,tupleFactory(0) + :outputFileName("xrayfluo.hbk"),analysisFactory(0), tree(0),histogramFactory(0) { // pEvent=new XrayFluoEventAction(); + analisysMessenger = new XrayFluoAnalysisMessenger(this); // Hooking an AIDA compliant analysis system. analysisFactory = AIDA_createAnalysisFactory(); if(analysisFactory) { - ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); + AIDA::ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); if(treeFactory) { // tree = treeFactory->create(); // Tree in memory. - tree = treeFactory->create("XrayFluo.hbk",false,false,"hbook"); + //porebbe essere qua il memory leak// + + tree = treeFactory->create(outputFileName,"hbook",false,true); delete treeFactory; // Will not delete the ITree. - histogramFactory = analysisFactory->createHistogramFactory(*tree); - tupleFactory = analysisFactory->createTupleFactory(*tree); + histogramFactory = analysisFactory->createHistogramFactory(*tree); + // tupleFactory = analysisFactory->createTupleFactory(*tree); } /* @@ -90,32 +96,37 @@ XrayFluoAnalysisManager::XrayFluoAnalysisManager() delete plotterFactory; } */ - } + } + + G4cout << "XrayFluoAnalysisManager created" << G4endl; + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoAnalysisManager::~XrayFluoAnalysisManager() { - - - - - delete histogramFactory; + delete histogramFactory; histogramFactory=0; delete analysisFactory; analysisFactory = 0; - delete tupleFactory; - tupleFactory=0; + // delete tupleFactory; + // tupleFactory=0; + + delete instance; + + G4cout << "XrayFluoAnalysisManager delete" << G4endl; + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoAnalysisManager* XrayFluoAnalysisManager::getInstance() + { - if (instance == 0) instance = new XrayFluoAnalysisManager; + if (instance == 0) {instance = new XrayFluoAnalysisManager;} return instance; } @@ -123,49 +134,37 @@ XrayFluoAnalysisManager* XrayFluoAnalysisManager::getInstance() void XrayFluoAnalysisManager::book() { - + // Book histograms - - // Book histograms - IHistogram1D* histo_1 = histogramFactory->create1D - ("1","Energy Deposit", 100,0.,10.); - IHistogram1D* histo_2 = histogramFactory->create1D - ("2","Gamma born in the sample", 100,0.,10.); - IHistogram1D* histo_3 = histogramFactory->create1D - ("3","Electrons born in the sample", 100,0.,10.); - IHistogram1D* histo_4 = histogramFactory->create1D - ("4","Gammas leaving the sample", 100,0.,10.); - IHistogram1D* histo_5 = histogramFactory->create1D - ("5","Electrons leaving the sample ", 100,0.,10.); - IHistogram1D* histo_6 = histogramFactory->create1D - ("6","Gammas reaching the detector", 100,0.,10.); - IHistogram1D* histo_7 = histogramFactory->create1D - ("7","Spectrum of the incident particles", 100,0.,10.); - IHistogram1D* histo_8 = histogramFactory->create1D - ("8","Protons reaching the detector", 100,0.,10.); - IHistogram1D* histo_9 = histogramFactory->create1D - ("9","Protons leaving the sample", 100,0.,10.); - IHistogram1D* histo_10 = histogramFactory->create1D - ("10","Gammas leaving the sample smeared", 100,0.,10.); - - + histo_1 = histogramFactory->createHistogram1D("1","Energy Deposit", 100000,0.,10.); //1eV 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.); + 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.); - - // Create a tuple : -// tuple = tupleFactory->create("XrayFluo","XrayFluo","energy counts"); - + // IHistogram2D* histo_20 = histogramFactory-> + //create2D("20","Phi, Theta",80 ,-3.14,3.14,80,0.,3.14); + + // Create a tuple : + // tuple = tupleFactory->create("XrayFluo","XrayFluo","energy counts"); } - - - - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoAnalysisManager::finish() { - if(tree) {tree->commit(); // Write histos and tuple in file. - tree->close();} + if(tree) { + tree->commit(); // Write histos and tuple in file. + tree->close(); + } } @@ -173,6 +172,9 @@ void XrayFluoAnalysisManager::finish() void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) { + + + /* IHistogram1D* histo_2 =dynamic_cast ( tree->find("2") ); IHistogram1D* histo_3 =dynamic_cast ( tree->find("3") ); IHistogram1D* histo_4 =dynamic_cast ( tree->find("4") ); @@ -180,10 +182,17 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) IHistogram1D* histo_6 =dynamic_cast ( tree->find("6") ); IHistogram1D* histo_8 =dynamic_cast ( tree->find("8") ); IHistogram1D* histo_10 =dynamic_cast ( tree->find("10") ); + IHistogram1D* histo_11 =dynamic_cast ( tree->find("11") ); + IHistogram1D* histo_12 =dynamic_cast ( tree->find("12") ); + //IHistogram2D* histo_20=dynamic_cast ( tree->find("20") ); + */ + G4double gammaAtTheDetPre=0; G4double protonsAtTheDetPre=0; G4double gammaLeavingSample=0; - G4double gammaLeavingSampleSmeared=0; + //G4double gammaLeavingSamplePhi=0; + //G4double gammaLeavingSampleTheta=0; + G4double eleLeavingSample=0; G4double protonsLeavSam=0; G4double gammaBornInSample=0; @@ -194,20 +203,65 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) { if ((aStep->GetTrack()->GetDynamicParticle() ->GetDefinition()-> GetParticleName()) == "gamma" ) + { - /*gammaLeavingSampleSmeared = - ResponseFunction(aStep->GetPreStepPoint()->GetKineticEnergy()); - if(histo_10) { - histo_10->fill(gammaLeavingSampleSmeared/keV);*/ - gammaLeavingSample =(aStep->GetPreStepPoint()->GetKineticEnergy()); + + if(aStep->GetTrack()->GetCreatorProcess()){ + G4String process = aStep->GetTrack()->GetCreatorProcess()->GetProcessName(); + // G4cout << "Il processo di origine e' " << process << G4endl; + if(histo_10) { + histo_10->fill(1.); + gammaLeavingSample = + (aStep->GetPreStepPoint()->GetKineticEnergy()); + if(histo_11) { + histo_11->fill(gammaLeavingSample/keV); + + } + } + } + else { + //G4cout << "Sembra che non ci sia un processo d'origine" << G4endl; + if(histo_10) { + histo_10->fill(2.); + + gammaLeavingSample = + (aStep->GetPreStepPoint()->GetKineticEnergy()); + if(histo_12) { + histo_12->fill(gammaLeavingSample/keV); + + } + + } + } + + + + gammaLeavingSample = + (aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_4) { - histo_4->fill(gammaLeavingSample/keV);} + histo_4->fill(gammaLeavingSample/keV); + + } + + /* gammaLeavingSamplePhi = + (aStep->GetPreStepPoint()->GetMomentumDirection().phi()); + G4cout << "questo e' Phi: " << gammaLeavingSamplePhi << G4endl; + gammaLeavingSampleTheta = + (aStep->GetPreStepPoint()->GetMomentumDirection().theta()); + G4cout << "questo e' Theta: " << gammaLeavingSampleTheta << G4endl; + if(histo_20) { + // G4cout << "histo_20 esiste" << G4endl; + histo_20->fill(gammaLeavingSamplePhi,gammaLeavingSampleTheta,1.); + } */ + + } } } + if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Sample"){ if(aStep->GetTrack()->GetNextVolume()->GetName() == "World" ) @@ -244,7 +298,7 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) { gammaBornInSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_2) { - histo_2->fill(gammaBornInSample); + histo_2->fill(gammaBornInSample/keV); } } } @@ -261,7 +315,7 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) { eleBornInSample = (aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_3) { - histo_3->fill(eleBornInSample); + histo_3->fill(eleBornInSample/keV); } } } @@ -281,7 +335,7 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) gammaAtTheDetPre = (aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_6) { - histo_6->fill( gammaAtTheDetPre); + histo_6->fill( gammaAtTheDetPre/keV); } } else if ((aStep->GetTrack()->GetDynamicParticle() @@ -290,29 +344,29 @@ void XrayFluoAnalysisManager::analyseStepping(const G4Step* aStep) protonsAtTheDetPre = (aStep->GetPreStepPoint()->GetKineticEnergy()); if(histo_8) { - histo_8->fill( protonsAtTheDetPre); + histo_8->fill( protonsAtTheDetPre/keV); } } } } - } + } -} + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void XrayFluoAnalysisManager::analyseEnergyDep(G4double energyDep) { - IHistogram1D* histo_1 =dynamic_cast ( tree->find("1") ); - - histo_1->fill(energyDep/keV); + //histo_1 =dynamic_cast ( tree->find("1") ); + + histo_1->fill(energyDep/keV); /* - if(tuple) { + if(tuple) { tuple->fill(0,energyDep); tuple->fill(1,1); tuple->addRow(); - } + } */ } @@ -320,10 +374,27 @@ void XrayFluoAnalysisManager::analyseEnergyDep(G4double energyDep) void XrayFluoAnalysisManager::analysePrimaryGenerator(G4double energy) { - IHistogram1D* histo_7 =dynamic_cast ( tree->find("1") ); - histo_7->fill(energy/keV); + + // qua si fa uso spropositato di memoria -- attenzione!!// + //histo_7 =dynamic_cast ( tree->find("7") ); + histo_7->fill(energy/keV); +} + +void XrayFluoAnalysisManager::SetOutputFileName(G4String newName) +{ + + outputFileName = newName; + } + + + + + + + + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc index c7e6055e2f..c265cf8d67 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisMessenger.cc @@ -22,13 +22,14 @@ // // // $Id: XrayFluoAnalysisMessenger.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // // History: // ----------- // 28 Nov 2001 Elena Guardincerri Created +// 29 Nov 2002 minor upgrade (Alfonso.mantero@ge.infn.it) // // ------------------------------------------------------------------- @@ -42,11 +43,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoAnalysisMessenger::XrayFluoAnalysisMessenger(XrayFluoAnalysisManager* analysisManager) - :XrayFluoAnalysis(analysisManager) + :xrayFluoAnalysis(analysisManager) { XrayFluoAnalysisDir = new G4UIdirectory("/analysis/"); - XrayFluoAnalysisDir->SetGuidance("esperimento analysis control."); + XrayFluoAnalysisDir->SetGuidance("analysis control."); + + ouputFileCommand = new G4UIcmdWithAString("/analysis/outputFile",this); + ouputFileCommand->SetGuidance("specify the name of the output file (lowercase for Hbook)"); + ouputFileCommand->SetGuidance("default: xrayfluo.hbk"); + ouputFileCommand->SetParameterName("choice",true); + ouputFileCommand->SetDefaultValue("xrayfluo.hbk"); + //DrawCmd->SetCandidates("none charged neutral all"); + ouputFileCommand->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -63,6 +72,9 @@ XrayFluoAnalysisMessenger::~XrayFluoAnalysisMessenger() void XrayFluoAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { +if(command == ouputFileCommand) + {xrayFluoAnalysis->SetOutputFileName(newValue);} + } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc index d4d43f79b5..b0582ed764 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoDAtaSet.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc index a86396a791..48ff0a090e 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc @@ -22,13 +22,14 @@ // // // $Id: XrayFluoDetectorConstruction.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // // History: // ----------- // 28 Nov 2001 Elena Guardincerri Created +// 29 Nov 2002 New materials added (Alfonso.mantero@ge.infn.it) // // ------------------------------------------------------------------- @@ -71,16 +72,20 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() NbOfPixelRows = 1; NbOfPixelColumns = 1; NbOfPixels = NbOfPixelRows*NbOfPixelColumns; - PixelSizeXY = 0.7 * cm; - PixelThickness = 1. * mm; + PixelSizeXY = 5 * cm; + PixelThickness = 3.5 * mm; ContactSizeXY = 0.005*mm; - SampleThickness = 0.25 * mm; + SampleThickness = 2.5 * mm; SampleSizeXY = 3. * cm; Dia1Thickness = 1. *mm; Dia3Thickness = 1. *mm; Dia1SizeXY = 3. *cm; Dia3SizeXY = 3. *cm; - DiaInnerSize = 1.4 * mm; + + + DiaInnerSize = 2.99 * cm; + + OhmicNegThickness = 0.005*mm; OhmicPosThickness = 0.005*mm; ThetaHPGe = 135. * deg; @@ -102,11 +107,15 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() // create commands for interactive definition of the apparate detectorMessenger = new XrayFluoDetectorMessenger(this); + G4cout << "XrayFluoDetectorConstruction created" << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoDetectorConstruction::~XrayFluoDetectorConstruction() -{ delete detectorMessenger;} +{ + delete detectorMessenger; + G4cout << "XrayFluoDetectorConstruction deleted" << G4endl; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -122,14 +131,118 @@ void XrayFluoDetectorConstruction::DefineMaterials() //define elements G4String name, symbol; //a=mass of a mole; G4double a, z, density; //z=mean number of protons; + G4int natoms,ncomponents; + G4double temperature, pressure; + G4double fractionmass; + + // Elements Definitions + + //define Niobium + a = 92.906*g/mole; + G4Element* Nb = new G4Element(name="Niobium" ,symbol="Nb" , z= 41., a); + + //define Zirconium + + a = 91.22*g/mole; + G4Element* Zr = new G4Element(name="Zirconium" ,symbol="Zr" , z= 40., a); + + //define Yttrium + + a = 88.905*g/mole; + G4Element* Y = new G4Element(name="Yttrium" ,symbol="Y" , z= 39., a); + + //define Stronzium + + a = 87.62*g/mole; + G4Element* Sr = new G4Element(name="Stronzium" ,symbol="Sr" , z= 38., a); + + //define Rubidium + + a = 85.47*g/mole; + G4Element* Rb = new G4Element(name="Rubidium" ,symbol="Rb" , z= 37., a); + + //define Zinc + + a = 65.37*g/mole; + G4Element* Zn = new G4Element(name="Zinc" ,symbol="Zn" , z= 30., a); + + //define Nichel + + a = 58.71*g/mole; + G4Element* Ni = new G4Element(name="Nichel" ,symbol="Ni" , z= 28., a); + + //define Scandio + + a = 44.956*g/mole; + G4Element* Sc = new G4Element(name="Scandium" ,symbol="Sc" , z= 21., a); + + //define Vanadium + + a = 50.942*g/mole; + G4Element* V = new G4Element(name="Vanadium" ,symbol="V" , z= 39., a); + + //define Cromium + a = 51.996*g/mole; + G4Element* Cr = new G4Element(name="Cromium" ,symbol="Cr" , z= 24., a); + + //define Cobalt + + a = 58.933*g/mole; + G4Element* Co = new G4Element(name="Cobalt" ,symbol="Co" , z= 27., a); + + //define Copper + + a = 63.54*g/mole; + G4Element* elCu = new G4Element(name="Copper" ,symbol="Cu" , z= 29., a); + + //define Barium + + a = 137.34*g/mole; + G4Element* Ba = new G4Element(name="Barium" ,symbol="Ba" , z= 56., a); + + //define Cerium + + a = 140.12*g/mole; + G4Element* Ce = new G4Element(name="Cerium" ,symbol="Ce" , z= 58., a); + + //define Neodimuim + + a = 144.24*g/mole; + G4Element* Nd = new G4Element(name="Neodimuim" ,symbol="Nd" , z= 60., a); + + + //Define Zolfo + + a = 32.064*g/mole; + G4Element* elS = new G4Element(name="Zolfo" ,symbol="S" , z= 16., a); + + + + //define carbon + + a = 12.0107*g/mole; + G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); + + //define Nitrogen + + a = 14.01*g/mole; + G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); + + // define Oxigen + a = 15.9994*g/mole; + G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); + + //define Arsenic a = 74.9216 * g/mole; G4Element * As = new G4Element( name="arsenic",symbol="As",z= 33.,a); - + + //Define Gallium a = 69.72* g/mole; G4Element * Ga = new G4Element(name="gallium",symbol="Ga",z= 31.,a); - + + //define Iron a = 55.847*g/mole; G4Element* Fe = new G4Element(name="Iron" ,symbol="Fe", z=26., a); //define hydrogen @@ -144,79 +257,232 @@ void XrayFluoDetectorConstruction::DefineMaterials() a = 30.97*g/mole; G4Element* P = new G4Element(name="Phosporus",symbol="P", z= 15., a); - + + // define Titanium + a = 47.88*g/mole; + G4Element* elTi = new G4Element(name="Titanium",symbol="Ti" , z= 22., a); + + // define Calcium + a = 40.078*g/mole; + G4Element* Ca = new G4Element(name="Calcium",symbol="Ca" , z= 20., a); + + // define silicon + a = 28.0855*g/mole; + G4Element* elSi = new G4Element(name="Silicon",symbol="Si" , z= 14., a); + + // define Aluminium + a = 26.98154*g/mole; + G4Element* elAl = new G4Element(name="Aluminium",symbol="Al" , z= 13., a); + + // Define Magnesium + a = 24.305*g/mole; + G4Element* Mg = new G4Element(name="Magnesium",symbol="Mg" , z= 12., a); + + // Define Manganese + a = 54.938*g/mole; + G4Element* Mn = new G4Element(name="Manganese",symbol="Mn" , z= 25., a); + + // Define Sodium + a = 22.989*g/mole; + G4Element* Na = new G4Element(name="Sodium",symbol="Na" , z= 11., a); + + // Define Potassium + a = 39.10*g/mole; + G4Element* K = new G4Element(name="Potassium",symbol="K" , z= 19., a); + // Define lead + + a=207.19*g/mole; + G4Element* elPb = new G4Element(name="Lead",symbol="pb", z=82.,a); + + //define Uranium + + a = 238.02891*g/mole; + G4Element* elU = new G4Element(name="Uranium",symbol="U", z=92.,a); + + + G4cout << "Elementi creati" << G4endl; + + + + // Materials Definitions + + // Define dolorite main components + + density = 3*g/cm3; + G4Material* diorite = new G4Material(name="Diorite", density, ncomponents=11); + diorite->AddElement(Fe, fractionmass=0.1750); + diorite->AddElement(elTi, fractionmass=0.0082); + diorite->AddElement(Ca, fractionmass=0.0753); + diorite->AddElement(elSi, fractionmass=0.2188); + diorite->AddElement(elAl, fractionmass=0.0676); + diorite->AddElement(Mg, fractionmass=0.0008); + diorite->AddElement(O , fractionmass=0.4377); + diorite->AddElement(Mn , fractionmass=0.0015); + diorite->AddElement(Na , fractionmass=0.0134); + diorite->AddElement(K , fractionmass=0.0011); + diorite->AddElement(P , fractionmass=0.0006); + + // define traces in dolorite + + density = 3*g/cm3; + G4Material* tracesOfDolorite = new G4Material(name="TracesOfDolorite", density, ncomponents=16); + tracesOfDolorite->AddElement(Nb, natoms=5); + tracesOfDolorite->AddElement(Zr, natoms=91); + tracesOfDolorite->AddElement(Y, natoms=29); + tracesOfDolorite->AddElement(Sr, natoms=140); + tracesOfDolorite->AddElement(Rb, natoms=3); + tracesOfDolorite->AddElement(Ga, natoms=20); + tracesOfDolorite->AddElement(Zn, natoms=99); + tracesOfDolorite->AddElement(Ni, natoms=77); + tracesOfDolorite->AddElement(Sc, natoms=32); + tracesOfDolorite->AddElement(V, natoms=314); + tracesOfDolorite->AddElement(Cr, natoms=130); + tracesOfDolorite->AddElement(Co, natoms=56); + tracesOfDolorite->AddElement(elCu, natoms=119); + tracesOfDolorite->AddElement(Ba, natoms=38); + tracesOfDolorite->AddElement(Ce, natoms=15); + tracesOfDolorite->AddElement(Nd, natoms=9); + + // define dolorite (full) + + 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 + + density = 3*g/cm3; + G4Material* mars1Main = new G4Material(name="Mars1 Main components", density, ncomponents=11); + mars1Main->AddElement(Fe, fractionmass=0.100916); + mars1Main->AddElement(elTi, fractionmass=0.0186804); + mars1Main->AddElement(Ca, fractionmass=0.0404091); + mars1Main->AddElement(elSi, fractionmass=0.196378); + mars1Main->AddElement(elAl, fractionmass=0.103282); + mars1Main->AddElement(Mg, fractionmass=0.0241622); + mars1Main->AddElement(Mn , fractionmass=0.00184331); + mars1Main->AddElement(Na , fractionmass=0.0177908); + mars1Main->AddElement(K , fractionmass=0.00574498); + mars1Main->AddElement(P , fractionmass=0.00280169); + mars1Main->AddElement(O , fractionmass=0.48799152); + + density = 3*g/cm3; + G4Material* tracesOfMars1 = new G4Material(name="TracesOfMars1", density, ncomponents=17); + tracesOfMars1->AddElement(Nb, natoms=55); + tracesOfMars1->AddElement(Zr, natoms=433); + tracesOfMars1->AddElement(Y, natoms=58); + tracesOfMars1->AddElement(Sr, natoms=968); + tracesOfMars1->AddElement(Rb, natoms=16); + tracesOfMars1->AddElement(Ga, natoms=24); + tracesOfMars1->AddElement(Zn, natoms=109); + tracesOfMars1->AddElement(Ni, natoms=70); + tracesOfMars1->AddElement(Sc, natoms=21); + tracesOfMars1->AddElement(V, natoms=134); + tracesOfMars1->AddElement(Cr, natoms=141); + tracesOfMars1->AddElement(Co, natoms=30); + tracesOfMars1->AddElement(elCu, natoms=19); + tracesOfMars1->AddElement(Ba, natoms=580); + tracesOfMars1->AddElement(elPb, natoms=4); + tracesOfMars1->AddElement(elS, natoms=444); + tracesOfMars1->AddElement(elU, natoms=2); + + + density = 3*g/cm3; + G4Material* mars1 = new G4Material(name="Mars1", density, ncomponents=2); + mars1->AddMaterial(tracesOfMars1, fractionmass=0.0044963163); + mars1->AddMaterial(mars1Main, fractionmass=0.9955036837); + + //define Neodimuim + + density = 6800*kg/m3; + materialNd = new G4Material(name="Neodimuim" ,density , ncomponents=1); + materialNd ->AddElement(Nd,natoms=1); + + // Define Magnesium + density = 1738*kg/m3; + materialMg = new G4Material(name="Magnesium",density , ncomponents=1); + materialMg->AddElement(Mg,natoms=1); + + //define iron + density = 7.86 * g/cm3; - - G4int natoms,ncomponents; - G4double temperature, pressure; - - G4Material * FeMaterial = new G4Material(name="Iron",density,ncomponents=1); + FeMaterial = new G4Material(name="Iron",density,ncomponents=1); FeMaterial->AddElement(Fe,natoms=1); - - density = 5.32 * g/cm3; - G4Material * HPGe = new G4Material(name="HPGe",density,ncomponents=1); - HPGe ->AddElement(Ge,natoms=1); + + + //define gallium arsenide density = 5.32 * g/cm3; G4Material * GaAs = new G4Material(name ="gallium arsenide",density,ncomponents=2); GaAs->AddElement(Ga,natoms=1); GaAs->AddElement(As,natoms=1); + + + // define germanium + + density = 5.32 * g/cm3; + HPGe = new G4Material(name="HPGe",density,ncomponents=1); + HPGe ->AddElement(Ge,natoms=1); //define silicon density = 2.333*g/cm3; a = 28.0855*g/mole; - G4Material* Si = new G4Material(name="Silicon",z=14., a,density); + Si = new G4Material(name="Silicon",z=14., a,density); //define copper density = 8.960*g/cm3; a = 63.55*g/mole; - G4Material* Cu = new G4Material(name="Copper" , z=29., a, density); + Cu = new G4Material(name="Copper" , z=29., a, density); + + - - //define carbon - - a = 12.0107*g/mole; - G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); - - - //define scintillator - - density = 1.032*g/cm3; - G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2); - Sci->AddElement(C, natoms=9); - Sci->AddElement(H, natoms=10); + //define Oxigen + density = 1*g/cm3; + a=16*g/mole; + G4Material* matOx = new G4Material(name="Oxigen", z=8., a, density); //define aluminium density = 2.700*g/cm3; a = 26.98*g/mole; - G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); - + Al = new G4Material(name="Aluminium", z=13., a, density); + //define titanium density = 4.54 *g/cm3; a = 47.867*g/mole; - G4Material* Ti = new G4Material(name="Titanium",z=22.,a,density); - + 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 Tin + density = 7310*kg/m3; + a = 118.710*g/mole; + Sn = new G4Material(name="Tin",z=50.,a,density); + //define lead density = 11.35*g/cm3; a=207.19*g/mole; G4Material* Pb = new G4Material(name="Lead",z=82.,a,density); + + //define scintillator + + density = 1.032*g/cm3; + G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2); + Sci->AddElement(C, natoms=9); + Sci->AddElement(H, natoms=10); + //define air - a = 14.01*g/mole; - G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - - a = 15.9994*g/mole; - G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - - G4double fractionmass; + density = 1.290*mg/cm3; G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); Air->AddElement(N, fractionmass=0.7); @@ -229,32 +495,21 @@ void XrayFluoDetectorConstruction::DefineMaterials() temperature = 2.73*kelvin; G4Material * Vacuum = new G4Material(name="Galactic", z=1., a=1.01*g/mole, density, kStateGas,temperature,pressure); - // define Titanium - a = 47.88*g/mole; - G4Element* elTi = new G4Element(name="Titanium",symbol="Ti" , z= 22., a); - // define Calcium - a = 40.078*g/mole; - G4Element* Ca = new G4Element(name="Calcium",symbol="Ca" , z= 20., a); - // define silicon - a = 28.0855*g/mole; - G4Element* elSi = new G4Element(name="Silicon",symbol="Si" , z= 14., a); - a = 26.98154*g/mole; - G4Element* elAl = new G4Element(name="Aluminium",symbol="Al" , z= 13., a); - - a = 24.305*g/mole; - G4Element* Mg = new G4Element(name="Magnesium",symbol="Mg" , z= 12., a); + + + //define basalt density = 3.*g/cm3; - G4Material* Basalt = new G4Material(name="Basalt", density, ncomponents=7); - Basalt->AddElement(Fe, fractionmass=0.1200); - Basalt->AddElement(elTi, fractionmass=0.0160); - Basalt->AddElement(Ca, fractionmass=0.0750); - Basalt->AddElement(elSi, fractionmass=0.2160); - Basalt->AddElement(elAl, fractionmass=0.0710); - Basalt->AddElement(Mg, fractionmass=0.0590); - Basalt->AddElement(O , fractionmass=0.4430); + G4Material* basalt = new G4Material(name="Basalt", density, ncomponents=7); + basalt->AddElement(Fe, fractionmass=0.1200); + basalt->AddElement(elTi, fractionmass=0.0160); + basalt->AddElement(Ca, fractionmass=0.0750); + basalt->AddElement(elSi, fractionmass=0.2160); + basalt->AddElement(elAl, fractionmass=0.0710); + basalt->AddElement(Mg, fractionmass=0.0590); + basalt->AddElement(O , fractionmass=0.4430); // end basalt @@ -262,7 +517,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() //default materials of the apparate - sampleMaterial = Basalt; + sampleMaterial = mars1; Dia1Material = Pb; Dia3Material = Pb; pixelMaterial = HPGe; @@ -554,6 +809,47 @@ void XrayFluoDetectorConstruction::UpdateGeometry() G4RunManager::GetRunManager()->DefineWorldVolume(ConstructApparate()); } +void XrayFluoDetectorConstruction::SetSampleMaterial(G4String newMaterial) +{ + + if( newMaterial == "dolorite") { + sampleMaterial = dolorite; + } + + else if ( newMaterial == "iron") { + sampleMaterial = FeMaterial; +} + + else if ( newMaterial == "silicon") { + sampleMaterial = Si; +} + + else if ( newMaterial == "aluminium") { + sampleMaterial = Al; +} + + else if ( newMaterial == "copper") { + sampleMaterial = Cu; +} + else if ( newMaterial == "germanium") { + sampleMaterial = HPGe; +} + else if ( newMaterial == "magnesium") { + sampleMaterial = materialMg; +} + + else if ( newMaterial == "neodimium") { + sampleMaterial = materialNd; +} + else if ( newMaterial == "tin") { + sampleMaterial = Sn; +} + else if ( newMaterial == "titanium") { + sampleMaterial = Ti; +} + +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -562,3 +858,7 @@ void XrayFluoDetectorConstruction::UpdateGeometry() + + + + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc index 96e29a9995..5269338bf4 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc @@ -22,13 +22,14 @@ // // // $Id: XrayFluoDetectorMessenger.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // // History: // ----------- // 28 Nov 2001 Elena Guardincerri Created +// 29 Nov 2002 change material command added(Alfonso.mantero@ge.infn.it) // // ------------------------------------------------------------------- @@ -51,7 +52,15 @@ XrayFluoDetectorMessenger::XrayFluoDetectorMessenger(XrayFluoDetectorConstructio UpdateCmd->SetGuidance("Update apparate geometry."); UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); UpdateCmd->SetGuidance("if you changed geometrical value(s)."); - UpdateCmd->AvailableForStates(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); + + sampleCmd = new G4UIcmdWithAString("/apparate/sample",this); + sampleCmd->SetGuidance("select a diferent material for the sample"); + sampleCmd->SetGuidance("The command /apparate/update command MUST be applied after this one"); + sampleCmd->SetParameterName("choice",true); + sampleCmd->SetDefaultValue("dolorite"); + sampleCmd->SetCandidates("dolorite iron silicon aluminium titanium tin neodimium magnesium germanium copper mars1"); + sampleCmd->AvailableForStates(G4State_Idle); } @@ -69,8 +78,18 @@ void XrayFluoDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newVal { if( command == UpdateCmd ) { Detector->UpdateGeometry(); } + + else if ( command == sampleCmd ) + { Detector->SetSampleMaterial(newValue);} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + + + + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc index 94cec77b7c..997988b62f 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoEventAction.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoEventActionMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoEventActionMessenger.cc index 6bd9b5b815..56c5e4818d 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoEventActionMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoEventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoEventActionMessenger.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -51,13 +51,13 @@ XrayFluoEventActionMessenger::XrayFluoEventActionMessenger(XrayFluoEventAction* DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged neutral all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoHPGeSD.cc b/examples/advanced/xray_fluorescence/src/XrayFluoHPGeSD.cc index adb5c78641..9874d9293e 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoHPGeSD.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoHPGeSD.cc @@ -22,14 +22,14 @@ // // // $Id: XrayFluoHPGeSD.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // // History: // ----------- // 28 Nov 2001 Elena Guardincerri Created -// +// 29 Nov 2002 Energy deposition bug fixed (Alfonso.mantero@ge.infn.it) // ------------------------------------------------------------------- #include "XrayFluoHPGeSD.hh" @@ -41,6 +41,7 @@ #include "G4TouchableHistory.hh" #include "G4SDManager.hh" #include "G4ios.hh" +#include "G4VProcess.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -50,13 +51,20 @@ XrayFluoHPGeSD::XrayFluoHPGeSD(G4String name, { collectionName.insert("HPGeCollection"); HitHPGeID = new G4int[500]; + //G4cout << "XrayFluoHPGeSD created" << G4endl; + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoHPGeSD::~XrayFluoHPGeSD() { + delete [] HitHPGeID; + + // delete HPGeCollection; + + G4cout << "XrayFluoHPGeSD deleted" << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -77,8 +85,29 @@ void XrayFluoHPGeSD::Initialize(G4HCofThisEvent*HCE) G4bool XrayFluoHPGeSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) { G4double edep = aStep->GetTotalEnergyDeposit(); +// G4String particleName = aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->GetParticleName(); +// G4String processName = aStep->GetTrack()->GetCreatorProcess()->GetProcessName(); + +// G4double partEnergy = aStep->GetPreStepPoint()->GetKineticEnergy(); + G4double secondEnergy = aStep->GetPostStepPoint()->GetKineticEnergy(); +// G4cout << " la particella che deposita e': " << particleName << " ha una energia di keV " +// << partEnergy << " e deposita "<< edep << G4endl; +// G4cout << " la particella creata deposita: " << secondEnergy << G4endl; +// if (processName){ + + + +// G4cout << " la particella viene da: " << processName << G4endl; +// } + +// else {G4cout << " il deposito proviene da: Rayleugh" << G4endl;} + if ((edep==0.)) return false; + // added, vediamo se funziona + edep = edep + secondEnergy; +// G4cout << " edep = " << edep << G4endl; + G4TouchableHistory* theTouchable = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); @@ -88,21 +117,22 @@ G4bool XrayFluoHPGeSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) if (Detector->GetNbOfPixels()>1) PixelNumber= physVol->GetCopyNo() ; if ( HitHPGeID[PixelNumber]==-1) { - XrayFluoSensorHit* HPGeHit = new XrayFluoSensorHit(); - HPGeHit->AddEnergy(edep); + XrayFluoSensorHit* HPGeHit = new XrayFluoSensorHit(); + HPGeHit->AddEnergy(edep); HitHPGeID[PixelNumber] = HPGeCollection->insert(HPGeHit) - 1; - if (verboseLevel>0) - G4cout << " New Hit on pixel: " << PixelNumber << G4endl; - } + if (verboseLevel>0){ + G4cout << " New Hit on pixel: " << PixelNumber << G4endl; + } + } else { - (*HPGeCollection)[HitHPGeID[PixelNumber]]->AddEnergy(edep); - //G4double ED =(*HPGeCollection)[HitHPGeID[PixelNumber]]->GetEdepTot(); - if (verboseLevel>0) + (*HPGeCollection)[HitHPGeID[PixelNumber]]->AddEnergy(edep); + //G4double ED =(*HPGeCollection)[HitHPGeID[PixelNumber]]->GetEdepTot(); + if (verboseLevel>0) G4cout << " Energy added to Pixel: " << PixelNumber << G4endl; } - - return true; + + return true; } @@ -136,3 +166,14 @@ void XrayFluoHPGeSD::PrintAll() + + + + + + + + + + + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc b/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc index 48bdbb2b14..145af6d72f 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoNormalization.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoAnalysisMessenger.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc index 6b1352253b..6742a9307c 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc @@ -22,13 +22,14 @@ // // // $Id: XrayFluoPhysicsList.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // // History: // ----------- // 28 Nov 2001 Elena Guardincerri Created +// 29 Nov 2002 Auger Effect Added (Alfonso.mantero@ge.infn.it) // // ------------------------------------------------------------------- diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc index a8324e1b1a..f6477879db 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPhysicsListMessenger.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -54,63 +54,63 @@ XrayFluoPhysicsListMessenger::XrayFluoPhysicsListMessenger(XrayFluoPhysicsList * cutGLowLimCmd->SetParameterName("energy",true); cutGLowLimCmd->SetDefaultValue(1e-3); cutGLowLimCmd->SetDefaultUnit("MeV"); - cutGLowLimCmd->AvailableForStates(Idle); + 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(Idle); + 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(Idle); + cutGELowLimCmd->AvailableForStates(G4State_Idle); cutSecPhotCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/secphotcut",this); cutSecPhotCmd->SetGuidance("Set production threshold for secondary Gamma."); cutSecPhotCmd->SetParameterName("energy",true); cutSecPhotCmd->SetDefaultValue(5e-5); cutSecPhotCmd->SetDefaultUnit("MeV"); - cutSecPhotCmd->AvailableForStates(Idle); + cutSecPhotCmd->AvailableForStates(G4State_Idle); cutSecElecCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/seceleccut",this); cutSecElecCmd->SetGuidance("Set production threshold for secondary e-"); cutSecElecCmd->SetParameterName("energy",true); cutSecElecCmd->SetDefaultValue(5e-5); cutSecElecCmd->SetDefaultUnit("MeV"); - cutSecElecCmd->AvailableForStates(Idle); + cutSecElecCmd->AvailableForStates(G4State_Idle); cutGCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/cutG",this); cutGCmd->SetGuidance("Set cut values by RANGE for Gamma."); cutGCmd->SetParameterName("range",true); cutGCmd->SetDefaultValue(1.); cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(Idle); + cutGCmd->AvailableForStates(G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/cutE",this); cutECmd->SetGuidance("Set cut values by RANGE for e-."); cutECmd->SetParameterName("range",true); cutECmd->SetDefaultValue(1.); cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(Idle); + cutECmd->AvailableForStates(G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/cutP",this); cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); cutPCmd->SetParameterName("cutP",false); cutPCmd->SetRange("cutP>0."); cutPCmd->SetUnitCategory("Length"); - cutPCmd->AvailableForStates(Idle); + cutPCmd->AvailableForStates(G4State_Idle); eCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/cutEnergy",this); eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); eCmd->SetParameterName("cutenergy",false); eCmd->SetRange("cutenergy>0."); eCmd->SetUnitCategory("Energy"); - eCmd->AvailableForStates(Idle); + eCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc index 82bf337aa5..a7edbf2f81 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPrimaryGeneratorAction.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc index bc2b11ced1..bd8f9860ed 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoPrimarygeneratorMessenger.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -47,7 +47,7 @@ XrayFluoPrimaryGeneratorMessenger::XrayFluoPrimaryGeneratorMessenger(XrayFluoPri RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("on"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmVert = new G4UIcmdWithAString("/gun/randomVert",this); RndmVert->SetGuidance("Shoot randomly the incident particle."); @@ -55,7 +55,7 @@ XrayFluoPrimaryGeneratorMessenger::XrayFluoPrimaryGeneratorMessenger(XrayFluoPri RndmVert->SetParameterName("choice",true); RndmVert->SetDefaultValue("on"); RndmVert->SetCandidates("on off"); - RndmVert->AvailableForStates(PreInit,Idle); + RndmVert->AvailableForStates(G4State_PreInit,G4State_Idle); spectrum = new G4UIcmdWithAString("/gun/spectrum",this); spectrum->SetGuidance("Shoot the incident particle with a certain energy spectrum."); @@ -63,7 +63,7 @@ XrayFluoPrimaryGeneratorMessenger::XrayFluoPrimaryGeneratorMessenger(XrayFluoPri spectrum->SetParameterName("choice",true); spectrum->SetDefaultValue("on"); spectrum->SetCandidates("on off"); - spectrum->AvailableForStates(PreInit,Idle); + spectrum->AvailableForStates(G4State_PreInit,G4State_Idle); isoVert = new G4UIcmdWithAString("/gun/isoVert",this); isoVert->SetGuidance("Shoot the incident particle from an isotrofic direction."); @@ -71,7 +71,7 @@ XrayFluoPrimaryGeneratorMessenger::XrayFluoPrimaryGeneratorMessenger(XrayFluoPri isoVert->SetParameterName("choice",true); isoVert->SetDefaultValue("on"); isoVert->SetCandidates("on off"); - isoVert->AvailableForStates(PreInit,Idle); + isoVert->AvailableForStates(G4State_PreInit,G4State_Idle); } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc index 1980f15aae..6e8400a7ff 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoRunAction.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSteppingAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSteppingAction.cc index 82ff26d587..33e1b9799e 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSteppingAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoSteppingAction.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSteppingVerbose.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSteppingVerbose.cc index d4a8cadafc..5b872b741b 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSteppingVerbose.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoSteppingVerbose.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc old mode 100644 new mode 100755 index 39766b8c40..855918ac32 --- a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc @@ -22,7 +22,7 @@ // // // $Id: XrayFluoVisManager.cc -// GEANT4 tag $Name: xray_fluo-V03-02-00 +// GEANT4 tag $Name: xray_fluo-V04-01-03 // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // @@ -43,6 +43,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" //#include "G4VRML1File.hh" //#include "G4VRML2File.hh" @@ -99,6 +100,7 @@ void XrayFluoVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); // RegisterGraphicsSystem (new G4VRML1File); //RegisterGraphicsSystem (new G4VRML2File); @@ -136,7 +138,7 @@ void XrayFluoVisManager::RegisterGraphicsSystems () { #ifdef G4VIS_USE_OIWIN32 RegisterGraphicsSystem (new G4OpenInventorWin32); #endif - + /* #ifdef G4VIS_USE_VRML RegisterGraphicsSystem (new G4VRML1); diff --git a/examples/advanced/xray_telescope/GNUmakefile b/examples/advanced/xray_telescope/GNUmakefile index 8a4f653847..a1541ba96b 100644 --- a/examples/advanced/xray_telescope/GNUmakefile +++ b/examples/advanced/xray_telescope/GNUmakefile @@ -1,5 +1,5 @@ # -------------------------------------------------------------- -# $Id: GNUmakefile,v 1.6 2001/12/10 17:39:27 gcosmo Exp $ +# $Id: GNUmakefile,v 1.7 2002/11/14 15:56:14 santin Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -16,23 +16,14 @@ G4VIS_USE = 1 include $(G4INSTALL)/config/architecture.gmk -# Copy the XrayTelAnalysis files according to which version -# is selected. -# As the dependency is checked before "all" is reached, we need -# to do some tricks here ... - -ifdef G4ANALYSIS_AIDA_CONFIG_CFLAGS -# AIDA (version 2.2 for now) selected - FOO := $(shell cp -p include/XrayTelAnalysis.hh-AIDA include/XrayTelAnalysis.hh ) - FOO := $(shell cp -p src/XrayTelAnalysis.cc-AIDA src/XrayTelAnalysis.cc ) -else -# Anaphe selected - include anaphe.gmk - FOO := $(shell cp -p include/XrayTelAnalysis.hh-Anaphe include/XrayTelAnalysis.hh ) - FOO := $(shell cp -p src/XrayTelAnalysis.cc-Anaphe src/XrayTelAnalysis.cc ) +ifdef G4ANALYSIS_USE_PLOTTER + CPPFLAGS += -DG4ANALYSIS_USE_PLOTTER endif -# End Analysis. +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` +endif .PHONY: all all: lib bin diff --git a/examples/advanced/xray_telescope/README b/examples/advanced/xray_telescope/README index cad005e80b..8df43160e9 100644 --- a/examples/advanced/xray_telescope/README +++ b/examples/advanced/xray_telescope/README @@ -1,12 +1,16 @@ -$Id: README,v 1.9 2002/06/18 23:46:12 pia Exp $ +$Id: README,v 1.10 2002/11/14 16:33:48 santin Exp $ ------------------------------------------------------------------- ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP + Geant4 - X-Ray Telescope Example ========================================================= - xray_telescope - -------------- + +NEW: Nov 2002: Migration to AIDA 3.0 - see below + + +Introduction +------------ XrayTel is an advanced Geant4 example based on a realistic simulation of an X-ray Telescope. It is based on work carried out by a team of Geant4 experts to simulate the interaction between X-ray Telescopes XMM-Newton @@ -29,13 +33,9 @@ in Geant4: - the generation of particles is done via the new General Particle Source - - histograming facilities are available through the AIDA interfaces. - The implementation shown in this example is obsolete, and will be - updated in a future release; for an up-to-date illustration of how to - embed an AIDA-compliant analysis in a Geant4-based simulation - application, please see the other advanced examples in this - Geant4 release (brachytherapy, gammaray_telescope, underground_physics, - xray_fluorescence). + - histograming facilities are available through the AIDA 3.0 interfaces. + + - on-line visualisation of histograms is provided through the AIDA 3.0 interface. 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. @@ -70,28 +70,41 @@ setenv G4VIS_USE_DAWN 1 setenv G4VIS_USE_DAWNFILE 1 setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++" -# flag that we want to use analysis: +NOTE: The geometry is refreshed on the viewer at the beginning of each run, + but the tracks are plotted only in case an interesting event occurs. + This is the case only for about 1 every 10**4 events. + + + +Analysis +-------- +Set up for the AIDA 3.0 interface: +In case the variable G4ANALYSIS_USE is set: setenv G4ANALYSIS_USE 1 +relevant information from the simulation is processed in the XrayTelAnalysis class and +saved, through the AIDA interface, to Histograms and Tuples. +Compilation and link flags to hook any AIDA compliant system +are passed to the Geant4 GNUmakefile system by using the "aida-config" tool +that should come with any AIDA compliant system. Specifically in the GNUmakefile you find the 2 lines + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` -# select analysis system: any AIDA 2.2 compliant system or Anaphe 3.6.5 -# set up for AIDA 2.2 compliancy: -# Compilation and link flags to hook and AIDA compliant system -# are passed to the Geant4 GNUmakefile system by using the "aida-config" tool -# that should come with any AIDA compliant system. Examples are: -# setenv G4ANALYSIS_AIDA_CONFIG_CFLAGS `aida-config --include` -# setenv G4ANALYSIS_AIDA_CONFIG_LIBS `aida-config --libs` -#set up Anaphe/Lizard for the gcc-2.95 compiler -setenv G4ANALYSIS_SYSTEM Lizard -setenv G4ANALYSIS_USE_LIZARD 1 -setenv G4ANALYSIS_BUILD 1 -setenv G4ANALYSIS_BUILD_LIZARD 1 -setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/3.6.5/bin -source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.5/install/sharedstart.csh +On-line plotting +---------------- +Set-up for the AIDA 3.0 interface: +In case the variable G4ANALYSIS_USE_PLOTTER is set: +setenv G4ANALYSIS_USE_PLOTTER 1 +a new window is opened for on-line plotting. +NOTE: The histograms are plotted or refreshed only in case an interesting event occurs. + This is the case only for about 1 every 10**4 events. + + +You may need to add the AIDA tool path to your run-time library path +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:`aida-config -r` + -#add to the LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH $OGLHOME/lib IMPORTANT WARNING! @@ -133,22 +146,19 @@ visualisation macros provided are - vrml.mac for VRML display and output file - dawn.mac for dawn display and PS output file +You may need to add some paths to your run-time libraries env. variable, +for example: +$ setenv LD_LIBRARY_PATH $OGLHOME/lib + To execute a run without visualisation use - test.mac If the analysis options are set, histograming windows will automatically open and the corresponding files will be created. -A 2D histogram (scatter plot) will display in real time every proton -hit that reaches the detector. A 1D histogram will display the energy distribution of the protons that reach the detector at the end of the run. -The final energy and (x,y,z) position of the protons that reach the -detector is output to a file "detector.hits". This file is created -if it does not exist or appended to if it does. - - 3. Detector description The telescope and detector geometry is defined in @@ -165,33 +175,16 @@ on the mirror surfaces. This is done using the new General Particle Source. Documentation for this can be found in -http://www.space.dera.gov.uk/space_env/gspm.html +http://www.space.qinetiq.com/geant4/gspm.html 6. Analysis -At present there are two options for analysis packages: either -explicitely the Anaphe 3.6.5 (or compatible) version is selected, -or any AIDA-2.2 compliant analysis system is chosen. This dual -approach will be removed in the next release when only the AIDA -compliant version will be present. Presently, the OpenScientist -package (version 8) provides an implementation of AIDA 2.2, -other packages as Anaphe and JAS will follow soon. 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. +Presently, the Anaphe tool (http://www.cern.ch/anaphe) +(version 5) provides an implementation of AIDA 3.0, +other packages as JAS will follow soon. To build and execute the example on platforms where there is no implementation of the analysis system, the environment variables must not be set, except for G4ANALYSIS_BUILD which is required for building the executable. - - - - - - - - - - - diff --git a/examples/advanced/xray_telescope/README_stt b/examples/advanced/xray_telescope/README_stt new file mode 100644 index 0000000000..b9eac81afe --- /dev/null +++ b/examples/advanced/xray_telescope/README_stt @@ -0,0 +1,40 @@ +******************************************************************************* +******************************************************************************* + Readme File for STT of the X-Ray Telescope Advanced Example +******************************************************************************* +******************************************************************************* + +STT testing of XrayTel should contain the following: + +gmake +XrayTel test.mac + +this should produce one output file: +xraytel.out (0.5 kbytes) + +This should be compared with +xraytel_ref.out + +The job should take ~ 2 minutes on a 1 GHz Linux machine + +The memory usage should be around 6 Mbytes. + +Platforms to be tested on: +SUN and LINUX, NOT WINDOWS. + +At a future date G4ANALYSIS_USE should be set and the AIDA/Anaphe +packages tested. +In this case +- computation time ~ 4 minutes +- memory usage ~ 18 Mbytes +- the file xraytel.hbook is created (~250 kbytes) +- this file should be compared to xraytel_ref.hbook + +If G4ANALYSIS_USE_PLOTTER is set together with G4ANALYSIS_USE, the +AIDA/Anaphe plotter (Grace) can be tested in interactive runs. + +Giovanni Santin +e-mail: giovanni.santin@cern.ch + +******************************************************************************* +******************************************************************************* diff --git a/examples/advanced/xray_telescope/XrayTel.cc b/examples/advanced/xray_telescope/XrayTel.cc index 444fee8957..f4aedc23a8 100644 --- a/examples/advanced/xray_telescope/XrayTel.cc +++ b/examples/advanced/xray_telescope/XrayTel.cc @@ -76,6 +76,7 @@ #include "G4UImanager.hh" #include "G4UIGAG.hh" #include "G4UIterminal.hh" +#include "G4UItcsh.hh" #include "XrayTelDetectorConstruction.hh" #include "XrayTelPhysicsList.hh" #include "XrayTelVisManager.hh" @@ -110,8 +111,13 @@ int main( int argc, char** argv ) // get the pointer to the User Interface manager G4UImanager *UI = G4UImanager::GetUIpointer(); + G4UIsession * session; if ( argc==1 ){ - G4UIsession * session = new G4UIGAG; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIGAG; +#endif //G4UIsession * session = new G4UIterminal; session->SessionStart(); delete session; diff --git a/examples/advanced/xray_telescope/analysis/Lab/cloud.tcl b/examples/advanced/xray_telescope/analysis/Lab/cloud.tcl new file mode 100644 index 0000000000..d9b7819ab7 --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/cloud.tcl @@ -0,0 +1,92 @@ +# +# ******************************************************************** +# * 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 new file mode 100644 index 0000000000..be0d65964c --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/g4Xt.xrm @@ -0,0 +1,364 @@ + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!!!! +!!!! 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 new file mode 100644 index 0000000000..3e919f2da8 --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/gui.mac @@ -0,0 +1,21 @@ +# +# 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 new file mode 100755 index 0000000000..de838a8933 --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/jas.sh @@ -0,0 +1,3 @@ +#!/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 new file mode 100755 index 0000000000..d61b4ed635 --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/main.xml @@ -0,0 +1,380 @@ + + + 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 new file mode 100644 index 0000000000..cff0a8c12d --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/run.mac @@ -0,0 +1,9 @@ +/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 new file mode 100644 index 0000000000..e682c96e22 --- /dev/null +++ b/examples/advanced/xray_telescope/analysis/Lab/session.tcl @@ -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. * +# ******************************************************************** +# +#///////////////////////////////////////////////////////////////////////////// +#///////////////////////////////////////////////////////////////////////////// +#///////////////////////////////////////////////////////////////////////////// +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/anaphe.gmk b/examples/advanced/xray_telescope/anaphe.gmk deleted file mode 100644 index 497fd7a5c4..0000000000 --- a/examples/advanced/xray_telescope/anaphe.gmk +++ /dev/null @@ -1,33 +0,0 @@ - -# Some pieces to include if Anaphe is selected as analysis environment -# be aware that this will be obsolete as soon as Anaphe is implementing -# the AIDA 2.2 interfaces. - -# -# This requires the env-var LHCXX_REL_DIR to be set up correctly, -# see the first lines in G4ComptonTest.cc -# - -CPPFLAGS += -I$(LHCXX_REL_DIR)/include - -ifdef G4ANALYSIS_USE_NTUPLE - CPPFLAGS += -DG4ANALYSIS_USE_NTUPLE -endif - -# C_FLAGS += -I$(LHCXX_REL_DIR)/include - LDFLAGS += -L$(LHCXX_REL_DIR)/lib -# general stuff: - LOADLIBS += -lHepUtilities -lAIDA_Annotation -# add for Histograms: - LOADLIBS += -lAIDA_HBook -# add for Vectors: - LOADLIBS += -lVector -# add for Plotter: - LOADLIBS += -lAIDA_Plotter -lqp -lqpview -lqt-mt -lqutil -lqt -# add for Ntuples: - LOADLIBS += -lAIDA_Ntuple -lNtupleTag -lNtupleTag_HBook -# ... and finally system stuff and to deal with the "Fortran legacy": - LOADLIBS += -lCHBook -ldl -lg2c -# Xm Xt - LDFLAGS += -L$/usr/local/lib -lXm -L/usr/X11R6/lib -lXt - diff --git a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh similarity index 73% rename from examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe rename to examples/advanced/xray_telescope/include/XrayTelAnalysis.hh index f5486131f5..806608514f 100644 --- a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-Anaphe +++ b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: XrayTelAnalysis.hh-Anaphe,v 1.1 2001/12/10 16:06:37 pfeiffer Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: XrayTelAnalysis.hh,v 1.6 2002/11/19 18:03:14 santin Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copy of his UserAnalyser class) @@ -58,27 +58,37 @@ #define G4PROCESSTESTANALYSIS_HH #include "globals.hh" +#include "G4ios.hh" -// Histogramming from AIDA (through their copy in Anaphe) -#include "Interfaces/IHistogram1D.h" -#include "Interfaces/IHistogram2D.h" +#ifdef G4ANALYSIS_USE +#include "AIDA/IAnalysisFactory.h" -// Histogramming from Anaphe -#include "Interfaces/IHistoManager.h" +#include "AIDA/ITreeFactory.h" +#include "AIDA/ITree.h" -// Ntuples from Anaphe -#include "NtupleTag/LizardNTupleFactory.h" -#include "NtupleTag/LizardQuantity.h" +#include "AIDA/IHistogramFactory.h" +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" +#include "AIDA/IHistogram3D.h" -// Vectors from Anaphe -#include "Interfaces/IVector.h" -#include "Interfaces/IVectorFactory.h" +#include "AIDA/IPlotterFactory.h" +#include "AIDA/IPlotterRegion.h" +#include "AIDA/IPlotter.h" -// Plotting from Anaphe -#include "Interfaces/IPlotter.h" +#include "AIDA/ITupleFactory.h" +#include "AIDA/ITuple.h" + +#include "AIDA/IManagedObject.h" + +// Histogramming from AIDA +class IAnalysisFactory; +class ITree; +class IHistogramFactory; +class ITupleFactory; +class ITuple; +#endif class G4Track; -class NTuple; class XrayTelAnalysis { @@ -98,28 +108,35 @@ private: XrayTelAnalysis(); - void plot1D(IHistogram1D* histo); - void plot2D(IHistogram2D* histo); - +#ifdef G4ANALYSIS_USE_PLOTTER + void plotAll(); +#endif static XrayTelAnalysis* instance; - IHistoManager* histoManager; - IVectorFactory* vectorFactory; - IPlotter* plotter; - - // ---- NOTE ---- - // Histograms are compliant to AIDA interfaces, ntuples are Lizard specific - - Lizard::NTuple* ntuple; - Lizard::NTupleFactory* ntFactory; - +#ifdef G4ANALYSIS_USE + AIDA::IAnalysisFactory *analysisFactory; + AIDA::ITree *tree; + AIDA::IHistogramFactory *histoFactory; + AIDA::ITupleFactory *tupleFactory; +#ifdef G4ANALYSIS_USE_PLOTTER + AIDA::IPlotterFactory *plotterFactory; + AIDA::IPlotter *plotter; +#endif +#endif // Quantities for the ntuple - Lizard::Quantity eKin; - Lizard::Quantity y; - Lizard::Quantity z; - Lizard::Quantity dirX; - Lizard::Quantity dirY; - Lizard::Quantity dirZ; + G4double eKin; + G4double x; + G4double y; + G4double z; + G4double dirX; + G4double dirY; + G4double dirZ; + + G4String asciiFileName; + G4String histFileName; + G4String histFileType; + + // G4std::ofstream asciiFile; }; diff --git a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-AIDA b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-AIDA deleted file mode 100644 index f89d4406c1..0000000000 --- a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh-AIDA +++ /dev/null @@ -1,95 +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: XrayTelAnalysisManager.cc * -// * ------- * -// * * -// * Version: 0.2 * -// * Date: 30/11/00 * -// * Author: A. Pfeiffer, G. Barrand, MG Pia, R Nartallo * -// * Organisation: ESA/ESTEC, Noordwijk, THe Netherlands * -// * * -// ********************************************************************** -// -// CHANGE HISTORY -// -------------- -// -// 07.12.2001 A.Pfeiffer -// - merged with Guy Barrand's AIDA 2.2 port -// -// 30.11.2000 M.G. Pia, R. Nartallo -// - Simplification of code -// - Inheritance directly from the base class G4VAnalysisManager instead -// of the derived class G4AnalysisManager -// -// 16.10.2000 G. Barrand -// - First implementation of XrayAnalysisManager class -// - Provision of code for various AIDA and non-AIDA systems -// -// ********************************************************************** - -#ifndef XrayTelAnalysis_h -#define XrayTelAnalysis_h 1 - -#include "globals.hh" -#include "g4std/vector" -#include "G4ThreeVector.hh" - -class G4Track; - -class IAnalysisFactory; -class ITree; -class IHistogram1D; -class IHistogram2D; -class IPlotter; - -class XrayTelAnalysis { -public: - - virtual ~XrayTelAnalysis(); - - void book(); - void finish(); - void analyseStepping(const G4Track& track, G4bool entering); - - static XrayTelAnalysis* getInstance(int = 0, char** = 0); - -private: - - XrayTelAnalysis(int,char**); - - static XrayTelAnalysis* instance; - - IAnalysisFactory* analysisFactory; - ITree* tree; - IHistogram1D* enteringEnergyHistogram; - IHistogram2D* yzHistogram; - IPlotter* plotter; -}; - -#endif - diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc new file mode 100644 index 0000000000..2806265413 --- /dev/null +++ b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc @@ -0,0 +1,288 @@ +// +// ******************************************************************** +// * 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: XrayTelAnalysis.cc,v 1.8 2002/11/19 18:02:42 santin Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) +// (copied from his UserAnalyser class) +// +// History: +// ----------- +// 8 Nov 2002 GS Migration to AIDA 3 +// 7 Nov 2001 MGP Implementation +// +// ------------------------------------------------------------------- + +#include "XrayTelAnalysis.hh" +#include "globals.hh" +#include "G4Track.hh" +#include "G4ios.hh" +#include "g4std/fstream" +#include "g4std/iomanip" +#include "G4SteppingManager.hh" +#include "G4ThreeVector.hh" + + +XrayTelAnalysis* XrayTelAnalysis::instance = 0; + +XrayTelAnalysis::XrayTelAnalysis() +#ifdef G4ANALYSIS_USE + : analysisFactory(0) + , tree(0) + , histoFactory(0) + , tupleFactory(0) +#ifdef G4ANALYSIS_USE_PLOTTER + , plotterFactory(0) + , plotter(0) +#endif +#endif +{ +#ifdef G4ANALYSIS_USE + histFileName = "xraytel"; + histFileType = "hbook"; +#endif + + asciiFileName="xraytel.out"; + G4std::ofstream asciiFile(asciiFileName, G4std::ios::app); + if(asciiFile.is_open()) { + asciiFile << "Energy (keV) x (mm) y (mm) z (mm)" << G4endl << G4endl; + } +} + +XrayTelAnalysis::~XrayTelAnalysis() +{ +#ifdef G4ANALYSIS_USE + +#ifdef G4ANALYSIS_USE_PLOTTER + if (plotterFactory) delete plotterFactory; + plotterFactory = 0; +#endif + + if (tupleFactory) delete tupleFactory; + tupleFactory = 0; + + if (histoFactory) delete histoFactory; + histoFactory = 0; + + if (tree) delete tree; + tree = 0; + + if (analysisFactory) delete analysisFactory; + analysisFactory = 0; +#endif +} + +XrayTelAnalysis* XrayTelAnalysis::getInstance() +{ + if (instance == 0) instance = new XrayTelAnalysis; + return instance; +} + + +void XrayTelAnalysis::book() +{ +#ifdef G4ANALYSIS_USE + //build up the factories + analysisFactory = AIDA_createAnalysisFactory(); + if(analysisFactory) { + //parameters for the TreeFactory + G4bool fileExists = false; + G4bool readOnly = false; + AIDA::ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); + if(treeFactory) { + G4String histFileNameComplete; + histFileNameComplete = histFileName+".hbook"; + tree = treeFactory->create(histFileNameComplete, "hbook", readOnly, fileExists); + G4cout << " Histogramfile: " << histFileNameComplete << G4endl; + + if (tree) { + G4cout << "Tree store : " << tree->storeName() << G4endl; + G4cout << "Booked Hbook File " << G4endl; + + //HistoFactory and TupleFactory depend on theTree + histoFactory = analysisFactory->createHistogramFactory ( *tree ); + tupleFactory = analysisFactory->createTupleFactory ( *tree ); + + // Book histograms + histoFactory->createHistogram1D("1","Energy, all /keV", 100,0.,100.); + histoFactory->createHistogram2D("2","y-z, all /mm", 100,-500.,500.,100,-500.,500.); + histoFactory->createHistogram1D("3","Energy, entering detector /keV", 500,0.,500.); + histoFactory->createHistogram2D("4","y-z, entering detector /mm", 200,-50.,50.,200,-50.,50.); + + // Book ntuples + AIDA::ITuple* ntuple10 = tupleFactory->create( "10", "Track ntuple", + "double energy,x,y,z,dirx,diry,dirz" ); + assert(ntuple10); + + } + delete treeFactory; + } + } +#endif + +} + +void XrayTelAnalysis::finish() +{ +#ifdef G4ANALYSIS_USE + if (tree) { + // Committing the transaction with the tree + G4std::cout << "Committing..." << G4std::endl; + // write all histograms to file + tree->commit(); + + G4std::cout << "Closing the tree..." << G4std::endl; + + // close (will again commit) + tree->close(); + } + + // extra delete as objects are created in book() method rather than during + // initialisation of class + +#ifdef G4ANALYSIS_USE_PLOTTER + if (plotterFactory) delete plotterFactory; +#endif + + if (tupleFactory) delete tupleFactory; + if (histoFactory) delete histoFactory; + if (tree) delete tree; + if (analysisFactory) delete analysisFactory; +#endif +} + +void XrayTelAnalysis::analyseStepping(const G4Track& track, G4bool entering) +{ + eKin = track.GetKineticEnergy()/keV; + G4ThreeVector pos = track.GetPosition()/mm; + y = pos.y(); + z = pos.z(); + G4ThreeVector dir = track.GetMomentumDirection(); + dirX = dir.x(); + dirY = dir.y(); + dirZ = dir.z(); + +#ifdef G4ANALYSIS_USE + // Fill histograms, all tracks + AIDA::IHistogram1D* h1 = dynamic_cast ( tree->find("1") ); + h1->fill(eKin); // fill(x,y,weight) + AIDA::IHistogram2D* h2 = dynamic_cast ( tree->find("2") ); + h2->fill(y,z); + + // Fill histograms and ntuple, tracks entering the detector + if (entering) { + // Fill and plot histograms + AIDA::IHistogram1D* h3 = dynamic_cast ( tree->find("3") ); + h3->fill(eKin); + AIDA::IHistogram2D* h4 = dynamic_cast ( tree->find("4") ); + h4->fill(y,z); +#ifdef G4ANALYSIS_USE_PLOTTER + plotAll(); +#endif + } + + // Fill ntuple + if (entering) { + + AIDA::ITuple * ntuple = dynamic_cast ( tree->find("10") ); + if (ntuple) { + // Fill the secondaries ntuple + ntuple->fill( ntuple->findColumn( "energy" ), (G4double) eKin ); + ntuple->fill( ntuple->findColumn( "x" ), (G4double) x ); + ntuple->fill( ntuple->findColumn( "y" ), (G4double) y ); + ntuple->fill( ntuple->findColumn( "z" ), (G4double) z ); + ntuple->fill( ntuple->findColumn( "dirx" ), (G4double) dirX ); + ntuple->fill( ntuple->findColumn( "diry" ), (G4double) dirY ); + ntuple->fill( ntuple->findColumn( "dirz" ), (G4double) dirZ ); + + ntuple->addRow(); // check for returning true ... + } else { + G4cout << "Ntuple not found" << G4endl; + } + } + +#endif + + // Write to file + if (entering) { + G4std::ofstream asciiFile(asciiFileName, G4std::ios::app); + if(asciiFile.is_open()) { + asciiFile << G4std::setiosflags(G4std::ios::fixed) + << G4std::setprecision(3) + << G4std::setiosflags(G4std::ios::right) + << G4std::setw(10); + asciiFile << eKin; + asciiFile << G4std::setiosflags(G4std::ios::fixed) + << G4std::setprecision(3) + << G4std::setiosflags(G4std::ios::right) + << G4std::setw(10); + asciiFile << x; + asciiFile << G4std::setiosflags(G4std::ios::fixed) + << G4std::setprecision(3) + << G4std::setiosflags(G4std::ios::right) + << G4std::setw(10); + asciiFile << y; + asciiFile << G4std::setiosflags(G4std::ios::fixed) + << G4std::setprecision(3) + << G4std::setiosflags(G4std::ios::right) + << G4std::setw(10); + asciiFile << z + << G4endl; + asciiFile.close(); + } + } + +} + +#ifdef G4ANALYSIS_USE_PLOTTER +void XrayTelAnalysis::plotAll() +{ + if (!plotter) { + AIDA::IPlotterFactory* plotterFactory = + analysisFactory->createPlotterFactory(); + if(plotterFactory) { + G4cout << "Creating the Plotter" << G4endl; + plotter = plotterFactory->create(); + if(plotter) { + // Map the plotter on screen : + G4cout << "Showing the Plotter on screen" << G4endl; + plotter->show(); + } else { + G4cout << "XrayTelAnalysis::plotAll: WARNING: Plotter not created" << G4endl; + } + delete plotterFactory; + } else { + G4cout << "XrayTelAnalysis::plotAll: WARNING: Plotter Factory not created" << G4endl; + } + } + + if (plotter) { + AIDA::IHistogram1D* hp = dynamic_cast ( tree->find("3") ); + AIDA::IHistogram1D& h = *hp; + (plotter->currentRegion()).plot(h); + plotter->refresh(); + } +} +#endif + diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-AIDA b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-AIDA deleted file mode 100644 index c89f87b597..0000000000 --- a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-AIDA +++ /dev/null @@ -1,215 +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: XrayTelAnalysisManager.cc * -// * ------- * -// * * -// * Version: 0.2 * -// * Date: 30/11/00 * -// * Author: A. Pfeiffer, G. Barrand, MG Pia, R Nartallo * -// * Organisation: ESA/ESTEC, Noordwijk, THe Netherlands * -// * * -// ********************************************************************** -// -// CHANGE HISTORY -// -------------- -// -// 07.12.2001 A.Pfeiffer -// - merged with Guy Barrand's AIDA 2.2 port -// -// 22.11.2001 G.Barrand -// - Adaptation to AIDA -// -// 30.11.2000 M.G. Pia, R. Nartallo -// - Simplification of code: removal of non-Lizard specific code -// - Inheritance directly from the base class G4VAnalysisManager instead -// of the derived class G4AnalysisManager -// -// 15.11.2000 A. Pfeiffer -// - Adaptation to Lizard -// -// 16.10.2000 G. Barrand -// - First implementation of XrayAnalysisManager -// - Provision of code for various AIDA and non-AIDA systems -// -// ********************************************************************** - - -#include "g4std/fstream" - -#include "G4ios.hh" -#include "G4Run.hh" -#include "G4Event.hh" -#include "G4Track.hh" -#include "G4VVisManager.hh" -#include "G4TrajectoryContainer.hh" -#include "G4Trajectory.hh" - -#ifdef G4ANALYSIS_USE -#include -#include -#include -#include -#include -#include -#include -#include -#endif - -#include "XrayTelAnalysis.hh" - -XrayTelAnalysis* XrayTelAnalysis::instance = 0; - -XrayTelAnalysis::XrayTelAnalysis(int argc,char** argv) -:analysisFactory(0) -,tree(0) -,enteringEnergyHistogram(0) -,yzHistogram(0) -{ -#ifdef G4ANALYSIS_USE - // Hooking an AIDA compliant analysis system. - analysisFactory = AIDA_createAnalysisFactory(); - if(analysisFactory) { - - ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); - if(treeFactory) { - // tree = treeFactory->create(); // Tree in memory. - tree = treeFactory->create("XrayTel.root",false,false,"ROOT"); - if(tree) { - IHistogramFactory* hFactory = - analysisFactory->createHistogramFactory(*tree); - if(hFactory) { - // Histogram creation (the below has a name and a label) : - enteringEnergyHistogram = - hFactory->create1D("ekin.vop","Entering energy",100,0,0.5); - // Book the histogram for the 2D position. - // Instead of using a scatter plot, just book enough bins ... - yzHistogram = - hFactory->create2D("position.vop","YZ",200, -50, 50, 200, -50, 50); - delete hFactory; - } - } - delete treeFactory; // Will not delete the ITree. - } - - - /* - The following lines set the plotter that is - needed in this example for a multiple histograms - visualization. Please see the README for more information - */ - IPlotterFactory* plotterFactory = - analysisFactory->createPlotterFactory(argc,argv); - if(plotterFactory) { - plotter = plotterFactory->create(); - if(plotter) { - // Map the plotter on screen : - plotter->show(); - // Set the page title : - plotter->setParameter("pageTitle","XrayTel"); - // Have two plotting regions (one column, two rows). - plotter->createRegions(1,2); - // Attach histograms to plotter regions : - if(enteringEnergyHistogram) { - plotter->plot(*enteringEnergyHistogram); - plotter->next(); - } - if(yzHistogram) { - plotter->plot(*yzHistogram); - } - } - delete plotterFactory; - } - } - -#endif -} - -XrayTelAnalysis::~XrayTelAnalysis() -{ -#ifdef G4ANALYSIS_USE - delete plotter; - delete enteringEnergyHistogram; - delete yzHistogram; - delete analysisFactory; -#endif -} - -XrayTelAnalysis* XrayTelAnalysis::getInstance(G4int argc, char** argv) -{ - if (instance == 0) instance = new XrayTelAnalysis(argc, argv); - return instance; -} - - -void XrayTelAnalysis::book(){ -#ifdef G4ANALYSIS_USE - if(enteringEnergyHistogram) enteringEnergyHistogram->reset(); - if(yzHistogram) yzHistogram->reset(); -#endif -} - -void XrayTelAnalysis::finish(){ -#ifdef G4ANALYSIS_USE - // the following things cannot be done in Run::EndOfRun() - // only now plot the energy of the particles - - if(tree) tree->commit(); // Write histos in file. - - // Give control to the GUI so that someone - // can play with the plotter. The plotter - // should be equipped with an "escape" (button) - // to return of the "interact" method. - G4cout << "Click the escape button to continue..." << G4endl; - if(plotter) plotter->interact(); -#endif -} - -void XrayTelAnalysis::analyseStepping(const G4Track& track, G4bool entering) { -#ifdef G4ANALYSIS_USE - - G4ThreeVector pos = track.GetPosition(); - - if(enteringEnergyHistogram) { - enteringEnergyHistogram->fill(track.GetKineticEnergy()); - } - if(yzHistogram) { - yzHistogram->fill(pos.y(), pos.z()); - } - if(plotter) plotter->refresh(); -#endif -} - - - - - - - - - - diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe deleted file mode 100644 index 2edbfe3b4a..0000000000 --- a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc-Anaphe +++ /dev/null @@ -1,169 +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: XrayTelAnalysis.cc-Anaphe,v 1.1 2001/12/10 16:06:37 pfeiffer Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) -// (copied from his UserAnalyser class) -// -// History: -// ----------- -// 7 Nov 2001 MGP Implementation -// -// ------------------------------------------------------------------- - -#include "XrayTelAnalysis.hh" -#include "globals.hh" -#include "G4Track.hh" -#include "G4SteppingManager.hh" -#include "G4ThreeVector.hh" - -XrayTelAnalysis* XrayTelAnalysis::instance = 0; - -XrayTelAnalysis::XrayTelAnalysis() -{ - histoManager = createIHistoManager(); - ntFactory = Lizard::createNTupleFactory(); - vectorFactory = createIVectorFactory(); - plotter = createIPlotter(); -} - -XrayTelAnalysis::~XrayTelAnalysis() -{ - delete ntFactory; - ntFactory = 0; - - delete histoManager; - histoManager = 0; - - delete vectorFactory; - vectorFactory = 0; - - delete plotter; - plotter = 0; -} - -XrayTelAnalysis* XrayTelAnalysis::getInstance() -{ - if (instance == 0) instance = new XrayTelAnalysis; - return instance; -} - - -void XrayTelAnalysis::book() -{ - histoManager->selectStore("XrayTel.his"); - - // Book histograms - histoManager->create1D("1","Energy, all", 20,0.,10.); - histoManager->create2D("2","y-z, all", 100,-500.,500.,100,-500.,500.); - histoManager->create1D("3","Energy, entering detector", 10,0.,1.); - histoManager->create2D("4","y-z, entering detector", 200,-50.,50.,200,-50.,50.); - - // Divide the plot into 4 zones to show the 4 histograms during execution - plotter->zone(2,2,0,0); - - // Book ntuples - ntuple = ntFactory->createC("XrayTel.his::1"); - - // Add and bind the attributes to the ntuple - if ( !( ntuple->addAndBind( "energy", eKin) && - ntuple->addAndBind( "y" , y ) && - ntuple->addAndBind( "z" , z ) && - ntuple->addAndBind( "dirx" , dirX) && - ntuple->addAndBind( "diry" , dirY) && - ntuple->addAndBind( "dirz" , dirZ) ) ) - { - delete ntuple; - G4Exception(" XrayTelAnalysis::book - Could not addAndBind ntuple"); - } -} - -void XrayTelAnalysis::finish() -{ - // Store histograms - - // Because of a Lizard feature, ntuples must be deleted at this stage, - // not in the destructor (otherwise the ntuples are not stored) - - histoManager->store("1"); - histoManager->store("3"); - histoManager->store("2"); - histoManager->store("4"); - - delete ntuple; - ntuple = 0; - G4cout << "Deleted ntuple" << G4endl; -} - -void XrayTelAnalysis::analyseStepping(const G4Track& track, G4bool entering) -{ - eKin = track.GetKineticEnergy(); - G4ThreeVector pos = track.GetPosition(); - y = pos.y(); - z = pos.z(); - G4ThreeVector dir = track.GetMomentumDirection(); - dirX = dir.x(); - dirY = dir.y(); - dirZ = dir.z(); - - // Fill histograms, all tracks - IHistogram1D* h1 = histoManager->retrieveHisto1D("1"); - h1->fill(eKin); - IHistogram2D* h2 = histoManager->retrieveHisto2D("2"); - h2->fill(y,z); - - // Fill histograms and ntuple, tracks entering the detector - if (entering) - { - // Fill and plot histograms - IHistogram1D* h3 = histoManager->retrieveHisto1D("3"); - h3->fill(eKin); - plot1D(h1); - plot1D(h3); - IHistogram2D* h4 = histoManager->retrieveHisto2D("4"); - h4->fill(y,z); - plot2D(h2); - plot2D(h4); - - // Fill ntuple - ntuple->addRow(); - } -} - -void XrayTelAnalysis::plot1D(IHistogram1D* histo) -{ - IVector* v = vectorFactory->from1D(histo); - plotter->plot(v,0); - plotter->refresh(); - delete v; -} - -void XrayTelAnalysis::plot2D(IHistogram2D* histo) -{ - IVector* v = vectorFactory->from2D(histo); - plotter->plot(v,0); - plotter->refresh(); - delete v; -} diff --git a/examples/advanced/xray_telescope/src/XrayTelEventActionMessenger.cc b/examples/advanced/xray_telescope/src/XrayTelEventActionMessenger.cc index 040f48074d..0962f34e0b 100644 --- a/examples/advanced/xray_telescope/src/XrayTelEventActionMessenger.cc +++ b/examples/advanced/xray_telescope/src/XrayTelEventActionMessenger.cc @@ -63,7 +63,7 @@ XrayTelEventActionMessenger::XrayTelEventActionMessenger(XrayTelEventAction* EvA DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("charged"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc b/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc index 60816320e4..e21f867488 100644 --- a/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc +++ b/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc @@ -82,8 +82,6 @@ void XrayTelSteppingAction::UserSteppingAction(const G4Step* step) G4bool entering = false; G4Track* track = step->GetTrack(); - G4int stepNo = track->GetCurrentStepNumber(); - G4String volName; if (track->GetVolume()) volName = track->GetVolume()->GetName(); G4String nextVolName; diff --git a/examples/advanced/xray_telescope/src/XrayTelVisManager.cc b/examples/advanced/xray_telescope/src/XrayTelVisManager.cc old mode 100644 new mode 100755 index a177067de7..728bb4c5de --- a/examples/advanced/xray_telescope/src/XrayTelVisManager.cc +++ b/examples/advanced/xray_telescope/src/XrayTelVisManager.cc @@ -34,14 +34,14 @@ // * 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 -// +// // // ********************************************************************** @@ -56,6 +56,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -112,6 +113,7 @@ void XrayTelVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/advanced/xray_telescope/test.mac b/examples/advanced/xray_telescope/test.mac index c752355ad1..9733e82d83 100644 --- a/examples/advanced/xray_telescope/test.mac +++ b/examples/advanced/xray_telescope/test.mac @@ -9,8 +9,6 @@ /gps/radius0 30.5 cm /gps/centre 780.1 0. 0. cm /gps/angtype cos -/gps/angrot1 0. 0. 1. -/gps/angrot2 0. 1. 0. /gps/maxtheta 1. deg /gps/energytype Mono /gps/monoenergy 0.5 MeV diff --git a/examples/advanced/xray_telescope/xraytel_ref.hbook b/examples/advanced/xray_telescope/xraytel_ref.hbook new file mode 100644 index 0000000000000000000000000000000000000000..2711573318cbd6330e391f2a2510987db7e283c8 GIT binary patch literal 253952 zcmeI52Yi%8{{NpP2?;HQgbv9DLJuTC>Bw&OnJb)WpXZe)GtcySPp_+K zct8LIKmY_l00ck)1V8`;KmY_l00d5W0&{og@Hh@KyfVu6z@up~k+-b7O}k}XF<1YK z&^txb_Prqu{q}Dxm-5&4<`Jcc`vO{hxY%FQB9j8|2u+LL%H0&&ZTZ`RzwNa#RZF$_ zzu&6$wx6LT`K}A73%v;bw};#1{@Dj`QyrZH)Nl!`v}}@6mzp(Sh$#f$vd)?~#G;k%8|Kfp5NI zF5Md*_#Phk9v1kHli!*a8&RUgm#h#mli`WA&Ew%2q(ue3Benar_G9g% z`L`IO->u~&KFr@f{Cz2Fl@_NtV*+D$VS_(M^jC42ZM>eF#YLen-Z_EMyj|kb@GfI*Yf>mXy21d>EGWyN*}EIfi}cd)3c-Ap{IBEqesRs zq!nd5=5dWS&@Go1)2(@fX~~8vx;Z(EZu~KYZp!S6?4R3kJPM*Cf13b6)F5h3!-6f}P9h?9|6-)}U|b+@0g-tg-?sn3_lhJuj8& z=QyvT>1!^cX(cOYYWBr6xq3b2tz1M?c6~!LcC4k-zrC8yTzL0?(<`0nAG26fP4wSpKMPu~Ijjni^YD&p_$JQZ!@CoqxDVm?Q_ z?E>j6emn#p5MSofVA>X*S>J+Bg?rI~0NJyimH(b9%r41nNg1oH0u{X6onb@ohT0iGrWK zRMWEa{nf&`?3DVo9ajDGZ1)kj>IxpxQ`4FYgXR*By7CP4n;(JZkaxnZbFAoP&y{o0 zR$5wJeQ~S$&(a|a#p9u$6iyo>*w;4?G=!Vck6>d~qZu>uhWKfAqd9zA<(q7A#4?OW zF>rO)Y_8G%pIi?APr{lKvtN|+^SX1`@hnk_3zb- z{ogQ~Hd5d1U(Z@Ohp-9GNi5f?v&Fu3Y_4M~)17uU%>RUb!2iC!N=wo2^2F%mKj^wU zyz~lIUd+V8Deq=G&HX$3-n#p=f}`&9r0Sd8JJ}=N7-Rmrw%E5=;U$_jfuO8 zGQ9^VcW?zc%hPCdc^UPr`Y#Qu-b*94zE4xLu4h#xce6vDt?VPagN^h*!`gUG7U|^j zX^}4W8>Ra8v468^Ej!WXBeK2zYJHLaBmF`5VRldcN9+^NBI=a6lx+6d6kj!+Cd^Bt zzJ=o`vvM7!RJ=%C9N$qJ=fl*ZU=4M444{-PTPZp3pERg=0;O$PPotNeLPN?Pr3`yE z4d3!3#gsF4z;ibn?-{F~rlq>}Ye}wC{XZ+ZO+C3G{-%E5=`uFLlYMohs?RdR9PTH4Dk(moADfd+BTC$JY*{4uq=3CTb^Y_$eZ8dc$ zdW@pVUZIY02Px&sLTR>j$!hAbFL%723Sw0xH48>lbw zv~<0tMH}NAZhdC7)12k?nX?sjiJqv%=!djI_Nn_7a+I#2Ngo!|fVCZ{d&Wlg)2`vv zt!f;l7Dm$m_Z1ZB-A!HG`>9>#$<#J?Bt=zCqjq_7X#n5v(6PiVzk4J4)$#RQ|w0XckI>DjqFf`liJ5^ zqX`BwC1;!|^LV?p?@?T_gW5mS zhX$74OR>41vgdpY*piZ;^_}i@F0o6+;tAH5(BE|LW>;y8*)D$p`?s?rwcYT&tjm%e z!>AkIGb7U7=6#8}7Pq19`F|z*TqnE3lcL}4`L*wD%x~Elb@y2;g4e8-^dv2Yb@B9N zl?5Ntz{-Wx#=nuY;!mhc(LY$Fww!vDe?q+FSg1V=UV<-yWH5wi9Es5 z-Tz=;@%l2+!zgaMwW_ z*!}i})IsY_ss01hxoQr@R{3O~qLcq-8XA`^^wc!N1b2P=3CQ}bz5_NL!p^;NsiguV)XLr)y_K3Z1me0`|6CCMtq)el%l9n>B z$n@E0r=*nLWMBIVCFCWtIog?`?zIe9Jru3xIqG4(!A8w>uNaTGuHkjpWA+QEm1nHz zN3n0uKb?Ad9jwZ60sCd_*A!WN8q4AP9FOtCaVny?(G!;n7L|0%01-%owUzEACQU#F}!UsCtVXtF#1OebY* zXHTbmuc!MD*WpaF(>BiM=?ne;Ve{NKP?z{2l*PyBv2mYLpUKZrKW#PH+z+wWOBWgE zLYhltvfuVsvo-cYYUlr%BInMdq-Fo5MDOdAIr$YDy5T;yBEMR{RcljMcpF=OLb=~i zw_UGkvAW;AmQo#z`d0C_KK}_4{ok(TcZsn%^W=XQ%HO8alk3bO=0cS}#<8#(x3J>; z=csjje>wJPSr9|L9o01O{0qcf51ZlMsV8VP+M8f~Hs#0B7VDbx5p4>Kb8MsTB}-|l z=O^kMw?vN9#e7z5;R?3UTPApgdV-BbLfHwWXKweDS+PErU8=r*6UDlZh$qX`czc*! zF3WmK#xBtZp!EDPlyb*V)>lh#O$=`=V@&toe5t>zG4AO1Xf4^h757n`_Y>+9*Nz6y zjG`{uG-|na11r`psDEgFvk~qZ&2KguFJouAmr`2RIN5KB_x+8!<$XrIv^Uwyr4Q*l zv_8s*y7HPb*BG&(>nHkVttY$Ic_H;Es-nSF_fgv|pHh~iM6{)BU4b}f(qvEe>e^0O z=6$heru2x}hO%SD_AWAy^@@K=&JXm6eV;N1?_|pz2lXZX%Gx10_9|+fUCz-T&<0TN z%oIwm+9vy(QMu<)RLWRtQFcrAmhjf4tYReUA+bKG^sLtBW!)3zK1_4DtE-*lYV z*V2g0cPT#iOp3@TCCbX8ZpGy~kF)E$y88ht>`f_#)BfwXxxZoWX*W`D?P@w@rHxgU z$5W@xU$7mHi(QBP-!^4o^-74p_MW3c;$~Jb` zxmwKED09bBRDBPTULv20wF`Eo`)nF{-9Spu;By;%EhJ8RmAY>p$gcMOyD7t}7#iJF zW!9)xUwNoBQF`n&w~t~=&Xav-vBs0S>`gl9nf5Hz|EAvGf7JSz;gk!j`08KyKW0_l z(`fYOO=3=%eO&Pw4bIZpKT9sOGOsv_{A|V9Y$sShM70~ryr}QYWkfMmW*RH9|Juu_ zN5RR&=kusj`I}-blzp5ZE!J5Z>vmJx7kg4zwtokWb1#;2e#vu}Q(t$QSTkgi?($H6 znHd_*nwcB*jB-(SRX^CA2I0D4bk8VP^@352weq#5?vBUgymJR<8fBJ0FVYclt`g`uBmL411;6KaUzJ_vNl_8@UGiRfokXz|n zmHANdZ^&4Qz2lutC&!ml`-)AJmYq)Hiq2ync<<3~()hh`$NrIhu=o6*QC$3TN-KVb zGV))il$D9>n+IReH~KdlLl`Rl#x#+28{Y$F?7xXUVOD9N+&A~9T$xAi>odBm%qr1r zN2!M+>OXk~$UOr+JPDK-e=~K+97p!d6)e{MuW;-iZ8NUhv?w;!zlkz8e?&=Dr&4Qs zOZJt0J*%iFt*_t4bW`S$Rkp{xV}C&%sl(2cRF>M8^?a$@C%8x z&(wZnX+HW`yjPV1y^Bb`~M>6{j}0osQtz$8kX`u z_V1EK`Z~9`|1#)fEW<}*ZePSjU+d;;k9=$|##(7J+feWFOT`*jxbsHA0p!c9>ZhO#fpr?K3s@LAQNVxNH=3-sUOk#&XGTh&s_6yr=WC#~!@m8j~F zy4=%~{D)Y+cOLaC?Lz(bEoBF<-Nz2w|I1caoNKgO*F2}utdPrmY^aN@IJ)|&`(Dkq zgMXXLy(%lpMnl#^nYW}`&X;B6?xLuQE6HAP4jZkFcHJ*-#yK{Rew+U*c31h2l;IyL z=kvSf#frHXcDMhBP$9C)d&<03J*D)7DASCOV{51dzKvx|$ivNF#&i$WZ!`KS!@~Vw zEA1`GUgW2a?w84y|2d6yUeDJ1u5tak8^CO<;onyMOrvWmzGCk-``mp!4fec$q%U7` zqu95gAM}L0*U0FWkQ?h3#kM|WOw~K8?lZe@{Fd!VU~ja_AFd=V(rCt5|0{K?vLyV~ ze{ip(?(q?F-$swjJH=iev42;eS-Za+s@Iv0nv$Chs(WoctMU~%->OyV~t5IL?s6|sk{&#X;PwJXm zDLeUDwm*5DzD?tIVK@9SuKSu@F~(Q+NlkYWFwOm~XjkN(Q@eJEx_UQLjQwP@J67My z?OJudpMY^f96Kbk_DN(p39`m9*mL2&a%}{omT2IU=%KeE$b0<+-$GMbH`3ohM zMzgz0c824Z;%YQ&WavscGDi7z&P&W&2J*6TJZO{~-7?Bmxu`4O8|~Cb&K77}X;9^J za&L*)<2z~1du*!5?h2g8t&dxcH7j_qZterbJf~65jP=Z)&(E$@MzbX;4_LV^n5e$6 z>H`Wl%x#0p=az2pah!ULYyC=1h(`A2v=`~4($;9Fv2s@Ii=>#$1bNn`d+tp%%{h?` z@_y;Mr{VROD7OtMyRIVtFJk``opeX0>>Kt^$fLow<*dTDy*}{_nGS}!-kg4}2%gTS z_D1+C)MOqIVrlS@$o_!E9GaDly3&%Z^j66;Bax+psC7A`A;lNyTRjoso`1ITvoUHc zLF+^V`8tF+(-r0JB=)yIxBrEQMGO2oDL;doKK0)N62n}o<_&D)PMGLv9i-pHFMuTlso$C?t|=Ld0!g5 z7v>vkzV1tYc@wQ zj&CTge7W3vEzVl?&yE-CAHsi?CxjhUf1B+azf~SIs)dqU%~$Cw+|`s&cD`7jq|^tW z6k~mAz4j(C4`azW#CSl|OJ@I#^-!?1&i=CTXUU9dW)4HJZxtTVhETt`XHy&dyOiSF zM*}wSGr7gB^(z0apmu|4G?BV~H{V_kSG^@;boksjCfW zh@V#e2sM>1!P+sA)-2Dxo_b~8N^#DYWnVe1>^oMHf4Y8u&AR}U9}QifG}ed8tx%#U z8#K=GKWbl+E$3tS**x}!cc!poj!#`o&Hnt##V~hiHlx0cvF^Xq;NmsnE)B}wd@q~tEjw0yF%cIr=F>NNy36}o24s9eiIq1{w}O|bZP76E z*^ppyH?|?t%^>AO>IKqAq?c71OLb+YG?>rI7vT?@AH=@yh)$8O{iC7m(0zMAI*< z*Lv#fo+!7J|4cH8xiWDli&*RC{W5XpwU*-zR8YLbu`bI(=@FBm@}Fgz@j5abKV&~l z+>?>?;2YGoWC(R#yM?rI8ncc<3=bmR^hf%3+0Bsgx{A?F?JhutlC2@GbhP2 zd;FXjd%o`T?pAE9{4(ynH0vANC|U0XVQVa>!ODcWe_-}YeY3y0KNt53Q5(-nYEgWe zI8QF_InlTI-&AITxh444m$7oQKBCLR&+UzKzb*UkVn2VYJbnf_cPsnazggVp63Q)6 z2dVbP91mlfnd4z(?8-lKkD~CWhI(3UpUve?)RD$|u(plbD*C6Mj?`+)FzS_en%oD} zT}z{k%G22t$5%~JR%-j$a25R;Es>S`?UYe;IobJLdIR!{#N7n!Ri8VQt45A$>=M#^ zpnogO7}L#cN3mApQlq|F;}dD5 z>K}Nxcic_xZgY9$x^j$f40X&sL?iO0CHmwrP0UMj|%Hgh=Dyi_f9UVe;f#{RGs zW24#n$c^rXvS+L#g*kSehu>wh_G0P~-%9Sa5O+;I>Q8wZyqDUX|3Z}$6&9mtW!~(jFmEn9MmL09pW^?9 zA`6yLl>Blqb+lEy%hUGusTWT2kQeUyV8tU2i#shNc6en z8cUbWbLALci<`e8+an4Pgfo-3^k|Mk##JN$k9jkAvdd6r@ zjVX<4MtQI@Aj-7Wnu5`;lB;sb20Og+9A(Fhm+0h@1M2=bwr69G{=MfcWj-9yoZjKs zQDz!rSGXbakG_iEc_Z%C9X@%!+$SQ|C&c|Kd|i`W=MC9+R^hM`Rr#=L->l3BQwyi> zC+xDDdEZOSuZT64q{5yQxA|3aT-ie0NvnVC>FqiOdn-Tg=zlyJ$-B)@!#itCX1ZRf4M^xN{oKRsCcjdCb@_WDe z{*A_l$vCGUtp2KxAM$*)xOXJFY%z7*)r#8WEu|QL53z1fBMZJ{dA>3FwOVhZn@6(^ zG5S-NJluS$KkA8<=iT~Nye;>ar|>&tI^=&T<~FINcZE2ksOI^EpP~9qQr}|!H&j?v z8(~a4>5fGkDdq+B8~8lzbM}YinuWMSvG0}&xqdJEUwj|K2wz8iZPT2eY;1dB6>pV4 z!pWa{sizHF@82c&R*U=e#r?Z{Er9x0xJm4_=KBI!XJ<<*f6QvCeKD&y#W%accMT;J zeoK9lzoBTyNa`B@f7D}cB8@4`rmXz)+4;_?`mU_6~3KJQgpJ0vP^)Ydt+Dqz#d?GEHCY-(8=wQCFT+;}Rn~xzFkW?;MKp-av^w z9PJ%D*)Golx&A2b)t*+ef|AQdu0XsyYFCj;9SdJ2du4(6Eem#oFHP_3|GufhFa2NW$zw0_JA?apw-cWW zW_ve0M;-E7$vsy?KlDg>_ri~XK zC-w21MG5Zre^s&ZK%4j-3fL8nX@ickIJ28A!U8|6x)#RVf?pFbO+y?*aYj24dr&M z?a4mDC;or2A-*Wm9EIWx9F4SHbL2j9e!e%>@iX;UyN=rC-%D-cdD-Fj=qD7dmA`S2 zz}FSJl&mFN$zn?K@%EbE**Zv!&o}Is_honD`|LzI@O`@SHyI+*!S5e!H zYsBwbP`}JvN?-OL>Xi33OL6>9XIetAH3-2fSij>~b8IUA&GW>rT)yXNjTR^JDtp8; zoJRT6Xk>OWO&Hu)-n}O7W{)m@N!%?>1Cx2Xz}Iji^U7o!)irYh^($XVcK=FHWWaVM_+rZ!A}(!E{uVVTXpUH{JgDZASLqUf(lk^lYyOVbkcz3z4T|1_7F zr_*Qnzi{!nU-5<$?z+MgjvLL*OgM2e&sT*L2P=0)pGk~KT$}jI=N06-Vc_hAmHBY| z3CB#ZdAws$ZjNR=>tbQ6bHL<2Ba}CWiCr+v& zCP$mV@14htb3Y<(C;AxuXs6%t;Qk+N{C~8|l(`HY4|$+Dg)!K;;Ap2?b7Iik!xC(a z7EHY{@d=jh!PFb$S97y#wI`vug%RPYNx&*!TB#k4u_N+J&9rFj7uxd15)9A2Rrv_d z=80!Y>_sy^4%4?$ud(uA^##(SCRwLb(+2g>Iyl=#+W1Y3=hW0Sd`;YYhBk5UNG<22 zA}uHJVXo6+`~)_Hi_w8MHgJ<;3r*{{m8)I!I$!0``FqOy?|)$Ntt}d~INd&T_H28` z6<2V5Zm&f@>Bq!91GzXYYn2wKIb*oG;Sph&xOW6sv5nVr#cwVOeg4|2wMc2s&i^;~ zT$*&D5&w>6o^C|2U=;*FfD>qJ`E0Cxt3+rjH=D{Gt1vc&nmK&tZ!15-F=J)#L{tlh zML1?oL^gvuXt7#Bj7^)kCxgH7fqqIHk81?)r-*)nE$}7;`U(8IMIWxbU+@t96f--T zGi%-@i_-10=FFcp@3J|U*e{wjf7XTb3+LH0E}wOV-OjD?en-i@(!Yu0@8;q_TQ43C z<0HZ{agPXx=&y+WQlP(5a&f?zor}k;zY+)o1P}lL5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5CDN=NWkGahMvP~5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sTKmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00cnb z7!kmp$YTT^-hu!KfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xG)n^5W8Ey11%Uzq5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sHff@vGM??)A_y7SA009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!XIEn-Y_0T#v+eX^7 z810;(-b@^Sua-09D=p`wB5mT{k=$J5_z7$X7o!7jdv0GmEi|p<9xiTrZM>$r`0Es^ zwZFARgBGXTXU&;EYu;sZF0o%UYyPYY=NHbiXIycG-OkN(cOnjJIqA3a_ckpjbBSit z+6srbyokTcxXd;M^MZ4DudBBgZ2j0- z=zsE-b1QR{yAVMD1V8`;KmY_l00ck)1V8`;KmY`qlt5to-|tQ>r{5iN4xr}v|90+M zi(un_vR}1e_JTQcno4Zan87g+009sH0T2KI5C8!X009sH0T2KIMIbQ#PviRz(*7pr z0BVl^Z{r3df{p)unFlX#_pi^k`-b0s|KcYT@|=CwKilmeZ+LvCBvgK}|C<|}nK>1o zwaJQij*4yf=Iz_ga;EilwmWxIjMF|iCT{lGPTvs6h|!Vj2lU9#quy?nIqMm_Gu1wS#@R^~zRWqrONw>P+55o#A0GbL-obY`{QQ&nlxr`3T z009sH0T2KI5C8!X009sH0T2LzCM6IU|95^=%jx`xoCByi{=b>~)-ve$|GEJq_y6nb zKYLdVzu?@Sdroz%n$+Q!K|5db7K|;*%zph^?_KF_Z(n--K%K?DI1009sH0T2KI5C8!X009sH0T5_X0+IZB{~M0{=3wGWd=4N- z%gO4^e}Awe|7E}==~IrF8xZ>g#2Eo`Pk^{9Q2bs1|II-0GPZ#IfYm=|^}%$IC3 zm{;6{d11G<`CqP@&()8wCqn(6r1)LSA-j3tBgaprY(peG205gER01t(%R}~Xxox~FXCfCx8!g)TR{RzH4e^L}xHW%I7a!_5 zBYUbVCs&`?@)51GQmY|~K9PEIvik5oRT*#lM#;XCP?x{&yeFQ^TJzs`7ImEX&1K<# z8h^zj`T_yJBO~YZ$yq#;H_juw;zY&|NjqXodB%> literal 0 HcmV?d00001 diff --git a/examples/advanced/xray_telescope/xraytel_ref.out b/examples/advanced/xray_telescope/xraytel_ref.out new file mode 100644 index 0000000000..9613c096be --- /dev/null +++ b/examples/advanced/xray_telescope/xraytel_ref.out @@ -0,0 +1,12 @@ +Energy (keV) x (mm) y (mm) z (mm) + + 350.027 0.000 -16.963 27.520 + 292.781 0.000 -23.553 -2.691 + 363.827 0.000 11.863 -26.777 + 271.803 0.000 -29.070 8.563 + 430.076 0.000 16.300 -16.432 + 310.581 0.000 26.055 10.980 + 354.546 0.000 10.077 6.967 + 439.404 0.000 8.090 14.062 + 23.139 0.000 -18.247 22.987 + 255.990 0.000 -22.044 -9.484 diff --git a/examples/extended/analysis/A01/A01.aida b/examples/extended/analysis/A01/A01.aida new file mode 100644 index 0000000000000000000000000000000000000000..194695e9f29646a6faa96cd2cf7a6d34ec834c88 GIT binary patch literal 14706 zcmZviWl&tvwykk52n25=!QInHaCdhCG{IehySqEVX&f4NcZcBa?(X_>?A~*$-u|^~ z{o1wGo@N-J$8*ZY`^|;-M<;)) zyZgiG(Ol=p`-acMQm3A-kDJfO-N)N5vXA=v5@0Zq;?U<*TvNDD9ET6ZzvzryX2Zf6(>I-yK*vIFi10VP2{HkG*3~mxoH) zt@lxd%IqIE3l$aT7w4TVua^RRytl(Mc+7hIXb0m8Tw^aQ2O2&tZzn|yo#4omG68|N z<{El=a1v`70%v}CTh~QorEHvW)H8s*CTxvr>_*u9l1jr?^m5` z?XKh5y83*b0eaB_9?lQP_ct#h3O;W1x8LBey(;|<-pX2aUb7DFR-`;1y5??HiXPW! z)^|Ln*P~zOZWcnERGnN-(t4*`I@rS+nP2ZE{$#BS%$eG5JchL5`5v}TK}|E;UUWQO zzeg>-9bAz%{&|n8+#Xx+cv}&8UNFqZplkNJJKihf>_i#KZ;`c0DXso<@2CoAy+JGZ=!;^7NvvyOB0ipdXXJ?~l678++oO`8nv*5G`Lu_09 zbzJ6;VU&xM+clrCl4w${xvS`_c0-G7UN=(_*T>-l{r1=WG~H$5_nqTEm6hH;<9qi@ zE~QxScP615Hh>i8NKTk{-0uSbB>{s$SFnqRY5SFgPk&vE%UjkiRcXj|bVI$fQ0c*^qlG+{a7F zKGC0NVuq>s;>5WPSfOiq_xv^KLEMG5pTjW4exdc|k>Din%Y>=dm^j<2t;FtokyQ(= zER`+f5)!&PP&$az<}OWInE^Qfzx4?TBbC%@oRs{2L}i4wvC`_cHIq)Fos25sny+$eprr%`8-x60WWmN0$PdVl`ZHji69qI9&F`)H@iEl~ZRj}gvi1%rNae8SFF zB7=z4$V~7AVKQYg_iMZ<2jjuzZtr7O@7ZZY}0*7 z9cPhMgd`22pb`?R5P}{tdUz*J&aEQJ z1Gxqn--tY!QZkMaJPXuhi5&x3zp2E{g*(|7*WS(lJnHi6N)AqI%tc63V~(x+WDb_l zs08mR=i}f9#*Jygx3+doBk-|~3jrydA+kI{)3v?s`F_)SdFE^uJ(DWGLz&Yy{_cD2 z)zYKY-(%=R;n((!DEv7;u4^ruWL}S7IHlU{oCE&B1_7{u>9Pu~eXr3-Z&1_7ui<`- zsk&zfVS{u6Fw~z_TIBAKC*kuMh!YS`v?VlFZ>K+BkmlIp)W#g)U?~3K|4qdl0P1wk zQ-G%aHcW?%n(0wRCc}QYi4ceW+l_5<8o@lEPH6dybu2$gtOdUKX1$YLDr%d2gcP+X zgfex8K$K81&&`-iVu*K_EH`%@F*F-JU|->r|2ZWsrcVlYbr~3nkbs3eIBp0T)iQ`F zANPwNzTwDhER4cl=rUkO?spc;veKBj6nD8v-BFTqnHWGF-ps-uvb^j^1zOj{hoJvi z-glmD-&ByWreb7MU@8ethKsaF{jNT#ngmrvfi}i=$e&Oz!32Y4aI(3&Tm?MH6_i4& z9-=RVFuk` zA!LvzKHws9x6esODNw=tRl#*FENt10ISq(*u&7^2{dukqI+`Spd~{4z0-365 zqmF%-$UdHtIC7;ASOss5wMHriKwOAjX9ukx%-6T%AO$;z%jE98<+TuNFOj;h%b%=6 zfuevseE=CFbc1o^PdxLStdzWMxLa^=z=^i*j7X>zibXjc#n7C|jw-WBo4o?!-4U9i zz*U2b$z2FMbBD3;7~55^=FTp1>6+00D}S z*gBRZVv%FnCQ+SuCby%RA$iIfkQ+5AZbn{*xs3Go8%fHKRFRYQR7eHjttp2$J zQ^95;x0WLL`D#Sj{$+wiGm{QCFvR{N<{Yo!ii^-Xq(pP#NkEzSpTr~O--03&IrqNF z^2Z0a>fNoUO~1h!rc^b!utG8+Rb#BlrB?9q_~*%!9@9^3m|UQa)Uw;;HLY3Oudyxy zyOl{_9eaytgWE8P%02OuH2fR#s{pBE2qv(#eoI}i%3ZMqo3suT@W{hoRfO#m*TSf} z&=YLTO|`a1JYC2t3gyHz;j>g3!CPyrbZF!X=U#$Sa65lXsuvxB1Cvmhw_L2sIj8aj z1@+evfFUpluEr(X1fdV4#P8e=f(S$zV|}p7wr#*IKkP?7r_t8kf%WXb5CSiKK>mNq z>y6L1kErUaTB>|VSkZA}`SF%sL-BW@Abq?Y*fY6>N>xIDfm?vizB7d+jTPNZEiNeS=7C_2e^G|-ORS` zLvIq{&T==y0Bl;iQYZV>gP=}Y=Wv>S=6M0SHiH|V6RpHDWa$UZJ_*4-GF|4K(XqB* zEPTU&vpC9cemS*L2)?6SgppSfSA;4|A{QAbHY*qRhDTOUnTKQ+JLD`&Y|DA_5X^7H z3kN-J1Z4E94enxsElO=kZvN-B1C;!`OA;_xW@LP}Z53rxfOn^?R(5=2KuMZZUMe*| zc|r&k>Q3>%>VX?8Nk&XeH^Oc6L|xoAj5~fW(d!?!{dV+HgY)n>=LU5)Zi8^OBX?}e zp4Ginm#CrbuVcRvk`;Rih=X*w{a2N>^;XkfA3QokYGR}sz-#BCs12LgrvSuuwi zqBOjMMVfqlY$sN+CSrol8SlBcPP$0&Fui%lmm}_xPVNOJ5H!+g3E8Xnmh%Dzc$V+` zyP5E!j$;VJS+i@Adqf_Ak)OrTacynduSdoVWy$RiOYH|+XC%g}Z4QgY5*xigl{`D~{9kB^ERh z)U~@I{i{kwn|hf+2~pOO%g=gJG75!+#D44y20*7HO~x!aNLd5!i7zqZW^g%Nl-2?- zjOzhhy}99d)0F3-lmrTxjX+nn@pG?VVg5oUf%s-dz~1(;=J%}f`5ttvxZaWi)KC|e z;jUHaiOB>b3WhY8&!kc1E|JY14AFEfn)PAkAmO6^g4()M7(bz)3AZ{Pb(^wwloj`e zTxxmFUuM{7goe9nnSW4wN^oe}{7Enj70T-el`u@n?xV`p$X;f-sz<^_$VlvB9~;$#;im)eOKgk1FAW65cL~3hx4f} z+LmI2_xfx%@5BYs+(=F7K1CO zI&A7;Ds_c_w+j<~N=1V7_2|&?9BL>Hb&O)$;FI@Hnf0zjLnMX*TGtuXY|-hm&|tM8 zz6dtsCZx|=HHaUqI7_Ht#ngT>Sr09J0%CYIH!ysHp_E4Ef)t`SZz@tWGF4mse|pDM z@ZnA{60=FYoflFI+UtU-nQ2Os&28AEj&rF3&k4hfM-ytTIW?Pv!J0y^;VIwRJVPA5 zfurnhaqiT9uPlB@Eqt0WQCtZ%nO~iuT^i2r#L28Z*tOhJI}$xwvmgsaZZXcZaGA()0idK0#uwsOD$4rmS+^APl-dw?+@x=l>Dn2)szffjY{8s{ z8mgK1a0X>l9Hs!xxm-(u*rch&P>4b3sWT8q)2$tWY4}zX_K@CBPaCa@u70AlB#&J@ z!VQXZzd4vXLYqNLml5}D$h|)HcqUzro{_HykzLolf=>;Q7BwbrLS7rUH1rxjRMkbb z7$^?6X|Oe6ZpuD_^ z1935)kX@#TQ~1+zq*SR~t{1Nh9rkbD-zAN#l7oflOp1S;cZa5bsbr2X$@dWw%LX^I zu2FYO9QHF3(Mpvt)Wd!W9-g8S`^Gy42+o$U>2<<_aEEU3uZ`?^T)&@i42Co1B8 z_(fC2{w%+(6VYJ=`6;>~J`pX?8w-+X_YK4$u8_sgtqWiiFd*4}TdFHG;5U`E>#f~d zy0rSIR2~c-{8|pEWE|kK(Jmw*v+OqeO-Fu=pGog-1cd`7{Vqi220oV!8Gn4}@t zF7i+$oJ7g@onbi7|6x1`*bo`T<8Fasbu3$qF)*%7wi|7pg~o{P?ysC_GJPjof`iQ# zdURMdZ8hWlP}Q8ZU*9l5Xap#pMX-Ra_gfZxYlnfi@kdtEAdZ8`ooH^2<3z@4C^HhY zyDeKKVi5S6`rBm(r_@lTXj~wx4~Q2Q5q`TaA}qfv7&mr5f=k6G(}B#bFABe5Q(@Yl zSUr$Hs9b?=ac&3*BACF>#!ihl2QP$oRFKAo)F~~~SSJFd z0R>Uh68>1GYTY+PL@{erg<3^@p$jx6QFrYU`Ui0|zP4+*WcSm@PVRF3CG@|9BUOv~ zwPl*8&N!nd)kmyoc!Wffb1G;Z>cVIXg@XJ^02{-yx07DMUUDa>1S|*3-CAj@}McRV- zDU0Pdeu=ejeqm8k}>wZuwv1F`k@W#?PNQzS>v$W#BDplJ=auYJYR z)NUc@HCwZF$-_@o$Q7o0_8=bFHn+*?MJW@|wIv4SSTyEIFtQqv(>}z(R&$LsuVtHo zgJtY)wH`?ZXM2*$B$+FH+}K%t0#$tpFybFdjmwM^D*Vz_3w^1&Z`Z)orwkJ==au%$ zq#YE?+C#@aH`o>tLzy|#UH4+t^zz(x4DEqSbf&4!=1HPcG%XYGw%v})RR_U)i9)yf zQXUZc>su?`3h$kOo$5d##lSJYASnF+_{TbHg}2eo=4N%jdHmNu7GipNLxj>8WV$~^ z^FX30gGy?gRaGyN8#7vZ#O=@!cDZW5dsxYdIj7pF5~T)d5ufaS?uELhc_Ez`_gNy9RzXb+ zYeZFBmYt~yEbA7LY!l+-iME`Qlngw$0LX+T#gK!pOZ3wJ{F&lMhQd;d)R9aW>$wZ+)T@`&*cSd?1uDm*A!0e~oT;t2pfAII<;{#TTs!)KpdqO}-u1Ju!zo zrrSTuvIjXhIWqQCEx+_+Y!w_>O*E`@5@8VYZ-npUNobRX6GMD zu9Ho;TUhJd2H|?n_&C$fjvH^1*so(J!?A>iW*Kx9dFti90ORC;Cd6#yKvyK!qJ1{$ zbyA+idN$>xk}yYZVN8wD0+|T67rf)q>>nMXIM|6)(j<;FrgtwcWGQ!^2+MJ4d36Utr3KTU98?B-Lq6DT|~@KCrCTdqj+l)S$`9-SJMCE zEteW$fYmTGXoBj50m>IId-q-E%CUSq zUWblg4lF$$_QEg{GuTWx=c(W>NK4!1xM4i#oM7bvl1GD$dut4qs$L-m&D__vY1HYN z5Qc%aC8~t)-`rcapn*5@wMYob2kJR!vwo9p=1H9LdTjwW6qfjzO%fm+sivhUaEq+* zymsPVtCsXo$YF_XC=NTT=8@G*)QmAPL2YGeR$SSC*+$E8AW_gt}F6iM0 zIq^rOb>>{F!7__=Do_?sI5UWl06JgFAg<>iVB4DU{;g-Bs`lMqOxsb1jri;5-ka%y z1+dcLm<}AjY7D=&MC17^FS6&ENfhCkm!$NBVCg9|Kgg+khi{-oGcWNpiisvxY+fS+ zJ>IJao(^SmB8!kZKY1*LuNP8{4a#0uOA67dz2YwaHGcUYmQ=gtX62eHiuFYd`dJirge^BLGfJ=-nYlz4&|I}p_aFE0Z~y9qb%zXkN+O?N}D2uN9=-u1g6&m=_EgU{8M&0f`P1kJBOmFv2s08 z?wAf=#5L5P5%l+cD9(d-!b1)g;l^$@{5D-36uH5hsHo3}_5N4mM*B2qArKP6BX9JX zU~iGm+>J@wL(W^kvya)~a7#$YE>s1Z^)Gir2>z1`arq|k4n<-Lry1-eSDumKa?ITT z#0ZL(7wUXN;kjAlV_LKB2MdxZW_8*S1Gsii%{SB~a*N|?a8WUnac&K#DCS5`pB{Ff z|H~&ywsaGaRT9N z&yMaAVUWrdiv-s;$_5qS7$v8i11r6W=9RbNuwFK4CIG_iDqN6am8 z=Si)TthYYj&T0BtQ`IKx0U`%vE7P+RNl}YSet$a}&SIZQdmyVq-`SSz?=>Y*{4X%V zhc2AWo7>mAvT%R;I83d;|8cy>`KRNplKDb!qw{rpZsy?m^tgZKpz$xh9xZDXSl55M zNm0oD*t(xf(tS%Q+gM%e?C5xYK6*>Z))R2MxqoSWsbms(J!{SGaJ{;IKYCjm#j~Y$ zb@6$5JyvM+dAogfNwj}s35&>Em%qPzTRZUSsa)%P-oMX0^16&x$a>#9zni-$^5JF> zuBg=W6p8D6+wp1jxcV*7+Trf~uwCVQQfBH>X(MpJ?Bo8H(kQI2@@3=U`8evHzrDiY z%^7Qh&+hK^{s>hsjBf1J%iLDt{g`_Ll>~VQa;`PVlJY!3vEFgHLdxgi{-K)P?zKaD zt_PKOAr4;9&|hEoy4rig)OGZ_%O3Pu<$vMq2xs?rxwri|)Q^cHsqOeT&`0k62he{E zaDiOf-T~Whfx2zu*JmdTKC>^|nGa%Dn9Ijq;sFq(=lAooYF7`Bm+O1*`r5i1C%9XS z0K-Fxw8E>+%SC7WH8bp^*yZ8j_Qz6bSAh8`QyA>13-d)M+>jgcuIFISM)iS0R$J`} z@9XY(mZJgcb4-~)XUFr~w}o5NjVSfUg>+W0R!-gJ*JNRJ z*gQu0CXMUfs-v3uQtt;aLq@K5&z0QkrZiVpY76VPV*gmh7DyIamTsRg zQk7@%;iTzZUJc>_s9ij(2eniF1+)L5*Lm4^M=GQg3stR8nJ{NWB_qqL>Tb;#2F<+I zrj|ALwYstGyNuE=n{|AM(vYbwJ39NXn@aU^$g^g~b0*!+C>FY-l}^)+2qVjWgqKrV z1pCRPSHTbbFwtZ+9WD*|ooE>c9rt_80%tGH%KL#uo0~yyu|~MG+#}lduLc0*O#W2_ zxAf4vviXN?z6c7)uM)t8sO)c-lPg@9 z!F~#ql7Dh~c?;P&$2{vk6^0eM>pC=PJBB)IQ>w68FIR0NxYkOT+%AJ3;wePIo!FHp_tPfT*%%CXKutu$9jLLsekidxx(V*YAiOTtLPk% z*P0~C1~$Q9U~3=hO4Z1YIu_4(ea)C!HnugAyoYZ==|)d8cH|i|WCK1RbEG^`OKY?n z+pL1#z&~m~E=xi|(J?vr_wXrr@`n9z;%8j=-ELH)0!v#3Mf$IBt!_l(${9uD`f#V8 zz5lI7sD!Bs)FEH&h4Er!zca6H27RIB7j$)y)JFua`cC1mXhaXqs=x5IvXm0>F$A{L z3t=oA!(~a(ilxT;!VmE7bRrL7i&D)X96z`0BT(S}sMRQhmj2nK5(X8TOO%RIiz1IE zMIbAJ>fb{W=|)w%peNgcrgFrfTK|{*{s(LgM#SO{+Ey)q0~&sqAsBE=*I4hw6^h^u zY16dIYr&mxwF2Ai7-43Y!l6HDlh$Ol&S60dYT@%li9r{#rQ^v4t>wPaxVZ_p5$Z~n zKY*=N&Ti<$vmkyiiMhE7%c(^BM-|3ROBlLg$^ zI^3!PbduR9M&f;FLf2na=cJF)hM>c=A)AqXlr_z$OMgRJ?Jc!<;C*&EwF}jzY>p$N zR#`Q-<>#?XwR$4{91}iW?F_|9nlUEsXF()cT4vX>a;Wa)pDZ!mKclGwm6i&BQhZm4 zY}?d^shlIUMnl88y;cSPFM#zT`Xbe>g2L0cLV`%07Lvv>VADxrB3w$FVkyze;qDJU{Z0Tak#WM?69suUsO#eE7-19FJrTB$_%2Gk^U9T?t(RoDgi^= zbD04hTemEw&opGzZ=qCs2>FvxSZ{g-XRhAe?W^H+64B9vLg9w(MW88r))NOxoX`vQq2(snMMCG99I6Xg~cE(!lgyet;_OC`;8Bb8@Mb!Y)fG zmUNK%OjYrT1&QOUP(rKSE^rEHF}vJG@y# zF)wYht1JkT(c%Pf>k%oB+*)h>OK`-jq;2SCa!T>plNoN{Tn6(mEviOi!4G@9uLJ|C zX>hw^%%u%Xssl!cN?LN`7BUK%AyAf#^Mc1Y3L2J>ii}IDdqs zZCiVHmEThcNRaI#X#ej~Tx`B@mj2Ux@nQ3Tr>IwPZ}QH#jUn6Jk4CZe8jSu=h@qB4 zuVhh`Ce3)Vv}FyS2V^bdCvGb$3R(YLDF>^OIyte5n>!~*Afz#o)8~**9pIcM-d#oY zTjW0L>AZbC1}qbx+h<8Ml*R z6rr46iK>nxftS4(4|o89sM=_3fLN6}Kout{mAJ{pV^vb4m?x#N)_F~+QS44c z1mRg9xXd4ljA!+P0z`V`n0?8E7BY|B;S4L=B>@=|2&VsJ47|8pdNqDZB?z}eRJAh( zR84ca>FZ91!v%6d+eu1oFxBHss@d?3Sd}@N>z5z%DQfB#=JRAHO5gW$BG|)HBh0EQ zCld20c_qew+o}8csYPdK9FmHz9!dBogDggM>Oo9+r#etZ&a$3_5pdGTiO_j02%$RaIUE;KE~*ibRKAm$;g*tf%&cjl^hioeqEF+4S{}o^D8oXC zZxl@8ImIX(&~3;GAh|#*b-(_tT&(_$IU$Ym3~dAB-$UDdUlB%(_-tlM+NR=SL8Q zjPCT3Y0LOA_`;Mjf+jQrvZ0GCU#!&WWFWrp!1m2j2fLdAaUm2+4sI<`ZC01^taFrj z^xT<13+4V2b0zyGvRT!;?u@GT{|N4rzT z4sd`8dk3`B)e{YdMKBPz`m0XQ$HsxY7F_9zVUnCQx&bB(x=f3hvX7yeCN9O*Ozpjs z_KQR+Jz750PUi_uhFNZBy5DlLojwqE9M}!Br871_88@FXPsv#LhfJh;3qBnG4>&$B z!47z5P@{+`E^cnE!v)43J0`W%(ydFI;F`s@p~cqHjPt6rxS4Ykf-@L)C>W3(sSU*C z7H71K^x!3CNVcm92TBhL-t*BeK!FTp z7RX6vCJusYBlsDV3ZsVG+i{eI;_Qn*kq&_c$u zZ_QT!3lWkFm*8!(lO^pA3mP%4;!u*Op2Q6@F3rgyl}8c~W$a zf$0olJ<*F-#S2ipH?K}qG1Ye<9!(XERzvU#HT_>g*i*Czq&rIF;T z{gKzL6Tz%VUeQmUaQ)(6Ry3HEx65MrVgi`vJ)bm#bLom_c*W3e5Rm5rjHLSQ7RcJG z<8?T!>72Xi(#R1Qg%?Ja78(MJ@REmu>KDG?WKhq{L?r4`9$lb>eGbbhWg#{!BdX2N z3)T8Ou)yJ-Ry@3SHplEg0nD`)UI}bKw*I_KRVQbbKKao>l~~|H<>VABCRFw-+t`@> zxbJIGcvv=tZ*{)n_AAW(hHC=%;CJZ|2E!E5!ygOZU=qiZ#eu=D)ED;5+(JRlxzJ8! z1MaCKJqb2ojMu!0Ry#w40%6Y7r^zjm+EgJOJ`E&Mtgq1+956AgtzKHRvH}7- zfj~~BIw`XY#a7)MKZ&HADs*%P6m2hM7oN*!=i3Dol@yt$yD#+;9=0Kb5`1Bn5z1Op zEi>M}3KO(df+oU8m|Yl>S)qM>-GyaAlLD@OY5*JxUZpD1d1T#Q7J}CS2GLEp=3na9 zxm76Y7rfAt#@J)U0kGm#iqma|1jt@@h4?hZKly0Cv?y&9+s<+x1MZ@p#otH~od$bP z|3JT6$-8VhUQcA{nONDO=y^_4MzVEB0v4&NAaOkHsc>G6`&6455-l5q&Zg>LM(HD+ zIY_e)_+vW*5?pMnxKppvB-gb$*Ij=vxUuBSR~&-JqN1!=@}!lJJwr@f;r8S7Gbf+ z^x*N<-e#2Y0HU>Ar%gAL>uvm8n1@nF&k4D8p%->~NuQueC*ohr%ED(<fVy`R5igJXcfLI4d%XkWsq{leFe8HvI|oVC#}Gb;2kx zPq6?30p4*EdYdcJRG)PUyC(f z&G#yAVUW31oOy6H%kYVgXf|#)TZ8KB1pP)F)-pHdDci50^ka0I7WiGfb zbwdX|wgH%7!!`4R8fx8l&&+f{@c!#Jt5Vs`AHH$(hwYpZ-*o1b+Ul*mSlXh36b?9I zt<|lF{Qm=5Yic@Y2*xE*wZ?5>Z$#u331TnbdFciY(mf$^Xpf_Q<} zC)6G7|8;Vl=O1=WsA;7HS>py+`*_C_8qW{f-|5=7w`#-d+V;?Ba4-U<^uMeV1Myt@ z3~c3PxG{gX{an`uaw7DPk4fbfTWFA4NGp47ua_t8gQ-81nEQ9&vj7-+y%V55_UsaL z0K*<8ac|S77(8RwJ#Ldnv%B4G=bgI$@oh1msDC*p+m1g^9oPTKbWuk|(1iF4r9mp| zFRhFb2@XfxFV*eo;sZH!#Rs7VL!CI%#Go7DcXJeAwr)mcX=*smjKHa0Q7wT(&qDg+ z{RHZ^Y!aabSYMd6L@hJP1QoIyNmvw0pzOka=3BmJY4{ePK%kpmR+X zm)@l+ptr}K56p8IaS^u9k0mH0eOgXSIFKlDHDq4o_AtbxUxZIz2^(EDAh$|F>=`Wn z5_~C9I7=lfLY`;E6Ynn`S&nd!6-DyCQO) zUyC{b6dA@@c@p`byj9#Be5;fjXu9Ob*tL=Y|9hWPISM}Gko>33cRe362T>EucS6GClF@&`c`{pZ0X2TY!8>#>i=1i?gPrI;o0|zf@PU zV4tMeAMI^nlYIXGX=Ar@rkQ5gc4eXXegrCZah(BO`a@0zJqL;i`6xF`+rNV(8A{)& z*sU_}3n5VU_%uxrj;gUI7HAL7hNZ7>DG4YAXw@jGh3MU1yY|c0dQssF&QOvABlmh{ zL41zHgVGms2X2lTk06}^qa7iJLhJLD)y8JqUmN=!<6h}6z=wY=e88r*Vqbx?!d#8l zI6CdDbJ{6-(R3s&)xC&?X#4Hd2UZQlztK@S=X#vb%z4bx8LE~?)ovngE!T~pFdX5L z(LK|IHB&&%1!Gp;*cPCfb4|yT$1&i!$fMD>-vzo2VVGIjI<~2PJF(B*u}I1b z_XNTb8uW=SR=ycN0!?X{}FW$9$2!zR~V^z(>_ z`K`>>W+Uw!@#1mU3tsjPtwobfQ&--@xa>JBnHZN!HqNAX{$_MmN3I;P0#4oVCgc9p zU(}?kZeY42z5#bARw*^&-lVVYf(p)`lv*aeZvRW&N#Ttg`ispxrAIas1A2ATzNY(_ z{Lu+6s8`xHb3xAuq$XGP+b$A~3!+Q(bKxGNCgx#K2?AH{_PfcC>r@Vuc<5w`cX{bXUWAZ8fP^5XJB zfbE8wXlnw_A&mw*sKT}myDQb==+)x?or~m;V*XAg_ol??1X|INU*>6m!Wk%YifUpJ z%?Z9};_mF&G1~YlbNG5&3p0I7mag5G2I$2G^Posv#*xGgDeW%#>^p9}-6tuiVnr@zlN7=A`1=XO#XW%!2BZ8Le z%oD}bl_y(`6P)6Ykp1O_B$E-Fg9z7cE5a88H-UdB+;@{ORjJA;rtjAmNxa=^gXRDs ze#d=1A9d&mBmv*dHCg7Rye_0GXhP-wc`c4dqpO?TPr*;1VLcEvmo1AwB}l}YSQxAc z4k8t_!t(R`k%yJTTplRQUmeXgu;e>pXvyqZS%er0nbEZqAB;oc zSWZBI`$gU(N`Pz{};U%aa!R>vgvJWaRmmy>VC7(-!x6g2R{qFJddlmv$hB!g}T*GusKq zpW>8kK6!4 z8>Q!=!IRea>?)-;zr)!UWyQTri+=9VHw+M!fc&j#}CO~Xq#J6ZGvZ$(8` zy?;IYXNODR(S-!f$F-!-X0bLe-R5=D8dDX3s~y?&i!nN|OTnPW7EC;s}w zn?Min!O!x{)aKXX%CLX0JkW&!QC*@!#Qg;x_Yoy4?8X+_vxXI!Uldk79Qr_c29AU( zhH)aEDX$*gE~jTu1^eLs-ur!PLmZjDX&&_MOIb0+qC^TFiCH8g-6OyEBX@>oZs1F0 zC^6aO3})t3>={L(cm7NyB7grYgu@D-af#u8`ut$j+N8ch;F9>G&55yxryMP0WUe*` z!%@s*a*AibkogqjZ3T7L!~A$3IT`Vs$xU3}f{&0qEufqEs1;|@gk|2lN&OU0bJ6nV zBTK?N7pC8QRFg%%S^lpLrqGORp*vZx#F?z47TdWsi;?>&&?fZg_L6bCOCYGK5ie`Wj74Dh{+&waBR_c^Y3 zNU;70NKf0l%8XW(!Bcm$>2QB!@v*{u%-)VHYk95deYYoriA&~cx+J&U>Rrjtu7{FT zBm^RRePCI#S=x5n+Weeb8j=ub_5K*K^z&kTmG)~vYW-!D5yzAI8CQA~DxbOnfLX<} zesLfA3eWFb<|fB_)y*hnVYsvxLVS&<8=lM4&Om55TipJb%UGYI9 zT}Q-=5QunT2@dVx(i|PG!x8VPqy;0aUy!}g)V{y(9azkF&rtPFc6;jRWX+K{Dqi8S zBPK_)2rJw#xTyr59aLvJC!8!7d`M>m8M@9C=s!oj?N};3b^o{s`~me?>`zk<+R2sB zgG!*^?*|oZ${^bS1_<3od#4+<&Dw-gz7}Q4dTaI@ux~^her)k*VkJ-#KfgmB-S>Fr zx$xkkokwe@T>xLRFmO@0)P&ALI`ZFD1@HCU`#rN-%3-KiI6Bmf?3|Wl+ zC2+ne)^JTfzmT)+ROdn z49BZtu9r*(B$LQDe{3LbD|t3-pcZO*E>z!mAXv_B;mj7Uzr+nLjBU-L&D|bCn4bU~B>dr-;Ec+QY_WvIcRrMt-~~smYiK+=iAPhspISa0<<91Bvi-h{^|WY~l3JYIXpL;jAij^015 z1&oEbR^657UK_B$pD9xmQct$W)y@9c!5bJLCQ zA%v{p{kL0p5&*?KkBhgbB6IUyjE@h}@XPKnCT5t=$L{bInitialize(); +#endif - // Detector geometry - runManager->SetUserInitialization(new PersEx01DetectorConstruction); - runManager->SetUserInitialization(new PersEx01PhysicsList); - - // UserAction classes. - runManager->SetUserAction(new PersEx01RunAction); - runManager->SetUserAction(new PersEx01PrimaryGeneratorAction); - runManager->SetUserAction(new PersEx01EventAction); - runManager->SetUserAction(new PersEx01StackingAction); + // mandatory user initialization classes + runManager->SetUserInitialization(new A01DetectorConstruction); + runManager->SetUserInitialization(new A01PhysicsList); - // get the pointer to the User Interface manager - G4UImanager* UI = G4UImanager::GetUIpointer(); + // initialize Geant4 kernel + runManager->Initialize(); - if(argc==1) - // Define (G)UI terminal for interactive mode + // mandatory user action class + runManager->SetUserAction(new A01PrimaryGeneratorAction); + + // optional user action classes + runManager->SetUserAction(new A01EventAction); + runManager->SetUserAction(new A01TrackingAction); + + if(argc>1) + // execute an argument macro file if exist { - G4UIsession* session = new G4UIterminal; - UI->ApplyCommand("/control/execute prerunPEx01.mac"); + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + else + // start interactive session + { + G4UIsession* session = new G4UIterminal(); 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 runManager; - delete persistencyManager; return 0; } diff --git a/examples/extended/analysis/A01/GNUmakefile b/examples/extended/analysis/A01/GNUmakefile new file mode 100644 index 0000000000..952cb63ebb --- /dev/null +++ b/examples/extended/analysis/A01/GNUmakefile @@ -0,0 +1,26 @@ +# $Id: GNUmakefile,v 1.2 2002/12/13 11:34:27 gunter Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module +# -------------------------------------------------------------- + +name := A01app +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk + +CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) +CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) + +ifeq ($(G4SYSTEM),Linux-g++) +$(G4TMP)/$(G4SYSTEM)/$(name)/A01HadronPhysics.o: src/A01HadronPhysics.cc + @echo "Compiling A01HadronPhysics.cc ..." + @$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/A01HadronPhysics.cc +endif diff --git a/examples/extended/analysis/A01/History b/examples/extended/analysis/A01/History new file mode 100644 index 0000000000..d826f77095 --- /dev/null +++ b/examples/extended/analysis/A01/History @@ -0,0 +1,18 @@ +$Id: History,v 1.2 2002/11/26 19:43:24 duns Exp $ +------------------------------------------------------------------- + + ========================================================= + A01 History File + ========================================================= + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +--------------------------------------------------------------------------- +26th November 2002 Mark Donszelmann +- Fixed DrifChamberHit to have a reasonable screensize (2) rather than 0.1 +- Fixed minimum value for EmCalHit color to be visible (0.4). + +14th November 2002 Mark Donszelmann +- Added A01 example to repository \ No newline at end of file diff --git a/examples/extended/analysis/A01/eventAction.mac b/examples/extended/analysis/A01/eventAction.mac new file mode 100644 index 0000000000..7f62e61405 --- /dev/null +++ b/examples/extended/analysis/A01/eventAction.mac @@ -0,0 +1,2 @@ +# +/vis/viewer/flush diff --git a/examples/extended/analysis/A01/heprep.mac b/examples/extended/analysis/A01/heprep.mac new file mode 100644 index 0000000000..82ff553412 --- /dev/null +++ b/examples/extended/analysis/A01/heprep.mac @@ -0,0 +1,47 @@ +# +# Macro file for A01app +# +# For initialization of graphics. +# +# 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 HepRepFile +/vis/viewer/set/culling global false +/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 +# Run 10 events and store event displays +/run/beamOn 10 eventAction.mac +# +/mydet/armAngle 60. deg +/mydet/fieldValue 2. tesla +/run/beamOn 10 +# +/mydet/armAngle 30. deg +/mydet/momentum 2. GeV +/mydet/sigmaMomentum 0. +/mydet/sigmaAngle 0. +/run/beamOn 10 +# +/mydet/sigmaAngle 2. deg +/run/beamOn 10 +/vis/viewer/flush +# diff --git a/examples/extended/analysis/A01/heprep2.mac b/examples/extended/analysis/A01/heprep2.mac new file mode 100644 index 0000000000..9c6400e360 --- /dev/null +++ b/examples/extended/analysis/A01/heprep2.mac @@ -0,0 +1,49 @@ +# +# Macro file for A01app +# +# For initialization of graphics. +# +# 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 HepRep +/vis/viewer/set/culling global false +#/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 +# Run 1 events and store event displays +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 5 +# +#/run/beamOn 10 +# +#/mydet/armAngle 30. deg +# +#/mydet/sigmaMomentum 0. +#/mydet/sigmaAngle 0. +#/run/beamOn 10 +# +#/mydet/sigmaAngle 2. deg +#/run/beamOn 10 +/vis/viewer/flush +# diff --git a/examples/extended/analysis/A01/include/A01AnalysisManager.hh b/examples/extended/analysis/A01/include/A01AnalysisManager.hh new file mode 100644 index 0000000000..8a79fee627 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01AnalysisManager.hh @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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 tutorial 1 * +// * * +// * MODULE: A01AnalysisManager.cc * +// * ------- * +// * * +// * Version: 0.1 * +// * Date: January 28 2002 * +// * Author: T.Johnson * +// * Organisation: SLAC * +// * * +// ********************************************************************** +// +// CHANGE HISTORY +// -------------- +// +// +// ********************************************************************** + +#ifndef A01AnalysisManager_h +#define A01AnalysisManager_h 1 + +#include "globals.hh" +#include "g4std/vector" +#include "G4ThreeVector.hh" + +using namespace AIDA; + +class G4Track; + +class AIDA::IAnalysisFactory; +class AIDA::ITree; +class AIDA::IHistogramFactory; +class AIDA::ITupleFactory; +class AIDA::IPlotter; + +class A01AnalysisManager { +public: + + virtual ~A01AnalysisManager(); + IHistogramFactory* getHistogramFactory(); + ITupleFactory* getTupleFactory(); + IPlotter* createPlotter(); + static A01AnalysisManager* getInstance(); + static void dispose(); + +private: + + A01AnalysisManager(); + static A01AnalysisManager* instance; + IAnalysisFactory* analysisFactory; + IHistogramFactory* hFactory; + ITupleFactory* tFactory; + ITree* tree; + +}; + +#endif + diff --git a/examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.hh b/examples/extended/analysis/A01/include/A01CellParameterisation.hh similarity index 73% rename from examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.hh rename to examples/extended/analysis/A01/include/A01CellParameterisation.hh index 6cf4e131d7..ac7e48821e 100644 --- a/examples/extended/biasing/B06/include/B06ImportanceDetectorConstruction.hh +++ b/examples/extended/analysis/A01/include/A01CellParameterisation.hh @@ -20,31 +20,30 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B06ImportanceDetectorConstruction.hh,v 1.3 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: A01CellParameterisation.hh,v 1.3 2002/12/13 11:34:27 gunter Exp $ +// -------------------------------------------------------------- // -#ifndef B06ImportanceDetectorConstruction_hh -#define B06ImportanceDetectorConstruction_hh B06ImportanceDetectorConstruction_hh +#ifndef A01CellParameterisation_H +#define A01CellParameterisation_H 1 #include "globals.hh" - +#include "G4VPVParameterisation.hh" class G4VPhysicalVolume; -class G4VIStore; -class B06ImportanceDetectorConstruction +class A01CellParameterisation : public G4VPVParameterisation { -public: - B06ImportanceDetectorConstruction(); - ~B06ImportanceDetectorConstruction(); + public: + A01CellParameterisation(); + virtual ~A01CellParameterisation(); + virtual void ComputeTransformation + (const G4int copyNo,G4VPhysicalVolume *physVol) const; - G4VIStore* GetIStore(); - -private: - void Construct(); - G4VIStore *fIStore; - + private: + G4double xCell[80]; + G4double yCell[80]; }; #endif + + diff --git a/examples/extended/analysis/A01/include/A01DetectorConstMessenger.hh b/examples/extended/analysis/A01/include/A01DetectorConstMessenger.hh new file mode 100644 index 0000000000..41a3749dd8 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01DetectorConstMessenger.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * 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: A01DetectorConstMessenger.hh,v 1.3 2002/12/13 11:34:27 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01DetectorConstMessenger_h +#define A01DetectorConstMessenger_h 1 + +class A01DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithADoubleAndUnit; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class A01DetectorConstMessenger: public G4UImessenger +{ + public: + A01DetectorConstMessenger(A01DetectorConstruction* mpga); + ~A01DetectorConstMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + A01DetectorConstruction * target; + + private: //commands + G4UIdirectory * mydetDirectory; + G4UIcmdWithADoubleAndUnit* armCmd; + +}; + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01DetectorConstruction.hh b/examples/extended/analysis/A01/include/A01DetectorConstruction.hh new file mode 100644 index 0000000000..f7b954b7ee --- /dev/null +++ b/examples/extended/analysis/A01/include/A01DetectorConstruction.hh @@ -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: A01DetectorConstruction.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01DetectorConstruction_h +#define A01DetectorConstruction_h 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4RotationMatrix.hh" + +class G4VPhysicalVolume; +class G4Material; +class G4VSensitiveDetector; +class G4VisAttributes; +class A01DetectorConstMessenger; +class A01MagneticField; + +class A01DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + A01DetectorConstruction(); + virtual ~A01DetectorConstruction(); + + public: + virtual G4VPhysicalVolume* Construct(); + void SetArmAngle(G4double val); + inline G4double GetArmAngle() { return armAngle; } + + private: + void ConstructMaterials(); + void DestroyMaterials(); + void DumpGeometricalTree(G4VPhysicalVolume* aVolume,G4int depth=0); + + private: + A01DetectorConstMessenger* messenger; + A01MagneticField* magneticField; + + G4Material* air; + G4Material* argonGas; + G4Material* scintillator; + G4Material* CsI; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + G4Material* lead; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + G4VSensitiveDetector* hodoscope1; + G4VSensitiveDetector* hodoscope2; + G4VSensitiveDetector* chamber1; + G4VSensitiveDetector* chamber2; + G4VSensitiveDetector* EMcalorimeter; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + G4VSensitiveDetector* HadCalorimeter; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + G4VisAttributes* worldVisAtt; + G4VisAttributes* magneticVisAtt; + G4VisAttributes* armVisAtt; + G4VisAttributes* hodoscopeVisAtt; + G4VisAttributes* chamberVisAtt; + G4VisAttributes* wirePlaneVisAtt; + G4VisAttributes* EMcalorimeterVisAtt; + G4VisAttributes* cellVisAtt; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + G4VisAttributes* HadCalorimeterVisAtt; + G4VisAttributes* HadCalorimeterCellVisAtt; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + G4double armAngle; + G4RotationMatrix* armRotation; + G4VPhysicalVolume* secondArmPhys; +}; + +#endif + diff --git a/examples/extended/analysis/A01/include/A01DriftChamber.hh b/examples/extended/analysis/A01/include/A01DriftChamber.hh new file mode 100644 index 0000000000..28379fb589 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01DriftChamber.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: A01DriftChamber.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01DriftChamber_h +#define A01DriftChamber_h 1 + +#include "G4VSensitiveDetector.hh" +#include "A01DriftChamberHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class A01DriftChamber : public G4VSensitiveDetector +{ + + public: + A01DriftChamber(G4String name); + virtual ~A01DriftChamber(); + + virtual void Initialize(G4HCofThisEvent*HCE); + virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + virtual void EndOfEvent(G4HCofThisEvent*HCE); + + private: + A01DriftChamberHitsCollection * hitsCollection; + G4int HCID; +}; + + + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01DriftChamberHit.hh b/examples/extended/analysis/A01/include/A01DriftChamberHit.hh new file mode 100644 index 0000000000..24077438a3 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01DriftChamberHit.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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: A01DriftChamberHit.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01DriftChamberHit_h +#define A01DriftChamberHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +class A01DriftChamberHit : public G4VHit +{ + public: + + A01DriftChamberHit(); + A01DriftChamberHit(G4int z); + virtual ~A01DriftChamberHit(); + A01DriftChamberHit(const A01DriftChamberHit &right); + const A01DriftChamberHit& operator=(const A01DriftChamberHit &right); + int operator==(const A01DriftChamberHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + inline float x(); + inline float y(); + + virtual void Draw(); + virtual void Print(); + + private: + G4int layerID; + G4double time; + G4ThreeVector localPos; + G4ThreeVector worldPos; + + public: + inline void SetLayerID(G4int z) { layerID = z; } + inline G4int GetLayerID() const { return layerID; } + inline void SetTime(G4double t) { time = t; } + inline G4double GetTime() const { return time; } + inline void SetLocalPos(G4ThreeVector xyz) { localPos = xyz; } + inline G4ThreeVector GetLocalPos() const { return localPos; } + inline void SetWorldPos(G4ThreeVector xyz) { worldPos = xyz; } + inline G4ThreeVector GetWorldPos() const { return worldPos; } +}; + +typedef G4THitsCollection A01DriftChamberHitsCollection; + +extern G4Allocator A01DriftChamberHitAllocator; + +inline void* A01DriftChamberHit::operator new(size_t) +{ + void* aHit; + aHit = (void*)A01DriftChamberHitAllocator.MallocSingle(); + return aHit; +} + +inline void A01DriftChamberHit::operator delete(void* aHit) +{ + A01DriftChamberHitAllocator.FreeSingle((A01DriftChamberHit*) aHit); +} + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01EMPhysics.hh b/examples/extended/analysis/A01/include/A01EMPhysics.hh new file mode 100644 index 0000000000..acc8a5708d --- /dev/null +++ b/examples/extended/analysis/A01/include/A01EMPhysics.hh @@ -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: A01EMPhysics.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01EMPhysics_h +#define A01EMPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4MultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +class A01EMPhysics : public G4VPhysicsConstructor +{ + public: + A01EMPhysics(const G4String& name ="EM"); + virtual ~A01EMPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Gamma physics + G4PhotoElectricEffect thePhotoEffect; + G4ComptonScattering theComptonEffect; + G4GammaConversion thePairProduction; + + // Electron physics + G4MultipleScattering theElectronMultipleScattering; + G4eIonisation theElectronIonisation; + G4eBremsstrahlung theElectronBremsStrahlung; + + //Positron physics + G4MultipleScattering thePositronMultipleScattering; + G4eIonisation thePositronIonisation; + G4eBremsstrahlung thePositronBremsStrahlung; + G4eplusAnnihilation theAnnihilation; +}; + + +#endif + + + + + diff --git a/examples/extended/analysis/A01/include/A01EmCalorimeter.hh b/examples/extended/analysis/A01/include/A01EmCalorimeter.hh new file mode 100644 index 0000000000..66f5cf74e2 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01EmCalorimeter.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: A01EmCalorimeter.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01EmCalorimeter_h +#define A01EmCalorimeter_h 1 + +#include "G4VSensitiveDetector.hh" +#include "A01EmCalorimeterHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class A01EmCalorimeter : public G4VSensitiveDetector +{ + + public: + A01EmCalorimeter(G4String name); + virtual ~A01EmCalorimeter(); + + virtual void Initialize(G4HCofThisEvent*HCE); + virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + virtual void EndOfEvent(G4HCofThisEvent*HCE); + + private: + A01EmCalorimeterHitsCollection* hitsCollection; + G4int HCID; +}; + + + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh b/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh new file mode 100644 index 0000000000..493a605d86 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01EmCalorimeterHit.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: A01EmCalorimeterHit.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01EmCalorimeterHit_h +#define A01EmCalorimeterHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +class A01EmCalorimeterHit : public G4VHit +{ + public: + + A01EmCalorimeterHit(); + A01EmCalorimeterHit(G4int z); + virtual ~A01EmCalorimeterHit(); + A01EmCalorimeterHit(const A01EmCalorimeterHit &right); + const A01EmCalorimeterHit& operator=(const A01EmCalorimeterHit &right); + int operator==(const A01EmCalorimeterHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + virtual void Draw(); + virtual void Print(); + + private: + G4int cellID; + G4double edep; + G4ThreeVector pos; + G4RotationMatrix rot; + const G4LogicalVolume* pLogV; + + public: + inline void SetCellID(G4int z) { cellID = z; } + inline G4int GetCellID() const { return cellID; } + inline void SetEdep(G4double de) { edep = de; } + inline void AddEdep(G4double de) { edep += de; } + inline G4double GetEdep() const { return edep; } + inline void SetPos(G4ThreeVector xyz) { pos = xyz; } + inline G4ThreeVector GetPos() const { return pos; } + inline void SetRot(G4RotationMatrix rmat) { rot = rmat; } + inline G4RotationMatrix GetRot() const { return rot; } + inline void SetLogV(G4LogicalVolume* val) { pLogV = val; } + inline const G4LogicalVolume* GetLogV() const { return pLogV; } +}; + +typedef G4THitsCollection A01EmCalorimeterHitsCollection; + +extern G4Allocator A01EmCalorimeterHitAllocator; + +inline void* A01EmCalorimeterHit::operator new(size_t) +{ + void* aHit; + aHit = (void*)A01EmCalorimeterHitAllocator.MallocSingle(); + return aHit; +} + +inline void A01EmCalorimeterHit::operator delete(void* aHit) +{ + A01EmCalorimeterHitAllocator.FreeSingle((A01EmCalorimeterHit*) aHit); +} + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01EventAction.hh b/examples/extended/analysis/A01/include/A01EventAction.hh new file mode 100644 index 0000000000..bde75e7b26 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01EventAction.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: A01EventAction.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01EventAction_h +#define A01EventAction_h 1 + +#include "AIDA/AIDA.h" +#include "G4UserEventAction.hh" +#include "globals.hh" + +using namespace AIDA; + +class A01EventActionMessenger; + +class A01EventAction : public G4UserEventAction +{ + public: + A01EventAction(); + virtual ~A01EventAction(); + + public: + virtual void BeginOfEventAction(const G4Event*); + virtual void EndOfEventAction(const G4Event*); + + private: + G4int HHC1ID; + G4int HHC2ID; + G4int DHC1ID; + G4int DHC2ID; + G4int ECHCID; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + G4int HCHCID; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + A01EventActionMessenger* messenger; + G4int verboseLevel; + + IHistogram1D* dc1Hits; + IHistogram1D* dc2Hits; + ICloud2D* dc1XY; + ICloud2D* dc2XY; + ICloud2D* evstof; + ITuple* tuple; + IPlotter* plotter; + + public: + inline void SetVerbose(G4int val) { verboseLevel = val; } + inline G4int GetVerbose() const { return verboseLevel; } +}; + +#endif diff --git a/examples/extended/analysis/A01/include/A01EventActionMessenger.hh b/examples/extended/analysis/A01/include/A01EventActionMessenger.hh new file mode 100644 index 0000000000..39c772d93d --- /dev/null +++ b/examples/extended/analysis/A01/include/A01EventActionMessenger.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: A01EventActionMessenger.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01EventActionMessenger_h +#define A01EventActionMessenger_h 1 + +class A01EventAction; +class G4UIcmdWithAnInteger; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class A01EventActionMessenger: public G4UImessenger +{ + public: + A01EventActionMessenger(A01EventAction* mpga); + ~A01EventActionMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + A01EventAction* target; + + private: //commands + G4UIcmdWithAnInteger* verboseCmd; + +}; + +#endif + + diff --git a/examples/extended/biasing/B06/include/B06PhysicsList.hh b/examples/extended/analysis/A01/include/A01GeneralPhysics.hh similarity index 67% rename from examples/extended/biasing/B06/include/B06PhysicsList.hh rename to examples/extended/analysis/A01/include/A01GeneralPhysics.hh index 9d3ca63ca7..83c4a5321f 100644 --- a/examples/extended/biasing/B06/include/B06PhysicsList.hh +++ b/examples/extended/analysis/A01/include/A01GeneralPhysics.hh @@ -20,44 +20,48 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B06PhysicsList.hh,v 1.2 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: A01GeneralPhysics.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- // -#ifndef B06PhysicsList_h -#define B06PhysicsList_h 1 +#ifndef A01GeneralPhysics_h +#define A01GeneralPhysics_h 1 #include "globals.hh" -#include "G4VUserPhysicsList.hh" +#include "G4ios.hh" -class B06PhysicsList : public G4VUserPhysicsList +#include "G4VPhysicsConstructor.hh" + + +#include "G4Decay.hh" + +class A01GeneralPhysics : public G4VPhysicsConstructor { public: - B06PhysicsList(); - virtual ~B06PhysicsList(); + A01GeneralPhysics(const G4String& name = "general"); + virtual ~A01GeneralPhysics(); - protected: - // Construct particle and physics + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated 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(); - virtual void SetCuts(); - protected: - // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); - - void ConstructAllBosons(); - void ConstructAllLeptons(); - void ConstructAllMesons(); - void ConstructAllBaryons(); - void ConstructAllIons(); - void ConstructAllShortLiveds(); - + G4Decay fDecayProcess; }; + #endif + + + + + + + + diff --git a/examples/extended/analysis/A01/include/A01HadCalorimeter.hh b/examples/extended/analysis/A01/include/A01HadCalorimeter.hh new file mode 100644 index 0000000000..23f24fdb51 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01HadCalorimeter.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: A01HadCalorimeter.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01HadCalorimeter_h +#define A01HadCalorimeter_h 1 + +#include "G4VSensitiveDetector.hh" +#include "A01HadCalorimeterHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class A01HadCalorimeter : public G4VSensitiveDetector +{ + + public: + A01HadCalorimeter(G4String name); + virtual ~A01HadCalorimeter(); + + virtual void Initialize(G4HCofThisEvent*HCE); + virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + virtual void EndOfEvent(G4HCofThisEvent*HCE); + + private: + A01HadCalorimeterHitsCollection* hitsCollection; + G4int HCID; +}; + + + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh b/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh new file mode 100644 index 0000000000..6fcb1a0ac9 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01HadCalorimeterHit.hh @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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: A01HadCalorimeterHit.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01HadCalorimeterHit_h +#define A01HadCalorimeterHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +class A01HadCalorimeterHit : public G4VHit +{ + public: + + A01HadCalorimeterHit(); + A01HadCalorimeterHit(G4int iCol,G4int iRow); + virtual ~A01HadCalorimeterHit(); + A01HadCalorimeterHit(const A01HadCalorimeterHit &right); + const A01HadCalorimeterHit& operator=(const A01HadCalorimeterHit &right); + int operator==(const A01HadCalorimeterHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + virtual void Draw(); + virtual void Print(); + + private: + G4int columnID; + G4int rowID; + G4double edep; + G4ThreeVector pos; + G4RotationMatrix rot; + + public: + inline void SetColumnID(G4int z) { columnID = z; } + inline G4int GetColumnID() const { return columnID; } + inline void SetRowID(G4int z) { rowID = z; } + inline G4int GetRowID() const { return rowID; } + inline void SetEdep(G4double de) { edep = de; } + inline void AddEdep(G4double de) { edep += de; } + inline G4double GetEdep() const { return edep; } + inline void SetPos(G4ThreeVector xyz) { pos = xyz; } + inline G4ThreeVector GetPos() const { return pos; } + inline void SetRot(G4RotationMatrix rmat) { rot = rmat; } + inline G4RotationMatrix GetRot() const { return rot; } + +}; + +typedef G4THitsCollection A01HadCalorimeterHitsCollection; + +extern G4Allocator A01HadCalorimeterHitAllocator; + +inline void* A01HadCalorimeterHit::operator new(size_t) +{ + void* aHit; + aHit = (void*)A01HadCalorimeterHitAllocator.MallocSingle(); + return aHit; +} + +inline void A01HadCalorimeterHit::operator delete(void* aHit) +{ + A01HadCalorimeterHitAllocator.FreeSingle((A01HadCalorimeterHit*) aHit); +} + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01HadronPhysics.hh b/examples/extended/analysis/A01/include/A01HadronPhysics.hh new file mode 100644 index 0000000000..eed7bfb500 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01HadronPhysics.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: A01HadronPhysics.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01HadronPhysics_h +#define A01HadronPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4MultipleScattering.hh" +#include "G4hIonisation.hh" + +class A01HadronPhysics : public G4VPhysicsConstructor +{ + public: + A01HadronPhysics(const G4String& name="hadron"); + virtual ~A01HadronPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // pi+/- physics + G4MultipleScattering fPiPlusMultipleScattering; + G4hIonisation fPiPlusIonisation; + + G4MultipleScattering fPiMinusMultipleScattering; + G4hIonisation fPiMinusIonisation; + + // K+/- physics + G4MultipleScattering fKaonPlusMultipleScattering; + G4hIonisation fKaonPlusIonisation; + + G4MultipleScattering fKaonMinusMultipleScattering; + G4hIonisation fKaonMinusIonisation; + +}; + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01Hodoscope.hh b/examples/extended/analysis/A01/include/A01Hodoscope.hh new file mode 100644 index 0000000000..83467fb6a7 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01Hodoscope.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: A01Hodoscope.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01Hodoscope_h +#define A01Hodoscope_h 1 + +#include "G4VSensitiveDetector.hh" +#include "A01HodoscopeHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class A01Hodoscope : public G4VSensitiveDetector +{ + + public: + A01Hodoscope(G4String name); + virtual ~A01Hodoscope(); + + virtual void Initialize(G4HCofThisEvent*HCE); + virtual G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + virtual void EndOfEvent(G4HCofThisEvent*HCE); + + private: + A01HodoscopeHitsCollection* hitsCollection; + G4int HCID; +}; + + + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01HodoscopeHit.hh b/examples/extended/analysis/A01/include/A01HodoscopeHit.hh new file mode 100644 index 0000000000..806c4cc248 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01HodoscopeHit.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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: A01HodoscopeHit.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01HodoscopeHit_h +#define A01HodoscopeHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +class A01HodoscopeHit : public G4VHit +{ + public: + + A01HodoscopeHit(G4int i,G4double t); + virtual ~A01HodoscopeHit(); + A01HodoscopeHit(const A01HodoscopeHit &right); + const A01HodoscopeHit& operator=(const A01HodoscopeHit &right); + int operator==(const A01HodoscopeHit &right) const; + + + inline void *operator new(size_t); + inline void operator delete(void*aHit); + + void Draw(); + void Print(); + + private: + G4int id; + G4double time; + G4ThreeVector pos; + G4RotationMatrix rot; + const G4LogicalVolume* pLogV; + + public: + inline G4int GetID() const { return id; } + inline G4double GetTime() const { return time; } + inline void SetTime(G4double val) { time = val; } + inline void SetPos(G4ThreeVector xyz) { pos = xyz; } + inline G4ThreeVector GetPos() const { return pos; } + inline void SetRot(G4RotationMatrix rmat) { rot = rmat; } + inline G4RotationMatrix GetRot() const { return rot; } + inline void SetLogV(G4LogicalVolume* val) { pLogV = val; } + inline const G4LogicalVolume* GetLogV() const { return pLogV; } + +}; + +typedef G4THitsCollection A01HodoscopeHitsCollection; + +extern G4Allocator A01HodoscopeHitAllocator; + +inline void* A01HodoscopeHit::operator new(size_t) +{ + void* aHit; + aHit = (void*)A01HodoscopeHitAllocator.MallocSingle(); + return aHit; +} + +inline void A01HodoscopeHit::operator delete(void*aHit) +{ + A01HodoscopeHitAllocator.FreeSingle((A01HodoscopeHit*) aHit); +} + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01IonPhysics.hh b/examples/extended/analysis/A01/include/A01IonPhysics.hh new file mode 100644 index 0000000000..e308e6f10b --- /dev/null +++ b/examples/extended/analysis/A01/include/A01IonPhysics.hh @@ -0,0 +1,101 @@ +// +// ******************************************************************** +// * 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: A01IonPhysics.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01IonPhysics_h +#define A01IonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4LElastic.hh" + +#include "G4DeuteronInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" + +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" + +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" + +class A01IonPhysics : public G4VPhysicsConstructor +{ + public: + A01IonPhysics(const G4String& name="ion"); + virtual ~A01IonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Elastic Process + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; + + // Generic Ion physics + G4MultipleScattering fIonMultipleScattering; + G4hIonisation fIonIonisation; + + // Deuteron physics + G4MultipleScattering fDeuteronMultipleScattering; + G4hIonisation fDeuteronIonisation; + G4DeuteronInelasticProcess fDeuteronProcess; + G4LEDeuteronInelastic* fDeuteronModel; + + // Triton physics + G4MultipleScattering fTritonMultipleScattering; + G4hIonisation fTritonIonisation; + G4TritonInelasticProcess fTritonProcess; + G4LETritonInelastic* fTritonModel; + + // Alpha physics + G4MultipleScattering fAlphaMultipleScattering; + G4hIonisation fAlphaIonisation; + G4AlphaInelasticProcess fAlphaProcess; + G4LEAlphaInelastic* fAlphaModel; + + // He3 physics + G4MultipleScattering fHe3MultipleScattering; + G4hIonisation fHe3Ionisation; + +}; + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01MagneticField.hh b/examples/extended/analysis/A01/include/A01MagneticField.hh new file mode 100644 index 0000000000..1ce03166cb --- /dev/null +++ b/examples/extended/analysis/A01/include/A01MagneticField.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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: A01MagneticField.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01MagneticField_H +#define A01MagneticField_H 1 + +#include "globals.hh" +#include "G4MagneticField.hh" +class A01MagneticFieldMessenger; + +class A01MagneticField : public G4MagneticField +{ + public: + A01MagneticField(); + ~A01MagneticField(); + + virtual void GetFieldValue( const double Point[3], + double *Bfield ) const; + + private: + A01MagneticFieldMessenger* messenger; + G4double By; + G4double rmax_sq; + G4double ymax; + + public: + inline void SetField(G4double val) { By = val; } + inline G4double GetField() const { return By; } +}; + +#endif + diff --git a/examples/extended/analysis/A01/include/A01MagneticFieldMessenger.hh b/examples/extended/analysis/A01/include/A01MagneticFieldMessenger.hh new file mode 100644 index 0000000000..603b287c7c --- /dev/null +++ b/examples/extended/analysis/A01/include/A01MagneticFieldMessenger.hh @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * 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: A01MagneticFieldMessenger.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01MagneticFieldMessenger_h +#define A01MagneticFieldMessenger_h 1 + +class A01MagneticField; +class G4UIcmdWithADoubleAndUnit; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class A01MagneticFieldMessenger: public G4UImessenger +{ + public: + A01MagneticFieldMessenger(A01MagneticField* mpga); + ~A01MagneticFieldMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + A01MagneticField * target; + + G4UIcmdWithADoubleAndUnit* fieldCmd; + +}; + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01MuonPhysics.hh b/examples/extended/analysis/A01/include/A01MuonPhysics.hh new file mode 100644 index 0000000000..f4be398339 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01MuonPhysics.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: A01MuonPhysics.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01MuonPhysics_h +#define A01MuonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4MultipleScattering.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuIonisation.hh" +#include "G4hIonisation.hh" + +class A01MuonPhysics : public G4VPhysicsConstructor +{ + public: + A01MuonPhysics(const G4String& name="muon"); + virtual ~A01MuonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Muon physics + G4MultipleScattering fMuPlusMultipleScattering; + G4MuBremsstrahlung fMuPlusBremsstrahlung ; + G4MuPairProduction fMuPlusPairProduction; + G4MuIonisation fMuPlusIonisation; + + G4MultipleScattering fMuMinusMultipleScattering; + G4MuBremsstrahlung fMuMinusBremsstrahlung ; + G4MuPairProduction fMuMinusPairProduction; + G4MuIonisation fMuMinusIonisation; + + // Tau physics + G4MultipleScattering fTauPlusMultipleScattering; + G4hIonisation fTauPlusIonisation; + + G4MultipleScattering fTauMinusMultipleScattering; + G4hIonisation fTauMinusIonisation; + +}; + + +#endif + diff --git a/examples/extended/analysis/A01/include/A01PhysicsList.hh b/examples/extended/analysis/A01/include/A01PhysicsList.hh new file mode 100644 index 0000000000..5a3c5dd579 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01PhysicsList.hh @@ -0,0 +1,49 @@ +// +// ******************************************************************** +// * 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: A01PhysicsList.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01PhysicsList_h +#define A01PhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" + +class A01PhysicsList: public G4VModularPhysicsList +{ +public: + A01PhysicsList(); + virtual ~A01PhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); + + +}; + + +#endif + + + diff --git a/examples/extended/analysis/A01/include/A01PrimaryGeneratorAction.hh b/examples/extended/analysis/A01/include/A01PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..0dbc9c6ad6 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01PrimaryGeneratorAction.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: A01PrimaryGeneratorAction.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01PrimaryGeneratorAction_h +#define A01PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4ParticleGun; +class G4Event; +class G4ParticleDefinition; +class A01PrimaryGeneratorMessenger; + +class A01PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + A01PrimaryGeneratorAction(); + virtual ~A01PrimaryGeneratorAction(); + + virtual void GeneratePrimaries(G4Event*); + + private: + G4ParticleGun* particleGun; + A01PrimaryGeneratorMessenger* gunMessenger; + G4ParticleDefinition* positron; + G4ParticleDefinition* muon; + G4ParticleDefinition* pion; + G4ParticleDefinition* kaon; + G4ParticleDefinition* proton; + G4double momentum; + G4double sigmaMomentum; + G4double sigmaAngle; + G4bool randomizePrimary; + + public: + inline void SetMomentum(G4double val) { momentum = val; } + inline G4double GetMomentum() const { return momentum; } + inline void SetSigmaMomentum(G4double val) { sigmaMomentum = val; } + inline G4double GetSigmaMomentum() const { return sigmaMomentum; } + inline void SetSigmaAngle(G4double val) { sigmaAngle = val; } + inline G4double GetSigmaAngle() const { return sigmaAngle; } + inline void SetRandomize(G4bool val) { randomizePrimary = val; } + inline G4bool GetRandomize() const { return randomizePrimary; } +}; + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01PrimaryGeneratorMessenger.hh b/examples/extended/analysis/A01/include/A01PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..dd9791cb52 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01PrimaryGeneratorMessenger.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: A01PrimaryGeneratorMessenger.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// +#ifndef A01PrimaryGeneratorMessenger_h +#define A01PrimaryGeneratorMessenger_h 1 + +class A01PrimaryGeneratorAction; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithABool; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class A01PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + A01PrimaryGeneratorMessenger(A01PrimaryGeneratorAction* mpga); + ~A01PrimaryGeneratorMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + A01PrimaryGeneratorAction * target; + + private: //commands + G4UIcmdWithADoubleAndUnit* momentumCmd; + G4UIcmdWithADoubleAndUnit* sigmaMomCmd; + G4UIcmdWithADoubleAndUnit* sigmaAngCmd; + G4UIcmdWithABool* randomCmd; + +}; + +#endif + + diff --git a/examples/extended/analysis/A01/include/A01TrackingAction.hh b/examples/extended/analysis/A01/include/A01TrackingAction.hh new file mode 100644 index 0000000000..4fdea66375 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01TrackingAction.hh @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * 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: A01TrackingAction.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01TrackingAction_h +#define A01TrackingAction_h 1 + +#include "G4UserTrackingAction.hh" + +class A01TrackingAction : public G4UserTrackingAction +{ + public: + A01TrackingAction(); + virtual ~A01TrackingAction(); + + virtual void PreUserTrackingAction(const G4Track*); +}; + +#endif diff --git a/examples/extended/analysis/A01/include/A01Trajectory.hh b/examples/extended/analysis/A01/include/A01Trajectory.hh new file mode 100644 index 0000000000..6c1785250c --- /dev/null +++ b/examples/extended/analysis/A01/include/A01Trajectory.hh @@ -0,0 +1,129 @@ +// +// ******************************************************************** +// * 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: A01Trajectory.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +class A01Trajectory; + +#ifndef A01Trajectory_h +#define A01Trajectory_h 1 + +#include "G4VTrajectory.hh" +#include "G4Allocator.hh" +#include // Include from 'system' +#include "G4ios.hh" // Include from 'system' +#include "g4std/vector" // +#include "globals.hh" // Include from 'global' +#include "G4ParticleDefinition.hh" // Include from 'particle+matter' +#include "G4TrajectoryPoint.hh" // Include from 'tracking' +#include "G4Track.hh" +#include "G4Step.hh" + +typedef G4std::vector A01TrajectoryPointContainer; + +class G4Polyline; // Forward declaration. + +/////////////////// +class A01Trajectory : public G4VTrajectory +/////////////////// +{ + +//-------- + public: +//-------- + +// Constructor/Destrcutor + + A01Trajectory(); + + A01Trajectory(const G4Track* aTrack); + A01Trajectory(A01Trajectory &); + virtual ~A01Trajectory(); + +// Operators + inline void* operator new(size_t); + inline void operator delete(void*); + inline int operator == (const A01Trajectory& right) const + {return (this==&right);} + +// Get/Set functions + inline G4int GetTrackID() const + { return fTrackID; } + inline G4int GetParentID() const + { return fParentID; } + inline G4String GetParticleName() const + { return ParticleName; } + inline G4double GetCharge() const + { return PDGCharge; } + inline G4int GetPDGEncoding() const + { return PDGEncoding; } + inline G4ThreeVector GetInitialMomentum() const + { return InitialMomentum; } + +// Other member functions + virtual void ShowTrajectory() const; + virtual void DrawTrajectory(G4int i_mode=0) const; + virtual void AppendStep(const G4Step* aStep); + virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); + + G4ParticleDefinition* GetParticleDefinition(); + +//--------- + private: +//--------- + + A01TrajectoryPointContainer* positionRecord; + G4int fTrackID; + G4int fParentID; + G4ParticleDefinition* fpParticleDefinition; + G4String ParticleName; + G4double PDGCharge; + G4int PDGEncoding; +// FIXME not initialized !!! + G4ThreeVector InitialMomentum; + +//--------- + public: +//--------- + virtual int GetPointEntries() const + { return positionRecord->size(); } + virtual G4VTrajectoryPoint* GetPoint(G4int i) const + { return (*positionRecord)[i]; } +}; + +extern G4Allocator myTrajectoryAllocator; + +inline void* A01Trajectory::operator new(size_t) +{ + void* aTrajectory; + aTrajectory = (void*)myTrajectoryAllocator.MallocSingle(); + return aTrajectory; +} + +inline void A01Trajectory::operator delete(void* aTrajectory) +{ + myTrajectoryAllocator.FreeSingle((A01Trajectory*)aTrajectory); +} + +#endif diff --git a/examples/extended/analysis/A01/include/A01VisManager.hh b/examples/extended/analysis/A01/include/A01VisManager.hh new file mode 100644 index 0000000000..beaffc1834 --- /dev/null +++ b/examples/extended/analysis/A01/include/A01VisManager.hh @@ -0,0 +1,46 @@ +// +// ******************************************************************** +// * 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.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// -------------------------------------------------------------- +// + +#ifndef A01VisManager_h +#define A01VisManager_h 1 + +#ifdef G4VIS_USE + +#include "G4VisManager.hh" + +class A01VisManager: public G4VisManager +{ + public: + A01VisManager (); + + private: + void RegisterGraphicsSystems (); + +}; + +#endif + +#endif diff --git a/examples/extended/analysis/A01/include/AIDA/AIDA.h b/examples/extended/analysis/A01/include/AIDA/AIDA.h new file mode 100644 index 0000000000..5332825ced --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/AIDA.h @@ -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. * +// ******************************************************************** +// +#ifndef AIDA_H +#define AIDA_H 1 + +#include "AIDA/IAnalysisFactory.h" +#include "AIDA/IAnnotation.h" +#include "AIDA/IAxis.h" +#include "AIDA/IAxisStyle.h" +#include "AIDA/IBaseHistogram.h" +#include "AIDA/IBaseStyle.h" +#include "AIDA/IBrushStyle.h" +#include "AIDA/ICloud.h" +#include "AIDA/ICloud1D.h" +#include "AIDA/ICloud2D.h" +#include "AIDA/ICloud3D.h" +#include "AIDA/IConstants.h" +#include "AIDA/IDataPoint.h" +#include "AIDA/IDataPointSet.h" +#include "AIDA/IDataPointSetFactory.h" +#include "AIDA/IDataStyle.h" +#include "AIDA/IEvaluator.h" +#include "AIDA/IFillStyle.h" +#include "AIDA/IFilter.h" +#include "AIDA/IFitData.h" +#include "AIDA/IFitFactory.h" +#include "AIDA/IFitParameterSettings.h" +#include "AIDA/IFitResult.h" +#include "AIDA/IFitter.h" +#include "AIDA/IFunction.h" +#include "AIDA/IFunctionCatalog.h" +#include "AIDA/IFunctionFactory.h" +#include "AIDA/IHistogram.h" +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogram2D.h" +#include "AIDA/IHistogram3D.h" +#include "AIDA/IHistogramFactory.h" +#include "AIDA/IInfo.h" +#include "AIDA/IInfoStyle.h" +#include "AIDA/ILineStyle.h" +#include "AIDA/IManagedObject.h" +#include "AIDA/IMarkerStyle.h" +#include "AIDA/IMeasurement.h" +#include "AIDA/IModelFunction.h" +#include "AIDA/IPlotter.h" +#include "AIDA/IPlotterFactory.h" +#include "AIDA/IPlotterLayout.h" +#include "AIDA/IPlotterRegion.h" +#include "AIDA/IPlotterStyle.h" +#include "AIDA/IProfile.h" +#include "AIDA/IProfile1D.h" +#include "AIDA/IProfile2D.h" +#include "AIDA/IRangeSet.h" +#include "AIDA/ITextStyle.h" +#include "AIDA/ITitleStyle.h" +#include "AIDA/ITree.h" +#include "AIDA/ITreeFactory.h" +#include "AIDA/ITuple.h" +#include "AIDA/ITupleFactory.h" + +#endif /* ifndef AIDA_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h b/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h new file mode 100644 index 0000000000..6ccaef60cc --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IANALYSISFACTORY_H +#define AIDA_IANALYSISFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +namespace AIDA { + +class IDataPointSetFactory; +class IFitFactory; +class IFunctionFactory; +class IHistogramFactory; +class IPlotterFactory; +class ITree; +class ITreeFactory; +class ITupleFactory; + +/** + * The "master" factory from which other factories are obtained. + * Typically accessed by: + *
+ *   IAnalysisFactory af =(IAnalysisFactory) ServiceManager.create("hep.aida.IAnalysisFactory");
+ * 
+ * + * In C++ IAnalysisFactory* af = AIDA_createAnalysisFactory(); + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class IAnalysisFactory { + +public: + /// Destructor. + virtual ~IAnalysisFactory() { /* nop */; } + + /** + * Create an ITreeFactory. + * @return The ITreeFactory. + * + */ + virtual ITreeFactory * createTreeFactory() = 0; + + /** + * Create an IHistogramFactory. + * @param tree The ITree which created histograms will be associated to. + * @return The IHistogramFactory. + * + */ + virtual IHistogramFactory * createHistogramFactory(ITree & tree) = 0; + + /** + * Create an IDataPointSetFactory. + * @param tree The ITree which created IDataPointSet will be associated to. + * @return The IDataPointSetFactory. + * + */ + virtual IDataPointSetFactory * createDataPointSetFactory(ITree & tree) = 0; + + /** + * Create an ITupleFactory. + * @param tree The ITree which created tuples will be associated to. + * @return The ITupleFactory. + * + */ + virtual ITupleFactory * createTupleFactory(ITree & tree) = 0; + + /** + * Create an IFunctionFactory. + * @param tree The ITree which created functions will be associated to. + * @return The IFunctionFactory. + * + */ + virtual IFunctionFactory * createFunctionFactory(ITree & tree) = 0; + + /** + * Create an IPlotterFactory. + * Due to the fact that the plotter factory may activate a GUI + * tookit, the process arguments (passed to the main function) + * could be passed to the plotter factory. Most of the GUI + * toolkit ask for them (Motif, gtk, Qt, FLTK). + */ + + + + + virtual IPlotterFactory * createPlotterFactory(int argc = 0, char * * args = 0) = 0; + + /** + * Create an IFitFactory. + * @return The IFitFactory. + * + */ + virtual IFitFactory * createFitFactory() = 0; +}; // class +}; // namespace AIDA + + + +/** + * To hook an AIDA implementation. + * For example : + * #include + * ... + * IAnalysisFactory* analysisFactory = AIDA_createAnalysisFactory(); + * ... + */ + +extern "C" { + AIDA::IAnalysisFactory* AIDA_createAnalysisFactory(); +} +#endif /* ifndef AIDA_IANALYSISFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAnnotation.h b/examples/extended/analysis/A01/include/AIDA/IAnnotation.h new file mode 100644 index 0000000000..3fcffbe55b --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IAnnotation.h @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IANNOTATION_H +#define AIDA_IANNOTATION_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + + /** + * The list of the commonly accepted keys. + * + */ +#define titleKey "Title" + +namespace AIDA { + +/** + * The annotation holds arbitrary information represented with (key,value) pairs + * of strings. A sticky bit is associated to every item to protect it (or not) + * from a reset operation. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IAnnotation { + +public: + /// Destructor. + virtual ~IAnnotation() { /* nop */; } + + /** + * Add a key/value pair with a given sticky flag. + * If key alredy exists, override its value ? + * @param key The key to be added. + * @param value The key's value. + * @param sticky The key's sticky flag. If true the item will + * not be removed when the method reset or removeItem are invoked. + * The default value for the sticky flag is false. + * @return false If the key already exists. + * + */ + virtual bool addItem(const std::string & key, const std::string & value, bool sticky = false) = 0; + + /** + * Remove the item indicated by a given key. + * @param key The key to be removed. If the key is flagged as "sticky" it + * will not be removed. + * @return false If the key is sticky. + * + */ + virtual bool removeItem(const std::string & key) = 0; + + /** + * Retrieve the value for a given key. + * @param key The key. + * @return The corresponding value. + * + */ + virtual const std::string & value(const std::string & key) const = 0; + + /** + * Set the value for a given key. + * @param key The key whose vale is to be changed. + * @param value The new value. + * + */ + virtual void setValue(const std::string & key, const std::string & value) = 0; + + /** + * Set the sticky flag for a given key. + * @param key The key whose stick flag is to be set. + * @param sticky The new sticky flag. + * + */ + virtual void setSticky(const std::string & key, bool sticky) = 0; + + /** + * Get the size of the IAnnotation, i.e. the number of keys contained in it. + * @return The size of the IAnnotation. + * + */ + virtual int size() const = 0; + + /** + * Get the key at a given position within the IAnnotation. + * @param index The key's position within the IAnnotation. + * @return The corresponding key. + * + */ + virtual const std::string & key(int index) const = 0; + + /** + * Get the value at a given position within the IAnnotation. + * @param index The value's position within the IAnnotation. + * @return The corresponding value. + * + */ + virtual const std::string & value(int index) const = 0; + + /** + * Remove all the non-sticky items. + * + */ + virtual void reset() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IANNOTATION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAxis.h b/examples/extended/analysis/A01/include/AIDA/IAxis.h new file mode 100644 index 0000000000..2154cf6015 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IAxis.h @@ -0,0 +1,124 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IAXIS_H +#define AIDA_IAXIS_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +namespace AIDA { + +/** + * An IAxis represents a binned histogram axis. A 1D Histogram would have + * one Axis representing the X axis, while a 2D Histogram would have two + * axes representing the X and Y Axis. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IAxis { + +public: + /// Destructor. + virtual ~IAxis() { /* nop */; } + + /** + * Check if the IAxis has fixed binning, i.e. if all the bins have the same width. + * @return true if the binning is fixed, false otherwise. + * + */ + virtual bool isFixedBinning() const = 0; + + /** + * Get the lower edge of the IAxis. + * @return The IAxis's lower edge. + * + */ + virtual double lowerEdge() const = 0; + + /** + * Get the upper edge of the IAxis. + * @return The IAxis's upper edge. + * + */ + virtual double upperEdge() const = 0; + + /** + * The number of bins (excluding underflow and overflow) on the IAxis. + * @return The IAxis's number of bins. + * + */ + virtual int bins() const = 0; + + /** + * Get the lower edge of the specified bin. + * @param index The bin number: 0 to bins()-1 for the in-range bins or OVERFLOW or UNDERFLOW. + * @return The lower edge of the corresponding bin; for the underflow bin this is Double.NEGATIVE_INFINITY. + * + */ + virtual double binLowerEdge(int index) const = 0; + + /** + * Get the upper edge of the specified bin. + * @param index The bin number: 0 to bins()-1 for the in-range bins or OVERFLOW or UNDERFLOW. + * @return The upper edge of the corresponding bin; for the overflow bin this is Double.POSITIVE_INFINITY. + * + */ + virtual double binUpperEdge(int index) const = 0; + + /** + * Get the width of the specified bin. + * @param index The bin number: 0 to bins()-1) for the in-range bins or OVERFLOW or UNDERFLOW. + * @return The width of the corresponding bin. + * + */ + virtual double binWidth(int index) const = 0; + + /** + * Convert a coordinate on the axis to a bin number. + * If the coordinate is less than the lowerEdge UNDERFLOW is returned; if the coordinate is greater or + * equal to the upperEdge OVERFLOW is returned. + * @param coord The coordinate to be converted. + * @return The corresponding bin number. + * + */ + virtual int coordToIndex(double coord) const = 0; + + /** + * Constants specifying the underflow and the overflow bin. + * They can be passed to any method accepting a bin number. + * + */ + enum { UNDERFLOW_BIN = -2, OVERFLOW_BIN = -1 }; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IAXIS_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAxisStyle.h b/examples/extended/analysis/A01/include/AIDA/IAxisStyle.h new file mode 100644 index 0000000000..89401a4c06 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IAxisStyle.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IAXISSTYLE_H +#define AIDA_IAXISSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +#include "AIDA/IBaseStyle.h" + +namespace AIDA { + +class ILineStyle; +class ITextStyle; + +/** + * Style for the part of the scene representing the data + * (then histograms, functions, data point sets). + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IAxisStyle : virtual public IBaseStyle { + +public: + /// Destructor. + virtual ~IAxisStyle() { /* nop */; } + + virtual ILineStyle & lineStyle() = 0; + + virtual ITextStyle & tickLabelStyle() = 0; + + virtual ITextStyle & labelStyle() = 0; + + virtual bool setlineStyle(const ILineStyle & lineStyle) = 0; + + virtual bool setTickLabelStyle(const ITextStyle & tickLabelStyle) = 0; + + virtual bool setLabelStyle(const ITextStyle & labelStyle) = 0; + + virtual void setLabel(const std::string & label) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IAXISSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h b/examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h new file mode 100644 index 0000000000..28bda518af --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IBASEHISTOGRAM_H +#define AIDA_IBASEHISTOGRAM_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class IAnnotation; + +/** + * User level interface to Histogram. + * Provides the common functionality of the histogram-like classes. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IBaseHistogram { + +public: + /// Destructor. + virtual ~IBaseHistogram() { /* nop */; } + + /** + * Get the Histogram's title. + * @return The Histogram's title. + * + */ + virtual const std::string & title() const = 0; + + /** + * Set the histogram title. + * @param title The title. + * @return false If title cannot be changed. + * + */ + virtual bool setTitle(const std::string & title) = 0; + + /** + * Get the IAnnotation associated with the Histogram. + * @return The IAnnotation. + * + */ + virtual IAnnotation & annotation() = 0; + + virtual const IAnnotation & annotation() const = 0; + + /** + * Get the Histogram's dimension. + * @return The Histogram's dimension. + * + */ + virtual int dimension() const = 0; + + /** + * Reset the Histogram; as if just created. + * @return false If something goes wrong. + * + */ + virtual bool reset() = 0; + + /** + * Get the number of in-range entries in the Histogram. + * @return The number of in-range entries. + * + */ + virtual int entries() const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IBASEHISTOGRAM_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IBaseStyle.h b/examples/extended/analysis/A01/include/AIDA/IBaseStyle.h new file mode 100644 index 0000000000..83122cf325 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IBaseStyle.h @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IBASESTYLE_H +#define AIDA_IBASESTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +/** + * Superclass for all styles in AIDA Plotting package. + * All styles can be reset to their original values at construction + * time. In the case of styles which 'contain' other styles (like IStyle + * or IAxisStyle), reset() calls reset() on the aggregated styles too. + * All styles are hierarchical, so the plotter's current style is overridden by the + * region's current style, which is overridden by any 'associated' style + * which is overwritten by any style passed in explicitly at plotting time. + * Parameters and options which have been explicitly set to + * non-default (or default!) values are 'sticky'. For example, if a style + * has the default 'red' and this has been set explicitly to 'blue' at the + * Plotter level, then it will override the default 'red' at the Region level. + * IF the user explicitly sets the region to 'green' (or 'red'!) then it will + * not be overridden by the 'parent' style. + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class IBaseStyle { + +public: + /// Destructor. + virtual ~IBaseStyle() { /* nop */; } + + /** + * Return to original (construction time) state. Explicitly + * set parameters will be set to defaults and may be overridden + */ + virtual void reset() = 0; + + /** + * Set a parameter. + * @param paramName Name of the parameter. + * @param options String of options. + * @return false if parameter (or its options) unknown or invalid. + */ + virtual bool setParameter(const std::string & paramName, const std::string & options = "") = 0; + + /** + * Get value of a parameter. + * @param paramName Name of the parameter. + * @return the value. + */ + virtual std::string parameterValue(const std::string & parameter) const = 0; + + /** + * Get list of the available parameters (implementation-dependent) + */ + virtual std::vector availableParameters() const = 0; + + /** + * Get list of the available options for a given parameter + * (implementation-dependent). + */ + virtual std::vector availableParameterOptions(const std::string & paramName) const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IBASESTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IBrushStyle.h b/examples/extended/analysis/A01/include/AIDA/IBrushStyle.h new file mode 100644 index 0000000000..ff9650192b --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IBrushStyle.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IBRUSHSTYLE_H +#define AIDA_IBRUSHSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +#include "AIDA/IBaseStyle.h" + +namespace AIDA { + +/** + * Superclass for anything which can be drawn in different + * colours and with (possibly) transparent/opaque/translucent effect. + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class IBrushStyle : virtual public IBaseStyle { + +public: + /// Destructor. + virtual ~IBrushStyle() { /* nop */; } + + /** + * Get a list of the colours supported by this implementation. + */ + virtual std::vector availableColors() const = 0; + + /** + * Current colour of this brush style. + */ + virtual std::string color() const = 0; + + /** + * Current opacity (alpha) of this brush style. + */ + virtual double opacity() const = 0; + + /** + * Set current colour, e.g. "darkGreen" + * @return false if colour not recognised by the implementation. + */ + virtual bool setColor(const std::string & newColor) = 0; + + /** + * Set opacity (alpha), e.g. 0 (transparent), + * 1 (opaque), 0.5 (halfway). + * @return false if value not supported by the implementation. + */ + virtual bool setOpacity(double newOpacity) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IBRUSHSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud.h b/examples/extended/analysis/A01/include/AIDA/ICloud.h new file mode 100644 index 0000000000..30cda65adf --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ICloud.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ICLOUD_H +#define AIDA_ICLOUD_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseHistogram.h" + +namespace AIDA { + +/** + * User level interface to a Cloud. + * A Cloud is an unbinned collection of points. It can be used to + * represent scatter plots or dynamically rebinnable histograms. + * If they number of entries in the cloud exceeds some threshold + * they may be automatically converted to a binned histogram. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ICloud : virtual public IBaseHistogram { + +public: + /// Destructor. + virtual ~ICloud() { /* nop */; } + + /** + * Get the sum of weights of all the entries. + * @return The sum of the weights of all the entries. + * + */ + virtual double sumOfWeights() const = 0; + + /** + * Convert the ICloud to an IHistogram using the default number of bins. + * @return false If the ICloud has already been converted. + * + */ + virtual bool convertToHistogram() = 0; + + /** + * Check if the ICloud has been converted to an IHistogram. + * @return true if it has been converted. + * + */ + virtual bool isConverted() const = 0; + + /** + * Scale the weights by a given factor. + * @param scaleFactor The scale factor. + * @return false If a non-positive scale factor is provided. + * + */ + virtual bool scale(double scaleFactor) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ICLOUD_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud1D.h b/examples/extended/analysis/A01/include/AIDA/ICloud1D.h new file mode 100644 index 0000000000..557a2488b3 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ICloud1D.h @@ -0,0 +1,171 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ICLOUD1D_H +#define AIDA_ICLOUD1D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +#include "AIDA/ICloud.h" + +namespace AIDA { + +class IHistogram1D; + +/** + * User level interface to a 1D Cloud. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ICloud1D : virtual public ICloud { + +public: + /// Destructor. + virtual ~ICloud1D() { /* nop */; } + + /** + * Fill the ICloud1D with a value and a corresponding weight. + * @param x The value. + * @param weight The corresponding weight. By default it is 1. + * @return false If the ICloud1D is full, if the weight's value is + * is not between 0 and 1. + * + */ + virtual bool fill(double x, double weight = 1.) = 0; + + /** + * Get the lower edge of the ICloud1D. + * @return The lower edge. + * + */ + virtual double lowerEdge() const = 0; + + /** + * Get the upper edge of the ICloud1D. + * @return The upper edge. + * + */ + virtual double upperEdge() const = 0; + + /** + * Get the value corresponding to a given entry. + * @param index The entry's index. + * @return The value of the index-th entry. + * If the ICloud1D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double value(int index) const = 0; + + /** + * Get the weight corresponding to a given entry. + * @param index The entry's index. + * @return The weight of the index-th entry. + * If the ICloud1D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double weight(int index) const = 0; + + /** + * Get the mean of the ICloud1D. + * @return The mean. + * + */ + virtual double mean() const = 0; + + /** + * Get the RMS of the ICloud1D. + * @return The RMS. + * + */ + virtual double rms() const = 0; + + /** + * Convert internally the ICloud1D to an IHistogram1D + * with given number of bins, upper edge and lower edge. + * @param nBins The number of bins. + * @param lowerEdge The lower edge. + * @param upperEdge The upper edge. + * @return false If the ICloud1D has already been converted. + * + */ + virtual bool convert(int nBins, double lowerEdge, double upperEdge) = 0; + + /** + * Convert internally the ICloud1D to an IHistogram1D + * with given bin edges. + * @param binEdges The bins edges. + * @return false If the ICloud1D has already been converted. + * + */ + virtual bool convert(const std::vector & binEdges) = 0; + + /** + * Get the internal IHistogram1D in which the ICloud1D converted to. + * @return The histogram. + * or because of a convert() method invocation. + * + */ + virtual const IHistogram1D & histogram() const = 0; + + /** + * Project the ICloud1D on an IHistogram1D. + * @param hist The IHistogram1D to be filled. + * @return false If the ICloud1D is already converted. + * + */ + virtual bool fillHistogram(IHistogram1D & hist) const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ICLOUD1D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud2D.h b/examples/extended/analysis/A01/include/AIDA/ICloud2D.h new file mode 100644 index 0000000000..37a7cf397e --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ICloud2D.h @@ -0,0 +1,223 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ICLOUD2D_H +#define AIDA_ICLOUD2D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +#include "AIDA/ICloud.h" + +namespace AIDA { + +class IHistogram2D; + +/** + * User level interface to a 2D Cloud. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ICloud2D : virtual public ICloud { + +public: + /// Destructor. + virtual ~ICloud2D() { /* nop */; } + + /** + * Fill the ICloud2D with a couple of values and a corresponding weight. + * @param x The x value. + * @param y The y value. + * @param weight The corresponding weight. By default it is 1. + * @return false If the ICloud2D is full, if the weight's value is + * is not between 0 and 1. + * + */ + virtual bool fill(double x, double y, double weight = 1.) = 0; + + /** + * Get the lower edge of the ICloud2D along the x axis. + * @return The lower edge along the x axis. + * + */ + virtual double lowerEdgeX() const = 0; + + /** + * Get the lower edge of the ICloud2D along the y axis. + * @return The lower edge along the y axis. + * + */ + virtual double lowerEdgeY() const = 0; + + /** + * Get the upper edge of the ICloud2D along the x axis. + * @return The upper edge along the x axis. + * + */ + virtual double upperEdgeX() const = 0; + + /** + * Get the upper edge of the ICloud2D along the y axis. + * @return The upper edge along the y axis. + * + */ + virtual double upperEdgeY() const = 0; + + /** + * Get the x value corresponding to a given entry. + * @param index The entry's index. + * @return The x value of the index-th entry. + * If the ICloud2D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double valueX(int index) const = 0; + + /** + * Get the y value corresponding to a given entry. + * @param index The entry's index. + * @return The y value of the index-th entry. + * If the ICloud2D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double valueY(int index) const = 0; + + /** + * Get the weight corresponding to a given entry. + * @param index The entry's index. + * @return The weight of the index-th entry. + * If the ICloud2D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double weight(int index) const = 0; + + /** + * Get the mean of the ICloud2D along the x axis. + * @return The mean along the x axis. + * + */ + virtual double meanX() const = 0; + + /** + * Get the mean of the ICloud2D along the y axis. + * @return The mean along the y axis. + * + */ + virtual double meanY() const = 0; + + /** + * Get the RMS of the ICloud2D along the x axis. + * @return The RMS along the x axis. + * + */ + virtual double rmsX() const = 0; + + /** + * Get the RMS of the ICloud2D along the y axis. + * @return The RMS along the y axis. + * + */ + virtual double rmsY() const = 0; + + /** + * Convert internally the ICloud2D to an IHistogram2D + * with given number of bins, upper edge and lower edge. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of bins of the x axis. + * @param upperEdgeX The upper edge of bins of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of bins of the y axis. + * @param upperEdgeY The upper edge of bins of the y axis. + * @return false If the ICloud2D has already been converted. + * + */ + virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; + + /** + * Convert internally the ICloud2D to an IHistogram2D + * with given bin edges. + * @param binEdgesX The bins edges of the x axis. + * @param binEdgesY The bins edges of the y axis. + * @return false If the ICloud2D has already been converted. + * + */ + virtual bool convert(const std::vector & binEdgesX, const std::vector & binEdgesY) = 0; + + /** + * Get the internal IHistogram2D in which the ICloud2D converted to. + * @return The histogram. + * or because of a convert() method invocation. + * + */ + virtual const IHistogram2D & histogram() const = 0; + + /** + * Project the ICloud2D on an IHistogram2D. + * @param hist The IHistogram2D to be filled. + * @return false If the ICloud2D is already converted. + * + */ + virtual bool fillHistogram(IHistogram2D & hist) const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ICLOUD2D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud3D.h b/examples/extended/analysis/A01/include/AIDA/ICloud3D.h new file mode 100644 index 0000000000..224131fbba --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ICloud3D.h @@ -0,0 +1,275 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ICLOUD3D_H +#define AIDA_ICLOUD3D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +#include "AIDA/ICloud.h" + +namespace AIDA { + +class IHistogram3D; + +/** + * User level interface to a 3D Cloud. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ICloud3D : virtual public ICloud { + +public: + /// Destructor. + virtual ~ICloud3D() { /* nop */; } + + /** + * Fill the ICloud3D with a triplet of values and a corresponding weight. + * @param x The x value. + * @param y The y value. + * @param z The z value. + * @param weight The corresponding weight. By default it is 1. + * @return false If the ICloud3D is full, if the weight's value is + * is not between 0 and 1. + * + */ + virtual bool fill(double x, double y, double z, double weight = 1.) = 0; + + /** + * Get the lower edge of the ICloud3D along the x axis. + * @return The lower edge along the x axis. + * + */ + virtual double lowerEdgeX() const = 0; + + /** + * Get the lower edge of the ICloud3D along the y axis. + * @return The lower edge along the y axis. + * + */ + virtual double lowerEdgeY() const = 0; + + /** + * Get the lower edge of the ICloud3D along the z axis. + * @return The lower edge along the z axis. + * + */ + virtual double lowerEdgeZ() const = 0; + + /** + * Get the upper edge of the ICloud3D along the x axis. + * @return The upper edge along the x axis. + * + */ + virtual double upperEdgeX() const = 0; + + /** + * Get the upper edge of the ICloud3D along the y axis. + * @return The upper edge along the y axis. + * + */ + virtual double upperEdgeY() const = 0; + + /** + * Get the upper edge of the ICloud3D along the z axis. + * @return The upper edge along the z axis. + * + */ + virtual double upperEdgeZ() const = 0; + + /** + * Get the x value corresponding to a given entry. + * @param index The entry's index. + * @return The x value of the index-th entry. + * If the ICloud3D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double valueX(int index) const = 0; + + /** + * Get the y value corresponding to a given entry. + * @param index The entry's index. + * @return The y value of the index-th entry. + * If the ICloud3D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double valueY(int index) const = 0; + + /** + * Get the z value corresponding to a given entry. + * @param index The entry's index. + * @return The z value of the index-th entry. + * If the ICloud3D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double valueZ(int index) const = 0; + + /** + * Get the weight corresponding to a given entry. + * @param index The entry's index. + * @return The weight of the index-th entry. + * If the ICloud3D has already been converted, 0 is returned. + * + */ + + + + + + + + + + + virtual double weight(int index) const = 0; + + /** + * Get the mean of the ICloud3D along the x axis. + * @return The mean along the x axis. + * + */ + virtual double meanX() const = 0; + + /** + * Get the mean of the ICloud3D along the y axis. + * @return The mean along the y axis. + * + */ + virtual double meanY() const = 0; + + /** + * Get the mean of the ICloud3D along the z axis. + * @return The mean along the z axis. + * + */ + virtual double meanZ() const = 0; + + /** + * Get the RMS of the ICloud3D along the x axis. + * @return The RMS along the x axis. + * + */ + virtual double rmsX() const = 0; + + /** + * Get the RMS of the ICloud3D along the y axis. + * @return The RMS along the y axis. + * + */ + virtual double rmsY() const = 0; + + /** + * Get the RMS of the ICloud3D along the z axis. + * @return The RMS along the z axis. + * + */ + virtual double rmsZ() const = 0; + + /** + * Convert internally the ICloud3D to an IHistogram3D + * with given number of bins, upper edge and lower edge. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of bins of the x axis. + * @param upperEdgeX The upper edge of bins of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of bins of the y axis. + * @param upperEdgeY The upper edge of bins of the y axis. + * @param nBinsZ The number of bins of the z axis. + * @param lowerEdgeZ The lower edge of bins of the z axis. + * @param upperEdgeZ The upper edge of bins of the z axis. + * @return false If the ICloud3D has already been converted. + * + */ + virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0; + + /** + * Convert internally the ICloud3D to an IHistogram3D + * with given bin edges. + * @param binEdgesX The bins edges of the x axis. + * @param binEdgesY The bins edges of the y axis. + * @param binEdgesZ The bins edges of the z axis. + * @return false If the ICloud3D has already been converted. + * + */ + virtual bool convert(const std::vector & binEdgesX, const std::vector & binEdgesY, const std::vector & binEdgesZ) = 0; + + /** + * Get the internal IHistogram3D in which the ICloud3D converted to. + * @return The histogram. + * or because of a convert() method invocation. + * + */ + virtual const IHistogram3D & histogram() const = 0; + + /** + * Project the ICloud3D on an IHistogram3D. + * @param hist The IHistogram3D to be filled. + * @return false If the ICloud3D is already converted. + * + */ + virtual bool fillHistogram(IHistogram3D & hist) const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ICLOUD3D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IConstants.h b/examples/extended/analysis/A01/include/AIDA/IConstants.h new file mode 100644 index 0000000000..aa60879baa --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IConstants.h @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ICONSTANTS_H +#define AIDA_ICONSTANTS_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#define VERSION "3.0" +#define VERSION_MAJOR 3 +#define VERSION_MINOR 0 +#endif /* ifndef AIDA_ICONSTANTS_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataPoint.h b/examples/extended/analysis/A01/include/AIDA/IDataPoint.h new file mode 100644 index 0000000000..4a1ed79765 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IDataPoint.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IDATAPOINT_H +#define AIDA_IDATAPOINT_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +namespace AIDA { + +class IMeasurement; + +/** + * Basic user-level interface class for holding and managing + * a single set of "measurements". + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IDataPoint { + +public: + /// Destructor. + virtual ~IDataPoint() { /* nop */; } + + /** + * Get the dimension of the IDataPoint, i.e. the number + * of coordinates the point has. + * @return The dimension. + * + */ + virtual int dimension() const = 0; + + /** + * Get the IMeasurement for a given coordinate. + * @param coord The coordinate. + * @return The corresponding IMeasurement. + * + */ + virtual IMeasurement * coordinate(int coord) = 0; + + virtual const IMeasurement * coordinate(int coord) const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IDATAPOINT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataPointSet.h b/examples/extended/analysis/A01/include/AIDA/IDataPointSet.h new file mode 100644 index 0000000000..2dad08dfe4 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IDataPointSet.h @@ -0,0 +1,204 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IDATAPOINTSET_H +#define AIDA_IDATAPOINTSET_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class IAnnotation; +class IDataPoint; + +/** + * Basic user-level interface class for holding and managing + * a single set of "data points". + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IDataPointSet { + +public: + /// Destructor. + virtual ~IDataPointSet() { /* nop */; } + + /** + * Get the IAnnotation of the IDataPointSet. + * @return The IAnnotation. + * + */ + virtual IAnnotation & annotation() = 0; + + virtual const IAnnotation & annotation() const = 0; + + /** + * Get the title of the IDataPointSet. + * @return The title. + * + */ + virtual const std::string & title() const = 0; + + /** + * Set the title of the IDataPointSet. + * @param title The new title. + * @return false If the title cannot be set. + * + */ + virtual bool setTitle(const std::string & title) = 0; + + /** + * Get the dimension of the IDataPoints that can be stored in the set. + * @return The dimension of the IDataPoints storable in the set. + * + */ + virtual int dimension() const = 0; + + /** + * Remove all the IDataPoints in the set. + * After this the IDataPointSet is as just created. + * + */ + virtual void clear() = 0; + + /** + * Get the current size of the IDataPointSet, i.e. the number + * of IDataPoints contained in the set. + * @return The size of the IDataPointSet. + * + */ + virtual int size() const = 0; + + /** + * Get the IDataPoint at a give index in the set. + * @param index The IDataPoint index. + * @return The corresponding IDataPoint. + * + */ + virtual IDataPoint * point(int index) = 0; + + virtual const IDataPoint * point(int index) const = 0; + + /** + * Add a new empty IDataPoint at the end of the set. + * @return false If a new IDataPoint cannot be added to the set. + * + */ + virtual bool addPoint() = 0; + + /** + * Add a copy of an IDataPoint at the end of the set. + * @param point The IDataPoint to be added. + * @return false If the point has the wrong dimension or + * if the point cannot be added. + * + */ + virtual bool addPoint(const IDataPoint & point) = 0; + + /** + * Remove the IDataPoint at a given index. + * @param index The index of the IDataPoint to be removed. + * @return false If the index is < 0 or >= size(). + * + */ + virtual bool removePoint(int index) = 0; + + /** + * Get the lower value for a give axis. + * @param coord The coordinate of the axis. + * @return The lower edge of the corresponding axis. + * If coord < 0 or coord >= dimension(), or if the set is empty NaN is returned. + * + */ + + + + + + + + + + + virtual double lowerExtent(int coord) const = 0; + + /** + * Get the upper value for a give axis. + * @param coord The coordinate of the axis. + * @return The upper edge of the corresponding axis. + * If coord < 0 or coord >= dimension(), or if the set is empty NaN is returned. + * + */ + + + + + + + + + + + virtual double upperExtent(int coord) const = 0; + + /** + * Scales the values and the errors of all the measurements + * of each point by a given factor. + * @param scaleFactor The scale factor. + * @return false If an illegal scaleFactor is provided. + * + */ + virtual bool scale(double scaleFactor) = 0; + + /** + * Scales the values of all the measurements + * of each point by a given factor. + * @param scaleFactor The scale factor. + * @return false If an illegal scaleFactor is provided. + * + */ + virtual bool scaleValues(double scaleFactor) = 0; + + /** + * Scales the errors of all the measurements + * of each point by a given factor. + * @param scaleFactor The scale factor. + * @return false If an illegal scaleFactor is provided. + * + */ + virtual bool scaleErrors(double scaleFactor) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IDATAPOINTSET_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h b/examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h new file mode 100644 index 0000000000..95a50e0307 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IDATAPOINTSETFACTORY_H +#define AIDA_IDATAPOINTSETFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class ICloud1D; +class ICloud2D; +class ICloud3D; +class IDataPointSet; +class IHistogram1D; +class IHistogram2D; +class IHistogram3D; +class IProfile1D; +class IProfile2D; + +/** + * Basic user-level interface for creating a factory + * of IDataPointSet. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IDataPointSetFactory { + +public: + /// Destructor. + virtual ~IDataPointSetFactory() { /* nop */; } + + /** + * Create an empty IDataPointSet. + * @param name The name of the IDataPointSet. + * @param title The title of the IDataPointSet. + * @param dimOfPoints The dimension of the IDataPoints that can be stored in the set. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const std::string & title, int dimOfPoints) = 0; + + /** + * Create an empty IDataPointSet. + * @param nameAndTitle The name and the title of the IDataPointSet. + * @param dimOfPoints The dimension of the IDataPoints that can be stored in the set. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & nameAndTitle, int dimOfPoints) = 0; + + /** + * Make a copy of a given IDataPointSet. + * @param name The name of the copy IDataPointSet. + * @param dataPointSet The IDataPointSet to be copied. + * @return The copy of the given IDataPointSet. + * + */ + virtual IDataPointSet * createCopy(const std::string & name, const IDataPointSet & dataPointSet) = 0; + + /** + * Destroy a given IDataPointSet. + * @param dataPointSet The IDataPointSet to be destroyed. + * @return false If dataPointSet cannot be destroyed. + * + */ + virtual bool destroy(IDataPointSet * dataPointSet) = 0; + + /** + * Create an IDataPointSet from an IHistogram1D. + * @param name The name of the IDataPointSet. + * @param hist The IHistogram1D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const IHistogram1D & hist) = 0; + + /** + * Create an IDataPointSet from an IHistogram2D. + * @param name The name of the IDataPointSet. + * @param hist The IHistogram2D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const IHistogram2D & hist) = 0; + + /** + * Create an IDataPointSet from an IHistogram3D. + * @param name The name of the IDataPointSet. + * @param hist The IHistogram3D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const IHistogram3D & hist) = 0; + + /** + * Create an IDataPointSet from an ICloud1D. + * @param name The name of the IDataPointSet. + * @param cloud The ICloud1D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const ICloud1D & cloud) = 0; + + /** + * Create an IDataPointSet from an ICloud2D. + * @param name The name of the IDataPointSet. + * @param cloud The ICloud2D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const ICloud2D & cloud) = 0; + + /** + * Create an IDataPointSet from an ICloud3D. + * @param name The name of the IDataPointSet. + * @param cloud The ICloud3D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const ICloud3D & cloud) = 0; + + /** + * Create an IDataPointSet from an IProfile1D. + * @param name The name of the IDataPointSet. + * @param profile The IProfile1D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const IProfile1D & profile) = 0; + + /** + * Create an IDataPointSet from an IProfile2D. + * @param name The name of the IDataPointSet. + * @param profile The IProfile2D from which the data is taken. + * @return The newly created IDataPointSet. + * + */ + virtual IDataPointSet * create(const std::string & name, const IProfile2D & profile) = 0; + + /** + * Add two IDataSetPoint, point by point and measurement by measurement. + * @param name The name of the resulting IDataPointSet + * @param dataPointSet1 The first member of the addition. + * @param dataPointSet2 The second member of the addition. + * + */ + virtual IDataPointSet * add(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; + + /** + * Subtract two IDataSetPoint, point by point and measurement by measurement. + * @param name The name of the resulting IDataPointSet + * @param dataPointSet1 The first member of the subtraction. + * @param dataPointSet2 The second member of the subtraction. + * @param strategy The strategy of how to perform the subtraction. The default corresponds to + * uncorrelated Gaussian error propagation. + * + */ + virtual IDataPointSet * subtract(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; + + /** + * Multiply two IDataSetPoint, point by point and measurement by measurement. + * @param name The name of the resulting IDataPointSet + * @param dataPointSet1 The first member of the multiplication. + * @param dataPointSet2 The second member of the multiplication. + * @param strategy The strategy of how to perform the multiplication. The default corresponds to + * uncorrelated Gaussian error propagation. + * + */ + virtual IDataPointSet * multiply(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; + + /** + * Divide two IDataSetPoint, point by point and measurement by measurement. + * @param name The name of the resulting IDataPointSet + * @param dataPointSet1 The first member of the division. + * @param dataPointSet2 The second member of the division. + * @param strategy The strategy of how to perform the division. The default corresponds to + * uncorrelated Gaussian error propagation. + * + */ + virtual IDataPointSet * divide(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; + + /** + * Calculate weighted means of two IDataSetPoint, point by point and measurement by measurement. + * @param name The name of the resulting IDataPointSet + * @param dataPointSet1 The first IDataPointSet. + * @param dataPointSet2 The second IDataPointSet. + * @param strategy The strategy of how to calculate the weighted means. The default corresponds to + * uncorrelated Gaussian error propagation. + * + */ + virtual IDataPointSet * weightedMean(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IDATAPOINTSETFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataStyle.h b/examples/extended/analysis/A01/include/AIDA/IDataStyle.h new file mode 100644 index 0000000000..88c2a62efa --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IDataStyle.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IDATASTYLE_H +#define AIDA_IDATASTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseStyle.h" + +namespace AIDA { + +class IFillStyle; +class ILineStyle; +class IMarkerStyle; + +/** + * Style for the part of the scene representing the data + * (then histograms, functions, data point sets). + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IDataStyle : virtual public IBaseStyle { + +public: + /// Destructor. + virtual ~IDataStyle() { /* nop */; } + + /** + * Return various styles that may be used to + * customize the data representation. + */ + virtual ILineStyle & lineStyle() = 0; + + virtual IMarkerStyle & markerStyle() = 0; + + virtual IFillStyle & fillStyle() = 0; + + /** + * Set various basic style on the data style. + */ + virtual bool setLineStyle(const ILineStyle & lineStyle) = 0; + + virtual bool setMarkerStyle(const IMarkerStyle & markerStyle) = 0; + + virtual bool setFillStyle(const IFillStyle & fillStyle) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IDATASTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IEvaluator.h b/examples/extended/analysis/A01/include/AIDA/IEvaluator.h new file mode 100644 index 0000000000..500a49c064 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IEvaluator.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IEVALUATOR_H +#define AIDA_IEVALUATOR_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class ITuple; + +/** + * User's level interface of an IEvaluator. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IEvaluator { + +public: + /// Destructor. + virtual ~IEvaluator() { /* nop */; } + + /** + * Initialize the IEvaluator and associate it to an ITuple. + * @param tuple The ITuple to which the IEvaluator is sssociated. + * @return false If the IEvaluator and + * the ITuple are not compatible. + * + */ + virtual bool initialize(ITuple & tuple) = 0; + + /** + * Evaluate the IEvaluator from the data in the + * current row of the ITuple it is associated to. + * @return The current value of the Evaluator. + * + */ + virtual double evaluateDouble() const = 0; + + /** + * Get the expression that defined the IEvaluator. + * @return The expression. + * + */ + virtual const std::string & expression() const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IEVALUATOR_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFillStyle.h b/examples/extended/analysis/A01/include/AIDA/IFillStyle.h new file mode 100644 index 0000000000..2698e8c267 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFillStyle.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFILLSTYLE_H +#define AIDA_IFILLSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +#include "AIDA/IBrushStyle.h" + +namespace AIDA { + +/** + * Style for all filled areas (boxes, regions, histograms, etc.) + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class IFillStyle : virtual public IBrushStyle { + +public: + /// Destructor. + virtual ~IFillStyle() { /* nop */; } + + /** + * Get a list of patterns available in this implementation. + */ + virtual std::vector availablePatterns() const = 0; + + /** + * Get name of current pattern. + */ + virtual std::string pattern() const = 0; + + /** + * Set current pattern, e.g. "crossHatch", "solid". + * @return false if pattern not known to this implementation. + */ + virtual bool setPattern(const std::string & pattern) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFILLSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFilter.h b/examples/extended/analysis/A01/include/AIDA/IFilter.h new file mode 100644 index 0000000000..bbe8270122 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFilter.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFILTER_H +#define AIDA_IFILTER_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class ITuple; + +/** + * User's level interface of an IFilter. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFilter { + +public: + /// Destructor. + virtual ~IFilter() { /* nop */; } + + /** + * Initialize the IFilter and associate it to an ITuple. + * @param tuple The ITuple to which the IFilter is sssociated. + * @return false If the IFilter and + * the ITuple are not compatible. + * + */ + virtual bool initialize(ITuple & tuple) = 0; + + /** + * Check if the IFilter accepts or not the data in the + * current row of the ITuple it is associated to. + * @return true if the current data is accepted. + * + */ + virtual bool accept() const = 0; + + /** + * Get the expression that defined the IFilter. + * @return The expression. + * + */ + virtual const std::string & expression() const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFILTER_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitData.h b/examples/extended/analysis/A01/include/AIDA/IFitData.h new file mode 100644 index 0000000000..eefca794c3 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFitData.h @@ -0,0 +1,353 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFITDATA_H +#define AIDA_IFITDATA_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class ICloud1D; +class ICloud2D; +class ICloud3D; +class IDataPointSet; +class IEvaluator; +class IHistogram1D; +class IHistogram2D; +class IHistogram3D; +class IProfile1D; +class IProfile2D; +class IRangeSet; +class ITuple; + +/** @interface + * + * Abstract representation of the fit data. Serves for several purposes: + * - decouple fitter from the details of the particular data + * objects (Histograms etc) + * - provide range restriction capability ("cut of the tails...") + * - creates the image of the virtual data source + * + * Design notes: + * + * 1) + * we try to be explicit in the method names which should indicate the + * dimensionality of the fit data. + * + * this way we have more compile-time/run-time safety and clearer code. + * in C++ we can handle default arguments which otherwise would be ambigeous. + * + * 2) + * string names of the arguments are at the end of the methods' + * signatures and have default (empty) values. + * so if function argument name is missing, + * assume the ordering is taken from the histogram axis it connects to + * the name of the pipes then are generated automatically using + * the same default scheme as for functions x[1], x[2] etc. + * + * 3) + * There are two ends to pipes: one connected to the + * data source and one pouring data out. Both their orders has to be specified. + * + * For IHistogram, ICloud, IProfile the connections to the data source are + * ordered as the axis (x=0, y=1, z=2); the user has to provide the order + * with which the pipes are providing the data. So for example in the constructor + * create2DConnection(hist2D,xIndex,yIndex); + * xIndex specifies the exit order of the pipe connected to the x Axis (and similarly + * for yIndex). So the default method + * create2DConnection(hist2D); + * corresponds to + * create2DConnection(hist2D,0,1); + * In the methods for IHistograms, IClouds, and IProfiles one index could have + * been dropped as the second could be inferred by the dimensionality. We + * preferred being redundant just to avoid confusion in interpreting what + * create2DConnection(hist2D,1); + * really means. + * + * For ITuple and IDataPointSet the order in the connection to the data source + * is specified by the user by providing, respectively, the array of column names (or evaluators) + * and the array of coordinate indexes to which to connect the pipes. + * In this case we assume that the pipes are parallel, i.e. the exit order is the same + * as the one of the connection to the data source. + * In the createXDConnection methods to IDataPointSets we preferred not to provide + * defaults for the valIndex to avoid confusion in interpreting it. + * We can always add it later. + * + * PENDING: clarify the relation between data range and normalization range + * + * @author The AIDA Team. + * + */ + +class IFitData { + +public: + /// Destructor. + virtual ~IFitData() { /* nop */; } + + /** + * One dimensional connections. + * + */ + + /** + * Create a one dimensional connection to an IHistogram1D. + * @param h The 1D histogram to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create1DConnection(const IHistogram1D & h) = 0; + + /** + * Create a one dimensional connection to an ICloud1D. + * @param c The 1D cloud to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create1DConnection(const ICloud1D & c) = 0; + + /** + * Create a one dimensional connection to an IProfile1D. + * @param p The 1D profile to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create1DConnection(const IProfile1D & p) = 0; + + /** + * Create a one dimensional connection to an IDataPointSet. + * @param dp The dataPointSet to which to connect to. + * @param xIndex The index of the coordinate to which the variable is connected. + * @param valIndex The index of the coordinate used as "height". + * @return false If something is wrong. + * + */ + virtual bool create1DConnection(const IDataPointSet & dp, int xIndex, int valIndex) = 0; + + /** + * Two dimensional connections. + * + */ + + /** + * Create a two dimensional connection to an IHistogram2D. + * @param h The 2D histogram to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const IHistogram2D & h) = 0; + + /** + * Create a two dimensional connection to an IHistogram2D. + * @param h The 2D histogram to which to connect to. + * @param xIndex The index of the axis to which the x variable is connected. + * @param yIndex The index of the axis to which the y variable is connected. + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const IHistogram2D & h, int xIndex, int yIndex) = 0; + + /** + * Create a two dimensional connection to an ICloud2D. + * @param c The 2D cloud to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const ICloud2D & c) = 0; + + /** + * Create a two dimensional connection to an ICloud2D. + * @param c The 2D cloud to which to connect to. + * @param xIndex The index of the axis to which the x variable is connected. + * @param yIndex The index of the axis to which the y variable is connected. + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const ICloud2D & c, int xIndex, int yIndex) = 0; + + /** + * Create a two dimensional connection to an IProfile2D. + * @param p The 2D profile to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const IProfile2D & p) = 0; + + /** + * Create a two dimensional connection to an IProfile2D. + * @param p The 2D profile to which to connect to. + * @param xIndex The index of the axis to which the x variable is connected. + * @param yIndex The index of the axis to which the y variable is connected. + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const IProfile2D & p, int xIndex, int yIndex) = 0; + + /** + * Create a two dimensional connection to an IDataPointSet. + * @param dp The dataPointSet to which to connect to. + * @param xIndex The index of the coordinate to which the x variable is connected. + * @param yIndex The index of the coordinate to which the y variable is connected. + * @param valIndex The index of the coordinate used as "height". + * @return false If something is wrong. + * + */ + virtual bool create2DConnection(const IDataPointSet & dp, int xIndex, int yIndex, int valIndex) = 0; + + /** + * Three dimensional connections. + * + */ + + /** + * Create a three dimensional connection to an IHistogram3D. + * @param h The 3D histogram to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create3DConnection(const IHistogram3D & h) = 0; + + /** + * Create a three dimensional connection to an IHistogram3D. + * @param h The 3D histogram to which to connect to. + * @param xIndex The index of the axis to which the x variable is connected. + * @param yIndex The index of the axis to which the y variable is connected. + * @param zIndex The index of the axis to which the z variable is connected. + * @return false If something is wrong. + * + */ + virtual bool create3DConnection(const IHistogram3D & h, int xIndex, int yIndex, int zIndex) = 0; + + /** + * Create a three dimensional connection to an ICloud3D. + * @param c The 3D cloud to which to connect to. + * @return false If something is wrong. + * + */ + virtual bool create3DConnection(const ICloud3D & c) = 0; + + /** + * Create a three dimensional connection to an ICloud3D. + * @param c The 3D cloud to which to connect to. + * @param xIndex The index of the axis to which the x variable is connected. + * @param yIndex The index of the axis to which the y variable is connected. + * @param zIndex The index of the axis to which the z variable is connected. + * @return false If something is wrong. + * + */ + virtual bool create3DConnection(const ICloud3D & c, int xIndex, int yIndex, int zIndex) = 0; + + /** + * Create a three dimensional connection to an IDataPointSet. + * @param dp The dataPointSet to which to connect to. + * @param xIndex The index of the coordinate to which the x variable is connected. + * @param yIndex The index of the coordinate to which the y variable is connected. + * @param zIndex The index of the coordinate to which the z variable is connected. + * @param valIndex The index of the coordinate used as "height". + * @return false If something is wrong. + * + */ + virtual bool create3DConnection(const IDataPointSet & dp, int xIndex, int yIndex, int zIndex, int valIndex) = 0; + + /** + * General connections. + * + */ + + /** + * Tuples are for UNBINNED fits, so no value column required. + */ + + /** + * Create a connection to an ITuple. + * @param t The ITuple. + * @param colNames The names of the columns to which to connect. + * @return false If something is wrong. + * + */ + virtual bool createConnection(const ITuple & t, std::vector colNames) = 0; + + /** + * Create a connection to an ITuple. + * @param t The ITuple. + * @param evals The list of the IEvaluator used to calculate the variable's value. + * @return false If something is wrong. + * + */ + virtual bool createConnection(const ITuple & t, std::vector & evals) = 0; + + /** + * Create a connection to an IDataPointSet. + * @param dp The dataPointSet to which to connect to. + * @param indeces The indeces of the coordinates to which the variables are connected. + * @param valIndex The index of the coordinate used as "height". + * @return false If something is wrong. + * + */ + virtual bool createConnection(const IDataPointSet & dp, std::vector indeces, int valIndex) = 0; + + /** + * Remove all Ranges and connections; after this is like newly create. + * + */ + virtual void reset() = 0; + + /** + * The dimension of this IFitData, i.e. the number of connections. + * @return The dimension of the IFitData. + * + */ + virtual int dimension() const = 0; + + /// Return a string describing the data. This should be considered as a + /// hint to the user where to find the original data objects and how + /// to connect the data pipes. PENDING: probably this can be part of + /// XML streaming. + virtual std::string dataDescription() const = 0; + + /** + * Get Range of the corresponding connection by index. + * The index represent the order in which + * connections are coming out of the IFitData. + * @param The index of the connection. + * @return The Range + * + */ + virtual IRangeSet & range(int index) const = 0; + + /** @link aggregation */ +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFITDATA_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitFactory.h b/examples/extended/analysis/A01/include/AIDA/IFitFactory.h new file mode 100644 index 0000000000..ed662995dc --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFitFactory.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFITFACTORY_H +#define AIDA_IFITFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class IFitData; +class IFitter; + +/** @interface IFitFactory + * + * Factory for fitter and fit data objects. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFitFactory { + +public: + /// Destructor. + virtual ~IFitFactory() { /* nop */; } + + virtual IFitData * createFitData() = 0; + + /** + * Create a new IFitter. + * @param fitterType The type of fitter. The supported types are: + * - "CHI2" or "Chi2" or "ChiSquared" for chi squared fitter (this is the default), + * - "ML" or "MaxLikelihood" for maximum likelihood fitter, + * - "LS" or "LeastSquares" for Last Squares fitter. + * @param engineType The type of optimization engine used by the fitter. The available types depend on the + * specific implementation in use. The default is "" (the implementation specific default). + * @param options A string of options. The default is "". + * @return The IFitter. + * + */ + virtual IFitter * createFitter(std::string fitterType = "Chi2", std::string engineType = "", std::string options = "") = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFITFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h b/examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h new file mode 100644 index 0000000000..91da1ac961 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFITPARAMETERSETTINGS_H +#define AIDA_IFITPARAMETERSETTINGS_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +/** @interface + * + * Fitting-specific settings applied to a parameter of the fitted function. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFitParameterSettings { + +public: + /// Destructor. + virtual ~IFitParameterSettings() { /* nop */; } + + /// Name of the parameter to which settings apply. + virtual std::string name() const = 0; + + /// Step size allows to control the "sensitivity" of the change of the parameter + /// when fitters looks for the optimal parameter value. Default is 1.0. + virtual double stepSize() const = 0; + + /// Bounds. + virtual double upperBound() const = 0; + + virtual double lowerBound() const = 0; + + /// Shortcut for lowerBound() == -INF && upperBound() == +INF. + virtual bool isBound() const = 0; + + /// Value of the parameter cannot change if isFixed() == true. + /// Parameter can be fixed independently from setting the bounds. + virtual bool isFixed() const = 0; + + /// Set the step size for the fitter. + virtual void setStepSize(double step) = 0; + + /// Set bounds. If bounds not set, then default bound is (-INF,+INF). + virtual void setBounds(double lo, double up) = 0; + + /// Shortcut for setBounds(-INF,+INF). + virtual void removeBounds() = 0; + + /// Fix/unfix parameter. + virtual void setFixed(bool isFixed) = 0; + + /** + * Set the lower bound. When this method is + * invoked any previous bound is reset. The new bounds + * are (lowerBound, +INF). + * @param lowerBound The lower bound. + * + */ + virtual void setLowerBound(double lowerBound) = 0; + + /** + * Set the upper bound. When this method is + * invoked any previous bound is reset. The new bounds + * are (-INF, upperBound). + * @param upperBound The upper bound. + * + */ + virtual void setUpperBound(double upperBound) = 0; + + /// Reset all settings to the default values (remove bounds, step size = 1.0, no fix). + virtual void reset() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFITPARAMETERSETTINGS_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitResult.h b/examples/extended/analysis/A01/include/AIDA/IFitResult.h new file mode 100644 index 0000000000..8210cff7a0 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFitResult.h @@ -0,0 +1,151 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFITRESULT_H +#define AIDA_IFITRESULT_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IFitParameterSettings; +class IFunction; + +/** @interface + * + * Represents the result of the fit. + * + * Holds internal copies of fit parameter settings (set in IFitter) and the + * fitted function (clone of original function). The value of the parameters + * of the fitted function are obtained from the fitting. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFitResult { + +public: + /// Destructor. + virtual ~IFitResult() { /* nop */; } + + /// True if fit successful, otherwise false. + virtual bool isValid() = 0; + + /// Status of the fit. PENDING: what are the suggested values? + virtual int fitStatus() = 0; + + /// Fitted function. The parameters hold the results of the fit. + virtual IFunction * fittedFunction() = 0; + + /// Quality of the fit. Depending on the fit method this may be the value + /// of Chi2 or Maximu Likelihood. + virtual double quality() = 0; + + /// Number of degrees of freedom. + virtual int ndf() = 0; + + /// Covariance matrix. PENDING: interface for matrix to be defined. + virtual double covMatrixElement(int i, int j) = 0; + + /// Fit method name as set in the fitter. + virtual std::string fitMethodName() = 0; + + /// Engine used to do fitting. + virtual std::string engineName() = 0; + + /// Textual description of data - this is a hint for the user how to find + /// the data in the tree if he wanted to repeat the fit later and lost + /// the pointer to his orignal data object. + /// PENDING: the contents and format of this string to be defined. + /// PENDING: XML? stor name and path? ranges of DataPipe? + virtual std::string dataDescription() = 0; + + /// Vector of constraints. + virtual const std::vector & constraints() = 0; + + /// Access to applied parameter settings. + virtual IFitParameterSettings * fitParameterSettings(std::string name) = 0; + + /** + * Get the array of the fitted parameter values (including fixed and constrained ones). + * @return The array containing the fitted values. + * + */ + virtual const std::vector & fittedParameters() const = 0; + + /** + * Get the names of the fitted parameters (including fixed and constrained ones). + * @return The array containing the names of the fitted parameters. + * + */ + virtual const std::vector & fittedParameterNames() const = 0; + + /** + * Get the value of a fitted parameter by name. + * @return The value. + * + */ + virtual double fittedParameter(std::string & name) = 0; + + /** + * Get the parabolic errors on the fitted parameters. If a parameter was fixed + * or constrained the error is zero. + * @return The parabolic errors on the fitted parameters. + * + */ + virtual const std::vector & errors() const = 0; + + /** + * Get the positive part of the asymmetric errors on the fitted parameters. If a parameter was fixed + * or constrained the error is zero. + * @return The positive part of the asymmetric errors on the fitted parameters. + * + */ + virtual const std::vector & errorsPlus() const = 0; + + /** + * Get the negative part of the asymmetric errors on the fitted parameters. If a parameter was fixed + * or constrained the error is zero. + * @return The negative part of the asymmetric errors on the fitted parameters. + * + */ + virtual const std::vector & errorsMinus() const = 0; + + /** @link aggregation + * @supplierRole <>*/ + /*# IFitParameterSettings lnkIFitParameterProperty; */ +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFITRESULT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitter.h b/examples/extended/analysis/A01/include/AIDA/IFitter.h new file mode 100644 index 0000000000..9c5ee5a53f --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFitter.h @@ -0,0 +1,275 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFITTER_H +#define AIDA_IFITTER_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IBaseHistogram; +class IDataPointSet; +class IFitData; +class IFitParameterSettings; +class IFitResult; +class IFunction; + +/** @interface IFitter + * + * Fitter performs fits, scans and computes contours. + * + * Fitter never stores association to the data and functions which are + * used for fitting. Results of the fit are availabe in the IFitResult + * object, which also remebers the initial fit configuration. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFitter { + +public: + /// Destructor. + virtual ~IFitter() { /* nop */; } + + /** + * Fit an IFunction to an IFitData. + * The result of the fit is an IFitResult. + * @param fitData The IFitData to be fitted. + * @param func The IFunction to fit on the data. + * @return The IFitResult containing the results of the fit. + * + */ + virtual IFitResult * fit(IFitData & fitData, IFunction & func) = 0; + + /** + * Shortcut to fit an IBaseHistogram directly with an IFunction. + * The dimension of the IBaseHistogram must match the dimension of the IFunction. + * IHistograms and IProfiles are for binned fits only, IClouds only for unbinned fits. + * @param hist The IBaseHistogram to be fitted. + * @param func The IFunction to fit on the data. + * @return The IFitResult containing the result of the fit. + * + */ + virtual IFitResult * fit(IBaseHistogram & hist, IFunction & func) = 0; + + /** + * Shortcut to fit an IBaseHistogram directly with an IFunction. + * The dimension of the IBaseHistogram must match the dimension of the IFunction. + * IHistograms and IProfiles are for binned fits only, IClouds only for unbinned fits. + * @param hist The IBaseHistogram to be fitted. + * @param model The string defining the function to be used. + * @return The IFitResult containing the result of the fit. + * + */ + virtual IFitResult * fit(IBaseHistogram & hist, std::string model) = 0; + + /** + * Shortcut to fit an IBaseHistogram directly with an IFunction. + * The dimension of the IBaseHistogram must match the dimension of the IFunction. + * IHistograms and IProfiles are for binned fits only, IClouds only for unbinned fits. + * @param hist The IBaseHistogram to be fitted. + * @param model The string defining the function to be used. + * @param initialParameters The array of the initial parameter values; its size must match the number of + * parameters in the function. + * @return The IFitResult containing the result of the fit. + * + */ + virtual IFitResult * fit(IBaseHistogram & hist, std::string model, std::vector & initialParameters) = 0; + + /** + * Shortcut to fit an IDataPointSet directly with an IFunction. + * The dimension of the IDataPointSet must be equal the dimension of the IFunction + 1. + * This are binned fits only; the last coordinate of the IDataPointSet is used as + * the "height" in a fit to an IBaseHistogram. + * @param dataPointSet The IDataPointSet to be fitted. + * @param func The IFunction to fit on the data. + * @return The IFitResult containing the result of the fit. + * + */ + virtual IFitResult * fit(IDataPointSet & dataPointSet, IFunction & f) = 0; + + /** + * Shortcut to fit an IDataPointSet directly with an IFunction. + * The dimension of the IDataPointSet must be equal the dimension of the IFunction + 1. + * This are binned fits only; the last coordinate of the IDataPointSet is used as + * the "height" in a fit to an IBaseHistogram. + * @param dataPointSet The IDataPointSet to be fitted. + * @param model The string defining the function to be used. + * @return The IFitResult containing the result of the fit. + * + */ + virtual IFitResult * fit(IDataPointSet & dataPointSet, std::string model) = 0; + + /** + * Shortcut to fit an IDataPointSet directly with an IFunction. + * The dimension of the IDataPointSet must be equal the dimension of the IFunction + 1. + * This are binned fits only; the last coordinate of the IDataPointSet is used as + * the "height" in a fit to an IBaseHistogram. + * @param dataPointSet The IDataPointSet to be fitted. + * @param model The string defining the function to be used. + * @param initialParameters The array of the initial parameter values; its size must match the number of + * parameters in the function. + * @return The IFitResult containing the result of the fit. + * + */ + virtual IFitResult * fit(IDataPointSet & dataPointSet, std::string model, std::vector & initialParameters) = 0; + + /// Shortcut for the predefined models. + virtual IFitResult * fit(IFitData & d, std::string model) = 0; + + virtual IFitResult * fit(IFitData & d, std::string model, std::vector & initialParameters) = 0; + + /** + * Set the optimization engine which is used internally for fitting. + * @param name The name of the optimizer engine. + * Examples of predefined engines: "minuit". The engine name is case-insensitive. + * Different engines are provided by different implementations. + * @return false If the name does not correspond to a valid engine. + * + */ + virtual bool setEngine(std::string name) = 0; + + /** + * Get the name of the engine currently in use. + * @return The name of the optimizer engine used by the IFitter. + * + */ + virtual std::string engineName() = 0; + + /** + * Access to fit parameter settings. FitParameterSettings object belongs to + * and is managed by the fitter. Fitter implementation takes care that the + * returned reference is valid thru the lifetime of fitter. + * User can set the settings of the parameters independently of the + * parameters of the fitted function. + * Setting for parameters unknown in the function and set in the + * fitter are ignored in the fit. + * If settings are not explicitly set in the fitter, their default + * values are attached to function parameters during the fit. + */ + virtual IFitParameterSettings & fitParameterSettings(std::string name) = 0; + + /** + * Get a vector of names of all parameter settings defined in the fitter. + */ + virtual const std::vector & listParameterSettings() = 0; + + /** + * Reset all parameter settings which fitter remebers. + */ + virtual void resetParameterSettings() = 0; + + /** + * Set a general constraint in the parameter space. The constraint + * is a parsed expression. PENDING: The syntax to be fixed. + */ + virtual bool setConstraint(std::string expr) = 0; + + /// Get the list of all constraints. + virtual const std::vector & constraints() = 0; + + /** + * Reset all the constraints. + */ + virtual void resetConstraints() = 0; + + /** + * Set the fit method type. Examples of pre-defined methods: "chi2", "ml". + * The method names are case-insensitive. + * @param name The name of the fit method. + * @return false If the name does not correspond to a valid fit method. + * + */ + virtual bool setFitMethod(std::string name) = 0; + + /** + * Get the name of the fit method currently in use. + * @return The name of the fit method. + * + */ + virtual std::string fitMethodName() = 0; + + /// Create a 1D scan of the fit quality for given parameter 'par' of + /// the function. + /// User must make sure that the returned vector is properly deleted + /// after use. + /// The vector containes 'npts' points which are evenly sampled in the + /// interval ('pmin','pmax'). + virtual IDataPointSet * createScan1D(IFitData & d, IFunction & f, std::string par, int npts, double pmin, double pmax) = 0; + + /// Create a 2D contour spanned on 'par1' and 'par2', + /// with given number of npts points. Contour is create using previously + /// obtained fit results. Argument 'up' tells the vertical distance of + /// the contour plane above the minimal fit quality value. + virtual IDataPointSet * createContour(IFitData & d, IFitResult & r, std::string par1, std::string par2, int npts, double up) = 0; + + /** + * Choose between using or not using the + * analytical derivatives if provided by the function. + * @param useGrad If true the IFitter will use the + * analytical derivatives if provided by the IFunction. + * + */ + virtual void setUseFunctionGradient(bool useGrad) = 0; + + /** + * Check if the IFitter is set to use the analytical derivatives provided + * by the IFunction. + * @return true if the IFitter uses the analytical derivatives. + * + */ + virtual bool useFunctionGradient() = 0; + + /** + * @link association + * @directed + * @label <> + */ + /*# IFitResult lnkIFitResult; */ + + /** @link dependency */ + /*# IFitData lnkIFitData; */ + + /** @link aggregation + * @supplierRole <>*/ + /*# IFitParameterSettings lnkIFitParameter; */ + + /** @link dependency + * @label fitter uses function for fitting*/ + /*# IFunction lnkIFunction; */ +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFITTER_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFunction.h b/examples/extended/analysis/A01/include/AIDA/IFunction.h new file mode 100644 index 0000000000..757e7d8e06 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFunction.h @@ -0,0 +1,191 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFUNCTION_H +#define AIDA_IFUNCTION_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IAnnotation; + +/** @interface IFunction + * + * Principal user-level function interface. Function is a self + * contained object, which remembers the current value of its parameters + * which are simple doubles. IFunction may be directly plotted or fitted. + * + * The standard convention of referring to variables by name: + * "x[0]" corresponds to variable number 0 etc. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFunction { + +public: + /// Destructor. + virtual ~IFunction() { /* nop */; } + + /** + * Scalar value of the function. + */ + virtual double value(const std::vector & x) const = 0; + + /** + * Dimensionality of the domain space. + */ + virtual int dimension() const = 0; + + /** + * Compare if functions are the same. + * PENDING: define exactly what it means ;) + */ + virtual bool isEqual(const IFunction * f) const = 0; + + /** + * Gradient of the function. + * The result is valid only if providesGradient()==true. + * Otherwise the result is some default (empty) vector. + */ + virtual const std::vector & gradient(const std::vector & x) const = 0; + + /** + * Determine whether function is able to compute gradient. + */ + virtual bool providesGradient() const = 0; + + /** + * Get the symbolic name of i-th variable. + */ + virtual std::string variableName(int i) const = 0; + + /** + * Get all the names in a vector. + */ + virtual const std::vector & variableNames() const = 0; + + /** + * Set new vector of parameters. + */ + virtual void setParameters(const std::vector & params) = 0; + + /** + * Retrieve current vector of parameters. + */ + virtual const std::vector & parameters() const = 0; + + /** + * Number of parameters. + */ + virtual int numberOfParameters() const = 0; + + /** + * Names of paramaters. + * Names should be unique. Case-insensitive for comparison. + * Case-sensitive for storage and output. + * All or several names may be left blank "" if the implementation + * does not want to provide them. + */ + virtual const std::vector & parameterNames() const = 0; + + /** + * Set parameter's value by name. + * @param name The name of the parameter. + * @param x The new value of the parameter. + * @return false If name does not correspond to a parameter. + * + */ + virtual bool setParameter(std::string name, double x) = 0; + + virtual double parameter(std::string name) const = 0; + + /** + * Return -1 if parameter not found (name undefined). + * Leave it because there are use cases - some users prefer to use numbers. + */ + virtual int indexOfParameter(std::string name) const = 0; + + virtual IAnnotation & annotation() = 0; + + virtual const IAnnotation & annotation() const = 0; + + /** + * String describing the metatype and implementation of the function. + * + * Generic format of the string: + * + * codelet:TYPE:LOCATION + * + * TYPE part contains only a 'typename' string + * which is a metatype identifier (used in plugins and catalogues) + * + * LOCATION may be: 'file', 'verbatim', or 'catalogue' + * + * Detailed description: + * + * codelet:typename - no location specified (using 'catalogue') + * + * codelet:typename:file:/filename.cpp - a c++ source file + * codelet:typename:file:/filename.py - a python source file + * codelet:typename:file:/filename.so - a shared library + * + * codelet:typename:catalogue - entry in a catalogue repository + * + * codelet:typename:verbatim:cpp \n - c++ source file included verbatim + * after \n + * + * codelet:typename:verbatim:py \n - python source file included + * verbatim aftern \n + * + * + * Comments: + * + * file:/filename is a relative path to $AIDA_FUNCTION_DEFAULT_DIR + * file://filename is an absolute path + * + * Examples: + * + * codelet:G:catalogue + * codelet:userSinus:verbatim:cpp \n { return sin(x); } + */ + virtual std::string codeletString() const = 0; + + /** @link aggregation */ + /*# IAnnotation lnkIAnnotation; */ +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFUNCTION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h b/examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h new file mode 100644 index 0000000000..4336aa83f7 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFUNCTIONCATALOG_H +#define AIDA_IFUNCTIONCATALOG_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IFunction; + +/** @interface + * + * Function catalog. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IFunctionCatalog { + +public: + /// Destructor. + virtual ~IFunctionCatalog() { /* nop */; } + + /** + * Remember persistently definition (code!) of a function under a name. + * Scripted function created by the user may be automatically available + * in the subsequent analysis sessions. This is also a way to create + * new names for combinations of exisiting model functions ("G+G+E+P5"). + * Last but not least, system may be easily extended with model functions + * developed in the programming language directly. + * Predefined functions: "G","E","Pn". + */ + virtual bool add(std::string nameId, IFunction * f) = 0; + + virtual bool add(std::string nameId, const std::string & codelet) = 0; + + /* + * Get a list of all available functions. + */ + virtual const std::vector & list() = 0; + + /* + * Remove function from the catalog. + */ + virtual void remove(const std::string & nameId) = 0; + + /* + * Write contents of the catalog to disk. + * We have to agree on the format here, or define and XML + * entry for IFunctionCatalog! + */ + virtual bool storeAll(const std::string & nameOnDisk) = 0; + + /* + * Load contents of the catalog from disk + * We have to agree on the format here, or define and XML + * entry for IFunctionCatalog! + */ + virtual bool loadAll(const std::string & nameOnDisk) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFUNCTIONCATALOG_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h b/examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h new file mode 100644 index 0000000000..95a990038c --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IFUNCTIONFACTORY_H +#define AIDA_IFUNCTIONFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class IFunction; +class IFunctionCatalog; + +/** @interface IFunctionFactory + * + * Function factory. + * + * @author The AIDA team (http://aida.freehep.org/) + * + * @stereotype abstractfactory + */ + +class IFunctionFactory { + +public: + /// Destructor. + virtual ~IFunctionFactory() { /* nop */; } + + /** + * Create function from a name registered in the catalog. + * This is the easiest way to create simple model functions for fitting. + * Every AIDA compliant implementation should predefine "G", "E", "Pn" + * (n is an integer, e.e "P0","P5"). Simple operations are permitted, + * e.g. "G+P2". + */ + virtual IFunction * createFunctionByName(const std::string & name, std::string model) = 0; + + /** + * Create function from script. Script conventions: + * example: createFunctionFromScript("f1", 2, "a*x[0]*x[0] + b*x[1]", "a,b", + "this is my function", "2*a*x[0],b") + */ + virtual IFunction * createFunctionFromScript(const std::string & name, int dim, std::string valexpr, std::string parameters, std::string description, std::string gradexpr = "") = 0; + + virtual IFunction * cloneFunction(const std::string & name, IFunction * f) = 0; + + /** + * get access to the function catalog + */ + virtual IFunctionCatalog * catalog() = 0; + + /** @link association + * @directed*/ + /*# IFunctionCatalog lnkIFunctionCatalog; */ +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IFUNCTIONFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram.h b/examples/extended/analysis/A01/include/AIDA/IHistogram.h new file mode 100644 index 0000000000..41f78f019a --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IHistogram.h @@ -0,0 +1,127 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IHISTOGRAM_H +#define AIDA_IHISTOGRAM_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseHistogram.h" + +namespace AIDA { + +/** + * User level interface to Histogram. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IHistogram : virtual public IBaseHistogram { + +public: + /// Destructor. + virtual ~IHistogram() { /* nop */; } + + /** + * Sum of the entries in all the IHistogram's bins, + * i.e in-range bins, UNDERFLOW and OVERFLOW. + * This is equivalent to the number of times the + * method fill was invoked. + * @return The sum of all the entries. + * + */ + virtual int allEntries() const = 0; + + /** + * Number of entries in the UNDERFLOW and OVERFLOW bins. + * @return The number of entries outside the range of the IHistogram. + * + */ + virtual int extraEntries() const = 0; + + /** + * Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ] + * @return The number of equivalent entries. + * + */ + virtual double equivalentBinEntries() const = 0; + + /** + * Sum of in-range bin heights in the IHistogram, + * UNDERFLOW and OVERFLOW bins are excluded. + * @return The sum of the in-range bins heights. + * + */ + virtual double sumBinHeights() const = 0; + + /** + * Sum of the heights of all the IHistogram's bins, + * i.e in-range bins, UNDERFLOW and OVERFLOW. + * @return The sum of all the bins heights. + * + */ + virtual double sumAllBinHeights() const = 0; + + /** + * Sum of heights in the UNDERFLOW and OVERFLOW bins. + * @return The sum of the heights of the out-of-range bins. + * + */ + virtual double sumExtraBinHeights() const = 0; + + /** + * Minimum height of the in-range bins, + * i.e. not considering the UNDERFLOW and OVERFLOW bins. + * @return The minimum height among the in-range bins. + * + */ + virtual double minBinHeight() const = 0; + + /** + * Maximum height of the in-range bins, + * i.e. not considering the UNDERFLOW and OVERFLOW bins. + * @return The maximum height among the in-range bins. + * + */ + virtual double maxBinHeight() const = 0; + + /** + * Scale the weights and the errors of all the IHistogram's bins + * (in-range and out-of-range ones) by a given scale factor. + * @param scaleFactor The scale factor. + * @return false If the scale factor is negative. + * + */ + virtual bool scale(double scaleFactor) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IHISTOGRAM_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram1D.h b/examples/extended/analysis/A01/include/AIDA/IHistogram1D.h new file mode 100644 index 0000000000..c52944dc47 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IHistogram1D.h @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IHISTOGRAM1D_H +#define AIDA_IHISTOGRAM1D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IHistogram.h" + +namespace AIDA { + +class IAxis; + +/** + * User level interface to 1D Histogram. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IHistogram1D : virtual public IHistogram { + +public: + /// Destructor. + virtual ~IHistogram1D() { /* nop */; } + + /** + * Fill the IHistogram1D with a value and the + * corresponding weight. + * @param x The value to be filled in. + * @param weight The corresponding weight (by default 1). + * @return false If the weight is <0 or >1 (?). + * + */ + virtual bool fill(double x, double weight = 1.) = 0; + + /** + * The weighted mean of a bin. + * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin. + * + */ + virtual double binMean(int index) const = 0; + + /** + * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). + * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding bin. + * + */ + virtual int binEntries(int index) const = 0; + + /** + * Total height of the corresponding bin (ie the sum of the weights in this bin). + * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The height of the corresponding bin. + * + */ + virtual double binHeight(int index) const = 0; + + /** + * The error of a given bin. + * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The error on the corresponding bin. + * + */ + virtual double binError(int index) const = 0; + + /** + * The mean of the whole IHistogram1D. + * @return The mean of the IHistogram1D. + * + */ + virtual double mean() const = 0; + + /** + * The RMS of the whole IHistogram1D. + * @return The RMS if the IHistogram1D. + * + */ + virtual double rms() const = 0; + + /** + * Get the x axis of the IHistogram1D. + * @return The x coordinate IAxis. + * + */ + virtual const IAxis & axis() const = 0; + + /** + * Get the bin number corresponding to a given coordinate along the x axis. + * This is a convenience method, equivalent to axis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * @param coord The coordinalte along the x axis. + * @return The corresponding bin number. + * + */ + virtual int coordToIndex(double coord) const = 0; + + /** + * Add to this IHistogram1D the contents of another IHistogram1D. + * @param hist The IHistogram1D to be added to this IHistogram1D. + * @return false If the IHistogram1Ds binnings are incompatible. + * + */ + virtual bool add(const IHistogram1D & hist) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IHISTOGRAM1D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram2D.h b/examples/extended/analysis/A01/include/AIDA/IHistogram2D.h new file mode 100644 index 0000000000..b68335bebe --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IHistogram2D.h @@ -0,0 +1,219 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IHISTOGRAM2D_H +#define AIDA_IHISTOGRAM2D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IHistogram.h" + +namespace AIDA { + +class IAxis; + +/** + * User level interface to 2D Histogram. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IHistogram2D : virtual public IHistogram { + +public: + /// Destructor. + virtual ~IHistogram2D() { /* nop */; } + + /** + * Fill the IHistogram2D with a couple of values and the + * corresponding weight. + * @param x The x value to be filled in. + * @param y The y value to be filled in. + * @param weight The corresponding weight (by default 1). + * @return false If the weight is <0 or >1 (?). + * + */ + virtual bool fill(double x, double y, double weight = 1.) = 0; + + /** + * The weighted mean along the x axis of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the x axis. + * + */ + virtual double binMeanX(int indexX, int indexY) const = 0; + + /** + * The weighted mean along the y axis of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the y axis. + * + */ + virtual double binMeanY(int indexX, int indexY) const = 0; + + /** + * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding bin. + * + */ + virtual int binEntries(int indexX, int indexY) const = 0; + + /** + * Sum of all the entries of the bins along a given x bin. + * This is equivalent to projectionX().binEntries(index). + * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding set of bins. + * + */ + virtual int binEntriesX(int index) const = 0; + + /** + * Sum of all the entries of the bins along a given y bin. + * This is equivalent to projectionY().binEntries(index). + * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding set of bins. + * + */ + virtual int binEntriesY(int index) const = 0; + + /** + * Total height of a give bin (ie the sum of the weights in this bin). + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The height of the corresponding bin. + * + */ + virtual double binHeight(int indexX, int indexY) const = 0; + + /** + * Sum of all the heights of the bins along a given x bin. + * This is equivalent to projectionX().binHeight(index). + * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The sum of the heights in the corresponding set of bins. + * + */ + virtual double binHeightX(int index) const = 0; + + /** + * Sum of all the heights of the bins along a given y bin. + * This is equivalent to projectionY().binHeight(index). + * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The sum of the heights in the corresponding set of bins. + * + */ + virtual double binHeightY(int index) const = 0; + + /** + * The error of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The error on the corresponding bin. + * + */ + virtual double binError(int indexX, int indexY) const = 0; + + /** + * The mean of the IHistogram2D along the x axis. + * @return The mean of the IHistogram2D along the x axis. + * + */ + virtual double meanX() const = 0; + + /** + * The mean of the IHistogram2D along the y axis. + * @return The mean of the IHistogram2D along the y axis. + * + */ + virtual double meanY() const = 0; + + /** + * The RMS of the IHistogram2D along the x axis. + * @return The RMS if the IHistogram2D along the x axis. + * + */ + virtual double rmsX() const = 0; + + /** + * The RMS of the IHistogram2D along the y axis. + * @return The RMS if the IHistogram2D along the y axis. + * + */ + virtual double rmsY() const = 0; + + /** + * Get the x axis of the IHistogram2D. + * @return The x coordinate IAxis. + * + */ + virtual const IAxis & xAxis() const = 0; + + /** + * Get the y axis of the IHistogram2D. + * @return The y coordinate IAxis. + * + */ + virtual const IAxis & yAxis() const = 0; + + /** + * Get the bin number corresponding to a given coordinate along the x axis. + * This is a convenience method, equivalent to xAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * @param coord The coordinalte along the x axis. + * @return The corresponding bin number. + * + */ + virtual int coordToIndexX(double coord) const = 0; + + /** + * Get the bin number corresponding to a given coordinate along the y axis. + * This is a convenience method, equivalent to yAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * @param coord The coordinalte along the y axis. + * @return The corresponding bin number. + * + */ + virtual int coordToIndexY(double coord) const = 0; + + /** + * Add to this IHistogram2D the contents of another IHistogram2D. + * @param hist The IHistogram2D to be added to this IHistogram2D. + * @return false If the IHistogram2Ds binnings are incompatible. + * + */ + virtual bool add(const IHistogram2D & hist) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IHISTOGRAM2D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram3D.h b/examples/extended/analysis/A01/include/AIDA/IHistogram3D.h new file mode 100644 index 0000000000..fc5945b945 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IHistogram3D.h @@ -0,0 +1,284 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IHISTOGRAM3D_H +#define AIDA_IHISTOGRAM3D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IHistogram.h" + +namespace AIDA { + +class IAxis; + +/** + * User level interface to 3D Histogram. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IHistogram3D : virtual public IHistogram { + +public: + /// Destructor. + virtual ~IHistogram3D() { /* nop */; } + + /** + * Fill the IHistogram3D with a triplet of values and the + * corresponding weight. + * @param x The x value to be filled in. + * @param y The y value to be filled in. + * @param z The z value to be filled in. + * @param weight The corresponding weight (by default 1). + * @return false If the weight is <0 or >1 (?). + * + */ + virtual bool fill(double x, double y, double z, double weight = 1.) = 0; + + /** + * The weighted mean along the x axis of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the x axis. + * + */ + virtual double binMeanX(int indexX, int indexY, int indexZ) const = 0; + + /** + * The weighted mean the y axis of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the y axis. + * + */ + virtual double binMeanY(int indexX, int indexY, int indexZ) const = 0; + + /** + * The weighted mean the z axis of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the z axis. + * + */ + virtual double binMeanZ(int indexX, int indexY, int indexZ) const = 0; + + /** + * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding bin. + * + */ + virtual int binEntries(int indexX, int indexY, int indexZ) const = 0; + + /** + * Sum of all the entries of the bins along a given x bin. + * This is equivalent to projectionXY().binEntriesX(index). + * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding set of bins. + * + */ + virtual int binEntriesX(int index) const = 0; + + /** + * Sum of all the entries of the bins along a given y bin. + * This is equivalent to projectionXY().binEntriesY(index). + * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding set of bins. + * + */ + virtual int binEntriesY(int index) const = 0; + + /** + * Sum of all the entries of the bins along a given z bin. + * This is equivalent to projectionXZ().binEntriesZ(index). + * @param index The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The number of entries in the corresponding set of bins. + * + */ + virtual int binEntriesZ(int index) const = 0; + + /** + * Total height of a give bin (ie the sum of the weights in this bin). + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The height of the corresponding bin. + * + */ + virtual double binHeight(int indexX, int indexY, int indexZ) const = 0; + + /** + * Sum of all the heights of the bins along a given x bin. + * This is equivalent to projectionXY().binHeightX(index). + * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The sum of the heights in the corresponding set of bins. + * + */ + virtual double binHeightX(int index) const = 0; + + /** + * Sum of all the heights of the bins along a given y bin. + * This is equivalent to projectionXY().binHeightY(index). + * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The sum of the heights in the corresponding set of bins. + * + */ + virtual double binHeightY(int index) const = 0; + + /** + * Sum of all the heights of the bins along a given z bin. + * This is equivalent to projectionXZ().binHeightZ(index). + * @param index The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The sum of the heights in the corresponding set of bins. + * + */ + virtual double binHeightZ(int index) const = 0; + + /** + * The error of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The error on the corresponding bin. + * + */ + virtual double binError(int indexX, int indexY, int indexZ) const = 0; + + /** + * The mean of the IHistogram3D along the x axis. + * @return The mean of the IHistogram3D along the x axis. + * + */ + virtual double meanX() const = 0; + + /** + * The mean of the IHistogram3D along the y axis. + * @return The mean of the IHistogram3D along the y axis. + * + */ + virtual double meanY() const = 0; + + /** + * The mean of the IHistogram3D along the z axis. + * @return The mean of the IHistogram3D along the z axis. + * + */ + virtual double meanZ() const = 0; + + /** + * The RMS of the IHistogram3D along the x axis. + * @return The RMS if the IHistogram3D along the x axis. + * + */ + virtual double rmsX() const = 0; + + /** + * The RMS of the IHistogram3D along the y axis. + * @return The RMS if the IHistogram3D along the y axis. + * + */ + virtual double rmsY() const = 0; + + /** + * The RMS of the IHistogram3D along the z axis. + * @return The RMS if the IHistogram3D along the z axis. + * + */ + virtual double rmsZ() const = 0; + + /** + * Get the x axis of the IHistogram3D. + * @return The x coordinate IAxis. + * + */ + virtual const IAxis & xAxis() const = 0; + + /** + * Get the y axis of the IHistogram3D. + * @return The y coordinate IAxis. + * + */ + virtual const IAxis & yAxis() const = 0; + + /** + * Get the z axis of the IHistogram3D. + * @return The z coordinate IAxis. + * + */ + virtual const IAxis & zAxis() const = 0; + + /** + * Get the bin number corresponding to a given coordinate along the x axis. + * This is a convenience method, equivalent to xAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * @param coord The coordinalte along the x axis. + * @return The corresponding bin number. + * + */ + virtual int coordToIndexX(double coord) const = 0; + + /** + * Get the bin number corresponding to a given coordinate along the y axis. + * This is a convenience method, equivalent to yAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * @param coord The coordinalte along the y axis. + * @return The corresponding bin number. + * + */ + virtual int coordToIndexY(double coord) const = 0; + + /** + * Get the bin number corresponding to a given coordinate along the z axis. + * This is a convenience method, equivalent to zAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * @param coord The coordinalte along the z axis. + * @return The corresponding bin number. + * + */ + virtual int coordToIndexZ(double coord) const = 0; + + /** + * Add to this IHistogram3D the contents of another IHistogram3D. + * @param hist The IHistogram3D to be added to this IHistogram3D. + * @return false If the IHistogram3Ds binnings are incompatible. + * + */ + virtual bool add(const IHistogram3D & hist) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IHISTOGRAM3D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h b/examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h new file mode 100644 index 0000000000..50fc8007b0 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h @@ -0,0 +1,767 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IHISTOGRAMFACTORY_H +#define AIDA_IHISTOGRAMFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IBaseHistogram; +class ICloud1D; +class ICloud2D; +class ICloud3D; +class IHistogram1D; +class IHistogram2D; +class IHistogram3D; +class IProfile1D; +class IProfile2D; + +/** + * User level interface for factory classes of Histograms (binned, unbinned, and profile) + * The created objects are assumed to be managed by the tree which is associated to the factory. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IHistogramFactory { + +public: + /// Destructor. + virtual ~IHistogramFactory() { /* nop */; } + + /** + * Destroy an IBaseHistogram ogject. + * @param hist The IBaseHistogram to be destroyed. + * @return false If the histogram cannot be destroyed. + * + */ + virtual bool destroy(IBaseHistogram * hist) = 0; + + /** + * Create a ICloud1D, an unbinned 1-dimensioal histogram. + * @param name The name of the ICloud1D. + * @param title The title of the ICloud1D. + * @param nMax The maximum number of entries after which the ICloud1D + * will convert to an IHistogram1D. The default nMax = -1 + * indicates no limit of entries before aoutoconversion to a IHistogram1D. + * @param options The options for the ICloud1D. "autoconvert=true" to enable autoconversion + * to an IHistogram1D. + * @return The newly created ICloud1D. + * + */ + virtual ICloud1D * createCloud1D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; + + /** + * Create a ICloud1D, an unbinned 1-dimensional histogram. + * @param nameAndTitle The name of the ICloud1D; it is also its title. + * @return The newly created ICloud1D. + * + */ + virtual ICloud1D * createCloud1D(const std::string & nameAndTitle) = 0; + + /** + * Create a copy of an ICloud1D. + * @param name The name of the new copy. + * @param cloud The ICloud1D to be copied. + * @return The copy of the ICloud1D. + * + */ + virtual ICloud1D * createCopy(const std::string & name, const ICloud1D & cloud) = 0; + + /** + * Create a ICloud2D, an unbinned 2-dimensional histogram. + * @param name The name of the ICloud2D. + * @param title The title of the ICloud2D. + * @param nMax The maximum number of entries after which the ICloud2D + * will convert to an IHistogram2D. The default nMax = -1 + * indicates no limit of entries before aoutoconversion to a IHistogram2D. + * @param options The options for the ICloud2D. "autoconvert=true" to enable autoconversion + * to an IHistogram2D. + * @return The newly created ICloud2D. + * + */ + virtual ICloud2D * createCloud2D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; + + /** + * Create a ICloud2D, an unbinned 2-dimensional histogram. + * @param nameAndTitle The name of the ICloud2D; it is also its title. + * @return The newly created ICloud2D. + * + */ + virtual ICloud2D * createCloud2D(const std::string & nameAndTitle) = 0; + + /** + * Create a copy of an ICloud2D. + * @param name The name of the new copy. + * @param cloud The ICloud2D to be copied. + * @return The copy of the ICloud2D. + * + */ + virtual ICloud2D * createCopy(const std::string & name, const ICloud2D & cloud) = 0; + + /** + * Create a ICloud3D, an unbinned 3-dimensional histogram. + * @param name The name of the ICloud3D. + * @param title The title of the ICloud3D. + * @param nMax The maximum number of entries after which the ICloud3D + * will convert to an IHistogram3D. The default nMax = -1 + * indicates no limit of entries before aoutoconversion to a IHistogram3D. + * @param options The options for the ICloud3D. "autoconvert=true" to enable autoconversion + * to an IHistogram3D. + * @return The newly created ICloud3D. + * + */ + virtual ICloud3D * createCloud3D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; + + /** + * Create a ICloud3D, an unbinned 3-dimensional histogram. + * @param nameAndTitle The name of the ICloud3D; it is also its title. + * @return The newly created ICloud3D. + * + */ + virtual ICloud3D * createCloud3D(const std::string & nameAndTitle) = 0; + + /** + * Create a copy of an ICloud3D. + * @param name The name of the new copy. + * @param cloud The ICloud3D to be copied. + * @return The copy of the ICloud3D. + * + */ + virtual ICloud3D * createCopy(const std::string & name, const ICloud3D & cloud) = 0; + + /** + * Create a IHistogram1D. + * @param name The name of the IHistogram1D. + * @param title The title of the IHistogram1D. + * @param nBins The number of bins of the x axis. + * @param lowerEdge The lower edge of the x axis. + * @param upperEdge The upper edge of the x axis. + * @param options The options for the IHistogram1D. The default is "". + * "type=efficiency" for an efficiency IHistogram1D. + * @return The newly created IHistogram1D. + * + */ + virtual IHistogram1D * createHistogram1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; + + /** + * Create a IHistogram1D. + * @param nameAndTitle The name of the IHistogram1D; it is also the title. + * @param nBins The number of bins of the x axis. + * @param lowerEdge The lower edge of the x axis. + * @param upperEdge The upper edge of the x axis. + * @return The newly created IHistogram1D. + * + */ + virtual IHistogram1D * createHistogram1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; + + /** + * Create a IHistogram1D. + * @param name The name of the IHistogram1D. + * @param title The title of the IHistogram1D. + * @param binEdges The array of the bin edges for the x axis. + * @param options The options for the IHistogram1D. The default is "". + * "type=efficiency" for an efficiency IHistogram1D. + * @return The newly created IHistogram1D. + * + */ + virtual IHistogram1D * createHistogram1D(const std::string & name, const std::string & title, const std::vector & binEdges, const std::string & options = "") = 0; + + /** + * Create a copy of an IHistogram1D. + * @param name The name of the new copy. + * @param hist The IHistogram1D to be copied. + * @return The copy of the IHistogram1D. + * + */ + virtual IHistogram1D * createCopy(const std::string & name, const IHistogram1D & hist) = 0; + + /** + * Create a IHistogram2D. + * @param name The name of the IHistogram2D. + * @param title The title of the IHistogram2D. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @param options The options for the IHistogram2D. The default is "". + * "type=efficiency" for an efficiency IHistogram2D. + * @return The newly created IHistogram2D. + * + */ + virtual IHistogram2D * createHistogram2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; + + /** + * Create a IHistogram2D. + * @param nameAndTitle The name of the IHistogram2D; it is also the title. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @return The newly created IHistogram2D. + * + */ + virtual IHistogram2D * createHistogram2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; + + /** + * Create a IHistogram2D. + * @param name The name of the IHistogram2D. + * @param title The title of the IHistogram2D. + * @param binEdgesX The array of the bin edges for the x axis. + * @param binEdgesY The array of the bin edges for the y axis. + * @param options The options for the IHistogram2D. The default is "". + * "type=efficiency" for an efficiency IHistogram2D. + * @return The newly created IHistogram2D. + * + */ + virtual IHistogram2D * createHistogram2D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, const std::string & options = "") = 0; + + /** + * Create a copy of an IHistogram2D. + * @param name The name of the new copy. + * @param hist The IHistogram2D to be copied. + * @return The copy of the IHistogram2D. + * + */ + virtual IHistogram2D * createCopy(const std::string & name, const IHistogram2D & hist) = 0; + + /** + * Create a IHistogram3D. + * @param name The name of the IHistogram3D. + * @param title The title of the IHistogram3D. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @param nBinsZ The number of bins of the z axis. + * @param lowerEdgeZ The lower edge of the z axis. + * @param upperEdgeZ The upper edge of the z axis. + * @param options The options for the IHistogram3D. The default is "". + * "type=efficiency" for an efficiency IHistogram3D. + * @return The newly created IHistogram3D. + * + */ + virtual IHistogram3D * createHistogram3D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ, const std::string & options = "") = 0; + + /** + * Create a IHistogram3D. + * @param nameAndTitle The name of the IHistogram3D; it is also the title. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @param nBinsZ The number of bins of the z axis. + * @param lowerEdgeZ The lower edge of the z axis. + * @param upperEdgeZ The upper edge of the z axis. + * @return The newly created IHistogram3D. + * + */ + virtual IHistogram3D * createHistogram3D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0; + + /** + * Create a IHistogram3D. + * @param name The name of the IHistogram3D. + * @param title The title of the IHistogram3D. + * @param binEdgesX The array of the bin edges for the x axis. + * @param binEdgesY The array of the bin edges for the y axis. + * @param binEdgesZ The array of the bin edges for the z axis. + * @param options The options for the IHistogram3D. The default is "". + * "type=efficiency" for an efficiency IHistogram3D. + * @return The newly created IHistogram3D. + * + */ + virtual IHistogram3D * createHistogram3D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, const std::vector & binEdgesZ, const std::string & options = "") = 0; + + /** + * Create a copy of an IHistogram3D. + * @param name The name of the new copy. + * @param hist The IHistogram3D to be copied. + * @return The copy of the IHistogram3D. + * + */ + virtual IHistogram3D * createCopy(const std::string & name, const IHistogram3D & hist) = 0; + + /** + * Create a IProfile1D. + * @param name The name of the IProfile1D. + * @param title The title of the IProfile1D. + * @param nBins The number of bins of the x axis. + * @param lowerEdge The lower edge of the x axis. + * @param upperEdge The upper edge of the x axis. + * @param options The options for the IProfile1D. The default is "". + * @return The newly created IProfile1D. + * + */ + virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; + + /** + * Create a IProfile1D. + * @param name The name of the IProfile1D. + * @param title The title of the IProfile1D. + * @param nBins The number of bins of the x axis. + * @param lowerEdge The lower edge of the x axis. + * @param upperEdge The upper edge of the x axis. + * @param lowerValue The lower value displayed along the y axis. + * @param upperValue The upper value displayed along the y axis. + * @param options The options for the IProfile1D. The default is "". + * @return The newly created IProfile1D. + * + */ + virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue, const std::string & options = "") = 0; + + /** + * Create a IProfile1D. + * @param name The name of the IProfile1D. + * @param title The title of the IProfile1D. + * @param binEdges The array of the bin edges for the x axis. + * @param options The options for the IProfile1D. The default is "". + * @return The newly created IProfile1D. + * + */ + virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, const std::vector & binEdges, const std::string & options = "") = 0; + + /** + * Create a IProfile1D. + * @param name The name of the IProfile1D. + * @param title The title of the IProfile1D. + * @param binEdges The array of the bin edges for the x axis. + * @param lowerValue The lower value displayed along the y axis. + * @param upperValue The upper value displayed along the y axis. + * @param options The options for the IProfile1D. The default is "". + * @return The newly created IProfile1D. + * + */ + virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, const std::vector & binEdges, double lowerValue, double upperValue, const std::string & options = "") = 0; + + /** + * Create a IProfile1D. + * @param nameAndTitle The name of the IProfile1D; it is also the title. + * @param nBins The number of bins of the x axis. + * @param lowerEdge The lower edge of the x axis. + * @param upperEdge The upper edge of the x axis. + * @return The newly created IProfile1D. + * + */ + virtual IProfile1D * createProfile1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; + + /** + * Create a IProfile1D. + * @param nameAndTitle The name of the IProfile1D; it is also the title. + * @param nBins The number of bins of the x axis. + * @param lowerEdge The lower edge of the x axis. + * @param upperEdge The upper edge of the x axis. + * @param lowerValue The lower value displayed along the y axis. + * @param upperValue The upper value displayed along the y axis. + * @return The newly created IProfile1D. + * + */ + virtual IProfile1D * createProfile1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue) = 0; + + /** + * Create a copy of an IProfile1D. + * @param name The name of the new copy. + * @param profile The IProfile1D to be copied. + * @return The copy of the IProfile1D. + * + */ + virtual IProfile1D * createCopy(const std::string & name, const IProfile1D & profile) = 0; + + /** + * Create a IProfile2D. + * @param name The name of the IProfile2D. + * @param title The title of the IProfile2D. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @param options The options for the IProfile2D. The default is "". + * @return The newly created IProfile2D. + * + */ + virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; + + /** + * Create a IProfile2D. + * @param name The name of the IProfile2D. + * @param title The title of the IProfile2D. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @param lowerValue The lower value displayed along the z axis. + * @param upperValue The upper value displayed along the z axis. + * @param options The options for the IProfile2D. The default is "". + * @return The newly created IProfile2D. + * + */ + virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue, const std::string & options = "") = 0; + + /** + * Create a IProfile2D. + * @param name The name of the IProfile2D. + * @param title The title of the IProfile2D. + * @param binEdgesX The array of the bin edges for the x axis. + * @param binEdgesY The array of the bin edges for the y axis. + * @param options The options for the IProfile2D. The default is "". + * @return The newly created IProfile2D. + * + */ + virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, const std::string & options = "") = 0; + + /** + * Create a IProfile2D. + * @param name The name of the IProfile2D. + * @param title The title of the IProfile2D. + * @param binEdgesX The array of the bin edges for the x axis. + * @param binEdgesY The array of the bin edges for the y axis. + * @param lowerValue The lower value displayed along the y axis. + * @param upperValue The upper value displayed along the y axis. + * @param options The options for the IProfile2D. The default is "". + * @return The newly created IProfile2D. + * + */ + virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, double lowerValue, double upperValue, const std::string & options = "") = 0; + + /** + * Create a IProfile2D. + * @param nameAndTitle The name of the IProfile2D; it is also the title. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @return The newly created IProfile2D. + * + */ + virtual IProfile2D * createProfile2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; + + /** + * Create a IProfile2D. + * @param nameAndTitle The name of the IProfile2D; it is also the title. + * @param nBinsX The number of bins of the x axis. + * @param lowerEdgeX The lower edge of the x axis. + * @param upperEdgeX The upper edge of the x axis. + * @param nBinsY The number of bins of the y axis. + * @param lowerEdgeY The lower edge of the y axis. + * @param upperEdgeY The upper edge of the y axis. + * @param lowerValue The lower value displayed along the z axis. + * @param upperValue The upper value displayed along the z axis. + * @return The newly created IProfile2D. + * + */ + virtual IProfile2D * createProfile2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue) = 0; + + /** + * Create a copy of an IProfile2D. + * @param name The name of the new copy. + * @param profile The IProfile2D to be copied. + * @return The copy of the IProfile2D. + * + */ + virtual IProfile2D * createCopy(const std::string & name, const IProfile2D & profile) = 0; + + /** + * Create an IHistogram1D by adding two IHistogram1D. + * @param name The name of the resulting IHistogram1D. + * @param hist1 The first member of the addition. + * @param hist2 The second member of the addition. + * @return The sum of the two IHistogram1D. + * + */ + virtual IHistogram1D * add(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; + + /** + * Create an IHistogram1D by subtracting two IHistogram1D. + * @param name The name of the resulting IHistogram1D. + * @param hist1 The first member of the subtraction. + * @param hist2 The second member of the subtraction. + * @return The difference of the two IHistogram1D. + * + */ + virtual IHistogram1D * subtract(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; + + /** + * Create an IHistogram1D by multiplying two IHistogram1D. + * @param name The name of the resulting IHistogram1D. + * @param hist1 The first member of the multiplication. + * @param hist2 The second member of the multiplication. + * @return The product of the two IHistogram1D. + * + */ + virtual IHistogram1D * multiply(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; + + /** + * Create an IHistogram1D by dividing two IHistogram1D. + * @param name The name of the resulting IHistogram1D. + * @param hist1 The first member of the division. + * @param hist2 The second member of the division. + * @return The ration of the two IHistogram1D. + * + */ + virtual IHistogram1D * divide(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; + + /** + * Create an IHistogram2D by adding two IHistogram2D. + * @param name The name of the resulting IHistogram2D. + * @param hist1 The first member of the addition. + * @param hist2 The second member of the addition. + * @return The sum of the two IHistogram2D. + * + */ + virtual IHistogram2D * add(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; + + /** + * Create an IHistogram2D by subtracting two IHistogram2D. + * @param name The name of the resulting IHistogram2D. + * @param hist1 The first member of the subtraction. + * @param hist2 The second member of the subtraction. + * @return The difference of the two IHistogram2D. + * + */ + virtual IHistogram2D * subtract(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; + + /** + * Create an IHistogram2D by multiplying two IHistogram2D. + * @param name The name of the resulting IHistogram2D. + * @param hist1 The first member of the multiplication. + * @param hist2 The second member of the multiplication. + * @return The product of the two IHistogram2D. + * + */ + virtual IHistogram2D * multiply(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; + + /** + * Create an IHistogram2D by dividing two IHistogram2D. + * @param name The name of the resulting IHistogram2D. + * @param hist1 The first member of the division. + * @param hist2 The second member of the division. + * @return The ration of the two IHistogram2D. + * + */ + virtual IHistogram2D * divide(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; + + /** + * Create an IHistogram3D by adding two IHistogram3D. + * @param name The name of the resulting IHistogram3D. + * @param hist1 The first member of the addition. + * @param hist2 The second member of the addition. + * @return The sum of the two IHistogram3D. + * + */ + virtual IHistogram3D * add(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; + + /** + * Create an IHistogram3D by subtracting two IHistogram3D. + * @param name The name of the resulting IHistogram3D. + * @param hist1 The first member of the subtraction. + * @param hist2 The second member of the subtraction. + * @return The difference of the two IHistogram3D. + * + */ + virtual IHistogram3D * subtract(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; + + /** + * Create an IHistogram3D by multiplying two IHistogram3D. + * @param name The name of the resulting IHistogram3D. + * @param hist1 The first member of the multiplication. + * @param hist2 The second member of the multiplication. + * @return The product of the two IHistogram3D. + * + */ + virtual IHistogram3D * multiply(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; + + /** + * Create an IHistogram3D by dividing two IHistogram3D. + * @param name The name of the resulting IHistogram3D. + * @param hist1 The first member of the division. + * @param hist2 The second member of the division. + * @return The ration of the two IHistogram3D. + * + */ + virtual IHistogram3D * divide(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; + + /** + * Create an IHistogram1D by projecting an IHistogram2D along its x axis. + * This is equivalent to sliceX(UNDERFLOW_BIN,OVERFLOW_BIN). + * @param name The name of the resulting IHistogram1D. + * @param hist The IHistogram2D to be projected. + * @return The resulting projection. + * + */ + virtual IHistogram1D * projectionX(const std::string & name, const IHistogram2D & hist) = 0; + + /** + * Create an IHistogram1D by projecting an IHistogram2D along its y axis. + * This is equivalent to sliceY(UNDERFLOW_BIN,OVERFLOW_BIN). + * @param name The name of the resulting IHistogram1D. + * @param hist The IHistogram2D to be projected. + * @return The resulting projection. + * + */ + virtual IHistogram1D * projectionY(const std::string & name, const IHistogram2D & hist) = 0; + + /** + * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis at a given bin. + * This is equivalent to sliceX(indexY,indexY). + * @param name The name of the resulting IHistogram1D. + * @param hist The IHistogram2D to be sliced. + * @param index The index of the bin along the y axis where the IHistogram2D has to be sliced. + * @return The resulting slice. + * + */ + virtual IHistogram1D * sliceX(const std::string & name, const IHistogram2D & hist, int index) = 0; + + /** + * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis at a given bin. + * This is equivalent to sliceY(indexX,indexX). + * @param name The name of the resulting IHistogram1D. + * @param hist The IHistogram2D to be sliced. + * @param index The index of the bin along the x axis where the IHistogram2D has to be sliced. + * @return The resulting slice. + * + */ + virtual IHistogram1D * sliceY(const std::string & name, const IHistogram2D & hist, int index) = 0; + + /** + * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis between two bins (inclusive). + * @param name The name of the resulting IHistogram1D. + * @param hist The IHistogram2D to be sliced. + * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. + * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. + * @return The resulting slice. + * + */ + virtual IHistogram1D * sliceX(const std::string & name, const IHistogram2D & hist, int index1, int index2) = 0; + + /** + * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis between two bins (inclusive). + * @param name The name of the resulting IHistogram1D. + * @param hist The IHistogram2D to be sliced. + * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. + * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. + * @return The resulting slice. + * + */ + virtual IHistogram1D * sliceY(const std::string & name, const IHistogram2D & hist, int index1, int index2) = 0; + + /** + * Create an IHistogram2D by projecting an IHistogram3D on the x-y plane. + * This is equivalent to sliceXY(UNDERFLOW_BIN,OVERFLOW_BIN). + * @param name The name of the resulting IHistogram2D. + * @param hist The IHistogram3D to be projected. + * @return The resulting projection. + * + */ + virtual IHistogram2D * projectionXY(const std::string & name, const IHistogram3D & hist) = 0; + + /** + * Create an IHistogram2D by projecting an IHistogram3D on the x-z plane. + * This is equivalent to sliceXZ(UNDERFLOW_BIN,OVERFLOW_BIN). + * @param name The name of the resulting IHistogram2D. + * @param hist The IHistogram3D to be projected. + * @return The resulting projection. + * + */ + virtual IHistogram2D * projectionXZ(const std::string & name, const IHistogram3D & hist) = 0; + + /** + * Create an IHistogram2D by projecting an IHistogram3D on the y-z plane. + * This is equivalent to sliceYZ(UNDERFLOW_BIN,OVERFLOW_BIN). + * @param name The name of the resulting IHistogram2D. + * @param hist The IHistogram3D to be projected. + * @return The resulting projection. + * + */ + virtual IHistogram2D * projectionYZ(const std::string & name, const IHistogram3D & hist) = 0; + + /** + * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Z axis, + * between "index1" and "index2" (inclusive). + * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. + * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. + * @param name The name of the resulting IHistogram2D. + * @param hist The IHistogram3D to sliced. + * @param index1 The index of the bin along the z axis that marks the lower edge of the slice. + * @param index2 The index of the bin along the z axis that marks the upper edge of the slice. + * @return The resulting slice. + * + */ + virtual IHistogram2D * sliceXY(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; + + /** + * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Y axis, + * between "index1" and "index2" (inclusive). + * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. + * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. + * @param name The name of the resulting IHistogram2D. + * @param hist The IHistogram3D to sliced. + * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. + * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. + * @return The resulting slice. + * + */ + virtual IHistogram2D * sliceXZ(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; + + /** + * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the X axis, + * between "index1" and "index2" (inclusive). + * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. + * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. + * @param name The name of the resulting IHistogram2D. + * @param hist The IHistogram3D to sliced. + * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. + * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. + * @return The resulting slice. + * + */ + virtual IHistogram2D * sliceYZ(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IInfo.h b/examples/extended/analysis/A01/include/AIDA/IInfo.h new file mode 100644 index 0000000000..c256b98643 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IInfo.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IINFO_H +#define AIDA_IINFO_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class IFillStyle; +class ILineStyle; +class IMarkerStyle; + +/** + * The info class permits to access the info area of a region. + * Through it legends, statistics, text could be displayed. + * A legend is an association of a graphical marker and a text. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IInfo { + +public: + /// Destructor. + virtual ~IInfo() { /* nop */; } + + /** + * Clear the info area. + */ + virtual void clear() = 0; + + /** + * Add a text. The text is appended to existing info elements. + */ + virtual void addText(const std::string & text) = 0; + + /** + * Add a marker, line or fill area legend. + * The legend is appended to existing elements. + */ + virtual void addLegend(const IMarkerStyle & style, const std::string & description) = 0; + + virtual void addLegend(const ILineStyle & style, const std::string & description) = 0; + + virtual void addLegend(const IFillStyle & style, const std::string & description) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IINFO_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IInfoStyle.h b/examples/extended/analysis/A01/include/AIDA/IInfoStyle.h new file mode 100644 index 0000000000..6f6e5350fb --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IInfoStyle.h @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IINFOSTYLE_H +#define AIDA_IINFOSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseStyle.h" + +namespace AIDA { + +class ITextStyle; + +/** + * Style for the part of the scene representing the info area. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IInfoStyle : virtual public IBaseStyle { + +public: + /// Destructor. + virtual ~IInfoStyle() { /* nop */; } + + virtual ITextStyle & textStyle() = 0; + + virtual bool setTextStyle(const ITextStyle & textStyle) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IINFOSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ILineStyle.h b/examples/extended/analysis/A01/include/AIDA/ILineStyle.h new file mode 100644 index 0000000000..ec139c0808 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ILineStyle.h @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ILINESTYLE_H +#define AIDA_ILINESTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +#include "AIDA/IBrushStyle.h" + +namespace AIDA { + +/** + * Style for all lines (axis lines, legend box outlines, etc.) + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class ILineStyle : virtual public IBrushStyle { + +public: + /// Destructor. + virtual ~ILineStyle() { /* nop */; } + + /** + * Get list of line types supported by this implementation. + */ + virtual std::vector availableLineTypes() const = 0; + + /** + * Get line type currently in use. + */ + virtual std::string lineType() const = 0; + + /** + * Get current line thickness. + */ + virtual int thickness() const = 0; + + /** + * Set current line type e.g. "dotted". + * @return false if line type not known to this implementation. + */ + virtual bool setLineType(const std::string & newLineType) = 0; + + /** + * Set thickness (exact meaning is implementation-dependent, + * but <0 means invisible). + * @return false if value not supported by this implementation. + */ + virtual bool setThickness(int newThickness) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ILINESTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IManagedObject.h b/examples/extended/analysis/A01/include/AIDA/IManagedObject.h new file mode 100644 index 0000000000..a36a455cd2 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IManagedObject.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IMANAGEDOBJECT_H +#define AIDA_IMANAGEDOBJECT_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +/** + * An object which can be stored in a tree. + * @see ITree + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IManagedObject { + +public: + /// Destructor. + virtual ~IManagedObject() { /* nop */; } + + /** + * Get the name of an IManagedObject. + * Names can only be changed using the ITree.mv(). + * @return The name of the IManagedObject. + * + */ + virtual const std::string & name() const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IMANAGEDOBJECT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h b/examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h new file mode 100644 index 0000000000..974779c62e --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IMARKERSTYLE_H +#define AIDA_IMARKERSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +#include "AIDA/IBrushStyle.h" + +namespace AIDA { + +/** + * Style for all markers (histo representation, legend box etc.) + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class IMarkerStyle : virtual public IBrushStyle { + +public: + /// Destructor. + virtual ~IMarkerStyle() { /* nop */; } + + /** + * Get list of shapes available in this implementation. + */ + virtual std::vector availableShapes() const = 0; + + /** + * Get current marker shape. + */ + virtual std::string shape() const = 0; + + /** + * Set current marker shape, e.g. "openCircle". + * @return false if shape not available in this implementation. + */ + virtual bool setShape(const std::string & shape) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IMARKERSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IMeasurement.h b/examples/extended/analysis/A01/include/AIDA/IMeasurement.h new file mode 100644 index 0000000000..0c8e15f367 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IMeasurement.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IMEASUREMENT_H +#define AIDA_IMEASUREMENT_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +namespace AIDA { + +/** + * Basic user-level interface class for holding a single "measurement" + * with positive and negative errors (to allow for asymmetric errors). + * "IMeasurement" = "value" + "errorPlus" - "errorMinus" + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IMeasurement { + +public: + /// Destructor. + virtual ~IMeasurement() { /* nop */; } + + /** + * Get the value of the IMeasurement. + * @return The value of the IMeasurement. + * + */ + virtual double value() const = 0; + + /** + * Get the plus error of the IMeasurement. + * @return The plus error. + * + */ + virtual double errorPlus() const = 0; + + /** + * Get the minus error of the IMeasurement. + * @return The minus error. + * + */ + virtual double errorMinus() const = 0; + + /** + * Set the value of the IMeasurement. + * @param value The new value of the IMeasurement. + * @return false If the value cannot be set. + * + */ + virtual bool setValue(double value) = 0; + + /** + * Set the plus error of the IMeasurement. + * @param value The new plus error of the IMeasurement. + * @return false If the error cannot be set or it is negative. + * + */ + virtual bool setErrorPlus(double errorPlus) = 0; + + /** + * Set the minus error of the IMeasurement. + * @param value The new minus error of the IMeasurement. + * @return false If the error cannot be set or it is negative. + * + */ + virtual bool setErrorMinus(double errorMinus) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IMEASUREMENT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IModelFunction.h b/examples/extended/analysis/A01/include/AIDA/IModelFunction.h new file mode 100644 index 0000000000..78283c4a3c --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IModelFunction.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IMODELFUNCTION_H +#define AIDA_IMODELFUNCTION_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +#include "AIDA/IFunction.h" + +namespace AIDA { + +class IRangeSet; + +/** @interface IModelFunction + * + * Interface of model function for fitting (for advanced users). + * + * OPEN QUESTIONS: + * + * How to treat normalization at user level? Two possibilities: + * - we have "Gauss" and "NormalizedGauss", the first one user cannot + * use for ML fit + * - we have only one "Gauss" function, but it's smart and when normalized, + * gets rid of one of its parameters + * + * Normalization range might be set directly on the function by the user? + * Now we set it in the data pipe, Victor thinks that it is not very clear + * and should be on the function ;) + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IModelFunction : virtual public IFunction { + +public: + /// Destructor. + virtual ~IModelFunction() { /* nop */; } + + /// Return false if function does not provide the normalization capability. + virtual bool providesNormalization() const = 0; + + /** + * Normalize by internally adjusting some of the parameters. + * When normalization is on then integral of the function in + * the normalization range equals to 1. + */ + virtual void normalize(bool on) = 0; + + /** + * Return true if normalization is currently switched on. + */ + virtual bool isNormalized() const = 0; + + /** + * Compute gradient with respect to parameters. + */ + virtual const std::vector & parameterGradient(const std::vector & x) const = 0; + + /** + * Return true if provides parameter gradient. + */ + virtual bool providesParameterGradient() const = 0; + + /** + * Set the normalization range from -inf to +inf in the i-th + * axis (dimension). + * + * Full range is the default if not set otherwise. + * It is still possible to evaluate function outside of the + * normalization range. + * + * PENDING: no methods to retrieve current range! + */ + virtual IRangeSet & normalizationRange(int iAxis) = 0; + + /** + * Set full range in all axes. + */ + virtual void includeNormalizationAll() = 0; + + /** + * Set empty range in all axes. + */ + virtual void excludeNormalizationAll() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IMODELFUNCTION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotter.h b/examples/extended/analysis/A01/include/AIDA/IPlotter.h new file mode 100644 index 0000000000..83739484e5 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IPlotter.h @@ -0,0 +1,211 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPLOTTER_H +#define AIDA_IPLOTTER_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IPlotterRegion; +class ITitleStyle; + +/** + * User level interface to plotter. + * + * This IPlotter interface assumes the handling of + * multiple plotting regions. Then the IPlotter should + * be seen as a "page" managing multiple drawing region. + * It assumes that a "current" region mechanism is used. + * + * The keyword "region" is borrowed from the OpenInventor + * terminology (viewing region). + * + * See also the IPlotterRegion for more comments. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IPlotter { + +public: + /// Destructor. + virtual ~IPlotter() { /* nop */; } + + /** + * Region management methods. + */ + + /** + * Create a new region. + * @param x, y, w, h Position and size in normal coordinates + * that is to say between 0 and 1. + * Then a region with (x=0,y=0,w=1,h=1) maps + * the full page. "x" goes left to right. "y" bottom + * to top. + * @return The newly created region. Return null in case not failure. + * Note that the plotter manages the regions ; user does not + * have to delete a region object directly. + */ + virtual IPlotterRegion * createRegion(double x = 0, double y = 0, double w = 1.0, double h = 1.0) = 0; + + /** + * Create a grid of regions. + * By default the current region is the top left one (with index 0). + * Region are indexed from zero, with increasing order + * left to right, top to bottom. + * @param index Set the current region. + */ + virtual bool createRegions(int columns = 1, int rows = 1, int index = 0) = 0; + + /** + * @return The current region. + */ + virtual IPlotterRegion & currentRegion() const = 0; + + /** + * @return The current region index. + */ + virtual int currentRegionNumber() const = 0; + + /** + * @return The number of regions. + */ + virtual int numberOfRegions() const = 0; + + /** + * Set current region by giving its index [0,n-1] + */ + virtual bool setCurrentRegionNumber(int index) = 0; + + /** + * Set current region to be the "next" one. + * If exceeding the number of regions, + * the current region index return to 0. + * @return The new current region. + */ + virtual IPlotterRegion & next() = 0; + + /** + * @return A region, knowing its index. + */ + virtual IPlotterRegion * region(int index) const = 0; + + /** + * Destroy regions. + */ + virtual void destroyRegions() = 0; + + /** + * Clear all regions. It does not reset the number + * and position of regions. This can be done through + * a destroyRegions. + */ + virtual void clearRegions() = 0; + + /* + * Set various plotting paramters for the whole page. + * Activate the graphic layer and update the screen window(s) + * if needed. + */ + virtual bool setParameter(const std::string & parameter, const std::string & options = "") = 0; + + /** + * Get value of a parameter. + * @param paramName Name of the parameter. + * @return the value. + */ + virtual std::string parameterValue(const std::string & parameter) const = 0; + + virtual std::vector availableParameterOptions(const std::string & parameter) const = 0; + + virtual std::vector availableParameters() const = 0; + + /* + * GUI related methods : + */ + + /** + * Map the plotter on the screen. + */ + virtual bool show() = 0; + + /** + * Refresh the screen window(s). + * Used when a plotted data analysis object + * received new data. + */ + virtual bool refresh() = 0; + + /** + * Unmap the plotter on the screen. + */ + virtual bool hide() = 0; + + /** + * Give control to the plotter GUI. The plotter must be able + * to return from this function from a user action in its GUI. + */ + virtual bool interact() = 0; + + /* + * Other methods. + */ + + /** + * Produce an output file. + * @param type A string to describe the type of the output : + * "PS" or "PostScript" for PostScript, "JPEG" for JPEG. + * If nothing is given, the type is guessed + * from the given file name suffix (.ps for PostScript, + * .jpg for JPEG, etc...). + */ + virtual bool writeToFile(const std::string & filename, const std::string & type = "") = 0; + + /** + * Set the global title of the plotter (page). + */ + virtual void setTitle(const std::string & title) = 0; + + /** + * Get/set title style. + */ + virtual ITitleStyle & titleStyle() = 0; + + virtual void setTitleStyle(const ITitleStyle & style) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPLOTTER_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h b/examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h new file mode 100644 index 0000000000..60306dfe74 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPLOTTERFACTORY_H +#define AIDA_IPLOTTERFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class IAxisStyle; +class IDataStyle; +class IFillStyle; +class ILineStyle; +class IMarkerStyle; +class IPlotter; +class IPlotterStyle; +class ITextStyle; +class ITitleStyle; + +/** + * Factory for plotter and styles. + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class IPlotterFactory { + +public: + /// Destructor. + virtual ~IPlotterFactory() { /* nop */; } + + /** + * @param name A string identifier. + A plotter is in general managed by a GUI. + The "name" of the plotter could be used as + the string identifier for the GUI plotter widget. + If "" is passed, some default plotter is used. + */ + + virtual IPlotter * create(const std::string & name = "") = 0; + + /** + * Create various basic styles. + * The returned styles are not managed by the plotter. + * A user have to delete these objects. + */ + virtual IMarkerStyle * createMarkerStyle() = 0; + + virtual ITextStyle * createTextStyle() = 0; + + virtual ILineStyle * createLineStyle() = 0; + + virtual IFillStyle * createFillStyle() = 0; + + /** + * Create various "scene part" styles. + * The returned styles are not managed by the plotter. + */ + virtual IDataStyle * createDataStyle() = 0; + + virtual IAxisStyle * createAxisStyle() = 0; + + virtual ITitleStyle * createTitleStyle() = 0; + + /** + * Create a global plotter style. + * The returned style is not managed by the plotter. + */ + virtual IPlotterStyle * createPlotterStyle() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPLOTTERFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h b/examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h new file mode 100644 index 0000000000..7598e22022 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPLOTTERLAYOUT_H +#define AIDA_IPLOTTERLAYOUT_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +/** + * Interface to permit customization of the layout + * of scene objects. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IPlotterLayout { + +public: + /// Destructor. + virtual ~IPlotterLayout() { /* nop */; } + + /** + * Return to original (construction time) state. Explicitly + * set parameters will be set to defaults and may be overridden + */ + virtual void reset() = 0; + + /** + * Set a parameter. + * @param paramName Name of the parameter. + * @param options String of options. + * @return false if parameter (or its options) unknown or invalid. + */ + virtual bool setParameter(const std::string & paramName, double paramValue) = 0; + + /** + * Get parameter value. + */ + virtual double parameterValue(const std::string & paramName) = 0; + + /** + * Get list of the available parameters (implementation-dependent) + */ + virtual std::vector availableParameters() const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPLOTTERLAYOUT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h b/examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h new file mode 100644 index 0000000000..907d7338ae --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h @@ -0,0 +1,187 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPLOTTERREGION_H +#define AIDA_IPLOTTERREGION_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IBaseHistogram; +class IDataPointSet; +class IFunction; +class IInfo; +class IPlotterLayout; +class IPlotterStyle; + +/** + * User level interface to a plotter region. + * A region is managed by a plotter. + * A region must be seen as a scene manager handling + * a custome "plotting" scene. In general this kind of scene + * may be in 2D or 3D. In 2D, the scene have "coarse graining parts" + * like two axis, data representations within the axis. It may have + * various other parts like a grid, a title, an info area. In 3D, + * the scene have in general three axis, + * a different global layout, some data representations within the + * axis area and also scene parts like title, grid, etc... + * + * To customize all these, some "style" interfaces had been introduced. + * In general there is one style interface per "scene part" ; then + * IAxisStyle, IDataStyle, ITitleStyle, IInfoStyle. Oftenly + * a "scene part" contains text, line, fill area, etc.... For example + * an "axis" have a line, ticks, text for tick labels, text for + * the label of the axis, the magnitude, etc... A "coarse graining scene part" + * style contains various accessor to "atomic" styles like IMarkerStyle, + * ILineStyle, IFillStyle that permits to build a "customization block" + * to modify a scene part. + * + * A global style "block", the IPlotterStyle, could be retreived + * from a plotting region. This global style block have accessors + * to the various "coarse graining scene parts" of the plotting scene. + * Through it, we hope to offer a lot of customization in a convenient + * way... + * + * The keywords "scene" and "part" had been borrowed from the + * OpenInventor terminology. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IPlotterRegion { + +public: + /// Destructor. + virtual ~IPlotterRegion() { /* nop */; } + + /** + * Add a data analysis object (histogram, function, cloud,...) + * in the list of things to plot in the region. + * Activate the underlying graphic toolkit in order to bring + * something in the screen window(s) attached to the plotter. + * It assumes that the plotter had been mapped on the + * screen with its show method. + */ + virtual bool plot(const IBaseHistogram & histogram, const std::string & options = "") = 0; + + virtual bool plot(const IBaseHistogram & histogram, const IPlotterStyle & style, const std::string & options = "") = 0; + + virtual bool plot(const IFunction & function, const std::string & options = "") = 0; + + virtual bool plot(const IFunction & function, const IPlotterStyle & style, const std::string & options = "") = 0; + + virtual bool plot(const IDataPointSet & dataPointSet, const std::string & options = "") = 0; + + virtual bool plot(const IDataPointSet & dataPointSet, const IPlotterStyle & style, const std::string & options = "") = 0; + + /** + * Remove a data analysis object in the list of things to plot in the region. + * Activate the graphic layer to update the screen window. + */ + virtual bool remove(const IBaseHistogram & histogram) = 0; + + virtual bool remove(const IFunction & function) = 0; + + virtual bool remove(const IDataPointSet & dataPointSet) = 0; + + /** + * Clear the list of things to plot in the region. + * Clear the corresponding area on screen window(s). + */ + virtual void clear() = 0; + + /** + * Set various plotting paramters for the region. + * Activate the graphic layer and update the screen window(s) + * if needed. + */ + virtual bool setParameter(const std::string & parameter, const std::string & options = "") = 0; + + /** + * Get value of a parameter. + * @param paramName Name of the parameter. + * @return the value. + */ + virtual std::string parameterValue(const std::string & parameter) const = 0; + + virtual std::vector availableParameterOptions(const std::string & parameter) const = 0; + + virtual std::vector availableParameters() const = 0; + + /** + * Get the style of the region. + */ + virtual IPlotterStyle & style() = 0; + + /** + * Set the style of a region. + */ + virtual bool setStyle(const IPlotterStyle & style) = 0; + + /** + * Set the style of a region and apply it to scene objects. + */ + virtual bool applyStyle(const IPlotterStyle & style) = 0; + + /** + * Set the title of a region. + */ + virtual void setTitle(const std::string & title) = 0; + + /** + * Set limit of an axis representation the region area. + */ + virtual bool setXLimits(double min = 0, double max = 0) = 0; + + virtual bool setYLimits(double min = 0, double max = 0) = 0; + + virtual bool setZLimits(double min = 0, double max = 0) = 0; + + /** + * To customize axis position,etc... + * Change object position in the scence. + */ + virtual IPlotterLayout & layout() = 0; + + virtual bool setLayout(const IPlotterLayout & layout) = 0; + + /** + * Return an IInfo object describing the info area. + */ + virtual IInfo & info() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPLOTTERREGION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h b/examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h new file mode 100644 index 0000000000..ef068f57f1 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPLOTTERSTYLE_H +#define AIDA_IPLOTTERSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseStyle.h" + +namespace AIDA { + +class IAxisStyle; +class IDataStyle; +class IInfoStyle; +class ITitleStyle; + +/** + * User level interface to plotter style. + * A plotter style permit to customize various part + * of the plotting "scene" (axes, titles, data + * representations, etc...) + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IPlotterStyle : virtual public IBaseStyle { + +public: + /// Destructor. + virtual ~IPlotterStyle() { /* nop */; } + + /** + * Get style of various plotting scene parts. + */ + virtual IDataStyle & dataStyle() = 0; + + virtual IAxisStyle & xAxisStyle() = 0; + + virtual IAxisStyle & yAxisStyle() = 0; + + virtual IAxisStyle & zAxisStyle() = 0; + + virtual ITitleStyle & titleStyle() = 0; + + virtual IInfoStyle & infoStyle() = 0; + + /** + * Set style of various plotting scene parts. + */ + virtual bool setDataStyle(const IDataStyle & dataStyle) = 0; + + virtual bool setAxisStyleX(const IAxisStyle & xAxisStyle) = 0; + + virtual bool setAxisStyleY(const IAxisStyle & yAxisStyle) = 0; + + virtual bool setAxisStyleZ(const IAxisStyle & zAxisStyle) = 0; + + virtual bool setTitleStyle(const ITitleStyle & textStyle) = 0; + + virtual bool setInfoStyle(const IInfoStyle & infoStyle) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPLOTTERSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IProfile.h b/examples/extended/analysis/A01/include/AIDA/IProfile.h new file mode 100644 index 0000000000..227f1f4b31 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IProfile.h @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPROFILE_H +#define AIDA_IPROFILE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseHistogram.h" + +namespace AIDA { + +/** + * User level interface to a Profile histogram + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IProfile : virtual public IBaseHistogram { + +public: + /// Destructor. + virtual ~IProfile() { /* nop */; } + + /** + * Get the number or all the entries, both in range and + * underflow/overflow bins of the IProfile. + * @return The sum of all the entries. + * + */ + virtual int allEntries() const = 0; + + /** + * Get the number of entries in the underflow and overflow bins. + * @return The numer of entries in the out-of-range bins. + * + */ + virtual int extraEntries() const = 0; + + /** + * Get the sum of in range bin heights in the IProfile. + * @return The sum of all the in-range bins heights. + * + */ + virtual double sumBinHeights() const = 0; + + /** + * Get the sum of all the bins heights (including underflow and overflow bin). + * @return The sum of all the bins heights. + * + */ + virtual double sumAllBinHeights() const = 0; + + /** + * Get the sum of the underflow and overflow bin height. + * @return The sum of the out-of-range bins heights. + * + */ + virtual double sumExtraBinHeights() const = 0; + + /** + * Get the minimum height of the in-range bins. + * @return The minimum height among the in-range bins. + * + */ + virtual double minBinHeight() const = 0; + + /** + * Get the maximum height of the in-range bins. + * @return The maximum height among the in-range bins. + * + */ + virtual double maxBinHeight() const = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPROFILE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IProfile1D.h b/examples/extended/analysis/A01/include/AIDA/IProfile1D.h new file mode 100644 index 0000000000..c1064ec22b --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IProfile1D.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPROFILE1D_H +#define AIDA_IPROFILE1D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IProfile.h" + +namespace AIDA { + +class IAxis; + +/** + * User level interface to a 1-dimensional profile histogram + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IProfile1D : virtual public IProfile { + +public: + /// Destructor. + virtual ~IProfile1D() { /* nop */; } + + /** + * Fill the IProfile1D. + * + */ + virtual bool fill(double x, double y, double weight = 1) = 0; + + /** + * The weighted mean of the corresponding bin. + * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the x axis. + * + */ + virtual double binMean(int index) const = 0; + + /** + * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). + * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. + */ + virtual int binEntries(int index) const = 0; + + /** + * Total height of the corresponding bin (ie the sum of the weights in this bin). + * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. + */ + virtual double binHeight(int index) const = 0; + + /** + * The error on this bin. + * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. + */ + virtual double binError(int index) const = 0; + + /** + * The spread (RMS) of a bin. + * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * + */ + virtual double binRms(int index) const = 0; + + /** + * Returns the mean of the whole profile as calculated on filling-time. + */ + virtual double mean() const = 0; + + /** + * Returns the rms of the whole profile as calculated on filling-time. + */ + virtual double rms() const = 0; + + /** + * Returns the X axis. + */ + virtual const IAxis & axis() const = 0; + + /** + * Convenience method, equivalent to axis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + */ + virtual int coordToIndex(double coord) const = 0; + + /** + * Modifies this IProfile1D by adding the contents of profile to it. + * + * @param profile The IProfile1D to be added to this IProfile1D + * @return false if profile binnings are incompatible + */ + virtual bool add(const IProfile1D & profile) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPROFILE1D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IProfile2D.h b/examples/extended/analysis/A01/include/AIDA/IProfile2D.h new file mode 100644 index 0000000000..38a73a2f35 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IProfile2D.h @@ -0,0 +1,196 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IPROFILE2D_H +#define AIDA_IPROFILE2D_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IProfile.h" + +namespace AIDA { + +class IAxis; + +/** + * User level interface to a 2-dimensional profile histogram + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IProfile2D : virtual public IProfile { + +public: + /// Destructor. + virtual ~IProfile2D() { /* nop */; } + + /** + * Fill the IProfile2D. + * + */ + virtual bool fill(double x, double y, double z, double weight = 1) = 0; + + /** + * The weighted mean along x of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the x axis. + * + */ + virtual double binMeanX(int indexX, int indexY) const = 0; + + /** + * The weighted mean along y of a given bin. + * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. + * @return The mean of the corresponding bin along the x axis. + * + */ + virtual double binMeanY(int indexX, int indexY) const = 0; + + /** + * The number of entries (ie the number of times fill was called for this bin). + * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. + * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. + * + */ + virtual int binEntries(int indexX, int indexY) const = 0; + + /** + * Equivalent to projectionX().binEntries(indexX). + * + */ + virtual int binEntriesX(int indexX) const = 0; + + /** + * Equivalent to projectionY().binEntries(indexY). + * + */ + virtual int binEntriesY(int indexY) const = 0; + + /** + * Total height of the corresponding bin (ie the sum of the weights in this bin). + * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. + * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. + * + */ + virtual double binHeight(int indexX, int indexY) const = 0; + + /** + * Equivalent to projectionX().binHeight(indexX). + * + */ + virtual double binHeightX(int indexX) const = 0; + + /** + * Equivalent to projectionY().binHeight(indexY). + * + */ + virtual double binHeightY(int indexY) const = 0; + + /** + * The error on this bin. + * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. + * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. + * + */ + virtual double binError(int indexX, int indexY) const = 0; + + /** + * The spread (RMS) of this bin. + * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. + * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. + * + */ + virtual double binRms(int indexX, int indexY) const = 0; + + /** + * Returns the mean of the profile, as calculated on filling-time projected on the X axis. + * + */ + virtual double meanX() const = 0; + + /** + * Returns the mean of the profile, as calculated on filling-time projected on the Y axis. + * + */ + virtual double meanY() const = 0; + + /** + * Returns the rms of the profile as calculated on filling-time projected on the X axis. + * + */ + virtual double rmsX() const = 0; + + /** + * Returns the rms of the profile as calculated on filling-time projected on the Y axis. + * + */ + virtual double rmsY() const = 0; + + /** + * Return the X axis. + * + */ + virtual const IAxis & xAxis() const = 0; + + /** + * Return the Y axis. + * + */ + virtual const IAxis & yAxis() const = 0; + + /** + * Convenience method, equivalent to xAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * + */ + virtual int coordToIndexX(double coordX) const = 0; + + /** + * Convenience method, equivalent to yAxis().coordToIndex(coord). + * @see IAxis#coordToIndex(double) + * + */ + virtual int coordToIndexY(double coordY) const = 0; + + /** + * Modifies this profile by adding the contents of profile to it. + * + * @param profile The IProfile2D to be added to this IProfile2D + * @return false if the profile binnings are incompatible + * + */ + virtual bool add(const IProfile2D & h) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IPROFILE2D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IRangeSet.h b/examples/extended/analysis/A01/include/AIDA/IRangeSet.h new file mode 100644 index 0000000000..e3dd876b78 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/IRangeSet.h @@ -0,0 +1,131 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_IRANGESET_H +#define AIDA_IRANGESET_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +/** + * User level interface to RangeSet. + * + * + * Proposed rules for ranges: + * + * - By default (no arguments) RangeSet object is created with + * one valid range: (-infinity, +infinity). + * + * - size=0 means no valid ranges (isInRange(double point) will + * return false for any point). It also can be used to check if + * any range is set - RangeSet include valid interval only + * if size!=0. + * + * - RangeSet can be smart, e.g merge overlapping valid ranges. + * So size() does not always equal to the number of times + * user call include method. + * + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class IRangeSet { + +public: + /// Destructor. + virtual ~IRangeSet() { /* nop */; } + + /** + * Return array of lower Bounds for the current set of ranges + * @return Array of lower bounds for all valid ranges + */ + virtual const std::vector & lowerBounds() = 0; + + /** + * Return array of upper Bounds for the current set of ranges + * @return Array of upper bounds for all valid ranges + */ + virtual const std::vector & upperBounds() = 0; + + /** + * Add [xMin, xMax] interval to existing set of valid ranges + * @param xMin - lower bound of a new valid range + * @param xMax - upper bound of a new valid range + */ + virtual void include(double xMin, double xMax) = 0; + + /** + * Exclude [xMin, xMax] interval from the existing set of valid ranges + * @param xMin - lower bound of range to be excluded + * @param xMax - upper bound of range to be excluded + */ + virtual void exclude(double xMin, double xMax) = 0; + + /** + * Set full range (from MINUS_INF to PLUS_INF ). + */ + virtual void includeAll() = 0; + + /** + * Set empty range. + */ + virtual void excludeAll() = 0; + + /* + * @return Return true if the point is in range + */ + virtual bool isInRange(double point) = 0; + + /** + * Return current number of disjoint ranges (non-overlapping intervals). + * Note: it is not always equal to the number of times user set the range + * @return Number of disjoint ranges + */ + virtual int size() = 0; + + /* + * Define +infinity according to specific implementation + * @return Numeric definition for +infinity + */ + virtual double PLUS_INF() = 0; + + /* + * Define -infinity according to specific implementation + * @return Numeric definition for -infinity + */ + virtual double MINUS_INF() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_IRANGESET_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITextStyle.h b/examples/extended/analysis/A01/include/AIDA/ITextStyle.h new file mode 100644 index 0000000000..874b7a4c52 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITextStyle.h @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ITEXTSTYLE_H +#define AIDA_ITEXTSTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +#include "AIDA/IBrushStyle.h" + +namespace AIDA { + +/** + * Style for all text (e.g. axis labels, legend box text etc.) + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class ITextStyle : virtual public IBrushStyle { + +public: + /// Destructor. + virtual ~ITextStyle() { /* nop */; } + + /** + * Get list of fonts available in this implementation. + */ + virtual std::vector availableFonts() const = 0; + + /** + * Get current font size. + */ + virtual double fontSize() const = 0; + + /** + * Set current font size. + * @return false if size not supported by this implementation. + */ + virtual bool setFontSize(double size) = 0; + + /** + * Get name of current font. + */ + virtual std::string font() const = 0; + + /** + * Set current font, e.g. "timesNewRoman" or "courier". + * @return false if font not supported by this implementation. + */ + virtual bool setFont(const std::string & font) = 0; + + virtual bool isBold() const = 0; + + virtual bool isItalic() const = 0; + + virtual bool isUnderlined() const = 0; + + virtual bool setBold(bool bold = true) = 0; + + virtual bool setItalic(bool italic = true) = 0; + + virtual bool setUnderlined(bool underlined = true) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITEXTSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITitleStyle.h b/examples/extended/analysis/A01/include/AIDA/ITitleStyle.h new file mode 100644 index 0000000000..5d39ec61c4 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITitleStyle.h @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ITITLESTYLE_H +#define AIDA_ITITLESTYLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include "AIDA/IBaseStyle.h" + +namespace AIDA { + +class ITextStyle; + +/** + * Style for the "title scene part" of a plotting region or + * for the global title of a plotting page. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ITitleStyle : virtual public IBaseStyle { + +public: + /// Destructor. + virtual ~ITitleStyle() { /* nop */; } + + virtual ITextStyle & textStyle() = 0; + + virtual bool setTextStyle(const ITextStyle & textStyle) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITITLESTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITree.h b/examples/extended/analysis/A01/include/AIDA/ITree.h new file mode 100644 index 0000000000..019792f463 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITree.h @@ -0,0 +1,259 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ITREE_H +#define AIDA_ITREE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include +#include + +namespace AIDA { + +class IManagedObject; + +/** + * User level interface to a Tree. + * + * All paths follow unix convention .., ., /, + * backslash is the escape character. + * Relative paths are allowed. + * + * NOTE: - this tree keeps a current position(pwd) within the tree. + * This may be implemented on a per-thread basis. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ITree { + +public: + /// Destructor. + virtual ~ITree() { /* nop */; } + + /** + * Get the name of the store. + * @return The store's name. + * + */ + virtual const std::string & storeName() const = 0; + + /** + * Get the IManagedObject at a given path in the ITree. The path can either be + * absolute or relative to the current working directory. + * @param path The path. + * @return The corresponding IManagedObject. + * + */ + virtual IManagedObject * find(const std::string & path) = 0; + + /** + * Change to a given directory. + * @param path The absolute or relative path of the directory we are changing to. + * @return false If the path does not exist. + * + */ + virtual bool cd(const std::string & path) = 0; + + /** + * Get the path of the current working directory. + * @return The path of the current working directory. + * + */ + virtual const std::string & pwd() const = 0; + + /** + * List, into a given output stream, all the IManagedObjects, including directories + * (but not "." and ".."), in a given path. Directories end with "/". The list can be recursive. + * @param path The path where the list has to be performed (by default the current directory "."). + * @param recursive If true the list is extended recursively + * in all the directories under path (the default is false. + * @param os The output stream into which the list is dumped (by default the standard output). + * @return false If the path does not exist. + * + */ + virtual bool ls(const std::string & path = ".", bool recursive = false, std::ostream & os = std::cout) const = 0; + + /** + * Get the list of names of the IManagedObjects under a given path, including directories + * (but not "." and ".."). Directories end with "/". + * The returned names are appended to the given path unless the latter is ".". + * @param path The path where the list has to be performed (by default the current directory "."). + * @param recursive If true the list is extended recursively + * in all the directories under path (the default is false. + * + */ + virtual std::vector listObjectNames(const std::string & path = ".", bool recursive = false) const = 0; + + /** + * Get the list of types of the IManagedObjects under a given path. + * The types are the leaf class of the Interface, e.g. "IHistogram1D", "ITuple", etc. + * Directories are marked with "dir". + * The order of the types is the same as the order for the listObjectNames() method + * to achieve a one-to-one correspondance between object names and types. + * @param path The path where the list has to be performed (by default the current directory "."). + * @param recursive If true the list is extended recursively + * in all the directories under path (the default is false. + * + */ + virtual std::vector listObjectTypes(const std::string & path = ".", bool recursive = false) const = 0; + + /** + * Create a new directory. Given a path only the last directory + * in it is created if all the intermediate subdirectories already exist. + * @param path The absolute or relative path of the new directory. + * @return false If a subdirectory within the path does + * not exist or it is not a directory. Also if the directory already exists. + * + */ + virtual bool mkdir(const std::string & path) = 0; + + /** + * Create a directory recursively. Given a path the last directory + * and all the intermediate non-existing subdirectories are created. + * @param path The absolute or relative path of the new directory. + * @return false If an intermediate subdirectory + * is not a directory, or if the directory already exists. + * + */ + virtual bool mkdirs(const std::string & path) = 0; + + /** + * Remove a directory and all the contents underneeth. + * @param path The absolute or relative path of the directory to be removed. + * @return false If path does not exist or if it is not + * a directory. + * + */ + virtual bool rmdir(const std::string & path) = 0; + + /** + * Remove an IManagedObject by specifying its path. + * If the path points to a mount point, the mount point should first commit, then + * close and delete the tree object. + * @param path The absolute or relative path of the IManagedObject to be removed. + * @return false If path does not exist. + * + */ + virtual bool rm(const std::string & path) = 0; + + /** + * Get the full path of an IManagedObject. + * @param object The IManagedObject whose path is to be returned. + * @return The object's absolute path. + * In C++ if the object does not exist, an empty string is returned. + * + */ + virtual std::string findPath(const IManagedObject & object) const = 0; + + /** + * Move an IManagedObject or a directory from one directory to another. + * @param oldPath The path of the IManagedObject or direcoty to be moved. + * @param newPath The path of the diretory in which the object has to be moved to. + * @return false If either path does not exist. + * + */ + virtual bool mv(const std::string & oldPath, const std::string & newPath) = 0; + + /** + * Commit any open transaction to the underlying store(s). + * It flushes objects into the disk for non-memory-mapped stores. + * @return false If the underlying store cannot be written out. + * + */ + virtual bool commit() = 0; + + /** + * Set the strategy of what should happen if two objects have the same path. + * Default is overwrite. + * @param overwrite true to enable overwriting. + * + */ + virtual void setOverwrite(bool overwrite = true) = 0; + + /** + * Copy an object from a path to another. + * @param oldPath The path of the object to be copied. + * @param newPath The path where the object is to be copied. + * @param recursive true if a recursive copy has to be performed. + * @return false If either path does not exist. + * + */ + virtual bool cp(const std::string & oldPath, const std::string & newPath, bool recursive = false) = 0; + + /** + * Create a symbolic link to an object in the ITree. + * @param path The absolute or relative path of the object to be linked. + * @param alias The absolute or relative name of the link. + * @return false If path or any + * subidrectory within path does not exist. + * + */ + virtual bool symlink(const std::string & path, const std::string & alias) = 0; + + /** + * Mounts a tree within another (target) tree. A tree can only be mounted once. + * Example: + *
+   *     target.mount("/home/tonyj",tree,"/");
+   * 
+ * @param path The path in the target tree + * @param tree The tree to mount within the target tree + * @param treePath The mount point within the tree to be mounted. + * @return false If something does not exist. + * + */ + virtual bool mount(const std::string & path, ITree & tree, const std::string & treePath) = 0; + + /** + * Unmount a subtree at a given path (mount point). + * Whenever a tree is destroyed it first unmounts all dependent trees. + * @param path The path of the subtree to be unmounted. + * @return false If path does not exist. + * + */ + virtual bool unmount(const std::string & path) = 0; + + /** + * Closes the underlying store. + * Changes will be saved only if commit() has been called before. + * The call is propagated to the dependent mounted trees. + * @return false If there are problems writing out + * the underlying store. + * + */ + virtual bool close() = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITREE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITreeFactory.h b/examples/extended/analysis/A01/include/AIDA/ITreeFactory.h new file mode 100644 index 0000000000..2874861f8a --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITreeFactory.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ITREEFACTORY_H +#define AIDA_ITREEFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include + +namespace AIDA { + +class ITree; + +/** + * The creator of trees. + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class ITreeFactory { + +public: + /// Destructor. + virtual ~ITreeFactory() { /* nop */; } + + /** + * Creates a new tree that is not associated with a store. + */ + virtual ITree * create() = 0; + + /** + * Creates a new tree and associates it with a store. + * The store is assumed to be read/write. + * The store will be created if it does not exist. + * @param storeName The name of the store, if empty (""), the tree is created + * in memory and therefore will not be associated with a file. + * @param storeType Implementation specific string, may control store type + * @param readOnly If true the store is opened readonly, an exception if it does not exist + * @param createNew If false the file must exist, if true the file will be created + * @param options Other options, currently are not specified + * + */ + virtual ITree * create(const std::string & storeName, const std::string & storeType = "", bool readOnly = false, bool createNew = false, const std::string & options = "") = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITREEFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITuple.h b/examples/extended/analysis/A01/include/AIDA/ITuple.h new file mode 100644 index 0000000000..528a528873 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITuple.h @@ -0,0 +1,906 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ITUPLE_H +#define AIDA_ITUPLE_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IAnnotation; +class ICloud1D; +class ICloud2D; +class ICloud3D; +class IEvaluator; +class IFilter; +class IHistogram1D; +class IHistogram2D; +class IHistogram3D; +class IProfile1D; +class IProfile2D; +class ITupleEntry; + +/** + * User level interface to a Tuple. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ITuple { + +public: + /// Destructor. + virtual ~ITuple() { /* nop */; } + + /** + * Get the title of this ITuple. + * @return The ITuple's title. + * + */ + virtual const std::string & title() const = 0; + + /** + * Set the title of the ITuple. + * @param title The new ITuple's title. + * @return false If title cannot be changed. + * + */ + virtual bool setTitle(const std::string & title) = 0; + + /** + * Get the IAnnotation corresponding to this ITuple. + * @return The ITuple's IAnnotation. + * + */ + virtual IAnnotation & annotation() = 0; + + virtual const IAnnotation & annotation() const = 0; + + /** + * Fill a given column with a double. + * @param column The column's index within the ITuple. + * @param value The double. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, double value) = 0; + + /** + * Fill a given column with a float. + * @param column The column's index within the ITuple. + * @param value The float. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, float value) = 0; + + /** + * Fill a given column with an integer. + * @param column The column's index within the ITuple. + * @param value The integer. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, int value) = 0; + + /** + * Fill a given column with a short. + * @param column The column's index within the ITuple. + * @param value The short. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, short value) = 0; + + /** + * Fill a given column with a long. + * @param column The column's index within the ITuple. + * @param value The long. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, long value) = 0; + + /** + * Fill a given column with a char. + * @param column The column's index within the ITuple. + * @param value The char. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, char value) = 0; + + /** + * Fill a given column with a boolean. + * @param column The column's index within the ITuple. + * @param value The boolean. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, bool value) = 0; + + /** + * Fill a given column with a string. + * @param column The column's index within the ITuple. + * @param value The string. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, const std::string & value) = 0; + + /** + * Fill a given column with an object. + * @param column The column's index within the ITuple. + * @param value The object. + * @return false If the column is of the wrong type. + * + */ + virtual bool fill(int column, const ITupleEntry & value) = 0; + + /** + * Fill all the columns at once with doubles. + * @param values The array of doubles. + * @return false If any column is not of type double or if + * the array has the wrong dimension. + * + */ + virtual bool fill(const std::vector & values) = 0; + + /** + * Fill all the columns at once with floats. + * @param values The array of floats. + * @return false If any column is not of type float or if + * the array has the wrong dimension. + * + */ + virtual bool fill(const std::vector & values) = 0; + + /** + * Add the current row to the ITuple. This method should be called after + * fill has been called for the columns; unfilled columns will be filled + * with their default value. + * @return false When the ITuple runs out of storage space. + * + */ + virtual bool addRow() = 0; + + /** + * Clear the current(not yet added) row. + * + */ + virtual void resetRow() = 0; + + /** + * Reset the ITuple. All the rows are reset. + * The ITuple is as just created. + * + */ + virtual void reset() = 0; + + /** + * Get the number of rows currently filled in the ITuple. + * @return The number of rows. -1 if empty or if it cannot be determined. + * + */ + virtual int rows() const = 0; + + /** + * Positions the read cursor immediately before the first row. + * + */ + virtual void start() = 0; + + /** + * Skips a given number of rows. + * @param rows The number of rows to skip. + * @return false If rows is less than zero or + * if it is not possible to perform the jump. + * + */ + virtual bool skip(int rows) = 0; + + /** + * Positions the cursor at the next row. + * @return false if there is no next row. + * + */ + virtual bool next() = 0; + + /** + * Position the cursor at a give row. + * @param rowIndex The row where the cursor has to be positioned. + * @return false If the cursor cannot be positioned + * at the give row. + * + */ + virtual bool setRow(int rowIndex) = 0; + + /** + * Get the index within the ITuple of a given column. + * @param name The colum's name. + * @return The corresponding column's index. Note: in C++ -1 may + * be returned if the column does not exist. + */ + virtual int findColumn(const std::string & name) const = 0; + + /** + * Get the double stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The double. + * + */ + virtual double getDouble(int column) const = 0; + + /** + * Get the float stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The float. + * + */ + virtual float getFloat(int column) const = 0; + + /** + * Get the integer stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The integer. + * + */ + virtual int getInt(int column) const = 0; + + /** + * Get the short stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The short. + * + */ + virtual short getShort(int column) const = 0; + + /** + * Get the long stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The long. + * + */ + virtual long getLong(int column) const = 0; + + /** + * Get the character stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The character. + * + */ + virtual char getChar(int column) const = 0; + + /** + * Get the boolean stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The boolean. + * + */ + virtual bool getBoolean(int column) const = 0; + + /** + * Get the string stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The string. + * + */ + virtual const std::string & getString(int column) const = 0; + + /** + * Get the object stored in a given column at the current cursor's position. + * @param column The column's index within the ITuple. + * @return The object. + * + */ + virtual const ITupleEntry * getObject(int column) const = 0; + + /** + * Return method for tuple variables of type ITuple for a given column. + * This method can be used in order to fill a tuple variable in the master tuple. + * @param column The column's index. + * @return The ITuple representing the structure of this column. + * + */ + virtual const ITuple * getTuple(int column) const = 0; + + virtual ITuple * getTuple(int column) = 0; + + /** + * Get the number of columns in the ITuple + * @return The number of columns. + * + */ + virtual int columns() const = 0; + + /** + * Get the name of a column from its index. + * @param column The column's index. + * @return The column's name. + * + */ + virtual const std::string & columnName(int column) const = 0; + + /** + * Get the type of a give column. + * @param column The column's type. + * @return The column's Class. + * + */ + virtual const std::string & columnType(int column) const = 0; + + /** + * Get the minimum value of a given column (if it can be converted to a double). + * @param column The column's index. + * @return The column's minimum value. In Java Double.NaN might be returned. + * + */ + virtual double columnMin(int column) const = 0; + + /** + * Get the maximum value of a given column (if it can be converted to a double). + * @param column The column's index. + * @return The column's maximum value. In Java Double.NaN might be returned. + * + */ + virtual double columnMax(int column) const = 0; + + /** + * Get the mean value of a given column (if it can be converted to a double). + * @param column The column's index. + * @return The column's mean value. In Java Double.NaN might be returned. + * + */ + virtual double columnMean(int column) const = 0; + + /** + * Get the RMS of a given column (if it can be converted to a double). + * @param column The column's index. + * @return The column's RMS. In Java Double.NaN might be returned. + * + */ + virtual double columnRms(int column) const = 0; + + /** + * Fill an IHistogram1D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram. The value is computed + * from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX) = 0; + + /** + * Fill an IHistogram1D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram. The value is computed + * from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the histogram is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter) = 0; + + /** + * Fill an IHistogram1D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram. The value is computed + * from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IEvaluator & weight) = 0; + + /** + * Fill an IHistogram1D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram. The value is computed + * from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the histogram is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an IHistogram2D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0; + + /** + * Fill an IHistogram2D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the histogram is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0; + + /** + * Fill an IHistogram2D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0; + + /** + * Fill an IHistogram2D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the histogram is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an IHistogram3D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the histogram along the z axis. + * The value is computed from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0; + + /** + * Fill an IHistogram3D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the histogram along the z axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the histogram is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0; + + /** + * Fill an IHistogram3D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the histogram along the z axis. + * The value is computed from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0; + + /** + * Fill an IHistogram3D from the tuple. + * @param histogram The histogram to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the histogram along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the histogram along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the histogram along the z axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the histogram is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an ICloud1D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud. The value is computed + * from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX) = 0; + + /** + * Fill an ICloud1D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud. The value is computed + * from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the cloud is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter) = 0; + + /** + * Fill an ICloud1D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud. The value is computed + * from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IEvaluator & weight) = 0; + + /** + * Fill an ICloud1D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud. The value is computed + * from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the cloud is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an ICloud2D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0; + + /** + * Fill an ICloud2D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the cloud is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0; + + /** + * Fill an ICloud2D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0; + + /** + * Fill an ICloud2D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the cloud is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an ICloud3D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the cloud along the z axis. + * The value is computed from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0; + + /** + * Fill an ICloud3D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the cloud along the z axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the cloud is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0; + + /** + * Fill an ICloud3D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the cloud along the z axis. + * The value is computed from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0; + + /** + * Fill an ICloud3D from the tuple. + * @param cloud The cloud to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the cloud along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the cloud along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the cloud along the z axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the cloud is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an IProfile1D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0; + + /** + * Fill an IProfile1D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the profile is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0; + + /** + * Fill an IProfile1D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0; + + /** + * Fill an IProfile1D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the profile is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0; + + /** + * Fill an IProfile2D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the profile along the z axis. + * The value is computed from the current row of the tuple. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0; + + /** + * Fill an IProfile2D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the profile along the z axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the profile is not filled. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0; + + /** + * Fill an IProfile2D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the profile along the z axis. + * The value is computed from the current row of the tuple. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0; + + /** + * Fill an IProfile2D from the tuple. + * @param profile The profile to fill. + * @param evaluatorX The evaluator used to compute the value + * to be filled in the profile along the x axis. + * The value is computed from the current row of the tuple. + * @param evaluatorY The evaluator used to compute the value + * to be filled in the profile along the y axis. + * The value is computed from the current row of the tuple. + * @param evaluatorZ The evaluator used to compute the value + * to be filled in the profile along the z axis. + * The value is computed from the current row of the tuple. + * @param filter The filter object used to accept or not the current row. + * If rejected, the profile is not filled. + * @param weight The evaluator which determines the weight which is used during the filling. + * @return false If something goes wrong. + * + */ + virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITUPLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITupleEntry.h b/examples/extended/analysis/A01/include/AIDA/ITupleEntry.h new file mode 100644 index 0000000000..4111f0fd33 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITupleEntry.h @@ -0,0 +1,47 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// DUMMY CLASS +#ifndef AIDA_ITUPLEENTRY_H +#define AIDA_ITUPLEENTRY_H 1 + +#include +#include + +namespace AIDA { + +/** + * User level interface to a Tuple. + * + * @author The AIDA team (http://aida.freehep.org/) + * + */ + +class ITupleEntry { + +public: + /// Destructor. + virtual ~ITupleEntry() { /* nop */; } + +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITUPLEENTRY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITupleFactory.h b/examples/extended/analysis/A01/include/AIDA/ITupleFactory.h new file mode 100644 index 0000000000..c27dc9f7a8 --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/ITupleFactory.h @@ -0,0 +1,148 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef AIDA_ITUPLEFACTORY_H +#define AIDA_ITUPLEFACTORY_H 1 + +// This file is part of the AIDA library +// Copyright (C) 2002 by the AIDA team. All rights reserved. +// This library is free software and under the terms of the +// GNU Library General Public License described in the LGPL.txt + +#include +#include + +namespace AIDA { + +class IEvaluator; +class IFilter; +class ITuple; + +/** + * A factory for creating ITuples. + * + * @author The AIDA team (http://aida.freehep.org/) + */ + +class ITupleFactory { + +public: + /// Destructor. + virtual ~ITupleFactory() { /* nop */; } + + /** + * Creates an NTuple + * @param name The persistency name of the n-tuple + * @param title The title of the n-tuple + * @param columnNames The names of the columns + * @param columnType The types of the columns + * @param options NTuple options (currently undefined) + * + */ + virtual ITuple * create(const std::string & name, const std::string & title, const std::vector & columnNames, const std::vector & columnType, const std::string & options = "") = 0; + + /** + * Creates an NTuple + * @param name The persistency name of the n-tuple + * @param title The title of the n-tuple + * @param columns The names and types of the columns e.g. "float px, py, pz, float energy, int charge" + * @param options NTuple options (currently undefined) + * + */ + virtual ITuple * create(const std::string & name, const std::string & title, const std::string & columns, const std::string & options = "") = 0; + + /** + * Creates a logical chain of ITuples. All ITuples in the set must + * have the same structure. Chained ITuple can not be filled. + * Original n-tuple data is not copied. + * @param name The persistency name of the new n-tuple + * @param title The title of the new n-tuple + * @param set The array of ITuples to chain + * + */ + virtual ITuple * createChained(const std::string & name, const std::string & title, const std::vector & set) = 0; + + /** + * Creates a logical chain of ITuples. All ITuples in the set must + * have the same structure. Chained ITuple can not be filled. + * Original n-tuple data is not copied. + * @param name The persistency name of the new n-tuple + * @param title The title of the new n-tuple + * @param set The array of the names of the ITuples to chain + * + */ + virtual ITuple * createChained(const std::string & name, const std::string & title, const std::vector & set) = 0; + + /** + * Creates a new reduced tuple (less rows) from an existing one + * by applying a filter. Data is explicitly copied to a new n-tuple. + * @param name The persistency name of the new n-tuple + * @param tuple Original n-tuple + * @param filter IFilter to be used + * + */ + virtual ITuple * createFiltered(const std::string & name, ITuple & tuple, IFilter & filter) = 0; + + /** + * Creates a new reduced tuple (less rows) from an existing one + * by applying a filter. Only subset of the variables (columns) is copied. + * Data is explicitly copied to a new n-tuple. + * @param name The persistency name of the new n-tuple + * @param tuple Original n-tuple + * @param filter IFilter to be used + * @param columns Names of columns to for a new n-tuple + * + */ + virtual ITuple * createFiltered(const std::string & name, ITuple & tuple, IFilter & filter, const std::vector & columns) = 0; + + /** + * Creates IFilter object given a string defining of the "cut" expression. + * @param expression String defining of the "cut" expression. + * + */ + virtual IFilter * createFilter(const std::string & expression) = 0; + + /** + * Creates a filter object given a string defining the "cut" expression. + * Filter processes only subset of data. + * @param expression String defining of the "cut" expression. + * @param rowsToProcess How many rows to process + * @param startingRow Row number where to start + * + */ + virtual IFilter * createFilter(const std::string & expression, int rowsToProcess, int startingRow = 0) = 0; + + /** + * Create IEvaluator object given its expression. + * @param expression String defining of the evaluator expression. + * + */ + virtual IEvaluator * createEvaluator(const std::string & expression) = 0; +}; // class +}; // namespace AIDA +#endif /* ifndef AIDA_ITUPLEFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/readme.txt b/examples/extended/analysis/A01/include/AIDA/readme.txt new file mode 100644 index 0000000000..9e7014f0ef --- /dev/null +++ b/examples/extended/analysis/A01/include/AIDA/readme.txt @@ -0,0 +1,9 @@ +These are a copy of the official AIDA header files taken from: + +CVSROOT :pserver:anoncvs@cvs.freehep.org:/cvs/aida +MODULE aida +DIRECTORY cpp/AIDA +Version : 3.0 + +added ITupleEntry dummy class. + diff --git a/examples/extended/analysis/A01/novis.mac b/examples/extended/analysis/A01/novis.mac new file mode 100644 index 0000000000..ad32b399db --- /dev/null +++ b/examples/extended/analysis/A01/novis.mac @@ -0,0 +1,47 @@ +# +# Macro file for A01app +# +# For initialization of graphics. +# +# 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 HepRepFile +#/vis/viewer/set/culling global false +#/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 +# Run 10 events and store event displays +/run/beamOn 10 +# +/mydet/armAngle 60. deg +/mydet/fieldValue 2. tesla +/run/beamOn 10 +# +/mydet/armAngle 30. deg +/mydet/momentum 2. GeV +/mydet/sigmaMomentum 0. +/mydet/sigmaAngle 0. +/run/beamOn 10 +# +/mydet/sigmaAngle 2. deg +/run/beamOn 10 +#/vis/viewer/flush +# diff --git a/examples/extended/analysis/A01/opengl.mac b/examples/extended/analysis/A01/opengl.mac new file mode 100644 index 0000000000..db004d94ad --- /dev/null +++ b/examples/extended/analysis/A01/opengl.mac @@ -0,0 +1,90 @@ +# +# Macro file for A01app +# +# For initialization of graphics. +# See geant4/source/visualization/README.built_in_commands. +# +# Create a scene handler and viewer for a specific graphics system +# Edit the next line(s) to choose another graphic system +# /vis/open is a compound command equivalent to: +# /vis/sceneHandler/create +# /vis/viewer/create +# +/vis/open OGLIX +# +# Create a scene. One could use /vis/drawVolume, which is equivalent to: +# /vis/scene/create +# /vis/scene/add/volume +# /vis/sceneHandler/attach +# but we want more, so... +# +# Create empty scene +# +/vis/scene/create +# +# Add volume to scene ("world" is default) +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# If you wish to accumulate trajectories or hits... +# +/vis/scene/endOfEventAction accumulate +# +# Attach scene to scene handler. +# +/vis/sceneHandler/attach +# +# Set view parameters +# +/vis/viewer/set/lightsThetaPhi 90. 0. +/vis/viewer/set/viewpointThetaPhi 150. 90. +# +# Draw detector (with refresh, the detector is "drawn" but on some systems, +# those requiring and update action, it is not visible until update or flush). +# +/vis/viewer/refresh +# +# Do runs +# +/tracking/storeTrajectory 1 +# +/run/beamOn 10 +/vis/viewer/flush +# +/mydet/armAngle 60. deg +/mydet/fieldValue 2. tesla +/vis/viewer/refresh +/run/beamOn 10 +/vis/viewer/flush +# +/mydet/armAngle 30. deg +/mydet/momentum 2. GeV +/mydet/sigmaMomentum 0. +/mydet/sigmaAngle 0. +/vis/viewer/refresh +/vis/scene/endOfEventAction refresh +/run/beamOn 10 +/vis/viewer/flush +# +/vis/scene/create +/vis/scene/add/volume +/vis/scene/add/trajectories +/vis/sceneHandler/attach +/vis/viewer/clear +/vis/viewer/reset +/vis/viewer/set/lightsThetaPhi 90. 0. +/vis/viewer/set/viewpointThetaPhi 150. 90. +/vis/viewer/refresh +/mydet/sigmaAngle 2. deg +/vis/viewer/refresh +/run/beamOn 10 +/vis/viewer/flush +# diff --git a/examples/extended/analysis/A01/setup-analysis.csh b/examples/extended/analysis/A01/setup-analysis.csh new file mode 100644 index 0000000000..5bfb9fedc5 --- /dev/null +++ b/examples/extended/analysis/A01/setup-analysis.csh @@ -0,0 +1,36 @@ +# +# Change this to point to your Java installation +# +setenv JDK_HOME /usr/java/jdk1.4.1 +if (! -e $JDK_HOME/bin/java) then + echo "You need to install Java and/or modify script to set JDK_HOME correctly" + goto end +endif +setenv G4ANALYSIS_USE 1 +setenv G4ANALYSIS_AIDA_CONFIG_LIBS "-lAIDAJNI -lFHJNI -L$JDK_HOME/jre/lib/i386/client -ljvm" +touch src/DummyAnalysisFactory.cc + +setenv JVM_ARGS "-Dhep.aida.IAnalysisFactory=jas.aida.gui.JASGUIAnalysisFactory" +setenv LD_LIBRARY_PATH $JDK_HOME/jre/lib/i386/client:$JDK_HOME/jre/lib/i386 + +setenv JLIBPATH $G4INSTALL/lib/java +if (! -e $JLIBPATH/aida.jar) then + echo "The AIDA.jar files seem to be missing, make sure JAIDA-G4 patch has been applied" + echo "and that G4INSTALL is set correctly" + goto end +endif +setenv CLASSPATH "$JLIBPATH/JASAIDA.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/aida.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/aida-dev.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/freehep-hep.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/freehep-base.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/openide-lookup.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/jas.jar" +setenv CLASSPATH "$CLASSPATH:$JLIBPATH/jel.jar" + +echo "JDK_HOME set to $JDK_HOME" +echo "JVM_ARGS set to $JVM_ARGS" +echo "CLASSPATH set to $CLASSPATH" +echo "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH" +echo "G4ANALYSIS_AIDA_CONFIG_LIBS set to $G4ANALYSIS_AIDA_CONFIG_LIBS" +end: diff --git a/examples/extended/analysis/A01/setup-analysis.sh b/examples/extended/analysis/A01/setup-analysis.sh new file mode 100644 index 0000000000..e313b63577 --- /dev/null +++ b/examples/extended/analysis/A01/setup-analysis.sh @@ -0,0 +1,37 @@ +# +# Change this to point to your Java installation +# +export JDK_HOME=/usr/java/jdk1.4.1 +if ! test -e $JDK_HOME/bin/java +then + echo "You need to install Java and/or modify script to set JDK_HOME correctly" + return +fi +export G4ANALYSIS_USE=1 +export G4ANALYSIS_AIDA_CONFIG_LIBS="-lFREEHEP -L$JDK_HOME/jre/lib/i386/client -ljvm" +touch src/DummyAnalysisFactory.cc + +export JVM_ARGS="-Dhep.aida.IAnalysisFactory=jas.aida.gui.JASGUIAnalysisFactory" +export LD_LIBRARY_PATH=$JDK_HOME/jre/lib/i386/client:$JDK_HOME/jre/lib/i386 + +export JLIBPATH=$G4INSTALL/lib/java +if ! test -e $JLIBPATH/aida.jar +then + echo "The AIDA.jar files seem to be missing, make sure JAIDA-G4 patch has been applied" + echo "and that G4INSTALL is set correctly" + return +fi +export CLASSPATH="$JLIBPATH/JASAIDA.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/aida.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/aida-dev.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/freehep-hep.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/freehep-base.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/openide-lookup.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/jas.jar" +CLASSPATH="$CLASSPATH:$JLIBPATH/jel.jar" + +echo "JDK_HOME set to $JDK_HOME" +echo "JVM_ARGS set to $JVM_ARGS" +echo "CLASSPATH set to $CLASSPATH" +echo "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH" +echo "G4ANALYSIS_AIDA_CONFIG_LIBS set to $G4ANALYSIS_AIDA_CONFIG_LIBS" diff --git a/examples/extended/analysis/A01/setup-analysis.win32 b/examples/extended/analysis/A01/setup-analysis.win32 new file mode 100644 index 0000000000..c9b859d852 --- /dev/null +++ b/examples/extended/analysis/A01/setup-analysis.win32 @@ -0,0 +1,37 @@ +# +# Change this to point to your Java installation +# +export JDK_HOME="/cygdrive/c/java/j2sdk1.4.1" +if ! test -e $JDK_HOME/bin/java +then + echo "You need to install Java and/or modify script to set JDK_HOME correctly" + return +fi +export G4ANALYSIS_USE=1 +export G4ANALYSIS_AIDA_CONFIG_LIBS="-lAIDAJNI -lFHJNI -ljvm" +touch src/DummyAnalysisFactory.cc + +export JVM_ARGS="-Dhep.aida.IAnalysisFactory=jas.aida.gui.JASGUIAnalysisFactory" +export PATH=$PATH:$JDK_HOME/jre/bin/hotspot:$JDK_HOME/jre/bin/client + +export JLIBPATH=$G4INSTALL/lib/java +if ! test -e $JLIBPATH/aida.jar +then + echo "The AIDA.jar files seem to be missing, make sure JAIDA-G4 patch has been applied" + echo "and that G4INSTALL is set correctly" + return +fi +export CLASSPATH="$JLIBPATH/JASAIDA.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/aida.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/aida-dev.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/freehep-hep.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/freehep-base.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/openide-lookup.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/jas.jar" +CLASSPATH="$CLASSPATH;$JLIBPATH/jel.jar" + +echo "JDK_HOME set to $JDK_HOME" +echo "JVM_ARGS set to $JVM_ARGS" +echo "CLASSPATH set to $CLASSPATH" +echo "PATH set to $PATH" +echo "G4ANALYSIS_AIDA_CONFIG_LIBS set to $G4ANALYSIS_AIDA_CONFIG_LIBS" diff --git a/examples/extended/analysis/A01/src/A01AnalysisManager.cc b/examples/extended/analysis/A01/src/A01AnalysisManager.cc new file mode 100644 index 0000000000..b75c80dab9 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01AnalysisManager.cc @@ -0,0 +1,152 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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 tutorial 1 * +// * * +// * MODULE: A01AnalysisManager.cc * +// * ------- * +// * * +// * Version: 0.1 * +// * Date: January 28 2002 * +// * Author: T.Johnson * +// * Organisation: SLAC * +// * * +// ********************************************************************** +// +// CHANGE HISTORY +// -------------- +// +// Nov 4 2002 -- Upgrade to AIDA 3.0 +// ********************************************************************** + + +#include "g4std/fstream" + +#include "G4ios.hh" +#include "G4Run.hh" +#include "G4Event.hh" +#include "G4Track.hh" +#include "G4VVisManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" + +#include + + +#include "A01AnalysisManager.hh" + +A01AnalysisManager* A01AnalysisManager::instance = 0; + +A01AnalysisManager::A01AnalysisManager() +:analysisFactory(0), hFactory(0), tFactory(0) +{ + // Hooking an AIDA compliant analysis system. + analysisFactory = AIDA_createAnalysisFactory(); + if(analysisFactory) + { + ITreeFactory* treeFactory = analysisFactory->createTreeFactory(); + tree = treeFactory->create("A01.aida","xml",false,true,"compress=yes"); + hFactory = analysisFactory->createHistogramFactory(*tree); + tFactory = analysisFactory->createTupleFactory(*tree); + delete treeFactory; // Will not delete the ITree. + } +} + +A01AnalysisManager::~A01AnalysisManager() +{ + if (analysisFactory) + { + if (!tree->commit()) G4cout << "Commit failed: no AIDA file produced!" << G4endl; + delete tree; + delete tFactory; + delete hFactory; + delete analysisFactory; + } +} +IHistogramFactory* A01AnalysisManager::getHistogramFactory() +{ + return hFactory; +} +ITupleFactory* A01AnalysisManager::getTupleFactory() +{ + return tFactory; +} +IPlotter* A01AnalysisManager::createPlotter() +{ + if (analysisFactory) + { + IPlotterFactory* pf = analysisFactory->createPlotterFactory(0,0); + if (pf) return pf->create("Plotter"); + } + return 0; +} + +A01AnalysisManager* A01AnalysisManager::getInstance() +{ + if (instance == 0) instance = new A01AnalysisManager(); + return instance; +} + +void A01AnalysisManager::dispose() +{ + if (instance != 0) + { + delete instance; + instance = 0; + } +} + + + + + + + + + + + diff --git a/examples/extended/analysis/A01/src/A01CellParameterisation.cc b/examples/extended/analysis/A01/src/A01CellParameterisation.cc new file mode 100644 index 0000000000..39f2a1c26f --- /dev/null +++ b/examples/extended/analysis/A01/src/A01CellParameterisation.cc @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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: A01CellParameterisation.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01CellParameterisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" + +A01CellParameterisation::A01CellParameterisation() +{ + for(int copyNo=0;copyNo<80;copyNo++) + { + G4int column = copyNo / 4; + G4int row = copyNo % 4; + xCell[copyNo] = (column-9)*15.*cm - 7.5*cm; + yCell[copyNo] = (row-1)*15*cm - 7.5*cm; + } +} + +A01CellParameterisation::~A01CellParameterisation() +{;} + +void A01CellParameterisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const +{ + physVol->SetTranslation(G4ThreeVector(xCell[copyNo],yCell[copyNo],0.)); +} + diff --git a/examples/extended/analysis/A01/src/A01DetectorConstMessenger.cc b/examples/extended/analysis/A01/src/A01DetectorConstMessenger.cc new file mode 100644 index 0000000000..4ff4d06be8 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01DetectorConstMessenger.cc @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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: A01DetectorConstMessenger.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01DetectorConstMessenger.hh" +#include "A01DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4ios.hh" + +A01DetectorConstMessenger::A01DetectorConstMessenger(A01DetectorConstruction* mpga) +:target(mpga) +{ + mydetDirectory = new G4UIdirectory("/mydet/"); + mydetDirectory->SetGuidance("A01 detector setup control commands."); + + armCmd = new G4UIcmdWithADoubleAndUnit("/mydet/armAngle",this); + armCmd->SetGuidance("Rotation angle of the second arm."); + armCmd->SetParameterName("angle",true); + armCmd->SetRange("angle>=0. && angle<180."); + armCmd->SetDefaultValue(30.); + armCmd->SetDefaultUnit("deg"); +} + +A01DetectorConstMessenger::~A01DetectorConstMessenger() +{ + delete armCmd; + delete mydetDirectory; +} + +void A01DetectorConstMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==armCmd ) + { target->SetArmAngle(armCmd->GetNewDoubleValue(newValue)); } +} + +G4String A01DetectorConstMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + if( command==armCmd ) + { cv = armCmd->ConvertToString(target->GetArmAngle(),"deg"); } + + return cv; +} + diff --git a/examples/extended/analysis/A01/src/A01DetectorConstruction.cc b/examples/extended/analysis/A01/src/A01DetectorConstruction.cc new file mode 100644 index 0000000000..652013a63a --- /dev/null +++ b/examples/extended/analysis/A01/src/A01DetectorConstruction.cc @@ -0,0 +1,461 @@ +// +// ******************************************************************** +// * 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: A01DetectorConstruction.cc,v 1.4 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01DetectorConstruction.hh" + +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4MaterialTable.hh" + +#include "G4VSolid.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVParameterised.hh" +#include "G4UserLimits.hh" + +#include "G4SDManager.hh" +#include "G4VSensitiveDetector.hh" +#include "G4RunManager.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4ios.hh" + +#include "A01DetectorConstMessenger.hh" +#include "A01MagneticField.hh" +#include "A01CellParameterisation.hh" +#include "A01Hodoscope.hh" +#include "A01DriftChamber.hh" +#include "A01EmCalorimeter.hh" + +#include "G4PVReplica.hh" +#include "A01HadCalorimeter.hh" + +A01DetectorConstruction::A01DetectorConstruction() + : air(0), argonGas(0), scintillator(0), CsI(0), lead(0), + hodoscope1(0), hodoscope2(0), chamber1(0), chamber2(0), + EMcalorimeter(0), HadCalorimeter(0), worldVisAtt(0), magneticVisAtt(0), + armVisAtt(0), hodoscopeVisAtt(0), chamberVisAtt(0), + wirePlaneVisAtt(0), EMcalorimeterVisAtt(0), cellVisAtt(0), + HadCalorimeterVisAtt(0), HadCalorimeterCellVisAtt(0), + armAngle(30.*deg), secondArmPhys(0) + +{ + messenger = new A01DetectorConstMessenger(this); + magneticField = new A01MagneticField(); + armRotation = new G4RotationMatrix(); + armRotation->rotateY(armAngle); +} + +A01DetectorConstruction::~A01DetectorConstruction() +{ + delete magneticField; + delete messenger; + + DestroyMaterials(); + + delete hodoscope1; + delete hodoscope2; + delete chamber1; + delete chamber2; + delete EMcalorimeter; + delete HadCalorimeter; + + delete worldVisAtt; + delete magneticVisAtt; + delete armVisAtt; + delete hodoscopeVisAtt; + delete chamberVisAtt; + delete wirePlaneVisAtt; + delete EMcalorimeterVisAtt; + delete cellVisAtt; + delete HadCalorimeterVisAtt; + delete HadCalorimeterCellVisAtt; +} + +G4VPhysicalVolume* A01DetectorConstruction::Construct() +{ + ConstructMaterials(); + + // Magnetic field ---------------------------------------------------------- + static G4bool fieldIsInitialized = false; + if(!fieldIsInitialized) + { + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager()->GetFieldManager(); + fieldMgr->SetDetectorField(magneticField); + fieldMgr->CreateChordFinder(magneticField); + fieldIsInitialized = true; + } + + // geometries -------------------------------------------------------------- + // experimental hall (world volume) + G4VSolid* worldSolid = new G4Box("worldBox",10.*m,3.*m,10.*m); + G4LogicalVolume* worldLogical + = new G4LogicalVolume(worldSolid,air,"worldLogical",0,0,0); + G4VPhysicalVolume* worldPhysical + = new G4PVPlacement(0,G4ThreeVector(),worldLogical,"worldPhysical",0,0,0); + + // magnetic field region + G4VSolid* magneticSolid = new G4Tubs("magneticTubs",0.,1.*m,1.*m,0.,360.*deg); + G4LogicalVolume* magneticLogical + = new G4LogicalVolume(magneticSolid,air,"magneticLogical",0,0,0); + G4RotationMatrix* fieldRot = new G4RotationMatrix(); + fieldRot->rotateX(90.*deg); + new G4PVPlacement(fieldRot,G4ThreeVector(),magneticLogical, + "magneticPhysical",worldLogical,0,0); + + // set "user limits" for drawing smooth curve + G4UserLimits* userLimits = new G4UserLimits(5.0*cm); + magneticLogical->SetUserLimits(userLimits); + + // first arm + G4VSolid* firstArmSolid = new G4Box("firstArmBox",1.5*m,1.*m,3.*m); + G4LogicalVolume* firstArmLogical + = new G4LogicalVolume(firstArmSolid,air,"firstArmLogical",0,0,0); + new G4PVPlacement(0,G4ThreeVector(0.,0.,-5.*m),firstArmLogical, + "firstArmPhysical",worldLogical,0,0); + + // second arm + G4VSolid* secondArmSolid = new G4Box("secondArmBox",2.*m,2.*m,3.5*m); + G4LogicalVolume* secondArmLogical + = new G4LogicalVolume(secondArmSolid,air,"secondArmLogical",0,0,0); + G4double x = -5.*m * sin(armAngle); + G4double z = 5.*m * cos(armAngle); + secondArmPhys + = new G4PVPlacement(armRotation,G4ThreeVector(x,0.,z),secondArmLogical, + "secondArmPhys",worldLogical,0,0); + + // hodoscopes in first arm + G4VSolid* hodoscope1Solid = new G4Box("hodoscope1Box",5.*cm,20.*cm,0.5*cm); + G4LogicalVolume* hodoscope1Logical + = new G4LogicalVolume(hodoscope1Solid,scintillator,"hodoscope1Logical",0,0,0); + for(int i1=0;i1<15;i1++) + { + G4double x1 = (i1-7)*10.*cm; + new G4PVPlacement(0,G4ThreeVector(x1,0.,-1.5*m),hodoscope1Logical, + "hodoscope1Physical",firstArmLogical,0,i1); + } + + // drift chambers in first arm + G4VSolid* chamber1Solid = new G4Box("chamber1Box",1.*m,30.*cm,1.*cm); + G4LogicalVolume* chamber1Logical + = new G4LogicalVolume(chamber1Solid,argonGas,"chamber1Logical",0,0,0); + for(int j1=0;j1<5;j1++) + { + G4double z1 = (j1-2)*0.5*m; + new G4PVPlacement(0,G4ThreeVector(0.,0.,z1),chamber1Logical, + "chamber1Physical",firstArmLogical,0,j1); + } + + // "virtual" wire plane + G4VSolid* wirePlane1Solid = new G4Box("wirePlane1Box",1.*m,30.*cm,0.1*mm); + G4LogicalVolume* wirePlane1Logical + = new G4LogicalVolume(wirePlane1Solid,argonGas,"wirePlane1Logical",0,0,0); + new G4PVPlacement(0,G4ThreeVector(0.,0.,0.),wirePlane1Logical, + "wirePlane1Physical",chamber1Logical,0,0); + + // hodoscopes in second arm + G4VSolid* hodoscope2Solid = new G4Box("hodoscope2Box",5.*cm,20.*cm,0.5*cm); + G4LogicalVolume* hodoscope2Logical + = new G4LogicalVolume(hodoscope2Solid,scintillator,"hodoscope2Logical",0,0,0); + for(int i2=0;i2<25;i2++) + { + G4double x2 = (i2-12)*10.*cm; + new G4PVPlacement(0,G4ThreeVector(x2,0.,0.),hodoscope2Logical, + "hodoscope2Physical",secondArmLogical,0,i2); + } + + // drift chambers in second arm + G4VSolid* chamber2Solid = new G4Box("chamber2Box",1.5*m,30.*cm,1.*cm); + G4LogicalVolume* chamber2Logical + = new G4LogicalVolume(chamber2Solid,argonGas,"chamber2Logical",0,0,0); + for(int j2=0;j2<5;j2++) + { + G4double z2 = (j2-2)*0.5*m - 1.5*m; + new G4PVPlacement(0,G4ThreeVector(0.,0.,z2),chamber2Logical, + "chamber2Physical",secondArmLogical,0,j2); + } + + // "virtual" wire plane + G4VSolid* wirePlane2Solid = new G4Box("wirePlane2Box",1.5*m,30.*cm,0.1*mm); + G4LogicalVolume* wirePlane2Logical + = new G4LogicalVolume(wirePlane2Solid,argonGas,"wirePlane2Logical",0,0,0); + new G4PVPlacement(0,G4ThreeVector(0.,0.,0.),wirePlane2Logical, + "wirePlane2Physical",chamber2Logical,0,0); + + // CsI calorimeter + G4VSolid* EMcalorimeterSolid = new G4Box("EMcalorimeterBox",1.5*m,30.*cm,15.*cm); + G4LogicalVolume* EMcalorimeterLogical + = new G4LogicalVolume(EMcalorimeterSolid,CsI,"EMcalorimeterLogical",0,0,0); + new G4PVPlacement(0,G4ThreeVector(0.,0.,2.*m),EMcalorimeterLogical, + "EMcalorimeterPhysical",secondArmLogical,0,0); + + // EMcalorimeter cells + G4VSolid* cellSolid = new G4Box("cellBox",7.5*cm,7.5*cm,15.*cm); + G4LogicalVolume* cellLogical + = new G4LogicalVolume(cellSolid,CsI,"cellLogical",0,0,0); + G4VPVParameterisation* cellParam = new A01CellParameterisation(); + new G4PVParameterised("cellPhysical",cellLogical,EMcalorimeterLogical, + kXAxis,80,cellParam); + +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + // hadron calorimeter + G4VSolid* HadCalorimeterSolid + = new G4Box("HadCalorimeterBox",1.5*m,30.*cm,50.*cm); + G4LogicalVolume* HadCalorimeterLogical + = new G4LogicalVolume(HadCalorimeterSolid,lead,"HadCalorimeterLogical",0,0,0); + new G4PVPlacement(0,G4ThreeVector(0.,0.,3.*m),HadCalorimeterLogical, + "HadCalorimeterPhysical",secondArmLogical,0,0); + + // hadron calorimeter column + G4VSolid* HadCalColumnSolid + = new G4Box("HadCalColumnBox",15.*cm,30.*cm,50.*cm); + G4LogicalVolume* HadCalColumnLogical + = new G4LogicalVolume(HadCalColumnSolid,lead,"HadCalColumnLogical",0,0,0); + new G4PVReplica("HadCalColumnPhysical",HadCalColumnLogical, + HadCalorimeterLogical,kXAxis,10,30.*cm); + + // hadron calorimeter cell + G4VSolid* HadCalCellSolid + = new G4Box("HadCalCellBox",15.*cm,15.*cm,50.*cm); + G4LogicalVolume* HadCalCellLogical + = new G4LogicalVolume(HadCalCellSolid,lead,"HadCalCellLogical",0,0,0); + new G4PVReplica("HadCalCellPhysical",HadCalCellLogical, + HadCalColumnLogical,kYAxis,2,30.*cm); + + // hadron calorimeter layers + G4VSolid* HadCalLayerSolid + = new G4Box("HadCalLayerBox",15.*cm,15.*cm,2.5*cm); + G4LogicalVolume* HadCalLayerLogical + = new G4LogicalVolume(HadCalLayerSolid,lead,"HadCalLayerLogical",0,0,0); + new G4PVReplica("HadCalLayerPhysical",HadCalLayerLogical, + HadCalCellLogical,kZAxis,20,5.*cm); + + // scintillator plates + G4VSolid* HadCalScintiSolid + = new G4Box("HadCalScintiBox",15.*cm,15.*cm,0.5*cm); + G4LogicalVolume* HadCalScintiLogical + = new G4LogicalVolume(HadCalScintiSolid,scintillator,"HadCalScintiLogical",0,0,0); + new G4PVPlacement(0,G4ThreeVector(0.,0.,2.*cm),HadCalScintiLogical, + "HadCalScintiPhysical",HadCalLayerLogical,0,0); +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + // sensitive detectors ----------------------------------------------------- + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + G4String SDname; + + hodoscope1 = new A01Hodoscope(SDname="/hodoscope1"); + SDman->AddNewDetector(hodoscope1); + hodoscope1Logical->SetSensitiveDetector(hodoscope1); + hodoscope2 = new A01Hodoscope(SDname="/hodoscope2"); + SDman->AddNewDetector(hodoscope2); + hodoscope2Logical->SetSensitiveDetector(hodoscope2); + + chamber1 = new A01DriftChamber(SDname="/chamber1"); + SDman->AddNewDetector(chamber1); + wirePlane1Logical->SetSensitiveDetector(chamber1); + chamber2 = new A01DriftChamber(SDname="/chamber2"); + SDman->AddNewDetector(chamber2); + wirePlane2Logical->SetSensitiveDetector(chamber2); + + EMcalorimeter = new A01EmCalorimeter(SDname="/EMcalorimeter"); + SDman->AddNewDetector(EMcalorimeter); + cellLogical->SetSensitiveDetector(EMcalorimeter); + + HadCalorimeter = new A01HadCalorimeter(SDname="/HadCalorimeter"); + SDman->AddNewDetector(HadCalorimeter); + HadCalScintiLogical->SetSensitiveDetector(HadCalorimeter); + + // visualization attributes ------------------------------------------------ + + worldVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + worldVisAtt->SetVisibility(false); + worldLogical->SetVisAttributes(worldVisAtt); + + magneticVisAtt = new G4VisAttributes(G4Colour(0.9,0.9,0.9)); // LightGray + magneticVisAtt->SetForceWireframe(true); + magneticLogical->SetVisAttributes(magneticVisAtt); + + armVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + armVisAtt->SetVisibility(false); + firstArmLogical->SetVisAttributes(armVisAtt); + secondArmLogical->SetVisAttributes(armVisAtt); + + hodoscopeVisAtt = new G4VisAttributes(G4Colour(0.8888,0.0,0.0)); + hodoscopeVisAtt->SetForceWireframe(true); + hodoscope1Logical->SetVisAttributes(hodoscopeVisAtt); + hodoscope2Logical->SetVisAttributes(hodoscopeVisAtt); + + chamberVisAtt = new G4VisAttributes(G4Colour(0.0,1.0,0.0)); + chamberVisAtt->SetForceWireframe(true); + chamber1Logical->SetVisAttributes(chamberVisAtt); + chamber2Logical->SetVisAttributes(chamberVisAtt); + + wirePlaneVisAtt = new G4VisAttributes(G4Colour(0.0,0.8888,0.0)); + wirePlaneVisAtt->SetVisibility(false); + wirePlane1Logical->SetVisAttributes(wirePlaneVisAtt); + wirePlane2Logical->SetVisAttributes(wirePlaneVisAtt); + + EMcalorimeterVisAtt = new G4VisAttributes(G4Colour(0.8888,0.8888,0.0)); + EMcalorimeterVisAtt->SetVisibility(false); + EMcalorimeterLogical->SetVisAttributes(EMcalorimeterVisAtt); + + cellVisAtt = new G4VisAttributes(G4Colour(0.9,0.9,0.0)); + cellVisAtt->SetForceWireframe(true); + cellLogical->SetVisAttributes(cellVisAtt); + + HadCalorimeterVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)); + HadCalorimeterVisAtt->SetForceWireframe(true); + HadCalorimeterLogical->SetVisAttributes(HadCalorimeterVisAtt); + HadCalorimeterCellVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)); + HadCalorimeterCellVisAtt->SetVisibility(false); + HadCalColumnLogical->SetVisAttributes(HadCalorimeterCellVisAtt); + HadCalCellLogical->SetVisAttributes(HadCalorimeterCellVisAtt); + HadCalLayerLogical->SetVisAttributes(HadCalorimeterCellVisAtt); + HadCalScintiLogical->SetVisAttributes(HadCalorimeterCellVisAtt); + + // return the world physical volume ---------------------------------------- + + G4cout << G4endl << "The geometrical tree defined are : " << G4endl << G4endl; + DumpGeometricalTree(worldPhysical); + + return worldPhysical; +} + +void A01DetectorConstruction::ConstructMaterials() +{ + G4double a; + G4double z; + G4double density; + G4double weightRatio; + G4String name; + G4String symbol; + G4int nElem; + + // Argon gas + a = 39.95*g/mole; + density = 1.782e-03*g/cm3; + argonGas = new G4Material(name="ArgonGas", z=18., a, density); + + // elements for mixtures and compounds + a = 1.01*g/mole; + G4Element* elH = new G4Element(name="Hydrogen", symbol="H", z=1., a); + a = 12.01*g/mole; + G4Element* elC = new G4Element(name="Carbon", symbol="C", z=6., a); + 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="Oxigen", symbol="O", z=8., a); + a = 126.9*g/mole; + G4Element* elI = new G4Element(name="Iodine", symbol="I", z=53., a); + a = 132.9*g/mole; + G4Element* elCs= new G4Element(name="Cesium", symbol="Cs", z=55., a); + + // Air + density = 1.29*mg/cm3; + air = new G4Material(name="Air", density, nElem=2); + air->AddElement(elN, weightRatio=.7); + air->AddElement(elO, weightRatio=.3); + + // Scintillator + density = 1.032*g/cm3; + scintillator = new G4Material(name="Scintillator", density, nElem=2); + scintillator->AddElement(elC, 9); + scintillator->AddElement(elH, 10); + + // CsI + density = 4.51*g/cm3; + CsI = new G4Material(name="CsI", density, nElem=2); + CsI->AddElement(elI, weightRatio=.5); + CsI->AddElement(elCs,weightRatio=.5); + + // Lead + a = 207.19*g/mole; + density = 11.35*g/cm3; + lead = new G4Material(name="Lead", z=82., a, density); + + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; +} + +void A01DetectorConstruction::DestroyMaterials() +{ + // Destroy all allocated elements and materials + size_t i; + G4MaterialTable* matTable = (G4MaterialTable*)G4Material::GetMaterialTable(); + for(i=0;isize();i++) + { delete (*(matTable))[i]; } + matTable->clear(); + G4ElementTable* elemTable = (G4ElementTable*)G4Element::GetElementTable(); + for(i=0;isize();i++) + { delete (*(elemTable))[i]; } + elemTable->clear(); +} + +void A01DetectorConstruction::DumpGeometricalTree(G4VPhysicalVolume* aVolume,G4int depth) +{ + for(int isp=0;ispGetName() << "[" << aVolume->GetCopyNo() << "] " + << aVolume->GetLogicalVolume()->GetName() << " " + << aVolume->GetLogicalVolume()->GetNoDaughters() << " " + << aVolume->GetLogicalVolume()->GetMaterial()->GetName(); + if(aVolume->GetLogicalVolume()->GetSensitiveDetector()) + { + G4cout << " " << aVolume->GetLogicalVolume()->GetSensitiveDetector() + ->GetFullPathName(); + } + G4cout << G4endl; + for(int i=0;iGetLogicalVolume()->GetNoDaughters();i++) + { DumpGeometricalTree(aVolume->GetLogicalVolume()->GetDaughter(i),depth+1); } +} + +void A01DetectorConstruction::SetArmAngle(G4double val) +{ + if(!secondArmPhys) + { + G4cerr << "Detector has not yet been constructed." << G4endl; + return; + } + + armAngle = val; + *armRotation = G4RotationMatrix(); // make it unit vector + armRotation->rotateY(armAngle); + G4double x = -5.*m * sin(armAngle); + G4double z = 5.*m * cos(armAngle); + secondArmPhys->SetTranslation(G4ThreeVector(x,0.,z)); + + // tell G4RunManager that we change the geometry + G4RunManager::GetRunManager()->GeometryHasBeenModified(); +} diff --git a/examples/extended/analysis/A01/src/A01DriftChamber.cc b/examples/extended/analysis/A01/src/A01DriftChamber.cc new file mode 100644 index 0000000000..fd3d83d51e --- /dev/null +++ b/examples/extended/analysis/A01/src/A01DriftChamber.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: A01DriftChamber.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01DriftChamber.hh" +#include "A01DriftChamberHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4SDManager.hh" +#include "G4Navigator.hh" +#include "G4ios.hh" + +A01DriftChamber::A01DriftChamber(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="driftChamberColl"); + HCID = -1; +} + +A01DriftChamber::~A01DriftChamber(){;} + +void A01DriftChamber::Initialize(G4HCofThisEvent*HCE) +{ + hitsCollection = new A01DriftChamberHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(hitsCollection); } + HCE->AddHitsCollection(HCID,hitsCollection); +} + +G4bool A01DriftChamber::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + G4double charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge(); + if(charge==0.) return true; + + G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(preStepPoint->GetTouchable()); + G4VPhysicalVolume* theMotherPhysical = theTouchable->GetVolume(1); // mother + G4int copyNo = theMotherPhysical->GetCopyNo(); + G4ThreeVector worldPos = preStepPoint->GetPosition(); + G4ThreeVector localPos + = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldPos); + + A01DriftChamberHit* aHit = new A01DriftChamberHit(copyNo); + aHit->SetWorldPos(worldPos); + aHit->SetLocalPos(localPos); + aHit->SetTime(preStepPoint->GetGlobalTime()); + + hitsCollection->insert(aHit); + + return true; +} + +void A01DriftChamber::EndOfEvent(G4HCofThisEvent*HCE) +{;} + diff --git a/examples/extended/analysis/A01/src/A01DriftChamberHit.cc b/examples/extended/analysis/A01/src/A01DriftChamberHit.cc new file mode 100644 index 0000000000..51f0c82b13 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01DriftChamberHit.cc @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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: A01DriftChamberHit.cc,v 1.4 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01DriftChamberHit.hh" +#include "G4ios.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolume.hh" + +G4Allocator A01DriftChamberHitAllocator; + +A01DriftChamberHit::A01DriftChamberHit() +{ + layerID = -1; + time = 0.; +} + +A01DriftChamberHit::A01DriftChamberHit(G4int z) +{ + layerID = z; + time = 0.; +} + +A01DriftChamberHit::~A01DriftChamberHit() +{;} + +A01DriftChamberHit::A01DriftChamberHit(const A01DriftChamberHit &right) +{ + layerID = right.layerID; + worldPos = right.worldPos; + localPos = right.localPos; + time = right.time; +} + +const A01DriftChamberHit& A01DriftChamberHit::operator=(const A01DriftChamberHit &right) +{ + layerID = right.layerID; + worldPos = right.worldPos; + localPos = right.localPos; + time = right.time; + return *this; +} + +int A01DriftChamberHit::operator==(const A01DriftChamberHit &right) const +{ + return 0; +} + +void A01DriftChamberHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Circle circle(worldPos); + circle.SetScreenSize(2); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.,1.,0.); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +void A01DriftChamberHit::Print() +{ + G4cout << " Layer[" << layerID << "] : time " << time/ns + << " (nsec) --- local (x,y) " << localPos.x() + << ", " << localPos.y() << G4endl; +} + + diff --git a/examples/extended/analysis/A01/src/A01EMPhysics.cc b/examples/extended/analysis/A01/src/A01EMPhysics.cc new file mode 100644 index 0000000000..1b93c5e0a4 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01EMPhysics.cc @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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: A01EMPhysics.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// + + +#include "A01EMPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +A01EMPhysics::A01EMPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +A01EMPhysics::~A01EMPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4Gamma.hh" + +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + +void A01EMPhysics::ConstructParticle() +{ + // gamma + G4Gamma::GammaDefinition(); + + // electron + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); +} + + +#include "G4ProcessManager.hh" + + +void A01EMPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Gamma Physics + pManager = G4Gamma::Gamma()->GetProcessManager(); + pManager->AddDiscreteProcess(&thePhotoEffect); + pManager->AddDiscreteProcess(&theComptonEffect); + pManager->AddDiscreteProcess(&thePairProduction); + + // Electron Physics + pManager = G4Electron::Electron()->GetProcessManager(); + // add processes + pManager->AddDiscreteProcess(&theElectronBremsStrahlung); + + pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theElectronMultipleScattering); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); + + //Positron Physics + pManager = G4Positron::Positron()->GetProcessManager(); + // add processes + pManager->AddDiscreteProcess(&thePositronBremsStrahlung); + + pManager->AddDiscreteProcess(&theAnnihilation); + + pManager->AddRestProcess(&theAnnihilation); + + pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePositronMultipleScattering); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/analysis/A01/src/A01EmCalorimeter.cc b/examples/extended/analysis/A01/src/A01EmCalorimeter.cc new file mode 100644 index 0000000000..04a88364aa --- /dev/null +++ b/examples/extended/analysis/A01/src/A01EmCalorimeter.cc @@ -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: A01EmCalorimeter.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01EmCalorimeter.hh" +#include "A01EmCalorimeterHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4SDManager.hh" +#include "G4ios.hh" + +A01EmCalorimeter::A01EmCalorimeter(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="EMcalorimeterColl"); + HCID = -1; +} + +A01EmCalorimeter::~A01EmCalorimeter(){;} + +void A01EmCalorimeter::Initialize(G4HCofThisEvent*HCE) +{ + hitsCollection = new A01EmCalorimeterHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(hitsCollection); } + HCE->AddHitsCollection(HCID,hitsCollection); + + // fill calorimeter hits with zero energy deposition + for(int i=0;i<80;i++) + { + A01EmCalorimeterHit* aHit = new A01EmCalorimeterHit(i); + hitsCollection->insert( aHit ); + } +} + +G4bool A01EmCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) return true; + + G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(preStepPoint->GetTouchable()); + G4VPhysicalVolume* thePhysical = theTouchable->GetVolume(); + G4int copyNo = thePhysical->GetCopyNo(); + + A01EmCalorimeterHit* aHit = (*hitsCollection)[copyNo]; + // check if it is first touch + if(!(aHit->GetLogV())) + { + // fill volume information + aHit->SetLogV(thePhysical->GetLogicalVolume()); + G4AffineTransform aTrans = theTouchable->GetHistory()->GetTopTransform(); + aTrans.Invert(); + aHit->SetRot(aTrans.NetRotation()); + aHit->SetPos(aTrans.NetTranslation()); + } + // add energy deposition + aHit->AddEdep(edep); + + return true; +} + +void A01EmCalorimeter::EndOfEvent(G4HCofThisEvent*HCE) +{;} + diff --git a/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc b/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc new file mode 100644 index 0000000000..1686e4b7f1 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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: A01EmCalorimeterHit.cc,v 1.4 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01EmCalorimeterHit.hh" +#include "G4VVisManager.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolume.hh" +#include "G4ios.hh" + +G4Allocator A01EmCalorimeterHitAllocator; + +A01EmCalorimeterHit::A01EmCalorimeterHit() +{ + cellID = -1; + edep = 0.; + pLogV = 0; +} + +A01EmCalorimeterHit::A01EmCalorimeterHit(G4int z) +{ + cellID = z; + edep = 0.; + pLogV = 0; +} + +A01EmCalorimeterHit::~A01EmCalorimeterHit() +{;} + +A01EmCalorimeterHit::A01EmCalorimeterHit(const A01EmCalorimeterHit &right) +{ + cellID = right.cellID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; +} + +const A01EmCalorimeterHit& A01EmCalorimeterHit::operator=(const A01EmCalorimeterHit &right) +{ + cellID = right.cellID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; + return *this; +} + +int A01EmCalorimeterHit::operator==(const A01EmCalorimeterHit &right) const +{ + return (cellID==right.cellID); +} + +void A01EmCalorimeterHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager&&(edep>0.)) + { + // Draw a calorimeter cell with a color corresponding to its energy deposit + G4Transform3D trans(rot.inverse(),pos); + G4VisAttributes attribs; + const G4VisAttributes* pVA = pLogV->GetVisAttributes(); + if(pVA) attribs = *pVA; + G4double rcol = edep/(0.7*GeV); + if(rcol>1.) rcol = 1.; + if(rcol<0.4) rcol = 0.4; + G4Colour colour(rcol,0.,0.); + attribs.SetColour(colour); + attribs.SetForceWireframe(false); + attribs.SetForceSolid(true); + pVVisManager->Draw(*pLogV,attribs,trans); + } +} + +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 new file mode 100644 index 0000000000..adf89a11f4 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01EventAction.cc @@ -0,0 +1,314 @@ +// +// ******************************************************************** +// * 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: A01EventAction.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01EventAction.hh" +#include "A01EventActionMessenger.hh" +#include "A01AnalysisManager.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" + +#include "A01HodoscopeHit.hh" +#include "A01DriftChamberHit.hh" +#include "A01EmCalorimeterHit.hh" + + +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +#include "A01HadCalorimeterHit.hh" +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +A01EventAction::A01EventAction() +{ + G4String colName; + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + HHC1ID = SDman->GetCollectionID(colName="hodoscope1/hodoscopeColl"); + HHC2ID = SDman->GetCollectionID(colName="hodoscope2/hodoscopeColl"); + DHC1ID = SDman->GetCollectionID(colName="chamber1/driftChamberColl"); + DHC2ID = SDman->GetCollectionID(colName="chamber2/driftChamberColl"); + ECHCID = SDman->GetCollectionID(colName="EMcalorimeter/EMcalorimeterColl"); +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + HCHCID = SDman->GetCollectionID(colName="HadCalorimeter/HadCalorimeterColl"); +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + verboseLevel = 1; + messenger = new A01EventActionMessenger(this); + + plotter = 0; + tuple = 0; + dc1Hits = dc2Hits = 0; + dc1XY = dc2XY = evstof = 0; + + // Do some analysis + + A01AnalysisManager* analysisManager = A01AnalysisManager::getInstance(); + IHistogramFactory* hFactory = analysisManager->getHistogramFactory(); + + if (hFactory) + { + // Create some histograms + dc1Hits = hFactory->createHistogram1D("Drift Chamber 1 # Hits",10,0,10); + dc2Hits = hFactory->createHistogram1D("Drift Chamber 2 # Hits",10,0,10); + + // Create some clouds (Scatter Plots) + dc1XY = hFactory->createCloud2D("Drift Chamber 1 X vs Y"); + dc2XY = hFactory->createCloud2D("Drift Chamber 2 X vs Y"); + evstof = hFactory->createCloud2D("EDep vs Time-of-flight"); + + plotter = analysisManager->createPlotter(); + if (plotter) + { + plotter->createRegions(2,2); + plotter->region(0)->plot(*dc1Hits); + plotter->region(1)->plot(*dc2Hits); + plotter->region(2)->plot(*dc1XY); + plotter->region(3)->plot(*evstof); + plotter->show(); + } + } + + // Create a Tuple + + ITupleFactory* tFactory = analysisManager->getTupleFactory(); + if (tFactory) + { + tuple = tFactory->create("MyTuple","MyTuple","int dc1Hits, dc2Hits, double ECEnergy, HCEnergy, time1, time2",""); + } +} + +A01EventAction::~A01EventAction() +{ + A01AnalysisManager::dispose(); + delete messenger; +} + +void A01EventAction::BeginOfEventAction(const G4Event*) +{ +} + +void A01EventAction::EndOfEventAction(const G4Event* evt) +{ + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + A01HodoscopeHitsCollection* HHC1 = 0; + A01HodoscopeHitsCollection* HHC2 = 0; + A01DriftChamberHitsCollection* DHC1 = 0; + A01DriftChamberHitsCollection* DHC2 = 0; + A01EmCalorimeterHitsCollection* ECHC = 0; + A01HadCalorimeterHitsCollection* HCHC = 0; + if(HCE) + { + HHC1 = (A01HodoscopeHitsCollection*)(HCE->GetHC(HHC1ID)); + HHC2 = (A01HodoscopeHitsCollection*)(HCE->GetHC(HHC2ID)); + DHC1 = (A01DriftChamberHitsCollection*)(HCE->GetHC(DHC1ID)); + DHC2 = (A01DriftChamberHitsCollection*)(HCE->GetHC(DHC2ID)); + ECHC = (A01EmCalorimeterHitsCollection*)(HCE->GetHC(ECHCID)); + HCHC = (A01HadCalorimeterHitsCollection*)(HCE->GetHC(HCHCID)); + } + + // Fill some histograms + + if (DHC1 && dc1Hits) + { + 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()); + } + } + + } + 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()); + } + } + } + + + // Fill the tuple + + if (tuple) + { + if (DHC1) tuple->fill(0,DHC1->entries()); + if (DHC2) tuple->fill(1,DHC2->entries()); + if(ECHC) + { + int iHit = 0; + double totalE = 0.; + for(int i1=0;i1<80;i1++) + { + A01EmCalorimeterHit* aHit = (*ECHC)[i1]; + double eDep = aHit->GetEdep(); + if(eDep>0.) + { + iHit++; + totalE += eDep; + } + } + tuple->fill(2,totalE); + + if (HHC1 && HHC2 && HHC1->entries()==1 && HHC2->entries()==1) + { + double tof = (*HHC2)[0]->GetTime() - (*HHC1)[0]->GetTime(); + if (evstof) evstof->fill(tof,totalE); + } + } + if(HCHC) + { + int iHit = 0; + double totalE = 0.; + for(int i1=0;i1<20;i1++) + { + A01HadCalorimeterHit* aHit = (*HCHC)[i1]; + double eDep = aHit->GetEdep(); + if(eDep>0.) + { + iHit++; + totalE += eDep; + } + } + tuple->fill(3,totalE); + } + if (HHC1 && HHC1->entries()==1) tuple->fill(4,(*HHC1)[0]->GetTime()); + if (HHC2 && HHC2->entries()==1) tuple->fill(5,(*HHC2)[0]->GetTime()); + tuple->addRow(); + } + if (plotter) plotter->refresh(); + + + // Diagnostics + + if (verboseLevel==0 || evt->GetEventID() % verboseLevel != 0) return; + + G4PrimaryParticle* primary = evt->GetPrimaryVertex(0)->GetPrimary(0); + G4cout << G4endl + << ">>> Event " << evt->GetEventID() << " >>> Simulation truth : " + << primary->GetG4code()->GetParticleName() + << " " << primary->GetMomentum() << G4endl; + + if(HHC1) + { + int n_hit = HHC1->entries(); + G4cout << "Hodoscope 1 has " << n_hit << " hits." << G4endl; + for(int i1=0;i1Print(); + } + } + if(HHC2) + { + int n_hit = HHC2->entries(); + G4cout << "Hodoscope 2 has " << n_hit << " hits." << G4endl; + for(int i1=0;i1Print(); + } + } + if(DHC1) + { + int n_hit = DHC1->entries(); + G4cout << "Drift Chamber 1 has " << n_hit << " hits." << G4endl; + for(int i2=0;i2<5;i2++) + { + for(int i1=0;i1GetLayerID()==i2) aHit->Print(); + } + } + } + if(DHC2) + { + int n_hit = DHC2->entries(); + G4cout << "Drift Chamber 2 has " << n_hit << " hits." << G4endl; + for(int i2=0;i2<5;i2++) + { + for(int i1=0;i1GetLayerID()==i2) aHit->Print(); + } + } + } + if(ECHC) + { + int iHit = 0; + double totalE = 0.; + for(int i1=0;i1<80;i1++) + { + A01EmCalorimeterHit* aHit = (*ECHC)[i1]; + double eDep = aHit->GetEdep(); + if(eDep>0.) + { + iHit++; + totalE += eDep; + } + } + G4cout << "EM Calorimeter has " << iHit << " hits. Total Edep is " + << totalE/MeV << " (MeV)" << G4endl; + } + if(HCHC) + { + int iHit = 0; + double totalE = 0.; + for(int i1=0;i1<20;i1++) + { + A01HadCalorimeterHit* aHit = (*HCHC)[i1]; + double eDep = aHit->GetEdep(); + if(eDep>0.) + { + iHit++; + totalE += eDep; + } + } + G4cout << "Hadron Calorimeter has " << iHit << " hits. Total Edep is " + << totalE/MeV << " (MeV)" << G4endl; + } +} + + + diff --git a/examples/extended/analysis/A01/src/A01EventActionMessenger.cc b/examples/extended/analysis/A01/src/A01EventActionMessenger.cc new file mode 100644 index 0000000000..d989b35747 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01EventActionMessenger.cc @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * 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: A01EventActionMessenger.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01EventActionMessenger.hh" +#include "A01EventAction.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4ios.hh" + +A01EventActionMessenger::A01EventActionMessenger(A01EventAction * mpga) +:target(mpga) +{ + verboseCmd = new G4UIcmdWithAnInteger("/mydet/verbose",this); + verboseCmd->SetGuidance("Verbose level for each event."); + verboseCmd->SetGuidance(" Event summary will be displayed for every 'level' events."); + verboseCmd->SetParameterName("level",true); + verboseCmd->SetRange("level>=0"); + verboseCmd->SetDefaultValue(1); +} + +A01EventActionMessenger::~A01EventActionMessenger() +{ + delete verboseCmd; +} + +void A01EventActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==verboseCmd ) + { target->SetVerbose(verboseCmd->GetNewIntValue(newValue)); } +} + +G4String A01EventActionMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + if( command==verboseCmd ) + { cv = verboseCmd->ConvertToString(target->GetVerbose()); } + + return cv; +} + diff --git a/examples/extended/analysis/A01/src/A01GeneralPhysics.cc b/examples/extended/analysis/A01/src/A01GeneralPhysics.cc new file mode 100644 index 0000000000..ff2eed8d20 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01GeneralPhysics.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: A01GeneralPhysics.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + + +#include "A01GeneralPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +A01GeneralPhysics::A01GeneralPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +A01GeneralPhysics::~A01GeneralPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +// Bosons +#include "G4ChargedGeantino.hh" +#include "G4Geantino.hh" + +void A01GeneralPhysics::ConstructParticle() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); +} + +void A01GeneralPhysics::ConstructProcess() +{ + // Add Decay Process + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (fDecayProcess.IsApplicable(*particle)) { + pmanager ->AddProcess(&fDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(&fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(&fDecayProcess, idxAtRest); + } + } +} + + diff --git a/examples/extended/analysis/A01/src/A01HadCalorimeter.cc b/examples/extended/analysis/A01/src/A01HadCalorimeter.cc new file mode 100644 index 0000000000..62f4cb693b --- /dev/null +++ b/examples/extended/analysis/A01/src/A01HadCalorimeter.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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: A01HadCalorimeter.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01HadCalorimeter.hh" +#include "A01HadCalorimeterHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4SDManager.hh" +#include "G4ios.hh" + +A01HadCalorimeter::A01HadCalorimeter(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="HadCalorimeterColl"); + HCID = -1; +} + +A01HadCalorimeter::~A01HadCalorimeter(){;} + +void A01HadCalorimeter::Initialize(G4HCofThisEvent*HCE) +{ + hitsCollection = new A01HadCalorimeterHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(hitsCollection); } + HCE->AddHitsCollection(HCID,hitsCollection); + + // fill calorimeter hits with zero energy deposition + for(int iColumn=0;iColumn<10;iColumn++) + for(int iRow=0;iRow<2;iRow++) + { + A01HadCalorimeterHit* aHit = new A01HadCalorimeterHit(); + hitsCollection->insert( aHit ); + } +} + +G4bool A01HadCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) return true; + + G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(preStepPoint->GetTouchable()); + G4VPhysicalVolume* theCellPhysical = theTouchable->GetVolume(2); + G4int rowNo = theCellPhysical->GetCopyNo(); + G4VPhysicalVolume* theColumnPhysical = theTouchable->GetVolume(3); + G4int columnNo = theColumnPhysical->GetCopyNo(); + G4int hitID = 2*columnNo+rowNo; + A01HadCalorimeterHit* aHit = (*hitsCollection)[hitID]; + + // check if it is first touch + if(aHit->GetColumnID()<0) + { + aHit->SetColumnID(columnNo); + aHit->SetRowID(rowNo); + G4int depth = theTouchable->GetHistory()->GetDepth(); + G4AffineTransform aTrans = theTouchable->GetHistory()->GetTransform(depth-2); + aTrans.Invert(); + aHit->SetRot(aTrans.NetRotation()); + aHit->SetPos(aTrans.NetTranslation()); + } + // add energy deposition + aHit->AddEdep(edep); + + return true; +} + +void A01HadCalorimeter::EndOfEvent(G4HCofThisEvent*HCE) +{;} + diff --git a/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc b/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc new file mode 100644 index 0000000000..281433d21a --- /dev/null +++ b/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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: A01HadCalorimeterHit.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01HadCalorimeterHit.hh" +#include "A01DetectorConstruction.hh" +#include "G4RunManager.hh" +#include "G4RotationMatrix.hh" +#include "G4Box.hh" +#include "G4VVisManager.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolume.hh" +#include "G4ios.hh" + +G4Allocator A01HadCalorimeterHitAllocator; + +A01HadCalorimeterHit::A01HadCalorimeterHit() +{ + columnID = -1; + rowID = -1; + edep = 0.; +} + +A01HadCalorimeterHit::A01HadCalorimeterHit(G4int iCol,G4int iRow) +{ + columnID = iCol; + rowID = iRow; + edep = 0.; +} + +A01HadCalorimeterHit::~A01HadCalorimeterHit() +{;} + +A01HadCalorimeterHit::A01HadCalorimeterHit(const A01HadCalorimeterHit &right) +{ + columnID = right.columnID; + rowID = right.rowID; + edep = right.edep; + pos = right.pos; + rot = right.rot; +} + +const A01HadCalorimeterHit& A01HadCalorimeterHit::operator=(const A01HadCalorimeterHit &right) +{ + columnID = right.columnID; + rowID = right.rowID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + return *this; +} + +int A01HadCalorimeterHit::operator==(const A01HadCalorimeterHit &right) const +{ + return (columnID==right.columnID&&rowID==right.rowID); +} + +void A01HadCalorimeterHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager&&(edep>0.)) + { + // Draw a calorimeter cell with depth propotional to the energy deposition + G4Transform3D trans(rot.inverse(),pos); + G4VisAttributes attribs; + G4Colour colour(1.,0.,0.); + attribs.SetColour(colour); + attribs.SetForceWireframe(false); + attribs.SetForceSolid(true); + G4Box box("dummy",15.*cm,15.*cm,1.*m*edep/(0.1*GeV)); + pVVisManager->Draw(box,attribs,trans); + } +} + +void A01HadCalorimeterHit::Print() +{ + G4cout << " Cell[" << rowID << ", " << columnID << "] " << edep/MeV << " (MeV) " << pos << G4endl; +} + + diff --git a/examples/extended/analysis/A01/src/A01HadronPhysics.cc b/examples/extended/analysis/A01/src/A01HadronPhysics.cc new file mode 100644 index 0000000000..dcc6bfcfcd --- /dev/null +++ b/examples/extended/analysis/A01/src/A01HadronPhysics.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: A01HadronPhysics.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + + +#include "A01HadronPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +A01HadronPhysics::A01HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +A01HadronPhysics::~A01HadronPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4PionZero.hh" +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" + +void A01HadronPhysics::ConstructParticle() +{ + // pions + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + + // K+/- + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); +} + + +#include "G4ProcessManager.hh" + +void A01HadronPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Pion Plus Physics + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + // add processes + // pManager->AddProcess(&fPiPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fPiPlusMultipleScattering); + // pManager->SetProcessOrdering(&fPiPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fPiPlusMultipleScattering, idxPostStep, 1); + + // Pion Minus Physics + pManager = G4PionMinus::PionMinus()->GetProcessManager(); + // add processes + // pManager->AddProcess(&fPiMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fPiMinusMultipleScattering); + // pManager->SetProcessOrdering(&fPiMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fPiMinusMultipleScattering, idxPostStep, 1); + + // K+ Physics + pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); + // add processes + // pManager->AddProcess(&fKaonPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fKaonPlusMultipleScattering); + // pManager->SetProcessOrdering(&fKaonPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fKaonPlusMultipleScattering, idxPostStep, 1); + + // K- Physics + pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + // add processes + // pManager->AddProcess(&fKaonMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fKaonMinusMultipleScattering); + // pManager->SetProcessOrdering(&fKaonMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fKaonMinusMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/analysis/A01/src/A01Hodoscope.cc b/examples/extended/analysis/A01/src/A01Hodoscope.cc new file mode 100644 index 0000000000..26e58eae07 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01Hodoscope.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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: A01Hodoscope.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01Hodoscope.hh" +#include "A01HodoscopeHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4SDManager.hh" +#include "G4ios.hh" + +A01Hodoscope::A01Hodoscope(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="hodoscopeColl"); + HCID = -1; +} + +A01Hodoscope::~A01Hodoscope(){;} + +void A01Hodoscope::Initialize(G4HCofThisEvent*HCE) +{ + hitsCollection = new A01HodoscopeHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(hitsCollection); } + HCE->AddHitsCollection(HCID,hitsCollection); +} + +G4bool A01Hodoscope::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) return true; + + G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(preStepPoint->GetTouchable()); + G4int copyNo = theTouchable->GetVolume()->GetCopyNo(); + G4double hitTime = preStepPoint->GetGlobalTime(); + + // check if this finger already has a hit + G4int ix = -1; + for(G4int i=0;ientries();i++) + { + if((*hitsCollection)[i]->GetID()==copyNo) + { + ix = i; + break; + } + } + // if it has, then take the earlier time + if(ix>=0) + { + if((*hitsCollection)[ix]->GetTime()>hitTime) + { (*hitsCollection)[ix]->SetTime(hitTime); } + } + else + // if not, create a new hit and set it to the collection + { + A01HodoscopeHit* aHit = new A01HodoscopeHit(copyNo,hitTime); + G4VPhysicalVolume* thePhysical = theTouchable->GetVolume(); + aHit->SetLogV(thePhysical->GetLogicalVolume()); + G4AffineTransform aTrans = theTouchable->GetHistory()->GetTopTransform(); + aTrans.Invert(); + aHit->SetRot(aTrans.NetRotation()); + aHit->SetPos(aTrans.NetTranslation()); + hitsCollection->insert( aHit ); + } + + return true; +} + +void A01Hodoscope::EndOfEvent(G4HCofThisEvent*HCE) +{;} + diff --git a/examples/extended/analysis/A01/src/A01HodoscopeHit.cc b/examples/extended/analysis/A01/src/A01HodoscopeHit.cc new file mode 100644 index 0000000000..3f62de5b9e --- /dev/null +++ b/examples/extended/analysis/A01/src/A01HodoscopeHit.cc @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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: A01HodoscopeHit.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01HodoscopeHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4ios.hh" + +G4Allocator A01HodoscopeHitAllocator; + +A01HodoscopeHit::A01HodoscopeHit(G4int i,G4double t) +{ + id = i; + time = t; + pLogV = 0; +} + +A01HodoscopeHit::~A01HodoscopeHit() +{;} + +A01HodoscopeHit::A01HodoscopeHit(const A01HodoscopeHit &right) +{ + id = right.id; + time = right.time; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; +} + +const A01HodoscopeHit& A01HodoscopeHit::operator=(const A01HodoscopeHit &right) +{ + id = right.id; + time = right.time; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; + return *this; +} + +int A01HodoscopeHit::operator==(const A01HodoscopeHit &right) const +{ + return 0; +} + +void A01HodoscopeHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Transform3D trans(rot.inverse(),pos); + G4VisAttributes attribs; + const G4VisAttributes* pVA = pLogV->GetVisAttributes(); + if(pVA) attribs = *pVA; + G4Colour colour(0.,1.,1.); + attribs.SetColour(colour); + attribs.SetForceWireframe(false); + attribs.SetForceSolid(true); + pVVisManager->Draw(*pLogV,attribs,trans); + } +} + +void A01HodoscopeHit::Print() +{ + G4cout << " Hodoscope[" << id << "] " << time/ns << " (nsec)" << G4endl; +} + + + diff --git a/examples/extended/analysis/A01/src/A01IonPhysics.cc b/examples/extended/analysis/A01/src/A01IonPhysics.cc new file mode 100644 index 0000000000..4abded4767 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01IonPhysics.cc @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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: A01IonPhysics.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01IonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +A01IonPhysics::A01IonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +A01IonPhysics::~A01IonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +// Nuclei +#include "G4IonConstructor.hh" + +void A01IonPhysics::ConstructParticle() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + + +#include "G4ProcessManager.hh" + + +void A01IonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + theElasticProcess.RegisterMe(theElasticModel); + + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fIonMultipleScattering); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fDeuteronModel = new G4LEDeuteronInelastic(); + fDeuteronProcess.RegisterMe(fDeuteronModel); + pManager->AddDiscreteProcess(&fDeuteronProcess); + + pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fDeuteronMultipleScattering); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); + + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fTritonModel = new G4LETritonInelastic(); + fTritonProcess.RegisterMe(fTritonModel); + pManager->AddDiscreteProcess(&fTritonProcess); + + pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fTritonMultipleScattering); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1); + + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fAlphaModel = new G4LEAlphaInelastic(); + fAlphaProcess.RegisterMe(fAlphaModel); + pManager->AddDiscreteProcess(&fAlphaProcess); + + pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fAlphaMultipleScattering); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); + + // He3 + pManager = G4He3::He3()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + + pManager->AddProcess(&fHe3MultipleScattering); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/analysis/A01/src/A01MagneticField.cc b/examples/extended/analysis/A01/src/A01MagneticField.cc new file mode 100644 index 0000000000..0ecabf9ae9 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01MagneticField.cc @@ -0,0 +1,50 @@ +// +// ******************************************************************** +// * 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: A01MagneticField.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01MagneticField.hh" +#include "A01MagneticFieldMessenger.hh" + +A01MagneticField::A01MagneticField() +{ + messenger = new A01MagneticFieldMessenger(this); + By = 1.0*tesla; + rmax_sq = sqr(1.*m); + ymax = 100.*cm; +} + +A01MagneticField::~A01MagneticField() +{ delete messenger; } + +void A01MagneticField::GetFieldValue(const double Point[3],double *Bfield) const +{ + Bfield[0] = 0.; + Bfield[2] = 0.; + if(abs(Point[2])SetGuidance("Field strength"); + fieldCmd->SetParameterName("field",true); + fieldCmd->SetDefaultValue(1.); + fieldCmd->SetDefaultUnit("tesla"); +} + +A01MagneticFieldMessenger::~A01MagneticFieldMessenger() +{ + delete fieldCmd; +} + +void A01MagneticFieldMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==fieldCmd ) + { target->SetField(fieldCmd->GetNewDoubleValue(newValue)); } +} + +G4String A01MagneticFieldMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + if( command==fieldCmd ) + { cv = fieldCmd->ConvertToString(target->GetField(),"tesla"); } + + return cv; +} + diff --git a/examples/extended/analysis/A01/src/A01MuonPhysics.cc b/examples/extended/analysis/A01/src/A01MuonPhysics.cc new file mode 100644 index 0000000000..64af6ef099 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01MuonPhysics.cc @@ -0,0 +1,126 @@ +// +// ******************************************************************** +// * 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: A01MuonPhysics.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + + +#include "A01MuonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +A01MuonPhysics::A01MuonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +A01MuonPhysics::~A01MuonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" +#include "G4NeutrinoTau.hh" +#include "G4AntiNeutrinoTau.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" + +void A01MuonPhysics::ConstructParticle() +{ + // Mu + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + + // Tau + G4TauMinus::TauMinusDefinition(); + G4TauPlus::TauPlusDefinition(); + G4NeutrinoTau::NeutrinoTauDefinition(); + G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); + +} + + +#include "G4ProcessManager.hh" + +void A01MuonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Muon Plus Physics + pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuPlusPairProduction); + + pManager->AddProcess(&fMuPlusMultipleScattering); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1); + + // Muon Minus Physics + pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuMinusPairProduction); + + pManager->AddProcess(&fMuMinusMultipleScattering); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1); + + // Tau Plus Physics + pManager = G4TauPlus::TauPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauPlusMultipleScattering); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1); + + // Tau Minus Physics + pManager = G4TauMinus::TauMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauMinusMultipleScattering); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/analysis/A01/src/A01PhysicsList.cc b/examples/extended/analysis/A01/src/A01PhysicsList.cc new file mode 100644 index 0000000000..347777d2de --- /dev/null +++ b/examples/extended/analysis/A01/src/A01PhysicsList.cc @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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: A01PhysicsList.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + + +#include "A01PhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "A01GeneralPhysics.hh" +#include "A01EMPhysics.hh" +#include "A01MuonPhysics.hh" +#include "A01HadronPhysics.hh" +#include "A01IonPhysics.hh" + +A01PhysicsList::A01PhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + defaultCutValue = 1.0*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new A01GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new A01EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new A01MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new A01HadronPhysics("hadron")); + + // Ion Physics +//////////////////////////////////////////// RegisterPhysics( new A01IonPhysics("ion")); + + +} + +A01PhysicsList::~A01PhysicsList() +{ +} + +void A01PhysicsList::SetCuts() +{ + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + SetCutsWithDefault(); +} + + + diff --git a/examples/extended/analysis/A01/src/A01PrimaryGeneratorAction.cc b/examples/extended/analysis/A01/src/A01PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..3917a36a1c --- /dev/null +++ b/examples/extended/analysis/A01/src/A01PrimaryGeneratorAction.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: A01PrimaryGeneratorAction.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01PrimaryGeneratorAction.hh" +#include "A01PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +A01PrimaryGeneratorAction::A01PrimaryGeneratorAction() +{ + momentum = 1000.*MeV; + sigmaMomentum = 50.*MeV; + sigmaAngle = 2.*deg; + randomizePrimary = true; + + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + //create a messenger for this class + gunMessenger = new A01PrimaryGeneratorMessenger(this); + + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + positron = particleTable->FindParticle(particleName="e+"); + muon = particleTable->FindParticle(particleName="mu+"); + pion = particleTable->FindParticle(particleName="pi+"); + kaon = particleTable->FindParticle(particleName="kaon+"); + proton = particleTable->FindParticle(particleName="proton"); + + // default particle kinematics + particleGun->SetParticlePosition(G4ThreeVector(0.,0.,-8.*m)); + particleGun->SetParticleDefinition(positron); +} + +A01PrimaryGeneratorAction::~A01PrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +void A01PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + G4ParticleDefinition* particle; + + if(randomizePrimary) + { + /////////////////////////////////////////////G4int i = (int)(5.*G4UniformRand()); + G4int i = (int)(2.*G4UniformRand()); + switch(i) + { + case 0: + particle = positron; + break; + case 1: + particle = muon; + break; + case 2: + particle = pion; + break; + case 3: + particle = kaon; + break; + default: + particle = proton; + break; + } + particleGun->SetParticleDefinition(particle); + } + else + { + particle = particleGun->GetParticleDefinition(); + } + + G4double pp = momentum + (G4UniformRand()-0.5)*sigmaMomentum; + G4double mass = particle->GetPDGMass(); + G4double Ekin = sqrt(pp*pp+mass*mass)-mass; + particleGun->SetParticleEnergy(Ekin); + + G4double angle = (G4UniformRand()-0.5)*sigmaAngle; + particleGun->SetParticleMomentumDirection(G4ThreeVector(sin(angle),0.,cos(angle))); + + particleGun->GeneratePrimaryVertex(anEvent); +} + diff --git a/examples/extended/analysis/A01/src/A01PrimaryGeneratorMessenger.cc b/examples/extended/analysis/A01/src/A01PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..d0a42de653 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01PrimaryGeneratorMessenger.cc @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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: A01PrimaryGeneratorMessenger.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// +#include "A01PrimaryGeneratorMessenger.hh" +#include "A01PrimaryGeneratorAction.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithABool.hh" +#include "G4ios.hh" + +A01PrimaryGeneratorMessenger::A01PrimaryGeneratorMessenger(A01PrimaryGeneratorAction * mpga) +:target(mpga) +{ + momentumCmd = new G4UIcmdWithADoubleAndUnit("/mydet/momentum",this); + momentumCmd->SetGuidance("Mean momentum of primaries"); + momentumCmd->SetParameterName("p",true); + momentumCmd->SetRange("p>=0."); + momentumCmd->SetDefaultValue(1.); + momentumCmd->SetDefaultUnit("GeV"); + + sigmaMomCmd = new G4UIcmdWithADoubleAndUnit("/mydet/sigmaMomentum",this); + sigmaMomCmd->SetGuidance("Sigma momentum of primaries"); + sigmaMomCmd->SetParameterName("p",true); + sigmaMomCmd->SetRange("p>=0."); + sigmaMomCmd->SetDefaultValue(1.); + sigmaMomCmd->SetDefaultUnit("GeV"); + + sigmaAngCmd = new G4UIcmdWithADoubleAndUnit("/mydet/sigmaAngle",this); + sigmaAngCmd->SetGuidance("sigma angle divergence of primaries"); + sigmaAngCmd->SetParameterName("t",true); + sigmaAngCmd->SetRange("t>=0."); + sigmaAngCmd->SetDefaultValue(1.); + sigmaAngCmd->SetDefaultUnit("deg"); + + randomCmd = new G4UIcmdWithABool("/mydet/randomizePrimary",this); + randomCmd->SetGuidance("Boolean flag for randomizing primary particle types."); + randomCmd->SetGuidance("In case this flag is false, you can select the primary particle"); + randomCmd->SetGuidance(" with /gun/particle command."); + randomCmd->SetParameterName("flg",true); + randomCmd->SetDefaultValue(true); +} + +A01PrimaryGeneratorMessenger::~A01PrimaryGeneratorMessenger() +{ + delete momentumCmd; + delete sigmaMomCmd; + delete sigmaAngCmd; + delete randomCmd; +} + +void A01PrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==momentumCmd ) + { target->SetMomentum(momentumCmd->GetNewDoubleValue(newValue)); } + if( command==sigmaMomCmd ) + { target->SetSigmaMomentum(sigmaMomCmd->GetNewDoubleValue(newValue)); } + if( command==sigmaAngCmd ) + { target->SetSigmaAngle(sigmaAngCmd->GetNewDoubleValue(newValue)); } + if( command==randomCmd ) + { target->SetRandomize(randomCmd->GetNewBoolValue(newValue)); } +} + +G4String A01PrimaryGeneratorMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + if( command==momentumCmd ) + { cv = momentumCmd->ConvertToString(target->GetMomentum(),"GeV"); } + if( command==sigmaMomCmd ) + { cv = sigmaMomCmd->ConvertToString(target->GetSigmaMomentum(),"GeV"); } + if( command==sigmaAngCmd ) + { cv = sigmaAngCmd->ConvertToString(target->GetSigmaAngle(),"deg"); } + if( command==randomCmd ) + { cv = randomCmd->ConvertToString(target->GetRandomize()); } + + return cv; +} + diff --git a/source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc b/examples/extended/analysis/A01/src/A01TrackingAction.cc similarity index 74% rename from source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc rename to examples/extended/analysis/A01/src/A01TrackingAction.cc index 9f9a99576b..b9b60aaa4f 100644 --- a/source/persistency/digits+hits/digits/src/G4PDCofThisEvent.cc +++ b/examples/extended/analysis/A01/src/A01TrackingAction.cc @@ -20,29 +20,26 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PDCofThisEvent.cc,v 1.4 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: A01TrackingAction.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- // -#include "G4PDCofThisEvent.hh" +#include "A01TrackingAction.hh" +#include "G4TrackingManager.hh" +#include "G4Track.hh" -G4PDCofThisEvent::G4PDCofThisEvent() -{ - DC.resize(10); -} +#include "A01Trajectory.hh" -G4PDCofThisEvent::~G4PDCofThisEvent() +A01TrackingAction::A01TrackingAction() {;} -void G4PDCofThisEvent::AddDigitsCollection(G4int DCID, - HepRef(G4PVDigitsCollection) aDC) +A01TrackingAction::~A01TrackingAction() +{;} + +void A01TrackingAction::PreUserTrackingAction(const G4Track* aTrack) { - if(DCID>=0) - { - if(DCID>=DC.size()) DC.resize(DCID+1); - DC[DCID] = aDC; - } + fpTrackingManager->SetStoreTrajectory(true); + fpTrackingManager->SetTrajectory(new A01Trajectory(aTrack)); } diff --git a/examples/extended/analysis/A01/src/A01Trajectory.cc b/examples/extended/analysis/A01/src/A01Trajectory.cc new file mode 100644 index 0000000000..1c091d299a --- /dev/null +++ b/examples/extended/analysis/A01/src/A01Trajectory.cc @@ -0,0 +1,174 @@ +// +// ******************************************************************** +// * 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: A01Trajectory.cc,v 1.4 2002/12/13 11:34:34 gunter Exp $ +// -------------------------------------------------------------- +// + +#include "A01Trajectory.hh" +#include "G4TrajectoryPoint.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleTypes.hh" +#include "G4ThreeVector.hh" +#include "G4Polyline.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4VVisManager.hh" + +G4Allocator myTrajectoryAllocator; + +A01Trajectory::A01Trajectory() +{ + fpParticleDefinition = 0; + ParticleName = ""; + PDGCharge = 0; + PDGEncoding = 0; + fTrackID = 0; + fParentID = 0; + positionRecord = 0; +} + +A01Trajectory::A01Trajectory(const G4Track* aTrack) +{ + fpParticleDefinition = aTrack->GetDefinition(); + ParticleName = fpParticleDefinition->GetParticleName(); + PDGCharge = fpParticleDefinition->GetPDGCharge(); + PDGEncoding = fpParticleDefinition->GetPDGEncoding(); + fTrackID = aTrack->GetTrackID(); + fParentID = aTrack->GetParentID(); + positionRecord = new A01TrajectoryPointContainer(); + positionRecord->push_back(new G4TrajectoryPoint(aTrack->GetPosition())); +} + +A01Trajectory::A01Trajectory(A01Trajectory & right) +{ + ParticleName = right.ParticleName; + fpParticleDefinition = right.fpParticleDefinition; + PDGCharge = right.PDGCharge; + PDGEncoding = right.PDGEncoding; + fTrackID = right.fTrackID; + fParentID = right.fParentID; + positionRecord = new A01TrajectoryPointContainer(); + for(int i=0;i<(int)right.positionRecord->size();i++) + { + G4TrajectoryPoint* rightPoint = (G4TrajectoryPoint*)((*(right.positionRecord))[i]); + positionRecord->push_back(new G4TrajectoryPoint(*rightPoint)); + } +} + +A01Trajectory::~A01Trajectory() +{ + size_t i; + for(i=0;isize();i++){ + delete (*positionRecord)[i]; + } + positionRecord->clear(); + + delete positionRecord; +} + +void A01Trajectory::ShowTrajectory() const +{ + G4cout << G4endl << "TrackID =" << fTrackID + << ":ParentID=" << fParentID << G4endl; + G4cout << "Particle name : " << ParticleName + << " Charge : " << PDGCharge << G4endl; + G4cout << " Current trajectory has " << positionRecord->size() + << " points." << G4endl; + + for( size_t i=0 ; i < positionRecord->size() ; i++){ + G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*positionRecord)[i]); + G4cout << "Point[" << i << "]" + << " Position= " << aTrajectoryPoint->GetPosition() << G4endl; + } +} + +void A01Trajectory::DrawTrajectory(G4int i_mode) const +{ + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + G4ThreeVector pos; + + G4Polyline pPolyline; + for (int i = 0; i < (int)positionRecord->size() ; i++) { + G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*positionRecord)[i]); + pos = aTrajectoryPoint->GetPosition(); + pPolyline.push_back( pos ); + } + + G4Colour colour(0.75,0.75,0.75); // LightGray + if(fpParticleDefinition==G4Gamma::GammaDefinition()) + colour = G4Colour(0.,1.,1.); // Cyan + else if(fpParticleDefinition==G4Electron::ElectronDefinition() + ||fpParticleDefinition==G4Positron::PositronDefinition()) + colour = G4Colour(1.,1.,0.); // Yellow + else if(fpParticleDefinition==G4MuonMinus::MuonMinusDefinition() + ||fpParticleDefinition==G4MuonPlus::MuonPlusDefinition()) + colour = G4Colour(1.,0.,1.); // Magenta + else if(fpParticleDefinition->GetParticleType()=="meson") + { + if(PDGCharge!=0.) + colour = G4Colour(1.,0.,0.); // Red + else + colour = G4Colour(0.5,0.,0.); // HalfRed + } + else if(fpParticleDefinition->GetParticleType()=="baryon") + { + if(PDGCharge!=0.) + colour = G4Colour(1.,0.78,0.); // Orange + else + colour = G4Colour(0.5,0.39,0.);// HalfOrange + } + + G4VisAttributes attribs(colour); + pPolyline.SetVisAttributes(attribs); + if(pVVisManager) pVVisManager->Draw(pPolyline); +} + +void A01Trajectory::AppendStep(const G4Step* aStep) +{ + positionRecord->push_back( new G4TrajectoryPoint(aStep->GetPostStepPoint()-> + GetPosition() )); +} + +G4ParticleDefinition* A01Trajectory::GetParticleDefinition() +{ + return (G4ParticleTable::GetParticleTable()->FindParticle(ParticleName)); +} + +void A01Trajectory::MergeTrajectory(G4VTrajectory* secondTrajectory) +{ + if(!secondTrajectory) return; + + A01Trajectory* seco = (A01Trajectory*)secondTrajectory; + G4int ent = seco->GetPointEntries(); + for(int i=1;ipush_back((*(seco->positionRecord))[i]); + } + delete (*seco->positionRecord)[0]; + seco->positionRecord->clear(); + +} + + diff --git a/examples/extended/analysis/A01/src/A01VisManager.cc b/examples/extended/analysis/A01/src/A01VisManager.cc new file mode 100644 index 0000000000..265a909cf3 --- /dev/null +++ b/examples/extended/analysis/A01/src/A01VisManager.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * 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.3 2002/12/13 11:34:34 gunter 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_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 + +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_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/extended/analysis/A01/src/DummyAnalysisFactory.cc b/examples/extended/analysis/A01/src/DummyAnalysisFactory.cc new file mode 100644 index 0000000000..338f88b0be --- /dev/null +++ b/examples/extended/analysis/A01/src/DummyAnalysisFactory.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include + +#ifndef G4ANALYSIS_USE +#include "G4ios.hh" +extern "C" { +AIDA::IAnalysisFactory* AIDA_createAnalysisFactory(); +} + +////////////////////////////////////////////////////////////////////////////// +AIDA::IAnalysisFactory* AIDA_createAnalysisFactory( +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + G4cout <<"Warning: Dummy analysis factory loaded" << G4endl; + return 0; +} +#endif diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.cc b/examples/extended/analysis/AnaEx01/AnaEx01.cc index da69771adc..897eae802e 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.cc +++ b/examples/extended/analysis/AnaEx01/AnaEx01.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01.cc,v 1.8 2001/11/16 14:35:10 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh index f0fa0a6290..20d5e0038d 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.5 2001/11/16 14:30:50 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh index abe1868fdc..1f6da4a24b 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh index df415efce0..9f63a3eda0 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh index e58385d042..af9efb74c6 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh index e03839f663..d0bff45e62 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh index a08b92589b..1cc0234e81 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.4 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh index 5deee37ca5..7b4089eeb4 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh index e1d708ca1d..b10c8386bb 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh index a731a3cfd5..d33f18f3c2 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh index b6e4d33200..2c4ae48231 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.4 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh index 58110417e9..399cf798c3 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.4 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh index c08c919754..9ad8e6ac0e 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.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh index 25f5cff1b4..0d54b9fee3 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01VisManager.hh,v 1.2 2001/07/11 09:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc index 78faa2e3ee..3f0c718894 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.11 2001/11/16 14:31:11 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 14th Septembre 2000. diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc index 4b0139f70e..9387668990 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.3 2001/11/16 14:31:11 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc index 876d8106ed..2485c00077 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.3 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc index 5ff2c6b6f5..6740a4a0fd 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.3 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc index 27ec898edf..1fc999e908 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01DetectorMessenger.cc,v 1.3 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: AnaEx01DetectorMessenger.cc,v 1.4 2002/12/05 00:24:22 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -49,52 +49,52 @@ AnaEx01DetectorMessenger::AnaEx01DetectorMessenger(AnaEx01DetectorConstruction * AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",false); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); GapMaterCmd = new G4UIcmdWithAString("/calor/setGapMat",this); GapMaterCmd->SetGuidance("Select Material of the Gap."); GapMaterCmd->SetParameterName("choice",false); - GapMaterCmd->AvailableForStates(Idle); + GapMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("Size",false); AbsThickCmd->SetRange("Size>=0."); AbsThickCmd->SetUnitCategory("Length"); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); GapThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setGapThick",this); GapThickCmd->SetGuidance("Set Thickness of the Gap"); GapThickCmd->SetParameterName("Size",false); GapThickCmd->SetRange("Size>=0."); GapThickCmd->SetUnitCategory("Length"); - GapThickCmd->AvailableForStates(Idle); + GapThickCmd->AvailableForStates(G4State_Idle); SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeYZ",this); SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); SizeYZCmd->SetParameterName("Size",false); SizeYZCmd->SetRange("Size>0."); SizeYZCmd->SetUnitCategory("Length"); - SizeYZCmd->AvailableForStates(Idle); + SizeYZCmd->AvailableForStates(G4State_Idle); NbLayersCmd = new G4UIcmdWithAnInteger("/calor/setNbOfLayers",this); NbLayersCmd->SetGuidance("Set number of layers."); NbLayersCmd->SetParameterName("NbLayers",false); NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); - NbLayersCmd->AvailableForStates(Idle); + NbLayersCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/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(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc index 84a105f6bc..f3ce67fcdc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc index 30cd5f1b4b..5445bd8554 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.3 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc index 97e489f293..7cda068542 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.3 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc index ab8f958d87..01e7cc015e 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01PrimaryGeneratorMessenger.cc,v 1.3 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: AnaEx01PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 00:24:22 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -45,7 +45,7 @@ AnaEx01PrimaryGeneratorMessenger::AnaEx01PrimaryGeneratorMessenger(AnaEx01Primar RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("on"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc index 0db26b0cef..dfd12204dc 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.5 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc index 555edb8717..ac67c1c315 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.5 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc index 86108fac7f..bceb2ba792 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.4 2001/11/16 14:31:13 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc old mode 100644 new mode 100755 index 6e89447bf7..21e4bfc0e2 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: AnaEx01VisManager.cc,v 1.4 2001/11/15 13:09:52 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: AnaEx01VisManager.cc,v 1.5 2002/11/13 20:59:45 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void AnaEx01VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/analysis/History b/examples/extended/analysis/History new file mode 100644 index 0000000000..1f04dc2f96 --- /dev/null +++ b/examples/extended/analysis/History @@ -0,0 +1,24 @@ +$Id: History,v 1.1 2002/11/27 19:17:54 asaim Exp $ +------------------------------------------------------------------- + + ========================================================= + A01 History File + ========================================================= + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +--------------------------------------------------------------------------- + +27th November 2002 Makoto Asai (analysisExample-V04-01-01) +- Tag for release 5.0 + +26th November 2002 Mark Donszelmann +- Fixed DrifChamberHit to have a reasonable screensize (2) rather than 0.1 +- Fixed minimum value for EmCalHit color to be visible (0.4). + +21st November 2002 Makoto Asai (analysisExample-V04-01-00) + +14th November 2002 Mark Donszelmann +- Added A01 example to repository diff --git a/examples/extended/biasing/B01/GNUmakefile b/examples/extended/biasing/B01/GNUmakefile index 1a37469734..2275b5a810 100644 --- a/examples/extended/biasing/B01/GNUmakefile +++ b/examples/extended/biasing/B01/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:08 dressel Exp $ +# $Id: GNUmakefile,v 1.7 2002/11/07 13:47:59 dressel Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -13,6 +13,8 @@ endif .PHONY: all all: lib bin -CPPFLAGS += + + +CPPFLAGS += include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/biasing/B01/exampleB01.cc b/examples/extended/biasing/B01/exampleB01.cc index f4cfdd8691..cdf873b782 100644 --- a/examples/extended/biasing/B01/exampleB01.cc +++ b/examples/extended/biasing/B01/exampleB01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB01.cc,v 1.10 2002/05/31 11:46:23 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: exampleB01.cc,v 1.16 2002/11/07 13:50:29 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -31,34 +31,44 @@ // -------------------------------------------------------------- // Comments // +// This example intends to show how to use importance sampling and scoring +// in the mass (tracking) geometry. +// A simple geometry consisting of a 180 cm high concrete cylinder +// divided into 18 slabs of 10cm each is created. +// Importance values are assigned to the 18 concrete slabs in the +// detector construction class for simplicity. +// Pairs of G4GeometryCell and importance values are stored in +// the importance store. +// The G4Scorer is used for the scoring. This is a top level +// class using the frame work provided for scoring. // + // -------------------------------------------------------------- -#include "g4std/set" -#include "g4std/iomanip" +#include "g4std/iostream" #include "G4VPhysicalVolume.hh" #include "G4RunManager.hh" +#include "G4UImanager.hh" #include "B01DetectorConstruction.hh" #include "B01PhysicsList.hh" #include "B01PrimaryGeneratorAction.hh" -// Files specific for scoring -#include "B01Scorer.hh" -#include "G4Sigma.hh" -#include "G4MassScoreSampler.hh" +// Files specific for biasing and scoring +#include "G4Scorer.hh" +#include "G4MassGeometrySampler.hh" +#include "G4IStore.hh" + +// a score table +#include "G4ScoreTable.hh" -// helper function for print out -G4std::string FillString(const G4std::string &name, char c, G4int n, G4bool back = true); int main(int argc, char **argv) { - G4std::ostream *myout = &G4cout; - G4int numberOfEvent = 1000; + G4int numberOfEvent = 100; - G4String random_status_out_file, random_status_in_file; G4long myseed = 345354; HepRandom::setTheSeed(myseed); @@ -66,102 +76,31 @@ int main(int argc, char **argv) G4RunManager *runManager = new G4RunManager; // create the detector --------------------------- - runManager->SetUserInitialization(new B01DetectorConstruction); + B01DetectorConstruction *detector = new B01DetectorConstruction(); + runManager->SetUserInitialization(detector); // --------------------------------------------------- runManager->SetUserInitialization(new B01PhysicsList); runManager->SetUserAction(new B01PrimaryGeneratorAction); runManager->Initialize(); - // create scorer and sampler to score neutrons in the detector - B01Scorer mScorer; - G4MassScoreSampler msm(mScorer, "neutron"); // to be don after - msm.Initialize(); // runManager->Initialize() + // the IStore is filled during detector construction + G4IStore &aIstore = *detector->GetIStore(); + + // create the importance and scoring sampler for biasing and scoring + // in the tracking world + + G4Scorer scorer; + + G4MassGeometrySampler mgs("neutron"); + mgs.PrepareScoring(&scorer); + mgs.PrepareImportanceSampling(&aIstore, 0); + mgs.Configure(); runManager->BeamOn(numberOfEvent); - // ======= after running ============================ - - // print all the numbers calculated from the scorer - *myout << "output mScorer, mass geometry, neutron" << G4endl; - *myout << mScorer << G4endl; - *myout << "----------------------------------------------" << G4endl; - - // print some exclusive numbers - - // head line - G4int FieldName = 25; - G4int FieldValue = 12; - G4std::string vname = FillString("Volume name", ' ', FieldName+1); - *myout << vname << '|'; - vname = FillString(" AV E/Track ", ' ', FieldValue+1, false); - *myout << vname << '|'; - vname = FillString(" sigma", ' ', FieldValue+1); - *myout << vname << '|'; - vname = FillString("Coll_Ent.Tr", ' ', FieldValue+1, false); - *myout << vname << '|'; - *myout << G4endl; - - - - const G4PMapPtkTallys &m = mScorer.GetMapPtkTallys(); - for (G4PMapPtkTallys::const_iterator mit = m.begin(); - mit != m.end(); mit++) { - G4PTouchableKey ptk = (*mit).first; // get a key identifying a volume - G4PMapNameTally mtallies = (*mit).second; // get tallies of the volume - G4String name(ptk.fVPhysiclaVolume->GetName()); // print volume name - G4int nEnteringTracks = 0; - G4double colli_EnteringTrack = 0; - G4double meanTrackEnergy = 0, sigmaTrackEnergy = 0; - for (G4PMapNameTally::iterator mt = mtallies.begin(); - mt != mtallies.end(); mt++) { - G4String tmp((*mt).first); - if (tmp == "HistorysEntering") { - nEnteringTracks = G4int((*mt).second.GetXsum()); - } - if (tmp == "EnergyEnteringHistory") { - meanTrackEnergy = (*mt).second.GetMean(); - sigmaTrackEnergy = (*mt).second.GetSigma(); - } - if (tmp == "Collisions") { - if (!nEnteringTracks) { - G4cout << "exampleB01: Error nEnteringTracks=0" < 0) { - if (back) { - fname = name; - fname += G4std::string(k,c); - } - else { - fname = G4std::string(k,c); - fname += name; - } - } - else { - fname = name; - } - return fname; -} diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out deleted file mode 100644 index 3f71a35aac..0000000000 --- a/examples/extended/biasing/B01/exampleB01.out +++ /dev/null @@ -1,247 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) - Copyright : Geant4 Collaboration -********************************************** - -phot: Total cross sections from Sandia parametrisation. -B01PhysicsList::SetCuts:CutLength : 1 (mm) - -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: 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: MScoreProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MScoreProcess - Transportation -DoIt Vector: - Transportation - MScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -output mScorer, mass geometry, neutron -Volume name = worldCylinder_phys, Replica number = -1 -HistorysEntering -entries : 331 -Sum(w) : 331 -Sum(w*x) : 331 -Sum(w*x*x) : 331 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 331 -Sum(x^2) : 331 -EnergyEnteringHistory -entries : 331 -Sum(w) : 331 -Sum(w*x) : 2868.82 -Sum(w*x*x) : 26144.9 -mean=Sum(w*x) / Sum(w) : 8.66714 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.96678 -Sum(x) : 2868.82 -Sum(x^2) : 26144.9 -Volume name = cell: 02, shield, Replica number = 0 -HistorysEntering -entries : 1066 -Sum(w) : 1066 -Sum(w*x) : 1066 -Sum(w*x*x) : 1066 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1066 -Sum(x^2) : 1066 -EnergyEnteringHistory -entries : 1066 -Sum(w) : 1066 -Sum(w*x) : 10503.1 -Sum(w*x*x) : 104013 -mean=Sum(w*x) / Sum(w) : 9.85277 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0.704593 -Sum(x) : 10503.1 -Sum(x^2) : 104013 -Collisions -entries : 1274 -Sum(w) : 1274 -Sum(w*x) : 1274 -Sum(w*x*x) : 1274 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1274 -Sum(x^2) : 1274 -Volume name = cell: 03, shield, Replica number = 0 -HistorysEntering -entries : 665 -Sum(w) : 665 -Sum(w*x) : 665 -Sum(w*x*x) : 665 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 665 -Sum(x^2) : 665 -EnergyEnteringHistory -entries : 665 -Sum(w) : 665 -Sum(w*x) : 6401.76 -Sum(w*x*x) : 62732.9 -mean=Sum(w*x) / Sum(w) : 9.62671 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.28905 -Sum(x) : 6401.76 -Sum(x^2) : 62732.9 -Collisions -entries : 908 -Sum(w) : 908 -Sum(w*x) : 908 -Sum(w*x*x) : 908 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 908 -Sum(x^2) : 908 -Volume name = cell: 04, shield, Replica number = 0 -HistorysEntering -entries : 376 -Sum(w) : 376 -Sum(w*x) : 376 -Sum(w*x*x) : 376 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 376 -Sum(x^2) : 376 -EnergyEnteringHistory -entries : 376 -Sum(w) : 376 -Sum(w*x) : 3528.31 -Sum(w*x*x) : 34285 -mean=Sum(w*x) / Sum(w) : 9.3838 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.76852 -Sum(x) : 3528.31 -Sum(x^2) : 34285 -Collisions -entries : 522 -Sum(w) : 522 -Sum(w*x) : 522 -Sum(w*x*x) : 522 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 522 -Sum(x^2) : 522 - ----------------------------------------------- -Volume name | AV E/Track | sigma | Coll_Ent.Tr| -worldCylinder_phys....... | 8.66714 | 1.96678 | 0 | -cell: 02, shield......... | 9.85277 | 0.704593 | 1.19512 | -cell: 03, shield......... | 9.62671 | 1.28905 | 1.36541 | -cell: 04, shield......... | 9.3838 | 1.76852 | 1.3883 | -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: MScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MScoreProcess - Transportation -DoIt Vector: - Transportation - MScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -WARNING - Attempt to delete the physical volume store while geometry closed ! -WARNING - Attempt to delete the logical volume store while geometry closed ! -WARNING - Attempt to delete the solid store while geometry closed ! diff --git a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh index cd4450dbf9..bb1eb2e9d0 100644 --- a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh +++ b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh @@ -21,17 +21,19 @@ // ******************************************************************** // // -// $Id: B01DetectorConstruction.hh,v 1.2 2002/04/19 10:54:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B01DetectorConstruction.hh,v 1.5 2002/11/07 13:47:59 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef B01DetectorConstruction_hh #define B01DetectorConstruction_hh B01DetectorConstruction_hh -class G4VPhysicalVolume; - +#include "globals.hh" #include "G4VUserDetectorConstruction.hh" +class G4VPhysicalVolume; +class G4IStore; + class B01DetectorConstruction : public G4VUserDetectorConstruction { public: @@ -39,9 +41,13 @@ public: ~B01DetectorConstruction(); G4VPhysicalVolume* Construct(); - G4VPhysicalVolume* GetWorldVolume(){return fWorldVolume;} + G4IStore* GetIStore(); + + G4String GetCellName(G4int i); + + private: - G4VPhysicalVolume* fWorldVolume; + G4IStore *fIStore; }; #endif diff --git a/examples/extended/biasing/B01/include/B01PhysicsList.hh b/examples/extended/biasing/B01/include/B01PhysicsList.hh index f52a0a508a..0955d708c0 100644 --- a/examples/extended/biasing/B01/include/B01PhysicsList.hh +++ b/examples/extended/biasing/B01/include/B01PhysicsList.hh @@ -21,10 +21,6 @@ // ******************************************************************** // // -// $Id: B01PhysicsList.hh,v 1.2 2002/04/19 10:54:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - #ifndef B01PhysicsList_h #define B01PhysicsList_h 1 @@ -65,3 +61,6 @@ class B01PhysicsList: public G4VUserPhysicsList }; #endif + + + diff --git a/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh b/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh index 8658f52283..ef01d5fe54 100644 --- a/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh +++ b/examples/extended/biasing/B01/include/B01PrimaryGeneratorAction.hh @@ -21,9 +21,6 @@ // ******************************************************************** // // -// $Id: B01PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// #ifndef B01PrimaryGeneratorAction_hh #define B01PrimaryGeneratorAction_hh B01PrimaryGeneratorAction_hh @@ -47,3 +44,5 @@ class B01PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction }; #endif + + diff --git a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc index fd97fb0339..c589ca5405 100644 --- a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc +++ b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc @@ -21,10 +21,13 @@ // ******************************************************************** // // -// $Id: B01DetectorConstruction.cc,v 1.4 2002/04/19 10:54:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B01DetectorConstruction.cc,v 1.7 2002/11/22 17:47:57 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // +#include "g4std/strstream" +#include "globals.hh" + #include "B01DetectorConstruction.hh" #include "G4Material.hh" @@ -35,22 +38,26 @@ #include "G4PVPlacement.hh" #include "G4VisAttributes.hh" #include "G4Colour.hh" -#include "g4std/strstream" #include "PhysicalConstants.h" -#include "globals.hh" +// for importance biasing +#include "G4IStore.hh" B01DetectorConstruction::B01DetectorConstruction() - : fWorldVolume(0) + : fIStore(0) {;} B01DetectorConstruction::~B01DetectorConstruction() {;} +G4IStore* B01DetectorConstruction::GetIStore() +{ + if (!fIStore) G4Exception("B01DetectorConstruction::fIStore empty!"); + return fIStore; +} + G4VPhysicalVolume* B01DetectorConstruction::Construct() { - char line[255]; - G4double pos_x; G4double pos_y; G4double pos_z; @@ -84,7 +91,6 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() A = 28.09*g/mole; G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - A = 39.1*g/mole; G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); @@ -113,21 +119,20 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() Concrete->AddElement(elCa , fractionmass= 0.044); Concrete->AddElement(elFe , fractionmass= 0.014); Concrete->AddElement(elC , fractionmass= 0.001); - - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - G4Material *WorldMaterial = Galactic; + + + + + + + + + + + + + ///////////////////////////// // world cylinder volume @@ -136,40 +141,36 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() // world solid G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; + G4double outerRadiusCylinder = 101*cm; // dont't have scoring + // cells coinside eith world volume boundary + G4double hightCylinder = 105*cm; G4double startAngleCylinder = 0*deg; G4double spanningAngleCylinder = 360*deg; G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); + innerRadiusCylinder, + outerRadiusCylinder, + hightCylinder, + startAngleCylinder, + spanningAngleCylinder); // logical world G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); + new G4LogicalVolume(worldCylinder, Galactic, "worldCylinder_log"); + + name = "shieldWorld"; + G4VPhysicalVolume *pWorldVolume = new + G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, + name, 0, false, 0); - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - + G4std::vector< G4VPhysicalVolume * > physvolumes; + physvolumes.push_back(pWorldVolume); - // physical world - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - /////////////////////////////////////////////// - // shield cylinder for (cells 2-4) - //////////////////////////////////////////////// + // creating 18 slobs of 10 cm thick concrete G4double innerRadiusShield = 0*cm; G4double outerRadiusShield = 100*cm; @@ -178,40 +179,117 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() G4double spanningAngleShield = 360*deg; G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); // logical shield G4LogicalVolume *aShield_log = new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); + G4VisAttributes* pShieldVis = new + G4VisAttributes(G4Colour(0.0,0.0,1.0)); + pShieldVis->SetForceSolid(true); + aShield_log->SetVisAttributes(pShieldVis); // physical shields - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) - { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, false, 0); + G4int i; + G4double startz = -85*cm; + for (i=1; i<=18; i++) { + name = GetCellName(i); + + G4double pos_x = 0*cm; + G4double pos_y = 0*cm; + G4double pos_z = startz + (i-1) * (2*hightShield); + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aShield_log, + name, + worldCylinder_log, + false, + 0); + physvolumes.push_back(pvol); } + // filling the rest of the world volumr behind the concrete with + // another slob which should get the same importance value as the + // last slob + innerRadiusShield = 0*cm; + outerRadiusShield = 100*cm; + hightShield = 7.5*cm; + startAngleShield = 0*deg; + spanningAngleShield = 360*deg; - fWorldVolume = worldCylinder_phys; - return worldCylinder_phys; + G4Tubs *aRest = new G4Tubs("Rest", + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); + + G4LogicalVolume *aRest_log = + new G4LogicalVolume(aRest, Galactic, "aRest_log"); + name = "rest"; + + pos_x = 0*cm; + pos_y = 0*cm; + pos_z = 97.5*cm; + G4VPhysicalVolume *pvol_rest = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aRest_log, + name, + worldCylinder_log, + false, + 0); + + + // creating and filling the importance store + + fIStore = new G4IStore(*pWorldVolume); + + // for the world volume repnum is -1 ! + G4int n = 0; + G4double imp =1; + for (G4std::vector::iterator it = + physvolumes.begin(); + it != physvolumes.end(); it++) + { + imp = pow(2., n++); + G4cout << "Going to assign importance: " << imp << ", to volume: " + << (*it)->GetName() << G4endl; + if (*it == pWorldVolume) + { + // repnum -1 + fIStore->AddImportanceGeometryCell(imp, **it, -1); + } + fIStore->AddImportanceGeometryCell(imp, **it); + } + + // the remaining part pf the geometry (rest) gets the same + // importance as the last conrete cell + fIStore->AddImportanceGeometryCell(imp, *pvol_rest); + + + return pWorldVolume; +} + + + +G4String B01DetectorConstruction::GetCellName(G4int i) { + char st[200]; + G4std::ostrstream os(st,200); + os << "cell_"; + if (i<10) { + os << "0"; + } + os << i + << '\0'; + G4String name(st); + return name; } diff --git a/examples/extended/biasing/B01/src/B01PhysicsList.cc b/examples/extended/biasing/B01/src/B01PhysicsList.cc index e9e45fe000..e039dcdba1 100644 --- a/examples/extended/biasing/B01/src/B01PhysicsList.cc +++ b/examples/extended/biasing/B01/src/B01PhysicsList.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: B01PhysicsList.cc,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B01PhysicsList.cc,v 1.4 2002/11/07 13:48:02 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" #include "g4std/iomanip" #include "B01PhysicsList.hh" + #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" @@ -44,7 +45,7 @@ #include "G4Material.hh" #include "G4MaterialTable.hh" -B01PhysicsList::B01PhysicsList() : G4VUserPhysicsList() +B01PhysicsList::B01PhysicsList(): G4VUserPhysicsList() { SetVerboseLevel(1); } diff --git a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc index fd1e7382f0..d43bb3f583 100644 --- a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B01PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:42 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B01PrimaryGeneratorAction.cc,v 1.7 2002/11/07 13:48:02 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" @@ -40,7 +40,7 @@ B01PrimaryGeneratorAction::B01PrimaryGeneratorAction() particleGun = new G4ParticleGun(n_particle); particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); + particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -90.0005*cm)); particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); } diff --git a/examples/extended/biasing/B02/B02plot.py b/examples/extended/biasing/B02/B02plot.py new file mode 100644 index 0000000000..cbfc29fa8e --- /dev/null +++ b/examples/extended/biasing/B02/B02plot.py @@ -0,0 +1,7 @@ +# This script may be executed from a lizard session to display +# the histogram in b02.hbook. To create the histogram and the file +# b02.hbook run exampleB02 first. + +tree = tf.create ("b02.hbook", "hbook",1,0) +h = tree.findH1D("10") +hplot(h) diff --git a/examples/extended/biasing/B02/GNUmakefile b/examples/extended/biasing/B02/GNUmakefile index d66a76bc20..430bd17ee0 100644 --- a/examples/extended/biasing/B02/GNUmakefile +++ b/examples/extended/biasing/B02/GNUmakefile @@ -1,8 +1,15 @@ -# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:08 dressel Exp $ +# $Id: GNUmakefile,v 1.7 2002/11/19 15:03:58 mdressel Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- + +# this GNUmakefile shows how to use the example together with Anaphe +# you may also chose another AIDA compliant analysis package. +# +# The environment variable ANAPHETOP has to be setup. See ../README +# + name := exampleB02 G4TARGET := $(name) G4EXLIB := true @@ -13,6 +20,15 @@ endif .PHONY: all all: lib bin -CPPFLAGS += + + +# set this variable to your Anaphe instalation. +ANAPHE_SCRIPTS_PATH:=share/LHCXX/5.0.1/scripts + +CPPFLAGS += +#LDFLAGS += -L/usr/local/lib include $(G4INSTALL)/config/binmake.gmk + +CPPFLAGS += `$(ANAPHETOP)/$(ANAPHE_SCRIPTS_PATH)/aida-config -i` +LDFLAGS += `$(ANAPHETOP)/$(ANAPHE_SCRIPTS_PATH)/aida-config -l` diff --git a/examples/extended/biasing/B02/exampleB02.cc b/examples/extended/biasing/B02/exampleB02.cc index 537f3e900a..46a2fb299d 100644 --- a/examples/extended/biasing/B02/exampleB02.cc +++ b/examples/extended/biasing/B02/exampleB02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB02.cc,v 1.9 2002/05/31 11:46:23 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: exampleB02.cc,v 1.13 2002/11/13 15:10:27 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -31,140 +31,159 @@ // -------------------------------------------------------------- // Comments // +// This example intends to show how to use both importance sampling and a +// customized scoring making use of the scoring framework +// in a parallel geometry. // +// A simple geometry consisting of a 180 cm high concrete cylinder +// is constructed in the mass geometry. +// A geometry is constructed in the parallel geometry +// in order to assign importance values to slabs +// of width 10cm and for scoring. The parallel world volume should +// overlap the mass world volume and the radii of the slabs is larger +// than the radius of the concrete cylinder in the mass geometry. +// Pairs of G4GeometryCell and importance values are stored in +// the importance store. +// The scoring uses the G4CellSCorer and one customized scorer for +// the last slab. +// +// + // -------------------------------------------------------------- -#include "g4std/set" -#include "g4std/iomanip" +#include "g4std/iostream" #include "G4VPhysicalVolume.hh" #include "G4RunManager.hh" +#include "G4UImanager.hh" #include "B02DetectorConstruction.hh" #include "B02PhysicsList.hh" #include "B02PrimaryGeneratorAction.hh" -#include "B02ScoringDetectorConstruction.hh" +// construction for the parallel geometry +#include "B02ImportanceDetectorConstruction.hh" + +// Files specific for biasing and scoring +#include "G4Scorer.hh" +#include "G4ParallelGeometrySampler.hh" +#include "G4IStore.hh" + +// customized scorer and store +#include "B02CellScorer.hh" +#include "B02CellScorerStore.hh" + +// a score table +#include "G4ScoreTable.hh" + +// AIDA stuff + +#include "AIDA/IAnalysisFactory.h" +#include "AIDA/ITree.h" +#include "AIDA/ITreeFactory.h" +#include "AIDA/IHistogram1D.h" +#include "AIDA/IHistogramFactory.h" -// Files specific for scoring -#include "B02Scorer.hh" -#include "G4Sigma.hh" -#include "G4ParallelScoreSampler.hh" -// helper function for print out -G4std::string FillString(const G4std::string &name, char c, G4int n, G4bool back = true); int main(int argc, char **argv) { - G4std::ostream *myout = &G4cout; - G4int numberOfEvent = 1000; + G4int numberOfEvent = 100; - G4String random_status_out_file, random_status_in_file; G4long myseed = 345354; HepRandom::setTheSeed(myseed); G4RunManager *runManager = new G4RunManager; - // create the "tracking" detector ----------------- - runManager->SetUserInitialization(new B02DetectorConstruction); + // create the detector --------------------------- + B02DetectorConstruction *detector = new B02DetectorConstruction(); + runManager->SetUserInitialization(detector); // --------------------------------------------------- runManager->SetUserInitialization(new B02PhysicsList); runManager->SetUserAction(new B02PrimaryGeneratorAction); runManager->Initialize(); - // create the detector for scoring - B02ScoringDetectorConstruction scoringdetector; + + // create a parallel detector + B02ImportanceDetectorConstruction *pdet = + new B02ImportanceDetectorConstruction; + + // create an importance + G4IStore aIstore(pdet->GetWorldVolume()); + // create a geometry cell for the world volume replpicanumber is -1! + G4GeometryCell gWorldVolumeCell(pdet->GetWorldVolume(), -1); + // set world volume importance to 1 + aIstore.AddImportanceGeometryCell(1, gWorldVolumeCell); + + // create a customized cell scorer store + B02CellScorerStore b02store; + + // set importance values and create scorers + G4int cell(1); + for (cell=1; cell<=18; cell++) { + G4GeometryCell gCell = pdet->GetGeometryCell(cell); + G4double imp = pow(2,cell-1); + aIstore.AddImportanceGeometryCell(imp, gCell); + // adding the standard G4CellScorer for 17 concrete cells + if (cell<18) { + b02store.AddG4CellScorer(gCell); + } + } + + // create a histogram for a special scorer for the last cell + AIDA::IAnalysisFactory *af = AIDA_createAnalysisFactory(); + AIDA::ITreeFactory *tf = af->createTreeFactory(); + AIDA::ITree *tree = tf->create("b02.hbook", "hbook",false,true); + AIDA::IHistogramFactory *hf = af->createHistogramFactory( *tree ); + AIDA::IHistogram1D *h = + hf->createHistogram1D("10","w*sl vs. e", 30, 0., 20*MeV); + // create a special scorer for the last cell + B02CellScorer b02scorer(h); - // create scorer and sampler to score neutrons in the "scoring" detector - B02Scorer pScorer; - G4ParallelScoreSampler pmgr(*(scoringdetector.Construct()), - "neutron", pScorer); - pmgr.Initialize(); + + + + // creating the geometry cell and add both to the store + G4GeometryCell gCell = pdet->GetGeometryCell(18); + b02store.AddB02CellScorer(&b02scorer, gCell); + + // create importance geometry cell pair for the "rest"cell + // with the same importance as the last concrete cell + gCell = pdet->GetGeometryCell(19); + G4double imp = pow(2,18); + aIstore.AddImportanceGeometryCell(imp, gCell); + + + // create the importance and scoring sampler for biasing and scoring + // in the parallel world + + G4CellStoreScorer scorer(b02store); + + G4ParallelGeometrySampler mgs(pdet->GetWorldVolume(), + "neutron"); + mgs.PrepareScoring(&scorer); + mgs.PrepareImportanceSampling(&aIstore, 0); + mgs.Configure(); runManager->BeamOn(numberOfEvent); - // ======= after running ============================ + // print a table of the scores + G4ScoreTable sp(&aIstore); + sp.Print(b02store.GetMapGeometryCellCellScorer(), myout); - // print all the numbers calculated from the scorer - *myout << "output pScorer, scoring detector, neutron" << G4endl; - *myout << pScorer << G4endl; - *myout << "----------------------------------------------" << G4endl; - // print some exclusive numbers + tree->commit(); + tree->close(); - // head line - G4int FieldName = 25; - G4int FieldValue = 12; - G4std::string vname = FillString("Volume name", ' ', FieldName+1); - *myout << vname << '|'; - vname = FillString(" AV E/Track ", ' ', FieldValue+1, false); - *myout << vname << '|'; - vname = FillString(" sigma", ' ', FieldValue+1); - *myout << vname << '|'; - vname = FillString("Coll_Ent.Tr", ' ', FieldValue+1, false); - *myout << vname << '|'; - *myout << G4endl; + delete af; + delete tf; + delete tree; - const G4PMapPtkTallys &m = pScorer.GetMapPtkTallys(); - for (G4PMapPtkTallys::const_iterator mit = m.begin(); - mit != m.end(); mit++) { - G4PTouchableKey ptk = (*mit).first; // get a key identifying a volume - G4PMapNameTally mtallies = (*mit).second; // get tallies of the volume - G4String name(ptk.fVPhysiclaVolume->GetName()); // print volume name - G4int nEnteringTracks = 0; - G4double colli_EnteringTrack = 0; - G4double meanTrackEnergy = 0, sigmaTrackEnergy = 0; - for (G4PMapNameTally::iterator mt = mtallies.begin(); - mt != mtallies.end(); mt++) { - G4String tmp((*mt).first); - if (tmp == "HistorysEntering") { - nEnteringTracks = G4int((*mt).second.GetXsum()); - } - if (tmp == "EnergyEnteringHistory") { - meanTrackEnergy = (*mt).second.GetMean(); - sigmaTrackEnergy = (*mt).second.GetSigma(); - } - if (tmp == "Collisions") { - if (!nEnteringTracks) { - G4cout << "exampleB01: Error nEnteringTracks=0" < 0) { - if (back) { - fname = name; - fname += G4std::string(k,c); - } - else { - fname = G4std::string(k,c); - fname += name; - } - } - else { - fname = name; - } - return fname; -} + + diff --git a/examples/extended/biasing/B02/exampleB02.out b/examples/extended/biasing/B02/exampleB02.out index d31f3665b1..2304392121 100644 --- a/examples/extended/biasing/B02/exampleB02.out +++ b/examples/extended/biasing/B02/exampleB02.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/biasing/B02/include/B02CellScorer.hh b/examples/extended/biasing/B02/include/B02CellScorer.hh new file mode 100644 index 0000000000..2cc7346506 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02CellScorer.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: B02CellScorer.hh,v 1.1 2002/11/08 14:52:16 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class B02CellScorer +// +// Class description: +// +// This class is an example how to build a customized cell scorer +// derived from G4VCellScorer that also uses the G4CellScorer. +// +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef B02CellScorer_hh +#define B02CellScorer_hh B02CellScorer_hh + +#include "G4VCellScorer.hh" +#include "G4CellScoreComposer.hh" +#include "G4CellScorer.hh" + +#include "g4std/vector" + +#include "AIDA/IHistogram1D.h" + +class B02CellScorer : public G4VCellScorer { +public: + B02CellScorer(AIDA::IHistogram1D *h); + virtual ~B02CellScorer(); + virtual void ScoreAnExitingStep(const G4Step &aStep, + const G4GeometryCell &gCell); + virtual void ScoreAnEnteringStep(const G4Step &aStep, + const G4GeometryCell &gCell); + virtual void ScoreAnInVolumeStep(const G4Step &aStep, + const G4GeometryCell &gCell); + + G4CellScorer &GetG4CellScorer(){ + return fG4CellScorer; + } +private: + void FillHisto(const G4Step &aStep); + + G4CellScorer fG4CellScorer; + AIDA::IHistogram1D *fHisto; +}; + + + +#endif diff --git a/source/processes/transportation/include/G4MassImportanceScoreSampler.hh b/examples/extended/biasing/B02/include/B02CellScorerStore.hh similarity index 52% rename from source/processes/transportation/include/G4MassImportanceScoreSampler.hh rename to examples/extended/biasing/B02/include/B02CellScorerStore.hh index 761de871aa..949eefcd10 100644 --- a/source/processes/transportation/include/G4MassImportanceScoreSampler.hh +++ b/examples/extended/biasing/B02/include/B02CellScorerStore.hh @@ -21,65 +21,60 @@ // ******************************************************************** // // -// $Id: G4MassImportanceScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02CellScorerStore.hh,v 1.1 2002/11/08 14:52:16 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4MassImportanceScoreSampler +// Class B02CellScorerStore // // Class description: // -// A user should use this class to set up importance sampling and scoring -// in the "mass" geometry. -// The user must create an object of this kind and initialise it. - - +// This class is a cell customized cell scorer store. +// Nevertheless the standard G4CellScorer may be created with this class +// simular to the G4CellScorerStore. In addition this class +// stores B02CellScorer pointers. +// This class delivers a map with the G4CellScorer objects +// to be printed with the G4ScorerTable class. +// // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4MassImportanceScoreSampler_hh -#define G4MassImportanceScoreSampler_hh G4MassImportanceScoreSampler_hh + +#ifndef B02CellScorerStore_hh +#define B02CellScorerStore_hh B02CellScorerStore_hh + +#include "g4std/map" +#include "G4GeometryCell.hh" +#include "G4GeometryCellComp.hh" #include "globals.hh" -#include "G4VSampler.hh" +#include "G4VCellScorerStore.hh" -class G4VIStore; -class G4VPScorer; -class G4VImportanceAlgorithm; -class G4MassImportanceSampler; -class G4MassScoreSampler; +class G4CellScorer; +class B02CellScorer; +class IHistogram1D; -class G4MassImportanceScoreSampler : public G4VSampler -{ +typedef G4std::map G4MapGeometryCellCellScorer; -public: // with description +typedef G4std::map B02MapGeometryCellB02CellScorer; - G4MassImportanceScoreSampler(G4VIStore &aIstore, - G4VPScorer &ascorer, - const G4String &particlename, - const G4VImportanceAlgorithm - *algorithm = 0); - // if *algorithm = 0: use the G4ImportanceAlgorithm - // else : use a customised importance algorithm derived from - // G4VImportanceAlgorithm +class B02CellScorerStore : public G4VCellScorerStore { +public: + B02CellScorerStore(); + virtual ~B02CellScorerStore(){} + virtual G4VCellScorer *GetCellScore(const G4GeometryCell &gCell); - ~G4MassImportanceScoreSampler(); - // delete G4MassScoreSampler and G4MassImportanceSampler if created - - void Initialize(); - // the G4MassImportanceScoreSampler has to be initialised after - // the initialisation of the G4RunManager ! + G4CellScorer *AddG4CellScorer(const G4GeometryCell &gCell); + const G4MapGeometryCellCellScorer &GetMapGeometryCellCellScorer() ; + void AddB02CellScorer(B02CellScorer *b02cellScorer, + const G4GeometryCell &gCell); + const B02MapGeometryCellB02CellScorer &GetMapGeometryCellB02CellScorer() const ; + private: + G4MapGeometryCellCellScorer fMapGeometryCellCellScorer; + B02MapGeometryCellB02CellScorer fMapGeometryCellB02CellScorer; - G4MassImportanceScoreSampler(const G4MassImportanceScoreSampler &); - G4MassImportanceScoreSampler & - operator=(const G4MassImportanceScoreSampler &); - -private: - - G4MassImportanceSampler *fMassImportanceSampler; - G4MassScoreSampler *fMassScoreSampler; }; #endif diff --git a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh index 73b47c89d4..b8410c9956 100644 --- a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh @@ -21,17 +21,19 @@ // ******************************************************************** // // -// $Id: B02DetectorConstruction.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02DetectorConstruction.hh,v 1.3 2002/11/08 14:47:42 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef B02DetectorConstruction_hh #define B02DetectorConstruction_hh B02DetectorConstruction_hh -class G4VPhysicalVolume; - +#include "globals.hh" #include "G4VUserDetectorConstruction.hh" +class G4VPhysicalVolume; +class G4IStore; + class B02DetectorConstruction : public G4VUserDetectorConstruction { public: @@ -39,9 +41,7 @@ public: ~B02DetectorConstruction(); G4VPhysicalVolume* Construct(); - G4VPhysicalVolume* GetWorldVolume(){return fWorldVolume;} -private: - G4VPhysicalVolume* fWorldVolume; + }; #endif diff --git a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh new file mode 100644 index 0000000000..45536f4ec0 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.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: B02ImportanceDetectorConstruction.hh,v 1.1 2002/11/08 14:52:16 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + +#ifndef B02ImportanceDetectorConstruction_hh +#define B02ImportanceDetectorConstruction_hh B02ImportanceDetectorConstruction_hh + +#include "globals.hh" +#include "g4std/map" +#include "G4GeometryCell.hh" +#include "B02PVolumeStore.hh" + +class G4VPhysicalVolume; + + + +class B02ImportanceDetectorConstruction +{ +public: + B02ImportanceDetectorConstruction(); + ~B02ImportanceDetectorConstruction(); + + const G4VPhysicalVolume &GetPhysicalVolumeByName(const G4String& name) const; + G4VPhysicalVolume &GetWorldVolume() const; + G4String ListPhysNamesAsG4String(); + G4String GetCellName(G4int i); + G4GeometryCell GetGeometryCell(G4int i); + +private: + void Construct(); + B02PVolumeStore fPVolumeStore;; + G4VPhysicalVolume *fWorldVolume; +}; + +#endif diff --git a/examples/extended/biasing/B02/include/B02PVolumeStore.hh b/examples/extended/biasing/B02/include/B02PVolumeStore.hh new file mode 100644 index 0000000000..043858db38 --- /dev/null +++ b/examples/extended/biasing/B02/include/B02PVolumeStore.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: B02PVolumeStore.hh,v 1.1 2002/11/08 14:52:16 dressel Exp $ +// GEANT4 tag +// +// ---------------------------------------------------------------------- +// Class B02PVolumeStore +// +// Class description: +// +// ... + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef B02PVolumeStore_hh +#define B02PVolumeStore_hh B02PVolumeStore_hh + +#include "globals.hh" +#include "g4std/set" +#include "G4GeometryCell.hh" +#include "G4GeometryCellComp.hh" + +typedef G4std::set< G4GeometryCell, G4GeometryCellComp > B02SetGeometryCell; + +class B02PVolumeStore { +public: + B02PVolumeStore(); + ~B02PVolumeStore(); + + void AddPVolume(const G4GeometryCell &cell); + const G4VPhysicalVolume *GetPVolume(const G4String &name) const; + G4String GetPNames() const; + +private: + B02SetGeometryCell fSetGeometryCell; +}; + + + +#endif diff --git a/examples/extended/biasing/B02/include/B02PhysicsList.hh b/examples/extended/biasing/B02/include/B02PhysicsList.hh index d1f0e46859..23a9afa0fc 100644 --- a/examples/extended/biasing/B02/include/B02PhysicsList.hh +++ b/examples/extended/biasing/B02/include/B02PhysicsList.hh @@ -21,17 +21,16 @@ // ******************************************************************** // // -// $Id: B02PhysicsList.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - #ifndef B02PhysicsList_h #define B02PhysicsList_h 1 -#include "globals.hh" #include "G4VUserPhysicsList.hh" +#include "globals.hh" -class B02PhysicsList : public G4VUserPhysicsList + +// taken from Tst12PhysicsList + +class B02PhysicsList: public G4VUserPhysicsList { public: B02PhysicsList(); @@ -42,6 +41,7 @@ class B02PhysicsList : public G4VUserPhysicsList virtual void ConstructParticle(); virtual void ConstructProcess(); + // virtual void SetCuts(); protected: @@ -61,3 +61,6 @@ class B02PhysicsList : public G4VUserPhysicsList }; #endif + + + diff --git a/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh b/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh index 271cff35c2..cafa7527c8 100644 --- a/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh +++ b/examples/extended/biasing/B02/include/B02PrimaryGeneratorAction.hh @@ -21,9 +21,6 @@ // ******************************************************************** // // -// $Id: B02PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// #ifndef B02PrimaryGeneratorAction_hh #define B02PrimaryGeneratorAction_hh B02PrimaryGeneratorAction_hh @@ -47,3 +44,5 @@ class B02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction }; #endif + + diff --git a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh index bed436d1c0..4dcbe1e2e4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef B02ScoringDetectorConstruction_hh diff --git a/examples/extended/biasing/B02/setupAnaphe.csh b/examples/extended/biasing/B02/setupAnaphe.csh new file mode 100755 index 0000000000..4ee7dff32b --- /dev/null +++ b/examples/extended/biasing/B02/setupAnaphe.csh @@ -0,0 +1,148 @@ +#!/bin/tcsh -x + +#set verbose = 0 + +set release = "5.0.1" +set redHat72 = "redhat72" +set redHat61 = "redhat61" +set redhat73 = "redhat73" +set gcc295 = "gcc-2.95.2" +set gcc296 = "gcc-2.96" +set gcc32 = "gcc-3.2" +set platform = "$redHat72/$gcc295" # default +set COMP = `g++ --version | tail -1` +set os = `uname` +set osVersion = `uname -r` +set unavailable = "Sorry, Anaphe $release is not available for $os, compiler $COMP" + + + +# deal with non-Linux (= Solaris CC 5.3) first +if ($os != "Linux" && ) then + if ($os == "SunOS" && $osVersion == "5.8") then + set platform = "sun4x_58/CC-5.3" + else + echo $unavailable + exit + endif +endif + + +# Linux next. Find Redhat/SuSE flavours +set is61 = "no" +if { grep "6.1" /etc/issue > /dev/null } then + set is61 = "yes" +endif +set is72 = "no" +if { grep "7.2" /etc/issue > /dev/null } then + set is72 = "yes" +endif +set is73 = "no" +if { grep "7.3" /etc/issue > /dev/null } then + set is73 = "yes" +endif +set isSuSE = "no" +if { grep "SuSE" /etc/issue > /dev/null } then + set isSuSE = "yes" +endif +# Constraint: all these vars are now "yes" or "no" + + +# deal with SuSE +if ($isSuSE == "yes") then + echo "Found SuSE distribution" + if ($is72 == "yes") then # SuSE 7.2 is compatible with RH61 + # use Red Hat 6.1 / gcc-2.95.2 for SuSE 7.2 (gcc-2.95.3) + set platform = "$redHat61/$gcc295" + else + echo "Unknown version of SuSE - please report to HepLib.Support@cern.ch" + echo "/etc/issue contains:" + cat /etc/issue + exit + endif +endif + + +# deal with non-SuSE - assumed to be Red Hat (but might be wrong..!) +if ($isSuSE == "no") then + # first deal with Red Hat 6.1 + if ($is61 == "yes") then + if ($COMP == "gcc-2.96") then + echo $unavailable + exit + else if ($COMP == "2.95.2") then + set platform = "redhat61/gcc-2.95.2" + else + set platform = "redhat61/egcs_1.1.2" # assumption! + endif + endif + # now deal with Red Hat 7.2 + if ($is72 == "yes") then + if ($COMP == "gcc-2.96") then + echo $unavailable + exit + else if ($COMP == "2.95.2") then + set platform = "redhat72/gcc-2.95.2" + else + set platform = "redhat72/gcc-3.2" # assumption! + endif + endif + # finally deal with Red Hat 7.3 + else if ($is73 == "yes") then + if ( $COMP == "gcc-2.96" ) then + echo $unavailable + exit + else if ( $COMP == "gcc-2.95.2" ) then + set platform = "redhat73/gcc-2.95.2" + else + set platform = "redhat73/gcc-3.2" # assumption! + endif + endif +else + echo $unavailable +endif + + + +setenv PLATF $platform + + + +if ($?AIDA_DIR == 0) then + setenv AIDA_DIR /afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp +endif + +if ($?ANAPHETOP == 0) then + setenv ANAPHETOP /afs/cern.ch/sw/lhcxx +endif + +# add to PATH and LD_LIBRARY_PATH, but only if not already present ... +set pubDom = "${ANAPHETOP}/specific/${PLATF}/PublicDomainPackages/2.0.0" + +if ( { echo $PATH | grep $pubDom } == 0 ) then + setenv PATH "${pubDom}/bin:${PATH}" +endif + +if ( $?LD_LIBRARY_PATH == 0 ) then + setenv LD_LIBRARY_PATH "${pubDom}/lib" +else if ( { echo $LD_LIBRARY_PATH | grep $pubDom } == 0 ) then + setenv LD_LIBRARY_PATH "${pubDom}/lib:${LD_LIBRARY_PATH}" +endif + +set releaseDirectory = "${ANAPHETOP}/specific/${PLATF}/${release}" + +if ( { echo $PATH | grep $releaseDirectory } == 0 ) then + setenv PATH "${releaseDirectory}/bin:${PATH}" +endif + +if ( { echo $LD_LIBRARY_PATH | grep $releaseDirectory } == 0 ) then + setenv LD_LIBRARY_PATH "${releaseDirectory}/lib:${LD_LIBRARY_PATH}" +endif + +if ( $?GRACE_HOME == 0 ) then + setenv GRACE_HOME "${pubDom}/grace" +endif + +if ( { echo $PATH | grep $GRACE_HOME } == 0 ) then + setenv PATH "${GRACE_HOME}/bin:${PATH}" +endif diff --git a/source/geometry/biasing/src/G4PTouchableKey.cc b/examples/extended/biasing/B02/src/B02CellScorer.cc similarity index 60% rename from source/geometry/biasing/src/G4PTouchableKey.cc rename to examples/extended/biasing/B02/src/B02CellScorer.cc index 3fe75f60b6..9137679c7f 100644 --- a/source/geometry/biasing/src/G4PTouchableKey.cc +++ b/examples/extended/biasing/B02/src/B02CellScorer.cc @@ -21,47 +21,58 @@ // ******************************************************************** // // -// $Id: G4PTouchableKey.cc,v 1.2 2002/04/09 16:23:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02CellScorer.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4PTouchableKey.cc +// B02CellScorer.cc // // ---------------------------------------------------------------------- -#include "G4PTouchableKey.hh" +#include "B02CellScorer.hh" +#include "G4GeometryCell.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" -G4PTouchableKey::G4PTouchableKey(const G4VPhysicalVolume &aVolume, - G4int RepNum) - : fVPhysiclaVolume(&aVolume), - fRepNum(RepNum) + +B02CellScorer::B02CellScorer(AIDA::IHistogram1D *h) : + fHisto(h) {} -G4PTouchableKey::~G4PTouchableKey() +B02CellScorer::~B02CellScorer() {} -G4bool G4PTkComp::operator() (const G4PTouchableKey &k1, - const G4PTouchableKey &k2) const -{ - if (k1.fVPhysiclaVolume != k2.fVPhysiclaVolume) { - return k1.fVPhysiclaVolume < k2.fVPhysiclaVolume; - } else { - return k1.fRepNum < k2.fRepNum; - } +void B02CellScorer::ScoreAnExitingStep(const G4Step &aStep, + const G4GeometryCell &pre_gCell){ + fG4CellScorer.ScoreAnExitingStep(aStep, pre_gCell); + FillHisto(aStep); } -G4bool operator==(const G4PTouchableKey &k1, const G4PTouchableKey &k2) -{ - if (k1.fVPhysiclaVolume != k2.fVPhysiclaVolume) return false; - if (k1.fRepNum != k2.fRepNum) return false; - return true; +void B02CellScorer::ScoreAnEnteringStep(const G4Step &aStep, + const G4GeometryCell &post_gCell){ + fG4CellScorer.ScoreAnEnteringStep(aStep, post_gCell); + return; } -G4bool operator!=(const G4PTouchableKey &k1, const G4PTouchableKey &k2) -{ - if (k1.fVPhysiclaVolume != k2.fVPhysiclaVolume) return true; - if (k1.fRepNum != k2.fRepNum) return true; - return false; +void B02CellScorer::ScoreAnInVolumeStep(const G4Step &aStep, + const G4GeometryCell &post_gCell){ + fG4CellScorer.ScoreAnInVolumeStep(aStep, post_gCell); + FillHisto(aStep); } + +void B02CellScorer::FillHisto(const G4Step &aStep){ + + G4StepPoint *p = 0; + p = aStep.GetPreStepPoint(); + G4double sl = aStep.GetStepLength(); + G4double slw = sl * p->GetWeight(); + + fHisto->fill(p->GetKineticEnergy(), slw); +} + + + + + diff --git a/source/processes/transportation/src/G4ParallelScoreSampler.cc b/examples/extended/biasing/B02/src/B02CellScorerStore.cc similarity index 51% rename from source/processes/transportation/src/G4ParallelScoreSampler.cc rename to examples/extended/biasing/B02/src/B02CellScorerStore.cc index a95b338c63..e0e8c8ec2a 100644 --- a/source/processes/transportation/src/G4ParallelScoreSampler.cc +++ b/examples/extended/biasing/B02/src/B02CellScorerStore.cc @@ -21,68 +21,65 @@ // ******************************************************************** // // -// $Id: G4ParallelScoreSampler.cc,v 1.2 2002/05/31 13:49:46 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02CellScorerStore.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4ParallelScoreSampler.cc +// B02CellScorerStore.cc // // ---------------------------------------------------------------------- -#include "G4ParallelScoreSampler.hh" -#include "G4PScoreProcess.hh" -#include "G4ProcessPlacer.hh" -#include "G4ParallelWorld.hh" -#include "G4ParallelTransport.hh" +#include "B02CellScorerStore.hh" -G4ParallelScoreSampler:: -G4ParallelScoreSampler(G4VPhysicalVolume &worldvolume, - const G4String &particlename, - G4VPScorer &scorer) : - fParticleName(particlename), - fParallelWorld(*(new G4ParallelWorld(worldvolume))), - fPScorer(scorer), - fPScorerProcess(0), - fParallelTransport(0) +#include "G4CellScorer.hh" +#include "B02CellScorer.hh" + +B02CellScorerStore::B02CellScorerStore() {} -G4ParallelScoreSampler::~G4ParallelScoreSampler() -{ - if (fPScorerProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fPScorerProcess); - delete fPScorerProcess; + +G4CellScorer *B02CellScorerStore:: +AddG4CellScorer(const G4GeometryCell &g) { + return fMapGeometryCellCellScorer[g] = + new G4CellScorer; +}; + +void B02CellScorerStore:: +AddB02CellScorer(B02CellScorer *b02scorer, + const G4GeometryCell &g) { + fMapGeometryCellB02CellScorer[g] = b02scorer; +}; + + +const G4MapGeometryCellCellScorer &B02CellScorerStore::GetMapGeometryCellCellScorer() { + for (B02MapGeometryCellB02CellScorer::iterator it = fMapGeometryCellB02CellScorer.begin(); + it != fMapGeometryCellB02CellScorer.end(); it++) { + fMapGeometryCellCellScorer[(*it).first] = + &((*it).second->GetG4CellScorer()); } - delete &fParallelWorld; + return fMapGeometryCellCellScorer; } +const B02MapGeometryCellB02CellScorer &B02CellScorerStore::GetMapGeometryCellB02CellScorer() const { + return fMapGeometryCellB02CellScorer; +} -G4PScoreProcess *G4ParallelScoreSampler::CreateParallelScoreProcess() -{ - if (!fPScorerProcess) { - fPScorerProcess = - new G4PScoreProcess(fParallelWorld.GetParallelStepper(), - fPScorer); +G4VCellScorer *B02CellScorerStore:: +GetCellScore(const G4GeometryCell &gCell){ + B02MapGeometryCellB02CellScorer::iterator itb08 = + fMapGeometryCellB02CellScorer.find(gCell); + if (itb08 != fMapGeometryCellB02CellScorer.end()) { + return (*itb08).second; } - return fPScorerProcess; -} - -G4ParallelTransport *G4ParallelScoreSampler::CreateParallelTransport() -{ - if (!fParallelTransport) { - fParallelTransport = new G4ParallelTransport(fParallelWorld. - GetGeoDriver(), - fParallelWorld. - GetParallelStepper()); + else { + G4MapGeometryCellCellScorer::iterator it = fMapGeometryCellCellScorer.find(gCell); + if (it != fMapGeometryCellCellScorer.end()) { + return (*it).second; + } + else { + return 0; + } } - return fParallelTransport; -} - -void G4ParallelScoreSampler::Initialize() -{ - G4ProcessPlacer placer(fParticleName); - placer.AddProcessAsSecondDoIt(CreateParallelScoreProcess()); - placer.AddProcessAsSecondDoIt(CreateParallelTransport()); } diff --git a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc index b5a893d9eb..e70d9e4087 100644 --- a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: B02DetectorConstruction.cc,v 1.4 2002/04/19 10:54:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02DetectorConstruction.cc,v 1.6 2002/11/22 17:47:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -#include "globals.hh" #include "g4std/strstream" +#include "globals.hh" #include "B02DetectorConstruction.hh" @@ -40,8 +40,10 @@ #include "G4Colour.hh" #include "PhysicalConstants.h" +// for importance biasing +#include "G4IStore.hh" + B02DetectorConstruction::B02DetectorConstruction() - : fWorldVolume(0) {;} B02DetectorConstruction::~B02DetectorConstruction() @@ -49,8 +51,6 @@ B02DetectorConstruction::~B02DetectorConstruction() G4VPhysicalVolume* B02DetectorConstruction::Construct() { - char line[255]; - G4double pos_x; G4double pos_y; G4double pos_z; @@ -84,7 +84,6 @@ G4VPhysicalVolume* B02DetectorConstruction::Construct() A = 28.09*g/mole; G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - A = 39.1*g/mole; G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); @@ -113,21 +112,20 @@ G4VPhysicalVolume* B02DetectorConstruction::Construct() Concrete->AddElement(elCa , fractionmass= 0.044); Concrete->AddElement(elFe , fractionmass= 0.014); Concrete->AddElement(elC , fractionmass= 0.001); - - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - G4Material *WorldMaterial = Galactic; + + + + + + + + + + + + + ///////////////////////////// // world cylinder volume @@ -136,79 +134,72 @@ G4VPhysicalVolume* B02DetectorConstruction::Construct() // world solid G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; + G4double outerRadiusCylinder = 101*cm; // dont't have scoring + // cells coinside eith world volume boundary + G4double hightCylinder = 105*cm; G4double startAngleCylinder = 0*deg; G4double spanningAngleCylinder = 360*deg; G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); + innerRadiusCylinder, + outerRadiusCylinder, + hightCylinder, + startAngleCylinder, + spanningAngleCylinder); // logical world G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); + new G4LogicalVolume(worldCylinder, Galactic, "worldCylinder_log"); - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); + name = "shieldWorld"; + G4VPhysicalVolume *pWorldVolume = new + G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, + name, 0, false, 0); - // physical world - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // shield cylinder for (cells 1-2) - //////////////////////////////////////////////// + // creating 18 slobs of 10 cm thick concrete G4double innerRadiusShield = 0*cm; G4double outerRadiusShield = 100*cm; - G4double hightShield = 5*cm; + G4double hightShield = 90*cm; G4double startAngleShield = 0*deg; G4double spanningAngleShield = 360*deg; G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); // logical shield G4LogicalVolume *aShield_log = new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); + G4VisAttributes* pShieldVis = new + G4VisAttributes(G4Colour(0.0,0.0,1.0)); + pShieldVis->SetForceSolid(true); + aShield_log->SetVisAttributes(pShieldVis); // physical shields - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) - { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, false, 0); - } - fWorldVolume = worldCylinder_phys; + name = "concreteShield"; - return worldCylinder_phys; + pos_x = 0*cm; + pos_y = 0*cm; + pos_z = 0; + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aShield_log, + name, + worldCylinder_log, + false, + 0); + + return pWorldVolume; } + + diff --git a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc new file mode 100644 index 0000000000..c85b03b7cd --- /dev/null +++ b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc @@ -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: B02ImportanceDetectorConstruction.cc,v 1.2 2002/11/22 17:47:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + +#include "globals.hh" +#include "g4std/strstream" + +#include "B02ImportanceDetectorConstruction.hh" + +#include "G4Material.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "PhysicalConstants.h" + + +B02ImportanceDetectorConstruction::B02ImportanceDetectorConstruction() +{ + Construct(); +} + +B02ImportanceDetectorConstruction::~B02ImportanceDetectorConstruction() +{;} + +void B02ImportanceDetectorConstruction::Construct() +{ + G4String name; + G4double A, density, temperature, pressure; + G4int z; + + G4Material *Galactic = + new G4Material(name="Galactic", z=1, A=1.01*g/mole, density, + kStateGas,temperature,pressure); + + + + ////////////////////////////////// + // parallel world cylinder volume + ////////////////////////////////// + + // parallel world solid larger than in the mass geometry + + G4double innerRadiusCylinder = 0*cm; + G4double outerRadiusCylinder = 110*cm; + G4double hightCylinder = 110*cm; + G4double startAngleCylinder = 0*deg; + G4double spanningAngleCylinder = 360*deg; + + G4Tubs *worldCylinder = new G4Tubs("worldCylinder", + innerRadiusCylinder, + outerRadiusCylinder, + hightCylinder, + startAngleCylinder, + spanningAngleCylinder); + + // logical world + + G4LogicalVolume *worldCylinder_log = + new G4LogicalVolume(worldCylinder, Galactic, "worldCylinder_log"); + + name = "parallelWorld"; + fWorldVolume = new + G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, + name, 0, false, 0); + + fPVolumeStore.AddPVolume(G4GeometryCell(*fWorldVolume, -1)); + + + + + // creating 18 slobs of 10 cm thicknes + + G4double innerRadiusShield = 0*cm; + G4double outerRadiusShield = 100*cm; + G4double hightShield = 5*cm; + G4double startAngleShield = 0*deg; + G4double spanningAngleShield = 360*deg; + + G4Tubs *aShield = new G4Tubs("aShield", + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); + + // logical parallel cells + + G4LogicalVolume *aShield_log = + new G4LogicalVolume(aShield, Galactic, "aShield_log"); + + // physical parallel cells + + G4int i = 1; + G4double startz = -85*cm; + for (i=1; i<=18; ++i) { + + name = GetCellName(i); + + G4double pos_x = 0*cm; + G4double pos_y = 0*cm; + G4double pos_z = startz + (i-1) * (2*hightShield); + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aShield_log, + name, + worldCylinder_log, + false, + 0); + G4GeometryCell cell(*pvol, 0); + fPVolumeStore.AddPVolume(cell); + } + + // filling the rest of the world volumr behind the concrete with + // another slob which should get the same importance value as the + // last slob + innerRadiusShield = 0*cm; + outerRadiusShield = 110*cm; + hightShield = 10*cm; + startAngleShield = 0*deg; + spanningAngleShield = 360*deg; + + G4Tubs *aRest = new G4Tubs("Rest", + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); + + G4LogicalVolume *aRest_log = + new G4LogicalVolume(aRest, Galactic, "aRest_log"); + name = GetCellName(19); + + G4double pos_x = 0*cm; + G4double pos_y = 0*cm; + G4double pos_z = 100*cm; + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aRest_log, + name, + worldCylinder_log, + false, + 0); + G4GeometryCell cell(*pvol, 0); + fPVolumeStore.AddPVolume(cell); + +} + +const G4VPhysicalVolume &B02ImportanceDetectorConstruction:: +GetPhysicalVolumeByName(const G4String& name) const { + return *fPVolumeStore.GetPVolume(name); +} + + +G4String B02ImportanceDetectorConstruction::ListPhysNamesAsG4String(){ + G4String names(fPVolumeStore.GetPNames()); + return names; +} + + +G4String B02ImportanceDetectorConstruction::GetCellName(G4int i) { + char st[200]; + G4std::ostrstream os(st,200); + os << "cell_"; + if (i<10) { + os << "0"; + } + os << i + << '\0'; + G4String name(st); + return name; +} + +G4GeometryCell B02ImportanceDetectorConstruction::GetGeometryCell(G4int i){ + G4String name(GetCellName(i)); + const G4VPhysicalVolume *p=0; + p = fPVolumeStore.GetPVolume(name); + if (p) { + return G4GeometryCell(*p,0); + } + else { + G4cout << "B02ImportanceDetectorConstruction::GetGeometryCell: couldn't get G4GeometryCell" << G4endl; + return G4GeometryCell(*fWorldVolume,-2); + } +} + + +G4VPhysicalVolume &B02ImportanceDetectorConstruction::GetWorldVolume() const{ + return *fWorldVolume; +} + diff --git a/examples/extended/biasing/B02/src/B02PVolumeStore.cc b/examples/extended/biasing/B02/src/B02PVolumeStore.cc new file mode 100644 index 0000000000..16c7c7cdaa --- /dev/null +++ b/examples/extended/biasing/B02/src/B02PVolumeStore.cc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: B02PVolumeStore.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ +// GEANT4 tag +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// B02PVolumeStore.cc +// +// ---------------------------------------------------------------------- + +#include "B02PVolumeStore.hh" +#include "g4std/strstream" + + +#include "G4VPhysicalVolume.hh" + +B02PVolumeStore::B02PVolumeStore(){} +B02PVolumeStore::~B02PVolumeStore(){} + +void B02PVolumeStore::AddPVolume(const G4GeometryCell &cell){ + + B02SetGeometryCell::iterator it = + fSetGeometryCell.find(cell); + if (it != fSetGeometryCell.end()) { + G4cout << "B02PVolumeStore::AddPVolume: cell already stored" + << G4endl; + return; + } + + fSetGeometryCell.insert(cell); + + +} + +const G4VPhysicalVolume *B02PVolumeStore:: +GetPVolume(const G4String &name) const { + const G4VPhysicalVolume *pvol = 0; + for (B02SetGeometryCell::const_iterator it = fSetGeometryCell.begin(); + it != fSetGeometryCell.end(); ++it) { + const G4VPhysicalVolume &vol = it->GetPhysicalVolume(); + if (vol.GetName() == name) { + pvol = &vol; + } + } + if (!pvol) { + G4cout << "B02PVolumeStore::GetPVolume: no physical volume named: " + << name << ", found" << G4endl; + } + return pvol; +} + +G4String B02PVolumeStore::GetPNames() const { + G4String NameString; + for (B02SetGeometryCell::const_iterator it = fSetGeometryCell.begin(); + it != fSetGeometryCell.end(); ++it) { + const G4VPhysicalVolume &vol = it->GetPhysicalVolume(); + char st[200]; + G4std::ostrstream os(st,200); + os << vol.GetName() << "_" << it->GetReplicaNumber() + << "\n" << '\0'; + G4String cellname(st); + + // G4String cellname(vol.GetName()); + // cellname += G4String("_"); + // cellname += G4std::str(it->GetReplicaNumber()); + + NameString += cellname; + } + return NameString; +} diff --git a/examples/extended/biasing/B02/src/B02PhysicsList.cc b/examples/extended/biasing/B02/src/B02PhysicsList.cc index 1d62130032..20d100d1e4 100644 --- a/examples/extended/biasing/B02/src/B02PhysicsList.cc +++ b/examples/extended/biasing/B02/src/B02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B02PhysicsList.cc,v 1.2 2002/04/19 10:54:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02PhysicsList.cc,v 1.3 2002/11/08 14:47:48 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" @@ -45,7 +45,7 @@ #include "G4Material.hh" #include "G4MaterialTable.hh" -B02PhysicsList::B02PhysicsList() : G4VUserPhysicsList() +B02PhysicsList::B02PhysicsList(): G4VUserPhysicsList() { SetVerboseLevel(1); } @@ -622,11 +622,12 @@ void B02PhysicsList::ConstructGeneral() void B02PhysicsList::SetCuts() { - if (verboseLevel >0){ + if (verboseLevel >0) + { G4cout << "B02PhysicsList::SetCuts:"; G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; } - // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // "G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types SetCutsWithDefault(); } diff --git a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc index 277bb65f32..8ea6b7114a 100644 --- a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B02PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:43 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02PrimaryGeneratorAction.cc,v 1.5 2002/11/08 14:47:48 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" @@ -40,7 +40,7 @@ B02PrimaryGeneratorAction::B02PrimaryGeneratorAction() particleGun = new G4ParticleGun(n_particle); particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); + particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -90.0005*cm)); particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); } diff --git a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc index e11c23d143..f8587f1ce1 100644 --- a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B02ScoringDetectorConstruction.cc,v 1.4 2002/04/19 12:01:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B02ScoringDetectorConstruction.cc,v 1.5 2002/07/11 08:12:22 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" @@ -76,7 +76,7 @@ G4VPhysicalVolume* B02ScoringDetectorConstruction::Construct() // physical world - name = "score_worldCylinder_phys"; + name = "score_world_phys"; G4VPhysicalVolume* score_worldCylinder_phys = new G4PVPlacement(0, G4ThreeVector(0,0,0), score_worldCylinder_log, name, 0, false, 0); diff --git a/examples/extended/biasing/B03/B03App.py b/examples/extended/biasing/B03/B03App.py new file mode 100644 index 0000000000..f2191731cd --- /dev/null +++ b/examples/extended/biasing/B03/B03App.py @@ -0,0 +1,428 @@ +# This file was created automatically by SWIG. +# Don't modify this file, modify the SWIG interface instead. +# This file is compatible with both classic and new-style classes. +import _B03App +def _swig_setattr(self,class_type,name,value): + if (name == "this"): + if isinstance(value, class_type): + self.__dict__[name] = value.this + if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown + del value.thisown + return + method = class_type.__swig_setmethods__.get(name,None) + if method: return method(self,value) + self.__dict__[name] = value + +def _swig_getattr(self,class_type,name): + method = class_type.__swig_getmethods__.get(name,None) + if method: return method(self) + raise AttributeError,name + +import types +try: + _object = types.ObjectType + _newclass = 1 +except AttributeError: + class _object : pass + _newclass = 0 + + +class G4RunManager(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4RunManager, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4RunManager, name) + def BeamOn(*args): return apply(_B03App.G4RunManager_BeamOn,args) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4RunManagerPtr(G4RunManager): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4RunManager +_B03App.G4RunManager_swigregister(G4RunManagerPtr) + +class G4VIStore(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4VIStore, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4VIStore, name) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4VIStorePtr(G4VIStore): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4VIStore +_B03App.G4VIStore_swigregister(G4VIStorePtr) + +class G4VPhysicalVolume(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4VPhysicalVolume, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4VPhysicalVolume, name) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4VPhysicalVolumePtr(G4VPhysicalVolume): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4VPhysicalVolume +_B03App.G4VPhysicalVolume_swigregister(G4VPhysicalVolumePtr) + +class G4GeometryCell(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4GeometryCell, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4GeometryCell, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4GeometryCell,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_G4GeometryCell): + try: + if self.thisown: destroy(self) + except: pass + def GetPhysicalVolume(*args): return apply(_B03App.G4GeometryCell_GetPhysicalVolume,args) + def GetReplicaNumber(*args): return apply(_B03App.G4GeometryCell_GetReplicaNumber,args) + def __repr__(self): + return "" % (self.this,) + +class G4GeometryCellPtr(G4GeometryCell): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4GeometryCell +_B03App.G4GeometryCell_swigregister(G4GeometryCellPtr) + +class G4IStore(G4VIStore): + __swig_setmethods__ = {} + for _s in [G4VIStore]: __swig_setmethods__.update(_s.__swig_setmethods__) + __setattr__ = lambda self, name, value: _swig_setattr(self, G4IStore, name, value) + __swig_getmethods__ = {} + for _s in [G4VIStore]: __swig_getmethods__.update(_s.__swig_getmethods__) + __getattr__ = lambda self, name: _swig_getattr(self, G4IStore, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4IStore,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_G4IStore): + try: + if self.thisown: destroy(self) + except: pass + def AddImportanceGeometryCell(*args): return apply(_B03App.G4IStore_AddImportanceGeometryCell,args) + def ChangeImportance(*args): return apply(_B03App.G4IStore_ChangeImportance,args) + def GetImportance(*args): return apply(_B03App.G4IStore_GetImportance,args) + def IsKnown(*args): return apply(_B03App.G4IStore_IsKnown,args) + def GetWorldVolume(*args): return apply(_B03App.G4IStore_GetWorldVolume,args) + def __repr__(self): + return "" % (self.this,) + +class G4IStorePtr(G4IStore): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4IStore +_B03App.G4IStore_swigregister(G4IStorePtr) + +class G4CellScoreValues(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScoreValues, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4CellScoreValues, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4CellScoreValues,args) + self.thisown = 1 + __swig_setmethods__["fSumSL"] = _B03App.G4CellScoreValues_fSumSL_set + __swig_getmethods__["fSumSL"] = _B03App.G4CellScoreValues_fSumSL_get + if _newclass:fSumSL = property(_B03App.G4CellScoreValues_fSumSL_get,_B03App.G4CellScoreValues_fSumSL_set) + __swig_setmethods__["fSumSLW"] = _B03App.G4CellScoreValues_fSumSLW_set + __swig_getmethods__["fSumSLW"] = _B03App.G4CellScoreValues_fSumSLW_get + if _newclass:fSumSLW = property(_B03App.G4CellScoreValues_fSumSLW_get,_B03App.G4CellScoreValues_fSumSLW_set) + __swig_setmethods__["fSumSLW_v"] = _B03App.G4CellScoreValues_fSumSLW_v_set + __swig_getmethods__["fSumSLW_v"] = _B03App.G4CellScoreValues_fSumSLW_v_get + if _newclass:fSumSLW_v = property(_B03App.G4CellScoreValues_fSumSLW_v_get,_B03App.G4CellScoreValues_fSumSLW_v_set) + __swig_setmethods__["fSumSLWE"] = _B03App.G4CellScoreValues_fSumSLWE_set + __swig_getmethods__["fSumSLWE"] = _B03App.G4CellScoreValues_fSumSLWE_get + if _newclass:fSumSLWE = property(_B03App.G4CellScoreValues_fSumSLWE_get,_B03App.G4CellScoreValues_fSumSLWE_set) + __swig_setmethods__["fSumSLWE_v"] = _B03App.G4CellScoreValues_fSumSLWE_v_set + __swig_getmethods__["fSumSLWE_v"] = _B03App.G4CellScoreValues_fSumSLWE_v_get + if _newclass:fSumSLWE_v = property(_B03App.G4CellScoreValues_fSumSLWE_v_get,_B03App.G4CellScoreValues_fSumSLWE_v_set) + __swig_setmethods__["fSumTracksEntering"] = _B03App.G4CellScoreValues_fSumTracksEntering_set + __swig_getmethods__["fSumTracksEntering"] = _B03App.G4CellScoreValues_fSumTracksEntering_get + if _newclass:fSumTracksEntering = property(_B03App.G4CellScoreValues_fSumTracksEntering_get,_B03App.G4CellScoreValues_fSumTracksEntering_set) + __swig_setmethods__["fSumPopulation"] = _B03App.G4CellScoreValues_fSumPopulation_set + __swig_getmethods__["fSumPopulation"] = _B03App.G4CellScoreValues_fSumPopulation_get + if _newclass:fSumPopulation = property(_B03App.G4CellScoreValues_fSumPopulation_get,_B03App.G4CellScoreValues_fSumPopulation_set) + __swig_setmethods__["fSumCollisions"] = _B03App.G4CellScoreValues_fSumCollisions_set + __swig_getmethods__["fSumCollisions"] = _B03App.G4CellScoreValues_fSumCollisions_get + if _newclass:fSumCollisions = property(_B03App.G4CellScoreValues_fSumCollisions_get,_B03App.G4CellScoreValues_fSumCollisions_set) + __swig_setmethods__["fSumCollisionsWeight"] = _B03App.G4CellScoreValues_fSumCollisionsWeight_set + __swig_getmethods__["fSumCollisionsWeight"] = _B03App.G4CellScoreValues_fSumCollisionsWeight_get + if _newclass:fSumCollisionsWeight = property(_B03App.G4CellScoreValues_fSumCollisionsWeight_get,_B03App.G4CellScoreValues_fSumCollisionsWeight_set) + __swig_setmethods__["fNumberWeightedEnergy"] = _B03App.G4CellScoreValues_fNumberWeightedEnergy_set + __swig_getmethods__["fNumberWeightedEnergy"] = _B03App.G4CellScoreValues_fNumberWeightedEnergy_get + if _newclass:fNumberWeightedEnergy = property(_B03App.G4CellScoreValues_fNumberWeightedEnergy_get,_B03App.G4CellScoreValues_fNumberWeightedEnergy_set) + __swig_setmethods__["fFluxWeightedEnergy"] = _B03App.G4CellScoreValues_fFluxWeightedEnergy_set + __swig_getmethods__["fFluxWeightedEnergy"] = _B03App.G4CellScoreValues_fFluxWeightedEnergy_get + if _newclass:fFluxWeightedEnergy = property(_B03App.G4CellScoreValues_fFluxWeightedEnergy_get,_B03App.G4CellScoreValues_fFluxWeightedEnergy_set) + __swig_setmethods__["fAverageTrackWeight"] = _B03App.G4CellScoreValues_fAverageTrackWeight_set + __swig_getmethods__["fAverageTrackWeight"] = _B03App.G4CellScoreValues_fAverageTrackWeight_get + if _newclass:fAverageTrackWeight = property(_B03App.G4CellScoreValues_fAverageTrackWeight_get,_B03App.G4CellScoreValues_fAverageTrackWeight_set) + __swig_setmethods__["fImportance"] = _B03App.G4CellScoreValues_fImportance_set + __swig_getmethods__["fImportance"] = _B03App.G4CellScoreValues_fImportance_get + if _newclass:fImportance = property(_B03App.G4CellScoreValues_fImportance_get,_B03App.G4CellScoreValues_fImportance_set) + def __repr__(self): + return "" % (self.this,) + +class G4CellScoreValuesPtr(G4CellScoreValues): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4CellScoreValues +_B03App.G4CellScoreValues_swigregister(G4CellScoreValuesPtr) + +class G4CellScoreComposer(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScoreComposer, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4CellScoreComposer, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4CellScoreComposer,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_G4CellScoreComposer): + try: + if self.thisown: destroy(self) + except: pass + def GetStandardCellScoreValues(*args): return apply(_B03App.G4CellScoreComposer_GetStandardCellScoreValues,args) + def __repr__(self): + return "" % (self.this,) + +class G4CellScoreComposerPtr(G4CellScoreComposer): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4CellScoreComposer +_B03App.G4CellScoreComposer_swigregister(G4CellScoreComposerPtr) + +class G4CellScorer(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScorer, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4CellScorer, name) + def GetCellScoreComposer(*args): return apply(_B03App.G4CellScorer_GetCellScoreComposer,args) + def GetCellScoreValues(*args): return apply(_B03App.G4CellScorer_GetCellScoreValues,args) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4CellScorerPtr(G4CellScorer): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4CellScorer +_B03App.G4CellScorer_swigregister(G4CellScorerPtr) + +class G4VCellScorerStore(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4VCellScorerStore, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4VCellScorerStore, name) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4VCellScorerStorePtr(G4VCellScorerStore): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4VCellScorerStore +_B03App.G4VCellScorerStore_swigregister(G4VCellScorerStorePtr) + +class G4CellScorerStore(G4VCellScorerStore): + __swig_setmethods__ = {} + for _s in [G4VCellScorerStore]: __swig_setmethods__.update(_s.__swig_setmethods__) + __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScorerStore, name, value) + __swig_getmethods__ = {} + for _s in [G4VCellScorerStore]: __swig_getmethods__.update(_s.__swig_getmethods__) + __getattr__ = lambda self, name: _swig_getattr(self, G4CellScorerStore, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4CellScorerStore,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_G4CellScorerStore): + try: + if self.thisown: destroy(self) + except: pass + def SetAutoScorerCreate(*args): return apply(_B03App.G4CellScorerStore_SetAutoScorerCreate,args) + def AddCellScorer(*args): return apply(_B03App.G4CellScorerStore_AddCellScorer,args) + def GetMapGeometryCellCellScorer(*args): return apply(_B03App.G4CellScorerStore_GetMapGeometryCellCellScorer,args) + def __repr__(self): + return "" % (self.this,) + +class G4CellScorerStorePtr(G4CellScorerStore): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4CellScorerStore +_B03App.G4CellScorerStore_swigregister(G4CellScorerStorePtr) + +class G4VScorer(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4VScorer, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4VScorer, name) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4VScorerPtr(G4VScorer): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4VScorer +_B03App.G4VScorer_swigregister(G4VScorerPtr) + +class G4CellStoreScorer(G4VScorer): + __swig_setmethods__ = {} + for _s in [G4VScorer]: __swig_setmethods__.update(_s.__swig_setmethods__) + __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellStoreScorer, name, value) + __swig_getmethods__ = {} + for _s in [G4VScorer]: __swig_getmethods__.update(_s.__swig_getmethods__) + __getattr__ = lambda self, name: _swig_getattr(self, G4CellStoreScorer, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4CellStoreScorer,args) + self.thisown = 1 + def __repr__(self): + return "" % (self.this,) + +class G4CellStoreScorerPtr(G4CellStoreScorer): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4CellStoreScorer +_B03App.G4CellStoreScorer_swigregister(G4CellStoreScorerPtr) + +class G4VImportanceAlgorithm(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4VImportanceAlgorithm, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4VImportanceAlgorithm, name) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class G4VImportanceAlgorithmPtr(G4VImportanceAlgorithm): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4VImportanceAlgorithm +_B03App.G4VImportanceAlgorithm_swigregister(G4VImportanceAlgorithmPtr) + +class G4ParallelGeometrySampler(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4ParallelGeometrySampler, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4ParallelGeometrySampler, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4ParallelGeometrySampler,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_G4ParallelGeometrySampler): + try: + if self.thisown: destroy(self) + except: pass + def PrepareScoring(*args): return apply(_B03App.G4ParallelGeometrySampler_PrepareScoring,args) + def PrepareImportanceSampling(*args): return apply(_B03App.G4ParallelGeometrySampler_PrepareImportanceSampling,args) + def PrepareWeightRoulett(*args): return apply(_B03App.G4ParallelGeometrySampler_PrepareWeightRoulett,args) + def Configure(*args): return apply(_B03App.G4ParallelGeometrySampler_Configure,args) + def ClearSampling(*args): return apply(_B03App.G4ParallelGeometrySampler_ClearSampling,args) + def IsConfigured(*args): return apply(_B03App.G4ParallelGeometrySampler_IsConfigured,args) + def __repr__(self): + return "" % (self.this,) + +class G4ParallelGeometrySamplerPtr(G4ParallelGeometrySampler): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4ParallelGeometrySampler +_B03App.G4ParallelGeometrySampler_swigregister(G4ParallelGeometrySamplerPtr) + +class G4ScoreTable(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, G4ScoreTable, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, G4ScoreTable, name) + def __init__(self,*args): + self.this = apply(_B03App.new_G4ScoreTable,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_G4ScoreTable): + try: + if self.thisown: destroy(self) + except: pass + def Print(*args): return apply(_B03App.G4ScoreTable_Print,args) + def Write(*args): return apply(_B03App.G4ScoreTable_Write,args) + def __repr__(self): + return "" % (self.this,) + +class G4ScoreTablePtr(G4ScoreTable): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = G4ScoreTable +_B03App.G4ScoreTable_swigregister(G4ScoreTablePtr) + +class B03ImportanceDetectorConstruction(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, B03ImportanceDetectorConstruction, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, B03ImportanceDetectorConstruction, name) + def __init__(self,*args): + self.this = apply(_B03App.new_B03ImportanceDetectorConstruction,args) + self.thisown = 1 + def __del__(self, destroy= _B03App.delete_B03ImportanceDetectorConstruction): + try: + if self.thisown: destroy(self) + except: pass + def GetPhysicalVolumeByName(*args): return apply(_B03App.B03ImportanceDetectorConstruction_GetPhysicalVolumeByName,args) + def GetWorldVolume(*args): return apply(_B03App.B03ImportanceDetectorConstruction_GetWorldVolume,args) + def ListPhysNames(*args): return apply(_B03App.B03ImportanceDetectorConstruction_ListPhysNames,args) + def GetGeometryCell(*args): return apply(_B03App.B03ImportanceDetectorConstruction_GetGeometryCell,args) + def __repr__(self): + return "" % (self.this,) + +class B03ImportanceDetectorConstructionPtr(B03ImportanceDetectorConstruction): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = B03ImportanceDetectorConstruction +_B03App.B03ImportanceDetectorConstruction_swigregister(B03ImportanceDetectorConstructionPtr) + +class B03AppBase(_object): + __swig_setmethods__ = {} + __setattr__ = lambda self, name, value: _swig_setattr(self, B03AppBase, name, value) + __swig_getmethods__ = {} + __getattr__ = lambda self, name: _swig_getattr(self, B03AppBase, name) + def __del__(self, destroy= _B03App.delete_B03AppBase): + try: + if self.thisown: destroy(self) + except: pass + __swig_getmethods__["GetB03AppBase"] = lambda x: _B03App.B03AppBase_GetB03AppBase + if _newclass:GetB03AppBase = staticmethod(_B03App.B03AppBase_GetB03AppBase) + def GetRunManager(*args): return apply(_B03App.B03AppBase_GetRunManager,args) + def __init__(self): raise RuntimeError, "No constructor defined" + def __repr__(self): + return "" % (self.this,) + +class B03AppBasePtr(B03AppBase): + def __init__(self,this): + self.this = this + if not hasattr(self,"thisown"): self.thisown = 0 + self.__class__ = B03AppBase +_B03App.B03AppBase_swigregister(B03AppBasePtr) +B03AppBase_GetB03AppBase = _B03App.B03AppBase_GetB03AppBase + + + diff --git a/examples/extended/biasing/B03/B03Application.py b/examples/extended/biasing/B03/B03Application.py new file mode 100644 index 0000000000..ca69dd08d1 --- /dev/null +++ b/examples/extended/biasing/B03/B03Application.py @@ -0,0 +1,159 @@ +# This file is used by G03RunApplication.py +# +# A very prototype like class which allows to do a given number +# of runs runs (nruns) of a given number of events (nevents) +# by calling nruns times BeamOn(nevents). +# The class fills a list after every call to BeamOn(nevents) +# with the number of tracks entered in a certain cell +# in the last run. + + + +import math +import string + +# import the G4 shadow classes. B03App in tern loads B03Appc.so +# containing the "hooks" to the c++ code +from B03App import * + + + +class B03Application: + def __init__(self, nevents): + # this function prepares Geant4 for running by calling, + # creates a parallel geometry, sets importance values + # creates an parallel importance score sampler, + # creates scores to access data, + # and creates an empty histogram + #(so by far to much for one function, but this is a prototype) + + + # nevents is the number of events per run + self.nevents = nevents + # an array to store the messurments + self.messurements = [] + + def initializeApplication(self): + if "base" in dir(self): + print "already initialized" + return + # get B03AppBase singleton, in tern creating the mass detector and + # the physics list + self.base = B03AppBase_GetB03AppBase () + + + def setupParallelGeometry(self): + if "pgeom" in dir(self): + print "geometry already created" + return + if not "base" in dir(self): + print "call \"initializeApplication\" first" + return + # create the parallel geometry and get it's world volume + self.pgeom = B03ImportanceDetectorConstruction() + self.p_world = self.pgeom.GetWorldVolume() + + # create a list of G4GeometryCells related to the + # physical volumes in the parallel detector + # needed to assign importance values to the cells + # and to create scorers for the cells + self.gCell_list =[] + for i in range(1,19): + self.gCell_list.append(self.pgeom.GetGeometryCell(i)) + + + self.CellRest = self.pgeom.GetGeometryCell(19) + + def createIstoreAndScorer(self): + if "istore" in dir(self): + print "Istore and Scorer already created" + return + if not "pgeom" in dir(self): + print "call \"setupParallelGeometry\" first" + return + + # create an importance store + self.istore = G4IStore(self.p_world) + + # create a store for G4CellScorers + self.cs_store = G4CellScorerStore() + + # fill the istore with importance values for the + # G4GeometryCells + # and create G4CellScorers for the G4GeometryCells + self.CellScorerList = [] + exp = 0 + for gCell in self.gCell_list: + exp += 1 + importance = math.pow(2,exp) + if exp < 18: + self.istore.AddImportanceGeometryCell(importance,gCell) + self.CellScorerList.append(self.cs_store.AddCellScorer(gCell)) + + # set importance of world volume + self.istore. \ + AddImportanceGeometryCell(1, G4GeometryCell(self.p_world,-1)) + imp_cell_17 = self.istore.GetImportance(self.pgeom.GetGeometryCell(17)) + + self.istore. \ + AddImportanceGeometryCell(imp_cell_17, + self.pgeom.GetGeometryCell(18)) + + self.istore. \ + AddImportanceGeometryCell(imp_cell_17, self.CellRest) + + # create G4CellStoreScorer derived from G4VPScorer + self.scorer = G4CellStoreScorer(self.cs_store) + + + def setupSampler(self): + if "sampler" in dir(self): + print "Sampler already created" + return + if not "istore" in dir(self): + print "call \"createIstoreAndScorer\" first" + return + # create a sampler for neutrons + self.sampler = G4ParallelGeometrySampler(self.p_world, + "neutron") + + self.sampler.PrepareImportanceSampling(self.istore) + self.sampler.PrepareScoring(self.scorer) + self.sampler.Configure() + + + + + + + def run(self, nruns): + if not "sampler" in dir(self): + print "call \"setupSampler\" first" + return + # this function class BeamOn(self.nevents) nruns times + # and fills a histogram with the number of tracks + # entered the 4th cell in the self.CellScorerList ("p_D2") + # at the end it prints a table of the scores + + + # get run manager and run 100 events + + r = self.base.GetRunManager() + tinold=self.CellScorerList[17].GetCellScoreValues().fSumTracksEntering + # run nruns runs with self.nevents events + # each and fill a histogram after each run + for i in range(nruns): + r.BeamOn(self.nevents) + tin = self.CellScorerList[17].GetCellScoreValues().fSumTracksEntering + v = tin-tinold + self.messurements.append(v) + tinold = tin + print "run number:", i+1, "messured: ", v + + # create a G4ScoreTable + st = G4ScoreTable(self.istore) + # get the result as table in a string + s = st.Write(self.cs_store.GetMapGeometryCellCellScorer()) + print s + + diff --git a/examples/extended/biasing/B03/B03RunApplication.py b/examples/extended/biasing/B03/B03RunApplication.py new file mode 100755 index 0000000000..64684d11e2 --- /dev/null +++ b/examples/extended/biasing/B03/B03RunApplication.py @@ -0,0 +1,44 @@ +#!/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0/bin/python2.2 + +# #!/opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0/bin/python2.2 + +# #!/usr/bin/env python2 + + +# This example needs python2.2 http://www.python.org or later. +# +# This script may be used without or with ANAPHE e.g. lizard. +# Without lizrd: just execute this file. +# With lizrd: start lizard and than do +# execfile("B03RunApplication.py") + +import string + + +execfile("B03Application.py") +#executing the application could be done "by hand" + +Bapp = B03Application(10) +Bapp.initializeApplication() +Bapp.setupParallelGeometry() +Bapp.createIstoreAndScorer() +Bapp.setupSampler() + +Bapp.run(30) + +# using lizard and ANAPHE to create a histogram +# check if lizrd is loaded by looking for the af instance of the AnalysisFactory +if 'af' in dir(): + tr = tf.create() + hf = af.createHistogramFactory(tr) + n = Bapp.nevents + minm = int(min(Bapp.messurements))-0.5 + maxm = int(max(Bapp.messurements)+1)+0.5 + h = hf.createHistogram1D ("10","Tracks entering in " + + '%(n)d' % vars() + + " events",30, minm, maxm) + for v in Bapp.messurements: + h.fill(v) + + hplot(h) + diff --git a/examples/extended/biasing/B03/GNUmakefile b/examples/extended/biasing/B03/GNUmakefile index 49dd68e02b..8b4b8db5cb 100644 --- a/examples/extended/biasing/B03/GNUmakefile +++ b/examples/extended/biasing/B03/GNUmakefile @@ -1,18 +1,41 @@ -# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:08 dressel Exp $ +# $Id: GNUmakefile,v 1.9 2002/11/19 15:03:58 mdressel Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- +# +# The variable PYTHON_DIR has to be setup. See ../README. +# name := exampleB03 G4TARGET := $(name) G4EXLIB := true + ifndef G4INSTALL G4INSTALL = ../../.. endif + .PHONY: all -all: lib bin -CPPFLAGS += +all: lib _B03App.so bin +include $(G4INSTALL)/config/architecture.gmk + + +CPPFLAGS += -I$(PYTHON_DIR)/include/python2.2/ + + + +LDFLAGS += \ + -L$(PYTHON_DIR)/lib/python2.2/config \ + -L/lib \ + -lnsl -ldl -lreadline /lib/libtermcap.so.2 -lieee -lpthread -lutil -lexampleB03 -lpython2.2 include $(G4INSTALL)/config/binmake.gmk + +libdir = $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) +objectfiles = $(shell /bin/ls $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name)/*.o) +_B03App.so: + @echo Creating shared library: $(libdir)/$@ + $(CXX) -Wl,-soname,$(@F) -shared $(LDFLAGS) $(LDLIBS) -L$(libdir) $(objectfiles) -o $(libdir)/$@ + + diff --git a/examples/extended/biasing/B03/buildit.sh b/examples/extended/biasing/B03/buildit.sh new file mode 100755 index 0000000000..e0174ecd2a --- /dev/null +++ b/examples/extended/biasing/B03/buildit.sh @@ -0,0 +1,22 @@ +#!/bin/tcsh +# The script uses swig to create c++ code according to the +# file include/B03App.i. It also creates the file B03App.py +# containing the python class wrappers. +# If you need to use this script you have to set the +# variable SWIG according to your installation of swig. + +# If you want to use this script please edit the file +# env.csh according to your installation of Anaphe and source +# it before running this script. + +source env.csh +cd include/ +echo Calling swig +set SWIG=${ANAPHE_BASE}/PublicDomainPackages/2.0.0/bin/swig-1.3.15 +$SWIG -python -c++ -shadow -no_default B03App.i +echo moving files +mv B03App_wrap.cxx ../src/B03App_wrap.cc +mv B03App.py ../ +cd .. +gmake + diff --git a/examples/extended/biasing/B03/env.csh b/examples/extended/biasing/B03/env.csh new file mode 100644 index 0000000000..becf6bcea3 --- /dev/null +++ b/examples/extended/biasing/B03/env.csh @@ -0,0 +1,18 @@ +# This is an example script for setting the environment variables +# if you are on a redhat6.1 system at CERN. +# Please source this file before compiling and running +# the example. + +#if using afs +setenv PYTHON_DIR /afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0 + +# if Anaphe is installed in /opt +#setenv PYTHON_DIR /opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0 + + +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03 +setenv PYTHONPATH $LD_LIBRARY_PATH. + +echo WARNING SETTING: G4LIB_BUILD_SHARED 1 +setenv G4LIB_BUILD_SHARED 1 + diff --git a/examples/extended/biasing/B03/exampleB03.cc b/examples/extended/biasing/B03/exampleB03.cc index ce41660831..fbb768086d 100644 --- a/examples/extended/biasing/B03/exampleB03.cc +++ b/examples/extended/biasing/B03/exampleB03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB03.cc,v 1.6 2002/05/31 11:46:23 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: exampleB03.cc,v 1.10 2002/11/18 13:22:48 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -30,53 +30,21 @@ // // -------------------------------------------------------------- // Comments +// This main may not be used at all. Instead you may use python or +// lizard an execute the script B03RunApplication in them. // +// This main function may used to test B03AppBase::GetB03AppBase(). // // -------------------------------------------------------------- -#include "G4VPhysicalVolume.hh" -#include "G4RunManager.hh" -#include "G4UImanager.hh" - -#include "B03DetectorConstruction.hh" -#include "B03PhysicsList.hh" -#include "B03PrimaryGeneratorAction.hh" - -// Files specific for biasing -#include "G4MassImportanceSampler.hh" +#include "B03App.hh" +#include "globals.hh" int main(int argc, char **argv) { - G4int numberOfEvent = 1000; - - G4String random_status_out_file, random_status_in_file; - G4long myseed = 345354; - - HepRandom::setTheSeed(myseed); - - G4RunManager *runManager = new G4RunManager; - - // create the detector --------------------------- - B03DetectorConstruction *detector = new B03DetectorConstruction(); - runManager->SetUserInitialization(detector); - // --------------------------------------------------- - runManager->SetUserInitialization(new B03PhysicsList); - runManager->SetUserAction(new B03PrimaryGeneratorAction); - runManager->Initialize(); - - // the IStore is filled during detector construction - G4VIStore &aIstore = *detector->GetIStore(); - // create the importance sampler for biasing in the tracking world - G4MassImportanceSampler mim(aIstore, "neutron"); - mim.Initialize(); - - G4UImanager* UI; - - UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/control/execute init.mac"); - - runManager->BeamOn(numberOfEvent); + B03AppBase &base = B03AppBase::GetB03AppBase(); return 0; } + diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out index e8e71ac972..9144f88a11 100644 --- a/examples/extended/biasing/B03/exampleB03.out +++ b/examples/extended/biasing/B03/exampleB03.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** Going to assign importance: 1, to volumeworldCylinder_phys diff --git a/examples/extended/biasing/B03/include/B03App.hh b/examples/extended/biasing/B03/include/B03App.hh new file mode 100644 index 0000000000..8792008e61 --- /dev/null +++ b/examples/extended/biasing/B03/include/B03App.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: B03App.hh,v 1.3 2002/12/13 11:26:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +#ifndef B03App_hh +#define B03App_hh B03App_hh + +class G4RunManager; +class B03PrimaryGeneratorAction; +class B03PhysicsList; +class B03DetectorConstruction; + +class B03AppBase { +public: + ~B03AppBase(); + static B03AppBase &GetB03AppBase(); + G4RunManager &GetRunManager(){return *frunMgr;} + +private: + B03AppBase(); + static B03AppBase *fB03AppBase; + G4RunManager *frunMgr; + + B03DetectorConstruction *fDetector; + B03PrimaryGeneratorAction *fPrimary; + B03PhysicsList *fPhysics; +}; + +// B03AppBase *GetB03AppBase(); + + + +#endif + + + + + + + + + + diff --git a/examples/extended/biasing/B03/include/B03App.i b/examples/extended/biasing/B03/include/B03App.i new file mode 100644 index 0000000000..c164a2ee1d --- /dev/null +++ b/examples/extended/biasing/B03/include/B03App.i @@ -0,0 +1,178 @@ +%module B03App +%{ +#include "globals.hh" +#include "B03App.hh" +#include "G4RunManager.hh" +#include "G4IStore.hh" +#include "G4VCellScorerStore.hh" +#include "G4VScorer.hh" +#include "G4ParallelGeometrySampler.hh" +#include "G4CellScorerStore.hh" +#include "G4CellStoreScorer.hh" +#include "G4GeometryCell.hh" +#include "G4CellScoreComposer.hh" +#include "G4CellScoreValues.hh" +#include "G4CellScorer.hh" +#include "G4ScoreTable.hh" +#include "G4VIStore.hh" +#include +#include "g4std/strstream" +#include +#include "G4VPhysicalVolume.hh" +#include "B03ImportanceDetectorConstruction.hh" +#include "G4VImportanceAlgorithm.hh" +%} + +class G4RunManager { +public: + void BeamOn(int e); +}; + +class G4VIStore{ +}; + +class G4VPhysicalVolume { +}; + +class G4GeometryCell{ +public: + G4GeometryCell(const G4VPhysicalVolume &aVolume, int RepNum); + ~G4GeometryCell(); + const G4VPhysicalVolume &GetPhysicalVolume() const; + int GetReplicaNumber() const; +}; + +class G4IStore : public G4VIStore{ +public: + G4IStore(const G4VPhysicalVolume &worldvolume); + ~G4IStore(); + void AddImportanceGeometryCell(double importance, + const G4GeometryCell &gCell); + void ChangeImportance(double importance, + const G4GeometryCell &gCell); + double GetImportance(const G4GeometryCell &gCell) const; + bool IsKnown(const G4GeometryCell &gCell) const; + const G4VPhysicalVolume &GetWorldVolume() const; +}; + + +struct G4CellScoreValues { + G4CellScoreValues(); + double fSumSL; + double fSumSLW; + double fSumSLW_v; + double fSumSLWE; + double fSumSLWE_v; + int fSumTracksEntering; + int fSumPopulation; + int fSumCollisions; + double fSumCollisionsWeight; + double fNumberWeightedEnergy; + double fFluxWeightedEnergy; + double fAverageTrackWeight; + double fImportance; +}; + + +class G4CellScoreComposer { +public: + G4CellScoreComposer(); + ~G4CellScoreComposer(); + G4CellScoreValues GetStandardCellScoreValues() const; +}; + + +class G4CellScorer{ +public: + G4CellScoreComposer GetCellScoreComposer() const; + G4CellScoreValues GetCellScoreValues() const; +}; + +typedef G4std::map G4MapGeometryCellCellScorer; + +class G4VCellScorerStore{ +}; + +class G4CellScorerStore : public G4VCellScorerStore{ +public: + G4CellScorerStore(); + ~G4CellScorerStore(); + void SetAutoScorerCreate(); + G4CellScorer *AddCellScorer(const G4GeometryCell &gCell); + const G4MapGeometryCellCellScorer &GetMapGeometryCellCellScorer() const; +}; + +class G4VScorer{ +}; + +class G4CellStoreScorer : public G4VScorer{ +public: + G4CellStoreScorer(G4VCellScorerStore &csc); +}; + +class G4VImportanceAlgorithm{ +}; + +class G4ParallelGeometrySampler{ +public: + G4ParallelGeometrySampler(G4VPhysicalVolume &worldvolume, + const char *); + ~G4ParallelGeometrySampler(); + void PrepareScoring(G4VScorer *Scorer); + void PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm *ialg = 0); + void PrepareWeightRoulett(G4double wsurvive, + G4double wlimit, + G4double isource); + + void Configure(); + + void ClearSampling(); + G4bool IsConfigured() const; +}; + +class G4ScoreTable +{ +public: + G4ScoreTable(const G4VIStore *aIStore = 0); + ~G4ScoreTable(){} + void Print(const G4MapGeometryCellCellScorer &cs, + G4std::ostream *out = 0); + %extend { + const char *Write(const G4MapGeometryCellCellScorer &cs){ + G4std::ostrstream tmpout; + self->Print(cs, &tmpout); + string *value = new string(tmpout.str()); + return value->c_str(); + }; + } +}; + +class B03ImportanceDetectorConstruction{ +public: + B03ImportanceDetectorConstruction(); + ~B03ImportanceDetectorConstruction(); + + const G4VPhysicalVolume &GetPhysicalVolumeByName(const char *name) const; + G4VPhysicalVolume &GetWorldVolume() const; + %extend { + const char *ListPhysNames(){ + G4String *value = new G4String(self->ListPhysNamesAsG4String()); + return value->c_str(); + } + } + G4GeometryCell GetGeometryCell(int i); +}; + +class B03AppBase{ +public: + ~B03AppBase(); + static B03AppBase &GetB03AppBase(); + G4RunManager &GetRunManager(); +private: + B03AppBase(); + +}; + + + diff --git a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh index 8c0a2695a2..f7c9535a53 100644 --- a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh +++ b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh @@ -21,18 +21,16 @@ // ******************************************************************** // // -// $Id: B03DetectorConstruction.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B03DetectorConstruction.hh,v 1.4 2002/11/08 17:35:18 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef B03DetectorConstruction_hh #define B03DetectorConstruction_hh B03DetectorConstruction_hh -#include "globals.hh" -#include "G4VUserDetectorConstruction.hh" - class G4VPhysicalVolume; -class G4VIStore; + +#include "G4VUserDetectorConstruction.hh" class B03DetectorConstruction : public G4VUserDetectorConstruction { @@ -41,10 +39,6 @@ public: ~B03DetectorConstruction(); G4VPhysicalVolume* Construct(); - G4VIStore* GetIStore(); - -private: - G4VIStore *fIStore; }; #endif diff --git a/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh new file mode 100644 index 0000000000..e05f345c45 --- /dev/null +++ b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.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: B03ImportanceDetectorConstruction.hh,v 1.1 2002/11/08 17:35:18 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + +#ifndef B03ImportanceDetectorConstruction_hh +#define B03ImportanceDetectorConstruction_hh B03ImportanceDetectorConstruction_hh + +#include "globals.hh" +#include "g4std/map" +#include "B03PVolumeStore.hh" +class G4VPhysicalVolume; + + + +class B03ImportanceDetectorConstruction +{ +public: + B03ImportanceDetectorConstruction(); + ~B03ImportanceDetectorConstruction(); + + const G4VPhysicalVolume &GetPhysicalVolumeByName(const G4String& name) const; + G4VPhysicalVolume &GetWorldVolume() const; + G4String ListPhysNamesAsG4String(); + G4String GetCellName(G4int i); + G4GeometryCell GetGeometryCell(G4int i); + +private: + void Construct(); + B03PVolumeStore fPVolumeStore;; + G4VPhysicalVolume *fWorldVolume; +}; + +#endif diff --git a/examples/extended/biasing/B03/include/B03PVolumeStore.hh b/examples/extended/biasing/B03/include/B03PVolumeStore.hh new file mode 100644 index 0000000000..16709704c1 --- /dev/null +++ b/examples/extended/biasing/B03/include/B03PVolumeStore.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: B03PVolumeStore.hh,v 1.1 2002/11/08 17:35:18 dressel Exp $ +// GEANT4 tag +// +// ---------------------------------------------------------------------- +// Class B03PVolumeStore +// +// Class description: +// +// ... + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef B03PVolumeStore_hh +#define B03PVolumeStore_hh B03PVolumeStore_hh + +#include "globals.hh" +#include "g4std/set" +#include "G4GeometryCell.hh" +#include "G4GeometryCellComp.hh" + +typedef G4std::set< G4GeometryCell, G4GeometryCellComp > B03SetGeometryCell; + +class B03PVolumeStore { +public: + B03PVolumeStore(); + ~B03PVolumeStore(); + + void AddPVolume(const G4GeometryCell &cell); + const G4VPhysicalVolume *GetPVolume(const G4String &name) const; + G4String GetPNames() const; + +private: + B03SetGeometryCell fSetGeometryCell; +}; + + + +#endif diff --git a/examples/extended/biasing/B03/include/B03PhysicsList.hh b/examples/extended/biasing/B03/include/B03PhysicsList.hh index b829846a2b..045591dfea 100644 --- a/examples/extended/biasing/B03/include/B03PhysicsList.hh +++ b/examples/extended/biasing/B03/include/B03PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B03PhysicsList.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B03PhysicsList.hh,v 1.3 2002/11/08 17:35:18 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef B03PhysicsList_h @@ -42,16 +42,15 @@ class B03PhysicsList : public G4VUserPhysicsList virtual void ConstructParticle(); virtual void ConstructProcess(); - // virtual void SetCuts(); protected: - // these methods Construct physics processes and register them + // these methods Construct physics processes and register them virtual void ConstructGeneral(); virtual void ConstructEM(); virtual void ConstructHad(); virtual void ConstructLeptHad(); - // + void ConstructAllBosons(); void ConstructAllLeptons(); void ConstructAllMesons(); diff --git a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh index 1eebfda3a4..705160087f 100644 --- a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh +++ b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B03PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B03PrimaryGeneratorAction.hh,v 1.3 2002/11/08 17:35:18 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef B03PrimaryGeneratorAction_hh diff --git a/examples/extended/biasing/B03/init.mac b/examples/extended/biasing/B03/init.mac deleted file mode 100644 index 8289dbdb42..0000000000 --- a/examples/extended/biasing/B03/init.mac +++ /dev/null @@ -1,4 +0,0 @@ -/control/verbose 0 -/run/verbose 0 -/event/verbose 0 -/tracking/verbose 0 diff --git a/examples/extended/biasing/B03/python.rc b/examples/extended/biasing/B03/python.rc new file mode 100644 index 0000000000..8eefd84440 --- /dev/null +++ b/examples/extended/biasing/B03/python.rc @@ -0,0 +1,8 @@ +# for command-line completion : +import sys +import rlcompleter +rlcompleter.readline.parse_and_bind("tab: complete") + + + + diff --git a/examples/extended/biasing/B04/exampleB04.cc b/examples/extended/biasing/B03/src/B03App.cc similarity index 56% rename from examples/extended/biasing/B04/exampleB04.cc rename to examples/extended/biasing/B03/src/B03App.cc index 2fe9cd8b5a..c01089d73d 100644 --- a/examples/extended/biasing/B04/exampleB04.cc +++ b/examples/extended/biasing/B03/src/B03App.cc @@ -20,62 +20,72 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: B03App.cc,v 1.3 2002/12/13 11:26:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: exampleB04.cc,v 1.5 2002/05/31 11:46:23 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// -------------------------------------------------------------- -// GEANT 4 - exampleB04 -// -// -------------------------------------------------------------- -// Comments -// -// -// -------------------------------------------------------------- +// -------------------------------------------------------------------- +#include "B03App.hh" +#include "g4std/iostream" + +#include "CLHEP/Random/Random.h" -#include "G4VPhysicalVolume.hh" #include "G4RunManager.hh" -#include "B04DetectorConstruction.hh" -#include "B04PhysicsList.hh" -#include "B04PrimaryGeneratorAction.hh" +#include "G4VPhysicalVolume.hh" +#include "B03DetectorConstruction.hh" +#include "B03PhysicsList.hh" +#include "B03PrimaryGeneratorAction.hh" -#include "B04ImportanceDetectorConstruction.hh" -// Files specific for biasing -#include "G4ParallelImportanceSampler.hh" +B03AppBase *B03AppBase::fB03AppBase = 0; +B03AppBase &B03AppBase::GetB03AppBase() { + if (!fB03AppBase) { + fB03AppBase = new B03AppBase; + } + return *fB03AppBase; +} -int main(int argc, char **argv) -{ - G4int numberOfEvent = 1000; - - G4String random_status_out_file, random_status_in_file; +B03AppBase::B03AppBase(){ G4long myseed = 345354; HepRandom::setTheSeed(myseed); - G4RunManager *runManager = new G4RunManager; + frunMgr = new G4RunManager; // create the "tracking" detector ----------------- - runManager->SetUserInitialization(new B04DetectorConstruction); + fDetector = new B03DetectorConstruction; + frunMgr->SetUserInitialization(fDetector); // --------------------------------------------------- - runManager->SetUserInitialization(new B04PhysicsList); - runManager->SetUserAction(new B04PrimaryGeneratorAction); - runManager->Initialize(); + fPhysics = new B03PhysicsList; + frunMgr->SetUserInitialization(fPhysics); + fPrimary = new B03PrimaryGeneratorAction; + frunMgr->SetUserAction(fPrimary); + frunMgr->Initialize(); - // create the detector for the importances - B04ImportanceDetectorConstruction importancedetector; - importancedetector.Construct(); + /* + // create the detector for the importances and scoring + fImportancedetector + = new B03ImportanceDetectorConstruction(); // the IStore is filled during detector construction - G4VIStore &aIstore = *importancedetector.GetIStore(); - - // create importance sampler to importance sample neutrons - // in the importance geometry - G4ParallelImportanceSampler pmgr(aIstore, "neutron"); - pmgr.Initialize(); - - runManager->BeamOn(numberOfEvent); - return 0; + fIStore = fImportancedetector->GetIStore(); + + // create importance sampler to importance sample neutrons + // in the importance geometry + fCS_store = + &fImportancedetector->GetCellScorerStore(); + fCS_scorer = new G4CellStoreScorer(*fCS_store); + fPmgr = new + G4ParallelImportanceScoreSampler(*fIStore, *fCS_scorer, "neutron"); + fPmgr->Initialize(); + */ } + +B03AppBase::~B03AppBase(){ + delete fPrimary; + delete fPhysics; + delete fDetector; + delete frunMgr; +} + + diff --git a/examples/extended/biasing/B03/src/B03App_wrap.cc b/examples/extended/biasing/B03/src/B03App_wrap.cc new file mode 100644 index 0000000000..b3b1264080 --- /dev/null +++ b/examples/extended/biasing/B03/src/B03App_wrap.cc @@ -0,0 +1,2314 @@ +// +// ******************************************************************** +// * 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 was automatically generated by SWIG (http://www.swig.org). + * Version 1.3.15u-20021012-1750 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +#define SWIGPYTHON + +#ifdef __cplusplus +template class SwigValueWrapper { + T *tt; +public: + inline SwigValueWrapper() : tt(0) { } + inline ~SwigValueWrapper() { if (tt) delete tt; } + inline SwigValueWrapper& operator=(const T& t) { tt = new T(t); return *this; } + inline operator T&() const { return *tt; } + inline T *operator&() { return tt; } +}; +#endif + + +#include "Python.h" + +/*********************************************************************** + * common.swg + * + * This file contains generic SWIG runtime support for pointer + * type checking as well as a few commonly used macros to control + * external linkage. + * + * Author : David Beazley (beazley@cs.uchicago.edu) + * + * Copyright (c) 1999-2000, The University of Chicago + * + * This file may be freely redistributed without license or fee provided + * this copyright message remains intact. + ************************************************************************/ + +#include + +#if defined(_WIN32) || defined(__WIN32__) +# if defined(_MSC_VER) +# if defined(STATIC_LINKED) +# define SWIGEXPORT(a) a +# define SWIGIMPORT(a) extern a +# else +# define SWIGEXPORT(a) __declspec(dllexport) a +# define SWIGIMPORT(a) extern a +# endif +# else +# if defined(__BORLANDC__) +# define SWIGEXPORT(a) a _export +# define SWIGIMPORT(a) a _export +# else +# define SWIGEXPORT(a) a +# define SWIGIMPORT(a) a +# endif +# endif +#else +# define SWIGEXPORT(a) a +# define SWIGIMPORT(a) a +#endif + +#ifdef SWIG_GLOBAL +#define SWIGRUNTIME(a) SWIGEXPORT(a) +#else +#define SWIGRUNTIME(a) static a +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void *(*swig_converter_func)(void *); +typedef struct swig_type_info *(*swig_dycast_func)(void **); + +typedef struct swig_type_info { + const char *name; + swig_converter_func converter; + const char *str; + void *clientdata; + swig_dycast_func dcast; + struct swig_type_info *next; + struct swig_type_info *prev; +} swig_type_info; + +#ifdef SWIG_NOINCLUDE + +SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *); +SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *); +SWIGIMPORT(void *) SWIG_TypeCast(swig_type_info *, void *); +SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **); +SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *); +SWIGIMPORT(void) SWIG_TypeClientData(swig_type_info *, void *); + +#else + +static swig_type_info *swig_type_list = 0; + +/* Register a type mapping with the type-checking */ +SWIGRUNTIME(swig_type_info *) +SWIG_TypeRegister(swig_type_info *ti) +{ + swig_type_info *tc, *head, *ret, *next; + /* Check to see if this type has already been registered */ + tc = swig_type_list; + while (tc) { + if (strcmp(tc->name, ti->name) == 0) { + /* Already exists in the table. Just add additional types to the list */ + if (tc->clientdata) ti->clientdata = tc->clientdata; + head = tc; + next = tc->next; + goto l1; + } + tc = tc->prev; + } + head = ti; + next = 0; + + /* Place in list */ + ti->prev = swig_type_list; + swig_type_list = ti; + + /* Build linked lists */ + l1: + ret = head; + tc = ti + 1; + /* Patch up the rest of the links */ + while (tc->name) { + head->next = tc; + tc->prev = head; + head = tc; + tc++; + } + head->next = next; + return ret; +} + +/* Check the typename */ +SWIGRUNTIME(swig_type_info *) +SWIG_TypeCheck(char *c, swig_type_info *ty) +{ + swig_type_info *s; + if (!ty) return 0; /* Void pointer */ + s = ty->next; /* First element always just a name */ + do { + if (strcmp(s->name,c) == 0) { + if (s == ty->next) return s; + /* Move s to the top of the linked list */ + s->prev->next = s->next; + if (s->next) { + s->next->prev = s->prev; + } + /* Insert s as second element in the list */ + s->next = ty->next; + if (ty->next) ty->next->prev = s; + ty->next = s; + return s; + } + s = s->next; + } while (s && (s != ty->next)); + return 0; +} + +/* Cast a pointer up an inheritance hierarchy */ +SWIGRUNTIME(void *) +SWIG_TypeCast(swig_type_info *ty, void *ptr) +{ + if ((!ty) || (!ty->converter)) return ptr; + return (*ty->converter)(ptr); +} + +/* Dynamic pointer casting. Down an inheritance hierarchy */ +SWIGRUNTIME(swig_type_info *) +SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) +{ + swig_type_info *lastty = ty; + if (!ty || !ty->dcast) return ty; + while (ty && (ty->dcast)) { + ty = (*ty->dcast)(ptr); + if (ty) lastty = ty; + } + return lastty; +} + +/* Search for a swig_type_info structure */ +SWIGRUNTIME(swig_type_info *) +SWIG_TypeQuery(const char *name) { + swig_type_info *ty = swig_type_list; + while (ty) { + if (ty->str && (strcmp(name,ty->str) == 0)) return ty; + if (ty->name && (strcmp(name,ty->name) == 0)) return ty; + ty = ty->prev; + } + return 0; +} + +/* Set the clientdata field for a type */ +SWIGRUNTIME(void) +SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { + swig_type_info *tc, *equiv; + if (ti->clientdata) return; + ti->clientdata = clientdata; + equiv = ti->next; + while (equiv) { + if (!equiv->converter) { + tc = swig_type_list; + while (tc) { + if ((strcmp(tc->name, equiv->name) == 0)) + SWIG_TypeClientData(tc,clientdata); + tc = tc->prev; + } + } + equiv = equiv->next; + } +} +#endif + +#ifdef __cplusplus +} + +#endif + +/*********************************************************************** + * python.swg + * + * This file contains the runtime support for Python modules + * and includes code for managing global variables and pointer + * type checking. + * + * Author : David Beazley (beazley@cs.uchicago.edu) + ************************************************************************/ + +#include "Python.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define SWIG_PY_INT 1 +#define SWIG_PY_FLOAT 2 +#define SWIG_PY_STRING 3 +#define SWIG_PY_POINTER 4 +#define SWIG_PY_BINARY 5 + +/* Flags for pointer conversion */ + +#define SWIG_POINTER_EXCEPTION 0x1 +#define SWIG_POINTER_DISOWN 0x2 + +/* Exception handling in wrappers */ +#define SWIG_fail goto fail + +/* Constant information structure */ +typedef struct swig_const_info { + int type; + char *name; + long lvalue; + double dvalue; + void *pvalue; + swig_type_info **ptype; +} swig_const_info; + +#ifdef SWIG_NOINCLUDE + +SWIGEXPORT(PyObject *) SWIG_newvarlink(); +SWIGEXPORT(void) SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); +SWIGEXPORT(int) SWIG_ConvertPtr(PyObject *, void **, swig_type_info *, int); +SWIGEXPORT(int) SWIG_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int); +SWIGEXPORT(char *) SWIG_PackData(char *c, void *, int); +SWIGEXPORT(char *) SWIG_UnpackData(char *c, void *, int); +SWIGEXPORT(PyObject *) SWIG_NewPointerObj(void *, swig_type_info *,int own); +SWIGEXPORT(PyObject *) SWIG_NewPackedObj(void *, int sz, swig_type_info *); +SWIGEXPORT(void) SWIG_InstallConstants(PyObject *d, swig_const_info constants[]); +#else + +/* ----------------------------------------------------------------------------- + * global variable support code. + * ----------------------------------------------------------------------------- */ + +typedef struct swig_globalvar { + char *name; /* Name of global variable */ + PyObject *(*get_attr)(void); /* Return the current value */ + int (*set_attr)(PyObject *); /* Set the value */ + struct swig_globalvar *next; +} swig_globalvar; + +typedef struct swig_varlinkobject { + PyObject_HEAD + swig_globalvar *vars; +} swig_varlinkobject; + +static PyObject * +swig_varlink_repr(swig_varlinkobject *v) { + v = v; + return PyString_FromString(""); +} + +static int +swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) { + swig_globalvar *var; + flags = flags; + fprintf(fp,"Global variables { "); + for (var = v->vars; var; var=var->next) { + fprintf(fp,"%s", var->name); + if (var->next) fprintf(fp,", "); + } + fprintf(fp," }\n"); + return 0; +} + +static PyObject * +swig_varlink_getattr(swig_varlinkobject *v, char *n) { + swig_globalvar *var = v->vars; + while (var) { + if (strcmp(var->name,n) == 0) { + return (*var->get_attr)(); + } + var = var->next; + } + PyErr_SetString(PyExc_NameError,"Unknown C global variable"); + return NULL; +} + +static int +swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { + swig_globalvar *var = v->vars; + while (var) { + if (strcmp(var->name,n) == 0) { + return (*var->set_attr)(p); + } + var = var->next; + } + PyErr_SetString(PyExc_NameError,"Unknown C global variable"); + return 1; +} + +statichere PyTypeObject varlinktype = { + PyObject_HEAD_INIT(0) + 0, + (char *)"swigvarlink", /* Type name */ + sizeof(swig_varlinkobject), /* Basic size */ + 0, /* Itemsize */ + 0, /* Deallocator */ + (printfunc) swig_varlink_print, /* Print */ + (getattrfunc) swig_varlink_getattr, /* get attr */ + (setattrfunc) swig_varlink_setattr, /* Set attr */ + 0, /* tp_compare */ + (reprfunc) swig_varlink_repr, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_mapping*/ + 0, /* tp_hash */ +}; + +/* Create a variable linking object for use later */ +SWIGRUNTIME(PyObject *) +SWIG_newvarlink(void) { + swig_varlinkobject *result = 0; + result = PyMem_NEW(swig_varlinkobject,1); + varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ + result->ob_type = &varlinktype; + result->vars = 0; + result->ob_refcnt = 0; + Py_XINCREF((PyObject *) result); + return ((PyObject*) result); +} + +SWIGRUNTIME(void) +SWIG_addvarlink(PyObject *p, char *name, + PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { + swig_varlinkobject *v; + swig_globalvar *gv; + v= (swig_varlinkobject *) p; + gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); + gv->name = (char *) malloc(strlen(name)+1); + strcpy(gv->name,name); + gv->get_attr = get_attr; + gv->set_attr = set_attr; + gv->next = v->vars; + v->vars = gv; +} + +/* Pack binary data into a string */ +SWIGRUNTIME(char *) +SWIG_PackData(char *c, void *ptr, int sz) { + static char hex[17] = "0123456789abcdef"; + int i; + unsigned char *u = (unsigned char *) ptr; + register unsigned char uu; + for (i = 0; i < sz; i++,u++) { + uu = *u; + *(c++) = hex[(uu & 0xf0) >> 4]; + *(c++) = hex[uu & 0xf]; + } + return c; +} + +/* Unpack binary data from a string */ +SWIGRUNTIME(char *) +SWIG_UnpackData(char *c, void *ptr, int sz) { + register unsigned char uu = 0; + register int d; + unsigned char *u = (unsigned char *) ptr; + int i; + for (i = 0; i < sz; i++, u++) { + d = *(c++); + if ((d >= '0') && (d <= '9')) + uu = ((d - '0') << 4); + else if ((d >= 'a') && (d <= 'f')) + uu = ((d - ('a'-10)) << 4); + d = *(c++); + if ((d >= '0') && (d <= '9')) + uu |= (d - '0'); + else if ((d >= 'a') && (d <= 'f')) + uu |= (d - ('a'-10)); + *u = uu; + } + return c; +} + +/* Convert a pointer value */ +SWIGRUNTIME(int) +SWIG_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { + swig_type_info *tc; + char *c; + static PyObject *SWIG_this = 0; + int newref = 0; + PyObject *pyobj = 0; + + if (!obj) return 0; + if (obj == Py_None) { + *ptr = 0; + return 0; + } +#ifdef SWIG_COBJECT_TYPES + if (!(PyCObject_Check(obj))) { + if (!SWIG_this) + SWIG_this = PyString_FromString("this"); + pyobj = obj; + obj = PyObject_GetAttr(obj,SWIG_this); + newref = 1; + if (!obj) goto type_error; + if (!PyCObject_Check(obj)) { + Py_DECREF(obj); + goto type_error; + } + } + *ptr = PyCObject_AsVoidPtr(obj); + c = (char *) PyCObject_GetDesc(obj); + if (newref) Py_DECREF(obj); + goto cobject; +#else + if (!(PyString_Check(obj))) { + if (!SWIG_this) + SWIG_this = PyString_FromString("this"); + pyobj = obj; + obj = PyObject_GetAttr(obj,SWIG_this); + newref = 1; + if (!obj) goto type_error; + if (!PyString_Check(obj)) { + Py_DECREF(obj); + goto type_error; + } + } + c = PyString_AsString(obj); + /* Pointer values must start with leading underscore */ + if (*c != '_') { + *ptr = (void *) 0; + if (strcmp(c,"NULL") == 0) { + if (newref) { Py_DECREF(obj); } + return 0; + } else { + if (newref) { Py_DECREF(obj); } + goto type_error; + } + } + c++; + c = SWIG_UnpackData(c,ptr,sizeof(void *)); + if (newref) { Py_DECREF(obj); } +#endif + +#ifdef SWIG_COBJECT_TYPES +cobject: +#endif + + if (ty) { + tc = SWIG_TypeCheck(c,ty); + if (!tc) goto type_error; + *ptr = SWIG_TypeCast(tc,(void*) *ptr); + } + + if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { + PyObject *zero = PyInt_FromLong(0); + PyObject_SetAttrString(pyobj,"thisown",zero); + Py_DECREF(zero); + } + return 0; + +type_error: + if (flags & SWIG_POINTER_EXCEPTION) { + if (ty) { + char *temp = (char *) malloc(64+strlen(ty->name)); + sprintf(temp,"Type error. Expected %s", ty->name); + PyErr_SetString(PyExc_TypeError, temp); + free((char *) temp); + } else { + PyErr_SetString(PyExc_TypeError,"Expected a pointer"); + } + } + return -1; +} + +/* Convert a packed value value */ +SWIGRUNTIME(int) +SWIG_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) { + swig_type_info *tc; + char *c; + + if ((!obj) || (!PyString_Check(obj))) goto type_error; + c = PyString_AsString(obj); + /* Pointer values must start with leading underscore */ + if (*c != '_') goto type_error; + c++; + c = SWIG_UnpackData(c,ptr,sz); + if (ty) { + tc = SWIG_TypeCheck(c,ty); + if (!tc) goto type_error; + } + return 0; + +type_error: + + if (flags) { + if (ty) { + char *temp = (char *) malloc(64+strlen(ty->name)); + sprintf(temp,"Type error. Expected %s", ty->name); + PyErr_SetString(PyExc_TypeError, temp); + free((char *) temp); + } else { + PyErr_SetString(PyExc_TypeError,"Expected a pointer"); + } + } + return -1; +} + +/* Create a new pointer object */ +SWIGRUNTIME(PyObject *) +SWIG_NewPointerObj(void *ptr, swig_type_info *type, int own) { + PyObject *robj; + if (!ptr) { + Py_INCREF(Py_None); + return Py_None; + } +#ifdef SWIG_COBJECT_TYPES + robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL); +#else + { + char result[1024]; + char *r = result; + *(r++) = '_'; + r = SWIG_PackData(r,&ptr,sizeof(void *)); + strcpy(r,type->name); + robj = PyString_FromString(result); + } +#endif + if (!robj || (robj == Py_None)) return robj; + if (type->clientdata) { + PyObject *inst; + PyObject *args = Py_BuildValue((char*)"(O)", robj); + Py_DECREF(robj); + inst = PyObject_CallObject((PyObject *) type->clientdata, args); + Py_DECREF(args); + if (inst) { + if (own) { + PyObject *n = PyInt_FromLong(1); + PyObject_SetAttrString(inst,(char*)"thisown",n); + Py_DECREF(n); + } + robj = inst; + } + } + return robj; +} + +SWIGRUNTIME(PyObject *) +SWIG_NewPackedObj(void *ptr, int sz, swig_type_info *type) { + char result[1024]; + char *r = result; + if ((2*sz + 1 + strlen(type->name)) > 1000) return 0; + *(r++) = '_'; + r = SWIG_PackData(r,ptr,sz); + strcpy(r,type->name); + return PyString_FromString(result); +} + +/* Install Constants */ +SWIGRUNTIME(void) +SWIG_InstallConstants(PyObject *d, swig_const_info constants[]) { + int i; + PyObject *obj; + for (i = 0; constants[i].type; i++) { + switch(constants[i].type) { + case SWIG_PY_INT: + obj = PyInt_FromLong(constants[i].lvalue); + break; + case SWIG_PY_FLOAT: + obj = PyFloat_FromDouble(constants[i].dvalue); + break; + case SWIG_PY_STRING: + obj = PyString_FromString((char *) constants[i].pvalue); + break; + case SWIG_PY_POINTER: + obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); + break; + case SWIG_PY_BINARY: + obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); + break; + default: + obj = 0; + break; + } + if (obj) { + PyDict_SetItemString(d,constants[i].name,obj); + Py_DECREF(obj); + } + } +} + +#endif + +#ifdef __cplusplus +} +#endif + + + + + + + + +/* -------- TYPES TABLE (BEGIN) -------- */ + +#define SWIGTYPE_p_G4RunManager swig_types[0] +#define SWIGTYPE_p_G4ScoreTable swig_types[1] +#define SWIGTYPE_p_G4VImportanceAlgorithm swig_types[2] +#define SWIGTYPE_p_G4CellScoreValues swig_types[3] +#define SWIGTYPE_p_G4IStore swig_types[4] +#define SWIGTYPE_p_G4VIStore swig_types[5] +#define SWIGTYPE_p_G4ParallelGeometrySampler swig_types[6] +#define SWIGTYPE_p_G4CellScorerStore swig_types[7] +#define SWIGTYPE_p_G4VCellScorerStore swig_types[8] +#define SWIGTYPE_p_B03AppBase swig_types[9] +#define SWIGTYPE_p_G4std__ostream swig_types[10] +#define SWIGTYPE_p_G4CellStoreScorer swig_types[11] +#define SWIGTYPE_p_G4CellScoreComposer swig_types[12] +#define SWIGTYPE_p_G4GeometryCell swig_types[13] +#define SWIGTYPE_p_G4MapGeometryCellCellScorer swig_types[14] +#define SWIGTYPE_p_G4CellScorer swig_types[15] +#define SWIGTYPE_p_G4VScorer swig_types[16] +#define SWIGTYPE_p_G4bool swig_types[17] +#define SWIGTYPE_p_G4VPhysicalVolume swig_types[18] +#define SWIGTYPE_p_G4double swig_types[19] +#define SWIGTYPE_p_B03ImportanceDetectorConstruction swig_types[20] +static swig_type_info *swig_types[22]; + +/* -------- TYPES TABLE (END) -------- */ + + +/*----------------------------------------------- + @(target):= _B03App.so + ------------------------------------------------*/ +#define SWIG_init init_B03App + +#define SWIG_name "_B03App" + +#include "globals.hh" +#include "B03App.hh" +#include "G4RunManager.hh" +#include "G4IStore.hh" +#include "G4VCellScorerStore.hh" +#include "G4VScorer.hh" +#include "G4ParallelGeometrySampler.hh" +#include "G4CellScorerStore.hh" +#include "G4CellStoreScorer.hh" +#include "G4GeometryCell.hh" +#include "G4CellScoreComposer.hh" +#include "G4CellScoreValues.hh" +#include "G4CellScorer.hh" +#include "G4ScoreTable.hh" +#include "G4VIStore.hh" +#include +#include "g4std/strstream" +#include +#include "G4VPhysicalVolume.hh" +#include "B03ImportanceDetectorConstruction.hh" +#include "G4VImportanceAlgorithm.hh" + +char const *G4ScoreTable_Write(G4ScoreTable *self,G4MapGeometryCellCellScorer const &cs){ + G4std::ostrstream tmpout; + self->Print(cs, &tmpout); + string *value = new string(tmpout.str()); + return value->c_str(); + } +char const *B03ImportanceDetectorConstruction_ListPhysNames(B03ImportanceDetectorConstruction *self){ + G4String *value = new G4String(self->ListPhysNamesAsG4String()); + return value->c_str(); + } +#ifdef __cplusplus +extern "C" { +#endif +static PyObject *_wrap_G4RunManager_BeamOn(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4RunManager *arg1 ; + int arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Oi:G4RunManager_BeamOn",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4RunManager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->BeamOn(arg2); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4RunManager_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4RunManager, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject * G4VIStore_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4VIStore, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject * G4VPhysicalVolume_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4VPhysicalVolume, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4GeometryCell(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4VPhysicalVolume *arg1 ; + int arg2 ; + G4GeometryCell *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Oi:new_G4GeometryCell",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VPhysicalVolume,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (G4GeometryCell *)new G4GeometryCell((G4VPhysicalVolume const &)*arg1,arg2); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4GeometryCell, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_G4GeometryCell(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4GeometryCell *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_G4GeometryCell",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4GeometryCell_GetPhysicalVolume(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4GeometryCell *arg1 ; + G4VPhysicalVolume *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4GeometryCell_GetPhysicalVolume",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + { + G4VPhysicalVolume const &_result_ref = ((G4GeometryCell const *)arg1)->GetPhysicalVolume(); + result = (G4VPhysicalVolume *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4GeometryCell_GetReplicaNumber(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4GeometryCell *arg1 ; + int result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4GeometryCell_GetReplicaNumber",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (int)((G4GeometryCell const *)arg1)->GetReplicaNumber(); + + resultobj = PyInt_FromLong((long)result); + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4GeometryCell_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4GeometryCell, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4IStore(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4VPhysicalVolume *arg1 ; + G4IStore *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:new_G4IStore",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VPhysicalVolume,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (G4IStore *)new G4IStore((G4VPhysicalVolume const &)*arg1); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4IStore, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_G4IStore(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4IStore *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_G4IStore",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4IStore_AddImportanceGeometryCell(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4IStore *arg1 ; + double arg2 ; + G4GeometryCell *arg3 ; + PyObject * obj0 = 0 ; + PyObject * obj2 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OdO:G4IStore_AddImportanceGeometryCell",&obj0,&arg2,&obj2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->AddImportanceGeometryCell(arg2,(G4GeometryCell const &)*arg3); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4IStore_ChangeImportance(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4IStore *arg1 ; + double arg2 ; + G4GeometryCell *arg3 ; + PyObject * obj0 = 0 ; + PyObject * obj2 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OdO:G4IStore_ChangeImportance",&obj0,&arg2,&obj2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->ChangeImportance(arg2,(G4GeometryCell const &)*arg3); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4IStore_GetImportance(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4IStore *arg1 ; + G4GeometryCell *arg2 ; + double result; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO:G4IStore_GetImportance",&obj0,&obj1)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double)((G4IStore const *)arg1)->GetImportance((G4GeometryCell const &)*arg2); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4IStore_IsKnown(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4IStore *arg1 ; + G4GeometryCell *arg2 ; + bool result; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO:G4IStore_IsKnown",&obj0,&obj1)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (bool)((G4IStore const *)arg1)->IsKnown((G4GeometryCell const &)*arg2); + + resultobj = PyInt_FromLong((long)result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4IStore_GetWorldVolume(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4IStore *arg1 ; + G4VPhysicalVolume *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4IStore_GetWorldVolume",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + { + G4VPhysicalVolume const &_result_ref = ((G4IStore const *)arg1)->GetWorldVolume(); + result = (G4VPhysicalVolume *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4IStore_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4IStore, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4CellScoreValues(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *result; + + if(!PyArg_ParseTuple(args,(char *)":new_G4CellScoreValues")) goto fail; + result = (G4CellScoreValues *)new G4CellScoreValues(); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScoreValues, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSL_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSL_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumSL = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSL_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSL_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fSumSL); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLW_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLW_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumSLW = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLW_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLW_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fSumSLW); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLW_v_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLW_v_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumSLW_v = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLW_v_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLW_v_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fSumSLW_v); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLWE_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLWE_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumSLWE = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLWE_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLWE_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fSumSLWE); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLWE_v_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLWE_v_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumSLWE_v = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumSLWE_v_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLWE_v_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fSumSLWE_v); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumTracksEntering_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + int arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Oi:G4CellScoreValues_fSumTracksEntering_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumTracksEntering = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumTracksEntering_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + int result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumTracksEntering_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (int) ((arg1)->fSumTracksEntering); + + resultobj = PyInt_FromLong((long)result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumPopulation_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + int arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Oi:G4CellScoreValues_fSumPopulation_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumPopulation = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumPopulation_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + int result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumPopulation_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (int) ((arg1)->fSumPopulation); + + resultobj = PyInt_FromLong((long)result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumCollisions_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + int arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Oi:G4CellScoreValues_fSumCollisions_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumCollisions = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumCollisions_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + int result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumCollisions_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (int) ((arg1)->fSumCollisions); + + resultobj = PyInt_FromLong((long)result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumCollisionsWeight_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumCollisionsWeight_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fSumCollisionsWeight = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fSumCollisionsWeight_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumCollisionsWeight_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fSumCollisionsWeight); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fNumberWeightedEnergy_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fNumberWeightedEnergy_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fNumberWeightedEnergy = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fNumberWeightedEnergy_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fNumberWeightedEnergy_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fNumberWeightedEnergy); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fFluxWeightedEnergy_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fFluxWeightedEnergy_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fFluxWeightedEnergy = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fFluxWeightedEnergy_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fFluxWeightedEnergy_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fFluxWeightedEnergy); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fAverageTrackWeight_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fAverageTrackWeight_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fAverageTrackWeight = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fAverageTrackWeight_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fAverageTrackWeight_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fAverageTrackWeight); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fImportance_set(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double arg2 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fImportance_set",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (arg1) (arg1)->fImportance = arg2; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreValues_fImportance_get(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreValues *arg1 ; + double result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fImportance_get",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (double) ((arg1)->fImportance); + + resultobj = PyFloat_FromDouble(result); + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4CellScoreValues_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4CellScoreValues, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4CellScoreComposer(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreComposer *result; + + if(!PyArg_ParseTuple(args,(char *)":new_G4CellScoreComposer")) goto fail; + result = (G4CellScoreComposer *)new G4CellScoreComposer(); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScoreComposer, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_G4CellScoreComposer(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreComposer *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_G4CellScoreComposer",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreComposer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScoreComposer_GetStandardCellScoreValues(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScoreComposer *arg1 ; + G4CellScoreValues result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreComposer_GetStandardCellScoreValues",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreComposer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = ((G4CellScoreComposer const *)arg1)->GetStandardCellScoreValues(); + + { + G4CellScoreValues * resultptr; + resultptr = new G4CellScoreValues((G4CellScoreValues &) result); + resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4CellScoreValues, 1); + } + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4CellScoreComposer_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4CellScoreComposer, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_G4CellScorer_GetCellScoreComposer(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorer *arg1 ; + G4CellScoreComposer result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorer_GetCellScoreComposer",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = ((G4CellScorer const *)arg1)->GetCellScoreComposer(); + + { + G4CellScoreComposer * resultptr; + resultptr = new G4CellScoreComposer((G4CellScoreComposer &) result); + resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4CellScoreComposer, 1); + } + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScorer_GetCellScoreValues(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorer *arg1 ; + G4CellScoreValues result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorer_GetCellScoreValues",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = ((G4CellScorer const *)arg1)->GetCellScoreValues(); + + { + G4CellScoreValues * resultptr; + resultptr = new G4CellScoreValues((G4CellScoreValues &) result); + resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4CellScoreValues, 1); + } + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4CellScorer_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4CellScorer, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject * G4VCellScorerStore_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4VCellScorerStore, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4CellScorerStore(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorerStore *result; + + if(!PyArg_ParseTuple(args,(char *)":new_G4CellScorerStore")) goto fail; + result = (G4CellScorerStore *)new G4CellScorerStore(); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScorerStore, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_G4CellScorerStore(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorerStore *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_G4CellScorerStore",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScorerStore_SetAutoScorerCreate(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorerStore *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorerStore_SetAutoScorerCreate",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->SetAutoScorerCreate(); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScorerStore_AddCellScorer(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorerStore *arg1 ; + G4GeometryCell *arg2 ; + G4CellScorer *result; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO:G4CellScorerStore_AddCellScorer",&obj0,&obj1)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (G4CellScorer *)(arg1)->AddCellScorer((G4GeometryCell const &)*arg2); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScorer, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4CellScorerStore_GetMapGeometryCellCellScorer(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4CellScorerStore *arg1 ; + G4MapGeometryCellCellScorer *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorerStore_GetMapGeometryCellCellScorer",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + { + G4MapGeometryCellCellScorer const &_result_ref = ((G4CellScorerStore const *)arg1)->GetMapGeometryCellCellScorer(); + result = (G4MapGeometryCellCellScorer *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4MapGeometryCellCellScorer, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4CellScorerStore_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4CellScorerStore, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject * G4VScorer_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4VScorer, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4CellStoreScorer(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4VCellScorerStore *arg1 ; + G4CellStoreScorer *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:new_G4CellStoreScorer",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VCellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (G4CellStoreScorer *)new G4CellStoreScorer(*arg1); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellStoreScorer, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4CellStoreScorer_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4CellStoreScorer, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject * G4VImportanceAlgorithm_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4VImportanceAlgorithm, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4ParallelGeometrySampler(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4VPhysicalVolume *arg1 ; + char *arg2 ; + G4ParallelGeometrySampler *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Os:new_G4ParallelGeometrySampler",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VPhysicalVolume,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (G4ParallelGeometrySampler *)new G4ParallelGeometrySampler(*arg1,(char const *)arg2); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4ParallelGeometrySampler, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_G4ParallelGeometrySampler(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_G4ParallelGeometrySampler",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ParallelGeometrySampler_PrepareScoring(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + G4VScorer *arg2 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO:G4ParallelGeometrySampler_PrepareScoring",&obj0,&obj1)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4VScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->PrepareScoring(arg2); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ParallelGeometrySampler_PrepareImportanceSampling(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + G4VIStore *arg2 ; + G4VImportanceAlgorithm *arg3 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO|O:G4ParallelGeometrySampler_PrepareImportanceSampling",&obj0,&obj1,&obj2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4VIStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (obj2) { + if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4VImportanceAlgorithm,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + } + (arg1)->PrepareImportanceSampling(arg2,(G4VImportanceAlgorithm const *)arg3); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ParallelGeometrySampler_PrepareWeightRoulett(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + G4double arg2 ; + G4double arg3 ; + G4double arg4 ; + G4double *argp2 ; + G4double *argp3 ; + G4double *argp4 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + PyObject * obj3 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OOOO:G4ParallelGeometrySampler_PrepareWeightRoulett",&obj0,&obj1,&obj2,&obj3)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_G4double,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; + arg2 = *argp2; + if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_G4double,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; + arg3 = *argp3; + if ((SWIG_ConvertPtr(obj3,(void **) &argp4, SWIGTYPE_p_G4double,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; + arg4 = *argp4; + (arg1)->PrepareWeightRoulett(arg2,arg3,arg4); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ParallelGeometrySampler_Configure(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4ParallelGeometrySampler_Configure",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->Configure(); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ParallelGeometrySampler_ClearSampling(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4ParallelGeometrySampler_ClearSampling",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + (arg1)->ClearSampling(); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ParallelGeometrySampler_IsConfigured(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ParallelGeometrySampler *arg1 ; + G4bool result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:G4ParallelGeometrySampler_IsConfigured",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = ((G4ParallelGeometrySampler const *)arg1)->IsConfigured(); + + { + G4bool * resultptr; + resultptr = new G4bool((G4bool &) result); + resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4bool, 1); + } + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4ParallelGeometrySampler_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4ParallelGeometrySampler, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_G4ScoreTable(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4VIStore *arg1 = 0 ; + G4ScoreTable *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"|O:new_G4ScoreTable",&obj0)) goto fail; + if (obj0) { + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VIStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + } + result = (G4ScoreTable *)new G4ScoreTable((G4VIStore const *)arg1); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4ScoreTable, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_G4ScoreTable(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ScoreTable *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_G4ScoreTable",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ScoreTable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ScoreTable_Print(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ScoreTable *arg1 ; + G4MapGeometryCellCellScorer *arg2 ; + G4std::ostream *arg3 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + PyObject * obj2 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO|O:G4ScoreTable_Print",&obj0,&obj1,&obj2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ScoreTable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4MapGeometryCellCellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if (obj2) { + if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4std__ostream,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + } + (arg1)->Print((G4MapGeometryCellCellScorer const &)*arg2,arg3); + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_G4ScoreTable_Write(PyObject *self, PyObject *args) { + PyObject *resultobj; + G4ScoreTable *arg1 ; + G4MapGeometryCellCellScorer *arg2 ; + char *result; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"OO:G4ScoreTable_Write",&obj0,&obj1)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ScoreTable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4MapGeometryCellCellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (char *)G4ScoreTable_Write(arg1,(G4MapGeometryCellCellScorer const &)*arg2); + + resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)""); + return resultobj; + fail: + return NULL; +} + + +static PyObject * G4ScoreTable_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_G4ScoreTable, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_new_B03ImportanceDetectorConstruction(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03ImportanceDetectorConstruction *result; + + if(!PyArg_ParseTuple(args,(char *)":new_B03ImportanceDetectorConstruction")) goto fail; + result = (B03ImportanceDetectorConstruction *)new B03ImportanceDetectorConstruction(); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_B03ImportanceDetectorConstruction, 1); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_delete_B03ImportanceDetectorConstruction(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03ImportanceDetectorConstruction *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_B03ImportanceDetectorConstruction",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_B03ImportanceDetectorConstruction_GetPhysicalVolumeByName(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03ImportanceDetectorConstruction *arg1 ; + char *arg2 ; + G4VPhysicalVolume *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Os:B03ImportanceDetectorConstruction_GetPhysicalVolumeByName",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + { + G4VPhysicalVolume const &_result_ref = ((B03ImportanceDetectorConstruction const *)arg1)->GetPhysicalVolumeByName((char const *)arg2); + result = (G4VPhysicalVolume *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_B03ImportanceDetectorConstruction_GetWorldVolume(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03ImportanceDetectorConstruction *arg1 ; + G4VPhysicalVolume *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:B03ImportanceDetectorConstruction_GetWorldVolume",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + { + G4VPhysicalVolume &_result_ref = ((B03ImportanceDetectorConstruction const *)arg1)->GetWorldVolume(); + result = (G4VPhysicalVolume *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_B03ImportanceDetectorConstruction_ListPhysNames(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03ImportanceDetectorConstruction *arg1 ; + char *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:B03ImportanceDetectorConstruction_ListPhysNames",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (char *)B03ImportanceDetectorConstruction_ListPhysNames(arg1); + + resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)""); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_B03ImportanceDetectorConstruction_GetGeometryCell(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03ImportanceDetectorConstruction *arg1 ; + int arg2 ; + SwigValueWrapper< G4GeometryCell > result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"Oi:B03ImportanceDetectorConstruction_GetGeometryCell",&obj0,&arg2)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (arg1)->GetGeometryCell(arg2); + + { + G4GeometryCell * resultptr; + resultptr = new G4GeometryCell((G4GeometryCell &) result); + resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4GeometryCell, 1); + } + return resultobj; + fail: + return NULL; +} + + +static PyObject * B03ImportanceDetectorConstruction_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_B03ImportanceDetectorConstruction, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyObject *_wrap_delete_B03AppBase(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03AppBase *arg1 ; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:delete_B03AppBase",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03AppBase,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + delete arg1; + + Py_INCREF(Py_None); resultobj = Py_None; + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_B03AppBase_GetB03AppBase(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03AppBase *result; + + if(!PyArg_ParseTuple(args,(char *)":B03AppBase_GetB03AppBase")) goto fail; + { + B03AppBase &_result_ref = B03AppBase::GetB03AppBase(); + result = (B03AppBase *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_B03AppBase, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject *_wrap_B03AppBase_GetRunManager(PyObject *self, PyObject *args) { + PyObject *resultobj; + B03AppBase *arg1 ; + G4RunManager *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:B03AppBase_GetRunManager",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03AppBase,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + { + G4RunManager &_result_ref = (arg1)->GetRunManager(); + result = (G4RunManager *) &_result_ref; + } + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4RunManager, 0); + return resultobj; + fail: + return NULL; +} + + +static PyObject * B03AppBase_swigregister(PyObject *self, PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; + SWIG_TypeClientData(SWIGTYPE_p_B03AppBase, obj); + Py_INCREF(obj); + return Py_BuildValue((char *)""); +} +static PyMethodDef SwigMethods[] = { + { (char *)"G4RunManager_BeamOn", _wrap_G4RunManager_BeamOn, METH_VARARGS }, + { (char *)"G4RunManager_swigregister", G4RunManager_swigregister, METH_VARARGS }, + { (char *)"G4VIStore_swigregister", G4VIStore_swigregister, METH_VARARGS }, + { (char *)"G4VPhysicalVolume_swigregister", G4VPhysicalVolume_swigregister, METH_VARARGS }, + { (char *)"new_G4GeometryCell", _wrap_new_G4GeometryCell, METH_VARARGS }, + { (char *)"delete_G4GeometryCell", _wrap_delete_G4GeometryCell, METH_VARARGS }, + { (char *)"G4GeometryCell_GetPhysicalVolume", _wrap_G4GeometryCell_GetPhysicalVolume, METH_VARARGS }, + { (char *)"G4GeometryCell_GetReplicaNumber", _wrap_G4GeometryCell_GetReplicaNumber, METH_VARARGS }, + { (char *)"G4GeometryCell_swigregister", G4GeometryCell_swigregister, METH_VARARGS }, + { (char *)"new_G4IStore", _wrap_new_G4IStore, METH_VARARGS }, + { (char *)"delete_G4IStore", _wrap_delete_G4IStore, METH_VARARGS }, + { (char *)"G4IStore_AddImportanceGeometryCell", _wrap_G4IStore_AddImportanceGeometryCell, METH_VARARGS }, + { (char *)"G4IStore_ChangeImportance", _wrap_G4IStore_ChangeImportance, METH_VARARGS }, + { (char *)"G4IStore_GetImportance", _wrap_G4IStore_GetImportance, METH_VARARGS }, + { (char *)"G4IStore_IsKnown", _wrap_G4IStore_IsKnown, METH_VARARGS }, + { (char *)"G4IStore_GetWorldVolume", _wrap_G4IStore_GetWorldVolume, METH_VARARGS }, + { (char *)"G4IStore_swigregister", G4IStore_swigregister, METH_VARARGS }, + { (char *)"new_G4CellScoreValues", _wrap_new_G4CellScoreValues, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSL_set", _wrap_G4CellScoreValues_fSumSL_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSL_get", _wrap_G4CellScoreValues_fSumSL_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLW_set", _wrap_G4CellScoreValues_fSumSLW_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLW_get", _wrap_G4CellScoreValues_fSumSLW_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLW_v_set", _wrap_G4CellScoreValues_fSumSLW_v_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLW_v_get", _wrap_G4CellScoreValues_fSumSLW_v_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLWE_set", _wrap_G4CellScoreValues_fSumSLWE_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLWE_get", _wrap_G4CellScoreValues_fSumSLWE_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLWE_v_set", _wrap_G4CellScoreValues_fSumSLWE_v_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumSLWE_v_get", _wrap_G4CellScoreValues_fSumSLWE_v_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumTracksEntering_set", _wrap_G4CellScoreValues_fSumTracksEntering_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumTracksEntering_get", _wrap_G4CellScoreValues_fSumTracksEntering_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumPopulation_set", _wrap_G4CellScoreValues_fSumPopulation_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumPopulation_get", _wrap_G4CellScoreValues_fSumPopulation_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumCollisions_set", _wrap_G4CellScoreValues_fSumCollisions_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumCollisions_get", _wrap_G4CellScoreValues_fSumCollisions_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumCollisionsWeight_set", _wrap_G4CellScoreValues_fSumCollisionsWeight_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fSumCollisionsWeight_get", _wrap_G4CellScoreValues_fSumCollisionsWeight_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fNumberWeightedEnergy_set", _wrap_G4CellScoreValues_fNumberWeightedEnergy_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fNumberWeightedEnergy_get", _wrap_G4CellScoreValues_fNumberWeightedEnergy_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fFluxWeightedEnergy_set", _wrap_G4CellScoreValues_fFluxWeightedEnergy_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fFluxWeightedEnergy_get", _wrap_G4CellScoreValues_fFluxWeightedEnergy_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fAverageTrackWeight_set", _wrap_G4CellScoreValues_fAverageTrackWeight_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fAverageTrackWeight_get", _wrap_G4CellScoreValues_fAverageTrackWeight_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_fImportance_set", _wrap_G4CellScoreValues_fImportance_set, METH_VARARGS }, + { (char *)"G4CellScoreValues_fImportance_get", _wrap_G4CellScoreValues_fImportance_get, METH_VARARGS }, + { (char *)"G4CellScoreValues_swigregister", G4CellScoreValues_swigregister, METH_VARARGS }, + { (char *)"new_G4CellScoreComposer", _wrap_new_G4CellScoreComposer, METH_VARARGS }, + { (char *)"delete_G4CellScoreComposer", _wrap_delete_G4CellScoreComposer, METH_VARARGS }, + { (char *)"G4CellScoreComposer_GetStandardCellScoreValues", _wrap_G4CellScoreComposer_GetStandardCellScoreValues, METH_VARARGS }, + { (char *)"G4CellScoreComposer_swigregister", G4CellScoreComposer_swigregister, METH_VARARGS }, + { (char *)"G4CellScorer_GetCellScoreComposer", _wrap_G4CellScorer_GetCellScoreComposer, METH_VARARGS }, + { (char *)"G4CellScorer_GetCellScoreValues", _wrap_G4CellScorer_GetCellScoreValues, METH_VARARGS }, + { (char *)"G4CellScorer_swigregister", G4CellScorer_swigregister, METH_VARARGS }, + { (char *)"G4VCellScorerStore_swigregister", G4VCellScorerStore_swigregister, METH_VARARGS }, + { (char *)"new_G4CellScorerStore", _wrap_new_G4CellScorerStore, METH_VARARGS }, + { (char *)"delete_G4CellScorerStore", _wrap_delete_G4CellScorerStore, METH_VARARGS }, + { (char *)"G4CellScorerStore_SetAutoScorerCreate", _wrap_G4CellScorerStore_SetAutoScorerCreate, METH_VARARGS }, + { (char *)"G4CellScorerStore_AddCellScorer", _wrap_G4CellScorerStore_AddCellScorer, METH_VARARGS }, + { (char *)"G4CellScorerStore_GetMapGeometryCellCellScorer", _wrap_G4CellScorerStore_GetMapGeometryCellCellScorer, METH_VARARGS }, + { (char *)"G4CellScorerStore_swigregister", G4CellScorerStore_swigregister, METH_VARARGS }, + { (char *)"G4VScorer_swigregister", G4VScorer_swigregister, METH_VARARGS }, + { (char *)"new_G4CellStoreScorer", _wrap_new_G4CellStoreScorer, METH_VARARGS }, + { (char *)"G4CellStoreScorer_swigregister", G4CellStoreScorer_swigregister, METH_VARARGS }, + { (char *)"G4VImportanceAlgorithm_swigregister", G4VImportanceAlgorithm_swigregister, METH_VARARGS }, + { (char *)"new_G4ParallelGeometrySampler", _wrap_new_G4ParallelGeometrySampler, METH_VARARGS }, + { (char *)"delete_G4ParallelGeometrySampler", _wrap_delete_G4ParallelGeometrySampler, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_PrepareScoring", _wrap_G4ParallelGeometrySampler_PrepareScoring, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_PrepareImportanceSampling", _wrap_G4ParallelGeometrySampler_PrepareImportanceSampling, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_PrepareWeightRoulett", _wrap_G4ParallelGeometrySampler_PrepareWeightRoulett, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_Configure", _wrap_G4ParallelGeometrySampler_Configure, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_ClearSampling", _wrap_G4ParallelGeometrySampler_ClearSampling, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_IsConfigured", _wrap_G4ParallelGeometrySampler_IsConfigured, METH_VARARGS }, + { (char *)"G4ParallelGeometrySampler_swigregister", G4ParallelGeometrySampler_swigregister, METH_VARARGS }, + { (char *)"new_G4ScoreTable", _wrap_new_G4ScoreTable, METH_VARARGS }, + { (char *)"delete_G4ScoreTable", _wrap_delete_G4ScoreTable, METH_VARARGS }, + { (char *)"G4ScoreTable_Print", _wrap_G4ScoreTable_Print, METH_VARARGS }, + { (char *)"G4ScoreTable_Write", _wrap_G4ScoreTable_Write, METH_VARARGS }, + { (char *)"G4ScoreTable_swigregister", G4ScoreTable_swigregister, METH_VARARGS }, + { (char *)"new_B03ImportanceDetectorConstruction", _wrap_new_B03ImportanceDetectorConstruction, METH_VARARGS }, + { (char *)"delete_B03ImportanceDetectorConstruction", _wrap_delete_B03ImportanceDetectorConstruction, METH_VARARGS }, + { (char *)"B03ImportanceDetectorConstruction_GetPhysicalVolumeByName", _wrap_B03ImportanceDetectorConstruction_GetPhysicalVolumeByName, METH_VARARGS }, + { (char *)"B03ImportanceDetectorConstruction_GetWorldVolume", _wrap_B03ImportanceDetectorConstruction_GetWorldVolume, METH_VARARGS }, + { (char *)"B03ImportanceDetectorConstruction_ListPhysNames", _wrap_B03ImportanceDetectorConstruction_ListPhysNames, METH_VARARGS }, + { (char *)"B03ImportanceDetectorConstruction_GetGeometryCell", _wrap_B03ImportanceDetectorConstruction_GetGeometryCell, METH_VARARGS }, + { (char *)"B03ImportanceDetectorConstruction_swigregister", B03ImportanceDetectorConstruction_swigregister, METH_VARARGS }, + { (char *)"delete_B03AppBase", _wrap_delete_B03AppBase, METH_VARARGS }, + { (char *)"B03AppBase_GetB03AppBase", _wrap_B03AppBase_GetB03AppBase, METH_VARARGS }, + { (char *)"B03AppBase_GetRunManager", _wrap_B03AppBase_GetRunManager, METH_VARARGS }, + { (char *)"B03AppBase_swigregister", B03AppBase_swigregister, METH_VARARGS }, + { NULL, NULL } +}; + + +/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ + +static void *_p_G4IStoreTo_p_G4VIStore(void *x) { + return (void *)((G4VIStore *) ((G4IStore *) x)); +} +static void *_p_G4CellScorerStoreTo_p_G4VCellScorerStore(void *x) { + return (void *)((G4VCellScorerStore *) ((G4CellScorerStore *) x)); +} +static void *_p_G4CellStoreScorerTo_p_G4VScorer(void *x) { + return (void *)((G4VScorer *) ((G4CellStoreScorer *) x)); +} +static swig_type_info _swigt__p_G4RunManager[] = {{"_p_G4RunManager", 0, "G4RunManager *", 0},{"_p_G4RunManager"},{0}}; +static swig_type_info _swigt__p_G4ScoreTable[] = {{"_p_G4ScoreTable", 0, "G4ScoreTable *", 0},{"_p_G4ScoreTable"},{0}}; +static swig_type_info _swigt__p_G4VImportanceAlgorithm[] = {{"_p_G4VImportanceAlgorithm", 0, "G4VImportanceAlgorithm *", 0},{"_p_G4VImportanceAlgorithm"},{0}}; +static swig_type_info _swigt__p_G4CellScoreValues[] = {{"_p_G4CellScoreValues", 0, "G4CellScoreValues *", 0},{"_p_G4CellScoreValues"},{0}}; +static swig_type_info _swigt__p_G4IStore[] = {{"_p_G4IStore", 0, "G4IStore *", 0},{"_p_G4IStore"},{0}}; +static swig_type_info _swigt__p_G4VIStore[] = {{"_p_G4VIStore", 0, "G4VIStore *", 0},{"_p_G4VIStore"},{"_p_G4IStore", _p_G4IStoreTo_p_G4VIStore},{0}}; +static swig_type_info _swigt__p_G4ParallelGeometrySampler[] = {{"_p_G4ParallelGeometrySampler", 0, "G4ParallelGeometrySampler *", 0},{"_p_G4ParallelGeometrySampler"},{0}}; +static swig_type_info _swigt__p_G4CellScorerStore[] = {{"_p_G4CellScorerStore", 0, "G4CellScorerStore *", 0},{"_p_G4CellScorerStore"},{0}}; +static swig_type_info _swigt__p_G4VCellScorerStore[] = {{"_p_G4VCellScorerStore", 0, "G4VCellScorerStore *", 0},{"_p_G4VCellScorerStore"},{"_p_G4CellScorerStore", _p_G4CellScorerStoreTo_p_G4VCellScorerStore},{0}}; +static swig_type_info _swigt__p_B03AppBase[] = {{"_p_B03AppBase", 0, "B03AppBase *", 0},{"_p_B03AppBase"},{0}}; +static swig_type_info _swigt__p_G4std__ostream[] = {{"_p_G4std__ostream", 0, "G4std::ostream *", 0},{"_p_G4std__ostream"},{0}}; +static swig_type_info _swigt__p_G4CellStoreScorer[] = {{"_p_G4CellStoreScorer", 0, "G4CellStoreScorer *", 0},{"_p_G4CellStoreScorer"},{0}}; +static swig_type_info _swigt__p_G4CellScoreComposer[] = {{"_p_G4CellScoreComposer", 0, "G4CellScoreComposer *", 0},{"_p_G4CellScoreComposer"},{0}}; +static swig_type_info _swigt__p_G4GeometryCell[] = {{"_p_G4GeometryCell", 0, "G4GeometryCell *", 0},{"_p_G4GeometryCell"},{0}}; +static swig_type_info _swigt__p_G4MapGeometryCellCellScorer[] = {{"_p_G4MapGeometryCellCellScorer", 0, "G4MapGeometryCellCellScorer const &", 0},{"_p_G4MapGeometryCellCellScorer"},{0}}; +static swig_type_info _swigt__p_G4CellScorer[] = {{"_p_G4CellScorer", 0, "G4CellScorer *", 0},{"_p_G4CellScorer"},{0}}; +static swig_type_info _swigt__p_G4VScorer[] = {{"_p_G4VScorer", 0, "G4VScorer *", 0},{"_p_G4VScorer"},{"_p_G4CellStoreScorer", _p_G4CellStoreScorerTo_p_G4VScorer},{0}}; +static swig_type_info _swigt__p_G4bool[] = {{"_p_G4bool", 0, "G4bool *", 0},{"_p_G4bool"},{0}}; +static swig_type_info _swigt__p_G4VPhysicalVolume[] = {{"_p_G4VPhysicalVolume", 0, "G4VPhysicalVolume *", 0},{"_p_G4VPhysicalVolume"},{0}}; +static swig_type_info _swigt__p_G4double[] = {{"_p_G4double", 0, "G4double *", 0},{"_p_G4double"},{0}}; +static swig_type_info _swigt__p_B03ImportanceDetectorConstruction[] = {{"_p_B03ImportanceDetectorConstruction", 0, "B03ImportanceDetectorConstruction *", 0},{"_p_B03ImportanceDetectorConstruction"},{0}}; + +static swig_type_info *swig_types_initial[] = { +_swigt__p_G4RunManager, +_swigt__p_G4ScoreTable, +_swigt__p_G4VImportanceAlgorithm, +_swigt__p_G4CellScoreValues, +_swigt__p_G4IStore, +_swigt__p_G4VIStore, +_swigt__p_G4ParallelGeometrySampler, +_swigt__p_G4CellScorerStore, +_swigt__p_G4VCellScorerStore, +_swigt__p_B03AppBase, +_swigt__p_G4std__ostream, +_swigt__p_G4CellStoreScorer, +_swigt__p_G4CellScoreComposer, +_swigt__p_G4GeometryCell, +_swigt__p_G4MapGeometryCellCellScorer, +_swigt__p_G4CellScorer, +_swigt__p_G4VScorer, +_swigt__p_G4bool, +_swigt__p_G4VPhysicalVolume, +_swigt__p_G4double, +_swigt__p_B03ImportanceDetectorConstruction, +0 +}; + + +/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ + +static swig_const_info swig_const_table[] = { +{0}}; + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" +#endif +SWIGEXPORT(void) SWIG_init(void) { + static PyObject *SWIG_globals = 0; + static int typeinit = 0; + PyObject *m, *d; + int i; + if (!SWIG_globals) SWIG_globals = SWIG_newvarlink(); + m = Py_InitModule((char *) SWIG_name, SwigMethods); + d = PyModule_GetDict(m); + + if (!typeinit) { + for (i = 0; swig_types_initial[i]; i++) { + swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]); + } + typeinit = 1; + } + SWIG_InstallConstants(d,swig_const_table); + +} + diff --git a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc index b53b49f1d1..4519ab537b 100644 --- a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B03DetectorConstruction.cc,v 1.7 2002/04/19 10:54:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B03DetectorConstruction.cc,v 1.10 2002/11/22 17:47:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/strstream" @@ -40,21 +40,12 @@ #include "G4Colour.hh" #include "PhysicalConstants.h" -// for importance biasing -#include "G4IStore.hh" - B03DetectorConstruction::B03DetectorConstruction() {;} B03DetectorConstruction::~B03DetectorConstruction() {;} -G4VIStore* B03DetectorConstruction::GetIStore() -{ - if (!fIStore) G4Exception("B03DetectorConstruction::fIStore empty!"); - return fIStore; -} - G4VPhysicalVolume* B03DetectorConstruction::Construct() { char line[255]; @@ -92,7 +83,6 @@ G4VPhysicalVolume* B03DetectorConstruction::Construct() A = 28.09*g/mole; G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - A = 39.1*g/mole; G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); @@ -122,119 +112,72 @@ G4VPhysicalVolume* B03DetectorConstruction::Construct() Concrete->AddElement(elFe , fractionmass= 0.014); Concrete->AddElement(elC , fractionmass= 0.001); - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - - G4Material *WorldMaterial = Galactic; - ///////////////////////////// // world cylinder volume //////////////////////////// - // world solid G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; + G4double outerRadiusCylinder = 101*cm; // dont't have scoring + // cells coinside eith world volume boundary + G4double hightCylinder = 105*cm; G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; + G4double spanningAngleCylinder = 360*deg; G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); + innerRadiusCylinder, + outerRadiusCylinder, + hightCylinder, + startAngleCylinder, + spanningAngleCylinder); // logical world G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); + new G4LogicalVolume(worldCylinder, Galactic, "worldCylinder_log"); - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - - // physical world + name = "shieldWorld"; + G4PVPlacement *pWorldVolume = new + G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, + name, 0, false, 0); - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - G4std::vector< G4VPhysicalVolume * > physvolumes; - physvolumes.push_back(worldCylinder_phys); - - /////////////////////////////////////////////// - // shield cylinder for (cells 2-4) - //////////////////////////////////////////////// + // creating 1 slobs of 180 cm thick concrete G4double innerRadiusShield = 0*cm; G4double outerRadiusShield = 100*cm; - G4double hightShield = 5*cm; + G4double hightShield = 90*cm; G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; + G4double spanningAngleShield = 360*deg; G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); // logical shield G4LogicalVolume *aShield_log = new G4LogicalVolume(aShield, Concrete, "aShield_log"); + // physical shield - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); - - // physical shields - - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - physvolumes. - push_back(new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, - false, 0)); - } - - fIStore = new G4IStore(*worldCylinder_phys); - // for the world volume repnum is -1 !!!!!!!!!!!!!!!!!!!!!!! - G4int n = 0; - for (G4std::vector::iterator it = physvolumes.begin(); - it != physvolumes.end(); it++) { - G4double i = pow(2., n++); - G4cout << "Going to assign importance: " << i << ", to volume" - << (*it)->GetName() << G4endl; - if (*it == worldCylinder_phys) { - // repnum -1 - fIStore->AddImportanceRegion(i, **it, -1); - } - fIStore->AddImportanceRegion(i, **it); - } + + name = "ConcreateBlock"; - return worldCylinder_phys; + pos_x = 0*cm; + pos_y = 0*cm; + pos_z = 0*cm; + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aShield_log, + name, + worldCylinder_log, + false, + 0); + + return pWorldVolume; } diff --git a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc new file mode 100644 index 0000000000..0404c69e1b --- /dev/null +++ b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc @@ -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: B03ImportanceDetectorConstruction.cc,v 1.2 2002/11/22 17:47:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + +#include "globals.hh" +#include "g4std/strstream" + +#include "B03ImportanceDetectorConstruction.hh" + +#include "G4Material.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "PhysicalConstants.h" + + +B03ImportanceDetectorConstruction::B03ImportanceDetectorConstruction() +{ + Construct(); +} + +B03ImportanceDetectorConstruction::~B03ImportanceDetectorConstruction() +{;} + +void B03ImportanceDetectorConstruction::Construct() +{ + G4String name; + G4double A, density, temperature, pressure; + G4int z; + + G4Material *Galactic = + new G4Material(name="Galactic", z=1, A=1.01*g/mole, density, + kStateGas,temperature,pressure); + + + + ////////////////////////////////// + // parallel world cylinder volume + ////////////////////////////////// + + // parallel world solid larger than in the mass geometry + + G4double innerRadiusCylinder = 0*cm; + G4double outerRadiusCylinder = 110*cm; + G4double hightCylinder = 110*cm; + G4double startAngleCylinder = 0*deg; + G4double spanningAngleCylinder = 360*deg; + + G4Tubs *worldCylinder = new G4Tubs("worldCylinder", + innerRadiusCylinder, + outerRadiusCylinder, + hightCylinder, + startAngleCylinder, + spanningAngleCylinder); + + // logical world + + G4LogicalVolume *worldCylinder_log = + new G4LogicalVolume(worldCylinder, Galactic, "worldCylinder_log"); + + name = "parallelWorld"; + fWorldVolume = new + G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, + name, 0, false, 0); + + fPVolumeStore.AddPVolume(G4GeometryCell(*fWorldVolume, -1)); + + + + + // creating 18 slobs of 10 cm thicknes + + G4double innerRadiusShield = 0*cm; + G4double outerRadiusShield = 100*cm; + G4double hightShield = 5*cm; + G4double startAngleShield = 0*deg; + G4double spanningAngleShield = 360*deg; + + G4Tubs *aShield = new G4Tubs("aShield", + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); + + // logical parallel cells + + G4LogicalVolume *aShield_log = + new G4LogicalVolume(aShield, Galactic, "aShield_log"); + + // physical parallel cells + + G4int i = 1; + G4double startz = -85*cm; + for (i=1; i<=18; ++i) { + + name = GetCellName(i); + + G4double pos_x = 0*cm; + G4double pos_y = 0*cm; + G4double pos_z = startz + (i-1) * (2*hightShield); + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aShield_log, + name, + worldCylinder_log, + false, + 0); + G4GeometryCell cell(*pvol, 0); + fPVolumeStore.AddPVolume(cell); + } + + // filling the rest of the world volumr behind the concrete with + // another slob which should get the same importance value as the + // last slob + innerRadiusShield = 0*cm; + outerRadiusShield = 110*cm; + hightShield = 10*cm; + startAngleShield = 0*deg; + spanningAngleShield = 360*deg; + + G4Tubs *aRest = new G4Tubs("Rest", + innerRadiusShield, + outerRadiusShield, + hightShield, + startAngleShield, + spanningAngleShield); + + G4LogicalVolume *aRest_log = + new G4LogicalVolume(aRest, Galactic, "aRest_log"); + name = GetCellName(19); + + G4double pos_x = 0*cm; + G4double pos_y = 0*cm; + G4double pos_z = 100*cm; + G4VPhysicalVolume *pvol = + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aRest_log, + name, + worldCylinder_log, + false, + 0); + G4GeometryCell cell(*pvol, 0); + fPVolumeStore.AddPVolume(cell); + +} + +const G4VPhysicalVolume &B03ImportanceDetectorConstruction:: +GetPhysicalVolumeByName(const G4String& name) const { + return *fPVolumeStore.GetPVolume(name); +} + + +G4String B03ImportanceDetectorConstruction::ListPhysNamesAsG4String(){ + G4String names(fPVolumeStore.GetPNames()); + return names; +} + + +G4String B03ImportanceDetectorConstruction::GetCellName(G4int i) { + char st[200]; + G4std::ostrstream os(st,200); + os << "cell_"; + if (i<10) { + os << "0"; + } + os << i + << '\0'; + G4String name(st); + return name; +} + +G4GeometryCell B03ImportanceDetectorConstruction::GetGeometryCell(G4int i){ + G4String name(GetCellName(i)); + const G4VPhysicalVolume *p=0; + p = fPVolumeStore.GetPVolume(name); + if (p) { + return G4GeometryCell(*p,0); + } + else { + G4cout << "B03ImportanceDetectorConstruction::GetGeometryCell: couldn't get G4GeometryCell" << G4endl; + return G4GeometryCell(*fWorldVolume,-2); + } +} + + +G4VPhysicalVolume &B03ImportanceDetectorConstruction::GetWorldVolume() const{ + return *fWorldVolume; +} + diff --git a/examples/extended/biasing/B03/src/B03PVolumeStore.cc b/examples/extended/biasing/B03/src/B03PVolumeStore.cc new file mode 100644 index 0000000000..261b45b60d --- /dev/null +++ b/examples/extended/biasing/B03/src/B03PVolumeStore.cc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: B03PVolumeStore.cc,v 1.1 2002/11/08 17:35:18 dressel Exp $ +// GEANT4 tag +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// B03PVolumeStore.cc +// +// ---------------------------------------------------------------------- + +#include "B03PVolumeStore.hh" +#include "g4std/strstream" + + +#include "G4VPhysicalVolume.hh" + +B03PVolumeStore::B03PVolumeStore(){} +B03PVolumeStore::~B03PVolumeStore(){} + +void B03PVolumeStore::AddPVolume(const G4GeometryCell &cell){ + + B03SetGeometryCell::iterator it = + fSetGeometryCell.find(cell); + if (it != fSetGeometryCell.end()) { + G4cout << "B03PVolumeStore::AddPVolume: cell already stored" + << G4endl; + return; + } + + fSetGeometryCell.insert(cell); + + +} + +const G4VPhysicalVolume *B03PVolumeStore:: +GetPVolume(const G4String &name) const { + const G4VPhysicalVolume *pvol = 0; + for (B03SetGeometryCell::const_iterator it = fSetGeometryCell.begin(); + it != fSetGeometryCell.end(); ++it) { + const G4VPhysicalVolume &vol = it->GetPhysicalVolume(); + if (vol.GetName() == name) { + pvol = &vol; + } + } + if (!pvol) { + G4cout << "B03PVolumeStore::GetPVolume: no physical volume named: " + << name << ", found" << G4endl; + } + return pvol; +} + +G4String B03PVolumeStore::GetPNames() const { + G4String NameString; + for (B03SetGeometryCell::const_iterator it = fSetGeometryCell.begin(); + it != fSetGeometryCell.end(); ++it) { + const G4VPhysicalVolume &vol = it->GetPhysicalVolume(); + char st[200]; + G4std::ostrstream os(st,200); + os << vol.GetName() << "_" << it->GetReplicaNumber() + << "\n" << '\0'; + G4String cellname(st); + + // G4String cellname(vol.GetName()); + // cellname += G4String("_"); + // cellname += G4std::str(it->GetReplicaNumber()); + + NameString += cellname; + } + return NameString; +} diff --git a/examples/extended/biasing/B03/src/B03PhysicsList.cc b/examples/extended/biasing/B03/src/B03PhysicsList.cc index 784fcc6a4b..d2f6acad02 100644 --- a/examples/extended/biasing/B03/src/B03PhysicsList.cc +++ b/examples/extended/biasing/B03/src/B03PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B03PhysicsList.cc,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B03PhysicsList.cc,v 1.3 2002/11/08 17:35:19 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" @@ -45,7 +45,7 @@ #include "G4Material.hh" #include "G4MaterialTable.hh" -B03PhysicsList::B03PhysicsList(): G4VUserPhysicsList() +B03PhysicsList::B03PhysicsList() : G4VUserPhysicsList() { SetVerboseLevel(1); } diff --git a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc index 45fe4f4e54..90bc1981ea 100644 --- a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B03PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:43 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: B03PrimaryGeneratorAction.cc,v 1.5 2002/11/08 17:35:19 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" @@ -40,7 +40,7 @@ B03PrimaryGeneratorAction::B03PrimaryGeneratorAction() particleGun = new G4ParticleGun(n_particle); particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); + particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -90.0005*cm)); particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); } diff --git a/examples/extended/biasing/B04/GNUmakefile b/examples/extended/biasing/B04/GNUmakefile deleted file mode 100644 index f4b1ac4a66..0000000000 --- a/examples/extended/biasing/B04/GNUmakefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id: GNUmakefile,v 1.1 2002/03/26 16:46:09 dressel Exp $ -# -------------------------------------------------------------- -# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. -# -------------------------------------------------------------- - -name := exampleB04 -G4TARGET := $(name) -G4EXLIB := true - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -.PHONY: all -all: lib bin -CPPFLAGS += - -include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/biasing/B04/exampleB04.out b/examples/extended/biasing/B04/exampleB04.out deleted file mode 100644 index d9ba1c284d..0000000000 --- a/examples/extended/biasing/B04/exampleB04.out +++ /dev/null @@ -1,140 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) - Copyright : Geant4 Collaboration -********************************************** - -phot: Total cross sections from Sandia parametrisation. -B04PhysicsList::SetCuts:CutLength : 1 (mm) - -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: 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelImportanceProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 8 -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: ParallelImportanceProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay - -WARNING - G4ImportanceAlgorithm::~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen - -WARNING - Attempt to delete the physical volume store while geometry closed ! -WARNING - Attempt to delete the logical volume store while geometry closed ! -WARNING - Attempt to delete the solid store while geometry closed ! diff --git a/examples/extended/biasing/B04/src/B04DetectorConstruction.cc b/examples/extended/biasing/B04/src/B04DetectorConstruction.cc deleted file mode 100644 index 5415be189f..0000000000 --- a/examples/extended/biasing/B04/src/B04DetectorConstruction.cc +++ /dev/null @@ -1,213 +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: B04DetectorConstruction.cc,v 1.4 2002/04/19 10:54:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "g4std/strstream" -#include "globals.hh" - -#include "B04DetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "PhysicalConstants.h" - -B04DetectorConstruction::B04DetectorConstruction() -{;} - -B04DetectorConstruction::~B04DetectorConstruction() -{;} - -G4VPhysicalVolume* B04DetectorConstruction::Construct() -{ - char line[255]; - - G4double pos_x; - G4double pos_y; - G4double pos_z; - - G4double density, pressure, temperature; - G4double A; - G4int Z; - - G4String name, symbol; - G4double z; - G4double fractionmass; - - A = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , Z= 1, A); - - A = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , Z = 6, A); - - A = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , Z= 8, A); - - A = 22.99*g/mole; - G4Element* elNa = new G4Element(name="Natrium" ,symbol="Na" , Z=11 , A); - - A = 200.59*g/mole; - G4Element* elHg = new G4Element(name="Hg" ,symbol="Hg" , Z=80, A); - - A = 26.98*g/mole; - G4Element* elAl = new G4Element(name="Aluminium" ,symbol="Al" , Z=13, A); - - A = 28.09*g/mole; - G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - - A = 39.1*g/mole; - G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); - - A = 69.72*g/mole; - G4Element* elCa = new G4Element(name="Calzium" ,symbol="Ca" , Z=31 , A); - - A = 55.85*g/mole; - G4Element* elFe = new G4Element(name="Iron" ,symbol="Fe", Z=26, A); - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - - density = 2.03*g/cm3; - G4Material* Concrete = new G4Material("Concrete", density, 10); - Concrete->AddElement(elH , fractionmass= 0.01); - Concrete->AddElement(elO , fractionmass= 0.529); - Concrete->AddElement(elNa , fractionmass= 0.016); - Concrete->AddElement(elHg , fractionmass= 0.002); - Concrete->AddElement(elAl , fractionmass= 0.034); - Concrete->AddElement(elSi , fractionmass= 0.337); - Concrete->AddElement(elK , fractionmass= 0.013); - Concrete->AddElement(elCa , fractionmass= 0.044); - Concrete->AddElement(elFe , fractionmass= 0.014); - Concrete->AddElement(elC , fractionmass= 0.001); - - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - - G4Material *WorldMaterial = Galactic; - - ///////////////////////////// - // world cylinder volume - //////////////////////////// - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical world - - G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); - - - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - - - // physical world - - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // shield cylinder for (cells 2-4) - //////////////////////////////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 100*cm; - G4double hightShield = 5*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); - - // logical shield - - G4LogicalVolume *aShield_log = - new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); - - // physical shields - - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) - { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, false, 0); - } - - return worldCylinder_phys; -} diff --git a/examples/extended/biasing/B04/src/B04ImportanceDetectorConstruction.cc b/examples/extended/biasing/B04/src/B04ImportanceDetectorConstruction.cc deleted file mode 100644 index 32250cdbd6..0000000000 --- a/examples/extended/biasing/B04/src/B04ImportanceDetectorConstruction.cc +++ /dev/null @@ -1,189 +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: B04ImportanceDetectorConstruction.cc,v 1.3 2002/04/19 10:54:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" - -#include "B04ImportanceDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "PhysicalConstants.h" -#include "G4IStore.hh" - -B04ImportanceDetectorConstruction::B04ImportanceDetectorConstruction() - : fIStore(0) -{;} - -B04ImportanceDetectorConstruction::~B04ImportanceDetectorConstruction() -{;} - -G4VIStore* B04ImportanceDetectorConstruction::GetIStore() -{ - if (!fIStore) G4Exception("B04DetectorConstruction::fIStore empty!"); - return fIStore; -} - -G4VPhysicalVolume* B04ImportanceDetectorConstruction::Construct() -{ - /////////////////////////////////////// - // world inportance cylinder volume - ////////////////////////////////////// - - G4String name; - - G4double density = universe_mean_density; //from PhysicalConstants.h - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4double z,A; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - G4Material *WorldMaterial = Galactic; - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 101*cm; - G4double hightCylinder = 16*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *imp_worldCylinder = new G4Tubs("imp_worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical imp world - - G4LogicalVolume *imp_worldCylinder_log = - new G4LogicalVolume(imp_worldCylinder, WorldMaterial, "imp_worldCylinder_log"); - - // physical world - - name = "imp_worldCylinder_phys"; - G4VPhysicalVolume* imp_worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), imp_worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // imp M1, D1, M2, D2 - //////////////////////////////////////////////// - - ///////////////////// M1 /////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 101*cm; - G4double MhightShield = 7.5002*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *tube_M = new G4Tubs("tube_M", - innerRadiusShield, - outerRadiusShield, - MhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *M1_log = - new G4LogicalVolume(tube_M, Galactic, "M1_log"); - - name = "impcell: M1"; - G4double pos_x = 0*cm; - G4double pos_y = 0*cm; - G4double pos_z = -1*MhightShield; - - G4VPhysicalVolume *pM1 = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M1_log, name, imp_worldCylinder_log, false, 0); - - /////////////////// D1 /////////////////////////// - - innerRadiusShield = 0*cm; - outerRadiusShield = 101*cm; - G4double DhightShield = 2*cm; - startAngleShield = 0*deg; - spanningAngleShield = 360*cm; - - - G4Tubs *tube_D = new G4Tubs("tube_D", - innerRadiusShield, - outerRadiusShield, - DhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *D1_log = - new G4LogicalVolume(tube_D, Galactic, "D1_log"); - - name ="impcell: D1"; - - G4VPhysicalVolume *pD1 = - new G4PVPlacement(0, G4ThreeVector(0, 0, 0), - D1_log, name, M1_log, false, 0); - - /////////////////////// M2 ////////////////////////////////// - - G4LogicalVolume *M2_log = - new G4LogicalVolume(tube_M, Galactic, "M2_log"); - - name = "impcell: M2"; - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = MhightShield; - G4VPhysicalVolume *pM2 = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M2_log, name, imp_worldCylinder_log, false, 0); - - //////////////////// D2 ///////////////////////////////// - - G4LogicalVolume *D2_log = - new G4LogicalVolume(tube_D, Galactic, "D2_log"); - - name ="impcell: D2"; - - G4VPhysicalVolume *pD2 = - new G4PVPlacement(0, G4ThreeVector(0, 0, 0), - D2_log, name, M2_log, false, 0); - - ///////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////// - - fIStore = new G4IStore(*imp_worldCylinder_phys); - // for the world volume repnum is -1 !!!!!!!!!!!!!!!!!!!!!!! - fIStore->AddImportanceRegion(1, *imp_worldCylinder_phys, -1); // repnum -1 - fIStore->AddImportanceRegion(2, *pM1); - fIStore->AddImportanceRegion(4, *pD1); - fIStore->AddImportanceRegion(8, *pM2); - fIStore->AddImportanceRegion(16, *pD2); - - return imp_worldCylinder_phys; -} diff --git a/examples/extended/biasing/B04/src/B04PhysicsList.cc b/examples/extended/biasing/B04/src/B04PhysicsList.cc deleted file mode 100644 index 2b87af3304..0000000000 --- a/examples/extended/biasing/B04/src/B04PhysicsList.cc +++ /dev/null @@ -1,633 +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: B04PhysicsList.cc,v 1.2 2002/04/19 10:54:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" -#include "g4std/iomanip" - -#include "B04PhysicsList.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4ShortLivedConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" - -B04PhysicsList::B04PhysicsList(): G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -B04PhysicsList::~B04PhysicsList() -{ -} - -void B04PhysicsList::ConstructParticle() -{ - // 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. - - ConstructAllBosons(); - ConstructAllLeptons(); - ConstructAllMesons(); - ConstructAllBaryons(); - ConstructAllIons(); - ConstructAllShortLiveds(); -} - -void B04PhysicsList::ConstructAllBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B04PhysicsList::ConstructAllLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B04PhysicsList::ConstructAllMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B04PhysicsList::ConstructAllBaryons() -{ - // Construct all barions - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B04PhysicsList::ConstructAllIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B04PhysicsList::ConstructAllShortLiveds() -{ - // Construct resonaces and quarks - G4ShortLivedConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B04PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" - -void B04PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - pmanager->AddProcess(new G4MultipleScattering(),-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 == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } else { - if ((particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")&& - (!particle->IsShortLived()) ) { - // all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } - } - } -} - -// Hadron Processes - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" - -#include "G4PionPlusInelasticProcess.hh" -#include "G4PionMinusInelasticProcess.hh" -#include "G4KaonPlusInelasticProcess.hh" -#include "G4KaonZeroSInelasticProcess.hh" -#include "G4KaonZeroLInelasticProcess.hh" -#include "G4KaonMinusInelasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4AntiProtonInelasticProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4AntiNeutronInelasticProcess.hh" -#include "G4LambdaInelasticProcess.hh" -#include "G4AntiLambdaInelasticProcess.hh" -#include "G4SigmaPlusInelasticProcess.hh" -#include "G4SigmaMinusInelasticProcess.hh" -#include "G4AntiSigmaPlusInelasticProcess.hh" -#include "G4AntiSigmaMinusInelasticProcess.hh" -#include "G4XiZeroInelasticProcess.hh" -#include "G4XiMinusInelasticProcess.hh" -#include "G4AntiXiZeroInelasticProcess.hh" -#include "G4AntiXiMinusInelasticProcess.hh" -#include "G4DeuteronInelasticProcess.hh" -#include "G4TritonInelasticProcess.hh" -#include "G4AlphaInelasticProcess.hh" -#include "G4OmegaMinusInelasticProcess.hh" -#include "G4AntiOmegaMinusInelasticProcess.hh" - -// Low-energy Models - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4LEAntiProtonInelastic.hh" -#include "G4LENeutronInelastic.hh" -#include "G4LEAntiNeutronInelastic.hh" -#include "G4LELambdaInelastic.hh" -#include "G4LEAntiLambdaInelastic.hh" -#include "G4LESigmaPlusInelastic.hh" -#include "G4LESigmaMinusInelastic.hh" -#include "G4LEAntiSigmaPlusInelastic.hh" -#include "G4LEAntiSigmaMinusInelastic.hh" -#include "G4LEXiZeroInelastic.hh" -#include "G4LEXiMinusInelastic.hh" -#include "G4LEAntiXiZeroInelastic.hh" -#include "G4LEAntiXiMinusInelastic.hh" -#include "G4LEDeuteronInelastic.hh" -#include "G4LETritonInelastic.hh" -#include "G4LEAlphaInelastic.hh" -#include "G4LEOmegaMinusInelastic.hh" -#include "G4LEAntiOmegaMinusInelastic.hh" - -// -- generator models -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4CompetitiveFission.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4Fancy3DNucleus.hh" -#include "G4LEProtonInelastic.hh" -#include "G4StringModel.hh" -#include "G4PreCompoundModel.hh" -#include "G4FTFModel.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -// -// ConstructHad() -// -// Makes discrete physics processes for the hadrons, at present limited -// to those particles with GHEISHA interactions (INTRC > 0). -// The processes are: Elastic scattering, Inelastic scattering, -// Fission (for neutron only), and Capture (neutron). -// -// F.W.Jones 06-JUL-1998 -// - -void B04PhysicsList::ConstructHad() -{ - // this will be the model class for high energies - G4TheoFSGenerator * theTheoModel = new G4TheoFSGenerator; - - // 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); - - // here come the high energy parts - // the string model; still not quite according to design - Explicite use of the forseen interfaces - // will be tested and documented in this program by beta-02 at latest. - G4VPartonStringModel * theStringModel; - theStringModel = new G4FTFModel; - theTheoModel->SetTransport(theCascade); - theTheoModel->SetHighEnergyGenerator(theStringModel); - theTheoModel->SetMinEnergy(19*GeV); - theTheoModel->SetMaxEnergy(100*TeV); - - G4VLongitudinalStringDecay * theFragmentation = new G4QGSMFragmentation; - G4ExcitedStringDecay * theStringDecay = new G4ExcitedStringDecay(theFragmentation); - theStringModel->SetFragmentationModel(theStringDecay); - -// done with the generator model (most of the above is also available as default) - G4HadronElasticProcess* theElasticProcess = - new G4HadronElasticProcess; - G4LElastic* theElasticModel = new G4LElastic; - theElasticProcess->RegisterMe(theElasticModel); - G4HadronElasticProcess* theElasticProcess1 = - new G4HadronElasticProcess; - theParticleIterator->reset(); - while ((*theParticleIterator)()) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "pi+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionPlusInelasticProcess* theInelasticProcess = - new G4PionPlusInelasticProcess("inelastic"); - G4LEPionPlusInelastic* theInelasticModel = - new G4LEPionPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "pi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionMinusInelasticProcess* theInelasticProcess = - new G4PionMinusInelasticProcess("inelastic"); - G4LEPionMinusInelastic* theInelasticModel = - new G4LEPionMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonPlusInelasticProcess* theInelasticProcess = - new G4KaonPlusInelasticProcess("inelastic"); - G4LEKaonPlusInelastic* theInelasticModel = new G4LEKaonPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0S") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroSInelasticProcess* theInelasticProcess = - new G4KaonZeroSInelasticProcess("inelastic"); - G4LEKaonZeroSInelastic* theInelasticModel = - new G4LEKaonZeroSInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0L") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroLInelasticProcess* theInelasticProcess = - new G4KaonZeroLInelasticProcess("inelastic"); - G4LEKaonZeroLInelastic* theInelasticModel = - new G4LEKaonZeroLInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonMinusInelasticProcess* theInelasticProcess = - new G4KaonMinusInelasticProcess("inelastic"); - G4LEKaonMinusInelastic* theInelasticModel = - new G4LEKaonMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4ProtonInelasticProcess* theInelasticProcess = - new G4ProtonInelasticProcess("inelastic"); - G4LEProtonInelastic* theInelasticModel = new G4LEProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiProtonInelasticProcess* theInelasticProcess = - new G4AntiProtonInelasticProcess("inelastic"); - G4LEAntiProtonInelastic* theInelasticModel = - new G4LEAntiProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "neutron") { - - // elastic scattering - G4LElastic* theElasticModel1 = new G4LElastic; - theElasticProcess1->RegisterMe(theElasticModel1); - pmanager->AddDiscreteProcess(theElasticProcess1); - // inelastic scattering - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - // fission - G4HadronFissionProcess* theFissionProcess = - new G4HadronFissionProcess; - G4LFission* theFissionModel = new G4LFission; - theFissionProcess->RegisterMe(theFissionModel); - pmanager->AddDiscreteProcess(theFissionProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureProcess->RegisterMe(theCaptureModel); - pmanager->AddDiscreteProcess(theCaptureProcess); - } - else if (particleName == "anti_neutron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiNeutronInelasticProcess* theInelasticProcess = - new G4AntiNeutronInelasticProcess("inelastic"); - G4LEAntiNeutronInelastic* theInelasticModel = - new G4LEAntiNeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4LambdaInelasticProcess* theInelasticProcess = - new G4LambdaInelasticProcess("inelastic"); - G4LELambdaInelastic* theInelasticModel = new G4LELambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiLambdaInelasticProcess* theInelasticProcess = - new G4AntiLambdaInelasticProcess("inelastic"); - G4LEAntiLambdaInelastic* theInelasticModel = - new G4LEAntiLambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaPlusInelasticProcess* theInelasticProcess = - new G4SigmaPlusInelasticProcess("inelastic"); - G4LESigmaPlusInelastic* theInelasticModel = - new G4LESigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaMinusInelasticProcess* theInelasticProcess = - new G4SigmaMinusInelasticProcess("inelastic"); - G4LESigmaMinusInelastic* theInelasticModel = - new G4LESigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaPlusInelasticProcess* theInelasticProcess = - new G4AntiSigmaPlusInelasticProcess("inelastic"); - G4LEAntiSigmaPlusInelastic* theInelasticModel = - new G4LEAntiSigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaMinusInelasticProcess* theInelasticProcess = - new G4AntiSigmaMinusInelasticProcess("inelastic"); - G4LEAntiSigmaMinusInelastic* theInelasticModel = - new G4LEAntiSigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiZeroInelasticProcess* theInelasticProcess = - new G4XiZeroInelasticProcess("inelastic"); - G4LEXiZeroInelastic* theInelasticModel = - new G4LEXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiMinusInelasticProcess* theInelasticProcess = - new G4XiMinusInelasticProcess("inelastic"); - G4LEXiMinusInelastic* theInelasticModel = - new G4LEXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiZeroInelasticProcess* theInelasticProcess = - new G4AntiXiZeroInelasticProcess("inelastic"); - G4LEAntiXiZeroInelastic* theInelasticModel = - new G4LEAntiXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiMinusInelasticProcess* theInelasticProcess = - new G4AntiXiMinusInelasticProcess("inelastic"); - G4LEAntiXiMinusInelastic* theInelasticModel = - new G4LEAntiXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "deuteron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4DeuteronInelasticProcess* theInelasticProcess = - new G4DeuteronInelasticProcess("inelastic"); - G4LEDeuteronInelastic* theInelasticModel = - new G4LEDeuteronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "triton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4TritonInelasticProcess* theInelasticProcess = - new G4TritonInelasticProcess("inelastic"); - G4LETritonInelastic* theInelasticModel = - new G4LETritonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "alpha") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AlphaInelasticProcess* theInelasticProcess = - new G4AlphaInelasticProcess("inelastic"); - G4LEAlphaInelastic* theInelasticModel = - new G4LEAlphaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4OmegaMinusInelasticProcess* theInelasticProcess = - new G4OmegaMinusInelasticProcess("inelastic"); - G4LEOmegaMinusInelastic* theInelasticModel = - new G4LEOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiOmegaMinusInelasticProcess* theInelasticProcess = - new G4AntiOmegaMinusInelasticProcess("inelastic"); - G4LEAntiOmegaMinusInelastic* theInelasticModel = - new G4LEAntiOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - } -} - -void B04PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void B04PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager ->AddProcess(theDecayProcess); - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} - -void B04PhysicsList::SetCuts() -{ - if (verboseLevel >0) - { - G4cout << "B04PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - // "G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} diff --git a/examples/extended/biasing/B05/GNUmakefile b/examples/extended/biasing/B05/GNUmakefile deleted file mode 100644 index d080dd3edb..0000000000 --- a/examples/extended/biasing/B05/GNUmakefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id: GNUmakefile,v 1.1 2002/03/27 13:58:02 dressel Exp $ -# -------------------------------------------------------------- -# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. -# -------------------------------------------------------------- - -name := exampleB05 -G4TARGET := $(name) -G4EXLIB := true - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -.PHONY: all -all: lib bin -CPPFLAGS += - -include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/biasing/B05/exampleB05.cc b/examples/extended/biasing/B05/exampleB05.cc deleted file mode 100644 index ec4173601c..0000000000 --- a/examples/extended/biasing/B05/exampleB05.cc +++ /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: exampleB05.cc,v 1.6 2002/05/31 11:46:23 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// -------------------------------------------------------------- -// GEANT 4 - exampleB05 -// -// -------------------------------------------------------------- -// Comments -// -// -// -------------------------------------------------------------- - -#include "g4std/iostream" - -#include "G4VPhysicalVolume.hh" -#include "G4RunManager.hh" -#include "G4UImanager.hh" - -#include "B05DetectorConstruction.hh" -#include "B05PhysicsList.hh" -#include "B05PrimaryGeneratorAction.hh" - -// Files specific for biasing and scoring -#include "G4PIScorer.hh" -#include "G4Sigma.hh" -#include "G4MassImportanceScoreSampler.hh" - -int main(int argc, char **argv) -{ - G4std::ostream *myout = &G4cout; - G4int numberOfEvent = 1000; - - G4String random_status_out_file, random_status_in_file; - G4long myseed = 345354; - - HepRandom::setTheSeed(myseed); - - G4RunManager *runManager = new G4RunManager; - - // create the detector --------------------------- - B05DetectorConstruction *detector = new B05DetectorConstruction(); - runManager->SetUserInitialization(detector); - // --------------------------------------------------- - runManager->SetUserInitialization(new B05PhysicsList); - runManager->SetUserAction(new B05PrimaryGeneratorAction); - runManager->Initialize(); - - // the IStore is filled during detector construction - G4VIStore &aIstore = *detector->GetIStore(); - - // create the importance and scoring sampler for biasing and scoring - // in the tracking world - G4PIScorer aScorer(aIstore); - G4MassImportanceScoreSampler mim(aIstore, aScorer, "neutron"); - mim.Initialize(); - - G4UImanager* UI; - - UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/control/execute init.mac"); - - runManager->BeamOn(numberOfEvent); - - // print all the numbers calculated from the scorer - *myout << "output aScorer, tracking geometry, neutron" << G4endl; - *myout << aScorer << G4endl; - *myout << "----------------------------------------------" << G4endl; - - return 0; -} diff --git a/examples/extended/biasing/B05/exampleB05.out b/examples/extended/biasing/B05/exampleB05.out deleted file mode 100644 index d17ee31743..0000000000 --- a/examples/extended/biasing/B05/exampleB05.out +++ /dev/null @@ -1,391 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) - Copyright : Geant4 Collaboration -********************************************** -Going to assign importance: 1, to volumeworldCylinder_phys -Going to assign importance: 2, to volumecell: 02, shield -Going to assign importance: 4, to volumecell: 03, shield -Going to assign importance: 8, to volumecell: 04, shield - -phot: Total cross sections from Sandia parametrisation. -B05PhysicsList::SetCuts:CutLength : 1 (mm) - -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: 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: MScoreProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MScoreProcess - Transportation -DoIt Vector: - Transportation - MScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: MassImportanceProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MScoreProcess - Transportation -DoIt Vector: - Transportation - MScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MScoreProcess - MassImportanceProcess - Transportation -DoIt Vector: - Transportation - MassImportanceProcess - MScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 8 -output aScorer, tracking geometry, neutron -Volume name = worldCylinder_phys, Replica number = -1 -WeighteOfHistorysEntering -entries : 356 -Sum(w) : 356 -Sum(w*x) : 356 -Sum(w*x*x) : 356 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 356 -Sum(x^2) : 356 -HistorysEnteringWeighted -entries : 356 -Sum(w) : 356 -Sum(w*x) : 356 -Sum(w*x*x) : 356 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 356 -Sum(x^2) : 356 -EnergyEnteringHistoryWeighted -entries : 356 -Sum(w) : 356 -Sum(w*x) : 2974.88 -Sum(w*x*x) : 26871.2 -mean=Sum(w*x) / Sum(w) : 8.35641 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 2.37721 -Sum(x) : 2974.88 -Sum(x^2) : 26871.2 -Volume name = cell: 02, shield, Replica number = 0 -WeighteOfHistorysEntering -entries : 1146 -Sum(w) : 1146 -Sum(w*x) : 573 -Sum(w*x*x) : 286.5 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 573 -Sum(x^2) : 286.5 -HistorysEnteringWeighted -entries : 1146 -Sum(w) : 573 -Sum(w*x) : 573 -Sum(w*x*x) : 573 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1146 -Sum(x^2) : 1146 -EnergyEnteringHistoryWeighted -entries : 1146 -Sum(w) : 573 -Sum(w*x) : 5518.16 -Sum(w*x*x) : 54083.1 -mean=Sum(w*x) / Sum(w) : 9.63029 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.28189 -Sum(x) : 11036.3 -Sum(x^2) : 108166 -WeighteOfCollisions -entries : 2685 -Sum(w) : 2685 -Sum(w*x) : 1342.5 -Sum(w*x*x) : 671.25 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1342.5 -Sum(x^2) : 671.25 -CollisionsWeighted -entries : 2685 -Sum(w) : 1342.5 -Sum(w*x) : 1342.5 -Sum(w*x*x) : 1342.5 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 2685 -Sum(x^2) : 2685 -Volume name = cell: 03, shield, Replica number = 0 -WeighteOfHistorysEntering -entries : 1416 -Sum(w) : 1416 -Sum(w*x) : 354 -Sum(w*x*x) : 88.5 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 354 -Sum(x^2) : 88.5 -HistorysEnteringWeighted -entries : 1416 -Sum(w) : 354 -Sum(w*x) : 354 -Sum(w*x*x) : 354 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1416 -Sum(x^2) : 1416 -EnergyEnteringHistoryWeighted -entries : 1416 -Sum(w) : 354 -Sum(w*x) : 3338.06 -Sum(w*x*x) : 32325.3 -mean=Sum(w*x) / Sum(w) : 9.42954 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.54859 -Sum(x) : 13352.2 -Sum(x^2) : 129301 -WeighteOfCollisions -entries : 3458 -Sum(w) : 3458 -Sum(w*x) : 864.5 -Sum(w*x*x) : 216.125 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 864.5 -Sum(x^2) : 216.125 -CollisionsWeighted -entries : 3458 -Sum(w) : 864.5 -Sum(w*x) : 864.5 -Sum(w*x*x) : 864.5 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3458 -Sum(x^2) : 3458 -Volume name = cell: 04, shield, Replica number = 0 -WeighteOfHistorysEntering -entries : 1522 -Sum(w) : 1522 -Sum(w*x) : 190.25 -Sum(w*x*x) : 23.7812 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 190.25 -Sum(x^2) : 23.7812 -HistorysEnteringWeighted -entries : 1522 -Sum(w) : 190.25 -Sum(w*x) : 190.25 -Sum(w*x*x) : 190.25 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1522 -Sum(x^2) : 1522 -EnergyEnteringHistoryWeighted -entries : 1522 -Sum(w) : 190.25 -Sum(w*x) : 1801.32 -Sum(w*x*x) : 17506.7 -mean=Sum(w*x) / Sum(w) : 9.46817 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.54053 -Sum(x) : 14410.6 -Sum(x^2) : 140054 -WeighteOfCollisions -entries : 4193 -Sum(w) : 4193 -Sum(w*x) : 524.125 -Sum(w*x*x) : 65.5156 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 524.125 -Sum(x^2) : 65.5156 -CollisionsWeighted -entries : 4193 -Sum(w) : 524.125 -Sum(w*x) : 524.125 -Sum(w*x*x) : 524.125 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 4193 -Sum(x^2) : 4193 - ----------------------------------------------- -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: MScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MScoreProcess - MassImportanceProcess - Transportation -DoIt Vector: - Transportation - MassImportanceProcess - MScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MassImportanceProcess - Transportation -DoIt Vector: - Transportation - MassImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: MassImportanceProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - MassImportanceProcess - Transportation -DoIt Vector: - Transportation - MassImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay - -WARNING - G4ImportanceAlgorithm::~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen - -WARNING - Attempt to delete the physical volume store while geometry closed ! -WARNING - Attempt to delete the logical volume store while geometry closed ! -WARNING - Attempt to delete the solid store while geometry closed ! diff --git a/examples/extended/biasing/B05/init.mac b/examples/extended/biasing/B05/init.mac deleted file mode 100644 index d55a278c8d..0000000000 --- a/examples/extended/biasing/B05/init.mac +++ /dev/null @@ -1,5 +0,0 @@ -/control/verbose 0 -/run/verbose 0 -/event/verbose 0 -/tracking/verbose 0 - diff --git a/examples/extended/biasing/B05/src/B05DetectorConstruction.cc b/examples/extended/biasing/B05/src/B05DetectorConstruction.cc deleted file mode 100644 index e3f4311a38..0000000000 --- a/examples/extended/biasing/B05/src/B05DetectorConstruction.cc +++ /dev/null @@ -1,242 +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: B05DetectorConstruction.cc,v 1.6 2002/04/19 10:54:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "g4std/strstream" -#include "globals.hh" - -#include "B05DetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "PhysicalConstants.h" - -// for importance biasing -#include "G4IStore.hh" - -B05DetectorConstruction::B05DetectorConstruction() - : fIStore(0) -{;} - -B05DetectorConstruction::~B05DetectorConstruction() -{;} - -G4VIStore* B05DetectorConstruction::GetIStore() -{ - if (!fIStore) G4Exception("B05DetectorConstruction::fIStore empty!"); - return fIStore; -} - -G4VPhysicalVolume* B05DetectorConstruction::Construct() -{ - char line[255]; - - G4double pos_x; - G4double pos_y; - G4double pos_z; - - G4double density, pressure, temperature; - G4double A; - G4int Z; - - G4String name, symbol; - G4double z; - G4double fractionmass; - - A = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , Z= 1, A); - - A = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , Z = 6, A); - - A = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , Z= 8, A); - - A = 22.99*g/mole; - G4Element* elNa = new G4Element(name="Natrium" ,symbol="Na" , Z=11 , A); - - A = 200.59*g/mole; - G4Element* elHg = new G4Element(name="Hg" ,symbol="Hg" , Z=80, A); - - A = 26.98*g/mole; - G4Element* elAl = new G4Element(name="Aluminium" ,symbol="Al" , Z=13, A); - - A = 28.09*g/mole; - G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - - A = 39.1*g/mole; - G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); - - A = 69.72*g/mole; - G4Element* elCa = new G4Element(name="Calzium" ,symbol="Ca" , Z=31 , A); - - A = 55.85*g/mole; - G4Element* elFe = new G4Element(name="Iron" ,symbol="Fe", Z=26, A); - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - - density = 2.03*g/cm3; - G4Material* Concrete = new G4Material("Concrete", density, 10); - Concrete->AddElement(elH , fractionmass= 0.01); - Concrete->AddElement(elO , fractionmass= 0.529); - Concrete->AddElement(elNa , fractionmass= 0.016); - Concrete->AddElement(elHg , fractionmass= 0.002); - Concrete->AddElement(elAl , fractionmass= 0.034); - Concrete->AddElement(elSi , fractionmass= 0.337); - Concrete->AddElement(elK , fractionmass= 0.013); - Concrete->AddElement(elCa , fractionmass= 0.044); - Concrete->AddElement(elFe , fractionmass= 0.014); - Concrete->AddElement(elC , fractionmass= 0.001); - - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - - G4Material *WorldMaterial = Galactic; - - ///////////////////////////// - // world cylinder volume - //////////////////////////// - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical world - - G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); - - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - - // physical world - - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - - G4std::vector< G4VPhysicalVolume * > physvolumes; - physvolumes.push_back(worldCylinder_phys); - - /////////////////////////////////////////////// - // shield cylinder for (cells 2-4) - //////////////////////////////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 100*cm; - G4double hightShield = 5*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); - - // logical shield - - G4LogicalVolume *aShield_log = - new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); - - // physical shields - - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - physvolumes. - push_back(new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, - false, 0)); - } - - fIStore = new G4IStore(*worldCylinder_phys); - - // for the world volume repnum is -1 ! - G4int n = 0; - for (G4std::vector::iterator it = physvolumes.begin(); - it != physvolumes.end(); it++) - { - G4double i = pow(2., n++); - G4cout << "Going to assign importance: " << i << ", to volume" - << (*it)->GetName() << G4endl; - if (*it == worldCylinder_phys) - { - // repnum -1 - fIStore->AddImportanceRegion(i, **it, -1); - } - fIStore->AddImportanceRegion(i, **it); - } - - return worldCylinder_phys; -} diff --git a/examples/extended/biasing/B05/src/B05PhysicsList.cc b/examples/extended/biasing/B05/src/B05PhysicsList.cc deleted file mode 100644 index 64585023b2..0000000000 --- a/examples/extended/biasing/B05/src/B05PhysicsList.cc +++ /dev/null @@ -1,633 +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: B05PhysicsList.cc,v 1.2 2002/04/19 10:54:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" -#include "g4std/iomanip" - -#include "B05PhysicsList.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4ShortLivedConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" - -B05PhysicsList::B05PhysicsList(): G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -B05PhysicsList::~B05PhysicsList() -{ -} - -void B05PhysicsList::ConstructParticle() -{ - // 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. - - ConstructAllBosons(); - ConstructAllLeptons(); - ConstructAllMesons(); - ConstructAllBaryons(); - ConstructAllIons(); - ConstructAllShortLiveds(); -} - -void B05PhysicsList::ConstructAllBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B05PhysicsList::ConstructAllLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B05PhysicsList::ConstructAllMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B05PhysicsList::ConstructAllBaryons() -{ - // Construct all barions - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B05PhysicsList::ConstructAllIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B05PhysicsList::ConstructAllShortLiveds() -{ - // Construct resonaces and quarks - G4ShortLivedConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B05PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" - -void B05PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - pmanager->AddProcess(new G4MultipleScattering(),-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 == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } else { - if ((particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")&& - (!particle->IsShortLived()) ) { - // all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } - } - } -} - -// Hadron Processes - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" - -#include "G4PionPlusInelasticProcess.hh" -#include "G4PionMinusInelasticProcess.hh" -#include "G4KaonPlusInelasticProcess.hh" -#include "G4KaonZeroSInelasticProcess.hh" -#include "G4KaonZeroLInelasticProcess.hh" -#include "G4KaonMinusInelasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4AntiProtonInelasticProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4AntiNeutronInelasticProcess.hh" -#include "G4LambdaInelasticProcess.hh" -#include "G4AntiLambdaInelasticProcess.hh" -#include "G4SigmaPlusInelasticProcess.hh" -#include "G4SigmaMinusInelasticProcess.hh" -#include "G4AntiSigmaPlusInelasticProcess.hh" -#include "G4AntiSigmaMinusInelasticProcess.hh" -#include "G4XiZeroInelasticProcess.hh" -#include "G4XiMinusInelasticProcess.hh" -#include "G4AntiXiZeroInelasticProcess.hh" -#include "G4AntiXiMinusInelasticProcess.hh" -#include "G4DeuteronInelasticProcess.hh" -#include "G4TritonInelasticProcess.hh" -#include "G4AlphaInelasticProcess.hh" -#include "G4OmegaMinusInelasticProcess.hh" -#include "G4AntiOmegaMinusInelasticProcess.hh" - -// Low-energy Models - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4LEAntiProtonInelastic.hh" -#include "G4LENeutronInelastic.hh" -#include "G4LEAntiNeutronInelastic.hh" -#include "G4LELambdaInelastic.hh" -#include "G4LEAntiLambdaInelastic.hh" -#include "G4LESigmaPlusInelastic.hh" -#include "G4LESigmaMinusInelastic.hh" -#include "G4LEAntiSigmaPlusInelastic.hh" -#include "G4LEAntiSigmaMinusInelastic.hh" -#include "G4LEXiZeroInelastic.hh" -#include "G4LEXiMinusInelastic.hh" -#include "G4LEAntiXiZeroInelastic.hh" -#include "G4LEAntiXiMinusInelastic.hh" -#include "G4LEDeuteronInelastic.hh" -#include "G4LETritonInelastic.hh" -#include "G4LEAlphaInelastic.hh" -#include "G4LEOmegaMinusInelastic.hh" -#include "G4LEAntiOmegaMinusInelastic.hh" - -// -- generator models -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4CompetitiveFission.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4Fancy3DNucleus.hh" -#include "G4LEProtonInelastic.hh" -#include "G4StringModel.hh" -#include "G4PreCompoundModel.hh" -#include "G4FTFModel.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -// -// ConstructHad() -// -// Makes discrete physics processes for the hadrons, at present limited -// to those particles with GHEISHA interactions (INTRC > 0). -// The processes are: Elastic scattering, Inelastic scattering, -// Fission (for neutron only), and Capture (neutron). -// -// F.W.Jones 06-JUL-1998 -// - -void B05PhysicsList::ConstructHad() -{ - // this will be the model class for high energies - G4TheoFSGenerator * theTheoModel = new G4TheoFSGenerator; - - // 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); - - // here come the high energy parts - // the string model; still not quite according to design - Explicite use of the forseen interfaces - // will be tested and documented in this program by beta-02 at latest. - G4VPartonStringModel * theStringModel; - theStringModel = new G4FTFModel; - theTheoModel->SetTransport(theCascade); - theTheoModel->SetHighEnergyGenerator(theStringModel); - theTheoModel->SetMinEnergy(19*GeV); - theTheoModel->SetMaxEnergy(100*TeV); - - G4VLongitudinalStringDecay * theFragmentation = new G4QGSMFragmentation; - G4ExcitedStringDecay * theStringDecay = new G4ExcitedStringDecay(theFragmentation); - theStringModel->SetFragmentationModel(theStringDecay); - -// done with the generator model (most of the above is also available as default) - G4HadronElasticProcess* theElasticProcess = - new G4HadronElasticProcess; - G4LElastic* theElasticModel = new G4LElastic; - theElasticProcess->RegisterMe(theElasticModel); - G4HadronElasticProcess* theElasticProcess1 = - new G4HadronElasticProcess; - theParticleIterator->reset(); - while ((*theParticleIterator)()) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "pi+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionPlusInelasticProcess* theInelasticProcess = - new G4PionPlusInelasticProcess("inelastic"); - G4LEPionPlusInelastic* theInelasticModel = - new G4LEPionPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "pi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionMinusInelasticProcess* theInelasticProcess = - new G4PionMinusInelasticProcess("inelastic"); - G4LEPionMinusInelastic* theInelasticModel = - new G4LEPionMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonPlusInelasticProcess* theInelasticProcess = - new G4KaonPlusInelasticProcess("inelastic"); - G4LEKaonPlusInelastic* theInelasticModel = new G4LEKaonPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0S") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroSInelasticProcess* theInelasticProcess = - new G4KaonZeroSInelasticProcess("inelastic"); - G4LEKaonZeroSInelastic* theInelasticModel = - new G4LEKaonZeroSInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0L") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroLInelasticProcess* theInelasticProcess = - new G4KaonZeroLInelasticProcess("inelastic"); - G4LEKaonZeroLInelastic* theInelasticModel = - new G4LEKaonZeroLInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonMinusInelasticProcess* theInelasticProcess = - new G4KaonMinusInelasticProcess("inelastic"); - G4LEKaonMinusInelastic* theInelasticModel = - new G4LEKaonMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4ProtonInelasticProcess* theInelasticProcess = - new G4ProtonInelasticProcess("inelastic"); - G4LEProtonInelastic* theInelasticModel = new G4LEProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiProtonInelasticProcess* theInelasticProcess = - new G4AntiProtonInelasticProcess("inelastic"); - G4LEAntiProtonInelastic* theInelasticModel = - new G4LEAntiProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "neutron") { - - // elastic scattering - G4LElastic* theElasticModel1 = new G4LElastic; - theElasticProcess1->RegisterMe(theElasticModel1); - pmanager->AddDiscreteProcess(theElasticProcess1); - // inelastic scattering - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - // fission - G4HadronFissionProcess* theFissionProcess = - new G4HadronFissionProcess; - G4LFission* theFissionModel = new G4LFission; - theFissionProcess->RegisterMe(theFissionModel); - pmanager->AddDiscreteProcess(theFissionProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureProcess->RegisterMe(theCaptureModel); - pmanager->AddDiscreteProcess(theCaptureProcess); - } - else if (particleName == "anti_neutron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiNeutronInelasticProcess* theInelasticProcess = - new G4AntiNeutronInelasticProcess("inelastic"); - G4LEAntiNeutronInelastic* theInelasticModel = - new G4LEAntiNeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4LambdaInelasticProcess* theInelasticProcess = - new G4LambdaInelasticProcess("inelastic"); - G4LELambdaInelastic* theInelasticModel = new G4LELambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiLambdaInelasticProcess* theInelasticProcess = - new G4AntiLambdaInelasticProcess("inelastic"); - G4LEAntiLambdaInelastic* theInelasticModel = - new G4LEAntiLambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaPlusInelasticProcess* theInelasticProcess = - new G4SigmaPlusInelasticProcess("inelastic"); - G4LESigmaPlusInelastic* theInelasticModel = - new G4LESigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaMinusInelasticProcess* theInelasticProcess = - new G4SigmaMinusInelasticProcess("inelastic"); - G4LESigmaMinusInelastic* theInelasticModel = - new G4LESigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaPlusInelasticProcess* theInelasticProcess = - new G4AntiSigmaPlusInelasticProcess("inelastic"); - G4LEAntiSigmaPlusInelastic* theInelasticModel = - new G4LEAntiSigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaMinusInelasticProcess* theInelasticProcess = - new G4AntiSigmaMinusInelasticProcess("inelastic"); - G4LEAntiSigmaMinusInelastic* theInelasticModel = - new G4LEAntiSigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiZeroInelasticProcess* theInelasticProcess = - new G4XiZeroInelasticProcess("inelastic"); - G4LEXiZeroInelastic* theInelasticModel = - new G4LEXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiMinusInelasticProcess* theInelasticProcess = - new G4XiMinusInelasticProcess("inelastic"); - G4LEXiMinusInelastic* theInelasticModel = - new G4LEXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiZeroInelasticProcess* theInelasticProcess = - new G4AntiXiZeroInelasticProcess("inelastic"); - G4LEAntiXiZeroInelastic* theInelasticModel = - new G4LEAntiXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiMinusInelasticProcess* theInelasticProcess = - new G4AntiXiMinusInelasticProcess("inelastic"); - G4LEAntiXiMinusInelastic* theInelasticModel = - new G4LEAntiXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "deuteron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4DeuteronInelasticProcess* theInelasticProcess = - new G4DeuteronInelasticProcess("inelastic"); - G4LEDeuteronInelastic* theInelasticModel = - new G4LEDeuteronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "triton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4TritonInelasticProcess* theInelasticProcess = - new G4TritonInelasticProcess("inelastic"); - G4LETritonInelastic* theInelasticModel = - new G4LETritonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "alpha") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AlphaInelasticProcess* theInelasticProcess = - new G4AlphaInelasticProcess("inelastic"); - G4LEAlphaInelastic* theInelasticModel = - new G4LEAlphaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4OmegaMinusInelasticProcess* theInelasticProcess = - new G4OmegaMinusInelasticProcess("inelastic"); - G4LEOmegaMinusInelastic* theInelasticModel = - new G4LEOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiOmegaMinusInelasticProcess* theInelasticProcess = - new G4AntiOmegaMinusInelasticProcess("inelastic"); - G4LEAntiOmegaMinusInelastic* theInelasticModel = - new G4LEAntiOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - } -} - -void B05PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void B05PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager ->AddProcess(theDecayProcess); - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} - -void B05PhysicsList::SetCuts() -{ - if (verboseLevel >0) - { - G4cout << "B05PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - // "G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} diff --git a/examples/extended/biasing/B06/exampleB06.cc b/examples/extended/biasing/B06/exampleB06.cc deleted file mode 100644 index 33a9354260..0000000000 --- a/examples/extended/biasing/B06/exampleB06.cc +++ /dev/null @@ -1,99 +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: exampleB06.cc,v 1.7 2002/05/31 11:46:24 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// -------------------------------------------------------------- -// GEANT 4 - exampleB06 -// -// -------------------------------------------------------------- -// Comments -// -// -// -------------------------------------------------------------- - -#include "g4std/iostream" - -#include "G4VPhysicalVolume.hh" -#include "G4RunManager.hh" - -#include "B06DetectorConstruction.hh" -#include "B06PhysicsList.hh" -#include "B06PrimaryGeneratorAction.hh" -#include "B06ImportanceDetectorConstruction.hh" - -// Files specific for biasing and scoring -#include "G4ParallelImportanceScoreSampler.hh" -#include "B06Scorer.hh" -#include "G4Sigma.hh" - -// class for special output -#include "B06ScorePrinter.hh" - -int main(int argc, char **argv) -{ - G4std::ostream *myout = &G4cout; - G4int numberOfEvent = 1000; - - G4String random_status_out_file, random_status_in_file; - G4long myseed = 345354; - - HepRandom::setTheSeed(myseed); - - G4RunManager *runManager = new G4RunManager; - - // create the "tracking" detector ----------------- - runManager->SetUserInitialization(new B06DetectorConstruction); - // --------------------------------------------------- - runManager->SetUserInitialization(new B06PhysicsList); - runManager->SetUserAction(new B06PrimaryGeneratorAction); - runManager->Initialize(); - - // create the detector for the importances and scoring - B06ImportanceDetectorConstruction importancedetector; - // the IStore is filled during detector construction - G4VIStore &aIstore = *importancedetector.GetIStore(); - - // create importance sampler to importance sample neutrons - // in the importance geometry - B06Scorer iScorer(aIstore); - G4ParallelImportanceScoreSampler pmgr(aIstore, iScorer, "neutron"); - pmgr.Initialize(); - - runManager->BeamOn(numberOfEvent); - - // print all the numbers calculated from the scorer - *myout << "output iScorer, importance geometry, neutron" << G4endl; - *myout << iScorer << G4endl; - *myout << "----------------------------------------------" << G4endl; - - // special output - - B06ScorePrinter sp; - sp.PrintHeader(myout); - sp.PrintTable(iScorer.GetMapPtkTallys(), myout); - - return 0; -} diff --git a/examples/extended/biasing/B06/exampleB06.out b/examples/extended/biasing/B06/exampleB06.out deleted file mode 100644 index 4150955349..0000000000 --- a/examples/extended/biasing/B06/exampleB06.out +++ /dev/null @@ -1,439 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) - Copyright : Geant4 Collaboration -********************************************** - -phot: Total cross sections from Sandia parametrisation. -B06PhysicsList::SetCuts:CutLength : 1 (mm) - -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: 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: PScoreProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelImportanceProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 8 -output iScorer, importance geometry, neutron -Volume name = imp_worldCylinder_phys, Replica number = -1 -WeighteOfHistorysEntering -entries : 353 -Sum(w) : 353 -Sum(w*x) : 353 -Sum(w*x*x) : 353 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 353 -Sum(x^2) : 353 -HistorysEnteringWeighted -entries : 353 -Sum(w) : 353 -Sum(w*x) : 353 -Sum(w*x*x) : 353 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 353 -Sum(x^2) : 353 -EnergyEnteringHistoryWeighted -entries : 353 -Sum(w) : 353 -Sum(w*x) : 3099.57 -Sum(w*x*x) : 28606.1 -mean=Sum(w*x) / Sum(w) : 8.78066 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.98425 -Sum(x) : 3099.57 -Sum(x^2) : 28606.1 -Volume name = impcell: M1, Replica number = 0 -WeighteOfHistorysEntering -entries : 2646 -Sum(w) : 2646 -Sum(w*x) : 1323 -Sum(w*x*x) : 661.5 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1323 -Sum(x^2) : 661.5 -HistorysEnteringWeighted -entries : 2646 -Sum(w) : 1323 -Sum(w*x) : 1323 -Sum(w*x*x) : 1323 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 2646 -Sum(x^2) : 2646 -EnergyEnteringHistoryWeighted -entries : 2646 -Sum(w) : 1323 -Sum(w*x) : 12647.9 -Sum(w*x*x) : 123333 -mean=Sum(w*x) / Sum(w) : 9.56003 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.35215 -Sum(x) : 25295.8 -Sum(x^2) : 246667 -WeighteOfCollisions -entries : 2578 -Sum(w) : 2578 -Sum(w*x) : 1289 -Sum(w*x*x) : 644.5 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1289 -Sum(x^2) : 644.5 -CollisionsWeighted -entries : 2578 -Sum(w) : 1289 -Sum(w*x) : 1289 -Sum(w*x*x) : 1289 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 2578 -Sum(x^2) : 2578 -Volume name = impcell: D1, Replica number = 0 -WeighteOfHistorysEntering -entries : 1757 -Sum(w) : 1757 -Sum(w*x) : 439.25 -Sum(w*x*x) : 109.812 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 439.25 -Sum(x^2) : 109.812 -HistorysEnteringWeighted -entries : 1757 -Sum(w) : 439.25 -Sum(w*x) : 439.25 -Sum(w*x*x) : 439.25 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1757 -Sum(x^2) : 1757 -EnergyEnteringHistoryWeighted -entries : 1757 -Sum(w) : 439.25 -Sum(w*x) : 4228.61 -Sum(w*x*x) : 41413.6 -mean=Sum(w*x) / Sum(w) : 9.62688 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.26717 -Sum(x) : 16914.4 -Sum(x^2) : 165654 -WeighteOfCollisions -entries : 1935 -Sum(w) : 1935 -Sum(w*x) : 483.75 -Sum(w*x*x) : 120.938 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 483.75 -Sum(x^2) : 120.938 -CollisionsWeighted -entries : 1935 -Sum(w) : 483.75 -Sum(w*x) : 483.75 -Sum(w*x*x) : 483.75 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1935 -Sum(x^2) : 1935 -Volume name = impcell: M2, Replica number = 0 -WeighteOfHistorysEntering -entries : 3795 -Sum(w) : 3795 -Sum(w*x) : 474.375 -Sum(w*x*x) : 59.2969 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 474.375 -Sum(x^2) : 59.2969 -HistorysEnteringWeighted -entries : 3795 -Sum(w) : 474.375 -Sum(w*x) : 474.375 -Sum(w*x*x) : 474.375 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3795 -Sum(x^2) : 3795 -EnergyEnteringHistoryWeighted -entries : 3795 -Sum(w) : 474.375 -Sum(w*x) : 4403.73 -Sum(w*x*x) : 42370.2 -mean=Sum(w*x) / Sum(w) : 9.28322 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.77192 -Sum(x) : 35229.8 -Sum(x^2) : 338962 -WeighteOfCollisions -entries : 5501 -Sum(w) : 5501 -Sum(w*x) : 687.625 -Sum(w*x*x) : 85.9531 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 687.625 -Sum(x^2) : 85.9531 -CollisionsWeighted -entries : 5501 -Sum(w) : 687.625 -Sum(w*x) : 687.625 -Sum(w*x*x) : 687.625 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 5501 -Sum(x^2) : 5501 -Volume name = impcell: D2, Replica number = 0 -WeighteOfHistorysEntering -entries : 3236 -Sum(w) : 3236 -Sum(w*x) : 202.25 -Sum(w*x*x) : 12.6406 -mean=Sum(w*x) / Sum(w) : 0.0625 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 202.25 -Sum(x^2) : 12.6406 -HistorysEnteringWeighted -entries : 3236 -Sum(w) : 202.25 -Sum(w*x) : 202.25 -Sum(w*x*x) : 202.25 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3236 -Sum(x^2) : 3236 -EnergyEnteringHistoryWeighted -entries : 3236 -Sum(w) : 202.25 -Sum(w*x) : 1888.83 -Sum(w*x*x) : 18235 -mean=Sum(w*x) / Sum(w) : 9.3391 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.71522 -Sum(x) : 30221.3 -Sum(x^2) : 291760 -WeighteOfCollisions -entries : 3962 -Sum(w) : 3962 -Sum(w*x) : 247.625 -Sum(w*x*x) : 15.4766 -mean=Sum(w*x) / Sum(w) : 0.0625 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 247.625 -Sum(x^2) : 15.4766 -CollisionsWeighted -entries : 3962 -Sum(w) : 247.625 -Sum(w*x) : 247.625 -Sum(w*x*x) : 247.625 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3962 -Sum(x^2) : 3962 - ----------------------------------------------- -Volume name | AV w/Ent.Hi.| sigma | AV w/Coll | sigma | Coll_Ent.Tr| AV E/Track | sigma | -imp_worldCylinder_phys... | 1 | 0 | -1 | -1 | -1 | 8.78066 | 1.98425 | -impcell: M1.............. | 0.5 | 0 | 0.5 | 0 | 0.974301 | 9.56003 | 1.35215 | -impcell: D1.............. | 0.25 | 0 | 0.25 | 0 | 1.10131 | 9.62688 | 1.26717 | -impcell: M2.............. | 0.125 | 0 | 0.125 | 0 | 1.44954 | 9.28322 | 1.77192 | -impcell: D2.............. | 0.0625 | 0 | 0.0625 | 0 | 1.22435 | 9.3391 | 1.71522 | -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: PScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: ParallelImportanceProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay - -WARNING - G4ImportanceAlgorithm::~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen - -WARNING - Attempt to delete the physical volume store while geometry closed ! -WARNING - Attempt to delete the logical volume store while geometry closed ! -WARNING - Attempt to delete the solid store while geometry closed ! diff --git a/examples/extended/biasing/B06/src/B06DetectorConstruction.cc b/examples/extended/biasing/B06/src/B06DetectorConstruction.cc deleted file mode 100644 index 27d9cf6bfb..0000000000 --- a/examples/extended/biasing/B06/src/B06DetectorConstruction.cc +++ /dev/null @@ -1,211 +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: B06DetectorConstruction.cc,v 1.4 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "g4std/strstream" -#include "globals.hh" - -#include "B06DetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "PhysicalConstants.h" - -B06DetectorConstruction::B06DetectorConstruction() -{;} - -B06DetectorConstruction::~B06DetectorConstruction() -{;} - -G4VPhysicalVolume* B06DetectorConstruction::Construct() -{ - char line[255]; - - G4double pos_x; - G4double pos_y; - G4double pos_z; - - G4double density, pressure, temperature; - G4double A; - G4int Z; - - G4String name, symbol; - G4double z; - G4double fractionmass; - - A = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , Z= 1, A); - - A = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , Z = 6, A); - - A = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , Z= 8, A); - - A = 22.99*g/mole; - G4Element* elNa = new G4Element(name="Natrium" ,symbol="Na" , Z=11 , A); - - A = 200.59*g/mole; - G4Element* elHg = new G4Element(name="Hg" ,symbol="Hg" , Z=80, A); - - A = 26.98*g/mole; - G4Element* elAl = new G4Element(name="Aluminium" ,symbol="Al" , Z=13, A); - - A = 28.09*g/mole; - G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - - A = 39.1*g/mole; - G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); - - A = 69.72*g/mole; - G4Element* elCa = new G4Element(name="Calzium" ,symbol="Ca" , Z=31 , A); - - A = 55.85*g/mole; - G4Element* elFe = new G4Element(name="Iron" ,symbol="Fe", Z=26, A); - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - - density = 2.03*g/cm3; - G4Material* Concrete = new G4Material("Concrete", density, 10); - Concrete->AddElement(elH , fractionmass= 0.01); - Concrete->AddElement(elO , fractionmass= 0.529); - Concrete->AddElement(elNa , fractionmass= 0.016); - Concrete->AddElement(elHg , fractionmass= 0.002); - Concrete->AddElement(elAl , fractionmass= 0.034); - Concrete->AddElement(elSi , fractionmass= 0.337); - Concrete->AddElement(elK , fractionmass= 0.013); - Concrete->AddElement(elCa , fractionmass= 0.044); - Concrete->AddElement(elFe , fractionmass= 0.014); - Concrete->AddElement(elC , fractionmass= 0.001); - - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - - G4Material *WorldMaterial = Galactic; // tracks entering this are - // killed immediately - - ///////////////////////////// - // world cylinder volume - //////////////////////////// - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical world - - G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); - - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - - // physical world - - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // shield cylinder for (cells 2-4) - //////////////////////////////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 100*cm; - G4double hightShield = 5*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); - - // logical shield - - G4LogicalVolume *aShield_log = - new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); - - // physical shields - - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) - { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, false, 0); - } - - return worldCylinder_phys; -} diff --git a/examples/extended/biasing/B06/src/B06ImportanceDetectorConstruction.cc b/examples/extended/biasing/B06/src/B06ImportanceDetectorConstruction.cc deleted file mode 100644 index 0a4d86064b..0000000000 --- a/examples/extended/biasing/B06/src/B06ImportanceDetectorConstruction.cc +++ /dev/null @@ -1,189 +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: B06ImportanceDetectorConstruction.cc,v 1.4 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" - -#include "B06ImportanceDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "PhysicalConstants.h" -#include "G4IStore.hh" - -B06ImportanceDetectorConstruction::B06ImportanceDetectorConstruction() - : fIStore(0) -{ - Construct(); -} - -B06ImportanceDetectorConstruction::~B06ImportanceDetectorConstruction() -{;} - -G4VIStore* B06ImportanceDetectorConstruction::GetIStore() -{ - if (!fIStore) G4Exception("B06DetectorConstruction::fIStore empty!"); - return fIStore; -} - -void B06ImportanceDetectorConstruction::Construct() -{ - /////////////////////////////////////// - // world inportance cylinder volume - ////////////////////////////////////// - - G4String name; - - G4double density = universe_mean_density; //from PhysicalConstants.h - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4double z,A; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - G4Material *WorldMaterial = Galactic; - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 101*cm; - G4double hightCylinder = 16*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *imp_worldCylinder = new G4Tubs("imp_worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical imp world - - G4LogicalVolume *imp_worldCylinder_log = - new G4LogicalVolume(imp_worldCylinder, WorldMaterial, "imp_worldCylinder_log"); - - // physical world - - name = "imp_worldCylinder_phys"; - G4VPhysicalVolume* imp_worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), imp_worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // imp M1, D1, M2, D2 - //////////////////////////////////////////////// - - ///////////////////// M1 /////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 101*cm; - G4double MhightShield = 7.5002*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *tube_M = new G4Tubs("tube_M", - innerRadiusShield, - outerRadiusShield, - MhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *M1_log = - new G4LogicalVolume(tube_M, Galactic, "M1_log"); - - name = "impcell: M1"; - G4double pos_x = 0*cm; - G4double pos_y = 0*cm; - G4double pos_z = -1*MhightShield; - - G4VPhysicalVolume *pM1 = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M1_log, name, imp_worldCylinder_log, false, 0); - - /////////////////// D1 /////////////////////////// - - innerRadiusShield = 0*cm; - outerRadiusShield = 101*cm; - G4double DhightShield = 2*cm; - startAngleShield = 0*deg; - spanningAngleShield = 360*cm; - - G4Tubs *tube_D = new G4Tubs("tube_D", - innerRadiusShield, - outerRadiusShield, - DhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *D1_log = - new G4LogicalVolume(tube_D, Galactic, "D1_log"); - - name ="impcell: D1"; - - G4VPhysicalVolume *pD1 = - new G4PVPlacement(0, G4ThreeVector(0, 0, 0), - D1_log, name, M1_log, false, 0); - - /////////////////////// M2 ////////////////////////////////// - - G4LogicalVolume *M2_log = - new G4LogicalVolume(tube_M, Galactic, "M2_log"); - - name = "impcell: M2"; - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = MhightShield; - G4VPhysicalVolume *pM2 = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M2_log, name, imp_worldCylinder_log, false, 0); - - //////////////////// D2 ///////////////////////////////// - - G4LogicalVolume *D2_log = - new G4LogicalVolume(tube_D, Galactic, "D2_log"); - - name ="impcell: D2"; - - G4VPhysicalVolume *pD2 = - new G4PVPlacement(0, G4ThreeVector(0, 0, 0), - D2_log, name, M2_log, false, 0); - - ///////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////// - - fIStore = new G4IStore(*imp_worldCylinder_phys); - - // for the world volume repnum is -1 ! - fIStore->AddImportanceRegion(1, *imp_worldCylinder_phys, -1); // repnum -1 - fIStore->AddImportanceRegion(2, *pM1); - fIStore->AddImportanceRegion(4, *pD1); - fIStore->AddImportanceRegion(8, *pM2); - fIStore->AddImportanceRegion(16, *pD2); -} diff --git a/examples/extended/biasing/B06/src/B06PhysicsList.cc b/examples/extended/biasing/B06/src/B06PhysicsList.cc deleted file mode 100644 index 25680150b6..0000000000 --- a/examples/extended/biasing/B06/src/B06PhysicsList.cc +++ /dev/null @@ -1,633 +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: B06PhysicsList.cc,v 1.2 2002/04/19 10:54:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" -#include "g4std/iomanip" - -#include "B06PhysicsList.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4ShortLivedConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" - -B06PhysicsList::B06PhysicsList() : G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -B06PhysicsList::~B06PhysicsList() -{ -} - -void B06PhysicsList::ConstructParticle() -{ - // 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. - - ConstructAllBosons(); - ConstructAllLeptons(); - ConstructAllMesons(); - ConstructAllBaryons(); - ConstructAllIons(); - ConstructAllShortLiveds(); -} - -void B06PhysicsList::ConstructAllBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B06PhysicsList::ConstructAllLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B06PhysicsList::ConstructAllMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B06PhysicsList::ConstructAllBaryons() -{ - // Construct all barions - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B06PhysicsList::ConstructAllIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B06PhysicsList::ConstructAllShortLiveds() -{ - // Construct resonaces and quarks - G4ShortLivedConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B06PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" - -void B06PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - pmanager->AddProcess(new G4MultipleScattering(),-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 == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } else { - if ((particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")&& - (!particle->IsShortLived()) ) { - // all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } - } - } -} - -// Hadron Processes - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" - -#include "G4PionPlusInelasticProcess.hh" -#include "G4PionMinusInelasticProcess.hh" -#include "G4KaonPlusInelasticProcess.hh" -#include "G4KaonZeroSInelasticProcess.hh" -#include "G4KaonZeroLInelasticProcess.hh" -#include "G4KaonMinusInelasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4AntiProtonInelasticProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4AntiNeutronInelasticProcess.hh" -#include "G4LambdaInelasticProcess.hh" -#include "G4AntiLambdaInelasticProcess.hh" -#include "G4SigmaPlusInelasticProcess.hh" -#include "G4SigmaMinusInelasticProcess.hh" -#include "G4AntiSigmaPlusInelasticProcess.hh" -#include "G4AntiSigmaMinusInelasticProcess.hh" -#include "G4XiZeroInelasticProcess.hh" -#include "G4XiMinusInelasticProcess.hh" -#include "G4AntiXiZeroInelasticProcess.hh" -#include "G4AntiXiMinusInelasticProcess.hh" -#include "G4DeuteronInelasticProcess.hh" -#include "G4TritonInelasticProcess.hh" -#include "G4AlphaInelasticProcess.hh" -#include "G4OmegaMinusInelasticProcess.hh" -#include "G4AntiOmegaMinusInelasticProcess.hh" - -// Low-energy Models - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4LEAntiProtonInelastic.hh" -#include "G4LENeutronInelastic.hh" -#include "G4LEAntiNeutronInelastic.hh" -#include "G4LELambdaInelastic.hh" -#include "G4LEAntiLambdaInelastic.hh" -#include "G4LESigmaPlusInelastic.hh" -#include "G4LESigmaMinusInelastic.hh" -#include "G4LEAntiSigmaPlusInelastic.hh" -#include "G4LEAntiSigmaMinusInelastic.hh" -#include "G4LEXiZeroInelastic.hh" -#include "G4LEXiMinusInelastic.hh" -#include "G4LEAntiXiZeroInelastic.hh" -#include "G4LEAntiXiMinusInelastic.hh" -#include "G4LEDeuteronInelastic.hh" -#include "G4LETritonInelastic.hh" -#include "G4LEAlphaInelastic.hh" -#include "G4LEOmegaMinusInelastic.hh" -#include "G4LEAntiOmegaMinusInelastic.hh" - -// -- generator models -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4CompetitiveFission.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4Fancy3DNucleus.hh" -#include "G4LEProtonInelastic.hh" -#include "G4StringModel.hh" -#include "G4PreCompoundModel.hh" -#include "G4FTFModel.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -// -// ConstructHad() -// -// Makes discrete physics processes for the hadrons, at present limited -// to those particles with GHEISHA interactions (INTRC > 0). -// The processes are: Elastic scattering, Inelastic scattering, -// Fission (for neutron only), and Capture (neutron). -// -// F.W.Jones 06-JUL-1998 -// - -void B06PhysicsList::ConstructHad() -{ - // this will be the model class for high energies - G4TheoFSGenerator * theTheoModel = new G4TheoFSGenerator; - - // 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); - - // here come the high energy parts - // the string model; still not quite according to design - Explicite use of the forseen interfaces - // will be tested and documented in this program by beta-02 at latest. - G4VPartonStringModel * theStringModel; - theStringModel = new G4FTFModel; - theTheoModel->SetTransport(theCascade); - theTheoModel->SetHighEnergyGenerator(theStringModel); - theTheoModel->SetMinEnergy(19*GeV); - theTheoModel->SetMaxEnergy(100*TeV); - - G4VLongitudinalStringDecay * theFragmentation = new G4QGSMFragmentation; - G4ExcitedStringDecay * theStringDecay = new G4ExcitedStringDecay(theFragmentation); - theStringModel->SetFragmentationModel(theStringDecay); - -// done with the generator model (most of the above is also available as default) - G4HadronElasticProcess* theElasticProcess = - new G4HadronElasticProcess; - G4LElastic* theElasticModel = new G4LElastic; - theElasticProcess->RegisterMe(theElasticModel); - G4HadronElasticProcess* theElasticProcess1 = - new G4HadronElasticProcess; - theParticleIterator->reset(); - while ((*theParticleIterator)()) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "pi+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionPlusInelasticProcess* theInelasticProcess = - new G4PionPlusInelasticProcess("inelastic"); - G4LEPionPlusInelastic* theInelasticModel = - new G4LEPionPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "pi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionMinusInelasticProcess* theInelasticProcess = - new G4PionMinusInelasticProcess("inelastic"); - G4LEPionMinusInelastic* theInelasticModel = - new G4LEPionMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonPlusInelasticProcess* theInelasticProcess = - new G4KaonPlusInelasticProcess("inelastic"); - G4LEKaonPlusInelastic* theInelasticModel = new G4LEKaonPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0S") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroSInelasticProcess* theInelasticProcess = - new G4KaonZeroSInelasticProcess("inelastic"); - G4LEKaonZeroSInelastic* theInelasticModel = - new G4LEKaonZeroSInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0L") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroLInelasticProcess* theInelasticProcess = - new G4KaonZeroLInelasticProcess("inelastic"); - G4LEKaonZeroLInelastic* theInelasticModel = - new G4LEKaonZeroLInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonMinusInelasticProcess* theInelasticProcess = - new G4KaonMinusInelasticProcess("inelastic"); - G4LEKaonMinusInelastic* theInelasticModel = - new G4LEKaonMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4ProtonInelasticProcess* theInelasticProcess = - new G4ProtonInelasticProcess("inelastic"); - G4LEProtonInelastic* theInelasticModel = new G4LEProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiProtonInelasticProcess* theInelasticProcess = - new G4AntiProtonInelasticProcess("inelastic"); - G4LEAntiProtonInelastic* theInelasticModel = - new G4LEAntiProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "neutron") { - - // elastic scattering - G4LElastic* theElasticModel1 = new G4LElastic; - theElasticProcess1->RegisterMe(theElasticModel1); - pmanager->AddDiscreteProcess(theElasticProcess1); - // inelastic scattering - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - // fission - G4HadronFissionProcess* theFissionProcess = - new G4HadronFissionProcess; - G4LFission* theFissionModel = new G4LFission; - theFissionProcess->RegisterMe(theFissionModel); - pmanager->AddDiscreteProcess(theFissionProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureProcess->RegisterMe(theCaptureModel); - pmanager->AddDiscreteProcess(theCaptureProcess); - } - else if (particleName == "anti_neutron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiNeutronInelasticProcess* theInelasticProcess = - new G4AntiNeutronInelasticProcess("inelastic"); - G4LEAntiNeutronInelastic* theInelasticModel = - new G4LEAntiNeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4LambdaInelasticProcess* theInelasticProcess = - new G4LambdaInelasticProcess("inelastic"); - G4LELambdaInelastic* theInelasticModel = new G4LELambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiLambdaInelasticProcess* theInelasticProcess = - new G4AntiLambdaInelasticProcess("inelastic"); - G4LEAntiLambdaInelastic* theInelasticModel = - new G4LEAntiLambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaPlusInelasticProcess* theInelasticProcess = - new G4SigmaPlusInelasticProcess("inelastic"); - G4LESigmaPlusInelastic* theInelasticModel = - new G4LESigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaMinusInelasticProcess* theInelasticProcess = - new G4SigmaMinusInelasticProcess("inelastic"); - G4LESigmaMinusInelastic* theInelasticModel = - new G4LESigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaPlusInelasticProcess* theInelasticProcess = - new G4AntiSigmaPlusInelasticProcess("inelastic"); - G4LEAntiSigmaPlusInelastic* theInelasticModel = - new G4LEAntiSigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaMinusInelasticProcess* theInelasticProcess = - new G4AntiSigmaMinusInelasticProcess("inelastic"); - G4LEAntiSigmaMinusInelastic* theInelasticModel = - new G4LEAntiSigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiZeroInelasticProcess* theInelasticProcess = - new G4XiZeroInelasticProcess("inelastic"); - G4LEXiZeroInelastic* theInelasticModel = - new G4LEXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiMinusInelasticProcess* theInelasticProcess = - new G4XiMinusInelasticProcess("inelastic"); - G4LEXiMinusInelastic* theInelasticModel = - new G4LEXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiZeroInelasticProcess* theInelasticProcess = - new G4AntiXiZeroInelasticProcess("inelastic"); - G4LEAntiXiZeroInelastic* theInelasticModel = - new G4LEAntiXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiMinusInelasticProcess* theInelasticProcess = - new G4AntiXiMinusInelasticProcess("inelastic"); - G4LEAntiXiMinusInelastic* theInelasticModel = - new G4LEAntiXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "deuteron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4DeuteronInelasticProcess* theInelasticProcess = - new G4DeuteronInelasticProcess("inelastic"); - G4LEDeuteronInelastic* theInelasticModel = - new G4LEDeuteronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "triton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4TritonInelasticProcess* theInelasticProcess = - new G4TritonInelasticProcess("inelastic"); - G4LETritonInelastic* theInelasticModel = - new G4LETritonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "alpha") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AlphaInelasticProcess* theInelasticProcess = - new G4AlphaInelasticProcess("inelastic"); - G4LEAlphaInelastic* theInelasticModel = - new G4LEAlphaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4OmegaMinusInelasticProcess* theInelasticProcess = - new G4OmegaMinusInelasticProcess("inelastic"); - G4LEOmegaMinusInelastic* theInelasticModel = - new G4LEOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiOmegaMinusInelasticProcess* theInelasticProcess = - new G4AntiOmegaMinusInelasticProcess("inelastic"); - G4LEAntiOmegaMinusInelastic* theInelasticModel = - new G4LEAntiOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - } -} - -void B06PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void B06PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager ->AddProcess(theDecayProcess); - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} - -void B06PhysicsList::SetCuts() -{ - if (verboseLevel >0) - { - G4cout << "B06PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - // "G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} diff --git a/examples/extended/biasing/B06/src/B06ScorePrinter.cc b/examples/extended/biasing/B06/src/B06ScorePrinter.cc deleted file mode 100644 index e2f0305d85..0000000000 --- a/examples/extended/biasing/B06/src/B06ScorePrinter.cc +++ /dev/null @@ -1,140 +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: B06ScorePrinter.cc,v 1.5 2002/04/19 10:54:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "B06ScorePrinter.hh" -#include "G4VPhysicalVolume.hh" -#include "G4Sigma.hh" - -B06ScorePrinter::B06ScorePrinter() -{ - FieldName = 25; - FieldValue = 12; -} - -void B06ScorePrinter::PrintHeader(G4std::ostream *out) -{ - // head line - G4std::string vname = FillString("Volume name", ' ', FieldName+1); - *out << vname << '|'; - vname = FillString("AV w/Ent.Hi.", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" sigma ", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" AV w/Coll ", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" sigma ", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("Coll_Ent.Tr", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" AV E/Track ", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" sigma", ' ', FieldValue+1); - *out << vname << '|'; - *out << G4endl; -} - -void B06ScorePrinter::PrintTable(const G4PMapPtkTallys &aMapPtkTallys, - G4std::ostream *out) -{ - for (G4PMapPtkTallys::const_iterator mit = aMapPtkTallys.begin(); - mit != aMapPtkTallys.end(); mit++) { - G4PTouchableKey ptk = (*mit).first; // get a key identifying a volume - G4PMapNameTally mtallies = (*mit).second; // get tallies of the volume - G4String name(ptk.fVPhysiclaVolume->GetName()); // print volume name - - G4double avW_EntHist = -1; - G4double avW_EntHist_sigma = -1; - G4double avW_Coll = -1; - G4double avW_Coll_sigma = -1; - - G4double sumTrWeight = -1; - G4double sumCollWeight = -1; - G4double Coll_Ent_Tr = -1; - - G4double meanTrackEnergy = -1, sigmaTrackEnergy = -1; - - for (G4PMapNameTally::iterator mt = mtallies.begin(); - mt != mtallies.end(); mt++) { - G4String tmp((*mt).first); - if (tmp == "WeighteOfHistorysEntering") { - avW_EntHist = (*mt).second.GetMean(); - avW_EntHist_sigma = (*mt).second.GetSigma(); - } - if (tmp == "WeighteOfCollisions") { - avW_Coll = (*mt).second.GetMean(); - avW_Coll_sigma = (*mt).second.GetSigma(); - } - if (tmp == "HistorysEnteringWeighted") { - sumTrWeight = (*mt).second.GetSumOfWeights(); - } - if (tmp == "CollisionsWeighted") { - sumCollWeight = (*mt).second.GetSumOfWeights(); - } - if (tmp == "EnergyEnteringHistoryWeighted") { - meanTrackEnergy = (*mt).second.GetMean(); - sigmaTrackEnergy = (*mt).second.GetSigma(); - } - } - - if (sumTrWeight!=0.&&sumCollWeight!=-1) { - Coll_Ent_Tr = sumCollWeight / sumTrWeight; - } - // print values - - G4std::string fname = FillString(name, '.', FieldName); - *out << fname << " |"; - *out << G4std::setw(FieldValue) << avW_EntHist << " |"; - *out << G4std::setw(FieldValue) << avW_EntHist_sigma << " |"; - *out << G4std::setw(FieldValue) << avW_Coll << " |"; - *out << G4std::setw(FieldValue) << avW_Coll_sigma << " |"; - *out << G4std::setw(FieldValue) << Coll_Ent_Tr << " |"; - *out << G4std::setw(FieldValue) << meanTrackEnergy << " |"; - *out << G4std::setw(FieldValue) << sigmaTrackEnergy << " |"; - *out << G4endl; - } -} - -G4std::string B06ScorePrinter::FillString(const G4std::string &name, - char c, G4int n, G4bool back) -{ - G4std::string fname; - G4int k = n - name.size(); - if (k > 0) { - if (back) { - fname = name; - fname += G4std::string(k,c); - } - else { - fname = G4std::string(k,c); - fname += name; - } - } - else { - fname = name; - } - return fname; -} diff --git a/examples/extended/biasing/B06/src/B06Scorer.cc b/examples/extended/biasing/B06/src/B06Scorer.cc deleted file mode 100644 index 93f3c8f937..0000000000 --- a/examples/extended/biasing/B06/src/B06Scorer.cc +++ /dev/null @@ -1,110 +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: B06Scorer.cc,v 1.3 2002/04/19 10:54:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "B06Scorer.hh" - -#include "G4Step.hh" -#include "G4PStep.hh" -#include "G4Sigma.hh" -#include "G4StateManager.hh" -#include "G4PStepStream.hh" -#include "G4VIStore.hh" - -B06Scorer::B06Scorer(const G4VIStore &IStore) - : fIStore(IStore), fCorrectWeight(true) -{;} - -B06Scorer::~B06Scorer() -{;} - -void B06Scorer::Score(const G4Step &aStep, const G4PStep &aPstep) -{ - G4Track *track = aStep.GetTrack(); - - if (track->GetTrackStatus()==fStopAndKill) - { - G4cout << " track status is StopAndKill -> do nothing" << G4endl; - } - // do the scoring - else - { - G4double weight = track->GetWeight(); - // check if importances are "correct" ------------------------------- - G4double import = fIStore.GetImportance(aPstep.fPostTouchableKey); - G4double i_w =import * weight; - if (i_w != 1.) { - G4StepPoint* prepoint = aStep.GetPreStepPoint(); - G4StepPoint* postpoint = aStep.GetPostStepPoint(); - - G4cout << "B06Scorer::Score:" << G4endl; - G4cout << " Stepnumber = " << aStep.GetTrack()->GetCurrentStepNumber() - << G4endl; - G4cout << " TrackID = " << aStep.GetTrack()->GetTrackID() << G4endl; - G4cout << " ParentID = " << aStep.GetTrack()->GetParentID() << G4endl; - G4cout << " Track wieght = " << weight << G4endl; - G4cout << " Importance = " << import << G4endl; - G4cout << " i_w = " << i_w << G4endl; - G4cout << " aPstep: " << aPstep << G4endl; - G4cout << " steplength = " << aStep.GetStepLength() << G4endl; - G4cout << " pre_pos = " << prepoint->GetPosition() - << ", pre_dir = " << prepoint->GetMomentumDirection() << G4endl; - G4cout << " post_pos = " << postpoint->GetPosition() - << ", post_dir = " << postpoint->GetMomentumDirection() << G4endl; - G4cout << " vxt mom: " << track->GetVertexMomentumDirection() << G4endl; - fCorrectWeight = false; - } - // -------------------------------------------------------------------- - - - // the map fPtkTallys, the map nametallys and the "G4Sigma" will - // be setup the first time they are accesed. - G4PTouchableKey post_ptk(aPstep.fPostTouchableKey); - if (aPstep.fCrossBoundary) - { - // Pstep crosses boundary - fPtkTallys[post_ptk]["WeighteOfHistorysEntering"].Xin(weight); - fPtkTallys[post_ptk]["HistorysEnteringWeighted"].Xin(1,weight); - fPtkTallys[post_ptk]["EnergyEnteringHistoryWeighted"]. - Xin(track->GetKineticEnergy(), weight); - } - else - { - // Pstep with both points in the same I volume - if (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) - { - fPtkTallys[post_ptk]["WeighteOfCollisions"].Xin(weight); - fPtkTallys[post_ptk]["CollisionsWeighted"].Xin(1,weight); - } - } - } -} - -G4std::ostream& operator<<(G4std::ostream &out, const B06Scorer &ps) -{ - out << ps.GetMapPtkTallys(); - return out; -} diff --git a/examples/extended/biasing/B07/exampleB07.cc b/examples/extended/biasing/B07/exampleB07.cc deleted file mode 100644 index 4aae9d3663..0000000000 --- a/examples/extended/biasing/B07/exampleB07.cc +++ /dev/null @@ -1,101 +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: exampleB07.cc,v 1.5 2002/05/31 11:46:24 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// -------------------------------------------------------------- -// GEANT 4 - exampleB07 -// -// -------------------------------------------------------------- -// Comments -// -// -// -------------------------------------------------------------- - -#include "g4std/iostream" - -#include "G4VPhysicalVolume.hh" -#include "G4RunManager.hh" - -#include "B07DetectorConstruction.hh" -#include "B07PhysicsList.hh" -#include "B07PrimaryGeneratorAction.hh" -#include "B07ImportanceDetectorConstruction.hh" - -// Files specific for biasing and scoring -#include "G4ParallelImportanceScoreSampler.hh" -#include "G4PIScorer.hh" -#include "G4Sigma.hh" - -int main(int argc, char **argv) -{ - G4std::ostream *myout = &G4cout; - G4int numberOfEvent = 10000; - - G4String random_status_out_file, random_status_in_file; - G4long myseed = 345354; - - HepRandom::setTheSeed(myseed); - - G4RunManager *runManager = new G4RunManager; - - // create the "tracking" detector ----------------- - runManager->SetUserInitialization(new B07DetectorConstruction); - // --------------------------------------------------- - runManager->SetUserInitialization(new B07PhysicsList); - runManager->SetUserAction(new B07PrimaryGeneratorAction); - runManager->Initialize(); - - // create the detector for the importances and scoring - B07ImportanceDetectorConstruction importancedetector; - importancedetector.Construct(); - // the IStore is filled during detector construction - G4VIStore &aIstore = *importancedetector.GetIStore(); - - // ceate two scorers - G4PIScorer nScorer(aIstore); // scorer for neutrons - G4PIScorer gScorer(aIstore); // scorer for gammas - - // create two importance sampler to importance sample neutrons - // and gammas in the importance geometry - G4ParallelImportanceScoreSampler npmgr(aIstore, nScorer, "neutron"); - npmgr.Initialize(); - G4ParallelImportanceScoreSampler gpmgr(aIstore, gScorer, "gamma"); - gpmgr.Initialize(); - - runManager->BeamOn(numberOfEvent); - - // print all the numbers calculated from the scorer - *myout << "output nScorer, importance geometry, neutron" << G4endl; - *myout << nScorer << G4endl; - *myout << "----------------------------------------------" << G4endl; - - // print all the numbers calculated from the scorer - *myout << "output gScorer, importance geometry, gamma" << G4endl; - *myout << gScorer << G4endl; - *myout << "----------------------------------------------" << G4endl; - - return 0; -} diff --git a/examples/extended/biasing/B07/exampleB07.out b/examples/extended/biasing/B07/exampleB07.out deleted file mode 100644 index 7c16cb7c9c..0000000000 --- a/examples/extended/biasing/B07/exampleB07.out +++ /dev/null @@ -1,721 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) - Copyright : Geant4 Collaboration -********************************************** - -phot: Total cross sections from Sandia parametrisation. -B07PhysicsList::SetCuts:CutLength : 1 (mm) - -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. -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: PScoreProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelImportanceProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: gamma -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: PScoreProcess -The initial Vectors: -GPIL Vector: - phot - compt - conv - Transportation -DoIt Vector: - Transportation - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - conv - compt - phot -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: gamma -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelImportanceProcess -The initial Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - conv - compt - phot -================================================ -WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 8 -WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 8 -output nScorer, importance geometry, neutron -Volume name = imp_worldCylinder_phys, Replica number = -1 -WeighteOfHistorysEntering -entries : 3493 -Sum(w) : 3493 -Sum(w*x) : 3493 -Sum(w*x*x) : 3493 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3493 -Sum(x^2) : 3493 -HistorysEnteringWeighted -entries : 3493 -Sum(w) : 3493 -Sum(w*x) : 3493 -Sum(w*x*x) : 3493 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3493 -Sum(x^2) : 3493 -EnergyEnteringHistoryWeighted -entries : 3493 -Sum(w) : 3493 -Sum(w*x) : 29996.1 -Sum(w*x*x) : 273437 -mean=Sum(w*x) / Sum(w) : 8.58748 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 2.12993 -Sum(x) : 29996.1 -Sum(x^2) : 273437 -Volume name = impcell: M1, Replica number = 0 -WeighteOfHistorysEntering -entries : 26823 -Sum(w) : 26823 -Sum(w*x) : 13411.5 -Sum(w*x*x) : 6705.75 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 13411.5 -Sum(x^2) : 6705.75 -HistorysEnteringWeighted -entries : 26823 -Sum(w) : 13411.5 -Sum(w*x) : 13411.5 -Sum(w*x*x) : 13411.5 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 26823 -Sum(x^2) : 26823 -EnergyEnteringHistoryWeighted -entries : 26823 -Sum(w) : 13411.5 -Sum(w*x) : 127619 -Sum(w*x*x) : 1.24148e+06 -mean=Sum(w*x) / Sum(w) : 9.51567 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.42145 -Sum(x) : 255239 -Sum(x^2) : 2.48296e+06 -WeighteOfCollisions -entries : 26690 -Sum(w) : 26690 -Sum(w*x) : 13345 -Sum(w*x*x) : 6672.5 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 13345 -Sum(x^2) : 6672.5 -CollisionsWeighted -entries : 26690 -Sum(w) : 13345 -Sum(w*x) : 13345 -Sum(w*x*x) : 13345 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 26690 -Sum(x^2) : 26690 -Volume name = impcell: D1, Replica number = 0 -WeighteOfHistorysEntering -entries : 17927 -Sum(w) : 17927 -Sum(w*x) : 4481.75 -Sum(w*x*x) : 1120.44 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 4481.75 -Sum(x^2) : 1120.44 -HistorysEnteringWeighted -entries : 17927 -Sum(w) : 4481.75 -Sum(w*x) : 4481.75 -Sum(w*x*x) : 4481.75 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 17927 -Sum(x^2) : 17927 -EnergyEnteringHistoryWeighted -entries : 17927 -Sum(w) : 4481.75 -Sum(w*x) : 42897 -Sum(w*x*x) : 418808 -mean=Sum(w*x) / Sum(w) : 9.57148 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.35431 -Sum(x) : 171588 -Sum(x^2) : 1.67523e+06 -WeighteOfCollisions -entries : 19976 -Sum(w) : 19976 -Sum(w*x) : 4994 -Sum(w*x*x) : 1248.5 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 4994 -Sum(x^2) : 1248.5 -CollisionsWeighted -entries : 19976 -Sum(w) : 4994 -Sum(w*x) : 4994 -Sum(w*x*x) : 4994 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 19976 -Sum(x^2) : 19976 -Volume name = impcell: M2, Replica number = 0 -WeighteOfHistorysEntering -entries : 38500 -Sum(w) : 38500 -Sum(w*x) : 4812.5 -Sum(w*x*x) : 601.562 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 4812.5 -Sum(x^2) : 601.562 -HistorysEnteringWeighted -entries : 38500 -Sum(w) : 4812.5 -Sum(w*x) : 4812.5 -Sum(w*x*x) : 4812.5 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 38500 -Sum(x^2) : 38500 -EnergyEnteringHistoryWeighted -entries : 38500 -Sum(w) : 4812.5 -Sum(w*x) : 44401.7 -Sum(w*x*x) : 425395 -mean=Sum(w*x) / Sum(w) : 9.22632 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.80795 -Sum(x) : 355213 -Sum(x^2) : 3.40316e+06 -WeighteOfCollisions -entries : 56461 -Sum(w) : 56461 -Sum(w*x) : 7057.62 -Sum(w*x*x) : 882.203 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 7057.62 -Sum(x^2) : 882.203 -CollisionsWeighted -entries : 56461 -Sum(w) : 7057.62 -Sum(w*x) : 7057.62 -Sum(w*x*x) : 7057.62 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 56461 -Sum(x^2) : 56461 -Volume name = impcell: D2, Replica number = 0 -WeighteOfHistorysEntering -entries : 32907 -Sum(w) : 32907 -Sum(w*x) : 2056.69 -Sum(w*x*x) : 128.543 -mean=Sum(w*x) / Sum(w) : 0.0625 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 2056.69 -Sum(x^2) : 128.543 -HistorysEnteringWeighted -entries : 32907 -Sum(w) : 2056.69 -Sum(w*x) : 2056.69 -Sum(w*x*x) : 2056.69 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 32907 -Sum(x^2) : 32907 -EnergyEnteringHistoryWeighted -entries : 32907 -Sum(w) : 2056.69 -Sum(w*x) : 19139.6 -Sum(w*x*x) : 184265 -mean=Sum(w*x) / Sum(w) : 9.30602 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 1.7295 -Sum(x) : 306233 -Sum(x^2) : 2.94825e+06 -WeighteOfCollisions -entries : 41009 -Sum(w) : 41009 -Sum(w*x) : 2563.06 -Sum(w*x*x) : 160.191 -mean=Sum(w*x) / Sum(w) : 0.0625 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 2563.06 -Sum(x^2) : 160.191 -CollisionsWeighted -entries : 41009 -Sum(w) : 2563.06 -Sum(w*x) : 2563.06 -Sum(w*x*x) : 2563.06 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 41009 -Sum(x^2) : 41009 - ----------------------------------------------- -output gScorer, importance geometry, gamma -Volume name = imp_worldCylinder_phys, Replica number = -1 -WeighteOfHistorysEntering -entries : 497 -Sum(w) : 497 -Sum(w*x) : 497 -Sum(w*x*x) : 497 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 497 -Sum(x^2) : 497 -HistorysEnteringWeighted -entries : 497 -Sum(w) : 497 -Sum(w*x) : 497 -Sum(w*x*x) : 497 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 497 -Sum(x^2) : 497 -EnergyEnteringHistoryWeighted -entries : 497 -Sum(w) : 497 -Sum(w*x) : 1595.98 -Sum(w*x*x) : 9801.21 -mean=Sum(w*x) / Sum(w) : 3.21124 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 3.06736 -Sum(x) : 1595.98 -Sum(x^2) : 9801.21 -Volume name = impcell: M1, Replica number = 0 -WeighteOfHistorysEntering -entries : 1476 -Sum(w) : 1476 -Sum(w*x) : 738 -Sum(w*x*x) : 369 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 738 -Sum(x^2) : 369 -HistorysEnteringWeighted -entries : 1476 -Sum(w) : 738 -Sum(w*x) : 738 -Sum(w*x*x) : 738 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1476 -Sum(x^2) : 1476 -EnergyEnteringHistoryWeighted -entries : 1476 -Sum(w) : 738 -Sum(w*x) : 2039.2 -Sum(w*x*x) : 12544.7 -mean=Sum(w*x) / Sum(w) : 2.76314 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 3.05995 -Sum(x) : 4078.39 -Sum(x^2) : 25089.4 -WeighteOfCollisions -entries : 3343 -Sum(w) : 3343 -Sum(w*x) : 1671.5 -Sum(w*x*x) : 835.75 -mean=Sum(w*x) / Sum(w) : 0.5 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1671.5 -Sum(x^2) : 835.75 -CollisionsWeighted -entries : 3343 -Sum(w) : 1671.5 -Sum(w*x) : 1671.5 -Sum(w*x*x) : 1671.5 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3343 -Sum(x^2) : 3343 -Volume name = impcell: D1, Replica number = 0 -WeighteOfHistorysEntering -entries : 908 -Sum(w) : 908 -Sum(w*x) : 227 -Sum(w*x*x) : 56.75 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 227 -Sum(x^2) : 56.75 -HistorysEnteringWeighted -entries : 908 -Sum(w) : 227 -Sum(w*x) : 227 -Sum(w*x*x) : 227 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 908 -Sum(x^2) : 908 -EnergyEnteringHistoryWeighted -entries : 908 -Sum(w) : 227 -Sum(w*x) : 635.043 -Sum(w*x*x) : 3915.2 -mean=Sum(w*x) / Sum(w) : 2.79755 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 3.06942 -Sum(x) : 2540.17 -Sum(x^2) : 15660.8 -WeighteOfCollisions -entries : 2791 -Sum(w) : 2791 -Sum(w*x) : 697.75 -Sum(w*x*x) : 174.438 -mean=Sum(w*x) / Sum(w) : 0.25 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 697.75 -Sum(x^2) : 174.438 -CollisionsWeighted -entries : 2791 -Sum(w) : 697.75 -Sum(w*x) : 697.75 -Sum(w*x*x) : 697.75 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 2791 -Sum(x^2) : 2791 -Volume name = impcell: M2, Replica number = 0 -WeighteOfHistorysEntering -entries : 3864 -Sum(w) : 3864 -Sum(w*x) : 483 -Sum(w*x*x) : 60.375 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 483 -Sum(x^2) : 60.375 -HistorysEnteringWeighted -entries : 3864 -Sum(w) : 483 -Sum(w*x) : 483 -Sum(w*x*x) : 483 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3864 -Sum(x^2) : 3864 -EnergyEnteringHistoryWeighted -entries : 3864 -Sum(w) : 483 -Sum(w*x) : 1389 -Sum(w*x*x) : 8564.56 -mean=Sum(w*x) / Sum(w) : 2.87578 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 3.07602 -Sum(x) : 11112 -Sum(x^2) : 68516.5 -WeighteOfCollisions -entries : 10651 -Sum(w) : 10651 -Sum(w*x) : 1331.38 -Sum(w*x*x) : 166.422 -mean=Sum(w*x) / Sum(w) : 0.125 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 1331.38 -Sum(x^2) : 166.422 -CollisionsWeighted -entries : 10651 -Sum(w) : 1331.38 -Sum(w*x) : 1331.38 -Sum(w*x*x) : 1331.38 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 10651 -Sum(x^2) : 10651 -Volume name = impcell: D2, Replica number = 0 -WeighteOfHistorysEntering -entries : 3084 -Sum(w) : 3084 -Sum(w*x) : 192.75 -Sum(w*x*x) : 12.0469 -mean=Sum(w*x) / Sum(w) : 0.0625 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 192.75 -Sum(x^2) : 12.0469 -HistorysEnteringWeighted -entries : 3084 -Sum(w) : 192.75 -Sum(w*x) : 192.75 -Sum(w*x*x) : 192.75 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 3084 -Sum(x^2) : 3084 -EnergyEnteringHistoryWeighted -entries : 3084 -Sum(w) : 192.75 -Sum(w*x) : 551.27 -Sum(w*x*x) : 3418.47 -mean=Sum(w*x) / Sum(w) : 2.86002 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 3.0912 -Sum(x) : 8820.31 -Sum(x^2) : 54695.5 -WeighteOfCollisions -entries : 8250 -Sum(w) : 8250 -Sum(w*x) : 515.625 -Sum(w*x*x) : 32.2266 -mean=Sum(w*x) / Sum(w) : 0.0625 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 515.625 -Sum(x^2) : 32.2266 -CollisionsWeighted -entries : 8250 -Sum(w) : 515.625 -Sum(w*x) : 515.625 -Sum(w*x*x) : 515.625 -mean=Sum(w*x) / Sum(w) : 1 -sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): 0 -Sum(x) : 8250 -Sum(x^2) : 8250 - ----------------------------------------------- -+++ G4ProcessPlacer::G4ProcessPlacer: for: gamma - ProcessName: PScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - conv - compt - phot -+++ G4ProcessPlacer::G4ProcessPlacer: for: gamma - ProcessName: ParallelImportanceProcess, will be removed! -The initial Vectors: -GPIL Vector: - phot - compt - conv - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - Transportation -DoIt Vector: - Transportation - conv - compt - phot - -WARNING - G4ImportanceAlgorithm::~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen - -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: PScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: ParallelImportanceProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay - -WARNING - G4ImportanceAlgorithm::~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen - -WARNING - Attempt to delete the physical volume store while geometry closed ! -WARNING - Attempt to delete the logical volume store while geometry closed ! -WARNING - Attempt to delete the solid store while geometry closed ! diff --git a/examples/extended/biasing/B07/src/B07DetectorConstruction.cc b/examples/extended/biasing/B07/src/B07DetectorConstruction.cc deleted file mode 100644 index 3911c72aa7..0000000000 --- a/examples/extended/biasing/B07/src/B07DetectorConstruction.cc +++ /dev/null @@ -1,210 +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: B07DetectorConstruction.cc,v 1.4 2002/04/19 10:54:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "g4std/strstream" -#include "globals.hh" - -#include "B07DetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "PhysicalConstants.h" - -B07DetectorConstruction::B07DetectorConstruction() -{;} - -B07DetectorConstruction::~B07DetectorConstruction() -{;} - -G4VPhysicalVolume* B07DetectorConstruction::Construct() -{ - char line[255]; - - G4double pos_x; - G4double pos_y; - G4double pos_z; - - G4double density, pressure, temperature; - G4double A; - G4int Z; - - G4String name, symbol; - G4double z; - G4double fractionmass; - - A = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , Z= 1, A); - - A = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , Z = 6, A); - - A = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , Z= 8, A); - - A = 22.99*g/mole; - G4Element* elNa = new G4Element(name="Natrium" ,symbol="Na" , Z=11 , A); - - A = 200.59*g/mole; - G4Element* elHg = new G4Element(name="Hg" ,symbol="Hg" , Z=80, A); - - A = 26.98*g/mole; - G4Element* elAl = new G4Element(name="Aluminium" ,symbol="Al" , Z=13, A); - - A = 28.09*g/mole; - G4Element* elSi = new G4Element(name="Silicon", symbol="Si", Z=14, A); - - A = 39.1*g/mole; - G4Element* elK = new G4Element(name="K" ,symbol="K" , Z=19 , A); - - A = 69.72*g/mole; - G4Element* elCa = new G4Element(name="Calzium" ,symbol="Ca" , Z=31 , A); - - A = 55.85*g/mole; - G4Element* elFe = new G4Element(name="Iron" ,symbol="Fe", Z=26, A); - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - - density = 2.03*g/cm3; - G4Material* Concrete = new G4Material("Concrete", density, 10); - Concrete->AddElement(elH , fractionmass= 0.01); - Concrete->AddElement(elO , fractionmass= 0.529); - Concrete->AddElement(elNa , fractionmass= 0.016); - Concrete->AddElement(elHg , fractionmass= 0.002); - Concrete->AddElement(elAl , fractionmass= 0.034); - Concrete->AddElement(elSi , fractionmass= 0.337); - Concrete->AddElement(elK , fractionmass= 0.013); - Concrete->AddElement(elCa , fractionmass= 0.044); - Concrete->AddElement(elFe , fractionmass= 0.014); - Concrete->AddElement(elC , fractionmass= 0.001); - - density = 0.0203*g/cm3; - G4Material* LightConcrete = new G4Material("LightConcrete", density, 10); - LightConcrete->AddElement(elH , fractionmass= 0.01); - LightConcrete->AddElement(elO , fractionmass= 0.529); - LightConcrete->AddElement(elNa , fractionmass= 0.016); - LightConcrete->AddElement(elHg , fractionmass= 0.002); - LightConcrete->AddElement(elAl , fractionmass= 0.034); - LightConcrete->AddElement(elSi , fractionmass= 0.337); - LightConcrete->AddElement(elK , fractionmass= 0.013); - LightConcrete->AddElement(elCa , fractionmass= 0.044); - LightConcrete->AddElement(elFe , fractionmass= 0.014); - LightConcrete->AddElement(elC , fractionmass= 0.001); - - G4Material *WorldMaterial = Galactic; - - ///////////////////////////// - // world cylinder volume - //////////////////////////// - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 15.001*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical world - - G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); - - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - - // physical world - - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // shield cylinder for (cells 2-4) - //////////////////////////////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 100*cm; - G4double hightShield = 5*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); - - // logical shield - - G4LogicalVolume *aShield_log = - new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); - - // physical shields - - // physical shields for cell 2 to 4 - for(G4int i=0; i<3; i++) - { - if (i+2<10) sprintf(line,"cell: 0%d, shield",i+2); - else sprintf(line,"cell: %d, shield",i+2); - G4String name(line); - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = -10*cm+(10*cm)*i; - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, false, 0); - } - - return worldCylinder_phys; -} diff --git a/examples/extended/biasing/B07/src/B07ImportanceDetectorConstruction.cc b/examples/extended/biasing/B07/src/B07ImportanceDetectorConstruction.cc deleted file mode 100644 index 891d80d04b..0000000000 --- a/examples/extended/biasing/B07/src/B07ImportanceDetectorConstruction.cc +++ /dev/null @@ -1,189 +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: B07ImportanceDetectorConstruction.cc,v 1.5 2002/04/19 12:18:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" - -#include "B07ImportanceDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "PhysicalConstants.h" -#include "G4IStore.hh" - -B07ImportanceDetectorConstruction::B07ImportanceDetectorConstruction() - : fIStore(0) -{;} - -B07ImportanceDetectorConstruction::~B07ImportanceDetectorConstruction() -{;} - -G4VIStore* B07ImportanceDetectorConstruction::GetIStore() -{ - if (!fIStore) G4Exception("B07DetectorConstruction::fIStore empty!"); - return fIStore; -} - -G4VPhysicalVolume* B07ImportanceDetectorConstruction::Construct() -{ - ////////////////////////////////////// - // world inportance cylinder volume - //////////////////////////////////// - - G4String name; - - G4double density = universe_mean_density; //from PhysicalConstants.h - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4double z,A; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - G4Material *WorldMaterial = Galactic; - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 101*cm; - G4double hightCylinder = 16*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *imp_worldCylinder = new G4Tubs("imp_worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical imp world - - G4LogicalVolume *imp_worldCylinder_log = - new G4LogicalVolume(imp_worldCylinder, WorldMaterial, "imp_worldCylinder_log"); - - // physical world - - name = "imp_worldCylinder_phys"; - G4VPhysicalVolume* imp_worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), imp_worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // imp M1, D1, M2, D2 - //////////////////////////////////////////////// - - ///////////////////// M1 /////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 101*cm; - G4double MhightShield = 7.5002*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *tube_M = new G4Tubs("tube_M", - innerRadiusShield, - outerRadiusShield, - MhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *M1_log = - new G4LogicalVolume(tube_M, Galactic, "M1_log"); - - name = "impcell: M1"; - G4double pos_x = 0*cm; - G4double pos_y = 0*cm; - G4double pos_z = -1*MhightShield; - - G4VPhysicalVolume *pM1 = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M1_log, name, imp_worldCylinder_log, false, 0); - - /////////////////// D1 /////////////////////////// - - innerRadiusShield = 0*cm; - outerRadiusShield = 101*cm; - G4double DhightShield = 2*cm; - startAngleShield = 0*deg; - spanningAngleShield = 360*cm; - - G4Tubs *tube_D = new G4Tubs("tube_D", - innerRadiusShield, - outerRadiusShield, - DhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *D1_log = - new G4LogicalVolume(tube_D, Galactic, "D1_log"); - - name ="impcell: D1"; - - G4VPhysicalVolume *pD1 = - new G4PVPlacement(0, G4ThreeVector(0, 0, 0), - D1_log, name, M1_log, false, 0); - - /////////////////////// M2 ////////////////////////////////// - - G4LogicalVolume *M2_log = - new G4LogicalVolume(tube_M, Galactic, "M2_log"); - - name = "impcell: M2"; - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = MhightShield; - G4VPhysicalVolume *pM2 = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M2_log, name, imp_worldCylinder_log, false, 0); - - //////////////////// D2 ///////////////////////////////// - - G4LogicalVolume *D2_log = - new G4LogicalVolume(tube_D, Galactic, "D2_log"); - - name ="impcell: D2"; - - G4VPhysicalVolume *pD2 = - new G4PVPlacement(0, G4ThreeVector(0, 0, 0), - D2_log, name, M2_log, false, 0); - - ///////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////// - - fIStore = new G4IStore(*imp_worldCylinder_phys); - - // for the world volume repnum is -1 ! - fIStore->AddImportanceRegion(1, *imp_worldCylinder_phys, -1); // repnum -1 - fIStore->AddImportanceRegion(2, *pM1); - fIStore->AddImportanceRegion(4, *pD1); - fIStore->AddImportanceRegion(8, *pM2); - fIStore->AddImportanceRegion(16, *pD2); - - return imp_worldCylinder_phys; -} diff --git a/examples/extended/biasing/B07/src/B07PhysicsList.cc b/examples/extended/biasing/B07/src/B07PhysicsList.cc deleted file mode 100644 index 549d71ee67..0000000000 --- a/examples/extended/biasing/B07/src/B07PhysicsList.cc +++ /dev/null @@ -1,366 +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: B07PhysicsList.cc,v 1.2 2002/04/19 10:54:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" -#include "g4std/iomanip" - -#include "B07PhysicsList.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4ShortLivedConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" - -// only processes for neutrons and gammas - -B07PhysicsList::B07PhysicsList() : G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -B07PhysicsList::~B07PhysicsList() -{ -} - -void B07PhysicsList::ConstructParticle() -{ - // 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. - - ConstructAllBosons(); - ConstructAllLeptons(); - ConstructAllMesons(); - ConstructAllBaryons(); - ConstructAllIons(); - ConstructAllShortLiveds(); -} - -void B07PhysicsList::ConstructAllBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B07PhysicsList::ConstructAllLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B07PhysicsList::ConstructAllMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B07PhysicsList::ConstructAllBaryons() -{ - // Construct all barions - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B07PhysicsList::ConstructAllIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B07PhysicsList::ConstructAllShortLiveds() -{ - // Construct resonaces and quarks - G4ShortLivedConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B07PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" - -void B07PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } - } -} - -// Hadron Processes - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" - -#include "G4PionPlusInelasticProcess.hh" -#include "G4PionMinusInelasticProcess.hh" -#include "G4KaonPlusInelasticProcess.hh" -#include "G4KaonZeroSInelasticProcess.hh" -#include "G4KaonZeroLInelasticProcess.hh" -#include "G4KaonMinusInelasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4AntiProtonInelasticProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4AntiNeutronInelasticProcess.hh" -#include "G4LambdaInelasticProcess.hh" -#include "G4AntiLambdaInelasticProcess.hh" -#include "G4SigmaPlusInelasticProcess.hh" -#include "G4SigmaMinusInelasticProcess.hh" -#include "G4AntiSigmaPlusInelasticProcess.hh" -#include "G4AntiSigmaMinusInelasticProcess.hh" -#include "G4XiZeroInelasticProcess.hh" -#include "G4XiMinusInelasticProcess.hh" -#include "G4AntiXiZeroInelasticProcess.hh" -#include "G4AntiXiMinusInelasticProcess.hh" -#include "G4DeuteronInelasticProcess.hh" -#include "G4TritonInelasticProcess.hh" -#include "G4AlphaInelasticProcess.hh" -#include "G4OmegaMinusInelasticProcess.hh" -#include "G4AntiOmegaMinusInelasticProcess.hh" - -// Low-energy Models - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4LEAntiProtonInelastic.hh" -#include "G4LENeutronInelastic.hh" -#include "G4LEAntiNeutronInelastic.hh" -#include "G4LELambdaInelastic.hh" -#include "G4LEAntiLambdaInelastic.hh" -#include "G4LESigmaPlusInelastic.hh" -#include "G4LESigmaMinusInelastic.hh" -#include "G4LEAntiSigmaPlusInelastic.hh" -#include "G4LEAntiSigmaMinusInelastic.hh" -#include "G4LEXiZeroInelastic.hh" -#include "G4LEXiMinusInelastic.hh" -#include "G4LEAntiXiZeroInelastic.hh" -#include "G4LEAntiXiMinusInelastic.hh" -#include "G4LEDeuteronInelastic.hh" -#include "G4LETritonInelastic.hh" -#include "G4LEAlphaInelastic.hh" -#include "G4LEOmegaMinusInelastic.hh" -#include "G4LEAntiOmegaMinusInelastic.hh" - -// -- generator models -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4CompetitiveFission.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4Fancy3DNucleus.hh" -#include "G4LEProtonInelastic.hh" -#include "G4StringModel.hh" -#include "G4PreCompoundModel.hh" -#include "G4FTFModel.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -// -// ConstructHad() -// -// Makes discrete physics processes for the hadrons, at present limited -// to those particles with GHEISHA interactions (INTRC > 0). -// The processes are: Elastic scattering, Inelastic scattering, -// Fission (for neutron only), and Capture (neutron). -// -// F.W.Jones 06-JUL-1998 -// - -void B07PhysicsList::ConstructHad() -{ - // this will be the model class for high energies - G4TheoFSGenerator * theTheoModel = new G4TheoFSGenerator; - - // 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); - - // here come the high energy parts - // the string model; still not quite according to design - Explicite use of the forseen interfaces - // will be tested and documented in this program by beta-02 at latest. - G4VPartonStringModel * theStringModel; - theStringModel = new G4FTFModel; - theTheoModel->SetTransport(theCascade); - theTheoModel->SetHighEnergyGenerator(theStringModel); - theTheoModel->SetMinEnergy(19*GeV); - theTheoModel->SetMaxEnergy(100*TeV); - - G4VLongitudinalStringDecay * theFragmentation = new G4QGSMFragmentation; - G4ExcitedStringDecay * theStringDecay = new G4ExcitedStringDecay(theFragmentation); - theStringModel->SetFragmentationModel(theStringDecay); - -// done with the generator model (most of the above is also available as default) - G4HadronElasticProcess* theElasticProcess = - new G4HadronElasticProcess; - G4LElastic* theElasticModel = new G4LElastic; - theElasticProcess->RegisterMe(theElasticModel); - G4HadronElasticProcess* theElasticProcess1 = - new G4HadronElasticProcess; - theParticleIterator->reset(); - while ((*theParticleIterator)()) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "neutron") { - - // elastic scattering - G4LElastic* theElasticModel1 = new G4LElastic; - theElasticProcess1->RegisterMe(theElasticModel1); - pmanager->AddDiscreteProcess(theElasticProcess1); - // inelastic scattering - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - // fission - G4HadronFissionProcess* theFissionProcess = - new G4HadronFissionProcess; - G4LFission* theFissionModel = new G4LFission; - theFissionProcess->RegisterMe(theFissionModel); - pmanager->AddDiscreteProcess(theFissionProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureProcess->RegisterMe(theCaptureModel); - pmanager->AddDiscreteProcess(theCaptureProcess); - } - } -} - -void B07PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void B07PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - if (particleName == "neutron" || - particleName == "gamma") { - if (theDecayProcess->IsApplicable(*particle)) { - pmanager ->AddProcess(theDecayProcess); - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } - } -} - -void B07PhysicsList::SetCuts() -{ - if (verboseLevel >0) - { - G4cout << "B07PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - // "G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} diff --git a/examples/extended/biasing/B08/B08ScoreResults.txt b/examples/extended/biasing/B08/B08ScoreResults.txt deleted file mode 100644 index 9ed699e70e..0000000000 --- a/examples/extended/biasing/B08/B08ScoreResults.txt +++ /dev/null @@ -1,44 +0,0 @@ -Results from running of: 10 events -results for neutron: -Volume name | Histo. Ent.| sum hi.ent*w| Collisions| sum col*w| AV E/ent.Tr| AV E/col| W*SL| W*SL*E| importance | av w/tr rel.| av w/co rel.| -imp_world_phys........... | 4 | 4 | 0 | 0 | 12.3622 | 0 | 0.05 | 15 | 1 | 1 | -1 | -cell_02.................. | 16 | 16 | 40 | 40 | 190.708 | 17.0003 | 2451.31 | 281918 | 1 | 1 | 1 | -cell_03.................. | 18 | 18 | 67 | 67 | 150.002 | 13.8714 | 3677.08 | 269263 | 1 | 1 | 1 | -cell_04.................. | 20 | 20 | 87 | 87 | 119.229 | 17.2854 | 4439.62 | 262688 | 1 | 1 | 1 | -cell_05.................. | 20 | 20 | 44 | 44 | 111.299 | 13.1956 | 2941.87 | 217783 | 1 | 1 | 1 | -cell_06.................. | 17 | 17 | 47 | 47 | 113.032 | 8.87043 | 1874.43 | 177667 | 1 | 1 | 1 | -cell_07.................. | 13 | 13 | 23 | 23 | 118.009 | 15.0347 | 1048.74 | 153647 | 1 | 1 | 1 | -cell_08.................. | 9 | 9 | 28 | 28 | 169.331 | 1.92869 | 1432.29 | 154720 | 1 | 1 | 1 | -cell_09.................. | 8 | 8 | 6 | 6 | 190.295 | 10.7831 | 732.444 | 153260 | 1 | 1 | 1 | -cell_10.................. | 12 | 12 | 26 | 26 | 128.427 | 5.15175 | 1228.19 | 82952.4 | 1 | 1 | 1 | -cell_11.................. | 11 | 5.5 | 46 | 23 | 138.628 | 14.1481 | 1323.87 | 81482.6 | 2 | 1 | 1 | -cell_12.................. | 27 | 7 | 127 | 33 | 92.8543 | 14.6989 | 1529.88 | 77022.9 | 4 | 1.03704 | 1.03937 | -cell_13.................. | 51 | 6.625 | 267 | 35.125 | 84.4156 | 17.4368 | 1492.75 | 68934.3 | 8 | 1.03922 | 1.05243 | -cell_14.................. | 85 | 5.375 | 516 | 32.5625 | 84.9887 | 15.4597 | 1326.34 | 59237 | 16 | 1.01176 | 1.00969 | -cell_15.................. | 128 | 4.03125 | 812 | 25.625 | 91.6857 | 14.4331 | 1013.31 | 49252.2 | 32 | 1.00781 | 1.00985 | -cell_16.................. | 253 | 3.95312 | 1156 | 18.0625 | 73.6931 | 15.2101 | 843.916 | 37723.9 | 64 | 1 | 1 | -cell_17.................. | 379 | 2.96875 | 1722 | 13.4766 | 82.0268 | 13.8631 | 628.943 | 29957.3 | 128 | 1.00264 | 1.00174 | -cell_18.................. | 570 | 2.24219 | 2919 | 11.5391 | 93.7382 | 16.8961 | 537.232 | 26930.3 | 256 | 1.00702 | 1.01199 | -cell_19.................. | 785 | 1.53711 | 4029 | 7.88867 | 110.746 | 19.8474 | 292.73 | 9339.78 | 512 | 1.00255 | 1.00248 | - -results for gamma: -Volume name | Histo. Ent.| sum hi.ent*w| Collisions| sum col*w| AV E/ent.Tr| AV E/col| W*SL| W*SL*E| -imp_world_phys........... | 106 | 1.58594 | 0 | 0 | 4.65191 | 0 | 0 | 0 | -cell_02.................. | 1 | 1 | 0 | 0 | 3.06123 | 0 | 111.575 | 341.558 | -cell_03.................. | 3 | 3 | 6 | 6 | 1.9191 | 0.748427 | 514.375 | 5731.57 | -cell_04.................. | 9 | 9 | 75 | 75 | 7.80747 | 1.27068 | 2434.24 | 9124.82 | -cell_05.................. | 16 | 16 | 76 | 76 | 0.992956 | 0.30196 | 2421.8 | 2185.15 | -cell_06.................. | 4 | 4 | 6 | 6 | 1.28345 | 0.965956 | 362.432 | 486.864 | -cell_07.................. | 2 | 2 | 3 | 3 | 1.89343 | 1.30189 | 208.284 | 375.124 | -cell_08.................. | 4 | 1.03125 | 20 | 9.09375 | 1.45554 | 0.444268 | 289.426 | 175.301 | -cell_09.................. | 10 | 0.382812 | 37 | 1.39844 | 0.609176 | 0.264666 | 32.7521 | 17.5702 | -cell_10.................. | 16 | 1.14844 | 59 | 2.81641 | 0.853161 | 0.524829 | 93.2248 | 84.8939 | -cell_11.................. | 29 | 1.78516 | 114 | 3.63672 | 1.44827 | 0.706989 | 157.761 | 312.212 | -cell_12.................. | 44 | 2.01758 | 285 | 26.9062 | 1.35327 | 1.20924 | 747.747 | 1514.72 | -cell_13.................. | 81 | 3.83594 | 333 | 20.6738 | 3.01119 | 1.09956 | 754.293 | 2025.2 | -cell_14.................. | 105 | 3.3418 | 535 | 16.7441 | 2.54605 | 0.83723 | 627.046 | 4526.08 | -cell_15.................. | 156 | 3.5918 | 903 | 25.7695 | 9.68063 | 1.89446 | 957.292 | 7102.38 | -cell_16.................. | 187 | 4.0957 | 1214 | 29.6875 | 5.23164 | 1.03656 | 954.087 | 3258.49 | -cell_17.................. | 186 | 3.06641 | 977 | 15.1934 | 4.26103 | 1.01616 | 533.467 | 1734.87 | -cell_18.................. | 189 | 2.12109 | 1287 | 9.67383 | 2.11956 | 0.685012 | 387.615 | 1331.31 | -cell_19.................. | 118 | 1.04883 | 1039 | 6.02148 | 5.22935 | 0.998982 | 222.012 | 913.654 | diff --git a/examples/extended/biasing/B08/GNUmakefile b/examples/extended/biasing/B08/GNUmakefile deleted file mode 100644 index 8b60dd8f2b..0000000000 --- a/examples/extended/biasing/B08/GNUmakefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id: GNUmakefile,v 1.1 2002/06/04 11:14:51 dressel Exp $ -# -------------------------------------------------------------- -# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. -# -------------------------------------------------------------- - -name := exampleB08 -G4TARGET := $(name) -G4EXLIB := true - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -.PHONY: all -all: lib bin -CPPFLAGS += - -include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/biasing/B08/exampleB08.cc b/examples/extended/biasing/B08/exampleB08.cc deleted file mode 100644 index 043ae2eb67..0000000000 --- a/examples/extended/biasing/B08/exampleB08.cc +++ /dev/null @@ -1,178 +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: exampleB08.cc,v 1.1 2002/06/04 11:14:51 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// -------------------------------------------------------------- -// GEANT 4 - exampleB08 -// -// -------------------------------------------------------------- -// Comments -// This example demonstrates how to use the importance sampling -// and weight window samling together with scoring in a parallel -// geometry. -// The example for weight window sampling is somewhat artificial -// since no other weight changing -// process than the importance sampling is used. -// Therefore high particle energys are choosen (for which importance -// sampling would not be neccessary). That way -// secondaries with enough energy to create neutrons are -// produced. Since the secondaries are not importance sampled -// they may create neutrons with a weight not coresponding to -// the importance of a cell. In this case the weight window -// algorithm can be demonstrated: If the upper and lower limit -// is set to 1 it corrects the weight to exactly the inverse -// of the importance. -// The init.mac file is used to set the upper and lower limit and the -// importances (See init.mac). -// -// -------------------------------------------------------------- - -#include "g4std/iostream" - -#include "G4VPhysicalVolume.hh" -#include "G4RunManager.hh" -#include "G4UImanager.hh" - -#include "B08DetectorConstruction.hh" -#include "B08PhysicsList.hh" -#include "B08ImportanceDetectorConstruction.hh" -#include "B08PrimaryGeneratorAction.hh" - -#include "G4VIStore.hh" -#include "G4Sigma.hh" -#include "G4WeightWindowAlgorithm.hh" -#include "G4PImportanceWWindowScoreSampler.hh" - -#include "G4ParallelScoreSampler.hh" - -#include "B08Scorer.hh" -#include "B08ScorePrinter.hh" - -#include "B08MainMessenger.hh" - -int main(int argc, char **argv) -{ - - - G4long myseed = 345354; - - HepRandom::setTheSeed(myseed); - - G4RunManager *runManager = new G4RunManager; - - // create the "tracking" detector ----------------- - runManager->SetUserInitialization(new B08DetectorConstruction); - // --------------------------------------------------- - runManager->SetUserInitialization(new B08PhysicsList); - runManager->SetUserAction(new B08PrimaryGeneratorAction); - runManager->Initialize(); - - //////////////////////////////////////////////////////////////// - // create a messanger reading an initialication script to specify: - // - the umber of events to be processed - // - name of the outptfile - // - upper limit and - // - lower limit for the weight window sampling - G4int numberOfEvent = 10; - - B08MainMessenger mess; - - // create the detector for the importances and scoring - // this object also creates a messanger for the importance values - B08ImportanceDetectorConstruction importancedetector; - - // read the init.mac file - G4UImanager *UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/control/execute init.mac"); - - numberOfEvent = mess.GetNumberOfEvents(); - - G4String resultsfilename = mess.GetResultsFileName(); - G4std::ofstream of(resultsfilename); - - ////////////////////////////////////////////////////////////////////// - - - - ///////////////////////////////////////////////////////////////// - // setting up importance asmpling and scoring for neutrons and gammas - - // the IStore is filled during detector construction - G4VIStore &aIstore = *importancedetector.GetIStore(); - - // create scorers for neutrons and gammas - B08Scorer nScorer; - B08Scorer gScorer; - - // create the weight window algorithm - G4WeightWindowAlgorithm wwalg; - wwalg.SetUpperLimit(mess.GetUpperLimit()); - wwalg.SetLowerLimit(mess.GetLowerLimit()); - - // create the sampler for importance nad weight window sampling - // of neutron - G4PImportanceWWindowScoreSampler nwwsampler(aIstore, - nScorer, - "neutron", - wwalg); - nwwsampler.Initialize(); - - // create the sampler for scoring gammas - G4ParallelScoreSampler gsamp(*importancedetector.GetWorldVolume(), - "gamma", - gScorer); - - gsamp.Initialize(); - - ///////////////////////////////////////////////////////////////// - // running - - runManager->BeamOn(numberOfEvent); - - ///////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////// - // create ouput - - of << "Results from running of: " << numberOfEvent << " events" << G4endl; - of << "results for neutron:" << G4endl; - B08ScorePrinter nsp(&aIstore); - nsp.PrintHeader(&of); - nsp.PrintTable(nScorer.GetMapPtkTallys(), &of); - of << G4endl; - - of << "results for gamma:" << G4endl; - B08ScorePrinter sp; - sp.PrintHeader(&of); - sp.PrintTable(gScorer.GetMapPtkTallys(), &of); - - - return 0; -} - - - - diff --git a/examples/extended/biasing/B08/exampleB08.out b/examples/extended/biasing/B08/exampleB08.out deleted file mode 100644 index 796d3cf3db..0000000000 --- a/examples/extended/biasing/B08/exampleB08.out +++ /dev/null @@ -1,391 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) - Copyright : Geant4 Collaboration -********************************************** - -phot: Total cross sections from Sandia parametrisation. -B08PhysicsList::SetCuts:CutLength : 1 (mm) - -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: 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: PScoreProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelImportanceProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelWeightWindowProcess -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - ParallelWeightWindowProcess - Transportation -DoIt Vector: - Transportation - ParallelWeightWindowProcess - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -================================================ -+++ G4ProcessPlacer::G4ProcessPlacer: for: gamma -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: PScoreProcess -The initial Vectors: -GPIL Vector: - phot - compt - conv - Transportation -DoIt Vector: - Transportation - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - conv - compt - phot -================================================ -=== G4ProcessPlacer::AddProcessAsSecondDoIt === - ProcessName: ParallelTransport -The initial Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - Transportation -DoIt Vector: - Transportation - PScoreProcess - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - ParallelTransport - Transportation -DoIt Vector: - Transportation - ParallelTransport - PScoreProcess - conv - compt - phot -================================================ -WARNING - G4ImportanceAlgorithm::Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = 512 - - -+++ G4ProcessPlacer::G4ProcessPlacer: for: gamma - ProcessName: PScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - phot - compt - conv - PScoreProcess - ParallelTransport - Transportation -DoIt Vector: - Transportation - ParallelTransport - PScoreProcess - conv - compt - phot -The final Vectors: -GPIL Vector: - phot - compt - conv - ParallelTransport - Transportation -DoIt Vector: - Transportation - ParallelTransport - conv - compt - phot -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: PScoreProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - PScoreProcess - ParallelImportanceProcess - ParallelWeightWindowProcess - Transportation -DoIt Vector: - Transportation - ParallelWeightWindowProcess - ParallelImportanceProcess - PScoreProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - ParallelWeightWindowProcess - Transportation -DoIt Vector: - Transportation - ParallelWeightWindowProcess - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: ParallelWeightWindowProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - ParallelWeightWindowProcess - Transportation -DoIt Vector: - Transportation - ParallelWeightWindowProcess - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -+++ G4ProcessPlacer::G4ProcessPlacer: for: neutron - ProcessName: ParallelImportanceProcess, will be removed! -The initial Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - ParallelImportanceProcess - Transportation -DoIt Vector: - Transportation - ParallelImportanceProcess - LElastic - inelastic - LFission - LCapture - Decay -The final Vectors: -GPIL Vector: - Decay - LCapture - LFission - inelastic - LElastic - Transportation -DoIt Vector: - Transportation - LElastic - inelastic - LFission - LCapture - Decay - -WARNING - G4ImportanceAlgorithm::~G4ImportanceAlgorithm: ipre_over_ipost ! in [0.25, 4] seen - diff --git a/examples/extended/biasing/B08/include/B08Scorer.hh b/examples/extended/biasing/B08/include/B08Scorer.hh deleted file mode 100644 index f7b0dd3334..0000000000 --- a/examples/extended/biasing/B08/include/B08Scorer.hh +++ /dev/null @@ -1,53 +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: B08Scorer.hh,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#ifndef G4Pscorer_hh -#define G4Pscorer_hh G4Pscorer_hh - -#include "g4std/iostream" - -#include "G4VPScorer.hh" -#include "G4PMapPtkTallys.hh" - -class G4Step; -class G4PStep; -class G4VIStore; - -class B08Scorer : public G4VPScorer -{ -public: - B08Scorer(); - ~B08Scorer(); - void Score(const G4Step &aStep, const G4PStep &aPStep); - const G4PMapPtkTallys &GetMapPtkTallys() const { return fPtkTallys; } -private: - G4PMapPtkTallys fPtkTallys; -}; - -G4std::ostream& operator<<(G4std::ostream &out, const B08Scorer &ps); - -#endif diff --git a/examples/extended/biasing/B08/init.mac b/examples/extended/biasing/B08/init.mac deleted file mode 100644 index 16fbce7cf2..0000000000 --- a/examples/extended/biasing/B08/init.mac +++ /dev/null @@ -1,69 +0,0 @@ -# number of events and ouput file -/B08/nevents 10 -/B08/resultsfile B08ScoreResults.txt -# set the upper and lower limit for the weight window sampling -# if both are set to 1 the scores "av w/tr rel." and -# "av w/co rel" should be 1. -/B08/upperlimit 5 -/B08/lowerlimit 0.2 -# paricle energy, only for higher energies a particle may create -# neutrons with weight not according to the importance values. -/gun/energy 300.0 MeV -# -# setting of the importance values = pow(base,exp) -# -/B08/importance/cell_02/base 1 -/B08/importance/cell_02/exp 0 -# -/B08/importance/cell_03/base 1 -/B08/importance/cell_03/exp 1 -# -/B08/importance/cell_04/base 1 -/B08/importance/cell_04/exp 2 -# -/B08/importance/cell_05/base 1 -/B08/importance/cell_05/exp 3 -# -/B08/importance/cell_06/base 1 -/B08/importance/cell_06/exp 4 -# -/B08/importance/cell_07/base 1 -/B08/importance/cell_07/exp 5 -# -/B08/importance/cell_08/base 1 -/B08/importance/cell_08/exp 6 -# -/B08/importance/cell_09/base 1 -/B08/importance/cell_09/exp 7 -# -/B08/importance/cell_10/base 1 -/B08/importance/cell_10/exp 8 -# -/B08/importance/cell_11/base 2 -/B08/importance/cell_11/exp 1 -# -/B08/importance/cell_12/base 2 -/B08/importance/cell_12/exp 2 -# -/B08/importance/cell_13/base 2 -/B08/importance/cell_13/exp 3 -# -/B08/importance/cell_14/base 2 -/B08/importance/cell_14/exp 4 -# -/B08/importance/cell_15/base 2 -/B08/importance/cell_15/exp 5 -# -/B08/importance/cell_16/base 2 -/B08/importance/cell_16/exp 6 -# -/B08/importance/cell_17/base 2 -/B08/importance/cell_17/exp 7 -# -/B08/importance/cell_18/base 2 -/B08/importance/cell_18/exp 8 -# -/B08/importance/cell_19/base 2 -/B08/importance/cell_19/exp 9 -# - diff --git a/examples/extended/biasing/B08/src/B08DetectorConstruction.cc b/examples/extended/biasing/B08/src/B08DetectorConstruction.cc deleted file mode 100644 index 503a8553ce..0000000000 --- a/examples/extended/biasing/B08/src/B08DetectorConstruction.cc +++ /dev/null @@ -1,171 +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: B08DetectorConstruction.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "g4std/strstream" -#include "globals.hh" - -#include "B08DetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "PhysicalConstants.h" - -B08DetectorConstruction::B08DetectorConstruction() -{;} - -B08DetectorConstruction::~B08DetectorConstruction() -{;} - -G4VPhysicalVolume* B08DetectorConstruction::Construct() -{ - G4double pos_x; - G4double pos_y; - G4double pos_z; - - G4double density, pressure, temperature; - G4double A; - - G4String name, symbol; - G4double z; - - G4Element *pElementH = new G4Element("Hydro","H",1.,1.0079*g/mole); - G4Element *pElementO = new G4Element("Oxy","O",8.,15.999*g/mole); - G4Element *pElementFe = new G4Element("Ferrum","Fe",26.,55.845*g/mole); - G4Element *pElementNa = new G4Element("Natri","Na",11.,22.98977*g/mole); - G4Element *pElementMg = new G4Element("Magn","Mg",12.,24.305*g/mole); - G4Element *pElementAl = new G4Element("Alu","Al",13.,26.981538*g/mole); - G4Element *pElementSi = new G4Element("Sili","Si",14.,28.0854*g/mole); - G4Element *pElementK = new G4Element("Pota","K",19.,39.0983*g/mole); - G4Element *pElementCa = new G4Element("Calc","Ca",20.,40.078*g/mole); - - - G4Material *pMaterialConcrete = new G4Material("Concrete",2.31*g/cm3,9); - pMaterialConcrete->AddElement(pElementH,/*0.18957226*/0.010853422); - pMaterialConcrete->AddElement(pElementO, /*0.52999241*/0.48165594); - pMaterialConcrete->AddElement(pElementNa,/*0.01556568*/0.020327181); - pMaterialConcrete->AddElement(pElementMg,/*0.0078461149*/0.010832401); - pMaterialConcrete->AddElement(pElementAl,/*0.039483675*/0.060514396); - pMaterialConcrete->AddElement(pElementSi,/*0.14047077*/0.22409956); - pMaterialConcrete->AddElement(pElementK, /*0.0048089091*/0.010680188); - pMaterialConcrete->AddElement(pElementCa,/*0.054416603*/0.12388306); - pMaterialConcrete->AddElement(pElementFe,/*0.017843584*/0.056603178); - - - G4Material* Concrete = pMaterialConcrete; - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - - G4Material *WorldMaterial = Galactic; // tracks entering this are - // killed immediately - - ///////////////////////////// - // world cylinder volume - //////////////////////////// - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 100*cm; - G4double hightCylinder = 100*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *worldCylinder = new G4Tubs("worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical world - - G4LogicalVolume *worldCylinder_log = - new G4LogicalVolume(worldCylinder, WorldMaterial, "worldCylinder_log"); - - G4VisAttributes * WorldVisAtt - = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WorldVisAtt->SetVisibility(true); - worldCylinder_log->SetVisAttributes(WorldVisAtt); - - // physical world - - name = "worldCylinder_phys"; - G4VPhysicalVolume* worldCylinder_phys = - new G4PVPlacement(0, G4ThreeVector(0,0,0), worldCylinder_log, - name, 0, false, 0); - - /////////////////////////////////////////////// - // the concreate block - //////////////////////////////////////////////// - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 100*cm; - G4double hightShield = 90*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *aShield = new G4Tubs("aShield", - innerRadiusShield, - outerRadiusShield, - hightShield, - startAngleShield, - spanningAngleShield); - - // logical shield - - G4LogicalVolume *aShield_log = - new G4LogicalVolume(aShield, Concrete, "aShield_log"); - - G4VisAttributes * shieldVisAtt - = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); - shieldVisAtt->SetVisibility(true); - shieldVisAtt->SetForceSolid(false); - aShield_log->SetVisAttributes(shieldVisAtt); - - // physical shields - - name = "ConcreateBlock"; - pos_x = 0*cm; - pos_y = 0*cm; - pos_z = 0*cm; - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, name, worldCylinder_log, false, 0); - - - return worldCylinder_phys; -} diff --git a/examples/extended/biasing/B08/src/B08ImportanceDetectorConstruction.cc b/examples/extended/biasing/B08/src/B08ImportanceDetectorConstruction.cc deleted file mode 100644 index bfe62698d7..0000000000 --- a/examples/extended/biasing/B08/src/B08ImportanceDetectorConstruction.cc +++ /dev/null @@ -1,168 +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: B08ImportanceDetectorConstruction.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" - -#include "B08ImportanceDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "PhysicalConstants.h" -#include "G4IStore.hh" -#include "G4Pstring.hh" - -#include "B08ImportanceMessenger.hh" - -B08ImportanceDetectorConstruction::B08ImportanceDetectorConstruction() - : fnIStore(0), - fWorldVolume(0) -{ - Construct(); -} - -B08ImportanceDetectorConstruction::~B08ImportanceDetectorConstruction() -{;} - -G4VIStore* B08ImportanceDetectorConstruction::GetIStore() -{ - if (!fnIStore) G4Exception("B08DetectorConstruction::fnIStore empty!"); - return fnIStore; -} -G4VPhysicalVolume *B08ImportanceDetectorConstruction::GetWorldVolume(){ - if (!fWorldVolume) - G4Exception("B08DetectorConstruction::fWorldVolume empty!"); - return fWorldVolume; -} - -void B08ImportanceDetectorConstruction::Construct() -{ - /////////////////////////////////////// - // world inportance cylinder volume - ////////////////////////////////////// - - G4String name; - - G4double density = universe_mean_density; //from PhysicalConstants.h - G4double pressure = 3.e-18*pascal; - G4double temperature = 2.73*kelvin; - G4double z,A; - G4Material *Galactic = - new G4Material(name="Galactic", z=1., A=1.01*g/mole, density, - kStateGas,temperature,pressure); - G4Material *WorldMaterial = Galactic; - - // world solid - - G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 110*cm; - G4double hightCylinder = 110*cm; - G4double startAngleCylinder = 0*deg; - G4double spanningAngleCylinder = 360*cm; - - G4Tubs *imp_worldCylinder = new G4Tubs("imp_worldCylinder", - innerRadiusCylinder, - outerRadiusCylinder, - hightCylinder, - startAngleCylinder, - spanningAngleCylinder); - - // logical imp world - - G4LogicalVolume *imp_worldCylinder_log = - new G4LogicalVolume(imp_worldCylinder, WorldMaterial, - "imp_worldCylinder_log"); - - // physical world - - name = "imp_world_phys"; - fWorldVolume = - new G4PVPlacement(0, G4ThreeVector(0,0,0), imp_worldCylinder_log, - name, 0, false, 0); - - - // create importance store - fnIStore = new G4IStore(*fWorldVolume); - // for the world volume repnum is -1 ! - fnIStore->AddImportanceRegion(1, *fWorldVolume, -1); - // repnum -1 - - /////////////////////////////////////////////// - // - //////////////////////////////////////////////// - - - G4double innerRadiusShield = 0*cm; - G4double outerRadiusShield = 110*cm; - G4double MhightShield = 5*cm; - G4double startAngleShield = 0*deg; - G4double spanningAngleShield = 360*cm; - - G4Tubs *tube_M = new G4Tubs("tube", - innerRadiusShield, - outerRadiusShield, - MhightShield, - startAngleShield, - spanningAngleShield); - - G4LogicalVolume *M1_log = - new G4LogicalVolume(tube_M, Galactic, "tune_log"); - - B08ImportanceMessenger *imess = new B08ImportanceMessenger(*fnIStore); - - for (G4int cellnum = 2; cellnum < 20; cellnum++) { - - name = "cell_"; - if (cellnum<10) name += "0"; - name+=str(cellnum); - - G4double pos_x = 0*cm; - G4double pos_y = 0*cm; - G4double pos_z = -90*cm+MhightShield+ - 2*(cellnum-2)*MhightShield; - - G4VPhysicalVolume *p = - new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), - M1_log, name, imp_worldCylinder_log, false, 0); - // set importances - imess->AddCell(name, p); - if (cellnum < 8 ) { - imess->SetImportanceBase(name, 2); - imess->SetImportanceExponent(name, (cellnum-2)); - } - else if (cellnum < 13) { - imess->SetImportanceBase(name, 2.15); - imess->SetImportanceExponent(name, (cellnum-2)); - } - else { - imess->SetImportanceBase(name, 2.3); - imess->SetImportanceExponent(name, (cellnum-2)); - } - } -} diff --git a/examples/extended/biasing/B08/src/B08ImportanceMessenger.cc b/examples/extended/biasing/B08/src/B08ImportanceMessenger.cc deleted file mode 100644 index 416c24fc4d..0000000000 --- a/examples/extended/biasing/B08/src/B08ImportanceMessenger.cc +++ /dev/null @@ -1,118 +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: B08ImportanceMessenger.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "B08ImportanceMessenger.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcommand.hh" -#include "B08Scorer.hh" -#include "B08ScorePrinter.hh" -#include "G4VIStore.hh" - -#include "G4Pstring.hh" - -B08ImportanceMessenger:: -B08ImportanceMessenger(G4VIStore &aIStore) : - fIStore(aIStore) -{} - -void B08ImportanceMessenger::AddCell(const G4String &cellname, - G4VPhysicalVolume *p){ - - fCellVolMap[cellname] = p; - - G4String command = "/B08/importance/" + cellname + "/base"; - G4UIcmdWithADouble *base_cmd = - new G4UIcmdWithADouble(command, this); - - - fBaseMap[base_cmd] = p; - - command = "/B08/importance/" + cellname + "/exp"; - G4UIcmdWithADouble *expo_cmd = - new G4UIcmdWithADouble(command, this); - - fExpMap[expo_cmd] = p; - - // create an element in the =base exponent map - fBaseExpMap[p]; - - fIStore.AddImportanceRegion(fBaseExpMap[p].GetImportance(), *p); - -} - - -void B08ImportanceMessenger:: -SetImportanceBase(const G4String &cellname, G4double base){ - G4VPhysicalVolume *p = fCellVolMap[cellname]; - B08BaseExp &be = fBaseExpMap[p]; - be.SetBase(base); - fIStore.ChangeImportance(be.GetImportance(), *p); -} -void B08ImportanceMessenger:: -SetImportanceExponent(const G4String &cellname, G4double exp){ - G4VPhysicalVolume *p = fCellVolMap[cellname]; - B08BaseExp &be = fBaseExpMap[p]; - be.SetExponent(exp); - fIStore.ChangeImportance(be.GetImportance(), *p); -} - - -void B08ImportanceMessenger::SetNewValue(G4UIcommand* pCmd,G4String szValue){ - - for (B08BaseMap::iterator itbase = fBaseMap.begin(); - itbase != fBaseMap.end(); itbase++){ - if (pCmd == itbase->first){ - B08BaseExpMap::iterator curent = fBaseExpMap.find(itbase->second); - if (curent==fBaseExpMap.end()) { - G4Exception("B08ImportanceMessenger: volume not found in BaseExpMap"); - } - curent->second.SetBase(itbase->first->GetNewDoubleValue(szValue)); - fIStore.ChangeImportance(curent->second.GetImportance(), - *(itbase->second)); - return; - } - } - - for (B08ExpMap::iterator itexp = fExpMap.begin(); - itexp != fExpMap.end(); itexp++){ - if (pCmd == itexp->first){ - B08BaseExpMap::iterator curent = fBaseExpMap.find(itexp->second); - if (curent==fBaseExpMap.end()) { - G4Exception("B08ImportanceMessenger: volume not found in BaseExpMap"); - } - curent->second.SetExponent(itexp->first->GetNewDoubleValue(szValue)); - fIStore.ChangeImportance(curent->second.GetImportance(), - *(itexp->second)); - return; - } - } - -} - - diff --git a/examples/extended/biasing/B08/src/B08MainMessenger.cc b/examples/extended/biasing/B08/src/B08MainMessenger.cc deleted file mode 100644 index 03b849c929..0000000000 --- a/examples/extended/biasing/B08/src/B08MainMessenger.cc +++ /dev/null @@ -1,83 +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: B08MainMessenger.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "B08MainMessenger.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcommand.hh" -#include "B08Scorer.hh" -#include "B08ScorePrinter.hh" -#include "G4VIStore.hh" - -B08MainMessenger:: -B08MainMessenger() : - fResultsFileName("test.txt"), - fNumberOfEvents(10), - fUpper(1.), - fLower(1.) -{ - - fCmdFn = new G4UIcmdWithAString("/B08/resultsfile", this); - fCmdFn->SetGuidance("set file name for output file"); - fCmdFn->SetParameterName("Messege",true); - fCmdFn->SetDefaultValue("test.txt"); - - fCmdEv = new G4UIcmdWithAnInteger("/B08/nevents", this); - fCmdEv->SetGuidance("set number of events"); - fCmdEv->SetParameterName("Messege",true); - fCmdEv->SetDefaultValue(10); - - fCmdUpper = new G4UIcmdWithADouble("/B08/upperlimit", this); - fCmdUpper->SetGuidance("sets the upper limit for the weight window algorithm"); - fCmdUpper->SetParameterName("Messege",true); - fCmdUpper->SetDefaultValue(1.); - - fCmdLower = new G4UIcmdWithADouble("/B08/lowerlimit", this); - fCmdLower->SetGuidance("sets the lower limit for the weight window algorithm"); - fCmdLower->SetParameterName("Messege",true); - fCmdLower->SetDefaultValue(1.); - -} - -void B08MainMessenger::SetNewValue(G4UIcommand* pCmd,G4String szValue){ - if(pCmd==fCmdFn){ - fResultsFileName = szValue; - } - if(pCmd==fCmdEv){ - fNumberOfEvents = atoi(szValue); - } - if(pCmd==fCmdUpper){ - fUpper = fCmdUpper->GetNewDoubleValue(szValue); - } - if(pCmd==fCmdLower){ - fLower = fCmdLower->GetNewDoubleValue(szValue); - } - -} - - diff --git a/examples/extended/biasing/B08/src/B08PhysicsList.cc b/examples/extended/biasing/B08/src/B08PhysicsList.cc deleted file mode 100644 index a58e3bac4d..0000000000 --- a/examples/extended/biasing/B08/src/B08PhysicsList.cc +++ /dev/null @@ -1,633 +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: B08PhysicsList.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" -#include "g4std/iomanip" - -#include "B08PhysicsList.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4ShortLivedConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" - -B08PhysicsList::B08PhysicsList() : G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -B08PhysicsList::~B08PhysicsList() -{ -} - -void B08PhysicsList::ConstructParticle() -{ - // 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. - - ConstructAllBosons(); - ConstructAllLeptons(); - ConstructAllMesons(); - ConstructAllBaryons(); - ConstructAllIons(); - ConstructAllShortLiveds(); -} - -void B08PhysicsList::ConstructAllBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B08PhysicsList::ConstructAllLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B08PhysicsList::ConstructAllMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B08PhysicsList::ConstructAllBaryons() -{ - // Construct all barions - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B08PhysicsList::ConstructAllIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B08PhysicsList::ConstructAllShortLiveds() -{ - // Construct resonaces and quarks - G4ShortLivedConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void B08PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" - -void B08PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - pmanager->AddProcess(new G4MultipleScattering(),-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 == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } else { - if ((particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")&& - (!particle->IsShortLived()) ) { - // all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); - } - } - } -} - -// Hadron Processes - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" - -#include "G4PionPlusInelasticProcess.hh" -#include "G4PionMinusInelasticProcess.hh" -#include "G4KaonPlusInelasticProcess.hh" -#include "G4KaonZeroSInelasticProcess.hh" -#include "G4KaonZeroLInelasticProcess.hh" -#include "G4KaonMinusInelasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4AntiProtonInelasticProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4AntiNeutronInelasticProcess.hh" -#include "G4LambdaInelasticProcess.hh" -#include "G4AntiLambdaInelasticProcess.hh" -#include "G4SigmaPlusInelasticProcess.hh" -#include "G4SigmaMinusInelasticProcess.hh" -#include "G4AntiSigmaPlusInelasticProcess.hh" -#include "G4AntiSigmaMinusInelasticProcess.hh" -#include "G4XiZeroInelasticProcess.hh" -#include "G4XiMinusInelasticProcess.hh" -#include "G4AntiXiZeroInelasticProcess.hh" -#include "G4AntiXiMinusInelasticProcess.hh" -#include "G4DeuteronInelasticProcess.hh" -#include "G4TritonInelasticProcess.hh" -#include "G4AlphaInelasticProcess.hh" -#include "G4OmegaMinusInelasticProcess.hh" -#include "G4AntiOmegaMinusInelasticProcess.hh" - -// Low-energy Models - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4LEAntiProtonInelastic.hh" -#include "G4LENeutronInelastic.hh" -#include "G4LEAntiNeutronInelastic.hh" -#include "G4LELambdaInelastic.hh" -#include "G4LEAntiLambdaInelastic.hh" -#include "G4LESigmaPlusInelastic.hh" -#include "G4LESigmaMinusInelastic.hh" -#include "G4LEAntiSigmaPlusInelastic.hh" -#include "G4LEAntiSigmaMinusInelastic.hh" -#include "G4LEXiZeroInelastic.hh" -#include "G4LEXiMinusInelastic.hh" -#include "G4LEAntiXiZeroInelastic.hh" -#include "G4LEAntiXiMinusInelastic.hh" -#include "G4LEDeuteronInelastic.hh" -#include "G4LETritonInelastic.hh" -#include "G4LEAlphaInelastic.hh" -#include "G4LEOmegaMinusInelastic.hh" -#include "G4LEAntiOmegaMinusInelastic.hh" - -// -- generator models -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4Evaporation.hh" -#include "G4CompetitiveFission.hh" -#include "G4FermiBreakUp.hh" -#include "G4StatMF.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4Fancy3DNucleus.hh" -#include "G4LEProtonInelastic.hh" -#include "G4StringModel.hh" -#include "G4PreCompoundModel.hh" -#include "G4FTFModel.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -// -// ConstructHad() -// -// Makes discrete physics processes for the hadrons, at present limited -// to those particles with GHEISHA interactions (INTRC > 0). -// The processes are: Elastic scattering, Inelastic scattering, -// Fission (for neutron only), and Capture (neutron). -// -// F.W.Jones 06-JUL-1998 -// - -void B08PhysicsList::ConstructHad() -{ - // this will be the model class for high energies - G4TheoFSGenerator * theTheoModel = new G4TheoFSGenerator; - - // 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); - - // here come the high energy parts - // the string model; still not quite according to design - Explicite use of the forseen interfaces - // will be tested and documented in this program by beta-02 at latest. - G4VPartonStringModel * theStringModel; - theStringModel = new G4FTFModel; - theTheoModel->SetTransport(theCascade); - theTheoModel->SetHighEnergyGenerator(theStringModel); - theTheoModel->SetMinEnergy(19*GeV); - theTheoModel->SetMaxEnergy(100*TeV); - - G4VLongitudinalStringDecay * theFragmentation = new G4QGSMFragmentation; - G4ExcitedStringDecay * theStringDecay = new G4ExcitedStringDecay(theFragmentation); - theStringModel->SetFragmentationModel(theStringDecay); - -// done with the generator model (most of the above is also available as default) - G4HadronElasticProcess* theElasticProcess = - new G4HadronElasticProcess; - G4LElastic* theElasticModel = new G4LElastic; - theElasticProcess->RegisterMe(theElasticModel); - G4HadronElasticProcess* theElasticProcess1 = - new G4HadronElasticProcess; - theParticleIterator->reset(); - while ((*theParticleIterator)()) { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "pi+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionPlusInelasticProcess* theInelasticProcess = - new G4PionPlusInelasticProcess("inelastic"); - G4LEPionPlusInelastic* theInelasticModel = - new G4LEPionPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "pi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4PionMinusInelasticProcess* theInelasticProcess = - new G4PionMinusInelasticProcess("inelastic"); - G4LEPionMinusInelastic* theInelasticModel = - new G4LEPionMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonPlusInelasticProcess* theInelasticProcess = - new G4KaonPlusInelasticProcess("inelastic"); - G4LEKaonPlusInelastic* theInelasticModel = new G4LEKaonPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0S") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroSInelasticProcess* theInelasticProcess = - new G4KaonZeroSInelasticProcess("inelastic"); - G4LEKaonZeroSInelastic* theInelasticModel = - new G4LEKaonZeroSInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon0L") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonZeroLInelasticProcess* theInelasticProcess = - new G4KaonZeroLInelasticProcess("inelastic"); - G4LEKaonZeroLInelastic* theInelasticModel = - new G4LEKaonZeroLInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "kaon-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4KaonMinusInelasticProcess* theInelasticProcess = - new G4KaonMinusInelasticProcess("inelastic"); - G4LEKaonMinusInelastic* theInelasticModel = - new G4LEKaonMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4ProtonInelasticProcess* theInelasticProcess = - new G4ProtonInelasticProcess("inelastic"); - G4LEProtonInelastic* theInelasticModel = new G4LEProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_proton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiProtonInelasticProcess* theInelasticProcess = - new G4AntiProtonInelasticProcess("inelastic"); - G4LEAntiProtonInelastic* theInelasticModel = - new G4LEAntiProtonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "neutron") { - - // elastic scattering - G4LElastic* theElasticModel1 = new G4LElastic; - theElasticProcess1->RegisterMe(theElasticModel1); - pmanager->AddDiscreteProcess(theElasticProcess1); - // inelastic scattering - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - // fission - G4HadronFissionProcess* theFissionProcess = - new G4HadronFissionProcess; - G4LFission* theFissionModel = new G4LFission; - theFissionProcess->RegisterMe(theFissionModel); - pmanager->AddDiscreteProcess(theFissionProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureProcess->RegisterMe(theCaptureModel); - pmanager->AddDiscreteProcess(theCaptureProcess); - } - else if (particleName == "anti_neutron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiNeutronInelasticProcess* theInelasticProcess = - new G4AntiNeutronInelasticProcess("inelastic"); - G4LEAntiNeutronInelastic* theInelasticModel = - new G4LEAntiNeutronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4LambdaInelasticProcess* theInelasticProcess = - new G4LambdaInelasticProcess("inelastic"); - G4LELambdaInelastic* theInelasticModel = new G4LELambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_lambda") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiLambdaInelasticProcess* theInelasticProcess = - new G4AntiLambdaInelasticProcess("inelastic"); - G4LEAntiLambdaInelastic* theInelasticModel = - new G4LEAntiLambdaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaPlusInelasticProcess* theInelasticProcess = - new G4SigmaPlusInelasticProcess("inelastic"); - G4LESigmaPlusInelastic* theInelasticModel = - new G4LESigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4SigmaMinusInelasticProcess* theInelasticProcess = - new G4SigmaMinusInelasticProcess("inelastic"); - G4LESigmaMinusInelastic* theInelasticModel = - new G4LESigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma+") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaPlusInelasticProcess* theInelasticProcess = - new G4AntiSigmaPlusInelasticProcess("inelastic"); - G4LEAntiSigmaPlusInelastic* theInelasticModel = - new G4LEAntiSigmaPlusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_sigma-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiSigmaMinusInelasticProcess* theInelasticProcess = - new G4AntiSigmaMinusInelasticProcess("inelastic"); - G4LEAntiSigmaMinusInelastic* theInelasticModel = - new G4LEAntiSigmaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiZeroInelasticProcess* theInelasticProcess = - new G4XiZeroInelasticProcess("inelastic"); - G4LEXiZeroInelastic* theInelasticModel = - new G4LEXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4XiMinusInelasticProcess* theInelasticProcess = - new G4XiMinusInelasticProcess("inelastic"); - G4LEXiMinusInelastic* theInelasticModel = - new G4LEXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi0") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiZeroInelasticProcess* theInelasticProcess = - new G4AntiXiZeroInelasticProcess("inelastic"); - G4LEAntiXiZeroInelastic* theInelasticModel = - new G4LEAntiXiZeroInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_xi-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiXiMinusInelasticProcess* theInelasticProcess = - new G4AntiXiMinusInelasticProcess("inelastic"); - G4LEAntiXiMinusInelastic* theInelasticModel = - new G4LEAntiXiMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "deuteron") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4DeuteronInelasticProcess* theInelasticProcess = - new G4DeuteronInelasticProcess("inelastic"); - G4LEDeuteronInelastic* theInelasticModel = - new G4LEDeuteronInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "triton") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4TritonInelasticProcess* theInelasticProcess = - new G4TritonInelasticProcess("inelastic"); - G4LETritonInelastic* theInelasticModel = - new G4LETritonInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "alpha") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AlphaInelasticProcess* theInelasticProcess = - new G4AlphaInelasticProcess("inelastic"); - G4LEAlphaInelastic* theInelasticModel = - new G4LEAlphaInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4OmegaMinusInelasticProcess* theInelasticProcess = - new G4OmegaMinusInelasticProcess("inelastic"); - G4LEOmegaMinusInelastic* theInelasticModel = - new G4LEOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - else if (particleName == "anti_omega-") { - pmanager->AddDiscreteProcess(theElasticProcess); - G4AntiOmegaMinusInelasticProcess* theInelasticProcess = - new G4AntiOmegaMinusInelasticProcess("inelastic"); - G4LEAntiOmegaMinusInelastic* theInelasticModel = - new G4LEAntiOmegaMinusInelastic; - theInelasticProcess->RegisterMe(theInelasticModel); - theInelasticProcess->RegisterMe(theTheoModel); - pmanager->AddDiscreteProcess(theInelasticProcess); - } - } -} - -void B08PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void B08PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager ->AddProcess(theDecayProcess); - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} - -void B08PhysicsList::SetCuts() -{ - if (verboseLevel >0) - { - G4cout << "B08PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - // "G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} diff --git a/examples/extended/biasing/B08/src/B08PrimaryGeneratorAction.cc b/examples/extended/biasing/B08/src/B08PrimaryGeneratorAction.cc deleted file mode 100644 index bf72fac27e..0000000000 --- a/examples/extended/biasing/B08/src/B08PrimaryGeneratorAction.cc +++ /dev/null @@ -1,55 +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: B08PrimaryGeneratorAction.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" - -#include "B08PrimaryGeneratorAction.hh" - -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4Neutron.hh" -#include "G4ThreeVector.hh" - -B08PrimaryGeneratorAction::B08PrimaryGeneratorAction() -{ - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); - particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -90.0005*cm)); - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); -} - -B08PrimaryGeneratorAction::~B08PrimaryGeneratorAction() -{ - delete particleGun; -} - -void B08PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) -{ - particleGun->GeneratePrimaryVertex(anEvent); -} diff --git a/examples/extended/biasing/B08/src/B08ScorePrinter.cc b/examples/extended/biasing/B08/src/B08ScorePrinter.cc deleted file mode 100644 index 7320fc877d..0000000000 --- a/examples/extended/biasing/B08/src/B08ScorePrinter.cc +++ /dev/null @@ -1,204 +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: B08ScorePrinter.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "B08ScorePrinter.hh" -#include "G4VPhysicalVolume.hh" -#include "G4Sigma.hh" -#include "G4VIStore.hh" - -B08ScorePrinter::B08ScorePrinter(const G4VIStore *aIStore) : - fIStore(aIStore) -{ - FieldName = 25; - FieldValue = 12; -} - -void B08ScorePrinter::PrintHeader(G4std::ostream *out) -{ - // head line - G4std::string vname = FillString("Volume name", ' ', FieldName+1); - *out << vname << '|'; - vname = FillString("Histo. Ent.", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("sum hi.ent*w", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("Collisions", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("sum col*w", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" AV E/ent.Tr", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString(" AV E/col", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("W*SL", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("W*SL*E", ' ', FieldValue+1, false); - *out << vname << '|'; - if (fIStore) { - vname = FillString(" importance ", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("av w/tr rel.", ' ', FieldValue+1, false); - *out << vname << '|'; - vname = FillString("av w/co rel.", ' ', FieldValue+1, false); - *out << vname << '|'; - } - *out << G4endl; -} - -void B08ScorePrinter::PrintTable(const G4PMapPtkTallys &aMapPtkTallys, - G4std::ostream *out) -{ - for (G4PMapPtkTallys::const_iterator mit = aMapPtkTallys.begin(); - mit != aMapPtkTallys.end(); mit++) { - G4PTouchableKey ptk = (*mit).first; // get a key identifying a volume - G4PMapNameTally mtallies = (*mit).second; // get tallies of the volume - G4String name(ptk.fVPhysiclaVolume->GetName()); // print volume name - G4double importance = 1; - if (fIStore) { - importance = fIStore->GetImportance(ptk); - } - G4double histoEntering = 0; - G4double collSum = 0; - G4double collwsum = 0; - G4double hinsum = 0; - G4double collEnergyWeightedSum = 0; - G4double WeightEnergy = 0; - G4double entTrackEnergyWeightedSum = 0; - G4double wsl = 0.; - G4double wsle = 0.; - G4double wsl_tr = 0.; - G4double wsle_tr = 0.; - G4double avWE_Coll = 0.; - - - G4double avW_EntHist = -1; - G4double avW_EntHist_sigma = -1; - G4double avW_Coll = -1; - G4double avW_Coll_sigma = -1; - - G4double sumTrWeight = -1; - G4double sumCollWeight = -1; - G4double Coll_Ent_Tr = -1; - - G4double meanTrackEnergy = -1, sigmaTrackEnergy = -1; - - for (G4PMapNameTally::iterator mt = mtallies.begin(); - mt != mtallies.end(); mt++) { - G4String tmp((*mt).first); - if (tmp == "WeighteOfHistorysEntering") { - hinsum = (*mt).second.GetEntries(); - avW_EntHist = (*mt).second.GetMean(); - avW_EntHist_sigma = (*mt).second.GetSigma(); - } - if (tmp == "WeighteOfCollisions") { - avW_Coll = (*mt).second.GetMean(); - avW_Coll_sigma = (*mt).second.GetSigma(); - } - if (tmp == "HistorysEnteringWeighted") { - sumTrWeight = (*mt).second.GetSumOfWeights(); - histoEntering = (*mt).second.GetXsum(); - } - if (tmp == "CollisionsWeighted") { - sumCollWeight = (*mt).second.GetSumOfWeights(); - collSum = (*mt).second.GetXsum(); - collwsum = (*mt).second.GetWeightedXsum(); - } - if (tmp == "EnergyEnteringHistoryWeighted") { - meanTrackEnergy = (*mt).second.GetMean(); - sigmaTrackEnergy = (*mt).second.GetSigma(); - entTrackEnergyWeightedSum = (*mt).second.GetWeightedXsum(); - } - - if (tmp == "CollisionEnergyWeighted") { - collEnergyWeightedSum = (*mt).second.GetWeightedXsum(); - avWE_Coll = (*mt).second.GetMean(); - } - - if (tmp == "StepLentgh") { - wsl = (*mt).second.GetWeightedXsum(); - } - if (tmp == "SteplengthTimesEnergy") { - wsle = (*mt).second.GetWeightedXsum(); - } - - } - - - G4double sumtrcoll = sumTrWeight + sumCollWeight; - if (sumtrcoll!=0) { - WeightEnergy = (collEnergyWeightedSum + entTrackEnergyWeightedSum) / - (sumtrcoll); - wsl_tr = wsl / sumtrcoll; - wsle_tr = wsle / sumtrcoll; - } - - if (sumTrWeight!=0.&&sumCollWeight!=-1) { - Coll_Ent_Tr = sumCollWeight / sumTrWeight; - } - // print values - - G4std::string fname = FillString(name, '.', FieldName); - *out << fname << " |"; - *out << G4std::setw(FieldValue) << histoEntering << " |"; - *out << G4std::setw(FieldValue) << sumTrWeight << " |"; - *out << G4std::setw(FieldValue) << collSum << " |"; - if (hinsum==0) hinsum = 1; - *out << G4std::setw(FieldValue) << collwsum << " |"; - *out << G4std::setw(FieldValue) << meanTrackEnergy << " |"; - *out << G4std::setw(FieldValue) << avWE_Coll << " |"; - *out << G4std::setw(FieldValue) << wsl << " |"; - *out << G4std::setw(FieldValue) << wsle << " |"; - if (fIStore) { - *out << G4std::setw(FieldValue) << importance << " |"; - *out << G4std::setw(FieldValue) << avW_EntHist*importance << " |"; - *out << G4std::setw(FieldValue) << avW_Coll*importance << " |"; - } - *out << G4endl; - if (name == "imp_world_phys") G4cout << G4endl; - } -} - -G4std::string B08ScorePrinter::FillString(const G4std::string &name, - char c, G4int n, G4bool back) -{ - G4std::string fname; - G4int k = n - name.size(); - if (k > 0) { - if (back) { - fname = name; - fname += G4std::string(k,c); - } - else { - fname = G4std::string(k,c); - fname += name; - } - } - else { - fname = name; - } - return fname; -} diff --git a/examples/extended/biasing/B08/src/B08Scorer.cc b/examples/extended/biasing/B08/src/B08Scorer.cc deleted file mode 100644 index 8763b5fee7..0000000000 --- a/examples/extended/biasing/B08/src/B08Scorer.cc +++ /dev/null @@ -1,99 +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: B08Scorer.cc,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "B08Scorer.hh" - -#include "G4Step.hh" -#include "G4PStep.hh" -#include "G4Sigma.hh" -#include "G4StateManager.hh" -#include "G4PStepStream.hh" -#include "G4VIStore.hh" - -B08Scorer::B08Scorer() -{;} - -B08Scorer::~B08Scorer() -{;} - -void B08Scorer::Score(const G4Step &aStep, const G4PStep &aPstep) -{ - G4Track *track = aStep.GetTrack(); - - if (track->GetTrackStatus()==fStopAndKill) - { - G4cout << " track status is StopAndKill -> do nothing" << G4endl; - } - // do the scoring - else - { - G4double weight = track->GetWeight(); - // the map fPtkTallys, the map nametallys and the "G4Sigma" will - // be setup the first time they are accesed. - G4PTouchableKey pre_ptk(aPstep.fPreTouchableKey); - G4PTouchableKey post_ptk(aPstep.fPostTouchableKey); - - if (aPstep.fCrossBoundary) - { - // Pstep crosses boundary - fPtkTallys[post_ptk]["WeighteOfHistorysEntering"].Xin(weight); - fPtkTallys[post_ptk]["HistorysEnteringWeighted"].Xin(1,weight); - fPtkTallys[post_ptk]["EnergyEnteringHistoryWeighted"]. - Xin(track->GetKineticEnergy(), weight); - // add step length in of previous cell - fPtkTallys[pre_ptk]["StepLentgh"].Xin(aStep.GetStepLength(),weight); - // add energy times step length. - fPtkTallys[pre_ptk]["SteplengthTimesEnergy"] - .Xin(track->GetKineticEnergy()*aStep.GetStepLength(), - weight); - } - else - { - // add step length to the current volume - fPtkTallys[post_ptk]["StepLentgh"]. - Xin(aStep.GetStepLength(),weight); - // add energy times weight. - fPtkTallys[post_ptk]["SteplengthTimesEnergy"] - .Xin(track->GetKineticEnergy()*aStep.GetStepLength(), - weight); - // Pstep with both points in the same I volume - if (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) - { - fPtkTallys[post_ptk]["WeighteOfCollisions"].Xin(weight); - fPtkTallys[post_ptk]["CollisionsWeighted"].Xin(1,weight); - fPtkTallys[post_ptk]["CollisionEnergyWeighted"]. - Xin(track->GetKineticEnergy(),weight); - } - } - } -} - -G4std::ostream& operator<<(G4std::ostream &out, const B08Scorer &ps) -{ - out << ps.GetMapPtkTallys(); - return out; -} diff --git a/examples/extended/biasing/GNUmakefile b/examples/extended/biasing/GNUmakefile index ce29590ee4..a54e36898f 100644 --- a/examples/extended/biasing/GNUmakefile +++ b/examples/extended/biasing/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2002/06/04 12:04:20 dressel Exp $ +# $Id: GNUmakefile,v 1.7 2002/11/08 17:40:27 dressel Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 08/04/02. # -------------------------------------------------------------- @@ -9,7 +9,7 @@ endif include $(G4INSTALL)/config/architecture.gmk -SUBDIRS = B01 B02 B03 B04 B05 B06 B07 B08 +SUBDIRS = B01 B02 B03 .PHONY : all clean clean_libs diff --git a/examples/extended/biasing/History b/examples/extended/biasing/History index 324a627dd7..0931b4d296 100644 --- a/examples/extended/biasing/History +++ b/examples/extended/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.13 2002/06/04 12:04:20 dressel Exp $ +$Id: History,v 1.21 2002/11/25 10:41:12 dressel Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,39 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 25th M. Dressel - exbiasing-V04-01-01 + change README + +Nov 22th M. Dressel + changed geometry for scoring. Cells must not coinside with + wolrd boundary since tracks would be killed before + scoring is called in the case a track exits a cell into + "out of world". + +Nov 8th, 2002 M.Dressel - exbiasing-V04-01-00 + reduce and change examples. Only B01 B02 B03 will + remain but with different content. + +July 11th, 2002 M.Dressel - internal-3-exbiasing-V04-01-01 +- resolved B09 into geometry/biasing and run. +- coworks with: internal-1-run-V04-01-01 + internal-2-transport-V04-01-01 + internal-2-geombias-V04-01-01 + +July 10th, 2002 M.Dressel +- using G4StandardScorer and G4StandardScoreTable instead of + B06Scorer and B06ScorePRinter in B06 + +July 10th, 2002 M.Dressel - internal-2-exbiasing-V04-01-01 +- adopt to the new G4Sigma version in internal-1-geombias-V04-01-01 + + +July 10th, 2002 M.Dressel - internal-1-exbiasing-V04-01-01 +- temporarily created directory B09. Messangers and classes using them + are put into B09 because the G4UImessanger is not known in + geometry and processes. + + Jun 4th, 2002 M.Dressel - exbiasing-V04-00-07 - update of exampleBXX.out files. - addition of example B08 diff --git a/examples/extended/biasing/README b/examples/extended/biasing/README index be7c49f260..ef709b8e03 100644 --- a/examples/extended/biasing/README +++ b/examples/extended/biasing/README @@ -20,16 +20,23 @@ technically. They don't intend to produce physical correct results. General remark to scoring ------------------------- -A interface G4VPScorer is provided for the user. The user may create his +A interface G4VScorer is provided for the user. The user may create his own class to perform the desired scoring. The user defined class -therefore should inherit from the interface G4VPScorer. -There are two example scorers G4PScorer and G4PIScorer provided. +therefore should inherit from the interface G4VScorer. +An example of an implementation of a scorer is G4Scorer +which may be found in source/event. +The scoring in these examples is done with a G4Scorer. +Importance sampling and scoring does not support all options of the +Geant4 geometry. It only supports physical volumes and simple replicas. +To identify a physical volume (or replica) objects of the class +G4GeometryCell are used. Scoring is done according to these +cells and importance values may be assigned to them. When scoring is done in a "scoring" or in a "importance" geometry special action has to be taken to prevent counting of "collisions" with boundaries of the tracking geometry as interactions. This is differently handled when scoring is done in the tracking geometry. -The scorers B01Scorer and B02Scorer show the difference in that case. -The Scorer B06Scorer checks for consistency of importance and weight. + +--> G4GeometryCell must not share boundaries with the world volume! <-- Known problems -------------- @@ -44,111 +51,99 @@ former volume the biasing won't be invoked. This will produce particles with weights that do not correspondent to the importance of the current volumes. +Further information: +-------------------- +Short description of importance sampling and scoring: +http://dressel.home.cern.ch/dressel/biasscore/Sampling.html -I. Examples for scoring without biasing -======================================= +Example B01 +=========== -I. 1. Example B01 ------------------ -This example shows how to use scoring in the "tracking" geometry. -It scores several values for neutrons for every physical volume -in the tracking geometry. -All scored values are printed after the running. In addition a more -exclusive output of selected values is printed. The way the -last output is produced shows how to extract certain values from all -scored values. +The example uses importance sampling and scoring. Importance values are +defined according to the mass geometry. Scoring is also done in according +to the mass geometry. -I. 2. Example B02 ------------------ -This example shows how to use scoring in a "parallel" or "scoring" -geometry. In this example a tracking and a scoring geometry is -constructed. Gammas are scored in the scoring geometry. The scored values -are dumped to the screen after the run. How to access the score values -more exclusively is shown in example B01. +Example B02 +=========== + +This example uses a parallel geometry to define G4GeometryCell objects +for scoring and importance sampling. In addition it customizes +the scoring. In this example one scorer creates a histogram. + +Compiling and running +--------------------- +To compile this example you need AIDA 3.0 installed. To link +and run it you need a AIDA compliant analysis package. The +GNUmakefile of this example shows how to use Anaphe as analysis +package. +The following list shows what to do if you are at CERN using rehat61 +and gcc-2.95.2: +use the shell /bin/sh +1) set the following variables (for example): +ANAPHETOP=/afs/cern.ch/sw/lhcxx + (or if installed in opt: /opt/Anaphe/5.0.1) +AIDA_DIR=/afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp + (or if installed in opt: /opt/AIDA/3.0.0/3.0.0/AIDA/3.0/src/cpp) +export ANAPHETOP AIDA_DIR + +2) Source the script: +. $ANAPHETOP/share/LHCXX/5.0.1/scripts/setupAnaphe + +3) and add to lirary path the following directories: +LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB02 + +Now you should be able to run gmake and to run exampleB02. + +The example stores the plot in the file b02.hbook. +To look at the histogram using lizard you also may use Anaphe 5.0.1 +http://anaphe.web.cern.ch/anaphe/index2.html. + +Files in B02: +B02plot.py: a simple script that may be executed from a lizzard session + to show the plot created by running the exampleB02. -II. Examples for biasing without scoring -======================================== +Example B03 +=========== -II. 1. Example B03 ------------------- -This example shows how to use biasing in the "tracking" geometry. -It does not do scoring. The importances are setup during the -mass detector construction in the file: -B03/src/B03DetectorConstruction.cc. +This example uses Geant4 and in particular importance sampling and +scoring through python. It also creates a histogram. +Compiling and running +--------------------- + To compile and run this example you need a python2.2 installation +see http://www.python.org. + Please set the environment variable "PYTHON_DIR" to your python2.2 +installation e.g: +using afs: +to /afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0 +or if Anaphe is installed in opt /opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0. -II. 2. Example B04 ------------------- -This example shows how to use biasing according to a "parallel" -or "importance" geometry. The importances are setup during the -construction of the parallel geometry in the file: -B04/src/B04ImportanceDetectorConstruction.cc. + Please add to your environment variables +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03 + and setenv PYTHONPATH $LD_LIBRARY_PATH. + You may run gmake now. + You should be able to execute the file B03RunApplication.py from your +shell now. + If you have Anaphe 5.0.1 installed you may also execute the file +B03RunApplication.py from a lizard session. This will create a +histogram. Therefore you may follow the steps 1 and two +in the above exampleB02. + See http://anaphe.web.cern.ch/anaphe/index2.html. -III. Examples for biasing and scoring -===================================== - -III. 1. Example B05 -------------------- -Biasing and Scoring in the "tracking" geometry. -The importances are setup during the mass detector construction -in the file: B05/src/B05DetectorConstruction.cc. -Scoring is done with G4PIScorer from transportation. G4PIScorer -scores several values for all the physical volumes of a geometry. -It also checks that the importance value times track weight = 1, -which should hold in "simple" cases. - - -III. 2. Example B06 -------------------- -Biasing and scoring in a "parallel" geometry. -The importances are setup during the construction of the parallel geometry -in the file B06/src/B06ImportanceDetectorConstruction.cc. -Customised scorer B06Scorer and printer B06ScorePrinter are used. - - - -III. 3. Example B07 -------------------- -Biasing neutrons and gammas in a "parallel" geometry. -The physics list used in this example creates only processes for -gammas and neutrons. Other particles that my be produced -will have no processes and can therefore not produce -any particles. -The idea is to have the simulation performing somewhat like a -transportation Monte Carlo that only knows about neutrons and gammas and -is only used in a limited energy range. - - -IV. Example for weight window sampling -------------------------------------- - - -IV.1 Example B08 ----------------- -This is an example using importance sampling and weight window biasing -together with scoring in a parallel geometry. Only the sampler -for importance, weight window sampling and scoring in a parallel geometry -exists at the moment. -The example setup: -A 180 cm long concrete shield is divided into 18 cells of 10 cm each. -The cells are created in a parallel geometry. Importance values -can be applied via an init.mac file. Scoring is done according to the -cells for neutrons and gammas. -Since this example intents to show the weight window sampling -the primary neutrons are created with the relatively high -energy of 300 MeV. Neutrons with this energy -penetrate the concrete (according to the chosen physics list) -relatively easy. So no importance sampling would be necessary. -The high energy is selected to show the effect of the weight window -sampling. High energetic secondaries which are not importance sampled -may create neutrons which have a weight different from the inverse of -the importance in the cell. If a finite weight window is chosen this -results in relative average weights of the tracks in a given cell not -equal to one. -If the upper and lower limit of the weight window is set to 1 -the relative weights are 1. - +Files in B03; +env.csh: Is an example script to set the environment. It should work + if you are at CERN and if you are on a redhat6.1 system. +buildit.sh: You don't need to use this file. Only if you want to + make changes to the python interface defined in B03App.i you may need + to use it. +B03Application.py: Is a example class utilizing importance sampling + and scoring using python. +B03RunApplication.py: Is a python script running the example. + It may be executed from the shell or in a python or lizard + session. In case it is executed from lizard it creates a plot + with a histogram. +B03App.py: Is created by swig using the buildit.sh script. diff --git a/examples/extended/electromagnetic/TestEm1/GNUmakefile b/examples/extended/electromagnetic/TestEm1/GNUmakefile index 3113316a39..b12ce23793 100644 --- a/examples/extended/electromagnetic/TestEm1/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm1/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/05/31 17:10:34 maire Exp $ +# $Id: GNUmakefile,v 1.8 2002/12/11 14:19:17 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -21,8 +21,8 @@ ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else # for the aida-config command see the README file - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm1/History b/examples/extended/electromagnetic/TestEm1/History index 01d9a6f17f..86be323dbd 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -1,4 +1,4 @@ -$Id: History,v 1.20 2002/06/05 17:57:27 maire Exp $ +$Id: History,v 1.22 2002/12/11 14:19:17 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,11 +15,18 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +11-12-02 mma (testem1-V04-01-01) +- migration to AIDA 3.0 +- UI commands under directory /testem/ + +05-12-02 cosmo (testem1-V04-01-00) +- Fix in runAction for porting on gcc-3.2. + 05-06-02 mma (testem1-V04-00-03) --do not delete histos in destructor of RunAction +- do not delete histos in destructor of RunAction 31-05-02 mma (testem1-V04-00-02) --old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README +- old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README 08-03-02 mma (testem1-V04-00-01) - PhysicsList: unifomisation of the setG(E)Cut commands diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index 33058b1ded..4df3b6dfcc 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -1,4 +1,4 @@ -$Id: README,v 1.6 2002/05/31 17:10:34 maire Exp $ +$Id: README,v 1.7 2002/12/11 14:19:17 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -104,22 +104,18 @@ $Id: README,v 1.6 2002/05/31 17:10:34 maire Exp $ Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. -7- Using the Anaphe implementation of the AIDA 2.2 histograms: + 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- - In order to use the Anaphe implementation of the AIDA 2.2 interfaces, - prepare some environment variables by source-ing one of the following - startup scripts (depending on your compiler version): + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config - # gcc-2.95.2 - source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh - - # egcs_1.1.2 (aka gcc 2.91.66) - source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh - - At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a - more recent release, check http:/cern.ch/anaphe for more information. - - After this, you will have access to the 'aida-config' command which - is used in the GNUmakefile. + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.cc b/examples/extended/electromagnetic/TestEm1/TestEm1.cc index 6f6109ee4b..c4dd53d768 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.cc +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm1.cc,v 1.8 2001/12/07 11:49:08 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.in b/examples/extended/electromagnetic/TestEm1/TestEm1.in index 5bee68b6de..45d354c321 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.in +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.in @@ -1,4 +1,4 @@ -# $Id: TestEm1.in,v 1.4 2002/03/08 15:08:57 maire Exp $ +# $Id: TestEm1.in,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 2.20 mm -/run/particle/setECut 6.05 mum +/testem/phys/setGCut 2.20 mm +/testem/phys/setECut 6.05 mum # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index a85d2d38d1..d9d145b6ca 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,12 +13,13 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) # -/run/particle/setGCut 2.20 mm -/run/particle/setECut 6.05 mum +/testem/phys/setGCut 2.20 mm +/testem/phys/setECut 6.05 mum # /run/initialize @@ -172,18 +173,18 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=12s Real=23s Sys=2.8s + User=15s Real=19s Sys=2.4s - nb tracks/event neutral: 27.5700 charged: 695.0200 - nb steps/event neutral: 148.5400 charged: 1331.6000 + nb tracks/event neutral: 27.8100 charged: 700.3100 + nb steps/event neutral: 151.8700 charged: 1338.0800 nb of process calls per event: - eIoni eBrem phot compt conv annihil - 1305.3700 24.8300 26.1700 120.9700 1.4000 1.4000 + eIoni eBrem compt phot conv annihil + 1311.6600 25.0000 124.0600 26.3900 1.4200 1.4200 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2126832091, 1419935556 + Current couple of seeds = 1272479250, 468362791 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm1/geant3/run10.dat b/examples/extended/electromagnetic/TestEm1/geant3/run10.dat new file mode 100644 index 0000000000..dd767ca4d4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/geant3/run10.dat @@ -0,0 +1,14 @@ +LIST +C +C e- 10 Gev; all processes +C +CALOR 5 (Imat) 2000. (size) 0. (field) +TRIG 100 +KINE 3 (Itype) 10.000 (Ekine) +DEBUG 10 5 10 +SWIT 0 (draw) 0 (save) +CUTS 10.e-6 (cutgam) 10.e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.e-6 (bcute/m) 2*597.e-6 (dcute/m) 10.e-3 (ppcutm) +ABAN 0 +LOSS 1 +TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F index e8b2216125..554737adae 100644 --- a/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm1/geant3/src/uglast.F @@ -39,7 +39,7 @@ + /,1X,'nb steps/event neutral: ',F9.2,' charged: ',F9.2) 760 FORMAT(//,1X,'nb of process calls per event: ', - + /,3X,12A9) - 761 FORMAT( 3X,12F9.4,//) + + /,3X,12A12) + 761 FORMAT( 3X,12F12.4,//) * END diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh index 6c26196dc5..697b482428 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em1DetectorConstruction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh index 72b59e7c7d..5ce925407d 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1DetectorMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1DetectorMessenger.hh,v 1.5 2002/12/11 14:19:22 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -56,7 +56,7 @@ class Em1DetectorMessenger: public G4UImessenger Em1DetectorConstruction* Em1Detector; - G4UIdirectory* Em1detDir; + G4UIdirectory* testemDir; G4UIcmdWithAString* MaterCmd; G4UIcmdWithADoubleAndUnit* SizeCmd; G4UIcmdWithADoubleAndUnit* MagFieldCmd; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh index 27661edb8a..45837c61de 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em1EventAction.hh,v 1.5 2001/11/29 11:28:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh index 8f1b686ba0..7f86f56b27 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em1EventActionMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh index 71ffc0a95f..388081d45d 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em1PhysicsList.hh,v 1.5 2002/03/08 13:43:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh index 8455671f7e..c5eb1a6523 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em1PhysicsListMessenger.hh,v 1.5 2002/03/08 13:43:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh index a0d96e9db5..d334fd243c 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em1PrimaryGeneratorAction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh index b9054a0296..27a450a089 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em1PrimaryGeneratorMessenger.hh,v 1.1 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh index 31123fd132..035c9fa6fd 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1RunAction.hh,v 1.9 2002/05/31 17:10:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1RunAction.hh,v 1.10 2002/12/11 14:19:22 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,8 +41,10 @@ class G4Run; #ifndef G4NOHIST +namespace AIDA { class ITree; class IHistogram1D; +} #endif class Em1RunAction : public G4UserRunAction @@ -62,7 +64,7 @@ class Em1RunAction : public G4UserRunAction void CountProcesses(G4String); #ifndef G4NOHIST - IHistogram1D* GetHisto(G4int id) {return histo[id];} + AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: @@ -75,8 +77,8 @@ class Em1RunAction : public G4UserRunAction ProcessesCount* ProcCounter; #ifndef G4NOHIST - ITree* tree; - IHistogram1D* histo[3]; + AIDA::ITree* tree; + AIDA::IHistogram1D* histo[3]; #endif }; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1SteppingAction.hh index a86431450f..87405e30da 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em1SteppingAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh index de9e059c31..dda48dbd2c 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em1SteppingVerbose.hh,v 1.7 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh b/examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh index 98fa3cf6c4..28be8b4888 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em1TrackingAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh b/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh index 4e7392646b..de09a837de 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh +++ b/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em1VisManager.hh,v 1.4 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh index 843bc6a598..69c7704eef 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.7 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/phot.mac b/examples/extended/electromagnetic/TestEm1/phot.mac index fcd13c2ff6..5d32bf1e15 100644 --- a/examples/extended/electromagnetic/TestEm1/phot.mac +++ b/examples/extended/electromagnetic/TestEm1/phot.mac @@ -1,4 +1,4 @@ -# $Id: phot.mac,v 1.1 2002/02/06 13:57:58 maire Exp $ +# $Id: phot.mac,v 1.2 2002/12/11 14:31:30 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -9,17 +9,17 @@ # /run/initialize # -/calor/setMat Germanium -/calor/setSize 1 cm -/calor/update +/testem/det/setMat Germanium +/testem/det/setSize 1 cm +/testem/det/update # -/gun/setDefault 1 +/testem/gun/setDefault 1 # /run/verbose 2 # /gun/particle gamma /gun/energy 1 MeV -/gun/rndm 0.8 +/testem/gun/rndm 0.8 # /tracking/verbose 1 # diff --git a/examples/extended/electromagnetic/TestEm1/run01.mac b/examples/extended/electromagnetic/TestEm1/run01.mac index 121fb52470..223c23ee8d 100644 --- a/examples/extended/electromagnetic/TestEm1/run01.mac +++ b/examples/extended/electromagnetic/TestEm1/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.4 2002/03/08 13:43:27 maire Exp $ +# $Id: run01.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 95 cm +/testem/phys/setGCut 95 cm +/testem/phys/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run02.mac b/examples/extended/electromagnetic/TestEm1/run02.mac index f3db010421..5ddfa61088 100644 --- a/examples/extended/electromagnetic/TestEm1/run02.mac +++ b/examples/extended/electromagnetic/TestEm1/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.4 2002/03/08 13:43:27 maire Exp $ +# $Id: run02.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 95 cm +/testem/phys/setGCut 95 cm +/testem/phys/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run03.mac b/examples/extended/electromagnetic/TestEm1/run03.mac index fbbb148326..5754665cbe 100644 --- a/examples/extended/electromagnetic/TestEm1/run03.mac +++ b/examples/extended/electromagnetic/TestEm1/run03.mac @@ -1,4 +1,4 @@ -# $Id: run03.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run03.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 95 cm +/testem/phys/setGCut 95 cm +/testem/phys/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run04.mac b/examples/extended/electromagnetic/TestEm1/run04.mac index fef1bfa812..7245ab1d0e 100644 --- a/examples/extended/electromagnetic/TestEm1/run04.mac +++ b/examples/extended/electromagnetic/TestEm1/run04.mac @@ -1,4 +1,4 @@ -# $Id: run04.mac,v 1.5 2002/03/08 13:43:28 maire Exp $ +# $Id: run04.mac,v 1.6 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 100 micrometer +/testem/phys/setGCut 95 cm +/testem/phys/setECut 100 micrometer # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run05.mac b/examples/extended/electromagnetic/TestEm1/run05.mac index ef1ff492f5..b33c9e0257 100644 --- a/examples/extended/electromagnetic/TestEm1/run05.mac +++ b/examples/extended/electromagnetic/TestEm1/run05.mac @@ -1,4 +1,4 @@ -# $Id: run05.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run05.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 2.2 mm -/run/particle/setECut 95 cm +/testem/phys/setGCut 2.2 mm +/testem/phys/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run06.mac b/examples/extended/electromagnetic/TestEm1/run06.mac index 7eec6a2dd0..13f05e9124 100644 --- a/examples/extended/electromagnetic/TestEm1/run06.mac +++ b/examples/extended/electromagnetic/TestEm1/run06.mac @@ -1,4 +1,4 @@ -# $Id: run06.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run06.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 95 cm +/testem/phys/setGCut 95 cm +/testem/phys/setECut 95 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run07.mac b/examples/extended/electromagnetic/TestEm1/run07.mac index 9b96b15788..c2cbfc584c 100644 --- a/examples/extended/electromagnetic/TestEm1/run07.mac +++ b/examples/extended/electromagnetic/TestEm1/run07.mac @@ -1,4 +1,4 @@ -# $Id: run07.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run07.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 30 mm +/testem/phys/setGCut 95 cm +/testem/phys/setECut 30 mm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run08.mac b/examples/extended/electromagnetic/TestEm1/run08.mac index c40fe495eb..61b99e177a 100644 --- a/examples/extended/electromagnetic/TestEm1/run08.mac +++ b/examples/extended/electromagnetic/TestEm1/run08.mac @@ -1,4 +1,4 @@ -# $Id: run08.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run08.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 2.2 mm -/run/particle/setECut 6.05 micrometer +/testem/phys/setGCut 2.2 mm +/testem/phys/setECut 6.05 micrometer # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/run09.mac b/examples/extended/electromagnetic/TestEm1/run09.mac index 80c4a64779..3121e8bce5 100644 --- a/examples/extended/electromagnetic/TestEm1/run09.mac +++ b/examples/extended/electromagnetic/TestEm1/run09.mac @@ -1,4 +1,4 @@ -# $Id: run09.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run09.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 2.2 mm -/run/particle/setECut 6.05 micrometer +/testem/phys/setGCut 2.2 mm +/testem/phys/setECut 6.05 micrometer # /run/initialize # @@ -18,5 +18,5 @@ # /gun/particle e- /gun/energy 1 GeV -/event/printModulo 10 +/testem/event/printModulo 10 /run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm1/run10.mac b/examples/extended/electromagnetic/TestEm1/run10.mac new file mode 100644 index 0000000000..f724e1cb0b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/run10.mac @@ -0,0 +1,17 @@ +# $Id: run10.mac,v 1.2 2002/12/11 14:19:19 maire Exp $ +# +# Macro file for "TestEm1.cc" +# (can be run in batch, without graphic) +# +# electron 10 GeV; all processes +# +/control/verbose 2 +# +/run/initialize +# +/run/verbose 2 +# +/gun/particle e- +/gun/energy 10 GeV +/testem/event/printModulo 10 +/run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm1/run11.mac b/examples/extended/electromagnetic/TestEm1/run11.mac index f185fbea9b..bb50feccef 100644 --- a/examples/extended/electromagnetic/TestEm1/run11.mac +++ b/examples/extended/electromagnetic/TestEm1/run11.mac @@ -1,4 +1,4 @@ -# $Id: run11.mac,v 1.4 2002/03/08 13:43:28 maire Exp $ +# $Id: run11.mac,v 1.5 2002/12/11 14:19:19 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,8 @@ # /control/verbose 2 # -/run/particle/setGCut 95 cm -/run/particle/setECut 17 cm +/testem/phys/setGCut 95 cm +/testem/phys/setECut 17 cm # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc index 0d31cf3d50..611f19a764 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc @@ -23,7 +23,7 @@ // // $Id: Em1DetectorConstruction.cc,v 1.9 2002/05/31 17:10:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc index 35f444447a..c34af93afa 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1DetectorMessenger.cc,v 1.4 2001/10/26 12:51:25 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1DetectorMessenger.cc,v 1.6 2002/12/11 14:19:23 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -42,33 +42,33 @@ Em1DetectorMessenger::Em1DetectorMessenger(Em1DetectorConstruction * Em1Det) :Em1Detector(Em1Det) { - Em1detDir = new G4UIdirectory("/calor/"); - Em1detDir->SetGuidance("Em1 detector control."); + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance("commands specific to this example"); - MaterCmd = new G4UIcmdWithAString("/calor/setMat",this); + MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); MaterCmd->SetGuidance("Select material of the box."); MaterCmd->SetParameterName("choice",false); - MaterCmd->AvailableForStates(PreInit,Idle); + MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - SizeCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSize",this); + SizeCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setSize",this); SizeCmd->SetGuidance("Set size of the box"); SizeCmd->SetParameterName("Size",false); SizeCmd->SetRange("Size>0."); SizeCmd->SetUnitCategory("Length"); - SizeCmd->AvailableForStates(PreInit,Idle); + SizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this); + 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(PreInit,Idle); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - UpdateCmd = new G4UIcmdWithoutParameter("/calor/update",this); + 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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -79,7 +79,7 @@ Em1DetectorMessenger::~Em1DetectorMessenger() delete SizeCmd; delete MagFieldCmd; delete UpdateCmd; - delete Em1detDir; + delete testemDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc index 69409e1ccc..f04e38ddfa 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em1EventAction.cc,v 1.6 2001/11/29 11:28:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc index f4f1905c9f..424906b596 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1EventActionMessenger.cc,v 1.4 2001/10/26 12:51:25 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1EventActionMessenger.cc,v 1.6 2002/12/11 14:19:23 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,19 +41,19 @@ Em1EventActionMessenger::Em1EventActionMessenger(Em1EventAction* EvAct) :eventAction(EvAct) { - DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); + 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(Idle); + DrawCmd->AvailableForStates(G4State_Idle); - PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc index 87cbf84fdc..4e431ceb9a 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Em1PhysicsList.cc,v 1.6 2002/03/08 13:43:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc index 3f4f0c38c4..669b58871e 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PhysicsListMessenger.cc,v 1.6 2002/03/08 13:43:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1PhysicsListMessenger.cc,v 1.8 2002/12/11 14:19:24 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -40,33 +40,33 @@ Em1PhysicsListMessenger::Em1PhysicsListMessenger(Em1PhysicsList* EvAct) :physList(EvAct) { - cutGCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setGCut",this); + cutGCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); cutGCmd->SetGuidance("Set gamma cut."); cutGCmd->SetParameterName("Gcut",false); cutGCmd->SetRange("Gcut>0."); cutGCmd->SetUnitCategory("Length"); - cutGCmd->AvailableForStates(PreInit,Idle); + cutGCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - cutECmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setECut",this); + cutECmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setECut",this); cutECmd->SetGuidance("Set electron cut"); cutECmd->SetParameterName("Ecut",false); cutECmd->SetRange("Ecut>0."); cutECmd->SetUnitCategory("Length"); - cutECmd->AvailableForStates(PreInit,Idle); + cutECmd->AvailableForStates(G4State_PreInit,G4State_Idle); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setPCut",this); + cutPCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this); cutPCmd->SetGuidance("Set proton cut."); cutPCmd->SetParameterName("Pcut",false); cutPCmd->SetRange("Pcut>0."); cutPCmd->SetUnitCategory("Length"); - cutPCmd->AvailableForStates(PreInit,Idle); + cutPCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - rCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/getRange",this); + rCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/getRange",this); rCmd->SetGuidance("get the electron cut for the current material."); rCmd->SetParameterName("energy",false); rCmd->SetRange("energy>0."); rCmd->SetUnitCategory("Energy"); - rCmd->AvailableForStates(Idle); + rCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc index 617251a1f9..c35c3659e8 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em1PrimaryGeneratorAction.cc,v 1.5 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc index 167b3d65cc..cf5c48a744 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorMessenger.cc,v 1.1 2001/12/07 11:49:10 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1PrimaryGeneratorMessenger.cc,v 1.3 2002/12/11 14:19:24 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,19 +41,19 @@ Em1PrimaryGeneratorMessenger::Em1PrimaryGeneratorMessenger( Em1PrimaryGeneratorAction* Em1Gun) :Em1Action(Em1Gun) { - DefaultCmd = new G4UIcmdWithAnInteger("/gun/setDefault",this); + DefaultCmd = new G4UIcmdWithAnInteger("/testem/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator"); DefaultCmd->SetGuidance("0=boxCenter, else=frontFace"); DefaultCmd->SetParameterName("position",true); DefaultCmd->SetDefaultValue(0); - DefaultCmd->AvailableForStates(PreInit,Idle); + DefaultCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - RndmCmd = new G4UIcmdWithADouble("/gun/rndm",this); + RndmCmd = new G4UIcmdWithADouble("/testem/gun/rndm",this); RndmCmd->SetGuidance("random lateral extension on the beam"); RndmCmd->SetGuidance("in fraction of 0.5*sizeYZ"); RndmCmd->SetParameterName("rBeam",false); RndmCmd->SetRange("rBeam>=0.&&rBeam<=1."); - RndmCmd->AvailableForStates(Idle); + RndmCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc index d2abd9039b..4cbcaba67f 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1RunAction.cc,v 1.16 2002/06/03 13:49:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1RunAction.cc,v 1.18 2002/12/11 14:19:24 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,15 +43,7 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "AIDA/IAnalysisFactory.h" - #include "AIDA/ITreeFactory.h" - #include "AIDA/ITree.h" - #include "AIDA/IHistogramFactory.h" - #include "AIDA/IHistogram1D.h" - #include "AIDA/IAxis.h" - #include "AIDA/IAnnotation.h" - #include "AIDA/ITupleFactory.h" - #include "AIDA/ITuple.h" + #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,24 +65,26 @@ void Em1RunAction::bookHisto() { #ifndef G4NOHIST // Creating the analysis factory - IAnalysisFactory* af = AIDA_createAnalysisFactory(); + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); // Creating the tree factory - ITreeFactory* tf = af->createTreeFactory(); + AIDA::ITreeFactory* tf = af->createTreeFactory(); // Creating a tree mapped to an hbook file. - tree = tf->create("testem1.paw", false, false, "hbook"); + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create("testem1.paw", "hbook", readOnly, createNew); // Creating a histogram factory, whose histograms will be handled by the tree - IHistogramFactory* hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // booking histograms - histo[0] = hf->create1D("1","track length (mm) of a charged particle", + histo[0] = hf->createHistogram1D("1","track length (mm) of a charged particle", 100,0.,50*cm); - histo[1] = hf->create1D("2","Nb of steps per track (charged particle)", + histo[1] = hf->createHistogram1D("2","Nb of steps per track (charged particle)", 100,0.,100.); - histo[2] = hf->create1D("3","step length (mm) charged particle", + histo[2] = hf->createHistogram1D("3","step length (mm) charged particle", 100,0.,10*mm); delete hf; @@ -154,8 +148,14 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun) { //nb of tracks and steps per event G4double dNbOfEvents = double(NbOfEvents); - G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); - G4int oldprec = G4cout.precision(4); +#ifdef G4USE_STD_NAMESPACE + G4std::ios::fmtflags mode = G4cout.flags(); + G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#else + G4long mode = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#endif + + G4int prec = G4cout.precision(4); G4cout << "\n nb tracks/event" << " neutral: " << G4std::setw(10) << NbOfTraks0/dNbOfEvents @@ -176,8 +176,8 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun) /dNbOfEvents; G4cout << G4endl; - G4cout.setf(oldform,G4std::ios::floatfield); - G4cout.precision(oldprec); + G4cout.setf(mode,G4std::ios::floatfield); + G4cout.precision(prec); } // delete and remove all contents in ProcCounter diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc index 72b4b7c3f2..09dc4f1ad5 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em1SteppingAction.cc,v 1.8 2002/05/31 17:10:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc index 78a99c8d8c..84e5d7ce1e 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em1SteppingVerbose.cc,v 1.8 2001/10/26 12:51:26 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc b/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc index 2cea17caf4..f071cfb4f3 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc @@ -23,7 +23,7 @@ // // $Id: Em1TrackingAction.cc,v 1.8 2002/05/31 17:10:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc b/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc old mode 100644 new mode 100755 index 93e301f0dc..cfef1ee8b5 --- a/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc +++ b/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em1VisManager.cc,v 1.6 2001/11/15 13:09:44 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em1VisManager.cc,v 1.7 2002/11/13 21:39:42 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em1VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm1/vis.mac b/examples/extended/electromagnetic/TestEm1/vis.mac index 84ef03ebb5..fcf991ea76 100644 --- a/examples/extended/electromagnetic/TestEm1/vis.mac +++ b/examples/extended/electromagnetic/TestEm1/vis.mac @@ -28,5 +28,5 @@ /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate # -/event/drawTracks +/testem/event/drawTracks diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.cc b/examples/extended/electromagnetic/TestEm10/TestEm10.cc index 584e688809..39dfb19316 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.cc +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm10.cc,v 1.2 2001/07/11 09:57:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out index 88f2a6ea6d..7ea6c6a3fa 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-04-01 $ + Geant4 version $Name: geant4-05-00 $ (29-Jun-2001) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index bf0e8931c9..97bb6594c5 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,6 +13,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -224,7 +225,7 @@ Regular X-ray TR radiator EM process is called 48 fGamma = 8.085e+04 sumE = 4.344 49 fGamma = 9.283e+04 sumE = 4.343 -total time for build X-ray TR energy loss tables = 74.72 s +total time for build X-ray TR energy loss tables = 74.56 s phot: Total cross sections from Sandia parametrisation. Em10PhysicsList::SetCuts:CutLength : 1 mm @@ -252,7 +253,7 @@ hIoni: Knock-on electron cross sections . delta ray energy sampled from differential Xsection. PhysicsTables from 1 keV to 100 TeV in 100 bins. -total time(SetCuts)=16.33 s +total time(SetCuts)=16.35 s ============= The cut Energy ============================== gamma e- Cut in range @@ -332,25 +333,25 @@ Cut in energy ---> Begin of Event: 0 ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=23.6609 +- 0.943952 mm + mean charged track length in absorber=23.1038 +- 0.910528 mm - mean energy deposit in absorber=0.00667686 +- 0.000191481 MeV + mean energy deposit in absorber=0.00657321 +- 0.000200772 MeV - mean number of steps in absorber (charged) =1.259 +- 0.0171441 - mean number of steps in absorber (neutral) =2.086 +- 0.0477766 + mean number of steps in absorber (charged) =1.229 +- 0.0161418 + mean number of steps in absorber (neutral) =2.028 +- 0.0442856 - mean number of charged secondaries = 0.241 +- 0.0155216 + mean number of charged secondaries = 0.208 +- 0.0141681 mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.241 and e+s =0 + mean number of e-s =0.208 and e+s =0 -(number) transmission coeff=0.191 reflection coeff=0.008 +(number) transmission coeff=0.171 reflection coeff=0.003 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2146225322, 1749835364 + Current couple of seeds = 1473754610, 1307634574 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh index ebfd76088e..d9669eea20 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.2 2001/07/11 09:57:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh index 4f904a0155..02496fa3bb 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh index 80487f711c..e015c06f84 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh index bf03d5b691..21ab640198 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh index cfb2bf3568..2817c039cd 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh index 4ca7b93b4c..60843b7cf3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh index 285fa9ca54..c51ec67c79 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.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef Em10PhysicsList_h diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh index efed7bf7fd..e66494c506 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh index 70c2160d1a..fa6e1f5873 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh index ca9bcdcb6d..f744e5d685 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh index 613aa76ede..8f31cf4aed 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.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh index 84e647e16c..fccc589cf3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh index 818e6b2178..3661bd4b41 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.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh index 6d7d8fc081..2bc783beb1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh index e74d6a90a7..dd8a23c072 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh index f4e5f335b1..858439c127 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh b/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh index b05aaf2abb..17543a94e2 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em10VisManager.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh index 28c5ede0ac..c6d245b8cf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh index dc9f3d03fa..82dc7a34ed 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc index 34ff828ef9..ff1e61f604 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.2 2001/07/11 09:57:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc index 77368408b6..8af4e070be 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.2 2001/07/11 09:57:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc index 2f724aae50..1bffdac202 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.8 2002/02/05 11:06:38 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc index 6946ae0465..fa9e93a1a0 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10DetectorMessenger.cc,v 1.5 2001/11/21 18:48:56 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em10DetectorMessenger.cc,v 1.6 2002/12/05 00:24:24 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -47,93 +47,93 @@ Em10DetectorMessenger::Em10DetectorMessenger(Em10DetectorConstruction * Em10Det) AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Xe"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); RadiatorMaterCmd = new G4UIcmdWithAString("/XTRdetector/setRadMat",this); RadiatorMaterCmd->SetGuidance("Select Material of the XTR radiator."); RadiatorMaterCmd->SetParameterName("choice",true); RadiatorMaterCmd->SetDefaultValue("CH2"); - RadiatorMaterCmd->AvailableForStates(Idle); + RadiatorMaterCmd->AvailableForStates(G4State_Idle); ModelCmd = new G4UIcmdWithAnInteger("/XTRdetector/setModel",this); ModelCmd->SetGuidance("Select Model for XTR"); ModelCmd->SetParameterName("choice",true); ModelCmd->SetDefaultValue(0); - // ModelCmd->AvailableForStates(PreInit,Idle); - ModelCmd->AvailableForStates(Idle); + // ModelCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + ModelCmd->AvailableForStates(G4State_Idle); FoilNumCmd = new G4UIcmdWithAnInteger("/XTRdetector/setFoilNum",this); FoilNumCmd->SetGuidance("Select foil number for XTR"); FoilNumCmd->SetParameterName("choice",true); FoilNumCmd->SetDefaultValue(0); - FoilNumCmd->AvailableForStates(PreInit,Idle); + FoilNumCmd->AvailableForStates(G4State_PreInit,G4State_Idle); WorldMaterCmd = new G4UIcmdWithAString("/XTRdetector/setWorldMat",this); WorldMaterCmd->SetGuidance("Select Material of the World."); WorldMaterCmd->SetParameterName("wchoice",true); WorldMaterCmd->SetDefaultValue("Air"); - WorldMaterCmd->AvailableForStates(Idle); + WorldMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("SizeZ",false,false); AbsThickCmd->SetDefaultUnit("mm"); AbsThickCmd->SetRange("SizeZ>0."); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); RadiatorThickCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setRadThick",this); RadiatorThickCmd->SetGuidance("Set Thickness of XTR radiator"); RadiatorThickCmd->SetParameterName("SizeZ",false,false); RadiatorThickCmd->SetDefaultUnit("mm"); RadiatorThickCmd->SetRange("SizeZ>0."); - RadiatorThickCmd->AvailableForStates(Idle); + RadiatorThickCmd->AvailableForStates(G4State_Idle); GasGapThickCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setGasGapThick",this); GasGapThickCmd->SetGuidance("Set Thickness of XTR gas gaps"); GasGapThickCmd->SetParameterName("SizeZ",false,false); GasGapThickCmd->SetDefaultUnit("mm"); GasGapThickCmd->SetRange("SizeZ>0."); - GasGapThickCmd->AvailableForStates(Idle); + GasGapThickCmd->AvailableForStates(G4State_Idle); AbsRadCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setAbsRad",this); AbsRadCmd->SetGuidance("Set radius of the Absorber"); AbsRadCmd->SetParameterName("SizeR",false,false); AbsRadCmd->SetDefaultUnit("mm"); AbsRadCmd->SetRange("SizeR>0."); - AbsRadCmd->AvailableForStates(Idle); + AbsRadCmd->AvailableForStates(G4State_Idle); AbsZposCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setAbsZpos",this); AbsZposCmd->SetGuidance("Set Z pos. of the Absorber"); AbsZposCmd->SetParameterName("Zpos",false,false); AbsZposCmd->SetDefaultUnit("mm"); - AbsZposCmd->AvailableForStates(Idle); + AbsZposCmd->AvailableForStates(G4State_Idle); WorldZCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setWorldZ",this); WorldZCmd->SetGuidance("Set Z size of the World"); WorldZCmd->SetParameterName("WSizeZ",false,false); WorldZCmd->SetDefaultUnit("mm"); WorldZCmd->SetRange("WSizeZ>0."); - WorldZCmd->AvailableForStates(Idle); + WorldZCmd->AvailableForStates(G4State_Idle); WorldRCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setWorldR",this); WorldRCmd->SetGuidance("Set R size of the World"); WorldRCmd->SetParameterName("WSizeR",false,false); WorldRCmd->SetDefaultUnit("mm"); WorldRCmd->SetRange("WSizeR>0."); - WorldRCmd->AvailableForStates(Idle); + WorldRCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/XTRdetector/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setField",this); MagFieldCmd->SetGuidance("Define magnetic field."); MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false,false); MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc index 6b98d42182..e11da3dfb0 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.3 2001/11/21 11:57:14 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc index c4a1a31385..4fd766d268 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10EventActionMessenger.cc,v 1.2 2001/07/11 09:57:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em10EventActionMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -53,13 +53,13 @@ Em10EventActionMessenger::Em10EventActionMessenger(Em10EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc index 3935b01a06..f6d46c6539 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.4 2002/02/05 11:06:38 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc index 680e0732db..d007b134d1 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10PhysicsListMessenger.cc,v 1.2 2001/07/11 09:57:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em10PhysicsListMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,35 +46,35 @@ Em10PhysicsListMessenger::Em10PhysicsListMessenger(Em10PhysicsList * List) cutGCmd->SetParameterName("range",true); cutGCmd->SetDefaultValue(1.); cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(Idle); + cutGCmd->AvailableForStates(G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); cutECmd->SetParameterName("range",true); cutECmd->SetDefaultValue(1.); cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(Idle); + cutECmd->AvailableForStates(G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); cutPCmd->SetParameterName("range",true); cutPCmd->SetDefaultValue(1.); cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(Idle); + cutPCmd->AvailableForStates(G4State_Idle); eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); eCmd->SetParameterName("energy",true); eCmd->SetDefaultValue(10.); eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(Idle); + eCmd->AvailableForStates(G4State_Idle); rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); rCmd->SetGuidance("Display the RANGE of Electron for the current material."); rCmd->SetParameterName("energy",true); rCmd->SetDefaultValue(10.); rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(Idle); + rCmd->AvailableForStates(G4State_Idle); setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc index bc802ff188..c57f0bdc3b 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.4 2002/02/05 11:06:38 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc index cf40d20732..52cb1a51c4 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10PrimaryGeneratorMessenger.cc,v 1.2 2001/07/11 09:57:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em10PrimaryGeneratorMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ Em10PrimaryGeneratorMessenger::Em10PrimaryGeneratorMessenger(Em10PrimaryGenerato RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("off"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc index a61ae36c9d..7720458205 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.3 2001/11/21 11:57:14 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc index fbb41116de..e0425b17e2 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10RunMessenger.cc,v 1.2 2001/07/11 09:57:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em10RunMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -187,13 +187,13 @@ Em10RunMessenger::Em10RunMessenger(Em10RunAction* RA) RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); RndmSaveCmd->SetParameterName("frequency",false); RndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); - RndmSaveCmd->AvailableForStates(PreInit,Idle); + RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); RndmReadCmd->SetGuidance("get rndm status from an external file."); RndmReadCmd->SetParameterName("fileName",true); RndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); - RndmReadCmd->AvailableForStates(PreInit,Idle); + RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc index ce195b0f3c..ff3788cd26 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "Em10StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc index f43d424944..2ebbd545e7 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.3 2001/11/21 11:57:15 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc index 5846161849..9dcfff28e1 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.2 2001/07/11 09:57:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc index 9b93caad65..74ba988c42 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.4 2002/02/05 11:06:38 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 old mode 100644 new mode 100755 index cb475577a3..1a817a9d66 --- a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em10VisManager.cc,v 1.3 2001/12/12 15:22:30 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em10VisManager.cc,v 1.4 2002/11/13 21:39:47 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em10VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm2/GNUmakefile b/examples/extended/electromagnetic/TestEm2/GNUmakefile index 1341773699..8f028baf2f 100644 --- a/examples/extended/electromagnetic/TestEm2/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm2/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/05/31 16:06:53 maire Exp $ +# $Id: GNUmakefile,v 1.9 2002/12/11 17:16:58 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -21,8 +21,8 @@ ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else # for the aida-config command see the README file - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm2/History b/examples/extended/electromagnetic/TestEm2/History index aa7f02d8a1..75b838cf47 100644 --- a/examples/extended/electromagnetic/TestEm2/History +++ b/examples/extended/electromagnetic/TestEm2/History @@ -1,4 +1,4 @@ -$Id: History,v 1.19 2002/06/05 18:06:28 maire Exp $ +$Id: History,v 1.24 2002/12/11 17:12:20 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,11 +15,24 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +11-12-02 mma (testem2-V04-01-03) +- Migration to AIDA 3.0. + +06-12-02 G.Cosmo (testem2-V04-01-02) +- Migration to new G4ApplicationState. +- Added HepRep driver to visManager. + +05-12-02 G.Cosmo (testem2-V04-01-01) +- Fixes to runAction for porting on gcc-3.2. + +29-10-02 V.Ivanchenko (testem2-V04-01-00) +- Modular PhysicsList + model approach for energy loss processes + 05-06-02 mma (testem2-V04-00-01) --do not delete histos in runAction destructor +- do not delete histos in runAction destructor 31-05-02 mma (testem2-V04-00-00) --old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README +- old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README 11-12-01 gcosmo (testem2-V03-02-04) - SteppingAction: added check on history depth also for rings! diff --git a/examples/extended/electromagnetic/TestEm2/README b/examples/extended/electromagnetic/TestEm2/README index ab349dd5a0..de1132988b 100644 --- a/examples/extended/electromagnetic/TestEm2/README +++ b/examples/extended/electromagnetic/TestEm2/README @@ -1,4 +1,4 @@ -$Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ +$Id: README,v 1.9 2002/12/11 17:12:20 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -21,18 +21,26 @@ $Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ the commands defined in the DetectorMessenger class. Material can be choosen: Air Water lAr Al Fe BGO PbWO4 Pb. - eg: /calor/setMat PbWO4 + eg: /testem/det/setMat PbWO4 The size of the slices and rings are expressed in radiation length units and can be changed. - eg: /calor/setLbin 20 1. ---> 20 slices of 1. radl - /calor/setRbin 5 0.25 ---> 5 rings of 0.25 radl - /calor/update ---> rebuild the geometry + eg: /testem/det/setLbin 20 1. ---> 20 slices of 1. radl + /testem/det/setRbin 5 0.25 ---> 5 rings of 0.25 radl + /testem/det/update ---> rebuild the geometry An uniform magnetic field along the cylinder axis can be set. - eg: /calor/setField 5 tesla - - 2- AN EVENT : THE PRIMARY GENERATOR + eg: /testem/det/setField 5 tesla + + 2- PHYSICS LISTS + + Physics Lists are subdivided on 4 following modules: + 1. "particles" - particle definitions + 2. "general" - decays and transportation + 3. "standard" (alternative) - standard EM physics + 4. "model" (alternative) - standard EM physics using model approach + + 3- AN EVENT : THE PRIMARY GENERATOR The primary kinematic consists of a single particle which hits the cylinder perpendicular to the input face. The type of the particle @@ -42,7 +50,7 @@ $Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ A RUN is a set of events. - 3- VISUALIZATION + 4- VISUALIZATION The Visualization Manager is set in the main(). The initialisation of the drawing is done via the commands @@ -56,7 +64,7 @@ $Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ Optionaly one can choose to draw all particles, only the charged one, or none. This command is defined in EventActionMessenger class. - 4- PHYSICS DEMO + 5- PHYSICS DEMO The particle's type and the physic processes which will be available in this example are set in PhysicsList class. @@ -65,10 +73,10 @@ $Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ allows to activate/inactivate the processes one by one. The threshold for producing secondaries can be changed. - eg: /run/particle/setCut 100 microm + eg: /testem/phys/setCuts 100 microm /run/initialize - 5- HOW TO START ? + 6- HOW TO START ? - compile and link to generate an executable % cd TestEm2 @@ -80,9 +88,8 @@ $Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ - execute TestEm2 in 'interactive mode' with visualization % TestEm2 .... - Idle> type your commands. For instance: - Idle> /control/execute newgeom.mac - .... + Idle> type your commands + .... Idle> exit 7- HISTOGRAMS @@ -110,21 +117,18 @@ $Id: README,v 1.6 2002/05/31 16:06:53 maire Exp $ Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. - 7- Using the Anaphe implementation of the AIDA 2.2 histograms: + 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- - In order to use the Anaphe implementation of the AIDA 2.2 interfaces, - prepare some environment variables by source-ing one of the following - startup scripts (depending on your compiler version): + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config - # gcc-2.95.2 - source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) - # egcs_1.1.2 (aka gcc 2.91.66) - source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh - - At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a - more recent release, check http:/cern.ch/anaphe for more information. - - After this, you will have access to the 'aida-config' command which - is used in the GNUmakefile. + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.cc b/examples/extended/electromagnetic/TestEm2/TestEm2.cc index 847e3baf87..e39595e570 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.cc +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm2.cc,v 1.6 2001/10/25 15:12:05 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.in b/examples/extended/electromagnetic/TestEm2/TestEm2.in index c2746a6688..5a1ab55ae2 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.in +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.in @@ -1,4 +1,4 @@ -# $Id: TestEm2.in,v 1.4 2001/12/06 18:19:25 gcosmo Exp $ +# $Id: TestEm2.in,v 1.7 2002/10/31 13:58:29 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -9,17 +9,22 @@ # J&H Crannel - Phys. Rev. 184-2 - August69 # /control/verbose 2 +/run/verbose 1 # -/run/particle/setCut 5.0 mm +# select EM PhysicsList +# +#/testem/phys/addPhysics model +/testem/phys/addPhysics standard +# +/testem/phys/setCuts 5.0 mm /run/initialize # -/calor/setMat Water -/calor/setLbin 9 1.11 -/calor/setRbin 6 0.111 -/calor/update +/testem/det/setMat Water +/testem/det/setLbin 9 1.11 +/testem/det/setRbin 6 0.111 +/testem/det/update # -/run/verbose 1 -/event/printModulo 20 +/testem/event/printModulo 20 # /gun/particle e- /gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.model.in b/examples/extended/electromagnetic/TestEm2/TestEm2.model.in new file mode 100644 index 0000000000..31b359ccc9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.model.in @@ -0,0 +1,32 @@ +# +# Macro file for "TestEm2.cc" +# (can be run in batch, without graphic) +# +# H2O L = 9.97 radl R = 0.665 radl; electron 1 GeV +# +# Experimental results: Electron-induced cascade showers +# J&H Crannel - Phys. Rev. 184-2 - August69 +# +/control/verbose 2 +/run/verbose 1 +# +# select EM PhysicsList +# +/testem/phys/addPhysics model +#/testem/phys/addPhysics standard +# +/testem/phys/setCuts 5.0 mm +/run/initialize +# +/testem/det/setMat Water +/testem/det/setLbin 9 1.11 +/testem/det/setRbin 6 0.111 +/testem/det/update +# +/testem/event/printModulo 20 +# +/gun/particle e- +/gun/energy 1 GeV +/run/beamOn 100 + + diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.model.out b/examples/extended/electromagnetic/TestEm2/TestEm2.model.out new file mode 100644 index 0000000000..8c53db0274 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.model.out @@ -0,0 +1,252 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) + Copyright : Geant4 Collaboration +********************************************** +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) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + FukuiRenderer (DAWN) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + VRML1 (VRML1) + VRML2 (VRML2) +/run/verbose 1 +# +# select EM PhysicsList +# +/testem/phys/addPhysics model +#/testem/phys/addPhysics standard +# +/testem/phys/setCuts 5.0 mm +/run/initialize + +***** Table : Nb of materials = 9 ***** + + Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m + ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: OxygenO 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: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: OxygenO 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: 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: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm + ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % + ---> Element: GermaniumGe Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % + ---> Element: BismuthBi 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: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % + ---> Element: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % + ---> Element: TungstenW 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: TungstenW 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: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + + +Absorber is 17.848 cm of PbWO4 + +phot: Total cross sections from Sandia parametrisation. +Em2PhysicsList::SetCuts:CutLength : 1 mm + +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: 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: + 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. + +eBrem: + 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: + 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. + +eBrem: + 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: 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. + +hIoni: + 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 Escaled > 2 MeV, parametrisation of Bragg peak below. + +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. + +muIoni: + 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 Escaled > 2 MeV, parametrisation of Bragg peak below. + +MuBrems: + 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: + 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: + 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 Escaled > 2 MeV, parametrisation of Bragg peak below. + +MuBrems: + 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: + 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 +============= The cut Energy ============================== + gamma e- +Cut in range + Air 5 mm 5 mm + Water 5 mm 5 mm + lAr 5 mm 5 mm + Al 5 mm 5 mm + Fe 5 mm 5 mm + BGO 5 mm 5 mm + PbWO4 5 mm 5 mm + Tungsten 5 mm 5 mm + Lead 5 mm 5 mm +Cut in energy + Air 990 eV 3.24 keV + Water 5.78 keV 1.16 MeV + lAr 13.6 keV 1.16 MeV + Al 14.6 keV 2.31 MeV + Fe 46.4 keV 6.11 MeV + BGO 126 keV 4.72 MeV + PbWO4 137 keV 5.34 MeV + Tungsten 241 keV 13 MeV + Lead 204 keV 6.83 MeV +=================================================== +# +/testem/det/setMat Water +/testem/det/setLbin 9 1.11 +/testem/det/setRbin 6 0.111 +/testem/det/update +Absorber is 3.60564 m of Water +# +/testem/event/printModulo 20 +# +/gun/particle e- +/gun/energy 1 GeV +/run/beamOn 100 +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 + +---> Begin of Event: 20 + +---> Begin of Event: 40 + +---> Begin of Event: 60 + +---> Begin of Event: 80 +Run terminated. +Run Summary + Number of events processed : 100 + User=5.87s Real=6.23s Sys=0.26s + LATERAL PROFILE CUMULATIVE LATERAL PROFILE + + bin Mean rms bin Mean rms + + 0.00-> 1.11 radl: 12.58% 5.30% 0-> 1.11 radl: 12.58% 5.30% + 1.11-> 2.22 radl: 23.85% 9.95% 0-> 2.22 radl: 36.43% 13.16% + 2.22-> 3.33 radl: 22.18% 9.52% 0-> 3.33 radl: 58.61% 16.17% + 3.33-> 4.44 radl: 14.36% 7.89% 0-> 4.44 radl: 72.97% 15.41% + 4.44-> 5.55 radl: 9.35% 6.69% 0-> 5.55 radl: 82.32% 13.50% + 5.55-> 6.66 radl: 5.51% 5.48% 0-> 6.66 radl: 87.83% 11.97% + 6.66-> 7.77 radl: 2.54% 3.20% 0-> 7.77 radl: 90.37% 10.44% + 7.77-> 8.88 radl: 1.80% 3.49% 0-> 8.88 radl: 92.17% 8.50% + 8.88-> 9.99 radl: 1.03% 2.39% 0-> 9.99 radl: 93.20% 7.61% + + + + RADIAL PROFILE CUMULATIVE RADIAL PROFILE + + bin Mean rms bin Mean rms + + 0.00-> 0.11 radl: 66.31% 10.78% 0-> 0.11 radl: 66.31% 10.78% + 0.11-> 0.22 radl: 15.55% 6.57% 0-> 0.22 radl: 81.86% 8.33% + 0.22-> 0.33 radl: 5.83% 3.71% 0-> 0.33 radl: 87.69% 7.76% + 0.33-> 0.44 radl: 2.63% 1.84% 0-> 0.44 radl: 90.32% 7.69% + 0.44-> 0.56 radl: 1.82% 1.38% 0-> 0.56 radl: 92.14% 7.58% + 0.56-> 0.67 radl: 1.06% 1.04% 0-> 0.67 radl: 93.20% 7.61% + + SUMMARY + energy deposit : 93.20 % E0 +- 7.61 % E0 + charged traklen: 13.45 radl +- 1.10 radl + neutral traklen: 204.04 radl +- 24.43 radl + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 134990405, 73697489 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index d55c06aff5..b097d527ac 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,11 +13,18 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +/run/verbose 1 # -/run/particle/setCut 5.0 mm +# select EM PhysicsList +# +#/testem/phys/addPhysics model +/testem/phys/addPhysics standard +# +/testem/phys/setCuts 5.0 mm /run/initialize ***** Table : Nb of materials = 9 ***** @@ -59,7 +66,7 @@ Current available graphics systems are: Absorber is 17.848 cm of PbWO4 phot: Total cross sections from Sandia parametrisation. -Em2PhysicsList::SetCuts:CutLength : 5 mm +Em2PhysicsList::SetCuts:CutLength : 1 mm compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -139,14 +146,13 @@ Cut in energy Lead 204 keV 6.83 MeV =================================================== # -/calor/setMat Water -/calor/setLbin 9 1.11 -/calor/setRbin 6 0.111 -/calor/update +/testem/det/setMat Water +/testem/det/setLbin 9 1.11 +/testem/det/setRbin 6 0.111 +/testem/det/update Absorber is 3.60564 m of Water # -/run/verbose 1 -/event/printModulo 20 +/testem/event/printModulo 20 # /gun/particle e- /gun/energy 1 GeV @@ -171,20 +177,20 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=23.26s Real=43.58s Sys=2.91s + User=23.55s Real=29.75s Sys=3.06s LATERAL PROFILE CUMULATIVE LATERAL PROFILE bin Mean rms bin Mean rms - 0.00-> 1.11 radl: 15.10% 6.92% 0-> 1.11 radl: 15.10% 6.92% - 1.11-> 2.22 radl: 24.22% 10.76% 0-> 2.22 radl: 39.32% 14.56% - 2.22-> 3.33 radl: 21.55% 9.89% 0-> 3.33 radl: 60.87% 17.09% - 3.33-> 4.44 radl: 14.26% 7.99% 0-> 4.44 radl: 75.13% 16.32% - 4.44-> 5.55 radl: 8.32% 6.26% 0-> 5.55 radl: 83.44% 14.90% - 5.55-> 6.66 radl: 4.76% 5.25% 0-> 6.66 radl: 88.20% 12.18% - 6.66-> 7.77 radl: 2.84% 4.64% 0-> 7.77 radl: 91.04% 10.05% - 7.77-> 8.88 radl: 1.83% 3.78% 0-> 8.88 radl: 92.88% 8.76% - 8.88-> 9.99 radl: 1.10% 3.13% 0-> 9.99 radl: 93.98% 7.39% + 0.00-> 1.11 radl: 14.75% 6.29% 0-> 1.11 radl: 14.75% 6.29% + 1.11-> 2.22 radl: 22.10% 9.69% 0-> 2.22 radl: 36.84% 12.22% + 2.22-> 3.33 radl: 20.44% 8.15% 0-> 3.33 radl: 57.28% 13.93% + 3.33-> 4.44 radl: 14.74% 8.52% 0-> 4.44 radl: 72.02% 13.31% + 4.44-> 5.55 radl: 9.78% 6.96% 0-> 5.55 radl: 81.79% 11.49% + 5.55-> 6.66 radl: 6.76% 5.80% 0-> 6.66 radl: 88.55% 8.07% + 6.66-> 7.77 radl: 2.97% 4.08% 0-> 7.77 radl: 91.52% 5.98% + 7.77-> 8.88 radl: 1.92% 3.10% 0-> 8.88 radl: 93.44% 4.74% + 8.88-> 9.99 radl: 0.81% 1.68% 0-> 9.99 radl: 94.25% 4.23% @@ -192,21 +198,21 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.11 radl: 65.45% 11.91% 0-> 0.11 radl: 65.45% 11.91% - 0.11-> 0.22 radl: 16.29% 6.69% 0-> 0.22 radl: 81.74% 9.13% - 0.22-> 0.33 radl: 6.28% 4.06% 0-> 0.33 radl: 88.03% 8.05% - 0.33-> 0.44 radl: 3.18% 2.44% 0-> 0.44 radl: 91.21% 7.60% - 0.44-> 0.56 radl: 1.83% 1.93% 0-> 0.56 radl: 93.04% 7.46% - 0.56-> 0.67 radl: 0.94% 0.97% 0-> 0.67 radl: 93.98% 7.39% + 0.00-> 0.11 radl: 66.75% 9.25% 0-> 0.11 radl: 66.75% 9.25% + 0.11-> 0.22 radl: 15.01% 5.71% 0-> 0.22 radl: 81.76% 6.91% + 0.22-> 0.33 radl: 5.87% 3.76% 0-> 0.33 radl: 87.63% 5.52% + 0.33-> 0.44 radl: 3.22% 2.53% 0-> 0.44 radl: 90.85% 4.86% + 0.44-> 0.56 radl: 2.09% 1.82% 0-> 0.56 radl: 92.94% 4.39% + 0.56-> 0.67 radl: 1.32% 1.29% 0-> 0.67 radl: 94.25% 4.23% SUMMARY - energy deposit : 93.98 % E0 +- 7.39 % E0 - charged traklen: 13.66 radl +- 1.08 radl - neutral traklen: 201.00 radl +- 22.88 radl + energy deposit : 94.25 % E0 +- 4.23 % E0 + charged traklen: 13.70 radl +- 0.61 radl + neutral traklen: 200.64 radl +- 19.55 radl --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1983783255, 1611071241 + Current couple of seeds = 1371468372, 1731317846 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh index 6d63215f59..3e051cee08 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em2DetectorConstruction.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh index 980d47089a..b81c81d44b 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2DetectorMessenger.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2DetectorMessenger.hh,v 1.5 2002/12/11 17:12:22 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -55,7 +55,7 @@ class Em2DetectorMessenger: public G4UImessenger private: Em2DetectorConstruction* Em2Detector; - G4UIdirectory* Em2detDir; + G4UIdirectory* testemDir; G4UIcmdWithAString* MaterCmd; G4UIcmdWith3Vector* LBinCmd; G4UIcmdWith3Vector* RBinCmd; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh index a3c099b977..8a27e5cca3 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em2EventAction.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh index 718640c5d9..9b333127e5 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em2EventActionMessenger.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.hh new file mode 100644 index 0000000000..b2d0b3ee86 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.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: Em2PhysListEmModel.hh,v 1.1 2002/10/31 14:07:47 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Em2PhysListEmModel_h +#define Em2PhysListEmModel_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Em2PhysListEmModel : public G4VPhysicsConstructor +{ + public: + Em2PhysListEmModel(const G4String& name = "model"); + virtual ~Em2PhysListEmModel(); + + 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(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.hh new file mode 100644 index 0000000000..68c945b911 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.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: Em2PhysListEmStandard.hh,v 1.1 2002/10/31 14:07:47 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Em2PhysListEmStandard_h +#define Em2PhysListEmStandard_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Em2PhysListEmStandard : public G4VPhysicsConstructor +{ + public: + Em2PhysListEmStandard(const G4String& name = "standard"); + virtual ~Em2PhysListEmStandard(); + + 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(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh new file mode 100644 index 0000000000..053c098803 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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: Em2PhysListGeneral.hh,v 1.1 2002/10/31 14:07:47 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Em2PhysListGeneral_h +#define Em2PhysListGeneral_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "G4Decay.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Em2PhysListGeneral : public G4VPhysicsConstructor +{ + public: + Em2PhysListGeneral(const G4String& name = "general"); + virtual ~Em2PhysListGeneral(); + + 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(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListParticles.hh similarity index 63% rename from examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh rename to examples/extended/electromagnetic/TestEm2/include/Em2PhysListParticles.hh index 1d786d6f5e..dd1ad5ab5e 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListParticles.hh @@ -21,48 +21,45 @@ // ******************************************************************** // // -// $Id: PersEx02PhysicsList.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2PhysListParticles.hh,v 1.1 2002/10/31 14:07:47 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -#ifndef PersEx02PhysicsList_h -#define PersEx02PhysicsList_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4VUserPhysicsList.hh" +#ifndef Em2PhysListParticles_h +#define Em2PhysListParticles_h 1 + +#include "G4VPhysicsConstructor.hh" #include "globals.hh" -class PersEx02PhysicsList: public G4VUserPhysicsList +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Em2PhysListParticles : public G4VPhysicsConstructor { - public: - PersEx02PhysicsList(); - virtual ~PersEx02PhysicsList(); + public: + Em2PhysListParticles(const G4String& name = "particles"); + virtual ~Em2PhysListParticles(); - protected: - // Construct particle and physics + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated virtual void ConstructParticle(); - virtual void ConstructProcess(); - - // - virtual void SetCuts(); - - protected: - // these methods Construct particles - virtual void ConstructBosons(); - virtual void ConstructLeptons(); - virtual void ConstructMesons(); - virtual void ConstructBaryons(); - virtual void ConstructIons(); - - protected: - // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); + + // This method is dummy. + virtual void ConstructProcess() {}; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif + + + + + diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh index 36b9f29499..655f6a0164 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh @@ -21,55 +21,46 @@ // ******************************************************************** // // -// $Id: Em2PhysicsList.hh,v 1.5 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2PhysicsList.hh,v 1.7 2002/10/31 13:58:32 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +// 14.10.02 (V.Ivanchenko) provide modular list on base of old Em2PhysicsList // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #ifndef Em2PhysicsList_h #define Em2PhysicsList_h 1 -#include "G4VUserPhysicsList.hh" +#include "G4VModularPhysicsList.hh" #include "globals.hh" class Em2PhysicsListMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2PhysicsList: public G4VUserPhysicsList +class Em2PhysicsList: public G4VModularPhysicsList { public: Em2PhysicsList(); ~Em2PhysicsList(); - protected: - // Construct particles - void ConstructParticle(); - void ConstructBosons(); - void ConstructLeptons(); - void ConstructMesons(); - void ConstructBarions(); - - public: + void AddPhysicsList(const G4String& name); + void SetCuts(); void SetCutForGamma(G4double); void SetCutForElectron(G4double); - void SetCutForProton(G4double); + void SetCutForPositron(G4double); - protected: - // Construct processes and register them - void ConstructProcess(); - void ConstructGeneral(); - void ConstructEM(); - private: G4double cutForGamma; G4double cutForElectron; - G4double cutForProton; + G4double cutForPositron; G4double currentDefaultCut; + + G4bool emPhysicsListIsRegistered; Em2PhysicsListMessenger* pMessenger; }; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh index 992f2cd598..98b504b418 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2PhysicsListMessenger.hh,v 1.3 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2PhysicsListMessenger.hh,v 1.4 2002/10/14 15:56:11 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -37,6 +37,7 @@ class Em2PhysicsList; class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -56,6 +57,9 @@ class Em2PhysicsListMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* gammaCutCmd; G4UIcmdWithADoubleAndUnit* electCutCmd; G4UIcmdWithADoubleAndUnit* protoCutCmd; + G4UIcmdWithADoubleAndUnit* allCutCmd; + G4UIcmdWithAString* pListCmd; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh index 74d155987c..79bd2f7b80 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em2PrimaryGeneratorAction.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh index 3b01a7f337..43882489a9 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2RunAction.hh,v 1.11 2002/05/31 16:06:54 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2RunAction.hh,v 1.12 2002/12/11 17:12:22 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,8 +54,10 @@ class Em2PrimaryGeneratorAction; class G4Run; #ifndef G4NOHIST +namespace AIDA { class ITree; class IHistogram1D; +} #endif class Em2RunAction : public G4UserRunAction @@ -111,10 +113,9 @@ class Em2RunAction : public G4UserRunAction G4double sum2NeutrTrLength; #ifndef G4NOHIST - ITree* tree; // the tree should only be deleted at the end - IHistogram1D* histo[12]; // (after writing the histos to file) -#endif - + AIDA::ITree* tree; // the tree should only be deleted at the end + AIDA::IHistogram1D* histo[12]; // (after writing the histos to file) +#endif }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh index 47b4da3cf3..06dd756caa 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em2SteppingAction.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh index ba43220550..45a172a76d 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em2SteppingVerbose.hh,v 1.7 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2TrackingAction.hh b/examples/extended/electromagnetic/TestEm2/include/Em2TrackingAction.hh index b8b212be38..8606e484fb 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2TrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em2TrackingAction.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh b/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh index 3e873eedb6..13cf97c9c3 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh +++ b/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em2VisManager.hh,v 1.4 2001/10/25 15:12:06 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/run01.mac b/examples/extended/electromagnetic/TestEm2/run01.mac index fc1c0cacc3..0840535d35 100644 --- a/examples/extended/electromagnetic/TestEm2/run01.mac +++ b/examples/extended/electromagnetic/TestEm2/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.6 2002/05/31 16:06:54 maire Exp $ +# $Id: run01.mac,v 1.10 2002/12/11 17:12:21 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -7,13 +7,16 @@ # /control/verbose 2 # -#/run/particle/setCut 1 mm +##/testem/phys/addPhysics model +/testem/phys/addPhysics standard +/testem/phys/setCuts 1 mm +# /run/initialize # -/run/particle/applyCuts +#/run/particle/applyCuts # -/run/verbose 2 -/event/printModulo 10 +/run/verbose 1 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 5 GeV diff --git a/examples/extended/electromagnetic/TestEm2/run01.out b/examples/extended/electromagnetic/TestEm2/run01.out new file mode 100644 index 0000000000..4fc46ecd6f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/run01.out @@ -0,0 +1,366 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) + Copyright : Geant4 Collaboration +********************************************** +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) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) +# +#/run/particle/setCut 1 mm +/run/initialize + +***** Table : Nb of materials = 9 ***** + + Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m + ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: OxygenO 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: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: OxygenO 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: 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: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm + ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % + ---> Element: GermaniumGe Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % + ---> Element: BismuthBi 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: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % + ---> Element: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % + ---> Element: TungstenW 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: TungstenW 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: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % + + +Absorber is 17.848 cm of PbWO4 + +phot: Total cross sections from Sandia parametrisation. +Em2PhysicsList::SetCuts:CutLength : 1 mm + +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: 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: 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. + +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. + +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: 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. + +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. + +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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. +============= The cut Energy ============================== + gamma e- +Cut in range + Air 1 mm 1 mm + Water 1 mm 1 mm + lAr 1 mm 1 mm + Al 1 mm 1 mm + Fe 1 mm 1 mm + BGO 1 mm 1 mm + PbWO4 1 mm 1 mm + Tungsten 1 mm 1 mm + Lead 1 mm 1 mm +Cut in energy + Air 990 eV 990 eV + Water 2.9 keV 347 keV + lAr 6.18 keV 343 keV + Al 6.89 keV 597 keV + Fe 20.8 keV 1.28 MeV + BGO 77.7 keV 1.03 MeV + PbWO4 84.8 keV 1.13 MeV + Tungsten 105 keV 2.31 MeV + Lead 101 keV 1.38 MeV +=================================================== +# +/run/particle/applyCuts +# +/run/verbose 2 +/event/printModulo 10 +# +/gun/particle e- +/gun/energy 5 GeV +/run/beamOn 500 +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 51 kByte + Total CPU time elapsed for geometry optimisation: 2.8 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + 0.00 0.00 0.00 1k Ring + + Voxelisation: top memory users: + Percent Memory Heads Nodes Pointers Total CPU Volume + ------- -------- ------ ------ -------- ---------- ---------- + 73.53 37k 401 397 1621 0.00 Ecal + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring + 1.32 0k 1 20 20 0.00 Ring +Start Run processing. + +---> Begin of Event: 0 + +---> Begin of Event: 10 + +---> Begin of Event: 20 + +---> Begin of Event: 30 + +---> Begin of Event: 40 + +---> Begin of Event: 50 + +---> Begin of Event: 60 + +---> Begin of Event: 70 + +---> Begin of Event: 80 + +---> Begin of Event: 90 + +---> Begin of Event: 100 + +---> Begin of Event: 110 + +---> Begin of Event: 120 + +---> Begin of Event: 130 + +---> Begin of Event: 140 + +---> Begin of Event: 150 + +---> Begin of Event: 160 + +---> Begin of Event: 170 + +---> Begin of Event: 180 + +---> Begin of Event: 190 + +---> Begin of Event: 200 + +---> Begin of Event: 210 + +---> Begin of Event: 220 + +---> Begin of Event: 230 + +---> Begin of Event: 240 + +---> Begin of Event: 250 + +---> Begin of Event: 260 + +---> Begin of Event: 270 + +---> Begin of Event: 280 + +---> Begin of Event: 290 + +---> Begin of Event: 300 + +---> Begin of Event: 310 + +---> Begin of Event: 320 + +---> Begin of Event: 330 + +---> Begin of Event: 340 + +---> Begin of Event: 350 + +---> Begin of Event: 360 + +---> Begin of Event: 370 + +---> Begin of Event: 380 + +---> Begin of Event: 390 + +---> Begin of Event: 400 + +---> Begin of Event: 410 + +---> Begin of Event: 420 + +---> Begin of Event: 430 + +---> Begin of Event: 440 + +---> Begin of Event: 450 + +---> Begin of Event: 460 + +---> Begin of Event: 470 + +---> Begin of Event: 480 + +---> Begin of Event: 490 +Run terminated. +Run Summary + Number of events processed : 500 + User=1359.22s Real=1365.98s Sys=0.25s + LATERAL PROFILE CUMULATIVE LATERAL PROFILE + + bin Mean rms bin Mean rms + + 0.00-> 1.00 radl: 0.69% 0.34% 0-> 1.00 radl: 0.69% 0.34% + 1.00-> 2.00 radl: 2.64% 1.24% 0-> 2.00 radl: 3.33% 1.49% + 2.00-> 3.00 radl: 5.68% 2.23% 0-> 3.00 radl: 9.01% 3.46% + 3.00-> 4.00 radl: 8.60% 2.66% 0-> 4.00 radl: 17.61% 5.61% + 4.00-> 5.00 radl: 10.59% 2.85% 0-> 5.00 radl: 28.20% 7.71% + 5.00-> 6.00 radl: 11.39% 2.52% 0-> 6.00 radl: 39.59% 9.19% + 6.00-> 7.00 radl: 10.68% 2.06% 0-> 7.00 radl: 50.28% 9.75% + 7.00-> 8.00 radl: 9.55% 1.86% 0-> 8.00 radl: 59.83% 9.54% + 8.00-> 9.00 radl: 8.13% 1.78% 0-> 9.00 radl: 67.96% 8.82% + 9.00->10.00 radl: 6.55% 1.83% 0->10.00 radl: 74.51% 7.78% + 10.00->11.00 radl: 5.25% 1.61% 0->11.00 radl: 79.76% 6.73% + 11.00->12.00 radl: 4.09% 1.53% 0->12.00 radl: 83.85% 5.57% + 12.00->13.00 radl: 3.11% 1.34% 0->13.00 radl: 86.97% 4.55% + 13.00->14.00 radl: 2.29% 1.07% 0->14.00 radl: 89.25% 3.73% + 14.00->15.00 radl: 1.73% 0.94% 0->15.00 radl: 90.98% 3.00% + 15.00->16.00 radl: 1.29% 0.77% 0->16.00 radl: 92.28% 2.42% + 16.00->17.00 radl: 0.96% 0.59% 0->17.00 radl: 93.23% 1.94% + 17.00->18.00 radl: 0.70% 0.49% 0->18.00 radl: 93.93% 1.58% + 18.00->19.00 radl: 0.50% 0.42% 0->19.00 radl: 94.43% 1.28% + 19.00->20.00 radl: 0.33% 0.29% 0->20.00 radl: 94.76% 1.10% + + + + RADIAL PROFILE CUMULATIVE RADIAL PROFILE + + bin Mean rms bin Mean rms + + 0.00-> 0.25 radl: 36.98% 2.35% 0-> 0.25 radl: 36.98% 2.35% + 0.25-> 0.50 radl: 18.05% 1.44% 0-> 0.50 radl: 55.04% 2.19% + 0.50-> 0.75 radl: 10.25% 1.05% 0-> 0.75 radl: 65.28% 2.02% + 0.75-> 1.00 radl: 6.53% 0.83% 0-> 1.00 radl: 71.81% 1.83% + 1.00-> 1.25 radl: 4.51% 0.70% 0-> 1.25 radl: 76.32% 1.68% + 1.25-> 1.50 radl: 3.34% 0.54% 0-> 1.50 radl: 79.66% 1.56% + 1.50-> 1.75 radl: 2.61% 0.45% 0-> 1.75 radl: 82.27% 1.46% + 1.75-> 2.00 radl: 2.13% 0.39% 0-> 2.00 radl: 84.39% 1.40% + 2.00-> 2.25 radl: 1.77% 0.34% 0-> 2.25 radl: 86.16% 1.32% + 2.25-> 2.50 radl: 1.46% 0.33% 0-> 2.50 radl: 87.62% 1.27% + 2.50-> 2.75 radl: 1.26% 0.29% 0-> 2.75 radl: 88.88% 1.23% + 2.75-> 3.00 radl: 1.07% 0.25% 0-> 3.00 radl: 89.95% 1.19% + 3.00-> 3.25 radl: 0.93% 0.23% 0-> 3.25 radl: 90.88% 1.18% + 3.25-> 3.50 radl: 0.81% 0.20% 0-> 3.50 radl: 91.68% 1.17% + 3.50-> 3.75 radl: 0.70% 0.20% 0-> 3.75 radl: 92.39% 1.14% + 3.75-> 4.00 radl: 0.62% 0.18% 0-> 4.00 radl: 93.01% 1.13% + 4.00-> 4.25 radl: 0.53% 0.17% 0-> 4.25 radl: 93.54% 1.13% + 4.25-> 4.50 radl: 0.48% 0.16% 0-> 4.50 radl: 94.01% 1.11% + 4.50-> 4.75 radl: 0.41% 0.14% 0-> 4.75 radl: 94.42% 1.10% + 4.75-> 5.00 radl: 0.34% 0.13% 0-> 5.00 radl: 94.76% 1.10% + + SUMMARY + energy deposit : 94.76 % E0 +- 1.10 % E0 + charged traklen: 439.14 radl +- 5.63 radl + neutral traklen: 4523.63 radl +- 129.24 radl + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1543815772, 2006737054 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. +Deletion of G4 kernel class start. +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm2/run02.mac b/examples/extended/electromagnetic/TestEm2/run02.mac index 838c1fc7c5..91bac0f513 100644 --- a/examples/extended/electromagnetic/TestEm2/run02.mac +++ b/examples/extended/electromagnetic/TestEm2/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.4 2001/10/31 17:34:12 maire Exp $ +# $Id: run02.mac,v 1.7 2002/10/31 13:58:29 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -10,16 +10,19 @@ # /control/verbose 2 # -/run/particle/setCut 2.0 mm +/testem/phys/addPhysics model +#/testem/phys/addPhysics standard +# +/testem/phys/setCuts 2.0 mm /run/initialize # -/calor/setMat Al -/calor/setLbin 12 1.1245 -/calor/setRbin 12 0.11245 -/calor/update +/testem/det/setMat Al +/testem/det/setLbin 12 1.1245 +/testem/det/setRbin 12 0.11245 +/testem/det/update # /run/verbose 2 -/event/printModulo 10 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm2/run03.mac b/examples/extended/electromagnetic/TestEm2/run03.mac index 132f494aba..18d37858a2 100644 --- a/examples/extended/electromagnetic/TestEm2/run03.mac +++ b/examples/extended/electromagnetic/TestEm2/run03.mac @@ -1,4 +1,4 @@ -# $Id: run03.mac,v 1.5 2001/10/31 17:34:12 maire Exp $ +# $Id: run03.mac,v 1.8 2002/10/31 13:58:29 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -10,16 +10,19 @@ # /control/verbose 2 # -/run/particle/setCut 5.0 mm +/testem/phys/addPhysics model +#/testem/phys/addPhysics standard +# +/testem/phys/setCuts 5.0 mm /run/initialize # -/calor/setMat Water -/calor/setLbin 9 1.11 -/calor/setRbin 6 0.111 -/calor/update +/testem/det/setMat Water +/testem/det/setLbin 9 1.11 +/testem/det/setRbin 6 0.111 +/testem/det/update # /run/verbose 2 -/event/printModulo 10 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm2/run04.mac b/examples/extended/electromagnetic/TestEm2/run04.mac index e27df86f48..85d42dfdab 100644 --- a/examples/extended/electromagnetic/TestEm2/run04.mac +++ b/examples/extended/electromagnetic/TestEm2/run04.mac @@ -1,4 +1,4 @@ -# $Id: run04.mac,v 1.4 2001/10/31 17:34:12 maire Exp $ +# $Id: run04.mac,v 1.7 2002/10/31 13:58:29 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -9,16 +9,19 @@ # /control/verbose 2 # -/run/particle/setCut 0.8 mm +/testem/phys/addPhysics model +#/testem/phys/addPhysics standard +# +/testem/phys/setCuts 0.8 mm /run/initialize # -/calor/setMat Fe -/calor/setLbin 40 0.5 -/calor/setRbin 20 0.25 -/calor/update +/testem/det/setMat Fe +/testem/det/setLbin 40 0.5 +/testem/det/setRbin 20 0.25 +/testem/det/update # /run/verbose 2 -/event/printModulo 10 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 30 GeV diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc index d178c33eab..0ab35736e8 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc @@ -21,11 +21,12 @@ // ******************************************************************** // // -// $Id: Em2DetectorConstruction.cc,v 1.7 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2DetectorConstruction.cc,v 1.9 2002/10/29 19:10:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -111,6 +112,8 @@ void Em2DetectorConstruction::DefineMaterials() // // define materials // + + G4Material* ma = 0; //Air density = 1.29*mg/cm3; @@ -123,21 +126,23 @@ void Em2DetectorConstruction::DefineMaterials() 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; - G4Material* lAr = new G4Material(name="lAr", z=18., a, density); + ma = new G4Material(name="lAr", z=18., a, density); //Al a = 26.98*g/mole; density = 2.7*g/cm3; - G4Material* Al = new G4Material(name="Al", z=13., a, density); + ma = new G4Material(name="Al", z=13., a, density); //Fe a = 55.85*g/mole; density = 7.87*g/cm3; - G4Material* Fe = new G4Material(name="Fe", z=26., a, density); + ma = new G4Material(name="Fe", z=26., a, density); //BGO density = 7.10*g/cm3; diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc index aa6879aedc..a120d11334 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc @@ -21,11 +21,11 @@ // ******************************************************************** // // -// $Id: Em2DetectorMessenger.cc,v 1.5 2001/10/31 17:34:13 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2DetectorMessenger.cc,v 1.9 2002/12/11 17:12:23 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // - + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -43,40 +43,40 @@ Em2DetectorMessenger::Em2DetectorMessenger(Em2DetectorConstruction * Det) :Em2Detector(Det) { - Em2detDir = new G4UIdirectory("/calor/"); - Em2detDir->SetGuidance("Em2 detector control."); + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance("Em2 detector control."); - MaterCmd = new G4UIcmdWithAString("/calor/setMat",this); + MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); MaterCmd->SetGuidance("Select Material."); MaterCmd->SetParameterName("material",false); - MaterCmd->AvailableForStates(Idle); + MaterCmd->AvailableForStates(G4State_Idle); - LBinCmd = new G4UIcmdWith3Vector("/calor/setLbin",this); + LBinCmd = new G4UIcmdWith3Vector("/testem/det/setLbin",this); LBinCmd->SetGuidance("set longitudinal bining"); LBinCmd->SetGuidance("nb of bins; bin thickness (in radl)"); LBinCmd->SetParameterName("nLtot","dLradl"," ",true); LBinCmd->SetRange("nLtot>=1 && dLradl>0"); - LBinCmd->AvailableForStates(PreInit,Idle); + LBinCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - RBinCmd = new G4UIcmdWith3Vector("/calor/setRbin",this); + RBinCmd = new G4UIcmdWith3Vector("/testem/det/setRbin",this); RBinCmd->SetGuidance("set radial bining"); RBinCmd->SetGuidance("nb of bins; bin thickness (in radl)"); RBinCmd->SetParameterName("nRtot","dRradl"," ",true); RBinCmd->SetRange("nRtot>=1 && dRradl>0"); - RBinCmd->AvailableForStates(PreInit,Idle); + RBinCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - FieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this); + FieldCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setField",this); FieldCmd->SetGuidance("Define magnetic field."); FieldCmd->SetGuidance("Magnetic field will be in Z direction."); FieldCmd->SetParameterName("Bz",false); FieldCmd->SetUnitCategory("Magnetic flux density"); - FieldCmd->AvailableForStates(Idle); + FieldCmd->AvailableForStates(G4State_Idle); - UpdateCmd = new G4UIcmdWithoutParameter("/calor/update",this); + UpdateCmd = new G4UIcmdWithoutParameter("/testem/det/update",this); UpdateCmd->SetGuidance("Update geometry."); UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); UpdateCmd->SetGuidance("if you changed geometrical value(s)."); - UpdateCmd->AvailableForStates(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -88,7 +88,7 @@ Em2DetectorMessenger::~Em2DetectorMessenger() delete RBinCmd; delete FieldCmd; delete UpdateCmd; - delete Em2detDir; + delete testemDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc index 2047665a65..3b569acdab 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em2EventAction.cc,v 1.6 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc index 4f14e86a49..f2749b70e1 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2EventActionMessenger.cc,v 1.5 2001/11/28 18:57:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2EventActionMessenger.cc,v 1.8 2002/12/06 16:51:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -32,7 +32,7 @@ #include "Em2EventActionMessenger.hh" #include "Em2EventAction.hh" -#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" #include "globals.hh" @@ -41,19 +41,19 @@ Em2EventActionMessenger::Em2EventActionMessenger(Em2EventAction* EvAct) :eventAction(EvAct) { - DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); + 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(Idle); + DrawCmd->AvailableForStates(G4State_Idle); - PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.cc new file mode 100644 index 0000000000..7eb93e95b1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.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: Em2PhysListEmModel.cc,v 1.1 2002/10/31 14:12:43 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Em2PhysListEmModel.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScatteringSTD.hh" + +#include "G4eIonisationSTD.hh" +#include "G4eBremsstrahlungSTD.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisationSTD.hh" +#include "G4MuBremsstrahlungSTD.hh" +#include "G4MuPairProductionSTD.hh" + +#include "G4hIonisationSTD.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListEmModel::Em2PhysListEmModel(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListEmModel::~Em2PhysListEmModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em2PhysListEmModel::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 G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); + pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); + pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); + pmanager->AddProcess(new G4MuIonisationSTD, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlungSTD, -1,-1,3); + pmanager->AddProcess(new G4MuPairProductionSTD, -1,-1,4); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScatteringSTD,-1,1,1); + if(particle->GetPDGMass() < 1.0*GeV ) { + pmanager->AddProcess(new G4hIonisationSTD, -1,2,2); + } else { + pmanager->AddProcess(new G4ionIonisation, -1,2,2); + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc new file mode 100644 index 0000000000..db837da01e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: Em2PhysListEmStandard.cc,v 1.1 2002/10/31 14:12:43 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Em2PhysListEmStandard.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" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListEmStandard::Em2PhysListEmStandard(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListEmStandard::~Em2PhysListEmStandard() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em2PhysListEmStandard::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,-1,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,-1,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,-1,3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1,4); + + } 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/TestEm2/src/Em2PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListGeneral.cc new file mode 100644 index 0000000000..ae5a3053d4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListGeneral.cc @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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: Em2PhysListGeneral.cc,v 1.1 2002/10/31 14:12:43 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Em2PhysListGeneral.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListGeneral::Em2PhysListGeneral(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListGeneral::~Em2PhysListGeneral() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em2PhysListGeneral::ConstructProcess() +{ + // Add Decay Process + + G4Decay* fDecayProcess = new G4Decay(); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (fDecayProcess->IsApplicable(*particle)) { + + pmanager ->AddProcess(fDecayProcess); + + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(fDecayProcess, idxAtRest); + + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc new file mode 100644 index 0000000000..ebc55f411c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * 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: Em2PhysListParticles.cc,v 1.1 2002/10/31 14:12:43 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Em2PhysListParticles.hh" + +// 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...... + +Em2PhysListParticles::Em2PhysListParticles(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Em2PhysListParticles::~Em2PhysListParticles() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em2PhysListParticles::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...... + diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc index bf2b53caab..ff4a255f61 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc @@ -20,10 +20,6 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: Em2PhysicsList.cc,v 1.7 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,215 +27,89 @@ #include "Em2PhysicsList.hh" #include "Em2PhysicsListMessenger.hh" + +#include "G4UnitsTable.hh" +#include "Em2PhysListParticles.hh" +#include "Em2PhysListGeneral.hh" +#include "Em2PhysListEmStandard.hh" +#include "Em2PhysListEmModel.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4Material.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysicsList::Em2PhysicsList() -: G4VUserPhysicsList() -{ - currentDefaultCut = defaultCutValue = 1.0*mm; - cutForGamma = defaultCutValue; - cutForElectron = defaultCutValue; - cutForProton = defaultCutValue; - +Em2PhysicsList::Em2PhysicsList() : G4VModularPhysicsList(), + emPhysicsListIsRegistered(false) +{ + currentDefaultCut = 1.0*mm; + cutForGamma = currentDefaultCut; + cutForElectron = currentDefaultCut; + cutForPositron = currentDefaultCut; + pMessenger = new Em2PhysicsListMessenger(this); SetVerboseLevel(1); + + // Particles + RegisterPhysics( new Em2PhysListParticles("particles") ); + + // General Physics + RegisterPhysics( new Em2PhysListGeneral("general") ); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Em2PhysicsList::~Em2PhysicsList() -{delete pMessenger;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em2PhysicsList::ConstructParticle() { - // 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(); + delete pMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::ConstructBosons() +void Em2PhysicsList::AddPhysicsList(const G4String& name) { - // pseudo-particles - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); - - // gamma - G4Gamma::GammaDefinition(); - - // optical photon - G4OpticalPhoton::OpticalPhotonDefinition(); -} - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + if (verboseLevel>1) { + G4cout << "Em2PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + } -void Em2PhysicsList::ConstructLeptons() -{ - // leptons - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); + if(name == "standard") { - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + if (emPhysicsListIsRegistered) { -void Em2PhysicsList::ConstructMesons() -{ - // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); -} + G4cout << "Em2PhysicsList::AddPhysicsList: <" << name << ">" + << " cannot be register additionally to existing one" + << G4endl; + } else { -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em2PhysicsList::ConstructBarions() -{ -// barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); -} - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em2PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructGeneral(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#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" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em2PhysicsList::ConstructEM() -{ - 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,-1,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,-1,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,-1,3); - pmanager->AddProcess(new G4MuPairProduction, -1,-1,4); - - } 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); + RegisterPhysics( new Em2PhysListEmStandard(name) ); + emPhysicsListIsRegistered = true; } + + } else if(name == "model") { + + if (emPhysicsListIsRegistered) { + + G4cout << "Em2PhysicsList::AddPhysicsList: <" << name << ">" + << " cannot be register additionally to existing one" + << G4endl; + } else { + + RegisterPhysics( new Em2PhysListEmModel(name) ); + emPhysicsListIsRegistered = true; + } + + } else { + + G4cout << "Em2PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4Decay.hh" - -void Em2PhysicsList::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 ->AddProcess(theDecayProcess); - // set ordering for PostStepDoIt and AtRestDoIt - pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); - } - } -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void Em2PhysicsList::SetCuts() { - // reactualise cutValues - if (currentDefaultCut != defaultCutValue) - { - if(cutForGamma == currentDefaultCut) cutForGamma = defaultCutValue; - if(cutForElectron == currentDefaultCut) cutForElectron = defaultCutValue; - if(cutForProton == currentDefaultCut) cutForProton = defaultCutValue; - currentDefaultCut = defaultCutValue; - } if (verboseLevel >0){ G4cout << "Em2PhysicsList::SetCuts:"; @@ -250,14 +120,14 @@ void Em2PhysicsList::SetCuts() // because some processes for e+/e- need cut values for gamma SetCutValue(cutForGamma, "gamma"); SetCutValue(cutForElectron, "e-"); - SetCutValue(cutForElectron, "e+"); + SetCutValue(cutForPositron, "e+"); // set cut values for proton and anti_proton before all other hadrons // because some processes for hadrons need cut values for proton/anti_proton - SetCutValue(cutForProton, "proton"); - SetCutValue(cutForProton, "anti_proton"); + SetCutValue(currentDefaultCut, "proton"); + SetCutValue(currentDefaultCut, "anti_proton"); - SetCutValueForOthers(defaultCutValue); + SetCutValueForOthers(currentDefaultCut); if (verboseLevel>0) DumpCutValuesTable(); } @@ -270,16 +140,20 @@ void Em2PhysicsList::SetCutForGamma(G4double cut) cutForGamma = cut; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + void Em2PhysicsList::SetCutForElectron(G4double cut) { ResetCuts(); cutForElectron = cut; } -void Em2PhysicsList::SetCutForProton(G4double cut) +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Em2PhysicsList::SetCutForPositron(G4double cut) { ResetCuts(); - cutForProton = cut; + cutForPositron = cut; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc index b6d0e354ff..fea49bb0e5 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2PhysicsListMessenger.cc,v 1.3 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2PhysicsListMessenger.cc,v 1.6 2002/12/06 16:51:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -33,32 +33,45 @@ #include "Em2PhysicsList.hh" #include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAString.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... Em2PhysicsListMessenger::Em2PhysicsListMessenger(Em2PhysicsList* pPhys) :pPhysicsList(pPhys) { - gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setGCut",this); + 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(PreInit,Idle); + gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - electCutCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setECut",this); + 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(PreInit,Idle); + electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - protoCutCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setPCut",this); - protoCutCmd->SetGuidance("Set proton cut."); + 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(PreInit,Idle); + 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...... @@ -68,6 +81,8 @@ Em2PhysicsListMessenger::~Em2PhysicsListMessenger() delete gammaCutCmd; delete electCutCmd; delete protoCutCmd; + delete allCutCmd; + delete pListCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -82,7 +97,18 @@ void Em2PhysicsListMessenger::SetNewValue(G4UIcommand* command, { pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));} if( command == protoCutCmd ) - { pPhysicsList->SetCutForProton(protoCutCmd->GetNewDoubleValue(newValue));} + { 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/TestEm2/src/Em2PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc index bdfc8f466e..3fc9add33f 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2PrimaryGeneratorAction.cc,v 1.4 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2PrimaryGeneratorAction.cc,v 1.5 2002/10/31 13:58:32 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,8 +50,6 @@ Em2PrimaryGeneratorAction::Em2PrimaryGeneratorAction( particleGun->SetParticleDefinition(particle); particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); particleGun->SetParticleEnergy(5.*GeV); - G4double position = -0.5*(Em2Detector->GetfullLength()); - particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,7 +63,7 @@ Em2PrimaryGeneratorAction::~Em2PrimaryGeneratorAction() void Em2PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { - //this function is called at the begining of event + //this function is called at the begin of event // G4double position = -0.5*(Em2Detector->GetfullLength()); particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc index e53aecfc0f..e9fabcdeaa 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2RunAction.cc,v 1.15 2002/06/03 14:07:13 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2RunAction.cc,v 1.18 2002/12/11 17:12:23 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,15 +49,7 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "AIDA/IAnalysisFactory.h" - #include "AIDA/ITreeFactory.h" - #include "AIDA/ITree.h" - #include "AIDA/IHistogramFactory.h" - #include "AIDA/IHistogram1D.h" - #include "AIDA/IAxis.h" - #include "AIDA/IAnnotation.h" - #include "AIDA/ITupleFactory.h" - #include "AIDA/ITuple.h" + #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,56 +90,58 @@ void Em2RunAction::bookHisto() { #ifndef G4NOHIST // Creating the analysis factory - IAnalysisFactory* af = AIDA_createAnalysisFactory(); + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); // Creating the tree factory - ITreeFactory* tf = af->createTreeFactory(); + AIDA::ITreeFactory* tf = af->createTreeFactory(); // Creating a tree mapped to an hbook file. - tree = tf->create("testem2.paw", false, false, "hbook"); + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create("testem2.paw", "hbook", readOnly, createNew); // Creating a histogram factory, whose histograms will be handled by the tree - IHistogramFactory* hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); G4double Ekin = Em2Kin->GetParticleGun()->GetParticleEnergy(); G4double dLradl = Em2Det->GetdLradl(); G4double dRradl = Em2Det->GetdRradl(); - histo[0] = hf->create1D( "1","total energy deposit (percent of E inc)", + histo[0] = hf->createHistogram1D( "1","total energy deposit(percent of Einc)", 100,0.,100.); - histo[1] = hf->create1D( "2","total charged tracklength (radl)", + histo[1] = hf->createHistogram1D( "2","total charged tracklength (radl)", 100,0.,100.*Ekin/GeV); - histo[2] = hf->create1D( "3","total neutral tracklength (radl)", + histo[2] = hf->createHistogram1D( "3","total neutral tracklength (radl)", 100,0.,1000.*Ekin/GeV); - histo[3] = hf->create1D( "4","longit energy profile (% of E inc)", + histo[3] = hf->createHistogram1D( "4","longit energy profile (% of E inc)", nLbin,0.,nLbin*dLradl); G4double Zmin=0.5*dLradl, Zmax=Zmin+nLbin*dLradl; - histo[4] = hf->create1D( "5","cumul longit energy dep (% of E inc)", + histo[4] = hf->createHistogram1D( "5","cumul longit energy dep (% of E inc)", nLbin,Zmin,Zmax); - histo[5] = hf->create1D( "6","rms on cumul longit Edep (% of E inc)", + histo[5] = hf->createHistogram1D( "6","rms on cumul longit Edep (% of E inc)", nLbin,Zmin,Zmax); - histo[6] = hf->create1D( "7","nb of gamma per plane", + histo[6] = hf->createHistogram1D( "7","nb of gamma per plane", nLbin,Zmin,Zmax); - histo[7] = hf->create1D( "8","nb of positron per plane", + histo[7] = hf->createHistogram1D( "8","nb of positron per plane", nLbin,Zmin,Zmax); - histo[8] = hf->create1D( "9","nb of electron per plane", + histo[8] = hf->createHistogram1D( "9","nb of electron per plane", nLbin,Zmin,Zmax); - histo[9] = hf->create1D("10","radial energy profile (% of E inc)", + histo[9] = hf->createHistogram1D("10","radial energy profile (% of E inc)", nRbin,0.,nRbin*dRradl); G4double Rmin=0.5*dRradl, Rmax=Rmin+nRbin*dRradl; - histo[10]= hf->create1D("11","cumul radial energy dep (% of E inc)", + histo[10]= hf->createHistogram1D("11","cumul radial energy dep (% of E inc)", nRbin,Rmin,Rmax); - histo[11]= hf->create1D("12","rms on cumul radial Edep (% of E inc)", + histo[11]= hf->createHistogram1D("12","rms on cumul radial Edep (% of E inc)", nRbin,Rmin,Rmax); delete hf; @@ -293,7 +287,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) MyVector MeanELongit(nLbin), rmsELongit(nLbin); MyVector MeanELongitCumul(nLbin), rmsELongitCumul(nLbin); - G4int i; G4double bin; + G4int i; for (i=0; ifill(bin,MeanELongit[i]/dLradl); bin = (i+1)*dLradl; histo[4]->fill(bin,MeanELongitCumul[i]); @@ -339,7 +333,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) - sumERadialCumul[i]*sumERadialCumul[i])); #ifndef G4NOHIST - bin = i*dRradl; + G4double bin = i*dRradl; histo[ 9]->fill(bin,MeanERadial[i]/dRradl); bin = (i+1)*dRradl; histo[10]->fill(bin,MeanERadialCumul[i]); @@ -361,8 +355,13 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) //print // - G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); - G4int oldprec = G4cout.precision(2); +#ifdef G4USE_STD_NAMESPACE + G4std::ios::fmtflags mode = G4cout.flags(); + G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#else + G4long mode = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#endif + G4int prec = G4cout.precision(2); G4cout << " LATERAL PROFILE " << " CUMULATIVE LATERAL PROFILE" << G4endl << G4endl; @@ -417,9 +416,8 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) << G4std::setw(7) << MeanNeutrTrLength << " radl +- " << G4std::setw(7) << rmsNeutrTrLength << " radl" << G4endl; - - G4cout.setf(oldform,G4std::ios::floatfield); - G4cout.precision(oldprec); + G4cout.setf(mode,G4std::ios::floatfield); + G4cout.precision(prec); // show Rndm status HepRandom::showEngineStatus(); diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc index 0258ea2b94..0da1ded2db 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em2SteppingAction.cc,v 1.6 2001/12/11 17:44:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc index e754c3fc21..e2b465c346 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em2SteppingVerbose.cc,v 1.8 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc b/examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc index 6d6ea8b8d3..721b994105 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em2TrackingAction.cc,v 1.4 2001/10/25 15:12:07 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc b/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc old mode 100644 new mode 100755 index 763a1c5296..1773b2a6d7 --- a/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc +++ b/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em2VisManager.cc,v 1.6 2001/11/15 13:09:46 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em2VisManager.cc,v 1.7 2002/11/13 21:39:49 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em2VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm2/vis.mac b/examples/extended/electromagnetic/TestEm2/vis.mac index 568f2ec287..207882a871 100644 --- a/examples/extended/electromagnetic/TestEm2/vis.mac +++ b/examples/extended/electromagnetic/TestEm2/vis.mac @@ -6,6 +6,8 @@ # /control/verbose 2 /run/verbose 2 +# +/testem/phys/addPhysics standard /run/initialize # # Create empty scene ("world" is default) @@ -29,5 +31,5 @@ /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate # -/event/drawTracks charged +/testem/event/drawTracks charged diff --git a/examples/extended/electromagnetic/TestEm3/GNUmakefile b/examples/extended/electromagnetic/TestEm3/GNUmakefile index 3c0ec0dc83..ba44b18755 100644 --- a/examples/extended/electromagnetic/TestEm3/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm3/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/06/05 12:13:03 maire Exp $ +# $Id: GNUmakefile,v 1.8 2002/12/12 11:19:32 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -21,8 +21,8 @@ ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else # for the aida-config command see the README file - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm3/History b/examples/extended/electromagnetic/TestEm3/History index a02fe5d86c..8b2d70c54d 100644 --- a/examples/extended/electromagnetic/TestEm3/History +++ b/examples/extended/electromagnetic/TestEm3/History @@ -1,4 +1,4 @@ -$Id: History,v 1.18 2002/06/05 12:13:03 maire Exp $ +$Id: History,v 1.20 2002/12/12 11:19:32 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,8 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +05-12-02 mma (testem3-V04-01-01) +- migration to aida 3.0 +- UI directory /testem/ + +05-12-02 cosmo (testem3-V04-01-00) +- Fixes to runAction for porting on gcc-3.2 compiler. + 03-06-02 mma (testem3-V04-00-01) --old histograming package clhep/hist replaced by AIDA 2.2/anaphe +- old histograming package clhep/hist replaced by AIDA 2.2/anaphe 14-02-02 mma (testem3-V04-00-00) - macros for em_exercices diff --git a/examples/extended/electromagnetic/TestEm3/README b/examples/extended/electromagnetic/TestEm3/README index b08197a05b..1c8644ff29 100644 --- a/examples/extended/electromagnetic/TestEm3/README +++ b/examples/extended/electromagnetic/TestEm3/README @@ -1,4 +1,4 @@ -$Id: README,v 1.7 2002/06/05 12:13:04 maire Exp $ +$Id: README,v 1.8 2002/12/12 11:19:32 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -128,21 +128,18 @@ $Id: README,v 1.7 2002/06/05 12:13:04 maire Exp $ Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. - 8- Using the Anaphe implementation of the AIDA 2.2 histograms: + 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- - In order to use the Anaphe implementation of the AIDA 2.2 interfaces, - prepare some environment variables by source-ing one of the following - startup scripts (depending on your compiler version): + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config - # gcc-2.95.2 - source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) - # egcs_1.1.2 (aka gcc 2.91.66) - source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh - - At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a - more recent release, check http:/cern.ch/anaphe for more information. - - After this, you will have access to the 'aida-config' command which - is used in the GNUmakefile. + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.cc b/examples/extended/electromagnetic/TestEm3/TestEm3.cc index c3735aa6c9..ff4bccc909 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.cc +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm3.cc,v 1.7 2001/10/22 10:58:40 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.in b/examples/extended/electromagnetic/TestEm3/TestEm3.in index a23112cd2b..384b85277c 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.in +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.in @@ -1,4 +1,4 @@ -# $Id: TestEm3.in,v 1.4 2001/11/28 17:54:46 maire Exp $ +# $Id: TestEm3.in,v 1.5 2002/12/12 11:19:32 maire Exp $ # # Macro file for "exampleN03.cc" # (can be run in batch, without graphic) @@ -10,7 +10,7 @@ /run/initialize # /run/verbose 2 -/event/printModulo 50 +/testem/event/printModulo 50 # /gun/particle e- /gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index c8c99287c2..bab788a53c 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,13 +13,14 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) # /run/initialize -***** Table : Nb of materials = 20 ***** +***** Table : Nb of materials = 21 ***** Material: liquidH2 density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.905 m ---> Element: liquidH2 Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % @@ -73,6 +74,10 @@ Current available graphics systems are: ---> 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: Air20 density: 1.205 mg/cm3 temperature: 293.00 K pressure: 1.00 atm RadLength: 305.277 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: 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.50 % Abundance 44.42 % @@ -177,6 +182,7 @@ Cut in range quartz 500 mum 500 mum NemaG10 500 mum 500 mum Air 500 mum 500 mum + Air20 500 mum 500 mum Aerogel 500 mum 500 mum CarbonicGas 500 mum 500 mum WaterSteam 500 mum 500 mum @@ -198,6 +204,7 @@ Cut in energy quartz 4.01 keV 330 keV NemaG10 3.07 keV 292 keV Air 990 eV 990 eV + Air20 990 eV 990 eV Aerogel 1.27 keV 79.2 keV CarbonicGas 990 eV 8.52 keV WaterSteam 990 eV 990 eV @@ -206,7 +213,7 @@ Cut in energy =================================================== # /run/verbose 2 -/event/printModulo 50 +/testem/event/printModulo 50 # /gun/particle e- /gun/energy 1 GeV @@ -221,19 +228,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.01 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 Start Run processing. ---> Begin Of Event: 0 @@ -242,19 +249,19 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=43.96s Real=73.89s Sys=8.8s + User=42.38s Real=52.44s Sys=8.28s ------------------------------------------------------------- total energy dep total tracklen - Absorber0 ( Lead) : 812.93 MeV +- 14.83 MeV 57.12 cm +- 1.15 cm - Absorber1 ( liquidArgon) : 176.46 MeV +- 13.64 MeV 88.10 cm +- 7.16 cm + Absorber0 ( Lead) : 815.39 MeV +- 16.99 MeV 57.36 cm +- 1.32 cm + Absorber1 ( liquidArgon) : 172.19 MeV +- 14.85 MeV 85.98 cm +- 7.64 cm ------------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1367155280, 999623368 + Current couple of seeds = 666545083, 1319593894 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm3/exo3q1.mac b/examples/extended/electromagnetic/TestEm3/exo3q1.mac index aac38d2ed1..12c1de398a 100644 --- a/examples/extended/electromagnetic/TestEm3/exo3q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo3q1.mac @@ -1,4 +1,4 @@ -# $Id: exo3q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo3q1.mac,v 1.2 2002/12/12 11:19:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,14 +9,14 @@ /run/particle/setCut 2 cm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Aluminium 10 cm -/calor/setSizeYZ 10 cm -/calor/setField 5 tesla -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Aluminium 10 cm +/testem/det/setSizeYZ 10 cm +/testem/det/setField 5 tesla +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # @@ -27,7 +27,7 @@ /process/inactivate phot /process/inactivate annihil # -/tracking/stepMax 1 mm +/testem/tracking/stepMax 1 mm # /gun/particle gamma /gun/energy 200 MeV diff --git a/examples/extended/electromagnetic/TestEm3/exo3q2.mac b/examples/extended/electromagnetic/TestEm3/exo3q2.mac index 2b3a60fc22..82a4303595 100644 --- a/examples/extended/electromagnetic/TestEm3/exo3q2.mac +++ b/examples/extended/electromagnetic/TestEm3/exo3q2.mac @@ -1,4 +1,4 @@ -# $Id: exo3q2.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo3q2.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -8,14 +8,14 @@ # /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Aluminium 10 cm -/calor/setSizeYZ 10 cm -/calor/setField 5 tesla -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Aluminium 10 cm +/testem/det/setSizeYZ 10 cm +/testem/det/setField 5 tesla +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # @@ -26,7 +26,7 @@ /process/inactivate compt /process/inactivate phot # -/tracking/stepMax 1 cm +/testem/tracking/stepMax 1 cm # /gun/particle e- /gun/energy 200 MeV diff --git a/examples/extended/electromagnetic/TestEm3/exo3q3.mac b/examples/extended/electromagnetic/TestEm3/exo3q3.mac index 80866c0e20..343eca0d9a 100644 --- a/examples/extended/electromagnetic/TestEm3/exo3q3.mac +++ b/examples/extended/electromagnetic/TestEm3/exo3q3.mac @@ -1,4 +1,4 @@ -# $Id: exo3q3.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo3q3.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -8,14 +8,14 @@ # /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Aluminium 10 cm -/calor/setSizeYZ 10 cm -/calor/setField 5 tesla -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Aluminium 10 cm +/testem/det/setSizeYZ 10 cm +/testem/det/setField 5 tesla +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # @@ -27,16 +27,16 @@ /run/particle/setCut 50 cm /run/initialize # -/tracking/stepMax 1 mm +/testem/tracking/stepMax 1 mm # /gun/particle gamma /gun/energy 200 MeV # #/run/beamOn 1 # -#/calor/setAbsor 0 Aluminium 20 cm -#/calor/setSizeYZ 20 cm -#/calor/update +#/testem/det/setAbsor 0 Aluminium 20 cm +#/testem/det/setSizeYZ 20 cm +#/testem/det/update # #/gun/position -12 0 0 cm # diff --git a/examples/extended/electromagnetic/TestEm3/exo4q1.mac b/examples/extended/electromagnetic/TestEm3/exo4q1.mac index 8b9d2c537e..085acf969c 100644 --- a/examples/extended/electromagnetic/TestEm3/exo4q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo4q1.mac @@ -1,4 +1,4 @@ -# $Id: exo4q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo4q1.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,13 +9,13 @@ /run/particle/setCut 2 cm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Water 10 cm -/calor/setSizeYZ 10 cm -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Water 10 cm +/testem/det/setSizeYZ 10 cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # @@ -23,7 +23,7 @@ /process/inactivate msc /process/inactivate eBrem # -/gun/rndm 0.9 +/testem/gun/rndm 0.9 # /gun/particle e- /gun/energy 16 MeV diff --git a/examples/extended/electromagnetic/TestEm3/exo4q3.mac b/examples/extended/electromagnetic/TestEm3/exo4q3.mac index 530830a932..a1d518f7ee 100644 --- a/examples/extended/electromagnetic/TestEm3/exo4q3.mac +++ b/examples/extended/electromagnetic/TestEm3/exo4q3.mac @@ -1,4 +1,4 @@ -# $Id: exo4q3.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo4q3.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,13 +9,13 @@ /run/particle/setCut 10 mum /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Aluminium 1 cm -/calor/setSizeYZ 1 cm -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Aluminium 1 cm +/testem/det/setSizeYZ 1 cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # diff --git a/examples/extended/electromagnetic/TestEm3/exo5q1.mac b/examples/extended/electromagnetic/TestEm3/exo5q1.mac index 3460ed5d08..43b83e6920 100644 --- a/examples/extended/electromagnetic/TestEm3/exo5q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo5q1.mac @@ -1,4 +1,4 @@ -# $Id: exo5q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo5q1.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,13 +9,13 @@ /run/particle/setCut 5 cm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Aluminium 10 cm -/calor/setSizeYZ 10 cm -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Aluminium 10 cm +/testem/det/setSizeYZ 10 cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # diff --git a/examples/extended/electromagnetic/TestEm3/exo5q2.mac b/examples/extended/electromagnetic/TestEm3/exo5q2.mac index ad93c457da..f4fec0b842 100644 --- a/examples/extended/electromagnetic/TestEm3/exo5q2.mac +++ b/examples/extended/electromagnetic/TestEm3/exo5q2.mac @@ -1,4 +1,4 @@ -# $Id: exo5q2.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo5q2.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,17 +9,17 @@ /run/particle/setCut 5 cm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Tungsten 50 mum -/calor/setSizeYZ 70 mum -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Tungsten 50 mum +/testem/det/setSizeYZ 70 mum +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # /gun/particle e- /gun/energy 600 keV # -/tracking/stepMax 1 mum +/testem/tracking/stepMax 1 mum diff --git a/examples/extended/electromagnetic/TestEm3/exo6q1.mac b/examples/extended/electromagnetic/TestEm3/exo6q1.mac index 24e0691813..1674df42da 100644 --- a/examples/extended/electromagnetic/TestEm3/exo6q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo6q1.mac @@ -1,4 +1,4 @@ -# $Id: exo6q1.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo6q1.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,14 +9,14 @@ /run/particle/setCut 7 cm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Iron 10 m -/calor/setSizeYZ 10 m -/calor/setField 5 tesla -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Iron 10 m +/testem/det/setSizeYZ 10 m +/testem/det/setField 5 tesla +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # diff --git a/examples/extended/electromagnetic/TestEm3/exo6q2.mac b/examples/extended/electromagnetic/TestEm3/exo6q2.mac index 43d1c8da7a..f7f3ae85e5 100644 --- a/examples/extended/electromagnetic/TestEm3/exo6q2.mac +++ b/examples/extended/electromagnetic/TestEm3/exo6q2.mac @@ -1,4 +1,4 @@ -# $Id: exo6q2.mac,v 1.1 2002/02/14 14:20:45 maire Exp $ +# $Id: exo6q2.mac,v 1.2 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -9,13 +9,13 @@ /run/particle/setCut 10 cm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 1 -/calor/setAbsor 0 Iron 10 m -/calor/setSizeYZ 10 m -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Iron 10 m +/testem/det/setSizeYZ 10 m +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /control/execute vis.mac # diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3CalorHit.hh b/examples/extended/electromagnetic/TestEm3/include/Em3CalorHit.hh index d1de04307a..ce1331a639 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Em3CalorHit.hh,v 1.4 2001/10/22 10:58:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh index 3a37c55736..e7d49492bf 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Em3CalorimeterSD.hh,v 1.4 2001/10/22 10:58:47 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh index bc217df025..28ab8db237 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em3DetectorConstruction.hh,v 1.5 2001/10/22 10:58:47 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh index fa40f87b11..0c7cc38c61 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3DetectorMessenger.hh,v 1.5 2001/10/22 10:58:48 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3DetectorMessenger.hh,v 1.6 2002/12/12 11:19:37 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -55,7 +55,7 @@ class Em3DetectorMessenger: public G4UImessenger private: Em3DetectorConstruction* Em3Detector; - G4UIdirectory* Em3detDir; + G4UIdirectory* testemDir; G4UIcmdWithADoubleAndUnit* SizeYZCmd; G4UIcmdWithAnInteger* NbLayersCmd; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh index ce459374ae..10543cd361 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em3EventAction.hh,v 1.5 2001/10/22 10:58:48 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh index 343c659fd8..cd73bcb87f 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em3EventActionMessenger.hh,v 1.4 2001/10/22 10:58:48 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh index 5ed5e93ec9..29359102aa 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em3PhysicsList.hh,v 1.6 2002/02/14 14:20:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh index 9b0e1917c8..dca9d09c60 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em3PhysicsListMessenger.hh,v 1.3 2001/10/22 10:58:49 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh index f78b39c30c..80054e4e69 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em3PrimaryGeneratorAction.hh,v 1.6 2001/10/22 10:58:50 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh index 44c09518bd..7a344cf5b5 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em3PrimaryGeneratorMessenger.hh,v 1.5 2001/10/22 10:58:50 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh index 68d88a06bf..3d102e2608 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3RunAction.hh,v 1.10 2002/06/05 12:13:04 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3RunAction.hh,v 1.11 2002/12/12 11:19:37 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -43,9 +43,11 @@ class G4Run; class Em3RunActionMessenger; #ifndef G4NOHIST +namespace AIDA { class ITree; class IHistogramFactory; class IHistogram1D; +} #endif class Em3RunAction : public G4UserRunAction @@ -61,7 +63,7 @@ class Em3RunAction : public G4UserRunAction void fillPerEvent(G4int,G4double,G4double); #ifndef G4NOHIST - IHistogram1D* GetHisto(G4int id) {return histo[id];} + AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif void SetHisto (G4int id, G4int nbins, G4double vmin, G4double vmax); @@ -80,9 +82,9 @@ class Em3RunAction : public G4UserRunAction Em3RunActionMessenger* runMessenger; #ifndef G4NOHIST - ITree* tree; - IHistogramFactory* hf; - IHistogram1D* histo[MaxAbsor]; + AIDA::ITree* tree; + AIDA::IHistogramFactory* hf; + AIDA::IHistogram1D* histo[MaxAbsor]; #endif }; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh index dd3289cc3f..2e53836fae 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em3RunActionMessenger.hh,v 1.7 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh b/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh index 9a1d1269c1..1b6fa860c1 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em3SteppingAction.hh,v 1.5 2001/10/22 10:58:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh index fc4200d3da..d02b79b5a9 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em3SteppingVerbose.hh,v 1.7 2001/10/22 10:58:52 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh b/examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh index 9a971277b8..f2dbd1634f 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh +++ b/examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em3VisManager.hh,v 1.4 2001/10/22 10:58:53 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/run02.mac b/examples/extended/electromagnetic/TestEm3/run02.mac index ef973a37d9..8a83132eb1 100644 --- a/examples/extended/electromagnetic/TestEm3/run02.mac +++ b/examples/extended/electromagnetic/TestEm3/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run02.mac,v 1.5 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -10,16 +10,16 @@ /run/particle/setCut 100 mum /run/initialize # -/calor/setNbOfLayers 50 -/calor/setNbOfAbsor 2 -/calor/setAbsor 0 Tungsten 2 mm -/calor/setAbsor 1 Silicium 0.3 mm -/calor/update +/testem/det/setNbOfLayers 50 +/testem/det/setNbOfAbsor 2 +/testem/det/setAbsor 0 Tungsten 2 mm +/testem/det/setAbsor 1 Silicium 0.3 mm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 100 +/testem/event/printModulo 100 # /gun/particle e- /gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm3/run03.mac b/examples/extended/electromagnetic/TestEm3/run03.mac index 485e64945f..0509e8a98b 100644 --- a/examples/extended/electromagnetic/TestEm3/run03.mac +++ b/examples/extended/electromagnetic/TestEm3/run03.mac @@ -1,4 +1,4 @@ -# $Id: run03.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run03.mac,v 1.5 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -13,17 +13,17 @@ /run/particle/setCut 1 mm /run/initialize # -/calor/setNbOfLayers 15 -/calor/setNbOfAbsor 2 -/calor/setAbsor 0 Iron 23.08 mm -/calor/setAbsor 1 Silicium 0.4 mm -/calor/setSizeYZ 40. cm -/calor/update +/testem/det/setNbOfLayers 15 +/testem/det/setNbOfAbsor 2 +/testem/det/setAbsor 0 Iron 23.08 mm +/testem/det/setAbsor 1 Silicium 0.4 mm +/testem/det/setSizeYZ 40. cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 10 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 6 GeV diff --git a/examples/extended/electromagnetic/TestEm3/run04.mac b/examples/extended/electromagnetic/TestEm3/run04.mac index 44f936ad97..a5e3f9bf70 100644 --- a/examples/extended/electromagnetic/TestEm3/run04.mac +++ b/examples/extended/electromagnetic/TestEm3/run04.mac @@ -1,4 +1,4 @@ -# $Id: run04.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run04.mac,v 1.5 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -13,18 +13,18 @@ /run/particle/setCut 1 mm /run/initialize # -/calor/setNbOfLayers 15 -/calor/setNbOfAbsor 3 -/calor/setAbsor 0 Lead 13.00 mm -/calor/setAbsor 1 Iron 10.08 mm -/calor/setAbsor 2 Silicium 0.4 mm -/calor/setSizeYZ 40. cm -/calor/update +/testem/det/setNbOfLayers 15 +/testem/det/setNbOfAbsor 3 +/testem/det/setAbsor 0 Lead 13.00 mm +/testem/det/setAbsor 1 Iron 10.08 mm +/testem/det/setAbsor 2 Silicium 0.4 mm +/testem/det/setSizeYZ 40. cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 10 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 6 GeV diff --git a/examples/extended/electromagnetic/TestEm3/run05.mac b/examples/extended/electromagnetic/TestEm3/run05.mac index 23c220ae9f..f7f7f49da6 100644 --- a/examples/extended/electromagnetic/TestEm3/run05.mac +++ b/examples/extended/electromagnetic/TestEm3/run05.mac @@ -1,4 +1,4 @@ -# $Id: run05.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run05.mac,v 1.5 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -12,19 +12,19 @@ /run/particle/setCut 1 mm /run/initialize # -/calor/setNbOfLayers 10 -/calor/setNbOfAbsor 4 -/calor/setAbsor 0 Lead 19.0 mm -/calor/setAbsor 1 NemaG10 0.2 mm -/calor/setAbsor 2 Silicium 0.4 mm -/calor/setAbsor 3 NemaG10 1.0 mm -/calor/setSizeYZ 16. cm -/calor/update +/testem/det/setNbOfLayers 10 +/testem/det/setNbOfAbsor 4 +/testem/det/setAbsor 0 Lead 19.0 mm +/testem/det/setAbsor 1 NemaG10 0.2 mm +/testem/det/setAbsor 2 Silicium 0.4 mm +/testem/det/setAbsor 3 NemaG10 1.0 mm +/testem/det/setSizeYZ 16. cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 10 +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 6 GeV diff --git a/examples/extended/electromagnetic/TestEm3/run06.mac b/examples/extended/electromagnetic/TestEm3/run06.mac index 6813e4a65b..adc5b372e8 100644 --- a/examples/extended/electromagnetic/TestEm3/run06.mac +++ b/examples/extended/electromagnetic/TestEm3/run06.mac @@ -1,4 +1,4 @@ -# $Id: run06.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run06.mac,v 1.5 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -12,20 +12,20 @@ /run/particle/setCut 1 mm /run/initialize # -/calor/setNbOfLayers 10 -/calor/setNbOfAbsor 4 -/calor/setAbsor 0 Iron 35.7 mm -/calor/setAbsor 1 NemaG10 0.2 mm -/calor/setAbsor 2 Silicium 0.4 mm -/calor/setAbsor 3 NemaG10 1.0 mm -/calor/setSizeYZ 16. cm -/calor/update +/testem/det/setNbOfLayers 10 +/testem/det/setNbOfAbsor 4 +/testem/det/setAbsor 0 Iron 35.7 mm +/testem/det/setAbsor 1 NemaG10 0.2 mm +/testem/det/setAbsor 2 Silicium 0.4 mm +/testem/det/setAbsor 3 NemaG10 1.0 mm +/testem/det/setSizeYZ 16. cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/drawTracks none -/event/printModulo 10 +/testem/event/drawTracks none +/testem/event/printModulo 10 # /gun/particle e- /gun/energy 6 GeV diff --git a/examples/extended/electromagnetic/TestEm3/run07.mac b/examples/extended/electromagnetic/TestEm3/run07.mac index 217123e08d..ad9b8602d6 100644 --- a/examples/extended/electromagnetic/TestEm3/run07.mac +++ b/examples/extended/electromagnetic/TestEm3/run07.mac @@ -1,4 +1,4 @@ -# $Id: run07.mac,v 1.5 2002/02/14 14:20:45 maire Exp $ +# $Id: run07.mac,v 1.6 2002/12/12 11:19:33 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -10,19 +10,19 @@ /run/particle/setCut 1.5 mm /run/initialize # -/calor/setNbOfLayers 2 -/calor/setNbOfAbsor 2 -/calor/setAbsor 0 liquidArgon 4 mm -/calor/setAbsor 1 Lead 4 mm -/calor/setSizeYZ 16 mm -/calor/update +/testem/det/setNbOfLayers 2 +/testem/det/setNbOfAbsor 2 +/testem/det/setAbsor 0 liquidArgon 4 mm +/testem/det/setAbsor 1 Lead 4 mm +/testem/det/setSizeYZ 16 mm +/testem/det/update # /process/inactivate msc # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 100 +/testem/event/printModulo 100 # /gun/particle proton /gun/energy 500 MeV diff --git a/examples/extended/electromagnetic/TestEm3/run08.mac b/examples/extended/electromagnetic/TestEm3/run08.mac new file mode 100644 index 0000000000..9c35d9013c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/run08.mac @@ -0,0 +1,29 @@ +# $Id: run08.mac,v 1.2 2002/12/12 11:19:34 maire Exp $ +# +# Macro file for "TestEm3.cc" +# (can be run in batch, without graphic) +# +# Iron 1 layer; proton 500 MeV +# +/control/verbose 2 +# +/run/particle/setCut 1 mm +/run/initialize +# +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 1 +/testem/det/setAbsor 0 Iron 5 cm +/testem/det/setSizeYZ 4 cm +/testem/det/update +# +/process/inactivate msc +# +/testem/gun/setDefault +# +/run/verbose 2 +/testem/event/printModulo 100 +/testem/tracking/stepMax 2 cm +# +/gun/particle proton +/gun/energy 500 MeV +/run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm3/run12.draw b/examples/extended/electromagnetic/TestEm3/run12.draw index 9050a4e1b4..daf3c16a5d 100644 --- a/examples/extended/electromagnetic/TestEm3/run12.draw +++ b/examples/extended/electromagnetic/TestEm3/run12.draw @@ -1,4 +1,4 @@ -# $Id: run12.draw,v 1.3 2001/11/05 15:28:39 maire Exp $ +# $Id: run12.draw,v 1.4 2002/12/12 11:19:34 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -11,14 +11,14 @@ /run/particle/setCut 1 mm /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 2 -/calor/setAbsor 0 Iron 1 cm -/calor/setAbsor 1 Scintillator 1 cm -/calor/setSizeYZ 2 cm -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 2 +/testem/det/setAbsor 0 Iron 1 cm +/testem/det/setAbsor 1 Scintillator 1 cm +/testem/det/setSizeYZ 2 cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 /tracking/verbose 1 diff --git a/examples/extended/electromagnetic/TestEm3/run15.mac b/examples/extended/electromagnetic/TestEm3/run15.mac index b29df3ef12..c8df59edc8 100644 --- a/examples/extended/electromagnetic/TestEm3/run15.mac +++ b/examples/extended/electromagnetic/TestEm3/run15.mac @@ -1,4 +1,4 @@ -# $Id: run15.mac,v 1.4 2001/11/05 15:28:39 maire Exp $ +# $Id: run15.mac,v 1.5 2002/12/12 11:19:34 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -10,22 +10,22 @@ /run/particle/setCut 10 mum /run/initialize # -/calor/setNbOfLayers 20 -/calor/setNbOfAbsor 2 -/calor/setAbsor 0 Iron 14 mm -/calor/setAbsor 1 Scintillator 3 mm -/calor/setSizeYZ 30 cm -/calor/update +/testem/det/setNbOfLayers 20 +/testem/det/setNbOfAbsor 2 +/testem/det/setAbsor 0 Iron 14 mm +/testem/det/setAbsor 1 Scintillator 3 mm +/testem/det/setSizeYZ 30 cm +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 1000 +/testem/event/printModulo 1000 # /gun/particle mu+ /gun/energy 20 GeV # -/run/setHisto 0 100 0. 1.e-1 -/run/setHisto 1 100 0. 5.e-3 +/testem/run/setHisto 0 100 0. 1.e-1 +/testem/run/setHisto 1 100 0. 5.e-3 # /run/beamOn 20000 diff --git a/examples/extended/electromagnetic/TestEm3/run16.mac b/examples/extended/electromagnetic/TestEm3/run16.mac index af1dc3abb6..f13f99f0bd 100644 --- a/examples/extended/electromagnetic/TestEm3/run16.mac +++ b/examples/extended/electromagnetic/TestEm3/run16.mac @@ -1,4 +1,4 @@ -# $Id: run16.mac,v 1.4 2001/11/05 15:28:40 maire Exp $ +# $Id: run16.mac,v 1.5 2002/12/12 11:19:34 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -12,22 +12,23 @@ /run/particle/setCut 1 mum /run/initialize # -/calor/setNbOfLayers 1 -/calor/setNbOfAbsor 3 -/calor/setAbsor 0 Aluminium 170 mum -/calor/setAbsor 1 Gold 23 mum -/calor/setAbsor 2 Aluminium 850 mum -/calor/setSizeYZ 1050 mum -/calor/update +/testem/det/setNbOfLayers 1 +/testem/det/setNbOfAbsor 3 +/testem/det/setAbsor 0 Aluminium 170 mum +/testem/det/setAbsor 1 Gold 23 mum +/testem/det/setAbsor 2 Aluminium 850 mum +/testem/det/setSizeYZ 1050 mum +/testem/det/update # -/gun/setDefault +/testem/gun/setDefault # /run/verbose 2 -/event/printModulo 1000 +/testem/event/printModulo 1000 # /gun/particle e- /gun/energy 1 MeV # -/tracking/stepMax 5 mum -/gun/rndm 0.8 +/testem/tracking/stepMax 5 mum +/testem/gun/rndm 0.8 +# /run/beamOn 10 diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc b/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc index 2bc7a3fab3..480486786d 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Em3CalorHit.cc,v 1.4 2001/10/22 10:58:54 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc index ac4489a07a..cf09c68d19 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Em3CalorimeterSD.cc,v 1.4 2001/10/22 10:58:54 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc index a27732c558..47a1ecf52b 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3DetectorConstruction.cc,v 1.5 2001/10/22 10:58:55 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3DetectorConstruction.cc,v 1.6 2002/12/12 11:19:37 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -220,6 +220,14 @@ G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); Air->AddElement(N, fractionmass=0.7); Air->AddElement(O, fractionmass=0.3); +density = 1.205*mg/cm3; +pressure = 1.*atmosphere; +temperature = 293.*kelvin; +G4Material* Air20 = new G4Material(name="Air20" , density, ncomponents=2, + kStateGas,temperature,pressure); +Air20->AddElement(N, fractionmass=0.7); +Air20->AddElement(O, fractionmass=0.3); + // // define a material from elements and/or others materials (mixture of mixtures) // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc index bc17965031..7cadb24665 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3DetectorMessenger.cc,v 1.6 2001/11/05 15:28:40 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3DetectorMessenger.cc,v 1.8 2002/12/12 11:19:38 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -44,29 +44,29 @@ Em3DetectorMessenger::Em3DetectorMessenger(Em3DetectorConstruction * Em3Det) :Em3Detector(Em3Det) { - Em3detDir = new G4UIdirectory("/calor/"); - Em3detDir->SetGuidance("Em3 detector control."); + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance("UI commands specific to this example"); - SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeYZ",this); + SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setSizeYZ",this); SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); SizeYZCmd->SetParameterName("Size",false); SizeYZCmd->SetRange("Size>0."); SizeYZCmd->SetUnitCategory("Length"); - SizeYZCmd->AvailableForStates(PreInit,Idle); + SizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - NbLayersCmd = new G4UIcmdWithAnInteger("/calor/setNbOfLayers",this); + NbLayersCmd = new G4UIcmdWithAnInteger("/testem/det/setNbOfLayers",this); NbLayersCmd->SetGuidance("Set number of layers."); NbLayersCmd->SetParameterName("NbLayers",false); NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); - NbLayersCmd->AvailableForStates(PreInit,Idle); + NbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - NbAbsorCmd = new G4UIcmdWithAnInteger("/calor/setNbOfAbsor",this); + NbAbsorCmd = new G4UIcmdWithAnInteger("/testem/det/setNbOfAbsor",this); NbAbsorCmd->SetGuidance("Set number of Absorbers."); NbAbsorCmd->SetParameterName("NbAbsor",false); NbAbsorCmd->SetRange("NbAbsor>0"); - NbAbsorCmd->AvailableForStates(PreInit,Idle); + NbAbsorCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - AbsorCmd = new G4UIcommand("/calor/setAbsor",this); + AbsorCmd = new G4UIcommand("/testem/det/setAbsor",this); AbsorCmd->SetGuidance("Set the absor nb, the material, the thickness."); AbsorCmd->SetGuidance(" absor number : from 0 to NbOfAbsor-1"); AbsorCmd->SetGuidance(" material name"); @@ -92,27 +92,27 @@ Em3DetectorMessenger::Em3DetectorMessenger(Em3DetectorConstruction * Em3Det) unitPrm->SetParameterCandidates(unitList); AbsorCmd->SetParameter(unitPrm); // - AbsorCmd->AvailableForStates(Idle); + AbsorCmd->AvailableForStates(G4State_Idle); - MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this); + 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(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); - UpdateCmd = new G4UIcmdWithoutParameter("/calor/update",this); + 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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); - MaxStepCmd = new G4UIcmdWithADoubleAndUnit("/tracking/stepMax",this); + MaxStepCmd = new G4UIcmdWithADoubleAndUnit("/testem/tracking/stepMax",this); MaxStepCmd->SetGuidance("Set max allowed step size"); MaxStepCmd->SetParameterName("Size",false); MaxStepCmd->SetRange("Size>0."); MaxStepCmd->SetUnitCategory("Length"); - MaxStepCmd->AvailableForStates(Idle); + MaxStepCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -126,7 +126,7 @@ Em3DetectorMessenger::~Em3DetectorMessenger() delete MagFieldCmd; delete UpdateCmd; delete MaxStepCmd; - delete Em3detDir; + delete testemDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc index a3f23f2ffd..53f7392426 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em3EventAction.cc,v 1.13 2002/06/05 12:13:04 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc index 4a25af1d1e..7db5daf384 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3EventActionMessenger.cc,v 1.5 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3EventActionMessenger.cc,v 1.7 2002/12/12 11:19:38 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,19 +41,19 @@ Em3EventActionMessenger::Em3EventActionMessenger(Em3EventAction* EvAct) :eventAction(EvAct) { - DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); + DrawCmd = new G4UIcmdWithAString("/testem/event/drawTracks",this); DrawCmd->SetGuidance("Draw the tracks in the event"); DrawCmd->SetGuidance(" Choice : none, charged(default), all"); DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); - PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc index c7f848e401..23dd5ed711 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3PhysicsList.cc,v 1.8 2002/02/14 14:20:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3PhysicsList.cc,v 1.9 2002/12/12 11:19:38 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -217,7 +217,6 @@ void Em3PhysicsList::ConstructEM() } } - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4Decay.hh" diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc index ffd0013536..b83bf8284c 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3PhysicsListMessenger.cc,v 1.3 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3PhysicsListMessenger.cc,v 1.5 2002/12/12 11:19:38 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -39,26 +39,26 @@ Em3PhysicsListMessenger::Em3PhysicsListMessenger(Em3PhysicsList* pPhys) :pPhysicsList(pPhys) { - gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setGCut",this); + 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(PreInit,Idle); + gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - electCutCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setECut",this); + 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(PreInit,Idle); + electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - protoCutCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setPCut",this); + protoCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this); protoCutCmd->SetGuidance("Set proton cut."); protoCutCmd->SetParameterName("Pcut",false); protoCutCmd->SetUnitCategory("Length"); protoCutCmd->SetRange("Pcut>0.0"); - protoCutCmd->AvailableForStates(PreInit,Idle); + protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc index 84384a9c53..f76ccaeec6 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em3PrimaryGeneratorAction.cc,v 1.5 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc index 5189d41ee0..9981d9acfb 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3PrimaryGeneratorMessenger.cc,v 1.5 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3PrimaryGeneratorMessenger.cc,v 1.7 2002/12/12 11:19:38 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,16 +41,16 @@ Em3PrimaryGeneratorMessenger::Em3PrimaryGeneratorMessenger( Em3PrimaryGeneratorAction* Em3Gun) :Em3Action(Em3Gun) { - DefaultCmd = new G4UIcmdWithoutParameter("/gun/setDefault",this); + DefaultCmd = new G4UIcmdWithoutParameter("/testem/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator"); - DefaultCmd->AvailableForStates(PreInit,Idle); + DefaultCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - RndmCmd = new G4UIcmdWithADouble("/gun/rndm",this); + RndmCmd = new G4UIcmdWithADouble("/testem/gun/rndm",this); RndmCmd->SetGuidance("random lateral extension on the beam"); RndmCmd->SetGuidance("in fraction of 0.5*sizeYZ"); RndmCmd->SetParameterName("rBeam",false); RndmCmd->SetRange("rBeam>=0.&&rBeam<=1."); - RndmCmd->AvailableForStates(Idle); + RndmCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc index 78a94a004f..e117bea924 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3RunAction.cc,v 1.17 2002/06/05 16:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3RunAction.cc,v 1.19 2002/12/12 11:19:38 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -44,15 +44,7 @@ #include "g4std/iomanip" #ifndef G4NOHIST - #include "AIDA/IAnalysisFactory.h" - #include "AIDA/ITreeFactory.h" - #include "AIDA/ITree.h" - #include "AIDA/IHistogramFactory.h" - #include "AIDA/IHistogram1D.h" - #include "AIDA/IAxis.h" - #include "AIDA/IAnnotation.h" - #include "AIDA/ITupleFactory.h" - #include "AIDA/ITuple.h" + #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -64,13 +56,15 @@ Em3RunAction::Em3RunAction(Em3DetectorConstruction* det) #ifndef G4NOHIST // Creating the analysis factory - IAnalysisFactory* af = AIDA_createAnalysisFactory(); + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); // Creating the tree factory - ITreeFactory* tf = af->createTreeFactory(); + AIDA::ITreeFactory* tf = af->createTreeFactory(); // Creating a tree mapped to an hbook file. - tree = tf->create("testem3.paw", false, false, "hbook"); + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create("testem3.paw", "hbook", readOnly, createNew); // Creating a histogram factory, whose histograms will be handled by the tree hf = af->createHistogramFactory(*tree); @@ -140,7 +134,7 @@ void Em3RunAction::bookHisto() for (G4int k=0; kcreate1D(id[k+1],title+id[k],nbins,vmin,vmax); + { histo[k] = hf->createHistogram1D(id[k+1],title+id[k],nbins,vmin,vmax); G4cout << "bookHisto: " << k << " " << histo[k] << G4endl; } } @@ -155,7 +149,7 @@ void Em3RunAction::SetHisto(G4int k,G4int nbins,G4double vmin,G4double vmax) // (re)book histograms const G4String title = "Edep/Ebeam in absorber "; const G4String id[] = {"0","1","2","3","4","5","6","7","8","9","10"}; - histo[k] = hf->create1D(id[k+1],title+id[k],nbins,vmin,vmax); + histo[k] = hf->createHistogram1D(id[k+1],title+id[k],nbins,vmin,vmax); G4cout << "SetHisto: " << k << " " << histo[k] << G4endl; #endif } @@ -175,8 +169,13 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) G4double MeanEAbs,rmsEAbs,MeanLAbs,rmsLAbs; - G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); - G4int oldprec = G4cout.precision(2); +#ifdef G4USE_STD_NAMESPACE + G4std::ios::fmtflags mode = G4cout.flags(); + G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#else + G4long mode = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#endif + G4int prec = G4cout.precision(2); G4cout << "\n-------------------------------------------------------------\n" << G4std::setw(51) << "total energy dep" @@ -205,8 +204,8 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) G4cout << "\n-------------------------------------------------------------"; G4cout << G4endl; - G4cout.setf(oldform,G4std::ios::floatfield); - G4cout.precision(oldprec); + G4cout.setf(mode,G4std::ios::floatfield); + G4cout.precision(prec); // show Rndm status HepRandom::showEngineStatus(); @@ -242,8 +241,13 @@ void Em3RunAction::PrintDedxTables() //print the kinetic energies // - G4long oldform = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); - G4int oldprec = G4cout.precision(3); +#ifdef G4USE_STD_NAMESPACE + G4std::ios::fmtflags mode = G4cout.flags(); + G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#else + long mode = G4cout.setf(G4std::ios::fixed,G4std::ios::floatfield); +#endif + G4int prec = G4cout.precision(3); G4cout << "\n kinetic energies \n "; for (G4int j=0; jSetGuidance("Set histo Edep/Ebeam in absorber k"); HistoCmd->SetGuidance(" histo=absor number : from 0 to NbOfAbsor-1"); HistoCmd->SetGuidance(" number of bins; Emin/Ebeam; Emax/Ebeam"); @@ -67,7 +67,7 @@ Em3RunActionMessenger::Em3RunActionMessenger(Em3RunAction* run) VmaxPrm->SetParameterRange("Vmax>=0.&&Vmax<=1."); HistoCmd->SetParameter(VmaxPrm); // - HistoCmd->AvailableForStates(Idle); + HistoCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc b/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc index 61c363674b..272b34e45a 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em3SteppingAction.cc,v 1.5 2001/10/22 10:58:59 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc index e7032a486f..c46e5861b6 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em3SteppingVerbose.cc,v 1.8 2001/10/22 10:58:59 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc b/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc old mode 100644 new mode 100755 index a76ecc9d2c..1faecdcc1b --- a/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc +++ b/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em3VisManager.cc,v 1.6 2001/11/15 13:09:47 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em3VisManager.cc,v 1.7 2002/11/13 21:39:52 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em3VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm3/vis.mac b/examples/extended/electromagnetic/TestEm3/vis.mac index bc4bf9c08e..1c81f4bfcf 100644 --- a/examples/extended/electromagnetic/TestEm3/vis.mac +++ b/examples/extended/electromagnetic/TestEm3/vis.mac @@ -26,4 +26,4 @@ /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate # -/event/drawTracks +/testem/event/drawTracks diff --git a/examples/extended/electromagnetic/TestEm4/GNUmakefile b/examples/extended/electromagnetic/TestEm4/GNUmakefile index cf738f3ba0..4877e29603 100644 --- a/examples/extended/electromagnetic/TestEm4/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm4/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/05/29 15:33:59 maire Exp $ +# $Id: GNUmakefile,v 1.8 2002/12/10 17:20:29 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -21,8 +21,8 @@ ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else # for the aida-config command see the README file - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm4/History b/examples/extended/electromagnetic/TestEm4/History index 129d926072..885f196b8e 100644 --- a/examples/extended/electromagnetic/TestEm4/History +++ b/examples/extended/electromagnetic/TestEm4/History @@ -1,4 +1,4 @@ -$Id: History,v 1.18 2002/06/05 17:35:11 maire Exp $ +$Id: History,v 1.19 2002/12/10 17:20:29 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,9 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10-12-02 mma (testem4-V04-01-00) +-migration to AIDA 3.0 +-UI commands under directory /testem/ 05-06-02 mma (testem4-V04-00-02) -do not delete histos in destructor diff --git a/examples/extended/electromagnetic/TestEm4/README b/examples/extended/electromagnetic/TestEm4/README index 38f1cb28b0..99cdf0db1f 100644 --- a/examples/extended/electromagnetic/TestEm4/README +++ b/examples/extended/electromagnetic/TestEm4/README @@ -1,4 +1,4 @@ -$Id: README,v 1.6 2002/05/29 15:32:27 maire Exp $ +$Id: README,v 1.7 2002/12/10 17:20:29 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -67,21 +67,18 @@ $Id: README,v 1.6 2002/05/29 15:32:27 maire Exp $ Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - 7- Using the Anaphe implementation of the AIDA 2.2 histograms: + 7- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- - In order to use the Anaphe implementation of the AIDA 2.2 interfaces, - prepare some environment variables by source-ing one of the following - startup scripts (depending on your compiler version): + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config - # gcc-2.95.2 - source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) - # egcs_1.1.2 (aka gcc 2.91.66) - source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh - - At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a - more recent release, check http:/cern.ch/anaphe for more information. - - After this, you will have access to the 'aida-config' command which - is used in the GNUmakefile. + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.cc b/examples/extended/electromagnetic/TestEm4/TestEm4.cc index 162cbaad52..6d16e7b5e6 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.cc +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm4.cc,v 1.7 2001/10/25 14:04:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.in b/examples/extended/electromagnetic/TestEm4/TestEm4.in index 46a0820bb2..8eff7bac9c 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.in +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.in @@ -1,4 +1,4 @@ -# $Id: TestEm4.in,v 1.2 2001/11/28 15:07:21 maire Exp $ +# $Id: TestEm4.in,v 1.3 2002/12/10 17:20:29 maire Exp $ # # Macro file for "TestEm4.cc" # @@ -7,6 +7,6 @@ /control/verbose 2 # /run/verbose 2 -/event/printModulo 10000 +/testem/event/printModulo 10000 # /run/beamOn 50000 diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index fdab6dc76c..39f474579c 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,6 +13,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -58,7 +59,7 @@ Cut in energy =================================================== # /run/verbose 2 -/event/printModulo 10000 +/testem/event/printModulo 10000 # /run/beamOn 50000 ### Run 0 start. @@ -86,11 +87,11 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 50000 - User=21s Real=6.6e+02s Sys=51s + User=18s Real=5.7e+02s Sys=47s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 156333429, 267719658 + Current couple of seeds = 293687261, 334388557 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh index 3efea9c123..b0b3987374 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em4DetectorConstruction.hh,v 1.4 2001/10/17 14:04:13 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh index a8c3e65587..01d8f0308a 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em4EventAction.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh index dabda2aad7..0536df67bd 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4EventActionMessenger.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em4EventActionMessenger.hh,v 1.5 2002/12/10 17:20:30 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -36,6 +36,7 @@ #include "G4UImessenger.hh" class Em4EventAction; +class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; @@ -50,7 +51,8 @@ class Em4EventActionMessenger: public G4UImessenger void SetNewValue(G4UIcommand*, G4String); private: - Em4EventAction* eventAction; + Em4EventAction* eventAction; + G4UIdirectory* testemDir; G4UIcmdWithAString* DrawCmd; G4UIcmdWithAnInteger* PrintCmd; }; diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh b/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh index 11d4c9f399..7cd4a4e4c5 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em4PhysicsList.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh index 0c382b9397..573b2c93b5 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em4PrimaryGeneratorAction.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh index de0d6496e0..f20bb67bff 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4RunAction.hh,v 1.9 2002/05/29 15:32:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em4RunAction.hh,v 1.10 2002/12/10 17:20:30 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -40,8 +40,10 @@ class G4Run; #ifndef G4NOHIST +namespace AIDA { class ITree; class IHistogram1D; +} #endif class Em4RunAction : public G4UserRunAction @@ -55,7 +57,7 @@ class Em4RunAction : public G4UserRunAction void EndOfRunAction(const G4Run*); #ifndef G4NOHIST - IHistogram1D* GetHisto(G4int id) {return histo[id];} + AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: @@ -63,8 +65,8 @@ class Em4RunAction : public G4UserRunAction private: #ifndef G4NOHIST - ITree* tree; // the tree should only be deleted at the end - IHistogram1D* histo[1]; // (after writing the histos to file) + AIDA::ITree* tree; //the tree should only be deleted at the end + AIDA::IHistogram1D* histo[1]; // (after writing the histos to file) #endif }; diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh b/examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh index 4a092e162d..8d406ce8d7 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em4SteppingAction.hh,v 1.3 2001/07/11 09:57:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm4/include/Em4SteppingVerbose.hh index f03cc93d8e..43d6fe102c 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em4SteppingVerbose.hh,v 1.7 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh b/examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh index bd3947f373..61c45f13df 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh +++ b/examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em4VisManager.hh,v 1.4 2001/10/17 14:04:15 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/run01.mac b/examples/extended/electromagnetic/TestEm4/run01.mac index b0600c5ccc..8b5c8f472d 100644 --- a/examples/extended/electromagnetic/TestEm4/run01.mac +++ b/examples/extended/electromagnetic/TestEm4/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.4 2001/11/28 15:07:22 maire Exp $ +# $Id: run01.mac,v 1.5 2002/12/10 17:20:29 maire Exp $ # # Macro file for "TestEm4.cc" # @@ -10,6 +10,6 @@ #/run/initialize # /run/verbose 2 -/event/printModulo 10000 +/testem/event/printModulo 10000 # /run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc index 4aa350c7fb..3b3ee8aff5 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em4DetectorConstruction.cc,v 1.4 2001/10/17 14:04:15 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc index 1eef89efae..5d32890dd4 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em4EventAction.cc,v 1.10 2002/05/29 15:32:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc index 7ba1997c79..9e0dc32641 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4EventActionMessenger.cc,v 1.4 2001/10/17 14:04:15 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em4EventActionMessenger.cc,v 1.6 2002/12/10 17:20:30 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -32,6 +32,7 @@ #include "Em4EventActionMessenger.hh" #include "Em4EventAction.hh" +#include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" #include "globals.hh" @@ -40,20 +41,23 @@ Em4EventActionMessenger::Em4EventActionMessenger(Em4EventAction* EvAct) :eventAction(EvAct) -{ - DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); +{ + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance("commands specific to this example"); + + 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(Idle); + DrawCmd->AvailableForStates(G4State_Idle); - PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,7 +65,8 @@ Em4EventActionMessenger::Em4EventActionMessenger(Em4EventAction* EvAct) Em4EventActionMessenger::~Em4EventActionMessenger() { delete DrawCmd; - delete PrintCmd; + delete PrintCmd; + delete testemDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc b/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc index aae0a655a4..9be9996eac 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Em4PhysicsList.cc,v 1.5 2001/10/17 14:04:15 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc index 025d500f11..90961a2b92 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em4PrimaryGeneratorAction.cc,v 1.5 2001/12/10 16:05:16 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc index 6ac9305008..d3ec564e54 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4RunAction.cc,v 1.14 2002/06/05 17:31:20 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em4RunAction.cc,v 1.15 2002/12/10 17:20:30 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -40,15 +40,7 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "AIDA/IAnalysisFactory.h" - #include "AIDA/ITreeFactory.h" - #include "AIDA/ITree.h" - #include "AIDA/IHistogramFactory.h" - #include "AIDA/IHistogram1D.h" - #include "AIDA/IAxis.h" - #include "AIDA/IAnnotation.h" - #include "AIDA/ITupleFactory.h" - #include "AIDA/ITuple.h" + #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -77,19 +69,21 @@ void Em4RunAction::bookHisto() { #ifndef G4NOHIST // Creating the analysis factory - IAnalysisFactory* af = AIDA_createAnalysisFactory(); + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); // Creating the tree factory - ITreeFactory* tf = af->createTreeFactory(); + AIDA::ITreeFactory* tf = af->createTreeFactory(); // Creating a tree mapped to an hbook file. - tree = tf->create("testem4.paw", false, false, "hbook"); + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create("testem4.paw", "hbook",readOnly, createNew); // Creating a histogram factory, whose histograms will be handled by the tree - IHistogramFactory* hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // Creating the histogram - histo[0]=hf->create1D("1","total energy deposit in C6F6 (MeV)",100,0.,10.); + histo[0]=hf->createHistogram1D("1","total energy deposit in C6F6(MeV)",100,0.,10.); delete hf; delete tf; diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc b/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc index 9549bb41a4..b047280320 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em4SteppingAction.cc,v 1.4 2001/10/17 14:04:16 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc index c99c039151..5fff89c372 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em4SteppingVerbose.cc,v 1.8 2001/10/17 14:04:16 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc b/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc old mode 100644 new mode 100755 index 4fa6f2d1a9..218aa09062 --- a/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc +++ b/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em4VisManager.cc,v 1.6 2001/11/15 13:09:48 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em4VisManager.cc,v 1.7 2002/11/13 21:39:56 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em4VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm4/vis.mac b/examples/extended/electromagnetic/TestEm4/vis.mac index f722a9c2f9..3fda4d86c6 100644 --- a/examples/extended/electromagnetic/TestEm4/vis.mac +++ b/examples/extended/electromagnetic/TestEm4/vis.mac @@ -26,4 +26,4 @@ /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate # -/event/drawTracks +/testem/event/drawTracks diff --git a/examples/extended/electromagnetic/TestEm5/GNUmakefile b/examples/extended/electromagnetic/TestEm5/GNUmakefile index bfb2d5077c..262a80166a 100644 --- a/examples/extended/electromagnetic/TestEm5/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm5/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/06/06 17:23:20 maire Exp $ +# $Id: GNUmakefile,v 1.8 2002/12/12 13:26:50 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -21,8 +21,8 @@ ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else # for the aida-config command see the README file - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index 64223066f3..c12a881505 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -1,4 +1,4 @@ -$Id: History,v 1.17 2002/06/06 17:23:21 maire Exp $ +$Id: History,v 1.20 2002/12/12 13:26:50 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +12-12-02 mma (testem5-V04-01-01) +-migration to aida 3.0 + +08-08-02 mma (testem5-V04-01-00) +-in RunAction: bookHisto() only at runID=0 +-in PhysicsList::SetMaxStep() : "Length" + 06-06-02 mma (testem5-V04-00-03) -old histograming package clhep/hist replaced by AIDA 2.2/anaphe. See README diff --git a/examples/extended/electromagnetic/TestEm5/README b/examples/extended/electromagnetic/TestEm5/README index d3bf2ad47c..63f6e0eed7 100644 --- a/examples/extended/electromagnetic/TestEm5/README +++ b/examples/extended/electromagnetic/TestEm5/README @@ -1,4 +1,4 @@ -$Id: README,v 1.6 2002/06/06 17:23:21 maire Exp $ +$Id: README,v 1.7 2002/12/12 13:26:50 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -147,23 +147,19 @@ $Id: README,v 1.6 2002/06/06 17:23:21 maire Exp $ Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. -8- Using the Anaphe implementation of the AIDA 2.2 histograms: + 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- - In order to use the Anaphe implementation of the AIDA 2.2 interfaces, - prepare some environment variables by source-ing one of the following - startup scripts (depending on your compiler version): + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config - # gcc-2.95.2 - source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh - - # egcs_1.1.2 (aka gcc 2.91.66) - source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh - - At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a - more recent release, check http:/cern.ch/anaphe for more information. - - After this, you will have access to the 'aida-config' command which - is used in the GNUmakefile. + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.cc b/examples/extended/electromagnetic/TestEm5/TestEm5.cc index ace2a20965..affd33c92e 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.cc +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm5.cc,v 1.7 2001/11/05 17:57:58 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index 478d674e44..1fdd01af79 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,6 +13,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -263,28 +264,28 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100000 - User=58s Real=1.1e+03s Sys=1.2e+02s + User=63s Real=1.7e+03s Sys=1.5e+02s ================== run summary ===================== end of Run TotNbofEvents = 100000 - mean charged track length in absorber=0.0209457 +- 1.48628e-05 mm + mean charged track length in absorber=0.0209219 +- 1.25732e-05 mm - mean energy deposit in absorber=0.006678 +- 2.04253e-05 MeV + mean energy deposit in absorber=0.00665304 +- 1.99526e-05 MeV - mean number of steps in absorber (charged) =0.05875 +- 0.00124032 - mean number of steps in absorber (neutral) =3e-05 +- 1.73202e-05 + mean number of steps in absorber (charged) =0.05666 +- 0.00118646 + mean number of steps in absorber (neutral) =1e-05 +- 9.99995e-06 - mean number of charged secondaries = 0.03788 +- 0.000638476 + mean number of charged secondaries = 0.0368 +- 0.000625985 mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.03788 and e+s =0 + mean number of e-s =0.0368 and e+s =0 (number) transmission coeff=1 reflection coeff=0 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2114771135, 1541635325 + Current couple of seeds = 1709217199, 336175147 ---------------------------------------- # Graphics systems deleted. diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh b/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh index 3237dd5905..3af13185f2 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Em5CalorHit.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh index 79b05bba37..7149ca4907 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Em5CalorimeterSD.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh index 513be81d49..43e668c029 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em5DetectorConstruction.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh index af9ecfcaf2..0e86829cfc 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em5DetectorMessenger.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh index ede42d7a70..f35e5f77ec 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em5EventAction.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh index 53cb5d1c84..513986c4a0 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em5EventActionMessenger.hh,v 1.4 2001/10/16 11:56:27 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh index 4adbc4c5b5..b3e2720fb3 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em5PhysicsList.hh,v 1.7 2002/06/05 15:43:42 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh index e41f71c4bc..572470187f 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em5PhysicsListMessenger.hh,v 1.6 2002/06/05 15:43:42 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh index 3616b6f341..c384ab18bf 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em5PrimaryGeneratorAction.hh,v 1.6 2002/06/05 15:43:42 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh index 5d2bce9726..94decab7fb 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em5PrimaryGeneratorMessenger.hh,v 1.6 2002/06/05 15:43:42 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh index 97f2de8434..7522947e0c 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5RunAction.hh,v 1.10 2002/06/06 17:23:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5RunAction.hh,v 1.11 2002/12/12 13:26:51 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -42,8 +42,10 @@ class Em5RunMessenger; class G4Run; #ifndef G4NOHIST +namespace AIDA { class ITree; class IHistogram1D; +} #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -113,7 +115,7 @@ class Em5RunAction : public G4UserRunAction G4double GetdTh() { return dTh;}; G4double GetdThback() { return dThback;}; #ifndef G4NOHIST - IHistogram1D* GetHisto(G4int id) {return histo[id];} + AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: @@ -125,8 +127,8 @@ class Em5RunAction : public G4UserRunAction G4String histName; #ifndef G4NOHIST - ITree* tree; - IHistogram1D* histo[10]; + AIDA::ITree* tree; + AIDA::IHistogram1D* histo[10]; #endif G4double EnergySumAbs,EnergySquareSumAbs; diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh index 1307180a21..ceacaab82b 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: Em5RunMessenger.hh,v 1.5 2001/11/28 16:08:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5StepCut.hh b/examples/extended/electromagnetic/TestEm5/include/Em5StepCut.hh index 0df201947f..6176837f93 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5StepCut.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: Em5StepCut.hh,v 1.5 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh index e4dc947b5c..72deb3d9c0 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em5SteppingAction.hh,v 1.5 2002/06/05 15:43:43 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh index 83da9de560..a42e663da0 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em5SteppingMessenger.hh,v 1.3 2001/07/11 09:57:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh index e376ddce90..2f4c5a94e6 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em5SteppingVerbose.hh,v 1.7 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5VisManager.hh b/examples/extended/electromagnetic/TestEm5/include/Em5VisManager.hh index 9d9fb2ac69..297b145b1f 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5VisManager.hh +++ b/examples/extended/electromagnetic/TestEm5/include/Em5VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em5VisManager.hh,v 1.4 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc b/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc index 0d15166b27..b84959947c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Em5CalorHit.cc,v 1.4 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc index 755bcd04f3..b6762e225d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Em5CalorimeterSD.cc,v 1.4 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc index 88039fdf0e..afb94b8319 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em5DetectorConstruction.cc,v 1.7 2001/10/16 11:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc index eabd7cee39..0ae4da1413 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5DetectorMessenger.cc,v 1.5 2001/11/05 17:58:02 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5DetectorMessenger.cc,v 1.6 2002/12/05 00:24:25 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -49,59 +49,59 @@ Em5DetectorMessenger::Em5DetectorMessenger(Em5DetectorConstruction * Em5Det) AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",false); - AbsMaterCmd->AvailableForStates(PreInit,Idle); + AbsMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); WorldMaterCmd = new G4UIcmdWithAString("/calor/setWorldMat",this); WorldMaterCmd->SetGuidance("Select Material of the World."); WorldMaterCmd->SetParameterName("wchoice",false); - WorldMaterCmd->AvailableForStates(PreInit,Idle); + WorldMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("SizeZ",false); AbsThickCmd->SetRange("SizeZ>0."); AbsThickCmd->SetUnitCategory("Length"); - AbsThickCmd->AvailableForStates(PreInit,Idle); + AbsThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); AbsSizYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsYZ",this); AbsSizYZCmd->SetGuidance("Set sizeYZ of the Absorber"); AbsSizYZCmd->SetParameterName("SizeYZ",false); AbsSizYZCmd->SetRange("SizeYZ>0."); AbsSizYZCmd->SetUnitCategory("Length"); - AbsSizYZCmd->AvailableForStates(PreInit,Idle); + AbsSizYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); AbsXposCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsXpos",this); AbsXposCmd->SetGuidance("Set X pos. of the Absorber"); AbsXposCmd->SetParameterName("Xpos",false); AbsXposCmd->SetUnitCategory("Length"); - AbsXposCmd->AvailableForStates(PreInit,Idle); + AbsXposCmd->AvailableForStates(G4State_PreInit,G4State_Idle); WorldXCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldX",this); WorldXCmd->SetGuidance("Set X size of the World"); WorldXCmd->SetParameterName("WSizeX",false); WorldXCmd->SetRange("WSizeX>0."); WorldXCmd->SetUnitCategory("Length"); - WorldXCmd->AvailableForStates(PreInit,Idle); + WorldXCmd->AvailableForStates(G4State_PreInit,G4State_Idle); WorldYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldYZ",this); WorldYZCmd->SetGuidance("Set sizeYZ of the World"); WorldYZCmd->SetParameterName("WSizeYZ",false); WorldYZCmd->SetRange("WSizeYZ>0."); WorldYZCmd->SetUnitCategory("Length"); - WorldYZCmd->AvailableForStates(PreInit,Idle); + WorldYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/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(PreInit,Idle); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc index cc29753bfa..f2f62de3dc 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em5EventAction.cc,v 1.9 2002/06/06 17:23:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc index e4d15939e5..3c931afbe1 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5EventActionMessenger.cc,v 1.4 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5EventActionMessenger.cc,v 1.5 2002/12/05 00:24:25 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -53,13 +53,13 @@ Em5EventActionMessenger::Em5EventActionMessenger(Em5EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc index 424ffd87e4..c731adb68b 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PhysicsList.cc,v 1.11 2002/06/05 15:43:43 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5PhysicsList.cc,v 1.12 2002/08/09 14:21:30 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -342,7 +342,7 @@ void Em5PhysicsList::GetRange(G4double val) void Em5PhysicsList::SetMaxStep(G4double step) { pStepCut->SetMaxStep(step); - G4cout << " MaxChargedStep=" << G4BestUnit(step,"length") << G4endl; + G4cout << " MaxChargedStep=" << G4BestUnit(step,"Length") << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc index 49bb92b4d5..3c3c983445 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PhysicsListMessenger.cc,v 1.7 2002/06/05 15:43:43 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5PhysicsListMessenger.cc,v 1.8 2002/12/05 00:24:25 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -44,28 +44,28 @@ Em5PhysicsListMessenger::Em5PhysicsListMessenger(Em5PhysicsList * List) cutGCmd->SetParameterName("Gcut",false); cutGCmd->SetRange("Gcut>0."); cutGCmd->SetUnitCategory("Length"); - cutGCmd->AvailableForStates(PreInit,Idle); + cutGCmd->AvailableForStates(G4State_PreInit,G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setECut",this); cutECmd->SetGuidance("Set electron cut."); cutECmd->SetParameterName("Ecut",false); cutECmd->SetRange("Ecut>0."); cutECmd->SetUnitCategory("Length"); - cutECmd->AvailableForStates(PreInit,Idle); + cutECmd->AvailableForStates(G4State_PreInit,G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/setPCut",this); cutPCmd->SetGuidance("Set proton cut."); cutPCmd->SetParameterName("Pcut",false); cutPCmd->SetRange("Pcut>0."); cutPCmd->SetUnitCategory("Length"); - cutPCmd->AvailableForStates(PreInit,Idle); + cutPCmd->AvailableForStates(G4State_PreInit,G4State_Idle); rCmd = new G4UIcmdWithADoubleAndUnit("/run/particle/getRange",this); rCmd->SetGuidance("get the electron cut for the current material."); rCmd->SetParameterName("energy",false); rCmd->SetRange("energy>0."); rCmd->SetUnitCategory("Energy"); - rCmd->AvailableForStates(PreInit,Idle); + rCmd->AvailableForStates(G4State_PreInit,G4State_Idle); setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc index 70598e22ce..d18b15b517 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em5PrimaryGeneratorAction.cc,v 1.6 2002/06/05 15:43:43 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc index ae519806b3..51128d01f2 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorMessenger.cc,v 1.7 2002/06/05 15:43:43 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5PrimaryGeneratorMessenger.cc,v 1.8 2002/12/05 00:24:25 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -43,14 +43,14 @@ Em5PrimaryGeneratorMessenger::Em5PrimaryGeneratorMessenger( { DefaultCmd = new G4UIcmdWithoutParameter("/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset the kinematic defined in PrimaryGenerator"); - DefaultCmd->AvailableForStates(PreInit,Idle); + DefaultCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmCmd = new G4UIcmdWithADouble("/gun/rndm",this); RndmCmd->SetGuidance("random lateral extension on the beam"); RndmCmd->SetGuidance("in fraction of 0.5*sizeYZ"); RndmCmd->SetParameterName("rBeam",false); RndmCmd->SetRange("rBeam>=0.&&rBeam<=1."); - RndmCmd->AvailableForStates(Idle); + RndmCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc index 0931776f9c..f8105be97f 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5RunAction.cc,v 1.13 2002/06/06 17:23:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5RunAction.cc,v 1.15 2002/12/12 13:26:51 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,15 +41,7 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "AIDA/IAnalysisFactory.h" - #include "AIDA/ITreeFactory.h" - #include "AIDA/ITree.h" - #include "AIDA/IHistogramFactory.h" - #include "AIDA/IHistogram1D.h" - #include "AIDA/IAxis.h" - #include "AIDA/IAnnotation.h" - #include "AIDA/ITupleFactory.h" - #include "AIDA/ITuple.h" + #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -80,69 +72,72 @@ void Em5RunAction::bookHisto() { #ifndef G4NOHIST // Creating the analysis factory - IAnalysisFactory* af = AIDA_createAnalysisFactory(); + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); // Creating the tree factory - ITreeFactory* tf = af->createTreeFactory(); + AIDA::ITreeFactory* tf = af->createTreeFactory(); // Creating a tree mapped to an hbook file. - tree = tf->create(histName, false, false, "hbook"); + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create(histName, "hbook", readOnly, createNew); // Creating a histogram factory, whose histograms will be handled by the tree - IHistogramFactory* hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // creating histograms // if(nbinStep>0) { - histo[0] = hf->create1D("1","number of steps/event" + histo[0] = hf->createHistogram1D("1","number of steps/event" ,nbinStep,Steplow,Stephigh); } if(nbinEn>0) { - histo[1] = hf->create1D("2","energy deposit in absorber(in MeV)" + histo[1] = hf->createHistogram1D("2","energy deposit in absorber(in MeV)" ,nbinEn,Enlow,Enhigh); } if(nbinTh>0) { - histo[2] = hf->create1D("3","angle distribution at exit(deg)" + histo[2] = hf->createHistogram1D("3","angle distribution at exit(deg)" ,nbinTh,Thlow/deg,Thhigh/deg); } if(nbinR>0) { - histo[3] = hf->create1D("4","lateral distribution at exit(mm)" + histo[3] = hf->createHistogram1D("4","lateral distribution at exit(mm)" ,nbinR ,Rlow,Rhigh); } if(nbinTt>0) { - histo[4] = hf->create1D("5","kinetic energy of the primary at exit(MeV)" + histo[4] = hf->createHistogram1D("5","kine energy of primary at exit(MeV)" ,nbinTt,Ttlow,Tthigh); } if(nbinThback>0) { - histo[5] = hf->create1D("6", + histo[5] = hf->createHistogram1D("6", "angle distribution of backscattered primaries(deg)" ,nbinThback,Thlowback/deg,Thhighback/deg); } if(nbinTb>0) { - histo[6] = hf->create1D("7", + histo[6] = hf->createHistogram1D("7", "kinetic energy of the backscattered primaries (MeV)" ,nbinTb,Tblow,Tbhigh); } if(nbinTsec>0) { - histo[7] = hf->create1D("8","kinetic energy of the charged secondaries(MeV)" + histo[7] = hf->createHistogram1D("8", + "kinetic energy of the charged secondaries(MeV)" ,nbinTsec,Tseclow,Tsechigh); } if(nbinvertexz>0) { - histo[8] = hf->create1D("9","x of secondary charged vertices(mm)" + histo[8] = hf->createHistogram1D("9","x of secondary charged vertices(mm)" ,nbinvertexz ,zlow,zhigh); } if(nbinGamma>0) { - histo[9]= hf->create1D("10", + histo[9]= hf->createHistogram1D("10", "kinetic energy of gammas escaping the absorber(MeV)" // ,nbinGamma,ElowGamma,EhighGamma); ,nbinGamma,log10(ElowGamma),log10(EhighGamma)); @@ -192,7 +187,7 @@ void Em5RunAction::BeginOfRunAction(const G4Run* aRun) if(nbinThback>0) dThback = (Thhighback-Thlowback)/nbinThback ; - bookHisto(); + if (aRun->GetRunID() == 0) bookHisto(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc index d93213b0eb..a92406850a 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em5RunMessenger.cc,v 1.6 2001/11/28 16:08:19 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc index 1b3107e0d3..84164ccb6d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em5SteppingAction.cc,v 1.9 2002/06/06 17:23:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc index 259025dd88..20854ebf12 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em5SteppingMessenger.cc,v 1.4 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc index c48c9f5250..43c4bd210a 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em5SteppingVerbose.cc,v 1.8 2001/10/16 11:56:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc b/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc old mode 100644 new mode 100755 index 3c3e758acf..0e5056a37a --- a/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc +++ b/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em5VisManager.cc,v 1.6 2001/11/15 13:09:49 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em5VisManager.cc,v 1.7 2002/11/13 21:39:59 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em5VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm6/GNUmakefile b/examples/extended/electromagnetic/TestEm6/GNUmakefile index 7ffdeb6b65..6514e741d5 100644 --- a/examples/extended/electromagnetic/TestEm6/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm6/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/06/05 14:20:59 maire Exp $ +# $Id: GNUmakefile,v 1.8 2002/12/12 12:48:14 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -21,8 +21,8 @@ ifdef G4NOHIST CPPFLAGS += -DG4NOHIST else # for the aida-config command see the README file - CPPFLAGS += `aida-config --useHBook --include` - LDFLAGS += `aida-config --useHBook --lib` + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` endif include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/electromagnetic/TestEm6/History b/examples/extended/electromagnetic/TestEm6/History index e4b48ccf63..84bbc3faee 100644 --- a/examples/extended/electromagnetic/TestEm6/History +++ b/examples/extended/electromagnetic/TestEm6/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2002/06/05 14:20:59 maire Exp $ +$Id: History,v 1.7 2002/12/12 12:48:15 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +12-12-02 mma (testem6-V04-01-00) +-migration to aida 3.0 +-UI directory /testem/ + 05-06-02 mma (testem6-V04-00-01) -old histograming package clhep/hist replaced by AIDA 2.2/anaphe diff --git a/examples/extended/electromagnetic/TestEm6/README b/examples/extended/electromagnetic/TestEm6/README index 1393dddf68..167c804e7c 100644 --- a/examples/extended/electromagnetic/TestEm6/README +++ b/examples/extended/electromagnetic/TestEm6/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2002/06/05 14:20:59 maire Exp $ +$Id: README,v 1.5 2002/12/12 12:48:15 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -104,24 +104,22 @@ $Id: README,v 1.4 2002/06/05 14:20:59 maire Exp $ Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. - 8- Using the Anaphe implementation of the AIDA 2.2 histograms: - ----------------------------------------------------------- + 8- Using the Anaphe implementation of the AIDA 3.0 histograms: + -------------------------------------------------------------- - In order to use the Anaphe implementation of the AIDA 2.2 interfaces, - prepare some environment variables by source-ing one of the following - startup scripts (depending on your compiler version): + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config - # gcc-2.95.2 - source $LHCXXTOP/share/LHCXX/4.0.1/install/sharedstart.sh or .csh + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) - # egcs_1.1.2 (aka gcc 2.91.66) - source $LHCXXTOP/share/LHCXX/4.0.1-sec/install/sharedstart.sh or .csh + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) - At CERN, $LHCXXTOP is /afs/cern.ch/sw/lhcxx, you may want to use a - more recent release, check http:/cern.ch/anaphe for more information. - - After this, you will have access to the 'aida-config' command which - is used in the GNUmakefile. 9- HOW TO INCREASE STATISTICS ON gamma -> mu+mu- ? diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.cc b/examples/extended/electromagnetic/TestEm6/TestEm6.cc index dcde48cbdc..53653dda10 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.cc +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm6.cc,v 1.10 2002/05/23 13:30:13 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: TestEm6.cc,v 1.11 2002/12/09 13:02:03 stesting Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -83,7 +83,12 @@ int main(int argc,char** argv) { if (argc==1) // Define UI terminal for interactive mode { - G4UIsession* session = new G4UIterminal(new G4UItcsh); + G4UIsession* session = 0; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIterminal(); +#endif session->SessionStart(); delete session; } diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.in b/examples/extended/electromagnetic/TestEm6/TestEm6.in index fa64552c84..1b920ef052 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.in +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.in @@ -1,4 +1,4 @@ -# $Id: TestEm6.in,v 1.4 2002/05/23 13:30:13 maire Exp $ +# $Id: TestEm6.in,v 1.5 2002/12/12 12:48:15 maire Exp $ # # Macro file for "TestEm6.cc" # (can be run in batch, without graphic) @@ -8,9 +8,9 @@ # /run/initialize # -/calor/setMat Iron -/calor/setSize 500 m -/calor/update +/testem/det/setMat Iron +/testem/det/setSize 500 m +/testem/det/update # /gun/particle gamma /gun/energy 100 TeV diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out new file mode 100644 index 0000000000..ec51ca3807 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out @@ -0,0 +1,238 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) + Copyright : Geant4 Collaboration +********************************************** +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) +# +/run/initialize + +***** Table : Nb of materials = 2 ***** + + 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 % + + 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 % + + + + The Box is 500 m of Iron +PhysicsList::SetCuts:CutLength : 1 km +******** SetCuts for gamma ******************** +The maximal meaningful cut is 2756.84 mm. +All the gammawill be killed ! +in the material Beryllium. +Error in G4ParticleWithCuts::ConvertCutToKineticEnergy +******** ConvertCutToKineticEnergy for gamma ******************** +The cut energy is set 1.79769e+305GeV +******** SetCuts for gamma ******************** +The maximal meaningful cut is 213.663 mm. +All the gammawill be killed ! +in the material Iron. +Error in G4ParticleWithCuts::ConvertCutToKineticEnergy +******** ConvertCutToKineticEnergy for gamma ******************** +The cut energy is set 1.79769e+305GeV + +GammaToMuPair: gamma->mu+mu- Bethe Heitler process. + good cross section parametrization from 422.634 MeV to 1e+12 GeV for all Z. +Error in G4ParticleWithCuts::ConvertCutToKineticEnergy +******** ConvertCutToKineticEnergy for e- ******************** +The cut energy is set 1.79769e+305GeV +Error in G4ParticleWithCuts::ConvertCutToKineticEnergy +******** ConvertCutToKineticEnergy for e- ******************** +The cut energy is set 1.79769e+305GeV + +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: 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. + +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. +Error in G4ParticleWithCuts::ConvertCutToKineticEnergy +******** ConvertCutToKineticEnergy for e+ ******************** +The cut energy is set 1.79769e+305GeV +Error in G4ParticleWithCuts::ConvertCutToKineticEnergy +******** ConvertCutToKineticEnergy for e+ ******************** +The cut energy is set 1.79769e+305GeV + +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: 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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. +============= The cut Energy ============================== + gamma e- +Cut in range + Beryllium 1 km 1 km + Iron 1 km 1 km +Cut in energy + Beryllium 2.88e+295 J 2.88e+295 J + Iron 2.88e+295 J 2.88e+295 J +=================================================== +# +/testem/det/setMat Iron +/testem/det/setSize 500 m +/testem/det/update + + The Box is 500 m of Iron +# +/gun/particle gamma +/gun/energy 100 TeV +# +/run/verbose 2 +/tracking/verbose 1 +# +/run/beamOn 5 +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 0 kByte + Total CPU time elapsed for geometry optimisation: 0 seconds +Start Run processing. + +---> Begin of Event: 0 + +********************************************************************************************************* +* 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 Container 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 Container initStep + 1 31.9 m 0 fm 0 fm 0 eV 0 eV 282 m 282 m Container GammaToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +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 Container initStep + 1 191 m 9.23 mm -4.03 mm 12.1 TeV 17.7 TeV 159 m 159 m Container MuIoni + 2 250 m 7.26 mm -2.2 mm 8.65 TeV 3.43 TeV 59.2 m 218 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +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 Container initStep + 1 218 m 6.03 mm 1.31 mm 21.6 TeV 48.6 TeV 186 m 186 m Container MuIoni + 2 250 m 9.1 mm 112 mum 17.7 TeV 3.96 TeV 31.7 m 218 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 Container 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 Container 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 Container initStep + 1 -240 m 0 fm 0 fm 0 eV 0 eV 10.4 m 10.4 m Container GammaToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -240 m 0 fm 0 fm 57.6 TeV 0 eV 0 fm 0 fm Container initStep + 1 -59.6 m 5.87 mm 2.83 mm 21.3 TeV 36.4 TeV 180 m 180 m Container MuIoni + 2 88.5 m 9.72 mm 2.44 cm 7.68 TeV 13.6 TeV 148 m 328 m Container MuIoni + 3 204 m 3.18 cm -2.12 mm 3.6 TeV 4.08 TeV 116 m 444 m Container MuIoni + 4 250 m 3.73 cm -3.33 mm 2.83 TeV 768 GeV 45.9 m 490 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -240 m 0 fm 0 fm 42.4 TeV 0 eV 0 fm 0 fm Container initStep + 1 -69.5 m -2.27 mm -7.57 mm 17.9 TeV 24.5 TeV 170 m 170 m Container MuIoni + 2 73.1 m -5.9 mm -3.61 cm 7.59 TeV 10.3 TeV 143 m 313 m Container MuIoni + 3 188 m 2.15 cm -4.54 cm 4.08 TeV 3.5 TeV 115 m 428 m Container MuIoni + 4 250 m 2.49 cm -5.49 cm 2.85 TeV 1.23 TeV 61.6 m 490 m OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 5 + User=0.01s Real=0.89s Sys=0.02s + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1083370621, 1385159183 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. +Deletion of G4 kernel class start. +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh index f60e8eb5c3..81d4627fbd 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.1 2002/05/23 13:30:16 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh index 7e06ea8c34..54a69e8d5c 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: DetectorMessenger.hh,v 1.1 2002/05/23 13:30:17 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: DetectorMessenger.hh,v 1.2 2002/12/12 12:48:16 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -56,7 +56,7 @@ class DetectorMessenger: public G4UImessenger DetectorConstruction* Detector; - G4UIdirectory* detDir; + G4UIdirectory* testemDir; G4UIcmdWithAString* MaterCmd; G4UIcmdWithADoubleAndUnit* SizeCmd; G4UIcmdWithADoubleAndUnit* MagFieldCmd; diff --git a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh index a83cbe0156..c86816094e 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: EventAction.hh,v 1.1 2002/05/23 13:30:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh index acc5331844..98534a8d5b 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.hh,v 1.1 2002/05/23 13:30:29 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh index a9c04c9cf0..3f86de5bf9 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.1 2002/05/23 13:30:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh index 5d349c1a17..dc0ed0b9e3 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.hh,v 1.1 2002/05/23 13:30:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh index 0fb20deb46..5edca580fd 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.hh,v 1.1 2002/05/23 13:30:31 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh index 04d22b94fa..e2daa0d21a 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorMessenger.hh,v 1.1 2002/05/23 13:30:32 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh index aece4f4a6d..d07a31acca 100644 --- a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RunAction.hh,v 1.3 2002/06/05 14:49:54 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: RunAction.hh,v 1.4 2002/12/12 12:48:16 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -40,8 +40,10 @@ class G4Run; #ifndef G4NOHIST +namespace AIDA { class ITree; class IHistogram1D; +} #endif class RunAction : public G4UserRunAction @@ -56,7 +58,7 @@ class RunAction : public G4UserRunAction #ifndef G4NOHIST - IHistogram1D* GetHisto(G4int id) {return histo[id];} + AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: @@ -65,8 +67,8 @@ class RunAction : public G4UserRunAction #ifndef G4NOHIST private: - ITree* tree; - IHistogram1D* histo[6]; + AIDA::ITree* tree; + AIDA::IHistogram1D* histo[6]; #endif }; diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh index a1f0ad3fce..9b3771e0c7 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.hh,v 1.1 2002/05/23 13:30:33 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh index 10b82993a2..fe29ce4d1d 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.hh,v 1.1 2002/05/23 13:30:34 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 index 3e23f7dfda..f1a5911c53 100644 --- a/examples/extended/electromagnetic/TestEm6/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm6/include/VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: VisManager.hh,v 1.1 2002/05/23 13:30:35 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/run02.mac b/examples/extended/electromagnetic/TestEm6/run02.mac index 3d645d2763..cd3d4cb748 100644 --- a/examples/extended/electromagnetic/TestEm6/run02.mac +++ b/examples/extended/electromagnetic/TestEm6/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.1 2002/05/23 13:30:14 maire Exp $ +# $Id: run02.mac,v 1.2 2002/12/12 12:48:15 maire Exp $ # # Macro file for "TestEm6.cc" # (can be run in batch, without graphic) @@ -8,14 +8,14 @@ # /run/initialize # -/calor/setMat Beryllium -/calor/setSize 10 km -/calor/update +/testem/det/setMat Beryllium +/testem/det/setSize 10 km +/testem/det/update # /run/verbose 2 # /gun/particle gamma /gun/energy 100 TeV -/gun/rndm 0.8 +/testem/gun/rndm 0.8 # #/run/beamOn 50000 diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc index ba258fcda0..8fc9bff2aa 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc @@ -23,7 +23,7 @@ // // $Id: DetectorConstruction.cc,v 1.1 2002/05/23 13:30:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc index 19b80e1df8..054f618df2 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: DetectorMessenger.cc,v 1.1 2002/05/23 13:30:36 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: DetectorMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -42,40 +42,40 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) :Detector(Det) { - detDir = new G4UIdirectory("/calor/"); - detDir->SetGuidance(" detector control."); + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance(" detector control."); - MaterCmd = new G4UIcmdWithAString("/calor/setMat",this); + MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); MaterCmd->SetGuidance("Select material of the box."); MaterCmd->SetParameterName("choice",false); - MaterCmd->AvailableForStates(PreInit,Idle); + MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - SizeCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSize",this); + SizeCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setSize",this); SizeCmd->SetGuidance("Set size of the box"); SizeCmd->SetParameterName("Size",false); SizeCmd->SetRange("Size>0."); SizeCmd->SetUnitCategory("Length"); - SizeCmd->AvailableForStates(PreInit,Idle); + SizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this); + 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(PreInit,Idle); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - UpdateCmd = new G4UIcmdWithoutParameter("/calor/update",this); + 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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); - MaxStepCmd = new G4UIcmdWithADoubleAndUnit("/tracking/stepMax",this); + MaxStepCmd = new G4UIcmdWithADoubleAndUnit("/testem/tracking/stepMax",this); MaxStepCmd->SetGuidance("Set max allowed step size"); MaxStepCmd->SetParameterName("Size",false); MaxStepCmd->SetRange("Size>0."); MaxStepCmd->SetUnitCategory("Length"); - MaxStepCmd->AvailableForStates(Idle); + MaxStepCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -87,7 +87,7 @@ DetectorMessenger::~DetectorMessenger() delete MagFieldCmd; delete UpdateCmd; delete MaxStepCmd; - delete detDir; + delete testemDir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc index 1925cfe133..ef1f7d4fdc 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: EventAction.cc,v 1.1 2002/05/23 13:30:41 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc index dd50837bbd..2b862e6c50 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EventActionMessenger.cc,v 1.1 2002/05/23 13:30:42 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: EventActionMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,19 +41,19 @@ EventActionMessenger::EventActionMessenger(EventAction* EvAct) :eventAction(EvAct) { - DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); + 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(Idle); + DrawCmd->AvailableForStates(G4State_Idle); - PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc index 96a50063bb..8f42ed9c01 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.cc,v 1.1 2002/05/23 13:30:42 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc index e6830f04cc..43a5b5ddcd 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsListMessenger.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: PhysicsListMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -41,12 +41,12 @@ PhysicsListMessenger::PhysicsListMessenger(PhysicsList* physL) :physList(physL) { GammaToMuPairFac=new G4UIcmdWithADouble - ("/run/process/setGammaToMuPairFac",this); + ("/testem/phys/setGammaToMuPairFac",this); GammaToMuPairFac->SetGuidance( "Set factor to artificially increase the GammaToMuPair cross section"); GammaToMuPairFac->SetParameterName("GammaToMuPairFac",false); GammaToMuPairFac->SetRange("GammaToMuPairFac>0.0"); - GammaToMuPairFac->AvailableForStates(PreInit,Idle); + GammaToMuPairFac->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc index 7a35906025..950253214b 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc index e663f55275..4b209ab90a 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PrimaryGeneratorMessenger.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: PrimaryGeneratorMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -40,12 +40,12 @@ PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( PrimaryGeneratorAction* Gun) :Action(Gun) { - RndmCmd = new G4UIcmdWithADouble("/gun/rndm",this); + RndmCmd = new G4UIcmdWithADouble("/testem/gun/rndm",this); RndmCmd->SetGuidance("random lateral extension on the beam"); RndmCmd->SetGuidance("in fraction of 0.5*sizeYZ"); RndmCmd->SetParameterName("rBeam",false); RndmCmd->SetRange("rBeam>=0.&&rBeam<=1."); - RndmCmd->AvailableForStates(Idle); + RndmCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc index 375ba2ce4e..72e7c525ab 100644 --- a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RunAction.cc,v 1.2 2002/06/05 14:21:00 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: RunAction.cc,v 1.3 2002/12/12 12:48:17 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,15 +40,7 @@ #include "Randomize.hh" #ifndef G4NOHIST - #include "AIDA/IAnalysisFactory.h" - #include "AIDA/ITreeFactory.h" - #include "AIDA/ITree.h" - #include "AIDA/IHistogramFactory.h" - #include "AIDA/IHistogram1D.h" - #include "AIDA/IAxis.h" - #include "AIDA/IAnnotation.h" - #include "AIDA/ITupleFactory.h" - #include "AIDA/ITuple.h" + #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -69,24 +61,26 @@ void RunAction::bookHisto() { #ifndef G4NOHIST // Creating the analysis factory - IAnalysisFactory* af = AIDA_createAnalysisFactory(); + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); // Creating the tree factory - ITreeFactory* tf = af->createTreeFactory(); + AIDA::ITreeFactory* tf = af->createTreeFactory(); // Creating a tree mapped to an hbook file. - tree = tf->create("testem6.paw", false, false, "hbook"); + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create("testem6.paw", "hbook", readOnly, createNew); // Creating a histogram factory, whose histograms will be handled by the tree - IHistogramFactory* hf = af->createHistogramFactory(*tree); + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); // Creating histograms - histo[0] = hf->create1D("1","1/(1+(theta+[g]+)**2)",100, 0 ,1.); - histo[1] = hf->create1D("2","log10(theta+ [g]+)", 100,-3.,1.); - histo[2] = hf->create1D("3","log10(theta- [g]-)", 100,-3.,1.); - histo[3] = hf->create1D("4","log10(theta+ [g]+ -theta- [g]-)",100,-3.,1.); - histo[4] = hf->create1D("5","xPlus" ,100,0.,1.); - histo[5] = hf->create1D("6","xMinus",100,0.,1.); + 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; diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc index 9403adca09..ca08c17e92 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.cc,v 1.2 2002/06/05 14:21:00 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc index f6adbde2f7..ceba9832ac 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.cc,v 1.1 2002/05/23 13:30:45 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 old mode 100644 new mode 100755 index ac37fb060b..093e54a15e --- a/examples/extended/electromagnetic/TestEm6/src/VisManager.cc +++ b/examples/extended/electromagnetic/TestEm6/src/VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: VisManager.cc,v 1.1 2002/05/23 13:30:45 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: VisManager.cc,v 1.2 2002/11/13 21:40:02 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/electromagnetic/TestEm6/vis.mac b/examples/extended/electromagnetic/TestEm6/vis.mac index 46290c40bb..d8c9379ec5 100644 --- a/examples/extended/electromagnetic/TestEm6/vis.mac +++ b/examples/extended/electromagnetic/TestEm6/vis.mac @@ -28,10 +28,10 @@ /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate # -/event/drawTracks all +/testem/event/drawTracks all # # set magnetic field for visualization only, and limit # the step for a proper visualization of the tracjectories # -/calor/setField 100 tesla -/tracking/stepMax 1 m +/testem/det/setField 100 tesla +/testem/tracking/stepMax 1 m diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.cc b/examples/extended/electromagnetic/TestEm8/TestEm8.cc index 74f731681d..3df59b9f62 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.cc +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm8.cc,v 1.2 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index ba189c2f74..99a03f19fd 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,6 +13,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -133,7 +134,7 @@ Irregular X-ray TR model is called 48 fGamma = 8.085e+04 sumE = 8.377 49 fGamma = 9.283e+04 sumE = 8.504 -total time for build X-ray TR tables = 6.5 s +total time for build X-ray TR tables = 6.62 s phot: Total cross sections from Sandia parametrisation. Em8PhysicsList::SetCuts:CutLength : 1 mm @@ -161,7 +162,7 @@ hIoni: Knock-on electron cross sections . delta ray energy sampled from differential Xsection. PhysicsTables from 1 keV to 100 TeV in 100 bins. -total time(SetCuts)=5.76 s +total time(SetCuts)=5.92 s # #control/saveHistory # @@ -247,42 +248,42 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 0.00 0.00 0.54 0k World - 0.00 0.00 0.54 11k Radiator + 0.00 0.00 0.00 0k World + 0.00 0.00 0.00 11k Radiator Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- - 96.00 11k 1 305 376 42709.36 Radiator - 4.00 0k 3 7 20 42709.36 World + 96.00 11k 1 305 376 0.00 Radiator + 4.00 0k 3 7 20 0.00 World Start Run processing. ---> Begin of Event: 0 Run terminated. Run Summary Number of events processed : 1000 - User=126.19s Real=133.52s Sys=2.13s + User=125.92s Real=140.46s Sys=1.99s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=155.499 +- 3.90364 mm + mean charged track length in absorber=158.505 +- 3.9418 mm - mean energy deposit in absorber=0.101305 +- 0.00101646 MeV + mean energy deposit in absorber=0.101921 +- 0.00108118 MeV - mean number of steps in absorber (charged) =430.761 +- 1.31017 - mean number of steps in absorber (neutral) =5.127 +- 0.072006 + mean number of steps in absorber (charged) =432.655 +- 2.13903 + mean number of steps in absorber (neutral) =5.037 +- 0.0718306 - mean number of charged secondaries = 1.481 +- 0.0379426 + mean number of charged secondaries = 1.485 +- 0.0382593 - mean number of neutral secondaries = 0.033 +- 0.00564898 + mean number of neutral secondaries = 0.031 +- 0.00548078 - mean number of e-s =1.481 and e+s =0 + mean number of e-s =1.485 and e+s =0 -(number) transmission coeff=0.682 reflection coeff=0.048 +(number) transmission coeff=0.668 reflection coeff=0.038 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1389024498, 296616067 + Current couple of seeds = 809983670, 863331332 ---------------------------------------- # # diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh index 0b9bc1f7c4..b0c681972d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh index 709c5d591f..faa2dc3977 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh index c5f32d6b81..3102cb6807 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.4 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh index dd45692b6b..bd54bf52de 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.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh index 83d365fbe1..f435fd48c8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh index 8bd1023edb..d8bb2caaee 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh index ca0139f0c4..0ea4aaba6a 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Em8PhysicsList.hh,v 1.4 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef Em8PhysicsList_h diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh index ef4e422a16..1175ae55e0 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8PhysicsListMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh index b01af56bef..d04c9816f3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh index b27bf05f31..48a55e70b8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh index 315c9870a4..efe4d4d1d5 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.4 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh index cde51e2f83..b9841c4e32 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh b/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh index 82db105d77..190b8f52f9 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: Em8StepCut.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh index 3fbb7846e3..7acea8bdac 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.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh index a568925c2b..a88139ea5e 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingMessenger.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh index b8fe02144f..a71535905c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh b/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh index e7a389c096..b934ddef6c 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em8VisManager.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh index 92656024cd..358a1523d3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh index ec7e574f42..e90c330b5f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc index afa5fe525c..81e004d6bd 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.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc index 93dc915aea..de14e3a41e 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.4 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc index cae4c599c1..83a4b8b6ad 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.7 2001/10/24 21:30:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc index 5916c9efeb..7da0734ac5 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8DetectorMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em8DetectorMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,60 +50,60 @@ Em8DetectorMessenger::Em8DetectorMessenger(Em8DetectorConstruction * Em8Det) AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Lead"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); WorldMaterCmd = new G4UIcmdWithAString("/calor/setWorldMat",this); WorldMaterCmd->SetGuidance("Select Material of the World."); WorldMaterCmd->SetParameterName("wchoice",true); WorldMaterCmd->SetDefaultValue("Air"); - WorldMaterCmd->AvailableForStates(Idle); + WorldMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("SizeZ",false,false); AbsThickCmd->SetDefaultUnit("mm"); AbsThickCmd->SetRange("SizeZ>0."); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); AbsRadCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsRad",this); AbsRadCmd->SetGuidance("Set radius of the Absorber"); AbsRadCmd->SetParameterName("SizeR",false,false); AbsRadCmd->SetDefaultUnit("mm"); AbsRadCmd->SetRange("SizeR>0."); - AbsRadCmd->AvailableForStates(Idle); + AbsRadCmd->AvailableForStates(G4State_Idle); AbsZposCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsZpos",this); AbsZposCmd->SetGuidance("Set Z pos. of the Absorber"); AbsZposCmd->SetParameterName("Zpos",false,false); AbsZposCmd->SetDefaultUnit("mm"); - AbsZposCmd->AvailableForStates(Idle); + AbsZposCmd->AvailableForStates(G4State_Idle); WorldZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldZ",this); WorldZCmd->SetGuidance("Set Z size of the World"); WorldZCmd->SetParameterName("WSizeZ",false,false); WorldZCmd->SetDefaultUnit("mm"); WorldZCmd->SetRange("WSizeZ>0."); - WorldZCmd->AvailableForStates(Idle); + WorldZCmd->AvailableForStates(G4State_Idle); WorldRCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldR",this); WorldRCmd->SetGuidance("Set R size of the World"); WorldRCmd->SetParameterName("WSizeR",false,false); WorldRCmd->SetDefaultUnit("mm"); WorldRCmd->SetRange("WSizeR>0."); - WorldRCmd->AvailableForStates(Idle); + WorldRCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this); MagFieldCmd->SetGuidance("Define magnetic field."); MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false,false); MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc index 7139a7df46..247d015154 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.5 2001/10/16 12:22:23 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc index 4eebfe364b..2161286dd5 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8EventActionMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em8EventActionMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -53,13 +53,13 @@ Em8EventActionMessenger::Em8EventActionMessenger(Em8EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc index 85f22f56da..74ae0547b2 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PhysicsList.cc,v 1.5 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc index 6220654b67..bd41d0bc7d 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8PhysicsListMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em8PhysicsListMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,35 +46,35 @@ Em8PhysicsListMessenger::Em8PhysicsListMessenger(Em8PhysicsList * List) cutGCmd->SetParameterName("range",true); cutGCmd->SetDefaultValue(1.); cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(Idle); + cutGCmd->AvailableForStates(G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); cutECmd->SetParameterName("range",true); cutECmd->SetDefaultValue(1.); cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(Idle); + cutECmd->AvailableForStates(G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); cutPCmd->SetParameterName("range",true); cutPCmd->SetDefaultValue(1.); cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(Idle); + cutPCmd->AvailableForStates(G4State_Idle); eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); eCmd->SetParameterName("energy",true); eCmd->SetDefaultValue(10.); eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(Idle); + eCmd->AvailableForStates(G4State_Idle); rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); rCmd->SetGuidance("Display the RANGE of Electron for the current material."); rCmd->SetParameterName("energy",true); rCmd->SetDefaultValue(10.); rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(Idle); + rCmd->AvailableForStates(G4State_Idle); setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc index a281d05ba9..e30eb765d8 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.4 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc index d55adbdce8..2dab815048 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8PrimaryGeneratorMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em8PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ Em8PrimaryGeneratorMessenger::Em8PrimaryGeneratorMessenger(Em8PrimaryGeneratorAc RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("off"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc index 44ddc92425..2d3e7f645e 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.6 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc index db22b8d378..bd355e077d 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8RunMessenger.cc,v 1.4 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em8RunMessenger.cc,v 1.5 2002/12/05 00:24:26 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -187,13 +187,13 @@ Em8RunMessenger::Em8RunMessenger(Em8RunAction* RA) RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); RndmSaveCmd->SetParameterName("frequency",false); RndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); - RndmSaveCmd->AvailableForStates(PreInit,Idle); + RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); RndmReadCmd->SetGuidance("get rndm status from an external file."); RndmReadCmd->SetParameterName("fileName",true); RndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); - RndmReadCmd->AvailableForStates(PreInit,Idle); + RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8StepCut.cc b/examples/extended/electromagnetic/TestEm8/src/Em8StepCut.cc index 4944f240f1..0ad7c599be 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8StepCut.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: Em8StepCut.cc,v 1.4 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "Em8StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc index 13db1aa779..ab97eb5d3f 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.4 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc index 79550230d3..b84451bf49 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc index fe1b2784e1..f60c20c707 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.5 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc old mode 100644 new mode 100755 index 112086c6d4..bc53a8f1ab --- a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: Em8VisManager.cc,v 1.5 2001/11/15 13:09:50 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Em8VisManager.cc,v 1.6 2002/11/13 21:40:05 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void Em8VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/GNUmakefile new file mode 100644 index 0000000000..53c194bc2b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/GNUmakefile @@ -0,0 +1,48 @@ +# $Id: GNUmakefile,v 1.1 2002/11/19 10:32:59 murakami Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- +name := hepmcEx01-clhep +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +.PHONY: all +all : lib bin + +include $(G4INSTALL)/config/binmake.gmk + +# check gcc +USE_GCC := 0 +ifeq ($(G4SYSTEM),Linux-g++) + USE_GCC := 1 +endif +ifeq ($(G4SYSTEM),Linux-egcs) + USE_GCC := 1 +endif + +# PYTHIA + CERNLIB_DIR := /cern/pro/lib + +ifeq ($(USE_GCC),1) + LDLIBS1 += -L$(CERNLIB_DIR) -lpythia6 -lg2c +else + LDLIBS1 += -L$(CERNLIB_DIR) -lpythia6 # and something? +endif + +CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) +CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) + +# On HP-acc optimization has to be turned off to compile ExN04HadronPhysics. +# +ifeq ($(G4SYSTEM),HP-aCC) + COMPILER := $(shell aCC -V 2>&1) +ifeq ($(COMPILER), aCC: HP ANSI C++ B3910B A.01.15) +$(G4TMP)/$(G4SYSTEM)/$(name)/XXHadronPhysics.o: src/XXHadronPhysics.cc + $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/XXHadronPhysics.cc +endif +endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History new file mode 100644 index 0000000000..7fd626bafe --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History @@ -0,0 +1,102 @@ +$Id: History,v 1.1 2002/11/19 10:33:00 murakami Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Example HepMCEx01 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 * + ---------------------------------------------------------- +Nov. 19, 2002 K.Murakami +- modified as is ExN04. (physics lists and vis. manager) +- "std" namespace left/not cared was modified to "G4std". + +May. 28, 2002 K.Murakami +- renamed classes and filenames. + +Apr. 15, 2002 K.Murakami +- Creared. +- Replace N04PrimaryGeneatorAction with HepMC-interface version. +- Resize the world volume. + + Example N04 History file + ------------------------ + +December 18, 2001 Gabriele Cosmo (exampleN04-V04-00-00) +- ExN04PhysicsList.cc: added call to DumpCutValuesTable(). + Reference outputs will be modified (V.Ivantchenko) +- GNUmakefile: removed restriction for egcs compiler + +October 19, 2001 Steve O'Neale +- Updated reference output + +March 07 2001 H.Kurashige (exampleN04-V03-00-07) +- Add G4MuonMinusCaptureAtRest in G4MuonPhysics + +February 25 2001 S.W.O'Neale (exampleN04-V03-00-06) +- Add exampleN04.EMtest.large_N.out reference output and remove + some empty "reference" .err files + +February 20 2001 S.W.O'Neale (exampleN04-V03-00-05) +- Update reference outputs following materials-V03-00-04 + +February 9 2001 S.W.O'Neale (exampleN04-V03-00-04) +- Update SUN CC reference outouts for test104 and test104.EMtest + +February 9 2001 H.Kurashige (exampleN04-V03-00-03) +- Introduce Modular Physics List + +25th November 2000 Steve O'Neale (tagset210) +- Update test outputs for min.delta energy cut +- Update test outputs for small"ish" changes from em tags + +August 18, 2000 Michel Maire +- standard G4ionIonisation removed from the PhysicsList + +June 24, 2000 John Allison (exampleN04-V01-01-03) +- Updated exampleN04*.out for stand-V01-01-05 and utils-V01-01-03. + +June 19, 2000 John Allison (exampleN04-V01-01-02) +- Updated exampleN04.out for geant4-01-01-cand-07. + +June 17, 2000 John Allison (exampleN04-V01-01-01) +- Updated exampleN04*.out for geant4-01-01-ref-06. + +9th June 2000 Makoto Asai (exampleN04-V01-01-00) +- ExN04StackingAction.cc: protection against illegal value of an argument. + +5th June 1999 John Allison +- GNUmakefile: Force non-optimised compliation of some files on HP with + aCC: HP ANSI C++ B3910B A.01.15. + +23th April 1999 H.Kurashige +- remove ConstructLeptHad, AddParameterisation inExN04PhysicsList + +16th April 1999 H.Kurashige +- modify ExN04RunAction ExN04StackingAction ExN04SteppingAction ExN04TrackingAction +- modify ExN04PhysicsList::SetCuts +- modify ExN04PhysicsList::ConstructParticle + + +21st November 1998 John Allison +- Made ExN04Field compatible with G4Field. + +9 Oct, 1998 M.Asai +- A bug fixed in ExN04DetectorParameterDef.icc. + +26th August 1998 John Allison. +- /vis/Draw/current -> /vis/draw/current in ExN04EventAction.cc. + +9th August 1998 John Allison. +- Changed G4UIterminal to G4UIGAG. + +April 09, 98 G. Cosmo + +- Created. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/README b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/README new file mode 100644 index 0000000000..d3e223ba2e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/README @@ -0,0 +1,51 @@ +$Id: README,v 1.1 2002/11/19 10:33:00 murakami Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + HepMCEx01 + --------- + + HepMCEx01 is based on ExampleN04, which has a simplified collider detector +geometry. Only part of the primary generator action is replaced with new one. +This example demonstrates the following features. + +1. HepMC interface + + ExN04PrimaryGeneratorAction has G4HepMCInterface as the generator. +There are two types of generators provided as samples. One generator reads +primary information from a HepMC Ascii file (data/example_MyPythia.dat). +The other one generates primaries directly invoking PYTHIA routines +in every event. + +2. Readout geometry + + ExN04DetectorConstruction defines a simplified collider detecor +geometry, tracker made of cylindrical tubes, calorimeter made of +cylindrical tubes, and muon trackers made of planes. + Cylindrical calorimeter is made of tubes of lead and scintirator +without cut in phi nor z direction. Energy deposition in scintirator +is accumulated by ExN04CalorimeterSD sensitive detector, which has +a readout geometry to find the phi-z cell. + +3. Full set of "ordinary" physics processes + + ExN04PhysicsList defines almost all of leptons and hadrons which +Geant4 has dedicated classes for. Also almost all physics processes +Geant4 has are defined. + +4. Event filtering by the stacking mechanism. + + Higgs events in "pythia_event.data" have two lepton pairs produced +by the Higgs decay via Z0. At the first stage of each event, only the +primary muons are tracked without tracking secondaries. then the number +of hits on the muon trackers are examined. At the next stage, only +the primary charged particles are tracked only inside the barrel +tracking area and the isolation of the primary muons are examined. +At the third stage, all particles in the RoI (Region of Interest) along +the isolated muons are tracked. All these examinations are applied in +ExN04StackingAction. + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/GNUmakefile new file mode 100644 index 0000000000..d6d63cab9e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/GNUmakefile @@ -0,0 +1,20 @@ +# // CLHEP +CLHEPD := $(CLHEP_BASE_DIR) +CLHEPINC := -I$(CLHEPD)/include +CLHEPLIB := -L$(CLHEPD)/lib -lCLHEP + +# // CERN libraries +CLIBD := /cern/pro/lib +CLIB := -L$(CLIBD) -lpythia6 + +CXXFLAGS := $(CLHEPINC) +LOPT := $(CLHEPLIB) $(CLIB) -lg2c + +%.o: %.cc + $(CXX) -c -o $@ $(CXXFLAGS) $*.cc + +example_MyPythia : example_MyPythia.o + $(CXX) -o $@ example_MyPythia.o $(LOPT) + +example_MyPythia.o : example_MyPythia.cc + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.cc new file mode 100644 index 0000000000..b1a2922ae9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// sample event generation using Pythia and HepMC(CLHEP) +// ==================================================================== +// $Id: example_MyPythia.cc,v 1.3 2002/12/13 11:42:37 gcosmo Exp $ +// ==================================================================== +// example_MyPythia.cc + +#include "CLHEP/HepMC/CBhepevt.h" +#include "CLHEP/HepMC/WriteHepMC.h" +#include "CLHEP/HepMC/ReadHepMC.h" +#include "CLHEP/HepMC/include/PythiaWrapper6_2.h" + +#include +#include + +// global parameters +hepev2_t hepev2_; +hepev3_t hepev3_; +hepev4_t hepev4_; +hepev5_t hepev5_; + +int main() { + // initialize Pythia... + // select W+gamma process (process number 20) + pysubs.msel= 0; + pysubs.msub[20-1]= 1; + // set random number seed (mandatory!) + pydatr.mrpy[0]= 55122 ; + // tell Pythia not to write multiple copies of particles in event record. + pypars.mstp[128-1]= 2; + // example of setting a Pythia parameter: set the top mass + pydat2.pmas[1-1][6-1]= 175; + // call pythia initialization + call_pyinit( "CMS", "p", "p", 14000. ); + + // prepare HepMC-HEPEVT interface... + HepMC::CBhepevt* hepevtio= new HepMC::CBhepevt; + + std::ofstream to; + std::string fname= "example_MyPythia.dat"; + to.open(fname.c_str(), std::ios::out); + + HepMC::writeComment(to, "generate sample pythia events..."); + for ( int i = 1; i <= 10; i++ ) { + if ( i%50==1 ) std::cout << "Processing Event Number " + << i << std::endl; + call_pyevnt(); // generate one event with Pythia + // pythia pyhepc routine converts common PYJETS in common HEPEVT + call_pyhepc( 1 ); + + HepMC::GenEvent* evt= new HepMC::GenEvent(); + hepevtio-> toGenEvent(evt, false); + hepevtio-> clean(); // clear HEPEVT + + // add some information to the event + evt-> set_event_number(i); + evt-> set_signal_process_id(20); + + // write the event out to the ascii file + to << evt; + + // we also need to delete the created event from memory + delete evt; + } + + // write out some information from Pythia to the screen + call_pystat(1); + to.close(); + delete hepevtio; + + return 0; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.dat b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.dat new file mode 100644 index 0000000000..3417cca269 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/data/example_MyPythia.dat @@ -0,0 +1,5901 @@ +BlockType Comment +generate sample pythia events... +BlockType GenEvent +E 1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 78 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 -7.7594698288360897e-01 -9.1232539665921930e-01 1.8833052220885656e+03 1.8833056029166935e+03 0 3 0 0 -3 0 +P 20 2101 7.7594698288360897e-01 9.1232539665921930e-01 4.4469502845870420e+03 4.4469504836059705e+03 5.7933000000000001e-01 2 0 0 -16 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 -1 -1.0077355308447375e+00 -1.2716278982991639e-02 -4.1454166842423659e+00 4.2661659707370658e+00 0 3 0 0 -4 0 +P 13 2214 9.9965263761245238e-01 2.7342497748314848e-02 -4.0826017593891916e+03 4.0826020585869046e+03 1.2012315772156326e+00 2 0 0 -9 0 +P 26 1 8.0828932322852265e-03 -1.4626218765323211e-02 -2.4623230582064652e+03 2.4623230803764359e+03 3.3000000000000002e-01 2 0 0 -16 0 +V -3 0 0 0 0 0 0 4 0 +P 5 2 -5.0183078832283403e+00 1.1490196188676447e+00 1.4784133950691614e+03 1.4784223585904062e+03 0 3 0 0 -5 0 +P 21 21 1.4581184692651741e+00 -3.9123134860507047e-01 1.0923177669273832e+02 1.0924220892535446e+02 0 2 0 0 -16 0 +P 22 21 3.1078318510719791e+00 2.3161265926755781e-01 1.4647261850356662e+02 1.4650576860495917e+02 0 2 0 0 -16 0 +P 23 21 -1.0916504553308495e-01 -1.8718066652841989e+00 8.6094190154962845e+01 8.6114604775486654e+01 0 2 0 0 -16 0 +V -4 0 0 0 0 0 0 3 0 +P 6 -1 2.5393345338288575e-02 8.3451451612681318e+00 6.6003848774206497e-01 8.3712450322473053e+00 0 3 0 0 -5 0 +P 24 21 -5.3671673260814667e-01 -6.6758503288897897e+00 4.7470952833050397e+01 4.7941072217280407e+01 0 2 0 0 -16 0 +P 25 21 -7.1083651803421799e-01 -1.7119307722665538e+00 1.0816833663101894e+01 1.0974510741696802e+01 0 2 0 0 -16 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 -4.0262403277658469e+00 -1.2288309207825838e+00 2.4575369641175027e+02 2.4578974741971544e+02 0 3 0 0 -6 0 +P 8 24 -9.6667421012420562e-01 1.0722995700918359e+01 1.2333197371451533e+03 1.2410038562029381e+03 1.3746665043908820e+02 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 -4.0262403277658469e+00 -1.2288309207825838e+00 2.4575369641175027e+02 2.4578974741971544e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -9.6667421012420562e-01 1.0722995700918359e+01 1.2333197371451533e+03 1.2410038562029381e+03 1.3746665043908820e+02 2 0 0 -8 0 +V -8 0 0 0 0 0 0 2 0 +P 11 -13 -2.5622328442447461e+01 4.7040178447927353e+01 2.0936799887850253e+02 2.1611166609336419e+02 1.0566000000000000e-01 1 0 0 0 0 +P 12 14 2.4655654232323258e+01 -3.6317182747008992e+01 1.0239517382666510e+03 1.0248921901095741e+03 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 2 0 +P 29 2212 1.0242368375894155e+00 1.1819305384951433e-01 -3.7370902170825884e+03 3.7370904770952066e+03 9.3827000000000005e-01 1 0 0 0 0 +P 30 111 -2.4584199976963136e-02 -9.0850556101199478e-02 -3.4551154230660296e+02 3.4551158149169805e+02 1.3497999999999999e-01 2 0 0 -20 0 +V -10 0 0 0 0 0 2 1 0 +P 14 1 2.3065048155050207e+00 5.8203193328752807e+00 1.5053434005803197e+02 1.5066447364361579e+02 0 2 0 0 -10 0 +P 15 -1 -2.3065048155050207e+00 -5.8203193328752807e+00 4.6213780965918581e+01 4.6635926416942638e+01 0 2 0 0 -10 0 +P 31 92 0 0 1.9674812102395055e+02 1.9730040006055842e+02 1.4752109598335721e+01 2 0 0 -11 0 +V -11 0 0 0 0 0 0 8 0 +P 32 -211 2.5433561751902267e-01 1.6471020112402412e+00 3.4162682623605711e+01 3.4203596235891361e+01 1.3957000000000000e-01 1 0 0 0 0 +P 33 211 1.8267397603378879e-01 -2.2451207083727245e-01 8.9833818072340854e+00 8.9891269838019312e+00 1.3957000000000000e-01 1 0 0 0 0 +P 34 -211 1.6527958883141400e+00 3.3636085038226837e+00 8.5511074879269898e+01 8.5593276623858827e+01 1.3957000000000000e-01 1 0 0 0 0 +P 35 221 1.5340695778001462e-01 1.0080214339909595e-01 1.6778513363366923e+01 1.6788445638414284e+01 5.4744999999999999e-01 2 0 0 -21 0 +P 36 211 -5.4270097089667468e-01 7.1269909168117845e-02 3.1032133671979825e+00 3.1542061966557080e+00 1.3957000000000000e-01 1 0 0 0 0 +P 37 221 -4.3895349893169139e-01 -1.0908000994225866e+00 1.6203900382989026e+01 1.6255725580713296e+01 5.4744999999999999e-01 2 0 0 -22 0 +P 38 -213 -1.1775778049994057e+00 -2.1994908478570685e+00 1.6736113732474852e+01 1.6955085170015739e+01 1.0737601126508725e+00 2 0 0 -23 0 +P 39 211 -8.3980164819194153e-02 -1.6679795495132113e+00 1.5269240867812080e+01 1.5360937631207282e+01 1.3957000000000000e-01 1 0 0 0 0 +V -12 0 0 0 0 0 2 1 0 +P 16 2 -3.9452709365158856e+00 -1.3309715048590964e+00 3.4100364633141048e+01 3.4353624496149465e+01 0 2 0 0 -12 0 +P 17 -2 3.9452709365158856e+00 1.3309715048590964e+00 4.3760023670797966e+02 4.3762004503311903e+02 0 2 0 0 -12 0 +P 40 92 0 0 4.7170060134112072e+02 4.7197366952926848e+02 1.6052645369166928e+01 2 0 0 -13 0 +V -13 0 0 0 0 0 0 8 0 +P 41 221 -2.6764857527202399e+00 -7.4082656853446693e-01 2.6999649559108772e+01 2.7147618271339081e+01 5.4744999999999999e-01 2 0 0 -24 0 +P 42 211 -1.0793700584347439e+00 -1.7691740782741042e-01 8.9362513158609644e+00 9.0040217046253623e+00 1.3957000000000000e-01 1 0 0 0 0 +P 43 223 7.3128413379081270e-01 -2.4207212017445862e-01 2.9711160638588780e+01 2.9731384214780988e+01 7.8023422073180737e-01 2 0 0 -25 0 +P 44 -213 6.8313854697846552e-02 2.1615069868878325e-01 2.6710541480290658e+01 2.6723469313128675e+01 7.9962369406794465e-01 2 0 0 -26 0 +P 45 211 -7.6171122821958814e-02 3.3362556819896899e-01 9.9768132257362261e+00 9.9836561432089255e+00 1.3957000000000000e-01 1 0 0 0 0 +P 46 223 1.1759907015886510e+00 7.6699830168521430e-03 1.5941193545306197e+02 1.5941819661887365e+02 7.8309345789913631e-01 2 0 0 -27 0 +P 47 -213 4.1784646533132969e-01 2.7042442905701480e-01 5.6342534981914696e+01 5.6346454491891919e+01 4.4040955728183379e-01 2 0 0 -28 0 +P 48 111 1.4385917785683024e+00 3.3194541757471685e-01 1.5361171468655868e+02 1.5361886877141990e+02 1.3497999999999999e-01 2 0 0 -29 0 +V -14 0 0 0 0 0 2 1 0 +P 18 2 1.5410660823344702e+00 3.0415562160378746e+00 -6.3245198112592114e+01 6.3337043135802176e+01 0 2 0 0 -14 0 +P 19 -2 -1.5410660823344702e+00 -3.0415562160378746e+00 -3.1131552297791711e+02 3.1133419471028151e+02 0 2 0 0 -14 0 +P 49 92 0 0 -3.7456072109050922e+02 3.7467123784608367e+02 9.0995980831222933e+00 2 0 0 -15 0 +V -15 0 0 0 0 0 0 3 0 +P 50 113 1.5650691169710587e+00 2.8328826851235629e+00 -6.1146078921515716e+01 6.1234504633574247e+01 5.8900305128951691e-01 2 0 0 -30 0 +P 51 211 2.0243674382169874e-01 1.1974235089754615e-01 -2.6986180398301357e+01 2.6987566232256142e+01 1.3957000000000000e-01 1 0 0 0 0 +P 52 -211 -1.7675058607927574e+00 -2.9526250360211090e+00 -2.8642846177069208e+02 2.8644916698025321e+02 1.3957000000000000e-01 1 0 0 0 0 +V -16 0 0 0 0 0 0 1 0 +P 53 92 3.9932619002775978e+00 -9.5215072778841598e+00 2.3847135982279970e+03 7.3100517292471832e+03 6.9101295742883694e+03 2 0 0 -17 0 +V -17 0 0 0 0 0 0 31 0 +P 54 2212 8.2215700554402904e-01 7.5777360143587646e-01 2.8563381940988261e+03 2.8563385670437092e+03 9.3827000000000005e-01 1 0 0 0 0 +P 55 113 -3.6038310812821978e-01 -1.6892929069557774e-01 8.6247137938804929e+02 8.6247157540874730e+02 4.2392385196816618e-01 2 0 0 -31 0 +P 56 -2214 1.0274054900145733e+00 9.2951858077602798e-02 4.5344312824574462e+02 4.5344608664771232e+02 1.2722974294659994e+00 2 0 0 -32 0 +P 57 223 -3.5950138267252507e-01 4.0383168579159467e-01 1.2478306984250651e+02 1.2478685771933476e+02 8.0809583036116783e-01 2 0 0 -33 0 +P 58 2212 1.6784465902779000e+00 -6.2450245543458038e-01 1.5667821954585344e+02 1.5669126337139798e+02 9.3827000000000005e-01 1 0 0 0 0 +P 59 -213 5.5576917486158994e-01 3.4454408402510756e-01 9.1366431045160198e+01 9.1370656398000975e+01 5.8697416466134156e-01 2 0 0 -34 0 +P 60 -311 6.8837804480312736e-02 -2.9839760512711585e-02 3.7650473956009833e+01 3.7653837700767077e+01 4.9767000000000000e-01 2 0 0 -35 0 +P 61 311 5.5852191137677354e-01 -2.3170010256673915e-01 5.8824232435728810e+01 5.8829445252735184e+01 4.9767000000000000e-01 2 0 0 -36 0 +P 62 211 3.2384754659479414e-01 -1.1095603539042695e+00 5.0326870381868780e+01 5.0340335354770062e+01 1.3957000000000000e-01 1 0 0 0 0 +P 63 113 -1.6488951177897816e-02 -7.8122143799785340e-02 4.9112488643673986e+00 4.9474711292126861e+00 5.9222479834954955e-01 2 0 0 -37 0 +P 64 -211 7.0648600777312476e-01 -6.4021847151240463e-01 6.5555221578401913e+01 6.5562302874050388e+01 1.3957000000000000e-01 1 0 0 0 0 +P 65 213 4.7207901564054866e-01 -4.3912457471518479e-01 1.4382616336991193e+01 1.4418576507834425e+01 7.8740512194284817e-01 2 0 0 -38 0 +P 66 -213 -3.0042801873910607e-01 -3.8199301959389176e-01 1.6229684769106441e+01 1.6256964556636262e+01 8.0625878581263533e-01 2 0 0 -39 0 +P 67 211 -4.3941675941743208e-01 -3.1906445983026024e+00 2.4837368567595707e+01 2.5045711353216259e+01 1.3957000000000000e-01 1 0 0 0 0 +P 68 -211 -1.3996633591260657e-01 -1.2032611277813125e-01 4.9245854481282014e-01 5.4411777389114624e-01 1.3957000000000000e-01 1 0 0 0 0 +P 69 -311 -2.6561371175678439e-01 -2.6535883073847484e+00 2.0655232762662497e+01 2.0832628193716424e+01 4.9767000000000000e-01 2 0 0 -40 0 +P 70 323 1.0866371896259655e-01 -8.8626238190570616e-01 4.6627917510728158e+00 4.8302466865539628e+00 8.9016140429299728e-01 2 0 0 -41 0 +P 71 113 -4.9783662946179669e-01 -2.2840858695582428e-01 1.7034444868848415e+00 1.9604937252009362e+00 8.0112466846605357e-01 2 0 0 -42 0 +P 72 -323 -2.9015742650522380e-01 -2.3021536904469947e-01 6.4282764365011924e-01 1.1577885131594590e+00 8.8885117621720233e-01 2 0 0 -43 0 +P 73 311 7.9013389939514289e-02 -3.2312546676672708e-02 -8.4688302464291099e-01 9.8598859161290120e-01 4.9767000000000000e-01 2 0 0 -44 0 +P 74 113 1.2774634435977392e-01 1.7876746229795942e-01 -7.0745137977013928e-01 1.0861776738766289e+00 7.9436613121131461e-01 2 0 0 -45 0 +P 75 -2112 2.3991231535880583e-01 -6.4340230480703609e-01 -2.3473851019465588e+00 2.6200253904556892e+00 9.3957000000000002e-01 1 0 0 0 0 +P 76 2112 1.4332258420217242e-01 -2.1997217583827630e-01 -2.2266533235780592e+00 2.4309886732740313e+00 9.3957000000000002e-01 1 0 0 0 0 +P 77 221 -1.5764236109767513e-01 9.2260932887338432e-01 -1.1183066194239037e+01 1.1235512008581036e+01 5.4744999999999999e-01 2 0 0 -46 0 +P 78 211 -3.9688019773273309e-01 -5.0114132735548866e-01 -1.1139586968129358e+00 1.2919134198703757e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 111 2.8720505725726897e-01 2.8206480950685814e-01 -1.0371931167428463e+00 1.1207303259460017e+00 1.3497999999999999e-01 2 0 0 -47 0 +P 80 223 4.0600347620418453e-01 -2.4511798802410625e-01 -3.5094643591439350e+01 3.5108232820041870e+01 8.5386256819630568e-01 2 0 0 -48 0 +P 81 -321 -6.1416080466482037e-01 2.7652838022953574e-01 -2.2846185259167453e+02 2.2846337866717087e+02 4.9359999999999998e-01 1 0 0 0 0 +P 82 323 1.2565639040248300e-01 -3.0746308740674749e-01 -1.4994406836076098e+03 1.4994409818689087e+03 8.8550960455907635e-01 2 0 0 -49 0 +P 83 -321 1.9429284964222532e-01 2.9316952731129947e-01 -1.6936871917454789e+02 1.6936980360698905e+02 4.9359999999999998e-01 1 0 0 0 0 +P 84 311 -9.3629085348251956e-02 -1.1090305621819395e-01 -5.0941280621429246e+02 5.0941306998980963e+02 4.9767000000000000e-01 2 0 0 -50 0 +V -18 0 0 0 0 0 2 1 0 +P 27 21 -1.3650212674856288e-01 -5.9889764280123572e+00 -1.3829130975861951e+01 1.5070877049244315e+01 0 2 0 0 -18 0 +P 28 21 1.3650212674856288e-01 5.9889764280123572e+00 -6.1244142694407962e+01 6.1536424058104799e+01 0 2 0 0 -18 0 +P 85 92 0 0 -7.5073273670269913e+01 7.6607301107349116e+01 1.5253922884976552e+01 2 0 0 -19 0 +V -19 0 0 0 0 0 0 9 0 +P 86 -2112 -3.8391846582458374e-02 -2.4829965966375998e+00 -7.9823040467504578e+00 8.4122955079137967e+00 9.3957000000000002e-01 1 0 0 0 0 +P 87 2212 1.8826721276030065e-01 -2.1411823793389910e+00 -4.4940750564267944e+00 5.0692373914317530e+00 9.3827000000000005e-01 1 0 0 0 0 +P 88 -213 2.0012868143999138e-01 -1.1118139792674885e-01 -1.6567370969599078e+00 1.8269381912397860e+00 7.3519558879763558e-01 2 0 0 -51 0 +P 89 -313 -6.2630872275736982e-01 1.3663451184419380e+00 -1.2866054962931736e+01 1.2986301018153689e+01 9.2167360059140557e-01 2 0 0 -52 0 +P 90 321 7.8884764052036593e-02 7.4459657794075773e-01 -1.0937413012935250e+01 1.0974119155786763e+01 4.9359999999999998e-01 1 0 0 0 0 +P 91 -211 4.2278301863584250e-02 3.9247341077632097e-01 -8.7403526103734830e+00 8.7503752131858565e+00 1.3957000000000000e-01 1 0 0 0 0 +P 92 211 6.4367355561099904e-02 3.6656271279001679e-01 -1.3767381548990618e+00 1.4329686357086739e+00 1.3957000000000000e-01 1 0 0 0 0 +P 93 -2212 4.1585942036274817e-02 5.6395536708324689e-01 -1.1971979631427098e+01 1.2021997418683901e+01 9.3827000000000005e-01 1 0 0 0 0 +P 94 2112 4.9188311626540610e-02 1.3014271868710594e+00 -1.5047619097566116e+01 1.5133068575244886e+01 9.3957000000000002e-01 1 0 0 0 0 +V -20 0 -7.4269769026061745e-06 -2.7446285922861489e-05 -1.0438030306862014e-01 1.0438031490658096e-01 0 2 0 +P 95 22 -4.5719298565037564e-02 -1.2006795010764217e-01 -2.7170906130817190e+02 2.7170909168361442e+02 0 1 0 0 0 0 +P 96 22 2.1135098588074424e-02 2.9217394006442684e-02 -7.3802480998431093e+01 7.3802489808083607e+01 0 1 0 0 0 0 +V -21 0 0 0 0 0 0 3 0 +P 97 211 1.9058278725344435e-01 1.3383881894953986e-01 6.8583567178648615e+00 6.8637286719855979e+00 1.3957000000000000e-01 1 0 0 0 0 +P 98 -211 -4.9893773724282060e-02 -5.3826599477990789e-02 4.3098583175285032e+00 4.3127421895514972e+00 1.3957000000000000e-01 1 0 0 0 0 +P 99 111 1.2717944250852329e-02 2.0789923927546888e-02 5.6102983279735579e+00 5.6119747768771902e+00 1.3497999999999999e-01 2 0 0 -53 0 +V -22 0 0 0 0 0 0 3 0 +P 100 111 2.0228195634579012e-02 -1.9810461285380357e-01 2.6837098683979255e+00 2.6944707969597661e+00 1.3497999999999999e-01 2 0 0 -54 0 +P 101 111 -1.9448733826450373e-01 -3.0772173043153522e-01 5.9693477937278034e+00 5.9819604370981914e+00 1.3497999999999999e-01 2 0 0 -55 0 +P 102 111 -2.6469435630176663e-01 -5.8497375613724767e-01 7.5508427208632973e+00 7.5792943466553382e+00 1.3497999999999999e-01 2 0 0 -56 0 +V -23 0 0 0 0 0 0 2 0 +P 103 -211 5.9300840341949650e-02 -7.9895912928811963e-01 3.9895681488508994e+00 4.0716073090566693e+00 1.3957000000000000e-01 1 0 0 0 0 +P 104 111 -1.2368786453413552e+00 -1.4005317185689488e+00 1.2746545583623952e+01 1.2883477860959070e+01 1.3497999999999999e-01 2 0 0 -57 0 +V -24 0 0 0 0 0 0 2 0 +P 105 22 -6.3422905570294317e-03 -7.9336321700606463e-02 8.0076038030440988e-01 8.0470594831637421e-01 0 1 0 0 0 0 +P 106 22 -2.6701434621632107e+00 -6.6149024683386048e-01 2.6198889178804361e+01 2.6342912323022706e+01 0 1 0 0 0 0 +V -25 0 0 0 0 0 0 3 0 +P 107 -211 1.7586778974385729e-02 3.3676945404653977e-02 3.2030504088469960e+00 3.2063148844056766e+00 1.3957000000000000e-01 1 0 0 0 0 +P 108 211 3.9410357646856603e-01 9.7313149537317151e-02 1.4025732004537366e+01 1.4032299367033970e+01 1.3957000000000000e-01 1 0 0 0 0 +P 109 111 3.1959377834786096e-01 -3.7306221511642979e-01 1.2482378225204421e+01 1.2492769963341344e+01 1.3497999999999999e-01 2 0 0 -58 0 +V -26 0 0 0 0 0 0 2 0 +P 110 -211 -8.4080503689870231e-02 -1.8799913200941373e-01 1.7544692223771495e+01 1.7546456001611979e+01 1.3957000000000000e-01 1 0 0 0 0 +P 111 111 1.5239435838771678e-01 4.0414983069819693e-01 9.1658492565191594e+00 9.1770133115166939e+00 1.3497999999999999e-01 2 0 0 -59 0 +V -27 0 0 0 0 0 0 3 0 +P 112 -211 4.7070025031333157e-01 6.8525031471775202e-02 4.9225309974297012e+01 4.9227805925676876e+01 1.3957000000000000e-01 1 0 0 0 0 +P 113 211 5.9651172498042482e-01 -1.2288599138979327e-01 1.0093129545527971e+02 1.0093322946022674e+02 1.3957000000000000e-01 1 0 0 0 0 +P 114 111 1.0877872629489453e-01 6.2030942934870215e-02 9.2553300234852465e+00 9.2571612329700255e+00 1.3497999999999999e-01 2 0 0 -60 0 +V -28 0 0 0 0 0 0 2 0 +P 115 -211 4.0683649987303769e-02 6.5512868154666238e-03 6.5875064226277624e+00 6.5891136529731558e+00 1.3957000000000000e-01 1 0 0 0 0 +P 116 111 3.7716281534402596e-01 2.6387314224154818e-01 4.9755028559286941e+01 4.9757340838918765e+01 1.3497999999999999e-01 2 0 0 -61 0 +V -29 0 3.6949163916019824e-04 8.5257720973118501e-05 3.9454030739861111e-02 3.9455868213549919e-02 0 2 0 +P 117 22 4.7151597958341473e-01 4.5921772870311794e-02 5.0588381905928500e+01 5.0590600114925508e+01 0 1 0 0 0 0 +P 118 22 9.6707579898488760e-01 2.8602364470440500e-01 1.0302333278063017e+02 1.0302826865649438e+02 0 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 119 -211 9.1583466897251198e-01 2.1251086350657316e+00 -4.3722848514166444e+01 4.3784264317553273e+01 1.3957000000000000e-01 1 0 0 0 0 +P 120 211 6.4923444799854679e-01 7.0777405005783134e-01 -1.7423230407349280e+01 1.7450240316020970e+01 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 121 211 -1.0733243092126835e-01 4.2644543258701532e-02 1.5591728243781708e+02 1.5591738768138310e+02 1.3957000000000000e-01 1 0 0 0 0 +P 122 -211 -2.5305067720695146e-01 -2.1157383395427928e-01 7.0655409695023229e+02 7.0655418772736425e+02 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 123 -2212 4.9944981990249282e-01 1.4870720522775491e-01 3.2948710527509917e+02 3.2948885331238847e+02 9.3827000000000005e-01 1 0 0 0 0 +P 124 111 5.2795567011208044e-01 -5.5755347150152117e-02 1.2395602297064545e+02 1.2395723333532385e+02 1.3497999999999999e-01 2 0 0 -62 0 +V -33 0 0 0 0 0 0 3 0 +P 125 211 -1.2188920384027405e-01 3.5075345690126225e-01 3.1795559830185887e+01 3.1798034367950663e+01 1.3957000000000000e-01 1 0 0 0 0 +P 126 -211 -2.2097435527052245e-01 7.1076741178384292e-02 8.2130801390093922e+01 8.2131248001797573e+01 1.3957000000000000e-01 1 0 0 0 0 +P 127 111 -1.6637823561728583e-02 -1.7998512288051847e-02 1.0856708622226705e+01 1.0857575349586533e+01 1.3497999999999999e-01 2 0 0 -63 0 +V -34 0 0 0 0 0 0 2 0 +P 128 -211 3.1091271140052751e-01 3.5632832396911990e-01 3.4350353332907815e+01 3.4353891926084358e+01 1.3957000000000000e-01 1 0 0 0 0 +P 129 111 2.4485646346106241e-01 -1.1784239944012394e-02 5.7016077712252383e+01 5.7016764471916609e+01 1.3497999999999999e-01 2 0 0 -64 0 +V -35 0 0 0 0 0 0 1 0 +P 130 310 6.8837804480312736e-02 -2.9839760512711585e-02 3.7650473956009833e+01 3.7653837700767077e+01 4.9767000000000000e-01 2 0 0 -65 0 +V -36 0 0 0 0 0 0 1 0 +P 131 130 5.5852191137677354e-01 -2.3170010256673915e-01 5.8824232435728810e+01 5.8829445252735191e+01 4.9767000000000000e-01 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 132 211 1.0828998400047013e-01 -5.1351427865948790e-02 4.3747265017350578e+00 4.3785928606872950e+00 1.3957000000000000e-01 1 0 0 0 0 +P 133 -211 -1.2477893517836794e-01 -2.6770715933836557e-02 5.3652236263234054e-01 5.6887826852539047e-01 1.3957000000000000e-01 1 0 0 0 0 +V -38 0 0 0 0 0 0 2 0 +P 134 211 1.8156078434278519e-01 -5.3337778057810092e-01 1.1827166973830426e+01 1.1841402559958460e+01 1.3957000000000000e-01 1 0 0 0 0 +P 135 111 2.9051823129776339e-01 9.4253205862916190e-02 2.5554493631607658e+00 2.5771739478759641e+00 1.3497999999999999e-01 2 0 0 -66 0 +V -39 0 0 0 0 0 0 2 0 +P 136 -211 -4.9377802104061563e-01 -2.1311641152282343e-01 6.7449678075376100e+00 6.7678139637952421e+00 1.3957000000000000e-01 1 0 0 0 0 +P 137 111 1.9335000230150959e-01 -1.6887660807106833e-01 9.4847169615688305e+00 9.4891505928410194e+00 1.3497999999999999e-01 2 0 0 -67 0 +V -40 0 0 0 0 0 0 1 0 +P 138 130 -2.6561371175678439e-01 -2.6535883073847484e+00 2.0655232762662497e+01 2.0832628193716424e+01 4.9767000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 139 311 -4.5567411934308917e-02 -1.9406127316992008e-01 1.8546771679191969e+00 1.9306058616080843e+00 4.9767000000000000e-01 2 0 0 -68 0 +P 140 211 1.5423113089690546e-01 -6.9220110873578600e-01 2.8081145831536185e+00 2.8996408249458776e+00 1.3957000000000000e-01 1 0 0 0 0 +V -42 0 0 0 0 0 0 2 0 +P 141 211 7.2357677730123915e-02 -1.3328084686398270e-01 6.2898311502468995e-02 2.1548874717056224e-01 1.3957000000000000e-01 1 0 0 0 0 +P 142 -211 -5.7019430719192066e-01 -9.5127740091841564e-02 1.6405461753823727e+00 1.7450049780303740e+00 1.3957000000000000e-01 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 143 -311 -1.0247389161942042e-01 -3.7550445704827762e-01 2.5312077640729019e-01 6.8062475129529332e-01 4.9767000000000000e-01 2 0 0 -69 0 +P 144 -211 -1.8768353488580339e-01 1.4528908800357815e-01 3.8970686724282899e-01 4.7716376186416543e-01 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 1 0 +P 145 310 7.9013389939514289e-02 -3.2312546676672708e-02 -8.4688302464291099e-01 9.8598859161290064e-01 4.9767000000000000e-01 2 0 0 -70 0 +V -45 0 0 0 0 0 0 2 0 +P 146 -211 -7.3050709928776256e-02 3.0537971459793700e-01 -7.3307859769912698e-01 8.0961545909989518e-01 1.3957000000000000e-01 1 0 0 0 0 +P 147 211 2.0079705428855016e-01 -1.2661225229997761e-01 2.5627217928987662e-02 2.7656221477673332e-01 1.3957000000000000e-01 1 0 0 0 0 +V -46 0 0 0 0 0 0 3 0 +P 148 -211 -1.3676538015193693e-01 2.1243887536093334e-01 -2.4816336935736563e+00 2.4983635882218485e+00 1.3957000000000000e-01 1 0 0 0 0 +P 149 211 -6.2902915281313837e-02 5.6601656520515309e-01 -6.6535918753555769e+00 6.6793784259866031e+00 1.3957000000000000e-01 1 0 0 0 0 +P 150 111 4.2025934335575603e-02 1.4415388830729814e-01 -2.0478406253098065e+00 2.0577699943725856e+00 1.3497999999999999e-01 2 0 0 -71 0 +V -47 0 2.1528371579891772e-05 2.1143067906480407e-05 -7.7746119899777387e-05 8.4007917995002846e-05 0 2 0 +P 151 22 1.3065354257831752e-01 1.6396812327723584e-01 -6.9933227768013839e-01 7.3008323377859696e-01 0 1 0 0 0 0 +P 152 22 1.5655151467895148e-01 1.1809668622962230e-01 -3.3786083906270786e-01 3.9064709216740479e-01 0 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 153 -211 -6.7869057726822266e-02 2.1587332720713015e-01 -6.2122541431505294e+00 6.2179408831531298e+00 1.3957000000000000e-01 1 0 0 0 0 +P 154 211 4.7387253393100676e-01 -4.6099131523123638e-01 -2.8882389448288819e+01 2.8890291936888733e+01 1.3957000000000000e-01 1 0 0 0 0 +V -49 0 0 0 0 0 0 2 0 +P 155 321 2.7028747166747208e-01 -1.7866346638866426e-01 -6.5733789914797921e+02 6.5733816432121944e+02 4.9359999999999998e-01 1 0 0 0 0 +P 156 111 -1.4463108126498905e-01 -1.2879962101808320e-01 -8.4210278445963058e+02 8.4210281754768846e+02 1.3497999999999999e-01 2 0 0 -72 0 +V -50 0 0 0 0 0 0 1 0 +P 157 130 -9.3629085348251956e-02 -1.1090305621819395e-01 -5.0941280621429246e+02 5.0941306998980963e+02 4.9767000000000000e-01 1 0 0 0 0 +V -51 0 0 0 0 0 0 2 0 +P 158 -211 -1.3297904895597815e-01 -2.9438247842001541e-01 -9.5132803387557174e-01 1.0143220809977018e+00 1.3957000000000000e-01 1 0 0 0 0 +P 159 111 3.3310773039596953e-01 1.8320108049326658e-01 -7.0540906308433615e-01 8.1261611024208424e-01 1.3497999999999999e-01 2 0 0 -73 0 +V -52 0 0 0 0 0 0 2 0 +P 160 -311 -2.8181023933901379e-02 5.6769404948908375e-01 -5.7061728336847795e+00 5.7559668641087107e+00 4.9767000000000000e-01 2 0 0 -74 0 +P 161 111 -5.9812769882346839e-01 7.9865106895285420e-01 -7.1598821292469550e+00 7.2303341540449777e+00 1.3497999999999999e-01 2 0 0 -75 0 +V -53 0 6.3322798099678783e-07 1.0351328244606082e-06 2.7933743165875751e-04 2.7942090225223967e-04 0 2 0 +P 162 22 5.8096471301070769e-02 5.3428646123028153e-02 3.7765134140627472e+00 3.7773381350893178e+00 0 1 0 0 0 0 +P 163 22 -4.5378527050218442e-02 -3.2638722195481272e-02 1.8337849139108104e+00 1.8346366417878721e+00 0 1 0 0 0 0 +V -54 0 3.7908084154555169e-06 -3.7125240783364860e-05 5.0293314033274142e-04 5.0494976204667260e-04 0 2 0 +P 164 22 2.3879476083673905e-02 -9.5043452643842410e-02 2.0569871554342769e+00 2.0593201899874849e+00 0 1 0 0 0 0 +P 165 22 -3.6512804490948913e-03 -1.0306116020996116e-01 6.2672271296364868e-01 6.3515060697228121e-01 0 1 0 0 0 0 +V -55 0 -2.8163829617978358e-05 -4.4561370745053719e-05 8.6442488078252821e-04 8.6625132533200738e-04 0 2 0 +P 166 22 -2.1272696263621679e-01 -2.5289224126334287e-01 5.0842833699721055e+00 5.0950117401727875e+00 0 1 0 0 0 0 +P 167 22 1.8239624371713066e-02 -5.4829489168192323e-02 8.8506442375569738e-01 8.8694869692540323e-01 0 1 0 0 0 0 +V -56 0 -1.0050177887851955e-04 -2.2210863847062044e-04 2.8669788660454984e-03 2.8777816615566582e-03 0 2 0 +P 168 22 -2.3432702581842058e-01 -3.6425243249658318e-01 4.8985588570153329e+00 4.9176689462846062e+00 0 1 0 0 0 0 +P 169 22 -3.0367330483346080e-02 -2.2072132364066455e-01 2.6522838638479649e+00 2.6616254003707325e+00 0 1 0 0 0 0 +V -57 0 -2.7250250929128789e-04 -3.0855768194360781e-04 2.8082509706315608e-03 2.8384191599824990e-03 0 2 0 +P 170 22 -1.2172414307179868e-02 -1.7033656066235661e-02 7.2692940643269088e-02 7.5647714627834581e-02 0 1 0 0 0 0 +P 171 22 -1.2247062310341752e+00 -1.3834980625027131e+00 1.2673852642980682e+01 1.2807830146331236e+01 0 1 0 0 0 0 +V -58 0 7.5098213197226507e-05 -8.7662237705231396e-05 2.9331118584683597e-03 2.9355537112795457e-03 0 2 0 +P 172 22 3.2605188375907718e-01 -3.4647857601151411e-01 1.2132012012470367e+01 1.2141337352419752e+01 0 1 0 0 0 0 +P 173 22 -6.4581054112161709e-03 -2.6583639104915669e-02 3.5036621273405388e-01 3.5143261092159195e-01 0 1 0 0 0 0 +V -59 0 1.4467157300980747e-06 3.8366900426852168e-06 8.7013577401450696e-05 8.7119560419112813e-05 0 2 0 +P 174 22 -2.1452482341985615e-02 1.4905556420087129e-02 4.8556153445010763e-01 4.8626370247877698e-01 0 1 0 0 0 0 +P 175 22 1.7384684072970241e-01 3.8924427427810981e-01 8.6802877220690533e+00 8.6907496090379173e+00 0 1 0 0 0 0 +V -60 0 1.3419342637882059e-05 7.6523646281469803e-06 1.1417714569953998e-03 1.1419973617136749e-03 0 2 0 +P 176 22 -1.6355529844852102e-02 4.0361833523059554e-02 4.2397615259600352e+00 4.2399851860558204e+00 0 1 0 0 0 0 +P 177 22 1.2513425613974663e-01 2.1669109411810668e-02 5.0155684975252131e+00 5.0171760469142059e+00 0 1 0 0 0 0 +V -61 0 1.8450118173567006e-05 1.2908193647738750e-05 2.4339254011843977e-03 2.4340385136936960e-03 0 2 0 +P 178 22 1.0751210652606756e-01 2.8884350394443786e-02 7.9047322108340383e+00 7.9055160795323509e+00 0 1 0 0 0 0 +P 179 22 2.6965070881795838e-01 2.3498879184710436e-01 4.1850296348452900e+01 4.1851824759386410e+01 0 1 0 0 0 0 +V -62 0 5.5808110402548016e-05 -5.8936777184863162e-06 1.3102902017394719e-02 1.3103029960268379e-02 0 2 0 +P 180 22 2.0951224553846201e-01 4.2892218244458290e-02 4.5755572283853013e+01 4.5756072057665904e+01 0 1 0 0 0 0 +P 181 22 3.1844342457361852e-01 -9.8647565394610406e-02 7.8200450686792436e+01 7.8201161277657945e+01 0 1 0 0 0 0 +V -63 0 -7.7083740048796682e-06 -8.3387868451053499e-06 5.0299590094601649e-03 5.0303605679107057e-03 0 2 0 +P 182 22 -6.6083273365725573e-02 -4.5663363344813121e-02 6.0722671538732644e+00 6.0727984101054098e+00 0 1 0 0 0 0 +P 183 22 4.9445449803996989e-02 2.7664851056761277e-02 4.7844414683534406e+00 4.7847769394811230e+00 0 1 0 0 0 0 +V -64 0 1.6595430708072929e-05 -7.9869052535450839e-07 3.8643307738137509e-03 3.8643773197462525e-03 0 2 0 +P 184 22 1.6865708784952835e-01 5.3640703946320818e-02 3.2632464854177648e+01 3.2632944779739709e+01 0 1 0 0 0 0 +P 185 22 7.6199375611534031e-02 -6.5424943890333209e-02 2.4383612858074731e+01 2.4383819692176896e+01 0 1 0 0 0 0 +V -65 0 7.5637609908900192e+00 -3.2787335134736542e+00 4.1369591657798037e+03 4.1373287673609439e+03 0 2 0 +P 186 211 1.5828490107324933e-01 -6.4280458726054257e-02 3.2153714760343846e+01 3.2154471520485849e+01 1.3957000000000000e-01 1 0 0 0 0 +P 187 -211 -8.9447096592936592e-02 3.4440698213342676e-02 5.4967591956659874e+00 5.4993661802812257e+00 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 2.5320261325297056e-06 8.2146851594660370e-07 2.2272146360575985e-05 2.2461488062029682e-05 0 2 0 +P 188 22 1.2669605830908041e-02 -2.6208921583066511e-02 3.1664036093791548e-01 3.1797569821819927e-01 0 1 0 0 0 0 +P 189 22 2.7784862546685535e-01 1.2046212744598270e-01 2.2388090022228502e+00 2.2591982496577647e+00 0 1 0 0 0 0 +V -67 0 1.3660190168239829e-04 -1.1931143282950388e-04 6.7009586679455911e-03 6.7040910313070105e-03 0 2 0 +P 190 22 3.6058703115079364e-04 4.2662265957210021e-04 -3.1743476677878273e-04 6.4249103640209230e-04 0 1 0 0 0 0 +P 191 22 1.9298941527035879e-01 -1.6930323073064041e-01 9.4850343963356085e+00 9.4885081018046158e+00 0 1 0 0 0 0 +V -68 0 0 0 0 0 0 1 0 +P 192 310 -4.5567411934308917e-02 -1.9406127316992008e-01 1.8546771679191969e+00 1.9306058616080843e+00 4.9767000000000000e-01 2 0 0 -76 0 +V -69 0 0 0 0 0 0 1 0 +P 193 310 -1.0247389161942042e-01 -3.7550445704827762e-01 2.5312077640729019e-01 6.8062475129529332e-01 4.9767000000000000e-01 2 0 0 -77 0 +V -70 0 5.4385624976392712e+00 -2.2241015692846111e+00 -5.8291718166200262e+01 6.7866479106276032e+01 0 2 0 +P 194 211 3.7783620486313486e-02 1.7172654641153431e-01 -5.6951638254031056e-01 6.1216525840763614e-01 1.3957000000000000e-01 1 0 0 0 0 +P 195 -211 4.1229769453200796e-02 -2.0403909308820700e-01 -2.7736664210260031e-01 3.7382333320526429e-01 1.3957000000000000e-01 1 0 0 0 0 +V -71 0 8.7730673005939703e-06 3.0092650734755197e-05 -4.2749421067659666e-04 4.2956700273743739e-04 0 2 0 +P 196 22 2.2729804313198435e-02 1.4173360040581309e-01 -1.0529592182762286e+00 1.0626985333767038e+00 0 1 0 0 0 0 +P 197 22 1.9296130022377168e-02 2.4202879014850413e-03 -9.9488140703357786e-01 9.9507146099588162e-01 0 1 0 0 0 0 +V -72 0 -6.1533975488663230e-05 -5.4798406078115862e-05 -3.5827660033139480e-01 3.5827661440886521e-01 0 2 0 +P 198 22 -1.6235924682431213e-01 -1.3015266567446149e-01 -6.7338370639108132e+02 6.7338373854232020e+02 0 1 0 0 0 0 +P 199 22 1.7728165559323081e-02 1.3530446563782706e-03 -1.6871907806854932e+02 1.6871907900536871e+02 0 1 0 0 0 0 +V -73 0 1.5932823142593387e-06 8.7626618918794967e-07 -3.3740309274555397e-06 3.8868112583033451e-06 0 2 0 +P 200 22 1.3362069744752528e-01 3.8397322366062157e-02 -1.4759414341141447e-01 2.0276310394298949e-01 0 1 0 0 0 0 +P 201 22 1.9948703294844422e-01 1.4480375812720442e-01 -5.5781491967292174e-01 6.0985300629909467e-01 0 1 0 0 0 0 +V -74 0 0 0 0 0 0 1 0 +P 202 310 -2.8181023933901379e-02 5.6769404948908375e-01 -5.7061728336847795e+00 5.7559668641087107e+00 4.9767000000000000e-01 2 0 0 -78 0 +V -75 0 -2.7124016605470135e-05 3.6217391200682724e-05 -3.2468779183593861e-04 3.2788266459349427e-04 0 2 0 +P 203 22 -4.6115329401590260e-01 6.6198954161011503e-01 -6.0743062014745783e+00 6.1276494957736771e+00 0 1 0 0 0 0 +P 204 22 -1.3697440480756579e-01 1.3666152734273918e-01 -1.0855759277723773e+00 1.1026846582713004e+00 0 1 0 0 0 0 +V -76 0 -2.4429198574998088e+00 -1.0403841641959659e+01 9.9431314846080440e+01 1.0350193693526136e+02 0 2 0 +P 205 -211 -6.1157976329956530e-02 7.9033809450869533e-02 2.9779915054099509e-01 3.4373065046345536e-01 1.3957000000000000e-01 1 0 0 0 0 +P 206 211 1.5590564395647613e-02 -2.7309508262078958e-01 1.5568780173782018e+00 1.5868752111446289e+00 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 -1.4903509094708578e+01 -5.4612291992451460e+01 3.6813160246280908e+01 9.8988113076509521e+01 0 2 0 +P 207 -211 -2.4069686163035753e-01 -3.2706064871694290e-01 1.7742951834380868e-01 4.6461238254868642e-01 1.3957000000000000e-01 1 0 0 0 0 +P 208 211 1.3822297001093711e-01 -4.8443808331334694e-02 7.5691258063481481e-02 2.1601236874660687e-01 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 -1.3280346540154400e-01 2.6752660668688737e+00 -2.6890418469921691e+01 2.7125073527598740e+01 0 2 0 +P 209 211 5.4187093550292845e-02 4.8896006520894103e-01 -5.0394127666042294e+00 5.0652916010423583e+00 1.3957000000000000e-01 1 0 0 0 0 +P 210 -211 -8.2368117484194217e-02 7.8733984280142638e-02 -6.6676006708054880e-01 6.9067526306635141e-01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 2 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 224 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 21 2.2381466690269431e-03 -3.4720102421292970e-01 8.5760509831394440e+00 8.5830766060849815e+00 0 3 0 0 -3 0 +P 13 1 -1.5953315142106061e-01 2.5534284672707136e-01 4.5110225338059212e+02 4.5110247456187125e+02 3.3000000000000002e-01 2 0 0 -9 0 +P 41 2203 1.5729500475203367e-01 9.1858177485858339e-02 4.1239913742420931e+03 4.1239914503976361e+03 7.7132999999999996e-01 2 0 0 -13 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 1 1.8117451391948236e-01 -9.2107013792072212e-01 -1.9146656945590603e+03 1.9146659246760862e+03 0 3 0 0 -4 0 +P 39 2203 -1.8117451391948236e-01 9.2107013792072212e-01 -4.3349283892041103e+03 4.3349285594657858e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -3 0 0 0 0 0 0 8 0 +P 5 -2 -1.2188640529118391e+01 1.1628197337501724e+00 -1.1080748662284646e+01 1.6513573162643777e+01 0 3 0 0 -5 0 +P 11 -4 1.9522097387122794e+00 -1.0579566003536176e+00 -8.1797583597675185e+00 8.6074875461043483e+00 1.5000000000000000e+00 2 0 0 -9 0 +P 12 21 1.8528631058109368e+00 6.4833945342773376e+00 -3.6105831959994241e+01 3.6730077700698025e+01 0 2 0 0 -9 0 +P 14 4 1.0685515977985798e+01 -5.1823216653895150e+00 -2.7066366488563993e+01 2.9595183805014884e+01 1.5000000000000000e+00 2 0 0 -11 0 +P 15 21 3.5171262487128507e-01 -6.4498578844444887e-01 -1.1127260710033722e+00 1.3333670713197316e+00 0 2 0 0 -11 0 +P 16 21 3.3207848203048465e-02 9.6085117788368979e-02 -6.6003952661133902e-02 1.2120904590654386e-01 0 2 0 0 -11 0 +P 17 21 -3.7579969777487718e-02 -1.6462158612486150e-01 -9.7318874051882720e-01 9.8772913565377995e-01 0 2 0 0 -11 0 +P 40 2 -5.7580659856764782e-01 -2.1687633978359599e+00 2.8191957870207176e+00 3.6182665463315975e+00 3.3000000000000002e-01 2 0 0 -13 0 +V -4 0 0 0 0 0 0 12 0 +P 6 1 -1.0356250591506910e+01 -7.5276061205649762e+00 -8.5247158145293622e+02 8.5256771811105455e+02 0 3 0 0 -5 0 +P 28 21 8.2987543073312353e-01 1.2838272062790441e+00 -3.8410647385758452e+01 3.8441055372078296e+01 0 2 0 0 -11 0 +P 29 21 1.4485320516326545e+00 3.4111844708869525e+00 -3.4836760966940879e+01 3.5033331832225194e+01 0 2 0 0 -11 0 +P 30 21 4.7483608911375708e+00 5.0805058534361418e+00 -7.0730773803904057e+01 7.1071800552528032e+01 0 2 0 0 -11 0 +P 31 21 7.0471823787681096e+00 5.3004641843654632e+00 -7.0878720555638282e+01 7.1425140725473000e+01 0 2 0 0 -11 0 +P 32 21 6.4330986433301513e-05 -2.8659752464543387e-01 -2.0138946295725479e+00 2.0341852728531187e+00 0 2 0 0 -11 0 +P 33 21 -2.0101138190485397e+00 1.8374935910906517e-01 -1.0007919765693144e+02 1.0009955107315744e+02 0 2 0 0 -11 0 +P 34 21 -1.9229525710899356e+00 -1.5157785543803595e+00 -2.2906932968426068e+02 2.2908241559144841e+02 0 2 0 0 -11 0 +P 35 21 -3.1664534528418580e+00 -1.7416366637989906e+00 -8.3806850645725774e+01 8.3884730081777633e+01 0 2 0 0 -11 0 +P 36 21 -3.7168946513508216e-01 -3.5284021138698476e+00 -1.0878664867278101e+02 1.0884448862478403e+02 0 2 0 0 -11 0 +P 37 21 -3.1241121155591017e-01 2.4591674095968902e-01 -7.8556145968468542e+01 7.8557152094687893e+01 0 2 0 0 -11 0 +P 38 21 2.1757864903890276e+00 -6.9754834757800643e-01 -1.5468366370543001e+02 1.5470053793663271e+02 0 2 0 0 -11 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 -1.3261813212669724e+01 -8.0763106975450007e+00 -1.0418644172499936e+02 1.0533715927196684e+02 0 3 0 0 -6 0 +P 8 -24 -9.2830779079555814e+00 1.7115243107301954e+00 -7.5936588839022193e+02 7.6374413200173183e+02 8.1113758792799615e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 -1.3261813212669724e+01 -8.0763106975450007e+00 -1.0418644172499936e+02 1.0533715927196684e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 -24 -9.2830779079555814e+00 1.7115243107301954e+00 -7.5936588839022193e+02 7.6374413200173183e+02 8.1113758792799615e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 6 0 +P 42 -4 -3.6405680130529461e+01 2.3505435732580519e+01 -3.4936432423810379e+02 3.5204482684040653e+02 1.5000000000000000e+00 2 0 0 -15 0 +P 43 21 -1.2696872981433902e+00 -7.3488203514654904e-02 -1.1342868074612710e+01 1.1413945965755696e+01 0 2 0 0 -15 0 +P 44 21 -4.1552470502532822e-02 -2.4740042534493506e-01 -1.9652301256829328e+00 1.9811771816668682e+00 0 2 0 0 -15 0 +P 45 21 9.2875684016986071e-01 -5.2482893316735224e-01 -8.2669188038171093e+00 8.3354652651280841e+00 0 2 0 0 -15 0 +P 46 21 2.5933060912540751e+00 -1.5432000571134972e+00 -4.0105536618336508e+01 4.0218910606130805e+01 0 2 0 0 -15 0 +P 47 3 2.4911779059795872e+01 -1.9404993802709878e+01 -3.4832101052966868e+02 3.4974980614264371e+02 5.0000000000000000e-01 2 0 0 -15 0 +V -9 0 0 0 0 0 0 1 0 +P 52 92 3.6455396931021555e+00 5.6807807806507915e+00 4.0681666306083036e+02 4.9644003980867365e+02 2.8444218138552606e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 17 0 +P 53 -423 1.8014118894544171e+00 -7.4135744726077624e-01 -9.8985325423010675e+00 1.0286033591286305e+01 2.0066999999999999e+00 2 0 0 -21 0 +P 54 -323 5.0264419845508967e-01 1.5096096593072483e+00 -6.4075559093590417e+00 6.6727104662027399e+00 9.6784281807288342e-01 2 0 0 -22 0 +P 55 313 6.4824466837653216e-01 1.7028313815609744e+00 -1.2490128522047499e+01 1.2658108385343498e+01 9.5107388447566010e-01 2 0 0 -23 0 +P 56 113 3.1373653839431187e-01 1.0591234964860790e+00 -3.8183528211076077e+00 4.0448247418494256e+00 7.4874276589783129e-01 2 0 0 -24 0 +P 57 223 8.2692544173461439e-03 4.6939097115965078e-01 -5.5469163366739194e+00 5.6207627549321177e+00 7.7736531746492565e-01 2 0 0 -25 0 +P 58 213 1.9044107216389983e-01 8.1937027750395064e-01 -3.6346431429697050e+00 3.7966133083889493e+00 7.0427720613090783e-01 2 0 0 -26 0 +P 59 223 4.7623181452657998e-01 3.2991099537503743e-01 -1.3035235691380478e+00 1.6193069146444774e+00 7.6638318254016657e-01 2 0 0 -27 0 +P 60 -323 -1.0115943353617618e-01 5.6476717758048370e-03 1.7300715275273690e-01 8.2205819328193652e-01 7.9723463989499699e-01 2 0 0 -28 0 +P 61 313 -7.7118065121252105e-02 3.7088297201745679e-01 6.5831368662425160e-01 1.1370141416373667e+00 8.4612225676080488e-01 2 0 0 -29 0 +P 62 213 -3.5806889091875166e-01 -1.8533975814985065e-01 2.0214743365951066e-01 7.5874614723662881e-01 6.1013766841301631e-01 2 0 0 -30 0 +P 63 221 5.3742504319834894e-01 2.2371832414580742e-01 7.6764387006558730e+00 7.7179199395330977e+00 5.4744999999999999e-01 2 0 0 -31 0 +P 64 -213 -3.5723363435424654e-01 -2.4687075875660527e-01 4.3946274554500251e+00 4.4381896913330143e+00 4.4296300411712430e-01 2 0 0 -32 0 +P 65 211 -9.6962110337190308e-03 -1.9969339915386206e-01 9.7285408505103610e-01 1.0029438298701092e+00 1.3957000000000000e-01 1 0 0 0 0 +P 66 -213 3.6007407932397151e-01 -1.9108983779111039e-02 2.4483370677350226e+01 2.4497188617868417e+01 7.3945382481060740e-01 2 0 0 -33 0 +P 67 113 -3.7252120952480011e-01 1.1767633929689882e-02 3.8343277541438461e+01 3.8352383249490323e+01 7.4796909511894960e-01 2 0 0 -34 0 +P 68 113 -9.0606939026123462e-02 1.6342699333927246e-01 1.6719221309737839e+02 1.6719396525633584e+02 7.4228009410397144e-01 2 0 0 -35 0 +P 69 221 1.7346551830672804e-01 4.0747075115002573e-01 2.0582006607406680e+02 2.0582127057943939e+02 5.4744999999999999e-01 2 0 0 -36 0 +V -11 0 0 0 0 0 10 1 0 +P 18 21 -3.8916892480043179e+00 -1.8950634673498339e+00 4.3405633505207952e+01 4.3620929961851424e+01 0 2 0 0 -11 0 +P 19 21 -3.9110823174159708e+00 3.1313981445182435e+00 7.8933491919030098e+02 7.8935081989720652e+02 0 2 0 0 -11 0 +P 20 21 3.8916892480043179e+00 1.8950634673498339e+00 1.4168700767391088e+03 1.4168766886604622e+03 0 2 0 0 -11 0 +P 21 21 4.3740574207816687e+00 6.7194450447463385e+00 8.3124634883261848e+01 8.3510408001070459e+01 0 2 0 0 -11 0 +P 22 21 3.9110823174159708e+00 -3.1313981445182435e+00 3.6591766345710994e+01 3.6933177273722393e+01 0 2 0 0 -11 0 +P 23 21 -1.7556414536864717e+00 -3.2948210135311675e+00 9.6577188877003675e+00 1.0354209604743055e+01 0 2 0 0 -11 0 +P 24 21 -4.3740574207816687e+00 -6.7194450447463385e+00 8.7596980484749754e-01 8.0653978902882315e+00 0 2 0 0 -11 0 +P 25 21 -2.3472186202550427e+00 -1.7652302001002413e+00 -4.8822773731482902e+00 5.6975525674603205e+00 0 2 0 0 -11 0 +P 26 21 1.7556414536864717e+00 3.2948210135311675e+00 -4.6484359802172142e+00 5.9620532945694862e+00 0 2 0 0 -11 0 +P 27 21 2.3472186202550427e+00 1.7652302001002413e+00 -7.2800433838180606e+02 7.2801026241093734e+02 0 2 0 0 -11 0 +P 70 92 1.9317863021338749e+01 2.7609108265139839e+00 -3.6936736405113015e+03 8.4685219372436368e+03 7.6205156017495565e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 90 0 +P 91 -213 -1.4723087124553025e+00 1.8245140592851474e+00 3.9234982586875026e+02 3.9235769486019092e+02 8.2359715080257312e-01 2 0 0 -52 0 +P 92 213 1.7539750249024346e+00 1.4987779798051035e+00 6.9123026432414906e+02 6.9123466203199087e+02 8.7000748675694395e-01 2 0 0 -53 0 +P 93 -211 -8.9424661017914325e-02 -3.0761209203019885e-01 1.4068666240461201e+02 1.4068709635323111e+02 1.3957000000000000e-01 1 0 0 0 0 +P 94 111 7.0564265001932358e-01 3.8262897153753883e-01 1.6816678510920750e+02 1.6816875503507225e+02 1.3497999999999999e-01 2 0 0 -54 0 +P 95 223 1.8302919870385345e-01 6.5783452518379060e-01 2.6383157492994411e+02 2.6383362307134547e+02 7.8389220432534346e-01 2 0 0 -55 0 +P 96 113 1.1656756707026841e+00 -6.4896512612338464e-01 1.0945955049891027e+02 1.0947082232861229e+02 8.2933128176902648e-01 2 0 0 -56 0 +P 97 213 -3.5903158855632840e-02 9.9198943525646954e-01 3.7343100725470698e+01 3.7367385916754081e+01 9.1050885910361523e-01 2 0 0 -57 0 +P 98 221 4.2162092047841054e-01 3.3016782868221339e-01 8.5630844493739087e+00 8.5972607140467154e+00 5.4744999999999999e-01 2 0 0 -58 0 +P 99 -213 9.7457004419126791e-01 2.5386776349576827e+00 3.2029157610337023e+01 3.2157623407268844e+01 9.2256981884626144e-01 2 0 0 -59 0 +P 100 111 1.2787995261416203e+00 5.9131216608945592e-01 1.8321222064458190e+01 1.8375809528872868e+01 1.3497999999999999e-01 2 0 0 -60 0 +P 101 331 1.5941076518656097e+00 2.2203899316199833e+00 3.0301907248901987e+01 3.0440010892784585e+01 9.5779412068020275e-01 2 0 0 -61 0 +P 102 213 1.7703923967892532e+00 -1.5783757695402438e+00 1.7113365104763496e+01 1.7299350723397684e+01 8.8017664914626426e-01 2 0 0 -62 0 +P 103 -211 -1.8759452428865081e-01 -1.2769116703025019e-01 3.8721698603132602e+00 3.8813239946826195e+00 1.3957000000000000e-01 1 0 0 0 0 +P 104 211 6.9482022183564407e-01 -7.4276553322659658e-02 2.8254613298076237e+00 2.9139326790753919e+00 1.3957000000000000e-01 1 0 0 0 0 +P 105 311 6.3686850058466904e-01 -2.8985459322238305e-01 6.1254602664267574e+00 6.1853501175537389e+00 4.9767000000000000e-01 2 0 0 -63 0 +P 106 333 8.7207094479077651e-02 -2.0295472311855449e+00 7.6184364527955317e+00 7.9504887791525123e+00 1.0212887942231736e+00 2 0 0 -64 0 +P 107 -323 -1.9822568338569455e-01 -1.5507438333859327e-01 2.6398270078375625e+00 2.7898910808615089e+00 8.6687030508629537e-01 2 0 0 -65 0 +P 108 113 -1.1042506848572424e+00 -1.9030565630970109e+00 5.3217383054275196e+00 5.8133432539368144e+00 7.9565528923260520e-01 2 0 0 -66 0 +P 109 213 -7.2310463393123914e-01 -7.6975522680298714e-01 6.1285789995101991e-01 1.6294860676683323e+00 1.0789933356557311e+00 2 0 0 -67 0 +P 110 -211 -4.3482640295969677e-01 -8.1532294744635425e-01 1.7768661421435300e-01 9.5125066471169373e-01 1.3957000000000000e-01 1 0 0 0 0 +P 111 213 -5.9736000021821500e-01 -1.2204809639168086e+00 2.6747136936349564e-01 1.5533645053088498e+00 7.0355355146585397e-01 2 0 0 -68 0 +P 112 -211 -1.4286103486218285e+00 -1.6452141393289603e+00 4.8302563621898731e-01 2.2361687419741094e+00 1.3957000000000000e-01 1 0 0 0 0 +P 113 111 4.3583065059189477e-02 -2.4339437891750076e-01 6.2664394827260231e-02 2.8859441094320626e-01 1.3497999999999999e-01 2 0 0 -69 0 +P 114 213 -1.1457523430575574e+00 -1.7185955494709606e+00 -2.0075212146900698e+00 2.9665875925104452e+00 7.1005733734910470e-01 2 0 0 -70 0 +P 115 -213 -9.9510244241403112e-01 -3.8721112665348262e-01 -1.1073021899671061e+00 1.6337817612725141e+00 5.5042108976504500e-01 2 0 0 -71 0 +P 116 321 3.6387094509041512e-01 4.3920647350883402e-01 9.9248798190379642e-02 7.6078622161241372e-01 4.9359999999999998e-01 1 0 0 0 0 +P 117 -321 -1.2747399230810363e-01 -1.0200080057828731e+00 -1.4513610769384608e+00 1.8457399291959007e+00 4.9359999999999998e-01 1 0 0 0 0 +P 118 211 -2.0133216812193178e-01 3.5802685432120634e-01 -1.7925786519980291e+00 1.8443253180593948e+00 1.3957000000000000e-01 1 0 0 0 0 +P 119 311 -2.8765138987802308e-01 7.2322394316508809e-01 -1.3293539465693636e+00 1.6188432716682488e+00 4.9767000000000000e-01 2 0 0 -72 0 +P 120 -321 1.0298266079353463e-01 -1.3133623038629999e-01 -8.4534917780111540e-01 9.9303113055191838e-01 4.9359999999999998e-01 1 0 0 0 0 +P 121 113 -2.0064710281109285e-02 9.6668445379680457e-01 -2.7580016928497004e+00 3.0477179748732270e+00 8.6436687279907831e-01 2 0 0 -73 0 +P 122 213 6.9914421880252642e-01 4.8815033788881651e-01 -2.1395488946251060e+00 2.3683512678933512e+00 5.5165647333695911e-01 2 0 0 -74 0 +P 123 223 1.5872029432710627e-01 -2.3339814721712135e-01 -7.4179222929870310e+00 7.4628850957322737e+00 7.6773431625352861e-01 2 0 0 -75 0 +P 124 223 -3.0717425565275075e-01 5.6842261363386204e-01 -1.7694534053195312e+01 1.7723823647209741e+01 7.8735571800585269e-01 2 0 0 -76 0 +P 125 1114 7.6998734838977989e-01 -3.4728630806103294e-01 -1.9364499157932190e+02 1.9364995150560429e+02 1.0988476103652125e+00 2 0 0 -77 0 +P 126 111 6.5158363716255141e-01 1.5605607263941090e+00 -1.1121050811925711e+02 1.1122344737851247e+02 1.3497999999999999e-01 2 0 0 -78 0 +P 127 -2112 1.0813888713417015e-01 9.3320687480095546e-02 -7.6290462496469246e+01 7.6296381712894501e+01 9.3957000000000002e-01 1 0 0 0 0 +P 128 211 3.9294549049558353e-01 -4.8295703118897615e-01 -5.9670507038186024e+01 5.9673918453806799e+01 1.3957000000000000e-01 1 0 0 0 0 +P 129 -211 -4.9079394553889405e-02 3.0193103218666079e-01 -5.2738809586108296e+01 5.2739881375291844e+01 1.3957000000000000e-01 1 0 0 0 0 +P 130 113 7.7374346420721107e-01 8.6434540604482102e-01 -8.8859763366085502e+01 8.8870436517698323e+01 7.4240786646212009e-01 2 0 0 -79 0 +P 131 223 1.6985777384718924e-02 2.8325881170135603e-01 -9.6927730933742907e+01 9.6931159023301547e+01 7.6422612195160899e-01 2 0 0 -80 0 +P 132 223 3.0185368861046491e-01 2.4293189269126073e-01 -3.2090245504750932e+01 3.2101336386389761e+01 7.4953964748340296e-01 2 0 0 -81 0 +P 133 221 6.5201407902947539e-01 -1.2988330070145512e-02 -7.4859939959601558e+00 7.5342616536739797e+00 5.4744999999999999e-01 2 0 0 -82 0 +P 134 213 1.2458254485181726e+00 2.4534172247832897e+00 -3.9148897598913670e+01 3.9260611329490111e+01 1.0899915724536897e+00 2 0 0 -83 0 +P 135 221 8.8556817596659831e-01 9.1587012185965244e-01 -1.2421218347891800e+01 1.2498376527489638e+01 5.4744999999999999e-01 2 0 0 -84 0 +P 136 -211 1.8161190527346487e+00 1.8932700926893988e+00 -2.7662401209321924e+01 2.7786879646840031e+01 1.3957000000000000e-01 1 0 0 0 0 +P 137 111 7.2247895685888563e-01 1.1632455888028332e+00 -1.2867988035904569e+01 1.2941346600549585e+01 1.3497999999999999e-01 2 0 0 -85 0 +P 138 113 1.2139941660877747e+00 1.6756779361740803e+00 -1.8860823514754017e+01 1.8989026284653107e+01 7.5549798376482546e-01 2 0 0 -86 0 +P 139 211 1.1157147548814101e+00 5.0436447513334515e-01 -1.1621107696187737e+01 1.1686266589862242e+01 1.3957000000000000e-01 1 0 0 0 0 +P 140 -213 4.5823331418939195e-01 1.1538176266903686e+00 -1.8447864138782936e+01 1.8525111286873642e+01 1.1466403194399666e+00 2 0 0 -87 0 +P 141 213 2.0821117255183093e+00 1.6804026242358250e+00 -2.6142179810664658e+01 2.6288201716404078e+01 7.0501206525005999e-01 2 0 0 -88 0 +P 142 313 1.7813828024493763e+00 1.2357154576419902e+00 -2.2601396009113010e+01 2.2725602197916988e+01 9.6414538120668236e-01 2 0 0 -89 0 +P 143 -313 1.4186766512402984e+00 6.4743845122084742e-01 -1.8091956801791984e+01 1.8183781843473593e+01 9.4826221280775747e-01 2 0 0 -90 0 +P 144 2112 -1.1231017999695494e+00 5.3690695272926670e-01 -5.0961864079027272e+01 5.0985723579479917e+01 9.3957000000000002e-01 1 0 0 0 0 +P 145 -213 -5.7530555364241898e-01 -4.7810186265971222e-01 -9.4505926829143817e+01 9.4510818189169768e+01 6.0414491613054433e-01 2 0 0 -91 0 +P 146 -1114 -8.0379050531219987e-01 -7.4317351469684056e-01 -3.3976739042042894e+01 3.4017782197130039e+01 1.2618730645032841e+00 2 0 0 -92 0 +P 147 -213 -1.7993965627187491e-01 6.2933882558033644e-02 -4.3212693477627020e+01 4.3219348613222635e+01 7.3408310595441117e-01 2 0 0 -93 0 +P 148 211 -1.1857733256197995e+00 -2.3402786696214123e-01 -3.9319959891382794e+01 3.9338779252375360e+01 1.3957000000000000e-01 1 0 0 0 0 +P 149 311 -1.4096245121895092e+00 -2.1826091973706498e+00 -7.8978356177349141e+01 7.9022650196503378e+01 4.9767000000000000e-01 2 0 0 -94 0 +P 150 -323 -3.0387368245023250e-01 -3.9194042956116942e-01 -7.8833271694584482e+01 7.8839861573241009e+01 8.9055617476780402e-01 2 0 0 -95 0 +P 151 213 -1.8006034881526349e+00 -1.2055027990336920e+00 -8.9338286707006162e+01 8.9369650117474464e+01 9.5366684777524879e-01 2 0 0 -96 0 +P 152 113 4.9137946671111676e-01 -9.7164155725422818e-01 -5.0430982625195028e+01 5.0451579348850466e+01 9.4462116985729094e-01 2 0 0 -97 0 +P 153 221 2.6692022391655834e-01 -2.6056453113669759e-01 -2.1564701043027426e+01 2.1574873646408001e+01 5.4744999999999999e-01 2 0 0 -98 0 +P 154 311 4.1329176006341922e-01 1.8028596136298070e-01 -8.9119644403072215e+01 8.9122174609160766e+01 4.9767000000000000e-01 2 0 0 -99 0 +P 155 -321 3.6881058325853905e-01 -3.6759956648503250e-01 -5.2482305038393726e+01 5.2487209239876819e+01 4.9359999999999998e-01 1 0 0 0 0 +P 156 221 -4.0997910950580485e-01 -2.7374853556398043e-01 -4.8760304863457051e+01 4.8765869755503466e+01 5.4744999999999999e-01 2 0 0 -100 0 +P 157 211 7.1285808765427905e-01 -3.2842857210290849e-01 -1.3495391606091425e+02 1.3495627059140784e+02 1.3957000000000000e-01 1 0 0 0 0 +P 158 113 -8.5570937057012242e-01 4.5138982048336918e-01 -3.8575888425787775e+02 3.8576089945786532e+02 7.8662275684624183e-01 2 0 0 -101 0 +P 159 -211 8.5048282385916807e-01 -2.4394986791084675e-01 -2.3972504452141907e+03 2.3972506125543050e+03 1.3957000000000000e-01 1 0 0 0 0 +P 160 2224 -1.9025691153649760e-03 7.5090832178153066e-01 -1.3897064940632451e+03 1.3897072600852762e+03 1.2510896217992251e+00 2 0 0 -102 0 +P 72 213 1.0805121219025640e+00 -6.6038780518628226e-01 -2.3089962780132609e+00 2.7002122967490942e+00 5.9671109996278038e-01 2 0 0 -38 0 +P 73 331 8.8350480325607927e-01 -9.1723208806001100e-01 -1.3273651063348788e+00 2.0738588580152020e+00 9.5765181392258825e-01 2 0 0 -39 0 +P 74 -213 1.6671177452769768e+00 -6.0237742035546349e-01 -4.3269280810687976e+00 4.7129738478160546e+00 5.8964034655445841e-01 2 0 0 -40 0 +P 75 111 -2.2944867559712592e-01 -5.4494370034286373e-02 -1.1132060518150413e+00 1.1458898923091787e+00 1.3497999999999999e-01 2 0 0 -41 0 +P 76 211 1.9057714121074421e-01 -3.7678379479520874e-01 3.2988192916386494e-01 5.5370348279671411e-01 1.3957000000000000e-01 1 0 0 0 0 +P 77 -211 2.1514156450681340e-01 4.1042646895793555e-01 1.1603516057783952e-01 4.9767431377362004e-01 1.3957000000000000e-01 1 0 0 0 0 +P 78 211 1.1821640765841486e-01 -7.3020341573840120e-01 -1.3087805912292785e+00 1.5098207073272469e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 3112 -1.2499623449219958e-01 -5.9241869360866006e-02 4.0162992375308786e+00 4.1932869895481408e+00 1.1974400000000001e+00 2 0 0 -42 0 +P 80 311 -1.0795922983869366e-01 -3.0104120411989399e-02 1.6962385074932020e+00 1.7712882195102833e+00 4.9767000000000000e-01 2 0 0 -43 0 +P 81 -1114 -5.9337323488907867e-01 -4.6246084613168187e-01 7.5339721507890793e+00 7.6936474040793801e+00 1.3658375376831626e+00 2 0 0 -44 0 +P 82 -211 -3.9495796561206009e-01 3.0833169972538993e-01 9.3878856442942862e+00 9.4022835995784941e+00 1.3957000000000000e-01 1 0 0 0 0 +P 83 211 -3.1344790463608746e-01 -7.2171857255188154e-01 8.5253322989485287e+00 8.5627038883335214e+00 1.3957000000000000e-01 1 0 0 0 0 +P 84 -213 -1.2690227290925465e-01 -1.0105632908426881e-01 5.1452653640166943e+00 5.1881794411189812e+00 6.4585886893524336e-01 2 0 0 -45 0 +P 85 213 -1.2041062649028871e+00 -1.2215218528395928e-01 2.3429585452245682e+01 2.3473631837985316e+01 7.7532196386217789e-01 2 0 0 -46 0 +P 86 223 -7.4237011822675184e-02 1.4248179815169867e-01 1.5165880769368950e+01 1.5186849387363358e+01 7.8143624628963737e-01 2 0 0 -47 0 +P 87 -213 -9.0074449059785699e-01 -6.0424612216057405e-01 2.4880423729369195e+01 2.4913870228144820e+01 6.9927875585816668e-01 2 0 0 -48 0 +P 88 323 -3.9622224355221425e-01 4.7691198706436511e-01 8.3475162278290014e+01 8.3482329557234976e+01 9.0121795712962360e-01 2 0 0 -49 0 +P 89 -313 -1.1785958161298775e+00 4.3758697222424819e-01 2.3405851550380999e+02 2.3406361463389302e+02 8.9802292856965138e-01 2 0 0 -50 0 +P 90 111 -2.1010818134776000e-02 1.4739930625154105e-01 2.2010537086033544e+01 2.2011454527723057e+01 1.3497999999999999e-01 2 0 0 -51 0 +P 71 423 6.7375280292117559e+00 -3.1280786052117606e+00 -1.8078833346658740e+01 1.9648160722343899e+01 2.0066999999999999e+00 2 0 0 -37 0 +V -13 0 0 0 0 0 0 1 0 +P 161 92 -4.1851159381561415e-01 -2.0769052203501017e+00 4.1268105700291135e+03 4.1276097169439681e+03 8.1191168355921960e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 14 0 +P 162 211 -3.1267035370541174e-01 -1.6630336354906903e+00 2.9600402088397786e+00 3.4124421527269715e+00 1.3957000000000000e-01 1 0 0 0 0 +P 163 223 -1.3456644959131422e-02 1.0490675531334205e-01 2.8997985766568299e+00 3.0056909067982369e+00 7.8368331194730689e-01 2 0 0 -103 0 +P 164 -213 -7.6664826358880125e-02 -1.5791348259790233e-01 2.8310851989334567e+00 2.9388621741173262e+00 7.6879991626605593e-01 2 0 0 -104 0 +P 165 113 -3.9648671529754964e-01 -2.4605982607667140e-01 7.6583440010326704e+00 7.7151393693837971e+00 8.0956500507766405e-01 2 0 0 -105 0 +P 166 223 8.9691194834938370e-02 -2.5125974088198971e-02 1.8317488091703201e+01 1.8334490887220280e+01 7.8390706009713318e-01 2 0 0 -106 0 +P 167 331 7.9224066352126379e-02 -2.1422931649456503e-01 1.6453778503957725e+01 1.6483212902440073e+01 9.5776295456158800e-01 2 0 0 -107 0 +P 168 211 1.5527914687816030e-01 -4.5548875201547573e-02 2.0928087163014524e+01 2.0929178158760095e+01 1.3957000000000000e-01 1 0 0 0 0 +P 169 113 -9.0692399597892714e-02 1.6957858902038977e-01 7.6922069406224782e+00 7.7066837587922024e+00 4.3121332478473434e-01 2 0 0 -108 0 +P 170 -211 1.9561892851724411e-02 -3.4229386330714748e-02 4.3617570241825661e+00 4.3641675542360279e+00 1.3957000000000000e-01 1 0 0 0 0 +P 171 211 1.4955539305015297e-01 -7.3620802444243974e-02 6.1402424512466673e+01 6.1402809403415823e+01 1.3957000000000000e-01 1 0 0 0 0 +P 172 313 -9.7870346573322886e-02 5.6843447855507345e-01 7.2008545829421976e+01 7.2016348838853801e+01 8.8945559212654413e-01 2 0 0 -109 0 +P 173 -313 -1.3048017096509981e-01 -7.9611017480924984e-01 2.3671747454399076e+02 2.3672050958431549e+02 8.8661541134793842e-01 2 0 0 -110 0 +P 174 2112 5.2848587189431351e-01 -1.8847878506702731e-01 1.0586464613615185e+03 1.0586470269955985e+03 9.3957000000000002e-01 1 0 0 0 0 +P 175 211 -3.2198770221974171e-01 5.2452521536190455e-01 2.6139330780727728e+03 2.6139331542573095e+03 1.3957000000000000e-01 1 0 0 0 0 +V -15 0 0 0 0 0 0 1 0 +P 176 92 -9.2830779079555690e+00 1.7115243107302014e+00 -7.5936588839022170e+02 7.6374413200173171e+02 8.1113758792800169e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 10 0 +P 177 -411 -2.6390450740240546e+01 1.6827024890099779e+01 -2.5400527191191205e+02 2.5593314966697744e+02 1.8693000000000000e+00 2 0 0 -111 0 +P 178 -2112 -3.3029260138577476e+00 1.9451764508002454e+00 -3.1157827697945482e+01 3.1406783507986372e+01 9.3957000000000002e-01 1 0 0 0 0 +P 179 2112 -3.6871070129151744e+00 2.3786739914127644e+00 -3.4678443322119684e+01 3.4967557408439028e+01 9.3957000000000002e-01 1 0 0 0 0 +P 180 -313 -1.6887882543152506e+00 9.5163004863946332e-01 -1.9256191761625256e+01 1.9375050572033444e+01 9.1326775426620022e-01 2 0 0 -112 0 +P 181 323 -1.0684585629853891e+00 1.1397180800571156e+00 -1.1888673019374792e+01 1.2026652906041873e+01 9.2696977187468266e-01 2 0 0 -113 0 +P 182 -323 -1.0389598140931948e+00 -2.4279557457761929e-02 -1.5588480592748905e+01 1.5651040269879616e+01 9.3504403461721142e-01 2 0 0 -114 0 +P 183 321 9.7335278175105699e-01 -7.7540269787809635e-01 -1.2014313647022332e+01 1.2088673969904482e+01 4.9359999999999998e-01 1 0 0 0 0 +P 184 113 9.1572165877639158e+00 -6.8871050884448293e+00 -1.3173902282931255e+02 1.3223974804671991e+02 9.4551324862806529e-01 2 0 0 -115 0 +P 185 111 1.5749182160948232e+00 -1.4409120111312630e+00 -2.3979729812343567e+01 2.4074930036961863e+01 1.3497999999999999e-01 2 0 0 -116 0 +P 186 -321 1.6188124904841935e+01 -1.2402999795367213e+01 -2.2505793379581706e+02 2.2598054561678759e+02 4.9359999999999998e-01 1 0 0 0 0 +V -17 0 0 0 0 0 2 1 0 +P 48 3 2.6809949063516858e+00 -2.1334338920576483e+00 -4.9258539041941329e+00 6.0002758724185767e+00 0 2 0 0 -17 0 +P 49 -3 -2.6809949063516858e+00 2.1334338920576483e+00 2.5402154973416849e+01 2.5632181942884813e+01 0 2 0 0 -17 0 +P 187 92 0 0 2.0476301069222714e+01 3.1632457815303390e+01 2.4110858175508753e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 11 0 +P 188 -321 2.3165815711701914e+00 -1.4668486212149290e+00 -3.7345492849367883e+00 4.6592589942036238e+00 4.9359999999999998e-01 1 0 0 0 0 +P 189 213 -1.8805628523845630e-01 -4.7820853896800425e-01 -1.8580072096583751e-02 8.0239109587132929e-01 6.1598512846892473e-01 2 0 0 -117 0 +P 190 -211 5.2779424626199234e-01 -6.9896042852539919e-02 3.7768327334195961e-01 6.6751529050352554e-01 1.3957000000000000e-01 1 0 0 0 0 +P 191 213 -1.6891692283320525e-01 6.6648603572310589e-02 1.6599824117289130e+00 1.9453974090260178e+00 9.9802530459814820e-01 2 0 0 -118 0 +P 192 113 -7.4221913151521435e-01 4.9737556351137047e-01 2.7144616154803280e+00 2.9374218163653363e+00 6.7961266540398446e-01 2 0 0 -119 0 +P 193 -213 2.6977494445296846e-02 3.3051528732393581e-01 2.9686265628592207e-01 7.9252551915710912e-01 6.5574470753239167e-01 2 0 0 -120 0 +P 194 211 -6.8694313677862559e-03 -3.6465893769440583e-01 8.2207140953389746e-01 9.1011236515101712e-01 1.3957000000000000e-01 1 0 0 0 0 +P 195 113 -1.7926234409549882e-01 4.5811796288984646e-01 4.3631920667074748e+00 4.4594263972685484e+00 7.7912240741974559e-01 2 0 0 -121 0 +P 196 -213 -8.7517280978279891e-02 1.1556616042151517e-01 1.2143912094050173e+00 1.4643347407834515e+00 8.0530454592083023e-01 2 0 0 -122 0 +P 197 323 -7.6278088917320597e-01 6.2000960206627131e-01 7.1458893862408148e+00 7.2776101788726990e+00 9.6624438094104526e-01 2 0 0 -123 0 +P 198 221 -7.3573102667583368e-01 2.9137896094462912e-01 5.6348963975317616e+00 5.7164640081007310e+00 5.4744999999999999e-01 2 0 0 -124 0 +V -19 0 0 0 0 0 2 1 0 +P 50 21 1.2797607567819380e+00 -2.6322105018962016e+00 9.7689792994647917e-01 3.0855549397840010e+00 0 2 0 0 -19 0 +P 51 21 -1.2797607567819380e+00 2.6322105018962016e+00 2.1455385372104661e+00 3.6290019751368225e+00 0 2 0 0 -19 0 +P 199 92 0 0 3.1224364671569451e+00 6.7145569149208235e+00 5.9443809662806357e+00 2 0 0 -20 0 +V -20 0 0 0 0 0 0 5 0 +P 200 213 4.6881355005877492e-02 -1.7685658006218710e-01 -3.6436198676174875e-01 1.1033453735196406e+00 1.0252488695491191e+00 2 0 0 -125 0 +P 201 111 3.7295347928756839e-01 -3.7777914400943240e-02 1.1758598639554589e+00 1.2415262738220798e+00 1.3497999999999999e-01 2 0 0 -126 0 +P 202 -213 -7.7174053973165080e-01 1.1344979778855320e+00 1.1415247517969562e+00 1.9615336994911579e+00 8.1355182550511485e-01 2 0 0 -127 0 +P 203 223 4.0683186443833641e-01 -5.2896991332825460e-01 1.1174071860398992e-01 1.0379283489087789e+00 7.8707555809178420e-01 2 0 0 -128 0 +P 204 223 -5.4926159000131487e-02 -3.9089357009414699e-01 1.0576731195622895e+00 1.3702232191791681e+00 7.7654657068951227e-01 2 0 0 -129 0 +V -21 0 0 0 0 0 0 2 0 +P 205 -421 1.6217223175989148e+00 -6.8010125330790361e-01 -9.1387443651518652e+00 9.4913397269165518e+00 1.8645000000000000e+00 2 0 0 -130 0 +P 206 111 1.7968957185550219e-01 -6.1256193952872552e-02 -7.5978817714920155e-01 7.9469386436974088e-01 1.3497999999999999e-01 2 0 0 -131 0 +V -22 0 0 0 0 0 0 2 0 +P 207 -311 3.8379010207120906e-01 6.7470718262439966e-01 -2.3156482330478920e+00 2.4924740305268194e+00 4.9767000000000000e-01 2 0 0 -132 0 +P 208 -211 1.1885409638388056e-01 8.3490247668284856e-01 -4.0919076763111493e+00 4.1802364356759165e+00 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 209 311 4.9216148712404084e-01 1.6700552201381169e+00 -1.0293091901049095e+01 1.0451158963486355e+01 4.9767000000000000e-01 2 0 0 -133 0 +P 210 111 1.5608318125249132e-01 3.2776161422857351e-02 -2.1970366209984036e+00 2.2069494218571477e+00 1.3497999999999999e-01 2 0 0 -134 0 +V -24 0 0 0 0 0 0 2 0 +P 211 -211 2.0686418792920924e-01 -7.4052015170417047e-03 -8.4407254316637448e-01 8.8021921831125127e-01 1.3957000000000000e-01 1 0 0 0 0 +P 212 211 1.0687235046510266e-01 1.0665286980031208e+00 -2.9742802779412334e+00 3.1646055235381785e+00 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 3 0 +P 213 211 1.6494907868686517e-01 9.3669242179650447e-02 -1.1169618990498749e+00 1.1415190731298617e+00 1.3957000000000000e-01 1 0 0 0 0 +P 214 -211 -3.2961684312823265e-02 9.7904714471502771e-02 -3.2110680804773697e+00 3.2157596004846356e+00 1.3957000000000000e-01 1 0 0 0 0 +P 215 111 -1.2371813995669578e-01 2.7781701450849755e-01 -1.2188863571466753e+00 1.2634840813176285e+00 1.3497999999999999e-01 2 0 0 -135 0 +V -26 0 0 0 0 0 0 2 0 +P 216 211 2.6192308140908338e-01 8.2567800152099802e-01 -2.4544236849886327e+00 2.6065347250907127e+00 1.3957000000000000e-01 1 0 0 0 0 +P 217 111 -7.1482009245183581e-02 -6.3077240170473347e-03 -1.1802194579810725e+00 1.1900785832982377e+00 1.3497999999999999e-01 2 0 0 -136 0 +V -27 0 0 0 0 0 0 3 0 +P 218 -211 1.2750107324969964e-01 -6.0407306768978437e-02 -2.7535093013034662e-01 3.3941639031513160e-01 1.3957000000000000e-01 1 0 0 0 0 +P 219 211 1.9975853129734369e-01 3.0355779618777118e-01 -9.8170033356441933e-01 1.0560616157558897e+00 1.3957000000000000e-01 1 0 0 0 0 +P 220 111 1.4897220997953661e-01 8.6760505956244627e-02 -4.6472305443281688e-02 2.2382890857345566e-01 1.3497999999999999e-01 2 0 0 -137 0 +V -28 0 0 0 0 0 0 2 0 +P 221 -311 -8.2754245304295648e-02 1.3966417583534083e-01 2.8673365676272389e-01 5.9686343994935065e-01 4.9767000000000000e-01 2 0 0 -138 0 +P 222 -211 -1.8405188231880528e-02 -1.3401650405953600e-01 -1.1372650400998702e-01 2.2519475333258582e-01 1.3957000000000000e-01 1 0 0 0 0 +V -29 0 0 0 0 0 0 2 0 +P 223 321 -1.8606728549463221e-02 1.8438159657958669e-02 1.8496301802780613e-01 5.2776742426644740e-01 4.9359999999999998e-01 1 0 0 0 0 +P 224 -211 -5.8511336571788884e-02 3.5244481235949815e-01 4.7335066859644559e-01 6.0924671737091951e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 225 211 1.0573260084598722e-01 -2.9908689762051261e-02 1.7688449051444560e-01 2.5068270879638765e-01 1.3957000000000000e-01 1 0 0 0 0 +P 226 111 -4.6380149176473889e-01 -1.5543106838779938e-01 2.5262943145065019e-02 5.0806343844024116e-01 1.3497999999999999e-01 2 0 0 -139 0 +V -31 0 0 0 0 0 0 3 0 +P 227 22 9.2357515717230873e-02 1.2167869364811841e-01 1.5090349685127447e+00 1.5167472272569451e+00 0 1 0 0 0 0 +P 228 -211 1.6376765932694964e-01 -1.1407305807929946e-01 3.2242673069684358e+00 3.2334520192058642e+00 1.3957000000000000e-01 1 0 0 0 0 +P 229 211 2.8129986815416846e-01 2.1611268857698845e-01 2.9431364251746919e+00 2.9677206930702882e+00 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 230 -211 -3.4592648683826727e-01 -7.9172091937077929e-02 3.3441833061786439e+00 3.3658542934390199e+00 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -1.1307147515979296e-02 -1.6769866681952736e-01 1.0504441492713814e+00 1.0723353978939945e+00 1.3497999999999999e-01 2 0 0 -140 0 +V -33 0 0 0 0 0 0 2 0 +P 232 -211 2.4529482978165587e-01 2.1068895148048891e-01 2.0592913103800264e+01 2.0595924579230772e+01 1.3957000000000000e-01 1 0 0 0 0 +P 233 111 1.1477924954231560e-01 -2.2979793525959996e-01 3.8904575735499605e+00 3.9012640386376463e+00 1.3497999999999999e-01 2 0 0 -141 0 +V -34 0 0 0 0 0 0 2 0 +P 234 -211 1.0683530591018791e-02 2.9505319405206820e-01 1.8571534555359463e+01 1.8574405671540525e+01 1.3957000000000000e-01 1 0 0 0 0 +P 235 211 -3.8320474011581890e-01 -2.8328556012237832e-01 1.9771742986078998e+01 1.9777977577949802e+01 1.3957000000000000e-01 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 236 211 -2.0039518369288894e-02 -2.6884321977876424e-01 6.0433873079858088e+01 6.0434635545160802e+01 1.3957000000000000e-01 1 0 0 0 0 +P 237 -211 -7.0567420656834565e-02 4.3227021311803671e-01 1.0675834001752031e+02 1.0675932971117506e+02 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 3 0 +P 238 211 2.3019840431794759e-02 1.0722469130411325e-01 4.8915482888414573e+01 4.8915804941134901e+01 1.3957000000000000e-01 1 0 0 0 0 +P 239 -211 1.5228297752088477e-01 2.4892222450875526e-01 1.3594839004485266e+02 1.3594877486741612e+02 1.3957000000000000e-01 1 0 0 0 0 +P 240 111 -1.8372996459514808e-03 5.1323835337157217e-02 2.0956193140799577e+01 2.0956690770888397e+01 1.3497999999999999e-01 2 0 0 -142 0 +V -37 0 0 0 0 0 0 2 0 +P 241 421 6.2436518356625337e+00 -2.8651113247762519e+00 -1.6799099320280089e+01 1.8244948598748316e+01 1.8645000000000000e+00 2 0 0 -143 0 +P 242 111 4.9387619354922196e-01 -2.6296728043550860e-01 -1.2797340263786521e+00 1.4032121235955854e+00 1.3497999999999999e-01 2 0 0 -144 0 +V -38 0 0 0 0 0 0 2 0 +P 243 211 2.7007673122422310e-01 -4.6451763092717235e-01 -9.3209210659772479e-01 1.0848933358965471e+00 1.3957000000000000e-01 1 0 0 0 0 +P 244 111 8.1043539067834081e-01 -1.9587017425910982e-01 -1.3769041714155361e+00 1.6153189608525471e+00 1.3497999999999999e-01 2 0 0 -145 0 +V -39 0 0 0 0 0 0 3 0 +P 245 211 4.2743761782097450e-01 -3.1321195981240602e-01 -3.4462938877908883e-01 6.4734368723904778e-01 1.3957000000000000e-01 1 0 0 0 0 +P 246 -211 6.6967622594905324e-02 -6.5307943664755175e-02 -1.1166100354230166e-01 2.0173684490892191e-01 1.3957000000000000e-01 1 0 0 0 0 +P 247 221 3.8909956284019970e-01 -5.3871218458285008e-01 -8.7107471401348857e-01 1.2247783258672331e+00 5.4744999999999999e-01 2 0 0 -146 0 +V -40 0 0 0 0 0 0 2 0 +P 248 -211 8.9544666103778403e-01 -3.4343535149518389e-01 -1.6695180355689065e+00 1.9304255539673623e+00 1.3957000000000000e-01 1 0 0 0 0 +P 249 111 7.7167108423919306e-01 -2.5894206886027965e-01 -2.6574100454998915e+00 2.7825482938486923e+00 1.3497999999999999e-01 2 0 0 -147 0 +V -41 0 -1.1546839958446812e-05 -2.7423900695209169e-06 -5.6021295776194672e-05 5.7666086596760802e-05 0 2 0 +P 250 22 -1.8671110918704986e-01 -7.3362208509199348e-02 -6.4793461233395855e-01 6.7827893509349302e-01 0 1 0 0 0 0 +P 251 22 -4.2737566410076068e-02 1.8867838474912971e-02 -4.6527143948108279e-01 4.6761095721568580e-01 0 1 0 0 0 0 +V -42 0 -9.5849625824338869e+00 -4.5427856562572915e+00 3.0797790083823350e+02 3.2154967752035753e+02 0 2 0 +P 252 2112 2.3494946269770597e-02 -7.7140433032913139e-02 3.6864044468885173e+00 3.8051113242385117e+00 9.3957000000000002e-01 1 0 0 0 0 +P 253 -211 -1.4849118076197018e-01 1.7898563672047136e-02 3.2989479064236149e-01 3.8817566530963010e-01 1.3957000000000000e-01 1 0 0 0 0 +V -43 0 0 0 0 0 0 1 0 +P 254 310 -1.0795922983869366e-01 -3.0104120411989399e-02 1.6962385074932020e+00 1.7712882195102833e+00 4.9767000000000000e-01 2 0 0 -148 0 +V -44 0 0 0 0 0 0 2 0 +P 255 -2112 -7.1620069765306504e-01 -5.9406387712284348e-01 6.6924011570619157e+00 6.8217945118102632e+00 9.3957000000000002e-01 1 0 0 0 0 +P 256 211 1.2282746276398639e-01 1.3160303099116163e-01 8.4157099372716293e-01 8.7185289226911644e-01 1.3957000000000000e-01 1 0 0 0 0 +V -45 0 0 0 0 0 0 2 0 +P 257 -211 1.0917582350152771e-01 -1.9998037871313329e-01 3.9245082818393935e+00 3.9335933383400823e+00 1.3957000000000000e-01 1 0 0 0 0 +P 258 111 -2.3607809641078237e-01 9.8924049628864474e-02 1.2207570821773017e+00 1.2545861027789014e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -46 0 0 0 0 0 0 2 0 +P 259 211 -9.2512366564428780e-02 6.6785049859374487e-02 1.0583879226240367e+00 1.0736310169273680e+00 1.3957000000000000e-01 1 0 0 0 0 +P 260 111 -1.1115938983384583e+00 -1.8893723514333377e-01 2.2371197529621647e+01 2.2400000821057944e+01 1.3497999999999999e-01 2 0 0 -150 0 +V -47 0 0 0 0 0 0 3 0 +P 261 211 -8.7979223122396005e-02 -1.8498323078029286e-01 7.8982483377437287e+00 7.9021367824748960e+00 1.3957000000000000e-01 1 0 0 0 0 +P 262 -211 -9.3830291977028552e-02 7.2250537096242073e-02 3.3416130761211456e+00 3.3466224763494039e+00 1.3957000000000000e-01 1 0 0 0 0 +P 263 111 1.0757250327674936e-01 2.5521449183574951e-01 3.9260193555040792e+00 3.9380901285390704e+00 1.3497999999999999e-01 2 0 0 -151 0 +V -48 0 0 0 0 0 0 2 0 +P 264 -211 -5.8001042529546454e-01 -4.0485193410956233e-01 2.1083579793599277e+01 2.1095903248734608e+01 1.3957000000000000e-01 1 0 0 0 0 +P 265 111 -3.2073406530239251e-01 -1.9939418805101175e-01 3.7968439357699193e+00 3.8179669794102113e+00 1.3497999999999999e-01 2 0 0 -152 0 +V -49 0 0 0 0 0 0 2 0 +P 266 321 -2.7856704535459481e-01 6.3755292333151825e-01 6.4308924492340807e+01 6.4314582200698453e+01 4.9359999999999998e-01 1 0 0 0 0 +P 267 111 -1.1765519819761945e-01 -1.6064093626715317e-01 1.9166237785949200e+01 1.9167747356536566e+01 1.3497999999999999e-01 2 0 0 -153 0 +V -50 0 0 0 0 0 0 2 0 +P 268 -321 -8.9367168692652132e-01 2.0771029167550126e-02 1.5400335786204033e+02 1.5400674321036507e+02 4.9359999999999998e-01 1 0 0 0 0 +P 269 211 -2.8492412920335630e-01 4.1681594305669806e-01 8.0055157641769668e+01 8.0056871423527923e+01 1.3957000000000000e-01 1 0 0 0 0 +V -51 0 -6.6002531619560156e-06 4.6303420024687618e-05 6.9143008171581527e-03 6.9145890185681727e-03 0 2 0 +P 270 22 3.2985399197000089e-03 1.3785210455256494e-01 2.1286406525307036e+01 2.1286853145632609e+01 0 1 0 0 0 0 +P 271 22 -2.4309358054476007e-02 9.5472016989760957e-03 7.2413056072650817e-01 7.2460138209044855e-01 0 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 272 -211 -2.8540776280327329e-01 9.3966682333239981e-01 1.4340676176985525e+02 1.4341019221948926e+02 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 -1.1869009496520293e+00 8.8484723595274772e-01 2.4894306409889506e+02 2.4894750264070180e+02 1.3497999999999999e-01 2 0 0 -154 0 +V -53 0 0 0 0 0 0 2 0 +P 274 211 1.7933401902204655e+00 1.2885124651880893e+00 6.1833606751116611e+02 6.1834002635958245e+02 1.3957000000000000e-01 1 0 0 0 0 +P 275 111 -3.9365165318030595e-02 2.1026551461701451e-01 7.2894196812983083e+01 7.2894635672408640e+01 1.3497999999999999e-01 2 0 0 -155 0 +V -54 0 1.0676767945586468e-04 5.7893903355371724e-05 2.5444575107770855e-02 2.5444873168571566e-02 0 2 0 +P 276 22 2.4999471933883968e-01 1.5059317622941079e-01 4.8566265682726126e+01 4.8567142576329971e+01 0 1 0 0 0 0 +P 277 22 4.5564793068048387e-01 2.3203579530812810e-01 1.1960051942648138e+02 1.1960161245874228e+02 0 1 0 0 0 0 +V -55 0 0 0 0 0 0 3 0 +P 278 211 2.6192602171711871e-01 6.6663279626861305e-02 8.4515411988941139e+01 8.4515959396311999e+01 1.3957000000000000e-01 1 0 0 0 0 +P 279 -211 3.0260190289747680e-02 5.2722368310901424e-01 1.3997838615805080e+02 1.3997945189094159e+02 1.3957000000000000e-01 1 0 0 0 0 +P 280 111 -1.0915701330301296e-01 6.3947562447915010e-02 3.9337776782952176e+01 3.9338211784091911e+01 1.3497999999999999e-01 2 0 0 -156 0 +V -56 0 0 0 0 0 0 2 0 +P 281 -211 1.0460657961309405e+00 -3.9020867461042025e-01 9.9157631500447565e+01 9.9164015050939852e+01 1.3957000000000000e-01 1 0 0 0 0 +P 282 211 1.1960987457174342e-01 -2.5875645151296439e-01 1.0301918998462718e+01 1.0306807277672448e+01 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 2 0 +P 283 211 -1.6242543744049195e-01 3.1007645455399614e-02 2.1896606379610399e+00 2.2003265646581580e+00 1.3957000000000000e-01 1 0 0 0 0 +P 284 111 1.2652227858485912e-01 9.6098178980106996e-01 3.5153440087509658e+01 3.5167059352095940e+01 1.3497999999999999e-01 2 0 0 -157 0 +V -58 0 0 0 0 0 0 3 0 +P 285 111 2.9219528435810188e-01 2.1022194446087650e-01 3.5594569879955653e+00 3.5801571194466431e+00 1.3497999999999999e-01 2 0 0 -158 0 +P 286 111 7.2165970952666164e-02 1.0925849693542053e-01 1.7329492789665644e+00 1.7431231024763754e+00 1.3497999999999999e-01 2 0 0 -159 0 +P 287 111 5.7259665167642498e-02 1.0687387285916360e-02 3.2706781824117788e+00 3.2739804921236972e+00 1.3497999999999999e-01 2 0 0 -160 0 +V -59 0 0 0 0 0 0 2 0 +P 288 -211 5.5626398321002368e-01 1.3631010577680165e+00 1.2299140896707550e+01 1.2387728633396405e+01 1.3957000000000000e-01 1 0 0 0 0 +P 289 111 4.1830606098124423e-01 1.1755765771896662e+00 1.9730016713629471e+01 1.9769894773872441e+01 1.3497999999999999e-01 2 0 0 -161 0 +V -60 0 3.8941374669982273e-05 1.8006347465645076e-05 5.5790884985439169e-04 5.5957112049228436e-04 0 2 0 +P 290 22 1.2285446892288159e+00 5.5994878566880602e-01 1.7826169650336105e+01 1.7877225430658086e+01 0 1 0 0 0 0 +P 291 22 5.0254836912804378e-02 3.1363380420649907e-02 4.9505241412208734e-01 4.9858409821478411e-01 0 1 0 0 0 0 +V -61 0 0 0 0 0 0 3 0 +P 292 211 3.3246427160202974e-01 2.4826372883767425e-01 4.4532204940244178e+00 4.4746865727386238e+00 1.3957000000000000e-01 1 0 0 0 0 +P 293 -211 3.0564376993854531e-01 6.9193900353716309e-01 8.2429344382337373e+00 8.2787466223238155e+00 1.3957000000000000e-01 1 0 0 0 0 +P 294 221 9.5599961032503467e-01 1.2801871992451461e+00 1.7605752316643834e+01 1.7686577697722150e+01 5.4744999999999999e-01 2 0 0 -162 0 +V -62 0 0 0 0 0 0 2 0 +P 295 211 8.0273279393105107e-02 2.0186889552187660e-02 5.6907814730655848e-01 5.9176095894894998e-01 1.3957000000000000e-01 1 0 0 0 0 +P 296 111 1.6901191173961481e+00 -1.5985626590924316e+00 1.6544286957456936e+01 1.6707589764448741e+01 1.3497999999999999e-01 2 0 0 -163 0 +V -63 0 0 0 0 0 0 1 0 +P 297 310 6.3686850058466904e-01 -2.8985459322238305e-01 6.1254602664267574e+00 6.1853501175537380e+00 4.9767000000000000e-01 2 0 0 -164 0 +V -64 0 0 0 0 0 0 2 0 +P 298 130 1.4358399666748303e-01 -1.0812535661317952e+00 4.2011710653840471e+00 4.3688945269818387e+00 4.9767000000000000e-01 1 0 0 0 0 +P 299 310 -5.6376902188405402e-02 -9.4829366505374968e-01 3.4172653874114838e+00 3.5815942521706718e+00 4.9767000000000000e-01 2 0 0 -165 0 +V -65 0 0 0 0 0 0 2 0 +P 300 -321 -2.2142072696580159e-01 1.5578586639161984e-01 1.6476923364331792e+00 1.7412143377649063e+00 4.9359999999999998e-01 1 0 0 0 0 +P 301 111 2.3195043580107069e-02 -3.1086024973021309e-01 9.9213467140438327e-01 1.0486767430966022e+00 1.3497999999999999e-01 2 0 0 -166 0 +V -66 0 0 0 0 0 0 2 0 +P 302 -211 -1.1624801152423032e+00 -1.7625857585222973e+00 5.0201713535008983e+00 5.4479049898002465e+00 1.3957000000000000e-01 1 0 0 0 0 +P 303 211 5.8229430385060822e-02 -1.4047080457471348e-01 3.0156695192662147e-01 3.6543826413656960e-01 1.3957000000000000e-01 1 0 0 0 0 +V -67 0 0 0 0 0 0 2 0 +P 304 211 1.4948479945856540e-03 1.2568218777132778e-01 -1.5080220659718138e-01 2.4087203513088271e-01 1.3957000000000000e-01 1 0 0 0 0 +P 305 111 -7.2459948192582480e-01 -8.9543741457431492e-01 7.6366010654820127e-01 1.3886140325374496e+00 1.3497999999999999e-01 2 0 0 -167 0 +V -68 0 0 0 0 0 0 2 0 +P 306 211 1.0563433052605793e-01 -2.7158694112764570e-01 -4.0122677357734220e-02 3.2558822539384402e-01 1.3957000000000000e-01 1 0 0 0 0 +P 307 111 -7.0299433074427298e-01 -9.4889402278916302e-01 3.0759404672122986e-01 1.2277762799150060e+00 1.3497999999999999e-01 2 0 0 -168 0 +V -69 0 1.2667704663510530e-05 -7.0744177920900302e-05 1.8213818727785282e-05 8.3881864673891209e-05 0 2 0 +P 308 22 5.4027065630195055e-02 -1.9904590108705426e-02 1.9071272126093892e-02 6.0653358921930293e-02 0 1 0 0 0 0 +P 309 22 -1.0444000571005583e-02 -2.2348978880879536e-01 4.3593122701166338e-02 2.2794105202127599e-01 0 1 0 0 0 0 +V -70 0 0 0 0 0 0 2 0 +P 310 211 -4.3737588677301271e-02 -6.4946955578646784e-02 -3.5924173334191872e-02 1.6401650780328356e-01 1.3957000000000000e-01 1 0 0 0 0 +P 311 111 -1.1020147543802561e+00 -1.6536485938923138e+00 -1.9715970413558779e+00 2.8025710847072287e+00 1.3497999999999999e-01 2 0 0 -169 0 +V -71 0 0 0 0 0 0 2 0 +P 312 -211 -7.4010583846387956e-01 -4.7229998155360581e-01 -9.2048603238071680e-01 1.2796867762901407e+00 1.3957000000000000e-01 1 0 0 0 0 +P 313 111 -2.5499660395015161e-01 8.5088854900123176e-02 -1.8681615758638939e-01 3.5409498498237357e-01 1.3497999999999999e-01 2 0 0 -170 0 +V -72 0 0 0 0 0 0 1 0 +P 314 310 -2.8765138987802308e-01 7.2322394316508809e-01 -1.3293539465693636e+00 1.6188432716682486e+00 4.9767000000000000e-01 2 0 0 -171 0 +V -73 0 0 0 0 0 0 2 0 +P 315 -211 -5.0232272700335232e-03 1.0288006080287391e+00 -2.6829806284030435e+00 2.8768595310126805e+00 1.3957000000000000e-01 1 0 0 0 0 +P 316 211 -1.5041483011075760e-02 -6.2116154231934534e-02 -7.5021064446656849e-02 1.7085844386054616e-01 1.3957000000000000e-01 1 0 0 0 0 +V -74 0 0 0 0 0 0 2 0 +P 317 211 2.3075821910509536e-01 4.3897541651857841e-01 -1.2656582782473587e+00 1.3664989696989467e+00 1.3957000000000000e-01 1 0 0 0 0 +P 318 111 4.6838599969743122e-01 4.9174921370238156e-02 -8.7389061637774768e-01 1.0018522981944049e+00 1.3497999999999999e-01 2 0 0 -172 0 +V -75 0 0 0 0 0 0 2 0 +P 319 -211 2.5742640827553703e-01 5.6243178021327091e-02 -5.9271374260145144e+00 5.9346330554225126e+00 1.3957000000000000e-01 1 0 0 0 0 +P 320 211 -9.8706113948430804e-02 -2.8964132523844838e-01 -1.4907848669725159e+00 1.5282520403097610e+00 1.3957000000000000e-01 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 321 -211 -1.8116809968197792e-01 2.3195288966429489e-01 -1.4818039389156070e+01 1.4821619181008760e+01 1.3957000000000000e-01 1 0 0 0 0 +P 322 211 -1.2600615597077278e-01 3.3646972396956704e-01 -2.8764946640392428e+00 2.9022044662009816e+00 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 323 2112 6.8523780701355297e-01 -3.5080743538294351e-01 -1.6307557677702232e+02 1.6308010040974429e+02 9.3957000000000002e-01 1 0 0 0 0 +P 324 -211 8.4749541376226964e-02 3.5211273219105275e-03 -3.0569414802299615e+01 3.0569851095860052e+01 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 9.2659059340455155e-06 2.2192099479511942e-05 -1.5814794116037168e-03 1.5816634155477668e-03 0 2 0 +P 325 22 6.5173830040521086e-01 1.4984807920980339e+00 -1.0754272896002473e+02 1.0755514287873845e+02 0 1 0 0 0 0 +P 326 22 -1.5466324265940194e-04 6.2079934296075334e-02 -3.6677791592323956e+00 3.6683044997740333e+00 0 1 0 0 0 0 +V -79 0 0 0 0 0 0 2 0 +P 327 -211 6.6823265779759167e-01 7.0798190000280858e-01 -4.8392336668505656e+01 4.8402329502603237e+01 1.3957000000000000e-01 1 0 0 0 0 +P 328 211 1.0551080640961935e-01 1.5636350604201216e-01 -4.0467426697579832e+01 4.0468107015095086e+01 1.3957000000000000e-01 1 0 0 0 0 +V -80 0 0 0 0 0 0 3 0 +P 329 211 -1.6210443044946699e-01 5.3631565721785644e-02 -3.2851753809151361e+01 3.2852494004461882e+01 1.3957000000000000e-01 1 0 0 0 0 +P 330 -211 6.3753390431136939e-02 -3.4266989260422084e-02 -4.3006183481217263e+01 4.3006470863422045e+01 1.3957000000000000e-01 1 0 0 0 0 +P 331 111 1.1533681740304895e-01 2.6389423523999250e-01 -2.1069793643374290e+01 2.1072194155417638e+01 1.3497999999999999e-01 2 0 0 -173 0 +V -81 0 0 0 0 0 0 3 0 +P 332 -211 5.6711449398208394e-02 -4.9900954611827149e-02 -1.7771001367628735e+01 1.7771709982073371e+01 1.3957000000000000e-01 1 0 0 0 0 +P 333 211 8.5429989515703270e-02 2.9119120815685540e-01 -8.1609305243617207e+00 8.1677633052859324e+00 1.3957000000000000e-01 1 0 0 0 0 +P 334 111 1.5971224969655323e-01 1.6416391462325010e-03 -6.1583136127604776e+00 6.1618630990304570e+00 1.3497999999999999e-01 2 0 0 -174 0 +V -82 0 0 0 0 0 0 3 0 +P 335 111 3.2030294786127822e-01 -1.0601635141293821e-01 -2.8028052211989629e+00 2.8262643460150190e+00 1.3497999999999999e-01 2 0 0 -175 0 +P 336 111 2.9110855186201823e-01 8.7859720184946685e-02 -3.6679991381187156e+00 3.6830559046853768e+00 1.3497999999999999e-01 2 0 0 -176 0 +P 337 111 4.0602579306178992e-02 5.1683011578460081e-03 -1.0151896366424780e+00 1.0249414029735842e+00 1.3497999999999999e-01 2 0 0 -177 0 +V -83 0 0 0 0 0 0 2 0 +P 338 211 6.5793571993552347e-01 5.6569505409351306e-01 -1.7197107586476218e+01 1.7219549338804743e+01 1.3957000000000000e-01 1 0 0 0 0 +P 339 111 5.8788972858264898e-01 1.8877221706897764e+00 -2.1951790012437453e+01 2.2041061990685371e+01 1.3497999999999999e-01 2 0 0 -178 0 +V -84 0 0 0 0 0 0 2 0 +P 340 22 6.6593323470164767e-01 6.3569398019847445e-01 -6.3111210203307069e+00 6.3779167792313567e+00 0 1 0 0 0 0 +P 341 22 2.1963494126495064e-01 2.8017614166117788e-01 -6.1100973275610935e+00 6.1204597482582805e+00 0 1 0 0 0 0 +V -85 0 3.0223187720401600e-04 4.8661610779874898e-04 -5.3830165474146501e-03 5.4137043570611056e-03 0 2 0 +P 342 22 5.7856337531910038e-02 1.3626196294686996e-01 -1.7555647494935451e+00 1.7617951833295136e+00 0 1 0 0 0 0 +P 343 22 6.6462261932697564e-01 1.0269836258559635e+00 -1.1112423286411024e+01 1.1179551417220072e+01 0 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 344 -211 4.1265547372750555e-01 1.2949869224888536e-01 -3.6370992906819448e+00 3.6653820382697559e+00 1.3957000000000000e-01 1 0 0 0 0 +P 345 211 8.0133869236026911e-01 1.5461792439251949e+00 -1.5223724224072070e+01 1.5323644246383349e+01 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 346 -211 4.4315996363918092e-01 4.3179607305874240e-01 -3.3584103881800651e+00 3.4177827201882520e+00 1.3957000000000000e-01 1 0 0 0 0 +P 347 111 1.5073350550211109e-02 7.2202155363162623e-01 -1.5089453750602873e+01 1.5107328566685394e+01 1.3497999999999999e-01 2 0 0 -179 0 +V -88 0 0 0 0 0 0 2 0 +P 348 211 2.0265472465231706e+00 1.6273344433143688e+00 -2.5085446979218137e+01 2.5220115801971495e+01 1.3957000000000000e-01 1 0 0 0 0 +P 349 111 5.5564478995138736e-02 5.3068180921456376e-02 -1.0567328314465232e+00 1.0680859144325889e+00 1.3497999999999999e-01 2 0 0 -180 0 +V -89 0 0 0 0 0 0 2 0 +P 350 321 5.5334359353845797e-01 4.4390121636406382e-01 -6.4488659797201224e+00 6.5065160267835447e+00 4.9359999999999998e-01 1 0 0 0 0 +P 351 -211 1.2280392089109184e+00 7.9181424127792643e-01 -1.6152530029392889e+01 1.6219086171133444e+01 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 352 -311 4.9782761336762366e-01 5.0953796112831118e-01 -7.5199540324803458e+00 7.5699963900902567e+00 4.9767000000000000e-01 2 0 0 -181 0 +P 353 111 9.2084903787267469e-01 1.3790049009253627e-01 -1.0572002769311638e+01 1.0613785453383338e+01 1.3497999999999999e-01 2 0 0 -182 0 +V -91 0 0 0 0 0 0 2 0 +P 354 -211 -4.1646899766105938e-01 -6.4165585437284340e-04 -4.5711127402477864e+01 4.5713237634499237e+01 1.3957000000000000e-01 1 0 0 0 0 +P 355 111 -1.5883655598135957e-01 -4.7746020680533935e-01 -4.8794799426665946e+01 4.8797580554670517e+01 1.3497999999999999e-01 2 0 0 -183 0 +V -92 0 0 0 0 0 0 2 0 +P 356 -2112 -5.0910243761024854e-01 -4.5126876099486196e-01 -2.8494746972763384e+01 2.8518348928599259e+01 9.3957000000000002e-01 1 0 0 0 0 +P 357 211 -2.9468806770195133e-01 -2.9190475370197855e-01 -5.4819920692795092e+00 5.4994332685307823e+00 1.3957000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 358 -211 -2.4885074976450763e-01 3.3424025035342403e-01 -2.8357333619216721e+01 2.8360738583772349e+01 1.3957000000000000e-01 1 0 0 0 0 +P 359 111 6.8911093492632733e-02 -2.7130636779539036e-01 -1.4855359858410299e+01 1.4858610029450290e+01 1.3497999999999999e-01 2 0 0 -184 0 +V -94 0 0 0 0 0 0 1 0 +P 360 130 -1.4096245121895092e+00 -2.1826091973706498e+00 -7.8978356177349141e+01 7.9022650196503378e+01 4.9767000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 361 -321 -3.8980393264709728e-02 2.3659798443371793e-02 -4.5021650566010770e+01 4.5024379395002207e+01 4.9359999999999998e-01 1 0 0 0 0 +P 362 111 -2.6489328918552280e-01 -4.1560022800454127e-01 -3.3811621128573726e+01 3.3815482178238803e+01 1.3497999999999999e-01 2 0 0 -185 0 +V -96 0 0 0 0 0 0 2 0 +P 363 211 -1.8760543427401080e+00 -1.0875370782743450e+00 -8.1985678412572810e+01 8.2014469829099326e+01 1.3957000000000000e-01 1 0 0 0 0 +P 364 111 7.5450854587473110e-02 -1.1796572075934705e-01 -7.3526082944333560e+00 7.3551802883751556e+00 1.3497999999999999e-01 2 0 0 -186 0 +V -97 0 0 0 0 0 0 2 0 +P 365 -211 3.3024357657183534e-01 -1.0764108627154867e+00 -4.6204481583885297e+01 4.6218408879857975e+01 1.3957000000000000e-01 1 0 0 0 0 +P 366 211 1.6113589013928148e-01 1.0476930546125837e-01 -4.2265010413097350e+00 4.2331704689924887e+00 1.3957000000000000e-01 1 0 0 0 0 +V -98 0 0 0 0 0 0 2 0 +P 367 22 -1.5306529296572205e-01 -5.6288475914386925e-02 -3.1187132731459890e+00 3.1229745206338810e+00 0 1 0 0 0 0 +P 368 22 4.1998551688228036e-01 -2.0427605522231063e-01 -1.8445987769881434e+01 1.8451899125774119e+01 0 1 0 0 0 0 +V -99 0 0 0 0 0 0 1 0 +P 369 130 4.1329176006341922e-01 1.8028596136298070e-01 -8.9119644403072215e+01 8.9122174609160780e+01 4.9767000000000000e-01 1 0 0 0 0 +V -100 0 0 0 0 0 0 3 0 +P 370 211 -2.5393868742732295e-01 -1.0813557949514663e-01 -2.2588965411228937e+01 2.2591082672043903e+01 1.3957000000000000e-01 1 0 0 0 0 +P 371 -211 -9.4699960295409211e-02 -7.0342706977206501e-02 -6.2577223207694175e+00 6.2603901322250373e+00 1.3957000000000000e-01 1 0 0 0 0 +P 372 111 -6.1340461783072626e-02 -9.5270249091627290e-02 -1.9913617131458697e+01 1.9914396951234526e+01 1.3497999999999999e-01 2 0 0 -187 0 +V -101 0 0 0 0 0 0 2 0 +P 373 211 -5.6588712441174915e-01 1.7007007181064696e-01 -3.2251333498529675e+02 3.2251390648341049e+02 1.3957000000000000e-01 1 0 0 0 0 +P 374 -211 -2.8982224615837326e-01 2.8131974867272219e-01 -6.3245549272580966e+01 6.3246992974454749e+01 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 0 0 0 0 0 2 0 +P 375 2212 9.5560807623884438e-04 8.6244164763986575e-01 -1.1728103150663380e+03 1.1728110074871845e+03 9.3827000000000005e-01 1 0 0 0 0 +P 376 211 -2.8581771916038204e-03 -1.1153332585833524e-01 -2.1689617899690685e+02 2.1689625259809148e+02 1.3957000000000000e-01 1 0 0 0 0 +V -103 0 0 0 0 0 0 3 0 +P 377 -211 6.9777075380562020e-02 4.7507027834957305e-02 2.3372071430252870e+00 2.3428919676866879e+00 1.3957000000000000e-01 1 0 0 0 0 +P 378 211 -3.3611510436482870e-03 -3.9382859649498635e-02 1.3924281785635231e-01 2.0107375312329462e-01 1.3957000000000000e-01 1 0 0 0 0 +P 379 111 -7.9872569296045165e-02 9.6782587127883388e-02 4.2334861577519067e-01 4.6172518598825418e-01 1.3497999999999999e-01 2 0 0 -188 0 +V -104 0 0 0 0 0 0 2 0 +P 380 -211 2.4592593317047373e-01 -2.5402408844388685e-01 9.5163384838481568e-01 1.0247412202147479e+00 1.3957000000000000e-01 1 0 0 0 0 +P 381 111 -3.2259075952935390e-01 9.6110605845984534e-02 1.8794513505486412e+00 1.9141209539025790e+00 1.3497999999999999e-01 2 0 0 -189 0 +V -105 0 0 0 0 0 0 2 0 +P 382 -211 -4.5837447734990650e-01 -1.0851873872112007e-01 2.2553461445730871e+00 2.3082351472239804e+00 1.3957000000000000e-01 1 0 0 0 0 +P 383 211 6.1887762052356861e-02 -1.3754108735555134e-01 5.4029978564595833e+00 5.4069042221598167e+00 1.3957000000000000e-01 1 0 0 0 0 +V -106 0 0 0 0 0 0 3 0 +P 384 211 1.5445020817728534e-02 2.3301757642101320e-01 6.4439298137185208e+00 6.4496702992183712e+00 1.3957000000000000e-01 1 0 0 0 0 +P 385 -211 -1.2475197802699829e-01 -1.9095926689690346e-01 6.3048485731892709e+00 6.3105169212499730e+00 1.3957000000000000e-01 1 0 0 0 0 +P 386 111 1.9899815204420815e-01 -6.7184283612308757e-02 5.5687097047954106e+00 5.5743036667519377e+00 1.3497999999999999e-01 2 0 0 -190 0 +V -107 0 0 0 0 0 0 2 0 +P 387 22 -3.7754050692170192e-03 6.8280684928958862e-02 3.4642925362567140e-01 3.5311433472098541e-01 0 1 0 0 0 0 +P 388 113 8.2999471421343396e-02 -2.8251000142352389e-01 1.6107349250332053e+01 1.6130098567719088e+01 8.0416361457125063e-01 2 0 0 -191 0 +V -108 0 0 0 0 0 0 2 0 +P 389 211 -1.4673680780120973e-01 1.9405519317056662e-03 5.3082618403845041e+00 5.3121237756181632e+00 1.3957000000000000e-01 1 0 0 0 0 +P 390 -211 5.6044408203317006e-02 1.6763803708868413e-01 2.3839451002379750e+00 2.3945599831740396e+00 1.3957000000000000e-01 1 0 0 0 0 +V -109 0 0 0 0 0 0 2 0 +P 391 321 1.9846678448419963e-01 2.0386347738843802e-01 3.9517065449383580e+01 3.9521172200136242e+01 4.9359999999999998e-01 1 0 0 0 0 +P 392 -211 -2.9633713105752252e-01 3.6457100116663532e-01 3.2491480380038389e+01 3.2495176638717545e+01 1.3957000000000000e-01 1 0 0 0 0 +V -110 0 0 0 0 0 0 2 0 +P 393 -321 8.7679693769441944e-02 -3.7650460777736888e-01 1.7261252844619153e+02 1.7261366707475875e+02 4.9359999999999998e-01 1 0 0 0 0 +P 394 211 -2.1815986473454180e-01 -4.1960556703188107e-01 6.4104946097799257e+01 6.4106842509556756e+01 1.3957000000000000e-01 1 0 0 0 0 +V -111 0 -3.8117306469070869e+00 2.4304278506338637e+00 -3.6687500677897781e+01 3.6965955593079201e+01 0 4 0 +P 395 13 -1.4149561259899173e+00 1.0402134060499841e+00 -1.3160839701082471e+01 1.3277914385994174e+01 1.0566000000000000e-01 1 0 0 0 0 +P 396 -14 -1.3089155169219182e+00 1.0462816645268493e+00 -1.2289940437364569e+01 1.2403652732398342e+01 0 1 0 0 0 0 +P 397 323 -2.1581479174280773e+01 1.3503790177823028e+01 -2.0949493928636579e+02 2.1103796270682068e+02 8.8290675088899884e-01 2 0 0 -192 0 +P 398 -211 -2.0850999230479355e+00 1.2367396416999163e+00 -1.9059552487099179e+01 1.9213619841764203e+01 1.3957000000000000e-01 1 0 0 0 0 +V -112 0 0 0 0 0 0 2 0 +P 399 -311 -4.4690407303060170e-01 3.0479452171944948e-01 -6.3255618455358773e+00 6.3681261797769668e+00 4.9767000000000000e-01 2 0 0 -193 0 +P 400 111 -1.2418841812846488e+00 6.4683552692001378e-01 -1.2930629916089380e+01 1.3006924392256479e+01 1.3497999999999999e-01 2 0 0 -194 0 +V -113 0 0 0 0 0 0 2 0 +P 401 311 -9.3258822715903111e-01 9.6253600257025262e-01 -1.1172693777377827e+01 1.1263789683300944e+01 4.9767000000000000e-01 2 0 0 -195 0 +P 402 211 -1.3587033582635805e-01 1.7718207748686304e-01 -7.1597924199696528e-01 7.6286322274092955e-01 1.3957000000000000e-01 1 0 0 0 0 +V -114 0 0 0 0 0 0 2 0 +P 403 -321 -9.2232459910796916e-01 -9.2465403799705914e-02 -1.4887975269241240e+01 1.4924968378343664e+01 4.9359999999999998e-01 1 0 0 0 0 +P 404 111 -1.1663521498522561e-01 6.8185846341943981e-02 -7.0050532350766603e-01 7.2607189153595308e-01 1.3497999999999999e-01 2 0 0 -196 0 +V -115 0 0 0 0 0 0 2 0 +P 405 -211 8.0700028232659307e+00 -6.2899386723757056e+00 -1.1945209016908863e+02 1.1988957252246230e+02 1.3957000000000000e-01 1 0 0 0 0 +P 406 211 1.0872137644979858e+00 -5.9716641606912368e-01 -1.2286932660223906e+01 1.2350175524257606e+01 1.3957000000000000e-01 1 0 0 0 0 +V -116 0 1.8675243735831720e-03 -1.7086209769348198e-03 -2.8434955821092834e-02 2.8547843422511342e-02 0 2 0 +P 407 22 1.0284917633797830e+00 -8.5251486620572126e-01 -1.4939793795464507e+01 1.4999400506534974e+01 0 1 0 0 0 0 +P 408 22 5.4642645271504009e-01 -5.8839714492554174e-01 -9.0399360168790608e+00 9.0755295304268895e+00 0 1 0 0 0 0 +V -117 0 0 0 0 0 0 2 0 +P 409 211 6.3239069735772049e-02 -4.0712194024407136e-02 -1.9482115859367102e-01 2.5118067485200196e-01 1.3957000000000000e-01 1 0 0 0 0 +P 410 111 -2.5129535497422834e-01 -4.3749634494359707e-01 1.7624108649708728e-01 5.5121042101932738e-01 1.3497999999999999e-01 2 0 0 -197 0 +V -118 0 0 0 0 0 0 2 0 +P 411 211 -8.9867935841088972e-02 -4.4410153793443752e-01 8.8775575440297683e-01 1.0064255989707680e+00 1.3957000000000000e-01 1 0 0 0 0 +P 412 111 -7.9048986992116252e-02 5.1075014150674813e-01 7.7222665732593598e-01 9.3897181005524955e-01 1.3497999999999999e-01 2 0 0 -198 0 +V -119 0 0 0 0 0 0 2 0 +P 413 -211 -6.6518601310751921e-02 8.3313999049881182e-02 1.2857659839509159e+00 1.2977056280772190e+00 1.3957000000000000e-01 1 0 0 0 0 +P 414 211 -6.7570053020446241e-01 4.1406156446148923e-01 1.4286956315294119e+00 1.6397161882881173e+00 1.3957000000000000e-01 1 0 0 0 0 +V -120 0 0 0 0 0 0 2 0 +P 415 -211 -1.7917883923619066e-01 3.7320756329498238e-02 3.3628350035695148e-01 4.0750984380178873e-01 1.3957000000000000e-01 1 0 0 0 0 +P 416 111 2.0615633368148753e-01 2.9319453099443760e-01 -3.9420844071029401e-02 3.8501567535532039e-01 1.3497999999999999e-01 2 0 0 -199 0 +V -121 0 0 0 0 0 0 2 0 +P 417 -211 -4.0949193990631622e-01 9.8784294800820266e-02 1.6177062253094043e+00 1.6774669004342038e+00 1.3957000000000000e-01 1 0 0 0 0 +P 418 211 2.3022959581081737e-01 3.5933366808902623e-01 2.7454858413980707e+00 2.7819594968343444e+00 1.3957000000000000e-01 1 0 0 0 0 +V -122 0 0 0 0 0 0 2 0 +P 419 -211 1.7106562716093260e-01 -8.5567367789404127e-03 1.1082111017219458e+00 1.1300213703377633e+00 1.3957000000000000e-01 1 0 0 0 0 +P 420 111 -2.5858290813921248e-01 1.2412289720045558e-01 1.0618010768307151e-01 3.3431337044568815e-01 1.3497999999999999e-01 2 0 0 -200 0 +V -123 0 0 0 0 0 0 2 0 +P 421 321 -4.3364031456645963e-01 3.1333513178025424e-01 2.3850228401197859e+00 2.4936314353003528e+00 4.9359999999999998e-01 1 0 0 0 0 +P 422 111 -3.2914057460674639e-01 3.0667447028601713e-01 4.7608665461210302e+00 4.7839787435723471e+00 1.3497999999999999e-01 2 0 0 -201 0 +V -124 0 0 0 0 0 0 3 0 +P 423 22 -3.6801339550226492e-01 1.7380726639585706e-01 3.6329416264764558e+00 3.6556678851485542e+00 0 1 0 0 0 0 +P 424 211 -2.0485179035825907e-01 1.0503476392148384e-01 1.2552849482286934e+00 1.2838288997349061e+00 1.3957000000000000e-01 1 0 0 0 0 +P 425 -211 -1.6286584081530955e-01 1.2536930627288169e-02 7.4666982282661187e-01 7.7696722321727008e-01 1.3957000000000000e-01 1 0 0 0 0 +V -125 0 0 0 0 0 0 2 0 +P 426 211 -3.6738729491780953e-01 -1.2990768478039541e-01 -4.9576508877336578e-01 6.4584227113010451e-01 1.3957000000000000e-01 1 0 0 0 0 +P 427 111 4.1426864992368700e-01 -4.6948895281791733e-02 1.3140310201161695e-01 4.5750310238953612e-01 1.3497999999999999e-01 2 0 0 -202 0 +V -126 0 6.9426357033436299e-05 -7.0324668325621512e-06 2.1888967731901427e-04 2.3111366735984392e-04 0 2 0 +P 428 22 1.7329754036781519e-01 -3.5760193007135399e-02 3.5401094689066487e-01 3.9577086732081140e-01 0 1 0 0 0 0 +P 429 22 1.9965593891975320e-01 -2.0177213938078393e-03 8.2184891706479402e-01 8.4575540650126857e-01 0 1 0 0 0 0 +V -127 0 0 0 0 0 0 2 0 +P 430 -211 -3.7279482875192040e-02 7.0816911438682062e-01 6.4425103332057665e-01 9.6821094460323387e-01 1.3957000000000000e-01 1 0 0 0 0 +P 431 111 -7.3446105685645879e-01 4.2632886349871141e-01 4.9727371847637947e-01 9.9332275488792399e-01 1.3497999999999999e-01 2 0 0 -203 0 +V -128 0 0 0 0 0 0 3 0 +P 432 211 3.5893828107734344e-01 -2.8226148103218018e-01 1.1790620111171650e-01 4.9182302757987484e-01 1.3957000000000000e-01 1 0 0 0 0 +P 433 -211 -1.5008674707049818e-02 9.4286417803348802e-02 3.1852852341836643e-02 1.7207433858934496e-01 1.3957000000000000e-01 1 0 0 0 0 +P 434 111 6.2902258068042838e-02 -3.4099485009942332e-01 -3.8018334849563219e-02 3.7403098273955909e-01 1.3497999999999999e-01 2 0 0 -204 0 +V -129 0 0 0 0 0 0 3 0 +P 435 -211 6.2512878218440995e-02 -1.0363521755860323e-01 1.7834621769483228e-01 2.5677865278800954e-01 1.3957000000000000e-01 1 0 0 0 0 +P 436 211 2.0006607633586731e-02 -2.7092422208840949e-01 8.6756397153503473e-01 9.1975389538118113e-01 1.3957000000000000e-01 1 0 0 0 0 +P 437 111 -1.3744564485215921e-01 -1.6334130447134231e-02 1.1762930332422402e-02 1.9369067100997739e-01 1.3497999999999999e-01 2 0 0 -205 0 +V -130 0 1.5843923112336528e-01 -6.6444617855219837e-02 -8.9283819735022774e-01 9.2728610338778894e-01 0 2 0 +P 438 10323 8.7256927989165967e-01 -6.3042634964667288e-01 -7.4558774953617020e+00 7.6433087325073386e+00 1.2927662681406757e+00 2 0 0 -206 0 +P 439 -211 7.4915303770725516e-01 -4.9674903661230729e-02 -1.6828668697901639e+00 1.8480309944092130e+00 1.3957000000000000e-01 1 0 0 0 0 +V -131 0 6.3341395332392340e-05 -2.1593088333733440e-05 -2.6782880498143764e-04 2.8013321925965200e-04 0 2 0 +P 440 22 1.8312594343566238e-01 -8.4377915874067108e-02 -7.2688918009528936e-01 7.5433588273795882e-01 0 1 0 0 0 0 +P 441 22 -3.4363715801602034e-03 2.3121721921194556e-02 -3.2898997053912235e-02 4.0357981631782891e-02 0 1 0 0 0 0 +V -132 0 0 0 0 0 0 1 0 +P 442 310 3.8379010207120906e-01 6.7470718262439966e-01 -2.3156482330478920e+00 2.4924740305268194e+00 4.9767000000000000e-01 2 0 0 -207 0 +V -133 0 0 0 0 0 0 1 0 +P 443 310 4.9216148712404084e-01 1.6700552201381169e+00 -1.0293091901049095e+01 1.0451158963486355e+01 4.9767000000000000e-01 2 0 0 -208 0 +V -134 0 9.6048817494557951e-06 2.0169447607449687e-06 -1.3519891620979356e-04 1.3580891966622047e-04 0 2 0 +P 444 22 1.5816391710962158e-01 4.6061575462403102e-02 -2.1743161685814321e+00 2.1805477051337747e+00 0 1 0 0 0 0 +P 445 22 -2.0807358571302472e-03 -1.3285414039545751e-02 -2.2720452416971754e-02 2.6401716723371889e-02 0 1 0 0 0 0 +V -135 0 -6.1063190212079914e-05 1.3712130821739223e-04 -6.0160207306227294e-04 6.2361403763779813e-04 0 2 0 +P 446 22 -2.5237797460208114e-02 2.4511377645867576e-02 -3.8105441354096364e-01 3.8267508428664126e-01 0 1 0 0 0 0 +P 447 22 -9.8480342496487655e-02 2.5330563686262997e-01 -8.3783194360571156e-01 8.8080899703098514e-01 0 1 0 0 0 0 +V -136 0 -4.4426904102195735e-05 -3.9203241902067923e-06 -7.3352018546965340e-04 7.3964774707043087e-04 0 2 0 +P 448 22 -9.3539797166090302e-02 -3.7702636311332943e-02 -1.0340724780016020e+00 1.0389788603234766e+00 0 1 0 0 0 0 +P 449 22 2.2057787920906725e-02 3.1394912294285607e-02 -1.4614697997947071e-01 1.5109972297476049e-01 0 1 0 0 0 0 +V -137 0 3.4098188860393095e-05 1.9858577100558979e-05 -1.0637027187826258e-05 5.1232108310682472e-05 0 2 0 +P 450 22 1.6215511123058321e-01 9.3620873556322176e-02 -6.6667187162900293e-02 1.9875528145904667e-01 0 1 0 0 0 0 +P 451 22 -1.3182901251046604e-02 -6.8603676000775432e-03 2.0194881719618613e-02 2.5073627114409011e-02 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 452 130 -8.2754245304295648e-02 1.3966417583534083e-01 2.8673365676272389e-01 5.9686343994935065e-01 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 -3.0024804301746423e-05 -1.0062036223726178e-05 1.6354301085376340e-06 3.2890160085510046e-05 0 2 0 +P 453 22 -2.2227458161680197e-01 -3.7647953140759721e-02 -4.5941596270482596e-02 2.3007387569320689e-01 0 1 0 0 0 0 +P 454 22 -2.4152691014793695e-01 -1.1778311524703966e-01 7.1204539415547607e-02 2.7798956274703429e-01 0 1 0 0 0 0 +V -140 0 -5.2312039080510034e-07 -7.7585077934244670e-06 4.8598353661629399e-05 4.9611143007349821e-05 0 2 0 +P 455 22 4.7206675991752704e-02 -1.2250638112759871e-01 8.1646707124802609e-01 8.2695511492915996e-01 0 1 0 0 0 0 +P 456 22 -5.8513823507732002e-02 -4.5192285691928666e-02 2.3397707802335543e-01 2.4538028296483455e-01 0 1 0 0 0 0 +V -141 0 3.0596166820026153e-05 -6.1256159019476770e-05 1.0370610489371156e-03 1.0399416777082222e-03 0 2 0 +P 457 22 4.0001623016009347e-02 3.0748574500628228e-04 9.6083364275377592e-01 9.6166600929786894e-01 0 1 0 0 0 0 +P 458 22 7.4777626526306248e-02 -2.3010542100460624e-01 2.9296239307961844e+00 2.9395980293397774e+00 0 1 0 0 0 0 +V -142 0 -4.8576316925451316e-07 1.3569495300677073e-05 5.5406023824234275e-03 5.5407339507114817e-03 0 2 0 +P 459 22 6.5319363905594258e-02 3.0658385922958279e-02 8.8762098019672298e+00 8.8765030842369192e+00 0 1 0 0 0 0 +P 460 22 -6.7156663551545731e-02 2.0665449414198934e-02 1.2079983338832347e+01 1.2080187686651476e+01 0 1 0 0 0 0 +V -143 0 9.0037533931825553e-01 -4.1316775008103196e-01 -2.4225397489886213e+00 2.6310406502189263e+00 0 2 0 +P 461 -313 3.3260378225084786e+00 -1.5544554022213999e+00 -7.2364383456584944e+00 8.1606541269951336e+00 8.6681985191492394e-01 2 0 0 -209 0 +P 462 111 2.9176140131540547e+00 -1.3106559225548522e+00 -9.5626609746215951e+00 1.0084294471753186e+01 1.3497999999999999e-01 2 0 0 -210 0 +V -144 0 1.1084488636694684e-04 -5.9020010882937835e-05 -2.8722172598448888e-04 3.1493497848296892e-04 0 2 0 +P 463 22 3.1314551809140151e-01 -2.2424078531812608e-01 -9.5181719689775401e-01 1.0267911285218234e+00 0 1 0 0 0 0 +P 464 22 1.8073067545782046e-01 -3.8726495117382520e-02 -3.2791682948089795e-01 3.7642099507376175e-01 0 1 0 0 0 0 +V -145 0 2.1762554097457766e-05 -5.2596854880985613e-06 -3.6973893122269703e-05 4.3376025620967871e-05 0 2 0 +P 465 22 6.1212626343456389e-01 -1.9963698177142020e-01 -1.1024657025825368e+00 1.2767083113413062e+00 0 1 0 0 0 0 +P 466 22 1.9830912724377689e-01 3.7668075123103504e-03 -2.7443846883299938e-01 3.3861064951124098e-01 0 1 0 0 0 0 +V -146 0 0 0 0 0 0 3 0 +P 467 -211 1.7393789155705139e-01 -1.3065291375810584e-01 -4.3049883216363505e-01 5.0212907044608479e-01 1.3957000000000000e-01 1 0 0 0 0 +P 468 211 5.4061889742620196e-02 -2.0391370194446679e-01 -3.1469861234019963e-01 4.0375547955673285e-01 1.3957000000000000e-01 1 0 0 0 0 +P 469 111 1.6109978154052820e-01 -2.0414556888027760e-01 -1.2587726950965411e-01 3.1889377586441564e-01 1.3497999999999999e-01 2 0 0 -211 0 +V -147 0 1.0714041926560731e-04 -3.5952055726626964e-05 -3.6896034107096622e-04 3.8633479589775667e-04 0 2 0 +P 470 22 2.5050241289919523e-02 -3.1553935481967076e-02 -2.0563051401164908e-01 2.0954014824319075e-01 0 1 0 0 0 0 +P 471 22 7.4662084294927367e-01 -2.2738813337831260e-01 -2.4517795314882425e+00 2.5730081456055021e+00 0 1 0 0 0 0 +V -148 0 -8.2236368158045554e+00 -2.2931374491773147e+00 1.2920849342338417e+02 1.3492529573552881e+02 0 2 0 +P 472 211 1.1959041323412727e-02 1.8026949323956257e-01 6.7905858545809583e-01 7.1640802357774702e-01 1.3957000000000000e-01 1 0 0 0 0 +P 473 -211 -1.1991827116210638e-01 -2.1037361365155197e-01 1.0171799220351061e+00 1.0548801959325360e+00 1.3957000000000000e-01 1 0 0 0 0 +V -149 0 -9.2045643512728860e-06 3.8569981482441684e-06 4.7596694869231805e-05 4.8915671097022722e-05 0 2 0 +P 474 22 -1.6000027299236894e-01 3.3406489255377600e-03 8.2592413992356950e-01 8.4128588018661254e-01 0 1 0 0 0 0 +P 475 22 -7.6077823418413418e-02 9.5583400703326729e-02 3.9483294225373233e-01 4.1330022259228810e-01 0 1 0 0 0 0 +V -150 0 -5.1376001790767983e-04 -8.7323614726347900e-05 1.0339591518642124e-02 1.0352903915864018e-02 0 2 0 +P 476 22 -9.8141079344267446e-01 -1.3524648836133710e-01 2.0155938367930911e+01 2.0180270321527644e+01 0 1 0 0 0 0 +P 477 22 -1.3018310489578394e-01 -5.3690746781996687e-02 2.2152591616907351e+00 2.2197304995303044e+00 0 1 0 0 0 0 +V -151 0 1.8812133423387019e-05 4.4631564068415145e-05 6.8657693823981141e-04 6.8868785865107516e-04 0 2 0 +P 478 22 1.1022166047224506e-01 2.1611844596084642e-01 2.5503585056497373e+00 2.5618712895970677e+00 0 1 0 0 0 0 +P 479 22 -2.6491571954957035e-03 3.9096045874903049e-02 1.3756608498543419e+00 1.3762188389420000e+00 0 1 0 0 0 0 +V -152 0 -6.1390506341479101e-05 -3.8165294835329746e-05 7.2673967916918672e-04 7.3078276184993679e-04 0 2 0 +P 480 22 -2.3353319762731059e-01 -1.5443990800084420e-01 3.2775654162838568e+00 3.2895021656167542e+00 0 1 0 0 0 0 +P 481 22 -8.7200867675081895e-02 -4.4954280050167550e-02 5.1927851948606241e-01 5.2846481379345667e-01 0 1 0 0 0 0 +V -153 0 -2.1949467253790887e-06 -2.9968781866244220e-06 3.5756066464182236e-04 3.5758882682307923e-04 0 2 0 +P 482 22 -9.6872819742027924e-02 -1.7212501507269221e-01 1.3349169664484013e+01 1.3350630775180569e+01 0 1 0 0 0 0 +P 483 22 -2.0782378455591517e-02 1.1484078805539037e-02 5.8170681214651880e+00 5.8171165813559886e+00 0 1 0 0 0 0 +V -154 0 -8.9986340215037180e-04 6.7085770245716900e-04 1.8873921422629708e-01 1.8874257936079455e-01 0 2 0 +P 484 22 -5.9132218144870774e-01 4.5823878854928546e-01 1.3682075425726194e+02 1.3682279941674801e+02 0 1 0 0 0 0 +P 485 22 -5.9557876820332156e-01 4.2660844740346221e-01 1.1212230984163310e+02 1.1212470322395373e+02 0 1 0 0 0 0 +V -155 0 -5.1873522246844111e-06 2.7707778595899736e-05 9.6056467932884703e-03 9.6057046240736067e-03 0 2 0 +P 486 22 -5.3358764522310233e-02 1.0089755553224661e-01 2.0124549509027762e+01 2.0124873177632029e+01 0 1 0 0 0 0 +P 487 22 1.3993599204279632e-02 1.0936795908476790e-01 5.2769647303955324e+01 5.2769762494776600e+01 0 1 0 0 0 0 +V -156 0 -3.7961104939160116e-05 2.2238792132853197e-05 1.3680343821661578e-02 1.3680495100296034e-02 0 2 0 +P 488 22 -5.8340790011343790e-02 1.4637676680264345e-02 3.2736459456784488e+01 3.2736514714841775e+01 0 1 0 0 0 0 +P 489 22 -5.0816223291669176e-02 4.9309885767650677e-02 6.6013173261676918e+00 6.6016970692501333e+00 0 1 0 0 0 0 +V -157 0 6.4821581940860607e-05 4.9234301285117272e-04 1.8010279475067351e-02 1.8017257078420904e-02 0 2 0 +P 490 22 -2.5234079465957855e-02 2.3544476449702920e-01 7.9958679452732673e+00 7.9993734250967465e+00 0 1 0 0 0 0 +P 491 22 1.5175635805081697e-01 7.2553702530404074e-01 2.7157572142236390e+01 2.7167685926999180e+01 0 1 0 0 0 0 +V -158 0 1.4804463480565830e-04 1.0651174971634308e-04 1.8034463186217421e-03 1.8139343160849324e-03 0 2 0 +P 492 22 2.4200308501046050e-01 1.0332693936441227e-01 2.2320018200418206e+00 2.2474594710968643e+00 0 1 0 0 0 0 +P 493 22 5.0192199347641360e-02 1.0689500509646421e-01 1.3274551679537445e+00 1.3326976483497788e+00 0 1 0 0 0 0 +V -159 0 2.4952594602505824e-05 3.7777957462761067e-05 5.9919627289598465e-04 6.0271404297856631e-04 0 2 0 +P 494 22 2.1275464521165535e-02 6.8760375565027509e-02 1.4863415101773401e+00 1.4880832367561605e+00 0 1 0 0 0 0 +P 495 22 5.0890506431500629e-02 4.0498121370393020e-02 2.4660776878922408e-01 2.5503986572021459e-01 0 1 0 0 0 0 +V -160 0 2.0236519733306777e-05 3.7771007405603190e-06 1.1559121658481918e-03 1.1570792571236135e-03 0 2 0 +P 496 22 -1.2833830815182560e-02 -2.3124364578967924e-02 1.4876882759176302e-01 1.5110131539335275e-01 0 1 0 0 0 0 +P 497 22 7.0093495982825063e-02 3.3811751864884283e-02 3.1219093548200161e+00 3.1228791767303448e+00 0 1 0 0 0 0 +V -161 0 9.9092870836126360e-05 2.7848331350535774e-04 4.6738600755917839e-03 4.6833068224631591e-03 0 2 0 +P 498 22 2.6456748621759857e-01 6.3513480445463311e-01 1.1741987252901410e+01 1.1762128073690251e+01 0 1 0 0 0 0 +P 499 22 1.5373857476364564e-01 5.4044177273503313e-01 7.9880294607280593e+00 8.0077667001821897e+00 0 1 0 0 0 0 +V -162 0 0 0 0 0 0 3 0 +P 500 111 3.7256730615539213e-01 4.0392989421236170e-01 4.8383474581306611e+00 4.8713233810796961e+00 1.3497999999999999e-01 2 0 0 -212 0 +P 501 111 4.3040406011067917e-01 7.1737842978781352e-01 9.9218515099128535e+00 9.9579735112945826e+00 1.3497999999999999e-01 2 0 0 -213 0 +P 502 111 1.5302824405896340e-01 1.5887887524497102e-01 2.8455533486003191e+00 2.8572808053478687e+00 1.3497999999999999e-01 2 0 0 -214 0 +V -163 0 2.5839849297056158e-04 -2.4440063293579029e-04 2.5294186504828259e-03 2.5543856476549264e-03 0 2 0 +P 503 22 1.0377695069292572e+00 -1.0215680356798684e+00 1.0766543901355142e+01 1.0864577045648971e+01 0 1 0 0 0 0 +P 504 22 6.5234961046689088e-01 -5.7699462341256325e-01 5.7777430561017944e+00 5.8430127187997627e+00 0 1 0 0 0 0 +V -164 0 2.9081685912101332e+01 -1.3235793939462669e+01 2.7971035052250431e+02 2.8244513460775647e+02 0 2 0 +P 505 -211 1.6762062809584813e-01 3.9634778053940575e-04 7.8798055709064896e-01 8.1761236249686153e-01 1.3957000000000000e-01 1 0 0 0 0 +P 506 211 4.6924787248882088e-01 -2.9025094100292242e-01 5.3374797093361082e+00 5.3677377550568766e+00 1.3957000000000000e-01 1 0 0 0 0 +V -165 0 -3.0050263375036868e+00 -5.0546364354167757e+01 1.8214857668293783e+02 1.9090770581995881e+02 0 2 0 +P 507 211 -9.7967500090645355e-03 -8.7693414903352140e-01 3.0997225316964849e+00 3.2244176274885290e+00 1.3957000000000000e-01 1 0 0 0 0 +P 508 -211 -4.6580152179340854e-02 -7.1359516020228234e-02 3.1754285571499852e-01 3.5717662468214256e-01 1.3957000000000000e-01 1 0 0 0 0 +V -166 0 5.6480984727818789e-06 -7.5695882859026960e-05 2.4158929915350398e-04 2.5535755044692415e-04 0 2 0 +P 509 22 -1.5831173828552911e-02 -2.9378876913681856e-01 9.0618464764577900e-01 9.5275027292812764e-01 0 1 0 0 0 0 +P 510 22 3.9026217408659976e-02 -1.7071480593394573e-02 8.5950023758604277e-02 9.5926470168474803e-02 0 1 0 0 0 0 +V -167 0 -1.3980777099787572e-04 -1.7277007798433808e-04 1.4734431911646548e-04 2.6792598878135266e-04 0 2 0 +P 511 22 -1.2336930388478158e-01 -1.2478121246765621e-01 1.7383616081680370e-01 2.4700070229341370e-01 0 1 0 0 0 0 +P 512 22 -6.0123017804104317e-01 -7.7065620210665875e-01 5.8982394573139763e-01 1.1416133302440359e+00 0 1 0 0 0 0 +V -168 0 -2.8186737865916890e-04 -3.8046149041595802e-04 1.2333062138451006e-04 4.9228004617499265e-04 0 2 0 +P 513 22 -4.8768644239564540e-01 -5.8187949922834425e-01 1.4921470252584854e-01 7.7374856715125973e-01 0 1 0 0 0 0 +P 514 22 -2.1530788834862755e-01 -3.6701452356081865e-01 1.5837934419538133e-01 4.5402771276374626e-01 0 1 0 0 0 0 +V -169 0 -3.4658007413822462e-04 -5.2006713158035483e-04 -6.2006088942802176e-04 8.8139953703405920e-04 0 2 0 +P 515 22 -1.0775610701610787e+00 -1.6290514307907258e+00 -1.9570560690361336e+00 2.7649620036157683e+00 0 1 0 0 0 0 +P 516 22 -2.4453684219177260e-02 -2.4597163101588097e-02 -1.4540972319744369e-02 3.7609081091414698e-02 0 1 0 0 0 0 +V -170 0 -3.2936317532428194e-06 1.0990395558401315e-06 -2.4129875422404844e-06 4.5736236017871529e-06 0 2 0 +P 517 22 -1.1277518702680793e-01 -2.8406275204800626e-02 -9.5641457125978296e-02 1.5057372812387532e-01 0 1 0 0 0 0 +P 518 22 -1.4222141692334364e-01 1.1349513010492379e-01 -9.1174700460411068e-02 2.0352125685849817e-01 0 1 0 0 0 0 +V -171 0 -2.7271832796903617e+00 6.8567867727248952e+00 -1.2603422001234511e+01 1.5348030492065396e+01 0 2 0 +P 519 -211 -3.7348317016183979e-01 4.9790328223054242e-01 -1.0151019995738311e+00 1.1988783137953889e+00 1.3957000000000000e-01 1 0 0 0 0 +P 520 211 8.5831780283816786e-02 2.2532066093454553e-01 -3.1425194699553238e-01 4.1996495787285959e-01 1.3957000000000000e-01 1 0 0 0 0 +V -172 0 3.1974236939944823e-04 3.3569120093488014e-05 -5.9655894167858436e-04 6.8391161951871296e-04 0 2 0 +P 521 22 1.9897288125315632e-02 1.6243576481117575e-02 -1.3069032052262358e-01 1.3319052417475438e-01 0 1 0 0 0 0 +P 522 22 4.4848871157211562e-01 3.2931344889120584e-02 -7.4320029585512404e-01 8.6866177401965050e-01 0 1 0 0 0 0 +V -173 0 1.9560921305414770e-05 4.4755997995360398e-05 -3.5733999312562766e-03 3.5738070538753140e-03 0 2 0 +P 523 22 5.1120391576480297e-03 1.7106579289460694e-01 -1.2815304960687456e+01 1.2816447669844537e+01 0 1 0 0 0 0 +P 524 22 1.1022477824540093e-01 9.2828442345385592e-02 -8.2544886826868353e+00 8.2557464855730984e+00 0 1 0 0 0 0 +V -174 0 5.5231096619475536e-05 5.6770554839812856e-07 -2.1296451261918815e-03 2.1308725963420996e-03 0 2 0 +P 525 22 9.7472420846883984e-02 6.0287687292296423e-02 -2.6041322266357367e+00 2.6066530516867035e+00 0 1 0 0 0 0 +P 526 22 6.2239828849669235e-02 -5.8646048146063924e-02 -3.5541813861247409e+00 3.5552100473437531e+00 0 1 0 0 0 0 +V -175 0 5.3769907760083674e-05 -1.7797180683467078e-05 -4.7051261694481660e-04 4.7445074797331378e-04 0 2 0 +P 527 22 5.3037730429285952e-02 1.8802208065621582e-02 -7.8476669872783666e-01 7.8678160585350465e-01 0 1 0 0 0 0 +P 528 22 2.6726521743199222e-01 -1.2481855947855978e-01 -2.0180385224711261e+00 2.0394827401615143e+00 0 1 0 0 0 0 +V -176 0 2.9254383701421145e-05 8.8292904820199445e-06 -3.6860838857756469e-04 3.7012148884077044e-04 0 2 0 +P 529 22 2.6766648875802562e-01 3.2296618557240302e-02 -2.7936079938788474e+00 2.8065876156354146e+00 0 1 0 0 0 0 +P 530 22 2.3442063103992584e-02 5.5563101627706384e-02 -8.7439114423986819e-01 8.7646828904996255e-01 0 1 0 0 0 0 +V -177 0 1.1791599049523860e-05 1.5009523055407391e-06 -2.9482632283654421e-04 2.9765838229104172e-04 0 2 0 +P 531 22 -1.5428123271640134e-02 -5.0390978815312924e-02 -2.3845419747560437e-01 2.4420827591911123e-01 0 1 0 0 0 0 +P 532 22 5.6030702577819128e-02 5.5559279973158932e-02 -7.7673543916687360e-01 7.8073312705447295e-01 0 1 0 0 0 0 +V -178 0 3.2723311563305957e-04 1.0507501276705404e-03 -1.2218877606198402e-02 1.2268568468549786e-02 0 2 0 +P 533 22 9.4401096396448003e-02 2.3410779978091101e-01 -3.2781170771961121e+00 3.2878214064519824e+00 0 1 0 0 0 0 +P 534 22 4.9348863218620098e-01 1.6536143709088655e+00 -1.8673672935241342e+01 1.8753240584233389e+01 0 1 0 0 0 0 +V -179 0 1.7342743189630799e-05 8.3072667488889255e-04 -1.7361270833368348e-02 1.7381836821258590e-02 0 2 0 +P 535 22 -3.8453506099116352e-02 1.6907034517103431e-01 -2.8447753591404483e+00 2.8500544376766270e+00 0 1 0 0 0 0 +P 536 22 5.3526856649327458e-02 5.5295120846059187e-01 -1.2244678391462424e+01 1.2257274129008765e+01 0 1 0 0 0 0 +V -180 0 1.0839912633860633e-05 1.0352917101532169e-05 -2.0615493526385194e-04 2.0836977521051438e-04 0 2 0 +P 537 22 -2.8004400899389711e-02 6.2646397586995417e-02 -5.7297679271081736e-01 5.7707124567555479e-01 0 1 0 0 0 0 +P 538 22 8.3568879894528450e-02 -9.5782166655390463e-03 -4.8375603873570577e-01 4.9101466875703387e-01 0 1 0 0 0 0 +V -181 0 0 0 0 0 0 1 0 +P 539 310 4.9782761336762366e-01 5.0953796112831118e-01 -7.5199540324803458e+00 7.5699963900902567e+00 4.9767000000000000e-01 2 0 0 -215 0 +V -182 0 8.7757799449387813e-05 1.3142049408522492e-05 -1.0075220374350941e-03 1.0115039674349258e-03 0 2 0 +P 540 22 2.7618616299673959e-01 8.4600539789103923e-03 -3.7511108822759187e+00 3.7612741485131078e+00 0 1 0 0 0 0 +P 541 22 6.4466287487593510e-01 1.2944043611362591e-01 -6.8208918870357209e+00 6.8525113048702293e+00 0 1 0 0 0 0 +V -183 0 -2.6136531610599666e-05 -7.8566005859732383e-05 -8.0291769723185909e-03 8.0296346065171897e-03 0 2 0 +P 542 22 -7.4716552899476629e-03 4.9182992465864129e-03 -2.7131229900018922e-01 2.7145971872272112e-01 0 1 0 0 0 0 +P 543 22 -1.5136490069141190e-01 -4.8237850605192573e-01 -4.8523487127665760e+01 4.8526120835947800e+01 0 1 0 0 0 0 +V -184 0 3.0415448928081571e-05 -1.1974711988028776e-04 -6.5567445846735376e-03 6.5581791201926257e-03 0 2 0 +P 544 22 1.3556393099985419e-02 -6.1583833433596850e-02 -1.3131200271624943e+00 1.3146332378536185e+00 0 1 0 0 0 0 +P 545 22 5.5354700392647317e-02 -2.0972253436179353e-01 -1.3542239831247805e+01 1.3543976791596672e+01 0 1 0 0 0 0 +V -185 0 -3.1088009732033299e-05 -4.8775051918327588e-05 -3.9681488720718049e-03 3.9686020068036556e-03 0 2 0 +P 546 22 -2.3880690879437318e-02 -6.3743256993639932e-02 -2.3974399240098516e+00 2.3984060705905081e+00 0 1 0 0 0 0 +P 547 22 -2.4101259830608548e-01 -3.5185697101090135e-01 -3.1414181204563874e+01 3.1417076107648302e+01 0 1 0 0 0 0 +V -186 0 4.9936185293428575e-06 -7.8074106944437902e-06 -4.8662299743094315e-04 4.8679322156790417e-04 0 3 0 +P 548 22 -7.6945087736918416e-03 -3.4952019188524259e-03 -3.4251266665547355e+00 3.4251370927082716e+00 0 1 0 0 0 0 +P 549 11 3.7993073439308529e-02 -5.4461719288112491e-02 -1.9843239859383353e+00 1.9854348374518325e+00 5.1000000000000004e-04 1 0 0 0 0 +P 550 -11 4.5152289921856444e-02 -6.0008799552382155e-02 -1.9431576419402867e+00 1.9446083582150522e+00 5.1000000000000004e-04 1 0 0 0 0 +V -187 0 -3.3864176965536530e-06 -5.2595766008398732e-06 -1.0993693802770681e-03 1.0994124317216158e-03 0 2 0 +P 551 22 3.7271706047568784e-02 2.3949720321528242e-03 -4.4966347495633086e+00 4.4967898535447492e+00 0 1 0 0 0 0 +P 552 22 -9.8612167830641417e-02 -9.7665221123780122e-02 -1.5416982381895389e+01 1.5417607097689778e+01 0 1 0 0 0 0 +V -188 0 -4.6383230818921369e-06 5.6203138543926335e-06 2.4584505964231955e-05 2.6813092486387573e-05 0 2 0 +P 553 22 -6.5476919329221801e-03 1.0368115961250647e-01 1.8400605847919932e-01 2.1130755946083196e-01 0 1 0 0 0 0 +P 554 22 -7.3324877363122987e-02 -6.8985724846230816e-03 2.3934255729599138e-01 2.5041762652742228e-01 0 1 0 0 0 0 +V -189 0 -4.9726058411939644e-05 1.4815060441523449e-05 2.8970980996520599e-04 2.9505398883757013e-04 0 2 0 +P 555 22 -1.2227550286838383e-01 -2.9022998042734331e-02 7.1445373986730298e-01 7.2542248340362359e-01 0 1 0 0 0 0 +P 556 22 -2.0031525666097008e-01 1.2513360388871886e-01 1.1649976106813382e+00 1.1886984704989552e+00 0 1 0 0 0 0 +V -190 0 4.1144825782597785e-06 -1.3891011630816487e-06 1.1513855193327027e-04 1.1525421260035257e-04 0 2 0 +P 557 22 9.3887241474577124e-02 3.4826553659132765e-02 1.8468116251162237e+00 1.8495245014911006e+00 0 1 0 0 0 0 +P 558 22 1.0511091056963101e-01 -1.0201083727144152e-01 3.7218980796791872e+00 3.7247791652608369e+00 0 1 0 0 0 0 +V -191 0 0 0 0 0 0 2 0 +P 559 211 2.7960965099084567e-01 -4.5946947899938018e-01 9.9891123687115861e+00 1.0004555935108064e+01 1.3957000000000000e-01 1 0 0 0 0 +P 560 -211 -1.9661017956950227e-01 1.7695947757585628e-01 6.1182368816204669e+00 6.1255426326110252e+00 1.3957000000000000e-01 1 0 0 0 0 +V -192 0 -3.8117306469070869e+00 2.4304278506338637e+00 -3.6687500677897781e+01 3.6965955593079201e+01 0 2 0 +P 561 311 -1.8715297405296983e+01 1.1577069668267237e+01 -1.8242722485100242e+02 1.8375045834320991e+02 4.9767000000000000e-01 2 0 0 -216 0 +P 562 211 -2.8661817689837927e+00 1.9267205095557918e+00 -2.7067714435363381e+01 2.7287504363610779e+01 1.3957000000000000e-01 1 0 0 0 0 +V -193 0 0 0 0 0 0 1 0 +P 563 310 -4.4690407303060170e-01 3.0479452171944948e-01 -6.3255618455358773e+00 6.3681261797769668e+00 4.9767000000000000e-01 2 0 0 -217 0 +V -194 0 -3.1527778681318056e-04 1.6421247362094913e-04 -3.2827057816517463e-03 3.3020747002308936e-03 0 2 0 +P 564 22 -2.9431917300519211e-01 1.7742963419472862e-01 -3.6976505269072799e+00 3.7135864699541625e+00 0 1 0 0 0 0 +P 565 22 -9.4756500827945667e-01 4.6940589272528510e-01 -9.2329793891821001e+00 9.2933379223023156e+00 0 1 0 0 0 0 +V -195 0 0 0 0 0 0 1 0 +P 566 310 -9.3258822715903111e-01 9.6253600257025262e-01 -1.1172693777377827e+01 1.1263789683300944e+01 4.9767000000000000e-01 2 0 0 -218 0 +V -196 0 -6.5693861061007710e-06 3.8405137903525116e-06 -3.9455407529225346e-05 4.0895424224071609e-05 0 2 0 +P 567 22 1.7454219099767260e-02 4.4134073479361206e-02 -2.8161765485158968e-01 2.8558881233405026e-01 0 1 0 0 0 0 +P 568 22 -1.3408943408499285e-01 2.4051772862582772e-02 -4.1888766865607635e-01 4.4048307920190266e-01 0 1 0 0 0 0 +V -197 0 -4.4674668139318611e-05 -7.7777020687567041e-05 3.1331705484877706e-05 9.7992828544315845e-05 0 2 0 +P 569 22 -1.1564015998464669e-01 -2.1072831940990802e-01 1.3246041090625361e-02 2.4073746863995532e-01 0 1 0 0 0 0 +P 570 22 -1.3565519498958165e-01 -2.2676802553368905e-01 1.6299504540646192e-01 3.1047295237937217e-01 0 1 0 0 0 0 +V -198 0 -4.1994933803133881e-06 2.7133704299912539e-05 4.1024696949819633e-05 4.9883066825652891e-05 0 2 0 +P 571 22 -9.1327603613570452e-02 4.7743485030051019e-01 7.5852594270345663e-01 9.0091418748815133e-01 0 1 0 0 0 0 +P 572 22 1.2278616621454207e-02 3.3315291206237996e-02 1.3700714622479238e-02 3.8057622567098298e-02 0 1 0 0 0 0 +V -199 0 2.9180616181076244e-05 4.1500529828774420e-05 -5.5798650462421432e-06 5.4497450772478213e-05 0 2 0 +P 573 22 2.0272262046875161e-01 2.6691626730043372e-01 -7.2202577647962327e-02 3.4286143967836935e-01 0 1 0 0 0 0 +P 574 22 3.4337132127359193e-03 2.6278263694003868e-02 3.2781733576932932e-02 4.2154235676950993e-02 0 1 0 0 0 0 +V -200 0 -2.1589576501028010e-05 1.0363255653369697e-05 8.8651781906517996e-06 2.7912456157651145e-05 0 2 0 +P 575 22 -3.8865980834170609e-02 8.3634946299046928e-02 4.5307746193725261e-02 1.0275291029358541e-01 0 1 0 0 0 0 +P 576 22 -2.1971692730504189e-01 4.0487950901408658e-02 6.0872361489346244e-02 2.3156046015210280e-01 0 1 0 0 0 0 +V -201 0 -5.5928360981912877e-05 5.2110866302600545e-05 8.0897793623986721e-04 8.1290521662359661e-04 0 2 0 +P 577 22 -2.6406015212804240e-01 1.5887290229264120e-01 3.1439228369676688e+00 3.1589902133168448e+00 0 1 0 0 0 0 +P 578 22 -6.5080422478704020e-02 1.4780156799337593e-01 1.6169437091533618e+00 1.6249885302555025e+00 0 1 0 0 0 0 +V -202 0 2.5577613621733289e-05 -2.8987004054158923e-06 8.1130391415557820e-06 2.8246978345620541e-05 0 2 0 +P 579 22 4.1523619773097542e-01 -2.5212523152159896e-02 1.2013330443018896e-01 4.3299974834068033e-01 0 1 0 0 0 0 +P 580 22 -9.6754780728841897e-04 -2.1736372129631837e-02 1.1269797581427982e-02 2.4503354048855987e-02 0 1 0 0 0 0 +V -203 0 -9.7897731963963699e-05 5.6826197138257549e-05 6.6282573799741188e-05 1.3240190736311445e-04 0 2 0 +P 581 22 -3.4078459999881455e-01 2.7082520501007290e-01 2.2460587057992729e-01 4.8982469554328012e-01 0 1 0 0 0 0 +P 582 22 -3.9367645685764430e-01 1.5550365848863854e-01 2.7266784789645226e-01 5.0349805934464398e-01 0 1 0 0 0 0 +V -204 0 1.0051858600423073e-05 -5.4491398591193902e-05 -6.0753769080588552e-06 5.9770613427078703e-05 0 2 0 +P 583 22 5.5789906689558660e-02 -8.2513813655285095e-02 3.4609669383240317e-02 1.0544606368748895e-01 0 1 0 0 0 0 +P 584 22 7.1123513784841722e-03 -2.5848103644413822e-01 -7.2628004232803536e-02 2.6858491905207016e-01 0 1 0 0 0 0 +V -205 0 -3.7511928053308099e-05 -4.4579420963488085e-06 3.2103614254240428e-06 5.2862428077211607e-05 0 2 0 +P 585 22 -9.4580225870565235e-02 4.1353138776709604e-02 4.7263360195968919e-02 1.1353116941803613e-01 0 1 0 0 0 0 +P 586 22 -4.2865418981593975e-02 -5.7687269223843832e-02 -3.5500429863546519e-02 8.0159501591941129e-02 0 1 0 0 0 0 +V -206 0 1.5843923112336528e-01 -6.6444617855219837e-02 -8.9283819735022774e-01 9.2728610338778894e-01 0 2 0 +P 587 321 3.8552872954303585e-01 -2.7291260034918019e-01 -2.9224624236940806e+00 3.0012566145926773e+00 4.9359999999999998e-01 1 0 0 0 0 +P 588 223 4.8704055034862392e-01 -3.5751374929749274e-01 -4.5334150716676227e+00 4.6420521179146625e+00 7.9484028256763894e-01 2 0 0 -219 0 +V -207 0 6.3429893183150927e+00 1.1151044358051168e+01 -3.8271263192902083e+01 4.1193704752906903e+01 0 2 0 +P 589 -211 1.4786817700154750e-01 5.9321872089188232e-01 -1.7433086461786294e+00 1.8526678788513411e+00 1.3957000000000000e-01 1 0 0 0 0 +P 590 211 2.3592192506966145e-01 8.1488461732517337e-02 -5.7233958686926234e-01 6.3980615167547805e-01 1.3957000000000000e-01 1 0 0 0 0 +V -208 0 6.8329392612838751e+00 2.3186263413004074e+01 -1.4290446044786810e+02 1.4509898940858528e+02 0 2 0 +P 591 211 2.4410696810169960e-01 1.3645749729262360e+00 -7.8972249366110239e+00 8.0191829105553794e+00 1.3957000000000000e-01 1 0 0 0 0 +P 592 -211 2.4805451902234124e-01 3.0548024721188094e-01 -2.3958669644380710e+00 2.4319760529309771e+00 1.3957000000000000e-01 1 0 0 0 0 +V -209 0 9.0037533931825553e-01 -4.1316775008103196e-01 -2.4225397489886213e+00 2.6310406502189263e+00 0 2 0 +P 593 -321 2.2771576165304452e+00 -1.0470309598375531e+00 -5.5075471687666786e+00 6.0711150061229135e+00 4.9359999999999998e-01 1 0 0 0 0 +P 594 211 1.0488802059780338e+00 -5.0742444238384699e-01 -1.7288911768918163e+00 2.0895391208722200e+00 1.3957000000000000e-01 1 0 0 0 0 +V -210 0 9.0046542976216415e-01 -4.1320822067561436e-01 -2.4228350260089080e+00 2.6313520343024166e+00 0 2 0 +P 595 22 2.6060905464746402e+00 -1.1260542878061872e+00 -8.4399332612949678e+00 8.9046156374446763e+00 0 1 0 0 0 0 +P 596 22 3.1152346667941438e-01 -1.8460163474866495e-01 -1.1227277133266274e+00 1.1796788343085065e+00 0 1 0 0 0 0 +V -211 0 1.1569229356777967e-05 -1.4660522105994798e-05 -9.0397577689810670e-06 2.2901056712458870e-05 0 2 0 +P 597 22 1.5315840728112597e-02 -6.0222579655507182e-02 -9.2350984073855877e-02 1.1131054908220694e-01 0 1 0 0 0 0 +P 598 22 1.4578394081241561e-01 -1.4392298922477043e-01 -3.3526285435798248e-02 2.0758322678220872e-01 0 1 0 0 0 0 +V -212 0 4.5366605022425090e-05 4.9185550274341878e-05 5.8915367630974652e-04 5.9316907338555658e-04 0 2 0 +P 599 22 6.2412753514439541e-02 9.0724804124025227e-02 5.9158564124042290e-01 6.0174738288291663e-01 0 1 0 0 0 0 +P 600 22 3.1015455264095260e-01 3.1320509008833647e-01 4.2467618168902384e+00 4.2695759981967800e+00 0 1 0 0 0 0 +V -213 0 1.0618662664215143e-05 1.7698716751283111e-05 2.4478578143780885e-04 2.4567696110588694e-04 0 2 0 +P 601 22 2.7037667242088931e-01 3.4218773845439160e-01 4.6801937946366561e+00 4.7004691200659314e+00 0 1 0 0 0 0 +P 602 22 1.6002738768978980e-01 3.7519069133342203e-01 5.2416577152761965e+00 5.2575043912286512e+00 0 1 0 0 0 0 +V -214 0 3.4213984360743327e-05 3.5522065787995497e-05 6.3620750774059183e-04 6.3882952712151966e-04 0 2 0 +P 603 22 1.6633397364096600e-01 9.3159794517856359e-02 2.2056974914033418e+00 2.2139212184910280e+00 0 1 0 0 0 0 +P 604 22 -1.3305729582002584e-02 6.5719080727114673e-02 6.3985585719697713e-01 6.4335958685684069e-01 0 1 0 0 0 0 +V -215 0 2.3355944705345006e+01 2.3905344191100344e+01 -3.5280411502535122e+02 3.5515188864392519e+02 0 2 0 +P 605 -211 -2.6117036784758577e-02 1.4271093127076998e-01 -1.2708986814665231e+00 1.2867446339378819e+00 1.3957000000000000e-01 1 0 0 0 0 +P 606 211 5.2394465015238212e-01 3.6682702985754118e-01 -6.2490553510138218e+00 6.2832517561523735e+00 1.3957000000000000e-01 1 0 0 0 0 +V -216 0 -3.8117306469070869e+00 2.4304278506338637e+00 -3.6687500677897781e+01 3.6965955593079201e+01 0 1 0 +P 607 130 -1.8715297405296983e+01 1.1577069668267237e+01 -1.8242722485100242e+02 1.8375045834320991e+02 4.9767000000000000e-01 1 0 0 0 0 +V -217 0 -8.5683490912819821e+01 5.8437280409922408e+01 -1.2127797744938878e+03 1.2209404983857619e+03 0 2 0 +P 608 111 -3.5967176370115622e-01 3.2878999327079506e-01 -3.3312469013489321e+00 3.3694053118355725e+00 1.3497999999999999e-01 2 0 0 -220 0 +P 609 111 -8.7232309329445451e-02 -2.3995471551345536e-02 -2.9943149441869452e+00 2.9987208679413939e+00 1.3497999999999999e-01 2 0 0 -221 0 +V -218 0 -1.6982282479171256e+00 1.7527626680229260e+00 -2.0345296697419474e+01 2.0511180885320400e+01 0 2 0 +P 610 111 -1.6065970337379756e-01 2.2472617477739559e-01 -1.4854185479765942e+00 1.5169051575464865e+00 1.3497999999999999e-01 2 0 0 -222 0 +P 611 111 -7.7192852378523358e-01 7.3780982779285698e-01 -9.6872752294012336e+00 9.7468845257544565e+00 1.3497999999999999e-01 2 0 0 -223 0 +V -219 0 1.5843923112336528e-01 -6.6444617855219837e-02 -8.9283819735022774e-01 9.2728610338778894e-01 0 3 0 +P 612 -211 3.2073970588280426e-01 -2.2344149637641733e-01 -1.7720504229152780e+00 1.8200116888325020e+00 1.3957000000000000e-01 1 0 0 0 0 +P 613 211 1.0327478319521827e-01 -2.9696360012404494e-01 -1.9981974224513948e+00 2.0275911285646449e+00 1.3957000000000000e-01 1 0 0 0 0 +P 614 111 6.3026061270601327e-02 1.6289134720296952e-01 -7.6316722630094946e-01 7.9444930051751483e-01 1.3497999999999999e-01 2 0 0 -224 0 +V -220 0 -8.5683537123124310e+01 5.8437322652564823e+01 -1.2127802024894916e+03 1.2209409312839239e+03 0 2 0 +P 615 22 -3.2562028377162922e-01 2.7551611057831837e-01 -3.1161850712685530e+00 3.1452419771440030e+00 0 1 0 0 0 0 +P 616 22 -3.4051479929526993e-02 5.3273882692476640e-02 -2.1506183008037907e-01 2.2416333469156946e-01 0 1 0 0 0 0 +V -221 0 -8.5683519961278023e+01 5.8437272419403094e+01 -1.2127807716041691e+03 1.2209414969632207e+03 0 2 0 +P 617 22 -1.0095930423421715e-01 2.7455429715276092e-02 -2.2937984531900248e+00 2.2961833388449753e+00 0 1 0 0 0 0 +P 618 22 1.3726994904771693e-02 -5.1450901266621621e-02 -7.0051649099692037e-01 7.0253752909641898e-01 0 1 0 0 0 0 +V -222 0 -1.6982374833223159e+00 1.7527755862422265e+00 -2.0345382085615018e+01 2.0511268083500596e+01 0 2 0 +P 619 22 -7.3037469158247367e-02 2.0430474030481502e-01 -1.0086454152325899e+00 1.0317172444433522e+00 0 1 0 0 0 0 +P 620 22 -8.7622234215550196e-02 2.0421434472580581e-02 -4.7677313274400424e-01 4.8518791310313425e-01 0 1 0 0 0 0 +V -223 0 -1.6983640114226690e+00 1.7528924308773342e+00 -2.0347000454184229e+01 2.0512895125914664e+01 0 2 0 +P 621 22 -6.7157134859009704e-01 5.7128422133885581e-01 -7.8635746548436938e+00 7.9128490501271402e+00 0 1 0 0 0 0 +P 622 22 -1.0035717519513651e-01 1.6652560645400125e-01 -1.8237005745575405e+00 1.8340354756273183e+00 0 1 0 0 0 0 +V -224 0 1.5844801754335897e-01 -6.6421909284177794e-02 -8.9294458997005066e-01 9.2739685702013275e-01 0 2 0 +P 623 22 -8.7214544347417808e-03 -2.0043855121139119e-02 -1.1849558188276470e-01 1.2049490786464623e-01 0 1 0 0 0 0 +P 624 22 7.1747515705343115e-02 1.8293520232410862e-01 -6.4467164441818470e-01 6.7395439265287005e-01 0 1 0 0 0 0 +BlockType GenEvent +E 3 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 102 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 21 5.4969932515599695e-01 2.2550476873687056e-01 5.5705531929900893e+01 5.5708700481541165e+01 0 3 0 0 -3 0 +P 14 2101 -9.4236956683619111e-01 2.1652326170818870e-01 6.5343226954385455e+03 6.5343227926610143e+03 5.7933000000000001e-01 2 0 0 -9 0 +P 15 2 3.9267024168019415e-01 -4.4202803044505923e-01 2.0241152885643043e+01 2.0252475128694172e+01 3.3000000000000002e-01 2 0 0 -11 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 1 -2.4852244145458005e+00 -5.1082941165122786e-01 -1.2650126797311423e+03 1.2650152240853247e+03 0 3 0 0 -4 0 +P 29 2203 2.4852244145458005e+00 5.1082941165122786e-01 -5.5694416402834304e+03 5.5694422716067393e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -3 0 0 0 0 0 0 4 0 +P 13 2 -1.0608618276380355e+00 5.3963075851129338e-01 6.2467108078944122e-01 1.3841037287882854e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 16 21 1.2784868462321570e+00 -8.7405515584658322e-01 5.0158545116382854e+01 5.0182448617257258e+01 0 2 0 0 -11 0 +P 17 21 -1.6686180664312625e-01 9.4299371379547992e-01 -4.2196845113635542e+00 4.3269871021549715e+00 0 2 0 0 -11 0 +P 5 -2 5.1478982848448318e-01 -3.7127142663721519e-01 4.3686552602229858e+00 4.4145214715099570e+00 0 3 0 0 -5 0 +V -4 0 0 0 0 0 0 7 0 +P 6 1 2.5722674946760922e+00 4.3788611284604106e-01 -4.6269073817910544e+02 4.6269809541539877e+02 0 3 0 0 -5 0 +P 23 21 -6.2117781148280848e-01 -2.8319314770868491e+00 -4.2435587401747085e+01 4.2534512761940860e+01 0 2 0 0 -11 0 +P 24 21 -1.0853374093767046e-01 2.4951738842432462e-02 -1.2807245422014727e+01 1.2807729598250830e+01 0 2 0 0 -11 0 +P 25 21 -4.7236154263853830e-02 -2.8124786400644658e-01 -7.3009915305624826e+00 7.3065593095945598e+00 0 2 0 0 -11 0 +P 26 21 -3.6487430314729372e+00 1.0613239469355105e+00 -1.4428971573317793e+02 1.4433974435543163e+02 0 2 0 0 -11 0 +P 27 21 -8.5735899903395096e-01 1.3023755707753566e+00 -8.6410163495004923e+01 8.6424230409151221e+01 0 2 0 0 -11 0 +P 28 21 2.0970411268715061e-01 -2.3598056104377471e-01 -5.0430489298734267e+02 5.0430499179922384e+02 0 2 0 0 -11 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 6.1062538570560743e-01 4.7283777698592582e+00 -5.7841992636145454e+00 7.4958242253514973e+00 0 3 0 0 -6 0 +P 8 -24 2.4764319374549677e+00 -4.6617630836504320e+00 -4.5253788365526782e+02 4.5961679266155716e+02 8.0182262397111174e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 6.1062538570560743e-01 4.7283777698592582e+00 -5.7841992636145454e+00 7.4958242253514982e+00 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 -24 2.4764319374549677e+00 -4.6617630836504320e+00 -4.5253788365526782e+02 4.5961679266155716e+02 8.0182262397111174e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 2 0 +P 11 13 1.1665477362123605e+01 3.4513182507826755e+01 -2.8476888728061687e+02 2.8708983516659214e+02 1.0566000000000000e-01 1 0 0 0 0 +P 12 -14 -9.1890454246686382e+00 -3.9174945591477190e+01 -1.6776899637465104e+02 1.7252695749496510e+02 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 1 0 +P 35 92 -2.0032313944742266e+00 7.5615402021948208e-01 6.5349473665193345e+03 6.5357068963898028e+03 9.9614093552669928e+01 2 0 0 -10 0 +V -10 0 0 0 0 0 0 9 0 +P 36 321 -2.7347780861062648e-01 1.7597531166764313e-01 9.6890202910053802e-01 1.1349755610206478e+00 4.9359999999999998e-01 1 0 0 0 0 +P 37 333 -1.1091211096030533e+00 1.4407005271255402e-01 2.4365019278869586e+00 2.8692745467802063e+00 1.0223937423264025e+00 2 0 0 -17 0 +P 38 -321 5.7487835922576980e-01 -1.6335008561432823e-01 3.0727085777785232e+00 3.1689662892385013e+00 4.9359999999999998e-01 1 0 0 0 0 +P 39 323 -4.9346996389094194e-01 1.1818828175705887e-01 1.1352455312350665e+01 1.1390232114301151e+01 7.7567062825092892e-01 2 0 0 -18 0 +P 40 333 4.6705005789470379e-02 -1.1036790308186785e-02 6.0989748896587884e+01 6.0998269072082245e+01 1.0183595401409025e+00 2 0 0 -19 0 +P 41 -313 6.6116839338003747e-02 2.0047724383885190e-01 1.0174249585391416e+02 1.0174747600392061e+02 9.8430077868461274e-01 2 0 0 -20 0 +P 42 -211 6.6195102743584266e-01 2.3352413161979789e-03 1.9139236560226081e+01 1.9151189010327013e+01 1.3957000000000000e-01 1 0 0 0 0 +P 43 213 -1.1330549383455299e+00 2.6772966756529654e-01 8.9903421865118207e+02 8.9903532297395714e+02 7.9382395898092395e-01 2 0 0 -21 0 +P 44 2112 -3.4375880581316148e-01 2.1765097284394738e-02 5.4362110987103097e+03 5.4362111908181760e+03 9.3957000000000002e-01 1 0 0 0 0 +V -11 0 0 0 0 0 5 1 0 +P 18 21 9.3397002995552358e-01 2.9110210203548919e+00 1.9719566949430803e+01 1.9955141294184987e+01 0 2 0 0 -11 0 +P 19 21 -2.1357165232265416e+00 4.1733949000175592e+00 -2.5122523216850832e+00 5.3188271063165358e+00 0 2 0 0 -11 0 +P 20 21 2.1357165232265416e+00 -4.1733949000175592e+00 -7.2379746050422105e+00 8.6236179438975249e+00 0 2 0 0 -11 0 +P 21 21 2.6814323415953143e+00 -1.7234320325764891e+00 -3.0705360378789067e+01 3.0870365293672400e+01 0 2 0 0 -11 0 +P 22 21 -2.6814323415953143e+00 1.7234320325764891e+00 -1.0476850460974710e+02 1.0481698266758141e+02 0 2 0 0 -11 0 +P 45 92 -1.4985589873352057e-01 2.0882523139261866e+00 -6.4263147483284502e+03 6.6115068849940917e+03 1.5538653939405463e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 44 0 +P 46 211 1.3949741497349764e+00 -8.1413890613658435e-01 3.1237954613440834e+01 3.1279994617218282e+01 1.3957000000000000e-01 1 0 0 0 0 +P 47 113 6.8753804353602468e-02 -1.4130704072596839e-01 2.6547465088091574e+01 2.6560329224240288e+01 8.1147466457031847e-01 2 0 0 -22 0 +P 48 -211 -3.3705321336487631e-01 -1.6764450883023393e-01 9.4322808686628328e+00 9.4408215596006979e+00 1.3957000000000000e-01 1 0 0 0 0 +P 49 113 5.9981396172818402e-01 -2.6687872216516484e-01 2.2150499557325571e+00 2.4423648313647601e+00 7.9227433510622125e-01 2 0 0 -23 0 +P 50 323 -3.0748077012799063e-01 -6.1187613112430157e-02 -1.4211926385251549e-02 9.7630268316421653e-01 9.2448721046057525e-01 2 0 0 -24 0 +P 51 -313 1.4293786442054000e-02 4.6772668279335211e-01 -3.8804113875347573e-01 1.1164769507355792e+00 9.3646798879139526e-01 2 0 0 -25 0 +P 52 111 8.0828878413878216e-02 -1.3461691433235596e-02 -7.1537625213290668e-01 7.3259627847649700e-01 1.3497999999999999e-01 2 0 0 -26 0 +P 53 113 -2.3019258837112086e-01 1.4760214205834568e-01 -1.6237023486867372e+00 1.8378775046348748e+00 8.1646150235689630e-01 2 0 0 -27 0 +P 54 223 3.6047327332852880e-01 7.5799280465086738e-01 8.7170208350794642e-01 1.4416890830588578e+00 7.8365095363453574e-01 2 0 0 -28 0 +P 55 113 1.2071093866836292e-01 1.1591242726102904e-01 9.8276244825033521e-01 1.2590091097043403e+00 7.6894413784082705e-01 2 0 0 -29 0 +P 56 -213 8.6853791013771414e-02 1.0081227171470937e+00 7.4151556572422583e+00 7.5162670018422455e+00 6.9705181156703200e-01 2 0 0 -30 0 +P 57 323 1.7595879809624551e-01 4.2346453954444735e-01 1.9254698599629185e+00 2.1644899849972110e+00 8.7595604835439056e-01 2 0 0 -31 0 +P 58 -321 1.9281037659969705e-01 1.9746412913081476e-01 6.1305191305880840e+00 6.1565472217895207e+00 4.9359999999999998e-01 1 0 0 0 0 +P 59 223 -2.6288378130564161e-01 7.8988896286242360e-01 6.4711248501236418e-01 1.3136617569823170e+00 7.8353059121744273e-01 2 0 0 -32 0 +P 60 213 1.3477705105748747e-01 1.0791582261049506e+00 5.7410962076755911e-01 1.3686690060033124e+00 6.0075424332623606e-01 2 0 0 -33 0 +P 61 -211 -1.0477191658271894e+00 1.1109784504404854e+00 -1.2067512533016968e-01 1.5381907679342692e+00 1.3957000000000000e-01 1 0 0 0 0 +P 62 213 -9.0771555535794080e-02 5.8156740475700852e-01 -1.5429989954783372e+00 1.7635958777355596e+00 6.1884117376634729e-01 2 0 0 -34 0 +P 63 221 1.9394945996907104e-01 -2.7378498648517408e-01 -2.6641812525406994e-01 6.9516525503715665e-01 5.4744999999999999e-01 2 0 0 -35 0 +P 64 -213 2.3145858795471871e-01 2.7432639064021358e-01 -1.3070279086378056e+00 1.5830182128523671e+00 8.1779989100299288e-01 2 0 0 -36 0 +P 65 213 -4.5215145872547829e-01 2.8618967307221177e-01 -1.2291118677569723e+00 1.5726626222361686e+00 8.2231762070197112e-01 2 0 0 -37 0 +P 66 2114 9.5337951957865841e-01 -6.6930286811799566e-01 -3.0888059546382411e+00 3.5274937030638558e+00 1.2432179061304942e+00 2 0 0 -38 0 +P 67 211 -1.3638801371095294e-01 -6.4982930487435098e-01 -8.8570463039764313e-01 1.1157205263708860e+00 1.3957000000000000e-01 1 0 0 0 0 +P 68 -2212 8.4949812677802405e-01 -2.0925593127370514e+00 -5.2863706614781849e+00 5.8246473634168812e+00 9.3827000000000005e-01 1 0 0 0 0 +P 69 -211 1.1996322072747415e-01 2.3947821917494630e-01 -1.0577767107781229e+00 1.1000510654288269e+00 1.3957000000000000e-01 1 0 0 0 0 +P 70 323 1.4839074584839513e+00 -9.6300995788224397e-01 -1.5468440231889129e+01 1.5599973376532240e+01 9.7834381311676155e-01 2 0 0 -39 0 +P 71 -321 -2.7807528173586266e-01 3.2958209552231060e-01 -8.8436515986138815e+00 8.8679064484052397e+00 4.9359999999999998e-01 1 0 0 0 0 +P 72 213 4.8061490063831430e-01 -1.4112979134958886e-01 -1.3685006725010053e+01 1.3716801676932008e+01 7.8761086838132732e-01 2 0 0 -40 0 +P 73 111 -6.6907029234828486e-01 1.7831713785343023e-01 -1.8676644255472887e+01 1.8689962875930050e+01 1.3497999999999999e-01 2 0 0 -41 0 +P 74 -213 -3.4452308143729315e-01 -1.7121136884034183e-01 -1.7652850045181019e+01 1.7672257910595317e+01 7.3319537265859602e-01 2 0 0 -42 0 +P 75 2212 -3.9310532187388653e-01 8.2724580957524885e-02 -3.9775536449638281e+01 3.9788629350604467e+01 9.3827000000000005e-01 1 0 0 0 0 +P 76 -2212 -6.6472940215998422e-01 6.9112739079230504e-02 -2.6053725752692522e+01 2.6079179778862152e+01 9.3827000000000005e-01 1 0 0 0 0 +P 77 3224 -4.0748859480073829e-01 -1.6567442175761489e+00 -3.4492491111585458e+01 3.4561985780104671e+01 1.3740704581611196e+00 2 0 0 -43 0 +P 78 311 -2.7836629784373346e-01 5.3322922791229938e-02 -1.9006813991509159e+01 1.9015440690833291e+01 4.9767000000000000e-01 2 0 0 -44 0 +P 79 -2112 -1.8554501644645200e+00 2.6350454241754517e-01 -6.6852567158069846e+01 6.6885429335288151e+01 9.3957000000000002e-01 1 0 0 0 0 +P 80 -211 -4.2046149174458702e-01 -6.9882022956308021e-02 -4.4649768696748026e+01 4.4652021184053616e+01 1.3957000000000000e-01 1 0 0 0 0 +P 81 211 -1.2259199970940475e+00 5.3487296324306122e-01 -3.4837579454291500e+01 3.4863525222574047e+01 1.3957000000000000e-01 1 0 0 0 0 +P 82 311 -1.7383101241416014e-02 2.3283172203271379e-01 -6.0426993477096801e+01 6.0429493865934312e+01 4.9767000000000000e-01 2 0 0 -45 0 +P 83 -323 -5.6275410327378561e-01 -7.3372721057032519e-02 -1.4782442541338469e+02 1.4782894973592141e+02 1.0077477319741224e+00 2 0 0 -46 0 +P 84 211 -1.3376613799881737e-01 -9.1221013772773460e-02 -7.1076645245746004e+00 7.1108782461679887e+00 1.3957000000000000e-01 1 0 0 0 0 +P 85 113 1.7962314176801067e-02 8.3402302003156015e-01 -6.4704726517325719e+02 6.4704829538644378e+02 7.9829647914481627e-01 2 0 0 -47 0 +P 86 -211 2.6669980751781586e-01 -2.7900006105441300e-01 -5.1992006516225081e+02 5.1992022715790301e+02 1.3957000000000000e-01 1 0 0 0 0 +P 87 213 3.4004774827278034e-01 1.9424841399564963e-01 -1.0234108895905553e+03 1.0234111585835141e+03 6.3025058636637177e-01 2 0 0 -48 0 +P 88 2214 5.6694851511787103e-01 9.8756119003734349e-02 -8.8006311174153848e+02 8.8006411796473139e+02 1.1999572706375610e+00 2 0 0 -49 0 +P 89 223 1.2311994476002099e+00 3.3274939646704554e-01 -2.8709726179406398e+03 2.8709730082148681e+03 7.8381066483662754e-01 2 0 0 -50 0 +V -13 0 0 0 0 0 3 1 0 +P 31 21 -9.3397002995552358e-01 -2.9110210203548919e+00 1.0151020105427864e+02 1.0155622709355579e+02 0 2 0 0 -13 0 +P 32 21 3.0018432040494889e+00 -2.3510280488458859e+00 2.9747792961823656e+01 2.9991158390560429e+01 0 2 0 0 -13 0 +P 30 21 -3.0018432040494889e+00 2.3510280488458859e+00 2.3572952493951814e+02 2.3576035994992682e+02 0 2 0 0 -13 0 +P 90 92 -9.3397002995552336e-01 -2.9110210203548919e+00 3.6698751895562049e+02 3.6730774543404306e+02 1.5026458106954815e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 11 0 +P 91 211 -8.2406320068481598e-01 -1.4474846551483079e-02 1.5925371343061592e+01 1.5947295127362915e+01 1.3957000000000000e-01 1 0 0 0 0 +P 92 -211 -1.2971269419881442e+00 8.9201364509882908e-01 8.3237290846445731e+01 8.3252293024801261e+01 1.3957000000000000e-01 1 0 0 0 0 +P 93 -311 -2.0800376351271022e-02 -2.1447848449823942e-01 2.1067216961652552e+01 2.1074196060922706e+01 4.9767000000000000e-01 2 0 0 -51 0 +P 94 313 -3.6169721163227725e-01 5.4167305000773069e-01 5.0328382832671906e+01 5.0338889823024189e+01 7.9591173918767333e-01 2 0 0 -52 0 +P 95 213 -8.9383792146133589e-01 -3.4747707496988950e-01 5.5172517965309702e+01 5.5185392155323349e+01 7.0787156810377283e-01 2 0 0 -53 0 +P 96 113 -1.2750819481863768e-01 -1.5623904654280926e-01 3.4052323819224185e+01 3.4060522483400433e+01 7.1955915219897681e-01 2 0 0 -54 0 +P 97 -211 -5.7174412643767436e-01 -9.4910638921379709e-01 3.9932536181067732e+01 3.9948149142624189e+01 1.3957000000000000e-01 1 0 0 0 0 +P 98 111 4.2301035938398712e-01 -2.4488475692500022e-01 3.0794121251526874e+00 3.1208820780762889e+00 1.3497999999999999e-01 2 0 0 -55 0 +P 99 -2112 1.1392327237977038e+00 -1.4946995580917366e+00 2.4907483094827445e+01 2.4995949349283496e+01 9.3957000000000002e-01 1 0 0 0 0 +P 100 2112 5.3941297703374469e-01 -8.0160103815638795e-01 1.3991639212989071e+01 1.4056396772840444e+01 9.3957000000000002e-01 1 0 0 0 0 +P 101 223 1.0611518832031974e+00 -1.2174652051210852e-01 2.5293344573217894e+01 2.5327779416383844e+01 7.7605729877600649e-01 2 0 0 -56 0 +V -15 0 0 0 0 0 2 1 0 +P 33 21 1.0190408349472695e+00 -2.8843457133167565e+00 -9.8491291741771736e+00 1.0313255543563667e+01 0 2 0 0 -15 0 +P 34 21 -1.0190408349472695e+00 2.8843457133167565e+00 -7.4489250551266313e+00 8.0526007534281785e+00 0 2 0 0 -15 0 +P 102 92 0 0 -1.7298054229303805e+01 1.8365856296991847e+01 6.1710612865065464e+00 2 0 0 -16 0 +V -16 0 0 0 0 0 0 7 0 +P 103 113 2.5426454423078015e-01 -1.2821686593910947e-01 -3.6908260328296461e+00 3.7716166626566090e+00 7.2236100548951021e-01 2 0 0 -57 0 +P 104 223 -7.8492867790755053e-02 4.3394394227840256e-02 -9.8224104521300815e-01 1.2585985464264791e+00 7.8181111940243286e-01 2 0 0 -58 0 +P 105 213 1.7802555916136972e-01 3.2682068270571213e-01 -2.6219971626667316e+00 2.7700960092936304e+00 8.1243948778549657e-01 2 0 0 -59 0 +P 106 111 1.9399017214205891e-01 -8.3030313783991927e-01 -1.7838453636238722e+00 1.9817566372581945e+00 1.3497999999999999e-01 2 0 0 -60 0 +P 107 -211 -2.8807161077252330e-01 5.2270945259205381e-01 -3.1028538235201237e+00 3.1628139464400387e+00 1.3957000000000000e-01 1 0 0 0 0 +P 108 223 2.5327277586763380e-01 -1.3809611761063298e-01 -2.5208029155085732e+00 2.6552334264970665e+00 7.8268740481497745e-01 2 0 0 -61 0 +P 109 113 -5.1298857283856425e-01 2.0369159186405553e-01 -2.5954878859418495e+00 2.7657410684198265e+00 7.7981969134800333e-01 2 0 0 -62 0 +V -17 0 0 0 0 0 0 2 0 +P 110 321 -5.3517797822608215e-01 -4.1546823888825380e-03 1.3908700471651065e+00 1.5699022829032940e+00 4.9359999999999998e-01 1 0 0 0 0 +P 111 -321 -5.7394313137697117e-01 1.4822473510143655e-01 1.0456318807218525e+00 1.2993722638769123e+00 4.9359999999999998e-01 1 0 0 0 0 +V -18 0 0 0 0 0 0 2 0 +P 112 311 -1.6481661079814763e-01 7.9549466215372497e-02 8.2576997208588896e+00 8.2747068069837457e+00 4.9767000000000000e-01 2 0 0 -63 0 +P 113 211 -3.2865335309279431e-01 3.8638815541686355e-02 3.0947555914917761e+00 3.1155253073174056e+00 1.3957000000000000e-01 1 0 0 0 0 +V -19 0 0 0 0 0 0 2 0 +P 114 321 -8.9052577900346819e-02 3.8384145837852435e-02 3.2135901794444422e+01 3.2139838655576021e+01 4.9359999999999998e-01 1 0 0 0 0 +P 115 -321 1.3575758368981719e-01 -4.9420936146039221e-02 2.8853847102143465e+01 2.8858430416506227e+01 4.9359999999999998e-01 1 0 0 0 0 +V -20 0 0 0 0 0 0 2 0 +P 116 -311 -2.0774100376841340e-01 2.8253422511277831e-01 4.5249454551591235e+01 4.5253550076855042e+01 4.9767000000000000e-01 2 0 0 -64 0 +P 117 111 2.7385784310641714e-01 -8.2056981273926410e-02 5.6493041302322936e+01 5.6493925927065568e+01 1.3497999999999999e-01 2 0 0 -65 0 +V -21 0 0 0 0 0 0 2 0 +P 118 211 -1.0330625473694905e+00 4.3248162283071701e-01 6.3795354712657922e+02 6.3795454542604386e+02 1.3957000000000000e-01 1 0 0 0 0 +P 119 111 -9.9992390976039472e-02 -1.6475195526542039e-01 2.6108067152460302e+02 2.6108077754791344e+02 1.3497999999999999e-01 2 0 0 -66 0 +V -22 0 0 0 0 0 0 2 0 +P 120 -211 2.5499953205520359e-01 -1.0027654595046133e-02 2.3322262674548515e+01 2.3324076431034285e+01 1.3957000000000000e-01 1 0 0 0 0 +P 121 211 -1.8624572770160111e-01 -1.3127938613092227e-01 3.2252024135430615e+00 3.2362527932060021e+00 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 122 211 7.6228828054477105e-01 -2.1517928961636448e-01 1.6414979312633347e+00 1.8279444172560420e+00 1.3957000000000000e-01 1 0 0 0 0 +P 123 -211 -1.6247431881658703e-01 -5.1699432548800363e-02 5.7355202446922249e-01 6.1442041410871839e-01 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 124 311 -4.4770508064804587e-01 -2.2677035333779219e-01 -7.6463961108518649e-02 7.1090561865793589e-01 4.9767000000000000e-01 2 0 0 -67 0 +P 125 211 1.4022431052005524e-01 1.6558274022536204e-01 6.2252034723267097e-02 2.6539706450628059e-01 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 2 0 +P 126 -321 -2.5986605631982164e-02 2.9198614472084311e-01 9.5408561624206661e-02 5.8195787305647173e-01 4.9359999999999998e-01 1 0 0 0 0 +P 127 211 4.0280392074036164e-02 1.7574053807250894e-01 -4.8344970037768237e-01 5.3451907767910722e-01 1.3957000000000000e-01 1 0 0 0 0 +V -26 0 4.6370571701477952e-05 -7.7228131835718235e-06 -4.1040289614321631e-04 4.2028182162054536e-04 0 2 0 +P 128 22 -1.6794961432842453e-02 2.2822192504643863e-02 -3.8769689788982341e-02 4.8020954244825338e-02 0 1 0 0 0 0 +P 129 22 9.7623839846720670e-02 -3.6283883937879464e-02 -6.7660656234392436e-01 6.8457532423167167e-01 0 1 0 0 0 0 +V -27 0 0 0 0 0 0 2 0 +P 130 -211 -8.0905401518794953e-02 2.9454613008823682e-01 -1.9743357093526082e-01 3.8956758922826545e-01 1.3957000000000000e-01 1 0 0 0 0 +P 131 211 -1.4928718685232592e-01 -1.4694398802989114e-01 -1.4262687777514764e+00 1.4483099154066095e+00 1.3957000000000000e-01 1 0 0 0 0 +V -28 0 0 0 0 0 0 3 0 +P 132 211 1.9697316487609509e-01 3.5057333972336180e-01 6.7516622935079007e-01 7.9814116317971096e-01 1.3957000000000000e-01 1 0 0 0 0 +P 133 -211 -3.8819295397041619e-02 1.4724962955523235e-01 1.9980284787495695e-01 2.8738537544248732e-01 1.3957000000000000e-01 1 0 0 0 0 +P 134 111 2.0231940384947528e-01 2.6016983537227312e-01 -3.2669937178005843e-03 3.5616254443665946e-01 1.3497999999999999e-01 2 0 0 -68 0 +V -29 0 0 0 0 0 0 2 0 +P 135 -211 1.1488257758393901e-01 2.7148426262030395e-01 9.9743688408424791e-01 1.0494102315655771e+00 1.3957000000000000e-01 1 0 0 0 0 +P 136 211 5.8283610844239242e-03 -1.5557183535927488e-01 -1.4674435833912692e-02 2.0959887813876332e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 137 -211 -8.4860032327779208e-03 1.2798646073174491e-01 3.8322629520223433e-01 4.2754499718268074e-01 1.3957000000000000e-01 1 0 0 0 0 +P 138 111 9.5339794246549328e-02 8.8013625641534876e-01 7.0319293620400245e+00 7.0887220046595649e+00 1.3497999999999999e-01 2 0 0 -69 0 +V -31 0 0 0 0 0 0 2 0 +P 139 311 6.6329685576106023e-02 5.2124166663591132e-01 1.7596312276628496e+00 1.9026481515225586e+00 4.9767000000000000e-01 2 0 0 -70 0 +P 140 211 1.0962911252013950e-01 -9.7777127091463953e-02 1.6583863230006918e-01 2.6184183347465939e-01 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 0 0 0 0 0 3 0 +P 141 211 -1.8053057003619555e-01 4.4658535224822332e-01 1.2486955297486922e-01 5.1681907251997494e-01 1.3957000000000000e-01 1 0 0 0 0 +P 142 -211 -2.2545152457920553e-01 2.9947362949028894e-01 3.5940892111084544e-01 5.3774287737657378e-01 1.3957000000000000e-01 1 0 0 0 0 +P 143 111 1.4309831330975950e-01 4.3829981123911323e-02 1.6283401092664959e-01 2.5909980708576519e-01 1.3497999999999999e-01 2 0 0 -71 0 +V -33 0 0 0 0 0 0 2 0 +P 144 211 6.6134181730062705e-02 1.0799589201098942e+00 4.9977866601512050e-01 1.1999764576948531e+00 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 6.8642869327424763e-02 -8.0069400494364870e-04 7.4330954752438616e-02 1.6869254830845534e-01 1.3497999999999999e-01 2 0 0 -72 0 +V -34 0 0 0 0 0 0 2 0 +P 146 211 -4.0874140835117249e-02 -5.3240879661743137e-02 -5.8665739429170261e-01 6.0675528002094503e-01 1.3957000000000000e-01 1 0 0 0 0 +P 147 111 -4.9897414700676830e-02 6.3480828441875170e-01 -9.5634160118663458e-01 1.1568405977146143e+00 1.3497999999999999e-01 2 0 0 -73 0 +V -35 0 0 0 0 0 0 3 0 +P 148 111 -8.0692078035366516e-02 -5.7579150443156604e-02 -3.2542865426087308e-02 1.7060248683287640e-01 1.3497999999999999e-01 2 0 0 -74 0 +P 149 111 2.0056546976702694e-01 -6.3971292668162691e-02 -9.6007889896875975e-02 2.6787300959774685e-01 1.3497999999999999e-01 2 0 0 -75 0 +P 150 111 7.4076068237410586e-02 -1.5223454337385475e-01 -1.3786736993110663e-01 2.5668975860653298e-01 1.3497999999999999e-01 2 0 0 -76 0 +V -36 0 0 0 0 0 0 2 0 +P 151 -211 4.3518580826092879e-01 4.0714118730605248e-01 -8.3812731381468930e-01 1.0378284122025792e+00 1.3957000000000000e-01 1 0 0 0 0 +P 152 111 -2.0372722030621004e-01 -1.3281479666583887e-01 -4.6890059482311636e-01 5.4518980064978795e-01 1.3497999999999999e-01 2 0 0 -77 0 +V -37 0 0 0 0 0 0 2 0 +P 153 211 -1.1547174774767054e-01 -2.6117390082266756e-01 -4.8927985529292894e-01 5.8345530479574848e-01 1.3957000000000000e-01 1 0 0 0 0 +P 154 111 -3.3667971097780769e-01 5.4736357389487933e-01 -7.3983201246404340e-01 9.8920731744041990e-01 1.3497999999999999e-01 2 0 0 -78 0 +V -38 0 0 0 0 0 0 2 0 +P 155 2212 6.0433317807337594e-01 -7.1283905966837302e-01 -2.4506791222575126e+00 2.7855945268969080e+00 9.3827000000000005e-01 1 0 0 0 0 +P 156 -211 3.4904634150528252e-01 4.3536191550377301e-02 -6.3812683238072887e-01 7.4189917616694812e-01 1.3957000000000000e-01 1 0 0 0 0 +V -39 0 0 0 0 0 0 2 0 +P 157 311 5.3882428291032602e-01 -2.9867949202148447e-01 -4.4165576592752496e+00 4.4870032352797464e+00 4.9767000000000000e-01 2 0 0 -79 0 +P 158 211 9.4508317557362542e-01 -6.6433046586075961e-01 -1.1051882572613879e+01 1.1112970141252495e+01 1.3957000000000000e-01 1 0 0 0 0 +V -40 0 0 0 0 0 0 2 0 +P 160 111 4.8049692547880568e-01 2.1718022336522114e-01 -7.3403587397017889e+00 7.3605115700426689e+00 1.3497999999999999e-01 2 0 0 -80 0 +P 159 211 1.1797515950852807e-04 -3.5831001471481000e-01 -6.3446479853082618e+00 6.3562901068893360e+00 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 -1.1583593514972181e-04 3.0871991557086950e-05 -3.2334817096694663e-03 3.2357875583571205e-03 0 2 0 +P 161 22 -5.0398876263600001e-01 7.9556733552219663e-02 -1.2778281559309137e+01 1.2788464081182569e+01 0 1 0 0 0 0 +P 162 22 -1.6508152971228482e-01 9.8760404301210553e-02 -5.8983626961637485e+00 5.9014987947474795e+00 0 1 0 0 0 0 +V -42 0 0 0 0 0 0 2 0 +P 163 -211 1.3279309858393523e-01 1.2066647820448219e-01 -7.1877811768646929e+00 7.1913748641955930e+00 1.3957000000000000e-01 1 0 0 0 0 +P 164 111 -4.7731618002122833e-01 -2.9187784704482400e-01 -1.0465068868316324e+01 1.0480883046399720e+01 1.3497999999999999e-01 2 0 0 -81 0 +V -43 0 0 0 0 0 0 2 0 +P 165 3122 -4.6866358421255944e-01 -1.6184680144817571e+00 -3.0858384900186707e+01 3.0924484551557821e+01 1.1156800000000000e+00 2 0 0 -82 0 +P 166 211 6.1174989411821111e-02 -3.8276203094391698e-02 -3.6341062113987506e+00 3.6375012285468498e+00 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 1 0 +P 167 130 -2.7836629784373346e-01 5.3322922791229938e-02 -1.9006813991509159e+01 1.9015440690833294e+01 4.9767000000000000e-01 1 0 0 0 0 +V -45 0 0 0 0 0 0 1 0 +P 168 310 -1.7383101241416014e-02 2.3283172203271379e-01 -6.0426993477096801e+01 6.0429493865934312e+01 4.9767000000000000e-01 2 0 0 -83 0 +V -46 0 0 0 0 0 0 2 0 +P 169 -311 -5.4517775501888455e-01 2.5850199343546754e-01 -8.9865234716413994e+01 8.9868638178901193e+01 4.9767000000000000e-01 2 0 0 -84 0 +P 170 -211 -1.7576348254901095e-02 -3.3187471449250006e-01 -5.7959190696970708e+01 5.7960311557020233e+01 1.3957000000000000e-01 1 0 0 0 0 +V -47 0 0 0 0 0 0 2 0 +P 171 211 9.2955499979074457e-02 -1.0866822487967489e-02 -3.2945012188350809e+01 3.2945440757232113e+01 1.3957000000000000e-01 1 0 0 0 0 +P 172 -211 -7.4993185802273390e-02 8.4488984251952770e-01 -6.1410225298490639e+02 6.1410285462921172e+02 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 173 211 8.5949161239965377e-02 3.4709531138046762e-01 -6.9899167123526638e+02 6.9899177663150601e+02 1.3957000000000000e-01 1 0 0 0 0 +P 174 111 2.5409858703281496e-01 -1.5284689738481802e-01 -3.2441921835528876e+02 3.2441938195200805e+02 1.3497999999999999e-01 2 0 0 -85 0 +V -49 0 0 0 0 0 0 2 0 +P 175 2212 3.8253495145818550e-01 1.6289928814342811e-01 -5.7652974840092349e+02 5.7653066181339580e+02 9.3827000000000005e-01 1 0 0 0 0 +P 176 111 1.8441356365968553e-01 -6.4143169139693756e-02 -3.0353336334061498e+02 3.0353345615133566e+02 1.3497999999999999e-01 2 0 0 -86 0 +V -50 0 0 0 0 0 0 3 0 +P 177 211 5.3333410812648374e-01 7.4617552270279233e-02 -1.0059322469405662e+03 1.0059324007743916e+03 1.3957000000000000e-01 1 0 0 0 0 +P 178 -211 3.9966223398528372e-01 -1.6207176715030084e-02 -1.3243593232465137e+03 1.3243593910046934e+03 1.3957000000000000e-01 1 0 0 0 0 +P 179 111 2.9820310548844248e-01 2.7433902091179635e-01 -5.4068104775355994e+02 5.4068121643578320e+02 1.3497999999999999e-01 2 0 0 -87 0 +V -51 0 0 0 0 0 0 1 0 +P 180 130 -2.0800376351271022e-02 -2.1447848449823942e-01 2.1067216961652552e+01 2.1074196060922702e+01 4.9767000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 181 321 -3.8962671843311852e-01 2.0566888018468360e-01 3.0940913755190643e+01 3.0947986907618706e+01 4.9359999999999998e-01 1 0 0 0 0 +P 182 -211 2.7929506800841261e-02 3.3600416982304704e-01 1.9387469077481260e+01 1.9390902915405476e+01 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 0 0 0 0 0 2 0 +P 183 211 -8.9120775201636582e-01 -1.8208840020122474e-01 3.6286732442122407e+01 3.6298399944816033e+01 1.3957000000000000e-01 1 0 0 0 0 +P 184 111 -2.6301694449702272e-03 -1.6538867476866476e-01 1.8885785523187302e+01 1.8886992210507319e+01 1.3497999999999999e-01 2 0 0 -88 0 +V -54 0 0 0 0 0 0 2 0 +P 185 -211 -1.1987217934407324e-02 -3.3403146114971544e-01 2.8599290261216566e+01 2.8601583941115017e+01 1.3957000000000000e-01 1 0 0 0 0 +P 186 211 -1.1552097688423035e-01 1.7779241460690620e-01 5.4530335580076184e+00 5.4589385422854200e+00 1.3957000000000000e-01 1 0 0 0 0 +V -55 0 4.2254465579185501e-05 -2.4461515664588543e-05 3.0760219167180113e-04 3.1174462142442600e-04 0 2 0 +P 187 22 2.8751370315703634e-01 -9.5574760408875581e-02 1.6953251489157042e+00 1.7221864082834764e+00 0 1 0 0 0 0 +P 188 22 1.3549665622695076e-01 -1.4930999651612464e-01 1.3840869762369830e+00 1.3986956697928123e+00 0 1 0 0 0 0 +V -56 0 0 0 0 0 0 3 0 +P 189 211 5.0375258570605386e-01 -1.9695435251561838e-01 8.7561249240525978e+00 8.7739250712036227e+00 1.3957000000000000e-01 1 0 0 0 0 +P 190 -211 2.5412965478975740e-02 -9.0827288189110802e-02 3.8528483651797676e+00 3.8565289737097310e+00 1.3957000000000000e-01 1 0 0 0 0 +P 191 111 5.3198633201816781e-01 1.6603512019262065e-01 1.2684371283985527e+01 1.2697325371470487e+01 1.3497999999999999e-01 2 0 0 -89 0 +V -57 0 0 0 0 0 0 2 0 +P 192 -211 -1.7141939419169341e-01 -5.6722519524079404e-02 -2.2381290066936166e+00 2.2497340483776216e+00 1.3957000000000000e-01 1 0 0 0 0 +P 193 211 4.2568393842247360e-01 -7.1494346415030066e-02 -1.4526970261360295e+00 1.5218826142789872e+00 1.3957000000000000e-01 1 0 0 0 0 +V -58 0 0 0 0 0 0 3 0 +P 194 -211 7.6459071874841397e-02 -8.7541130858253866e-02 -7.8342648501977918e-01 8.0420537277137760e-01 1.3957000000000000e-01 1 0 0 0 0 +P 195 211 -1.9416584560678463e-01 1.2013959035912780e-01 -1.3157418602565010e-01 2.9820370235825233e-01 1.3957000000000000e-01 1 0 0 0 0 +P 196 111 3.9213905941188162e-02 1.0795934726966315e-02 -6.7240374167578831e-02 1.5618947129684915e-01 1.3497999999999999e-01 2 0 0 -90 0 +V -59 0 0 0 0 0 0 2 0 +P 197 211 -2.8016474706981570e-01 2.5051985090551032e-01 -1.3859234437513488e+00 1.4427460130036787e+00 1.3957000000000000e-01 1 0 0 0 0 +P 198 111 4.5819030623118540e-01 7.6300831800201821e-02 -1.2360737189153828e+00 1.3273499962899518e+00 1.3497999999999999e-01 2 0 0 -91 0 +V -60 0 9.8262426864790465e-05 -4.2057595215624915e-04 -9.0357657115137360e-04 1.0038251653789662e-03 0 2 0 +P 199 22 1.0753811039473163e-01 -5.8421054425128616e-01 -1.1054519305528825e+00 1.2549463637800418e+00 0 1 0 0 0 0 +P 200 22 8.6452061747327294e-02 -2.4609259358863311e-01 -6.7839343307098976e-01 7.2681027347815286e-01 0 1 0 0 0 0 +V -61 0 0 0 0 0 0 3 0 +P 201 -211 -4.1923779688965344e-02 9.4741716713696952e-02 -3.1625212825159438e-01 3.6087226232135133e-01 1.3957000000000000e-01 1 0 0 0 0 +P 202 211 1.2543443318519545e-01 2.9266802084010526e-02 -2.6988866705562498e-01 3.3001518182922718e-01 1.3957000000000000e-01 1 0 0 0 0 +P 203 111 1.6976212237140365e-01 -2.6210463640834042e-01 -1.9346621202013536e+00 1.9643459823464879e+00 1.3497999999999999e-01 2 0 0 -92 0 +V -62 0 0 0 0 0 0 2 0 +P 204 211 -6.2798117767117945e-01 1.3395368585235701e-01 -1.3083434892807686e+00 1.4640855235627768e+00 1.3957000000000000e-01 1 0 0 0 0 +P 205 -211 1.1499260483261517e-01 6.9737906011698547e-02 -1.2871443966610814e+00 1.3016555448570508e+00 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 1 0 +P 206 310 -1.6481661079814763e-01 7.9549466215372497e-02 8.2576997208588896e+00 8.2747068069837439e+00 4.9767000000000000e-01 2 0 0 -93 0 +V -64 0 0 0 0 0 0 1 0 +P 207 310 -2.0774100376841340e-01 2.8253422511277831e-01 4.5249454551591235e+01 4.5253550076855049e+01 4.9767000000000000e-01 2 0 0 -94 0 +V -65 0 7.3754023811518823e-05 -2.2099175550823247e-05 1.5214423169825254e-02 1.5214661412533925e-02 0 2 0 +P 208 22 3.2723447556854225e-02 -6.3493276229220436e-02 1.6358826635059781e+01 1.6358982581324781e+01 0 1 0 0 0 0 +P 209 22 2.4113439554956292e-01 -1.8563705044705985e-02 4.0134214667263159e+01 4.0134943345740787e+01 0 1 0 0 0 0 +V -66 0 -2.4091747932102252e-05 -3.9694646150891612e-05 6.2903683639507407e-02 6.2903709184319812e-02 0 2 0 +P 210 22 -3.5501503450890148e-02 -4.3221742365836700e-03 1.1206888944609352e+02 1.1206889515257420e+02 0 1 0 0 0 0 +P 211 22 -6.4490887525149324e-02 -1.6042978102883673e-01 1.4901178207850950e+02 1.4901188239533926e+02 0 1 0 0 0 0 +V -67 0 0 0 0 0 0 1 0 +P 212 310 -4.4770508064804587e-01 -2.2677035333779219e-01 -7.6463961108518649e-02 7.1090561865793789e-01 4.9767000000000000e-01 2 0 0 -95 0 +V -68 0 5.6216918348570056e-07 7.2291367578196445e-07 -9.0777412143587177e-09 9.8964114654623947e-07 0 2 0 +P 213 22 5.9588311079569842e-02 3.1727756685069239e-04 -3.4800397785193422e-03 5.9690687374414804e-02 0 1 0 0 0 0 +P 214 22 1.4273109276990548e-01 2.5985255780542243e-01 2.1304606071875768e-04 2.9647185706224466e-01 0 1 0 0 0 0 +V -69 0 6.8125667432656671e-05 6.2890706209118587e-04 5.0247106668746657e-03 5.0652922174674346e-03 0 2 0 +P 215 22 9.8238845130149910e-02 6.3480873157616224e-01 5.4797247598160750e+00 5.5172471795016902e+00 0 1 0 0 0 0 +P 216 22 -2.8990508836005870e-03 2.4532752483918649e-01 1.5522046022239493e+00 1.5714748251578743e+00 0 1 0 0 0 0 +V -70 0 0 0 0 0 0 1 0 +P 217 310 6.6329685576106023e-02 5.2124166663591132e-01 1.7596312276628496e+00 1.9026481515225759e+00 4.9767000000000000e-01 2 0 0 -96 0 +V -71 0 2.0742689619148677e-05 6.3533362024919996e-06 2.3603460236328297e-05 3.7557583695116871e-05 0 2 0 +P 219 22 -2.8722140438245738e-03 5.3180710552864677e-02 2.8023708625927783e-02 6.0181108610361057e-02 0 1 0 0 0 0 +P 218 22 1.4597052735358410e-01 -9.3507294289533575e-03 1.3481030230072180e-01 1.9891869847540525e-01 0 1 0 0 0 0 +V -72 0 3.7626593470519508e-05 -4.3890047303515130e-07 4.0744517881454282e-05 9.2468831779623026e-05 0 2 0 +P 220 22 2.4209710898237435e-02 6.4530876697482267e-02 1.6755104325429430e-02 7.0930090018820904e-02 0 1 0 0 0 0 +P 221 22 4.4433158429187325e-02 -6.5331570702425915e-02 5.7575850427009183e-02 9.7762458289636103e-02 0 1 0 0 0 0 +V -73 0 -5.9090765758585417e-06 7.5176856078054691e-05 -1.1325427956519639e-04 1.3699827373751485e-04 0 2 0 +P 222 22 -6.9815720431071801e-02 2.1207143051907135e-01 -3.9649262793632423e-01 4.5503288943720027e-01 0 1 0 0 0 0 +P 223 22 1.9918305730394971e-02 4.2273685389968030e-01 -5.5984897325031024e-01 7.0180770827741401e-01 0 1 0 0 0 0 +V -74 0 -3.8400536521541616e-05 -2.7401330134324772e-05 -1.5486817575355602e-05 8.1187982585110302e-05 0 2 0 +P 224 22 -1.1199399900954692e-01 -6.3644204944269311e-02 -5.7287936449814218e-03 1.2894207891051448e-01 0 1 0 0 0 0 +P 225 22 3.1301920974180393e-02 6.0650545011126985e-03 -2.6814071781105887e-02 4.1660407922362044e-02 0 1 0 0 0 0 +V -75 0 4.3814671092180448e-07 -1.3974893838171328e-07 -2.0973471270863068e-07 5.8518387156228786e-07 0 2 0 +P 226 22 1.7806955474676234e-01 -9.4868783602879855e-02 -1.0662617316560713e-01 2.2820603242233170e-01 0 1 0 0 0 0 +P 227 22 2.2495915020264604e-02 3.0897490934717161e-02 1.0618283268731158e-02 3.9666977175415293e-02 0 1 0 0 0 0 +V -76 0 2.7804071585685933e-06 -5.7140453624173457e-06 -5.1747808895705093e-06 9.6347181936474378e-06 0 2 0 +P 228 22 2.0833233827278030e-02 -3.0122302260885887e-03 -8.8160895834764164e-02 9.0639068381273363e-02 0 1 0 0 0 0 +P 229 22 5.3242834410132556e-02 -1.4922231314776616e-01 -4.9706474096342455e-02 1.6605069022525973e-01 0 1 0 0 0 0 +V -77 0 -1.6175287979886273e-04 -1.0545068944792832e-04 -3.7229203558581531e-04 4.3286321857002722e-04 0 2 0 +P 230 22 -5.3478825919207371e-02 -1.0851873814833554e-01 -1.5766115696858526e-01 1.9872931783628903e-01 0 1 0 0 0 0 +P 231 22 -1.5024839438700266e-01 -2.4296058517503317e-02 -3.1123943785453106e-01 3.4646048281349889e-01 0 1 0 0 0 0 +V -78 0 -3.6620022303480086e-05 5.9535711926116886e-05 -8.0470143919802894e-05 1.0759422931137554e-04 0 2 0 +P 232 22 -2.1948986096420983e-01 4.4633454790483357e-01 -6.1110621067207616e-01 7.8793472346475779e-01 0 1 0 0 0 0 +P 233 22 -1.1718985001359787e-01 1.0102902599004575e-01 -1.2872580179196724e-01 2.0127259397566213e-01 0 1 0 0 0 0 +V -79 0 0 0 0 0 0 1 0 +P 234 130 5.3882428291032602e-01 -2.9867949202148447e-01 -4.4165576592752496e+00 4.4870032352797464e+00 4.9767000000000000e-01 1 0 0 0 0 +V -80 0 1.6108302389358591e-05 7.2808056107108974e-06 -2.4608007243264460e-04 2.4675568109509100e-04 0 2 0 +P 235 22 2.6570728735577170e-01 1.4441211255928108e-01 -3.3133962149639591e+00 3.3271684204658607e+00 0 1 0 0 0 0 +P 236 22 2.1478963812303389e-01 7.2768110805940062e-02 -4.0269625247378293e+00 4.0333431495768082e+00 0 1 0 0 0 0 +V -81 0 -3.4512069906198131e-05 -2.1104058657373751e-05 -7.5667074252636459e-04 7.5781417751216165e-04 0 2 0 +P 237 22 -1.8517356431284140e-01 -4.7137481113194234e-02 -2.9821525694305429e+00 2.9882679161024384e+00 0 1 0 0 0 0 +P 238 22 -2.9214261570838684e-01 -2.4474036593162976e-01 -7.4829162988857805e+00 7.4926151302972830e+00 0 1 0 0 0 0 +V -82 0 -9.5308150963195587e+01 -3.2913415731351159e+02 -6.2754088553496240e+03 6.2888509826317713e+03 0 2 0 +P 239 2212 -4.7367594868960872e-01 -1.4369308345140306e+00 -2.6150068211133135e+01 2.6210600091706407e+01 9.3827000000000005e-01 1 0 0 0 0 +P 240 -211 5.0123644770492803e-03 -1.8153717996772661e-01 -4.7083166890535697e+00 4.7138844598514140e+00 1.3957000000000000e-01 1 0 0 0 0 +V -83 0 -1.4864983960191469e+00 1.9910370223202563e+01 -5.1673534907541507e+03 5.1675673089874317e+03 0 2 0 +P 241 -211 -1.8400658600957862e-01 -3.3309345305199931e-04 -2.5499791367105406e+01 2.5500837203618424e+01 1.3957000000000000e-01 1 0 0 0 0 +P 242 211 1.6662348476816261e-01 2.3316481548576576e-01 -3.4927202109991391e+01 3.4928656662315888e+01 1.3957000000000000e-01 1 0 0 0 0 +V -84 0 0 0 0 0 0 1 0 +P 243 130 -5.4517775501888455e-01 2.5850199343546754e-01 -8.9865234716413994e+01 8.9868638178901193e+01 4.9767000000000000e-01 1 0 0 0 0 +V -85 0 5.7272233467841676e-06 -3.4450735417619763e-06 -7.3122064282472015e-03 7.3122101156150102e-03 0 2 0 +P 244 22 1.6319053796774280e-01 -5.8337248729609763e-02 -2.3911426643792683e+02 2.3911432924133621e+02 0 1 0 0 0 0 +P 245 22 9.0908049065072161e-02 -9.4509648655208264e-02 -8.5304951917361947e+01 8.5305052710671873e+01 0 1 0 0 0 0 +V -86 0 4.3353964989961207e-06 -1.5079480348632104e-06 -7.1357955165588264e-03 7.1357976984551316e-03 0 2 0 +P 246 22 3.5587885991872119e-02 -7.9942846660418745e-02 -1.1802533908101961e+02 1.1802537152047441e+02 0 1 0 0 0 0 +P 247 22 1.4882567766781341e-01 1.5799677520724986e-02 -1.8550802425959540e+02 1.8550808463086122e+02 0 1 0 0 0 0 +V -87 0 7.0770676303012794e-05 6.5107162497295579e-05 -1.2831644845235862e-01 1.2831648848465474e-01 0 2 0 +P 248 22 1.8114845821850648e-01 2.3989936867935877e-01 -4.1762092695334275e+02 4.1762103514530997e+02 0 1 0 0 0 0 +P 249 22 1.1705464726993600e-01 3.4439652232437577e-02 -1.2306012080021719e+02 1.2306018129047324e+02 0 1 0 0 0 0 +V -88 0 -6.2417076750674925e-07 -3.9248716946618685e-05 4.4818235066635065e-03 4.4821098680430417e-03 0 2 0 +P 250 22 -1.3241355407539917e-02 -1.0246241139417403e-02 2.5096339222582625e-01 2.5152125792467273e-01 0 1 0 0 0 0 +P 251 22 1.0611185962569689e-02 -1.5514243362924734e-01 1.8634822130961478e+01 1.8635470952582644e+01 0 1 0 0 0 0 +V -89 0 1.3582222174720734e-04 4.2390673510491999e-05 3.2384657002777202e-03 3.2417730276224663e-03 0 2 0 +P 252 22 1.8270933871487663e-01 1.0969751742799415e-01 5.7283206751857012e+00 5.7322834896351260e+00 0 1 0 0 0 0 +P 253 22 3.4927699330329121e-01 5.6337602764626502e-02 6.9560506087998260e+00 6.9650418818353623e+00 0 1 0 0 0 0 +V -90 0 3.5279272098553364e-05 9.7126952709604466e-06 -6.0493628454770447e-05 1.4051777614489206e-04 0 2 0 +P 254 22 7.6896925214123460e-02 3.5622213305934604e-02 -7.1477115362458474e-02 1.1086504051655867e-01 0 1 0 0 0 0 +P 255 22 -3.7683019272935298e-02 -2.4826278578968294e-02 4.2367411948796398e-03 4.5324430780290477e-02 0 1 0 0 0 0 +V -91 0 4.0801170434363689e-05 6.7944764440148752e-06 -1.1007054009880686e-04 1.1819855786593737e-04 0 2 0 +P 256 22 1.2083898222827490e-01 -3.9112841475455871e-02 -3.3967101043474301e-01 3.6264068900774049e-01 0 1 0 0 0 0 +P 257 22 3.3735132400291051e-01 1.1541367327565770e-01 -8.9640270848063985e-01 9.6470930728221138e-01 0 1 0 0 0 0 +V -92 0 5.6114899634550859e-06 -8.6638734014096062e-06 -6.3950290668699704e-05 6.4931491257954731e-05 0 3 0 +P 258 22 3.7763112644272664e-02 -1.9003168856709707e-02 -5.6880931194233830e-01 5.7037812585643310e-01 0 1 0 0 0 0 +P 259 11 1.2719536651632049e-01 -2.1827911800405031e-01 -1.2119610200457922e+00 1.2380122005983156e+00 5.1000000000000004e-04 1 0 0 0 0 +P 260 -11 4.8036432108104722e-03 -2.4822349547580416e-02 -1.5389178821322286e-01 1.5595565589173888e-01 5.1000000000000004e-04 1 0 0 0 0 +V -93 0 -1.4381524495815356e+01 6.9413064099863986e+00 7.2054819134743707e+02 7.2203219119746802e+02 0 2 0 +P 261 111 9.2014239650662466e-02 1.3215606270806735e-01 2.2548623593500721e+00 2.2646314722759553e+00 1.3497999999999999e-01 2 0 0 -97 0 +P 262 111 -2.5683085044881010e-01 -5.2606596492694856e-02 6.0028373615088171e+00 6.0100753347077882e+00 1.3497999999999999e-01 2 0 0 -98 0 +V -94 0 -7.7825606900085225e+00 1.0584524547671682e+01 1.6951714868486924e+03 1.6953249167125366e+03 0 2 0 +P 263 111 -2.8943395680254397e-01 1.5615697178674603e-01 3.6631605117101834e+01 3.6633330043429979e+01 1.3497999999999999e-01 2 0 0 -99 0 +P 264 111 8.1692953034130586e-02 1.2637725332603228e-01 8.6178494344894041e+00 8.6202200334250758e+00 1.3497999999999999e-01 2 0 0 -100 0 +V -95 0 -1.3657774741477642e+01 -6.9178987190624293e+00 -2.3326238673673467e+00 2.1687019472789341e+01 0 2 0 +P 265 211 -2.9529816783651242e-01 -9.1672761735730857e-02 1.5454665700808420e-01 3.7278594027166795e-01 1.3957000000000000e-01 1 0 0 0 0 +P 266 -211 -1.5240691281153346e-01 -1.3509759160206133e-01 -2.3101061811660287e-01 3.3811967838627000e-01 1.3957000000000000e-01 1 0 0 0 0 +V -96 0 5.5767429881696557e+00 4.3823979931555911e+01 1.4794297644263381e+02 1.5996728532329485e+02 0 2 0 +P 267 111 1.6009544349417862e-01 1.5482137875335267e-01 1.0998242066687225e+00 1.1302358587132031e+00 1.3497999999999999e-01 2 0 0 -101 0 +P 268 111 -9.3765757918072581e-02 3.6642028788255870e-01 6.5980702099412725e-01 7.7241229280937296e-01 1.3497999999999999e-01 2 0 0 -102 0 +V -97 0 -1.4381499058109947e+01 6.9413429450597066e+00 7.2054881471317537e+02 7.2203281726391674e+02 0 2 0 +P 269 22 1.6608090838720359e-02 -2.6977769960342162e-02 2.3862848367837755e-01 2.4072220914569153e-01 0 1 0 0 0 0 +P 270 22 7.5406148811942117e-02 1.5913383266840953e-01 2.0162338756716944e+00 2.0239092631302644e+00 0 1 0 0 0 0 +V -98 0 -1.4381537586881612e+01 6.9413037285466928e+00 7.2054849732135528e+02 7.2203249754031685e+02 0 2 0 +P 271 22 -7.1650056340312379e-02 -3.1679388923150559e-02 3.2465350796190910e+00 3.2474801519722116e+00 0 1 0 0 0 0 +P 272 22 -1.8518079410849772e-01 -2.0927207569544297e-02 2.7563022818897256e+00 2.7625951827355784e+00 0 1 0 0 0 0 +V -99 0 -7.7826677342413646e+00 1.0584582300754398e+01 1.6951850346787774e+03 1.6953384651805682e+03 0 2 0 +P 273 22 -9.9605722022381674e-02 2.5022940238770892e-02 6.2018655777368492e+00 6.2027158641771596e+00 0 1 0 0 0 0 +P 274 22 -1.8982823478016234e-01 1.3113403154797515e-01 3.0429739539364984e+01 3.0430614179252810e+01 0 1 0 0 0 0 +V -100 0 -7.7825535982837781e+00 1.0584535518418377e+01 1.6951722349599286e+03 1.6953256650295632e+03 0 2 0 +P 275 22 7.7600359093490293e-02 2.3880769340730748e-03 3.6033115788038983e+00 3.6041478677469825e+00 0 1 0 0 0 0 +P 276 22 4.0925939406402977e-03 1.2398917639195919e-01 5.0145378556855054e+00 5.0160721656780911e+00 0 1 0 0 0 0 +V -101 0 5.5767505180503374e+00 4.3823987213377826e+01 1.4794302817143299e+02 1.5996733848246649e+02 0 2 0 +P 277 22 1.4877919418107663e-01 9.9270607473697217e-02 5.7038285808899925e-01 5.9776793735624267e-01 0 1 0 0 0 0 +P 278 22 1.1316249313101989e-02 5.5550771279655430e-02 5.2944134857972314e-01 5.3246792135695076e-01 0 1 0 0 0 0 +V -102 0 5.5767344317322669e+00 4.3824013368626339e+01 1.4794303665221980e+02 1.5996735580848653e+02 0 2 0 +P 279 22 -6.6030914697511434e-02 5.1578189162365749e-02 1.6923379462356794e-01 1.8883979595347436e-01 0 1 0 0 0 0 +P 280 22 -2.7734843220561155e-02 3.1484209872019292e-01 4.9057322637055928e-01 5.8357249685589085e-01 0 1 0 0 0 0 +BlockType GenEvent +E 4 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 189 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 -9.2820880453940977e-02 1.6078548997780676e-01 2.3716619521660218e+03 2.3716619594325907e+03 0 3 0 0 -3 0 +P 31 2103 9.2820880453940977e-02 -1.6078548997780676e-01 4.2732759596864398e+03 4.2732760333322394e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 2.8438240035156620e-01 -3.1515117320208030e-01 -3.8035697500337951e+03 3.8035697737212290e+03 0 3 0 0 -4 0 +P 14 2203 -1.4352353535702972e-01 4.4026544033137993e-01 -2.9147371774374851e+03 2.9147373162806402e+03 7.7132999999999996e-01 2 0 0 -9 0 +P 33 1 -1.4085886499453648e-01 -1.2511426712929963e-01 -8.4457632655431709e+01 8.4458487486809346e+01 3.3000000000000002e-01 2 0 0 -13 0 +V -3 0 0 0 0 0 0 5 0 +P 5 2 1.8330374025472010e-01 6.4045820926453234e-01 1.8525053358893920e+03 1.8525054556696041e+03 0 3 0 0 -5 0 +P 27 21 1.9372450554350890e-01 -5.2219821644400299e-01 1.2126803157754753e+02 1.2126931063898388e+02 0 2 0 0 -11 0 +P 28 21 -2.3795161344271451e-01 7.1609049465699426e-01 1.0167002308049599e+02 1.0167282330965078e+02 0 2 0 0 -11 0 +P 29 21 3.4192681965240401e-01 2.4291397251790178e-01 3.1944822354571826e+01 3.1947575751740445e+01 0 2 0 0 -11 0 +P 30 21 -5.9675894419355358e-01 -9.5050198748863479e-01 1.7993365505285936e+02 1.7993715512908133e+02 0 2 0 0 -11 0 +V -4 0 0 0 0 0 0 15 0 +P 6 -1 -5.7988882832211965e+00 -1.9327729931963271e+00 2.4200413742942017e+00 6.5741400211589776e+00 0 3 0 0 -5 0 +P 11 1 -9.8845705950266671e-01 -4.9594742583225058e+00 1.9044643416753072e+01 1.9707378698059269e+01 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 2.6044264833858743e-01 -3.1030363873699462e+00 1.1727671819750038e+01 1.2134041021282840e+01 0 2 0 0 -9 0 +P 13 21 7.5691010065949327e-01 -5.4011599026484958e-01 5.1524452837099819e+00 5.2356786174330239e+00 0 2 0 0 -9 0 +P 15 2 -1.8311360214351913e-01 -1.4805571719661075e+00 -2.1411903451828903e+03 2.1411908903188796e+03 3.3000000000000002e-01 2 0 0 -11 0 +P 16 21 4.3968109830755170e-01 -2.9544412986812052e-01 -3.1326029880598599e-01 6.1541751428642444e-01 0 2 0 0 -11 0 +P 17 21 2.7322936418785587e-01 -3.3048055802107390e-01 -7.6828223487860681e-01 8.7984616673284832e-01 0 2 0 0 -11 0 +P 18 21 2.9260573411497637e-01 1.3800589535119959e-01 -2.1582422861451325e+00 2.1823550372232328e+00 0 2 0 0 -11 0 +P 19 21 1.0223538075759215e+00 -1.4522275427264191e+00 -2.4692904014076042e+01 2.4756689616992229e+01 0 2 0 0 -11 0 +P 20 21 1.2063407328190996e+00 -7.4888083722587195e-01 -1.1210724096630058e+01 1.1300283856734948e+01 0 2 0 0 -11 0 +P 21 21 -5.4913410279006636e-01 1.0519596533332111e-01 3.4138908785026851e+00 3.4593735537367594e+00 0 2 0 0 -11 0 +P 22 21 6.4314231442077185e-01 3.1223541119268439e+00 7.5129505920112933e+00 8.1613205938051365e+00 0 2 0 0 -11 0 +P 23 21 1.2086144926726743e+00 3.4136643559921347e+00 6.3113339858338602e+00 7.2764544943269689e+00 0 2 0 0 -11 0 +P 24 21 2.4400337609788756e+00 6.9128514496625586e+00 2.4435124802319205e+01 2.5511107463705560e+01 0 2 0 0 -11 0 +P 32 -2 -7.1644398238490137e-01 8.6978994307757240e-01 -1.6189139599034304e+03 1.6189143857217191e+03 3.3000000000000002e-01 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 1.3643288924243656e+01 -1.0581519988970058e+01 9.9183478070503759e+02 9.9198505034811774e+02 0 3 0 0 -6 0 +P 8 24 -1.9258873467210137e+01 9.2892052050382574e+00 8.6309059655865008e+02 8.6709454534264773e+02 8.0438667035438414e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 1.3643288924243656e+01 -1.0581519988970058e+01 9.9183478070503759e+02 9.9198505034811762e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -1.9258873467210137e+01 9.2892052050382574e+00 8.6309059655865008e+02 8.6709454534264773e+02 8.0438667035438414e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 9 0 +P 34 4 -2.2700858926615656e+01 -1.6386334061858157e+01 3.4828459595439756e+02 3.4941129163080990e+02 1.5000000000000000e+00 2 0 0 -15 0 +P 35 21 -7.4503781777991165e+00 -8.5245909374436160e+00 1.2403122509900038e+02 1.2454686501555096e+02 0 2 0 0 -15 0 +P 36 21 -2.0027042250268927e+00 -1.0978633289287578e+00 2.1859513177439908e+01 2.1978499595209318e+01 0 2 0 0 -15 0 +P 40 21 3.3737992516561754e-01 1.9913397179993726e+00 1.8847206960760861e+01 1.8955117232772242e+01 0 2 0 0 -15 0 +P 41 21 9.3276664365375481e+00 2.1890146052654789e+01 2.2925649830527726e+02 2.3048801676129600e+02 0 2 0 0 -15 0 +P 42 -3 4.2852829509391617e+00 8.3218012077022046e+00 8.9256848114117304e+01 8.9747707271978427e+01 5.0000000000000000e-01 2 0 0 -15 0 +P 37 21 -1.0274145350843458e+00 -2.5975390684764665e-01 3.0272901154602945e+00 3.2074192370485028e+00 0 2 0 0 -15 0 +P 38 21 -2.6505880313310659e-01 5.5852304317418111e-01 2.2691371688433564e+00 2.3518477097595722e+00 0 2 0 0 -15 0 +P 39 21 2.3721188780666763e-01 2.7959374185858841e+00 2.6258281663350946e+01 2.6407780888220010e+01 0 2 0 0 -15 0 +V -9 0 0 0 0 0 0 1 0 +P 51 92 -1.1462784586161573e-01 -8.1623611956259214e+00 -2.8788124169172720e+03 2.9518144146174154e+03 6.5236551814627580e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 16 0 +P 52 -213 3.0616585418758002e-01 -2.5300431240125230e+00 1.2105798622634046e+01 1.2400251650786375e+01 8.4913189283512225e-01 2 0 0 -25 0 +P 53 213 -1.5404831881885364e-01 -1.7509696799112910e+00 5.5613068929310039e+00 5.8606722227440304e+00 5.7421149464447840e-01 2 0 0 -26 0 +P 54 223 -5.1151607297610935e-01 -1.4176238804041423e+00 5.9722475655096865e+00 6.2094845467470412e+00 7.8654382798990441e-01 2 0 0 -27 0 +P 55 223 2.1595395219106844e-01 -1.8737275125004771e+00 7.0985598228311808e+00 7.3857993220666733e+00 7.7652377102120052e-01 2 0 0 -28 0 +P 64 -211 4.4026111693685754e-01 6.5311510758350333e-01 -3.0666546764622510e+01 3.0676977677837161e+01 1.3957000000000000e-01 1 0 0 0 0 +P 65 211 4.5884509599108031e-02 -7.3354084743733938e-01 -5.8516434437769988e+02 5.8516482259132022e+02 1.3957000000000000e-01 1 0 0 0 0 +P 66 2214 -4.9851835496356245e-01 6.3248545172766857e-01 -1.2651382944982172e+03 1.2651390770952955e+03 1.1539624265769346e+00 2 0 0 -33 0 +P 67 111 2.6622991607876895e-01 4.8781176567800157e-02 -9.9923848265446202e+02 9.9923852842810425e+02 1.3497999999999999e-01 2 0 0 -34 0 +P 56 113 -4.7677120078934182e-02 -1.0152067643004612e+00 2.4368651745900176e+00 2.7334250167134941e+00 7.0737724080239639e-01 2 0 0 -29 0 +P 57 -211 2.1984336478833474e-01 4.7825007839895524e-03 2.2352079885760445e+00 2.2503307566776294e+00 1.3957000000000000e-01 1 0 0 0 0 +P 58 211 -3.3498969538027201e-01 6.9648415330084867e-02 -1.1066497586449596e-01 3.8574022288587678e-01 1.3957000000000000e-01 1 0 0 0 0 +P 59 113 1.3909780482065315e-01 -3.3069396730450967e-01 -1.7329298988899207e+00 1.9541788674726714e+00 8.2889221994938656e-01 2 0 0 -30 0 +P 60 -211 -2.8599753074680223e-01 6.4799383066966643e-01 -3.4804982825084108e+00 3.5545799571290018e+00 1.3957000000000000e-01 1 0 0 0 0 +P 61 111 4.1381767414316867e-01 -3.0024085245337195e-01 -3.1398849342385469e+00 3.1840990307421961e+00 1.3497999999999999e-01 2 0 0 -31 0 +P 62 211 5.4968392420735113e-01 1.4756230968950473e-01 -1.8166962247609939e+00 1.9088719207253644e+00 1.3957000000000000e-01 1 0 0 0 0 +P 63 113 -8.7881886984997282e-01 -4.1468335965402653e-01 -2.3734060373081363e+01 2.3767575310168922e+01 8.0481639937447114e-01 2 0 0 -32 0 +V -11 0 0 0 0 0 2 1 0 +P 25 21 -8.0759531061318546e-01 -3.3406171290107096e+00 1.9645698208408786e+00 3.9587204459677277e+00 0 2 0 0 -11 0 +P 26 21 8.0759531061318546e-01 3.3406171290107096e+00 -1.6092526703563814e+02 1.6096196290888045e+02 0 2 0 0 -11 0 +P 68 92 6.5875152481577262e+00 8.7100003117229168e+00 2.4104713366823571e+03 7.0983573201329691e+03 6.6765399212358125e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 59 0 +P 69 323 2.6965373089886259e-02 -7.8436620352785036e-01 -6.3251215118341054e+02 6.3251328488303113e+02 9.0454484922708100e-01 2 0 0 -35 0 +P 70 -311 -5.1319872938403244e-01 -3.5703956672451648e-01 -6.6805309680723667e+02 6.6805357470741524e+02 4.9767000000000000e-01 2 0 0 -36 0 +P 71 -211 5.7620530575271300e-01 6.1421445206986870e-02 -3.3565202145218319e+02 3.3565255066790428e+02 1.3957000000000000e-01 1 0 0 0 0 +P 72 213 2.7459733564460981e-01 -4.6031431506940862e-01 -3.8571257213471154e+02 3.8571373935139655e+02 7.8302534873042506e-01 2 0 0 -37 0 +P 73 223 -5.7926526471571715e-01 -1.9525945624624185e-02 -8.4084403531743789e+01 8.4090163084732680e+01 7.9541235743155470e-01 2 0 0 -38 0 +P 74 -213 -7.3223666424297493e-02 3.6563852853395723e-01 -1.6810679233890163e+01 1.6836622172984743e+01 8.5665433648741185e-01 2 0 0 -39 0 +P 75 211 6.4146448505876097e-01 -6.3543078272220832e-01 -1.6981265495312542e+01 1.7005825665706883e+01 1.3957000000000000e-01 1 0 0 0 0 +P 76 -211 -1.5924531765929986e-01 1.8172819723608069e-02 -3.3819669982319928e-01 3.9943224111784109e-01 1.3957000000000000e-01 1 0 0 0 0 +P 77 331 -2.1878967436288869e-02 -2.4374301737778187e-01 -4.9639779751442061e+00 5.0614320935167747e+00 9.5766808019706395e-01 2 0 0 -40 0 +P 78 211 3.8160876729373411e-01 4.9824059133778851e-03 -3.9596912966490905e+00 3.9804880385830423e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 -211 8.2763694246190667e-01 -4.7171503722470046e-02 -5.3206398228798824e+00 5.3866405086107614e+00 1.3957000000000000e-01 1 0 0 0 0 +P 80 213 -9.2963436667075124e-03 -9.3331491880418926e-01 -5.7858987283250789e+00 5.9114736383731179e+00 7.7313215110905542e-01 2 0 0 -41 0 +P 81 111 6.8908760945870035e-02 -7.4336047790866958e-02 -3.2488145678831243e-01 3.6611723081706654e-01 1.3497999999999999e-01 2 0 0 -42 0 +P 82 311 8.0944838552899079e-01 -2.2401821592795629e-01 -2.2078412448770441e+00 2.4140483096622667e+00 4.9767000000000000e-01 2 0 0 -43 0 +P 83 -311 2.0825369584158310e-01 -2.9899435700293758e-01 -7.9825277911540260e+00 8.0063220390387535e+00 4.9767000000000000e-01 2 0 0 -44 0 +P 84 221 4.8600128562752809e-02 -2.9412330619311078e-01 -1.2557942635204722e+00 1.4019954445479514e+00 5.4744999999999999e-01 2 0 0 -45 0 +P 85 221 2.4321537069915566e-01 2.7897521224850303e-02 -2.0466306405757497e+00 2.1326815209210972e+00 5.4744999999999999e-01 2 0 0 -46 0 +P 86 113 -1.4242560875299726e-01 2.0098755311294011e-01 -9.3281640560500445e-01 1.1994889447031605e+00 7.1270346664252460e-01 2 0 0 -47 0 +P 87 -213 6.2995506969133175e-01 -5.3351618156801850e-01 -3.0268003767966487e+00 3.2877827626531611e+00 9.8311345611693934e-01 2 0 0 -48 0 +P 88 213 -4.4470514704296038e-01 2.6740585629040976e-02 -1.1790528923872898e+00 1.4643031719074535e+00 7.4534577847138228e-01 2 0 0 -49 0 +P 89 2112 -5.6465354678112804e-02 4.1816050990651149e-01 8.1955389032907600e-01 1.3162472839013655e+00 9.3957000000000002e-01 1 0 0 0 0 +P 90 -2212 -3.0528283048302102e-02 -4.0769401042822612e-01 1.4135481591829637e+00 1.7451691532440265e+00 9.3827000000000005e-01 1 0 0 0 0 +P 91 211 3.5221781060737328e-01 1.2088893752373304e+00 9.4706264424757203e-01 1.5817327033035504e+00 1.3957000000000000e-01 1 0 0 0 0 +P 92 -213 -2.9970119748950869e-01 5.7605009045793187e-01 1.9803888278068278e+00 2.1668024374217025e+00 5.9282238404204501e-01 2 0 0 -50 0 +P 93 323 5.3610594923405364e-01 1.5427556638110751e+00 4.1323311180303905e+00 4.5365775346539055e+00 9.1480633571205505e-01 2 0 0 -51 0 +P 94 -323 1.6764230184000011e+00 4.2661339477853915e+00 1.1422857768230408e+01 1.2340341966212989e+01 8.8998160249935854e-01 2 0 0 -52 0 +P 95 221 1.6521720620708708e-01 1.7305666862956806e+00 5.3795959051527014e+00 5.6799569880571275e+00 5.4744999999999999e-01 2 0 0 -53 0 +P 96 111 3.4091599571513381e-01 4.2578712335088759e-01 7.7507818540955942e-01 9.5733180478016111e-01 1.3497999999999999e-01 2 0 0 -54 0 +P 97 111 1.8636424148468736e-01 1.4599342475026946e+00 5.4281639450086834e+00 5.6257731070340586e+00 1.3497999999999999e-01 2 0 0 -55 0 +P 98 223 1.0069287360881967e+00 1.3509470596584172e+00 6.7582433289884696e+00 7.0091592256500288e+00 7.8453598970226335e-01 2 0 0 -56 0 +P 99 211 -3.4146209562673929e-01 1.5158950380356184e-01 5.2424511386917438e-01 6.5870210621260206e-01 1.3957000000000000e-01 1 0 0 0 0 +P 100 2112 -2.1154881148046689e-01 -1.0735068025792132e+00 7.0201326895106064e-01 1.6039900777454950e+00 9.3957000000000002e-01 1 0 0 0 0 +P 101 -2212 4.7469686931938010e-02 2.7754353367769968e-01 1.0039073590343506e+00 1.4026633105228941e+00 9.3827000000000005e-01 1 0 0 0 0 +P 102 111 1.7437178164815947e-01 -5.6048963315392508e-01 1.2589521396946993e-01 6.1532377851712639e-01 1.3497999999999999e-01 2 0 0 -57 0 +P 103 113 -3.1883151078144545e-01 -8.4606752962111467e-02 1.3914257241876302e-01 9.7271600632710076e-01 9.0443570174538301e-01 2 0 0 -58 0 +P 104 111 -1.1927545843921665e-01 -2.6335718259241964e-01 1.5515874628685319e-01 3.5479216107209921e-01 1.3497999999999999e-01 2 0 0 -59 0 +P 105 211 2.9312098402116255e-01 -6.2323282486230425e-01 -2.6684020281172388e-01 7.5167981481212065e-01 1.3957000000000000e-01 1 0 0 0 0 +P 106 1114 -4.4062914350054427e-01 2.4638804826043872e-01 -2.3241854935092199e+01 2.3280385473541951e+01 1.2400265563311581e+00 2 0 0 -60 0 +P 107 211 1.6813770838362588e-01 1.0298303158833499e-01 -3.2163782230045408e+00 3.2254370947351405e+00 1.3957000000000000e-01 1 0 0 0 0 +P 108 -2212 3.4457685450197267e-01 1.2186713305630190e+00 -5.3030716885410776e+01 5.3054134400573211e+01 9.3827000000000005e-01 1 0 0 0 0 +P 109 2214 1.2020287573136482e-01 3.7479987432403911e-01 -1.0966878173055145e+01 1.1045072570427967e+01 1.2515141015024636e+00 2 0 0 -61 0 +P 110 211 2.1009296797946009e-01 4.0052377799798089e-01 -1.6589816940124287e+01 1.6596567845300751e+01 1.3957000000000000e-01 1 0 0 0 0 +P 111 -2224 1.9658035577195881e-01 5.1914185814482328e-01 -3.0401238446225552e+01 3.0431387801714855e+01 1.2352782556752151e+00 2 0 0 -62 0 +P 112 323 -7.0406239463945264e-01 -1.9001858472173550e-01 -1.3737092732247977e+01 1.3787611740640099e+01 9.2666599061989985e-01 2 0 0 -63 0 +P 113 333 8.2916907628090986e-01 6.4319863963863733e-01 -5.3961951740099057e+00 5.5928926174794418e+00 1.0297085158212156e+00 2 0 0 -64 0 +P 114 -323 -4.4426618158725512e-01 -1.3800261314922405e-02 -1.0646399753717462e+00 1.4542717828265139e+00 8.8537294619351015e-01 2 0 0 -65 0 +P 115 213 4.6955864160020383e-01 -2.2138569541027434e-01 2.7803521001940323e-01 1.1481484305370542e+00 9.8561873790043575e-01 2 0 0 -66 0 +P 116 223 2.8564258373702955e-01 -7.0418327707246611e-02 -7.3250403882459747e-01 1.1252011437712499e+00 8.0185099646301594e-01 2 0 0 -67 0 +P 117 -213 -2.1467687225524573e-01 4.2741287912168013e-01 -7.4289123826589104e-04 1.0126576271927121e+00 8.9258444379442525e-01 2 0 0 -68 0 +P 118 113 1.7395230303924547e-01 -4.1608763137866295e-01 1.2004688227692567e+01 1.2053458057779810e+01 9.8484688446354629e-01 2 0 0 -69 0 +P 119 221 -1.9567117285229671e-01 2.8889340409270481e-01 5.3075723066706981e+00 5.3471274437637426e+00 5.4744999999999999e-01 2 0 0 -70 0 +P 120 111 -1.9087267842121336e-01 5.4252206762536037e-01 6.2318609039251946e+01 6.2321408960009578e+01 1.3497999999999999e-01 2 0 0 -71 0 +P 121 323 1.3070310306706950e-01 -6.1697493783128776e-01 2.9221144136450206e+01 2.9240305127864819e+01 8.4996350061396719e-01 2 0 0 -72 0 +P 122 -311 -4.9885948856357186e-02 1.2822300091927889e-02 4.5329270329114166e+00 4.5604556717363289e+00 4.9767000000000000e-01 2 0 0 -73 0 +P 123 2112 -4.7863725043095502e-02 -1.0825222107858737e-01 1.4718621532001902e+02 1.4718926177372941e+02 9.3957000000000002e-01 1 0 0 0 0 +P 124 -2112 1.9344894382294975e-01 -6.5018197886060145e-03 2.1812090513132770e+02 2.1812301463133616e+02 9.3957000000000002e-01 1 0 0 0 0 +P 125 313 -5.9342554539725090e-01 -3.3850796627627300e-01 5.9882469556753961e+02 5.9882576075663053e+02 8.9943464447186261e-01 2 0 0 -74 0 +P 126 3224 3.5223036811653632e-02 -3.4414941922204685e-02 2.5172332877548356e+03 2.5172336781781446e+03 1.4011239061029810e+00 2 0 0 -75 0 +P 127 -213 1.1663718569999987e-01 -2.4641154449404332e-01 1.1115119089591544e+03 1.1115121550661386e+03 6.8758916911370760e-01 2 0 0 -76 0 +V -13 0 0 0 0 0 0 1 0 +P 128 92 -8.5730284737943785e-01 7.4467567594827277e-01 -1.7033715925588622e+03 1.7033728732085285e+03 1.7530933029711124e+00 2 0 0 -14 0 +V -14 0 0 0 0 0 0 2 0 +P 129 113 -7.8533622992976027e-01 8.6523895857592903e-01 -1.6750124441451264e+03 1.6750130337654648e+03 7.8093002700065262e-01 2 0 0 -77 0 +P 130 -211 -7.1966617449677556e-02 -1.2056328262765621e-01 -2.8359148413735429e+01 2.8359839443063105e+01 1.3957000000000000e-01 1 0 0 0 0 +V -15 0 0 0 0 0 0 1 0 +P 131 92 -1.9258873467210122e+01 9.2892052050382539e+00 8.6309059655864780e+02 8.6709454534264501e+02 8.0438667035440048e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 12 0 +P 132 423 -1.9137366351719628e+01 -1.4131846763827689e+01 2.9493587085754592e+02 2.9590056209345943e+02 2.0066999999999999e+00 2 0 0 -78 0 +P 133 211 -4.5604000871635657e+00 -4.7377185099919146e+00 7.2689922512815102e+01 7.2986899785775833e+01 1.3957000000000000e-01 1 0 0 0 0 +P 134 113 -5.1617104439380377e+00 -3.6881619942643642e+00 7.3158252581438703e+01 7.3436922903472933e+01 7.7841580023243062e-01 2 0 0 -79 0 +P 135 111 -1.0963849349911059e-01 -3.7173119868868731e-02 3.1818045250357909e+00 3.1867698498692643e+00 1.3497999999999999e-01 2 0 0 -80 0 +P 136 -213 -1.8575628946181175e+00 -2.6189368213267570e+00 3.1084349603980588e+01 3.1260260648800589e+01 8.1100896844567072e-01 2 0 0 -81 0 +P 137 113 -1.9702196225596913e+00 -7.5035350425204206e-01 1.8597051073293592e+01 1.8730245499430811e+01 7.2594221794524227e-01 2 0 0 -82 0 +P 138 331 -1.8481053319477775e-01 -3.7946619601020762e-02 3.7006231730721044e+00 3.8272144972627773e+00 9.5779124022995710e-01 2 0 0 -83 0 +P 139 323 5.4756376576753629e-01 3.2204856220182068e+00 3.6360592290988627e+01 3.6518541749074082e+01 9.1644203753305542e-01 2 0 0 -84 0 +P 140 -323 1.3311259853615089e+00 3.7379512567484707e+00 3.4112393141607136e+01 3.4353366987544497e+01 8.6849383798280422e-01 2 0 0 -85 0 +P 141 113 4.4805357982732119e-01 3.0030852094344707e+00 2.9362369493599097e+01 2.9533424673175375e+01 9.2474745847981388e-01 2 0 0 -86 0 +P 142 213 4.7752867246856443e+00 1.0891165458689070e+01 1.1393626861842178e+02 1.1455865944632977e+02 8.9011184662167564e-01 2 0 0 -87 0 +P 143 313 6.6208049038407921e+00 1.4438654991280693e+01 1.5197109868684942e+02 1.5280167720844955e+02 9.0989345262094001e-01 2 0 0 -88 0 +V -17 0 0 0 0 0 2 1 0 +P 43 2 2.1378197802742376e+00 2.3547451315414101e+00 -5.4651779492327037e+00 6.3232324063115968e+00 0 2 0 0 -17 0 +P 44 -2 -2.1378197802742376e+00 -2.3547451315414101e+00 -2.4068773120863955e+01 2.4277992865784292e+01 0 2 0 0 -17 0 +P 144 92 0 0 -2.9533951070096659e+01 3.0601225272095888e+01 8.0112871838860240e+00 2 0 0 -18 0 +V -18 0 0 0 0 0 0 4 0 +P 145 323 1.8776251777286357e+00 1.8318837713470195e+00 -4.9994852273624932e+00 5.7335457349190850e+00 9.9870901469245166e-01 2 0 0 -89 0 +P 146 -321 3.7073773471981229e-02 1.7044744097734246e-01 -1.6359966049568000e+00 1.7177172777396612e+00 4.9359999999999998e-01 1 0 0 0 0 +P 147 323 -4.7852083980675375e-01 -6.4107933193332411e-01 -5.4042107535842536e+00 5.5372300715771994e+00 9.0302718257077641e-01 2 0 0 -90 0 +P 148 -321 -1.4361781113938632e+00 -1.3612518803910378e+00 -1.7494258484193114e+01 1.7612732187859947e+01 4.9359999999999998e-01 1 0 0 0 0 +V -19 0 0 0 0 0 2 1 0 +P 45 1 1.8673293224089542e+00 2.3063057798131541e+00 2.4390505988349268e+01 2.4570363194630016e+01 0 2 0 0 -19 0 +P 46 -1 -1.8673293224089542e+00 -2.3063057798131541e+00 -3.0519906661080940e+00 4.2568312362999272e+00 0 2 0 0 -19 0 +P 149 92 0 0 2.1338515322241175e+01 2.8827194430929943e+01 1.9382334807786108e+01 2 0 0 -20 0 +V -20 0 0 0 0 0 0 8 0 +P 150 -211 1.1192865003182519e+00 9.7257533806658769e-01 1.0060654115125574e+01 1.0170297245759494e+01 1.3957000000000000e-01 1 0 0 0 0 +P 151 213 -2.0771851785387677e-01 4.2519322630392231e-01 6.3745975039723319e+00 6.4406040423465116e+00 7.8863859294723537e-01 2 0 0 -91 0 +P 152 311 3.6602657683902218e-01 2.7637537539729494e-02 1.1512728067232807e+00 1.3068449765883683e+00 4.9767000000000000e-01 2 0 0 -92 0 +P 153 -313 6.6372648031348541e-02 5.1378838214452516e-01 4.7850741764275320e+00 4.9115056800953063e+00 9.7855472083141659e-01 2 0 0 -93 0 +P 154 111 1.4261163265033819e-01 2.7035572090208759e-01 1.0157832817158920e-01 3.4923924571247367e-01 1.3497999999999999e-01 2 0 0 -94 0 +P 155 -213 2.4227172397104807e-01 -2.6403356349582480e-01 1.3501615848246171e+00 1.6600803924695697e+00 8.9695110983686888e-01 2 0 0 -95 0 +P 156 223 -1.1140200512928606e+00 -8.1846412592718654e-01 -1.3130036485215084e+00 2.0628775198106455e+00 7.8775686642327825e-01 2 0 0 -96 0 +P 157 213 -6.1483051266327160e-01 -1.1270525155338409e+00 -1.1718195444822426e+00 1.9257453281475732e+00 8.2889691275736610e-01 2 0 0 -97 0 +V -21 0 0 0 0 0 2 1 0 +P 47 21 -1.6032500697232532e-01 4.0174652936366986e+00 7.5678264791499856e+00 8.5695816182565032e+00 0 2 0 0 -21 0 +P 48 21 1.6032500697232532e-01 -4.0174652936366986e+00 2.9067715926331368e+02 2.9070496495396026e+02 0 2 0 0 -21 0 +P 158 92 0 0 2.9824498574246365e+02 2.9927454657221676e+02 2.4802876959812384e+01 2 0 0 -22 0 +V -22 0 0 0 0 0 0 11 0 +P 159 2112 1.7964317510379571e-01 2.3175583066793864e-01 5.5679324197099680e+00 5.6542590717765355e+00 9.3957000000000002e-01 1 0 0 0 0 +P 160 -2212 -1.5090219905010202e-01 6.0109050142401987e-01 3.2508753296939252e+00 3.4398578846651389e+00 9.3827000000000005e-01 1 0 0 0 0 +P 161 213 -1.3185920968150541e-01 5.1253454596483206e-01 2.8515148690980490e+00 3.0007314728969532e+00 7.7017777932231246e-01 2 0 0 -98 0 +P 162 2112 -2.9589184870575446e-02 8.1735278132525635e-01 3.9016671878094096e+00 4.0956977083678945e+00 9.3957000000000002e-01 1 0 0 0 0 +P 163 111 -1.6746154439354902e-02 7.6768893592516851e-01 2.2228509364031699e+00 2.3556130034237106e+00 1.3497999999999999e-01 2 0 0 -99 0 +P 164 -2112 1.5035799035598119e-01 2.6606398705642531e-01 4.0650357319587354e+00 4.1833843784038702e+00 9.3957000000000002e-01 1 0 0 0 0 +P 165 -213 1.6067245661882737e-01 -1.2470285603911700e-01 4.7366324423320982e+00 4.8109860944668297e+00 8.1763920330425799e-01 2 0 0 -100 0 +P 166 3222 -3.8764262791963577e-01 -4.9242591697810201e-01 5.0258807822997092e+01 5.0276785049131227e+01 1.1893700000000000e+00 2 0 0 -101 0 +P 167 -3322 -1.2309526187710051e-01 -2.5079778996359208e+00 1.8364860958891464e+02 1.8367048176432749e+02 1.3149000000000000e+00 2 0 0 -102 0 +P 168 -313 2.7382092931236746e-01 1.3620019933979283e-01 1.7228910752887057e+01 1.7258673294130080e+01 9.6587253141499774e-01 2 0 0 -103 0 +P 169 223 7.5340086447302335e-02 -2.0758010905029387e-01 2.0512148660659509e+01 2.0528076850627027e+01 7.7777302470221710e-01 2 0 0 -104 0 +V -23 0 0 0 0 0 2 1 0 +P 49 21 -2.6546407805414689e+00 1.5019300198250121e+00 2.4952404169620731e+01 2.5138126129492459e+01 0 2 0 0 -23 0 +P 50 21 2.6546407805414689e+00 -1.5019300198250121e+00 1.7863101526357177e+00 3.5346591659698707e+00 0 2 0 0 -23 0 +P 170 92 0 0 2.6738714322256449e+01 2.8672785295462329e+01 1.0352283467546599e+01 2 0 0 -24 0 +V -24 0 0 0 0 0 0 9 0 +P 171 113 2.2244165301205804e-01 3.1494817743372011e-01 1.4782187353346177e+00 1.6863066829397060e+00 7.1402167752056300e-01 2 0 0 -105 0 +P 172 111 3.4623449760310282e-01 -1.0264048500571971e-01 9.3540089980756547e-01 1.0117350642601477e+00 1.3497999999999999e-01 2 0 0 -106 0 +P 173 -3222 -8.2595480421942175e-02 1.6978619896754682e-01 3.9520196416308315e+00 4.1314294876570097e+00 1.1893700000000000e+00 2 0 0 -107 0 +P 174 3222 -6.9310081431249626e-01 6.6149599980748386e-01 1.1548527819325548e+01 1.1649079855816854e+01 1.1893700000000000e+00 2 0 0 -108 0 +P 175 -211 -1.7560637096079756e-01 -5.6685470235918856e-01 2.1835043271014025e+00 2.2670096564592077e+00 1.3957000000000000e-01 1 0 0 0 0 +P 176 -2112 -1.9019072817495811e-01 1.9359363989648683e-02 1.6880525050363864e+00 1.9413552850309042e+00 9.3957000000000002e-01 1 0 0 0 0 +P 177 223 2.4540057371541862e-01 -2.8376756848088225e-01 2.3218440550203154e+00 2.4773736223134661e+00 7.7825109971008344e-01 2 0 0 -109 0 +P 178 3212 8.6531980859782553e-01 -4.4081003261827684e-01 1.9558781200763713e+00 2.4881170750393125e+00 1.1925500000000000e+00 2 0 0 -110 0 +P 179 321 -5.3790313905821097e-01 2.2848304826566801e-01 6.7526821892341016e-01 1.0203785659457194e+00 4.9359999999999998e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 2 0 +P 180 -211 -1.4955554398415169e-01 -5.6951699534149869e-01 4.0889018315438204e+00 4.1334385735875658e+00 1.3957000000000000e-01 1 0 0 0 0 +P 181 111 4.5572139817173168e-01 -1.9605261286710240e+00 8.0168967910902253e+00 8.2668130771988633e+00 1.3497999999999999e-01 2 0 0 -111 0 +V -26 0 0 0 0 0 0 2 0 +P 182 211 1.8489337684983235e-02 -7.6473513145543626e-01 1.7001134900440293e+00 1.8694992219361533e+00 1.3957000000000000e-01 1 0 0 0 0 +P 183 111 -1.7253765650383687e-01 -9.8623454845585490e-01 3.8611934028869754e+00 3.9911730008078652e+00 1.3497999999999999e-01 2 0 0 -112 0 +V -27 0 0 0 0 0 0 3 0 +P 184 -211 -2.5172946512403243e-02 -7.7548570243937753e-01 3.0753336193267011e+00 3.1747706069864448e+00 1.3957000000000000e-01 1 0 0 0 0 +P 185 211 -3.7700741046237424e-01 -6.0130878108935260e-01 2.2322285260513164e+00 2.3464933017539047e+00 1.3957000000000000e-01 1 0 0 0 0 +P 186 111 -1.0933571600133193e-01 -4.0829396875412233e-02 6.6468542013166909e-01 6.8822063800669864e-01 1.3497999999999999e-01 2 0 0 -113 0 +V -28 0 0 0 0 0 0 3 0 +P 187 -211 1.1038114308213799e-01 -1.2888105525180060e-01 6.0684971341572025e-01 6.4539963024755354e-01 1.3957000000000000e-01 1 0 0 0 0 +P 188 211 8.5502102732195953e-02 -1.0434887961818418e+00 3.1241617499531409e+00 3.2978850650225713e+00 1.3957000000000000e-01 1 0 0 0 0 +P 189 111 2.0070706376734491e-02 -7.0135766106683461e-01 3.3675483594623192e+00 3.4425146267966618e+00 1.3497999999999999e-01 2 0 0 -114 0 +V -29 0 0 0 0 0 0 2 0 +P 190 211 6.0515548805711243e-02 -7.5842708879401355e-01 1.0059791141196675e+00 1.2689946980223401e+00 1.3957000000000000e-01 1 0 0 0 0 +P 191 -211 -1.0819266888464543e-01 -2.5677967550644770e-01 1.4308860604703502e+00 1.4644303186911753e+00 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 192 211 3.2630837518369948e-01 1.2528291854798834e-01 -9.1079671575371779e-01 9.8549652851884084e-01 1.3957000000000000e-01 1 0 0 0 0 +P 193 -211 -1.8721057036304636e-01 -4.5597688585249807e-01 -8.2213318313620309e-01 9.6868233895383105e-01 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 1.9363804248396288e-05 -1.4049194748185942e-05 -1.4692489235742219e-04 1.4899380618883134e-04 0 2 0 +P 194 22 2.3644587135507725e-01 -1.2558235327998157e-01 -1.9632153706257331e+00 1.9813864259647422e+00 0 1 0 0 0 0 +P 195 22 1.7737180278809139e-01 -1.7465849917339041e-01 -1.1766695636128137e+00 1.2027126047774541e+00 0 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 196 -211 -7.0389269565655677e-01 -3.1919107716430056e-02 -1.8774282217689745e+01 1.8788018424804608e+01 1.3957000000000000e-01 1 0 0 0 0 +P 197 211 -1.7492617419341611e-01 -3.8276425193759644e-01 -4.9597781553916187e+00 4.9795568853643175e+00 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 2 0 +P 198 2212 -5.1743590343267754e-01 4.2825914755438255e-01 -1.0893061128262852e+03 1.0893067239933462e+03 9.3827000000000005e-01 1 0 0 0 0 +P 199 111 1.8917548469115111e-02 2.0422630417328605e-01 -1.7583218167193181e+02 1.7583235310194934e+02 1.3497999999999999e-01 2 0 0 -115 0 +V -34 0 3.2334201386706010e-05 5.9245798152790670e-06 -1.2135968341715789e-01 1.2135968897646612e-01 0 2 0 +P 200 22 1.6703387848561871e-01 5.7069751590140542e-02 -4.1826167954092972e+02 4.1826171678707635e+02 0 1 0 0 0 0 +P 201 22 9.9196037593150224e-02 -8.2885750223403894e-03 -5.8097680311353236e+02 5.8097681164102789e+02 0 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 202 311 -2.5901715207887410e-01 -6.0542629745708865e-01 -4.0542979190677522e+02 4.0543063213315133e+02 4.9767000000000000e-01 2 0 0 -116 0 +P 203 211 2.8598252516876038e-01 -1.7893990607076177e-01 -2.2708235927663534e+02 2.2708265274987977e+02 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 1 0 +P 204 130 -5.1319872938403244e-01 -3.5703956672451648e-01 -6.6805309680723667e+02 6.6805357470741524e+02 4.9767000000000000e-01 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 205 211 5.0113066374848658e-01 -1.7917812277643974e-01 -1.9423655414467504e+02 1.9423733339016991e+02 1.3957000000000000e-01 1 0 0 0 0 +P 206 111 -2.2653332810387683e-01 -2.8113619229296893e-01 -1.9147601799003647e+02 1.9147640596122679e+02 1.3497999999999999e-01 2 0 0 -117 0 +V -38 0 0 0 0 0 0 3 0 +P 207 211 -1.2953975496923764e-01 -6.3100220954130662e-02 -6.4093109045566621e+00 6.4124494728746901e+00 1.3957000000000000e-01 1 0 0 0 0 +P 208 -211 -6.5502456608810988e-02 -1.0670875197924584e-01 -3.2314799704027415e+01 3.2315343677978753e+01 1.3957000000000000e-01 1 0 0 0 0 +P 209 111 -3.8422305313766852e-01 1.5028302730875231e-01 -4.5360292923159719e+01 4.5362369933879265e+01 1.3497999999999999e-01 2 0 0 -118 0 +V -39 0 0 0 0 0 0 2 0 +P 210 -211 2.5359517635261491e-01 -7.4343477557339457e-02 -3.1117407054990411e+00 3.1260594155076933e+00 1.3957000000000000e-01 1 0 0 0 0 +P 211 111 -3.2681884277691242e-01 4.3998200609129667e-01 -1.3698938528391123e+01 1.3710562757477057e+01 1.3497999999999999e-01 2 0 0 -119 0 +V -40 0 0 0 0 0 0 3 0 +P 212 111 -7.8940863078874490e-02 -1.7382885204461537e-01 -1.5695053597983348e+00 1.5868253856371490e+00 1.3497999999999999e-01 2 0 0 -120 0 +P 213 111 -7.8383943780866334e-03 -2.5856424870530047e-02 -1.3381901875049935e+00 1.3452518624659702e+00 1.3497999999999999e-01 2 0 0 -121 0 +P 214 221 6.4900290020672255e-02 -4.4057740462636476e-02 -2.0562824278408782e+00 2.1293548454136566e+00 5.4744999999999999e-01 2 0 0 -122 0 +V -41 0 0 0 0 0 0 2 0 +P 215 211 -1.8048202178105321e-02 -1.0093102102911666e+00 -5.4042555680151514e+00 5.4994991469698977e+00 1.3957000000000000e-01 1 0 0 0 0 +P 216 111 8.7518585113978108e-03 7.5995291486977395e-02 -3.8164316030992712e-01 4.1197449140322134e-01 1.3497999999999999e-01 2 0 0 -123 0 +V -42 0 6.0737920994850714e-07 -6.5521668592152024e-07 -2.8635871526700522e-06 3.2270496719116053e-06 0 2 0 +P 217 22 3.6690098624894099e-02 3.2104328088457951e-02 -5.1174608902313651e-02 7.0680208088407345e-02 0 1 0 0 0 0 +P 218 22 3.2218662320975935e-02 -1.0644037587932491e-01 -2.7370684788599875e-01 2.9543702272865918e-01 0 1 0 0 0 0 +V -43 0 0 0 0 0 0 1 0 +P 219 310 8.0944838552899079e-01 -2.2401821592795629e-01 -2.2078412448770441e+00 2.4140483096622671e+00 4.9767000000000000e-01 2 0 0 -124 0 +V -44 0 0 0 0 0 0 1 0 +P 220 130 2.0825369584158310e-01 -2.9899435700293758e-01 -7.9825277911540260e+00 8.0063220390387517e+00 4.9767000000000000e-01 1 0 0 0 0 +V -45 0 0 0 0 0 0 3 0 +P 221 -211 2.0336907664022314e-02 -6.8795029656673473e-02 -1.2781071680927664e-01 2.0238999518281200e-01 1.3957000000000000e-01 1 0 0 0 0 +P 222 211 -6.8179243585667487e-02 -8.9502122733327735e-02 -3.5872734119120031e-01 4.0102883867347155e-01 1.3957000000000000e-01 1 0 0 0 0 +P 223 111 9.6442464484397972e-02 -1.3582615380310958e-01 -7.6925620551999541e-01 7.9857661069166797e-01 1.3497999999999999e-01 2 0 0 -125 0 +V -46 0 0 0 0 0 0 3 0 +P 224 111 2.6160440603946145e-01 3.8824481999259884e-02 -1.0269049807729116e+00 1.0689703670345518e+00 1.3497999999999999e-01 2 0 0 -126 0 +P 225 111 -1.7096717800365663e-02 2.3430492041171140e-02 -2.9482920802539647e-01 3.2555360237865472e-01 1.3497999999999999e-01 2 0 0 -127 0 +P 226 111 -1.2923175399401406e-03 -3.4357452815580718e-02 -7.2489645177744166e-01 7.3815755150789031e-01 1.3497999999999999e-01 2 0 0 -128 0 +V -47 0 0 0 0 0 0 2 0 +P 227 -211 4.0983186168897998e-02 4.1316543328976252e-01 -4.9254568519727593e-01 6.5914060239111794e-01 1.3957000000000000e-01 1 0 0 0 0 +P 228 211 -1.8340879492189527e-01 -2.1217788017682243e-01 -4.4027072040772847e-01 5.4034834231204232e-01 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 229 -211 1.4311547145631315e-01 -6.9370880998933593e-01 -2.0936733660680962e+00 2.2146471276277619e+00 1.3957000000000000e-01 1 0 0 0 0 +P 230 111 4.8683959823501871e-01 1.6019262842131735e-01 -9.3312701072855297e-01 1.0731356350254004e+00 1.3497999999999999e-01 2 0 0 -129 0 +V -49 0 0 0 0 0 0 2 0 +P 231 211 -5.9605235147848823e-01 3.4238597371628854e-03 -1.0703021959451100e+00 1.2330112343622257e+00 1.3957000000000000e-01 1 0 0 0 0 +P 232 111 1.5134720443552790e-01 2.3316725891878089e-02 -1.0875069644217970e-01 2.3129193754522784e-01 1.3497999999999999e-01 2 0 0 -130 0 +V -50 0 0 0 0 0 0 2 0 +P 233 -211 -1.9269073508976683e-01 1.6767418600061659e-01 1.4340467581323610e+00 1.4632888441624703e+00 1.3957000000000000e-01 1 0 0 0 0 +P 234 111 -1.0701046239974184e-01 4.0837590445731536e-01 5.4634206967446686e-01 7.0351359325923257e-01 1.3497999999999999e-01 2 0 0 -131 0 +V -51 0 0 0 0 0 0 2 0 +P 235 311 6.3943275598408489e-01 1.2113139656898524e+00 3.6184751514319600e+00 3.9009221503807563e+00 4.9767000000000000e-01 2 0 0 -132 0 +P 236 211 -1.0332680675003121e-01 3.3144169812122276e-01 5.1385596659843058e-01 6.3565538427314960e-01 1.3957000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 237 -321 6.0112350196689945e-01 1.3754851910638788e+00 3.6979799224894263e+00 4.0214432039490360e+00 4.9359999999999998e-01 1 0 0 0 0 +P 238 111 1.0752995164331018e+00 2.8906487567215131e+00 7.7248778457409824e+00 8.3188987622639523e+00 1.3497999999999999e-01 2 0 0 -133 0 +V -53 0 0 0 0 0 0 3 0 +P 239 111 2.8770026660581679e-03 5.7529118234130172e-01 2.0142417965499644e+00 2.0991326392090666e+00 1.3497999999999999e-01 2 0 0 -134 0 +P 240 111 -3.1779121290212139e-02 5.5540485052736488e-01 1.4046209535474936e+00 1.5167940150475190e+00 1.3497999999999999e-01 2 0 0 -135 0 +P 241 111 1.9411932483124106e-01 5.9987065342701418e-01 1.9607331550552445e+00 2.0640303338005435e+00 1.3497999999999999e-01 2 0 0 -136 0 +V -54 0 5.4954611087139647e-05 6.8635576106003366e-05 1.2494022215636810e-04 1.5431894564725410e-04 0 2 0 +P 242 22 2.7045544910683439e-01 2.8952946094327370e-01 4.6146839849127375e-01 6.0821586752713319e-01 0 1 0 0 0 0 +P 243 22 7.0460546608299382e-02 1.3625766240761386e-01 3.1360978691828562e-01 3.4911593725302786e-01 0 1 0 0 0 0 +V -55 0 9.6240369574681310e-05 7.5392473585625148e-04 2.8031584815723328e-03 2.9052058412651406e-03 0 2 0 +P 244 22 8.6498389738220507e-02 2.8849502818976608e-01 1.1962677619018982e+00 1.2335995747742843e+00 0 1 0 0 0 0 +P 245 22 9.9865851746466866e-02 1.1714392193129286e+00 4.2318961831067856e+00 4.3921735322597746e+00 0 1 0 0 0 0 +V -56 0 0 0 0 0 0 3 0 +P 246 -211 4.9508715212394944e-01 7.9494983361117566e-01 2.6140269814839323e+00 2.7802290141250303e+00 1.3957000000000000e-01 1 0 0 0 0 +P 247 211 2.9246050150768399e-01 2.7688149449938243e-01 1.5693519673596861e+00 1.6262047501142205e+00 1.3957000000000000e-01 1 0 0 0 0 +P 248 111 2.1938108245656321e-01 2.7911573154785918e-01 2.5748643801448514e+00 2.6027254614107957e+00 1.3497999999999999e-01 2 0 0 -137 0 +V -57 0 8.3373127297123383e-06 -2.6798931049491529e-05 6.0194818227837910e-06 2.9420739543035361e-05 0 2 0 +P 249 22 7.9399386678645364e-02 -1.3411768106791125e-01 -1.4409354255737384e-02 1.5652298383958299e-01 0 1 0 0 0 0 +P 250 22 9.4972394969514082e-02 -4.2637195208601375e-01 1.4030456822520732e-01 4.5880079467754337e-01 0 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 251 -211 -2.5832734309574518e-02 -4.0424593103120743e-01 -1.2480732107260117e-01 4.4624965569792446e-01 1.3957000000000000e-01 1 0 0 0 0 +P 252 211 -2.9299877647187089e-01 3.1963917806909597e-01 2.6394989349136422e-01 5.2646635062917657e-01 1.3957000000000000e-01 1 0 0 0 0 +V -59 0 -5.4768382651334292e-05 -1.2092719775668951e-04 7.1245113617988620e-05 1.6291191074476475e-04 0 2 0 +P 253 22 1.7493171764315394e-02 -1.3904813024503002e-02 -1.1450675993148609e-02 2.5109218711905378e-02 0 1 0 0 0 0 +P 254 22 -1.3676863020353203e-01 -2.4945236956791661e-01 1.6660942228000178e-01 3.2968294236019380e-01 0 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 255 2112 -1.9138160467729162e-01 3.0369538458739065e-01 -1.5191645722299414e+01 1.5224905561020293e+01 9.3957000000000002e-01 1 0 0 0 0 +P 256 -211 -2.4924753882325268e-01 -5.7307336326951931e-02 -8.0502092127927884e+00 8.0554799125216761e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 257 2112 8.3027060514221970e-02 1.0739718499538585e-01 -9.4824633945358805e+00 9.5298652383827278e+00 9.3957000000000002e-01 1 0 0 0 0 +P 258 211 3.7175815217142839e-02 2.6740268932865324e-01 -1.4844147785192647e+00 1.5152073320452397e+00 1.3957000000000000e-01 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 259 -2212 1.9997999199392005e-01 5.2159092633940130e-01 -2.9420638804998770e+01 2.9440896511124400e+01 9.3827000000000005e-01 1 0 0 0 0 +P 260 -211 -3.3996362219612538e-03 -2.4490681945780598e-03 -9.8059964122678123e-01 9.9049129059046015e-01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 2 0 +P 261 311 -3.7995269441653340e-01 1.6535799088428479e-01 -6.1483584577768262e+00 6.1823696483920711e+00 4.9767000000000000e-01 2 0 0 -138 0 +P 262 211 -3.2410970022291918e-01 -3.5537657560602026e-01 -7.5887342744711495e+00 7.6052420922480319e+00 1.3957000000000000e-01 1 0 0 0 0 +V -64 0 0 0 0 0 0 2 0 +P 263 -321 2.6631810341032058e-01 1.7773913266626884e-01 -2.2183705565824408e+00 2.2950654495671614e+00 4.9359999999999998e-01 1 0 0 0 0 +P 264 321 5.6285097287058927e-01 4.6545950697236843e-01 -3.1778246174274649e+00 3.2978271679122821e+00 4.9359999999999998e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 265 -311 -3.9453058218165832e-01 2.5328290511276014e-01 -7.7255254295189668e-01 1.0316586018738949e+00 4.9767000000000000e-01 2 0 0 -139 0 +P 266 -211 -4.9735599405596756e-02 -2.6708316642768254e-01 -2.9208743241984952e-01 4.2261318095261929e-01 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 2 0 +P 267 211 4.6420703636526520e-02 -3.1935185958196421e-01 -2.6465407149408987e-01 4.4007051071727998e-01 1.3957000000000000e-01 1 0 0 0 0 +P 268 111 4.2313793796367721e-01 9.7966164171689893e-02 5.4268928151349305e-01 7.0807791981977419e-01 1.3497999999999999e-01 2 0 0 -140 0 +V -67 0 0 0 0 0 0 3 0 +P 269 -211 1.6386205957906591e-01 -2.8797173352374816e-01 -3.9627447208558847e-01 5.3506236646289917e-01 1.3957000000000000e-01 1 0 0 0 0 +P 270 211 -1.4271113813788025e-02 -1.6982856077004688e-02 -5.1470645008149614e-03 1.4141555523701732e-01 1.3957000000000000e-01 1 0 0 0 0 +P 271 111 1.3605163797175168e-01 2.3453626189350621e-01 -3.3108250223819413e-01 4.4872322207133397e-01 1.3497999999999999e-01 2 0 0 -141 0 +V -68 0 0 0 0 0 0 2 0 +P 272 -211 -3.7696463658742585e-01 4.6783841638839324e-01 2.6462046064315636e-01 6.7117724497876563e-01 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 1.6228776433218009e-01 -4.0425537266713100e-02 -2.6536335188142224e-01 3.4148038221394672e-01 1.3497999999999999e-01 2 0 0 -142 0 +V -69 0 0 0 0 0 0 2 0 +P 274 -211 4.5889677578228821e-01 -5.1523219110723040e-01 9.6187324222664792e+00 9.6444566284284221e+00 1.3957000000000000e-01 1 0 0 0 0 +P 275 211 -2.8494447274304274e-01 9.9144559728567477e-02 2.3859558054260877e+00 2.4090014293513886e+00 1.3957000000000000e-01 1 0 0 0 0 +V -70 0 0 0 0 0 0 3 0 +P 276 111 -2.9460756327081435e-03 9.2886448846853601e-03 1.7698034532282698e+00 1.7749700903801551e+00 1.3497999999999999e-01 2 0 0 -143 0 +P 277 111 -1.4355787675334006e-01 2.4399905742791486e-01 2.9250863072903583e+00 2.9418521223034277e+00 1.3497999999999999e-01 2 0 0 -144 0 +P 278 111 -4.9167220466248530e-02 3.5605701780104602e-02 6.1268254615206985e-01 6.3030523108015979e-01 1.3497999999999999e-01 2 0 0 -145 0 +V -71 0 -7.5868240100300521e-05 2.1564214861322876e-04 2.4770455533049511e-02 2.4771568448014918e-02 0 2 0 +P 279 22 1.2440521239830230e-02 1.3976757843603155e-02 4.1819631103660040e+00 4.1820049704406896e+00 0 1 0 0 0 0 +P 280 22 -2.0331319966104358e-01 5.2854530978175718e-01 5.8136645928885947e+01 5.8139403989568891e+01 0 1 0 0 0 0 +V -72 0 0 0 0 0 0 2 0 +P 281 321 2.1642746277190641e-01 -6.7327959002127669e-01 2.1482677626049064e+01 2.1499981981335011e+01 4.9359999999999998e-01 1 0 0 0 0 +P 282 111 -8.5724359704836925e-02 5.6304652189988848e-02 7.7384665104011416e+00 7.7403231465298052e+00 1.3497999999999999e-01 2 0 0 -146 0 +V -73 0 0 0 0 0 0 1 0 +P 283 310 -4.9885948856357186e-02 1.2822300091927889e-02 4.5329270329114166e+00 4.5604556717363280e+00 4.9767000000000000e-01 2 0 0 -147 0 +V -74 0 0 0 0 0 0 2 0 +P 284 321 -2.7920309589361664e-01 -2.9417814389614927e-01 2.2570322131419886e+02 2.2570412545568442e+02 4.9359999999999998e-01 1 0 0 0 0 +P 285 -211 -3.1422244950363426e-01 -4.4329822380123687e-02 3.7312147425334075e+02 3.7312163530094614e+02 1.3957000000000000e-01 1 0 0 0 0 +V -75 0 0 0 0 0 0 2 0 +P 286 3122 7.4262577958025780e-02 -2.4548660956187812e-01 2.0956003441221887e+03 2.0956006568059443e+03 1.1156800000000000e+00 2 0 0 -148 0 +P 287 211 -3.9039541146372155e-02 2.1107166763967344e-01 4.2163294363264680e+02 4.2163302137220023e+02 1.3957000000000000e-01 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 288 -211 -2.0057133852812120e-01 6.3358175356901622e-02 5.3623025438152285e+02 5.3623031379900362e+02 1.3957000000000000e-01 1 0 0 0 0 +P 289 111 3.1720852422812107e-01 -3.0976971985094492e-01 5.7528165457763157e+02 5.7528184126713484e+02 1.3497999999999999e-01 2 0 0 -149 0 +V -77 0 0 0 0 0 0 2 0 +P 290 -211 -3.5297618575010037e-01 5.2153555934991228e-02 -8.0473046163509775e+02 8.0473055284076520e+02 1.3957000000000000e-01 1 0 0 0 0 +P 291 211 -4.3236004417965990e-01 8.1308540264093787e-01 -8.7028198251002880e+02 8.7028248092469994e+02 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 0 0 0 0 0 2 0 +P 292 421 -1.7659721204514614e+01 -1.3074065417320448e+01 2.7202781467015444e+02 2.7292014446359110e+02 1.8645000000000000e+00 2 0 0 -150 0 +P 293 111 -1.4776451472050109e+00 -1.0577813465072390e+00 2.2908056187391484e+01 2.2980417629868313e+01 1.3497999999999999e-01 2 0 0 -151 0 +V -79 0 0 0 0 0 0 2 0 +P 294 -211 -1.1583166595630789e+00 -1.0356886852578260e+00 2.0998472633156180e+01 2.1056345391518004e+01 1.3957000000000000e-01 1 0 0 0 0 +P 295 211 -4.0033937843749587e+00 -2.6524733090065382e+00 5.2159779948282527e+01 5.2380577511954947e+01 1.3957000000000000e-01 1 0 0 0 0 +V -80 0 -1.4431088124816109e-05 -4.8928852593760701e-06 4.1880274008966248e-04 4.1945629741203458e-04 0 2 0 +P 296 22 -8.5756643853515627e-02 3.5367132902272655e-02 1.2404140135934969e+00 1.2438777918967254e+00 0 1 0 0 0 0 +P 297 22 -2.3881849645594963e-02 -7.2540252771141386e-02 1.9413905114422942e+00 1.9428920579725391e+00 0 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 298 -211 -3.7116803471142029e-01 -1.5843331213655415e-01 3.3881934198240016e+00 3.4149965240721345e+00 1.3957000000000000e-01 1 0 0 0 0 +P 299 111 -1.4863948599066970e+00 -2.4605035091902030e+00 2.7696156184156585e+01 2.7845264124728452e+01 1.3497999999999999e-01 2 0 0 -152 0 +V -82 0 0 0 0 0 0 2 0 +P 300 211 -1.3102071172472114e+00 -6.6653559707336441e-01 1.4736991379972928e+01 1.4810783473893188e+01 1.3957000000000000e-01 1 0 0 0 0 +P 301 -211 -6.6001250531248001e-01 -8.3817907178677653e-02 3.8600596933206637e+00 3.9194620255376229e+00 1.3957000000000000e-01 1 0 0 0 0 +V -83 0 0 0 0 0 0 3 0 +P 302 111 -1.0129607511280893e-01 1.7331886710189474e-02 1.1003937127586700e+00 1.1133944550827461e+00 1.3497999999999999e-01 2 0 0 -153 0 +P 303 111 2.6736441445761979e-02 -6.4664089522388349e-02 2.1034626839622458e-01 2.5954081529339207e-01 1.3497999999999999e-01 2 0 0 -154 0 +P 304 221 -1.1025089952773082e-01 9.3855832111780987e-03 2.3898831919172103e+00 2.4542792268866394e+00 5.4744999999999999e-01 2 0 0 -155 0 +V -84 0 0 0 0 0 0 2 0 +P 305 311 2.1723555449960955e-01 2.5511909827769035e+00 2.9876035175259780e+01 2.9989680224020404e+01 4.9767000000000000e-01 2 0 0 -156 0 +P 306 211 3.3032821126792672e-01 6.6929463924130272e-01 6.4845571157288475e+00 6.5288615250536779e+00 1.3957000000000000e-01 1 0 0 0 0 +V -85 0 0 0 0 0 0 2 0 +P 307 -311 7.4141747198539887e-01 1.8100047541943822e+00 1.5235835672865862e+01 1.5368935589605529e+01 4.9767000000000000e-01 2 0 0 -157 0 +P 308 -211 5.8970851337611008e-01 1.9279465025540885e+00 1.8876557468741275e+01 1.8984431397938966e+01 1.3957000000000000e-01 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 309 -211 5.6503765038489062e-01 2.3392525032674194e+00 1.9776469739542058e+01 1.9922841287434835e+01 1.3957000000000000e-01 1 0 0 0 0 +P 310 211 -1.1698407055756944e-01 6.6383270616705115e-01 9.5858997540570403e+00 9.6105833857405401e+00 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 311 211 1.3668928578316808e+00 3.5273910635892820e+00 3.2919426948257488e+01 3.3136370262701405e+01 1.3957000000000000e-01 1 0 0 0 0 +P 312 111 3.4083938668539631e+00 7.3637743950997869e+00 8.1016841670164283e+01 8.1422289183628351e+01 1.3497999999999999e-01 2 0 0 -158 0 +V -88 0 0 0 0 0 0 2 0 +P 313 321 5.1398658600433409e+00 1.0815446396235405e+01 1.1230433937571154e+02 1.1294202222992146e+02 4.9359999999999998e-01 1 0 0 0 0 +P 314 -211 1.4809390437974521e+00 3.6232085950452890e+00 3.9666759311137888e+01 3.9859654978528077e+01 1.3957000000000000e-01 1 0 0 0 0 +V -89 0 0 0 0 0 0 2 0 +P 315 311 8.3836765391802071e-01 1.1061415327090975e+00 -2.0993031465343575e+00 2.5653768813702778e+00 4.9767000000000000e-01 2 0 0 -159 0 +P 316 211 1.0392575238106148e+00 7.2574223863792198e-01 -2.9001820808281353e+00 3.1681688535488077e+00 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 317 311 1.6058894356953304e-02 -3.9658053507255009e-01 -2.7554049904710340e+00 2.8279791546790221e+00 4.9767000000000000e-01 2 0 0 -160 0 +P 318 211 -4.9457973416370704e-01 -2.4449879686077405e-01 -2.6488057631132196e+00 2.7092509168981773e+00 1.3957000000000000e-01 1 0 0 0 0 +V -91 0 0 0 0 0 0 2 0 +P 319 211 5.5367043874559790e-02 5.2998456753257217e-01 5.0211679739135224e+00 5.0512925829459654e+00 1.3957000000000000e-01 1 0 0 0 0 +P 320 111 -2.6308556172843650e-01 -1.0479134122864993e-01 1.3534295300588093e+00 1.3893114594005462e+00 1.3497999999999999e-01 2 0 0 -161 0 +V -92 0 0 0 0 0 0 1 0 +P 321 130 3.6602657683902218e-01 2.7637537539729494e-02 1.1512728067232807e+00 1.3068449765883683e+00 4.9767000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 322 -321 -1.8424422202606633e-01 1.0267733119375648e-01 3.3182378596813287e+00 3.3613735319231615e+00 4.9359999999999998e-01 1 0 0 0 0 +P 323 211 2.5061687005741484e-01 4.1111105095076861e-01 1.4668363167462029e+00 1.5501321481721444e+00 1.3957000000000000e-01 1 0 0 0 0 +V -94 0 4.9204414482214235e-05 9.3279171563236449e-05 3.5046945812757313e-05 1.2049586895639305e-04 0 2 0 +P 324 22 1.4638419996119670e-03 5.3436389585819963e-02 -2.7413433695101901e-02 6.0075676544863857e-02 0 1 0 0 0 0 +P 325 22 1.4114779065072622e-01 2.1691933131626764e-01 1.2899176186669112e-01 2.8916356916760982e-01 0 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 326 -211 -1.7165868603711240e-01 -4.4258740952734626e-01 6.6513282107305505e-01 8.2899443552578533e-01 1.3957000000000000e-01 1 0 0 0 0 +P 327 111 4.1393041000816050e-01 1.7855384603152144e-01 6.8502876375156219e-01 8.3108595694378429e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -96 0 0 0 0 0 0 3 0 +P 328 -211 -3.9561090808922145e-01 -2.1572664482033080e-01 -2.0918580262695435e-01 5.1602757756276807e-01 1.3957000000000000e-01 1 0 0 0 0 +P 329 211 -7.2592869091610646e-01 -5.6546117318346967e-01 -8.6889461933755874e-01 1.2732542743250301e+00 1.3957000000000000e-01 1 0 0 0 0 +P 330 111 7.5195477124670789e-03 -3.7276307923386154e-02 -2.3492322655699543e-01 2.7359566792284662e-01 1.3497999999999999e-01 2 0 0 -163 0 +V -97 0 0 0 0 0 0 2 0 +P 331 211 -2.1245054419147788e-01 -9.4426467212448351e-01 -1.0757049671517334e+00 1.4537509986254611e+00 1.3957000000000000e-01 1 0 0 0 0 +P 332 111 -4.0237996847179375e-01 -1.8278784340935744e-01 -9.6114577330509182e-02 4.7199432952211190e-01 1.3497999999999999e-01 2 0 0 -164 0 +V -98 0 0 0 0 0 0 2 0 +P 333 211 2.0149439122852938e-01 -5.3302766918694060e-02 5.7020627225908882e-01 6.2294153215317916e-01 1.3957000000000000e-01 1 0 0 0 0 +P 334 111 -3.3335360091003480e-01 5.6583731288352612e-01 2.2813085968389601e+00 2.3777899407437744e+00 1.3497999999999999e-01 2 0 0 -165 0 +V -99 0 -3.5153111932296456e-07 1.6115135681743178e-05 4.6661535374685549e-05 4.9448443747731639e-05 0 2 0 +P 335 22 -9.2603642081564800e-03 7.6483303944505310e-01 2.1439769219474183e+00 2.2763330982997969e+00 0 1 0 0 0 0 +P 336 22 -7.4857902311984215e-03 2.8558964801153959e-03 7.8874014455751498e-02 7.9279905123913585e-02 0 1 0 0 0 0 +V -100 0 0 0 0 0 0 2 0 +P 337 -211 9.3383194809242093e-02 -2.6183692551778537e-01 6.6393712447782982e-01 7.3319253051110411e-01 1.3957000000000000e-01 1 0 0 0 0 +P 338 111 6.7289261809585277e-02 1.3713406947866838e-01 4.0726953178542686e+00 4.0777935639557263e+00 1.3497999999999999e-01 2 0 0 -166 0 +V -101 0 -1.9219786930458220e+00 -2.4415068214109641e+00 2.4918920370571573e+02 2.4927833695139438e+02 0 2 0 +P 339 2112 -3.3088369099467252e-01 -5.7444073773084292e-01 3.9933593320707132e+01 3.9950145600068296e+01 9.3957000000000002e-01 1 0 0 0 0 +P 340 211 -5.6758936924963282e-02 8.2014820752740830e-02 1.0325214502289962e+01 1.0326639449062938e+01 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 -2.1522575615476658e+01 -4.3850708113160948e+02 3.2110018097210530e+04 3.2113842334975812e+04 0 2 0 +P 341 -3122 -6.1950855666021008e-02 -1.8608321980917468e+00 1.4056162772703544e+02 1.4057838548480370e+02 1.1156800000000000e+00 2 0 0 -167 0 +P 342 111 -6.1144406211079527e-02 -6.4714570154417439e-01 4.3086981861879245e+01 4.3092096279523801e+01 1.3497999999999999e-01 2 0 0 -168 0 +V -103 0 0 0 0 0 0 2 0 +P 343 -311 2.3049720807893612e-01 2.8623903870378370e-01 1.6043582351245217e+01 1.6055505966499382e+01 4.9767000000000000e-01 2 0 0 -169 0 +P 344 111 4.3323721233431339e-02 -1.5003883936399090e-01 1.1853284016418417e+00 1.2031673276307036e+00 1.3497999999999999e-01 2 0 0 -170 0 +V -104 0 0 0 0 0 0 3 0 +P 345 211 -9.5026966603014729e-03 1.0472305562351994e-01 5.4539722523898408e+00 5.4567710538707095e+00 1.3957000000000000e-01 1 0 0 0 0 +P 346 -211 1.5951683483820989e-01 -1.9899631133411760e-01 1.3219014899412011e+01 1.3222211609571907e+01 1.3957000000000000e-01 1 0 0 0 0 +P 347 111 -7.4674051730606081e-02 -1.1330685333969616e-01 1.8391615088576583e+00 1.8490941871844135e+00 1.3497999999999999e-01 2 0 0 -171 0 +V -105 0 0 0 0 0 0 2 0 +P 348 211 9.4240763765740421e-02 -2.0039207547628959e-01 4.4634358422556447e-01 5.1743664882589113e-01 1.3957000000000000e-01 1 0 0 0 0 +P 349 -211 1.2820088924631756e-01 5.1534025291000973e-01 1.0318751511090531e+00 1.1688700341138147e+00 1.3957000000000000e-01 1 0 0 0 0 +V -106 0 1.7283871159768377e-04 -5.1237670737495545e-05 4.6694794270726891e-04 5.0505361596110525e-04 0 2 0 +P 350 22 2.0590099653440450e-01 -1.0805686291631406e-01 4.5142756285929947e-01 5.0779754873991134e-01 0 1 0 0 0 0 +P 351 22 1.4033350106869832e-01 5.4163779105943517e-03 4.8397333694826589e-01 5.0393751552023625e-01 0 1 0 0 0 0 +V -107 0 -5.9571695161317901e+00 1.2245768940169006e+01 2.8503800469478131e+02 2.9797787574076551e+02 0 2 0 +P 352 -2212 -2.0445056851432947e-01 3.2050366895688145e-02 2.9022963766333598e+00 3.0572049508829320e+00 9.3827000000000005e-01 1 0 0 0 0 +P 353 111 1.2185508809238729e-01 1.3773583207185866e-01 1.0497232649974710e+00 1.0742245367740775e+00 1.3497999999999999e-01 2 0 0 -172 0 +V -108 0 -9.6322276038832619e+00 9.1930061220952801e+00 1.6049331662647239e+02 1.6189071810331086e+02 0 2 0 +P 354 2212 -4.0557945128879624e-01 6.3010018115544275e-01 8.6263887815885774e+00 8.7095611217567726e+00 9.3827000000000005e-01 1 0 0 0 0 +P 355 111 -2.8752136302370007e-01 3.1395818652041142e-02 2.9221390377369709e+00 2.9395187340600821e+00 1.3497999999999999e-01 2 0 0 -173 0 +V -109 0 0 0 0 0 0 2 0 +P 356 22 8.2860331849337263e-02 2.5946703798069704e-01 5.8422378213656290e-01 6.4459786379308515e-01 0 1 0 0 0 0 +P 357 111 1.6254024186608135e-01 -5.4323460646157928e-01 1.7376202728837526e+00 1.8327757585203810e+00 1.3497999999999999e-01 2 0 0 -174 0 +V -110 0 0 0 0 0 0 2 0 +P 358 3122 8.2287967470987355e-01 -4.8977375048154131e-01 1.9007652783367175e+00 2.4030521824217304e+00 1.1156800000000000e+00 2 0 0 -175 0 +P 359 22 4.2440133887952043e-02 4.8963717863264443e-02 5.5112841739653869e-02 8.5064892617582183e-02 0 1 0 0 0 0 +V -111 0 1.9575759832658340e-06 -8.4215463207310107e-06 3.4437014986610818e-05 3.5510543948550919e-05 0 2 0 +P 360 22 3.8993041770294784e-01 -1.7748547164591819e+00 7.3603534731863398e+00 7.5813559635089769e+00 0 1 0 0 0 0 +P 361 22 6.5790980468783872e-02 -1.8567141221184214e-01 6.5654331790388576e-01 6.8545711368985129e-01 0 1 0 0 0 0 +V -112 0 -1.9123820769240353e-05 -1.0931279074538166e-04 4.2796901319070433e-04 4.4237576117062659e-04 0 2 0 +P 362 22 -2.8016866721716417e-02 -2.9039021747390238e-02 1.1296536115102888e-01 1.1995575194600025e-01 0 1 0 0 0 0 +P 363 22 -1.4452078978212046e-01 -9.5719552670846475e-01 3.7482280417359468e+00 3.8712172488618730e+00 0 1 0 0 0 0 +V -113 0 -5.2829075954546687e-05 -1.9728039359830118e-05 3.2116418888762709e-04 3.3253598813309538e-04 0 2 0 +P 364 22 -9.2677622365995471e-02 3.5763487191755067e-02 4.0184387193941451e-01 4.1394041372978913e-01 0 1 0 0 0 0 +P 365 22 -1.6658093635336459e-02 -7.6592884067167299e-02 2.6284154819225458e-01 2.7428022427690846e-01 0 1 0 0 0 0 +V -114 0 1.9026721056032020e-06 -6.6487627924737098e-05 3.1923840683783920e-04 3.2634509371974645e-04 0 2 0 +P 366 22 -5.2922013066489092e-03 -1.8495279301222559e-01 1.1983795218151989e+00 1.2125794907319167e+00 0 1 0 0 0 0 +P 367 22 2.5362907683383399e-02 -5.1640486805460895e-01 2.1691688376471201e+00 2.2299351360646953e+00 0 1 0 0 0 0 +V -115 0 8.3080161206741342e-07 8.9690026702319606e-06 -7.7220185387585991e-03 7.7220260674473792e-03 0 2 0 +P 368 22 1.2807334442024216e-02 1.6872475428951880e-01 -8.7236246335492766e+01 8.7236410441840746e+01 0 1 0 0 0 0 +P 369 22 6.1102140270908939e-03 3.5501549883767261e-02 -8.8595935336439027e+01 8.8595942660108562e+01 0 1 0 0 0 0 +V -116 0 0 0 0 0 0 1 0 +P 370 130 -2.5901715207887410e-01 -6.0542629745708865e-01 -4.0542979190677522e+02 4.0543063213315133e+02 4.9767000000000000e-01 1 0 0 0 0 +V -117 0 -2.5932220974105986e-05 -3.2182840041165912e-05 -2.1919063527299769e-02 2.1919107939990485e-02 0 2 0 +P 371 22 -1.3648486710504911e-02 -2.4201149018738738e-02 -4.4727716633536524e+01 4.4727725263272021e+01 0 1 0 0 0 0 +P 372 22 -2.1288484139337188e-01 -2.5693504327423017e-01 -1.4674830135649992e+02 1.4674868069795471e+02 0 1 0 0 0 0 +V -118 0 -6.3426606413962393e-05 2.4808356359595279e-05 -7.4879667489093568e-03 7.4883096167834978e-03 0 2 0 +P 373 22 -2.0640267653597780e-01 9.1527235463937567e-02 -3.1540598860155647e+01 3.1541407003444920e+01 0 1 0 0 0 0 +P 374 22 -1.7782037660169078e-01 5.8755791844814761e-02 -1.3819694063004073e+01 1.3820962930434334e+01 0 1 0 0 0 0 +V -119 0 -7.6594382175148806e-05 1.0311568830732706e-04 -3.2105301032281353e-03 3.2132543973279917e-03 0 2 0 +P 375 22 -1.4532360372654066e-01 1.8123345408859942e-01 -4.2544899258831723e+00 4.2608272722702969e+00 0 1 0 0 0 0 +P 376 22 -1.8149523905037179e-01 2.5874855200269725e-01 -9.4444486025079506e+00 9.4497354852067552e+00 0 1 0 0 0 0 +V -120 0 -2.6945611630769845e-05 -5.9334602571253519e-05 -5.3573371544319063e-04 5.4164571933427151e-04 0 2 0 +P 377 22 -5.1425758174186931e-02 -1.9143430287238708e-01 -1.4218012667249478e+00 1.4355523476978096e+00 0 1 0 0 0 0 +P 378 22 -2.7515104904687560e-02 1.7605450827771700e-02 -1.4770409307338708e-01 1.5127303793933949e-01 0 1 0 0 0 0 +V -121 0 -3.9050402682915103e-07 -1.2881513157305690e-06 -6.6667818902411055e-05 6.7019627241645576e-05 0 2 0 +P 379 22 -3.0608461630266422e-02 4.7117413463821520e-02 -7.5238235400289355e-01 7.5447739209987430e-01 0 1 0 0 0 0 +P 380 22 2.2770067252179792e-02 -7.2973838334351560e-02 -5.8580783350209997e-01 5.9077447036609565e-01 0 1 0 0 0 0 +V -122 0 0 0 0 0 0 3 0 +P 381 111 2.9839928828064254e-02 1.0831091175723169e-01 -6.6841704714606320e-01 6.9110247016893900e-01 1.3497999999999999e-01 2 0 0 -176 0 +P 382 111 9.4051595670043689e-02 -1.5755662152753916e-01 -9.1611447140274083e-01 9.4401012534229567e-01 1.3497999999999999e-01 2 0 0 -177 0 +P 383 111 -5.8991234477435692e-02 5.1879693076710056e-03 -4.7175090929207414e-01 4.9424224990242172e-01 1.3497999999999999e-01 2 0 0 -178 0 +V -123 0 1.5187813460115701e-06 1.3188082387851436e-05 -6.6229648474863657e-05 7.1493291597544587e-05 0 2 0 +P 384 22 5.5902947386336610e-02 8.1294574520283755e-02 -3.1554495833037971e-01 3.3060938900859188e-01 0 1 0 0 0 0 +P 385 22 -4.7151088874938803e-02 -5.2992830333063673e-03 -6.6098201979547425e-02 8.1365102394629227e-02 0 1 0 0 0 0 +V -124 0 1.3941114862900531e+02 -3.8582616698811592e+01 -3.8025609716628168e+02 4.1577110253421068e+02 0 2 0 +P 386 211 3.9155250151203191e-01 -2.1528995768384931e-01 -1.5735145062373210e+00 1.6416731750135662e+00 1.3957000000000000e-01 1 0 0 0 0 +P 387 -211 4.1789588401695882e-01 -8.7282582441069474e-03 -6.3432673863972289e-01 7.7237513464870078e-01 1.3957000000000000e-01 1 0 0 0 0 +V -125 0 8.4498806531586952e-06 -1.1900512863807261e-05 -6.7398973710353891e-05 6.9967903545644137e-05 0 2 0 +P 388 22 -2.6630265638253693e-02 -6.5818770699674248e-02 -3.0798444672715158e-01 3.1606281187480750e-01 0 1 0 0 0 0 +P 389 22 1.2307273012265166e-01 -7.0007383103435336e-02 -4.6127175879284371e-01 4.8251379881686041e-01 0 1 0 0 0 0 +V -126 0 7.8004833521485510e-05 1.1576629387707435e-05 -3.0620108155017886e-04 3.1874407920848768e-04 0 2 0 +P 390 22 1.9933684671653129e-01 7.6146875018833646e-02 -6.2136899240287891e-01 6.5698778508720601e-01 0 1 0 0 0 0 +P 391 22 6.2267559322930169e-02 -3.7322393019573769e-02 -4.0553598837003274e-01 4.1198258194734583e-01 0 1 0 0 0 0 +V -127 0 -8.7813863521750088e-06 1.2034602514798763e-05 -1.5143311212175529e-04 1.6721408133485042e-04 0 2 0 +P 392 22 -2.3942903281016213e-03 -3.0130749814585231e-02 -5.2283330825283574e-03 3.0674585203165079e-02 0 1 0 0 0 0 +P 393 22 -1.4702427472264043e-02 5.3561241855756364e-02 -2.8960087494286813e-01 2.9487901717548981e-01 0 1 0 0 0 0 +V -128 0 -2.1423274294986983e-09 -5.6955749109414071e-08 -1.2016903773209067e-06 1.2236738425450761e-06 0 2 0 +P 394 22 2.9979179212612915e-02 -5.2589578798866686e-02 -6.6790136325526994e-01 6.7063898337537198e-01 0 1 0 0 0 0 +P 395 22 -3.1271496752553057e-02 1.8232125983285968e-02 -5.6995088522171715e-02 6.7518568132518497e-02 0 1 0 0 0 0 +V -129 0 6.4230189101412486e-04 2.1134687592085452e-04 -1.2311020831505474e-03 1.4158196050410717e-03 0 2 0 +P 396 22 4.7543339096574699e-01 1.2513612268912652e-01 -8.8650115517581829e-01 1.0136963335116276e+00 0 1 0 0 0 0 +P 397 22 1.1406207269271662e-02 3.5056505732190810e-02 -4.6625855552734644e-02 5.9439301513772705e-02 0 1 0 0 0 0 +V -130 0 6.1987795725867684e-06 9.5499117210155789e-07 -4.4541397254386405e-06 9.4731035377011082e-06 0 2 0 +P 398 22 3.1268929850001737e-02 -1.5940111577112004e-02 2.8161984871342943e-02 4.4999228026143444e-02 0 1 0 0 0 0 +P 399 22 1.2007827458552617e-01 3.9256837468990093e-02 -1.3691268131352266e-01 1.8629270951908428e-01 0 1 0 0 0 0 +V -131 0 -6.1020743762232836e-06 2.3286883231540951e-05 3.1154149503248974e-05 4.0116565936475085e-05 0 2 0 +P 400 22 9.8091349468157167e-03 2.8377074072342766e-02 2.8749442920756804e-03 3.0161942344527581e-02 0 1 0 0 0 0 +P 401 22 -1.1681959734655756e-01 3.7999883038497267e-01 5.4346712538239117e-01 6.7335165091470495e-01 0 1 0 0 0 0 +V -132 0 0 0 0 0 0 1 0 +P 402 310 6.3943275598408489e-01 1.2113139656898524e+00 3.6184751514319600e+00 3.9009221503807563e+00 4.9767000000000000e-01 2 0 0 -179 0 +V -133 0 2.1682042467538229e-04 5.8286243176109223e-04 1.5576230338453930e-03 1.6773997708551909e-03 0 2 0 +P 403 22 2.4201269272194240e-02 6.6012324731882441e-02 2.3795568295198377e-01 2.4812544307272844e-01 0 1 0 0 0 0 +P 404 22 1.0510982471609078e+00 2.8246364319896307e+00 7.4869221627889990e+00 8.0707733191912254e+00 0 1 0 0 0 0 +V -134 0 3.4028799303023395e-07 6.8044664732665194e-05 2.3824180161942965e-04 2.4828257593497463e-04 0 2 0 +P 405 22 -1.8724816343446530e-02 1.8332032364017255e-02 1.8532644632463863e-01 1.8716990640861672e-01 0 1 0 0 0 0 +P 406 22 2.1601819009504697e-02 5.5695914997728446e-01 1.8289153502253255e+00 1.9119627328004498e+00 0 1 0 0 0 0 +V -135 0 -2.8410493234902523e-07 4.9653121634296811e-06 1.2557293115166877e-05 1.3560118830762203e-05 0 2 0 +P 407 22 -4.4743249094535947e-02 1.9716395208185372e-01 6.6189268680366531e-01 6.9208201189183216e-01 0 1 0 0 0 0 +P 408 22 1.2964127804323806e-02 3.5824089844551110e-01 7.4272826674382830e-01 8.2471200315568660e-01 0 1 0 0 0 0 +V -136 0 1.2820883171547144e-04 3.9619298966311092e-04 1.2949937227216559e-03 1.3632177937560695e-03 0 2 0 +P 409 22 9.5401467154298369e-02 1.4201353519440010e-01 4.1464312309795665e-01 4.4855122744902953e-01 0 1 0 0 0 0 +P 410 22 9.8717857676942675e-02 4.5785711823261399e-01 1.5460900319572877e+00 1.6154791063515139e+00 0 1 0 0 0 0 +V -137 0 2.1777252934043211e-04 2.7706919009262037e-04 2.5559848756957063e-03 2.5836416730343919e-03 0 2 0 +P 411 22 2.2477690016267710e-01 2.0485754477111837e-01 1.9801073036459287e+00 2.0033262845698210e+00 0 1 0 0 0 0 +P 412 22 -5.3958177061138798e-03 7.4258186776740800e-02 5.9475707649892273e-01 5.9939917684096833e-01 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 413 130 -3.7995269441653340e-01 1.6535799088428479e-01 -6.1483584577768262e+00 6.1823696483920711e+00 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 0 0 0 0 0 1 0 +P 414 130 -3.9453058218165832e-01 2.5328290511276014e-01 -7.7255254295189668e-01 1.0316586018738949e+00 4.9767000000000000e-01 1 0 0 0 0 +V -140 0 5.1667498257619163e-05 1.1962214121015359e-05 6.6265382966993475e-05 8.6460256588212749e-05 0 2 0 +P 415 22 1.3628231428135446e-01 -3.0848081013764246e-02 1.8460013377020124e-01 2.3152037205414516e-01 0 1 0 0 0 0 +P 416 22 2.8685562368232276e-01 1.2881424518545415e-01 3.5808914774329187e-01 4.7655754776562892e-01 0 1 0 0 0 0 +V -141 0 1.4713679733888919e-04 2.5364571091757474e-04 -3.5805830609983571e-04 4.8528410808895716e-04 0 2 0 +P 417 22 1.5170505358038230e-01 1.4788339243534807e-01 -2.0395109752352847e-01 2.9407477148008737e-01 0 1 0 0 0 0 +P 418 22 -1.5653415608630622e-02 8.6652869458158130e-02 -1.2713140471466566e-01 1.5464845059124649e-01 0 1 0 0 0 0 +V -142 0 9.7597729456307835e-06 -2.4311387032276793e-06 -1.5958603367984514e-05 2.0536181575424412e-05 0 2 0 +P 419 22 1.7652769046773198e-01 -5.0690402920813803e-02 -2.6675987154484626e-01 3.2387091798549728e-01 0 1 0 0 0 0 +P 420 22 -1.4239926135551901e-02 1.0264865654100702e-02 1.3965196634240379e-03 1.7609464228449393e-02 0 1 0 0 0 0 +V -143 0 -2.1652244280857262e-08 6.8267089224883744e-08 1.3007207375452835e-05 1.3045179682912007e-05 0 2 0 +P 421 22 4.6650114506723746e-02 -3.2179447089061786e-02 1.2307133927841611e+00 1.2320175344437061e+00 0 1 0 0 0 0 +P 422 22 -4.9596190139431888e-02 4.1468091973747144e-02 5.3909006044410879e-01 5.4295255593644887e-01 0 1 0 0 0 0 +V -144 0 -3.5047386073016382e-05 5.9568512439212194e-05 7.1411357862754014e-04 7.1820668730872685e-04 0 2 0 +P 423 22 -1.6211167583281016e-02 1.6029005891738021e-01 1.5450176957825907e+00 1.5533947937415964e+00 0 1 0 0 0 0 +P 424 22 -1.2734670917005905e-01 8.3708998510534635e-02 1.3800686115077676e+00 1.3884573285618313e+00 0 1 0 0 0 0 +V -145 0 -7.8293712475779411e-06 5.6698396843146972e-06 9.7563357563170913e-05 1.0036958783961753e-04 0 2 0 +P 425 22 -4.4907714662178962e-04 2.5252550384878151e-03 5.2306614750949010e-01 5.2307243595291153e-01 0 1 0 0 0 0 +P 426 22 -4.8718143319626740e-02 3.3080446741616781e-02 8.9616398642579656e-02 1.0723279512724822e-01 0 1 0 0 0 0 +V -146 0 -5.4416939621261388e-05 3.5741612642758141e-05 4.9122987480755935e-03 4.9134773215459586e-03 0 2 0 +P 427 22 -2.6387009064352013e-02 8.4004864299616053e-02 5.9618585584390296e+00 5.9625087473567762e+00 0 1 0 0 0 0 +P 428 22 -5.9337350640484919e-02 -2.7700212109627198e-02 1.7766079519621116e+00 1.7778143991730293e+00 0 1 0 0 0 0 +V -147 0 -4.8810730286750834e+00 1.2545934191710093e+00 4.4352264291904982e+02 4.4621617285212420e+02 0 2 0 +P 429 211 -1.7457052418593882e-01 1.4834074360287047e-01 2.2901757748054155e+00 2.3058327581446125e+00 1.3957000000000000e-01 1 0 0 0 0 +P 430 -211 1.2468457532958163e-01 -1.3551844351094258e-01 2.2427512581060007e+00 2.2546229135917155e+00 1.3957000000000000e-01 1 0 0 0 0 +V -148 0 3.3734014604774782e+00 -1.1151308101528222e+01 9.5193318840002597e+04 9.5193333043762643e+04 0 2 0 +P 431 2212 8.1826167453099480e-02 -1.1732909246796693e-01 1.8196620878460528e+03 1.8196623353678799e+03 9.3827000000000005e-01 1 0 0 0 0 +P 432 -211 -7.5635894950737050e-03 -1.2815751709391118e-01 2.7593825627613575e+02 2.7593832143806401e+02 1.3957000000000000e-01 1 0 0 0 0 +V -149 0 5.5860599777425171e-05 -5.4550622136858487e-05 1.0130742338609310e-01 1.0130745626221979e-01 0 2 0 +P 433 22 5.3127991794322899e-02 -3.2276297017659527e-03 4.3064051628352409e+01 4.3064084521216841e+01 0 1 0 0 0 0 +P 434 22 2.6408053243379820e-01 -3.0654209014917899e-01 5.3221760294927924e+02 5.3221775674591811e+02 0 1 0 0 0 0 +V -150 0 -1.5319121601429257e+00 -1.1341243479074379e+00 2.3597355380886921e+01 2.3674761521425197e+01 0 3 0 +P 435 -11 -3.4448541147224727e+00 -2.1673819217200201e+00 5.1935029434568854e+01 5.2094259250861342e+01 5.1000000000000004e-04 1 0 0 0 0 +P 436 12 -4.2238184423944363e+00 -2.9424417727589072e+00 5.8151692879242468e+01 5.8379088640900576e+01 0 1 0 0 0 0 +P 437 -323 -9.9910486473977098e+00 -7.9642417228415239e+00 1.6194109235634318e+02 1.6244679657182928e+02 8.9113612264994757e-01 2 0 0 -180 0 +V -151 0 -3.0267907484688106e-04 -2.1667467318300509e-04 4.6924589888549329e-03 4.7072814206849970e-03 0 2 0 +P 438 22 -3.8616153777891304e-01 -3.2085121577077497e-01 6.9505767564859688e+00 6.9686859223044602e+00 0 1 0 0 0 0 +P 439 22 -1.0914836094260980e+00 -7.3693013073646418e-01 1.5957479430905517e+01 1.6011731707563854e+01 0 1 0 0 0 0 +V -152 0 -1.7062890829058920e-05 -2.8245053783665636e-05 3.1793469023735265e-04 3.1964635688822040e-04 0 2 0 +P 440 22 -1.0435465547979850e+00 -1.7996058853758738e+00 1.9566723582087082e+01 1.9676997801811968e+01 0 1 0 0 0 0 +P 441 22 -4.4284830510871187e-01 -6.6089762381432915e-01 8.1294326020695031e+00 8.1682663229164856e+00 0 1 0 0 0 0 +V -153 0 -3.1542001895608145e-05 5.3968764619798570e-06 3.4264526572323572e-04 3.4669349205948460e-04 0 2 0 +P 442 22 -8.0791166844111639e-02 -3.2189915652128150e-02 3.3426949576462373e-01 3.4539759569003958e-01 0 1 0 0 0 0 +P 443 22 -2.0504908268697278e-02 4.9521802362317624e-02 7.6612421699404609e-01 7.6799685939270645e-01 0 1 0 0 0 0 +V -154 0 9.1194079493466010e-06 -2.2055972303718910e-05 7.1746026337098247e-05 8.8525564591978662e-05 0 2 0 +P 444 22 4.4375559630183692e-02 -8.1141214280723017e-02 6.7063784646850977e-02 1.1423938969813084e-01 0 1 0 0 0 0 +P 445 22 -1.7639118184421713e-02 1.6477124758334672e-02 1.4328248374937363e-01 1.4530142559526124e-01 0 1 0 0 0 0 +V -155 0 0 0 0 0 0 3 0 +P 446 -211 -1.2083893186628652e-02 -3.0447187204953679e-03 2.1866051202995368e-01 2.5970655595851694e-01 1.3957000000000000e-01 1 0 0 0 0 +P 447 211 -3.9017277570356779e-02 6.7873350480066846e-02 9.7799031246865564e-01 9.9099645601633257e-01 1.3957000000000000e-01 1 0 0 0 0 +P 448 111 -5.9149728770745383e-02 -5.5443048548393381e-02 1.1932323674186009e+00 1.2035762149117901e+00 1.3497999999999999e-01 2 0 0 -181 0 +V -156 0 0 0 0 0 0 1 0 +P 449 130 2.1723555449960955e-01 2.5511909827769035e+00 2.9876035175259780e+01 2.9989680224020404e+01 4.9767000000000000e-01 1 0 0 0 0 +V -157 0 0 0 0 0 0 1 0 +P 450 130 7.4141747198539887e-01 1.8100047541943822e+00 1.5235835672865862e+01 1.5368935589605529e+01 4.9767000000000000e-01 1 0 0 0 0 +V -158 0 1.7351913697729272e-03 3.7488501266216717e-03 4.1245152398448455e-02 4.1451563116734411e-02 0 2 0 +P 451 22 1.0308594459127123e+00 2.3659970894042619e+00 2.5530134555087137e+01 2.5660249099047178e+01 0 1 0 0 0 0 +P 452 22 2.3775344209412506e+00 4.9977773056955250e+00 5.5486707115077145e+01 5.5762040084581187e+01 0 1 0 0 0 0 +V -159 0 0 0 0 0 0 1 0 +P 453 310 8.3836765391802071e-01 1.1061415327090975e+00 -2.0993031465343575e+00 2.5653768813702778e+00 4.9767000000000000e-01 2 0 0 -182 0 +V -160 0 0 0 0 0 0 1 0 +P 454 130 1.6058894356953304e-02 -3.9658053507255009e-01 -2.7554049904710340e+00 2.8279791546790221e+00 4.9767000000000000e-01 1 0 0 0 0 +V -161 0 -1.9621188813682868e-04 -7.8154448263063547e-05 1.0094015110836691e-03 1.0361626189904641e-03 0 2 0 +P 455 22 -2.3254182817736807e-01 -1.2491575400732739e-01 1.0094632796952816e+00 1.0434058464971556e+00 0 1 0 0 0 0 +P 456 22 -3.0543733551068413e-02 2.0124412778677454e-02 3.4396625036352763e-01 3.4590561290339050e-01 0 1 0 0 0 0 +V -162 0 8.3568869810553821e-05 3.6048434114535610e-05 1.3830121728265946e-04 1.6778886609429203e-04 0 2 0 +P 457 22 2.4288492612237900e-01 9.0668436853967346e-02 2.7353811306807857e-01 3.7687790075813715e-01 0 1 0 0 0 0 +P 458 22 1.7104548388578150e-01 8.7885409177554094e-02 4.1149065068348356e-01 4.5420805618564708e-01 0 1 0 0 0 0 +V -163 0 1.3216006764163915e-07 -6.5515102303526367e-07 -4.1289011918747853e-06 4.8085900059113686e-06 0 2 0 +P 459 22 -3.5887241341837671e-03 -8.6583539240239468e-02 -1.1971285349112167e-01 1.4778618169255256e-01 0 1 0 0 0 0 +P 460 22 1.1108271846650846e-02 4.9307231316853314e-02 -1.1521037306587376e-01 1.2580948623029431e-01 0 1 0 0 0 0 +V -164 0 -1.5055072319461211e-05 -6.8390188808296272e-06 -3.5961330733259308e-06 1.7659698101569677e-05 0 2 0 +P 461 22 -4.0993083371611022e-01 -1.7677142719017691e-01 -1.0529647981044868e-01 4.5867066023728786e-01 0 1 0 0 0 0 +P 462 22 7.5508652443164728e-03 -6.0164162191805306e-03 9.1819024799394983e-03 1.3323669284824168e-02 0 1 0 0 0 0 +V -165 0 -2.7392401929328713e-06 4.6496102213396840e-06 1.8746016793834067e-05 1.9538825314188313e-05 0 2 0 +P 463 22 -1.0003731834853867e-01 2.5283097632200424e-01 1.1235326616057013e+00 1.1559656609714217e+00 0 1 0 0 0 0 +P 464 22 -2.3331628256149614e-01 3.1300633656152188e-01 1.1577759352332588e+00 1.2218242797723524e+00 0 1 0 0 0 0 +V -166 0 8.0199826021123069e-06 1.6344552188550145e-05 4.8541096624487993e-04 4.8601860918723636e-04 0 2 0 +P 465 22 8.3203992980317998e-03 1.3075378695986642e-01 2.0217898032967851e+00 2.0260305502542839e+00 0 1 0 0 0 0 +P 466 22 5.8968862511553477e-02 6.3802825188019703e-03 2.0509055145574835e+00 2.0517630137014415e+00 0 1 0 0 0 0 +V -167 0 -2.2176502920647817e+01 -4.5814924703217315e+02 3.3593727812626566e+04 3.3597728938269509e+04 0 2 0 +P 467 -2112 1.7006220476968738e-02 -1.4198676287057894e+00 1.1029194055578076e+02 1.1030508264191346e+02 9.3957000000000002e-01 1 0 0 0 0 +P 468 111 -7.8957076142989746e-02 -4.4096456938595763e-01 3.0269687171254702e+01 3.0273302842890274e+01 1.3497999999999999e-01 2 0 0 -183 0 +V -168 0 -2.1522583089730073e+01 -4.3850716023828937e+02 3.2110023364135854e+04 3.2113847602526319e+04 0 2 0 +P 469 22 -5.9972763472978974e-02 -9.9333440691246874e-02 7.7279221313918729e+00 7.7287932003421123e+00 0 1 0 0 0 0 +P 470 22 -1.1716427381005567e-03 -5.4781226085292756e-01 3.5359059730487374e+01 3.5363303079181698e+01 0 1 0 0 0 0 +V -169 0 0 0 0 0 0 1 0 +P 471 310 2.3049720807893612e-01 2.8623903870378370e-01 1.6043582351245217e+01 1.6055505966499382e+01 4.9767000000000000e-01 2 0 0 -184 0 +V -170 0 3.4914532678784311e-06 -1.2091611271883410e-05 9.5525467425175406e-05 9.6963104236280875e-05 0 2 0 +P 472 22 -2.8578799884222700e-03 -9.5650782111636912e-02 1.0001698534411347e+00 1.0047372668160850e+00 0 1 0 0 0 0 +P 473 22 4.6181601221853615e-02 -5.4388057252354009e-02 1.8515854820070704e-01 1.9843006081461845e-01 0 1 0 0 0 0 +V -171 0 -9.1930787284703778e-06 -1.3949140284832638e-05 2.2641809508738701e-04 2.2764090129283901e-04 0 2 0 +P 474 22 -5.6083499290132392e-02 -1.8008624103932162e-02 1.2949529474570507e+00 1.2962919445720726e+00 0 1 0 0 0 0 +P 475 22 -1.8590552440473678e-02 -9.5298229235763990e-02 5.4420856140060736e-01 5.5280224261234023e-01 0 1 0 0 0 0 +V -172 0 -5.9571323110808398e+00 1.2245810993961999e+01 2.8503832519848919e+02 2.9797820372525308e+02 0 2 0 +P 476 22 8.5402691888110185e-02 9.3794685734850029e-04 4.4832020929371880e-01 4.5638307329173206e-01 0 1 0 0 0 0 +P 477 22 3.6452396204277100e-02 1.3679788521451017e-01 6.0140305570375219e-01 6.1784146348234537e-01 0 1 0 0 0 0 +V -173 0 -9.6322483005437558e+00 9.1930083820616098e+00 1.6049352697091061e+02 1.6189092969879238e+02 0 2 0 +P 478 22 -2.5840597269925236e-01 2.3419710580106768e-02 2.8430324580141546e+00 2.8548477519637201e+00 0 1 0 0 0 0 +P 479 22 -2.9115390324447706e-02 7.9761080719343742e-03 7.9106579722816081e-02 8.4670982096361508e-02 0 1 0 0 0 0 +V -174 0 1.9362453383904747e-06 -6.4712311384416142e-06 2.0699238014152610e-05 2.1832768783954246e-05 0 2 0 +P 480 22 7.9982585631339087e-02 -3.0055554413619706e-01 7.3899963334118335e-01 8.0178008655346600e-01 0 1 0 0 0 0 +P 481 22 8.2557656234742274e-02 -2.4267906232538228e-01 9.9862063954256941e-01 1.0309956719669151e+00 0 1 0 0 0 0 +V -175 0 5.9189417978298913e+00 -3.5229237181331476e+00 1.3672131417971420e+01 1.7285061767891126e+01 0 2 0 +P 482 2112 6.4235137517222740e-01 -4.9497879877226753e-01 1.6667267978295450e+00 2.0780734597031976e+00 9.3957000000000002e-01 1 0 0 0 0 +P 483 111 1.8052829953764615e-01 5.2050482907261431e-03 2.3403848050717271e-01 3.2497872271853295e-01 1.3497999999999999e-01 2 0 0 -185 0 +V -176 0 3.2368107173649057e-05 1.1748751882197927e-04 -7.2504846587870763e-04 7.4965590405039033e-04 0 2 0 +P 484 22 3.3096438086071843e-02 9.5270032922071729e-02 -6.7001799393867234e-01 6.7756613373792551e-01 0 1 0 0 0 0 +P 485 22 -3.2565092580075930e-03 1.3040878835159950e-02 1.6009467926091832e-03 1.3536336431013284e-02 0 1 0 0 0 0 +V -177 0 1.7771818971166606e-05 -2.9771613501586606e-05 -1.7310732929777555e-04 1.7837844148214842e-04 0 2 0 +P 486 22 6.1558622792612913e-02 -1.6626655517397546e-01 -5.8726617661499658e-01 6.1344567290473251e-01 0 1 0 0 0 0 +P 487 22 3.2492972877430783e-02 8.7099336464362964e-03 -3.2884829478774430e-01 3.3056445243756311e-01 0 1 0 0 0 0 +V -178 0 -9.0319580215618126e-06 7.9431328093258927e-07 -7.2228263183565165e-05 7.5671839946126528e-05 0 2 0 +P 488 22 2.9573892989124079e-02 1.8632854481216092e-02 -3.9234195500013468e-02 5.2546365327999708e-02 0 1 0 0 0 0 +P 489 22 -8.8565127466559770e-02 -1.3444885173545086e-02 -4.3251671379206064e-01 4.4169588457442188e-01 0 1 0 0 0 0 +V -179 0 3.8965967184924509e+01 7.3815455645638423e+01 2.2050384921737077e+02 2.3771569892247584e+02 0 2 0 +P 490 -211 3.4370582722418813e-01 9.0073938794577968e-01 2.0637289851098379e+00 2.2820872572159208e+00 1.3957000000000000e-01 1 0 0 0 0 +P 491 211 2.9572692875989670e-01 3.1057457774407260e-01 1.5547461663221218e+00 1.6188348931648355e+00 1.3957000000000000e-01 1 0 0 0 0 +V -180 0 -1.5319121601429257e+00 -1.1341243479074379e+00 2.3597355380886921e+01 2.3674761521425197e+01 0 2 0 +P 492 -311 -5.3510513540338858e+00 -4.2539020075613285e+00 9.0128199084237636e+01 9.0388436088253655e+01 4.9767000000000000e-01 2 0 0 -186 0 +P 493 -211 -4.6399972933638240e+00 -3.7103397152801953e+00 7.1812893272105555e+01 7.2058360483575626e+01 1.3957000000000000e-01 1 0 0 0 0 +V -181 0 -6.5602296668407379e-06 -6.1491259464092745e-06 1.3234005529448296e-04 1.3348727974680637e-04 0 2 0 +P 494 22 1.9370444762873518e-02 5.2687557162780880e-03 2.9877395026023861e-02 3.5994897564105149e-02 0 1 0 0 0 0 +P 495 22 -7.8520173533618898e-02 -6.0711804264671466e-02 1.1633549723925771e+00 1.1675813173476850e+00 0 1 0 0 0 0 +V -182 0 5.7856733218161665e+01 7.6336122058612588e+01 -1.4487536765697124e+02 1.7703966169953557e+02 0 2 0 +P 496 -211 7.3723989960307834e-01 1.0190140014707236e+00 -1.6758967864123988e+00 2.1000052448428641e+00 1.3957000000000000e-01 1 0 0 0 0 +P 497 211 1.0112775431494231e-01 8.7127531238373843e-02 -4.2340636012195859e-01 4.6537163652741326e-01 1.3957000000000000e-01 1 0 0 0 0 +V -183 0 -2.2176503811378527e+01 -4.5814925200678346e+02 3.3593728154105018e+04 3.3597729279788749e+04 0 2 0 +P 498 22 -1.6452711791992366e-02 -3.6019051458233342e-01 2.5273229778463250e+01 2.5275801695169278e+01 0 1 0 0 0 0 +P 499 22 -6.2504364350997391e-02 -8.0774054803624262e-02 4.9964573927914531e+00 4.9975011477210005e+00 0 1 0 0 0 0 +V -184 0 8.3204896062159062e+00 1.0332658544013446e+01 5.7914133239431510e+02 5.7957175112961193e+02 0 2 0 +P 500 111 2.3112168034984848e-01 1.3399634313306413e-01 4.4107569879031141e+00 4.4209013852196390e+00 1.3497999999999999e-01 2 0 0 -187 0 +P 501 111 -6.2447227091235033e-04 1.5224269557071959e-01 1.1632825363342103e+01 1.1634604581279744e+01 1.3497999999999999e-01 2 0 0 -188 0 +V -185 0 5.9191423123642126e+00 -3.5229179368354964e+00 1.3672391366783058e+01 1.7285422724912362e+01 0 2 0 +P 502 22 1.3849160653925421e-01 4.8985762220871587e-02 9.9620470836708538e-02 1.7749300885361896e-01 0 1 0 0 0 0 +P 503 22 4.2036692998391960e-02 -4.3780713930145439e-02 1.3441800967046419e-01 1.4748571386491399e-01 0 1 0 0 0 0 +V -186 0 -1.5319121601429257e+00 -1.1341243479074379e+00 2.3597355380886921e+01 2.3674761521425197e+01 0 1 0 +P 504 310 -5.3510513540338858e+00 -4.2539020075613285e+00 9.0128199084237636e+01 9.0388436088253655e+01 4.9767000000000000e-01 2 0 0 -189 0 +V -187 0 8.3205058018096860e+00 1.0332667933657628e+01 5.7914164147318786e+02 5.7957206091934199e+02 0 2 0 +P 505 22 1.4556432632519314e-01 1.1477835496819101e-01 2.0062005312401254e+00 2.0147465387526720e+00 0 1 0 0 0 0 +P 506 22 8.5557354024655349e-02 1.9217988164873117e-02 2.4045564566629887e+00 2.4061548464669662e+00 0 1 0 0 0 0 +V -188 0 8.3204895606801834e+00 1.0332669645357106e+01 5.7914218064513989e+02 5.7957259951017500e+02 0 2 0 +P 507 22 -5.3429310476486372e-02 1.0250131131284537e-01 4.7891381981192582e+00 4.7905329443313311e+00 0 1 0 0 0 0 +P 508 22 5.2804838205574023e-02 4.9741384257874215e-02 6.8436871652228444e+00 6.8440716369484100e+00 0 1 0 0 0 0 +V -189 0 -3.2981548940590801e+02 -2.6210829108664274e+02 5.5529047098669216e+03 5.5689474897177488e+03 0 2 0 +P 509 -211 -1.7367273505747305e+00 -1.5458641657711161e+00 2.8848140564360470e+01 2.8942021555434749e+01 1.3957000000000000e-01 1 0 0 0 0 +P 510 211 -3.6143240034591551e+00 -2.7080378417902127e+00 6.1280058519877166e+01 6.1446414532818906e+01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 5 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 218 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 21 3.2992939111429004e-01 -7.1181912190923491e-01 9.0096214824555136e+02 9.0096248984688827e+02 0 3 0 0 -3 0 +P 14 2 -5.5365822308336554e-01 3.4509673924388229e-01 2.5091064739376443e+00 2.6134545117488437e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 29 2101 2.2372883196907553e-01 3.6672238266535262e-01 5.3966101099142470e+03 5.3966101581077546e+03 5.7933000000000001e-01 2 0 0 -25 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 -4.4604738137447780e-01 -4.4508489499117149e-01 -3.3991077613470765e+01 3.3996917744924559e+01 0 3 0 0 -4 0 +P 16 2203 2.3781727192142083e-01 1.3771298185638053e-01 -6.2853045277091305e+03 6.2853045810455988e+03 7.7132999999999996e-01 2 0 0 -11 0 +P 37 1 2.0823010945305698e-01 3.0737191313479095e-01 -7.4415207898946619e+01 7.4416865722193066e+01 3.3000000000000002e-01 2 0 0 -25 0 +V -3 0 0 0 0 0 0 5 0 +P 5 1 -3.0085522013949689e-01 1.1399974905881729e+00 5.0422379313784262e+02 5.0422517159941145e+02 0 3 0 0 -5 0 +P 13 -1 1.2673117148687165e+00 -1.3842638091505211e+00 7.8698417845006162e+01 7.8721484593363400e+01 3.3000000000000002e-01 2 0 0 -9 0 +P 30 21 -4.6149507887473545e-01 -2.2715799945074164e-01 5.7059132312250952e+01 5.7061450723684736e+01 0 2 0 0 -25 0 +P 31 21 -4.0362956554163681e-01 1.1673687347620827e+00 1.4998499597455123e+02 1.4999008195235854e+02 0 2 0 0 -25 0 +P 32 21 2.5074276787416866e-01 -1.3942091873039719e+00 1.0761474191487194e+02 1.0762406500684733e+02 0 2 0 0 -25 0 +V -4 0 0 0 0 0 0 4 0 +P 6 -2 3.6455143299337252e+00 3.8342312877411899e+00 -1.8047247107697999e+00 5.5900031824060150e+00 0 3 0 0 -5 0 +P 15 2 -4.1159171909325689e+00 -3.0147215458824776e+00 -2.9604825409076863e+01 3.0043034264596933e+01 3.3000000000000002e-01 2 0 0 -11 0 +P 35 21 -1.6212560032512757e-01 -8.5363446188281877e-01 8.8578769426193138e-01 1.2408047163436402e+00 0 2 0 0 -25 0 +P 36 21 1.6433585287674621e-01 -4.2451452632135017e-01 -8.6248126834592029e-02 4.6331155282492553e-01 0 2 0 0 -25 0 +V -5 0 0 0 0 0 0 2 0 +P 7 -24 -9.0579211800333426e-01 3.7016351602104836e+00 4.9106971928988440e+02 4.9762938157847765e+02 8.0442586013329560e+01 3 0 0 -6 0 +P 8 22 4.2504512277975630e+00 1.2725936181188806e+00 1.1349349137188561e+01 1.2185793203339950e+01 0 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 -24 -9.0579211800333426e-01 3.7016351602104836e+00 4.9106971928988440e+02 4.9762938157847765e+02 8.0442586013329560e+01 2 0 0 -8 0 +V -7 0 0 0 0 0 0 1 0 +P 10 22 4.2504512277975630e+00 1.2725936181188806e+00 1.1349349137188561e+01 1.2185793203339923e+01 0 1 0 0 0 0 +V -8 0 0 0 0 0 0 2 0 +P 11 11 -3.1560318019062390e+01 2.6910330199055338e+01 2.8518798748746264e+02 2.8818814644654589e+02 5.1000000000000004e-04 1 0 0 0 0 +P 12 -12 3.0654525901059060e+01 -2.3208695038844859e+01 2.0588173180242171e+02 2.0944123513193171e+02 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 1 0 +P 46 92 7.1365349178535098e-01 -1.0391670699066387e+00 8.1207524318943811e+01 8.1334939105112241e+01 4.3727730006198762e+00 2 0 0 -10 0 +V -10 0 0 0 0 0 0 5 0 +P 47 111 -1.2987933502875690e-01 -2.5113340363148784e-01 2.5317152752162979e+00 2.5510269428703771e+00 1.3497999999999999e-01 2 0 0 -35 0 +P 48 213 7.4830653663342495e-01 -1.7382372879353764e-02 4.3774839145295914e+01 4.3790551134415779e+01 9.0308451414957169e-01 2 0 0 -36 0 +P 49 -213 -2.9117511823875525e-01 -4.3939165795158736e-01 1.4260854072619713e+01 1.4288861360745033e+01 7.2232411525528162e-01 2 0 0 -37 0 +P 50 213 -2.1069355383734140e-01 -2.7656697558868826e-01 1.5627412790254821e+01 1.5654259573374869e+01 8.4789811178222296e-01 2 0 0 -38 0 +P 51 111 5.9709496225677960e-01 -5.4692659855521464e-02 5.0127030355570623e+00 5.0502400937061882e+00 1.3497999999999999e-01 2 0 0 -39 0 +V -11 0 0 0 0 0 0 1 0 +P 52 92 -3.8780999190111483e+00 -2.8770085640260969e+00 -6.3149093531182070e+03 6.3153476153101956e+03 7.4243163100063839e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 10 0 +P 53 113 -2.6442133118282958e+00 -2.3165293324998335e+00 -2.2580063872574136e+01 2.2865503691765191e+01 7.8345542426979031e-01 2 0 0 -40 0 +P 54 221 -5.1630481154154895e-01 1.5967696321760094e-02 -2.0035205258790207e+01 2.0049338564902872e+01 5.4744999999999999e-01 2 0 0 -41 0 +P 55 211 -8.7519077897546693e-01 -6.7220077889196328e-01 -6.5156567288365199e+00 6.6099224790975617e+00 1.3957000000000000e-01 1 0 0 0 0 +P 56 111 1.9202974635290213e-01 2.5211810958452568e-01 -9.4217139466307191e+00 9.4280089232669173e+00 1.3497999999999999e-01 2 0 0 -42 0 +P 57 -213 9.4326428486984373e-02 -4.8155754348202640e-01 -4.3195836080971688e+01 4.3206533032295752e+01 8.2670840923091482e-01 2 0 0 -43 0 +P 58 321 -4.2092082351619076e-01 7.6023322511133951e-01 -5.4832750693731569e+01 5.4841857358199974e+01 4.9359999999999998e-01 1 0 0 0 0 +P 59 -323 5.3330045068290033e-01 -4.0351878893496296e-01 -6.3591499500441905e+01 6.3601150529299844e+01 8.8334769611541319e-01 2 0 0 -44 0 +P 60 111 -4.7209376929507818e-01 -5.2551861933480060e-01 -3.3238644448347941e+01 3.3246424570325850e+01 1.3497999999999999e-01 2 0 0 -45 0 +P 61 2224 6.8188613475259922e-03 3.7782727808420416e-02 -9.1247280998350175e+02 9.1247367669780419e+02 1.2570732634256450e+00 2 0 0 -46 0 +P 62 111 2.2414808927512009e-01 4.5621474029144382e-01 -5.1490251726043825e+03 5.1490251994632381e+03 1.3497999999999999e-01 2 0 0 -47 0 +V -13 0 0 0 0 0 2 1 0 +P 17 2 -3.6919233007313528e+00 8.1942682496522661e+00 2.9565764077792278e+02 2.9579421373680213e+02 0 2 0 0 -13 0 +P 18 -2 3.6919233007313528e+00 -8.1942682496522661e+00 1.0292203617146285e+02 1.0331370605822661e+02 0 2 0 0 -13 0 +P 63 92 0 0 3.9857967694938566e+02 3.9910791979502875e+02 2.0527366271357579e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 7 0 +P 64 213 -1.5835447595257053e+00 3.0390962863600426e+00 1.0583303842892066e+02 1.0589013999419520e+02 5.8822159912046279e-01 2 0 0 -48 0 +P 65 -213 -1.1443922070689834e+00 2.4049085538196557e+00 9.6289570725061836e+01 9.6329373550777277e+01 7.5733717238090137e-01 2 0 0 -49 0 +P 66 213 -3.0046508081645801e-01 1.7803118867427987e+00 5.7444662891378144e+01 5.7478363119977544e+01 7.8303420682014024e-01 2 0 0 -50 0 +P 67 -213 -2.5016439277491315e-01 3.1350862441051930e-01 4.0612390002610852e+01 4.0622507641923903e+01 8.1304090487992176e-01 2 0 0 -51 0 +P 68 213 3.3250187937355535e-01 -8.3151583915031479e-01 6.8897046607273635e+00 6.9760920973408034e+00 6.2916972907766511e-01 2 0 0 -52 0 +P 69 223 1.8182876739207015e+00 -4.9227019655990896e+00 6.7504589614192298e+01 6.7712745517919686e+01 7.7918026591325340e-01 2 0 0 -53 0 +P 70 -211 1.1277768868918030e+00 -1.7836075465836119e+00 2.4005720626494561e+01 2.4098697872894373e+01 1.3957000000000000e-01 1 0 0 0 0 +V -15 0 0 0 0 0 2 1 0 +P 19 1 4.0721905699000063e+00 -5.2481001487683923e+00 5.1379595964107374e+01 5.1807221240325212e+01 0 2 0 0 -15 0 +P 20 -1 -4.0721905699000063e+00 5.2481001487683923e+00 3.4479876218613377e+01 3.5113916831649327e+01 0 2 0 0 -15 0 +P 71 92 0 0 8.5859472182720751e+01 8.6921138071974539e+01 1.3543828123239873e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 8 0 +P 72 -211 4.1720297738051321e-01 -9.7235207672939661e-01 7.5602071648272782e+00 7.6351646377442872e+00 1.3957000000000000e-01 1 0 0 0 0 +P 73 211 2.6665249123579446e+00 -2.9349752846126558e+00 3.2950695340201079e+01 3.3188736616767464e+01 1.3957000000000000e-01 1 0 0 0 0 +P 74 111 3.6072230697643126e-01 -6.2146570580823457e-01 3.1338517615404928e+00 3.2180097373930638e+00 1.3497999999999999e-01 2 0 0 -54 0 +P 75 113 -4.4948408298591003e-01 -3.3788088157719054e-03 8.4523847160801058e+00 8.4982551917835956e+00 7.5860830396560419e-01 2 0 0 -55 0 +P 76 -213 -2.7928243095832456e-01 3.3421120888543193e-01 4.9816177588983468e+00 5.0588216417181506e+00 7.6515691106980155e-01 2 0 0 -56 0 +P 77 213 -3.0578817058647956e-01 7.0283103003245251e-01 4.1808064202695698e+00 4.3325688354318341e+00 8.3936435946542598e-01 2 0 0 -57 0 +P 78 -211 -3.2872639824348276e-01 9.2343958879558319e-01 4.7634610442269851e+00 4.8652690186489309e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 213 -2.0811691139406925e+00 2.5716900482525915e+00 1.9836447976676894e+01 2.0124312392487205e+01 7.4727930113389407e-01 2 0 0 -58 0 +V -17 0 0 0 0 0 2 1 0 +P 21 3 -1.8652550805155896e+00 -4.6351934290813315e+00 -2.5073948479495525e+00 5.5902793815615270e+00 0 2 0 0 -17 0 +P 22 -3 1.8652550805155896e+00 4.6351934290813315e+00 -3.8523971426252422e+02 3.8527211375820042e+02 0 2 0 0 -17 0 +P 80 92 0 0 -3.8774710911047379e+02 3.9086239313976193e+02 4.9250276622696788e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 10 0 +P 81 -313 -1.6233937553850981e+00 -4.1954492475589094e+00 -2.4490241228785110e+00 5.1978988434783595e+00 8.8500370548764440e-01 2 0 0 -59 0 +P 82 -211 -4.2766056399724119e-02 2.0905450136158240e-02 -1.4002124745972655e-01 2.0335119391229980e-01 1.3957000000000000e-01 1 0 0 0 0 +P 83 323 -4.4702319815240105e-01 -4.8462854486530810e-01 -3.3690973393284223e+00 3.5379978508332535e+00 8.5552167970554593e-01 2 0 0 -60 0 +P 84 333 2.9235882051604356e-01 4.1909099446358361e-01 -1.1614528740318077e+01 1.1670274542743341e+01 1.0182922477141036e+00 2 0 0 -61 0 +P 85 -313 -1.9559777497210154e-01 3.2725284319419412e-01 -4.0791168457425862e+01 4.0802601861674923e+01 8.8743543275557690e-01 2 0 0 -62 0 +P 86 -213 4.2480750680325324e-01 4.0902356994726946e-01 -2.7722906134034435e+01 2.7734649552550263e+01 5.5090796661843766e-01 2 0 0 -63 0 +P 87 113 3.6771897497445705e-01 4.4681480751080627e-01 -2.0704917165556715e+01 2.0730406353871473e+01 8.4928914234349040e-01 2 0 0 -64 0 +P 88 211 -2.8978227338924745e-01 -7.0628302343640245e-02 -1.4183290555585218e+01 1.4187112916027539e+01 1.3957000000000000e-01 1 0 0 0 0 +P 89 -211 -1.9540105972758251e-02 2.5692526030371343e-01 -1.4545461008205347e+01 1.4548412563961943e+01 1.3957000000000000e-01 1 0 0 0 0 +P 90 323 1.5332178619775767e+00 2.8706931692121325e+00 -2.5222669433968153e+02 2.5224968746070860e+02 1.0039174358388165e+00 2 0 0 -65 0 +V -19 0 0 0 0 0 2 1 0 +P 23 3 1.3025773740614568e-01 -4.3032393523974077e+00 2.5316489086932532e+00 4.9944050896041228e+00 0 2 0 0 -19 0 +P 24 -3 -1.3025773740614568e-01 4.3032393523974077e+00 -3.3157804489828713e+01 3.3436130676079749e+01 0 2 0 0 -19 0 +P 91 92 0 0 -3.0626155581135460e+01 3.8430535765683871e+01 2.3215181962620765e+01 2 0 0 -20 0 +V -20 0 0 0 0 0 0 9 0 +P 92 -311 2.2891228831712537e-01 -1.3418287413741594e+00 9.8860382248171286e-01 1.7543996561917701e+00 4.9767000000000000e-01 2 0 0 -66 0 +P 93 -213 -3.7639146848800681e-01 -1.5406289235386026e+00 1.6502657513639488e-01 1.7867414552349492e+00 8.0622778404095086e-01 2 0 0 -67 0 +P 94 2114 1.6153252959411044e-01 -1.2772848818918856e+00 5.2372112884638644e-01 1.9163288714391824e+00 1.3192736998381318e+00 2 0 0 -68 0 +P 95 211 2.5979025784637988e-01 2.2354774310929568e-01 -6.7894811146840361e-01 7.7324956804880274e-01 1.3957000000000000e-01 1 0 0 0 0 +P 96 -2214 -1.8636538951424170e-01 2.9256938238575925e-01 -4.5902650063153603e+00 4.7327213645256432e+00 1.0989948972200578e+00 2 0 0 -69 0 +P 97 111 2.4447109857296742e-01 3.3083128753819330e-01 -2.0318743236789594e+00 2.0774860592739199e+00 1.3497999999999999e-01 2 0 0 -70 0 +P 98 213 -2.7401510515621635e-01 2.8125233782844189e-01 -1.7321877321484938e+00 1.8713869334189455e+00 5.8942985993049790e-01 2 0 0 -71 0 +P 99 111 -1.0109282624214720e-01 5.2155147439574179e-01 -1.7600692215106526e+00 1.8434475758402007e+00 1.3497999999999999e-01 2 0 0 -72 0 +P 100 313 4.3158615070028994e-02 2.5099903215472157e+00 -2.1510162712478085e+01 2.1674774281710462e+01 8.9823502798501531e-01 2 0 0 -73 0 +V -21 0 0 0 0 0 2 1 0 +P 25 2 -2.8388113750031851e+00 2.9291876839233497e+00 -2.8168940832775746e+00 4.9572051386744045e+00 0 2 0 0 -21 0 +P 26 -2 2.8388113750031851e+00 -2.9291876839233497e+00 6.3131813241358550e+01 6.3263455751739258e+01 0 2 0 0 -21 0 +P 101 92 0 0 6.0314919158080976e+01 6.8220660890413654e+01 3.1877407348763036e+01 2 0 0 -22 0 +V -22 0 0 0 0 0 0 10 0 +P 102 213 -1.2382245544498864e+00 1.4759587873216322e+00 -1.5264135160047374e+00 2.5739330296056240e+00 7.6389700217915013e-01 2 0 0 -74 0 +P 103 221 -8.9982101828616334e-01 5.4142902707731055e-01 -5.3645233237309187e-01 1.3001176345700249e+00 5.4744999999999999e-01 2 0 0 -75 0 +P 104 -211 -8.6753321823725624e-03 5.6832963889609747e-02 9.7176499890667928e-02 1.7952243370663501e-01 1.3957000000000000e-01 1 0 0 0 0 +P 105 321 -4.0054756700537497e-01 4.1344381052312046e-01 1.2388557587843947e-01 7.6835065810119207e-01 4.9359999999999998e-01 1 0 0 0 0 +P 106 -313 -4.3881953299186965e-01 1.5849794511534281e-02 1.5502399495560006e+00 1.8454355154493816e+00 8.9976360337661621e-01 2 0 0 -76 0 +P 107 -213 2.6975585621736647e-01 -2.0224994353228565e-01 1.4308574448043745e-01 8.2389832737315261e-01 7.3801196599538910e-01 2 0 0 -77 0 +P 108 213 7.7555631014750070e-01 1.3582975137081782e-01 4.8071584803948841e+00 4.9465123732681642e+00 8.5981084646306349e-01 2 0 0 -78 0 +P 109 -211 1.6084505806401775e-01 -9.8786281136593837e-02 1.3415766842308592e+01 1.3417820598522365e+01 1.3957000000000000e-01 1 0 0 0 0 +P 110 211 3.3737414580549596e-01 -7.4336572542037649e-01 6.7542972105104546e+00 6.8048824022753731e+00 1.3957000000000000e-01 1 0 0 0 0 +P 111 -213 1.4425566346812861e+00 -1.5949421846047691e+00 3.5486174703439339e+01 3.5560187917541761e+01 7.9596446614794569e-01 2 0 0 -79 0 +V -23 0 0 0 0 0 2 1 0 +P 27 2 -3.5408957207564704e+00 1.3337324649314468e+00 1.4937252408811208e+01 1.5409032880678133e+01 0 2 0 0 -23 0 +P 28 -2 3.5408957207564704e+00 -1.3337324649314468e+00 4.7168621002604638e+00 6.0469474006441590e+00 0 2 0 0 -23 0 +P 112 92 0 0 1.9654114509071672e+01 2.1455980281322294e+01 8.6066760539008023e+00 2 0 0 -24 0 +V -24 0 0 0 0 0 0 8 0 +P 113 223 -1.7834465290486393e-01 1.0779146855581252e-01 2.9797667718739342e+00 3.0863604647422442e+00 7.7664991318275456e-01 2 0 0 -80 0 +P 114 113 -1.0902801693616622e+00 4.5065934647299072e-01 4.8491888434946748e+00 5.1024990374205057e+00 1.0625720176709026e+00 2 0 0 -81 0 +P 115 111 -3.3248940486964124e-01 2.3166493925117712e-01 5.1260100030508238e-01 6.6723102021907743e-01 1.3497999999999999e-01 2 0 0 -82 0 +P 116 213 5.4395505009151517e-02 -3.5753673771347694e-01 3.6959306688638129e+00 3.7765891594248417e+00 6.8697218303008856e-01 2 0 0 -83 0 +P 117 223 -3.6940382873256322e-01 -2.0534285256312060e-01 1.5468769853517426e+00 1.7802756873006378e+00 7.7325819698327591e-01 2 0 0 -84 0 +P 118 113 -2.1983674369034181e-01 6.1736195755313583e-01 1.8723689218941149e+00 2.0935892371951130e+00 6.6924325466460510e-01 2 0 0 -85 0 +P 119 111 1.1404511704074396e+00 -2.7154403133829735e-01 1.2971289847431351e+00 1.7536043557484422e+00 1.3497999999999999e-01 2 0 0 -86 0 +P 120 -213 9.9550812414248135e-01 -5.7305409021822129e-01 2.9002523325451683e+00 3.1958313192714209e+00 6.9458391375909678e-01 2 0 0 -87 0 +V -25 0 0 0 0 0 2 1 0 +P 33 21 8.8527156785984806e-01 -5.7553602736705196e+00 -2.4199878604494717e+01 2.4890600677783713e+01 0 2 0 0 -25 0 +P 34 21 -8.8527156785984806e-01 5.7553602736705196e+00 -6.2954009301687258e+01 6.3222742464919470e+01 0 2 0 0 -25 0 +P 121 92 -1.8021268256845246e-01 -1.0580531443966563e+00 5.5504994238782192e+03 5.8755200809247099e+03 1.9270939818607703e+03 2 0 0 -26 0 +V -26 0 0 0 0 0 0 37 0 +P 122 221 1.1563614818692559e-01 -3.1187647073665451e-02 5.3420846984279729e+02 5.3420876377842535e+02 5.4744999999999999e-01 2 0 0 -88 0 +P 123 2212 -6.2791982027313717e-02 7.6867611752465992e-01 2.9853349842085568e+03 2.9853352312756942e+03 9.3827000000000005e-01 1 0 0 0 0 +P 124 -211 -6.3737058678301636e-02 -6.4464644421178707e-01 1.9900387741310286e+02 1.9900498068310966e+02 1.3957000000000000e-01 1 0 0 0 0 +P 125 113 1.5027328344524130e-01 2.0693100318503993e-01 1.2269984836524957e+03 1.2269987428070176e+03 7.5535553100313535e-01 2 0 0 -89 0 +P 126 113 -9.9821919675496071e-02 5.0103807635626529e-01 2.1777529106655865e+02 2.1777760470222898e+02 8.6412218253814066e-01 2 0 0 -90 0 +P 127 -313 -9.1855261829841561e-01 -4.5271496597028515e-01 1.9852981625081372e+02 1.9853426767512232e+02 8.4782720070859996e-01 2 0 0 -91 0 +P 128 323 7.1450236264555178e-01 1.5079031761695599e-01 1.0405513205706657e+02 1.0406120895549580e+02 8.5524880571797579e-01 2 0 0 -92 0 +P 129 -213 -2.6371613026223212e-01 -3.3569803118640140e-01 1.5291910085517253e+02 1.5292119444523502e+02 6.7680487398242095e-01 2 0 0 -93 0 +P 130 211 3.0711481321928247e-01 5.6434962399740579e-02 1.7469094645523576e+01 1.7472442643564186e+01 1.3957000000000000e-01 1 0 0 0 0 +P 131 -211 -1.3416783174028993e-01 4.7853828154534966e-01 4.9650636537858709e+01 4.9653320012799036e+01 1.3957000000000000e-01 1 0 0 0 0 +P 132 211 -4.4171694323995486e-01 -8.0515863604828064e-01 1.9039571188948941e+01 1.9062217739053946e+01 1.3957000000000000e-01 1 0 0 0 0 +P 133 -2114 -1.3488630166892554e-01 -2.6020823766813067e-01 1.8719458121583301e+00 2.1920492447609377e+00 1.1022686271828712e+00 2 0 0 -94 0 +P 134 221 5.9907600476643053e-01 3.1183801267853273e-01 3.6841720694354785e-01 9.4422865160420322e-01 5.4744999999999999e-01 2 0 0 -95 0 +P 135 1114 -7.9078364399711776e-02 -5.3473729042418372e-02 2.4990460379589137e+00 2.8511181245797439e+00 1.3691349944600548e+00 2 0 0 -96 0 +P 136 223 -1.3331819562169198e-01 -3.1501969795261053e-01 -4.3131521562232121e-02 8.5408332284258204e-01 7.8140056489842125e-01 2 0 0 -97 0 +P 137 211 3.0231113463725909e-02 -2.1285675831915882e-01 -2.3543486414109713e-01 3.4803919310407555e-01 1.3957000000000000e-01 1 0 0 0 0 +P 138 111 -3.6331973746602270e-02 7.4355670744629440e-02 -7.6645288247255569e-02 1.7590588022778733e-01 1.3497999999999999e-01 2 0 0 -98 0 +P 139 113 1.6627168576861587e-01 -2.5512952828724614e-03 -1.1719602585717434e-01 7.9896620060520418e-01 7.7263141188851436e-01 2 0 0 -99 0 +P 140 -213 1.8246870701846693e-01 -6.4142436952788440e-01 -2.3077172616991168e+00 2.5247664616293304e+00 7.7728159309153089e-01 2 0 0 -100 0 +P 141 113 -9.2484989919595070e-02 -1.1964227291138891e+00 -5.3193696218967101e+00 5.5240094460187201e+00 8.8261337246030414e-01 2 0 0 -101 0 +P 142 221 4.3290844393668704e-01 -2.2932482823933737e+00 -1.1118240214783999e+01 1.1373713746251170e+01 5.4744999999999999e-01 2 0 0 -102 0 +P 143 211 1.4314659529045259e-01 3.3792954234072853e-01 -4.8759767464944481e+00 4.8917600452786267e+00 1.3957000000000000e-01 1 0 0 0 0 +P 144 -211 -1.5173971936078676e-01 1.2638509867730544e-01 -2.3517255215454607e+00 2.3641258107781722e+00 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 2.8806011104816087e-01 1.8808112209402078e-01 -6.9861950017284147e-01 7.9034292714425880e-01 1.3497999999999999e-01 2 0 0 -103 0 +P 146 111 -2.9325266533451849e-01 -2.1300619373632457e-01 -6.2084500620099243e+00 6.2204855547752071e+00 1.3497999999999999e-01 2 0 0 -104 0 +P 147 213 -6.9858610278359504e-02 1.2685306871492477e+00 -1.8500623011952744e+01 1.8556331415289904e+01 6.7106887426753614e-01 2 0 0 -105 0 +P 148 223 5.5063662683315945e-02 1.1997527113990876e-01 -3.0076947242410959e+00 3.1107144834006855e+00 7.8287353408961513e-01 2 0 0 -106 0 +P 149 -2214 -1.8794218320233000e-01 1.5241617555512106e+00 -1.9106462282427337e+01 1.9207265750409690e+01 1.2262810998017089e+00 2 0 0 -107 0 +P 150 2214 -2.8650488155922194e-01 2.9534757115427968e-01 -7.5922854307518755e+00 7.7042773613584803e+00 1.2424879732977692e+00 2 0 0 -108 0 +P 151 -213 -1.3395677309501619e-01 2.8646169779760616e-01 -7.1516780777701350e-01 1.1477456820086733e+00 8.4014905577871046e-01 2 0 0 -109 0 +P 152 221 1.5464435260082576e-01 -3.5154860600178450e-01 -2.3517657972875368e-02 6.6914563505238200e-01 5.4744999999999999e-01 2 0 0 -110 0 +P 153 -311 9.3352618998182743e-02 4.0984422314125646e-01 -2.9781253674948460e+00 3.0485395080484676e+00 4.9767000000000000e-01 2 0 0 -111 0 +P 154 333 -3.2368338848019457e-01 -4.2702770182420224e-01 -9.2713163076349650e-02 1.1654977849741417e+00 1.0308568096824740e+00 2 0 0 -112 0 +P 155 333 -1.0877256872155437e-01 3.7570467122067591e-01 -1.1471981162283685e+01 1.1523662684436765e+01 1.0175777145777671e+00 2 0 0 -113 0 +P 156 321 6.2410157985014460e-02 -5.2815613120594274e-01 -2.4718281324740081e+00 2.5761248423242393e+00 4.9359999999999998e-01 1 0 0 0 0 +P 157 113 1.7841524909498518e-01 -2.1422710011190485e-01 -4.1990941872267165e+01 4.1999942208294883e+01 8.2354169806912858e-01 2 0 0 -114 0 +P 158 -211 1.6252710659019495e-01 4.3949932995684760e-01 -1.7920595656609230e+01 1.7927264241762899e+01 1.3957000000000000e-01 1 0 0 0 0 +V -27 0 0 0 0 0 2 1 0 +P 38 21 -6.3139095306073623e+00 7.0920315162380083e+00 2.2607817567288038e+01 2.4520925344362215e+01 0 2 0 0 -27 0 +P 39 21 6.3139095306073623e+00 -7.0920315162380083e+00 -3.5928099200277863e+00 1.0152371531295421e+01 0 2 0 0 -27 0 +P 159 92 0 0 1.9015007647260251e+01 3.4673296875657634e+01 2.8994258059176538e+01 2 0 0 -28 0 +V -28 0 0 0 0 0 0 17 0 +P 160 213 -5.1422483611792558e-01 1.5560370109051272e-01 1.4202938423971254e+00 1.7497322796917145e+00 8.6930360517508554e-01 2 0 0 -115 0 +P 161 -213 1.2736655420832138e-01 8.1992574492073922e-01 1.5226761082985145e+00 1.8398587605528547e+00 6.1484734827861653e-01 2 0 0 -116 0 +P 162 223 -1.7023916178032368e+00 2.0795757104791130e+00 6.5575562691596261e+00 7.1299160716087355e+00 7.8191214916280161e-01 2 0 0 -117 0 +P 163 211 -2.9059822685827419e-01 -2.9736811450474465e-02 1.1929840970980694e+00 1.2361320512944036e+00 1.3957000000000000e-01 1 0 0 0 0 +P 164 -211 -1.0881062221915685e+00 1.2539725263908137e+00 2.4746291473983963e+00 2.9832350644507852e+00 1.3957000000000000e-01 1 0 0 0 0 +P 165 211 -1.2852746139432256e+00 1.4134826699002714e+00 5.3384294397887020e+00 5.6716992832711099e+00 1.3957000000000000e-01 1 0 0 0 0 +P 166 -2212 1.4237307138452032e-01 -3.5996864709774652e-02 5.6565571914432167e-01 1.1053880998206356e+00 9.3827000000000005e-01 1 0 0 0 0 +P 167 211 -1.7998566349533646e-01 -1.5840940836931164e-01 5.4777086598057086e-02 2.8278736506418189e-01 1.3957000000000000e-01 1 0 0 0 0 +P 168 2114 3.5739987847657645e-01 2.2720806770406607e-01 3.6523500098511946e-01 1.3004119985260876e+00 1.1740172830078466e+00 2 0 0 -118 0 +P 169 111 -5.1434735918982422e-01 -7.7300339775299809e-01 1.1148117917540183e-01 9.4484660794944053e-01 1.3497999999999999e-01 2 0 0 -119 0 +P 170 -211 1.5714668856322211e+00 -6.0581539196193168e-01 -5.4913199377787304e-02 1.6908624149062295e+00 1.3957000000000000e-01 1 0 0 0 0 +P 171 -1114 8.8585869246348492e-01 -1.5968024045320024e+00 -4.2221015967941866e-01 2.3027386541183241e+00 1.3378416752747129e+00 2 0 0 -120 0 +P 172 3112 1.2493548114864377e+00 -1.2508727455032398e+00 -6.8508891720731258e-01 2.2424940241854410e+00 1.1974400000000001e+00 2 0 0 -121 0 +P 173 313 6.8179411573870519e-01 -3.6752254254946726e-01 5.4549415498849577e-02 1.1551152151744939e+00 8.5521896965537603e-01 2 0 0 -122 0 +P 174 213 8.7514099172343518e-01 -9.1457541533900566e-01 -1.9944632590699943e-01 1.6271978862616123e+00 1.0028330760397095e+00 2 0 0 -123 0 +P 175 -211 7.3183821062345222e-02 7.1751877688641233e-02 -4.4579470420669780e-02 1.7880525076215875e-01 1.3957000000000000e-01 1 0 0 0 0 +P 176 113 -3.8901028257665571e-01 -2.8878531600595153e-01 7.6297841431025348e-01 1.2320758480194269e+00 8.3734632970974121e-01 2 0 0 -124 0 +V -29 0 0 0 0 0 2 1 0 +P 40 21 4.0592867731266056e+00 -2.6703314664466724e+00 -1.8206386794109676e+01 1.8843593058222922e+01 0 2 0 0 -29 0 +P 41 21 -4.0592867731266056e+00 2.6703314664466724e+00 6.5387013204165399e+01 6.5567293485463281e+01 0 2 0 0 -29 0 +P 177 92 0 0 4.7180626410055723e+01 8.4410886543686203e+01 6.9994187320418376e+01 2 0 0 -30 0 +V -30 0 0 0 0 0 0 15 0 +P 178 -321 -3.3623874390774883e-02 2.4690994028450861e-01 -2.6951601874273334e-01 6.1512188052391659e-01 4.9359999999999998e-01 1 0 0 0 0 +P 179 211 9.2022143347366359e-01 -9.0492262529110890e-01 -3.4802493120833939e+00 3.7144727086822180e+00 1.3957000000000000e-01 1 0 0 0 0 +P 180 331 2.8547714123264654e+00 -1.3978162152551836e+00 -1.1295889724261475e+01 1.1773753288764665e+01 9.5944351253944427e-01 2 0 0 -125 0 +P 181 -211 -2.1966458442153422e-01 -7.8242988024705071e-02 -3.6872339754814093e-01 4.5805155127295866e-01 1.3957000000000000e-01 1 0 0 0 0 +P 182 211 2.9560049319651122e-01 -2.0553784478372053e-01 2.0154644030530203e-01 4.3557572213806423e-01 1.3957000000000000e-01 1 0 0 0 0 +P 183 -213 4.8499322815683815e-01 -2.4176671902283986e-01 -1.2630218756659783e+00 1.5443904458672615e+00 7.0444872992306051e-01 2 0 0 -126 0 +P 184 223 -4.9798993623797905e-01 -7.9872460916706869e-02 1.4542593319776393e+00 1.7271969649830978e+00 7.8355954757476942e-01 2 0 0 -127 0 +P 185 111 -8.1435240888755867e-02 2.1770867381234621e-01 -4.8166487593616319e-01 5.5158808745506804e-01 1.3497999999999999e-01 2 0 0 -128 0 +P 186 211 -4.0963834077238803e-02 -8.1786285732019265e-02 -7.3954640395227589e-02 1.8252700066602331e-01 1.3957000000000000e-01 1 0 0 0 0 +P 187 -213 -1.9208712477878448e-01 1.0153734892728536e+00 1.0093633192296094e+01 1.0172602378103548e+01 7.2974470614907838e-01 2 0 0 -129 0 +P 188 113 -4.0460519527275640e-01 -1.8742290283792634e-01 1.4460803220046335e+01 1.4483694098040059e+01 6.8097888964938624e-01 2 0 0 -130 0 +P 189 323 -1.8174133915270314e+00 8.5518474033833691e-01 1.5636980567886377e+01 1.5790404265907304e+01 8.8734053469796670e-01 2 0 0 -131 0 +P 190 -313 -6.1300964784639689e-01 4.4874979596463827e-01 1.5814169758309760e+01 1.5858292211205139e+01 9.0570939246514259e-01 2 0 0 -132 0 +P 191 2112 -2.0875628243328179e-01 2.2254556192762173e-01 2.8276378449769140e+00 2.9952350959206409e+00 9.3957000000000002e-01 1 0 0 0 0 +P 192 -3122 -4.4603745527894489e-01 1.7089584026390511e-01 3.9246158988903992e+00 4.1079808441562280e+00 1.1156800000000000e+00 2 0 0 -133 0 +V -31 0 0 0 0 0 2 1 0 +P 42 21 -3.5966403857613591e+00 9.8909210856074747e-01 -6.8991601771054407e+00 7.8429928224539607e+00 0 2 0 0 -31 0 +P 43 21 3.5966403857613591e+00 -9.8909210856074747e-01 -5.4062667533947362e+01 5.4191199895830252e+01 0 2 0 0 -31 0 +P 193 92 0 0 -6.0961827711052806e+01 6.2034192718284217e+01 1.1484625737791408e+01 2 0 0 -32 0 +V -32 0 0 0 0 0 0 9 0 +P 194 -313 9.9449836339841191e-01 -6.3495009228094301e-01 -1.4642299615826484e+01 1.4717074686290321e+01 8.9619231626098039e-01 2 0 0 -134 0 +P 195 -213 6.9761486862091593e-01 -2.0191774573662452e-01 -9.7431391037408730e+00 9.7889921005604528e+00 6.0676970015494547e-01 2 0 0 -135 0 +P 196 321 9.0124089448534161e-01 -4.4767419129957531e-01 -8.9439134555301649e+00 9.0138713209953245e+00 4.9359999999999998e-01 1 0 0 0 0 +P 197 -321 -6.3603380049890879e-01 1.4504099316767780e-01 -4.6266617828900456e+00 4.6984269812705879e+00 4.9359999999999998e-01 1 0 0 0 0 +P 198 113 3.6907253066300794e-01 -1.4699212866480399e-01 -8.5021209501925501e+00 8.5375578909228391e+00 6.6784195014715297e-01 2 0 0 -136 0 +P 199 221 -1.1158814362096265e+00 7.2491333857959150e-01 -2.4507253306324639e+00 2.8419090198019128e+00 5.4744999999999999e-01 2 0 0 -137 0 +P 200 211 -3.4212525303292468e-01 -2.2696230407884616e-01 -6.7469338663752003e+00 6.7608548245304183e+00 1.3957000000000000e-01 1 0 0 0 0 +P 201 -213 -1.7598972275668995e-01 3.3505003289999202e-01 -1.7733387402423706e+00 1.9326147762775303e+00 6.6860951143368275e-01 2 0 0 -138 0 +P 202 323 -6.9239644466952743e-01 4.5349209741353164e-01 -3.5326948656226587e+00 3.7428911176348358e+00 9.1882152013627227e-01 2 0 0 -139 0 +V -33 0 0 0 0 0 2 1 0 +P 44 21 1.6002652901426460e+00 -2.4352657274836234e+00 2.8688832362561115e+01 2.8836443443833804e+01 0 2 0 0 -33 0 +P 45 21 -1.6002652901426460e+00 2.4352657274836234e+00 8.2577967751982451e-01 3.0287423525444375e+00 0 2 0 0 -33 0 +P 203 92 0 0 2.9514612040080941e+01 3.1865185796378242e+01 1.2011567006898593e+01 2 0 0 -34 0 +V -34 0 0 0 0 0 0 9 0 +P 204 111 1.0518787012931753e-01 -1.5995524457287180e-01 7.7600686419646514e-01 8.1059016893171143e-01 1.3497999999999999e-01 2 0 0 -140 0 +P 205 111 1.2478783609177713e-01 -3.6358255829143427e-02 2.1168354202844193e+00 2.1251131084660222e+00 1.3497999999999999e-01 2 0 0 -141 0 +P 206 -2224 -5.5186870172860858e-01 1.0329040235764173e+00 8.5442774549095424e-01 1.9723301257490100e+00 1.3373816085188170e+00 2 0 0 -142 0 +P 207 2224 -4.4972267469397098e-01 7.1644814273694990e-01 1.8328017645199988e+00 2.3811516687914014e+00 1.2630013999973755e+00 2 0 0 -143 0 +P 208 -213 -5.0716668288443600e-01 -5.4504576392598904e-02 1.3018912898240806e+00 1.5715730784703104e+00 7.1744840746711636e-01 2 0 0 -144 0 +P 209 211 1.1243572544296603e+00 -1.1191386976602283e-01 4.6556363922388408e+00 4.7928210848594484e+00 1.3957000000000000e-01 1 0 0 0 0 +P 210 -211 3.7004756859602959e-03 -8.3816613942284957e-01 6.7174081650278819e+00 6.7709370408591569e+00 1.3957000000000000e-01 1 0 0 0 0 +P 211 213 2.3150705552517567e-01 -5.3768853904646212e-03 3.2265766557190916e+00 3.3703104910732882e+00 9.4581788064766070e-01 2 0 0 -145 0 +P 212 221 -8.0782432554875203e-02 -5.4307719493941597e-01 8.0330277427792112e+00 8.0703590291778973e+00 5.4744999999999999e-01 2 0 0 -146 0 +V -35 0 -1.6215267168984296e-05 -3.1353680968872467e-05 3.1608138103218157e-04 3.1849241778733736e-04 0 2 0 +P 213 22 1.5032738330306678e-02 -1.0610389672991376e-01 7.6971546215477149e-01 7.7713957099295439e-01 0 1 0 0 0 0 +P 214 22 -1.4491207335906356e-01 -1.4502950690157407e-01 1.7619998130615260e+00 1.7738873718774226e+00 0 1 0 0 0 0 +V -36 0 0 0 0 0 0 2 0 +P 215 211 7.8196068794107787e-02 -3.3495008531546488e-01 9.1794139134572532e+00 9.1869160094288596e+00 1.3957000000000000e-01 1 0 0 0 0 +P 216 111 6.7011046783931716e-01 3.1756771243611115e-01 3.4595425231838661e+01 3.4603635124986923e+01 1.3497999999999999e-01 2 0 0 -147 0 +V -37 0 0 0 0 0 0 2 0 +P 217 -211 -4.9685789383140927e-01 -3.6267488655702912e-01 1.0819762776427670e+01 1.0838133933619364e+01 1.3957000000000000e-01 1 0 0 0 0 +P 218 111 2.0568277559265397e-01 -7.6716771394558292e-02 3.4410912961920448e+00 3.4507274271256705e+00 1.3497999999999999e-01 2 0 0 -148 0 +V -38 0 0 0 0 0 0 2 0 +P 219 211 1.5091075346411628e-01 -4.4759866324261638e-01 8.8874577707197915e+00 8.9010956645839556e+00 1.3957000000000000e-01 1 0 0 0 0 +P 220 111 -3.6160430730145765e-01 1.7103168765392807e-01 6.7399550195350288e+00 6.7531639087909117e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -39 0 6.6134868952544265e-05 -6.0578167977499482e-06 5.5521228499667028e-04 5.5936992922159148e-04 0 2 0 +P 221 22 3.9890753756978531e-01 -8.3411821985644619e-02 2.9894333750092708e+00 3.0170841319386961e+00 0 1 0 0 0 0 +P 222 22 1.9818742468699430e-01 2.8719162130123162e-02 2.0232696605477911e+00 2.0331559617674917e+00 0 1 0 0 0 0 +V -40 0 0 0 0 0 0 2 0 +P 223 -211 -8.0116535432035585e-01 -4.3595563284300476e-01 -4.4464390949206933e+00 4.5411698546200583e+00 1.3957000000000000e-01 1 0 0 0 0 +P 224 211 -1.8430479575079395e+00 -1.8805736996568283e+00 -1.8133624777653438e+01 1.8324333837145126e+01 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 225 22 -5.5928768554192265e-01 -1.5147257359489372e-01 -1.5692017076727673e+01 1.5702711440769178e+01 0 1 0 0 0 0 +P 226 22 4.2982874000373740e-02 1.6744026991665381e-01 -4.3431881820625335e+00 4.3466271241336942e+00 0 1 0 0 0 0 +V -42 0 7.6394153622048107e-05 1.0029878162263965e-04 -3.7481894148792775e-03 3.7506937113298347e-03 0 3 0 +P 227 22 1.1629338988407917e-01 8.9272709148877694e-02 -2.8532131053532828e+00 2.8569772126653779e+00 0 1 0 0 0 0 +P 228 -11 1.5797118386348692e-02 1.4711735030322620e-02 -1.0283381816186061e+00 1.0285648545286661e+00 5.1000000000000004e-04 1 0 0 0 0 +P 229 11 5.9939238082474242e-02 1.4813366540532533e-01 -5.5401626596588285e+00 5.5424668560728723e+00 5.1000000000000004e-04 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 230 -211 1.4467675491244145e-01 1.8856155472397737e-01 -1.1886630144118609e+01 1.1889825179173203e+01 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -5.0350326425457087e-02 -6.7011909820600379e-01 -3.1309205936853076e+01 3.1316707853122548e+01 1.3497999999999999e-01 2 0 0 -150 0 +V -44 0 0 0 0 0 0 2 0 +P 232 -311 5.3036395409351500e-01 -1.2314697068839459e-01 -3.4041141413635536e+01 3.4049132665491257e+01 4.9767000000000000e-01 2 0 0 -151 0 +P 233 -211 2.9364965893852782e-03 -2.8037181824656832e-01 -2.9550358086806355e+01 2.9552017863808569e+01 1.3957000000000000e-01 1 0 0 0 0 +V -45 0 -4.8872289253927846e-05 -5.4402958994364631e-05 -3.4409448959975063e-03 3.4417503130490870e-03 0 2 0 +P 234 22 -4.4188958398665414e-02 -3.6742753102171405e-03 -2.1044367148210967e+00 2.1049038103985716e+00 0 1 0 0 0 0 +P 235 22 -4.2790481089641280e-01 -5.2184434402458346e-01 -3.1134207733526843e+01 3.1141520759927278e+01 0 1 0 0 0 0 +V -46 0 0 0 0 0 0 2 0 +P 236 2212 1.2977839391996976e-01 -1.4318504925871164e-01 -6.0637712423823552e+02 6.0637788094093207e+02 9.3827000000000005e-01 1 0 0 0 0 +P 237 211 -1.2295953257244377e-01 1.8096777706713205e-01 -3.0609568574526622e+02 3.0609579575687195e+02 1.3957000000000000e-01 1 0 0 0 0 +V -47 0 4.2169714021909966e-05 8.5829172994005684e-05 -9.6870296651885690e-01 9.6870297157190144e-01 0 2 0 +P 238 22 9.2913107559837393e-02 1.9693827307980796e-01 -2.8833621000331136e+03 2.8833621082557238e+03 0 1 0 0 0 0 +P 239 22 1.3123498171528272e-01 2.5927646721163589e-01 -2.2656630725712694e+03 2.2656630912075148e+03 0 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 240 211 -9.2822980160143120e-01 1.2804318498963387e+00 5.1973118949309658e+01 5.1997362331091381e+01 1.3957000000000000e-01 1 0 0 0 0 +P 241 111 -6.5531495792427386e-01 1.7586644364637036e+00 5.3859919479611001e+01 5.3892777663103821e+01 1.3497999999999999e-01 2 0 0 -152 0 +V -49 0 0 0 0 0 0 2 0 +P 242 -211 -7.6039881533248244e-01 2.0320687957741885e+00 6.9082683121476649e+01 6.9116887205634285e+01 1.3957000000000000e-01 1 0 0 0 0 +P 243 111 -3.8399339173650116e-01 3.7283975804546754e-01 2.7206887603585198e+01 2.7212486345143006e+01 1.3497999999999999e-01 2 0 0 -153 0 +V -50 0 0 0 0 0 0 2 0 +P 244 211 1.0973573194578165e-01 1.1879012864271921e+00 3.0285434690618651e+01 3.0309242576840955e+01 1.3957000000000000e-01 1 0 0 0 0 +P 245 111 -4.1020081276223969e-01 5.9241060031560666e-01 2.7159228200759497e+01 2.7169120543136597e+01 1.3497999999999999e-01 2 0 0 -154 0 +V -51 0 0 0 0 0 0 2 0 +P 246 -211 -3.1659081224093022e-01 -4.3498967383643228e-02 7.7575986968116100e+00 7.7654323271941532e+00 1.3957000000000000e-01 1 0 0 0 0 +P 247 111 6.6426419466017059e-02 3.5700759179416253e-01 3.2854791305799246e+01 3.2857075314729755e+01 1.3497999999999999e-01 2 0 0 -155 0 +V -52 0 0 0 0 0 0 2 0 +P 248 211 2.8109806984337099e-02 -7.3137418999519999e-01 4.8717155060388739e+00 4.9283658674777211e+00 1.3957000000000000e-01 1 0 0 0 0 +P 249 111 3.0439207238921828e-01 -1.0014164915511482e-01 2.0179891546884896e+00 2.0477262298630827e+00 1.3497999999999999e-01 2 0 0 -156 0 +V -53 0 0 0 0 0 0 3 0 +P 250 -211 5.7751284344357268e-01 -1.6610167022038862e+00 2.0077346456800402e+01 2.0154697172139258e+01 1.3957000000000000e-01 1 0 0 0 0 +P 251 211 5.8128837571324521e-01 -1.9934568518397549e+00 2.9607592755877548e+01 2.9680646808630684e+01 1.3957000000000000e-01 1 0 0 0 0 +P 252 111 6.5948645476388301e-01 -1.2682284115554467e+00 1.7819650401514330e+01 1.7877401537149723e+01 1.3497999999999999e-01 2 0 0 -157 0 +V -54 0 5.1864047261200106e-06 -8.9353295080138478e-06 4.5057994120876729e-05 4.6268003358622562e-05 0 2 0 +P 253 22 2.7757152045232775e-01 -5.5879187093033122e-01 2.7799486518070124e+00 2.8491066688819608e+00 0 1 0 0 0 0 +P 254 22 8.3150786524103473e-02 -6.2673834877903317e-02 3.5390310973347999e-01 3.6890306851110266e-01 0 1 0 0 0 0 +V -55 0 0 0 0 0 0 2 0 +P 255 211 -3.4537287284459200e-01 2.0534899061500686e-01 2.2461602796552680e+00 2.2860810169468100e+00 1.3957000000000000e-01 1 0 0 0 0 +P 256 -211 -1.0411121014131801e-01 -2.0872779943077877e-01 6.2062244364248373e+00 6.2121741748367851e+00 1.3957000000000000e-01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 257 -211 1.2850549764079238e-03 3.2229511813417006e-01 9.1196910591118752e-01 9.7726313220946881e-01 1.3957000000000000e-01 1 0 0 0 0 +P 258 111 -2.8056748593473252e-01 1.1916090751261861e-02 4.0696486529871594e+00 4.0815585095086817e+00 1.3497999999999999e-01 2 0 0 -158 0 +V -57 0 0 0 0 0 0 2 0 +P 259 211 7.8085905486046631e-02 1.9157586059214773e-02 2.0788278036794767e+00 2.0850585708775737e+00 1.3957000000000000e-01 1 0 0 0 0 +P 260 111 -3.8387407607252627e-01 6.8367344397323782e-01 2.1019786165900940e+00 2.2475102645542622e+00 1.3497999999999999e-01 2 0 0 -159 0 +V -58 0 0 0 0 0 0 2 0 +P 261 211 -1.9218849411493319e-01 1.1374276734294492e-01 1.0045138277378207e+00 1.0384611930204639e+00 1.3957000000000000e-01 1 0 0 0 0 +P 262 111 -1.8889806198257593e+00 2.4579472809096470e+00 1.8831934148939073e+01 1.9085851199466742e+01 1.3497999999999999e-01 2 0 0 -160 0 +V -59 0 0 0 0 0 0 2 0 +P 263 -311 -1.4318375653716335e+00 -3.5863038245912704e+00 -2.3209274506000757e+00 4.5327821032712690e+00 4.9767000000000000e-01 2 0 0 -161 0 +P 264 111 -1.9155619001346455e-01 -6.0914542296763896e-01 -1.2809667227843524e-01 6.6511674020709111e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -60 0 0 0 0 0 0 2 0 +P 265 311 -2.9659176075774984e-01 -4.6221487895696203e-02 -1.5427574353175526e+00 1.6485991118583883e+00 4.9767000000000000e-01 2 0 0 -163 0 +P 266 211 -1.5043143739465120e-01 -4.3840705696961185e-01 -1.8263399040108697e+00 1.8893987389748650e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 267 -321 1.3117237531214782e-01 2.2171635567557227e-01 -7.0771807964257647e+00 7.0990487616100166e+00 4.9359999999999998e-01 1 0 0 0 0 +P 268 321 1.6118644520389575e-01 1.9737463878801137e-01 -4.5373479438923123e+00 4.5712257811333235e+00 4.9359999999999998e-01 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 269 -321 7.0076510378991513e-02 1.6115182850873450e-01 -1.4990960823910882e+01 1.5000114266670419e+01 4.9359999999999998e-01 1 0 0 0 0 +P 270 211 -2.6567428535109305e-01 1.6610101468545962e-01 -2.5800207633514976e+01 2.5802487595004493e+01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 2 0 +P 271 -211 4.8599111099490840e-02 -7.4756967766754417e-02 -8.1617511091659747e+00 8.1634313515029557e+00 1.3957000000000000e-01 1 0 0 0 0 +P 272 111 3.7620839570376235e-01 4.8378053771402385e-01 -1.9561155024868459e+01 1.9571218201047309e+01 1.3497999999999999e-01 2 0 0 -164 0 +V -64 0 0 0 0 0 0 2 0 +P 273 -211 5.3030438115813272e-01 2.8459142744427268e-01 -8.4553036392123389e+00 8.4778449168068466e+00 1.3957000000000000e-01 1 0 0 0 0 +P 274 211 -1.6258540618367565e-01 1.6222338006653356e-01 -1.2249613526344374e+01 1.2252561437064626e+01 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 275 311 8.0055295557585249e-01 1.1955698343636345e+00 -1.3612825986589098e+02 1.3613677343689312e+02 4.9767000000000000e-01 2 0 0 -165 0 +P 276 211 7.3266490640172433e-01 1.6751233348484984e+00 -1.1609843447379056e+02 1.1611291402381548e+02 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 1 0 +P 277 130 2.2891228831712537e-01 -1.3418287413741594e+00 9.8860382248171286e-01 1.7543996561917690e+00 4.9767000000000000e-01 1 0 0 0 0 +V -67 0 0 0 0 0 0 2 0 +P 278 -211 -3.8537250695572384e-01 -9.0184159113101237e-01 4.3277868687666932e-01 1.0810214620097742e+00 1.3957000000000000e-01 1 0 0 0 0 +P 279 111 8.9810384677170528e-03 -6.3878733240759011e-01 -2.6775211174027441e-01 7.0571999322517431e-01 1.3497999999999999e-01 2 0 0 -166 0 +V -68 0 0 0 0 0 0 2 0 +P 280 2112 2.4694209341644854e-01 -8.4716433213517051e-01 6.4556864532723501e-01 1.4416027413516419e+00 9.3957000000000002e-01 1 0 0 0 0 +P 281 111 -8.5409563822338136e-02 -4.3012054975671515e-01 -1.2184751648084854e-01 4.7472613008753961e-01 1.3497999999999999e-01 2 0 0 -167 0 +V -69 0 0 0 0 0 0 2 0 +P 282 -2212 -1.1996124512738150e-01 2.3026123610330118e-01 -3.6071253594137636e+00 3.7361898892602081e+00 9.3827000000000005e-01 1 0 0 0 0 +P 283 111 -6.6404144386860195e-02 6.2308146282458045e-02 -9.8313964690159639e-01 9.9653147526543429e-01 1.3497999999999999e-01 2 0 0 -168 0 +V -70 0 2.2607956805941250e-06 3.0594289068836569e-06 -1.8790166695767641e-05 1.9211970399434110e-05 0 2 0 +P 284 22 1.5503350124231352e-01 9.7732231082630405e-02 -8.5706126698882723e-01 8.7643652985959741e-01 0 1 0 0 0 0 +P 285 22 8.9437597330653915e-02 2.3309905645556292e-01 -1.1748130566901320e+00 1.2010495294143226e+00 0 1 0 0 0 0 +V -71 0 0 0 0 0 0 2 0 +P 286 211 -3.1925262209964905e-01 1.3821580424106233e-01 -5.1157300993405530e-01 6.3420231366062840e-01 1.3957000000000000e-01 1 0 0 0 0 +P 287 111 4.5237516943432650e-02 1.4303653358737961e-01 -1.2206147222144386e+00 1.2371846197583172e+00 1.3497999999999999e-01 2 0 0 -169 0 +V -72 0 -9.3894008003613711e-06 4.8441180380011681e-05 -1.6347347256430333e-04 1.7121757089428238e-04 0 2 0 +P 288 22 -9.1259807998499157e-02 1.5539919386615769e-01 -5.1519193076376746e-01 5.4580215054016890e-01 0 1 0 0 0 0 +P 289 22 -9.8330182436480451e-03 3.6615228052958404e-01 -1.2448772907468852e+00 1.2976454253000318e+00 0 1 0 0 0 0 +V -73 0 0 0 0 0 0 2 0 +P 290 311 2.9288036009376067e-01 1.2928728715900386e+00 -1.1628140700302700e+01 1.1714035630061840e+01 4.9767000000000000e-01 2 0 0 -170 0 +P 291 111 -2.4972174502373165e-01 1.2171174499571773e+00 -9.8820220121753870e+00 9.9607386516486240e+00 1.3497999999999999e-01 2 0 0 -171 0 +V -74 0 0 0 0 0 0 2 0 +P 292 211 -8.1826523521756611e-01 7.8243572685105356e-01 -1.2828767012552214e+00 1.7166875304906464e+00 1.3957000000000000e-01 1 0 0 0 0 +P 293 111 -4.1995931923232044e-01 6.9352306047057866e-01 -2.4353681474951611e-01 8.5724549911498049e-01 1.3497999999999999e-01 2 0 0 -172 0 +V -75 0 0 0 0 0 0 2 0 +P 294 22 -2.3993756374341146e-01 1.6870365091332759e-01 -4.5024786003822342e-01 5.3735843884283452e-01 0 1 0 0 0 0 +P 295 22 -6.5988345454275177e-01 3.7272537616398288e-01 -8.6204472334868429e-02 7.6275919572719031e-01 0 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 296 -321 2.9684402714531981e-02 1.0172982955755167e-01 7.8543908048649558e-01 9.3369461342657356e-01 4.9359999999999998e-01 1 0 0 0 0 +P 297 211 -4.6850393570640159e-01 -8.5880035046017392e-02 7.6480086906950495e-01 9.1174090202280789e-01 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 298 -211 -1.2939988042445941e-01 -9.9234300444954626e-02 2.9453547623268478e-01 3.6444849718208244e-01 1.3957000000000000e-01 1 0 0 0 0 +P 299 111 3.9915573664182591e-01 -1.0301564308733102e-01 -1.5144973175224732e-01 4.5944983019106961e-01 1.3497999999999999e-01 2 0 0 -173 0 +V -78 0 0 0 0 0 0 2 0 +P 300 211 2.0689198584967584e-02 -2.5828734371727674e-01 1.5152033244273926e+00 1.5435223659275032e+00 1.3957000000000000e-01 1 0 0 0 0 +P 301 111 7.5486711156253306e-01 3.9411709508809456e-01 3.2919551559674907e+00 3.4029900073406600e+00 1.3497999999999999e-01 2 0 0 -174 0 +V -79 0 0 0 0 0 0 2 0 +P 302 -211 1.1757002829753060e+00 -7.7106228617607020e-01 2.2873454234941420e+01 2.2917050347446786e+01 1.3957000000000000e-01 1 0 0 0 0 +P 303 111 2.6685635170597993e-01 -8.2387989842869880e-01 1.2612720468497917e+01 1.2643137570094973e+01 1.3497999999999999e-01 2 0 0 -175 0 +V -80 0 0 0 0 0 0 3 0 +P 304 211 -3.0013898117931026e-01 2.2241352690799113e-01 1.2558660560100285e+00 1.3176610036398551e+00 1.3957000000000000e-01 1 0 0 0 0 +P 305 -211 -2.8515883010338406e-02 -1.2080898873270086e-01 9.9053262633137185e-01 1.0079894027564984e+00 1.3957000000000000e-01 1 0 0 0 0 +P 306 111 1.5031021128478475e-01 6.1869303805222545e-03 7.3336808953253430e-01 7.6071005834589123e-01 1.3497999999999999e-01 2 0 0 -176 0 +V -81 0 0 0 0 0 0 2 0 +P 307 211 5.1240948779819634e-02 3.3106285181225731e-01 6.2296340656530647e-01 7.2096562851593138e-01 1.3957000000000000e-01 1 0 0 0 0 +P 308 -211 -1.1415211181414819e+00 1.1959649466073342e-01 4.2262254369293686e+00 4.3815334089045752e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 -5.1481558743536353e-05 3.5870232266659004e-05 7.9369441921158649e-05 1.0331184230181930e-04 0 2 0 +P 309 22 -8.3041828422767416e-02 1.3659289369937574e-01 1.7956183625056635e-01 2.4040802173521689e-01 0 1 0 0 0 0 +P 310 22 -2.4944757644687382e-01 9.5072045551801362e-02 3.3303916405451600e-01 4.2682299848386052e-01 0 1 0 0 0 0 +V -83 0 0 0 0 0 0 2 0 +P 311 211 1.0309018758041712e-01 4.2724264587845878e-03 2.2631018679628315e-01 2.8520505947647545e-01 1.3957000000000000e-01 1 0 0 0 0 +P 312 111 -4.8694682571265593e-02 -3.6180916417226161e-01 3.4696204820675303e+00 3.4913840999483670e+00 1.3497999999999999e-01 2 0 0 -177 0 +V -84 0 0 0 0 0 0 3 0 +P 313 -211 3.0574739693101170e-02 -4.3491576202209295e-02 4.0806616924722747e-02 1.5482666693013367e-01 1.3957000000000000e-01 1 0 0 0 0 +P 314 211 -1.5562677085262105e-01 -2.3620058456930920e-01 9.0884352597140916e-01 9.6202221780842523e-01 1.3957000000000000e-01 1 0 0 0 0 +P 315 111 -2.4435179757304334e-01 7.4349308208397899e-02 5.9722684245561075e-01 6.6342680256207898e-01 1.3497999999999999e-01 2 0 0 -178 0 +V -85 0 0 0 0 0 0 2 0 +P 316 111 -3.6392887739340002e-01 6.7496682775182959e-01 1.4962438007820593e+00 1.6867096840135030e+00 1.3497999999999999e-01 2 0 0 -179 0 +P 317 22 1.4409213370305821e-01 -5.7604870198693786e-02 3.7612512111205554e-01 4.0687955318161023e-01 0 1 0 0 0 0 +V -86 0 3.5647739613994551e-04 -8.4878083113578028e-05 4.0545108369145441e-04 5.4813422162874350e-04 0 2 0 +P 318 22 1.0473665451576206e+00 -2.7870050354220938e-01 1.2250032599908525e+00 1.6356294316190043e+00 0 1 0 0 0 0 +P 319 22 9.3084625249818934e-02 7.1564722039120275e-03 7.2125724752282516e-02 1.1797492412943782e-01 0 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 320 -211 9.3744393824816696e-01 -6.7184195479951447e-01 2.5898309235071864e+00 2.8384638005162497e+00 1.3957000000000000e-01 1 0 0 0 0 +P 321 111 5.8064185894314453e-02 9.8787864581293211e-02 3.1042140903798182e-01 3.5736751875517092e-01 1.3497999999999999e-01 2 0 0 -180 0 +V -88 0 0 0 0 0 0 3 0 +P 322 -211 8.3735586764706563e-02 -1.0421123019306522e-01 2.4974112587102385e+02 2.4974120065127514e+02 1.3957000000000000e-01 1 0 0 0 0 +P 323 211 6.6821925997163825e-04 -1.0568054772206613e-03 2.1333331792164230e+02 2.1333336358105069e+02 1.3957000000000000e-01 1 0 0 0 0 +P 324 111 3.1232342162247389e-02 7.4080388596620431e-02 7.1134026050131084e+01 7.1134199546099481e+01 1.3497999999999999e-01 2 0 0 -181 0 +V -89 0 0 0 0 0 0 2 0 +P 325 211 1.2309113191819084e-01 2.0477190657215033e-01 1.1824104023206878e+03 1.1824104346963943e+03 1.3957000000000000e-01 1 0 0 0 0 +P 326 -211 2.7182151527050440e-02 2.1590966128895990e-03 4.4588081331807786e+01 4.4588308110623188e+01 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 327 211 3.8045312551576935e-02 4.4176323178469101e-01 2.0603934105508088e+02 2.0603986542510555e+02 1.3957000000000000e-01 1 0 0 0 0 +P 328 -211 -1.3786723222707301e-01 5.9274844571574309e-02 1.1735950011477758e+01 1.1737739277123415e+01 1.3957000000000000e-01 1 0 0 0 0 +V -91 0 0 0 0 0 0 2 0 +P 329 -321 -8.3627361383984444e-01 -5.2573367818186700e-01 1.4711426769101732e+02 1.4711841199755347e+02 4.9359999999999998e-01 1 0 0 0 0 +P 330 211 -8.2279004458571267e-02 7.3018712211581877e-02 5.1415548559796406e+01 5.1415855677568857e+01 1.3957000000000000e-01 1 0 0 0 0 +V -92 0 0 0 0 0 0 2 0 +P 331 311 1.8498251272975502e-01 2.1534491855260202e-01 5.4113827121414495e+01 5.4116860155770283e+01 4.9767000000000000e-01 2 0 0 -182 0 +P 332 211 5.2951984991579670e-01 -6.4554600935646037e-02 4.9941304935652070e+01 4.9944348799725510e+01 1.3957000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 333 -211 -7.6476777911200444e-02 -4.0287232681542129e-01 1.3202657166015865e+02 1.3202728225230263e+02 1.3957000000000000e-01 1 0 0 0 0 +P 334 111 -1.8723935235103165e-01 6.7174295629019873e-02 2.0892529195013871e+01 2.0893912192932397e+01 1.3497999999999999e-01 2 0 0 -183 0 +V -94 0 0 0 0 0 0 2 0 +P 335 -2212 -1.2935100172353481e-01 -1.5203835057338125e-01 1.5037893482216367e+00 1.7836984998639236e+00 9.3827000000000005e-01 1 0 0 0 0 +P 336 211 -5.5352999453907193e-03 -1.0816988709474940e-01 3.6815646393669343e-01 4.0835074489701390e-01 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 337 22 4.6738825445375309e-01 1.6146085191757137e-01 5.0134341685598127e-01 7.0417796665907206e-01 0 1 0 0 0 0 +P 338 22 1.3168775031267746e-01 1.5037716076096133e-01 -1.3292620991243345e-01 2.4005068494513118e-01 0 1 0 0 0 0 +V -96 0 0 0 0 0 0 2 0 +P 339 2112 1.8167414076157981e-01 -1.5341709619492785e-01 1.3596341969857564e+00 1.6697123205329250e+00 9.3957000000000002e-01 1 0 0 0 0 +P 340 -211 -2.6075250516129161e-01 9.9943367152509469e-02 1.1394118409731577e+00 1.1814058040468192e+00 1.3957000000000000e-01 1 0 0 0 0 +V -97 0 0 0 0 0 0 3 0 +P 341 211 4.5932154060343913e-02 1.3436313571120873e-01 -2.6773721114820626e-02 2.0089756608059256e-01 1.3957000000000000e-01 1 0 0 0 0 +P 342 -211 -2.3240549013258138e-01 -1.2739824390148866e-01 -1.7172491484146121e-02 3.0002883820846565e-01 1.3957000000000000e-01 1 0 0 0 0 +P 343 111 5.3155140450545445e-02 -3.2198458976233074e-01 8.1469103673461631e-04 3.5315691855352199e-01 1.3497999999999999e-01 2 0 0 -184 0 +V -98 0 -5.3456041917950884e-06 1.0940115392255510e-05 -1.1276991913333317e-05 2.5881423818737699e-05 0 2 0 +P 344 22 2.8925221694516508e-02 7.6693657802626408e-02 -9.9535856321624535e-03 8.2569119313216199e-02 0 1 0 0 0 0 +P 345 22 -6.5257195441118784e-02 -2.3379870579969641e-03 -6.6691702615093121e-02 9.3336760914571146e-02 0 1 0 0 0 0 +V -99 0 0 0 0 0 0 2 0 +P 346 211 -1.6181000821158892e-01 -1.6963424504261243e-01 -2.6313301097208053e-01 3.7904751972786288e-01 1.3957000000000000e-01 1 0 0 0 0 +P 347 -211 3.2808169398020481e-01 1.6708294975973997e-01 1.4593698511490616e-01 4.1991868087733947e-01 1.3957000000000000e-01 1 0 0 0 0 +V -100 0 0 0 0 0 0 2 0 +P 348 -211 4.6420365845633227e-01 -4.0847882605596070e-01 -1.4697255584821705e+00 1.6005976977416989e+00 1.3957000000000000e-01 1 0 0 0 0 +P 349 111 -2.8173495143786537e-01 -2.3294554347192373e-01 -8.3799170321694616e-01 9.2416876388761626e-01 1.3497999999999999e-01 2 0 0 -185 0 +V -101 0 0 0 0 0 0 2 0 +P 350 211 -4.3713138842513549e-01 -8.0193348901581640e-01 -2.8575036213923499e+00 3.0031629830433717e+00 1.3957000000000000e-01 1 0 0 0 0 +P 351 -211 3.4464639850554046e-01 -3.9448924009807262e-01 -2.4618660005043602e+00 2.5208464629753493e+00 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 0 0 0 0 0 2 0 +P 352 22 3.2856276203468715e-01 -2.2653644571307425e+00 -1.0628501612512524e+01 1.0872206590172965e+01 0 1 0 0 0 0 +P 353 22 1.0434568190199986e-01 -2.7883825262630772e-02 -4.8973860227147370e-01 5.0150715607820417e-01 0 1 0 0 0 0 +V -103 0 4.9037358891567776e-06 3.2017628026642254e-06 -1.1892814674675885e-05 1.3454250789796279e-05 0 2 0 +P 354 22 2.2354910027528657e-01 1.6029891550903602e-01 -6.4738274096045079e-01 7.0340198737330506e-01 0 1 0 0 0 0 +P 355 22 6.4511010772874300e-02 2.7782206584984766e-02 -5.1236759212390626e-02 8.6940939770953726e-02 0 1 0 0 0 0 +V -104 0 -1.3726373686040436e-04 -9.9702507710567058e-05 -2.9060095827281827e-03 2.9116430753003118e-03 0 2 0 +P 356 22 -2.5303124530879706e-01 -1.9767059562620412e-01 -4.4765459960137299e+00 4.4880466274209283e+00 0 1 0 0 0 0 +P 357 22 -4.0221420025721384e-02 -1.5335598110120413e-02 -1.7319040659961942e+00 1.7324389273542784e+00 0 1 0 0 0 0 +V -105 0 0 0 0 0 0 2 0 +P 358 211 -2.3305194831128404e-01 3.5257524413723085e-01 -3.8645950116748433e+00 3.8901409874903243e+00 1.3957000000000000e-01 1 0 0 0 0 +P 359 111 1.6319333803292452e-01 9.1595544301201692e-01 -1.4636028000277902e+01 1.4666190427799593e+01 1.3497999999999999e-01 2 0 0 -186 0 +V -106 0 0 0 0 0 0 3 0 +P 360 211 -5.1068619640013913e-02 -1.1688780893563810e-01 -1.4247259084409054e+00 1.4372176115232076e+00 1.3957000000000000e-01 1 0 0 0 0 +P 361 -211 -3.9918742821603924e-02 2.3757962531374108e-01 -4.9884072044398658e-01 5.7127877053654863e-01 1.3957000000000000e-01 1 0 0 0 0 +P 362 111 1.4605102514493379e-01 -7.1654523819423611e-04 -1.0841280953562038e+00 1.1022181013409436e+00 1.3497999999999999e-01 2 0 0 -187 0 +V -107 0 0 0 0 0 0 2 0 +P 363 -2212 -1.1406253960346636e-01 1.3050504356992600e+00 -1.3746559005676280e+01 1.3840679246052170e+01 9.3827000000000005e-01 1 0 0 0 0 +P 364 111 -7.3879643598863620e-02 2.1911131985195054e-01 -5.3599032767510568e+00 5.3665865043575209e+00 1.3497999999999999e-01 2 0 0 -188 0 +V -108 0 0 0 0 0 0 2 0 +P 366 111 -1.9383253021003571e-01 2.6263377003627869e-01 -2.5692229458455249e+00 2.5933903857287377e+00 1.3497999999999999e-01 2 0 0 -189 0 +P 365 2212 -9.2672351349186208e-02 3.2713801118000992e-02 -5.0230624849063501e+00 5.1108869756297421e+00 9.3827000000000005e-01 1 0 0 0 0 +V -109 0 0 0 0 0 0 2 0 +P 367 -211 -8.9256978629664779e-02 4.9532478206519792e-01 -7.2657351357255473e-01 8.9481970445850134e-01 1.3957000000000000e-01 1 0 0 0 0 +P 368 111 -4.4699794465351418e-02 -2.0886308426759173e-01 1.1405705795541135e-02 2.5292597755017221e-01 1.3497999999999999e-01 2 0 0 -190 0 +V -110 0 0 0 0 0 0 3 0 +P 369 -211 5.2655584360949588e-02 -2.6070291359845066e-01 -2.7865206099874709e-02 3.0165356675183341e-01 1.3957000000000000e-01 1 0 0 0 0 +P 370 211 1.1822125040940321e-01 -3.6410489305205150e-02 -7.4902779595835356e-02 2.0097810594935350e-01 1.3957000000000000e-01 1 0 0 0 0 +P 371 111 -1.6232482169526979e-02 -5.4435203098128715e-02 7.9250327722834704e-02 1.6651396235119514e-01 1.3497999999999999e-01 2 0 0 -191 0 +V -111 0 0 0 0 0 0 1 0 +P 372 130 9.3352618998182743e-02 4.0984422314125646e-01 -2.9781253674948460e+00 3.0485395080484676e+00 4.9767000000000000e-01 1 0 0 0 0 +V -112 0 0 0 0 0 0 2 0 +P 373 130 -2.2310089003166997e-01 -9.6246577399157734e-02 -1.0045105369445986e-02 5.5390770335486272e-01 4.9767000000000000e-01 1 0 0 0 0 +P 374 310 -1.0058249844852461e-01 -3.3078112442504448e-01 -8.2668057706903650e-02 6.1159008161927886e-01 4.9767000000000000e-01 2 0 0 -192 0 +V -113 0 0 0 0 0 0 2 0 +P 375 -321 5.8939484155127987e-02 2.3553953346591427e-01 -5.9125978676033464e+00 5.9381316286021688e+00 4.9359999999999998e-01 1 0 0 0 0 +P 376 321 -1.6771205287668237e-01 1.4016513775476167e-01 -5.5593832946803383e+00 5.5855310558345961e+00 4.9359999999999998e-01 1 0 0 0 0 +V -114 0 0 0 0 0 0 2 0 +P 377 211 4.4626469507733829e-01 -2.9876737728109021e-01 -2.7747433142093183e+01 2.7752980738717618e+01 1.3957000000000000e-01 1 0 0 0 0 +P 378 -211 -2.6784944598235311e-01 8.4540277169185385e-02 -1.4243508730173986e+01 1.4246961469577274e+01 1.3957000000000000e-01 1 0 0 0 0 +V -115 0 0 0 0 0 0 2 0 +P 379 211 -4.7708602474535206e-01 4.2323427871643926e-01 1.2306474356724806e+00 1.3930941194029927e+00 1.3957000000000000e-01 1 0 0 0 0 +P 380 111 -3.7138811372573445e-02 -2.6763057762592657e-01 1.8964640672464467e-01 3.5663816028872181e-01 1.3497999999999999e-01 2 0 0 -193 0 +V -116 0 0 0 0 0 0 2 0 +P 381 -211 1.8239573851947732e-01 8.5172318449127438e-01 1.2672881147092623e+00 1.5440853405862578e+00 1.3957000000000000e-01 1 0 0 0 0 +P 382 111 -5.5029184311155943e-02 -3.1797439570535158e-02 2.5538799358925224e-01 2.9577341996659695e-01 1.3497999999999999e-01 2 0 0 -194 0 +V -117 0 0 0 0 0 0 3 0 +P 383 211 -6.2243035013886994e-01 4.2244827222762471e-01 1.4918178951339065e+00 1.6765686686276411e+00 1.3957000000000000e-01 1 0 0 0 0 +P 384 -211 -5.3662832160087004e-01 7.6596039196045107e-01 2.0066624387491827e+00 2.2182964647637142e+00 1.3957000000000000e-01 1 0 0 0 0 +P 385 111 -5.4333294606349714e-01 8.9116704629103738e-01 3.0590759352765375e+00 3.2350509382173804e+00 1.3497999999999999e-01 2 0 0 -195 0 +V -118 0 0 0 0 0 0 2 0 +P 386 2212 1.5566891027165103e-01 1.9712389042807388e-01 1.7138534409912462e-01 9.8631342223181673e-01 9.3827000000000005e-01 1 0 0 0 0 +P 387 -211 2.0173096820492542e-01 3.0084177275992156e-02 1.9384965688599484e-01 3.1409857629427085e-01 1.3957000000000000e-01 1 0 0 0 0 +V -119 0 -7.1660461754768958e-05 -1.0769721945931413e-04 1.5531901999572816e-05 1.3163894594449711e-04 0 2 0 +P 388 22 -1.1697413369043864e-01 -9.6649254231599702e-02 4.1343221873855411e-02 1.5726820495912039e-01 0 1 0 0 0 0 +P 389 22 -3.9737322549938564e-01 -6.7635414352139833e-01 7.0137957301546427e-02 7.8757840299032089e-01 0 1 0 0 0 0 +V -120 0 0 0 0 0 0 2 0 +P 390 -2112 3.0284788000153912e-01 -8.9128481759035616e-01 -3.4314384176045293e-01 1.3735519449684543e+00 9.3957000000000002e-01 1 0 0 0 0 +P 391 211 5.8301081246194575e-01 -7.0551758694164624e-01 -7.9066317918965748e-02 9.2918670914986956e-01 1.3957000000000000e-01 1 0 0 0 0 +V -121 0 2.2874989631111603e+01 -2.2902782156161990e+01 -1.2543595889194581e+01 4.1058814581296019e+01 0 2 0 +P 392 2112 7.2363470358385507e-01 -8.6288876686327309e-01 -4.4761632740272878e-01 1.5334198282490092e+00 9.3957000000000002e-01 1 0 0 0 0 +P 393 -211 5.2572010790258272e-01 -3.8798397863996692e-01 -2.3747258980458383e-01 7.0907419593643206e-01 1.3957000000000000e-01 1 0 0 0 0 +V -122 0 0 0 0 0 0 2 0 +P 394 311 5.7209538578317543e-01 -9.1601292232158002e-02 -1.3829998035577337e-01 7.7619987157909842e-01 4.9767000000000000e-01 2 0 0 -196 0 +P 395 111 1.0969872995552975e-01 -2.7592125031730930e-01 1.9284939585462296e-01 3.7891534359539542e-01 1.3497999999999999e-01 2 0 0 -197 0 +V -123 0 0 0 0 0 0 2 0 +P 396 211 1.2768453337087937e-01 -7.3004776309065877e-01 1.5341155177660637e-01 7.6960247243256708e-01 1.3957000000000000e-01 1 0 0 0 0 +P 397 111 7.4745645835255581e-01 -1.8452765224834686e-01 -3.5285787768360583e-01 8.5759541382904525e-01 1.3497999999999999e-01 2 0 0 -198 0 +V -124 0 0 0 0 0 0 2 0 +P 398 -211 -5.1931286949743072e-01 -4.0616083780816176e-01 7.4895484048546535e-01 1.0075046504018192e+00 1.3957000000000000e-01 1 0 0 0 0 +P 399 211 1.3030258692077507e-01 1.1737552180221024e-01 1.4023573824788065e-02 2.2457119761760758e-01 1.3957000000000000e-01 1 0 0 0 0 +V -125 0 0 0 0 0 0 3 0 +P 400 -211 4.3941879075108720e-01 -2.1455387542550161e-01 -1.6625524305449231e+00 1.7385863821898757e+00 1.3957000000000000e-01 1 0 0 0 0 +P 401 211 7.2245244435792022e-01 -5.5562326516907601e-01 -3.3678421544139758e+00 3.4917753806772347e+00 1.3957000000000000e-01 1 0 0 0 0 +P 402 221 1.6929001772174577e+00 -6.2763907466060598e-01 -6.2654951393025753e+00 6.5433915258975537e+00 5.4744999999999999e-01 2 0 0 -199 0 +V -126 0 0 0 0 0 0 2 0 +P 403 -211 5.4351932812512205e-01 4.2529626811621611e-02 -8.8825094786447778e-01 1.0515186924084912e+00 1.3957000000000000e-01 1 0 0 0 0 +P 404 111 -5.8526099968283993e-02 -2.8429634583446145e-01 -3.7477092780150040e-01 4.9287175345877016e-01 1.3497999999999999e-01 2 0 0 -200 0 +V -127 0 0 0 0 0 0 3 0 +P 405 211 -1.7994431618017598e-01 -1.4981023610554228e-01 1.8335551296569244e-01 3.2851498109288968e-01 1.3957000000000000e-01 1 0 0 0 0 +P 406 -211 -3.4015018251631030e-01 1.0007639479731749e-01 5.8171857101285707e-01 6.9540902512316316e-01 1.3957000000000000e-01 1 0 0 0 0 +P 407 111 2.2104562458507233e-02 -3.0138619608482096e-02 6.8918524799908965e-01 7.0327295876704488e-01 1.3497999999999999e-01 2 0 0 -201 0 +V -128 0 -9.5716033249145031e-06 2.5588689164333307e-05 -5.6613145337201016e-05 6.4831666416758084e-05 0 2 0 +P 408 22 -8.8748848813062955e-02 2.1752980276142420e-01 -4.8819357581726175e-01 5.4178274310309327e-01 0 1 0 0 0 0 +P 409 22 7.3136079243070681e-03 1.7887105092202264e-04 6.5286998810985524e-03 9.8053443519745542e-03 0 1 0 0 0 0 +V -129 0 0 0 0 0 0 2 0 +P 410 -211 -1.3210591454662315e-01 -4.1453641988988016e-02 1.7499835301972946e+00 1.7609919130859564e+00 1.3957000000000000e-01 1 0 0 0 0 +P 411 111 -5.9981210232161325e-02 1.0568271312618416e+00 8.3436496620987999e+00 8.4116104650175920e+00 1.3497999999999999e-01 2 0 0 -202 0 +V -130 0 0 0 0 0 0 2 0 +P 412 -211 2.1039382235683586e-02 1.7495114851534666e-01 2.9952412067790757e+00 3.0036644672231736e+00 1.3957000000000000e-01 1 0 0 0 0 +P 413 211 -4.2564457750844004e-01 -3.6237405135327300e-01 1.1465562013267260e+01 1.1480029630816887e+01 1.3957000000000000e-01 1 0 0 0 0 +V -131 0 0 0 0 0 0 2 0 +P 414 311 -7.8781697561949271e-01 5.4422089375246685e-01 9.1458600181790075e+00 9.2093030609974118e+00 4.9767000000000000e-01 2 0 0 -203 0 +P 415 211 -1.0295964159075386e+00 3.1096384658587001e-01 6.4911205497073698e+00 6.5811012049098920e+00 1.3957000000000000e-01 1 0 0 0 0 +V -132 0 0 0 0 0 0 2 0 +P 416 -311 -7.2639469362242060e-01 3.6391099384214726e-01 1.1382133321844409e+01 1.1421940064958441e+01 4.9767000000000000e-01 2 0 0 -204 0 +P 417 111 1.1338504577602361e-01 8.4838802122491092e-02 4.4320364364653537e+00 4.4363521462467022e+00 1.3497999999999999e-01 2 0 0 -205 0 +V -133 0 -3.6644226869673425e+01 1.4039955316751673e+01 3.2242699278545501e+02 3.3749134797523197e+02 0 2 0 +P 418 -2212 -4.4069160658852696e-01 7.0169749752342234e-02 3.4521641169690143e+00 3.6051242099664664e+00 9.3827000000000005e-01 1 0 0 0 0 +P 419 211 -5.3458486904178924e-03 1.0072609051156285e-01 4.7245178192138493e-01 5.0285663418976212e-01 1.3957000000000000e-01 1 0 0 0 0 +V -134 0 0 0 0 0 0 2 0 +P 420 -321 8.2738509392200044e-01 -4.4400280839202599e-01 -1.3379709157489843e+01 1.3421697459208426e+01 4.9359999999999998e-01 1 0 0 0 0 +P 421 211 1.6711326947641161e-01 -1.9094728388891710e-01 -1.2625904583366416e+00 1.2953772270818957e+00 1.3957000000000000e-01 1 0 0 0 0 +V -135 0 0 0 0 0 0 2 0 +P 422 -211 -4.5648702994576327e-03 8.5062884111795842e-02 -2.3933131666525642e+00 2.3988922924689202e+00 1.3957000000000000e-01 1 0 0 0 0 +P 423 111 7.0217973892037344e-01 -2.8698062984842038e-01 -7.3498259370883083e+00 7.3900998080915326e+00 1.3497999999999999e-01 2 0 0 -206 0 +V -136 0 0 0 0 0 0 2 0 +P 424 211 4.6755588266707993e-01 6.7144388467335656e-02 -6.1051702587828593e+00 6.1250061670128959e+00 1.3957000000000000e-01 1 0 0 0 0 +P 425 -211 -9.8483352004072017e-02 -2.1413651713213966e-01 -2.3969506914096916e+00 2.4125517239099432e+00 1.3957000000000000e-01 1 0 0 0 0 +V -137 0 0 0 0 0 0 3 0 +P 426 111 -1.4763122465585482e-01 1.5578289972556411e-01 -6.3575580169438950e-01 6.8444746338076856e-01 1.3497999999999999e-01 2 0 0 -207 0 +P 427 111 -5.9749928543227060e-01 4.0523346497645923e-01 -1.0521574728239369e+00 1.2831502270771551e+00 1.3497999999999999e-01 2 0 0 -208 0 +P 428 111 -3.7075092612150112e-01 1.6389697387756819e-01 -7.6281205611413760e-01 8.7431132934398903e-01 1.3497999999999999e-01 2 0 0 -209 0 +V -138 0 0 0 0 0 0 2 0 +P 429 -211 1.4873964520465802e-01 2.9361212237253576e-01 -5.2603507832528784e-01 6.3602220793648723e-01 1.3957000000000000e-01 1 0 0 0 0 +P 430 111 -3.2472936796134794e-01 4.1437910527456240e-02 -1.2473036619170828e+00 1.2965925683410431e+00 1.3497999999999999e-01 2 0 0 -210 0 +V -139 0 0 0 0 0 0 2 0 +P 431 321 -1.3937482792474679e-01 4.2593421262169195e-01 -1.9171899663819201e+00 2.0298038386347144e+00 4.9359999999999998e-01 1 0 0 0 0 +P 432 111 -5.5302161674478068e-01 2.7557884791839724e-02 -1.6155048992407390e+00 1.7130872790001219e+00 1.3497999999999999e-01 2 0 0 -211 0 +V -140 0 1.8598834508787614e-05 -2.8282549299325688e-05 1.3720995802205736e-04 1.4332481861146809e-04 0 2 0 +P 433 22 7.3486303836907945e-03 -7.2423525982247119e-02 1.1094367272080649e-01 1.3269388833325652e-01 0 1 0 0 0 0 +P 434 22 9.7839239745626749e-02 -8.7531718590624669e-02 6.6506319147565862e-01 6.7789628059845486e-01 0 1 0 0 0 0 +V -141 0 7.9626809661280000e-06 -2.3200113145596084e-06 1.3507474476220213e-04 1.3560294199833913e-04 0 2 0 +P 435 22 8.0733491049569533e-02 4.1269360133104692e-02 1.3628764571598302e+00 1.3658891954120498e+00 0 1 0 0 0 0 +P 436 22 4.4054345042207586e-02 -7.7627615962248125e-02 7.5395896312458921e-01 7.5922391305397241e-01 0 1 0 0 0 0 +V -142 0 0 0 0 0 0 2 0 +P 437 -2212 -3.3636249934798157e-01 6.3185487895276859e-01 9.1363404725172559e-01 1.4924671132797558e+00 9.3827000000000005e-01 1 0 0 0 0 +P 438 -211 -2.1550620238062704e-01 4.0104914462364860e-01 -5.9206301760771352e-02 4.7986301246925406e-01 1.3957000000000000e-01 1 0 0 0 0 +V -143 0 0 0 0 0 0 2 0 +P 439 2212 -3.1316133468193180e-01 6.3226783732812875e-01 1.0670883973236167e+00 1.5864617487547701e+00 9.3827000000000005e-01 1 0 0 0 0 +P 440 211 -1.3656134001203910e-01 8.4180305408821043e-02 7.6571336719638172e-01 7.9468992003663097e-01 1.3957000000000000e-01 1 0 0 0 0 +V -144 0 0 0 0 0 0 2 0 +P 441 -211 1.0685444223770994e-01 -1.6539225620957393e-01 3.8242266590415475e-01 4.5221604409537064e-01 1.3957000000000000e-01 1 0 0 0 0 +P 442 111 -6.1402112512214591e-01 1.1088767981697505e-01 9.1946862391992579e-01 1.1193570343749397e+00 1.3497999999999999e-01 2 0 0 -212 0 +V -145 0 0 0 0 0 0 2 0 +P 443 211 9.7606484216440248e-02 3.9484400593725694e-01 2.3399496935609863e+00 2.3791328605359197e+00 1.3957000000000000e-01 1 0 0 0 0 +P 444 111 1.3390057130873545e-01 -4.0022089132772154e-01 8.8662696215810521e-01 9.9117763053736829e-01 1.3497999999999999e-01 2 0 0 -213 0 +V -146 0 0 0 0 0 0 2 0 +P 445 22 4.4521386228282923e-02 6.9294890896827888e-02 2.7189184044015768e-01 2.8409348572965798e-01 0 1 0 0 0 0 +P 446 22 -1.2530381878315813e-01 -6.1237208583624381e-01 7.7611359023390527e+00 7.7862655434482386e+00 0 1 0 0 0 0 +V -147 0 5.6913008971348268e-04 2.6971275534858177e-04 2.9382166688662489e-02 2.9389139415471353e-02 0 2 0 +P 447 22 4.2233155950894929e-01 2.7013379931995773e-01 2.3306869194700617e+01 2.3312260462567259e+01 0 1 0 0 0 0 +P 448 22 2.4777890833036781e-01 4.7433913116153387e-02 1.1288556037138038e+01 1.1291374662419651e+01 0 1 0 0 0 0 +V -148 0 7.2343549030833013e-05 -2.6983122416924707e-05 1.2103140682944620e-03 1.2137033258959099e-03 0 2 0 +P 449 22 -8.2133726674077593e-03 8.9676039303206116e-03 6.5846311157447568e-01 6.5857539182326363e-01 0 1 0 0 0 0 +P 450 22 2.1389614826006173e-01 -8.5684375324878909e-02 2.7826281846175691e+00 2.7921520353024070e+00 0 1 0 0 0 0 +V -149 0 -7.5113701994512593e-05 3.5527295882971153e-05 1.4000468538991121e-03 1.4027906502289988e-03 0 2 0 +P 451 22 -3.5454234029793569e-01 1.4220281432805057e-01 6.5246306076120621e+00 6.5358034301266219e+00 0 1 0 0 0 0 +P 452 22 -7.0619670035219672e-03 2.8828873325877486e-02 2.1532441192296625e-01 2.1736047866429073e-01 0 1 0 0 0 0 +V -150 0 -5.0929560966308059e-06 -6.7782820668099025e-05 -3.1669389769068959e-03 3.1676977988036627e-03 0 2 0 +P 453 22 -5.5002501226308863e-02 -1.3676652957384980e-01 -8.4032580701003532e+00 8.4045509428796699e+00 0 1 0 0 0 0 +P 454 22 4.6521748008517740e-03 -5.3335256863215397e-01 -2.2905947866752722e+01 2.2912156910242874e+01 0 1 0 0 0 0 +V -151 0 0 0 0 0 0 1 0 +P 455 310 5.3036395409351500e-01 -1.2314697068839459e-01 -3.4041141413635536e+01 3.4049132665491257e+01 4.9767000000000000e-01 2 0 0 -214 0 +V -152 0 -4.4479064681634288e-05 1.1936817293250047e-04 3.6557060285476724e-03 3.6579362557860790e-03 0 2 0 +P 456 22 -3.6430534851601371e-01 8.0739446461353415e-01 2.4463146973768701e+01 2.4479178173881873e+01 0 1 0 0 0 0 +P 457 22 -2.9100960940826009e-01 9.5126997185016959e-01 2.9396772505842296e+01 2.9413599489221941e+01 0 1 0 0 0 0 +V -153 0 -3.2688397628246890e-06 3.1738916671182650e-06 2.3160543367457004e-04 2.3165309436201878e-04 0 2 0 +P 458 22 -3.6863888541709272e-01 3.2058557735849108e-01 2.2617594353889025e+01 2.2622869935030884e+01 0 1 0 0 0 0 +P 459 22 -1.5354506319408460e-02 5.2254180686976508e-02 4.5892932496961736e+00 4.5896164101121171e+00 0 1 0 0 0 0 +V -154 0 -4.2854531593272900e-05 6.1890366858268527e-05 2.8373810259926832e-03 2.8384144995640204e-03 0 2 0 +P 460 22 -2.8096998668766182e-01 3.1168131470771288e-01 1.4142709945501387e+01 1.4148934022672554e+01 0 1 0 0 0 0 +P 461 22 -1.2923082607457784e-01 2.8072928560789373e-01 1.3016518255258111e+01 1.3020186520464037e+01 0 1 0 0 0 0 +V -155 0 4.8419069681422279e-05 2.6022741558005558e-04 2.3948279049090002e-02 2.3949943892512968e-02 0 2 0 +P 462 22 -1.3484395339657791e-02 2.2805801648532943e-02 6.3682372456238570e+00 6.3682923574579586e+00 0 1 0 0 0 0 +P 463 22 7.9910814805674857e-02 3.3420179014562956e-01 2.6486554060175386e+01 2.6488782957271795e+01 0 1 0 0 0 0 +V -156 0 6.4458166593028880e-05 -2.1206028966113369e-05 4.2733005526343507e-04 4.3362718820302870e-04 0 2 0 +P 464 22 1.3203767002721134e-01 -4.0120215621858198e-02 4.9619347728990221e-01 5.1502577111519743e-01 0 1 0 0 0 0 +P 465 22 1.7235440236200694e-01 -6.0021433533256625e-02 1.5217956773985872e+00 1.5327004587478847e+00 0 1 0 0 0 0 +V -157 0 1.3825358825667505e-05 -2.6586918860885477e-05 3.7356803793201702e-04 3.7477872265037859e-04 0 2 0 +P 466 22 2.0055595174990928e-01 -3.1804893931032557e-01 4.0786477119442743e+00 4.0959425015162259e+00 0 1 0 0 0 0 +P 467 22 4.5893050301397365e-01 -9.5017947224512112e-01 1.3741002689570054e+01 1.3781459035633496e+01 0 1 0 0 0 0 +V -158 0 -3.6148472811710377e-05 1.5352758396390464e-06 5.2433582314645737e-04 5.2587029576442771e-04 0 2 0 +P 468 22 -1.1858415852348296e-01 2.7338446840418432e-02 9.6412493381788344e-01 9.7177491289789286e-01 0 1 0 0 0 0 +P 469 22 -1.6198332741124952e-01 -1.5422356089156571e-02 3.1055237191692759e+00 3.1097835966107890e+00 0 1 0 0 0 0 +V -159 0 -4.4031131225084997e-05 7.8418723750972992e-05 2.4110118934396308e-04 2.5779396306412045e-04 0 2 0 +P 470 22 -6.4845192110584787e-02 1.0986152109814992e-01 2.2013532446554113e-01 2.5442879914704414e-01 0 1 0 0 0 0 +P 471 22 -3.1902888396194151e-01 5.7381192287508798e-01 1.8818432921245529e+00 1.9930814654072178e+00 0 1 0 0 0 0 +V -160 0 -2.1425183974074652e-06 2.7878514019335631e-06 2.1359544375097700e-05 2.1647542010680192e-05 0 2 0 +P 472 22 -1.0106649381417249e-01 1.1138815142136117e-01 7.6457489296899328e-01 7.7922815876192886e-01 0 1 0 0 0 0 +P 473 22 -1.7879141260115867e+00 2.3465591294882859e+00 1.8067359255970079e+01 1.8306623040704810e+01 0 1 0 0 0 0 +V -161 0 0 0 0 0 0 1 0 +P 474 130 -1.4318375653716335e+00 -3.5863038245912704e+00 -2.3209274506000757e+00 4.5327821032712690e+00 4.9767000000000000e-01 1 0 0 0 0 +V -162 0 -6.6832389808381253e-07 -2.1252586175838513e-06 -4.4691882492897211e-07 2.3205379709460523e-06 0 2 0 +P 475 22 -8.9978113978881197e-02 -4.2173754181458945e-01 -1.3491536512632196e-01 4.5184153297165791e-01 0 1 0 0 0 0 +P 476 22 -1.0157807603458334e-01 -1.8740788115304952e-01 6.8186928478867403e-03 2.1327520723543308e-01 0 1 0 0 0 0 +V -163 0 0 0 0 0 0 1 0 +P 477 310 -2.9659176075774984e-01 -4.6221487895696203e-02 -1.5427574353175526e+00 1.6485991118583883e+00 4.9767000000000000e-01 2 0 0 -215 0 +V -164 0 4.3951762908156004e-06 5.6519226407509845e-06 -2.2852952185035586e-04 2.2864708816162558e-04 0 2 0 +P 478 22 1.2883066985740826e-01 8.7348139542502687e-02 -3.9328723885587951e+00 3.9359512527044345e+00 0 1 0 0 0 0 +P 479 22 2.4737772584635406e-01 3.9643239817152115e-01 -1.5628282636309663e+01 1.5635266948342874e+01 0 1 0 0 0 0 +V -165 0 0 0 0 0 0 1 0 +P 480 130 8.0055295557585249e-01 1.1955698343636345e+00 -1.3612825986589098e+02 1.3613677343689312e+02 4.9767000000000000e-01 1 0 0 0 0 +V -166 0 4.3515025435173503e-07 -3.0950593427809659e-05 -1.2973154490519804e-05 3.4193622002278503e-05 0 2 0 +P 481 22 -2.4004418795421954e-02 -6.1969176712752407e-02 5.3372209402327469e-03 6.6669910090888906e-02 0 1 0 0 0 0 +P 482 22 3.2985457263139006e-02 -5.7681815569483774e-01 -2.7308933268050717e-01 6.3905008313428557e-01 0 1 0 0 0 0 +V -167 0 -1.3223933000948637e-05 -6.6595414819650182e-05 -1.8865608512255433e-05 7.3501681277001948e-05 0 2 0 +P 483 22 -3.7755194341771034e-02 -4.2694828777757612e-02 -5.4028993871350510e-02 7.8533020334744422e-02 0 1 0 0 0 0 +P 484 22 -4.7654369480567102e-02 -3.8742572097895756e-01 -6.7818522609498041e-02 3.9619310975279542e-01 0 1 0 0 0 0 +V -168 0 -3.2646319843143344e-06 3.0632601190069616e-06 -4.8334168988367450e-05 4.8992552461397858e-05 0 2 0 +P 485 22 -9.1214787830148150e-03 3.2607644996470279e-02 -8.2554522871056302e-01 8.2623930222071917e-01 0 1 0 0 0 0 +P 486 22 -5.7282665603845380e-02 2.9700501285987765e-02 -1.5759441819103331e-01 1.7029217304471525e-01 0 1 0 0 0 0 +V -169 0 5.0024187811615822e-05 1.5817151124905720e-04 -1.3497703728087306e-03 1.3680935638846403e-03 0 2 0 +P 487 22 -3.6296416944126709e-03 5.0920677562811878e-02 -8.6736175513884239e-01 8.6886276475621793e-01 0 1 0 0 0 0 +P 488 22 4.8867158637845319e-02 9.2115856024567719e-02 -3.5325296707559606e-01 3.6832185500209919e-01 0 1 0 0 0 0 +V -170 0 0 0 0 0 0 1 0 +P 489 130 2.9288036009376067e-01 1.2928728715900386e+00 -1.1628140700302700e+01 1.1714035630061840e+01 4.9767000000000000e-01 1 0 0 0 0 +V -171 0 -6.0930955149452699e-06 2.9697104970938514e-05 -2.4111678378370367e-04 2.4303743351679105e-04 0 2 0 +P 490 22 -9.4973743741273875e-02 6.4498168710204640e-01 -4.7230425563942617e+00 4.7678247008681511e+00 0 1 0 0 0 0 +P 491 22 -1.5474800128245778e-01 5.7213576285513090e-01 -5.1589794557811262e+00 5.1929139507804729e+00 0 1 0 0 0 0 +V -172 0 -1.1660551399751801e-05 1.9256296796349287e-05 -6.7620205483465163e-06 2.3802198800847105e-05 0 2 0 +P 492 22 -3.7027549960274636e-01 6.2212464289035718e-01 -2.5897423070960202e-01 7.6890224935888085e-01 0 1 0 0 0 0 +P 493 22 -4.9683819629574119e-02 7.1398417580221585e-02 1.5437415960085871e-02 8.8343249756098599e-02 0 1 0 0 0 0 +V -173 0 3.5746214235745734e-05 -9.2255200399066187e-06 -1.3563013280753561e-05 4.1145824932297914e-05 0 2 0 +P 494 22 3.2749523814777576e-01 -4.6886764491434571e-02 -7.1889393460914761e-02 3.3855514260770275e-01 0 1 0 0 0 0 +P 495 22 7.1660498494050137e-02 -5.6128878595896443e-02 -7.9560338291332564e-02 1.2089468758336715e-01 0 1 0 0 0 0 +V -174 0 1.1296287249582715e-05 5.8978061805748885e-06 4.9262804651243690e-05 5.0924397210535035e-05 0 2 0 +P 496 22 4.4736495198225906e-01 2.4974300382315295e-01 1.7169319940927230e+00 1.7917484311587706e+00 0 1 0 0 0 0 +P 497 22 3.0750215958027394e-01 1.4437409126494161e-01 1.5750231618747674e+00 1.6112415761818897e+00 0 1 0 0 0 0 +V -175 0 1.3475981409980000e-04 -4.1605118725126302e-04 6.3692988934369579e-03 6.3846592284279354e-03 0 2 0 +P 498 22 1.2364083130382091e-01 -2.9386391435205311e-01 5.5204694179527154e+00 5.5296677702982304e+00 0 1 0 0 0 0 +P 499 22 1.4321552040215901e-01 -5.3001598407664563e-01 7.0922510505452010e+00 7.1134697997967420e+00 0 1 0 0 0 0 +V -176 0 4.7324747145545989e-05 1.9479376242148272e-06 2.3089887975729631e-04 2.3950742171524708e-04 0 2 0 +P 500 22 1.4135983992053097e-01 -4.0296581708771914e-02 6.3148368395046228e-01 6.4836568534694761e-01 0 1 0 0 0 0 +P 501 22 8.9503713642537751e-03 4.6483512089294167e-02 1.0188440558207200e-01 1.1234437299894350e-01 0 1 0 0 0 0 +V -177 0 -9.0223456025112655e-07 -6.7037449449237448e-06 6.4286516403409821e-05 6.4689761422605756e-05 0 2 0 +P 502 22 2.4050370315804339e-02 -2.6635670283075513e-01 2.2348889868834592e+00 2.2508338670697521e+00 0 1 0 0 0 0 +P 503 22 -7.2745052887069936e-02 -9.5452461341506492e-02 1.2347314951840711e+00 1.2405502328786151e+00 0 1 0 0 0 0 +V -178 0 -1.1141606101247371e-05 3.3900741233981917e-06 2.7231501048168288e-05 3.0249992775056765e-05 0 2 0 +P 504 22 -1.5484032034025672e-01 3.3070965672253198e-02 2.0512268590893062e-01 2.5912261547009452e-01 0 1 0 0 0 0 +P 505 22 -8.9511477232786629e-02 4.1278342536144701e-02 3.9210415654668013e-01 4.0430418709198446e-01 0 1 0 0 0 0 +V -179 0 -5.7452969269882372e-05 1.0655611802714043e-04 2.3621002466825029e-04 2.6627862107816958e-04 0 2 0 +P 506 22 -1.5904748085006137e-01 4.2641811118253042e-01 9.2542971764623405e-01 1.0312849601405114e+00 0 1 0 0 0 0 +P 507 22 -2.0488139654333862e-01 2.4854871656929914e-01 5.7081408313582516e-01 6.5542472387299155e-01 0 1 0 0 0 0 +V -180 0 1.2541142567955775e-05 2.1336951076054253e-05 6.7047166629993952e-05 7.7186942912155069e-05 0 2 0 +P 508 22 -3.7656617144148925e-02 1.4185309883022947e-02 3.3350767109029379e-02 5.2263921570995034e-02 0 1 0 0 0 0 +P 509 22 9.5720803038463378e-02 8.4602554698270271e-02 2.7707064192895242e-01 3.0510359718417601e-01 0 1 0 0 0 0 +V -181 0 1.2584156716671960e-05 2.9848520962308407e-05 2.8661370545072881e-02 2.8661440450187415e-02 0 2 0 +P 510 22 -4.0194037712829624e-02 4.7510012834891861e-02 1.6029784814713764e+01 1.6029905613197329e+01 0 1 0 0 0 0 +P 511 22 7.1426379875077009e-02 2.6570375761728566e-02 5.5104241235417319e+01 5.5104293932902152e+01 0 1 0 0 0 0 +V -182 0 0 0 0 0 0 1 0 +P 512 130 1.8498251272975502e-01 2.1534491855260202e-01 5.4113827121414495e+01 5.4116860155770283e+01 4.9767000000000000e-01 1 0 0 0 0 +V -183 0 -2.2239658429523491e-05 7.9787361538852465e-06 2.4815441155492533e-03 2.4817083833750635e-03 0 2 0 +P 513 22 -2.6447337141224440e-02 -3.9309724692202258e-02 3.8222339420741900e+00 3.8225275700825549e+00 0 1 0 0 0 0 +P 514 22 -1.6079201520980721e-01 1.0648402032122213e-01 1.7070295252939683e+01 1.7071384622849845e+01 0 1 0 0 0 0 +V -184 0 3.4803808964272598e-06 -2.1082232229174461e-05 5.3342632466181025e-08 2.3123268650157156e-05 0 2 0 +P 515 22 7.1813325473446363e-02 -2.2554379405664721e-01 5.2069084583338858e-02 2.4235995197715629e-01 0 1 0 0 0 0 +P 516 22 -1.8658185022900918e-02 -9.6440795705683577e-02 -5.1254393546604243e-02 1.1079696657636637e-01 0 1 0 0 0 0 +V -185 0 -5.3747799410516562e-05 -4.4440032307684720e-05 -1.5986731409189337e-04 1.7630768596296016e-04 0 2 0 +P 517 22 -1.9710479787187180e-01 -2.3282431232600628e-01 -6.5389094601821218e-01 7.2154752514216858e-01 0 1 0 0 0 0 +P 518 22 -8.4630153565993557e-02 -1.2123114591746497e-04 -1.8410075719873392e-01 2.0262123874545424e-01 0 1 0 0 0 0 +V -186 0 7.6865554396668605e-05 4.3142338883686831e-04 -6.8937030148838192e-03 6.9079097940412853e-03 0 2 0 +P 519 22 9.1906525835010915e-04 -1.4789438215505925e-03 -2.5924226335474737e-01 2.5924811101542949e-01 0 1 0 0 0 0 +P 520 22 1.6227427277457440e-01 9.1743438683356748e-01 -1.4376785736923154e+01 1.4406942316784155e+01 0 1 0 0 0 0 +V -187 0 9.6604711234698149e-06 -4.7395522046942198e-08 -7.1709104054133583e-05 7.2905658342372988e-05 0 2 0 +P 521 22 8.5947444322755293e-02 -6.6719307979624706e-02 -6.4429326409960863e-01 6.5341582427043943e-01 0 1 0 0 0 0 +P 522 22 6.0103580822178510e-02 6.6002762741430479e-02 -4.3983483125659523e-01 4.4880227707049974e-01 0 1 0 0 0 0 +V -188 0 -4.4469111055583206e-06 1.3188593151499278e-05 -3.2261949631913662e-04 3.2302176841489226e-04 0 2 0 +P 523 22 -3.1712032262728999e-02 -2.0883585220431546e-03 -3.0080324114774448e-01 3.0247744397977422e-01 0 1 0 0 0 0 +P 524 22 -4.2167611336134614e-02 2.2119967837399371e-01 -5.0591000356033122e+00 5.0641090603777545e+00 0 1 0 0 0 0 +V -189 0 -4.3236035757693638e-05 5.8582752132276060e-05 -5.7308757738288424e-04 5.7847833554835050e-04 0 2 0 +P 525 22 -1.9920557528452923e-01 2.2951795799458932e-01 -1.9774628498852040e+00 2.0006800536174132e+00 0 1 0 0 0 0 +P 526 22 5.3730450744935102e-03 3.3115812041689355e-02 -5.9176009596032075e-01 5.9271033211132973e-01 0 1 0 0 0 0 +V -190 0 -4.6563360052264990e-06 -2.1757073182779297e-05 1.1881217619907731e-06 2.6347063784305840e-05 0 2 0 +P 527 22 2.6481780274558765e-02 3.2840805847918842e-03 -9.1585090480877599e-03 2.8212553230456044e-02 0 1 0 0 0 0 +P 528 22 -7.1181574739910172e-02 -2.1214716485238358e-01 2.0564214843628897e-02 2.2471342431971594e-01 0 1 0 0 0 0 +V -191 0 -6.7958182803273389e-06 -2.2789598315534417e-05 3.3178587244766811e-05 6.9711989667256509e-05 0 2 0 +P 529 22 4.4007402269560576e-02 1.9050423208921346e-02 4.4254119127109588e-02 6.5253330479526792e-02 0 1 0 0 0 0 +P 530 22 -6.0239884439087552e-02 -7.3485626307050064e-02 3.4996208595725116e-02 1.0126063187166835e-01 0 1 0 0 0 0 +V -192 0 -9.2399879437066819e+00 -3.0387131447697538e+01 -7.5942819906423047e+00 5.6183581317030246e+01 0 2 0 +P 531 -211 7.2339661850637116e-02 -3.2521430738104773e-01 2.9845760368060501e-02 3.6244713644053916e-01 1.3957000000000000e-01 1 0 0 0 0 +P 532 211 -1.7292216029916171e-01 -5.5668170439967064e-03 -1.1251381807496415e-01 2.4914294517873958e-01 1.3957000000000000e-01 1 0 0 0 0 +V -193 0 -3.3735231507927859e-06 -2.4310362020575016e-05 1.7226629499045319e-05 3.2395411854205048e-05 0 2 0 +P 534 22 4.6605103750219246e-03 -4.7604324203406684e-02 -1.8116794935990260e-02 5.1147925652673905e-02 0 1 0 0 0 0 +P 533 22 -4.1799321747595368e-02 -2.2002625342251989e-01 2.0776320166063492e-01 3.0549023463604780e-01 0 1 0 0 0 0 +V -194 0 -1.7223995802044271e-06 -9.9525183324882429e-07 7.9935797423441558e-06 9.2576333951367783e-06 0 2 0 +P 535 22 1.0874576406073361e-03 -1.8699332423074717e-02 2.3331489504831751e-01 2.3406556314117663e-01 0 1 0 0 0 0 +P 536 22 -5.6116641951763281e-02 -1.3098107147460443e-02 2.2073098540934744e-02 6.1707856825420224e-02 0 1 0 0 0 0 +V -195 0 -1.0561297718282755e-04 1.7322491781130437e-04 5.9462272496750264e-04 6.2882871984594924e-04 0 2 0 +P 537 22 -2.1748912590842331e-01 4.0316638854421255e-01 1.5358537367294918e+00 1.6027137477934530e+00 0 1 0 0 0 0 +P 538 22 -3.2584382015507379e-01 4.8800065774682477e-01 1.5232221985470455e+00 1.6323371904239272e+00 0 1 0 0 0 0 +V -196 0 0 0 0 0 0 1 0 +P 539 310 5.7209538578317543e-01 -9.1601292232158002e-02 -1.3829998035577337e-01 7.7619987157909842e-01 4.9767000000000000e-01 2 0 0 -216 0 +V -197 0 2.4019926994931783e-07 -6.0416454152739986e-07 4.2226818955174602e-07 8.2968315987892530e-07 0 2 0 +P 540 22 6.6848277001447187e-02 -6.0958209970164400e-02 5.6178057143901434e-03 9.0643009889750908e-02 0 1 0 0 0 0 +P 541 22 4.2850452954082546e-02 -2.1496304034714489e-01 1.8723159014023277e-01 2.8827233370564426e-01 0 1 0 0 0 0 +V -198 0 6.5287521213597090e-06 -1.6117799071818023e-06 -3.0820813596859984e-06 7.4907746327396357e-06 0 2 0 +P 542 22 2.3363370799508734e-01 -5.5730263288117409e-03 -1.4570219730322215e-01 2.7539952511393773e-01 0 1 0 0 0 0 +P 543 22 5.1382275035746849e-01 -1.7895462591953512e-01 -2.0715568038038368e-01 5.8219588871510730e-01 0 1 0 0 0 0 +V -199 0 0 0 0 0 0 3 0 +P 544 211 7.2039523215605261e-01 -3.6736437975442332e-01 -2.9003951596164219e+00 3.0142491179150896e+00 1.3957000000000000e-01 1 0 0 0 0 +P 545 -211 2.0811046164856656e-01 -9.7076490529901388e-02 -9.3664893491201751e-01 9.7443564253007409e-01 1.3957000000000000e-01 1 0 0 0 0 +P 546 111 7.6439448341283889e-01 -1.6319820437628141e-01 -2.4284510447741372e+00 2.5547067654523916e+00 1.3497999999999999e-01 2 0 0 -217 0 +V -200 0 -1.6432909207964205e-05 -7.9824489275475590e-05 -1.0522786643367612e-04 1.3838811709899012e-04 0 2 0 +P 547 22 2.0913225215301631e-02 3.6758058149488726e-03 -2.1306516927539914e-02 3.0080595088506565e-02 0 1 0 0 0 0 +P 548 22 -7.9439325183585624e-02 -2.8797215164941031e-01 -3.5346441087396047e-01 4.6279115837026358e-01 0 1 0 0 0 0 +V -201 0 1.6164268726202693e-07 -2.2039284754121565e-07 5.0397629773053878e-06 5.1427813216031760e-06 0 2 0 +P 549 22 -5.6717912031914300e-02 -1.7745651231293166e-02 2.5677103342421997e-01 2.6355870937729325e-01 0 1 0 0 0 0 +P 550 22 7.8822474490421540e-02 -1.2392968377188934e-02 4.3241421457486973e-01 4.3971424938975157e-01 0 1 0 0 0 0 +V -202 0 -3.8148426826111342e-05 6.7214870004697462e-04 5.3066136439277271e-03 5.3498371418724423e-03 0 2 0 +P 551 22 -7.0179649086229604e-02 3.3943873319233780e-01 3.0226410969029458e+00 3.0424501700806421e+00 0 1 0 0 0 0 +P 552 22 1.0198438854068275e-02 7.1738839806950361e-01 5.3210085651958536e+00 5.3691602949369495e+00 0 1 0 0 0 0 +V -203 0 0 0 0 0 0 1 0 +P 553 130 -7.8781697561949271e-01 5.4422089375246685e-01 9.1458600181790075e+00 9.2093030609974118e+00 4.9767000000000000e-01 1 0 0 0 0 +V -204 0 0 0 0 0 0 1 0 +P 554 310 -7.2639469362242060e-01 3.6391099384214726e-01 1.1382133321844409e+01 1.1421940064958441e+01 4.9767000000000000e-01 2 0 0 -218 0 +V -205 0 1.1779236187810234e-05 8.8136515821122369e-06 4.6043112317678921e-04 4.6087946946870634e-04 0 2 0 +P 555 22 7.9864146623307694e-02 1.2156376086533430e-01 3.1649610887278126e+00 3.1683015517833417e+00 0 1 0 0 0 0 +P 556 22 3.3520899152715923e-02 -3.6724958742843213e-02 1.2670753477375407e+00 1.2680505944633595e+00 0 1 0 0 0 0 +V -206 0 3.9918137703655458e-05 -1.6314529835601096e-05 -4.1782943538884980e-04 4.2011896019205453e-04 0 2 0 +P 557 22 4.8444453326069842e-01 -1.7062202826696454e-01 -4.3743293539038568e+00 4.4043791479345922e+00 0 1 0 0 0 0 +P 558 22 2.1773520565967508e-01 -1.1635860158145582e-01 -2.9754965831844515e+00 2.9857206601569413e+00 0 1 0 0 0 0 +V -207 0 -9.8382711082984495e-05 1.0381505708631199e-04 -4.2367310508488541e-04 4.5612164498563096e-04 0 2 0 +P 559 22 -1.1820584450122643e-02 -1.6060206837071978e-02 -1.1815502929093931e-02 2.3178925123038745e-02 0 1 0 0 0 0 +P 560 22 -1.3581064020573216e-01 1.7184310656263610e-01 -6.2394029876529555e-01 6.6126853825772958e-01 0 1 0 0 0 0 +V -208 0 -4.3921776029805596e-05 2.9788443136967845e-05 -7.7343397718084210e-05 9.4323521818948618e-05 0 2 0 +P 561 22 -3.7219271349381805e-01 3.1341750210245684e-01 -6.3166726390592265e-01 7.9734652372254633e-01 0 1 0 0 0 0 +P 562 22 -2.2530657193845258e-01 9.1815962874002371e-02 -4.2049020891801436e-01 4.8580370335460860e-01 0 1 0 0 0 0 +V -209 0 -4.5476606945718249e-05 2.0103734705655713e-05 -9.3567140646843043e-05 1.0724373122600039e-04 0 2 0 +P 563 22 -2.9119152917936542e-01 1.1654730397796420e-01 -6.8492021847390561e-01 7.5332030797310356e-01 0 1 0 0 0 0 +P 564 22 -7.9559396942135666e-02 4.7349669899603999e-02 -7.7891837640231998e-02 1.2099102137088527e-01 0 1 0 0 0 0 +V -210 0 -3.1513825920006135e-05 4.0214012888618100e-06 -1.2104636768091706e-04 1.2582968009452371e-04 0 2 0 +P 565 22 -2.0821687003115755e-01 -3.5550488162903690e-03 -9.7529066000740405e-01 9.9727567644826054e-01 0 1 0 0 0 0 +P 566 22 -1.1651249793019035e-01 4.4992959343746600e-02 -2.7201300190967870e-01 2.9931689189278221e-01 0 1 0 0 0 0 +V -211 0 -7.6322960167519920e-05 3.8032859468481829e-06 -2.2295713646956259e-04 2.3642455954656021e-04 0 2 0 +P 567 22 -2.3596479193032335e-01 7.8693352480712103e-02 -7.1353458927233204e-01 7.5564782593706314e-01 0 1 0 0 0 0 +P 568 22 -3.1705682481445735e-01 -5.1135467688872380e-02 -9.0197030996840699e-01 9.5743945306305900e-01 0 1 0 0 0 0 +V -212 0 -1.8139484355414673e-04 3.2758568898555692e-05 2.7163050319436966e-04 3.3068177270168745e-04 0 2 0 +P 569 22 -2.5438740051631026e-01 4.5020203517792519e-02 5.0087060048465426e-01 5.6356998384946588e-01 0 1 0 0 0 0 +P 570 22 -3.5963372460583565e-01 6.5867476299182534e-02 4.1859802343527158e-01 5.5578705052547384e-01 0 1 0 0 0 0 +V -213 0 2.4428922970138252e-05 -7.3016606499326774e-05 1.6175690327614769e-04 1.8083120743594527e-04 0 2 0 +P 571 22 2.9367307545180181e-02 -1.9052347198993341e-01 5.3467463287475814e-01 5.6836484336323057e-01 0 1 0 0 0 0 +P 572 22 1.0453326376355529e-01 -2.0969741933778815e-01 3.5195232928334702e-01 4.2281278717413778e-01 0 1 0 0 0 0 +V -214 0 4.9579155221870880e-01 -1.1511948969643888e-01 -3.1822129333071317e+01 3.1829599665719567e+01 0 2 0 +P 573 211 3.7577127580332814e-01 -7.2432832855482146e-02 -2.9616994036592914e+01 2.9619795173422023e+01 1.3957000000000000e-01 1 0 0 0 0 +P 574 -211 1.5459267829018677e-01 -5.0714137832912419e-02 -4.4241473770426190e+00 4.4293374920692319e+00 1.3957000000000000e-01 1 0 0 0 0 +V -215 0 -4.7708493299121385e-01 -7.4349925969399086e-02 -2.4816142086001607e+00 2.6518666425556883e+00 0 2 0 +P 575 211 -1.8710039471863932e-01 -7.5516186697918888e-02 -1.3934778944835580e+00 1.4149097778556750e+00 1.3957000000000000e-01 1 0 0 0 0 +P 576 -211 -1.0949136603911050e-01 2.9294698802222685e-02 -1.4927954083399445e-01 2.3368933400271319e-01 1.3957000000000000e-01 1 0 0 0 0 +V -216 0 1.0046434401596073e+01 -1.6085890506737788e+00 -2.4286538834502935e+00 1.3630665945105468e+01 0 2 0 +P 577 211 4.2277088197502372e-01 1.2823578574380656e-01 -9.4354533417582487e-02 4.7282364393896442e-01 1.3957000000000000e-01 1 0 0 0 0 +P 578 -211 1.4932450380815165e-01 -2.1983707797596455e-01 -4.3945446938190864e-02 3.0337622764013394e-01 1.3957000000000000e-01 1 0 0 0 0 +V -217 0 2.4449966258954613e-05 -5.2200672258999185e-06 -7.7676575897242336e-05 8.1714998697994160e-05 0 2 0 +P 579 22 7.4264847022229474e-01 -1.4651608537616675e-01 -2.3931683946888840e+00 2.5100296171430410e+00 0 1 0 0 0 0 +P 580 22 2.1746013190544179e-02 -1.6682119000114660e-02 -3.5282650085253067e-02 4.4677148309350663e-02 0 1 0 0 0 0 +V -218 0 -3.3167578833116316e+01 1.6616374930143870e+01 5.1971443012433133e+02 5.2153202777739250e+02 0 2 0 +P 581 211 -4.1414101287442306e-01 3.9477834598429262e-01 8.2622830335795356e+00 8.2832459478684441e+00 1.3957000000000000e-01 1 0 0 0 0 +P 582 -211 -3.1225368074799753e-01 -3.0867352142145359e-02 3.1198502882648715e+00 3.1386941170899947e+00 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 6 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 168 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 5.1553292069003653e-01 3.8485835711180655e-01 1.7290951843317296e+03 1.7290953040157517e+03 0 3 0 0 -3 0 +P 34 2101 -5.1553292069003653e-01 -3.8485835711180655e-01 4.2219673894488587e+03 4.2219674782123802e+03 5.7933000000000001e-01 2 0 0 -13 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 -4.9797130516589477e-01 1.0933883123411841e+00 -1.3097958796984543e+02 1.3098509815308313e+02 0 3 0 0 -4 0 +P 19 2103 2.9142878896144259e-01 -6.5062234924971918e-01 -6.7718730985476304e+03 6.7718731800014712e+03 7.7132999999999996e-01 2 0 0 -9 0 +P 47 2 2.0654251620445219e-01 -4.4276596309146488e-01 -5.7621689243983575e+01 5.7624705403492385e+01 3.3000000000000002e-01 2 0 0 -13 0 +V -3 0 0 0 0 0 0 4 0 +P 5 2 -3.1543729466487069e+00 -4.6848142715162355e+00 8.5430129997171412e+02 8.5431996856377293e+02 0 3 0 0 -5 0 +P 35 21 -5.5465777356364798e-01 9.8068482118457034e-01 7.0650666253777854e+02 7.0650756089247534e+02 0 2 0 0 -13 0 +P 36 21 3.9295485495835827e+00 2.0268615205012281e+00 5.6968906941557279e+01 5.7140229939532411e+01 0 2 0 0 -13 0 +P 37 21 7.2056915500682295e-01 2.7350626169661183e+00 3.1393811690569535e+01 3.1520964450486176e+01 0 2 0 0 -13 0 +V -4 0 0 0 0 0 0 14 0 +P 6 -1 2.6542267443335232e+00 4.7733493416006816e+00 -9.5183018160378474e-01 5.5439845095298299e+00 0 3 0 0 -5 0 +P 11 1 1.0452289512758353e+00 1.6158783855979435e+00 -6.1449917248529795e+00 6.4477430017130333e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 2.0507170473914881e-02 -8.9170706750033535e-01 6.3770653890766849e-01 1.0964632543028934e+00 0 2 0 0 -9 0 +P 13 21 2.4396972905842967e-01 -1.4625120878663037e-01 1.0957508431732279e+00 1.1320691476598213e+00 0 2 0 0 -9 0 +P 14 21 2.2404339997558728e-01 3.9772174914434660e-02 2.5679435268111024e+00 2.5780052808055083e+00 0 2 0 0 -9 0 +P 15 21 2.2907916028215539e-01 5.6145433093357851e-02 2.9566325145909338e+00 2.9660251849350718e+00 0 2 0 0 -9 0 +P 16 21 -6.4153613197677273e-01 -7.0041909254235180e-01 1.0594798881277963e+00 1.4229030701972845e+00 0 2 0 0 -9 0 +P 17 21 -6.0129688723679253e-01 1.0936253434099126e+00 -4.3678739538393438e+00 4.5426751166000470e+00 0 2 0 0 -9 0 +P 18 21 -3.0305601865621408e+00 -1.6350966724517046e+00 -5.7074862415394945e+00 6.6658259330709209e+00 0 2 0 0 -9 0 +P 44 21 4.9246236874230154e-01 -5.4861752836502131e-01 4.3982393709953467e+00 4.4595975089272537e+00 0 2 0 0 -13 0 +P 45 21 4.3766303360700642e-01 2.8042708174598313e-01 -4.3159676870355774e+00 4.3471560076327940e+00 0 2 0 0 -13 0 +P 46 21 -1.4413565938367516e+00 2.1405263273210222e+00 -1.0566874068613508e+02 1.0570024654645897e+02 0 2 0 0 -13 0 +P 42 21 -6.7308225475211777e-03 8.7119620191138739e-02 7.4004359099556938e-02 1.1450666950073547e-01 0 2 0 0 -13 0 +P 43 21 -5.4922530444249185e-01 -5.7443001559112279e+00 6.3312048654001273e+01 6.3574477091698256e+01 0 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 1.3362652386696274e+01 -5.2304954478332810e+00 3.2435236228283662e+02 3.2466963744688843e+02 0 3 0 0 -6 0 +P 8 24 -1.3862798589011460e+01 5.3190305179177280e+00 5.2899710750727365e+02 5.3519431562641421e+02 7.9840756868868453e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 1.3362652386696274e+01 -5.2304954478332810e+00 3.2435236228283662e+02 3.2466963744688843e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -1.3862798589011460e+01 5.3190305179177280e+00 5.2899710750727365e+02 5.3519431562641421e+02 7.9840756868868453e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 14 0 +P 20 -3 7.5856117110311561e-01 2.0869673719529196e+01 5.4238786725784678e+01 5.8122411182736293e+01 5.0000000000000000e-01 2 0 0 -11 0 +P 21 21 8.7653865698945155e-01 1.9452440200741499e+00 3.7291978086873669e+00 4.2964183468500563e+00 0 2 0 0 -11 0 +P 22 21 -2.0857452765265194e-01 -7.8097599171663326e-02 5.4489705676514189e-01 5.8865556232250016e-01 0 2 0 0 -11 0 +P 23 21 4.3330618320281716e-01 -2.4374988476555451e-01 8.2552704145238334e+00 8.2702271958899356e+00 0 2 0 0 -11 0 +P 24 21 2.6578215572600017e-01 -6.1069772931963884e-01 4.5356490599717514e+00 4.5842888506420660e+00 0 2 0 0 -11 0 +P 25 21 1.6304916049466662e+00 -3.6620941265445184e-01 9.3379838052457362e+00 9.4863351066020183e+00 0 2 0 0 -11 0 +P 26 21 2.6494131576136009e+00 -1.8737085154722346e+00 9.4375769353402248e+00 9.9798813665872306e+00 0 2 0 0 -11 0 +P 27 21 4.8537372653729438e-01 -5.1150354578642432e-01 3.0414025015288576e+01 3.0422198164537093e+01 0 2 0 0 -11 0 +P 28 21 -5.8689790026581257e-01 -6.6235167154779151e-01 4.0123127325052408e+01 4.0132885583078945e+01 0 2 0 0 -11 0 +P 29 21 4.1758121948632577e-02 4.2034989308576348e-01 1.8538918442599272e+01 1.8543730336550770e+01 0 2 0 0 -11 0 +P 30 21 -2.5101750377319743e+00 -1.9382973720472618e+00 6.5945986831567893e+01 6.6022201982453325e+01 0 2 0 0 -11 0 +P 31 21 8.7123477679498865e-02 -8.9409756075726099e-01 2.1265649086936058e+01 2.1284614913998784e+01 0 2 0 0 -11 0 +P 32 21 -1.4970574855498966e+00 -4.0178069904057806e-01 2.0564942822669387e+01 2.0623275252607758e+01 0 2 0 0 -11 0 +P 33 4 -1.6288441893558204e+01 -1.0335743124208518e+01 2.4206509617684176e+02 2.4283719178155783e+02 1.5000000000000000e+00 2 0 0 -11 0 +V -9 0 0 0 0 0 0 1 0 +P 54 92 -2.2191360057483411e+00 -1.2186750535150928e+00 -6.7797759371562515e+03 6.7987248899907554e+03 5.0723955090606091e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 28 0 +P 55 223 4.3914986813415746e-01 3.6830815462664462e-01 -2.8127082215870023e+00 2.9747272598040237e+00 7.8049421970396760e-01 2 0 0 -19 0 +P 56 2214 9.3832780090047519e-03 9.1663704029871862e-01 -1.5328564926592643e+00 2.1740194902635626e+00 1.2395161182511469e+00 2 0 0 -20 0 +P 57 -2214 1.8785147040946842e-01 2.0187292697287215e-01 -1.2056659478163527e+00 1.7030569421445392e+00 1.1707825233078986e+00 2 0 0 -21 0 +P 58 -211 4.3147175131205556e-02 -2.3557373365294690e-02 2.1335388761743965e-01 2.5964648047518357e-01 1.3957000000000000e-01 1 0 0 0 0 +P 59 213 5.4943604442193794e-01 -4.4949867669686494e-01 1.8435024615148028e+00 2.2056789519361231e+00 9.8111634689298655e-01 2 0 0 -22 0 +P 68 -213 -5.2211437200382105e-01 7.9286955835134260e-02 -8.5790184370084488e-01 1.2011011581202928e+00 6.5403255254922366e-01 2 0 0 -29 0 +P 69 223 -9.5592288677932846e-01 -1.7918868574715585e-01 -3.0639090063121457e+00 3.3077794403724048e+00 7.7972384638497683e-01 2 0 0 -30 0 +P 70 211 7.0967562238259174e-02 3.8996758193883674e-01 -2.7910900605680138e+00 2.8225475409556564e+00 1.3957000000000000e-01 1 0 0 0 0 +P 71 221 -7.9420492103182139e-01 -1.1446092486693100e+00 -5.8237902163823607e+00 6.0130795584011185e+00 5.4744999999999999e-01 2 0 0 -31 0 +P 72 -211 -2.2868738909695571e-01 5.3871835020221159e-01 -8.0709761702752125e+00 8.0933708372239366e+00 1.3957000000000000e-01 1 0 0 0 0 +P 73 323 -3.7655233898013341e-01 -5.2497601208213923e-02 -9.3341650875051556e+00 9.3805406988977769e+00 8.5050470942461276e-01 2 0 0 -32 0 +P 74 -323 4.7081490132332504e-01 -1.5865648494546025e-02 -3.2261583443112883e+01 3.2277241798891765e+01 8.8806165162095285e-01 2 0 0 -33 0 +P 75 211 -9.1757958893698033e-02 3.2181918311161262e-01 -1.6614336925585420e+01 1.6618292883789543e+01 1.3957000000000000e-01 1 0 0 0 0 +P 76 -211 -5.6452720769387055e-01 -4.8762420703273973e-01 -5.1472406189058162e+01 5.1478000612026534e+01 1.3957000000000000e-01 1 0 0 0 0 +P 77 2212 4.1629393788876684e-01 4.8136660226161482e-01 -2.2629571529474541e+02 2.2629855528880839e+02 9.3827000000000005e-01 1 0 0 0 0 +P 78 -2212 1.6931670804072943e-01 -2.7905712401517913e-01 -3.0378841559864082e+02 3.0379003990182349e+02 9.3827000000000005e-01 1 0 0 0 0 +P 79 113 -3.4822564064186329e-01 -1.3279027021738696e-01 -5.8612314068012904e+02 5.8612361777362742e+02 6.4836483108520382e-01 2 0 0 -34 0 +P 80 223 3.1115346594947385e-01 9.5015147249963641e-02 -1.6070126147938757e+02 1.6070340807922597e+02 7.6425313486313373e-01 2 0 0 -35 0 +P 81 111 -3.0700454395497856e-01 -2.6156960683994035e-01 -8.8893536417835003e+02 8.8893546592367738e+02 1.3497999999999999e-01 2 0 0 -36 0 +P 82 2214 4.7537093601289926e-01 -3.4129421297560109e-01 -4.4813354731965437e+03 4.4813356767779196e+03 1.2174455488125147e+00 2 0 0 -37 0 +P 60 313 -7.8106864351388319e-02 -2.9683058321885142e-01 1.5358913398195986e+00 1.7943222638789789e+00 8.7545479696332307e-01 2 0 0 -23 0 +P 61 -313 -2.8127679350961809e-01 -4.0985048763141485e-01 1.3613208314607497e+00 1.6998147557129637e+00 8.8830273037505358e-01 2 0 0 -24 0 +P 62 111 5.2287976246185208e-01 3.1551855841571058e-01 1.6575473956800690e+00 1.7716202121286238e+00 1.3497999999999999e-01 2 0 0 -25 0 +P 63 223 4.2062353527572627e-01 -5.3534021227090882e-02 -5.1902760003831150e-01 1.0278601073623364e+00 7.7930526807457901e-01 2 0 0 -26 0 +P 64 313 -1.0164883296342317e+00 3.0317113360459302e-01 -4.7102726088297031e-01 1.4817262414936587e+00 9.2113229978235245e-01 2 0 0 -27 0 +P 65 -311 -5.9377456944595330e-01 4.5203893895285015e-02 -9.6189558945220821e-01 1.2359329210161991e+00 4.9767000000000000e-01 2 0 0 -28 0 +P 66 -211 -1.4391794255819610e-02 -7.1461790982322015e-01 -2.6658286748581150e-01 7.7552052901194535e-01 1.3957000000000000e-01 1 0 0 0 0 +P 67 211 -1.3248904077166496e-01 -4.3317492476548036e-01 -1.1482597221245971e+00 1.2422455617645944e+00 1.3957000000000000e-01 1 0 0 0 0 +V -11 0 0 0 0 0 0 1 0 +P 83 92 -1.3862798589011463e+01 5.3190305179177262e+00 5.2899710750727411e+02 5.3519431562641466e+02 7.9840756868868667e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 21 0 +P 84 311 2.5888648514865614e-01 6.8942858996681888e+00 1.8438621810969973e+01 1.9693365634025938e+01 4.9767000000000000e-01 2 0 0 -38 0 +P 85 -2214 5.9843068834265156e-01 7.0360055489560640e+00 1.7358883624012101e+01 1.8783497498949131e+01 1.2749291146342472e+00 2 0 0 -39 0 +P 86 2212 3.4886119643935054e-01 4.9862993156252911e+00 1.2320349332712045e+01 1.3328775010192965e+01 9.3827000000000005e-01 1 0 0 0 0 +P 87 213 -1.7633909923617705e-01 5.5008275946494822e-01 3.1366704522030666e+00 3.2788845202711485e+00 7.6072048176052942e-01 2 0 0 -40 0 +P 88 -213 9.3596281426276295e-01 3.1300597444033751e+00 1.2279947128812188e+01 1.2716588374863234e+01 4.9113950774381010e-01 2 0 0 -41 0 +P 89 223 2.1870910397305326e-01 -5.2382770779191845e-01 2.3985226478001938e+00 2.5828193483021984e+00 7.7189102491382144e-01 2 0 0 -42 0 +P 90 213 6.1204214328732109e-01 -1.6796573188674388e-01 4.5599062798313206e+00 4.6552912175547361e+00 6.9006011850357374e-01 2 0 0 -43 0 +P 91 221 5.4269273511143312e-01 7.7987872353382517e-02 1.0780774373457542e+00 1.3276106267994858e+00 5.4744999999999999e-01 2 0 0 -44 0 +P 92 -211 8.0098137319982554e-01 -5.7398530539559300e-01 6.2237539585614439e+00 6.3028266208608654e+00 1.3957000000000000e-01 1 0 0 0 0 +P 93 213 5.5057551623275680e-01 -1.0534036535349371e+00 9.4814928549044328e+00 9.5835615561107037e+00 7.3017305195649951e-01 2 0 0 -45 0 +P 94 -321 1.5575020040762801e+00 -8.3099763629883872e-01 8.8844400576506484e+00 9.0715646755244688e+00 4.9359999999999998e-01 1 0 0 0 0 +P 95 313 3.3279971362282484e-01 -1.8260757454558951e-01 7.4157827342161626e+00 7.4614577188472992e+00 7.3172163653847266e-01 2 0 0 -46 0 +P 96 -1114 -5.0615240179884302e-01 -3.3322629949875109e-02 2.3237572673526984e+01 2.3276087644739984e+01 1.2386168239838844e+00 2 0 0 -47 0 +P 97 -211 1.7928451814409808e-02 -8.9954836115038374e-03 3.5726096339188897e+00 3.5753911295660967e+00 1.3957000000000000e-01 1 0 0 0 0 +P 98 3122 -6.5369447377612477e-01 -1.0702310712709195e+00 2.9383501117182917e+01 2.9431404838655745e+01 1.1156800000000000e+00 2 0 0 -48 0 +P 99 321 -2.4057580701681808e-01 -2.6944576020956384e-01 4.7340903611494610e+01 4.7344854772714633e+01 4.9359999999999998e-01 1 0 0 0 0 +P 100 -211 5.7342976079554991e-02 -6.8530273376454165e-01 2.0599804297672083e+01 2.0611752592661787e+01 1.3957000000000000e-01 1 0 0 0 0 +P 101 223 -2.3410430059255853e+00 -1.1503275478832635e+00 4.4285266064355085e+01 4.4369010681721200e+01 7.8777069059294114e-01 2 0 0 -49 0 +P 102 223 -3.1953002833548410e+00 -2.9014902189151588e+00 5.7122129530076670e+01 5.7290619886004976e+01 8.0551566129046692e-01 2 0 0 -50 0 +P 103 111 -9.4229307627474845e-01 -2.6009023256420677e-01 1.3944330755467364e+01 1.3979203946897107e+01 1.3497999999999999e-01 2 0 0 -51 0 +P 104 411 -1.2640115643219200e+01 -7.6436973349308683e+00 1.8593454150456017e+02 1.8652974733115090e+02 1.8693000000000000e+00 2 0 0 -52 0 +V -13 0 0 0 0 0 4 1 0 +P 38 21 -3.6780928056629758e+00 1.8218289456156361e-01 2.3176136987604477e+02 2.3179062561742003e+02 0 2 0 0 -13 0 +P 39 21 1.9326626594872165e+00 3.0361539888006712e+00 4.1524606600260074e+02 4.1526166298688753e+02 0 2 0 0 -13 0 +P 40 21 3.6780928056629758e+00 -1.8218289456156361e-01 5.0306149033881333e+01 5.0440759192474694e+01 0 2 0 0 -13 0 +P 41 21 -3.1335321392207005e-01 3.6624933692512527e+00 2.9580619506280872e+01 2.9808138121859425e+01 0 2 0 0 -13 0 +P 105 92 4.3385916536288640e+00 7.8287873414824647e+00 5.6439088698045143e+03 5.9802581086412247e+03 1.9772960329759103e+03 2 0 0 -14 0 +V -14 0 0 0 0 0 0 44 0 +P 106 2212 -3.4160521964083146e-01 -4.2707439382586243e-01 3.8512250996931152e+03 3.8512252528180561e+03 9.3827000000000005e-01 1 0 0 0 0 +P 107 223 -2.5910643630590879e-01 2.6822308539292211e-01 3.3980500829705886e+02 3.3980610932012291e+02 7.8050480217877360e-01 2 0 0 -53 0 +P 108 -213 -8.4375493495365134e-02 9.5940084333554179e-02 4.2717554323319206e+02 4.2717675743312810e+02 1.0104606796748297e+00 2 0 0 -54 0 +P 109 113 -3.4570270925533353e-01 3.3786281887310854e-01 1.4073143387350351e+02 1.4073480152132342e+02 8.4511390146478793e-01 2 0 0 -55 0 +P 110 213 2.4695902556986107e-01 1.2962129105176443e-01 1.2135495094371257e+02 1.2135708944265656e+02 6.6426576206931942e-01 2 0 0 -56 0 +P 111 -213 7.1828294249699365e-01 2.4088172256065112e-02 1.8213566215684704e+01 1.8242281874573358e+01 7.2824657412961591e-01 2 0 0 -57 0 +P 112 211 3.2873577492781386e-01 9.7272501560572222e-01 3.9426955314388032e+01 3.9440569802087708e+01 1.3957000000000000e-01 1 0 0 0 0 +P 113 111 3.6542984071301632e-02 -1.2598519400611854e-01 1.0816686858157469e+00 1.0979227682619390e+00 1.3497999999999999e-01 2 0 0 -58 0 +P 114 -323 8.6173923366826966e-01 1.1984057445008052e+00 3.0606103245405613e+01 3.0655843761329539e+01 9.3189592515667330e-01 2 0 0 -59 0 +P 115 321 9.6888861415451444e-03 7.5096383158525493e-01 1.2274824797803829e+01 1.2307680745276246e+01 4.9359999999999998e-01 1 0 0 0 0 +P 129 113 -1.8452176626646558e-01 6.0381110882112632e-01 1.3101634256941848e+01 1.3132355266544623e+01 6.3819942549986375e-01 2 0 0 -69 0 +P 130 -3112 1.4055290907999738e+00 4.7729917439304131e-01 2.0435320259645351e+01 2.0524120034603992e+01 1.1974400000000001e+00 2 0 0 -70 0 +P 131 3122 5.3829758889303592e-01 4.0787393536340916e-01 1.1614299998698201e+01 1.1687293603033934e+01 1.1156800000000000e+00 2 0 0 -71 0 +P 132 113 3.0711687734085993e-03 -8.8265073989745946e-01 1.3713684841961960e+01 1.3753831262363400e+01 5.6889426802210974e-01 2 0 0 -72 0 +P 133 221 -7.5480206365605290e-02 1.8124278719185263e-01 5.6912987989439365e+00 5.7209378366508021e+00 5.4744999999999999e-01 2 0 0 -73 0 +P 134 -323 3.4119607349226949e-02 2.9236525030979216e-01 9.4123046873792351e+00 9.4590213924699373e+00 8.9160786669277803e-01 2 0 0 -74 0 +P 135 311 3.1370849344690394e-01 -1.6502140696154801e+00 1.7013060483686480e+01 1.7103026689591879e+01 4.9767000000000000e-01 2 0 0 -75 0 +P 136 111 -4.0944263992706453e-01 4.8640258974619648e-02 1.8573871902464190e+00 1.9073845771304352e+00 1.3497999999999999e-01 2 0 0 -76 0 +P 137 211 4.2521983009641312e-01 1.0095857429967137e-01 1.7231640563937192e+00 1.7831933960676001e+00 1.3957000000000000e-01 1 0 0 0 0 +P 138 331 -6.4813629763747049e-01 -1.8623822616724834e+00 1.5746494503179859e+01 1.5898343095215896e+01 9.5743181773845276e-01 2 0 0 -77 0 +P 139 223 2.6048232688869083e-01 -7.5634998087022398e-01 9.4625709838721264e+00 9.5283224643966609e+00 7.8023267332483393e-01 2 0 0 -78 0 +P 140 -213 1.8439421727607613e-01 -1.4205338969033782e-02 4.9823217426385797e+00 5.0459413515342293e+00 7.7703999699749782e-01 2 0 0 -79 0 +P 141 223 2.2982888723697886e-02 -2.4721922626951739e-01 7.1905766008958572e-01 1.0910344129213754e+00 7.8209117923282823e-01 2 0 0 -80 0 +P 116 113 1.7372162770218658e+00 5.9807209762691627e-01 1.9986477309083451e+01 2.0086000654430649e+01 7.8264706999466116e-01 2 0 0 -60 0 +P 117 111 3.0531402020407761e-01 1.8264305008182584e+00 4.1855045772255252e+01 4.1896206764135989e+01 1.3497999999999999e-01 2 0 0 -61 0 +P 118 -211 -3.5077119331308954e-01 -4.5694813801297091e-01 4.3816705499162680e+01 4.3820714309743344e+01 1.3957000000000000e-01 1 0 0 0 0 +P 119 211 -3.7029195227841366e-01 2.5395295815850005e-01 1.0279729792404048e+01 1.0290477764643340e+01 1.3957000000000000e-01 1 0 0 0 0 +P 120 -323 -7.3509947734007886e-01 2.6814421430056673e-01 6.0116876101422612e+01 6.0128892408855542e+01 9.1248975921951503e-01 2 0 0 -62 0 +P 121 311 -6.9510494917716592e-01 3.2581753110533535e-01 7.2855221980526849e+01 7.2860966046400250e+01 4.9767000000000000e-01 2 0 0 -63 0 +P 122 113 -5.2905073522641244e-01 3.1400871973230815e-01 7.3063252128309969e+01 7.3071887443745908e+01 9.3990790504694877e-01 2 0 0 -64 0 +P 123 211 6.6028226411728730e-01 4.7432898901159826e-01 8.6408369660818963e+01 8.6412306923746485e+01 1.3957000000000000e-01 1 0 0 0 0 +P 124 -323 3.0867648137115933e-01 4.2956262666170625e-01 1.9432116829669465e+02 1.9432395791775645e+02 8.9686532393962448e-01 2 0 0 -65 0 +P 125 323 6.2311833999943100e-01 6.5723937948714817e-01 2.0539373968623146e+01 2.0576811112060657e+01 8.4795781196740605e-01 2 0 0 -66 0 +P 126 -213 8.2345550936719503e-01 5.3491978714712018e-01 3.7603445724436263e+01 3.7621593707277178e+01 6.3321763259171782e-01 2 0 0 -67 0 +P 127 213 9.8022239868273831e-01 8.7532758950826225e-02 3.4555170316705698e+01 3.4579992236556180e+01 8.6462103200085083e-01 2 0 0 -68 0 +P 128 -211 -5.4933402605629666e-01 6.9404217019334813e-01 8.2074041622333471e+00 8.2561749783622673e+00 1.3957000000000000e-01 1 0 0 0 0 +P 142 211 -2.5858770326589875e-01 3.7058982588567041e-01 -1.3267284914603703e+00 1.4085072574477475e+00 1.3957000000000000e-01 1 0 0 0 0 +P 143 113 3.8294560107957676e-01 -4.0649528732935525e-01 -2.2779494568707106e+00 2.5112020323957029e+00 8.9732723542952919e-01 2 0 0 -81 0 +P 144 -213 -1.7928345872764893e-02 -4.4205911706645860e-02 -7.7159032233104536e+00 7.7555350485384382e+00 7.8159180484414870e-01 2 0 0 -82 0 +P 145 -2112 1.2412666094555554e-01 6.0949944184229277e-01 -5.5543953322427688e+00 5.6675388211554232e+00 9.3957000000000002e-01 1 0 0 0 0 +P 146 2212 -6.3965319906624407e-01 -1.8727663295352737e-02 -7.6895933419740139e+00 7.7730112117685382e+00 9.3827000000000005e-01 1 0 0 0 0 +P 147 223 -1.7596507607359885e-02 5.0768816135776895e-01 -3.0916304915378632e+01 3.0930486957261824e+01 7.8680168175708287e-01 2 0 0 -83 0 +P 148 -213 -6.6424238417843881e-02 1.1248577022620441e+00 -6.6508630910885344e+01 6.6523631467643838e+01 8.5196301137017705e-01 2 0 0 -84 0 +P 149 213 -4.1830686176762299e-01 -2.4546245054114987e-01 -4.5077618999398048e+01 4.5083098707959479e+01 5.0874552725374045e-01 2 0 0 -85 0 +V -15 0 0 0 0 0 4 1 0 +P 48 21 1.5946597234291504e+00 -9.2504118596319991e+00 -1.3340867622115992e+01 1.6312320745901555e+01 0 2 0 0 -15 0 +P 49 21 3.1335321392207005e-01 -3.6624933692512527e+00 -1.5996227394120206e+01 1.6413145303715751e+01 0 2 0 0 -15 0 +P 50 21 -1.5946597234291504e+00 9.2504118596319991e+00 3.4553214778277602e-01 9.3932130643086573e+00 0 2 0 0 -15 0 +P 51 21 -1.9326626594872165e+00 -3.0361539888006712e+00 -2.2403930493388815e+00 4.2394312135724528e+00 0 2 0 0 -15 0 +P 150 92 -1.6193094455651464e+00 -6.6986473580519243e+00 -3.1231955917792302e+01 4.6358110327498416e+01 3.3558088193125087e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 16 0 +P 157 -211 3.7929530102443287e-01 -1.7398661940045272e+00 -1.6262506930350391e+00 2.4156097366743579e+00 1.3957000000000000e-01 1 0 0 0 0 +P 158 211 3.5929042858649445e-02 -2.5352917615846560e-01 -5.9214749380134923e-01 6.6006543508924009e-01 1.3957000000000000e-01 1 0 0 0 0 +P 159 113 -1.8124205568734308e-01 -3.1612383038769862e+00 -1.1255356346808174e+01 1.1743159345237892e+01 1.0920021141756768e+00 2 0 0 -91 0 +P 160 -211 2.8532095261363383e-01 1.0522733295491603e-02 -1.4240332868527008e+00 1.4590645499363166e+00 1.3957000000000000e-01 1 0 0 0 0 +P 161 111 8.0154759639689030e-02 -3.4769109444583562e-01 -8.8595154092897399e-01 9.6459505281971181e-01 1.3497999999999999e-01 2 0 0 -92 0 +P 162 211 3.8450845074859470e-02 2.0662978645006660e-01 -7.8432525673484271e-02 2.6420783886723115e-01 1.3957000000000000e-01 1 0 0 0 0 +P 163 2112 -6.2517197323617857e-01 3.1384370147711613e+00 1.1380234215497604e-02 3.3351983728762726e+00 9.3957000000000002e-01 1 0 0 0 0 +P 164 -2212 4.7227611869119018e-01 9.0023711940114270e-01 -1.4423015082082278e+00 1.9985134067384713e+00 9.3827000000000005e-01 1 0 0 0 0 +P 165 213 -8.8060853310417464e-01 -2.2704271380420674e-01 -3.0207510516881181e-01 1.2785039593373555e+00 8.4634698700419575e-01 2 0 0 -93 0 +P 166 113 -5.6015858000582994e-02 1.9712923875091308e+00 2.0121776569014715e-01 2.1471534595610358e+00 8.2501390065658908e-01 2 0 0 -94 0 +P 151 -213 -9.1575437638018786e-01 1.9786173531659450e+00 1.0038490462694034e-01 2.3689498194545235e+00 9.2103930964307001e-01 2 0 0 -86 0 +P 152 221 -1.1496652822320098e-01 -7.9300120639953120e-01 -1.4401545991065330e+00 1.7366102003012958e+00 5.4744999999999999e-01 2 0 0 -87 0 +P 153 213 -7.2057087624760130e-01 -1.4035436254698561e+00 -1.4434746483930367e+00 2.3576881056684051e+00 9.9293355606685296e-01 2 0 0 -88 0 +P 154 311 -4.2407341657881786e-01 -1.1323088737363824e+00 -4.2536503779649254e-01 1.3749809062203735e+00 4.9767000000000000e-01 2 0 0 -89 0 +P 155 -323 6.8739672657553341e-01 -3.4637271310558235e+00 -5.6861873569991586e+00 6.7553227489313796e+00 9.1199719583656946e-01 2 0 0 -90 0 +P 156 211 3.2027042541495282e-01 -2.3824354336932485e+00 -4.9432086795529084e+00 5.4984873897845601e+00 1.3957000000000000e-01 1 0 0 0 0 +V -17 0 0 0 0 0 2 1 0 +P 52 21 -3.0362721334232550e+00 7.6960555799361619e-01 3.0949052196359327e+02 3.0950637219042926e+02 0 2 0 0 -17 0 +P 53 21 3.0362721334232550e+00 -7.6960555799361619e-01 4.2639680730324301e+00 5.2908094759627442e+00 0 2 0 0 -17 0 +P 167 92 0 0 3.1375449003662573e+02 3.1479718166639202e+02 2.5600499349824197e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 14 0 +P 168 213 3.2999323989997326e-01 5.6942160313396906e-01 1.1610979057575713e+01 1.1657922862124975e+01 8.1190780467921042e-01 2 0 0 -95 0 +P 169 311 -3.9549707014260671e-01 -2.8851686492632728e-01 8.4163752596000130e+00 8.4452772514077648e+00 4.9767000000000000e-01 2 0 0 -96 0 +P 170 -323 5.2128742450140031e-01 9.7134097701761499e-02 8.3960820516559060e+00 8.4589041202825257e+00 8.8186704559962104e-01 2 0 0 -97 0 +P 171 113 3.8591072460653691e-01 -2.7644757220945215e-01 4.7314982713787517e+00 4.8147268927460747e+00 7.5443277508689677e-01 2 0 0 -98 0 +P 172 213 6.0325469359176376e-01 -3.0740340709509106e-01 1.4598324375000185e+00 1.7877548921809201e+00 7.7880917361405333e-01 2 0 0 -99 0 +P 173 1114 3.6710399464270077e-01 1.2951245679680667e-01 3.1121459445196282e+00 3.3467359928685627e+00 1.1677545147092263e+00 2 0 0 -100 0 +P 174 -1114 9.7380249513257433e-01 -6.3457340363777717e-02 1.2276570613075052e+01 1.2375786282599574e+01 1.2221219092993045e+00 2 0 0 -101 0 +P 175 2112 -3.2151359419442543e-01 -3.9573049090654866e-01 1.2203622044795935e+01 1.2250353317754321e+01 9.3957000000000002e-01 1 0 0 0 0 +P 176 211 -2.6031509045536677e-01 -2.5957138973744100e-02 2.1813184663724797e+01 2.1815199808345582e+01 1.3957000000000000e-01 1 0 0 0 0 +P 177 -3222 -1.3419797779501037e+00 1.0195367754860356e+00 7.0658805821816856e+01 7.0688908649965128e+01 1.1893700000000000e+00 2 0 0 -102 0 +P 178 -323 6.5303950764476326e-01 4.5843110713109797e-01 4.3702629036619392e+01 4.3720185385460475e+01 9.4773717249732448e-01 2 0 0 -103 0 +P 179 113 -1.2053222613750429e+00 -6.5261496518697781e-01 8.2787798768823720e+01 8.2800346532049119e+01 4.4615332971601729e-01 2 0 0 -104 0 +P 180 213 2.0228441721426238e-01 1.5934395893829920e-01 2.2925780883396051e+01 2.2952070100818403e+01 1.0676063491270991e+00 2 0 0 -105 0 +P 181 -211 -5.1204870311642947e-01 -4.2325221952605135e-01 9.6591851821438173e+00 9.6830095777884910e+00 1.3957000000000000e-01 1 0 0 0 0 +V -19 0 0 0 0 0 0 2 0 +P 182 22 1.8587946456084625e-01 -2.1984404913873207e-01 -1.2052101682909502e+00 1.2391182877510287e+00 0 1 0 0 0 0 +P 183 111 2.5327040357331115e-01 5.8815220376537669e-01 -1.6074980532960521e+00 1.7356089720529952e+00 1.3497999999999999e-01 2 0 0 -106 0 +V -20 0 0 0 0 0 0 2 0 +P 184 2212 -1.8155431084997567e-01 5.7356379733320284e-01 -9.9133230842357767e-01 1.4916526861249948e+00 9.3827000000000005e-01 1 0 0 0 0 +P 185 111 1.9093758885898043e-01 3.4307324296551578e-01 -5.4152418423568671e-01 6.8236680413856798e-01 1.3497999999999999e-01 2 0 0 -107 0 +V -21 0 0 0 0 0 0 2 0 +P 186 -2212 3.1520905862425908e-01 2.1080784939947769e-01 -1.0716835086387424e+00 1.4739921423113049e+00 9.3827000000000005e-01 1 0 0 0 0 +P 187 111 -1.2735758821479068e-01 -8.9349224266055422e-03 -1.3398243917761030e-01 2.2906479983323427e-01 1.3497999999999999e-01 2 0 0 -108 0 +V -22 0 0 0 0 0 0 2 0 +P 188 211 7.9805875536976001e-01 -3.2097636430674814e-01 1.5504153910727283e+00 1.7785362726807428e+00 1.3957000000000000e-01 1 0 0 0 0 +P 189 111 -2.4862271094782207e-01 -1.2852231239011683e-01 2.9308707044207477e-01 4.2714267925538041e-01 1.3497999999999999e-01 2 0 0 -109 0 +V -23 0 0 0 0 0 0 2 0 +P 190 321 -1.5072910497911379e-01 -4.2818751301287367e-01 1.3882161311751551e+00 1.5417032127627126e+00 4.9359999999999998e-01 1 0 0 0 0 +P 191 -211 7.2622240627725473e-02 1.3135692979402222e-01 1.4767520864444364e-01 2.5261905111626654e-01 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 192 -321 -7.3081843994436652e-02 -3.2872056572966601e-02 1.0091837996890252e+00 1.1262834588058825e+00 4.9359999999999998e-01 1 0 0 0 0 +P 193 211 -2.0819494951518142e-01 -3.7697843105844819e-01 3.5213703177172428e-01 5.7353129690708116e-01 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 1.4713437953703780e-06 8.8784517316833685e-07 4.6642120258844947e-06 4.9852042362384955e-06 0 2 0 +P 194 22 2.7205036877184846e-01 2.1002866456737385e-01 7.6826252672454298e-01 8.4163576032511367e-01 0 1 0 0 0 0 +P 195 22 2.5082939369000368e-01 1.0548989384833672e-01 8.8928486895552616e-01 9.2998445180351008e-01 0 1 0 0 0 0 +V -26 0 0 0 0 0 0 3 0 +P 196 211 4.8097144381577590e-02 -3.3729039691863125e-02 -1.4857572844262404e-01 2.1214503387648262e-01 1.3957000000000000e-01 1 0 0 0 0 +P 197 -211 3.7753509906070848e-01 -2.8072898252255268e-02 -4.9028060511515958e-01 6.3496117620776427e-01 1.3957000000000000e-01 1 0 0 0 0 +P 198 111 -5.0087081665597831e-03 8.2679167170274983e-03 1.1982873351947212e-01 1.8075389727808949e-01 1.3497999999999999e-01 2 0 0 -110 0 +V -27 0 0 0 0 0 0 2 0 +P 199 311 -8.4559749187529187e-01 9.9710033077653488e-03 -5.2448860633214933e-01 1.1126087660291861e+00 4.9767000000000000e-01 2 0 0 -111 0 +P 200 111 -1.7089083775893985e-01 2.9320013029682768e-01 5.3461345449179000e-02 3.6911747546447249e-01 1.3497999999999999e-01 2 0 0 -112 0 +V -28 0 0 0 0 0 0 1 0 +P 201 310 -5.9377456944595330e-01 4.5203893895285015e-02 -9.6189558945220821e-01 1.2359329210161991e+00 4.9767000000000000e-01 2 0 0 -113 0 +V -29 0 0 0 0 0 0 2 0 +P 202 -211 5.7565215324936768e-02 -1.1132129032450142e-01 -3.4466881494030727e-01 3.9240611690858496e-01 1.3957000000000000e-01 1 0 0 0 0 +P 203 111 -5.7967958732875779e-01 1.9060824615963567e-01 -5.1323302876053767e-01 8.0869504121170799e-01 1.3497999999999999e-01 2 0 0 -114 0 +V -30 0 0 0 0 0 0 3 0 +P 206 111 -3.4573985065176793e-01 2.1582774372736507e-01 -9.4505589920380773e-01 1.0380115183903642e+00 1.3497999999999999e-01 2 0 0 -115 0 +P 204 211 -2.9500658243202599e-01 -2.2831491421237085e-01 -7.6054280475650438e-01 8.5852299124538090e-01 1.3957000000000000e-01 1 0 0 0 0 +P 205 -211 -3.1517645369553471e-01 -1.6670151526215007e-01 -1.3583103023518337e+00 1.4112449307366599e+00 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 207 22 -2.7296924447765503e-01 -1.1720991606231085e-01 -6.8344889887257443e-01 7.4521994754848742e-01 0 1 0 0 0 0 +P 208 22 -5.2123567655416625e-01 -1.0273993326069992e+00 -5.1403413175097858e+00 5.2678596108526312e+00 0 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 209 311 -1.7100390911822591e-01 -2.6586260149101487e-01 -5.1674196262737446e+00 5.2009447490532308e+00 4.9767000000000000e-01 2 0 0 -116 0 +P 210 211 -2.0554842986190747e-01 2.1336500028280095e-01 -4.1667454612314101e+00 4.1795959498445461e+00 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 2 0 +P 211 -321 5.0202951655587369e-01 -1.0818066855080209e-01 -1.7205959210260328e+01 1.7220697140292657e+01 4.9359999999999998e-01 1 0 0 0 0 +P 212 111 -3.1214615232548548e-02 9.2315020056256067e-02 -1.5055624232852555e+01 1.5056544658599103e+01 1.3497999999999999e-01 2 0 0 -117 0 +V -34 0 0 0 0 0 0 2 0 +P 213 211 9.1259248721195466e-02 -4.6924362818728679e-02 -3.3138429820366952e+02 3.3138434348331810e+02 1.3957000000000000e-01 1 0 0 0 0 +P 214 -211 -4.3948488936305879e-01 -8.5865907398658278e-02 -2.5473884247645952e+02 2.5473927429030923e+02 1.3957000000000000e-01 1 0 0 0 0 +V -35 0 0 0 0 0 0 3 0 +P 215 -211 -1.2003912619075557e-02 1.5417261170584987e-01 -3.7414862979715281e+01 3.7415442866066513e+01 1.3957000000000000e-01 1 0 0 0 0 +P 216 211 7.5480641148820526e-02 -1.0982597901254602e-01 -1.5712350184328226e+01 1.5713535158350382e+01 1.3957000000000000e-01 1 0 0 0 0 +P 217 111 2.4767673741972890e-01 5.0668514556659799e-02 -1.0757404831534404e+02 1.0757443005480903e+02 1.3497999999999999e-01 2 0 0 -118 0 +V -36 0 -7.0045040781826522e-05 -5.9678770686458553e-05 -2.0281626139517797e-01 2.0281628460902201e-01 0 2 0 +P 218 22 -2.0306043592456660e-01 -1.0355072122695697e-01 -5.7088734079546225e+02 5.7088738630031651e+02 0 1 0 0 0 0 +P 219 22 -1.0394410803041193e-01 -1.5801888561298336e-01 -3.1804802338288772e+02 3.1804807962336088e+02 0 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 220 2212 1.9744570739179240e-01 -2.9511038265664724e-01 -2.9201396219359308e+03 2.9201397942608260e+03 9.3827000000000005e-01 1 0 0 0 0 +P 221 111 2.7792522862110680e-01 -4.6183830318953831e-02 -1.5611958512606125e+03 1.5611958825170939e+03 1.3497999999999999e-01 2 0 0 -119 0 +V -38 0 0 0 0 0 0 1 0 +P 222 130 2.5888648514865614e-01 6.8942858996681888e+00 1.8438621810969973e+01 1.9693365634025938e+01 4.9767000000000000e-01 1 0 0 0 0 +V -39 0 0 0 0 0 0 2 0 +P 223 -2212 6.4080126117661795e-01 6.6596959653282841e+00 1.6651831163988486e+01 1.7970142133934655e+01 9.3827000000000005e-01 1 0 0 0 0 +P 224 111 -4.2370572833966343e-02 3.7630958362777911e-01 7.0705246002361244e-01 8.1335536501447692e-01 1.3497999999999999e-01 2 0 0 -120 0 +V -40 0 0 0 0 0 0 2 0 +P 225 211 7.1578317760274915e-02 -4.5300168548451349e-02 1.5812339005719036e+00 1.5896402089975410e+00 1.3957000000000000e-01 1 0 0 0 0 +P 226 111 -2.4791741699645198e-01 5.9538292801339954e-01 1.5554365516311630e+00 1.6892443112736077e+00 1.3497999999999999e-01 2 0 0 -121 0 +V -41 0 0 0 0 0 0 2 0 +P 227 -211 8.3215158992368088e-01 2.4641162172429856e+00 1.0127048332028291e+01 1.0456621476596988e+01 1.3957000000000000e-01 1 0 0 0 0 +P 228 111 1.0381122433908205e-01 6.6594352716038974e-01 2.1528987967838971e+00 2.2599668982662449e+00 1.3497999999999999e-01 2 0 0 -122 0 +V -42 0 0 0 0 0 0 3 0 +P 229 211 1.4965349692285381e-02 -2.3653199756728413e-01 1.4382398007146437e+00 1.4643035398524038e+00 1.3957000000000000e-01 1 0 0 0 0 +P 230 -211 2.2523982939715814e-01 -2.3702484908296056e-02 5.6148232442395496e-01 6.2131873791011349e-01 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -2.1496075116390248e-02 -2.6359322531633833e-01 3.9880052266159505e-01 4.9719707053968126e-01 1.3497999999999999e-01 2 0 0 -123 0 +V -43 0 0 0 0 0 0 2 0 +P 232 211 2.3913424705178085e-01 -1.1677536002552498e-01 3.6380966329753557e+00 3.6504860729208013e+00 1.3957000000000000e-01 1 0 0 0 0 +P 233 111 3.7290789623554016e-01 -5.1190371861218900e-02 9.2180964685596467e-01 1.0048051446339359e+00 1.3497999999999999e-01 2 0 0 -124 0 +V -44 0 0 0 0 0 0 3 0 +P 234 111 2.5665924518427391e-01 -7.3737349265815239e-02 3.8717337870206897e-01 4.8931992641919431e-01 1.3497999999999999e-01 2 0 0 -125 0 +P 235 111 1.6865575199696520e-01 1.3369711769649753e-01 2.2670061612841966e-01 3.4048854858132604e-01 1.3497999999999999e-01 2 0 0 -126 0 +P 236 111 1.1737773793019404e-01 1.8028103922700229e-02 4.6420344251526557e-01 4.9780215179896570e-01 1.3497999999999999e-01 2 0 0 -127 0 +V -45 0 0 0 0 0 0 2 0 +P 237 211 4.0644969833856254e-01 -1.1066065128461260e+00 8.3074841847963157e+00 8.3918742005045495e+00 1.3957000000000000e-01 1 0 0 0 0 +P 238 111 1.4412581789419426e-01 5.3202859311188878e-02 1.1740086701081160e+00 1.1916873556061522e+00 1.3497999999999999e-01 2 0 0 -128 0 +V -46 0 0 0 0 0 0 2 0 +P 239 311 2.5178180326027377e-01 -3.2242494783834660e-02 4.0106627287096375e+00 4.0493857073985327e+00 4.9767000000000000e-01 2 0 0 -129 0 +P 240 111 8.1017910362551057e-02 -1.5036507976175487e-01 3.4051200055065252e+00 3.4120720114487666e+00 1.3497999999999999e-01 2 0 0 -130 0 +V -47 0 0 0 0 0 0 2 0 +P 241 -2112 -2.6558420839918023e-01 -4.1394355142160610e-02 1.3870983886355736e+01 1.3905367101404735e+01 9.3957000000000002e-01 1 0 0 0 0 +P 242 211 -2.4056819339966279e-01 8.0717251922855018e-03 9.3665887871712474e+00 9.3707205433352510e+00 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 -1.7671461207839840e+01 -2.8931783299526622e+01 7.9433041118326389e+02 7.9562540263520054e+02 0 2 0 +P 243 2212 -6.4323292945979427e-01 -9.6342862692646503e-01 2.7198319694383319e+01 2.7239142572986808e+01 9.3827000000000005e-01 1 0 0 0 0 +P 244 -211 -1.0461544316330479e-02 -1.0680244434445450e-01 2.1851814227995972e+00 2.1922622656689379e+00 1.3957000000000000e-01 1 0 0 0 0 +V -49 0 0 0 0 0 0 3 0 +P 245 211 -1.0658262219708090e+00 -8.2252278997220341e-01 2.1555528495606971e+01 2.1597981798892423e+01 1.3957000000000000e-01 1 0 0 0 0 +P 246 -211 -4.9088454070215592e-01 -3.0027745336315973e-02 7.2664188190925962e+00 7.2843799693009830e+00 1.3957000000000000e-01 1 0 0 0 0 +P 247 111 -7.8433224325262052e-01 -2.9777701257474420e-01 1.5463318749655521e+01 1.5486648913527794e+01 1.3497999999999999e-01 2 0 0 -131 0 +V -50 0 0 0 0 0 0 3 0 +P 248 -211 -1.2188640219493940e+00 -9.3422180369870000e-01 2.0922904541008972e+01 2.0979652382715557e+01 1.3957000000000000e-01 1 0 0 0 0 +P 249 211 -1.0146380362055605e+00 -1.1421994186045756e+00 1.6785995231936074e+01 1.6855955195949480e+01 1.3957000000000000e-01 1 0 0 0 0 +P 250 111 -9.6179822519988656e-01 -8.2506899661188349e-01 1.9413229757131628e+01 1.9455012307339945e+01 1.3497999999999999e-01 2 0 0 -132 0 +V -51 0 -6.7612250962819850e-05 -1.8662225712865060e-05 1.0005460236156168e-03 1.0030482758662050e-03 0 2 0 +P 251 22 -5.4111388577644548e-01 -1.7745401666901453e-01 8.9546946112744887e+00 8.9727838348307714e+00 0 1 0 0 0 0 +P 252 22 -4.0117919049830292e-01 -8.2636215895192267e-02 4.9896361441928754e+00 5.0064201120663352e+00 0 1 0 0 0 0 +V -52 0 -1.0031594106859512e+00 -6.0662790835180747e-01 1.4756351155848559e+01 1.4803588565939812e+01 0 4 0 +P 253 -13 -2.6618575532310844e+00 -1.6167266063331194e+00 3.6143438395162441e+01 3.6277521878069642e+01 1.0566000000000000e-01 1 0 0 0 0 +P 254 14 -1.7622608552463395e+00 -6.1124567981443900e-01 2.3767021479078203e+01 2.3840102654770387e+01 0 1 0 0 0 0 +P 255 -323 -7.3856701894561985e+00 -4.9147012895514184e+00 1.1208276364753114e+02 1.1243641907035618e+02 8.3666814418099522e-01 2 0 0 -133 0 +P 256 211 -8.3032704528557788e-01 -5.0102375923189180e-01 1.3941317982788394e+01 1.3975703727954690e+01 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 0 0 0 0 0 3 0 +P 257 -211 1.3857831485530528e-01 2.6488289772950824e-01 1.2033220667879797e+02 1.2033265895372175e+02 1.3957000000000000e-01 1 0 0 0 0 +P 258 211 -1.7979563690597777e-01 3.7159338534362971e-02 6.0674676874761047e+01 6.0675115170299051e+01 1.3957000000000000e-01 1 0 0 0 0 +P 259 111 -2.1788911425523635e-01 -3.3819150870949083e-02 1.5879812474349990e+02 1.5879833519610222e+02 1.3497999999999999e-01 2 0 0 -134 0 +V -54 0 0 0 0 0 0 2 0 +P 260 -211 -3.1834604045503856e-01 3.0376945733427041e-01 3.6415849333717392e+02 3.6415878592925657e+02 1.3957000000000000e-01 1 0 0 0 0 +P 261 111 2.3397054695967343e-01 -2.0782937300071624e-01 6.3017049896018172e+01 6.3017971503871578e+01 1.3497999999999999e-01 2 0 0 -135 0 +V -55 0 0 0 0 0 0 2 0 +P 262 211 -3.2804553869109360e-01 -2.0500235184311433e-01 6.3497741005976408e+01 6.3499072689974568e+01 1.3957000000000000e-01 1 0 0 0 0 +P 263 -211 -1.7657170564239925e-02 5.4286517071622287e-01 7.7233692867527111e+01 7.7235728831348879e+01 1.3957000000000000e-01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 265 111 1.3819210244527837e-02 -1.2966282475160049e-01 1.1780976594232847e+01 1.1782471410232937e+01 1.3497999999999999e-01 2 0 0 -136 0 +P 264 211 2.3313981532533326e-01 2.5928411580336491e-01 1.0957397434947973e+02 1.0957461803242364e+02 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 2 0 +P 266 -211 4.5549648708790008e-01 2.2808652686664740e-01 5.9317208860832444e+00 5.9551904225460079e+00 1.3957000000000000e-01 1 0 0 0 0 +P 267 111 2.6278645540909368e-01 -2.0399835461058230e-01 1.2281845329601460e+01 1.2287091452027347e+01 1.3497999999999999e-01 2 0 0 -137 0 +V -58 0 2.1464610372068443e-05 -7.4001157013187091e-05 6.3535032736792402e-04 6.4489764692951892e-04 0 2 0 +P 268 22 -4.6675719704953711e-02 -1.7936313484327244e-02 2.2709027355224920e-01 2.3253027005837071e-01 0 1 0 0 0 0 +P 269 22 8.3218703776255343e-02 -1.0804888052179129e-01 8.5457841226349773e-01 8.6539249820356823e-01 0 1 0 0 0 0 +V -59 0 0 0 0 0 0 2 0 +P 270 -311 7.4489573882419291e-01 8.6535957172601397e-01 1.7511148478823699e+01 1.7555389865406173e+01 4.9767000000000000e-01 2 0 0 -138 0 +P 271 -211 1.1684349484407686e-01 3.3304617277479132e-01 1.3094954766581912e+01 1.3100453895923364e+01 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 272 -211 1.4834296209480378e+00 5.9292167637229842e-01 1.8632553603080105e+01 1.8701434520142339e+01 1.3957000000000000e-01 1 0 0 0 0 +P 273 211 2.5378665607382822e-01 5.1504212546178629e-03 1.3539237060033491e+00 1.3845661342883115e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 2.9762149049519281e-06 1.7804127290848588e-05 4.0800488294499739e-04 4.0840612215915523e-04 0 2 0 +P 274 22 1.6410544409971853e-01 1.1774821168325287e+00 2.5564031639197310e+01 2.5591660914878588e+01 0 1 0 0 0 0 +P 275 22 1.4120857610435908e-01 6.4894838398572974e-01 1.6291014133057946e+01 1.6304545849257401e+01 0 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 276 -311 -4.7598331792509141e-01 -8.4343084301410715e-02 2.7348337649344273e+01 2.7357136573228090e+01 4.9767000000000000e-01 2 0 0 -139 0 +P 277 -211 -2.5911615941498739e-01 3.5248729860197742e-01 3.2768538452078332e+01 3.2771755835627452e+01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 1 0 +P 278 310 -6.9510494917716592e-01 3.2581753110533535e-01 7.2855221980526849e+01 7.2860966046400236e+01 4.9767000000000000e-01 2 0 0 -140 0 +V -64 0 0 0 0 0 0 2 0 +P 279 -211 -3.5884084719608189e-01 -1.6833740109714063e-01 5.2889439384711885e+01 5.2891108727726980e+01 1.3957000000000000e-01 1 0 0 0 0 +P 280 211 -1.7020988803033060e-01 4.8234612082944878e-01 2.0173812743598088e+01 2.0180778716018942e+01 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 281 -321 3.4124973471434705e-01 1.1009176865102556e-01 1.5639404073440900e+02 1.5639523071300783e+02 4.9359999999999998e-01 1 0 0 0 0 +P 282 111 -3.2573253343187690e-02 3.1947085801068070e-01 3.7927127562285655e+01 3.7928727204748640e+01 1.3497999999999999e-01 2 0 0 -141 0 +V -66 0 0 0 0 0 0 2 0 +P 283 321 4.9926846924895973e-01 5.0291971801674606e-01 1.8932076706358586e+01 1.8951764208711591e+01 4.9359999999999998e-01 1 0 0 0 0 +P 284 111 1.2384987075047131e-01 1.5431966147040221e-01 1.6072972622645629e+00 1.6250469033490718e+00 1.3497999999999999e-01 2 0 0 -142 0 +V -67 0 0 0 0 0 0 2 0 +P 285 -211 1.7859206659747753e-01 1.1537889269107618e-01 3.5102971391524509e+00 3.5194989991719074e+00 1.3957000000000000e-01 1 0 0 0 0 +P 286 111 6.4486344276971752e-01 4.1954089445604403e-01 3.4093148585283814e+01 3.4102094708105270e+01 1.3497999999999999e-01 2 0 0 -143 0 +V -68 0 0 0 0 0 0 2 0 +P 287 211 1.5204545582315820e-01 -2.7098259271716346e-01 5.5290903643553468e+00 5.5395730366427456e+00 1.3957000000000000e-01 1 0 0 0 0 +P 288 111 8.2817694285958010e-01 3.5851535166798970e-01 2.9026079952350351e+01 2.9040419199913433e+01 1.3497999999999999e-01 2 0 0 -144 0 +V -69 0 0 0 0 0 0 2 0 +P 289 -211 2.2195516193061104e-02 5.9812657288889171e-01 7.4880607642605312e+00 7.5132404348784751e+00 1.3957000000000000e-01 1 0 0 0 0 +P 290 211 -2.0671728245952670e-01 5.6845359322346689e-03 5.6135734926813177e+00 5.6191148316661534e+00 1.3957000000000000e-01 1 0 0 0 0 +V -70 0 2.8328565239901664e+01 9.6200077887030560e+00 4.1187571780827233e+02 4.1366548525931290e+02 0 2 0 +P 291 -2112 8.7074311781260816e-01 2.9303660553681032e-01 1.5105424132384448e+01 1.5162476513865569e+01 9.3957000000000002e-01 1 0 0 0 0 +P 292 211 5.3478597298736574e-01 1.8426256885623099e-01 5.3298961272609038e+00 5.3616435207384239e+00 1.3957000000000000e-01 1 0 0 0 0 +V -71 0 2.3556324247227142e+01 1.7848882981569922e+01 5.0825086777096664e+02 5.1144512508733749e+02 0 2 0 +P 293 2212 4.2293484863058523e-01 2.9818090643247958e-01 8.7896810414164062e+00 8.8547517831886218e+00 9.3827000000000005e-01 1 0 0 0 0 +P 294 -211 1.1536274026245073e-01 1.0969302893092955e-01 2.8246189572817935e+00 2.8325418198453116e+00 1.3957000000000000e-01 1 0 0 0 0 +V -72 0 0 0 0 0 0 2 0 +P 295 211 1.8426627916469118e-01 -7.5048765015658725e-01 1.0044347862878006e+01 1.0074998240698443e+01 1.3957000000000000e-01 1 0 0 0 0 +P 296 -211 -1.8119511039128258e-01 -1.3216308974087224e-01 3.6693369790839530e+00 3.6788330216649565e+00 1.3957000000000000e-01 1 0 0 0 0 +V -73 0 0 0 0 0 0 3 0 +P 297 -211 -9.2330691001946449e-02 1.3153518843286626e-02 1.6918771409868543e+00 1.7001841125750792e+00 1.3957000000000000e-01 1 0 0 0 0 +P 298 211 9.0350579840365638e-02 1.9611894399870142e-01 2.5597390976925207e+00 2.5726192684943445e+00 1.3957000000000000e-01 1 0 0 0 0 +P 299 111 -7.3500095204024493e-02 -2.8029675650135422e-02 1.4396825602645615e+00 1.4481344555813784e+00 1.3497999999999999e-01 2 0 0 -145 0 +V -74 0 0 0 0 0 0 2 0 +P 300 -321 -1.6702756185750384e-01 1.3389650322075297e-01 3.6488781901075438e+00 3.6883301758705538e+00 4.9359999999999998e-01 1 0 0 0 0 +P 301 111 2.0114716920673079e-01 1.5846874708903921e-01 5.7634264972716922e+00 5.7706912165993858e+00 1.3497999999999999e-01 2 0 0 -146 0 +V -75 0 0 0 0 0 0 1 0 +P 302 310 3.1370849344690394e-01 -1.6502140696154801e+00 1.7013060483686480e+01 1.7103026689591879e+01 4.9767000000000000e-01 2 0 0 -147 0 +V -76 0 -4.4060919108810952e-05 5.2342729044881510e-06 1.9987704934143461e-04 2.0525736542072959e-04 0 2 0 +P 303 22 -1.7794066347471776e-01 -1.3349370806625340e-02 5.5028936743970702e-01 5.7849760011252294e-01 0 1 0 0 0 0 +P 304 22 -2.3150197645234680e-01 6.1989629781244990e-02 1.3070978228067121e+00 1.3288869770179124e+00 0 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 305 22 -4.8147715868567109e-01 -1.0464340696446410e+00 7.7587519913374754e+00 7.8437922575456005e+00 0 1 0 0 0 0 +P 306 113 -1.6665913895179937e-01 -8.1594819202784230e-01 7.9877425118423817e+00 8.0545508376702948e+00 6.1498946369148655e-01 2 0 0 -148 0 +V -78 0 0 0 0 0 0 3 0 +P 307 211 -1.8184679283982430e-01 -2.8499906586894308e-01 3.0136790064542227e+00 3.0357920980289825e+00 1.3957000000000000e-01 1 0 0 0 0 +P 308 -211 3.5179468682444448e-01 -2.3385890449493285e-01 3.1756943767047940e+00 3.2067061056517057e+00 1.3957000000000000e-01 1 0 0 0 0 +P 309 111 9.0534432904070691e-02 -2.3749201050634819e-01 3.2731976007131105e+00 3.2858242607159731e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -79 0 0 0 0 0 0 2 0 +P 310 -211 2.7856484699452511e-01 2.8577154471696598e-01 3.4544645566440200e+00 3.4802397773372986e+00 1.3957000000000000e-01 1 0 0 0 0 +P 311 111 -9.4170629718448959e-02 -2.9997688368599973e-01 1.5278571859945593e+00 1.5657015741969307e+00 1.3497999999999999e-01 2 0 0 -150 0 +V -80 0 0 0 0 0 0 3 0 +P 313 -211 7.9426483332274311e-02 -1.5467016237984951e-01 9.7427050026002354e-02 2.4331716002351791e-01 1.3957000000000000e-01 1 0 0 0 0 +P 314 111 1.8971003374894185e-01 4.4985653465487427e-02 1.4939175240432037e-01 2.8026969513162736e-01 1.3497999999999999e-01 2 0 0 -151 0 +P 312 211 -2.4615362835751831e-01 -1.3753471735515529e-01 4.7223885765926288e-01 5.6744755776623024e-01 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 315 211 5.7720189775931130e-01 -3.9507585597671829e-01 -1.1132509901501841e+00 1.3221401267350796e+00 1.3957000000000000e-01 1 0 0 0 0 +P 316 -211 -1.9425629667973457e-01 -1.1419431352636915e-02 -1.1646984667205262e+00 1.1890619056606293e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 0 0 0 0 0 2 0 +P 317 -211 -2.9021697517593742e-01 1.1988738882319924e-01 -2.0078266346984845e+00 2.0370190128184267e+00 1.3957000000000000e-01 1 0 0 0 0 +P 318 111 2.7228862930317249e-01 -1.6409330052984511e-01 -5.7080765886119700e+00 5.7185160357199880e+00 1.3497999999999999e-01 2 0 0 -152 0 +V -83 0 0 0 0 0 0 3 0 +P 319 211 2.6159158905174562e-01 1.1976908035329931e-01 -1.4753856976310765e+01 1.4757321920131888e+01 1.3957000000000000e-01 1 0 0 0 0 +P 320 -211 -2.6126819940006357e-01 2.3461403354789964e-01 -1.1509852823941991e+01 1.1516053865385521e+01 1.3957000000000000e-01 1 0 0 0 0 +P 321 111 -1.7919897259041917e-02 1.5330504745657006e-01 -4.6525951151258740e+00 4.6571111717444085e+00 1.3497999999999999e-01 2 0 0 -153 0 +V -84 0 0 0 0 0 0 2 0 +P 322 -211 1.1189448533215496e-01 1.1139057069963787e+00 -4.6227315661100803e+01 4.6241080213549104e+01 1.3957000000000000e-01 1 0 0 0 0 +P 323 111 -1.7831872374999885e-01 1.0951995265665338e-02 -2.0281315249784544e+01 2.0282551254094816e+01 1.3497999999999999e-01 2 0 0 -154 0 +V -85 0 0 0 0 0 0 2 0 +P 324 211 -1.8870258535806511e-01 9.9084535100534471e-02 -1.2736262200082729e+01 1.2738810031748375e+01 1.3957000000000000e-01 1 0 0 0 0 +P 325 111 -2.2960427640955786e-01 -3.4454698564168434e-01 -3.2341356799315314e+01 3.2344288676211129e+01 1.3497999999999999e-01 2 0 0 -155 0 +V -86 0 0 0 0 0 0 2 0 +P 326 -211 -1.0197116374969704e+00 1.5402199673687851e+00 -1.0565560002434418e-01 1.8554601214374720e+00 1.3957000000000000e-01 1 0 0 0 0 +P 327 111 1.0395726111678255e-01 4.3839738579715976e-01 2.0604050465128451e-01 5.1348969801705135e-01 1.3497999999999999e-01 2 0 0 -156 0 +V -87 0 0 0 0 0 0 3 0 +P 328 22 6.5303627407064125e-03 -1.3036945355560819e-01 -9.6430844554637241e-02 1.6228908724690547e-01 0 1 0 0 0 0 +P 329 -211 -1.2443340358908676e-01 -5.8991175846200250e-01 -1.2399150957152332e+00 1.3857664969911101e+00 1.3957000000000000e-01 1 0 0 0 0 +P 330 211 2.9365126251793771e-03 -7.2719994381920436e-02 -1.0380865883666240e-01 1.8855461606328006e-01 1.3957000000000000e-01 1 0 0 0 0 +V -88 0 0 0 0 0 0 2 0 +P 331 211 -2.3181192257978658e-01 -3.5965984364971582e-01 6.4686117305103930e-02 4.5470435368081163e-01 1.3957000000000000e-01 1 0 0 0 0 +P 332 111 -4.8875895366781463e-01 -1.0438837818201401e+00 -1.5081607656981406e+00 1.9029837519875930e+00 1.3497999999999999e-01 2 0 0 -157 0 +V -89 0 0 0 0 0 0 1 0 +P 333 130 -4.2407341657881786e-01 -1.1323088737363824e+00 -4.2536503779649254e-01 1.3749809062203728e+00 4.9767000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 334 -311 5.4533423118825564e-01 -2.1932503402815775e+00 -4.1527351550146987e+00 4.7540110617715117e+00 4.9767000000000000e-01 2 0 0 -158 0 +P 335 -211 1.4206249538727772e-01 -1.2704767907742456e+00 -1.5334522019844594e+00 2.0013116871598671e+00 1.3957000000000000e-01 1 0 0 0 0 +V -91 0 0 0 0 0 0 2 0 +P 336 211 -1.2225698895883293e-01 -3.1496728462498411e+00 -1.0197663615851679e+01 1.0674605792099211e+01 1.3957000000000000e-01 1 0 0 0 0 +P 337 -211 -5.8985066728510137e-02 -1.1565457627145266e-02 -1.0576927309564947e+00 1.0685535531386812e+00 1.3957000000000000e-01 1 0 0 0 0 +V -92 0 3.8527617637917094e-05 -1.6712307045937573e-04 -4.2584623006883233e-04 4.6364744324007163e-04 0 2 0 +P 338 22 1.4995858064857176e-02 -1.9939694528972410e-01 -3.3316020649286715e-01 3.8856111583680686e-01 0 1 0 0 0 0 +P 339 22 6.5158901574831854e-02 -1.4829414915611150e-01 -5.5279133443610673e-01 5.7603393698290495e-01 0 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 340 211 8.5893108070628790e-02 -1.6165390012367403e-01 5.6069209211904635e-02 2.3692435620019278e-01 1.3957000000000000e-01 1 0 0 0 0 +P 341 111 -9.6650164117480342e-01 -6.5388813680532676e-02 -3.5814431438071642e-01 1.0415796031371627e+00 1.3497999999999999e-01 2 0 0 -159 0 +V -94 0 0 0 0 0 0 2 0 +P 342 211 -3.3890199253143205e-01 8.2436823164178752e-01 -1.3217187365235175e-01 9.1180410778124699e-01 1.3957000000000000e-01 1 0 0 0 0 +P 343 -211 2.8288613453084904e-01 1.1469241558673431e+00 3.3338963934249888e-01 1.2353493517797889e+00 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 344 211 1.0363531280713142e-01 -1.6220264472005022e-01 4.0741120327917821e+00 4.0810438145961632e+00 1.3957000000000000e-01 1 0 0 0 0 +P 345 111 2.2635792709284186e-01 7.3162424785401936e-01 7.5368670247839322e+00 7.5768790475288128e+00 1.3497999999999999e-01 2 0 0 -160 0 +V -96 0 0 0 0 0 0 1 0 +P 346 130 -3.9549707014260671e-01 -2.8851686492632728e-01 8.4163752596000130e+00 8.4452772514077648e+00 4.9767000000000000e-01 1 0 0 0 0 +V -97 0 0 0 0 0 0 2 0 +P 347 -311 5.0093079509551341e-01 -1.6736784839411437e-01 6.2499799234045614e+00 6.2919685417213573e+00 4.9767000000000000e-01 2 0 0 -161 0 +P 348 -211 2.0356629405886905e-02 2.6450194609587585e-01 2.1461021282513455e+00 2.1669355785611693e+00 1.3957000000000000e-01 1 0 0 0 0 +V -98 0 0 0 0 0 0 2 0 +P 349 -211 3.6607738155790637e-01 -4.3044115371221930e-01 4.2533118453167278e+00 4.2929516273199475e+00 1.3957000000000000e-01 1 0 0 0 0 +P 350 211 1.9833343048630526e-02 1.5399358150276715e-01 4.7818642606202344e-01 5.2177526542612684e-01 1.3957000000000000e-01 1 0 0 0 0 +V -99 0 0 0 0 0 0 2 0 +P 351 211 1.5940818450812536e-01 -1.9127479523860261e-01 1.2196341057309632e+00 1.2525909760747569e+00 1.3957000000000000e-01 1 0 0 0 0 +P 352 111 4.4384650908363849e-01 -1.1612861185648843e-01 2.4019833176905525e-01 5.3516391610616321e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -100 0 0 0 0 0 0 2 0 +P 353 2112 2.4461206701185767e-01 -3.6870254613733507e-02 2.2892535780963792e+00 2.4868993161626327e+00 9.3957000000000002e-01 1 0 0 0 0 +P 354 -211 1.2249192763084313e-01 1.6638271141054020e-01 8.2289236642324926e-01 8.5983667670593000e-01 1.3957000000000000e-01 1 0 0 0 0 +V -101 0 0 0 0 0 0 2 0 +P 355 -2112 1.0306418575496812e+00 -1.2658702532810939e-01 1.1049846019117362e+01 1.1138228573010105e+01 9.3957000000000002e-01 1 0 0 0 0 +P 356 211 -5.6839362417106777e-02 6.3129684964331675e-02 1.2267245939576892e+00 1.2375577095894705e+00 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 -3.0012621268697615e+01 2.2801365277584146e+01 1.5802443623017721e+03 1.5809175950845424e+03 0 2 0 +P 357 -2112 -1.1378581036056166e+00 9.7861646295080473e-01 5.6072853838445951e+01 5.6100803386565886e+01 9.3957000000000002e-01 1 0 0 0 0 +P 358 -211 -2.0412167434448733e-01 4.0920312535230922e-02 1.4585951983370913e+01 1.4588105263399255e+01 1.3957000000000000e-01 1 0 0 0 0 +V -103 0 0 0 0 0 0 2 0 +P 359 -311 4.7336032540883582e-01 1.9957792363092278e-01 3.8244208976342740e+01 3.8250896682304671e+01 4.9767000000000000e-01 2 0 0 -163 0 +P 360 -211 1.7967918223592744e-01 2.5885318350017517e-01 5.4584200602766515e+00 5.4692887031558053e+00 1.3957000000000000e-01 1 0 0 0 0 +V -104 0 0 0 0 0 0 2 0 +P 361 -211 -3.2092342397034901e-01 -3.5332105099211819e-01 2.8100859079842962e+01 2.8105259088277762e+01 1.3957000000000000e-01 1 0 0 0 0 +P 362 211 -8.8439883740469394e-01 -2.9929391419485957e-01 5.4686939688980750e+01 5.4695087443771357e+01 1.3957000000000000e-01 1 0 0 0 0 +V -105 0 0 0 0 0 0 2 0 +P 363 211 9.3368745682880214e-02 -3.7681332268505119e-01 1.5272857477423360e+01 1.5278427972583108e+01 1.3957000000000000e-01 1 0 0 0 0 +P 364 111 1.0891567153138218e-01 5.3615728162335041e-01 7.6529234059726923e+00 7.6736421282352971e+00 1.3497999999999999e-01 2 0 0 -164 0 +V -106 0 3.8458390904380503e-05 8.9309240418746158e-05 -2.4409401035204432e-04 2.6354728923169718e-04 0 2 0 +P 365 22 2.1224395554242417e-01 4.8081206587306669e-01 -1.4361207927576540e+00 1.5292712874909715e+00 0 1 0 0 0 0 +P 366 22 4.1026448030886967e-02 1.0734013789231003e-01 -1.7137726053839816e-01 2.0633768456202375e-01 0 1 0 0 0 0 +V -107 0 4.3736281292517583e-06 7.8584567595844059e-06 -1.2404186200301000e-05 1.5630335896051612e-05 0 2 0 +P 367 22 6.0632728091395464e-02 2.9953596761870191e-02 -4.5605230561117767e-02 8.1568270358703371e-02 0 1 0 0 0 0 +P 368 22 1.3030486076758502e-01 3.1311964620364563e-01 -4.9591895367456895e-01 6.0079853377986470e-01 0 1 0 0 0 0 +V -108 0 -1.3697641095364497e-05 -9.6097423271048161e-07 -1.4410161111415212e-05 2.4636517224285515e-05 0 2 0 +P 369 22 2.7690702351260706e-02 1.0286881774652524e-02 -2.0116122984700145e-02 3.5738681247177738e-02 0 1 0 0 0 0 +P 370 22 -1.5504829056605138e-01 -1.9221804201258064e-02 -1.1386631619291016e-01 1.9332611858605653e-01 0 1 0 0 0 0 +V -109 0 -1.2153169023578906e-05 -6.2824244005050017e-06 1.4326674711770995e-05 2.0879577567088964e-05 0 2 0 +P 371 22 -1.8133550327440726e-01 -2.1084177871680054e-02 1.5281630107905045e-01 2.3807546950450442e-01 0 1 0 0 0 0 +P 372 22 -6.7287207673414770e-02 -1.0743813451843676e-01 1.4027076936302429e-01 1.8906720975087596e-01 0 1 0 0 0 0 +V -110 0 -5.9930910720649131e-07 9.8928458623747859e-07 1.4337918863531024e-05 2.1627823622279452e-05 0 2 0 +P 373 22 1.3368502630494792e-03 7.1193937795053341e-02 5.3178847259601876e-02 8.8872682772896006e-02 0 1 0 0 0 0 +P 374 22 -6.3455584296092616e-03 -6.2926021078025848e-02 6.6649886259870242e-02 9.1881214505193501e-02 0 1 0 0 0 0 +V -111 0 0 0 0 0 0 1 0 +P 375 130 -8.4559749187529187e-01 9.9710033077653488e-03 -5.2448860633214933e-01 1.1126087660291861e+00 4.9767000000000000e-01 1 0 0 0 0 +V -112 0 -3.8983732874524748e-05 6.6885010970516116e-05 1.2195638089406324e-05 8.4203326822728840e-05 0 2 0 +P 376 22 -6.9501739814868346e-02 5.8747270131682114e-02 6.7485383437181481e-02 1.1329611892241456e-01 0 1 0 0 0 0 +P 377 22 -1.0138909794407150e-01 2.3445286016514555e-01 -1.4024037988002492e-02 2.5582135654205801e-01 0 1 0 0 0 0 +V -113 0 -1.1912408123196776e+02 9.0688833868512901e+00 -1.9297715704041471e+02 2.4795500052785277e+02 0 2 0 +P 378 -211 -4.6643829830683509e-01 -1.1593546915583072e-01 -7.8530117194117199e-01 9.3122684383985455e-01 1.3957000000000000e-01 1 0 0 0 0 +P 379 211 -1.2733627113911816e-01 1.6113936305111573e-01 -1.7659441751103602e-01 3.0470607717634451e-01 1.3957000000000000e-01 1 0 0 0 0 +V -114 0 -1.5133275992010396e-04 4.9760717101996210e-05 -1.3398603715268880e-04 2.1112016913381942e-04 0 2 0 +P 380 22 -1.1176794650841664e-01 1.9471339867306089e-02 -3.6632243387093595e-02 1.1921882484955004e-01 0 1 0 0 0 0 +P 381 22 -4.6791164082034109e-01 1.7113690629232955e-01 -4.7660078537344397e-01 6.8947621636215795e-01 0 1 0 0 0 0 +V -115 0 -2.3405923657104216e-04 1.4611123604191701e-04 -6.3978468743944869e-04 7.0271385577448068e-04 0 2 0 +P 382 22 -1.5654606706326107e-02 5.9193877959733618e-02 -1.8136750724565426e-01 1.9142401778132240e-01 0 1 0 0 0 0 +P 383 22 -3.3008524394544181e-01 1.5663386576763144e-01 -7.6368839195815341e-01 8.4658750060904175e-01 0 1 0 0 0 0 +V -116 0 0 0 0 0 0 1 0 +P 384 130 -1.7100390911822591e-01 -2.6586260149101487e-01 -5.1674196262737446e+00 5.2009447490532308e+00 4.9767000000000000e-01 1 0 0 0 0 +V -117 0 -1.5719477175582176e-05 4.6489243577943278e-05 -7.5819144246790952e-03 7.5823779450975570e-03 0 2 0 +P 385 22 -4.6933693407794318e-02 2.8454853467780084e-02 -1.9950342681093154e+00 1.9957891124047258e+00 0 1 0 0 0 0 +P 386 22 1.5719078175245767e-02 6.3860166588475972e-02 -1.3060589964743238e+01 1.3060755546194381e+01 0 1 0 0 0 0 +V -118 0 4.6249141509978390e-06 9.4614267138868386e-07 -2.0087503716210106e-03 2.0087574999136074e-03 0 2 0 +P 387 22 2.3741658257604767e-01 7.3640089833744204e-02 -8.3863686540923268e+01 8.3864054932555888e+01 0 1 0 0 0 0 +P 388 22 1.0260154843681210e-02 -2.2971575277084405e-02 -2.3710361774420765e+01 2.3710375122253165e+01 0 1 0 0 0 0 +V -119 0 8.0119424837326258e-05 -1.3313731683508782e-05 -4.5005670871262882e-01 4.5005671772315053e-01 0 2 0 +P 389 22 4.2401624770675016e-02 -5.3374706122119440e-02 -5.2723836697148852e+02 5.2723837137818316e+02 0 1 0 0 0 0 +P 390 22 2.3552360385043181e-01 7.1908758031656028e-03 -1.0339574842891241e+03 1.0339575111389108e+03 0 1 0 0 0 0 +V -120 0 -1.0574775438722866e-05 9.3918705274453874e-05 1.7646494932804896e-04 2.0299584739183731e-04 0 2 0 +P 391 22 -8.5106936416403350e-02 2.7456829559547896e-01 5.6036665343756142e-01 6.2979498716423898e-01 0 1 0 0 0 0 +P 392 22 4.2736363582437008e-02 1.0174128803230018e-01 1.4668580658605107e-01 1.8356037785023779e-01 0 1 0 0 0 0 +V -121 0 -4.3851597869865436e-05 1.0531124861711626e-04 2.7512539861286188e-04 2.9879329632975386e-04 0 2 0 +P 393 22 -2.2168226147523581e-01 5.3450139560674614e-01 1.2608632340692663e+00 1.3873034498572918e+00 0 1 0 0 0 0 +P 394 22 -2.6235155521216191e-02 6.0881532406653491e-02 2.9457331756189681e-01 3.0194086141631588e-01 0 1 0 0 0 0 +V -122 0 3.4877577943497759e-05 2.2373782240192860e-04 7.2331191609908019e-04 7.5928371084947772e-04 0 2 0 +P 395 22 -4.0112956797155415e-03 1.5481676149413653e-01 6.7269609638733785e-01 6.9029295101958354e-01 0 1 0 0 0 0 +P 396 22 1.0782252001879759e-01 5.1112676566625326e-01 1.4802027003965594e+00 1.5696739472466619e+00 0 1 0 0 0 0 +V -123 0 -3.1383658047148092e-07 -3.8483860900566085e-06 5.8223741610822792e-06 7.2589357635634373e-06 0 2 0 +P 397 22 -3.4203777351233013e-02 -7.7314876934825694e-02 2.3165639285197370e-01 2.4660124275787404e-01 0 1 0 0 0 0 +P 398 22 1.2707702234842765e-02 -1.8627834838151267e-01 1.6714412980962137e-01 2.5059582778180722e-01 0 1 0 0 0 0 +V -124 0 3.2236808159334187e-05 -4.4252594647466681e-06 7.9687775574346266e-05 8.6862496107126174e-05 0 2 0 +P 399 22 2.8048142698490619e-01 -1.6909267864752442e-03 5.3537686917943428e-01 6.0440142469161939e-01 0 1 0 0 0 0 +P 400 22 9.2426469250633983e-02 -4.9499445074743652e-02 3.8643277767653045e-01 4.0040371994231605e-01 0 1 0 0 0 0 +V -125 0 4.2009406464945751e-05 -1.2069163044297390e-05 6.3371665519486119e-05 8.0090782101313509e-05 0 2 0 +P 401 22 1.5677840685418869e-02 1.9658044984528937e-04 1.2369344343658331e-01 1.2468320368690350e-01 0 1 0 0 0 0 +P 402 22 2.4098140449885502e-01 -7.3933929715660526e-02 2.6347993526548569e-01 3.6463672273229075e-01 0 1 0 0 0 0 +V -126 0 4.1067867362733860e-05 3.2555400164699854e-05 5.5201857772271590e-05 8.2909348694607668e-05 0 2 0 +P 403 22 -4.8371529729373045e-03 6.8203982431913487e-02 6.7555697751643287e-02 9.6119475483211703e-02 0 1 0 0 0 0 +P 404 22 1.7349290496990249e-01 6.5493135264584043e-02 1.5914491837677636e-01 2.4436907309811426e-01 0 1 0 0 0 0 +V -127 0 2.2996903462980960e-06 3.5321056006164265e-07 9.0947755025366818e-06 9.7530487726669384e-06 0 2 0 +P 405 22 7.5194678532599424e-02 1.6444172407965130e-02 4.4468114488586097e-01 4.5129366392937964e-01 0 1 0 0 0 0 +P 406 22 4.2183059397594619e-02 1.5839315147350983e-03 1.9522297629404592e-02 4.6508487869585918e-02 0 1 0 0 0 0 +V -128 0 4.2478406964594337e-05 1.5680554272100167e-05 3.4601724241679823e-04 3.5122770649711978e-04 0 2 0 +P 407 22 7.0751074460728869e-02 5.8688867322594630e-02 2.8102517910808417e-01 2.9567760986873448e-01 0 1 0 0 0 0 +P 408 22 7.3374743433465395e-02 -5.4860080114057562e-03 8.9298349100003183e-01 8.9600974573741798e-01 0 1 0 0 0 0 +V -129 0 0 0 0 0 0 1 0 +P 409 130 2.5178180326027377e-01 -3.2242494783834660e-02 4.0106627287096375e+00 4.0493857073985327e+00 4.9767000000000000e-01 1 0 0 0 0 +V -130 0 9.7296294408389538e-05 -1.8057692433404323e-04 4.0892878755954612e-03 4.0976367013533495e-03 0 2 0 +P 410 22 2.2610663559113998e-02 1.5843981511661730e-02 1.7624472459684748e-01 1.7839416135329073e-01 0 1 0 0 0 0 +P 411 22 5.8407246803437063e-02 -1.6620906127341661e-01 3.2288752809096777e+00 3.2336778500954755e+00 0 1 0 0 0 0 +V -131 0 -5.9918336999371855e-06 -2.2748399729338936e-06 1.1813059477552841e-04 1.1830882340672078e-04 0 2 0 +P 412 22 -6.4079677880824115e-01 -2.9594268267928575e-01 1.2675721449920001e+01 1.2695358083139070e+01 0 1 0 0 0 0 +P 413 22 -1.4353546444437934e-01 -1.8343298954584674e-03 2.7875972997355194e+00 2.7912908303887272e+00 0 1 0 0 0 0 +V -132 0 -2.1628437162218839e-04 -1.8553738695043266e-04 4.3655499554553336e-03 4.3749458062479468e-03 0 2 0 +P 414 22 -1.8975057145655388e-01 -2.3624605238895813e-01 4.4154025237974253e+00 4.4257877178864025e+00 0 1 0 0 0 0 +P 415 22 -7.7204765374333273e-01 -5.8882294422292536e-01 1.4997827233334203e+01 1.5029224589453543e+01 0 1 0 0 0 0 +V -133 0 -1.0031594106859512e+00 -6.0662790835180747e-01 1.4756351155848559e+01 1.4803588565939812e+01 0 2 0 +P 416 -311 -5.7533254882839175e+00 -4.0301381457755010e+00 9.0395852379808090e+01 9.0669733486699556e+01 4.9767000000000000e-01 2 0 0 -165 0 +P 417 -211 -1.6323447011722816e+00 -8.8456314377591827e-01 2.1686911267723048e+01 2.1766685583656617e+01 1.3957000000000000e-01 1 0 0 0 0 +V -134 0 -2.3360926691629899e-05 -3.6259117715442567e-06 1.7025501083802078e-02 1.7025523647425003e-02 0 2 0 +P 418 22 -7.2611311153853525e-02 3.7197986780457486e-02 8.1779099887878104e+01 8.1779140583429168e+01 0 1 0 0 0 0 +P 419 22 -1.4527780310138280e-01 -7.1017137651406562e-02 7.7019024855621765e+01 7.7019194612673004e+01 0 1 0 0 0 0 +V -135 0 1.2076169997944896e-05 -1.0726917860116507e-05 3.2525658344699942e-03 3.2526134023936229e-03 0 2 0 +P 420 22 7.5246657878530437e-02 -1.4550284380572404e-01 3.7015590489964843e+01 3.7015952945424132e+01 0 1 0 0 0 0 +P 421 22 1.5872388908114299e-01 -6.2326529194992208e-02 2.6001459406053321e+01 2.6002018558447446e+01 0 1 0 0 0 0 +V -136 0 3.2332819614426833e-06 -3.0337223685055661e-05 2.7563962365646020e-03 2.7567459788091471e-03 0 2 0 +P 422 22 5.2995067612266689e-02 -1.0388453409721403e-01 1.0481693098366938e+01 1.0482341851035432e+01 0 1 0 0 0 0 +P 423 22 -3.9175857367738848e-02 -2.5778290654386461e-02 1.2992834958659103e+00 1.3001295591975057e+00 0 1 0 0 0 0 +V -137 0 3.1210382498907047e-05 -2.4228290863135666e-05 1.4586790248855876e-03 1.4593020915778690e-03 0 2 0 +P 424 22 1.4570887631797527e-01 -1.2616945494337359e-01 4.7114504656630327e+00 4.7153913197522614e+00 0 1 0 0 0 0 +P 425 22 1.1707757909111839e-01 -7.7828899667208698e-02 7.5703948639384269e+00 7.5717001322750876e+00 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 426 130 7.4489573882419291e-01 8.6535957172601397e-01 1.7511148478823699e+01 1.7555389865406173e+01 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 0 0 0 0 0 1 0 +P 427 310 -4.7598331792509141e-01 -8.4343084301410715e-02 2.7348337649344273e+01 2.7357136573228090e+01 4.9767000000000000e-01 2 0 0 -166 0 +V -140 0 -8.3925193175608200e+01 3.9338375119302427e+01 8.7963531058230437e+03 8.7970466296407194e+03 0 2 0 +P 428 -211 -4.8915716729371289e-01 3.5379275820838541e-01 4.0094024505926598e+01 4.0098812013784375e+01 1.3957000000000000e-01 1 0 0 0 0 +P 429 211 -2.0594778188345286e-01 -2.7975227103050119e-02 3.2761197474600237e+01 3.2762154032615854e+01 1.3957000000000000e-01 1 0 0 0 0 +V -141 0 -2.3066035847172713e-06 2.2622629018241768e-05 2.6857264600342206e-03 2.6858397352112653e-03 0 2 0 +P 430 22 5.3127791655494534e-02 1.2374417391665785e-01 1.4536463780597019e+01 1.4537087549692799e+01 0 1 0 0 0 0 +P 431 22 -8.5701044998682224e-02 1.9572668409402283e-01 2.3390663781688637e+01 2.3391639655055833e+01 0 1 0 0 0 0 +V -142 0 7.4745864093440425e-06 9.3134989752651984e-06 9.7003591521736574e-05 9.8074817718559216e-05 0 2 0 +P 432 22 -5.3080603537296158e-03 6.2270797239337615e-02 7.9227269487634211e-01 7.9473382383044622e-01 0 1 0 0 0 0 +P 433 22 1.2915793110420093e-01 9.2048864231064606e-02 8.1502456738822093e-01 8.3031307951862532e-01 0 1 0 0 0 0 +V -143 0 1.6683368743087236e-04 1.0854011843115621e-04 8.8202948366584450e-03 8.8226093028841972e-03 0 2 0 +P 434 22 4.7366546711335589e-01 2.6593638108134854e-01 2.6023432393861224e+01 2.6029101303951776e+01 0 1 0 0 0 0 +P 435 22 1.7119797565636166e-01 1.5360451337469549e-01 8.0697161914225859e+00 8.0729934041534896e+00 0 1 0 0 0 0 +V -144 0 1.7954480389756124e-04 7.7724415131910377e-05 6.2927154370721232e-03 6.2958241174259407e-03 0 2 0 +P 436 22 1.1422002392478928e-01 6.4918508167836715e-03 4.3441170283238124e+00 4.3456232135063573e+00 0 1 0 0 0 0 +P 437 22 7.1395691893479074e-01 3.5202350085120604e-01 2.4681962924026539e+01 2.4694795986407076e+01 0 1 0 0 0 0 +V -145 0 -1.9609651427977344e-05 -7.4782511180791459e-06 3.8410389939440802e-04 3.8635884505955950e-04 0 2 0 +P 438 22 -1.0729773963663858e-01 -3.0268391562004265e-02 8.2224722500628999e-01 8.2977073911377908e-01 0 1 0 0 0 0 +P 439 22 3.3797644432614085e-02 2.2387159118688409e-03 6.1743533525827154e-01 6.1836371646759947e-01 0 1 0 0 0 0 +V -146 0 5.2131973766054339e-06 4.1070866662282870e-06 1.4937262112277159e-04 1.4956090324421662e-04 0 2 0 +P 440 22 1.8118299159397690e-02 2.9575529460455215e-02 2.1818118251376073e+00 2.1820874925212306e+00 0 1 0 0 0 0 +P 441 22 1.8302887004733309e-01 1.2889321762858399e-01 3.5816146721340854e+00 3.5886037240781548e+00 0 1 0 0 0 0 +V -147 0 6.1675119851635953e+00 -3.2443224410695379e+01 3.3447693202227225e+02 3.3624566849186726e+02 0 2 0 +P 442 -211 1.7168112378432487e-01 -6.2348686049339996e-01 4.8195537594747444e+00 4.8647495823360636e+00 1.3957000000000000e-01 1 0 0 0 0 +P 443 211 1.4202736966257906e-01 -1.0267272091220803e+00 1.2193506724211735e+01 1.2238277107255811e+01 1.3957000000000000e-01 1 0 0 0 0 +V -148 0 0 0 0 0 0 2 0 +P 444 211 -1.8843760989747041e-01 -5.7132487376221974e-01 7.0005634871052020e+00 7.0277514018421163e+00 1.3957000000000000e-01 1 0 0 0 0 +P 445 -211 2.1778470945671029e-02 -2.4462331826562256e-01 9.8717902473717956e-01 1.0267994358281778e+00 1.3957000000000000e-01 1 0 0 0 0 +V -149 0 3.3815872655375920e-05 -8.8706576341638220e-05 1.2225849291934955e-03 1.2273011627084497e-03 0 2 0 +P 446 22 4.1946401175051981e-02 -2.3452337052872346e-01 2.8068387162995183e+00 2.8169317157527307e+00 0 1 0 0 0 0 +P 447 22 4.8588031729018710e-02 -2.9686399776247515e-03 4.6635888441359208e-01 4.6889254496324323e-01 0 1 0 0 0 0 +V -150 0 -2.2719145518260682e-06 -7.2370955710423777e-06 3.6860335163427627e-05 3.7773350362741714e-05 0 2 0 +P 448 22 -2.8163592205792350e-03 -2.1581075512772691e-01 1.0509549888338077e+00 1.0728879729322758e+00 0 1 0 0 0 0 +P 449 22 -9.1354270497869719e-02 -8.4166128558272837e-02 4.7690219716075166e-01 4.9281360126465479e-01 0 1 0 0 0 0 +V -151 0 5.9843090047528281e-05 1.4190501461534226e-05 4.7124887992592318e-05 8.8409686466827799e-05 0 2 0 +P 450 22 2.0924146209939254e-01 4.3206977463747263e-02 1.2033302804903956e-01 2.4521188797139343e-01 0 1 0 0 0 0 +P 451 22 -1.9531428350450693e-02 1.7786760017401684e-03 2.9058724355280816e-02 3.5057807160233830e-02 0 1 0 0 0 0 +V -152 0 1.0195251485624900e-05 -6.1441143182856532e-06 -2.1372642871293361e-04 2.1411731095032145e-04 0 2 0 +P 452 22 1.9533270339594799e-01 -1.0471989149621931e-01 -4.8287806447212560e+00 4.8338642549750723e+00 0 1 0 0 0 0 +P 453 22 7.6955925907224484e-02 -5.9373409033625792e-02 -8.7929594389071397e-01 8.8465178074493211e-01 0 1 0 0 0 0 +V -153 0 -4.3180098738504445e-06 3.6940653122024246e-05 -1.1210974792840959e-03 1.1221856762077622e-03 0 2 0 +P 454 22 -7.1590286058456104e-02 5.2136269562120231e-02 -1.7161269640007177e+00 1.7184106366733500e+00 0 1 0 0 0 0 +P 455 22 5.3670388799414187e-02 1.0116877789444984e-01 -2.9364681511251565e+00 2.9387005350710602e+00 0 1 0 0 0 0 +V -154 0 -6.2729864115820472e-05 3.8527483842666313e-06 -7.1346638364952423e-03 7.1350986443538779e-03 0 2 0 +P 456 22 -6.4640508041547584e-02 -3.2289955193366408e-02 -3.2563504549031794e+00 3.2571520261778351e+00 0 1 0 0 0 0 +P 457 22 -1.1367821570845126e-01 4.3241950459031744e-02 -1.7024964794881363e+01 1.7025399227916957e+01 0 1 0 0 0 0 +V -155 0 -3.5839923770696304e-05 -5.3781827995199834e-05 -5.0483021503518492e-03 5.0487597996870161e-03 0 2 0 +P 458 22 -1.7396435578211061e-01 -1.7417492837193710e-01 -1.5179023412587368e+01 1.5181019473758385e+01 0 1 0 0 0 0 +P 459 22 -5.5639920627447256e-02 -1.7037205726974725e-01 -1.7162333386727944e+01 1.7163269202452724e+01 0 1 0 0 0 0 +V -156 0 4.5507577628584387e-06 1.9190966414477778e-05 9.0194798894498126e-06 2.2478153082292885e-05 0 2 0 +P 460 22 5.3961060971557492e-02 7.9158052349659946e-02 -1.0977173258833227e-03 9.5807089175567753e-02 0 1 0 0 0 0 +P 461 22 4.9996200145225052e-02 3.5923933344749981e-01 2.0713822197716783e-01 4.1768260884148362e-01 0 1 0 0 0 0 +V -157 0 -5.1581249311847977e-06 -1.1016643111822161e-05 -1.5916397208488843e-05 2.0083167502314703e-05 0 2 0 +P 462 22 -3.1716501142518883e-01 -5.8150051590051388e-01 -7.7670585418244320e-01 1.0207881652851305e+00 0 1 0 0 0 0 +P 463 22 -1.7159394224262578e-01 -4.6238326591962625e-01 -7.3145491151569741e-01 8.8219558670246279e-01 0 1 0 0 0 0 +V -158 0 0 0 0 0 0 1 0 +P 464 310 5.4533423118825564e-01 -2.1932503402815775e+00 -4.1527351550146987e+00 4.7540110617715117e+00 4.9767000000000000e-01 2 0 0 -167 0 +V -159 0 -2.9899249577558377e-04 -2.0228382203658472e-05 -1.1079387539825041e-04 3.2221826826116836e-04 0 2 0 +P 465 22 -8.3346775443643040e-01 -4.8634651175075268e-02 -3.5562649196823404e-01 9.0747122751625553e-01 0 1 0 0 0 0 +P 466 22 -1.3303388673837305e-01 -1.6754162505457412e-02 -2.5178224124823680e-03 1.3410837562090722e-01 0 1 0 0 0 0 +V -160 0 3.8723550913267867e-05 1.2516057721069469e-04 1.2893485008857004e-03 1.2961934460564023e-03 0 2 0 +P 467 22 9.4494307196249280e-02 1.2938868819578370e-01 1.7092391437658199e+00 1.7167320866421871e+00 0 1 0 0 0 0 +P 468 22 1.3186361989659259e-01 6.0223555965823572e-01 5.8276278810181124e+00 5.8601469608866257e+00 0 1 0 0 0 0 +V -161 0 0 0 0 0 0 1 0 +P 469 130 5.0093079509551341e-01 -1.6736784839411437e-01 6.2499799234045614e+00 6.2919685417213573e+00 4.9767000000000000e-01 1 0 0 0 0 +V -162 0 1.1030443660979173e-04 -2.8860204694531712e-05 5.9693928234557251e-05 1.3299857732767785e-04 0 2 0 +P 470 22 2.5718881712629815e-01 -1.7110260067217876e-02 7.9616960930951566e-02 2.6977344035740969e-01 0 1 0 0 0 0 +P 471 22 1.8665769195734039e-01 -9.9018351789270556e-02 1.6058137083810370e-01 2.6539047574875341e-01 0 1 0 0 0 0 +V -163 0 0 0 0 0 0 1 0 +P 472 310 4.7336032540883582e-01 1.9957792363092278e-01 3.8244208976342740e+01 3.8250896682304671e+01 4.9767000000000000e-01 2 0 0 -168 0 +V -164 0 5.0645331992271131e-05 2.4931089480602684e-04 3.5585773943948317e-03 3.5682115136422437e-03 0 2 0 +P 473 22 5.6913977335912823e-02 7.9267004492891840e-02 9.6228112476905237e-01 9.6721632632222521e-01 0 1 0 0 0 0 +P 474 22 5.2001694195469371e-02 4.5689027713045866e-01 6.6906422812036404e+00 6.7064258019130722e+00 0 1 0 0 0 0 +V -165 0 -1.0031594106859512e+00 -6.0662790835180747e-01 1.4756351155848559e+01 1.4803588565939812e+01 0 1 0 +P 475 130 -5.7533254882839175e+00 -4.0301381457755010e+00 9.0395852379808090e+01 9.0669733486699556e+01 4.9767000000000000e-01 1 0 0 0 0 +V -166 0 -2.1954338730932741e+00 -3.8902553359153652e-01 1.2614195621370837e+02 1.2618254052583406e+02 0 2 0 +P 476 -211 -3.8419677861900481e-01 1.0373514257599888e-01 1.3727450016645596e+01 1.3733926310014542e+01 1.3957000000000000e-01 1 0 0 0 0 +P 477 211 -9.1786539306086476e-02 -1.8807822687740958e-01 1.3620887632698674e+01 1.3623210263213544e+01 1.3957000000000000e-01 1 0 0 0 0 +V -167 0 6.0843234933367697e+01 -2.4470212594333566e+02 -4.6332290584815917e+02 5.3040758376185750e+02 0 2 0 +P 478 211 4.3923811914830291e-01 -1.9192225167157120e+00 -3.3556575631746446e+00 3.8931045015736121e+00 1.3957000000000000e-01 1 0 0 0 0 +P 479 -211 1.0609611203995273e-01 -2.7402782356586536e-01 -7.9707759184005411e-01 8.6090656019789924e-01 1.3957000000000000e-01 1 0 0 0 0 +V -168 0 1.7832638234533317e+01 7.5185872593688456e+00 1.4407526500071178e+03 1.4410045922055583e+03 0 2 0 +P 480 211 -1.6780378320731124e-02 1.2970062371486263e-02 4.2224922518224925e+00 4.2248515246355689e+00 1.3957000000000000e-01 1 0 0 0 0 +P 481 -211 4.9014070372956692e-01 1.8660786125943651e-01 3.4021716724520246e+01 3.4026045157669103e+01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 7 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 146 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 9.5585977786327769e-02 7.9414932775068517e-02 2.4315489624226007e+02 2.4315492799858069e+02 0 3 0 0 -3 0 +P 24 2101 -9.5585977786327769e-02 -7.9414932775068517e-02 6.5004858943937879e+03 6.5004859213968966e+03 5.7933000000000001e-01 2 0 0 -17 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 -3.1839018050093307e-03 5.0554804870918790e-01 -2.5725369994220681e+01 2.5730337158815754e+01 0 3 0 0 -4 0 +P 12 2101 3.8701429021918715e-01 -2.0438006852161128e-01 -5.1057965796384815e+03 5.1057966312635817e+03 5.7933000000000001e-01 2 0 0 -9 0 +P 33 2 -3.8383038841417783e-01 -3.0116798018757662e-01 -1.4059242432952470e+02 1.4059365813141250e+02 3.3000000000000002e-01 2 0 0 -17 0 +V -3 0 0 0 0 0 0 3 0 +P 5 2 -2.1264769648708381e-01 8.3899334394629999e-01 2.3005421402360733e+02 2.3005584217509832e+02 0 3 0 0 -5 0 +P 25 21 -3.6511185605667584e-03 -1.4425395575640334e+00 8.1652186717378754e+00 8.2916662778419035e+00 0 2 0 0 -17 0 +P 26 21 2.9593935486652639e-01 6.8709099958216890e-01 4.0361549279216140e+00 4.1049020384963599e+00 0 2 0 0 -17 0 +V -4 0 0 0 0 0 0 4 0 +P 6 -3 -1.9831035912957480e+00 8.3830206726540324e-01 -1.1595024534665217e+01 1.1793220262900215e+01 0 3 0 0 -5 0 +P 11 3 -2.8557959363283214e-01 -1.4780078065351945e+00 -1.0810465318999622e+01 1.0926217240828231e+01 5.0000000000000000e-01 2 0 0 -9 0 +P 31 21 1.2172273336784700e+00 -4.7627796523471329e-02 -9.7231787370062306e-01 1.5586253033918638e+00 0 2 0 0 -17 0 +P 32 21 1.0642173874125529e+00 1.1887517313130824e+00 -1.4482536478625649e+00 2.1547918588388710e+00 0 2 0 0 -17 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 1.4000883323926923e+00 -8.2378971281789837e-02 8.3381755872705611e+01 8.3393550386399113e+01 0 3 0 0 -6 0 +P 8 24 -3.5958396201755241e+00 1.7596743824934931e+00 1.3507743361623650e+02 1.5845551205159941e+02 8.2741825642653993e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 1.4000883323926923e+00 -8.2378971281789837e-02 8.3381755872705611e+01 8.3393550386399113e+01 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -3.5958396201755241e+00 1.7596743824934931e+00 1.3507743361623650e+02 1.5845551205159941e+02 8.2741825642653993e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 7 0 +P 13 2 -4.9357754672154250e+00 1.4347517927759370e+00 5.9322107559486689e+01 5.9545291480258513e+01 3.3000000000000002e-01 2 0 0 -11 0 +P 14 21 -6.6611694690988275e+00 2.4614122585280231e+00 7.0400917686742488e+01 7.0758172249839646e+01 0 2 0 0 -11 0 +P 15 21 -1.1364538745352168e+00 -8.4363652633784314e-01 1.5206113213728849e+00 2.0773802704860946e+00 0 2 0 0 -11 0 +P 16 21 -7.0207935266386619e+00 -9.6120038752047388e-01 5.9385495803026025e+00 9.2456378388066369e+00 0 2 0 0 -11 0 +P 17 21 1.9233062830932506e+00 -9.9992930184166651e-01 2.0384347101481007e-01 2.1772730255856527e+00 0 2 0 0 -11 0 +P 18 21 6.5191036641582967e+00 1.4569596471037023e+00 -1.4166998204938244e+00 6.8285051349997472e+00 0 2 0 0 -11 0 +P 19 -3 7.7159427700610506e+00 -7.8868310021418342e-01 -8.9189618218918798e-01 7.8232520516230650e+00 5.0000000000000000e-01 2 0 0 -11 0 +V -9 0 0 0 0 0 0 1 0 +P 38 92 1.0143469658635501e-01 -1.6823878750568058e+00 -5.1166070449574809e+03 5.1167228485044097e+03 3.4383356156668995e+01 2 0 0 -10 0 +V -10 0 0 0 0 0 0 8 0 +P 39 -313 -2.1040013596164128e-01 -5.8425235058654956e-01 -1.1872843281185203e+01 1.1925692262405972e+01 9.3386794122427452e-01 2 0 0 -23 0 +P 40 113 -2.6276647691303950e-01 -5.6521457952856013e-01 -1.1962401435561386e+01 1.1993068060118460e+01 5.8831934084434256e-01 2 0 0 -24 0 +P 41 -211 2.1202252232348538e-02 1.2037186058540997e-01 -3.8928936098051310e+01 3.8929378166513047e+01 1.3957000000000000e-01 1 0 0 0 0 +P 42 2114 -3.0865407405585576e-01 -4.5752156743261424e-01 -6.0439787274539817e+01 6.0455579370402425e+01 1.2667272387158715e+00 2 0 0 -25 0 +P 43 223 7.5934744704867152e-01 -4.5802192101885630e-02 -7.5778630043207073e+01 7.5786642607491785e+01 7.9732057812523760e-01 2 0 0 -26 0 +P 44 -3114 -4.7130125309522669e-01 -3.6998042550758815e-02 -1.6236037253483892e+02 1.6236696425649211e+02 1.3845643686705831e+00 2 0 0 -27 0 +P 45 -311 3.9338164815186982e-01 1.5120222274855744e-01 -1.5841292434872400e+02 1.5841426667878346e+02 4.9767000000000000e-01 2 0 0 -28 0 +P 46 2112 1.8062528917922832e-01 -2.6417322619040490e-01 -4.5968511499413735e+03 4.5968512571022029e+03 9.3957000000000002e-01 1 0 0 0 0 +V -11 0 0 0 0 0 0 1 0 +P 47 92 -3.5958396201755329e+00 1.7596743824934951e+00 1.3507743361623648e+02 1.5845551205159936e+02 8.2741825642653964e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 19 0 +P 48 213 -4.6020701303904872e+00 1.4837736955946597e+00 4.4190052474360535e+01 4.4457621785313627e+01 5.8203372280644805e-01 2 0 0 -29 0 +P 49 111 6.6697298340082936e-02 -2.7309372095162640e-02 1.5613189066221931e+00 1.5687991139677566e+00 1.3497999999999999e-01 2 0 0 -30 0 +P 50 -213 -1.2537860530518419e+00 6.3570399222428886e-01 2.3101138766532216e+01 2.3148198586365478e+01 4.4764545197942257e-01 2 0 0 -31 0 +P 51 223 -4.9718024532112670e+00 1.2416775214387061e+00 4.4371163546531150e+01 4.4672913013609495e+01 7.8001278675560926e-01 2 0 0 -32 0 +P 52 211 2.0193990881854440e-01 1.9756624416254592e-01 8.6476093093118023e-01 9.2038220331072151e-01 1.3957000000000000e-01 1 0 0 0 0 +P 53 3112 -7.0584972907924126e-01 -6.5661601113311763e-02 9.0004313706404595e+00 9.1073685934583164e+00 1.1974400000000001e+00 2 0 0 -33 0 +P 54 -3212 -1.3667402501295773e+00 -6.0384937118763382e-01 5.0703170378781293e+00 5.4187547777607730e+00 1.1925500000000000e+00 2 0 0 -34 0 +P 55 211 -2.6364081709202364e-01 7.3413299932848253e-01 2.6874106938374962e+00 2.8018054470987304e+00 1.3957000000000000e-01 1 0 0 0 0 +P 56 -213 -3.4695940866764934e+00 -5.0692299600103696e-01 3.4058985381402325e+00 4.9419726631930434e+00 7.2656376283600244e-01 2 0 0 -35 0 +P 57 111 -2.2664032636498591e-01 -6.4174781661402613e-01 5.5446080822234844e-01 8.8817368004139652e-01 1.3497999999999999e-01 2 0 0 -36 0 +P 58 113 -5.0290045956692175e-01 -2.2402253400552827e-02 4.2604824703776056e-01 1.0487762353368946e+00 8.1547762066989726e-01 2 0 0 -37 0 +P 59 213 -1.2005200767227959e+00 6.2152297680195367e-02 1.6050487128422106e+00 2.2598983813267526e+00 1.0420402874195425e+00 2 0 0 -38 0 +P 60 -213 -2.9276047393825264e-02 -5.2442944213790954e-01 9.3491138108836302e-02 9.6897732639620227e-01 8.0888388501252917e-01 2 0 0 -39 0 +P 61 213 4.8741035118588283e-01 -5.4382265811505015e-01 -2.1420018845659008e-01 9.8970129623833414e-01 6.3270451327498556e-01 2 0 0 -40 0 +P 62 -211 1.8697788601233423e-01 4.2760734454290197e-02 -2.6920172278503485e-01 3.5880156454388884e-01 1.3957000000000000e-01 1 0 0 0 0 +P 63 211 1.2983839367590966e-01 -2.1540737154801419e-02 3.5452183158205530e-01 4.0309741477440403e-01 1.3957000000000000e-01 1 0 0 0 0 +P 64 311 4.6391648249289439e+00 8.7190463208380886e-01 -2.7041866263032449e-01 4.7542475369195865e+00 4.9767000000000000e-01 2 0 0 -41 0 +P 65 -323 2.2512956578581989e+00 -8.1702811801166697e-01 -6.8930905945599441e-01 2.6161470913906841e+00 7.9574590142266011e-01 2 0 0 -42 0 +P 66 323 7.0336564886840316e+00 2.6471663135766954e-01 -7.6549975370238721e-01 7.1298753405532898e+00 8.4067473090788580e-01 2 0 0 -43 0 +V -13 0 0 0 0 0 2 1 0 +P 20 3 2.9480913835759774e+00 -4.2454566557718891e+00 -4.1875620167901211e+01 4.2193396514955836e+01 0 2 0 0 -13 0 +P 21 -3 -2.9480913835759774e+00 4.2454566557718891e+00 -1.4413638757204703e+02 1.4422903094502612e+02 0 2 0 0 -13 0 +P 67 92 0 0 -1.8601200773994825e+02 1.8642242745998198e+02 1.2363431426010967e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 7 0 +P 68 -313 6.7124336041434551e-01 -1.0017568531182413e+00 -1.2051454636583410e+01 1.2140615058432582e+01 8.3838576904817708e-01 2 0 0 -44 0 +P 69 111 1.8807531206737291e+00 -2.0970278275644705e+00 -2.6588570500903835e+01 2.6737708557249952e+01 1.3497999999999999e-01 2 0 0 -45 0 +P 70 113 -1.1068971892740748e-01 -5.1341043207208503e-01 -9.0115038018838742e+00 9.0608170742198180e+00 7.8445063290764161e-01 2 0 0 -46 0 +P 71 223 -2.0672406052829917e-01 1.7379335103852600e-01 -1.3130580146872006e+01 1.3156750961396625e+01 7.8423332032961013e-01 2 0 0 -47 0 +P 72 113 -4.4140526611159947e-01 5.7742869906215955e-01 -2.4813075874939347e+01 2.4836133069027387e+01 7.8518082980101878e-01 2 0 0 -48 0 +P 73 -211 7.7896309901419436e-02 -3.6602920137854170e-02 -1.3397448490641568e+00 1.3497420695647062e+00 1.3957000000000000e-01 1 0 0 0 0 +P 74 323 -1.8710737454221880e+00 2.8975759827919654e+00 -9.9077077929701588e+01 9.9140660670090867e+01 8.4045432777846174e-01 2 0 0 -49 0 +V -15 0 0 0 0 0 2 1 0 +P 22 3 -2.3797373606868244e+00 -2.4917871101526390e+00 -4.3280761946634883e+00 5.5321240455167233e+00 0 2 0 0 -15 0 +P 23 -3 2.3797373606868244e+00 2.4917871101526390e+00 -9.6661085500222009e+02 9.6661699610602295e+02 0 2 0 0 -15 0 +P 75 92 0 0 -9.7093893119688357e+02 9.7214912015153971e+02 4.8492305551150785e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 9 0 +P 76 -323 -2.2398361126526320e+00 -2.4341442137074423e+00 -4.8632735500917565e+00 5.9530803627759008e+00 9.1968055213627808e-01 2 0 0 -50 0 +P 77 111 -6.7528675734192661e-02 -1.2563759364867366e-01 -1.7655103539140375e+00 1.7763984173495295e+00 1.3497999999999999e-01 2 0 0 -51 0 +P 78 113 1.5354061763556762e-01 6.2318321309839064e-01 -1.0151106705392891e+01 1.0185911304933418e+01 5.4395747016322149e-01 2 0 0 -52 0 +P 79 111 -1.6671670434852973e-01 -5.1368748512571094e-01 -7.9559061682556891e+00 7.9753577882357432e+00 1.3497999999999999e-01 2 0 0 -53 0 +P 80 211 -9.6736485997603927e-02 5.1279243800840213e-01 -4.1217511496160233e+00 4.1569972764560212e+00 1.3957000000000000e-01 1 0 0 0 0 +P 81 111 4.4784540883304857e-02 -6.3293049003740509e-01 -2.8876930883969312e+01 2.8884216512452983e+01 1.3497999999999999e-01 2 0 0 -54 0 +P 82 -211 -1.1552696499474494e-01 2.9652397766424610e-01 -1.5381300035866197e+01 1.5385224844870098e+01 1.3957000000000000e-01 1 0 0 0 0 +P 83 213 1.3734383108429742e+00 1.9976391213286977e+00 -5.6939502407682789e+02 5.6940054246694490e+02 6.3829722452204496e-01 2 0 0 -55 0 +P 84 313 1.1145814743658564e+00 2.7626103241949523e-01 -3.2842812827294995e+02 3.2843139117752128e+02 9.0810677110516835e-01 2 0 0 -56 0 +V -17 0 0 0 0 0 4 1 0 +P 27 21 -3.2798144322212153e+00 8.7986496652623636e-01 2.4766780065185029e+02 2.4769107942110830e+02 0 2 0 0 -17 0 +P 28 21 3.2798144322212153e+00 -8.7986496652623636e-01 5.5985508273586087e+00 6.5479093179154937e+00 0 2 0 0 -17 0 +P 29 21 -3.7733390949497778e+00 9.0629369874865717e-01 -3.3241294584168473e+00 5.1097253204240456e+00 0 2 0 0 -17 0 +P 30 21 3.7733390949497778e+00 -9.0629369874865717e-01 -1.2185775397046967e+01 1.2788767658423664e+01 0 2 0 0 -17 0 +P 85 92 2.0943165911964767e+00 5.0924638451013138e-03 6.6074307187661043e+03 6.9293270467247485e+03 2.0874453839536136e+03 2 0 0 -18 0 +V -18 0 0 0 0 0 0 36 0 +P 86 113 2.9356129599336628e-01 -4.3313617556154632e-01 1.5897828498253559e+03 1.5897830714807062e+03 6.5649266342745860e-01 2 0 0 -57 0 +P 87 2112 -1.1641820817776909e-01 7.5916177472945279e-01 1.5838148551780225e+03 1.5838153200907500e+03 9.3957000000000002e-01 1 0 0 0 0 +P 88 113 2.7160958203151061e-02 -4.0515716778460686e-01 1.6165720701806258e+03 1.6165722765277476e+03 7.0870302833514009e-01 2 0 0 -58 0 +P 89 111 -1.4385672069497962e-01 9.5872413866507322e-01 7.8787988037092839e+02 7.8788048837348356e+02 1.3497999999999999e-01 2 0 0 -59 0 +P 90 -2214 -3.6919767591725938e-01 -8.0507840752899340e-01 8.0872498075085002e+02 8.0872637466061587e+02 1.2124863189911272e+00 2 0 0 -60 0 +P 91 211 3.5761092944521689e-01 -5.0085597321715558e-01 3.0003167406315214e+01 3.0009803006335137e+01 1.3957000000000000e-01 1 0 0 0 0 +P 92 2114 -9.8516795397972409e-02 -1.4151599991198704e-01 6.0200362965077282e+01 6.0212675769296112e+01 1.2053587989159509e+00 2 0 0 -61 0 +P 93 223 -6.6801252072040476e-02 3.4914305837557824e-01 1.7318687060519537e+01 1.7340112417543374e+01 7.8499291101563418e-01 2 0 0 -62 0 +P 94 223 1.0880283197397357e-01 -1.1874086178082427e-01 5.9048803867980695e+00 5.9574951798301630e+00 7.7343324650876888e-01 2 0 0 -63 0 +P 95 223 -1.1326999883260454e-01 -3.7014701840945025e-01 2.2018767133093363e+01 2.2035600678331608e+01 7.6925436990825247e-01 2 0 0 -64 0 +P 96 211 1.7074748485127106e-02 3.1351296613888224e-01 1.0137555013396343e+01 1.0143376329482720e+01 1.3957000000000000e-01 1 0 0 0 0 +P 97 221 -2.4049267933068028e-01 -5.2371012095719160e-01 1.4536298958950805e+01 1.4558014904034785e+01 5.4744999999999999e-01 2 0 0 -65 0 +P 98 -211 -2.7609773133260801e-01 -5.7044915366057758e-01 6.8816596070175269e+00 6.9121893004977597e+00 1.3957000000000000e-01 1 0 0 0 0 +P 99 211 -3.2003753499352694e-01 5.9754365375792062e-01 1.9274593244220643e+01 1.9287013946098735e+01 1.3957000000000000e-01 1 0 0 0 0 +P 100 223 -3.4604842053761919e-01 3.1486430485676520e-01 6.2632131591575501e+01 6.2638853372545277e+01 7.8940172470456005e-01 2 0 0 -66 0 +P 101 111 2.2948981413776891e-02 5.5605194404662266e-02 1.1648969035652028e+00 1.1742329367414746e+00 1.3497999999999999e-01 2 0 0 -67 0 +P 102 111 -2.9172378240014335e-01 3.0693544637119191e-01 5.3046712918767929e+00 5.3232573908011185e+00 1.3497999999999999e-01 2 0 0 -68 0 +P 103 -213 3.2106496746452690e-01 2.1715005346640492e-01 1.8335690284947212e+01 1.8357740097185115e+01 8.1169353282945367e-01 2 0 0 -69 0 +P 104 211 -4.1566685736877346e-01 -2.4857973476376449e-01 7.6291201423937034e+00 7.6457520724142878e+00 1.3957000000000000e-01 1 0 0 0 0 +P 105 221 -2.5513573334891759e-01 3.0928061930424477e-01 4.8173473574429913e+01 4.8178252422360707e+01 5.4744999999999999e-01 2 0 0 -70 0 +P 106 223 -7.4215211736769937e-01 -2.4846169610654173e-01 2.0946282884976224e+01 2.0974976715559247e+01 7.6834792969024879e-01 2 0 0 -71 0 +P 107 113 2.4449291316315186e-01 -4.2766229921875031e-02 1.6107139368476123e+01 1.6128248722013453e+01 7.8667812261840997e-01 2 0 0 -72 0 +P 108 223 4.7207387017201917e-02 -3.2716583505686320e-01 2.1203916701555983e+00 2.2765517765484846e+00 7.5984283600187197e-01 2 0 0 -73 0 +P 109 -2212 9.4887946882507612e-01 4.1648238312682367e-01 3.2378432709009703e+00 3.5267278689504029e+00 9.3827000000000005e-01 1 0 0 0 0 +P 110 223 1.6600334088172941e-01 -4.1616381624079307e-01 2.6794215643440502e+00 2.8255103226053060e+00 7.7682638507277058e-01 2 0 0 -74 0 +P 111 2212 1.5707280006131925e+00 1.9053939806349487e-01 4.0977610121829917e+00 4.4917132165791367e+00 9.3827000000000005e-01 1 0 0 0 0 +P 112 221 -1.1579086126404439e+00 9.9177839411389315e-02 -7.1473619559073187e-01 1.4700809266311647e+00 5.4744999999999999e-01 2 0 0 -75 0 +P 113 -213 -1.0802536131659559e+00 -4.3742284486781746e-02 -8.7239930641296504e-01 1.8065991907361469e+00 1.1549280626638436e+00 2 0 0 -76 0 +P 114 -311 -1.2221059279354842e+00 7.8797526225771200e-02 -6.0729148702831515e-01 1.4547268913275133e+00 4.9767000000000000e-01 2 0 0 -77 0 +P 115 323 1.7061356136889678e+00 -2.9014219266128297e-02 -5.6916355500633795e+00 6.0003241000917313e+00 8.3512484945562682e-01 2 0 0 -78 0 +P 116 -213 5.0727937246066324e-01 -4.7763269349581511e-01 -1.4192395564892897e+00 1.7279116972796664e+00 6.9711732389306924e-01 2 0 0 -79 0 +P 117 113 1.8377335751287966e+00 3.7435212119187783e-01 -6.4021253801990987e+00 6.7571572558931825e+00 1.0745048130573336e+00 2 0 0 -80 0 +P 118 113 1.1595987846627662e+00 3.3781193392132147e-01 -1.7297809040002605e+00 2.3075689039392140e+00 9.3485080440263357e-01 2 0 0 -81 0 +P 119 211 2.7239080429789903e-01 -2.2711690982550835e-02 -1.2958981254113522e-01 3.3314542708521427e-01 1.3957000000000000e-01 1 0 0 0 0 +P 120 113 2.1267666995458101e-01 1.7395120076323969e-01 -1.6083970877226670e+00 1.8184518290999967e+00 8.0270509950570113e-01 2 0 0 -82 0 +P 121 221 -4.7135039096220882e-01 -1.2291206979554646e-01 -1.3887351759484287e+02 1.3887545092360841e+02 5.4744999999999999e-01 2 0 0 -83 0 +V -19 0 0 0 0 0 2 1 0 +P 34 21 -1.7804898284392838e+00 -2.5209727458596531e+00 -1.6027171333206104e+02 1.6030142713653206e+02 0 2 0 0 -19 0 +P 35 21 1.7804898284392838e+00 2.5209727458596531e+00 -3.9047632682122253e+00 4.9772104431420550e+00 0 2 0 0 -19 0 +P 122 92 0 0 -1.6417647660027328e+02 1.6527863757967410e+02 1.9055512885072925e+01 2 0 0 -20 0 +V -20 0 0 0 0 0 0 12 0 +P 123 -211 -6.0070155236750178e-01 3.1318832669430013e-01 -2.3722419674713313e+00 2.4710202387124545e+00 1.3957000000000000e-01 1 0 0 0 0 +P 124 -313 -5.5418962740188848e-01 5.6022873335349721e-01 -2.6963373036122778e+01 2.6989313170610149e+01 8.8235908753902637e-01 2 0 0 -84 0 +P 125 -3122 7.8192980547996760e-01 -1.0098791190461021e+00 -2.5752937819053422e+01 2.5808715935323384e+01 1.1156800000000000e+00 2 0 0 -85 0 +P 126 2112 -5.2911926360048755e-01 -7.0628422357488740e-01 -3.1365989018949879e+01 3.1392465075577743e+01 9.3957000000000002e-01 1 0 0 0 0 +P 127 -313 -6.6375047799976095e-01 -5.2431994602761678e-01 -3.0745812034728321e+01 3.0766432948134987e+01 7.4361453347412232e-01 2 0 0 -86 0 +P 128 323 -1.0010822452572499e-01 2.3468051859673056e-01 -2.0435238020895113e+01 2.0455561586261695e+01 8.7518582957059732e-01 2 0 0 -87 0 +P 129 -2212 7.6440809257191722e-01 -3.6826018672418046e-03 -3.6284282265723400e+00 3.8249412128597280e+00 9.3827000000000005e-01 1 0 0 0 0 +P 130 331 -2.1598897730547920e-01 3.8740437897781693e-01 -2.8085273570100782e+00 3.0002184788953326e+00 9.5747146947695072e-01 2 0 0 -88 0 +P 131 2114 3.7114271301432933e-01 1.6103528252915164e-01 -3.1873923166002567e+00 3.4301830299056255e+00 1.2012520814081056e+00 2 0 0 -89 0 +P 132 213 1.4340847993733810e-01 8.3134947437200180e-01 -7.5071475809012984e+00 7.6369252082162546e+00 1.1196668673315859e+00 2 0 0 -90 0 +P 133 111 2.5133273495763248e-01 1.9971281449766987e-01 -1.8807651137350476e+00 1.9127337413708869e+00 1.3497999999999999e-01 2 0 0 -91 0 +P 134 223 3.5163629723965795e-01 -4.4343363850532036e-01 -7.5286241082333785e+00 7.5901269538058527e+00 7.8074626769700195e-01 2 0 0 -92 0 +V -21 0 0 0 0 0 2 1 0 +P 36 21 -7.9835767352754738e-01 2.8310917836013409e+00 -4.9511789036910145e+01 4.9599089803115852e+01 0 2 0 0 -21 0 +P 37 21 7.9835767352754738e-01 -2.8310917836013409e+00 -3.3864087660105230e+02 3.3865365162772304e+02 0 2 0 0 -21 0 +P 135 92 0 0 -3.8815266563796246e+02 3.8825274143083885e+02 8.8147255604432342e+00 2 0 0 -22 0 +V -22 0 0 0 0 0 0 9 0 +P 136 2114 -1.4960565618058827e-01 -3.7983243334584205e-01 -6.0084225372661976e+01 6.0097896107156856e+01 1.2150404701074575e+00 2 0 0 -93 0 +P 137 -211 2.9811563003694558e-01 5.4783511804293061e-01 -4.4437689646128113e+01 4.4442285462337956e+01 1.3957000000000000e-01 1 0 0 0 0 +P 138 -3112 2.3307186571895475e-01 1.4326900914430873e-01 -2.7582276932951583e+01 2.7609612671372336e+01 1.1974400000000001e+00 2 0 0 -94 0 +P 139 -323 -2.7304396428318978e-01 8.3408142249412254e-01 -4.6194743956008772e+01 4.6211892601868342e+01 9.0244327224705545e-01 2 0 0 -95 0 +P 140 113 -1.2438472963311790e-01 -5.3617617384831562e-01 -3.5265788970736466e+01 3.5278430062698547e+01 7.6733272432928068e-01 2 0 0 -96 0 +P 141 321 1.7857873999080959e-01 3.3202431338286048e-01 -2.0117667576333965e+01 2.0127253170339291e+01 4.9359999999999998e-01 1 0 0 0 0 +P 142 -321 -8.8311177964749923e-02 -9.5005248461867819e-01 -1.2922147930037769e+02 1.2922594457819073e+02 4.9359999999999998e-01 1 0 0 0 0 +P 143 111 -1.3174275413026160e-01 -1.9950654911601931e-01 -4.1534180411145236e+00 4.1624824373277072e+00 1.3497999999999999e-01 2 0 0 -97 0 +P 144 211 5.7322046445197547e-02 2.0835777786463264e-01 -2.1095375841649318e+01 2.1096944339547068e+01 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 145 -321 4.7317159073082486e-03 -6.3950612894738934e-01 -1.0249740682428344e+01 1.0281527877466626e+01 4.9359999999999998e-01 1 0 0 0 0 +P 146 211 -2.1513185186894951e-01 5.5253778360839806e-02 -1.6231025987568579e+00 1.6441643849393461e+00 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 147 -211 -4.0628598070699080e-02 -3.7486371473267571e-01 -3.2698973194384027e+00 3.2945229931167308e+00 1.3957000000000000e-01 1 0 0 0 0 +P 148 211 -2.2213787884234046e-01 -1.9035086479588445e-01 -8.6925041161229846e+00 8.6985450670017315e+00 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 2 0 +P 149 2112 -5.0305378851233962e-01 -3.5001326226330570e-01 -4.8922578174780284e+01 4.8935437256146848e+01 9.3957000000000002e-01 1 0 0 0 0 +P 150 111 1.9439971445648394e-01 -1.0750830516930852e-01 -1.1517209099759532e+01 1.1520142114255574e+01 1.3497999999999999e-01 2 0 0 -98 0 +V -26 0 0 0 0 0 0 3 0 +P 151 211 5.5467664486743833e-02 -8.8581067293380639e-02 -8.8067473190807988e+00 8.8084732726121882e+00 1.3957000000000000e-01 1 0 0 0 0 +P 152 -211 3.2763508143091863e-01 2.6975363668793567e-01 -2.7798223999518537e+01 2.7801813773266648e+01 1.3957000000000000e-01 1 0 0 0 0 +P 153 111 3.7624470113100927e-01 -2.2697476149644069e-01 -3.9173658724607755e+01 3.9176355561612958e+01 1.3497999999999999e-01 2 0 0 -99 0 +V -27 0 0 0 0 0 0 2 0 +P 154 -3122 -3.4471300641577951e-01 -9.3043940044976126e-02 -1.5322034894383646e+02 1.5322482682830801e+02 1.1156800000000000e+00 2 0 0 -100 0 +P 155 211 -1.2658824667944718e-01 5.6045897494217310e-02 -9.1400235910024410e+00 9.1421374281840926e+00 1.3957000000000000e-01 1 0 0 0 0 +V -28 0 0 0 0 0 0 1 0 +P 156 310 3.9338164815186982e-01 1.5120222274855744e-01 -1.5841292434872400e+02 1.5841426667878343e+02 4.9767000000000000e-01 2 0 0 -101 0 +V -29 0 0 0 0 0 0 2 0 +P 157 211 -4.1204788433400203e+00 1.3492927461039024e+00 3.8318172798207833e+01 3.8562945727619358e+01 1.3957000000000000e-01 1 0 0 0 0 +P 158 111 -4.8159128705046694e-01 1.3448094949075709e-01 5.8718796761526999e+00 5.8946760576942649e+00 1.3497999999999999e-01 2 0 0 -102 0 +V -30 0 3.6262632367244094e-07 -1.4847823601754692e-07 8.4887296679066190e-06 8.5293987828113712e-06 0 2 0 +P 159 22 9.2329242767276706e-02 1.8864949736969224e-02 1.1925858469138277e+00 1.1963032966843019e+00 0 1 0 0 0 0 +P 160 22 -2.5631944427193760e-02 -4.6174321832131868e-02 3.6873305970836540e-01 3.7249581728345482e-01 0 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 161 -211 -1.1341007829402066e+00 6.0266876159191429e-01 2.0286919317455499e+01 2.0328009479531275e+01 1.3957000000000000e-01 1 0 0 0 0 +P 162 111 -1.1968527011163542e-01 3.3035230632374672e-02 2.8142194490767198e+00 2.8201891068342042e+00 1.3497999999999999e-01 2 0 0 -103 0 +V -32 0 0 0 0 0 0 2 0 +P 163 22 -3.4376924339807431e+00 5.6473113570386968e-01 3.1590143475639518e+01 3.1781658473682139e+01 0 1 0 0 0 0 +P 164 111 -1.5341100192305239e+00 6.7694638573483645e-01 1.2781020070891630e+01 1.2891254539927354e+01 1.3497999999999999e-01 2 0 0 -104 0 +V -33 0 -2.7789154446939715e+01 -2.5850833391285808e+00 3.5434507819968331e+02 3.5855517402969622e+02 0 2 0 +P 165 2112 -5.1909013901515177e-01 -3.4217945727699796e-02 5.8209743622944101e+00 5.9192195221685608e+00 9.3957000000000002e-01 1 0 0 0 0 +P 166 -211 -1.8675959006408943e-01 -3.1443655385611960e-02 3.1794570083460498e+00 3.1881490712897551e+00 1.3957000000000000e-01 1 0 0 0 0 +V -34 0 0 0 0 0 0 2 0 +P 167 -3122 -1.3578313501585406e+00 -5.6110171407454090e-01 4.7532121296764123e+00 5.0986575214573620e+00 1.1156800000000000e+00 2 0 0 -105 0 +P 168 22 -8.9088999710365789e-03 -4.2747657113092849e-02 3.1710490820171716e-01 3.2009725630341157e-01 0 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 169 -211 -2.3446543659562806e+00 -6.4929378742615518e-01 2.2395655634208214e+00 3.3097009254536083e+00 1.3957000000000000e-01 1 0 0 0 0 +P 170 111 -1.1249397207202128e+00 1.4237079142511824e-01 1.1663329747194109e+00 1.6322717377394349e+00 1.3497999999999999e-01 2 0 0 -106 0 +V -36 0 -6.7418093062859160e-05 -1.9089901041571765e-04 1.6493397696685196e-04 2.6420265438809298e-04 0 2 0 +P 171 22 -2.1187394174684773e-01 -5.9635452415112900e-01 5.5296385850315732e-01 8.4041556058747868e-01 0 1 0 0 0 0 +P 172 22 -1.4766384618138196e-02 -4.5393292462897188e-02 1.4969497191911496e-03 4.7758119453917933e-02 0 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 173 -211 -4.0255782642450305e-02 -2.7831301333626307e-01 3.9015845799110332e-01 5.0078145799386653e-01 1.3957000000000000e-01 1 0 0 0 0 +P 174 211 -4.6264467692447137e-01 2.5591075993571022e-01 3.5889789046657225e-02 5.4799477734302793e-01 1.3957000000000000e-01 1 0 0 0 0 +V -38 0 0 0 0 0 0 2 0 +P 175 211 7.8035236055542037e-02 -5.6695538610673002e-02 6.0047941576510799e-01 6.2398653496866729e-01 1.3957000000000000e-01 1 0 0 0 0 +P 176 111 -1.2785553127783380e+00 1.1884783629086837e-01 1.0045692970771025e+00 1.6359118463580851e+00 1.3497999999999999e-01 2 0 0 -107 0 +V -39 0 0 0 0 0 0 2 0 +P 177 -211 1.2627572705779661e-01 -6.1331993051647760e-01 2.5729317570399224e-01 6.9122099185177921e-01 1.3957000000000000e-01 1 0 0 0 0 +P 178 111 -1.5555177445162185e-01 8.8890488378568028e-02 -1.6380203759515596e-01 2.7775633454442306e-01 1.3497999999999999e-01 2 0 0 -108 0 +V -40 0 0 0 0 0 0 2 0 +P 179 211 3.5639704325469085e-01 -6.3423964972341818e-01 -2.4163817735466017e-01 7.7919675267370847e-01 1.3957000000000000e-01 1 0 0 0 0 +P 180 111 1.3101330793119204e-01 9.0416991608367872e-02 2.7437988898070045e-02 2.1050454356462622e-01 1.3497999999999999e-01 2 0 0 -109 0 +V -41 0 0 0 0 0 0 1 0 +P 181 310 4.6391648249289439e+00 8.7190463208380886e-01 -2.7041866263032449e-01 4.7542475369195882e+00 4.9767000000000000e-01 2 0 0 -110 0 +V -42 0 0 0 0 0 0 2 0 +P 182 -321 1.9525512673653487e+00 -5.3227249651774589e-01 -4.9906661042476869e-01 2.1420735057135949e+00 4.9359999999999998e-01 1 0 0 0 0 +P 183 111 2.9874439049285023e-01 -2.8475562149392120e-01 -1.9024244903122581e-01 4.7407358567708918e-01 1.3497999999999999e-01 2 0 0 -111 0 +V -43 0 0 0 0 0 0 2 0 +P 184 321 4.1462756309890736e+00 3.2192760120503588e-01 -6.3518186464597759e-01 4.2358394622231152e+00 4.9359999999999998e-01 1 0 0 0 0 +P 185 111 2.8873808576949571e+00 -5.7210969847366372e-02 -1.3031788905640951e-01 2.8940358783301670e+00 1.3497999999999999e-01 2 0 0 -112 0 +V -44 0 0 0 0 0 0 2 0 +P 186 -321 7.4632910485972637e-01 -9.0683090050122783e-01 -1.0937761687495565e+01 1.1011703823991564e+01 4.9359999999999998e-01 1 0 0 0 0 +P 187 211 -7.5085744445380881e-02 -9.4925952617013309e-02 -1.1136929490878451e+00 1.1289112344410193e+00 1.3957000000000000e-01 1 0 0 0 0 +V -45 0 5.4870443770135152e-04 -6.1180197566582301e-04 -7.7571407249639283e-03 7.8006513337980929e-03 0 2 0 +P 188 22 1.6307255770237250e+00 -1.7467424291525475e+00 -2.2610684940145120e+01 2.2736610312090640e+01 0 1 0 0 0 0 +P 189 22 2.5002754365000407e-01 -3.5028539841192269e-01 -3.9778855607587129e+00 4.0010982451593105e+00 0 1 0 0 0 0 +V -46 0 0 0 0 0 0 2 0 +P 190 -211 -3.4771060598395914e-01 -2.2516011178622557e-02 -4.1162097602971910e+00 4.1332883049624050e+00 1.3957000000000000e-01 1 0 0 0 0 +P 191 211 2.3702088705655167e-01 -4.9089442089346247e-01 -4.8952940415866841e+00 4.9275287692574148e+00 1.3957000000000000e-01 1 0 0 0 0 +V -47 0 0 0 0 0 0 3 0 +P 192 211 7.5704020926990898e-02 1.9439819800615879e-01 -3.0400693063104991e+00 3.0504135670829546e+00 1.3957000000000000e-01 1 0 0 0 0 +P 193 -211 1.2388078103698906e-02 -1.3418403734202855e-01 -2.2669176314964452e+00 2.2752042003402604e+00 1.3957000000000000e-01 1 0 0 0 0 +P 194 111 -2.9481615955898893e-01 1.1357919037439569e-01 -7.8235932090650602e+00 7.8311331939734075e+00 1.3497999999999999e-01 2 0 0 -113 0 +V -48 0 0 0 0 0 0 2 0 +P 195 -211 -2.5840149143461150e-01 4.9160936948202588e-01 -7.6888525573623507e+00 7.7101481527072950e+00 1.3957000000000000e-01 1 0 0 0 0 +P 196 211 -1.8300377467698797e-01 8.5819329580133663e-02 -1.7124223317576995e+01 1.7125984916320089e+01 1.3957000000000000e-01 1 0 0 0 0 +V -49 0 0 0 0 0 0 2 0 +P 197 321 -1.0059304477724786e+00 1.6154958423579500e+00 -4.8713814360191492e+01 4.8753472423629795e+01 4.9359999999999998e-01 1 0 0 0 0 +P 198 111 -8.6514329764970965e-01 1.2820801404340156e+00 -5.0363263569510103e+01 5.0387188246461093e+01 1.3497999999999999e-01 2 0 0 -114 0 +V -50 0 0 0 0 0 0 2 0 +P 199 -311 -2.1609164566645891e+00 -2.4014342910428788e+00 -4.6611982375210808e+00 5.6930563869726507e+00 4.9767000000000000e-01 2 0 0 -115 0 +P 200 -211 -7.8919655988042958e-02 -3.2709922664563601e-02 -2.0207531257067607e-01 2.6002397580325015e-01 1.3957000000000000e-01 1 0 0 0 0 +V -51 0 -1.5071098302075203e-05 -2.8039888295285812e-05 -3.9402786753742279e-04 3.9645787334712418e-04 0 2 0 +P 201 22 -1.6628700951457295e-03 2.7466545158185005e-02 -1.7085866096558761e-01 1.7306027350849057e-01 0 1 0 0 0 0 +P 202 22 -6.5865805639046926e-02 -1.5310413880685866e-01 -1.5946516929484500e+00 1.6033381438410388e+00 0 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 203 -211 2.0587461757273046e-01 1.6855553016750627e-01 -2.1998932359118348e+00 2.2203164997858775e+00 1.3957000000000000e-01 1 0 0 0 0 +P 204 211 -5.2333999937162846e-02 4.5462768293088435e-01 -7.9512134694810550e+00 7.9655948051475409e+00 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 -5.1634935389906184e-06 -1.5909755539324514e-05 -2.4640764257625601e-04 2.4701009158988296e-04 0 2 0 +P 205 22 -1.9369005581290913e-02 -2.6993645287572443e-01 -3.6129505223448715e+00 3.6230722217312223e+00 0 1 0 0 0 0 +P 206 22 -1.4734769876723883e-01 -2.4375103224998654e-01 -4.3429556459108172e+00 4.3522855665045208e+00 0 1 0 0 0 0 +V -54 0 1.6507694663061706e-06 -2.3329977412751538e-05 -1.0644109517188483e-03 1.0646795018213276e-03 0 2 0 +P 207 22 3.2699543974523036e-04 -1.6531900817126896e-01 -5.2016361454811575e+00 5.2042625867037895e+00 0 1 0 0 0 0 +P 208 22 4.4457545443559635e-02 -4.6761148186613616e-01 -2.3675294738488155e+01 2.3679953925749196e+01 0 1 0 0 0 0 +V -55 0 0 0 0 0 0 2 0 +P 209 211 8.3079894702839219e-01 1.5302975509736045e+00 -3.5793639413666205e+02 3.5794065676425424e+02 1.3957000000000000e-01 1 0 0 0 0 +P 210 111 5.4263936381458211e-01 4.6734157035509338e-01 -2.1145862994016593e+02 2.1145988570269063e+02 1.3497999999999999e-01 2 0 0 -116 0 +V -56 0 0 0 0 0 0 2 0 +P 211 321 1.0977767389319530e+00 3.1868442334370795e-01 -2.4770380304560078e+02 2.4770693239742806e+02 4.9359999999999998e-01 1 0 0 0 0 +P 212 -211 1.6804735433903449e-02 -4.2423390924212670e-02 -8.0724325227349169e+01 8.0724458780093229e+01 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 2 0 +P 213 211 4.8735411154823403e-02 -4.3391527553418574e-01 5.7573302557377576e+02 5.7573320806926313e+02 1.3957000000000000e-01 1 0 0 0 0 +P 214 -211 2.4482588483854287e-01 7.7909997263942679e-04 1.0140498242515802e+03 1.0140498634114431e+03 1.3957000000000000e-01 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 215 -211 2.2644715345669786e-01 -1.8312403295315868e-01 3.1678254960143175e+02 3.1678271421353344e+02 1.3957000000000000e-01 1 0 0 0 0 +P 216 211 -1.9928619525354679e-01 -2.2203313483144810e-01 1.2997895205791938e+03 1.2997895623142140e+03 1.3957000000000000e-01 1 0 0 0 0 +V -59 0 -1.5147243004817694e-05 1.0094785584425737e-04 8.2958988283135748e-02 8.2959052302129133e-02 0 2 0 +P 217 22 -9.8281010852660555e-02 2.5143009431644470e-01 2.1253074378795648e+02 2.1253091523661075e+02 0 1 0 0 0 0 +P 218 22 -4.5575709842319061e-02 7.0729404434862853e-01 5.7534913658297194e+02 5.7534957313687289e+02 0 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 219 -2212 -3.3519434428000028e-01 -4.0216052205848135e-01 5.6696550298238196e+02 5.6696652106715453e+02 9.3827000000000005e-01 1 0 0 0 0 +P 220 111 -3.4003331637259090e-02 -4.0291788547051194e-01 2.4175947776846803e+02 2.4175985359346117e+02 1.3497999999999999e-01 2 0 0 -117 0 +V -61 0 0 0 0 0 0 2 0 +P 221 2112 -1.5928388612196823e-01 -2.9344070178772974e-01 5.2068168002132694e+01 5.2077714904602516e+01 9.3957000000000002e-01 1 0 0 0 0 +P 222 111 6.0767090723995811e-02 1.5192470187574267e-01 8.1321949629446006e+00 8.1349608646936105e+00 1.3497999999999999e-01 2 0 0 -118 0 +V -62 0 0 0 0 0 0 3 0 +P 223 -211 -2.0855792861887895e-01 3.0026778285653749e-01 1.2281199215305971e+01 1.2287432242008229e+01 1.3957000000000000e-01 1 0 0 0 0 +P 224 211 1.8322216671360106e-01 8.4641186236416213e-02 3.0390432107555543e+00 3.0489338980243836e+00 1.3957000000000000e-01 1 0 0 0 0 +P 225 111 -4.1465490166762591e-02 -3.5765910717375442e-02 1.9984446344580136e+00 2.0037462775107624e+00 1.3497999999999999e-01 2 0 0 -119 0 +V -63 0 0 0 0 0 0 3 0 +P 226 211 2.5229722362814772e-01 7.8453898573060024e-02 2.0068040102688629e+00 2.0289285408271467e+00 1.3957000000000000e-01 1 0 0 0 0 +P 227 -211 -4.0632702319755090e-02 -1.2069487246477217e-01 6.9918612236714750e-01 7.2426465283617236e-01 1.3957000000000000e-01 1 0 0 0 0 +P 228 111 -1.0286168933441908e-01 -7.6499887889112148e-02 3.1988902541620599e+00 3.2043019861668447e+00 1.3497999999999999e-01 2 0 0 -120 0 +V -64 0 0 0 0 0 0 3 0 +P 229 -211 -1.6757424870507753e-01 -2.0645190227526286e-01 8.7703893221804687e+00 8.7755291671955220e+00 1.3957000000000000e-01 1 0 0 0 0 +P 230 211 9.8968590493889952e-02 -2.6775289950262515e-01 5.1595877232286771e+00 5.1693627901017445e+00 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -4.4664340621416956e-02 1.0405778336843771e-01 8.0887900876842203e+00 8.0907087210343445e+00 1.3497999999999999e-01 2 0 0 -121 0 +V -65 0 0 0 0 0 0 3 0 +P 232 22 4.3201839353883581e-02 2.1195937699919901e-02 3.1454940200310616e-01 3.1820903978210507e-01 0 1 0 0 0 0 +P 233 211 -1.0483563972662920e-01 -3.3980469291825055e-01 5.8420066258245038e+00 5.8544836614140072e+00 1.3957000000000000e-01 1 0 0 0 0 +P 234 -211 -1.7885887895793467e-01 -2.0510136573886101e-01 8.3797429311231948e+00 8.3853222028386707e+00 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 3 0 +P 235 211 -6.2449587517871177e-02 -1.5860535579672613e-01 1.4572062057648969e+01 1.4573727320309697e+01 1.3957000000000000e-01 1 0 0 0 0 +P 236 -211 -6.9803021048007466e-02 1.9955448295151124e-01 3.0748651976026064e+01 3.0749695487615565e+01 1.3957000000000000e-01 1 0 0 0 0 +P 237 111 -2.1379581197174061e-01 2.7391517770198009e-01 1.7311417557900477e+01 1.7315430564620016e+01 1.3497999999999999e-01 2 0 0 -122 0 +V -67 0 9.9012612323046163e-06 2.3990675043343193e-05 5.0259087072063646e-04 5.0661887099154334e-04 0 2 0 +P 238 22 7.2226354217322569e-02 2.8177786734834089e-02 9.0357006333380763e-01 9.0689001166727001e-01 0 1 0 0 0 0 +P 239 22 -4.9277372803545674e-02 2.7427407669828176e-02 2.6132684023139513e-01 2.6734292507420448e-01 0 1 0 0 0 0 +V -68 0 -1.8040088071645551e-05 1.8980771602814036e-05 3.2803886097063062e-04 3.2918821827960463e-04 0 2 0 +P 240 22 -2.6219607110444487e-01 2.0044463067522406e-01 3.6450568212061958e+00 3.6599677675480899e+00 0 1 0 0 0 0 +P 241 22 -2.9527711295698492e-02 1.0649081569596784e-01 1.6596144706705973e+00 1.6632896232530285e+00 0 1 0 0 0 0 +V -69 0 0 0 0 0 0 2 0 +P 242 -211 -1.5779048821080130e-01 2.4427658010237480e-01 1.1215533923889044e+01 1.1220171561458509e+01 1.3957000000000000e-01 1 0 0 0 0 +P 243 111 4.7885545567532817e-01 -2.7126526635969879e-02 7.1201563610581680e+00 7.1375685357266061e+00 1.3497999999999999e-01 2 0 0 -123 0 +V -70 0 0 0 0 0 0 3 0 +P 244 -211 1.4447474134589635e-02 1.0331254294609675e-01 1.3021878060525166e+01 1.3023043815449808e+01 1.3957000000000000e-01 1 0 0 0 0 +P 245 211 -2.2533489453973266e-01 6.7750325072043191e-02 1.3920844135234320e+01 1.3923532136050548e+01 1.3957000000000000e-01 1 0 0 0 0 +P 246 111 -4.4248312943774556e-02 1.3821775128610481e-01 2.1230751378670416e+01 2.1231676470860343e+01 1.3497999999999999e-01 2 0 0 -124 0 +V -71 0 0 0 0 0 0 3 0 +P 247 -211 4.3968497828360605e-02 -8.9581304918981322e-02 2.7716342830236234e+00 2.7769397585695201e+00 1.3957000000000000e-01 1 0 0 0 0 +P 248 211 -3.0260312919721499e-01 -2.2696578300232692e-01 6.5963063148826535e+00 6.6086170190982152e+00 1.3957000000000000e-01 1 0 0 0 0 +P 249 111 -4.8351748599884498e-01 6.8085391814766527e-02 1.1578342287069946e+01 1.1589419937891513e+01 1.3497999999999999e-01 2 0 0 -125 0 +V -72 0 0 0 0 0 0 2 0 +P 250 211 2.7918293477948802e-01 -1.1595431069407330e-01 1.5372053925904542e+01 1.5375659667118606e+01 1.3957000000000000e-01 1 0 0 0 0 +P 251 -211 -3.4690021616336185e-02 7.3188080772198266e-02 7.3508544257158037e-01 7.5258905489484496e-01 1.3957000000000000e-01 1 0 0 0 0 +V -73 0 0 0 0 0 0 3 0 +P 252 211 6.9604979207269713e-02 6.4059599095633635e-02 3.4643965893791207e-01 3.8529041975080902e-01 1.3957000000000000e-01 1 0 0 0 0 +P 253 -211 -1.7967466933591134e-01 -5.9481031195502451e-02 9.5730795988163619e-01 9.8576837787879446e-01 1.3957000000000000e-01 1 0 0 0 0 +P 254 111 1.5727707714584355e-01 -3.3174440295699437e-01 8.1664405133604978e-01 9.0549297891888092e-01 1.3497999999999999e-01 2 0 0 -126 0 +V -74 0 0 0 0 0 0 3 0 +P 255 -211 -2.6768527911412210e-02 -3.1628709299904190e-01 1.4372749842883532e+00 1.4785104817502697e+00 1.3957000000000000e-01 1 0 0 0 0 +P 256 211 5.8658587383824110e-02 4.7066254481115677e-02 1.1853313384479452e-01 1.9795441622710730e-01 1.3957000000000000e-01 1 0 0 0 0 +P 257 111 1.3411328140931753e-01 -1.4694297772286691e-01 1.1236134462109026e+00 1.1490454246279296e+00 1.3497999999999999e-01 2 0 0 -127 0 +V -75 0 0 0 0 0 0 3 0 +P 258 111 -2.9382405415384755e-01 1.5899008760270572e-01 -2.7730141991355345e-01 4.5467142052408799e-01 1.3497999999999999e-01 2 0 0 -128 0 +P 259 111 -2.9461008023809460e-01 7.9261822040132043e-03 -1.9522454331244052e-01 3.7840473894202054e-01 1.3497999999999999e-01 2 0 0 -129 0 +P 260 111 -5.6947447824850161e-01 -6.7738430395329619e-02 -2.4221023236473779e-01 6.3700476716505527e-01 1.3497999999999999e-01 2 0 0 -130 0 +V -76 0 0 0 0 0 0 2 0 +P 261 -211 -1.1998250888346944e+00 2.2147907356684138e-01 -5.3025571611185474e-01 1.3376412572863117e+00 1.3957000000000000e-01 1 0 0 0 0 +P 262 111 1.1957147566873839e-01 -2.6522135805362312e-01 -3.4214359030111036e-01 4.6895793344983716e-01 1.3497999999999999e-01 2 0 0 -131 0 +V -77 0 0 0 0 0 0 1 0 +P 263 310 -1.2221059279354842e+00 7.8797526225771200e-02 -6.0729148702831515e-01 1.4547268913275146e+00 4.9767000000000000e-01 2 0 0 -132 0 +V -78 0 0 0 0 0 0 2 0 +P 264 311 6.1455156080652751e-01 -1.6499131271689300e-02 -2.1080593895117539e+00 2.2515629373462178e+00 4.9767000000000000e-01 2 0 0 -133 0 +P 265 211 1.0915840528824405e+00 -1.2515087994438999e-02 -3.5835761605516261e+00 3.7487611627454607e+00 1.3957000000000000e-01 1 0 0 0 0 +V -79 0 0 0 0 0 0 2 0 +P 266 -211 1.7582177056811502e-01 -1.1719437561076100e-01 -3.7786363095881875e-02 2.5603790894419687e-01 1.3957000000000000e-01 1 0 0 0 0 +P 267 111 3.3145760189254819e-01 -3.6043831788505409e-01 -1.3814531933934078e+00 1.4718737883354707e+00 1.3497999999999999e-01 2 0 0 -134 0 +V -80 0 0 0 0 0 0 2 0 +P 268 -211 1.4142297312131940e+00 3.0559262664089600e-02 -3.1393293993058156e+00 3.4461352938368117e+00 1.3957000000000000e-01 1 0 0 0 0 +P 269 211 4.2350384391560253e-01 3.4379285852778824e-01 -3.2627959808932827e+00 3.3110219620563313e+00 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 270 211 2.2262437178167788e-01 2.2164126913244933e-01 -1.1281504278306380e+00 1.1793598415277167e+00 1.3957000000000000e-01 1 0 0 0 0 +P 271 -211 9.3697441288108851e-01 1.1617066478887220e-01 -6.0163047616962251e-01 1.1282090624115000e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 0 0 0 0 0 2 0 +P 272 -211 2.3127343736279543e-01 4.0719281310637140e-01 -1.3765569924613603e+00 1.4607129520440862e+00 1.3957000000000000e-01 1 0 0 0 0 +P 273 211 -1.8596767408214455e-02 -2.3324161234313170e-01 -2.3184009526130650e-01 3.5773887705591995e-01 1.3957000000000000e-01 1 0 0 0 0 +V -83 0 0 0 0 0 0 3 0 +P 274 111 -1.4346763318903757e-01 1.0781369477650569e-02 -5.8080541309671737e+01 5.8080876350349484e+01 1.3497999999999999e-01 2 0 0 -135 0 +P 275 111 -2.6461917860165884e-01 -1.6666569637677223e-01 -6.3921636890275806e+01 6.3922544404120060e+01 1.3497999999999999e-01 2 0 0 -136 0 +P 276 111 -6.3263579171512346e-02 3.2972257103575209e-02 -1.6871339394895315e+01 1.6872030169138945e+01 1.3497999999999999e-01 2 0 0 -137 0 +V -84 0 0 0 0 0 0 2 0 +P 277 -321 -1.9241511971658415e-01 6.8333986075057515e-02 -1.5062462347721974e+01 1.5071931065676043e+01 4.9359999999999998e-01 1 0 0 0 0 +P 278 211 -3.6177450768530445e-01 4.9189474727843974e-01 -1.1900910688400808e+01 1.1917382104934106e+01 1.3957000000000000e-01 1 0 0 0 0 +V -85 0 3.5965274506955190e+01 -4.6449923613080180e+01 -1.1845199806065368e+03 1.1870855245326934e+03 0 2 0 +P 279 -2212 7.0831682930111939e-01 -9.1340702772143101e-01 -2.1316092442071589e+01 2.1368017519667180e+01 9.3827000000000005e-01 1 0 0 0 0 +P 280 211 7.3612976178848225e-02 -9.6472091324671175e-02 -4.4368453769818323e+00 4.4406984156562039e+00 1.3957000000000000e-01 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 281 -321 -4.4123751089775892e-01 -4.2768077428762763e-01 -1.7597613328393198e+01 1.7615255808570037e+01 4.9359999999999998e-01 1 0 0 0 0 +P 282 211 -2.2251296710200200e-01 -9.6639171739989163e-02 -1.3148198706335124e+01 1.3151177139564950e+01 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 283 311 1.1053483946443671e-01 2.3990656324443796e-01 -9.0517810821029947e+00 9.0692992726583253e+00 4.9767000000000000e-01 2 0 0 -138 0 +P 284 211 -2.1064306399016169e-01 -5.2260446477074120e-03 -1.1383456938792117e+01 1.1386262313603362e+01 1.3957000000000000e-01 1 0 0 0 0 +V -88 0 0 0 0 0 0 2 0 +P 285 22 -3.5874584636615608e-02 1.0662985418752213e-01 -2.4754642143430844e-01 2.7191201222423805e-01 0 1 0 0 0 0 +P 286 113 -1.8011439266886359e-01 2.8077452479029485e-01 -2.5609809355757700e+00 2.7283064666710946e+00 8.7963475117748524e-01 2 0 0 -139 0 +V -89 0 0 0 0 0 0 2 0 +P 287 2212 3.2237536636423531e-01 1.2209256343323748e-02 -2.9549510500184519e+00 3.1170757519964258e+00 9.3827000000000005e-01 1 0 0 0 0 +P 288 -211 4.8767346650093954e-02 1.4882602618582788e-01 -2.3244126658180475e-01 3.1310727790919962e-01 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 289 211 9.9155276979379939e-02 6.7357724758643656e-02 -5.1838620433734066e+00 5.1871258228102608e+00 1.3957000000000000e-01 1 0 0 0 0 +P 290 111 4.4253202957958163e-02 7.6399174961335814e-01 -2.3232855375278914e+00 2.4497993854059930e+00 1.3497999999999999e-01 2 0 0 -140 0 +V -91 0 9.6383408543088094e-06 7.6587722623014910e-06 -7.2125325163580596e-05 7.3351287749992734e-05 0 2 0 +P 291 22 -1.2269390628257775e-02 -2.5957213503575527e-04 -1.5849465772618179e-01 1.5896905941667261e-01 0 1 0 0 0 0 +P 292 22 2.6360212558589025e-01 1.9997238663270561e-01 -1.7222704560088657e+00 1.7537646819542143e+00 0 1 0 0 0 0 +V -92 0 0 0 0 0 0 3 0 +P 293 211 2.4603887976188546e-01 -2.1260457138838254e-01 -2.7393540734610169e+00 2.7621144724317976e+00 1.3957000000000000e-01 1 0 0 0 0 +P 294 -211 1.6587673815884174e-01 -1.3851309640486942e-01 -4.3161880209091308e+00 4.3238477987641240e+00 1.3957000000000000e-01 1 0 0 0 0 +P 295 111 -6.0279320681069205e-02 -9.2315970712068443e-02 -4.7308201386323090e-01 5.0416468260993141e-01 1.3497999999999999e-01 2 0 0 -141 0 +V -93 0 0 0 0 0 0 2 0 +P 296 2112 7.4171566481101445e-02 -3.8781235549565807e-01 -4.8819322937294800e+01 4.8829959898459137e+01 9.3957000000000002e-01 1 0 0 0 0 +P 297 111 -2.2377722266168973e-01 7.9799221498159933e-03 -1.1264902435367182e+01 1.1267936208697719e+01 1.3497999999999999e-01 2 0 0 -142 0 +V -94 0 5.0154104234163355e-01 3.0829670479462740e-01 -5.9353555524325564e+01 5.9412378560295316e+01 0 2 0 +P 298 -2112 3.2040808606255766e-01 2.1628229926567114e-01 -2.5231223973342530e+01 2.5251671119996491e+01 9.3957000000000002e-01 1 0 0 0 0 +P 299 211 -8.7336220343602930e-02 -7.3013290121362429e-02 -2.3510529596090493e+00 2.3579415513758439e+00 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 300 -311 -2.8878157481450778e-01 4.5737313947049302e-01 -1.9055191875712950e+01 1.9069362806234462e+01 4.9767000000000000e-01 2 0 0 -143 0 +P 301 -211 1.5737610531318013e-02 3.7670828302362941e-01 -2.7139552080295822e+01 2.7142529795633884e+01 1.3957000000000000e-01 1 0 0 0 0 +V -96 0 0 0 0 0 0 2 0 +P 302 -211 2.0611775579728736e-01 -5.2708370551699557e-01 -2.3061051418638730e+01 2.3068417242625809e+01 1.3957000000000000e-01 1 0 0 0 0 +P 303 211 -3.3050248543040528e-01 -9.0924683313200385e-03 -1.2204737552097738e+01 1.2210012820072743e+01 1.3957000000000000e-01 1 0 0 0 0 +V -97 0 -7.4282491859497750e-06 -1.1249076815240985e-05 -2.3418839530493129e-04 2.3469948674397263e-04 0 2 0 +P 304 22 -1.3782377984232405e-01 -1.7354840433172641e-01 -4.0358135637561290e+00 4.0418938091362637e+00 0 1 0 0 0 0 +P 305 22 6.0810257120624319e-03 -2.5958144784292918e-02 -1.1760447735839455e-01 1.2058862819144350e-01 0 1 0 0 0 0 +V -98 0 1.1329499597191234e-05 -6.2655200061162853e-06 -6.7121608805501367e-04 6.7138702239328879e-04 0 2 0 +P 306 22 8.3512273166797750e-04 -7.8008196154925541e-03 -3.4118096618637224e+00 3.4118186820233136e+00 0 1 0 0 0 0 +P 307 22 1.9356459172481594e-01 -9.9707485553815978e-02 -8.1053994378958087e+00 8.1083234322322628e+00 0 1 0 0 0 0 +V -99 0 2.0041229932726539e-04 -1.2090146041663490e-04 -2.0866428136954773e-02 2.0867864647033187e-02 0 2 0 +P 308 22 3.4255432656942236e-01 -2.0736141795750798e-01 -3.0756055443747755e+01 3.0758662010614099e+01 0 1 0 0 0 0 +P 309 22 3.3690374561586876e-02 -1.9613343538932699e-02 -8.4176032808599981e+00 8.4176935509988660e+00 0 1 0 0 0 0 +V -100 0 -1.4655426294584716e+01 -3.9557503781629491e+00 -6.5141421674948333e+03 6.5143325441403531e+03 0 2 0 +P 310 -2212 -2.9021401161431271e-01 -1.7933607075051763e-01 -1.2972263526808578e+02 1.2972647700869905e+02 9.3827000000000005e-01 1 0 0 0 0 +P 311 211 -5.4498994801466791e-02 8.6292130705541509e-02 -2.3497713675750649e+01 2.3498349819608933e+01 1.3957000000000000e-01 1 0 0 0 0 +V -101 0 6.2882302674241096e+01 2.4169769943670968e+01 -2.5322405107628230e+04 2.5322619679928397e+04 0 2 0 +P 312 -211 -3.0454181678031815e-02 -9.4438048079860462e-03 -1.9166526513342280e+01 1.9167061199207968e+01 1.3957000000000000e-01 1 0 0 0 0 +P 313 211 4.2383582982990159e-01 1.6064602755654347e-01 -1.3924639783538171e+02 1.3924720547957548e+02 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 -6.8085613147043767e-05 1.9012424329253531e-05 8.3014485275483495e-04 8.3336772172386763e-04 0 2 0 +P 314 22 -6.4530051532456653e-02 4.1147663561012245e-02 5.0009863277170408e-01 5.0592084387524461e-01 0 1 0 0 0 0 +P 315 22 -4.1706123551801033e-01 9.3333285929744852e-02 5.3717810433809960e+00 5.3887552138190218e+00 0 1 0 0 0 0 +V -103 0 -2.8663356649283047e-05 7.9115884245727316e-06 6.7397580072297365e-04 6.7540547063320853e-04 0 2 0 +P 316 22 -1.4492624902482243e-01 2.8380174303346873e-02 2.6356982873021977e+00 2.6398322889224670e+00 0 1 0 0 0 0 +P 317 22 2.5240978913187006e-02 4.6550563290277975e-03 1.7852116177452235e-01 1.8035681791173727e-01 0 1 0 0 0 0 +V -104 0 -5.0220982389912621e-04 2.2160674326314827e-04 4.1840244562597866e-03 4.2201110684245468e-03 0 2 0 +P 318 22 -5.4063197640540028e-01 2.1622423351256712e-01 3.9809929604217249e+00 4.0233494508925567e+00 0 1 0 0 0 0 +P 319 22 -9.9347804282512375e-01 4.6072215222226937e-01 8.8000271104699053e+00 8.8679050890347977e+00 0 1 0 0 0 0 +V -105 0 -8.7423611880936946e+01 -3.6126385262244547e+01 3.0603430416013998e+02 3.2827571422449716e+02 0 2 0 +P 320 -2212 -1.2471878380698003e+00 -5.8148956872730395e-01 4.2864941247651371e+00 4.5986943904236481e+00 9.3827000000000005e-01 1 0 0 0 0 +P 321 211 -1.1064351208874038e-01 2.0387854652763094e-02 4.6671800491127502e-01 4.9996313103371370e-01 1.3957000000000000e-01 1 0 0 0 0 +V -106 0 -4.0330373995144954e-04 5.1041555013131883e-05 4.1814369434113808e-04 5.8518806325543013e-04 0 2 0 +P 322 22 -6.6701805187467311e-01 1.7389112972455496e-02 6.7968573557433076e-01 9.5246425755503927e-01 0 1 0 0 0 0 +P 323 22 -4.5792166884553959e-01 1.2498167845266275e-01 4.8664723914508007e-01 6.7980748018439574e-01 0 1 0 0 0 0 +V -107 0 -6.3235648545427708e-04 5.8780562177968304e-05 4.9684663912939536e-04 8.0910028321579759e-04 0 2 0 +P 324 22 -5.8725927969364689e-01 4.2508583447097834e-02 3.7714975811299251e-01 6.9922984868901916e-01 0 1 0 0 0 0 +P 325 22 -6.9129603308469112e-01 7.6339252843770522e-02 6.2741953896410996e-01 9.3668199766906590e-01 0 1 0 0 0 0 +V -108 0 -4.1370582402169445e-05 2.3641332843672301e-05 -4.3564824109938025e-05 7.3872132712754089e-05 0 2 0 +P 326 22 9.3824316308741933e-03 3.0669441389115419e-02 -7.5056453382808377e-02 8.1621785405822295e-02 0 1 0 0 0 0 +P 327 22 -1.6493420608249607e-01 5.8221046989452609e-02 -8.8745584212347600e-02 1.9613454913860082e-01 0 1 0 0 0 0 +V -109 0 4.6124625705683339e-05 3.1832261632231989e-05 9.6598352337218242e-06 7.4110358974856751e-05 0 2 0 +P 328 22 1.1229413325862778e-01 1.1712115941134178e-01 5.1212087590440727e-02 1.7014704305845085e-01 0 1 0 0 0 0 +P 329 22 1.8719174672564270e-02 -2.6704167802973904e-02 -2.3774098692370686e-02 4.0357500506175224e-02 0 1 0 0 0 0 +V -110 0 1.6839083418133907e+02 3.1648099143667501e+01 -9.8155650633128566e+00 1.7256806749881488e+02 0 2 0 +P 330 -211 3.3855716052889000e+00 7.5517900606175214e-01 -3.2190843642233902e-01 3.4864731824688899e+00 1.3957000000000000e-01 1 0 0 0 0 +P 331 211 1.2535932196400428e+00 1.1672562602205658e-01 5.1489773792014568e-02 1.2677743544506974e+00 1.3957000000000000e-01 1 0 0 0 0 +V -111 0 2.8845818951176322e-05 -2.7495107403999699e-05 -1.8369212665482548e-05 4.5775054719574976e-05 0 2 0 +P 332 22 2.7030395986030997e-01 -2.9002381019296813e-01 -1.9934251311767295e-01 4.4375159575046091e-01 0 1 0 0 0 0 +P 333 22 2.8440430632540273e-02 5.2681886990469471e-03 9.1000640864471617e-03 3.0321989926628289e-02 0 1 0 0 0 0 +V -112 0 1.3628206968224917e-04 -2.7003120695176234e-06 -6.1509002492339389e-06 1.3659618133936836e-04 0 2 0 +P 334 22 1.8626901422113438e+00 2.7688122150641023e-02 -8.2117109705569513e-02 1.8647049143781296e+00 0 1 0 0 0 0 +P 335 22 1.0246907154836133e+00 -8.4899091998007395e-02 -4.8200779350839988e-02 1.0293309639520400e+00 0 1 0 0 0 0 +V -113 0 -1.2886014039213245e-05 4.9643921958561860e-06 -3.4195863645979687e-04 3.4228819896250966e-04 0 2 0 +P 336 22 -1.0943481290995041e-01 -2.2126551863527927e-02 -2.1629656728282032e+00 2.1658453463733665e+00 0 1 0 0 0 0 +P 337 22 -1.8538134664903849e-01 1.3570574223792362e-01 -5.6606275362368574e+00 5.6652878476000419e+00 0 1 0 0 0 0 +V -114 0 -1.8756333083447605e-04 2.7795536553286909e-04 -1.0918770904720895e-02 1.0923957781981871e-02 0 2 0 +P 338 22 -6.4454009407804935e-01 1.0195210531070349e+00 -4.0546413266977950e+01 4.0564349913774876e+01 0 1 0 0 0 0 +P 339 22 -2.2060320357166030e-01 2.6255908732698097e-01 -9.8168503025321545e+00 9.8228383326862136e+00 0 1 0 0 0 0 +V -115 0 0 0 0 0 0 1 0 +P 340 310 -2.1609164566645891e+00 -2.4014342910428788e+00 -4.6611982375210808e+00 5.6930563869726507e+00 4.9767000000000000e-01 2 0 0 -144 0 +V -116 0 4.6647014059706234e-04 4.0174175072356605e-04 -1.8177659679026900e-01 1.8177767628387106e-01 0 2 0 +P 341 22 5.0612377474012493e-01 4.3386844717429307e-01 -2.0411988422196481e+02 2.0412097280263274e+02 0 1 0 0 0 0 +P 342 22 3.6515589074457233e-02 3.3473123180800382e-02 -7.3387457182011460e+00 7.3389129000579238e+00 0 1 0 0 0 0 +V -117 0 -3.9679966035151650e-06 -4.7018239803615207e-05 2.8211964547665943e-02 2.8212008404318353e-02 0 2 0 +P 343 22 -6.4946256002850131e-02 -9.4207688108994117e-02 5.6256023690559296e+01 5.6256140061129656e+01 0 1 0 0 0 0 +P 344 22 3.0942924365591040e-02 -3.0871019736151784e-01 1.8550345407790874e+02 1.8550371353233157e+02 0 1 0 0 0 0 +V -118 0 7.1394658205115038e-06 1.7849484044905112e-05 9.5544360100083161e-04 9.5576856408141815e-04 0 2 0 +P 345 22 4.9543228363903562e-02 1.4447608620664792e-01 8.0641017625724594e+00 8.0655480351980131e+00 0 1 0 0 0 0 +P 346 22 1.1223862360092251e-02 7.4486156690947375e-03 6.8093200372141963e-02 6.9412829495597211e-02 0 1 0 0 0 0 +V -119 0 -1.0479404296005302e-06 -9.0389728160656921e-07 5.0505876581810914e-05 5.0639862845471187e-05 0 2 0 +P 347 22 -1.9649059503414921e-02 -4.1995057254422583e-02 2.0580015458011841e-01 2.1095822808881290e-01 0 1 0 0 0 0 +P 348 22 -2.1816430663347673e-02 6.2291465370471460e-03 1.7926444798778951e+00 1.7927880494219495e+00 0 1 0 0 0 0 +V -120 0 -2.7048403984485163e-05 -2.0116331802263564e-05 8.4117688963188434e-04 8.4259995311128431e-04 0 2 0 +P 349 22 -1.9642405802245206e-02 -9.2859174775794529e-02 2.0999420753842948e+00 2.1020859569520560e+00 0 1 0 0 0 0 +P 350 22 -8.3219283532173879e-02 1.6359286886682384e-02 1.0989481787777651e+00 1.1022160292147887e+00 0 1 0 0 0 0 +V -121 0 -4.3697548852092644e-06 1.0180537782309538e-05 7.9137024098687022e-04 7.9155795130203402e-04 0 2 0 +P 351 22 1.5286718904049673e-02 1.0121571509495164e-01 3.4164405283291086e+00 3.4179736962660661e+00 0 1 0 0 0 0 +P 352 22 -5.9951059525466630e-02 2.8420682734860746e-03 4.6723495593551112e+00 4.6727350247682775e+00 0 1 0 0 0 0 +V -122 0 -3.9128110223879112e-05 5.0130931781456886e-05 3.1682709221014086e-03 3.1690053675884522e-03 0 2 0 +P 353 22 -1.6779084043867753e-02 6.1438708636000997e-02 5.8657625123023784e+00 5.8661082587446449e+00 0 1 0 0 0 0 +P 354 22 -1.9701672792787284e-01 2.1247646906597906e-01 1.1445655045598098e+01 1.1449322305875373e+01 0 1 0 0 0 0 +V -123 0 8.8138363471338031e-05 -4.9929214254940152e-06 1.3105393744311845e-03 1.3137442676021075e-03 0 2 0 +P 355 22 -5.9221845589798100e-03 -9.3634280590004035e-03 8.7044995957186830e-02 8.7747235718017694e-02 0 1 0 0 0 0 +P 356 22 4.8477764023430803e-01 -1.7763098576969477e-02 7.0331113651009813e+00 7.0498213000085883e+00 0 1 0 0 0 0 +V -124 0 -3.1128397509633289e-06 9.7235280142512896e-06 1.4935694140095549e-03 1.4936344936374668e-03 0 2 0 +P 357 22 -6.0821289540813332e-02 1.1730330566840588e-01 2.0518413827214008e+01 2.0518839277103105e+01 0 1 0 0 0 0 +P 358 22 1.6572976597038779e-02 2.0914445617698917e-02 7.1233755145640765e-01 7.1283719375723653e-01 0 1 0 0 0 0 +V -125 0 -1.9515749056143327e-04 2.7480648777391942e-05 4.6732544138254686e-03 4.6777255789813401e-03 0 2 0 +P 359 22 -4.0023515920812236e-01 8.6281187916333033e-02 1.0367007136428276e+01 1.0375088895658166e+01 0 1 0 0 0 0 +P 360 22 -8.3282326790722602e-02 -1.8195796101566498e-02 1.2113351506416694e+00 1.2143310422333451e+00 0 1 0 0 0 0 +V -126 0 4.8454558846432039e-06 -1.0220515911640566e-05 2.5159500646974626e-05 2.7896794388778152e-05 0 2 0 +P 361 22 7.4423022937854688e-02 -2.8130602976180735e-01 5.5912723271329023e-01 6.3031351808856284e-01 0 1 0 0 0 0 +P 362 22 8.2854054207988859e-02 -5.0438373195187056e-02 2.5751681862275960e-01 2.7517946083031813e-01 0 1 0 0 0 0 +V -127 0 1.7487216930583767e-05 -1.9160098842285034e-05 1.4650951698096147e-04 1.4982562794983061e-04 0 2 0 +P 363 22 4.5214485644001358e-02 -3.4494364021055254e-02 9.6759820543419181e-02 1.1223490425381649e-01 0 1 0 0 0 0 +P 364 22 8.8898795765316174e-02 -1.1244861370181165e-01 1.0268536256674834e+00 1.0368105203741129e+00 0 1 0 0 0 0 +V -128 0 -7.3439902585215092e-06 3.9738804160137968e-06 -6.9310149993812259e-06 1.1364292459897351e-05 0 2 0 +P 365 22 -6.5906669162900097e-02 -1.1544111646086784e-02 -1.7213513211336788e-02 6.9088787736666518e-02 0 1 0 0 0 0 +P 366 22 -2.2791738499094746e-01 1.7053419924879248e-01 -2.6008790670221665e-01 3.8558263278742178e-01 0 1 0 0 0 0 +V -129 0 -6.5385547125916253e-05 1.7591311186985337e-06 -4.3327993280389105e-05 8.3982872788221195e-05 0 2 0 +P 367 22 -7.0058961208586297e-03 -2.3646751404207671e-02 -4.7549279496351946e-02 5.3564777728007648e-02 0 1 0 0 0 0 +P 368 22 -2.8760418411723598e-01 3.1572933608220874e-02 -1.4767526381608859e-01 3.2483996121401310e-01 0 1 0 0 0 0 +V -130 0 -6.6891221062580290e-05 -7.9566451089120833e-06 -2.8450332395157243e-05 7.4823417599693525e-05 0 2 0 +P 369 22 -1.6731181439017095e-01 1.4345447539424376e-02 -1.6892072469241130e-02 1.6877315311370919e-01 0 1 0 0 0 0 +P 370 22 -4.0216266385833066e-01 -8.2083877934753996e-02 -2.2531815989549669e-01 4.6823161405134645e-01 0 1 0 0 0 0 +V -131 0 4.0004438564436408e-06 -8.8733800974629270e-06 -1.1446929262908617e-05 1.5689694162488194e-05 0 2 0 +P 371 22 -2.7787464980002757e-02 -3.9536920145469653e-02 -3.1512507197267656e-02 5.7691848422995934e-02 0 1 0 0 0 0 +P 372 22 1.4735894064874117e-01 -2.2568443790815346e-01 -3.1063108310384269e-01 4.1126608502684042e-01 0 1 0 0 0 0 +V -132 0 -1.7190259592768666e+02 1.1083735870402483e+01 -8.5422204997653452e+01 2.0462328450321920e+02 0 2 0 +P 373 -211 -7.0116200068741419e-01 2.3007912747604026e-01 -2.5557192099985926e-01 7.9332297824509768e-01 1.3957000000000000e-01 1 0 0 0 0 +P 374 211 -5.2094392724806982e-01 -1.5128160125026907e-01 -3.5171956602845583e-01 6.6140391308241664e-01 1.3957000000000000e-01 1 0 0 0 0 +V -133 0 0 0 0 0 0 1 0 +P 375 310 6.1455156080652751e-01 -1.6499131271689300e-02 -2.1080593895117539e+00 2.2515629373462178e+00 4.9767000000000000e-01 2 0 0 -145 0 +V -134 0 1.2422833674547942e-04 -1.3509013664050564e-04 -5.1776043610738624e-04 5.5164953701517157e-04 0 2 0 +P 376 22 1.7293581745775335e-01 -1.5989646707223276e-01 -4.7684903414621088e-01 5.3184459996143318e-01 0 1 0 0 0 0 +P 377 22 1.5852178443479484e-01 -2.0054185081282136e-01 -9.0460415924719695e-01 9.4002918837403693e-01 0 1 0 0 0 0 +V -135 0 -3.0421302276829038e-05 2.2861135473366665e-06 -1.2315570169442151e-02 1.2315641212460739e-02 0 2 0 +P 379 22 -8.0253989160968833e-02 6.2876484874701419e-02 -4.2260171878810738e+01 4.2260294856777207e+01 0 1 0 0 0 0 +P 378 22 -6.3213644028068727e-02 -5.2095115397050848e-02 -1.5820369430860998e+01 1.5820581493572236e+01 0 1 0 0 0 0 +V -136 0 -2.2626919204406364e-05 -1.4251163751589497e-05 -5.4657781078933680e-03 5.4658557071155340e-03 0 2 0 +P 380 22 -7.2231888147834891e-02 9.0709435203236623e-03 -9.2446848491878608e+00 9.2449714812153534e+00 0 1 0 0 0 0 +P 381 22 -1.9238729045382397e-01 -1.7573663989709587e-01 -5.4676952041087944e+01 5.4677572922904659e+01 0 1 0 0 0 0 +V -137 0 -1.4712307122146771e-05 7.6678869480818771e-06 -3.9235264585132075e-03 3.9236871020138959e-03 0 2 0 +P 382 22 -7.3391735447519918e-03 5.7884281344822895e-02 -1.3555871924925388e+01 1.3555997495517444e+01 0 1 0 0 0 0 +P 383 22 -5.5924405626760355e-02 -2.4912024241247683e-02 -3.3154674699699282e+00 3.3160326736214896e+00 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 384 130 1.1053483946443671e-01 2.3990656324443796e-01 -9.0517810821029947e+00 9.0692992726583253e+00 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 0 0 0 0 0 2 0 +P 385 -211 1.9994195185511940e-01 4.2490055020102374e-01 -1.6472487730842742e+00 1.7185533355122891e+00 1.3957000000000000e-01 1 0 0 0 0 +P 386 211 -3.8005634452398301e-01 -1.4412602541072891e-01 -9.1373216249149591e-01 1.0097531311588057e+00 1.3957000000000000e-01 1 0 0 0 0 +V -140 0 1.1290931347859454e-05 1.9492777513552132e-04 -5.9277195213696494e-04 6.2505117884745329e-04 0 2 0 +P 387 22 -1.8864812224141009e-02 3.1518847790773763e-01 -7.8454208373630496e-01 8.4569849172110512e-01 0 1 0 0 0 0 +P 388 22 6.3118015182099169e-02 4.4880327170562045e-01 -1.5387434537915861e+00 1.6041008936848880e+00 0 1 0 0 0 0 +V -141 0 -2.2062332681418194e-05 -3.3787800437129711e-05 -1.7314881218831880e-04 1.8452512119060968e-04 0 2 0 +P 389 22 2.4873558701757840e-02 -5.2976666599621790e-03 -1.3627493951424749e-02 2.8852517843785962e-02 0 1 0 0 0 0 +P 390 22 -8.5152879382827049e-02 -8.7018304052106268e-02 -4.5945451991180614e-01 4.7531216476614546e-01 0 1 0 0 0 0 +V -142 0 -4.1677118704622027e-05 1.4862109679246677e-06 -2.0980181557823914e-03 2.0985831772341542e-03 0 2 0 +P 391 22 -1.5643583805594760e-01 5.2378617282550582e-02 -5.5116465463091462e+00 5.5141149192248653e+00 0 1 0 0 0 0 +P 392 22 -6.7341384605742141e-02 -4.4398695132734589e-02 -5.7532558890580363e+00 5.7538212894728558e+00 0 1 0 0 0 0 +V -143 0 0 0 0 0 0 1 0 +P 393 310 -2.8878157481450778e-01 4.5737313947049302e-01 -1.9055191875712950e+01 1.9069362806234462e+01 4.9767000000000000e-01 2 0 0 -146 0 +V -144 0 -1.0043507998486164e+02 -1.1161386843781975e+02 -2.1664318227892988e+02 2.6460188769466896e+02 0 2 0 +P 394 -211 -1.1691333412424345e+00 -1.3186003706581355e+00 -2.1817307937141353e+00 2.8080257741418579e+00 1.3957000000000000e-01 1 0 0 0 0 +P 395 211 -9.9178311542215425e-01 -1.0828339203847432e+00 -2.4794674438069451e+00 2.8850306128307914e+00 1.3957000000000000e-01 1 0 0 0 0 +V -145 0 1.4136025654935059e+01 -3.7951598826736549e-01 -4.8489961644807160e+01 5.1790856090669863e+01 0 2 0 +P 396 -211 2.2123670885310345e-01 -1.8774985570499705e-01 -1.1205504408707445e+00 1.1658939767822030e+00 1.3957000000000000e-01 1 0 0 0 0 +P 397 211 3.9331485195342403e-01 1.7125072443330774e-01 -9.8750894864100902e-01 1.0856689605640144e+00 1.3957000000000000e-01 1 0 0 0 0 +V -146 0 -1.0106759107552426e+01 1.6007115917497323e+01 -6.6689238799159602e+02 6.6738834131272722e+02 0 2 0 +P 398 211 -1.3082730519347252e-01 3.3475366485323066e-01 -6.2686630319197212e+00 6.2805088800648798e+00 1.3957000000000000e-01 1 0 0 0 0 +P 399 -211 -1.5795426962103520e-01 1.2261947461726234e-01 -1.2786528843793228e+01 1.2788853926169581e+01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 8 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 186 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 41 2203 -3.5096158275163236e-01 -6.5324073291532936e-01 6.4120718804435573e+03 6.4120719697163750e+03 7.7132999999999996e-01 2 0 0 -13 0 +P 3 1 3.5096158275163236e-01 6.5324073291532936e-01 4.1594615987003954e+02 4.1594682088954704e+02 0 3 0 0 -3 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 2 2.7501906829241841e-02 -1.2146878480571459e-01 -2.4425191616079805e+03 2.4425191647831903e+03 0 3 0 0 -4 0 +P 25 2103 -2.7501906829241841e-02 1.2146878480571459e-01 -4.3752498996173417e+03 4.3752499693803265e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -3 0 0 0 0 0 0 3 0 +P 5 1 -4.9399896685999328e-01 1.2324525037290512e+00 2.6907605385966201e+02 2.6907932981713935e+02 0 3 0 0 -5 0 +P 39 21 5.6879342880917538e-01 7.5338012753840347e-02 1.3882129535590456e+01 1.3893981510846166e+01 0 2 0 0 -13 0 +P 40 21 4.0353127377792430e-01 -1.0794042666778709e+00 2.4382432099069892e+01 2.4409648627655276e+01 0 2 0 0 -13 0 +V -4 0 0 0 0 0 0 27 0 +P 6 -2 -2.5309383529199383e+01 2.5605502229007829e+01 3.5459450278646557e+01 5.0532952150964263e+01 0 3 0 0 -5 0 +P 11 2 1.6176455215218464e+00 -3.5208120614031763e-01 -8.1690576640657608e-01 1.8753594962580435e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 3.6714966898125962e+00 -2.8959215128987843e+00 -1.0957485461237511e+00 4.8028027471995083e+00 0 2 0 0 -9 0 +P 13 21 9.0366392277633989e-02 -5.2691266877741805e-01 1.9123724213929416e-01 5.6778052815543023e-01 0 2 0 0 -9 0 +P 14 21 -5.4742252565373975e-02 9.9812434983835754e-02 5.6673941239040604e-01 5.7805951073393502e-01 0 2 0 0 -9 0 +P 15 21 -4.2785424343628164e-01 -3.2385695231399270e-01 -3.5095687498530953e-02 5.3774927844631759e-01 0 2 0 0 -9 0 +P 16 -4 2.9718367737999309e+00 -5.2406590168947231e-01 -2.3934560712361521e+00 4.1334115261319404e+00 1.5000000000000000e+00 2 0 0 -9 0 +P 17 4 3.7194740649112351e-02 1.2081735484703142e+00 -1.0381037228237732e+01 1.0558266936671616e+01 1.5000000000000000e+00 2 0 0 -11 0 +P 18 21 -3.8063394485410336e+00 5.6572199649196686e-01 -5.4033256081716328e+00 6.6335653311592448e+00 0 2 0 0 -11 0 +P 19 21 1.4421971897575430e+00 -1.4182830615990176e+00 5.7062472324337099e-01 2.1016831711130513e+00 0 2 0 0 -11 0 +P 20 21 2.7303036205130007e+00 -7.3316197951629114e-01 9.1820481918052266e-01 2.9724038148207561e+00 0 2 0 0 -11 0 +P 21 21 -2.0182388692079840e+00 1.5399105798395493e-01 -1.0724900871680109e+01 1.0914233829567960e+01 0 2 0 0 -11 0 +P 22 21 1.2491774325410158e-01 -5.4800394801420538e-01 -7.6805684279456621e+00 7.7011066831965493e+00 0 2 0 0 -11 0 +P 31 21 3.5609178221999949e-01 -1.2821539734905008e+00 -1.5993658274378207e+01 1.6048919750771034e+01 0 2 0 0 -13 0 +P 32 21 -5.7321384139990961e-01 1.8778171682794662e-01 1.6282864814338351e+00 1.7364195768210722e+00 0 2 0 0 -13 0 +P 33 21 3.1657101493395272e+00 -1.6119295557286719e+00 4.4063722475163161e+00 5.6600489420096816e+00 0 2 0 0 -13 0 +P 34 21 2.6326825731670658e+00 -1.7437994078856278e+00 2.2174731113567527e+00 3.8586319992440359e+00 0 2 0 0 -13 0 +P 35 21 6.8425955467206965e+00 -4.4447064866609622e+00 1.5000198384257514e+01 1.7075786398747489e+01 0 2 0 0 -13 0 +P 36 21 4.0164782232489156e+00 -5.4148487689946281e+00 1.3344639617162901e+01 1.4950989633494801e+01 0 2 0 0 -13 0 +P 37 21 3.9627824931833042e+00 -7.3524675138650126e+00 1.5839388268499249e+01 1.7906664802553045e+01 0 2 0 0 -13 0 +P 23 21 6.3545309142797402e-01 5.0932772066100540e-01 -1.0519858948403776e+01 1.0551333927648679e+01 0 2 0 0 -11 0 +P 24 21 -1.3293995544884336e+00 5.4471300945374300e-02 -2.4605532627938929e+00 2.7972473357117349e+00 0 2 0 0 -11 0 +P 26 2 -9.0376759228672943e-01 8.5542850621349587e-01 -2.0776141357023594e+03 2.0776145345862528e+03 3.3000000000000002e-01 2 0 0 -13 0 +P 27 21 4.5222474530545992e-01 3.0982198771832353e-01 -1.3647713867247677e+02 1.3647823957360674e+02 0 2 0 0 -13 0 +P 28 21 -9.6670908210745185e-02 -1.0947679481510482e+00 -1.0578578360202395e+02 1.0579149244820697e+02 0 2 0 0 -13 0 +P 29 21 -4.8393908701574007e-01 2.0274532889938918e-01 -2.1573305980675745e+01 2.1579685670653127e+01 0 2 0 0 -13 0 +P 30 21 1.5370980407646048e-01 8.1756875564613984e-01 -1.5100758824998671e+01 1.5123655724223996e+01 0 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 -24 -1.9947058501930567e+01 2.7030936827831496e+01 2.9618547273355034e+02 3.0941145860556639e+02 8.2952153494395972e+01 3 0 0 -6 0 +P 8 22 -5.8563239941287950e+00 -1.9298209509462974e-01 8.3500314047580435e+00 1.0200823362537069e+01 0 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 -24 -1.9947058501930567e+01 2.7030936827831496e+01 2.9618547273355034e+02 3.0941145860556639e+02 8.2952153494395972e+01 2 0 0 -8 0 +V -7 0 0 0 0 0 0 1 0 +P 10 22 -5.8563239941287950e+00 -1.9298209509462974e-01 8.3500314047580435e+00 1.0200823362537033e+01 0 1 0 0 0 0 +V -8 0 0 0 0 0 0 10 0 +P 42 -2 -3.0517819564912308e+01 1.0428844168876985e+01 7.4912511307218153e+01 8.1560354045635137e+01 3.3000000000000002e-01 2 0 0 -15 0 +P 43 21 -5.7206370395985298e+00 5.4834348217882312e-01 1.3778163054100464e+01 1.4928635096975666e+01 0 2 0 0 -15 0 +P 44 2 -2.2525958537263930e+00 1.3998775512003811e-01 5.1363462708508241e+00 5.6200300413691791e+00 3.3000000000000002e-01 2 0 0 -15 0 +P 45 -2 -3.3632312463497884e+00 3.1506842882115055e-01 4.6744576577204295e+00 5.7766813072113079e+00 3.3000000000000002e-01 2 0 0 -17 0 +P 46 21 -3.7285968742864894e+00 2.8910858542250293e+00 1.1679555837123013e+01 1.2596540660828801e+01 0 2 0 0 -17 0 +P 47 21 -1.8023297258181672e+00 2.5930887493787522e+00 1.4214934742857999e+01 1.4561485894181056e+01 0 2 0 0 -17 0 +P 48 21 4.5585582966435784e-01 6.8325648113844262e-01 4.4766795478450598e+00 4.5514067858796050e+00 0 2 0 0 -17 0 +P 49 21 1.8795211728249670e+00 2.1980346924035365e+00 1.6255259634668267e+01 1.6510524587019709e+01 0 2 0 0 -17 0 +P 50 21 1.0534179425365028e+01 3.0060939727642277e+00 5.9681656292270027e+01 6.0678708250320625e+01 0 2 0 0 -17 0 +P 51 1 1.4568595374906375e+01 4.2271332429249249e+00 9.1375908388900839e+01 9.2627091936149995e+01 3.3000000000000002e-01 2 0 0 -17 0 +V -9 0 0 0 0 0 0 1 0 +P 63 92 7.8687488814103510e+00 -4.5230258068361495e+00 -3.5832294167353105e+00 1.2495163086925176e+01 7.8047803369408015e+00 2 0 0 -10 0 +V -10 0 0 0 0 0 0 6 0 +P 64 321 1.7132926485905779e+00 -1.1048478524837397e+00 -3.9254690998346925e-01 2.1339621630642891e+00 4.9359999999999998e-01 1 0 0 0 0 +P 65 -311 7.0071389671228546e-01 -5.7580058229065734e-01 -6.8836441564177575e-01 1.2426050350911262e+00 4.9767000000000000e-01 2 0 0 -23 0 +P 66 -211 1.0077824213790697e-01 -4.4819776346861628e-01 6.6159383291203300e-01 8.1744949318836269e-01 1.3957000000000000e-01 1 0 0 0 0 +P 67 213 2.9009203059815278e+00 -1.7893295104458362e+00 -1.1484922938389688e+00 3.6608745191428511e+00 6.8258990418377041e-01 2 0 0 -24 0 +P 68 2112 5.5409088873312584e-01 1.6103136011254437e-01 -4.0047552306756740e-01 1.1730815152379661e+00 9.3957000000000002e-01 1 0 0 0 0 +P 69 -4122 1.8989528992549274e+00 -7.6588145825984388e-01 -1.6149441071155617e+00 3.4671903612005783e+00 2.2848999999999999e+00 2 0 0 -25 0 +V -11 0 0 0 0 0 0 1 0 +P 70 92 -2.2114133934649618e+00 -8.6294579771183808e-02 -4.4209313144221505e+03 4.4294798104102165e+03 2.7505055207618193e+02 2 0 0 -12 0 +V -12 0 0 0 0 0 0 28 0 +P 71 433 -1.0247884433601786e+00 1.2618214732734563e+00 -8.6694897878898782e+00 9.0699874159992895e+00 2.1124000000000001e+00 2 0 0 -26 0 +P 72 -311 1.5493234368667361e-01 -5.2903668164922500e-02 -2.2756098012880561e+00 2.3351398728649673e+00 4.9767000000000000e-01 2 0 0 -27 0 +P 73 311 -1.0479399410759047e+00 3.5508361290150353e-01 -1.2285977863989042e+00 1.7266703338789495e+00 4.9767000000000000e-01 2 0 0 -28 0 +P 74 -321 7.1709044630839699e-02 -8.0540288172282606e-02 -1.1040623347056104e+00 1.2141760679639282e+00 4.9359999999999998e-01 1 0 0 0 0 +P 75 323 -9.5436433963787692e-01 -2.9602351803484112e-01 -1.0976303074658433e+00 1.7459894215858962e+00 9.1937236874953221e-01 2 0 0 -29 0 +P 76 -313 4.5229065483994757e-01 8.1631980606907503e-02 -5.8961679501597064e-01 1.1604642453115961e+00 8.8758024029850513e-01 2 0 0 -30 0 +P 77 113 -2.4190544648866458e-01 -1.5219642166406071e-02 2.7578108978004551e-01 9.1680871617924098e-01 8.4007924032998516e-01 2 0 0 -31 0 +P 78 -211 9.1225699860842469e-01 -2.2413756750953776e-01 -9.7235135008989171e-02 9.5466482969645439e-01 1.3957000000000000e-01 1 0 0 0 0 +P 92 -213 -3.7677031801546979e-01 -2.2171436967981403e-01 -7.8528785468690341e+00 7.8980386958816329e+00 7.2124935737075968e-01 2 0 0 -41 0 +P 93 111 6.5806093929116216e-01 1.7165685794549929e-01 -8.5486801528223268e+01 8.5489613201855903e+01 1.3497999999999999e-01 2 0 0 -42 0 +P 94 323 -4.8433024369999383e-01 -1.4687330505886736e-01 -8.3957716820012237e+01 8.3964255353447285e+01 9.1750524621514085e-01 2 0 0 -43 0 +P 95 331 3.5807589393682532e-01 -1.5224080954598848e-01 -4.3981009527858146e+02 4.3981131055034541e+02 9.5790576133122218e-01 2 0 0 -44 0 +P 96 -313 -4.8374978977586536e-01 -3.5240006944584942e-02 -6.3924051825900631e+02 6.3924131911008010e+02 8.8804157285665164e-01 2 0 0 -45 0 +P 97 2114 2.5503907680222165e-01 4.3505021898565793e-01 -1.9084717226924338e+03 1.9084721994174818e+03 1.2511271521563039e+00 2 0 0 -46 0 +P 98 223 -8.2278535331352418e-02 -1.5371015913753452e-01 -1.2132425478781010e+03 1.2132428143693633e+03 7.8500992134931347e-01 2 0 0 -47 0 +P 79 211 -1.6019746019187674e-02 -1.0962764287148888e-01 -3.9451013408667096e-01 4.3288899632718902e-01 1.3957000000000000e-01 1 0 0 0 0 +P 80 -211 2.2284319500814491e-02 -1.1912520537149757e-01 8.0408625454810090e-02 2.0157563691564462e-01 1.3957000000000000e-01 1 0 0 0 0 +P 81 111 2.6147842628995627e-01 -5.3714869055077885e-01 3.2448827889606002e-01 6.9311754177514195e-01 1.3497999999999999e-01 2 0 0 -32 0 +P 82 223 8.0109014259129629e-01 -6.0688849198709971e-01 -2.0305333370163012e-01 1.2882559187308529e+00 7.7994461185036024e-01 2 0 0 -33 0 +P 83 211 1.0621591005162476e+00 -2.6715583755681332e-01 -2.2047937637000264e-01 1.1258974805259456e+00 1.3957000000000000e-01 1 0 0 0 0 +P 84 -213 -3.9080845150093041e-01 2.6753344288388836e-01 -1.4175065470742074e+00 1.6446536225973012e+00 6.8648039920912651e-01 2 0 0 -34 0 +P 85 213 -7.0973282225719359e-01 3.4100256795269435e-01 -4.5663121010528904e+00 4.6984477584393929e+00 7.7730412595238718e-01 2 0 0 -35 0 +P 86 113 -2.3157800835597475e-01 -5.5195889026928313e-01 -5.6838651946392025e+00 5.7714335617292285e+00 8.0301607463498115e-01 2 0 0 -36 0 +P 87 111 -4.6066273585814793e-01 3.9227103753437581e-01 -4.7966952888036269e+00 4.8365888823764545e+00 1.3497999999999999e-01 2 0 0 -37 0 +P 88 311 2.7517509894565889e-01 -1.1487381757051843e-01 -2.1239959178119161e+00 2.2018063985792806e+00 4.9767000000000000e-01 2 0 0 -38 0 +P 89 -323 -7.0371163798211422e-01 -2.0006265444806237e-01 -4.1983731881486621e+00 4.3521687974762546e+00 8.8306323648086882e-01 2 0 0 -39 0 +P 90 211 -1.0761954765935261e-01 -1.6382379153854643e-01 -2.3860134843071883e+00 2.3981159967583294e+00 1.3957000000000000e-01 1 0 0 0 0 +P 91 111 -1.7970542608682286e-01 6.5692258472370091e-01 -2.4966648992850491e+00 2.5914082160491692e+00 1.3497999999999999e-01 2 0 0 -40 0 +V -13 0 0 0 0 0 1 1 0 +P 38 21 1.1792977287052229e+00 3.1505474039551125e+00 1.2907478596245630e+02 1.2911861625393684e+02 0 2 0 0 -13 0 +P 99 92 2.1325344736888994e+01 -1.9078086942355402e+01 4.2593028050939884e+03 9.0133192852153970e+03 7.9433900450641822e+03 2 0 0 -14 0 +V -14 0 0 0 0 0 0 39 0 +P 100 211 -6.4145635586214866e-01 7.4210211658539504e-01 -1.2602904261354940e+03 1.2602908155939158e+03 1.3957000000000000e-01 1 0 0 0 0 +P 101 -213 2.5952690952053969e-01 1.7113996608260679e-01 -5.5927702746122156e+02 5.5927759069273088e+02 7.3031643899164966e-01 2 0 0 -48 0 +P 102 211 4.2014540449212504e-02 -3.5537589858044005e-01 -7.2949847678164119e+01 7.2950858893526046e+01 1.3957000000000000e-01 1 0 0 0 0 +P 103 223 -6.3998361774731272e-01 2.5907507037149113e-02 -1.3487047205365673e+02 1.3487424091129336e+02 7.7870353248628366e-01 2 0 0 -49 0 +P 104 -213 -1.2839848855141253e-01 -2.0565346315218563e-01 -7.5718320753566431e+01 7.5722517718575858e+01 7.5948165303639892e-01 2 0 0 -50 0 +P 120 213 1.6442662451119143e+00 -1.1808050207330052e+00 3.0613568265944324e+00 3.7231193798014286e+00 6.2593954557443632e-01 2 0 0 -61 0 +P 121 -211 2.3285071815343761e+00 -1.4930049131139151e+00 3.7980187414499524e+00 4.7005782102146254e+00 1.3957000000000000e-01 1 0 0 0 0 +P 122 113 2.0705991745434469e+00 -2.1281647954902798e+00 5.8472746169042855e+00 6.6028251690195514e+00 7.6825349251449815e-01 2 0 0 -62 0 +P 123 213 1.6982439540579044e+00 -2.0586767864933027e+00 5.4934725034644734e+00 6.1605691667856659e+00 8.0758261106179852e-01 2 0 0 -63 0 +P 124 113 2.9418564684892945e+00 -3.1012166205676479e+00 5.9093890342429791e+00 7.3452154730835240e+00 8.7134813887281681e-01 2 0 0 -64 0 +P 125 2112 2.3972505494101850e+00 -3.1969828230803983e+00 9.5256435215448363e+00 1.0372472494645029e+01 9.3957000000000002e-01 1 0 0 0 0 +P 126 -2112 3.4184366439918845e+00 -3.6749985902842326e+00 9.6543481666732056e+00 1.0921563717518836e+01 9.3957000000000002e-01 1 0 0 0 0 +P 127 313 7.2107705342681427e-01 -1.9937173017311436e+00 4.6809918289416128e+00 5.2178012042881861e+00 9.0493320673532929e-01 2 0 0 -65 0 +P 128 -313 2.7935483674053357e-01 -8.1871255653283084e-02 1.1718388726820061e+01 1.1756180517434442e+01 8.9577004768472279e-01 2 0 0 -66 0 +P 129 113 -8.2708674444163105e-02 3.4522701208939077e-01 6.1206736781408893e+00 6.1737560715212680e+00 7.2566889257740352e-01 2 0 0 -67 0 +P 130 311 2.4695926864221421e-01 4.1868501205522318e-01 1.8281949053007391e+01 1.8295180311364682e+01 4.9767000000000000e-01 2 0 0 -68 0 +P 131 -311 2.9376002073213692e-01 5.4077841199444876e-01 2.3165952234661379e+01 2.3179468384934378e+01 4.9767000000000000e-01 2 0 0 -69 0 +P 132 -211 8.2622565565000405e-01 2.0025688618269719e-01 1.2637005194543391e+01 1.2666338528806758e+01 1.3957000000000000e-01 1 0 0 0 0 +P 133 221 -1.9997941753530871e-01 6.5041493910278059e-01 4.3772957762713439e+01 4.3781669271045850e+01 5.4744999999999999e-01 2 0 0 -70 0 +P 134 2224 1.1786850791080654e+00 3.2621875180768561e-01 6.7450236130820841e+01 6.7471056333264244e+01 1.1460241852960338e+00 2 0 0 -71 0 +P 105 323 -1.9872082796055467e-02 2.6794098698287805e-01 -6.8108399991638535e+01 6.8114172641420211e+01 8.4509048745704018e-01 2 0 0 -51 0 +P 106 -321 2.7142152013196741e-01 5.2993467515270787e-01 -2.6160140573056200e+01 2.6171570380158332e+01 4.9359999999999998e-01 1 0 0 0 0 +P 107 211 2.9437631694032651e-01 -4.6347150711519880e-01 -6.0143844523795785e+01 6.0146512593344127e+01 1.3957000000000000e-01 1 0 0 0 0 +P 108 -213 2.4619007605199436e-01 -6.0434473709003467e-01 -5.8018576150880186e+01 5.8030267612341916e+01 9.6485152730442514e-01 2 0 0 -52 0 +P 109 323 -9.9384342697108385e-02 -5.3376492002751497e-01 -2.0781667217870002e+01 2.0807229643207261e+01 8.7654482683159274e-01 2 0 0 -53 0 +P 110 -323 -2.7981634786068688e-01 3.1851689070453132e-01 -2.3479670779247950e+01 2.3502171437618404e+01 9.3668147368348154e-01 2 0 0 -54 0 +P 111 213 6.3127980478257359e-04 8.7114195588813836e-01 -3.8001408612870264e+00 3.9658129295852458e+00 7.2643851840290274e-01 2 0 0 -55 0 +P 112 223 1.1771085064566952e-01 -1.8207163509755123e-01 -9.8029417254923035e-01 1.2741930596758400e+00 7.8459248271014903e-01 2 0 0 -56 0 +P 113 2112 1.9209205934717882e-01 -5.3351059012014823e-01 -4.1646177314502335e+00 4.3067813437698792e+00 9.3957000000000002e-01 1 0 0 0 0 +P 114 113 -2.7598565373989276e-01 3.7960657283068916e-01 -4.9916024639480350e-01 1.0051155152174889e+00 7.3540942076064020e-01 2 0 0 -57 0 +P 115 -2112 -9.9845269053552094e-02 -3.5876231396345826e-01 -1.8622805531032363e+00 2.1188582111692340e+00 9.3957000000000002e-01 1 0 0 0 0 +P 116 -213 3.7849030650847143e-01 3.7784357170711968e-03 -9.0606253780559282e-02 1.0192850428959987e+00 9.4205271442207850e-01 2 0 0 -58 0 +P 117 321 5.8085707824128519e-01 -9.7162071509718617e-01 3.6764844693599641e-01 1.2885061505027517e+00 4.9359999999999998e-01 1 0 0 0 0 +P 118 333 4.7060519423644726e-01 1.3602005935586783e-01 1.1809574745448215e+00 1.6340056336417663e+00 1.0175181318778792e+00 2 0 0 -59 0 +P 119 -323 1.4599984686426251e+00 -7.3997071978743245e-01 2.5814573561830843e+00 3.1906207354049889e+00 9.1486960864539102e-01 2 0 0 -60 0 +P 135 -213 -6.0071912138819927e-01 -1.7948907599716118e-01 5.4158753007648563e+01 5.4167324041288985e+01 7.3170120904424785e-01 2 0 0 -72 0 +P 136 -2214 4.8755136324043447e-01 -5.7626612657803589e-01 1.5857152644493947e+03 1.5857159489133173e+03 1.2652830783436040e+00 2 0 0 -73 0 +P 137 113 -4.1376307441085342e-01 -8.6244447369672600e-02 1.4358186673828980e+03 1.4358189407957868e+03 7.7878414697202980e-01 2 0 0 -74 0 +P 138 2224 -3.9430912224019385e-02 -3.0577286480143262e-01 3.3195578920930161e+03 3.3195581504912811e+03 1.2729824133344914e+00 2 0 0 -75 0 +V -15 0 0 0 0 0 0 1 0 +P 139 92 -3.8491052458237228e+01 1.1117175406175845e+01 9.3827020632169436e+01 1.0210901918397998e+02 4.1939587087132457e+00 2 0 0 -16 0 +V -16 0 0 0 0 0 0 5 0 +P 140 -211 -1.9166473046608434e+01 6.1868455401856188e+00 4.6556411760049734e+01 5.0726223026563673e+01 1.3957000000000000e-01 1 0 0 0 0 +P 141 211 -3.8214210133710984e+00 4.1209563848882319e-01 8.8452891185503653e+00 9.6452942283966223e+00 1.3957000000000000e-01 1 0 0 0 0 +P 142 -211 -1.9337263835215596e-01 3.8299880626085796e-02 7.4065220340539428e-01 7.7904128865453037e-01 1.3957000000000000e-01 1 0 0 0 0 +P 143 -313 -8.2556654128106732e+00 2.7128082773100708e+00 2.0430817739322297e+01 2.2220577016158007e+01 9.0575342995889496e-01 2 0 0 -76 0 +P 144 323 -7.0541203470947975e+00 1.7671260695652278e+00 1.7253849810841484e+01 1.8737883624206951e+01 7.2773690452967910e-01 2 0 0 -77 0 +V -17 0 0 0 0 0 0 1 0 +P 145 92 1.8543993956306284e+01 1.5913761421656066e+01 2.0235845210138564e+02 2.0730243942159109e+02 3.7791940130625008e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 14 0 +P 151 2212 5.8338973945168648e-01 1.6779417880182423e+00 1.4261748231538144e+01 1.4402556906492567e+01 9.3827000000000005e-01 1 0 0 0 0 +P 152 111 1.4165244960744796e+00 4.6731499980347514e-02 6.0300599428003485e+00 6.1958508693507808e+00 1.3497999999999999e-01 2 0 0 -79 0 +P 153 -211 -8.8908673032611560e-03 7.5389806891575817e-01 4.3882568137415596e+00 4.4547411814925377e+00 1.3957000000000000e-01 1 0 0 0 0 +P 154 113 1.8185267740322264e+00 1.0824417118785685e+00 1.1430218213996847e+01 1.1643291552010357e+01 6.6153613510060250e-01 2 0 0 -80 0 +P 155 213 1.5036150668328048e+00 3.5431629391135439e-01 8.4987502245096724e+00 8.6550697519553221e+00 5.4321149405278735e-01 2 0 0 -81 0 +P 156 223 4.6405083798304085e+00 1.6629892500258932e+00 3.0667601777968951e+01 3.1071117824765778e+01 7.8275973287819944e-01 2 0 0 -82 0 +P 157 -213 3.9970063450751039e+00 1.4686799434037365e+00 2.8332911049604355e+01 2.8661754230859430e+01 7.8052965777654093e-01 2 0 0 -83 0 +P 158 113 9.3580203216703879e+00 3.1521852498297869e+00 5.4878039383787858e+01 5.5765298071186237e+01 8.1267839249976626e-01 2 0 0 -84 0 +P 159 221 2.8855367459185346e+00 6.9662349745004337e-01 1.5936383535813000e+01 1.6219729600467367e+01 5.4744999999999999e-01 2 0 0 -85 0 +P 146 -2112 -2.6743483898333138e+00 8.2173272799491937e-01 3.9048032086408360e+00 4.8946566651373811e+00 9.3957000000000002e-01 1 0 0 0 0 +P 147 -211 -3.4761870385601772e+00 1.5018145990736227e+00 1.0041938198918368e+01 1.0733094893498349e+01 1.3957000000000000e-01 1 0 0 0 0 +P 148 2212 -1.5117020725326820e+00 1.9137806911799142e+00 8.1880940760776273e+00 8.5949424012979971e+00 9.3827000000000005e-01 1 0 0 0 0 +P 149 113 -1.2447883978844071e-01 2.5267362074443822e-01 1.5280844145927219e+00 1.6030732744200233e+00 3.9428797199936710e-01 2 0 0 -78 0 +P 150 -2212 1.3647329543852704e-01 5.2795247924943911e-01 4.2715630293953559e+00 4.4072621986569747e+00 9.3827000000000005e-01 1 0 0 0 0 +V -19 0 0 0 0 0 9 1 0 +P 52 3 1.0101998152855945e+01 6.4603650197245228e+00 2.6444321311193690e+01 2.9035991673749287e+01 0 2 0 0 -19 0 +P 53 21 -1.1792977287052229e+00 -3.1505474039551125e+00 3.5604699631516148e+00 4.8983301681289770e+00 0 2 0 0 -19 0 +P 54 21 5.4393098289857278e+00 1.2064682052724261e-01 -6.0927087448274282e+00 8.1683380757838790e+00 0 2 0 0 -19 0 +P 55 21 4.3229282211027176e+00 8.4560344871155246e-01 -3.2960883103994504e+01 3.3253910575937830e+01 0 2 0 0 -19 0 +P 56 21 2.9321949272632235e+00 6.6737924249356242e+00 -6.4867381486965698e+01 6.5275680413138062e+01 0 2 0 0 -19 0 +P 57 21 -4.3229282211027176e+00 -8.4560344871155246e-01 -3.3185882553128543e+01 3.3476940637210568e+01 0 2 0 0 -19 0 +P 58 21 -2.9321949272632235e+00 -6.6737924249356242e+00 -1.3725188086854727e+01 1.5540851342257129e+01 0 2 0 0 -19 0 +P 59 21 -5.4393098289857278e+00 -1.2064682052724261e-01 -6.8094310938794118e+00 8.7160196703137292e+00 0 2 0 0 -19 0 +P 60 -3 -1.0101998152855945e+01 -6.4603650197245228e+00 -1.0742083072280693e+01 1.6099038219724946e+01 0 2 0 0 -19 0 +P 160 92 -1.1792977287052206e+00 -3.1505474039551116e+00 -1.3837876686758571e+02 2.1446510077624441e+02 1.6381477234698198e+02 2 0 0 -20 0 +V -20 0 0 0 0 0 0 36 0 +P 161 -313 8.2000806394988448e+00 5.4003406550455937e+00 2.2177543996883074e+01 2.4268717313332942e+01 8.4981210626819303e-01 2 0 0 -86 0 +P 162 3214 1.1200777844798961e+00 4.1111180711726349e-02 3.7259896703360691e+00 4.1247208876059354e+00 1.3689627477534603e+00 2 0 0 -87 0 +P 163 -3122 5.4889822392614185e-01 6.7168289205653042e-02 1.2394553573684344e+00 1.7569269434479631e+00 1.1156800000000000e+00 2 0 0 -88 0 +P 164 -211 -1.8246867227292973e-01 -7.4395915930269774e-01 9.3316746363469338e-01 1.2153400129831278e+00 1.3957000000000000e-01 1 0 0 0 0 +P 165 213 -2.4505059959837305e-01 -1.9411646561574297e-01 4.9179202248504200e-01 1.1013212363778255e+00 9.3451488684246398e-01 2 0 0 -89 0 +P 166 111 1.0831519365169956e-01 -8.5977649139333909e-02 -1.2164921808366023e-01 2.2834725745604548e-01 1.3497999999999999e-01 2 0 0 -90 0 +P 167 2112 2.1446758121909784e-01 -3.2834007745682020e-01 2.5652908362645738e-01 1.0499535730233749e+00 9.3957000000000002e-01 1 0 0 0 0 +P 168 -3122 -1.6966076865868715e-01 -3.3109432038849090e-01 -2.5618579747388798e-01 1.2036532933709381e+00 1.1156800000000000e+00 2 0 0 -91 0 +P 169 -323 1.8511690574403743e+00 7.7549450304113823e-02 -1.7771148289683374e+00 2.7167454062741467e+00 8.8866624258231075e-01 2 0 0 -92 0 +P 190 3322 -8.9819328650589736e-01 -1.4101551478664545e+00 -4.9514548113054522e+00 5.3889846427113186e+00 1.3149000000000000e+00 2 0 0 -104 0 +P 191 311 -9.8211331445284256e-01 -7.9298343389061809e-01 -1.4504485608208735e+00 1.9861635746679696e+00 4.9767000000000000e-01 2 0 0 -105 0 +P 192 -3212 -1.7421317431910346e+00 -8.2221491446806805e-01 -3.7329995940397152e+00 4.3667518646939678e+00 1.1925500000000000e+00 2 0 0 -106 0 +P 193 211 -1.4263310139354122e+00 -6.0848557736261411e-01 -2.6734691732657865e+00 3.0937989696285668e+00 1.3957000000000000e-01 1 0 0 0 0 +P 194 -211 -2.5524022272364206e+00 -5.2387494780839883e-01 -2.0619036105597894e+00 3.3256771302521524e+00 1.3957000000000000e-01 1 0 0 0 0 +P 195 211 -2.0644196153139507e-01 1.6631552161324753e-02 -9.1057393117718233e-01 9.4420313547863910e-01 1.3957000000000000e-01 1 0 0 0 0 +P 196 311 -9.4646039874614889e+00 -5.6457554838761190e+00 -1.0111196049899565e+01 1.4964532889856393e+01 4.9767000000000000e-01 2 0 0 -107 0 +P 170 221 1.1371300019760869e-01 -4.0058843868012450e-01 -1.2195001765893660e+00 1.4001013987635382e+00 5.4744999999999999e-01 2 0 0 -93 0 +P 171 2212 1.2523629043783191e-01 1.5016324154887450e-01 -1.0511017569858179e+00 1.4224621696177961e+00 9.3827000000000005e-01 1 0 0 0 0 +P 172 -211 5.5214282633985745e-01 1.1107501711974165e-01 -2.9656055335364906e+00 3.0218364160802897e+00 1.3957000000000000e-01 1 0 0 0 0 +P 173 -3114 2.4243956428752380e+00 1.3862290434432972e-01 -3.4795719084528560e+00 4.4684697068205574e+00 1.4010318739691290e+00 2 0 0 -94 0 +P 174 -321 9.7258158118116156e-01 -3.2442714147895962e-01 -5.7679095353058232e+00 5.8790806483371956e+00 4.9359999999999998e-01 1 0 0 0 0 +P 175 321 1.1597250287476084e+00 4.0770177789498285e-01 -8.7674225604355964e+00 8.8669342049683344e+00 4.9359999999999998e-01 1 0 0 0 0 +P 176 -321 1.2473896171875081e+00 5.8064712076131186e-01 -7.6950130852787115e+00 7.8326240353106558e+00 4.9359999999999998e-01 1 0 0 0 0 +P 177 211 4.6411646485160624e-01 -3.1056116558930160e-03 -6.8807161452354304e+00 6.8977639995852016e+00 1.3957000000000000e-01 1 0 0 0 0 +P 178 113 1.1429721118154468e+00 2.0039644079081445e+00 -1.8192672029751531e+01 1.8365275501470027e+01 9.9386622150112869e-01 2 0 0 -95 0 +P 179 113 -3.7950464568590037e-01 6.9483727246069926e-01 -1.1395936644018100e+01 1.1448140272842123e+01 7.5214433514938095e-01 2 0 0 -96 0 +P 180 -211 1.1066748123962553e+00 1.5207401839636081e+00 -2.0061478070674706e+01 2.0149932059750874e+01 1.3957000000000000e-01 1 0 0 0 0 +P 181 211 2.4841143236311466e-02 2.3230814679517509e-01 -4.8359467720177013e-01 5.5491238423969202e-01 1.3957000000000000e-01 1 0 0 0 0 +P 182 221 -4.2542141885817947e-01 5.9981854143176938e-01 -9.4453389518417676e+00 9.4897257644226993e+00 5.4744999999999999e-01 2 0 0 -97 0 +P 183 111 -3.2417120919680359e-01 -3.9808752168111899e-01 -7.9310594479818883e+00 7.9488039487468249e+00 1.3497999999999999e-01 2 0 0 -98 0 +P 184 111 -5.0210374058263441e-01 1.5238011936667630e+00 -8.2367846286676585e+00 8.3926705442060054e+00 1.3497999999999999e-01 2 0 0 -99 0 +P 185 -211 2.4005831721027357e-01 -3.1272585897954058e-01 -3.1418638717544294e+00 3.1695762858893386e+00 1.3957000000000000e-01 1 0 0 0 0 +P 186 111 -7.1801802285008720e-01 -1.5663690926018516e+00 -4.6475347856871210e+00 4.9585140112706885e+00 1.3497999999999999e-01 2 0 0 -100 0 +P 187 213 -8.7754060313250792e-01 1.0687002965254111e-01 -7.7721991707009082e+00 7.8598301364746987e+00 7.6704048902773225e-01 2 0 0 -101 0 +P 188 -213 -1.7607285674592426e+00 -2.1828765548774491e+00 -9.9325807070362337e+00 1.0374911328171784e+01 1.0571236557461503e+00 2 0 0 -102 0 +P 189 111 6.0732737211851184e-02 -1.4876097180116929e-01 -8.8365199189003499e-02 2.2769782811477235e-01 1.3497999999999999e-01 2 0 0 -103 0 +V -21 0 0 0 0 0 2 1 0 +P 61 1 2.6048674114218304e+00 1.3071749066125802e+00 -4.9087263234386977e+00 5.7087331857413925e+00 0 2 0 0 -21 0 +P 62 -1 -2.6048674114218304e+00 -1.3071749066125802e+00 3.9636024064472406e+00 4.9197748428113490e+00 0 2 0 0 -21 0 +P 197 92 0 0 -9.4512391699145715e-01 1.0628508028552741e+01 1.0586402774056010e+01 2 0 0 -22 0 +V -22 0 0 0 0 0 0 7 0 +P 198 2112 8.8440371644850424e-01 7.2509545653771157e-01 -1.6825725857017333e+00 2.2409318699627123e+00 9.3957000000000002e-01 1 0 0 0 0 +P 199 111 1.2648914843620779e-01 -7.9047867519565176e-02 -4.6372272917197632e-01 5.0547644849410533e-01 1.3497999999999999e-01 2 0 0 -108 0 +P 200 -2112 7.9792227079239864e-01 4.2225813261826067e-01 -1.8859938515610912e+00 2.2923233789792832e+00 9.3957000000000002e-01 1 0 0 0 0 +P 201 313 -3.4282732844273572e-01 -3.3700984327477074e-01 4.3482101578220667e-01 1.2094706287093313e+00 1.0210992480427190e+00 2 0 0 -109 0 +P 202 -321 3.5673637654704443e-01 4.8759571964329723e-01 3.3223694327211195e-01 8.4795800287583600e-01 4.9359999999999998e-01 1 0 0 0 0 +P 203 321 -1.2446271985425277e+00 -6.2023897699434571e-01 1.2956105175346537e+00 1.9636804284509302e+00 4.9359999999999998e-01 1 0 0 0 0 +P 204 -313 -5.7809698523889164e-01 -5.9865262101058792e-01 1.0244967728543724e+00 1.5686672710805456e+00 8.4766873528821429e-01 2 0 0 -110 0 +V -23 0 0 0 0 0 0 1 0 +P 205 130 7.0071389671228546e-01 -5.7580058229065734e-01 -6.8836441564177575e-01 1.2426050350911262e+00 4.9767000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 206 211 2.3601805446980989e-01 -2.6618733465545696e-01 -2.6116918438156855e-01 4.6287076699357904e-01 1.3957000000000000e-01 1 0 0 0 0 +P 207 111 2.6649022515117178e+00 -1.5231421757903791e+00 -8.8732310945740023e-01 3.1980037521492721e+00 1.3497999999999999e-01 2 0 0 -111 0 +V -25 0 5.6566919601848354e-03 -2.2814444155476094e-03 -4.8106729505785935e-03 1.0328232916324018e-02 0 3 0 +P 210 -2214 7.5977813013376927e-01 -1.0292071107408740e-01 -1.0394990117134257e+00 1.7454207711993177e+00 1.1739165189157490e+00 2 0 0 -114 0 +P 208 311 9.8128386922335242e-01 -7.1757193254617169e-01 -6.8412429949797804e-01 1.4810567161454691e+00 4.9767000000000000e-01 2 0 0 -112 0 +P 209 111 1.5789089989780553e-01 5.4611185360415225e-02 1.0867920409584220e-01 2.4071287385579151e-01 1.3497999999999999e-01 2 0 0 -113 0 +V -26 0 0 0 0 0 0 2 0 +P 211 431 -8.9544496400355400e-01 1.0812584738803073e+00 -7.5166320522356385e+00 7.8959287756155350e+00 1.9684999999999999e+00 2 0 0 -115 0 +P 212 22 -1.2934347935662455e-01 1.8056299939314888e-01 -1.1528577356542393e+00 1.1740586403837536e+00 0 1 0 0 0 0 +V -27 0 0 0 0 0 0 1 0 +P 213 130 1.5493234368667361e-01 -5.2903668164922500e-02 -2.2756098012880561e+00 2.3351398728649673e+00 4.9767000000000000e-01 1 0 0 0 0 +V -28 0 0 0 0 0 0 1 0 +P 214 310 -1.0479399410759047e+00 3.5508361290150353e-01 -1.2285977863989042e+00 1.7266703338789495e+00 4.9767000000000000e-01 2 0 0 -116 0 +V -29 0 0 0 0 0 0 2 0 +P 215 311 -6.3303113772774122e-01 -2.0717802444266725e-01 -3.2448067298090227e-01 8.9253251547659829e-01 4.9767000000000000e-01 2 0 0 -117 0 +P 216 211 -3.2133320191013570e-01 -8.8845493592173877e-02 -7.7314963448494112e-01 8.5345690610929803e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 217 -311 2.9210454944064679e-01 -1.6108553023224306e-01 -1.5223884321452796e-01 6.1816317436209656e-01 4.9767000000000000e-01 2 0 0 -118 0 +P 218 111 1.6018610539930081e-01 2.4271751083915055e-01 -4.3737795180144273e-01 5.4230107094949964e-01 1.3497999999999999e-01 2 0 0 -119 0 +V -31 0 0 0 0 0 0 2 0 +P 219 -211 1.9395608964315619e-02 -2.0304028947714121e-03 5.1617951780191884e-01 5.3507138933158549e-01 1.3957000000000000e-01 1 0 0 0 0 +P 220 211 -2.6130105545298021e-01 -1.3189239271634661e-02 -2.4039842802187339e-01 3.8173732684765543e-01 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 8.0482296730048227e-05 -1.6533279978182732e-04 9.9876545526457765e-05 2.1333955713841350e-04 0 2 0 +P 221 22 5.4686178191785839e-02 -5.8094679943429033e-02 2.1759714948860068e-03 7.9814189057458726e-02 0 1 0 0 0 0 +P 222 22 2.0679224809817040e-01 -4.7905401060734981e-01 3.2231230740117400e-01 6.1330335271768321e-01 0 1 0 0 0 0 +V -33 0 0 0 0 0 0 3 0 +P 223 -211 4.2801781509197134e-01 -1.0403622668171376e-01 -1.1956260927992245e-01 4.7728166624761242e-01 1.3957000000000000e-01 1 0 0 0 0 +P 224 211 3.2705663503245730e-01 -4.8246898921629483e-01 -1.9339384413010952e-01 6.2978038388121327e-01 1.3957000000000000e-01 1 0 0 0 0 +P 225 111 4.6015692466867701e-02 -2.0383276089091178e-02 1.0990311970840183e-01 1.8119386860202738e-01 1.3497999999999999e-01 2 0 0 -120 0 +V -34 0 0 0 0 0 0 2 0 +P 226 -211 -2.1866773818747592e-01 3.1579766966145423e-01 -1.3502781361186795e+00 1.4107709160837443e+00 1.3957000000000000e-01 1 0 0 0 0 +P 227 111 -1.7214071331345446e-01 -4.8264226777565866e-02 -6.7228410955527756e-02 2.3388270651355680e-01 1.3497999999999999e-01 2 0 0 -121 0 +V -35 0 0 0 0 0 0 2 0 +P 228 211 -3.9269766283052082e-01 -1.2163004153164388e-01 -1.0675916516465207e+00 1.1524916663303422e+00 1.3957000000000000e-01 1 0 0 0 0 +P 229 111 -3.1703515942667282e-01 4.6263260948433826e-01 -3.4987204494063704e+00 3.5459560921090518e+00 1.3497999999999999e-01 2 0 0 -122 0 +V -36 0 0 0 0 0 0 2 0 +P 230 -211 -2.5667807075318744e-01 -1.0146763652409606e-01 -7.0052877713175954e-01 7.6576737052259081e-01 1.3957000000000000e-01 1 0 0 0 0 +P 231 211 2.5100062397212689e-02 -4.5049125374518711e-01 -4.9833364175074433e+00 5.0056661912066387e+00 1.3957000000000000e-01 1 0 0 0 0 +V -37 0 -2.1056308062828918e-04 1.7930210471794663e-04 -2.1925084410489518e-03 2.2107432955447886e-03 0 2 0 +P 232 22 -2.3018986810834105e-01 2.7063917719313463e-01 -3.0344545295281806e+00 3.0551836657369069e+00 0 1 0 0 0 0 +P 233 22 -2.3047286774980685e-01 1.2163186034124118e-01 -1.7622407592754459e+00 1.7814052166395471e+00 0 1 0 0 0 0 +V -38 0 0 0 0 0 0 1 0 +P 234 310 2.7517509894565889e-01 -1.1487381757051843e-01 -2.1239959178119161e+00 2.2018063985792806e+00 4.9767000000000000e-01 2 0 0 -123 0 +V -39 0 0 0 0 0 0 2 0 +P 235 -321 -2.9230515250873707e-01 6.8174647361061602e-02 -1.5259649802190853e+00 1.6316556516560088e+00 4.9359999999999998e-01 1 0 0 0 0 +P 236 111 -4.1140648547337716e-01 -2.6823730180912397e-01 -2.6724082079295770e+00 2.7205131458202456e+00 1.3497999999999999e-01 2 0 0 -124 0 +V -40 0 -4.3948076794121348e-05 1.6065449346688851e-04 -6.1057488976406712e-04 6.3374495564102974e-04 0 2 0 +P 237 22 -2.3452133138899382e-02 1.5314581901608029e-01 -3.8829621787147561e-01 4.1806410662022048e-01 0 1 0 0 0 0 +P 238 22 -1.5625329294792351e-01 5.0377676570762064e-01 -2.1083686814135736e+00 2.1733441094289487e+00 0 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 239 -211 -1.5863681543682859e-01 3.1354292411407046e-02 -6.1213933937085041e-01 6.4833871284224542e-01 1.3957000000000000e-01 1 0 0 0 0 +P 240 111 -2.1813350257864123e-01 -2.5306866209122109e-01 -7.2407392074981836e+00 7.2496999830393873e+00 1.3497999999999999e-01 2 0 0 -125 0 +V -42 0 3.5910695792528850e-04 9.3673956898613795e-05 -4.6650550741745643e-02 4.6652085085306563e-02 0 2 0 +P 241 22 3.4522379636973621e-01 1.5547952859967618e-01 -4.9535364031978155e+01 4.9536810990757047e+01 0 1 0 0 0 0 +P 242 22 3.1283714292142595e-01 1.6177329345823128e-02 -3.5951437496245113e+01 3.5952802211098856e+01 0 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 243 311 -3.9600823279035513e-01 8.5430585125442424e-02 -3.6195759503890365e+01 3.6201447517988591e+01 4.9767000000000000e-01 2 0 0 -126 0 +P 244 211 -8.8322010909638760e-02 -2.3230389018430980e-01 -4.7761957316121880e+01 4.7762807835458695e+01 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 3 0 +P 245 111 5.2116772754951829e-02 1.2637830758610888e-01 -7.9018190793191891e+01 7.9018424329167104e+01 1.3497999999999999e-01 2 0 0 -127 0 +P 246 111 -5.2246677240471596e-03 -1.4230926848259157e-01 -7.6470870445203118e+01 7.6471122166949328e+01 1.3497999999999999e-01 2 0 0 -128 0 +P 247 221 3.1118378890592058e-01 -1.3630984864950577e-01 -2.8432103404018636e+02 2.8432176405422894e+02 5.4744999999999999e-01 2 0 0 -129 0 +V -45 0 0 0 0 0 0 2 0 +P 248 -311 -5.5517974597127173e-01 -1.4786398120312963e-01 -3.9774196700709734e+02 3.9774269331115448e+02 4.9767000000000000e-01 2 0 0 -130 0 +P 249 111 7.1429956195406319e-02 1.1262397425854469e-01 -2.4149855125190902e+02 2.4149862579892570e+02 1.3497999999999999e-01 2 0 0 -131 0 +V -46 0 0 0 0 0 0 2 0 +P 250 2112 2.2151623266281140e-01 2.2948599839512826e-01 -1.1254541776645710e+03 1.1254546150545946e+03 9.3957000000000002e-01 1 0 0 0 0 +P 251 111 3.3522844139410250e-02 2.0556422059052964e-01 -7.8301754502786298e+02 7.8301758436288753e+02 1.3497999999999999e-01 2 0 0 -132 0 +V -47 0 0 0 0 0 0 3 0 +P 252 -211 -5.8614752007926270e-02 -3.3655372812363318e-02 -8.2483134952050921e+02 8.2483136409813051e+02 1.3957000000000000e-01 1 0 0 0 0 +P 253 211 -1.0931233412869321e-01 5.8050394161407254e-02 -2.2407062653002762e+02 2.2407070418146742e+02 1.3957000000000000e-01 1 0 0 0 0 +P 254 111 8.5648550805267079e-02 -1.7810518048657847e-01 -1.6434057182756410e+02 1.6434074608976536e+02 1.3497999999999999e-01 2 0 0 -133 0 +V -48 0 0 0 0 0 0 2 0 +P 255 -211 -1.9543881906526395e-01 2.2757020818337852e-02 -2.9277793211329066e+02 2.9277803149576221e+02 1.3957000000000000e-01 1 0 0 0 0 +P 256 111 4.5496572858580364e-01 1.4838294526426893e-01 -2.6649909534793096e+02 2.6649955919696873e+02 1.3497999999999999e-01 2 0 0 -134 0 +V -49 0 0 0 0 0 0 2 0 +P 258 111 -4.9286609976579326e-01 8.2167204288579737e-02 -3.6771637985725704e+01 3.6775280395877665e+01 1.3497999999999999e-01 2 0 0 -135 0 +P 257 22 -1.4711751798151942e-01 -5.6259697251430631e-02 -9.8098834067931008e+01 9.8098960515415683e+01 0 1 0 0 0 0 +V -50 0 0 0 0 0 0 2 0 +P 259 -211 -2.3197224114737774e-01 2.0693030568941703e-01 -3.8896053948983713e+01 3.8897546501794004e+01 1.3957000000000000e-01 1 0 0 0 0 +P 260 111 1.0357375259596519e-01 -4.1258376884160269e-01 -3.6822266804582732e+01 3.6824971216781876e+01 1.3497999999999999e-01 2 0 0 -136 0 +V -51 0 0 0 0 0 0 2 0 +P 261 311 -1.6443516368771718e-01 3.8717781180786159e-01 -4.8340509295770076e+01 4.8344901075339337e+01 4.9767000000000000e-01 2 0 0 -137 0 +P 262 211 1.4456308089166173e-01 -1.1923682482498356e-01 -1.9767890695868459e+01 1.9769271566080882e+01 1.3957000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 263 -211 1.8683106059886168e-01 -2.5164614323774132e-01 -5.7120358611063180e+00 5.7223303898040978e+00 1.3957000000000000e-01 1 0 0 0 0 +P 264 111 5.9359015453132734e-02 -3.5269859385229346e-01 -5.2306540289773871e+01 5.2307937222537824e+01 1.3497999999999999e-01 2 0 0 -138 0 +V -53 0 0 0 0 0 0 2 0 +P 265 321 -2.7060017363760236e-01 -2.0970188485683577e-01 -9.6242418100430420e+00 9.6429700151284194e+00 4.9359999999999998e-01 1 0 0 0 0 +P 266 111 1.7121583094049395e-01 -3.2406303517067925e-01 -1.1157425407826961e+01 1.1164259628078851e+01 1.3497999999999999e-01 2 0 0 -139 0 +V -54 0 0 0 0 0 0 2 0 +P 267 -321 -4.0442913609014586e-01 -1.6147687955186629e-02 -1.3223821966351727e+01 1.3239219464595010e+01 4.9359999999999998e-01 1 0 0 0 0 +P 268 111 1.2461278822945901e-01 3.3466457865971788e-01 -1.0255848812896222e+01 1.0262951973023387e+01 1.3497999999999999e-01 2 0 0 -140 0 +V -55 0 0 0 0 0 0 2 0 +P 269 211 1.4409689320731370e-01 5.6493751537046411e-01 -3.2584013389051369e+00 3.3130918159905778e+00 1.3957000000000000e-01 1 0 0 0 0 +P 270 111 -1.4346561340253111e-01 3.0620444051767443e-01 -5.4173952238189038e-01 6.5272111359466933e-01 1.3497999999999999e-01 2 0 0 -141 0 +V -56 0 0 0 0 0 0 3 0 +P 271 -211 -1.1482207741060419e-02 -1.8312117192440214e-01 -6.4775573213280524e-01 6.8755543639220962e-01 1.3957000000000000e-01 1 0 0 0 0 +P 272 211 5.9785090683486621e-02 -1.8030085794299547e-01 -1.0356062916028855e-01 2.5746309493806629e-01 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 6.9407967703243298e-02 1.8135039476984641e-01 -2.2897781125613634e-01 3.2917452834556382e-01 1.3497999999999999e-01 2 0 0 -142 0 +V -57 0 0 0 0 0 0 2 0 +P 274 -211 -4.3837163049861572e-01 2.9152299187613313e-02 -2.8462395439024579e-01 5.4176574576719017e-01 1.3957000000000000e-01 1 0 0 0 0 +P 275 211 1.6238597675872291e-01 3.5045427364307591e-01 -2.1453629200455779e-01 4.6334976945029910e-01 1.3957000000000000e-01 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 276 -211 2.0464411704977142e-01 2.3284289266599723e-01 -4.3412562821404987e-01 5.5139810779544129e-01 1.3957000000000000e-01 1 0 0 0 0 +P 277 111 1.7384618945869995e-01 -2.2906445694892602e-01 3.4351937443349062e-01 4.6788693510055751e-01 1.3497999999999999e-01 2 0 0 -143 0 +V -59 0 0 0 0 0 0 2 0 +P 278 213 4.3992394891943581e-01 2.2880560970011726e-01 1.0362837885132530e+00 1.4104866020206339e+00 8.1835400425562832e-01 2 0 0 -144 0 +P 279 -211 3.0681245317011434e-02 -9.2785550344249429e-02 1.4467368603156844e-01 2.2351903162113226e-01 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 280 -311 8.9352434965555338e-01 -6.9110102864767708e-01 1.3634045967932928e+00 1.8391720742449138e+00 4.9767000000000000e-01 2 0 0 -145 0 +P 281 -211 5.6647411898707156e-01 -4.8869691139755277e-02 1.2180527593897912e+00 1.3514486611600747e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 282 211 3.3902061508967224e-01 -3.9965183653292830e-01 1.1898441795454691e+00 1.3076182640197989e+00 1.3957000000000000e-01 1 0 0 0 0 +P 283 111 1.3052456300222421e+00 -7.8115318420007707e-01 1.8715126470489638e+00 2.4155011157816300e+00 1.3497999999999999e-01 2 0 0 -146 0 +V -62 0 0 0 0 0 0 2 0 +P 284 211 1.4070112479551919e-01 -1.0793828470377013e-02 3.5863792581214382e-01 4.0989542566685100e-01 1.3957000000000000e-01 1 0 0 0 0 +P 285 -211 1.9298980497479277e+00 -2.1173709670199026e+00 5.4886366910921414e+00 6.1929297433527006e+00 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 2 0 +P 286 211 6.1961341303921946e-01 -3.1792097930846813e-01 1.0711169548656323e+00 1.2852104289194011e+00 1.3957000000000000e-01 1 0 0 0 0 +P 287 111 1.0786305410186852e+00 -1.7407558071848346e+00 4.4223555485988415e+00 4.8753587378662653e+00 1.3497999999999999e-01 2 0 0 -147 0 +V -64 0 0 0 0 0 0 2 0 +P 288 211 1.0422416969481501e+00 -1.3006721691053791e+00 1.6880434592323161e+00 2.3763388545196276e+00 1.3957000000000000e-01 1 0 0 0 0 +P 289 -211 1.8996147715411444e+00 -1.8005444514622688e+00 4.2213455750106634e+00 4.9688766185638968e+00 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 290 321 4.0566606545034806e-01 -6.9985854291668093e-01 1.6213274746742699e+00 1.8779538537687956e+00 4.9359999999999998e-01 1 0 0 0 0 +P 291 -211 3.1541098797646633e-01 -1.2938587588144628e+00 3.0596643542673432e+00 3.3398473505193902e+00 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 2 0 +P 292 -311 2.5175435783133765e-01 2.1313109775713732e-01 6.3817070071050166e+00 6.4095760292667956e+00 4.9767000000000000e-01 2 0 0 -148 0 +P 293 111 2.7600478909195956e-02 -2.9500235341042041e-01 5.3366817197150453e+00 5.3466044881676478e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -67 0 0 0 0 0 0 2 0 +P 294 -211 2.7565212559822333e-01 1.2963583969597678e-01 3.5266895443427737e+00 3.5425708845917452e+00 1.3957000000000000e-01 1 0 0 0 0 +P 295 211 -3.5836080004238641e-01 2.1559117239341402e-01 2.5939841337981151e+00 2.6311851869295220e+00 1.3957000000000000e-01 1 0 0 0 0 +V -68 0 0 0 0 0 0 1 0 +P 296 310 2.4695926864221421e-01 4.1868501205522318e-01 1.8281949053007391e+01 1.8295180311364678e+01 4.9767000000000000e-01 2 0 0 -150 0 +V -69 0 0 0 0 0 0 1 0 +P 297 310 2.9376002073213692e-01 5.4077841199444876e-01 2.3165952234661379e+01 2.3179468384934378e+01 4.9767000000000000e-01 2 0 0 -151 0 +V -70 0 0 0 0 0 0 3 0 +P 298 111 -7.3014847317132536e-02 3.6666985674012392e-01 2.2327277065206818e+01 2.2330815003010546e+01 1.3497999999999999e-01 2 0 0 -152 0 +P 299 111 -6.8709360746503190e-02 2.8337710712952435e-01 1.3589332359602992e+01 1.3593130512919101e+01 1.3497999999999999e-01 2 0 0 -153 0 +P 300 111 -5.8255209471673002e-02 3.6797523313229671e-04 7.8563483379036310e+00 7.8577237551162042e+00 1.3497999999999999e-01 2 0 0 -154 0 +V -71 0 0 0 0 0 0 2 0 +P 301 2212 1.0317604671954461e+00 2.0632794933723184e-01 5.2326524268660144e+01 5.2345511684536277e+01 9.3827000000000005e-01 1 0 0 0 0 +P 302 211 1.4692461191261935e-01 1.1989080247045376e-01 1.5123711862160690e+01 1.5125544648727947e+01 1.3957000000000000e-01 1 0 0 0 0 +V -72 0 0 0 0 0 0 2 0 +P 303 -211 -3.2198747189268129e-01 -9.6850833808676623e-02 4.6988507635577655e+01 4.6989917914587856e+01 1.3957000000000000e-01 1 0 0 0 0 +P 304 111 -2.7873164949551793e-01 -8.2638242188484548e-02 7.1702453720709034e+00 7.1774061267011149e+00 1.3497999999999999e-01 2 0 0 -155 0 +V -73 0 0 0 0 0 0 2 0 +P 305 -2212 2.5338377157655873e-01 -6.0579834534973953e-01 1.4196072898296641e+03 1.4196077517691594e+03 9.3827000000000005e-01 1 0 0 0 0 +P 306 111 2.3416759166387574e-01 2.9532218771703617e-02 1.6610797461973073e+02 1.6610819714415794e+02 1.3497999999999999e-01 2 0 0 -156 0 +V -74 0 0 0 0 0 0 2 0 +P 307 -211 5.8030238191292306e-02 2.4649524600033157e-01 4.1657029500783335e+02 4.1657039535967152e+02 1.3957000000000000e-01 1 0 0 0 0 +P 308 211 -4.7179331260214574e-01 -3.3273969337000420e-01 1.0192483723750648e+03 1.0192485454361155e+03 1.3957000000000000e-01 1 0 0 0 0 +V -75 0 0 0 0 0 0 2 0 +P 309 2212 -2.6758753905159788e-01 -2.7884430113976838e-01 2.3144541620770879e+03 2.3144543845286262e+03 9.3827000000000005e-01 1 0 0 0 0 +P 310 211 2.2815662682757848e-01 -2.6928563661664261e-02 1.0051037300159285e+03 1.0051037659626548e+03 1.3957000000000000e-01 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 311 -321 -4.5347624236370176e+00 1.1907450897810774e+00 1.0993094460568804e+01 1.1961342353041172e+01 4.9359999999999998e-01 1 0 0 0 0 +P 312 211 -3.7209029891736556e+00 1.5220631875289932e+00 9.4377232787534950e+00 1.0259234663116835e+01 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 313 311 -3.5596336877401362e+00 8.8923992828974985e-01 8.7633501659252779e+00 9.5134494900893749e+00 4.9767000000000000e-01 2 0 0 -157 0 +P 314 211 -3.4944866593546617e+00 8.7788614127547804e-01 8.4904996449162073e+00 9.2244341341175780e+00 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 0 0 0 0 0 2 0 +P 315 -211 -4.7673302181934996e-02 1.6089739047097859e-01 1.2551797364767447e+00 1.2740159613455126e+00 1.3957000000000000e-01 1 0 0 0 0 +P 316 211 -7.6805537606505728e-02 9.1776230273459644e-02 2.7290467811597724e-01 3.2905731307451080e-01 1.3957000000000000e-01 1 0 0 0 0 +V -79 0 9.0412383846874141e-05 2.9827273200513847e-06 3.8488010315316091e-04 3.9546202597281295e-04 0 2 0 +P 317 22 1.3001177241993309e+00 7.6588306497609115e-02 5.4468358006212130e+00 5.6003742825277634e+00 0 1 0 0 0 0 +P 318 22 1.1640677187514868e-01 -2.9856806517261601e-02 5.8322414217913543e-01 5.9547658682301741e-01 0 1 0 0 0 0 +V -80 0 0 0 0 0 0 2 0 +P 319 -211 1.2815868877039274e+00 5.8886373999562425e-01 8.6631621951294644e+00 8.7783303913122701e+00 1.3957000000000000e-01 1 0 0 0 0 +P 320 211 5.3693988632829892e-01 4.9357797188294417e-01 2.7670560188673816e+00 2.8649611606980869e+00 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 321 211 1.2611864020975216e-01 1.2389612141421584e-01 1.5268330665860421e+00 1.5433584024556255e+00 1.3957000000000000e-01 1 0 0 0 0 +P 322 111 1.3774964266230527e+00 2.3042017249713853e-01 6.9719171579236301e+00 7.1117113494996964e+00 1.3497999999999999e-01 2 0 0 -158 0 +V -82 0 0 0 0 0 0 2 0 +P 323 22 3.8757047271998544e+00 1.0974957903932110e+00 2.5137272071142927e+01 2.5457965969830195e+01 0 1 0 0 0 0 +P 324 111 7.6480365263055428e-01 5.6549345963268216e-01 5.5303297068260200e+00 5.6131518549355803e+00 1.3497999999999999e-01 2 0 0 -159 0 +V -83 0 0 0 0 0 0 2 0 +P 325 -211 3.8588647504390106e+00 1.3164304993742422e+00 2.6975321409456164e+01 2.7282068677983851e+01 1.3957000000000000e-01 1 0 0 0 0 +P 326 111 1.3814159463609341e-01 1.5224944402949425e-01 1.3575896401481926e+00 1.3796855528755789e+00 1.3497999999999999e-01 2 0 0 -160 0 +V -84 0 0 0 0 0 0 2 0 +P 327 211 4.4402643587743125e+00 1.2312481262739294e+00 2.3969983537631109e+01 2.4409250502697965e+01 1.3957000000000000e-01 1 0 0 0 0 +P 328 -211 4.9177559628960754e+00 1.9209371235558570e+00 3.0908055846156746e+01 3.1356047568488268e+01 1.3957000000000000e-01 1 0 0 0 0 +V -85 0 0 0 0 0 0 2 0 +P 329 22 2.3023456618513665e+00 4.3664135995883580e-01 1.3453062152332874e+01 1.3655633727454896e+01 0 1 0 0 0 0 +P 330 22 5.8319108406716824e-01 2.5998213749120752e-01 2.4833213834801269e+00 2.5640958730124712e+00 0 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 331 -321 3.8129236036372465e+00 2.3916504287804465e+00 9.7796113830415905e+00 1.0776957731381170e+01 4.9359999999999998e-01 1 0 0 0 0 +P 332 211 4.3871570358615983e+00 3.0086902262651471e+00 1.2397932613841485e+01 1.3491759581951781e+01 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 333 3122 1.1609162906290964e+00 -1.4066122912385346e-02 3.5008612023205194e+00 3.8534005125310915e+00 1.1156800000000000e+00 2 0 0 -161 0 +P 334 111 -4.0838506149200336e-02 5.5177303624111697e-02 2.2512846801554973e-01 2.7132037507484408e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -88 0 1.0975634495181953e+02 1.3430806656920803e+01 2.4783845861744948e+02 3.5131081000941208e+02 0 2 0 +P 335 -2212 4.3598416274050478e-01 5.6969389177054186e-02 1.1732545494018880e+00 1.5653129182549963e+00 9.3827000000000005e-01 1 0 0 0 0 +P 336 211 1.1291406118563700e-01 1.0198900028598853e-02 6.6200807966546288e-02 1.9161402519296616e-01 1.3957000000000000e-01 1 0 0 0 0 +V -89 0 0 0 0 0 0 2 0 +P 337 211 2.1870704015585739e-02 -4.7659285060522572e-01 4.7808091053954144e-01 6.8968124149092913e-01 1.3957000000000000e-01 1 0 0 0 0 +P 338 111 -2.6692130361395883e-01 2.8247638498948274e-01 1.3711111945500606e-02 4.1163999488689595e-01 1.3497999999999999e-01 2 0 0 -163 0 +V -90 0 8.5034176885997429e-06 -6.7497812436783921e-06 -9.5502217000439534e-06 1.7926682700109905e-05 0 2 0 +P 339 22 1.8935384391547218e-02 -1.1026659860805992e-02 2.9922270718085193e-02 3.7087441198712261e-02 0 1 0 0 0 0 +P 340 22 8.9379809260152335e-02 -7.4950989278527919e-02 -1.5157148880174542e-01 1.9125981625733321e-01 0 1 0 0 0 0 +V -91 0 -2.6421968631437817e+01 -5.1562678965288278e+01 -3.9896866896154776e+01 1.8744987313214875e+02 0 2 0 +P 341 -2212 -7.3950672556528596e-02 -2.6360618044473205e-01 -2.8746064573095914e-01 1.0187939615468300e+00 9.3827000000000005e-01 1 0 0 0 0 +P 342 211 -9.5710096102158526e-02 -6.7488139943758838e-02 3.1274848257071206e-02 1.8485933182410788e-01 1.3957000000000000e-01 1 0 0 0 0 +V -92 0 0 0 0 0 0 2 0 +P 343 -311 1.1140884226725156e+00 1.6365689466410080e-01 -1.4262615386176185e+00 1.8841109304241952e+00 4.9767000000000000e-01 2 0 0 -164 0 +P 344 -211 7.3708063476785890e-01 -8.6107444359986976e-02 -3.5085329035071899e-01 8.3263447584995176e-01 1.3957000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 345 22 -5.7123332739010456e-02 -3.3479252640843915e-01 -2.7213051787595932e-01 4.3520584743497520e-01 0 1 0 0 0 0 +P 346 22 1.7083633293661915e-01 -6.5795912271685339e-02 -9.4736965871340673e-01 9.6489555132856297e-01 0 1 0 0 0 0 +V -94 0 0 0 0 0 0 2 0 +P 347 -3212 1.9971148756783932e+00 8.2087761602473608e-02 -2.6812799831652443e+00 3.5505836249669493e+00 1.1925500000000000e+00 2 0 0 -165 0 +P 348 211 4.2728076719684455e-01 5.6535142741856115e-02 -7.9829192528761195e-01 9.1788608185360798e-01 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 349 211 6.1625006614860123e-01 3.3726744154614779e-01 -3.8762194687017835e+00 3.9418359460533079e+00 1.3957000000000000e-01 1 0 0 0 0 +P 350 -211 5.2672204566684544e-01 1.6666969663619966e+00 -1.4316452561049747e+01 1.4423439555416719e+01 1.3957000000000000e-01 1 0 0 0 0 +V -96 0 0 0 0 0 0 2 0 +P 351 211 -2.6966608895498762e-01 -6.5970053751465196e-02 -3.2902343026367840e+00 3.3048741880247143e+00 1.3957000000000000e-01 1 0 0 0 0 +P 352 -211 -1.0983855673091272e-01 7.6080732621216451e-01 -8.1057023413813170e+00 8.1432660848174052e+00 1.3957000000000000e-01 1 0 0 0 0 +V -97 0 0 0 0 0 0 3 0 +P 353 -211 -9.5798582554692188e-02 6.9395665012517205e-02 -2.6561900193963992e+00 2.6624834892977387e+00 1.3957000000000000e-01 1 0 0 0 0 +P 354 211 -1.0201638753756302e-01 7.8384892820417440e-02 -1.4266697985266141e+00 1.4392421733942666e+00 1.3957000000000000e-01 1 0 0 0 0 +P 355 111 -2.2760644876592431e-01 4.5203798359883485e-01 -5.3624791339187565e+00 5.3880001017306958e+00 1.3497999999999999e-01 2 0 0 -166 0 +V -98 0 -3.9923320403745477e-04 -4.9026487318803503e-04 -9.7674999660659484e-03 9.7893532142676720e-03 0 2 0 +P 356 22 -1.4843256441632337e-02 -9.8178167278801382e-02 -1.6499349459668522e+00 1.6529200224798102e+00 0 1 0 0 0 0 +P 357 22 -3.0932795275517122e-01 -2.9990935440231759e-01 -6.2811245020150359e+00 6.2958839262670150e+00 0 1 0 0 0 0 +V -99 0 -1.7845130097297728e-05 5.4156996543876026e-05 -2.9274128312893144e-04 2.9828158131490031e-04 0 2 0 +P 358 22 -4.1125557872182977e-01 1.3713585033970590e+00 -7.2366302516774024e+00 7.3768945156726886e+00 0 1 0 0 0 0 +P 359 22 -9.0848161860804577e-02 1.5244269026970386e-01 -1.0001543769902554e+00 1.0157760285333168e+00 0 1 0 0 0 0 +V -100 0 -1.7464889567159729e-05 -3.8099967344991282e-05 -1.1304546572434142e-04 1.2060964609259914e-04 0 2 0 +P 360 22 -3.0645574781966489e-01 -8.1589910932750886e-01 -2.2644604052437702e+00 2.4263939104955554e+00 0 1 0 0 0 0 +P 361 22 -4.1156227503042225e-01 -7.5046998327434278e-01 -2.3830743804433507e+00 2.5321201007751331e+00 0 1 0 0 0 0 +V -101 0 0 0 0 0 0 2 0 +P 362 211 -3.5384588913819282e-01 -2.4715825133371802e-01 -4.6086448568373415e+00 4.6309158182605330e+00 1.3957000000000000e-01 1 0 0 0 0 +P 363 111 -5.2369471399431522e-01 3.5402828098625916e-01 -3.1635543138635680e+00 3.2289143182141680e+00 1.3497999999999999e-01 2 0 0 -167 0 +V -102 0 0 0 0 0 0 2 0 +P 364 -211 -1.7431049169384474e+00 -1.7742747005688735e+00 -7.4560336745052949e+00 7.8611947822701023e+00 1.3957000000000000e-01 1 0 0 0 0 +P 365 111 -1.7623650520795352e-02 -4.0860185430857604e-01 -2.4765470325309402e+00 2.5137165459016839e+00 1.3497999999999999e-01 2 0 0 -168 0 +V -103 0 3.7599471820826971e-07 -9.2097511557332473e-07 -5.4706653600331399e-07 1.4096710382080819e-06 0 2 0 +P 366 22 -9.0039096884929875e-03 -2.1160661174125472e-02 3.1671981710379361e-02 3.9140240117649924e-02 0 1 0 0 0 0 +P 367 22 6.9736646900344174e-02 -1.2760031062704383e-01 -1.2003718089938287e-01 1.8855758799712244e-01 0 1 0 0 0 0 +V -104 0 -3.8731844410967580e+02 -6.0808637297836094e+02 -2.1351637808991841e+03 2.3238351683362093e+03 0 2 0 +P 368 3122 -8.6514155217381961e-01 -1.3957847305443358e+00 -4.6801671989749298e+00 5.0838363262480524e+00 1.1156800000000000e+00 2 0 0 -169 0 +P 369 111 -3.3051734332077809e-02 -1.4370417322118634e-02 -2.7128761233052251e-01 3.0514831646326673e-01 1.3497999999999999e-01 2 0 0 -170 0 +V -105 0 0 0 0 0 0 1 0 +P 370 130 -9.8211331445284256e-01 -7.9298343389061809e-01 -1.4504485608208735e+00 1.9861635746679696e+00 4.9767000000000000e-01 1 0 0 0 0 +V -106 0 0 0 0 0 0 2 0 +P 371 -3122 -1.6814953787803824e+00 -7.7260118861255445e-01 -3.6931903303234876e+00 4.2788708772175195e+00 1.1156800000000000e+00 2 0 0 -171 0 +P 372 22 -6.0636364410652108e-02 -4.9613725855513595e-02 -3.9809263716227318e-02 8.7880987476447889e-02 0 1 0 0 0 0 +V -107 0 0 0 0 0 0 1 0 +P 373 130 -9.4646039874614889e+00 -5.6457554838761190e+00 -1.0111196049899565e+01 1.4964532889856393e+01 4.9767000000000000e-01 1 0 0 0 0 +V -108 0 6.1241494302732311e-06 -3.8272133129143903e-06 -2.2451785965620250e-05 2.4473350815725669e-05 0 2 0 +P 374 22 9.7949275500252477e-03 -8.2164757971790112e-02 -1.6085439852995365e-01 1.8088981614426572e-01 0 1 0 0 0 0 +P 375 22 1.1669422088618255e-01 3.1168904522249487e-03 -3.0286833064202273e-01 3.2458663234983964e-01 0 1 0 0 0 0 +V -109 0 0 0 0 0 0 2 0 +P 376 321 -3.1631630540514204e-02 -2.4636611909620174e-01 6.0355908816096149e-01 8.1830395183627624e-01 4.9359999999999998e-01 1 0 0 0 0 +P 377 -211 -3.1119569790222151e-01 -9.0643724178569043e-02 -1.6873807237875477e-01 3.9116667687305512e-01 1.3957000000000000e-01 1 0 0 0 0 +V -110 0 0 0 0 0 0 2 0 +P 378 -321 -5.0002061820812771e-01 -6.6876333827903711e-01 9.9856599175467453e-01 1.3921350585156445e+00 4.9359999999999998e-01 1 0 0 0 0 +P 379 211 -7.8076367030763885e-02 7.0110717268449307e-02 2.5930781099697733e-02 1.7653221256490112e-01 1.3957000000000000e-01 1 0 0 0 0 +V -111 0 5.7242773048955394e-05 -3.2717478414302510e-05 -1.9059924373192351e-05 6.8693927850502852e-05 0 2 0 +P 380 22 1.7977262661769522e+00 -9.7971204743102736e-01 -6.4165230874684842e-01 2.1455472750103133e+00 0 1 0 0 0 0 +P 381 22 8.6717598533476581e-01 -5.4343012835935178e-01 -2.4567080071055178e-01 1.0524564771389584e+00 0 1 0 0 0 0 +V -112 0 5.6566919601848354e-03 -2.2814444155476094e-03 -4.8106729505785935e-03 1.0328232916324018e-02 0 1 0 +P 382 130 9.8128386922335242e-01 -7.1757193254617169e-01 -6.8412429949797804e-01 1.4810567161454691e+00 4.9767000000000000e-01 1 0 0 0 0 +V -113 0 5.6927899618635560e-03 -2.2689588659554980e-03 -4.7858260335337677e-03 1.0383266193923678e-02 0 2 0 +P 383 22 1.0727648575389558e-01 4.4401346708756603e-02 -4.6291163569520894e-03 1.1619446072641836e-01 0 1 0 0 0 0 +P 384 22 5.0614414143909950e-02 1.0209838651658623e-02 1.1330832045279429e-01 1.2451841312937319e-01 0 1 0 0 0 0 +V -114 0 5.6566919601848354e-03 -2.2814444155476094e-03 -4.8106729505785935e-03 1.0328232916324018e-02 0 2 0 +P 385 -2212 7.7903213016385631e-01 -1.3109001191938108e-01 -1.0369975033227592e+00 1.6061724894451079e+00 9.3827000000000005e-01 1 0 0 0 0 +P 386 111 -1.9254000030087138e-02 2.8169300845293684e-02 -2.5015083906664392e-03 1.3924828175420992e-01 1.3497999999999999e-01 2 0 0 -172 0 +V -115 0 -2.5371547209646385e-02 3.0636389190498072e-02 -2.1297633314969514e-01 2.2372333057617133e-01 0 3 0 +P 387 -11 -2.7872666759670595e-01 4.0869513283640058e-01 -7.5930543668767891e-01 9.0623687472823267e-01 5.1000000000000004e-04 1 0 0 0 0 +P 388 12 2.1061848626626939e-01 -1.0932717228124468e-01 -5.7973006096139035e-01 6.2641800815302651e-01 0 1 0 0 0 0 +P 389 333 -8.2733678267311739e-01 7.8189051332515147e-01 -6.1775965545865690e+00 6.3632738927342753e+00 1.0162266065804424e+00 2 0 0 -173 0 +V -116 0 -1.6652958063643953e+02 5.6426826413973046e+01 -1.9523816787611872e+02 2.7438756299624157e+02 0 2 0 +P 390 111 -5.5063191197028871e-01 1.7973867556858722e-03 -7.4723439495187260e-01 9.3796459127106524e-01 1.3497999999999999e-01 2 0 0 -174 0 +P 391 111 -4.9730802910561589e-01 3.5328622614581767e-01 -4.8136339144703161e-01 7.8870574260788417e-01 1.3497999999999999e-01 2 0 0 -175 0 +V -117 0 0 0 0 0 0 1 0 +P 392 130 -6.3303113772774122e-01 -2.0717802444266725e-01 -3.2448067298090227e-01 8.9253251547659829e-01 4.9767000000000000e-01 1 0 0 0 0 +V -118 0 0 0 0 0 0 1 0 +P 393 310 2.9210454944064679e-01 -1.6108553023224306e-01 -1.5223884321452796e-01 6.1816317436209656e-01 4.9767000000000000e-01 2 0 0 -176 0 +V -119 0 3.0128146157781292e-05 4.5650829848109356e-05 -8.2262982954840020e-05 1.0199714816937651e-04 0 2 0 +P 394 22 1.7327331324276590e-01 2.5107595073573147e-01 -4.1746127939969052e-01 5.1704612358860558e-01 0 1 0 0 0 0 +P 395 22 -1.3087207843465083e-02 -8.3584398965809228e-03 -1.9916672401752208e-02 2.5254947360894051e-02 0 1 0 0 0 0 +V -120 0 1.0816420442246132e-06 -4.7912803730757445e-07 2.5833759896941966e-06 4.2591319597499850e-06 0 2 0 +P 396 22 -3.7013800308679519e-02 2.0425699872580520e-02 6.6978992311673077e-02 7.9204899088772901e-02 0 1 0 0 0 0 +P 397 22 8.3029492775547220e-02 -4.0808975961671698e-02 4.2924127396728746e-02 1.0198896951325444e-01 0 1 0 0 0 0 +V -121 0 -8.0635541185482363e-05 -2.2608318341409421e-05 -3.1491674433623302e-05 1.0955722356805153e-04 0 2 0 +P 398 22 6.1605732605138725e-03 2.0252052130026385e-02 1.4978030975011219e-02 2.5931442116933264e-02 0 1 0 0 0 0 +P 399 22 -1.7830128657396835e-01 -6.8516278907592251e-02 -8.2206441930538970e-02 2.0795126439662356e-01 0 1 0 0 0 0 +V -122 0 -1.1689491264961073e-04 1.7057855214648910e-04 -1.2900229175160562e-03 1.3074393023033567e-03 0 2 0 +P 400 22 -1.0971836549544467e-01 2.1286683469193721e-01 -1.1299214575560315e+00 1.1550207397637076e+00 0 1 0 0 0 0 +P 401 22 -2.0731679393122815e-01 2.4976577479240111e-01 -2.3687989918503392e+00 2.3909353523453438e+00 0 1 0 0 0 0 +V -123 0 8.7532349491237973e+00 -3.6541006746257270e+00 -6.7563654454282670e+01 7.0038781826892503e+01 0 2 0 +P 402 -211 1.3178166664474288e-02 1.0972312838034502e-01 -3.9607722339418833e-01 4.3424622136508695e-01 1.3957000000000000e-01 1 0 0 0 0 +P 403 211 2.6199693228118459e-01 -2.2459694595086344e-01 -1.7279186944177274e+00 1.7675601772141933e+00 1.3957000000000000e-01 1 0 0 0 0 +V -124 0 -5.1006948095061883e-05 -3.3256564039807341e-05 -3.3133018453473608e-04 3.3729432500588654e-04 0 2 0 +P 404 22 -1.2481427652994612e-01 -4.0398131487697303e-02 -9.9515989211106448e-01 1.0037698060411546e+00 0 1 0 0 0 0 +P 405 22 -2.8659220894343101e-01 -2.2783917032142667e-01 -1.6772483158185125e+00 1.7167433397790914e+00 0 1 0 0 0 0 +V -125 0 -6.6771289255523520e-05 -7.7465041537621302e-05 -2.2164109883733708e-03 2.2191539074048012e-03 0 2 0 +P 406 22 -1.9030878728761155e-01 -1.4045162333880731e-01 -5.5124814429757212e+00 5.5175534208713453e+00 0 1 0 0 0 0 +P 407 22 -2.7824715291029679e-02 -1.1261703875241377e-01 -1.7282577645224619e+00 1.7321465621680421e+00 0 1 0 0 0 0 +V -126 0 0 0 0 0 0 1 0 +P 408 130 -3.9600823279035513e-01 8.5430585125442424e-02 -3.6195759503890365e+01 3.6201447517988591e+01 4.9767000000000000e-01 1 0 0 0 0 +V -127 0 2.2759620483605243e-07 5.5189954518948540e-07 -3.4507586304512335e-04 3.4507688290684615e-04 0 2 0 +P 409 22 3.0856412353213424e-02 5.9777091246928050e-03 -3.6768297434222319e+00 3.6769640756069517e+00 0 1 0 0 0 0 +P 410 22 2.1260360401738412e-02 1.2040059846141607e-01 -7.5341361049769660e+01 7.5341460253560143e+01 0 1 0 0 0 0 +V -128 0 -1.4546449214941991e-06 -3.9621554061126310e-05 -2.1290916324375901e-02 2.1290986408404031e-02 0 2 0 +P 411 22 3.8619005530965513e-02 5.6053830183775341e-03 -2.1420869175201346e+01 2.1420904721066243e+01 0 1 0 0 0 0 +P 412 22 -4.3843673255012677e-02 -1.4791465150096908e-01 -5.5050001270001772e+01 5.5050217445883071e+01 0 1 0 0 0 0 +V -129 0 0 0 0 0 0 2 0 +P 413 22 4.4122106100820724e-01 -2.1533581732208446e-01 -2.0951066441389207e+02 2.0951123967150164e+02 0 1 0 0 0 0 +P 414 22 -1.3003727210228663e-01 7.9025968672578689e-02 -7.4810369626294275e+01 7.4810524382727280e+01 0 1 0 0 0 0 +V -130 0 0 0 0 0 0 1 0 +P 415 130 -5.5517974597127173e-01 -1.4786398120312963e-01 -3.9774196700709734e+02 3.9774269331115448e+02 4.9767000000000000e-01 1 0 0 0 0 +V -131 0 3.1162561148663985e-05 4.9134168233791584e-05 -1.0535794464319381e-01 1.0535797716562684e-01 0 2 0 +P 416 22 -1.0407303676525636e-02 3.1435820824456277e-02 -1.4769705612958035e+02 1.4769705984164750e+02 0 1 0 0 0 0 +P 417 22 8.1837259871931953e-02 8.1188153434088417e-02 -9.3801495122328660e+01 9.3801565957278186e+01 0 1 0 0 0 0 +V -132 0 2.6061695549965017e-06 1.5981198106929131e-05 -6.0874205016532332e-02 6.0874208074558754e-02 0 2 0 +P 418 22 6.6075216703169640e-02 6.9070271124056309e-02 -2.0477358048603864e+02 2.0477360279515705e+02 0 1 0 0 0 0 +P 419 22 -3.2552372563759389e-02 1.3649394946647336e-01 -5.7824396454182443e+02 5.7824398156773043e+02 0 1 0 0 0 0 +V -133 0 6.6869850793435513e-05 -1.3905508888006766e-04 -1.2830841169050197e-01 1.2830854774519626e-01 0 2 0 +P 420 22 4.6019185382323302e-02 9.8218810952675831e-03 -2.9691019717235697e+01 2.9691057005166559e+01 0 1 0 0 0 0 +P 421 22 3.9629365422943770e-02 -1.8792706158184605e-01 -1.3464955211032841e+02 1.3464968908459880e+02 0 1 0 0 0 0 +V -134 0 9.0991403364029891e-05 2.9676020800185506e-05 -5.3298798475057925e-02 5.3298891243089092e-02 0 2 0 +P 422 22 3.9077415047769848e-02 4.8750449525309471e-02 -5.1996999227038948e+01 5.1997036764294414e+01 0 1 0 0 0 0 +P 423 22 4.1588831353803374e-01 9.9632495738959437e-02 -2.1450209612089199e+02 2.1450252243267425e+02 0 1 0 0 0 0 +V -135 0 -1.2095638437121250e-05 2.0165006173806986e-06 -9.0242854606434981e-04 9.0251793601480227e-04 0 2 0 +P 424 22 -3.5447452752054448e-01 9.8399755132051580e-03 -2.8089725048300163e+01 2.8091963304562395e+01 0 1 0 0 0 0 +P 425 22 -1.3839157224524873e-01 7.2327228775374577e-02 -8.6819129374255386e+00 8.6833170913152617e+00 0 1 0 0 0 0 +V -136 0 1.0813245780814463e-05 -4.3074327093877904e-05 -3.8442965634151380e-03 3.8445789078611868e-03 0 2 0 +P 426 22 1.0313626454632320e-01 -3.8557612802981556e-01 -3.0050256643978344e+01 3.0052907187301116e+01 0 1 0 0 0 0 +P 427 22 4.3748804964200425e-04 -2.7007640811787147e-02 -6.7720101606043936e+00 6.7720640294807559e+00 0 1 0 0 0 0 +V -137 0 0 0 0 0 0 1 0 +P 428 130 -1.6443516368771718e-01 3.8717781180786159e-01 -4.8340509295770076e+01 4.8344901075339337e+01 4.9767000000000000e-01 1 0 0 0 0 +V -138 0 1.2358140420271945e-05 -7.3429431327083619e-05 -1.0889863399267724e-02 1.0890154231100478e-02 0 2 0 +P 429 22 5.4301957071902614e-02 -2.3699319567331695e-01 -2.5848595506596457e+01 2.5849738956921321e+01 0 1 0 0 0 0 +P 430 22 5.0570583812301105e-03 -1.1570539817897650e-01 -2.6457944783177410e+01 2.6458198265616499e+01 0 1 0 0 0 0 +V -139 0 1.8563265975374583e-05 -3.5135000552321780e-05 -1.2096910332893111e-03 1.2104320012685755e-03 0 2 0 +P 431 22 -2.0573197242309865e-02 -6.4597219190626887e-02 -2.0488562601975113e+00 2.0499775686876340e+00 0 1 0 0 0 0 +P 432 22 1.9178902818280380e-01 -2.5946581598005236e-01 -9.1085691476294492e+00 9.1142820593912131e+00 0 1 0 0 0 0 +V -140 0 7.3023607112404456e-06 1.9611482138964182e-05 -6.0099696424263584e-04 6.0141321235147990e-04 0 2 0 +P 433 22 8.5228359671132362e-03 2.1369962414334492e-01 -5.5669311705913973e+00 5.5710378589805023e+00 0 1 0 0 0 0 +P 434 22 1.1608995226234577e-01 1.2096495451637290e-01 -4.6889176423048236e+00 4.6919141140428886e+00 0 1 0 0 0 0 +V -141 0 -2.3365100375587745e-05 4.9869075372593264e-05 -8.8228795860378044e-05 1.0630348258864234e-04 0 2 0 +P 435 22 -2.1041114039385373e-02 1.8088591190867334e-01 -2.1317543175488898e-01 2.8036798374802724e-01 0 1 0 0 0 0 +P 436 22 -1.2242449936314574e-01 1.2531852860900106e-01 -3.2856409062700143e-01 3.7235312984664198e-01 0 1 0 0 0 0 +V -142 0 4.2726307465371662e-06 1.1163606978137926e-05 -1.4095465823616622e-05 2.0263397090077968e-05 0 2 0 +P 437 22 1.0186902240864532e-01 1.7539794796065869e-01 -2.0495815398301412e-01 2.8835669362688277e-01 0 1 0 0 0 0 +P 438 22 -3.2461054705402004e-02 5.9524468091877421e-03 -2.4019657273122230e-02 4.0817834718681036e-02 0 1 0 0 0 0 +V -143 0 4.2281042290289621e-05 -5.5710648715487775e-05 8.3547170307156796e-05 1.1379454074695370e-04 0 2 0 +P 439 22 -2.2282498559312240e-02 -1.7643232610581851e-02 4.1478065186052578e-02 5.0281440816421281e-02 0 1 0 0 0 0 +P 440 22 1.9612868801801220e-01 -2.1142122433834418e-01 3.0204130924743805e-01 4.1760549428413618e-01 0 1 0 0 0 0 +V -144 0 0 0 0 0 0 2 0 +P 441 211 1.7357088956032946e-01 -1.8008964314199971e-01 3.5114064368815236e-02 2.8856873650185011e-01 1.3957000000000000e-01 1 0 0 0 0 +P 442 111 2.6635305935910647e-01 4.0889525284211697e-01 1.0011697241444379e+00 1.1219178655187840e+00 1.3497999999999999e-01 2 0 0 -177 0 +V -145 0 0 0 0 0 0 1 0 +P 443 310 8.9352434965555338e-01 -6.9110102864767708e-01 1.3634045967932928e+00 1.8391720742449138e+00 4.9767000000000000e-01 2 0 0 -178 0 +V -146 0 5.7833814820138906e-04 -3.4611928637845181e-04 8.2924403938539407e-04 1.0702785821667389e-03 0 2 0 +P 444 22 2.6959401219222473e-01 -1.8065595805513682e-01 4.8652922632802997e-01 5.8483176611917398e-01 0 1 0 0 0 0 +P 445 22 1.0356516178300175e+00 -6.0049722614494039e-01 1.3849834207209339e+00 1.8306693496624562e+00 0 1 0 0 0 0 +V -147 0 5.5018284876725698e-05 -8.8791662444546657e-05 2.2557345462255435e-04 2.4868003057175941e-04 0 2 0 +P 446 22 9.0519481106229416e-01 -1.5401715592524401e+00 3.8907227545652390e+00 4.2812649568551482e+00 0 1 0 0 0 0 +P 447 22 1.7343572995639095e-01 -2.0058424793239438e-01 5.3163279403360253e-01 5.9409378101111721e-01 0 1 0 0 0 0 +V -148 0 0 0 0 0 0 1 0 +P 448 130 2.5175435783133765e-01 2.1313109775713732e-01 6.3817070071050166e+00 6.4095760292667956e+00 4.9767000000000000e-01 1 0 0 0 0 +V -149 0 1.8668185865974611e-05 -1.9953127561604650e-04 3.6095810720876997e-03 3.6162925529423487e-03 0 2 0 +P 449 22 7.2766800981078810e-03 2.7433684711522560e-03 8.3729214991090684e-01 8.3732826325536569e-01 0 1 0 0 0 0 +P 450 22 2.0323798811088076e-02 -2.9774572188157267e-01 4.4993895698041380e+00 4.5092762249122815e+00 0 1 0 0 0 0 +V -150 0 1.3696078707448002e+01 2.3219792114969632e+01 1.0138959939920347e+03 1.0146297844541476e+03 0 2 0 +P 451 111 7.0206635722018476e-02 6.5462957243239944e-02 1.1020395065887524e+01 1.1021639686503478e+01 1.3497999999999999e-01 2 0 0 -179 0 +P 452 111 1.7675263292019575e-01 3.5322205481198321e-01 7.2615539871198669e+00 7.2735406248611998e+00 1.3497999999999999e-01 2 0 0 -180 0 +V -151 0 1.5467461870827629e+01 2.8473818347520936e+01 1.2197659912945378e+03 1.2204776624690801e+03 0 2 0 +P 453 211 -5.2601173246719701e-02 3.3039934938404780e-01 1.0273766610755112e+01 1.0280160055693049e+01 1.3957000000000000e-01 1 0 0 0 0 +P 454 -211 3.4636119397885656e-01 2.1037906261040085e-01 1.2892185623906263e+01 1.2899308329241325e+01 1.3957000000000000e-01 1 0 0 0 0 +V -152 0 -8.6330281890986453e-06 4.3353801666958921e-05 2.6399016004587045e-03 2.6403199142388894e-03 0 2 0 +P 455 22 2.6083272253419752e-02 1.5952465080702885e-01 7.3460499969475057e+00 7.3478281831408516e+00 0 1 0 0 0 0 +P 456 22 -9.9098119570552284e-02 2.0714520593309504e-01 1.4981227068259312e+01 1.4982986819869694e+01 0 1 0 0 0 0 +V -153 0 -1.3713360241077502e-05 5.6557830140187285e-05 2.7122273887907147e-03 2.7129854433572071e-03 0 2 0 +P 457 22 -3.2139365825025600e-02 1.3537777065909119e-02 3.3379524226511128e+00 3.3381345967659777e+00 0 1 0 0 0 0 +P 458 22 -3.6569994921477583e-02 2.6983933006361521e-01 1.0251379936951878e+01 1.0254995916153122e+01 0 1 0 0 0 0 +V -154 0 -1.8577981731263623e-05 1.1734979962630551e-07 2.5054428130927703e-03 2.5058814429780593e-03 0 2 0 +P 459 22 -3.2575852346062410e-02 6.3591920058035073e-02 5.2340628634658524e+00 5.2345505229355744e+00 0 1 0 0 0 0 +P 460 22 -2.5679357125610595e-02 -6.3223944824902775e-02 2.6222854744377790e+00 2.6231732321806303e+00 0 1 0 0 0 0 +V -155 0 -5.1794463602787913e-05 -1.5356000780595467e-05 1.3323891047857367e-03 1.3337197303021943e-03 0 2 0 +P 461 22 -2.4156328517547213e-01 -1.1451197786655225e-01 6.4209768595352923e+00 6.4265394766162753e+00 0 1 0 0 0 0 +P 462 22 -3.7168364320045832e-02 3.1873735678067699e-02 7.4926851253561166e-01 7.5086665008484121e-01 0 1 0 0 0 0 +V -156 0 7.5943080969019332e-05 9.5776177456424032e-06 5.3870611541554550e-02 5.3870683708631448e-02 0 2 0 +P 463 22 -1.5680821504989124e-02 -5.4140422597006924e-03 1.8017934436852070e+01 1.8017942073686338e+01 0 1 0 0 0 0 +P 464 22 2.4984841316886486e-01 3.4946261031404309e-02 1.4809004018287865e+02 1.4809025507047161e+02 0 1 0 0 0 0 +V -157 0 0 0 0 0 0 1 0 +P 465 130 -3.5596336877401362e+00 8.8923992828974985e-01 8.7633501659252779e+00 9.5134494900893749e+00 4.9767000000000000e-01 1 0 0 0 0 +V -158 0 1.3287239623354180e-04 2.2226177773322776e-05 6.7250652793784471e-04 6.8599098340012060e-04 0 2 0 +P 466 22 1.1106353772405320e+00 1.4436855076860167e-01 5.3887210357718693e+00 5.5038775078120601e+00 0 1 0 0 0 0 +P 467 22 2.6686104938252070e-01 8.6051621728536865e-02 1.5831961221517605e+00 1.6078338416876363e+00 0 1 0 0 0 0 +V -159 0 5.7037006887288153e-05 4.2172986806283377e-05 4.1243716932087290e-04 4.1861382317954235e-04 0 2 0 +P 468 22 3.2331850119604405e-01 1.6744575558836336e-01 2.2859616585715821e+00 2.3147772330700751e+00 0 1 0 0 0 0 +P 469 22 4.4148515143451034e-01 3.9804770404431883e-01 3.2443680482544379e+00 3.2983746218655052e+00 0 1 0 0 0 0 +V -160 0 1.1983470401006283e-05 1.3207294377217294e-05 1.1776782592010122e-04 1.1968459629508770e-04 0 2 0 +P 470 22 -2.4301340066221078e-02 4.3907283769436582e-02 2.4401938288657385e-01 2.4912620079262698e-01 0 1 0 0 0 0 +P 471 22 1.6244293470231447e-01 1.0834216026005766e-01 1.1135702572616186e+00 1.1305593520829520e+00 0 1 0 0 0 0 +V -161 0 3.4630075284514206e+01 -4.1959174778499408e-01 1.0443051577069147e+02 1.1494674588296520e+02 0 2 0 +P 472 2212 1.1005933998556439e+00 -6.1749009761674328e-02 3.0746031880408422e+00 3.3983310799307449e+00 9.3827000000000005e-01 1 0 0 0 0 +P 473 -211 6.0322890773452480e-02 4.7682886849288987e-02 4.2625801427967658e-01 4.5506943260034610e-01 1.3957000000000000e-01 1 0 0 0 0 +V -162 0 -4.7357584723182360e-06 6.3985294212991023e-06 2.6106587882268586e-05 3.1463143149236232e-05 0 2 0 +P 474 22 4.3973266892092941e-04 5.6365207826361091e-02 1.6625948052190604e-02 5.8767781707013016e-02 0 1 0 0 0 0 +P 475 22 -4.1278238818121267e-02 -1.1879042022493941e-03 2.0850251996335911e-01 2.1255259336783106e-01 0 1 0 0 0 0 +V -163 0 -5.7563317206079826e-06 6.0917871793002808e-06 2.9568905721680543e-07 8.8772845327675524e-06 0 2 0 +P 476 22 2.1872890559984882e-03 -1.0401663083794799e-02 8.9124295742047579e-03 1.3871201434570646e-02 0 1 0 0 0 0 +P 477 22 -2.6910859266995735e-01 2.9287804807327755e-01 4.7986823712958485e-03 3.9776879345232552e-01 0 1 0 0 0 0 +V -164 0 0 0 0 0 0 1 0 +P 478 130 1.1140884226725156e+00 1.6365689466410080e-01 -1.4262615386176185e+00 1.8841109304241952e+00 4.9767000000000000e-01 1 0 0 0 0 +V -165 0 0 0 0 0 0 2 0 +P 479 -3122 2.0131910069921948e+00 6.7764893728527717e-02 -2.6715368988585211e+00 3.5269507192217597e+00 1.1156800000000000e+00 2 0 0 -181 0 +P 480 22 -1.6076131313801340e-02 1.4322867873945886e-02 -9.7430843067236299e-03 2.3632905745189673e-02 0 1 0 0 0 0 +V -166 0 -2.3588379760226790e-05 4.6847721938416594e-05 -5.5574960618648883e-04 5.5839451490441211e-04 0 2 0 +P 481 22 -1.1949049708917285e-01 1.3519180044689011e-01 -2.3681807243708217e+00 2.3750441564493485e+00 0 1 0 0 0 0 +P 482 22 -1.0811595167675146e-01 3.1684618315194474e-01 -2.9942984095479352e+00 3.0129559452813477e+00 0 1 0 0 0 0 +V -167 0 -1.5531878903456809e-04 1.0499866127610461e-04 -9.3825546056534588e-04 9.5764010672608495e-04 0 2 0 +P 483 22 -4.9585461648451970e-02 9.0657133681034840e-02 -5.6380526423615873e-01 5.7319613560678850e-01 0 1 0 0 0 0 +P 484 22 -4.7410925234586326e-01 2.6337114730522432e-01 -2.5997490496274094e+00 2.6557181826073788e+00 0 1 0 0 0 0 +V -168 0 -2.3742914991980702e-06 -5.5047613892291266e-05 -3.3364509581962891e-04 3.3865264289515399e-04 0 2 0 +P 485 22 -5.1346047785156834e-02 -1.6412250976727824e-01 -7.3990671605158653e-01 7.5962791108127992e-01 0 1 0 0 0 0 +P 486 22 3.3722397264361485e-02 -2.4447934454129777e-01 -1.7366403164793534e+00 1.7540886348204032e+00 0 1 0 0 0 0 +V -169 0 -3.9442071647588028e+02 -6.1954489476130664e+02 -2.1735850335635319e+03 2.3655702926791487e+03 0 2 0 +P 487 2112 -8.5269966598634783e-01 -1.2482982212205354e+00 -4.0873634023688021e+00 4.4581023471202919e+00 9.3957000000000002e-01 1 0 0 0 0 +P 488 111 -1.2441886187471768e-02 -1.4748650932380047e-01 -5.9280379660612814e-01 6.2573397912776096e-01 1.3497999999999999e-01 2 0 0 -182 0 +V -170 0 -3.8731845683595071e+02 -6.0808637851156175e+02 -2.1351638853560548e+03 2.3238352858308413e+03 0 2 0 +P 489 22 -2.4294136801933316e-02 3.4539658646784890e-02 -1.6139449553526541e-02 4.5207023063660166e-02 0 1 0 0 0 0 +P 490 22 -8.7575975301444949e-03 -4.8910075968903524e-02 -2.5514816277699598e-01 2.5994129339960659e-01 0 1 0 0 0 0 +V -171 0 -1.0933195237963346e+02 -5.0235045203099851e+01 -2.4013370147750371e+02 2.7821504173616125e+02 0 2 0 +P 491 -2112 -1.5658670185772878e+00 -7.6716146142654740e-01 -3.3317517907494221e+00 3.8760595980748569e+00 9.3957000000000002e-01 1 0 0 0 0 +P 492 111 -1.1562836020309447e-01 -5.4397271860069998e-03 -3.6143853957406552e-01 4.0281127914266263e-01 1.3497999999999999e-01 2 0 0 -183 0 +V -172 0 5.6564325317259301e-03 -2.2810648622965798e-03 -4.8107066559107698e-03 1.0330109148124387e-02 0 2 0 +P 493 22 8.3504725860153537e-03 -6.1686271916450621e-03 6.1045606206374968e-02 6.1922115523802154e-02 0 1 0 0 0 0 +P 494 22 -2.7604472616102490e-02 3.4337928036938747e-02 -6.3547114597041404e-02 7.7326166230407709e-02 0 1 0 0 0 0 +V -173 0 -2.5371547209646385e-02 3.0636389190498072e-02 -2.1297633314969514e-01 2.2372333057617133e-01 0 2 0 +P 495 130 -3.8381231838876934e-01 4.9594078006557590e-01 -3.2339673281313233e+00 3.3315895997856435e+00 4.9767000000000000e-01 1 0 0 0 0 +P 496 310 -4.4352446428434805e-01 2.8594973325957562e-01 -2.9436292264552462e+00 3.0316842929486327e+00 4.9767000000000000e-01 2 0 0 -184 0 +V -174 0 -1.6652989478516312e+02 5.6426827439425338e+01 -1.9523859419127828e+02 2.7438809812755659e+02 0 2 0 +P 497 22 -4.9611896691106377e-01 -3.9673980701964699e-02 -6.7175137907101601e-01 8.3603706219129592e-01 0 1 0 0 0 0 +P 498 22 -5.4512945059224993e-02 4.1471367457650572e-02 -7.5483015880856680e-02 1.0192752907976933e-01 0 1 0 0 0 0 +V -175 0 -1.6653019204785372e+02 5.6427260758923254e+01 -1.9523875968452452e+02 2.7438853266426469e+02 0 2 0 +P 499 22 -3.5393953143123574e-01 1.7673538127712854e-01 -2.7700993705699223e-01 4.8295247399019869e-01 0 1 0 0 0 0 +P 500 22 -1.4336849767438012e-01 1.7655084486868911e-01 -2.0435345439003930e-01 3.0575326861768554e-01 0 1 0 0 0 0 +V -176 0 1.6356688133589280e+01 -9.0201463342084711e+00 -8.5247671939611500e+00 3.4614668885069442e+01 0 2 0 +P 501 211 4.6978346947700922e-02 -2.6100259924274977e-01 -6.8335267097857338e-02 3.0737406449267235e-01 1.3957000000000000e-01 1 0 0 0 0 +P 502 -211 2.4512620249294581e-01 9.9917069010506745e-02 -8.3903576116670597e-02 3.1078910986942410e-01 1.3957000000000000e-01 1 0 0 0 0 +V -177 0 2.9469706054036896e-04 4.5240790314715406e-04 1.1077093520806618e-03 1.2413069252204430e-03 0 2 0 +P 503 22 3.6126609958871479e-02 1.4057616038319654e-01 2.0926363458958655e-01 2.5467245154677925e-01 0 1 0 0 0 0 +P 504 22 2.3022644940023498e-01 2.6831909245892044e-01 7.9190608955485142e-01 8.6724541397200472e-01 0 1 0 0 0 0 +V -178 0 4.9225703194877646e+01 -3.8073874681758369e+01 7.5112166828078713e+01 1.0132296751172809e+02 0 2 0 +P 505 111 6.6272058382572374e-01 -5.4061401949282739e-01 1.2309991175446522e+00 1.5050051555041968e+00 1.3497999999999999e-01 2 0 0 -185 0 +P 506 111 2.3080376582982970e-01 -1.5048700915484961e-01 1.3240547924864057e-01 3.3416691874071680e-01 1.3497999999999999e-01 2 0 0 -186 0 +V -179 0 1.3696084322539210e+01 2.3219797350663836e+01 1.0138968753976570e+03 1.0146306659593140e+03 0 2 0 +P 507 22 2.8921549282624782e-02 5.7479359671112923e-02 1.8015767429731999e+00 1.8027254626323534e+00 0 1 0 0 0 0 +P 508 22 4.1285086439393701e-02 7.9835975721270214e-03 9.2188183229143235e+00 9.2189142238711259e+00 0 1 0 0 0 0 +V -180 0 1.3696084629698909e+01 2.3219803949982214e+01 1.0138962372967254e+03 1.0146300281604611e+03 0 2 0 +P 509 22 1.6307939697786111e-01 3.2581921906134687e-01 5.6713531296788773e+00 5.6830449034603641e+00 0 1 0 0 0 0 +P 510 22 1.3673235942334631e-02 2.7402835750636373e-02 1.5902008574409892e+00 1.5904957214008373e+00 0 1 0 0 0 0 +V -181 0 8.8043644790361924e+01 2.9635877628943978e+00 -1.1683533502310971e+02 1.5424547161086937e+02 0 2 0 +P 511 -2212 1.7770563282207339e+00 -3.4186617193049003e-02 -2.3164858133551092e+00 3.0668477358421207e+00 9.3827000000000005e-01 1 0 0 0 0 +P 512 211 2.3613467877146080e-01 1.0195151092157670e-01 -3.5505108550341169e-01 4.6010298337963895e-01 1.3957000000000000e-01 1 0 0 0 0 +V -182 0 -3.9442072465575706e+02 -6.1954499172582257e+02 -2.1735854233004197e+03 2.3655707040658758e+03 0 2 0 +P 513 22 4.0197117264212073e-02 -1.3040481351109726e-01 -3.2880641676034111e-01 3.5599843163417444e-01 0 1 0 0 0 0 +P 514 22 -5.2639003451683840e-02 -1.7081695812703201e-02 -2.6399737984578697e-01 2.6973554749358647e-01 0 1 0 0 0 0 +V -183 0 -1.0933195723816462e+02 -5.0235045431669072e+01 -2.4013371666461182e+02 2.7821505866169014e+02 0 2 0 +P 515 22 -1.2710329868660584e-02 -1.5687834458189054e-02 6.0244861742229771e-03 2.1070241313784526e-02 0 1 0 0 0 0 +P 516 22 -1.0291803033443389e-01 1.0248107272182054e-02 -3.6746302574828849e-01 3.8174103782887814e-01 0 1 0 0 0 0 +V -184 0 -4.0011104427493628e+01 2.5810295848911871e+01 -2.6559444100062234e+02 2.7354374979360034e+02 0 2 0 +P 517 211 -1.1916503545197171e-01 1.2306843499863213e-01 -1.9838673343442541e+00 1.9961351483668279e+00 1.3957000000000000e-01 1 0 0 0 0 +P 518 -211 -3.2435942883237623e-01 1.6288129826094347e-01 -9.5976189211099172e-01 1.0355491445818044e+00 1.3957000000000000e-01 1 0 0 0 0 +V -185 0 4.9226282621175962e+01 -3.8074347348501760e+01 7.5113243108609780e+01 1.0132428335974532e+02 0 2 0 +P 519 22 4.4143146561474261e-01 -4.2964177430910294e-01 8.2724985573673759e-01 1.0314049238212444e+00 0 1 0 0 0 0 +P 520 22 2.2128911821098113e-01 -1.1097224518372439e-01 4.0374926180791465e-01 4.7360023168295245e-01 0 1 0 0 0 0 +V -186 0 4.9225767848899054e+01 -3.8073916837007772e+01 7.5112203918230421e+01 1.0132306112040489e+02 0 2 0 +P 521 22 4.9356772561742791e-02 -1.0513068125950643e-01 7.6076014406641593e-02 1.3883843526847706e-01 0 1 0 0 0 0 +P 522 22 1.8144699326808689e-01 -4.5356327895343163e-02 5.6329464841998966e-02 1.9532848347223983e-01 0 1 0 0 0 0 +BlockType GenEvent +E 9 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 115 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 -2 -1.3063956680622808e+00 1.2879304852865372e+00 5.1893828474231309e+00 5.5041010995066388e+00 0 3 0 0 -3 0 +P 14 2224 6.2629672068355446e-01 -5.5829354058455705e-01 1.9862339814540292e+03 1.9862345051592931e+03 1.1732277688871249e+00 2 0 0 -9 0 +P 20 1 6.8009894737872634e-01 -7.2963694470198015e-01 2.2511960482291925e+03 2.2511962933887798e+03 3.3000000000000002e-01 2 0 0 -14 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 1 7.0565678882479643e-01 -1.5984513018320162e-01 -1.0981823600478867e+03 1.0981825983971498e+03 0 3 0 0 -4 0 +P 28 2203 -7.0565678882479643e-01 1.5984513018320162e-01 -4.3114475678564886e+03 4.3114476975637281e+03 7.7132999999999996e-01 2 0 0 -14 0 +V -3 0 0 0 0 0 0 1 0 +P 5 -2 -1.3063956680622806e+00 1.2879304852865372e+00 5.1893828474231309e+00 5.5041010995066388e+00 0 3 0 0 -5 0 +V -4 0 0 0 0 0 0 1 0 +P 6 1 7.0565678882479621e-01 -1.5984513018320196e-01 -1.0981823600478865e+03 1.0981825983971496e+03 0 3 0 0 -5 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 -2.9723146839427486e+00 2.9479669518244265e+00 2.6457283967879142e+00 4.9522764946033000e+00 0 3 0 0 -6 0 +P 8 -24 2.3715758047052646e+00 -1.8198815967210915e+00 -1.0956387055972511e+03 1.0987344230020528e+03 8.2366393304613624e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 -2.9723146839427486e+00 2.9479669518244265e+00 2.6457283967879142e+00 4.9522764946033284e+00 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 -24 2.3715758047052646e+00 -1.8198815967210915e+00 -1.0956387055972511e+03 1.0987344230020528e+03 8.2366393304613624e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 3 0 +P 11 -12 -5.4134620057879408e+00 2.7818509720381723e+01 -1.5330074559902630e+02 1.5589834397827471e+02 0 1 0 0 0 0 +P 12 11 7.7686205977028244e+00 -2.9576059382324004e+01 -9.4035688046136852e+02 9.4085395114538073e+02 5.1000000000000004e-04 1 0 0 0 0 +P 13 22 1.6417212790378732e-02 -6.2331934778808794e-02 -1.9810795368566805e+00 1.9821278783976966e+00 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 2 0 +P 31 2212 3.9845666526000445e-01 -4.2000187219924662e-01 1.7208369731688658e+03 1.7208373263457715e+03 9.3827000000000005e-01 1 0 0 0 0 +P 32 211 2.2784005542354996e-01 -1.3829166838531035e-01 2.6539700828516311e+02 2.6539717881352135e+02 1.3957000000000000e-01 1 0 0 0 0 +V -10 0 0 0 0 0 2 1 0 +P 15 2 -5.8774466266559076e+00 -9.3245626556735572e-01 -1.6938612621707563e+02 1.6949062985417058e+02 0 2 0 0 -10 0 +P 16 -2 5.8774466266559076e+00 9.3245626556735572e-01 -2.6116865900135838e+02 2.6123644902291909e+02 0 2 0 0 -10 0 +P 33 92 0 0 -4.3055478521843401e+02 4.3072707887708964e+02 1.2181683114363196e+01 2 0 0 -11 0 +V -11 0 0 0 0 0 0 7 0 +P 34 211 -3.4223096422762840e+00 -1.1755942505505563e+00 -1.0212463398588793e+02 1.0218881823206500e+02 1.3957000000000000e-01 1 0 0 0 0 +P 35 313 -1.4318407714997392e+00 1.0448174597780837e+00 -7.2468641710313307e+01 7.2496138880553076e+01 9.1886328226238245e-01 2 0 0 -18 0 +P 36 -313 1.0440864295074967e+00 -4.5871170804924338e-01 -4.5617120785926659e+01 4.5640092033581006e+01 8.9205332382051472e-01 2 0 0 -19 0 +P 37 -213 3.2409711340366965e-01 2.3335471252859891e-01 -4.0111237075385660e+01 4.0121708510378014e+01 8.2502164406168854e-01 2 0 0 -20 0 +P 38 111 1.2936126903917291e+00 4.7104501694792161e-01 -5.4152907899216984e+01 5.4170572922410656e+01 1.3497999999999999e-01 2 0 0 -21 0 +P 39 213 1.2548924127288779e+00 -4.7071757914042800e-01 -7.1343007544735329e+01 7.1361058743643341e+01 8.8297762073342168e-01 2 0 0 -22 0 +P 40 -211 9.3746176774424972e-01 3.5580634848562342e-01 -4.4737236216968142e+01 4.4748689554458579e+01 1.3957000000000000e-01 1 0 0 0 0 +V -12 0 0 0 0 0 3 1 0 +P 17 2 -1.2925484085993182e+00 -2.9944775922487810e+00 -1.1193505744225627e+03 1.1193553260862077e+03 0 2 0 0 -12 0 +P 18 21 1.4025793372001376e+00 -2.7884933102773206e+00 9.4380500095915245e+00 9.9408104157635311e+00 0 2 0 0 -12 0 +P 19 -2 1.2925484085993182e+00 2.9944775922487810e+00 6.0026559409271556e+02 6.0027445475292370e+02 0 2 0 0 -12 0 +P 41 92 1.4025793372001376e+00 -2.7884933102773206e+00 -5.0964693032025559e+02 1.7295705912548949e+03 1.6527748466216472e+03 2 0 0 -13 0 +V -13 0 0 0 0 0 0 24 0 +P 42 2212 -6.4915649404280318e-01 -4.2701824006267358e-01 -3.3481058142234315e+02 3.3481279774180007e+02 9.3827000000000005e-01 1 0 0 0 0 +P 43 -2212 -4.9702749607820934e-01 -1.9489755847429249e+00 -5.5795580111420406e+02 5.5796021532878854e+02 9.3827000000000005e-01 1 0 0 0 0 +P 44 113 1.6533916537684344e-02 -2.9412170960257544e-01 -7.6806020852310596e+01 7.6812204400634272e+01 9.2904508437107169e-01 2 0 0 -23 0 +P 45 221 -1.4972892483807126e-01 4.5696574621284011e-03 -1.0055577843303921e+02 1.0055738022348076e+02 5.4744999999999999e-01 2 0 0 -24 0 +P 46 221 3.0200268424734572e-01 2.8534525335404792e-01 -2.8870835357085056e+01 2.8879014236177056e+01 5.4744999999999999e-01 2 0 0 -25 0 +P 47 211 -6.4308952739707492e-01 -7.2529706032234698e-01 -5.7806554947847131e+00 5.8630263260746780e+00 1.3957000000000000e-01 1 0 0 0 0 +P 48 -213 3.3534244198776286e-01 1.3819689112114653e-01 -4.9513827912839794e+00 4.9961422616793758e+00 5.6008304652229868e-01 2 0 0 -26 0 +P 49 213 3.8463247216398370e-02 -2.6825695664888762e-02 -6.2305386932288869e+00 6.2750941019503417e+00 7.4497955755530509e-01 2 0 0 -27 0 +P 50 -211 -3.0493494659552672e-01 4.0145043880181042e-01 -5.0694511698343381e-01 7.2843730890360803e-01 1.3957000000000000e-01 1 0 0 0 0 +P 51 213 4.5194685326190176e-01 -3.3844629401524673e-01 -1.5162335922911572e+00 1.8063449324268250e+00 8.0319104601952163e-01 2 0 0 -28 0 +P 52 113 2.7127567356955044e-02 -3.5096115077676360e-01 -2.0560156402869595e-01 8.5167643807785465e-01 7.4777745204083745e-01 2 0 0 -29 0 +P 53 313 1.5417297555815859e-01 -2.8232887295282283e-01 9.8735536340780428e-01 1.3695271653989567e+00 8.9289145153275806e-01 2 0 0 -30 0 +P 54 -321 1.6551837760939633e-01 -1.1656322834342046e+00 1.9035451055119379e+00 2.2919903756841866e+00 4.9359999999999998e-01 1 0 0 0 0 +P 55 223 2.7048492858539253e-01 6.4531024760498323e-01 4.8493013060375016e+00 4.9634403118180437e+00 7.9399569267567460e-01 2 0 0 -31 0 +P 56 211 3.8312833002830518e-02 -6.7146029886687178e-02 -3.8093840362958112e-02 1.6403471606902364e-01 1.3957000000000000e-01 1 0 0 0 0 +P 57 113 -1.9506129454061361e-01 -4.4996827569324266e-01 9.0912943373856825e-01 1.1300284456403529e+00 4.5817857098333514e-01 2 0 0 -32 0 +P 58 311 2.5486600266519988e-01 -5.5963768406031345e-01 7.0488897796228791e+00 7.0931427146862651e+00 4.9767000000000000e-01 2 0 0 -33 0 +P 59 -323 5.8984323195972610e-01 5.0704121519152545e-01 1.2620140238622938e+01 1.2677108878334321e+01 9.1440911983714146e-01 2 0 0 -34 0 +P 60 113 4.7159765669982140e-01 -9.8137013413514440e-01 2.4370406619890971e+01 2.4406162239602889e+01 7.4735851973126655e-01 2 0 0 -35 0 +P 61 113 -3.7486729996664692e-01 7.1444064961249365e-01 3.2438220987768268e+01 3.2455915309327651e+01 7.0519981604898474e-01 2 0 0 -36 0 +P 62 223 1.4179614786791939e-01 3.7607095473386615e-01 9.2454157450938268e+01 9.2458324597560690e+01 7.8039856128934548e-01 2 0 0 -37 0 +P 63 223 -2.5333004221869093e-01 -1.7482317991745372e-01 4.1049255544223520e+01 4.1057845264441667e+01 7.8136916329073203e-01 2 0 0 -38 0 +P 64 321 8.9930855079187644e-01 4.6279031139923948e-01 1.3433665469657635e+02 1.3434136878403856e+02 4.9359999999999998e-01 1 0 0 0 0 +P 65 -321 3.1245794752940531e-01 1.4688432657087267e+00 2.5561448142535130e+02 2.5561936915229936e+02 4.9359999999999998e-01 1 0 0 0 0 +V -14 0 0 0 0 0 7 1 0 +P 21 21 4.5189465118581147e+00 3.0246444971641862e-01 7.5589346639934547e+01 7.5724907974672121e+01 0 2 0 0 -14 0 +P 22 21 2.3306161753086991e+00 2.5263018388499852e+00 1.6213072005400015e+01 1.6573402685926418e+01 0 2 0 0 -14 0 +P 23 21 -2.3306161753086991e+00 -2.5263018388499852e+00 1.7097855225215859e+01 1.7439914737177720e+01 0 2 0 0 -14 0 +P 24 21 -4.5189465118581147e+00 -3.0246444971641862e-01 -3.2145610931228710e+00 5.5538964107909132e+00 0 2 0 0 -14 0 +P 25 21 3.3444552178150491e+00 -3.3682323125838081e+00 -1.2861369300978330e+01 1.3709310336835030e+01 0 2 0 0 -14 0 +P 26 21 -1.4025793372001376e+00 2.7884933102773206e+00 -5.6917899608951075e+00 6.4914864782689392e+00 0 2 0 0 -14 0 +P 27 21 -3.3444552178150491e+00 3.3682323125838081e+00 -1.4040682664225221e+01 1.4821306936062644e+01 0 2 0 0 -14 0 +P 66 92 -1.4281371786462076e+00 2.2187014957585420e+00 -1.9871596487759671e+03 6.7129582165122420e+03 6.4120977522729381e+03 2 0 0 -15 0 +V -15 0 0 0 0 0 0 35 0 +P 67 -213 5.4216260460293231e-01 -7.8759029792302415e-01 1.9393385450254702e+03 1.9393389087263906e+03 7.0458483531368932e-01 2 0 0 -39 0 +P 68 211 1.0135732704315257e-02 5.3514575211682114e-01 2.3409980209226654e+02 2.3410045558078767e+02 1.3957000000000000e-01 1 0 0 0 0 +P 69 1114 8.9641438172015775e-01 -3.6392129443568710e-01 4.4812864618973961e+01 4.4840773987411758e+01 1.2514707265275640e+00 2 0 0 -40 0 +P 70 211 3.8473184386194154e-01 1.7416136993019182e-01 7.6482609489049134e+00 7.6611830745584788e+00 1.3957000000000000e-01 1 0 0 0 0 +P 71 -2212 1.3570820383715327e+00 -3.4833837508799126e-01 5.9400969475256197e+01 5.9424898287465744e+01 9.3827000000000005e-01 1 0 0 0 0 +P 72 223 5.3513808491869197e-01 5.6258841694084194e-01 1.3497984646533387e+01 1.3542742700934161e+01 7.7936631236407006e-01 2 0 0 -41 0 +P 73 111 1.4249126471823113e+00 -8.7326689179198683e-02 2.6487334767795783e+01 2.6526121554128995e+01 1.3497999999999999e-01 2 0 0 -42 0 +P 74 113 1.0243223484583437e+00 8.9460184235475726e-01 7.8398598406213731e+00 8.0044033243370425e+00 8.7035712680161426e-01 2 0 0 -43 0 +P 75 213 7.8146511190515611e-01 8.1085897447583399e-01 9.7004079181519618e+00 9.7985969509811213e+00 8.0399529328116248e-01 2 0 0 -44 0 +P 76 223 -6.0070864720254791e-01 -7.5020685309669766e-01 4.3286489963019363e+00 4.5018892429835349e+00 7.7855213161865244e-01 2 0 0 -45 0 +P 77 -213 2.0007537718930121e-01 -8.0481277249238786e-02 2.7952951677960907e+00 2.9524405521698647e+00 9.2559318625830767e-01 2 0 0 -46 0 +P 78 113 -4.2184079371557825e-01 6.6478556099176161e-02 2.1918020937664431e+00 2.2875634621838854e+00 4.9656935227230686e-01 2 0 0 -47 0 +P 79 213 -6.8390630107822026e-01 -1.2031666983062672e+00 6.5479758970760322e+00 6.7835848615007661e+00 1.1071121406280251e+00 2 0 0 -48 0 +P 80 111 -5.9823858771689586e-01 -1.2013185150743945e-01 9.0499212497479931e-01 1.0997960793922275e+00 1.3497999999999999e-01 2 0 0 -49 0 +P 81 -211 -1.8659891773971918e-01 3.9874400471142490e-01 -3.5494610553090200e-01 5.8247957914977033e-01 1.3957000000000000e-01 1 0 0 0 0 +P 82 113 -9.1461437410828916e-01 -4.4389801834541065e-01 -7.0381543247325407e-01 1.5379185055407165e+00 9.1447923031668488e-01 2 0 0 -50 0 +P 83 213 -1.2615073893577071e+00 1.7769459083209821e-01 -8.9289455873395662e-01 1.7351143047719249e+00 7.6836495013266204e-01 2 0 0 -51 0 +P 84 -211 -8.7219080940381755e-01 -1.8926094685784717e-01 -5.3480327737921796e-01 1.0497765688037612e+00 1.3957000000000000e-01 1 0 0 0 0 +P 85 113 6.2141214984468351e-01 -8.6421893286914353e-02 -2.4332734261172653e+00 2.6283177307616250e+00 7.7046266877350866e-01 2 0 0 -52 0 +P 86 211 -3.5446434481312317e-01 -1.2268348898738159e+00 -1.2253959392308320e+00 1.7753432939966589e+00 1.3957000000000000e-01 1 0 0 0 0 +P 87 2112 9.1472463744437760e-01 -1.2569570091894453e-01 -3.6476223116165620e+00 3.8782033062592536e+00 9.3957000000000002e-01 1 0 0 0 0 +P 88 -2212 8.6361312614816066e-01 -9.1836205712359598e-01 -4.8715921735632639e+00 5.1187867115208592e+00 9.3827000000000005e-01 1 0 0 0 0 +P 89 113 2.0594892520170244e-02 2.0438980965336340e-01 -5.7002702256806792e-01 9.3915477322444918e-01 7.1755246339511269e-01 2 0 0 -53 0 +P 90 213 -6.4584413784606176e-01 7.8022036598574573e-01 -3.1474571005361729e+00 3.4019473481372686e+00 8.0056298308975271e-01 2 0 0 -54 0 +P 91 113 -1.0973380029073554e+00 7.4299977704846509e-01 -5.3024187721700224e+00 5.5125660457410666e+00 7.1870732003888060e-01 2 0 0 -55 0 +P 92 313 -5.3612158238681562e-01 9.9278532523932750e-01 -3.4650732050135691e+00 3.7239560285499427e+00 7.6685535360910795e-01 2 0 0 -56 0 +P 93 -321 -1.2221331636647612e+00 1.5690691103915120e+00 -4.6853289562246045e+00 5.1138572262970730e+00 4.9359999999999998e-01 1 0 0 0 0 +P 94 221 -6.2878961836263358e-01 3.9774130133513302e-01 -4.6596960331790589e+00 4.7503729486297237e+00 5.4744999999999999e-01 2 0 0 -57 0 +P 95 213 -1.5227279129650367e-01 7.2806206429657749e-01 -2.1391236973384483e+01 2.1421593665725354e+01 8.6394129170691092e-01 2 0 0 -58 0 +P 96 113 3.0209002088422593e-01 -3.9448441998462064e-01 -1.0899232925753084e+01 1.0936206424161766e+01 7.4863625595375760e-01 2 0 0 -59 0 +P 97 111 -8.0811401894910795e-01 4.0766228483193984e-01 -2.8448690697297046e+01 2.8463405607849737e+01 1.3497999999999999e-01 2 0 0 -60 0 +P 98 -213 1.2089810072332315e-01 -5.2079050430329710e-01 -1.1939975039352846e+02 1.1940300095633448e+02 7.0028868431575408e-01 2 0 0 -61 0 +P 99 223 5.4114373167817453e-01 2.7085749567615108e-01 -4.2861438876063943e+02 4.2861551326973716e+02 7.7315102171666417e-01 2 0 0 -62 0 +P 100 2212 -8.2348818137401925e-01 8.9103884396884103e-02 -1.7961757953324147e+03 1.7961762313762292e+03 9.3827000000000005e-01 1 0 0 0 0 +P 101 213 -1.6088234688084649e-01 6.2448336922287219e-02 -1.9053309529925027e+03 1.9053311124555951e+03 7.6018223594688406e-01 2 0 0 -63 0 +V -16 0 0 0 0 0 2 1 0 +P 29 21 1.7182462671114402e+00 2.3426872894360549e+00 2.1255453864254928e-01 2.9130282186112093e+00 0 2 0 0 -16 0 +P 30 21 -1.7182462671114402e+00 -2.3426872894360549e+00 2.0339078055224470e+03 2.0339098804812140e+03 0 2 0 0 -16 0 +P 102 92 0 0 2.0341203600610895e+03 2.0368229086998253e+03 1.0489004809494854e+02 2 0 0 -17 0 +V -17 0 0 0 0 0 0 20 0 +P 103 -211 -6.0384089246498240e-02 -2.1593397066779253e-02 6.7328643487245954e-01 6.9058447804325818e-01 1.3957000000000000e-01 1 0 0 0 0 +P 104 111 3.0137821631491024e-01 6.9978369862249840e-02 2.1411449928155655e+00 2.1675902016241224e+00 1.3497999999999999e-01 2 0 0 -64 0 +P 105 211 -7.4504913328202721e-02 1.3535438527297250e-01 7.5149850953364265e+01 7.5150139387026329e+01 1.3957000000000000e-01 1 0 0 0 0 +P 106 311 -3.0824762001330436e-01 -1.4402182869475991e-01 3.9741975944594941e+02 3.9742021668806382e+02 4.9767000000000000e-01 2 0 0 -65 0 +P 107 333 -9.1866028181973891e-01 -2.0597240947952193e+00 9.9285414260558821e+02 9.9285721752589359e+02 1.0097049676208800e+00 2 0 0 -66 0 +P 108 -323 -2.3490715754350402e-01 8.3095883242977953e-02 4.9572324857581219e+02 4.9572416549705343e+02 9.2032216914309117e-01 2 0 0 -67 0 +P 109 111 4.1806436528339791e-01 -2.2899116272598369e-01 6.4652151043041934e+00 6.4841684672322852e+00 1.3497999999999999e-01 2 0 0 -68 0 +P 110 3222 -5.6454807151714115e-01 3.0038362700044496e-01 1.5559636563150063e+01 1.5618125233927406e+01 1.1893700000000000e+00 2 0 0 -69 0 +P 111 -3212 -1.2459659851310380e-01 1.4248779043166906e-01 1.5027023583236335e+01 1.5075458213813077e+01 1.1925500000000000e+00 2 0 0 -70 0 +P 112 -213 3.7655640018993020e-01 -3.8287574679571718e-01 1.8935226661500398e+01 1.8955778084047072e+01 7.0023245371471732e-01 2 0 0 -71 0 +P 113 211 -1.4243498041231339e-01 3.1036147917840962e-01 3.6873645553705686e-01 5.2159211070040012e-01 1.3957000000000000e-01 1 0 0 0 0 +P 114 113 3.8953818738287976e-01 3.5983308392962821e-03 2.9199479223354214e+00 3.0414263991854740e+00 7.5658821369157259e-01 2 0 0 -72 0 +P 115 111 -9.0634448722506072e-03 6.1399994260374857e-01 8.6138652128429471e-01 1.0664353777893050e+00 1.3497999999999999e-01 2 0 0 -73 0 +P 116 -213 2.1126425569031212e-01 7.2662728626688444e-01 1.7631477856117816e-01 1.0907967455146763e+00 7.6559182336697773e-01 2 0 0 -74 0 +P 117 211 1.8890292053918842e-01 -3.9217829654797970e-01 4.2376063239215755e-01 6.2333056088797001e-01 1.3957000000000000e-01 1 0 0 0 0 +P 118 -211 -5.8451538057038684e-02 1.9531982712468343e-01 3.1711758377891242e-01 4.0200716910401635e-01 1.3957000000000000e-01 1 0 0 0 0 +P 119 221 9.1656294346312978e-02 -7.2250132436744510e-02 4.2083038462435490e-01 7.0030041628825801e-01 5.4744999999999999e-01 2 0 0 -75 0 +P 120 323 3.2393892176032707e-01 5.9901412523414366e-01 3.2048749331960464e+00 3.3826342799303069e+00 8.4097383257149705e-01 2 0 0 -76 0 +P 121 -323 8.3047607121168998e-01 3.6045783335863357e-01 4.3175731064757974e+00 4.4982902518816132e+00 8.7952106622028725e-01 2 0 0 -77 0 +P 122 211 -6.3597693739585281e-01 -2.3904422135293027e-01 1.1612828223115010e+00 1.3526516118193193e+00 1.3957000000000000e-01 1 0 0 0 0 +V -18 0 0 0 0 0 0 2 0 +P 123 311 -8.8835934438628372e-01 6.8074086066904238e-01 -5.6890766581735761e+01 5.6903950549417800e+01 4.9767000000000000e-01 2 0 0 -78 0 +P 124 111 -5.4348142711345571e-01 3.6407659910904144e-01 -1.5577875128577560e+01 1.5592188331135288e+01 1.3497999999999999e-01 2 0 0 -79 0 +V -19 0 0 0 0 0 0 2 0 +P 125 -321 1.0773689084100895e+00 -5.1649738648580301e-01 -4.0378564311746878e+01 4.0399252346459754e+01 4.9359999999999998e-01 1 0 0 0 0 +P 126 211 -3.3282478902592651e-02 5.7785678436559643e-02 -5.2385564741797834e+00 5.2408396871212544e+00 1.3957000000000000e-01 1 0 0 0 0 +V -20 0 0 0 0 0 0 2 0 +P 127 -211 2.3663845137153569e-01 3.6141929721200028e-01 -3.7375453158979781e+01 3.7378210233892375e+01 1.3957000000000000e-01 1 0 0 0 0 +P 128 111 8.7458662032133927e-02 -1.2806458468340143e-01 -2.7357839164058722e+00 2.7434982764856324e+00 1.3497999999999999e-01 2 0 0 -80 0 +V -21 0 1.8697213022662409e-04 6.8082425988507642e-05 -7.8269830089690295e-03 7.8295362206386096e-03 0 2 0 +P 129 22 1.1490964488537836e-01 8.5213701923610385e-02 -5.5616412847888865e+00 5.5634808692177042e+00 0 1 0 0 0 0 +P 130 22 1.1787030455063505e+00 3.8583131502431123e-01 -4.8591266614428093e+01 4.8607092053192950e+01 0 1 0 0 0 0 +V -22 0 0 0 0 0 0 2 0 +P 131 211 9.2572302897073211e-01 -2.0288737845322695e-02 -3.1494950736642860e+01 3.1508868219085731e+01 1.3957000000000000e-01 1 0 0 0 0 +P 132 111 3.2916938375814553e-01 -4.5042884129510524e-01 -3.9848056808092458e+01 3.9852190524557592e+01 1.3497999999999999e-01 2 0 0 -81 0 +V -23 0 0 0 0 0 0 2 0 +P 133 211 5.5628915281980412e-02 -1.7240521926811242e-01 -4.4020576842464809e+00 4.4079938493808974e+00 1.3957000000000000e-01 1 0 0 0 0 +P 134 -211 -3.9094998744296061e-02 -1.2171649033446306e-01 -7.2403963168064124e+01 7.2404210551253385e+01 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 135 22 -1.5444404052236614e-02 -1.2303691275080576e-01 -5.4080212553685936e+00 5.4094427171414141e+00 0 1 0 0 0 0 +P 136 22 -1.3428452078583464e-01 1.2760657021293417e-01 -9.5147757177670613e+01 9.5147937506339346e+01 0 1 0 0 0 0 +V -25 0 0 0 0 0 0 3 0 +P 137 111 9.2311480631191989e-02 1.8010222032173673e-01 -1.5022100885582585e+01 1.5024070448325322e+01 1.3497999999999999e-01 2 0 0 -82 0 +P 138 111 1.5389951085199688e-01 1.3360790730478667e-01 -6.2955950525981503e+00 6.3003391019081789e+00 1.3497999999999999e-01 2 0 0 -83 0 +P 139 111 5.5791692764156894e-02 -2.8364874272475478e-02 -7.5531394189043217e+00 7.5546046859435538e+00 1.3497999999999999e-01 2 0 0 -84 0 +V -26 0 0 0 0 0 0 2 0 +P 140 -211 3.4795871222769470e-01 1.2913562700567929e-01 -4.6335489000911831e+00 4.6504845414229168e+00 1.3957000000000000e-01 1 0 0 0 0 +P 141 111 -1.2616270239931780e-02 9.0612641154672498e-03 -3.1783389119279665e-01 3.4565772025645797e-01 1.3497999999999999e-01 2 0 0 -85 0 +V -27 0 0 0 0 0 0 2 0 +P 142 211 -2.6507126648343393e-01 1.6611475780357760e-01 -3.6620259310433121e+00 3.6780117718148904e+00 1.3957000000000000e-01 1 0 0 0 0 +P 143 111 3.0353451369983231e-01 -1.9294045346846636e-01 -2.5685127621855748e+00 2.5970823301354509e+00 1.3497999999999999e-01 2 0 0 -86 0 +V -28 0 0 0 0 0 0 2 0 +P 144 211 4.2568471861282581e-01 -5.3585815142727589e-01 -8.6305498665514868e-01 1.1102680455646092e+00 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 2.6262134649075942e-02 1.9741185741202916e-01 -6.5317860563600838e-01 6.9607688686221558e-01 1.3497999999999999e-01 2 0 0 -87 0 +V -29 0 0 0 0 0 0 2 0 +P 146 211 2.7491546942463990e-01 1.5012758060953384e-02 6.4340006694604740e-02 3.1531463587189956e-01 1.3957000000000000e-01 1 0 0 0 0 +P 147 -211 -2.4778790206768489e-01 -3.6597390883771697e-01 -2.6994157072330072e-01 5.3636180220595964e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 148 321 -3.4500238693339409e-02 -1.0597931797356490e-01 9.4631402810185450e-01 1.0731137321320592e+00 4.9359999999999998e-01 1 0 0 0 0 +P 149 -211 1.8867321425149802e-01 -1.7634955497925797e-01 4.1041335305949819e-02 2.9641343326689734e-01 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 0 0 0 0 0 3 0 +P 150 -211 1.7372815870072264e-01 3.9816647204593414e-01 1.3106575762200228e+00 1.3878116153102316e+00 1.3957000000000000e-01 1 0 0 0 0 +P 151 211 2.2174429060384263e-02 -7.0700764257547011e-02 9.6535187332727646e-01 9.7819953363679191e-01 1.3957000000000000e-01 1 0 0 0 0 +P 152 111 7.4582340824285623e-02 3.1784453981659611e-01 2.5732918564902025e+00 2.5974291628710198e+00 1.3497999999999999e-01 2 0 0 -88 0 +V -32 0 0 0 0 0 0 2 0 +P 153 -211 3.3962108465623669e-02 -1.2136739619253469e-02 3.0383058001969304e-01 3.3629381724188662e-01 1.3957000000000000e-01 1 0 0 0 0 +P 154 211 -2.2902340300623730e-01 -4.3783153607398917e-01 6.0529885371887526e-01 7.9373462839846587e-01 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 1 0 +P 155 130 2.5486600266519988e-01 -5.5963768406031345e-01 7.0488897796228791e+00 7.0931427146862633e+00 4.9767000000000000e-01 1 0 0 0 0 +V -34 0 0 0 0 0 0 2 0 +P 156 -311 6.3629118454362399e-01 2.6066327066419842e-01 7.2899009219783402e+00 7.3391513605703720e+00 4.9767000000000000e-01 2 0 0 -89 0 +P 157 -211 -4.6447952583897813e-02 2.4637794452732709e-01 5.3302393166445974e+00 5.3379575177639449e+00 1.3957000000000000e-01 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 158 -211 -1.3843969334754791e-01 -1.1573951633130124e-01 2.7775781205311443e+00 2.7869304234027963e+00 1.3957000000000000e-01 1 0 0 0 0 +P 159 211 6.1003735004736936e-01 -8.6563061780384321e-01 2.1592828499359829e+01 2.1619231816200092e+01 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 2 0 +P 160 -211 -5.3563447701898401e-02 6.6112470805366741e-01 1.6778003219314172e+01 1.6791689216238652e+01 1.3957000000000000e-01 1 0 0 0 0 +P 161 211 -3.2130385226474850e-01 5.3315941558826262e-02 1.5660217768454098e+01 1.5664226093088988e+01 1.3957000000000000e-01 1 0 0 0 0 +V -37 0 0 0 0 0 0 3 0 +P 162 211 -6.6907931039927135e-02 1.2175756451401197e-01 1.3514430333249674e+01 1.3515865070091197e+01 1.3957000000000000e-01 1 0 0 0 0 +P 163 -211 1.5997741131462320e-01 -8.4859508363502090e-02 1.5752145709471709e+01 1.5753804878365688e+01 1.3957000000000000e-01 1 0 0 0 0 +P 164 111 4.8726667593223340e-02 3.3917289858335631e-01 6.3187581408216893e+01 6.3188654649103782e+01 1.3497999999999999e-01 2 0 0 -90 0 +V -38 0 0 0 0 0 0 3 0 +P 165 -211 -2.2781057367096993e-01 -1.8076023205047512e-01 2.2204623661144236e+01 2.2206966556396523e+01 1.3957000000000000e-01 1 0 0 0 0 +P 166 211 -8.8088472241610968e-02 1.2956137830090980e-01 4.4468232102231378e+00 4.4517706789061249e+00 1.3957000000000000e-01 1 0 0 0 0 +P 167 111 6.2569003693889999e-02 -1.2362432616788839e-01 1.4397808672856140e+01 1.4399108029138999e+01 1.3497999999999999e-01 2 0 0 -91 0 +V -39 0 0 0 0 0 0 2 0 +P 168 -211 1.1575661872227846e-01 -5.9566096362919352e-01 7.2921715829360608e+02 7.2921742412065646e+02 1.3957000000000000e-01 1 0 0 0 0 +P 169 111 4.2640598588065382e-01 -1.9192933429383069e-01 1.2101213867318643e+03 1.2101214846057335e+03 1.3497999999999999e-01 2 0 0 -92 0 +V -40 0 0 0 0 0 0 2 0 +P 170 2112 5.7730953717981204e-01 -4.9267549823692297e-01 3.3126349100956851e+01 3.3148360622987781e+01 9.3957000000000002e-01 1 0 0 0 0 +P 171 -211 3.1910484454034588e-01 1.2875420380123584e-01 1.1686515518017115e+01 1.1692413364423977e+01 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 3 0 +P 172 -211 9.5487207154282661e-02 -6.2863114436684478e-02 1.2548498161728181e+00 1.2677529033434551e+00 1.3957000000000000e-01 1 0 0 0 0 +P 173 211 2.1429886442208966e-02 1.3131790882612157e-01 1.6489652622608375e+00 1.6602017510695333e+00 1.3957000000000000e-01 1 0 0 0 0 +P 174 111 4.1822099132220031e-01 4.9413362255140486e-01 1.0594169568099732e+01 1.0614788046521172e+01 1.3497999999999999e-01 2 0 0 -93 0 +V -42 0 1.8062935474981218e-04 -1.1069986325174275e-05 3.3576726247816625e-03 3.3625894399998031e-03 0 2 0 +P 175 22 6.7619288638646513e-01 -9.1896050652983813e-02 1.1803182198575048e+01 1.1822892696649337e+01 0 1 0 0 0 0 +P 176 22 7.4871976079584612e-01 4.5693614737851275e-03 1.4684152569220737e+01 1.4703228857479658e+01 0 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 177 -211 1.8255094262342417e-01 4.9281267235300757e-01 4.5388757870887497e+00 4.5713304816218363e+00 1.3957000000000000e-01 1 0 0 0 0 +P 178 211 8.4177140583491938e-01 4.0178917000174957e-01 3.3009840535326229e+00 3.4330728427152049e+00 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 2 0 +P 179 211 6.4478111510714742e-01 7.1330192574342022e-01 9.2323181717291547e+00 9.2833033416240607e+00 1.3957000000000000e-01 1 0 0 0 0 +P 180 111 1.3668399679800877e-01 9.7557048732413817e-02 4.6808974642280660e-01 5.1529360935705770e-01 1.3497999999999999e-01 2 0 0 -94 0 +V -45 0 0 0 0 0 0 3 0 +P 181 -211 -3.3985093605444544e-01 -3.3839691300994644e-02 1.0124513152340913e+00 1.0775811960421686e+00 1.3957000000000000e-01 1 0 0 0 0 +P 182 211 -1.2829685354263031e-02 -1.2856125071302602e-01 5.3883610377089486e-01 5.7141642226854616e-01 1.3957000000000000e-01 1 0 0 0 0 +P 183 111 -2.4802802579383956e-01 -5.8780591108267710e-01 2.7773615772969507e+00 2.8528916246728215e+00 1.3497999999999999e-01 2 0 0 -95 0 +V -46 0 0 0 0 0 0 2 0 +P 184 -211 1.3358989959828704e-01 3.8645547651348672e-01 1.6675168582308439e+00 1.7225813054790797e+00 1.3957000000000000e-01 1 0 0 0 0 +P 185 111 6.6485477591014169e-02 -4.6693675376272548e-01 1.1277783095652469e+00 1.2298592466907843e+00 1.3497999999999999e-01 2 0 0 -96 0 +V -47 0 0 0 0 0 0 2 0 +P 186 211 -9.3953505824433764e-02 -1.5916621156773283e-01 8.5366541626208947e-01 8.8452561974396915e-01 1.3957000000000000e-01 1 0 0 0 0 +P 187 -211 -3.2788728789114446e-01 2.2564476766690900e-01 1.3381366775043535e+00 1.4030378424399157e+00 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 188 211 -3.1297297759670162e-01 -1.2700760300481633e+00 5.6378957412772790e+00 5.7893344506273889e+00 1.3957000000000000e-01 1 0 0 0 0 +P 189 111 -3.7093332348151864e-01 6.6909331741895992e-02 9.1008015579875357e-01 9.9425041087337529e-01 1.3497999999999999e-01 2 0 0 -97 0 +V -49 0 -1.4965826533362982e-04 -3.0052766366232216e-05 2.2639721733967781e-04 2.7513031897644541e-04 0 2 0 +P 190 22 -3.0753609678583916e-02 -4.0951860957295985e-02 6.0453254742586303e-02 7.9230268414921035e-02 0 1 0 0 0 0 +P 191 22 -5.6748497803831199e-01 -7.9179990550143464e-02 8.4453887023221308e-01 1.0205658109773066e+00 0 1 0 0 0 0 +V -50 0 0 0 0 0 0 2 0 +P 192 211 -3.7395809242150829e-01 -5.4704665311005618e-01 -6.9450929608971679e-01 9.7001424877239883e-01 1.3957000000000000e-01 1 0 0 0 0 +P 193 -211 -5.4065628168678093e-01 1.0314863476464556e-01 -9.3061363835372987e-03 5.6790425676831746e-01 1.3957000000000000e-01 1 0 0 0 0 +V -51 0 0 0 0 0 0 2 0 +P 194 211 -1.0036870681900585e+00 6.0908344293775021e-02 -9.7858835208038319e-01 1.4100398948199884e+00 1.3957000000000000e-01 1 0 0 0 0 +P 195 111 -2.5782032116764880e-01 1.1678624653832320e-01 8.5693793346426558e-02 3.2507440995193648e-01 1.3497999999999999e-01 2 0 0 -98 0 +V -52 0 0 0 0 0 0 2 0 +P 196 -211 -4.1290701932326097e-02 -2.0666261137288519e-01 -1.0930205176097356e+00 1.1218680821831855e+00 1.3957000000000000e-01 1 0 0 0 0 +P 197 211 6.6270285177700960e-01 1.2024071808597084e-01 -1.3402529085075296e+00 1.5064496485784395e+00 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 0 0 0 0 0 2 0 +P 198 -211 -3.1658924960087986e-01 1.5111911254455840e-01 -2.9258169938081902e-01 4.7765005480128553e-01 1.3957000000000000e-01 1 0 0 0 0 +P 199 211 3.3718414212105013e-01 5.3270697108805012e-02 -2.7744532318724890e-01 4.6150471842316365e-01 1.3957000000000000e-01 1 0 0 0 0 +V -54 0 0 0 0 0 0 2 0 +P 200 211 7.8603340975565442e-02 2.4826114704283447e-02 -1.3818930413805391e-01 2.1300443624955517e-01 1.3957000000000000e-01 1 0 0 0 0 +P 201 111 -7.2444747882162719e-01 7.5539425128146231e-01 -3.0092677963981189e+00 3.1889429118877124e+00 1.3497999999999999e-01 2 0 0 -99 0 +V -55 0 0 0 0 0 0 2 0 +P 202 211 -7.1336812839619990e-01 1.2156278646260546e-01 -2.1215576393421842e+00 2.2459203457859389e+00 1.3957000000000000e-01 1 0 0 0 0 +P 203 -211 -3.8396987451115550e-01 6.2143699058585955e-01 -3.1808611328278378e+00 3.2666456999551263e+00 1.3957000000000000e-01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 204 321 -1.7893673284703560e-01 6.0568524101514520e-01 -1.7601004507644631e+00 1.9340288318240793e+00 4.9359999999999998e-01 1 0 0 0 0 +P 205 -211 -3.5718484953977997e-01 3.8710008422418218e-01 -1.7049727542491055e+00 1.7899271967258628e+00 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 3 0 +P 206 111 -2.9554292158215627e-02 6.8699727020969506e-02 -6.7667418059625295e-01 6.9404658039885136e-01 1.3497999999999999e-01 2 0 0 -100 0 +P 207 111 -8.3861532678087297e-02 5.2894938783996322e-02 -8.9880718379003643e-01 9.1427817716746196e-01 1.3497999999999999e-01 2 0 0 -101 0 +P 208 111 -5.1537379352633073e-01 2.7614663553016722e-01 -3.0842146687927694e+00 3.1420481910634095e+00 1.3497999999999999e-01 2 0 0 -102 0 +V -58 0 0 0 0 0 0 2 0 +P 209 211 -2.8787457288157677e-02 2.4879370258541306e-01 -1.6687893171284660e+01 1.6690356056874656e+01 1.3957000000000000e-01 1 0 0 0 0 +P 210 111 -1.2348533400834598e-01 4.7926836171116444e-01 -4.7033438020998224e+00 4.7312376088506980e+00 1.3497999999999999e-01 2 0 0 -103 0 +V -59 0 0 0 0 0 0 2 0 +P 211 -211 3.0913726888285875e-01 -2.4912078764392806e-01 -2.5465295938249941e+00 2.5810695021589738e+00 1.3957000000000000e-01 1 0 0 0 0 +P 212 211 -7.0472479986327845e-03 -1.4536363234069261e-01 -8.3527033319280903e+00 8.3551369220027905e+00 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 -2.5008859253652064e-05 1.2616002773522305e-05 -8.8040707736340902e-04 8.8086246251737634e-04 0 2 0 +P 213 22 -3.0216804572784750e-01 1.8884543693933467e-01 -1.3003859249159436e+01 1.3008740273326284e+01 0 1 0 0 0 0 +P 214 22 -5.0594597322126056e-01 2.1881684789260519e-01 -1.5444831448137609e+01 1.5454665334523453e+01 0 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 215 -211 -2.2421009461650029e-01 -6.5249877864224176e-02 -5.1189059483439948e+01 5.1189782362275601e+01 1.3957000000000000e-01 1 0 0 0 0 +P 216 111 3.4510819533982345e-01 -4.5554062643907289e-01 -6.8210690910088516e+01 6.8213218594058873e+01 1.3497999999999999e-01 2 0 0 -104 0 +V -62 0 0 0 0 0 0 3 0 +P 217 211 3.1996614273406238e-01 2.2698112849886470e-01 -2.1384580773417935e+02 2.1384621311595322e+02 1.3957000000000000e-01 1 0 0 0 0 +P 218 -211 2.0155403003524568e-02 1.0084712989668214e-01 -1.6553192481345258e+02 1.6553201560005030e+02 1.3957000000000000e-01 1 0 0 0 0 +P 219 111 2.0102218594058774e-01 -5.6970762719395704e-02 -4.9236656213007620e+01 4.9237284553733737e+01 1.3497999999999999e-01 2 0 0 -105 0 +V -63 0 0 0 0 0 0 2 0 +P 220 211 -1.1965928167053523e-02 -1.7609060069797053e-01 -1.5658354689143539e+03 1.5658354850817191e+03 1.3957000000000000e-01 1 0 0 0 0 +P 221 111 -1.4891641871379296e-01 2.3853893762025774e-01 -3.3949548407814893e+02 3.3949562737387589e+02 1.3497999999999999e-01 2 0 0 -106 0 +V -64 0 1.7224079361358685e-05 3.9993368161236640e-06 1.2236866927998514e-04 1.2388004054236708e-04 0 2 0 +P 222 22 3.4213945668553833e-02 6.0764556174071421e-02 3.9702505912805364e-01 4.0310274489375181e-01 0 1 0 0 0 0 +P 223 22 2.6716427064635639e-01 9.2138136881784183e-03 1.7441199336875117e+00 1.7644874567303706e+00 0 1 0 0 0 0 +V -65 0 0 0 0 0 0 1 0 +P 224 130 -3.0824762001330436e-01 -1.4402182869475991e-01 3.9741975944594941e+02 3.9742021668806376e+02 4.9767000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 2 0 +P 225 130 -5.6718967892915073e-01 -1.1431034690863549e+00 5.6205241242334318e+02 5.6205408136228459e+02 4.9767000000000000e-01 1 0 0 0 0 +P 226 310 -3.5147060289058818e-01 -9.1662062570886449e-01 4.3080173018224508e+02 4.3080313616360888e+02 4.9767000000000000e-01 2 0 0 -107 0 +V -67 0 0 0 0 0 0 2 0 +P 227 -311 -2.4546654743398341e-01 -2.3146159829648183e-01 2.8342132256983007e+02 2.8342196031881150e+02 4.9767000000000000e-01 2 0 0 -108 0 +P 228 -211 1.0559389890479413e-02 3.1455748153945978e-01 2.1230192600598207e+02 2.1230220517824185e+02 1.3957000000000000e-01 1 0 0 0 0 +V -68 0 4.8796540959387777e-05 -2.6727885893172615e-05 7.5462096233572576e-04 7.5683320195057979e-04 0 2 0 +P 229 22 2.6685060975905711e-01 -1.4011960385428618e-01 4.8753534441163167e+00 4.8846610892025959e+00 0 1 0 0 0 0 +P 230 22 1.5121375552434085e-01 -8.8871558871697537e-02 1.5898616601878772e+00 1.5995073780296898e+00 0 1 0 0 0 0 +V -69 0 -1.2542959339478501e+00 6.6738331238764326e-01 3.4569932764836054e+01 3.4699881135292600e+01 0 2 0 +P 231 2112 -4.8062679974778633e-01 3.6572879428995364e-01 1.4593581181314528e+01 1.4636261925509741e+01 9.3957000000000002e-01 1 0 0 0 0 +P 232 211 -8.3921271769354780e-02 -6.5345167289508649e-02 9.6605538183553463e-01 9.8186330841766378e-01 1.3957000000000000e-01 1 0 0 0 0 +V -70 0 0 0 0 0 0 2 0 +P 233 -3122 -6.4332980426235087e-02 1.6435334128651716e-01 1.4602391787438231e+01 1.4646014424730232e+01 1.1156800000000000e+00 2 0 0 -109 0 +P 234 22 -6.0263618086868719e-02 -2.1865550854848093e-02 4.2463179579810417e-01 4.2944378908284236e-01 0 1 0 0 0 0 +V -71 0 0 0 0 0 0 2 0 +P 235 -211 1.2164753959102612e-01 -4.5521551591701886e-01 7.1835598725210605e+00 7.2003494024120069e+00 1.3957000000000000e-01 1 0 0 0 0 +P 236 111 2.5490886059890411e-01 7.2339769121301689e-02 1.1751666788979339e+01 1.1755428681635065e+01 1.3497999999999999e-01 2 0 0 -110 0 +V -72 0 0 0 0 0 0 2 0 +P 237 -211 1.1930293579631301e-01 2.0049976557463289e-01 2.3525837282285753e+00 2.3682405557102864e+00 1.3957000000000000e-01 1 0 0 0 0 +P 238 211 2.7023525158656675e-01 -1.9690143473533661e-01 5.6736419410684646e-01 6.7318584347518806e-01 1.3957000000000000e-01 1 0 0 0 0 +V -73 0 -1.4041331718659690e-06 9.5122516778726869e-05 1.3344830860466966e-04 1.6521502703569109e-04 0 2 0 +P 239 22 -3.4840433826297368e-02 2.3835644419272761e-01 4.3776599393873217e-01 4.9966660461408824e-01 0 1 0 0 0 0 +P 240 22 2.5776988954046759e-02 3.7564349841102102e-01 4.2362052734556249e-01 5.6676877317521679e-01 0 1 0 0 0 0 +V -74 0 0 0 0 0 0 2 0 +P 241 -211 -4.8632585458811266e-02 5.7613097737265306e-01 -1.6428978489932830e-01 6.1705992397744047e-01 1.3957000000000000e-01 1 0 0 0 0 +P 242 111 2.5989684114912343e-01 1.5049630889423141e-01 3.4060456346050649e-01 4.7373682153723579e-01 1.3497999999999999e-01 2 0 0 -111 0 +V -75 0 0 0 0 0 0 2 0 +P 243 22 -8.2029197985667976e-02 -1.7893268748394126e-01 4.5302511305727694e-01 4.9394073433252722e-01 0 1 0 0 0 0 +P 244 22 1.7368549233198097e-01 1.0668255504719676e-01 -3.2194728432922044e-02 2.0635968195573082e-01 0 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 245 321 3.1196765661891573e-01 5.2753774638899031e-01 3.0966105128831014e+00 3.1950363880775470e+00 4.9359999999999998e-01 1 0 0 0 0 +P 246 111 1.1971265141411374e-02 7.1476378845153385e-02 1.0826442031294552e-01 1.8759789185276041e-01 1.3497999999999999e-01 2 0 0 -112 0 +V -77 0 0 0 0 0 0 2 0 +P 247 -321 3.7146363264552096e-01 2.5233125086536835e-02 1.5308117489269486e+00 1.6509535158909296e+00 4.9359999999999998e-01 1 0 0 0 0 +P 248 111 4.5901243856616902e-01 3.3522470827209677e-01 2.7867613575488490e+00 2.8473367359906829e+00 1.3497999999999999e-01 2 0 0 -113 0 +V -78 0 0 0 0 0 0 1 0 +P 249 130 -8.8835934438628372e-01 6.8074086066904238e-01 -5.6890766581735761e+01 5.6903950549417793e+01 4.9767000000000000e-01 1 0 0 0 0 +V -79 0 -4.4817862219771405e-06 3.0023353222897988e-06 -1.2846199085357989e-04 1.2858002379972176e-04 0 2 0 +P 250 22 -4.3665145174182041e-01 3.4929125535303568e-01 -1.3346660737281969e+01 1.3358368976318870e+01 0 1 0 0 0 0 +P 251 22 -1.0682997537163530e-01 1.4785343756005780e-02 -2.2312143912955911e+00 2.2338193548164194e+00 0 1 0 0 0 0 +V -80 0 1.1498498947914117e-05 -1.6837102901323914e-05 -3.5968316635069550e-04 3.6069740049514610e-04 0 2 0 +P 252 22 2.1038819336212194e-02 -3.0885983525310211e-02 -1.3571303869921980e-01 1.4076435902018464e-01 0 1 0 0 0 0 +P 253 22 6.6419842695921730e-02 -9.7178601158091210e-02 -2.6000708777066524e+00 2.6027339174654478e+00 0 1 0 0 0 0 +V -81 0 1.4686859594192499e-04 -2.0097206713904554e-04 -1.7779381811276310e-02 1.7781226190380851e-02 0 2 0 +P 254 22 1.3160148159474916e-01 -1.7607773501339169e-01 -1.1351519572335821e+01 1.1353647824371190e+01 0 1 0 0 0 0 +P 255 22 1.9756790216339634e-01 -2.7435110628171355e-01 -2.8496537235756634e+01 2.8498542700186409e+01 0 1 0 0 0 0 +V -82 0 5.4468947599719818e-06 1.0627040465845464e-05 -8.8638815061755207e-04 8.8650436585870627e-04 0 2 0 +P 256 22 7.4170914151783521e-02 1.1931245135626149e-01 -1.3390197719027501e+01 1.3390934685084687e+01 0 1 0 0 0 0 +P 257 22 1.8140566479408472e-02 6.0789768965475235e-02 -1.6319031665550834e+00 1.6331357632406374e+00 0 1 0 0 0 0 +V -83 0 1.1901070929278200e-05 1.0331918358570022e-05 -4.8683925535694022e-04 4.8720611336069926e-04 0 2 0 +P 258 22 5.7800358510051483e-02 1.0610466901086330e-01 -4.7377783347524538e+00 4.7393187940335411e+00 0 1 0 0 0 0 +P 259 22 9.6099152341945396e-02 2.7503238293923368e-02 -1.5578167178456963e+00 1.5610203078746385e+00 0 1 0 0 0 0 +V -84 0 1.9717825146052879e-05 -1.0024675780293960e-05 -2.6694203919439990e-03 2.6699382446536131e-03 0 2 0 +P 260 22 -3.1659375525207083e-02 2.9139435087521169e-02 -1.8076191689495109e+00 1.8081312127966784e+00 0 1 0 0 0 0 +P 261 22 8.7451068289363970e-02 -5.7504309359996640e-02 -5.7455202499548106e+00 5.7464734731468763e+00 0 1 0 0 0 0 +V -85 0 -1.1098678875795688e-05 7.9712988635923251e-06 -2.7960215080273293e-04 3.0407909509766429e-04 0 2 0 +P 262 22 -1.2404392105220950e-02 1.3072052856764920e-02 -3.3120578315562949e-01 3.3169567121854948e-01 0 1 0 0 0 0 +P 263 22 -2.1187813471082882e-04 -4.0107887412976712e-03 1.3371891962832829e-02 1.3962049037908679e-02 0 1 0 0 0 0 +V -86 0 4.3701901577387691e-05 -2.7778932303276074e-05 -3.6980602490661738e-04 3.7391937739307860e-04 0 2 0 +P 264 22 6.2980374428364197e-02 -1.0968065014364305e-01 -7.0367021794103213e-01 7.1494625545998147e-01 0 1 0 0 0 0 +P 265 22 2.4055413927146813e-01 -8.3259803324823314e-02 -1.8648425442445429e+00 1.8821360746754701e+00 0 1 0 0 0 0 +V -87 0 4.8701731099785062e-07 3.6608978379173926e-06 -1.2112849635753707e-05 1.2908375431671910e-05 0 2 0 +P 266 22 -2.7090617015867346e-02 1.4244131973944305e-01 -5.4202119215789846e-01 5.6107967691557348e-01 0 1 0 0 0 0 +P 267 22 5.3352751664943285e-02 5.4970537672586084e-02 -1.1115741347810988e-01 1.3499720994664230e-01 0 1 0 0 0 0 +V -88 0 5.7146814384201549e-06 2.4354026327390962e-05 1.9717191825030330e-04 1.9902137772319508e-04 0 2 0 +P 268 22 -2.7936966043945702e-02 1.5190345905548287e-02 3.2316443733638378e-01 3.2472522883110322e-01 0 1 0 0 0 0 +P 269 22 1.0251930686823132e-01 3.0265419391104781e-01 2.2501274191538188e+00 2.2727039340399169e+00 0 1 0 0 0 0 +V -89 0 0 0 0 0 0 1 0 +P 270 310 6.3629118454362399e-01 2.6066327066419842e-01 7.2899009219783402e+00 7.3391513605703720e+00 4.9767000000000000e-01 2 0 0 -114 0 +V -90 0 7.9367802508350484e-06 5.5245739059513326e-05 1.0292227500665664e-02 1.0292402314119905e-02 0 2 0 +P 271 22 7.8535141648213305e-02 9.9560856692336122e-02 2.1477224930174994e+01 2.1477599280040344e+01 0 1 0 0 0 0 +P 272 22 -2.9808474054989965e-02 2.3961204189102020e-01 4.1710356478041902e+01 4.1711055369063452e+01 0 1 0 0 0 0 +V -91 0 5.5297266074583105e-05 -1.0925677018674232e-04 1.2724502710143248e-02 1.2725651055903247e-02 0 2 0 +P 273 22 6.8440360627038010e-02 -7.5865663977273692e-02 4.4101211349196099e+00 4.4113045810279425e+00 0 1 0 0 0 0 +P 274 22 -5.8713569331480097e-03 -4.7758662190614712e-02 9.9876875379365302e+00 9.9878034481110625e+00 0 1 0 0 0 0 +V -92 0 8.1925385454488015e-05 -3.6875384522501292e-05 2.3250063164562518e-01 2.3250065045013255e-01 0 2 0 +P 275 22 1.6711452594100847e-02 1.6870653625057283e-02 3.6019552965433256e+01 3.6019560793008758e+01 0 1 0 0 0 0 +P 276 22 4.0969453328655292e-01 -2.0879998791888793e-01 1.1741018337664309e+03 1.1741019238127251e+03 0 1 0 0 0 0 +V -93 0 2.5961841133729550e-05 3.0674258044667582e-05 6.5765265966504665e-04 6.5893258982709882e-04 0 2 0 +P 277 22 1.3018449916600637e-02 3.4011182350692962e-02 2.7215110360084871e-01 2.7457688131793440e-01 0 1 0 0 0 0 +P 278 22 4.0520254140559964e-01 4.6012244020071186e-01 1.0322018464498882e+01 1.0340211165203236e+01 0 1 0 0 0 0 +V -94 0 3.8901737926929142e-05 2.7765787009590177e-05 1.3322338436249194e-04 1.4665811226059863e-04 0 2 0 +P 279 22 8.0063088182418432e-02 3.1238773946188861e-02 7.9613488602169380e-02 1.1715061525393101e-01 0 1 0 0 0 0 +P 280 22 5.6620908615590333e-02 6.6318274786224957e-02 3.8847625782063722e-01 3.9814299410312703e-01 0 1 0 0 0 0 +V -95 0 -2.0261701110488303e-04 -4.8018556141857103e-04 2.2688593345382702e-03 2.3305607184803791e-03 0 2 0 +P 281 22 -1.5904416100449204e-01 -5.0608925283349793e-01 2.3153084317170132e+00 2.3753051406004837e+00 0 1 0 0 0 0 +P 282 22 -8.8983864789347528e-02 -8.1716658249179147e-02 4.6205314557993754e-01 4.7758648407233734e-01 0 1 0 0 0 0 +V -96 0 5.8495528174864427e-06 -4.1082222803042357e-05 9.9224658184738723e-05 1.0820598546116414e-04 0 2 0 +P 283 22 9.1972477577124914e-02 -4.4592456889574522e-01 1.0769225359730650e+00 1.1692176043248705e+00 0 1 0 0 0 0 +P 284 22 -2.5486999986110755e-02 -2.1012184866980223e-02 5.0855773592181873e-02 6.0641642365914170e-02 0 1 0 0 0 0 +V -97 0 -4.3582543869767395e-05 7.8614637762069199e-06 1.0692921289149186e-04 1.1681873643143345e-04 0 2 0 +P 285 22 -1.8371320086265014e-01 7.4984574553145597e-02 5.9982550796311540e-01 6.3179416473668593e-01 0 1 0 0 0 0 +P 286 22 -1.8722012261886847e-01 -8.0752428112496038e-03 3.1025464783563805e-01 3.6245624613668997e-01 0 1 0 0 0 0 +V -98 0 -3.1549862434167774e-05 1.4291309528277945e-05 1.0486479030424113e-05 3.9779846943029794e-05 0 2 0 +P 287 22 -4.5641294538943424e-02 8.0409127662733962e-02 -2.3546345316033672e-03 9.2489458223355650e-02 0 1 0 0 0 0 +P 288 22 -2.1217902662870536e-01 3.6377118875589240e-02 8.8048427878029925e-02 2.3258495172858076e-01 0 1 0 0 0 0 +V -99 0 -2.0055761571577863e-04 2.0912498751302585e-04 -8.3309224193529549e-04 8.8283389170218331e-04 0 2 0 +P 289 22 -1.9843402797534637e-01 2.8458700251599517e-01 -8.9233754423776901e-01 9.5740906529855474e-01 0 1 0 0 0 0 +P 290 22 -5.2601345084628082e-01 4.7080724876546715e-01 -2.1169302521603504e+00 2.2315338465891585e+00 0 1 0 0 0 0 +V -100 0 -7.0205171904481768e-06 1.6319376283750368e-05 -1.6074154954470244e-04 1.6486830144931802e-04 0 2 0 +P 291 22 -4.8089177585023853e-02 1.0362587097307130e-01 -4.7632411591871276e-01 4.8983216874912877e-01 0 1 0 0 0 0 +P 292 22 1.8534885426808229e-02 -3.4926143952101800e-02 -2.0035006467754016e-01 2.0421441164972265e-01 0 1 0 0 0 0 +V -101 0 -2.9445537543939600e-06 1.8572518962028519e-06 -3.1558999495805265e-05 3.2102218420846526e-05 0 2 0 +P 293 22 3.5666402381186346e-02 2.3073588652214965e-02 -2.9391385055853259e-01 2.9696773276275618e-01 0 1 0 0 0 0 +P 294 22 -1.1952793505927364e-01 2.9821350131781360e-02 -6.0489333323150396e-01 6.1731044440470606e-01 0 1 0 0 0 0 +V -102 0 -8.7759702361641637e-05 4.7023241861943939e-05 -5.2519116174042308e-04 5.3503926182768037e-04 0 2 0 +P 295 22 -2.1472465776296304e-01 4.2117950914751449e-02 -1.0811445000066504e+00 1.1030657416198317e+00 0 1 0 0 0 0 +P 296 22 -3.0064913576336771e-01 2.3402868461541579e-01 -2.0030701687861194e+00 2.0389824494435782e+00 0 1 0 0 0 0 +V -103 0 -4.0051840698321302e-05 1.5544825812030132e-04 -1.5255056661093622e-03 1.5345528806099953e-03 0 2 0 +P 297 22 -5.4313704046613225e-02 4.0017399337820786e-01 -3.9524382331551000e+00 3.9730161326540991e+00 0 1 0 0 0 0 +P 298 22 -6.9171629961732761e-02 7.9094368332956660e-02 -7.5090556894472305e-01 7.5822147619659941e-01 0 1 0 0 0 0 +V -104 0 1.1538667519395299e-04 -1.5230967855984055e-04 -2.2806195109471177e-02 2.2807040238776183e-02 0 2 0 +P 299 22 4.9612560842926725e-03 -4.1366033271512226e-02 -2.5491239845056692e+00 2.5494644243747766e+00 0 1 0 0 0 0 +P 300 22 3.4014693925553080e-01 -4.1417459316756067e-01 -6.5661566925582846e+01 6.5663754169684097e+01 0 1 0 0 0 0 +V -105 0 7.5620785956994322e-05 -2.1431335219304692e-05 -1.8521909028600417e-02 1.8522145398627614e-02 0 2 0 +P 301 22 -1.0974672239015704e-03 -4.5233445978568466e-02 -1.0867124610184147e+01 1.0867218805303377e+01 0 1 0 0 0 0 +P 302 22 2.0211965316448932e-01 -1.1737316740827236e-02 -3.8369531602823471e+01 3.8370065748430363e+01 0 1 0 0 0 0 +V -106 0 -6.2050380654414509e-06 9.9394224008864708e-06 -1.4146072138620869e-02 1.4146078109456379e-02 0 2 0 +P 303 22 -9.4033662273491525e-02 4.0317931435716235e-02 -8.8853780567535210e+01 8.8853839472523276e+01 0 1 0 0 0 0 +P 304 22 -5.4882756440301453e-02 1.9822100618454153e-01 -2.5064170351061375e+02 2.5064178790135270e+02 0 1 0 0 0 0 +V -107 0 -2.2144550003270545e+01 -5.7752059811266328e+01 2.7142840331616411e+04 2.7142928916050954e+04 0 2 0 +P 305 211 -2.3773313121780820e-01 -8.7164593426833892e-01 3.6426137340252683e+02 3.6426252060369370e+02 1.3957000000000000e-01 1 0 0 0 0 +P 306 -211 -1.1373747167277996e-01 -4.4974691440525599e-02 6.6540356779718223e+01 6.6540615559915182e+01 1.3957000000000000e-01 1 0 0 0 0 +V -108 0 0 0 0 0 0 1 0 +P 307 310 -2.4546654743398341e-01 -2.3146159829648183e-01 2.8342132256983007e+02 2.8342196031881150e+02 4.9767000000000000e-01 2 0 0 -115 0 +V -109 0 -5.6270946127520340e-03 1.4375702714435555e-02 1.2772459726874328e+00 1.2810615693794176e+00 0 2 0 +P 308 -2212 4.0919391927145221e-02 1.1725248601390804e-01 1.2564638925178782e+01 1.2600235095232547e+01 9.3827000000000005e-01 1 0 0 0 0 +P 309 211 -1.0525237235338031e-01 4.7100855272609099e-02 2.0377528622594481e+00 2.0457793294976856e+00 1.3957000000000000e-01 1 0 0 0 0 +V -110 0 1.1450288377146512e-04 3.2494406652989600e-05 5.2787483859840093e-03 5.2804381960459557e-03 0 2 0 +P 310 22 -6.3766087007953286e-03 3.0788902609582693e-02 9.4162923456893888e-01 9.4215403892214522e-01 0 1 0 0 0 0 +P 311 22 2.6128546929969942e-01 4.1550866511718992e-02 1.0810037554410400e+01 1.0813274642712919e+01 0 1 0 0 0 0 +V -111 0 5.7894541595921829e-05 3.3524512174853601e-05 7.5872969366759844e-05 1.0552947084212687e-04 0 2 0 +P 312 22 1.8493418015052648e-01 6.9153434526408500e-02 1.3164339122203578e-01 2.3730324681129761e-01 0 1 0 0 0 0 +P 313 22 7.4962660998596956e-02 8.1342874367822907e-02 2.0896117223847074e-01 2.3643357472593826e-01 0 1 0 0 0 0 +V -112 0 6.9261092346014606e-07 4.1353457778057710e-06 6.2637590300657296e-06 1.0853685686557134e-05 0 2 0 +P 314 22 5.9945933835984077e-03 7.3910957463011503e-02 1.3827374467382689e-01 1.5690249599371084e-01 0 1 0 0 0 0 +P 315 22 5.9766717578129680e-03 -2.4345786178581225e-03 -3.0009324360881350e-02 3.0695395859049578e-02 0 1 0 0 0 0 +V -113 0 5.8480414582225960e-05 4.2709256374829027e-05 3.5504693519910010e-04 3.6276453269127142e-04 0 2 0 +P 316 22 4.6099053514328703e-01 3.2869887519126678e-01 2.7819803904781000e+00 2.8390086504004146e+00 0 1 0 0 0 0 +P 317 22 -1.9780965771179549e-03 6.5258330808300215e-03 4.7809670707489029e-03 8.3280855902691311e-03 0 1 0 0 0 0 +V -114 0 3.0355799215239374e+00 1.2435567393166538e+00 3.4778223250929109e+01 3.5013184297298878e+01 0 2 0 +P 318 -211 2.5778681463971853e-01 3.2771288396927750e-01 3.8506537962191199e+00 3.8756759693449960e+00 1.3957000000000000e-01 1 0 0 0 0 +P 319 211 3.7850436990390546e-01 -6.7049613305079067e-02 3.4392471257592194e+00 3.4634753912253751e+00 1.3957000000000000e-01 1 0 0 0 0 +V -115 0 -3.3015133249945685e+00 -3.1131474287994143e+00 3.8120032356080346e+03 3.8120118133013384e+03 0 2 0 +P 320 211 -2.0869993064495407e-01 7.4933172581466437e-02 1.1763461578134871e+02 1.1763490757616057e+02 1.3957000000000000e-01 1 0 0 0 0 +P 321 -211 -3.6766616789029316e-02 -3.0639477087794825e-01 1.6578670678848133e+02 1.6578705274265090e+02 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 10 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 136 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 16 2103 -4.3597932309017928e-02 -1.9178552605452839e-01 5.7710271643278456e+03 5.7710272192255625e+03 7.7132999999999996e-01 2 0 0 -9 0 +P 3 21 -6.5511378777462237e-01 -2.6708088178667958e-03 1.3902379475140679e+01 1.3917806446382523e+01 0 3 0 0 -3 0 +P 28 2 6.9871172008364035e-01 1.9445633487239519e-01 5.4217114364762290e+02 5.4217172917398170e+02 3.3000000000000002e-01 2 0 0 -13 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 2 1.5554951969939107e-01 -1.1414155502218004e+00 -2.5318090541773952e+02 2.5318352610953531e+02 0 3 0 0 -4 0 +P 31 2103 -1.5554951969939107e-01 1.1414155502218004e+00 -3.0079396582618142e+03 3.0079399777454469e+03 7.7132999999999996e-01 2 0 0 -13 0 +V -3 0 0 0 0 0 0 6 0 +P 5 -1 -2.6336683162149233e+00 1.2040498771434778e+00 7.5527386554890201e+00 8.0888692723150033e+00 0 3 0 0 -5 0 +P 11 1 1.1257705880566493e+00 -9.6356028506991842e-01 3.2813867683361453e+00 3.6155507136961815e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 -9.6370912240519885e-02 2.1371062251800688e-01 2.0354592242001850e+00 2.0489152828471759e+00 0 2 0 0 -9 0 +P 13 21 9.5280060735029493e-01 -3.6665346932772618e-02 2.4849955628758677e-02 9.5382957876527541e-01 0 2 0 0 -9 0 +P 14 21 1.8560548483485220e-02 -1.7257190047342610e-01 -1.8018846212308559e-01 2.5018680355946143e-01 0 2 0 0 -9 0 +P 15 21 7.9695242284356750e-05 -2.5824124117734876e-01 -4.6415843771256871e-01 5.3116061628844602e-01 0 2 0 0 -9 0 +V -4 0 0 0 0 0 0 2 0 +P 6 2 1.2812912648480181e+00 -6.4858594580034412e-01 -2.4187105165040478e+02 2.4187531498172203e+02 0 3 0 0 -5 0 +P 30 21 -1.1480277436005311e+00 -4.8222213924733737e-01 -9.6575619960129195e+00 9.7375053067246053e+00 0 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 24 -2.7038131088254236e+00 4.3210603841580824e+00 -1.9039627432725470e+02 2.0586031167139001e+02 7.8113663821200973e+01 3 0 0 -6 0 +P 8 22 1.3514360574585182e+00 -3.7655964528149486e+00 -4.3922038667661063e+01 4.4103872582647035e+01 0 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 24 -2.7038131088254236e+00 4.3210603841580824e+00 -1.9039627432725470e+02 2.0586031167139001e+02 7.8113663821200973e+01 2 0 0 -8 0 +V -7 0 0 0 0 0 0 1 0 +P 10 22 1.3514360574585182e+00 -3.7655964528149486e+00 -4.3922038667661063e+01 4.4103872582647043e+01 0 1 0 0 0 0 +V -8 0 0 0 0 0 0 11 0 +P 17 4 1.2527727551424732e+01 -2.0291998608611124e+00 -5.0600275742191691e+01 5.2189074669550124e+01 1.5000000000000000e+00 2 0 0 -11 0 +P 18 21 8.4413619755245706e-01 -5.9573077753593484e-01 -9.7003942899011300e+00 9.7552606556087653e+00 0 2 0 0 -11 0 +P 19 21 1.3955327171164982e+00 -1.7699729137026712e+00 -8.4370450330890154e+00 8.7329287510064866e+00 0 2 0 0 -11 0 +P 20 21 1.7406612186275408e+00 -4.8453470359648625e+00 -2.0800170594403422e+01 2.1427888046498008e+01 0 2 0 0 -11 0 +P 21 21 4.3275523129907159e+00 -8.8306149160675105e+00 -5.6722222314980336e+01 5.7568376502795338e+01 0 2 0 0 -11 0 +P 22 21 5.0727116372506353e-01 5.3006276683040177e-01 -4.1876929772878206e+00 4.2514777480721468e+00 0 2 0 0 -11 0 +P 23 21 -1.4242475998353649e-02 2.6112816047433607e-01 -9.0335618313322297e-01 9.4044838131622055e-01 0 2 0 0 -11 0 +P 24 21 -2.1919670271754521e+00 3.5035232013803053e+00 -4.8234484426313431e+00 6.3517752754294783e+00 0 2 0 0 -11 0 +P 25 21 -1.7594584975864209e+00 2.2946842674852479e+00 -5.0312742416153835e+00 5.8030156458961768e+00 0 2 0 0 -11 0 +P 26 21 -1.6358735708068866e+00 1.9697163809587677e+00 -2.8994328596137606e+00 3.8681488943020028e+00 0 2 0 0 -11 0 +P 27 -3 -1.8445152698695317e+01 1.3832811111161117e+01 -2.6290961648407542e+01 3.4971917100915213e+01 5.0000000000000000e-01 2 0 0 -11 0 +V -9 0 0 0 0 0 0 1 0 +P 39 92 1.9572425945831762e+00 -1.4091136771899875e+00 5.7757245133761753e+03 5.7784268622207192e+03 1.7668483585073082e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 16 0 +P 40 -211 7.4997996932615019e-01 -6.4116142761545669e-01 1.9858860190347392e+00 2.2218868099320424e+00 1.3957000000000000e-01 1 0 0 0 0 +P 41 223 2.8112506374623569e-01 5.4000903387299448e-01 5.8416822415061209e-01 1.1500024027454310e+00 7.8141663284205498e-01 2 0 0 -19 0 +P 42 2214 4.4881519761355032e-01 -1.3187483483780489e+00 2.3761689627847922e+00 3.0194592377826033e+00 1.2371026072926299e+00 2 0 0 -20 0 +P 43 223 4.4098049591794489e-02 3.6975571581476430e-01 1.2240256589844973e+00 1.5000787933206947e+00 7.8315620725532742e-01 2 0 0 -21 0 +P 44 -3122 5.1854209512044214e-01 2.8340706828298096e-01 1.4726857248798244e+00 1.9397810643032543e+00 1.1156800000000000e+00 2 0 0 -22 0 +P 45 -313 2.7417269706128827e-01 4.4906334318631121e-02 2.5317079951813390e+00 2.6984767938152476e+00 8.9165261577505939e-01 2 0 0 -23 0 +P 46 -213 -4.0680312455968282e-01 -2.5441007810341781e-01 1.5500120461449101e+00 1.7845955709874386e+00 7.4298771107034045e-01 2 0 0 -24 0 +P 47 111 1.0967169427730127e-01 -4.8556656735419729e-01 1.5733209930176220e+00 1.6557056862038457e+00 1.3497999999999999e-01 2 0 0 -25 0 +P 48 211 -2.0496925059681456e-01 3.5773003283645954e-01 8.1445332873483611e+00 8.1561562898039721e+00 1.3957000000000000e-01 1 0 0 0 0 +P 49 -211 2.9397211730379580e-01 -2.7463569397919968e-01 7.6207890473349726e+00 7.6326764544974779e+00 1.3957000000000000e-01 1 0 0 0 0 +P 50 223 -2.5509337878352928e-01 2.6149346255806938e-01 1.3907466962922905e+02 1.3907740332277268e+02 7.9178978467983019e-01 2 0 0 -26 0 +P 51 213 -3.6699974497245429e-02 -1.8001381623673610e-01 1.8723285347838268e+02 1.8723606959241326e+02 1.0819347925577454e+00 2 0 0 -27 0 +P 52 311 -2.0826395264017022e-01 -3.8873428077532614e-02 7.7769704741499027e+02 7.7769723550906360e+02 4.9767000000000000e-01 2 0 0 -28 0 +P 53 -321 2.9365263740186642e-01 -1.5350918725169876e-01 9.7138769739024906e+02 9.7138787931445381e+02 4.9359999999999998e-01 1 0 0 0 0 +P 54 2212 7.1090572027448316e-03 3.1651971253956951e-01 1.4534367235662871e+03 1.4534370608997706e+03 9.3827000000000005e-01 1 0 0 0 0 +P 55 113 4.7933697015449042e-02 -2.3601649041716902e-01 2.2178322239381737e+03 2.2178323944788513e+03 8.3573909078354769e-01 2 0 0 -29 0 +V -11 0 0 0 0 0 0 1 0 +P 56 92 -2.7038131088254218e+00 4.3210603841580841e+00 -1.9039627432725467e+02 2.0586031167138998e+02 7.8113663821201015e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 20 0 +P 57 423 9.9248375242903197e+00 -1.8312835036795285e+00 -4.1176681461967789e+01 4.2442925679844130e+01 2.0066999999999999e+00 2 0 0 -30 0 +P 58 213 3.1593705763741533e+00 -9.7376654979652177e-01 -1.3392766193005166e+01 1.3814953051794681e+01 7.4625584783485499e-01 2 0 0 -31 0 +P 59 113 9.3523891341231291e-01 -2.2812398079724634e+00 -1.3732909593833934e+01 1.3984515733375392e+01 9.4612234830851460e-01 2 0 0 -32 0 +P 60 -213 1.0751687044528315e+00 -1.8471396089324810e+00 -1.0247617174688440e+01 1.0494828426213823e+01 7.4823355897352140e-01 2 0 0 -33 0 +P 61 211 1.0910074909423624e+00 -1.6408161014628322e+00 -1.4658262289795276e+01 1.4790764279287474e+01 1.3957000000000000e-01 1 0 0 0 0 +P 62 2112 1.8670048695663655e+00 -2.5858616180543601e+00 -1.5263383116042007e+01 1.5621332959215980e+01 9.3957000000000002e-01 1 0 0 0 0 +P 63 111 3.8895094638623819e-02 -6.8899625648955701e-02 -4.4678720222461937e-01 4.7339031599011050e-01 1.3497999999999999e-01 2 0 0 -34 0 +P 64 -2214 1.1524734474439160e+00 -3.9869224263739502e+00 -2.0153218017127685e+01 2.0618217127901126e+01 1.3171695435320887e+00 2 0 0 -35 0 +P 65 221 8.6263433165107117e-01 -6.4053962327754621e-01 -6.5229053808755504e+00 6.6334323776976012e+00 5.4744999999999999e-01 2 0 0 -36 0 +P 66 211 2.7687726878260471e-01 -4.4854367382269267e-01 -5.0833022953049456e+00 5.1124646169579897e+00 1.3957000000000000e-01 1 0 0 0 0 +P 67 -211 3.6317039313948940e-01 -6.1629174309821100e-01 -4.9883909457620250e+00 5.0413522253185885e+00 1.3957000000000000e-01 1 0 0 0 0 +P 68 111 -3.8693244171548362e-03 -6.3946170356676169e-01 -1.8470751031459909e+00 1.9592938215238989e+00 1.3497999999999999e-01 2 0 0 -37 0 +P 69 321 3.3833666963563275e-01 5.4299664689447102e-01 -3.1762619017227935e+00 3.2774376712447890e+00 4.9359999999999998e-01 1 0 0 0 0 +P 70 -323 -1.3745959258300033e+00 1.5798806728773855e+00 -2.7160124589975716e+00 3.5482417244696087e+00 9.0981248507430379e-01 2 0 0 -38 0 +P 71 211 -1.0294428816501737e+00 9.5496503398017951e-01 -2.7208975408319782e+00 3.0650406319183578e+00 1.3957000000000000e-01 1 0 0 0 0 +P 72 -211 -3.6822566989713057e-01 1.1035290774262612e+00 -1.2321916930023735e+00 1.7003360614597640e+00 1.3957000000000000e-01 1 0 0 0 0 +P 73 213 -1.6161918040002012e+00 1.2552448784983889e+00 -1.7897181449593560e+00 2.7573168640824823e+00 4.6042328160403989e-01 2 0 0 -39 0 +P 74 2112 -3.2740868421481886e+00 2.8787612972034244e+00 -6.5131664185879137e+00 7.8937342137498883e+00 9.3957000000000002e-01 1 0 0 0 0 +P 75 -2112 -2.6281380275611408e+00 3.1441450497976531e+00 -4.6117236755707163e+00 6.2404763144169966e+00 9.3957000000000002e-01 1 0 0 0 0 +P 76 313 -1.3494277917651111e+01 1.0422303713166622e+01 -2.0123003719808548e+01 2.6390257574927315e+01 8.8908096104164602e-01 2 0 0 -40 0 +V -13 0 0 0 0 0 1 1 0 +P 29 21 1.5824732804086550e+00 3.3756291283162567e+00 -3.7328965916562061e+03 3.7328984533592948e+03 0 2 0 0 -13 0 +P 77 92 9.7760773719237326e-01 4.2292788741631151e+00 -6.2083226682664099e+03 7.2927476655854471e+03 3.8263401989466056e+03 2 0 0 -14 0 +V -14 0 0 0 0 0 0 30 0 +P 78 211 3.8125690076946724e-02 1.8129069100767256e-01 4.0322325983256000e+01 4.0322993097831421e+01 1.3957000000000000e-01 1 0 0 0 0 +P 79 -213 8.1415453961843220e-01 -1.3658531520860595e-01 1.8147547255500226e+02 1.8147807889488487e+02 5.1427342333104598e-01 2 0 0 -41 0 +P 80 213 -3.1343969057550247e-01 -6.8751614116676532e-02 2.3490909782090895e+02 2.3491051292454674e+02 7.4958136047652402e-01 2 0 0 -42 0 +P 81 -211 2.4510416203644247e-01 1.9103572210561356e-01 4.9160055436805315e+01 4.9161235755746112e+01 1.3957000000000000e-01 1 0 0 0 0 +P 82 2212 5.9834549250678958e-02 2.2658407019457144e-01 9.6037237171125334e+00 9.6522940455458546e+00 9.3827000000000005e-01 1 0 0 0 0 +P 83 331 -4.4228289654992226e-01 -2.6644076626223800e-01 1.5250029814397761e+01 1.5288792292206974e+01 9.5768239605797145e-01 2 0 0 -43 0 +P 84 -2212 4.0600120601960499e-01 1.1341309506958630e-01 5.8544874327854846e+00 5.9441629522554207e+00 9.3827000000000005e-01 1 0 0 0 0 +P 85 211 3.1262473932432039e-01 6.7353189834058402e-01 1.8631926232668552e+00 2.0105586243668481e+00 1.3957000000000000e-01 1 0 0 0 0 +P 86 -213 -4.0230691978361560e-01 -7.2916784443047689e-01 1.2727585532551626e+00 1.6552834098551243e+00 6.5307903733029116e-01 2 0 0 -44 0 +P 87 111 -1.0918019607099445e-01 9.2778953753129487e-02 8.7863240603013404e-01 9.0041254700272333e-01 1.3497999999999999e-01 2 0 0 -45 0 +P 88 211 -1.3970682706965667e-01 -6.9289838877254262e-02 1.0396580156519743e-01 2.3368301627760824e-01 1.3957000000000000e-01 1 0 0 0 0 +P 89 311 3.4248690127551151e-01 -3.5064896127775863e-01 6.5641413010847338e-01 9.5854416210028415e-01 4.9767000000000000e-01 2 0 0 -46 0 +P 90 -311 3.4345529704259643e-02 4.2425337653113343e-01 -1.1177846011983017e+00 1.2954877021742741e+00 4.9767000000000000e-01 2 0 0 -47 0 +P 91 221 -2.2059027947856552e-02 6.8777216446446396e-02 -2.5995327345599137e+00 2.6575343547665886e+00 5.4744999999999999e-01 2 0 0 -48 0 +P 107 -213 5.1568029838271176e-02 1.0489281204351286e+00 -2.8682166939055642e+03 2.8682169478887886e+03 5.9501970391005188e-01 2 0 0 -60 0 +P 92 -211 7.8520032410541465e-02 8.6029665973671565e-02 -1.7637091485257692e-01 2.5328439237984829e-01 1.3957000000000000e-01 1 0 0 0 0 +P 93 211 9.1990315018622704e-02 -2.4519229699912645e-01 -1.7635783993765985e+00 1.7883707770517441e+00 1.3957000000000000e-01 1 0 0 0 0 +P 94 113 2.3916994123891654e-02 3.2774863600096921e-01 -2.1964548095601693e+00 2.3336785531389950e+00 7.1669426391767155e-01 2 0 0 -49 0 +P 95 -211 -2.2116319795837658e-01 -7.0985668931981008e-02 -1.4721936080260471e+02 1.4721961019863397e+02 1.3957000000000000e-01 1 0 0 0 0 +P 96 213 5.5418235924584147e-01 1.7536325683372644e+00 -1.7140605218064102e+03 1.7140616606041549e+03 7.2221363743955924e-01 2 0 0 -50 0 +P 97 113 -6.1783849261428873e-02 1.4046889857876368e-01 -1.0047869804122965e+02 1.0048130714945734e+02 7.0765644735339350e-01 2 0 0 -51 0 +P 98 221 5.3919364001689940e-01 -4.4261608605164110e-01 -1.6979921711826634e+02 1.6980153260279991e+02 5.4744999999999999e-01 2 0 0 -52 0 +P 99 1114 -2.0186593100368855e-01 5.2273469161686792e-01 -6.6287974334912337e+02 6.6288096452226989e+02 1.1423580713372095e+00 2 0 0 -53 0 +P 100 223 5.4569932897003848e-01 4.9089417068522490e-01 -5.5137637879476370e+02 5.5137741731893857e+02 7.7876288546928918e-01 2 0 0 -54 0 +P 101 -2114 -3.7116038230162590e-01 4.2691750743684054e-01 -3.0183378648302647e+02 3.0183654713177589e+02 1.1603892295315890e+00 2 0 0 -55 0 +P 102 213 1.2718626065914557e-01 -4.3273443653089196e-02 -2.0958549985729146e+01 2.0973175423021143e+01 7.7150559601649060e-01 2 0 0 -56 0 +P 103 111 -4.7798486804409918e-01 9.0585383083558874e-02 -8.5228987495888582e+00 8.5378391845859252e+00 1.3497999999999999e-01 2 0 0 -57 0 +P 104 113 1.5181900039448251e-01 4.9030903333713738e-02 -9.3885028370079510e+01 9.3887609752929094e+01 6.7768726512342226e-01 2 0 0 -58 0 +P 105 -211 -2.9881524415693622e-01 -4.2409333153494246e-02 -1.6592385765903004e+00 1.6922297540891829e+00 1.3957000000000000e-01 1 0 0 0 0 +P 106 2224 -3.7739651006785435e-01 -2.1399552580528344e-01 -1.0092898709838120e+02 1.0093591655187358e+02 1.1002687175001074e+00 2 0 0 -59 0 +V -15 0 0 0 0 0 2 1 0 +P 32 21 1.9264630307413937e+00 -4.3605697082707904e+00 -3.8703467637965021e+00 6.1404732766727497e+00 0 2 0 0 -15 0 +P 33 21 -1.9264630307413937e+00 4.3605697082707904e+00 1.0934871286863569e+01 1.1928840599562703e+01 0 2 0 0 -15 0 +P 108 92 0 0 7.0645245230670666e+00 1.8069313876235451e+01 1.6631073243206497e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 12 0 +P 109 221 -2.7330901053064516e-01 1.7937353255594365e-01 6.5560086158529540e-01 9.1454178233157846e-01 5.4744999999999999e-01 2 0 0 -61 0 +P 110 211 -3.8949504695687842e-01 6.3318573167586201e-01 2.8287487702745040e-01 8.0754476244672213e-01 1.3957000000000000e-01 1 0 0 0 0 +P 111 -3214 1.3070293253442316e-02 6.8191945199945314e-01 3.6368408201980333e+00 3.9512642278438408e+00 1.3858906433044105e+00 2 0 0 -62 0 +P 112 111 -5.1252162865341999e-01 2.2292822157692199e-01 -3.3826285438294201e-01 6.6709577338512560e-01 1.3497999999999999e-01 2 0 0 -63 0 +P 113 3312 -2.8307230829558164e-02 7.4361433324065440e-01 2.8196795987175673e+00 3.2015918392796796e+00 1.3212999999999999e+00 2 0 0 -64 0 +P 114 321 1.7310712184575286e-01 2.5372564212865023e-01 -3.7818935156200967e-02 5.8259248962174692e-01 4.9359999999999998e-01 1 0 0 0 0 +P 115 -211 -1.7176330612558119e-01 2.3528839325019374e-01 6.2378220828836273e-01 7.0245803405367480e-01 1.3957000000000000e-01 1 0 0 0 0 +P 116 -2114 -2.3785732100599724e-01 -4.3066782908091966e-01 9.2976032860807897e-02 1.3554702372103349e+00 1.2596047543237858e+00 2 0 0 -65 0 +P 117 2214 6.0515337633293520e-01 -9.5121595517125890e-01 -9.1396794922064373e-01 1.8612896641441454e+00 1.1653494752166464e+00 2 0 0 -66 0 +P 118 221 1.5610406892865505e-01 -4.1180279740384002e-01 2.4550193443675206e-01 7.4425985152895202e-01 5.4744999999999999e-01 2 0 0 -67 0 +P 119 223 -1.6654532327853938e-01 2.6409934496084531e-01 9.2003618590961966e-01 1.2501855628480039e+00 7.8677287030995102e-01 2 0 0 -68 0 +P 120 -213 8.3236400701983415e-01 -1.4204480697325057e+00 -9.2271825719703426e-01 2.0310196515416505e+00 7.5041940526262951e-01 2 0 0 -69 0 +V -17 0 0 0 0 0 5 1 0 +P 34 21 -1.2874686984272923e+00 -4.5354152466705555e+00 2.9174823306294378e+01 2.9553305772157866e+01 0 2 0 0 -17 0 +P 35 21 -1.5824732804086550e+00 -3.3756291283162567e+00 1.8613755585412271e+01 1.8983439906629435e+01 0 2 0 0 -17 0 +P 36 21 1.2874686984272923e+00 4.5354152466705555e+00 7.6246561156214881e+01 7.6392183207822896e+01 0 2 0 0 -17 0 +P 37 21 -2.4549304752250420e+00 1.9106102320850373e+00 1.4255136986869084e+02 1.4258530838251687e+02 0 2 0 0 -17 0 +P 38 21 2.4549304752250420e+00 -1.9106102320850373e+00 3.9326543344547179e+02 3.9327773679443379e+02 0 2 0 0 -17 0 +P 121 92 -1.5824732804086552e+00 -3.3756291283162563e+00 6.5985194336208417e+02 6.6079197406356082e+02 3.5036363030476608e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 21 0 +P 122 -213 2.4470237977472631e-01 9.0661371500187479e-02 1.0957930773391942e+01 1.0984198835469098e+01 7.1293652152266018e-01 2 0 0 -70 0 +P 123 211 1.4542095804863758e-01 8.3928851259360959e-01 1.4793046030567339e+01 1.4818206474124844e+01 1.3957000000000000e-01 1 0 0 0 0 +P 124 -211 1.6346163015651471e-01 6.7768762034861363e-01 3.6385442177273340e+01 3.6392387424238997e+01 1.3957000000000000e-01 1 0 0 0 0 +P 125 111 -3.2068447332136946e-01 3.8594024532024324e-01 2.9733721957725852e+00 3.0184350613158366e+00 1.3497999999999999e-01 2 0 0 -71 0 +P 126 321 3.3497849686451375e-01 1.2223626454055394e+00 2.9996662117980971e+01 3.0027483414541404e+01 4.9359999999999998e-01 1 0 0 0 0 +P 127 221 -5.8214749389140619e-01 5.7231243477632643e-01 4.5061968638670571e+01 4.5072687476149831e+01 5.4744999999999999e-01 2 0 0 -72 0 +P 128 -313 -9.2056140784737284e-02 1.1853320044069728e+00 4.0445501109361459e+01 4.0472952620159873e+01 8.9880337817518030e-01 2 0 0 -73 0 +P 129 -211 -6.8690343434950507e-02 -2.4724652780047213e-01 1.0978301805670297e+01 1.0982187374565884e+01 1.3957000000000000e-01 1 0 0 0 0 +P 130 3222 -5.6571475378204539e-01 -1.8495675331422309e-02 7.6655798754955228e+01 7.6667114586566711e+01 1.1893700000000000e+00 2 0 0 -74 0 +P 131 -3222 8.9269875728812620e-01 -2.0156941201723866e-01 1.7491908481387679e+02 1.7492552236429151e+02 1.1893700000000000e+00 2 0 0 -75 0 +P 132 111 5.4105896816734045e-01 -3.9755607846732188e-01 3.4247692832522112e+01 3.4254539547244640e+01 1.3497999999999999e-01 2 0 0 -76 0 +P 133 221 4.7159087264181826e-01 1.2020772703630062e-01 4.8034580061584379e+01 4.8040164769118533e+01 5.4744999999999999e-01 2 0 0 -77 0 +P 134 223 -3.9429121872598855e-01 -3.4625309703953722e-01 2.6395512218946230e+01 2.6411912261172318e+01 7.6856178603350211e-01 2 0 0 -78 0 +P 135 213 3.9795313085803385e-01 -6.1677401758222283e-01 3.1845668885775709e+01 3.1863855985015093e+01 7.8734653628175211e-01 2 0 0 -79 0 +P 136 313 1.0265114771882194e-01 -2.2622249924026197e-01 2.3452325229467018e+01 2.3473299881761864e+01 9.6048674802712919e-01 2 0 0 -80 0 +P 137 -313 -5.5700154512051092e-01 -1.6396713032419616e+00 1.3646660379336359e+01 1.3785980020161174e+01 9.0726672119751850e-01 2 0 0 -81 0 +P 138 111 -5.4077088808668135e-02 -2.3831882224430384e-01 3.8434254226100957e+00 3.8535514492654079e+00 1.3497999999999999e-01 2 0 0 -82 0 +P 139 -213 -5.8266223094836611e-01 -1.4614386039001783e+00 9.6551877108618420e+00 9.8199075697669720e+00 8.5594209993767068e-01 2 0 0 -83 0 +P 140 111 -7.2162541386152523e-01 -9.6677069323893028e-01 7.6826305172722131e+00 7.7779444634529762e+00 1.3497999999999999e-01 2 0 0 -84 0 +P 141 323 -9.0562613680950854e-01 -1.6754637359482516e+00 1.0954221378986349e+01 1.1149779322154751e+01 8.3383180723566952e-01 2 0 0 -85 0 +P 142 -313 -3.2412782438111951e-02 -4.3364122365194685e-01 6.9269303072013768e+00 6.9998631630231944e+00 9.0918948570052072e-01 2 0 0 -86 0 +V -19 0 0 0 0 0 0 3 0 +P 143 211 8.5723244854931269e-02 6.0053586839736363e-02 3.4776255196298755e-01 3.8906745616741811e-01 1.3957000000000000e-01 1 0 0 0 0 +P 144 -211 1.8531506706893134e-02 1.1294735671448289e-01 -1.0826952941544615e-01 2.1048182351323930e-01 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 1.7687031218441127e-01 3.6700809031877518e-01 3.4467520160307075e-01 5.5045312306477356e-01 1.3497999999999999e-01 2 0 0 -87 0 +V -20 0 0 0 0 0 0 2 0 +P 146 2112 2.4934049273082956e-01 -1.0034513778020797e+00 2.1420894051923574e+00 2.5574252977683418e+00 9.3957000000000002e-01 1 0 0 0 0 +P 147 211 1.9947470488272068e-01 -3.1529697057596912e-01 2.3407955759243465e-01 4.6203394001426124e-01 1.3957000000000000e-01 1 0 0 0 0 +V -21 0 0 0 0 0 0 3 0 +P 148 211 2.4202018503168082e-01 1.4484617014986720e-01 6.7976534371923969e-01 7.4907602444050325e-01 1.3957000000000000e-01 1 0 0 0 0 +P 149 -211 -6.6861426897547510e-02 -6.1023832547298297e-02 2.4621632999211213e-01 2.9714747954563148e-01 1.3957000000000000e-01 1 0 0 0 0 +P 150 111 -1.3106070854233884e-01 2.8593337821219544e-01 2.9804398527314574e-01 4.5385528933456026e-01 1.3497999999999999e-01 2 0 0 -88 0 +V -22 0 9.6563352047872456e+01 5.2776306427173331e+01 2.7424479409799136e+02 3.6122768733868139e+02 0 2 0 +P 151 -2212 3.3107085829399807e-01 2.5462012600502582e-01 1.1978746459665013e+00 1.5778762886005071e+00 9.3827000000000005e-01 1 0 0 0 0 +P 152 211 1.8747123682644409e-01 2.8786942277955141e-02 2.7481107891332301e-01 3.6190477570274704e-01 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 153 -321 1.1436683630808112e-01 1.7624680147292271e-01 8.9963936691443347e-01 1.0474419596229463e+00 4.9359999999999998e-01 1 0 0 0 0 +P 154 211 1.5980586075320719e-01 -1.3134046715429157e-01 1.6320686282669057e+00 1.6510348341923013e+00 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 156 111 -2.7875872913594103e-02 -4.1177083616346186e-02 1.2016647573442882e+00 1.2102439448099500e+00 1.3497999999999999e-01 2 0 0 -89 0 +P 155 -211 -3.7892725164608876e-01 -2.1323299448707161e-01 3.4834728880062177e-01 5.7435162617748858e-01 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 1.9645533442150538e-05 -8.6979728910064382e-05 2.8182960414027593e-04 2.9658720641656587e-04 0 2 0 +P 157 22 6.3688804206746011e-02 -1.4462149743960712e-01 3.3361177481488985e-01 3.6914557778483581e-01 0 1 0 0 0 0 +P 158 22 4.5982890070555262e-02 -3.4094506991459012e-01 1.2397092182027323e+00 1.2865601084190099e+00 0 1 0 0 0 0 +V -26 0 0 0 0 0 0 3 0 +P 159 -211 -9.6603613340956990e-02 8.1396753813179970e-02 1.3365449629037009e+01 1.3366775275318552e+01 1.3957000000000000e-01 1 0 0 0 0 +P 160 211 -1.1685871788492098e-01 3.0883905152444485e-01 5.6084708578525380e+01 5.6085854309644873e+01 1.3957000000000000e-01 1 0 0 0 0 +P 161 111 -4.1631047557651339e-02 -1.2874234277955540e-01 6.9624511421666696e+01 6.9624773737809306e+01 1.3497999999999999e-01 2 0 0 -90 0 +V -27 0 0 0 0 0 0 2 0 +P 162 211 4.9615297183541651e-01 -1.7952305223659404e-01 8.7694255163022987e+01 8.7695953525120132e+01 1.3957000000000000e-01 1 0 0 0 0 +P 163 111 -5.3285294633266200e-01 -4.9076400014206613e-04 9.9538598315359692e+01 9.9540116067293155e+01 1.3497999999999999e-01 2 0 0 -91 0 +V -28 0 0 0 0 0 0 1 0 +P 164 130 -2.0826395264017022e-01 -3.8873428077532614e-02 7.7769704741499027e+02 7.7769723550906360e+02 4.9767000000000000e-01 1 0 0 0 0 +V -29 0 0 0 0 0 0 2 0 +P 165 211 4.9099984147424301e-03 1.9716298245156322e-01 1.5278552690721040e+03 1.5278552881763790e+03 1.3957000000000000e-01 1 0 0 0 0 +P 166 -211 4.3023698600706616e-02 -4.3317947286873226e-01 6.8997695486606995e+02 6.8997710630247286e+02 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 167 421 8.7573421888733503e+00 -1.5584005896471986e+00 -3.6683661548972424e+01 3.7792684999883136e+01 1.8645000000000000e+00 2 0 0 -92 0 +P 168 22 1.1674953354169699e+00 -2.7288291403232995e-01 -4.4930199129953658e+00 4.6502406799609899e+00 0 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 169 211 4.2875839023686985e-01 -2.0671583581217681e-01 -3.0239811985057781e+00 3.0643934583846248e+00 1.3957000000000000e-01 1 0 0 0 0 +P 170 111 2.7306121861372836e+00 -7.6705071398434499e-01 -1.0368784994499388e+01 1.0750559593410056e+01 1.3497999999999999e-01 2 0 0 -93 0 +V -32 0 0 0 0 0 0 2 0 +P 171 -211 6.6913532265409348e-01 -1.1497333163713761e+00 -9.4612474426376263e+00 9.5553289705019964e+00 1.3957000000000000e-01 1 0 0 0 0 +P 172 211 2.6610359075821943e-01 -1.1315064916010875e+00 -4.2716621511963080e+00 4.4291867628733934e+00 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 2 0 +P 173 -211 9.8073095541060518e-01 -1.0256404175782887e+00 -6.3296668889138790e+00 6.4882920851779993e+00 1.3957000000000000e-01 1 0 0 0 0 +P 174 111 9.4437749042226293e-02 -8.2149919135419225e-01 -3.9179502857745612e+00 4.0065363410358232e+00 1.3497999999999999e-01 2 0 0 -94 0 +V -34 0 5.6807710352650527e-07 -1.0063042688640729e-06 -6.5254907358017688e-06 6.9140389564218331e-06 0 2 0 +P 175 22 -3.1320614758231377e-02 -6.7555428947804044e-02 -1.3895740843388496e-01 1.5765112827955549e-01 0 1 0 0 0 0 +P 176 22 7.0215709396855189e-02 -1.3441967011516463e-03 -3.0782979379073439e-01 3.1573918771055498e-01 0 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 177 -2112 1.0158607703232485e+00 -2.5256186969806884e+00 -1.3305053132739511e+01 1.3613153696228572e+01 9.3957000000000002e-01 1 0 0 0 0 +P 178 -211 1.3661267712066744e-01 -1.4613037293932616e+00 -6.8481648843881722e+00 7.0050634316725500e+00 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 3 0 +P 179 111 2.0577497595879218e-01 -9.0184808666137053e-02 -1.4114507077389808e+00 1.4355797927046268e+00 1.3497999999999999e-01 2 0 0 -95 0 +P 180 111 4.1762967717743038e-01 -1.7457001757955024e-01 -2.2827569132806103e+00 2.3311130311135639e+00 1.3497999999999999e-01 2 0 0 -96 0 +P 181 111 2.3922967851484872e-01 -3.7578479703185902e-01 -2.8286977598559608e+00 2.8667395538794112e+00 1.3497999999999999e-01 2 0 0 -97 0 +V -37 0 -1.4153395206062958e-06 -2.3390528252416852e-04 -6.7563174062637891e-04 7.1667962649706767e-04 0 2 0 +P 182 22 -5.2764102271312105e-02 -2.7285017863169636e-01 -6.6581425086460921e-01 7.2148450234377659e-01 0 1 0 0 0 0 +P 183 22 4.8894777854157266e-02 -3.6661152493506532e-01 -1.1812608522813814e+00 1.2378093191801220e+00 0 1 0 0 0 0 +V -38 0 0 0 0 0 0 2 0 +P 184 -311 -4.6100841314703395e-01 9.2307915799673013e-01 -1.4688030567429675e+00 1.8627028043458205e+00 4.9767000000000000e-01 2 0 0 -98 0 +P 185 -211 -9.1358751268296934e-01 6.5680151488065541e-01 -1.2472094022546043e+00 1.6855389201237880e+00 1.3957000000000000e-01 1 0 0 0 0 +V -39 0 0 0 0 0 0 2 0 +P 186 211 -2.9732466916018679e-01 3.8062348944596097e-01 -5.2622083077712678e-01 7.2778042516476327e-01 1.3957000000000000e-01 1 0 0 0 0 +P 187 111 -1.3188671348400147e+00 8.7462138905242814e-01 -1.2634973141822292e+00 2.0295364389177188e+00 1.3497999999999999e-01 2 0 0 -99 0 +V -40 0 0 0 0 0 0 2 0 +P 188 321 -1.0177148179868251e+01 7.8877952464503291e+00 -1.5602898362297932e+01 2.0235753931818788e+01 4.9359999999999998e-01 1 0 0 0 0 +P 189 -211 -3.3171297377828615e+00 2.5345084667162929e+00 -4.5201053575106149e+00 6.1545036431085274e+00 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 190 -211 6.5734504515515368e-01 -8.4783501213816281e-02 1.6242754517480276e+02 1.6242895739999059e+02 1.3957000000000000e-01 1 0 0 0 0 +P 191 111 1.5680949446327844e-01 -5.1801813994789669e-02 1.9047927380199486e+01 1.9049121494894198e+01 1.3497999999999999e-01 2 0 0 -100 0 +V -42 0 0 0 0 0 0 2 0 +P 192 211 -5.0619922995651788e-02 -2.7314198696764880e-01 1.7851834426888692e+02 1.7851861496553065e+02 1.3957000000000000e-01 1 0 0 0 0 +P 193 111 -2.6281976757985070e-01 2.0439037285097228e-01 5.6390753552022026e+01 5.6391897959015616e+01 1.3497999999999999e-01 2 0 0 -101 0 +V -43 0 0 0 0 0 0 3 0 +P 195 -211 4.1840956779000425e-02 1.1065370009422846e-02 2.3223399295776672e+00 2.3269326680177986e+00 1.3957000000000000e-01 1 0 0 0 0 +P 196 221 -4.7666894429362194e-01 -2.2991460991983190e-01 9.2810980530629781e+00 9.3122798810698342e+00 5.4744999999999999e-01 2 0 0 -102 0 +P 194 211 -7.4549090353008274e-03 -4.7591526351828985e-02 3.6465918317571173e+00 3.6495797431193293e+00 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 2 0 +P 197 -211 3.2159859847224199e-02 5.1524931983974856e-02 2.2591055305043298e-01 2.7240491566948427e-01 1.3957000000000000e-01 1 0 0 0 0 +P 198 111 -4.3446677963083974e-01 -7.8069277641445167e-01 1.0468480002047293e+00 1.3828784941856385e+00 1.3497999999999999e-01 2 0 0 -103 0 +V -45 0 -3.5529310722325376e-06 3.0192034773813072e-06 2.8592368293834157e-05 2.9301135473266580e-05 0 2 0 +P 199 22 1.0875639270421181e-02 -2.5150996814891705e-02 1.6074224664701259e-01 1.6306109906244409e-01 0 1 0 0 0 0 +P 200 22 -1.2005583534141563e-01 1.1792995056802119e-01 7.1789015938312140e-01 7.3735144794027918e-01 0 1 0 0 0 0 +V -46 0 0 0 0 0 0 1 0 +P 201 130 3.4248690127551151e-01 -3.5064896127775863e-01 6.5641413010847338e-01 9.5854416210028470e-01 4.9767000000000000e-01 1 0 0 0 0 +V -47 0 0 0 0 0 0 1 0 +P 202 130 3.4345529704259643e-02 4.2425337653113343e-01 -1.1177846011983017e+00 1.2954877021742739e+00 4.9767000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 3 0 +P 203 -211 3.7755731400707987e-03 1.0039370246368491e-01 -9.8458836148270468e-01 9.9949346016574825e-01 1.3957000000000000e-01 1 0 0 0 0 +P 204 211 -9.9161576416783720e-02 -1.0551044999043914e-01 -9.9295638064943059e-01 1.0131177779839140e+00 1.3957000000000000e-01 1 0 0 0 0 +P 205 111 7.3326975328856361e-02 7.3893963973200610e-02 -6.2198799242777869e-01 6.4492311661692658e-01 1.3497999999999999e-01 2 0 0 -104 0 +V -49 0 0 0 0 0 0 2 0 +P 206 -211 -1.4056740735774267e-01 4.3090739428138275e-01 -9.2027408298128321e-01 1.0352895977284280e+00 1.3957000000000000e-01 1 0 0 0 0 +P 207 211 1.6448440148163432e-01 -1.0315875828041352e-01 -1.2761807265788860e+00 1.2983889554105663e+00 1.3957000000000000e-01 1 0 0 0 0 +V -50 0 0 0 0 0 0 2 0 +P 208 211 -1.4298661753468034e-01 3.7573616782950625e-01 -3.6032083344042366e+02 3.6032108474779415e+02 1.3957000000000000e-01 1 0 0 0 0 +P 209 111 6.9716897678052181e-01 1.3778964005077581e+00 -1.3537396883659865e+03 1.3537405758563607e+03 1.3497999999999999e-01 2 0 0 -105 0 +V -51 0 0 0 0 0 0 2 0 +P 210 211 -2.9078012283491389e-01 -1.1660259005217517e-01 -4.0121417247561617e+01 4.0122883133963313e+01 1.3957000000000000e-01 1 0 0 0 0 +P 211 -211 2.2899627357348501e-01 2.5707148863093887e-01 -6.0357280793668032e+01 6.0358424015494023e+01 1.3957000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 3 0 +P 212 -211 2.6751267029558212e-01 -1.2905333117748891e-01 -6.3913699019142889e+01 6.3914541537005043e+01 1.3957000000000000e-01 1 0 0 0 0 +P 213 211 -1.1274188888036062e-02 -1.4725853542175005e-01 -4.0564276257440682e+01 4.0564785223866963e+01 1.3957000000000000e-01 1 0 0 0 0 +P 214 111 2.8295515860935339e-01 -1.6630421945240220e-01 -6.5321241841682792e+01 6.5322205841927925e+01 1.3497999999999999e-01 2 0 0 -106 0 +V -53 0 0 0 0 0 0 2 0 +P 215 2112 -2.1845128615593268e-01 4.4798446087771526e-01 -4.9336036526094443e+02 4.9336151168614583e+02 9.3957000000000002e-01 1 0 0 0 0 +P 216 -211 1.6585355152244120e-02 7.4750230739152670e-02 -1.6951937808817900e+02 1.6951945283612403e+02 1.3957000000000000e-01 1 0 0 0 0 +V -54 0 0 0 0 0 0 3 0 +P 217 -211 1.9855211504001832e-01 2.6538607577308887e-01 -1.3606712490783372e+02 1.3606760015955496e+02 1.3957000000000000e-01 1 0 0 0 0 +P 218 211 3.7148306018183180e-01 3.1989607288807170e-01 -3.3769988231507233e+02 3.3770026699509737e+02 1.3957000000000000e-01 1 0 0 0 0 +P 219 111 -2.4335846251811649e-02 -9.4387977975935594e-02 -7.7609371571857679e+01 7.7609550164286290e+01 1.3497999999999999e-01 2 0 0 -107 0 +V -55 0 0 0 0 0 0 2 0 +P 220 -2112 -4.2947348594333151e-01 4.2878118755364686e-01 -2.4264944626776290e+02 2.4265202423762878e+02 9.3957000000000002e-01 1 0 0 0 0 +P 221 111 5.8313103641705534e-02 -1.8636801168062198e-03 -5.9184340215263624e+01 5.9184522894147172e+01 1.3497999999999999e-01 2 0 0 -108 0 +V -56 0 0 0 0 0 0 2 0 +P 222 211 2.1682504245500336e-01 -3.0690088139902211e-01 -1.5974570443628508e+01 1.5979598927801305e+01 1.3957000000000000e-01 1 0 0 0 0 +P 223 111 -8.9638781795857811e-02 2.6362743774593289e-01 -4.9839795421006370e+00 4.9935764952198349e+00 1.3497999999999999e-01 2 0 0 -109 0 +V -57 0 -4.7599329251464510e-06 9.0207949310365042e-07 -8.4873871722890296e-05 8.5022653563515400e-05 0 2 0 +P 224 22 -3.7654176681799945e-01 1.0398317559965164e-01 -7.3943111915591366e+00 7.4046224887284371e+00 0 1 0 0 0 0 +P 225 22 -1.0144310122609973e-01 -1.3397792516092778e-02 -1.1285875580297213e+00 1.1332166958574881e+00 0 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 226 211 3.4496114997444949e-01 1.7950342099730848e-01 -4.8049026935169458e+01 4.8050803207383346e+01 1.3957000000000000e-01 1 0 0 0 0 +P 227 -211 -1.9314214957996700e-01 -1.3047251766359474e-01 -4.5836001434910052e+01 4.5836806545545755e+01 1.3957000000000000e-01 1 0 0 0 0 +V -59 0 0 0 0 0 0 2 0 +P 228 2212 -3.3167235353726043e-01 -1.2810071106104892e-01 -8.1283552071314276e+01 8.1289744766884553e+01 9.3827000000000005e-01 1 0 0 0 0 +P 229 211 -4.5724156530593883e-02 -8.5894814744234493e-02 -1.9645435027066917e+01 1.9646171784989004e+01 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 230 -211 5.0134055720976158e-02 4.0626914941326336e-01 -5.8639213486603819e+02 5.8639229435641471e+02 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 1.4339741172950205e-03 6.4265897102186520e-01 -2.2818245590395259e+03 2.2818246535323738e+03 1.3497999999999999e-01 2 0 0 -110 0 +V -61 0 0 0 0 0 0 3 0 +P 232 22 -3.0900926286086272e-01 3.2953746163256012e-02 3.5998311172387848e-01 4.7556336554281858e-01 0 1 0 0 0 0 +P 233 211 3.2072488781638424e-02 7.4310750623015523e-02 1.9183184940054263e-01 2.5065908229951850e-01 1.3957000000000000e-01 1 0 0 0 0 +P 234 -211 3.6277635485791552e-03 7.2109035769672120e-02 1.0378590046087431e-01 1.8831933448924135e-01 1.3957000000000000e-01 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 235 -3112 8.3232122072788059e-02 5.2781217484367471e-01 3.2795184750343456e+00 3.5319424202200054e+00 1.1974400000000001e+00 2 0 0 -111 0 +P 236 -211 -7.0161828819345753e-02 1.5410727715577854e-01 3.5732234516368805e-01 4.1932180762383553e-01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 -1.8944492746949275e-05 8.2401636158269830e-06 -1.2503312705566621e-05 2.4658063843313472e-05 0 2 0 +P 237 22 -6.0517711111023132e-03 6.5087741414458159e-04 -3.6556075964248064e-02 3.7059334382760996e-02 0 1 0 0 0 0 +P 238 22 -5.0646985754231766e-01 2.2227734416277739e-01 -3.0170677841869392e-01 6.3003643900236450e-01 0 1 0 0 0 0 +V -64 0 -7.8563955847677602e-01 2.0638289911218017e+01 7.8257454723169033e+01 8.8857056141573736e+01 0 2 0 +P 239 3122 5.1931187238816325e-02 4.9930613611396391e-01 2.3055770821192110e+00 2.6100634110615828e+00 1.1156800000000000e+00 2 0 0 -112 0 +P 240 -211 -8.0238418068374492e-02 2.4430819712669047e-01 5.1410251659835626e-01 5.9152842821809692e-01 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 241 -2112 3.0395501563056263e-02 -2.4405351662998401e-01 -5.3666462824919672e-02 9.7270647146344724e-01 9.3957000000000002e-01 1 0 0 0 0 +P 242 111 -2.6825282256905353e-01 -1.8661431245093574e-01 1.4664249568572760e-01 3.8276376574688753e-01 1.3497999999999999e-01 2 0 0 -113 0 +V -66 0 0 0 0 0 0 2 0 +P 243 2112 5.0572982604360539e-01 -5.8752637152712439e-01 -6.5446855545169724e-01 1.3827764711496053e+00 9.3957000000000002e-01 1 0 0 0 0 +P 244 211 9.9423550289329768e-02 -3.6368958364413451e-01 -2.5949939376894660e-01 4.7851319299453970e-01 1.3957000000000000e-01 1 0 0 0 0 +V -67 0 0 0 0 0 0 3 0 +P 245 111 8.1991508324625768e-03 -2.2739275841531278e-01 -6.9069109264228244e-03 2.6465448885791415e-01 1.3497999999999999e-01 2 0 0 -114 0 +P 246 111 1.4009134464458384e-01 -4.0884284586234554e-02 6.9315279214559475e-02 2.1052628791447428e-01 1.3497999999999999e-01 2 0 0 -115 0 +P 247 111 7.8135734516086748e-03 -1.4352575440229270e-01 1.8309356614861544e-01 2.6907907475656356e-01 1.3497999999999999e-01 2 0 0 -116 0 +V -68 0 0 0 0 0 0 3 0 +P 248 211 -1.7564763129426919e-01 3.9036294667704030e-01 5.7373381789943145e-01 7.2930487398558319e-01 1.3957000000000000e-01 1 0 0 0 0 +P 249 -211 9.8183549295323566e-02 -9.0366883444205459e-02 2.8497224847354313e-01 3.4423124535072736e-01 1.3957000000000000e-01 1 0 0 0 0 +P 250 111 -8.9081241279593756e-02 -3.5896718271989543e-02 6.1330119536645196e-02 1.7664944351169345e-01 1.3497999999999999e-01 2 0 0 -117 0 +V -69 0 0 0 0 0 0 2 0 +P 251 -211 3.2224716368830358e-01 -8.0081349545995439e-01 -1.1081394023791091e-01 8.8142214816000508e-01 1.3957000000000000e-01 1 0 0 0 0 +P 252 111 5.1011684333153062e-01 -6.1963457427255142e-01 -8.1190431695912335e-01 1.1495975033816452e+00 1.3497999999999999e-01 2 0 0 -118 0 +V -70 0 0 0 0 0 0 2 0 +P 253 -211 -1.3608073804842804e-02 3.4069193915745993e-01 4.6360081699615536e+00 4.6506244434408828e+00 1.3957000000000000e-01 1 0 0 0 0 +P 254 111 2.5831045357956911e-01 -2.5003056765727244e-01 6.3219226034303873e+00 6.3335743920282130e+00 1.3497999999999999e-01 2 0 0 -119 0 +V -71 0 -2.2191327105470943e-05 2.6707018703971986e-05 2.0575699945590383e-04 2.0887534434869823e-04 0 2 0 +P 255 22 -3.3464530112944861e-02 1.3062552833387439e-01 7.1639911157906921e-01 7.2897914270537523e-01 0 1 0 0 0 0 +P 256 22 -2.8721994320842464e-01 2.5531471698636882e-01 2.2569730841935161e+00 2.2894559186104617e+00 0 1 0 0 0 0 +V -72 0 0 0 0 0 0 3 0 +P 257 -211 -2.5370115195927556e-01 2.4389521354651730e-01 1.1941656171072713e+01 1.1947655880661921e+01 1.3957000000000000e-01 1 0 0 0 0 +P 258 211 -1.2411261561070656e-01 1.6023975462299647e-01 1.1180974600038915e+01 1.1183682466519279e+01 1.3957000000000000e-01 1 0 0 0 0 +P 259 111 -2.0433372632142410e-01 1.6817746660681263e-01 2.1939337867558944e+01 2.1941349128968632e+01 1.3497999999999999e-01 2 0 0 -120 0 +V -73 0 0 0 0 0 0 2 0 +P 260 -311 -2.2181622425943659e-01 8.2064928378335456e-01 3.4099179264428734e+01 3.4113404544560858e+01 4.9767000000000000e-01 2 0 0 -121 0 +P 261 111 1.2976008347469933e-01 3.6468272062361839e-01 6.3463218449327279e+00 6.3595480755990161e+00 1.3497999999999999e-01 2 0 0 -122 0 +V -74 0 -1.0001014862923057e+01 -3.2697666563000749e-01 1.3551631410569682e+03 1.3553631885179477e+03 0 2 0 +P 263 211 -2.9869529476092338e-01 -5.0875432558458403e-02 2.2946836256989762e+01 2.2949261015961937e+01 1.3957000000000000e-01 1 0 0 0 0 +P 262 2112 -2.6701945902112212e-01 3.2379757227036086e-02 5.3708962497965480e+01 5.3717853570604774e+01 9.3957000000000002e-01 1 0 0 0 0 +V -75 0 3.8177060219193604e+00 -8.6202960607973977e-01 7.4805709987901992e+02 7.4808463063873478e+02 0 2 0 +P 264 -2212 5.6058624701577420e-01 -8.4272389450154115e-03 1.2543095886015534e+02 1.2543572106513193e+02 9.3827000000000005e-01 1 0 0 0 0 +P 265 111 3.3211251027235189e-01 -1.9314217307222326e-01 4.9488125953721443e+01 4.9489801299159566e+01 1.3497999999999999e-01 2 0 0 -123 0 +V -76 0 4.0150324535365861e-04 -2.9501415761643132e-04 2.5414161167512602e-02 2.5419241904258205e-02 0 2 0 +P 266 22 2.1495426154852360e-01 -2.1249167000350005e-01 1.7862096858763419e+01 1.7864653991505818e+01 0 1 0 0 0 0 +P 267 22 3.2610470661881691e-01 -1.8506440846382186e-01 1.6385595973758694e+01 1.6389885555738825e+01 0 1 0 0 0 0 +V -77 0 0 0 0 0 0 3 0 +P 268 111 2.1756652006665286e-01 4.4921344540010552e-02 2.8253044127043143e+01 2.8254239950189710e+01 1.3497999999999999e-01 2 0 0 -124 0 +P 269 111 2.1168570079863799e-01 1.5888476958365427e-02 1.4419743327632153e+01 1.4421937474376135e+01 1.3497999999999999e-01 2 0 0 -125 0 +P 270 111 4.2338651776527382e-02 5.9397905537924622e-02 5.3617926069090789e+00 5.3639873445526884e+00 1.3497999999999999e-01 2 0 0 -126 0 +V -78 0 0 0 0 0 0 3 0 +P 271 211 -1.6517201415503185e-01 -2.4079978785390410e-01 5.3890218212193854e+00 5.3987315460735052e+00 1.3957000000000000e-01 1 0 0 0 0 +P 272 -211 6.1921227808798385e-02 6.5909961337744488e-02 6.8540815103096717e+00 6.8560988540368788e+00 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 -2.9104043237975502e-01 -1.7136327052337760e-01 1.4152408887417174e+01 1.4157081861061936e+01 1.3497999999999999e-01 2 0 0 -127 0 +V -79 0 0 0 0 0 0 2 0 +P 274 211 -5.2151867703930009e-02 -4.6577522637422542e-01 9.3560383894911787e+00 9.3688099836287453e+00 1.3957000000000000e-01 1 0 0 0 0 +P 275 111 4.5010499856196384e-01 -1.5099879120799736e-01 2.2489630496284530e+01 2.2495046001386349e+01 1.3497999999999999e-01 2 0 0 -128 0 +V -80 0 0 0 0 0 0 2 0 +P 276 321 -2.0352232346411694e-01 -3.1853415646239830e-01 1.2546225242926846e+01 1.2561619885637212e+01 4.9359999999999998e-01 1 0 0 0 0 +P 277 -211 3.0617347118293892e-01 9.2311657222136315e-02 1.0906099986540170e+01 1.0911679996124647e+01 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 278 -321 -7.0220195411522102e-01 -1.2527226016438842e+00 1.0523045321644643e+01 1.0632051791748376e+01 4.9359999999999998e-01 1 0 0 0 0 +P 279 211 1.4520040899471007e-01 -3.8694870159807759e-01 3.1236150576917168e+00 3.1539282284127990e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 -7.3070249558822658e-06 -3.2202206515903731e-05 5.1933279134994169e-04 5.2070104417390720e-04 0 2 0 +P 280 22 1.2505542083726177e-02 -1.7814709059026052e-01 3.0137330713764303e+00 3.0190196753212120e+00 0 1 0 0 0 0 +P 281 22 -6.6582630892394315e-02 -6.0171731654043326e-02 8.2969235123366514e-01 8.3453177394419598e-01 0 1 0 0 0 0 +V -83 0 0 0 0 0 0 2 0 +P 282 -211 5.1916430522214251e-02 -8.9640749655295293e-01 4.1885959318955983e+00 4.2860304923351693e+00 1.3957000000000000e-01 1 0 0 0 0 +P 283 111 -6.3457866147058040e-01 -5.6503110734722573e-01 5.4665917789662455e+00 5.5338770774318045e+00 1.3497999999999999e-01 2 0 0 -129 0 +V -84 0 -1.3711706269638147e-04 -1.8369746299331976e-04 1.4597874604678092e-03 1.4778981978161132e-03 0 2 0 +P 284 22 -5.2667737066255793e-01 -6.6014242113744759e-01 5.7128746555838257e+00 5.7749557486932526e+00 0 1 0 0 0 0 +P 285 22 -1.9494804319896730e-01 -3.0662827210148269e-01 1.9697558616883879e+00 2.0029887147597236e+00 0 1 0 0 0 0 +V -85 0 0 0 0 0 0 2 0 +P 286 311 -8.8640989536248971e-01 -1.6453928479315294e+00 1.0105514131225380e+01 1.0288932471929078e+01 4.9767000000000000e-01 2 0 0 -130 0 +P 287 211 -1.9216241447018820e-02 -3.0070888016722131e-02 8.4870724776096818e-01 8.6084685022567276e-01 1.3957000000000000e-01 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 288 -321 -3.0096672158605109e-01 -3.2856288480682283e-01 5.3121460379397503e+00 5.3536035550994834e+00 4.9359999999999998e-01 1 0 0 0 0 +P 289 211 2.6855393914793912e-01 -1.0507833884512403e-01 1.6147842692616270e+00 1.6462596079237115e+00 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 4.4109844203045144e-05 9.1528473519848896e-05 8.5958854573134038e-05 1.3727799312159968e-04 0 2 0 +P 290 22 -8.7160338195142774e-03 1.0407506512888258e-01 1.1322702962452645e-01 1.5403878948082347e-01 0 1 0 0 0 0 +P 291 22 1.8558634600392554e-01 2.6293302518989264e-01 2.3144817197854431e-01 3.9641433358395012e-01 0 1 0 0 0 0 +V -88 0 -3.5053496386335686e-05 7.6475739764950647e-05 7.9714842662904328e-05 1.2138813319072600e-04 0 2 0 +P 292 22 -1.3461824233850531e-01 2.0304834831798538e-01 1.5577729727085340e-01 2.8916650786351850e-01 0 1 0 0 0 0 +P 293 22 3.5575337961664942e-03 8.2885029894210052e-02 1.4226668800229234e-01 1.6468878147104177e-01 0 1 0 0 0 0 +V -89 0 -4.4554774813408138e-06 -6.5814465924921522e-06 1.9206538511148803e-04 1.9343662025378980e-04 0 2 0 +P 294 22 1.8693463926493268e-02 -3.1342886660051500e-02 1.0632171065932128e+00 1.0638432393403643e+00 0 1 0 0 0 0 +P 295 22 -4.6569336840087371e-02 -9.8341969562946805e-03 1.3844765075107546e-01 1.4640070546958606e-01 0 1 0 0 0 0 +V -90 0 -1.1519603842379508e-05 -3.5623912285813612e-05 1.9265592300701549e-02 1.9265664885424284e-02 0 2 0 +P 296 22 -8.3815127063187972e-02 -1.2256295385089019e-01 5.3865030303772741e+01 5.3865234950564684e+01 0 1 0 0 0 0 +P 297 22 4.2184079505536640e-02 -6.1793889286651952e-03 1.5759481117893948e+01 1.5759538787244599e+01 0 1 0 0 0 0 +V -91 0 -1.5697360852585788e-04 -1.4457458960692370e-07 2.9323161432635091e-02 2.9323608548484745e-02 0 2 0 +P 298 22 -4.9644516570737324e-01 -3.7151389408233211e-02 8.9402750785785713e+01 8.9404136851118892e+01 0 1 0 0 0 0 +P 299 22 -3.6407780625288773e-02 3.6660625408091146e-02 1.0135847529573983e+01 1.0135979216174251e+01 0 1 0 0 0 0 +V -92 0 1.8966305837442445e-02 -3.3751224473166320e-03 -7.9448025344839107e-02 8.1849904533435089e-02 0 4 0 +P 300 -311 2.6183277643501564e+00 6.1386138582397727e-02 -9.6191913944512102e+00 9.9817797537093131e+00 4.9767000000000000e-01 2 0 0 -131 0 +P 301 211 8.8637402086832295e-01 -3.1039363085465904e-01 -3.8525417889436788e+00 3.9678156624776282e+00 1.3957000000000000e-01 1 0 0 0 0 +P 302 -211 1.5690167489104487e+00 -1.3700604791982612e-01 -6.5896015529868883e+00 6.7766446437418670e+00 1.3957000000000000e-01 1 0 0 0 0 +P 303 111 3.6836236547444208e+00 -1.1723870494551110e+00 -1.6622326812590639e+01 1.7066444939954319e+01 1.3497999999999999e-01 2 0 0 -132 0 +V -93 0 7.4128442659675373e-04 -2.0823270018832646e-04 -2.8148335666901884e-03 2.9184746351946975e-03 0 2 0 +P 304 22 8.1742943599848239e-01 -1.6584406973187246e-01 -3.0563856276486878e+00 3.1681521811932414e+00 0 1 0 0 0 0 +P 305 22 1.9131827501388010e+00 -6.0120664425247261e-01 -7.3123993668507001e+00 7.5824074122168170e+00 0 1 0 0 0 0 +V -94 0 1.4833994199896756e-05 -1.2903859275933336e-04 -6.1541970667552427e-04 6.2933453462583595e-04 0 2 0 +P 306 22 5.6644467513777601e-02 -3.9192437164538596e-01 -2.1953408676426514e+00 2.2307700091967217e+00 0 1 0 0 0 0 +P 307 22 3.7793281528448693e-02 -4.2957481970880629e-01 -1.7226094181319094e+00 1.7757663318391017e+00 0 1 0 0 0 0 +V -95 0 4.5181862789650803e-06 -1.9801813276266907e-06 -3.0991121206199972e-05 3.1520921781356387e-05 0 2 0 +P 308 22 8.6260522514302745e-02 2.2530582118513855e-02 -3.3478032046315359e-01 3.4644821812855597e-01 0 1 0 0 0 0 +P 309 22 1.1951445344448942e-01 -1.1271539078465091e-01 -1.0766703872758272e+00 1.0891315745760710e+00 0 1 0 0 0 0 +V -96 0 8.5116093559703892e-05 -3.5578692705565099e-05 -4.6524316068253217e-04 4.7509850400360835e-04 0 2 0 +P 310 22 4.1443767343060667e-01 -1.4967313990932649e-01 -2.2238064740485206e+00 2.2670412144442822e+00 0 1 0 0 0 0 +P 311 22 3.1920037468237635e-03 -2.4896877670223756e-02 -5.8950439232089813e-02 6.4071816669282453e-02 0 1 0 0 0 0 +V -97 0 3.0282600980360872e-06 -4.7568266335714519e-06 -3.5806730204857039e-05 3.6288277676784827e-05 0 2 0 +P 312 22 9.3367976806222705e-02 -2.3060951027911883e-01 -1.2351119821318959e+00 1.2599206061216093e+00 0 1 0 0 0 0 +P 313 22 1.4586170170862600e-01 -1.4517528675274019e-01 -1.5935857777240650e+00 1.6068189477578019e+00 0 1 0 0 0 0 +V -98 0 0 0 0 0 0 1 0 +P 314 130 -4.6100841314703395e-01 9.2307915799673013e-01 -1.4688030567429675e+00 1.8627028043458205e+00 4.9767000000000000e-01 1 0 0 0 0 +V -99 0 -6.0749677413030187e-04 4.0286823319709669e-04 -5.8199231917407284e-04 9.3484537376994871e-04 0 2 0 +P 315 22 -5.8507372946487168e-01 3.1792411425789363e-01 -4.8939393290153504e-01 8.2637366420853020e-01 0 1 0 0 0 0 +P 316 22 -7.3379340537514304e-01 5.5669727479453446e-01 -7.7410338128069411e-01 1.2031627747091891e+00 0 1 0 0 0 0 +V -100 0 1.3016547532871910e-04 -4.2999996681327984e-05 1.5811431125117299e-02 1.5812422343840164e-02 0 2 0 +P 317 22 1.5804746333869230e-01 -3.9281593826614072e-02 1.8887316070568861e+01 1.8888018170095304e+01 0 1 0 0 0 0 +P 318 22 -1.2379688754138632e-03 -1.2520220168175604e-02 1.6061130963062439e-01 1.6110332479890169e-01 0 1 0 0 0 0 +V -101 0 -3.1320010615501288e-05 2.4357028797134874e-05 6.7200386642486745e-03 6.7201750422674266e-03 0 2 0 +P 319 22 -2.0941596228200959e-01 1.9785744195153840e-01 3.9131333015929883e+01 3.9132393566151876e+01 0 1 0 0 0 0 +P 320 22 -5.3403805297841091e-02 6.5329308994338591e-03 1.7259420536092140e+01 1.7259504392863857e+01 0 1 0 0 0 0 +V -102 0 0 0 0 0 0 3 0 +P 321 -211 -6.0151917037470526e-02 7.9311722353406680e-02 2.2910866605242663e+00 2.2974913434783999e+00 1.3957000000000000e-01 1 0 0 0 0 +P 322 211 -1.8066085545057711e-01 -1.2250346517093816e-01 3.1803689410937466e+00 3.1909045473101791e+00 1.3957000000000000e-01 1 0 0 0 0 +P 323 111 -2.3585617180557428e-01 -1.8672286710230040e-01 3.8096424514449647e+00 3.8238839902812538e+00 1.3497999999999999e-01 2 0 0 -133 0 +V -103 0 -1.9160483241735818e-05 -3.4429446762634630e-05 4.6167197366874553e-05 6.0986527521654494e-05 0 2 0 +P 324 22 -4.2152681502119949e-01 -7.5137863584649212e-01 1.0392920720559295e+00 1.3499565627185053e+00 0 1 0 0 0 0 +P 325 22 -1.2939964609640288e-02 -2.9314140567959529e-02 7.5559281487998032e-03 3.2921931467134069e-02 0 1 0 0 0 0 +V -104 0 2.9830838171712643e-05 3.0061500167775855e-05 -2.5303679939952156e-04 2.6236725350684323e-04 0 2 0 +P 326 22 3.5218510592828343e-02 1.0791532602972706e-01 -4.9896979581793105e-01 5.1171956990041656e-01 0 1 0 0 0 0 +P 327 22 3.8108464736028018e-02 -3.4021362056526450e-02 -1.2301819660984770e-01 1.3320354671651011e-01 0 1 0 0 0 0 +V -105 0 4.2377491725209733e-04 8.3755581868205121e-04 -8.2287213505597279e-01 8.2287267451795754e-01 0 2 0 +P 328 22 4.5179522665667199e-01 1.0179315933320865e+00 -9.5340158429428311e+02 9.5340223475640357e+02 0 1 0 0 0 0 +P 329 22 2.4537375012384985e-01 3.5996480717567148e-01 -4.0033810407170330e+02 4.0033834109995706e+02 0 1 0 0 0 0 +V -106 0 2.7213670290870733e-05 -1.5994577439058151e-05 -6.2823761447091137e-03 6.2824688589927487e-03 0 2 0 +P 330 22 2.2167340558834825e-01 -9.7157200552894965e-02 -5.5547760321911738e+01 5.5548287600977559e+01 0 1 0 0 0 0 +P 331 22 6.1281753021005136e-02 -6.9147018899507251e-02 -9.7734815197710532e+00 9.7739182409503673e+00 0 1 0 0 0 0 +V -107 0 -5.8316299800032171e-06 -2.2618311951053398e-05 -1.8597633026793233e-02 1.8597675823125447e-02 0 2 0 +P 332 22 -1.7984737530842031e-02 -2.1226756412069968e-02 -2.7141048367785494e+00 2.7142474262669105e+00 0 1 0 0 0 0 +P 333 22 -6.3511087209696176e-03 -7.3161221563865633e-02 -7.4895266735079133e+01 7.4895302738019382e+01 0 1 0 0 0 0 +V -108 0 5.8868838727987346e-06 -1.8814413465442004e-07 -5.9748378353555037e-03 5.9748562773403457e-03 0 2 0 +P 334 22 6.9648943109769781e-02 2.9835063326280664e-02 -1.6959451898039372e+01 1.6959621156977278e+01 0 1 0 0 0 0 +P 335 22 -1.1335839468064239e-02 -3.1698743443086888e-02 -4.2224888317224256e+01 4.2224901737169894e+01 0 1 0 0 0 0 +V -109 0 -1.1760798667907243e-05 3.4588480081390835e-05 -6.5390870765183397e-04 6.5516784829608410e-04 0 2 0 +P 336 22 -6.1848075575125581e-02 1.9449485808627826e-01 -2.4447993736844960e+00 2.4533033672667659e+00 0 1 0 0 0 0 +P 337 22 -2.7790706220732229e-02 6.9132579659654650e-02 -2.5391801684161410e+00 2.5402731279530690e+00 0 1 0 0 0 0 +V -110 0 1.1133139557567718e-07 4.9894987127144138e-05 -1.7715711152160191e-01 1.7715711885787144e-01 0 2 0 +P 338 22 5.1210149305939139e-02 5.3680022191438881e-01 -1.8410429184390396e+03 1.8410429974097549e+03 0 1 0 0 0 0 +P 339 22 -4.9776175188644113e-02 1.0585874910747640e-01 -4.4078164060048624e+02 4.4078165612261887e+02 0 1 0 0 0 0 +V -111 0 8.3651444920921989e+00 5.3047128888430507e+01 3.2960406661453277e+02 3.5497363213991264e+02 0 2 0 +P 340 -2112 2.4959979502932808e-01 4.1483457435636895e-01 2.8145873045782719e+00 3.0065064878947614e+00 9.3957000000000002e-01 1 0 0 0 0 +P 341 211 -1.6636767295654004e-01 1.1297760048730578e-01 4.6493117045607391e-01 5.2543593232524399e-01 1.3957000000000000e-01 1 0 0 0 0 +V -112 0 5.6116033604361382e-01 3.3587453741407344e+01 1.3805102263693735e+02 1.5654726916412105e+02 0 2 0 +P 342 2212 1.1992793272742071e-01 4.4331641651508663e-01 2.1078582809441220e+00 2.3525155216586264e+00 9.3827000000000005e-01 1 0 0 0 0 +P 343 -211 -6.7996745488604390e-02 5.5989719598877254e-02 1.9771880117508914e-01 2.5754788940295620e-01 1.3957000000000000e-01 1 0 0 0 0 +V -113 0 -1.9934912146134204e-05 -1.3868036460130835e-05 1.0897575057695162e-05 2.8444666377829044e-05 0 2 0 +P 344 22 -7.6471623616945908e-03 -4.7325606667598510e-02 -9.0136760118943275e-03 4.8779488454572417e-02 0 1 0 0 0 0 +P 345 22 -2.6060566020735898e-01 -1.3928870578333724e-01 1.5565617169762194e-01 3.3398427729231522e-01 0 1 0 0 0 0 +V -114 0 2.1360272638227475e-06 -5.9239931243597419e-05 -1.7993753681444694e-06 6.8947286767231003e-05 0 2 0 +P 346 22 -4.6502144541311519e-02 -2.4623793396686189e-02 1.1401113821310007e-02 5.3840189863615641e-02 0 1 0 0 0 0 +P 347 22 5.4701295373774099e-02 -2.0276896501862660e-01 -1.8308024747732833e-02 2.1081429899429852e-01 0 1 0 0 0 0 +V -115 0 4.8539793062532255e-05 -1.4165862411844778e-05 2.4016825005729855e-05 7.2944566814726108e-05 0 2 0 +P 348 22 -1.5453741505853599e-02 -1.0327941204819121e-03 4.5670963822391386e-02 4.8225737181418267e-02 0 1 0 0 0 0 +P 349 22 1.5554508615043744e-01 -3.9851490465752641e-02 2.3644315392168085e-02 1.6230055073305602e-01 0 1 0 0 0 0 +V -116 0 1.1104293133444440e-06 -2.0397223612887224e-05 2.6020420003133673e-05 3.8240287119304297e-05 0 2 0 +P 350 22 5.0771406605997528e-02 -4.0452964763788126e-03 5.4032352941951377e-02 7.4253587905076579e-02 0 1 0 0 0 0 +P 351 22 -4.2957833154388850e-02 -1.3948045792591390e-01 1.2906121320666405e-01 1.9482548685148704e-01 0 1 0 0 0 0 +V -117 0 -2.6036576342430157e-05 -1.0491857009467409e-05 1.7925506161217156e-05 5.1630923141319130e-05 0 2 0 +P 352 22 -1.0270748918179354e-01 -7.3080935605012304e-02 4.7240148627235183e-02 1.3461531534433765e-01 0 1 0 0 0 0 +P 353 22 1.3626247902199785e-02 3.7184217333022761e-02 1.4089970909410013e-02 4.2034128167355814e-02 0 1 0 0 0 0 +V -118 0 1.0691248272362538e-04 -1.2986567995721066e-04 -1.7016239984005995e-04 2.4093759072278827e-04 0 2 0 +P 354 22 2.0070538345311324e-02 -3.6272560866489251e-02 -8.3680527288135988e-03 4.2291245994366115e-02 0 1 0 0 0 0 +P 355 22 4.9004630498621926e-01 -5.8336201340606209e-01 -8.0353626423030966e-01 1.1073062573872792e+00 0 1 0 0 0 0 +V -119 0 2.7525122215137944e-05 -2.6642831665992929e-05 6.7365331090041411e-04 6.7489490565872043e-04 0 2 0 +P 356 22 -1.3261749120023297e-02 1.7702328450182473e-03 2.6929989477908284e-01 2.6963204750562036e-01 0 1 0 0 0 0 +P 357 22 2.7157220269959242e-01 -2.5180080050229070e-01 6.0526227086513051e+00 6.0639423445225926e+00 0 1 0 0 0 0 +V -120 0 -3.1715703820054426e-05 2.6103702096238404e-05 3.4053191039106886e-03 3.4056312822883005e-03 0 2 0 +P 358 22 -1.2742245539164479e-01 1.6454266915182736e-01 1.2849928685755119e+01 1.2851613828663774e+01 0 1 0 0 0 0 +P 359 22 -7.6911270929779313e-02 3.6347974549852820e-03 9.0894091818038234e+00 9.0897353003048575e+00 0 1 0 0 0 0 +V -121 0 0 0 0 0 0 1 0 +P 360 130 -2.2181622425943659e-01 8.2064928378335456e-01 3.4099179264428734e+01 3.4113404544560858e+01 4.9767000000000000e-01 1 0 0 0 0 +V -122 0 1.6365951152252307e-05 4.5995497474848116e-05 8.0042791688625977e-04 8.0209607121551534e-04 0 2 0 +P 361 22 1.6457473104822637e-02 1.2357630669817704e-01 3.0214087375441823e+00 3.0239796148959881e+00 0 1 0 0 0 0 +P 362 22 1.1330261036987670e-01 2.4110641392544135e-01 3.3249131073885452e+00 3.3355684607030280e+00 0 1 0 0 0 0 +V -123 0 3.8177543412316921e+00 -8.6205770648757274e-01 7.4806429994568623e+02 7.4809183094914840e+02 0 2 0 +P 363 22 2.8847555483102255e-01 -1.8442581482610237e-01 3.6678513532652126e+01 3.6680111586414981e+01 0 1 0 0 0 0 +P 364 22 4.3636955441329298e-02 -8.7163582461208516e-03 1.2809612421069319e+01 1.2809689712744593e+01 0 1 0 0 0 0 +V -124 0 1.8055353550502218e-05 3.7279208096233577e-06 2.3446562478244642e-03 2.3447554864834664e-03 0 2 0 +P 365 22 3.2840553761882885e-02 3.3487323111844082e-02 1.2824422473230022e+01 1.2824508242995824e+01 0 1 0 0 0 0 +P 366 22 1.8472596630477001e-01 1.1434021428166474e-02 1.5428621653813121e+01 1.5429731707193888e+01 0 1 0 0 0 0 +V -125 0 1.5000494737206010e-05 1.1258909510514894e-06 1.0218133916554050e-03 1.0219688735163036e-03 0 2 0 +P 367 22 2.0590072325621228e-01 1.6406750822116400e-02 1.4396424714445700e+01 1.4397906405030316e+01 0 1 0 0 0 0 +P 368 22 5.7849775424257200e-03 -5.1827386375097220e-04 2.3318613186452682e-02 2.4031069345820253e-02 0 1 0 0 0 0 +V -126 0 1.1025628596229910e-05 1.5468117627169742e-05 1.3962923100580519e-03 1.3968638531069975e-03 0 2 0 +P 369 22 -4.6518556081000337e-03 8.8937831391877178e-02 2.3566496719389329e+00 2.3583318794993993e+00 0 1 0 0 0 0 +P 370 22 4.6990507384627421e-02 -2.9539925853952553e-02 3.0051429349701460e+00 3.0056554650532892e+00 0 1 0 0 0 0 +V -127 0 -5.5259884809614866e-05 -3.2536766497669014e-05 2.6871197190801157e-03 2.6880069771947918e-03 0 2 0 +P 371 22 -1.0110895637559562e-01 -5.3295271113881944e-02 2.6031718919982696e+00 2.6056798165300958e+00 0 1 0 0 0 0 +P 372 22 -1.8993147600415941e-01 -1.1806799940949568e-01 1.1549236995418905e+01 1.1551402044531839e+01 0 1 0 0 0 0 +V -128 0 3.9393832255598700e-05 -1.3215629843371153e-05 1.9683245778019608e-03 1.9687985505421920e-03 0 2 0 +P 373 22 4.0519797499710603e-01 -1.6100216218666105e-01 1.8439347310789309e+01 1.8444501520590993e+01 0 1 0 0 0 0 +P 374 22 4.4907023564857852e-02 1.0003370978663674e-02 4.0502831854952213e+00 4.0505444807953541e+00 0 1 0 0 0 0 +V -129 0 -2.0539396101361708e-04 -1.8288351670226675e-04 1.7693707760742391e-03 1.7911489965044658e-03 0 2 0 +P 375 22 -2.7639354994895160e-01 -2.6866740687512319e-01 2.9022806969822539e+00 2.9277651569151142e+00 0 1 0 0 0 0 +P 376 22 -3.5818511152162880e-01 -2.9636370047210259e-01 2.5643110819839920e+00 2.6061119205166898e+00 0 1 0 0 0 0 +V -130 0 0 0 0 0 0 1 0 +P 377 310 -8.8640989536248971e-01 -1.6453928479315294e+00 1.0105514131225380e+01 1.0288932471929078e+01 4.9767000000000000e-01 2 0 0 -134 0 +V -131 0 1.8966305837442445e-02 -3.3751224473166320e-03 -7.9448025344839107e-02 8.1849904533435089e-02 0 1 0 +P 378 130 2.6183277643501564e+00 6.1386138582397727e-02 -9.6191913944512102e+00 9.9817797537093131e+00 4.9767000000000000e-01 1 0 0 0 0 +V -132 0 2.0149870341415778e-02 -3.7518155698254710e-03 -8.4788852159078762e-02 8.7333428458016546e-02 0 2 0 +P 379 22 2.8921594225230942e+00 -9.1550660519293359e-01 -1.2794645715543083e+01 1.3149361104468387e+01 0 1 0 0 0 0 +P 380 22 7.9146423222132656e-01 -2.5688044426217738e-01 -3.8276810970475545e+00 3.9170838354859354e+00 0 1 0 0 0 0 +V -133 0 -1.1231803604738254e-05 -8.8920063263619592e-06 1.8142054749441223e-04 1.8209874966319139e-04 0 2 0 +P 381 22 -1.1488886556337818e-01 -1.3618640965757867e-01 2.8158840839305816e+00 2.8215154374448228e+00 0 1 0 0 0 0 +P 382 22 -1.2096730624219609e-01 -5.0536457444721711e-02 9.9375836751438251e-01 1.0023685528364348e+00 0 1 0 0 0 0 +V -134 0 -5.4534669499812850e+01 -1.0122964063099396e+02 6.2172238391663780e+02 6.3300684570210751e+02 0 2 0 +P 383 111 -2.7057189871723214e-01 -3.1393099110360240e-01 1.6814506090419195e+00 1.7370254950915891e+00 1.3497999999999999e-01 2 0 0 -135 0 +P 384 111 -6.1583799664525751e-01 -1.3314618568279268e+00 8.4240635221834612e+00 8.5519069768374898e+00 1.3497999999999999e-01 2 0 0 -136 0 +V -135 0 -5.4534759776515948e+01 -1.0122974537452058e+02 6.2172294493505149e+02 6.3300742526316185e+02 0 2 0 +P 385 22 -1.0129816071137022e-01 -2.0517523717889224e-01 1.0348101654081705e+00 1.0598067152773691e+00 0 1 0 0 0 0 +P 386 22 -1.6927373800586196e-01 -1.0875575392471017e-01 6.4664044363374906e-01 6.7721877981422007e-01 0 1 0 0 0 0 +V -136 0 -5.4534805123554811e+01 -1.0122993385395240e+02 6.2172423911723217e+02 6.3300872905719666e+02 0 2 0 +P 387 22 -3.0111265749682459e-01 -7.1575180908117086e-01 4.0963761753010273e+00 4.1693245561219676e+00 0 1 0 0 0 0 +P 388 22 -3.1472533914843293e-01 -6.1571004774675597e-01 4.3276873468824339e+00 4.3825824207155222e+00 0 1 0 0 0 0 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc new file mode 100644 index 0000000000..84e4461ac0 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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: hepmcEx01-clhep.cc,v 1.1 2002/11/19 10:33:00 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleN04 +// +// -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +#include "ExN04DetectorConstruction.hh" +#include "ExN04PhysicsList.hh" +#include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04RunAction.hh" +#include "ExN04EventAction.hh" +#include "ExN04StackingAction.hh" +#include "ExN04TrackingAction.hh" +#include "ExN04SteppingAction.hh" +#include "ExN04SteppingVerbose.hh" + +#ifdef G4VIS_USE +#include "ExN04VisManager.hh" +#endif + +int main(int argc,char** argv) +{ + G4VSteppingVerbose::SetInstance(new ExN04SteppingVerbose); + + G4RunManager* runManager = new G4RunManager; + + runManager->SetUserInitialization(new ExN04DetectorConstruction); + runManager->SetUserInitialization(new ExN04PhysicsList); + +#ifdef G4VIS_USE + // Visualization, if you choose to have it! + G4VisManager* visManager = new ExN04VisManager; + visManager->Initialize(); +#endif + + runManager->Initialize(); + + runManager->SetUserAction(new ExN04PrimaryGeneratorAction); + runManager->SetUserAction(new ExN04RunAction); + runManager->SetUserAction(new ExN04EventAction); + runManager->SetUserAction(new ExN04StackingAction); + runManager->SetUserAction(new ExN04TrackingAction); + runManager->SetUserAction(new ExN04SteppingAction); + + //get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + if(argc==1) + { + // G4UIterminal is a (dumb) terminal. +#ifdef G4UI_USE_TCSH + G4UIsession* session = new G4UIterminal(new G4UItcsh); +#else + G4UIsession* session = new G4UIterminal(); +#endif + UImanager->ApplyCommand("/control/execute vis.mac"); + session->SessionStart(); + delete session; + } + else + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UImanager->ApplyCommand(command+fileName); + } + + delete runManager; +#ifdef G4VIS_USE + delete visManager; +#endif + + return 0; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.in b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.in new file mode 100644 index 0000000000..e9614c8430 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.in @@ -0,0 +1,5 @@ +/generator/select hepmcAscii +/generator/hepmcAscii/open data/example_MyPythia.dat +/generator/hepmcAscii/verbose 1 +/run/beamOn 3 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out new file mode 100644 index 0000000000..3f46f3c5ce --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out @@ -0,0 +1,2073 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) + Copyright : Geant4 Collaboration +********************************************** + +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created + +compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. + Scattered gamma energy according Klein-Nishina. + PhysicsTables from 1 keV to 100 GeV in 80 bins. + +conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. + e+e- energies according Bethe-Heitler + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. + +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. + +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. + +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. + +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: 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. + +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. + +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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 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. +current generator type: hepmcAscii +HepMC Ascii inputfile: data/example_MyPythia.dat +________________________________________________________________________________ +GenEvent: #1 ID=20 SignalProcessGenVertex Barcode: 0 + Current Memory Usage: 1 events, 78 vertices, 210 particles. + Entries this event: 78 vertices, 210 particles. + RndmState(0)= + Wgts(0)= + EventScale -1 GeV alphaQCD=-1 alphaQED=-1 + GenParticle Legend + Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx +________________________________________________________________________________ +GenVertex: -1 ID: 0 (X,cT):0 + I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 + O: 2 3 2 -7.76e-01,-9.12e-01,+1.88e+03,+1.88e+03 3 -3 + 20 2101 +7.76e-01,+9.12e-01,+4.45e+03,+4.45e+03 2 -16 +GenVertex: -2 ID: 0 (X,cT):0 + I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 + O: 3 4 -1 -1.01e+00,-1.27e-02,-4.15e+00,+4.27e+00 3 -4 + 13 2214 +1.00e-00,+2.73e-02,-4.08e+03,+4.08e+03 2 -9 + 26 1 +8.08e-03,-1.46e-02,-2.46e+03,+2.46e+03 2 -16 +GenVertex: -3 ID: 0 (X,cT):0 + I: 1 3 2 -7.76e-01,-9.12e-01,+1.88e+03,+1.88e+03 3 -3 + O: 4 5 2 -5.02e+00,+1.15e+00,+1.48e+03,+1.48e+03 3 -5 + 21 21 +1.46e+00,-3.91e-01,+1.09e+02,+1.09e+02 2 -16 + 22 21 +3.11e+00,+2.32e-01,+1.46e+02,+1.47e+02 2 -16 + 23 21 -1.09e-01,-1.87e+00,+8.61e+01,+8.61e+01 2 -16 +GenVertex: -4 ID: 0 (X,cT):0 + I: 1 4 -1 -1.01e+00,-1.27e-02,-4.15e+00,+4.27e+00 3 -4 + O: 3 6 -1 +2.54e-02,+8.35e+00,+6.60e-01,+8.37e+00 3 -5 + 24 21 -5.37e-01,-6.68e+00,+4.75e+01,+4.79e+01 2 -16 + 25 21 -7.11e-01,-1.71e+00,+1.08e+01,+1.10e+01 2 -16 +GenVertex: -5 ID: 0 (X,cT):0 + I: 2 5 2 -5.02e+00,+1.15e+00,+1.48e+03,+1.48e+03 3 -5 + 6 -1 +2.54e-02,+8.35e+00,+6.60e-01,+8.37e+00 3 -5 + O: 2 7 22 -4.03e+00,-1.23e+00,+2.46e+02,+2.46e+02 3 -6 + 8 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 3 -7 +GenVertex: -6 ID: 0 (X,cT):0 + I: 1 7 22 -4.03e+00,-1.23e+00,+2.46e+02,+2.46e+02 3 -6 + O: 1 9 22 -4.03e+00,-1.23e+00,+2.46e+02,+2.46e+02 1 (nil) +GenVertex: -7 ID: 0 (X,cT):0 + I: 1 8 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 3 -7 + O: 1 10 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 2 -8 +GenVertex: -8 ID: 0 (X,cT):0 + I: 1 10 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 2 -8 + O: 2 11 -13 -2.56e+01,+4.70e+01,+2.09e+02,+2.16e+02 1 (nil) + 12 14 +2.47e+01,-3.63e+01,+1.02e+03,+1.02e+03 1 (nil) +GenVertex: -9 ID: 0 (X,cT):0 + I: 1 13 2214 +1.00e-00,+2.73e-02,-4.08e+03,+4.08e+03 2 -9 + O: 2 29 2212 +1.02e+00,+1.18e-01,-3.74e+03,+3.74e+03 1 (nil) + 30 111 -2.46e-02,-9.09e-02,-3.46e+02,+3.46e+02 2 -20 +GenVertex: -10 ID: 0 (X,cT):0 + I: 2 14 1 +2.31e+00,+5.82e+00,+1.51e+02,+1.51e+02 2 -10 + 15 -1 -2.31e+00,-5.82e+00,+4.62e+01,+4.66e+01 2 -10 + O: 1 31 92 +0.00e+00,+0.00e+00,+1.97e+02,+1.97e+02 2 -11 +GenVertex: -11 ID: 0 (X,cT):0 + I: 1 31 92 +0.00e+00,+0.00e+00,+1.97e+02,+1.97e+02 2 -11 + O: 8 38 -213 -1.18e+00,-2.20e+00,+1.67e+01,+1.70e+01 2 -23 + 39 211 -8.40e-02,-1.67e+00,+1.53e+01,+1.54e+01 1 (nil) + 33 211 +1.83e-01,-2.25e-01,+8.98e+00,+8.99e+00 1 (nil) + 34 -211 +1.65e+00,+3.36e+00,+8.55e+01,+8.56e+01 1 (nil) + 35 221 +1.53e-01,+1.01e-01,+1.68e+01,+1.68e+01 2 -21 + 36 211 -5.43e-01,+7.13e-02,+3.10e+00,+3.15e+00 1 (nil) + 37 221 -4.39e-01,-1.09e+00,+1.62e+01,+1.63e+01 2 -22 + 32 -211 +2.54e-01,+1.65e+00,+3.42e+01,+3.42e+01 1 (nil) +GenVertex: -12 ID: 0 (X,cT):0 + I: 2 16 2 -3.95e+00,-1.33e+00,+3.41e+01,+3.44e+01 2 -12 + 17 -2 +3.95e+00,+1.33e+00,+4.38e+02,+4.38e+02 2 -12 + O: 1 40 92 +0.00e+00,+0.00e+00,+4.72e+02,+4.72e+02 2 -13 +GenVertex: -13 ID: 0 (X,cT):0 + I: 1 40 92 +0.00e+00,+0.00e+00,+4.72e+02,+4.72e+02 2 -13 + O: 8 41 221 -2.68e+00,-7.41e-01,+2.70e+01,+2.71e+01 2 -24 + 43 223 +7.31e-01,-2.42e-01,+2.97e+01,+2.97e+01 2 -25 + 44 -213 +6.83e-02,+2.16e-01,+2.67e+01,+2.67e+01 2 -26 + 42 211 -1.08e+00,-1.77e-01,+8.94e+00,+9.00e+00 1 (nil) + 45 211 -7.62e-02,+3.34e-01,+9.98e+00,+9.98e+00 1 (nil) + 46 223 +1.18e+00,+7.67e-03,+1.59e+02,+1.59e+02 2 -27 + 47 -213 +4.18e-01,+2.70e-01,+5.63e+01,+5.63e+01 2 -28 + 48 111 +1.44e+00,+3.32e-01,+1.54e+02,+1.54e+02 2 -29 +GenVertex: -14 ID: 0 (X,cT):0 + I: 2 18 2 +1.54e+00,+3.04e+00,-6.32e+01,+6.33e+01 2 -14 + 19 -2 -1.54e+00,-3.04e+00,-3.11e+02,+3.11e+02 2 -14 + O: 1 49 92 +0.00e+00,+0.00e+00,-3.75e+02,+3.75e+02 2 -15 +GenVertex: -15 ID: 0 (X,cT):0 + I: 1 49 92 +0.00e+00,+0.00e+00,-3.75e+02,+3.75e+02 2 -15 + O: 3 50 113 +1.57e+00,+2.83e+00,-6.11e+01,+6.12e+01 2 -30 + 51 211 +2.02e-01,+1.20e-01,-2.70e+01,+2.70e+01 1 (nil) + 52 -211 -1.77e+00,-2.95e+00,-2.86e+02,+2.86e+02 1 (nil) +GenVertex: -16 ID: 0 (X,cT):0 + I: 7 20 2101 +7.76e-01,+9.12e-01,+4.45e+03,+4.45e+03 2 -16 + 26 1 +8.08e-03,-1.46e-02,-2.46e+03,+2.46e+03 2 -16 + 21 21 +1.46e+00,-3.91e-01,+1.09e+02,+1.09e+02 2 -16 + 22 21 +3.11e+00,+2.32e-01,+1.46e+02,+1.47e+02 2 -16 + 23 21 -1.09e-01,-1.87e+00,+8.61e+01,+8.61e+01 2 -16 + 24 21 -5.37e-01,-6.68e+00,+4.75e+01,+4.79e+01 2 -16 + 25 21 -7.11e-01,-1.71e+00,+1.08e+01,+1.10e+01 2 -16 + O: 1 53 92 +3.99e+00,-9.52e+00,+2.38e+03,+7.31e+03 2 -17 +GenVertex: -17 ID: 0 (X,cT):0 + I: 1 53 92 +3.99e+00,-9.52e+00,+2.38e+03,+7.31e+03 2 -17 + O:31 54 2212 +8.22e-01,+7.58e-01,+2.86e+03,+2.86e+03 1 (nil) + 55 113 -3.60e-01,-1.69e-01,+8.62e+02,+8.62e+02 2 -31 + 56 -2214 +1.03e+00,+9.30e-02,+4.53e+02,+4.53e+02 2 -32 + 57 223 -3.60e-01,+4.04e-01,+1.25e+02,+1.25e+02 2 -33 + 58 2212 +1.68e+00,-6.25e-01,+1.57e+02,+1.57e+02 1 (nil) + 59 -213 +5.56e-01,+3.45e-01,+9.14e+01,+9.14e+01 2 -34 + 60 -311 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -35 + 61 311 +5.59e-01,-2.32e-01,+5.88e+01,+5.88e+01 2 -36 + 62 211 +3.24e-01,-1.11e+00,+5.03e+01,+5.03e+01 1 (nil) + 63 113 -1.65e-02,-7.81e-02,+4.91e+00,+4.95e+00 2 -37 + 64 -211 +7.06e-01,-6.40e-01,+6.56e+01,+6.56e+01 1 (nil) + 65 213 +4.72e-01,-4.39e-01,+1.44e+01,+1.44e+01 2 -38 + 66 -213 -3.00e-01,-3.82e-01,+1.62e+01,+1.63e+01 2 -39 + 67 211 -4.39e-01,-3.19e+00,+2.48e+01,+2.50e+01 1 (nil) + 68 -211 -1.40e-01,-1.20e-01,+4.92e-01,+5.44e-01 1 (nil) + 69 -311 -2.66e-01,-2.65e+00,+2.07e+01,+2.08e+01 2 -40 + 70 323 +1.09e-01,-8.86e-01,+4.66e+00,+4.83e+00 2 -41 + 71 113 -4.98e-01,-2.28e-01,+1.70e+00,+1.96e+00 2 -42 + 72 -323 -2.90e-01,-2.30e-01,+6.43e-01,+1.16e+00 2 -43 + 73 311 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -44 + 74 113 +1.28e-01,+1.79e-01,-7.07e-01,+1.09e+00 2 -45 + 75 -2112 +2.40e-01,-6.43e-01,-2.35e+00,+2.62e+00 1 (nil) + 76 2112 +1.43e-01,-2.20e-01,-2.23e+00,+2.43e+00 1 (nil) + 77 221 -1.58e-01,+9.23e-01,-1.12e+01,+1.12e+01 2 -46 + 78 211 -3.97e-01,-5.01e-01,-1.11e+00,+1.29e+00 1 (nil) + 79 111 +2.87e-01,+2.82e-01,-1.04e+00,+1.12e+00 2 -47 + 80 223 +4.06e-01,-2.45e-01,-3.51e+01,+3.51e+01 2 -48 + 81 -321 -6.14e-01,+2.77e-01,-2.28e+02,+2.28e+02 1 (nil) + 82 323 +1.26e-01,-3.07e-01,-1.50e+03,+1.50e+03 2 -49 + 83 -321 +1.94e-01,+2.93e-01,-1.69e+02,+1.69e+02 1 (nil) + 84 311 -9.36e-02,-1.11e-01,-5.09e+02,+5.09e+02 2 -50 +GenVertex: -18 ID: 0 (X,cT):0 + I: 2 27 21 -1.37e-01,-5.99e+00,-1.38e+01,+1.51e+01 2 -18 + 28 21 +1.37e-01,+5.99e+00,-6.12e+01,+6.15e+01 2 -18 + O: 1 85 92 +0.00e+00,+0.00e+00,-7.51e+01,+7.66e+01 2 -19 +GenVertex: -19 ID: 0 (X,cT):0 + I: 1 85 92 +0.00e+00,+0.00e+00,-7.51e+01,+7.66e+01 2 -19 + O: 9 86 -2112 -3.84e-02,-2.48e+00,-7.98e+00,+8.41e+00 1 (nil) + 87 2212 +1.88e-01,-2.14e+00,-4.49e+00,+5.07e+00 1 (nil) + 88 -213 +2.00e-01,-1.11e-01,-1.66e+00,+1.83e+00 2 -51 + 89 -313 -6.26e-01,+1.37e+00,-1.29e+01,+1.30e+01 2 -52 + 90 321 +7.89e-02,+7.45e-01,-1.09e+01,+1.10e+01 1 (nil) + 91 -211 +4.23e-02,+3.92e-01,-8.74e+00,+8.75e+00 1 (nil) + 92 211 +6.44e-02,+3.67e-01,-1.38e+00,+1.43e+00 1 (nil) + 93 -2212 +4.16e-02,+5.64e-01,-1.20e+01,+1.20e+01 1 (nil) + 94 2112 +4.92e-02,+1.30e+00,-1.50e+01,+1.51e+01 1 (nil) +Vertex: -20 ID: 0 (X,cT)=-7.43e-06,-2.74e-05,-1.04e-01,+1.04e-01 + I: 1 30 111 -2.46e-02,-9.09e-02,-3.46e+02,+3.46e+02 2 -20 + O: 2 95 22 -4.57e-02,-1.20e-01,-2.72e+02,+2.72e+02 1 (nil) + 96 22 +2.11e-02,+2.92e-02,-7.38e+01,+7.38e+01 1 (nil) +GenVertex: -21 ID: 0 (X,cT):0 + I: 1 35 221 +1.53e-01,+1.01e-01,+1.68e+01,+1.68e+01 2 -21 + O: 3 97 211 +1.91e-01,+1.34e-01,+6.86e+00,+6.86e+00 1 (nil) + 98 -211 -4.99e-02,-5.38e-02,+4.31e+00,+4.31e+00 1 (nil) + 99 111 +1.27e-02,+2.08e-02,+5.61e+00,+5.61e+00 2 -53 +GenVertex: -22 ID: 0 (X,cT):0 + I: 1 37 221 -4.39e-01,-1.09e+00,+1.62e+01,+1.63e+01 2 -22 + O: 3 100 111 +2.02e-02,-1.98e-01,+2.68e+00,+2.69e+00 2 -54 + 101 111 -1.94e-01,-3.08e-01,+5.97e+00,+5.98e+00 2 -55 + 102 111 -2.65e-01,-5.85e-01,+7.55e+00,+7.58e+00 2 -56 +GenVertex: -23 ID: 0 (X,cT):0 + I: 1 38 -213 -1.18e+00,-2.20e+00,+1.67e+01,+1.70e+01 2 -23 + O: 2 103 -211 +5.93e-02,-7.99e-01,+3.99e+00,+4.07e+00 1 (nil) + 104 111 -1.24e+00,-1.40e+00,+1.27e+01,+1.29e+01 2 -57 +GenVertex: -24 ID: 0 (X,cT):0 + I: 1 41 221 -2.68e+00,-7.41e-01,+2.70e+01,+2.71e+01 2 -24 + O: 2 105 22 -6.34e-03,-7.93e-02,+8.01e-01,+8.05e-01 1 (nil) + 106 22 -2.67e+00,-6.61e-01,+2.62e+01,+2.63e+01 1 (nil) +GenVertex: -25 ID: 0 (X,cT):0 + I: 1 43 223 +7.31e-01,-2.42e-01,+2.97e+01,+2.97e+01 2 -25 + O: 3 107 -211 +1.76e-02,+3.37e-02,+3.20e+00,+3.21e+00 1 (nil) + 108 211 +3.94e-01,+9.73e-02,+1.40e+01,+1.40e+01 1 (nil) + 109 111 +3.20e-01,-3.73e-01,+1.25e+01,+1.25e+01 2 -58 +GenVertex: -26 ID: 0 (X,cT):0 + I: 1 44 -213 +6.83e-02,+2.16e-01,+2.67e+01,+2.67e+01 2 -26 + O: 2 110 -211 -8.41e-02,-1.88e-01,+1.75e+01,+1.75e+01 1 (nil) + 111 111 +1.52e-01,+4.04e-01,+9.17e+00,+9.18e+00 2 -59 +GenVertex: -27 ID: 0 (X,cT):0 + I: 1 46 223 +1.18e+00,+7.67e-03,+1.59e+02,+1.59e+02 2 -27 + O: 3 112 -211 +4.71e-01,+6.85e-02,+4.92e+01,+4.92e+01 1 (nil) + 113 211 +5.97e-01,-1.23e-01,+1.01e+02,+1.01e+02 1 (nil) + 114 111 +1.09e-01,+6.20e-02,+9.26e+00,+9.26e+00 2 -60 +GenVertex: -28 ID: 0 (X,cT):0 + I: 1 47 -213 +4.18e-01,+2.70e-01,+5.63e+01,+5.63e+01 2 -28 + O: 2 115 -211 +4.07e-02,+6.55e-03,+6.59e+00,+6.59e+00 1 (nil) + 116 111 +3.77e-01,+2.64e-01,+4.98e+01,+4.98e+01 2 -61 +Vertex: -29 ID: 0 (X,cT)=+3.69e-04,+8.53e-05,+3.95e-02,+3.95e-02 + I: 1 48 111 +1.44e+00,+3.32e-01,+1.54e+02,+1.54e+02 2 -29 + O: 2 117 22 +4.72e-01,+4.59e-02,+5.06e+01,+5.06e+01 1 (nil) + 118 22 +9.67e-01,+2.86e-01,+1.03e+02,+1.03e+02 1 (nil) +GenVertex: -30 ID: 0 (X,cT):0 + I: 1 50 113 +1.57e+00,+2.83e+00,-6.11e+01,+6.12e+01 2 -30 + O: 2 119 -211 +9.16e-01,+2.13e+00,-4.37e+01,+4.38e+01 1 (nil) + 120 211 +6.49e-01,+7.08e-01,-1.74e+01,+1.75e+01 1 (nil) +GenVertex: -31 ID: 0 (X,cT):0 + I: 1 55 113 -3.60e-01,-1.69e-01,+8.62e+02,+8.62e+02 2 -31 + O: 2 121 211 -1.07e-01,+4.26e-02,+1.56e+02,+1.56e+02 1 (nil) + 122 -211 -2.53e-01,-2.12e-01,+7.07e+02,+7.07e+02 1 (nil) +GenVertex: -32 ID: 0 (X,cT):0 + I: 1 56 -2214 +1.03e+00,+9.30e-02,+4.53e+02,+4.53e+02 2 -32 + O: 2 123 -2212 +4.99e-01,+1.49e-01,+3.29e+02,+3.29e+02 1 (nil) + 124 111 +5.28e-01,-5.58e-02,+1.24e+02,+1.24e+02 2 -62 +GenVertex: -33 ID: 0 (X,cT):0 + I: 1 57 223 -3.60e-01,+4.04e-01,+1.25e+02,+1.25e+02 2 -33 + O: 3 125 211 -1.22e-01,+3.51e-01,+3.18e+01,+3.18e+01 1 (nil) + 126 -211 -2.21e-01,+7.11e-02,+8.21e+01,+8.21e+01 1 (nil) + 127 111 -1.66e-02,-1.80e-02,+1.09e+01,+1.09e+01 2 -63 +GenVertex: -34 ID: 0 (X,cT):0 + I: 1 59 -213 +5.56e-01,+3.45e-01,+9.14e+01,+9.14e+01 2 -34 + O: 2 128 -211 +3.11e-01,+3.56e-01,+3.44e+01,+3.44e+01 1 (nil) + 129 111 +2.45e-01,-1.18e-02,+5.70e+01,+5.70e+01 2 -64 +GenVertex: -35 ID: 0 (X,cT):0 + I: 1 60 -311 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -35 + O: 1 130 310 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -65 +GenVertex: -36 ID: 0 (X,cT):0 + I: 1 61 311 +5.59e-01,-2.32e-01,+5.88e+01,+5.88e+01 2 -36 + O: 1 131 130 +5.59e-01,-2.32e-01,+5.88e+01,+5.88e+01 1 (nil) +GenVertex: -37 ID: 0 (X,cT):0 + I: 1 63 113 -1.65e-02,-7.81e-02,+4.91e+00,+4.95e+00 2 -37 + O: 2 132 211 +1.08e-01,-5.14e-02,+4.37e+00,+4.38e+00 1 (nil) + 133 -211 -1.25e-01,-2.68e-02,+5.37e-01,+5.69e-01 1 (nil) +GenVertex: -38 ID: 0 (X,cT):0 + I: 1 65 213 +4.72e-01,-4.39e-01,+1.44e+01,+1.44e+01 2 -38 + O: 2 134 211 +1.82e-01,-5.33e-01,+1.18e+01,+1.18e+01 1 (nil) + 135 111 +2.91e-01,+9.43e-02,+2.56e+00,+2.58e+00 2 -66 +GenVertex: -39 ID: 0 (X,cT):0 + I: 1 66 -213 -3.00e-01,-3.82e-01,+1.62e+01,+1.63e+01 2 -39 + O: 2 136 -211 -4.94e-01,-2.13e-01,+6.74e+00,+6.77e+00 1 (nil) + 137 111 +1.93e-01,-1.69e-01,+9.48e+00,+9.49e+00 2 -67 +GenVertex: -40 ID: 0 (X,cT):0 + I: 1 69 -311 -2.66e-01,-2.65e+00,+2.07e+01,+2.08e+01 2 -40 + O: 1 138 130 -2.66e-01,-2.65e+00,+2.07e+01,+2.08e+01 1 (nil) +GenVertex: -41 ID: 0 (X,cT):0 + I: 1 70 323 +1.09e-01,-8.86e-01,+4.66e+00,+4.83e+00 2 -41 + O: 2 139 311 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -68 + 140 211 +1.54e-01,-6.92e-01,+2.81e+00,+2.90e+00 1 (nil) +GenVertex: -42 ID: 0 (X,cT):0 + I: 1 71 113 -4.98e-01,-2.28e-01,+1.70e+00,+1.96e+00 2 -42 + O: 2 141 211 +7.24e-02,-1.33e-01,+6.29e-02,+2.15e-01 1 (nil) + 142 -211 -5.70e-01,-9.51e-02,+1.64e+00,+1.75e+00 1 (nil) +GenVertex: -43 ID: 0 (X,cT):0 + I: 1 72 -323 -2.90e-01,-2.30e-01,+6.43e-01,+1.16e+00 2 -43 + O: 2 143 -311 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -69 + 144 -211 -1.88e-01,+1.45e-01,+3.90e-01,+4.77e-01 1 (nil) +GenVertex: -44 ID: 0 (X,cT):0 + I: 1 73 311 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -44 + O: 1 145 310 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -70 +GenVertex: -45 ID: 0 (X,cT):0 + I: 1 74 113 +1.28e-01,+1.79e-01,-7.07e-01,+1.09e+00 2 -45 + O: 2 146 -211 -7.31e-02,+3.05e-01,-7.33e-01,+8.10e-01 1 (nil) + 147 211 +2.01e-01,-1.27e-01,+2.56e-02,+2.77e-01 1 (nil) +GenVertex: -46 ID: 0 (X,cT):0 + I: 1 77 221 -1.58e-01,+9.23e-01,-1.12e+01,+1.12e+01 2 -46 + O: 3 148 -211 -1.37e-01,+2.12e-01,-2.48e+00,+2.50e+00 1 (nil) + 149 211 -6.29e-02,+5.66e-01,-6.65e+00,+6.68e+00 1 (nil) + 150 111 +4.20e-02,+1.44e-01,-2.05e+00,+2.06e+00 2 -71 +Vertex: -47 ID: 0 (X,cT)=+2.15e-05,+2.11e-05,-7.77e-05,+8.40e-05 + I: 1 79 111 +2.87e-01,+2.82e-01,-1.04e+00,+1.12e+00 2 -47 + O: 2 151 22 +1.31e-01,+1.64e-01,-6.99e-01,+7.30e-01 1 (nil) + 152 22 +1.57e-01,+1.18e-01,-3.38e-01,+3.91e-01 1 (nil) +GenVertex: -48 ID: 0 (X,cT):0 + I: 1 80 223 +4.06e-01,-2.45e-01,-3.51e+01,+3.51e+01 2 -48 + O: 2 153 -211 -6.79e-02,+2.16e-01,-6.21e+00,+6.22e+00 1 (nil) + 154 211 +4.74e-01,-4.61e-01,-2.89e+01,+2.89e+01 1 (nil) +GenVertex: -49 ID: 0 (X,cT):0 + I: 1 82 323 +1.26e-01,-3.07e-01,-1.50e+03,+1.50e+03 2 -49 + O: 2 155 321 +2.70e-01,-1.79e-01,-6.57e+02,+6.57e+02 1 (nil) + 156 111 -1.45e-01,-1.29e-01,-8.42e+02,+8.42e+02 2 -72 +GenVertex: -50 ID: 0 (X,cT):0 + I: 1 84 311 -9.36e-02,-1.11e-01,-5.09e+02,+5.09e+02 2 -50 + O: 1 157 130 -9.36e-02,-1.11e-01,-5.09e+02,+5.09e+02 1 (nil) +GenVertex: -51 ID: 0 (X,cT):0 + I: 1 88 -213 +2.00e-01,-1.11e-01,-1.66e+00,+1.83e+00 2 -51 + O: 2 158 -211 -1.33e-01,-2.94e-01,-9.51e-01,+1.01e+00 1 (nil) + 159 111 +3.33e-01,+1.83e-01,-7.05e-01,+8.13e-01 2 -73 +GenVertex: -52 ID: 0 (X,cT):0 + I: 1 89 -313 -6.26e-01,+1.37e+00,-1.29e+01,+1.30e+01 2 -52 + O: 2 160 -311 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -74 + 161 111 -5.98e-01,+7.99e-01,-7.16e+00,+7.23e+00 2 -75 +Vertex: -53 ID: 0 (X,cT)=+6.33e-07,+1.04e-06,+2.79e-04,+2.79e-04 + I: 1 99 111 +1.27e-02,+2.08e-02,+5.61e+00,+5.61e+00 2 -53 + O: 2 162 22 +5.81e-02,+5.34e-02,+3.78e+00,+3.78e+00 1 (nil) + 163 22 -4.54e-02,-3.26e-02,+1.83e+00,+1.83e+00 1 (nil) +Vertex: -54 ID: 0 (X,cT)=+3.79e-06,-3.71e-05,+5.03e-04,+5.05e-04 + I: 1 100 111 +2.02e-02,-1.98e-01,+2.68e+00,+2.69e+00 2 -54 + O: 2 164 22 +2.39e-02,-9.50e-02,+2.06e+00,+2.06e+00 1 (nil) + 165 22 -3.65e-03,-1.03e-01,+6.27e-01,+6.35e-01 1 (nil) +Vertex: -55 ID: 0 (X,cT)=-2.82e-05,-4.46e-05,+8.64e-04,+8.66e-04 + I: 1 101 111 -1.94e-01,-3.08e-01,+5.97e+00,+5.98e+00 2 -55 + O: 2 166 22 -2.13e-01,-2.53e-01,+5.08e+00,+5.10e+00 1 (nil) + 167 22 +1.82e-02,-5.48e-02,+8.85e-01,+8.87e-01 1 (nil) +Vertex: -56 ID: 0 (X,cT)=-1.01e-04,-2.22e-04,+2.87e-03,+2.88e-03 + I: 1 102 111 -2.65e-01,-5.85e-01,+7.55e+00,+7.58e+00 2 -56 + O: 2 168 22 -2.34e-01,-3.64e-01,+4.90e+00,+4.92e+00 1 (nil) + 169 22 -3.04e-02,-2.21e-01,+2.65e+00,+2.66e+00 1 (nil) +Vertex: -57 ID: 0 (X,cT)=-2.73e-04,-3.09e-04,+2.81e-03,+2.84e-03 + I: 1 104 111 -1.24e+00,-1.40e+00,+1.27e+01,+1.29e+01 2 -57 + O: 2 170 22 -1.22e-02,-1.70e-02,+7.27e-02,+7.56e-02 1 (nil) + 171 22 -1.22e+00,-1.38e+00,+1.27e+01,+1.28e+01 1 (nil) +Vertex: -58 ID: 0 (X,cT)=+7.51e-05,-8.77e-05,+2.93e-03,+2.94e-03 + I: 1 109 111 +3.20e-01,-3.73e-01,+1.25e+01,+1.25e+01 2 -58 + O: 2 172 22 +3.26e-01,-3.46e-01,+1.21e+01,+1.21e+01 1 (nil) + 173 22 -6.46e-03,-2.66e-02,+3.50e-01,+3.51e-01 1 (nil) +Vertex: -59 ID: 0 (X,cT)=+1.45e-06,+3.84e-06,+8.70e-05,+8.71e-05 + I: 1 111 111 +1.52e-01,+4.04e-01,+9.17e+00,+9.18e+00 2 -59 + O: 2 174 22 -2.15e-02,+1.49e-02,+4.86e-01,+4.86e-01 1 (nil) + 175 22 +1.74e-01,+3.89e-01,+8.68e+00,+8.69e+00 1 (nil) +Vertex: -60 ID: 0 (X,cT)=+1.34e-05,+7.65e-06,+1.14e-03,+1.14e-03 + I: 1 114 111 +1.09e-01,+6.20e-02,+9.26e+00,+9.26e+00 2 -60 + O: 2 176 22 -1.64e-02,+4.04e-02,+4.24e+00,+4.24e+00 1 (nil) + 177 22 +1.25e-01,+2.17e-02,+5.02e+00,+5.02e+00 1 (nil) +Vertex: -61 ID: 0 (X,cT)=+1.85e-05,+1.29e-05,+2.43e-03,+2.43e-03 + I: 1 116 111 +3.77e-01,+2.64e-01,+4.98e+01,+4.98e+01 2 -61 + O: 2 178 22 +1.08e-01,+2.89e-02,+7.90e+00,+7.91e+00 1 (nil) + 179 22 +2.70e-01,+2.35e-01,+4.19e+01,+4.19e+01 1 (nil) +Vertex: -62 ID: 0 (X,cT)=+5.58e-05,-5.89e-06,+1.31e-02,+1.31e-02 + I: 1 124 111 +5.28e-01,-5.58e-02,+1.24e+02,+1.24e+02 2 -62 + O: 2 180 22 +2.10e-01,+4.29e-02,+4.58e+01,+4.58e+01 1 (nil) + 181 22 +3.18e-01,-9.86e-02,+7.82e+01,+7.82e+01 1 (nil) +Vertex: -63 ID: 0 (X,cT)=-7.71e-06,-8.34e-06,+5.03e-03,+5.03e-03 + I: 1 127 111 -1.66e-02,-1.80e-02,+1.09e+01,+1.09e+01 2 -63 + O: 2 182 22 -6.61e-02,-4.57e-02,+6.07e+00,+6.07e+00 1 (nil) + 183 22 +4.94e-02,+2.77e-02,+4.78e+00,+4.78e+00 1 (nil) +Vertex: -64 ID: 0 (X,cT)=+1.66e-05,-7.99e-07,+3.86e-03,+3.86e-03 + I: 1 129 111 +2.45e-01,-1.18e-02,+5.70e+01,+5.70e+01 2 -64 + O: 2 184 22 +1.69e-01,+5.36e-02,+3.26e+01,+3.26e+01 1 (nil) + 185 22 +7.62e-02,-6.54e-02,+2.44e+01,+2.44e+01 1 (nil) +Vertex: -65 ID: 0 (X,cT)=+7.56e+00,-3.28e+00,+4.14e+03,+4.14e+03 + I: 1 130 310 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -65 + O: 2 186 211 +1.58e-01,-6.43e-02,+3.22e+01,+3.22e+01 1 (nil) + 187 -211 -8.94e-02,+3.44e-02,+5.50e+00,+5.50e+00 1 (nil) +Vertex: -66 ID: 0 (X,cT)=+2.53e-06,+8.21e-07,+2.23e-05,+2.25e-05 + I: 1 135 111 +2.91e-01,+9.43e-02,+2.56e+00,+2.58e+00 2 -66 + O: 2 188 22 +1.27e-02,-2.62e-02,+3.17e-01,+3.18e-01 1 (nil) + 189 22 +2.78e-01,+1.20e-01,+2.24e+00,+2.26e+00 1 (nil) +Vertex: -67 ID: 0 (X,cT)=+1.37e-04,-1.19e-04,+6.70e-03,+6.70e-03 + I: 1 137 111 +1.93e-01,-1.69e-01,+9.48e+00,+9.49e+00 2 -67 + O: 2 190 22 +3.61e-04,+4.27e-04,-3.17e-04,+6.42e-04 1 (nil) + 191 22 +1.93e-01,-1.69e-01,+9.49e+00,+9.49e+00 1 (nil) +GenVertex: -68 ID: 0 (X,cT):0 + I: 1 139 311 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -68 + O: 1 192 310 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -76 +GenVertex: -69 ID: 0 (X,cT):0 + I: 1 143 -311 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -69 + O: 1 193 310 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -77 +Vertex: -70 ID: 0 (X,cT)=+5.44e+00,-2.22e+00,-5.83e+01,+6.79e+01 + I: 1 145 310 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -70 + O: 2 194 211 +3.78e-02,+1.72e-01,-5.70e-01,+6.12e-01 1 (nil) + 195 -211 +4.12e-02,-2.04e-01,-2.77e-01,+3.74e-01 1 (nil) +Vertex: -71 ID: 0 (X,cT)=+8.77e-06,+3.01e-05,-4.27e-04,+4.30e-04 + I: 1 150 111 +4.20e-02,+1.44e-01,-2.05e+00,+2.06e+00 2 -71 + O: 2 196 22 +2.27e-02,+1.42e-01,-1.05e+00,+1.06e+00 1 (nil) + 197 22 +1.93e-02,+2.42e-03,-9.95e-01,+9.95e-01 1 (nil) +Vertex: -72 ID: 0 (X,cT)=-6.15e-05,-5.48e-05,-3.58e-01,+3.58e-01 + I: 1 156 111 -1.45e-01,-1.29e-01,-8.42e+02,+8.42e+02 2 -72 + O: 2 198 22 -1.62e-01,-1.30e-01,-6.73e+02,+6.73e+02 1 (nil) + 199 22 +1.77e-02,+1.35e-03,-1.69e+02,+1.69e+02 1 (nil) +Vertex: -73 ID: 0 (X,cT)=+1.59e-06,+8.76e-07,-3.37e-06,+3.89e-06 + I: 1 159 111 +3.33e-01,+1.83e-01,-7.05e-01,+8.13e-01 2 -73 + O: 2 200 22 +1.34e-01,+3.84e-02,-1.48e-01,+2.03e-01 1 (nil) + 201 22 +1.99e-01,+1.45e-01,-5.58e-01,+6.10e-01 1 (nil) +GenVertex: -74 ID: 0 (X,cT):0 + I: 1 160 -311 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -74 + O: 1 202 310 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -78 +Vertex: -75 ID: 0 (X,cT)=-2.71e-05,+3.62e-05,-3.25e-04,+3.28e-04 + I: 1 161 111 -5.98e-01,+7.99e-01,-7.16e+00,+7.23e+00 2 -75 + O: 2 203 22 -4.61e-01,+6.62e-01,-6.07e+00,+6.13e+00 1 (nil) + 204 22 -1.37e-01,+1.37e-01,-1.09e+00,+1.10e+00 1 (nil) +Vertex: -76 ID: 0 (X,cT)=-2.44e+00,-1.04e+01,+9.94e+01,+1.04e+02 + I: 1 192 310 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -76 + O: 2 205 -211 -6.12e-02,+7.90e-02,+2.98e-01,+3.44e-01 1 (nil) + 206 211 +1.56e-02,-2.73e-01,+1.56e+00,+1.59e+00 1 (nil) +Vertex: -77 ID: 0 (X,cT)=-1.49e+01,-5.46e+01,+3.68e+01,+9.90e+01 + I: 1 193 310 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -77 + O: 2 207 -211 -2.41e-01,-3.27e-01,+1.77e-01,+4.65e-01 1 (nil) + 208 211 +1.38e-01,-4.84e-02,+7.57e-02,+2.16e-01 1 (nil) +Vertex: -78 ID: 0 (X,cT)=-1.33e-01,+2.68e+00,-2.69e+01,+2.71e+01 + I: 1 202 310 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -78 + O: 2 209 211 +5.42e-02,+4.89e-01,-5.04e+00,+5.07e+00 1 (nil) + 210 -211 -8.24e-02,+7.87e-02,-6.67e-01,+6.91e-01 1 (nil) +________________________________________________________________________________ +Stage 0->1 : 0 hits found in the muon chamber. +++++++++ event aborted +>>> Event 0 + 0 hits are stored in ExN04TrackerHitsCollection. + 0 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0 (GeV) + 0 hits are stored in ExN04MuonHitsCollection. +________________________________________________________________________________ +GenEvent: #2 ID=20 SignalProcessGenVertex Barcode: 0 + Current Memory Usage: 1 events, 224 vertices, 624 particles. + Entries this event: 224 vertices, 624 particles. + RndmState(0)= + Wgts(0)= + EventScale -1 GeV alphaQCD=-1 alphaQED=-1 + GenParticle Legend + Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx +________________________________________________________________________________ +GenVertex: -1 ID: 0 (X,cT):0 + I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 + O: 3 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 + 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 + 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 +GenVertex: -2 ID: 0 (X,cT):0 + I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 + O: 2 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 + 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 +GenVertex: -3 ID: 0 (X,cT):0 + I: 1 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 + O: 8 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 + 12 21 +1.85e+00,+6.48e+00,-3.61e+01,+3.67e+01 2 -9 + 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 + 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 + 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 + 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 + 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 + 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 +GenVertex: -4 ID: 0 (X,cT):0 + I: 1 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 + O:12 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 + 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 + 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 + 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 + 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 + 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 + 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 + 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 + 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 + 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 +GenVertex: -5 ID: 0 (X,cT):0 + I: 2 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 + O: 2 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 + 8 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 3 -7 +GenVertex: -6 ID: 0 (X,cT):0 + I: 1 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 + O: 1 9 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 1 (nil) +GenVertex: -7 ID: 0 (X,cT):0 + I: 1 8 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 3 -7 + O: 1 10 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -8 +GenVertex: -8 ID: 0 (X,cT):0 + I: 1 10 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -8 + O: 6 43 21 -1.27e+00,-7.35e-02,-1.13e+01,+1.14e+01 2 -15 + 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 + 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 + 44 21 -4.16e-02,-2.47e-01,-1.97e+00,+1.98e+00 2 -15 + 45 21 +9.29e-01,-5.25e-01,-8.27e+00,+8.34e+00 2 -15 + 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 +GenVertex: -9 ID: 0 (X,cT):0 + I: 3 12 21 +1.85e+00,+6.48e+00,-3.61e+01,+3.67e+01 2 -9 + 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 + 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 + O: 1 52 92 +3.65e+00,+5.68e+00,+4.07e+02,+4.96e+02 2 -10 +GenVertex: -10 ID: 0 (X,cT):0 + I: 1 52 92 +3.65e+00,+5.68e+00,+4.07e+02,+4.96e+02 2 -10 + O:17 68 113 -9.06e-02,+1.63e-01,+1.67e+02,+1.67e+02 2 -35 + 69 221 +1.73e-01,+4.07e-01,+2.06e+02,+2.06e+02 2 -36 + 56 113 +3.14e-01,+1.06e+00,-3.82e+00,+4.04e+00 2 -24 + 57 223 +8.27e-03,+4.69e-01,-5.55e+00,+5.62e+00 2 -25 + 58 213 +1.90e-01,+8.19e-01,-3.63e+00,+3.80e+00 2 -26 + 59 223 +4.76e-01,+3.30e-01,-1.30e+00,+1.62e+00 2 -27 + 60 -323 -1.01e-01,+5.65e-03,+1.73e-01,+8.22e-01 2 -28 + 61 313 -7.71e-02,+3.71e-01,+6.58e-01,+1.14e+00 2 -29 + 62 213 -3.58e-01,-1.85e-01,+2.02e-01,+7.59e-01 2 -30 + 63 221 +5.37e-01,+2.24e-01,+7.68e+00,+7.72e+00 2 -31 + 65 211 -9.70e-03,-2.00e-01,+9.73e-01,+1.00e+00 1 (nil) + 66 -213 +3.60e-01,-1.91e-02,+2.45e+01,+2.45e+01 2 -33 + 67 113 -3.73e-01,+1.18e-02,+3.83e+01,+3.84e+01 2 -34 + 54 -323 +5.03e-01,+1.51e+00,-6.41e+00,+6.67e+00 2 -22 + 55 313 +6.48e-01,+1.70e+00,-1.25e+01,+1.27e+01 2 -23 + 53 -423 +1.80e+00,-7.41e-01,-9.90e+00,+1.03e+01 2 -21 + 64 -213 -3.57e-01,-2.47e-01,+4.39e+00,+4.44e+00 2 -32 +GenVertex: -11 ID: 0 (X,cT):0 + I:26 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 + 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 + 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 + 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 + 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 + 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 + 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 + 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 + 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 + 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 + 18 21 -3.89e+00,-1.90e+00,+4.34e+01,+4.36e+01 2 -11 + 19 21 -3.91e+00,+3.13e+00,+7.89e+02,+7.89e+02 2 -11 + 20 21 +3.89e+00,+1.90e+00,+1.42e+03,+1.42e+03 2 -11 + 21 21 +4.37e+00,+6.72e+00,+8.31e+01,+8.35e+01 2 -11 + 22 21 +3.91e+00,-3.13e+00,+3.66e+01,+3.69e+01 2 -11 + 23 21 -1.76e+00,-3.29e+00,+9.66e+00,+1.04e+01 2 -11 + 24 21 -4.37e+00,-6.72e+00,+8.76e-01,+8.07e+00 2 -11 + 26 21 +1.76e+00,+3.29e+00,-4.65e+00,+5.96e+00 2 -11 + 27 21 +2.35e+00,+1.77e+00,-7.28e+02,+7.28e+02 2 -11 + 25 21 -2.35e+00,-1.77e+00,-4.88e+00,+5.70e+00 2 -11 + 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 + 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 + 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 + 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 + O: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 +GenVertex: -12 ID: 0 (X,cT):0 + I: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 + O:90 157 211 +7.13e-01,-3.28e-01,-1.35e+02,+1.35e+02 1 (nil) + 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 + 159 -211 +8.50e-01,-2.44e-01,-2.40e+03,+2.40e+03 1 (nil) + 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 + 72 213 +1.08e+00,-6.60e-01,-2.31e+00,+2.70e+00 2 -38 + 73 331 +8.84e-01,-9.17e-01,-1.33e+00,+2.07e+00 2 -39 + 74 -213 +1.67e+00,-6.02e-01,-4.33e+00,+4.71e+00 2 -40 + 75 111 -2.29e-01,-5.45e-02,-1.11e+00,+1.15e+00 2 -41 + 76 211 +1.91e-01,-3.77e-01,+3.30e-01,+5.54e-01 1 (nil) + 77 -211 +2.15e-01,+4.10e-01,+1.16e-01,+4.98e-01 1 (nil) + 78 211 +1.18e-01,-7.30e-01,-1.31e+00,+1.51e+00 1 (nil) + 79 3112 -1.25e-01,-5.92e-02,+4.02e+00,+4.19e+00 2 -42 + 80 311 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -43 + 81 -1114 -5.93e-01,-4.62e-01,+7.53e+00,+7.69e+00 2 -44 + 82 -211 -3.95e-01,+3.08e-01,+9.39e+00,+9.40e+00 1 (nil) + 83 211 -3.13e-01,-7.22e-01,+8.53e+00,+8.56e+00 1 (nil) + 84 -213 -1.27e-01,-1.01e-01,+5.15e+00,+5.19e+00 2 -45 + 85 213 -1.20e+00,-1.22e-01,+2.34e+01,+2.35e+01 2 -46 + 86 223 -7.42e-02,+1.42e-01,+1.52e+01,+1.52e+01 2 -47 + 87 -213 -9.01e-01,-6.04e-01,+2.49e+01,+2.49e+01 2 -48 + 88 323 -3.96e-01,+4.77e-01,+8.35e+01,+8.35e+01 2 -49 + 89 -313 -1.18e+00,+4.38e-01,+2.34e+02,+2.34e+02 2 -50 + 90 111 -2.10e-02,+1.47e-01,+2.20e+01,+2.20e+01 2 -51 + 71 423 +6.74e+00,-3.13e+00,-1.81e+01,+1.96e+01 2 -37 + 91 -213 -1.47e+00,+1.82e+00,+3.92e+02,+3.92e+02 2 -52 + 92 213 +1.75e+00,+1.50e+00,+6.91e+02,+6.91e+02 2 -53 + 93 -211 -8.94e-02,-3.08e-01,+1.41e+02,+1.41e+02 1 (nil) + 94 111 +7.06e-01,+3.83e-01,+1.68e+02,+1.68e+02 2 -54 + 95 223 +1.83e-01,+6.58e-01,+2.64e+02,+2.64e+02 2 -55 + 96 113 +1.17e+00,-6.49e-01,+1.09e+02,+1.09e+02 2 -56 + 97 213 -3.59e-02,+9.92e-01,+3.73e+01,+3.74e+01 2 -57 + 98 221 +4.22e-01,+3.30e-01,+8.56e+00,+8.60e+00 2 -58 + 100 111 +1.28e+00,+5.91e-01,+1.83e+01,+1.84e+01 2 -60 + 101 331 +1.59e+00,+2.22e+00,+3.03e+01,+3.04e+01 2 -61 + 102 213 +1.77e+00,-1.58e+00,+1.71e+01,+1.73e+01 2 -62 + 103 -211 -1.88e-01,-1.28e-01,+3.87e+00,+3.88e+00 1 (nil) + 104 211 +6.95e-01,-7.43e-02,+2.83e+00,+2.91e+00 1 (nil) + 105 311 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -63 + 106 333 +8.72e-02,-2.03e+00,+7.62e+00,+7.95e+00 2 -64 + 107 -323 -1.98e-01,-1.55e-01,+2.64e+00,+2.79e+00 2 -65 + 108 113 -1.10e+00,-1.90e+00,+5.32e+00,+5.81e+00 2 -66 + 109 213 -7.23e-01,-7.70e-01,+6.13e-01,+1.63e+00 2 -67 + 110 -211 -4.35e-01,-8.15e-01,+1.78e-01,+9.51e-01 1 (nil) + 111 213 -5.97e-01,-1.22e+00,+2.67e-01,+1.55e+00 2 -68 + 112 -211 -1.43e+00,-1.65e+00,+4.83e-01,+2.24e+00 1 (nil) + 113 111 +4.36e-02,-2.43e-01,+6.27e-02,+2.89e-01 2 -69 + 129 -211 -4.91e-02,+3.02e-01,-5.27e+01,+5.27e+01 1 (nil) + 155 -321 +3.69e-01,-3.68e-01,-5.25e+01,+5.25e+01 1 (nil) + 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 + 116 321 +3.64e-01,+4.39e-01,+9.92e-02,+7.61e-01 1 (nil) + 117 -321 -1.27e-01,-1.02e+00,-1.45e+00,+1.85e+00 1 (nil) + 118 211 -2.01e-01,+3.58e-01,-1.79e+00,+1.84e+00 1 (nil) + 119 311 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -72 + 120 -321 +1.03e-01,-1.31e-01,-8.45e-01,+9.93e-01 1 (nil) + 121 113 -2.01e-02,+9.67e-01,-2.76e+00,+3.05e+00 2 -73 + 122 213 +6.99e-01,+4.88e-01,-2.14e+00,+2.37e+00 2 -74 + 123 223 +1.59e-01,-2.33e-01,-7.42e+00,+7.46e+00 2 -75 + 124 223 -3.07e-01,+5.68e-01,-1.77e+01,+1.77e+01 2 -76 + 125 1114 +7.70e-01,-3.47e-01,-1.94e+02,+1.94e+02 2 -77 + 126 111 +6.52e-01,+1.56e+00,-1.11e+02,+1.11e+02 2 -78 + 127 -2112 +1.08e-01,+9.33e-02,-7.63e+01,+7.63e+01 1 (nil) + 128 211 +3.93e-01,-4.83e-01,-5.97e+01,+5.97e+01 1 (nil) + 130 113 +7.74e-01,+8.64e-01,-8.89e+01,+8.89e+01 2 -79 + 131 223 +1.70e-02,+2.83e-01,-9.69e+01,+9.69e+01 2 -80 + 132 223 +3.02e-01,+2.43e-01,-3.21e+01,+3.21e+01 2 -81 + 133 221 +6.52e-01,-1.30e-02,-7.49e+00,+7.53e+00 2 -82 + 134 213 +1.25e+00,+2.45e+00,-3.91e+01,+3.93e+01 2 -83 + 135 221 +8.86e-01,+9.16e-01,-1.24e+01,+1.25e+01 2 -84 + 136 -211 +1.82e+00,+1.89e+00,-2.77e+01,+2.78e+01 1 (nil) + 137 111 +7.22e-01,+1.16e+00,-1.29e+01,+1.29e+01 2 -85 + 138 113 +1.21e+00,+1.68e+00,-1.89e+01,+1.90e+01 2 -86 + 139 211 +1.12e+00,+5.04e-01,-1.16e+01,+1.17e+01 1 (nil) + 140 -213 +4.58e-01,+1.15e+00,-1.84e+01,+1.85e+01 2 -87 + 141 213 +2.08e+00,+1.68e+00,-2.61e+01,+2.63e+01 2 -88 + 142 313 +1.78e+00,+1.24e+00,-2.26e+01,+2.27e+01 2 -89 + 143 -313 +1.42e+00,+6.47e-01,-1.81e+01,+1.82e+01 2 -90 + 144 2112 -1.12e+00,+5.37e-01,-5.10e+01,+5.10e+01 1 (nil) + 145 -213 -5.75e-01,-4.78e-01,-9.45e+01,+9.45e+01 2 -91 + 146 -1114 -8.04e-01,-7.43e-01,-3.40e+01,+3.40e+01 2 -92 + 147 -213 -1.80e-01,+6.29e-02,-4.32e+01,+4.32e+01 2 -93 + 148 211 -1.19e+00,-2.34e-01,-3.93e+01,+3.93e+01 1 (nil) + 149 311 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 2 -94 + 150 -323 -3.04e-01,-3.92e-01,-7.88e+01,+7.88e+01 2 -95 + 151 213 -1.80e+00,-1.21e+00,-8.93e+01,+8.94e+01 2 -96 + 152 113 +4.91e-01,-9.72e-01,-5.04e+01,+5.05e+01 2 -97 + 153 221 +2.67e-01,-2.61e-01,-2.16e+01,+2.16e+01 2 -98 + 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 + 99 -213 +9.75e-01,+2.54e+00,+3.20e+01,+3.22e+01 2 -59 + 114 213 -1.15e+00,-1.72e+00,-2.01e+00,+2.97e+00 2 -70 + 115 -213 -9.95e-01,-3.87e-01,-1.11e+00,+1.63e+00 2 -71 +GenVertex: -13 ID: 0 (X,cT):0 + I: 2 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 + 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 + O: 1 161 92 -4.19e-01,-2.08e+00,+4.13e+03,+4.13e+03 2 -14 +GenVertex: -14 ID: 0 (X,cT):0 + I: 1 161 92 -4.19e-01,-2.08e+00,+4.13e+03,+4.13e+03 2 -14 + O:14 162 211 -3.13e-01,-1.66e+00,+2.96e+00,+3.41e+00 1 (nil) + 163 223 -1.35e-02,+1.05e-01,+2.90e+00,+3.01e+00 2 -103 + 164 -213 -7.67e-02,-1.58e-01,+2.83e+00,+2.94e+00 2 -104 + 167 331 +7.92e-02,-2.14e-01,+1.65e+01,+1.65e+01 2 -107 + 168 211 +1.55e-01,-4.55e-02,+2.09e+01,+2.09e+01 1 (nil) + 169 113 -9.07e-02,+1.70e-01,+7.69e+00,+7.71e+00 2 -108 + 170 -211 +1.96e-02,-3.42e-02,+4.36e+00,+4.36e+00 1 (nil) + 171 211 +1.50e-01,-7.36e-02,+6.14e+01,+6.14e+01 1 (nil) + 172 313 -9.79e-02,+5.68e-01,+7.20e+01,+7.20e+01 2 -109 + 173 -313 -1.30e-01,-7.96e-01,+2.37e+02,+2.37e+02 2 -110 + 174 2112 +5.28e-01,-1.88e-01,+1.06e+03,+1.06e+03 1 (nil) + 175 211 -3.22e-01,+5.25e-01,+2.61e+03,+2.61e+03 1 (nil) + 165 113 -3.96e-01,-2.46e-01,+7.66e+00,+7.72e+00 2 -105 + 166 223 +8.97e-02,-2.51e-02,+1.83e+01,+1.83e+01 2 -106 +GenVertex: -15 ID: 0 (X,cT):0 + I: 6 43 21 -1.27e+00,-7.35e-02,-1.13e+01,+1.14e+01 2 -15 + 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 + 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 + 44 21 -4.16e-02,-2.47e-01,-1.97e+00,+1.98e+00 2 -15 + 45 21 +9.29e-01,-5.25e-01,-8.27e+00,+8.34e+00 2 -15 + 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 + O: 1 176 92 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -16 +GenVertex: -16 ID: 0 (X,cT):0 + I: 1 176 92 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -16 + O:10 177 -411 -2.64e+01,+1.68e+01,-2.54e+02,+2.56e+02 2 -111 + 178 -2112 -3.30e+00,+1.95e+00,-3.12e+01,+3.14e+01 1 (nil) + 179 2112 -3.69e+00,+2.38e+00,-3.47e+01,+3.50e+01 1 (nil) + 180 -313 -1.69e+00,+9.52e-01,-1.93e+01,+1.94e+01 2 -112 + 181 323 -1.07e+00,+1.14e+00,-1.19e+01,+1.20e+01 2 -113 + 182 -323 -1.04e+00,-2.43e-02,-1.56e+01,+1.57e+01 2 -114 + 183 321 +9.73e-01,-7.75e-01,-1.20e+01,+1.21e+01 1 (nil) + 184 113 +9.16e+00,-6.89e+00,-1.32e+02,+1.32e+02 2 -115 + 185 111 +1.57e+00,-1.44e+00,-2.40e+01,+2.41e+01 2 -116 + 186 -321 +1.62e+01,-1.24e+01,-2.25e+02,+2.26e+02 1 (nil) +GenVertex: -17 ID: 0 (X,cT):0 + I: 2 48 3 +2.68e+00,-2.13e+00,-4.93e+00,+6.00e+00 2 -17 + 49 -3 -2.68e+00,+2.13e+00,+2.54e+01,+2.56e+01 2 -17 + O: 1 187 92 +0.00e+00,+0.00e+00,+2.05e+01,+3.16e+01 2 -18 +GenVertex: -18 ID: 0 (X,cT):0 + I: 1 187 92 +0.00e+00,+0.00e+00,+2.05e+01,+3.16e+01 2 -18 + O:11 188 -321 +2.32e+00,-1.47e+00,-3.73e+00,+4.66e+00 1 (nil) + 189 213 -1.88e-01,-4.78e-01,-1.86e-02,+8.02e-01 2 -117 + 190 -211 +5.28e-01,-6.99e-02,+3.78e-01,+6.68e-01 1 (nil) + 191 213 -1.69e-01,+6.66e-02,+1.66e+00,+1.95e+00 2 -118 + 192 113 -7.42e-01,+4.97e-01,+2.71e+00,+2.94e+00 2 -119 + 193 -213 +2.70e-02,+3.31e-01,+2.97e-01,+7.93e-01 2 -120 + 194 211 -6.87e-03,-3.65e-01,+8.22e-01,+9.10e-01 1 (nil) + 195 113 -1.79e-01,+4.58e-01,+4.36e+00,+4.46e+00 2 -121 + 196 -213 -8.75e-02,+1.16e-01,+1.21e+00,+1.46e+00 2 -122 + 197 323 -7.63e-01,+6.20e-01,+7.15e+00,+7.28e+00 2 -123 + 198 221 -7.36e-01,+2.91e-01,+5.63e+00,+5.72e+00 2 -124 +GenVertex: -19 ID: 0 (X,cT):0 + I: 2 50 21 +1.28e+00,-2.63e+00,+9.77e-01,+3.09e+00 2 -19 + 51 21 -1.28e+00,+2.63e+00,+2.15e+00,+3.63e+00 2 -19 + O: 1 199 92 +0.00e+00,+0.00e+00,+3.12e+00,+6.71e+00 2 -20 +GenVertex: -20 ID: 0 (X,cT):0 + I: 1 199 92 +0.00e+00,+0.00e+00,+3.12e+00,+6.71e+00 2 -20 + O: 5 200 213 +4.69e-02,-1.77e-01,-3.64e-01,+1.10e+00 2 -125 + 201 111 +3.73e-01,-3.78e-02,+1.18e+00,+1.24e+00 2 -126 + 202 -213 -7.72e-01,+1.13e+00,+1.14e+00,+1.96e+00 2 -127 + 203 223 +4.07e-01,-5.29e-01,+1.12e-01,+1.04e+00 2 -128 + 204 223 -5.49e-02,-3.91e-01,+1.06e+00,+1.37e+00 2 -129 +GenVertex: -21 ID: 0 (X,cT):0 + I: 1 53 -423 +1.80e+00,-7.41e-01,-9.90e+00,+1.03e+01 2 -21 + O: 2 205 -421 +1.62e+00,-6.80e-01,-9.14e+00,+9.49e+00 2 -130 + 206 111 +1.80e-01,-6.13e-02,-7.60e-01,+7.95e-01 2 -131 +GenVertex: -22 ID: 0 (X,cT):0 + I: 1 54 -323 +5.03e-01,+1.51e+00,-6.41e+00,+6.67e+00 2 -22 + O: 2 207 -311 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -132 + 208 -211 +1.19e-01,+8.35e-01,-4.09e+00,+4.18e+00 1 (nil) +GenVertex: -23 ID: 0 (X,cT):0 + I: 1 55 313 +6.48e-01,+1.70e+00,-1.25e+01,+1.27e+01 2 -23 + O: 2 209 311 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -133 + 210 111 +1.56e-01,+3.28e-02,-2.20e+00,+2.21e+00 2 -134 +GenVertex: -24 ID: 0 (X,cT):0 + I: 1 56 113 +3.14e-01,+1.06e+00,-3.82e+00,+4.04e+00 2 -24 + O: 2 211 -211 +2.07e-01,-7.41e-03,-8.44e-01,+8.80e-01 1 (nil) + 212 211 +1.07e-01,+1.07e+00,-2.97e+00,+3.16e+00 1 (nil) +GenVertex: -25 ID: 0 (X,cT):0 + I: 1 57 223 +8.27e-03,+4.69e-01,-5.55e+00,+5.62e+00 2 -25 + O: 3 213 211 +1.65e-01,+9.37e-02,-1.12e+00,+1.14e+00 1 (nil) + 214 -211 -3.30e-02,+9.79e-02,-3.21e+00,+3.22e+00 1 (nil) + 215 111 -1.24e-01,+2.78e-01,-1.22e+00,+1.26e+00 2 -135 +GenVertex: -26 ID: 0 (X,cT):0 + I: 1 58 213 +1.90e-01,+8.19e-01,-3.63e+00,+3.80e+00 2 -26 + O: 2 216 211 +2.62e-01,+8.26e-01,-2.45e+00,+2.61e+00 1 (nil) + 217 111 -7.15e-02,-6.31e-03,-1.18e+00,+1.19e+00 2 -136 +GenVertex: -27 ID: 0 (X,cT):0 + I: 1 59 223 +4.76e-01,+3.30e-01,-1.30e+00,+1.62e+00 2 -27 + O: 3 218 -211 +1.28e-01,-6.04e-02,-2.75e-01,+3.39e-01 1 (nil) + 219 211 +2.00e-01,+3.04e-01,-9.82e-01,+1.06e+00 1 (nil) + 220 111 +1.49e-01,+8.68e-02,-4.65e-02,+2.24e-01 2 -137 +GenVertex: -28 ID: 0 (X,cT):0 + I: 1 60 -323 -1.01e-01,+5.65e-03,+1.73e-01,+8.22e-01 2 -28 + O: 2 221 -311 -8.28e-02,+1.40e-01,+2.87e-01,+5.97e-01 2 -138 + 222 -211 -1.84e-02,-1.34e-01,-1.14e-01,+2.25e-01 1 (nil) +GenVertex: -29 ID: 0 (X,cT):0 + I: 1 61 313 -7.71e-02,+3.71e-01,+6.58e-01,+1.14e+00 2 -29 + O: 2 223 321 -1.86e-02,+1.84e-02,+1.85e-01,+5.28e-01 1 (nil) + 224 -211 -5.85e-02,+3.52e-01,+4.73e-01,+6.09e-01 1 (nil) +GenVertex: -30 ID: 0 (X,cT):0 + I: 1 62 213 -3.58e-01,-1.85e-01,+2.02e-01,+7.59e-01 2 -30 + O: 2 225 211 +1.06e-01,-2.99e-02,+1.77e-01,+2.51e-01 1 (nil) + 226 111 -4.64e-01,-1.55e-01,+2.53e-02,+5.08e-01 2 -139 +GenVertex: -31 ID: 0 (X,cT):0 + I: 1 63 221 +5.37e-01,+2.24e-01,+7.68e+00,+7.72e+00 2 -31 + O: 3 227 22 +9.24e-02,+1.22e-01,+1.51e+00,+1.52e+00 1 (nil) + 228 -211 +1.64e-01,-1.14e-01,+3.22e+00,+3.23e+00 1 (nil) + 229 211 +2.81e-01,+2.16e-01,+2.94e+00,+2.97e+00 1 (nil) +GenVertex: -32 ID: 0 (X,cT):0 + I: 1 64 -213 -3.57e-01,-2.47e-01,+4.39e+00,+4.44e+00 2 -32 + O: 2 230 -211 -3.46e-01,-7.92e-02,+3.34e+00,+3.37e+00 1 (nil) + 231 111 -1.13e-02,-1.68e-01,+1.05e+00,+1.07e+00 2 -140 +GenVertex: -33 ID: 0 (X,cT):0 + I: 1 66 -213 +3.60e-01,-1.91e-02,+2.45e+01,+2.45e+01 2 -33 + O: 2 232 -211 +2.45e-01,+2.11e-01,+2.06e+01,+2.06e+01 1 (nil) + 233 111 +1.15e-01,-2.30e-01,+3.89e+00,+3.90e+00 2 -141 +GenVertex: -34 ID: 0 (X,cT):0 + I: 1 67 113 -3.73e-01,+1.18e-02,+3.83e+01,+3.84e+01 2 -34 + O: 2 234 -211 +1.07e-02,+2.95e-01,+1.86e+01,+1.86e+01 1 (nil) + 235 211 -3.83e-01,-2.83e-01,+1.98e+01,+1.98e+01 1 (nil) +GenVertex: -35 ID: 0 (X,cT):0 + I: 1 68 113 -9.06e-02,+1.63e-01,+1.67e+02,+1.67e+02 2 -35 + O: 2 236 211 -2.00e-02,-2.69e-01,+6.04e+01,+6.04e+01 1 (nil) + 237 -211 -7.06e-02,+4.32e-01,+1.07e+02,+1.07e+02 1 (nil) +GenVertex: -36 ID: 0 (X,cT):0 + I: 1 69 221 +1.73e-01,+4.07e-01,+2.06e+02,+2.06e+02 2 -36 + O: 3 239 -211 +1.52e-01,+2.49e-01,+1.36e+02,+1.36e+02 1 (nil) + 240 111 -1.84e-03,+5.13e-02,+2.10e+01,+2.10e+01 2 -142 + 238 211 +2.30e-02,+1.07e-01,+4.89e+01,+4.89e+01 1 (nil) +GenVertex: -37 ID: 0 (X,cT):0 + I: 1 71 423 +6.74e+00,-3.13e+00,-1.81e+01,+1.96e+01 2 -37 + O: 2 241 421 +6.24e+00,-2.87e+00,-1.68e+01,+1.82e+01 2 -143 + 242 111 +4.94e-01,-2.63e-01,-1.28e+00,+1.40e+00 2 -144 +GenVertex: -38 ID: 0 (X,cT):0 + I: 1 72 213 +1.08e+00,-6.60e-01,-2.31e+00,+2.70e+00 2 -38 + O: 2 243 211 +2.70e-01,-4.65e-01,-9.32e-01,+1.08e+00 1 (nil) + 244 111 +8.10e-01,-1.96e-01,-1.38e+00,+1.62e+00 2 -145 +GenVertex: -39 ID: 0 (X,cT):0 + I: 1 73 331 +8.84e-01,-9.17e-01,-1.33e+00,+2.07e+00 2 -39 + O: 3 245 211 +4.27e-01,-3.13e-01,-3.45e-01,+6.47e-01 1 (nil) + 246 -211 +6.70e-02,-6.53e-02,-1.12e-01,+2.02e-01 1 (nil) + 247 221 +3.89e-01,-5.39e-01,-8.71e-01,+1.22e+00 2 -146 +GenVertex: -40 ID: 0 (X,cT):0 + I: 1 74 -213 +1.67e+00,-6.02e-01,-4.33e+00,+4.71e+00 2 -40 + O: 2 248 -211 +8.95e-01,-3.43e-01,-1.67e+00,+1.93e+00 1 (nil) + 249 111 +7.72e-01,-2.59e-01,-2.66e+00,+2.78e+00 2 -147 +Vertex: -41 ID: 0 (X,cT)=-1.15e-05,-2.74e-06,-5.60e-05,+5.77e-05 + I: 1 75 111 -2.29e-01,-5.45e-02,-1.11e+00,+1.15e+00 2 -41 + O: 2 250 22 -1.87e-01,-7.34e-02,-6.48e-01,+6.78e-01 1 (nil) + 251 22 -4.27e-02,+1.89e-02,-4.65e-01,+4.68e-01 1 (nil) +Vertex: -42 ID: 0 (X,cT)=-9.58e+00,-4.54e+00,+3.08e+02,+3.22e+02 + I: 1 79 3112 -1.25e-01,-5.92e-02,+4.02e+00,+4.19e+00 2 -42 + O: 2 252 2112 +2.35e-02,-7.71e-02,+3.69e+00,+3.81e+00 1 (nil) + 253 -211 -1.48e-01,+1.79e-02,+3.30e-01,+3.88e-01 1 (nil) +GenVertex: -43 ID: 0 (X,cT):0 + I: 1 80 311 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -43 + O: 1 254 310 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -148 +GenVertex: -44 ID: 0 (X,cT):0 + I: 1 81 -1114 -5.93e-01,-4.62e-01,+7.53e+00,+7.69e+00 2 -44 + O: 2 255 -2112 -7.16e-01,-5.94e-01,+6.69e+00,+6.82e+00 1 (nil) + 256 211 +1.23e-01,+1.32e-01,+8.42e-01,+8.72e-01 1 (nil) +GenVertex: -45 ID: 0 (X,cT):0 + I: 1 84 -213 -1.27e-01,-1.01e-01,+5.15e+00,+5.19e+00 2 -45 + O: 2 257 -211 +1.09e-01,-2.00e-01,+3.92e+00,+3.93e+00 1 (nil) + 258 111 -2.36e-01,+9.89e-02,+1.22e+00,+1.25e+00 2 -149 +GenVertex: -46 ID: 0 (X,cT):0 + I: 1 85 213 -1.20e+00,-1.22e-01,+2.34e+01,+2.35e+01 2 -46 + O: 2 259 211 -9.25e-02,+6.68e-02,+1.06e+00,+1.07e+00 1 (nil) + 260 111 -1.11e+00,-1.89e-01,+2.24e+01,+2.24e+01 2 -150 +GenVertex: -47 ID: 0 (X,cT):0 + I: 1 86 223 -7.42e-02,+1.42e-01,+1.52e+01,+1.52e+01 2 -47 + O: 3 261 211 -8.80e-02,-1.85e-01,+7.90e+00,+7.90e+00 1 (nil) + 262 -211 -9.38e-02,+7.23e-02,+3.34e+00,+3.35e+00 1 (nil) + 263 111 +1.08e-01,+2.55e-01,+3.93e+00,+3.94e+00 2 -151 +GenVertex: -48 ID: 0 (X,cT):0 + I: 1 87 -213 -9.01e-01,-6.04e-01,+2.49e+01,+2.49e+01 2 -48 + O: 2 264 -211 -5.80e-01,-4.05e-01,+2.11e+01,+2.11e+01 1 (nil) + 265 111 -3.21e-01,-1.99e-01,+3.80e+00,+3.82e+00 2 -152 +GenVertex: -49 ID: 0 (X,cT):0 + I: 1 88 323 -3.96e-01,+4.77e-01,+8.35e+01,+8.35e+01 2 -49 + O: 2 266 321 -2.79e-01,+6.38e-01,+6.43e+01,+6.43e+01 1 (nil) + 267 111 -1.18e-01,-1.61e-01,+1.92e+01,+1.92e+01 2 -153 +GenVertex: -50 ID: 0 (X,cT):0 + I: 1 89 -313 -1.18e+00,+4.38e-01,+2.34e+02,+2.34e+02 2 -50 + O: 2 268 -321 -8.94e-01,+2.08e-02,+1.54e+02,+1.54e+02 1 (nil) + 269 211 -2.85e-01,+4.17e-01,+8.01e+01,+8.01e+01 1 (nil) +Vertex: -51 ID: 0 (X,cT)=-6.60e-06,+4.63e-05,+6.91e-03,+6.91e-03 + I: 1 90 111 -2.10e-02,+1.47e-01,+2.20e+01,+2.20e+01 2 -51 + O: 2 270 22 +3.30e-03,+1.38e-01,+2.13e+01,+2.13e+01 1 (nil) + 271 22 -2.43e-02,+9.55e-03,+7.24e-01,+7.25e-01 1 (nil) +GenVertex: -52 ID: 0 (X,cT):0 + I: 1 91 -213 -1.47e+00,+1.82e+00,+3.92e+02,+3.92e+02 2 -52 + O: 2 272 -211 -2.85e-01,+9.40e-01,+1.43e+02,+1.43e+02 1 (nil) + 273 111 -1.19e+00,+8.85e-01,+2.49e+02,+2.49e+02 2 -154 +GenVertex: -53 ID: 0 (X,cT):0 + I: 1 92 213 +1.75e+00,+1.50e+00,+6.91e+02,+6.91e+02 2 -53 + O: 2 274 211 +1.79e+00,+1.29e+00,+6.18e+02,+6.18e+02 1 (nil) + 275 111 -3.94e-02,+2.10e-01,+7.29e+01,+7.29e+01 2 -155 +Vertex: -54 ID: 0 (X,cT)=+1.07e-04,+5.79e-05,+2.54e-02,+2.54e-02 + I: 1 94 111 +7.06e-01,+3.83e-01,+1.68e+02,+1.68e+02 2 -54 + O: 2 276 22 +2.50e-01,+1.51e-01,+4.86e+01,+4.86e+01 1 (nil) + 277 22 +4.56e-01,+2.32e-01,+1.20e+02,+1.20e+02 1 (nil) +GenVertex: -55 ID: 0 (X,cT):0 + I: 1 95 223 +1.83e-01,+6.58e-01,+2.64e+02,+2.64e+02 2 -55 + O: 3 278 211 +2.62e-01,+6.67e-02,+8.45e+01,+8.45e+01 1 (nil) + 279 -211 +3.03e-02,+5.27e-01,+1.40e+02,+1.40e+02 1 (nil) + 280 111 -1.09e-01,+6.39e-02,+3.93e+01,+3.93e+01 2 -156 +GenVertex: -56 ID: 0 (X,cT):0 + I: 1 96 113 +1.17e+00,-6.49e-01,+1.09e+02,+1.09e+02 2 -56 + O: 2 281 -211 +1.05e+00,-3.90e-01,+9.92e+01,+9.92e+01 1 (nil) + 282 211 +1.20e-01,-2.59e-01,+1.03e+01,+1.03e+01 1 (nil) +GenVertex: -57 ID: 0 (X,cT):0 + I: 1 97 213 -3.59e-02,+9.92e-01,+3.73e+01,+3.74e+01 2 -57 + O: 2 283 211 -1.62e-01,+3.10e-02,+2.19e+00,+2.20e+00 1 (nil) + 284 111 +1.27e-01,+9.61e-01,+3.52e+01,+3.52e+01 2 -157 +GenVertex: -58 ID: 0 (X,cT):0 + I: 1 98 221 +4.22e-01,+3.30e-01,+8.56e+00,+8.60e+00 2 -58 + O: 3 285 111 +2.92e-01,+2.10e-01,+3.56e+00,+3.58e+00 2 -158 + 286 111 +7.22e-02,+1.09e-01,+1.73e+00,+1.74e+00 2 -159 + 287 111 +5.73e-02,+1.07e-02,+3.27e+00,+3.27e+00 2 -160 +GenVertex: -59 ID: 0 (X,cT):0 + I: 1 99 -213 +9.75e-01,+2.54e+00,+3.20e+01,+3.22e+01 2 -59 + O: 2 288 -211 +5.56e-01,+1.36e+00,+1.23e+01,+1.24e+01 1 (nil) + 289 111 +4.18e-01,+1.18e+00,+1.97e+01,+1.98e+01 2 -161 +Vertex: -60 ID: 0 (X,cT)=+3.89e-05,+1.80e-05,+5.58e-04,+5.60e-04 + I: 1 100 111 +1.28e+00,+5.91e-01,+1.83e+01,+1.84e+01 2 -60 + O: 2 290 22 +1.23e+00,+5.60e-01,+1.78e+01,+1.79e+01 1 (nil) + 291 22 +5.03e-02,+3.14e-02,+4.95e-01,+4.99e-01 1 (nil) +GenVertex: -61 ID: 0 (X,cT):0 + I: 1 101 331 +1.59e+00,+2.22e+00,+3.03e+01,+3.04e+01 2 -61 + O: 3 292 211 +3.32e-01,+2.48e-01,+4.45e+00,+4.47e+00 1 (nil) + 293 -211 +3.06e-01,+6.92e-01,+8.24e+00,+8.28e+00 1 (nil) + 294 221 +9.56e-01,+1.28e+00,+1.76e+01,+1.77e+01 2 -162 +GenVertex: -62 ID: 0 (X,cT):0 + I: 1 102 213 +1.77e+00,-1.58e+00,+1.71e+01,+1.73e+01 2 -62 + O: 2 295 211 +8.03e-02,+2.02e-02,+5.69e-01,+5.92e-01 1 (nil) + 296 111 +1.69e+00,-1.60e+00,+1.65e+01,+1.67e+01 2 -163 +GenVertex: -63 ID: 0 (X,cT):0 + I: 1 105 311 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -63 + O: 1 297 310 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -164 +GenVertex: -64 ID: 0 (X,cT):0 + I: 1 106 333 +8.72e-02,-2.03e+00,+7.62e+00,+7.95e+00 2 -64 + O: 2 298 130 +1.44e-01,-1.08e+00,+4.20e+00,+4.37e+00 1 (nil) + 299 310 -5.64e-02,-9.48e-01,+3.42e+00,+3.58e+00 2 -165 +GenVertex: -65 ID: 0 (X,cT):0 + I: 1 107 -323 -1.98e-01,-1.55e-01,+2.64e+00,+2.79e+00 2 -65 + O: 2 300 -321 -2.21e-01,+1.56e-01,+1.65e+00,+1.74e+00 1 (nil) + 301 111 +2.32e-02,-3.11e-01,+9.92e-01,+1.05e+00 2 -166 +GenVertex: -66 ID: 0 (X,cT):0 + I: 1 108 113 -1.10e+00,-1.90e+00,+5.32e+00,+5.81e+00 2 -66 + O: 2 302 -211 -1.16e+00,-1.76e+00,+5.02e+00,+5.45e+00 1 (nil) + 303 211 +5.82e-02,-1.40e-01,+3.02e-01,+3.65e-01 1 (nil) +GenVertex: -67 ID: 0 (X,cT):0 + I: 1 109 213 -7.23e-01,-7.70e-01,+6.13e-01,+1.63e+00 2 -67 + O: 2 304 211 +1.49e-03,+1.26e-01,-1.51e-01,+2.41e-01 1 (nil) + 305 111 -7.25e-01,-8.95e-01,+7.64e-01,+1.39e+00 2 -167 +GenVertex: -68 ID: 0 (X,cT):0 + I: 1 111 213 -5.97e-01,-1.22e+00,+2.67e-01,+1.55e+00 2 -68 + O: 2 306 211 +1.06e-01,-2.72e-01,-4.01e-02,+3.26e-01 1 (nil) + 307 111 -7.03e-01,-9.49e-01,+3.08e-01,+1.23e+00 2 -168 +Vertex: -69 ID: 0 (X,cT)=+1.27e-05,-7.07e-05,+1.82e-05,+8.39e-05 + I: 1 113 111 +4.36e-02,-2.43e-01,+6.27e-02,+2.89e-01 2 -69 + O: 2 308 22 +5.40e-02,-1.99e-02,+1.91e-02,+6.07e-02 1 (nil) + 309 22 -1.04e-02,-2.23e-01,+4.36e-02,+2.28e-01 1 (nil) +GenVertex: -70 ID: 0 (X,cT):0 + I: 1 114 213 -1.15e+00,-1.72e+00,-2.01e+00,+2.97e+00 2 -70 + O: 2 310 211 -4.37e-02,-6.49e-02,-3.59e-02,+1.64e-01 1 (nil) + 311 111 -1.10e+00,-1.65e+00,-1.97e+00,+2.80e+00 2 -169 +GenVertex: -71 ID: 0 (X,cT):0 + I: 1 115 -213 -9.95e-01,-3.87e-01,-1.11e+00,+1.63e+00 2 -71 + O: 2 312 -211 -7.40e-01,-4.72e-01,-9.20e-01,+1.28e+00 1 (nil) + 313 111 -2.55e-01,+8.51e-02,-1.87e-01,+3.54e-01 2 -170 +GenVertex: -72 ID: 0 (X,cT):0 + I: 1 119 311 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -72 + O: 1 314 310 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -171 +GenVertex: -73 ID: 0 (X,cT):0 + I: 1 121 113 -2.01e-02,+9.67e-01,-2.76e+00,+3.05e+00 2 -73 + O: 2 315 -211 -5.02e-03,+1.03e+00,-2.68e+00,+2.88e+00 1 (nil) + 316 211 -1.50e-02,-6.21e-02,-7.50e-02,+1.71e-01 1 (nil) +GenVertex: -74 ID: 0 (X,cT):0 + I: 1 122 213 +6.99e-01,+4.88e-01,-2.14e+00,+2.37e+00 2 -74 + O: 2 317 211 +2.31e-01,+4.39e-01,-1.27e+00,+1.37e+00 1 (nil) + 318 111 +4.68e-01,+4.92e-02,-8.74e-01,+1.00e+00 2 -172 +GenVertex: -75 ID: 0 (X,cT):0 + I: 1 123 223 +1.59e-01,-2.33e-01,-7.42e+00,+7.46e+00 2 -75 + O: 2 319 -211 +2.57e-01,+5.62e-02,-5.93e+00,+5.93e+00 1 (nil) + 320 211 -9.87e-02,-2.90e-01,-1.49e+00,+1.53e+00 1 (nil) +GenVertex: -76 ID: 0 (X,cT):0 + I: 1 124 223 -3.07e-01,+5.68e-01,-1.77e+01,+1.77e+01 2 -76 + O: 2 321 -211 -1.81e-01,+2.32e-01,-1.48e+01,+1.48e+01 1 (nil) + 322 211 -1.26e-01,+3.36e-01,-2.88e+00,+2.90e+00 1 (nil) +GenVertex: -77 ID: 0 (X,cT):0 + I: 1 125 1114 +7.70e-01,-3.47e-01,-1.94e+02,+1.94e+02 2 -77 + O: 2 323 2112 +6.85e-01,-3.51e-01,-1.63e+02,+1.63e+02 1 (nil) + 324 -211 +8.47e-02,+3.52e-03,-3.06e+01,+3.06e+01 1 (nil) +Vertex: -78 ID: 0 (X,cT)=+9.27e-06,+2.22e-05,-1.58e-03,+1.58e-03 + I: 1 126 111 +6.52e-01,+1.56e+00,-1.11e+02,+1.11e+02 2 -78 + O: 2 325 22 +6.52e-01,+1.50e+00,-1.08e+02,+1.08e+02 1 (nil) + 326 22 -1.55e-04,+6.21e-02,-3.67e+00,+3.67e+00 1 (nil) +GenVertex: -79 ID: 0 (X,cT):0 + I: 1 130 113 +7.74e-01,+8.64e-01,-8.89e+01,+8.89e+01 2 -79 + O: 2 327 -211 +6.68e-01,+7.08e-01,-4.84e+01,+4.84e+01 1 (nil) + 328 211 +1.06e-01,+1.56e-01,-4.05e+01,+4.05e+01 1 (nil) +GenVertex: -80 ID: 0 (X,cT):0 + I: 1 131 223 +1.70e-02,+2.83e-01,-9.69e+01,+9.69e+01 2 -80 + O: 3 329 211 -1.62e-01,+5.36e-02,-3.29e+01,+3.29e+01 1 (nil) + 330 -211 +6.38e-02,-3.43e-02,-4.30e+01,+4.30e+01 1 (nil) + 331 111 +1.15e-01,+2.64e-01,-2.11e+01,+2.11e+01 2 -173 +GenVertex: -81 ID: 0 (X,cT):0 + I: 1 132 223 +3.02e-01,+2.43e-01,-3.21e+01,+3.21e+01 2 -81 + O: 3 332 -211 +5.67e-02,-4.99e-02,-1.78e+01,+1.78e+01 1 (nil) + 333 211 +8.54e-02,+2.91e-01,-8.16e+00,+8.17e+00 1 (nil) + 334 111 +1.60e-01,+1.64e-03,-6.16e+00,+6.16e+00 2 -174 +GenVertex: -82 ID: 0 (X,cT):0 + I: 1 133 221 +6.52e-01,-1.30e-02,-7.49e+00,+7.53e+00 2 -82 + O: 3 335 111 +3.20e-01,-1.06e-01,-2.80e+00,+2.83e+00 2 -175 + 336 111 +2.91e-01,+8.79e-02,-3.67e+00,+3.68e+00 2 -176 + 337 111 +4.06e-02,+5.17e-03,-1.02e+00,+1.02e+00 2 -177 +GenVertex: -83 ID: 0 (X,cT):0 + I: 1 134 213 +1.25e+00,+2.45e+00,-3.91e+01,+3.93e+01 2 -83 + O: 2 338 211 +6.58e-01,+5.66e-01,-1.72e+01,+1.72e+01 1 (nil) + 339 111 +5.88e-01,+1.89e+00,-2.20e+01,+2.20e+01 2 -178 +GenVertex: -84 ID: 0 (X,cT):0 + I: 1 135 221 +8.86e-01,+9.16e-01,-1.24e+01,+1.25e+01 2 -84 + O: 2 340 22 +6.66e-01,+6.36e-01,-6.31e+00,+6.38e+00 1 (nil) + 341 22 +2.20e-01,+2.80e-01,-6.11e+00,+6.12e+00 1 (nil) +Vertex: -85 ID: 0 (X,cT)=+3.02e-04,+4.87e-04,-5.38e-03,+5.41e-03 + I: 1 137 111 +7.22e-01,+1.16e+00,-1.29e+01,+1.29e+01 2 -85 + O: 2 342 22 +5.79e-02,+1.36e-01,-1.76e+00,+1.76e+00 1 (nil) + 343 22 +6.65e-01,+1.03e+00,-1.11e+01,+1.12e+01 1 (nil) +GenVertex: -86 ID: 0 (X,cT):0 + I: 1 138 113 +1.21e+00,+1.68e+00,-1.89e+01,+1.90e+01 2 -86 + O: 2 344 -211 +4.13e-01,+1.29e-01,-3.64e+00,+3.67e+00 1 (nil) + 345 211 +8.01e-01,+1.55e+00,-1.52e+01,+1.53e+01 1 (nil) +GenVertex: -87 ID: 0 (X,cT):0 + I: 1 140 -213 +4.58e-01,+1.15e+00,-1.84e+01,+1.85e+01 2 -87 + O: 2 346 -211 +4.43e-01,+4.32e-01,-3.36e+00,+3.42e+00 1 (nil) + 347 111 +1.51e-02,+7.22e-01,-1.51e+01,+1.51e+01 2 -179 +GenVertex: -88 ID: 0 (X,cT):0 + I: 1 141 213 +2.08e+00,+1.68e+00,-2.61e+01,+2.63e+01 2 -88 + O: 2 348 211 +2.03e+00,+1.63e+00,-2.51e+01,+2.52e+01 1 (nil) + 349 111 +5.56e-02,+5.31e-02,-1.06e+00,+1.07e+00 2 -180 +GenVertex: -89 ID: 0 (X,cT):0 + I: 1 142 313 +1.78e+00,+1.24e+00,-2.26e+01,+2.27e+01 2 -89 + O: 2 350 321 +5.53e-01,+4.44e-01,-6.45e+00,+6.51e+00 1 (nil) + 351 -211 +1.23e+00,+7.92e-01,-1.62e+01,+1.62e+01 1 (nil) +GenVertex: -90 ID: 0 (X,cT):0 + I: 1 143 -313 +1.42e+00,+6.47e-01,-1.81e+01,+1.82e+01 2 -90 + O: 2 352 -311 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -181 + 353 111 +9.21e-01,+1.38e-01,-1.06e+01,+1.06e+01 2 -182 +GenVertex: -91 ID: 0 (X,cT):0 + I: 1 145 -213 -5.75e-01,-4.78e-01,-9.45e+01,+9.45e+01 2 -91 + O: 2 354 -211 -4.16e-01,-6.42e-04,-4.57e+01,+4.57e+01 1 (nil) + 355 111 -1.59e-01,-4.77e-01,-4.88e+01,+4.88e+01 2 -183 +GenVertex: -92 ID: 0 (X,cT):0 + I: 1 146 -1114 -8.04e-01,-7.43e-01,-3.40e+01,+3.40e+01 2 -92 + O: 2 356 -2112 -5.09e-01,-4.51e-01,-2.85e+01,+2.85e+01 1 (nil) + 357 211 -2.95e-01,-2.92e-01,-5.48e+00,+5.50e+00 1 (nil) +GenVertex: -93 ID: 0 (X,cT):0 + I: 1 147 -213 -1.80e-01,+6.29e-02,-4.32e+01,+4.32e+01 2 -93 + O: 2 358 -211 -2.49e-01,+3.34e-01,-2.84e+01,+2.84e+01 1 (nil) + 359 111 +6.89e-02,-2.71e-01,-1.49e+01,+1.49e+01 2 -184 +GenVertex: -94 ID: 0 (X,cT):0 + I: 1 149 311 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 2 -94 + O: 1 360 130 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 1 (nil) +GenVertex: -95 ID: 0 (X,cT):0 + I: 1 150 -323 -3.04e-01,-3.92e-01,-7.88e+01,+7.88e+01 2 -95 + O: 2 361 -321 -3.90e-02,+2.37e-02,-4.50e+01,+4.50e+01 1 (nil) + 362 111 -2.65e-01,-4.16e-01,-3.38e+01,+3.38e+01 2 -185 +GenVertex: -96 ID: 0 (X,cT):0 + I: 1 151 213 -1.80e+00,-1.21e+00,-8.93e+01,+8.94e+01 2 -96 + O: 2 363 211 -1.88e+00,-1.09e+00,-8.20e+01,+8.20e+01 1 (nil) + 364 111 +7.55e-02,-1.18e-01,-7.35e+00,+7.36e+00 2 -186 +GenVertex: -97 ID: 0 (X,cT):0 + I: 1 152 113 +4.91e-01,-9.72e-01,-5.04e+01,+5.05e+01 2 -97 + O: 2 365 -211 +3.30e-01,-1.08e+00,-4.62e+01,+4.62e+01 1 (nil) + 366 211 +1.61e-01,+1.05e-01,-4.23e+00,+4.23e+00 1 (nil) +GenVertex: -98 ID: 0 (X,cT):0 + I: 1 153 221 +2.67e-01,-2.61e-01,-2.16e+01,+2.16e+01 2 -98 + O: 2 367 22 -1.53e-01,-5.63e-02,-3.12e+00,+3.12e+00 1 (nil) + 368 22 +4.20e-01,-2.04e-01,-1.84e+01,+1.85e+01 1 (nil) +GenVertex: -99 ID: 0 (X,cT):0 + I: 1 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 + O: 1 369 130 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 1 (nil) +GenVertex: -100 ID: 0 (X,cT):0 + I: 1 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 + O: 3 370 211 -2.54e-01,-1.08e-01,-2.26e+01,+2.26e+01 1 (nil) + 371 -211 -9.47e-02,-7.03e-02,-6.26e+00,+6.26e+00 1 (nil) + 372 111 -6.13e-02,-9.53e-02,-1.99e+01,+1.99e+01 2 -187 +GenVertex: -101 ID: 0 (X,cT):0 + I: 1 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 + O: 2 373 211 -5.66e-01,+1.70e-01,-3.23e+02,+3.23e+02 1 (nil) + 374 -211 -2.90e-01,+2.81e-01,-6.32e+01,+6.32e+01 1 (nil) +GenVertex: -102 ID: 0 (X,cT):0 + I: 1 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 + O: 2 375 2212 +9.56e-04,+8.62e-01,-1.17e+03,+1.17e+03 1 (nil) + 376 211 -2.86e-03,-1.12e-01,-2.17e+02,+2.17e+02 1 (nil) +GenVertex: -103 ID: 0 (X,cT):0 + I: 1 163 223 -1.35e-02,+1.05e-01,+2.90e+00,+3.01e+00 2 -103 + O: 3 377 -211 +6.98e-02,+4.75e-02,+2.34e+00,+2.34e+00 1 (nil) + 378 211 -3.36e-03,-3.94e-02,+1.39e-01,+2.01e-01 1 (nil) + 379 111 -7.99e-02,+9.68e-02,+4.23e-01,+4.62e-01 2 -188 +GenVertex: -104 ID: 0 (X,cT):0 + I: 1 164 -213 -7.67e-02,-1.58e-01,+2.83e+00,+2.94e+00 2 -104 + O: 2 380 -211 +2.46e-01,-2.54e-01,+9.52e-01,+1.02e+00 1 (nil) + 381 111 -3.23e-01,+9.61e-02,+1.88e+00,+1.91e+00 2 -189 +GenVertex: -105 ID: 0 (X,cT):0 + I: 1 165 113 -3.96e-01,-2.46e-01,+7.66e+00,+7.72e+00 2 -105 + O: 2 382 -211 -4.58e-01,-1.09e-01,+2.26e+00,+2.31e+00 1 (nil) + 383 211 +6.19e-02,-1.38e-01,+5.40e+00,+5.41e+00 1 (nil) +GenVertex: -106 ID: 0 (X,cT):0 + I: 1 166 223 +8.97e-02,-2.51e-02,+1.83e+01,+1.83e+01 2 -106 + O: 3 384 211 +1.54e-02,+2.33e-01,+6.44e+00,+6.45e+00 1 (nil) + 385 -211 -1.25e-01,-1.91e-01,+6.30e+00,+6.31e+00 1 (nil) + 386 111 +1.99e-01,-6.72e-02,+5.57e+00,+5.57e+00 2 -190 +GenVertex: -107 ID: 0 (X,cT):0 + I: 1 167 331 +7.92e-02,-2.14e-01,+1.65e+01,+1.65e+01 2 -107 + O: 2 388 113 +8.30e-02,-2.83e-01,+1.61e+01,+1.61e+01 2 -191 + 387 22 -3.78e-03,+6.83e-02,+3.46e-01,+3.53e-01 1 (nil) +GenVertex: -108 ID: 0 (X,cT):0 + I: 1 169 113 -9.07e-02,+1.70e-01,+7.69e+00,+7.71e+00 2 -108 + O: 2 389 211 -1.47e-01,+1.94e-03,+5.31e+00,+5.31e+00 1 (nil) + 390 -211 +5.60e-02,+1.68e-01,+2.38e+00,+2.39e+00 1 (nil) +GenVertex: -109 ID: 0 (X,cT):0 + I: 1 172 313 -9.79e-02,+5.68e-01,+7.20e+01,+7.20e+01 2 -109 + O: 2 391 321 +1.98e-01,+2.04e-01,+3.95e+01,+3.95e+01 1 (nil) + 392 -211 -2.96e-01,+3.65e-01,+3.25e+01,+3.25e+01 1 (nil) +GenVertex: -110 ID: 0 (X,cT):0 + I: 1 173 -313 -1.30e-01,-7.96e-01,+2.37e+02,+2.37e+02 2 -110 + O: 2 393 -321 +8.77e-02,-3.77e-01,+1.73e+02,+1.73e+02 1 (nil) + 394 211 -2.18e-01,-4.20e-01,+6.41e+01,+6.41e+01 1 (nil) +Vertex: -111 ID: 0 (X,cT)=-3.81e+00,+2.43e+00,-3.67e+01,+3.70e+01 + I: 1 177 -411 -2.64e+01,+1.68e+01,-2.54e+02,+2.56e+02 2 -111 + O: 4 395 13 -1.41e+00,+1.04e+00,-1.32e+01,+1.33e+01 1 (nil) + 397 323 -2.16e+01,+1.35e+01,-2.09e+02,+2.11e+02 2 -192 + 396 -14 -1.31e+00,+1.05e+00,-1.23e+01,+1.24e+01 1 (nil) + 398 -211 -2.09e+00,+1.24e+00,-1.91e+01,+1.92e+01 1 (nil) +GenVertex: -112 ID: 0 (X,cT):0 + I: 1 180 -313 -1.69e+00,+9.52e-01,-1.93e+01,+1.94e+01 2 -112 + O: 2 399 -311 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -193 + 400 111 -1.24e+00,+6.47e-01,-1.29e+01,+1.30e+01 2 -194 +GenVertex: -113 ID: 0 (X,cT):0 + I: 1 181 323 -1.07e+00,+1.14e+00,-1.19e+01,+1.20e+01 2 -113 + O: 2 401 311 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -195 + 402 211 -1.36e-01,+1.77e-01,-7.16e-01,+7.63e-01 1 (nil) +GenVertex: -114 ID: 0 (X,cT):0 + I: 1 182 -323 -1.04e+00,-2.43e-02,-1.56e+01,+1.57e+01 2 -114 + O: 2 403 -321 -9.22e-01,-9.25e-02,-1.49e+01,+1.49e+01 1 (nil) + 404 111 -1.17e-01,+6.82e-02,-7.01e-01,+7.26e-01 2 -196 +GenVertex: -115 ID: 0 (X,cT):0 + I: 1 184 113 +9.16e+00,-6.89e+00,-1.32e+02,+1.32e+02 2 -115 + O: 2 405 -211 +8.07e+00,-6.29e+00,-1.19e+02,+1.20e+02 1 (nil) + 406 211 +1.09e+00,-5.97e-01,-1.23e+01,+1.24e+01 1 (nil) +Vertex: -116 ID: 0 (X,cT)=+1.87e-03,-1.71e-03,-2.84e-02,+2.85e-02 + I: 1 185 111 +1.57e+00,-1.44e+00,-2.40e+01,+2.41e+01 2 -116 + O: 2 407 22 +1.03e+00,-8.53e-01,-1.49e+01,+1.50e+01 1 (nil) + 408 22 +5.46e-01,-5.88e-01,-9.04e+00,+9.08e+00 1 (nil) +GenVertex: -117 ID: 0 (X,cT):0 + I: 1 189 213 -1.88e-01,-4.78e-01,-1.86e-02,+8.02e-01 2 -117 + O: 2 409 211 +6.32e-02,-4.07e-02,-1.95e-01,+2.51e-01 1 (nil) + 410 111 -2.51e-01,-4.37e-01,+1.76e-01,+5.51e-01 2 -197 +GenVertex: -118 ID: 0 (X,cT):0 + I: 1 191 213 -1.69e-01,+6.66e-02,+1.66e+00,+1.95e+00 2 -118 + O: 2 411 211 -8.99e-02,-4.44e-01,+8.88e-01,+1.01e+00 1 (nil) + 412 111 -7.90e-02,+5.11e-01,+7.72e-01,+9.39e-01 2 -198 +GenVertex: -119 ID: 0 (X,cT):0 + I: 1 192 113 -7.42e-01,+4.97e-01,+2.71e+00,+2.94e+00 2 -119 + O: 2 413 -211 -6.65e-02,+8.33e-02,+1.29e+00,+1.30e+00 1 (nil) + 414 211 -6.76e-01,+4.14e-01,+1.43e+00,+1.64e+00 1 (nil) +GenVertex: -120 ID: 0 (X,cT):0 + I: 1 193 -213 +2.70e-02,+3.31e-01,+2.97e-01,+7.93e-01 2 -120 + O: 2 415 -211 -1.79e-01,+3.73e-02,+3.36e-01,+4.08e-01 1 (nil) + 416 111 +2.06e-01,+2.93e-01,-3.94e-02,+3.85e-01 2 -199 +GenVertex: -121 ID: 0 (X,cT):0 + I: 1 195 113 -1.79e-01,+4.58e-01,+4.36e+00,+4.46e+00 2 -121 + O: 2 417 -211 -4.09e-01,+9.88e-02,+1.62e+00,+1.68e+00 1 (nil) + 418 211 +2.30e-01,+3.59e-01,+2.75e+00,+2.78e+00 1 (nil) +GenVertex: -122 ID: 0 (X,cT):0 + I: 1 196 -213 -8.75e-02,+1.16e-01,+1.21e+00,+1.46e+00 2 -122 + O: 2 419 -211 +1.71e-01,-8.56e-03,+1.11e+00,+1.13e+00 1 (nil) + 420 111 -2.59e-01,+1.24e-01,+1.06e-01,+3.34e-01 2 -200 +GenVertex: -123 ID: 0 (X,cT):0 + I: 1 197 323 -7.63e-01,+6.20e-01,+7.15e+00,+7.28e+00 2 -123 + O: 2 421 321 -4.34e-01,+3.13e-01,+2.39e+00,+2.49e+00 1 (nil) + 422 111 -3.29e-01,+3.07e-01,+4.76e+00,+4.78e+00 2 -201 +GenVertex: -124 ID: 0 (X,cT):0 + I: 1 198 221 -7.36e-01,+2.91e-01,+5.63e+00,+5.72e+00 2 -124 + O: 3 424 211 -2.05e-01,+1.05e-01,+1.26e+00,+1.28e+00 1 (nil) + 423 22 -3.68e-01,+1.74e-01,+3.63e+00,+3.66e+00 1 (nil) + 425 -211 -1.63e-01,+1.25e-02,+7.47e-01,+7.77e-01 1 (nil) +GenVertex: -125 ID: 0 (X,cT):0 + I: 1 200 213 +4.69e-02,-1.77e-01,-3.64e-01,+1.10e+00 2 -125 + O: 2 426 211 -3.67e-01,-1.30e-01,-4.96e-01,+6.46e-01 1 (nil) + 427 111 +4.14e-01,-4.69e-02,+1.31e-01,+4.58e-01 2 -202 +Vertex: -126 ID: 0 (X,cT)=+6.94e-05,-7.03e-06,+2.19e-04,+2.31e-04 + I: 1 201 111 +3.73e-01,-3.78e-02,+1.18e+00,+1.24e+00 2 -126 + O: 2 428 22 +1.73e-01,-3.58e-02,+3.54e-01,+3.96e-01 1 (nil) + 429 22 +2.00e-01,-2.02e-03,+8.22e-01,+8.46e-01 1 (nil) +GenVertex: -127 ID: 0 (X,cT):0 + I: 1 202 -213 -7.72e-01,+1.13e+00,+1.14e+00,+1.96e+00 2 -127 + O: 2 430 -211 -3.73e-02,+7.08e-01,+6.44e-01,+9.68e-01 1 (nil) + 431 111 -7.34e-01,+4.26e-01,+4.97e-01,+9.93e-01 2 -203 +GenVertex: -128 ID: 0 (X,cT):0 + I: 1 203 223 +4.07e-01,-5.29e-01,+1.12e-01,+1.04e+00 2 -128 + O: 3 432 211 +3.59e-01,-2.82e-01,+1.18e-01,+4.92e-01 1 (nil) + 433 -211 -1.50e-02,+9.43e-02,+3.19e-02,+1.72e-01 1 (nil) + 434 111 +6.29e-02,-3.41e-01,-3.80e-02,+3.74e-01 2 -204 +GenVertex: -129 ID: 0 (X,cT):0 + I: 1 204 223 -5.49e-02,-3.91e-01,+1.06e+00,+1.37e+00 2 -129 + O: 3 435 -211 +6.25e-02,-1.04e-01,+1.78e-01,+2.57e-01 1 (nil) + 436 211 +2.00e-02,-2.71e-01,+8.68e-01,+9.20e-01 1 (nil) + 437 111 -1.37e-01,-1.63e-02,+1.18e-02,+1.94e-01 2 -205 +Vertex: -130 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 205 -421 +1.62e+00,-6.80e-01,-9.14e+00,+9.49e+00 2 -130 + O: 2 438 10323 +8.73e-01,-6.30e-01,-7.46e+00,+7.64e+00 2 -206 + 439 -211 +7.49e-01,-4.97e-02,-1.68e+00,+1.85e+00 1 (nil) +Vertex: -131 ID: 0 (X,cT)=+6.33e-05,-2.16e-05,-2.68e-04,+2.80e-04 + I: 1 206 111 +1.80e-01,-6.13e-02,-7.60e-01,+7.95e-01 2 -131 + O: 2 440 22 +1.83e-01,-8.44e-02,-7.27e-01,+7.54e-01 1 (nil) + 441 22 -3.44e-03,+2.31e-02,-3.29e-02,+4.04e-02 1 (nil) +GenVertex: -132 ID: 0 (X,cT):0 + I: 1 207 -311 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -132 + O: 1 442 310 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -207 +GenVertex: -133 ID: 0 (X,cT):0 + I: 1 209 311 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -133 + O: 1 443 310 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -208 +Vertex: -134 ID: 0 (X,cT)=+9.60e-06,+2.02e-06,-1.35e-04,+1.36e-04 + I: 1 210 111 +1.56e-01,+3.28e-02,-2.20e+00,+2.21e+00 2 -134 + O: 2 444 22 +1.58e-01,+4.61e-02,-2.17e+00,+2.18e+00 1 (nil) + 445 22 -2.08e-03,-1.33e-02,-2.27e-02,+2.64e-02 1 (nil) +Vertex: -135 ID: 0 (X,cT)=-6.11e-05,+1.37e-04,-6.02e-04,+6.24e-04 + I: 1 215 111 -1.24e-01,+2.78e-01,-1.22e+00,+1.26e+00 2 -135 + O: 2 446 22 -2.52e-02,+2.45e-02,-3.81e-01,+3.83e-01 1 (nil) + 447 22 -9.85e-02,+2.53e-01,-8.38e-01,+8.81e-01 1 (nil) +Vertex: -136 ID: 0 (X,cT)=-4.44e-05,-3.92e-06,-7.34e-04,+7.40e-04 + I: 1 217 111 -7.15e-02,-6.31e-03,-1.18e+00,+1.19e+00 2 -136 + O: 2 448 22 -9.35e-02,-3.77e-02,-1.03e+00,+1.04e+00 1 (nil) + 449 22 +2.21e-02,+3.14e-02,-1.46e-01,+1.51e-01 1 (nil) +Vertex: -137 ID: 0 (X,cT)=+3.41e-05,+1.99e-05,-1.06e-05,+5.12e-05 + I: 1 220 111 +1.49e-01,+8.68e-02,-4.65e-02,+2.24e-01 2 -137 + O: 2 450 22 +1.62e-01,+9.36e-02,-6.67e-02,+1.99e-01 1 (nil) + 451 22 -1.32e-02,-6.86e-03,+2.02e-02,+2.51e-02 1 (nil) +GenVertex: -138 ID: 0 (X,cT):0 + I: 1 221 -311 -8.28e-02,+1.40e-01,+2.87e-01,+5.97e-01 2 -138 + O: 1 452 130 -8.28e-02,+1.40e-01,+2.87e-01,+5.97e-01 1 (nil) +Vertex: -139 ID: 0 (X,cT)=-3.00e-05,-1.01e-05,+1.64e-06,+3.29e-05 + I: 1 226 111 -4.64e-01,-1.55e-01,+2.53e-02,+5.08e-01 2 -139 + O: 2 453 22 -2.22e-01,-3.76e-02,-4.59e-02,+2.30e-01 1 (nil) + 454 22 -2.42e-01,-1.18e-01,+7.12e-02,+2.78e-01 1 (nil) +Vertex: -140 ID: 0 (X,cT)=-5.23e-07,-7.76e-06,+4.86e-05,+4.96e-05 + I: 1 231 111 -1.13e-02,-1.68e-01,+1.05e+00,+1.07e+00 2 -140 + O: 2 455 22 +4.72e-02,-1.23e-01,+8.16e-01,+8.27e-01 1 (nil) + 456 22 -5.85e-02,-4.52e-02,+2.34e-01,+2.45e-01 1 (nil) +Vertex: -141 ID: 0 (X,cT)=+3.06e-05,-6.13e-05,+1.04e-03,+1.04e-03 + I: 1 233 111 +1.15e-01,-2.30e-01,+3.89e+00,+3.90e+00 2 -141 + O: 2 457 22 +4.00e-02,+3.07e-04,+9.61e-01,+9.62e-01 1 (nil) + 458 22 +7.48e-02,-2.30e-01,+2.93e+00,+2.94e+00 1 (nil) +Vertex: -142 ID: 0 (X,cT)=-4.86e-07,+1.36e-05,+5.54e-03,+5.54e-03 + I: 1 240 111 -1.84e-03,+5.13e-02,+2.10e+01,+2.10e+01 2 -142 + O: 2 459 22 +6.53e-02,+3.07e-02,+8.88e+00,+8.88e+00 1 (nil) + 460 22 -6.72e-02,+2.07e-02,+1.21e+01,+1.21e+01 1 (nil) +Vertex: -143 ID: 0 (X,cT)=+9.00e-01,-4.13e-01,-2.42e+00,+2.63e+00 + I: 1 241 421 +6.24e+00,-2.87e+00,-1.68e+01,+1.82e+01 2 -143 + O: 2 461 -313 +3.33e+00,-1.55e+00,-7.24e+00,+8.16e+00 2 -209 + 462 111 +2.92e+00,-1.31e+00,-9.56e+00,+1.01e+01 2 -210 +Vertex: -144 ID: 0 (X,cT)=+1.11e-04,-5.90e-05,-2.87e-04,+3.15e-04 + I: 1 242 111 +4.94e-01,-2.63e-01,-1.28e+00,+1.40e+00 2 -144 + O: 2 463 22 +3.13e-01,-2.24e-01,-9.52e-01,+1.03e+00 1 (nil) + 464 22 +1.81e-01,-3.87e-02,-3.28e-01,+3.76e-01 1 (nil) +Vertex: -145 ID: 0 (X,cT)=+2.18e-05,-5.26e-06,-3.70e-05,+4.34e-05 + I: 1 244 111 +8.10e-01,-1.96e-01,-1.38e+00,+1.62e+00 2 -145 + O: 2 465 22 +6.12e-01,-2.00e-01,-1.10e+00,+1.28e+00 1 (nil) + 466 22 +1.98e-01,+3.77e-03,-2.74e-01,+3.39e-01 1 (nil) +GenVertex: -146 ID: 0 (X,cT):0 + I: 1 247 221 +3.89e-01,-5.39e-01,-8.71e-01,+1.22e+00 2 -146 + O: 3 467 -211 +1.74e-01,-1.31e-01,-4.30e-01,+5.02e-01 1 (nil) + 468 211 +5.41e-02,-2.04e-01,-3.15e-01,+4.04e-01 1 (nil) + 469 111 +1.61e-01,-2.04e-01,-1.26e-01,+3.19e-01 2 -211 +Vertex: -147 ID: 0 (X,cT)=+1.07e-04,-3.60e-05,-3.69e-04,+3.86e-04 + I: 1 249 111 +7.72e-01,-2.59e-01,-2.66e+00,+2.78e+00 2 -147 + O: 2 470 22 +2.51e-02,-3.16e-02,-2.06e-01,+2.10e-01 1 (nil) + 471 22 +7.47e-01,-2.27e-01,-2.45e+00,+2.57e+00 1 (nil) +Vertex: -148 ID: 0 (X,cT)=-8.22e+00,-2.29e+00,+1.29e+02,+1.35e+02 + I: 1 254 310 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -148 + O: 2 472 211 +1.20e-02,+1.80e-01,+6.79e-01,+7.16e-01 1 (nil) + 473 -211 -1.20e-01,-2.10e-01,+1.02e+00,+1.05e+00 1 (nil) +Vertex: -149 ID: 0 (X,cT)=-9.20e-06,+3.86e-06,+4.76e-05,+4.89e-05 + I: 1 258 111 -2.36e-01,+9.89e-02,+1.22e+00,+1.25e+00 2 -149 + O: 2 474 22 -1.60e-01,+3.34e-03,+8.26e-01,+8.41e-01 1 (nil) + 475 22 -7.61e-02,+9.56e-02,+3.95e-01,+4.13e-01 1 (nil) +Vertex: -150 ID: 0 (X,cT)=-5.14e-04,-8.73e-05,+1.03e-02,+1.04e-02 + I: 1 260 111 -1.11e+00,-1.89e-01,+2.24e+01,+2.24e+01 2 -150 + O: 2 476 22 -9.81e-01,-1.35e-01,+2.02e+01,+2.02e+01 1 (nil) + 477 22 -1.30e-01,-5.37e-02,+2.22e+00,+2.22e+00 1 (nil) +Vertex: -151 ID: 0 (X,cT)=+1.88e-05,+4.46e-05,+6.87e-04,+6.89e-04 + I: 1 263 111 +1.08e-01,+2.55e-01,+3.93e+00,+3.94e+00 2 -151 + O: 2 478 22 +1.10e-01,+2.16e-01,+2.55e+00,+2.56e+00 1 (nil) + 479 22 -2.65e-03,+3.91e-02,+1.38e+00,+1.38e+00 1 (nil) +Vertex: -152 ID: 0 (X,cT)=-6.14e-05,-3.82e-05,+7.27e-04,+7.31e-04 + I: 1 265 111 -3.21e-01,-1.99e-01,+3.80e+00,+3.82e+00 2 -152 + O: 2 480 22 -2.34e-01,-1.54e-01,+3.28e+00,+3.29e+00 1 (nil) + 481 22 -8.72e-02,-4.50e-02,+5.19e-01,+5.28e-01 1 (nil) +Vertex: -153 ID: 0 (X,cT)=-2.19e-06,-3.00e-06,+3.58e-04,+3.58e-04 + I: 1 267 111 -1.18e-01,-1.61e-01,+1.92e+01,+1.92e+01 2 -153 + O: 2 482 22 -9.69e-02,-1.72e-01,+1.33e+01,+1.34e+01 1 (nil) + 483 22 -2.08e-02,+1.15e-02,+5.82e+00,+5.82e+00 1 (nil) +Vertex: -154 ID: 0 (X,cT)=-9.00e-04,+6.71e-04,+1.89e-01,+1.89e-01 + I: 1 273 111 -1.19e+00,+8.85e-01,+2.49e+02,+2.49e+02 2 -154 + O: 2 484 22 -5.91e-01,+4.58e-01,+1.37e+02,+1.37e+02 1 (nil) + 485 22 -5.96e-01,+4.27e-01,+1.12e+02,+1.12e+02 1 (nil) +Vertex: -155 ID: 0 (X,cT)=-5.19e-06,+2.77e-05,+9.61e-03,+9.61e-03 + I: 1 275 111 -3.94e-02,+2.10e-01,+7.29e+01,+7.29e+01 2 -155 + O: 2 486 22 -5.34e-02,+1.01e-01,+2.01e+01,+2.01e+01 1 (nil) + 487 22 +1.40e-02,+1.09e-01,+5.28e+01,+5.28e+01 1 (nil) +Vertex: -156 ID: 0 (X,cT)=-3.80e-05,+2.22e-05,+1.37e-02,+1.37e-02 + I: 1 280 111 -1.09e-01,+6.39e-02,+3.93e+01,+3.93e+01 2 -156 + O: 2 488 22 -5.83e-02,+1.46e-02,+3.27e+01,+3.27e+01 1 (nil) + 489 22 -5.08e-02,+4.93e-02,+6.60e+00,+6.60e+00 1 (nil) +Vertex: -157 ID: 0 (X,cT)=+6.48e-05,+4.92e-04,+1.80e-02,+1.80e-02 + I: 1 284 111 +1.27e-01,+9.61e-01,+3.52e+01,+3.52e+01 2 -157 + O: 2 490 22 -2.52e-02,+2.35e-01,+8.00e+00,+8.00e+00 1 (nil) + 491 22 +1.52e-01,+7.26e-01,+2.72e+01,+2.72e+01 1 (nil) +Vertex: -158 ID: 0 (X,cT)=+1.48e-04,+1.07e-04,+1.80e-03,+1.81e-03 + I: 1 285 111 +2.92e-01,+2.10e-01,+3.56e+00,+3.58e+00 2 -158 + O: 2 492 22 +2.42e-01,+1.03e-01,+2.23e+00,+2.25e+00 1 (nil) + 493 22 +5.02e-02,+1.07e-01,+1.33e+00,+1.33e+00 1 (nil) +Vertex: -159 ID: 0 (X,cT)=+2.50e-05,+3.78e-05,+5.99e-04,+6.03e-04 + I: 1 286 111 +7.22e-02,+1.09e-01,+1.73e+00,+1.74e+00 2 -159 + O: 2 494 22 +2.13e-02,+6.88e-02,+1.49e+00,+1.49e+00 1 (nil) + 495 22 +5.09e-02,+4.05e-02,+2.47e-01,+2.55e-01 1 (nil) +Vertex: -160 ID: 0 (X,cT)=+2.02e-05,+3.78e-06,+1.16e-03,+1.16e-03 + I: 1 287 111 +5.73e-02,+1.07e-02,+3.27e+00,+3.27e+00 2 -160 + O: 2 496 22 -1.28e-02,-2.31e-02,+1.49e-01,+1.51e-01 1 (nil) + 497 22 +7.01e-02,+3.38e-02,+3.12e+00,+3.12e+00 1 (nil) +Vertex: -161 ID: 0 (X,cT)=+9.91e-05,+2.78e-04,+4.67e-03,+4.68e-03 + I: 1 289 111 +4.18e-01,+1.18e+00,+1.97e+01,+1.98e+01 2 -161 + O: 2 498 22 +2.65e-01,+6.35e-01,+1.17e+01,+1.18e+01 1 (nil) + 499 22 +1.54e-01,+5.40e-01,+7.99e+00,+8.01e+00 1 (nil) +GenVertex: -162 ID: 0 (X,cT):0 + I: 1 294 221 +9.56e-01,+1.28e+00,+1.76e+01,+1.77e+01 2 -162 + O: 3 500 111 +3.73e-01,+4.04e-01,+4.84e+00,+4.87e+00 2 -212 + 501 111 +4.30e-01,+7.17e-01,+9.92e+00,+9.96e+00 2 -213 + 502 111 +1.53e-01,+1.59e-01,+2.85e+00,+2.86e+00 2 -214 +Vertex: -163 ID: 0 (X,cT)=+2.58e-04,-2.44e-04,+2.53e-03,+2.55e-03 + I: 1 296 111 +1.69e+00,-1.60e+00,+1.65e+01,+1.67e+01 2 -163 + O: 2 503 22 +1.04e+00,-1.02e+00,+1.08e+01,+1.09e+01 1 (nil) + 504 22 +6.52e-01,-5.77e-01,+5.78e+00,+5.84e+00 1 (nil) +Vertex: -164 ID: 0 (X,cT)=+2.91e+01,-1.32e+01,+2.80e+02,+2.82e+02 + I: 1 297 310 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -164 + O: 2 505 -211 +1.68e-01,+3.96e-04,+7.88e-01,+8.18e-01 1 (nil) + 506 211 +4.69e-01,-2.90e-01,+5.34e+00,+5.37e+00 1 (nil) +Vertex: -165 ID: 0 (X,cT)=-3.01e+00,-5.05e+01,+1.82e+02,+1.91e+02 + I: 1 299 310 -5.64e-02,-9.48e-01,+3.42e+00,+3.58e+00 2 -165 + O: 2 507 211 -9.80e-03,-8.77e-01,+3.10e+00,+3.22e+00 1 (nil) + 508 -211 -4.66e-02,-7.14e-02,+3.18e-01,+3.57e-01 1 (nil) +Vertex: -166 ID: 0 (X,cT)=+5.65e-06,-7.57e-05,+2.42e-04,+2.55e-04 + I: 1 301 111 +2.32e-02,-3.11e-01,+9.92e-01,+1.05e+00 2 -166 + O: 2 509 22 -1.58e-02,-2.94e-01,+9.06e-01,+9.53e-01 1 (nil) + 510 22 +3.90e-02,-1.71e-02,+8.60e-02,+9.59e-02 1 (nil) +Vertex: -167 ID: 0 (X,cT)=-1.40e-04,-1.73e-04,+1.47e-04,+2.68e-04 + I: 1 305 111 -7.25e-01,-8.95e-01,+7.64e-01,+1.39e+00 2 -167 + O: 2 511 22 -1.23e-01,-1.25e-01,+1.74e-01,+2.47e-01 1 (nil) + 512 22 -6.01e-01,-7.71e-01,+5.90e-01,+1.14e+00 1 (nil) +Vertex: -168 ID: 0 (X,cT)=-2.82e-04,-3.80e-04,+1.23e-04,+4.92e-04 + I: 1 307 111 -7.03e-01,-9.49e-01,+3.08e-01,+1.23e+00 2 -168 + O: 2 513 22 -4.88e-01,-5.82e-01,+1.49e-01,+7.74e-01 1 (nil) + 514 22 -2.15e-01,-3.67e-01,+1.58e-01,+4.54e-01 1 (nil) +Vertex: -169 ID: 0 (X,cT)=-3.47e-04,-5.20e-04,-6.20e-04,+8.81e-04 + I: 1 311 111 -1.10e+00,-1.65e+00,-1.97e+00,+2.80e+00 2 -169 + O: 2 515 22 -1.08e+00,-1.63e+00,-1.96e+00,+2.76e+00 1 (nil) + 516 22 -2.45e-02,-2.46e-02,-1.45e-02,+3.76e-02 1 (nil) +Vertex: -170 ID: 0 (X,cT)=-3.29e-06,+1.10e-06,-2.41e-06,+4.57e-06 + I: 1 313 111 -2.55e-01,+8.51e-02,-1.87e-01,+3.54e-01 2 -170 + O: 2 517 22 -1.13e-01,-2.84e-02,-9.56e-02,+1.51e-01 1 (nil) + 518 22 -1.42e-01,+1.13e-01,-9.12e-02,+2.04e-01 1 (nil) +Vertex: -171 ID: 0 (X,cT)=-2.73e+00,+6.86e+00,-1.26e+01,+1.53e+01 + I: 1 314 310 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -171 + O: 2 519 -211 -3.73e-01,+4.98e-01,-1.02e+00,+1.20e+00 1 (nil) + 520 211 +8.58e-02,+2.25e-01,-3.14e-01,+4.20e-01 1 (nil) +Vertex: -172 ID: 0 (X,cT)=+3.20e-04,+3.36e-05,-5.97e-04,+6.84e-04 + I: 1 318 111 +4.68e-01,+4.92e-02,-8.74e-01,+1.00e+00 2 -172 + O: 2 521 22 +1.99e-02,+1.62e-02,-1.31e-01,+1.33e-01 1 (nil) + 522 22 +4.48e-01,+3.29e-02,-7.43e-01,+8.69e-01 1 (nil) +Vertex: -173 ID: 0 (X,cT)=+1.96e-05,+4.48e-05,-3.57e-03,+3.57e-03 + I: 1 331 111 +1.15e-01,+2.64e-01,-2.11e+01,+2.11e+01 2 -173 + O: 2 523 22 +5.11e-03,+1.71e-01,-1.28e+01,+1.28e+01 1 (nil) + 524 22 +1.10e-01,+9.28e-02,-8.25e+00,+8.26e+00 1 (nil) +Vertex: -174 ID: 0 (X,cT)=+5.52e-05,+5.68e-07,-2.13e-03,+2.13e-03 + I: 1 334 111 +1.60e-01,+1.64e-03,-6.16e+00,+6.16e+00 2 -174 + O: 2 525 22 +9.75e-02,+6.03e-02,-2.60e+00,+2.61e+00 1 (nil) + 526 22 +6.22e-02,-5.86e-02,-3.55e+00,+3.56e+00 1 (nil) +Vertex: -175 ID: 0 (X,cT)=+5.38e-05,-1.78e-05,-4.71e-04,+4.74e-04 + I: 1 335 111 +3.20e-01,-1.06e-01,-2.80e+00,+2.83e+00 2 -175 + O: 2 527 22 +5.30e-02,+1.88e-02,-7.85e-01,+7.87e-01 1 (nil) + 528 22 +2.67e-01,-1.25e-01,-2.02e+00,+2.04e+00 1 (nil) +Vertex: -176 ID: 0 (X,cT)=+2.93e-05,+8.83e-06,-3.69e-04,+3.70e-04 + I: 1 336 111 +2.91e-01,+8.79e-02,-3.67e+00,+3.68e+00 2 -176 + O: 2 529 22 +2.68e-01,+3.23e-02,-2.79e+00,+2.81e+00 1 (nil) + 530 22 +2.34e-02,+5.56e-02,-8.74e-01,+8.76e-01 1 (nil) +Vertex: -177 ID: 0 (X,cT)=+1.18e-05,+1.50e-06,-2.95e-04,+2.98e-04 + I: 1 337 111 +4.06e-02,+5.17e-03,-1.02e+00,+1.02e+00 2 -177 + O: 2 531 22 -1.54e-02,-5.04e-02,-2.38e-01,+2.44e-01 1 (nil) + 532 22 +5.60e-02,+5.56e-02,-7.77e-01,+7.81e-01 1 (nil) +Vertex: -178 ID: 0 (X,cT)=+3.27e-04,+1.05e-03,-1.22e-02,+1.23e-02 + I: 1 339 111 +5.88e-01,+1.89e+00,-2.20e+01,+2.20e+01 2 -178 + O: 2 533 22 +9.44e-02,+2.34e-01,-3.28e+00,+3.29e+00 1 (nil) + 534 22 +4.93e-01,+1.65e+00,-1.87e+01,+1.88e+01 1 (nil) +Vertex: -179 ID: 0 (X,cT)=+1.73e-05,+8.31e-04,-1.74e-02,+1.74e-02 + I: 1 347 111 +1.51e-02,+7.22e-01,-1.51e+01,+1.51e+01 2 -179 + O: 2 535 22 -3.85e-02,+1.69e-01,-2.84e+00,+2.85e+00 1 (nil) + 536 22 +5.35e-02,+5.53e-01,-1.22e+01,+1.23e+01 1 (nil) +Vertex: -180 ID: 0 (X,cT)=+1.08e-05,+1.04e-05,-2.06e-04,+2.08e-04 + I: 1 349 111 +5.56e-02,+5.31e-02,-1.06e+00,+1.07e+00 2 -180 + O: 2 537 22 -2.80e-02,+6.26e-02,-5.73e-01,+5.77e-01 1 (nil) + 538 22 +8.36e-02,-9.58e-03,-4.84e-01,+4.91e-01 1 (nil) +GenVertex: -181 ID: 0 (X,cT):0 + I: 1 352 -311 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -181 + O: 1 539 310 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -215 +Vertex: -182 ID: 0 (X,cT)=+8.78e-05,+1.31e-05,-1.01e-03,+1.01e-03 + I: 1 353 111 +9.21e-01,+1.38e-01,-1.06e+01,+1.06e+01 2 -182 + O: 2 540 22 +2.76e-01,+8.46e-03,-3.75e+00,+3.76e+00 1 (nil) + 541 22 +6.45e-01,+1.29e-01,-6.82e+00,+6.85e+00 1 (nil) +Vertex: -183 ID: 0 (X,cT)=-2.61e-05,-7.86e-05,-8.03e-03,+8.03e-03 + I: 1 355 111 -1.59e-01,-4.77e-01,-4.88e+01,+4.88e+01 2 -183 + O: 2 542 22 -7.47e-03,+4.92e-03,-2.71e-01,+2.71e-01 1 (nil) + 543 22 -1.51e-01,-4.82e-01,-4.85e+01,+4.85e+01 1 (nil) +Vertex: -184 ID: 0 (X,cT)=+3.04e-05,-1.20e-04,-6.56e-03,+6.56e-03 + I: 1 359 111 +6.89e-02,-2.71e-01,-1.49e+01,+1.49e+01 2 -184 + O: 2 544 22 +1.36e-02,-6.16e-02,-1.31e+00,+1.31e+00 1 (nil) + 545 22 +5.54e-02,-2.10e-01,-1.35e+01,+1.35e+01 1 (nil) +Vertex: -185 ID: 0 (X,cT)=-3.11e-05,-4.88e-05,-3.97e-03,+3.97e-03 + I: 1 362 111 -2.65e-01,-4.16e-01,-3.38e+01,+3.38e+01 2 -185 + O: 2 546 22 -2.39e-02,-6.37e-02,-2.40e+00,+2.40e+00 1 (nil) + 547 22 -2.41e-01,-3.52e-01,-3.14e+01,+3.14e+01 1 (nil) +Vertex: -186 ID: 0 (X,cT)=+4.99e-06,-7.81e-06,-4.87e-04,+4.87e-04 + I: 1 364 111 +7.55e-02,-1.18e-01,-7.35e+00,+7.36e+00 2 -186 + O: 3 549 11 +3.80e-02,-5.45e-02,-1.98e+00,+1.99e+00 1 (nil) + 548 22 -7.69e-03,-3.50e-03,-3.43e+00,+3.43e+00 1 (nil) + 550 -11 +4.52e-02,-6.00e-02,-1.94e+00,+1.94e+00 1 (nil) +Vertex: -187 ID: 0 (X,cT)=-3.39e-06,-5.26e-06,-1.10e-03,+1.10e-03 + I: 1 372 111 -6.13e-02,-9.53e-02,-1.99e+01,+1.99e+01 2 -187 + O: 2 551 22 +3.73e-02,+2.39e-03,-4.50e+00,+4.50e+00 1 (nil) + 552 22 -9.86e-02,-9.77e-02,-1.54e+01,+1.54e+01 1 (nil) +Vertex: -188 ID: 0 (X,cT)=-4.64e-06,+5.62e-06,+2.46e-05,+2.68e-05 + I: 1 379 111 -7.99e-02,+9.68e-02,+4.23e-01,+4.62e-01 2 -188 + O: 2 553 22 -6.55e-03,+1.04e-01,+1.84e-01,+2.11e-01 1 (nil) + 554 22 -7.33e-02,-6.90e-03,+2.39e-01,+2.50e-01 1 (nil) +Vertex: -189 ID: 0 (X,cT)=-4.97e-05,+1.48e-05,+2.90e-04,+2.95e-04 + I: 1 381 111 -3.23e-01,+9.61e-02,+1.88e+00,+1.91e+00 2 -189 + O: 2 555 22 -1.22e-01,-2.90e-02,+7.14e-01,+7.25e-01 1 (nil) + 556 22 -2.00e-01,+1.25e-01,+1.16e+00,+1.19e+00 1 (nil) +Vertex: -190 ID: 0 (X,cT)=+4.11e-06,-1.39e-06,+1.15e-04,+1.15e-04 + I: 1 386 111 +1.99e-01,-6.72e-02,+5.57e+00,+5.57e+00 2 -190 + O: 2 557 22 +9.39e-02,+3.48e-02,+1.85e+00,+1.85e+00 1 (nil) + 558 22 +1.05e-01,-1.02e-01,+3.72e+00,+3.72e+00 1 (nil) +GenVertex: -191 ID: 0 (X,cT):0 + I: 1 388 113 +8.30e-02,-2.83e-01,+1.61e+01,+1.61e+01 2 -191 + O: 2 559 211 +2.80e-01,-4.59e-01,+9.99e+00,+1.00e+01 1 (nil) + 560 -211 -1.97e-01,+1.77e-01,+6.12e+00,+6.13e+00 1 (nil) +Vertex: -192 ID: 0 (X,cT)=-3.81e+00,+2.43e+00,-3.67e+01,+3.70e+01 + I: 1 397 323 -2.16e+01,+1.35e+01,-2.09e+02,+2.11e+02 2 -192 + O: 2 561 311 -1.87e+01,+1.16e+01,-1.82e+02,+1.84e+02 2 -216 + 562 211 -2.87e+00,+1.93e+00,-2.71e+01,+2.73e+01 1 (nil) +GenVertex: -193 ID: 0 (X,cT):0 + I: 1 399 -311 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -193 + O: 1 563 310 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -217 +Vertex: -194 ID: 0 (X,cT)=-3.15e-04,+1.64e-04,-3.28e-03,+3.30e-03 + I: 1 400 111 -1.24e+00,+6.47e-01,-1.29e+01,+1.30e+01 2 -194 + O: 2 564 22 -2.94e-01,+1.77e-01,-3.70e+00,+3.71e+00 1 (nil) + 565 22 -9.48e-01,+4.69e-01,-9.23e+00,+9.29e+00 1 (nil) +GenVertex: -195 ID: 0 (X,cT):0 + I: 1 401 311 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -195 + O: 1 566 310 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -218 +Vertex: -196 ID: 0 (X,cT)=-6.57e-06,+3.84e-06,-3.95e-05,+4.09e-05 + I: 1 404 111 -1.17e-01,+6.82e-02,-7.01e-01,+7.26e-01 2 -196 + O: 2 567 22 +1.75e-02,+4.41e-02,-2.82e-01,+2.86e-01 1 (nil) + 568 22 -1.34e-01,+2.41e-02,-4.19e-01,+4.40e-01 1 (nil) +Vertex: -197 ID: 0 (X,cT)=-4.47e-05,-7.78e-05,+3.13e-05,+9.80e-05 + I: 1 410 111 -2.51e-01,-4.37e-01,+1.76e-01,+5.51e-01 2 -197 + O: 2 569 22 -1.16e-01,-2.11e-01,+1.32e-02,+2.41e-01 1 (nil) + 570 22 -1.36e-01,-2.27e-01,+1.63e-01,+3.10e-01 1 (nil) +Vertex: -198 ID: 0 (X,cT)=-4.20e-06,+2.71e-05,+4.10e-05,+4.99e-05 + I: 1 412 111 -7.90e-02,+5.11e-01,+7.72e-01,+9.39e-01 2 -198 + O: 2 571 22 -9.13e-02,+4.77e-01,+7.59e-01,+9.01e-01 1 (nil) + 572 22 +1.23e-02,+3.33e-02,+1.37e-02,+3.81e-02 1 (nil) +Vertex: -199 ID: 0 (X,cT)=+2.92e-05,+4.15e-05,-5.58e-06,+5.45e-05 + I: 1 416 111 +2.06e-01,+2.93e-01,-3.94e-02,+3.85e-01 2 -199 + O: 2 573 22 +2.03e-01,+2.67e-01,-7.22e-02,+3.43e-01 1 (nil) + 574 22 +3.43e-03,+2.63e-02,+3.28e-02,+4.22e-02 1 (nil) +Vertex: -200 ID: 0 (X,cT)=-2.16e-05,+1.04e-05,+8.87e-06,+2.79e-05 + I: 1 420 111 -2.59e-01,+1.24e-01,+1.06e-01,+3.34e-01 2 -200 + O: 2 575 22 -3.89e-02,+8.36e-02,+4.53e-02,+1.03e-01 1 (nil) + 576 22 -2.20e-01,+4.05e-02,+6.09e-02,+2.32e-01 1 (nil) +Vertex: -201 ID: 0 (X,cT)=-5.59e-05,+5.21e-05,+8.09e-04,+8.13e-04 + I: 1 422 111 -3.29e-01,+3.07e-01,+4.76e+00,+4.78e+00 2 -201 + O: 2 577 22 -2.64e-01,+1.59e-01,+3.14e+00,+3.16e+00 1 (nil) + 578 22 -6.51e-02,+1.48e-01,+1.62e+00,+1.62e+00 1 (nil) +Vertex: -202 ID: 0 (X,cT)=+2.56e-05,-2.90e-06,+8.11e-06,+2.82e-05 + I: 1 427 111 +4.14e-01,-4.69e-02,+1.31e-01,+4.58e-01 2 -202 + O: 2 579 22 +4.15e-01,-2.52e-02,+1.20e-01,+4.33e-01 1 (nil) + 580 22 -9.68e-04,-2.17e-02,+1.13e-02,+2.45e-02 1 (nil) +Vertex: -203 ID: 0 (X,cT)=-9.79e-05,+5.68e-05,+6.63e-05,+1.32e-04 + I: 1 431 111 -7.34e-01,+4.26e-01,+4.97e-01,+9.93e-01 2 -203 + O: 2 581 22 -3.41e-01,+2.71e-01,+2.25e-01,+4.90e-01 1 (nil) + 582 22 -3.94e-01,+1.56e-01,+2.73e-01,+5.03e-01 1 (nil) +Vertex: -204 ID: 0 (X,cT)=+1.01e-05,-5.45e-05,-6.08e-06,+5.98e-05 + I: 1 434 111 +6.29e-02,-3.41e-01,-3.80e-02,+3.74e-01 2 -204 + O: 2 583 22 +5.58e-02,-8.25e-02,+3.46e-02,+1.05e-01 1 (nil) + 584 22 +7.11e-03,-2.58e-01,-7.26e-02,+2.69e-01 1 (nil) +Vertex: -205 ID: 0 (X,cT)=-3.75e-05,-4.46e-06,+3.21e-06,+5.29e-05 + I: 1 437 111 -1.37e-01,-1.63e-02,+1.18e-02,+1.94e-01 2 -205 + O: 2 585 22 -9.46e-02,+4.14e-02,+4.73e-02,+1.14e-01 1 (nil) + 586 22 -4.29e-02,-5.77e-02,-3.55e-02,+8.02e-02 1 (nil) +Vertex: -206 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 438 10323 +8.73e-01,-6.30e-01,-7.46e+00,+7.64e+00 2 -206 + O: 2 587 321 +3.86e-01,-2.73e-01,-2.92e+00,+3.00e+00 1 (nil) + 588 223 +4.87e-01,-3.58e-01,-4.53e+00,+4.64e+00 2 -219 +Vertex: -207 ID: 0 (X,cT)=+6.34e+00,+1.12e+01,-3.83e+01,+4.12e+01 + I: 1 442 310 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -207 + O: 2 589 -211 +1.48e-01,+5.93e-01,-1.74e+00,+1.85e+00 1 (nil) + 590 211 +2.36e-01,+8.15e-02,-5.72e-01,+6.40e-01 1 (nil) +Vertex: -208 ID: 0 (X,cT)=+6.83e+00,+2.32e+01,-1.43e+02,+1.45e+02 + I: 1 443 310 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -208 + O: 2 591 211 +2.44e-01,+1.36e+00,-7.90e+00,+8.02e+00 1 (nil) + 592 -211 +2.48e-01,+3.05e-01,-2.40e+00,+2.43e+00 1 (nil) +Vertex: -209 ID: 0 (X,cT)=+9.00e-01,-4.13e-01,-2.42e+00,+2.63e+00 + I: 1 461 -313 +3.33e+00,-1.55e+00,-7.24e+00,+8.16e+00 2 -209 + O: 2 593 -321 +2.28e+00,-1.05e+00,-5.51e+00,+6.07e+00 1 (nil) + 594 211 +1.05e+00,-5.07e-01,-1.73e+00,+2.09e+00 1 (nil) +Vertex: -210 ID: 0 (X,cT)=+9.00e-01,-4.13e-01,-2.42e+00,+2.63e+00 + I: 1 462 111 +2.92e+00,-1.31e+00,-9.56e+00,+1.01e+01 2 -210 + O: 2 595 22 +2.61e+00,-1.13e+00,-8.44e+00,+8.90e+00 1 (nil) + 596 22 +3.12e-01,-1.85e-01,-1.12e+00,+1.18e+00 1 (nil) +Vertex: -211 ID: 0 (X,cT)=+1.16e-05,-1.47e-05,-9.04e-06,+2.29e-05 + I: 1 469 111 +1.61e-01,-2.04e-01,-1.26e-01,+3.19e-01 2 -211 + O: 2 597 22 +1.53e-02,-6.02e-02,-9.24e-02,+1.11e-01 1 (nil) + 598 22 +1.46e-01,-1.44e-01,-3.35e-02,+2.08e-01 1 (nil) +Vertex: -212 ID: 0 (X,cT)=+4.54e-05,+4.92e-05,+5.89e-04,+5.93e-04 + I: 1 500 111 +3.73e-01,+4.04e-01,+4.84e+00,+4.87e+00 2 -212 + O: 2 599 22 +6.24e-02,+9.07e-02,+5.92e-01,+6.02e-01 1 (nil) + 600 22 +3.10e-01,+3.13e-01,+4.25e+00,+4.27e+00 1 (nil) +Vertex: -213 ID: 0 (X,cT)=+1.06e-05,+1.77e-05,+2.45e-04,+2.46e-04 + I: 1 501 111 +4.30e-01,+7.17e-01,+9.92e+00,+9.96e+00 2 -213 + O: 2 601 22 +2.70e-01,+3.42e-01,+4.68e+00,+4.70e+00 1 (nil) + 602 22 +1.60e-01,+3.75e-01,+5.24e+00,+5.26e+00 1 (nil) +Vertex: -214 ID: 0 (X,cT)=+3.42e-05,+3.55e-05,+6.36e-04,+6.39e-04 + I: 1 502 111 +1.53e-01,+1.59e-01,+2.85e+00,+2.86e+00 2 -214 + O: 2 603 22 +1.66e-01,+9.32e-02,+2.21e+00,+2.21e+00 1 (nil) + 604 22 -1.33e-02,+6.57e-02,+6.40e-01,+6.43e-01 1 (nil) +Vertex: -215 ID: 0 (X,cT)=+2.34e+01,+2.39e+01,-3.53e+02,+3.55e+02 + I: 1 539 310 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -215 + O: 2 605 -211 -2.61e-02,+1.43e-01,-1.27e+00,+1.29e+00 1 (nil) + 606 211 +5.24e-01,+3.67e-01,-6.25e+00,+6.28e+00 1 (nil) +Vertex: -216 ID: 0 (X,cT)=-3.81e+00,+2.43e+00,-3.67e+01,+3.70e+01 + I: 1 561 311 -1.87e+01,+1.16e+01,-1.82e+02,+1.84e+02 2 -216 + O: 1 607 130 -1.87e+01,+1.16e+01,-1.82e+02,+1.84e+02 1 (nil) +Vertex: -217 ID: 0 (X,cT)=-8.57e+01,+5.84e+01,-1.21e+03,+1.22e+03 + I: 1 563 310 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -217 + O: 2 608 111 -3.60e-01,+3.29e-01,-3.33e+00,+3.37e+00 2 -220 + 609 111 -8.72e-02,-2.40e-02,-2.99e+00,+3.00e+00 2 -221 +Vertex: -218 ID: 0 (X,cT)=-1.70e+00,+1.75e+00,-2.03e+01,+2.05e+01 + I: 1 566 310 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -218 + O: 2 610 111 -1.61e-01,+2.25e-01,-1.49e+00,+1.52e+00 2 -222 + 611 111 -7.72e-01,+7.38e-01,-9.69e+00,+9.75e+00 2 -223 +Vertex: -219 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 588 223 +4.87e-01,-3.58e-01,-4.53e+00,+4.64e+00 2 -219 + O: 3 612 -211 +3.21e-01,-2.23e-01,-1.77e+00,+1.82e+00 1 (nil) + 613 211 +1.03e-01,-2.97e-01,-2.00e+00,+2.03e+00 1 (nil) + 614 111 +6.30e-02,+1.63e-01,-7.63e-01,+7.94e-01 2 -224 +Vertex: -220 ID: 0 (X,cT)=-8.57e+01,+5.84e+01,-1.21e+03,+1.22e+03 + I: 1 608 111 -3.60e-01,+3.29e-01,-3.33e+00,+3.37e+00 2 -220 + O: 2 615 22 -3.26e-01,+2.76e-01,-3.12e+00,+3.15e+00 1 (nil) + 616 22 -3.41e-02,+5.33e-02,-2.15e-01,+2.24e-01 1 (nil) +Vertex: -221 ID: 0 (X,cT)=-8.57e+01,+5.84e+01,-1.21e+03,+1.22e+03 + I: 1 609 111 -8.72e-02,-2.40e-02,-2.99e+00,+3.00e+00 2 -221 + O: 2 617 22 -1.01e-01,+2.75e-02,-2.29e+00,+2.30e+00 1 (nil) + 618 22 +1.37e-02,-5.15e-02,-7.01e-01,+7.03e-01 1 (nil) +Vertex: -222 ID: 0 (X,cT)=-1.70e+00,+1.75e+00,-2.03e+01,+2.05e+01 + I: 1 610 111 -1.61e-01,+2.25e-01,-1.49e+00,+1.52e+00 2 -222 + O: 2 619 22 -7.30e-02,+2.04e-01,-1.01e+00,+1.03e+00 1 (nil) + 620 22 -8.76e-02,+2.04e-02,-4.77e-01,+4.85e-01 1 (nil) +Vertex: -223 ID: 0 (X,cT)=-1.70e+00,+1.75e+00,-2.03e+01,+2.05e+01 + I: 1 611 111 -7.72e-01,+7.38e-01,-9.69e+00,+9.75e+00 2 -223 + O: 2 621 22 -6.72e-01,+5.71e-01,-7.86e+00,+7.91e+00 1 (nil) + 622 22 -1.00e-01,+1.67e-01,-1.82e+00,+1.83e+00 1 (nil) +Vertex: -224 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 614 111 +6.30e-02,+1.63e-01,-7.63e-01,+7.94e-01 2 -224 + O: 2 623 22 -8.72e-03,-2.00e-02,-1.18e-01,+1.20e-01 1 (nil) + 624 22 +7.17e-02,+1.83e-01,-6.45e-01,+6.74e-01 1 (nil) +________________________________________________________________________________ +Stage 0->1 : 0 hits found in the muon chamber. +++++++++ event aborted +>>> Event 1 + 0 hits are stored in ExN04TrackerHitsCollection. + 0 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0 (GeV) + 0 hits are stored in ExN04MuonHitsCollection. +________________________________________________________________________________ +GenEvent: #3 ID=20 SignalProcessGenVertex Barcode: 0 + Current Memory Usage: 1 events, 102 vertices, 280 particles. + Entries this event: 102 vertices, 280 particles. + RndmState(0)= + Wgts(0)= + EventScale -1 GeV alphaQCD=-1 alphaQED=-1 + GenParticle Legend + Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx +________________________________________________________________________________ +GenVertex: -1 ID: 0 (X,cT):0 + I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 + O: 3 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 + 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 + 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 +GenVertex: -2 ID: 0 (X,cT):0 + I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 + O: 2 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 + 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 +GenVertex: -3 ID: 0 (X,cT):0 + I: 1 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 + O: 4 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 + 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 + 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 + 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 +GenVertex: -4 ID: 0 (X,cT):0 + I: 1 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 + O: 7 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 + 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 + 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 +GenVertex: -5 ID: 0 (X,cT):0 + I: 2 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 + 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 + O: 2 8 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 3 -7 + 7 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 3 -6 +GenVertex: -6 ID: 0 (X,cT):0 + I: 1 7 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 3 -6 + O: 1 9 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 1 (nil) +GenVertex: -7 ID: 0 (X,cT):0 + I: 1 8 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 3 -7 + O: 1 10 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 2 -8 +GenVertex: -8 ID: 0 (X,cT):0 + I: 1 10 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 2 -8 + O: 2 11 13 +1.17e+01,+3.45e+01,-2.85e+02,+2.87e+02 1 (nil) + 12 -14 -9.19e+00,-3.92e+01,-1.68e+02,+1.73e+02 1 (nil) +GenVertex: -9 ID: 0 (X,cT):0 + I: 2 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 + 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 + O: 1 35 92 -2.00e+00,+7.56e-01,+6.53e+03,+6.54e+03 2 -10 +GenVertex: -10 ID: 0 (X,cT):0 + I: 1 35 92 -2.00e+00,+7.56e-01,+6.53e+03,+6.54e+03 2 -10 + O: 9 44 2112 -3.44e-01,+2.18e-02,+5.44e+03,+5.44e+03 1 (nil) + 40 333 +4.67e-02,-1.10e-02,+6.10e+01,+6.10e+01 2 -19 + 41 -313 +6.61e-02,+2.00e-01,+1.02e+02,+1.02e+02 2 -20 + 38 -321 +5.75e-01,-1.63e-01,+3.07e+00,+3.17e+00 1 (nil) + 39 323 -4.93e-01,+1.18e-01,+1.14e+01,+1.14e+01 2 -18 + 36 321 -2.73e-01,+1.76e-01,+9.69e-01,+1.13e+00 1 (nil) + 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 + 42 -211 +6.62e-01,+2.34e-03,+1.91e+01,+1.92e+01 1 (nil) + 43 213 -1.13e+00,+2.68e-01,+8.99e+02,+8.99e+02 2 -21 +GenVertex: -11 ID: 0 (X,cT):0 + I:15 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 + 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 + 18 21 +9.34e-01,+2.91e+00,+1.97e+01,+2.00e+01 2 -11 + 22 21 -2.68e+00,+1.72e+00,-1.05e+02,+1.05e+02 2 -11 + 20 21 +2.14e+00,-4.17e+00,-7.24e+00,+8.62e+00 2 -11 + 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 + 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 + 21 21 +2.68e+00,-1.72e+00,-3.07e+01,+3.09e+01 2 -11 + 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 + 19 21 -2.14e+00,+4.17e+00,-2.51e+00,+5.32e+00 2 -11 + O: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 +GenVertex: -12 ID: 0 (X,cT):0 + I: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 + O:44 70 323 +1.48e+00,-9.63e-01,-1.55e+01,+1.56e+01 2 -39 + 71 -321 -2.78e-01,+3.30e-01,-8.84e+00,+8.87e+00 1 (nil) + 72 213 +4.81e-01,-1.41e-01,-1.37e+01,+1.37e+01 2 -40 + 73 111 -6.69e-01,+1.78e-01,-1.87e+01,+1.87e+01 2 -41 + 53 113 -2.30e-01,+1.48e-01,-1.62e+00,+1.84e+00 2 -27 + 54 223 +3.60e-01,+7.58e-01,+8.72e-01,+1.44e+00 2 -28 + 55 113 +1.21e-01,+1.16e-01,+9.83e-01,+1.26e+00 2 -29 + 46 211 +1.39e+00,-8.14e-01,+3.12e+01,+3.13e+01 1 (nil) + 49 113 +6.00e-01,-2.67e-01,+2.22e+00,+2.44e+00 2 -23 + 51 -313 +1.43e-02,+4.68e-01,-3.88e-01,+1.12e+00 2 -25 + 66 2114 +9.53e-01,-6.69e-01,-3.09e+00,+3.53e+00 2 -38 + 67 211 -1.36e-01,-6.50e-01,-8.86e-01,+1.12e+00 1 (nil) + 68 -2212 +8.49e-01,-2.09e+00,-5.29e+00,+5.82e+00 1 (nil) + 69 -211 +1.20e-01,+2.39e-01,-1.06e+00,+1.10e+00 1 (nil) + 50 323 -3.07e-01,-6.12e-02,-1.42e-02,+9.76e-01 2 -24 + 58 -321 +1.93e-01,+1.97e-01,+6.13e+00,+6.16e+00 1 (nil) + 59 223 -2.63e-01,+7.90e-01,+6.47e-01,+1.31e+00 2 -32 + 60 213 +1.35e-01,+1.08e+00,+5.74e-01,+1.37e+00 2 -33 + 89 223 +1.23e+00,+3.33e-01,-2.87e+03,+2.87e+03 2 -50 + 57 323 +1.76e-01,+4.23e-01,+1.93e+00,+2.16e+00 2 -31 + 62 213 -9.08e-02,+5.82e-01,-1.54e+00,+1.76e+00 2 -34 + 47 113 +6.88e-02,-1.41e-01,+2.65e+01,+2.66e+01 2 -22 + 48 -211 -3.37e-01,-1.68e-01,+9.43e+00,+9.44e+00 1 (nil) + 78 311 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 2 -44 + 79 -2112 -1.86e+00,+2.64e-01,-6.69e+01,+6.69e+01 1 (nil) + 80 -211 -4.20e-01,-6.99e-02,-4.46e+01,+4.47e+01 1 (nil) + 81 211 -1.23e+00,+5.35e-01,-3.48e+01,+3.49e+01 1 (nil) + 82 311 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -45 + 83 -323 -5.63e-01,-7.34e-02,-1.48e+02,+1.48e+02 2 -46 + 84 211 -1.34e-01,-9.12e-02,-7.11e+00,+7.11e+00 1 (nil) + 85 113 +1.80e-02,+8.34e-01,-6.47e+02,+6.47e+02 2 -47 + 86 -211 +2.67e-01,-2.79e-01,-5.20e+02,+5.20e+02 1 (nil) + 87 213 +3.40e-01,+1.94e-01,-1.02e+03,+1.02e+03 2 -48 + 88 2214 +5.67e-01,+9.88e-02,-8.80e+02,+8.80e+02 2 -49 + 61 -211 -1.05e+00,+1.11e+00,-1.21e-01,+1.54e+00 1 (nil) + 63 221 +1.94e-01,-2.74e-01,-2.66e-01,+6.95e-01 2 -35 + 64 -213 +2.31e-01,+2.74e-01,-1.31e+00,+1.58e+00 2 -36 + 65 213 -4.52e-01,+2.86e-01,-1.23e+00,+1.57e+00 2 -37 + 74 -213 -3.45e-01,-1.71e-01,-1.77e+01,+1.77e+01 2 -42 + 75 2212 -3.93e-01,+8.27e-02,-3.98e+01,+3.98e+01 1 (nil) + 76 -2212 -6.65e-01,+6.91e-02,-2.61e+01,+2.61e+01 1 (nil) + 77 3224 -4.07e-01,-1.66e+00,-3.45e+01,+3.46e+01 2 -43 + 52 111 +8.08e-02,-1.35e-02,-7.15e-01,+7.33e-01 2 -26 + 56 -213 +8.69e-02,+1.01e+00,+7.42e+00,+7.52e+00 2 -30 +GenVertex: -13 ID: 0 (X,cT):0 + I: 3 31 21 -9.34e-01,-2.91e+00,+1.02e+02,+1.02e+02 2 -13 + 32 21 +3.00e+00,-2.35e+00,+2.97e+01,+3.00e+01 2 -13 + 30 21 -3.00e+00,+2.35e+00,+2.36e+02,+2.36e+02 2 -13 + O: 1 90 92 -9.34e-01,-2.91e+00,+3.67e+02,+3.67e+02 2 -14 +GenVertex: -14 ID: 0 (X,cT):0 + I: 1 90 92 -9.34e-01,-2.91e+00,+3.67e+02,+3.67e+02 2 -14 + O:11 93 -311 -2.08e-02,-2.14e-01,+2.11e+01,+2.11e+01 2 -51 + 94 313 -3.62e-01,+5.42e-01,+5.03e+01,+5.03e+01 2 -52 + 95 213 -8.94e-01,-3.47e-01,+5.52e+01,+5.52e+01 2 -53 + 96 113 -1.28e-01,-1.56e-01,+3.41e+01,+3.41e+01 2 -54 + 97 -211 -5.72e-01,-9.49e-01,+3.99e+01,+3.99e+01 1 (nil) + 98 111 +4.23e-01,-2.45e-01,+3.08e+00,+3.12e+00 2 -55 + 99 -2112 +1.14e+00,-1.49e+00,+2.49e+01,+2.50e+01 1 (nil) + 100 2112 +5.39e-01,-8.02e-01,+1.40e+01,+1.41e+01 1 (nil) + 91 211 -8.24e-01,-1.45e-02,+1.59e+01,+1.59e+01 1 (nil) + 92 -211 -1.30e+00,+8.92e-01,+8.32e+01,+8.33e+01 1 (nil) + 101 223 +1.06e+00,-1.22e-01,+2.53e+01,+2.53e+01 2 -56 +GenVertex: -15 ID: 0 (X,cT):0 + I: 2 33 21 +1.02e+00,-2.88e+00,-9.85e+00,+1.03e+01 2 -15 + 34 21 -1.02e+00,+2.88e+00,-7.45e+00,+8.05e+00 2 -15 + O: 1 102 92 +0.00e+00,+0.00e+00,-1.73e+01,+1.84e+01 2 -16 +GenVertex: -16 ID: 0 (X,cT):0 + I: 1 102 92 +0.00e+00,+0.00e+00,-1.73e+01,+1.84e+01 2 -16 + O: 7 107 -211 -2.88e-01,+5.23e-01,-3.10e+00,+3.16e+00 1 (nil) + 108 223 +2.53e-01,-1.38e-01,-2.52e+00,+2.66e+00 2 -61 + 109 113 -5.13e-01,+2.04e-01,-2.60e+00,+2.77e+00 2 -62 + 106 111 +1.94e-01,-8.30e-01,-1.78e+00,+1.98e+00 2 -60 + 103 113 +2.54e-01,-1.28e-01,-3.69e+00,+3.77e+00 2 -57 + 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 + 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 +GenVertex: -17 ID: 0 (X,cT):0 + I: 1 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 + O: 2 110 321 -5.35e-01,-4.15e-03,+1.39e+00,+1.57e+00 1 (nil) + 111 -321 -5.74e-01,+1.48e-01,+1.05e+00,+1.30e+00 1 (nil) +GenVertex: -18 ID: 0 (X,cT):0 + I: 1 39 323 -4.93e-01,+1.18e-01,+1.14e+01,+1.14e+01 2 -18 + O: 2 112 311 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -63 + 113 211 -3.29e-01,+3.86e-02,+3.09e+00,+3.12e+00 1 (nil) +GenVertex: -19 ID: 0 (X,cT):0 + I: 1 40 333 +4.67e-02,-1.10e-02,+6.10e+01,+6.10e+01 2 -19 + O: 2 114 321 -8.91e-02,+3.84e-02,+3.21e+01,+3.21e+01 1 (nil) + 115 -321 +1.36e-01,-4.94e-02,+2.89e+01,+2.89e+01 1 (nil) +GenVertex: -20 ID: 0 (X,cT):0 + I: 1 41 -313 +6.61e-02,+2.00e-01,+1.02e+02,+1.02e+02 2 -20 + O: 2 116 -311 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -64 + 117 111 +2.74e-01,-8.21e-02,+5.65e+01,+5.65e+01 2 -65 +GenVertex: -21 ID: 0 (X,cT):0 + I: 1 43 213 -1.13e+00,+2.68e-01,+8.99e+02,+8.99e+02 2 -21 + O: 2 118 211 -1.03e+00,+4.32e-01,+6.38e+02,+6.38e+02 1 (nil) + 119 111 -1.00e-01,-1.65e-01,+2.61e+02,+2.61e+02 2 -66 +GenVertex: -22 ID: 0 (X,cT):0 + I: 1 47 113 +6.88e-02,-1.41e-01,+2.65e+01,+2.66e+01 2 -22 + O: 2 121 211 -1.86e-01,-1.31e-01,+3.23e+00,+3.24e+00 1 (nil) + 120 -211 +2.55e-01,-1.00e-02,+2.33e+01,+2.33e+01 1 (nil) +GenVertex: -23 ID: 0 (X,cT):0 + I: 1 49 113 +6.00e-01,-2.67e-01,+2.22e+00,+2.44e+00 2 -23 + O: 2 122 211 +7.62e-01,-2.15e-01,+1.64e+00,+1.83e+00 1 (nil) + 123 -211 -1.62e-01,-5.17e-02,+5.74e-01,+6.14e-01 1 (nil) +GenVertex: -24 ID: 0 (X,cT):0 + I: 1 50 323 -3.07e-01,-6.12e-02,-1.42e-02,+9.76e-01 2 -24 + O: 2 124 311 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -67 + 125 211 +1.40e-01,+1.66e-01,+6.23e-02,+2.65e-01 1 (nil) +GenVertex: -25 ID: 0 (X,cT):0 + I: 1 51 -313 +1.43e-02,+4.68e-01,-3.88e-01,+1.12e+00 2 -25 + O: 2 126 -321 -2.60e-02,+2.92e-01,+9.54e-02,+5.82e-01 1 (nil) + 127 211 +4.03e-02,+1.76e-01,-4.83e-01,+5.35e-01 1 (nil) +Vertex: -26 ID: 0 (X,cT)=+4.64e-05,-7.72e-06,-4.10e-04,+4.20e-04 + I: 1 52 111 +8.08e-02,-1.35e-02,-7.15e-01,+7.33e-01 2 -26 + O: 2 128 22 -1.68e-02,+2.28e-02,-3.88e-02,+4.80e-02 1 (nil) + 129 22 +9.76e-02,-3.63e-02,-6.77e-01,+6.85e-01 1 (nil) +GenVertex: -27 ID: 0 (X,cT):0 + I: 1 53 113 -2.30e-01,+1.48e-01,-1.62e+00,+1.84e+00 2 -27 + O: 2 130 -211 -8.09e-02,+2.95e-01,-1.97e-01,+3.90e-01 1 (nil) + 131 211 -1.49e-01,-1.47e-01,-1.43e+00,+1.45e+00 1 (nil) +GenVertex: -28 ID: 0 (X,cT):0 + I: 1 54 223 +3.60e-01,+7.58e-01,+8.72e-01,+1.44e+00 2 -28 + O: 3 132 211 +1.97e-01,+3.51e-01,+6.75e-01,+7.98e-01 1 (nil) + 133 -211 -3.88e-02,+1.47e-01,+2.00e-01,+2.87e-01 1 (nil) + 134 111 +2.02e-01,+2.60e-01,-3.27e-03,+3.56e-01 2 -68 +GenVertex: -29 ID: 0 (X,cT):0 + I: 1 55 113 +1.21e-01,+1.16e-01,+9.83e-01,+1.26e+00 2 -29 + O: 2 135 -211 +1.15e-01,+2.71e-01,+9.97e-01,+1.05e+00 1 (nil) + 136 211 +5.83e-03,-1.56e-01,-1.47e-02,+2.10e-01 1 (nil) +GenVertex: -30 ID: 0 (X,cT):0 + I: 1 56 -213 +8.69e-02,+1.01e+00,+7.42e+00,+7.52e+00 2 -30 + O: 2 137 -211 -8.49e-03,+1.28e-01,+3.83e-01,+4.28e-01 1 (nil) + 138 111 +9.53e-02,+8.80e-01,+7.03e+00,+7.09e+00 2 -69 +GenVertex: -31 ID: 0 (X,cT):0 + I: 1 57 323 +1.76e-01,+4.23e-01,+1.93e+00,+2.16e+00 2 -31 + O: 2 139 311 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -70 + 140 211 +1.10e-01,-9.78e-02,+1.66e-01,+2.62e-01 1 (nil) +GenVertex: -32 ID: 0 (X,cT):0 + I: 1 59 223 -2.63e-01,+7.90e-01,+6.47e-01,+1.31e+00 2 -32 + O: 3 143 111 +1.43e-01,+4.38e-02,+1.63e-01,+2.59e-01 2 -71 + 141 211 -1.81e-01,+4.47e-01,+1.25e-01,+5.17e-01 1 (nil) + 142 -211 -2.25e-01,+2.99e-01,+3.59e-01,+5.38e-01 1 (nil) +GenVertex: -33 ID: 0 (X,cT):0 + I: 1 60 213 +1.35e-01,+1.08e+00,+5.74e-01,+1.37e+00 2 -33 + O: 2 144 211 +6.61e-02,+1.08e+00,+5.00e-01,+1.20e+00 1 (nil) + 145 111 +6.86e-02,-8.01e-04,+7.43e-02,+1.69e-01 2 -72 +GenVertex: -34 ID: 0 (X,cT):0 + I: 1 62 213 -9.08e-02,+5.82e-01,-1.54e+00,+1.76e+00 2 -34 + O: 2 146 211 -4.09e-02,-5.32e-02,-5.87e-01,+6.07e-01 1 (nil) + 147 111 -4.99e-02,+6.35e-01,-9.56e-01,+1.16e+00 2 -73 +GenVertex: -35 ID: 0 (X,cT):0 + I: 1 63 221 +1.94e-01,-2.74e-01,-2.66e-01,+6.95e-01 2 -35 + O: 3 148 111 -8.07e-02,-5.76e-02,-3.25e-02,+1.71e-01 2 -74 + 149 111 +2.01e-01,-6.40e-02,-9.60e-02,+2.68e-01 2 -75 + 150 111 +7.41e-02,-1.52e-01,-1.38e-01,+2.57e-01 2 -76 +GenVertex: -36 ID: 0 (X,cT):0 + I: 1 64 -213 +2.31e-01,+2.74e-01,-1.31e+00,+1.58e+00 2 -36 + O: 2 151 -211 +4.35e-01,+4.07e-01,-8.38e-01,+1.04e+00 1 (nil) + 152 111 -2.04e-01,-1.33e-01,-4.69e-01,+5.45e-01 2 -77 +GenVertex: -37 ID: 0 (X,cT):0 + I: 1 65 213 -4.52e-01,+2.86e-01,-1.23e+00,+1.57e+00 2 -37 + O: 2 153 211 -1.15e-01,-2.61e-01,-4.89e-01,+5.83e-01 1 (nil) + 154 111 -3.37e-01,+5.47e-01,-7.40e-01,+9.89e-01 2 -78 +GenVertex: -38 ID: 0 (X,cT):0 + I: 1 66 2114 +9.53e-01,-6.69e-01,-3.09e+00,+3.53e+00 2 -38 + O: 2 155 2212 +6.04e-01,-7.13e-01,-2.45e+00,+2.79e+00 1 (nil) + 156 -211 +3.49e-01,+4.35e-02,-6.38e-01,+7.42e-01 1 (nil) +GenVertex: -39 ID: 0 (X,cT):0 + I: 1 70 323 +1.48e+00,-9.63e-01,-1.55e+01,+1.56e+01 2 -39 + O: 2 157 311 +5.39e-01,-2.99e-01,-4.42e+00,+4.49e+00 2 -79 + 158 211 +9.45e-01,-6.64e-01,-1.11e+01,+1.11e+01 1 (nil) +GenVertex: -40 ID: 0 (X,cT):0 + I: 1 72 213 +4.81e-01,-1.41e-01,-1.37e+01,+1.37e+01 2 -40 + O: 2 160 111 +4.80e-01,+2.17e-01,-7.34e+00,+7.36e+00 2 -80 + 159 211 +1.18e-04,-3.58e-01,-6.34e+00,+6.36e+00 1 (nil) +Vertex: -41 ID: 0 (X,cT)=-1.16e-04,+3.09e-05,-3.23e-03,+3.24e-03 + I: 1 73 111 -6.69e-01,+1.78e-01,-1.87e+01,+1.87e+01 2 -41 + O: 2 161 22 -5.04e-01,+7.96e-02,-1.28e+01,+1.28e+01 1 (nil) + 162 22 -1.65e-01,+9.88e-02,-5.90e+00,+5.90e+00 1 (nil) +GenVertex: -42 ID: 0 (X,cT):0 + I: 1 74 -213 -3.45e-01,-1.71e-01,-1.77e+01,+1.77e+01 2 -42 + O: 2 163 -211 +1.33e-01,+1.21e-01,-7.19e+00,+7.19e+00 1 (nil) + 164 111 -4.77e-01,-2.92e-01,-1.05e+01,+1.05e+01 2 -81 +GenVertex: -43 ID: 0 (X,cT):0 + I: 1 77 3224 -4.07e-01,-1.66e+00,-3.45e+01,+3.46e+01 2 -43 + O: 2 165 3122 -4.69e-01,-1.62e+00,-3.09e+01,+3.09e+01 2 -82 + 166 211 +6.12e-02,-3.83e-02,-3.63e+00,+3.64e+00 1 (nil) +GenVertex: -44 ID: 0 (X,cT):0 + I: 1 78 311 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 2 -44 + O: 1 167 130 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 1 (nil) +GenVertex: -45 ID: 0 (X,cT):0 + I: 1 82 311 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -45 + O: 1 168 310 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -83 +GenVertex: -46 ID: 0 (X,cT):0 + I: 1 83 -323 -5.63e-01,-7.34e-02,-1.48e+02,+1.48e+02 2 -46 + O: 2 169 -311 -5.45e-01,+2.59e-01,-8.99e+01,+8.99e+01 2 -84 + 170 -211 -1.76e-02,-3.32e-01,-5.80e+01,+5.80e+01 1 (nil) +GenVertex: -47 ID: 0 (X,cT):0 + I: 1 85 113 +1.80e-02,+8.34e-01,-6.47e+02,+6.47e+02 2 -47 + O: 2 171 211 +9.30e-02,-1.09e-02,-3.29e+01,+3.29e+01 1 (nil) + 172 -211 -7.50e-02,+8.45e-01,-6.14e+02,+6.14e+02 1 (nil) +GenVertex: -48 ID: 0 (X,cT):0 + I: 1 87 213 +3.40e-01,+1.94e-01,-1.02e+03,+1.02e+03 2 -48 + O: 2 173 211 +8.59e-02,+3.47e-01,-6.99e+02,+6.99e+02 1 (nil) + 174 111 +2.54e-01,-1.53e-01,-3.24e+02,+3.24e+02 2 -85 +GenVertex: -49 ID: 0 (X,cT):0 + I: 1 88 2214 +5.67e-01,+9.88e-02,-8.80e+02,+8.80e+02 2 -49 + O: 2 175 2212 +3.83e-01,+1.63e-01,-5.77e+02,+5.77e+02 1 (nil) + 176 111 +1.84e-01,-6.41e-02,-3.04e+02,+3.04e+02 2 -86 +GenVertex: -50 ID: 0 (X,cT):0 + I: 1 89 223 +1.23e+00,+3.33e-01,-2.87e+03,+2.87e+03 2 -50 + O: 3 177 211 +5.33e-01,+7.46e-02,-1.01e+03,+1.01e+03 1 (nil) + 178 -211 +4.00e-01,-1.62e-02,-1.32e+03,+1.32e+03 1 (nil) + 179 111 +2.98e-01,+2.74e-01,-5.41e+02,+5.41e+02 2 -87 +GenVertex: -51 ID: 0 (X,cT):0 + I: 1 93 -311 -2.08e-02,-2.14e-01,+2.11e+01,+2.11e+01 2 -51 + O: 1 180 130 -2.08e-02,-2.14e-01,+2.11e+01,+2.11e+01 1 (nil) +GenVertex: -52 ID: 0 (X,cT):0 + I: 1 94 313 -3.62e-01,+5.42e-01,+5.03e+01,+5.03e+01 2 -52 + O: 2 181 321 -3.90e-01,+2.06e-01,+3.09e+01,+3.09e+01 1 (nil) + 182 -211 +2.79e-02,+3.36e-01,+1.94e+01,+1.94e+01 1 (nil) +GenVertex: -53 ID: 0 (X,cT):0 + I: 1 95 213 -8.94e-01,-3.47e-01,+5.52e+01,+5.52e+01 2 -53 + O: 2 183 211 -8.91e-01,-1.82e-01,+3.63e+01,+3.63e+01 1 (nil) + 184 111 -2.63e-03,-1.65e-01,+1.89e+01,+1.89e+01 2 -88 +GenVertex: -54 ID: 0 (X,cT):0 + I: 1 96 113 -1.28e-01,-1.56e-01,+3.41e+01,+3.41e+01 2 -54 + O: 2 185 -211 -1.20e-02,-3.34e-01,+2.86e+01,+2.86e+01 1 (nil) + 186 211 -1.16e-01,+1.78e-01,+5.45e+00,+5.46e+00 1 (nil) +Vertex: -55 ID: 0 (X,cT)=+4.23e-05,-2.45e-05,+3.08e-04,+3.12e-04 + I: 1 98 111 +4.23e-01,-2.45e-01,+3.08e+00,+3.12e+00 2 -55 + O: 2 188 22 +1.35e-01,-1.49e-01,+1.38e+00,+1.40e+00 1 (nil) + 187 22 +2.88e-01,-9.56e-02,+1.70e+00,+1.72e+00 1 (nil) +GenVertex: -56 ID: 0 (X,cT):0 + I: 1 101 223 +1.06e+00,-1.22e-01,+2.53e+01,+2.53e+01 2 -56 + O: 3 189 211 +5.04e-01,-1.97e-01,+8.76e+00,+8.77e+00 1 (nil) + 190 -211 +2.54e-02,-9.08e-02,+3.85e+00,+3.86e+00 1 (nil) + 191 111 +5.32e-01,+1.66e-01,+1.27e+01,+1.27e+01 2 -89 +GenVertex: -57 ID: 0 (X,cT):0 + I: 1 103 113 +2.54e-01,-1.28e-01,-3.69e+00,+3.77e+00 2 -57 + O: 2 192 -211 -1.71e-01,-5.67e-02,-2.24e+00,+2.25e+00 1 (nil) + 193 211 +4.26e-01,-7.15e-02,-1.45e+00,+1.52e+00 1 (nil) +GenVertex: -58 ID: 0 (X,cT):0 + I: 1 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 + O: 3 194 -211 +7.65e-02,-8.75e-02,-7.83e-01,+8.04e-01 1 (nil) + 195 211 -1.94e-01,+1.20e-01,-1.32e-01,+2.98e-01 1 (nil) + 196 111 +3.92e-02,+1.08e-02,-6.72e-02,+1.56e-01 2 -90 +GenVertex: -59 ID: 0 (X,cT):0 + I: 1 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 + O: 2 197 211 -2.80e-01,+2.51e-01,-1.39e+00,+1.44e+00 1 (nil) + 198 111 +4.58e-01,+7.63e-02,-1.24e+00,+1.33e+00 2 -91 +Vertex: -60 ID: 0 (X,cT)=+9.83e-05,-4.21e-04,-9.04e-04,+1.00e-03 + I: 1 106 111 +1.94e-01,-8.30e-01,-1.78e+00,+1.98e+00 2 -60 + O: 2 199 22 +1.08e-01,-5.84e-01,-1.11e+00,+1.25e+00 1 (nil) + 200 22 +8.65e-02,-2.46e-01,-6.78e-01,+7.27e-01 1 (nil) +GenVertex: -61 ID: 0 (X,cT):0 + I: 1 108 223 +2.53e-01,-1.38e-01,-2.52e+00,+2.66e+00 2 -61 + O: 3 202 211 +1.25e-01,+2.93e-02,-2.70e-01,+3.30e-01 1 (nil) + 203 111 +1.70e-01,-2.62e-01,-1.93e+00,+1.96e+00 2 -92 + 201 -211 -4.19e-02,+9.47e-02,-3.16e-01,+3.61e-01 1 (nil) +GenVertex: -62 ID: 0 (X,cT):0 + I: 1 109 113 -5.13e-01,+2.04e-01,-2.60e+00,+2.77e+00 2 -62 + O: 2 204 211 -6.28e-01,+1.34e-01,-1.31e+00,+1.46e+00 1 (nil) + 205 -211 +1.15e-01,+6.97e-02,-1.29e+00,+1.30e+00 1 (nil) +GenVertex: -63 ID: 0 (X,cT):0 + I: 1 112 311 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -63 + O: 1 206 310 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -93 +GenVertex: -64 ID: 0 (X,cT):0 + I: 1 116 -311 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -64 + O: 1 207 310 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -94 +Vertex: -65 ID: 0 (X,cT)=+7.38e-05,-2.21e-05,+1.52e-02,+1.52e-02 + I: 1 117 111 +2.74e-01,-8.21e-02,+5.65e+01,+5.65e+01 2 -65 + O: 2 208 22 +3.27e-02,-6.35e-02,+1.64e+01,+1.64e+01 1 (nil) + 209 22 +2.41e-01,-1.86e-02,+4.01e+01,+4.01e+01 1 (nil) +Vertex: -66 ID: 0 (X,cT)=-2.41e-05,-3.97e-05,+6.29e-02,+6.29e-02 + I: 1 119 111 -1.00e-01,-1.65e-01,+2.61e+02,+2.61e+02 2 -66 + O: 2 210 22 -3.55e-02,-4.32e-03,+1.12e+02,+1.12e+02 1 (nil) + 211 22 -6.45e-02,-1.60e-01,+1.49e+02,+1.49e+02 1 (nil) +GenVertex: -67 ID: 0 (X,cT):0 + I: 1 124 311 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -67 + O: 1 212 310 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -95 +Vertex: -68 ID: 0 (X,cT)=+5.62e-07,+7.23e-07,-9.08e-09,+9.90e-07 + I: 1 134 111 +2.02e-01,+2.60e-01,-3.27e-03,+3.56e-01 2 -68 + O: 2 213 22 +5.96e-02,+3.17e-04,-3.48e-03,+5.97e-02 1 (nil) + 214 22 +1.43e-01,+2.60e-01,+2.13e-04,+2.96e-01 1 (nil) +Vertex: -69 ID: 0 (X,cT)=+6.81e-05,+6.29e-04,+5.02e-03,+5.07e-03 + I: 1 138 111 +9.53e-02,+8.80e-01,+7.03e+00,+7.09e+00 2 -69 + O: 2 215 22 +9.82e-02,+6.35e-01,+5.48e+00,+5.52e+00 1 (nil) + 216 22 -2.90e-03,+2.45e-01,+1.55e+00,+1.57e+00 1 (nil) +GenVertex: -70 ID: 0 (X,cT):0 + I: 1 139 311 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -70 + O: 1 217 310 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -96 +Vertex: -71 ID: 0 (X,cT)=+2.07e-05,+6.35e-06,+2.36e-05,+3.76e-05 + I: 1 143 111 +1.43e-01,+4.38e-02,+1.63e-01,+2.59e-01 2 -71 + O: 2 219 22 -2.87e-03,+5.32e-02,+2.80e-02,+6.02e-02 1 (nil) + 218 22 +1.46e-01,-9.35e-03,+1.35e-01,+1.99e-01 1 (nil) +Vertex: -72 ID: 0 (X,cT)=+3.76e-05,-4.39e-07,+4.07e-05,+9.25e-05 + I: 1 145 111 +6.86e-02,-8.01e-04,+7.43e-02,+1.69e-01 2 -72 + O: 2 221 22 +4.44e-02,-6.53e-02,+5.76e-02,+9.78e-02 1 (nil) + 220 22 +2.42e-02,+6.45e-02,+1.68e-02,+7.09e-02 1 (nil) +Vertex: -73 ID: 0 (X,cT)=-5.91e-06,+7.52e-05,-1.13e-04,+1.37e-04 + I: 1 147 111 -4.99e-02,+6.35e-01,-9.56e-01,+1.16e+00 2 -73 + O: 2 222 22 -6.98e-02,+2.12e-01,-3.96e-01,+4.55e-01 1 (nil) + 223 22 +1.99e-02,+4.23e-01,-5.60e-01,+7.02e-01 1 (nil) +Vertex: -74 ID: 0 (X,cT)=-3.84e-05,-2.74e-05,-1.55e-05,+8.12e-05 + I: 1 148 111 -8.07e-02,-5.76e-02,-3.25e-02,+1.71e-01 2 -74 + O: 2 224 22 -1.12e-01,-6.36e-02,-5.73e-03,+1.29e-01 1 (nil) + 225 22 +3.13e-02,+6.07e-03,-2.68e-02,+4.17e-02 1 (nil) +Vertex: -75 ID: 0 (X,cT)=+4.38e-07,-1.40e-07,-2.10e-07,+5.85e-07 + I: 1 149 111 +2.01e-01,-6.40e-02,-9.60e-02,+2.68e-01 2 -75 + O: 2 226 22 +1.78e-01,-9.49e-02,-1.07e-01,+2.28e-01 1 (nil) + 227 22 +2.25e-02,+3.09e-02,+1.06e-02,+3.97e-02 1 (nil) +Vertex: -76 ID: 0 (X,cT)=+2.78e-06,-5.71e-06,-5.17e-06,+9.63e-06 + I: 1 150 111 +7.41e-02,-1.52e-01,-1.38e-01,+2.57e-01 2 -76 + O: 2 228 22 +2.08e-02,-3.01e-03,-8.82e-02,+9.06e-02 1 (nil) + 229 22 +5.32e-02,-1.49e-01,-4.97e-02,+1.66e-01 1 (nil) +Vertex: -77 ID: 0 (X,cT)=-1.62e-04,-1.05e-04,-3.72e-04,+4.33e-04 + I: 1 152 111 -2.04e-01,-1.33e-01,-4.69e-01,+5.45e-01 2 -77 + O: 2 230 22 -5.35e-02,-1.09e-01,-1.58e-01,+1.99e-01 1 (nil) + 231 22 -1.50e-01,-2.43e-02,-3.11e-01,+3.46e-01 1 (nil) +Vertex: -78 ID: 0 (X,cT)=-3.66e-05,+5.95e-05,-8.05e-05,+1.08e-04 + I: 1 154 111 -3.37e-01,+5.47e-01,-7.40e-01,+9.89e-01 2 -78 + O: 2 232 22 -2.19e-01,+4.46e-01,-6.11e-01,+7.88e-01 1 (nil) + 233 22 -1.17e-01,+1.01e-01,-1.29e-01,+2.01e-01 1 (nil) +GenVertex: -79 ID: 0 (X,cT):0 + I: 1 157 311 +5.39e-01,-2.99e-01,-4.42e+00,+4.49e+00 2 -79 + O: 1 234 130 +5.39e-01,-2.99e-01,-4.42e+00,+4.49e+00 1 (nil) +Vertex: -80 ID: 0 (X,cT)=+1.61e-05,+7.28e-06,-2.46e-04,+2.47e-04 + I: 1 160 111 +4.80e-01,+2.17e-01,-7.34e+00,+7.36e+00 2 -80 + O: 2 235 22 +2.66e-01,+1.44e-01,-3.31e+00,+3.33e+00 1 (nil) + 236 22 +2.15e-01,+7.28e-02,-4.03e+00,+4.03e+00 1 (nil) +Vertex: -81 ID: 0 (X,cT)=-3.45e-05,-2.11e-05,-7.57e-04,+7.58e-04 + I: 1 164 111 -4.77e-01,-2.92e-01,-1.05e+01,+1.05e+01 2 -81 + O: 2 237 22 -1.85e-01,-4.71e-02,-2.98e+00,+2.99e+00 1 (nil) + 238 22 -2.92e-01,-2.45e-01,-7.48e+00,+7.49e+00 1 (nil) +Vertex: -82 ID: 0 (X,cT)=-9.53e+01,-3.29e+02,-6.28e+03,+6.29e+03 + I: 1 165 3122 -4.69e-01,-1.62e+00,-3.09e+01,+3.09e+01 2 -82 + O: 2 239 2212 -4.74e-01,-1.44e+00,-2.62e+01,+2.62e+01 1 (nil) + 240 -211 +5.01e-03,-1.82e-01,-4.71e+00,+4.71e+00 1 (nil) +Vertex: -83 ID: 0 (X,cT)=-1.49e+00,+1.99e+01,-5.17e+03,+5.17e+03 + I: 1 168 310 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -83 + O: 2 241 -211 -1.84e-01,-3.33e-04,-2.55e+01,+2.55e+01 1 (nil) + 242 211 +1.67e-01,+2.33e-01,-3.49e+01,+3.49e+01 1 (nil) +GenVertex: -84 ID: 0 (X,cT):0 + I: 1 169 -311 -5.45e-01,+2.59e-01,-8.99e+01,+8.99e+01 2 -84 + O: 1 243 130 -5.45e-01,+2.59e-01,-8.99e+01,+8.99e+01 1 (nil) +Vertex: -85 ID: 0 (X,cT)=+5.73e-06,-3.45e-06,-7.31e-03,+7.31e-03 + I: 1 174 111 +2.54e-01,-1.53e-01,-3.24e+02,+3.24e+02 2 -85 + O: 2 244 22 +1.63e-01,-5.83e-02,-2.39e+02,+2.39e+02 1 (nil) + 245 22 +9.09e-02,-9.45e-02,-8.53e+01,+8.53e+01 1 (nil) +Vertex: -86 ID: 0 (X,cT)=+4.34e-06,-1.51e-06,-7.14e-03,+7.14e-03 + I: 1 176 111 +1.84e-01,-6.41e-02,-3.04e+02,+3.04e+02 2 -86 + O: 2 246 22 +3.56e-02,-7.99e-02,-1.18e+02,+1.18e+02 1 (nil) + 247 22 +1.49e-01,+1.58e-02,-1.86e+02,+1.86e+02 1 (nil) +Vertex: -87 ID: 0 (X,cT)=+7.08e-05,+6.51e-05,-1.28e-01,+1.28e-01 + I: 1 179 111 +2.98e-01,+2.74e-01,-5.41e+02,+5.41e+02 2 -87 + O: 2 248 22 +1.81e-01,+2.40e-01,-4.18e+02,+4.18e+02 1 (nil) + 249 22 +1.17e-01,+3.44e-02,-1.23e+02,+1.23e+02 1 (nil) +Vertex: -88 ID: 0 (X,cT)=-6.24e-07,-3.92e-05,+4.48e-03,+4.48e-03 + I: 1 184 111 -2.63e-03,-1.65e-01,+1.89e+01,+1.89e+01 2 -88 + O: 2 250 22 -1.32e-02,-1.02e-02,+2.51e-01,+2.52e-01 1 (nil) + 251 22 +1.06e-02,-1.55e-01,+1.86e+01,+1.86e+01 1 (nil) +Vertex: -89 ID: 0 (X,cT)=+1.36e-04,+4.24e-05,+3.24e-03,+3.24e-03 + I: 1 191 111 +5.32e-01,+1.66e-01,+1.27e+01,+1.27e+01 2 -89 + O: 2 252 22 +1.83e-01,+1.10e-01,+5.73e+00,+5.73e+00 1 (nil) + 253 22 +3.49e-01,+5.63e-02,+6.96e+00,+6.97e+00 1 (nil) +Vertex: -90 ID: 0 (X,cT)=+3.53e-05,+9.71e-06,-6.05e-05,+1.41e-04 + I: 1 196 111 +3.92e-02,+1.08e-02,-6.72e-02,+1.56e-01 2 -90 + O: 2 254 22 +7.69e-02,+3.56e-02,-7.15e-02,+1.11e-01 1 (nil) + 255 22 -3.77e-02,-2.48e-02,+4.24e-03,+4.53e-02 1 (nil) +Vertex: -91 ID: 0 (X,cT)=+4.08e-05,+6.79e-06,-1.10e-04,+1.18e-04 + I: 1 198 111 +4.58e-01,+7.63e-02,-1.24e+00,+1.33e+00 2 -91 + O: 2 256 22 +1.21e-01,-3.91e-02,-3.40e-01,+3.63e-01 1 (nil) + 257 22 +3.37e-01,+1.15e-01,-8.96e-01,+9.65e-01 1 (nil) +Vertex: -92 ID: 0 (X,cT)=+5.61e-06,-8.66e-06,-6.40e-05,+6.49e-05 + I: 1 203 111 +1.70e-01,-2.62e-01,-1.93e+00,+1.96e+00 2 -92 + O: 3 258 22 +3.78e-02,-1.90e-02,-5.69e-01,+5.70e-01 1 (nil) + 259 11 +1.27e-01,-2.18e-01,-1.21e+00,+1.24e+00 1 (nil) + 260 -11 +4.80e-03,-2.48e-02,-1.54e-01,+1.56e-01 1 (nil) +Vertex: -93 ID: 0 (X,cT)=-1.44e+01,+6.94e+00,+7.21e+02,+7.22e+02 + I: 1 206 310 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -93 + O: 2 261 111 +9.20e-02,+1.32e-01,+2.25e+00,+2.26e+00 2 -97 + 262 111 -2.57e-01,-5.26e-02,+6.00e+00,+6.01e+00 2 -98 +Vertex: -94 ID: 0 (X,cT)=-7.78e+00,+1.06e+01,+1.70e+03,+1.70e+03 + I: 1 207 310 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -94 + O: 2 263 111 -2.89e-01,+1.56e-01,+3.66e+01,+3.66e+01 2 -99 + 264 111 +8.17e-02,+1.26e-01,+8.62e+00,+8.62e+00 2 -100 +Vertex: -95 ID: 0 (X,cT)=-1.37e+01,-6.92e+00,-2.33e+00,+2.17e+01 + I: 1 212 310 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -95 + O: 2 266 -211 -1.52e-01,-1.35e-01,-2.31e-01,+3.38e-01 1 (nil) + 265 211 -2.95e-01,-9.17e-02,+1.55e-01,+3.73e-01 1 (nil) +Vertex: -96 ID: 0 (X,cT)=+5.58e+00,+4.38e+01,+1.48e+02,+1.60e+02 + I: 1 217 310 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -96 + O: 2 267 111 +1.60e-01,+1.55e-01,+1.10e+00,+1.13e+00 2 -101 + 268 111 -9.38e-02,+3.66e-01,+6.60e-01,+7.72e-01 2 -102 +Vertex: -97 ID: 0 (X,cT)=-1.44e+01,+6.94e+00,+7.21e+02,+7.22e+02 + I: 1 261 111 +9.20e-02,+1.32e-01,+2.25e+00,+2.26e+00 2 -97 + O: 2 269 22 +1.66e-02,-2.70e-02,+2.39e-01,+2.41e-01 1 (nil) + 270 22 +7.54e-02,+1.59e-01,+2.02e+00,+2.02e+00 1 (nil) +Vertex: -98 ID: 0 (X,cT)=-1.44e+01,+6.94e+00,+7.21e+02,+7.22e+02 + I: 1 262 111 -2.57e-01,-5.26e-02,+6.00e+00,+6.01e+00 2 -98 + O: 2 271 22 -7.17e-02,-3.17e-02,+3.25e+00,+3.25e+00 1 (nil) + 272 22 -1.85e-01,-2.09e-02,+2.76e+00,+2.76e+00 1 (nil) +Vertex: -99 ID: 0 (X,cT)=-7.78e+00,+1.06e+01,+1.70e+03,+1.70e+03 + I: 1 263 111 -2.89e-01,+1.56e-01,+3.66e+01,+3.66e+01 2 -99 + O: 2 273 22 -9.96e-02,+2.50e-02,+6.20e+00,+6.20e+00 1 (nil) + 274 22 -1.90e-01,+1.31e-01,+3.04e+01,+3.04e+01 1 (nil) +Vertex: -100 ID: 0 (X,cT)=-7.78e+00,+1.06e+01,+1.70e+03,+1.70e+03 + I: 1 264 111 +8.17e-02,+1.26e-01,+8.62e+00,+8.62e+00 2 -100 + O: 2 275 22 +7.76e-02,+2.39e-03,+3.60e+00,+3.60e+00 1 (nil) + 276 22 +4.09e-03,+1.24e-01,+5.01e+00,+5.02e+00 1 (nil) +Vertex: -101 ID: 0 (X,cT)=+5.58e+00,+4.38e+01,+1.48e+02,+1.60e+02 + I: 1 267 111 +1.60e-01,+1.55e-01,+1.10e+00,+1.13e+00 2 -101 + O: 2 277 22 +1.49e-01,+9.93e-02,+5.70e-01,+5.98e-01 1 (nil) + 278 22 +1.13e-02,+5.56e-02,+5.29e-01,+5.32e-01 1 (nil) +Vertex: -102 ID: 0 (X,cT)=+5.58e+00,+4.38e+01,+1.48e+02,+1.60e+02 + I: 1 268 111 -9.38e-02,+3.66e-01,+6.60e-01,+7.72e-01 2 -102 + O: 2 280 22 -2.77e-02,+3.15e-01,+4.91e-01,+5.84e-01 1 (nil) + 279 22 -6.60e-02,+5.16e-02,+1.69e-01,+1.89e-01 1 (nil) +________________________________________________________________________________ +Stage 0->1 : 0 hits found in the muon chamber. +++++++++ event aborted +>>> Event 2 + 0 hits are stored in ExN04TrackerHitsCollection. + 0 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0 (GeV) + 0 hits are stored in ExN04MuonHitsCollection. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.in b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.in new file mode 100644 index 0000000000..3881261753 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.in @@ -0,0 +1,7 @@ +/mydet/RoIangle 10 deg +/mydet/reqmuon 1 +/mydet/isomuon 1 +/control/execute pyset.mac +/run/beamOn 5 +/generator/pythia/pystat 1 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out new file mode 100644 index 0000000000..3c23960d50 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out @@ -0,0 +1,224 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) + Copyright : Geant4 Collaboration +********************************************** + +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created + +compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. + Scattered gamma energy according Klein-Nishina. + PhysicsTables from 1 keV to 100 GeV in 80 bins. + +conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. + e+e- energies according Bethe-Heitler + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. + +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. + +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. + +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. + +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: 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. + +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. + +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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 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. +current generator type: pythia +1 + ****************************************************************************** + ****************************************************************************** + ** ** + ** ** + ** *......* Welcome to the Lund Monte Carlo! ** + ** *:::!!:::::::::::* ** + ** *::::::!!::::::::::::::* PPP Y Y TTTTT H H III A ** + ** *::::::::!!::::::::::::::::* P P Y Y T H H I A A ** + ** *:::::::::!!:::::::::::::::::* PPP Y T HHHHH I AAAAA ** + ** *:::::::::!!:::::::::::::::::* P Y T H H I A A ** + ** *::::::::!!::::::::::::::::*! P Y T H H III A A ** + ** *::::::!!::::::::::::::* !! ** + ** !! *:::!!:::::::::::* !! This is PYTHIA version 6.205 ** + ** !! !* -><- * !! Last date of change: 1 Mar 2002 ** + ** !! !! !! ** + ** !! !! !! Now is 0 Jan 2000 at 0:00:00 ** + ** !! !! ** + ** !! lh !! Disclaimer: this program comes ** + ** !! !! without any guarantees. Beware ** + ** !! hh !! of errors and use common sense ** + ** !! ll !! when interpreting results. ** + ** !! !! ** + ** !! Copyright T. Sjostrand (2001) ** + ** ** + ** An archive of program versions and documentation is found on the web: ** + ** http://www.thep.lu.se/~torbjorn/Pythia.html ** + ** ** + ** When you cite this program, currently the official reference is ** + ** T. Sjostrand, P. Eden, C. Friberg, L. Lonnblad, G. Miu, S. Mrenna and ** + ** E. Norrbin, Computer Physics Commun. 135 (2001) 238. ** + ** The large manual is ** + ** T. Sjostrand, L. Lonnblad and S. Mrenna, LU TP 01-21 [hep-ph/0108264]. ** + ** Also remember that the program, to a large extent, represents original ** + ** physics research. Other publications of special relevance to your ** + ** studies may therefore deserve separate mention. ** + ** ** + ** Main author: Torbjorn Sjostrand; Department of Theoretical Physics 2, ** + ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** + ** phone: + 46 - 46 - 222 48 16; e-mail: torbjorn@thep.lu.se ** + ** Author: Leif Lonnblad; Department of Theoretical Physics 2, ** + ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** + ** phone: + 46 - 46 - 222 77 80; e-mail: leif@thep.lu.se ** + ** Author: Stephen Mrenna; Computing Division, Simulations Group, ** + ** Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA; ** + ** phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov ** + ** Author: Peter Skands; Department of Theoretical Physics 2, ** + ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** + ** phone: + 46 - 46 - 222 31 92; e-mail: zeiler@thep.lu.se ** + ** ** + ** ** + ****************************************************************************** + ****************************************************************************** + PMAS(6,1) changed from 175.00000 to 174.30000 + PMAS(25,1) changed from 115.00000 to 200.00000 + MSEL changed from 1 to 0 + MSUB(102) changed from 0 to 1 + MSUB(123) changed from 0 to 1 + MSUB(124) changed from 0 to 1 + MDME(210,1) changed from 1 to 0 + MDME(211,1) changed from 1 to 0 + MDME(212,1) changed from 1 to 0 + MDME(213,1) changed from 1 to 0 + MDME(214,1) changed from 1 to 0 + MDME(215,1) changed from 1 to 0 + MDME(218,1) changed from 1 to 0 + MDME(219,1) changed from 1 to 0 + MDME(220,1) changed from 1 to 0 + MDME(222,1) changed from 1 to 0 + MDME(223,1) changed from 1 to 0 + MDME(224,1) changed from 1 to 0 + MDME(225,1) changed from 1 to 1 + MDME(226,1) changed from 1 to 0 + MDME(216,1) changed from -1 to -1 + MDME(217,1) changed from -1 to -1 + MDME(218,1) changed from 0 to -1 + MDME(174,1) changed from 1 to 0 + MDME(175,1) changed from 1 to 0 + MDME(176,1) changed from 1 to 0 + MDME(177,1) changed from 1 to 0 + MDME(178,1) changed from 1 to 0 + MDME(179,1) changed from 1 to 0 + MDME(182,1) changed from 1 to 0 + MDME(183,1) changed from 1 to 0 + MDME(184,1) changed from 1 to 1 + MDME(185,1) changed from 1 to 0 + MDME(186,1) changed from 1 to 0 + MDME(187,1) changed from 1 to 0 + MDME(180,1) changed from -1 to -1 + MDME(181,1) changed from -1 to -1 + MDME(188,1) changed from -1 to -1 + MDME(189,1) changed from -1 to -1 + MSTP(61) changed from 2 to 1 + MSTP(71) changed from 1 to 1 + MSTP(81) changed from 1 to 1 + MSTP(111) changed from 1 to 1 +1****************** PYINIT: initialization of PYTHIA routines ***************** + + ============================================================================== + I I + I PYTHIA will be initialized for a p on p collider I + I at 14000.000 GeV center-of-mass energy I + I I + ============================================================================== + + ******** PYMAXI: summary of differential cross-section maximum search ******** + + ========================================================== + I I I + I ISUB Subprocess name I Maximum value I + I I I + ========================================================== + I I I + I 96 Semihard QCD 2 -> 2 I 1.8679E+03 I + I 102 g + g -> h0 I 5.1617E-12 I + I 123 f + f' -> f + f' + h0 I 4.0000E-12 I + I 124 f + f' -> f" + f"' + h0 I 8.9419E-12 I + I I I + ========================================================== + + ********************** PYINIT: initialization completed ********************** +Stage 0->1 : 1 hits found in the muon chamber. +Stage 1->2 : 1 isolated muon found. +>>> Event 0 + 107 hits are stored in ExN04TrackerHitsCollection. + 62 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.997834 (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 + 203 hits are stored in ExN04TrackerHitsCollection. + 74 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 1.21037 (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 2 + 147 hits are stored in ExN04TrackerHitsCollection. + 95 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 1.49571 (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 3 + 108 hits are stored in ExN04TrackerHitsCollection. + 78 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 1.01149 (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 4 + 367 hits are stored in ExN04TrackerHitsCollection. + 136 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 2.04765 (GeV) + 1 hits are stored in ExN04MuonHitsCollection. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh new file mode 100644 index 0000000000..3b902165ba --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * 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 ExN04CalorimeterHit_h +#define ExN04CalorimeterHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +class ExN04CalorimeterHit : public G4VHit +{ + public: + + ExN04CalorimeterHit(); + ExN04CalorimeterHit(G4LogicalVolume* logVol,G4int z,G4int phi); + ~ExN04CalorimeterHit(); + ExN04CalorimeterHit(const ExN04CalorimeterHit &right); + const ExN04CalorimeterHit& operator=(const ExN04CalorimeterHit &right); + int operator==(const ExN04CalorimeterHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + void Draw(); + void Print(); + + private: + G4int ZCellID; + G4int PhiCellID; + G4double edep; + G4ThreeVector pos; + G4RotationMatrix rot; + const G4LogicalVolume* pLogV; + + public: + inline void SetCellID(G4int z,G4int phi) + { + ZCellID = z; + PhiCellID = phi; + } + inline G4int GetZ() { return ZCellID; } + inline G4int GetPhi() { return PhiCellID; } + inline void SetEdep(G4double de) + { edep = de; } + inline void AddEdep(G4double de) + { edep += de; } + inline G4double GetEdep() + { return edep; } + inline void SetPos(G4ThreeVector xyz) + { pos = xyz; } + inline G4ThreeVector GetPos() + { return pos; } + inline void SetRot(G4RotationMatrix rmat) + { rot = rmat; } + inline G4RotationMatrix GetRot() + { return rot; } + inline const G4LogicalVolume * GetLogV() + { return pLogV; } + +}; + +typedef G4THitsCollection ExN04CalorimeterHitsCollection; + +extern G4Allocator ExN04CalorimeterHitAllocator; + +inline void* ExN04CalorimeterHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04CalorimeterHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04CalorimeterHit::operator delete(void *aHit) +{ + ExN04CalorimeterHitAllocator.FreeSingle((ExN04CalorimeterHit*) aHit); +} + +#endif + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh new file mode 100644 index 0000000000..bfab08a8f8 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh @@ -0,0 +1,53 @@ +// +// ******************************************************************** +// * 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 ExN04CalorimeterParametrisation_H +#define ExN04CalorimeterParametrisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Tubs; + +class ExN04CalorimeterParametrisation : public G4VPVParameterisation +{ + public: + + ExN04CalorimeterParametrisation(); + virtual ~ExN04CalorimeterParametrisation(); + void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume *physVol) const; + void ComputeDimensions( G4Tubs & calorimeterLayer, + const G4int copyNo, + const G4VPhysicalVolume * physVol) const; + + private: + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterROGeometry.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterROGeometry.hh new file mode 100644 index 0000000000..b48798df80 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterROGeometry.hh @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * 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 ExN04CalorimeterROGeometry_h +#define ExN04CalorimeterROGeometry_h 1 + +#include "G4VReadOutGeometry.hh" + +class ExN04CalorimeterROGeometry : public G4VReadOutGeometry +{ +public: + ExN04CalorimeterROGeometry(); + ExN04CalorimeterROGeometry(G4String); + ~ExN04CalorimeterROGeometry(); + +private: + G4VPhysicalVolume* Build(); + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterSD.hh similarity index 74% rename from examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterSD.hh index 2a364f3cc5..32c01e0383 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerSD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterSD.hh @@ -20,27 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: PersEx02TrackerSD.hh,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef PersEx02TrackerSD_h -#define PersEx02TrackerSD_h 1 +#ifndef ExN04CalorimeterSD_h +#define ExN04CalorimeterSD_h 1 #include "G4VSensitiveDetector.hh" -#include "PersEx02TrackerHitsCollection.hh" -#include "G4Step.hh" -#include "HepODBMS/odbms/HepODBMS.h" +#include "ExN04CalorimeterHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; -class G4PersistentHitMan; - -class PersEx02TrackerSD : public G4VSensitiveDetector +class ExN04CalorimeterSD : public G4VSensitiveDetector { public: - PersEx02TrackerSD(G4String name); - ~PersEx02TrackerSD(); + ExN04CalorimeterSD(G4String name); + ~ExN04CalorimeterSD(); void Initialize(G4HCofThisEvent*HCE); G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); @@ -50,11 +45,14 @@ class PersEx02TrackerSD : public G4VSensitiveDetector void PrintAll(); private: - G4PersistentHitMan* f_hitMan; - HepRef(PersEx02TrackerHitsCollection) EvenCollection; - HepRef(PersEx02TrackerHitsCollection) OddCollection; - HepContainerRef hitContainer; + ExN04CalorimeterHitsCollection *CalCollection; + int CellID[20][48]; + const int numberOfCellsInZ; + const int numberOfCellsInPhi; }; + + + #endif diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh similarity index 84% rename from examples/extended/persistency/PersistentEx01/include/PersEx01DetectorConstruction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh index f5f282e819..3601f184e5 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh @@ -21,21 +21,27 @@ // ******************************************************************** // -#ifndef PersEx01DetectorConstruction_h -#define PersEx01DetectorConstruction_h 1 +#ifndef ExN04DetectorConstruction_h +#define ExN04DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" #include "globals.hh" -class PersEx01DetectorConstruction : public G4VUserDetectorConstruction +class G4VPhysicalVolume; + +class ExN04DetectorConstruction : public G4VUserDetectorConstruction { public: - PersEx01DetectorConstruction(); - ~PersEx01DetectorConstruction(); + ExN04DetectorConstruction(); + ~ExN04DetectorConstruction(); public: G4VPhysicalVolume* Construct(); + private: + +#include "ExN04DetectorParameterDef.hh" + }; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorParameterDef.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorParameterDef.hh new file mode 100644 index 0000000000..d26e656d67 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorParameterDef.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. * +// ******************************************************************** +// + + G4double expHall_x; + G4double expHall_y; + G4double expHall_z; + + G4double trkTubs_rmax; + G4double trkTubs_rmin; + G4double trkTubs_dz; + G4double trkTubs_sphi; + G4double trkTubs_dphi; + + G4int notrkLayers; + G4double tracker_radius[5]; + G4double tracker_thick; + G4double tracker_length[5]; + + G4double caloTubs_rmax; + G4double caloTubs_rmin; + G4double caloTubs_dz; + G4double caloTubs_sphi; + G4double caloTubs_dphi; + + G4int nocaloLayers; + G4double absorber_thick; + G4double scinti_thick; + + G4int segmentsinZ; + G4double caloRing_rmax; + G4double caloRing_rmin; + G4double caloRing_dz; + G4double caloRing_sphi; + G4double caloRing_dphi; + + G4int segmentsinPhi; + G4double caloCell_rmax; + G4double caloCell_rmin; + G4double caloCell_dz; + G4double caloCell_sphi; + G4double caloCell_dphi; + + G4int nomucounter; + G4double muBox_radius; + G4double muBox_width; + G4double muBox_thick; + G4double muBox_length; + + diff --git a/examples/extended/biasing/B01/include/B01Scorer.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh similarity index 72% rename from examples/extended/biasing/B01/include/B01Scorer.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh index 37d5e2508b..eeed0dd0df 100644 --- a/examples/extended/biasing/B01/include/B01Scorer.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh @@ -21,33 +21,30 @@ // ******************************************************************** // // -// $Id: B01Scorer.hh,v 1.3 2002/04/19 10:54:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// Dummy sensitive used only to flag sensitivity +// in cells of RO geometry. // -#ifndef B01scorer_hh -#define B01scorer_hh B01scorer_hh - -#include "g4std/iostream" - -#include "G4VPScorer.hh" -#include "G4PMapPtkTallys.hh" +#ifndef ExN04DummySD_h +#define ExN04DummySD_h 1 +#include "G4VSensitiveDetector.hh" class G4Step; -class G4PStep; -class B01Scorer : public G4VPScorer +class ExN04DummySD : public G4VSensitiveDetector { public: - B01Scorer(); - ~B01Scorer(); - void Score(const G4Step &aStep, const G4PStep &aPStep); - const G4PMapPtkTallys &GetMapPtkTallys() const { return fPtkTallys; } - -private: - G4PMapPtkTallys fPtkTallys; + ExN04DummySD(); + ~ExN04DummySD() {}; + + void Initialize(G4HCofThisEvent*HCE) {}; + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} + void EndOfEvent(G4HCofThisEvent*HCE) {}; + void clear() {}; + void DrawAll() {}; + void PrintAll() {}; }; - -G4std::ostream& operator<<(G4std::ostream &out, const B01Scorer &ps); - +ExN04DummySD::ExN04DummySD() + : G4VSensitiveDetector("dummySD") +{} #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh new file mode 100644 index 0000000000..c9955372fc --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: ExN04EMPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef ExN04EMPhysics_h +#define ExN04EMPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4MultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +class ExN04EMPhysics : public G4VPhysicsConstructor +{ + public: + ExN04EMPhysics(const G4String& name ="EM"); + virtual ~ExN04EMPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Gamma physics + G4PhotoElectricEffect thePhotoEffect; + G4ComptonScattering theComptonEffect; + G4GammaConversion thePairProduction; + + // Electron physics + G4MultipleScattering theElectronMultipleScattering; + G4eIonisation theElectronIonisation; + G4eBremsstrahlung theElectronBremsStrahlung; + + //Positron physics + G4MultipleScattering thePositronMultipleScattering; + G4eIonisation thePositronIonisation; + G4eBremsstrahlung thePositronBremsStrahlung; + G4eplusAnnihilation theAnnihilation; +}; + + +#endif + + + + + diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01EventAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EventAction.hh similarity index 82% rename from examples/extended/persistency/PersistentEx01/include/PersEx01EventAction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EventAction.hh index 334902746d..96b251bcdb 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01EventAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EventAction.hh @@ -21,25 +21,26 @@ // ******************************************************************** // -#ifndef PersEx01EventAction_h -#define PersEx01EventAction_h 1 +#ifndef ExN04EventAction_h +#define ExN04EventAction_h 1 #include "G4UserEventAction.hh" #include "globals.hh" -class PersEx01EventAction : public G4UserEventAction +class ExN04EventAction : public G4UserEventAction { public: - PersEx01EventAction(); - virtual ~PersEx01EventAction(); + ExN04EventAction(); + ~ExN04EventAction(); public: - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); private: - G4int colID1; - G4int colID2; + G4int trackerCollID; + G4int calorimeterCollID; + G4int muonCollID; }; #endif diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04Field.hh similarity index 82% rename from examples/extended/persistency/PersistentEx01/include/PersEx01RunAction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04Field.hh index c25de26647..efa14063d0 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01RunAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04Field.hh @@ -21,25 +21,25 @@ // ******************************************************************** // -#ifndef PersEx01RunAction_h -#define PersEx01RunAction_h 1 +#ifndef ExN04Field_H +#define ExN04Field_H 1 -#include "G4UserRunAction.hh" #include "globals.hh" +#include "G4MagneticField.hh" -class G4Run; - -class PersEx01RunAction : public G4UserRunAction +class ExN04Field : public G4MagneticField { public: - PersEx01RunAction(); - virtual ~PersEx01RunAction(); + ExN04Field(); + ~ExN04Field(); - public: - virtual void BeginOfRunAction(const G4Run* aRun); - virtual void EndOfRunAction(const G4Run* aRun); + void GetFieldValue( const double Point[3], + double *Bfield ) const; private: + G4double Bz; + G4double rmax_sq; + G4double zmax; }; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh new file mode 100644 index 0000000000..443bc1be7a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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: ExN04GeneralPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef ExN04GeneralPhysics_h +#define ExN04GeneralPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + + +#include "G4Decay.hh" + +class ExN04GeneralPhysics : public G4VPhysicsConstructor +{ + public: + ExN04GeneralPhysics(const G4String& name = "general"); + virtual ~ExN04GeneralPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + G4Decay fDecayProcess; +}; + + +#endif + + + + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh new file mode 100644 index 0000000000..1d1e57224d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh @@ -0,0 +1,337 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +//======================== +// taken from example N04 of G4 distribution +//======================== +#ifndef ExN04HadronPhysics_h +#define ExN04HadronPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/vector" + +#include "G4VPhysicsConstructor.hh" + +#include "G4MultipleScattering.hh" +#include "G4hIonisation.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" + +#include "G4PionPlusInelasticProcess.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4KaonPlusInelasticProcess.hh" +#include "G4KaonZeroSInelasticProcess.hh" +#include "G4KaonZeroLInelasticProcess.hh" +#include "G4KaonMinusInelasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4AntiNeutronInelasticProcess.hh" +#include "G4LambdaInelasticProcess.hh" +#include "G4AntiLambdaInelasticProcess.hh" +#include "G4SigmaPlusInelasticProcess.hh" +#include "G4SigmaMinusInelasticProcess.hh" +#include "G4AntiSigmaPlusInelasticProcess.hh" +#include "G4AntiSigmaMinusInelasticProcess.hh" +#include "G4XiZeroInelasticProcess.hh" +#include "G4XiMinusInelasticProcess.hh" +#include "G4AntiXiZeroInelasticProcess.hh" +#include "G4AntiXiMinusInelasticProcess.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4OmegaMinusInelasticProcess.hh" +#include "G4AntiOmegaMinusInelasticProcess.hh" + +// Low-energy Models +#include "G4LElastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" + +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4LEKaonPlusInelastic.hh" +#include "G4LEKaonZeroSInelastic.hh" +#include "G4LEKaonZeroLInelastic.hh" +#include "G4LEKaonMinusInelastic.hh" +#include "G4LEProtonInelastic.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LEAntiNeutronInelastic.hh" +#include "G4LELambdaInelastic.hh" +#include "G4LEAntiLambdaInelastic.hh" +#include "G4LESigmaPlusInelastic.hh" +#include "G4LESigmaMinusInelastic.hh" +#include "G4LEAntiSigmaPlusInelastic.hh" +#include "G4LEAntiSigmaMinusInelastic.hh" +#include "G4LEXiZeroInelastic.hh" +#include "G4LEXiMinusInelastic.hh" +#include "G4LEAntiXiZeroInelastic.hh" +#include "G4LEAntiXiMinusInelastic.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4LETritonInelastic.hh" +#include "G4LEAlphaInelastic.hh" +#include "G4LEOmegaMinusInelastic.hh" +#include "G4LEAntiOmegaMinusInelastic.hh" + +// High-energy Models + +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4HEKaonPlusInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonMinusInelastic.hh" +#include "G4HEProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4HENeutronInelastic.hh" +#include "G4HEAntiNeutronInelastic.hh" +#include "G4HELambdaInelastic.hh" +#include "G4HEAntiLambdaInelastic.hh" +#include "G4HESigmaPlusInelastic.hh" +#include "G4HESigmaMinusInelastic.hh" +#include "G4HEAntiSigmaPlusInelastic.hh" +#include "G4HEAntiSigmaMinusInelastic.hh" +#include "G4HEXiZeroInelastic.hh" +#include "G4HEXiMinusInelastic.hh" +#include "G4HEAntiXiZeroInelastic.hh" +#include "G4HEAntiXiMinusInelastic.hh" +#include "G4HEOmegaMinusInelastic.hh" +#include "G4HEAntiOmegaMinusInelastic.hh" + +// Stopping processes +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4AntiNeutronAnnihilationAtRest.hh" + +#ifdef TRIUMF_STOP_PIMINUS +#include "G4PionMinusAbsorptionAtRest.hh" +#else +#include "G4PiMinusAbsorptionAtRest.hh" +#endif +#ifdef TRIUMF_STOP_KMINUS +#include "G4KaonMinusAbsorption.hh" +#else +#include "G4KaonMinusAbsorptionAtRest.hh" +#endif + +// quark gluon string model with chips afterburner. +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +class ExN04HadronPhysics : public G4VPhysicsConstructor +{ + public: + ExN04HadronPhysics(const G4String& name ="hadron"); + virtual ~ExN04HadronPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Elastic Process + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; + + // Pi + + G4PionPlusInelasticProcess thePionPlusInelastic; + G4LEPionPlusInelastic* theLEPionPlusModel; + G4MultipleScattering thePionPlusMult; + G4hIonisation thePionPlusIonisation; + + // Pi - + G4PionMinusInelasticProcess thePionMinusInelastic; + G4LEPionMinusInelastic* theLEPionMinusModel; + G4MultipleScattering thePionMinusMult; + G4hIonisation thePionMinusIonisation; +#ifdef TRIUMF_STOP_PIMINUS + G4PionMinusAbsorptionAtRest thePionMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest thePionMinusAbsorption; +#endif + + // pi+ and pi- + + G4TheoFSGenerator theTheoModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + + // K + + G4KaonPlusInelasticProcess theKaonPlusInelastic; + G4LEKaonPlusInelastic* theLEKaonPlusModel; + G4HEKaonPlusInelastic* theHEKaonPlusModel; + G4MultipleScattering theKaonPlusMult; + G4hIonisation theKaonPlusIonisation; + + // K - + G4KaonMinusInelasticProcess theKaonMinusInelastic; + G4LEKaonMinusInelastic* theLEKaonMinusModel; + G4HEKaonMinusInelastic* theHEKaonMinusModel; + G4MultipleScattering theKaonMinusMult; + G4hIonisation theKaonMinusIonisation; +#ifdef TRIUMF_STOP_KMINUS + G4KaonMinusAbsorption theKaonMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest theKaonMinusAbsorption; +#endif + + // K0L + G4KaonZeroLInelasticProcess theKaonZeroLInelastic; + G4LEKaonZeroLInelastic* theLEKaonZeroLModel; + G4HEKaonZeroInelastic* theHEKaonZeroLModel; + + // K0S + G4KaonZeroSInelasticProcess theKaonZeroSInelastic; + G4LEKaonZeroSInelastic* theLEKaonZeroSModel; + G4HEKaonZeroInelastic* theHEKaonZeroSModel; + + // Proton + G4ProtonInelasticProcess theProtonInelastic; + G4LEProtonInelastic* theLEProtonModel; + G4HEProtonInelastic* theHEProtonModel; + G4MultipleScattering theProtonMult; + G4hIonisation theProtonIonisation; + + // anti-proton + G4AntiProtonInelasticProcess theAntiProtonInelastic; + G4LEAntiProtonInelastic* theLEAntiProtonModel; + G4HEAntiProtonInelastic* theHEAntiProtonModel; + G4MultipleScattering theAntiProtonMult; + G4hIonisation theAntiProtonIonisation; + G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation; + + // neutron + G4NeutronInelasticProcess theNeutronInelastic; + G4LENeutronInelastic* theLENeutronModel; + G4HENeutronInelastic* theHENeutronModel; + G4HadronFissionProcess theNeutronFission; + G4LFission* theNeutronFissionModel; + G4HadronCaptureProcess theNeutronCapture; + G4LCapture* theNeutronCaptureModel; + + + // anti-neutron + G4AntiNeutronInelasticProcess theAntiNeutronInelastic; + G4LEAntiNeutronInelastic* theLEAntiNeutronModel; + G4HEAntiNeutronInelastic* theHEAntiNeutronModel; + G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation; + + // Lambda + G4LambdaInelasticProcess theLambdaInelastic; + G4LELambdaInelastic* theLELambdaModel; + G4HELambdaInelastic* theHELambdaModel; + + // AntiLambda + G4AntiLambdaInelasticProcess theAntiLambdaInelastic; + G4LEAntiLambdaInelastic* theLEAntiLambdaModel; + G4HEAntiLambdaInelastic* theHEAntiLambdaModel; + + // SigmaMinus + G4SigmaMinusInelasticProcess theSigmaMinusInelastic; + G4LESigmaMinusInelastic* theLESigmaMinusModel; + G4HESigmaMinusInelastic* theHESigmaMinusModel; + G4MultipleScattering theSigmaMinusMult; + G4hIonisation theSigmaMinusIonisation; + + // AntiSigmaMinus + G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic; + G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel; + G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel; + G4MultipleScattering theAntiSigmaMinusMult; + G4hIonisation theAntiSigmaMinusIonisation; + + // SigmaPlus + G4SigmaPlusInelasticProcess theSigmaPlusInelastic; + G4LESigmaPlusInelastic* theLESigmaPlusModel; + G4HESigmaPlusInelastic* theHESigmaPlusModel; + G4MultipleScattering theSigmaPlusMult; + G4hIonisation theSigmaPlusIonisation; + + // AntiSigmaPlus + G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic; + G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel; + G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel; + G4MultipleScattering theAntiSigmaPlusMult; + G4hIonisation theAntiSigmaPlusIonisation; + + // XiZero + G4XiZeroInelasticProcess theXiZeroInelastic; + G4LEXiZeroInelastic* theLEXiZeroModel; + G4HEXiZeroInelastic* theHEXiZeroModel; + + // AntiXiZero + G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic; + G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel; + G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel; + + // XiMinus + G4XiMinusInelasticProcess theXiMinusInelastic; + G4LEXiMinusInelastic* theLEXiMinusModel; + G4HEXiMinusInelastic* theHEXiMinusModel; + G4MultipleScattering theXiMinusMult; + G4hIonisation theXiMinusIonisation; + + // AntiXiMinus + G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic; + G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel; + G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel; + G4MultipleScattering theAntiXiMinusMult; + G4hIonisation theAntiXiMinusIonisation; + + // OmegaMinus + G4OmegaMinusInelasticProcess theOmegaMinusInelastic; + G4LEOmegaMinusInelastic* theLEOmegaMinusModel; + G4HEOmegaMinusInelastic* theHEOmegaMinusModel; + G4MultipleScattering theOmegaMinusMult; + G4hIonisation theOmegaMinusIonisation; + + // AntiOmegaMinus + G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic; + G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel; + G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel; + G4MultipleScattering theAntiOmegaMinusMult; + G4hIonisation theAntiOmegaMinusIonisation; + + +}; + + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh new file mode 100644 index 0000000000..32573758bd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: ExN04IonPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef ExN04IonPhysics_h +#define ExN04IonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4LElastic.hh" + +#include "G4DeuteronInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" + +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" + +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" + +class ExN04IonPhysics : public G4VPhysicsConstructor +{ + public: + ExN04IonPhysics(const G4String& name="ion"); + virtual ~ExN04IonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Elastic Process + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; + + // Generic Ion physics + G4MultipleScattering fIonMultipleScattering; + G4hIonisation fIonIonisation; + + // Deuteron physics + G4MultipleScattering fDeuteronMultipleScattering; + G4hIonisation fDeuteronIonisation; + G4DeuteronInelasticProcess fDeuteronProcess; + G4LEDeuteronInelastic* fDeuteronModel; + + // Triton physics + G4MultipleScattering fTritonMultipleScattering; + G4hIonisation fTritonIonisation; + G4TritonInelasticProcess fTritonProcess; + G4LETritonInelastic* fTritonModel; + + // Alpha physics + G4MultipleScattering fAlphaMultipleScattering; + G4hIonisation fAlphaIonisation; + G4AlphaInelasticProcess fAlphaProcess; + G4LEAlphaInelastic* fAlphaModel; + + // He3 physics + G4MultipleScattering fHe3MultipleScattering; + G4hIonisation fHe3Ionisation; + +}; + + +#endif + diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01TrackerHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh similarity index 69% rename from examples/extended/persistency/PersistentEx01/include/PersEx01TrackerHit.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh index 943fad05cc..2b6607cf81 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01TrackerHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh @@ -21,23 +21,24 @@ // ******************************************************************** // -#ifndef PersEx01TrackerHit_h -#define PersEx01TrackerHit_h 1 +#ifndef ExN04MuonHit_h +#define ExN04MuonHit_h 1 #include "G4VHit.hh" #include "G4THitsCollection.hh" -#include "G4Allocator.hh" +#include "G4Allocator.hh" #include "G4ThreeVector.hh" -class PersEx01TrackerHit : public G4VHit +class ExN04MuonHit : public G4VHit { public: - PersEx01TrackerHit(); - ~PersEx01TrackerHit(); - PersEx01TrackerHit(const PersEx01TrackerHit &right); - const PersEx01TrackerHit& operator=(const PersEx01TrackerHit &right); - int operator==(const PersEx01TrackerHit &right) const; + ExN04MuonHit(); + ~ExN04MuonHit(); + ExN04MuonHit(const ExN04MuonHit &right); + const ExN04MuonHit& operator=(const ExN04MuonHit &right); + int operator==(const ExN04MuonHit &right) const; + inline void *operator new(size_t); inline void operator delete(void *aHit); @@ -51,30 +52,32 @@ class PersEx01TrackerHit : public G4VHit public: inline void SetEdep(G4double de) - { edep = de; }; + { edep = de; } + inline void AddEdep(G4double de) + { edep += de; } inline G4double GetEdep() - { return edep; }; + { return edep; } inline void SetPos(G4ThreeVector xyz) - { pos = xyz; }; + { pos = xyz; } inline G4ThreeVector GetPos() - { return pos; }; + { return pos; } }; -typedef G4THitsCollection PersEx01TrackerHitsCollection; +typedef G4THitsCollection ExN04MuonHitsCollection; -extern G4Allocator PersEx01TrackerHitAllocator; +extern G4Allocator ExN04MuonHitAllocator; -inline void* PersEx01TrackerHit::operator new(size_t) +inline void* ExN04MuonHit::operator new(size_t) { void *aHit; - aHit = (void *) PersEx01TrackerHitAllocator.MallocSingle(); + aHit = (void *) ExN04MuonHitAllocator.MallocSingle(); return aHit; } -inline void PersEx01TrackerHit::operator delete(void *aHit) +inline void ExN04MuonHit::operator delete(void *aHit) { - PersEx01TrackerHitAllocator.FreeSingle((PersEx01TrackerHit*) aHit); + ExN04MuonHitAllocator.FreeSingle((ExN04MuonHit*) aHit); } #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh new file mode 100644 index 0000000000..16149b86f1 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: ExN04MuonPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef ExN04MuonPhysics_h +#define ExN04MuonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4MultipleScattering.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuIonisation.hh" +#include "G4hIonisation.hh" + +#include "G4MuonMinusCaptureAtRest.hh" + +class ExN04MuonPhysics : public G4VPhysicsConstructor +{ + public: + ExN04MuonPhysics(const G4String& name="muon"); + virtual ~ExN04MuonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Muon physics + G4MultipleScattering fMuPlusMultipleScattering; + G4MuBremsstrahlung fMuPlusBremsstrahlung ; + G4MuPairProduction fMuPlusPairProduction; + G4MuIonisation fMuPlusIonisation; + + G4MultipleScattering fMuMinusMultipleScattering; + G4MuBremsstrahlung fMuMinusBremsstrahlung ; + G4MuPairProduction fMuMinusPairProduction; + G4MuIonisation fMuMinusIonisation; + + G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; + + // Tau physics + G4MultipleScattering fTauPlusMultipleScattering; + G4hIonisation fTauPlusIonisation; + + G4MultipleScattering fTauMinusMultipleScattering; + G4hIonisation fTauMinusIonisation; + +}; + + +#endif + diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01TrackerSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonSD.hh similarity index 83% rename from examples/extended/persistency/PersistentEx01/include/PersEx01TrackerSD.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonSD.hh index 3860f91d26..1f0c39e381 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01TrackerSD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonSD.hh @@ -21,19 +21,21 @@ // ******************************************************************** // -#ifndef PersEx01TrackerSD_h -#define PersEx01TrackerSD_h 1 +#ifndef ExN04MuonSD_h +#define ExN04MuonSD_h 1 #include "G4VSensitiveDetector.hh" -#include "PersEx01TrackerHit.hh" -#include "G4Step.hh" +#include "ExN04MuonHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; -class PersEx01TrackerSD : public G4VSensitiveDetector +class ExN04MuonSD : public G4VSensitiveDetector { public: - PersEx01TrackerSD(G4String name); - ~PersEx01TrackerSD(); + ExN04MuonSD(G4String name); + ~ExN04MuonSD(); void Initialize(G4HCofThisEvent*HCE); G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); @@ -43,10 +45,13 @@ class PersEx01TrackerSD : public G4VSensitiveDetector void PrintAll(); private: - PersEx01TrackerHitsCollection *EvenCollection; - PersEx01TrackerHitsCollection *OddCollection; + ExN04MuonHitsCollection * muonCollection; + G4double positionResolution; + }; + + #endif diff --git a/source/persistency/digits+hits/hits/src/G4PVHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PhysicsList.hh similarity index 83% rename from source/persistency/digits+hits/hits/src/G4PVHit.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PhysicsList.hh index eb9117dd8e..445ac20653 100644 --- a/source/persistency/digits+hits/hits/src/G4PVHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PhysicsList.hh @@ -20,26 +20,27 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PVHit.cc,v 1.5 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#ifndef ExN04PhysicsList_h +#define ExN04PhysicsList_h 1 -#include "G4PVHit.hh" +#include "G4VModularPhysicsList.hh" #include "globals.hh" -G4PVHit::G4PVHit() -{;} +class ExN04PhysicsList: public G4VModularPhysicsList +{ +public: + ExN04PhysicsList(); + virtual ~ExN04PhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); -G4PVHit::~G4PVHit() -{;} -int G4PVHit::operator==(const G4PVHit &right) const -{ return false; } +}; + + +#endif -void G4PVHit::Draw() -{;} -void G4PVHit::Print() -{;} diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..d92416340f --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// ExN04PrimaryGeneratorAction.hh +// $Id: ExN04PrimaryGeneratorAction.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ +// +// ==================================================================== +#ifndef EXN04_PRIMARY_GENERATOR_ACTION_H +#define EXN04_PRIMARY_GENERATOR_ACTION_H + +#include "g4std/map" +#include "globals.hh" +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4Event; +class G4VPrimaryGenerator; +class ExN04PrimaryGeneratorMessenger; + +class ExN04PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { +private: + G4VPrimaryGenerator* particleGun; + G4VPrimaryGenerator* hepmcAscii; + G4VPrimaryGenerator* pythiaGen; + + G4VPrimaryGenerator* currentGenerator; + G4String currentGeneratorName; + G4std::map gentypeMap; + + ExN04PrimaryGeneratorMessenger* messenger; + +public: + ExN04PrimaryGeneratorAction(); + ~ExN04PrimaryGeneratorAction(); + + virtual void GeneratePrimaries(G4Event* anEvent); + + void SetGenerator(G4VPrimaryGenerator* gen); + void SetGenerator(G4String genname); + + G4VPrimaryGenerator* GetGenerator() const; + G4String GetGeneratorName() const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void ExN04PrimaryGeneratorAction::SetGenerator +(G4VPrimaryGenerator* gen) +{ + currentGenerator= gen; +} + +inline void ExN04PrimaryGeneratorAction::SetGenerator(G4String genname) +{ + map::iterator pos= gentypeMap.find(genname); + if(pos != gentypeMap.end()) { + currentGenerator= pos->second; + currentGeneratorName= genname; + } +} + +inline G4VPrimaryGenerator* ExN04PrimaryGeneratorAction::GetGenerator() const +{ + return currentGenerator; +} + +inline G4String ExN04PrimaryGeneratorAction::GetGeneratorName() const +{ + return currentGeneratorName; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..3e7a088e13 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// ExN04PrimaryGeneratorMessenger.hh +// $Id: ExN04PrimaryGeneratorMessenger.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ +// +// ==================================================================== +#ifndef EXN04_PRIMARY_GENERATOR_MESSENGER_H +#define EXN04_PRIMARY_GENERATOR_MESSENGER_H + +#include "globals.hh" +#include "G4UImessenger.hh" + +class ExN04PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithoutParameter; +class G4UIcmdWithABool; +class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; + +class ExN04PrimaryGeneratorMessenger : public G4UImessenger { +private: + ExN04PrimaryGeneratorAction* primaryAction; + + G4UIdirectory* dir; + G4UIdirectory* mydetdir; + G4UIcmdWithAString* select; + +public: + ExN04PrimaryGeneratorMessenger(ExN04PrimaryGeneratorAction* genaction); + ~ExN04PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + + +#endif diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh similarity index 68% rename from examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh index accc3af5a9..8129428747 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02StackingAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh @@ -21,31 +21,38 @@ // ******************************************************************** // // -// $Id: PersEx02StackingAction.hh,v 1.3 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// $Id: ExN04RunAction.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef PersEx02StackingAction_H -#define PersEx02StackingAction_H 1 +#ifndef ExN04RunAction_h +#define ExN04RunAction_h 1 +#include "G4UserRunAction.hh" #include "globals.hh" -#include "G4UserStackingAction.hh" -#include "G4ThreeVector.hh" -class G4Track; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class PersEx02StackingAction : public G4UserStackingAction +class G4Run; + +class ExN04RunAction : public G4UserRunAction { public: - PersEx02StackingAction(); - virtual ~PersEx02StackingAction(); + ExN04RunAction(); + ~ExN04RunAction(); public: - virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); - virtual void NewStage(); - virtual void PrepareNewEvent(); - + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingAction.hh new file mode 100644 index 0000000000..6fa030f3a7 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingAction.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. * +// ******************************************************************** +// + +#ifndef ExN04StackingAction_H +#define ExN04StackingAction_H 1 + +#include "globals.hh" +#include "G4UserStackingAction.hh" +#include "G4ThreeVector.hh" + +class G4Track; + +#include "ExN04TrackerHit.hh" +#include "ExN04MuonHit.hh" +class ExN04StackingActionMessenger; + +class ExN04StackingAction : public G4UserStackingAction +{ + public: + ExN04StackingAction(); + virtual ~ExN04StackingAction(); + + public: + virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); + virtual void NewStage(); + virtual void PrepareNewEvent(); + + private: + G4bool InsideRoI(const G4Track * aTrack,G4double ang); + G4VHitsCollection* GetCollection(G4String colName); + + ExN04TrackerHitsCollection* trkHits; + ExN04MuonHitsCollection* muonHits; + ExN04StackingActionMessenger* theMessenger; + + G4int stage; + G4int reqMuon; + G4int reqIsoMuon; + G4int reqIso; + G4double angRoI; + + public: + inline void SetNRequestMuon(G4int val) { reqMuon = val; } + inline G4int GetNRequestMuon() const { return reqMuon; } + inline void SetNRequestIsoMuon(G4int val) { reqIsoMuon = val; } + inline G4int GetNRequestIsoMuon() const { return reqIsoMuon; } + inline void SetNIsolation(G4int val) { reqIso = val; } + inline G4int GetNIsolation() const { return reqIso; } + inline void SetRoIAngle(G4double val) { angRoI = val; } + inline G4double GetRoIAngle() const { return angRoI; } +}; + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingActionMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingActionMessenger.hh new file mode 100644 index 0000000000..38da86a685 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04StackingActionMessenger.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * 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 ExN04StackingActionMessenger_h +#define ExN04StackingActionMessenger_h 1 + +class ExN04StackingAction; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class ExN04StackingActionMessenger: public G4UImessenger +{ + public: + ExN04StackingActionMessenger(ExN04StackingAction* msa); + ~ExN04StackingActionMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + ExN04StackingAction * myAction; + + private: //commands + G4UIcmdWithAnInteger * muonCmd; + G4UIcmdWithAnInteger * isomuonCmd; + G4UIcmdWithAnInteger * isoCmd; + G4UIcmdWithADoubleAndUnit * roiCmd; + +}; + +#endif + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingAction.hh new file mode 100644 index 0000000000..aafc85416e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingAction.hh @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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 ExN04SteppingAction_H +#define ExN04SteppingAction_H 1 + +#include "globals.hh" +#include "G4UserSteppingAction.hh" + +class ExN04SteppingAction : public G4UserSteppingAction +{ + public: + ExN04SteppingAction(); + virtual ~ExN04SteppingAction(); + + virtual void UserSteppingAction(const G4Step*); +}; + +#endif + diff --git a/source/persistency/digits+hits/hits/include/G4PVHit.ddl b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh similarity index 61% rename from source/persistency/digits+hits/hits/include/G4PVHit.ddl rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh index 75daa0ee2d..368997e9da 100644 --- a/source/persistency/digits+hits/hits/include/G4PVHit.ddl +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh @@ -21,41 +21,37 @@ // ******************************************************************** // // -// $Id: G4PVHit.ddl,v 1.9 2001/12/07 03:48:59 morita Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04SteppingVerbose.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // - -// Class Description: -// This is a persistent version of abstract base class of a detector -// digit. User should inherit from this class for his/her sensitive -// detector digit, to be added to the correponding digits collection. +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. // +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef G4PVHit_h -#define G4PVHit_h 1 +class ExN04SteppingVerbose; -#include "G4Pglobals.hh" -#include "G4PersistentSchema.hh" +#ifndef ExN04SteppingVerbose_h +#define ExN04SteppingVerbose_h 1 -#include "G4VHit.hh" +#include "G4SteppingVerbose.hh" -#include "HepODBMS/odbms/HepODBMS.h" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4PVHit - : public HepPersObj, public G4VHit +class ExN04SteppingVerbose : public G4SteppingVerbose { + public: + + ExN04SteppingVerbose(); + ~ExN04SteppingVerbose(); - public: // with description - G4PVHit(); - // Constructor. - virtual ~G4PVHit(); - // (Virtual) destructor. + void StepInfo(); + void TrackingStarted(); - public: - int operator==(const G4PVHit &right) const; - virtual void Draw(); - virtual void Print(); }; -#endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#endif diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh similarity index 63% rename from examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh index 5e2c6c6965..8731dadeb6 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHit.ddl +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh @@ -20,50 +20,63 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: PersEx02TrackerHit.ddl,v 1.5 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef PersEx02TrackerHit_h -#define PersEx02TrackerHit_h 1 +#ifndef ExN04TrackerHit_h +#define ExN04TrackerHit_h 1 -#include "G4PVHit.hh" +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" #include "G4ThreeVector.hh" -#include "G4PersistentTypes.hh" -#include "HepODBMS/odbms/HepODBMS.h" - -class PersEx02TrackerHit - : public G4PVHit +class ExN04TrackerHit : public G4VHit { public: - PersEx02TrackerHit(); - ~PersEx02TrackerHit(); - PersEx02TrackerHit(const PersEx02TrackerHit &right); - const PersEx02TrackerHit& operator=(const PersEx02TrackerHit &right); - int operator==(const PersEx02TrackerHit &right) const; + ExN04TrackerHit(); + ~ExN04TrackerHit(); + ExN04TrackerHit(const ExN04TrackerHit &right); + const ExN04TrackerHit& operator=(const ExN04TrackerHit &right); + int operator==(const ExN04TrackerHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); void Draw(); void Print(); private: - G4Pdouble edep; + G4double edep; G4ThreeVector pos; public: inline void SetEdep(G4double de) - { edep = de; }; + { edep = de; } inline G4double GetEdep() - { return edep; }; + { return edep; } inline void SetPos(G4ThreeVector xyz) - { pos = xyz; }; + { pos = xyz; } inline G4ThreeVector GetPos() - { return pos; }; + { return pos; } }; +typedef G4THitsCollection ExN04TrackerHitsCollection; + +extern G4Allocator ExN04TrackerHitAllocator; + +inline void* ExN04TrackerHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04TrackerHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04TrackerHit::operator delete(void *aHit) +{ + ExN04TrackerHitAllocator.FreeSingle((ExN04TrackerHit*) aHit); +} + #endif diff --git a/examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh similarity index 70% rename from examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh index 6f1c95cddd..dc1fa0102e 100644 --- a/examples/extended/biasing/B07/include/B07ImportanceDetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh @@ -20,32 +20,34 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B07ImportanceDetectorConstruction.hh,v 1.4 2002/04/19 12:13:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef B07ImportanceDetectorConstruction_hh -#define B07ImportanceDetectorConstruction_hh B07ImportanceDetectorConstruction_hh +#ifndef ExN04TrackerParametrisation_H +#define ExN04TrackerParametrisation_H 1 #include "globals.hh" -#include "G4VUserDetectorConstruction.hh" +#include "G4VPVParameterisation.hh" class G4VPhysicalVolume; -class G4VIStore; +class G4Tubs; -class B07ImportanceDetectorConstruction : public G4VUserDetectorConstruction -{ -public: - B07ImportanceDetectorConstruction(); - ~B07ImportanceDetectorConstruction(); - - G4VPhysicalVolume* Construct(); - G4VIStore* GetIStore(); - -private: - G4VIStore *fIStore; +class ExN04TrackerParametrisation : public G4VPVParameterisation +{ + public: + ExN04TrackerParametrisation(); + virtual ~ExN04TrackerParametrisation(); + void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume *physVol) const; + void ComputeDimensions( G4Tubs & trackerLayer, + const G4int copyNo, + const G4VPhysicalVolume * physVol) const; + + private: + +#include "ExN04DetectorParameterDef.hh" + }; #endif + + diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerSD.hh similarity index 72% rename from examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerSD.hh index 5dad7af06c..57068a1950 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02PrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerSD.hh @@ -20,32 +20,38 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: PersEx02PrimaryGeneratorAction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef PersEx02PrimaryGeneratorAction_h -#define PersEx02PrimaryGeneratorAction_h 1 +#ifndef ExN04TrackerSD_h +#define ExN04TrackerSD_h 1 -#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4VSensitiveDetector.hh" +#include "ExN04TrackerHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; -class G4ParticleGun; -class G4Event; - -class PersEx02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class ExN04TrackerSD : public G4VSensitiveDetector { - public: - PersEx02PrimaryGeneratorAction(); - ~PersEx02PrimaryGeneratorAction(); public: - void GeneratePrimaries(G4Event* anEvent); + ExN04TrackerSD(G4String name); + ~ExN04TrackerSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); private: - G4ParticleGun* particleGun; + ExN04TrackerHitsCollection *trackerCollection; + + public: }; + + + #endif - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackingAction.hh new file mode 100644 index 0000000000..9007f2bd85 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackingAction.hh @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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 ExN04TrackingAction_h +#define ExN04TrackingAction_h 1 + +#include "G4UserTrackingAction.hh" + + +class ExN04TrackingAction : public G4UserTrackingAction { + + public: + ExN04TrackingAction(){}; + virtual ~ExN04TrackingAction(){}; + + virtual void PreUserTrackingAction(const G4Track*); + +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh new file mode 100644 index 0000000000..f236a4dfcb --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.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: ExN04VisManager.hh,v 1.1 2002/11/19 10:30:55 murakami Exp $ +// GEANT4 tag $Name: geant4-05-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 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/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh new file mode 100644 index 0000000000..d0fc76cf1b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H01PythiaInterface.hh +// $Id: H01PythiaInterface.hh,v 1.1 2002/11/19 10:30:55 murakami Exp $ +// +// A generic interface class with Pythia event generator via HepMC. +// +// ==================================================================== +#ifndef H01_PYTHIA_INTERFACE_H +#define H01_PYTHIA_INTERFACE_H + +#include "G4HepMCInterface.hh" + +namespace HepMC { + class CBhepevt; +} +class H01PythiaMessenger; + +class H01PythiaInterface : public G4HepMCInterface { +protected: + G4int verbose; + G4int mpylist; + HepMC::CBhepevt* hepevtio; + + H01PythiaMessenger* messenger; + + // In default, this is automatic conversion, Pythia->HEPEVT->HepMC, + // by HepMC utilities. + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + H01PythiaInterface(); + ~H01PythiaInterface(); + + // set/get methods + void SetVerboseLevel(G4int i); + G4int GetVerboseLevel() const; + + void SetPylist(G4int i); + G4int GetPylist() const; + + // call pyxxx + void CallPyinit(G4String frame, G4String beam, + G4String target, G4double win); + void CallPystat(G4int istat); + void CallPygive(G4String par); + void CallPyrget(G4int lun, G4int move); + void CallPyrset(G4int lun, G4int move); + void CallPyevnt(); + void CallPylist(G4int mode); + void CallPyhepc(G4int mode); + + // random numbers operations + void SetRandomSeed(G4int iseed); + void PrintRandomStatus(G4std::ostream& ostr=G4cout) const; + + // setup user parameters (empty in default). + // Implement your parameters in a delived class if you want. + virtual void SetUserParameters(); + + virtual void Print() const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void H01PythiaInterface::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int H01PythiaInterface::GetVerboseLevel() const +{ + return verbose; +} + +inline void H01PythiaInterface::SetPylist(G4int i) +{ + mpylist= i; +} + +inline G4int H01PythiaInterface::GetPylist() const +{ + return mpylist; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh new file mode 100644 index 0000000000..88350ab331 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// H01PythiaMessenger.hh +// $Id: H01PythiaMessenger.hh,v 1.1 2002/11/19 10:30:55 murakami Exp $ +// +// ==================================================================== +#ifndef H01_PYTHIA_MESSENGER_H +#define H01_PYTHIA_MESSENGER_H + +#include "G4UImessenger.hh" + +class H01PythiaInterface; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class H01PythiaMessenger : public G4UImessenger { +private: + H01PythiaInterface* gen; + + G4UIdirectory* dir; + G4UIcmdWithAnInteger* verbose; + G4UIcmdWithAnInteger* mpylist; + G4UIcmdWithoutParameter* print; + G4UIcommand* cpyinit; + G4UIcmdWithAnInteger* cpystat; + G4UIcommand* cpygive; + G4UIcommand* setUserParameters; + G4UIcmdWithAnInteger* setSeed; + G4UIcommand* cpyrget; + G4UIcommand* cpyrset; + G4UIcmdWithAString* printRandomStatus; + +public: + H01PythiaMessenger(H01PythiaInterface* agen); + ~H01PythiaMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyh4mu.mac b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyh4mu.mac new file mode 100644 index 0000000000..d4b3e63e60 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyh4mu.mac @@ -0,0 +1,47 @@ +/generator/pythia/pygive PMAS(6,1)=174.3D0 +/generator/pythia/pygive PMAS(25,1)=200.D0 + +/generator/pythia/pygive MSEL=0 +/generator/pythia/pygive MSUB(102)=1 +/generator/pythia/pygive MSUB(123)=1 +/generator/pythia/pygive MSUB(124)=1 + +/generator/pythia/pygive MDME(210,1)=0 +/generator/pythia/pygive MDME(211,1)=0 +/generator/pythia/pygive MDME(212,1)=0 +/generator/pythia/pygive MDME(213,1)=0 +/generator/pythia/pygive MDME(214,1)=0 +/generator/pythia/pygive MDME(215,1)=0 +/generator/pythia/pygive MDME(218,1)=0 +/generator/pythia/pygive MDME(219,1)=0 +/generator/pythia/pygive MDME(220,1)=0 +/generator/pythia/pygive MDME(222,1)=0 +/generator/pythia/pygive MDME(223,1)=0 +/generator/pythia/pygive MDME(224,1)=0 +/generator/pythia/pygive MDME(225,1)=1 +/generator/pythia/pygive MDME(226,1)=0 +/generator/pythia/pygive MDME(216,1)=-1 +/generator/pythia/pygive MDME(217,1)=-1 +/generator/pythia/pygive MDME(218,1)=-1 + +/generator/pythia/pygive MDME(174,1)=0 +/generator/pythia/pygive MDME(175,1)=0 +/generator/pythia/pygive MDME(176,1)=0 +/generator/pythia/pygive MDME(177,1)=0 +/generator/pythia/pygive MDME(178,1)=0 +/generator/pythia/pygive MDME(179,1)=0 +/generator/pythia/pygive MDME(182,1)=0 +/generator/pythia/pygive MDME(183,1)=0 +/generator/pythia/pygive MDME(184,1)=1 +/generator/pythia/pygive MDME(185,1)=0 +/generator/pythia/pygive MDME(186,1)=0 +/generator/pythia/pygive MDME(187,1)=0 +/generator/pythia/pygive MDME(180,1)=-1 +/generator/pythia/pygive MDME(181,1)=-1 +/generator/pythia/pygive MDME(188,1)=-1 +/generator/pythia/pygive MDME(189,1)=-1 + +/generator/pythia/pygive MSTP(61)=1 +/generator/pythia/pygive MSTP(71)=1 +/generator/pythia/pygive MSTP(81)=1 +/generator/pythia/pygive MSTP(111)=1 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyset.mac b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyset.mac new file mode 100644 index 0000000000..c4177f91fa --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/pyset.mac @@ -0,0 +1,4 @@ +/generator/select pythia +/control/execute pyh4mu.mac +/generator/pythia/pyinit cms p p 14000 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc new file mode 100644 index 0000000000..4b43319609 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc @@ -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. * +// ******************************************************************** +// + +#include "ExN04CalorimeterHit.hh" +#include "G4ios.hh" +#include "G4VVisManager.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolume.hh" + +G4Allocator ExN04CalorimeterHitAllocator; + +ExN04CalorimeterHit::ExN04CalorimeterHit() +{pLogV=0;} + +ExN04CalorimeterHit::ExN04CalorimeterHit(G4LogicalVolume* logVol,G4int z,G4int phi) +: ZCellID(z), PhiCellID(phi), pLogV(logVol) +{;} + +ExN04CalorimeterHit::~ExN04CalorimeterHit() +{;} + +ExN04CalorimeterHit::ExN04CalorimeterHit(const ExN04CalorimeterHit &right) +{ + ZCellID = right.ZCellID; + PhiCellID = right.PhiCellID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; +} + +const ExN04CalorimeterHit& ExN04CalorimeterHit::operator=(const ExN04CalorimeterHit &right) +{ + ZCellID = right.ZCellID; + PhiCellID = right.PhiCellID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; + return *this; +} + +int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const +{ + return ((ZCellID==right.ZCellID)&&(PhiCellID==right.PhiCellID)); +} + +void ExN04CalorimeterHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Transform3D trans(rot,pos); + G4VisAttributes attribs; + const G4VisAttributes* pVA = pLogV->GetVisAttributes(); + if(pVA) attribs = *pVA; + G4Colour colour(1.,0.,0.); + attribs.SetColour(colour); + attribs.SetForceWireframe(false); + attribs.SetForceSolid(true); + pVVisManager->Draw(*pLogV,attribs,trans); + } +} + +void ExN04CalorimeterHit::Print() +{;} + + diff --git a/examples/extended/biasing/B06/src/B06PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc similarity index 61% rename from examples/extended/biasing/B06/src/B06PrimaryGeneratorAction.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc index 9683713fb3..c054aaa3eb 100644 --- a/examples/extended/biasing/B06/src/B06PrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc @@ -20,36 +20,39 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B06PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:44 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "globals.hh" +#include "ExN04CalorimeterParametrisation.hh" -#include "B06PrimaryGeneratorAction.hh" - -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4Neutron.hh" +#include "G4VPhysicalVolume.hh" #include "G4ThreeVector.hh" +#include "G4Tubs.hh" -B06PrimaryGeneratorAction::B06PrimaryGeneratorAction() +ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() { - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); - particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); + +#include "ExN04DetectorParameterDef.icc" + } -B06PrimaryGeneratorAction::~B06PrimaryGeneratorAction() +ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() +{;} + +void ExN04CalorimeterParametrisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const { - delete particleGun; + G4ThreeVector origin; + physVol->SetTranslation(origin); } -void B06PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void ExN04CalorimeterParametrisation::ComputeDimensions +(G4Tubs & calorimeterLayer, const G4int copyNo, + const G4VPhysicalVolume * physVol) const { - particleGun->GeneratePrimaryVertex(anEvent); + G4double innerRad = caloTubs_rmin + + copyNo*(absorber_thick+scinti_thick); + calorimeterLayer.SetInnerRadius(innerRad); + calorimeterLayer.SetOuterRadius(innerRad+absorber_thick); + calorimeterLayer.SetZHalfLength(caloTubs_dz); + calorimeterLayer.SetStartPhiAngle(caloTubs_sphi); + calorimeterLayer.SetDeltaPhiAngle(caloTubs_dphi); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterROGeometry.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterROGeometry.cc new file mode 100644 index 0000000000..5710bc97a9 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterROGeometry.cc @@ -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. * +// ******************************************************************** +// +#include "ExN04CalorimeterROGeometry.hh" +#include "ExN04DummySD.hh" + +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4SDManager.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4ThreeVector.hh" +#include "G4Material.hh" + + +ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry() + : G4VReadOutGeometry() +{ +#include "ExN04DetectorParameterDef.icc" +} + + +ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry(G4String aString) + : G4VReadOutGeometry(aString) +{ +#include "ExN04DetectorParameterDef.icc" +} + +ExN04CalorimeterROGeometry::~ExN04CalorimeterROGeometry() +{ +} + +G4VPhysicalVolume* ExN04CalorimeterROGeometry::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); + + //Builds the ReadOut World: + G4Box *ROWorldBox = new G4Box("ROWorldBox", expHall_x, expHall_y, expHall_z); + G4LogicalVolume *ROWorldLog = new G4LogicalVolume(ROWorldBox, dummyMat, + "ROWorldLogical", 0, 0, 0); + G4PVPlacement *ROWorldPhys = new G4PVPlacement(0,G4ThreeVector(), + "ROWorldPhysical", + ROWorldLog, + 0,false,0); + // Calorimeter volume: + G4VSolid * caloROtub + = new G4Tubs("caloROtub",caloTubs_rmin,caloTubs_rmax, + caloTubs_dz,caloTubs_sphi,caloTubs_dphi); + G4LogicalVolume * caloROlog + = new G4LogicalVolume(caloROtub,dummyMat,"caloROlogical",0,0,0); + G4VPhysicalVolume * caloROphys + = new G4PVPlacement(0,G4ThreeVector(),"calROphysical",caloROlog, + ROWorldPhys,false,0); + + // ------------------------------- + // Calorimeter readout division: + // ------------------------------- + // Phi division first: 48 sectors + G4VSolid * caloROphiDivisionTub + = new G4Tubs("caloROphiDivision", caloCell_rmin, caloCell_rmax, + caloCell_dz, caloCell_sphi, caloCell_dphi); + G4LogicalVolume * caloROphiDivisionLog + = new G4LogicalVolume(caloROphiDivisionTub, dummyMat, "caloROphiDivisionLogical",0,0,0); + G4VPhysicalVolume * caloROphiDivisionPhys + = new G4PVReplica("caloROphiDivisionPhysical", caloROphiDivisionLog, caloROphys, + kPhi, segmentsinPhi, caloCell_dphi); + // then z division: 20 slices: + G4VSolid * caloROcellTub + = new G4Tubs("caloROcellTub", caloRing_rmin, caloRing_rmax, + caloRing_dz, caloRing_sphi, caloRing_dphi); + G4LogicalVolume * caloROcellLog + = new G4LogicalVolume(caloROcellTub, dummyMat, "caloROcellLogical",0,0,0); +// G4VPhysicalVolume * caloROcellPhys = + new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionPhys, + kZAxis, segmentsinZ,2.*caloRing_dz); + + + //Flags the cells as sensitive .The pointer here serves + // as a flag only to check for sensitivity. + // (Could we make it by a simple cast of a non-NULL value ?) + ExN04DummySD * dummySensi = new ExN04DummySD; + caloROcellLog->SetSensitiveDetector(dummySensi); + + return ROWorldPhys; +} diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc new file mode 100644 index 0000000000..c2df7f35ce --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc @@ -0,0 +1,115 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "ExN04CalorimeterSD.hh" +#include "ExN04CalorimeterHit.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4ios.hh" + +ExN04CalorimeterSD::ExN04CalorimeterSD(G4String name) +:G4VSensitiveDetector(name), + numberOfCellsInZ(20),numberOfCellsInPhi(48) +{ + G4String HCname; + collectionName.insert(HCname="calCollection"); +} + +ExN04CalorimeterSD::~ExN04CalorimeterSD() +{;} + +void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +{ + CalCollection = new ExN04CalorimeterHitsCollection + (SensitiveDetectorName,collectionName[0]); + for(int j=0;jGetTotalEnergyDeposit(); + if(edep==0.) return false; + + G4VPhysicalVolume* physVol = ROhist->GetVolume(); + //ROhist->MoveUpHistory(); + //G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); + int copyIDinZ = ROhist->GetReplicaNumber(); + int copyIDinPhi = ROhist->GetReplicaNumber(1); + + if(CellID[copyIDinZ][copyIDinPhi]==-1) + { + ExN04CalorimeterHit* calHit + = new ExN04CalorimeterHit + (physVol->GetLogicalVolume(),copyIDinZ,copyIDinPhi); + G4RotationMatrix rotM; + if(physVol->GetObjectRotation()) rotM = *(physVol->GetObjectRotation()); + calHit->SetEdep( edep ); + calHit->SetPos( physVol->GetTranslation() ); + calHit->SetRot( rotM ); + int icell = CalCollection->insert( calHit ); + CellID[copyIDinZ][copyIDinPhi] = icell - 1; + if(verboseLevel>0) + { G4cout << " New Calorimeter Hit on CellID " + << copyIDinZ << " " << copyIDinPhi << G4endl; } + } + else + { + (*CalCollection)[CellID[copyIDinZ][copyIDinPhi]]->AddEdep(edep); + if(verboseLevel>0) + { G4cout << " Energy added to CellID " + << copyIDinZ << " " << copyIDinPhi << G4endl; } + } + + return true; +} + +void ExN04CalorimeterSD::EndOfEvent(G4HCofThisEvent*HCE) +{ + static G4int HCID = -1; + if(HCID<0) + { HCID = GetCollectionID(0); } + HCE->AddHitsCollection( HCID, CalCollection ); +} + +void ExN04CalorimeterSD::clear() +{ +} + +void ExN04CalorimeterSD::DrawAll() +{ +} + +void ExN04CalorimeterSD::PrintAll() +{ +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc new file mode 100644 index 0000000000..7ed0cc02dd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc @@ -0,0 +1,262 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "ExN04DetectorConstruction.hh" +#include "ExN04TrackerSD.hh" +#include "ExN04CalorimeterSD.hh" +#include "ExN04CalorimeterROGeometry.hh" +#include "ExN04MuonSD.hh" +#include "ExN04TrackerParametrisation.hh" +#include "ExN04CalorimeterParametrisation.hh" +#include "ExN04Field.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "G4PVParameterised.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4SDManager.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +ExN04DetectorConstruction::ExN04DetectorConstruction() +{ + +#include "ExN04DetectorParameterDef.icc" + +} + +ExN04DetectorConstruction::~ExN04DetectorConstruction() +{;} + +G4VPhysicalVolume* ExN04DetectorConstruction::Construct() +{ + //------------------------------------------------------------------------- + // Magnetic field + //------------------------------------------------------------------------- + + static G4bool fieldIsInitialized = false; + if(!fieldIsInitialized) + { + ExN04Field* myField = new ExN04Field; + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager() + ->GetFieldManager(); + fieldMgr->SetDetectorField(myField); + fieldMgr->CreateChordFinder(myField); + fieldIsInitialized = true; + } + + //------------------------------------------------------------------------- + // Materials + //------------------------------------------------------------------------- + + G4double a, iz, z, density; + G4String name, symbol; + G4int nel; + + a = 1.01*g/mole; + G4Element* elH = new G4Element(name="Hydrogen", symbol="H", iz=1., a); + + a = 12.01*g/mole; + G4Element* elC = new G4Element(name="Carbon", symbol="C", iz=6., a); + + a = 14.01*g/mole; + G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); + + a = 16.00*g/mole; + G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); + + density = 1.29e-03*g/cm3; + G4Material* Air = new G4Material(name="Air", density, nel=2); + Air->AddElement(elN, .7); + Air->AddElement(elO, .3); + + a = 207.19*g/mole; + density = 11.35*g/cm3; + G4Material* Lead = new G4Material(name="Lead", z=82., a, density); + + a = 39.95*g/mole; + density = 1.782e-03*g/cm3; + G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); + + a = 28.09*g/mole; + density = 2.33*g/cm3; + G4Material * Silicon = new G4Material(name="Silicon", z=14., a, density); + + density = 1.032*g/cm3; + G4Material* Scinti = new G4Material(name="Scintillator", density, nel=2); + Scinti->AddElement(elC, 9); + Scinti->AddElement(elH, 10); + + //------------------------------------------------------------------------- + // Detector geometry + //------------------------------------------------------------------------- + + //------------------------------ experimental hall + G4Box * experimentalHall_box + = new G4Box("expHall_b",expHall_x,expHall_y,expHall_z); + G4LogicalVolume * experimentalHall_log + = new G4LogicalVolume(experimentalHall_box,Air,"expHall_L",0,0,0); + G4VPhysicalVolume * experimentalHall_phys + = new G4PVPlacement(0,G4ThreeVector(),"expHall_P", + experimentalHall_log,0,false,0); + G4VisAttributes* experimentalHallVisAtt + = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + experimentalHallVisAtt->SetForceWireframe(true); + experimentalHall_log->SetVisAttributes(experimentalHallVisAtt); + + //------------------------------ tracker + G4VSolid * tracker_tubs + = new G4Tubs("trkTubs_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz, + trkTubs_sphi,trkTubs_dphi); + G4LogicalVolume * tracker_log + = new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0); + G4VPhysicalVolume * tracker_phys + = new G4PVPlacement(0,G4ThreeVector(),"tracker_phys",tracker_log, + experimentalHall_phys,false,0); + G4VisAttributes* tracker_logVisAtt + = new G4VisAttributes(G4Colour(1.0,0.0,1.0)); + tracker_logVisAtt->SetForceWireframe(true); + tracker_log->SetVisAttributes(tracker_logVisAtt); + + //------------------------------ tracker layers + // As an example for Parameterised volume + // dummy values for G4Tubs -- modified by parameterised volume + G4VSolid * trackerLayer_tubs + = new G4Tubs("trackerLayer_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz, + trkTubs_sphi,trkTubs_dphi); + G4LogicalVolume * trackerLayer_log + = new G4LogicalVolume(trackerLayer_tubs,Silicon,"trackerB_L",0,0,0); + G4VPVParameterisation * trackerParam + = new ExN04TrackerParametrisation; + // dummy value : kXAxis -- modified by parameterised volume + // G4VPhysicalVolume *trackerLayer_phys = + new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_phys, + kXAxis, notrkLayers, trackerParam); + G4VisAttributes* trackerLayer_logVisAtt + = new G4VisAttributes(G4Colour(0.5,0.0,1.0)); + trackerLayer_logVisAtt->SetForceWireframe(true); + trackerLayer_log->SetVisAttributes(trackerLayer_logVisAtt); + + //------------------------------ calorimeter + G4VSolid * calorimeter_tubs + = new G4Tubs("calorimeter_tubs",caloTubs_rmin,caloTubs_rmax, + caloTubs_dz,caloTubs_sphi,caloTubs_dphi); + G4LogicalVolume * calorimeter_log + = new G4LogicalVolume(calorimeter_tubs,Scinti,"caloT_L",0,0,0); + G4VPhysicalVolume * calorimeter_phys + = new G4PVPlacement(0,G4ThreeVector(),"caloM_P",calorimeter_log, + experimentalHall_phys,false,0); + G4VisAttributes* calorimeter_logVisATT + = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + calorimeter_logVisATT->SetForceWireframe(true); + calorimeter_log->SetVisAttributes(calorimeter_logVisATT); + + //------------------------------- Lead layers + // As an example for Parameterised volume + // dummy values for G4Tubs -- modified by parameterised volume + G4VSolid * caloLayer_tubs + = new G4Tubs("caloLayer_tubs",caloRing_rmin,caloRing_rmax, + caloRing_dz,caloRing_sphi,caloRing_dphi); + G4LogicalVolume * caloLayer_log + = new G4LogicalVolume(caloLayer_tubs,Lead,"caloR_L",0,0,0); + G4VPVParameterisation * calorimeterParam + = new ExN04CalorimeterParametrisation; + // dummy value : kXAxis -- modified by parameterised volume + // G4VPhysicalVolume * caloLayer_phys = + new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_phys, + kXAxis, nocaloLayers, calorimeterParam); + G4VisAttributes* caloLayer_logVisAtt + = new G4VisAttributes(G4Colour(0.7,1.0,0.0)); + caloLayer_logVisAtt->SetForceWireframe(true); + caloLayer_log->SetVisAttributes(caloLayer_logVisAtt); + + //------------------------------ muon counters + // As an example of CSG volumes with rotation + G4VSolid * muoncounter_box + = new G4Box("muoncounter_box",muBox_width,muBox_thick, + muBox_length); + G4LogicalVolume * muoncounter_log + = new G4LogicalVolume(muoncounter_box,Scinti,"mucounter_L",0,0,0); + G4VPhysicalVolume * muoncounter_phys; + for(int i=0; iSetForceWireframe(true); + muoncounter_log->SetVisAttributes(muoncounter_logVisAtt); + + //------------------------------------------------------------------ + // Sensitive Detector + //------------------------------------------------------------------ + + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + G4String trackerSDname = "/mydet/tracker"; + ExN04TrackerSD * trackerSD = new ExN04TrackerSD(trackerSDname); + SDman->AddNewDetector(trackerSD); + trackerLayer_log->SetSensitiveDetector(trackerSD); + + G4String calorimeterSDname = "/mydet/calorimeter"; + ExN04CalorimeterSD * calorimeterSD = new ExN04CalorimeterSD(calorimeterSDname); + G4String ROgeometryName = "CalorimeterROGeom"; + G4VReadOutGeometry* calRO = new ExN04CalorimeterROGeometry(ROgeometryName); + calRO->BuildROGeometry(); + calorimeterSD->SetROgeometry(calRO); + SDman->AddNewDetector(calorimeterSD); + calorimeter_log->SetSensitiveDetector(calorimeterSD); + + G4String muonSDname = "/mydet/muon"; + ExN04MuonSD * muonSD = new ExN04MuonSD(muonSDname); + SDman->AddNewDetector(muonSD); + muoncounter_log->SetSensitiveDetector(muonSD); + + //------------------------------------------------------------------ + // Digitizer modules + //------------------------------------------------------------------ + + return experimentalHall_phys; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorParameterDef.icc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorParameterDef.icc new file mode 100644 index 0000000000..1d3dfe7a3a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorParameterDef.icc @@ -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. * +// ******************************************************************** +// + + expHall_x = 600.*cm; + expHall_y = 600.*cm; + expHall_z = 600.*cm; + + trkTubs_rmax = 50.*cm; + trkTubs_rmin = 20.*cm; + trkTubs_dz = 100.*cm; + trkTubs_sphi = 0.*deg; + trkTubs_dphi = 360.*deg; + + notrkLayers = 5; + tracker_radius[0] = 25.*cm; + tracker_radius[1] = 30.*cm; + tracker_radius[2] = 35.*cm; + tracker_radius[3] = 40.*cm; + tracker_radius[4] = 45.*cm; + + tracker_thick = 0.5*cm; + for(int il=0;il<5;il++) + { + tracker_length[il] = tracker_radius[il]; + } + + caloTubs_rmax = 300.*cm; + caloTubs_rmin = 50.*cm; + caloTubs_dz = 200.*cm; + caloTubs_sphi = 0.*deg; + caloTubs_dphi = 360.*deg; + + absorber_thick = 3.*cm; + scinti_thick = 2.*cm; + nocaloLayers = int((caloTubs_rmax-caloTubs_rmin)/(absorber_thick+scinti_thick)); + + segmentsinPhi = 48; + caloCell_rmax = caloTubs_rmax; + caloCell_rmin = caloTubs_rmin; + caloCell_dz = caloTubs_dz; + caloCell_sphi = caloTubs_sphi; + caloCell_dphi = caloTubs_dphi/segmentsinPhi; + + segmentsinZ = 20; + caloRing_rmax = caloCell_rmax; + caloRing_rmin = caloCell_rmin; + caloRing_dz = caloCell_dz/segmentsinZ ; + caloRing_sphi = caloCell_sphi; + caloRing_dphi = caloCell_dphi; + + nomucounter = 4; + muBox_radius = 350.*cm; + muBox_width = muBox_radius - 5.*cm; + muBox_thick = 1.*cm; + muBox_length = expHall_z - 10.*cm; + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc new file mode 100644 index 0000000000..3d5bd65e0c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: ExN04EMPhysics.cc,v 1.1 2002/11/19 10:31:38 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "ExN04EMPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +ExN04EMPhysics::ExN04EMPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +ExN04EMPhysics::~ExN04EMPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4Gamma.hh" + +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + +void ExN04EMPhysics::ConstructParticle() +{ + // gamma + G4Gamma::GammaDefinition(); + + // electron + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); +} + + +#include "G4ProcessManager.hh" + + +void ExN04EMPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Gamma Physics + pManager = G4Gamma::Gamma()->GetProcessManager(); + pManager->AddDiscreteProcess(&thePhotoEffect); + pManager->AddDiscreteProcess(&theComptonEffect); + pManager->AddDiscreteProcess(&thePairProduction); + + // Electron Physics + pManager = G4Electron::Electron()->GetProcessManager(); + // add processes + pManager->AddDiscreteProcess(&theElectronBremsStrahlung); + + pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theElectronMultipleScattering); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); + + //Positron Physics + pManager = G4Positron::Positron()->GetProcessManager(); + // add processes + pManager->AddDiscreteProcess(&thePositronBremsStrahlung); + + pManager->AddDiscreteProcess(&theAnnihilation); + + pManager->AddRestProcess(&theAnnihilation); + + pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePositronMultipleScattering); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EventAction.cc new file mode 100644 index 0000000000..45f1973924 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EventAction.cc @@ -0,0 +1,122 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "ExN04EventAction.hh" + +#include "ExN04TrackerHit.hh" +#include "ExN04CalorimeterHit.hh" +#include "ExN04MuonHit.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" + +ExN04EventAction::ExN04EventAction() +{ + trackerCollID = -1; + calorimeterCollID = -1; + muonCollID = -1; +} + +ExN04EventAction::~ExN04EventAction() +{;} + +void ExN04EventAction::BeginOfEventAction(const G4Event*) +{ + G4SDManager * SDman = G4SDManager::GetSDMpointer(); + if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) + { + G4String colNam; + trackerCollID = SDman->GetCollectionID(colNam="trackerCollection"); + calorimeterCollID = SDman->GetCollectionID(colNam="calCollection"); + muonCollID = SDman->GetCollectionID(colNam="muonCollection"); + } +} + +void ExN04EventAction::EndOfEventAction(const G4Event* evt) +{ + G4cout << ">>> Event " << evt->GetEventID() << G4endl; + + // get number of stored trajectories + // + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + + // extract the trajectories and draw them + // + if (G4VVisManager::GetConcreteInstance()) + { + for (G4int i=0; iGetTrajectoryContainer()))[i]); + trj->DrawTrajectory(50); + } + } + + + if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) return; + + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + ExN04TrackerHitsCollection* THC = 0; + ExN04CalorimeterHitsCollection* CHC = 0; + ExN04MuonHitsCollection* MHC = 0; + if(HCE) + { + THC = (ExN04TrackerHitsCollection*)(HCE->GetHC(trackerCollID)); + CHC = (ExN04CalorimeterHitsCollection*)(HCE->GetHC(calorimeterCollID)); + MHC = (ExN04MuonHitsCollection*)(HCE->GetHC(muonCollID)); + } + + if(THC) + { + int n_hit = THC->entries(); + G4cout << " " << n_hit + << " hits are stored in ExN04TrackerHitsCollection." << G4endl; + } + if(CHC) + { + int n_hit = CHC->entries(); + G4cout << " " << n_hit + << " hits are stored in ExN04CalorimeterHitsCollection." << G4endl; + G4double totE = 0; + for(int i=0;iGetEdep(); } + G4cout << " Total energy deposition in calorimeter : " + << totE / GeV << " (GeV)" << G4endl; + } + if(MHC) + { + int n_hit = MHC->entries(); + G4cout << " " << n_hit + << " hits are stored in ExN04MuonHitsCollection." << G4endl; + } +} + diff --git a/source/persistency/global/src/G4VMaterialMap.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04Field.cc similarity index 79% rename from source/persistency/global/src/G4VMaterialMap.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04Field.cc index 473b7e6458..fa8abd7c8c 100644 --- a/source/persistency/global/src/G4VMaterialMap.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04Field.cc @@ -20,28 +20,26 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4VMaterialMap.cc,v 1.3 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "G4VMaterialMap.hh" +#include "ExN04Field.hh" -G4VMaterialMap* G4VMaterialMap::fMaterialMap = 0; - -G4VMaterialMap* G4VMaterialMap::GetMaterialMap() +ExN04Field::ExN04Field() { - return fMaterialMap; + Bz = 3.0*tesla; + rmax_sq = sqr(50.*cm); + zmax = 100.*cm; } -G4VMaterialMap::G4VMaterialMap() +ExN04Field::~ExN04Field() +{;} + +void ExN04Field::GetFieldValue(const double Point[3],double *Bfield) const { - fMaterialMap = this; + Bfield[0] = 0.; + Bfield[1] = 0.; + if(abs(Point[2])reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (fDecayProcess.IsApplicable(*particle)) { + pmanager ->AddProcess(&fDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(&fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(&fDecayProcess, idxAtRest); + } + } +} + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc new file mode 100644 index 0000000000..aa3b53c557 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc @@ -0,0 +1,431 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include "ExN04HadronPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +ExN04HadronPhysics::ExN04HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +ExN04HadronPhysics::~ExN04HadronPhysics() +{ +delete theStringDecay; +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +// Nuclei +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +void ExN04HadronPhysics::ConstructParticle() +{ + // Construct all mesons + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + // Construct all barions + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + // Construct resonaces and quarks + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); + +} + + +#include "G4ProcessManager.hh" + + +void ExN04HadronPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + theElasticProcess.RegisterMe(theElasticModel); + + // pi+ and pi- + + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade.SetDeExcitation(thePreEquilib); + theTheoModel.SetTransport(&theCascade); + theTheoModel.SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); + theTheoModel.SetMinEnergy(15*GeV); + theTheoModel.SetMaxEnergy(100*TeV); + + // PionPlus + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionPlusModel = new G4LEPionPlusInelastic(); + thePionPlusInelastic.RegisterMe(theLEPionPlusModel); + thePionPlusInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&thePionPlusInelastic); + + pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePionPlusMult); + pManager->SetProcessOrdering(&thePionPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePionPlusMult, idxPostStep, 1); + + // PionMinus + pManager = G4PionMinus::PionMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionMinusModel = new G4LEPionMinusInelastic(); + thePionMinusInelastic.RegisterMe(theLEPionMinusModel); + thePionMinusInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&thePionMinusInelastic); + + pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePionMinusMult); + pManager->SetProcessOrdering(&thePionMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePionMinusMult, idxPostStep, 1); + + pManager->AddRestProcess(&thePionMinusAbsorption, ordDefault); + + // KaonPlus + pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonPlusModel = new G4LEKaonPlusInelastic(); + theHEKaonPlusModel = new G4HEKaonPlusInelastic(); + theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); + theKaonPlusInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&theKaonPlusInelastic); + + pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theKaonPlusMult); + pManager->SetProcessOrdering(&theKaonPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theKaonPlusMult, idxPostStep, 1); + + // KaonMinus + pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonMinusModel = new G4LEKaonMinusInelastic(); + theHEKaonMinusModel = new G4HEKaonMinusInelastic(); + theKaonMinusInelastic.RegisterMe(theLEKaonMinusModel); + theKaonMinusInelastic.RegisterMe(theHEKaonMinusModel); + pManager->AddDiscreteProcess(&theKaonMinusInelastic); + + pManager->AddProcess(&theKaonMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theKaonMinusMult); + pManager->SetProcessOrdering(&theKaonMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theKaonMinusMult, idxPostStep, 1); + + pManager->AddRestProcess(&theKaonMinusAbsorption, ordDefault); + + // KaonZeroL + pManager = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); + theHEKaonZeroLModel = new G4HEKaonZeroInelastic(); + theKaonZeroLInelastic.RegisterMe(theLEKaonZeroLModel); + theKaonZeroLInelastic.RegisterMe(theHEKaonZeroLModel); + pManager->AddDiscreteProcess(&theKaonZeroLInelastic); + + // KaonZeroS + pManager = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); + theHEKaonZeroSModel = new G4HEKaonZeroInelastic(); + theKaonZeroSInelastic.RegisterMe(theLEKaonZeroSModel); + theKaonZeroSInelastic.RegisterMe(theHEKaonZeroSModel); + pManager->AddDiscreteProcess(&theKaonZeroSInelastic); + + // Proton + pManager = G4Proton::Proton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEProtonModel = new G4LEProtonInelastic(); + theHEProtonModel = new G4HEProtonInelastic(); + theProtonInelastic.RegisterMe(theLEProtonModel); + theProtonInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&theProtonInelastic); + + pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theProtonMult); + pManager->SetProcessOrdering(&theProtonMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theProtonMult, idxPostStep, 1); + + // anti-Proton + pManager = G4AntiProton::AntiProton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiProtonModel = new G4LEAntiProtonInelastic(); + theHEAntiProtonModel = new G4HEAntiProtonInelastic(); + theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel); + theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel); + pManager->AddDiscreteProcess(&theAntiProtonInelastic); + + pManager->AddProcess(&theAntiProtonIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiProtonMult); + pManager->SetProcessOrdering(&theAntiProtonMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiProtonMult, idxPostStep, 1); + + pManager->AddRestProcess(&theAntiProtonAnnihilation); + + // Neutron + pManager = G4Neutron::Neutron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLENeutronModel = new G4LENeutronInelastic(); + theHENeutronModel = new G4HENeutronInelastic(); + theNeutronInelastic.RegisterMe(theLENeutronModel); + theNeutronInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&theNeutronInelastic); + + //theNeutronFissionModel = new G4LFission(); + //theNeutronFission.RegisterMe(theNeutronFissionModel); + //pManager->AddDiscreteProcess(&NeutronFission); + + //theNeutronCaptureModel = new G4LCapture(); + //theNeutronCapture.RegisterMe(theNeutronCaptureModel); + //pManager->AddDiscreteProcess(&theNeutronCapture); + + // AntiNeutron + pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiNeutronModel = new G4LEAntiNeutronInelastic(); + theHEAntiNeutronModel = new G4HEAntiNeutronInelastic(); + theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel); + theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel); + pManager->AddDiscreteProcess(&theAntiNeutronInelastic); + + pManager->AddRestProcess(&theAntiNeutronAnnihilation); + + // Lambda + pManager = G4Lambda::Lambda()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLELambdaModel = new G4LELambdaInelastic(); + theHELambdaModel = new G4HELambdaInelastic(); + theLambdaInelastic.RegisterMe(theLELambdaModel); + theLambdaInelastic.RegisterMe(theHELambdaModel); + pManager->AddDiscreteProcess(&theLambdaInelastic); + + // AntiLambda + pManager = G4AntiLambda::AntiLambda()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiLambdaModel = new G4LEAntiLambdaInelastic(); + theHEAntiLambdaModel = new G4HEAntiLambdaInelastic(); + theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel); + theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel); + pManager->AddDiscreteProcess(&theAntiLambdaInelastic); + + // SigmaMinus + pManager = G4SigmaMinus::SigmaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLESigmaMinusModel = new G4LESigmaMinusInelastic(); + theHESigmaMinusModel = new G4HESigmaMinusInelastic(); + theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel); + theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel); + pManager->AddDiscreteProcess(&theSigmaMinusInelastic); + + pManager->AddProcess(&theSigmaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theSigmaMinusMult); + pManager->SetProcessOrdering(&theSigmaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theSigmaMinusMult, idxPostStep, 1); + + // anti-SigmaMinus + pManager = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic(); + theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic(); + theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel); + theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel); + pManager->AddDiscreteProcess(&theAntiSigmaMinusInelastic); + + pManager->AddProcess(&theAntiSigmaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiSigmaMinusMult); + pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxPostStep, 1); + + // SigmaPlus + pManager = G4SigmaPlus::SigmaPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLESigmaPlusModel = new G4LESigmaPlusInelastic(); + theHESigmaPlusModel = new G4HESigmaPlusInelastic(); + theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel); + theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel); + pManager->AddDiscreteProcess(&theSigmaPlusInelastic); + + pManager->AddProcess(&theSigmaPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theSigmaPlusMult); + pManager->SetProcessOrdering(&theSigmaPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theSigmaPlusMult, idxPostStep, 1); + + // anti-SigmaPlus + pManager = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic(); + theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic(); + theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel); + theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel); + pManager->AddDiscreteProcess(&theAntiSigmaPlusInelastic); + + pManager->AddProcess(&theAntiSigmaPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiSigmaPlusMult); + pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxPostStep, 1); + + // XiMinus + pManager = G4XiMinus::XiMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEXiMinusModel = new G4LEXiMinusInelastic(); + theHEXiMinusModel = new G4HEXiMinusInelastic(); + theXiMinusInelastic.RegisterMe(theLEXiMinusModel); + theXiMinusInelastic.RegisterMe(theHEXiMinusModel); + pManager->AddDiscreteProcess(&theXiMinusInelastic); + + pManager->AddProcess(&theXiMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theXiMinusMult); + pManager->SetProcessOrdering(&theXiMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theXiMinusMult, idxPostStep, 1); + + // anti-XiMinus + pManager = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic(); + theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic(); + theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel); + theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel); + pManager->AddDiscreteProcess(&theAntiXiMinusInelastic); + + pManager->AddProcess(&theAntiXiMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiXiMinusMult); + pManager->SetProcessOrdering(&theAntiXiMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiXiMinusMult, idxPostStep, 1); + + // XiZero + pManager = G4XiZero::XiZero()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEXiZeroModel = new G4LEXiZeroInelastic(); + theHEXiZeroModel = new G4HEXiZeroInelastic(); + theXiZeroInelastic.RegisterMe(theLEXiZeroModel); + theXiZeroInelastic.RegisterMe(theHEXiZeroModel); + pManager->AddDiscreteProcess(&theXiZeroInelastic); + + // anti-XiZero + pManager = G4AntiXiZero::AntiXiZero()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic(); + theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic(); + theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel); + theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel); + pManager->AddDiscreteProcess(&theAntiXiZeroInelastic); + + // OmegaMinus + pManager = G4OmegaMinus::OmegaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEOmegaMinusModel = new G4LEOmegaMinusInelastic(); + theHEOmegaMinusModel = new G4HEOmegaMinusInelastic(); + theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel); + theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel); + pManager->AddDiscreteProcess(&theOmegaMinusInelastic); + + pManager->AddProcess(&theOmegaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theOmegaMinusMult); + pManager->SetProcessOrdering(&theOmegaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theOmegaMinusMult, idxPostStep, 1); + + // anti-OmegaMinus + pManager = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic(); + theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic(); + theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel); + theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel); + pManager->AddDiscreteProcess(&theAntiOmegaMinusInelastic); + + pManager->AddProcess(&theAntiOmegaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiOmegaMinusMult); + pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1); + +} + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc new file mode 100644 index 0000000000..a8a0ab584a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc @@ -0,0 +1,140 @@ +// +// ******************************************************************** +// * 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: ExN04IonPhysics.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "ExN04IonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +ExN04IonPhysics::ExN04IonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +ExN04IonPhysics::~ExN04IonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +// Nuclei +#include "G4IonConstructor.hh" + +void ExN04IonPhysics::ConstructParticle() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + + +#include "G4ProcessManager.hh" + + +void ExN04IonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + theElasticProcess.RegisterMe(theElasticModel); + + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fIonMultipleScattering); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fDeuteronModel = new G4LEDeuteronInelastic(); + fDeuteronProcess.RegisterMe(fDeuteronModel); + pManager->AddDiscreteProcess(&fDeuteronProcess); + + pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fDeuteronMultipleScattering); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); + + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fTritonModel = new G4LETritonInelastic(); + fTritonProcess.RegisterMe(fTritonModel); + pManager->AddDiscreteProcess(&fTritonProcess); + + pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fTritonMultipleScattering); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1); + + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fAlphaModel = new G4LEAlphaInelastic(); + fAlphaProcess.RegisterMe(fAlphaModel); + pManager->AddDiscreteProcess(&fAlphaProcess); + + pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fAlphaMultipleScattering); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); + + // He3 + pManager = G4He3::He3()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + + pManager->AddProcess(&fHe3MultipleScattering); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc new file mode 100644 index 0000000000..ca82efb025 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc @@ -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. * +// ******************************************************************** +// + +#include "ExN04MuonHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" + + +G4Allocator ExN04MuonHitAllocator; + +ExN04MuonHit::ExN04MuonHit() +{;} + +ExN04MuonHit::~ExN04MuonHit() +{;} + +ExN04MuonHit::ExN04MuonHit(const ExN04MuonHit &right) +{ + edep = right.edep; + pos = right.pos; +} + +const ExN04MuonHit& ExN04MuonHit::operator=(const ExN04MuonHit &right) +{ + edep = right.edep; + pos = right.pos; + return *this; +} + +int ExN04MuonHit::operator==(const ExN04MuonHit &right) const +{ + return 0; +} + +void ExN04MuonHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Circle circle(pos); + circle.SetScreenSize(0.04); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.,0.,0.); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +void ExN04MuonHit::Print() +{;} + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc new file mode 100644 index 0000000000..5ea66e1c6e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * 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: ExN04MuonPhysics.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "ExN04MuonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +ExN04MuonPhysics::ExN04MuonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +ExN04MuonPhysics::~ExN04MuonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" +#include "G4NeutrinoTau.hh" +#include "G4AntiNeutrinoTau.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" + +void ExN04MuonPhysics::ConstructParticle() +{ + // Mu + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + + // Tau + G4TauMinus::TauMinusDefinition(); + G4TauPlus::TauPlusDefinition(); + G4NeutrinoTau::NeutrinoTauDefinition(); + G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); + +} + + +#include "G4ProcessManager.hh" + +void ExN04MuonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Muon Plus Physics + pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuPlusPairProduction); + + pManager->AddProcess(&fMuPlusMultipleScattering); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1); + + // Muon Minus Physics + pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuMinusPairProduction); + + pManager->AddProcess(&fMuMinusMultipleScattering); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1); + pManager->AddRestProcess(&fMuMinusCaptureAtRest); + + // Tau Plus Physics + pManager = G4TauPlus::TauPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauPlusMultipleScattering); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1); + + // Tau Minus Physics + pManager = G4TauMinus::TauMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauMinusMultipleScattering); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc similarity index 50% rename from examples/extended/persistency/PersistentEx01/src/PersEx01EventAction.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc index f1559c1c59..b464103b89 100644 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01EventAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc @@ -21,55 +21,74 @@ // ******************************************************************** // -#include "PersEx01EventAction.hh" - -#include "PersEx01TrackerHit.hh" - -#include "G4Event.hh" -#include "G4EventManager.hh" +#include "ExN04MuonSD.hh" +#include "ExN04MuonHit.hh" #include "G4HCofThisEvent.hh" -#include "G4VHitsCollection.hh" -#include "G4SDManager.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" #include "G4ios.hh" -PersEx01EventAction::PersEx01EventAction() +ExN04MuonSD::ExN04MuonSD(G4String name) +:G4VSensitiveDetector(name) { - colID1 = -1; - colID2 = -1; + G4String HCname; + collectionName.insert(HCname="muonCollection"); + positionResolution = 5*cm; } -PersEx01EventAction::~PersEx01EventAction() +ExN04MuonSD::~ExN04MuonSD(){;} + +void ExN04MuonSD::Initialize(G4HCofThisEvent*HCE) +{ + static int HCID = -1; + muonCollection = new ExN04MuonHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = GetCollectionID(0); } + HCE->AddHitsCollection(HCID,muonCollection); +} + +G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + + if(edep==0.) return true; + + ExN04MuonHit* aHit; + int nHit = muonCollection->entries(); + G4ThreeVector hitpos = aStep->GetPreStepPoint()->GetPosition(); + for(int i=0;iGetPos(); + G4double dist2 = sqr(pos.x()-hitpos.x()) + +sqr(pos.y()-hitpos.y())+sqr(pos.z()-hitpos.z()); + if(dist2<=sqr(positionResolution)) + aHit->AddEdep(edep); + return true; + } + + aHit = new ExN04MuonHit(); + aHit->SetEdep( edep ); + aHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); + muonCollection->insert( aHit ); + + return true; +} + +void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*HCE) {;} -void PersEx01EventAction::BeginOfEventAction(const G4Event* ) +void ExN04MuonSD::clear() { - if(colID1<0||colID2<0) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - G4String colNam; - colID1 = SDman->GetCollectionID(colNam="EvenCollection"); - colID2 = SDman->GetCollectionID(colNam="OddCollection"); - } -} +} -void PersEx01EventAction::EndOfEventAction(const G4Event* evt) +void ExN04MuonSD::DrawAll() { - G4cout << ">>> Event " << evt->GetEventID() << G4endl; +} - G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); - PersEx01TrackerHitsCollection * pTHC1 - = (PersEx01TrackerHitsCollection*)(HCE->GetHC(colID1)); - PersEx01TrackerHitsCollection * pTHC2 - = (PersEx01TrackerHitsCollection*)(HCE->GetHC(colID2)); - - G4cout << "Event : " << evt->GetEventID() << G4endl - << pTHC1->GetSDname() << "/" << pTHC1->GetName() << " " - << "Number of hits " << pTHC1->entries() << G4endl; - if( pTHC1->entries() > 0 ) - G4cout << " Edep of the first Hit " << (*pTHC1)[0]->GetEdep() << G4endl; - G4cout << pTHC2->GetSDname() << "/" << pTHC2->GetName() << " " - << "Number of hits " << pTHC2->entries() << G4endl; - if( pTHC2->entries() > 0 ) - G4cout << " Edep of the first Hit " << (*pTHC2)[0]->GetEdep() << G4endl; -} +void ExN04MuonSD::PrintAll() +{ +} diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc new file mode 100644 index 0000000000..d8a3d61a7f --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc @@ -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: ExN04PhysicsList.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "ExN04PhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "ExN04GeneralPhysics.hh" +#include "ExN04EMPhysics.hh" +#include "ExN04MuonPhysics.hh" +#include "ExN04HadronPhysics.hh" +#include "ExN04IonPhysics.hh" + +ExN04PhysicsList::ExN04PhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + defaultCutValue = 1.0*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new ExN04GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new ExN04EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new ExN04MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new ExN04HadronPhysics("hadron")); + + // Ion Physics + RegisterPhysics( new ExN04IonPhysics("ion")); + + +} + +ExN04PhysicsList::~ExN04PhysicsList() +{ +} + +void ExN04PhysicsList::SetCuts() +{ + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + SetCutsWithDefault(); +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..4567bc8d5d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// ExN04PrimaryGeneratorAction.cc +// $Id: ExN04PrimaryGeneratorAction.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// +// ==================================================================== +#include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4HepMCAsciiReader.hh" +#include "H01PythiaInterface.hh" + + +////////////////////////////////////////////////////////// +ExN04PrimaryGeneratorAction::ExN04PrimaryGeneratorAction() +////////////////////////////////////////////////////////// +{ + // default generator is particle gun. + currentGenerator= particleGun= new G4ParticleGun(); + currentGeneratorName= "particleGun"; + hepmcAscii= new G4HepMCAsciiReader(); + pythiaGen= new H01PythiaInterface(); + + gentypeMap["particleGun"]= particleGun; + gentypeMap["hepmcAscii"]= hepmcAscii; + gentypeMap["pythia"]= pythiaGen; + + messenger= new ExN04PrimaryGeneratorMessenger(this); +} + +/////////////////////////////////////////////////////////// +ExN04PrimaryGeneratorAction::~ExN04PrimaryGeneratorAction() +/////////////////////////////////////////////////////////// +{ + delete messenger; +} + +///////////////////////////////////////////////////////////////////// +void ExN04PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +///////////////////////////////////////////////////////////////////// +{ + if(currentGenerator) + currentGenerator-> GeneratePrimaryVertex(anEvent); + else + G4Exception("generator is not instanciated."); +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..a1846195db --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// ExN04PrimaryGeneratorMessenger.cc +// $Id: ExN04PrimaryGeneratorMessenger.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// +// ==================================================================== +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIdirectory.hh" + +#include "ExN04PrimaryGeneratorMessenger.hh" +#include "ExN04PrimaryGeneratorAction.hh" + +//////////////////////////////////////////////////////////////////// +ExN04PrimaryGeneratorMessenger::ExN04PrimaryGeneratorMessenger + (ExN04PrimaryGeneratorAction* genaction) + : primaryAction(genaction) +//////////////////////////////////////////////////////////////////// +{ + mydetdir = new G4UIdirectory("/mydet/"); + mydetdir-> SetGuidance("ExN04 detector control commands."); + + dir= new G4UIdirectory("/generator/"); + dir-> SetGuidance("Control commands for primary generator"); + + select= new G4UIcmdWithAString("/generator/select", this); + select-> SetGuidance("select generator type"); + select-> SetParameterName("generator_type", false, false); + select-> SetCandidates("particleGun pythia hepmcAscii"); + select-> SetDefaultValue("particleGun"); +} + +///////////////////////////////////////////////////////////////// +ExN04PrimaryGeneratorMessenger::~ExN04PrimaryGeneratorMessenger() +///////////////////////////////////////////////////////////////// +{ + delete select; + + delete mydetdir; + delete dir; +} + +////////////////////////////////////////////////////////////////////// +void ExN04PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValues) +////////////////////////////////////////////////////////////////////// +{ + if ( command==select) { + primaryAction-> SetGenerator(newValues); + G4cout << "current generator type: " + << primaryAction-> GetGeneratorName() << G4endl; + } else { + } +} + + +////////////////////////////////////////////////////////////////////////////// +G4String ExN04PrimaryGeneratorMessenger::GetCurrentValue(G4UIcommand* command) +////////////////////////////////////////////////////////////////////////////// +{ + G4String cv, st; + if (command == select) { + cv= primaryAction-> GetGeneratorName(); + } + + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc new file mode 100644 index 0000000000..ced337879a --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.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: ExN04RunAction.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04RunAction.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::~ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + G4RunManager::GetRunManager()->SetRandomNumberStore(true); + + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04RunAction::EndOfRunAction(const G4Run*) +{ + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingAction.cc new file mode 100644 index 0000000000..cbe49ae54f --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingAction.cc @@ -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. * +// ******************************************************************** +// + +#include "ExN04StackingAction.hh" +#include "G4SDManager.hh" +#include "G4RunManager.hh" +#include "G4Event.hh" +#include "G4HCofThisEvent.hh" +#include "G4Track.hh" +#include "G4TrackStatus.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "ExN04StackingActionMessenger.hh" +#include "G4ios.hh" + +ExN04StackingAction::ExN04StackingAction() + : trkHits(0), muonHits(0), stage(0) +{ + angRoI = 30.0*deg; + reqMuon = 2; + reqIso = 10; + theMessenger = new ExN04StackingActionMessenger(this); +} + +ExN04StackingAction::~ExN04StackingAction() +{ delete theMessenger; } + +G4ClassificationOfNewTrack +ExN04StackingAction::ClassifyNewTrack(const G4Track * aTrack) +{ + G4ClassificationOfNewTrack classification = fWaiting; + switch(stage) + { + case 0: // Stage 0 : Primary muons only + if(aTrack->GetParentID()==0) + { + G4ParticleDefinition * particleType = aTrack->GetDefinition(); + if((particleType==G4MuonPlus::MuonPlusDefinition()) + ||(particleType==G4MuonMinus::MuonMinusDefinition())) + { classification = fUrgent; } + } + break; + + case 1: // Stage 1 : Charged primaries only + // Suspended tracks will be sent to the waiting stack + if(aTrack->GetParentID()!=0) { break; } + if(aTrack->GetTrackStatus()==fSuspend) { break; } + if(aTrack->GetDefinition()->GetPDGCharge()==0.) { break; } + classification = fUrgent; + break; + + default: // Stage 2 : Accept all primaries + // Accept all secondaries in RoI + // Kill secondaries outside RoI + if(aTrack->GetParentID()==0) + { + classification = fUrgent; + break; + } + if((angRoI<0.)||InsideRoI(aTrack,angRoI)) + { + classification = fUrgent; + break; + } + classification = fKill; + } + return classification; +} + +G4bool ExN04StackingAction::InsideRoI(const G4Track * aTrack,G4double ang) +{ + if(!muonHits) + { muonHits = (ExN04MuonHitsCollection*)GetCollection("muonCollection"); } + if(!muonHits) + { G4cerr << "muonCollection NOT FOUND" << G4endl; + return true; } + + G4int nhits = muonHits->entries(); + + const G4ThreeVector trPos = aTrack->GetPosition(); + for(G4int i=0;iGetPos(); + G4double angl = muHitPos.angle(trPos); + if(anglGetCollectionID(colName); + if(colID>=0) + { + const G4Event* currentEvent = runMan->GetCurrentEvent(); + G4HCofThisEvent* HCE = currentEvent->GetHCofThisEvent(); + return HCE->GetHC(colID); + } + return 0; +} + +void ExN04StackingAction::NewStage() +{ + stage++; + G4int nhits; + if(stage==1) + { + // Stage 0->1 : check if at least "reqMuon" hits on muon chamber + // otherwise abort current event + if(!muonHits) + { muonHits = (ExN04MuonHitsCollection*)GetCollection("muonCollection"); } + if(!muonHits) + { G4cerr << "muonCollection NOT FOUND" << G4endl; + return; } + nhits = muonHits->entries(); + G4cout << "Stage 0->1 : " << nhits << " hits found in the muon chamber." + << G4endl; + if(nhitsclear(); + G4cout << "++++++++ event aborted" << G4endl; + return; + } + stackManager->ReClassify(); + return; + } + + else if(stage==2) + { + // Stage 1->2 : check the isolation of muon tracks + // at least "reqIsoMuon" isolated muons + // otherwise abort current event. + // Isolation requires "reqIso" or less hits + // (including own hits) in the RoI region + // in the tracker layers. + nhits = muonHits->entries(); + if(!trkHits) + { trkHits = (ExN04TrackerHitsCollection*)GetCollection("trackerCollection"); } + if(!trkHits) + { G4cerr << "trackerCollection NOT FOUND" << G4endl; + return; } + G4int nTrkhits = trkHits->entries(); + G4int isoMuon = 0; + for(G4int j=0;jGetPos(); + G4int nhitIn = 0; + for(G4int jj=0;(jjGetPos(); + if(trkhitPos.angle(hitPos)2 : " << isoMuon << " isolated muon found." << G4endl; + if(isoMuonclear(); + G4cout << "++++++++ event aborted" << G4endl; + return; + } + stackManager->ReClassify(); + return; + } + + else + { + // Other stage change : just re-classify + stackManager->ReClassify(); + } +} + +void ExN04StackingAction::PrepareNewEvent() +{ + stage = 0; + trkHits = 0; + muonHits = 0; +} + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingActionMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingActionMessenger.cc new file mode 100644 index 0000000000..64244bb9a6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04StackingActionMessenger.cc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "ExN04StackingActionMessenger.hh" +#include "ExN04StackingAction.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4ios.hh" + +ExN04StackingActionMessenger::ExN04StackingActionMessenger(ExN04StackingAction * msa) +:myAction(msa) +{ + muonCmd = new G4UIcmdWithAnInteger("/mydet/reqmuon",this); + muonCmd->SetGuidance("Number of muon for the trigger."); + muonCmd->SetParameterName("N",true); + muonCmd->SetDefaultValue(2); + muonCmd->SetRange("N>=0"); + + isomuonCmd = new G4UIcmdWithAnInteger("/mydet/isomuon",this); + isomuonCmd->SetGuidance("Number of isolated muon for the trigger."); + isomuonCmd->SetParameterName("N",true); + isomuonCmd->SetDefaultValue(2); + isomuonCmd->SetRange("N>=0"); + + isoCmd = new G4UIcmdWithAnInteger("/mydet/isolation",this); + isoCmd->SetGuidance("Maximum allowed number of hits in tracker"); + isoCmd->SetGuidance(" for an isolated muon track (includes hits by muon)"); + isoCmd->SetParameterName("N",true); + isoCmd->SetDefaultValue(10); + isoCmd->SetRange("N>=0"); + + roiCmd = new G4UIcmdWithADoubleAndUnit("/mydet/RoIangle",this); + roiCmd->SetGuidance("Define RoI angle"); + roiCmd->SetParameterName("theta",true,true); + roiCmd->SetDefaultUnit("deg"); +} + +ExN04StackingActionMessenger::~ExN04StackingActionMessenger() +{ + delete muonCmd; + delete isomuonCmd; + delete isoCmd; + delete roiCmd; +} + +void ExN04StackingActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==muonCmd ) + { myAction->SetNRequestMuon(muonCmd->GetNewIntValue(newValue)); } + else if( command==isomuonCmd ) + { myAction->SetNRequestIsoMuon(isomuonCmd->GetNewIntValue(newValue)); } + else if( command==isoCmd ) + { myAction->SetNIsolation(isoCmd->GetNewIntValue(newValue)); } + else if( command==roiCmd ) + { myAction->SetRoIAngle(roiCmd->GetNewDoubleValue(newValue)); } +} + +G4String ExN04StackingActionMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + + if( command==muonCmd ) + { cv = muonCmd->ConvertToString(myAction->GetNRequestMuon()); } + else if( command==isomuonCmd ) + { cv = isomuonCmd->ConvertToString(myAction->GetNRequestIsoMuon()); } + else if( command==isoCmd ) + { cv = isoCmd->ConvertToString(myAction->GetNIsolation()); } + else if( command==roiCmd ) + { cv = roiCmd->ConvertToString(myAction->GetRoIAngle(),"deg"); } + + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingAction.cc new file mode 100644 index 0000000000..83ce56ad7c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingAction.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. * +// ******************************************************************** +// + +#include "ExN04SteppingAction.hh" +#include "G4SteppingManager.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "G4TrackStatus.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" + +ExN04SteppingAction::ExN04SteppingAction() +{;} + +ExN04SteppingAction::~ExN04SteppingAction() +{;} + +void ExN04SteppingAction::UserSteppingAction(const G4Step * theStep) +{ + G4Track * theTrack = theStep->GetTrack(); + + // check if it is alive + if(theTrack->GetTrackStatus()!=fAlive) { return; } + + // check if it is primary + if(theTrack->GetParentID()!=0) { return; } + + // check if it is NOT muon + G4ParticleDefinition * particleType = theTrack->GetDefinition(); + if((particleType==G4MuonPlus::MuonPlusDefinition()) + ||(particleType==G4MuonMinus::MuonMinusDefinition())) + { return; } + + // check if it is entering to the calorimeter volume + G4StepPoint * thePrePoint = theStep->GetPreStepPoint(); + G4VPhysicalVolume * thePrePV = thePrePoint->GetPhysicalVolume(); + G4String thePrePVname = thePrePV->GetName(); + if(thePrePVname(0,4)=="calo") { return; } + G4StepPoint * thePostPoint = theStep->GetPostStepPoint(); + G4VPhysicalVolume * thePostPV = thePostPoint->GetPhysicalVolume(); + G4String thePostPVname = thePostPV->GetName(); + if(thePostPVname(0,4)!="calo") { return; } + + // then suspend the track + theTrack->SetTrackStatus(fSuspend); +} + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc new file mode 100644 index 0000000000..789f86af6b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc @@ -0,0 +1,176 @@ +// +// ******************************************************************** +// * 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: ExN04SteppingVerbose.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::~ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << G4std::setw( 5) << "#Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "Volume" << " " + << G4std::setw(10) << "Process" << G4endl; + } + + G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << G4std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << " " + << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); + } else { + G4cout << " UserLimit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot + << "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << G4std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::TrackingStarted() +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << G4std::setw( 5) << "Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "Volume" << " " + << G4std::setw(10) << "Process" << G4endl; + + G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + if(fTrack->GetNextVolume()){ + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << G4std::setw(10) << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc new file mode 100644 index 0000000000..f6094b7618 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc @@ -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. * +// ******************************************************************** +// + +#include "ExN04TrackerHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" + + +G4Allocator ExN04TrackerHitAllocator; + +ExN04TrackerHit::ExN04TrackerHit() +{;} + +ExN04TrackerHit::~ExN04TrackerHit() +{;} + +ExN04TrackerHit::ExN04TrackerHit(const ExN04TrackerHit &right) +{ + edep = right.edep; + pos = right.pos; +} + +const ExN04TrackerHit& ExN04TrackerHit::operator=(const ExN04TrackerHit &right) +{ + edep = right.edep; + pos = right.pos; + return *this; +} + +int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const +{ + return 0; +} + +void ExN04TrackerHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Circle circle(pos); + circle.SetScreenSize(0.04); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.,0.,0.); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +void ExN04TrackerHit::Print() +{;} + + diff --git a/examples/extended/biasing/B04/src/B04PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc similarity index 65% rename from examples/extended/biasing/B04/src/B04PrimaryGeneratorAction.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc index 4dc1a72a46..55b3ff1cc8 100644 --- a/examples/extended/biasing/B04/src/B04PrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc @@ -20,36 +20,37 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B04PrimaryGeneratorAction.cc,v 1.4 2002/05/15 02:48:43 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "globals.hh" +#include "ExN04TrackerParametrisation.hh" -#include "B04PrimaryGeneratorAction.hh" - -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4Neutron.hh" +#include "G4VPhysicalVolume.hh" #include "G4ThreeVector.hh" +#include "G4Tubs.hh" -B04PrimaryGeneratorAction::B04PrimaryGeneratorAction() +ExN04TrackerParametrisation::ExN04TrackerParametrisation() { - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); - particleGun->SetParticleEnergy(10.0*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, -15.0005*cm)); - particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0, 0.0, 1.0)); + +#include "ExN04DetectorParameterDef.icc" + } -B04PrimaryGeneratorAction::~B04PrimaryGeneratorAction() +ExN04TrackerParametrisation::~ExN04TrackerParametrisation() +{;} + +void ExN04TrackerParametrisation::ComputeTransformation +(const G4int copyNo,G4VPhysicalVolume *physVol) const { - delete particleGun; + G4ThreeVector origin; + physVol->SetTranslation(origin); } -void B04PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void ExN04TrackerParametrisation::ComputeDimensions +(G4Tubs & trackerLayer, const G4int copyNo, + const G4VPhysicalVolume * physVol) const { - particleGun->GeneratePrimaryVertex(anEvent); + trackerLayer.SetInnerRadius(tracker_radius[copyNo]); + trackerLayer.SetOuterRadius(tracker_radius[copyNo]+tracker_thick); + trackerLayer.SetZHalfLength(tracker_length[copyNo]); + trackerLayer.SetStartPhiAngle(trkTubs_sphi); + trackerLayer.SetDeltaPhiAngle(trkTubs_dphi); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc new file mode 100644 index 0000000000..0389809c88 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "ExN04TrackerSD.hh" +#include "ExN04TrackerHit.hh" +#include "G4Step.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4ios.hh" + +ExN04TrackerSD::ExN04TrackerSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="trackerCollection"); +} + +ExN04TrackerSD::~ExN04TrackerSD(){;} + +void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE) +{ + static int HCID = -1; + trackerCollection = new ExN04TrackerHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = GetCollectionID(0); } + HCE->AddHitsCollection(HCID,trackerCollection); +} + +G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) return false; + + ExN04TrackerHit* newHit = new ExN04TrackerHit(); + newHit->SetEdep( edep ); + newHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); + trackerCollection->insert( newHit ); + + return true; +} + +void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*HCE) +{;} + +void ExN04TrackerSD::clear() +{ +} + +void ExN04TrackerSD::DrawAll() +{ +} + +void ExN04TrackerSD::PrintAll() +{ +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackingAction.cc new file mode 100644 index 0000000000..400d3b5601 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackingAction.cc @@ -0,0 +1,38 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + + +#include "ExN04TrackingAction.hh" +#include "G4TrackingManager.hh" +#include "G4Track.hh" + +void ExN04TrackingAction::PreUserTrackingAction(const G4Track* aTrack) +{ + // Create trajectory only for primaries + if(aTrack->GetParentID()==0) + { fpTrackingManager->SetStoreTrajectory(true); } + else + { fpTrackingManager->SetStoreTrajectory(false); } +} + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc new file mode 100644 index 0000000000..0db2128549 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc @@ -0,0 +1,155 @@ +// +// ******************************************************************** +// * 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 2002/11/19 10:31:40 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// 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_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...... + +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_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/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc new file mode 100644 index 0000000000..af7f7496e7 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc @@ -0,0 +1,188 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H01PythiaInterface.cc +// $Id: H01PythiaInterface.cc,v 1.1 2002/11/19 10:31:40 murakami Exp $ +// +// ==================================================================== +#include "H01PythiaInterface.hh" +#include "H01PythiaMessenger.hh" + +#include "CLHEP/HepMC/CBhepevt.h" +#include "CLHEP/HepMC/include/PythiaWrapper6_2.h" + +// additional pythia calls +#define pygive pygive_ +#define pyrget pyrget_ +#define pyrset pyrset_ + +extern "C" { + void pygive(const char*, int); + void pyrget(int*, int*); + void pyrset(int*, int*); +} + +void call_pygive(G4String s) { pygive(s.c_str(), s.length()); } +void call_pyrget(int a, int b) { pyrget(&a, &b); } +void call_pyrset(int a, int b) { pyrset(&a, &b); } + +// global parameters +hepev2_t hepev2_; +hepev3_t hepev3_; +hepev4_t hepev4_; +hepev5_t hepev5_; + +//////////////////////////////////////// +H01PythiaInterface::H01PythiaInterface() + : verbose(0), mpylist(0) +//////////////////////////////////////// +{ + hepevtio= new HepMC::CBhepevt; + messenger= new H01PythiaMessenger(this); +} + +///////////////////////////////////////// +H01PythiaInterface::~H01PythiaInterface() +///////////////////////////////////////// +{ + delete hepevtio; + delete messenger; +} + +///////////////////////////////////////////////// +void H01PythiaInterface::CallPygive(G4String par) +///////////////////////////////////////////////// +{ + call_pygive(par); +} + +////////////////////////////////////////////////////////////////////// +void H01PythiaInterface::CallPyinit(G4String frame, G4String beam, + G4String target, G4double win) +////////////////////////////////////////////////////////////////////// +{ + call_pyinit(frame.c_str(), beam.c_str(), target.c_str(), win); +} + +//////////////////////////////////////////////// +void H01PythiaInterface::CallPystat(G4int istat) +//////////////////////////////////////////////// +{ + call_pystat(istat); +} + + +////////////////////////////////////////////////////////// +void H01PythiaInterface::CallPyrget(G4int lun, G4int move) +////////////////////////////////////////////////////////// +{ + call_pyrget(lun, move); +} + +////////////////////////////////////////////////////////// +void H01PythiaInterface::CallPyrset(G4int lun, G4int move) +////////////////////////////////////////////////////////// +{ + call_pyrset(lun, move); +} + + +///////////////////////////////////// +void H01PythiaInterface::CallPyevnt() +///////////////////////////////////// +{ + call_pyevnt(); +} + +/////////////////////////////////////////////// +void H01PythiaInterface::CallPylist(G4int mode) +/////////////////////////////////////////////// +{ + call_pylist(mode); +} + +/////////////////////////////////////////////// +void H01PythiaInterface::CallPyhepc(G4int mode) +/////////////////////////////////////////////// +{ + call_pyhepc(mode); +} + + +/////////////////////////////////////////////////// +void H01PythiaInterface::SetRandomSeed(G4int iseed) +/////////////////////////////////////////////////// +{ + pydatr.mrpy[1-1]= iseed; +} + +////////////////////////////////////////////////////////////////////// +void H01PythiaInterface::PrintRandomStatus(G4std::ostream& ostr) const +////////////////////////////////////////////////////////////////////// +{ + ostr << "# Pythia random numbers status" << G4endl; + for (G4int j=0; j<6; j++) { + ostr << "pydatr.mrpy[" << j << "]= " << pydatr.mrpy[j] << G4endl; + } + for (G4int k=0; k<100; k++) { + ostr << "pydatr.rrpy[" << k << "]= " << pydatr.rrpy[k] << G4endl; + } +} + +//////////////////////////////////////////// +void H01PythiaInterface::SetUserParameters() +//////////////////////////////////////////// +{ + G4cout << "set user parameters of PYTHIA common." << G4endl + << "nothing to be done in default." + << G4endl; +} + +///////////////////////////////////////////////////////// +HepMC::GenEvent* H01PythiaInterface::GenerateHepMCEvent() +///////////////////////////////////////////////////////// +{ + static G4int nevent= 0; // event counter + + CallPyevnt(); // generate one event with Pythia + if(mpylist >=1 && mpylist<= 3) CallPylist(mpylist); + + CallPyhepc(1); + + HepMC::GenEvent* evt= new HepMC::GenEvent(); + hepevtio-> toGenEvent(evt, false); + hepevtio-> clean(); // clear HEPEVT common + evt-> set_event_number(nevent++); + if(verbose>0) evt-> print(); + + return evt; +} + +////////////////////////////////////// +void H01PythiaInterface::Print() const +////////////////////////////////////// +{ + G4cout << "PythiaInterface::Print()..." << G4endl; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc new file mode 100644 index 0000000000..4531cdf9aa --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc @@ -0,0 +1,212 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H01PythiaMessenger.cc +// $Id: H01PythiaMessenger.cc,v 1.1 2002/11/19 10:31:40 murakami Exp $ +// +// ==================================================================== +#include "H01PythiaMessenger.hh" +#include "H01PythiaInterface.hh" + +#include "g4std/fstream" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////////////// +H01PythiaMessenger::H01PythiaMessenger(H01PythiaInterface* agen) + : gen(agen) +//////////////////////////////////////////////////////////////// +{ + dir= new G4UIdirectory("/generator/pythia/"); + dir-> SetGuidance("Commands for Pythia event generation"); + + verbose= new G4UIcmdWithAnInteger("/generator/pythia/verbose",this); + verbose-> SetGuidance("set verbose level"); + verbose-> SetParameterName("verboseLevel", false, false); + verbose-> SetRange("verboseLevel>=0 && verboseLevel<=2"); + + mpylist= new G4UIcmdWithAnInteger("/generator/pythia/pylist",this); + mpylist-> SetGuidance("set argument of pylist (not called if mlist=0)"); + mpylist-> SetParameterName("mlist", false, false); + mpylist-> SetRange("mlist>=0 && mlist<=3"); + + print= new G4UIcmdWithoutParameter("/generator/pythia/print", this); + print-> SetGuidance("print user information."); + + cpyinit= new G4UIcommand("/generator/pythia/pyinit", this); + cpyinit-> SetGuidance("call PYINIT"); + G4UIparameter* frame= + new G4UIparameter("frame of the experiment", 's', false); + cpyinit-> SetParameter(frame); + G4UIparameter* beam= new G4UIparameter("beam particle", 's', false); + cpyinit-> SetParameter(beam); + G4UIparameter* target= new G4UIparameter("target particle", 's', false); + cpyinit-> SetParameter(target); + G4UIparameter* win= new G4UIparameter("energy of system (GeV)", 'd', false); + cpyinit-> SetParameter(win); + + cpystat= new G4UIcmdWithAnInteger("/generator/pythia/pystat", this); + cpystat-> SetGuidance("call PYSTAT"); + cpystat-> SetParameterName("mstat", false, false); + cpystat-> SetRange("mstat>=1 && mstat<=5"); + + cpygive= new G4UIcommand("/generator/pythia/pygive",this); + cpygive-> SetGuidance("call PYGIVE"); + G4UIparameter* parameter= new G4UIparameter ("Parameter", 's', false); + cpygive-> SetParameter(parameter); + + setUserParameters= + new G4UIcmdWithoutParameter("/generator/pythia/setUserParameters",this); + setUserParameters-> + SetGuidance("Set user parameters in the Pythia common blocks"); + + setSeed= new G4UIcmdWithAnInteger("/generator/pythia/setSeed", this); + setSeed-> SetGuidance("set initial seed."); + + cpyrget= new G4UIcommand("/generator/pythia/pyrget", this); + cpyrget-> SetGuidance("call PYRGET"); + G4UIparameter* lun, *move; + lun= new G4UIparameter("logical file number", 'i', false); + cpyrget-> SetParameter(lun); + move= new G4UIparameter("choice of adding a new record", 'i', true); + move-> SetDefaultValue(-1); + cpyrget-> SetParameter(move); + + cpyrset= new G4UIcommand("/generator/pythia/pyrset", this); + cpyrset-> SetGuidance("call PYRSET"); + lun= new G4UIparameter("logical file number", 'i', false); + cpyrset-> SetParameter(lun); + move= new G4UIparameter("choice of adding a new record", 'i', true); + move-> SetDefaultValue(0); + cpyrset-> SetParameter(move); + + printRandomStatus= + new G4UIcmdWithAString("/generator/pythia/printRandomStatus", this); + printRandomStatus-> SetGuidance("print random number status."); + printRandomStatus-> SetParameterName("filename", true, false); + printRandomStatus-> SetDefaultValue("G4cout"); +} + +///////////////////////////////////////// +H01PythiaMessenger::~H01PythiaMessenger() +///////////////////////////////////////// +{ + delete verbose; + delete mpylist; + delete print; + delete cpyinit; + delete cpystat; + delete cpygive; + delete setUserParameters; + delete setSeed; + delete cpyrget; + delete cpyrset; + delete printRandomStatus; + + delete dir; +} + +//////////////////////////////////////////////////////////// +void H01PythiaMessenger::SetNewValue(G4UIcommand* command, + G4String newValues) +//////////////////////////////////////////////////////////// +{ + if(command == verbose) { // /verbose ... + G4int level= verbose-> GetNewIntValue(newValues); + gen-> SetVerboseLevel(level); + + } else if (command == mpylist) { // /mpylist ... + G4int mlist= mpylist-> GetNewIntValue(newValues); + gen-> SetPylist(mlist); + + } else if (command == print) { // /print ... + gen-> Print(); + + } else if (command == cpyinit) { // /pyinit ... + const char* strvaluelist= newValues.c_str(); + G4std::istrstream is((char*)strvaluelist); + G4String sframe, sbeam, starget; G4double dwin; + is >> sframe >> sbeam >> starget >> dwin; + gen-> CallPyinit(sframe, sbeam, starget, dwin); + + } else if (command == cpystat) { // /pystat ... + G4int imod= cpystat-> GetNewIntValue(newValues); + gen-> CallPystat(imod); + + } else if (command == cpygive) { // /pygive ... + G4String s= newValues; + gen-> CallPygive(s); + + } else if (command == setUserParameters) { // /setUserParameters ... + gen-> SetUserParameters(); + + } else if (command == setSeed) { // /setSeed ... + G4int iseed= setSeed-> GetNewIntValue(newValues); + gen-> SetRandomSeed(iseed); + + } else if (command == cpyrget) { // /pyrget ... + const char* strvaluelist= newValues.c_str(); + G4std::istrstream is((char*)strvaluelist); + G4int lun, move; + is >> lun >> move; + gen-> CallPyrget(lun, move); + + } else if (command == cpyrset) { // /pyrset ... + const char* strvaluelist= newValues.c_str(); + G4std::istrstream is((char*)strvaluelist); + G4int lun, move; + is >> lun >> move; + gen-> CallPyrset(lun, move); + + } else if (command == printRandomStatus) { // /printRandomStatus ... + G4String s= newValues; + if (newValues == "G4cout") { + gen-> PrintRandomStatus(); + } else { + // to a file (overwrite mode) + G4std::ofstream ofs; + ofs.open(s.c_str(), G4std::ios::out); + //ofs.open(randomStatusFileName.c_str(), std::ios::out|std::ios::app); + ofs.setf(G4std::ios::fixed | G4std::ios::showpoint); + gen-> PrintRandomStatus(ofs); + ofs.close(); + } + } +} + +////////////////////////////////////////////////////////////////////// +G4String H01PythiaMessenger::GetCurrentValue(G4UIcommand* command) +////////////////////////////////////////////////////////////////////// +{ + G4String cv; + if (command == verbose) { + cv= verbose-> ConvertToString(gen->GetVerboseLevel()); + } else if (command == mpylist) { + cv= verbose-> ConvertToString(gen->GetPylist()); + } + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/vis.mac b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/vis.mac new file mode 100644 index 0000000000..aacc1b037b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/vis.mac @@ -0,0 +1,31 @@ +# +# Macro file for the initialization phase of "exampleN02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# create empty scene +# +/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/set/viewpointThetaPhi 90 180 deg +/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 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/History b/examples/extended/eventgenerator/HepMC/HepMCEx01/History index 879bac4f6a..d7f426bbbc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2002/05/28 14:05:17 murakami Exp $ +$Id: History,v 1.3 2002/11/19 10:23:45 murakami Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,9 +14,12 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov. 19, 2002 K.Murakami +- modified as is ExN04. (physics lists and vis. manager) +- "std" namespace left/not cared was modified to "G4std". May. 28, 2002 K.Murakami -- rename classes and filenames. +- renamed classes and filenames. Apr. 15, 2002 K.Murakami - Creared. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f index 01dc39c5e9..795df7197f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f @@ -1,3 +1,24 @@ +* +* ******************************************************************** +* * 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. * +* ******************************************************************** c c Matt.Dobbs@Cern.CH, December 1999 c EXTERNAL statement links PYDATA on most machines. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc index ea96906850..7de11aac77 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.1 2002/04/29 20:43:22 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: hepmcEx01.cc,v 1.2 2002/11/19 10:23:46 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -38,47 +38,72 @@ #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" +#include "G4UItcsh.hh" #include "ExN04DetectorConstruction.hh" #include "ExN04PhysicsList.hh" #include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04RunAction.hh" #include "ExN04EventAction.hh" #include "ExN04StackingAction.hh" #include "ExN04TrackingAction.hh" #include "ExN04SteppingAction.hh" +#include "ExN04SteppingVerbose.hh" +#ifdef G4VIS_USE +#include "ExN04VisManager.hh" +#endif int main(int argc,char** argv) { + G4VSteppingVerbose::SetInstance(new ExN04SteppingVerbose); + G4RunManager* runManager = new G4RunManager; runManager->SetUserInitialization(new ExN04DetectorConstruction); runManager->SetUserInitialization(new ExN04PhysicsList); + +#ifdef G4VIS_USE + // Visualization, if you choose to have it! + G4VisManager* visManager = new ExN04VisManager; + visManager->Initialize(); +#endif runManager->Initialize(); runManager->SetUserAction(new ExN04PrimaryGeneratorAction); + runManager->SetUserAction(new ExN04RunAction); runManager->SetUserAction(new ExN04EventAction); runManager->SetUserAction(new ExN04StackingAction); runManager->SetUserAction(new ExN04TrackingAction); runManager->SetUserAction(new ExN04SteppingAction); + + //get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); if(argc==1) { // G4UIterminal is a (dumb) terminal. - G4UIsession* session = new G4UIterminal; +#ifdef G4UI_USE_TCSH + G4UIsession* session = new G4UIterminal(new G4UItcsh); +#else + G4UIsession* session = new G4UIterminal(); +#endif + UImanager->ApplyCommand("/control/execute vis.mac"); session->SessionStart(); delete session; } else { - G4UImanager* UImanager = G4UImanager::GetUIpointer(); G4String command = "/control/execute "; G4String fileName = argv[1]; UImanager->ApplyCommand(command+fileName); } delete runManager; +#ifdef G4VIS_USE + delete visManager; +#endif return 0; } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out index 6dbc3cb9bd..e8baea79f7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out @@ -1,17 +1,15 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** -MuonMinusCaptureAtRest is created -phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z - Sandia crossSection below 50 KeV - PhysicsTables from 50 keV to 50 MeV in 100 bins. +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. - PhysicsTables from 10 keV to 100 GeV in 100 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. e+e- energies according Bethe-Heitler @@ -121,22 +119,22 @@ GenVertex: -9 ID: 0 (X,cT):0 O: 2 29 2212 +1.02e+00,+1.18e-01,-3.74e+03,+3.74e+03 1 (nil) 30 111 -2.46e-02,-9.09e-02,-3.46e+02,+3.46e+02 2 -20 GenVertex: -10 ID: 0 (X,cT):0 - I: 2 15 -1 -2.31e+00,-5.82e+00,+4.62e+01,+4.66e+01 2 -10 - 14 1 +2.31e+00,+5.82e+00,+1.51e+02,+1.51e+02 2 -10 + I: 2 14 1 +2.31e+00,+5.82e+00,+1.51e+02,+1.51e+02 2 -10 + 15 -1 -2.31e+00,-5.82e+00,+4.62e+01,+4.66e+01 2 -10 O: 1 31 92 +0.00e+00,+0.00e+00,+1.97e+02,+1.97e+02 2 -11 GenVertex: -11 ID: 0 (X,cT):0 I: 1 31 92 +0.00e+00,+0.00e+00,+1.97e+02,+1.97e+02 2 -11 - O: 8 36 211 -5.43e-01,+7.13e-02,+3.10e+00,+3.15e+00 1 (nil) - 37 221 -4.39e-01,-1.09e+00,+1.62e+01,+1.63e+01 2 -22 - 38 -213 -1.18e+00,-2.20e+00,+1.67e+01,+1.70e+01 2 -23 - 39 211 -8.40e-02,-1.67e+00,+1.53e+01,+1.54e+01 1 (nil) - 32 -211 +2.54e-01,+1.65e+00,+3.42e+01,+3.42e+01 1 (nil) + O: 8 32 -211 +2.54e-01,+1.65e+00,+3.42e+01,+3.42e+01 1 (nil) 33 211 +1.83e-01,-2.25e-01,+8.98e+00,+8.99e+00 1 (nil) 34 -211 +1.65e+00,+3.36e+00,+8.55e+01,+8.56e+01 1 (nil) 35 221 +1.53e-01,+1.01e-01,+1.68e+01,+1.68e+01 2 -21 + 36 211 -5.43e-01,+7.13e-02,+3.10e+00,+3.15e+00 1 (nil) + 37 221 -4.39e-01,-1.09e+00,+1.62e+01,+1.63e+01 2 -22 + 38 -213 -1.18e+00,-2.20e+00,+1.67e+01,+1.70e+01 2 -23 + 39 211 -8.40e-02,-1.67e+00,+1.53e+01,+1.54e+01 1 (nil) GenVertex: -12 ID: 0 (X,cT):0 - I: 2 16 2 -3.95e+00,-1.33e+00,+3.41e+01,+3.44e+01 2 -12 - 17 -2 +3.95e+00,+1.33e+00,+4.38e+02,+4.38e+02 2 -12 + I: 2 17 -2 +3.95e+00,+1.33e+00,+4.38e+02,+4.38e+02 2 -12 + 16 2 -3.95e+00,-1.33e+00,+3.41e+01,+3.44e+01 2 -12 O: 1 40 92 +0.00e+00,+0.00e+00,+4.72e+02,+4.72e+02 2 -13 GenVertex: -13 ID: 0 (X,cT):0 I: 1 40 92 +0.00e+00,+0.00e+00,+4.72e+02,+4.72e+02 2 -13 @@ -468,26 +466,27 @@ GenEvent: #2 ID=20 SignalProcessGenVertex Barcode: 0 ________________________________________________________________________________ GenVertex: -1 ID: 0 (X,cT):0 I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 - O: 3 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 + O: 3 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 - 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 + 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 GenVertex: -2 ID: 0 (X,cT):0 I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 O: 2 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 GenVertex: -3 ID: 0 (X,cT):0 I: 1 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 - O: 8 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 + O: 8 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 + 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 + 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 12 21 +1.85e+00,+6.48e+00,-3.61e+01,+3.67e+01 2 -9 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 - 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 - 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 GenVertex: -4 ID: 0 (X,cT):0 I: 1 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 - O:12 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + O:12 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 @@ -498,12 +497,11 @@ GenVertex: -4 ID: 0 (X,cT):0 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 - 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 GenVertex: -5 ID: 0 (X,cT):0 - I: 2 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 - 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 - O: 2 8 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 3 -7 - 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 + I: 2 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 + O: 2 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 + 8 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 3 -7 GenVertex: -6 ID: 0 (X,cT):0 I: 1 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 O: 1 9 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 1 (nil) @@ -543,13 +541,16 @@ GenVertex: -10 ID: 0 (X,cT):0 68 113 -9.06e-02,+1.63e-01,+1.67e+02,+1.67e+02 2 -35 69 221 +1.73e-01,+4.07e-01,+2.06e+02,+2.06e+02 2 -36 GenVertex: -11 ID: 0 (X,cT):0 - I:26 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + I:26 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 - 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 + 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 + 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 + 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 @@ -566,50 +567,10 @@ GenVertex: -11 ID: 0 (X,cT):0 22 21 +3.91e+00,-3.13e+00,+3.66e+01,+3.69e+01 2 -11 18 21 -3.89e+00,-1.90e+00,+4.34e+01,+4.36e+01 2 -11 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 - 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 - 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 - 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 O: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 GenVertex: -12 ID: 0 (X,cT):0 I: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 - O:90 157 211 +7.13e-01,-3.28e-01,-1.35e+02,+1.35e+02 1 (nil) - 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 - 159 -211 +8.50e-01,-2.44e-01,-2.40e+03,+2.40e+03 1 (nil) - 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 - 71 423 +6.74e+00,-3.13e+00,-1.81e+01,+1.96e+01 2 -37 - 72 213 +1.08e+00,-6.60e-01,-2.31e+00,+2.70e+00 2 -38 - 73 331 +8.84e-01,-9.17e-01,-1.33e+00,+2.07e+00 2 -39 - 74 -213 +1.67e+00,-6.02e-01,-4.33e+00,+4.71e+00 2 -40 - 75 111 -2.29e-01,-5.45e-02,-1.11e+00,+1.15e+00 2 -41 - 76 211 +1.91e-01,-3.77e-01,+3.30e-01,+5.54e-01 1 (nil) - 77 -211 +2.15e-01,+4.10e-01,+1.16e-01,+4.98e-01 1 (nil) - 78 211 +1.18e-01,-7.30e-01,-1.31e+00,+1.51e+00 1 (nil) - 79 3112 -1.25e-01,-5.92e-02,+4.02e+00,+4.19e+00 2 -42 - 80 311 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -43 - 81 -1114 -5.93e-01,-4.62e-01,+7.53e+00,+7.69e+00 2 -44 - 82 -211 -3.95e-01,+3.08e-01,+9.39e+00,+9.40e+00 1 (nil) - 83 211 -3.13e-01,-7.22e-01,+8.53e+00,+8.56e+00 1 (nil) - 84 -213 -1.27e-01,-1.01e-01,+5.15e+00,+5.19e+00 2 -45 - 85 213 -1.20e+00,-1.22e-01,+2.34e+01,+2.35e+01 2 -46 - 86 223 -7.42e-02,+1.42e-01,+1.52e+01,+1.52e+01 2 -47 - 87 -213 -9.01e-01,-6.04e-01,+2.49e+01,+2.49e+01 2 -48 - 88 323 -3.96e-01,+4.77e-01,+8.35e+01,+8.35e+01 2 -49 - 89 -313 -1.18e+00,+4.38e-01,+2.34e+02,+2.34e+02 2 -50 - 90 111 -2.10e-02,+1.47e-01,+2.20e+01,+2.20e+01 2 -51 - 91 -213 -1.47e+00,+1.82e+00,+3.92e+02,+3.92e+02 2 -52 - 92 213 +1.75e+00,+1.50e+00,+6.91e+02,+6.91e+02 2 -53 - 93 -211 -8.94e-02,-3.08e-01,+1.41e+02,+1.41e+02 1 (nil) - 94 111 +7.06e-01,+3.83e-01,+1.68e+02,+1.68e+02 2 -54 - 95 223 +1.83e-01,+6.58e-01,+2.64e+02,+2.64e+02 2 -55 - 96 113 +1.17e+00,-6.49e-01,+1.09e+02,+1.09e+02 2 -56 - 97 213 -3.59e-02,+9.92e-01,+3.73e+01,+3.74e+01 2 -57 - 98 221 +4.22e-01,+3.30e-01,+8.56e+00,+8.60e+00 2 -58 - 99 -213 +9.75e-01,+2.54e+00,+3.20e+01,+3.22e+01 2 -59 - 100 111 +1.28e+00,+5.91e-01,+1.83e+01,+1.84e+01 2 -60 - 101 331 +1.59e+00,+2.22e+00,+3.03e+01,+3.04e+01 2 -61 - 102 213 +1.77e+00,-1.58e+00,+1.71e+01,+1.73e+01 2 -62 - 103 -211 -1.88e-01,-1.28e-01,+3.87e+00,+3.88e+00 1 (nil) - 104 211 +6.95e-01,-7.43e-02,+2.83e+00,+2.91e+00 1 (nil) + O:90 104 211 +6.95e-01,-7.43e-02,+2.83e+00,+2.91e+00 1 (nil) 105 311 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -63 106 333 +8.72e-02,-2.03e+00,+7.62e+00,+7.95e+00 2 -64 107 -323 -1.98e-01,-1.55e-01,+2.64e+00,+2.79e+00 2 -65 @@ -662,6 +623,43 @@ GenVertex: -12 ID: 0 (X,cT):0 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 155 -321 +3.69e-01,-3.68e-01,-5.25e+01,+5.25e+01 1 (nil) 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 + 157 211 +7.13e-01,-3.28e-01,-1.35e+02,+1.35e+02 1 (nil) + 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 + 159 -211 +8.50e-01,-2.44e-01,-2.40e+03,+2.40e+03 1 (nil) + 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 + 71 423 +6.74e+00,-3.13e+00,-1.81e+01,+1.96e+01 2 -37 + 72 213 +1.08e+00,-6.60e-01,-2.31e+00,+2.70e+00 2 -38 + 73 331 +8.84e-01,-9.17e-01,-1.33e+00,+2.07e+00 2 -39 + 74 -213 +1.67e+00,-6.02e-01,-4.33e+00,+4.71e+00 2 -40 + 75 111 -2.29e-01,-5.45e-02,-1.11e+00,+1.15e+00 2 -41 + 76 211 +1.91e-01,-3.77e-01,+3.30e-01,+5.54e-01 1 (nil) + 77 -211 +2.15e-01,+4.10e-01,+1.16e-01,+4.98e-01 1 (nil) + 78 211 +1.18e-01,-7.30e-01,-1.31e+00,+1.51e+00 1 (nil) + 79 3112 -1.25e-01,-5.92e-02,+4.02e+00,+4.19e+00 2 -42 + 80 311 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -43 + 81 -1114 -5.93e-01,-4.62e-01,+7.53e+00,+7.69e+00 2 -44 + 82 -211 -3.95e-01,+3.08e-01,+9.39e+00,+9.40e+00 1 (nil) + 83 211 -3.13e-01,-7.22e-01,+8.53e+00,+8.56e+00 1 (nil) + 84 -213 -1.27e-01,-1.01e-01,+5.15e+00,+5.19e+00 2 -45 + 85 213 -1.20e+00,-1.22e-01,+2.34e+01,+2.35e+01 2 -46 + 86 223 -7.42e-02,+1.42e-01,+1.52e+01,+1.52e+01 2 -47 + 87 -213 -9.01e-01,-6.04e-01,+2.49e+01,+2.49e+01 2 -48 + 88 323 -3.96e-01,+4.77e-01,+8.35e+01,+8.35e+01 2 -49 + 89 -313 -1.18e+00,+4.38e-01,+2.34e+02,+2.34e+02 2 -50 + 90 111 -2.10e-02,+1.47e-01,+2.20e+01,+2.20e+01 2 -51 + 91 -213 -1.47e+00,+1.82e+00,+3.92e+02,+3.92e+02 2 -52 + 92 213 +1.75e+00,+1.50e+00,+6.91e+02,+6.91e+02 2 -53 + 93 -211 -8.94e-02,-3.08e-01,+1.41e+02,+1.41e+02 1 (nil) + 94 111 +7.06e-01,+3.83e-01,+1.68e+02,+1.68e+02 2 -54 + 95 223 +1.83e-01,+6.58e-01,+2.64e+02,+2.64e+02 2 -55 + 96 113 +1.17e+00,-6.49e-01,+1.09e+02,+1.09e+02 2 -56 + 97 213 -3.59e-02,+9.92e-01,+3.73e+01,+3.74e+01 2 -57 + 98 221 +4.22e-01,+3.30e-01,+8.56e+00,+8.60e+00 2 -58 + 99 -213 +9.75e-01,+2.54e+00,+3.20e+01,+3.22e+01 2 -59 + 100 111 +1.28e+00,+5.91e-01,+1.83e+01,+1.84e+01 2 -60 + 101 331 +1.59e+00,+2.22e+00,+3.03e+01,+3.04e+01 2 -61 + 102 213 +1.77e+00,-1.58e+00,+1.71e+01,+1.73e+01 2 -62 + 103 -211 -1.88e-01,-1.28e-01,+3.87e+00,+3.88e+00 1 (nil) GenVertex: -13 ID: 0 (X,cT):0 I: 2 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 @@ -1579,8 +1577,8 @@ ________________________________________________________________________________ GenVertex: -1 ID: 0 (X,cT):0 I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 O: 3 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 - 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 + 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 GenVertex: -2 ID: 0 (X,cT):0 I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 O: 2 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 @@ -1593,13 +1591,13 @@ GenVertex: -3 ID: 0 (X,cT):0 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 GenVertex: -4 ID: 0 (X,cT):0 I: 1 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 - O: 7 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 - 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 - 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 - 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + O: 7 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 + 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 GenVertex: -5 ID: 0 (X,cT):0 I: 2 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 @@ -1616,36 +1614,36 @@ GenVertex: -8 ID: 0 (X,cT):0 O: 2 12 -14 -9.19e+00,-3.92e+01,-1.68e+02,+1.73e+02 1 (nil) 11 13 +1.17e+01,+3.45e+01,-2.85e+02,+2.87e+02 1 (nil) GenVertex: -9 ID: 0 (X,cT):0 - I: 2 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 - 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 + I: 2 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 + 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 O: 1 35 92 -2.00e+00,+7.56e-01,+6.53e+03,+6.54e+03 2 -10 GenVertex: -10 ID: 0 (X,cT):0 I: 1 35 92 -2.00e+00,+7.56e-01,+6.53e+03,+6.54e+03 2 -10 - O: 9 41 -313 +6.61e-02,+2.00e-01,+1.02e+02,+1.02e+02 2 -20 + O: 9 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 + 38 -321 +5.75e-01,-1.63e-01,+3.07e+00,+3.17e+00 1 (nil) + 39 323 -4.93e-01,+1.18e-01,+1.14e+01,+1.14e+01 2 -18 + 40 333 +4.67e-02,-1.10e-02,+6.10e+01,+6.10e+01 2 -19 + 41 -313 +6.61e-02,+2.00e-01,+1.02e+02,+1.02e+02 2 -20 42 -211 +6.62e-01,+2.34e-03,+1.91e+01,+1.92e+01 1 (nil) 43 213 -1.13e+00,+2.68e-01,+8.99e+02,+8.99e+02 2 -21 44 2112 -3.44e-01,+2.18e-02,+5.44e+03,+5.44e+03 1 (nil) 36 321 -2.73e-01,+1.76e-01,+9.69e-01,+1.13e+00 1 (nil) - 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 - 38 -321 +5.75e-01,-1.63e-01,+3.07e+00,+3.17e+00 1 (nil) - 39 323 -4.93e-01,+1.18e-01,+1.14e+01,+1.14e+01 2 -18 - 40 333 +4.67e-02,-1.10e-02,+6.10e+01,+6.10e+01 2 -19 GenVertex: -11 ID: 0 (X,cT):0 - I:15 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 - 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 + I:15 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 + 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 18 21 +9.34e-01,+2.91e+00,+1.97e+01,+2.00e+01 2 -11 19 21 -2.14e+00,+4.17e+00,-2.51e+00,+5.32e+00 2 -11 20 21 +2.14e+00,-4.17e+00,-7.24e+00,+8.62e+00 2 -11 21 21 +2.68e+00,-1.72e+00,-3.07e+01,+3.09e+01 2 -11 22 21 -2.68e+00,+1.72e+00,-1.05e+02,+1.05e+02 2 -11 - 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 - 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 - 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 - 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 - 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 - 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 - 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 + 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 O: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 GenVertex: -12 ID: 0 (X,cT):0 I: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 @@ -1717,13 +1715,13 @@ GenVertex: -15 ID: 0 (X,cT):0 O: 1 102 92 +0.00e+00,+0.00e+00,-1.73e+01,+1.84e+01 2 -16 GenVertex: -16 ID: 0 (X,cT):0 I: 1 102 92 +0.00e+00,+0.00e+00,-1.73e+01,+1.84e+01 2 -16 - O: 7 103 113 +2.54e-01,-1.28e-01,-3.69e+00,+3.77e+00 2 -57 - 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 - 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 - 106 111 +1.94e-01,-8.30e-01,-1.78e+00,+1.98e+00 2 -60 + O: 7 106 111 +1.94e-01,-8.30e-01,-1.78e+00,+1.98e+00 2 -60 107 -211 -2.88e-01,+5.23e-01,-3.10e+00,+3.16e+00 1 (nil) 108 223 +2.53e-01,-1.38e-01,-2.52e+00,+2.66e+00 2 -61 109 113 -5.13e-01,+2.04e-01,-2.60e+00,+2.77e+00 2 -62 + 103 113 +2.54e-01,-1.28e-01,-3.69e+00,+3.77e+00 2 -57 + 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 + 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 GenVertex: -17 ID: 0 (X,cT):0 I: 1 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 O: 2 110 321 -5.35e-01,-4.15e-03,+1.39e+00,+1.57e+00 1 (nil) diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out index 661c2f0cbd..2947340763 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out @@ -1,17 +1,15 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** -MuonMinusCaptureAtRest is created -phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z - Sandia crossSection below 50 KeV - PhysicsTables from 50 keV to 50 MeV in 100 bins. +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. - PhysicsTables from 10 keV to 100 GeV in 100 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. e+e- energies according Bethe-Heitler @@ -192,68 +190,35 @@ current generator type: pythia Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 75 hits are stored in ExN04TrackerHitsCollection. - 58 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.917237 (GeV) + 107 hits are stored in ExN04TrackerHitsCollection. + 45 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.892332 (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 - 174 hits are stored in ExN04TrackerHitsCollection. - 84 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.55103 (GeV) + 179 hits are stored in ExN04TrackerHitsCollection. + 67 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 1.15456 (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 2 - 177 hits are stored in ExN04TrackerHitsCollection. - 83 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 1.28925 (GeV) + 176 hits are stored in ExN04TrackerHitsCollection. + 84 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 1.33361 (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 3 - 117 hits are stored in ExN04TrackerHitsCollection. - 85 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.982027 (GeV) + 90 hits are stored in ExN04TrackerHitsCollection. + 80 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.953729 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 1 hits found in the muon chamber. -G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength [ hIoni] - Particle type - pi- - mass: 0.13957[GeV] - charge: 5.9304e+251[e] - Direction x: 0.632245, y: 0.524612, z: 0.570131 - Total Momentum = 0.240455[GeV] - Momentum: 0.152026[GeV], y: 0.126145[GeV], z: 0.137091[GeV] - Total Energy = 0.278026[GeV] - Kinetic Energy = 0.138456[GeV] - ProperTime = 0[ns] - in Material Air -MeanFreePath = 0[cm] Stage 1->2 : 1 isolated muon found. >>> Event 4 - 386 hits are stored in ExN04TrackerHitsCollection. - 140 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.25866 (GeV) + 346 hits are stored in ExN04TrackerHitsCollection. + 167 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 2.95158 (GeV) 1 hits are stored in ExN04MuonHitsCollection. -1********* PYSTAT: Statistics on Number of Events and Cross-sections ********* - - ============================================================================== - I I I I - I Subprocess I Number of points I Sigma I - I I I I - I----------------------------------I----------------------------I (mb) I - I I I I - I N:o Type I Generated Tried I I - I I I I - ============================================================================== - I I I I - I 0 All included subprocesses I 5 17 I 4.146E-12 I - I 102 g + g -> h0 I 4 6 I 2.995E-12 I - I 123 f + f' -> f + f' + h0 I 0 3 I 4.272E-13 I - I 124 f + f' -> f" + f"' + h0 I 1 8 I 7.240E-13 I - I I I I - ============================================================================== - - ********* Fraction of events that fail fragmentation cuts = 0.00000 ********* - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh index bc28c7dd81..17a936747e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.hh,v 1.1 2002/04/29 20:43:37 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04EMPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh index 78bc5e52da..2349e93760 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04GeneralPhysics.hh,v 1.1 2002/04/29 20:43:39 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04GeneralPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh index 6e79888a43..1d1e57224d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh @@ -19,21 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: ExN04HadronPhysics.hh,v 1.1 2002/04/29 20:43:40 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// Class Description: -// This class is an derived class of G4VPhysicsConstructor -// -// ------------------------------------------- -// History -// first version 12 Nov. 2000 by H.Kurashige -// ------------------------------------------------------------ +//======================== +// taken from example N04 of G4 distribution +//======================== #ifndef ExN04HadronPhysics_h #define ExN04HadronPhysics_h 1 @@ -147,6 +135,16 @@ #include "G4KaonMinusAbsorptionAtRest.hh" #endif +// quark gluon string model with chips afterburner. +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + class ExN04HadronPhysics : public G4VPhysicsConstructor { public: @@ -171,14 +169,12 @@ class ExN04HadronPhysics : public G4VPhysicsConstructor // Pi + G4PionPlusInelasticProcess thePionPlusInelastic; G4LEPionPlusInelastic* theLEPionPlusModel; - G4HEPionPlusInelastic* theHEPionPlusModel; G4MultipleScattering thePionPlusMult; G4hIonisation thePionPlusIonisation; // Pi - G4PionMinusInelasticProcess thePionMinusInelastic; G4LEPionMinusInelastic* theLEPionMinusModel; - G4HEPionMinusInelastic* theHEPionMinusModel; G4MultipleScattering thePionMinusMult; G4hIonisation thePionMinusIonisation; #ifdef TRIUMF_STOP_PIMINUS @@ -187,13 +183,23 @@ class ExN04HadronPhysics : public G4VPhysicsConstructor G4PiMinusAbsorptionAtRest thePionMinusAbsorption; #endif + // pi+ and pi- + + G4TheoFSGenerator theTheoModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + // K + G4KaonPlusInelasticProcess theKaonPlusInelastic; G4LEKaonPlusInelastic* theLEKaonPlusModel; G4HEKaonPlusInelastic* theHEKaonPlusModel; G4MultipleScattering theKaonPlusMult; G4hIonisation theKaonPlusIonisation; - + // K - G4KaonMinusInelasticProcess theKaonMinusInelastic; G4LEKaonMinusInelastic* theLEKaonMinusModel; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh index 82fe7d2080..c370d73a1a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.hh,v 1.1 2002/04/29 20:43:41 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04IonPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh index ca1977039d..d6f5f99912 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.hh,v 1.1 2002/04/29 20:43:43 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04MuonPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh index b9d0eeb135..1755b4b8d6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh @@ -23,7 +23,7 @@ // ==================================================================== // // ExN04PrimaryGeneratorAction.hh -// $Id: ExN04PrimaryGeneratorAction.hh,v 1.1 2002/04/29 20:43:45 asaim Exp $ +// $Id: ExN04PrimaryGeneratorAction.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ // // ==================================================================== #ifndef EXN04_PRIMARY_GENERATOR_ACTION_H @@ -45,7 +45,7 @@ private: G4VPrimaryGenerator* currentGenerator; G4String currentGeneratorName; - std::map gentypeMap; + G4std::map gentypeMap; ExN04PrimaryGeneratorMessenger* messenger; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh new file mode 100644 index 0000000000..8172f55ad3 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.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: ExN04RunAction.hh,v 1.1 2002/11/19 10:15:51 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN04RunAction_h +#define ExN04RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class ExN04RunAction : public G4UserRunAction +{ + public: + ExN04RunAction(); + ~ExN04RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh new file mode 100644 index 0000000000..8d554c4b97 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * 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: ExN04SteppingVerbose.hh,v 1.1 2002/11/19 10:15:52 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN04SteppingVerbose; + +#ifndef ExN04SteppingVerbose_h +#define ExN04SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN04SteppingVerbose : public G4SteppingVerbose +{ + public: + + ExN04SteppingVerbose(); + ~ExN04SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh new file mode 100644 index 0000000000..c92d29255c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.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: ExN04VisManager.hh,v 1.1 2002/11/19 10:15:52 murakami Exp $ +// GEANT4 tag $Name: geant4-05-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 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/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh index 819046a86a..b2b98f371b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4PythiaInterface.hh -// $Id: HepMCG4PythiaInterface.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// $Id: HepMCG4PythiaInterface.hh,v 1.2 2002/11/19 10:15:52 murakami Exp $ // // A generic interface class with Pythia event generator via HepMC. // @@ -69,7 +69,7 @@ public: void CallPygive(G4String par); void CallPyrget(G4int lun, G4int move); void CallPyrset(G4int lun, G4int move); - void PrintRandomStatus(G4std::ostream& ostr=G4std::cout) const; + void PrintRandomStatus(G4std::ostream& ostr=G4cout) const; // setup user parameters (empty in default). // Implement your parameters in a delived class if you want. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorParameterDef.icc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorParameterDef.icc index 0b2dc61eb6..1d3dfe7a3a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorParameterDef.icc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorParameterDef.icc @@ -21,9 +21,9 @@ // ******************************************************************** // - expHall_x = 800.*cm; - expHall_y = 800.*cm; - expHall_z = 800.*cm; + expHall_x = 600.*cm; + expHall_y = 600.*cm; + expHall_z = 600.*cm; trkTubs_rmax = 50.*cm; trkTubs_rmin = 20.*cm; @@ -72,5 +72,5 @@ muBox_radius = 350.*cm; muBox_width = muBox_radius - 5.*cm; muBox_thick = 1.*cm; - muBox_length = 2.*muBox_radius; + muBox_length = expHall_z - 10.*cm; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc index 24c4ce3d75..0d242bffd7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.cc,v 1.1 2002/04/29 20:43:59 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04EMPhysics.cc,v 1.2 2002/11/19 10:17:03 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.cc index b04da6d39e..45f1973924 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EventAction.cc @@ -33,6 +33,7 @@ #include "G4VHitsCollection.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" +#include "G4VVisManager.hh" #include "G4SDManager.hh" #include "G4UImanager.hh" #include "G4ios.hh" @@ -62,7 +63,25 @@ void ExN04EventAction::BeginOfEventAction(const G4Event*) void ExN04EventAction::EndOfEventAction(const G4Event* evt) { G4cout << ">>> Event " << evt->GetEventID() << G4endl; - + + // get number of stored trajectories + // + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + + // extract the trajectories and draw them + // + if (G4VVisManager::GetConcreteInstance()) + { + for (G4int i=0; iGetTrajectoryContainer()))[i]); + trj->DrawTrajectory(50); + } + } + + if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) return; G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); @@ -101,5 +120,3 @@ void ExN04EventAction::EndOfEventAction(const G4Event* evt) } } - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc index 3388880b6d..e08c62dae1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04GeneralPhysics.cc,v 1.1 2002/04/29 20:44:01 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04GeneralPhysics.cc,v 1.2 2002/11/19 10:17:04 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc index b4ac73f71d..aa3b53c557 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc @@ -19,13 +19,6 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: ExN04HadronPhysics.cc,v 1.1 2002/04/29 20:44:01 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// - #include "ExN04HadronPhysics.hh" #include "globals.hh" @@ -40,6 +33,7 @@ ExN04HadronPhysics::ExN04HadronPhysics(const G4String& name) ExN04HadronPhysics::~ExN04HadronPhysics() { +delete theStringDecay; } #include "G4ParticleDefinition.hh" @@ -78,15 +72,25 @@ void ExN04HadronPhysics::ConstructProcess() theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); + // pi+ and pi- + + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade.SetDeExcitation(thePreEquilib); + theTheoModel.SetTransport(&theCascade); + theTheoModel.SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); + theTheoModel.SetMinEnergy(15*GeV); + theTheoModel.SetMaxEnergy(100*TeV); + // PionPlus pManager = G4PionPlus::PionPlus()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEPionPlusModel = new G4LEPionPlusInelastic(); - theHEPionPlusModel = new G4HEPionPlusInelastic(); thePionPlusInelastic.RegisterMe(theLEPionPlusModel); - thePionPlusInelastic.RegisterMe(theHEPionPlusModel); + thePionPlusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&thePionPlusInelastic); pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); @@ -101,9 +105,8 @@ void ExN04HadronPhysics::ConstructProcess() pManager->AddDiscreteProcess(&theElasticProcess); theLEPionMinusModel = new G4LEPionMinusInelastic(); - theHEPionMinusModel = new G4HEPionMinusInelastic(); thePionMinusInelastic.RegisterMe(theLEPionMinusModel); - thePionMinusInelastic.RegisterMe(theHEPionMinusModel); + thePionMinusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&thePionMinusInelastic); pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); @@ -122,7 +125,7 @@ void ExN04HadronPhysics::ConstructProcess() theLEKaonPlusModel = new G4LEKaonPlusInelastic(); theHEKaonPlusModel = new G4HEKaonPlusInelastic(); theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); - theKaonPlusInelastic.RegisterMe(theHEKaonPlusModel); + theKaonPlusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theKaonPlusInelastic); pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); @@ -180,7 +183,7 @@ void ExN04HadronPhysics::ConstructProcess() theLEProtonModel = new G4LEProtonInelastic(); theHEProtonModel = new G4HEProtonInelastic(); theProtonInelastic.RegisterMe(theLEProtonModel); - theProtonInelastic.RegisterMe(theHEProtonModel); + theProtonInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theProtonInelastic); pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); @@ -216,7 +219,7 @@ void ExN04HadronPhysics::ConstructProcess() theLENeutronModel = new G4LENeutronInelastic(); theHENeutronModel = new G4HENeutronInelastic(); theNeutronInelastic.RegisterMe(theLENeutronModel); - theNeutronInelastic.RegisterMe(theHENeutronModel); + theNeutronInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theNeutronInelastic); //theNeutronFissionModel = new G4LFission(); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc index 5eeb8081cc..c94c2fb7d6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.cc,v 1.1 2002/04/29 20:44:01 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04IonPhysics.cc,v 1.2 2002/11/19 10:17:04 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc index e9feca3695..ae48a0c2b9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.cc,v 1.1 2002/04/29 20:44:03 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04MuonPhysics.cc,v 1.2 2002/11/19 10:17:04 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc index 5bb1ff4165..9dcb7ef18e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04PhysicsList.cc,v 1.1 2002/04/29 20:44:04 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN04PhysicsList.cc,v 1.2 2002/11/19 10:17:04 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc new file mode 100644 index 0000000000..9e76114778 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.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: ExN04RunAction.cc,v 1.1 2002/11/19 10:17:05 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04RunAction.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::~ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + G4RunManager::GetRunManager()->SetRandomNumberStore(true); + + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04RunAction::EndOfRunAction(const G4Run*) +{ + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc new file mode 100644 index 0000000000..a939fbba23 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc @@ -0,0 +1,176 @@ +// +// ******************************************************************** +// * 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: ExN04SteppingVerbose.cc,v 1.1 2002/11/19 10:17:05 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::~ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << G4std::setw( 5) << "#Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "Volume" << " " + << G4std::setw(10) << "Process" << G4endl; + } + + G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << G4std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << " " + << G4std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); + } else { + G4cout << " UserLimit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot + << "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << G4std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::TrackingStarted() +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << G4std::setw( 5) << "Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "Volume" << " " + << G4std::setw(10) << "Process" << G4endl; + + G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + if(fTrack->GetNextVolume()){ + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << G4std::setw(10) << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc new file mode 100644 index 0000000000..c658c4201c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc @@ -0,0 +1,155 @@ +// +// ******************************************************************** +// * 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 2002/11/19 10:17:05 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// 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_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...... + +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_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/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc index b20e9d6d86..52095f03f4 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4AsciiReader.cc -// $Id: HepMCG4AsciiReader.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// $Id: HepMCG4AsciiReader.cc,v 1.2 2002/11/19 10:17:05 murakami Exp $ // // ==================================================================== #include "HepMCG4AsciiReader.hh" @@ -37,7 +37,7 @@ HepMCG4AsciiReader::HepMCG4AsciiReader() : filename("xxx.dat"), verbose(0) //////////////////////////////////////// { - asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + asciiInput= new HepMC::IO_Ascii(filename.c_str(), G4std::ios::in); messenger= new HepMCG4AsciiReaderMessenger(this); } @@ -56,7 +56,7 @@ void HepMCG4AsciiReader::Initialize() { delete asciiInput; - asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + asciiInput= new HepMC::IO_Ascii(filename.c_str(), G4std::ios::in); asciiInput-> print(); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/vis.mac b/examples/extended/eventgenerator/HepMC/HepMCEx01/vis.mac new file mode 100644 index 0000000000..aacc1b037b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/vis.mac @@ -0,0 +1,31 @@ +# +# Macro file for the initialization phase of "exampleN02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# create empty scene +# +/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/set/viewpointThetaPhi 90 180 deg +/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 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/GNUmakefile new file mode 100644 index 0000000000..c27f28030c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/GNUmakefile @@ -0,0 +1,48 @@ +# $Id: GNUmakefile,v 1.1 2002/11/19 10:37:08 murakami Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- +name := hepmcEx02-clhep +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +.PHONY: all +all : lib bin + +include $(G4INSTALL)/config/binmake.gmk + +# check gcc +USE_GCC := 0 +ifeq ($(G4SYSTEM),Linux-g++) + USE_GCC := 1 +endif +ifeq ($(G4SYSTEM),Linux-egcs) + USE_GCC := 1 +endif + +# PYTHIA + CERNLIB_DIR := /cern/pro/lib + +ifeq ($(USE_GCC),1) + LDLIBS1 += -L$(CERNLIB_DIR) -lpythia6 -lg2c +else + LDLIBS1 += -L$(CERNLIB_DIR) -lpythia6 # and something? +endif + +CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) +CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) + +# On HP-acc optimization has to be turned off to compile ExN04HadronPhysics. +# +ifeq ($(G4SYSTEM),HP-aCC) + COMPILER := $(shell aCC -V 2>&1) +ifeq ($(COMPILER), aCC: HP ANSI C++ B3910B A.01.15) +$(G4TMP)/$(G4SYSTEM)/$(name)/XXHadronPhysics.o: src/XXHadronPhysics.cc + $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/XXHadronPhysics.cc +endif +endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History new file mode 100644 index 0000000000..49406ad8bd --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History @@ -0,0 +1,26 @@ +$Id: History,v 1.1 2002/11/19 10:37:08 murakami Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Example HepMCEx02 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 * + ---------------------------------------------------------- +Nov. 19, 2002 K.Murakami +- modified physics lists as is ExN04. +- "std" namespace left/not cared was modified to "G4std". + +May. 28, 2002 K.Murakami +- rename classes and filenames. + +April 15, 02 K.Murakami + +- Created. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/README b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/README new file mode 100644 index 0000000000..98cb62a824 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/README @@ -0,0 +1,42 @@ +$Id: README,v 1.1 2002/11/19 10:38:06 murakami Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + HepMCEx02 + --------- + + This example demonstrates how to interface primary particles in Geant4 +with various event generators via the HepMC Monte Carlo event interface. +This is another example having the same generator action as HepMCEx01, +but much simpler user control. + +1. Primary Generator + + H02PrimaryGeneratorAction has G4HepMCInterface as the generator. +There are two types of generators provided as samples. One generator reads +primary information from a HepMC Ascii file (data/example_MyPythia.dat). +The other one generates primaries directly invoking PYTHIA routines +in every event. + +2. Geometry + + A simplified collider-type geometry, which consists of + - endcap calorimeter (a set of tubes filled with lead), + - barrel calorimeter (tube filled with lead), + - barrel muon detector (8 sets of plates filled with Ar), + - endcap muon detecror, (a set of tubes filled with Ar) and + - uniform magnetic field along the z axis of 3 Tesla at the + central region. + +3. Physics List + + Full set of "ordinary" physics processes, which is the same one as +ExN04PhysicsList. + +4. User actions + + All particles except muons are killed in the calorimeter section. + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/GNUmakefile b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/GNUmakefile new file mode 100644 index 0000000000..d6d63cab9e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/GNUmakefile @@ -0,0 +1,20 @@ +# // CLHEP +CLHEPD := $(CLHEP_BASE_DIR) +CLHEPINC := -I$(CLHEPD)/include +CLHEPLIB := -L$(CLHEPD)/lib -lCLHEP + +# // CERN libraries +CLIBD := /cern/pro/lib +CLIB := -L$(CLIBD) -lpythia6 + +CXXFLAGS := $(CLHEPINC) +LOPT := $(CLHEPLIB) $(CLIB) -lg2c + +%.o: %.cc + $(CXX) -c -o $@ $(CXXFLAGS) $*.cc + +example_MyPythia : example_MyPythia.o + $(CXX) -o $@ example_MyPythia.o $(LOPT) + +example_MyPythia.o : example_MyPythia.cc + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc new file mode 100644 index 0000000000..eb071f326d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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: example_MyPythia.cc,v 1.3 2002/12/13 11:42:38 gcosmo Exp $ +// ==================================================================== +// example_MyPythia.cc +// +// sample event generation using Pythia and HepMC(CLHEP) +// ==================================================================== + +#include "CLHEP/HepMC/CBhepevt.h" +#include "CLHEP/HepMC/WriteHepMC.h" +#include "CLHEP/HepMC/ReadHepMC.h" +#include "CLHEP/HepMC/include/PythiaWrapper6_2.h" + +#include +#include + +// global parameters +hepev2_t hepev2_; +hepev3_t hepev3_; +hepev4_t hepev4_; +hepev5_t hepev5_; + +int main() { + // initialize Pythia... + // select W+gamma process (process number 20) + pysubs.msel= 0; + pysubs.msub[20-1]= 1; + // set random number seed (mandatory!) + pydatr.mrpy[0]= 55122 ; + // tell Pythia not to write multiple copies of particles in event record. + pypars.mstp[128-1]= 2; + // example of setting a Pythia parameter: set the top mass + pydat2.pmas[1-1][6-1]= 175; + // call pythia initialization + call_pyinit( "CMS", "p", "p", 14000. ); + + // prepare HepMC-HEPEVT interface... + HepMC::CBhepevt* hepevtio= new HepMC::CBhepevt; + + std::ofstream to; + std::string fname= "example_MyPythia.dat"; + to.open(fname.c_str(), std::ios::out); + + HepMC::writeComment(to, "generate sample pythia events..."); + for ( int i = 1; i <= 10; i++ ) { + if ( i%50==1 ) std::cout << "Processing Event Number " + << i << std::endl; + call_pyevnt(); // generate one event with Pythia + // pythia pyhepc routine converts common PYJETS in common HEPEVT + call_pyhepc( 1 ); + + HepMC::GenEvent* evt= new HepMC::GenEvent(); + hepevtio-> toGenEvent(evt, false); + hepevtio-> clean(); // clear HEPEVT + + // add some information to the event + evt-> set_event_number(i); + evt-> set_signal_process_id(20); + + // write the event out to the ascii file + to << evt; + + // we also need to delete the created event from memory + delete evt; + } + + // write out some information from Pythia to the screen + call_pystat(1); + to.close(); + delete hepevtio; + + return 0; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.dat b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.dat new file mode 100644 index 0000000000..3417cca269 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.dat @@ -0,0 +1,5901 @@ +BlockType Comment +generate sample pythia events... +BlockType GenEvent +E 1 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 78 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 -7.7594698288360897e-01 -9.1232539665921930e-01 1.8833052220885656e+03 1.8833056029166935e+03 0 3 0 0 -3 0 +P 20 2101 7.7594698288360897e-01 9.1232539665921930e-01 4.4469502845870420e+03 4.4469504836059705e+03 5.7933000000000001e-01 2 0 0 -16 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 -1 -1.0077355308447375e+00 -1.2716278982991639e-02 -4.1454166842423659e+00 4.2661659707370658e+00 0 3 0 0 -4 0 +P 13 2214 9.9965263761245238e-01 2.7342497748314848e-02 -4.0826017593891916e+03 4.0826020585869046e+03 1.2012315772156326e+00 2 0 0 -9 0 +P 26 1 8.0828932322852265e-03 -1.4626218765323211e-02 -2.4623230582064652e+03 2.4623230803764359e+03 3.3000000000000002e-01 2 0 0 -16 0 +V -3 0 0 0 0 0 0 4 0 +P 5 2 -5.0183078832283403e+00 1.1490196188676447e+00 1.4784133950691614e+03 1.4784223585904062e+03 0 3 0 0 -5 0 +P 21 21 1.4581184692651741e+00 -3.9123134860507047e-01 1.0923177669273832e+02 1.0924220892535446e+02 0 2 0 0 -16 0 +P 22 21 3.1078318510719791e+00 2.3161265926755781e-01 1.4647261850356662e+02 1.4650576860495917e+02 0 2 0 0 -16 0 +P 23 21 -1.0916504553308495e-01 -1.8718066652841989e+00 8.6094190154962845e+01 8.6114604775486654e+01 0 2 0 0 -16 0 +V -4 0 0 0 0 0 0 3 0 +P 6 -1 2.5393345338288575e-02 8.3451451612681318e+00 6.6003848774206497e-01 8.3712450322473053e+00 0 3 0 0 -5 0 +P 24 21 -5.3671673260814667e-01 -6.6758503288897897e+00 4.7470952833050397e+01 4.7941072217280407e+01 0 2 0 0 -16 0 +P 25 21 -7.1083651803421799e-01 -1.7119307722665538e+00 1.0816833663101894e+01 1.0974510741696802e+01 0 2 0 0 -16 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 -4.0262403277658469e+00 -1.2288309207825838e+00 2.4575369641175027e+02 2.4578974741971544e+02 0 3 0 0 -6 0 +P 8 24 -9.6667421012420562e-01 1.0722995700918359e+01 1.2333197371451533e+03 1.2410038562029381e+03 1.3746665043908820e+02 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 -4.0262403277658469e+00 -1.2288309207825838e+00 2.4575369641175027e+02 2.4578974741971544e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -9.6667421012420562e-01 1.0722995700918359e+01 1.2333197371451533e+03 1.2410038562029381e+03 1.3746665043908820e+02 2 0 0 -8 0 +V -8 0 0 0 0 0 0 2 0 +P 11 -13 -2.5622328442447461e+01 4.7040178447927353e+01 2.0936799887850253e+02 2.1611166609336419e+02 1.0566000000000000e-01 1 0 0 0 0 +P 12 14 2.4655654232323258e+01 -3.6317182747008992e+01 1.0239517382666510e+03 1.0248921901095741e+03 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 2 0 +P 29 2212 1.0242368375894155e+00 1.1819305384951433e-01 -3.7370902170825884e+03 3.7370904770952066e+03 9.3827000000000005e-01 1 0 0 0 0 +P 30 111 -2.4584199976963136e-02 -9.0850556101199478e-02 -3.4551154230660296e+02 3.4551158149169805e+02 1.3497999999999999e-01 2 0 0 -20 0 +V -10 0 0 0 0 0 2 1 0 +P 14 1 2.3065048155050207e+00 5.8203193328752807e+00 1.5053434005803197e+02 1.5066447364361579e+02 0 2 0 0 -10 0 +P 15 -1 -2.3065048155050207e+00 -5.8203193328752807e+00 4.6213780965918581e+01 4.6635926416942638e+01 0 2 0 0 -10 0 +P 31 92 0 0 1.9674812102395055e+02 1.9730040006055842e+02 1.4752109598335721e+01 2 0 0 -11 0 +V -11 0 0 0 0 0 0 8 0 +P 32 -211 2.5433561751902267e-01 1.6471020112402412e+00 3.4162682623605711e+01 3.4203596235891361e+01 1.3957000000000000e-01 1 0 0 0 0 +P 33 211 1.8267397603378879e-01 -2.2451207083727245e-01 8.9833818072340854e+00 8.9891269838019312e+00 1.3957000000000000e-01 1 0 0 0 0 +P 34 -211 1.6527958883141400e+00 3.3636085038226837e+00 8.5511074879269898e+01 8.5593276623858827e+01 1.3957000000000000e-01 1 0 0 0 0 +P 35 221 1.5340695778001462e-01 1.0080214339909595e-01 1.6778513363366923e+01 1.6788445638414284e+01 5.4744999999999999e-01 2 0 0 -21 0 +P 36 211 -5.4270097089667468e-01 7.1269909168117845e-02 3.1032133671979825e+00 3.1542061966557080e+00 1.3957000000000000e-01 1 0 0 0 0 +P 37 221 -4.3895349893169139e-01 -1.0908000994225866e+00 1.6203900382989026e+01 1.6255725580713296e+01 5.4744999999999999e-01 2 0 0 -22 0 +P 38 -213 -1.1775778049994057e+00 -2.1994908478570685e+00 1.6736113732474852e+01 1.6955085170015739e+01 1.0737601126508725e+00 2 0 0 -23 0 +P 39 211 -8.3980164819194153e-02 -1.6679795495132113e+00 1.5269240867812080e+01 1.5360937631207282e+01 1.3957000000000000e-01 1 0 0 0 0 +V -12 0 0 0 0 0 2 1 0 +P 16 2 -3.9452709365158856e+00 -1.3309715048590964e+00 3.4100364633141048e+01 3.4353624496149465e+01 0 2 0 0 -12 0 +P 17 -2 3.9452709365158856e+00 1.3309715048590964e+00 4.3760023670797966e+02 4.3762004503311903e+02 0 2 0 0 -12 0 +P 40 92 0 0 4.7170060134112072e+02 4.7197366952926848e+02 1.6052645369166928e+01 2 0 0 -13 0 +V -13 0 0 0 0 0 0 8 0 +P 41 221 -2.6764857527202399e+00 -7.4082656853446693e-01 2.6999649559108772e+01 2.7147618271339081e+01 5.4744999999999999e-01 2 0 0 -24 0 +P 42 211 -1.0793700584347439e+00 -1.7691740782741042e-01 8.9362513158609644e+00 9.0040217046253623e+00 1.3957000000000000e-01 1 0 0 0 0 +P 43 223 7.3128413379081270e-01 -2.4207212017445862e-01 2.9711160638588780e+01 2.9731384214780988e+01 7.8023422073180737e-01 2 0 0 -25 0 +P 44 -213 6.8313854697846552e-02 2.1615069868878325e-01 2.6710541480290658e+01 2.6723469313128675e+01 7.9962369406794465e-01 2 0 0 -26 0 +P 45 211 -7.6171122821958814e-02 3.3362556819896899e-01 9.9768132257362261e+00 9.9836561432089255e+00 1.3957000000000000e-01 1 0 0 0 0 +P 46 223 1.1759907015886510e+00 7.6699830168521430e-03 1.5941193545306197e+02 1.5941819661887365e+02 7.8309345789913631e-01 2 0 0 -27 0 +P 47 -213 4.1784646533132969e-01 2.7042442905701480e-01 5.6342534981914696e+01 5.6346454491891919e+01 4.4040955728183379e-01 2 0 0 -28 0 +P 48 111 1.4385917785683024e+00 3.3194541757471685e-01 1.5361171468655868e+02 1.5361886877141990e+02 1.3497999999999999e-01 2 0 0 -29 0 +V -14 0 0 0 0 0 2 1 0 +P 18 2 1.5410660823344702e+00 3.0415562160378746e+00 -6.3245198112592114e+01 6.3337043135802176e+01 0 2 0 0 -14 0 +P 19 -2 -1.5410660823344702e+00 -3.0415562160378746e+00 -3.1131552297791711e+02 3.1133419471028151e+02 0 2 0 0 -14 0 +P 49 92 0 0 -3.7456072109050922e+02 3.7467123784608367e+02 9.0995980831222933e+00 2 0 0 -15 0 +V -15 0 0 0 0 0 0 3 0 +P 50 113 1.5650691169710587e+00 2.8328826851235629e+00 -6.1146078921515716e+01 6.1234504633574247e+01 5.8900305128951691e-01 2 0 0 -30 0 +P 51 211 2.0243674382169874e-01 1.1974235089754615e-01 -2.6986180398301357e+01 2.6987566232256142e+01 1.3957000000000000e-01 1 0 0 0 0 +P 52 -211 -1.7675058607927574e+00 -2.9526250360211090e+00 -2.8642846177069208e+02 2.8644916698025321e+02 1.3957000000000000e-01 1 0 0 0 0 +V -16 0 0 0 0 0 0 1 0 +P 53 92 3.9932619002775978e+00 -9.5215072778841598e+00 2.3847135982279970e+03 7.3100517292471832e+03 6.9101295742883694e+03 2 0 0 -17 0 +V -17 0 0 0 0 0 0 31 0 +P 54 2212 8.2215700554402904e-01 7.5777360143587646e-01 2.8563381940988261e+03 2.8563385670437092e+03 9.3827000000000005e-01 1 0 0 0 0 +P 55 113 -3.6038310812821978e-01 -1.6892929069557774e-01 8.6247137938804929e+02 8.6247157540874730e+02 4.2392385196816618e-01 2 0 0 -31 0 +P 56 -2214 1.0274054900145733e+00 9.2951858077602798e-02 4.5344312824574462e+02 4.5344608664771232e+02 1.2722974294659994e+00 2 0 0 -32 0 +P 57 223 -3.5950138267252507e-01 4.0383168579159467e-01 1.2478306984250651e+02 1.2478685771933476e+02 8.0809583036116783e-01 2 0 0 -33 0 +P 58 2212 1.6784465902779000e+00 -6.2450245543458038e-01 1.5667821954585344e+02 1.5669126337139798e+02 9.3827000000000005e-01 1 0 0 0 0 +P 59 -213 5.5576917486158994e-01 3.4454408402510756e-01 9.1366431045160198e+01 9.1370656398000975e+01 5.8697416466134156e-01 2 0 0 -34 0 +P 60 -311 6.8837804480312736e-02 -2.9839760512711585e-02 3.7650473956009833e+01 3.7653837700767077e+01 4.9767000000000000e-01 2 0 0 -35 0 +P 61 311 5.5852191137677354e-01 -2.3170010256673915e-01 5.8824232435728810e+01 5.8829445252735184e+01 4.9767000000000000e-01 2 0 0 -36 0 +P 62 211 3.2384754659479414e-01 -1.1095603539042695e+00 5.0326870381868780e+01 5.0340335354770062e+01 1.3957000000000000e-01 1 0 0 0 0 +P 63 113 -1.6488951177897816e-02 -7.8122143799785340e-02 4.9112488643673986e+00 4.9474711292126861e+00 5.9222479834954955e-01 2 0 0 -37 0 +P 64 -211 7.0648600777312476e-01 -6.4021847151240463e-01 6.5555221578401913e+01 6.5562302874050388e+01 1.3957000000000000e-01 1 0 0 0 0 +P 65 213 4.7207901564054866e-01 -4.3912457471518479e-01 1.4382616336991193e+01 1.4418576507834425e+01 7.8740512194284817e-01 2 0 0 -38 0 +P 66 -213 -3.0042801873910607e-01 -3.8199301959389176e-01 1.6229684769106441e+01 1.6256964556636262e+01 8.0625878581263533e-01 2 0 0 -39 0 +P 67 211 -4.3941675941743208e-01 -3.1906445983026024e+00 2.4837368567595707e+01 2.5045711353216259e+01 1.3957000000000000e-01 1 0 0 0 0 +P 68 -211 -1.3996633591260657e-01 -1.2032611277813125e-01 4.9245854481282014e-01 5.4411777389114624e-01 1.3957000000000000e-01 1 0 0 0 0 +P 69 -311 -2.6561371175678439e-01 -2.6535883073847484e+00 2.0655232762662497e+01 2.0832628193716424e+01 4.9767000000000000e-01 2 0 0 -40 0 +P 70 323 1.0866371896259655e-01 -8.8626238190570616e-01 4.6627917510728158e+00 4.8302466865539628e+00 8.9016140429299728e-01 2 0 0 -41 0 +P 71 113 -4.9783662946179669e-01 -2.2840858695582428e-01 1.7034444868848415e+00 1.9604937252009362e+00 8.0112466846605357e-01 2 0 0 -42 0 +P 72 -323 -2.9015742650522380e-01 -2.3021536904469947e-01 6.4282764365011924e-01 1.1577885131594590e+00 8.8885117621720233e-01 2 0 0 -43 0 +P 73 311 7.9013389939514289e-02 -3.2312546676672708e-02 -8.4688302464291099e-01 9.8598859161290120e-01 4.9767000000000000e-01 2 0 0 -44 0 +P 74 113 1.2774634435977392e-01 1.7876746229795942e-01 -7.0745137977013928e-01 1.0861776738766289e+00 7.9436613121131461e-01 2 0 0 -45 0 +P 75 -2112 2.3991231535880583e-01 -6.4340230480703609e-01 -2.3473851019465588e+00 2.6200253904556892e+00 9.3957000000000002e-01 1 0 0 0 0 +P 76 2112 1.4332258420217242e-01 -2.1997217583827630e-01 -2.2266533235780592e+00 2.4309886732740313e+00 9.3957000000000002e-01 1 0 0 0 0 +P 77 221 -1.5764236109767513e-01 9.2260932887338432e-01 -1.1183066194239037e+01 1.1235512008581036e+01 5.4744999999999999e-01 2 0 0 -46 0 +P 78 211 -3.9688019773273309e-01 -5.0114132735548866e-01 -1.1139586968129358e+00 1.2919134198703757e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 111 2.8720505725726897e-01 2.8206480950685814e-01 -1.0371931167428463e+00 1.1207303259460017e+00 1.3497999999999999e-01 2 0 0 -47 0 +P 80 223 4.0600347620418453e-01 -2.4511798802410625e-01 -3.5094643591439350e+01 3.5108232820041870e+01 8.5386256819630568e-01 2 0 0 -48 0 +P 81 -321 -6.1416080466482037e-01 2.7652838022953574e-01 -2.2846185259167453e+02 2.2846337866717087e+02 4.9359999999999998e-01 1 0 0 0 0 +P 82 323 1.2565639040248300e-01 -3.0746308740674749e-01 -1.4994406836076098e+03 1.4994409818689087e+03 8.8550960455907635e-01 2 0 0 -49 0 +P 83 -321 1.9429284964222532e-01 2.9316952731129947e-01 -1.6936871917454789e+02 1.6936980360698905e+02 4.9359999999999998e-01 1 0 0 0 0 +P 84 311 -9.3629085348251956e-02 -1.1090305621819395e-01 -5.0941280621429246e+02 5.0941306998980963e+02 4.9767000000000000e-01 2 0 0 -50 0 +V -18 0 0 0 0 0 2 1 0 +P 27 21 -1.3650212674856288e-01 -5.9889764280123572e+00 -1.3829130975861951e+01 1.5070877049244315e+01 0 2 0 0 -18 0 +P 28 21 1.3650212674856288e-01 5.9889764280123572e+00 -6.1244142694407962e+01 6.1536424058104799e+01 0 2 0 0 -18 0 +P 85 92 0 0 -7.5073273670269913e+01 7.6607301107349116e+01 1.5253922884976552e+01 2 0 0 -19 0 +V -19 0 0 0 0 0 0 9 0 +P 86 -2112 -3.8391846582458374e-02 -2.4829965966375998e+00 -7.9823040467504578e+00 8.4122955079137967e+00 9.3957000000000002e-01 1 0 0 0 0 +P 87 2212 1.8826721276030065e-01 -2.1411823793389910e+00 -4.4940750564267944e+00 5.0692373914317530e+00 9.3827000000000005e-01 1 0 0 0 0 +P 88 -213 2.0012868143999138e-01 -1.1118139792674885e-01 -1.6567370969599078e+00 1.8269381912397860e+00 7.3519558879763558e-01 2 0 0 -51 0 +P 89 -313 -6.2630872275736982e-01 1.3663451184419380e+00 -1.2866054962931736e+01 1.2986301018153689e+01 9.2167360059140557e-01 2 0 0 -52 0 +P 90 321 7.8884764052036593e-02 7.4459657794075773e-01 -1.0937413012935250e+01 1.0974119155786763e+01 4.9359999999999998e-01 1 0 0 0 0 +P 91 -211 4.2278301863584250e-02 3.9247341077632097e-01 -8.7403526103734830e+00 8.7503752131858565e+00 1.3957000000000000e-01 1 0 0 0 0 +P 92 211 6.4367355561099904e-02 3.6656271279001679e-01 -1.3767381548990618e+00 1.4329686357086739e+00 1.3957000000000000e-01 1 0 0 0 0 +P 93 -2212 4.1585942036274817e-02 5.6395536708324689e-01 -1.1971979631427098e+01 1.2021997418683901e+01 9.3827000000000005e-01 1 0 0 0 0 +P 94 2112 4.9188311626540610e-02 1.3014271868710594e+00 -1.5047619097566116e+01 1.5133068575244886e+01 9.3957000000000002e-01 1 0 0 0 0 +V -20 0 -7.4269769026061745e-06 -2.7446285922861489e-05 -1.0438030306862014e-01 1.0438031490658096e-01 0 2 0 +P 95 22 -4.5719298565037564e-02 -1.2006795010764217e-01 -2.7170906130817190e+02 2.7170909168361442e+02 0 1 0 0 0 0 +P 96 22 2.1135098588074424e-02 2.9217394006442684e-02 -7.3802480998431093e+01 7.3802489808083607e+01 0 1 0 0 0 0 +V -21 0 0 0 0 0 0 3 0 +P 97 211 1.9058278725344435e-01 1.3383881894953986e-01 6.8583567178648615e+00 6.8637286719855979e+00 1.3957000000000000e-01 1 0 0 0 0 +P 98 -211 -4.9893773724282060e-02 -5.3826599477990789e-02 4.3098583175285032e+00 4.3127421895514972e+00 1.3957000000000000e-01 1 0 0 0 0 +P 99 111 1.2717944250852329e-02 2.0789923927546888e-02 5.6102983279735579e+00 5.6119747768771902e+00 1.3497999999999999e-01 2 0 0 -53 0 +V -22 0 0 0 0 0 0 3 0 +P 100 111 2.0228195634579012e-02 -1.9810461285380357e-01 2.6837098683979255e+00 2.6944707969597661e+00 1.3497999999999999e-01 2 0 0 -54 0 +P 101 111 -1.9448733826450373e-01 -3.0772173043153522e-01 5.9693477937278034e+00 5.9819604370981914e+00 1.3497999999999999e-01 2 0 0 -55 0 +P 102 111 -2.6469435630176663e-01 -5.8497375613724767e-01 7.5508427208632973e+00 7.5792943466553382e+00 1.3497999999999999e-01 2 0 0 -56 0 +V -23 0 0 0 0 0 0 2 0 +P 103 -211 5.9300840341949650e-02 -7.9895912928811963e-01 3.9895681488508994e+00 4.0716073090566693e+00 1.3957000000000000e-01 1 0 0 0 0 +P 104 111 -1.2368786453413552e+00 -1.4005317185689488e+00 1.2746545583623952e+01 1.2883477860959070e+01 1.3497999999999999e-01 2 0 0 -57 0 +V -24 0 0 0 0 0 0 2 0 +P 105 22 -6.3422905570294317e-03 -7.9336321700606463e-02 8.0076038030440988e-01 8.0470594831637421e-01 0 1 0 0 0 0 +P 106 22 -2.6701434621632107e+00 -6.6149024683386048e-01 2.6198889178804361e+01 2.6342912323022706e+01 0 1 0 0 0 0 +V -25 0 0 0 0 0 0 3 0 +P 107 -211 1.7586778974385729e-02 3.3676945404653977e-02 3.2030504088469960e+00 3.2063148844056766e+00 1.3957000000000000e-01 1 0 0 0 0 +P 108 211 3.9410357646856603e-01 9.7313149537317151e-02 1.4025732004537366e+01 1.4032299367033970e+01 1.3957000000000000e-01 1 0 0 0 0 +P 109 111 3.1959377834786096e-01 -3.7306221511642979e-01 1.2482378225204421e+01 1.2492769963341344e+01 1.3497999999999999e-01 2 0 0 -58 0 +V -26 0 0 0 0 0 0 2 0 +P 110 -211 -8.4080503689870231e-02 -1.8799913200941373e-01 1.7544692223771495e+01 1.7546456001611979e+01 1.3957000000000000e-01 1 0 0 0 0 +P 111 111 1.5239435838771678e-01 4.0414983069819693e-01 9.1658492565191594e+00 9.1770133115166939e+00 1.3497999999999999e-01 2 0 0 -59 0 +V -27 0 0 0 0 0 0 3 0 +P 112 -211 4.7070025031333157e-01 6.8525031471775202e-02 4.9225309974297012e+01 4.9227805925676876e+01 1.3957000000000000e-01 1 0 0 0 0 +P 113 211 5.9651172498042482e-01 -1.2288599138979327e-01 1.0093129545527971e+02 1.0093322946022674e+02 1.3957000000000000e-01 1 0 0 0 0 +P 114 111 1.0877872629489453e-01 6.2030942934870215e-02 9.2553300234852465e+00 9.2571612329700255e+00 1.3497999999999999e-01 2 0 0 -60 0 +V -28 0 0 0 0 0 0 2 0 +P 115 -211 4.0683649987303769e-02 6.5512868154666238e-03 6.5875064226277624e+00 6.5891136529731558e+00 1.3957000000000000e-01 1 0 0 0 0 +P 116 111 3.7716281534402596e-01 2.6387314224154818e-01 4.9755028559286941e+01 4.9757340838918765e+01 1.3497999999999999e-01 2 0 0 -61 0 +V -29 0 3.6949163916019824e-04 8.5257720973118501e-05 3.9454030739861111e-02 3.9455868213549919e-02 0 2 0 +P 117 22 4.7151597958341473e-01 4.5921772870311794e-02 5.0588381905928500e+01 5.0590600114925508e+01 0 1 0 0 0 0 +P 118 22 9.6707579898488760e-01 2.8602364470440500e-01 1.0302333278063017e+02 1.0302826865649438e+02 0 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 119 -211 9.1583466897251198e-01 2.1251086350657316e+00 -4.3722848514166444e+01 4.3784264317553273e+01 1.3957000000000000e-01 1 0 0 0 0 +P 120 211 6.4923444799854679e-01 7.0777405005783134e-01 -1.7423230407349280e+01 1.7450240316020970e+01 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 121 211 -1.0733243092126835e-01 4.2644543258701532e-02 1.5591728243781708e+02 1.5591738768138310e+02 1.3957000000000000e-01 1 0 0 0 0 +P 122 -211 -2.5305067720695146e-01 -2.1157383395427928e-01 7.0655409695023229e+02 7.0655418772736425e+02 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 123 -2212 4.9944981990249282e-01 1.4870720522775491e-01 3.2948710527509917e+02 3.2948885331238847e+02 9.3827000000000005e-01 1 0 0 0 0 +P 124 111 5.2795567011208044e-01 -5.5755347150152117e-02 1.2395602297064545e+02 1.2395723333532385e+02 1.3497999999999999e-01 2 0 0 -62 0 +V -33 0 0 0 0 0 0 3 0 +P 125 211 -1.2188920384027405e-01 3.5075345690126225e-01 3.1795559830185887e+01 3.1798034367950663e+01 1.3957000000000000e-01 1 0 0 0 0 +P 126 -211 -2.2097435527052245e-01 7.1076741178384292e-02 8.2130801390093922e+01 8.2131248001797573e+01 1.3957000000000000e-01 1 0 0 0 0 +P 127 111 -1.6637823561728583e-02 -1.7998512288051847e-02 1.0856708622226705e+01 1.0857575349586533e+01 1.3497999999999999e-01 2 0 0 -63 0 +V -34 0 0 0 0 0 0 2 0 +P 128 -211 3.1091271140052751e-01 3.5632832396911990e-01 3.4350353332907815e+01 3.4353891926084358e+01 1.3957000000000000e-01 1 0 0 0 0 +P 129 111 2.4485646346106241e-01 -1.1784239944012394e-02 5.7016077712252383e+01 5.7016764471916609e+01 1.3497999999999999e-01 2 0 0 -64 0 +V -35 0 0 0 0 0 0 1 0 +P 130 310 6.8837804480312736e-02 -2.9839760512711585e-02 3.7650473956009833e+01 3.7653837700767077e+01 4.9767000000000000e-01 2 0 0 -65 0 +V -36 0 0 0 0 0 0 1 0 +P 131 130 5.5852191137677354e-01 -2.3170010256673915e-01 5.8824232435728810e+01 5.8829445252735191e+01 4.9767000000000000e-01 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 132 211 1.0828998400047013e-01 -5.1351427865948790e-02 4.3747265017350578e+00 4.3785928606872950e+00 1.3957000000000000e-01 1 0 0 0 0 +P 133 -211 -1.2477893517836794e-01 -2.6770715933836557e-02 5.3652236263234054e-01 5.6887826852539047e-01 1.3957000000000000e-01 1 0 0 0 0 +V -38 0 0 0 0 0 0 2 0 +P 134 211 1.8156078434278519e-01 -5.3337778057810092e-01 1.1827166973830426e+01 1.1841402559958460e+01 1.3957000000000000e-01 1 0 0 0 0 +P 135 111 2.9051823129776339e-01 9.4253205862916190e-02 2.5554493631607658e+00 2.5771739478759641e+00 1.3497999999999999e-01 2 0 0 -66 0 +V -39 0 0 0 0 0 0 2 0 +P 136 -211 -4.9377802104061563e-01 -2.1311641152282343e-01 6.7449678075376100e+00 6.7678139637952421e+00 1.3957000000000000e-01 1 0 0 0 0 +P 137 111 1.9335000230150959e-01 -1.6887660807106833e-01 9.4847169615688305e+00 9.4891505928410194e+00 1.3497999999999999e-01 2 0 0 -67 0 +V -40 0 0 0 0 0 0 1 0 +P 138 130 -2.6561371175678439e-01 -2.6535883073847484e+00 2.0655232762662497e+01 2.0832628193716424e+01 4.9767000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 139 311 -4.5567411934308917e-02 -1.9406127316992008e-01 1.8546771679191969e+00 1.9306058616080843e+00 4.9767000000000000e-01 2 0 0 -68 0 +P 140 211 1.5423113089690546e-01 -6.9220110873578600e-01 2.8081145831536185e+00 2.8996408249458776e+00 1.3957000000000000e-01 1 0 0 0 0 +V -42 0 0 0 0 0 0 2 0 +P 141 211 7.2357677730123915e-02 -1.3328084686398270e-01 6.2898311502468995e-02 2.1548874717056224e-01 1.3957000000000000e-01 1 0 0 0 0 +P 142 -211 -5.7019430719192066e-01 -9.5127740091841564e-02 1.6405461753823727e+00 1.7450049780303740e+00 1.3957000000000000e-01 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 143 -311 -1.0247389161942042e-01 -3.7550445704827762e-01 2.5312077640729019e-01 6.8062475129529332e-01 4.9767000000000000e-01 2 0 0 -69 0 +P 144 -211 -1.8768353488580339e-01 1.4528908800357815e-01 3.8970686724282899e-01 4.7716376186416543e-01 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 1 0 +P 145 310 7.9013389939514289e-02 -3.2312546676672708e-02 -8.4688302464291099e-01 9.8598859161290064e-01 4.9767000000000000e-01 2 0 0 -70 0 +V -45 0 0 0 0 0 0 2 0 +P 146 -211 -7.3050709928776256e-02 3.0537971459793700e-01 -7.3307859769912698e-01 8.0961545909989518e-01 1.3957000000000000e-01 1 0 0 0 0 +P 147 211 2.0079705428855016e-01 -1.2661225229997761e-01 2.5627217928987662e-02 2.7656221477673332e-01 1.3957000000000000e-01 1 0 0 0 0 +V -46 0 0 0 0 0 0 3 0 +P 148 -211 -1.3676538015193693e-01 2.1243887536093334e-01 -2.4816336935736563e+00 2.4983635882218485e+00 1.3957000000000000e-01 1 0 0 0 0 +P 149 211 -6.2902915281313837e-02 5.6601656520515309e-01 -6.6535918753555769e+00 6.6793784259866031e+00 1.3957000000000000e-01 1 0 0 0 0 +P 150 111 4.2025934335575603e-02 1.4415388830729814e-01 -2.0478406253098065e+00 2.0577699943725856e+00 1.3497999999999999e-01 2 0 0 -71 0 +V -47 0 2.1528371579891772e-05 2.1143067906480407e-05 -7.7746119899777387e-05 8.4007917995002846e-05 0 2 0 +P 151 22 1.3065354257831752e-01 1.6396812327723584e-01 -6.9933227768013839e-01 7.3008323377859696e-01 0 1 0 0 0 0 +P 152 22 1.5655151467895148e-01 1.1809668622962230e-01 -3.3786083906270786e-01 3.9064709216740479e-01 0 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 153 -211 -6.7869057726822266e-02 2.1587332720713015e-01 -6.2122541431505294e+00 6.2179408831531298e+00 1.3957000000000000e-01 1 0 0 0 0 +P 154 211 4.7387253393100676e-01 -4.6099131523123638e-01 -2.8882389448288819e+01 2.8890291936888733e+01 1.3957000000000000e-01 1 0 0 0 0 +V -49 0 0 0 0 0 0 2 0 +P 155 321 2.7028747166747208e-01 -1.7866346638866426e-01 -6.5733789914797921e+02 6.5733816432121944e+02 4.9359999999999998e-01 1 0 0 0 0 +P 156 111 -1.4463108126498905e-01 -1.2879962101808320e-01 -8.4210278445963058e+02 8.4210281754768846e+02 1.3497999999999999e-01 2 0 0 -72 0 +V -50 0 0 0 0 0 0 1 0 +P 157 130 -9.3629085348251956e-02 -1.1090305621819395e-01 -5.0941280621429246e+02 5.0941306998980963e+02 4.9767000000000000e-01 1 0 0 0 0 +V -51 0 0 0 0 0 0 2 0 +P 158 -211 -1.3297904895597815e-01 -2.9438247842001541e-01 -9.5132803387557174e-01 1.0143220809977018e+00 1.3957000000000000e-01 1 0 0 0 0 +P 159 111 3.3310773039596953e-01 1.8320108049326658e-01 -7.0540906308433615e-01 8.1261611024208424e-01 1.3497999999999999e-01 2 0 0 -73 0 +V -52 0 0 0 0 0 0 2 0 +P 160 -311 -2.8181023933901379e-02 5.6769404948908375e-01 -5.7061728336847795e+00 5.7559668641087107e+00 4.9767000000000000e-01 2 0 0 -74 0 +P 161 111 -5.9812769882346839e-01 7.9865106895285420e-01 -7.1598821292469550e+00 7.2303341540449777e+00 1.3497999999999999e-01 2 0 0 -75 0 +V -53 0 6.3322798099678783e-07 1.0351328244606082e-06 2.7933743165875751e-04 2.7942090225223967e-04 0 2 0 +P 162 22 5.8096471301070769e-02 5.3428646123028153e-02 3.7765134140627472e+00 3.7773381350893178e+00 0 1 0 0 0 0 +P 163 22 -4.5378527050218442e-02 -3.2638722195481272e-02 1.8337849139108104e+00 1.8346366417878721e+00 0 1 0 0 0 0 +V -54 0 3.7908084154555169e-06 -3.7125240783364860e-05 5.0293314033274142e-04 5.0494976204667260e-04 0 2 0 +P 164 22 2.3879476083673905e-02 -9.5043452643842410e-02 2.0569871554342769e+00 2.0593201899874849e+00 0 1 0 0 0 0 +P 165 22 -3.6512804490948913e-03 -1.0306116020996116e-01 6.2672271296364868e-01 6.3515060697228121e-01 0 1 0 0 0 0 +V -55 0 -2.8163829617978358e-05 -4.4561370745053719e-05 8.6442488078252821e-04 8.6625132533200738e-04 0 2 0 +P 166 22 -2.1272696263621679e-01 -2.5289224126334287e-01 5.0842833699721055e+00 5.0950117401727875e+00 0 1 0 0 0 0 +P 167 22 1.8239624371713066e-02 -5.4829489168192323e-02 8.8506442375569738e-01 8.8694869692540323e-01 0 1 0 0 0 0 +V -56 0 -1.0050177887851955e-04 -2.2210863847062044e-04 2.8669788660454984e-03 2.8777816615566582e-03 0 2 0 +P 168 22 -2.3432702581842058e-01 -3.6425243249658318e-01 4.8985588570153329e+00 4.9176689462846062e+00 0 1 0 0 0 0 +P 169 22 -3.0367330483346080e-02 -2.2072132364066455e-01 2.6522838638479649e+00 2.6616254003707325e+00 0 1 0 0 0 0 +V -57 0 -2.7250250929128789e-04 -3.0855768194360781e-04 2.8082509706315608e-03 2.8384191599824990e-03 0 2 0 +P 170 22 -1.2172414307179868e-02 -1.7033656066235661e-02 7.2692940643269088e-02 7.5647714627834581e-02 0 1 0 0 0 0 +P 171 22 -1.2247062310341752e+00 -1.3834980625027131e+00 1.2673852642980682e+01 1.2807830146331236e+01 0 1 0 0 0 0 +V -58 0 7.5098213197226507e-05 -8.7662237705231396e-05 2.9331118584683597e-03 2.9355537112795457e-03 0 2 0 +P 172 22 3.2605188375907718e-01 -3.4647857601151411e-01 1.2132012012470367e+01 1.2141337352419752e+01 0 1 0 0 0 0 +P 173 22 -6.4581054112161709e-03 -2.6583639104915669e-02 3.5036621273405388e-01 3.5143261092159195e-01 0 1 0 0 0 0 +V -59 0 1.4467157300980747e-06 3.8366900426852168e-06 8.7013577401450696e-05 8.7119560419112813e-05 0 2 0 +P 174 22 -2.1452482341985615e-02 1.4905556420087129e-02 4.8556153445010763e-01 4.8626370247877698e-01 0 1 0 0 0 0 +P 175 22 1.7384684072970241e-01 3.8924427427810981e-01 8.6802877220690533e+00 8.6907496090379173e+00 0 1 0 0 0 0 +V -60 0 1.3419342637882059e-05 7.6523646281469803e-06 1.1417714569953998e-03 1.1419973617136749e-03 0 2 0 +P 176 22 -1.6355529844852102e-02 4.0361833523059554e-02 4.2397615259600352e+00 4.2399851860558204e+00 0 1 0 0 0 0 +P 177 22 1.2513425613974663e-01 2.1669109411810668e-02 5.0155684975252131e+00 5.0171760469142059e+00 0 1 0 0 0 0 +V -61 0 1.8450118173567006e-05 1.2908193647738750e-05 2.4339254011843977e-03 2.4340385136936960e-03 0 2 0 +P 178 22 1.0751210652606756e-01 2.8884350394443786e-02 7.9047322108340383e+00 7.9055160795323509e+00 0 1 0 0 0 0 +P 179 22 2.6965070881795838e-01 2.3498879184710436e-01 4.1850296348452900e+01 4.1851824759386410e+01 0 1 0 0 0 0 +V -62 0 5.5808110402548016e-05 -5.8936777184863162e-06 1.3102902017394719e-02 1.3103029960268379e-02 0 2 0 +P 180 22 2.0951224553846201e-01 4.2892218244458290e-02 4.5755572283853013e+01 4.5756072057665904e+01 0 1 0 0 0 0 +P 181 22 3.1844342457361852e-01 -9.8647565394610406e-02 7.8200450686792436e+01 7.8201161277657945e+01 0 1 0 0 0 0 +V -63 0 -7.7083740048796682e-06 -8.3387868451053499e-06 5.0299590094601649e-03 5.0303605679107057e-03 0 2 0 +P 182 22 -6.6083273365725573e-02 -4.5663363344813121e-02 6.0722671538732644e+00 6.0727984101054098e+00 0 1 0 0 0 0 +P 183 22 4.9445449803996989e-02 2.7664851056761277e-02 4.7844414683534406e+00 4.7847769394811230e+00 0 1 0 0 0 0 +V -64 0 1.6595430708072929e-05 -7.9869052535450839e-07 3.8643307738137509e-03 3.8643773197462525e-03 0 2 0 +P 184 22 1.6865708784952835e-01 5.3640703946320818e-02 3.2632464854177648e+01 3.2632944779739709e+01 0 1 0 0 0 0 +P 185 22 7.6199375611534031e-02 -6.5424943890333209e-02 2.4383612858074731e+01 2.4383819692176896e+01 0 1 0 0 0 0 +V -65 0 7.5637609908900192e+00 -3.2787335134736542e+00 4.1369591657798037e+03 4.1373287673609439e+03 0 2 0 +P 186 211 1.5828490107324933e-01 -6.4280458726054257e-02 3.2153714760343846e+01 3.2154471520485849e+01 1.3957000000000000e-01 1 0 0 0 0 +P 187 -211 -8.9447096592936592e-02 3.4440698213342676e-02 5.4967591956659874e+00 5.4993661802812257e+00 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 2.5320261325297056e-06 8.2146851594660370e-07 2.2272146360575985e-05 2.2461488062029682e-05 0 2 0 +P 188 22 1.2669605830908041e-02 -2.6208921583066511e-02 3.1664036093791548e-01 3.1797569821819927e-01 0 1 0 0 0 0 +P 189 22 2.7784862546685535e-01 1.2046212744598270e-01 2.2388090022228502e+00 2.2591982496577647e+00 0 1 0 0 0 0 +V -67 0 1.3660190168239829e-04 -1.1931143282950388e-04 6.7009586679455911e-03 6.7040910313070105e-03 0 2 0 +P 190 22 3.6058703115079364e-04 4.2662265957210021e-04 -3.1743476677878273e-04 6.4249103640209230e-04 0 1 0 0 0 0 +P 191 22 1.9298941527035879e-01 -1.6930323073064041e-01 9.4850343963356085e+00 9.4885081018046158e+00 0 1 0 0 0 0 +V -68 0 0 0 0 0 0 1 0 +P 192 310 -4.5567411934308917e-02 -1.9406127316992008e-01 1.8546771679191969e+00 1.9306058616080843e+00 4.9767000000000000e-01 2 0 0 -76 0 +V -69 0 0 0 0 0 0 1 0 +P 193 310 -1.0247389161942042e-01 -3.7550445704827762e-01 2.5312077640729019e-01 6.8062475129529332e-01 4.9767000000000000e-01 2 0 0 -77 0 +V -70 0 5.4385624976392712e+00 -2.2241015692846111e+00 -5.8291718166200262e+01 6.7866479106276032e+01 0 2 0 +P 194 211 3.7783620486313486e-02 1.7172654641153431e-01 -5.6951638254031056e-01 6.1216525840763614e-01 1.3957000000000000e-01 1 0 0 0 0 +P 195 -211 4.1229769453200796e-02 -2.0403909308820700e-01 -2.7736664210260031e-01 3.7382333320526429e-01 1.3957000000000000e-01 1 0 0 0 0 +V -71 0 8.7730673005939703e-06 3.0092650734755197e-05 -4.2749421067659666e-04 4.2956700273743739e-04 0 2 0 +P 196 22 2.2729804313198435e-02 1.4173360040581309e-01 -1.0529592182762286e+00 1.0626985333767038e+00 0 1 0 0 0 0 +P 197 22 1.9296130022377168e-02 2.4202879014850413e-03 -9.9488140703357786e-01 9.9507146099588162e-01 0 1 0 0 0 0 +V -72 0 -6.1533975488663230e-05 -5.4798406078115862e-05 -3.5827660033139480e-01 3.5827661440886521e-01 0 2 0 +P 198 22 -1.6235924682431213e-01 -1.3015266567446149e-01 -6.7338370639108132e+02 6.7338373854232020e+02 0 1 0 0 0 0 +P 199 22 1.7728165559323081e-02 1.3530446563782706e-03 -1.6871907806854932e+02 1.6871907900536871e+02 0 1 0 0 0 0 +V -73 0 1.5932823142593387e-06 8.7626618918794967e-07 -3.3740309274555397e-06 3.8868112583033451e-06 0 2 0 +P 200 22 1.3362069744752528e-01 3.8397322366062157e-02 -1.4759414341141447e-01 2.0276310394298949e-01 0 1 0 0 0 0 +P 201 22 1.9948703294844422e-01 1.4480375812720442e-01 -5.5781491967292174e-01 6.0985300629909467e-01 0 1 0 0 0 0 +V -74 0 0 0 0 0 0 1 0 +P 202 310 -2.8181023933901379e-02 5.6769404948908375e-01 -5.7061728336847795e+00 5.7559668641087107e+00 4.9767000000000000e-01 2 0 0 -78 0 +V -75 0 -2.7124016605470135e-05 3.6217391200682724e-05 -3.2468779183593861e-04 3.2788266459349427e-04 0 2 0 +P 203 22 -4.6115329401590260e-01 6.6198954161011503e-01 -6.0743062014745783e+00 6.1276494957736771e+00 0 1 0 0 0 0 +P 204 22 -1.3697440480756579e-01 1.3666152734273918e-01 -1.0855759277723773e+00 1.1026846582713004e+00 0 1 0 0 0 0 +V -76 0 -2.4429198574998088e+00 -1.0403841641959659e+01 9.9431314846080440e+01 1.0350193693526136e+02 0 2 0 +P 205 -211 -6.1157976329956530e-02 7.9033809450869533e-02 2.9779915054099509e-01 3.4373065046345536e-01 1.3957000000000000e-01 1 0 0 0 0 +P 206 211 1.5590564395647613e-02 -2.7309508262078958e-01 1.5568780173782018e+00 1.5868752111446289e+00 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 -1.4903509094708578e+01 -5.4612291992451460e+01 3.6813160246280908e+01 9.8988113076509521e+01 0 2 0 +P 207 -211 -2.4069686163035753e-01 -3.2706064871694290e-01 1.7742951834380868e-01 4.6461238254868642e-01 1.3957000000000000e-01 1 0 0 0 0 +P 208 211 1.3822297001093711e-01 -4.8443808331334694e-02 7.5691258063481481e-02 2.1601236874660687e-01 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 -1.3280346540154400e-01 2.6752660668688737e+00 -2.6890418469921691e+01 2.7125073527598740e+01 0 2 0 +P 209 211 5.4187093550292845e-02 4.8896006520894103e-01 -5.0394127666042294e+00 5.0652916010423583e+00 1.3957000000000000e-01 1 0 0 0 0 +P 210 -211 -8.2368117484194217e-02 7.8733984280142638e-02 -6.6676006708054880e-01 6.9067526306635141e-01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 2 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 224 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 21 2.2381466690269431e-03 -3.4720102421292970e-01 8.5760509831394440e+00 8.5830766060849815e+00 0 3 0 0 -3 0 +P 13 1 -1.5953315142106061e-01 2.5534284672707136e-01 4.5110225338059212e+02 4.5110247456187125e+02 3.3000000000000002e-01 2 0 0 -9 0 +P 41 2203 1.5729500475203367e-01 9.1858177485858339e-02 4.1239913742420931e+03 4.1239914503976361e+03 7.7132999999999996e-01 2 0 0 -13 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 1 1.8117451391948236e-01 -9.2107013792072212e-01 -1.9146656945590603e+03 1.9146659246760862e+03 0 3 0 0 -4 0 +P 39 2203 -1.8117451391948236e-01 9.2107013792072212e-01 -4.3349283892041103e+03 4.3349285594657858e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -3 0 0 0 0 0 0 8 0 +P 5 -2 -1.2188640529118391e+01 1.1628197337501724e+00 -1.1080748662284646e+01 1.6513573162643777e+01 0 3 0 0 -5 0 +P 11 -4 1.9522097387122794e+00 -1.0579566003536176e+00 -8.1797583597675185e+00 8.6074875461043483e+00 1.5000000000000000e+00 2 0 0 -9 0 +P 12 21 1.8528631058109368e+00 6.4833945342773376e+00 -3.6105831959994241e+01 3.6730077700698025e+01 0 2 0 0 -9 0 +P 14 4 1.0685515977985798e+01 -5.1823216653895150e+00 -2.7066366488563993e+01 2.9595183805014884e+01 1.5000000000000000e+00 2 0 0 -11 0 +P 15 21 3.5171262487128507e-01 -6.4498578844444887e-01 -1.1127260710033722e+00 1.3333670713197316e+00 0 2 0 0 -11 0 +P 16 21 3.3207848203048465e-02 9.6085117788368979e-02 -6.6003952661133902e-02 1.2120904590654386e-01 0 2 0 0 -11 0 +P 17 21 -3.7579969777487718e-02 -1.6462158612486150e-01 -9.7318874051882720e-01 9.8772913565377995e-01 0 2 0 0 -11 0 +P 40 2 -5.7580659856764782e-01 -2.1687633978359599e+00 2.8191957870207176e+00 3.6182665463315975e+00 3.3000000000000002e-01 2 0 0 -13 0 +V -4 0 0 0 0 0 0 12 0 +P 6 1 -1.0356250591506910e+01 -7.5276061205649762e+00 -8.5247158145293622e+02 8.5256771811105455e+02 0 3 0 0 -5 0 +P 28 21 8.2987543073312353e-01 1.2838272062790441e+00 -3.8410647385758452e+01 3.8441055372078296e+01 0 2 0 0 -11 0 +P 29 21 1.4485320516326545e+00 3.4111844708869525e+00 -3.4836760966940879e+01 3.5033331832225194e+01 0 2 0 0 -11 0 +P 30 21 4.7483608911375708e+00 5.0805058534361418e+00 -7.0730773803904057e+01 7.1071800552528032e+01 0 2 0 0 -11 0 +P 31 21 7.0471823787681096e+00 5.3004641843654632e+00 -7.0878720555638282e+01 7.1425140725473000e+01 0 2 0 0 -11 0 +P 32 21 6.4330986433301513e-05 -2.8659752464543387e-01 -2.0138946295725479e+00 2.0341852728531187e+00 0 2 0 0 -11 0 +P 33 21 -2.0101138190485397e+00 1.8374935910906517e-01 -1.0007919765693144e+02 1.0009955107315744e+02 0 2 0 0 -11 0 +P 34 21 -1.9229525710899356e+00 -1.5157785543803595e+00 -2.2906932968426068e+02 2.2908241559144841e+02 0 2 0 0 -11 0 +P 35 21 -3.1664534528418580e+00 -1.7416366637989906e+00 -8.3806850645725774e+01 8.3884730081777633e+01 0 2 0 0 -11 0 +P 36 21 -3.7168946513508216e-01 -3.5284021138698476e+00 -1.0878664867278101e+02 1.0884448862478403e+02 0 2 0 0 -11 0 +P 37 21 -3.1241121155591017e-01 2.4591674095968902e-01 -7.8556145968468542e+01 7.8557152094687893e+01 0 2 0 0 -11 0 +P 38 21 2.1757864903890276e+00 -6.9754834757800643e-01 -1.5468366370543001e+02 1.5470053793663271e+02 0 2 0 0 -11 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 -1.3261813212669724e+01 -8.0763106975450007e+00 -1.0418644172499936e+02 1.0533715927196684e+02 0 3 0 0 -6 0 +P 8 -24 -9.2830779079555814e+00 1.7115243107301954e+00 -7.5936588839022193e+02 7.6374413200173183e+02 8.1113758792799615e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 -1.3261813212669724e+01 -8.0763106975450007e+00 -1.0418644172499936e+02 1.0533715927196684e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 -24 -9.2830779079555814e+00 1.7115243107301954e+00 -7.5936588839022193e+02 7.6374413200173183e+02 8.1113758792799615e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 6 0 +P 42 -4 -3.6405680130529461e+01 2.3505435732580519e+01 -3.4936432423810379e+02 3.5204482684040653e+02 1.5000000000000000e+00 2 0 0 -15 0 +P 43 21 -1.2696872981433902e+00 -7.3488203514654904e-02 -1.1342868074612710e+01 1.1413945965755696e+01 0 2 0 0 -15 0 +P 44 21 -4.1552470502532822e-02 -2.4740042534493506e-01 -1.9652301256829328e+00 1.9811771816668682e+00 0 2 0 0 -15 0 +P 45 21 9.2875684016986071e-01 -5.2482893316735224e-01 -8.2669188038171093e+00 8.3354652651280841e+00 0 2 0 0 -15 0 +P 46 21 2.5933060912540751e+00 -1.5432000571134972e+00 -4.0105536618336508e+01 4.0218910606130805e+01 0 2 0 0 -15 0 +P 47 3 2.4911779059795872e+01 -1.9404993802709878e+01 -3.4832101052966868e+02 3.4974980614264371e+02 5.0000000000000000e-01 2 0 0 -15 0 +V -9 0 0 0 0 0 0 1 0 +P 52 92 3.6455396931021555e+00 5.6807807806507915e+00 4.0681666306083036e+02 4.9644003980867365e+02 2.8444218138552606e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 17 0 +P 53 -423 1.8014118894544171e+00 -7.4135744726077624e-01 -9.8985325423010675e+00 1.0286033591286305e+01 2.0066999999999999e+00 2 0 0 -21 0 +P 54 -323 5.0264419845508967e-01 1.5096096593072483e+00 -6.4075559093590417e+00 6.6727104662027399e+00 9.6784281807288342e-01 2 0 0 -22 0 +P 55 313 6.4824466837653216e-01 1.7028313815609744e+00 -1.2490128522047499e+01 1.2658108385343498e+01 9.5107388447566010e-01 2 0 0 -23 0 +P 56 113 3.1373653839431187e-01 1.0591234964860790e+00 -3.8183528211076077e+00 4.0448247418494256e+00 7.4874276589783129e-01 2 0 0 -24 0 +P 57 223 8.2692544173461439e-03 4.6939097115965078e-01 -5.5469163366739194e+00 5.6207627549321177e+00 7.7736531746492565e-01 2 0 0 -25 0 +P 58 213 1.9044107216389983e-01 8.1937027750395064e-01 -3.6346431429697050e+00 3.7966133083889493e+00 7.0427720613090783e-01 2 0 0 -26 0 +P 59 223 4.7623181452657998e-01 3.2991099537503743e-01 -1.3035235691380478e+00 1.6193069146444774e+00 7.6638318254016657e-01 2 0 0 -27 0 +P 60 -323 -1.0115943353617618e-01 5.6476717758048370e-03 1.7300715275273690e-01 8.2205819328193652e-01 7.9723463989499699e-01 2 0 0 -28 0 +P 61 313 -7.7118065121252105e-02 3.7088297201745679e-01 6.5831368662425160e-01 1.1370141416373667e+00 8.4612225676080488e-01 2 0 0 -29 0 +P 62 213 -3.5806889091875166e-01 -1.8533975814985065e-01 2.0214743365951066e-01 7.5874614723662881e-01 6.1013766841301631e-01 2 0 0 -30 0 +P 63 221 5.3742504319834894e-01 2.2371832414580742e-01 7.6764387006558730e+00 7.7179199395330977e+00 5.4744999999999999e-01 2 0 0 -31 0 +P 64 -213 -3.5723363435424654e-01 -2.4687075875660527e-01 4.3946274554500251e+00 4.4381896913330143e+00 4.4296300411712430e-01 2 0 0 -32 0 +P 65 211 -9.6962110337190308e-03 -1.9969339915386206e-01 9.7285408505103610e-01 1.0029438298701092e+00 1.3957000000000000e-01 1 0 0 0 0 +P 66 -213 3.6007407932397151e-01 -1.9108983779111039e-02 2.4483370677350226e+01 2.4497188617868417e+01 7.3945382481060740e-01 2 0 0 -33 0 +P 67 113 -3.7252120952480011e-01 1.1767633929689882e-02 3.8343277541438461e+01 3.8352383249490323e+01 7.4796909511894960e-01 2 0 0 -34 0 +P 68 113 -9.0606939026123462e-02 1.6342699333927246e-01 1.6719221309737839e+02 1.6719396525633584e+02 7.4228009410397144e-01 2 0 0 -35 0 +P 69 221 1.7346551830672804e-01 4.0747075115002573e-01 2.0582006607406680e+02 2.0582127057943939e+02 5.4744999999999999e-01 2 0 0 -36 0 +V -11 0 0 0 0 0 10 1 0 +P 18 21 -3.8916892480043179e+00 -1.8950634673498339e+00 4.3405633505207952e+01 4.3620929961851424e+01 0 2 0 0 -11 0 +P 19 21 -3.9110823174159708e+00 3.1313981445182435e+00 7.8933491919030098e+02 7.8935081989720652e+02 0 2 0 0 -11 0 +P 20 21 3.8916892480043179e+00 1.8950634673498339e+00 1.4168700767391088e+03 1.4168766886604622e+03 0 2 0 0 -11 0 +P 21 21 4.3740574207816687e+00 6.7194450447463385e+00 8.3124634883261848e+01 8.3510408001070459e+01 0 2 0 0 -11 0 +P 22 21 3.9110823174159708e+00 -3.1313981445182435e+00 3.6591766345710994e+01 3.6933177273722393e+01 0 2 0 0 -11 0 +P 23 21 -1.7556414536864717e+00 -3.2948210135311675e+00 9.6577188877003675e+00 1.0354209604743055e+01 0 2 0 0 -11 0 +P 24 21 -4.3740574207816687e+00 -6.7194450447463385e+00 8.7596980484749754e-01 8.0653978902882315e+00 0 2 0 0 -11 0 +P 25 21 -2.3472186202550427e+00 -1.7652302001002413e+00 -4.8822773731482902e+00 5.6975525674603205e+00 0 2 0 0 -11 0 +P 26 21 1.7556414536864717e+00 3.2948210135311675e+00 -4.6484359802172142e+00 5.9620532945694862e+00 0 2 0 0 -11 0 +P 27 21 2.3472186202550427e+00 1.7652302001002413e+00 -7.2800433838180606e+02 7.2801026241093734e+02 0 2 0 0 -11 0 +P 70 92 1.9317863021338749e+01 2.7609108265139839e+00 -3.6936736405113015e+03 8.4685219372436368e+03 7.6205156017495565e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 90 0 +P 91 -213 -1.4723087124553025e+00 1.8245140592851474e+00 3.9234982586875026e+02 3.9235769486019092e+02 8.2359715080257312e-01 2 0 0 -52 0 +P 92 213 1.7539750249024346e+00 1.4987779798051035e+00 6.9123026432414906e+02 6.9123466203199087e+02 8.7000748675694395e-01 2 0 0 -53 0 +P 93 -211 -8.9424661017914325e-02 -3.0761209203019885e-01 1.4068666240461201e+02 1.4068709635323111e+02 1.3957000000000000e-01 1 0 0 0 0 +P 94 111 7.0564265001932358e-01 3.8262897153753883e-01 1.6816678510920750e+02 1.6816875503507225e+02 1.3497999999999999e-01 2 0 0 -54 0 +P 95 223 1.8302919870385345e-01 6.5783452518379060e-01 2.6383157492994411e+02 2.6383362307134547e+02 7.8389220432534346e-01 2 0 0 -55 0 +P 96 113 1.1656756707026841e+00 -6.4896512612338464e-01 1.0945955049891027e+02 1.0947082232861229e+02 8.2933128176902648e-01 2 0 0 -56 0 +P 97 213 -3.5903158855632840e-02 9.9198943525646954e-01 3.7343100725470698e+01 3.7367385916754081e+01 9.1050885910361523e-01 2 0 0 -57 0 +P 98 221 4.2162092047841054e-01 3.3016782868221339e-01 8.5630844493739087e+00 8.5972607140467154e+00 5.4744999999999999e-01 2 0 0 -58 0 +P 99 -213 9.7457004419126791e-01 2.5386776349576827e+00 3.2029157610337023e+01 3.2157623407268844e+01 9.2256981884626144e-01 2 0 0 -59 0 +P 100 111 1.2787995261416203e+00 5.9131216608945592e-01 1.8321222064458190e+01 1.8375809528872868e+01 1.3497999999999999e-01 2 0 0 -60 0 +P 101 331 1.5941076518656097e+00 2.2203899316199833e+00 3.0301907248901987e+01 3.0440010892784585e+01 9.5779412068020275e-01 2 0 0 -61 0 +P 102 213 1.7703923967892532e+00 -1.5783757695402438e+00 1.7113365104763496e+01 1.7299350723397684e+01 8.8017664914626426e-01 2 0 0 -62 0 +P 103 -211 -1.8759452428865081e-01 -1.2769116703025019e-01 3.8721698603132602e+00 3.8813239946826195e+00 1.3957000000000000e-01 1 0 0 0 0 +P 104 211 6.9482022183564407e-01 -7.4276553322659658e-02 2.8254613298076237e+00 2.9139326790753919e+00 1.3957000000000000e-01 1 0 0 0 0 +P 105 311 6.3686850058466904e-01 -2.8985459322238305e-01 6.1254602664267574e+00 6.1853501175537389e+00 4.9767000000000000e-01 2 0 0 -63 0 +P 106 333 8.7207094479077651e-02 -2.0295472311855449e+00 7.6184364527955317e+00 7.9504887791525123e+00 1.0212887942231736e+00 2 0 0 -64 0 +P 107 -323 -1.9822568338569455e-01 -1.5507438333859327e-01 2.6398270078375625e+00 2.7898910808615089e+00 8.6687030508629537e-01 2 0 0 -65 0 +P 108 113 -1.1042506848572424e+00 -1.9030565630970109e+00 5.3217383054275196e+00 5.8133432539368144e+00 7.9565528923260520e-01 2 0 0 -66 0 +P 109 213 -7.2310463393123914e-01 -7.6975522680298714e-01 6.1285789995101991e-01 1.6294860676683323e+00 1.0789933356557311e+00 2 0 0 -67 0 +P 110 -211 -4.3482640295969677e-01 -8.1532294744635425e-01 1.7768661421435300e-01 9.5125066471169373e-01 1.3957000000000000e-01 1 0 0 0 0 +P 111 213 -5.9736000021821500e-01 -1.2204809639168086e+00 2.6747136936349564e-01 1.5533645053088498e+00 7.0355355146585397e-01 2 0 0 -68 0 +P 112 -211 -1.4286103486218285e+00 -1.6452141393289603e+00 4.8302563621898731e-01 2.2361687419741094e+00 1.3957000000000000e-01 1 0 0 0 0 +P 113 111 4.3583065059189477e-02 -2.4339437891750076e-01 6.2664394827260231e-02 2.8859441094320626e-01 1.3497999999999999e-01 2 0 0 -69 0 +P 114 213 -1.1457523430575574e+00 -1.7185955494709606e+00 -2.0075212146900698e+00 2.9665875925104452e+00 7.1005733734910470e-01 2 0 0 -70 0 +P 115 -213 -9.9510244241403112e-01 -3.8721112665348262e-01 -1.1073021899671061e+00 1.6337817612725141e+00 5.5042108976504500e-01 2 0 0 -71 0 +P 116 321 3.6387094509041512e-01 4.3920647350883402e-01 9.9248798190379642e-02 7.6078622161241372e-01 4.9359999999999998e-01 1 0 0 0 0 +P 117 -321 -1.2747399230810363e-01 -1.0200080057828731e+00 -1.4513610769384608e+00 1.8457399291959007e+00 4.9359999999999998e-01 1 0 0 0 0 +P 118 211 -2.0133216812193178e-01 3.5802685432120634e-01 -1.7925786519980291e+00 1.8443253180593948e+00 1.3957000000000000e-01 1 0 0 0 0 +P 119 311 -2.8765138987802308e-01 7.2322394316508809e-01 -1.3293539465693636e+00 1.6188432716682488e+00 4.9767000000000000e-01 2 0 0 -72 0 +P 120 -321 1.0298266079353463e-01 -1.3133623038629999e-01 -8.4534917780111540e-01 9.9303113055191838e-01 4.9359999999999998e-01 1 0 0 0 0 +P 121 113 -2.0064710281109285e-02 9.6668445379680457e-01 -2.7580016928497004e+00 3.0477179748732270e+00 8.6436687279907831e-01 2 0 0 -73 0 +P 122 213 6.9914421880252642e-01 4.8815033788881651e-01 -2.1395488946251060e+00 2.3683512678933512e+00 5.5165647333695911e-01 2 0 0 -74 0 +P 123 223 1.5872029432710627e-01 -2.3339814721712135e-01 -7.4179222929870310e+00 7.4628850957322737e+00 7.6773431625352861e-01 2 0 0 -75 0 +P 124 223 -3.0717425565275075e-01 5.6842261363386204e-01 -1.7694534053195312e+01 1.7723823647209741e+01 7.8735571800585269e-01 2 0 0 -76 0 +P 125 1114 7.6998734838977989e-01 -3.4728630806103294e-01 -1.9364499157932190e+02 1.9364995150560429e+02 1.0988476103652125e+00 2 0 0 -77 0 +P 126 111 6.5158363716255141e-01 1.5605607263941090e+00 -1.1121050811925711e+02 1.1122344737851247e+02 1.3497999999999999e-01 2 0 0 -78 0 +P 127 -2112 1.0813888713417015e-01 9.3320687480095546e-02 -7.6290462496469246e+01 7.6296381712894501e+01 9.3957000000000002e-01 1 0 0 0 0 +P 128 211 3.9294549049558353e-01 -4.8295703118897615e-01 -5.9670507038186024e+01 5.9673918453806799e+01 1.3957000000000000e-01 1 0 0 0 0 +P 129 -211 -4.9079394553889405e-02 3.0193103218666079e-01 -5.2738809586108296e+01 5.2739881375291844e+01 1.3957000000000000e-01 1 0 0 0 0 +P 130 113 7.7374346420721107e-01 8.6434540604482102e-01 -8.8859763366085502e+01 8.8870436517698323e+01 7.4240786646212009e-01 2 0 0 -79 0 +P 131 223 1.6985777384718924e-02 2.8325881170135603e-01 -9.6927730933742907e+01 9.6931159023301547e+01 7.6422612195160899e-01 2 0 0 -80 0 +P 132 223 3.0185368861046491e-01 2.4293189269126073e-01 -3.2090245504750932e+01 3.2101336386389761e+01 7.4953964748340296e-01 2 0 0 -81 0 +P 133 221 6.5201407902947539e-01 -1.2988330070145512e-02 -7.4859939959601558e+00 7.5342616536739797e+00 5.4744999999999999e-01 2 0 0 -82 0 +P 134 213 1.2458254485181726e+00 2.4534172247832897e+00 -3.9148897598913670e+01 3.9260611329490111e+01 1.0899915724536897e+00 2 0 0 -83 0 +P 135 221 8.8556817596659831e-01 9.1587012185965244e-01 -1.2421218347891800e+01 1.2498376527489638e+01 5.4744999999999999e-01 2 0 0 -84 0 +P 136 -211 1.8161190527346487e+00 1.8932700926893988e+00 -2.7662401209321924e+01 2.7786879646840031e+01 1.3957000000000000e-01 1 0 0 0 0 +P 137 111 7.2247895685888563e-01 1.1632455888028332e+00 -1.2867988035904569e+01 1.2941346600549585e+01 1.3497999999999999e-01 2 0 0 -85 0 +P 138 113 1.2139941660877747e+00 1.6756779361740803e+00 -1.8860823514754017e+01 1.8989026284653107e+01 7.5549798376482546e-01 2 0 0 -86 0 +P 139 211 1.1157147548814101e+00 5.0436447513334515e-01 -1.1621107696187737e+01 1.1686266589862242e+01 1.3957000000000000e-01 1 0 0 0 0 +P 140 -213 4.5823331418939195e-01 1.1538176266903686e+00 -1.8447864138782936e+01 1.8525111286873642e+01 1.1466403194399666e+00 2 0 0 -87 0 +P 141 213 2.0821117255183093e+00 1.6804026242358250e+00 -2.6142179810664658e+01 2.6288201716404078e+01 7.0501206525005999e-01 2 0 0 -88 0 +P 142 313 1.7813828024493763e+00 1.2357154576419902e+00 -2.2601396009113010e+01 2.2725602197916988e+01 9.6414538120668236e-01 2 0 0 -89 0 +P 143 -313 1.4186766512402984e+00 6.4743845122084742e-01 -1.8091956801791984e+01 1.8183781843473593e+01 9.4826221280775747e-01 2 0 0 -90 0 +P 144 2112 -1.1231017999695494e+00 5.3690695272926670e-01 -5.0961864079027272e+01 5.0985723579479917e+01 9.3957000000000002e-01 1 0 0 0 0 +P 145 -213 -5.7530555364241898e-01 -4.7810186265971222e-01 -9.4505926829143817e+01 9.4510818189169768e+01 6.0414491613054433e-01 2 0 0 -91 0 +P 146 -1114 -8.0379050531219987e-01 -7.4317351469684056e-01 -3.3976739042042894e+01 3.4017782197130039e+01 1.2618730645032841e+00 2 0 0 -92 0 +P 147 -213 -1.7993965627187491e-01 6.2933882558033644e-02 -4.3212693477627020e+01 4.3219348613222635e+01 7.3408310595441117e-01 2 0 0 -93 0 +P 148 211 -1.1857733256197995e+00 -2.3402786696214123e-01 -3.9319959891382794e+01 3.9338779252375360e+01 1.3957000000000000e-01 1 0 0 0 0 +P 149 311 -1.4096245121895092e+00 -2.1826091973706498e+00 -7.8978356177349141e+01 7.9022650196503378e+01 4.9767000000000000e-01 2 0 0 -94 0 +P 150 -323 -3.0387368245023250e-01 -3.9194042956116942e-01 -7.8833271694584482e+01 7.8839861573241009e+01 8.9055617476780402e-01 2 0 0 -95 0 +P 151 213 -1.8006034881526349e+00 -1.2055027990336920e+00 -8.9338286707006162e+01 8.9369650117474464e+01 9.5366684777524879e-01 2 0 0 -96 0 +P 152 113 4.9137946671111676e-01 -9.7164155725422818e-01 -5.0430982625195028e+01 5.0451579348850466e+01 9.4462116985729094e-01 2 0 0 -97 0 +P 153 221 2.6692022391655834e-01 -2.6056453113669759e-01 -2.1564701043027426e+01 2.1574873646408001e+01 5.4744999999999999e-01 2 0 0 -98 0 +P 154 311 4.1329176006341922e-01 1.8028596136298070e-01 -8.9119644403072215e+01 8.9122174609160766e+01 4.9767000000000000e-01 2 0 0 -99 0 +P 155 -321 3.6881058325853905e-01 -3.6759956648503250e-01 -5.2482305038393726e+01 5.2487209239876819e+01 4.9359999999999998e-01 1 0 0 0 0 +P 156 221 -4.0997910950580485e-01 -2.7374853556398043e-01 -4.8760304863457051e+01 4.8765869755503466e+01 5.4744999999999999e-01 2 0 0 -100 0 +P 157 211 7.1285808765427905e-01 -3.2842857210290849e-01 -1.3495391606091425e+02 1.3495627059140784e+02 1.3957000000000000e-01 1 0 0 0 0 +P 158 113 -8.5570937057012242e-01 4.5138982048336918e-01 -3.8575888425787775e+02 3.8576089945786532e+02 7.8662275684624183e-01 2 0 0 -101 0 +P 159 -211 8.5048282385916807e-01 -2.4394986791084675e-01 -2.3972504452141907e+03 2.3972506125543050e+03 1.3957000000000000e-01 1 0 0 0 0 +P 160 2224 -1.9025691153649760e-03 7.5090832178153066e-01 -1.3897064940632451e+03 1.3897072600852762e+03 1.2510896217992251e+00 2 0 0 -102 0 +P 72 213 1.0805121219025640e+00 -6.6038780518628226e-01 -2.3089962780132609e+00 2.7002122967490942e+00 5.9671109996278038e-01 2 0 0 -38 0 +P 73 331 8.8350480325607927e-01 -9.1723208806001100e-01 -1.3273651063348788e+00 2.0738588580152020e+00 9.5765181392258825e-01 2 0 0 -39 0 +P 74 -213 1.6671177452769768e+00 -6.0237742035546349e-01 -4.3269280810687976e+00 4.7129738478160546e+00 5.8964034655445841e-01 2 0 0 -40 0 +P 75 111 -2.2944867559712592e-01 -5.4494370034286373e-02 -1.1132060518150413e+00 1.1458898923091787e+00 1.3497999999999999e-01 2 0 0 -41 0 +P 76 211 1.9057714121074421e-01 -3.7678379479520874e-01 3.2988192916386494e-01 5.5370348279671411e-01 1.3957000000000000e-01 1 0 0 0 0 +P 77 -211 2.1514156450681340e-01 4.1042646895793555e-01 1.1603516057783952e-01 4.9767431377362004e-01 1.3957000000000000e-01 1 0 0 0 0 +P 78 211 1.1821640765841486e-01 -7.3020341573840120e-01 -1.3087805912292785e+00 1.5098207073272469e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 3112 -1.2499623449219958e-01 -5.9241869360866006e-02 4.0162992375308786e+00 4.1932869895481408e+00 1.1974400000000001e+00 2 0 0 -42 0 +P 80 311 -1.0795922983869366e-01 -3.0104120411989399e-02 1.6962385074932020e+00 1.7712882195102833e+00 4.9767000000000000e-01 2 0 0 -43 0 +P 81 -1114 -5.9337323488907867e-01 -4.6246084613168187e-01 7.5339721507890793e+00 7.6936474040793801e+00 1.3658375376831626e+00 2 0 0 -44 0 +P 82 -211 -3.9495796561206009e-01 3.0833169972538993e-01 9.3878856442942862e+00 9.4022835995784941e+00 1.3957000000000000e-01 1 0 0 0 0 +P 83 211 -3.1344790463608746e-01 -7.2171857255188154e-01 8.5253322989485287e+00 8.5627038883335214e+00 1.3957000000000000e-01 1 0 0 0 0 +P 84 -213 -1.2690227290925465e-01 -1.0105632908426881e-01 5.1452653640166943e+00 5.1881794411189812e+00 6.4585886893524336e-01 2 0 0 -45 0 +P 85 213 -1.2041062649028871e+00 -1.2215218528395928e-01 2.3429585452245682e+01 2.3473631837985316e+01 7.7532196386217789e-01 2 0 0 -46 0 +P 86 223 -7.4237011822675184e-02 1.4248179815169867e-01 1.5165880769368950e+01 1.5186849387363358e+01 7.8143624628963737e-01 2 0 0 -47 0 +P 87 -213 -9.0074449059785699e-01 -6.0424612216057405e-01 2.4880423729369195e+01 2.4913870228144820e+01 6.9927875585816668e-01 2 0 0 -48 0 +P 88 323 -3.9622224355221425e-01 4.7691198706436511e-01 8.3475162278290014e+01 8.3482329557234976e+01 9.0121795712962360e-01 2 0 0 -49 0 +P 89 -313 -1.1785958161298775e+00 4.3758697222424819e-01 2.3405851550380999e+02 2.3406361463389302e+02 8.9802292856965138e-01 2 0 0 -50 0 +P 90 111 -2.1010818134776000e-02 1.4739930625154105e-01 2.2010537086033544e+01 2.2011454527723057e+01 1.3497999999999999e-01 2 0 0 -51 0 +P 71 423 6.7375280292117559e+00 -3.1280786052117606e+00 -1.8078833346658740e+01 1.9648160722343899e+01 2.0066999999999999e+00 2 0 0 -37 0 +V -13 0 0 0 0 0 0 1 0 +P 161 92 -4.1851159381561415e-01 -2.0769052203501017e+00 4.1268105700291135e+03 4.1276097169439681e+03 8.1191168355921960e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 14 0 +P 162 211 -3.1267035370541174e-01 -1.6630336354906903e+00 2.9600402088397786e+00 3.4124421527269715e+00 1.3957000000000000e-01 1 0 0 0 0 +P 163 223 -1.3456644959131422e-02 1.0490675531334205e-01 2.8997985766568299e+00 3.0056909067982369e+00 7.8368331194730689e-01 2 0 0 -103 0 +P 164 -213 -7.6664826358880125e-02 -1.5791348259790233e-01 2.8310851989334567e+00 2.9388621741173262e+00 7.6879991626605593e-01 2 0 0 -104 0 +P 165 113 -3.9648671529754964e-01 -2.4605982607667140e-01 7.6583440010326704e+00 7.7151393693837971e+00 8.0956500507766405e-01 2 0 0 -105 0 +P 166 223 8.9691194834938370e-02 -2.5125974088198971e-02 1.8317488091703201e+01 1.8334490887220280e+01 7.8390706009713318e-01 2 0 0 -106 0 +P 167 331 7.9224066352126379e-02 -2.1422931649456503e-01 1.6453778503957725e+01 1.6483212902440073e+01 9.5776295456158800e-01 2 0 0 -107 0 +P 168 211 1.5527914687816030e-01 -4.5548875201547573e-02 2.0928087163014524e+01 2.0929178158760095e+01 1.3957000000000000e-01 1 0 0 0 0 +P 169 113 -9.0692399597892714e-02 1.6957858902038977e-01 7.6922069406224782e+00 7.7066837587922024e+00 4.3121332478473434e-01 2 0 0 -108 0 +P 170 -211 1.9561892851724411e-02 -3.4229386330714748e-02 4.3617570241825661e+00 4.3641675542360279e+00 1.3957000000000000e-01 1 0 0 0 0 +P 171 211 1.4955539305015297e-01 -7.3620802444243974e-02 6.1402424512466673e+01 6.1402809403415823e+01 1.3957000000000000e-01 1 0 0 0 0 +P 172 313 -9.7870346573322886e-02 5.6843447855507345e-01 7.2008545829421976e+01 7.2016348838853801e+01 8.8945559212654413e-01 2 0 0 -109 0 +P 173 -313 -1.3048017096509981e-01 -7.9611017480924984e-01 2.3671747454399076e+02 2.3672050958431549e+02 8.8661541134793842e-01 2 0 0 -110 0 +P 174 2112 5.2848587189431351e-01 -1.8847878506702731e-01 1.0586464613615185e+03 1.0586470269955985e+03 9.3957000000000002e-01 1 0 0 0 0 +P 175 211 -3.2198770221974171e-01 5.2452521536190455e-01 2.6139330780727728e+03 2.6139331542573095e+03 1.3957000000000000e-01 1 0 0 0 0 +V -15 0 0 0 0 0 0 1 0 +P 176 92 -9.2830779079555690e+00 1.7115243107302014e+00 -7.5936588839022170e+02 7.6374413200173171e+02 8.1113758792800169e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 10 0 +P 177 -411 -2.6390450740240546e+01 1.6827024890099779e+01 -2.5400527191191205e+02 2.5593314966697744e+02 1.8693000000000000e+00 2 0 0 -111 0 +P 178 -2112 -3.3029260138577476e+00 1.9451764508002454e+00 -3.1157827697945482e+01 3.1406783507986372e+01 9.3957000000000002e-01 1 0 0 0 0 +P 179 2112 -3.6871070129151744e+00 2.3786739914127644e+00 -3.4678443322119684e+01 3.4967557408439028e+01 9.3957000000000002e-01 1 0 0 0 0 +P 180 -313 -1.6887882543152506e+00 9.5163004863946332e-01 -1.9256191761625256e+01 1.9375050572033444e+01 9.1326775426620022e-01 2 0 0 -112 0 +P 181 323 -1.0684585629853891e+00 1.1397180800571156e+00 -1.1888673019374792e+01 1.2026652906041873e+01 9.2696977187468266e-01 2 0 0 -113 0 +P 182 -323 -1.0389598140931948e+00 -2.4279557457761929e-02 -1.5588480592748905e+01 1.5651040269879616e+01 9.3504403461721142e-01 2 0 0 -114 0 +P 183 321 9.7335278175105699e-01 -7.7540269787809635e-01 -1.2014313647022332e+01 1.2088673969904482e+01 4.9359999999999998e-01 1 0 0 0 0 +P 184 113 9.1572165877639158e+00 -6.8871050884448293e+00 -1.3173902282931255e+02 1.3223974804671991e+02 9.4551324862806529e-01 2 0 0 -115 0 +P 185 111 1.5749182160948232e+00 -1.4409120111312630e+00 -2.3979729812343567e+01 2.4074930036961863e+01 1.3497999999999999e-01 2 0 0 -116 0 +P 186 -321 1.6188124904841935e+01 -1.2402999795367213e+01 -2.2505793379581706e+02 2.2598054561678759e+02 4.9359999999999998e-01 1 0 0 0 0 +V -17 0 0 0 0 0 2 1 0 +P 48 3 2.6809949063516858e+00 -2.1334338920576483e+00 -4.9258539041941329e+00 6.0002758724185767e+00 0 2 0 0 -17 0 +P 49 -3 -2.6809949063516858e+00 2.1334338920576483e+00 2.5402154973416849e+01 2.5632181942884813e+01 0 2 0 0 -17 0 +P 187 92 0 0 2.0476301069222714e+01 3.1632457815303390e+01 2.4110858175508753e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 11 0 +P 188 -321 2.3165815711701914e+00 -1.4668486212149290e+00 -3.7345492849367883e+00 4.6592589942036238e+00 4.9359999999999998e-01 1 0 0 0 0 +P 189 213 -1.8805628523845630e-01 -4.7820853896800425e-01 -1.8580072096583751e-02 8.0239109587132929e-01 6.1598512846892473e-01 2 0 0 -117 0 +P 190 -211 5.2779424626199234e-01 -6.9896042852539919e-02 3.7768327334195961e-01 6.6751529050352554e-01 1.3957000000000000e-01 1 0 0 0 0 +P 191 213 -1.6891692283320525e-01 6.6648603572310589e-02 1.6599824117289130e+00 1.9453974090260178e+00 9.9802530459814820e-01 2 0 0 -118 0 +P 192 113 -7.4221913151521435e-01 4.9737556351137047e-01 2.7144616154803280e+00 2.9374218163653363e+00 6.7961266540398446e-01 2 0 0 -119 0 +P 193 -213 2.6977494445296846e-02 3.3051528732393581e-01 2.9686265628592207e-01 7.9252551915710912e-01 6.5574470753239167e-01 2 0 0 -120 0 +P 194 211 -6.8694313677862559e-03 -3.6465893769440583e-01 8.2207140953389746e-01 9.1011236515101712e-01 1.3957000000000000e-01 1 0 0 0 0 +P 195 113 -1.7926234409549882e-01 4.5811796288984646e-01 4.3631920667074748e+00 4.4594263972685484e+00 7.7912240741974559e-01 2 0 0 -121 0 +P 196 -213 -8.7517280978279891e-02 1.1556616042151517e-01 1.2143912094050173e+00 1.4643347407834515e+00 8.0530454592083023e-01 2 0 0 -122 0 +P 197 323 -7.6278088917320597e-01 6.2000960206627131e-01 7.1458893862408148e+00 7.2776101788726990e+00 9.6624438094104526e-01 2 0 0 -123 0 +P 198 221 -7.3573102667583368e-01 2.9137896094462912e-01 5.6348963975317616e+00 5.7164640081007310e+00 5.4744999999999999e-01 2 0 0 -124 0 +V -19 0 0 0 0 0 2 1 0 +P 50 21 1.2797607567819380e+00 -2.6322105018962016e+00 9.7689792994647917e-01 3.0855549397840010e+00 0 2 0 0 -19 0 +P 51 21 -1.2797607567819380e+00 2.6322105018962016e+00 2.1455385372104661e+00 3.6290019751368225e+00 0 2 0 0 -19 0 +P 199 92 0 0 3.1224364671569451e+00 6.7145569149208235e+00 5.9443809662806357e+00 2 0 0 -20 0 +V -20 0 0 0 0 0 0 5 0 +P 200 213 4.6881355005877492e-02 -1.7685658006218710e-01 -3.6436198676174875e-01 1.1033453735196406e+00 1.0252488695491191e+00 2 0 0 -125 0 +P 201 111 3.7295347928756839e-01 -3.7777914400943240e-02 1.1758598639554589e+00 1.2415262738220798e+00 1.3497999999999999e-01 2 0 0 -126 0 +P 202 -213 -7.7174053973165080e-01 1.1344979778855320e+00 1.1415247517969562e+00 1.9615336994911579e+00 8.1355182550511485e-01 2 0 0 -127 0 +P 203 223 4.0683186443833641e-01 -5.2896991332825460e-01 1.1174071860398992e-01 1.0379283489087789e+00 7.8707555809178420e-01 2 0 0 -128 0 +P 204 223 -5.4926159000131487e-02 -3.9089357009414699e-01 1.0576731195622895e+00 1.3702232191791681e+00 7.7654657068951227e-01 2 0 0 -129 0 +V -21 0 0 0 0 0 0 2 0 +P 205 -421 1.6217223175989148e+00 -6.8010125330790361e-01 -9.1387443651518652e+00 9.4913397269165518e+00 1.8645000000000000e+00 2 0 0 -130 0 +P 206 111 1.7968957185550219e-01 -6.1256193952872552e-02 -7.5978817714920155e-01 7.9469386436974088e-01 1.3497999999999999e-01 2 0 0 -131 0 +V -22 0 0 0 0 0 0 2 0 +P 207 -311 3.8379010207120906e-01 6.7470718262439966e-01 -2.3156482330478920e+00 2.4924740305268194e+00 4.9767000000000000e-01 2 0 0 -132 0 +P 208 -211 1.1885409638388056e-01 8.3490247668284856e-01 -4.0919076763111493e+00 4.1802364356759165e+00 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 209 311 4.9216148712404084e-01 1.6700552201381169e+00 -1.0293091901049095e+01 1.0451158963486355e+01 4.9767000000000000e-01 2 0 0 -133 0 +P 210 111 1.5608318125249132e-01 3.2776161422857351e-02 -2.1970366209984036e+00 2.2069494218571477e+00 1.3497999999999999e-01 2 0 0 -134 0 +V -24 0 0 0 0 0 0 2 0 +P 211 -211 2.0686418792920924e-01 -7.4052015170417047e-03 -8.4407254316637448e-01 8.8021921831125127e-01 1.3957000000000000e-01 1 0 0 0 0 +P 212 211 1.0687235046510266e-01 1.0665286980031208e+00 -2.9742802779412334e+00 3.1646055235381785e+00 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 3 0 +P 213 211 1.6494907868686517e-01 9.3669242179650447e-02 -1.1169618990498749e+00 1.1415190731298617e+00 1.3957000000000000e-01 1 0 0 0 0 +P 214 -211 -3.2961684312823265e-02 9.7904714471502771e-02 -3.2110680804773697e+00 3.2157596004846356e+00 1.3957000000000000e-01 1 0 0 0 0 +P 215 111 -1.2371813995669578e-01 2.7781701450849755e-01 -1.2188863571466753e+00 1.2634840813176285e+00 1.3497999999999999e-01 2 0 0 -135 0 +V -26 0 0 0 0 0 0 2 0 +P 216 211 2.6192308140908338e-01 8.2567800152099802e-01 -2.4544236849886327e+00 2.6065347250907127e+00 1.3957000000000000e-01 1 0 0 0 0 +P 217 111 -7.1482009245183581e-02 -6.3077240170473347e-03 -1.1802194579810725e+00 1.1900785832982377e+00 1.3497999999999999e-01 2 0 0 -136 0 +V -27 0 0 0 0 0 0 3 0 +P 218 -211 1.2750107324969964e-01 -6.0407306768978437e-02 -2.7535093013034662e-01 3.3941639031513160e-01 1.3957000000000000e-01 1 0 0 0 0 +P 219 211 1.9975853129734369e-01 3.0355779618777118e-01 -9.8170033356441933e-01 1.0560616157558897e+00 1.3957000000000000e-01 1 0 0 0 0 +P 220 111 1.4897220997953661e-01 8.6760505956244627e-02 -4.6472305443281688e-02 2.2382890857345566e-01 1.3497999999999999e-01 2 0 0 -137 0 +V -28 0 0 0 0 0 0 2 0 +P 221 -311 -8.2754245304295648e-02 1.3966417583534083e-01 2.8673365676272389e-01 5.9686343994935065e-01 4.9767000000000000e-01 2 0 0 -138 0 +P 222 -211 -1.8405188231880528e-02 -1.3401650405953600e-01 -1.1372650400998702e-01 2.2519475333258582e-01 1.3957000000000000e-01 1 0 0 0 0 +V -29 0 0 0 0 0 0 2 0 +P 223 321 -1.8606728549463221e-02 1.8438159657958669e-02 1.8496301802780613e-01 5.2776742426644740e-01 4.9359999999999998e-01 1 0 0 0 0 +P 224 -211 -5.8511336571788884e-02 3.5244481235949815e-01 4.7335066859644559e-01 6.0924671737091951e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 225 211 1.0573260084598722e-01 -2.9908689762051261e-02 1.7688449051444560e-01 2.5068270879638765e-01 1.3957000000000000e-01 1 0 0 0 0 +P 226 111 -4.6380149176473889e-01 -1.5543106838779938e-01 2.5262943145065019e-02 5.0806343844024116e-01 1.3497999999999999e-01 2 0 0 -139 0 +V -31 0 0 0 0 0 0 3 0 +P 227 22 9.2357515717230873e-02 1.2167869364811841e-01 1.5090349685127447e+00 1.5167472272569451e+00 0 1 0 0 0 0 +P 228 -211 1.6376765932694964e-01 -1.1407305807929946e-01 3.2242673069684358e+00 3.2334520192058642e+00 1.3957000000000000e-01 1 0 0 0 0 +P 229 211 2.8129986815416846e-01 2.1611268857698845e-01 2.9431364251746919e+00 2.9677206930702882e+00 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 230 -211 -3.4592648683826727e-01 -7.9172091937077929e-02 3.3441833061786439e+00 3.3658542934390199e+00 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -1.1307147515979296e-02 -1.6769866681952736e-01 1.0504441492713814e+00 1.0723353978939945e+00 1.3497999999999999e-01 2 0 0 -140 0 +V -33 0 0 0 0 0 0 2 0 +P 232 -211 2.4529482978165587e-01 2.1068895148048891e-01 2.0592913103800264e+01 2.0595924579230772e+01 1.3957000000000000e-01 1 0 0 0 0 +P 233 111 1.1477924954231560e-01 -2.2979793525959996e-01 3.8904575735499605e+00 3.9012640386376463e+00 1.3497999999999999e-01 2 0 0 -141 0 +V -34 0 0 0 0 0 0 2 0 +P 234 -211 1.0683530591018791e-02 2.9505319405206820e-01 1.8571534555359463e+01 1.8574405671540525e+01 1.3957000000000000e-01 1 0 0 0 0 +P 235 211 -3.8320474011581890e-01 -2.8328556012237832e-01 1.9771742986078998e+01 1.9777977577949802e+01 1.3957000000000000e-01 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 236 211 -2.0039518369288894e-02 -2.6884321977876424e-01 6.0433873079858088e+01 6.0434635545160802e+01 1.3957000000000000e-01 1 0 0 0 0 +P 237 -211 -7.0567420656834565e-02 4.3227021311803671e-01 1.0675834001752031e+02 1.0675932971117506e+02 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 3 0 +P 238 211 2.3019840431794759e-02 1.0722469130411325e-01 4.8915482888414573e+01 4.8915804941134901e+01 1.3957000000000000e-01 1 0 0 0 0 +P 239 -211 1.5228297752088477e-01 2.4892222450875526e-01 1.3594839004485266e+02 1.3594877486741612e+02 1.3957000000000000e-01 1 0 0 0 0 +P 240 111 -1.8372996459514808e-03 5.1323835337157217e-02 2.0956193140799577e+01 2.0956690770888397e+01 1.3497999999999999e-01 2 0 0 -142 0 +V -37 0 0 0 0 0 0 2 0 +P 241 421 6.2436518356625337e+00 -2.8651113247762519e+00 -1.6799099320280089e+01 1.8244948598748316e+01 1.8645000000000000e+00 2 0 0 -143 0 +P 242 111 4.9387619354922196e-01 -2.6296728043550860e-01 -1.2797340263786521e+00 1.4032121235955854e+00 1.3497999999999999e-01 2 0 0 -144 0 +V -38 0 0 0 0 0 0 2 0 +P 243 211 2.7007673122422310e-01 -4.6451763092717235e-01 -9.3209210659772479e-01 1.0848933358965471e+00 1.3957000000000000e-01 1 0 0 0 0 +P 244 111 8.1043539067834081e-01 -1.9587017425910982e-01 -1.3769041714155361e+00 1.6153189608525471e+00 1.3497999999999999e-01 2 0 0 -145 0 +V -39 0 0 0 0 0 0 3 0 +P 245 211 4.2743761782097450e-01 -3.1321195981240602e-01 -3.4462938877908883e-01 6.4734368723904778e-01 1.3957000000000000e-01 1 0 0 0 0 +P 246 -211 6.6967622594905324e-02 -6.5307943664755175e-02 -1.1166100354230166e-01 2.0173684490892191e-01 1.3957000000000000e-01 1 0 0 0 0 +P 247 221 3.8909956284019970e-01 -5.3871218458285008e-01 -8.7107471401348857e-01 1.2247783258672331e+00 5.4744999999999999e-01 2 0 0 -146 0 +V -40 0 0 0 0 0 0 2 0 +P 248 -211 8.9544666103778403e-01 -3.4343535149518389e-01 -1.6695180355689065e+00 1.9304255539673623e+00 1.3957000000000000e-01 1 0 0 0 0 +P 249 111 7.7167108423919306e-01 -2.5894206886027965e-01 -2.6574100454998915e+00 2.7825482938486923e+00 1.3497999999999999e-01 2 0 0 -147 0 +V -41 0 -1.1546839958446812e-05 -2.7423900695209169e-06 -5.6021295776194672e-05 5.7666086596760802e-05 0 2 0 +P 250 22 -1.8671110918704986e-01 -7.3362208509199348e-02 -6.4793461233395855e-01 6.7827893509349302e-01 0 1 0 0 0 0 +P 251 22 -4.2737566410076068e-02 1.8867838474912971e-02 -4.6527143948108279e-01 4.6761095721568580e-01 0 1 0 0 0 0 +V -42 0 -9.5849625824338869e+00 -4.5427856562572915e+00 3.0797790083823350e+02 3.2154967752035753e+02 0 2 0 +P 252 2112 2.3494946269770597e-02 -7.7140433032913139e-02 3.6864044468885173e+00 3.8051113242385117e+00 9.3957000000000002e-01 1 0 0 0 0 +P 253 -211 -1.4849118076197018e-01 1.7898563672047136e-02 3.2989479064236149e-01 3.8817566530963010e-01 1.3957000000000000e-01 1 0 0 0 0 +V -43 0 0 0 0 0 0 1 0 +P 254 310 -1.0795922983869366e-01 -3.0104120411989399e-02 1.6962385074932020e+00 1.7712882195102833e+00 4.9767000000000000e-01 2 0 0 -148 0 +V -44 0 0 0 0 0 0 2 0 +P 255 -2112 -7.1620069765306504e-01 -5.9406387712284348e-01 6.6924011570619157e+00 6.8217945118102632e+00 9.3957000000000002e-01 1 0 0 0 0 +P 256 211 1.2282746276398639e-01 1.3160303099116163e-01 8.4157099372716293e-01 8.7185289226911644e-01 1.3957000000000000e-01 1 0 0 0 0 +V -45 0 0 0 0 0 0 2 0 +P 257 -211 1.0917582350152771e-01 -1.9998037871313329e-01 3.9245082818393935e+00 3.9335933383400823e+00 1.3957000000000000e-01 1 0 0 0 0 +P 258 111 -2.3607809641078237e-01 9.8924049628864474e-02 1.2207570821773017e+00 1.2545861027789014e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -46 0 0 0 0 0 0 2 0 +P 259 211 -9.2512366564428780e-02 6.6785049859374487e-02 1.0583879226240367e+00 1.0736310169273680e+00 1.3957000000000000e-01 1 0 0 0 0 +P 260 111 -1.1115938983384583e+00 -1.8893723514333377e-01 2.2371197529621647e+01 2.2400000821057944e+01 1.3497999999999999e-01 2 0 0 -150 0 +V -47 0 0 0 0 0 0 3 0 +P 261 211 -8.7979223122396005e-02 -1.8498323078029286e-01 7.8982483377437287e+00 7.9021367824748960e+00 1.3957000000000000e-01 1 0 0 0 0 +P 262 -211 -9.3830291977028552e-02 7.2250537096242073e-02 3.3416130761211456e+00 3.3466224763494039e+00 1.3957000000000000e-01 1 0 0 0 0 +P 263 111 1.0757250327674936e-01 2.5521449183574951e-01 3.9260193555040792e+00 3.9380901285390704e+00 1.3497999999999999e-01 2 0 0 -151 0 +V -48 0 0 0 0 0 0 2 0 +P 264 -211 -5.8001042529546454e-01 -4.0485193410956233e-01 2.1083579793599277e+01 2.1095903248734608e+01 1.3957000000000000e-01 1 0 0 0 0 +P 265 111 -3.2073406530239251e-01 -1.9939418805101175e-01 3.7968439357699193e+00 3.8179669794102113e+00 1.3497999999999999e-01 2 0 0 -152 0 +V -49 0 0 0 0 0 0 2 0 +P 266 321 -2.7856704535459481e-01 6.3755292333151825e-01 6.4308924492340807e+01 6.4314582200698453e+01 4.9359999999999998e-01 1 0 0 0 0 +P 267 111 -1.1765519819761945e-01 -1.6064093626715317e-01 1.9166237785949200e+01 1.9167747356536566e+01 1.3497999999999999e-01 2 0 0 -153 0 +V -50 0 0 0 0 0 0 2 0 +P 268 -321 -8.9367168692652132e-01 2.0771029167550126e-02 1.5400335786204033e+02 1.5400674321036507e+02 4.9359999999999998e-01 1 0 0 0 0 +P 269 211 -2.8492412920335630e-01 4.1681594305669806e-01 8.0055157641769668e+01 8.0056871423527923e+01 1.3957000000000000e-01 1 0 0 0 0 +V -51 0 -6.6002531619560156e-06 4.6303420024687618e-05 6.9143008171581527e-03 6.9145890185681727e-03 0 2 0 +P 270 22 3.2985399197000089e-03 1.3785210455256494e-01 2.1286406525307036e+01 2.1286853145632609e+01 0 1 0 0 0 0 +P 271 22 -2.4309358054476007e-02 9.5472016989760957e-03 7.2413056072650817e-01 7.2460138209044855e-01 0 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 272 -211 -2.8540776280327329e-01 9.3966682333239981e-01 1.4340676176985525e+02 1.4341019221948926e+02 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 -1.1869009496520293e+00 8.8484723595274772e-01 2.4894306409889506e+02 2.4894750264070180e+02 1.3497999999999999e-01 2 0 0 -154 0 +V -53 0 0 0 0 0 0 2 0 +P 274 211 1.7933401902204655e+00 1.2885124651880893e+00 6.1833606751116611e+02 6.1834002635958245e+02 1.3957000000000000e-01 1 0 0 0 0 +P 275 111 -3.9365165318030595e-02 2.1026551461701451e-01 7.2894196812983083e+01 7.2894635672408640e+01 1.3497999999999999e-01 2 0 0 -155 0 +V -54 0 1.0676767945586468e-04 5.7893903355371724e-05 2.5444575107770855e-02 2.5444873168571566e-02 0 2 0 +P 276 22 2.4999471933883968e-01 1.5059317622941079e-01 4.8566265682726126e+01 4.8567142576329971e+01 0 1 0 0 0 0 +P 277 22 4.5564793068048387e-01 2.3203579530812810e-01 1.1960051942648138e+02 1.1960161245874228e+02 0 1 0 0 0 0 +V -55 0 0 0 0 0 0 3 0 +P 278 211 2.6192602171711871e-01 6.6663279626861305e-02 8.4515411988941139e+01 8.4515959396311999e+01 1.3957000000000000e-01 1 0 0 0 0 +P 279 -211 3.0260190289747680e-02 5.2722368310901424e-01 1.3997838615805080e+02 1.3997945189094159e+02 1.3957000000000000e-01 1 0 0 0 0 +P 280 111 -1.0915701330301296e-01 6.3947562447915010e-02 3.9337776782952176e+01 3.9338211784091911e+01 1.3497999999999999e-01 2 0 0 -156 0 +V -56 0 0 0 0 0 0 2 0 +P 281 -211 1.0460657961309405e+00 -3.9020867461042025e-01 9.9157631500447565e+01 9.9164015050939852e+01 1.3957000000000000e-01 1 0 0 0 0 +P 282 211 1.1960987457174342e-01 -2.5875645151296439e-01 1.0301918998462718e+01 1.0306807277672448e+01 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 2 0 +P 283 211 -1.6242543744049195e-01 3.1007645455399614e-02 2.1896606379610399e+00 2.2003265646581580e+00 1.3957000000000000e-01 1 0 0 0 0 +P 284 111 1.2652227858485912e-01 9.6098178980106996e-01 3.5153440087509658e+01 3.5167059352095940e+01 1.3497999999999999e-01 2 0 0 -157 0 +V -58 0 0 0 0 0 0 3 0 +P 285 111 2.9219528435810188e-01 2.1022194446087650e-01 3.5594569879955653e+00 3.5801571194466431e+00 1.3497999999999999e-01 2 0 0 -158 0 +P 286 111 7.2165970952666164e-02 1.0925849693542053e-01 1.7329492789665644e+00 1.7431231024763754e+00 1.3497999999999999e-01 2 0 0 -159 0 +P 287 111 5.7259665167642498e-02 1.0687387285916360e-02 3.2706781824117788e+00 3.2739804921236972e+00 1.3497999999999999e-01 2 0 0 -160 0 +V -59 0 0 0 0 0 0 2 0 +P 288 -211 5.5626398321002368e-01 1.3631010577680165e+00 1.2299140896707550e+01 1.2387728633396405e+01 1.3957000000000000e-01 1 0 0 0 0 +P 289 111 4.1830606098124423e-01 1.1755765771896662e+00 1.9730016713629471e+01 1.9769894773872441e+01 1.3497999999999999e-01 2 0 0 -161 0 +V -60 0 3.8941374669982273e-05 1.8006347465645076e-05 5.5790884985439169e-04 5.5957112049228436e-04 0 2 0 +P 290 22 1.2285446892288159e+00 5.5994878566880602e-01 1.7826169650336105e+01 1.7877225430658086e+01 0 1 0 0 0 0 +P 291 22 5.0254836912804378e-02 3.1363380420649907e-02 4.9505241412208734e-01 4.9858409821478411e-01 0 1 0 0 0 0 +V -61 0 0 0 0 0 0 3 0 +P 292 211 3.3246427160202974e-01 2.4826372883767425e-01 4.4532204940244178e+00 4.4746865727386238e+00 1.3957000000000000e-01 1 0 0 0 0 +P 293 -211 3.0564376993854531e-01 6.9193900353716309e-01 8.2429344382337373e+00 8.2787466223238155e+00 1.3957000000000000e-01 1 0 0 0 0 +P 294 221 9.5599961032503467e-01 1.2801871992451461e+00 1.7605752316643834e+01 1.7686577697722150e+01 5.4744999999999999e-01 2 0 0 -162 0 +V -62 0 0 0 0 0 0 2 0 +P 295 211 8.0273279393105107e-02 2.0186889552187660e-02 5.6907814730655848e-01 5.9176095894894998e-01 1.3957000000000000e-01 1 0 0 0 0 +P 296 111 1.6901191173961481e+00 -1.5985626590924316e+00 1.6544286957456936e+01 1.6707589764448741e+01 1.3497999999999999e-01 2 0 0 -163 0 +V -63 0 0 0 0 0 0 1 0 +P 297 310 6.3686850058466904e-01 -2.8985459322238305e-01 6.1254602664267574e+00 6.1853501175537380e+00 4.9767000000000000e-01 2 0 0 -164 0 +V -64 0 0 0 0 0 0 2 0 +P 298 130 1.4358399666748303e-01 -1.0812535661317952e+00 4.2011710653840471e+00 4.3688945269818387e+00 4.9767000000000000e-01 1 0 0 0 0 +P 299 310 -5.6376902188405402e-02 -9.4829366505374968e-01 3.4172653874114838e+00 3.5815942521706718e+00 4.9767000000000000e-01 2 0 0 -165 0 +V -65 0 0 0 0 0 0 2 0 +P 300 -321 -2.2142072696580159e-01 1.5578586639161984e-01 1.6476923364331792e+00 1.7412143377649063e+00 4.9359999999999998e-01 1 0 0 0 0 +P 301 111 2.3195043580107069e-02 -3.1086024973021309e-01 9.9213467140438327e-01 1.0486767430966022e+00 1.3497999999999999e-01 2 0 0 -166 0 +V -66 0 0 0 0 0 0 2 0 +P 302 -211 -1.1624801152423032e+00 -1.7625857585222973e+00 5.0201713535008983e+00 5.4479049898002465e+00 1.3957000000000000e-01 1 0 0 0 0 +P 303 211 5.8229430385060822e-02 -1.4047080457471348e-01 3.0156695192662147e-01 3.6543826413656960e-01 1.3957000000000000e-01 1 0 0 0 0 +V -67 0 0 0 0 0 0 2 0 +P 304 211 1.4948479945856540e-03 1.2568218777132778e-01 -1.5080220659718138e-01 2.4087203513088271e-01 1.3957000000000000e-01 1 0 0 0 0 +P 305 111 -7.2459948192582480e-01 -8.9543741457431492e-01 7.6366010654820127e-01 1.3886140325374496e+00 1.3497999999999999e-01 2 0 0 -167 0 +V -68 0 0 0 0 0 0 2 0 +P 306 211 1.0563433052605793e-01 -2.7158694112764570e-01 -4.0122677357734220e-02 3.2558822539384402e-01 1.3957000000000000e-01 1 0 0 0 0 +P 307 111 -7.0299433074427298e-01 -9.4889402278916302e-01 3.0759404672122986e-01 1.2277762799150060e+00 1.3497999999999999e-01 2 0 0 -168 0 +V -69 0 1.2667704663510530e-05 -7.0744177920900302e-05 1.8213818727785282e-05 8.3881864673891209e-05 0 2 0 +P 308 22 5.4027065630195055e-02 -1.9904590108705426e-02 1.9071272126093892e-02 6.0653358921930293e-02 0 1 0 0 0 0 +P 309 22 -1.0444000571005583e-02 -2.2348978880879536e-01 4.3593122701166338e-02 2.2794105202127599e-01 0 1 0 0 0 0 +V -70 0 0 0 0 0 0 2 0 +P 310 211 -4.3737588677301271e-02 -6.4946955578646784e-02 -3.5924173334191872e-02 1.6401650780328356e-01 1.3957000000000000e-01 1 0 0 0 0 +P 311 111 -1.1020147543802561e+00 -1.6536485938923138e+00 -1.9715970413558779e+00 2.8025710847072287e+00 1.3497999999999999e-01 2 0 0 -169 0 +V -71 0 0 0 0 0 0 2 0 +P 312 -211 -7.4010583846387956e-01 -4.7229998155360581e-01 -9.2048603238071680e-01 1.2796867762901407e+00 1.3957000000000000e-01 1 0 0 0 0 +P 313 111 -2.5499660395015161e-01 8.5088854900123176e-02 -1.8681615758638939e-01 3.5409498498237357e-01 1.3497999999999999e-01 2 0 0 -170 0 +V -72 0 0 0 0 0 0 1 0 +P 314 310 -2.8765138987802308e-01 7.2322394316508809e-01 -1.3293539465693636e+00 1.6188432716682486e+00 4.9767000000000000e-01 2 0 0 -171 0 +V -73 0 0 0 0 0 0 2 0 +P 315 -211 -5.0232272700335232e-03 1.0288006080287391e+00 -2.6829806284030435e+00 2.8768595310126805e+00 1.3957000000000000e-01 1 0 0 0 0 +P 316 211 -1.5041483011075760e-02 -6.2116154231934534e-02 -7.5021064446656849e-02 1.7085844386054616e-01 1.3957000000000000e-01 1 0 0 0 0 +V -74 0 0 0 0 0 0 2 0 +P 317 211 2.3075821910509536e-01 4.3897541651857841e-01 -1.2656582782473587e+00 1.3664989696989467e+00 1.3957000000000000e-01 1 0 0 0 0 +P 318 111 4.6838599969743122e-01 4.9174921370238156e-02 -8.7389061637774768e-01 1.0018522981944049e+00 1.3497999999999999e-01 2 0 0 -172 0 +V -75 0 0 0 0 0 0 2 0 +P 319 -211 2.5742640827553703e-01 5.6243178021327091e-02 -5.9271374260145144e+00 5.9346330554225126e+00 1.3957000000000000e-01 1 0 0 0 0 +P 320 211 -9.8706113948430804e-02 -2.8964132523844838e-01 -1.4907848669725159e+00 1.5282520403097610e+00 1.3957000000000000e-01 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 321 -211 -1.8116809968197792e-01 2.3195288966429489e-01 -1.4818039389156070e+01 1.4821619181008760e+01 1.3957000000000000e-01 1 0 0 0 0 +P 322 211 -1.2600615597077278e-01 3.3646972396956704e-01 -2.8764946640392428e+00 2.9022044662009816e+00 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 323 2112 6.8523780701355297e-01 -3.5080743538294351e-01 -1.6307557677702232e+02 1.6308010040974429e+02 9.3957000000000002e-01 1 0 0 0 0 +P 324 -211 8.4749541376226964e-02 3.5211273219105275e-03 -3.0569414802299615e+01 3.0569851095860052e+01 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 9.2659059340455155e-06 2.2192099479511942e-05 -1.5814794116037168e-03 1.5816634155477668e-03 0 2 0 +P 325 22 6.5173830040521086e-01 1.4984807920980339e+00 -1.0754272896002473e+02 1.0755514287873845e+02 0 1 0 0 0 0 +P 326 22 -1.5466324265940194e-04 6.2079934296075334e-02 -3.6677791592323956e+00 3.6683044997740333e+00 0 1 0 0 0 0 +V -79 0 0 0 0 0 0 2 0 +P 327 -211 6.6823265779759167e-01 7.0798190000280858e-01 -4.8392336668505656e+01 4.8402329502603237e+01 1.3957000000000000e-01 1 0 0 0 0 +P 328 211 1.0551080640961935e-01 1.5636350604201216e-01 -4.0467426697579832e+01 4.0468107015095086e+01 1.3957000000000000e-01 1 0 0 0 0 +V -80 0 0 0 0 0 0 3 0 +P 329 211 -1.6210443044946699e-01 5.3631565721785644e-02 -3.2851753809151361e+01 3.2852494004461882e+01 1.3957000000000000e-01 1 0 0 0 0 +P 330 -211 6.3753390431136939e-02 -3.4266989260422084e-02 -4.3006183481217263e+01 4.3006470863422045e+01 1.3957000000000000e-01 1 0 0 0 0 +P 331 111 1.1533681740304895e-01 2.6389423523999250e-01 -2.1069793643374290e+01 2.1072194155417638e+01 1.3497999999999999e-01 2 0 0 -173 0 +V -81 0 0 0 0 0 0 3 0 +P 332 -211 5.6711449398208394e-02 -4.9900954611827149e-02 -1.7771001367628735e+01 1.7771709982073371e+01 1.3957000000000000e-01 1 0 0 0 0 +P 333 211 8.5429989515703270e-02 2.9119120815685540e-01 -8.1609305243617207e+00 8.1677633052859324e+00 1.3957000000000000e-01 1 0 0 0 0 +P 334 111 1.5971224969655323e-01 1.6416391462325010e-03 -6.1583136127604776e+00 6.1618630990304570e+00 1.3497999999999999e-01 2 0 0 -174 0 +V -82 0 0 0 0 0 0 3 0 +P 335 111 3.2030294786127822e-01 -1.0601635141293821e-01 -2.8028052211989629e+00 2.8262643460150190e+00 1.3497999999999999e-01 2 0 0 -175 0 +P 336 111 2.9110855186201823e-01 8.7859720184946685e-02 -3.6679991381187156e+00 3.6830559046853768e+00 1.3497999999999999e-01 2 0 0 -176 0 +P 337 111 4.0602579306178992e-02 5.1683011578460081e-03 -1.0151896366424780e+00 1.0249414029735842e+00 1.3497999999999999e-01 2 0 0 -177 0 +V -83 0 0 0 0 0 0 2 0 +P 338 211 6.5793571993552347e-01 5.6569505409351306e-01 -1.7197107586476218e+01 1.7219549338804743e+01 1.3957000000000000e-01 1 0 0 0 0 +P 339 111 5.8788972858264898e-01 1.8877221706897764e+00 -2.1951790012437453e+01 2.2041061990685371e+01 1.3497999999999999e-01 2 0 0 -178 0 +V -84 0 0 0 0 0 0 2 0 +P 340 22 6.6593323470164767e-01 6.3569398019847445e-01 -6.3111210203307069e+00 6.3779167792313567e+00 0 1 0 0 0 0 +P 341 22 2.1963494126495064e-01 2.8017614166117788e-01 -6.1100973275610935e+00 6.1204597482582805e+00 0 1 0 0 0 0 +V -85 0 3.0223187720401600e-04 4.8661610779874898e-04 -5.3830165474146501e-03 5.4137043570611056e-03 0 2 0 +P 342 22 5.7856337531910038e-02 1.3626196294686996e-01 -1.7555647494935451e+00 1.7617951833295136e+00 0 1 0 0 0 0 +P 343 22 6.6462261932697564e-01 1.0269836258559635e+00 -1.1112423286411024e+01 1.1179551417220072e+01 0 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 344 -211 4.1265547372750555e-01 1.2949869224888536e-01 -3.6370992906819448e+00 3.6653820382697559e+00 1.3957000000000000e-01 1 0 0 0 0 +P 345 211 8.0133869236026911e-01 1.5461792439251949e+00 -1.5223724224072070e+01 1.5323644246383349e+01 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 346 -211 4.4315996363918092e-01 4.3179607305874240e-01 -3.3584103881800651e+00 3.4177827201882520e+00 1.3957000000000000e-01 1 0 0 0 0 +P 347 111 1.5073350550211109e-02 7.2202155363162623e-01 -1.5089453750602873e+01 1.5107328566685394e+01 1.3497999999999999e-01 2 0 0 -179 0 +V -88 0 0 0 0 0 0 2 0 +P 348 211 2.0265472465231706e+00 1.6273344433143688e+00 -2.5085446979218137e+01 2.5220115801971495e+01 1.3957000000000000e-01 1 0 0 0 0 +P 349 111 5.5564478995138736e-02 5.3068180921456376e-02 -1.0567328314465232e+00 1.0680859144325889e+00 1.3497999999999999e-01 2 0 0 -180 0 +V -89 0 0 0 0 0 0 2 0 +P 350 321 5.5334359353845797e-01 4.4390121636406382e-01 -6.4488659797201224e+00 6.5065160267835447e+00 4.9359999999999998e-01 1 0 0 0 0 +P 351 -211 1.2280392089109184e+00 7.9181424127792643e-01 -1.6152530029392889e+01 1.6219086171133444e+01 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 352 -311 4.9782761336762366e-01 5.0953796112831118e-01 -7.5199540324803458e+00 7.5699963900902567e+00 4.9767000000000000e-01 2 0 0 -181 0 +P 353 111 9.2084903787267469e-01 1.3790049009253627e-01 -1.0572002769311638e+01 1.0613785453383338e+01 1.3497999999999999e-01 2 0 0 -182 0 +V -91 0 0 0 0 0 0 2 0 +P 354 -211 -4.1646899766105938e-01 -6.4165585437284340e-04 -4.5711127402477864e+01 4.5713237634499237e+01 1.3957000000000000e-01 1 0 0 0 0 +P 355 111 -1.5883655598135957e-01 -4.7746020680533935e-01 -4.8794799426665946e+01 4.8797580554670517e+01 1.3497999999999999e-01 2 0 0 -183 0 +V -92 0 0 0 0 0 0 2 0 +P 356 -2112 -5.0910243761024854e-01 -4.5126876099486196e-01 -2.8494746972763384e+01 2.8518348928599259e+01 9.3957000000000002e-01 1 0 0 0 0 +P 357 211 -2.9468806770195133e-01 -2.9190475370197855e-01 -5.4819920692795092e+00 5.4994332685307823e+00 1.3957000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 358 -211 -2.4885074976450763e-01 3.3424025035342403e-01 -2.8357333619216721e+01 2.8360738583772349e+01 1.3957000000000000e-01 1 0 0 0 0 +P 359 111 6.8911093492632733e-02 -2.7130636779539036e-01 -1.4855359858410299e+01 1.4858610029450290e+01 1.3497999999999999e-01 2 0 0 -184 0 +V -94 0 0 0 0 0 0 1 0 +P 360 130 -1.4096245121895092e+00 -2.1826091973706498e+00 -7.8978356177349141e+01 7.9022650196503378e+01 4.9767000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 361 -321 -3.8980393264709728e-02 2.3659798443371793e-02 -4.5021650566010770e+01 4.5024379395002207e+01 4.9359999999999998e-01 1 0 0 0 0 +P 362 111 -2.6489328918552280e-01 -4.1560022800454127e-01 -3.3811621128573726e+01 3.3815482178238803e+01 1.3497999999999999e-01 2 0 0 -185 0 +V -96 0 0 0 0 0 0 2 0 +P 363 211 -1.8760543427401080e+00 -1.0875370782743450e+00 -8.1985678412572810e+01 8.2014469829099326e+01 1.3957000000000000e-01 1 0 0 0 0 +P 364 111 7.5450854587473110e-02 -1.1796572075934705e-01 -7.3526082944333560e+00 7.3551802883751556e+00 1.3497999999999999e-01 2 0 0 -186 0 +V -97 0 0 0 0 0 0 2 0 +P 365 -211 3.3024357657183534e-01 -1.0764108627154867e+00 -4.6204481583885297e+01 4.6218408879857975e+01 1.3957000000000000e-01 1 0 0 0 0 +P 366 211 1.6113589013928148e-01 1.0476930546125837e-01 -4.2265010413097350e+00 4.2331704689924887e+00 1.3957000000000000e-01 1 0 0 0 0 +V -98 0 0 0 0 0 0 2 0 +P 367 22 -1.5306529296572205e-01 -5.6288475914386925e-02 -3.1187132731459890e+00 3.1229745206338810e+00 0 1 0 0 0 0 +P 368 22 4.1998551688228036e-01 -2.0427605522231063e-01 -1.8445987769881434e+01 1.8451899125774119e+01 0 1 0 0 0 0 +V -99 0 0 0 0 0 0 1 0 +P 369 130 4.1329176006341922e-01 1.8028596136298070e-01 -8.9119644403072215e+01 8.9122174609160780e+01 4.9767000000000000e-01 1 0 0 0 0 +V -100 0 0 0 0 0 0 3 0 +P 370 211 -2.5393868742732295e-01 -1.0813557949514663e-01 -2.2588965411228937e+01 2.2591082672043903e+01 1.3957000000000000e-01 1 0 0 0 0 +P 371 -211 -9.4699960295409211e-02 -7.0342706977206501e-02 -6.2577223207694175e+00 6.2603901322250373e+00 1.3957000000000000e-01 1 0 0 0 0 +P 372 111 -6.1340461783072626e-02 -9.5270249091627290e-02 -1.9913617131458697e+01 1.9914396951234526e+01 1.3497999999999999e-01 2 0 0 -187 0 +V -101 0 0 0 0 0 0 2 0 +P 373 211 -5.6588712441174915e-01 1.7007007181064696e-01 -3.2251333498529675e+02 3.2251390648341049e+02 1.3957000000000000e-01 1 0 0 0 0 +P 374 -211 -2.8982224615837326e-01 2.8131974867272219e-01 -6.3245549272580966e+01 6.3246992974454749e+01 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 0 0 0 0 0 2 0 +P 375 2212 9.5560807623884438e-04 8.6244164763986575e-01 -1.1728103150663380e+03 1.1728110074871845e+03 9.3827000000000005e-01 1 0 0 0 0 +P 376 211 -2.8581771916038204e-03 -1.1153332585833524e-01 -2.1689617899690685e+02 2.1689625259809148e+02 1.3957000000000000e-01 1 0 0 0 0 +V -103 0 0 0 0 0 0 3 0 +P 377 -211 6.9777075380562020e-02 4.7507027834957305e-02 2.3372071430252870e+00 2.3428919676866879e+00 1.3957000000000000e-01 1 0 0 0 0 +P 378 211 -3.3611510436482870e-03 -3.9382859649498635e-02 1.3924281785635231e-01 2.0107375312329462e-01 1.3957000000000000e-01 1 0 0 0 0 +P 379 111 -7.9872569296045165e-02 9.6782587127883388e-02 4.2334861577519067e-01 4.6172518598825418e-01 1.3497999999999999e-01 2 0 0 -188 0 +V -104 0 0 0 0 0 0 2 0 +P 380 -211 2.4592593317047373e-01 -2.5402408844388685e-01 9.5163384838481568e-01 1.0247412202147479e+00 1.3957000000000000e-01 1 0 0 0 0 +P 381 111 -3.2259075952935390e-01 9.6110605845984534e-02 1.8794513505486412e+00 1.9141209539025790e+00 1.3497999999999999e-01 2 0 0 -189 0 +V -105 0 0 0 0 0 0 2 0 +P 382 -211 -4.5837447734990650e-01 -1.0851873872112007e-01 2.2553461445730871e+00 2.3082351472239804e+00 1.3957000000000000e-01 1 0 0 0 0 +P 383 211 6.1887762052356861e-02 -1.3754108735555134e-01 5.4029978564595833e+00 5.4069042221598167e+00 1.3957000000000000e-01 1 0 0 0 0 +V -106 0 0 0 0 0 0 3 0 +P 384 211 1.5445020817728534e-02 2.3301757642101320e-01 6.4439298137185208e+00 6.4496702992183712e+00 1.3957000000000000e-01 1 0 0 0 0 +P 385 -211 -1.2475197802699829e-01 -1.9095926689690346e-01 6.3048485731892709e+00 6.3105169212499730e+00 1.3957000000000000e-01 1 0 0 0 0 +P 386 111 1.9899815204420815e-01 -6.7184283612308757e-02 5.5687097047954106e+00 5.5743036667519377e+00 1.3497999999999999e-01 2 0 0 -190 0 +V -107 0 0 0 0 0 0 2 0 +P 387 22 -3.7754050692170192e-03 6.8280684928958862e-02 3.4642925362567140e-01 3.5311433472098541e-01 0 1 0 0 0 0 +P 388 113 8.2999471421343396e-02 -2.8251000142352389e-01 1.6107349250332053e+01 1.6130098567719088e+01 8.0416361457125063e-01 2 0 0 -191 0 +V -108 0 0 0 0 0 0 2 0 +P 389 211 -1.4673680780120973e-01 1.9405519317056662e-03 5.3082618403845041e+00 5.3121237756181632e+00 1.3957000000000000e-01 1 0 0 0 0 +P 390 -211 5.6044408203317006e-02 1.6763803708868413e-01 2.3839451002379750e+00 2.3945599831740396e+00 1.3957000000000000e-01 1 0 0 0 0 +V -109 0 0 0 0 0 0 2 0 +P 391 321 1.9846678448419963e-01 2.0386347738843802e-01 3.9517065449383580e+01 3.9521172200136242e+01 4.9359999999999998e-01 1 0 0 0 0 +P 392 -211 -2.9633713105752252e-01 3.6457100116663532e-01 3.2491480380038389e+01 3.2495176638717545e+01 1.3957000000000000e-01 1 0 0 0 0 +V -110 0 0 0 0 0 0 2 0 +P 393 -321 8.7679693769441944e-02 -3.7650460777736888e-01 1.7261252844619153e+02 1.7261366707475875e+02 4.9359999999999998e-01 1 0 0 0 0 +P 394 211 -2.1815986473454180e-01 -4.1960556703188107e-01 6.4104946097799257e+01 6.4106842509556756e+01 1.3957000000000000e-01 1 0 0 0 0 +V -111 0 -3.8117306469070869e+00 2.4304278506338637e+00 -3.6687500677897781e+01 3.6965955593079201e+01 0 4 0 +P 395 13 -1.4149561259899173e+00 1.0402134060499841e+00 -1.3160839701082471e+01 1.3277914385994174e+01 1.0566000000000000e-01 1 0 0 0 0 +P 396 -14 -1.3089155169219182e+00 1.0462816645268493e+00 -1.2289940437364569e+01 1.2403652732398342e+01 0 1 0 0 0 0 +P 397 323 -2.1581479174280773e+01 1.3503790177823028e+01 -2.0949493928636579e+02 2.1103796270682068e+02 8.8290675088899884e-01 2 0 0 -192 0 +P 398 -211 -2.0850999230479355e+00 1.2367396416999163e+00 -1.9059552487099179e+01 1.9213619841764203e+01 1.3957000000000000e-01 1 0 0 0 0 +V -112 0 0 0 0 0 0 2 0 +P 399 -311 -4.4690407303060170e-01 3.0479452171944948e-01 -6.3255618455358773e+00 6.3681261797769668e+00 4.9767000000000000e-01 2 0 0 -193 0 +P 400 111 -1.2418841812846488e+00 6.4683552692001378e-01 -1.2930629916089380e+01 1.3006924392256479e+01 1.3497999999999999e-01 2 0 0 -194 0 +V -113 0 0 0 0 0 0 2 0 +P 401 311 -9.3258822715903111e-01 9.6253600257025262e-01 -1.1172693777377827e+01 1.1263789683300944e+01 4.9767000000000000e-01 2 0 0 -195 0 +P 402 211 -1.3587033582635805e-01 1.7718207748686304e-01 -7.1597924199696528e-01 7.6286322274092955e-01 1.3957000000000000e-01 1 0 0 0 0 +V -114 0 0 0 0 0 0 2 0 +P 403 -321 -9.2232459910796916e-01 -9.2465403799705914e-02 -1.4887975269241240e+01 1.4924968378343664e+01 4.9359999999999998e-01 1 0 0 0 0 +P 404 111 -1.1663521498522561e-01 6.8185846341943981e-02 -7.0050532350766603e-01 7.2607189153595308e-01 1.3497999999999999e-01 2 0 0 -196 0 +V -115 0 0 0 0 0 0 2 0 +P 405 -211 8.0700028232659307e+00 -6.2899386723757056e+00 -1.1945209016908863e+02 1.1988957252246230e+02 1.3957000000000000e-01 1 0 0 0 0 +P 406 211 1.0872137644979858e+00 -5.9716641606912368e-01 -1.2286932660223906e+01 1.2350175524257606e+01 1.3957000000000000e-01 1 0 0 0 0 +V -116 0 1.8675243735831720e-03 -1.7086209769348198e-03 -2.8434955821092834e-02 2.8547843422511342e-02 0 2 0 +P 407 22 1.0284917633797830e+00 -8.5251486620572126e-01 -1.4939793795464507e+01 1.4999400506534974e+01 0 1 0 0 0 0 +P 408 22 5.4642645271504009e-01 -5.8839714492554174e-01 -9.0399360168790608e+00 9.0755295304268895e+00 0 1 0 0 0 0 +V -117 0 0 0 0 0 0 2 0 +P 409 211 6.3239069735772049e-02 -4.0712194024407136e-02 -1.9482115859367102e-01 2.5118067485200196e-01 1.3957000000000000e-01 1 0 0 0 0 +P 410 111 -2.5129535497422834e-01 -4.3749634494359707e-01 1.7624108649708728e-01 5.5121042101932738e-01 1.3497999999999999e-01 2 0 0 -197 0 +V -118 0 0 0 0 0 0 2 0 +P 411 211 -8.9867935841088972e-02 -4.4410153793443752e-01 8.8775575440297683e-01 1.0064255989707680e+00 1.3957000000000000e-01 1 0 0 0 0 +P 412 111 -7.9048986992116252e-02 5.1075014150674813e-01 7.7222665732593598e-01 9.3897181005524955e-01 1.3497999999999999e-01 2 0 0 -198 0 +V -119 0 0 0 0 0 0 2 0 +P 413 -211 -6.6518601310751921e-02 8.3313999049881182e-02 1.2857659839509159e+00 1.2977056280772190e+00 1.3957000000000000e-01 1 0 0 0 0 +P 414 211 -6.7570053020446241e-01 4.1406156446148923e-01 1.4286956315294119e+00 1.6397161882881173e+00 1.3957000000000000e-01 1 0 0 0 0 +V -120 0 0 0 0 0 0 2 0 +P 415 -211 -1.7917883923619066e-01 3.7320756329498238e-02 3.3628350035695148e-01 4.0750984380178873e-01 1.3957000000000000e-01 1 0 0 0 0 +P 416 111 2.0615633368148753e-01 2.9319453099443760e-01 -3.9420844071029401e-02 3.8501567535532039e-01 1.3497999999999999e-01 2 0 0 -199 0 +V -121 0 0 0 0 0 0 2 0 +P 417 -211 -4.0949193990631622e-01 9.8784294800820266e-02 1.6177062253094043e+00 1.6774669004342038e+00 1.3957000000000000e-01 1 0 0 0 0 +P 418 211 2.3022959581081737e-01 3.5933366808902623e-01 2.7454858413980707e+00 2.7819594968343444e+00 1.3957000000000000e-01 1 0 0 0 0 +V -122 0 0 0 0 0 0 2 0 +P 419 -211 1.7106562716093260e-01 -8.5567367789404127e-03 1.1082111017219458e+00 1.1300213703377633e+00 1.3957000000000000e-01 1 0 0 0 0 +P 420 111 -2.5858290813921248e-01 1.2412289720045558e-01 1.0618010768307151e-01 3.3431337044568815e-01 1.3497999999999999e-01 2 0 0 -200 0 +V -123 0 0 0 0 0 0 2 0 +P 421 321 -4.3364031456645963e-01 3.1333513178025424e-01 2.3850228401197859e+00 2.4936314353003528e+00 4.9359999999999998e-01 1 0 0 0 0 +P 422 111 -3.2914057460674639e-01 3.0667447028601713e-01 4.7608665461210302e+00 4.7839787435723471e+00 1.3497999999999999e-01 2 0 0 -201 0 +V -124 0 0 0 0 0 0 3 0 +P 423 22 -3.6801339550226492e-01 1.7380726639585706e-01 3.6329416264764558e+00 3.6556678851485542e+00 0 1 0 0 0 0 +P 424 211 -2.0485179035825907e-01 1.0503476392148384e-01 1.2552849482286934e+00 1.2838288997349061e+00 1.3957000000000000e-01 1 0 0 0 0 +P 425 -211 -1.6286584081530955e-01 1.2536930627288169e-02 7.4666982282661187e-01 7.7696722321727008e-01 1.3957000000000000e-01 1 0 0 0 0 +V -125 0 0 0 0 0 0 2 0 +P 426 211 -3.6738729491780953e-01 -1.2990768478039541e-01 -4.9576508877336578e-01 6.4584227113010451e-01 1.3957000000000000e-01 1 0 0 0 0 +P 427 111 4.1426864992368700e-01 -4.6948895281791733e-02 1.3140310201161695e-01 4.5750310238953612e-01 1.3497999999999999e-01 2 0 0 -202 0 +V -126 0 6.9426357033436299e-05 -7.0324668325621512e-06 2.1888967731901427e-04 2.3111366735984392e-04 0 2 0 +P 428 22 1.7329754036781519e-01 -3.5760193007135399e-02 3.5401094689066487e-01 3.9577086732081140e-01 0 1 0 0 0 0 +P 429 22 1.9965593891975320e-01 -2.0177213938078393e-03 8.2184891706479402e-01 8.4575540650126857e-01 0 1 0 0 0 0 +V -127 0 0 0 0 0 0 2 0 +P 430 -211 -3.7279482875192040e-02 7.0816911438682062e-01 6.4425103332057665e-01 9.6821094460323387e-01 1.3957000000000000e-01 1 0 0 0 0 +P 431 111 -7.3446105685645879e-01 4.2632886349871141e-01 4.9727371847637947e-01 9.9332275488792399e-01 1.3497999999999999e-01 2 0 0 -203 0 +V -128 0 0 0 0 0 0 3 0 +P 432 211 3.5893828107734344e-01 -2.8226148103218018e-01 1.1790620111171650e-01 4.9182302757987484e-01 1.3957000000000000e-01 1 0 0 0 0 +P 433 -211 -1.5008674707049818e-02 9.4286417803348802e-02 3.1852852341836643e-02 1.7207433858934496e-01 1.3957000000000000e-01 1 0 0 0 0 +P 434 111 6.2902258068042838e-02 -3.4099485009942332e-01 -3.8018334849563219e-02 3.7403098273955909e-01 1.3497999999999999e-01 2 0 0 -204 0 +V -129 0 0 0 0 0 0 3 0 +P 435 -211 6.2512878218440995e-02 -1.0363521755860323e-01 1.7834621769483228e-01 2.5677865278800954e-01 1.3957000000000000e-01 1 0 0 0 0 +P 436 211 2.0006607633586731e-02 -2.7092422208840949e-01 8.6756397153503473e-01 9.1975389538118113e-01 1.3957000000000000e-01 1 0 0 0 0 +P 437 111 -1.3744564485215921e-01 -1.6334130447134231e-02 1.1762930332422402e-02 1.9369067100997739e-01 1.3497999999999999e-01 2 0 0 -205 0 +V -130 0 1.5843923112336528e-01 -6.6444617855219837e-02 -8.9283819735022774e-01 9.2728610338778894e-01 0 2 0 +P 438 10323 8.7256927989165967e-01 -6.3042634964667288e-01 -7.4558774953617020e+00 7.6433087325073386e+00 1.2927662681406757e+00 2 0 0 -206 0 +P 439 -211 7.4915303770725516e-01 -4.9674903661230729e-02 -1.6828668697901639e+00 1.8480309944092130e+00 1.3957000000000000e-01 1 0 0 0 0 +V -131 0 6.3341395332392340e-05 -2.1593088333733440e-05 -2.6782880498143764e-04 2.8013321925965200e-04 0 2 0 +P 440 22 1.8312594343566238e-01 -8.4377915874067108e-02 -7.2688918009528936e-01 7.5433588273795882e-01 0 1 0 0 0 0 +P 441 22 -3.4363715801602034e-03 2.3121721921194556e-02 -3.2898997053912235e-02 4.0357981631782891e-02 0 1 0 0 0 0 +V -132 0 0 0 0 0 0 1 0 +P 442 310 3.8379010207120906e-01 6.7470718262439966e-01 -2.3156482330478920e+00 2.4924740305268194e+00 4.9767000000000000e-01 2 0 0 -207 0 +V -133 0 0 0 0 0 0 1 0 +P 443 310 4.9216148712404084e-01 1.6700552201381169e+00 -1.0293091901049095e+01 1.0451158963486355e+01 4.9767000000000000e-01 2 0 0 -208 0 +V -134 0 9.6048817494557951e-06 2.0169447607449687e-06 -1.3519891620979356e-04 1.3580891966622047e-04 0 2 0 +P 444 22 1.5816391710962158e-01 4.6061575462403102e-02 -2.1743161685814321e+00 2.1805477051337747e+00 0 1 0 0 0 0 +P 445 22 -2.0807358571302472e-03 -1.3285414039545751e-02 -2.2720452416971754e-02 2.6401716723371889e-02 0 1 0 0 0 0 +V -135 0 -6.1063190212079914e-05 1.3712130821739223e-04 -6.0160207306227294e-04 6.2361403763779813e-04 0 2 0 +P 446 22 -2.5237797460208114e-02 2.4511377645867576e-02 -3.8105441354096364e-01 3.8267508428664126e-01 0 1 0 0 0 0 +P 447 22 -9.8480342496487655e-02 2.5330563686262997e-01 -8.3783194360571156e-01 8.8080899703098514e-01 0 1 0 0 0 0 +V -136 0 -4.4426904102195735e-05 -3.9203241902067923e-06 -7.3352018546965340e-04 7.3964774707043087e-04 0 2 0 +P 448 22 -9.3539797166090302e-02 -3.7702636311332943e-02 -1.0340724780016020e+00 1.0389788603234766e+00 0 1 0 0 0 0 +P 449 22 2.2057787920906725e-02 3.1394912294285607e-02 -1.4614697997947071e-01 1.5109972297476049e-01 0 1 0 0 0 0 +V -137 0 3.4098188860393095e-05 1.9858577100558979e-05 -1.0637027187826258e-05 5.1232108310682472e-05 0 2 0 +P 450 22 1.6215511123058321e-01 9.3620873556322176e-02 -6.6667187162900293e-02 1.9875528145904667e-01 0 1 0 0 0 0 +P 451 22 -1.3182901251046604e-02 -6.8603676000775432e-03 2.0194881719618613e-02 2.5073627114409011e-02 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 452 130 -8.2754245304295648e-02 1.3966417583534083e-01 2.8673365676272389e-01 5.9686343994935065e-01 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 -3.0024804301746423e-05 -1.0062036223726178e-05 1.6354301085376340e-06 3.2890160085510046e-05 0 2 0 +P 453 22 -2.2227458161680197e-01 -3.7647953140759721e-02 -4.5941596270482596e-02 2.3007387569320689e-01 0 1 0 0 0 0 +P 454 22 -2.4152691014793695e-01 -1.1778311524703966e-01 7.1204539415547607e-02 2.7798956274703429e-01 0 1 0 0 0 0 +V -140 0 -5.2312039080510034e-07 -7.7585077934244670e-06 4.8598353661629399e-05 4.9611143007349821e-05 0 2 0 +P 455 22 4.7206675991752704e-02 -1.2250638112759871e-01 8.1646707124802609e-01 8.2695511492915996e-01 0 1 0 0 0 0 +P 456 22 -5.8513823507732002e-02 -4.5192285691928666e-02 2.3397707802335543e-01 2.4538028296483455e-01 0 1 0 0 0 0 +V -141 0 3.0596166820026153e-05 -6.1256159019476770e-05 1.0370610489371156e-03 1.0399416777082222e-03 0 2 0 +P 457 22 4.0001623016009347e-02 3.0748574500628228e-04 9.6083364275377592e-01 9.6166600929786894e-01 0 1 0 0 0 0 +P 458 22 7.4777626526306248e-02 -2.3010542100460624e-01 2.9296239307961844e+00 2.9395980293397774e+00 0 1 0 0 0 0 +V -142 0 -4.8576316925451316e-07 1.3569495300677073e-05 5.5406023824234275e-03 5.5407339507114817e-03 0 2 0 +P 459 22 6.5319363905594258e-02 3.0658385922958279e-02 8.8762098019672298e+00 8.8765030842369192e+00 0 1 0 0 0 0 +P 460 22 -6.7156663551545731e-02 2.0665449414198934e-02 1.2079983338832347e+01 1.2080187686651476e+01 0 1 0 0 0 0 +V -143 0 9.0037533931825553e-01 -4.1316775008103196e-01 -2.4225397489886213e+00 2.6310406502189263e+00 0 2 0 +P 461 -313 3.3260378225084786e+00 -1.5544554022213999e+00 -7.2364383456584944e+00 8.1606541269951336e+00 8.6681985191492394e-01 2 0 0 -209 0 +P 462 111 2.9176140131540547e+00 -1.3106559225548522e+00 -9.5626609746215951e+00 1.0084294471753186e+01 1.3497999999999999e-01 2 0 0 -210 0 +V -144 0 1.1084488636694684e-04 -5.9020010882937835e-05 -2.8722172598448888e-04 3.1493497848296892e-04 0 2 0 +P 463 22 3.1314551809140151e-01 -2.2424078531812608e-01 -9.5181719689775401e-01 1.0267911285218234e+00 0 1 0 0 0 0 +P 464 22 1.8073067545782046e-01 -3.8726495117382520e-02 -3.2791682948089795e-01 3.7642099507376175e-01 0 1 0 0 0 0 +V -145 0 2.1762554097457766e-05 -5.2596854880985613e-06 -3.6973893122269703e-05 4.3376025620967871e-05 0 2 0 +P 465 22 6.1212626343456389e-01 -1.9963698177142020e-01 -1.1024657025825368e+00 1.2767083113413062e+00 0 1 0 0 0 0 +P 466 22 1.9830912724377689e-01 3.7668075123103504e-03 -2.7443846883299938e-01 3.3861064951124098e-01 0 1 0 0 0 0 +V -146 0 0 0 0 0 0 3 0 +P 467 -211 1.7393789155705139e-01 -1.3065291375810584e-01 -4.3049883216363505e-01 5.0212907044608479e-01 1.3957000000000000e-01 1 0 0 0 0 +P 468 211 5.4061889742620196e-02 -2.0391370194446679e-01 -3.1469861234019963e-01 4.0375547955673285e-01 1.3957000000000000e-01 1 0 0 0 0 +P 469 111 1.6109978154052820e-01 -2.0414556888027760e-01 -1.2587726950965411e-01 3.1889377586441564e-01 1.3497999999999999e-01 2 0 0 -211 0 +V -147 0 1.0714041926560731e-04 -3.5952055726626964e-05 -3.6896034107096622e-04 3.8633479589775667e-04 0 2 0 +P 470 22 2.5050241289919523e-02 -3.1553935481967076e-02 -2.0563051401164908e-01 2.0954014824319075e-01 0 1 0 0 0 0 +P 471 22 7.4662084294927367e-01 -2.2738813337831260e-01 -2.4517795314882425e+00 2.5730081456055021e+00 0 1 0 0 0 0 +V -148 0 -8.2236368158045554e+00 -2.2931374491773147e+00 1.2920849342338417e+02 1.3492529573552881e+02 0 2 0 +P 472 211 1.1959041323412727e-02 1.8026949323956257e-01 6.7905858545809583e-01 7.1640802357774702e-01 1.3957000000000000e-01 1 0 0 0 0 +P 473 -211 -1.1991827116210638e-01 -2.1037361365155197e-01 1.0171799220351061e+00 1.0548801959325360e+00 1.3957000000000000e-01 1 0 0 0 0 +V -149 0 -9.2045643512728860e-06 3.8569981482441684e-06 4.7596694869231805e-05 4.8915671097022722e-05 0 2 0 +P 474 22 -1.6000027299236894e-01 3.3406489255377600e-03 8.2592413992356950e-01 8.4128588018661254e-01 0 1 0 0 0 0 +P 475 22 -7.6077823418413418e-02 9.5583400703326729e-02 3.9483294225373233e-01 4.1330022259228810e-01 0 1 0 0 0 0 +V -150 0 -5.1376001790767983e-04 -8.7323614726347900e-05 1.0339591518642124e-02 1.0352903915864018e-02 0 2 0 +P 476 22 -9.8141079344267446e-01 -1.3524648836133710e-01 2.0155938367930911e+01 2.0180270321527644e+01 0 1 0 0 0 0 +P 477 22 -1.3018310489578394e-01 -5.3690746781996687e-02 2.2152591616907351e+00 2.2197304995303044e+00 0 1 0 0 0 0 +V -151 0 1.8812133423387019e-05 4.4631564068415145e-05 6.8657693823981141e-04 6.8868785865107516e-04 0 2 0 +P 478 22 1.1022166047224506e-01 2.1611844596084642e-01 2.5503585056497373e+00 2.5618712895970677e+00 0 1 0 0 0 0 +P 479 22 -2.6491571954957035e-03 3.9096045874903049e-02 1.3756608498543419e+00 1.3762188389420000e+00 0 1 0 0 0 0 +V -152 0 -6.1390506341479101e-05 -3.8165294835329746e-05 7.2673967916918672e-04 7.3078276184993679e-04 0 2 0 +P 480 22 -2.3353319762731059e-01 -1.5443990800084420e-01 3.2775654162838568e+00 3.2895021656167542e+00 0 1 0 0 0 0 +P 481 22 -8.7200867675081895e-02 -4.4954280050167550e-02 5.1927851948606241e-01 5.2846481379345667e-01 0 1 0 0 0 0 +V -153 0 -2.1949467253790887e-06 -2.9968781866244220e-06 3.5756066464182236e-04 3.5758882682307923e-04 0 2 0 +P 482 22 -9.6872819742027924e-02 -1.7212501507269221e-01 1.3349169664484013e+01 1.3350630775180569e+01 0 1 0 0 0 0 +P 483 22 -2.0782378455591517e-02 1.1484078805539037e-02 5.8170681214651880e+00 5.8171165813559886e+00 0 1 0 0 0 0 +V -154 0 -8.9986340215037180e-04 6.7085770245716900e-04 1.8873921422629708e-01 1.8874257936079455e-01 0 2 0 +P 484 22 -5.9132218144870774e-01 4.5823878854928546e-01 1.3682075425726194e+02 1.3682279941674801e+02 0 1 0 0 0 0 +P 485 22 -5.9557876820332156e-01 4.2660844740346221e-01 1.1212230984163310e+02 1.1212470322395373e+02 0 1 0 0 0 0 +V -155 0 -5.1873522246844111e-06 2.7707778595899736e-05 9.6056467932884703e-03 9.6057046240736067e-03 0 2 0 +P 486 22 -5.3358764522310233e-02 1.0089755553224661e-01 2.0124549509027762e+01 2.0124873177632029e+01 0 1 0 0 0 0 +P 487 22 1.3993599204279632e-02 1.0936795908476790e-01 5.2769647303955324e+01 5.2769762494776600e+01 0 1 0 0 0 0 +V -156 0 -3.7961104939160116e-05 2.2238792132853197e-05 1.3680343821661578e-02 1.3680495100296034e-02 0 2 0 +P 488 22 -5.8340790011343790e-02 1.4637676680264345e-02 3.2736459456784488e+01 3.2736514714841775e+01 0 1 0 0 0 0 +P 489 22 -5.0816223291669176e-02 4.9309885767650677e-02 6.6013173261676918e+00 6.6016970692501333e+00 0 1 0 0 0 0 +V -157 0 6.4821581940860607e-05 4.9234301285117272e-04 1.8010279475067351e-02 1.8017257078420904e-02 0 2 0 +P 490 22 -2.5234079465957855e-02 2.3544476449702920e-01 7.9958679452732673e+00 7.9993734250967465e+00 0 1 0 0 0 0 +P 491 22 1.5175635805081697e-01 7.2553702530404074e-01 2.7157572142236390e+01 2.7167685926999180e+01 0 1 0 0 0 0 +V -158 0 1.4804463480565830e-04 1.0651174971634308e-04 1.8034463186217421e-03 1.8139343160849324e-03 0 2 0 +P 492 22 2.4200308501046050e-01 1.0332693936441227e-01 2.2320018200418206e+00 2.2474594710968643e+00 0 1 0 0 0 0 +P 493 22 5.0192199347641360e-02 1.0689500509646421e-01 1.3274551679537445e+00 1.3326976483497788e+00 0 1 0 0 0 0 +V -159 0 2.4952594602505824e-05 3.7777957462761067e-05 5.9919627289598465e-04 6.0271404297856631e-04 0 2 0 +P 494 22 2.1275464521165535e-02 6.8760375565027509e-02 1.4863415101773401e+00 1.4880832367561605e+00 0 1 0 0 0 0 +P 495 22 5.0890506431500629e-02 4.0498121370393020e-02 2.4660776878922408e-01 2.5503986572021459e-01 0 1 0 0 0 0 +V -160 0 2.0236519733306777e-05 3.7771007405603190e-06 1.1559121658481918e-03 1.1570792571236135e-03 0 2 0 +P 496 22 -1.2833830815182560e-02 -2.3124364578967924e-02 1.4876882759176302e-01 1.5110131539335275e-01 0 1 0 0 0 0 +P 497 22 7.0093495982825063e-02 3.3811751864884283e-02 3.1219093548200161e+00 3.1228791767303448e+00 0 1 0 0 0 0 +V -161 0 9.9092870836126360e-05 2.7848331350535774e-04 4.6738600755917839e-03 4.6833068224631591e-03 0 2 0 +P 498 22 2.6456748621759857e-01 6.3513480445463311e-01 1.1741987252901410e+01 1.1762128073690251e+01 0 1 0 0 0 0 +P 499 22 1.5373857476364564e-01 5.4044177273503313e-01 7.9880294607280593e+00 8.0077667001821897e+00 0 1 0 0 0 0 +V -162 0 0 0 0 0 0 3 0 +P 500 111 3.7256730615539213e-01 4.0392989421236170e-01 4.8383474581306611e+00 4.8713233810796961e+00 1.3497999999999999e-01 2 0 0 -212 0 +P 501 111 4.3040406011067917e-01 7.1737842978781352e-01 9.9218515099128535e+00 9.9579735112945826e+00 1.3497999999999999e-01 2 0 0 -213 0 +P 502 111 1.5302824405896340e-01 1.5887887524497102e-01 2.8455533486003191e+00 2.8572808053478687e+00 1.3497999999999999e-01 2 0 0 -214 0 +V -163 0 2.5839849297056158e-04 -2.4440063293579029e-04 2.5294186504828259e-03 2.5543856476549264e-03 0 2 0 +P 503 22 1.0377695069292572e+00 -1.0215680356798684e+00 1.0766543901355142e+01 1.0864577045648971e+01 0 1 0 0 0 0 +P 504 22 6.5234961046689088e-01 -5.7699462341256325e-01 5.7777430561017944e+00 5.8430127187997627e+00 0 1 0 0 0 0 +V -164 0 2.9081685912101332e+01 -1.3235793939462669e+01 2.7971035052250431e+02 2.8244513460775647e+02 0 2 0 +P 505 -211 1.6762062809584813e-01 3.9634778053940575e-04 7.8798055709064896e-01 8.1761236249686153e-01 1.3957000000000000e-01 1 0 0 0 0 +P 506 211 4.6924787248882088e-01 -2.9025094100292242e-01 5.3374797093361082e+00 5.3677377550568766e+00 1.3957000000000000e-01 1 0 0 0 0 +V -165 0 -3.0050263375036868e+00 -5.0546364354167757e+01 1.8214857668293783e+02 1.9090770581995881e+02 0 2 0 +P 507 211 -9.7967500090645355e-03 -8.7693414903352140e-01 3.0997225316964849e+00 3.2244176274885290e+00 1.3957000000000000e-01 1 0 0 0 0 +P 508 -211 -4.6580152179340854e-02 -7.1359516020228234e-02 3.1754285571499852e-01 3.5717662468214256e-01 1.3957000000000000e-01 1 0 0 0 0 +V -166 0 5.6480984727818789e-06 -7.5695882859026960e-05 2.4158929915350398e-04 2.5535755044692415e-04 0 2 0 +P 509 22 -1.5831173828552911e-02 -2.9378876913681856e-01 9.0618464764577900e-01 9.5275027292812764e-01 0 1 0 0 0 0 +P 510 22 3.9026217408659976e-02 -1.7071480593394573e-02 8.5950023758604277e-02 9.5926470168474803e-02 0 1 0 0 0 0 +V -167 0 -1.3980777099787572e-04 -1.7277007798433808e-04 1.4734431911646548e-04 2.6792598878135266e-04 0 2 0 +P 511 22 -1.2336930388478158e-01 -1.2478121246765621e-01 1.7383616081680370e-01 2.4700070229341370e-01 0 1 0 0 0 0 +P 512 22 -6.0123017804104317e-01 -7.7065620210665875e-01 5.8982394573139763e-01 1.1416133302440359e+00 0 1 0 0 0 0 +V -168 0 -2.8186737865916890e-04 -3.8046149041595802e-04 1.2333062138451006e-04 4.9228004617499265e-04 0 2 0 +P 513 22 -4.8768644239564540e-01 -5.8187949922834425e-01 1.4921470252584854e-01 7.7374856715125973e-01 0 1 0 0 0 0 +P 514 22 -2.1530788834862755e-01 -3.6701452356081865e-01 1.5837934419538133e-01 4.5402771276374626e-01 0 1 0 0 0 0 +V -169 0 -3.4658007413822462e-04 -5.2006713158035483e-04 -6.2006088942802176e-04 8.8139953703405920e-04 0 2 0 +P 515 22 -1.0775610701610787e+00 -1.6290514307907258e+00 -1.9570560690361336e+00 2.7649620036157683e+00 0 1 0 0 0 0 +P 516 22 -2.4453684219177260e-02 -2.4597163101588097e-02 -1.4540972319744369e-02 3.7609081091414698e-02 0 1 0 0 0 0 +V -170 0 -3.2936317532428194e-06 1.0990395558401315e-06 -2.4129875422404844e-06 4.5736236017871529e-06 0 2 0 +P 517 22 -1.1277518702680793e-01 -2.8406275204800626e-02 -9.5641457125978296e-02 1.5057372812387532e-01 0 1 0 0 0 0 +P 518 22 -1.4222141692334364e-01 1.1349513010492379e-01 -9.1174700460411068e-02 2.0352125685849817e-01 0 1 0 0 0 0 +V -171 0 -2.7271832796903617e+00 6.8567867727248952e+00 -1.2603422001234511e+01 1.5348030492065396e+01 0 2 0 +P 519 -211 -3.7348317016183979e-01 4.9790328223054242e-01 -1.0151019995738311e+00 1.1988783137953889e+00 1.3957000000000000e-01 1 0 0 0 0 +P 520 211 8.5831780283816786e-02 2.2532066093454553e-01 -3.1425194699553238e-01 4.1996495787285959e-01 1.3957000000000000e-01 1 0 0 0 0 +V -172 0 3.1974236939944823e-04 3.3569120093488014e-05 -5.9655894167858436e-04 6.8391161951871296e-04 0 2 0 +P 521 22 1.9897288125315632e-02 1.6243576481117575e-02 -1.3069032052262358e-01 1.3319052417475438e-01 0 1 0 0 0 0 +P 522 22 4.4848871157211562e-01 3.2931344889120584e-02 -7.4320029585512404e-01 8.6866177401965050e-01 0 1 0 0 0 0 +V -173 0 1.9560921305414770e-05 4.4755997995360398e-05 -3.5733999312562766e-03 3.5738070538753140e-03 0 2 0 +P 523 22 5.1120391576480297e-03 1.7106579289460694e-01 -1.2815304960687456e+01 1.2816447669844537e+01 0 1 0 0 0 0 +P 524 22 1.1022477824540093e-01 9.2828442345385592e-02 -8.2544886826868353e+00 8.2557464855730984e+00 0 1 0 0 0 0 +V -174 0 5.5231096619475536e-05 5.6770554839812856e-07 -2.1296451261918815e-03 2.1308725963420996e-03 0 2 0 +P 525 22 9.7472420846883984e-02 6.0287687292296423e-02 -2.6041322266357367e+00 2.6066530516867035e+00 0 1 0 0 0 0 +P 526 22 6.2239828849669235e-02 -5.8646048146063924e-02 -3.5541813861247409e+00 3.5552100473437531e+00 0 1 0 0 0 0 +V -175 0 5.3769907760083674e-05 -1.7797180683467078e-05 -4.7051261694481660e-04 4.7445074797331378e-04 0 2 0 +P 527 22 5.3037730429285952e-02 1.8802208065621582e-02 -7.8476669872783666e-01 7.8678160585350465e-01 0 1 0 0 0 0 +P 528 22 2.6726521743199222e-01 -1.2481855947855978e-01 -2.0180385224711261e+00 2.0394827401615143e+00 0 1 0 0 0 0 +V -176 0 2.9254383701421145e-05 8.8292904820199445e-06 -3.6860838857756469e-04 3.7012148884077044e-04 0 2 0 +P 529 22 2.6766648875802562e-01 3.2296618557240302e-02 -2.7936079938788474e+00 2.8065876156354146e+00 0 1 0 0 0 0 +P 530 22 2.3442063103992584e-02 5.5563101627706384e-02 -8.7439114423986819e-01 8.7646828904996255e-01 0 1 0 0 0 0 +V -177 0 1.1791599049523860e-05 1.5009523055407391e-06 -2.9482632283654421e-04 2.9765838229104172e-04 0 2 0 +P 531 22 -1.5428123271640134e-02 -5.0390978815312924e-02 -2.3845419747560437e-01 2.4420827591911123e-01 0 1 0 0 0 0 +P 532 22 5.6030702577819128e-02 5.5559279973158932e-02 -7.7673543916687360e-01 7.8073312705447295e-01 0 1 0 0 0 0 +V -178 0 3.2723311563305957e-04 1.0507501276705404e-03 -1.2218877606198402e-02 1.2268568468549786e-02 0 2 0 +P 533 22 9.4401096396448003e-02 2.3410779978091101e-01 -3.2781170771961121e+00 3.2878214064519824e+00 0 1 0 0 0 0 +P 534 22 4.9348863218620098e-01 1.6536143709088655e+00 -1.8673672935241342e+01 1.8753240584233389e+01 0 1 0 0 0 0 +V -179 0 1.7342743189630799e-05 8.3072667488889255e-04 -1.7361270833368348e-02 1.7381836821258590e-02 0 2 0 +P 535 22 -3.8453506099116352e-02 1.6907034517103431e-01 -2.8447753591404483e+00 2.8500544376766270e+00 0 1 0 0 0 0 +P 536 22 5.3526856649327458e-02 5.5295120846059187e-01 -1.2244678391462424e+01 1.2257274129008765e+01 0 1 0 0 0 0 +V -180 0 1.0839912633860633e-05 1.0352917101532169e-05 -2.0615493526385194e-04 2.0836977521051438e-04 0 2 0 +P 537 22 -2.8004400899389711e-02 6.2646397586995417e-02 -5.7297679271081736e-01 5.7707124567555479e-01 0 1 0 0 0 0 +P 538 22 8.3568879894528450e-02 -9.5782166655390463e-03 -4.8375603873570577e-01 4.9101466875703387e-01 0 1 0 0 0 0 +V -181 0 0 0 0 0 0 1 0 +P 539 310 4.9782761336762366e-01 5.0953796112831118e-01 -7.5199540324803458e+00 7.5699963900902567e+00 4.9767000000000000e-01 2 0 0 -215 0 +V -182 0 8.7757799449387813e-05 1.3142049408522492e-05 -1.0075220374350941e-03 1.0115039674349258e-03 0 2 0 +P 540 22 2.7618616299673959e-01 8.4600539789103923e-03 -3.7511108822759187e+00 3.7612741485131078e+00 0 1 0 0 0 0 +P 541 22 6.4466287487593510e-01 1.2944043611362591e-01 -6.8208918870357209e+00 6.8525113048702293e+00 0 1 0 0 0 0 +V -183 0 -2.6136531610599666e-05 -7.8566005859732383e-05 -8.0291769723185909e-03 8.0296346065171897e-03 0 2 0 +P 542 22 -7.4716552899476629e-03 4.9182992465864129e-03 -2.7131229900018922e-01 2.7145971872272112e-01 0 1 0 0 0 0 +P 543 22 -1.5136490069141190e-01 -4.8237850605192573e-01 -4.8523487127665760e+01 4.8526120835947800e+01 0 1 0 0 0 0 +V -184 0 3.0415448928081571e-05 -1.1974711988028776e-04 -6.5567445846735376e-03 6.5581791201926257e-03 0 2 0 +P 544 22 1.3556393099985419e-02 -6.1583833433596850e-02 -1.3131200271624943e+00 1.3146332378536185e+00 0 1 0 0 0 0 +P 545 22 5.5354700392647317e-02 -2.0972253436179353e-01 -1.3542239831247805e+01 1.3543976791596672e+01 0 1 0 0 0 0 +V -185 0 -3.1088009732033299e-05 -4.8775051918327588e-05 -3.9681488720718049e-03 3.9686020068036556e-03 0 2 0 +P 546 22 -2.3880690879437318e-02 -6.3743256993639932e-02 -2.3974399240098516e+00 2.3984060705905081e+00 0 1 0 0 0 0 +P 547 22 -2.4101259830608548e-01 -3.5185697101090135e-01 -3.1414181204563874e+01 3.1417076107648302e+01 0 1 0 0 0 0 +V -186 0 4.9936185293428575e-06 -7.8074106944437902e-06 -4.8662299743094315e-04 4.8679322156790417e-04 0 3 0 +P 548 22 -7.6945087736918416e-03 -3.4952019188524259e-03 -3.4251266665547355e+00 3.4251370927082716e+00 0 1 0 0 0 0 +P 549 11 3.7993073439308529e-02 -5.4461719288112491e-02 -1.9843239859383353e+00 1.9854348374518325e+00 5.1000000000000004e-04 1 0 0 0 0 +P 550 -11 4.5152289921856444e-02 -6.0008799552382155e-02 -1.9431576419402867e+00 1.9446083582150522e+00 5.1000000000000004e-04 1 0 0 0 0 +V -187 0 -3.3864176965536530e-06 -5.2595766008398732e-06 -1.0993693802770681e-03 1.0994124317216158e-03 0 2 0 +P 551 22 3.7271706047568784e-02 2.3949720321528242e-03 -4.4966347495633086e+00 4.4967898535447492e+00 0 1 0 0 0 0 +P 552 22 -9.8612167830641417e-02 -9.7665221123780122e-02 -1.5416982381895389e+01 1.5417607097689778e+01 0 1 0 0 0 0 +V -188 0 -4.6383230818921369e-06 5.6203138543926335e-06 2.4584505964231955e-05 2.6813092486387573e-05 0 2 0 +P 553 22 -6.5476919329221801e-03 1.0368115961250647e-01 1.8400605847919932e-01 2.1130755946083196e-01 0 1 0 0 0 0 +P 554 22 -7.3324877363122987e-02 -6.8985724846230816e-03 2.3934255729599138e-01 2.5041762652742228e-01 0 1 0 0 0 0 +V -189 0 -4.9726058411939644e-05 1.4815060441523449e-05 2.8970980996520599e-04 2.9505398883757013e-04 0 2 0 +P 555 22 -1.2227550286838383e-01 -2.9022998042734331e-02 7.1445373986730298e-01 7.2542248340362359e-01 0 1 0 0 0 0 +P 556 22 -2.0031525666097008e-01 1.2513360388871886e-01 1.1649976106813382e+00 1.1886984704989552e+00 0 1 0 0 0 0 +V -190 0 4.1144825782597785e-06 -1.3891011630816487e-06 1.1513855193327027e-04 1.1525421260035257e-04 0 2 0 +P 557 22 9.3887241474577124e-02 3.4826553659132765e-02 1.8468116251162237e+00 1.8495245014911006e+00 0 1 0 0 0 0 +P 558 22 1.0511091056963101e-01 -1.0201083727144152e-01 3.7218980796791872e+00 3.7247791652608369e+00 0 1 0 0 0 0 +V -191 0 0 0 0 0 0 2 0 +P 559 211 2.7960965099084567e-01 -4.5946947899938018e-01 9.9891123687115861e+00 1.0004555935108064e+01 1.3957000000000000e-01 1 0 0 0 0 +P 560 -211 -1.9661017956950227e-01 1.7695947757585628e-01 6.1182368816204669e+00 6.1255426326110252e+00 1.3957000000000000e-01 1 0 0 0 0 +V -192 0 -3.8117306469070869e+00 2.4304278506338637e+00 -3.6687500677897781e+01 3.6965955593079201e+01 0 2 0 +P 561 311 -1.8715297405296983e+01 1.1577069668267237e+01 -1.8242722485100242e+02 1.8375045834320991e+02 4.9767000000000000e-01 2 0 0 -216 0 +P 562 211 -2.8661817689837927e+00 1.9267205095557918e+00 -2.7067714435363381e+01 2.7287504363610779e+01 1.3957000000000000e-01 1 0 0 0 0 +V -193 0 0 0 0 0 0 1 0 +P 563 310 -4.4690407303060170e-01 3.0479452171944948e-01 -6.3255618455358773e+00 6.3681261797769668e+00 4.9767000000000000e-01 2 0 0 -217 0 +V -194 0 -3.1527778681318056e-04 1.6421247362094913e-04 -3.2827057816517463e-03 3.3020747002308936e-03 0 2 0 +P 564 22 -2.9431917300519211e-01 1.7742963419472862e-01 -3.6976505269072799e+00 3.7135864699541625e+00 0 1 0 0 0 0 +P 565 22 -9.4756500827945667e-01 4.6940589272528510e-01 -9.2329793891821001e+00 9.2933379223023156e+00 0 1 0 0 0 0 +V -195 0 0 0 0 0 0 1 0 +P 566 310 -9.3258822715903111e-01 9.6253600257025262e-01 -1.1172693777377827e+01 1.1263789683300944e+01 4.9767000000000000e-01 2 0 0 -218 0 +V -196 0 -6.5693861061007710e-06 3.8405137903525116e-06 -3.9455407529225346e-05 4.0895424224071609e-05 0 2 0 +P 567 22 1.7454219099767260e-02 4.4134073479361206e-02 -2.8161765485158968e-01 2.8558881233405026e-01 0 1 0 0 0 0 +P 568 22 -1.3408943408499285e-01 2.4051772862582772e-02 -4.1888766865607635e-01 4.4048307920190266e-01 0 1 0 0 0 0 +V -197 0 -4.4674668139318611e-05 -7.7777020687567041e-05 3.1331705484877706e-05 9.7992828544315845e-05 0 2 0 +P 569 22 -1.1564015998464669e-01 -2.1072831940990802e-01 1.3246041090625361e-02 2.4073746863995532e-01 0 1 0 0 0 0 +P 570 22 -1.3565519498958165e-01 -2.2676802553368905e-01 1.6299504540646192e-01 3.1047295237937217e-01 0 1 0 0 0 0 +V -198 0 -4.1994933803133881e-06 2.7133704299912539e-05 4.1024696949819633e-05 4.9883066825652891e-05 0 2 0 +P 571 22 -9.1327603613570452e-02 4.7743485030051019e-01 7.5852594270345663e-01 9.0091418748815133e-01 0 1 0 0 0 0 +P 572 22 1.2278616621454207e-02 3.3315291206237996e-02 1.3700714622479238e-02 3.8057622567098298e-02 0 1 0 0 0 0 +V -199 0 2.9180616181076244e-05 4.1500529828774420e-05 -5.5798650462421432e-06 5.4497450772478213e-05 0 2 0 +P 573 22 2.0272262046875161e-01 2.6691626730043372e-01 -7.2202577647962327e-02 3.4286143967836935e-01 0 1 0 0 0 0 +P 574 22 3.4337132127359193e-03 2.6278263694003868e-02 3.2781733576932932e-02 4.2154235676950993e-02 0 1 0 0 0 0 +V -200 0 -2.1589576501028010e-05 1.0363255653369697e-05 8.8651781906517996e-06 2.7912456157651145e-05 0 2 0 +P 575 22 -3.8865980834170609e-02 8.3634946299046928e-02 4.5307746193725261e-02 1.0275291029358541e-01 0 1 0 0 0 0 +P 576 22 -2.1971692730504189e-01 4.0487950901408658e-02 6.0872361489346244e-02 2.3156046015210280e-01 0 1 0 0 0 0 +V -201 0 -5.5928360981912877e-05 5.2110866302600545e-05 8.0897793623986721e-04 8.1290521662359661e-04 0 2 0 +P 577 22 -2.6406015212804240e-01 1.5887290229264120e-01 3.1439228369676688e+00 3.1589902133168448e+00 0 1 0 0 0 0 +P 578 22 -6.5080422478704020e-02 1.4780156799337593e-01 1.6169437091533618e+00 1.6249885302555025e+00 0 1 0 0 0 0 +V -202 0 2.5577613621733289e-05 -2.8987004054158923e-06 8.1130391415557820e-06 2.8246978345620541e-05 0 2 0 +P 579 22 4.1523619773097542e-01 -2.5212523152159896e-02 1.2013330443018896e-01 4.3299974834068033e-01 0 1 0 0 0 0 +P 580 22 -9.6754780728841897e-04 -2.1736372129631837e-02 1.1269797581427982e-02 2.4503354048855987e-02 0 1 0 0 0 0 +V -203 0 -9.7897731963963699e-05 5.6826197138257549e-05 6.6282573799741188e-05 1.3240190736311445e-04 0 2 0 +P 581 22 -3.4078459999881455e-01 2.7082520501007290e-01 2.2460587057992729e-01 4.8982469554328012e-01 0 1 0 0 0 0 +P 582 22 -3.9367645685764430e-01 1.5550365848863854e-01 2.7266784789645226e-01 5.0349805934464398e-01 0 1 0 0 0 0 +V -204 0 1.0051858600423073e-05 -5.4491398591193902e-05 -6.0753769080588552e-06 5.9770613427078703e-05 0 2 0 +P 583 22 5.5789906689558660e-02 -8.2513813655285095e-02 3.4609669383240317e-02 1.0544606368748895e-01 0 1 0 0 0 0 +P 584 22 7.1123513784841722e-03 -2.5848103644413822e-01 -7.2628004232803536e-02 2.6858491905207016e-01 0 1 0 0 0 0 +V -205 0 -3.7511928053308099e-05 -4.4579420963488085e-06 3.2103614254240428e-06 5.2862428077211607e-05 0 2 0 +P 585 22 -9.4580225870565235e-02 4.1353138776709604e-02 4.7263360195968919e-02 1.1353116941803613e-01 0 1 0 0 0 0 +P 586 22 -4.2865418981593975e-02 -5.7687269223843832e-02 -3.5500429863546519e-02 8.0159501591941129e-02 0 1 0 0 0 0 +V -206 0 1.5843923112336528e-01 -6.6444617855219837e-02 -8.9283819735022774e-01 9.2728610338778894e-01 0 2 0 +P 587 321 3.8552872954303585e-01 -2.7291260034918019e-01 -2.9224624236940806e+00 3.0012566145926773e+00 4.9359999999999998e-01 1 0 0 0 0 +P 588 223 4.8704055034862392e-01 -3.5751374929749274e-01 -4.5334150716676227e+00 4.6420521179146625e+00 7.9484028256763894e-01 2 0 0 -219 0 +V -207 0 6.3429893183150927e+00 1.1151044358051168e+01 -3.8271263192902083e+01 4.1193704752906903e+01 0 2 0 +P 589 -211 1.4786817700154750e-01 5.9321872089188232e-01 -1.7433086461786294e+00 1.8526678788513411e+00 1.3957000000000000e-01 1 0 0 0 0 +P 590 211 2.3592192506966145e-01 8.1488461732517337e-02 -5.7233958686926234e-01 6.3980615167547805e-01 1.3957000000000000e-01 1 0 0 0 0 +V -208 0 6.8329392612838751e+00 2.3186263413004074e+01 -1.4290446044786810e+02 1.4509898940858528e+02 0 2 0 +P 591 211 2.4410696810169960e-01 1.3645749729262360e+00 -7.8972249366110239e+00 8.0191829105553794e+00 1.3957000000000000e-01 1 0 0 0 0 +P 592 -211 2.4805451902234124e-01 3.0548024721188094e-01 -2.3958669644380710e+00 2.4319760529309771e+00 1.3957000000000000e-01 1 0 0 0 0 +V -209 0 9.0037533931825553e-01 -4.1316775008103196e-01 -2.4225397489886213e+00 2.6310406502189263e+00 0 2 0 +P 593 -321 2.2771576165304452e+00 -1.0470309598375531e+00 -5.5075471687666786e+00 6.0711150061229135e+00 4.9359999999999998e-01 1 0 0 0 0 +P 594 211 1.0488802059780338e+00 -5.0742444238384699e-01 -1.7288911768918163e+00 2.0895391208722200e+00 1.3957000000000000e-01 1 0 0 0 0 +V -210 0 9.0046542976216415e-01 -4.1320822067561436e-01 -2.4228350260089080e+00 2.6313520343024166e+00 0 2 0 +P 595 22 2.6060905464746402e+00 -1.1260542878061872e+00 -8.4399332612949678e+00 8.9046156374446763e+00 0 1 0 0 0 0 +P 596 22 3.1152346667941438e-01 -1.8460163474866495e-01 -1.1227277133266274e+00 1.1796788343085065e+00 0 1 0 0 0 0 +V -211 0 1.1569229356777967e-05 -1.4660522105994798e-05 -9.0397577689810670e-06 2.2901056712458870e-05 0 2 0 +P 597 22 1.5315840728112597e-02 -6.0222579655507182e-02 -9.2350984073855877e-02 1.1131054908220694e-01 0 1 0 0 0 0 +P 598 22 1.4578394081241561e-01 -1.4392298922477043e-01 -3.3526285435798248e-02 2.0758322678220872e-01 0 1 0 0 0 0 +V -212 0 4.5366605022425090e-05 4.9185550274341878e-05 5.8915367630974652e-04 5.9316907338555658e-04 0 2 0 +P 599 22 6.2412753514439541e-02 9.0724804124025227e-02 5.9158564124042290e-01 6.0174738288291663e-01 0 1 0 0 0 0 +P 600 22 3.1015455264095260e-01 3.1320509008833647e-01 4.2467618168902384e+00 4.2695759981967800e+00 0 1 0 0 0 0 +V -213 0 1.0618662664215143e-05 1.7698716751283111e-05 2.4478578143780885e-04 2.4567696110588694e-04 0 2 0 +P 601 22 2.7037667242088931e-01 3.4218773845439160e-01 4.6801937946366561e+00 4.7004691200659314e+00 0 1 0 0 0 0 +P 602 22 1.6002738768978980e-01 3.7519069133342203e-01 5.2416577152761965e+00 5.2575043912286512e+00 0 1 0 0 0 0 +V -214 0 3.4213984360743327e-05 3.5522065787995497e-05 6.3620750774059183e-04 6.3882952712151966e-04 0 2 0 +P 603 22 1.6633397364096600e-01 9.3159794517856359e-02 2.2056974914033418e+00 2.2139212184910280e+00 0 1 0 0 0 0 +P 604 22 -1.3305729582002584e-02 6.5719080727114673e-02 6.3985585719697713e-01 6.4335958685684069e-01 0 1 0 0 0 0 +V -215 0 2.3355944705345006e+01 2.3905344191100344e+01 -3.5280411502535122e+02 3.5515188864392519e+02 0 2 0 +P 605 -211 -2.6117036784758577e-02 1.4271093127076998e-01 -1.2708986814665231e+00 1.2867446339378819e+00 1.3957000000000000e-01 1 0 0 0 0 +P 606 211 5.2394465015238212e-01 3.6682702985754118e-01 -6.2490553510138218e+00 6.2832517561523735e+00 1.3957000000000000e-01 1 0 0 0 0 +V -216 0 -3.8117306469070869e+00 2.4304278506338637e+00 -3.6687500677897781e+01 3.6965955593079201e+01 0 1 0 +P 607 130 -1.8715297405296983e+01 1.1577069668267237e+01 -1.8242722485100242e+02 1.8375045834320991e+02 4.9767000000000000e-01 1 0 0 0 0 +V -217 0 -8.5683490912819821e+01 5.8437280409922408e+01 -1.2127797744938878e+03 1.2209404983857619e+03 0 2 0 +P 608 111 -3.5967176370115622e-01 3.2878999327079506e-01 -3.3312469013489321e+00 3.3694053118355725e+00 1.3497999999999999e-01 2 0 0 -220 0 +P 609 111 -8.7232309329445451e-02 -2.3995471551345536e-02 -2.9943149441869452e+00 2.9987208679413939e+00 1.3497999999999999e-01 2 0 0 -221 0 +V -218 0 -1.6982282479171256e+00 1.7527626680229260e+00 -2.0345296697419474e+01 2.0511180885320400e+01 0 2 0 +P 610 111 -1.6065970337379756e-01 2.2472617477739559e-01 -1.4854185479765942e+00 1.5169051575464865e+00 1.3497999999999999e-01 2 0 0 -222 0 +P 611 111 -7.7192852378523358e-01 7.3780982779285698e-01 -9.6872752294012336e+00 9.7468845257544565e+00 1.3497999999999999e-01 2 0 0 -223 0 +V -219 0 1.5843923112336528e-01 -6.6444617855219837e-02 -8.9283819735022774e-01 9.2728610338778894e-01 0 3 0 +P 612 -211 3.2073970588280426e-01 -2.2344149637641733e-01 -1.7720504229152780e+00 1.8200116888325020e+00 1.3957000000000000e-01 1 0 0 0 0 +P 613 211 1.0327478319521827e-01 -2.9696360012404494e-01 -1.9981974224513948e+00 2.0275911285646449e+00 1.3957000000000000e-01 1 0 0 0 0 +P 614 111 6.3026061270601327e-02 1.6289134720296952e-01 -7.6316722630094946e-01 7.9444930051751483e-01 1.3497999999999999e-01 2 0 0 -224 0 +V -220 0 -8.5683537123124310e+01 5.8437322652564823e+01 -1.2127802024894916e+03 1.2209409312839239e+03 0 2 0 +P 615 22 -3.2562028377162922e-01 2.7551611057831837e-01 -3.1161850712685530e+00 3.1452419771440030e+00 0 1 0 0 0 0 +P 616 22 -3.4051479929526993e-02 5.3273882692476640e-02 -2.1506183008037907e-01 2.2416333469156946e-01 0 1 0 0 0 0 +V -221 0 -8.5683519961278023e+01 5.8437272419403094e+01 -1.2127807716041691e+03 1.2209414969632207e+03 0 2 0 +P 617 22 -1.0095930423421715e-01 2.7455429715276092e-02 -2.2937984531900248e+00 2.2961833388449753e+00 0 1 0 0 0 0 +P 618 22 1.3726994904771693e-02 -5.1450901266621621e-02 -7.0051649099692037e-01 7.0253752909641898e-01 0 1 0 0 0 0 +V -222 0 -1.6982374833223159e+00 1.7527755862422265e+00 -2.0345382085615018e+01 2.0511268083500596e+01 0 2 0 +P 619 22 -7.3037469158247367e-02 2.0430474030481502e-01 -1.0086454152325899e+00 1.0317172444433522e+00 0 1 0 0 0 0 +P 620 22 -8.7622234215550196e-02 2.0421434472580581e-02 -4.7677313274400424e-01 4.8518791310313425e-01 0 1 0 0 0 0 +V -223 0 -1.6983640114226690e+00 1.7528924308773342e+00 -2.0347000454184229e+01 2.0512895125914664e+01 0 2 0 +P 621 22 -6.7157134859009704e-01 5.7128422133885581e-01 -7.8635746548436938e+00 7.9128490501271402e+00 0 1 0 0 0 0 +P 622 22 -1.0035717519513651e-01 1.6652560645400125e-01 -1.8237005745575405e+00 1.8340354756273183e+00 0 1 0 0 0 0 +V -224 0 1.5844801754335897e-01 -6.6421909284177794e-02 -8.9294458997005066e-01 9.2739685702013275e-01 0 2 0 +P 623 22 -8.7214544347417808e-03 -2.0043855121139119e-02 -1.1849558188276470e-01 1.2049490786464623e-01 0 1 0 0 0 0 +P 624 22 7.1747515705343115e-02 1.8293520232410862e-01 -6.4467164441818470e-01 6.7395439265287005e-01 0 1 0 0 0 0 +BlockType GenEvent +E 3 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 102 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 21 5.4969932515599695e-01 2.2550476873687056e-01 5.5705531929900893e+01 5.5708700481541165e+01 0 3 0 0 -3 0 +P 14 2101 -9.4236956683619111e-01 2.1652326170818870e-01 6.5343226954385455e+03 6.5343227926610143e+03 5.7933000000000001e-01 2 0 0 -9 0 +P 15 2 3.9267024168019415e-01 -4.4202803044505923e-01 2.0241152885643043e+01 2.0252475128694172e+01 3.3000000000000002e-01 2 0 0 -11 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 1 -2.4852244145458005e+00 -5.1082941165122786e-01 -1.2650126797311423e+03 1.2650152240853247e+03 0 3 0 0 -4 0 +P 29 2203 2.4852244145458005e+00 5.1082941165122786e-01 -5.5694416402834304e+03 5.5694422716067393e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -3 0 0 0 0 0 0 4 0 +P 13 2 -1.0608618276380355e+00 5.3963075851129338e-01 6.2467108078944122e-01 1.3841037287882854e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 16 21 1.2784868462321570e+00 -8.7405515584658322e-01 5.0158545116382854e+01 5.0182448617257258e+01 0 2 0 0 -11 0 +P 17 21 -1.6686180664312625e-01 9.4299371379547992e-01 -4.2196845113635542e+00 4.3269871021549715e+00 0 2 0 0 -11 0 +P 5 -2 5.1478982848448318e-01 -3.7127142663721519e-01 4.3686552602229858e+00 4.4145214715099570e+00 0 3 0 0 -5 0 +V -4 0 0 0 0 0 0 7 0 +P 6 1 2.5722674946760922e+00 4.3788611284604106e-01 -4.6269073817910544e+02 4.6269809541539877e+02 0 3 0 0 -5 0 +P 23 21 -6.2117781148280848e-01 -2.8319314770868491e+00 -4.2435587401747085e+01 4.2534512761940860e+01 0 2 0 0 -11 0 +P 24 21 -1.0853374093767046e-01 2.4951738842432462e-02 -1.2807245422014727e+01 1.2807729598250830e+01 0 2 0 0 -11 0 +P 25 21 -4.7236154263853830e-02 -2.8124786400644658e-01 -7.3009915305624826e+00 7.3065593095945598e+00 0 2 0 0 -11 0 +P 26 21 -3.6487430314729372e+00 1.0613239469355105e+00 -1.4428971573317793e+02 1.4433974435543163e+02 0 2 0 0 -11 0 +P 27 21 -8.5735899903395096e-01 1.3023755707753566e+00 -8.6410163495004923e+01 8.6424230409151221e+01 0 2 0 0 -11 0 +P 28 21 2.0970411268715061e-01 -2.3598056104377471e-01 -5.0430489298734267e+02 5.0430499179922384e+02 0 2 0 0 -11 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 6.1062538570560743e-01 4.7283777698592582e+00 -5.7841992636145454e+00 7.4958242253514973e+00 0 3 0 0 -6 0 +P 8 -24 2.4764319374549677e+00 -4.6617630836504320e+00 -4.5253788365526782e+02 4.5961679266155716e+02 8.0182262397111174e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 6.1062538570560743e-01 4.7283777698592582e+00 -5.7841992636145454e+00 7.4958242253514982e+00 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 -24 2.4764319374549677e+00 -4.6617630836504320e+00 -4.5253788365526782e+02 4.5961679266155716e+02 8.0182262397111174e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 2 0 +P 11 13 1.1665477362123605e+01 3.4513182507826755e+01 -2.8476888728061687e+02 2.8708983516659214e+02 1.0566000000000000e-01 1 0 0 0 0 +P 12 -14 -9.1890454246686382e+00 -3.9174945591477190e+01 -1.6776899637465104e+02 1.7252695749496510e+02 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 1 0 +P 35 92 -2.0032313944742266e+00 7.5615402021948208e-01 6.5349473665193345e+03 6.5357068963898028e+03 9.9614093552669928e+01 2 0 0 -10 0 +V -10 0 0 0 0 0 0 9 0 +P 36 321 -2.7347780861062648e-01 1.7597531166764313e-01 9.6890202910053802e-01 1.1349755610206478e+00 4.9359999999999998e-01 1 0 0 0 0 +P 37 333 -1.1091211096030533e+00 1.4407005271255402e-01 2.4365019278869586e+00 2.8692745467802063e+00 1.0223937423264025e+00 2 0 0 -17 0 +P 38 -321 5.7487835922576980e-01 -1.6335008561432823e-01 3.0727085777785232e+00 3.1689662892385013e+00 4.9359999999999998e-01 1 0 0 0 0 +P 39 323 -4.9346996389094194e-01 1.1818828175705887e-01 1.1352455312350665e+01 1.1390232114301151e+01 7.7567062825092892e-01 2 0 0 -18 0 +P 40 333 4.6705005789470379e-02 -1.1036790308186785e-02 6.0989748896587884e+01 6.0998269072082245e+01 1.0183595401409025e+00 2 0 0 -19 0 +P 41 -313 6.6116839338003747e-02 2.0047724383885190e-01 1.0174249585391416e+02 1.0174747600392061e+02 9.8430077868461274e-01 2 0 0 -20 0 +P 42 -211 6.6195102743584266e-01 2.3352413161979789e-03 1.9139236560226081e+01 1.9151189010327013e+01 1.3957000000000000e-01 1 0 0 0 0 +P 43 213 -1.1330549383455299e+00 2.6772966756529654e-01 8.9903421865118207e+02 8.9903532297395714e+02 7.9382395898092395e-01 2 0 0 -21 0 +P 44 2112 -3.4375880581316148e-01 2.1765097284394738e-02 5.4362110987103097e+03 5.4362111908181760e+03 9.3957000000000002e-01 1 0 0 0 0 +V -11 0 0 0 0 0 5 1 0 +P 18 21 9.3397002995552358e-01 2.9110210203548919e+00 1.9719566949430803e+01 1.9955141294184987e+01 0 2 0 0 -11 0 +P 19 21 -2.1357165232265416e+00 4.1733949000175592e+00 -2.5122523216850832e+00 5.3188271063165358e+00 0 2 0 0 -11 0 +P 20 21 2.1357165232265416e+00 -4.1733949000175592e+00 -7.2379746050422105e+00 8.6236179438975249e+00 0 2 0 0 -11 0 +P 21 21 2.6814323415953143e+00 -1.7234320325764891e+00 -3.0705360378789067e+01 3.0870365293672400e+01 0 2 0 0 -11 0 +P 22 21 -2.6814323415953143e+00 1.7234320325764891e+00 -1.0476850460974710e+02 1.0481698266758141e+02 0 2 0 0 -11 0 +P 45 92 -1.4985589873352057e-01 2.0882523139261866e+00 -6.4263147483284502e+03 6.6115068849940917e+03 1.5538653939405463e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 44 0 +P 46 211 1.3949741497349764e+00 -8.1413890613658435e-01 3.1237954613440834e+01 3.1279994617218282e+01 1.3957000000000000e-01 1 0 0 0 0 +P 47 113 6.8753804353602468e-02 -1.4130704072596839e-01 2.6547465088091574e+01 2.6560329224240288e+01 8.1147466457031847e-01 2 0 0 -22 0 +P 48 -211 -3.3705321336487631e-01 -1.6764450883023393e-01 9.4322808686628328e+00 9.4408215596006979e+00 1.3957000000000000e-01 1 0 0 0 0 +P 49 113 5.9981396172818402e-01 -2.6687872216516484e-01 2.2150499557325571e+00 2.4423648313647601e+00 7.9227433510622125e-01 2 0 0 -23 0 +P 50 323 -3.0748077012799063e-01 -6.1187613112430157e-02 -1.4211926385251549e-02 9.7630268316421653e-01 9.2448721046057525e-01 2 0 0 -24 0 +P 51 -313 1.4293786442054000e-02 4.6772668279335211e-01 -3.8804113875347573e-01 1.1164769507355792e+00 9.3646798879139526e-01 2 0 0 -25 0 +P 52 111 8.0828878413878216e-02 -1.3461691433235596e-02 -7.1537625213290668e-01 7.3259627847649700e-01 1.3497999999999999e-01 2 0 0 -26 0 +P 53 113 -2.3019258837112086e-01 1.4760214205834568e-01 -1.6237023486867372e+00 1.8378775046348748e+00 8.1646150235689630e-01 2 0 0 -27 0 +P 54 223 3.6047327332852880e-01 7.5799280465086738e-01 8.7170208350794642e-01 1.4416890830588578e+00 7.8365095363453574e-01 2 0 0 -28 0 +P 55 113 1.2071093866836292e-01 1.1591242726102904e-01 9.8276244825033521e-01 1.2590091097043403e+00 7.6894413784082705e-01 2 0 0 -29 0 +P 56 -213 8.6853791013771414e-02 1.0081227171470937e+00 7.4151556572422583e+00 7.5162670018422455e+00 6.9705181156703200e-01 2 0 0 -30 0 +P 57 323 1.7595879809624551e-01 4.2346453954444735e-01 1.9254698599629185e+00 2.1644899849972110e+00 8.7595604835439056e-01 2 0 0 -31 0 +P 58 -321 1.9281037659969705e-01 1.9746412913081476e-01 6.1305191305880840e+00 6.1565472217895207e+00 4.9359999999999998e-01 1 0 0 0 0 +P 59 223 -2.6288378130564161e-01 7.8988896286242360e-01 6.4711248501236418e-01 1.3136617569823170e+00 7.8353059121744273e-01 2 0 0 -32 0 +P 60 213 1.3477705105748747e-01 1.0791582261049506e+00 5.7410962076755911e-01 1.3686690060033124e+00 6.0075424332623606e-01 2 0 0 -33 0 +P 61 -211 -1.0477191658271894e+00 1.1109784504404854e+00 -1.2067512533016968e-01 1.5381907679342692e+00 1.3957000000000000e-01 1 0 0 0 0 +P 62 213 -9.0771555535794080e-02 5.8156740475700852e-01 -1.5429989954783372e+00 1.7635958777355596e+00 6.1884117376634729e-01 2 0 0 -34 0 +P 63 221 1.9394945996907104e-01 -2.7378498648517408e-01 -2.6641812525406994e-01 6.9516525503715665e-01 5.4744999999999999e-01 2 0 0 -35 0 +P 64 -213 2.3145858795471871e-01 2.7432639064021358e-01 -1.3070279086378056e+00 1.5830182128523671e+00 8.1779989100299288e-01 2 0 0 -36 0 +P 65 213 -4.5215145872547829e-01 2.8618967307221177e-01 -1.2291118677569723e+00 1.5726626222361686e+00 8.2231762070197112e-01 2 0 0 -37 0 +P 66 2114 9.5337951957865841e-01 -6.6930286811799566e-01 -3.0888059546382411e+00 3.5274937030638558e+00 1.2432179061304942e+00 2 0 0 -38 0 +P 67 211 -1.3638801371095294e-01 -6.4982930487435098e-01 -8.8570463039764313e-01 1.1157205263708860e+00 1.3957000000000000e-01 1 0 0 0 0 +P 68 -2212 8.4949812677802405e-01 -2.0925593127370514e+00 -5.2863706614781849e+00 5.8246473634168812e+00 9.3827000000000005e-01 1 0 0 0 0 +P 69 -211 1.1996322072747415e-01 2.3947821917494630e-01 -1.0577767107781229e+00 1.1000510654288269e+00 1.3957000000000000e-01 1 0 0 0 0 +P 70 323 1.4839074584839513e+00 -9.6300995788224397e-01 -1.5468440231889129e+01 1.5599973376532240e+01 9.7834381311676155e-01 2 0 0 -39 0 +P 71 -321 -2.7807528173586266e-01 3.2958209552231060e-01 -8.8436515986138815e+00 8.8679064484052397e+00 4.9359999999999998e-01 1 0 0 0 0 +P 72 213 4.8061490063831430e-01 -1.4112979134958886e-01 -1.3685006725010053e+01 1.3716801676932008e+01 7.8761086838132732e-01 2 0 0 -40 0 +P 73 111 -6.6907029234828486e-01 1.7831713785343023e-01 -1.8676644255472887e+01 1.8689962875930050e+01 1.3497999999999999e-01 2 0 0 -41 0 +P 74 -213 -3.4452308143729315e-01 -1.7121136884034183e-01 -1.7652850045181019e+01 1.7672257910595317e+01 7.3319537265859602e-01 2 0 0 -42 0 +P 75 2212 -3.9310532187388653e-01 8.2724580957524885e-02 -3.9775536449638281e+01 3.9788629350604467e+01 9.3827000000000005e-01 1 0 0 0 0 +P 76 -2212 -6.6472940215998422e-01 6.9112739079230504e-02 -2.6053725752692522e+01 2.6079179778862152e+01 9.3827000000000005e-01 1 0 0 0 0 +P 77 3224 -4.0748859480073829e-01 -1.6567442175761489e+00 -3.4492491111585458e+01 3.4561985780104671e+01 1.3740704581611196e+00 2 0 0 -43 0 +P 78 311 -2.7836629784373346e-01 5.3322922791229938e-02 -1.9006813991509159e+01 1.9015440690833291e+01 4.9767000000000000e-01 2 0 0 -44 0 +P 79 -2112 -1.8554501644645200e+00 2.6350454241754517e-01 -6.6852567158069846e+01 6.6885429335288151e+01 9.3957000000000002e-01 1 0 0 0 0 +P 80 -211 -4.2046149174458702e-01 -6.9882022956308021e-02 -4.4649768696748026e+01 4.4652021184053616e+01 1.3957000000000000e-01 1 0 0 0 0 +P 81 211 -1.2259199970940475e+00 5.3487296324306122e-01 -3.4837579454291500e+01 3.4863525222574047e+01 1.3957000000000000e-01 1 0 0 0 0 +P 82 311 -1.7383101241416014e-02 2.3283172203271379e-01 -6.0426993477096801e+01 6.0429493865934312e+01 4.9767000000000000e-01 2 0 0 -45 0 +P 83 -323 -5.6275410327378561e-01 -7.3372721057032519e-02 -1.4782442541338469e+02 1.4782894973592141e+02 1.0077477319741224e+00 2 0 0 -46 0 +P 84 211 -1.3376613799881737e-01 -9.1221013772773460e-02 -7.1076645245746004e+00 7.1108782461679887e+00 1.3957000000000000e-01 1 0 0 0 0 +P 85 113 1.7962314176801067e-02 8.3402302003156015e-01 -6.4704726517325719e+02 6.4704829538644378e+02 7.9829647914481627e-01 2 0 0 -47 0 +P 86 -211 2.6669980751781586e-01 -2.7900006105441300e-01 -5.1992006516225081e+02 5.1992022715790301e+02 1.3957000000000000e-01 1 0 0 0 0 +P 87 213 3.4004774827278034e-01 1.9424841399564963e-01 -1.0234108895905553e+03 1.0234111585835141e+03 6.3025058636637177e-01 2 0 0 -48 0 +P 88 2214 5.6694851511787103e-01 9.8756119003734349e-02 -8.8006311174153848e+02 8.8006411796473139e+02 1.1999572706375610e+00 2 0 0 -49 0 +P 89 223 1.2311994476002099e+00 3.3274939646704554e-01 -2.8709726179406398e+03 2.8709730082148681e+03 7.8381066483662754e-01 2 0 0 -50 0 +V -13 0 0 0 0 0 3 1 0 +P 31 21 -9.3397002995552358e-01 -2.9110210203548919e+00 1.0151020105427864e+02 1.0155622709355579e+02 0 2 0 0 -13 0 +P 32 21 3.0018432040494889e+00 -2.3510280488458859e+00 2.9747792961823656e+01 2.9991158390560429e+01 0 2 0 0 -13 0 +P 30 21 -3.0018432040494889e+00 2.3510280488458859e+00 2.3572952493951814e+02 2.3576035994992682e+02 0 2 0 0 -13 0 +P 90 92 -9.3397002995552336e-01 -2.9110210203548919e+00 3.6698751895562049e+02 3.6730774543404306e+02 1.5026458106954815e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 11 0 +P 91 211 -8.2406320068481598e-01 -1.4474846551483079e-02 1.5925371343061592e+01 1.5947295127362915e+01 1.3957000000000000e-01 1 0 0 0 0 +P 92 -211 -1.2971269419881442e+00 8.9201364509882908e-01 8.3237290846445731e+01 8.3252293024801261e+01 1.3957000000000000e-01 1 0 0 0 0 +P 93 -311 -2.0800376351271022e-02 -2.1447848449823942e-01 2.1067216961652552e+01 2.1074196060922706e+01 4.9767000000000000e-01 2 0 0 -51 0 +P 94 313 -3.6169721163227725e-01 5.4167305000773069e-01 5.0328382832671906e+01 5.0338889823024189e+01 7.9591173918767333e-01 2 0 0 -52 0 +P 95 213 -8.9383792146133589e-01 -3.4747707496988950e-01 5.5172517965309702e+01 5.5185392155323349e+01 7.0787156810377283e-01 2 0 0 -53 0 +P 96 113 -1.2750819481863768e-01 -1.5623904654280926e-01 3.4052323819224185e+01 3.4060522483400433e+01 7.1955915219897681e-01 2 0 0 -54 0 +P 97 -211 -5.7174412643767436e-01 -9.4910638921379709e-01 3.9932536181067732e+01 3.9948149142624189e+01 1.3957000000000000e-01 1 0 0 0 0 +P 98 111 4.2301035938398712e-01 -2.4488475692500022e-01 3.0794121251526874e+00 3.1208820780762889e+00 1.3497999999999999e-01 2 0 0 -55 0 +P 99 -2112 1.1392327237977038e+00 -1.4946995580917366e+00 2.4907483094827445e+01 2.4995949349283496e+01 9.3957000000000002e-01 1 0 0 0 0 +P 100 2112 5.3941297703374469e-01 -8.0160103815638795e-01 1.3991639212989071e+01 1.4056396772840444e+01 9.3957000000000002e-01 1 0 0 0 0 +P 101 223 1.0611518832031974e+00 -1.2174652051210852e-01 2.5293344573217894e+01 2.5327779416383844e+01 7.7605729877600649e-01 2 0 0 -56 0 +V -15 0 0 0 0 0 2 1 0 +P 33 21 1.0190408349472695e+00 -2.8843457133167565e+00 -9.8491291741771736e+00 1.0313255543563667e+01 0 2 0 0 -15 0 +P 34 21 -1.0190408349472695e+00 2.8843457133167565e+00 -7.4489250551266313e+00 8.0526007534281785e+00 0 2 0 0 -15 0 +P 102 92 0 0 -1.7298054229303805e+01 1.8365856296991847e+01 6.1710612865065464e+00 2 0 0 -16 0 +V -16 0 0 0 0 0 0 7 0 +P 103 113 2.5426454423078015e-01 -1.2821686593910947e-01 -3.6908260328296461e+00 3.7716166626566090e+00 7.2236100548951021e-01 2 0 0 -57 0 +P 104 223 -7.8492867790755053e-02 4.3394394227840256e-02 -9.8224104521300815e-01 1.2585985464264791e+00 7.8181111940243286e-01 2 0 0 -58 0 +P 105 213 1.7802555916136972e-01 3.2682068270571213e-01 -2.6219971626667316e+00 2.7700960092936304e+00 8.1243948778549657e-01 2 0 0 -59 0 +P 106 111 1.9399017214205891e-01 -8.3030313783991927e-01 -1.7838453636238722e+00 1.9817566372581945e+00 1.3497999999999999e-01 2 0 0 -60 0 +P 107 -211 -2.8807161077252330e-01 5.2270945259205381e-01 -3.1028538235201237e+00 3.1628139464400387e+00 1.3957000000000000e-01 1 0 0 0 0 +P 108 223 2.5327277586763380e-01 -1.3809611761063298e-01 -2.5208029155085732e+00 2.6552334264970665e+00 7.8268740481497745e-01 2 0 0 -61 0 +P 109 113 -5.1298857283856425e-01 2.0369159186405553e-01 -2.5954878859418495e+00 2.7657410684198265e+00 7.7981969134800333e-01 2 0 0 -62 0 +V -17 0 0 0 0 0 0 2 0 +P 110 321 -5.3517797822608215e-01 -4.1546823888825380e-03 1.3908700471651065e+00 1.5699022829032940e+00 4.9359999999999998e-01 1 0 0 0 0 +P 111 -321 -5.7394313137697117e-01 1.4822473510143655e-01 1.0456318807218525e+00 1.2993722638769123e+00 4.9359999999999998e-01 1 0 0 0 0 +V -18 0 0 0 0 0 0 2 0 +P 112 311 -1.6481661079814763e-01 7.9549466215372497e-02 8.2576997208588896e+00 8.2747068069837457e+00 4.9767000000000000e-01 2 0 0 -63 0 +P 113 211 -3.2865335309279431e-01 3.8638815541686355e-02 3.0947555914917761e+00 3.1155253073174056e+00 1.3957000000000000e-01 1 0 0 0 0 +V -19 0 0 0 0 0 0 2 0 +P 114 321 -8.9052577900346819e-02 3.8384145837852435e-02 3.2135901794444422e+01 3.2139838655576021e+01 4.9359999999999998e-01 1 0 0 0 0 +P 115 -321 1.3575758368981719e-01 -4.9420936146039221e-02 2.8853847102143465e+01 2.8858430416506227e+01 4.9359999999999998e-01 1 0 0 0 0 +V -20 0 0 0 0 0 0 2 0 +P 116 -311 -2.0774100376841340e-01 2.8253422511277831e-01 4.5249454551591235e+01 4.5253550076855042e+01 4.9767000000000000e-01 2 0 0 -64 0 +P 117 111 2.7385784310641714e-01 -8.2056981273926410e-02 5.6493041302322936e+01 5.6493925927065568e+01 1.3497999999999999e-01 2 0 0 -65 0 +V -21 0 0 0 0 0 0 2 0 +P 118 211 -1.0330625473694905e+00 4.3248162283071701e-01 6.3795354712657922e+02 6.3795454542604386e+02 1.3957000000000000e-01 1 0 0 0 0 +P 119 111 -9.9992390976039472e-02 -1.6475195526542039e-01 2.6108067152460302e+02 2.6108077754791344e+02 1.3497999999999999e-01 2 0 0 -66 0 +V -22 0 0 0 0 0 0 2 0 +P 120 -211 2.5499953205520359e-01 -1.0027654595046133e-02 2.3322262674548515e+01 2.3324076431034285e+01 1.3957000000000000e-01 1 0 0 0 0 +P 121 211 -1.8624572770160111e-01 -1.3127938613092227e-01 3.2252024135430615e+00 3.2362527932060021e+00 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 122 211 7.6228828054477105e-01 -2.1517928961636448e-01 1.6414979312633347e+00 1.8279444172560420e+00 1.3957000000000000e-01 1 0 0 0 0 +P 123 -211 -1.6247431881658703e-01 -5.1699432548800363e-02 5.7355202446922249e-01 6.1442041410871839e-01 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 124 311 -4.4770508064804587e-01 -2.2677035333779219e-01 -7.6463961108518649e-02 7.1090561865793589e-01 4.9767000000000000e-01 2 0 0 -67 0 +P 125 211 1.4022431052005524e-01 1.6558274022536204e-01 6.2252034723267097e-02 2.6539706450628059e-01 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 2 0 +P 126 -321 -2.5986605631982164e-02 2.9198614472084311e-01 9.5408561624206661e-02 5.8195787305647173e-01 4.9359999999999998e-01 1 0 0 0 0 +P 127 211 4.0280392074036164e-02 1.7574053807250894e-01 -4.8344970037768237e-01 5.3451907767910722e-01 1.3957000000000000e-01 1 0 0 0 0 +V -26 0 4.6370571701477952e-05 -7.7228131835718235e-06 -4.1040289614321631e-04 4.2028182162054536e-04 0 2 0 +P 128 22 -1.6794961432842453e-02 2.2822192504643863e-02 -3.8769689788982341e-02 4.8020954244825338e-02 0 1 0 0 0 0 +P 129 22 9.7623839846720670e-02 -3.6283883937879464e-02 -6.7660656234392436e-01 6.8457532423167167e-01 0 1 0 0 0 0 +V -27 0 0 0 0 0 0 2 0 +P 130 -211 -8.0905401518794953e-02 2.9454613008823682e-01 -1.9743357093526082e-01 3.8956758922826545e-01 1.3957000000000000e-01 1 0 0 0 0 +P 131 211 -1.4928718685232592e-01 -1.4694398802989114e-01 -1.4262687777514764e+00 1.4483099154066095e+00 1.3957000000000000e-01 1 0 0 0 0 +V -28 0 0 0 0 0 0 3 0 +P 132 211 1.9697316487609509e-01 3.5057333972336180e-01 6.7516622935079007e-01 7.9814116317971096e-01 1.3957000000000000e-01 1 0 0 0 0 +P 133 -211 -3.8819295397041619e-02 1.4724962955523235e-01 1.9980284787495695e-01 2.8738537544248732e-01 1.3957000000000000e-01 1 0 0 0 0 +P 134 111 2.0231940384947528e-01 2.6016983537227312e-01 -3.2669937178005843e-03 3.5616254443665946e-01 1.3497999999999999e-01 2 0 0 -68 0 +V -29 0 0 0 0 0 0 2 0 +P 135 -211 1.1488257758393901e-01 2.7148426262030395e-01 9.9743688408424791e-01 1.0494102315655771e+00 1.3957000000000000e-01 1 0 0 0 0 +P 136 211 5.8283610844239242e-03 -1.5557183535927488e-01 -1.4674435833912692e-02 2.0959887813876332e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 137 -211 -8.4860032327779208e-03 1.2798646073174491e-01 3.8322629520223433e-01 4.2754499718268074e-01 1.3957000000000000e-01 1 0 0 0 0 +P 138 111 9.5339794246549328e-02 8.8013625641534876e-01 7.0319293620400245e+00 7.0887220046595649e+00 1.3497999999999999e-01 2 0 0 -69 0 +V -31 0 0 0 0 0 0 2 0 +P 139 311 6.6329685576106023e-02 5.2124166663591132e-01 1.7596312276628496e+00 1.9026481515225586e+00 4.9767000000000000e-01 2 0 0 -70 0 +P 140 211 1.0962911252013950e-01 -9.7777127091463953e-02 1.6583863230006918e-01 2.6184183347465939e-01 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 0 0 0 0 0 3 0 +P 141 211 -1.8053057003619555e-01 4.4658535224822332e-01 1.2486955297486922e-01 5.1681907251997494e-01 1.3957000000000000e-01 1 0 0 0 0 +P 142 -211 -2.2545152457920553e-01 2.9947362949028894e-01 3.5940892111084544e-01 5.3774287737657378e-01 1.3957000000000000e-01 1 0 0 0 0 +P 143 111 1.4309831330975950e-01 4.3829981123911323e-02 1.6283401092664959e-01 2.5909980708576519e-01 1.3497999999999999e-01 2 0 0 -71 0 +V -33 0 0 0 0 0 0 2 0 +P 144 211 6.6134181730062705e-02 1.0799589201098942e+00 4.9977866601512050e-01 1.1999764576948531e+00 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 6.8642869327424763e-02 -8.0069400494364870e-04 7.4330954752438616e-02 1.6869254830845534e-01 1.3497999999999999e-01 2 0 0 -72 0 +V -34 0 0 0 0 0 0 2 0 +P 146 211 -4.0874140835117249e-02 -5.3240879661743137e-02 -5.8665739429170261e-01 6.0675528002094503e-01 1.3957000000000000e-01 1 0 0 0 0 +P 147 111 -4.9897414700676830e-02 6.3480828441875170e-01 -9.5634160118663458e-01 1.1568405977146143e+00 1.3497999999999999e-01 2 0 0 -73 0 +V -35 0 0 0 0 0 0 3 0 +P 148 111 -8.0692078035366516e-02 -5.7579150443156604e-02 -3.2542865426087308e-02 1.7060248683287640e-01 1.3497999999999999e-01 2 0 0 -74 0 +P 149 111 2.0056546976702694e-01 -6.3971292668162691e-02 -9.6007889896875975e-02 2.6787300959774685e-01 1.3497999999999999e-01 2 0 0 -75 0 +P 150 111 7.4076068237410586e-02 -1.5223454337385475e-01 -1.3786736993110663e-01 2.5668975860653298e-01 1.3497999999999999e-01 2 0 0 -76 0 +V -36 0 0 0 0 0 0 2 0 +P 151 -211 4.3518580826092879e-01 4.0714118730605248e-01 -8.3812731381468930e-01 1.0378284122025792e+00 1.3957000000000000e-01 1 0 0 0 0 +P 152 111 -2.0372722030621004e-01 -1.3281479666583887e-01 -4.6890059482311636e-01 5.4518980064978795e-01 1.3497999999999999e-01 2 0 0 -77 0 +V -37 0 0 0 0 0 0 2 0 +P 153 211 -1.1547174774767054e-01 -2.6117390082266756e-01 -4.8927985529292894e-01 5.8345530479574848e-01 1.3957000000000000e-01 1 0 0 0 0 +P 154 111 -3.3667971097780769e-01 5.4736357389487933e-01 -7.3983201246404340e-01 9.8920731744041990e-01 1.3497999999999999e-01 2 0 0 -78 0 +V -38 0 0 0 0 0 0 2 0 +P 155 2212 6.0433317807337594e-01 -7.1283905966837302e-01 -2.4506791222575126e+00 2.7855945268969080e+00 9.3827000000000005e-01 1 0 0 0 0 +P 156 -211 3.4904634150528252e-01 4.3536191550377301e-02 -6.3812683238072887e-01 7.4189917616694812e-01 1.3957000000000000e-01 1 0 0 0 0 +V -39 0 0 0 0 0 0 2 0 +P 157 311 5.3882428291032602e-01 -2.9867949202148447e-01 -4.4165576592752496e+00 4.4870032352797464e+00 4.9767000000000000e-01 2 0 0 -79 0 +P 158 211 9.4508317557362542e-01 -6.6433046586075961e-01 -1.1051882572613879e+01 1.1112970141252495e+01 1.3957000000000000e-01 1 0 0 0 0 +V -40 0 0 0 0 0 0 2 0 +P 160 111 4.8049692547880568e-01 2.1718022336522114e-01 -7.3403587397017889e+00 7.3605115700426689e+00 1.3497999999999999e-01 2 0 0 -80 0 +P 159 211 1.1797515950852807e-04 -3.5831001471481000e-01 -6.3446479853082618e+00 6.3562901068893360e+00 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 -1.1583593514972181e-04 3.0871991557086950e-05 -3.2334817096694663e-03 3.2357875583571205e-03 0 2 0 +P 161 22 -5.0398876263600001e-01 7.9556733552219663e-02 -1.2778281559309137e+01 1.2788464081182569e+01 0 1 0 0 0 0 +P 162 22 -1.6508152971228482e-01 9.8760404301210553e-02 -5.8983626961637485e+00 5.9014987947474795e+00 0 1 0 0 0 0 +V -42 0 0 0 0 0 0 2 0 +P 163 -211 1.3279309858393523e-01 1.2066647820448219e-01 -7.1877811768646929e+00 7.1913748641955930e+00 1.3957000000000000e-01 1 0 0 0 0 +P 164 111 -4.7731618002122833e-01 -2.9187784704482400e-01 -1.0465068868316324e+01 1.0480883046399720e+01 1.3497999999999999e-01 2 0 0 -81 0 +V -43 0 0 0 0 0 0 2 0 +P 165 3122 -4.6866358421255944e-01 -1.6184680144817571e+00 -3.0858384900186707e+01 3.0924484551557821e+01 1.1156800000000000e+00 2 0 0 -82 0 +P 166 211 6.1174989411821111e-02 -3.8276203094391698e-02 -3.6341062113987506e+00 3.6375012285468498e+00 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 1 0 +P 167 130 -2.7836629784373346e-01 5.3322922791229938e-02 -1.9006813991509159e+01 1.9015440690833294e+01 4.9767000000000000e-01 1 0 0 0 0 +V -45 0 0 0 0 0 0 1 0 +P 168 310 -1.7383101241416014e-02 2.3283172203271379e-01 -6.0426993477096801e+01 6.0429493865934312e+01 4.9767000000000000e-01 2 0 0 -83 0 +V -46 0 0 0 0 0 0 2 0 +P 169 -311 -5.4517775501888455e-01 2.5850199343546754e-01 -8.9865234716413994e+01 8.9868638178901193e+01 4.9767000000000000e-01 2 0 0 -84 0 +P 170 -211 -1.7576348254901095e-02 -3.3187471449250006e-01 -5.7959190696970708e+01 5.7960311557020233e+01 1.3957000000000000e-01 1 0 0 0 0 +V -47 0 0 0 0 0 0 2 0 +P 171 211 9.2955499979074457e-02 -1.0866822487967489e-02 -3.2945012188350809e+01 3.2945440757232113e+01 1.3957000000000000e-01 1 0 0 0 0 +P 172 -211 -7.4993185802273390e-02 8.4488984251952770e-01 -6.1410225298490639e+02 6.1410285462921172e+02 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 173 211 8.5949161239965377e-02 3.4709531138046762e-01 -6.9899167123526638e+02 6.9899177663150601e+02 1.3957000000000000e-01 1 0 0 0 0 +P 174 111 2.5409858703281496e-01 -1.5284689738481802e-01 -3.2441921835528876e+02 3.2441938195200805e+02 1.3497999999999999e-01 2 0 0 -85 0 +V -49 0 0 0 0 0 0 2 0 +P 175 2212 3.8253495145818550e-01 1.6289928814342811e-01 -5.7652974840092349e+02 5.7653066181339580e+02 9.3827000000000005e-01 1 0 0 0 0 +P 176 111 1.8441356365968553e-01 -6.4143169139693756e-02 -3.0353336334061498e+02 3.0353345615133566e+02 1.3497999999999999e-01 2 0 0 -86 0 +V -50 0 0 0 0 0 0 3 0 +P 177 211 5.3333410812648374e-01 7.4617552270279233e-02 -1.0059322469405662e+03 1.0059324007743916e+03 1.3957000000000000e-01 1 0 0 0 0 +P 178 -211 3.9966223398528372e-01 -1.6207176715030084e-02 -1.3243593232465137e+03 1.3243593910046934e+03 1.3957000000000000e-01 1 0 0 0 0 +P 179 111 2.9820310548844248e-01 2.7433902091179635e-01 -5.4068104775355994e+02 5.4068121643578320e+02 1.3497999999999999e-01 2 0 0 -87 0 +V -51 0 0 0 0 0 0 1 0 +P 180 130 -2.0800376351271022e-02 -2.1447848449823942e-01 2.1067216961652552e+01 2.1074196060922702e+01 4.9767000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 181 321 -3.8962671843311852e-01 2.0566888018468360e-01 3.0940913755190643e+01 3.0947986907618706e+01 4.9359999999999998e-01 1 0 0 0 0 +P 182 -211 2.7929506800841261e-02 3.3600416982304704e-01 1.9387469077481260e+01 1.9390902915405476e+01 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 0 0 0 0 0 2 0 +P 183 211 -8.9120775201636582e-01 -1.8208840020122474e-01 3.6286732442122407e+01 3.6298399944816033e+01 1.3957000000000000e-01 1 0 0 0 0 +P 184 111 -2.6301694449702272e-03 -1.6538867476866476e-01 1.8885785523187302e+01 1.8886992210507319e+01 1.3497999999999999e-01 2 0 0 -88 0 +V -54 0 0 0 0 0 0 2 0 +P 185 -211 -1.1987217934407324e-02 -3.3403146114971544e-01 2.8599290261216566e+01 2.8601583941115017e+01 1.3957000000000000e-01 1 0 0 0 0 +P 186 211 -1.1552097688423035e-01 1.7779241460690620e-01 5.4530335580076184e+00 5.4589385422854200e+00 1.3957000000000000e-01 1 0 0 0 0 +V -55 0 4.2254465579185501e-05 -2.4461515664588543e-05 3.0760219167180113e-04 3.1174462142442600e-04 0 2 0 +P 187 22 2.8751370315703634e-01 -9.5574760408875581e-02 1.6953251489157042e+00 1.7221864082834764e+00 0 1 0 0 0 0 +P 188 22 1.3549665622695076e-01 -1.4930999651612464e-01 1.3840869762369830e+00 1.3986956697928123e+00 0 1 0 0 0 0 +V -56 0 0 0 0 0 0 3 0 +P 189 211 5.0375258570605386e-01 -1.9695435251561838e-01 8.7561249240525978e+00 8.7739250712036227e+00 1.3957000000000000e-01 1 0 0 0 0 +P 190 -211 2.5412965478975740e-02 -9.0827288189110802e-02 3.8528483651797676e+00 3.8565289737097310e+00 1.3957000000000000e-01 1 0 0 0 0 +P 191 111 5.3198633201816781e-01 1.6603512019262065e-01 1.2684371283985527e+01 1.2697325371470487e+01 1.3497999999999999e-01 2 0 0 -89 0 +V -57 0 0 0 0 0 0 2 0 +P 192 -211 -1.7141939419169341e-01 -5.6722519524079404e-02 -2.2381290066936166e+00 2.2497340483776216e+00 1.3957000000000000e-01 1 0 0 0 0 +P 193 211 4.2568393842247360e-01 -7.1494346415030066e-02 -1.4526970261360295e+00 1.5218826142789872e+00 1.3957000000000000e-01 1 0 0 0 0 +V -58 0 0 0 0 0 0 3 0 +P 194 -211 7.6459071874841397e-02 -8.7541130858253866e-02 -7.8342648501977918e-01 8.0420537277137760e-01 1.3957000000000000e-01 1 0 0 0 0 +P 195 211 -1.9416584560678463e-01 1.2013959035912780e-01 -1.3157418602565010e-01 2.9820370235825233e-01 1.3957000000000000e-01 1 0 0 0 0 +P 196 111 3.9213905941188162e-02 1.0795934726966315e-02 -6.7240374167578831e-02 1.5618947129684915e-01 1.3497999999999999e-01 2 0 0 -90 0 +V -59 0 0 0 0 0 0 2 0 +P 197 211 -2.8016474706981570e-01 2.5051985090551032e-01 -1.3859234437513488e+00 1.4427460130036787e+00 1.3957000000000000e-01 1 0 0 0 0 +P 198 111 4.5819030623118540e-01 7.6300831800201821e-02 -1.2360737189153828e+00 1.3273499962899518e+00 1.3497999999999999e-01 2 0 0 -91 0 +V -60 0 9.8262426864790465e-05 -4.2057595215624915e-04 -9.0357657115137360e-04 1.0038251653789662e-03 0 2 0 +P 199 22 1.0753811039473163e-01 -5.8421054425128616e-01 -1.1054519305528825e+00 1.2549463637800418e+00 0 1 0 0 0 0 +P 200 22 8.6452061747327294e-02 -2.4609259358863311e-01 -6.7839343307098976e-01 7.2681027347815286e-01 0 1 0 0 0 0 +V -61 0 0 0 0 0 0 3 0 +P 201 -211 -4.1923779688965344e-02 9.4741716713696952e-02 -3.1625212825159438e-01 3.6087226232135133e-01 1.3957000000000000e-01 1 0 0 0 0 +P 202 211 1.2543443318519545e-01 2.9266802084010526e-02 -2.6988866705562498e-01 3.3001518182922718e-01 1.3957000000000000e-01 1 0 0 0 0 +P 203 111 1.6976212237140365e-01 -2.6210463640834042e-01 -1.9346621202013536e+00 1.9643459823464879e+00 1.3497999999999999e-01 2 0 0 -92 0 +V -62 0 0 0 0 0 0 2 0 +P 204 211 -6.2798117767117945e-01 1.3395368585235701e-01 -1.3083434892807686e+00 1.4640855235627768e+00 1.3957000000000000e-01 1 0 0 0 0 +P 205 -211 1.1499260483261517e-01 6.9737906011698547e-02 -1.2871443966610814e+00 1.3016555448570508e+00 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 1 0 +P 206 310 -1.6481661079814763e-01 7.9549466215372497e-02 8.2576997208588896e+00 8.2747068069837439e+00 4.9767000000000000e-01 2 0 0 -93 0 +V -64 0 0 0 0 0 0 1 0 +P 207 310 -2.0774100376841340e-01 2.8253422511277831e-01 4.5249454551591235e+01 4.5253550076855049e+01 4.9767000000000000e-01 2 0 0 -94 0 +V -65 0 7.3754023811518823e-05 -2.2099175550823247e-05 1.5214423169825254e-02 1.5214661412533925e-02 0 2 0 +P 208 22 3.2723447556854225e-02 -6.3493276229220436e-02 1.6358826635059781e+01 1.6358982581324781e+01 0 1 0 0 0 0 +P 209 22 2.4113439554956292e-01 -1.8563705044705985e-02 4.0134214667263159e+01 4.0134943345740787e+01 0 1 0 0 0 0 +V -66 0 -2.4091747932102252e-05 -3.9694646150891612e-05 6.2903683639507407e-02 6.2903709184319812e-02 0 2 0 +P 210 22 -3.5501503450890148e-02 -4.3221742365836700e-03 1.1206888944609352e+02 1.1206889515257420e+02 0 1 0 0 0 0 +P 211 22 -6.4490887525149324e-02 -1.6042978102883673e-01 1.4901178207850950e+02 1.4901188239533926e+02 0 1 0 0 0 0 +V -67 0 0 0 0 0 0 1 0 +P 212 310 -4.4770508064804587e-01 -2.2677035333779219e-01 -7.6463961108518649e-02 7.1090561865793789e-01 4.9767000000000000e-01 2 0 0 -95 0 +V -68 0 5.6216918348570056e-07 7.2291367578196445e-07 -9.0777412143587177e-09 9.8964114654623947e-07 0 2 0 +P 213 22 5.9588311079569842e-02 3.1727756685069239e-04 -3.4800397785193422e-03 5.9690687374414804e-02 0 1 0 0 0 0 +P 214 22 1.4273109276990548e-01 2.5985255780542243e-01 2.1304606071875768e-04 2.9647185706224466e-01 0 1 0 0 0 0 +V -69 0 6.8125667432656671e-05 6.2890706209118587e-04 5.0247106668746657e-03 5.0652922174674346e-03 0 2 0 +P 215 22 9.8238845130149910e-02 6.3480873157616224e-01 5.4797247598160750e+00 5.5172471795016902e+00 0 1 0 0 0 0 +P 216 22 -2.8990508836005870e-03 2.4532752483918649e-01 1.5522046022239493e+00 1.5714748251578743e+00 0 1 0 0 0 0 +V -70 0 0 0 0 0 0 1 0 +P 217 310 6.6329685576106023e-02 5.2124166663591132e-01 1.7596312276628496e+00 1.9026481515225759e+00 4.9767000000000000e-01 2 0 0 -96 0 +V -71 0 2.0742689619148677e-05 6.3533362024919996e-06 2.3603460236328297e-05 3.7557583695116871e-05 0 2 0 +P 219 22 -2.8722140438245738e-03 5.3180710552864677e-02 2.8023708625927783e-02 6.0181108610361057e-02 0 1 0 0 0 0 +P 218 22 1.4597052735358410e-01 -9.3507294289533575e-03 1.3481030230072180e-01 1.9891869847540525e-01 0 1 0 0 0 0 +V -72 0 3.7626593470519508e-05 -4.3890047303515130e-07 4.0744517881454282e-05 9.2468831779623026e-05 0 2 0 +P 220 22 2.4209710898237435e-02 6.4530876697482267e-02 1.6755104325429430e-02 7.0930090018820904e-02 0 1 0 0 0 0 +P 221 22 4.4433158429187325e-02 -6.5331570702425915e-02 5.7575850427009183e-02 9.7762458289636103e-02 0 1 0 0 0 0 +V -73 0 -5.9090765758585417e-06 7.5176856078054691e-05 -1.1325427956519639e-04 1.3699827373751485e-04 0 2 0 +P 222 22 -6.9815720431071801e-02 2.1207143051907135e-01 -3.9649262793632423e-01 4.5503288943720027e-01 0 1 0 0 0 0 +P 223 22 1.9918305730394971e-02 4.2273685389968030e-01 -5.5984897325031024e-01 7.0180770827741401e-01 0 1 0 0 0 0 +V -74 0 -3.8400536521541616e-05 -2.7401330134324772e-05 -1.5486817575355602e-05 8.1187982585110302e-05 0 2 0 +P 224 22 -1.1199399900954692e-01 -6.3644204944269311e-02 -5.7287936449814218e-03 1.2894207891051448e-01 0 1 0 0 0 0 +P 225 22 3.1301920974180393e-02 6.0650545011126985e-03 -2.6814071781105887e-02 4.1660407922362044e-02 0 1 0 0 0 0 +V -75 0 4.3814671092180448e-07 -1.3974893838171328e-07 -2.0973471270863068e-07 5.8518387156228786e-07 0 2 0 +P 226 22 1.7806955474676234e-01 -9.4868783602879855e-02 -1.0662617316560713e-01 2.2820603242233170e-01 0 1 0 0 0 0 +P 227 22 2.2495915020264604e-02 3.0897490934717161e-02 1.0618283268731158e-02 3.9666977175415293e-02 0 1 0 0 0 0 +V -76 0 2.7804071585685933e-06 -5.7140453624173457e-06 -5.1747808895705093e-06 9.6347181936474378e-06 0 2 0 +P 228 22 2.0833233827278030e-02 -3.0122302260885887e-03 -8.8160895834764164e-02 9.0639068381273363e-02 0 1 0 0 0 0 +P 229 22 5.3242834410132556e-02 -1.4922231314776616e-01 -4.9706474096342455e-02 1.6605069022525973e-01 0 1 0 0 0 0 +V -77 0 -1.6175287979886273e-04 -1.0545068944792832e-04 -3.7229203558581531e-04 4.3286321857002722e-04 0 2 0 +P 230 22 -5.3478825919207371e-02 -1.0851873814833554e-01 -1.5766115696858526e-01 1.9872931783628903e-01 0 1 0 0 0 0 +P 231 22 -1.5024839438700266e-01 -2.4296058517503317e-02 -3.1123943785453106e-01 3.4646048281349889e-01 0 1 0 0 0 0 +V -78 0 -3.6620022303480086e-05 5.9535711926116886e-05 -8.0470143919802894e-05 1.0759422931137554e-04 0 2 0 +P 232 22 -2.1948986096420983e-01 4.4633454790483357e-01 -6.1110621067207616e-01 7.8793472346475779e-01 0 1 0 0 0 0 +P 233 22 -1.1718985001359787e-01 1.0102902599004575e-01 -1.2872580179196724e-01 2.0127259397566213e-01 0 1 0 0 0 0 +V -79 0 0 0 0 0 0 1 0 +P 234 130 5.3882428291032602e-01 -2.9867949202148447e-01 -4.4165576592752496e+00 4.4870032352797464e+00 4.9767000000000000e-01 1 0 0 0 0 +V -80 0 1.6108302389358591e-05 7.2808056107108974e-06 -2.4608007243264460e-04 2.4675568109509100e-04 0 2 0 +P 235 22 2.6570728735577170e-01 1.4441211255928108e-01 -3.3133962149639591e+00 3.3271684204658607e+00 0 1 0 0 0 0 +P 236 22 2.1478963812303389e-01 7.2768110805940062e-02 -4.0269625247378293e+00 4.0333431495768082e+00 0 1 0 0 0 0 +V -81 0 -3.4512069906198131e-05 -2.1104058657373751e-05 -7.5667074252636459e-04 7.5781417751216165e-04 0 2 0 +P 237 22 -1.8517356431284140e-01 -4.7137481113194234e-02 -2.9821525694305429e+00 2.9882679161024384e+00 0 1 0 0 0 0 +P 238 22 -2.9214261570838684e-01 -2.4474036593162976e-01 -7.4829162988857805e+00 7.4926151302972830e+00 0 1 0 0 0 0 +V -82 0 -9.5308150963195587e+01 -3.2913415731351159e+02 -6.2754088553496240e+03 6.2888509826317713e+03 0 2 0 +P 239 2212 -4.7367594868960872e-01 -1.4369308345140306e+00 -2.6150068211133135e+01 2.6210600091706407e+01 9.3827000000000005e-01 1 0 0 0 0 +P 240 -211 5.0123644770492803e-03 -1.8153717996772661e-01 -4.7083166890535697e+00 4.7138844598514140e+00 1.3957000000000000e-01 1 0 0 0 0 +V -83 0 -1.4864983960191469e+00 1.9910370223202563e+01 -5.1673534907541507e+03 5.1675673089874317e+03 0 2 0 +P 241 -211 -1.8400658600957862e-01 -3.3309345305199931e-04 -2.5499791367105406e+01 2.5500837203618424e+01 1.3957000000000000e-01 1 0 0 0 0 +P 242 211 1.6662348476816261e-01 2.3316481548576576e-01 -3.4927202109991391e+01 3.4928656662315888e+01 1.3957000000000000e-01 1 0 0 0 0 +V -84 0 0 0 0 0 0 1 0 +P 243 130 -5.4517775501888455e-01 2.5850199343546754e-01 -8.9865234716413994e+01 8.9868638178901193e+01 4.9767000000000000e-01 1 0 0 0 0 +V -85 0 5.7272233467841676e-06 -3.4450735417619763e-06 -7.3122064282472015e-03 7.3122101156150102e-03 0 2 0 +P 244 22 1.6319053796774280e-01 -5.8337248729609763e-02 -2.3911426643792683e+02 2.3911432924133621e+02 0 1 0 0 0 0 +P 245 22 9.0908049065072161e-02 -9.4509648655208264e-02 -8.5304951917361947e+01 8.5305052710671873e+01 0 1 0 0 0 0 +V -86 0 4.3353964989961207e-06 -1.5079480348632104e-06 -7.1357955165588264e-03 7.1357976984551316e-03 0 2 0 +P 246 22 3.5587885991872119e-02 -7.9942846660418745e-02 -1.1802533908101961e+02 1.1802537152047441e+02 0 1 0 0 0 0 +P 247 22 1.4882567766781341e-01 1.5799677520724986e-02 -1.8550802425959540e+02 1.8550808463086122e+02 0 1 0 0 0 0 +V -87 0 7.0770676303012794e-05 6.5107162497295579e-05 -1.2831644845235862e-01 1.2831648848465474e-01 0 2 0 +P 248 22 1.8114845821850648e-01 2.3989936867935877e-01 -4.1762092695334275e+02 4.1762103514530997e+02 0 1 0 0 0 0 +P 249 22 1.1705464726993600e-01 3.4439652232437577e-02 -1.2306012080021719e+02 1.2306018129047324e+02 0 1 0 0 0 0 +V -88 0 -6.2417076750674925e-07 -3.9248716946618685e-05 4.4818235066635065e-03 4.4821098680430417e-03 0 2 0 +P 250 22 -1.3241355407539917e-02 -1.0246241139417403e-02 2.5096339222582625e-01 2.5152125792467273e-01 0 1 0 0 0 0 +P 251 22 1.0611185962569689e-02 -1.5514243362924734e-01 1.8634822130961478e+01 1.8635470952582644e+01 0 1 0 0 0 0 +V -89 0 1.3582222174720734e-04 4.2390673510491999e-05 3.2384657002777202e-03 3.2417730276224663e-03 0 2 0 +P 252 22 1.8270933871487663e-01 1.0969751742799415e-01 5.7283206751857012e+00 5.7322834896351260e+00 0 1 0 0 0 0 +P 253 22 3.4927699330329121e-01 5.6337602764626502e-02 6.9560506087998260e+00 6.9650418818353623e+00 0 1 0 0 0 0 +V -90 0 3.5279272098553364e-05 9.7126952709604466e-06 -6.0493628454770447e-05 1.4051777614489206e-04 0 2 0 +P 254 22 7.6896925214123460e-02 3.5622213305934604e-02 -7.1477115362458474e-02 1.1086504051655867e-01 0 1 0 0 0 0 +P 255 22 -3.7683019272935298e-02 -2.4826278578968294e-02 4.2367411948796398e-03 4.5324430780290477e-02 0 1 0 0 0 0 +V -91 0 4.0801170434363689e-05 6.7944764440148752e-06 -1.1007054009880686e-04 1.1819855786593737e-04 0 2 0 +P 256 22 1.2083898222827490e-01 -3.9112841475455871e-02 -3.3967101043474301e-01 3.6264068900774049e-01 0 1 0 0 0 0 +P 257 22 3.3735132400291051e-01 1.1541367327565770e-01 -8.9640270848063985e-01 9.6470930728221138e-01 0 1 0 0 0 0 +V -92 0 5.6114899634550859e-06 -8.6638734014096062e-06 -6.3950290668699704e-05 6.4931491257954731e-05 0 3 0 +P 258 22 3.7763112644272664e-02 -1.9003168856709707e-02 -5.6880931194233830e-01 5.7037812585643310e-01 0 1 0 0 0 0 +P 259 11 1.2719536651632049e-01 -2.1827911800405031e-01 -1.2119610200457922e+00 1.2380122005983156e+00 5.1000000000000004e-04 1 0 0 0 0 +P 260 -11 4.8036432108104722e-03 -2.4822349547580416e-02 -1.5389178821322286e-01 1.5595565589173888e-01 5.1000000000000004e-04 1 0 0 0 0 +V -93 0 -1.4381524495815356e+01 6.9413064099863986e+00 7.2054819134743707e+02 7.2203219119746802e+02 0 2 0 +P 261 111 9.2014239650662466e-02 1.3215606270806735e-01 2.2548623593500721e+00 2.2646314722759553e+00 1.3497999999999999e-01 2 0 0 -97 0 +P 262 111 -2.5683085044881010e-01 -5.2606596492694856e-02 6.0028373615088171e+00 6.0100753347077882e+00 1.3497999999999999e-01 2 0 0 -98 0 +V -94 0 -7.7825606900085225e+00 1.0584524547671682e+01 1.6951714868486924e+03 1.6953249167125366e+03 0 2 0 +P 263 111 -2.8943395680254397e-01 1.5615697178674603e-01 3.6631605117101834e+01 3.6633330043429979e+01 1.3497999999999999e-01 2 0 0 -99 0 +P 264 111 8.1692953034130586e-02 1.2637725332603228e-01 8.6178494344894041e+00 8.6202200334250758e+00 1.3497999999999999e-01 2 0 0 -100 0 +V -95 0 -1.3657774741477642e+01 -6.9178987190624293e+00 -2.3326238673673467e+00 2.1687019472789341e+01 0 2 0 +P 265 211 -2.9529816783651242e-01 -9.1672761735730857e-02 1.5454665700808420e-01 3.7278594027166795e-01 1.3957000000000000e-01 1 0 0 0 0 +P 266 -211 -1.5240691281153346e-01 -1.3509759160206133e-01 -2.3101061811660287e-01 3.3811967838627000e-01 1.3957000000000000e-01 1 0 0 0 0 +V -96 0 5.5767429881696557e+00 4.3823979931555911e+01 1.4794297644263381e+02 1.5996728532329485e+02 0 2 0 +P 267 111 1.6009544349417862e-01 1.5482137875335267e-01 1.0998242066687225e+00 1.1302358587132031e+00 1.3497999999999999e-01 2 0 0 -101 0 +P 268 111 -9.3765757918072581e-02 3.6642028788255870e-01 6.5980702099412725e-01 7.7241229280937296e-01 1.3497999999999999e-01 2 0 0 -102 0 +V -97 0 -1.4381499058109947e+01 6.9413429450597066e+00 7.2054881471317537e+02 7.2203281726391674e+02 0 2 0 +P 269 22 1.6608090838720359e-02 -2.6977769960342162e-02 2.3862848367837755e-01 2.4072220914569153e-01 0 1 0 0 0 0 +P 270 22 7.5406148811942117e-02 1.5913383266840953e-01 2.0162338756716944e+00 2.0239092631302644e+00 0 1 0 0 0 0 +V -98 0 -1.4381537586881612e+01 6.9413037285466928e+00 7.2054849732135528e+02 7.2203249754031685e+02 0 2 0 +P 271 22 -7.1650056340312379e-02 -3.1679388923150559e-02 3.2465350796190910e+00 3.2474801519722116e+00 0 1 0 0 0 0 +P 272 22 -1.8518079410849772e-01 -2.0927207569544297e-02 2.7563022818897256e+00 2.7625951827355784e+00 0 1 0 0 0 0 +V -99 0 -7.7826677342413646e+00 1.0584582300754398e+01 1.6951850346787774e+03 1.6953384651805682e+03 0 2 0 +P 273 22 -9.9605722022381674e-02 2.5022940238770892e-02 6.2018655777368492e+00 6.2027158641771596e+00 0 1 0 0 0 0 +P 274 22 -1.8982823478016234e-01 1.3113403154797515e-01 3.0429739539364984e+01 3.0430614179252810e+01 0 1 0 0 0 0 +V -100 0 -7.7825535982837781e+00 1.0584535518418377e+01 1.6951722349599286e+03 1.6953256650295632e+03 0 2 0 +P 275 22 7.7600359093490293e-02 2.3880769340730748e-03 3.6033115788038983e+00 3.6041478677469825e+00 0 1 0 0 0 0 +P 276 22 4.0925939406402977e-03 1.2398917639195919e-01 5.0145378556855054e+00 5.0160721656780911e+00 0 1 0 0 0 0 +V -101 0 5.5767505180503374e+00 4.3823987213377826e+01 1.4794302817143299e+02 1.5996733848246649e+02 0 2 0 +P 277 22 1.4877919418107663e-01 9.9270607473697217e-02 5.7038285808899925e-01 5.9776793735624267e-01 0 1 0 0 0 0 +P 278 22 1.1316249313101989e-02 5.5550771279655430e-02 5.2944134857972314e-01 5.3246792135695076e-01 0 1 0 0 0 0 +V -102 0 5.5767344317322669e+00 4.3824013368626339e+01 1.4794303665221980e+02 1.5996735580848653e+02 0 2 0 +P 279 22 -6.6030914697511434e-02 5.1578189162365749e-02 1.6923379462356794e-01 1.8883979595347436e-01 0 1 0 0 0 0 +P 280 22 -2.7734843220561155e-02 3.1484209872019292e-01 4.9057322637055928e-01 5.8357249685589085e-01 0 1 0 0 0 0 +BlockType GenEvent +E 4 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 189 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 -9.2820880453940977e-02 1.6078548997780676e-01 2.3716619521660218e+03 2.3716619594325907e+03 0 3 0 0 -3 0 +P 31 2103 9.2820880453940977e-02 -1.6078548997780676e-01 4.2732759596864398e+03 4.2732760333322394e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 2.8438240035156620e-01 -3.1515117320208030e-01 -3.8035697500337951e+03 3.8035697737212290e+03 0 3 0 0 -4 0 +P 14 2203 -1.4352353535702972e-01 4.4026544033137993e-01 -2.9147371774374851e+03 2.9147373162806402e+03 7.7132999999999996e-01 2 0 0 -9 0 +P 33 1 -1.4085886499453648e-01 -1.2511426712929963e-01 -8.4457632655431709e+01 8.4458487486809346e+01 3.3000000000000002e-01 2 0 0 -13 0 +V -3 0 0 0 0 0 0 5 0 +P 5 2 1.8330374025472010e-01 6.4045820926453234e-01 1.8525053358893920e+03 1.8525054556696041e+03 0 3 0 0 -5 0 +P 27 21 1.9372450554350890e-01 -5.2219821644400299e-01 1.2126803157754753e+02 1.2126931063898388e+02 0 2 0 0 -11 0 +P 28 21 -2.3795161344271451e-01 7.1609049465699426e-01 1.0167002308049599e+02 1.0167282330965078e+02 0 2 0 0 -11 0 +P 29 21 3.4192681965240401e-01 2.4291397251790178e-01 3.1944822354571826e+01 3.1947575751740445e+01 0 2 0 0 -11 0 +P 30 21 -5.9675894419355358e-01 -9.5050198748863479e-01 1.7993365505285936e+02 1.7993715512908133e+02 0 2 0 0 -11 0 +V -4 0 0 0 0 0 0 15 0 +P 6 -1 -5.7988882832211965e+00 -1.9327729931963271e+00 2.4200413742942017e+00 6.5741400211589776e+00 0 3 0 0 -5 0 +P 11 1 -9.8845705950266671e-01 -4.9594742583225058e+00 1.9044643416753072e+01 1.9707378698059269e+01 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 2.6044264833858743e-01 -3.1030363873699462e+00 1.1727671819750038e+01 1.2134041021282840e+01 0 2 0 0 -9 0 +P 13 21 7.5691010065949327e-01 -5.4011599026484958e-01 5.1524452837099819e+00 5.2356786174330239e+00 0 2 0 0 -9 0 +P 15 2 -1.8311360214351913e-01 -1.4805571719661075e+00 -2.1411903451828903e+03 2.1411908903188796e+03 3.3000000000000002e-01 2 0 0 -11 0 +P 16 21 4.3968109830755170e-01 -2.9544412986812052e-01 -3.1326029880598599e-01 6.1541751428642444e-01 0 2 0 0 -11 0 +P 17 21 2.7322936418785587e-01 -3.3048055802107390e-01 -7.6828223487860681e-01 8.7984616673284832e-01 0 2 0 0 -11 0 +P 18 21 2.9260573411497637e-01 1.3800589535119959e-01 -2.1582422861451325e+00 2.1823550372232328e+00 0 2 0 0 -11 0 +P 19 21 1.0223538075759215e+00 -1.4522275427264191e+00 -2.4692904014076042e+01 2.4756689616992229e+01 0 2 0 0 -11 0 +P 20 21 1.2063407328190996e+00 -7.4888083722587195e-01 -1.1210724096630058e+01 1.1300283856734948e+01 0 2 0 0 -11 0 +P 21 21 -5.4913410279006636e-01 1.0519596533332111e-01 3.4138908785026851e+00 3.4593735537367594e+00 0 2 0 0 -11 0 +P 22 21 6.4314231442077185e-01 3.1223541119268439e+00 7.5129505920112933e+00 8.1613205938051365e+00 0 2 0 0 -11 0 +P 23 21 1.2086144926726743e+00 3.4136643559921347e+00 6.3113339858338602e+00 7.2764544943269689e+00 0 2 0 0 -11 0 +P 24 21 2.4400337609788756e+00 6.9128514496625586e+00 2.4435124802319205e+01 2.5511107463705560e+01 0 2 0 0 -11 0 +P 32 -2 -7.1644398238490137e-01 8.6978994307757240e-01 -1.6189139599034304e+03 1.6189143857217191e+03 3.3000000000000002e-01 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 1.3643288924243656e+01 -1.0581519988970058e+01 9.9183478070503759e+02 9.9198505034811774e+02 0 3 0 0 -6 0 +P 8 24 -1.9258873467210137e+01 9.2892052050382574e+00 8.6309059655865008e+02 8.6709454534264773e+02 8.0438667035438414e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 1.3643288924243656e+01 -1.0581519988970058e+01 9.9183478070503759e+02 9.9198505034811762e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -1.9258873467210137e+01 9.2892052050382574e+00 8.6309059655865008e+02 8.6709454534264773e+02 8.0438667035438414e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 9 0 +P 34 4 -2.2700858926615656e+01 -1.6386334061858157e+01 3.4828459595439756e+02 3.4941129163080990e+02 1.5000000000000000e+00 2 0 0 -15 0 +P 35 21 -7.4503781777991165e+00 -8.5245909374436160e+00 1.2403122509900038e+02 1.2454686501555096e+02 0 2 0 0 -15 0 +P 36 21 -2.0027042250268927e+00 -1.0978633289287578e+00 2.1859513177439908e+01 2.1978499595209318e+01 0 2 0 0 -15 0 +P 40 21 3.3737992516561754e-01 1.9913397179993726e+00 1.8847206960760861e+01 1.8955117232772242e+01 0 2 0 0 -15 0 +P 41 21 9.3276664365375481e+00 2.1890146052654789e+01 2.2925649830527726e+02 2.3048801676129600e+02 0 2 0 0 -15 0 +P 42 -3 4.2852829509391617e+00 8.3218012077022046e+00 8.9256848114117304e+01 8.9747707271978427e+01 5.0000000000000000e-01 2 0 0 -15 0 +P 37 21 -1.0274145350843458e+00 -2.5975390684764665e-01 3.0272901154602945e+00 3.2074192370485028e+00 0 2 0 0 -15 0 +P 38 21 -2.6505880313310659e-01 5.5852304317418111e-01 2.2691371688433564e+00 2.3518477097595722e+00 0 2 0 0 -15 0 +P 39 21 2.3721188780666763e-01 2.7959374185858841e+00 2.6258281663350946e+01 2.6407780888220010e+01 0 2 0 0 -15 0 +V -9 0 0 0 0 0 0 1 0 +P 51 92 -1.1462784586161573e-01 -8.1623611956259214e+00 -2.8788124169172720e+03 2.9518144146174154e+03 6.5236551814627580e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 16 0 +P 52 -213 3.0616585418758002e-01 -2.5300431240125230e+00 1.2105798622634046e+01 1.2400251650786375e+01 8.4913189283512225e-01 2 0 0 -25 0 +P 53 213 -1.5404831881885364e-01 -1.7509696799112910e+00 5.5613068929310039e+00 5.8606722227440304e+00 5.7421149464447840e-01 2 0 0 -26 0 +P 54 223 -5.1151607297610935e-01 -1.4176238804041423e+00 5.9722475655096865e+00 6.2094845467470412e+00 7.8654382798990441e-01 2 0 0 -27 0 +P 55 223 2.1595395219106844e-01 -1.8737275125004771e+00 7.0985598228311808e+00 7.3857993220666733e+00 7.7652377102120052e-01 2 0 0 -28 0 +P 64 -211 4.4026111693685754e-01 6.5311510758350333e-01 -3.0666546764622510e+01 3.0676977677837161e+01 1.3957000000000000e-01 1 0 0 0 0 +P 65 211 4.5884509599108031e-02 -7.3354084743733938e-01 -5.8516434437769988e+02 5.8516482259132022e+02 1.3957000000000000e-01 1 0 0 0 0 +P 66 2214 -4.9851835496356245e-01 6.3248545172766857e-01 -1.2651382944982172e+03 1.2651390770952955e+03 1.1539624265769346e+00 2 0 0 -33 0 +P 67 111 2.6622991607876895e-01 4.8781176567800157e-02 -9.9923848265446202e+02 9.9923852842810425e+02 1.3497999999999999e-01 2 0 0 -34 0 +P 56 113 -4.7677120078934182e-02 -1.0152067643004612e+00 2.4368651745900176e+00 2.7334250167134941e+00 7.0737724080239639e-01 2 0 0 -29 0 +P 57 -211 2.1984336478833474e-01 4.7825007839895524e-03 2.2352079885760445e+00 2.2503307566776294e+00 1.3957000000000000e-01 1 0 0 0 0 +P 58 211 -3.3498969538027201e-01 6.9648415330084867e-02 -1.1066497586449596e-01 3.8574022288587678e-01 1.3957000000000000e-01 1 0 0 0 0 +P 59 113 1.3909780482065315e-01 -3.3069396730450967e-01 -1.7329298988899207e+00 1.9541788674726714e+00 8.2889221994938656e-01 2 0 0 -30 0 +P 60 -211 -2.8599753074680223e-01 6.4799383066966643e-01 -3.4804982825084108e+00 3.5545799571290018e+00 1.3957000000000000e-01 1 0 0 0 0 +P 61 111 4.1381767414316867e-01 -3.0024085245337195e-01 -3.1398849342385469e+00 3.1840990307421961e+00 1.3497999999999999e-01 2 0 0 -31 0 +P 62 211 5.4968392420735113e-01 1.4756230968950473e-01 -1.8166962247609939e+00 1.9088719207253644e+00 1.3957000000000000e-01 1 0 0 0 0 +P 63 113 -8.7881886984997282e-01 -4.1468335965402653e-01 -2.3734060373081363e+01 2.3767575310168922e+01 8.0481639937447114e-01 2 0 0 -32 0 +V -11 0 0 0 0 0 2 1 0 +P 25 21 -8.0759531061318546e-01 -3.3406171290107096e+00 1.9645698208408786e+00 3.9587204459677277e+00 0 2 0 0 -11 0 +P 26 21 8.0759531061318546e-01 3.3406171290107096e+00 -1.6092526703563814e+02 1.6096196290888045e+02 0 2 0 0 -11 0 +P 68 92 6.5875152481577262e+00 8.7100003117229168e+00 2.4104713366823571e+03 7.0983573201329691e+03 6.6765399212358125e+03 2 0 0 -12 0 +V -12 0 0 0 0 0 0 59 0 +P 69 323 2.6965373089886259e-02 -7.8436620352785036e-01 -6.3251215118341054e+02 6.3251328488303113e+02 9.0454484922708100e-01 2 0 0 -35 0 +P 70 -311 -5.1319872938403244e-01 -3.5703956672451648e-01 -6.6805309680723667e+02 6.6805357470741524e+02 4.9767000000000000e-01 2 0 0 -36 0 +P 71 -211 5.7620530575271300e-01 6.1421445206986870e-02 -3.3565202145218319e+02 3.3565255066790428e+02 1.3957000000000000e-01 1 0 0 0 0 +P 72 213 2.7459733564460981e-01 -4.6031431506940862e-01 -3.8571257213471154e+02 3.8571373935139655e+02 7.8302534873042506e-01 2 0 0 -37 0 +P 73 223 -5.7926526471571715e-01 -1.9525945624624185e-02 -8.4084403531743789e+01 8.4090163084732680e+01 7.9541235743155470e-01 2 0 0 -38 0 +P 74 -213 -7.3223666424297493e-02 3.6563852853395723e-01 -1.6810679233890163e+01 1.6836622172984743e+01 8.5665433648741185e-01 2 0 0 -39 0 +P 75 211 6.4146448505876097e-01 -6.3543078272220832e-01 -1.6981265495312542e+01 1.7005825665706883e+01 1.3957000000000000e-01 1 0 0 0 0 +P 76 -211 -1.5924531765929986e-01 1.8172819723608069e-02 -3.3819669982319928e-01 3.9943224111784109e-01 1.3957000000000000e-01 1 0 0 0 0 +P 77 331 -2.1878967436288869e-02 -2.4374301737778187e-01 -4.9639779751442061e+00 5.0614320935167747e+00 9.5766808019706395e-01 2 0 0 -40 0 +P 78 211 3.8160876729373411e-01 4.9824059133778851e-03 -3.9596912966490905e+00 3.9804880385830423e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 -211 8.2763694246190667e-01 -4.7171503722470046e-02 -5.3206398228798824e+00 5.3866405086107614e+00 1.3957000000000000e-01 1 0 0 0 0 +P 80 213 -9.2963436667075124e-03 -9.3331491880418926e-01 -5.7858987283250789e+00 5.9114736383731179e+00 7.7313215110905542e-01 2 0 0 -41 0 +P 81 111 6.8908760945870035e-02 -7.4336047790866958e-02 -3.2488145678831243e-01 3.6611723081706654e-01 1.3497999999999999e-01 2 0 0 -42 0 +P 82 311 8.0944838552899079e-01 -2.2401821592795629e-01 -2.2078412448770441e+00 2.4140483096622667e+00 4.9767000000000000e-01 2 0 0 -43 0 +P 83 -311 2.0825369584158310e-01 -2.9899435700293758e-01 -7.9825277911540260e+00 8.0063220390387535e+00 4.9767000000000000e-01 2 0 0 -44 0 +P 84 221 4.8600128562752809e-02 -2.9412330619311078e-01 -1.2557942635204722e+00 1.4019954445479514e+00 5.4744999999999999e-01 2 0 0 -45 0 +P 85 221 2.4321537069915566e-01 2.7897521224850303e-02 -2.0466306405757497e+00 2.1326815209210972e+00 5.4744999999999999e-01 2 0 0 -46 0 +P 86 113 -1.4242560875299726e-01 2.0098755311294011e-01 -9.3281640560500445e-01 1.1994889447031605e+00 7.1270346664252460e-01 2 0 0 -47 0 +P 87 -213 6.2995506969133175e-01 -5.3351618156801850e-01 -3.0268003767966487e+00 3.2877827626531611e+00 9.8311345611693934e-01 2 0 0 -48 0 +P 88 213 -4.4470514704296038e-01 2.6740585629040976e-02 -1.1790528923872898e+00 1.4643031719074535e+00 7.4534577847138228e-01 2 0 0 -49 0 +P 89 2112 -5.6465354678112804e-02 4.1816050990651149e-01 8.1955389032907600e-01 1.3162472839013655e+00 9.3957000000000002e-01 1 0 0 0 0 +P 90 -2212 -3.0528283048302102e-02 -4.0769401042822612e-01 1.4135481591829637e+00 1.7451691532440265e+00 9.3827000000000005e-01 1 0 0 0 0 +P 91 211 3.5221781060737328e-01 1.2088893752373304e+00 9.4706264424757203e-01 1.5817327033035504e+00 1.3957000000000000e-01 1 0 0 0 0 +P 92 -213 -2.9970119748950869e-01 5.7605009045793187e-01 1.9803888278068278e+00 2.1668024374217025e+00 5.9282238404204501e-01 2 0 0 -50 0 +P 93 323 5.3610594923405364e-01 1.5427556638110751e+00 4.1323311180303905e+00 4.5365775346539055e+00 9.1480633571205505e-01 2 0 0 -51 0 +P 94 -323 1.6764230184000011e+00 4.2661339477853915e+00 1.1422857768230408e+01 1.2340341966212989e+01 8.8998160249935854e-01 2 0 0 -52 0 +P 95 221 1.6521720620708708e-01 1.7305666862956806e+00 5.3795959051527014e+00 5.6799569880571275e+00 5.4744999999999999e-01 2 0 0 -53 0 +P 96 111 3.4091599571513381e-01 4.2578712335088759e-01 7.7507818540955942e-01 9.5733180478016111e-01 1.3497999999999999e-01 2 0 0 -54 0 +P 97 111 1.8636424148468736e-01 1.4599342475026946e+00 5.4281639450086834e+00 5.6257731070340586e+00 1.3497999999999999e-01 2 0 0 -55 0 +P 98 223 1.0069287360881967e+00 1.3509470596584172e+00 6.7582433289884696e+00 7.0091592256500288e+00 7.8453598970226335e-01 2 0 0 -56 0 +P 99 211 -3.4146209562673929e-01 1.5158950380356184e-01 5.2424511386917438e-01 6.5870210621260206e-01 1.3957000000000000e-01 1 0 0 0 0 +P 100 2112 -2.1154881148046689e-01 -1.0735068025792132e+00 7.0201326895106064e-01 1.6039900777454950e+00 9.3957000000000002e-01 1 0 0 0 0 +P 101 -2212 4.7469686931938010e-02 2.7754353367769968e-01 1.0039073590343506e+00 1.4026633105228941e+00 9.3827000000000005e-01 1 0 0 0 0 +P 102 111 1.7437178164815947e-01 -5.6048963315392508e-01 1.2589521396946993e-01 6.1532377851712639e-01 1.3497999999999999e-01 2 0 0 -57 0 +P 103 113 -3.1883151078144545e-01 -8.4606752962111467e-02 1.3914257241876302e-01 9.7271600632710076e-01 9.0443570174538301e-01 2 0 0 -58 0 +P 104 111 -1.1927545843921665e-01 -2.6335718259241964e-01 1.5515874628685319e-01 3.5479216107209921e-01 1.3497999999999999e-01 2 0 0 -59 0 +P 105 211 2.9312098402116255e-01 -6.2323282486230425e-01 -2.6684020281172388e-01 7.5167981481212065e-01 1.3957000000000000e-01 1 0 0 0 0 +P 106 1114 -4.4062914350054427e-01 2.4638804826043872e-01 -2.3241854935092199e+01 2.3280385473541951e+01 1.2400265563311581e+00 2 0 0 -60 0 +P 107 211 1.6813770838362588e-01 1.0298303158833499e-01 -3.2163782230045408e+00 3.2254370947351405e+00 1.3957000000000000e-01 1 0 0 0 0 +P 108 -2212 3.4457685450197267e-01 1.2186713305630190e+00 -5.3030716885410776e+01 5.3054134400573211e+01 9.3827000000000005e-01 1 0 0 0 0 +P 109 2214 1.2020287573136482e-01 3.7479987432403911e-01 -1.0966878173055145e+01 1.1045072570427967e+01 1.2515141015024636e+00 2 0 0 -61 0 +P 110 211 2.1009296797946009e-01 4.0052377799798089e-01 -1.6589816940124287e+01 1.6596567845300751e+01 1.3957000000000000e-01 1 0 0 0 0 +P 111 -2224 1.9658035577195881e-01 5.1914185814482328e-01 -3.0401238446225552e+01 3.0431387801714855e+01 1.2352782556752151e+00 2 0 0 -62 0 +P 112 323 -7.0406239463945264e-01 -1.9001858472173550e-01 -1.3737092732247977e+01 1.3787611740640099e+01 9.2666599061989985e-01 2 0 0 -63 0 +P 113 333 8.2916907628090986e-01 6.4319863963863733e-01 -5.3961951740099057e+00 5.5928926174794418e+00 1.0297085158212156e+00 2 0 0 -64 0 +P 114 -323 -4.4426618158725512e-01 -1.3800261314922405e-02 -1.0646399753717462e+00 1.4542717828265139e+00 8.8537294619351015e-01 2 0 0 -65 0 +P 115 213 4.6955864160020383e-01 -2.2138569541027434e-01 2.7803521001940323e-01 1.1481484305370542e+00 9.8561873790043575e-01 2 0 0 -66 0 +P 116 223 2.8564258373702955e-01 -7.0418327707246611e-02 -7.3250403882459747e-01 1.1252011437712499e+00 8.0185099646301594e-01 2 0 0 -67 0 +P 117 -213 -2.1467687225524573e-01 4.2741287912168013e-01 -7.4289123826589104e-04 1.0126576271927121e+00 8.9258444379442525e-01 2 0 0 -68 0 +P 118 113 1.7395230303924547e-01 -4.1608763137866295e-01 1.2004688227692567e+01 1.2053458057779810e+01 9.8484688446354629e-01 2 0 0 -69 0 +P 119 221 -1.9567117285229671e-01 2.8889340409270481e-01 5.3075723066706981e+00 5.3471274437637426e+00 5.4744999999999999e-01 2 0 0 -70 0 +P 120 111 -1.9087267842121336e-01 5.4252206762536037e-01 6.2318609039251946e+01 6.2321408960009578e+01 1.3497999999999999e-01 2 0 0 -71 0 +P 121 323 1.3070310306706950e-01 -6.1697493783128776e-01 2.9221144136450206e+01 2.9240305127864819e+01 8.4996350061396719e-01 2 0 0 -72 0 +P 122 -311 -4.9885948856357186e-02 1.2822300091927889e-02 4.5329270329114166e+00 4.5604556717363289e+00 4.9767000000000000e-01 2 0 0 -73 0 +P 123 2112 -4.7863725043095502e-02 -1.0825222107858737e-01 1.4718621532001902e+02 1.4718926177372941e+02 9.3957000000000002e-01 1 0 0 0 0 +P 124 -2112 1.9344894382294975e-01 -6.5018197886060145e-03 2.1812090513132770e+02 2.1812301463133616e+02 9.3957000000000002e-01 1 0 0 0 0 +P 125 313 -5.9342554539725090e-01 -3.3850796627627300e-01 5.9882469556753961e+02 5.9882576075663053e+02 8.9943464447186261e-01 2 0 0 -74 0 +P 126 3224 3.5223036811653632e-02 -3.4414941922204685e-02 2.5172332877548356e+03 2.5172336781781446e+03 1.4011239061029810e+00 2 0 0 -75 0 +P 127 -213 1.1663718569999987e-01 -2.4641154449404332e-01 1.1115119089591544e+03 1.1115121550661386e+03 6.8758916911370760e-01 2 0 0 -76 0 +V -13 0 0 0 0 0 0 1 0 +P 128 92 -8.5730284737943785e-01 7.4467567594827277e-01 -1.7033715925588622e+03 1.7033728732085285e+03 1.7530933029711124e+00 2 0 0 -14 0 +V -14 0 0 0 0 0 0 2 0 +P 129 113 -7.8533622992976027e-01 8.6523895857592903e-01 -1.6750124441451264e+03 1.6750130337654648e+03 7.8093002700065262e-01 2 0 0 -77 0 +P 130 -211 -7.1966617449677556e-02 -1.2056328262765621e-01 -2.8359148413735429e+01 2.8359839443063105e+01 1.3957000000000000e-01 1 0 0 0 0 +V -15 0 0 0 0 0 0 1 0 +P 131 92 -1.9258873467210122e+01 9.2892052050382539e+00 8.6309059655864780e+02 8.6709454534264501e+02 8.0438667035440048e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 12 0 +P 132 423 -1.9137366351719628e+01 -1.4131846763827689e+01 2.9493587085754592e+02 2.9590056209345943e+02 2.0066999999999999e+00 2 0 0 -78 0 +P 133 211 -4.5604000871635657e+00 -4.7377185099919146e+00 7.2689922512815102e+01 7.2986899785775833e+01 1.3957000000000000e-01 1 0 0 0 0 +P 134 113 -5.1617104439380377e+00 -3.6881619942643642e+00 7.3158252581438703e+01 7.3436922903472933e+01 7.7841580023243062e-01 2 0 0 -79 0 +P 135 111 -1.0963849349911059e-01 -3.7173119868868731e-02 3.1818045250357909e+00 3.1867698498692643e+00 1.3497999999999999e-01 2 0 0 -80 0 +P 136 -213 -1.8575628946181175e+00 -2.6189368213267570e+00 3.1084349603980588e+01 3.1260260648800589e+01 8.1100896844567072e-01 2 0 0 -81 0 +P 137 113 -1.9702196225596913e+00 -7.5035350425204206e-01 1.8597051073293592e+01 1.8730245499430811e+01 7.2594221794524227e-01 2 0 0 -82 0 +P 138 331 -1.8481053319477775e-01 -3.7946619601020762e-02 3.7006231730721044e+00 3.8272144972627773e+00 9.5779124022995710e-01 2 0 0 -83 0 +P 139 323 5.4756376576753629e-01 3.2204856220182068e+00 3.6360592290988627e+01 3.6518541749074082e+01 9.1644203753305542e-01 2 0 0 -84 0 +P 140 -323 1.3311259853615089e+00 3.7379512567484707e+00 3.4112393141607136e+01 3.4353366987544497e+01 8.6849383798280422e-01 2 0 0 -85 0 +P 141 113 4.4805357982732119e-01 3.0030852094344707e+00 2.9362369493599097e+01 2.9533424673175375e+01 9.2474745847981388e-01 2 0 0 -86 0 +P 142 213 4.7752867246856443e+00 1.0891165458689070e+01 1.1393626861842178e+02 1.1455865944632977e+02 8.9011184662167564e-01 2 0 0 -87 0 +P 143 313 6.6208049038407921e+00 1.4438654991280693e+01 1.5197109868684942e+02 1.5280167720844955e+02 9.0989345262094001e-01 2 0 0 -88 0 +V -17 0 0 0 0 0 2 1 0 +P 43 2 2.1378197802742376e+00 2.3547451315414101e+00 -5.4651779492327037e+00 6.3232324063115968e+00 0 2 0 0 -17 0 +P 44 -2 -2.1378197802742376e+00 -2.3547451315414101e+00 -2.4068773120863955e+01 2.4277992865784292e+01 0 2 0 0 -17 0 +P 144 92 0 0 -2.9533951070096659e+01 3.0601225272095888e+01 8.0112871838860240e+00 2 0 0 -18 0 +V -18 0 0 0 0 0 0 4 0 +P 145 323 1.8776251777286357e+00 1.8318837713470195e+00 -4.9994852273624932e+00 5.7335457349190850e+00 9.9870901469245166e-01 2 0 0 -89 0 +P 146 -321 3.7073773471981229e-02 1.7044744097734246e-01 -1.6359966049568000e+00 1.7177172777396612e+00 4.9359999999999998e-01 1 0 0 0 0 +P 147 323 -4.7852083980675375e-01 -6.4107933193332411e-01 -5.4042107535842536e+00 5.5372300715771994e+00 9.0302718257077641e-01 2 0 0 -90 0 +P 148 -321 -1.4361781113938632e+00 -1.3612518803910378e+00 -1.7494258484193114e+01 1.7612732187859947e+01 4.9359999999999998e-01 1 0 0 0 0 +V -19 0 0 0 0 0 2 1 0 +P 45 1 1.8673293224089542e+00 2.3063057798131541e+00 2.4390505988349268e+01 2.4570363194630016e+01 0 2 0 0 -19 0 +P 46 -1 -1.8673293224089542e+00 -2.3063057798131541e+00 -3.0519906661080940e+00 4.2568312362999272e+00 0 2 0 0 -19 0 +P 149 92 0 0 2.1338515322241175e+01 2.8827194430929943e+01 1.9382334807786108e+01 2 0 0 -20 0 +V -20 0 0 0 0 0 0 8 0 +P 150 -211 1.1192865003182519e+00 9.7257533806658769e-01 1.0060654115125574e+01 1.0170297245759494e+01 1.3957000000000000e-01 1 0 0 0 0 +P 151 213 -2.0771851785387677e-01 4.2519322630392231e-01 6.3745975039723319e+00 6.4406040423465116e+00 7.8863859294723537e-01 2 0 0 -91 0 +P 152 311 3.6602657683902218e-01 2.7637537539729494e-02 1.1512728067232807e+00 1.3068449765883683e+00 4.9767000000000000e-01 2 0 0 -92 0 +P 153 -313 6.6372648031348541e-02 5.1378838214452516e-01 4.7850741764275320e+00 4.9115056800953063e+00 9.7855472083141659e-01 2 0 0 -93 0 +P 154 111 1.4261163265033819e-01 2.7035572090208759e-01 1.0157832817158920e-01 3.4923924571247367e-01 1.3497999999999999e-01 2 0 0 -94 0 +P 155 -213 2.4227172397104807e-01 -2.6403356349582480e-01 1.3501615848246171e+00 1.6600803924695697e+00 8.9695110983686888e-01 2 0 0 -95 0 +P 156 223 -1.1140200512928606e+00 -8.1846412592718654e-01 -1.3130036485215084e+00 2.0628775198106455e+00 7.8775686642327825e-01 2 0 0 -96 0 +P 157 213 -6.1483051266327160e-01 -1.1270525155338409e+00 -1.1718195444822426e+00 1.9257453281475732e+00 8.2889691275736610e-01 2 0 0 -97 0 +V -21 0 0 0 0 0 2 1 0 +P 47 21 -1.6032500697232532e-01 4.0174652936366986e+00 7.5678264791499856e+00 8.5695816182565032e+00 0 2 0 0 -21 0 +P 48 21 1.6032500697232532e-01 -4.0174652936366986e+00 2.9067715926331368e+02 2.9070496495396026e+02 0 2 0 0 -21 0 +P 158 92 0 0 2.9824498574246365e+02 2.9927454657221676e+02 2.4802876959812384e+01 2 0 0 -22 0 +V -22 0 0 0 0 0 0 11 0 +P 159 2112 1.7964317510379571e-01 2.3175583066793864e-01 5.5679324197099680e+00 5.6542590717765355e+00 9.3957000000000002e-01 1 0 0 0 0 +P 160 -2212 -1.5090219905010202e-01 6.0109050142401987e-01 3.2508753296939252e+00 3.4398578846651389e+00 9.3827000000000005e-01 1 0 0 0 0 +P 161 213 -1.3185920968150541e-01 5.1253454596483206e-01 2.8515148690980490e+00 3.0007314728969532e+00 7.7017777932231246e-01 2 0 0 -98 0 +P 162 2112 -2.9589184870575446e-02 8.1735278132525635e-01 3.9016671878094096e+00 4.0956977083678945e+00 9.3957000000000002e-01 1 0 0 0 0 +P 163 111 -1.6746154439354902e-02 7.6768893592516851e-01 2.2228509364031699e+00 2.3556130034237106e+00 1.3497999999999999e-01 2 0 0 -99 0 +P 164 -2112 1.5035799035598119e-01 2.6606398705642531e-01 4.0650357319587354e+00 4.1833843784038702e+00 9.3957000000000002e-01 1 0 0 0 0 +P 165 -213 1.6067245661882737e-01 -1.2470285603911700e-01 4.7366324423320982e+00 4.8109860944668297e+00 8.1763920330425799e-01 2 0 0 -100 0 +P 166 3222 -3.8764262791963577e-01 -4.9242591697810201e-01 5.0258807822997092e+01 5.0276785049131227e+01 1.1893700000000000e+00 2 0 0 -101 0 +P 167 -3322 -1.2309526187710051e-01 -2.5079778996359208e+00 1.8364860958891464e+02 1.8367048176432749e+02 1.3149000000000000e+00 2 0 0 -102 0 +P 168 -313 2.7382092931236746e-01 1.3620019933979283e-01 1.7228910752887057e+01 1.7258673294130080e+01 9.6587253141499774e-01 2 0 0 -103 0 +P 169 223 7.5340086447302335e-02 -2.0758010905029387e-01 2.0512148660659509e+01 2.0528076850627027e+01 7.7777302470221710e-01 2 0 0 -104 0 +V -23 0 0 0 0 0 2 1 0 +P 49 21 -2.6546407805414689e+00 1.5019300198250121e+00 2.4952404169620731e+01 2.5138126129492459e+01 0 2 0 0 -23 0 +P 50 21 2.6546407805414689e+00 -1.5019300198250121e+00 1.7863101526357177e+00 3.5346591659698707e+00 0 2 0 0 -23 0 +P 170 92 0 0 2.6738714322256449e+01 2.8672785295462329e+01 1.0352283467546599e+01 2 0 0 -24 0 +V -24 0 0 0 0 0 0 9 0 +P 171 113 2.2244165301205804e-01 3.1494817743372011e-01 1.4782187353346177e+00 1.6863066829397060e+00 7.1402167752056300e-01 2 0 0 -105 0 +P 172 111 3.4623449760310282e-01 -1.0264048500571971e-01 9.3540089980756547e-01 1.0117350642601477e+00 1.3497999999999999e-01 2 0 0 -106 0 +P 173 -3222 -8.2595480421942175e-02 1.6978619896754682e-01 3.9520196416308315e+00 4.1314294876570097e+00 1.1893700000000000e+00 2 0 0 -107 0 +P 174 3222 -6.9310081431249626e-01 6.6149599980748386e-01 1.1548527819325548e+01 1.1649079855816854e+01 1.1893700000000000e+00 2 0 0 -108 0 +P 175 -211 -1.7560637096079756e-01 -5.6685470235918856e-01 2.1835043271014025e+00 2.2670096564592077e+00 1.3957000000000000e-01 1 0 0 0 0 +P 176 -2112 -1.9019072817495811e-01 1.9359363989648683e-02 1.6880525050363864e+00 1.9413552850309042e+00 9.3957000000000002e-01 1 0 0 0 0 +P 177 223 2.4540057371541862e-01 -2.8376756848088225e-01 2.3218440550203154e+00 2.4773736223134661e+00 7.7825109971008344e-01 2 0 0 -109 0 +P 178 3212 8.6531980859782553e-01 -4.4081003261827684e-01 1.9558781200763713e+00 2.4881170750393125e+00 1.1925500000000000e+00 2 0 0 -110 0 +P 179 321 -5.3790313905821097e-01 2.2848304826566801e-01 6.7526821892341016e-01 1.0203785659457194e+00 4.9359999999999998e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 2 0 +P 180 -211 -1.4955554398415169e-01 -5.6951699534149869e-01 4.0889018315438204e+00 4.1334385735875658e+00 1.3957000000000000e-01 1 0 0 0 0 +P 181 111 4.5572139817173168e-01 -1.9605261286710240e+00 8.0168967910902253e+00 8.2668130771988633e+00 1.3497999999999999e-01 2 0 0 -111 0 +V -26 0 0 0 0 0 0 2 0 +P 182 211 1.8489337684983235e-02 -7.6473513145543626e-01 1.7001134900440293e+00 1.8694992219361533e+00 1.3957000000000000e-01 1 0 0 0 0 +P 183 111 -1.7253765650383687e-01 -9.8623454845585490e-01 3.8611934028869754e+00 3.9911730008078652e+00 1.3497999999999999e-01 2 0 0 -112 0 +V -27 0 0 0 0 0 0 3 0 +P 184 -211 -2.5172946512403243e-02 -7.7548570243937753e-01 3.0753336193267011e+00 3.1747706069864448e+00 1.3957000000000000e-01 1 0 0 0 0 +P 185 211 -3.7700741046237424e-01 -6.0130878108935260e-01 2.2322285260513164e+00 2.3464933017539047e+00 1.3957000000000000e-01 1 0 0 0 0 +P 186 111 -1.0933571600133193e-01 -4.0829396875412233e-02 6.6468542013166909e-01 6.8822063800669864e-01 1.3497999999999999e-01 2 0 0 -113 0 +V -28 0 0 0 0 0 0 3 0 +P 187 -211 1.1038114308213799e-01 -1.2888105525180060e-01 6.0684971341572025e-01 6.4539963024755354e-01 1.3957000000000000e-01 1 0 0 0 0 +P 188 211 8.5502102732195953e-02 -1.0434887961818418e+00 3.1241617499531409e+00 3.2978850650225713e+00 1.3957000000000000e-01 1 0 0 0 0 +P 189 111 2.0070706376734491e-02 -7.0135766106683461e-01 3.3675483594623192e+00 3.4425146267966618e+00 1.3497999999999999e-01 2 0 0 -114 0 +V -29 0 0 0 0 0 0 2 0 +P 190 211 6.0515548805711243e-02 -7.5842708879401355e-01 1.0059791141196675e+00 1.2689946980223401e+00 1.3957000000000000e-01 1 0 0 0 0 +P 191 -211 -1.0819266888464543e-01 -2.5677967550644770e-01 1.4308860604703502e+00 1.4644303186911753e+00 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 192 211 3.2630837518369948e-01 1.2528291854798834e-01 -9.1079671575371779e-01 9.8549652851884084e-01 1.3957000000000000e-01 1 0 0 0 0 +P 193 -211 -1.8721057036304636e-01 -4.5597688585249807e-01 -8.2213318313620309e-01 9.6868233895383105e-01 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 1.9363804248396288e-05 -1.4049194748185942e-05 -1.4692489235742219e-04 1.4899380618883134e-04 0 2 0 +P 194 22 2.3644587135507725e-01 -1.2558235327998157e-01 -1.9632153706257331e+00 1.9813864259647422e+00 0 1 0 0 0 0 +P 195 22 1.7737180278809139e-01 -1.7465849917339041e-01 -1.1766695636128137e+00 1.2027126047774541e+00 0 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 196 -211 -7.0389269565655677e-01 -3.1919107716430056e-02 -1.8774282217689745e+01 1.8788018424804608e+01 1.3957000000000000e-01 1 0 0 0 0 +P 197 211 -1.7492617419341611e-01 -3.8276425193759644e-01 -4.9597781553916187e+00 4.9795568853643175e+00 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 2 0 +P 198 2212 -5.1743590343267754e-01 4.2825914755438255e-01 -1.0893061128262852e+03 1.0893067239933462e+03 9.3827000000000005e-01 1 0 0 0 0 +P 199 111 1.8917548469115111e-02 2.0422630417328605e-01 -1.7583218167193181e+02 1.7583235310194934e+02 1.3497999999999999e-01 2 0 0 -115 0 +V -34 0 3.2334201386706010e-05 5.9245798152790670e-06 -1.2135968341715789e-01 1.2135968897646612e-01 0 2 0 +P 200 22 1.6703387848561871e-01 5.7069751590140542e-02 -4.1826167954092972e+02 4.1826171678707635e+02 0 1 0 0 0 0 +P 201 22 9.9196037593150224e-02 -8.2885750223403894e-03 -5.8097680311353236e+02 5.8097681164102789e+02 0 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 202 311 -2.5901715207887410e-01 -6.0542629745708865e-01 -4.0542979190677522e+02 4.0543063213315133e+02 4.9767000000000000e-01 2 0 0 -116 0 +P 203 211 2.8598252516876038e-01 -1.7893990607076177e-01 -2.2708235927663534e+02 2.2708265274987977e+02 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 1 0 +P 204 130 -5.1319872938403244e-01 -3.5703956672451648e-01 -6.6805309680723667e+02 6.6805357470741524e+02 4.9767000000000000e-01 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 205 211 5.0113066374848658e-01 -1.7917812277643974e-01 -1.9423655414467504e+02 1.9423733339016991e+02 1.3957000000000000e-01 1 0 0 0 0 +P 206 111 -2.2653332810387683e-01 -2.8113619229296893e-01 -1.9147601799003647e+02 1.9147640596122679e+02 1.3497999999999999e-01 2 0 0 -117 0 +V -38 0 0 0 0 0 0 3 0 +P 207 211 -1.2953975496923764e-01 -6.3100220954130662e-02 -6.4093109045566621e+00 6.4124494728746901e+00 1.3957000000000000e-01 1 0 0 0 0 +P 208 -211 -6.5502456608810988e-02 -1.0670875197924584e-01 -3.2314799704027415e+01 3.2315343677978753e+01 1.3957000000000000e-01 1 0 0 0 0 +P 209 111 -3.8422305313766852e-01 1.5028302730875231e-01 -4.5360292923159719e+01 4.5362369933879265e+01 1.3497999999999999e-01 2 0 0 -118 0 +V -39 0 0 0 0 0 0 2 0 +P 210 -211 2.5359517635261491e-01 -7.4343477557339457e-02 -3.1117407054990411e+00 3.1260594155076933e+00 1.3957000000000000e-01 1 0 0 0 0 +P 211 111 -3.2681884277691242e-01 4.3998200609129667e-01 -1.3698938528391123e+01 1.3710562757477057e+01 1.3497999999999999e-01 2 0 0 -119 0 +V -40 0 0 0 0 0 0 3 0 +P 212 111 -7.8940863078874490e-02 -1.7382885204461537e-01 -1.5695053597983348e+00 1.5868253856371490e+00 1.3497999999999999e-01 2 0 0 -120 0 +P 213 111 -7.8383943780866334e-03 -2.5856424870530047e-02 -1.3381901875049935e+00 1.3452518624659702e+00 1.3497999999999999e-01 2 0 0 -121 0 +P 214 221 6.4900290020672255e-02 -4.4057740462636476e-02 -2.0562824278408782e+00 2.1293548454136566e+00 5.4744999999999999e-01 2 0 0 -122 0 +V -41 0 0 0 0 0 0 2 0 +P 215 211 -1.8048202178105321e-02 -1.0093102102911666e+00 -5.4042555680151514e+00 5.4994991469698977e+00 1.3957000000000000e-01 1 0 0 0 0 +P 216 111 8.7518585113978108e-03 7.5995291486977395e-02 -3.8164316030992712e-01 4.1197449140322134e-01 1.3497999999999999e-01 2 0 0 -123 0 +V -42 0 6.0737920994850714e-07 -6.5521668592152024e-07 -2.8635871526700522e-06 3.2270496719116053e-06 0 2 0 +P 217 22 3.6690098624894099e-02 3.2104328088457951e-02 -5.1174608902313651e-02 7.0680208088407345e-02 0 1 0 0 0 0 +P 218 22 3.2218662320975935e-02 -1.0644037587932491e-01 -2.7370684788599875e-01 2.9543702272865918e-01 0 1 0 0 0 0 +V -43 0 0 0 0 0 0 1 0 +P 219 310 8.0944838552899079e-01 -2.2401821592795629e-01 -2.2078412448770441e+00 2.4140483096622671e+00 4.9767000000000000e-01 2 0 0 -124 0 +V -44 0 0 0 0 0 0 1 0 +P 220 130 2.0825369584158310e-01 -2.9899435700293758e-01 -7.9825277911540260e+00 8.0063220390387517e+00 4.9767000000000000e-01 1 0 0 0 0 +V -45 0 0 0 0 0 0 3 0 +P 221 -211 2.0336907664022314e-02 -6.8795029656673473e-02 -1.2781071680927664e-01 2.0238999518281200e-01 1.3957000000000000e-01 1 0 0 0 0 +P 222 211 -6.8179243585667487e-02 -8.9502122733327735e-02 -3.5872734119120031e-01 4.0102883867347155e-01 1.3957000000000000e-01 1 0 0 0 0 +P 223 111 9.6442464484397972e-02 -1.3582615380310958e-01 -7.6925620551999541e-01 7.9857661069166797e-01 1.3497999999999999e-01 2 0 0 -125 0 +V -46 0 0 0 0 0 0 3 0 +P 224 111 2.6160440603946145e-01 3.8824481999259884e-02 -1.0269049807729116e+00 1.0689703670345518e+00 1.3497999999999999e-01 2 0 0 -126 0 +P 225 111 -1.7096717800365663e-02 2.3430492041171140e-02 -2.9482920802539647e-01 3.2555360237865472e-01 1.3497999999999999e-01 2 0 0 -127 0 +P 226 111 -1.2923175399401406e-03 -3.4357452815580718e-02 -7.2489645177744166e-01 7.3815755150789031e-01 1.3497999999999999e-01 2 0 0 -128 0 +V -47 0 0 0 0 0 0 2 0 +P 227 -211 4.0983186168897998e-02 4.1316543328976252e-01 -4.9254568519727593e-01 6.5914060239111794e-01 1.3957000000000000e-01 1 0 0 0 0 +P 228 211 -1.8340879492189527e-01 -2.1217788017682243e-01 -4.4027072040772847e-01 5.4034834231204232e-01 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 229 -211 1.4311547145631315e-01 -6.9370880998933593e-01 -2.0936733660680962e+00 2.2146471276277619e+00 1.3957000000000000e-01 1 0 0 0 0 +P 230 111 4.8683959823501871e-01 1.6019262842131735e-01 -9.3312701072855297e-01 1.0731356350254004e+00 1.3497999999999999e-01 2 0 0 -129 0 +V -49 0 0 0 0 0 0 2 0 +P 231 211 -5.9605235147848823e-01 3.4238597371628854e-03 -1.0703021959451100e+00 1.2330112343622257e+00 1.3957000000000000e-01 1 0 0 0 0 +P 232 111 1.5134720443552790e-01 2.3316725891878089e-02 -1.0875069644217970e-01 2.3129193754522784e-01 1.3497999999999999e-01 2 0 0 -130 0 +V -50 0 0 0 0 0 0 2 0 +P 233 -211 -1.9269073508976683e-01 1.6767418600061659e-01 1.4340467581323610e+00 1.4632888441624703e+00 1.3957000000000000e-01 1 0 0 0 0 +P 234 111 -1.0701046239974184e-01 4.0837590445731536e-01 5.4634206967446686e-01 7.0351359325923257e-01 1.3497999999999999e-01 2 0 0 -131 0 +V -51 0 0 0 0 0 0 2 0 +P 235 311 6.3943275598408489e-01 1.2113139656898524e+00 3.6184751514319600e+00 3.9009221503807563e+00 4.9767000000000000e-01 2 0 0 -132 0 +P 236 211 -1.0332680675003121e-01 3.3144169812122276e-01 5.1385596659843058e-01 6.3565538427314960e-01 1.3957000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 237 -321 6.0112350196689945e-01 1.3754851910638788e+00 3.6979799224894263e+00 4.0214432039490360e+00 4.9359999999999998e-01 1 0 0 0 0 +P 238 111 1.0752995164331018e+00 2.8906487567215131e+00 7.7248778457409824e+00 8.3188987622639523e+00 1.3497999999999999e-01 2 0 0 -133 0 +V -53 0 0 0 0 0 0 3 0 +P 239 111 2.8770026660581679e-03 5.7529118234130172e-01 2.0142417965499644e+00 2.0991326392090666e+00 1.3497999999999999e-01 2 0 0 -134 0 +P 240 111 -3.1779121290212139e-02 5.5540485052736488e-01 1.4046209535474936e+00 1.5167940150475190e+00 1.3497999999999999e-01 2 0 0 -135 0 +P 241 111 1.9411932483124106e-01 5.9987065342701418e-01 1.9607331550552445e+00 2.0640303338005435e+00 1.3497999999999999e-01 2 0 0 -136 0 +V -54 0 5.4954611087139647e-05 6.8635576106003366e-05 1.2494022215636810e-04 1.5431894564725410e-04 0 2 0 +P 242 22 2.7045544910683439e-01 2.8952946094327370e-01 4.6146839849127375e-01 6.0821586752713319e-01 0 1 0 0 0 0 +P 243 22 7.0460546608299382e-02 1.3625766240761386e-01 3.1360978691828562e-01 3.4911593725302786e-01 0 1 0 0 0 0 +V -55 0 9.6240369574681310e-05 7.5392473585625148e-04 2.8031584815723328e-03 2.9052058412651406e-03 0 2 0 +P 244 22 8.6498389738220507e-02 2.8849502818976608e-01 1.1962677619018982e+00 1.2335995747742843e+00 0 1 0 0 0 0 +P 245 22 9.9865851746466866e-02 1.1714392193129286e+00 4.2318961831067856e+00 4.3921735322597746e+00 0 1 0 0 0 0 +V -56 0 0 0 0 0 0 3 0 +P 246 -211 4.9508715212394944e-01 7.9494983361117566e-01 2.6140269814839323e+00 2.7802290141250303e+00 1.3957000000000000e-01 1 0 0 0 0 +P 247 211 2.9246050150768399e-01 2.7688149449938243e-01 1.5693519673596861e+00 1.6262047501142205e+00 1.3957000000000000e-01 1 0 0 0 0 +P 248 111 2.1938108245656321e-01 2.7911573154785918e-01 2.5748643801448514e+00 2.6027254614107957e+00 1.3497999999999999e-01 2 0 0 -137 0 +V -57 0 8.3373127297123383e-06 -2.6798931049491529e-05 6.0194818227837910e-06 2.9420739543035361e-05 0 2 0 +P 249 22 7.9399386678645364e-02 -1.3411768106791125e-01 -1.4409354255737384e-02 1.5652298383958299e-01 0 1 0 0 0 0 +P 250 22 9.4972394969514082e-02 -4.2637195208601375e-01 1.4030456822520732e-01 4.5880079467754337e-01 0 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 251 -211 -2.5832734309574518e-02 -4.0424593103120743e-01 -1.2480732107260117e-01 4.4624965569792446e-01 1.3957000000000000e-01 1 0 0 0 0 +P 252 211 -2.9299877647187089e-01 3.1963917806909597e-01 2.6394989349136422e-01 5.2646635062917657e-01 1.3957000000000000e-01 1 0 0 0 0 +V -59 0 -5.4768382651334292e-05 -1.2092719775668951e-04 7.1245113617988620e-05 1.6291191074476475e-04 0 2 0 +P 253 22 1.7493171764315394e-02 -1.3904813024503002e-02 -1.1450675993148609e-02 2.5109218711905378e-02 0 1 0 0 0 0 +P 254 22 -1.3676863020353203e-01 -2.4945236956791661e-01 1.6660942228000178e-01 3.2968294236019380e-01 0 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 255 2112 -1.9138160467729162e-01 3.0369538458739065e-01 -1.5191645722299414e+01 1.5224905561020293e+01 9.3957000000000002e-01 1 0 0 0 0 +P 256 -211 -2.4924753882325268e-01 -5.7307336326951931e-02 -8.0502092127927884e+00 8.0554799125216761e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 257 2112 8.3027060514221970e-02 1.0739718499538585e-01 -9.4824633945358805e+00 9.5298652383827278e+00 9.3957000000000002e-01 1 0 0 0 0 +P 258 211 3.7175815217142839e-02 2.6740268932865324e-01 -1.4844147785192647e+00 1.5152073320452397e+00 1.3957000000000000e-01 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 259 -2212 1.9997999199392005e-01 5.2159092633940130e-01 -2.9420638804998770e+01 2.9440896511124400e+01 9.3827000000000005e-01 1 0 0 0 0 +P 260 -211 -3.3996362219612538e-03 -2.4490681945780598e-03 -9.8059964122678123e-01 9.9049129059046015e-01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 2 0 +P 261 311 -3.7995269441653340e-01 1.6535799088428479e-01 -6.1483584577768262e+00 6.1823696483920711e+00 4.9767000000000000e-01 2 0 0 -138 0 +P 262 211 -3.2410970022291918e-01 -3.5537657560602026e-01 -7.5887342744711495e+00 7.6052420922480319e+00 1.3957000000000000e-01 1 0 0 0 0 +V -64 0 0 0 0 0 0 2 0 +P 263 -321 2.6631810341032058e-01 1.7773913266626884e-01 -2.2183705565824408e+00 2.2950654495671614e+00 4.9359999999999998e-01 1 0 0 0 0 +P 264 321 5.6285097287058927e-01 4.6545950697236843e-01 -3.1778246174274649e+00 3.2978271679122821e+00 4.9359999999999998e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 265 -311 -3.9453058218165832e-01 2.5328290511276014e-01 -7.7255254295189668e-01 1.0316586018738949e+00 4.9767000000000000e-01 2 0 0 -139 0 +P 266 -211 -4.9735599405596756e-02 -2.6708316642768254e-01 -2.9208743241984952e-01 4.2261318095261929e-01 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 2 0 +P 267 211 4.6420703636526520e-02 -3.1935185958196421e-01 -2.6465407149408987e-01 4.4007051071727998e-01 1.3957000000000000e-01 1 0 0 0 0 +P 268 111 4.2313793796367721e-01 9.7966164171689893e-02 5.4268928151349305e-01 7.0807791981977419e-01 1.3497999999999999e-01 2 0 0 -140 0 +V -67 0 0 0 0 0 0 3 0 +P 269 -211 1.6386205957906591e-01 -2.8797173352374816e-01 -3.9627447208558847e-01 5.3506236646289917e-01 1.3957000000000000e-01 1 0 0 0 0 +P 270 211 -1.4271113813788025e-02 -1.6982856077004688e-02 -5.1470645008149614e-03 1.4141555523701732e-01 1.3957000000000000e-01 1 0 0 0 0 +P 271 111 1.3605163797175168e-01 2.3453626189350621e-01 -3.3108250223819413e-01 4.4872322207133397e-01 1.3497999999999999e-01 2 0 0 -141 0 +V -68 0 0 0 0 0 0 2 0 +P 272 -211 -3.7696463658742585e-01 4.6783841638839324e-01 2.6462046064315636e-01 6.7117724497876563e-01 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 1.6228776433218009e-01 -4.0425537266713100e-02 -2.6536335188142224e-01 3.4148038221394672e-01 1.3497999999999999e-01 2 0 0 -142 0 +V -69 0 0 0 0 0 0 2 0 +P 274 -211 4.5889677578228821e-01 -5.1523219110723040e-01 9.6187324222664792e+00 9.6444566284284221e+00 1.3957000000000000e-01 1 0 0 0 0 +P 275 211 -2.8494447274304274e-01 9.9144559728567477e-02 2.3859558054260877e+00 2.4090014293513886e+00 1.3957000000000000e-01 1 0 0 0 0 +V -70 0 0 0 0 0 0 3 0 +P 276 111 -2.9460756327081435e-03 9.2886448846853601e-03 1.7698034532282698e+00 1.7749700903801551e+00 1.3497999999999999e-01 2 0 0 -143 0 +P 277 111 -1.4355787675334006e-01 2.4399905742791486e-01 2.9250863072903583e+00 2.9418521223034277e+00 1.3497999999999999e-01 2 0 0 -144 0 +P 278 111 -4.9167220466248530e-02 3.5605701780104602e-02 6.1268254615206985e-01 6.3030523108015979e-01 1.3497999999999999e-01 2 0 0 -145 0 +V -71 0 -7.5868240100300521e-05 2.1564214861322876e-04 2.4770455533049511e-02 2.4771568448014918e-02 0 2 0 +P 279 22 1.2440521239830230e-02 1.3976757843603155e-02 4.1819631103660040e+00 4.1820049704406896e+00 0 1 0 0 0 0 +P 280 22 -2.0331319966104358e-01 5.2854530978175718e-01 5.8136645928885947e+01 5.8139403989568891e+01 0 1 0 0 0 0 +V -72 0 0 0 0 0 0 2 0 +P 281 321 2.1642746277190641e-01 -6.7327959002127669e-01 2.1482677626049064e+01 2.1499981981335011e+01 4.9359999999999998e-01 1 0 0 0 0 +P 282 111 -8.5724359704836925e-02 5.6304652189988848e-02 7.7384665104011416e+00 7.7403231465298052e+00 1.3497999999999999e-01 2 0 0 -146 0 +V -73 0 0 0 0 0 0 1 0 +P 283 310 -4.9885948856357186e-02 1.2822300091927889e-02 4.5329270329114166e+00 4.5604556717363280e+00 4.9767000000000000e-01 2 0 0 -147 0 +V -74 0 0 0 0 0 0 2 0 +P 284 321 -2.7920309589361664e-01 -2.9417814389614927e-01 2.2570322131419886e+02 2.2570412545568442e+02 4.9359999999999998e-01 1 0 0 0 0 +P 285 -211 -3.1422244950363426e-01 -4.4329822380123687e-02 3.7312147425334075e+02 3.7312163530094614e+02 1.3957000000000000e-01 1 0 0 0 0 +V -75 0 0 0 0 0 0 2 0 +P 286 3122 7.4262577958025780e-02 -2.4548660956187812e-01 2.0956003441221887e+03 2.0956006568059443e+03 1.1156800000000000e+00 2 0 0 -148 0 +P 287 211 -3.9039541146372155e-02 2.1107166763967344e-01 4.2163294363264680e+02 4.2163302137220023e+02 1.3957000000000000e-01 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 288 -211 -2.0057133852812120e-01 6.3358175356901622e-02 5.3623025438152285e+02 5.3623031379900362e+02 1.3957000000000000e-01 1 0 0 0 0 +P 289 111 3.1720852422812107e-01 -3.0976971985094492e-01 5.7528165457763157e+02 5.7528184126713484e+02 1.3497999999999999e-01 2 0 0 -149 0 +V -77 0 0 0 0 0 0 2 0 +P 290 -211 -3.5297618575010037e-01 5.2153555934991228e-02 -8.0473046163509775e+02 8.0473055284076520e+02 1.3957000000000000e-01 1 0 0 0 0 +P 291 211 -4.3236004417965990e-01 8.1308540264093787e-01 -8.7028198251002880e+02 8.7028248092469994e+02 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 0 0 0 0 0 2 0 +P 292 421 -1.7659721204514614e+01 -1.3074065417320448e+01 2.7202781467015444e+02 2.7292014446359110e+02 1.8645000000000000e+00 2 0 0 -150 0 +P 293 111 -1.4776451472050109e+00 -1.0577813465072390e+00 2.2908056187391484e+01 2.2980417629868313e+01 1.3497999999999999e-01 2 0 0 -151 0 +V -79 0 0 0 0 0 0 2 0 +P 294 -211 -1.1583166595630789e+00 -1.0356886852578260e+00 2.0998472633156180e+01 2.1056345391518004e+01 1.3957000000000000e-01 1 0 0 0 0 +P 295 211 -4.0033937843749587e+00 -2.6524733090065382e+00 5.2159779948282527e+01 5.2380577511954947e+01 1.3957000000000000e-01 1 0 0 0 0 +V -80 0 -1.4431088124816109e-05 -4.8928852593760701e-06 4.1880274008966248e-04 4.1945629741203458e-04 0 2 0 +P 296 22 -8.5756643853515627e-02 3.5367132902272655e-02 1.2404140135934969e+00 1.2438777918967254e+00 0 1 0 0 0 0 +P 297 22 -2.3881849645594963e-02 -7.2540252771141386e-02 1.9413905114422942e+00 1.9428920579725391e+00 0 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 298 -211 -3.7116803471142029e-01 -1.5843331213655415e-01 3.3881934198240016e+00 3.4149965240721345e+00 1.3957000000000000e-01 1 0 0 0 0 +P 299 111 -1.4863948599066970e+00 -2.4605035091902030e+00 2.7696156184156585e+01 2.7845264124728452e+01 1.3497999999999999e-01 2 0 0 -152 0 +V -82 0 0 0 0 0 0 2 0 +P 300 211 -1.3102071172472114e+00 -6.6653559707336441e-01 1.4736991379972928e+01 1.4810783473893188e+01 1.3957000000000000e-01 1 0 0 0 0 +P 301 -211 -6.6001250531248001e-01 -8.3817907178677653e-02 3.8600596933206637e+00 3.9194620255376229e+00 1.3957000000000000e-01 1 0 0 0 0 +V -83 0 0 0 0 0 0 3 0 +P 302 111 -1.0129607511280893e-01 1.7331886710189474e-02 1.1003937127586700e+00 1.1133944550827461e+00 1.3497999999999999e-01 2 0 0 -153 0 +P 303 111 2.6736441445761979e-02 -6.4664089522388349e-02 2.1034626839622458e-01 2.5954081529339207e-01 1.3497999999999999e-01 2 0 0 -154 0 +P 304 221 -1.1025089952773082e-01 9.3855832111780987e-03 2.3898831919172103e+00 2.4542792268866394e+00 5.4744999999999999e-01 2 0 0 -155 0 +V -84 0 0 0 0 0 0 2 0 +P 305 311 2.1723555449960955e-01 2.5511909827769035e+00 2.9876035175259780e+01 2.9989680224020404e+01 4.9767000000000000e-01 2 0 0 -156 0 +P 306 211 3.3032821126792672e-01 6.6929463924130272e-01 6.4845571157288475e+00 6.5288615250536779e+00 1.3957000000000000e-01 1 0 0 0 0 +V -85 0 0 0 0 0 0 2 0 +P 307 -311 7.4141747198539887e-01 1.8100047541943822e+00 1.5235835672865862e+01 1.5368935589605529e+01 4.9767000000000000e-01 2 0 0 -157 0 +P 308 -211 5.8970851337611008e-01 1.9279465025540885e+00 1.8876557468741275e+01 1.8984431397938966e+01 1.3957000000000000e-01 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 309 -211 5.6503765038489062e-01 2.3392525032674194e+00 1.9776469739542058e+01 1.9922841287434835e+01 1.3957000000000000e-01 1 0 0 0 0 +P 310 211 -1.1698407055756944e-01 6.6383270616705115e-01 9.5858997540570403e+00 9.6105833857405401e+00 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 311 211 1.3668928578316808e+00 3.5273910635892820e+00 3.2919426948257488e+01 3.3136370262701405e+01 1.3957000000000000e-01 1 0 0 0 0 +P 312 111 3.4083938668539631e+00 7.3637743950997869e+00 8.1016841670164283e+01 8.1422289183628351e+01 1.3497999999999999e-01 2 0 0 -158 0 +V -88 0 0 0 0 0 0 2 0 +P 313 321 5.1398658600433409e+00 1.0815446396235405e+01 1.1230433937571154e+02 1.1294202222992146e+02 4.9359999999999998e-01 1 0 0 0 0 +P 314 -211 1.4809390437974521e+00 3.6232085950452890e+00 3.9666759311137888e+01 3.9859654978528077e+01 1.3957000000000000e-01 1 0 0 0 0 +V -89 0 0 0 0 0 0 2 0 +P 315 311 8.3836765391802071e-01 1.1061415327090975e+00 -2.0993031465343575e+00 2.5653768813702778e+00 4.9767000000000000e-01 2 0 0 -159 0 +P 316 211 1.0392575238106148e+00 7.2574223863792198e-01 -2.9001820808281353e+00 3.1681688535488077e+00 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 317 311 1.6058894356953304e-02 -3.9658053507255009e-01 -2.7554049904710340e+00 2.8279791546790221e+00 4.9767000000000000e-01 2 0 0 -160 0 +P 318 211 -4.9457973416370704e-01 -2.4449879686077405e-01 -2.6488057631132196e+00 2.7092509168981773e+00 1.3957000000000000e-01 1 0 0 0 0 +V -91 0 0 0 0 0 0 2 0 +P 319 211 5.5367043874559790e-02 5.2998456753257217e-01 5.0211679739135224e+00 5.0512925829459654e+00 1.3957000000000000e-01 1 0 0 0 0 +P 320 111 -2.6308556172843650e-01 -1.0479134122864993e-01 1.3534295300588093e+00 1.3893114594005462e+00 1.3497999999999999e-01 2 0 0 -161 0 +V -92 0 0 0 0 0 0 1 0 +P 321 130 3.6602657683902218e-01 2.7637537539729494e-02 1.1512728067232807e+00 1.3068449765883683e+00 4.9767000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 322 -321 -1.8424422202606633e-01 1.0267733119375648e-01 3.3182378596813287e+00 3.3613735319231615e+00 4.9359999999999998e-01 1 0 0 0 0 +P 323 211 2.5061687005741484e-01 4.1111105095076861e-01 1.4668363167462029e+00 1.5501321481721444e+00 1.3957000000000000e-01 1 0 0 0 0 +V -94 0 4.9204414482214235e-05 9.3279171563236449e-05 3.5046945812757313e-05 1.2049586895639305e-04 0 2 0 +P 324 22 1.4638419996119670e-03 5.3436389585819963e-02 -2.7413433695101901e-02 6.0075676544863857e-02 0 1 0 0 0 0 +P 325 22 1.4114779065072622e-01 2.1691933131626764e-01 1.2899176186669112e-01 2.8916356916760982e-01 0 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 326 -211 -1.7165868603711240e-01 -4.4258740952734626e-01 6.6513282107305505e-01 8.2899443552578533e-01 1.3957000000000000e-01 1 0 0 0 0 +P 327 111 4.1393041000816050e-01 1.7855384603152144e-01 6.8502876375156219e-01 8.3108595694378429e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -96 0 0 0 0 0 0 3 0 +P 328 -211 -3.9561090808922145e-01 -2.1572664482033080e-01 -2.0918580262695435e-01 5.1602757756276807e-01 1.3957000000000000e-01 1 0 0 0 0 +P 329 211 -7.2592869091610646e-01 -5.6546117318346967e-01 -8.6889461933755874e-01 1.2732542743250301e+00 1.3957000000000000e-01 1 0 0 0 0 +P 330 111 7.5195477124670789e-03 -3.7276307923386154e-02 -2.3492322655699543e-01 2.7359566792284662e-01 1.3497999999999999e-01 2 0 0 -163 0 +V -97 0 0 0 0 0 0 2 0 +P 331 211 -2.1245054419147788e-01 -9.4426467212448351e-01 -1.0757049671517334e+00 1.4537509986254611e+00 1.3957000000000000e-01 1 0 0 0 0 +P 332 111 -4.0237996847179375e-01 -1.8278784340935744e-01 -9.6114577330509182e-02 4.7199432952211190e-01 1.3497999999999999e-01 2 0 0 -164 0 +V -98 0 0 0 0 0 0 2 0 +P 333 211 2.0149439122852938e-01 -5.3302766918694060e-02 5.7020627225908882e-01 6.2294153215317916e-01 1.3957000000000000e-01 1 0 0 0 0 +P 334 111 -3.3335360091003480e-01 5.6583731288352612e-01 2.2813085968389601e+00 2.3777899407437744e+00 1.3497999999999999e-01 2 0 0 -165 0 +V -99 0 -3.5153111932296456e-07 1.6115135681743178e-05 4.6661535374685549e-05 4.9448443747731639e-05 0 2 0 +P 335 22 -9.2603642081564800e-03 7.6483303944505310e-01 2.1439769219474183e+00 2.2763330982997969e+00 0 1 0 0 0 0 +P 336 22 -7.4857902311984215e-03 2.8558964801153959e-03 7.8874014455751498e-02 7.9279905123913585e-02 0 1 0 0 0 0 +V -100 0 0 0 0 0 0 2 0 +P 337 -211 9.3383194809242093e-02 -2.6183692551778537e-01 6.6393712447782982e-01 7.3319253051110411e-01 1.3957000000000000e-01 1 0 0 0 0 +P 338 111 6.7289261809585277e-02 1.3713406947866838e-01 4.0726953178542686e+00 4.0777935639557263e+00 1.3497999999999999e-01 2 0 0 -166 0 +V -101 0 -1.9219786930458220e+00 -2.4415068214109641e+00 2.4918920370571573e+02 2.4927833695139438e+02 0 2 0 +P 339 2112 -3.3088369099467252e-01 -5.7444073773084292e-01 3.9933593320707132e+01 3.9950145600068296e+01 9.3957000000000002e-01 1 0 0 0 0 +P 340 211 -5.6758936924963282e-02 8.2014820752740830e-02 1.0325214502289962e+01 1.0326639449062938e+01 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 -2.1522575615476658e+01 -4.3850708113160948e+02 3.2110018097210530e+04 3.2113842334975812e+04 0 2 0 +P 341 -3122 -6.1950855666021008e-02 -1.8608321980917468e+00 1.4056162772703544e+02 1.4057838548480370e+02 1.1156800000000000e+00 2 0 0 -167 0 +P 342 111 -6.1144406211079527e-02 -6.4714570154417439e-01 4.3086981861879245e+01 4.3092096279523801e+01 1.3497999999999999e-01 2 0 0 -168 0 +V -103 0 0 0 0 0 0 2 0 +P 343 -311 2.3049720807893612e-01 2.8623903870378370e-01 1.6043582351245217e+01 1.6055505966499382e+01 4.9767000000000000e-01 2 0 0 -169 0 +P 344 111 4.3323721233431339e-02 -1.5003883936399090e-01 1.1853284016418417e+00 1.2031673276307036e+00 1.3497999999999999e-01 2 0 0 -170 0 +V -104 0 0 0 0 0 0 3 0 +P 345 211 -9.5026966603014729e-03 1.0472305562351994e-01 5.4539722523898408e+00 5.4567710538707095e+00 1.3957000000000000e-01 1 0 0 0 0 +P 346 -211 1.5951683483820989e-01 -1.9899631133411760e-01 1.3219014899412011e+01 1.3222211609571907e+01 1.3957000000000000e-01 1 0 0 0 0 +P 347 111 -7.4674051730606081e-02 -1.1330685333969616e-01 1.8391615088576583e+00 1.8490941871844135e+00 1.3497999999999999e-01 2 0 0 -171 0 +V -105 0 0 0 0 0 0 2 0 +P 348 211 9.4240763765740421e-02 -2.0039207547628959e-01 4.4634358422556447e-01 5.1743664882589113e-01 1.3957000000000000e-01 1 0 0 0 0 +P 349 -211 1.2820088924631756e-01 5.1534025291000973e-01 1.0318751511090531e+00 1.1688700341138147e+00 1.3957000000000000e-01 1 0 0 0 0 +V -106 0 1.7283871159768377e-04 -5.1237670737495545e-05 4.6694794270726891e-04 5.0505361596110525e-04 0 2 0 +P 350 22 2.0590099653440450e-01 -1.0805686291631406e-01 4.5142756285929947e-01 5.0779754873991134e-01 0 1 0 0 0 0 +P 351 22 1.4033350106869832e-01 5.4163779105943517e-03 4.8397333694826589e-01 5.0393751552023625e-01 0 1 0 0 0 0 +V -107 0 -5.9571695161317901e+00 1.2245768940169006e+01 2.8503800469478131e+02 2.9797787574076551e+02 0 2 0 +P 352 -2212 -2.0445056851432947e-01 3.2050366895688145e-02 2.9022963766333598e+00 3.0572049508829320e+00 9.3827000000000005e-01 1 0 0 0 0 +P 353 111 1.2185508809238729e-01 1.3773583207185866e-01 1.0497232649974710e+00 1.0742245367740775e+00 1.3497999999999999e-01 2 0 0 -172 0 +V -108 0 -9.6322276038832619e+00 9.1930061220952801e+00 1.6049331662647239e+02 1.6189071810331086e+02 0 2 0 +P 354 2212 -4.0557945128879624e-01 6.3010018115544275e-01 8.6263887815885774e+00 8.7095611217567726e+00 9.3827000000000005e-01 1 0 0 0 0 +P 355 111 -2.8752136302370007e-01 3.1395818652041142e-02 2.9221390377369709e+00 2.9395187340600821e+00 1.3497999999999999e-01 2 0 0 -173 0 +V -109 0 0 0 0 0 0 2 0 +P 356 22 8.2860331849337263e-02 2.5946703798069704e-01 5.8422378213656290e-01 6.4459786379308515e-01 0 1 0 0 0 0 +P 357 111 1.6254024186608135e-01 -5.4323460646157928e-01 1.7376202728837526e+00 1.8327757585203810e+00 1.3497999999999999e-01 2 0 0 -174 0 +V -110 0 0 0 0 0 0 2 0 +P 358 3122 8.2287967470987355e-01 -4.8977375048154131e-01 1.9007652783367175e+00 2.4030521824217304e+00 1.1156800000000000e+00 2 0 0 -175 0 +P 359 22 4.2440133887952043e-02 4.8963717863264443e-02 5.5112841739653869e-02 8.5064892617582183e-02 0 1 0 0 0 0 +V -111 0 1.9575759832658340e-06 -8.4215463207310107e-06 3.4437014986610818e-05 3.5510543948550919e-05 0 2 0 +P 360 22 3.8993041770294784e-01 -1.7748547164591819e+00 7.3603534731863398e+00 7.5813559635089769e+00 0 1 0 0 0 0 +P 361 22 6.5790980468783872e-02 -1.8567141221184214e-01 6.5654331790388576e-01 6.8545711368985129e-01 0 1 0 0 0 0 +V -112 0 -1.9123820769240353e-05 -1.0931279074538166e-04 4.2796901319070433e-04 4.4237576117062659e-04 0 2 0 +P 362 22 -2.8016866721716417e-02 -2.9039021747390238e-02 1.1296536115102888e-01 1.1995575194600025e-01 0 1 0 0 0 0 +P 363 22 -1.4452078978212046e-01 -9.5719552670846475e-01 3.7482280417359468e+00 3.8712172488618730e+00 0 1 0 0 0 0 +V -113 0 -5.2829075954546687e-05 -1.9728039359830118e-05 3.2116418888762709e-04 3.3253598813309538e-04 0 2 0 +P 364 22 -9.2677622365995471e-02 3.5763487191755067e-02 4.0184387193941451e-01 4.1394041372978913e-01 0 1 0 0 0 0 +P 365 22 -1.6658093635336459e-02 -7.6592884067167299e-02 2.6284154819225458e-01 2.7428022427690846e-01 0 1 0 0 0 0 +V -114 0 1.9026721056032020e-06 -6.6487627924737098e-05 3.1923840683783920e-04 3.2634509371974645e-04 0 2 0 +P 366 22 -5.2922013066489092e-03 -1.8495279301222559e-01 1.1983795218151989e+00 1.2125794907319167e+00 0 1 0 0 0 0 +P 367 22 2.5362907683383399e-02 -5.1640486805460895e-01 2.1691688376471201e+00 2.2299351360646953e+00 0 1 0 0 0 0 +V -115 0 8.3080161206741342e-07 8.9690026702319606e-06 -7.7220185387585991e-03 7.7220260674473792e-03 0 2 0 +P 368 22 1.2807334442024216e-02 1.6872475428951880e-01 -8.7236246335492766e+01 8.7236410441840746e+01 0 1 0 0 0 0 +P 369 22 6.1102140270908939e-03 3.5501549883767261e-02 -8.8595935336439027e+01 8.8595942660108562e+01 0 1 0 0 0 0 +V -116 0 0 0 0 0 0 1 0 +P 370 130 -2.5901715207887410e-01 -6.0542629745708865e-01 -4.0542979190677522e+02 4.0543063213315133e+02 4.9767000000000000e-01 1 0 0 0 0 +V -117 0 -2.5932220974105986e-05 -3.2182840041165912e-05 -2.1919063527299769e-02 2.1919107939990485e-02 0 2 0 +P 371 22 -1.3648486710504911e-02 -2.4201149018738738e-02 -4.4727716633536524e+01 4.4727725263272021e+01 0 1 0 0 0 0 +P 372 22 -2.1288484139337188e-01 -2.5693504327423017e-01 -1.4674830135649992e+02 1.4674868069795471e+02 0 1 0 0 0 0 +V -118 0 -6.3426606413962393e-05 2.4808356359595279e-05 -7.4879667489093568e-03 7.4883096167834978e-03 0 2 0 +P 373 22 -2.0640267653597780e-01 9.1527235463937567e-02 -3.1540598860155647e+01 3.1541407003444920e+01 0 1 0 0 0 0 +P 374 22 -1.7782037660169078e-01 5.8755791844814761e-02 -1.3819694063004073e+01 1.3820962930434334e+01 0 1 0 0 0 0 +V -119 0 -7.6594382175148806e-05 1.0311568830732706e-04 -3.2105301032281353e-03 3.2132543973279917e-03 0 2 0 +P 375 22 -1.4532360372654066e-01 1.8123345408859942e-01 -4.2544899258831723e+00 4.2608272722702969e+00 0 1 0 0 0 0 +P 376 22 -1.8149523905037179e-01 2.5874855200269725e-01 -9.4444486025079506e+00 9.4497354852067552e+00 0 1 0 0 0 0 +V -120 0 -2.6945611630769845e-05 -5.9334602571253519e-05 -5.3573371544319063e-04 5.4164571933427151e-04 0 2 0 +P 377 22 -5.1425758174186931e-02 -1.9143430287238708e-01 -1.4218012667249478e+00 1.4355523476978096e+00 0 1 0 0 0 0 +P 378 22 -2.7515104904687560e-02 1.7605450827771700e-02 -1.4770409307338708e-01 1.5127303793933949e-01 0 1 0 0 0 0 +V -121 0 -3.9050402682915103e-07 -1.2881513157305690e-06 -6.6667818902411055e-05 6.7019627241645576e-05 0 2 0 +P 379 22 -3.0608461630266422e-02 4.7117413463821520e-02 -7.5238235400289355e-01 7.5447739209987430e-01 0 1 0 0 0 0 +P 380 22 2.2770067252179792e-02 -7.2973838334351560e-02 -5.8580783350209997e-01 5.9077447036609565e-01 0 1 0 0 0 0 +V -122 0 0 0 0 0 0 3 0 +P 381 111 2.9839928828064254e-02 1.0831091175723169e-01 -6.6841704714606320e-01 6.9110247016893900e-01 1.3497999999999999e-01 2 0 0 -176 0 +P 382 111 9.4051595670043689e-02 -1.5755662152753916e-01 -9.1611447140274083e-01 9.4401012534229567e-01 1.3497999999999999e-01 2 0 0 -177 0 +P 383 111 -5.8991234477435692e-02 5.1879693076710056e-03 -4.7175090929207414e-01 4.9424224990242172e-01 1.3497999999999999e-01 2 0 0 -178 0 +V -123 0 1.5187813460115701e-06 1.3188082387851436e-05 -6.6229648474863657e-05 7.1493291597544587e-05 0 2 0 +P 384 22 5.5902947386336610e-02 8.1294574520283755e-02 -3.1554495833037971e-01 3.3060938900859188e-01 0 1 0 0 0 0 +P 385 22 -4.7151088874938803e-02 -5.2992830333063673e-03 -6.6098201979547425e-02 8.1365102394629227e-02 0 1 0 0 0 0 +V -124 0 1.3941114862900531e+02 -3.8582616698811592e+01 -3.8025609716628168e+02 4.1577110253421068e+02 0 2 0 +P 386 211 3.9155250151203191e-01 -2.1528995768384931e-01 -1.5735145062373210e+00 1.6416731750135662e+00 1.3957000000000000e-01 1 0 0 0 0 +P 387 -211 4.1789588401695882e-01 -8.7282582441069474e-03 -6.3432673863972289e-01 7.7237513464870078e-01 1.3957000000000000e-01 1 0 0 0 0 +V -125 0 8.4498806531586952e-06 -1.1900512863807261e-05 -6.7398973710353891e-05 6.9967903545644137e-05 0 2 0 +P 388 22 -2.6630265638253693e-02 -6.5818770699674248e-02 -3.0798444672715158e-01 3.1606281187480750e-01 0 1 0 0 0 0 +P 389 22 1.2307273012265166e-01 -7.0007383103435336e-02 -4.6127175879284371e-01 4.8251379881686041e-01 0 1 0 0 0 0 +V -126 0 7.8004833521485510e-05 1.1576629387707435e-05 -3.0620108155017886e-04 3.1874407920848768e-04 0 2 0 +P 390 22 1.9933684671653129e-01 7.6146875018833646e-02 -6.2136899240287891e-01 6.5698778508720601e-01 0 1 0 0 0 0 +P 391 22 6.2267559322930169e-02 -3.7322393019573769e-02 -4.0553598837003274e-01 4.1198258194734583e-01 0 1 0 0 0 0 +V -127 0 -8.7813863521750088e-06 1.2034602514798763e-05 -1.5143311212175529e-04 1.6721408133485042e-04 0 2 0 +P 392 22 -2.3942903281016213e-03 -3.0130749814585231e-02 -5.2283330825283574e-03 3.0674585203165079e-02 0 1 0 0 0 0 +P 393 22 -1.4702427472264043e-02 5.3561241855756364e-02 -2.8960087494286813e-01 2.9487901717548981e-01 0 1 0 0 0 0 +V -128 0 -2.1423274294986983e-09 -5.6955749109414071e-08 -1.2016903773209067e-06 1.2236738425450761e-06 0 2 0 +P 394 22 2.9979179212612915e-02 -5.2589578798866686e-02 -6.6790136325526994e-01 6.7063898337537198e-01 0 1 0 0 0 0 +P 395 22 -3.1271496752553057e-02 1.8232125983285968e-02 -5.6995088522171715e-02 6.7518568132518497e-02 0 1 0 0 0 0 +V -129 0 6.4230189101412486e-04 2.1134687592085452e-04 -1.2311020831505474e-03 1.4158196050410717e-03 0 2 0 +P 396 22 4.7543339096574699e-01 1.2513612268912652e-01 -8.8650115517581829e-01 1.0136963335116276e+00 0 1 0 0 0 0 +P 397 22 1.1406207269271662e-02 3.5056505732190810e-02 -4.6625855552734644e-02 5.9439301513772705e-02 0 1 0 0 0 0 +V -130 0 6.1987795725867684e-06 9.5499117210155789e-07 -4.4541397254386405e-06 9.4731035377011082e-06 0 2 0 +P 398 22 3.1268929850001737e-02 -1.5940111577112004e-02 2.8161984871342943e-02 4.4999228026143444e-02 0 1 0 0 0 0 +P 399 22 1.2007827458552617e-01 3.9256837468990093e-02 -1.3691268131352266e-01 1.8629270951908428e-01 0 1 0 0 0 0 +V -131 0 -6.1020743762232836e-06 2.3286883231540951e-05 3.1154149503248974e-05 4.0116565936475085e-05 0 2 0 +P 400 22 9.8091349468157167e-03 2.8377074072342766e-02 2.8749442920756804e-03 3.0161942344527581e-02 0 1 0 0 0 0 +P 401 22 -1.1681959734655756e-01 3.7999883038497267e-01 5.4346712538239117e-01 6.7335165091470495e-01 0 1 0 0 0 0 +V -132 0 0 0 0 0 0 1 0 +P 402 310 6.3943275598408489e-01 1.2113139656898524e+00 3.6184751514319600e+00 3.9009221503807563e+00 4.9767000000000000e-01 2 0 0 -179 0 +V -133 0 2.1682042467538229e-04 5.8286243176109223e-04 1.5576230338453930e-03 1.6773997708551909e-03 0 2 0 +P 403 22 2.4201269272194240e-02 6.6012324731882441e-02 2.3795568295198377e-01 2.4812544307272844e-01 0 1 0 0 0 0 +P 404 22 1.0510982471609078e+00 2.8246364319896307e+00 7.4869221627889990e+00 8.0707733191912254e+00 0 1 0 0 0 0 +V -134 0 3.4028799303023395e-07 6.8044664732665194e-05 2.3824180161942965e-04 2.4828257593497463e-04 0 2 0 +P 405 22 -1.8724816343446530e-02 1.8332032364017255e-02 1.8532644632463863e-01 1.8716990640861672e-01 0 1 0 0 0 0 +P 406 22 2.1601819009504697e-02 5.5695914997728446e-01 1.8289153502253255e+00 1.9119627328004498e+00 0 1 0 0 0 0 +V -135 0 -2.8410493234902523e-07 4.9653121634296811e-06 1.2557293115166877e-05 1.3560118830762203e-05 0 2 0 +P 407 22 -4.4743249094535947e-02 1.9716395208185372e-01 6.6189268680366531e-01 6.9208201189183216e-01 0 1 0 0 0 0 +P 408 22 1.2964127804323806e-02 3.5824089844551110e-01 7.4272826674382830e-01 8.2471200315568660e-01 0 1 0 0 0 0 +V -136 0 1.2820883171547144e-04 3.9619298966311092e-04 1.2949937227216559e-03 1.3632177937560695e-03 0 2 0 +P 409 22 9.5401467154298369e-02 1.4201353519440010e-01 4.1464312309795665e-01 4.4855122744902953e-01 0 1 0 0 0 0 +P 410 22 9.8717857676942675e-02 4.5785711823261399e-01 1.5460900319572877e+00 1.6154791063515139e+00 0 1 0 0 0 0 +V -137 0 2.1777252934043211e-04 2.7706919009262037e-04 2.5559848756957063e-03 2.5836416730343919e-03 0 2 0 +P 411 22 2.2477690016267710e-01 2.0485754477111837e-01 1.9801073036459287e+00 2.0033262845698210e+00 0 1 0 0 0 0 +P 412 22 -5.3958177061138798e-03 7.4258186776740800e-02 5.9475707649892273e-01 5.9939917684096833e-01 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 413 130 -3.7995269441653340e-01 1.6535799088428479e-01 -6.1483584577768262e+00 6.1823696483920711e+00 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 0 0 0 0 0 1 0 +P 414 130 -3.9453058218165832e-01 2.5328290511276014e-01 -7.7255254295189668e-01 1.0316586018738949e+00 4.9767000000000000e-01 1 0 0 0 0 +V -140 0 5.1667498257619163e-05 1.1962214121015359e-05 6.6265382966993475e-05 8.6460256588212749e-05 0 2 0 +P 415 22 1.3628231428135446e-01 -3.0848081013764246e-02 1.8460013377020124e-01 2.3152037205414516e-01 0 1 0 0 0 0 +P 416 22 2.8685562368232276e-01 1.2881424518545415e-01 3.5808914774329187e-01 4.7655754776562892e-01 0 1 0 0 0 0 +V -141 0 1.4713679733888919e-04 2.5364571091757474e-04 -3.5805830609983571e-04 4.8528410808895716e-04 0 2 0 +P 417 22 1.5170505358038230e-01 1.4788339243534807e-01 -2.0395109752352847e-01 2.9407477148008737e-01 0 1 0 0 0 0 +P 418 22 -1.5653415608630622e-02 8.6652869458158130e-02 -1.2713140471466566e-01 1.5464845059124649e-01 0 1 0 0 0 0 +V -142 0 9.7597729456307835e-06 -2.4311387032276793e-06 -1.5958603367984514e-05 2.0536181575424412e-05 0 2 0 +P 419 22 1.7652769046773198e-01 -5.0690402920813803e-02 -2.6675987154484626e-01 3.2387091798549728e-01 0 1 0 0 0 0 +P 420 22 -1.4239926135551901e-02 1.0264865654100702e-02 1.3965196634240379e-03 1.7609464228449393e-02 0 1 0 0 0 0 +V -143 0 -2.1652244280857262e-08 6.8267089224883744e-08 1.3007207375452835e-05 1.3045179682912007e-05 0 2 0 +P 421 22 4.6650114506723746e-02 -3.2179447089061786e-02 1.2307133927841611e+00 1.2320175344437061e+00 0 1 0 0 0 0 +P 422 22 -4.9596190139431888e-02 4.1468091973747144e-02 5.3909006044410879e-01 5.4295255593644887e-01 0 1 0 0 0 0 +V -144 0 -3.5047386073016382e-05 5.9568512439212194e-05 7.1411357862754014e-04 7.1820668730872685e-04 0 2 0 +P 423 22 -1.6211167583281016e-02 1.6029005891738021e-01 1.5450176957825907e+00 1.5533947937415964e+00 0 1 0 0 0 0 +P 424 22 -1.2734670917005905e-01 8.3708998510534635e-02 1.3800686115077676e+00 1.3884573285618313e+00 0 1 0 0 0 0 +V -145 0 -7.8293712475779411e-06 5.6698396843146972e-06 9.7563357563170913e-05 1.0036958783961753e-04 0 2 0 +P 425 22 -4.4907714662178962e-04 2.5252550384878151e-03 5.2306614750949010e-01 5.2307243595291153e-01 0 1 0 0 0 0 +P 426 22 -4.8718143319626740e-02 3.3080446741616781e-02 8.9616398642579656e-02 1.0723279512724822e-01 0 1 0 0 0 0 +V -146 0 -5.4416939621261388e-05 3.5741612642758141e-05 4.9122987480755935e-03 4.9134773215459586e-03 0 2 0 +P 427 22 -2.6387009064352013e-02 8.4004864299616053e-02 5.9618585584390296e+00 5.9625087473567762e+00 0 1 0 0 0 0 +P 428 22 -5.9337350640484919e-02 -2.7700212109627198e-02 1.7766079519621116e+00 1.7778143991730293e+00 0 1 0 0 0 0 +V -147 0 -4.8810730286750834e+00 1.2545934191710093e+00 4.4352264291904982e+02 4.4621617285212420e+02 0 2 0 +P 429 211 -1.7457052418593882e-01 1.4834074360287047e-01 2.2901757748054155e+00 2.3058327581446125e+00 1.3957000000000000e-01 1 0 0 0 0 +P 430 -211 1.2468457532958163e-01 -1.3551844351094258e-01 2.2427512581060007e+00 2.2546229135917155e+00 1.3957000000000000e-01 1 0 0 0 0 +V -148 0 3.3734014604774782e+00 -1.1151308101528222e+01 9.5193318840002597e+04 9.5193333043762643e+04 0 2 0 +P 431 2212 8.1826167453099480e-02 -1.1732909246796693e-01 1.8196620878460528e+03 1.8196623353678799e+03 9.3827000000000005e-01 1 0 0 0 0 +P 432 -211 -7.5635894950737050e-03 -1.2815751709391118e-01 2.7593825627613575e+02 2.7593832143806401e+02 1.3957000000000000e-01 1 0 0 0 0 +V -149 0 5.5860599777425171e-05 -5.4550622136858487e-05 1.0130742338609310e-01 1.0130745626221979e-01 0 2 0 +P 433 22 5.3127991794322899e-02 -3.2276297017659527e-03 4.3064051628352409e+01 4.3064084521216841e+01 0 1 0 0 0 0 +P 434 22 2.6408053243379820e-01 -3.0654209014917899e-01 5.3221760294927924e+02 5.3221775674591811e+02 0 1 0 0 0 0 +V -150 0 -1.5319121601429257e+00 -1.1341243479074379e+00 2.3597355380886921e+01 2.3674761521425197e+01 0 3 0 +P 435 -11 -3.4448541147224727e+00 -2.1673819217200201e+00 5.1935029434568854e+01 5.2094259250861342e+01 5.1000000000000004e-04 1 0 0 0 0 +P 436 12 -4.2238184423944363e+00 -2.9424417727589072e+00 5.8151692879242468e+01 5.8379088640900576e+01 0 1 0 0 0 0 +P 437 -323 -9.9910486473977098e+00 -7.9642417228415239e+00 1.6194109235634318e+02 1.6244679657182928e+02 8.9113612264994757e-01 2 0 0 -180 0 +V -151 0 -3.0267907484688106e-04 -2.1667467318300509e-04 4.6924589888549329e-03 4.7072814206849970e-03 0 2 0 +P 438 22 -3.8616153777891304e-01 -3.2085121577077497e-01 6.9505767564859688e+00 6.9686859223044602e+00 0 1 0 0 0 0 +P 439 22 -1.0914836094260980e+00 -7.3693013073646418e-01 1.5957479430905517e+01 1.6011731707563854e+01 0 1 0 0 0 0 +V -152 0 -1.7062890829058920e-05 -2.8245053783665636e-05 3.1793469023735265e-04 3.1964635688822040e-04 0 2 0 +P 440 22 -1.0435465547979850e+00 -1.7996058853758738e+00 1.9566723582087082e+01 1.9676997801811968e+01 0 1 0 0 0 0 +P 441 22 -4.4284830510871187e-01 -6.6089762381432915e-01 8.1294326020695031e+00 8.1682663229164856e+00 0 1 0 0 0 0 +V -153 0 -3.1542001895608145e-05 5.3968764619798570e-06 3.4264526572323572e-04 3.4669349205948460e-04 0 2 0 +P 442 22 -8.0791166844111639e-02 -3.2189915652128150e-02 3.3426949576462373e-01 3.4539759569003958e-01 0 1 0 0 0 0 +P 443 22 -2.0504908268697278e-02 4.9521802362317624e-02 7.6612421699404609e-01 7.6799685939270645e-01 0 1 0 0 0 0 +V -154 0 9.1194079493466010e-06 -2.2055972303718910e-05 7.1746026337098247e-05 8.8525564591978662e-05 0 2 0 +P 444 22 4.4375559630183692e-02 -8.1141214280723017e-02 6.7063784646850977e-02 1.1423938969813084e-01 0 1 0 0 0 0 +P 445 22 -1.7639118184421713e-02 1.6477124758334672e-02 1.4328248374937363e-01 1.4530142559526124e-01 0 1 0 0 0 0 +V -155 0 0 0 0 0 0 3 0 +P 446 -211 -1.2083893186628652e-02 -3.0447187204953679e-03 2.1866051202995368e-01 2.5970655595851694e-01 1.3957000000000000e-01 1 0 0 0 0 +P 447 211 -3.9017277570356779e-02 6.7873350480066846e-02 9.7799031246865564e-01 9.9099645601633257e-01 1.3957000000000000e-01 1 0 0 0 0 +P 448 111 -5.9149728770745383e-02 -5.5443048548393381e-02 1.1932323674186009e+00 1.2035762149117901e+00 1.3497999999999999e-01 2 0 0 -181 0 +V -156 0 0 0 0 0 0 1 0 +P 449 130 2.1723555449960955e-01 2.5511909827769035e+00 2.9876035175259780e+01 2.9989680224020404e+01 4.9767000000000000e-01 1 0 0 0 0 +V -157 0 0 0 0 0 0 1 0 +P 450 130 7.4141747198539887e-01 1.8100047541943822e+00 1.5235835672865862e+01 1.5368935589605529e+01 4.9767000000000000e-01 1 0 0 0 0 +V -158 0 1.7351913697729272e-03 3.7488501266216717e-03 4.1245152398448455e-02 4.1451563116734411e-02 0 2 0 +P 451 22 1.0308594459127123e+00 2.3659970894042619e+00 2.5530134555087137e+01 2.5660249099047178e+01 0 1 0 0 0 0 +P 452 22 2.3775344209412506e+00 4.9977773056955250e+00 5.5486707115077145e+01 5.5762040084581187e+01 0 1 0 0 0 0 +V -159 0 0 0 0 0 0 1 0 +P 453 310 8.3836765391802071e-01 1.1061415327090975e+00 -2.0993031465343575e+00 2.5653768813702778e+00 4.9767000000000000e-01 2 0 0 -182 0 +V -160 0 0 0 0 0 0 1 0 +P 454 130 1.6058894356953304e-02 -3.9658053507255009e-01 -2.7554049904710340e+00 2.8279791546790221e+00 4.9767000000000000e-01 1 0 0 0 0 +V -161 0 -1.9621188813682868e-04 -7.8154448263063547e-05 1.0094015110836691e-03 1.0361626189904641e-03 0 2 0 +P 455 22 -2.3254182817736807e-01 -1.2491575400732739e-01 1.0094632796952816e+00 1.0434058464971556e+00 0 1 0 0 0 0 +P 456 22 -3.0543733551068413e-02 2.0124412778677454e-02 3.4396625036352763e-01 3.4590561290339050e-01 0 1 0 0 0 0 +V -162 0 8.3568869810553821e-05 3.6048434114535610e-05 1.3830121728265946e-04 1.6778886609429203e-04 0 2 0 +P 457 22 2.4288492612237900e-01 9.0668436853967346e-02 2.7353811306807857e-01 3.7687790075813715e-01 0 1 0 0 0 0 +P 458 22 1.7104548388578150e-01 8.7885409177554094e-02 4.1149065068348356e-01 4.5420805618564708e-01 0 1 0 0 0 0 +V -163 0 1.3216006764163915e-07 -6.5515102303526367e-07 -4.1289011918747853e-06 4.8085900059113686e-06 0 2 0 +P 459 22 -3.5887241341837671e-03 -8.6583539240239468e-02 -1.1971285349112167e-01 1.4778618169255256e-01 0 1 0 0 0 0 +P 460 22 1.1108271846650846e-02 4.9307231316853314e-02 -1.1521037306587376e-01 1.2580948623029431e-01 0 1 0 0 0 0 +V -164 0 -1.5055072319461211e-05 -6.8390188808296272e-06 -3.5961330733259308e-06 1.7659698101569677e-05 0 2 0 +P 461 22 -4.0993083371611022e-01 -1.7677142719017691e-01 -1.0529647981044868e-01 4.5867066023728786e-01 0 1 0 0 0 0 +P 462 22 7.5508652443164728e-03 -6.0164162191805306e-03 9.1819024799394983e-03 1.3323669284824168e-02 0 1 0 0 0 0 +V -165 0 -2.7392401929328713e-06 4.6496102213396840e-06 1.8746016793834067e-05 1.9538825314188313e-05 0 2 0 +P 463 22 -1.0003731834853867e-01 2.5283097632200424e-01 1.1235326616057013e+00 1.1559656609714217e+00 0 1 0 0 0 0 +P 464 22 -2.3331628256149614e-01 3.1300633656152188e-01 1.1577759352332588e+00 1.2218242797723524e+00 0 1 0 0 0 0 +V -166 0 8.0199826021123069e-06 1.6344552188550145e-05 4.8541096624487993e-04 4.8601860918723636e-04 0 2 0 +P 465 22 8.3203992980317998e-03 1.3075378695986642e-01 2.0217898032967851e+00 2.0260305502542839e+00 0 1 0 0 0 0 +P 466 22 5.8968862511553477e-02 6.3802825188019703e-03 2.0509055145574835e+00 2.0517630137014415e+00 0 1 0 0 0 0 +V -167 0 -2.2176502920647817e+01 -4.5814924703217315e+02 3.3593727812626566e+04 3.3597728938269509e+04 0 2 0 +P 467 -2112 1.7006220476968738e-02 -1.4198676287057894e+00 1.1029194055578076e+02 1.1030508264191346e+02 9.3957000000000002e-01 1 0 0 0 0 +P 468 111 -7.8957076142989746e-02 -4.4096456938595763e-01 3.0269687171254702e+01 3.0273302842890274e+01 1.3497999999999999e-01 2 0 0 -183 0 +V -168 0 -2.1522583089730073e+01 -4.3850716023828937e+02 3.2110023364135854e+04 3.2113847602526319e+04 0 2 0 +P 469 22 -5.9972763472978974e-02 -9.9333440691246874e-02 7.7279221313918729e+00 7.7287932003421123e+00 0 1 0 0 0 0 +P 470 22 -1.1716427381005567e-03 -5.4781226085292756e-01 3.5359059730487374e+01 3.5363303079181698e+01 0 1 0 0 0 0 +V -169 0 0 0 0 0 0 1 0 +P 471 310 2.3049720807893612e-01 2.8623903870378370e-01 1.6043582351245217e+01 1.6055505966499382e+01 4.9767000000000000e-01 2 0 0 -184 0 +V -170 0 3.4914532678784311e-06 -1.2091611271883410e-05 9.5525467425175406e-05 9.6963104236280875e-05 0 2 0 +P 472 22 -2.8578799884222700e-03 -9.5650782111636912e-02 1.0001698534411347e+00 1.0047372668160850e+00 0 1 0 0 0 0 +P 473 22 4.6181601221853615e-02 -5.4388057252354009e-02 1.8515854820070704e-01 1.9843006081461845e-01 0 1 0 0 0 0 +V -171 0 -9.1930787284703778e-06 -1.3949140284832638e-05 2.2641809508738701e-04 2.2764090129283901e-04 0 2 0 +P 474 22 -5.6083499290132392e-02 -1.8008624103932162e-02 1.2949529474570507e+00 1.2962919445720726e+00 0 1 0 0 0 0 +P 475 22 -1.8590552440473678e-02 -9.5298229235763990e-02 5.4420856140060736e-01 5.5280224261234023e-01 0 1 0 0 0 0 +V -172 0 -5.9571323110808398e+00 1.2245810993961999e+01 2.8503832519848919e+02 2.9797820372525308e+02 0 2 0 +P 476 22 8.5402691888110185e-02 9.3794685734850029e-04 4.4832020929371880e-01 4.5638307329173206e-01 0 1 0 0 0 0 +P 477 22 3.6452396204277100e-02 1.3679788521451017e-01 6.0140305570375219e-01 6.1784146348234537e-01 0 1 0 0 0 0 +V -173 0 -9.6322483005437558e+00 9.1930083820616098e+00 1.6049352697091061e+02 1.6189092969879238e+02 0 2 0 +P 478 22 -2.5840597269925236e-01 2.3419710580106768e-02 2.8430324580141546e+00 2.8548477519637201e+00 0 1 0 0 0 0 +P 479 22 -2.9115390324447706e-02 7.9761080719343742e-03 7.9106579722816081e-02 8.4670982096361508e-02 0 1 0 0 0 0 +V -174 0 1.9362453383904747e-06 -6.4712311384416142e-06 2.0699238014152610e-05 2.1832768783954246e-05 0 2 0 +P 480 22 7.9982585631339087e-02 -3.0055554413619706e-01 7.3899963334118335e-01 8.0178008655346600e-01 0 1 0 0 0 0 +P 481 22 8.2557656234742274e-02 -2.4267906232538228e-01 9.9862063954256941e-01 1.0309956719669151e+00 0 1 0 0 0 0 +V -175 0 5.9189417978298913e+00 -3.5229237181331476e+00 1.3672131417971420e+01 1.7285061767891126e+01 0 2 0 +P 482 2112 6.4235137517222740e-01 -4.9497879877226753e-01 1.6667267978295450e+00 2.0780734597031976e+00 9.3957000000000002e-01 1 0 0 0 0 +P 483 111 1.8052829953764615e-01 5.2050482907261431e-03 2.3403848050717271e-01 3.2497872271853295e-01 1.3497999999999999e-01 2 0 0 -185 0 +V -176 0 3.2368107173649057e-05 1.1748751882197927e-04 -7.2504846587870763e-04 7.4965590405039033e-04 0 2 0 +P 484 22 3.3096438086071843e-02 9.5270032922071729e-02 -6.7001799393867234e-01 6.7756613373792551e-01 0 1 0 0 0 0 +P 485 22 -3.2565092580075930e-03 1.3040878835159950e-02 1.6009467926091832e-03 1.3536336431013284e-02 0 1 0 0 0 0 +V -177 0 1.7771818971166606e-05 -2.9771613501586606e-05 -1.7310732929777555e-04 1.7837844148214842e-04 0 2 0 +P 486 22 6.1558622792612913e-02 -1.6626655517397546e-01 -5.8726617661499658e-01 6.1344567290473251e-01 0 1 0 0 0 0 +P 487 22 3.2492972877430783e-02 8.7099336464362964e-03 -3.2884829478774430e-01 3.3056445243756311e-01 0 1 0 0 0 0 +V -178 0 -9.0319580215618126e-06 7.9431328093258927e-07 -7.2228263183565165e-05 7.5671839946126528e-05 0 2 0 +P 488 22 2.9573892989124079e-02 1.8632854481216092e-02 -3.9234195500013468e-02 5.2546365327999708e-02 0 1 0 0 0 0 +P 489 22 -8.8565127466559770e-02 -1.3444885173545086e-02 -4.3251671379206064e-01 4.4169588457442188e-01 0 1 0 0 0 0 +V -179 0 3.8965967184924509e+01 7.3815455645638423e+01 2.2050384921737077e+02 2.3771569892247584e+02 0 2 0 +P 490 -211 3.4370582722418813e-01 9.0073938794577968e-01 2.0637289851098379e+00 2.2820872572159208e+00 1.3957000000000000e-01 1 0 0 0 0 +P 491 211 2.9572692875989670e-01 3.1057457774407260e-01 1.5547461663221218e+00 1.6188348931648355e+00 1.3957000000000000e-01 1 0 0 0 0 +V -180 0 -1.5319121601429257e+00 -1.1341243479074379e+00 2.3597355380886921e+01 2.3674761521425197e+01 0 2 0 +P 492 -311 -5.3510513540338858e+00 -4.2539020075613285e+00 9.0128199084237636e+01 9.0388436088253655e+01 4.9767000000000000e-01 2 0 0 -186 0 +P 493 -211 -4.6399972933638240e+00 -3.7103397152801953e+00 7.1812893272105555e+01 7.2058360483575626e+01 1.3957000000000000e-01 1 0 0 0 0 +V -181 0 -6.5602296668407379e-06 -6.1491259464092745e-06 1.3234005529448296e-04 1.3348727974680637e-04 0 2 0 +P 494 22 1.9370444762873518e-02 5.2687557162780880e-03 2.9877395026023861e-02 3.5994897564105149e-02 0 1 0 0 0 0 +P 495 22 -7.8520173533618898e-02 -6.0711804264671466e-02 1.1633549723925771e+00 1.1675813173476850e+00 0 1 0 0 0 0 +V -182 0 5.7856733218161665e+01 7.6336122058612588e+01 -1.4487536765697124e+02 1.7703966169953557e+02 0 2 0 +P 496 -211 7.3723989960307834e-01 1.0190140014707236e+00 -1.6758967864123988e+00 2.1000052448428641e+00 1.3957000000000000e-01 1 0 0 0 0 +P 497 211 1.0112775431494231e-01 8.7127531238373843e-02 -4.2340636012195859e-01 4.6537163652741326e-01 1.3957000000000000e-01 1 0 0 0 0 +V -183 0 -2.2176503811378527e+01 -4.5814925200678346e+02 3.3593728154105018e+04 3.3597729279788749e+04 0 2 0 +P 498 22 -1.6452711791992366e-02 -3.6019051458233342e-01 2.5273229778463250e+01 2.5275801695169278e+01 0 1 0 0 0 0 +P 499 22 -6.2504364350997391e-02 -8.0774054803624262e-02 4.9964573927914531e+00 4.9975011477210005e+00 0 1 0 0 0 0 +V -184 0 8.3204896062159062e+00 1.0332658544013446e+01 5.7914133239431510e+02 5.7957175112961193e+02 0 2 0 +P 500 111 2.3112168034984848e-01 1.3399634313306413e-01 4.4107569879031141e+00 4.4209013852196390e+00 1.3497999999999999e-01 2 0 0 -187 0 +P 501 111 -6.2447227091235033e-04 1.5224269557071959e-01 1.1632825363342103e+01 1.1634604581279744e+01 1.3497999999999999e-01 2 0 0 -188 0 +V -185 0 5.9191423123642126e+00 -3.5229179368354964e+00 1.3672391366783058e+01 1.7285422724912362e+01 0 2 0 +P 502 22 1.3849160653925421e-01 4.8985762220871587e-02 9.9620470836708538e-02 1.7749300885361896e-01 0 1 0 0 0 0 +P 503 22 4.2036692998391960e-02 -4.3780713930145439e-02 1.3441800967046419e-01 1.4748571386491399e-01 0 1 0 0 0 0 +V -186 0 -1.5319121601429257e+00 -1.1341243479074379e+00 2.3597355380886921e+01 2.3674761521425197e+01 0 1 0 +P 504 310 -5.3510513540338858e+00 -4.2539020075613285e+00 9.0128199084237636e+01 9.0388436088253655e+01 4.9767000000000000e-01 2 0 0 -189 0 +V -187 0 8.3205058018096860e+00 1.0332667933657628e+01 5.7914164147318786e+02 5.7957206091934199e+02 0 2 0 +P 505 22 1.4556432632519314e-01 1.1477835496819101e-01 2.0062005312401254e+00 2.0147465387526720e+00 0 1 0 0 0 0 +P 506 22 8.5557354024655349e-02 1.9217988164873117e-02 2.4045564566629887e+00 2.4061548464669662e+00 0 1 0 0 0 0 +V -188 0 8.3204895606801834e+00 1.0332669645357106e+01 5.7914218064513989e+02 5.7957259951017500e+02 0 2 0 +P 507 22 -5.3429310476486372e-02 1.0250131131284537e-01 4.7891381981192582e+00 4.7905329443313311e+00 0 1 0 0 0 0 +P 508 22 5.2804838205574023e-02 4.9741384257874215e-02 6.8436871652228444e+00 6.8440716369484100e+00 0 1 0 0 0 0 +V -189 0 -3.2981548940590801e+02 -2.6210829108664274e+02 5.5529047098669216e+03 5.5689474897177488e+03 0 2 0 +P 509 -211 -1.7367273505747305e+00 -1.5458641657711161e+00 2.8848140564360470e+01 2.8942021555434749e+01 1.3957000000000000e-01 1 0 0 0 0 +P 510 211 -3.6143240034591551e+00 -2.7080378417902127e+00 6.1280058519877166e+01 6.1446414532818906e+01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 5 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 218 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 21 3.2992939111429004e-01 -7.1181912190923491e-01 9.0096214824555136e+02 9.0096248984688827e+02 0 3 0 0 -3 0 +P 14 2 -5.5365822308336554e-01 3.4509673924388229e-01 2.5091064739376443e+00 2.6134545117488437e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 29 2101 2.2372883196907553e-01 3.6672238266535262e-01 5.3966101099142470e+03 5.3966101581077546e+03 5.7933000000000001e-01 2 0 0 -25 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 -4.4604738137447780e-01 -4.4508489499117149e-01 -3.3991077613470765e+01 3.3996917744924559e+01 0 3 0 0 -4 0 +P 16 2203 2.3781727192142083e-01 1.3771298185638053e-01 -6.2853045277091305e+03 6.2853045810455988e+03 7.7132999999999996e-01 2 0 0 -11 0 +P 37 1 2.0823010945305698e-01 3.0737191313479095e-01 -7.4415207898946619e+01 7.4416865722193066e+01 3.3000000000000002e-01 2 0 0 -25 0 +V -3 0 0 0 0 0 0 5 0 +P 5 1 -3.0085522013949689e-01 1.1399974905881729e+00 5.0422379313784262e+02 5.0422517159941145e+02 0 3 0 0 -5 0 +P 13 -1 1.2673117148687165e+00 -1.3842638091505211e+00 7.8698417845006162e+01 7.8721484593363400e+01 3.3000000000000002e-01 2 0 0 -9 0 +P 30 21 -4.6149507887473545e-01 -2.2715799945074164e-01 5.7059132312250952e+01 5.7061450723684736e+01 0 2 0 0 -25 0 +P 31 21 -4.0362956554163681e-01 1.1673687347620827e+00 1.4998499597455123e+02 1.4999008195235854e+02 0 2 0 0 -25 0 +P 32 21 2.5074276787416866e-01 -1.3942091873039719e+00 1.0761474191487194e+02 1.0762406500684733e+02 0 2 0 0 -25 0 +V -4 0 0 0 0 0 0 4 0 +P 6 -2 3.6455143299337252e+00 3.8342312877411899e+00 -1.8047247107697999e+00 5.5900031824060150e+00 0 3 0 0 -5 0 +P 15 2 -4.1159171909325689e+00 -3.0147215458824776e+00 -2.9604825409076863e+01 3.0043034264596933e+01 3.3000000000000002e-01 2 0 0 -11 0 +P 35 21 -1.6212560032512757e-01 -8.5363446188281877e-01 8.8578769426193138e-01 1.2408047163436402e+00 0 2 0 0 -25 0 +P 36 21 1.6433585287674621e-01 -4.2451452632135017e-01 -8.6248126834592029e-02 4.6331155282492553e-01 0 2 0 0 -25 0 +V -5 0 0 0 0 0 0 2 0 +P 7 -24 -9.0579211800333426e-01 3.7016351602104836e+00 4.9106971928988440e+02 4.9762938157847765e+02 8.0442586013329560e+01 3 0 0 -6 0 +P 8 22 4.2504512277975630e+00 1.2725936181188806e+00 1.1349349137188561e+01 1.2185793203339950e+01 0 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 -24 -9.0579211800333426e-01 3.7016351602104836e+00 4.9106971928988440e+02 4.9762938157847765e+02 8.0442586013329560e+01 2 0 0 -8 0 +V -7 0 0 0 0 0 0 1 0 +P 10 22 4.2504512277975630e+00 1.2725936181188806e+00 1.1349349137188561e+01 1.2185793203339923e+01 0 1 0 0 0 0 +V -8 0 0 0 0 0 0 2 0 +P 11 11 -3.1560318019062390e+01 2.6910330199055338e+01 2.8518798748746264e+02 2.8818814644654589e+02 5.1000000000000004e-04 1 0 0 0 0 +P 12 -12 3.0654525901059060e+01 -2.3208695038844859e+01 2.0588173180242171e+02 2.0944123513193171e+02 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 1 0 +P 46 92 7.1365349178535098e-01 -1.0391670699066387e+00 8.1207524318943811e+01 8.1334939105112241e+01 4.3727730006198762e+00 2 0 0 -10 0 +V -10 0 0 0 0 0 0 5 0 +P 47 111 -1.2987933502875690e-01 -2.5113340363148784e-01 2.5317152752162979e+00 2.5510269428703771e+00 1.3497999999999999e-01 2 0 0 -35 0 +P 48 213 7.4830653663342495e-01 -1.7382372879353764e-02 4.3774839145295914e+01 4.3790551134415779e+01 9.0308451414957169e-01 2 0 0 -36 0 +P 49 -213 -2.9117511823875525e-01 -4.3939165795158736e-01 1.4260854072619713e+01 1.4288861360745033e+01 7.2232411525528162e-01 2 0 0 -37 0 +P 50 213 -2.1069355383734140e-01 -2.7656697558868826e-01 1.5627412790254821e+01 1.5654259573374869e+01 8.4789811178222296e-01 2 0 0 -38 0 +P 51 111 5.9709496225677960e-01 -5.4692659855521464e-02 5.0127030355570623e+00 5.0502400937061882e+00 1.3497999999999999e-01 2 0 0 -39 0 +V -11 0 0 0 0 0 0 1 0 +P 52 92 -3.8780999190111483e+00 -2.8770085640260969e+00 -6.3149093531182070e+03 6.3153476153101956e+03 7.4243163100063839e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 10 0 +P 53 113 -2.6442133118282958e+00 -2.3165293324998335e+00 -2.2580063872574136e+01 2.2865503691765191e+01 7.8345542426979031e-01 2 0 0 -40 0 +P 54 221 -5.1630481154154895e-01 1.5967696321760094e-02 -2.0035205258790207e+01 2.0049338564902872e+01 5.4744999999999999e-01 2 0 0 -41 0 +P 55 211 -8.7519077897546693e-01 -6.7220077889196328e-01 -6.5156567288365199e+00 6.6099224790975617e+00 1.3957000000000000e-01 1 0 0 0 0 +P 56 111 1.9202974635290213e-01 2.5211810958452568e-01 -9.4217139466307191e+00 9.4280089232669173e+00 1.3497999999999999e-01 2 0 0 -42 0 +P 57 -213 9.4326428486984373e-02 -4.8155754348202640e-01 -4.3195836080971688e+01 4.3206533032295752e+01 8.2670840923091482e-01 2 0 0 -43 0 +P 58 321 -4.2092082351619076e-01 7.6023322511133951e-01 -5.4832750693731569e+01 5.4841857358199974e+01 4.9359999999999998e-01 1 0 0 0 0 +P 59 -323 5.3330045068290033e-01 -4.0351878893496296e-01 -6.3591499500441905e+01 6.3601150529299844e+01 8.8334769611541319e-01 2 0 0 -44 0 +P 60 111 -4.7209376929507818e-01 -5.2551861933480060e-01 -3.3238644448347941e+01 3.3246424570325850e+01 1.3497999999999999e-01 2 0 0 -45 0 +P 61 2224 6.8188613475259922e-03 3.7782727808420416e-02 -9.1247280998350175e+02 9.1247367669780419e+02 1.2570732634256450e+00 2 0 0 -46 0 +P 62 111 2.2414808927512009e-01 4.5621474029144382e-01 -5.1490251726043825e+03 5.1490251994632381e+03 1.3497999999999999e-01 2 0 0 -47 0 +V -13 0 0 0 0 0 2 1 0 +P 17 2 -3.6919233007313528e+00 8.1942682496522661e+00 2.9565764077792278e+02 2.9579421373680213e+02 0 2 0 0 -13 0 +P 18 -2 3.6919233007313528e+00 -8.1942682496522661e+00 1.0292203617146285e+02 1.0331370605822661e+02 0 2 0 0 -13 0 +P 63 92 0 0 3.9857967694938566e+02 3.9910791979502875e+02 2.0527366271357579e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 7 0 +P 64 213 -1.5835447595257053e+00 3.0390962863600426e+00 1.0583303842892066e+02 1.0589013999419520e+02 5.8822159912046279e-01 2 0 0 -48 0 +P 65 -213 -1.1443922070689834e+00 2.4049085538196557e+00 9.6289570725061836e+01 9.6329373550777277e+01 7.5733717238090137e-01 2 0 0 -49 0 +P 66 213 -3.0046508081645801e-01 1.7803118867427987e+00 5.7444662891378144e+01 5.7478363119977544e+01 7.8303420682014024e-01 2 0 0 -50 0 +P 67 -213 -2.5016439277491315e-01 3.1350862441051930e-01 4.0612390002610852e+01 4.0622507641923903e+01 8.1304090487992176e-01 2 0 0 -51 0 +P 68 213 3.3250187937355535e-01 -8.3151583915031479e-01 6.8897046607273635e+00 6.9760920973408034e+00 6.2916972907766511e-01 2 0 0 -52 0 +P 69 223 1.8182876739207015e+00 -4.9227019655990896e+00 6.7504589614192298e+01 6.7712745517919686e+01 7.7918026591325340e-01 2 0 0 -53 0 +P 70 -211 1.1277768868918030e+00 -1.7836075465836119e+00 2.4005720626494561e+01 2.4098697872894373e+01 1.3957000000000000e-01 1 0 0 0 0 +V -15 0 0 0 0 0 2 1 0 +P 19 1 4.0721905699000063e+00 -5.2481001487683923e+00 5.1379595964107374e+01 5.1807221240325212e+01 0 2 0 0 -15 0 +P 20 -1 -4.0721905699000063e+00 5.2481001487683923e+00 3.4479876218613377e+01 3.5113916831649327e+01 0 2 0 0 -15 0 +P 71 92 0 0 8.5859472182720751e+01 8.6921138071974539e+01 1.3543828123239873e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 8 0 +P 72 -211 4.1720297738051321e-01 -9.7235207672939661e-01 7.5602071648272782e+00 7.6351646377442872e+00 1.3957000000000000e-01 1 0 0 0 0 +P 73 211 2.6665249123579446e+00 -2.9349752846126558e+00 3.2950695340201079e+01 3.3188736616767464e+01 1.3957000000000000e-01 1 0 0 0 0 +P 74 111 3.6072230697643126e-01 -6.2146570580823457e-01 3.1338517615404928e+00 3.2180097373930638e+00 1.3497999999999999e-01 2 0 0 -54 0 +P 75 113 -4.4948408298591003e-01 -3.3788088157719054e-03 8.4523847160801058e+00 8.4982551917835956e+00 7.5860830396560419e-01 2 0 0 -55 0 +P 76 -213 -2.7928243095832456e-01 3.3421120888543193e-01 4.9816177588983468e+00 5.0588216417181506e+00 7.6515691106980155e-01 2 0 0 -56 0 +P 77 213 -3.0578817058647956e-01 7.0283103003245251e-01 4.1808064202695698e+00 4.3325688354318341e+00 8.3936435946542598e-01 2 0 0 -57 0 +P 78 -211 -3.2872639824348276e-01 9.2343958879558319e-01 4.7634610442269851e+00 4.8652690186489309e+00 1.3957000000000000e-01 1 0 0 0 0 +P 79 213 -2.0811691139406925e+00 2.5716900482525915e+00 1.9836447976676894e+01 2.0124312392487205e+01 7.4727930113389407e-01 2 0 0 -58 0 +V -17 0 0 0 0 0 2 1 0 +P 21 3 -1.8652550805155896e+00 -4.6351934290813315e+00 -2.5073948479495525e+00 5.5902793815615270e+00 0 2 0 0 -17 0 +P 22 -3 1.8652550805155896e+00 4.6351934290813315e+00 -3.8523971426252422e+02 3.8527211375820042e+02 0 2 0 0 -17 0 +P 80 92 0 0 -3.8774710911047379e+02 3.9086239313976193e+02 4.9250276622696788e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 10 0 +P 81 -313 -1.6233937553850981e+00 -4.1954492475589094e+00 -2.4490241228785110e+00 5.1978988434783595e+00 8.8500370548764440e-01 2 0 0 -59 0 +P 82 -211 -4.2766056399724119e-02 2.0905450136158240e-02 -1.4002124745972655e-01 2.0335119391229980e-01 1.3957000000000000e-01 1 0 0 0 0 +P 83 323 -4.4702319815240105e-01 -4.8462854486530810e-01 -3.3690973393284223e+00 3.5379978508332535e+00 8.5552167970554593e-01 2 0 0 -60 0 +P 84 333 2.9235882051604356e-01 4.1909099446358361e-01 -1.1614528740318077e+01 1.1670274542743341e+01 1.0182922477141036e+00 2 0 0 -61 0 +P 85 -313 -1.9559777497210154e-01 3.2725284319419412e-01 -4.0791168457425862e+01 4.0802601861674923e+01 8.8743543275557690e-01 2 0 0 -62 0 +P 86 -213 4.2480750680325324e-01 4.0902356994726946e-01 -2.7722906134034435e+01 2.7734649552550263e+01 5.5090796661843766e-01 2 0 0 -63 0 +P 87 113 3.6771897497445705e-01 4.4681480751080627e-01 -2.0704917165556715e+01 2.0730406353871473e+01 8.4928914234349040e-01 2 0 0 -64 0 +P 88 211 -2.8978227338924745e-01 -7.0628302343640245e-02 -1.4183290555585218e+01 1.4187112916027539e+01 1.3957000000000000e-01 1 0 0 0 0 +P 89 -211 -1.9540105972758251e-02 2.5692526030371343e-01 -1.4545461008205347e+01 1.4548412563961943e+01 1.3957000000000000e-01 1 0 0 0 0 +P 90 323 1.5332178619775767e+00 2.8706931692121325e+00 -2.5222669433968153e+02 2.5224968746070860e+02 1.0039174358388165e+00 2 0 0 -65 0 +V -19 0 0 0 0 0 2 1 0 +P 23 3 1.3025773740614568e-01 -4.3032393523974077e+00 2.5316489086932532e+00 4.9944050896041228e+00 0 2 0 0 -19 0 +P 24 -3 -1.3025773740614568e-01 4.3032393523974077e+00 -3.3157804489828713e+01 3.3436130676079749e+01 0 2 0 0 -19 0 +P 91 92 0 0 -3.0626155581135460e+01 3.8430535765683871e+01 2.3215181962620765e+01 2 0 0 -20 0 +V -20 0 0 0 0 0 0 9 0 +P 92 -311 2.2891228831712537e-01 -1.3418287413741594e+00 9.8860382248171286e-01 1.7543996561917701e+00 4.9767000000000000e-01 2 0 0 -66 0 +P 93 -213 -3.7639146848800681e-01 -1.5406289235386026e+00 1.6502657513639488e-01 1.7867414552349492e+00 8.0622778404095086e-01 2 0 0 -67 0 +P 94 2114 1.6153252959411044e-01 -1.2772848818918856e+00 5.2372112884638644e-01 1.9163288714391824e+00 1.3192736998381318e+00 2 0 0 -68 0 +P 95 211 2.5979025784637988e-01 2.2354774310929568e-01 -6.7894811146840361e-01 7.7324956804880274e-01 1.3957000000000000e-01 1 0 0 0 0 +P 96 -2214 -1.8636538951424170e-01 2.9256938238575925e-01 -4.5902650063153603e+00 4.7327213645256432e+00 1.0989948972200578e+00 2 0 0 -69 0 +P 97 111 2.4447109857296742e-01 3.3083128753819330e-01 -2.0318743236789594e+00 2.0774860592739199e+00 1.3497999999999999e-01 2 0 0 -70 0 +P 98 213 -2.7401510515621635e-01 2.8125233782844189e-01 -1.7321877321484938e+00 1.8713869334189455e+00 5.8942985993049790e-01 2 0 0 -71 0 +P 99 111 -1.0109282624214720e-01 5.2155147439574179e-01 -1.7600692215106526e+00 1.8434475758402007e+00 1.3497999999999999e-01 2 0 0 -72 0 +P 100 313 4.3158615070028994e-02 2.5099903215472157e+00 -2.1510162712478085e+01 2.1674774281710462e+01 8.9823502798501531e-01 2 0 0 -73 0 +V -21 0 0 0 0 0 2 1 0 +P 25 2 -2.8388113750031851e+00 2.9291876839233497e+00 -2.8168940832775746e+00 4.9572051386744045e+00 0 2 0 0 -21 0 +P 26 -2 2.8388113750031851e+00 -2.9291876839233497e+00 6.3131813241358550e+01 6.3263455751739258e+01 0 2 0 0 -21 0 +P 101 92 0 0 6.0314919158080976e+01 6.8220660890413654e+01 3.1877407348763036e+01 2 0 0 -22 0 +V -22 0 0 0 0 0 0 10 0 +P 102 213 -1.2382245544498864e+00 1.4759587873216322e+00 -1.5264135160047374e+00 2.5739330296056240e+00 7.6389700217915013e-01 2 0 0 -74 0 +P 103 221 -8.9982101828616334e-01 5.4142902707731055e-01 -5.3645233237309187e-01 1.3001176345700249e+00 5.4744999999999999e-01 2 0 0 -75 0 +P 104 -211 -8.6753321823725624e-03 5.6832963889609747e-02 9.7176499890667928e-02 1.7952243370663501e-01 1.3957000000000000e-01 1 0 0 0 0 +P 105 321 -4.0054756700537497e-01 4.1344381052312046e-01 1.2388557587843947e-01 7.6835065810119207e-01 4.9359999999999998e-01 1 0 0 0 0 +P 106 -313 -4.3881953299186965e-01 1.5849794511534281e-02 1.5502399495560006e+00 1.8454355154493816e+00 8.9976360337661621e-01 2 0 0 -76 0 +P 107 -213 2.6975585621736647e-01 -2.0224994353228565e-01 1.4308574448043745e-01 8.2389832737315261e-01 7.3801196599538910e-01 2 0 0 -77 0 +P 108 213 7.7555631014750070e-01 1.3582975137081782e-01 4.8071584803948841e+00 4.9465123732681642e+00 8.5981084646306349e-01 2 0 0 -78 0 +P 109 -211 1.6084505806401775e-01 -9.8786281136593837e-02 1.3415766842308592e+01 1.3417820598522365e+01 1.3957000000000000e-01 1 0 0 0 0 +P 110 211 3.3737414580549596e-01 -7.4336572542037649e-01 6.7542972105104546e+00 6.8048824022753731e+00 1.3957000000000000e-01 1 0 0 0 0 +P 111 -213 1.4425566346812861e+00 -1.5949421846047691e+00 3.5486174703439339e+01 3.5560187917541761e+01 7.9596446614794569e-01 2 0 0 -79 0 +V -23 0 0 0 0 0 2 1 0 +P 27 2 -3.5408957207564704e+00 1.3337324649314468e+00 1.4937252408811208e+01 1.5409032880678133e+01 0 2 0 0 -23 0 +P 28 -2 3.5408957207564704e+00 -1.3337324649314468e+00 4.7168621002604638e+00 6.0469474006441590e+00 0 2 0 0 -23 0 +P 112 92 0 0 1.9654114509071672e+01 2.1455980281322294e+01 8.6066760539008023e+00 2 0 0 -24 0 +V -24 0 0 0 0 0 0 8 0 +P 113 223 -1.7834465290486393e-01 1.0779146855581252e-01 2.9797667718739342e+00 3.0863604647422442e+00 7.7664991318275456e-01 2 0 0 -80 0 +P 114 113 -1.0902801693616622e+00 4.5065934647299072e-01 4.8491888434946748e+00 5.1024990374205057e+00 1.0625720176709026e+00 2 0 0 -81 0 +P 115 111 -3.3248940486964124e-01 2.3166493925117712e-01 5.1260100030508238e-01 6.6723102021907743e-01 1.3497999999999999e-01 2 0 0 -82 0 +P 116 213 5.4395505009151517e-02 -3.5753673771347694e-01 3.6959306688638129e+00 3.7765891594248417e+00 6.8697218303008856e-01 2 0 0 -83 0 +P 117 223 -3.6940382873256322e-01 -2.0534285256312060e-01 1.5468769853517426e+00 1.7802756873006378e+00 7.7325819698327591e-01 2 0 0 -84 0 +P 118 113 -2.1983674369034181e-01 6.1736195755313583e-01 1.8723689218941149e+00 2.0935892371951130e+00 6.6924325466460510e-01 2 0 0 -85 0 +P 119 111 1.1404511704074396e+00 -2.7154403133829735e-01 1.2971289847431351e+00 1.7536043557484422e+00 1.3497999999999999e-01 2 0 0 -86 0 +P 120 -213 9.9550812414248135e-01 -5.7305409021822129e-01 2.9002523325451683e+00 3.1958313192714209e+00 6.9458391375909678e-01 2 0 0 -87 0 +V -25 0 0 0 0 0 2 1 0 +P 33 21 8.8527156785984806e-01 -5.7553602736705196e+00 -2.4199878604494717e+01 2.4890600677783713e+01 0 2 0 0 -25 0 +P 34 21 -8.8527156785984806e-01 5.7553602736705196e+00 -6.2954009301687258e+01 6.3222742464919470e+01 0 2 0 0 -25 0 +P 121 92 -1.8021268256845246e-01 -1.0580531443966563e+00 5.5504994238782192e+03 5.8755200809247099e+03 1.9270939818607703e+03 2 0 0 -26 0 +V -26 0 0 0 0 0 0 37 0 +P 122 221 1.1563614818692559e-01 -3.1187647073665451e-02 5.3420846984279729e+02 5.3420876377842535e+02 5.4744999999999999e-01 2 0 0 -88 0 +P 123 2212 -6.2791982027313717e-02 7.6867611752465992e-01 2.9853349842085568e+03 2.9853352312756942e+03 9.3827000000000005e-01 1 0 0 0 0 +P 124 -211 -6.3737058678301636e-02 -6.4464644421178707e-01 1.9900387741310286e+02 1.9900498068310966e+02 1.3957000000000000e-01 1 0 0 0 0 +P 125 113 1.5027328344524130e-01 2.0693100318503993e-01 1.2269984836524957e+03 1.2269987428070176e+03 7.5535553100313535e-01 2 0 0 -89 0 +P 126 113 -9.9821919675496071e-02 5.0103807635626529e-01 2.1777529106655865e+02 2.1777760470222898e+02 8.6412218253814066e-01 2 0 0 -90 0 +P 127 -313 -9.1855261829841561e-01 -4.5271496597028515e-01 1.9852981625081372e+02 1.9853426767512232e+02 8.4782720070859996e-01 2 0 0 -91 0 +P 128 323 7.1450236264555178e-01 1.5079031761695599e-01 1.0405513205706657e+02 1.0406120895549580e+02 8.5524880571797579e-01 2 0 0 -92 0 +P 129 -213 -2.6371613026223212e-01 -3.3569803118640140e-01 1.5291910085517253e+02 1.5292119444523502e+02 6.7680487398242095e-01 2 0 0 -93 0 +P 130 211 3.0711481321928247e-01 5.6434962399740579e-02 1.7469094645523576e+01 1.7472442643564186e+01 1.3957000000000000e-01 1 0 0 0 0 +P 131 -211 -1.3416783174028993e-01 4.7853828154534966e-01 4.9650636537858709e+01 4.9653320012799036e+01 1.3957000000000000e-01 1 0 0 0 0 +P 132 211 -4.4171694323995486e-01 -8.0515863604828064e-01 1.9039571188948941e+01 1.9062217739053946e+01 1.3957000000000000e-01 1 0 0 0 0 +P 133 -2114 -1.3488630166892554e-01 -2.6020823766813067e-01 1.8719458121583301e+00 2.1920492447609377e+00 1.1022686271828712e+00 2 0 0 -94 0 +P 134 221 5.9907600476643053e-01 3.1183801267853273e-01 3.6841720694354785e-01 9.4422865160420322e-01 5.4744999999999999e-01 2 0 0 -95 0 +P 135 1114 -7.9078364399711776e-02 -5.3473729042418372e-02 2.4990460379589137e+00 2.8511181245797439e+00 1.3691349944600548e+00 2 0 0 -96 0 +P 136 223 -1.3331819562169198e-01 -3.1501969795261053e-01 -4.3131521562232121e-02 8.5408332284258204e-01 7.8140056489842125e-01 2 0 0 -97 0 +P 137 211 3.0231113463725909e-02 -2.1285675831915882e-01 -2.3543486414109713e-01 3.4803919310407555e-01 1.3957000000000000e-01 1 0 0 0 0 +P 138 111 -3.6331973746602270e-02 7.4355670744629440e-02 -7.6645288247255569e-02 1.7590588022778733e-01 1.3497999999999999e-01 2 0 0 -98 0 +P 139 113 1.6627168576861587e-01 -2.5512952828724614e-03 -1.1719602585717434e-01 7.9896620060520418e-01 7.7263141188851436e-01 2 0 0 -99 0 +P 140 -213 1.8246870701846693e-01 -6.4142436952788440e-01 -2.3077172616991168e+00 2.5247664616293304e+00 7.7728159309153089e-01 2 0 0 -100 0 +P 141 113 -9.2484989919595070e-02 -1.1964227291138891e+00 -5.3193696218967101e+00 5.5240094460187201e+00 8.8261337246030414e-01 2 0 0 -101 0 +P 142 221 4.3290844393668704e-01 -2.2932482823933737e+00 -1.1118240214783999e+01 1.1373713746251170e+01 5.4744999999999999e-01 2 0 0 -102 0 +P 143 211 1.4314659529045259e-01 3.3792954234072853e-01 -4.8759767464944481e+00 4.8917600452786267e+00 1.3957000000000000e-01 1 0 0 0 0 +P 144 -211 -1.5173971936078676e-01 1.2638509867730544e-01 -2.3517255215454607e+00 2.3641258107781722e+00 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 2.8806011104816087e-01 1.8808112209402078e-01 -6.9861950017284147e-01 7.9034292714425880e-01 1.3497999999999999e-01 2 0 0 -103 0 +P 146 111 -2.9325266533451849e-01 -2.1300619373632457e-01 -6.2084500620099243e+00 6.2204855547752071e+00 1.3497999999999999e-01 2 0 0 -104 0 +P 147 213 -6.9858610278359504e-02 1.2685306871492477e+00 -1.8500623011952744e+01 1.8556331415289904e+01 6.7106887426753614e-01 2 0 0 -105 0 +P 148 223 5.5063662683315945e-02 1.1997527113990876e-01 -3.0076947242410959e+00 3.1107144834006855e+00 7.8287353408961513e-01 2 0 0 -106 0 +P 149 -2214 -1.8794218320233000e-01 1.5241617555512106e+00 -1.9106462282427337e+01 1.9207265750409690e+01 1.2262810998017089e+00 2 0 0 -107 0 +P 150 2214 -2.8650488155922194e-01 2.9534757115427968e-01 -7.5922854307518755e+00 7.7042773613584803e+00 1.2424879732977692e+00 2 0 0 -108 0 +P 151 -213 -1.3395677309501619e-01 2.8646169779760616e-01 -7.1516780777701350e-01 1.1477456820086733e+00 8.4014905577871046e-01 2 0 0 -109 0 +P 152 221 1.5464435260082576e-01 -3.5154860600178450e-01 -2.3517657972875368e-02 6.6914563505238200e-01 5.4744999999999999e-01 2 0 0 -110 0 +P 153 -311 9.3352618998182743e-02 4.0984422314125646e-01 -2.9781253674948460e+00 3.0485395080484676e+00 4.9767000000000000e-01 2 0 0 -111 0 +P 154 333 -3.2368338848019457e-01 -4.2702770182420224e-01 -9.2713163076349650e-02 1.1654977849741417e+00 1.0308568096824740e+00 2 0 0 -112 0 +P 155 333 -1.0877256872155437e-01 3.7570467122067591e-01 -1.1471981162283685e+01 1.1523662684436765e+01 1.0175777145777671e+00 2 0 0 -113 0 +P 156 321 6.2410157985014460e-02 -5.2815613120594274e-01 -2.4718281324740081e+00 2.5761248423242393e+00 4.9359999999999998e-01 1 0 0 0 0 +P 157 113 1.7841524909498518e-01 -2.1422710011190485e-01 -4.1990941872267165e+01 4.1999942208294883e+01 8.2354169806912858e-01 2 0 0 -114 0 +P 158 -211 1.6252710659019495e-01 4.3949932995684760e-01 -1.7920595656609230e+01 1.7927264241762899e+01 1.3957000000000000e-01 1 0 0 0 0 +V -27 0 0 0 0 0 2 1 0 +P 38 21 -6.3139095306073623e+00 7.0920315162380083e+00 2.2607817567288038e+01 2.4520925344362215e+01 0 2 0 0 -27 0 +P 39 21 6.3139095306073623e+00 -7.0920315162380083e+00 -3.5928099200277863e+00 1.0152371531295421e+01 0 2 0 0 -27 0 +P 159 92 0 0 1.9015007647260251e+01 3.4673296875657634e+01 2.8994258059176538e+01 2 0 0 -28 0 +V -28 0 0 0 0 0 0 17 0 +P 160 213 -5.1422483611792558e-01 1.5560370109051272e-01 1.4202938423971254e+00 1.7497322796917145e+00 8.6930360517508554e-01 2 0 0 -115 0 +P 161 -213 1.2736655420832138e-01 8.1992574492073922e-01 1.5226761082985145e+00 1.8398587605528547e+00 6.1484734827861653e-01 2 0 0 -116 0 +P 162 223 -1.7023916178032368e+00 2.0795757104791130e+00 6.5575562691596261e+00 7.1299160716087355e+00 7.8191214916280161e-01 2 0 0 -117 0 +P 163 211 -2.9059822685827419e-01 -2.9736811450474465e-02 1.1929840970980694e+00 1.2361320512944036e+00 1.3957000000000000e-01 1 0 0 0 0 +P 164 -211 -1.0881062221915685e+00 1.2539725263908137e+00 2.4746291473983963e+00 2.9832350644507852e+00 1.3957000000000000e-01 1 0 0 0 0 +P 165 211 -1.2852746139432256e+00 1.4134826699002714e+00 5.3384294397887020e+00 5.6716992832711099e+00 1.3957000000000000e-01 1 0 0 0 0 +P 166 -2212 1.4237307138452032e-01 -3.5996864709774652e-02 5.6565571914432167e-01 1.1053880998206356e+00 9.3827000000000005e-01 1 0 0 0 0 +P 167 211 -1.7998566349533646e-01 -1.5840940836931164e-01 5.4777086598057086e-02 2.8278736506418189e-01 1.3957000000000000e-01 1 0 0 0 0 +P 168 2114 3.5739987847657645e-01 2.2720806770406607e-01 3.6523500098511946e-01 1.3004119985260876e+00 1.1740172830078466e+00 2 0 0 -118 0 +P 169 111 -5.1434735918982422e-01 -7.7300339775299809e-01 1.1148117917540183e-01 9.4484660794944053e-01 1.3497999999999999e-01 2 0 0 -119 0 +P 170 -211 1.5714668856322211e+00 -6.0581539196193168e-01 -5.4913199377787304e-02 1.6908624149062295e+00 1.3957000000000000e-01 1 0 0 0 0 +P 171 -1114 8.8585869246348492e-01 -1.5968024045320024e+00 -4.2221015967941866e-01 2.3027386541183241e+00 1.3378416752747129e+00 2 0 0 -120 0 +P 172 3112 1.2493548114864377e+00 -1.2508727455032398e+00 -6.8508891720731258e-01 2.2424940241854410e+00 1.1974400000000001e+00 2 0 0 -121 0 +P 173 313 6.8179411573870519e-01 -3.6752254254946726e-01 5.4549415498849577e-02 1.1551152151744939e+00 8.5521896965537603e-01 2 0 0 -122 0 +P 174 213 8.7514099172343518e-01 -9.1457541533900566e-01 -1.9944632590699943e-01 1.6271978862616123e+00 1.0028330760397095e+00 2 0 0 -123 0 +P 175 -211 7.3183821062345222e-02 7.1751877688641233e-02 -4.4579470420669780e-02 1.7880525076215875e-01 1.3957000000000000e-01 1 0 0 0 0 +P 176 113 -3.8901028257665571e-01 -2.8878531600595153e-01 7.6297841431025348e-01 1.2320758480194269e+00 8.3734632970974121e-01 2 0 0 -124 0 +V -29 0 0 0 0 0 2 1 0 +P 40 21 4.0592867731266056e+00 -2.6703314664466724e+00 -1.8206386794109676e+01 1.8843593058222922e+01 0 2 0 0 -29 0 +P 41 21 -4.0592867731266056e+00 2.6703314664466724e+00 6.5387013204165399e+01 6.5567293485463281e+01 0 2 0 0 -29 0 +P 177 92 0 0 4.7180626410055723e+01 8.4410886543686203e+01 6.9994187320418376e+01 2 0 0 -30 0 +V -30 0 0 0 0 0 0 15 0 +P 178 -321 -3.3623874390774883e-02 2.4690994028450861e-01 -2.6951601874273334e-01 6.1512188052391659e-01 4.9359999999999998e-01 1 0 0 0 0 +P 179 211 9.2022143347366359e-01 -9.0492262529110890e-01 -3.4802493120833939e+00 3.7144727086822180e+00 1.3957000000000000e-01 1 0 0 0 0 +P 180 331 2.8547714123264654e+00 -1.3978162152551836e+00 -1.1295889724261475e+01 1.1773753288764665e+01 9.5944351253944427e-01 2 0 0 -125 0 +P 181 -211 -2.1966458442153422e-01 -7.8242988024705071e-02 -3.6872339754814093e-01 4.5805155127295866e-01 1.3957000000000000e-01 1 0 0 0 0 +P 182 211 2.9560049319651122e-01 -2.0553784478372053e-01 2.0154644030530203e-01 4.3557572213806423e-01 1.3957000000000000e-01 1 0 0 0 0 +P 183 -213 4.8499322815683815e-01 -2.4176671902283986e-01 -1.2630218756659783e+00 1.5443904458672615e+00 7.0444872992306051e-01 2 0 0 -126 0 +P 184 223 -4.9798993623797905e-01 -7.9872460916706869e-02 1.4542593319776393e+00 1.7271969649830978e+00 7.8355954757476942e-01 2 0 0 -127 0 +P 185 111 -8.1435240888755867e-02 2.1770867381234621e-01 -4.8166487593616319e-01 5.5158808745506804e-01 1.3497999999999999e-01 2 0 0 -128 0 +P 186 211 -4.0963834077238803e-02 -8.1786285732019265e-02 -7.3954640395227589e-02 1.8252700066602331e-01 1.3957000000000000e-01 1 0 0 0 0 +P 187 -213 -1.9208712477878448e-01 1.0153734892728536e+00 1.0093633192296094e+01 1.0172602378103548e+01 7.2974470614907838e-01 2 0 0 -129 0 +P 188 113 -4.0460519527275640e-01 -1.8742290283792634e-01 1.4460803220046335e+01 1.4483694098040059e+01 6.8097888964938624e-01 2 0 0 -130 0 +P 189 323 -1.8174133915270314e+00 8.5518474033833691e-01 1.5636980567886377e+01 1.5790404265907304e+01 8.8734053469796670e-01 2 0 0 -131 0 +P 190 -313 -6.1300964784639689e-01 4.4874979596463827e-01 1.5814169758309760e+01 1.5858292211205139e+01 9.0570939246514259e-01 2 0 0 -132 0 +P 191 2112 -2.0875628243328179e-01 2.2254556192762173e-01 2.8276378449769140e+00 2.9952350959206409e+00 9.3957000000000002e-01 1 0 0 0 0 +P 192 -3122 -4.4603745527894489e-01 1.7089584026390511e-01 3.9246158988903992e+00 4.1079808441562280e+00 1.1156800000000000e+00 2 0 0 -133 0 +V -31 0 0 0 0 0 2 1 0 +P 42 21 -3.5966403857613591e+00 9.8909210856074747e-01 -6.8991601771054407e+00 7.8429928224539607e+00 0 2 0 0 -31 0 +P 43 21 3.5966403857613591e+00 -9.8909210856074747e-01 -5.4062667533947362e+01 5.4191199895830252e+01 0 2 0 0 -31 0 +P 193 92 0 0 -6.0961827711052806e+01 6.2034192718284217e+01 1.1484625737791408e+01 2 0 0 -32 0 +V -32 0 0 0 0 0 0 9 0 +P 194 -313 9.9449836339841191e-01 -6.3495009228094301e-01 -1.4642299615826484e+01 1.4717074686290321e+01 8.9619231626098039e-01 2 0 0 -134 0 +P 195 -213 6.9761486862091593e-01 -2.0191774573662452e-01 -9.7431391037408730e+00 9.7889921005604528e+00 6.0676970015494547e-01 2 0 0 -135 0 +P 196 321 9.0124089448534161e-01 -4.4767419129957531e-01 -8.9439134555301649e+00 9.0138713209953245e+00 4.9359999999999998e-01 1 0 0 0 0 +P 197 -321 -6.3603380049890879e-01 1.4504099316767780e-01 -4.6266617828900456e+00 4.6984269812705879e+00 4.9359999999999998e-01 1 0 0 0 0 +P 198 113 3.6907253066300794e-01 -1.4699212866480399e-01 -8.5021209501925501e+00 8.5375578909228391e+00 6.6784195014715297e-01 2 0 0 -136 0 +P 199 221 -1.1158814362096265e+00 7.2491333857959150e-01 -2.4507253306324639e+00 2.8419090198019128e+00 5.4744999999999999e-01 2 0 0 -137 0 +P 200 211 -3.4212525303292468e-01 -2.2696230407884616e-01 -6.7469338663752003e+00 6.7608548245304183e+00 1.3957000000000000e-01 1 0 0 0 0 +P 201 -213 -1.7598972275668995e-01 3.3505003289999202e-01 -1.7733387402423706e+00 1.9326147762775303e+00 6.6860951143368275e-01 2 0 0 -138 0 +P 202 323 -6.9239644466952743e-01 4.5349209741353164e-01 -3.5326948656226587e+00 3.7428911176348358e+00 9.1882152013627227e-01 2 0 0 -139 0 +V -33 0 0 0 0 0 2 1 0 +P 44 21 1.6002652901426460e+00 -2.4352657274836234e+00 2.8688832362561115e+01 2.8836443443833804e+01 0 2 0 0 -33 0 +P 45 21 -1.6002652901426460e+00 2.4352657274836234e+00 8.2577967751982451e-01 3.0287423525444375e+00 0 2 0 0 -33 0 +P 203 92 0 0 2.9514612040080941e+01 3.1865185796378242e+01 1.2011567006898593e+01 2 0 0 -34 0 +V -34 0 0 0 0 0 0 9 0 +P 204 111 1.0518787012931753e-01 -1.5995524457287180e-01 7.7600686419646514e-01 8.1059016893171143e-01 1.3497999999999999e-01 2 0 0 -140 0 +P 205 111 1.2478783609177713e-01 -3.6358255829143427e-02 2.1168354202844193e+00 2.1251131084660222e+00 1.3497999999999999e-01 2 0 0 -141 0 +P 206 -2224 -5.5186870172860858e-01 1.0329040235764173e+00 8.5442774549095424e-01 1.9723301257490100e+00 1.3373816085188170e+00 2 0 0 -142 0 +P 207 2224 -4.4972267469397098e-01 7.1644814273694990e-01 1.8328017645199988e+00 2.3811516687914014e+00 1.2630013999973755e+00 2 0 0 -143 0 +P 208 -213 -5.0716668288443600e-01 -5.4504576392598904e-02 1.3018912898240806e+00 1.5715730784703104e+00 7.1744840746711636e-01 2 0 0 -144 0 +P 209 211 1.1243572544296603e+00 -1.1191386976602283e-01 4.6556363922388408e+00 4.7928210848594484e+00 1.3957000000000000e-01 1 0 0 0 0 +P 210 -211 3.7004756859602959e-03 -8.3816613942284957e-01 6.7174081650278819e+00 6.7709370408591569e+00 1.3957000000000000e-01 1 0 0 0 0 +P 211 213 2.3150705552517567e-01 -5.3768853904646212e-03 3.2265766557190916e+00 3.3703104910732882e+00 9.4581788064766070e-01 2 0 0 -145 0 +P 212 221 -8.0782432554875203e-02 -5.4307719493941597e-01 8.0330277427792112e+00 8.0703590291778973e+00 5.4744999999999999e-01 2 0 0 -146 0 +V -35 0 -1.6215267168984296e-05 -3.1353680968872467e-05 3.1608138103218157e-04 3.1849241778733736e-04 0 2 0 +P 213 22 1.5032738330306678e-02 -1.0610389672991376e-01 7.6971546215477149e-01 7.7713957099295439e-01 0 1 0 0 0 0 +P 214 22 -1.4491207335906356e-01 -1.4502950690157407e-01 1.7619998130615260e+00 1.7738873718774226e+00 0 1 0 0 0 0 +V -36 0 0 0 0 0 0 2 0 +P 215 211 7.8196068794107787e-02 -3.3495008531546488e-01 9.1794139134572532e+00 9.1869160094288596e+00 1.3957000000000000e-01 1 0 0 0 0 +P 216 111 6.7011046783931716e-01 3.1756771243611115e-01 3.4595425231838661e+01 3.4603635124986923e+01 1.3497999999999999e-01 2 0 0 -147 0 +V -37 0 0 0 0 0 0 2 0 +P 217 -211 -4.9685789383140927e-01 -3.6267488655702912e-01 1.0819762776427670e+01 1.0838133933619364e+01 1.3957000000000000e-01 1 0 0 0 0 +P 218 111 2.0568277559265397e-01 -7.6716771394558292e-02 3.4410912961920448e+00 3.4507274271256705e+00 1.3497999999999999e-01 2 0 0 -148 0 +V -38 0 0 0 0 0 0 2 0 +P 219 211 1.5091075346411628e-01 -4.4759866324261638e-01 8.8874577707197915e+00 8.9010956645839556e+00 1.3957000000000000e-01 1 0 0 0 0 +P 220 111 -3.6160430730145765e-01 1.7103168765392807e-01 6.7399550195350288e+00 6.7531639087909117e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -39 0 6.6134868952544265e-05 -6.0578167977499482e-06 5.5521228499667028e-04 5.5936992922159148e-04 0 2 0 +P 221 22 3.9890753756978531e-01 -8.3411821985644619e-02 2.9894333750092708e+00 3.0170841319386961e+00 0 1 0 0 0 0 +P 222 22 1.9818742468699430e-01 2.8719162130123162e-02 2.0232696605477911e+00 2.0331559617674917e+00 0 1 0 0 0 0 +V -40 0 0 0 0 0 0 2 0 +P 223 -211 -8.0116535432035585e-01 -4.3595563284300476e-01 -4.4464390949206933e+00 4.5411698546200583e+00 1.3957000000000000e-01 1 0 0 0 0 +P 224 211 -1.8430479575079395e+00 -1.8805736996568283e+00 -1.8133624777653438e+01 1.8324333837145126e+01 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 225 22 -5.5928768554192265e-01 -1.5147257359489372e-01 -1.5692017076727673e+01 1.5702711440769178e+01 0 1 0 0 0 0 +P 226 22 4.2982874000373740e-02 1.6744026991665381e-01 -4.3431881820625335e+00 4.3466271241336942e+00 0 1 0 0 0 0 +V -42 0 7.6394153622048107e-05 1.0029878162263965e-04 -3.7481894148792775e-03 3.7506937113298347e-03 0 3 0 +P 227 22 1.1629338988407917e-01 8.9272709148877694e-02 -2.8532131053532828e+00 2.8569772126653779e+00 0 1 0 0 0 0 +P 228 -11 1.5797118386348692e-02 1.4711735030322620e-02 -1.0283381816186061e+00 1.0285648545286661e+00 5.1000000000000004e-04 1 0 0 0 0 +P 229 11 5.9939238082474242e-02 1.4813366540532533e-01 -5.5401626596588285e+00 5.5424668560728723e+00 5.1000000000000004e-04 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 230 -211 1.4467675491244145e-01 1.8856155472397737e-01 -1.1886630144118609e+01 1.1889825179173203e+01 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -5.0350326425457087e-02 -6.7011909820600379e-01 -3.1309205936853076e+01 3.1316707853122548e+01 1.3497999999999999e-01 2 0 0 -150 0 +V -44 0 0 0 0 0 0 2 0 +P 232 -311 5.3036395409351500e-01 -1.2314697068839459e-01 -3.4041141413635536e+01 3.4049132665491257e+01 4.9767000000000000e-01 2 0 0 -151 0 +P 233 -211 2.9364965893852782e-03 -2.8037181824656832e-01 -2.9550358086806355e+01 2.9552017863808569e+01 1.3957000000000000e-01 1 0 0 0 0 +V -45 0 -4.8872289253927846e-05 -5.4402958994364631e-05 -3.4409448959975063e-03 3.4417503130490870e-03 0 2 0 +P 234 22 -4.4188958398665414e-02 -3.6742753102171405e-03 -2.1044367148210967e+00 2.1049038103985716e+00 0 1 0 0 0 0 +P 235 22 -4.2790481089641280e-01 -5.2184434402458346e-01 -3.1134207733526843e+01 3.1141520759927278e+01 0 1 0 0 0 0 +V -46 0 0 0 0 0 0 2 0 +P 236 2212 1.2977839391996976e-01 -1.4318504925871164e-01 -6.0637712423823552e+02 6.0637788094093207e+02 9.3827000000000005e-01 1 0 0 0 0 +P 237 211 -1.2295953257244377e-01 1.8096777706713205e-01 -3.0609568574526622e+02 3.0609579575687195e+02 1.3957000000000000e-01 1 0 0 0 0 +V -47 0 4.2169714021909966e-05 8.5829172994005684e-05 -9.6870296651885690e-01 9.6870297157190144e-01 0 2 0 +P 238 22 9.2913107559837393e-02 1.9693827307980796e-01 -2.8833621000331136e+03 2.8833621082557238e+03 0 1 0 0 0 0 +P 239 22 1.3123498171528272e-01 2.5927646721163589e-01 -2.2656630725712694e+03 2.2656630912075148e+03 0 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 240 211 -9.2822980160143120e-01 1.2804318498963387e+00 5.1973118949309658e+01 5.1997362331091381e+01 1.3957000000000000e-01 1 0 0 0 0 +P 241 111 -6.5531495792427386e-01 1.7586644364637036e+00 5.3859919479611001e+01 5.3892777663103821e+01 1.3497999999999999e-01 2 0 0 -152 0 +V -49 0 0 0 0 0 0 2 0 +P 242 -211 -7.6039881533248244e-01 2.0320687957741885e+00 6.9082683121476649e+01 6.9116887205634285e+01 1.3957000000000000e-01 1 0 0 0 0 +P 243 111 -3.8399339173650116e-01 3.7283975804546754e-01 2.7206887603585198e+01 2.7212486345143006e+01 1.3497999999999999e-01 2 0 0 -153 0 +V -50 0 0 0 0 0 0 2 0 +P 244 211 1.0973573194578165e-01 1.1879012864271921e+00 3.0285434690618651e+01 3.0309242576840955e+01 1.3957000000000000e-01 1 0 0 0 0 +P 245 111 -4.1020081276223969e-01 5.9241060031560666e-01 2.7159228200759497e+01 2.7169120543136597e+01 1.3497999999999999e-01 2 0 0 -154 0 +V -51 0 0 0 0 0 0 2 0 +P 246 -211 -3.1659081224093022e-01 -4.3498967383643228e-02 7.7575986968116100e+00 7.7654323271941532e+00 1.3957000000000000e-01 1 0 0 0 0 +P 247 111 6.6426419466017059e-02 3.5700759179416253e-01 3.2854791305799246e+01 3.2857075314729755e+01 1.3497999999999999e-01 2 0 0 -155 0 +V -52 0 0 0 0 0 0 2 0 +P 248 211 2.8109806984337099e-02 -7.3137418999519999e-01 4.8717155060388739e+00 4.9283658674777211e+00 1.3957000000000000e-01 1 0 0 0 0 +P 249 111 3.0439207238921828e-01 -1.0014164915511482e-01 2.0179891546884896e+00 2.0477262298630827e+00 1.3497999999999999e-01 2 0 0 -156 0 +V -53 0 0 0 0 0 0 3 0 +P 250 -211 5.7751284344357268e-01 -1.6610167022038862e+00 2.0077346456800402e+01 2.0154697172139258e+01 1.3957000000000000e-01 1 0 0 0 0 +P 251 211 5.8128837571324521e-01 -1.9934568518397549e+00 2.9607592755877548e+01 2.9680646808630684e+01 1.3957000000000000e-01 1 0 0 0 0 +P 252 111 6.5948645476388301e-01 -1.2682284115554467e+00 1.7819650401514330e+01 1.7877401537149723e+01 1.3497999999999999e-01 2 0 0 -157 0 +V -54 0 5.1864047261200106e-06 -8.9353295080138478e-06 4.5057994120876729e-05 4.6268003358622562e-05 0 2 0 +P 253 22 2.7757152045232775e-01 -5.5879187093033122e-01 2.7799486518070124e+00 2.8491066688819608e+00 0 1 0 0 0 0 +P 254 22 8.3150786524103473e-02 -6.2673834877903317e-02 3.5390310973347999e-01 3.6890306851110266e-01 0 1 0 0 0 0 +V -55 0 0 0 0 0 0 2 0 +P 255 211 -3.4537287284459200e-01 2.0534899061500686e-01 2.2461602796552680e+00 2.2860810169468100e+00 1.3957000000000000e-01 1 0 0 0 0 +P 256 -211 -1.0411121014131801e-01 -2.0872779943077877e-01 6.2062244364248373e+00 6.2121741748367851e+00 1.3957000000000000e-01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 257 -211 1.2850549764079238e-03 3.2229511813417006e-01 9.1196910591118752e-01 9.7726313220946881e-01 1.3957000000000000e-01 1 0 0 0 0 +P 258 111 -2.8056748593473252e-01 1.1916090751261861e-02 4.0696486529871594e+00 4.0815585095086817e+00 1.3497999999999999e-01 2 0 0 -158 0 +V -57 0 0 0 0 0 0 2 0 +P 259 211 7.8085905486046631e-02 1.9157586059214773e-02 2.0788278036794767e+00 2.0850585708775737e+00 1.3957000000000000e-01 1 0 0 0 0 +P 260 111 -3.8387407607252627e-01 6.8367344397323782e-01 2.1019786165900940e+00 2.2475102645542622e+00 1.3497999999999999e-01 2 0 0 -159 0 +V -58 0 0 0 0 0 0 2 0 +P 261 211 -1.9218849411493319e-01 1.1374276734294492e-01 1.0045138277378207e+00 1.0384611930204639e+00 1.3957000000000000e-01 1 0 0 0 0 +P 262 111 -1.8889806198257593e+00 2.4579472809096470e+00 1.8831934148939073e+01 1.9085851199466742e+01 1.3497999999999999e-01 2 0 0 -160 0 +V -59 0 0 0 0 0 0 2 0 +P 263 -311 -1.4318375653716335e+00 -3.5863038245912704e+00 -2.3209274506000757e+00 4.5327821032712690e+00 4.9767000000000000e-01 2 0 0 -161 0 +P 264 111 -1.9155619001346455e-01 -6.0914542296763896e-01 -1.2809667227843524e-01 6.6511674020709111e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -60 0 0 0 0 0 0 2 0 +P 265 311 -2.9659176075774984e-01 -4.6221487895696203e-02 -1.5427574353175526e+00 1.6485991118583883e+00 4.9767000000000000e-01 2 0 0 -163 0 +P 266 211 -1.5043143739465120e-01 -4.3840705696961185e-01 -1.8263399040108697e+00 1.8893987389748650e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 267 -321 1.3117237531214782e-01 2.2171635567557227e-01 -7.0771807964257647e+00 7.0990487616100166e+00 4.9359999999999998e-01 1 0 0 0 0 +P 268 321 1.6118644520389575e-01 1.9737463878801137e-01 -4.5373479438923123e+00 4.5712257811333235e+00 4.9359999999999998e-01 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 269 -321 7.0076510378991513e-02 1.6115182850873450e-01 -1.4990960823910882e+01 1.5000114266670419e+01 4.9359999999999998e-01 1 0 0 0 0 +P 270 211 -2.6567428535109305e-01 1.6610101468545962e-01 -2.5800207633514976e+01 2.5802487595004493e+01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 2 0 +P 271 -211 4.8599111099490840e-02 -7.4756967766754417e-02 -8.1617511091659747e+00 8.1634313515029557e+00 1.3957000000000000e-01 1 0 0 0 0 +P 272 111 3.7620839570376235e-01 4.8378053771402385e-01 -1.9561155024868459e+01 1.9571218201047309e+01 1.3497999999999999e-01 2 0 0 -164 0 +V -64 0 0 0 0 0 0 2 0 +P 273 -211 5.3030438115813272e-01 2.8459142744427268e-01 -8.4553036392123389e+00 8.4778449168068466e+00 1.3957000000000000e-01 1 0 0 0 0 +P 274 211 -1.6258540618367565e-01 1.6222338006653356e-01 -1.2249613526344374e+01 1.2252561437064626e+01 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 275 311 8.0055295557585249e-01 1.1955698343636345e+00 -1.3612825986589098e+02 1.3613677343689312e+02 4.9767000000000000e-01 2 0 0 -165 0 +P 276 211 7.3266490640172433e-01 1.6751233348484984e+00 -1.1609843447379056e+02 1.1611291402381548e+02 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 1 0 +P 277 130 2.2891228831712537e-01 -1.3418287413741594e+00 9.8860382248171286e-01 1.7543996561917690e+00 4.9767000000000000e-01 1 0 0 0 0 +V -67 0 0 0 0 0 0 2 0 +P 278 -211 -3.8537250695572384e-01 -9.0184159113101237e-01 4.3277868687666932e-01 1.0810214620097742e+00 1.3957000000000000e-01 1 0 0 0 0 +P 279 111 8.9810384677170528e-03 -6.3878733240759011e-01 -2.6775211174027441e-01 7.0571999322517431e-01 1.3497999999999999e-01 2 0 0 -166 0 +V -68 0 0 0 0 0 0 2 0 +P 280 2112 2.4694209341644854e-01 -8.4716433213517051e-01 6.4556864532723501e-01 1.4416027413516419e+00 9.3957000000000002e-01 1 0 0 0 0 +P 281 111 -8.5409563822338136e-02 -4.3012054975671515e-01 -1.2184751648084854e-01 4.7472613008753961e-01 1.3497999999999999e-01 2 0 0 -167 0 +V -69 0 0 0 0 0 0 2 0 +P 282 -2212 -1.1996124512738150e-01 2.3026123610330118e-01 -3.6071253594137636e+00 3.7361898892602081e+00 9.3827000000000005e-01 1 0 0 0 0 +P 283 111 -6.6404144386860195e-02 6.2308146282458045e-02 -9.8313964690159639e-01 9.9653147526543429e-01 1.3497999999999999e-01 2 0 0 -168 0 +V -70 0 2.2607956805941250e-06 3.0594289068836569e-06 -1.8790166695767641e-05 1.9211970399434110e-05 0 2 0 +P 284 22 1.5503350124231352e-01 9.7732231082630405e-02 -8.5706126698882723e-01 8.7643652985959741e-01 0 1 0 0 0 0 +P 285 22 8.9437597330653915e-02 2.3309905645556292e-01 -1.1748130566901320e+00 1.2010495294143226e+00 0 1 0 0 0 0 +V -71 0 0 0 0 0 0 2 0 +P 286 211 -3.1925262209964905e-01 1.3821580424106233e-01 -5.1157300993405530e-01 6.3420231366062840e-01 1.3957000000000000e-01 1 0 0 0 0 +P 287 111 4.5237516943432650e-02 1.4303653358737961e-01 -1.2206147222144386e+00 1.2371846197583172e+00 1.3497999999999999e-01 2 0 0 -169 0 +V -72 0 -9.3894008003613711e-06 4.8441180380011681e-05 -1.6347347256430333e-04 1.7121757089428238e-04 0 2 0 +P 288 22 -9.1259807998499157e-02 1.5539919386615769e-01 -5.1519193076376746e-01 5.4580215054016890e-01 0 1 0 0 0 0 +P 289 22 -9.8330182436480451e-03 3.6615228052958404e-01 -1.2448772907468852e+00 1.2976454253000318e+00 0 1 0 0 0 0 +V -73 0 0 0 0 0 0 2 0 +P 290 311 2.9288036009376067e-01 1.2928728715900386e+00 -1.1628140700302700e+01 1.1714035630061840e+01 4.9767000000000000e-01 2 0 0 -170 0 +P 291 111 -2.4972174502373165e-01 1.2171174499571773e+00 -9.8820220121753870e+00 9.9607386516486240e+00 1.3497999999999999e-01 2 0 0 -171 0 +V -74 0 0 0 0 0 0 2 0 +P 292 211 -8.1826523521756611e-01 7.8243572685105356e-01 -1.2828767012552214e+00 1.7166875304906464e+00 1.3957000000000000e-01 1 0 0 0 0 +P 293 111 -4.1995931923232044e-01 6.9352306047057866e-01 -2.4353681474951611e-01 8.5724549911498049e-01 1.3497999999999999e-01 2 0 0 -172 0 +V -75 0 0 0 0 0 0 2 0 +P 294 22 -2.3993756374341146e-01 1.6870365091332759e-01 -4.5024786003822342e-01 5.3735843884283452e-01 0 1 0 0 0 0 +P 295 22 -6.5988345454275177e-01 3.7272537616398288e-01 -8.6204472334868429e-02 7.6275919572719031e-01 0 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 296 -321 2.9684402714531981e-02 1.0172982955755167e-01 7.8543908048649558e-01 9.3369461342657356e-01 4.9359999999999998e-01 1 0 0 0 0 +P 297 211 -4.6850393570640159e-01 -8.5880035046017392e-02 7.6480086906950495e-01 9.1174090202280789e-01 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 298 -211 -1.2939988042445941e-01 -9.9234300444954626e-02 2.9453547623268478e-01 3.6444849718208244e-01 1.3957000000000000e-01 1 0 0 0 0 +P 299 111 3.9915573664182591e-01 -1.0301564308733102e-01 -1.5144973175224732e-01 4.5944983019106961e-01 1.3497999999999999e-01 2 0 0 -173 0 +V -78 0 0 0 0 0 0 2 0 +P 300 211 2.0689198584967584e-02 -2.5828734371727674e-01 1.5152033244273926e+00 1.5435223659275032e+00 1.3957000000000000e-01 1 0 0 0 0 +P 301 111 7.5486711156253306e-01 3.9411709508809456e-01 3.2919551559674907e+00 3.4029900073406600e+00 1.3497999999999999e-01 2 0 0 -174 0 +V -79 0 0 0 0 0 0 2 0 +P 302 -211 1.1757002829753060e+00 -7.7106228617607020e-01 2.2873454234941420e+01 2.2917050347446786e+01 1.3957000000000000e-01 1 0 0 0 0 +P 303 111 2.6685635170597993e-01 -8.2387989842869880e-01 1.2612720468497917e+01 1.2643137570094973e+01 1.3497999999999999e-01 2 0 0 -175 0 +V -80 0 0 0 0 0 0 3 0 +P 304 211 -3.0013898117931026e-01 2.2241352690799113e-01 1.2558660560100285e+00 1.3176610036398551e+00 1.3957000000000000e-01 1 0 0 0 0 +P 305 -211 -2.8515883010338406e-02 -1.2080898873270086e-01 9.9053262633137185e-01 1.0079894027564984e+00 1.3957000000000000e-01 1 0 0 0 0 +P 306 111 1.5031021128478475e-01 6.1869303805222545e-03 7.3336808953253430e-01 7.6071005834589123e-01 1.3497999999999999e-01 2 0 0 -176 0 +V -81 0 0 0 0 0 0 2 0 +P 307 211 5.1240948779819634e-02 3.3106285181225731e-01 6.2296340656530647e-01 7.2096562851593138e-01 1.3957000000000000e-01 1 0 0 0 0 +P 308 -211 -1.1415211181414819e+00 1.1959649466073342e-01 4.2262254369293686e+00 4.3815334089045752e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 -5.1481558743536353e-05 3.5870232266659004e-05 7.9369441921158649e-05 1.0331184230181930e-04 0 2 0 +P 309 22 -8.3041828422767416e-02 1.3659289369937574e-01 1.7956183625056635e-01 2.4040802173521689e-01 0 1 0 0 0 0 +P 310 22 -2.4944757644687382e-01 9.5072045551801362e-02 3.3303916405451600e-01 4.2682299848386052e-01 0 1 0 0 0 0 +V -83 0 0 0 0 0 0 2 0 +P 311 211 1.0309018758041712e-01 4.2724264587845878e-03 2.2631018679628315e-01 2.8520505947647545e-01 1.3957000000000000e-01 1 0 0 0 0 +P 312 111 -4.8694682571265593e-02 -3.6180916417226161e-01 3.4696204820675303e+00 3.4913840999483670e+00 1.3497999999999999e-01 2 0 0 -177 0 +V -84 0 0 0 0 0 0 3 0 +P 313 -211 3.0574739693101170e-02 -4.3491576202209295e-02 4.0806616924722747e-02 1.5482666693013367e-01 1.3957000000000000e-01 1 0 0 0 0 +P 314 211 -1.5562677085262105e-01 -2.3620058456930920e-01 9.0884352597140916e-01 9.6202221780842523e-01 1.3957000000000000e-01 1 0 0 0 0 +P 315 111 -2.4435179757304334e-01 7.4349308208397899e-02 5.9722684245561075e-01 6.6342680256207898e-01 1.3497999999999999e-01 2 0 0 -178 0 +V -85 0 0 0 0 0 0 2 0 +P 316 111 -3.6392887739340002e-01 6.7496682775182959e-01 1.4962438007820593e+00 1.6867096840135030e+00 1.3497999999999999e-01 2 0 0 -179 0 +P 317 22 1.4409213370305821e-01 -5.7604870198693786e-02 3.7612512111205554e-01 4.0687955318161023e-01 0 1 0 0 0 0 +V -86 0 3.5647739613994551e-04 -8.4878083113578028e-05 4.0545108369145441e-04 5.4813422162874350e-04 0 2 0 +P 318 22 1.0473665451576206e+00 -2.7870050354220938e-01 1.2250032599908525e+00 1.6356294316190043e+00 0 1 0 0 0 0 +P 319 22 9.3084625249818934e-02 7.1564722039120275e-03 7.2125724752282516e-02 1.1797492412943782e-01 0 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 320 -211 9.3744393824816696e-01 -6.7184195479951447e-01 2.5898309235071864e+00 2.8384638005162497e+00 1.3957000000000000e-01 1 0 0 0 0 +P 321 111 5.8064185894314453e-02 9.8787864581293211e-02 3.1042140903798182e-01 3.5736751875517092e-01 1.3497999999999999e-01 2 0 0 -180 0 +V -88 0 0 0 0 0 0 3 0 +P 322 -211 8.3735586764706563e-02 -1.0421123019306522e-01 2.4974112587102385e+02 2.4974120065127514e+02 1.3957000000000000e-01 1 0 0 0 0 +P 323 211 6.6821925997163825e-04 -1.0568054772206613e-03 2.1333331792164230e+02 2.1333336358105069e+02 1.3957000000000000e-01 1 0 0 0 0 +P 324 111 3.1232342162247389e-02 7.4080388596620431e-02 7.1134026050131084e+01 7.1134199546099481e+01 1.3497999999999999e-01 2 0 0 -181 0 +V -89 0 0 0 0 0 0 2 0 +P 325 211 1.2309113191819084e-01 2.0477190657215033e-01 1.1824104023206878e+03 1.1824104346963943e+03 1.3957000000000000e-01 1 0 0 0 0 +P 326 -211 2.7182151527050440e-02 2.1590966128895990e-03 4.4588081331807786e+01 4.4588308110623188e+01 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 327 211 3.8045312551576935e-02 4.4176323178469101e-01 2.0603934105508088e+02 2.0603986542510555e+02 1.3957000000000000e-01 1 0 0 0 0 +P 328 -211 -1.3786723222707301e-01 5.9274844571574309e-02 1.1735950011477758e+01 1.1737739277123415e+01 1.3957000000000000e-01 1 0 0 0 0 +V -91 0 0 0 0 0 0 2 0 +P 329 -321 -8.3627361383984444e-01 -5.2573367818186700e-01 1.4711426769101732e+02 1.4711841199755347e+02 4.9359999999999998e-01 1 0 0 0 0 +P 330 211 -8.2279004458571267e-02 7.3018712211581877e-02 5.1415548559796406e+01 5.1415855677568857e+01 1.3957000000000000e-01 1 0 0 0 0 +V -92 0 0 0 0 0 0 2 0 +P 331 311 1.8498251272975502e-01 2.1534491855260202e-01 5.4113827121414495e+01 5.4116860155770283e+01 4.9767000000000000e-01 2 0 0 -182 0 +P 332 211 5.2951984991579670e-01 -6.4554600935646037e-02 4.9941304935652070e+01 4.9944348799725510e+01 1.3957000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 333 -211 -7.6476777911200444e-02 -4.0287232681542129e-01 1.3202657166015865e+02 1.3202728225230263e+02 1.3957000000000000e-01 1 0 0 0 0 +P 334 111 -1.8723935235103165e-01 6.7174295629019873e-02 2.0892529195013871e+01 2.0893912192932397e+01 1.3497999999999999e-01 2 0 0 -183 0 +V -94 0 0 0 0 0 0 2 0 +P 335 -2212 -1.2935100172353481e-01 -1.5203835057338125e-01 1.5037893482216367e+00 1.7836984998639236e+00 9.3827000000000005e-01 1 0 0 0 0 +P 336 211 -5.5352999453907193e-03 -1.0816988709474940e-01 3.6815646393669343e-01 4.0835074489701390e-01 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 337 22 4.6738825445375309e-01 1.6146085191757137e-01 5.0134341685598127e-01 7.0417796665907206e-01 0 1 0 0 0 0 +P 338 22 1.3168775031267746e-01 1.5037716076096133e-01 -1.3292620991243345e-01 2.4005068494513118e-01 0 1 0 0 0 0 +V -96 0 0 0 0 0 0 2 0 +P 339 2112 1.8167414076157981e-01 -1.5341709619492785e-01 1.3596341969857564e+00 1.6697123205329250e+00 9.3957000000000002e-01 1 0 0 0 0 +P 340 -211 -2.6075250516129161e-01 9.9943367152509469e-02 1.1394118409731577e+00 1.1814058040468192e+00 1.3957000000000000e-01 1 0 0 0 0 +V -97 0 0 0 0 0 0 3 0 +P 341 211 4.5932154060343913e-02 1.3436313571120873e-01 -2.6773721114820626e-02 2.0089756608059256e-01 1.3957000000000000e-01 1 0 0 0 0 +P 342 -211 -2.3240549013258138e-01 -1.2739824390148866e-01 -1.7172491484146121e-02 3.0002883820846565e-01 1.3957000000000000e-01 1 0 0 0 0 +P 343 111 5.3155140450545445e-02 -3.2198458976233074e-01 8.1469103673461631e-04 3.5315691855352199e-01 1.3497999999999999e-01 2 0 0 -184 0 +V -98 0 -5.3456041917950884e-06 1.0940115392255510e-05 -1.1276991913333317e-05 2.5881423818737699e-05 0 2 0 +P 344 22 2.8925221694516508e-02 7.6693657802626408e-02 -9.9535856321624535e-03 8.2569119313216199e-02 0 1 0 0 0 0 +P 345 22 -6.5257195441118784e-02 -2.3379870579969641e-03 -6.6691702615093121e-02 9.3336760914571146e-02 0 1 0 0 0 0 +V -99 0 0 0 0 0 0 2 0 +P 346 211 -1.6181000821158892e-01 -1.6963424504261243e-01 -2.6313301097208053e-01 3.7904751972786288e-01 1.3957000000000000e-01 1 0 0 0 0 +P 347 -211 3.2808169398020481e-01 1.6708294975973997e-01 1.4593698511490616e-01 4.1991868087733947e-01 1.3957000000000000e-01 1 0 0 0 0 +V -100 0 0 0 0 0 0 2 0 +P 348 -211 4.6420365845633227e-01 -4.0847882605596070e-01 -1.4697255584821705e+00 1.6005976977416989e+00 1.3957000000000000e-01 1 0 0 0 0 +P 349 111 -2.8173495143786537e-01 -2.3294554347192373e-01 -8.3799170321694616e-01 9.2416876388761626e-01 1.3497999999999999e-01 2 0 0 -185 0 +V -101 0 0 0 0 0 0 2 0 +P 350 211 -4.3713138842513549e-01 -8.0193348901581640e-01 -2.8575036213923499e+00 3.0031629830433717e+00 1.3957000000000000e-01 1 0 0 0 0 +P 351 -211 3.4464639850554046e-01 -3.9448924009807262e-01 -2.4618660005043602e+00 2.5208464629753493e+00 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 0 0 0 0 0 2 0 +P 352 22 3.2856276203468715e-01 -2.2653644571307425e+00 -1.0628501612512524e+01 1.0872206590172965e+01 0 1 0 0 0 0 +P 353 22 1.0434568190199986e-01 -2.7883825262630772e-02 -4.8973860227147370e-01 5.0150715607820417e-01 0 1 0 0 0 0 +V -103 0 4.9037358891567776e-06 3.2017628026642254e-06 -1.1892814674675885e-05 1.3454250789796279e-05 0 2 0 +P 354 22 2.2354910027528657e-01 1.6029891550903602e-01 -6.4738274096045079e-01 7.0340198737330506e-01 0 1 0 0 0 0 +P 355 22 6.4511010772874300e-02 2.7782206584984766e-02 -5.1236759212390626e-02 8.6940939770953726e-02 0 1 0 0 0 0 +V -104 0 -1.3726373686040436e-04 -9.9702507710567058e-05 -2.9060095827281827e-03 2.9116430753003118e-03 0 2 0 +P 356 22 -2.5303124530879706e-01 -1.9767059562620412e-01 -4.4765459960137299e+00 4.4880466274209283e+00 0 1 0 0 0 0 +P 357 22 -4.0221420025721384e-02 -1.5335598110120413e-02 -1.7319040659961942e+00 1.7324389273542784e+00 0 1 0 0 0 0 +V -105 0 0 0 0 0 0 2 0 +P 358 211 -2.3305194831128404e-01 3.5257524413723085e-01 -3.8645950116748433e+00 3.8901409874903243e+00 1.3957000000000000e-01 1 0 0 0 0 +P 359 111 1.6319333803292452e-01 9.1595544301201692e-01 -1.4636028000277902e+01 1.4666190427799593e+01 1.3497999999999999e-01 2 0 0 -186 0 +V -106 0 0 0 0 0 0 3 0 +P 360 211 -5.1068619640013913e-02 -1.1688780893563810e-01 -1.4247259084409054e+00 1.4372176115232076e+00 1.3957000000000000e-01 1 0 0 0 0 +P 361 -211 -3.9918742821603924e-02 2.3757962531374108e-01 -4.9884072044398658e-01 5.7127877053654863e-01 1.3957000000000000e-01 1 0 0 0 0 +P 362 111 1.4605102514493379e-01 -7.1654523819423611e-04 -1.0841280953562038e+00 1.1022181013409436e+00 1.3497999999999999e-01 2 0 0 -187 0 +V -107 0 0 0 0 0 0 2 0 +P 363 -2212 -1.1406253960346636e-01 1.3050504356992600e+00 -1.3746559005676280e+01 1.3840679246052170e+01 9.3827000000000005e-01 1 0 0 0 0 +P 364 111 -7.3879643598863620e-02 2.1911131985195054e-01 -5.3599032767510568e+00 5.3665865043575209e+00 1.3497999999999999e-01 2 0 0 -188 0 +V -108 0 0 0 0 0 0 2 0 +P 366 111 -1.9383253021003571e-01 2.6263377003627869e-01 -2.5692229458455249e+00 2.5933903857287377e+00 1.3497999999999999e-01 2 0 0 -189 0 +P 365 2212 -9.2672351349186208e-02 3.2713801118000992e-02 -5.0230624849063501e+00 5.1108869756297421e+00 9.3827000000000005e-01 1 0 0 0 0 +V -109 0 0 0 0 0 0 2 0 +P 367 -211 -8.9256978629664779e-02 4.9532478206519792e-01 -7.2657351357255473e-01 8.9481970445850134e-01 1.3957000000000000e-01 1 0 0 0 0 +P 368 111 -4.4699794465351418e-02 -2.0886308426759173e-01 1.1405705795541135e-02 2.5292597755017221e-01 1.3497999999999999e-01 2 0 0 -190 0 +V -110 0 0 0 0 0 0 3 0 +P 369 -211 5.2655584360949588e-02 -2.6070291359845066e-01 -2.7865206099874709e-02 3.0165356675183341e-01 1.3957000000000000e-01 1 0 0 0 0 +P 370 211 1.1822125040940321e-01 -3.6410489305205150e-02 -7.4902779595835356e-02 2.0097810594935350e-01 1.3957000000000000e-01 1 0 0 0 0 +P 371 111 -1.6232482169526979e-02 -5.4435203098128715e-02 7.9250327722834704e-02 1.6651396235119514e-01 1.3497999999999999e-01 2 0 0 -191 0 +V -111 0 0 0 0 0 0 1 0 +P 372 130 9.3352618998182743e-02 4.0984422314125646e-01 -2.9781253674948460e+00 3.0485395080484676e+00 4.9767000000000000e-01 1 0 0 0 0 +V -112 0 0 0 0 0 0 2 0 +P 373 130 -2.2310089003166997e-01 -9.6246577399157734e-02 -1.0045105369445986e-02 5.5390770335486272e-01 4.9767000000000000e-01 1 0 0 0 0 +P 374 310 -1.0058249844852461e-01 -3.3078112442504448e-01 -8.2668057706903650e-02 6.1159008161927886e-01 4.9767000000000000e-01 2 0 0 -192 0 +V -113 0 0 0 0 0 0 2 0 +P 375 -321 5.8939484155127987e-02 2.3553953346591427e-01 -5.9125978676033464e+00 5.9381316286021688e+00 4.9359999999999998e-01 1 0 0 0 0 +P 376 321 -1.6771205287668237e-01 1.4016513775476167e-01 -5.5593832946803383e+00 5.5855310558345961e+00 4.9359999999999998e-01 1 0 0 0 0 +V -114 0 0 0 0 0 0 2 0 +P 377 211 4.4626469507733829e-01 -2.9876737728109021e-01 -2.7747433142093183e+01 2.7752980738717618e+01 1.3957000000000000e-01 1 0 0 0 0 +P 378 -211 -2.6784944598235311e-01 8.4540277169185385e-02 -1.4243508730173986e+01 1.4246961469577274e+01 1.3957000000000000e-01 1 0 0 0 0 +V -115 0 0 0 0 0 0 2 0 +P 379 211 -4.7708602474535206e-01 4.2323427871643926e-01 1.2306474356724806e+00 1.3930941194029927e+00 1.3957000000000000e-01 1 0 0 0 0 +P 380 111 -3.7138811372573445e-02 -2.6763057762592657e-01 1.8964640672464467e-01 3.5663816028872181e-01 1.3497999999999999e-01 2 0 0 -193 0 +V -116 0 0 0 0 0 0 2 0 +P 381 -211 1.8239573851947732e-01 8.5172318449127438e-01 1.2672881147092623e+00 1.5440853405862578e+00 1.3957000000000000e-01 1 0 0 0 0 +P 382 111 -5.5029184311155943e-02 -3.1797439570535158e-02 2.5538799358925224e-01 2.9577341996659695e-01 1.3497999999999999e-01 2 0 0 -194 0 +V -117 0 0 0 0 0 0 3 0 +P 383 211 -6.2243035013886994e-01 4.2244827222762471e-01 1.4918178951339065e+00 1.6765686686276411e+00 1.3957000000000000e-01 1 0 0 0 0 +P 384 -211 -5.3662832160087004e-01 7.6596039196045107e-01 2.0066624387491827e+00 2.2182964647637142e+00 1.3957000000000000e-01 1 0 0 0 0 +P 385 111 -5.4333294606349714e-01 8.9116704629103738e-01 3.0590759352765375e+00 3.2350509382173804e+00 1.3497999999999999e-01 2 0 0 -195 0 +V -118 0 0 0 0 0 0 2 0 +P 386 2212 1.5566891027165103e-01 1.9712389042807388e-01 1.7138534409912462e-01 9.8631342223181673e-01 9.3827000000000005e-01 1 0 0 0 0 +P 387 -211 2.0173096820492542e-01 3.0084177275992156e-02 1.9384965688599484e-01 3.1409857629427085e-01 1.3957000000000000e-01 1 0 0 0 0 +V -119 0 -7.1660461754768958e-05 -1.0769721945931413e-04 1.5531901999572816e-05 1.3163894594449711e-04 0 2 0 +P 388 22 -1.1697413369043864e-01 -9.6649254231599702e-02 4.1343221873855411e-02 1.5726820495912039e-01 0 1 0 0 0 0 +P 389 22 -3.9737322549938564e-01 -6.7635414352139833e-01 7.0137957301546427e-02 7.8757840299032089e-01 0 1 0 0 0 0 +V -120 0 0 0 0 0 0 2 0 +P 390 -2112 3.0284788000153912e-01 -8.9128481759035616e-01 -3.4314384176045293e-01 1.3735519449684543e+00 9.3957000000000002e-01 1 0 0 0 0 +P 391 211 5.8301081246194575e-01 -7.0551758694164624e-01 -7.9066317918965748e-02 9.2918670914986956e-01 1.3957000000000000e-01 1 0 0 0 0 +V -121 0 2.2874989631111603e+01 -2.2902782156161990e+01 -1.2543595889194581e+01 4.1058814581296019e+01 0 2 0 +P 392 2112 7.2363470358385507e-01 -8.6288876686327309e-01 -4.4761632740272878e-01 1.5334198282490092e+00 9.3957000000000002e-01 1 0 0 0 0 +P 393 -211 5.2572010790258272e-01 -3.8798397863996692e-01 -2.3747258980458383e-01 7.0907419593643206e-01 1.3957000000000000e-01 1 0 0 0 0 +V -122 0 0 0 0 0 0 2 0 +P 394 311 5.7209538578317543e-01 -9.1601292232158002e-02 -1.3829998035577337e-01 7.7619987157909842e-01 4.9767000000000000e-01 2 0 0 -196 0 +P 395 111 1.0969872995552975e-01 -2.7592125031730930e-01 1.9284939585462296e-01 3.7891534359539542e-01 1.3497999999999999e-01 2 0 0 -197 0 +V -123 0 0 0 0 0 0 2 0 +P 396 211 1.2768453337087937e-01 -7.3004776309065877e-01 1.5341155177660637e-01 7.6960247243256708e-01 1.3957000000000000e-01 1 0 0 0 0 +P 397 111 7.4745645835255581e-01 -1.8452765224834686e-01 -3.5285787768360583e-01 8.5759541382904525e-01 1.3497999999999999e-01 2 0 0 -198 0 +V -124 0 0 0 0 0 0 2 0 +P 398 -211 -5.1931286949743072e-01 -4.0616083780816176e-01 7.4895484048546535e-01 1.0075046504018192e+00 1.3957000000000000e-01 1 0 0 0 0 +P 399 211 1.3030258692077507e-01 1.1737552180221024e-01 1.4023573824788065e-02 2.2457119761760758e-01 1.3957000000000000e-01 1 0 0 0 0 +V -125 0 0 0 0 0 0 3 0 +P 400 -211 4.3941879075108720e-01 -2.1455387542550161e-01 -1.6625524305449231e+00 1.7385863821898757e+00 1.3957000000000000e-01 1 0 0 0 0 +P 401 211 7.2245244435792022e-01 -5.5562326516907601e-01 -3.3678421544139758e+00 3.4917753806772347e+00 1.3957000000000000e-01 1 0 0 0 0 +P 402 221 1.6929001772174577e+00 -6.2763907466060598e-01 -6.2654951393025753e+00 6.5433915258975537e+00 5.4744999999999999e-01 2 0 0 -199 0 +V -126 0 0 0 0 0 0 2 0 +P 403 -211 5.4351932812512205e-01 4.2529626811621611e-02 -8.8825094786447778e-01 1.0515186924084912e+00 1.3957000000000000e-01 1 0 0 0 0 +P 404 111 -5.8526099968283993e-02 -2.8429634583446145e-01 -3.7477092780150040e-01 4.9287175345877016e-01 1.3497999999999999e-01 2 0 0 -200 0 +V -127 0 0 0 0 0 0 3 0 +P 405 211 -1.7994431618017598e-01 -1.4981023610554228e-01 1.8335551296569244e-01 3.2851498109288968e-01 1.3957000000000000e-01 1 0 0 0 0 +P 406 -211 -3.4015018251631030e-01 1.0007639479731749e-01 5.8171857101285707e-01 6.9540902512316316e-01 1.3957000000000000e-01 1 0 0 0 0 +P 407 111 2.2104562458507233e-02 -3.0138619608482096e-02 6.8918524799908965e-01 7.0327295876704488e-01 1.3497999999999999e-01 2 0 0 -201 0 +V -128 0 -9.5716033249145031e-06 2.5588689164333307e-05 -5.6613145337201016e-05 6.4831666416758084e-05 0 2 0 +P 408 22 -8.8748848813062955e-02 2.1752980276142420e-01 -4.8819357581726175e-01 5.4178274310309327e-01 0 1 0 0 0 0 +P 409 22 7.3136079243070681e-03 1.7887105092202264e-04 6.5286998810985524e-03 9.8053443519745542e-03 0 1 0 0 0 0 +V -129 0 0 0 0 0 0 2 0 +P 410 -211 -1.3210591454662315e-01 -4.1453641988988016e-02 1.7499835301972946e+00 1.7609919130859564e+00 1.3957000000000000e-01 1 0 0 0 0 +P 411 111 -5.9981210232161325e-02 1.0568271312618416e+00 8.3436496620987999e+00 8.4116104650175920e+00 1.3497999999999999e-01 2 0 0 -202 0 +V -130 0 0 0 0 0 0 2 0 +P 412 -211 2.1039382235683586e-02 1.7495114851534666e-01 2.9952412067790757e+00 3.0036644672231736e+00 1.3957000000000000e-01 1 0 0 0 0 +P 413 211 -4.2564457750844004e-01 -3.6237405135327300e-01 1.1465562013267260e+01 1.1480029630816887e+01 1.3957000000000000e-01 1 0 0 0 0 +V -131 0 0 0 0 0 0 2 0 +P 414 311 -7.8781697561949271e-01 5.4422089375246685e-01 9.1458600181790075e+00 9.2093030609974118e+00 4.9767000000000000e-01 2 0 0 -203 0 +P 415 211 -1.0295964159075386e+00 3.1096384658587001e-01 6.4911205497073698e+00 6.5811012049098920e+00 1.3957000000000000e-01 1 0 0 0 0 +V -132 0 0 0 0 0 0 2 0 +P 416 -311 -7.2639469362242060e-01 3.6391099384214726e-01 1.1382133321844409e+01 1.1421940064958441e+01 4.9767000000000000e-01 2 0 0 -204 0 +P 417 111 1.1338504577602361e-01 8.4838802122491092e-02 4.4320364364653537e+00 4.4363521462467022e+00 1.3497999999999999e-01 2 0 0 -205 0 +V -133 0 -3.6644226869673425e+01 1.4039955316751673e+01 3.2242699278545501e+02 3.3749134797523197e+02 0 2 0 +P 418 -2212 -4.4069160658852696e-01 7.0169749752342234e-02 3.4521641169690143e+00 3.6051242099664664e+00 9.3827000000000005e-01 1 0 0 0 0 +P 419 211 -5.3458486904178924e-03 1.0072609051156285e-01 4.7245178192138493e-01 5.0285663418976212e-01 1.3957000000000000e-01 1 0 0 0 0 +V -134 0 0 0 0 0 0 2 0 +P 420 -321 8.2738509392200044e-01 -4.4400280839202599e-01 -1.3379709157489843e+01 1.3421697459208426e+01 4.9359999999999998e-01 1 0 0 0 0 +P 421 211 1.6711326947641161e-01 -1.9094728388891710e-01 -1.2625904583366416e+00 1.2953772270818957e+00 1.3957000000000000e-01 1 0 0 0 0 +V -135 0 0 0 0 0 0 2 0 +P 422 -211 -4.5648702994576327e-03 8.5062884111795842e-02 -2.3933131666525642e+00 2.3988922924689202e+00 1.3957000000000000e-01 1 0 0 0 0 +P 423 111 7.0217973892037344e-01 -2.8698062984842038e-01 -7.3498259370883083e+00 7.3900998080915326e+00 1.3497999999999999e-01 2 0 0 -206 0 +V -136 0 0 0 0 0 0 2 0 +P 424 211 4.6755588266707993e-01 6.7144388467335656e-02 -6.1051702587828593e+00 6.1250061670128959e+00 1.3957000000000000e-01 1 0 0 0 0 +P 425 -211 -9.8483352004072017e-02 -2.1413651713213966e-01 -2.3969506914096916e+00 2.4125517239099432e+00 1.3957000000000000e-01 1 0 0 0 0 +V -137 0 0 0 0 0 0 3 0 +P 426 111 -1.4763122465585482e-01 1.5578289972556411e-01 -6.3575580169438950e-01 6.8444746338076856e-01 1.3497999999999999e-01 2 0 0 -207 0 +P 427 111 -5.9749928543227060e-01 4.0523346497645923e-01 -1.0521574728239369e+00 1.2831502270771551e+00 1.3497999999999999e-01 2 0 0 -208 0 +P 428 111 -3.7075092612150112e-01 1.6389697387756819e-01 -7.6281205611413760e-01 8.7431132934398903e-01 1.3497999999999999e-01 2 0 0 -209 0 +V -138 0 0 0 0 0 0 2 0 +P 429 -211 1.4873964520465802e-01 2.9361212237253576e-01 -5.2603507832528784e-01 6.3602220793648723e-01 1.3957000000000000e-01 1 0 0 0 0 +P 430 111 -3.2472936796134794e-01 4.1437910527456240e-02 -1.2473036619170828e+00 1.2965925683410431e+00 1.3497999999999999e-01 2 0 0 -210 0 +V -139 0 0 0 0 0 0 2 0 +P 431 321 -1.3937482792474679e-01 4.2593421262169195e-01 -1.9171899663819201e+00 2.0298038386347144e+00 4.9359999999999998e-01 1 0 0 0 0 +P 432 111 -5.5302161674478068e-01 2.7557884791839724e-02 -1.6155048992407390e+00 1.7130872790001219e+00 1.3497999999999999e-01 2 0 0 -211 0 +V -140 0 1.8598834508787614e-05 -2.8282549299325688e-05 1.3720995802205736e-04 1.4332481861146809e-04 0 2 0 +P 433 22 7.3486303836907945e-03 -7.2423525982247119e-02 1.1094367272080649e-01 1.3269388833325652e-01 0 1 0 0 0 0 +P 434 22 9.7839239745626749e-02 -8.7531718590624669e-02 6.6506319147565862e-01 6.7789628059845486e-01 0 1 0 0 0 0 +V -141 0 7.9626809661280000e-06 -2.3200113145596084e-06 1.3507474476220213e-04 1.3560294199833913e-04 0 2 0 +P 435 22 8.0733491049569533e-02 4.1269360133104692e-02 1.3628764571598302e+00 1.3658891954120498e+00 0 1 0 0 0 0 +P 436 22 4.4054345042207586e-02 -7.7627615962248125e-02 7.5395896312458921e-01 7.5922391305397241e-01 0 1 0 0 0 0 +V -142 0 0 0 0 0 0 2 0 +P 437 -2212 -3.3636249934798157e-01 6.3185487895276859e-01 9.1363404725172559e-01 1.4924671132797558e+00 9.3827000000000005e-01 1 0 0 0 0 +P 438 -211 -2.1550620238062704e-01 4.0104914462364860e-01 -5.9206301760771352e-02 4.7986301246925406e-01 1.3957000000000000e-01 1 0 0 0 0 +V -143 0 0 0 0 0 0 2 0 +P 439 2212 -3.1316133468193180e-01 6.3226783732812875e-01 1.0670883973236167e+00 1.5864617487547701e+00 9.3827000000000005e-01 1 0 0 0 0 +P 440 211 -1.3656134001203910e-01 8.4180305408821043e-02 7.6571336719638172e-01 7.9468992003663097e-01 1.3957000000000000e-01 1 0 0 0 0 +V -144 0 0 0 0 0 0 2 0 +P 441 -211 1.0685444223770994e-01 -1.6539225620957393e-01 3.8242266590415475e-01 4.5221604409537064e-01 1.3957000000000000e-01 1 0 0 0 0 +P 442 111 -6.1402112512214591e-01 1.1088767981697505e-01 9.1946862391992579e-01 1.1193570343749397e+00 1.3497999999999999e-01 2 0 0 -212 0 +V -145 0 0 0 0 0 0 2 0 +P 443 211 9.7606484216440248e-02 3.9484400593725694e-01 2.3399496935609863e+00 2.3791328605359197e+00 1.3957000000000000e-01 1 0 0 0 0 +P 444 111 1.3390057130873545e-01 -4.0022089132772154e-01 8.8662696215810521e-01 9.9117763053736829e-01 1.3497999999999999e-01 2 0 0 -213 0 +V -146 0 0 0 0 0 0 2 0 +P 445 22 4.4521386228282923e-02 6.9294890896827888e-02 2.7189184044015768e-01 2.8409348572965798e-01 0 1 0 0 0 0 +P 446 22 -1.2530381878315813e-01 -6.1237208583624381e-01 7.7611359023390527e+00 7.7862655434482386e+00 0 1 0 0 0 0 +V -147 0 5.6913008971348268e-04 2.6971275534858177e-04 2.9382166688662489e-02 2.9389139415471353e-02 0 2 0 +P 447 22 4.2233155950894929e-01 2.7013379931995773e-01 2.3306869194700617e+01 2.3312260462567259e+01 0 1 0 0 0 0 +P 448 22 2.4777890833036781e-01 4.7433913116153387e-02 1.1288556037138038e+01 1.1291374662419651e+01 0 1 0 0 0 0 +V -148 0 7.2343549030833013e-05 -2.6983122416924707e-05 1.2103140682944620e-03 1.2137033258959099e-03 0 2 0 +P 449 22 -8.2133726674077593e-03 8.9676039303206116e-03 6.5846311157447568e-01 6.5857539182326363e-01 0 1 0 0 0 0 +P 450 22 2.1389614826006173e-01 -8.5684375324878909e-02 2.7826281846175691e+00 2.7921520353024070e+00 0 1 0 0 0 0 +V -149 0 -7.5113701994512593e-05 3.5527295882971153e-05 1.4000468538991121e-03 1.4027906502289988e-03 0 2 0 +P 451 22 -3.5454234029793569e-01 1.4220281432805057e-01 6.5246306076120621e+00 6.5358034301266219e+00 0 1 0 0 0 0 +P 452 22 -7.0619670035219672e-03 2.8828873325877486e-02 2.1532441192296625e-01 2.1736047866429073e-01 0 1 0 0 0 0 +V -150 0 -5.0929560966308059e-06 -6.7782820668099025e-05 -3.1669389769068959e-03 3.1676977988036627e-03 0 2 0 +P 453 22 -5.5002501226308863e-02 -1.3676652957384980e-01 -8.4032580701003532e+00 8.4045509428796699e+00 0 1 0 0 0 0 +P 454 22 4.6521748008517740e-03 -5.3335256863215397e-01 -2.2905947866752722e+01 2.2912156910242874e+01 0 1 0 0 0 0 +V -151 0 0 0 0 0 0 1 0 +P 455 310 5.3036395409351500e-01 -1.2314697068839459e-01 -3.4041141413635536e+01 3.4049132665491257e+01 4.9767000000000000e-01 2 0 0 -214 0 +V -152 0 -4.4479064681634288e-05 1.1936817293250047e-04 3.6557060285476724e-03 3.6579362557860790e-03 0 2 0 +P 456 22 -3.6430534851601371e-01 8.0739446461353415e-01 2.4463146973768701e+01 2.4479178173881873e+01 0 1 0 0 0 0 +P 457 22 -2.9100960940826009e-01 9.5126997185016959e-01 2.9396772505842296e+01 2.9413599489221941e+01 0 1 0 0 0 0 +V -153 0 -3.2688397628246890e-06 3.1738916671182650e-06 2.3160543367457004e-04 2.3165309436201878e-04 0 2 0 +P 458 22 -3.6863888541709272e-01 3.2058557735849108e-01 2.2617594353889025e+01 2.2622869935030884e+01 0 1 0 0 0 0 +P 459 22 -1.5354506319408460e-02 5.2254180686976508e-02 4.5892932496961736e+00 4.5896164101121171e+00 0 1 0 0 0 0 +V -154 0 -4.2854531593272900e-05 6.1890366858268527e-05 2.8373810259926832e-03 2.8384144995640204e-03 0 2 0 +P 460 22 -2.8096998668766182e-01 3.1168131470771288e-01 1.4142709945501387e+01 1.4148934022672554e+01 0 1 0 0 0 0 +P 461 22 -1.2923082607457784e-01 2.8072928560789373e-01 1.3016518255258111e+01 1.3020186520464037e+01 0 1 0 0 0 0 +V -155 0 4.8419069681422279e-05 2.6022741558005558e-04 2.3948279049090002e-02 2.3949943892512968e-02 0 2 0 +P 462 22 -1.3484395339657791e-02 2.2805801648532943e-02 6.3682372456238570e+00 6.3682923574579586e+00 0 1 0 0 0 0 +P 463 22 7.9910814805674857e-02 3.3420179014562956e-01 2.6486554060175386e+01 2.6488782957271795e+01 0 1 0 0 0 0 +V -156 0 6.4458166593028880e-05 -2.1206028966113369e-05 4.2733005526343507e-04 4.3362718820302870e-04 0 2 0 +P 464 22 1.3203767002721134e-01 -4.0120215621858198e-02 4.9619347728990221e-01 5.1502577111519743e-01 0 1 0 0 0 0 +P 465 22 1.7235440236200694e-01 -6.0021433533256625e-02 1.5217956773985872e+00 1.5327004587478847e+00 0 1 0 0 0 0 +V -157 0 1.3825358825667505e-05 -2.6586918860885477e-05 3.7356803793201702e-04 3.7477872265037859e-04 0 2 0 +P 466 22 2.0055595174990928e-01 -3.1804893931032557e-01 4.0786477119442743e+00 4.0959425015162259e+00 0 1 0 0 0 0 +P 467 22 4.5893050301397365e-01 -9.5017947224512112e-01 1.3741002689570054e+01 1.3781459035633496e+01 0 1 0 0 0 0 +V -158 0 -3.6148472811710377e-05 1.5352758396390464e-06 5.2433582314645737e-04 5.2587029576442771e-04 0 2 0 +P 468 22 -1.1858415852348296e-01 2.7338446840418432e-02 9.6412493381788344e-01 9.7177491289789286e-01 0 1 0 0 0 0 +P 469 22 -1.6198332741124952e-01 -1.5422356089156571e-02 3.1055237191692759e+00 3.1097835966107890e+00 0 1 0 0 0 0 +V -159 0 -4.4031131225084997e-05 7.8418723750972992e-05 2.4110118934396308e-04 2.5779396306412045e-04 0 2 0 +P 470 22 -6.4845192110584787e-02 1.0986152109814992e-01 2.2013532446554113e-01 2.5442879914704414e-01 0 1 0 0 0 0 +P 471 22 -3.1902888396194151e-01 5.7381192287508798e-01 1.8818432921245529e+00 1.9930814654072178e+00 0 1 0 0 0 0 +V -160 0 -2.1425183974074652e-06 2.7878514019335631e-06 2.1359544375097700e-05 2.1647542010680192e-05 0 2 0 +P 472 22 -1.0106649381417249e-01 1.1138815142136117e-01 7.6457489296899328e-01 7.7922815876192886e-01 0 1 0 0 0 0 +P 473 22 -1.7879141260115867e+00 2.3465591294882859e+00 1.8067359255970079e+01 1.8306623040704810e+01 0 1 0 0 0 0 +V -161 0 0 0 0 0 0 1 0 +P 474 130 -1.4318375653716335e+00 -3.5863038245912704e+00 -2.3209274506000757e+00 4.5327821032712690e+00 4.9767000000000000e-01 1 0 0 0 0 +V -162 0 -6.6832389808381253e-07 -2.1252586175838513e-06 -4.4691882492897211e-07 2.3205379709460523e-06 0 2 0 +P 475 22 -8.9978113978881197e-02 -4.2173754181458945e-01 -1.3491536512632196e-01 4.5184153297165791e-01 0 1 0 0 0 0 +P 476 22 -1.0157807603458334e-01 -1.8740788115304952e-01 6.8186928478867403e-03 2.1327520723543308e-01 0 1 0 0 0 0 +V -163 0 0 0 0 0 0 1 0 +P 477 310 -2.9659176075774984e-01 -4.6221487895696203e-02 -1.5427574353175526e+00 1.6485991118583883e+00 4.9767000000000000e-01 2 0 0 -215 0 +V -164 0 4.3951762908156004e-06 5.6519226407509845e-06 -2.2852952185035586e-04 2.2864708816162558e-04 0 2 0 +P 478 22 1.2883066985740826e-01 8.7348139542502687e-02 -3.9328723885587951e+00 3.9359512527044345e+00 0 1 0 0 0 0 +P 479 22 2.4737772584635406e-01 3.9643239817152115e-01 -1.5628282636309663e+01 1.5635266948342874e+01 0 1 0 0 0 0 +V -165 0 0 0 0 0 0 1 0 +P 480 130 8.0055295557585249e-01 1.1955698343636345e+00 -1.3612825986589098e+02 1.3613677343689312e+02 4.9767000000000000e-01 1 0 0 0 0 +V -166 0 4.3515025435173503e-07 -3.0950593427809659e-05 -1.2973154490519804e-05 3.4193622002278503e-05 0 2 0 +P 481 22 -2.4004418795421954e-02 -6.1969176712752407e-02 5.3372209402327469e-03 6.6669910090888906e-02 0 1 0 0 0 0 +P 482 22 3.2985457263139006e-02 -5.7681815569483774e-01 -2.7308933268050717e-01 6.3905008313428557e-01 0 1 0 0 0 0 +V -167 0 -1.3223933000948637e-05 -6.6595414819650182e-05 -1.8865608512255433e-05 7.3501681277001948e-05 0 2 0 +P 483 22 -3.7755194341771034e-02 -4.2694828777757612e-02 -5.4028993871350510e-02 7.8533020334744422e-02 0 1 0 0 0 0 +P 484 22 -4.7654369480567102e-02 -3.8742572097895756e-01 -6.7818522609498041e-02 3.9619310975279542e-01 0 1 0 0 0 0 +V -168 0 -3.2646319843143344e-06 3.0632601190069616e-06 -4.8334168988367450e-05 4.8992552461397858e-05 0 2 0 +P 485 22 -9.1214787830148150e-03 3.2607644996470279e-02 -8.2554522871056302e-01 8.2623930222071917e-01 0 1 0 0 0 0 +P 486 22 -5.7282665603845380e-02 2.9700501285987765e-02 -1.5759441819103331e-01 1.7029217304471525e-01 0 1 0 0 0 0 +V -169 0 5.0024187811615822e-05 1.5817151124905720e-04 -1.3497703728087306e-03 1.3680935638846403e-03 0 2 0 +P 487 22 -3.6296416944126709e-03 5.0920677562811878e-02 -8.6736175513884239e-01 8.6886276475621793e-01 0 1 0 0 0 0 +P 488 22 4.8867158637845319e-02 9.2115856024567719e-02 -3.5325296707559606e-01 3.6832185500209919e-01 0 1 0 0 0 0 +V -170 0 0 0 0 0 0 1 0 +P 489 130 2.9288036009376067e-01 1.2928728715900386e+00 -1.1628140700302700e+01 1.1714035630061840e+01 4.9767000000000000e-01 1 0 0 0 0 +V -171 0 -6.0930955149452699e-06 2.9697104970938514e-05 -2.4111678378370367e-04 2.4303743351679105e-04 0 2 0 +P 490 22 -9.4973743741273875e-02 6.4498168710204640e-01 -4.7230425563942617e+00 4.7678247008681511e+00 0 1 0 0 0 0 +P 491 22 -1.5474800128245778e-01 5.7213576285513090e-01 -5.1589794557811262e+00 5.1929139507804729e+00 0 1 0 0 0 0 +V -172 0 -1.1660551399751801e-05 1.9256296796349287e-05 -6.7620205483465163e-06 2.3802198800847105e-05 0 2 0 +P 492 22 -3.7027549960274636e-01 6.2212464289035718e-01 -2.5897423070960202e-01 7.6890224935888085e-01 0 1 0 0 0 0 +P 493 22 -4.9683819629574119e-02 7.1398417580221585e-02 1.5437415960085871e-02 8.8343249756098599e-02 0 1 0 0 0 0 +V -173 0 3.5746214235745734e-05 -9.2255200399066187e-06 -1.3563013280753561e-05 4.1145824932297914e-05 0 2 0 +P 494 22 3.2749523814777576e-01 -4.6886764491434571e-02 -7.1889393460914761e-02 3.3855514260770275e-01 0 1 0 0 0 0 +P 495 22 7.1660498494050137e-02 -5.6128878595896443e-02 -7.9560338291332564e-02 1.2089468758336715e-01 0 1 0 0 0 0 +V -174 0 1.1296287249582715e-05 5.8978061805748885e-06 4.9262804651243690e-05 5.0924397210535035e-05 0 2 0 +P 496 22 4.4736495198225906e-01 2.4974300382315295e-01 1.7169319940927230e+00 1.7917484311587706e+00 0 1 0 0 0 0 +P 497 22 3.0750215958027394e-01 1.4437409126494161e-01 1.5750231618747674e+00 1.6112415761818897e+00 0 1 0 0 0 0 +V -175 0 1.3475981409980000e-04 -4.1605118725126302e-04 6.3692988934369579e-03 6.3846592284279354e-03 0 2 0 +P 498 22 1.2364083130382091e-01 -2.9386391435205311e-01 5.5204694179527154e+00 5.5296677702982304e+00 0 1 0 0 0 0 +P 499 22 1.4321552040215901e-01 -5.3001598407664563e-01 7.0922510505452010e+00 7.1134697997967420e+00 0 1 0 0 0 0 +V -176 0 4.7324747145545989e-05 1.9479376242148272e-06 2.3089887975729631e-04 2.3950742171524708e-04 0 2 0 +P 500 22 1.4135983992053097e-01 -4.0296581708771914e-02 6.3148368395046228e-01 6.4836568534694761e-01 0 1 0 0 0 0 +P 501 22 8.9503713642537751e-03 4.6483512089294167e-02 1.0188440558207200e-01 1.1234437299894350e-01 0 1 0 0 0 0 +V -177 0 -9.0223456025112655e-07 -6.7037449449237448e-06 6.4286516403409821e-05 6.4689761422605756e-05 0 2 0 +P 502 22 2.4050370315804339e-02 -2.6635670283075513e-01 2.2348889868834592e+00 2.2508338670697521e+00 0 1 0 0 0 0 +P 503 22 -7.2745052887069936e-02 -9.5452461341506492e-02 1.2347314951840711e+00 1.2405502328786151e+00 0 1 0 0 0 0 +V -178 0 -1.1141606101247371e-05 3.3900741233981917e-06 2.7231501048168288e-05 3.0249992775056765e-05 0 2 0 +P 504 22 -1.5484032034025672e-01 3.3070965672253198e-02 2.0512268590893062e-01 2.5912261547009452e-01 0 1 0 0 0 0 +P 505 22 -8.9511477232786629e-02 4.1278342536144701e-02 3.9210415654668013e-01 4.0430418709198446e-01 0 1 0 0 0 0 +V -179 0 -5.7452969269882372e-05 1.0655611802714043e-04 2.3621002466825029e-04 2.6627862107816958e-04 0 2 0 +P 506 22 -1.5904748085006137e-01 4.2641811118253042e-01 9.2542971764623405e-01 1.0312849601405114e+00 0 1 0 0 0 0 +P 507 22 -2.0488139654333862e-01 2.4854871656929914e-01 5.7081408313582516e-01 6.5542472387299155e-01 0 1 0 0 0 0 +V -180 0 1.2541142567955775e-05 2.1336951076054253e-05 6.7047166629993952e-05 7.7186942912155069e-05 0 2 0 +P 508 22 -3.7656617144148925e-02 1.4185309883022947e-02 3.3350767109029379e-02 5.2263921570995034e-02 0 1 0 0 0 0 +P 509 22 9.5720803038463378e-02 8.4602554698270271e-02 2.7707064192895242e-01 3.0510359718417601e-01 0 1 0 0 0 0 +V -181 0 1.2584156716671960e-05 2.9848520962308407e-05 2.8661370545072881e-02 2.8661440450187415e-02 0 2 0 +P 510 22 -4.0194037712829624e-02 4.7510012834891861e-02 1.6029784814713764e+01 1.6029905613197329e+01 0 1 0 0 0 0 +P 511 22 7.1426379875077009e-02 2.6570375761728566e-02 5.5104241235417319e+01 5.5104293932902152e+01 0 1 0 0 0 0 +V -182 0 0 0 0 0 0 1 0 +P 512 130 1.8498251272975502e-01 2.1534491855260202e-01 5.4113827121414495e+01 5.4116860155770283e+01 4.9767000000000000e-01 1 0 0 0 0 +V -183 0 -2.2239658429523491e-05 7.9787361538852465e-06 2.4815441155492533e-03 2.4817083833750635e-03 0 2 0 +P 513 22 -2.6447337141224440e-02 -3.9309724692202258e-02 3.8222339420741900e+00 3.8225275700825549e+00 0 1 0 0 0 0 +P 514 22 -1.6079201520980721e-01 1.0648402032122213e-01 1.7070295252939683e+01 1.7071384622849845e+01 0 1 0 0 0 0 +V -184 0 3.4803808964272598e-06 -2.1082232229174461e-05 5.3342632466181025e-08 2.3123268650157156e-05 0 2 0 +P 515 22 7.1813325473446363e-02 -2.2554379405664721e-01 5.2069084583338858e-02 2.4235995197715629e-01 0 1 0 0 0 0 +P 516 22 -1.8658185022900918e-02 -9.6440795705683577e-02 -5.1254393546604243e-02 1.1079696657636637e-01 0 1 0 0 0 0 +V -185 0 -5.3747799410516562e-05 -4.4440032307684720e-05 -1.5986731409189337e-04 1.7630768596296016e-04 0 2 0 +P 517 22 -1.9710479787187180e-01 -2.3282431232600628e-01 -6.5389094601821218e-01 7.2154752514216858e-01 0 1 0 0 0 0 +P 518 22 -8.4630153565993557e-02 -1.2123114591746497e-04 -1.8410075719873392e-01 2.0262123874545424e-01 0 1 0 0 0 0 +V -186 0 7.6865554396668605e-05 4.3142338883686831e-04 -6.8937030148838192e-03 6.9079097940412853e-03 0 2 0 +P 519 22 9.1906525835010915e-04 -1.4789438215505925e-03 -2.5924226335474737e-01 2.5924811101542949e-01 0 1 0 0 0 0 +P 520 22 1.6227427277457440e-01 9.1743438683356748e-01 -1.4376785736923154e+01 1.4406942316784155e+01 0 1 0 0 0 0 +V -187 0 9.6604711234698149e-06 -4.7395522046942198e-08 -7.1709104054133583e-05 7.2905658342372988e-05 0 2 0 +P 521 22 8.5947444322755293e-02 -6.6719307979624706e-02 -6.4429326409960863e-01 6.5341582427043943e-01 0 1 0 0 0 0 +P 522 22 6.0103580822178510e-02 6.6002762741430479e-02 -4.3983483125659523e-01 4.4880227707049974e-01 0 1 0 0 0 0 +V -188 0 -4.4469111055583206e-06 1.3188593151499278e-05 -3.2261949631913662e-04 3.2302176841489226e-04 0 2 0 +P 523 22 -3.1712032262728999e-02 -2.0883585220431546e-03 -3.0080324114774448e-01 3.0247744397977422e-01 0 1 0 0 0 0 +P 524 22 -4.2167611336134614e-02 2.2119967837399371e-01 -5.0591000356033122e+00 5.0641090603777545e+00 0 1 0 0 0 0 +V -189 0 -4.3236035757693638e-05 5.8582752132276060e-05 -5.7308757738288424e-04 5.7847833554835050e-04 0 2 0 +P 525 22 -1.9920557528452923e-01 2.2951795799458932e-01 -1.9774628498852040e+00 2.0006800536174132e+00 0 1 0 0 0 0 +P 526 22 5.3730450744935102e-03 3.3115812041689355e-02 -5.9176009596032075e-01 5.9271033211132973e-01 0 1 0 0 0 0 +V -190 0 -4.6563360052264990e-06 -2.1757073182779297e-05 1.1881217619907731e-06 2.6347063784305840e-05 0 2 0 +P 527 22 2.6481780274558765e-02 3.2840805847918842e-03 -9.1585090480877599e-03 2.8212553230456044e-02 0 1 0 0 0 0 +P 528 22 -7.1181574739910172e-02 -2.1214716485238358e-01 2.0564214843628897e-02 2.2471342431971594e-01 0 1 0 0 0 0 +V -191 0 -6.7958182803273389e-06 -2.2789598315534417e-05 3.3178587244766811e-05 6.9711989667256509e-05 0 2 0 +P 529 22 4.4007402269560576e-02 1.9050423208921346e-02 4.4254119127109588e-02 6.5253330479526792e-02 0 1 0 0 0 0 +P 530 22 -6.0239884439087552e-02 -7.3485626307050064e-02 3.4996208595725116e-02 1.0126063187166835e-01 0 1 0 0 0 0 +V -192 0 -9.2399879437066819e+00 -3.0387131447697538e+01 -7.5942819906423047e+00 5.6183581317030246e+01 0 2 0 +P 531 -211 7.2339661850637116e-02 -3.2521430738104773e-01 2.9845760368060501e-02 3.6244713644053916e-01 1.3957000000000000e-01 1 0 0 0 0 +P 532 211 -1.7292216029916171e-01 -5.5668170439967064e-03 -1.1251381807496415e-01 2.4914294517873958e-01 1.3957000000000000e-01 1 0 0 0 0 +V -193 0 -3.3735231507927859e-06 -2.4310362020575016e-05 1.7226629499045319e-05 3.2395411854205048e-05 0 2 0 +P 534 22 4.6605103750219246e-03 -4.7604324203406684e-02 -1.8116794935990260e-02 5.1147925652673905e-02 0 1 0 0 0 0 +P 533 22 -4.1799321747595368e-02 -2.2002625342251989e-01 2.0776320166063492e-01 3.0549023463604780e-01 0 1 0 0 0 0 +V -194 0 -1.7223995802044271e-06 -9.9525183324882429e-07 7.9935797423441558e-06 9.2576333951367783e-06 0 2 0 +P 535 22 1.0874576406073361e-03 -1.8699332423074717e-02 2.3331489504831751e-01 2.3406556314117663e-01 0 1 0 0 0 0 +P 536 22 -5.6116641951763281e-02 -1.3098107147460443e-02 2.2073098540934744e-02 6.1707856825420224e-02 0 1 0 0 0 0 +V -195 0 -1.0561297718282755e-04 1.7322491781130437e-04 5.9462272496750264e-04 6.2882871984594924e-04 0 2 0 +P 537 22 -2.1748912590842331e-01 4.0316638854421255e-01 1.5358537367294918e+00 1.6027137477934530e+00 0 1 0 0 0 0 +P 538 22 -3.2584382015507379e-01 4.8800065774682477e-01 1.5232221985470455e+00 1.6323371904239272e+00 0 1 0 0 0 0 +V -196 0 0 0 0 0 0 1 0 +P 539 310 5.7209538578317543e-01 -9.1601292232158002e-02 -1.3829998035577337e-01 7.7619987157909842e-01 4.9767000000000000e-01 2 0 0 -216 0 +V -197 0 2.4019926994931783e-07 -6.0416454152739986e-07 4.2226818955174602e-07 8.2968315987892530e-07 0 2 0 +P 540 22 6.6848277001447187e-02 -6.0958209970164400e-02 5.6178057143901434e-03 9.0643009889750908e-02 0 1 0 0 0 0 +P 541 22 4.2850452954082546e-02 -2.1496304034714489e-01 1.8723159014023277e-01 2.8827233370564426e-01 0 1 0 0 0 0 +V -198 0 6.5287521213597090e-06 -1.6117799071818023e-06 -3.0820813596859984e-06 7.4907746327396357e-06 0 2 0 +P 542 22 2.3363370799508734e-01 -5.5730263288117409e-03 -1.4570219730322215e-01 2.7539952511393773e-01 0 1 0 0 0 0 +P 543 22 5.1382275035746849e-01 -1.7895462591953512e-01 -2.0715568038038368e-01 5.8219588871510730e-01 0 1 0 0 0 0 +V -199 0 0 0 0 0 0 3 0 +P 544 211 7.2039523215605261e-01 -3.6736437975442332e-01 -2.9003951596164219e+00 3.0142491179150896e+00 1.3957000000000000e-01 1 0 0 0 0 +P 545 -211 2.0811046164856656e-01 -9.7076490529901388e-02 -9.3664893491201751e-01 9.7443564253007409e-01 1.3957000000000000e-01 1 0 0 0 0 +P 546 111 7.6439448341283889e-01 -1.6319820437628141e-01 -2.4284510447741372e+00 2.5547067654523916e+00 1.3497999999999999e-01 2 0 0 -217 0 +V -200 0 -1.6432909207964205e-05 -7.9824489275475590e-05 -1.0522786643367612e-04 1.3838811709899012e-04 0 2 0 +P 547 22 2.0913225215301631e-02 3.6758058149488726e-03 -2.1306516927539914e-02 3.0080595088506565e-02 0 1 0 0 0 0 +P 548 22 -7.9439325183585624e-02 -2.8797215164941031e-01 -3.5346441087396047e-01 4.6279115837026358e-01 0 1 0 0 0 0 +V -201 0 1.6164268726202693e-07 -2.2039284754121565e-07 5.0397629773053878e-06 5.1427813216031760e-06 0 2 0 +P 549 22 -5.6717912031914300e-02 -1.7745651231293166e-02 2.5677103342421997e-01 2.6355870937729325e-01 0 1 0 0 0 0 +P 550 22 7.8822474490421540e-02 -1.2392968377188934e-02 4.3241421457486973e-01 4.3971424938975157e-01 0 1 0 0 0 0 +V -202 0 -3.8148426826111342e-05 6.7214870004697462e-04 5.3066136439277271e-03 5.3498371418724423e-03 0 2 0 +P 551 22 -7.0179649086229604e-02 3.3943873319233780e-01 3.0226410969029458e+00 3.0424501700806421e+00 0 1 0 0 0 0 +P 552 22 1.0198438854068275e-02 7.1738839806950361e-01 5.3210085651958536e+00 5.3691602949369495e+00 0 1 0 0 0 0 +V -203 0 0 0 0 0 0 1 0 +P 553 130 -7.8781697561949271e-01 5.4422089375246685e-01 9.1458600181790075e+00 9.2093030609974118e+00 4.9767000000000000e-01 1 0 0 0 0 +V -204 0 0 0 0 0 0 1 0 +P 554 310 -7.2639469362242060e-01 3.6391099384214726e-01 1.1382133321844409e+01 1.1421940064958441e+01 4.9767000000000000e-01 2 0 0 -218 0 +V -205 0 1.1779236187810234e-05 8.8136515821122369e-06 4.6043112317678921e-04 4.6087946946870634e-04 0 2 0 +P 555 22 7.9864146623307694e-02 1.2156376086533430e-01 3.1649610887278126e+00 3.1683015517833417e+00 0 1 0 0 0 0 +P 556 22 3.3520899152715923e-02 -3.6724958742843213e-02 1.2670753477375407e+00 1.2680505944633595e+00 0 1 0 0 0 0 +V -206 0 3.9918137703655458e-05 -1.6314529835601096e-05 -4.1782943538884980e-04 4.2011896019205453e-04 0 2 0 +P 557 22 4.8444453326069842e-01 -1.7062202826696454e-01 -4.3743293539038568e+00 4.4043791479345922e+00 0 1 0 0 0 0 +P 558 22 2.1773520565967508e-01 -1.1635860158145582e-01 -2.9754965831844515e+00 2.9857206601569413e+00 0 1 0 0 0 0 +V -207 0 -9.8382711082984495e-05 1.0381505708631199e-04 -4.2367310508488541e-04 4.5612164498563096e-04 0 2 0 +P 559 22 -1.1820584450122643e-02 -1.6060206837071978e-02 -1.1815502929093931e-02 2.3178925123038745e-02 0 1 0 0 0 0 +P 560 22 -1.3581064020573216e-01 1.7184310656263610e-01 -6.2394029876529555e-01 6.6126853825772958e-01 0 1 0 0 0 0 +V -208 0 -4.3921776029805596e-05 2.9788443136967845e-05 -7.7343397718084210e-05 9.4323521818948618e-05 0 2 0 +P 561 22 -3.7219271349381805e-01 3.1341750210245684e-01 -6.3166726390592265e-01 7.9734652372254633e-01 0 1 0 0 0 0 +P 562 22 -2.2530657193845258e-01 9.1815962874002371e-02 -4.2049020891801436e-01 4.8580370335460860e-01 0 1 0 0 0 0 +V -209 0 -4.5476606945718249e-05 2.0103734705655713e-05 -9.3567140646843043e-05 1.0724373122600039e-04 0 2 0 +P 563 22 -2.9119152917936542e-01 1.1654730397796420e-01 -6.8492021847390561e-01 7.5332030797310356e-01 0 1 0 0 0 0 +P 564 22 -7.9559396942135666e-02 4.7349669899603999e-02 -7.7891837640231998e-02 1.2099102137088527e-01 0 1 0 0 0 0 +V -210 0 -3.1513825920006135e-05 4.0214012888618100e-06 -1.2104636768091706e-04 1.2582968009452371e-04 0 2 0 +P 565 22 -2.0821687003115755e-01 -3.5550488162903690e-03 -9.7529066000740405e-01 9.9727567644826054e-01 0 1 0 0 0 0 +P 566 22 -1.1651249793019035e-01 4.4992959343746600e-02 -2.7201300190967870e-01 2.9931689189278221e-01 0 1 0 0 0 0 +V -211 0 -7.6322960167519920e-05 3.8032859468481829e-06 -2.2295713646956259e-04 2.3642455954656021e-04 0 2 0 +P 567 22 -2.3596479193032335e-01 7.8693352480712103e-02 -7.1353458927233204e-01 7.5564782593706314e-01 0 1 0 0 0 0 +P 568 22 -3.1705682481445735e-01 -5.1135467688872380e-02 -9.0197030996840699e-01 9.5743945306305900e-01 0 1 0 0 0 0 +V -212 0 -1.8139484355414673e-04 3.2758568898555692e-05 2.7163050319436966e-04 3.3068177270168745e-04 0 2 0 +P 569 22 -2.5438740051631026e-01 4.5020203517792519e-02 5.0087060048465426e-01 5.6356998384946588e-01 0 1 0 0 0 0 +P 570 22 -3.5963372460583565e-01 6.5867476299182534e-02 4.1859802343527158e-01 5.5578705052547384e-01 0 1 0 0 0 0 +V -213 0 2.4428922970138252e-05 -7.3016606499326774e-05 1.6175690327614769e-04 1.8083120743594527e-04 0 2 0 +P 571 22 2.9367307545180181e-02 -1.9052347198993341e-01 5.3467463287475814e-01 5.6836484336323057e-01 0 1 0 0 0 0 +P 572 22 1.0453326376355529e-01 -2.0969741933778815e-01 3.5195232928334702e-01 4.2281278717413778e-01 0 1 0 0 0 0 +V -214 0 4.9579155221870880e-01 -1.1511948969643888e-01 -3.1822129333071317e+01 3.1829599665719567e+01 0 2 0 +P 573 211 3.7577127580332814e-01 -7.2432832855482146e-02 -2.9616994036592914e+01 2.9619795173422023e+01 1.3957000000000000e-01 1 0 0 0 0 +P 574 -211 1.5459267829018677e-01 -5.0714137832912419e-02 -4.4241473770426190e+00 4.4293374920692319e+00 1.3957000000000000e-01 1 0 0 0 0 +V -215 0 -4.7708493299121385e-01 -7.4349925969399086e-02 -2.4816142086001607e+00 2.6518666425556883e+00 0 2 0 +P 575 211 -1.8710039471863932e-01 -7.5516186697918888e-02 -1.3934778944835580e+00 1.4149097778556750e+00 1.3957000000000000e-01 1 0 0 0 0 +P 576 -211 -1.0949136603911050e-01 2.9294698802222685e-02 -1.4927954083399445e-01 2.3368933400271319e-01 1.3957000000000000e-01 1 0 0 0 0 +V -216 0 1.0046434401596073e+01 -1.6085890506737788e+00 -2.4286538834502935e+00 1.3630665945105468e+01 0 2 0 +P 577 211 4.2277088197502372e-01 1.2823578574380656e-01 -9.4354533417582487e-02 4.7282364393896442e-01 1.3957000000000000e-01 1 0 0 0 0 +P 578 -211 1.4932450380815165e-01 -2.1983707797596455e-01 -4.3945446938190864e-02 3.0337622764013394e-01 1.3957000000000000e-01 1 0 0 0 0 +V -217 0 2.4449966258954613e-05 -5.2200672258999185e-06 -7.7676575897242336e-05 8.1714998697994160e-05 0 2 0 +P 579 22 7.4264847022229474e-01 -1.4651608537616675e-01 -2.3931683946888840e+00 2.5100296171430410e+00 0 1 0 0 0 0 +P 580 22 2.1746013190544179e-02 -1.6682119000114660e-02 -3.5282650085253067e-02 4.4677148309350663e-02 0 1 0 0 0 0 +V -218 0 -3.3167578833116316e+01 1.6616374930143870e+01 5.1971443012433133e+02 5.2153202777739250e+02 0 2 0 +P 581 211 -4.1414101287442306e-01 3.9477834598429262e-01 8.2622830335795356e+00 8.2832459478684441e+00 1.3957000000000000e-01 1 0 0 0 0 +P 582 -211 -3.1225368074799753e-01 -3.0867352142145359e-02 3.1198502882648715e+00 3.1386941170899947e+00 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 6 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 168 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 5.1553292069003653e-01 3.8485835711180655e-01 1.7290951843317296e+03 1.7290953040157517e+03 0 3 0 0 -3 0 +P 34 2101 -5.1553292069003653e-01 -3.8485835711180655e-01 4.2219673894488587e+03 4.2219674782123802e+03 5.7933000000000001e-01 2 0 0 -13 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 -4.9797130516589477e-01 1.0933883123411841e+00 -1.3097958796984543e+02 1.3098509815308313e+02 0 3 0 0 -4 0 +P 19 2103 2.9142878896144259e-01 -6.5062234924971918e-01 -6.7718730985476304e+03 6.7718731800014712e+03 7.7132999999999996e-01 2 0 0 -9 0 +P 47 2 2.0654251620445219e-01 -4.4276596309146488e-01 -5.7621689243983575e+01 5.7624705403492385e+01 3.3000000000000002e-01 2 0 0 -13 0 +V -3 0 0 0 0 0 0 4 0 +P 5 2 -3.1543729466487069e+00 -4.6848142715162355e+00 8.5430129997171412e+02 8.5431996856377293e+02 0 3 0 0 -5 0 +P 35 21 -5.5465777356364798e-01 9.8068482118457034e-01 7.0650666253777854e+02 7.0650756089247534e+02 0 2 0 0 -13 0 +P 36 21 3.9295485495835827e+00 2.0268615205012281e+00 5.6968906941557279e+01 5.7140229939532411e+01 0 2 0 0 -13 0 +P 37 21 7.2056915500682295e-01 2.7350626169661183e+00 3.1393811690569535e+01 3.1520964450486176e+01 0 2 0 0 -13 0 +V -4 0 0 0 0 0 0 14 0 +P 6 -1 2.6542267443335232e+00 4.7733493416006816e+00 -9.5183018160378474e-01 5.5439845095298299e+00 0 3 0 0 -5 0 +P 11 1 1.0452289512758353e+00 1.6158783855979435e+00 -6.1449917248529795e+00 6.4477430017130333e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 2.0507170473914881e-02 -8.9170706750033535e-01 6.3770653890766849e-01 1.0964632543028934e+00 0 2 0 0 -9 0 +P 13 21 2.4396972905842967e-01 -1.4625120878663037e-01 1.0957508431732279e+00 1.1320691476598213e+00 0 2 0 0 -9 0 +P 14 21 2.2404339997558728e-01 3.9772174914434660e-02 2.5679435268111024e+00 2.5780052808055083e+00 0 2 0 0 -9 0 +P 15 21 2.2907916028215539e-01 5.6145433093357851e-02 2.9566325145909338e+00 2.9660251849350718e+00 0 2 0 0 -9 0 +P 16 21 -6.4153613197677273e-01 -7.0041909254235180e-01 1.0594798881277963e+00 1.4229030701972845e+00 0 2 0 0 -9 0 +P 17 21 -6.0129688723679253e-01 1.0936253434099126e+00 -4.3678739538393438e+00 4.5426751166000470e+00 0 2 0 0 -9 0 +P 18 21 -3.0305601865621408e+00 -1.6350966724517046e+00 -5.7074862415394945e+00 6.6658259330709209e+00 0 2 0 0 -9 0 +P 44 21 4.9246236874230154e-01 -5.4861752836502131e-01 4.3982393709953467e+00 4.4595975089272537e+00 0 2 0 0 -13 0 +P 45 21 4.3766303360700642e-01 2.8042708174598313e-01 -4.3159676870355774e+00 4.3471560076327940e+00 0 2 0 0 -13 0 +P 46 21 -1.4413565938367516e+00 2.1405263273210222e+00 -1.0566874068613508e+02 1.0570024654645897e+02 0 2 0 0 -13 0 +P 42 21 -6.7308225475211777e-03 8.7119620191138739e-02 7.4004359099556938e-02 1.1450666950073547e-01 0 2 0 0 -13 0 +P 43 21 -5.4922530444249185e-01 -5.7443001559112279e+00 6.3312048654001273e+01 6.3574477091698256e+01 0 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 1.3362652386696274e+01 -5.2304954478332810e+00 3.2435236228283662e+02 3.2466963744688843e+02 0 3 0 0 -6 0 +P 8 24 -1.3862798589011460e+01 5.3190305179177280e+00 5.2899710750727365e+02 5.3519431562641421e+02 7.9840756868868453e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 1.3362652386696274e+01 -5.2304954478332810e+00 3.2435236228283662e+02 3.2466963744688843e+02 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -1.3862798589011460e+01 5.3190305179177280e+00 5.2899710750727365e+02 5.3519431562641421e+02 7.9840756868868453e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 14 0 +P 20 -3 7.5856117110311561e-01 2.0869673719529196e+01 5.4238786725784678e+01 5.8122411182736293e+01 5.0000000000000000e-01 2 0 0 -11 0 +P 21 21 8.7653865698945155e-01 1.9452440200741499e+00 3.7291978086873669e+00 4.2964183468500563e+00 0 2 0 0 -11 0 +P 22 21 -2.0857452765265194e-01 -7.8097599171663326e-02 5.4489705676514189e-01 5.8865556232250016e-01 0 2 0 0 -11 0 +P 23 21 4.3330618320281716e-01 -2.4374988476555451e-01 8.2552704145238334e+00 8.2702271958899356e+00 0 2 0 0 -11 0 +P 24 21 2.6578215572600017e-01 -6.1069772931963884e-01 4.5356490599717514e+00 4.5842888506420660e+00 0 2 0 0 -11 0 +P 25 21 1.6304916049466662e+00 -3.6620941265445184e-01 9.3379838052457362e+00 9.4863351066020183e+00 0 2 0 0 -11 0 +P 26 21 2.6494131576136009e+00 -1.8737085154722346e+00 9.4375769353402248e+00 9.9798813665872306e+00 0 2 0 0 -11 0 +P 27 21 4.8537372653729438e-01 -5.1150354578642432e-01 3.0414025015288576e+01 3.0422198164537093e+01 0 2 0 0 -11 0 +P 28 21 -5.8689790026581257e-01 -6.6235167154779151e-01 4.0123127325052408e+01 4.0132885583078945e+01 0 2 0 0 -11 0 +P 29 21 4.1758121948632577e-02 4.2034989308576348e-01 1.8538918442599272e+01 1.8543730336550770e+01 0 2 0 0 -11 0 +P 30 21 -2.5101750377319743e+00 -1.9382973720472618e+00 6.5945986831567893e+01 6.6022201982453325e+01 0 2 0 0 -11 0 +P 31 21 8.7123477679498865e-02 -8.9409756075726099e-01 2.1265649086936058e+01 2.1284614913998784e+01 0 2 0 0 -11 0 +P 32 21 -1.4970574855498966e+00 -4.0178069904057806e-01 2.0564942822669387e+01 2.0623275252607758e+01 0 2 0 0 -11 0 +P 33 4 -1.6288441893558204e+01 -1.0335743124208518e+01 2.4206509617684176e+02 2.4283719178155783e+02 1.5000000000000000e+00 2 0 0 -11 0 +V -9 0 0 0 0 0 0 1 0 +P 54 92 -2.2191360057483411e+00 -1.2186750535150928e+00 -6.7797759371562515e+03 6.7987248899907554e+03 5.0723955090606091e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 28 0 +P 55 223 4.3914986813415746e-01 3.6830815462664462e-01 -2.8127082215870023e+00 2.9747272598040237e+00 7.8049421970396760e-01 2 0 0 -19 0 +P 56 2214 9.3832780090047519e-03 9.1663704029871862e-01 -1.5328564926592643e+00 2.1740194902635626e+00 1.2395161182511469e+00 2 0 0 -20 0 +P 57 -2214 1.8785147040946842e-01 2.0187292697287215e-01 -1.2056659478163527e+00 1.7030569421445392e+00 1.1707825233078986e+00 2 0 0 -21 0 +P 58 -211 4.3147175131205556e-02 -2.3557373365294690e-02 2.1335388761743965e-01 2.5964648047518357e-01 1.3957000000000000e-01 1 0 0 0 0 +P 59 213 5.4943604442193794e-01 -4.4949867669686494e-01 1.8435024615148028e+00 2.2056789519361231e+00 9.8111634689298655e-01 2 0 0 -22 0 +P 68 -213 -5.2211437200382105e-01 7.9286955835134260e-02 -8.5790184370084488e-01 1.2011011581202928e+00 6.5403255254922366e-01 2 0 0 -29 0 +P 69 223 -9.5592288677932846e-01 -1.7918868574715585e-01 -3.0639090063121457e+00 3.3077794403724048e+00 7.7972384638497683e-01 2 0 0 -30 0 +P 70 211 7.0967562238259174e-02 3.8996758193883674e-01 -2.7910900605680138e+00 2.8225475409556564e+00 1.3957000000000000e-01 1 0 0 0 0 +P 71 221 -7.9420492103182139e-01 -1.1446092486693100e+00 -5.8237902163823607e+00 6.0130795584011185e+00 5.4744999999999999e-01 2 0 0 -31 0 +P 72 -211 -2.2868738909695571e-01 5.3871835020221159e-01 -8.0709761702752125e+00 8.0933708372239366e+00 1.3957000000000000e-01 1 0 0 0 0 +P 73 323 -3.7655233898013341e-01 -5.2497601208213923e-02 -9.3341650875051556e+00 9.3805406988977769e+00 8.5050470942461276e-01 2 0 0 -32 0 +P 74 -323 4.7081490132332504e-01 -1.5865648494546025e-02 -3.2261583443112883e+01 3.2277241798891765e+01 8.8806165162095285e-01 2 0 0 -33 0 +P 75 211 -9.1757958893698033e-02 3.2181918311161262e-01 -1.6614336925585420e+01 1.6618292883789543e+01 1.3957000000000000e-01 1 0 0 0 0 +P 76 -211 -5.6452720769387055e-01 -4.8762420703273973e-01 -5.1472406189058162e+01 5.1478000612026534e+01 1.3957000000000000e-01 1 0 0 0 0 +P 77 2212 4.1629393788876684e-01 4.8136660226161482e-01 -2.2629571529474541e+02 2.2629855528880839e+02 9.3827000000000005e-01 1 0 0 0 0 +P 78 -2212 1.6931670804072943e-01 -2.7905712401517913e-01 -3.0378841559864082e+02 3.0379003990182349e+02 9.3827000000000005e-01 1 0 0 0 0 +P 79 113 -3.4822564064186329e-01 -1.3279027021738696e-01 -5.8612314068012904e+02 5.8612361777362742e+02 6.4836483108520382e-01 2 0 0 -34 0 +P 80 223 3.1115346594947385e-01 9.5015147249963641e-02 -1.6070126147938757e+02 1.6070340807922597e+02 7.6425313486313373e-01 2 0 0 -35 0 +P 81 111 -3.0700454395497856e-01 -2.6156960683994035e-01 -8.8893536417835003e+02 8.8893546592367738e+02 1.3497999999999999e-01 2 0 0 -36 0 +P 82 2214 4.7537093601289926e-01 -3.4129421297560109e-01 -4.4813354731965437e+03 4.4813356767779196e+03 1.2174455488125147e+00 2 0 0 -37 0 +P 60 313 -7.8106864351388319e-02 -2.9683058321885142e-01 1.5358913398195986e+00 1.7943222638789789e+00 8.7545479696332307e-01 2 0 0 -23 0 +P 61 -313 -2.8127679350961809e-01 -4.0985048763141485e-01 1.3613208314607497e+00 1.6998147557129637e+00 8.8830273037505358e-01 2 0 0 -24 0 +P 62 111 5.2287976246185208e-01 3.1551855841571058e-01 1.6575473956800690e+00 1.7716202121286238e+00 1.3497999999999999e-01 2 0 0 -25 0 +P 63 223 4.2062353527572627e-01 -5.3534021227090882e-02 -5.1902760003831150e-01 1.0278601073623364e+00 7.7930526807457901e-01 2 0 0 -26 0 +P 64 313 -1.0164883296342317e+00 3.0317113360459302e-01 -4.7102726088297031e-01 1.4817262414936587e+00 9.2113229978235245e-01 2 0 0 -27 0 +P 65 -311 -5.9377456944595330e-01 4.5203893895285015e-02 -9.6189558945220821e-01 1.2359329210161991e+00 4.9767000000000000e-01 2 0 0 -28 0 +P 66 -211 -1.4391794255819610e-02 -7.1461790982322015e-01 -2.6658286748581150e-01 7.7552052901194535e-01 1.3957000000000000e-01 1 0 0 0 0 +P 67 211 -1.3248904077166496e-01 -4.3317492476548036e-01 -1.1482597221245971e+00 1.2422455617645944e+00 1.3957000000000000e-01 1 0 0 0 0 +V -11 0 0 0 0 0 0 1 0 +P 83 92 -1.3862798589011463e+01 5.3190305179177262e+00 5.2899710750727411e+02 5.3519431562641466e+02 7.9840756868868667e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 21 0 +P 84 311 2.5888648514865614e-01 6.8942858996681888e+00 1.8438621810969973e+01 1.9693365634025938e+01 4.9767000000000000e-01 2 0 0 -38 0 +P 85 -2214 5.9843068834265156e-01 7.0360055489560640e+00 1.7358883624012101e+01 1.8783497498949131e+01 1.2749291146342472e+00 2 0 0 -39 0 +P 86 2212 3.4886119643935054e-01 4.9862993156252911e+00 1.2320349332712045e+01 1.3328775010192965e+01 9.3827000000000005e-01 1 0 0 0 0 +P 87 213 -1.7633909923617705e-01 5.5008275946494822e-01 3.1366704522030666e+00 3.2788845202711485e+00 7.6072048176052942e-01 2 0 0 -40 0 +P 88 -213 9.3596281426276295e-01 3.1300597444033751e+00 1.2279947128812188e+01 1.2716588374863234e+01 4.9113950774381010e-01 2 0 0 -41 0 +P 89 223 2.1870910397305326e-01 -5.2382770779191845e-01 2.3985226478001938e+00 2.5828193483021984e+00 7.7189102491382144e-01 2 0 0 -42 0 +P 90 213 6.1204214328732109e-01 -1.6796573188674388e-01 4.5599062798313206e+00 4.6552912175547361e+00 6.9006011850357374e-01 2 0 0 -43 0 +P 91 221 5.4269273511143312e-01 7.7987872353382517e-02 1.0780774373457542e+00 1.3276106267994858e+00 5.4744999999999999e-01 2 0 0 -44 0 +P 92 -211 8.0098137319982554e-01 -5.7398530539559300e-01 6.2237539585614439e+00 6.3028266208608654e+00 1.3957000000000000e-01 1 0 0 0 0 +P 93 213 5.5057551623275680e-01 -1.0534036535349371e+00 9.4814928549044328e+00 9.5835615561107037e+00 7.3017305195649951e-01 2 0 0 -45 0 +P 94 -321 1.5575020040762801e+00 -8.3099763629883872e-01 8.8844400576506484e+00 9.0715646755244688e+00 4.9359999999999998e-01 1 0 0 0 0 +P 95 313 3.3279971362282484e-01 -1.8260757454558951e-01 7.4157827342161626e+00 7.4614577188472992e+00 7.3172163653847266e-01 2 0 0 -46 0 +P 96 -1114 -5.0615240179884302e-01 -3.3322629949875109e-02 2.3237572673526984e+01 2.3276087644739984e+01 1.2386168239838844e+00 2 0 0 -47 0 +P 97 -211 1.7928451814409808e-02 -8.9954836115038374e-03 3.5726096339188897e+00 3.5753911295660967e+00 1.3957000000000000e-01 1 0 0 0 0 +P 98 3122 -6.5369447377612477e-01 -1.0702310712709195e+00 2.9383501117182917e+01 2.9431404838655745e+01 1.1156800000000000e+00 2 0 0 -48 0 +P 99 321 -2.4057580701681808e-01 -2.6944576020956384e-01 4.7340903611494610e+01 4.7344854772714633e+01 4.9359999999999998e-01 1 0 0 0 0 +P 100 -211 5.7342976079554991e-02 -6.8530273376454165e-01 2.0599804297672083e+01 2.0611752592661787e+01 1.3957000000000000e-01 1 0 0 0 0 +P 101 223 -2.3410430059255853e+00 -1.1503275478832635e+00 4.4285266064355085e+01 4.4369010681721200e+01 7.8777069059294114e-01 2 0 0 -49 0 +P 102 223 -3.1953002833548410e+00 -2.9014902189151588e+00 5.7122129530076670e+01 5.7290619886004976e+01 8.0551566129046692e-01 2 0 0 -50 0 +P 103 111 -9.4229307627474845e-01 -2.6009023256420677e-01 1.3944330755467364e+01 1.3979203946897107e+01 1.3497999999999999e-01 2 0 0 -51 0 +P 104 411 -1.2640115643219200e+01 -7.6436973349308683e+00 1.8593454150456017e+02 1.8652974733115090e+02 1.8693000000000000e+00 2 0 0 -52 0 +V -13 0 0 0 0 0 4 1 0 +P 38 21 -3.6780928056629758e+00 1.8218289456156361e-01 2.3176136987604477e+02 2.3179062561742003e+02 0 2 0 0 -13 0 +P 39 21 1.9326626594872165e+00 3.0361539888006712e+00 4.1524606600260074e+02 4.1526166298688753e+02 0 2 0 0 -13 0 +P 40 21 3.6780928056629758e+00 -1.8218289456156361e-01 5.0306149033881333e+01 5.0440759192474694e+01 0 2 0 0 -13 0 +P 41 21 -3.1335321392207005e-01 3.6624933692512527e+00 2.9580619506280872e+01 2.9808138121859425e+01 0 2 0 0 -13 0 +P 105 92 4.3385916536288640e+00 7.8287873414824647e+00 5.6439088698045143e+03 5.9802581086412247e+03 1.9772960329759103e+03 2 0 0 -14 0 +V -14 0 0 0 0 0 0 44 0 +P 106 2212 -3.4160521964083146e-01 -4.2707439382586243e-01 3.8512250996931152e+03 3.8512252528180561e+03 9.3827000000000005e-01 1 0 0 0 0 +P 107 223 -2.5910643630590879e-01 2.6822308539292211e-01 3.3980500829705886e+02 3.3980610932012291e+02 7.8050480217877360e-01 2 0 0 -53 0 +P 108 -213 -8.4375493495365134e-02 9.5940084333554179e-02 4.2717554323319206e+02 4.2717675743312810e+02 1.0104606796748297e+00 2 0 0 -54 0 +P 109 113 -3.4570270925533353e-01 3.3786281887310854e-01 1.4073143387350351e+02 1.4073480152132342e+02 8.4511390146478793e-01 2 0 0 -55 0 +P 110 213 2.4695902556986107e-01 1.2962129105176443e-01 1.2135495094371257e+02 1.2135708944265656e+02 6.6426576206931942e-01 2 0 0 -56 0 +P 111 -213 7.1828294249699365e-01 2.4088172256065112e-02 1.8213566215684704e+01 1.8242281874573358e+01 7.2824657412961591e-01 2 0 0 -57 0 +P 112 211 3.2873577492781386e-01 9.7272501560572222e-01 3.9426955314388032e+01 3.9440569802087708e+01 1.3957000000000000e-01 1 0 0 0 0 +P 113 111 3.6542984071301632e-02 -1.2598519400611854e-01 1.0816686858157469e+00 1.0979227682619390e+00 1.3497999999999999e-01 2 0 0 -58 0 +P 114 -323 8.6173923366826966e-01 1.1984057445008052e+00 3.0606103245405613e+01 3.0655843761329539e+01 9.3189592515667330e-01 2 0 0 -59 0 +P 115 321 9.6888861415451444e-03 7.5096383158525493e-01 1.2274824797803829e+01 1.2307680745276246e+01 4.9359999999999998e-01 1 0 0 0 0 +P 129 113 -1.8452176626646558e-01 6.0381110882112632e-01 1.3101634256941848e+01 1.3132355266544623e+01 6.3819942549986375e-01 2 0 0 -69 0 +P 130 -3112 1.4055290907999738e+00 4.7729917439304131e-01 2.0435320259645351e+01 2.0524120034603992e+01 1.1974400000000001e+00 2 0 0 -70 0 +P 131 3122 5.3829758889303592e-01 4.0787393536340916e-01 1.1614299998698201e+01 1.1687293603033934e+01 1.1156800000000000e+00 2 0 0 -71 0 +P 132 113 3.0711687734085993e-03 -8.8265073989745946e-01 1.3713684841961960e+01 1.3753831262363400e+01 5.6889426802210974e-01 2 0 0 -72 0 +P 133 221 -7.5480206365605290e-02 1.8124278719185263e-01 5.6912987989439365e+00 5.7209378366508021e+00 5.4744999999999999e-01 2 0 0 -73 0 +P 134 -323 3.4119607349226949e-02 2.9236525030979216e-01 9.4123046873792351e+00 9.4590213924699373e+00 8.9160786669277803e-01 2 0 0 -74 0 +P 135 311 3.1370849344690394e-01 -1.6502140696154801e+00 1.7013060483686480e+01 1.7103026689591879e+01 4.9767000000000000e-01 2 0 0 -75 0 +P 136 111 -4.0944263992706453e-01 4.8640258974619648e-02 1.8573871902464190e+00 1.9073845771304352e+00 1.3497999999999999e-01 2 0 0 -76 0 +P 137 211 4.2521983009641312e-01 1.0095857429967137e-01 1.7231640563937192e+00 1.7831933960676001e+00 1.3957000000000000e-01 1 0 0 0 0 +P 138 331 -6.4813629763747049e-01 -1.8623822616724834e+00 1.5746494503179859e+01 1.5898343095215896e+01 9.5743181773845276e-01 2 0 0 -77 0 +P 139 223 2.6048232688869083e-01 -7.5634998087022398e-01 9.4625709838721264e+00 9.5283224643966609e+00 7.8023267332483393e-01 2 0 0 -78 0 +P 140 -213 1.8439421727607613e-01 -1.4205338969033782e-02 4.9823217426385797e+00 5.0459413515342293e+00 7.7703999699749782e-01 2 0 0 -79 0 +P 141 223 2.2982888723697886e-02 -2.4721922626951739e-01 7.1905766008958572e-01 1.0910344129213754e+00 7.8209117923282823e-01 2 0 0 -80 0 +P 116 113 1.7372162770218658e+00 5.9807209762691627e-01 1.9986477309083451e+01 2.0086000654430649e+01 7.8264706999466116e-01 2 0 0 -60 0 +P 117 111 3.0531402020407761e-01 1.8264305008182584e+00 4.1855045772255252e+01 4.1896206764135989e+01 1.3497999999999999e-01 2 0 0 -61 0 +P 118 -211 -3.5077119331308954e-01 -4.5694813801297091e-01 4.3816705499162680e+01 4.3820714309743344e+01 1.3957000000000000e-01 1 0 0 0 0 +P 119 211 -3.7029195227841366e-01 2.5395295815850005e-01 1.0279729792404048e+01 1.0290477764643340e+01 1.3957000000000000e-01 1 0 0 0 0 +P 120 -323 -7.3509947734007886e-01 2.6814421430056673e-01 6.0116876101422612e+01 6.0128892408855542e+01 9.1248975921951503e-01 2 0 0 -62 0 +P 121 311 -6.9510494917716592e-01 3.2581753110533535e-01 7.2855221980526849e+01 7.2860966046400250e+01 4.9767000000000000e-01 2 0 0 -63 0 +P 122 113 -5.2905073522641244e-01 3.1400871973230815e-01 7.3063252128309969e+01 7.3071887443745908e+01 9.3990790504694877e-01 2 0 0 -64 0 +P 123 211 6.6028226411728730e-01 4.7432898901159826e-01 8.6408369660818963e+01 8.6412306923746485e+01 1.3957000000000000e-01 1 0 0 0 0 +P 124 -323 3.0867648137115933e-01 4.2956262666170625e-01 1.9432116829669465e+02 1.9432395791775645e+02 8.9686532393962448e-01 2 0 0 -65 0 +P 125 323 6.2311833999943100e-01 6.5723937948714817e-01 2.0539373968623146e+01 2.0576811112060657e+01 8.4795781196740605e-01 2 0 0 -66 0 +P 126 -213 8.2345550936719503e-01 5.3491978714712018e-01 3.7603445724436263e+01 3.7621593707277178e+01 6.3321763259171782e-01 2 0 0 -67 0 +P 127 213 9.8022239868273831e-01 8.7532758950826225e-02 3.4555170316705698e+01 3.4579992236556180e+01 8.6462103200085083e-01 2 0 0 -68 0 +P 128 -211 -5.4933402605629666e-01 6.9404217019334813e-01 8.2074041622333471e+00 8.2561749783622673e+00 1.3957000000000000e-01 1 0 0 0 0 +P 142 211 -2.5858770326589875e-01 3.7058982588567041e-01 -1.3267284914603703e+00 1.4085072574477475e+00 1.3957000000000000e-01 1 0 0 0 0 +P 143 113 3.8294560107957676e-01 -4.0649528732935525e-01 -2.2779494568707106e+00 2.5112020323957029e+00 8.9732723542952919e-01 2 0 0 -81 0 +P 144 -213 -1.7928345872764893e-02 -4.4205911706645860e-02 -7.7159032233104536e+00 7.7555350485384382e+00 7.8159180484414870e-01 2 0 0 -82 0 +P 145 -2112 1.2412666094555554e-01 6.0949944184229277e-01 -5.5543953322427688e+00 5.6675388211554232e+00 9.3957000000000002e-01 1 0 0 0 0 +P 146 2212 -6.3965319906624407e-01 -1.8727663295352737e-02 -7.6895933419740139e+00 7.7730112117685382e+00 9.3827000000000005e-01 1 0 0 0 0 +P 147 223 -1.7596507607359885e-02 5.0768816135776895e-01 -3.0916304915378632e+01 3.0930486957261824e+01 7.8680168175708287e-01 2 0 0 -83 0 +P 148 -213 -6.6424238417843881e-02 1.1248577022620441e+00 -6.6508630910885344e+01 6.6523631467643838e+01 8.5196301137017705e-01 2 0 0 -84 0 +P 149 213 -4.1830686176762299e-01 -2.4546245054114987e-01 -4.5077618999398048e+01 4.5083098707959479e+01 5.0874552725374045e-01 2 0 0 -85 0 +V -15 0 0 0 0 0 4 1 0 +P 48 21 1.5946597234291504e+00 -9.2504118596319991e+00 -1.3340867622115992e+01 1.6312320745901555e+01 0 2 0 0 -15 0 +P 49 21 3.1335321392207005e-01 -3.6624933692512527e+00 -1.5996227394120206e+01 1.6413145303715751e+01 0 2 0 0 -15 0 +P 50 21 -1.5946597234291504e+00 9.2504118596319991e+00 3.4553214778277602e-01 9.3932130643086573e+00 0 2 0 0 -15 0 +P 51 21 -1.9326626594872165e+00 -3.0361539888006712e+00 -2.2403930493388815e+00 4.2394312135724528e+00 0 2 0 0 -15 0 +P 150 92 -1.6193094455651464e+00 -6.6986473580519243e+00 -3.1231955917792302e+01 4.6358110327498416e+01 3.3558088193125087e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 16 0 +P 157 -211 3.7929530102443287e-01 -1.7398661940045272e+00 -1.6262506930350391e+00 2.4156097366743579e+00 1.3957000000000000e-01 1 0 0 0 0 +P 158 211 3.5929042858649445e-02 -2.5352917615846560e-01 -5.9214749380134923e-01 6.6006543508924009e-01 1.3957000000000000e-01 1 0 0 0 0 +P 159 113 -1.8124205568734308e-01 -3.1612383038769862e+00 -1.1255356346808174e+01 1.1743159345237892e+01 1.0920021141756768e+00 2 0 0 -91 0 +P 160 -211 2.8532095261363383e-01 1.0522733295491603e-02 -1.4240332868527008e+00 1.4590645499363166e+00 1.3957000000000000e-01 1 0 0 0 0 +P 161 111 8.0154759639689030e-02 -3.4769109444583562e-01 -8.8595154092897399e-01 9.6459505281971181e-01 1.3497999999999999e-01 2 0 0 -92 0 +P 162 211 3.8450845074859470e-02 2.0662978645006660e-01 -7.8432525673484271e-02 2.6420783886723115e-01 1.3957000000000000e-01 1 0 0 0 0 +P 163 2112 -6.2517197323617857e-01 3.1384370147711613e+00 1.1380234215497604e-02 3.3351983728762726e+00 9.3957000000000002e-01 1 0 0 0 0 +P 164 -2212 4.7227611869119018e-01 9.0023711940114270e-01 -1.4423015082082278e+00 1.9985134067384713e+00 9.3827000000000005e-01 1 0 0 0 0 +P 165 213 -8.8060853310417464e-01 -2.2704271380420674e-01 -3.0207510516881181e-01 1.2785039593373555e+00 8.4634698700419575e-01 2 0 0 -93 0 +P 166 113 -5.6015858000582994e-02 1.9712923875091308e+00 2.0121776569014715e-01 2.1471534595610358e+00 8.2501390065658908e-01 2 0 0 -94 0 +P 151 -213 -9.1575437638018786e-01 1.9786173531659450e+00 1.0038490462694034e-01 2.3689498194545235e+00 9.2103930964307001e-01 2 0 0 -86 0 +P 152 221 -1.1496652822320098e-01 -7.9300120639953120e-01 -1.4401545991065330e+00 1.7366102003012958e+00 5.4744999999999999e-01 2 0 0 -87 0 +P 153 213 -7.2057087624760130e-01 -1.4035436254698561e+00 -1.4434746483930367e+00 2.3576881056684051e+00 9.9293355606685296e-01 2 0 0 -88 0 +P 154 311 -4.2407341657881786e-01 -1.1323088737363824e+00 -4.2536503779649254e-01 1.3749809062203735e+00 4.9767000000000000e-01 2 0 0 -89 0 +P 155 -323 6.8739672657553341e-01 -3.4637271310558235e+00 -5.6861873569991586e+00 6.7553227489313796e+00 9.1199719583656946e-01 2 0 0 -90 0 +P 156 211 3.2027042541495282e-01 -2.3824354336932485e+00 -4.9432086795529084e+00 5.4984873897845601e+00 1.3957000000000000e-01 1 0 0 0 0 +V -17 0 0 0 0 0 2 1 0 +P 52 21 -3.0362721334232550e+00 7.6960555799361619e-01 3.0949052196359327e+02 3.0950637219042926e+02 0 2 0 0 -17 0 +P 53 21 3.0362721334232550e+00 -7.6960555799361619e-01 4.2639680730324301e+00 5.2908094759627442e+00 0 2 0 0 -17 0 +P 167 92 0 0 3.1375449003662573e+02 3.1479718166639202e+02 2.5600499349824197e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 14 0 +P 168 213 3.2999323989997326e-01 5.6942160313396906e-01 1.1610979057575713e+01 1.1657922862124975e+01 8.1190780467921042e-01 2 0 0 -95 0 +P 169 311 -3.9549707014260671e-01 -2.8851686492632728e-01 8.4163752596000130e+00 8.4452772514077648e+00 4.9767000000000000e-01 2 0 0 -96 0 +P 170 -323 5.2128742450140031e-01 9.7134097701761499e-02 8.3960820516559060e+00 8.4589041202825257e+00 8.8186704559962104e-01 2 0 0 -97 0 +P 171 113 3.8591072460653691e-01 -2.7644757220945215e-01 4.7314982713787517e+00 4.8147268927460747e+00 7.5443277508689677e-01 2 0 0 -98 0 +P 172 213 6.0325469359176376e-01 -3.0740340709509106e-01 1.4598324375000185e+00 1.7877548921809201e+00 7.7880917361405333e-01 2 0 0 -99 0 +P 173 1114 3.6710399464270077e-01 1.2951245679680667e-01 3.1121459445196282e+00 3.3467359928685627e+00 1.1677545147092263e+00 2 0 0 -100 0 +P 174 -1114 9.7380249513257433e-01 -6.3457340363777717e-02 1.2276570613075052e+01 1.2375786282599574e+01 1.2221219092993045e+00 2 0 0 -101 0 +P 175 2112 -3.2151359419442543e-01 -3.9573049090654866e-01 1.2203622044795935e+01 1.2250353317754321e+01 9.3957000000000002e-01 1 0 0 0 0 +P 176 211 -2.6031509045536677e-01 -2.5957138973744100e-02 2.1813184663724797e+01 2.1815199808345582e+01 1.3957000000000000e-01 1 0 0 0 0 +P 177 -3222 -1.3419797779501037e+00 1.0195367754860356e+00 7.0658805821816856e+01 7.0688908649965128e+01 1.1893700000000000e+00 2 0 0 -102 0 +P 178 -323 6.5303950764476326e-01 4.5843110713109797e-01 4.3702629036619392e+01 4.3720185385460475e+01 9.4773717249732448e-01 2 0 0 -103 0 +P 179 113 -1.2053222613750429e+00 -6.5261496518697781e-01 8.2787798768823720e+01 8.2800346532049119e+01 4.4615332971601729e-01 2 0 0 -104 0 +P 180 213 2.0228441721426238e-01 1.5934395893829920e-01 2.2925780883396051e+01 2.2952070100818403e+01 1.0676063491270991e+00 2 0 0 -105 0 +P 181 -211 -5.1204870311642947e-01 -4.2325221952605135e-01 9.6591851821438173e+00 9.6830095777884910e+00 1.3957000000000000e-01 1 0 0 0 0 +V -19 0 0 0 0 0 0 2 0 +P 182 22 1.8587946456084625e-01 -2.1984404913873207e-01 -1.2052101682909502e+00 1.2391182877510287e+00 0 1 0 0 0 0 +P 183 111 2.5327040357331115e-01 5.8815220376537669e-01 -1.6074980532960521e+00 1.7356089720529952e+00 1.3497999999999999e-01 2 0 0 -106 0 +V -20 0 0 0 0 0 0 2 0 +P 184 2212 -1.8155431084997567e-01 5.7356379733320284e-01 -9.9133230842357767e-01 1.4916526861249948e+00 9.3827000000000005e-01 1 0 0 0 0 +P 185 111 1.9093758885898043e-01 3.4307324296551578e-01 -5.4152418423568671e-01 6.8236680413856798e-01 1.3497999999999999e-01 2 0 0 -107 0 +V -21 0 0 0 0 0 0 2 0 +P 186 -2212 3.1520905862425908e-01 2.1080784939947769e-01 -1.0716835086387424e+00 1.4739921423113049e+00 9.3827000000000005e-01 1 0 0 0 0 +P 187 111 -1.2735758821479068e-01 -8.9349224266055422e-03 -1.3398243917761030e-01 2.2906479983323427e-01 1.3497999999999999e-01 2 0 0 -108 0 +V -22 0 0 0 0 0 0 2 0 +P 188 211 7.9805875536976001e-01 -3.2097636430674814e-01 1.5504153910727283e+00 1.7785362726807428e+00 1.3957000000000000e-01 1 0 0 0 0 +P 189 111 -2.4862271094782207e-01 -1.2852231239011683e-01 2.9308707044207477e-01 4.2714267925538041e-01 1.3497999999999999e-01 2 0 0 -109 0 +V -23 0 0 0 0 0 0 2 0 +P 190 321 -1.5072910497911379e-01 -4.2818751301287367e-01 1.3882161311751551e+00 1.5417032127627126e+00 4.9359999999999998e-01 1 0 0 0 0 +P 191 -211 7.2622240627725473e-02 1.3135692979402222e-01 1.4767520864444364e-01 2.5261905111626654e-01 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 192 -321 -7.3081843994436652e-02 -3.2872056572966601e-02 1.0091837996890252e+00 1.1262834588058825e+00 4.9359999999999998e-01 1 0 0 0 0 +P 193 211 -2.0819494951518142e-01 -3.7697843105844819e-01 3.5213703177172428e-01 5.7353129690708116e-01 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 1.4713437953703780e-06 8.8784517316833685e-07 4.6642120258844947e-06 4.9852042362384955e-06 0 2 0 +P 194 22 2.7205036877184846e-01 2.1002866456737385e-01 7.6826252672454298e-01 8.4163576032511367e-01 0 1 0 0 0 0 +P 195 22 2.5082939369000368e-01 1.0548989384833672e-01 8.8928486895552616e-01 9.2998445180351008e-01 0 1 0 0 0 0 +V -26 0 0 0 0 0 0 3 0 +P 196 211 4.8097144381577590e-02 -3.3729039691863125e-02 -1.4857572844262404e-01 2.1214503387648262e-01 1.3957000000000000e-01 1 0 0 0 0 +P 197 -211 3.7753509906070848e-01 -2.8072898252255268e-02 -4.9028060511515958e-01 6.3496117620776427e-01 1.3957000000000000e-01 1 0 0 0 0 +P 198 111 -5.0087081665597831e-03 8.2679167170274983e-03 1.1982873351947212e-01 1.8075389727808949e-01 1.3497999999999999e-01 2 0 0 -110 0 +V -27 0 0 0 0 0 0 2 0 +P 199 311 -8.4559749187529187e-01 9.9710033077653488e-03 -5.2448860633214933e-01 1.1126087660291861e+00 4.9767000000000000e-01 2 0 0 -111 0 +P 200 111 -1.7089083775893985e-01 2.9320013029682768e-01 5.3461345449179000e-02 3.6911747546447249e-01 1.3497999999999999e-01 2 0 0 -112 0 +V -28 0 0 0 0 0 0 1 0 +P 201 310 -5.9377456944595330e-01 4.5203893895285015e-02 -9.6189558945220821e-01 1.2359329210161991e+00 4.9767000000000000e-01 2 0 0 -113 0 +V -29 0 0 0 0 0 0 2 0 +P 202 -211 5.7565215324936768e-02 -1.1132129032450142e-01 -3.4466881494030727e-01 3.9240611690858496e-01 1.3957000000000000e-01 1 0 0 0 0 +P 203 111 -5.7967958732875779e-01 1.9060824615963567e-01 -5.1323302876053767e-01 8.0869504121170799e-01 1.3497999999999999e-01 2 0 0 -114 0 +V -30 0 0 0 0 0 0 3 0 +P 206 111 -3.4573985065176793e-01 2.1582774372736507e-01 -9.4505589920380773e-01 1.0380115183903642e+00 1.3497999999999999e-01 2 0 0 -115 0 +P 204 211 -2.9500658243202599e-01 -2.2831491421237085e-01 -7.6054280475650438e-01 8.5852299124538090e-01 1.3957000000000000e-01 1 0 0 0 0 +P 205 -211 -3.1517645369553471e-01 -1.6670151526215007e-01 -1.3583103023518337e+00 1.4112449307366599e+00 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 207 22 -2.7296924447765503e-01 -1.1720991606231085e-01 -6.8344889887257443e-01 7.4521994754848742e-01 0 1 0 0 0 0 +P 208 22 -5.2123567655416625e-01 -1.0273993326069992e+00 -5.1403413175097858e+00 5.2678596108526312e+00 0 1 0 0 0 0 +V -32 0 0 0 0 0 0 2 0 +P 209 311 -1.7100390911822591e-01 -2.6586260149101487e-01 -5.1674196262737446e+00 5.2009447490532308e+00 4.9767000000000000e-01 2 0 0 -116 0 +P 210 211 -2.0554842986190747e-01 2.1336500028280095e-01 -4.1667454612314101e+00 4.1795959498445461e+00 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 2 0 +P 211 -321 5.0202951655587369e-01 -1.0818066855080209e-01 -1.7205959210260328e+01 1.7220697140292657e+01 4.9359999999999998e-01 1 0 0 0 0 +P 212 111 -3.1214615232548548e-02 9.2315020056256067e-02 -1.5055624232852555e+01 1.5056544658599103e+01 1.3497999999999999e-01 2 0 0 -117 0 +V -34 0 0 0 0 0 0 2 0 +P 213 211 9.1259248721195466e-02 -4.6924362818728679e-02 -3.3138429820366952e+02 3.3138434348331810e+02 1.3957000000000000e-01 1 0 0 0 0 +P 214 -211 -4.3948488936305879e-01 -8.5865907398658278e-02 -2.5473884247645952e+02 2.5473927429030923e+02 1.3957000000000000e-01 1 0 0 0 0 +V -35 0 0 0 0 0 0 3 0 +P 215 -211 -1.2003912619075557e-02 1.5417261170584987e-01 -3.7414862979715281e+01 3.7415442866066513e+01 1.3957000000000000e-01 1 0 0 0 0 +P 216 211 7.5480641148820526e-02 -1.0982597901254602e-01 -1.5712350184328226e+01 1.5713535158350382e+01 1.3957000000000000e-01 1 0 0 0 0 +P 217 111 2.4767673741972890e-01 5.0668514556659799e-02 -1.0757404831534404e+02 1.0757443005480903e+02 1.3497999999999999e-01 2 0 0 -118 0 +V -36 0 -7.0045040781826522e-05 -5.9678770686458553e-05 -2.0281626139517797e-01 2.0281628460902201e-01 0 2 0 +P 218 22 -2.0306043592456660e-01 -1.0355072122695697e-01 -5.7088734079546225e+02 5.7088738630031651e+02 0 1 0 0 0 0 +P 219 22 -1.0394410803041193e-01 -1.5801888561298336e-01 -3.1804802338288772e+02 3.1804807962336088e+02 0 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 220 2212 1.9744570739179240e-01 -2.9511038265664724e-01 -2.9201396219359308e+03 2.9201397942608260e+03 9.3827000000000005e-01 1 0 0 0 0 +P 221 111 2.7792522862110680e-01 -4.6183830318953831e-02 -1.5611958512606125e+03 1.5611958825170939e+03 1.3497999999999999e-01 2 0 0 -119 0 +V -38 0 0 0 0 0 0 1 0 +P 222 130 2.5888648514865614e-01 6.8942858996681888e+00 1.8438621810969973e+01 1.9693365634025938e+01 4.9767000000000000e-01 1 0 0 0 0 +V -39 0 0 0 0 0 0 2 0 +P 223 -2212 6.4080126117661795e-01 6.6596959653282841e+00 1.6651831163988486e+01 1.7970142133934655e+01 9.3827000000000005e-01 1 0 0 0 0 +P 224 111 -4.2370572833966343e-02 3.7630958362777911e-01 7.0705246002361244e-01 8.1335536501447692e-01 1.3497999999999999e-01 2 0 0 -120 0 +V -40 0 0 0 0 0 0 2 0 +P 225 211 7.1578317760274915e-02 -4.5300168548451349e-02 1.5812339005719036e+00 1.5896402089975410e+00 1.3957000000000000e-01 1 0 0 0 0 +P 226 111 -2.4791741699645198e-01 5.9538292801339954e-01 1.5554365516311630e+00 1.6892443112736077e+00 1.3497999999999999e-01 2 0 0 -121 0 +V -41 0 0 0 0 0 0 2 0 +P 227 -211 8.3215158992368088e-01 2.4641162172429856e+00 1.0127048332028291e+01 1.0456621476596988e+01 1.3957000000000000e-01 1 0 0 0 0 +P 228 111 1.0381122433908205e-01 6.6594352716038974e-01 2.1528987967838971e+00 2.2599668982662449e+00 1.3497999999999999e-01 2 0 0 -122 0 +V -42 0 0 0 0 0 0 3 0 +P 229 211 1.4965349692285381e-02 -2.3653199756728413e-01 1.4382398007146437e+00 1.4643035398524038e+00 1.3957000000000000e-01 1 0 0 0 0 +P 230 -211 2.2523982939715814e-01 -2.3702484908296056e-02 5.6148232442395496e-01 6.2131873791011349e-01 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -2.1496075116390248e-02 -2.6359322531633833e-01 3.9880052266159505e-01 4.9719707053968126e-01 1.3497999999999999e-01 2 0 0 -123 0 +V -43 0 0 0 0 0 0 2 0 +P 232 211 2.3913424705178085e-01 -1.1677536002552498e-01 3.6380966329753557e+00 3.6504860729208013e+00 1.3957000000000000e-01 1 0 0 0 0 +P 233 111 3.7290789623554016e-01 -5.1190371861218900e-02 9.2180964685596467e-01 1.0048051446339359e+00 1.3497999999999999e-01 2 0 0 -124 0 +V -44 0 0 0 0 0 0 3 0 +P 234 111 2.5665924518427391e-01 -7.3737349265815239e-02 3.8717337870206897e-01 4.8931992641919431e-01 1.3497999999999999e-01 2 0 0 -125 0 +P 235 111 1.6865575199696520e-01 1.3369711769649753e-01 2.2670061612841966e-01 3.4048854858132604e-01 1.3497999999999999e-01 2 0 0 -126 0 +P 236 111 1.1737773793019404e-01 1.8028103922700229e-02 4.6420344251526557e-01 4.9780215179896570e-01 1.3497999999999999e-01 2 0 0 -127 0 +V -45 0 0 0 0 0 0 2 0 +P 237 211 4.0644969833856254e-01 -1.1066065128461260e+00 8.3074841847963157e+00 8.3918742005045495e+00 1.3957000000000000e-01 1 0 0 0 0 +P 238 111 1.4412581789419426e-01 5.3202859311188878e-02 1.1740086701081160e+00 1.1916873556061522e+00 1.3497999999999999e-01 2 0 0 -128 0 +V -46 0 0 0 0 0 0 2 0 +P 239 311 2.5178180326027377e-01 -3.2242494783834660e-02 4.0106627287096375e+00 4.0493857073985327e+00 4.9767000000000000e-01 2 0 0 -129 0 +P 240 111 8.1017910362551057e-02 -1.5036507976175487e-01 3.4051200055065252e+00 3.4120720114487666e+00 1.3497999999999999e-01 2 0 0 -130 0 +V -47 0 0 0 0 0 0 2 0 +P 241 -2112 -2.6558420839918023e-01 -4.1394355142160610e-02 1.3870983886355736e+01 1.3905367101404735e+01 9.3957000000000002e-01 1 0 0 0 0 +P 242 211 -2.4056819339966279e-01 8.0717251922855018e-03 9.3665887871712474e+00 9.3707205433352510e+00 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 -1.7671461207839840e+01 -2.8931783299526622e+01 7.9433041118326389e+02 7.9562540263520054e+02 0 2 0 +P 243 2212 -6.4323292945979427e-01 -9.6342862692646503e-01 2.7198319694383319e+01 2.7239142572986808e+01 9.3827000000000005e-01 1 0 0 0 0 +P 244 -211 -1.0461544316330479e-02 -1.0680244434445450e-01 2.1851814227995972e+00 2.1922622656689379e+00 1.3957000000000000e-01 1 0 0 0 0 +V -49 0 0 0 0 0 0 3 0 +P 245 211 -1.0658262219708090e+00 -8.2252278997220341e-01 2.1555528495606971e+01 2.1597981798892423e+01 1.3957000000000000e-01 1 0 0 0 0 +P 246 -211 -4.9088454070215592e-01 -3.0027745336315973e-02 7.2664188190925962e+00 7.2843799693009830e+00 1.3957000000000000e-01 1 0 0 0 0 +P 247 111 -7.8433224325262052e-01 -2.9777701257474420e-01 1.5463318749655521e+01 1.5486648913527794e+01 1.3497999999999999e-01 2 0 0 -131 0 +V -50 0 0 0 0 0 0 3 0 +P 248 -211 -1.2188640219493940e+00 -9.3422180369870000e-01 2.0922904541008972e+01 2.0979652382715557e+01 1.3957000000000000e-01 1 0 0 0 0 +P 249 211 -1.0146380362055605e+00 -1.1421994186045756e+00 1.6785995231936074e+01 1.6855955195949480e+01 1.3957000000000000e-01 1 0 0 0 0 +P 250 111 -9.6179822519988656e-01 -8.2506899661188349e-01 1.9413229757131628e+01 1.9455012307339945e+01 1.3497999999999999e-01 2 0 0 -132 0 +V -51 0 -6.7612250962819850e-05 -1.8662225712865060e-05 1.0005460236156168e-03 1.0030482758662050e-03 0 2 0 +P 251 22 -5.4111388577644548e-01 -1.7745401666901453e-01 8.9546946112744887e+00 8.9727838348307714e+00 0 1 0 0 0 0 +P 252 22 -4.0117919049830292e-01 -8.2636215895192267e-02 4.9896361441928754e+00 5.0064201120663352e+00 0 1 0 0 0 0 +V -52 0 -1.0031594106859512e+00 -6.0662790835180747e-01 1.4756351155848559e+01 1.4803588565939812e+01 0 4 0 +P 253 -13 -2.6618575532310844e+00 -1.6167266063331194e+00 3.6143438395162441e+01 3.6277521878069642e+01 1.0566000000000000e-01 1 0 0 0 0 +P 254 14 -1.7622608552463395e+00 -6.1124567981443900e-01 2.3767021479078203e+01 2.3840102654770387e+01 0 1 0 0 0 0 +P 255 -323 -7.3856701894561985e+00 -4.9147012895514184e+00 1.1208276364753114e+02 1.1243641907035618e+02 8.3666814418099522e-01 2 0 0 -133 0 +P 256 211 -8.3032704528557788e-01 -5.0102375923189180e-01 1.3941317982788394e+01 1.3975703727954690e+01 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 0 0 0 0 0 3 0 +P 257 -211 1.3857831485530528e-01 2.6488289772950824e-01 1.2033220667879797e+02 1.2033265895372175e+02 1.3957000000000000e-01 1 0 0 0 0 +P 258 211 -1.7979563690597777e-01 3.7159338534362971e-02 6.0674676874761047e+01 6.0675115170299051e+01 1.3957000000000000e-01 1 0 0 0 0 +P 259 111 -2.1788911425523635e-01 -3.3819150870949083e-02 1.5879812474349990e+02 1.5879833519610222e+02 1.3497999999999999e-01 2 0 0 -134 0 +V -54 0 0 0 0 0 0 2 0 +P 260 -211 -3.1834604045503856e-01 3.0376945733427041e-01 3.6415849333717392e+02 3.6415878592925657e+02 1.3957000000000000e-01 1 0 0 0 0 +P 261 111 2.3397054695967343e-01 -2.0782937300071624e-01 6.3017049896018172e+01 6.3017971503871578e+01 1.3497999999999999e-01 2 0 0 -135 0 +V -55 0 0 0 0 0 0 2 0 +P 262 211 -3.2804553869109360e-01 -2.0500235184311433e-01 6.3497741005976408e+01 6.3499072689974568e+01 1.3957000000000000e-01 1 0 0 0 0 +P 263 -211 -1.7657170564239925e-02 5.4286517071622287e-01 7.7233692867527111e+01 7.7235728831348879e+01 1.3957000000000000e-01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 265 111 1.3819210244527837e-02 -1.2966282475160049e-01 1.1780976594232847e+01 1.1782471410232937e+01 1.3497999999999999e-01 2 0 0 -136 0 +P 264 211 2.3313981532533326e-01 2.5928411580336491e-01 1.0957397434947973e+02 1.0957461803242364e+02 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 2 0 +P 266 -211 4.5549648708790008e-01 2.2808652686664740e-01 5.9317208860832444e+00 5.9551904225460079e+00 1.3957000000000000e-01 1 0 0 0 0 +P 267 111 2.6278645540909368e-01 -2.0399835461058230e-01 1.2281845329601460e+01 1.2287091452027347e+01 1.3497999999999999e-01 2 0 0 -137 0 +V -58 0 2.1464610372068443e-05 -7.4001157013187091e-05 6.3535032736792402e-04 6.4489764692951892e-04 0 2 0 +P 268 22 -4.6675719704953711e-02 -1.7936313484327244e-02 2.2709027355224920e-01 2.3253027005837071e-01 0 1 0 0 0 0 +P 269 22 8.3218703776255343e-02 -1.0804888052179129e-01 8.5457841226349773e-01 8.6539249820356823e-01 0 1 0 0 0 0 +V -59 0 0 0 0 0 0 2 0 +P 270 -311 7.4489573882419291e-01 8.6535957172601397e-01 1.7511148478823699e+01 1.7555389865406173e+01 4.9767000000000000e-01 2 0 0 -138 0 +P 271 -211 1.1684349484407686e-01 3.3304617277479132e-01 1.3094954766581912e+01 1.3100453895923364e+01 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 272 -211 1.4834296209480378e+00 5.9292167637229842e-01 1.8632553603080105e+01 1.8701434520142339e+01 1.3957000000000000e-01 1 0 0 0 0 +P 273 211 2.5378665607382822e-01 5.1504212546178629e-03 1.3539237060033491e+00 1.3845661342883115e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 2.9762149049519281e-06 1.7804127290848588e-05 4.0800488294499739e-04 4.0840612215915523e-04 0 2 0 +P 274 22 1.6410544409971853e-01 1.1774821168325287e+00 2.5564031639197310e+01 2.5591660914878588e+01 0 1 0 0 0 0 +P 275 22 1.4120857610435908e-01 6.4894838398572974e-01 1.6291014133057946e+01 1.6304545849257401e+01 0 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 276 -311 -4.7598331792509141e-01 -8.4343084301410715e-02 2.7348337649344273e+01 2.7357136573228090e+01 4.9767000000000000e-01 2 0 0 -139 0 +P 277 -211 -2.5911615941498739e-01 3.5248729860197742e-01 3.2768538452078332e+01 3.2771755835627452e+01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 1 0 +P 278 310 -6.9510494917716592e-01 3.2581753110533535e-01 7.2855221980526849e+01 7.2860966046400236e+01 4.9767000000000000e-01 2 0 0 -140 0 +V -64 0 0 0 0 0 0 2 0 +P 279 -211 -3.5884084719608189e-01 -1.6833740109714063e-01 5.2889439384711885e+01 5.2891108727726980e+01 1.3957000000000000e-01 1 0 0 0 0 +P 280 211 -1.7020988803033060e-01 4.8234612082944878e-01 2.0173812743598088e+01 2.0180778716018942e+01 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 281 -321 3.4124973471434705e-01 1.1009176865102556e-01 1.5639404073440900e+02 1.5639523071300783e+02 4.9359999999999998e-01 1 0 0 0 0 +P 282 111 -3.2573253343187690e-02 3.1947085801068070e-01 3.7927127562285655e+01 3.7928727204748640e+01 1.3497999999999999e-01 2 0 0 -141 0 +V -66 0 0 0 0 0 0 2 0 +P 283 321 4.9926846924895973e-01 5.0291971801674606e-01 1.8932076706358586e+01 1.8951764208711591e+01 4.9359999999999998e-01 1 0 0 0 0 +P 284 111 1.2384987075047131e-01 1.5431966147040221e-01 1.6072972622645629e+00 1.6250469033490718e+00 1.3497999999999999e-01 2 0 0 -142 0 +V -67 0 0 0 0 0 0 2 0 +P 285 -211 1.7859206659747753e-01 1.1537889269107618e-01 3.5102971391524509e+00 3.5194989991719074e+00 1.3957000000000000e-01 1 0 0 0 0 +P 286 111 6.4486344276971752e-01 4.1954089445604403e-01 3.4093148585283814e+01 3.4102094708105270e+01 1.3497999999999999e-01 2 0 0 -143 0 +V -68 0 0 0 0 0 0 2 0 +P 287 211 1.5204545582315820e-01 -2.7098259271716346e-01 5.5290903643553468e+00 5.5395730366427456e+00 1.3957000000000000e-01 1 0 0 0 0 +P 288 111 8.2817694285958010e-01 3.5851535166798970e-01 2.9026079952350351e+01 2.9040419199913433e+01 1.3497999999999999e-01 2 0 0 -144 0 +V -69 0 0 0 0 0 0 2 0 +P 289 -211 2.2195516193061104e-02 5.9812657288889171e-01 7.4880607642605312e+00 7.5132404348784751e+00 1.3957000000000000e-01 1 0 0 0 0 +P 290 211 -2.0671728245952670e-01 5.6845359322346689e-03 5.6135734926813177e+00 5.6191148316661534e+00 1.3957000000000000e-01 1 0 0 0 0 +V -70 0 2.8328565239901664e+01 9.6200077887030560e+00 4.1187571780827233e+02 4.1366548525931290e+02 0 2 0 +P 291 -2112 8.7074311781260816e-01 2.9303660553681032e-01 1.5105424132384448e+01 1.5162476513865569e+01 9.3957000000000002e-01 1 0 0 0 0 +P 292 211 5.3478597298736574e-01 1.8426256885623099e-01 5.3298961272609038e+00 5.3616435207384239e+00 1.3957000000000000e-01 1 0 0 0 0 +V -71 0 2.3556324247227142e+01 1.7848882981569922e+01 5.0825086777096664e+02 5.1144512508733749e+02 0 2 0 +P 293 2212 4.2293484863058523e-01 2.9818090643247958e-01 8.7896810414164062e+00 8.8547517831886218e+00 9.3827000000000005e-01 1 0 0 0 0 +P 294 -211 1.1536274026245073e-01 1.0969302893092955e-01 2.8246189572817935e+00 2.8325418198453116e+00 1.3957000000000000e-01 1 0 0 0 0 +V -72 0 0 0 0 0 0 2 0 +P 295 211 1.8426627916469118e-01 -7.5048765015658725e-01 1.0044347862878006e+01 1.0074998240698443e+01 1.3957000000000000e-01 1 0 0 0 0 +P 296 -211 -1.8119511039128258e-01 -1.3216308974087224e-01 3.6693369790839530e+00 3.6788330216649565e+00 1.3957000000000000e-01 1 0 0 0 0 +V -73 0 0 0 0 0 0 3 0 +P 297 -211 -9.2330691001946449e-02 1.3153518843286626e-02 1.6918771409868543e+00 1.7001841125750792e+00 1.3957000000000000e-01 1 0 0 0 0 +P 298 211 9.0350579840365638e-02 1.9611894399870142e-01 2.5597390976925207e+00 2.5726192684943445e+00 1.3957000000000000e-01 1 0 0 0 0 +P 299 111 -7.3500095204024493e-02 -2.8029675650135422e-02 1.4396825602645615e+00 1.4481344555813784e+00 1.3497999999999999e-01 2 0 0 -145 0 +V -74 0 0 0 0 0 0 2 0 +P 300 -321 -1.6702756185750384e-01 1.3389650322075297e-01 3.6488781901075438e+00 3.6883301758705538e+00 4.9359999999999998e-01 1 0 0 0 0 +P 301 111 2.0114716920673079e-01 1.5846874708903921e-01 5.7634264972716922e+00 5.7706912165993858e+00 1.3497999999999999e-01 2 0 0 -146 0 +V -75 0 0 0 0 0 0 1 0 +P 302 310 3.1370849344690394e-01 -1.6502140696154801e+00 1.7013060483686480e+01 1.7103026689591879e+01 4.9767000000000000e-01 2 0 0 -147 0 +V -76 0 -4.4060919108810952e-05 5.2342729044881510e-06 1.9987704934143461e-04 2.0525736542072959e-04 0 2 0 +P 303 22 -1.7794066347471776e-01 -1.3349370806625340e-02 5.5028936743970702e-01 5.7849760011252294e-01 0 1 0 0 0 0 +P 304 22 -2.3150197645234680e-01 6.1989629781244990e-02 1.3070978228067121e+00 1.3288869770179124e+00 0 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 305 22 -4.8147715868567109e-01 -1.0464340696446410e+00 7.7587519913374754e+00 7.8437922575456005e+00 0 1 0 0 0 0 +P 306 113 -1.6665913895179937e-01 -8.1594819202784230e-01 7.9877425118423817e+00 8.0545508376702948e+00 6.1498946369148655e-01 2 0 0 -148 0 +V -78 0 0 0 0 0 0 3 0 +P 307 211 -1.8184679283982430e-01 -2.8499906586894308e-01 3.0136790064542227e+00 3.0357920980289825e+00 1.3957000000000000e-01 1 0 0 0 0 +P 308 -211 3.5179468682444448e-01 -2.3385890449493285e-01 3.1756943767047940e+00 3.2067061056517057e+00 1.3957000000000000e-01 1 0 0 0 0 +P 309 111 9.0534432904070691e-02 -2.3749201050634819e-01 3.2731976007131105e+00 3.2858242607159731e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -79 0 0 0 0 0 0 2 0 +P 310 -211 2.7856484699452511e-01 2.8577154471696598e-01 3.4544645566440200e+00 3.4802397773372986e+00 1.3957000000000000e-01 1 0 0 0 0 +P 311 111 -9.4170629718448959e-02 -2.9997688368599973e-01 1.5278571859945593e+00 1.5657015741969307e+00 1.3497999999999999e-01 2 0 0 -150 0 +V -80 0 0 0 0 0 0 3 0 +P 313 -211 7.9426483332274311e-02 -1.5467016237984951e-01 9.7427050026002354e-02 2.4331716002351791e-01 1.3957000000000000e-01 1 0 0 0 0 +P 314 111 1.8971003374894185e-01 4.4985653465487427e-02 1.4939175240432037e-01 2.8026969513162736e-01 1.3497999999999999e-01 2 0 0 -151 0 +P 312 211 -2.4615362835751831e-01 -1.3753471735515529e-01 4.7223885765926288e-01 5.6744755776623024e-01 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 315 211 5.7720189775931130e-01 -3.9507585597671829e-01 -1.1132509901501841e+00 1.3221401267350796e+00 1.3957000000000000e-01 1 0 0 0 0 +P 316 -211 -1.9425629667973457e-01 -1.1419431352636915e-02 -1.1646984667205262e+00 1.1890619056606293e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 0 0 0 0 0 2 0 +P 317 -211 -2.9021697517593742e-01 1.1988738882319924e-01 -2.0078266346984845e+00 2.0370190128184267e+00 1.3957000000000000e-01 1 0 0 0 0 +P 318 111 2.7228862930317249e-01 -1.6409330052984511e-01 -5.7080765886119700e+00 5.7185160357199880e+00 1.3497999999999999e-01 2 0 0 -152 0 +V -83 0 0 0 0 0 0 3 0 +P 319 211 2.6159158905174562e-01 1.1976908035329931e-01 -1.4753856976310765e+01 1.4757321920131888e+01 1.3957000000000000e-01 1 0 0 0 0 +P 320 -211 -2.6126819940006357e-01 2.3461403354789964e-01 -1.1509852823941991e+01 1.1516053865385521e+01 1.3957000000000000e-01 1 0 0 0 0 +P 321 111 -1.7919897259041917e-02 1.5330504745657006e-01 -4.6525951151258740e+00 4.6571111717444085e+00 1.3497999999999999e-01 2 0 0 -153 0 +V -84 0 0 0 0 0 0 2 0 +P 322 -211 1.1189448533215496e-01 1.1139057069963787e+00 -4.6227315661100803e+01 4.6241080213549104e+01 1.3957000000000000e-01 1 0 0 0 0 +P 323 111 -1.7831872374999885e-01 1.0951995265665338e-02 -2.0281315249784544e+01 2.0282551254094816e+01 1.3497999999999999e-01 2 0 0 -154 0 +V -85 0 0 0 0 0 0 2 0 +P 324 211 -1.8870258535806511e-01 9.9084535100534471e-02 -1.2736262200082729e+01 1.2738810031748375e+01 1.3957000000000000e-01 1 0 0 0 0 +P 325 111 -2.2960427640955786e-01 -3.4454698564168434e-01 -3.2341356799315314e+01 3.2344288676211129e+01 1.3497999999999999e-01 2 0 0 -155 0 +V -86 0 0 0 0 0 0 2 0 +P 326 -211 -1.0197116374969704e+00 1.5402199673687851e+00 -1.0565560002434418e-01 1.8554601214374720e+00 1.3957000000000000e-01 1 0 0 0 0 +P 327 111 1.0395726111678255e-01 4.3839738579715976e-01 2.0604050465128451e-01 5.1348969801705135e-01 1.3497999999999999e-01 2 0 0 -156 0 +V -87 0 0 0 0 0 0 3 0 +P 328 22 6.5303627407064125e-03 -1.3036945355560819e-01 -9.6430844554637241e-02 1.6228908724690547e-01 0 1 0 0 0 0 +P 329 -211 -1.2443340358908676e-01 -5.8991175846200250e-01 -1.2399150957152332e+00 1.3857664969911101e+00 1.3957000000000000e-01 1 0 0 0 0 +P 330 211 2.9365126251793771e-03 -7.2719994381920436e-02 -1.0380865883666240e-01 1.8855461606328006e-01 1.3957000000000000e-01 1 0 0 0 0 +V -88 0 0 0 0 0 0 2 0 +P 331 211 -2.3181192257978658e-01 -3.5965984364971582e-01 6.4686117305103930e-02 4.5470435368081163e-01 1.3957000000000000e-01 1 0 0 0 0 +P 332 111 -4.8875895366781463e-01 -1.0438837818201401e+00 -1.5081607656981406e+00 1.9029837519875930e+00 1.3497999999999999e-01 2 0 0 -157 0 +V -89 0 0 0 0 0 0 1 0 +P 333 130 -4.2407341657881786e-01 -1.1323088737363824e+00 -4.2536503779649254e-01 1.3749809062203728e+00 4.9767000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 334 -311 5.4533423118825564e-01 -2.1932503402815775e+00 -4.1527351550146987e+00 4.7540110617715117e+00 4.9767000000000000e-01 2 0 0 -158 0 +P 335 -211 1.4206249538727772e-01 -1.2704767907742456e+00 -1.5334522019844594e+00 2.0013116871598671e+00 1.3957000000000000e-01 1 0 0 0 0 +V -91 0 0 0 0 0 0 2 0 +P 336 211 -1.2225698895883293e-01 -3.1496728462498411e+00 -1.0197663615851679e+01 1.0674605792099211e+01 1.3957000000000000e-01 1 0 0 0 0 +P 337 -211 -5.8985066728510137e-02 -1.1565457627145266e-02 -1.0576927309564947e+00 1.0685535531386812e+00 1.3957000000000000e-01 1 0 0 0 0 +V -92 0 3.8527617637917094e-05 -1.6712307045937573e-04 -4.2584623006883233e-04 4.6364744324007163e-04 0 2 0 +P 338 22 1.4995858064857176e-02 -1.9939694528972410e-01 -3.3316020649286715e-01 3.8856111583680686e-01 0 1 0 0 0 0 +P 339 22 6.5158901574831854e-02 -1.4829414915611150e-01 -5.5279133443610673e-01 5.7603393698290495e-01 0 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 340 211 8.5893108070628790e-02 -1.6165390012367403e-01 5.6069209211904635e-02 2.3692435620019278e-01 1.3957000000000000e-01 1 0 0 0 0 +P 341 111 -9.6650164117480342e-01 -6.5388813680532676e-02 -3.5814431438071642e-01 1.0415796031371627e+00 1.3497999999999999e-01 2 0 0 -159 0 +V -94 0 0 0 0 0 0 2 0 +P 342 211 -3.3890199253143205e-01 8.2436823164178752e-01 -1.3217187365235175e-01 9.1180410778124699e-01 1.3957000000000000e-01 1 0 0 0 0 +P 343 -211 2.8288613453084904e-01 1.1469241558673431e+00 3.3338963934249888e-01 1.2353493517797889e+00 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 344 211 1.0363531280713142e-01 -1.6220264472005022e-01 4.0741120327917821e+00 4.0810438145961632e+00 1.3957000000000000e-01 1 0 0 0 0 +P 345 111 2.2635792709284186e-01 7.3162424785401936e-01 7.5368670247839322e+00 7.5768790475288128e+00 1.3497999999999999e-01 2 0 0 -160 0 +V -96 0 0 0 0 0 0 1 0 +P 346 130 -3.9549707014260671e-01 -2.8851686492632728e-01 8.4163752596000130e+00 8.4452772514077648e+00 4.9767000000000000e-01 1 0 0 0 0 +V -97 0 0 0 0 0 0 2 0 +P 347 -311 5.0093079509551341e-01 -1.6736784839411437e-01 6.2499799234045614e+00 6.2919685417213573e+00 4.9767000000000000e-01 2 0 0 -161 0 +P 348 -211 2.0356629405886905e-02 2.6450194609587585e-01 2.1461021282513455e+00 2.1669355785611693e+00 1.3957000000000000e-01 1 0 0 0 0 +V -98 0 0 0 0 0 0 2 0 +P 349 -211 3.6607738155790637e-01 -4.3044115371221930e-01 4.2533118453167278e+00 4.2929516273199475e+00 1.3957000000000000e-01 1 0 0 0 0 +P 350 211 1.9833343048630526e-02 1.5399358150276715e-01 4.7818642606202344e-01 5.2177526542612684e-01 1.3957000000000000e-01 1 0 0 0 0 +V -99 0 0 0 0 0 0 2 0 +P 351 211 1.5940818450812536e-01 -1.9127479523860261e-01 1.2196341057309632e+00 1.2525909760747569e+00 1.3957000000000000e-01 1 0 0 0 0 +P 352 111 4.4384650908363849e-01 -1.1612861185648843e-01 2.4019833176905525e-01 5.3516391610616321e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -100 0 0 0 0 0 0 2 0 +P 353 2112 2.4461206701185767e-01 -3.6870254613733507e-02 2.2892535780963792e+00 2.4868993161626327e+00 9.3957000000000002e-01 1 0 0 0 0 +P 354 -211 1.2249192763084313e-01 1.6638271141054020e-01 8.2289236642324926e-01 8.5983667670593000e-01 1.3957000000000000e-01 1 0 0 0 0 +V -101 0 0 0 0 0 0 2 0 +P 355 -2112 1.0306418575496812e+00 -1.2658702532810939e-01 1.1049846019117362e+01 1.1138228573010105e+01 9.3957000000000002e-01 1 0 0 0 0 +P 356 211 -5.6839362417106777e-02 6.3129684964331675e-02 1.2267245939576892e+00 1.2375577095894705e+00 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 -3.0012621268697615e+01 2.2801365277584146e+01 1.5802443623017721e+03 1.5809175950845424e+03 0 2 0 +P 357 -2112 -1.1378581036056166e+00 9.7861646295080473e-01 5.6072853838445951e+01 5.6100803386565886e+01 9.3957000000000002e-01 1 0 0 0 0 +P 358 -211 -2.0412167434448733e-01 4.0920312535230922e-02 1.4585951983370913e+01 1.4588105263399255e+01 1.3957000000000000e-01 1 0 0 0 0 +V -103 0 0 0 0 0 0 2 0 +P 359 -311 4.7336032540883582e-01 1.9957792363092278e-01 3.8244208976342740e+01 3.8250896682304671e+01 4.9767000000000000e-01 2 0 0 -163 0 +P 360 -211 1.7967918223592744e-01 2.5885318350017517e-01 5.4584200602766515e+00 5.4692887031558053e+00 1.3957000000000000e-01 1 0 0 0 0 +V -104 0 0 0 0 0 0 2 0 +P 361 -211 -3.2092342397034901e-01 -3.5332105099211819e-01 2.8100859079842962e+01 2.8105259088277762e+01 1.3957000000000000e-01 1 0 0 0 0 +P 362 211 -8.8439883740469394e-01 -2.9929391419485957e-01 5.4686939688980750e+01 5.4695087443771357e+01 1.3957000000000000e-01 1 0 0 0 0 +V -105 0 0 0 0 0 0 2 0 +P 363 211 9.3368745682880214e-02 -3.7681332268505119e-01 1.5272857477423360e+01 1.5278427972583108e+01 1.3957000000000000e-01 1 0 0 0 0 +P 364 111 1.0891567153138218e-01 5.3615728162335041e-01 7.6529234059726923e+00 7.6736421282352971e+00 1.3497999999999999e-01 2 0 0 -164 0 +V -106 0 3.8458390904380503e-05 8.9309240418746158e-05 -2.4409401035204432e-04 2.6354728923169718e-04 0 2 0 +P 365 22 2.1224395554242417e-01 4.8081206587306669e-01 -1.4361207927576540e+00 1.5292712874909715e+00 0 1 0 0 0 0 +P 366 22 4.1026448030886967e-02 1.0734013789231003e-01 -1.7137726053839816e-01 2.0633768456202375e-01 0 1 0 0 0 0 +V -107 0 4.3736281292517583e-06 7.8584567595844059e-06 -1.2404186200301000e-05 1.5630335896051612e-05 0 2 0 +P 367 22 6.0632728091395464e-02 2.9953596761870191e-02 -4.5605230561117767e-02 8.1568270358703371e-02 0 1 0 0 0 0 +P 368 22 1.3030486076758502e-01 3.1311964620364563e-01 -4.9591895367456895e-01 6.0079853377986470e-01 0 1 0 0 0 0 +V -108 0 -1.3697641095364497e-05 -9.6097423271048161e-07 -1.4410161111415212e-05 2.4636517224285515e-05 0 2 0 +P 369 22 2.7690702351260706e-02 1.0286881774652524e-02 -2.0116122984700145e-02 3.5738681247177738e-02 0 1 0 0 0 0 +P 370 22 -1.5504829056605138e-01 -1.9221804201258064e-02 -1.1386631619291016e-01 1.9332611858605653e-01 0 1 0 0 0 0 +V -109 0 -1.2153169023578906e-05 -6.2824244005050017e-06 1.4326674711770995e-05 2.0879577567088964e-05 0 2 0 +P 371 22 -1.8133550327440726e-01 -2.1084177871680054e-02 1.5281630107905045e-01 2.3807546950450442e-01 0 1 0 0 0 0 +P 372 22 -6.7287207673414770e-02 -1.0743813451843676e-01 1.4027076936302429e-01 1.8906720975087596e-01 0 1 0 0 0 0 +V -110 0 -5.9930910720649131e-07 9.8928458623747859e-07 1.4337918863531024e-05 2.1627823622279452e-05 0 2 0 +P 373 22 1.3368502630494792e-03 7.1193937795053341e-02 5.3178847259601876e-02 8.8872682772896006e-02 0 1 0 0 0 0 +P 374 22 -6.3455584296092616e-03 -6.2926021078025848e-02 6.6649886259870242e-02 9.1881214505193501e-02 0 1 0 0 0 0 +V -111 0 0 0 0 0 0 1 0 +P 375 130 -8.4559749187529187e-01 9.9710033077653488e-03 -5.2448860633214933e-01 1.1126087660291861e+00 4.9767000000000000e-01 1 0 0 0 0 +V -112 0 -3.8983732874524748e-05 6.6885010970516116e-05 1.2195638089406324e-05 8.4203326822728840e-05 0 2 0 +P 376 22 -6.9501739814868346e-02 5.8747270131682114e-02 6.7485383437181481e-02 1.1329611892241456e-01 0 1 0 0 0 0 +P 377 22 -1.0138909794407150e-01 2.3445286016514555e-01 -1.4024037988002492e-02 2.5582135654205801e-01 0 1 0 0 0 0 +V -113 0 -1.1912408123196776e+02 9.0688833868512901e+00 -1.9297715704041471e+02 2.4795500052785277e+02 0 2 0 +P 378 -211 -4.6643829830683509e-01 -1.1593546915583072e-01 -7.8530117194117199e-01 9.3122684383985455e-01 1.3957000000000000e-01 1 0 0 0 0 +P 379 211 -1.2733627113911816e-01 1.6113936305111573e-01 -1.7659441751103602e-01 3.0470607717634451e-01 1.3957000000000000e-01 1 0 0 0 0 +V -114 0 -1.5133275992010396e-04 4.9760717101996210e-05 -1.3398603715268880e-04 2.1112016913381942e-04 0 2 0 +P 380 22 -1.1176794650841664e-01 1.9471339867306089e-02 -3.6632243387093595e-02 1.1921882484955004e-01 0 1 0 0 0 0 +P 381 22 -4.6791164082034109e-01 1.7113690629232955e-01 -4.7660078537344397e-01 6.8947621636215795e-01 0 1 0 0 0 0 +V -115 0 -2.3405923657104216e-04 1.4611123604191701e-04 -6.3978468743944869e-04 7.0271385577448068e-04 0 2 0 +P 382 22 -1.5654606706326107e-02 5.9193877959733618e-02 -1.8136750724565426e-01 1.9142401778132240e-01 0 1 0 0 0 0 +P 383 22 -3.3008524394544181e-01 1.5663386576763144e-01 -7.6368839195815341e-01 8.4658750060904175e-01 0 1 0 0 0 0 +V -116 0 0 0 0 0 0 1 0 +P 384 130 -1.7100390911822591e-01 -2.6586260149101487e-01 -5.1674196262737446e+00 5.2009447490532308e+00 4.9767000000000000e-01 1 0 0 0 0 +V -117 0 -1.5719477175582176e-05 4.6489243577943278e-05 -7.5819144246790952e-03 7.5823779450975570e-03 0 2 0 +P 385 22 -4.6933693407794318e-02 2.8454853467780084e-02 -1.9950342681093154e+00 1.9957891124047258e+00 0 1 0 0 0 0 +P 386 22 1.5719078175245767e-02 6.3860166588475972e-02 -1.3060589964743238e+01 1.3060755546194381e+01 0 1 0 0 0 0 +V -118 0 4.6249141509978390e-06 9.4614267138868386e-07 -2.0087503716210106e-03 2.0087574999136074e-03 0 2 0 +P 387 22 2.3741658257604767e-01 7.3640089833744204e-02 -8.3863686540923268e+01 8.3864054932555888e+01 0 1 0 0 0 0 +P 388 22 1.0260154843681210e-02 -2.2971575277084405e-02 -2.3710361774420765e+01 2.3710375122253165e+01 0 1 0 0 0 0 +V -119 0 8.0119424837326258e-05 -1.3313731683508782e-05 -4.5005670871262882e-01 4.5005671772315053e-01 0 2 0 +P 389 22 4.2401624770675016e-02 -5.3374706122119440e-02 -5.2723836697148852e+02 5.2723837137818316e+02 0 1 0 0 0 0 +P 390 22 2.3552360385043181e-01 7.1908758031656028e-03 -1.0339574842891241e+03 1.0339575111389108e+03 0 1 0 0 0 0 +V -120 0 -1.0574775438722866e-05 9.3918705274453874e-05 1.7646494932804896e-04 2.0299584739183731e-04 0 2 0 +P 391 22 -8.5106936416403350e-02 2.7456829559547896e-01 5.6036665343756142e-01 6.2979498716423898e-01 0 1 0 0 0 0 +P 392 22 4.2736363582437008e-02 1.0174128803230018e-01 1.4668580658605107e-01 1.8356037785023779e-01 0 1 0 0 0 0 +V -121 0 -4.3851597869865436e-05 1.0531124861711626e-04 2.7512539861286188e-04 2.9879329632975386e-04 0 2 0 +P 393 22 -2.2168226147523581e-01 5.3450139560674614e-01 1.2608632340692663e+00 1.3873034498572918e+00 0 1 0 0 0 0 +P 394 22 -2.6235155521216191e-02 6.0881532406653491e-02 2.9457331756189681e-01 3.0194086141631588e-01 0 1 0 0 0 0 +V -122 0 3.4877577943497759e-05 2.2373782240192860e-04 7.2331191609908019e-04 7.5928371084947772e-04 0 2 0 +P 395 22 -4.0112956797155415e-03 1.5481676149413653e-01 6.7269609638733785e-01 6.9029295101958354e-01 0 1 0 0 0 0 +P 396 22 1.0782252001879759e-01 5.1112676566625326e-01 1.4802027003965594e+00 1.5696739472466619e+00 0 1 0 0 0 0 +V -123 0 -3.1383658047148092e-07 -3.8483860900566085e-06 5.8223741610822792e-06 7.2589357635634373e-06 0 2 0 +P 397 22 -3.4203777351233013e-02 -7.7314876934825694e-02 2.3165639285197370e-01 2.4660124275787404e-01 0 1 0 0 0 0 +P 398 22 1.2707702234842765e-02 -1.8627834838151267e-01 1.6714412980962137e-01 2.5059582778180722e-01 0 1 0 0 0 0 +V -124 0 3.2236808159334187e-05 -4.4252594647466681e-06 7.9687775574346266e-05 8.6862496107126174e-05 0 2 0 +P 399 22 2.8048142698490619e-01 -1.6909267864752442e-03 5.3537686917943428e-01 6.0440142469161939e-01 0 1 0 0 0 0 +P 400 22 9.2426469250633983e-02 -4.9499445074743652e-02 3.8643277767653045e-01 4.0040371994231605e-01 0 1 0 0 0 0 +V -125 0 4.2009406464945751e-05 -1.2069163044297390e-05 6.3371665519486119e-05 8.0090782101313509e-05 0 2 0 +P 401 22 1.5677840685418869e-02 1.9658044984528937e-04 1.2369344343658331e-01 1.2468320368690350e-01 0 1 0 0 0 0 +P 402 22 2.4098140449885502e-01 -7.3933929715660526e-02 2.6347993526548569e-01 3.6463672273229075e-01 0 1 0 0 0 0 +V -126 0 4.1067867362733860e-05 3.2555400164699854e-05 5.5201857772271590e-05 8.2909348694607668e-05 0 2 0 +P 403 22 -4.8371529729373045e-03 6.8203982431913487e-02 6.7555697751643287e-02 9.6119475483211703e-02 0 1 0 0 0 0 +P 404 22 1.7349290496990249e-01 6.5493135264584043e-02 1.5914491837677636e-01 2.4436907309811426e-01 0 1 0 0 0 0 +V -127 0 2.2996903462980960e-06 3.5321056006164265e-07 9.0947755025366818e-06 9.7530487726669384e-06 0 2 0 +P 405 22 7.5194678532599424e-02 1.6444172407965130e-02 4.4468114488586097e-01 4.5129366392937964e-01 0 1 0 0 0 0 +P 406 22 4.2183059397594619e-02 1.5839315147350983e-03 1.9522297629404592e-02 4.6508487869585918e-02 0 1 0 0 0 0 +V -128 0 4.2478406964594337e-05 1.5680554272100167e-05 3.4601724241679823e-04 3.5122770649711978e-04 0 2 0 +P 407 22 7.0751074460728869e-02 5.8688867322594630e-02 2.8102517910808417e-01 2.9567760986873448e-01 0 1 0 0 0 0 +P 408 22 7.3374743433465395e-02 -5.4860080114057562e-03 8.9298349100003183e-01 8.9600974573741798e-01 0 1 0 0 0 0 +V -129 0 0 0 0 0 0 1 0 +P 409 130 2.5178180326027377e-01 -3.2242494783834660e-02 4.0106627287096375e+00 4.0493857073985327e+00 4.9767000000000000e-01 1 0 0 0 0 +V -130 0 9.7296294408389538e-05 -1.8057692433404323e-04 4.0892878755954612e-03 4.0976367013533495e-03 0 2 0 +P 410 22 2.2610663559113998e-02 1.5843981511661730e-02 1.7624472459684748e-01 1.7839416135329073e-01 0 1 0 0 0 0 +P 411 22 5.8407246803437063e-02 -1.6620906127341661e-01 3.2288752809096777e+00 3.2336778500954755e+00 0 1 0 0 0 0 +V -131 0 -5.9918336999371855e-06 -2.2748399729338936e-06 1.1813059477552841e-04 1.1830882340672078e-04 0 2 0 +P 412 22 -6.4079677880824115e-01 -2.9594268267928575e-01 1.2675721449920001e+01 1.2695358083139070e+01 0 1 0 0 0 0 +P 413 22 -1.4353546444437934e-01 -1.8343298954584674e-03 2.7875972997355194e+00 2.7912908303887272e+00 0 1 0 0 0 0 +V -132 0 -2.1628437162218839e-04 -1.8553738695043266e-04 4.3655499554553336e-03 4.3749458062479468e-03 0 2 0 +P 414 22 -1.8975057145655388e-01 -2.3624605238895813e-01 4.4154025237974253e+00 4.4257877178864025e+00 0 1 0 0 0 0 +P 415 22 -7.7204765374333273e-01 -5.8882294422292536e-01 1.4997827233334203e+01 1.5029224589453543e+01 0 1 0 0 0 0 +V -133 0 -1.0031594106859512e+00 -6.0662790835180747e-01 1.4756351155848559e+01 1.4803588565939812e+01 0 2 0 +P 416 -311 -5.7533254882839175e+00 -4.0301381457755010e+00 9.0395852379808090e+01 9.0669733486699556e+01 4.9767000000000000e-01 2 0 0 -165 0 +P 417 -211 -1.6323447011722816e+00 -8.8456314377591827e-01 2.1686911267723048e+01 2.1766685583656617e+01 1.3957000000000000e-01 1 0 0 0 0 +V -134 0 -2.3360926691629899e-05 -3.6259117715442567e-06 1.7025501083802078e-02 1.7025523647425003e-02 0 2 0 +P 418 22 -7.2611311153853525e-02 3.7197986780457486e-02 8.1779099887878104e+01 8.1779140583429168e+01 0 1 0 0 0 0 +P 419 22 -1.4527780310138280e-01 -7.1017137651406562e-02 7.7019024855621765e+01 7.7019194612673004e+01 0 1 0 0 0 0 +V -135 0 1.2076169997944896e-05 -1.0726917860116507e-05 3.2525658344699942e-03 3.2526134023936229e-03 0 2 0 +P 420 22 7.5246657878530437e-02 -1.4550284380572404e-01 3.7015590489964843e+01 3.7015952945424132e+01 0 1 0 0 0 0 +P 421 22 1.5872388908114299e-01 -6.2326529194992208e-02 2.6001459406053321e+01 2.6002018558447446e+01 0 1 0 0 0 0 +V -136 0 3.2332819614426833e-06 -3.0337223685055661e-05 2.7563962365646020e-03 2.7567459788091471e-03 0 2 0 +P 422 22 5.2995067612266689e-02 -1.0388453409721403e-01 1.0481693098366938e+01 1.0482341851035432e+01 0 1 0 0 0 0 +P 423 22 -3.9175857367738848e-02 -2.5778290654386461e-02 1.2992834958659103e+00 1.3001295591975057e+00 0 1 0 0 0 0 +V -137 0 3.1210382498907047e-05 -2.4228290863135666e-05 1.4586790248855876e-03 1.4593020915778690e-03 0 2 0 +P 424 22 1.4570887631797527e-01 -1.2616945494337359e-01 4.7114504656630327e+00 4.7153913197522614e+00 0 1 0 0 0 0 +P 425 22 1.1707757909111839e-01 -7.7828899667208698e-02 7.5703948639384269e+00 7.5717001322750876e+00 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 426 130 7.4489573882419291e-01 8.6535957172601397e-01 1.7511148478823699e+01 1.7555389865406173e+01 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 0 0 0 0 0 1 0 +P 427 310 -4.7598331792509141e-01 -8.4343084301410715e-02 2.7348337649344273e+01 2.7357136573228090e+01 4.9767000000000000e-01 2 0 0 -166 0 +V -140 0 -8.3925193175608200e+01 3.9338375119302427e+01 8.7963531058230437e+03 8.7970466296407194e+03 0 2 0 +P 428 -211 -4.8915716729371289e-01 3.5379275820838541e-01 4.0094024505926598e+01 4.0098812013784375e+01 1.3957000000000000e-01 1 0 0 0 0 +P 429 211 -2.0594778188345286e-01 -2.7975227103050119e-02 3.2761197474600237e+01 3.2762154032615854e+01 1.3957000000000000e-01 1 0 0 0 0 +V -141 0 -2.3066035847172713e-06 2.2622629018241768e-05 2.6857264600342206e-03 2.6858397352112653e-03 0 2 0 +P 430 22 5.3127791655494534e-02 1.2374417391665785e-01 1.4536463780597019e+01 1.4537087549692799e+01 0 1 0 0 0 0 +P 431 22 -8.5701044998682224e-02 1.9572668409402283e-01 2.3390663781688637e+01 2.3391639655055833e+01 0 1 0 0 0 0 +V -142 0 7.4745864093440425e-06 9.3134989752651984e-06 9.7003591521736574e-05 9.8074817718559216e-05 0 2 0 +P 432 22 -5.3080603537296158e-03 6.2270797239337615e-02 7.9227269487634211e-01 7.9473382383044622e-01 0 1 0 0 0 0 +P 433 22 1.2915793110420093e-01 9.2048864231064606e-02 8.1502456738822093e-01 8.3031307951862532e-01 0 1 0 0 0 0 +V -143 0 1.6683368743087236e-04 1.0854011843115621e-04 8.8202948366584450e-03 8.8226093028841972e-03 0 2 0 +P 434 22 4.7366546711335589e-01 2.6593638108134854e-01 2.6023432393861224e+01 2.6029101303951776e+01 0 1 0 0 0 0 +P 435 22 1.7119797565636166e-01 1.5360451337469549e-01 8.0697161914225859e+00 8.0729934041534896e+00 0 1 0 0 0 0 +V -144 0 1.7954480389756124e-04 7.7724415131910377e-05 6.2927154370721232e-03 6.2958241174259407e-03 0 2 0 +P 436 22 1.1422002392478928e-01 6.4918508167836715e-03 4.3441170283238124e+00 4.3456232135063573e+00 0 1 0 0 0 0 +P 437 22 7.1395691893479074e-01 3.5202350085120604e-01 2.4681962924026539e+01 2.4694795986407076e+01 0 1 0 0 0 0 +V -145 0 -1.9609651427977344e-05 -7.4782511180791459e-06 3.8410389939440802e-04 3.8635884505955950e-04 0 2 0 +P 438 22 -1.0729773963663858e-01 -3.0268391562004265e-02 8.2224722500628999e-01 8.2977073911377908e-01 0 1 0 0 0 0 +P 439 22 3.3797644432614085e-02 2.2387159118688409e-03 6.1743533525827154e-01 6.1836371646759947e-01 0 1 0 0 0 0 +V -146 0 5.2131973766054339e-06 4.1070866662282870e-06 1.4937262112277159e-04 1.4956090324421662e-04 0 2 0 +P 440 22 1.8118299159397690e-02 2.9575529460455215e-02 2.1818118251376073e+00 2.1820874925212306e+00 0 1 0 0 0 0 +P 441 22 1.8302887004733309e-01 1.2889321762858399e-01 3.5816146721340854e+00 3.5886037240781548e+00 0 1 0 0 0 0 +V -147 0 6.1675119851635953e+00 -3.2443224410695379e+01 3.3447693202227225e+02 3.3624566849186726e+02 0 2 0 +P 442 -211 1.7168112378432487e-01 -6.2348686049339996e-01 4.8195537594747444e+00 4.8647495823360636e+00 1.3957000000000000e-01 1 0 0 0 0 +P 443 211 1.4202736966257906e-01 -1.0267272091220803e+00 1.2193506724211735e+01 1.2238277107255811e+01 1.3957000000000000e-01 1 0 0 0 0 +V -148 0 0 0 0 0 0 2 0 +P 444 211 -1.8843760989747041e-01 -5.7132487376221974e-01 7.0005634871052020e+00 7.0277514018421163e+00 1.3957000000000000e-01 1 0 0 0 0 +P 445 -211 2.1778470945671029e-02 -2.4462331826562256e-01 9.8717902473717956e-01 1.0267994358281778e+00 1.3957000000000000e-01 1 0 0 0 0 +V -149 0 3.3815872655375920e-05 -8.8706576341638220e-05 1.2225849291934955e-03 1.2273011627084497e-03 0 2 0 +P 446 22 4.1946401175051981e-02 -2.3452337052872346e-01 2.8068387162995183e+00 2.8169317157527307e+00 0 1 0 0 0 0 +P 447 22 4.8588031729018710e-02 -2.9686399776247515e-03 4.6635888441359208e-01 4.6889254496324323e-01 0 1 0 0 0 0 +V -150 0 -2.2719145518260682e-06 -7.2370955710423777e-06 3.6860335163427627e-05 3.7773350362741714e-05 0 2 0 +P 448 22 -2.8163592205792350e-03 -2.1581075512772691e-01 1.0509549888338077e+00 1.0728879729322758e+00 0 1 0 0 0 0 +P 449 22 -9.1354270497869719e-02 -8.4166128558272837e-02 4.7690219716075166e-01 4.9281360126465479e-01 0 1 0 0 0 0 +V -151 0 5.9843090047528281e-05 1.4190501461534226e-05 4.7124887992592318e-05 8.8409686466827799e-05 0 2 0 +P 450 22 2.0924146209939254e-01 4.3206977463747263e-02 1.2033302804903956e-01 2.4521188797139343e-01 0 1 0 0 0 0 +P 451 22 -1.9531428350450693e-02 1.7786760017401684e-03 2.9058724355280816e-02 3.5057807160233830e-02 0 1 0 0 0 0 +V -152 0 1.0195251485624900e-05 -6.1441143182856532e-06 -2.1372642871293361e-04 2.1411731095032145e-04 0 2 0 +P 452 22 1.9533270339594799e-01 -1.0471989149621931e-01 -4.8287806447212560e+00 4.8338642549750723e+00 0 1 0 0 0 0 +P 453 22 7.6955925907224484e-02 -5.9373409033625792e-02 -8.7929594389071397e-01 8.8465178074493211e-01 0 1 0 0 0 0 +V -153 0 -4.3180098738504445e-06 3.6940653122024246e-05 -1.1210974792840959e-03 1.1221856762077622e-03 0 2 0 +P 454 22 -7.1590286058456104e-02 5.2136269562120231e-02 -1.7161269640007177e+00 1.7184106366733500e+00 0 1 0 0 0 0 +P 455 22 5.3670388799414187e-02 1.0116877789444984e-01 -2.9364681511251565e+00 2.9387005350710602e+00 0 1 0 0 0 0 +V -154 0 -6.2729864115820472e-05 3.8527483842666313e-06 -7.1346638364952423e-03 7.1350986443538779e-03 0 2 0 +P 456 22 -6.4640508041547584e-02 -3.2289955193366408e-02 -3.2563504549031794e+00 3.2571520261778351e+00 0 1 0 0 0 0 +P 457 22 -1.1367821570845126e-01 4.3241950459031744e-02 -1.7024964794881363e+01 1.7025399227916957e+01 0 1 0 0 0 0 +V -155 0 -3.5839923770696304e-05 -5.3781827995199834e-05 -5.0483021503518492e-03 5.0487597996870161e-03 0 2 0 +P 458 22 -1.7396435578211061e-01 -1.7417492837193710e-01 -1.5179023412587368e+01 1.5181019473758385e+01 0 1 0 0 0 0 +P 459 22 -5.5639920627447256e-02 -1.7037205726974725e-01 -1.7162333386727944e+01 1.7163269202452724e+01 0 1 0 0 0 0 +V -156 0 4.5507577628584387e-06 1.9190966414477778e-05 9.0194798894498126e-06 2.2478153082292885e-05 0 2 0 +P 460 22 5.3961060971557492e-02 7.9158052349659946e-02 -1.0977173258833227e-03 9.5807089175567753e-02 0 1 0 0 0 0 +P 461 22 4.9996200145225052e-02 3.5923933344749981e-01 2.0713822197716783e-01 4.1768260884148362e-01 0 1 0 0 0 0 +V -157 0 -5.1581249311847977e-06 -1.1016643111822161e-05 -1.5916397208488843e-05 2.0083167502314703e-05 0 2 0 +P 462 22 -3.1716501142518883e-01 -5.8150051590051388e-01 -7.7670585418244320e-01 1.0207881652851305e+00 0 1 0 0 0 0 +P 463 22 -1.7159394224262578e-01 -4.6238326591962625e-01 -7.3145491151569741e-01 8.8219558670246279e-01 0 1 0 0 0 0 +V -158 0 0 0 0 0 0 1 0 +P 464 310 5.4533423118825564e-01 -2.1932503402815775e+00 -4.1527351550146987e+00 4.7540110617715117e+00 4.9767000000000000e-01 2 0 0 -167 0 +V -159 0 -2.9899249577558377e-04 -2.0228382203658472e-05 -1.1079387539825041e-04 3.2221826826116836e-04 0 2 0 +P 465 22 -8.3346775443643040e-01 -4.8634651175075268e-02 -3.5562649196823404e-01 9.0747122751625553e-01 0 1 0 0 0 0 +P 466 22 -1.3303388673837305e-01 -1.6754162505457412e-02 -2.5178224124823680e-03 1.3410837562090722e-01 0 1 0 0 0 0 +V -160 0 3.8723550913267867e-05 1.2516057721069469e-04 1.2893485008857004e-03 1.2961934460564023e-03 0 2 0 +P 467 22 9.4494307196249280e-02 1.2938868819578370e-01 1.7092391437658199e+00 1.7167320866421871e+00 0 1 0 0 0 0 +P 468 22 1.3186361989659259e-01 6.0223555965823572e-01 5.8276278810181124e+00 5.8601469608866257e+00 0 1 0 0 0 0 +V -161 0 0 0 0 0 0 1 0 +P 469 130 5.0093079509551341e-01 -1.6736784839411437e-01 6.2499799234045614e+00 6.2919685417213573e+00 4.9767000000000000e-01 1 0 0 0 0 +V -162 0 1.1030443660979173e-04 -2.8860204694531712e-05 5.9693928234557251e-05 1.3299857732767785e-04 0 2 0 +P 470 22 2.5718881712629815e-01 -1.7110260067217876e-02 7.9616960930951566e-02 2.6977344035740969e-01 0 1 0 0 0 0 +P 471 22 1.8665769195734039e-01 -9.9018351789270556e-02 1.6058137083810370e-01 2.6539047574875341e-01 0 1 0 0 0 0 +V -163 0 0 0 0 0 0 1 0 +P 472 310 4.7336032540883582e-01 1.9957792363092278e-01 3.8244208976342740e+01 3.8250896682304671e+01 4.9767000000000000e-01 2 0 0 -168 0 +V -164 0 5.0645331992271131e-05 2.4931089480602684e-04 3.5585773943948317e-03 3.5682115136422437e-03 0 2 0 +P 473 22 5.6913977335912823e-02 7.9267004492891840e-02 9.6228112476905237e-01 9.6721632632222521e-01 0 1 0 0 0 0 +P 474 22 5.2001694195469371e-02 4.5689027713045866e-01 6.6906422812036404e+00 6.7064258019130722e+00 0 1 0 0 0 0 +V -165 0 -1.0031594106859512e+00 -6.0662790835180747e-01 1.4756351155848559e+01 1.4803588565939812e+01 0 1 0 +P 475 130 -5.7533254882839175e+00 -4.0301381457755010e+00 9.0395852379808090e+01 9.0669733486699556e+01 4.9767000000000000e-01 1 0 0 0 0 +V -166 0 -2.1954338730932741e+00 -3.8902553359153652e-01 1.2614195621370837e+02 1.2618254052583406e+02 0 2 0 +P 476 -211 -3.8419677861900481e-01 1.0373514257599888e-01 1.3727450016645596e+01 1.3733926310014542e+01 1.3957000000000000e-01 1 0 0 0 0 +P 477 211 -9.1786539306086476e-02 -1.8807822687740958e-01 1.3620887632698674e+01 1.3623210263213544e+01 1.3957000000000000e-01 1 0 0 0 0 +V -167 0 6.0843234933367697e+01 -2.4470212594333566e+02 -4.6332290584815917e+02 5.3040758376185750e+02 0 2 0 +P 478 211 4.3923811914830291e-01 -1.9192225167157120e+00 -3.3556575631746446e+00 3.8931045015736121e+00 1.3957000000000000e-01 1 0 0 0 0 +P 479 -211 1.0609611203995273e-01 -2.7402782356586536e-01 -7.9707759184005411e-01 8.6090656019789924e-01 1.3957000000000000e-01 1 0 0 0 0 +V -168 0 1.7832638234533317e+01 7.5185872593688456e+00 1.4407526500071178e+03 1.4410045922055583e+03 0 2 0 +P 480 211 -1.6780378320731124e-02 1.2970062371486263e-02 4.2224922518224925e+00 4.2248515246355689e+00 1.3957000000000000e-01 1 0 0 0 0 +P 481 -211 4.9014070372956692e-01 1.8660786125943651e-01 3.4021716724520246e+01 3.4026045157669103e+01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 7 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 146 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 2 9.5585977786327769e-02 7.9414932775068517e-02 2.4315489624226007e+02 2.4315492799858069e+02 0 3 0 0 -3 0 +P 24 2101 -9.5585977786327769e-02 -7.9414932775068517e-02 6.5004858943937879e+03 6.5004859213968966e+03 5.7933000000000001e-01 2 0 0 -17 0 +V -2 0 0 0 0 0 1 3 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 21 -3.1839018050093307e-03 5.0554804870918790e-01 -2.5725369994220681e+01 2.5730337158815754e+01 0 3 0 0 -4 0 +P 12 2101 3.8701429021918715e-01 -2.0438006852161128e-01 -5.1057965796384815e+03 5.1057966312635817e+03 5.7933000000000001e-01 2 0 0 -9 0 +P 33 2 -3.8383038841417783e-01 -3.0116798018757662e-01 -1.4059242432952470e+02 1.4059365813141250e+02 3.3000000000000002e-01 2 0 0 -17 0 +V -3 0 0 0 0 0 0 3 0 +P 5 2 -2.1264769648708381e-01 8.3899334394629999e-01 2.3005421402360733e+02 2.3005584217509832e+02 0 3 0 0 -5 0 +P 25 21 -3.6511185605667584e-03 -1.4425395575640334e+00 8.1652186717378754e+00 8.2916662778419035e+00 0 2 0 0 -17 0 +P 26 21 2.9593935486652639e-01 6.8709099958216890e-01 4.0361549279216140e+00 4.1049020384963599e+00 0 2 0 0 -17 0 +V -4 0 0 0 0 0 0 4 0 +P 6 -3 -1.9831035912957480e+00 8.3830206726540324e-01 -1.1595024534665217e+01 1.1793220262900215e+01 0 3 0 0 -5 0 +P 11 3 -2.8557959363283214e-01 -1.4780078065351945e+00 -1.0810465318999622e+01 1.0926217240828231e+01 5.0000000000000000e-01 2 0 0 -9 0 +P 31 21 1.2172273336784700e+00 -4.7627796523471329e-02 -9.7231787370062306e-01 1.5586253033918638e+00 0 2 0 0 -17 0 +P 32 21 1.0642173874125529e+00 1.1887517313130824e+00 -1.4482536478625649e+00 2.1547918588388710e+00 0 2 0 0 -17 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 1.4000883323926923e+00 -8.2378971281789837e-02 8.3381755872705611e+01 8.3393550386399113e+01 0 3 0 0 -6 0 +P 8 24 -3.5958396201755241e+00 1.7596743824934931e+00 1.3507743361623650e+02 1.5845551205159941e+02 8.2741825642653993e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 1.4000883323926923e+00 -8.2378971281789837e-02 8.3381755872705611e+01 8.3393550386399113e+01 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 24 -3.5958396201755241e+00 1.7596743824934931e+00 1.3507743361623650e+02 1.5845551205159941e+02 8.2741825642653993e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 7 0 +P 13 2 -4.9357754672154250e+00 1.4347517927759370e+00 5.9322107559486689e+01 5.9545291480258513e+01 3.3000000000000002e-01 2 0 0 -11 0 +P 14 21 -6.6611694690988275e+00 2.4614122585280231e+00 7.0400917686742488e+01 7.0758172249839646e+01 0 2 0 0 -11 0 +P 15 21 -1.1364538745352168e+00 -8.4363652633784314e-01 1.5206113213728849e+00 2.0773802704860946e+00 0 2 0 0 -11 0 +P 16 21 -7.0207935266386619e+00 -9.6120038752047388e-01 5.9385495803026025e+00 9.2456378388066369e+00 0 2 0 0 -11 0 +P 17 21 1.9233062830932506e+00 -9.9992930184166651e-01 2.0384347101481007e-01 2.1772730255856527e+00 0 2 0 0 -11 0 +P 18 21 6.5191036641582967e+00 1.4569596471037023e+00 -1.4166998204938244e+00 6.8285051349997472e+00 0 2 0 0 -11 0 +P 19 -3 7.7159427700610506e+00 -7.8868310021418342e-01 -8.9189618218918798e-01 7.8232520516230650e+00 5.0000000000000000e-01 2 0 0 -11 0 +V -9 0 0 0 0 0 0 1 0 +P 38 92 1.0143469658635501e-01 -1.6823878750568058e+00 -5.1166070449574809e+03 5.1167228485044097e+03 3.4383356156668995e+01 2 0 0 -10 0 +V -10 0 0 0 0 0 0 8 0 +P 39 -313 -2.1040013596164128e-01 -5.8425235058654956e-01 -1.1872843281185203e+01 1.1925692262405972e+01 9.3386794122427452e-01 2 0 0 -23 0 +P 40 113 -2.6276647691303950e-01 -5.6521457952856013e-01 -1.1962401435561386e+01 1.1993068060118460e+01 5.8831934084434256e-01 2 0 0 -24 0 +P 41 -211 2.1202252232348538e-02 1.2037186058540997e-01 -3.8928936098051310e+01 3.8929378166513047e+01 1.3957000000000000e-01 1 0 0 0 0 +P 42 2114 -3.0865407405585576e-01 -4.5752156743261424e-01 -6.0439787274539817e+01 6.0455579370402425e+01 1.2667272387158715e+00 2 0 0 -25 0 +P 43 223 7.5934744704867152e-01 -4.5802192101885630e-02 -7.5778630043207073e+01 7.5786642607491785e+01 7.9732057812523760e-01 2 0 0 -26 0 +P 44 -3114 -4.7130125309522669e-01 -3.6998042550758815e-02 -1.6236037253483892e+02 1.6236696425649211e+02 1.3845643686705831e+00 2 0 0 -27 0 +P 45 -311 3.9338164815186982e-01 1.5120222274855744e-01 -1.5841292434872400e+02 1.5841426667878346e+02 4.9767000000000000e-01 2 0 0 -28 0 +P 46 2112 1.8062528917922832e-01 -2.6417322619040490e-01 -4.5968511499413735e+03 4.5968512571022029e+03 9.3957000000000002e-01 1 0 0 0 0 +V -11 0 0 0 0 0 0 1 0 +P 47 92 -3.5958396201755329e+00 1.7596743824934951e+00 1.3507743361623648e+02 1.5845551205159936e+02 8.2741825642653964e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 19 0 +P 48 213 -4.6020701303904872e+00 1.4837736955946597e+00 4.4190052474360535e+01 4.4457621785313627e+01 5.8203372280644805e-01 2 0 0 -29 0 +P 49 111 6.6697298340082936e-02 -2.7309372095162640e-02 1.5613189066221931e+00 1.5687991139677566e+00 1.3497999999999999e-01 2 0 0 -30 0 +P 50 -213 -1.2537860530518419e+00 6.3570399222428886e-01 2.3101138766532216e+01 2.3148198586365478e+01 4.4764545197942257e-01 2 0 0 -31 0 +P 51 223 -4.9718024532112670e+00 1.2416775214387061e+00 4.4371163546531150e+01 4.4672913013609495e+01 7.8001278675560926e-01 2 0 0 -32 0 +P 52 211 2.0193990881854440e-01 1.9756624416254592e-01 8.6476093093118023e-01 9.2038220331072151e-01 1.3957000000000000e-01 1 0 0 0 0 +P 53 3112 -7.0584972907924126e-01 -6.5661601113311763e-02 9.0004313706404595e+00 9.1073685934583164e+00 1.1974400000000001e+00 2 0 0 -33 0 +P 54 -3212 -1.3667402501295773e+00 -6.0384937118763382e-01 5.0703170378781293e+00 5.4187547777607730e+00 1.1925500000000000e+00 2 0 0 -34 0 +P 55 211 -2.6364081709202364e-01 7.3413299932848253e-01 2.6874106938374962e+00 2.8018054470987304e+00 1.3957000000000000e-01 1 0 0 0 0 +P 56 -213 -3.4695940866764934e+00 -5.0692299600103696e-01 3.4058985381402325e+00 4.9419726631930434e+00 7.2656376283600244e-01 2 0 0 -35 0 +P 57 111 -2.2664032636498591e-01 -6.4174781661402613e-01 5.5446080822234844e-01 8.8817368004139652e-01 1.3497999999999999e-01 2 0 0 -36 0 +P 58 113 -5.0290045956692175e-01 -2.2402253400552827e-02 4.2604824703776056e-01 1.0487762353368946e+00 8.1547762066989726e-01 2 0 0 -37 0 +P 59 213 -1.2005200767227959e+00 6.2152297680195367e-02 1.6050487128422106e+00 2.2598983813267526e+00 1.0420402874195425e+00 2 0 0 -38 0 +P 60 -213 -2.9276047393825264e-02 -5.2442944213790954e-01 9.3491138108836302e-02 9.6897732639620227e-01 8.0888388501252917e-01 2 0 0 -39 0 +P 61 213 4.8741035118588283e-01 -5.4382265811505015e-01 -2.1420018845659008e-01 9.8970129623833414e-01 6.3270451327498556e-01 2 0 0 -40 0 +P 62 -211 1.8697788601233423e-01 4.2760734454290197e-02 -2.6920172278503485e-01 3.5880156454388884e-01 1.3957000000000000e-01 1 0 0 0 0 +P 63 211 1.2983839367590966e-01 -2.1540737154801419e-02 3.5452183158205530e-01 4.0309741477440403e-01 1.3957000000000000e-01 1 0 0 0 0 +P 64 311 4.6391648249289439e+00 8.7190463208380886e-01 -2.7041866263032449e-01 4.7542475369195865e+00 4.9767000000000000e-01 2 0 0 -41 0 +P 65 -323 2.2512956578581989e+00 -8.1702811801166697e-01 -6.8930905945599441e-01 2.6161470913906841e+00 7.9574590142266011e-01 2 0 0 -42 0 +P 66 323 7.0336564886840316e+00 2.6471663135766954e-01 -7.6549975370238721e-01 7.1298753405532898e+00 8.4067473090788580e-01 2 0 0 -43 0 +V -13 0 0 0 0 0 2 1 0 +P 20 3 2.9480913835759774e+00 -4.2454566557718891e+00 -4.1875620167901211e+01 4.2193396514955836e+01 0 2 0 0 -13 0 +P 21 -3 -2.9480913835759774e+00 4.2454566557718891e+00 -1.4413638757204703e+02 1.4422903094502612e+02 0 2 0 0 -13 0 +P 67 92 0 0 -1.8601200773994825e+02 1.8642242745998198e+02 1.2363431426010967e+01 2 0 0 -14 0 +V -14 0 0 0 0 0 0 7 0 +P 68 -313 6.7124336041434551e-01 -1.0017568531182413e+00 -1.2051454636583410e+01 1.2140615058432582e+01 8.3838576904817708e-01 2 0 0 -44 0 +P 69 111 1.8807531206737291e+00 -2.0970278275644705e+00 -2.6588570500903835e+01 2.6737708557249952e+01 1.3497999999999999e-01 2 0 0 -45 0 +P 70 113 -1.1068971892740748e-01 -5.1341043207208503e-01 -9.0115038018838742e+00 9.0608170742198180e+00 7.8445063290764161e-01 2 0 0 -46 0 +P 71 223 -2.0672406052829917e-01 1.7379335103852600e-01 -1.3130580146872006e+01 1.3156750961396625e+01 7.8423332032961013e-01 2 0 0 -47 0 +P 72 113 -4.4140526611159947e-01 5.7742869906215955e-01 -2.4813075874939347e+01 2.4836133069027387e+01 7.8518082980101878e-01 2 0 0 -48 0 +P 73 -211 7.7896309901419436e-02 -3.6602920137854170e-02 -1.3397448490641568e+00 1.3497420695647062e+00 1.3957000000000000e-01 1 0 0 0 0 +P 74 323 -1.8710737454221880e+00 2.8975759827919654e+00 -9.9077077929701588e+01 9.9140660670090867e+01 8.4045432777846174e-01 2 0 0 -49 0 +V -15 0 0 0 0 0 2 1 0 +P 22 3 -2.3797373606868244e+00 -2.4917871101526390e+00 -4.3280761946634883e+00 5.5321240455167233e+00 0 2 0 0 -15 0 +P 23 -3 2.3797373606868244e+00 2.4917871101526390e+00 -9.6661085500222009e+02 9.6661699610602295e+02 0 2 0 0 -15 0 +P 75 92 0 0 -9.7093893119688357e+02 9.7214912015153971e+02 4.8492305551150785e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 9 0 +P 76 -323 -2.2398361126526320e+00 -2.4341442137074423e+00 -4.8632735500917565e+00 5.9530803627759008e+00 9.1968055213627808e-01 2 0 0 -50 0 +P 77 111 -6.7528675734192661e-02 -1.2563759364867366e-01 -1.7655103539140375e+00 1.7763984173495295e+00 1.3497999999999999e-01 2 0 0 -51 0 +P 78 113 1.5354061763556762e-01 6.2318321309839064e-01 -1.0151106705392891e+01 1.0185911304933418e+01 5.4395747016322149e-01 2 0 0 -52 0 +P 79 111 -1.6671670434852973e-01 -5.1368748512571094e-01 -7.9559061682556891e+00 7.9753577882357432e+00 1.3497999999999999e-01 2 0 0 -53 0 +P 80 211 -9.6736485997603927e-02 5.1279243800840213e-01 -4.1217511496160233e+00 4.1569972764560212e+00 1.3957000000000000e-01 1 0 0 0 0 +P 81 111 4.4784540883304857e-02 -6.3293049003740509e-01 -2.8876930883969312e+01 2.8884216512452983e+01 1.3497999999999999e-01 2 0 0 -54 0 +P 82 -211 -1.1552696499474494e-01 2.9652397766424610e-01 -1.5381300035866197e+01 1.5385224844870098e+01 1.3957000000000000e-01 1 0 0 0 0 +P 83 213 1.3734383108429742e+00 1.9976391213286977e+00 -5.6939502407682789e+02 5.6940054246694490e+02 6.3829722452204496e-01 2 0 0 -55 0 +P 84 313 1.1145814743658564e+00 2.7626103241949523e-01 -3.2842812827294995e+02 3.2843139117752128e+02 9.0810677110516835e-01 2 0 0 -56 0 +V -17 0 0 0 0 0 4 1 0 +P 27 21 -3.2798144322212153e+00 8.7986496652623636e-01 2.4766780065185029e+02 2.4769107942110830e+02 0 2 0 0 -17 0 +P 28 21 3.2798144322212153e+00 -8.7986496652623636e-01 5.5985508273586087e+00 6.5479093179154937e+00 0 2 0 0 -17 0 +P 29 21 -3.7733390949497778e+00 9.0629369874865717e-01 -3.3241294584168473e+00 5.1097253204240456e+00 0 2 0 0 -17 0 +P 30 21 3.7733390949497778e+00 -9.0629369874865717e-01 -1.2185775397046967e+01 1.2788767658423664e+01 0 2 0 0 -17 0 +P 85 92 2.0943165911964767e+00 5.0924638451013138e-03 6.6074307187661043e+03 6.9293270467247485e+03 2.0874453839536136e+03 2 0 0 -18 0 +V -18 0 0 0 0 0 0 36 0 +P 86 113 2.9356129599336628e-01 -4.3313617556154632e-01 1.5897828498253559e+03 1.5897830714807062e+03 6.5649266342745860e-01 2 0 0 -57 0 +P 87 2112 -1.1641820817776909e-01 7.5916177472945279e-01 1.5838148551780225e+03 1.5838153200907500e+03 9.3957000000000002e-01 1 0 0 0 0 +P 88 113 2.7160958203151061e-02 -4.0515716778460686e-01 1.6165720701806258e+03 1.6165722765277476e+03 7.0870302833514009e-01 2 0 0 -58 0 +P 89 111 -1.4385672069497962e-01 9.5872413866507322e-01 7.8787988037092839e+02 7.8788048837348356e+02 1.3497999999999999e-01 2 0 0 -59 0 +P 90 -2214 -3.6919767591725938e-01 -8.0507840752899340e-01 8.0872498075085002e+02 8.0872637466061587e+02 1.2124863189911272e+00 2 0 0 -60 0 +P 91 211 3.5761092944521689e-01 -5.0085597321715558e-01 3.0003167406315214e+01 3.0009803006335137e+01 1.3957000000000000e-01 1 0 0 0 0 +P 92 2114 -9.8516795397972409e-02 -1.4151599991198704e-01 6.0200362965077282e+01 6.0212675769296112e+01 1.2053587989159509e+00 2 0 0 -61 0 +P 93 223 -6.6801252072040476e-02 3.4914305837557824e-01 1.7318687060519537e+01 1.7340112417543374e+01 7.8499291101563418e-01 2 0 0 -62 0 +P 94 223 1.0880283197397357e-01 -1.1874086178082427e-01 5.9048803867980695e+00 5.9574951798301630e+00 7.7343324650876888e-01 2 0 0 -63 0 +P 95 223 -1.1326999883260454e-01 -3.7014701840945025e-01 2.2018767133093363e+01 2.2035600678331608e+01 7.6925436990825247e-01 2 0 0 -64 0 +P 96 211 1.7074748485127106e-02 3.1351296613888224e-01 1.0137555013396343e+01 1.0143376329482720e+01 1.3957000000000000e-01 1 0 0 0 0 +P 97 221 -2.4049267933068028e-01 -5.2371012095719160e-01 1.4536298958950805e+01 1.4558014904034785e+01 5.4744999999999999e-01 2 0 0 -65 0 +P 98 -211 -2.7609773133260801e-01 -5.7044915366057758e-01 6.8816596070175269e+00 6.9121893004977597e+00 1.3957000000000000e-01 1 0 0 0 0 +P 99 211 -3.2003753499352694e-01 5.9754365375792062e-01 1.9274593244220643e+01 1.9287013946098735e+01 1.3957000000000000e-01 1 0 0 0 0 +P 100 223 -3.4604842053761919e-01 3.1486430485676520e-01 6.2632131591575501e+01 6.2638853372545277e+01 7.8940172470456005e-01 2 0 0 -66 0 +P 101 111 2.2948981413776891e-02 5.5605194404662266e-02 1.1648969035652028e+00 1.1742329367414746e+00 1.3497999999999999e-01 2 0 0 -67 0 +P 102 111 -2.9172378240014335e-01 3.0693544637119191e-01 5.3046712918767929e+00 5.3232573908011185e+00 1.3497999999999999e-01 2 0 0 -68 0 +P 103 -213 3.2106496746452690e-01 2.1715005346640492e-01 1.8335690284947212e+01 1.8357740097185115e+01 8.1169353282945367e-01 2 0 0 -69 0 +P 104 211 -4.1566685736877346e-01 -2.4857973476376449e-01 7.6291201423937034e+00 7.6457520724142878e+00 1.3957000000000000e-01 1 0 0 0 0 +P 105 221 -2.5513573334891759e-01 3.0928061930424477e-01 4.8173473574429913e+01 4.8178252422360707e+01 5.4744999999999999e-01 2 0 0 -70 0 +P 106 223 -7.4215211736769937e-01 -2.4846169610654173e-01 2.0946282884976224e+01 2.0974976715559247e+01 7.6834792969024879e-01 2 0 0 -71 0 +P 107 113 2.4449291316315186e-01 -4.2766229921875031e-02 1.6107139368476123e+01 1.6128248722013453e+01 7.8667812261840997e-01 2 0 0 -72 0 +P 108 223 4.7207387017201917e-02 -3.2716583505686320e-01 2.1203916701555983e+00 2.2765517765484846e+00 7.5984283600187197e-01 2 0 0 -73 0 +P 109 -2212 9.4887946882507612e-01 4.1648238312682367e-01 3.2378432709009703e+00 3.5267278689504029e+00 9.3827000000000005e-01 1 0 0 0 0 +P 110 223 1.6600334088172941e-01 -4.1616381624079307e-01 2.6794215643440502e+00 2.8255103226053060e+00 7.7682638507277058e-01 2 0 0 -74 0 +P 111 2212 1.5707280006131925e+00 1.9053939806349487e-01 4.0977610121829917e+00 4.4917132165791367e+00 9.3827000000000005e-01 1 0 0 0 0 +P 112 221 -1.1579086126404439e+00 9.9177839411389315e-02 -7.1473619559073187e-01 1.4700809266311647e+00 5.4744999999999999e-01 2 0 0 -75 0 +P 113 -213 -1.0802536131659559e+00 -4.3742284486781746e-02 -8.7239930641296504e-01 1.8065991907361469e+00 1.1549280626638436e+00 2 0 0 -76 0 +P 114 -311 -1.2221059279354842e+00 7.8797526225771200e-02 -6.0729148702831515e-01 1.4547268913275133e+00 4.9767000000000000e-01 2 0 0 -77 0 +P 115 323 1.7061356136889678e+00 -2.9014219266128297e-02 -5.6916355500633795e+00 6.0003241000917313e+00 8.3512484945562682e-01 2 0 0 -78 0 +P 116 -213 5.0727937246066324e-01 -4.7763269349581511e-01 -1.4192395564892897e+00 1.7279116972796664e+00 6.9711732389306924e-01 2 0 0 -79 0 +P 117 113 1.8377335751287966e+00 3.7435212119187783e-01 -6.4021253801990987e+00 6.7571572558931825e+00 1.0745048130573336e+00 2 0 0 -80 0 +P 118 113 1.1595987846627662e+00 3.3781193392132147e-01 -1.7297809040002605e+00 2.3075689039392140e+00 9.3485080440263357e-01 2 0 0 -81 0 +P 119 211 2.7239080429789903e-01 -2.2711690982550835e-02 -1.2958981254113522e-01 3.3314542708521427e-01 1.3957000000000000e-01 1 0 0 0 0 +P 120 113 2.1267666995458101e-01 1.7395120076323969e-01 -1.6083970877226670e+00 1.8184518290999967e+00 8.0270509950570113e-01 2 0 0 -82 0 +P 121 221 -4.7135039096220882e-01 -1.2291206979554646e-01 -1.3887351759484287e+02 1.3887545092360841e+02 5.4744999999999999e-01 2 0 0 -83 0 +V -19 0 0 0 0 0 2 1 0 +P 34 21 -1.7804898284392838e+00 -2.5209727458596531e+00 -1.6027171333206104e+02 1.6030142713653206e+02 0 2 0 0 -19 0 +P 35 21 1.7804898284392838e+00 2.5209727458596531e+00 -3.9047632682122253e+00 4.9772104431420550e+00 0 2 0 0 -19 0 +P 122 92 0 0 -1.6417647660027328e+02 1.6527863757967410e+02 1.9055512885072925e+01 2 0 0 -20 0 +V -20 0 0 0 0 0 0 12 0 +P 123 -211 -6.0070155236750178e-01 3.1318832669430013e-01 -2.3722419674713313e+00 2.4710202387124545e+00 1.3957000000000000e-01 1 0 0 0 0 +P 124 -313 -5.5418962740188848e-01 5.6022873335349721e-01 -2.6963373036122778e+01 2.6989313170610149e+01 8.8235908753902637e-01 2 0 0 -84 0 +P 125 -3122 7.8192980547996760e-01 -1.0098791190461021e+00 -2.5752937819053422e+01 2.5808715935323384e+01 1.1156800000000000e+00 2 0 0 -85 0 +P 126 2112 -5.2911926360048755e-01 -7.0628422357488740e-01 -3.1365989018949879e+01 3.1392465075577743e+01 9.3957000000000002e-01 1 0 0 0 0 +P 127 -313 -6.6375047799976095e-01 -5.2431994602761678e-01 -3.0745812034728321e+01 3.0766432948134987e+01 7.4361453347412232e-01 2 0 0 -86 0 +P 128 323 -1.0010822452572499e-01 2.3468051859673056e-01 -2.0435238020895113e+01 2.0455561586261695e+01 8.7518582957059732e-01 2 0 0 -87 0 +P 129 -2212 7.6440809257191722e-01 -3.6826018672418046e-03 -3.6284282265723400e+00 3.8249412128597280e+00 9.3827000000000005e-01 1 0 0 0 0 +P 130 331 -2.1598897730547920e-01 3.8740437897781693e-01 -2.8085273570100782e+00 3.0002184788953326e+00 9.5747146947695072e-01 2 0 0 -88 0 +P 131 2114 3.7114271301432933e-01 1.6103528252915164e-01 -3.1873923166002567e+00 3.4301830299056255e+00 1.2012520814081056e+00 2 0 0 -89 0 +P 132 213 1.4340847993733810e-01 8.3134947437200180e-01 -7.5071475809012984e+00 7.6369252082162546e+00 1.1196668673315859e+00 2 0 0 -90 0 +P 133 111 2.5133273495763248e-01 1.9971281449766987e-01 -1.8807651137350476e+00 1.9127337413708869e+00 1.3497999999999999e-01 2 0 0 -91 0 +P 134 223 3.5163629723965795e-01 -4.4343363850532036e-01 -7.5286241082333785e+00 7.5901269538058527e+00 7.8074626769700195e-01 2 0 0 -92 0 +V -21 0 0 0 0 0 2 1 0 +P 36 21 -7.9835767352754738e-01 2.8310917836013409e+00 -4.9511789036910145e+01 4.9599089803115852e+01 0 2 0 0 -21 0 +P 37 21 7.9835767352754738e-01 -2.8310917836013409e+00 -3.3864087660105230e+02 3.3865365162772304e+02 0 2 0 0 -21 0 +P 135 92 0 0 -3.8815266563796246e+02 3.8825274143083885e+02 8.8147255604432342e+00 2 0 0 -22 0 +V -22 0 0 0 0 0 0 9 0 +P 136 2114 -1.4960565618058827e-01 -3.7983243334584205e-01 -6.0084225372661976e+01 6.0097896107156856e+01 1.2150404701074575e+00 2 0 0 -93 0 +P 137 -211 2.9811563003694558e-01 5.4783511804293061e-01 -4.4437689646128113e+01 4.4442285462337956e+01 1.3957000000000000e-01 1 0 0 0 0 +P 138 -3112 2.3307186571895475e-01 1.4326900914430873e-01 -2.7582276932951583e+01 2.7609612671372336e+01 1.1974400000000001e+00 2 0 0 -94 0 +P 139 -323 -2.7304396428318978e-01 8.3408142249412254e-01 -4.6194743956008772e+01 4.6211892601868342e+01 9.0244327224705545e-01 2 0 0 -95 0 +P 140 113 -1.2438472963311790e-01 -5.3617617384831562e-01 -3.5265788970736466e+01 3.5278430062698547e+01 7.6733272432928068e-01 2 0 0 -96 0 +P 141 321 1.7857873999080959e-01 3.3202431338286048e-01 -2.0117667576333965e+01 2.0127253170339291e+01 4.9359999999999998e-01 1 0 0 0 0 +P 142 -321 -8.8311177964749923e-02 -9.5005248461867819e-01 -1.2922147930037769e+02 1.2922594457819073e+02 4.9359999999999998e-01 1 0 0 0 0 +P 143 111 -1.3174275413026160e-01 -1.9950654911601931e-01 -4.1534180411145236e+00 4.1624824373277072e+00 1.3497999999999999e-01 2 0 0 -97 0 +P 144 211 5.7322046445197547e-02 2.0835777786463264e-01 -2.1095375841649318e+01 2.1096944339547068e+01 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 145 -321 4.7317159073082486e-03 -6.3950612894738934e-01 -1.0249740682428344e+01 1.0281527877466626e+01 4.9359999999999998e-01 1 0 0 0 0 +P 146 211 -2.1513185186894951e-01 5.5253778360839806e-02 -1.6231025987568579e+00 1.6441643849393461e+00 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 147 -211 -4.0628598070699080e-02 -3.7486371473267571e-01 -3.2698973194384027e+00 3.2945229931167308e+00 1.3957000000000000e-01 1 0 0 0 0 +P 148 211 -2.2213787884234046e-01 -1.9035086479588445e-01 -8.6925041161229846e+00 8.6985450670017315e+00 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 0 0 0 0 0 2 0 +P 149 2112 -5.0305378851233962e-01 -3.5001326226330570e-01 -4.8922578174780284e+01 4.8935437256146848e+01 9.3957000000000002e-01 1 0 0 0 0 +P 150 111 1.9439971445648394e-01 -1.0750830516930852e-01 -1.1517209099759532e+01 1.1520142114255574e+01 1.3497999999999999e-01 2 0 0 -98 0 +V -26 0 0 0 0 0 0 3 0 +P 151 211 5.5467664486743833e-02 -8.8581067293380639e-02 -8.8067473190807988e+00 8.8084732726121882e+00 1.3957000000000000e-01 1 0 0 0 0 +P 152 -211 3.2763508143091863e-01 2.6975363668793567e-01 -2.7798223999518537e+01 2.7801813773266648e+01 1.3957000000000000e-01 1 0 0 0 0 +P 153 111 3.7624470113100927e-01 -2.2697476149644069e-01 -3.9173658724607755e+01 3.9176355561612958e+01 1.3497999999999999e-01 2 0 0 -99 0 +V -27 0 0 0 0 0 0 2 0 +P 154 -3122 -3.4471300641577951e-01 -9.3043940044976126e-02 -1.5322034894383646e+02 1.5322482682830801e+02 1.1156800000000000e+00 2 0 0 -100 0 +P 155 211 -1.2658824667944718e-01 5.6045897494217310e-02 -9.1400235910024410e+00 9.1421374281840926e+00 1.3957000000000000e-01 1 0 0 0 0 +V -28 0 0 0 0 0 0 1 0 +P 156 310 3.9338164815186982e-01 1.5120222274855744e-01 -1.5841292434872400e+02 1.5841426667878343e+02 4.9767000000000000e-01 2 0 0 -101 0 +V -29 0 0 0 0 0 0 2 0 +P 157 211 -4.1204788433400203e+00 1.3492927461039024e+00 3.8318172798207833e+01 3.8562945727619358e+01 1.3957000000000000e-01 1 0 0 0 0 +P 158 111 -4.8159128705046694e-01 1.3448094949075709e-01 5.8718796761526999e+00 5.8946760576942649e+00 1.3497999999999999e-01 2 0 0 -102 0 +V -30 0 3.6262632367244094e-07 -1.4847823601754692e-07 8.4887296679066190e-06 8.5293987828113712e-06 0 2 0 +P 159 22 9.2329242767276706e-02 1.8864949736969224e-02 1.1925858469138277e+00 1.1963032966843019e+00 0 1 0 0 0 0 +P 160 22 -2.5631944427193760e-02 -4.6174321832131868e-02 3.6873305970836540e-01 3.7249581728345482e-01 0 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 161 -211 -1.1341007829402066e+00 6.0266876159191429e-01 2.0286919317455499e+01 2.0328009479531275e+01 1.3957000000000000e-01 1 0 0 0 0 +P 162 111 -1.1968527011163542e-01 3.3035230632374672e-02 2.8142194490767198e+00 2.8201891068342042e+00 1.3497999999999999e-01 2 0 0 -103 0 +V -32 0 0 0 0 0 0 2 0 +P 163 22 -3.4376924339807431e+00 5.6473113570386968e-01 3.1590143475639518e+01 3.1781658473682139e+01 0 1 0 0 0 0 +P 164 111 -1.5341100192305239e+00 6.7694638573483645e-01 1.2781020070891630e+01 1.2891254539927354e+01 1.3497999999999999e-01 2 0 0 -104 0 +V -33 0 -2.7789154446939715e+01 -2.5850833391285808e+00 3.5434507819968331e+02 3.5855517402969622e+02 0 2 0 +P 165 2112 -5.1909013901515177e-01 -3.4217945727699796e-02 5.8209743622944101e+00 5.9192195221685608e+00 9.3957000000000002e-01 1 0 0 0 0 +P 166 -211 -1.8675959006408943e-01 -3.1443655385611960e-02 3.1794570083460498e+00 3.1881490712897551e+00 1.3957000000000000e-01 1 0 0 0 0 +V -34 0 0 0 0 0 0 2 0 +P 167 -3122 -1.3578313501585406e+00 -5.6110171407454090e-01 4.7532121296764123e+00 5.0986575214573620e+00 1.1156800000000000e+00 2 0 0 -105 0 +P 168 22 -8.9088999710365789e-03 -4.2747657113092849e-02 3.1710490820171716e-01 3.2009725630341157e-01 0 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 169 -211 -2.3446543659562806e+00 -6.4929378742615518e-01 2.2395655634208214e+00 3.3097009254536083e+00 1.3957000000000000e-01 1 0 0 0 0 +P 170 111 -1.1249397207202128e+00 1.4237079142511824e-01 1.1663329747194109e+00 1.6322717377394349e+00 1.3497999999999999e-01 2 0 0 -106 0 +V -36 0 -6.7418093062859160e-05 -1.9089901041571765e-04 1.6493397696685196e-04 2.6420265438809298e-04 0 2 0 +P 171 22 -2.1187394174684773e-01 -5.9635452415112900e-01 5.5296385850315732e-01 8.4041556058747868e-01 0 1 0 0 0 0 +P 172 22 -1.4766384618138196e-02 -4.5393292462897188e-02 1.4969497191911496e-03 4.7758119453917933e-02 0 1 0 0 0 0 +V -37 0 0 0 0 0 0 2 0 +P 173 -211 -4.0255782642450305e-02 -2.7831301333626307e-01 3.9015845799110332e-01 5.0078145799386653e-01 1.3957000000000000e-01 1 0 0 0 0 +P 174 211 -4.6264467692447137e-01 2.5591075993571022e-01 3.5889789046657225e-02 5.4799477734302793e-01 1.3957000000000000e-01 1 0 0 0 0 +V -38 0 0 0 0 0 0 2 0 +P 175 211 7.8035236055542037e-02 -5.6695538610673002e-02 6.0047941576510799e-01 6.2398653496866729e-01 1.3957000000000000e-01 1 0 0 0 0 +P 176 111 -1.2785553127783380e+00 1.1884783629086837e-01 1.0045692970771025e+00 1.6359118463580851e+00 1.3497999999999999e-01 2 0 0 -107 0 +V -39 0 0 0 0 0 0 2 0 +P 177 -211 1.2627572705779661e-01 -6.1331993051647760e-01 2.5729317570399224e-01 6.9122099185177921e-01 1.3957000000000000e-01 1 0 0 0 0 +P 178 111 -1.5555177445162185e-01 8.8890488378568028e-02 -1.6380203759515596e-01 2.7775633454442306e-01 1.3497999999999999e-01 2 0 0 -108 0 +V -40 0 0 0 0 0 0 2 0 +P 179 211 3.5639704325469085e-01 -6.3423964972341818e-01 -2.4163817735466017e-01 7.7919675267370847e-01 1.3957000000000000e-01 1 0 0 0 0 +P 180 111 1.3101330793119204e-01 9.0416991608367872e-02 2.7437988898070045e-02 2.1050454356462622e-01 1.3497999999999999e-01 2 0 0 -109 0 +V -41 0 0 0 0 0 0 1 0 +P 181 310 4.6391648249289439e+00 8.7190463208380886e-01 -2.7041866263032449e-01 4.7542475369195882e+00 4.9767000000000000e-01 2 0 0 -110 0 +V -42 0 0 0 0 0 0 2 0 +P 182 -321 1.9525512673653487e+00 -5.3227249651774589e-01 -4.9906661042476869e-01 2.1420735057135949e+00 4.9359999999999998e-01 1 0 0 0 0 +P 183 111 2.9874439049285023e-01 -2.8475562149392120e-01 -1.9024244903122581e-01 4.7407358567708918e-01 1.3497999999999999e-01 2 0 0 -111 0 +V -43 0 0 0 0 0 0 2 0 +P 184 321 4.1462756309890736e+00 3.2192760120503588e-01 -6.3518186464597759e-01 4.2358394622231152e+00 4.9359999999999998e-01 1 0 0 0 0 +P 185 111 2.8873808576949571e+00 -5.7210969847366372e-02 -1.3031788905640951e-01 2.8940358783301670e+00 1.3497999999999999e-01 2 0 0 -112 0 +V -44 0 0 0 0 0 0 2 0 +P 186 -321 7.4632910485972637e-01 -9.0683090050122783e-01 -1.0937761687495565e+01 1.1011703823991564e+01 4.9359999999999998e-01 1 0 0 0 0 +P 187 211 -7.5085744445380881e-02 -9.4925952617013309e-02 -1.1136929490878451e+00 1.1289112344410193e+00 1.3957000000000000e-01 1 0 0 0 0 +V -45 0 5.4870443770135152e-04 -6.1180197566582301e-04 -7.7571407249639283e-03 7.8006513337980929e-03 0 2 0 +P 188 22 1.6307255770237250e+00 -1.7467424291525475e+00 -2.2610684940145120e+01 2.2736610312090640e+01 0 1 0 0 0 0 +P 189 22 2.5002754365000407e-01 -3.5028539841192269e-01 -3.9778855607587129e+00 4.0010982451593105e+00 0 1 0 0 0 0 +V -46 0 0 0 0 0 0 2 0 +P 190 -211 -3.4771060598395914e-01 -2.2516011178622557e-02 -4.1162097602971910e+00 4.1332883049624050e+00 1.3957000000000000e-01 1 0 0 0 0 +P 191 211 2.3702088705655167e-01 -4.9089442089346247e-01 -4.8952940415866841e+00 4.9275287692574148e+00 1.3957000000000000e-01 1 0 0 0 0 +V -47 0 0 0 0 0 0 3 0 +P 192 211 7.5704020926990898e-02 1.9439819800615879e-01 -3.0400693063104991e+00 3.0504135670829546e+00 1.3957000000000000e-01 1 0 0 0 0 +P 193 -211 1.2388078103698906e-02 -1.3418403734202855e-01 -2.2669176314964452e+00 2.2752042003402604e+00 1.3957000000000000e-01 1 0 0 0 0 +P 194 111 -2.9481615955898893e-01 1.1357919037439569e-01 -7.8235932090650602e+00 7.8311331939734075e+00 1.3497999999999999e-01 2 0 0 -113 0 +V -48 0 0 0 0 0 0 2 0 +P 195 -211 -2.5840149143461150e-01 4.9160936948202588e-01 -7.6888525573623507e+00 7.7101481527072950e+00 1.3957000000000000e-01 1 0 0 0 0 +P 196 211 -1.8300377467698797e-01 8.5819329580133663e-02 -1.7124223317576995e+01 1.7125984916320089e+01 1.3957000000000000e-01 1 0 0 0 0 +V -49 0 0 0 0 0 0 2 0 +P 197 321 -1.0059304477724786e+00 1.6154958423579500e+00 -4.8713814360191492e+01 4.8753472423629795e+01 4.9359999999999998e-01 1 0 0 0 0 +P 198 111 -8.6514329764970965e-01 1.2820801404340156e+00 -5.0363263569510103e+01 5.0387188246461093e+01 1.3497999999999999e-01 2 0 0 -114 0 +V -50 0 0 0 0 0 0 2 0 +P 199 -311 -2.1609164566645891e+00 -2.4014342910428788e+00 -4.6611982375210808e+00 5.6930563869726507e+00 4.9767000000000000e-01 2 0 0 -115 0 +P 200 -211 -7.8919655988042958e-02 -3.2709922664563601e-02 -2.0207531257067607e-01 2.6002397580325015e-01 1.3957000000000000e-01 1 0 0 0 0 +V -51 0 -1.5071098302075203e-05 -2.8039888295285812e-05 -3.9402786753742279e-04 3.9645787334712418e-04 0 2 0 +P 201 22 -1.6628700951457295e-03 2.7466545158185005e-02 -1.7085866096558761e-01 1.7306027350849057e-01 0 1 0 0 0 0 +P 202 22 -6.5865805639046926e-02 -1.5310413880685866e-01 -1.5946516929484500e+00 1.6033381438410388e+00 0 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 203 -211 2.0587461757273046e-01 1.6855553016750627e-01 -2.1998932359118348e+00 2.2203164997858775e+00 1.3957000000000000e-01 1 0 0 0 0 +P 204 211 -5.2333999937162846e-02 4.5462768293088435e-01 -7.9512134694810550e+00 7.9655948051475409e+00 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 -5.1634935389906184e-06 -1.5909755539324514e-05 -2.4640764257625601e-04 2.4701009158988296e-04 0 2 0 +P 205 22 -1.9369005581290913e-02 -2.6993645287572443e-01 -3.6129505223448715e+00 3.6230722217312223e+00 0 1 0 0 0 0 +P 206 22 -1.4734769876723883e-01 -2.4375103224998654e-01 -4.3429556459108172e+00 4.3522855665045208e+00 0 1 0 0 0 0 +V -54 0 1.6507694663061706e-06 -2.3329977412751538e-05 -1.0644109517188483e-03 1.0646795018213276e-03 0 2 0 +P 207 22 3.2699543974523036e-04 -1.6531900817126896e-01 -5.2016361454811575e+00 5.2042625867037895e+00 0 1 0 0 0 0 +P 208 22 4.4457545443559635e-02 -4.6761148186613616e-01 -2.3675294738488155e+01 2.3679953925749196e+01 0 1 0 0 0 0 +V -55 0 0 0 0 0 0 2 0 +P 209 211 8.3079894702839219e-01 1.5302975509736045e+00 -3.5793639413666205e+02 3.5794065676425424e+02 1.3957000000000000e-01 1 0 0 0 0 +P 210 111 5.4263936381458211e-01 4.6734157035509338e-01 -2.1145862994016593e+02 2.1145988570269063e+02 1.3497999999999999e-01 2 0 0 -116 0 +V -56 0 0 0 0 0 0 2 0 +P 211 321 1.0977767389319530e+00 3.1868442334370795e-01 -2.4770380304560078e+02 2.4770693239742806e+02 4.9359999999999998e-01 1 0 0 0 0 +P 212 -211 1.6804735433903449e-02 -4.2423390924212670e-02 -8.0724325227349169e+01 8.0724458780093229e+01 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 2 0 +P 213 211 4.8735411154823403e-02 -4.3391527553418574e-01 5.7573302557377576e+02 5.7573320806926313e+02 1.3957000000000000e-01 1 0 0 0 0 +P 214 -211 2.4482588483854287e-01 7.7909997263942679e-04 1.0140498242515802e+03 1.0140498634114431e+03 1.3957000000000000e-01 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 215 -211 2.2644715345669786e-01 -1.8312403295315868e-01 3.1678254960143175e+02 3.1678271421353344e+02 1.3957000000000000e-01 1 0 0 0 0 +P 216 211 -1.9928619525354679e-01 -2.2203313483144810e-01 1.2997895205791938e+03 1.2997895623142140e+03 1.3957000000000000e-01 1 0 0 0 0 +V -59 0 -1.5147243004817694e-05 1.0094785584425737e-04 8.2958988283135748e-02 8.2959052302129133e-02 0 2 0 +P 217 22 -9.8281010852660555e-02 2.5143009431644470e-01 2.1253074378795648e+02 2.1253091523661075e+02 0 1 0 0 0 0 +P 218 22 -4.5575709842319061e-02 7.0729404434862853e-01 5.7534913658297194e+02 5.7534957313687289e+02 0 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 219 -2212 -3.3519434428000028e-01 -4.0216052205848135e-01 5.6696550298238196e+02 5.6696652106715453e+02 9.3827000000000005e-01 1 0 0 0 0 +P 220 111 -3.4003331637259090e-02 -4.0291788547051194e-01 2.4175947776846803e+02 2.4175985359346117e+02 1.3497999999999999e-01 2 0 0 -117 0 +V -61 0 0 0 0 0 0 2 0 +P 221 2112 -1.5928388612196823e-01 -2.9344070178772974e-01 5.2068168002132694e+01 5.2077714904602516e+01 9.3957000000000002e-01 1 0 0 0 0 +P 222 111 6.0767090723995811e-02 1.5192470187574267e-01 8.1321949629446006e+00 8.1349608646936105e+00 1.3497999999999999e-01 2 0 0 -118 0 +V -62 0 0 0 0 0 0 3 0 +P 223 -211 -2.0855792861887895e-01 3.0026778285653749e-01 1.2281199215305971e+01 1.2287432242008229e+01 1.3957000000000000e-01 1 0 0 0 0 +P 224 211 1.8322216671360106e-01 8.4641186236416213e-02 3.0390432107555543e+00 3.0489338980243836e+00 1.3957000000000000e-01 1 0 0 0 0 +P 225 111 -4.1465490166762591e-02 -3.5765910717375442e-02 1.9984446344580136e+00 2.0037462775107624e+00 1.3497999999999999e-01 2 0 0 -119 0 +V -63 0 0 0 0 0 0 3 0 +P 226 211 2.5229722362814772e-01 7.8453898573060024e-02 2.0068040102688629e+00 2.0289285408271467e+00 1.3957000000000000e-01 1 0 0 0 0 +P 227 -211 -4.0632702319755090e-02 -1.2069487246477217e-01 6.9918612236714750e-01 7.2426465283617236e-01 1.3957000000000000e-01 1 0 0 0 0 +P 228 111 -1.0286168933441908e-01 -7.6499887889112148e-02 3.1988902541620599e+00 3.2043019861668447e+00 1.3497999999999999e-01 2 0 0 -120 0 +V -64 0 0 0 0 0 0 3 0 +P 229 -211 -1.6757424870507753e-01 -2.0645190227526286e-01 8.7703893221804687e+00 8.7755291671955220e+00 1.3957000000000000e-01 1 0 0 0 0 +P 230 211 9.8968590493889952e-02 -2.6775289950262515e-01 5.1595877232286771e+00 5.1693627901017445e+00 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 -4.4664340621416956e-02 1.0405778336843771e-01 8.0887900876842203e+00 8.0907087210343445e+00 1.3497999999999999e-01 2 0 0 -121 0 +V -65 0 0 0 0 0 0 3 0 +P 232 22 4.3201839353883581e-02 2.1195937699919901e-02 3.1454940200310616e-01 3.1820903978210507e-01 0 1 0 0 0 0 +P 233 211 -1.0483563972662920e-01 -3.3980469291825055e-01 5.8420066258245038e+00 5.8544836614140072e+00 1.3957000000000000e-01 1 0 0 0 0 +P 234 -211 -1.7885887895793467e-01 -2.0510136573886101e-01 8.3797429311231948e+00 8.3853222028386707e+00 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 3 0 +P 235 211 -6.2449587517871177e-02 -1.5860535579672613e-01 1.4572062057648969e+01 1.4573727320309697e+01 1.3957000000000000e-01 1 0 0 0 0 +P 236 -211 -6.9803021048007466e-02 1.9955448295151124e-01 3.0748651976026064e+01 3.0749695487615565e+01 1.3957000000000000e-01 1 0 0 0 0 +P 237 111 -2.1379581197174061e-01 2.7391517770198009e-01 1.7311417557900477e+01 1.7315430564620016e+01 1.3497999999999999e-01 2 0 0 -122 0 +V -67 0 9.9012612323046163e-06 2.3990675043343193e-05 5.0259087072063646e-04 5.0661887099154334e-04 0 2 0 +P 238 22 7.2226354217322569e-02 2.8177786734834089e-02 9.0357006333380763e-01 9.0689001166727001e-01 0 1 0 0 0 0 +P 239 22 -4.9277372803545674e-02 2.7427407669828176e-02 2.6132684023139513e-01 2.6734292507420448e-01 0 1 0 0 0 0 +V -68 0 -1.8040088071645551e-05 1.8980771602814036e-05 3.2803886097063062e-04 3.2918821827960463e-04 0 2 0 +P 240 22 -2.6219607110444487e-01 2.0044463067522406e-01 3.6450568212061958e+00 3.6599677675480899e+00 0 1 0 0 0 0 +P 241 22 -2.9527711295698492e-02 1.0649081569596784e-01 1.6596144706705973e+00 1.6632896232530285e+00 0 1 0 0 0 0 +V -69 0 0 0 0 0 0 2 0 +P 242 -211 -1.5779048821080130e-01 2.4427658010237480e-01 1.1215533923889044e+01 1.1220171561458509e+01 1.3957000000000000e-01 1 0 0 0 0 +P 243 111 4.7885545567532817e-01 -2.7126526635969879e-02 7.1201563610581680e+00 7.1375685357266061e+00 1.3497999999999999e-01 2 0 0 -123 0 +V -70 0 0 0 0 0 0 3 0 +P 244 -211 1.4447474134589635e-02 1.0331254294609675e-01 1.3021878060525166e+01 1.3023043815449808e+01 1.3957000000000000e-01 1 0 0 0 0 +P 245 211 -2.2533489453973266e-01 6.7750325072043191e-02 1.3920844135234320e+01 1.3923532136050548e+01 1.3957000000000000e-01 1 0 0 0 0 +P 246 111 -4.4248312943774556e-02 1.3821775128610481e-01 2.1230751378670416e+01 2.1231676470860343e+01 1.3497999999999999e-01 2 0 0 -124 0 +V -71 0 0 0 0 0 0 3 0 +P 247 -211 4.3968497828360605e-02 -8.9581304918981322e-02 2.7716342830236234e+00 2.7769397585695201e+00 1.3957000000000000e-01 1 0 0 0 0 +P 248 211 -3.0260312919721499e-01 -2.2696578300232692e-01 6.5963063148826535e+00 6.6086170190982152e+00 1.3957000000000000e-01 1 0 0 0 0 +P 249 111 -4.8351748599884498e-01 6.8085391814766527e-02 1.1578342287069946e+01 1.1589419937891513e+01 1.3497999999999999e-01 2 0 0 -125 0 +V -72 0 0 0 0 0 0 2 0 +P 250 211 2.7918293477948802e-01 -1.1595431069407330e-01 1.5372053925904542e+01 1.5375659667118606e+01 1.3957000000000000e-01 1 0 0 0 0 +P 251 -211 -3.4690021616336185e-02 7.3188080772198266e-02 7.3508544257158037e-01 7.5258905489484496e-01 1.3957000000000000e-01 1 0 0 0 0 +V -73 0 0 0 0 0 0 3 0 +P 252 211 6.9604979207269713e-02 6.4059599095633635e-02 3.4643965893791207e-01 3.8529041975080902e-01 1.3957000000000000e-01 1 0 0 0 0 +P 253 -211 -1.7967466933591134e-01 -5.9481031195502451e-02 9.5730795988163619e-01 9.8576837787879446e-01 1.3957000000000000e-01 1 0 0 0 0 +P 254 111 1.5727707714584355e-01 -3.3174440295699437e-01 8.1664405133604978e-01 9.0549297891888092e-01 1.3497999999999999e-01 2 0 0 -126 0 +V -74 0 0 0 0 0 0 3 0 +P 255 -211 -2.6768527911412210e-02 -3.1628709299904190e-01 1.4372749842883532e+00 1.4785104817502697e+00 1.3957000000000000e-01 1 0 0 0 0 +P 256 211 5.8658587383824110e-02 4.7066254481115677e-02 1.1853313384479452e-01 1.9795441622710730e-01 1.3957000000000000e-01 1 0 0 0 0 +P 257 111 1.3411328140931753e-01 -1.4694297772286691e-01 1.1236134462109026e+00 1.1490454246279296e+00 1.3497999999999999e-01 2 0 0 -127 0 +V -75 0 0 0 0 0 0 3 0 +P 258 111 -2.9382405415384755e-01 1.5899008760270572e-01 -2.7730141991355345e-01 4.5467142052408799e-01 1.3497999999999999e-01 2 0 0 -128 0 +P 259 111 -2.9461008023809460e-01 7.9261822040132043e-03 -1.9522454331244052e-01 3.7840473894202054e-01 1.3497999999999999e-01 2 0 0 -129 0 +P 260 111 -5.6947447824850161e-01 -6.7738430395329619e-02 -2.4221023236473779e-01 6.3700476716505527e-01 1.3497999999999999e-01 2 0 0 -130 0 +V -76 0 0 0 0 0 0 2 0 +P 261 -211 -1.1998250888346944e+00 2.2147907356684138e-01 -5.3025571611185474e-01 1.3376412572863117e+00 1.3957000000000000e-01 1 0 0 0 0 +P 262 111 1.1957147566873839e-01 -2.6522135805362312e-01 -3.4214359030111036e-01 4.6895793344983716e-01 1.3497999999999999e-01 2 0 0 -131 0 +V -77 0 0 0 0 0 0 1 0 +P 263 310 -1.2221059279354842e+00 7.8797526225771200e-02 -6.0729148702831515e-01 1.4547268913275146e+00 4.9767000000000000e-01 2 0 0 -132 0 +V -78 0 0 0 0 0 0 2 0 +P 264 311 6.1455156080652751e-01 -1.6499131271689300e-02 -2.1080593895117539e+00 2.2515629373462178e+00 4.9767000000000000e-01 2 0 0 -133 0 +P 265 211 1.0915840528824405e+00 -1.2515087994438999e-02 -3.5835761605516261e+00 3.7487611627454607e+00 1.3957000000000000e-01 1 0 0 0 0 +V -79 0 0 0 0 0 0 2 0 +P 266 -211 1.7582177056811502e-01 -1.1719437561076100e-01 -3.7786363095881875e-02 2.5603790894419687e-01 1.3957000000000000e-01 1 0 0 0 0 +P 267 111 3.3145760189254819e-01 -3.6043831788505409e-01 -1.3814531933934078e+00 1.4718737883354707e+00 1.3497999999999999e-01 2 0 0 -134 0 +V -80 0 0 0 0 0 0 2 0 +P 268 -211 1.4142297312131940e+00 3.0559262664089600e-02 -3.1393293993058156e+00 3.4461352938368117e+00 1.3957000000000000e-01 1 0 0 0 0 +P 269 211 4.2350384391560253e-01 3.4379285852778824e-01 -3.2627959808932827e+00 3.3110219620563313e+00 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 270 211 2.2262437178167788e-01 2.2164126913244933e-01 -1.1281504278306380e+00 1.1793598415277167e+00 1.3957000000000000e-01 1 0 0 0 0 +P 271 -211 9.3697441288108851e-01 1.1617066478887220e-01 -6.0163047616962251e-01 1.1282090624115000e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 0 0 0 0 0 2 0 +P 272 -211 2.3127343736279543e-01 4.0719281310637140e-01 -1.3765569924613603e+00 1.4607129520440862e+00 1.3957000000000000e-01 1 0 0 0 0 +P 273 211 -1.8596767408214455e-02 -2.3324161234313170e-01 -2.3184009526130650e-01 3.5773887705591995e-01 1.3957000000000000e-01 1 0 0 0 0 +V -83 0 0 0 0 0 0 3 0 +P 274 111 -1.4346763318903757e-01 1.0781369477650569e-02 -5.8080541309671737e+01 5.8080876350349484e+01 1.3497999999999999e-01 2 0 0 -135 0 +P 275 111 -2.6461917860165884e-01 -1.6666569637677223e-01 -6.3921636890275806e+01 6.3922544404120060e+01 1.3497999999999999e-01 2 0 0 -136 0 +P 276 111 -6.3263579171512346e-02 3.2972257103575209e-02 -1.6871339394895315e+01 1.6872030169138945e+01 1.3497999999999999e-01 2 0 0 -137 0 +V -84 0 0 0 0 0 0 2 0 +P 277 -321 -1.9241511971658415e-01 6.8333986075057515e-02 -1.5062462347721974e+01 1.5071931065676043e+01 4.9359999999999998e-01 1 0 0 0 0 +P 278 211 -3.6177450768530445e-01 4.9189474727843974e-01 -1.1900910688400808e+01 1.1917382104934106e+01 1.3957000000000000e-01 1 0 0 0 0 +V -85 0 3.5965274506955190e+01 -4.6449923613080180e+01 -1.1845199806065368e+03 1.1870855245326934e+03 0 2 0 +P 279 -2212 7.0831682930111939e-01 -9.1340702772143101e-01 -2.1316092442071589e+01 2.1368017519667180e+01 9.3827000000000005e-01 1 0 0 0 0 +P 280 211 7.3612976178848225e-02 -9.6472091324671175e-02 -4.4368453769818323e+00 4.4406984156562039e+00 1.3957000000000000e-01 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 281 -321 -4.4123751089775892e-01 -4.2768077428762763e-01 -1.7597613328393198e+01 1.7615255808570037e+01 4.9359999999999998e-01 1 0 0 0 0 +P 282 211 -2.2251296710200200e-01 -9.6639171739989163e-02 -1.3148198706335124e+01 1.3151177139564950e+01 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 283 311 1.1053483946443671e-01 2.3990656324443796e-01 -9.0517810821029947e+00 9.0692992726583253e+00 4.9767000000000000e-01 2 0 0 -138 0 +P 284 211 -2.1064306399016169e-01 -5.2260446477074120e-03 -1.1383456938792117e+01 1.1386262313603362e+01 1.3957000000000000e-01 1 0 0 0 0 +V -88 0 0 0 0 0 0 2 0 +P 285 22 -3.5874584636615608e-02 1.0662985418752213e-01 -2.4754642143430844e-01 2.7191201222423805e-01 0 1 0 0 0 0 +P 286 113 -1.8011439266886359e-01 2.8077452479029485e-01 -2.5609809355757700e+00 2.7283064666710946e+00 8.7963475117748524e-01 2 0 0 -139 0 +V -89 0 0 0 0 0 0 2 0 +P 287 2212 3.2237536636423531e-01 1.2209256343323748e-02 -2.9549510500184519e+00 3.1170757519964258e+00 9.3827000000000005e-01 1 0 0 0 0 +P 288 -211 4.8767346650093954e-02 1.4882602618582788e-01 -2.3244126658180475e-01 3.1310727790919962e-01 1.3957000000000000e-01 1 0 0 0 0 +V -90 0 0 0 0 0 0 2 0 +P 289 211 9.9155276979379939e-02 6.7357724758643656e-02 -5.1838620433734066e+00 5.1871258228102608e+00 1.3957000000000000e-01 1 0 0 0 0 +P 290 111 4.4253202957958163e-02 7.6399174961335814e-01 -2.3232855375278914e+00 2.4497993854059930e+00 1.3497999999999999e-01 2 0 0 -140 0 +V -91 0 9.6383408543088094e-06 7.6587722623014910e-06 -7.2125325163580596e-05 7.3351287749992734e-05 0 2 0 +P 291 22 -1.2269390628257775e-02 -2.5957213503575527e-04 -1.5849465772618179e-01 1.5896905941667261e-01 0 1 0 0 0 0 +P 292 22 2.6360212558589025e-01 1.9997238663270561e-01 -1.7222704560088657e+00 1.7537646819542143e+00 0 1 0 0 0 0 +V -92 0 0 0 0 0 0 3 0 +P 293 211 2.4603887976188546e-01 -2.1260457138838254e-01 -2.7393540734610169e+00 2.7621144724317976e+00 1.3957000000000000e-01 1 0 0 0 0 +P 294 -211 1.6587673815884174e-01 -1.3851309640486942e-01 -4.3161880209091308e+00 4.3238477987641240e+00 1.3957000000000000e-01 1 0 0 0 0 +P 295 111 -6.0279320681069205e-02 -9.2315970712068443e-02 -4.7308201386323090e-01 5.0416468260993141e-01 1.3497999999999999e-01 2 0 0 -141 0 +V -93 0 0 0 0 0 0 2 0 +P 296 2112 7.4171566481101445e-02 -3.8781235549565807e-01 -4.8819322937294800e+01 4.8829959898459137e+01 9.3957000000000002e-01 1 0 0 0 0 +P 297 111 -2.2377722266168973e-01 7.9799221498159933e-03 -1.1264902435367182e+01 1.1267936208697719e+01 1.3497999999999999e-01 2 0 0 -142 0 +V -94 0 5.0154104234163355e-01 3.0829670479462740e-01 -5.9353555524325564e+01 5.9412378560295316e+01 0 2 0 +P 298 -2112 3.2040808606255766e-01 2.1628229926567114e-01 -2.5231223973342530e+01 2.5251671119996491e+01 9.3957000000000002e-01 1 0 0 0 0 +P 299 211 -8.7336220343602930e-02 -7.3013290121362429e-02 -2.3510529596090493e+00 2.3579415513758439e+00 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 300 -311 -2.8878157481450778e-01 4.5737313947049302e-01 -1.9055191875712950e+01 1.9069362806234462e+01 4.9767000000000000e-01 2 0 0 -143 0 +P 301 -211 1.5737610531318013e-02 3.7670828302362941e-01 -2.7139552080295822e+01 2.7142529795633884e+01 1.3957000000000000e-01 1 0 0 0 0 +V -96 0 0 0 0 0 0 2 0 +P 302 -211 2.0611775579728736e-01 -5.2708370551699557e-01 -2.3061051418638730e+01 2.3068417242625809e+01 1.3957000000000000e-01 1 0 0 0 0 +P 303 211 -3.3050248543040528e-01 -9.0924683313200385e-03 -1.2204737552097738e+01 1.2210012820072743e+01 1.3957000000000000e-01 1 0 0 0 0 +V -97 0 -7.4282491859497750e-06 -1.1249076815240985e-05 -2.3418839530493129e-04 2.3469948674397263e-04 0 2 0 +P 304 22 -1.3782377984232405e-01 -1.7354840433172641e-01 -4.0358135637561290e+00 4.0418938091362637e+00 0 1 0 0 0 0 +P 305 22 6.0810257120624319e-03 -2.5958144784292918e-02 -1.1760447735839455e-01 1.2058862819144350e-01 0 1 0 0 0 0 +V -98 0 1.1329499597191234e-05 -6.2655200061162853e-06 -6.7121608805501367e-04 6.7138702239328879e-04 0 2 0 +P 306 22 8.3512273166797750e-04 -7.8008196154925541e-03 -3.4118096618637224e+00 3.4118186820233136e+00 0 1 0 0 0 0 +P 307 22 1.9356459172481594e-01 -9.9707485553815978e-02 -8.1053994378958087e+00 8.1083234322322628e+00 0 1 0 0 0 0 +V -99 0 2.0041229932726539e-04 -1.2090146041663490e-04 -2.0866428136954773e-02 2.0867864647033187e-02 0 2 0 +P 308 22 3.4255432656942236e-01 -2.0736141795750798e-01 -3.0756055443747755e+01 3.0758662010614099e+01 0 1 0 0 0 0 +P 309 22 3.3690374561586876e-02 -1.9613343538932699e-02 -8.4176032808599981e+00 8.4176935509988660e+00 0 1 0 0 0 0 +V -100 0 -1.4655426294584716e+01 -3.9557503781629491e+00 -6.5141421674948333e+03 6.5143325441403531e+03 0 2 0 +P 310 -2212 -2.9021401161431271e-01 -1.7933607075051763e-01 -1.2972263526808578e+02 1.2972647700869905e+02 9.3827000000000005e-01 1 0 0 0 0 +P 311 211 -5.4498994801466791e-02 8.6292130705541509e-02 -2.3497713675750649e+01 2.3498349819608933e+01 1.3957000000000000e-01 1 0 0 0 0 +V -101 0 6.2882302674241096e+01 2.4169769943670968e+01 -2.5322405107628230e+04 2.5322619679928397e+04 0 2 0 +P 312 -211 -3.0454181678031815e-02 -9.4438048079860462e-03 -1.9166526513342280e+01 1.9167061199207968e+01 1.3957000000000000e-01 1 0 0 0 0 +P 313 211 4.2383582982990159e-01 1.6064602755654347e-01 -1.3924639783538171e+02 1.3924720547957548e+02 1.3957000000000000e-01 1 0 0 0 0 +V -102 0 -6.8085613147043767e-05 1.9012424329253531e-05 8.3014485275483495e-04 8.3336772172386763e-04 0 2 0 +P 314 22 -6.4530051532456653e-02 4.1147663561012245e-02 5.0009863277170408e-01 5.0592084387524461e-01 0 1 0 0 0 0 +P 315 22 -4.1706123551801033e-01 9.3333285929744852e-02 5.3717810433809960e+00 5.3887552138190218e+00 0 1 0 0 0 0 +V -103 0 -2.8663356649283047e-05 7.9115884245727316e-06 6.7397580072297365e-04 6.7540547063320853e-04 0 2 0 +P 316 22 -1.4492624902482243e-01 2.8380174303346873e-02 2.6356982873021977e+00 2.6398322889224670e+00 0 1 0 0 0 0 +P 317 22 2.5240978913187006e-02 4.6550563290277975e-03 1.7852116177452235e-01 1.8035681791173727e-01 0 1 0 0 0 0 +V -104 0 -5.0220982389912621e-04 2.2160674326314827e-04 4.1840244562597866e-03 4.2201110684245468e-03 0 2 0 +P 318 22 -5.4063197640540028e-01 2.1622423351256712e-01 3.9809929604217249e+00 4.0233494508925567e+00 0 1 0 0 0 0 +P 319 22 -9.9347804282512375e-01 4.6072215222226937e-01 8.8000271104699053e+00 8.8679050890347977e+00 0 1 0 0 0 0 +V -105 0 -8.7423611880936946e+01 -3.6126385262244547e+01 3.0603430416013998e+02 3.2827571422449716e+02 0 2 0 +P 320 -2212 -1.2471878380698003e+00 -5.8148956872730395e-01 4.2864941247651371e+00 4.5986943904236481e+00 9.3827000000000005e-01 1 0 0 0 0 +P 321 211 -1.1064351208874038e-01 2.0387854652763094e-02 4.6671800491127502e-01 4.9996313103371370e-01 1.3957000000000000e-01 1 0 0 0 0 +V -106 0 -4.0330373995144954e-04 5.1041555013131883e-05 4.1814369434113808e-04 5.8518806325543013e-04 0 2 0 +P 322 22 -6.6701805187467311e-01 1.7389112972455496e-02 6.7968573557433076e-01 9.5246425755503927e-01 0 1 0 0 0 0 +P 323 22 -4.5792166884553959e-01 1.2498167845266275e-01 4.8664723914508007e-01 6.7980748018439574e-01 0 1 0 0 0 0 +V -107 0 -6.3235648545427708e-04 5.8780562177968304e-05 4.9684663912939536e-04 8.0910028321579759e-04 0 2 0 +P 324 22 -5.8725927969364689e-01 4.2508583447097834e-02 3.7714975811299251e-01 6.9922984868901916e-01 0 1 0 0 0 0 +P 325 22 -6.9129603308469112e-01 7.6339252843770522e-02 6.2741953896410996e-01 9.3668199766906590e-01 0 1 0 0 0 0 +V -108 0 -4.1370582402169445e-05 2.3641332843672301e-05 -4.3564824109938025e-05 7.3872132712754089e-05 0 2 0 +P 326 22 9.3824316308741933e-03 3.0669441389115419e-02 -7.5056453382808377e-02 8.1621785405822295e-02 0 1 0 0 0 0 +P 327 22 -1.6493420608249607e-01 5.8221046989452609e-02 -8.8745584212347600e-02 1.9613454913860082e-01 0 1 0 0 0 0 +V -109 0 4.6124625705683339e-05 3.1832261632231989e-05 9.6598352337218242e-06 7.4110358974856751e-05 0 2 0 +P 328 22 1.1229413325862778e-01 1.1712115941134178e-01 5.1212087590440727e-02 1.7014704305845085e-01 0 1 0 0 0 0 +P 329 22 1.8719174672564270e-02 -2.6704167802973904e-02 -2.3774098692370686e-02 4.0357500506175224e-02 0 1 0 0 0 0 +V -110 0 1.6839083418133907e+02 3.1648099143667501e+01 -9.8155650633128566e+00 1.7256806749881488e+02 0 2 0 +P 330 -211 3.3855716052889000e+00 7.5517900606175214e-01 -3.2190843642233902e-01 3.4864731824688899e+00 1.3957000000000000e-01 1 0 0 0 0 +P 331 211 1.2535932196400428e+00 1.1672562602205658e-01 5.1489773792014568e-02 1.2677743544506974e+00 1.3957000000000000e-01 1 0 0 0 0 +V -111 0 2.8845818951176322e-05 -2.7495107403999699e-05 -1.8369212665482548e-05 4.5775054719574976e-05 0 2 0 +P 332 22 2.7030395986030997e-01 -2.9002381019296813e-01 -1.9934251311767295e-01 4.4375159575046091e-01 0 1 0 0 0 0 +P 333 22 2.8440430632540273e-02 5.2681886990469471e-03 9.1000640864471617e-03 3.0321989926628289e-02 0 1 0 0 0 0 +V -112 0 1.3628206968224917e-04 -2.7003120695176234e-06 -6.1509002492339389e-06 1.3659618133936836e-04 0 2 0 +P 334 22 1.8626901422113438e+00 2.7688122150641023e-02 -8.2117109705569513e-02 1.8647049143781296e+00 0 1 0 0 0 0 +P 335 22 1.0246907154836133e+00 -8.4899091998007395e-02 -4.8200779350839988e-02 1.0293309639520400e+00 0 1 0 0 0 0 +V -113 0 -1.2886014039213245e-05 4.9643921958561860e-06 -3.4195863645979687e-04 3.4228819896250966e-04 0 2 0 +P 336 22 -1.0943481290995041e-01 -2.2126551863527927e-02 -2.1629656728282032e+00 2.1658453463733665e+00 0 1 0 0 0 0 +P 337 22 -1.8538134664903849e-01 1.3570574223792362e-01 -5.6606275362368574e+00 5.6652878476000419e+00 0 1 0 0 0 0 +V -114 0 -1.8756333083447605e-04 2.7795536553286909e-04 -1.0918770904720895e-02 1.0923957781981871e-02 0 2 0 +P 338 22 -6.4454009407804935e-01 1.0195210531070349e+00 -4.0546413266977950e+01 4.0564349913774876e+01 0 1 0 0 0 0 +P 339 22 -2.2060320357166030e-01 2.6255908732698097e-01 -9.8168503025321545e+00 9.8228383326862136e+00 0 1 0 0 0 0 +V -115 0 0 0 0 0 0 1 0 +P 340 310 -2.1609164566645891e+00 -2.4014342910428788e+00 -4.6611982375210808e+00 5.6930563869726507e+00 4.9767000000000000e-01 2 0 0 -144 0 +V -116 0 4.6647014059706234e-04 4.0174175072356605e-04 -1.8177659679026900e-01 1.8177767628387106e-01 0 2 0 +P 341 22 5.0612377474012493e-01 4.3386844717429307e-01 -2.0411988422196481e+02 2.0412097280263274e+02 0 1 0 0 0 0 +P 342 22 3.6515589074457233e-02 3.3473123180800382e-02 -7.3387457182011460e+00 7.3389129000579238e+00 0 1 0 0 0 0 +V -117 0 -3.9679966035151650e-06 -4.7018239803615207e-05 2.8211964547665943e-02 2.8212008404318353e-02 0 2 0 +P 343 22 -6.4946256002850131e-02 -9.4207688108994117e-02 5.6256023690559296e+01 5.6256140061129656e+01 0 1 0 0 0 0 +P 344 22 3.0942924365591040e-02 -3.0871019736151784e-01 1.8550345407790874e+02 1.8550371353233157e+02 0 1 0 0 0 0 +V -118 0 7.1394658205115038e-06 1.7849484044905112e-05 9.5544360100083161e-04 9.5576856408141815e-04 0 2 0 +P 345 22 4.9543228363903562e-02 1.4447608620664792e-01 8.0641017625724594e+00 8.0655480351980131e+00 0 1 0 0 0 0 +P 346 22 1.1223862360092251e-02 7.4486156690947375e-03 6.8093200372141963e-02 6.9412829495597211e-02 0 1 0 0 0 0 +V -119 0 -1.0479404296005302e-06 -9.0389728160656921e-07 5.0505876581810914e-05 5.0639862845471187e-05 0 2 0 +P 347 22 -1.9649059503414921e-02 -4.1995057254422583e-02 2.0580015458011841e-01 2.1095822808881290e-01 0 1 0 0 0 0 +P 348 22 -2.1816430663347673e-02 6.2291465370471460e-03 1.7926444798778951e+00 1.7927880494219495e+00 0 1 0 0 0 0 +V -120 0 -2.7048403984485163e-05 -2.0116331802263564e-05 8.4117688963188434e-04 8.4259995311128431e-04 0 2 0 +P 349 22 -1.9642405802245206e-02 -9.2859174775794529e-02 2.0999420753842948e+00 2.1020859569520560e+00 0 1 0 0 0 0 +P 350 22 -8.3219283532173879e-02 1.6359286886682384e-02 1.0989481787777651e+00 1.1022160292147887e+00 0 1 0 0 0 0 +V -121 0 -4.3697548852092644e-06 1.0180537782309538e-05 7.9137024098687022e-04 7.9155795130203402e-04 0 2 0 +P 351 22 1.5286718904049673e-02 1.0121571509495164e-01 3.4164405283291086e+00 3.4179736962660661e+00 0 1 0 0 0 0 +P 352 22 -5.9951059525466630e-02 2.8420682734860746e-03 4.6723495593551112e+00 4.6727350247682775e+00 0 1 0 0 0 0 +V -122 0 -3.9128110223879112e-05 5.0130931781456886e-05 3.1682709221014086e-03 3.1690053675884522e-03 0 2 0 +P 353 22 -1.6779084043867753e-02 6.1438708636000997e-02 5.8657625123023784e+00 5.8661082587446449e+00 0 1 0 0 0 0 +P 354 22 -1.9701672792787284e-01 2.1247646906597906e-01 1.1445655045598098e+01 1.1449322305875373e+01 0 1 0 0 0 0 +V -123 0 8.8138363471338031e-05 -4.9929214254940152e-06 1.3105393744311845e-03 1.3137442676021075e-03 0 2 0 +P 355 22 -5.9221845589798100e-03 -9.3634280590004035e-03 8.7044995957186830e-02 8.7747235718017694e-02 0 1 0 0 0 0 +P 356 22 4.8477764023430803e-01 -1.7763098576969477e-02 7.0331113651009813e+00 7.0498213000085883e+00 0 1 0 0 0 0 +V -124 0 -3.1128397509633289e-06 9.7235280142512896e-06 1.4935694140095549e-03 1.4936344936374668e-03 0 2 0 +P 357 22 -6.0821289540813332e-02 1.1730330566840588e-01 2.0518413827214008e+01 2.0518839277103105e+01 0 1 0 0 0 0 +P 358 22 1.6572976597038779e-02 2.0914445617698917e-02 7.1233755145640765e-01 7.1283719375723653e-01 0 1 0 0 0 0 +V -125 0 -1.9515749056143327e-04 2.7480648777391942e-05 4.6732544138254686e-03 4.6777255789813401e-03 0 2 0 +P 359 22 -4.0023515920812236e-01 8.6281187916333033e-02 1.0367007136428276e+01 1.0375088895658166e+01 0 1 0 0 0 0 +P 360 22 -8.3282326790722602e-02 -1.8195796101566498e-02 1.2113351506416694e+00 1.2143310422333451e+00 0 1 0 0 0 0 +V -126 0 4.8454558846432039e-06 -1.0220515911640566e-05 2.5159500646974626e-05 2.7896794388778152e-05 0 2 0 +P 361 22 7.4423022937854688e-02 -2.8130602976180735e-01 5.5912723271329023e-01 6.3031351808856284e-01 0 1 0 0 0 0 +P 362 22 8.2854054207988859e-02 -5.0438373195187056e-02 2.5751681862275960e-01 2.7517946083031813e-01 0 1 0 0 0 0 +V -127 0 1.7487216930583767e-05 -1.9160098842285034e-05 1.4650951698096147e-04 1.4982562794983061e-04 0 2 0 +P 363 22 4.5214485644001358e-02 -3.4494364021055254e-02 9.6759820543419181e-02 1.1223490425381649e-01 0 1 0 0 0 0 +P 364 22 8.8898795765316174e-02 -1.1244861370181165e-01 1.0268536256674834e+00 1.0368105203741129e+00 0 1 0 0 0 0 +V -128 0 -7.3439902585215092e-06 3.9738804160137968e-06 -6.9310149993812259e-06 1.1364292459897351e-05 0 2 0 +P 365 22 -6.5906669162900097e-02 -1.1544111646086784e-02 -1.7213513211336788e-02 6.9088787736666518e-02 0 1 0 0 0 0 +P 366 22 -2.2791738499094746e-01 1.7053419924879248e-01 -2.6008790670221665e-01 3.8558263278742178e-01 0 1 0 0 0 0 +V -129 0 -6.5385547125916253e-05 1.7591311186985337e-06 -4.3327993280389105e-05 8.3982872788221195e-05 0 2 0 +P 367 22 -7.0058961208586297e-03 -2.3646751404207671e-02 -4.7549279496351946e-02 5.3564777728007648e-02 0 1 0 0 0 0 +P 368 22 -2.8760418411723598e-01 3.1572933608220874e-02 -1.4767526381608859e-01 3.2483996121401310e-01 0 1 0 0 0 0 +V -130 0 -6.6891221062580290e-05 -7.9566451089120833e-06 -2.8450332395157243e-05 7.4823417599693525e-05 0 2 0 +P 369 22 -1.6731181439017095e-01 1.4345447539424376e-02 -1.6892072469241130e-02 1.6877315311370919e-01 0 1 0 0 0 0 +P 370 22 -4.0216266385833066e-01 -8.2083877934753996e-02 -2.2531815989549669e-01 4.6823161405134645e-01 0 1 0 0 0 0 +V -131 0 4.0004438564436408e-06 -8.8733800974629270e-06 -1.1446929262908617e-05 1.5689694162488194e-05 0 2 0 +P 371 22 -2.7787464980002757e-02 -3.9536920145469653e-02 -3.1512507197267656e-02 5.7691848422995934e-02 0 1 0 0 0 0 +P 372 22 1.4735894064874117e-01 -2.2568443790815346e-01 -3.1063108310384269e-01 4.1126608502684042e-01 0 1 0 0 0 0 +V -132 0 -1.7190259592768666e+02 1.1083735870402483e+01 -8.5422204997653452e+01 2.0462328450321920e+02 0 2 0 +P 373 -211 -7.0116200068741419e-01 2.3007912747604026e-01 -2.5557192099985926e-01 7.9332297824509768e-01 1.3957000000000000e-01 1 0 0 0 0 +P 374 211 -5.2094392724806982e-01 -1.5128160125026907e-01 -3.5171956602845583e-01 6.6140391308241664e-01 1.3957000000000000e-01 1 0 0 0 0 +V -133 0 0 0 0 0 0 1 0 +P 375 310 6.1455156080652751e-01 -1.6499131271689300e-02 -2.1080593895117539e+00 2.2515629373462178e+00 4.9767000000000000e-01 2 0 0 -145 0 +V -134 0 1.2422833674547942e-04 -1.3509013664050564e-04 -5.1776043610738624e-04 5.5164953701517157e-04 0 2 0 +P 376 22 1.7293581745775335e-01 -1.5989646707223276e-01 -4.7684903414621088e-01 5.3184459996143318e-01 0 1 0 0 0 0 +P 377 22 1.5852178443479484e-01 -2.0054185081282136e-01 -9.0460415924719695e-01 9.4002918837403693e-01 0 1 0 0 0 0 +V -135 0 -3.0421302276829038e-05 2.2861135473366665e-06 -1.2315570169442151e-02 1.2315641212460739e-02 0 2 0 +P 379 22 -8.0253989160968833e-02 6.2876484874701419e-02 -4.2260171878810738e+01 4.2260294856777207e+01 0 1 0 0 0 0 +P 378 22 -6.3213644028068727e-02 -5.2095115397050848e-02 -1.5820369430860998e+01 1.5820581493572236e+01 0 1 0 0 0 0 +V -136 0 -2.2626919204406364e-05 -1.4251163751589497e-05 -5.4657781078933680e-03 5.4658557071155340e-03 0 2 0 +P 380 22 -7.2231888147834891e-02 9.0709435203236623e-03 -9.2446848491878608e+00 9.2449714812153534e+00 0 1 0 0 0 0 +P 381 22 -1.9238729045382397e-01 -1.7573663989709587e-01 -5.4676952041087944e+01 5.4677572922904659e+01 0 1 0 0 0 0 +V -137 0 -1.4712307122146771e-05 7.6678869480818771e-06 -3.9235264585132075e-03 3.9236871020138959e-03 0 2 0 +P 382 22 -7.3391735447519918e-03 5.7884281344822895e-02 -1.3555871924925388e+01 1.3555997495517444e+01 0 1 0 0 0 0 +P 383 22 -5.5924405626760355e-02 -2.4912024241247683e-02 -3.3154674699699282e+00 3.3160326736214896e+00 0 1 0 0 0 0 +V -138 0 0 0 0 0 0 1 0 +P 384 130 1.1053483946443671e-01 2.3990656324443796e-01 -9.0517810821029947e+00 9.0692992726583253e+00 4.9767000000000000e-01 1 0 0 0 0 +V -139 0 0 0 0 0 0 2 0 +P 385 -211 1.9994195185511940e-01 4.2490055020102374e-01 -1.6472487730842742e+00 1.7185533355122891e+00 1.3957000000000000e-01 1 0 0 0 0 +P 386 211 -3.8005634452398301e-01 -1.4412602541072891e-01 -9.1373216249149591e-01 1.0097531311588057e+00 1.3957000000000000e-01 1 0 0 0 0 +V -140 0 1.1290931347859454e-05 1.9492777513552132e-04 -5.9277195213696494e-04 6.2505117884745329e-04 0 2 0 +P 387 22 -1.8864812224141009e-02 3.1518847790773763e-01 -7.8454208373630496e-01 8.4569849172110512e-01 0 1 0 0 0 0 +P 388 22 6.3118015182099169e-02 4.4880327170562045e-01 -1.5387434537915861e+00 1.6041008936848880e+00 0 1 0 0 0 0 +V -141 0 -2.2062332681418194e-05 -3.3787800437129711e-05 -1.7314881218831880e-04 1.8452512119060968e-04 0 2 0 +P 389 22 2.4873558701757840e-02 -5.2976666599621790e-03 -1.3627493951424749e-02 2.8852517843785962e-02 0 1 0 0 0 0 +P 390 22 -8.5152879382827049e-02 -8.7018304052106268e-02 -4.5945451991180614e-01 4.7531216476614546e-01 0 1 0 0 0 0 +V -142 0 -4.1677118704622027e-05 1.4862109679246677e-06 -2.0980181557823914e-03 2.0985831772341542e-03 0 2 0 +P 391 22 -1.5643583805594760e-01 5.2378617282550582e-02 -5.5116465463091462e+00 5.5141149192248653e+00 0 1 0 0 0 0 +P 392 22 -6.7341384605742141e-02 -4.4398695132734589e-02 -5.7532558890580363e+00 5.7538212894728558e+00 0 1 0 0 0 0 +V -143 0 0 0 0 0 0 1 0 +P 393 310 -2.8878157481450778e-01 4.5737313947049302e-01 -1.9055191875712950e+01 1.9069362806234462e+01 4.9767000000000000e-01 2 0 0 -146 0 +V -144 0 -1.0043507998486164e+02 -1.1161386843781975e+02 -2.1664318227892988e+02 2.6460188769466896e+02 0 2 0 +P 394 -211 -1.1691333412424345e+00 -1.3186003706581355e+00 -2.1817307937141353e+00 2.8080257741418579e+00 1.3957000000000000e-01 1 0 0 0 0 +P 395 211 -9.9178311542215425e-01 -1.0828339203847432e+00 -2.4794674438069451e+00 2.8850306128307914e+00 1.3957000000000000e-01 1 0 0 0 0 +V -145 0 1.4136025654935059e+01 -3.7951598826736549e-01 -4.8489961644807160e+01 5.1790856090669863e+01 0 2 0 +P 396 -211 2.2123670885310345e-01 -1.8774985570499705e-01 -1.1205504408707445e+00 1.1658939767822030e+00 1.3957000000000000e-01 1 0 0 0 0 +P 397 211 3.9331485195342403e-01 1.7125072443330774e-01 -9.8750894864100902e-01 1.0856689605640144e+00 1.3957000000000000e-01 1 0 0 0 0 +V -146 0 -1.0106759107552426e+01 1.6007115917497323e+01 -6.6689238799159602e+02 6.6738834131272722e+02 0 2 0 +P 398 211 -1.3082730519347252e-01 3.3475366485323066e-01 -6.2686630319197212e+00 6.2805088800648798e+00 1.3957000000000000e-01 1 0 0 0 0 +P 399 -211 -1.5795426962103520e-01 1.2261947461726234e-01 -1.2786528843793228e+01 1.2788853926169581e+01 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 8 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 186 0 0 +V -1 0 0 0 0 0 1 2 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 41 2203 -3.5096158275163236e-01 -6.5324073291532936e-01 6.4120718804435573e+03 6.4120719697163750e+03 7.7132999999999996e-01 2 0 0 -13 0 +P 3 1 3.5096158275163236e-01 6.5324073291532936e-01 4.1594615987003954e+02 4.1594682088954704e+02 0 3 0 0 -3 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 2 2.7501906829241841e-02 -1.2146878480571459e-01 -2.4425191616079805e+03 2.4425191647831903e+03 0 3 0 0 -4 0 +P 25 2103 -2.7501906829241841e-02 1.2146878480571459e-01 -4.3752498996173417e+03 4.3752499693803265e+03 7.7132999999999996e-01 2 0 0 -11 0 +V -3 0 0 0 0 0 0 3 0 +P 5 1 -4.9399896685999328e-01 1.2324525037290512e+00 2.6907605385966201e+02 2.6907932981713935e+02 0 3 0 0 -5 0 +P 39 21 5.6879342880917538e-01 7.5338012753840347e-02 1.3882129535590456e+01 1.3893981510846166e+01 0 2 0 0 -13 0 +P 40 21 4.0353127377792430e-01 -1.0794042666778709e+00 2.4382432099069892e+01 2.4409648627655276e+01 0 2 0 0 -13 0 +V -4 0 0 0 0 0 0 27 0 +P 6 -2 -2.5309383529199383e+01 2.5605502229007829e+01 3.5459450278646557e+01 5.0532952150964263e+01 0 3 0 0 -5 0 +P 11 2 1.6176455215218464e+00 -3.5208120614031763e-01 -8.1690576640657608e-01 1.8753594962580435e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 3.6714966898125962e+00 -2.8959215128987843e+00 -1.0957485461237511e+00 4.8028027471995083e+00 0 2 0 0 -9 0 +P 13 21 9.0366392277633989e-02 -5.2691266877741805e-01 1.9123724213929416e-01 5.6778052815543023e-01 0 2 0 0 -9 0 +P 14 21 -5.4742252565373975e-02 9.9812434983835754e-02 5.6673941239040604e-01 5.7805951073393502e-01 0 2 0 0 -9 0 +P 15 21 -4.2785424343628164e-01 -3.2385695231399270e-01 -3.5095687498530953e-02 5.3774927844631759e-01 0 2 0 0 -9 0 +P 16 -4 2.9718367737999309e+00 -5.2406590168947231e-01 -2.3934560712361521e+00 4.1334115261319404e+00 1.5000000000000000e+00 2 0 0 -9 0 +P 17 4 3.7194740649112351e-02 1.2081735484703142e+00 -1.0381037228237732e+01 1.0558266936671616e+01 1.5000000000000000e+00 2 0 0 -11 0 +P 18 21 -3.8063394485410336e+00 5.6572199649196686e-01 -5.4033256081716328e+00 6.6335653311592448e+00 0 2 0 0 -11 0 +P 19 21 1.4421971897575430e+00 -1.4182830615990176e+00 5.7062472324337099e-01 2.1016831711130513e+00 0 2 0 0 -11 0 +P 20 21 2.7303036205130007e+00 -7.3316197951629114e-01 9.1820481918052266e-01 2.9724038148207561e+00 0 2 0 0 -11 0 +P 21 21 -2.0182388692079840e+00 1.5399105798395493e-01 -1.0724900871680109e+01 1.0914233829567960e+01 0 2 0 0 -11 0 +P 22 21 1.2491774325410158e-01 -5.4800394801420538e-01 -7.6805684279456621e+00 7.7011066831965493e+00 0 2 0 0 -11 0 +P 31 21 3.5609178221999949e-01 -1.2821539734905008e+00 -1.5993658274378207e+01 1.6048919750771034e+01 0 2 0 0 -13 0 +P 32 21 -5.7321384139990961e-01 1.8778171682794662e-01 1.6282864814338351e+00 1.7364195768210722e+00 0 2 0 0 -13 0 +P 33 21 3.1657101493395272e+00 -1.6119295557286719e+00 4.4063722475163161e+00 5.6600489420096816e+00 0 2 0 0 -13 0 +P 34 21 2.6326825731670658e+00 -1.7437994078856278e+00 2.2174731113567527e+00 3.8586319992440359e+00 0 2 0 0 -13 0 +P 35 21 6.8425955467206965e+00 -4.4447064866609622e+00 1.5000198384257514e+01 1.7075786398747489e+01 0 2 0 0 -13 0 +P 36 21 4.0164782232489156e+00 -5.4148487689946281e+00 1.3344639617162901e+01 1.4950989633494801e+01 0 2 0 0 -13 0 +P 37 21 3.9627824931833042e+00 -7.3524675138650126e+00 1.5839388268499249e+01 1.7906664802553045e+01 0 2 0 0 -13 0 +P 23 21 6.3545309142797402e-01 5.0932772066100540e-01 -1.0519858948403776e+01 1.0551333927648679e+01 0 2 0 0 -11 0 +P 24 21 -1.3293995544884336e+00 5.4471300945374300e-02 -2.4605532627938929e+00 2.7972473357117349e+00 0 2 0 0 -11 0 +P 26 2 -9.0376759228672943e-01 8.5542850621349587e-01 -2.0776141357023594e+03 2.0776145345862528e+03 3.3000000000000002e-01 2 0 0 -13 0 +P 27 21 4.5222474530545992e-01 3.0982198771832353e-01 -1.3647713867247677e+02 1.3647823957360674e+02 0 2 0 0 -13 0 +P 28 21 -9.6670908210745185e-02 -1.0947679481510482e+00 -1.0578578360202395e+02 1.0579149244820697e+02 0 2 0 0 -13 0 +P 29 21 -4.8393908701574007e-01 2.0274532889938918e-01 -2.1573305980675745e+01 2.1579685670653127e+01 0 2 0 0 -13 0 +P 30 21 1.5370980407646048e-01 8.1756875564613984e-01 -1.5100758824998671e+01 1.5123655724223996e+01 0 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 -24 -1.9947058501930567e+01 2.7030936827831496e+01 2.9618547273355034e+02 3.0941145860556639e+02 8.2952153494395972e+01 3 0 0 -6 0 +P 8 22 -5.8563239941287950e+00 -1.9298209509462974e-01 8.3500314047580435e+00 1.0200823362537069e+01 0 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 -24 -1.9947058501930567e+01 2.7030936827831496e+01 2.9618547273355034e+02 3.0941145860556639e+02 8.2952153494395972e+01 2 0 0 -8 0 +V -7 0 0 0 0 0 0 1 0 +P 10 22 -5.8563239941287950e+00 -1.9298209509462974e-01 8.3500314047580435e+00 1.0200823362537033e+01 0 1 0 0 0 0 +V -8 0 0 0 0 0 0 10 0 +P 42 -2 -3.0517819564912308e+01 1.0428844168876985e+01 7.4912511307218153e+01 8.1560354045635137e+01 3.3000000000000002e-01 2 0 0 -15 0 +P 43 21 -5.7206370395985298e+00 5.4834348217882312e-01 1.3778163054100464e+01 1.4928635096975666e+01 0 2 0 0 -15 0 +P 44 2 -2.2525958537263930e+00 1.3998775512003811e-01 5.1363462708508241e+00 5.6200300413691791e+00 3.3000000000000002e-01 2 0 0 -15 0 +P 45 -2 -3.3632312463497884e+00 3.1506842882115055e-01 4.6744576577204295e+00 5.7766813072113079e+00 3.3000000000000002e-01 2 0 0 -17 0 +P 46 21 -3.7285968742864894e+00 2.8910858542250293e+00 1.1679555837123013e+01 1.2596540660828801e+01 0 2 0 0 -17 0 +P 47 21 -1.8023297258181672e+00 2.5930887493787522e+00 1.4214934742857999e+01 1.4561485894181056e+01 0 2 0 0 -17 0 +P 48 21 4.5585582966435784e-01 6.8325648113844262e-01 4.4766795478450598e+00 4.5514067858796050e+00 0 2 0 0 -17 0 +P 49 21 1.8795211728249670e+00 2.1980346924035365e+00 1.6255259634668267e+01 1.6510524587019709e+01 0 2 0 0 -17 0 +P 50 21 1.0534179425365028e+01 3.0060939727642277e+00 5.9681656292270027e+01 6.0678708250320625e+01 0 2 0 0 -17 0 +P 51 1 1.4568595374906375e+01 4.2271332429249249e+00 9.1375908388900839e+01 9.2627091936149995e+01 3.3000000000000002e-01 2 0 0 -17 0 +V -9 0 0 0 0 0 0 1 0 +P 63 92 7.8687488814103510e+00 -4.5230258068361495e+00 -3.5832294167353105e+00 1.2495163086925176e+01 7.8047803369408015e+00 2 0 0 -10 0 +V -10 0 0 0 0 0 0 6 0 +P 64 321 1.7132926485905779e+00 -1.1048478524837397e+00 -3.9254690998346925e-01 2.1339621630642891e+00 4.9359999999999998e-01 1 0 0 0 0 +P 65 -311 7.0071389671228546e-01 -5.7580058229065734e-01 -6.8836441564177575e-01 1.2426050350911262e+00 4.9767000000000000e-01 2 0 0 -23 0 +P 66 -211 1.0077824213790697e-01 -4.4819776346861628e-01 6.6159383291203300e-01 8.1744949318836269e-01 1.3957000000000000e-01 1 0 0 0 0 +P 67 213 2.9009203059815278e+00 -1.7893295104458362e+00 -1.1484922938389688e+00 3.6608745191428511e+00 6.8258990418377041e-01 2 0 0 -24 0 +P 68 2112 5.5409088873312584e-01 1.6103136011254437e-01 -4.0047552306756740e-01 1.1730815152379661e+00 9.3957000000000002e-01 1 0 0 0 0 +P 69 -4122 1.8989528992549274e+00 -7.6588145825984388e-01 -1.6149441071155617e+00 3.4671903612005783e+00 2.2848999999999999e+00 2 0 0 -25 0 +V -11 0 0 0 0 0 0 1 0 +P 70 92 -2.2114133934649618e+00 -8.6294579771183808e-02 -4.4209313144221505e+03 4.4294798104102165e+03 2.7505055207618193e+02 2 0 0 -12 0 +V -12 0 0 0 0 0 0 28 0 +P 71 433 -1.0247884433601786e+00 1.2618214732734563e+00 -8.6694897878898782e+00 9.0699874159992895e+00 2.1124000000000001e+00 2 0 0 -26 0 +P 72 -311 1.5493234368667361e-01 -5.2903668164922500e-02 -2.2756098012880561e+00 2.3351398728649673e+00 4.9767000000000000e-01 2 0 0 -27 0 +P 73 311 -1.0479399410759047e+00 3.5508361290150353e-01 -1.2285977863989042e+00 1.7266703338789495e+00 4.9767000000000000e-01 2 0 0 -28 0 +P 74 -321 7.1709044630839699e-02 -8.0540288172282606e-02 -1.1040623347056104e+00 1.2141760679639282e+00 4.9359999999999998e-01 1 0 0 0 0 +P 75 323 -9.5436433963787692e-01 -2.9602351803484112e-01 -1.0976303074658433e+00 1.7459894215858962e+00 9.1937236874953221e-01 2 0 0 -29 0 +P 76 -313 4.5229065483994757e-01 8.1631980606907503e-02 -5.8961679501597064e-01 1.1604642453115961e+00 8.8758024029850513e-01 2 0 0 -30 0 +P 77 113 -2.4190544648866458e-01 -1.5219642166406071e-02 2.7578108978004551e-01 9.1680871617924098e-01 8.4007924032998516e-01 2 0 0 -31 0 +P 78 -211 9.1225699860842469e-01 -2.2413756750953776e-01 -9.7235135008989171e-02 9.5466482969645439e-01 1.3957000000000000e-01 1 0 0 0 0 +P 92 -213 -3.7677031801546979e-01 -2.2171436967981403e-01 -7.8528785468690341e+00 7.8980386958816329e+00 7.2124935737075968e-01 2 0 0 -41 0 +P 93 111 6.5806093929116216e-01 1.7165685794549929e-01 -8.5486801528223268e+01 8.5489613201855903e+01 1.3497999999999999e-01 2 0 0 -42 0 +P 94 323 -4.8433024369999383e-01 -1.4687330505886736e-01 -8.3957716820012237e+01 8.3964255353447285e+01 9.1750524621514085e-01 2 0 0 -43 0 +P 95 331 3.5807589393682532e-01 -1.5224080954598848e-01 -4.3981009527858146e+02 4.3981131055034541e+02 9.5790576133122218e-01 2 0 0 -44 0 +P 96 -313 -4.8374978977586536e-01 -3.5240006944584942e-02 -6.3924051825900631e+02 6.3924131911008010e+02 8.8804157285665164e-01 2 0 0 -45 0 +P 97 2114 2.5503907680222165e-01 4.3505021898565793e-01 -1.9084717226924338e+03 1.9084721994174818e+03 1.2511271521563039e+00 2 0 0 -46 0 +P 98 223 -8.2278535331352418e-02 -1.5371015913753452e-01 -1.2132425478781010e+03 1.2132428143693633e+03 7.8500992134931347e-01 2 0 0 -47 0 +P 79 211 -1.6019746019187674e-02 -1.0962764287148888e-01 -3.9451013408667096e-01 4.3288899632718902e-01 1.3957000000000000e-01 1 0 0 0 0 +P 80 -211 2.2284319500814491e-02 -1.1912520537149757e-01 8.0408625454810090e-02 2.0157563691564462e-01 1.3957000000000000e-01 1 0 0 0 0 +P 81 111 2.6147842628995627e-01 -5.3714869055077885e-01 3.2448827889606002e-01 6.9311754177514195e-01 1.3497999999999999e-01 2 0 0 -32 0 +P 82 223 8.0109014259129629e-01 -6.0688849198709971e-01 -2.0305333370163012e-01 1.2882559187308529e+00 7.7994461185036024e-01 2 0 0 -33 0 +P 83 211 1.0621591005162476e+00 -2.6715583755681332e-01 -2.2047937637000264e-01 1.1258974805259456e+00 1.3957000000000000e-01 1 0 0 0 0 +P 84 -213 -3.9080845150093041e-01 2.6753344288388836e-01 -1.4175065470742074e+00 1.6446536225973012e+00 6.8648039920912651e-01 2 0 0 -34 0 +P 85 213 -7.0973282225719359e-01 3.4100256795269435e-01 -4.5663121010528904e+00 4.6984477584393929e+00 7.7730412595238718e-01 2 0 0 -35 0 +P 86 113 -2.3157800835597475e-01 -5.5195889026928313e-01 -5.6838651946392025e+00 5.7714335617292285e+00 8.0301607463498115e-01 2 0 0 -36 0 +P 87 111 -4.6066273585814793e-01 3.9227103753437581e-01 -4.7966952888036269e+00 4.8365888823764545e+00 1.3497999999999999e-01 2 0 0 -37 0 +P 88 311 2.7517509894565889e-01 -1.1487381757051843e-01 -2.1239959178119161e+00 2.2018063985792806e+00 4.9767000000000000e-01 2 0 0 -38 0 +P 89 -323 -7.0371163798211422e-01 -2.0006265444806237e-01 -4.1983731881486621e+00 4.3521687974762546e+00 8.8306323648086882e-01 2 0 0 -39 0 +P 90 211 -1.0761954765935261e-01 -1.6382379153854643e-01 -2.3860134843071883e+00 2.3981159967583294e+00 1.3957000000000000e-01 1 0 0 0 0 +P 91 111 -1.7970542608682286e-01 6.5692258472370091e-01 -2.4966648992850491e+00 2.5914082160491692e+00 1.3497999999999999e-01 2 0 0 -40 0 +V -13 0 0 0 0 0 1 1 0 +P 38 21 1.1792977287052229e+00 3.1505474039551125e+00 1.2907478596245630e+02 1.2911861625393684e+02 0 2 0 0 -13 0 +P 99 92 2.1325344736888994e+01 -1.9078086942355402e+01 4.2593028050939884e+03 9.0133192852153970e+03 7.9433900450641822e+03 2 0 0 -14 0 +V -14 0 0 0 0 0 0 39 0 +P 100 211 -6.4145635586214866e-01 7.4210211658539504e-01 -1.2602904261354940e+03 1.2602908155939158e+03 1.3957000000000000e-01 1 0 0 0 0 +P 101 -213 2.5952690952053969e-01 1.7113996608260679e-01 -5.5927702746122156e+02 5.5927759069273088e+02 7.3031643899164966e-01 2 0 0 -48 0 +P 102 211 4.2014540449212504e-02 -3.5537589858044005e-01 -7.2949847678164119e+01 7.2950858893526046e+01 1.3957000000000000e-01 1 0 0 0 0 +P 103 223 -6.3998361774731272e-01 2.5907507037149113e-02 -1.3487047205365673e+02 1.3487424091129336e+02 7.7870353248628366e-01 2 0 0 -49 0 +P 104 -213 -1.2839848855141253e-01 -2.0565346315218563e-01 -7.5718320753566431e+01 7.5722517718575858e+01 7.5948165303639892e-01 2 0 0 -50 0 +P 120 213 1.6442662451119143e+00 -1.1808050207330052e+00 3.0613568265944324e+00 3.7231193798014286e+00 6.2593954557443632e-01 2 0 0 -61 0 +P 121 -211 2.3285071815343761e+00 -1.4930049131139151e+00 3.7980187414499524e+00 4.7005782102146254e+00 1.3957000000000000e-01 1 0 0 0 0 +P 122 113 2.0705991745434469e+00 -2.1281647954902798e+00 5.8472746169042855e+00 6.6028251690195514e+00 7.6825349251449815e-01 2 0 0 -62 0 +P 123 213 1.6982439540579044e+00 -2.0586767864933027e+00 5.4934725034644734e+00 6.1605691667856659e+00 8.0758261106179852e-01 2 0 0 -63 0 +P 124 113 2.9418564684892945e+00 -3.1012166205676479e+00 5.9093890342429791e+00 7.3452154730835240e+00 8.7134813887281681e-01 2 0 0 -64 0 +P 125 2112 2.3972505494101850e+00 -3.1969828230803983e+00 9.5256435215448363e+00 1.0372472494645029e+01 9.3957000000000002e-01 1 0 0 0 0 +P 126 -2112 3.4184366439918845e+00 -3.6749985902842326e+00 9.6543481666732056e+00 1.0921563717518836e+01 9.3957000000000002e-01 1 0 0 0 0 +P 127 313 7.2107705342681427e-01 -1.9937173017311436e+00 4.6809918289416128e+00 5.2178012042881861e+00 9.0493320673532929e-01 2 0 0 -65 0 +P 128 -313 2.7935483674053357e-01 -8.1871255653283084e-02 1.1718388726820061e+01 1.1756180517434442e+01 8.9577004768472279e-01 2 0 0 -66 0 +P 129 113 -8.2708674444163105e-02 3.4522701208939077e-01 6.1206736781408893e+00 6.1737560715212680e+00 7.2566889257740352e-01 2 0 0 -67 0 +P 130 311 2.4695926864221421e-01 4.1868501205522318e-01 1.8281949053007391e+01 1.8295180311364682e+01 4.9767000000000000e-01 2 0 0 -68 0 +P 131 -311 2.9376002073213692e-01 5.4077841199444876e-01 2.3165952234661379e+01 2.3179468384934378e+01 4.9767000000000000e-01 2 0 0 -69 0 +P 132 -211 8.2622565565000405e-01 2.0025688618269719e-01 1.2637005194543391e+01 1.2666338528806758e+01 1.3957000000000000e-01 1 0 0 0 0 +P 133 221 -1.9997941753530871e-01 6.5041493910278059e-01 4.3772957762713439e+01 4.3781669271045850e+01 5.4744999999999999e-01 2 0 0 -70 0 +P 134 2224 1.1786850791080654e+00 3.2621875180768561e-01 6.7450236130820841e+01 6.7471056333264244e+01 1.1460241852960338e+00 2 0 0 -71 0 +P 105 323 -1.9872082796055467e-02 2.6794098698287805e-01 -6.8108399991638535e+01 6.8114172641420211e+01 8.4509048745704018e-01 2 0 0 -51 0 +P 106 -321 2.7142152013196741e-01 5.2993467515270787e-01 -2.6160140573056200e+01 2.6171570380158332e+01 4.9359999999999998e-01 1 0 0 0 0 +P 107 211 2.9437631694032651e-01 -4.6347150711519880e-01 -6.0143844523795785e+01 6.0146512593344127e+01 1.3957000000000000e-01 1 0 0 0 0 +P 108 -213 2.4619007605199436e-01 -6.0434473709003467e-01 -5.8018576150880186e+01 5.8030267612341916e+01 9.6485152730442514e-01 2 0 0 -52 0 +P 109 323 -9.9384342697108385e-02 -5.3376492002751497e-01 -2.0781667217870002e+01 2.0807229643207261e+01 8.7654482683159274e-01 2 0 0 -53 0 +P 110 -323 -2.7981634786068688e-01 3.1851689070453132e-01 -2.3479670779247950e+01 2.3502171437618404e+01 9.3668147368348154e-01 2 0 0 -54 0 +P 111 213 6.3127980478257359e-04 8.7114195588813836e-01 -3.8001408612870264e+00 3.9658129295852458e+00 7.2643851840290274e-01 2 0 0 -55 0 +P 112 223 1.1771085064566952e-01 -1.8207163509755123e-01 -9.8029417254923035e-01 1.2741930596758400e+00 7.8459248271014903e-01 2 0 0 -56 0 +P 113 2112 1.9209205934717882e-01 -5.3351059012014823e-01 -4.1646177314502335e+00 4.3067813437698792e+00 9.3957000000000002e-01 1 0 0 0 0 +P 114 113 -2.7598565373989276e-01 3.7960657283068916e-01 -4.9916024639480350e-01 1.0051155152174889e+00 7.3540942076064020e-01 2 0 0 -57 0 +P 115 -2112 -9.9845269053552094e-02 -3.5876231396345826e-01 -1.8622805531032363e+00 2.1188582111692340e+00 9.3957000000000002e-01 1 0 0 0 0 +P 116 -213 3.7849030650847143e-01 3.7784357170711968e-03 -9.0606253780559282e-02 1.0192850428959987e+00 9.4205271442207850e-01 2 0 0 -58 0 +P 117 321 5.8085707824128519e-01 -9.7162071509718617e-01 3.6764844693599641e-01 1.2885061505027517e+00 4.9359999999999998e-01 1 0 0 0 0 +P 118 333 4.7060519423644726e-01 1.3602005935586783e-01 1.1809574745448215e+00 1.6340056336417663e+00 1.0175181318778792e+00 2 0 0 -59 0 +P 119 -323 1.4599984686426251e+00 -7.3997071978743245e-01 2.5814573561830843e+00 3.1906207354049889e+00 9.1486960864539102e-01 2 0 0 -60 0 +P 135 -213 -6.0071912138819927e-01 -1.7948907599716118e-01 5.4158753007648563e+01 5.4167324041288985e+01 7.3170120904424785e-01 2 0 0 -72 0 +P 136 -2214 4.8755136324043447e-01 -5.7626612657803589e-01 1.5857152644493947e+03 1.5857159489133173e+03 1.2652830783436040e+00 2 0 0 -73 0 +P 137 113 -4.1376307441085342e-01 -8.6244447369672600e-02 1.4358186673828980e+03 1.4358189407957868e+03 7.7878414697202980e-01 2 0 0 -74 0 +P 138 2224 -3.9430912224019385e-02 -3.0577286480143262e-01 3.3195578920930161e+03 3.3195581504912811e+03 1.2729824133344914e+00 2 0 0 -75 0 +V -15 0 0 0 0 0 0 1 0 +P 139 92 -3.8491052458237228e+01 1.1117175406175845e+01 9.3827020632169436e+01 1.0210901918397998e+02 4.1939587087132457e+00 2 0 0 -16 0 +V -16 0 0 0 0 0 0 5 0 +P 140 -211 -1.9166473046608434e+01 6.1868455401856188e+00 4.6556411760049734e+01 5.0726223026563673e+01 1.3957000000000000e-01 1 0 0 0 0 +P 141 211 -3.8214210133710984e+00 4.1209563848882319e-01 8.8452891185503653e+00 9.6452942283966223e+00 1.3957000000000000e-01 1 0 0 0 0 +P 142 -211 -1.9337263835215596e-01 3.8299880626085796e-02 7.4065220340539428e-01 7.7904128865453037e-01 1.3957000000000000e-01 1 0 0 0 0 +P 143 -313 -8.2556654128106732e+00 2.7128082773100708e+00 2.0430817739322297e+01 2.2220577016158007e+01 9.0575342995889496e-01 2 0 0 -76 0 +P 144 323 -7.0541203470947975e+00 1.7671260695652278e+00 1.7253849810841484e+01 1.8737883624206951e+01 7.2773690452967910e-01 2 0 0 -77 0 +V -17 0 0 0 0 0 0 1 0 +P 145 92 1.8543993956306284e+01 1.5913761421656066e+01 2.0235845210138564e+02 2.0730243942159109e+02 3.7791940130625008e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 14 0 +P 151 2212 5.8338973945168648e-01 1.6779417880182423e+00 1.4261748231538144e+01 1.4402556906492567e+01 9.3827000000000005e-01 1 0 0 0 0 +P 152 111 1.4165244960744796e+00 4.6731499980347514e-02 6.0300599428003485e+00 6.1958508693507808e+00 1.3497999999999999e-01 2 0 0 -79 0 +P 153 -211 -8.8908673032611560e-03 7.5389806891575817e-01 4.3882568137415596e+00 4.4547411814925377e+00 1.3957000000000000e-01 1 0 0 0 0 +P 154 113 1.8185267740322264e+00 1.0824417118785685e+00 1.1430218213996847e+01 1.1643291552010357e+01 6.6153613510060250e-01 2 0 0 -80 0 +P 155 213 1.5036150668328048e+00 3.5431629391135439e-01 8.4987502245096724e+00 8.6550697519553221e+00 5.4321149405278735e-01 2 0 0 -81 0 +P 156 223 4.6405083798304085e+00 1.6629892500258932e+00 3.0667601777968951e+01 3.1071117824765778e+01 7.8275973287819944e-01 2 0 0 -82 0 +P 157 -213 3.9970063450751039e+00 1.4686799434037365e+00 2.8332911049604355e+01 2.8661754230859430e+01 7.8052965777654093e-01 2 0 0 -83 0 +P 158 113 9.3580203216703879e+00 3.1521852498297869e+00 5.4878039383787858e+01 5.5765298071186237e+01 8.1267839249976626e-01 2 0 0 -84 0 +P 159 221 2.8855367459185346e+00 6.9662349745004337e-01 1.5936383535813000e+01 1.6219729600467367e+01 5.4744999999999999e-01 2 0 0 -85 0 +P 146 -2112 -2.6743483898333138e+00 8.2173272799491937e-01 3.9048032086408360e+00 4.8946566651373811e+00 9.3957000000000002e-01 1 0 0 0 0 +P 147 -211 -3.4761870385601772e+00 1.5018145990736227e+00 1.0041938198918368e+01 1.0733094893498349e+01 1.3957000000000000e-01 1 0 0 0 0 +P 148 2212 -1.5117020725326820e+00 1.9137806911799142e+00 8.1880940760776273e+00 8.5949424012979971e+00 9.3827000000000005e-01 1 0 0 0 0 +P 149 113 -1.2447883978844071e-01 2.5267362074443822e-01 1.5280844145927219e+00 1.6030732744200233e+00 3.9428797199936710e-01 2 0 0 -78 0 +P 150 -2212 1.3647329543852704e-01 5.2795247924943911e-01 4.2715630293953559e+00 4.4072621986569747e+00 9.3827000000000005e-01 1 0 0 0 0 +V -19 0 0 0 0 0 9 1 0 +P 52 3 1.0101998152855945e+01 6.4603650197245228e+00 2.6444321311193690e+01 2.9035991673749287e+01 0 2 0 0 -19 0 +P 53 21 -1.1792977287052229e+00 -3.1505474039551125e+00 3.5604699631516148e+00 4.8983301681289770e+00 0 2 0 0 -19 0 +P 54 21 5.4393098289857278e+00 1.2064682052724261e-01 -6.0927087448274282e+00 8.1683380757838790e+00 0 2 0 0 -19 0 +P 55 21 4.3229282211027176e+00 8.4560344871155246e-01 -3.2960883103994504e+01 3.3253910575937830e+01 0 2 0 0 -19 0 +P 56 21 2.9321949272632235e+00 6.6737924249356242e+00 -6.4867381486965698e+01 6.5275680413138062e+01 0 2 0 0 -19 0 +P 57 21 -4.3229282211027176e+00 -8.4560344871155246e-01 -3.3185882553128543e+01 3.3476940637210568e+01 0 2 0 0 -19 0 +P 58 21 -2.9321949272632235e+00 -6.6737924249356242e+00 -1.3725188086854727e+01 1.5540851342257129e+01 0 2 0 0 -19 0 +P 59 21 -5.4393098289857278e+00 -1.2064682052724261e-01 -6.8094310938794118e+00 8.7160196703137292e+00 0 2 0 0 -19 0 +P 60 -3 -1.0101998152855945e+01 -6.4603650197245228e+00 -1.0742083072280693e+01 1.6099038219724946e+01 0 2 0 0 -19 0 +P 160 92 -1.1792977287052206e+00 -3.1505474039551116e+00 -1.3837876686758571e+02 2.1446510077624441e+02 1.6381477234698198e+02 2 0 0 -20 0 +V -20 0 0 0 0 0 0 36 0 +P 161 -313 8.2000806394988448e+00 5.4003406550455937e+00 2.2177543996883074e+01 2.4268717313332942e+01 8.4981210626819303e-01 2 0 0 -86 0 +P 162 3214 1.1200777844798961e+00 4.1111180711726349e-02 3.7259896703360691e+00 4.1247208876059354e+00 1.3689627477534603e+00 2 0 0 -87 0 +P 163 -3122 5.4889822392614185e-01 6.7168289205653042e-02 1.2394553573684344e+00 1.7569269434479631e+00 1.1156800000000000e+00 2 0 0 -88 0 +P 164 -211 -1.8246867227292973e-01 -7.4395915930269774e-01 9.3316746363469338e-01 1.2153400129831278e+00 1.3957000000000000e-01 1 0 0 0 0 +P 165 213 -2.4505059959837305e-01 -1.9411646561574297e-01 4.9179202248504200e-01 1.1013212363778255e+00 9.3451488684246398e-01 2 0 0 -89 0 +P 166 111 1.0831519365169956e-01 -8.5977649139333909e-02 -1.2164921808366023e-01 2.2834725745604548e-01 1.3497999999999999e-01 2 0 0 -90 0 +P 167 2112 2.1446758121909784e-01 -3.2834007745682020e-01 2.5652908362645738e-01 1.0499535730233749e+00 9.3957000000000002e-01 1 0 0 0 0 +P 168 -3122 -1.6966076865868715e-01 -3.3109432038849090e-01 -2.5618579747388798e-01 1.2036532933709381e+00 1.1156800000000000e+00 2 0 0 -91 0 +P 169 -323 1.8511690574403743e+00 7.7549450304113823e-02 -1.7771148289683374e+00 2.7167454062741467e+00 8.8866624258231075e-01 2 0 0 -92 0 +P 190 3322 -8.9819328650589736e-01 -1.4101551478664545e+00 -4.9514548113054522e+00 5.3889846427113186e+00 1.3149000000000000e+00 2 0 0 -104 0 +P 191 311 -9.8211331445284256e-01 -7.9298343389061809e-01 -1.4504485608208735e+00 1.9861635746679696e+00 4.9767000000000000e-01 2 0 0 -105 0 +P 192 -3212 -1.7421317431910346e+00 -8.2221491446806805e-01 -3.7329995940397152e+00 4.3667518646939678e+00 1.1925500000000000e+00 2 0 0 -106 0 +P 193 211 -1.4263310139354122e+00 -6.0848557736261411e-01 -2.6734691732657865e+00 3.0937989696285668e+00 1.3957000000000000e-01 1 0 0 0 0 +P 194 -211 -2.5524022272364206e+00 -5.2387494780839883e-01 -2.0619036105597894e+00 3.3256771302521524e+00 1.3957000000000000e-01 1 0 0 0 0 +P 195 211 -2.0644196153139507e-01 1.6631552161324753e-02 -9.1057393117718233e-01 9.4420313547863910e-01 1.3957000000000000e-01 1 0 0 0 0 +P 196 311 -9.4646039874614889e+00 -5.6457554838761190e+00 -1.0111196049899565e+01 1.4964532889856393e+01 4.9767000000000000e-01 2 0 0 -107 0 +P 170 221 1.1371300019760869e-01 -4.0058843868012450e-01 -1.2195001765893660e+00 1.4001013987635382e+00 5.4744999999999999e-01 2 0 0 -93 0 +P 171 2212 1.2523629043783191e-01 1.5016324154887450e-01 -1.0511017569858179e+00 1.4224621696177961e+00 9.3827000000000005e-01 1 0 0 0 0 +P 172 -211 5.5214282633985745e-01 1.1107501711974165e-01 -2.9656055335364906e+00 3.0218364160802897e+00 1.3957000000000000e-01 1 0 0 0 0 +P 173 -3114 2.4243956428752380e+00 1.3862290434432972e-01 -3.4795719084528560e+00 4.4684697068205574e+00 1.4010318739691290e+00 2 0 0 -94 0 +P 174 -321 9.7258158118116156e-01 -3.2442714147895962e-01 -5.7679095353058232e+00 5.8790806483371956e+00 4.9359999999999998e-01 1 0 0 0 0 +P 175 321 1.1597250287476084e+00 4.0770177789498285e-01 -8.7674225604355964e+00 8.8669342049683344e+00 4.9359999999999998e-01 1 0 0 0 0 +P 176 -321 1.2473896171875081e+00 5.8064712076131186e-01 -7.6950130852787115e+00 7.8326240353106558e+00 4.9359999999999998e-01 1 0 0 0 0 +P 177 211 4.6411646485160624e-01 -3.1056116558930160e-03 -6.8807161452354304e+00 6.8977639995852016e+00 1.3957000000000000e-01 1 0 0 0 0 +P 178 113 1.1429721118154468e+00 2.0039644079081445e+00 -1.8192672029751531e+01 1.8365275501470027e+01 9.9386622150112869e-01 2 0 0 -95 0 +P 179 113 -3.7950464568590037e-01 6.9483727246069926e-01 -1.1395936644018100e+01 1.1448140272842123e+01 7.5214433514938095e-01 2 0 0 -96 0 +P 180 -211 1.1066748123962553e+00 1.5207401839636081e+00 -2.0061478070674706e+01 2.0149932059750874e+01 1.3957000000000000e-01 1 0 0 0 0 +P 181 211 2.4841143236311466e-02 2.3230814679517509e-01 -4.8359467720177013e-01 5.5491238423969202e-01 1.3957000000000000e-01 1 0 0 0 0 +P 182 221 -4.2542141885817947e-01 5.9981854143176938e-01 -9.4453389518417676e+00 9.4897257644226993e+00 5.4744999999999999e-01 2 0 0 -97 0 +P 183 111 -3.2417120919680359e-01 -3.9808752168111899e-01 -7.9310594479818883e+00 7.9488039487468249e+00 1.3497999999999999e-01 2 0 0 -98 0 +P 184 111 -5.0210374058263441e-01 1.5238011936667630e+00 -8.2367846286676585e+00 8.3926705442060054e+00 1.3497999999999999e-01 2 0 0 -99 0 +P 185 -211 2.4005831721027357e-01 -3.1272585897954058e-01 -3.1418638717544294e+00 3.1695762858893386e+00 1.3957000000000000e-01 1 0 0 0 0 +P 186 111 -7.1801802285008720e-01 -1.5663690926018516e+00 -4.6475347856871210e+00 4.9585140112706885e+00 1.3497999999999999e-01 2 0 0 -100 0 +P 187 213 -8.7754060313250792e-01 1.0687002965254111e-01 -7.7721991707009082e+00 7.8598301364746987e+00 7.6704048902773225e-01 2 0 0 -101 0 +P 188 -213 -1.7607285674592426e+00 -2.1828765548774491e+00 -9.9325807070362337e+00 1.0374911328171784e+01 1.0571236557461503e+00 2 0 0 -102 0 +P 189 111 6.0732737211851184e-02 -1.4876097180116929e-01 -8.8365199189003499e-02 2.2769782811477235e-01 1.3497999999999999e-01 2 0 0 -103 0 +V -21 0 0 0 0 0 2 1 0 +P 61 1 2.6048674114218304e+00 1.3071749066125802e+00 -4.9087263234386977e+00 5.7087331857413925e+00 0 2 0 0 -21 0 +P 62 -1 -2.6048674114218304e+00 -1.3071749066125802e+00 3.9636024064472406e+00 4.9197748428113490e+00 0 2 0 0 -21 0 +P 197 92 0 0 -9.4512391699145715e-01 1.0628508028552741e+01 1.0586402774056010e+01 2 0 0 -22 0 +V -22 0 0 0 0 0 0 7 0 +P 198 2112 8.8440371644850424e-01 7.2509545653771157e-01 -1.6825725857017333e+00 2.2409318699627123e+00 9.3957000000000002e-01 1 0 0 0 0 +P 199 111 1.2648914843620779e-01 -7.9047867519565176e-02 -4.6372272917197632e-01 5.0547644849410533e-01 1.3497999999999999e-01 2 0 0 -108 0 +P 200 -2112 7.9792227079239864e-01 4.2225813261826067e-01 -1.8859938515610912e+00 2.2923233789792832e+00 9.3957000000000002e-01 1 0 0 0 0 +P 201 313 -3.4282732844273572e-01 -3.3700984327477074e-01 4.3482101578220667e-01 1.2094706287093313e+00 1.0210992480427190e+00 2 0 0 -109 0 +P 202 -321 3.5673637654704443e-01 4.8759571964329723e-01 3.3223694327211195e-01 8.4795800287583600e-01 4.9359999999999998e-01 1 0 0 0 0 +P 203 321 -1.2446271985425277e+00 -6.2023897699434571e-01 1.2956105175346537e+00 1.9636804284509302e+00 4.9359999999999998e-01 1 0 0 0 0 +P 204 -313 -5.7809698523889164e-01 -5.9865262101058792e-01 1.0244967728543724e+00 1.5686672710805456e+00 8.4766873528821429e-01 2 0 0 -110 0 +V -23 0 0 0 0 0 0 1 0 +P 205 130 7.0071389671228546e-01 -5.7580058229065734e-01 -6.8836441564177575e-01 1.2426050350911262e+00 4.9767000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 206 211 2.3601805446980989e-01 -2.6618733465545696e-01 -2.6116918438156855e-01 4.6287076699357904e-01 1.3957000000000000e-01 1 0 0 0 0 +P 207 111 2.6649022515117178e+00 -1.5231421757903791e+00 -8.8732310945740023e-01 3.1980037521492721e+00 1.3497999999999999e-01 2 0 0 -111 0 +V -25 0 5.6566919601848354e-03 -2.2814444155476094e-03 -4.8106729505785935e-03 1.0328232916324018e-02 0 3 0 +P 210 -2214 7.5977813013376927e-01 -1.0292071107408740e-01 -1.0394990117134257e+00 1.7454207711993177e+00 1.1739165189157490e+00 2 0 0 -114 0 +P 208 311 9.8128386922335242e-01 -7.1757193254617169e-01 -6.8412429949797804e-01 1.4810567161454691e+00 4.9767000000000000e-01 2 0 0 -112 0 +P 209 111 1.5789089989780553e-01 5.4611185360415225e-02 1.0867920409584220e-01 2.4071287385579151e-01 1.3497999999999999e-01 2 0 0 -113 0 +V -26 0 0 0 0 0 0 2 0 +P 211 431 -8.9544496400355400e-01 1.0812584738803073e+00 -7.5166320522356385e+00 7.8959287756155350e+00 1.9684999999999999e+00 2 0 0 -115 0 +P 212 22 -1.2934347935662455e-01 1.8056299939314888e-01 -1.1528577356542393e+00 1.1740586403837536e+00 0 1 0 0 0 0 +V -27 0 0 0 0 0 0 1 0 +P 213 130 1.5493234368667361e-01 -5.2903668164922500e-02 -2.2756098012880561e+00 2.3351398728649673e+00 4.9767000000000000e-01 1 0 0 0 0 +V -28 0 0 0 0 0 0 1 0 +P 214 310 -1.0479399410759047e+00 3.5508361290150353e-01 -1.2285977863989042e+00 1.7266703338789495e+00 4.9767000000000000e-01 2 0 0 -116 0 +V -29 0 0 0 0 0 0 2 0 +P 215 311 -6.3303113772774122e-01 -2.0717802444266725e-01 -3.2448067298090227e-01 8.9253251547659829e-01 4.9767000000000000e-01 2 0 0 -117 0 +P 216 211 -3.2133320191013570e-01 -8.8845493592173877e-02 -7.7314963448494112e-01 8.5345690610929803e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 217 -311 2.9210454944064679e-01 -1.6108553023224306e-01 -1.5223884321452796e-01 6.1816317436209656e-01 4.9767000000000000e-01 2 0 0 -118 0 +P 218 111 1.6018610539930081e-01 2.4271751083915055e-01 -4.3737795180144273e-01 5.4230107094949964e-01 1.3497999999999999e-01 2 0 0 -119 0 +V -31 0 0 0 0 0 0 2 0 +P 219 -211 1.9395608964315619e-02 -2.0304028947714121e-03 5.1617951780191884e-01 5.3507138933158549e-01 1.3957000000000000e-01 1 0 0 0 0 +P 220 211 -2.6130105545298021e-01 -1.3189239271634661e-02 -2.4039842802187339e-01 3.8173732684765543e-01 1.3957000000000000e-01 1 0 0 0 0 +V -32 0 8.0482296730048227e-05 -1.6533279978182732e-04 9.9876545526457765e-05 2.1333955713841350e-04 0 2 0 +P 221 22 5.4686178191785839e-02 -5.8094679943429033e-02 2.1759714948860068e-03 7.9814189057458726e-02 0 1 0 0 0 0 +P 222 22 2.0679224809817040e-01 -4.7905401060734981e-01 3.2231230740117400e-01 6.1330335271768321e-01 0 1 0 0 0 0 +V -33 0 0 0 0 0 0 3 0 +P 223 -211 4.2801781509197134e-01 -1.0403622668171376e-01 -1.1956260927992245e-01 4.7728166624761242e-01 1.3957000000000000e-01 1 0 0 0 0 +P 224 211 3.2705663503245730e-01 -4.8246898921629483e-01 -1.9339384413010952e-01 6.2978038388121327e-01 1.3957000000000000e-01 1 0 0 0 0 +P 225 111 4.6015692466867701e-02 -2.0383276089091178e-02 1.0990311970840183e-01 1.8119386860202738e-01 1.3497999999999999e-01 2 0 0 -120 0 +V -34 0 0 0 0 0 0 2 0 +P 226 -211 -2.1866773818747592e-01 3.1579766966145423e-01 -1.3502781361186795e+00 1.4107709160837443e+00 1.3957000000000000e-01 1 0 0 0 0 +P 227 111 -1.7214071331345446e-01 -4.8264226777565866e-02 -6.7228410955527756e-02 2.3388270651355680e-01 1.3497999999999999e-01 2 0 0 -121 0 +V -35 0 0 0 0 0 0 2 0 +P 228 211 -3.9269766283052082e-01 -1.2163004153164388e-01 -1.0675916516465207e+00 1.1524916663303422e+00 1.3957000000000000e-01 1 0 0 0 0 +P 229 111 -3.1703515942667282e-01 4.6263260948433826e-01 -3.4987204494063704e+00 3.5459560921090518e+00 1.3497999999999999e-01 2 0 0 -122 0 +V -36 0 0 0 0 0 0 2 0 +P 230 -211 -2.5667807075318744e-01 -1.0146763652409606e-01 -7.0052877713175954e-01 7.6576737052259081e-01 1.3957000000000000e-01 1 0 0 0 0 +P 231 211 2.5100062397212689e-02 -4.5049125374518711e-01 -4.9833364175074433e+00 5.0056661912066387e+00 1.3957000000000000e-01 1 0 0 0 0 +V -37 0 -2.1056308062828918e-04 1.7930210471794663e-04 -2.1925084410489518e-03 2.2107432955447886e-03 0 2 0 +P 232 22 -2.3018986810834105e-01 2.7063917719313463e-01 -3.0344545295281806e+00 3.0551836657369069e+00 0 1 0 0 0 0 +P 233 22 -2.3047286774980685e-01 1.2163186034124118e-01 -1.7622407592754459e+00 1.7814052166395471e+00 0 1 0 0 0 0 +V -38 0 0 0 0 0 0 1 0 +P 234 310 2.7517509894565889e-01 -1.1487381757051843e-01 -2.1239959178119161e+00 2.2018063985792806e+00 4.9767000000000000e-01 2 0 0 -123 0 +V -39 0 0 0 0 0 0 2 0 +P 235 -321 -2.9230515250873707e-01 6.8174647361061602e-02 -1.5259649802190853e+00 1.6316556516560088e+00 4.9359999999999998e-01 1 0 0 0 0 +P 236 111 -4.1140648547337716e-01 -2.6823730180912397e-01 -2.6724082079295770e+00 2.7205131458202456e+00 1.3497999999999999e-01 2 0 0 -124 0 +V -40 0 -4.3948076794121348e-05 1.6065449346688851e-04 -6.1057488976406712e-04 6.3374495564102974e-04 0 2 0 +P 237 22 -2.3452133138899382e-02 1.5314581901608029e-01 -3.8829621787147561e-01 4.1806410662022048e-01 0 1 0 0 0 0 +P 238 22 -1.5625329294792351e-01 5.0377676570762064e-01 -2.1083686814135736e+00 2.1733441094289487e+00 0 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 239 -211 -1.5863681543682859e-01 3.1354292411407046e-02 -6.1213933937085041e-01 6.4833871284224542e-01 1.3957000000000000e-01 1 0 0 0 0 +P 240 111 -2.1813350257864123e-01 -2.5306866209122109e-01 -7.2407392074981836e+00 7.2496999830393873e+00 1.3497999999999999e-01 2 0 0 -125 0 +V -42 0 3.5910695792528850e-04 9.3673956898613795e-05 -4.6650550741745643e-02 4.6652085085306563e-02 0 2 0 +P 241 22 3.4522379636973621e-01 1.5547952859967618e-01 -4.9535364031978155e+01 4.9536810990757047e+01 0 1 0 0 0 0 +P 242 22 3.1283714292142595e-01 1.6177329345823128e-02 -3.5951437496245113e+01 3.5952802211098856e+01 0 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 243 311 -3.9600823279035513e-01 8.5430585125442424e-02 -3.6195759503890365e+01 3.6201447517988591e+01 4.9767000000000000e-01 2 0 0 -126 0 +P 244 211 -8.8322010909638760e-02 -2.3230389018430980e-01 -4.7761957316121880e+01 4.7762807835458695e+01 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 3 0 +P 245 111 5.2116772754951829e-02 1.2637830758610888e-01 -7.9018190793191891e+01 7.9018424329167104e+01 1.3497999999999999e-01 2 0 0 -127 0 +P 246 111 -5.2246677240471596e-03 -1.4230926848259157e-01 -7.6470870445203118e+01 7.6471122166949328e+01 1.3497999999999999e-01 2 0 0 -128 0 +P 247 221 3.1118378890592058e-01 -1.3630984864950577e-01 -2.8432103404018636e+02 2.8432176405422894e+02 5.4744999999999999e-01 2 0 0 -129 0 +V -45 0 0 0 0 0 0 2 0 +P 248 -311 -5.5517974597127173e-01 -1.4786398120312963e-01 -3.9774196700709734e+02 3.9774269331115448e+02 4.9767000000000000e-01 2 0 0 -130 0 +P 249 111 7.1429956195406319e-02 1.1262397425854469e-01 -2.4149855125190902e+02 2.4149862579892570e+02 1.3497999999999999e-01 2 0 0 -131 0 +V -46 0 0 0 0 0 0 2 0 +P 250 2112 2.2151623266281140e-01 2.2948599839512826e-01 -1.1254541776645710e+03 1.1254546150545946e+03 9.3957000000000002e-01 1 0 0 0 0 +P 251 111 3.3522844139410250e-02 2.0556422059052964e-01 -7.8301754502786298e+02 7.8301758436288753e+02 1.3497999999999999e-01 2 0 0 -132 0 +V -47 0 0 0 0 0 0 3 0 +P 252 -211 -5.8614752007926270e-02 -3.3655372812363318e-02 -8.2483134952050921e+02 8.2483136409813051e+02 1.3957000000000000e-01 1 0 0 0 0 +P 253 211 -1.0931233412869321e-01 5.8050394161407254e-02 -2.2407062653002762e+02 2.2407070418146742e+02 1.3957000000000000e-01 1 0 0 0 0 +P 254 111 8.5648550805267079e-02 -1.7810518048657847e-01 -1.6434057182756410e+02 1.6434074608976536e+02 1.3497999999999999e-01 2 0 0 -133 0 +V -48 0 0 0 0 0 0 2 0 +P 255 -211 -1.9543881906526395e-01 2.2757020818337852e-02 -2.9277793211329066e+02 2.9277803149576221e+02 1.3957000000000000e-01 1 0 0 0 0 +P 256 111 4.5496572858580364e-01 1.4838294526426893e-01 -2.6649909534793096e+02 2.6649955919696873e+02 1.3497999999999999e-01 2 0 0 -134 0 +V -49 0 0 0 0 0 0 2 0 +P 258 111 -4.9286609976579326e-01 8.2167204288579737e-02 -3.6771637985725704e+01 3.6775280395877665e+01 1.3497999999999999e-01 2 0 0 -135 0 +P 257 22 -1.4711751798151942e-01 -5.6259697251430631e-02 -9.8098834067931008e+01 9.8098960515415683e+01 0 1 0 0 0 0 +V -50 0 0 0 0 0 0 2 0 +P 259 -211 -2.3197224114737774e-01 2.0693030568941703e-01 -3.8896053948983713e+01 3.8897546501794004e+01 1.3957000000000000e-01 1 0 0 0 0 +P 260 111 1.0357375259596519e-01 -4.1258376884160269e-01 -3.6822266804582732e+01 3.6824971216781876e+01 1.3497999999999999e-01 2 0 0 -136 0 +V -51 0 0 0 0 0 0 2 0 +P 261 311 -1.6443516368771718e-01 3.8717781180786159e-01 -4.8340509295770076e+01 4.8344901075339337e+01 4.9767000000000000e-01 2 0 0 -137 0 +P 262 211 1.4456308089166173e-01 -1.1923682482498356e-01 -1.9767890695868459e+01 1.9769271566080882e+01 1.3957000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 2 0 +P 263 -211 1.8683106059886168e-01 -2.5164614323774132e-01 -5.7120358611063180e+00 5.7223303898040978e+00 1.3957000000000000e-01 1 0 0 0 0 +P 264 111 5.9359015453132734e-02 -3.5269859385229346e-01 -5.2306540289773871e+01 5.2307937222537824e+01 1.3497999999999999e-01 2 0 0 -138 0 +V -53 0 0 0 0 0 0 2 0 +P 265 321 -2.7060017363760236e-01 -2.0970188485683577e-01 -9.6242418100430420e+00 9.6429700151284194e+00 4.9359999999999998e-01 1 0 0 0 0 +P 266 111 1.7121583094049395e-01 -3.2406303517067925e-01 -1.1157425407826961e+01 1.1164259628078851e+01 1.3497999999999999e-01 2 0 0 -139 0 +V -54 0 0 0 0 0 0 2 0 +P 267 -321 -4.0442913609014586e-01 -1.6147687955186629e-02 -1.3223821966351727e+01 1.3239219464595010e+01 4.9359999999999998e-01 1 0 0 0 0 +P 268 111 1.2461278822945901e-01 3.3466457865971788e-01 -1.0255848812896222e+01 1.0262951973023387e+01 1.3497999999999999e-01 2 0 0 -140 0 +V -55 0 0 0 0 0 0 2 0 +P 269 211 1.4409689320731370e-01 5.6493751537046411e-01 -3.2584013389051369e+00 3.3130918159905778e+00 1.3957000000000000e-01 1 0 0 0 0 +P 270 111 -1.4346561340253111e-01 3.0620444051767443e-01 -5.4173952238189038e-01 6.5272111359466933e-01 1.3497999999999999e-01 2 0 0 -141 0 +V -56 0 0 0 0 0 0 3 0 +P 271 -211 -1.1482207741060419e-02 -1.8312117192440214e-01 -6.4775573213280524e-01 6.8755543639220962e-01 1.3957000000000000e-01 1 0 0 0 0 +P 272 211 5.9785090683486621e-02 -1.8030085794299547e-01 -1.0356062916028855e-01 2.5746309493806629e-01 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 6.9407967703243298e-02 1.8135039476984641e-01 -2.2897781125613634e-01 3.2917452834556382e-01 1.3497999999999999e-01 2 0 0 -142 0 +V -57 0 0 0 0 0 0 2 0 +P 274 -211 -4.3837163049861572e-01 2.9152299187613313e-02 -2.8462395439024579e-01 5.4176574576719017e-01 1.3957000000000000e-01 1 0 0 0 0 +P 275 211 1.6238597675872291e-01 3.5045427364307591e-01 -2.1453629200455779e-01 4.6334976945029910e-01 1.3957000000000000e-01 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 276 -211 2.0464411704977142e-01 2.3284289266599723e-01 -4.3412562821404987e-01 5.5139810779544129e-01 1.3957000000000000e-01 1 0 0 0 0 +P 277 111 1.7384618945869995e-01 -2.2906445694892602e-01 3.4351937443349062e-01 4.6788693510055751e-01 1.3497999999999999e-01 2 0 0 -143 0 +V -59 0 0 0 0 0 0 2 0 +P 278 213 4.3992394891943581e-01 2.2880560970011726e-01 1.0362837885132530e+00 1.4104866020206339e+00 8.1835400425562832e-01 2 0 0 -144 0 +P 279 -211 3.0681245317011434e-02 -9.2785550344249429e-02 1.4467368603156844e-01 2.2351903162113226e-01 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 280 -311 8.9352434965555338e-01 -6.9110102864767708e-01 1.3634045967932928e+00 1.8391720742449138e+00 4.9767000000000000e-01 2 0 0 -145 0 +P 281 -211 5.6647411898707156e-01 -4.8869691139755277e-02 1.2180527593897912e+00 1.3514486611600747e+00 1.3957000000000000e-01 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 282 211 3.3902061508967224e-01 -3.9965183653292830e-01 1.1898441795454691e+00 1.3076182640197989e+00 1.3957000000000000e-01 1 0 0 0 0 +P 283 111 1.3052456300222421e+00 -7.8115318420007707e-01 1.8715126470489638e+00 2.4155011157816300e+00 1.3497999999999999e-01 2 0 0 -146 0 +V -62 0 0 0 0 0 0 2 0 +P 284 211 1.4070112479551919e-01 -1.0793828470377013e-02 3.5863792581214382e-01 4.0989542566685100e-01 1.3957000000000000e-01 1 0 0 0 0 +P 285 -211 1.9298980497479277e+00 -2.1173709670199026e+00 5.4886366910921414e+00 6.1929297433527006e+00 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 0 0 0 0 0 2 0 +P 286 211 6.1961341303921946e-01 -3.1792097930846813e-01 1.0711169548656323e+00 1.2852104289194011e+00 1.3957000000000000e-01 1 0 0 0 0 +P 287 111 1.0786305410186852e+00 -1.7407558071848346e+00 4.4223555485988415e+00 4.8753587378662653e+00 1.3497999999999999e-01 2 0 0 -147 0 +V -64 0 0 0 0 0 0 2 0 +P 288 211 1.0422416969481501e+00 -1.3006721691053791e+00 1.6880434592323161e+00 2.3763388545196276e+00 1.3957000000000000e-01 1 0 0 0 0 +P 289 -211 1.8996147715411444e+00 -1.8005444514622688e+00 4.2213455750106634e+00 4.9688766185638968e+00 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 290 321 4.0566606545034806e-01 -6.9985854291668093e-01 1.6213274746742699e+00 1.8779538537687956e+00 4.9359999999999998e-01 1 0 0 0 0 +P 291 -211 3.1541098797646633e-01 -1.2938587588144628e+00 3.0596643542673432e+00 3.3398473505193902e+00 1.3957000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 2 0 +P 292 -311 2.5175435783133765e-01 2.1313109775713732e-01 6.3817070071050166e+00 6.4095760292667956e+00 4.9767000000000000e-01 2 0 0 -148 0 +P 293 111 2.7600478909195956e-02 -2.9500235341042041e-01 5.3366817197150453e+00 5.3466044881676478e+00 1.3497999999999999e-01 2 0 0 -149 0 +V -67 0 0 0 0 0 0 2 0 +P 294 -211 2.7565212559822333e-01 1.2963583969597678e-01 3.5266895443427737e+00 3.5425708845917452e+00 1.3957000000000000e-01 1 0 0 0 0 +P 295 211 -3.5836080004238641e-01 2.1559117239341402e-01 2.5939841337981151e+00 2.6311851869295220e+00 1.3957000000000000e-01 1 0 0 0 0 +V -68 0 0 0 0 0 0 1 0 +P 296 310 2.4695926864221421e-01 4.1868501205522318e-01 1.8281949053007391e+01 1.8295180311364678e+01 4.9767000000000000e-01 2 0 0 -150 0 +V -69 0 0 0 0 0 0 1 0 +P 297 310 2.9376002073213692e-01 5.4077841199444876e-01 2.3165952234661379e+01 2.3179468384934378e+01 4.9767000000000000e-01 2 0 0 -151 0 +V -70 0 0 0 0 0 0 3 0 +P 298 111 -7.3014847317132536e-02 3.6666985674012392e-01 2.2327277065206818e+01 2.2330815003010546e+01 1.3497999999999999e-01 2 0 0 -152 0 +P 299 111 -6.8709360746503190e-02 2.8337710712952435e-01 1.3589332359602992e+01 1.3593130512919101e+01 1.3497999999999999e-01 2 0 0 -153 0 +P 300 111 -5.8255209471673002e-02 3.6797523313229671e-04 7.8563483379036310e+00 7.8577237551162042e+00 1.3497999999999999e-01 2 0 0 -154 0 +V -71 0 0 0 0 0 0 2 0 +P 301 2212 1.0317604671954461e+00 2.0632794933723184e-01 5.2326524268660144e+01 5.2345511684536277e+01 9.3827000000000005e-01 1 0 0 0 0 +P 302 211 1.4692461191261935e-01 1.1989080247045376e-01 1.5123711862160690e+01 1.5125544648727947e+01 1.3957000000000000e-01 1 0 0 0 0 +V -72 0 0 0 0 0 0 2 0 +P 303 -211 -3.2198747189268129e-01 -9.6850833808676623e-02 4.6988507635577655e+01 4.6989917914587856e+01 1.3957000000000000e-01 1 0 0 0 0 +P 304 111 -2.7873164949551793e-01 -8.2638242188484548e-02 7.1702453720709034e+00 7.1774061267011149e+00 1.3497999999999999e-01 2 0 0 -155 0 +V -73 0 0 0 0 0 0 2 0 +P 305 -2212 2.5338377157655873e-01 -6.0579834534973953e-01 1.4196072898296641e+03 1.4196077517691594e+03 9.3827000000000005e-01 1 0 0 0 0 +P 306 111 2.3416759166387574e-01 2.9532218771703617e-02 1.6610797461973073e+02 1.6610819714415794e+02 1.3497999999999999e-01 2 0 0 -156 0 +V -74 0 0 0 0 0 0 2 0 +P 307 -211 5.8030238191292306e-02 2.4649524600033157e-01 4.1657029500783335e+02 4.1657039535967152e+02 1.3957000000000000e-01 1 0 0 0 0 +P 308 211 -4.7179331260214574e-01 -3.3273969337000420e-01 1.0192483723750648e+03 1.0192485454361155e+03 1.3957000000000000e-01 1 0 0 0 0 +V -75 0 0 0 0 0 0 2 0 +P 309 2212 -2.6758753905159788e-01 -2.7884430113976838e-01 2.3144541620770879e+03 2.3144543845286262e+03 9.3827000000000005e-01 1 0 0 0 0 +P 310 211 2.2815662682757848e-01 -2.6928563661664261e-02 1.0051037300159285e+03 1.0051037659626548e+03 1.3957000000000000e-01 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 311 -321 -4.5347624236370176e+00 1.1907450897810774e+00 1.0993094460568804e+01 1.1961342353041172e+01 4.9359999999999998e-01 1 0 0 0 0 +P 312 211 -3.7209029891736556e+00 1.5220631875289932e+00 9.4377232787534950e+00 1.0259234663116835e+01 1.3957000000000000e-01 1 0 0 0 0 +V -77 0 0 0 0 0 0 2 0 +P 313 311 -3.5596336877401362e+00 8.8923992828974985e-01 8.7633501659252779e+00 9.5134494900893749e+00 4.9767000000000000e-01 2 0 0 -157 0 +P 314 211 -3.4944866593546617e+00 8.7788614127547804e-01 8.4904996449162073e+00 9.2244341341175780e+00 1.3957000000000000e-01 1 0 0 0 0 +V -78 0 0 0 0 0 0 2 0 +P 315 -211 -4.7673302181934996e-02 1.6089739047097859e-01 1.2551797364767447e+00 1.2740159613455126e+00 1.3957000000000000e-01 1 0 0 0 0 +P 316 211 -7.6805537606505728e-02 9.1776230273459644e-02 2.7290467811597724e-01 3.2905731307451080e-01 1.3957000000000000e-01 1 0 0 0 0 +V -79 0 9.0412383846874141e-05 2.9827273200513847e-06 3.8488010315316091e-04 3.9546202597281295e-04 0 2 0 +P 317 22 1.3001177241993309e+00 7.6588306497609115e-02 5.4468358006212130e+00 5.6003742825277634e+00 0 1 0 0 0 0 +P 318 22 1.1640677187514868e-01 -2.9856806517261601e-02 5.8322414217913543e-01 5.9547658682301741e-01 0 1 0 0 0 0 +V -80 0 0 0 0 0 0 2 0 +P 319 -211 1.2815868877039274e+00 5.8886373999562425e-01 8.6631621951294644e+00 8.7783303913122701e+00 1.3957000000000000e-01 1 0 0 0 0 +P 320 211 5.3693988632829892e-01 4.9357797188294417e-01 2.7670560188673816e+00 2.8649611606980869e+00 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 321 211 1.2611864020975216e-01 1.2389612141421584e-01 1.5268330665860421e+00 1.5433584024556255e+00 1.3957000000000000e-01 1 0 0 0 0 +P 322 111 1.3774964266230527e+00 2.3042017249713853e-01 6.9719171579236301e+00 7.1117113494996964e+00 1.3497999999999999e-01 2 0 0 -158 0 +V -82 0 0 0 0 0 0 2 0 +P 323 22 3.8757047271998544e+00 1.0974957903932110e+00 2.5137272071142927e+01 2.5457965969830195e+01 0 1 0 0 0 0 +P 324 111 7.6480365263055428e-01 5.6549345963268216e-01 5.5303297068260200e+00 5.6131518549355803e+00 1.3497999999999999e-01 2 0 0 -159 0 +V -83 0 0 0 0 0 0 2 0 +P 325 -211 3.8588647504390106e+00 1.3164304993742422e+00 2.6975321409456164e+01 2.7282068677983851e+01 1.3957000000000000e-01 1 0 0 0 0 +P 326 111 1.3814159463609341e-01 1.5224944402949425e-01 1.3575896401481926e+00 1.3796855528755789e+00 1.3497999999999999e-01 2 0 0 -160 0 +V -84 0 0 0 0 0 0 2 0 +P 327 211 4.4402643587743125e+00 1.2312481262739294e+00 2.3969983537631109e+01 2.4409250502697965e+01 1.3957000000000000e-01 1 0 0 0 0 +P 328 -211 4.9177559628960754e+00 1.9209371235558570e+00 3.0908055846156746e+01 3.1356047568488268e+01 1.3957000000000000e-01 1 0 0 0 0 +V -85 0 0 0 0 0 0 2 0 +P 329 22 2.3023456618513665e+00 4.3664135995883580e-01 1.3453062152332874e+01 1.3655633727454896e+01 0 1 0 0 0 0 +P 330 22 5.8319108406716824e-01 2.5998213749120752e-01 2.4833213834801269e+00 2.5640958730124712e+00 0 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 331 -321 3.8129236036372465e+00 2.3916504287804465e+00 9.7796113830415905e+00 1.0776957731381170e+01 4.9359999999999998e-01 1 0 0 0 0 +P 332 211 4.3871570358615983e+00 3.0086902262651471e+00 1.2397932613841485e+01 1.3491759581951781e+01 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 0 0 0 0 0 2 0 +P 333 3122 1.1609162906290964e+00 -1.4066122912385346e-02 3.5008612023205194e+00 3.8534005125310915e+00 1.1156800000000000e+00 2 0 0 -161 0 +P 334 111 -4.0838506149200336e-02 5.5177303624111697e-02 2.2512846801554973e-01 2.7132037507484408e-01 1.3497999999999999e-01 2 0 0 -162 0 +V -88 0 1.0975634495181953e+02 1.3430806656920803e+01 2.4783845861744948e+02 3.5131081000941208e+02 0 2 0 +P 335 -2212 4.3598416274050478e-01 5.6969389177054186e-02 1.1732545494018880e+00 1.5653129182549963e+00 9.3827000000000005e-01 1 0 0 0 0 +P 336 211 1.1291406118563700e-01 1.0198900028598853e-02 6.6200807966546288e-02 1.9161402519296616e-01 1.3957000000000000e-01 1 0 0 0 0 +V -89 0 0 0 0 0 0 2 0 +P 337 211 2.1870704015585739e-02 -4.7659285060522572e-01 4.7808091053954144e-01 6.8968124149092913e-01 1.3957000000000000e-01 1 0 0 0 0 +P 338 111 -2.6692130361395883e-01 2.8247638498948274e-01 1.3711111945500606e-02 4.1163999488689595e-01 1.3497999999999999e-01 2 0 0 -163 0 +V -90 0 8.5034176885997429e-06 -6.7497812436783921e-06 -9.5502217000439534e-06 1.7926682700109905e-05 0 2 0 +P 339 22 1.8935384391547218e-02 -1.1026659860805992e-02 2.9922270718085193e-02 3.7087441198712261e-02 0 1 0 0 0 0 +P 340 22 8.9379809260152335e-02 -7.4950989278527919e-02 -1.5157148880174542e-01 1.9125981625733321e-01 0 1 0 0 0 0 +V -91 0 -2.6421968631437817e+01 -5.1562678965288278e+01 -3.9896866896154776e+01 1.8744987313214875e+02 0 2 0 +P 341 -2212 -7.3950672556528596e-02 -2.6360618044473205e-01 -2.8746064573095914e-01 1.0187939615468300e+00 9.3827000000000005e-01 1 0 0 0 0 +P 342 211 -9.5710096102158526e-02 -6.7488139943758838e-02 3.1274848257071206e-02 1.8485933182410788e-01 1.3957000000000000e-01 1 0 0 0 0 +V -92 0 0 0 0 0 0 2 0 +P 343 -311 1.1140884226725156e+00 1.6365689466410080e-01 -1.4262615386176185e+00 1.8841109304241952e+00 4.9767000000000000e-01 2 0 0 -164 0 +P 344 -211 7.3708063476785890e-01 -8.6107444359986976e-02 -3.5085329035071899e-01 8.3263447584995176e-01 1.3957000000000000e-01 1 0 0 0 0 +V -93 0 0 0 0 0 0 2 0 +P 345 22 -5.7123332739010456e-02 -3.3479252640843915e-01 -2.7213051787595932e-01 4.3520584743497520e-01 0 1 0 0 0 0 +P 346 22 1.7083633293661915e-01 -6.5795912271685339e-02 -9.4736965871340673e-01 9.6489555132856297e-01 0 1 0 0 0 0 +V -94 0 0 0 0 0 0 2 0 +P 347 -3212 1.9971148756783932e+00 8.2087761602473608e-02 -2.6812799831652443e+00 3.5505836249669493e+00 1.1925500000000000e+00 2 0 0 -165 0 +P 348 211 4.2728076719684455e-01 5.6535142741856115e-02 -7.9829192528761195e-01 9.1788608185360798e-01 1.3957000000000000e-01 1 0 0 0 0 +V -95 0 0 0 0 0 0 2 0 +P 349 211 6.1625006614860123e-01 3.3726744154614779e-01 -3.8762194687017835e+00 3.9418359460533079e+00 1.3957000000000000e-01 1 0 0 0 0 +P 350 -211 5.2672204566684544e-01 1.6666969663619966e+00 -1.4316452561049747e+01 1.4423439555416719e+01 1.3957000000000000e-01 1 0 0 0 0 +V -96 0 0 0 0 0 0 2 0 +P 351 211 -2.6966608895498762e-01 -6.5970053751465196e-02 -3.2902343026367840e+00 3.3048741880247143e+00 1.3957000000000000e-01 1 0 0 0 0 +P 352 -211 -1.0983855673091272e-01 7.6080732621216451e-01 -8.1057023413813170e+00 8.1432660848174052e+00 1.3957000000000000e-01 1 0 0 0 0 +V -97 0 0 0 0 0 0 3 0 +P 353 -211 -9.5798582554692188e-02 6.9395665012517205e-02 -2.6561900193963992e+00 2.6624834892977387e+00 1.3957000000000000e-01 1 0 0 0 0 +P 354 211 -1.0201638753756302e-01 7.8384892820417440e-02 -1.4266697985266141e+00 1.4392421733942666e+00 1.3957000000000000e-01 1 0 0 0 0 +P 355 111 -2.2760644876592431e-01 4.5203798359883485e-01 -5.3624791339187565e+00 5.3880001017306958e+00 1.3497999999999999e-01 2 0 0 -166 0 +V -98 0 -3.9923320403745477e-04 -4.9026487318803503e-04 -9.7674999660659484e-03 9.7893532142676720e-03 0 2 0 +P 356 22 -1.4843256441632337e-02 -9.8178167278801382e-02 -1.6499349459668522e+00 1.6529200224798102e+00 0 1 0 0 0 0 +P 357 22 -3.0932795275517122e-01 -2.9990935440231759e-01 -6.2811245020150359e+00 6.2958839262670150e+00 0 1 0 0 0 0 +V -99 0 -1.7845130097297728e-05 5.4156996543876026e-05 -2.9274128312893144e-04 2.9828158131490031e-04 0 2 0 +P 358 22 -4.1125557872182977e-01 1.3713585033970590e+00 -7.2366302516774024e+00 7.3768945156726886e+00 0 1 0 0 0 0 +P 359 22 -9.0848161860804577e-02 1.5244269026970386e-01 -1.0001543769902554e+00 1.0157760285333168e+00 0 1 0 0 0 0 +V -100 0 -1.7464889567159729e-05 -3.8099967344991282e-05 -1.1304546572434142e-04 1.2060964609259914e-04 0 2 0 +P 360 22 -3.0645574781966489e-01 -8.1589910932750886e-01 -2.2644604052437702e+00 2.4263939104955554e+00 0 1 0 0 0 0 +P 361 22 -4.1156227503042225e-01 -7.5046998327434278e-01 -2.3830743804433507e+00 2.5321201007751331e+00 0 1 0 0 0 0 +V -101 0 0 0 0 0 0 2 0 +P 362 211 -3.5384588913819282e-01 -2.4715825133371802e-01 -4.6086448568373415e+00 4.6309158182605330e+00 1.3957000000000000e-01 1 0 0 0 0 +P 363 111 -5.2369471399431522e-01 3.5402828098625916e-01 -3.1635543138635680e+00 3.2289143182141680e+00 1.3497999999999999e-01 2 0 0 -167 0 +V -102 0 0 0 0 0 0 2 0 +P 364 -211 -1.7431049169384474e+00 -1.7742747005688735e+00 -7.4560336745052949e+00 7.8611947822701023e+00 1.3957000000000000e-01 1 0 0 0 0 +P 365 111 -1.7623650520795352e-02 -4.0860185430857604e-01 -2.4765470325309402e+00 2.5137165459016839e+00 1.3497999999999999e-01 2 0 0 -168 0 +V -103 0 3.7599471820826971e-07 -9.2097511557332473e-07 -5.4706653600331399e-07 1.4096710382080819e-06 0 2 0 +P 366 22 -9.0039096884929875e-03 -2.1160661174125472e-02 3.1671981710379361e-02 3.9140240117649924e-02 0 1 0 0 0 0 +P 367 22 6.9736646900344174e-02 -1.2760031062704383e-01 -1.2003718089938287e-01 1.8855758799712244e-01 0 1 0 0 0 0 +V -104 0 -3.8731844410967580e+02 -6.0808637297836094e+02 -2.1351637808991841e+03 2.3238351683362093e+03 0 2 0 +P 368 3122 -8.6514155217381961e-01 -1.3957847305443358e+00 -4.6801671989749298e+00 5.0838363262480524e+00 1.1156800000000000e+00 2 0 0 -169 0 +P 369 111 -3.3051734332077809e-02 -1.4370417322118634e-02 -2.7128761233052251e-01 3.0514831646326673e-01 1.3497999999999999e-01 2 0 0 -170 0 +V -105 0 0 0 0 0 0 1 0 +P 370 130 -9.8211331445284256e-01 -7.9298343389061809e-01 -1.4504485608208735e+00 1.9861635746679696e+00 4.9767000000000000e-01 1 0 0 0 0 +V -106 0 0 0 0 0 0 2 0 +P 371 -3122 -1.6814953787803824e+00 -7.7260118861255445e-01 -3.6931903303234876e+00 4.2788708772175195e+00 1.1156800000000000e+00 2 0 0 -171 0 +P 372 22 -6.0636364410652108e-02 -4.9613725855513595e-02 -3.9809263716227318e-02 8.7880987476447889e-02 0 1 0 0 0 0 +V -107 0 0 0 0 0 0 1 0 +P 373 130 -9.4646039874614889e+00 -5.6457554838761190e+00 -1.0111196049899565e+01 1.4964532889856393e+01 4.9767000000000000e-01 1 0 0 0 0 +V -108 0 6.1241494302732311e-06 -3.8272133129143903e-06 -2.2451785965620250e-05 2.4473350815725669e-05 0 2 0 +P 374 22 9.7949275500252477e-03 -8.2164757971790112e-02 -1.6085439852995365e-01 1.8088981614426572e-01 0 1 0 0 0 0 +P 375 22 1.1669422088618255e-01 3.1168904522249487e-03 -3.0286833064202273e-01 3.2458663234983964e-01 0 1 0 0 0 0 +V -109 0 0 0 0 0 0 2 0 +P 376 321 -3.1631630540514204e-02 -2.4636611909620174e-01 6.0355908816096149e-01 8.1830395183627624e-01 4.9359999999999998e-01 1 0 0 0 0 +P 377 -211 -3.1119569790222151e-01 -9.0643724178569043e-02 -1.6873807237875477e-01 3.9116667687305512e-01 1.3957000000000000e-01 1 0 0 0 0 +V -110 0 0 0 0 0 0 2 0 +P 378 -321 -5.0002061820812771e-01 -6.6876333827903711e-01 9.9856599175467453e-01 1.3921350585156445e+00 4.9359999999999998e-01 1 0 0 0 0 +P 379 211 -7.8076367030763885e-02 7.0110717268449307e-02 2.5930781099697733e-02 1.7653221256490112e-01 1.3957000000000000e-01 1 0 0 0 0 +V -111 0 5.7242773048955394e-05 -3.2717478414302510e-05 -1.9059924373192351e-05 6.8693927850502852e-05 0 2 0 +P 380 22 1.7977262661769522e+00 -9.7971204743102736e-01 -6.4165230874684842e-01 2.1455472750103133e+00 0 1 0 0 0 0 +P 381 22 8.6717598533476581e-01 -5.4343012835935178e-01 -2.4567080071055178e-01 1.0524564771389584e+00 0 1 0 0 0 0 +V -112 0 5.6566919601848354e-03 -2.2814444155476094e-03 -4.8106729505785935e-03 1.0328232916324018e-02 0 1 0 +P 382 130 9.8128386922335242e-01 -7.1757193254617169e-01 -6.8412429949797804e-01 1.4810567161454691e+00 4.9767000000000000e-01 1 0 0 0 0 +V -113 0 5.6927899618635560e-03 -2.2689588659554980e-03 -4.7858260335337677e-03 1.0383266193923678e-02 0 2 0 +P 383 22 1.0727648575389558e-01 4.4401346708756603e-02 -4.6291163569520894e-03 1.1619446072641836e-01 0 1 0 0 0 0 +P 384 22 5.0614414143909950e-02 1.0209838651658623e-02 1.1330832045279429e-01 1.2451841312937319e-01 0 1 0 0 0 0 +V -114 0 5.6566919601848354e-03 -2.2814444155476094e-03 -4.8106729505785935e-03 1.0328232916324018e-02 0 2 0 +P 385 -2212 7.7903213016385631e-01 -1.3109001191938108e-01 -1.0369975033227592e+00 1.6061724894451079e+00 9.3827000000000005e-01 1 0 0 0 0 +P 386 111 -1.9254000030087138e-02 2.8169300845293684e-02 -2.5015083906664392e-03 1.3924828175420992e-01 1.3497999999999999e-01 2 0 0 -172 0 +V -115 0 -2.5371547209646385e-02 3.0636389190498072e-02 -2.1297633314969514e-01 2.2372333057617133e-01 0 3 0 +P 387 -11 -2.7872666759670595e-01 4.0869513283640058e-01 -7.5930543668767891e-01 9.0623687472823267e-01 5.1000000000000004e-04 1 0 0 0 0 +P 388 12 2.1061848626626939e-01 -1.0932717228124468e-01 -5.7973006096139035e-01 6.2641800815302651e-01 0 1 0 0 0 0 +P 389 333 -8.2733678267311739e-01 7.8189051332515147e-01 -6.1775965545865690e+00 6.3632738927342753e+00 1.0162266065804424e+00 2 0 0 -173 0 +V -116 0 -1.6652958063643953e+02 5.6426826413973046e+01 -1.9523816787611872e+02 2.7438756299624157e+02 0 2 0 +P 390 111 -5.5063191197028871e-01 1.7973867556858722e-03 -7.4723439495187260e-01 9.3796459127106524e-01 1.3497999999999999e-01 2 0 0 -174 0 +P 391 111 -4.9730802910561589e-01 3.5328622614581767e-01 -4.8136339144703161e-01 7.8870574260788417e-01 1.3497999999999999e-01 2 0 0 -175 0 +V -117 0 0 0 0 0 0 1 0 +P 392 130 -6.3303113772774122e-01 -2.0717802444266725e-01 -3.2448067298090227e-01 8.9253251547659829e-01 4.9767000000000000e-01 1 0 0 0 0 +V -118 0 0 0 0 0 0 1 0 +P 393 310 2.9210454944064679e-01 -1.6108553023224306e-01 -1.5223884321452796e-01 6.1816317436209656e-01 4.9767000000000000e-01 2 0 0 -176 0 +V -119 0 3.0128146157781292e-05 4.5650829848109356e-05 -8.2262982954840020e-05 1.0199714816937651e-04 0 2 0 +P 394 22 1.7327331324276590e-01 2.5107595073573147e-01 -4.1746127939969052e-01 5.1704612358860558e-01 0 1 0 0 0 0 +P 395 22 -1.3087207843465083e-02 -8.3584398965809228e-03 -1.9916672401752208e-02 2.5254947360894051e-02 0 1 0 0 0 0 +V -120 0 1.0816420442246132e-06 -4.7912803730757445e-07 2.5833759896941966e-06 4.2591319597499850e-06 0 2 0 +P 396 22 -3.7013800308679519e-02 2.0425699872580520e-02 6.6978992311673077e-02 7.9204899088772901e-02 0 1 0 0 0 0 +P 397 22 8.3029492775547220e-02 -4.0808975961671698e-02 4.2924127396728746e-02 1.0198896951325444e-01 0 1 0 0 0 0 +V -121 0 -8.0635541185482363e-05 -2.2608318341409421e-05 -3.1491674433623302e-05 1.0955722356805153e-04 0 2 0 +P 398 22 6.1605732605138725e-03 2.0252052130026385e-02 1.4978030975011219e-02 2.5931442116933264e-02 0 1 0 0 0 0 +P 399 22 -1.7830128657396835e-01 -6.8516278907592251e-02 -8.2206441930538970e-02 2.0795126439662356e-01 0 1 0 0 0 0 +V -122 0 -1.1689491264961073e-04 1.7057855214648910e-04 -1.2900229175160562e-03 1.3074393023033567e-03 0 2 0 +P 400 22 -1.0971836549544467e-01 2.1286683469193721e-01 -1.1299214575560315e+00 1.1550207397637076e+00 0 1 0 0 0 0 +P 401 22 -2.0731679393122815e-01 2.4976577479240111e-01 -2.3687989918503392e+00 2.3909353523453438e+00 0 1 0 0 0 0 +V -123 0 8.7532349491237973e+00 -3.6541006746257270e+00 -6.7563654454282670e+01 7.0038781826892503e+01 0 2 0 +P 402 -211 1.3178166664474288e-02 1.0972312838034502e-01 -3.9607722339418833e-01 4.3424622136508695e-01 1.3957000000000000e-01 1 0 0 0 0 +P 403 211 2.6199693228118459e-01 -2.2459694595086344e-01 -1.7279186944177274e+00 1.7675601772141933e+00 1.3957000000000000e-01 1 0 0 0 0 +V -124 0 -5.1006948095061883e-05 -3.3256564039807341e-05 -3.3133018453473608e-04 3.3729432500588654e-04 0 2 0 +P 404 22 -1.2481427652994612e-01 -4.0398131487697303e-02 -9.9515989211106448e-01 1.0037698060411546e+00 0 1 0 0 0 0 +P 405 22 -2.8659220894343101e-01 -2.2783917032142667e-01 -1.6772483158185125e+00 1.7167433397790914e+00 0 1 0 0 0 0 +V -125 0 -6.6771289255523520e-05 -7.7465041537621302e-05 -2.2164109883733708e-03 2.2191539074048012e-03 0 2 0 +P 406 22 -1.9030878728761155e-01 -1.4045162333880731e-01 -5.5124814429757212e+00 5.5175534208713453e+00 0 1 0 0 0 0 +P 407 22 -2.7824715291029679e-02 -1.1261703875241377e-01 -1.7282577645224619e+00 1.7321465621680421e+00 0 1 0 0 0 0 +V -126 0 0 0 0 0 0 1 0 +P 408 130 -3.9600823279035513e-01 8.5430585125442424e-02 -3.6195759503890365e+01 3.6201447517988591e+01 4.9767000000000000e-01 1 0 0 0 0 +V -127 0 2.2759620483605243e-07 5.5189954518948540e-07 -3.4507586304512335e-04 3.4507688290684615e-04 0 2 0 +P 409 22 3.0856412353213424e-02 5.9777091246928050e-03 -3.6768297434222319e+00 3.6769640756069517e+00 0 1 0 0 0 0 +P 410 22 2.1260360401738412e-02 1.2040059846141607e-01 -7.5341361049769660e+01 7.5341460253560143e+01 0 1 0 0 0 0 +V -128 0 -1.4546449214941991e-06 -3.9621554061126310e-05 -2.1290916324375901e-02 2.1290986408404031e-02 0 2 0 +P 411 22 3.8619005530965513e-02 5.6053830183775341e-03 -2.1420869175201346e+01 2.1420904721066243e+01 0 1 0 0 0 0 +P 412 22 -4.3843673255012677e-02 -1.4791465150096908e-01 -5.5050001270001772e+01 5.5050217445883071e+01 0 1 0 0 0 0 +V -129 0 0 0 0 0 0 2 0 +P 413 22 4.4122106100820724e-01 -2.1533581732208446e-01 -2.0951066441389207e+02 2.0951123967150164e+02 0 1 0 0 0 0 +P 414 22 -1.3003727210228663e-01 7.9025968672578689e-02 -7.4810369626294275e+01 7.4810524382727280e+01 0 1 0 0 0 0 +V -130 0 0 0 0 0 0 1 0 +P 415 130 -5.5517974597127173e-01 -1.4786398120312963e-01 -3.9774196700709734e+02 3.9774269331115448e+02 4.9767000000000000e-01 1 0 0 0 0 +V -131 0 3.1162561148663985e-05 4.9134168233791584e-05 -1.0535794464319381e-01 1.0535797716562684e-01 0 2 0 +P 416 22 -1.0407303676525636e-02 3.1435820824456277e-02 -1.4769705612958035e+02 1.4769705984164750e+02 0 1 0 0 0 0 +P 417 22 8.1837259871931953e-02 8.1188153434088417e-02 -9.3801495122328660e+01 9.3801565957278186e+01 0 1 0 0 0 0 +V -132 0 2.6061695549965017e-06 1.5981198106929131e-05 -6.0874205016532332e-02 6.0874208074558754e-02 0 2 0 +P 418 22 6.6075216703169640e-02 6.9070271124056309e-02 -2.0477358048603864e+02 2.0477360279515705e+02 0 1 0 0 0 0 +P 419 22 -3.2552372563759389e-02 1.3649394946647336e-01 -5.7824396454182443e+02 5.7824398156773043e+02 0 1 0 0 0 0 +V -133 0 6.6869850793435513e-05 -1.3905508888006766e-04 -1.2830841169050197e-01 1.2830854774519626e-01 0 2 0 +P 420 22 4.6019185382323302e-02 9.8218810952675831e-03 -2.9691019717235697e+01 2.9691057005166559e+01 0 1 0 0 0 0 +P 421 22 3.9629365422943770e-02 -1.8792706158184605e-01 -1.3464955211032841e+02 1.3464968908459880e+02 0 1 0 0 0 0 +V -134 0 9.0991403364029891e-05 2.9676020800185506e-05 -5.3298798475057925e-02 5.3298891243089092e-02 0 2 0 +P 422 22 3.9077415047769848e-02 4.8750449525309471e-02 -5.1996999227038948e+01 5.1997036764294414e+01 0 1 0 0 0 0 +P 423 22 4.1588831353803374e-01 9.9632495738959437e-02 -2.1450209612089199e+02 2.1450252243267425e+02 0 1 0 0 0 0 +V -135 0 -1.2095638437121250e-05 2.0165006173806986e-06 -9.0242854606434981e-04 9.0251793601480227e-04 0 2 0 +P 424 22 -3.5447452752054448e-01 9.8399755132051580e-03 -2.8089725048300163e+01 2.8091963304562395e+01 0 1 0 0 0 0 +P 425 22 -1.3839157224524873e-01 7.2327228775374577e-02 -8.6819129374255386e+00 8.6833170913152617e+00 0 1 0 0 0 0 +V -136 0 1.0813245780814463e-05 -4.3074327093877904e-05 -3.8442965634151380e-03 3.8445789078611868e-03 0 2 0 +P 426 22 1.0313626454632320e-01 -3.8557612802981556e-01 -3.0050256643978344e+01 3.0052907187301116e+01 0 1 0 0 0 0 +P 427 22 4.3748804964200425e-04 -2.7007640811787147e-02 -6.7720101606043936e+00 6.7720640294807559e+00 0 1 0 0 0 0 +V -137 0 0 0 0 0 0 1 0 +P 428 130 -1.6443516368771718e-01 3.8717781180786159e-01 -4.8340509295770076e+01 4.8344901075339337e+01 4.9767000000000000e-01 1 0 0 0 0 +V -138 0 1.2358140420271945e-05 -7.3429431327083619e-05 -1.0889863399267724e-02 1.0890154231100478e-02 0 2 0 +P 429 22 5.4301957071902614e-02 -2.3699319567331695e-01 -2.5848595506596457e+01 2.5849738956921321e+01 0 1 0 0 0 0 +P 430 22 5.0570583812301105e-03 -1.1570539817897650e-01 -2.6457944783177410e+01 2.6458198265616499e+01 0 1 0 0 0 0 +V -139 0 1.8563265975374583e-05 -3.5135000552321780e-05 -1.2096910332893111e-03 1.2104320012685755e-03 0 2 0 +P 431 22 -2.0573197242309865e-02 -6.4597219190626887e-02 -2.0488562601975113e+00 2.0499775686876340e+00 0 1 0 0 0 0 +P 432 22 1.9178902818280380e-01 -2.5946581598005236e-01 -9.1085691476294492e+00 9.1142820593912131e+00 0 1 0 0 0 0 +V -140 0 7.3023607112404456e-06 1.9611482138964182e-05 -6.0099696424263584e-04 6.0141321235147990e-04 0 2 0 +P 433 22 8.5228359671132362e-03 2.1369962414334492e-01 -5.5669311705913973e+00 5.5710378589805023e+00 0 1 0 0 0 0 +P 434 22 1.1608995226234577e-01 1.2096495451637290e-01 -4.6889176423048236e+00 4.6919141140428886e+00 0 1 0 0 0 0 +V -141 0 -2.3365100375587745e-05 4.9869075372593264e-05 -8.8228795860378044e-05 1.0630348258864234e-04 0 2 0 +P 435 22 -2.1041114039385373e-02 1.8088591190867334e-01 -2.1317543175488898e-01 2.8036798374802724e-01 0 1 0 0 0 0 +P 436 22 -1.2242449936314574e-01 1.2531852860900106e-01 -3.2856409062700143e-01 3.7235312984664198e-01 0 1 0 0 0 0 +V -142 0 4.2726307465371662e-06 1.1163606978137926e-05 -1.4095465823616622e-05 2.0263397090077968e-05 0 2 0 +P 437 22 1.0186902240864532e-01 1.7539794796065869e-01 -2.0495815398301412e-01 2.8835669362688277e-01 0 1 0 0 0 0 +P 438 22 -3.2461054705402004e-02 5.9524468091877421e-03 -2.4019657273122230e-02 4.0817834718681036e-02 0 1 0 0 0 0 +V -143 0 4.2281042290289621e-05 -5.5710648715487775e-05 8.3547170307156796e-05 1.1379454074695370e-04 0 2 0 +P 439 22 -2.2282498559312240e-02 -1.7643232610581851e-02 4.1478065186052578e-02 5.0281440816421281e-02 0 1 0 0 0 0 +P 440 22 1.9612868801801220e-01 -2.1142122433834418e-01 3.0204130924743805e-01 4.1760549428413618e-01 0 1 0 0 0 0 +V -144 0 0 0 0 0 0 2 0 +P 441 211 1.7357088956032946e-01 -1.8008964314199971e-01 3.5114064368815236e-02 2.8856873650185011e-01 1.3957000000000000e-01 1 0 0 0 0 +P 442 111 2.6635305935910647e-01 4.0889525284211697e-01 1.0011697241444379e+00 1.1219178655187840e+00 1.3497999999999999e-01 2 0 0 -177 0 +V -145 0 0 0 0 0 0 1 0 +P 443 310 8.9352434965555338e-01 -6.9110102864767708e-01 1.3634045967932928e+00 1.8391720742449138e+00 4.9767000000000000e-01 2 0 0 -178 0 +V -146 0 5.7833814820138906e-04 -3.4611928637845181e-04 8.2924403938539407e-04 1.0702785821667389e-03 0 2 0 +P 444 22 2.6959401219222473e-01 -1.8065595805513682e-01 4.8652922632802997e-01 5.8483176611917398e-01 0 1 0 0 0 0 +P 445 22 1.0356516178300175e+00 -6.0049722614494039e-01 1.3849834207209339e+00 1.8306693496624562e+00 0 1 0 0 0 0 +V -147 0 5.5018284876725698e-05 -8.8791662444546657e-05 2.2557345462255435e-04 2.4868003057175941e-04 0 2 0 +P 446 22 9.0519481106229416e-01 -1.5401715592524401e+00 3.8907227545652390e+00 4.2812649568551482e+00 0 1 0 0 0 0 +P 447 22 1.7343572995639095e-01 -2.0058424793239438e-01 5.3163279403360253e-01 5.9409378101111721e-01 0 1 0 0 0 0 +V -148 0 0 0 0 0 0 1 0 +P 448 130 2.5175435783133765e-01 2.1313109775713732e-01 6.3817070071050166e+00 6.4095760292667956e+00 4.9767000000000000e-01 1 0 0 0 0 +V -149 0 1.8668185865974611e-05 -1.9953127561604650e-04 3.6095810720876997e-03 3.6162925529423487e-03 0 2 0 +P 449 22 7.2766800981078810e-03 2.7433684711522560e-03 8.3729214991090684e-01 8.3732826325536569e-01 0 1 0 0 0 0 +P 450 22 2.0323798811088076e-02 -2.9774572188157267e-01 4.4993895698041380e+00 4.5092762249122815e+00 0 1 0 0 0 0 +V -150 0 1.3696078707448002e+01 2.3219792114969632e+01 1.0138959939920347e+03 1.0146297844541476e+03 0 2 0 +P 451 111 7.0206635722018476e-02 6.5462957243239944e-02 1.1020395065887524e+01 1.1021639686503478e+01 1.3497999999999999e-01 2 0 0 -179 0 +P 452 111 1.7675263292019575e-01 3.5322205481198321e-01 7.2615539871198669e+00 7.2735406248611998e+00 1.3497999999999999e-01 2 0 0 -180 0 +V -151 0 1.5467461870827629e+01 2.8473818347520936e+01 1.2197659912945378e+03 1.2204776624690801e+03 0 2 0 +P 453 211 -5.2601173246719701e-02 3.3039934938404780e-01 1.0273766610755112e+01 1.0280160055693049e+01 1.3957000000000000e-01 1 0 0 0 0 +P 454 -211 3.4636119397885656e-01 2.1037906261040085e-01 1.2892185623906263e+01 1.2899308329241325e+01 1.3957000000000000e-01 1 0 0 0 0 +V -152 0 -8.6330281890986453e-06 4.3353801666958921e-05 2.6399016004587045e-03 2.6403199142388894e-03 0 2 0 +P 455 22 2.6083272253419752e-02 1.5952465080702885e-01 7.3460499969475057e+00 7.3478281831408516e+00 0 1 0 0 0 0 +P 456 22 -9.9098119570552284e-02 2.0714520593309504e-01 1.4981227068259312e+01 1.4982986819869694e+01 0 1 0 0 0 0 +V -153 0 -1.3713360241077502e-05 5.6557830140187285e-05 2.7122273887907147e-03 2.7129854433572071e-03 0 2 0 +P 457 22 -3.2139365825025600e-02 1.3537777065909119e-02 3.3379524226511128e+00 3.3381345967659777e+00 0 1 0 0 0 0 +P 458 22 -3.6569994921477583e-02 2.6983933006361521e-01 1.0251379936951878e+01 1.0254995916153122e+01 0 1 0 0 0 0 +V -154 0 -1.8577981731263623e-05 1.1734979962630551e-07 2.5054428130927703e-03 2.5058814429780593e-03 0 2 0 +P 459 22 -3.2575852346062410e-02 6.3591920058035073e-02 5.2340628634658524e+00 5.2345505229355744e+00 0 1 0 0 0 0 +P 460 22 -2.5679357125610595e-02 -6.3223944824902775e-02 2.6222854744377790e+00 2.6231732321806303e+00 0 1 0 0 0 0 +V -155 0 -5.1794463602787913e-05 -1.5356000780595467e-05 1.3323891047857367e-03 1.3337197303021943e-03 0 2 0 +P 461 22 -2.4156328517547213e-01 -1.1451197786655225e-01 6.4209768595352923e+00 6.4265394766162753e+00 0 1 0 0 0 0 +P 462 22 -3.7168364320045832e-02 3.1873735678067699e-02 7.4926851253561166e-01 7.5086665008484121e-01 0 1 0 0 0 0 +V -156 0 7.5943080969019332e-05 9.5776177456424032e-06 5.3870611541554550e-02 5.3870683708631448e-02 0 2 0 +P 463 22 -1.5680821504989124e-02 -5.4140422597006924e-03 1.8017934436852070e+01 1.8017942073686338e+01 0 1 0 0 0 0 +P 464 22 2.4984841316886486e-01 3.4946261031404309e-02 1.4809004018287865e+02 1.4809025507047161e+02 0 1 0 0 0 0 +V -157 0 0 0 0 0 0 1 0 +P 465 130 -3.5596336877401362e+00 8.8923992828974985e-01 8.7633501659252779e+00 9.5134494900893749e+00 4.9767000000000000e-01 1 0 0 0 0 +V -158 0 1.3287239623354180e-04 2.2226177773322776e-05 6.7250652793784471e-04 6.8599098340012060e-04 0 2 0 +P 466 22 1.1106353772405320e+00 1.4436855076860167e-01 5.3887210357718693e+00 5.5038775078120601e+00 0 1 0 0 0 0 +P 467 22 2.6686104938252070e-01 8.6051621728536865e-02 1.5831961221517605e+00 1.6078338416876363e+00 0 1 0 0 0 0 +V -159 0 5.7037006887288153e-05 4.2172986806283377e-05 4.1243716932087290e-04 4.1861382317954235e-04 0 2 0 +P 468 22 3.2331850119604405e-01 1.6744575558836336e-01 2.2859616585715821e+00 2.3147772330700751e+00 0 1 0 0 0 0 +P 469 22 4.4148515143451034e-01 3.9804770404431883e-01 3.2443680482544379e+00 3.2983746218655052e+00 0 1 0 0 0 0 +V -160 0 1.1983470401006283e-05 1.3207294377217294e-05 1.1776782592010122e-04 1.1968459629508770e-04 0 2 0 +P 470 22 -2.4301340066221078e-02 4.3907283769436582e-02 2.4401938288657385e-01 2.4912620079262698e-01 0 1 0 0 0 0 +P 471 22 1.6244293470231447e-01 1.0834216026005766e-01 1.1135702572616186e+00 1.1305593520829520e+00 0 1 0 0 0 0 +V -161 0 3.4630075284514206e+01 -4.1959174778499408e-01 1.0443051577069147e+02 1.1494674588296520e+02 0 2 0 +P 472 2212 1.1005933998556439e+00 -6.1749009761674328e-02 3.0746031880408422e+00 3.3983310799307449e+00 9.3827000000000005e-01 1 0 0 0 0 +P 473 -211 6.0322890773452480e-02 4.7682886849288987e-02 4.2625801427967658e-01 4.5506943260034610e-01 1.3957000000000000e-01 1 0 0 0 0 +V -162 0 -4.7357584723182360e-06 6.3985294212991023e-06 2.6106587882268586e-05 3.1463143149236232e-05 0 2 0 +P 474 22 4.3973266892092941e-04 5.6365207826361091e-02 1.6625948052190604e-02 5.8767781707013016e-02 0 1 0 0 0 0 +P 475 22 -4.1278238818121267e-02 -1.1879042022493941e-03 2.0850251996335911e-01 2.1255259336783106e-01 0 1 0 0 0 0 +V -163 0 -5.7563317206079826e-06 6.0917871793002808e-06 2.9568905721680543e-07 8.8772845327675524e-06 0 2 0 +P 476 22 2.1872890559984882e-03 -1.0401663083794799e-02 8.9124295742047579e-03 1.3871201434570646e-02 0 1 0 0 0 0 +P 477 22 -2.6910859266995735e-01 2.9287804807327755e-01 4.7986823712958485e-03 3.9776879345232552e-01 0 1 0 0 0 0 +V -164 0 0 0 0 0 0 1 0 +P 478 130 1.1140884226725156e+00 1.6365689466410080e-01 -1.4262615386176185e+00 1.8841109304241952e+00 4.9767000000000000e-01 1 0 0 0 0 +V -165 0 0 0 0 0 0 2 0 +P 479 -3122 2.0131910069921948e+00 6.7764893728527717e-02 -2.6715368988585211e+00 3.5269507192217597e+00 1.1156800000000000e+00 2 0 0 -181 0 +P 480 22 -1.6076131313801340e-02 1.4322867873945886e-02 -9.7430843067236299e-03 2.3632905745189673e-02 0 1 0 0 0 0 +V -166 0 -2.3588379760226790e-05 4.6847721938416594e-05 -5.5574960618648883e-04 5.5839451490441211e-04 0 2 0 +P 481 22 -1.1949049708917285e-01 1.3519180044689011e-01 -2.3681807243708217e+00 2.3750441564493485e+00 0 1 0 0 0 0 +P 482 22 -1.0811595167675146e-01 3.1684618315194474e-01 -2.9942984095479352e+00 3.0129559452813477e+00 0 1 0 0 0 0 +V -167 0 -1.5531878903456809e-04 1.0499866127610461e-04 -9.3825546056534588e-04 9.5764010672608495e-04 0 2 0 +P 483 22 -4.9585461648451970e-02 9.0657133681034840e-02 -5.6380526423615873e-01 5.7319613560678850e-01 0 1 0 0 0 0 +P 484 22 -4.7410925234586326e-01 2.6337114730522432e-01 -2.5997490496274094e+00 2.6557181826073788e+00 0 1 0 0 0 0 +V -168 0 -2.3742914991980702e-06 -5.5047613892291266e-05 -3.3364509581962891e-04 3.3865264289515399e-04 0 2 0 +P 485 22 -5.1346047785156834e-02 -1.6412250976727824e-01 -7.3990671605158653e-01 7.5962791108127992e-01 0 1 0 0 0 0 +P 486 22 3.3722397264361485e-02 -2.4447934454129777e-01 -1.7366403164793534e+00 1.7540886348204032e+00 0 1 0 0 0 0 +V -169 0 -3.9442071647588028e+02 -6.1954489476130664e+02 -2.1735850335635319e+03 2.3655702926791487e+03 0 2 0 +P 487 2112 -8.5269966598634783e-01 -1.2482982212205354e+00 -4.0873634023688021e+00 4.4581023471202919e+00 9.3957000000000002e-01 1 0 0 0 0 +P 488 111 -1.2441886187471768e-02 -1.4748650932380047e-01 -5.9280379660612814e-01 6.2573397912776096e-01 1.3497999999999999e-01 2 0 0 -182 0 +V -170 0 -3.8731845683595071e+02 -6.0808637851156175e+02 -2.1351638853560548e+03 2.3238352858308413e+03 0 2 0 +P 489 22 -2.4294136801933316e-02 3.4539658646784890e-02 -1.6139449553526541e-02 4.5207023063660166e-02 0 1 0 0 0 0 +P 490 22 -8.7575975301444949e-03 -4.8910075968903524e-02 -2.5514816277699598e-01 2.5994129339960659e-01 0 1 0 0 0 0 +V -171 0 -1.0933195237963346e+02 -5.0235045203099851e+01 -2.4013370147750371e+02 2.7821504173616125e+02 0 2 0 +P 491 -2112 -1.5658670185772878e+00 -7.6716146142654740e-01 -3.3317517907494221e+00 3.8760595980748569e+00 9.3957000000000002e-01 1 0 0 0 0 +P 492 111 -1.1562836020309447e-01 -5.4397271860069998e-03 -3.6143853957406552e-01 4.0281127914266263e-01 1.3497999999999999e-01 2 0 0 -183 0 +V -172 0 5.6564325317259301e-03 -2.2810648622965798e-03 -4.8107066559107698e-03 1.0330109148124387e-02 0 2 0 +P 493 22 8.3504725860153537e-03 -6.1686271916450621e-03 6.1045606206374968e-02 6.1922115523802154e-02 0 1 0 0 0 0 +P 494 22 -2.7604472616102490e-02 3.4337928036938747e-02 -6.3547114597041404e-02 7.7326166230407709e-02 0 1 0 0 0 0 +V -173 0 -2.5371547209646385e-02 3.0636389190498072e-02 -2.1297633314969514e-01 2.2372333057617133e-01 0 2 0 +P 495 130 -3.8381231838876934e-01 4.9594078006557590e-01 -3.2339673281313233e+00 3.3315895997856435e+00 4.9767000000000000e-01 1 0 0 0 0 +P 496 310 -4.4352446428434805e-01 2.8594973325957562e-01 -2.9436292264552462e+00 3.0316842929486327e+00 4.9767000000000000e-01 2 0 0 -184 0 +V -174 0 -1.6652989478516312e+02 5.6426827439425338e+01 -1.9523859419127828e+02 2.7438809812755659e+02 0 2 0 +P 497 22 -4.9611896691106377e-01 -3.9673980701964699e-02 -6.7175137907101601e-01 8.3603706219129592e-01 0 1 0 0 0 0 +P 498 22 -5.4512945059224993e-02 4.1471367457650572e-02 -7.5483015880856680e-02 1.0192752907976933e-01 0 1 0 0 0 0 +V -175 0 -1.6653019204785372e+02 5.6427260758923254e+01 -1.9523875968452452e+02 2.7438853266426469e+02 0 2 0 +P 499 22 -3.5393953143123574e-01 1.7673538127712854e-01 -2.7700993705699223e-01 4.8295247399019869e-01 0 1 0 0 0 0 +P 500 22 -1.4336849767438012e-01 1.7655084486868911e-01 -2.0435345439003930e-01 3.0575326861768554e-01 0 1 0 0 0 0 +V -176 0 1.6356688133589280e+01 -9.0201463342084711e+00 -8.5247671939611500e+00 3.4614668885069442e+01 0 2 0 +P 501 211 4.6978346947700922e-02 -2.6100259924274977e-01 -6.8335267097857338e-02 3.0737406449267235e-01 1.3957000000000000e-01 1 0 0 0 0 +P 502 -211 2.4512620249294581e-01 9.9917069010506745e-02 -8.3903576116670597e-02 3.1078910986942410e-01 1.3957000000000000e-01 1 0 0 0 0 +V -177 0 2.9469706054036896e-04 4.5240790314715406e-04 1.1077093520806618e-03 1.2413069252204430e-03 0 2 0 +P 503 22 3.6126609958871479e-02 1.4057616038319654e-01 2.0926363458958655e-01 2.5467245154677925e-01 0 1 0 0 0 0 +P 504 22 2.3022644940023498e-01 2.6831909245892044e-01 7.9190608955485142e-01 8.6724541397200472e-01 0 1 0 0 0 0 +V -178 0 4.9225703194877646e+01 -3.8073874681758369e+01 7.5112166828078713e+01 1.0132296751172809e+02 0 2 0 +P 505 111 6.6272058382572374e-01 -5.4061401949282739e-01 1.2309991175446522e+00 1.5050051555041968e+00 1.3497999999999999e-01 2 0 0 -185 0 +P 506 111 2.3080376582982970e-01 -1.5048700915484961e-01 1.3240547924864057e-01 3.3416691874071680e-01 1.3497999999999999e-01 2 0 0 -186 0 +V -179 0 1.3696084322539210e+01 2.3219797350663836e+01 1.0138968753976570e+03 1.0146306659593140e+03 0 2 0 +P 507 22 2.8921549282624782e-02 5.7479359671112923e-02 1.8015767429731999e+00 1.8027254626323534e+00 0 1 0 0 0 0 +P 508 22 4.1285086439393701e-02 7.9835975721270214e-03 9.2188183229143235e+00 9.2189142238711259e+00 0 1 0 0 0 0 +V -180 0 1.3696084629698909e+01 2.3219803949982214e+01 1.0138962372967254e+03 1.0146300281604611e+03 0 2 0 +P 509 22 1.6307939697786111e-01 3.2581921906134687e-01 5.6713531296788773e+00 5.6830449034603641e+00 0 1 0 0 0 0 +P 510 22 1.3673235942334631e-02 2.7402835750636373e-02 1.5902008574409892e+00 1.5904957214008373e+00 0 1 0 0 0 0 +V -181 0 8.8043644790361924e+01 2.9635877628943978e+00 -1.1683533502310971e+02 1.5424547161086937e+02 0 2 0 +P 511 -2212 1.7770563282207339e+00 -3.4186617193049003e-02 -2.3164858133551092e+00 3.0668477358421207e+00 9.3827000000000005e-01 1 0 0 0 0 +P 512 211 2.3613467877146080e-01 1.0195151092157670e-01 -3.5505108550341169e-01 4.6010298337963895e-01 1.3957000000000000e-01 1 0 0 0 0 +V -182 0 -3.9442072465575706e+02 -6.1954499172582257e+02 -2.1735854233004197e+03 2.3655707040658758e+03 0 2 0 +P 513 22 4.0197117264212073e-02 -1.3040481351109726e-01 -3.2880641676034111e-01 3.5599843163417444e-01 0 1 0 0 0 0 +P 514 22 -5.2639003451683840e-02 -1.7081695812703201e-02 -2.6399737984578697e-01 2.6973554749358647e-01 0 1 0 0 0 0 +V -183 0 -1.0933195723816462e+02 -5.0235045431669072e+01 -2.4013371666461182e+02 2.7821505866169014e+02 0 2 0 +P 515 22 -1.2710329868660584e-02 -1.5687834458189054e-02 6.0244861742229771e-03 2.1070241313784526e-02 0 1 0 0 0 0 +P 516 22 -1.0291803033443389e-01 1.0248107272182054e-02 -3.6746302574828849e-01 3.8174103782887814e-01 0 1 0 0 0 0 +V -184 0 -4.0011104427493628e+01 2.5810295848911871e+01 -2.6559444100062234e+02 2.7354374979360034e+02 0 2 0 +P 517 211 -1.1916503545197171e-01 1.2306843499863213e-01 -1.9838673343442541e+00 1.9961351483668279e+00 1.3957000000000000e-01 1 0 0 0 0 +P 518 -211 -3.2435942883237623e-01 1.6288129826094347e-01 -9.5976189211099172e-01 1.0355491445818044e+00 1.3957000000000000e-01 1 0 0 0 0 +V -185 0 4.9226282621175962e+01 -3.8074347348501760e+01 7.5113243108609780e+01 1.0132428335974532e+02 0 2 0 +P 519 22 4.4143146561474261e-01 -4.2964177430910294e-01 8.2724985573673759e-01 1.0314049238212444e+00 0 1 0 0 0 0 +P 520 22 2.2128911821098113e-01 -1.1097224518372439e-01 4.0374926180791465e-01 4.7360023168295245e-01 0 1 0 0 0 0 +V -186 0 4.9225767848899054e+01 -3.8073916837007772e+01 7.5112203918230421e+01 1.0132306112040489e+02 0 2 0 +P 521 22 4.9356772561742791e-02 -1.0513068125950643e-01 7.6076014406641593e-02 1.3883843526847706e-01 0 1 0 0 0 0 +P 522 22 1.8144699326808689e-01 -4.5356327895343163e-02 5.6329464841998966e-02 1.9532848347223983e-01 0 1 0 0 0 0 +BlockType GenEvent +E 9 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 115 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 3 -2 -1.3063956680622808e+00 1.2879304852865372e+00 5.1893828474231309e+00 5.5041010995066388e+00 0 3 0 0 -3 0 +P 14 2224 6.2629672068355446e-01 -5.5829354058455705e-01 1.9862339814540292e+03 1.9862345051592931e+03 1.1732277688871249e+00 2 0 0 -9 0 +P 20 1 6.8009894737872634e-01 -7.2963694470198015e-01 2.2511960482291925e+03 2.2511962933887798e+03 3.3000000000000002e-01 2 0 0 -14 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 1 7.0565678882479643e-01 -1.5984513018320162e-01 -1.0981823600478867e+03 1.0981825983971498e+03 0 3 0 0 -4 0 +P 28 2203 -7.0565678882479643e-01 1.5984513018320162e-01 -4.3114475678564886e+03 4.3114476975637281e+03 7.7132999999999996e-01 2 0 0 -14 0 +V -3 0 0 0 0 0 0 1 0 +P 5 -2 -1.3063956680622806e+00 1.2879304852865372e+00 5.1893828474231309e+00 5.5041010995066388e+00 0 3 0 0 -5 0 +V -4 0 0 0 0 0 0 1 0 +P 6 1 7.0565678882479621e-01 -1.5984513018320196e-01 -1.0981823600478865e+03 1.0981825983971496e+03 0 3 0 0 -5 0 +V -5 0 0 0 0 0 0 2 0 +P 7 22 -2.9723146839427486e+00 2.9479669518244265e+00 2.6457283967879142e+00 4.9522764946033000e+00 0 3 0 0 -6 0 +P 8 -24 2.3715758047052646e+00 -1.8198815967210915e+00 -1.0956387055972511e+03 1.0987344230020528e+03 8.2366393304613624e+01 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 22 -2.9723146839427486e+00 2.9479669518244265e+00 2.6457283967879142e+00 4.9522764946033284e+00 0 1 0 0 0 0 +V -7 0 0 0 0 0 0 1 0 +P 10 -24 2.3715758047052646e+00 -1.8198815967210915e+00 -1.0956387055972511e+03 1.0987344230020528e+03 8.2366393304613624e+01 2 0 0 -8 0 +V -8 0 0 0 0 0 0 3 0 +P 11 -12 -5.4134620057879408e+00 2.7818509720381723e+01 -1.5330074559902630e+02 1.5589834397827471e+02 0 1 0 0 0 0 +P 12 11 7.7686205977028244e+00 -2.9576059382324004e+01 -9.4035688046136852e+02 9.4085395114538073e+02 5.1000000000000004e-04 1 0 0 0 0 +P 13 22 1.6417212790378732e-02 -6.2331934778808794e-02 -1.9810795368566805e+00 1.9821278783976966e+00 0 1 0 0 0 0 +V -9 0 0 0 0 0 0 2 0 +P 31 2212 3.9845666526000445e-01 -4.2000187219924662e-01 1.7208369731688658e+03 1.7208373263457715e+03 9.3827000000000005e-01 1 0 0 0 0 +P 32 211 2.2784005542354996e-01 -1.3829166838531035e-01 2.6539700828516311e+02 2.6539717881352135e+02 1.3957000000000000e-01 1 0 0 0 0 +V -10 0 0 0 0 0 2 1 0 +P 15 2 -5.8774466266559076e+00 -9.3245626556735572e-01 -1.6938612621707563e+02 1.6949062985417058e+02 0 2 0 0 -10 0 +P 16 -2 5.8774466266559076e+00 9.3245626556735572e-01 -2.6116865900135838e+02 2.6123644902291909e+02 0 2 0 0 -10 0 +P 33 92 0 0 -4.3055478521843401e+02 4.3072707887708964e+02 1.2181683114363196e+01 2 0 0 -11 0 +V -11 0 0 0 0 0 0 7 0 +P 34 211 -3.4223096422762840e+00 -1.1755942505505563e+00 -1.0212463398588793e+02 1.0218881823206500e+02 1.3957000000000000e-01 1 0 0 0 0 +P 35 313 -1.4318407714997392e+00 1.0448174597780837e+00 -7.2468641710313307e+01 7.2496138880553076e+01 9.1886328226238245e-01 2 0 0 -18 0 +P 36 -313 1.0440864295074967e+00 -4.5871170804924338e-01 -4.5617120785926659e+01 4.5640092033581006e+01 8.9205332382051472e-01 2 0 0 -19 0 +P 37 -213 3.2409711340366965e-01 2.3335471252859891e-01 -4.0111237075385660e+01 4.0121708510378014e+01 8.2502164406168854e-01 2 0 0 -20 0 +P 38 111 1.2936126903917291e+00 4.7104501694792161e-01 -5.4152907899216984e+01 5.4170572922410656e+01 1.3497999999999999e-01 2 0 0 -21 0 +P 39 213 1.2548924127288779e+00 -4.7071757914042800e-01 -7.1343007544735329e+01 7.1361058743643341e+01 8.8297762073342168e-01 2 0 0 -22 0 +P 40 -211 9.3746176774424972e-01 3.5580634848562342e-01 -4.4737236216968142e+01 4.4748689554458579e+01 1.3957000000000000e-01 1 0 0 0 0 +V -12 0 0 0 0 0 3 1 0 +P 17 2 -1.2925484085993182e+00 -2.9944775922487810e+00 -1.1193505744225627e+03 1.1193553260862077e+03 0 2 0 0 -12 0 +P 18 21 1.4025793372001376e+00 -2.7884933102773206e+00 9.4380500095915245e+00 9.9408104157635311e+00 0 2 0 0 -12 0 +P 19 -2 1.2925484085993182e+00 2.9944775922487810e+00 6.0026559409271556e+02 6.0027445475292370e+02 0 2 0 0 -12 0 +P 41 92 1.4025793372001376e+00 -2.7884933102773206e+00 -5.0964693032025559e+02 1.7295705912548949e+03 1.6527748466216472e+03 2 0 0 -13 0 +V -13 0 0 0 0 0 0 24 0 +P 42 2212 -6.4915649404280318e-01 -4.2701824006267358e-01 -3.3481058142234315e+02 3.3481279774180007e+02 9.3827000000000005e-01 1 0 0 0 0 +P 43 -2212 -4.9702749607820934e-01 -1.9489755847429249e+00 -5.5795580111420406e+02 5.5796021532878854e+02 9.3827000000000005e-01 1 0 0 0 0 +P 44 113 1.6533916537684344e-02 -2.9412170960257544e-01 -7.6806020852310596e+01 7.6812204400634272e+01 9.2904508437107169e-01 2 0 0 -23 0 +P 45 221 -1.4972892483807126e-01 4.5696574621284011e-03 -1.0055577843303921e+02 1.0055738022348076e+02 5.4744999999999999e-01 2 0 0 -24 0 +P 46 221 3.0200268424734572e-01 2.8534525335404792e-01 -2.8870835357085056e+01 2.8879014236177056e+01 5.4744999999999999e-01 2 0 0 -25 0 +P 47 211 -6.4308952739707492e-01 -7.2529706032234698e-01 -5.7806554947847131e+00 5.8630263260746780e+00 1.3957000000000000e-01 1 0 0 0 0 +P 48 -213 3.3534244198776286e-01 1.3819689112114653e-01 -4.9513827912839794e+00 4.9961422616793758e+00 5.6008304652229868e-01 2 0 0 -26 0 +P 49 213 3.8463247216398370e-02 -2.6825695664888762e-02 -6.2305386932288869e+00 6.2750941019503417e+00 7.4497955755530509e-01 2 0 0 -27 0 +P 50 -211 -3.0493494659552672e-01 4.0145043880181042e-01 -5.0694511698343381e-01 7.2843730890360803e-01 1.3957000000000000e-01 1 0 0 0 0 +P 51 213 4.5194685326190176e-01 -3.3844629401524673e-01 -1.5162335922911572e+00 1.8063449324268250e+00 8.0319104601952163e-01 2 0 0 -28 0 +P 52 113 2.7127567356955044e-02 -3.5096115077676360e-01 -2.0560156402869595e-01 8.5167643807785465e-01 7.4777745204083745e-01 2 0 0 -29 0 +P 53 313 1.5417297555815859e-01 -2.8232887295282283e-01 9.8735536340780428e-01 1.3695271653989567e+00 8.9289145153275806e-01 2 0 0 -30 0 +P 54 -321 1.6551837760939633e-01 -1.1656322834342046e+00 1.9035451055119379e+00 2.2919903756841866e+00 4.9359999999999998e-01 1 0 0 0 0 +P 55 223 2.7048492858539253e-01 6.4531024760498323e-01 4.8493013060375016e+00 4.9634403118180437e+00 7.9399569267567460e-01 2 0 0 -31 0 +P 56 211 3.8312833002830518e-02 -6.7146029886687178e-02 -3.8093840362958112e-02 1.6403471606902364e-01 1.3957000000000000e-01 1 0 0 0 0 +P 57 113 -1.9506129454061361e-01 -4.4996827569324266e-01 9.0912943373856825e-01 1.1300284456403529e+00 4.5817857098333514e-01 2 0 0 -32 0 +P 58 311 2.5486600266519988e-01 -5.5963768406031345e-01 7.0488897796228791e+00 7.0931427146862651e+00 4.9767000000000000e-01 2 0 0 -33 0 +P 59 -323 5.8984323195972610e-01 5.0704121519152545e-01 1.2620140238622938e+01 1.2677108878334321e+01 9.1440911983714146e-01 2 0 0 -34 0 +P 60 113 4.7159765669982140e-01 -9.8137013413514440e-01 2.4370406619890971e+01 2.4406162239602889e+01 7.4735851973126655e-01 2 0 0 -35 0 +P 61 113 -3.7486729996664692e-01 7.1444064961249365e-01 3.2438220987768268e+01 3.2455915309327651e+01 7.0519981604898474e-01 2 0 0 -36 0 +P 62 223 1.4179614786791939e-01 3.7607095473386615e-01 9.2454157450938268e+01 9.2458324597560690e+01 7.8039856128934548e-01 2 0 0 -37 0 +P 63 223 -2.5333004221869093e-01 -1.7482317991745372e-01 4.1049255544223520e+01 4.1057845264441667e+01 7.8136916329073203e-01 2 0 0 -38 0 +P 64 321 8.9930855079187644e-01 4.6279031139923948e-01 1.3433665469657635e+02 1.3434136878403856e+02 4.9359999999999998e-01 1 0 0 0 0 +P 65 -321 3.1245794752940531e-01 1.4688432657087267e+00 2.5561448142535130e+02 2.5561936915229936e+02 4.9359999999999998e-01 1 0 0 0 0 +V -14 0 0 0 0 0 7 1 0 +P 21 21 4.5189465118581147e+00 3.0246444971641862e-01 7.5589346639934547e+01 7.5724907974672121e+01 0 2 0 0 -14 0 +P 22 21 2.3306161753086991e+00 2.5263018388499852e+00 1.6213072005400015e+01 1.6573402685926418e+01 0 2 0 0 -14 0 +P 23 21 -2.3306161753086991e+00 -2.5263018388499852e+00 1.7097855225215859e+01 1.7439914737177720e+01 0 2 0 0 -14 0 +P 24 21 -4.5189465118581147e+00 -3.0246444971641862e-01 -3.2145610931228710e+00 5.5538964107909132e+00 0 2 0 0 -14 0 +P 25 21 3.3444552178150491e+00 -3.3682323125838081e+00 -1.2861369300978330e+01 1.3709310336835030e+01 0 2 0 0 -14 0 +P 26 21 -1.4025793372001376e+00 2.7884933102773206e+00 -5.6917899608951075e+00 6.4914864782689392e+00 0 2 0 0 -14 0 +P 27 21 -3.3444552178150491e+00 3.3682323125838081e+00 -1.4040682664225221e+01 1.4821306936062644e+01 0 2 0 0 -14 0 +P 66 92 -1.4281371786462076e+00 2.2187014957585420e+00 -1.9871596487759671e+03 6.7129582165122420e+03 6.4120977522729381e+03 2 0 0 -15 0 +V -15 0 0 0 0 0 0 35 0 +P 67 -213 5.4216260460293231e-01 -7.8759029792302415e-01 1.9393385450254702e+03 1.9393389087263906e+03 7.0458483531368932e-01 2 0 0 -39 0 +P 68 211 1.0135732704315257e-02 5.3514575211682114e-01 2.3409980209226654e+02 2.3410045558078767e+02 1.3957000000000000e-01 1 0 0 0 0 +P 69 1114 8.9641438172015775e-01 -3.6392129443568710e-01 4.4812864618973961e+01 4.4840773987411758e+01 1.2514707265275640e+00 2 0 0 -40 0 +P 70 211 3.8473184386194154e-01 1.7416136993019182e-01 7.6482609489049134e+00 7.6611830745584788e+00 1.3957000000000000e-01 1 0 0 0 0 +P 71 -2212 1.3570820383715327e+00 -3.4833837508799126e-01 5.9400969475256197e+01 5.9424898287465744e+01 9.3827000000000005e-01 1 0 0 0 0 +P 72 223 5.3513808491869197e-01 5.6258841694084194e-01 1.3497984646533387e+01 1.3542742700934161e+01 7.7936631236407006e-01 2 0 0 -41 0 +P 73 111 1.4249126471823113e+00 -8.7326689179198683e-02 2.6487334767795783e+01 2.6526121554128995e+01 1.3497999999999999e-01 2 0 0 -42 0 +P 74 113 1.0243223484583437e+00 8.9460184235475726e-01 7.8398598406213731e+00 8.0044033243370425e+00 8.7035712680161426e-01 2 0 0 -43 0 +P 75 213 7.8146511190515611e-01 8.1085897447583399e-01 9.7004079181519618e+00 9.7985969509811213e+00 8.0399529328116248e-01 2 0 0 -44 0 +P 76 223 -6.0070864720254791e-01 -7.5020685309669766e-01 4.3286489963019363e+00 4.5018892429835349e+00 7.7855213161865244e-01 2 0 0 -45 0 +P 77 -213 2.0007537718930121e-01 -8.0481277249238786e-02 2.7952951677960907e+00 2.9524405521698647e+00 9.2559318625830767e-01 2 0 0 -46 0 +P 78 113 -4.2184079371557825e-01 6.6478556099176161e-02 2.1918020937664431e+00 2.2875634621838854e+00 4.9656935227230686e-01 2 0 0 -47 0 +P 79 213 -6.8390630107822026e-01 -1.2031666983062672e+00 6.5479758970760322e+00 6.7835848615007661e+00 1.1071121406280251e+00 2 0 0 -48 0 +P 80 111 -5.9823858771689586e-01 -1.2013185150743945e-01 9.0499212497479931e-01 1.0997960793922275e+00 1.3497999999999999e-01 2 0 0 -49 0 +P 81 -211 -1.8659891773971918e-01 3.9874400471142490e-01 -3.5494610553090200e-01 5.8247957914977033e-01 1.3957000000000000e-01 1 0 0 0 0 +P 82 113 -9.1461437410828916e-01 -4.4389801834541065e-01 -7.0381543247325407e-01 1.5379185055407165e+00 9.1447923031668488e-01 2 0 0 -50 0 +P 83 213 -1.2615073893577071e+00 1.7769459083209821e-01 -8.9289455873395662e-01 1.7351143047719249e+00 7.6836495013266204e-01 2 0 0 -51 0 +P 84 -211 -8.7219080940381755e-01 -1.8926094685784717e-01 -5.3480327737921796e-01 1.0497765688037612e+00 1.3957000000000000e-01 1 0 0 0 0 +P 85 113 6.2141214984468351e-01 -8.6421893286914353e-02 -2.4332734261172653e+00 2.6283177307616250e+00 7.7046266877350866e-01 2 0 0 -52 0 +P 86 211 -3.5446434481312317e-01 -1.2268348898738159e+00 -1.2253959392308320e+00 1.7753432939966589e+00 1.3957000000000000e-01 1 0 0 0 0 +P 87 2112 9.1472463744437760e-01 -1.2569570091894453e-01 -3.6476223116165620e+00 3.8782033062592536e+00 9.3957000000000002e-01 1 0 0 0 0 +P 88 -2212 8.6361312614816066e-01 -9.1836205712359598e-01 -4.8715921735632639e+00 5.1187867115208592e+00 9.3827000000000005e-01 1 0 0 0 0 +P 89 113 2.0594892520170244e-02 2.0438980965336340e-01 -5.7002702256806792e-01 9.3915477322444918e-01 7.1755246339511269e-01 2 0 0 -53 0 +P 90 213 -6.4584413784606176e-01 7.8022036598574573e-01 -3.1474571005361729e+00 3.4019473481372686e+00 8.0056298308975271e-01 2 0 0 -54 0 +P 91 113 -1.0973380029073554e+00 7.4299977704846509e-01 -5.3024187721700224e+00 5.5125660457410666e+00 7.1870732003888060e-01 2 0 0 -55 0 +P 92 313 -5.3612158238681562e-01 9.9278532523932750e-01 -3.4650732050135691e+00 3.7239560285499427e+00 7.6685535360910795e-01 2 0 0 -56 0 +P 93 -321 -1.2221331636647612e+00 1.5690691103915120e+00 -4.6853289562246045e+00 5.1138572262970730e+00 4.9359999999999998e-01 1 0 0 0 0 +P 94 221 -6.2878961836263358e-01 3.9774130133513302e-01 -4.6596960331790589e+00 4.7503729486297237e+00 5.4744999999999999e-01 2 0 0 -57 0 +P 95 213 -1.5227279129650367e-01 7.2806206429657749e-01 -2.1391236973384483e+01 2.1421593665725354e+01 8.6394129170691092e-01 2 0 0 -58 0 +P 96 113 3.0209002088422593e-01 -3.9448441998462064e-01 -1.0899232925753084e+01 1.0936206424161766e+01 7.4863625595375760e-01 2 0 0 -59 0 +P 97 111 -8.0811401894910795e-01 4.0766228483193984e-01 -2.8448690697297046e+01 2.8463405607849737e+01 1.3497999999999999e-01 2 0 0 -60 0 +P 98 -213 1.2089810072332315e-01 -5.2079050430329710e-01 -1.1939975039352846e+02 1.1940300095633448e+02 7.0028868431575408e-01 2 0 0 -61 0 +P 99 223 5.4114373167817453e-01 2.7085749567615108e-01 -4.2861438876063943e+02 4.2861551326973716e+02 7.7315102171666417e-01 2 0 0 -62 0 +P 100 2212 -8.2348818137401925e-01 8.9103884396884103e-02 -1.7961757953324147e+03 1.7961762313762292e+03 9.3827000000000005e-01 1 0 0 0 0 +P 101 213 -1.6088234688084649e-01 6.2448336922287219e-02 -1.9053309529925027e+03 1.9053311124555951e+03 7.6018223594688406e-01 2 0 0 -63 0 +V -16 0 0 0 0 0 2 1 0 +P 29 21 1.7182462671114402e+00 2.3426872894360549e+00 2.1255453864254928e-01 2.9130282186112093e+00 0 2 0 0 -16 0 +P 30 21 -1.7182462671114402e+00 -2.3426872894360549e+00 2.0339078055224470e+03 2.0339098804812140e+03 0 2 0 0 -16 0 +P 102 92 0 0 2.0341203600610895e+03 2.0368229086998253e+03 1.0489004809494854e+02 2 0 0 -17 0 +V -17 0 0 0 0 0 0 20 0 +P 103 -211 -6.0384089246498240e-02 -2.1593397066779253e-02 6.7328643487245954e-01 6.9058447804325818e-01 1.3957000000000000e-01 1 0 0 0 0 +P 104 111 3.0137821631491024e-01 6.9978369862249840e-02 2.1411449928155655e+00 2.1675902016241224e+00 1.3497999999999999e-01 2 0 0 -64 0 +P 105 211 -7.4504913328202721e-02 1.3535438527297250e-01 7.5149850953364265e+01 7.5150139387026329e+01 1.3957000000000000e-01 1 0 0 0 0 +P 106 311 -3.0824762001330436e-01 -1.4402182869475991e-01 3.9741975944594941e+02 3.9742021668806382e+02 4.9767000000000000e-01 2 0 0 -65 0 +P 107 333 -9.1866028181973891e-01 -2.0597240947952193e+00 9.9285414260558821e+02 9.9285721752589359e+02 1.0097049676208800e+00 2 0 0 -66 0 +P 108 -323 -2.3490715754350402e-01 8.3095883242977953e-02 4.9572324857581219e+02 4.9572416549705343e+02 9.2032216914309117e-01 2 0 0 -67 0 +P 109 111 4.1806436528339791e-01 -2.2899116272598369e-01 6.4652151043041934e+00 6.4841684672322852e+00 1.3497999999999999e-01 2 0 0 -68 0 +P 110 3222 -5.6454807151714115e-01 3.0038362700044496e-01 1.5559636563150063e+01 1.5618125233927406e+01 1.1893700000000000e+00 2 0 0 -69 0 +P 111 -3212 -1.2459659851310380e-01 1.4248779043166906e-01 1.5027023583236335e+01 1.5075458213813077e+01 1.1925500000000000e+00 2 0 0 -70 0 +P 112 -213 3.7655640018993020e-01 -3.8287574679571718e-01 1.8935226661500398e+01 1.8955778084047072e+01 7.0023245371471732e-01 2 0 0 -71 0 +P 113 211 -1.4243498041231339e-01 3.1036147917840962e-01 3.6873645553705686e-01 5.2159211070040012e-01 1.3957000000000000e-01 1 0 0 0 0 +P 114 113 3.8953818738287976e-01 3.5983308392962821e-03 2.9199479223354214e+00 3.0414263991854740e+00 7.5658821369157259e-01 2 0 0 -72 0 +P 115 111 -9.0634448722506072e-03 6.1399994260374857e-01 8.6138652128429471e-01 1.0664353777893050e+00 1.3497999999999999e-01 2 0 0 -73 0 +P 116 -213 2.1126425569031212e-01 7.2662728626688444e-01 1.7631477856117816e-01 1.0907967455146763e+00 7.6559182336697773e-01 2 0 0 -74 0 +P 117 211 1.8890292053918842e-01 -3.9217829654797970e-01 4.2376063239215755e-01 6.2333056088797001e-01 1.3957000000000000e-01 1 0 0 0 0 +P 118 -211 -5.8451538057038684e-02 1.9531982712468343e-01 3.1711758377891242e-01 4.0200716910401635e-01 1.3957000000000000e-01 1 0 0 0 0 +P 119 221 9.1656294346312978e-02 -7.2250132436744510e-02 4.2083038462435490e-01 7.0030041628825801e-01 5.4744999999999999e-01 2 0 0 -75 0 +P 120 323 3.2393892176032707e-01 5.9901412523414366e-01 3.2048749331960464e+00 3.3826342799303069e+00 8.4097383257149705e-01 2 0 0 -76 0 +P 121 -323 8.3047607121168998e-01 3.6045783335863357e-01 4.3175731064757974e+00 4.4982902518816132e+00 8.7952106622028725e-01 2 0 0 -77 0 +P 122 211 -6.3597693739585281e-01 -2.3904422135293027e-01 1.1612828223115010e+00 1.3526516118193193e+00 1.3957000000000000e-01 1 0 0 0 0 +V -18 0 0 0 0 0 0 2 0 +P 123 311 -8.8835934438628372e-01 6.8074086066904238e-01 -5.6890766581735761e+01 5.6903950549417800e+01 4.9767000000000000e-01 2 0 0 -78 0 +P 124 111 -5.4348142711345571e-01 3.6407659910904144e-01 -1.5577875128577560e+01 1.5592188331135288e+01 1.3497999999999999e-01 2 0 0 -79 0 +V -19 0 0 0 0 0 0 2 0 +P 125 -321 1.0773689084100895e+00 -5.1649738648580301e-01 -4.0378564311746878e+01 4.0399252346459754e+01 4.9359999999999998e-01 1 0 0 0 0 +P 126 211 -3.3282478902592651e-02 5.7785678436559643e-02 -5.2385564741797834e+00 5.2408396871212544e+00 1.3957000000000000e-01 1 0 0 0 0 +V -20 0 0 0 0 0 0 2 0 +P 127 -211 2.3663845137153569e-01 3.6141929721200028e-01 -3.7375453158979781e+01 3.7378210233892375e+01 1.3957000000000000e-01 1 0 0 0 0 +P 128 111 8.7458662032133927e-02 -1.2806458468340143e-01 -2.7357839164058722e+00 2.7434982764856324e+00 1.3497999999999999e-01 2 0 0 -80 0 +V -21 0 1.8697213022662409e-04 6.8082425988507642e-05 -7.8269830089690295e-03 7.8295362206386096e-03 0 2 0 +P 129 22 1.1490964488537836e-01 8.5213701923610385e-02 -5.5616412847888865e+00 5.5634808692177042e+00 0 1 0 0 0 0 +P 130 22 1.1787030455063505e+00 3.8583131502431123e-01 -4.8591266614428093e+01 4.8607092053192950e+01 0 1 0 0 0 0 +V -22 0 0 0 0 0 0 2 0 +P 131 211 9.2572302897073211e-01 -2.0288737845322695e-02 -3.1494950736642860e+01 3.1508868219085731e+01 1.3957000000000000e-01 1 0 0 0 0 +P 132 111 3.2916938375814553e-01 -4.5042884129510524e-01 -3.9848056808092458e+01 3.9852190524557592e+01 1.3497999999999999e-01 2 0 0 -81 0 +V -23 0 0 0 0 0 0 2 0 +P 133 211 5.5628915281980412e-02 -1.7240521926811242e-01 -4.4020576842464809e+00 4.4079938493808974e+00 1.3957000000000000e-01 1 0 0 0 0 +P 134 -211 -3.9094998744296061e-02 -1.2171649033446306e-01 -7.2403963168064124e+01 7.2404210551253385e+01 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 135 22 -1.5444404052236614e-02 -1.2303691275080576e-01 -5.4080212553685936e+00 5.4094427171414141e+00 0 1 0 0 0 0 +P 136 22 -1.3428452078583464e-01 1.2760657021293417e-01 -9.5147757177670613e+01 9.5147937506339346e+01 0 1 0 0 0 0 +V -25 0 0 0 0 0 0 3 0 +P 137 111 9.2311480631191989e-02 1.8010222032173673e-01 -1.5022100885582585e+01 1.5024070448325322e+01 1.3497999999999999e-01 2 0 0 -82 0 +P 138 111 1.5389951085199688e-01 1.3360790730478667e-01 -6.2955950525981503e+00 6.3003391019081789e+00 1.3497999999999999e-01 2 0 0 -83 0 +P 139 111 5.5791692764156894e-02 -2.8364874272475478e-02 -7.5531394189043217e+00 7.5546046859435538e+00 1.3497999999999999e-01 2 0 0 -84 0 +V -26 0 0 0 0 0 0 2 0 +P 140 -211 3.4795871222769470e-01 1.2913562700567929e-01 -4.6335489000911831e+00 4.6504845414229168e+00 1.3957000000000000e-01 1 0 0 0 0 +P 141 111 -1.2616270239931780e-02 9.0612641154672498e-03 -3.1783389119279665e-01 3.4565772025645797e-01 1.3497999999999999e-01 2 0 0 -85 0 +V -27 0 0 0 0 0 0 2 0 +P 142 211 -2.6507126648343393e-01 1.6611475780357760e-01 -3.6620259310433121e+00 3.6780117718148904e+00 1.3957000000000000e-01 1 0 0 0 0 +P 143 111 3.0353451369983231e-01 -1.9294045346846636e-01 -2.5685127621855748e+00 2.5970823301354509e+00 1.3497999999999999e-01 2 0 0 -86 0 +V -28 0 0 0 0 0 0 2 0 +P 144 211 4.2568471861282581e-01 -5.3585815142727589e-01 -8.6305498665514868e-01 1.1102680455646092e+00 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 2.6262134649075942e-02 1.9741185741202916e-01 -6.5317860563600838e-01 6.9607688686221558e-01 1.3497999999999999e-01 2 0 0 -87 0 +V -29 0 0 0 0 0 0 2 0 +P 146 211 2.7491546942463990e-01 1.5012758060953384e-02 6.4340006694604740e-02 3.1531463587189956e-01 1.3957000000000000e-01 1 0 0 0 0 +P 147 -211 -2.4778790206768489e-01 -3.6597390883771697e-01 -2.6994157072330072e-01 5.3636180220595964e-01 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 148 321 -3.4500238693339409e-02 -1.0597931797356490e-01 9.4631402810185450e-01 1.0731137321320592e+00 4.9359999999999998e-01 1 0 0 0 0 +P 149 -211 1.8867321425149802e-01 -1.7634955497925797e-01 4.1041335305949819e-02 2.9641343326689734e-01 1.3957000000000000e-01 1 0 0 0 0 +V -31 0 0 0 0 0 0 3 0 +P 150 -211 1.7372815870072264e-01 3.9816647204593414e-01 1.3106575762200228e+00 1.3878116153102316e+00 1.3957000000000000e-01 1 0 0 0 0 +P 151 211 2.2174429060384263e-02 -7.0700764257547011e-02 9.6535187332727646e-01 9.7819953363679191e-01 1.3957000000000000e-01 1 0 0 0 0 +P 152 111 7.4582340824285623e-02 3.1784453981659611e-01 2.5732918564902025e+00 2.5974291628710198e+00 1.3497999999999999e-01 2 0 0 -88 0 +V -32 0 0 0 0 0 0 2 0 +P 153 -211 3.3962108465623669e-02 -1.2136739619253469e-02 3.0383058001969304e-01 3.3629381724188662e-01 1.3957000000000000e-01 1 0 0 0 0 +P 154 211 -2.2902340300623730e-01 -4.3783153607398917e-01 6.0529885371887526e-01 7.9373462839846587e-01 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 1 0 +P 155 130 2.5486600266519988e-01 -5.5963768406031345e-01 7.0488897796228791e+00 7.0931427146862633e+00 4.9767000000000000e-01 1 0 0 0 0 +V -34 0 0 0 0 0 0 2 0 +P 156 -311 6.3629118454362399e-01 2.6066327066419842e-01 7.2899009219783402e+00 7.3391513605703720e+00 4.9767000000000000e-01 2 0 0 -89 0 +P 157 -211 -4.6447952583897813e-02 2.4637794452732709e-01 5.3302393166445974e+00 5.3379575177639449e+00 1.3957000000000000e-01 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 158 -211 -1.3843969334754791e-01 -1.1573951633130124e-01 2.7775781205311443e+00 2.7869304234027963e+00 1.3957000000000000e-01 1 0 0 0 0 +P 159 211 6.1003735004736936e-01 -8.6563061780384321e-01 2.1592828499359829e+01 2.1619231816200092e+01 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 2 0 +P 160 -211 -5.3563447701898401e-02 6.6112470805366741e-01 1.6778003219314172e+01 1.6791689216238652e+01 1.3957000000000000e-01 1 0 0 0 0 +P 161 211 -3.2130385226474850e-01 5.3315941558826262e-02 1.5660217768454098e+01 1.5664226093088988e+01 1.3957000000000000e-01 1 0 0 0 0 +V -37 0 0 0 0 0 0 3 0 +P 162 211 -6.6907931039927135e-02 1.2175756451401197e-01 1.3514430333249674e+01 1.3515865070091197e+01 1.3957000000000000e-01 1 0 0 0 0 +P 163 -211 1.5997741131462320e-01 -8.4859508363502090e-02 1.5752145709471709e+01 1.5753804878365688e+01 1.3957000000000000e-01 1 0 0 0 0 +P 164 111 4.8726667593223340e-02 3.3917289858335631e-01 6.3187581408216893e+01 6.3188654649103782e+01 1.3497999999999999e-01 2 0 0 -90 0 +V -38 0 0 0 0 0 0 3 0 +P 165 -211 -2.2781057367096993e-01 -1.8076023205047512e-01 2.2204623661144236e+01 2.2206966556396523e+01 1.3957000000000000e-01 1 0 0 0 0 +P 166 211 -8.8088472241610968e-02 1.2956137830090980e-01 4.4468232102231378e+00 4.4517706789061249e+00 1.3957000000000000e-01 1 0 0 0 0 +P 167 111 6.2569003693889999e-02 -1.2362432616788839e-01 1.4397808672856140e+01 1.4399108029138999e+01 1.3497999999999999e-01 2 0 0 -91 0 +V -39 0 0 0 0 0 0 2 0 +P 168 -211 1.1575661872227846e-01 -5.9566096362919352e-01 7.2921715829360608e+02 7.2921742412065646e+02 1.3957000000000000e-01 1 0 0 0 0 +P 169 111 4.2640598588065382e-01 -1.9192933429383069e-01 1.2101213867318643e+03 1.2101214846057335e+03 1.3497999999999999e-01 2 0 0 -92 0 +V -40 0 0 0 0 0 0 2 0 +P 170 2112 5.7730953717981204e-01 -4.9267549823692297e-01 3.3126349100956851e+01 3.3148360622987781e+01 9.3957000000000002e-01 1 0 0 0 0 +P 171 -211 3.1910484454034588e-01 1.2875420380123584e-01 1.1686515518017115e+01 1.1692413364423977e+01 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 3 0 +P 172 -211 9.5487207154282661e-02 -6.2863114436684478e-02 1.2548498161728181e+00 1.2677529033434551e+00 1.3957000000000000e-01 1 0 0 0 0 +P 173 211 2.1429886442208966e-02 1.3131790882612157e-01 1.6489652622608375e+00 1.6602017510695333e+00 1.3957000000000000e-01 1 0 0 0 0 +P 174 111 4.1822099132220031e-01 4.9413362255140486e-01 1.0594169568099732e+01 1.0614788046521172e+01 1.3497999999999999e-01 2 0 0 -93 0 +V -42 0 1.8062935474981218e-04 -1.1069986325174275e-05 3.3576726247816625e-03 3.3625894399998031e-03 0 2 0 +P 175 22 6.7619288638646513e-01 -9.1896050652983813e-02 1.1803182198575048e+01 1.1822892696649337e+01 0 1 0 0 0 0 +P 176 22 7.4871976079584612e-01 4.5693614737851275e-03 1.4684152569220737e+01 1.4703228857479658e+01 0 1 0 0 0 0 +V -43 0 0 0 0 0 0 2 0 +P 177 -211 1.8255094262342417e-01 4.9281267235300757e-01 4.5388757870887497e+00 4.5713304816218363e+00 1.3957000000000000e-01 1 0 0 0 0 +P 178 211 8.4177140583491938e-01 4.0178917000174957e-01 3.3009840535326229e+00 3.4330728427152049e+00 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 2 0 +P 179 211 6.4478111510714742e-01 7.1330192574342022e-01 9.2323181717291547e+00 9.2833033416240607e+00 1.3957000000000000e-01 1 0 0 0 0 +P 180 111 1.3668399679800877e-01 9.7557048732413817e-02 4.6808974642280660e-01 5.1529360935705770e-01 1.3497999999999999e-01 2 0 0 -94 0 +V -45 0 0 0 0 0 0 3 0 +P 181 -211 -3.3985093605444544e-01 -3.3839691300994644e-02 1.0124513152340913e+00 1.0775811960421686e+00 1.3957000000000000e-01 1 0 0 0 0 +P 182 211 -1.2829685354263031e-02 -1.2856125071302602e-01 5.3883610377089486e-01 5.7141642226854616e-01 1.3957000000000000e-01 1 0 0 0 0 +P 183 111 -2.4802802579383956e-01 -5.8780591108267710e-01 2.7773615772969507e+00 2.8528916246728215e+00 1.3497999999999999e-01 2 0 0 -95 0 +V -46 0 0 0 0 0 0 2 0 +P 184 -211 1.3358989959828704e-01 3.8645547651348672e-01 1.6675168582308439e+00 1.7225813054790797e+00 1.3957000000000000e-01 1 0 0 0 0 +P 185 111 6.6485477591014169e-02 -4.6693675376272548e-01 1.1277783095652469e+00 1.2298592466907843e+00 1.3497999999999999e-01 2 0 0 -96 0 +V -47 0 0 0 0 0 0 2 0 +P 186 211 -9.3953505824433764e-02 -1.5916621156773283e-01 8.5366541626208947e-01 8.8452561974396915e-01 1.3957000000000000e-01 1 0 0 0 0 +P 187 -211 -3.2788728789114446e-01 2.2564476766690900e-01 1.3381366775043535e+00 1.4030378424399157e+00 1.3957000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 2 0 +P 188 211 -3.1297297759670162e-01 -1.2700760300481633e+00 5.6378957412772790e+00 5.7893344506273889e+00 1.3957000000000000e-01 1 0 0 0 0 +P 189 111 -3.7093332348151864e-01 6.6909331741895992e-02 9.1008015579875357e-01 9.9425041087337529e-01 1.3497999999999999e-01 2 0 0 -97 0 +V -49 0 -1.4965826533362982e-04 -3.0052766366232216e-05 2.2639721733967781e-04 2.7513031897644541e-04 0 2 0 +P 190 22 -3.0753609678583916e-02 -4.0951860957295985e-02 6.0453254742586303e-02 7.9230268414921035e-02 0 1 0 0 0 0 +P 191 22 -5.6748497803831199e-01 -7.9179990550143464e-02 8.4453887023221308e-01 1.0205658109773066e+00 0 1 0 0 0 0 +V -50 0 0 0 0 0 0 2 0 +P 192 211 -3.7395809242150829e-01 -5.4704665311005618e-01 -6.9450929608971679e-01 9.7001424877239883e-01 1.3957000000000000e-01 1 0 0 0 0 +P 193 -211 -5.4065628168678093e-01 1.0314863476464556e-01 -9.3061363835372987e-03 5.6790425676831746e-01 1.3957000000000000e-01 1 0 0 0 0 +V -51 0 0 0 0 0 0 2 0 +P 194 211 -1.0036870681900585e+00 6.0908344293775021e-02 -9.7858835208038319e-01 1.4100398948199884e+00 1.3957000000000000e-01 1 0 0 0 0 +P 195 111 -2.5782032116764880e-01 1.1678624653832320e-01 8.5693793346426558e-02 3.2507440995193648e-01 1.3497999999999999e-01 2 0 0 -98 0 +V -52 0 0 0 0 0 0 2 0 +P 196 -211 -4.1290701932326097e-02 -2.0666261137288519e-01 -1.0930205176097356e+00 1.1218680821831855e+00 1.3957000000000000e-01 1 0 0 0 0 +P 197 211 6.6270285177700960e-01 1.2024071808597084e-01 -1.3402529085075296e+00 1.5064496485784395e+00 1.3957000000000000e-01 1 0 0 0 0 +V -53 0 0 0 0 0 0 2 0 +P 198 -211 -3.1658924960087986e-01 1.5111911254455840e-01 -2.9258169938081902e-01 4.7765005480128553e-01 1.3957000000000000e-01 1 0 0 0 0 +P 199 211 3.3718414212105013e-01 5.3270697108805012e-02 -2.7744532318724890e-01 4.6150471842316365e-01 1.3957000000000000e-01 1 0 0 0 0 +V -54 0 0 0 0 0 0 2 0 +P 200 211 7.8603340975565442e-02 2.4826114704283447e-02 -1.3818930413805391e-01 2.1300443624955517e-01 1.3957000000000000e-01 1 0 0 0 0 +P 201 111 -7.2444747882162719e-01 7.5539425128146231e-01 -3.0092677963981189e+00 3.1889429118877124e+00 1.3497999999999999e-01 2 0 0 -99 0 +V -55 0 0 0 0 0 0 2 0 +P 202 211 -7.1336812839619990e-01 1.2156278646260546e-01 -2.1215576393421842e+00 2.2459203457859389e+00 1.3957000000000000e-01 1 0 0 0 0 +P 203 -211 -3.8396987451115550e-01 6.2143699058585955e-01 -3.1808611328278378e+00 3.2666456999551263e+00 1.3957000000000000e-01 1 0 0 0 0 +V -56 0 0 0 0 0 0 2 0 +P 204 321 -1.7893673284703560e-01 6.0568524101514520e-01 -1.7601004507644631e+00 1.9340288318240793e+00 4.9359999999999998e-01 1 0 0 0 0 +P 205 -211 -3.5718484953977997e-01 3.8710008422418218e-01 -1.7049727542491055e+00 1.7899271967258628e+00 1.3957000000000000e-01 1 0 0 0 0 +V -57 0 0 0 0 0 0 3 0 +P 206 111 -2.9554292158215627e-02 6.8699727020969506e-02 -6.7667418059625295e-01 6.9404658039885136e-01 1.3497999999999999e-01 2 0 0 -100 0 +P 207 111 -8.3861532678087297e-02 5.2894938783996322e-02 -8.9880718379003643e-01 9.1427817716746196e-01 1.3497999999999999e-01 2 0 0 -101 0 +P 208 111 -5.1537379352633073e-01 2.7614663553016722e-01 -3.0842146687927694e+00 3.1420481910634095e+00 1.3497999999999999e-01 2 0 0 -102 0 +V -58 0 0 0 0 0 0 2 0 +P 209 211 -2.8787457288157677e-02 2.4879370258541306e-01 -1.6687893171284660e+01 1.6690356056874656e+01 1.3957000000000000e-01 1 0 0 0 0 +P 210 111 -1.2348533400834598e-01 4.7926836171116444e-01 -4.7033438020998224e+00 4.7312376088506980e+00 1.3497999999999999e-01 2 0 0 -103 0 +V -59 0 0 0 0 0 0 2 0 +P 211 -211 3.0913726888285875e-01 -2.4912078764392806e-01 -2.5465295938249941e+00 2.5810695021589738e+00 1.3957000000000000e-01 1 0 0 0 0 +P 212 211 -7.0472479986327845e-03 -1.4536363234069261e-01 -8.3527033319280903e+00 8.3551369220027905e+00 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 -2.5008859253652064e-05 1.2616002773522305e-05 -8.8040707736340902e-04 8.8086246251737634e-04 0 2 0 +P 213 22 -3.0216804572784750e-01 1.8884543693933467e-01 -1.3003859249159436e+01 1.3008740273326284e+01 0 1 0 0 0 0 +P 214 22 -5.0594597322126056e-01 2.1881684789260519e-01 -1.5444831448137609e+01 1.5454665334523453e+01 0 1 0 0 0 0 +V -61 0 0 0 0 0 0 2 0 +P 215 -211 -2.2421009461650029e-01 -6.5249877864224176e-02 -5.1189059483439948e+01 5.1189782362275601e+01 1.3957000000000000e-01 1 0 0 0 0 +P 216 111 3.4510819533982345e-01 -4.5554062643907289e-01 -6.8210690910088516e+01 6.8213218594058873e+01 1.3497999999999999e-01 2 0 0 -104 0 +V -62 0 0 0 0 0 0 3 0 +P 217 211 3.1996614273406238e-01 2.2698112849886470e-01 -2.1384580773417935e+02 2.1384621311595322e+02 1.3957000000000000e-01 1 0 0 0 0 +P 218 -211 2.0155403003524568e-02 1.0084712989668214e-01 -1.6553192481345258e+02 1.6553201560005030e+02 1.3957000000000000e-01 1 0 0 0 0 +P 219 111 2.0102218594058774e-01 -5.6970762719395704e-02 -4.9236656213007620e+01 4.9237284553733737e+01 1.3497999999999999e-01 2 0 0 -105 0 +V -63 0 0 0 0 0 0 2 0 +P 220 211 -1.1965928167053523e-02 -1.7609060069797053e-01 -1.5658354689143539e+03 1.5658354850817191e+03 1.3957000000000000e-01 1 0 0 0 0 +P 221 111 -1.4891641871379296e-01 2.3853893762025774e-01 -3.3949548407814893e+02 3.3949562737387589e+02 1.3497999999999999e-01 2 0 0 -106 0 +V -64 0 1.7224079361358685e-05 3.9993368161236640e-06 1.2236866927998514e-04 1.2388004054236708e-04 0 2 0 +P 222 22 3.4213945668553833e-02 6.0764556174071421e-02 3.9702505912805364e-01 4.0310274489375181e-01 0 1 0 0 0 0 +P 223 22 2.6716427064635639e-01 9.2138136881784183e-03 1.7441199336875117e+00 1.7644874567303706e+00 0 1 0 0 0 0 +V -65 0 0 0 0 0 0 1 0 +P 224 130 -3.0824762001330436e-01 -1.4402182869475991e-01 3.9741975944594941e+02 3.9742021668806376e+02 4.9767000000000000e-01 1 0 0 0 0 +V -66 0 0 0 0 0 0 2 0 +P 225 130 -5.6718967892915073e-01 -1.1431034690863549e+00 5.6205241242334318e+02 5.6205408136228459e+02 4.9767000000000000e-01 1 0 0 0 0 +P 226 310 -3.5147060289058818e-01 -9.1662062570886449e-01 4.3080173018224508e+02 4.3080313616360888e+02 4.9767000000000000e-01 2 0 0 -107 0 +V -67 0 0 0 0 0 0 2 0 +P 227 -311 -2.4546654743398341e-01 -2.3146159829648183e-01 2.8342132256983007e+02 2.8342196031881150e+02 4.9767000000000000e-01 2 0 0 -108 0 +P 228 -211 1.0559389890479413e-02 3.1455748153945978e-01 2.1230192600598207e+02 2.1230220517824185e+02 1.3957000000000000e-01 1 0 0 0 0 +V -68 0 4.8796540959387777e-05 -2.6727885893172615e-05 7.5462096233572576e-04 7.5683320195057979e-04 0 2 0 +P 229 22 2.6685060975905711e-01 -1.4011960385428618e-01 4.8753534441163167e+00 4.8846610892025959e+00 0 1 0 0 0 0 +P 230 22 1.5121375552434085e-01 -8.8871558871697537e-02 1.5898616601878772e+00 1.5995073780296898e+00 0 1 0 0 0 0 +V -69 0 -1.2542959339478501e+00 6.6738331238764326e-01 3.4569932764836054e+01 3.4699881135292600e+01 0 2 0 +P 231 2112 -4.8062679974778633e-01 3.6572879428995364e-01 1.4593581181314528e+01 1.4636261925509741e+01 9.3957000000000002e-01 1 0 0 0 0 +P 232 211 -8.3921271769354780e-02 -6.5345167289508649e-02 9.6605538183553463e-01 9.8186330841766378e-01 1.3957000000000000e-01 1 0 0 0 0 +V -70 0 0 0 0 0 0 2 0 +P 233 -3122 -6.4332980426235087e-02 1.6435334128651716e-01 1.4602391787438231e+01 1.4646014424730232e+01 1.1156800000000000e+00 2 0 0 -109 0 +P 234 22 -6.0263618086868719e-02 -2.1865550854848093e-02 4.2463179579810417e-01 4.2944378908284236e-01 0 1 0 0 0 0 +V -71 0 0 0 0 0 0 2 0 +P 235 -211 1.2164753959102612e-01 -4.5521551591701886e-01 7.1835598725210605e+00 7.2003494024120069e+00 1.3957000000000000e-01 1 0 0 0 0 +P 236 111 2.5490886059890411e-01 7.2339769121301689e-02 1.1751666788979339e+01 1.1755428681635065e+01 1.3497999999999999e-01 2 0 0 -110 0 +V -72 0 0 0 0 0 0 2 0 +P 237 -211 1.1930293579631301e-01 2.0049976557463289e-01 2.3525837282285753e+00 2.3682405557102864e+00 1.3957000000000000e-01 1 0 0 0 0 +P 238 211 2.7023525158656675e-01 -1.9690143473533661e-01 5.6736419410684646e-01 6.7318584347518806e-01 1.3957000000000000e-01 1 0 0 0 0 +V -73 0 -1.4041331718659690e-06 9.5122516778726869e-05 1.3344830860466966e-04 1.6521502703569109e-04 0 2 0 +P 239 22 -3.4840433826297368e-02 2.3835644419272761e-01 4.3776599393873217e-01 4.9966660461408824e-01 0 1 0 0 0 0 +P 240 22 2.5776988954046759e-02 3.7564349841102102e-01 4.2362052734556249e-01 5.6676877317521679e-01 0 1 0 0 0 0 +V -74 0 0 0 0 0 0 2 0 +P 241 -211 -4.8632585458811266e-02 5.7613097737265306e-01 -1.6428978489932830e-01 6.1705992397744047e-01 1.3957000000000000e-01 1 0 0 0 0 +P 242 111 2.5989684114912343e-01 1.5049630889423141e-01 3.4060456346050649e-01 4.7373682153723579e-01 1.3497999999999999e-01 2 0 0 -111 0 +V -75 0 0 0 0 0 0 2 0 +P 243 22 -8.2029197985667976e-02 -1.7893268748394126e-01 4.5302511305727694e-01 4.9394073433252722e-01 0 1 0 0 0 0 +P 244 22 1.7368549233198097e-01 1.0668255504719676e-01 -3.2194728432922044e-02 2.0635968195573082e-01 0 1 0 0 0 0 +V -76 0 0 0 0 0 0 2 0 +P 245 321 3.1196765661891573e-01 5.2753774638899031e-01 3.0966105128831014e+00 3.1950363880775470e+00 4.9359999999999998e-01 1 0 0 0 0 +P 246 111 1.1971265141411374e-02 7.1476378845153385e-02 1.0826442031294552e-01 1.8759789185276041e-01 1.3497999999999999e-01 2 0 0 -112 0 +V -77 0 0 0 0 0 0 2 0 +P 247 -321 3.7146363264552096e-01 2.5233125086536835e-02 1.5308117489269486e+00 1.6509535158909296e+00 4.9359999999999998e-01 1 0 0 0 0 +P 248 111 4.5901243856616902e-01 3.3522470827209677e-01 2.7867613575488490e+00 2.8473367359906829e+00 1.3497999999999999e-01 2 0 0 -113 0 +V -78 0 0 0 0 0 0 1 0 +P 249 130 -8.8835934438628372e-01 6.8074086066904238e-01 -5.6890766581735761e+01 5.6903950549417793e+01 4.9767000000000000e-01 1 0 0 0 0 +V -79 0 -4.4817862219771405e-06 3.0023353222897988e-06 -1.2846199085357989e-04 1.2858002379972176e-04 0 2 0 +P 250 22 -4.3665145174182041e-01 3.4929125535303568e-01 -1.3346660737281969e+01 1.3358368976318870e+01 0 1 0 0 0 0 +P 251 22 -1.0682997537163530e-01 1.4785343756005780e-02 -2.2312143912955911e+00 2.2338193548164194e+00 0 1 0 0 0 0 +V -80 0 1.1498498947914117e-05 -1.6837102901323914e-05 -3.5968316635069550e-04 3.6069740049514610e-04 0 2 0 +P 252 22 2.1038819336212194e-02 -3.0885983525310211e-02 -1.3571303869921980e-01 1.4076435902018464e-01 0 1 0 0 0 0 +P 253 22 6.6419842695921730e-02 -9.7178601158091210e-02 -2.6000708777066524e+00 2.6027339174654478e+00 0 1 0 0 0 0 +V -81 0 1.4686859594192499e-04 -2.0097206713904554e-04 -1.7779381811276310e-02 1.7781226190380851e-02 0 2 0 +P 254 22 1.3160148159474916e-01 -1.7607773501339169e-01 -1.1351519572335821e+01 1.1353647824371190e+01 0 1 0 0 0 0 +P 255 22 1.9756790216339634e-01 -2.7435110628171355e-01 -2.8496537235756634e+01 2.8498542700186409e+01 0 1 0 0 0 0 +V -82 0 5.4468947599719818e-06 1.0627040465845464e-05 -8.8638815061755207e-04 8.8650436585870627e-04 0 2 0 +P 256 22 7.4170914151783521e-02 1.1931245135626149e-01 -1.3390197719027501e+01 1.3390934685084687e+01 0 1 0 0 0 0 +P 257 22 1.8140566479408472e-02 6.0789768965475235e-02 -1.6319031665550834e+00 1.6331357632406374e+00 0 1 0 0 0 0 +V -83 0 1.1901070929278200e-05 1.0331918358570022e-05 -4.8683925535694022e-04 4.8720611336069926e-04 0 2 0 +P 258 22 5.7800358510051483e-02 1.0610466901086330e-01 -4.7377783347524538e+00 4.7393187940335411e+00 0 1 0 0 0 0 +P 259 22 9.6099152341945396e-02 2.7503238293923368e-02 -1.5578167178456963e+00 1.5610203078746385e+00 0 1 0 0 0 0 +V -84 0 1.9717825146052879e-05 -1.0024675780293960e-05 -2.6694203919439990e-03 2.6699382446536131e-03 0 2 0 +P 260 22 -3.1659375525207083e-02 2.9139435087521169e-02 -1.8076191689495109e+00 1.8081312127966784e+00 0 1 0 0 0 0 +P 261 22 8.7451068289363970e-02 -5.7504309359996640e-02 -5.7455202499548106e+00 5.7464734731468763e+00 0 1 0 0 0 0 +V -85 0 -1.1098678875795688e-05 7.9712988635923251e-06 -2.7960215080273293e-04 3.0407909509766429e-04 0 2 0 +P 262 22 -1.2404392105220950e-02 1.3072052856764920e-02 -3.3120578315562949e-01 3.3169567121854948e-01 0 1 0 0 0 0 +P 263 22 -2.1187813471082882e-04 -4.0107887412976712e-03 1.3371891962832829e-02 1.3962049037908679e-02 0 1 0 0 0 0 +V -86 0 4.3701901577387691e-05 -2.7778932303276074e-05 -3.6980602490661738e-04 3.7391937739307860e-04 0 2 0 +P 264 22 6.2980374428364197e-02 -1.0968065014364305e-01 -7.0367021794103213e-01 7.1494625545998147e-01 0 1 0 0 0 0 +P 265 22 2.4055413927146813e-01 -8.3259803324823314e-02 -1.8648425442445429e+00 1.8821360746754701e+00 0 1 0 0 0 0 +V -87 0 4.8701731099785062e-07 3.6608978379173926e-06 -1.2112849635753707e-05 1.2908375431671910e-05 0 2 0 +P 266 22 -2.7090617015867346e-02 1.4244131973944305e-01 -5.4202119215789846e-01 5.6107967691557348e-01 0 1 0 0 0 0 +P 267 22 5.3352751664943285e-02 5.4970537672586084e-02 -1.1115741347810988e-01 1.3499720994664230e-01 0 1 0 0 0 0 +V -88 0 5.7146814384201549e-06 2.4354026327390962e-05 1.9717191825030330e-04 1.9902137772319508e-04 0 2 0 +P 268 22 -2.7936966043945702e-02 1.5190345905548287e-02 3.2316443733638378e-01 3.2472522883110322e-01 0 1 0 0 0 0 +P 269 22 1.0251930686823132e-01 3.0265419391104781e-01 2.2501274191538188e+00 2.2727039340399169e+00 0 1 0 0 0 0 +V -89 0 0 0 0 0 0 1 0 +P 270 310 6.3629118454362399e-01 2.6066327066419842e-01 7.2899009219783402e+00 7.3391513605703720e+00 4.9767000000000000e-01 2 0 0 -114 0 +V -90 0 7.9367802508350484e-06 5.5245739059513326e-05 1.0292227500665664e-02 1.0292402314119905e-02 0 2 0 +P 271 22 7.8535141648213305e-02 9.9560856692336122e-02 2.1477224930174994e+01 2.1477599280040344e+01 0 1 0 0 0 0 +P 272 22 -2.9808474054989965e-02 2.3961204189102020e-01 4.1710356478041902e+01 4.1711055369063452e+01 0 1 0 0 0 0 +V -91 0 5.5297266074583105e-05 -1.0925677018674232e-04 1.2724502710143248e-02 1.2725651055903247e-02 0 2 0 +P 273 22 6.8440360627038010e-02 -7.5865663977273692e-02 4.4101211349196099e+00 4.4113045810279425e+00 0 1 0 0 0 0 +P 274 22 -5.8713569331480097e-03 -4.7758662190614712e-02 9.9876875379365302e+00 9.9878034481110625e+00 0 1 0 0 0 0 +V -92 0 8.1925385454488015e-05 -3.6875384522501292e-05 2.3250063164562518e-01 2.3250065045013255e-01 0 2 0 +P 275 22 1.6711452594100847e-02 1.6870653625057283e-02 3.6019552965433256e+01 3.6019560793008758e+01 0 1 0 0 0 0 +P 276 22 4.0969453328655292e-01 -2.0879998791888793e-01 1.1741018337664309e+03 1.1741019238127251e+03 0 1 0 0 0 0 +V -93 0 2.5961841133729550e-05 3.0674258044667582e-05 6.5765265966504665e-04 6.5893258982709882e-04 0 2 0 +P 277 22 1.3018449916600637e-02 3.4011182350692962e-02 2.7215110360084871e-01 2.7457688131793440e-01 0 1 0 0 0 0 +P 278 22 4.0520254140559964e-01 4.6012244020071186e-01 1.0322018464498882e+01 1.0340211165203236e+01 0 1 0 0 0 0 +V -94 0 3.8901737926929142e-05 2.7765787009590177e-05 1.3322338436249194e-04 1.4665811226059863e-04 0 2 0 +P 279 22 8.0063088182418432e-02 3.1238773946188861e-02 7.9613488602169380e-02 1.1715061525393101e-01 0 1 0 0 0 0 +P 280 22 5.6620908615590333e-02 6.6318274786224957e-02 3.8847625782063722e-01 3.9814299410312703e-01 0 1 0 0 0 0 +V -95 0 -2.0261701110488303e-04 -4.8018556141857103e-04 2.2688593345382702e-03 2.3305607184803791e-03 0 2 0 +P 281 22 -1.5904416100449204e-01 -5.0608925283349793e-01 2.3153084317170132e+00 2.3753051406004837e+00 0 1 0 0 0 0 +P 282 22 -8.8983864789347528e-02 -8.1716658249179147e-02 4.6205314557993754e-01 4.7758648407233734e-01 0 1 0 0 0 0 +V -96 0 5.8495528174864427e-06 -4.1082222803042357e-05 9.9224658184738723e-05 1.0820598546116414e-04 0 2 0 +P 283 22 9.1972477577124914e-02 -4.4592456889574522e-01 1.0769225359730650e+00 1.1692176043248705e+00 0 1 0 0 0 0 +P 284 22 -2.5486999986110755e-02 -2.1012184866980223e-02 5.0855773592181873e-02 6.0641642365914170e-02 0 1 0 0 0 0 +V -97 0 -4.3582543869767395e-05 7.8614637762069199e-06 1.0692921289149186e-04 1.1681873643143345e-04 0 2 0 +P 285 22 -1.8371320086265014e-01 7.4984574553145597e-02 5.9982550796311540e-01 6.3179416473668593e-01 0 1 0 0 0 0 +P 286 22 -1.8722012261886847e-01 -8.0752428112496038e-03 3.1025464783563805e-01 3.6245624613668997e-01 0 1 0 0 0 0 +V -98 0 -3.1549862434167774e-05 1.4291309528277945e-05 1.0486479030424113e-05 3.9779846943029794e-05 0 2 0 +P 287 22 -4.5641294538943424e-02 8.0409127662733962e-02 -2.3546345316033672e-03 9.2489458223355650e-02 0 1 0 0 0 0 +P 288 22 -2.1217902662870536e-01 3.6377118875589240e-02 8.8048427878029925e-02 2.3258495172858076e-01 0 1 0 0 0 0 +V -99 0 -2.0055761571577863e-04 2.0912498751302585e-04 -8.3309224193529549e-04 8.8283389170218331e-04 0 2 0 +P 289 22 -1.9843402797534637e-01 2.8458700251599517e-01 -8.9233754423776901e-01 9.5740906529855474e-01 0 1 0 0 0 0 +P 290 22 -5.2601345084628082e-01 4.7080724876546715e-01 -2.1169302521603504e+00 2.2315338465891585e+00 0 1 0 0 0 0 +V -100 0 -7.0205171904481768e-06 1.6319376283750368e-05 -1.6074154954470244e-04 1.6486830144931802e-04 0 2 0 +P 291 22 -4.8089177585023853e-02 1.0362587097307130e-01 -4.7632411591871276e-01 4.8983216874912877e-01 0 1 0 0 0 0 +P 292 22 1.8534885426808229e-02 -3.4926143952101800e-02 -2.0035006467754016e-01 2.0421441164972265e-01 0 1 0 0 0 0 +V -101 0 -2.9445537543939600e-06 1.8572518962028519e-06 -3.1558999495805265e-05 3.2102218420846526e-05 0 2 0 +P 293 22 3.5666402381186346e-02 2.3073588652214965e-02 -2.9391385055853259e-01 2.9696773276275618e-01 0 1 0 0 0 0 +P 294 22 -1.1952793505927364e-01 2.9821350131781360e-02 -6.0489333323150396e-01 6.1731044440470606e-01 0 1 0 0 0 0 +V -102 0 -8.7759702361641637e-05 4.7023241861943939e-05 -5.2519116174042308e-04 5.3503926182768037e-04 0 2 0 +P 295 22 -2.1472465776296304e-01 4.2117950914751449e-02 -1.0811445000066504e+00 1.1030657416198317e+00 0 1 0 0 0 0 +P 296 22 -3.0064913576336771e-01 2.3402868461541579e-01 -2.0030701687861194e+00 2.0389824494435782e+00 0 1 0 0 0 0 +V -103 0 -4.0051840698321302e-05 1.5544825812030132e-04 -1.5255056661093622e-03 1.5345528806099953e-03 0 2 0 +P 297 22 -5.4313704046613225e-02 4.0017399337820786e-01 -3.9524382331551000e+00 3.9730161326540991e+00 0 1 0 0 0 0 +P 298 22 -6.9171629961732761e-02 7.9094368332956660e-02 -7.5090556894472305e-01 7.5822147619659941e-01 0 1 0 0 0 0 +V -104 0 1.1538667519395299e-04 -1.5230967855984055e-04 -2.2806195109471177e-02 2.2807040238776183e-02 0 2 0 +P 299 22 4.9612560842926725e-03 -4.1366033271512226e-02 -2.5491239845056692e+00 2.5494644243747766e+00 0 1 0 0 0 0 +P 300 22 3.4014693925553080e-01 -4.1417459316756067e-01 -6.5661566925582846e+01 6.5663754169684097e+01 0 1 0 0 0 0 +V -105 0 7.5620785956994322e-05 -2.1431335219304692e-05 -1.8521909028600417e-02 1.8522145398627614e-02 0 2 0 +P 301 22 -1.0974672239015704e-03 -4.5233445978568466e-02 -1.0867124610184147e+01 1.0867218805303377e+01 0 1 0 0 0 0 +P 302 22 2.0211965316448932e-01 -1.1737316740827236e-02 -3.8369531602823471e+01 3.8370065748430363e+01 0 1 0 0 0 0 +V -106 0 -6.2050380654414509e-06 9.9394224008864708e-06 -1.4146072138620869e-02 1.4146078109456379e-02 0 2 0 +P 303 22 -9.4033662273491525e-02 4.0317931435716235e-02 -8.8853780567535210e+01 8.8853839472523276e+01 0 1 0 0 0 0 +P 304 22 -5.4882756440301453e-02 1.9822100618454153e-01 -2.5064170351061375e+02 2.5064178790135270e+02 0 1 0 0 0 0 +V -107 0 -2.2144550003270545e+01 -5.7752059811266328e+01 2.7142840331616411e+04 2.7142928916050954e+04 0 2 0 +P 305 211 -2.3773313121780820e-01 -8.7164593426833892e-01 3.6426137340252683e+02 3.6426252060369370e+02 1.3957000000000000e-01 1 0 0 0 0 +P 306 -211 -1.1373747167277996e-01 -4.4974691440525599e-02 6.6540356779718223e+01 6.6540615559915182e+01 1.3957000000000000e-01 1 0 0 0 0 +V -108 0 0 0 0 0 0 1 0 +P 307 310 -2.4546654743398341e-01 -2.3146159829648183e-01 2.8342132256983007e+02 2.8342196031881150e+02 4.9767000000000000e-01 2 0 0 -115 0 +V -109 0 -5.6270946127520340e-03 1.4375702714435555e-02 1.2772459726874328e+00 1.2810615693794176e+00 0 2 0 +P 308 -2212 4.0919391927145221e-02 1.1725248601390804e-01 1.2564638925178782e+01 1.2600235095232547e+01 9.3827000000000005e-01 1 0 0 0 0 +P 309 211 -1.0525237235338031e-01 4.7100855272609099e-02 2.0377528622594481e+00 2.0457793294976856e+00 1.3957000000000000e-01 1 0 0 0 0 +V -110 0 1.1450288377146512e-04 3.2494406652989600e-05 5.2787483859840093e-03 5.2804381960459557e-03 0 2 0 +P 310 22 -6.3766087007953286e-03 3.0788902609582693e-02 9.4162923456893888e-01 9.4215403892214522e-01 0 1 0 0 0 0 +P 311 22 2.6128546929969942e-01 4.1550866511718992e-02 1.0810037554410400e+01 1.0813274642712919e+01 0 1 0 0 0 0 +V -111 0 5.7894541595921829e-05 3.3524512174853601e-05 7.5872969366759844e-05 1.0552947084212687e-04 0 2 0 +P 312 22 1.8493418015052648e-01 6.9153434526408500e-02 1.3164339122203578e-01 2.3730324681129761e-01 0 1 0 0 0 0 +P 313 22 7.4962660998596956e-02 8.1342874367822907e-02 2.0896117223847074e-01 2.3643357472593826e-01 0 1 0 0 0 0 +V -112 0 6.9261092346014606e-07 4.1353457778057710e-06 6.2637590300657296e-06 1.0853685686557134e-05 0 2 0 +P 314 22 5.9945933835984077e-03 7.3910957463011503e-02 1.3827374467382689e-01 1.5690249599371084e-01 0 1 0 0 0 0 +P 315 22 5.9766717578129680e-03 -2.4345786178581225e-03 -3.0009324360881350e-02 3.0695395859049578e-02 0 1 0 0 0 0 +V -113 0 5.8480414582225960e-05 4.2709256374829027e-05 3.5504693519910010e-04 3.6276453269127142e-04 0 2 0 +P 316 22 4.6099053514328703e-01 3.2869887519126678e-01 2.7819803904781000e+00 2.8390086504004146e+00 0 1 0 0 0 0 +P 317 22 -1.9780965771179549e-03 6.5258330808300215e-03 4.7809670707489029e-03 8.3280855902691311e-03 0 1 0 0 0 0 +V -114 0 3.0355799215239374e+00 1.2435567393166538e+00 3.4778223250929109e+01 3.5013184297298878e+01 0 2 0 +P 318 -211 2.5778681463971853e-01 3.2771288396927750e-01 3.8506537962191199e+00 3.8756759693449960e+00 1.3957000000000000e-01 1 0 0 0 0 +P 319 211 3.7850436990390546e-01 -6.7049613305079067e-02 3.4392471257592194e+00 3.4634753912253751e+00 1.3957000000000000e-01 1 0 0 0 0 +V -115 0 -3.3015133249945685e+00 -3.1131474287994143e+00 3.8120032356080346e+03 3.8120118133013384e+03 0 2 0 +P 320 211 -2.0869993064495407e-01 7.4933172581466437e-02 1.1763461578134871e+02 1.1763490757616057e+02 1.3957000000000000e-01 1 0 0 0 0 +P 321 -211 -3.6766616789029316e-02 -3.0639477087794825e-01 1.6578670678848133e+02 1.6578705274265090e+02 1.3957000000000000e-01 1 0 0 0 0 +BlockType GenEvent +E 10 -1.0000000000000000e+00 -1.0000000000000000e+00 -1.0000000000000000e+00 20 0 136 0 0 +V -1 0 0 0 0 0 1 3 0 +P 1 2212 0 0 6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -1 0 +P 16 2103 -4.3597932309017928e-02 -1.9178552605452839e-01 5.7710271643278456e+03 5.7710272192255625e+03 7.7132999999999996e-01 2 0 0 -9 0 +P 3 21 -6.5511378777462237e-01 -2.6708088178667958e-03 1.3902379475140679e+01 1.3917806446382523e+01 0 3 0 0 -3 0 +P 28 2 6.9871172008364035e-01 1.9445633487239519e-01 5.4217114364762290e+02 5.4217172917398170e+02 3.3000000000000002e-01 2 0 0 -13 0 +V -2 0 0 0 0 0 1 2 0 +P 2 2212 0 0 -6.9999999371178146e+03 7.0000000000000000e+03 9.3827000000000005e-01 3 0 0 -2 0 +P 4 2 1.5554951969939107e-01 -1.1414155502218004e+00 -2.5318090541773952e+02 2.5318352610953531e+02 0 3 0 0 -4 0 +P 31 2103 -1.5554951969939107e-01 1.1414155502218004e+00 -3.0079396582618142e+03 3.0079399777454469e+03 7.7132999999999996e-01 2 0 0 -13 0 +V -3 0 0 0 0 0 0 6 0 +P 5 -1 -2.6336683162149233e+00 1.2040498771434778e+00 7.5527386554890201e+00 8.0888692723150033e+00 0 3 0 0 -5 0 +P 11 1 1.1257705880566493e+00 -9.6356028506991842e-01 3.2813867683361453e+00 3.6155507136961815e+00 3.3000000000000002e-01 2 0 0 -9 0 +P 12 21 -9.6370912240519885e-02 2.1371062251800688e-01 2.0354592242001850e+00 2.0489152828471759e+00 0 2 0 0 -9 0 +P 13 21 9.5280060735029493e-01 -3.6665346932772618e-02 2.4849955628758677e-02 9.5382957876527541e-01 0 2 0 0 -9 0 +P 14 21 1.8560548483485220e-02 -1.7257190047342610e-01 -1.8018846212308559e-01 2.5018680355946143e-01 0 2 0 0 -9 0 +P 15 21 7.9695242284356750e-05 -2.5824124117734876e-01 -4.6415843771256871e-01 5.3116061628844602e-01 0 2 0 0 -9 0 +V -4 0 0 0 0 0 0 2 0 +P 6 2 1.2812912648480181e+00 -6.4858594580034412e-01 -2.4187105165040478e+02 2.4187531498172203e+02 0 3 0 0 -5 0 +P 30 21 -1.1480277436005311e+00 -4.8222213924733737e-01 -9.6575619960129195e+00 9.7375053067246053e+00 0 2 0 0 -13 0 +V -5 0 0 0 0 0 0 2 0 +P 7 24 -2.7038131088254236e+00 4.3210603841580824e+00 -1.9039627432725470e+02 2.0586031167139001e+02 7.8113663821200973e+01 3 0 0 -6 0 +P 8 22 1.3514360574585182e+00 -3.7655964528149486e+00 -4.3922038667661063e+01 4.4103872582647035e+01 0 3 0 0 -7 0 +V -6 0 0 0 0 0 0 1 0 +P 9 24 -2.7038131088254236e+00 4.3210603841580824e+00 -1.9039627432725470e+02 2.0586031167139001e+02 7.8113663821200973e+01 2 0 0 -8 0 +V -7 0 0 0 0 0 0 1 0 +P 10 22 1.3514360574585182e+00 -3.7655964528149486e+00 -4.3922038667661063e+01 4.4103872582647043e+01 0 1 0 0 0 0 +V -8 0 0 0 0 0 0 11 0 +P 17 4 1.2527727551424732e+01 -2.0291998608611124e+00 -5.0600275742191691e+01 5.2189074669550124e+01 1.5000000000000000e+00 2 0 0 -11 0 +P 18 21 8.4413619755245706e-01 -5.9573077753593484e-01 -9.7003942899011300e+00 9.7552606556087653e+00 0 2 0 0 -11 0 +P 19 21 1.3955327171164982e+00 -1.7699729137026712e+00 -8.4370450330890154e+00 8.7329287510064866e+00 0 2 0 0 -11 0 +P 20 21 1.7406612186275408e+00 -4.8453470359648625e+00 -2.0800170594403422e+01 2.1427888046498008e+01 0 2 0 0 -11 0 +P 21 21 4.3275523129907159e+00 -8.8306149160675105e+00 -5.6722222314980336e+01 5.7568376502795338e+01 0 2 0 0 -11 0 +P 22 21 5.0727116372506353e-01 5.3006276683040177e-01 -4.1876929772878206e+00 4.2514777480721468e+00 0 2 0 0 -11 0 +P 23 21 -1.4242475998353649e-02 2.6112816047433607e-01 -9.0335618313322297e-01 9.4044838131622055e-01 0 2 0 0 -11 0 +P 24 21 -2.1919670271754521e+00 3.5035232013803053e+00 -4.8234484426313431e+00 6.3517752754294783e+00 0 2 0 0 -11 0 +P 25 21 -1.7594584975864209e+00 2.2946842674852479e+00 -5.0312742416153835e+00 5.8030156458961768e+00 0 2 0 0 -11 0 +P 26 21 -1.6358735708068866e+00 1.9697163809587677e+00 -2.8994328596137606e+00 3.8681488943020028e+00 0 2 0 0 -11 0 +P 27 -3 -1.8445152698695317e+01 1.3832811111161117e+01 -2.6290961648407542e+01 3.4971917100915213e+01 5.0000000000000000e-01 2 0 0 -11 0 +V -9 0 0 0 0 0 0 1 0 +P 39 92 1.9572425945831762e+00 -1.4091136771899875e+00 5.7757245133761753e+03 5.7784268622207192e+03 1.7668483585073082e+02 2 0 0 -10 0 +V -10 0 0 0 0 0 0 16 0 +P 40 -211 7.4997996932615019e-01 -6.4116142761545669e-01 1.9858860190347392e+00 2.2218868099320424e+00 1.3957000000000000e-01 1 0 0 0 0 +P 41 223 2.8112506374623569e-01 5.4000903387299448e-01 5.8416822415061209e-01 1.1500024027454310e+00 7.8141663284205498e-01 2 0 0 -19 0 +P 42 2214 4.4881519761355032e-01 -1.3187483483780489e+00 2.3761689627847922e+00 3.0194592377826033e+00 1.2371026072926299e+00 2 0 0 -20 0 +P 43 223 4.4098049591794489e-02 3.6975571581476430e-01 1.2240256589844973e+00 1.5000787933206947e+00 7.8315620725532742e-01 2 0 0 -21 0 +P 44 -3122 5.1854209512044214e-01 2.8340706828298096e-01 1.4726857248798244e+00 1.9397810643032543e+00 1.1156800000000000e+00 2 0 0 -22 0 +P 45 -313 2.7417269706128827e-01 4.4906334318631121e-02 2.5317079951813390e+00 2.6984767938152476e+00 8.9165261577505939e-01 2 0 0 -23 0 +P 46 -213 -4.0680312455968282e-01 -2.5441007810341781e-01 1.5500120461449101e+00 1.7845955709874386e+00 7.4298771107034045e-01 2 0 0 -24 0 +P 47 111 1.0967169427730127e-01 -4.8556656735419729e-01 1.5733209930176220e+00 1.6557056862038457e+00 1.3497999999999999e-01 2 0 0 -25 0 +P 48 211 -2.0496925059681456e-01 3.5773003283645954e-01 8.1445332873483611e+00 8.1561562898039721e+00 1.3957000000000000e-01 1 0 0 0 0 +P 49 -211 2.9397211730379580e-01 -2.7463569397919968e-01 7.6207890473349726e+00 7.6326764544974779e+00 1.3957000000000000e-01 1 0 0 0 0 +P 50 223 -2.5509337878352928e-01 2.6149346255806938e-01 1.3907466962922905e+02 1.3907740332277268e+02 7.9178978467983019e-01 2 0 0 -26 0 +P 51 213 -3.6699974497245429e-02 -1.8001381623673610e-01 1.8723285347838268e+02 1.8723606959241326e+02 1.0819347925577454e+00 2 0 0 -27 0 +P 52 311 -2.0826395264017022e-01 -3.8873428077532614e-02 7.7769704741499027e+02 7.7769723550906360e+02 4.9767000000000000e-01 2 0 0 -28 0 +P 53 -321 2.9365263740186642e-01 -1.5350918725169876e-01 9.7138769739024906e+02 9.7138787931445381e+02 4.9359999999999998e-01 1 0 0 0 0 +P 54 2212 7.1090572027448316e-03 3.1651971253956951e-01 1.4534367235662871e+03 1.4534370608997706e+03 9.3827000000000005e-01 1 0 0 0 0 +P 55 113 4.7933697015449042e-02 -2.3601649041716902e-01 2.2178322239381737e+03 2.2178323944788513e+03 8.3573909078354769e-01 2 0 0 -29 0 +V -11 0 0 0 0 0 0 1 0 +P 56 92 -2.7038131088254218e+00 4.3210603841580841e+00 -1.9039627432725467e+02 2.0586031167138998e+02 7.8113663821201015e+01 2 0 0 -12 0 +V -12 0 0 0 0 0 0 20 0 +P 57 423 9.9248375242903197e+00 -1.8312835036795285e+00 -4.1176681461967789e+01 4.2442925679844130e+01 2.0066999999999999e+00 2 0 0 -30 0 +P 58 213 3.1593705763741533e+00 -9.7376654979652177e-01 -1.3392766193005166e+01 1.3814953051794681e+01 7.4625584783485499e-01 2 0 0 -31 0 +P 59 113 9.3523891341231291e-01 -2.2812398079724634e+00 -1.3732909593833934e+01 1.3984515733375392e+01 9.4612234830851460e-01 2 0 0 -32 0 +P 60 -213 1.0751687044528315e+00 -1.8471396089324810e+00 -1.0247617174688440e+01 1.0494828426213823e+01 7.4823355897352140e-01 2 0 0 -33 0 +P 61 211 1.0910074909423624e+00 -1.6408161014628322e+00 -1.4658262289795276e+01 1.4790764279287474e+01 1.3957000000000000e-01 1 0 0 0 0 +P 62 2112 1.8670048695663655e+00 -2.5858616180543601e+00 -1.5263383116042007e+01 1.5621332959215980e+01 9.3957000000000002e-01 1 0 0 0 0 +P 63 111 3.8895094638623819e-02 -6.8899625648955701e-02 -4.4678720222461937e-01 4.7339031599011050e-01 1.3497999999999999e-01 2 0 0 -34 0 +P 64 -2214 1.1524734474439160e+00 -3.9869224263739502e+00 -2.0153218017127685e+01 2.0618217127901126e+01 1.3171695435320887e+00 2 0 0 -35 0 +P 65 221 8.6263433165107117e-01 -6.4053962327754621e-01 -6.5229053808755504e+00 6.6334323776976012e+00 5.4744999999999999e-01 2 0 0 -36 0 +P 66 211 2.7687726878260471e-01 -4.4854367382269267e-01 -5.0833022953049456e+00 5.1124646169579897e+00 1.3957000000000000e-01 1 0 0 0 0 +P 67 -211 3.6317039313948940e-01 -6.1629174309821100e-01 -4.9883909457620250e+00 5.0413522253185885e+00 1.3957000000000000e-01 1 0 0 0 0 +P 68 111 -3.8693244171548362e-03 -6.3946170356676169e-01 -1.8470751031459909e+00 1.9592938215238989e+00 1.3497999999999999e-01 2 0 0 -37 0 +P 69 321 3.3833666963563275e-01 5.4299664689447102e-01 -3.1762619017227935e+00 3.2774376712447890e+00 4.9359999999999998e-01 1 0 0 0 0 +P 70 -323 -1.3745959258300033e+00 1.5798806728773855e+00 -2.7160124589975716e+00 3.5482417244696087e+00 9.0981248507430379e-01 2 0 0 -38 0 +P 71 211 -1.0294428816501737e+00 9.5496503398017951e-01 -2.7208975408319782e+00 3.0650406319183578e+00 1.3957000000000000e-01 1 0 0 0 0 +P 72 -211 -3.6822566989713057e-01 1.1035290774262612e+00 -1.2321916930023735e+00 1.7003360614597640e+00 1.3957000000000000e-01 1 0 0 0 0 +P 73 213 -1.6161918040002012e+00 1.2552448784983889e+00 -1.7897181449593560e+00 2.7573168640824823e+00 4.6042328160403989e-01 2 0 0 -39 0 +P 74 2112 -3.2740868421481886e+00 2.8787612972034244e+00 -6.5131664185879137e+00 7.8937342137498883e+00 9.3957000000000002e-01 1 0 0 0 0 +P 75 -2112 -2.6281380275611408e+00 3.1441450497976531e+00 -4.6117236755707163e+00 6.2404763144169966e+00 9.3957000000000002e-01 1 0 0 0 0 +P 76 313 -1.3494277917651111e+01 1.0422303713166622e+01 -2.0123003719808548e+01 2.6390257574927315e+01 8.8908096104164602e-01 2 0 0 -40 0 +V -13 0 0 0 0 0 1 1 0 +P 29 21 1.5824732804086550e+00 3.3756291283162567e+00 -3.7328965916562061e+03 3.7328984533592948e+03 0 2 0 0 -13 0 +P 77 92 9.7760773719237326e-01 4.2292788741631151e+00 -6.2083226682664099e+03 7.2927476655854471e+03 3.8263401989466056e+03 2 0 0 -14 0 +V -14 0 0 0 0 0 0 30 0 +P 78 211 3.8125690076946724e-02 1.8129069100767256e-01 4.0322325983256000e+01 4.0322993097831421e+01 1.3957000000000000e-01 1 0 0 0 0 +P 79 -213 8.1415453961843220e-01 -1.3658531520860595e-01 1.8147547255500226e+02 1.8147807889488487e+02 5.1427342333104598e-01 2 0 0 -41 0 +P 80 213 -3.1343969057550247e-01 -6.8751614116676532e-02 2.3490909782090895e+02 2.3491051292454674e+02 7.4958136047652402e-01 2 0 0 -42 0 +P 81 -211 2.4510416203644247e-01 1.9103572210561356e-01 4.9160055436805315e+01 4.9161235755746112e+01 1.3957000000000000e-01 1 0 0 0 0 +P 82 2212 5.9834549250678958e-02 2.2658407019457144e-01 9.6037237171125334e+00 9.6522940455458546e+00 9.3827000000000005e-01 1 0 0 0 0 +P 83 331 -4.4228289654992226e-01 -2.6644076626223800e-01 1.5250029814397761e+01 1.5288792292206974e+01 9.5768239605797145e-01 2 0 0 -43 0 +P 84 -2212 4.0600120601960499e-01 1.1341309506958630e-01 5.8544874327854846e+00 5.9441629522554207e+00 9.3827000000000005e-01 1 0 0 0 0 +P 85 211 3.1262473932432039e-01 6.7353189834058402e-01 1.8631926232668552e+00 2.0105586243668481e+00 1.3957000000000000e-01 1 0 0 0 0 +P 86 -213 -4.0230691978361560e-01 -7.2916784443047689e-01 1.2727585532551626e+00 1.6552834098551243e+00 6.5307903733029116e-01 2 0 0 -44 0 +P 87 111 -1.0918019607099445e-01 9.2778953753129487e-02 8.7863240603013404e-01 9.0041254700272333e-01 1.3497999999999999e-01 2 0 0 -45 0 +P 88 211 -1.3970682706965667e-01 -6.9289838877254262e-02 1.0396580156519743e-01 2.3368301627760824e-01 1.3957000000000000e-01 1 0 0 0 0 +P 89 311 3.4248690127551151e-01 -3.5064896127775863e-01 6.5641413010847338e-01 9.5854416210028415e-01 4.9767000000000000e-01 2 0 0 -46 0 +P 90 -311 3.4345529704259643e-02 4.2425337653113343e-01 -1.1177846011983017e+00 1.2954877021742741e+00 4.9767000000000000e-01 2 0 0 -47 0 +P 91 221 -2.2059027947856552e-02 6.8777216446446396e-02 -2.5995327345599137e+00 2.6575343547665886e+00 5.4744999999999999e-01 2 0 0 -48 0 +P 107 -213 5.1568029838271176e-02 1.0489281204351286e+00 -2.8682166939055642e+03 2.8682169478887886e+03 5.9501970391005188e-01 2 0 0 -60 0 +P 92 -211 7.8520032410541465e-02 8.6029665973671565e-02 -1.7637091485257692e-01 2.5328439237984829e-01 1.3957000000000000e-01 1 0 0 0 0 +P 93 211 9.1990315018622704e-02 -2.4519229699912645e-01 -1.7635783993765985e+00 1.7883707770517441e+00 1.3957000000000000e-01 1 0 0 0 0 +P 94 113 2.3916994123891654e-02 3.2774863600096921e-01 -2.1964548095601693e+00 2.3336785531389950e+00 7.1669426391767155e-01 2 0 0 -49 0 +P 95 -211 -2.2116319795837658e-01 -7.0985668931981008e-02 -1.4721936080260471e+02 1.4721961019863397e+02 1.3957000000000000e-01 1 0 0 0 0 +P 96 213 5.5418235924584147e-01 1.7536325683372644e+00 -1.7140605218064102e+03 1.7140616606041549e+03 7.2221363743955924e-01 2 0 0 -50 0 +P 97 113 -6.1783849261428873e-02 1.4046889857876368e-01 -1.0047869804122965e+02 1.0048130714945734e+02 7.0765644735339350e-01 2 0 0 -51 0 +P 98 221 5.3919364001689940e-01 -4.4261608605164110e-01 -1.6979921711826634e+02 1.6980153260279991e+02 5.4744999999999999e-01 2 0 0 -52 0 +P 99 1114 -2.0186593100368855e-01 5.2273469161686792e-01 -6.6287974334912337e+02 6.6288096452226989e+02 1.1423580713372095e+00 2 0 0 -53 0 +P 100 223 5.4569932897003848e-01 4.9089417068522490e-01 -5.5137637879476370e+02 5.5137741731893857e+02 7.7876288546928918e-01 2 0 0 -54 0 +P 101 -2114 -3.7116038230162590e-01 4.2691750743684054e-01 -3.0183378648302647e+02 3.0183654713177589e+02 1.1603892295315890e+00 2 0 0 -55 0 +P 102 213 1.2718626065914557e-01 -4.3273443653089196e-02 -2.0958549985729146e+01 2.0973175423021143e+01 7.7150559601649060e-01 2 0 0 -56 0 +P 103 111 -4.7798486804409918e-01 9.0585383083558874e-02 -8.5228987495888582e+00 8.5378391845859252e+00 1.3497999999999999e-01 2 0 0 -57 0 +P 104 113 1.5181900039448251e-01 4.9030903333713738e-02 -9.3885028370079510e+01 9.3887609752929094e+01 6.7768726512342226e-01 2 0 0 -58 0 +P 105 -211 -2.9881524415693622e-01 -4.2409333153494246e-02 -1.6592385765903004e+00 1.6922297540891829e+00 1.3957000000000000e-01 1 0 0 0 0 +P 106 2224 -3.7739651006785435e-01 -2.1399552580528344e-01 -1.0092898709838120e+02 1.0093591655187358e+02 1.1002687175001074e+00 2 0 0 -59 0 +V -15 0 0 0 0 0 2 1 0 +P 32 21 1.9264630307413937e+00 -4.3605697082707904e+00 -3.8703467637965021e+00 6.1404732766727497e+00 0 2 0 0 -15 0 +P 33 21 -1.9264630307413937e+00 4.3605697082707904e+00 1.0934871286863569e+01 1.1928840599562703e+01 0 2 0 0 -15 0 +P 108 92 0 0 7.0645245230670666e+00 1.8069313876235451e+01 1.6631073243206497e+01 2 0 0 -16 0 +V -16 0 0 0 0 0 0 12 0 +P 109 221 -2.7330901053064516e-01 1.7937353255594365e-01 6.5560086158529540e-01 9.1454178233157846e-01 5.4744999999999999e-01 2 0 0 -61 0 +P 110 211 -3.8949504695687842e-01 6.3318573167586201e-01 2.8287487702745040e-01 8.0754476244672213e-01 1.3957000000000000e-01 1 0 0 0 0 +P 111 -3214 1.3070293253442316e-02 6.8191945199945314e-01 3.6368408201980333e+00 3.9512642278438408e+00 1.3858906433044105e+00 2 0 0 -62 0 +P 112 111 -5.1252162865341999e-01 2.2292822157692199e-01 -3.3826285438294201e-01 6.6709577338512560e-01 1.3497999999999999e-01 2 0 0 -63 0 +P 113 3312 -2.8307230829558164e-02 7.4361433324065440e-01 2.8196795987175673e+00 3.2015918392796796e+00 1.3212999999999999e+00 2 0 0 -64 0 +P 114 321 1.7310712184575286e-01 2.5372564212865023e-01 -3.7818935156200967e-02 5.8259248962174692e-01 4.9359999999999998e-01 1 0 0 0 0 +P 115 -211 -1.7176330612558119e-01 2.3528839325019374e-01 6.2378220828836273e-01 7.0245803405367480e-01 1.3957000000000000e-01 1 0 0 0 0 +P 116 -2114 -2.3785732100599724e-01 -4.3066782908091966e-01 9.2976032860807897e-02 1.3554702372103349e+00 1.2596047543237858e+00 2 0 0 -65 0 +P 117 2214 6.0515337633293520e-01 -9.5121595517125890e-01 -9.1396794922064373e-01 1.8612896641441454e+00 1.1653494752166464e+00 2 0 0 -66 0 +P 118 221 1.5610406892865505e-01 -4.1180279740384002e-01 2.4550193443675206e-01 7.4425985152895202e-01 5.4744999999999999e-01 2 0 0 -67 0 +P 119 223 -1.6654532327853938e-01 2.6409934496084531e-01 9.2003618590961966e-01 1.2501855628480039e+00 7.8677287030995102e-01 2 0 0 -68 0 +P 120 -213 8.3236400701983415e-01 -1.4204480697325057e+00 -9.2271825719703426e-01 2.0310196515416505e+00 7.5041940526262951e-01 2 0 0 -69 0 +V -17 0 0 0 0 0 5 1 0 +P 34 21 -1.2874686984272923e+00 -4.5354152466705555e+00 2.9174823306294378e+01 2.9553305772157866e+01 0 2 0 0 -17 0 +P 35 21 -1.5824732804086550e+00 -3.3756291283162567e+00 1.8613755585412271e+01 1.8983439906629435e+01 0 2 0 0 -17 0 +P 36 21 1.2874686984272923e+00 4.5354152466705555e+00 7.6246561156214881e+01 7.6392183207822896e+01 0 2 0 0 -17 0 +P 37 21 -2.4549304752250420e+00 1.9106102320850373e+00 1.4255136986869084e+02 1.4258530838251687e+02 0 2 0 0 -17 0 +P 38 21 2.4549304752250420e+00 -1.9106102320850373e+00 3.9326543344547179e+02 3.9327773679443379e+02 0 2 0 0 -17 0 +P 121 92 -1.5824732804086552e+00 -3.3756291283162563e+00 6.5985194336208417e+02 6.6079197406356082e+02 3.5036363030476608e+01 2 0 0 -18 0 +V -18 0 0 0 0 0 0 21 0 +P 122 -213 2.4470237977472631e-01 9.0661371500187479e-02 1.0957930773391942e+01 1.0984198835469098e+01 7.1293652152266018e-01 2 0 0 -70 0 +P 123 211 1.4542095804863758e-01 8.3928851259360959e-01 1.4793046030567339e+01 1.4818206474124844e+01 1.3957000000000000e-01 1 0 0 0 0 +P 124 -211 1.6346163015651471e-01 6.7768762034861363e-01 3.6385442177273340e+01 3.6392387424238997e+01 1.3957000000000000e-01 1 0 0 0 0 +P 125 111 -3.2068447332136946e-01 3.8594024532024324e-01 2.9733721957725852e+00 3.0184350613158366e+00 1.3497999999999999e-01 2 0 0 -71 0 +P 126 321 3.3497849686451375e-01 1.2223626454055394e+00 2.9996662117980971e+01 3.0027483414541404e+01 4.9359999999999998e-01 1 0 0 0 0 +P 127 221 -5.8214749389140619e-01 5.7231243477632643e-01 4.5061968638670571e+01 4.5072687476149831e+01 5.4744999999999999e-01 2 0 0 -72 0 +P 128 -313 -9.2056140784737284e-02 1.1853320044069728e+00 4.0445501109361459e+01 4.0472952620159873e+01 8.9880337817518030e-01 2 0 0 -73 0 +P 129 -211 -6.8690343434950507e-02 -2.4724652780047213e-01 1.0978301805670297e+01 1.0982187374565884e+01 1.3957000000000000e-01 1 0 0 0 0 +P 130 3222 -5.6571475378204539e-01 -1.8495675331422309e-02 7.6655798754955228e+01 7.6667114586566711e+01 1.1893700000000000e+00 2 0 0 -74 0 +P 131 -3222 8.9269875728812620e-01 -2.0156941201723866e-01 1.7491908481387679e+02 1.7492552236429151e+02 1.1893700000000000e+00 2 0 0 -75 0 +P 132 111 5.4105896816734045e-01 -3.9755607846732188e-01 3.4247692832522112e+01 3.4254539547244640e+01 1.3497999999999999e-01 2 0 0 -76 0 +P 133 221 4.7159087264181826e-01 1.2020772703630062e-01 4.8034580061584379e+01 4.8040164769118533e+01 5.4744999999999999e-01 2 0 0 -77 0 +P 134 223 -3.9429121872598855e-01 -3.4625309703953722e-01 2.6395512218946230e+01 2.6411912261172318e+01 7.6856178603350211e-01 2 0 0 -78 0 +P 135 213 3.9795313085803385e-01 -6.1677401758222283e-01 3.1845668885775709e+01 3.1863855985015093e+01 7.8734653628175211e-01 2 0 0 -79 0 +P 136 313 1.0265114771882194e-01 -2.2622249924026197e-01 2.3452325229467018e+01 2.3473299881761864e+01 9.6048674802712919e-01 2 0 0 -80 0 +P 137 -313 -5.5700154512051092e-01 -1.6396713032419616e+00 1.3646660379336359e+01 1.3785980020161174e+01 9.0726672119751850e-01 2 0 0 -81 0 +P 138 111 -5.4077088808668135e-02 -2.3831882224430384e-01 3.8434254226100957e+00 3.8535514492654079e+00 1.3497999999999999e-01 2 0 0 -82 0 +P 139 -213 -5.8266223094836611e-01 -1.4614386039001783e+00 9.6551877108618420e+00 9.8199075697669720e+00 8.5594209993767068e-01 2 0 0 -83 0 +P 140 111 -7.2162541386152523e-01 -9.6677069323893028e-01 7.6826305172722131e+00 7.7779444634529762e+00 1.3497999999999999e-01 2 0 0 -84 0 +P 141 323 -9.0562613680950854e-01 -1.6754637359482516e+00 1.0954221378986349e+01 1.1149779322154751e+01 8.3383180723566952e-01 2 0 0 -85 0 +P 142 -313 -3.2412782438111951e-02 -4.3364122365194685e-01 6.9269303072013768e+00 6.9998631630231944e+00 9.0918948570052072e-01 2 0 0 -86 0 +V -19 0 0 0 0 0 0 3 0 +P 143 211 8.5723244854931269e-02 6.0053586839736363e-02 3.4776255196298755e-01 3.8906745616741811e-01 1.3957000000000000e-01 1 0 0 0 0 +P 144 -211 1.8531506706893134e-02 1.1294735671448289e-01 -1.0826952941544615e-01 2.1048182351323930e-01 1.3957000000000000e-01 1 0 0 0 0 +P 145 111 1.7687031218441127e-01 3.6700809031877518e-01 3.4467520160307075e-01 5.5045312306477356e-01 1.3497999999999999e-01 2 0 0 -87 0 +V -20 0 0 0 0 0 0 2 0 +P 146 2112 2.4934049273082956e-01 -1.0034513778020797e+00 2.1420894051923574e+00 2.5574252977683418e+00 9.3957000000000002e-01 1 0 0 0 0 +P 147 211 1.9947470488272068e-01 -3.1529697057596912e-01 2.3407955759243465e-01 4.6203394001426124e-01 1.3957000000000000e-01 1 0 0 0 0 +V -21 0 0 0 0 0 0 3 0 +P 148 211 2.4202018503168082e-01 1.4484617014986720e-01 6.7976534371923969e-01 7.4907602444050325e-01 1.3957000000000000e-01 1 0 0 0 0 +P 149 -211 -6.6861426897547510e-02 -6.1023832547298297e-02 2.4621632999211213e-01 2.9714747954563148e-01 1.3957000000000000e-01 1 0 0 0 0 +P 150 111 -1.3106070854233884e-01 2.8593337821219544e-01 2.9804398527314574e-01 4.5385528933456026e-01 1.3497999999999999e-01 2 0 0 -88 0 +V -22 0 9.6563352047872456e+01 5.2776306427173331e+01 2.7424479409799136e+02 3.6122768733868139e+02 0 2 0 +P 151 -2212 3.3107085829399807e-01 2.5462012600502582e-01 1.1978746459665013e+00 1.5778762886005071e+00 9.3827000000000005e-01 1 0 0 0 0 +P 152 211 1.8747123682644409e-01 2.8786942277955141e-02 2.7481107891332301e-01 3.6190477570274704e-01 1.3957000000000000e-01 1 0 0 0 0 +V -23 0 0 0 0 0 0 2 0 +P 153 -321 1.1436683630808112e-01 1.7624680147292271e-01 8.9963936691443347e-01 1.0474419596229463e+00 4.9359999999999998e-01 1 0 0 0 0 +P 154 211 1.5980586075320719e-01 -1.3134046715429157e-01 1.6320686282669057e+00 1.6510348341923013e+00 1.3957000000000000e-01 1 0 0 0 0 +V -24 0 0 0 0 0 0 2 0 +P 156 111 -2.7875872913594103e-02 -4.1177083616346186e-02 1.2016647573442882e+00 1.2102439448099500e+00 1.3497999999999999e-01 2 0 0 -89 0 +P 155 -211 -3.7892725164608876e-01 -2.1323299448707161e-01 3.4834728880062177e-01 5.7435162617748858e-01 1.3957000000000000e-01 1 0 0 0 0 +V -25 0 1.9645533442150538e-05 -8.6979728910064382e-05 2.8182960414027593e-04 2.9658720641656587e-04 0 2 0 +P 157 22 6.3688804206746011e-02 -1.4462149743960712e-01 3.3361177481488985e-01 3.6914557778483581e-01 0 1 0 0 0 0 +P 158 22 4.5982890070555262e-02 -3.4094506991459012e-01 1.2397092182027323e+00 1.2865601084190099e+00 0 1 0 0 0 0 +V -26 0 0 0 0 0 0 3 0 +P 159 -211 -9.6603613340956990e-02 8.1396753813179970e-02 1.3365449629037009e+01 1.3366775275318552e+01 1.3957000000000000e-01 1 0 0 0 0 +P 160 211 -1.1685871788492098e-01 3.0883905152444485e-01 5.6084708578525380e+01 5.6085854309644873e+01 1.3957000000000000e-01 1 0 0 0 0 +P 161 111 -4.1631047557651339e-02 -1.2874234277955540e-01 6.9624511421666696e+01 6.9624773737809306e+01 1.3497999999999999e-01 2 0 0 -90 0 +V -27 0 0 0 0 0 0 2 0 +P 162 211 4.9615297183541651e-01 -1.7952305223659404e-01 8.7694255163022987e+01 8.7695953525120132e+01 1.3957000000000000e-01 1 0 0 0 0 +P 163 111 -5.3285294633266200e-01 -4.9076400014206613e-04 9.9538598315359692e+01 9.9540116067293155e+01 1.3497999999999999e-01 2 0 0 -91 0 +V -28 0 0 0 0 0 0 1 0 +P 164 130 -2.0826395264017022e-01 -3.8873428077532614e-02 7.7769704741499027e+02 7.7769723550906360e+02 4.9767000000000000e-01 1 0 0 0 0 +V -29 0 0 0 0 0 0 2 0 +P 165 211 4.9099984147424301e-03 1.9716298245156322e-01 1.5278552690721040e+03 1.5278552881763790e+03 1.3957000000000000e-01 1 0 0 0 0 +P 166 -211 4.3023698600706616e-02 -4.3317947286873226e-01 6.8997695486606995e+02 6.8997710630247286e+02 1.3957000000000000e-01 1 0 0 0 0 +V -30 0 0 0 0 0 0 2 0 +P 167 421 8.7573421888733503e+00 -1.5584005896471986e+00 -3.6683661548972424e+01 3.7792684999883136e+01 1.8645000000000000e+00 2 0 0 -92 0 +P 168 22 1.1674953354169699e+00 -2.7288291403232995e-01 -4.4930199129953658e+00 4.6502406799609899e+00 0 1 0 0 0 0 +V -31 0 0 0 0 0 0 2 0 +P 169 211 4.2875839023686985e-01 -2.0671583581217681e-01 -3.0239811985057781e+00 3.0643934583846248e+00 1.3957000000000000e-01 1 0 0 0 0 +P 170 111 2.7306121861372836e+00 -7.6705071398434499e-01 -1.0368784994499388e+01 1.0750559593410056e+01 1.3497999999999999e-01 2 0 0 -93 0 +V -32 0 0 0 0 0 0 2 0 +P 171 -211 6.6913532265409348e-01 -1.1497333163713761e+00 -9.4612474426376263e+00 9.5553289705019964e+00 1.3957000000000000e-01 1 0 0 0 0 +P 172 211 2.6610359075821943e-01 -1.1315064916010875e+00 -4.2716621511963080e+00 4.4291867628733934e+00 1.3957000000000000e-01 1 0 0 0 0 +V -33 0 0 0 0 0 0 2 0 +P 173 -211 9.8073095541060518e-01 -1.0256404175782887e+00 -6.3296668889138790e+00 6.4882920851779993e+00 1.3957000000000000e-01 1 0 0 0 0 +P 174 111 9.4437749042226293e-02 -8.2149919135419225e-01 -3.9179502857745612e+00 4.0065363410358232e+00 1.3497999999999999e-01 2 0 0 -94 0 +V -34 0 5.6807710352650527e-07 -1.0063042688640729e-06 -6.5254907358017688e-06 6.9140389564218331e-06 0 2 0 +P 175 22 -3.1320614758231377e-02 -6.7555428947804044e-02 -1.3895740843388496e-01 1.5765112827955549e-01 0 1 0 0 0 0 +P 176 22 7.0215709396855189e-02 -1.3441967011516463e-03 -3.0782979379073439e-01 3.1573918771055498e-01 0 1 0 0 0 0 +V -35 0 0 0 0 0 0 2 0 +P 177 -2112 1.0158607703232485e+00 -2.5256186969806884e+00 -1.3305053132739511e+01 1.3613153696228572e+01 9.3957000000000002e-01 1 0 0 0 0 +P 178 -211 1.3661267712066744e-01 -1.4613037293932616e+00 -6.8481648843881722e+00 7.0050634316725500e+00 1.3957000000000000e-01 1 0 0 0 0 +V -36 0 0 0 0 0 0 3 0 +P 179 111 2.0577497595879218e-01 -9.0184808666137053e-02 -1.4114507077389808e+00 1.4355797927046268e+00 1.3497999999999999e-01 2 0 0 -95 0 +P 180 111 4.1762967717743038e-01 -1.7457001757955024e-01 -2.2827569132806103e+00 2.3311130311135639e+00 1.3497999999999999e-01 2 0 0 -96 0 +P 181 111 2.3922967851484872e-01 -3.7578479703185902e-01 -2.8286977598559608e+00 2.8667395538794112e+00 1.3497999999999999e-01 2 0 0 -97 0 +V -37 0 -1.4153395206062958e-06 -2.3390528252416852e-04 -6.7563174062637891e-04 7.1667962649706767e-04 0 2 0 +P 182 22 -5.2764102271312105e-02 -2.7285017863169636e-01 -6.6581425086460921e-01 7.2148450234377659e-01 0 1 0 0 0 0 +P 183 22 4.8894777854157266e-02 -3.6661152493506532e-01 -1.1812608522813814e+00 1.2378093191801220e+00 0 1 0 0 0 0 +V -38 0 0 0 0 0 0 2 0 +P 184 -311 -4.6100841314703395e-01 9.2307915799673013e-01 -1.4688030567429675e+00 1.8627028043458205e+00 4.9767000000000000e-01 2 0 0 -98 0 +P 185 -211 -9.1358751268296934e-01 6.5680151488065541e-01 -1.2472094022546043e+00 1.6855389201237880e+00 1.3957000000000000e-01 1 0 0 0 0 +V -39 0 0 0 0 0 0 2 0 +P 186 211 -2.9732466916018679e-01 3.8062348944596097e-01 -5.2622083077712678e-01 7.2778042516476327e-01 1.3957000000000000e-01 1 0 0 0 0 +P 187 111 -1.3188671348400147e+00 8.7462138905242814e-01 -1.2634973141822292e+00 2.0295364389177188e+00 1.3497999999999999e-01 2 0 0 -99 0 +V -40 0 0 0 0 0 0 2 0 +P 188 321 -1.0177148179868251e+01 7.8877952464503291e+00 -1.5602898362297932e+01 2.0235753931818788e+01 4.9359999999999998e-01 1 0 0 0 0 +P 189 -211 -3.3171297377828615e+00 2.5345084667162929e+00 -4.5201053575106149e+00 6.1545036431085274e+00 1.3957000000000000e-01 1 0 0 0 0 +V -41 0 0 0 0 0 0 2 0 +P 190 -211 6.5734504515515368e-01 -8.4783501213816281e-02 1.6242754517480276e+02 1.6242895739999059e+02 1.3957000000000000e-01 1 0 0 0 0 +P 191 111 1.5680949446327844e-01 -5.1801813994789669e-02 1.9047927380199486e+01 1.9049121494894198e+01 1.3497999999999999e-01 2 0 0 -100 0 +V -42 0 0 0 0 0 0 2 0 +P 192 211 -5.0619922995651788e-02 -2.7314198696764880e-01 1.7851834426888692e+02 1.7851861496553065e+02 1.3957000000000000e-01 1 0 0 0 0 +P 193 111 -2.6281976757985070e-01 2.0439037285097228e-01 5.6390753552022026e+01 5.6391897959015616e+01 1.3497999999999999e-01 2 0 0 -101 0 +V -43 0 0 0 0 0 0 3 0 +P 195 -211 4.1840956779000425e-02 1.1065370009422846e-02 2.3223399295776672e+00 2.3269326680177986e+00 1.3957000000000000e-01 1 0 0 0 0 +P 196 221 -4.7666894429362194e-01 -2.2991460991983190e-01 9.2810980530629781e+00 9.3122798810698342e+00 5.4744999999999999e-01 2 0 0 -102 0 +P 194 211 -7.4549090353008274e-03 -4.7591526351828985e-02 3.6465918317571173e+00 3.6495797431193293e+00 1.3957000000000000e-01 1 0 0 0 0 +V -44 0 0 0 0 0 0 2 0 +P 197 -211 3.2159859847224199e-02 5.1524931983974856e-02 2.2591055305043298e-01 2.7240491566948427e-01 1.3957000000000000e-01 1 0 0 0 0 +P 198 111 -4.3446677963083974e-01 -7.8069277641445167e-01 1.0468480002047293e+00 1.3828784941856385e+00 1.3497999999999999e-01 2 0 0 -103 0 +V -45 0 -3.5529310722325376e-06 3.0192034773813072e-06 2.8592368293834157e-05 2.9301135473266580e-05 0 2 0 +P 199 22 1.0875639270421181e-02 -2.5150996814891705e-02 1.6074224664701259e-01 1.6306109906244409e-01 0 1 0 0 0 0 +P 200 22 -1.2005583534141563e-01 1.1792995056802119e-01 7.1789015938312140e-01 7.3735144794027918e-01 0 1 0 0 0 0 +V -46 0 0 0 0 0 0 1 0 +P 201 130 3.4248690127551151e-01 -3.5064896127775863e-01 6.5641413010847338e-01 9.5854416210028470e-01 4.9767000000000000e-01 1 0 0 0 0 +V -47 0 0 0 0 0 0 1 0 +P 202 130 3.4345529704259643e-02 4.2425337653113343e-01 -1.1177846011983017e+00 1.2954877021742739e+00 4.9767000000000000e-01 1 0 0 0 0 +V -48 0 0 0 0 0 0 3 0 +P 203 -211 3.7755731400707987e-03 1.0039370246368491e-01 -9.8458836148270468e-01 9.9949346016574825e-01 1.3957000000000000e-01 1 0 0 0 0 +P 204 211 -9.9161576416783720e-02 -1.0551044999043914e-01 -9.9295638064943059e-01 1.0131177779839140e+00 1.3957000000000000e-01 1 0 0 0 0 +P 205 111 7.3326975328856361e-02 7.3893963973200610e-02 -6.2198799242777869e-01 6.4492311661692658e-01 1.3497999999999999e-01 2 0 0 -104 0 +V -49 0 0 0 0 0 0 2 0 +P 206 -211 -1.4056740735774267e-01 4.3090739428138275e-01 -9.2027408298128321e-01 1.0352895977284280e+00 1.3957000000000000e-01 1 0 0 0 0 +P 207 211 1.6448440148163432e-01 -1.0315875828041352e-01 -1.2761807265788860e+00 1.2983889554105663e+00 1.3957000000000000e-01 1 0 0 0 0 +V -50 0 0 0 0 0 0 2 0 +P 208 211 -1.4298661753468034e-01 3.7573616782950625e-01 -3.6032083344042366e+02 3.6032108474779415e+02 1.3957000000000000e-01 1 0 0 0 0 +P 209 111 6.9716897678052181e-01 1.3778964005077581e+00 -1.3537396883659865e+03 1.3537405758563607e+03 1.3497999999999999e-01 2 0 0 -105 0 +V -51 0 0 0 0 0 0 2 0 +P 210 211 -2.9078012283491389e-01 -1.1660259005217517e-01 -4.0121417247561617e+01 4.0122883133963313e+01 1.3957000000000000e-01 1 0 0 0 0 +P 211 -211 2.2899627357348501e-01 2.5707148863093887e-01 -6.0357280793668032e+01 6.0358424015494023e+01 1.3957000000000000e-01 1 0 0 0 0 +V -52 0 0 0 0 0 0 3 0 +P 212 -211 2.6751267029558212e-01 -1.2905333117748891e-01 -6.3913699019142889e+01 6.3914541537005043e+01 1.3957000000000000e-01 1 0 0 0 0 +P 213 211 -1.1274188888036062e-02 -1.4725853542175005e-01 -4.0564276257440682e+01 4.0564785223866963e+01 1.3957000000000000e-01 1 0 0 0 0 +P 214 111 2.8295515860935339e-01 -1.6630421945240220e-01 -6.5321241841682792e+01 6.5322205841927925e+01 1.3497999999999999e-01 2 0 0 -106 0 +V -53 0 0 0 0 0 0 2 0 +P 215 2112 -2.1845128615593268e-01 4.4798446087771526e-01 -4.9336036526094443e+02 4.9336151168614583e+02 9.3957000000000002e-01 1 0 0 0 0 +P 216 -211 1.6585355152244120e-02 7.4750230739152670e-02 -1.6951937808817900e+02 1.6951945283612403e+02 1.3957000000000000e-01 1 0 0 0 0 +V -54 0 0 0 0 0 0 3 0 +P 217 -211 1.9855211504001832e-01 2.6538607577308887e-01 -1.3606712490783372e+02 1.3606760015955496e+02 1.3957000000000000e-01 1 0 0 0 0 +P 218 211 3.7148306018183180e-01 3.1989607288807170e-01 -3.3769988231507233e+02 3.3770026699509737e+02 1.3957000000000000e-01 1 0 0 0 0 +P 219 111 -2.4335846251811649e-02 -9.4387977975935594e-02 -7.7609371571857679e+01 7.7609550164286290e+01 1.3497999999999999e-01 2 0 0 -107 0 +V -55 0 0 0 0 0 0 2 0 +P 220 -2112 -4.2947348594333151e-01 4.2878118755364686e-01 -2.4264944626776290e+02 2.4265202423762878e+02 9.3957000000000002e-01 1 0 0 0 0 +P 221 111 5.8313103641705534e-02 -1.8636801168062198e-03 -5.9184340215263624e+01 5.9184522894147172e+01 1.3497999999999999e-01 2 0 0 -108 0 +V -56 0 0 0 0 0 0 2 0 +P 222 211 2.1682504245500336e-01 -3.0690088139902211e-01 -1.5974570443628508e+01 1.5979598927801305e+01 1.3957000000000000e-01 1 0 0 0 0 +P 223 111 -8.9638781795857811e-02 2.6362743774593289e-01 -4.9839795421006370e+00 4.9935764952198349e+00 1.3497999999999999e-01 2 0 0 -109 0 +V -57 0 -4.7599329251464510e-06 9.0207949310365042e-07 -8.4873871722890296e-05 8.5022653563515400e-05 0 2 0 +P 224 22 -3.7654176681799945e-01 1.0398317559965164e-01 -7.3943111915591366e+00 7.4046224887284371e+00 0 1 0 0 0 0 +P 225 22 -1.0144310122609973e-01 -1.3397792516092778e-02 -1.1285875580297213e+00 1.1332166958574881e+00 0 1 0 0 0 0 +V -58 0 0 0 0 0 0 2 0 +P 226 211 3.4496114997444949e-01 1.7950342099730848e-01 -4.8049026935169458e+01 4.8050803207383346e+01 1.3957000000000000e-01 1 0 0 0 0 +P 227 -211 -1.9314214957996700e-01 -1.3047251766359474e-01 -4.5836001434910052e+01 4.5836806545545755e+01 1.3957000000000000e-01 1 0 0 0 0 +V -59 0 0 0 0 0 0 2 0 +P 228 2212 -3.3167235353726043e-01 -1.2810071106104892e-01 -8.1283552071314276e+01 8.1289744766884553e+01 9.3827000000000005e-01 1 0 0 0 0 +P 229 211 -4.5724156530593883e-02 -8.5894814744234493e-02 -1.9645435027066917e+01 1.9646171784989004e+01 1.3957000000000000e-01 1 0 0 0 0 +V -60 0 0 0 0 0 0 2 0 +P 230 -211 5.0134055720976158e-02 4.0626914941326336e-01 -5.8639213486603819e+02 5.8639229435641471e+02 1.3957000000000000e-01 1 0 0 0 0 +P 231 111 1.4339741172950205e-03 6.4265897102186520e-01 -2.2818245590395259e+03 2.2818246535323738e+03 1.3497999999999999e-01 2 0 0 -110 0 +V -61 0 0 0 0 0 0 3 0 +P 232 22 -3.0900926286086272e-01 3.2953746163256012e-02 3.5998311172387848e-01 4.7556336554281858e-01 0 1 0 0 0 0 +P 233 211 3.2072488781638424e-02 7.4310750623015523e-02 1.9183184940054263e-01 2.5065908229951850e-01 1.3957000000000000e-01 1 0 0 0 0 +P 234 -211 3.6277635485791552e-03 7.2109035769672120e-02 1.0378590046087431e-01 1.8831933448924135e-01 1.3957000000000000e-01 1 0 0 0 0 +V -62 0 0 0 0 0 0 2 0 +P 235 -3112 8.3232122072788059e-02 5.2781217484367471e-01 3.2795184750343456e+00 3.5319424202200054e+00 1.1974400000000001e+00 2 0 0 -111 0 +P 236 -211 -7.0161828819345753e-02 1.5410727715577854e-01 3.5732234516368805e-01 4.1932180762383553e-01 1.3957000000000000e-01 1 0 0 0 0 +V -63 0 -1.8944492746949275e-05 8.2401636158269830e-06 -1.2503312705566621e-05 2.4658063843313472e-05 0 2 0 +P 237 22 -6.0517711111023132e-03 6.5087741414458159e-04 -3.6556075964248064e-02 3.7059334382760996e-02 0 1 0 0 0 0 +P 238 22 -5.0646985754231766e-01 2.2227734416277739e-01 -3.0170677841869392e-01 6.3003643900236450e-01 0 1 0 0 0 0 +V -64 0 -7.8563955847677602e-01 2.0638289911218017e+01 7.8257454723169033e+01 8.8857056141573736e+01 0 2 0 +P 239 3122 5.1931187238816325e-02 4.9930613611396391e-01 2.3055770821192110e+00 2.6100634110615828e+00 1.1156800000000000e+00 2 0 0 -112 0 +P 240 -211 -8.0238418068374492e-02 2.4430819712669047e-01 5.1410251659835626e-01 5.9152842821809692e-01 1.3957000000000000e-01 1 0 0 0 0 +V -65 0 0 0 0 0 0 2 0 +P 241 -2112 3.0395501563056263e-02 -2.4405351662998401e-01 -5.3666462824919672e-02 9.7270647146344724e-01 9.3957000000000002e-01 1 0 0 0 0 +P 242 111 -2.6825282256905353e-01 -1.8661431245093574e-01 1.4664249568572760e-01 3.8276376574688753e-01 1.3497999999999999e-01 2 0 0 -113 0 +V -66 0 0 0 0 0 0 2 0 +P 243 2112 5.0572982604360539e-01 -5.8752637152712439e-01 -6.5446855545169724e-01 1.3827764711496053e+00 9.3957000000000002e-01 1 0 0 0 0 +P 244 211 9.9423550289329768e-02 -3.6368958364413451e-01 -2.5949939376894660e-01 4.7851319299453970e-01 1.3957000000000000e-01 1 0 0 0 0 +V -67 0 0 0 0 0 0 3 0 +P 245 111 8.1991508324625768e-03 -2.2739275841531278e-01 -6.9069109264228244e-03 2.6465448885791415e-01 1.3497999999999999e-01 2 0 0 -114 0 +P 246 111 1.4009134464458384e-01 -4.0884284586234554e-02 6.9315279214559475e-02 2.1052628791447428e-01 1.3497999999999999e-01 2 0 0 -115 0 +P 247 111 7.8135734516086748e-03 -1.4352575440229270e-01 1.8309356614861544e-01 2.6907907475656356e-01 1.3497999999999999e-01 2 0 0 -116 0 +V -68 0 0 0 0 0 0 3 0 +P 248 211 -1.7564763129426919e-01 3.9036294667704030e-01 5.7373381789943145e-01 7.2930487398558319e-01 1.3957000000000000e-01 1 0 0 0 0 +P 249 -211 9.8183549295323566e-02 -9.0366883444205459e-02 2.8497224847354313e-01 3.4423124535072736e-01 1.3957000000000000e-01 1 0 0 0 0 +P 250 111 -8.9081241279593756e-02 -3.5896718271989543e-02 6.1330119536645196e-02 1.7664944351169345e-01 1.3497999999999999e-01 2 0 0 -117 0 +V -69 0 0 0 0 0 0 2 0 +P 251 -211 3.2224716368830358e-01 -8.0081349545995439e-01 -1.1081394023791091e-01 8.8142214816000508e-01 1.3957000000000000e-01 1 0 0 0 0 +P 252 111 5.1011684333153062e-01 -6.1963457427255142e-01 -8.1190431695912335e-01 1.1495975033816452e+00 1.3497999999999999e-01 2 0 0 -118 0 +V -70 0 0 0 0 0 0 2 0 +P 253 -211 -1.3608073804842804e-02 3.4069193915745993e-01 4.6360081699615536e+00 4.6506244434408828e+00 1.3957000000000000e-01 1 0 0 0 0 +P 254 111 2.5831045357956911e-01 -2.5003056765727244e-01 6.3219226034303873e+00 6.3335743920282130e+00 1.3497999999999999e-01 2 0 0 -119 0 +V -71 0 -2.2191327105470943e-05 2.6707018703971986e-05 2.0575699945590383e-04 2.0887534434869823e-04 0 2 0 +P 255 22 -3.3464530112944861e-02 1.3062552833387439e-01 7.1639911157906921e-01 7.2897914270537523e-01 0 1 0 0 0 0 +P 256 22 -2.8721994320842464e-01 2.5531471698636882e-01 2.2569730841935161e+00 2.2894559186104617e+00 0 1 0 0 0 0 +V -72 0 0 0 0 0 0 3 0 +P 257 -211 -2.5370115195927556e-01 2.4389521354651730e-01 1.1941656171072713e+01 1.1947655880661921e+01 1.3957000000000000e-01 1 0 0 0 0 +P 258 211 -1.2411261561070656e-01 1.6023975462299647e-01 1.1180974600038915e+01 1.1183682466519279e+01 1.3957000000000000e-01 1 0 0 0 0 +P 259 111 -2.0433372632142410e-01 1.6817746660681263e-01 2.1939337867558944e+01 2.1941349128968632e+01 1.3497999999999999e-01 2 0 0 -120 0 +V -73 0 0 0 0 0 0 2 0 +P 260 -311 -2.2181622425943659e-01 8.2064928378335456e-01 3.4099179264428734e+01 3.4113404544560858e+01 4.9767000000000000e-01 2 0 0 -121 0 +P 261 111 1.2976008347469933e-01 3.6468272062361839e-01 6.3463218449327279e+00 6.3595480755990161e+00 1.3497999999999999e-01 2 0 0 -122 0 +V -74 0 -1.0001014862923057e+01 -3.2697666563000749e-01 1.3551631410569682e+03 1.3553631885179477e+03 0 2 0 +P 263 211 -2.9869529476092338e-01 -5.0875432558458403e-02 2.2946836256989762e+01 2.2949261015961937e+01 1.3957000000000000e-01 1 0 0 0 0 +P 262 2112 -2.6701945902112212e-01 3.2379757227036086e-02 5.3708962497965480e+01 5.3717853570604774e+01 9.3957000000000002e-01 1 0 0 0 0 +V -75 0 3.8177060219193604e+00 -8.6202960607973977e-01 7.4805709987901992e+02 7.4808463063873478e+02 0 2 0 +P 264 -2212 5.6058624701577420e-01 -8.4272389450154115e-03 1.2543095886015534e+02 1.2543572106513193e+02 9.3827000000000005e-01 1 0 0 0 0 +P 265 111 3.3211251027235189e-01 -1.9314217307222326e-01 4.9488125953721443e+01 4.9489801299159566e+01 1.3497999999999999e-01 2 0 0 -123 0 +V -76 0 4.0150324535365861e-04 -2.9501415761643132e-04 2.5414161167512602e-02 2.5419241904258205e-02 0 2 0 +P 266 22 2.1495426154852360e-01 -2.1249167000350005e-01 1.7862096858763419e+01 1.7864653991505818e+01 0 1 0 0 0 0 +P 267 22 3.2610470661881691e-01 -1.8506440846382186e-01 1.6385595973758694e+01 1.6389885555738825e+01 0 1 0 0 0 0 +V -77 0 0 0 0 0 0 3 0 +P 268 111 2.1756652006665286e-01 4.4921344540010552e-02 2.8253044127043143e+01 2.8254239950189710e+01 1.3497999999999999e-01 2 0 0 -124 0 +P 269 111 2.1168570079863799e-01 1.5888476958365427e-02 1.4419743327632153e+01 1.4421937474376135e+01 1.3497999999999999e-01 2 0 0 -125 0 +P 270 111 4.2338651776527382e-02 5.9397905537924622e-02 5.3617926069090789e+00 5.3639873445526884e+00 1.3497999999999999e-01 2 0 0 -126 0 +V -78 0 0 0 0 0 0 3 0 +P 271 211 -1.6517201415503185e-01 -2.4079978785390410e-01 5.3890218212193854e+00 5.3987315460735052e+00 1.3957000000000000e-01 1 0 0 0 0 +P 272 -211 6.1921227808798385e-02 6.5909961337744488e-02 6.8540815103096717e+00 6.8560988540368788e+00 1.3957000000000000e-01 1 0 0 0 0 +P 273 111 -2.9104043237975502e-01 -1.7136327052337760e-01 1.4152408887417174e+01 1.4157081861061936e+01 1.3497999999999999e-01 2 0 0 -127 0 +V -79 0 0 0 0 0 0 2 0 +P 274 211 -5.2151867703930009e-02 -4.6577522637422542e-01 9.3560383894911787e+00 9.3688099836287453e+00 1.3957000000000000e-01 1 0 0 0 0 +P 275 111 4.5010499856196384e-01 -1.5099879120799736e-01 2.2489630496284530e+01 2.2495046001386349e+01 1.3497999999999999e-01 2 0 0 -128 0 +V -80 0 0 0 0 0 0 2 0 +P 276 321 -2.0352232346411694e-01 -3.1853415646239830e-01 1.2546225242926846e+01 1.2561619885637212e+01 4.9359999999999998e-01 1 0 0 0 0 +P 277 -211 3.0617347118293892e-01 9.2311657222136315e-02 1.0906099986540170e+01 1.0911679996124647e+01 1.3957000000000000e-01 1 0 0 0 0 +V -81 0 0 0 0 0 0 2 0 +P 278 -321 -7.0220195411522102e-01 -1.2527226016438842e+00 1.0523045321644643e+01 1.0632051791748376e+01 4.9359999999999998e-01 1 0 0 0 0 +P 279 211 1.4520040899471007e-01 -3.8694870159807759e-01 3.1236150576917168e+00 3.1539282284127990e+00 1.3957000000000000e-01 1 0 0 0 0 +V -82 0 -7.3070249558822658e-06 -3.2202206515903731e-05 5.1933279134994169e-04 5.2070104417390720e-04 0 2 0 +P 280 22 1.2505542083726177e-02 -1.7814709059026052e-01 3.0137330713764303e+00 3.0190196753212120e+00 0 1 0 0 0 0 +P 281 22 -6.6582630892394315e-02 -6.0171731654043326e-02 8.2969235123366514e-01 8.3453177394419598e-01 0 1 0 0 0 0 +V -83 0 0 0 0 0 0 2 0 +P 282 -211 5.1916430522214251e-02 -8.9640749655295293e-01 4.1885959318955983e+00 4.2860304923351693e+00 1.3957000000000000e-01 1 0 0 0 0 +P 283 111 -6.3457866147058040e-01 -5.6503110734722573e-01 5.4665917789662455e+00 5.5338770774318045e+00 1.3497999999999999e-01 2 0 0 -129 0 +V -84 0 -1.3711706269638147e-04 -1.8369746299331976e-04 1.4597874604678092e-03 1.4778981978161132e-03 0 2 0 +P 284 22 -5.2667737066255793e-01 -6.6014242113744759e-01 5.7128746555838257e+00 5.7749557486932526e+00 0 1 0 0 0 0 +P 285 22 -1.9494804319896730e-01 -3.0662827210148269e-01 1.9697558616883879e+00 2.0029887147597236e+00 0 1 0 0 0 0 +V -85 0 0 0 0 0 0 2 0 +P 286 311 -8.8640989536248971e-01 -1.6453928479315294e+00 1.0105514131225380e+01 1.0288932471929078e+01 4.9767000000000000e-01 2 0 0 -130 0 +P 287 211 -1.9216241447018820e-02 -3.0070888016722131e-02 8.4870724776096818e-01 8.6084685022567276e-01 1.3957000000000000e-01 1 0 0 0 0 +V -86 0 0 0 0 0 0 2 0 +P 288 -321 -3.0096672158605109e-01 -3.2856288480682283e-01 5.3121460379397503e+00 5.3536035550994834e+00 4.9359999999999998e-01 1 0 0 0 0 +P 289 211 2.6855393914793912e-01 -1.0507833884512403e-01 1.6147842692616270e+00 1.6462596079237115e+00 1.3957000000000000e-01 1 0 0 0 0 +V -87 0 4.4109844203045144e-05 9.1528473519848896e-05 8.5958854573134038e-05 1.3727799312159968e-04 0 2 0 +P 290 22 -8.7160338195142774e-03 1.0407506512888258e-01 1.1322702962452645e-01 1.5403878948082347e-01 0 1 0 0 0 0 +P 291 22 1.8558634600392554e-01 2.6293302518989264e-01 2.3144817197854431e-01 3.9641433358395012e-01 0 1 0 0 0 0 +V -88 0 -3.5053496386335686e-05 7.6475739764950647e-05 7.9714842662904328e-05 1.2138813319072600e-04 0 2 0 +P 292 22 -1.3461824233850531e-01 2.0304834831798538e-01 1.5577729727085340e-01 2.8916650786351850e-01 0 1 0 0 0 0 +P 293 22 3.5575337961664942e-03 8.2885029894210052e-02 1.4226668800229234e-01 1.6468878147104177e-01 0 1 0 0 0 0 +V -89 0 -4.4554774813408138e-06 -6.5814465924921522e-06 1.9206538511148803e-04 1.9343662025378980e-04 0 2 0 +P 294 22 1.8693463926493268e-02 -3.1342886660051500e-02 1.0632171065932128e+00 1.0638432393403643e+00 0 1 0 0 0 0 +P 295 22 -4.6569336840087371e-02 -9.8341969562946805e-03 1.3844765075107546e-01 1.4640070546958606e-01 0 1 0 0 0 0 +V -90 0 -1.1519603842379508e-05 -3.5623912285813612e-05 1.9265592300701549e-02 1.9265664885424284e-02 0 2 0 +P 296 22 -8.3815127063187972e-02 -1.2256295385089019e-01 5.3865030303772741e+01 5.3865234950564684e+01 0 1 0 0 0 0 +P 297 22 4.2184079505536640e-02 -6.1793889286651952e-03 1.5759481117893948e+01 1.5759538787244599e+01 0 1 0 0 0 0 +V -91 0 -1.5697360852585788e-04 -1.4457458960692370e-07 2.9323161432635091e-02 2.9323608548484745e-02 0 2 0 +P 298 22 -4.9644516570737324e-01 -3.7151389408233211e-02 8.9402750785785713e+01 8.9404136851118892e+01 0 1 0 0 0 0 +P 299 22 -3.6407780625288773e-02 3.6660625408091146e-02 1.0135847529573983e+01 1.0135979216174251e+01 0 1 0 0 0 0 +V -92 0 1.8966305837442445e-02 -3.3751224473166320e-03 -7.9448025344839107e-02 8.1849904533435089e-02 0 4 0 +P 300 -311 2.6183277643501564e+00 6.1386138582397727e-02 -9.6191913944512102e+00 9.9817797537093131e+00 4.9767000000000000e-01 2 0 0 -131 0 +P 301 211 8.8637402086832295e-01 -3.1039363085465904e-01 -3.8525417889436788e+00 3.9678156624776282e+00 1.3957000000000000e-01 1 0 0 0 0 +P 302 -211 1.5690167489104487e+00 -1.3700604791982612e-01 -6.5896015529868883e+00 6.7766446437418670e+00 1.3957000000000000e-01 1 0 0 0 0 +P 303 111 3.6836236547444208e+00 -1.1723870494551110e+00 -1.6622326812590639e+01 1.7066444939954319e+01 1.3497999999999999e-01 2 0 0 -132 0 +V -93 0 7.4128442659675373e-04 -2.0823270018832646e-04 -2.8148335666901884e-03 2.9184746351946975e-03 0 2 0 +P 304 22 8.1742943599848239e-01 -1.6584406973187246e-01 -3.0563856276486878e+00 3.1681521811932414e+00 0 1 0 0 0 0 +P 305 22 1.9131827501388010e+00 -6.0120664425247261e-01 -7.3123993668507001e+00 7.5824074122168170e+00 0 1 0 0 0 0 +V -94 0 1.4833994199896756e-05 -1.2903859275933336e-04 -6.1541970667552427e-04 6.2933453462583595e-04 0 2 0 +P 306 22 5.6644467513777601e-02 -3.9192437164538596e-01 -2.1953408676426514e+00 2.2307700091967217e+00 0 1 0 0 0 0 +P 307 22 3.7793281528448693e-02 -4.2957481970880629e-01 -1.7226094181319094e+00 1.7757663318391017e+00 0 1 0 0 0 0 +V -95 0 4.5181862789650803e-06 -1.9801813276266907e-06 -3.0991121206199972e-05 3.1520921781356387e-05 0 2 0 +P 308 22 8.6260522514302745e-02 2.2530582118513855e-02 -3.3478032046315359e-01 3.4644821812855597e-01 0 1 0 0 0 0 +P 309 22 1.1951445344448942e-01 -1.1271539078465091e-01 -1.0766703872758272e+00 1.0891315745760710e+00 0 1 0 0 0 0 +V -96 0 8.5116093559703892e-05 -3.5578692705565099e-05 -4.6524316068253217e-04 4.7509850400360835e-04 0 2 0 +P 310 22 4.1443767343060667e-01 -1.4967313990932649e-01 -2.2238064740485206e+00 2.2670412144442822e+00 0 1 0 0 0 0 +P 311 22 3.1920037468237635e-03 -2.4896877670223756e-02 -5.8950439232089813e-02 6.4071816669282453e-02 0 1 0 0 0 0 +V -97 0 3.0282600980360872e-06 -4.7568266335714519e-06 -3.5806730204857039e-05 3.6288277676784827e-05 0 2 0 +P 312 22 9.3367976806222705e-02 -2.3060951027911883e-01 -1.2351119821318959e+00 1.2599206061216093e+00 0 1 0 0 0 0 +P 313 22 1.4586170170862600e-01 -1.4517528675274019e-01 -1.5935857777240650e+00 1.6068189477578019e+00 0 1 0 0 0 0 +V -98 0 0 0 0 0 0 1 0 +P 314 130 -4.6100841314703395e-01 9.2307915799673013e-01 -1.4688030567429675e+00 1.8627028043458205e+00 4.9767000000000000e-01 1 0 0 0 0 +V -99 0 -6.0749677413030187e-04 4.0286823319709669e-04 -5.8199231917407284e-04 9.3484537376994871e-04 0 2 0 +P 315 22 -5.8507372946487168e-01 3.1792411425789363e-01 -4.8939393290153504e-01 8.2637366420853020e-01 0 1 0 0 0 0 +P 316 22 -7.3379340537514304e-01 5.5669727479453446e-01 -7.7410338128069411e-01 1.2031627747091891e+00 0 1 0 0 0 0 +V -100 0 1.3016547532871910e-04 -4.2999996681327984e-05 1.5811431125117299e-02 1.5812422343840164e-02 0 2 0 +P 317 22 1.5804746333869230e-01 -3.9281593826614072e-02 1.8887316070568861e+01 1.8888018170095304e+01 0 1 0 0 0 0 +P 318 22 -1.2379688754138632e-03 -1.2520220168175604e-02 1.6061130963062439e-01 1.6110332479890169e-01 0 1 0 0 0 0 +V -101 0 -3.1320010615501288e-05 2.4357028797134874e-05 6.7200386642486745e-03 6.7201750422674266e-03 0 2 0 +P 319 22 -2.0941596228200959e-01 1.9785744195153840e-01 3.9131333015929883e+01 3.9132393566151876e+01 0 1 0 0 0 0 +P 320 22 -5.3403805297841091e-02 6.5329308994338591e-03 1.7259420536092140e+01 1.7259504392863857e+01 0 1 0 0 0 0 +V -102 0 0 0 0 0 0 3 0 +P 321 -211 -6.0151917037470526e-02 7.9311722353406680e-02 2.2910866605242663e+00 2.2974913434783999e+00 1.3957000000000000e-01 1 0 0 0 0 +P 322 211 -1.8066085545057711e-01 -1.2250346517093816e-01 3.1803689410937466e+00 3.1909045473101791e+00 1.3957000000000000e-01 1 0 0 0 0 +P 323 111 -2.3585617180557428e-01 -1.8672286710230040e-01 3.8096424514449647e+00 3.8238839902812538e+00 1.3497999999999999e-01 2 0 0 -133 0 +V -103 0 -1.9160483241735818e-05 -3.4429446762634630e-05 4.6167197366874553e-05 6.0986527521654494e-05 0 2 0 +P 324 22 -4.2152681502119949e-01 -7.5137863584649212e-01 1.0392920720559295e+00 1.3499565627185053e+00 0 1 0 0 0 0 +P 325 22 -1.2939964609640288e-02 -2.9314140567959529e-02 7.5559281487998032e-03 3.2921931467134069e-02 0 1 0 0 0 0 +V -104 0 2.9830838171712643e-05 3.0061500167775855e-05 -2.5303679939952156e-04 2.6236725350684323e-04 0 2 0 +P 326 22 3.5218510592828343e-02 1.0791532602972706e-01 -4.9896979581793105e-01 5.1171956990041656e-01 0 1 0 0 0 0 +P 327 22 3.8108464736028018e-02 -3.4021362056526450e-02 -1.2301819660984770e-01 1.3320354671651011e-01 0 1 0 0 0 0 +V -105 0 4.2377491725209733e-04 8.3755581868205121e-04 -8.2287213505597279e-01 8.2287267451795754e-01 0 2 0 +P 328 22 4.5179522665667199e-01 1.0179315933320865e+00 -9.5340158429428311e+02 9.5340223475640357e+02 0 1 0 0 0 0 +P 329 22 2.4537375012384985e-01 3.5996480717567148e-01 -4.0033810407170330e+02 4.0033834109995706e+02 0 1 0 0 0 0 +V -106 0 2.7213670290870733e-05 -1.5994577439058151e-05 -6.2823761447091137e-03 6.2824688589927487e-03 0 2 0 +P 330 22 2.2167340558834825e-01 -9.7157200552894965e-02 -5.5547760321911738e+01 5.5548287600977559e+01 0 1 0 0 0 0 +P 331 22 6.1281753021005136e-02 -6.9147018899507251e-02 -9.7734815197710532e+00 9.7739182409503673e+00 0 1 0 0 0 0 +V -107 0 -5.8316299800032171e-06 -2.2618311951053398e-05 -1.8597633026793233e-02 1.8597675823125447e-02 0 2 0 +P 332 22 -1.7984737530842031e-02 -2.1226756412069968e-02 -2.7141048367785494e+00 2.7142474262669105e+00 0 1 0 0 0 0 +P 333 22 -6.3511087209696176e-03 -7.3161221563865633e-02 -7.4895266735079133e+01 7.4895302738019382e+01 0 1 0 0 0 0 +V -108 0 5.8868838727987346e-06 -1.8814413465442004e-07 -5.9748378353555037e-03 5.9748562773403457e-03 0 2 0 +P 334 22 6.9648943109769781e-02 2.9835063326280664e-02 -1.6959451898039372e+01 1.6959621156977278e+01 0 1 0 0 0 0 +P 335 22 -1.1335839468064239e-02 -3.1698743443086888e-02 -4.2224888317224256e+01 4.2224901737169894e+01 0 1 0 0 0 0 +V -109 0 -1.1760798667907243e-05 3.4588480081390835e-05 -6.5390870765183397e-04 6.5516784829608410e-04 0 2 0 +P 336 22 -6.1848075575125581e-02 1.9449485808627826e-01 -2.4447993736844960e+00 2.4533033672667659e+00 0 1 0 0 0 0 +P 337 22 -2.7790706220732229e-02 6.9132579659654650e-02 -2.5391801684161410e+00 2.5402731279530690e+00 0 1 0 0 0 0 +V -110 0 1.1133139557567718e-07 4.9894987127144138e-05 -1.7715711152160191e-01 1.7715711885787144e-01 0 2 0 +P 338 22 5.1210149305939139e-02 5.3680022191438881e-01 -1.8410429184390396e+03 1.8410429974097549e+03 0 1 0 0 0 0 +P 339 22 -4.9776175188644113e-02 1.0585874910747640e-01 -4.4078164060048624e+02 4.4078165612261887e+02 0 1 0 0 0 0 +V -111 0 8.3651444920921989e+00 5.3047128888430507e+01 3.2960406661453277e+02 3.5497363213991264e+02 0 2 0 +P 340 -2112 2.4959979502932808e-01 4.1483457435636895e-01 2.8145873045782719e+00 3.0065064878947614e+00 9.3957000000000002e-01 1 0 0 0 0 +P 341 211 -1.6636767295654004e-01 1.1297760048730578e-01 4.6493117045607391e-01 5.2543593232524399e-01 1.3957000000000000e-01 1 0 0 0 0 +V -112 0 5.6116033604361382e-01 3.3587453741407344e+01 1.3805102263693735e+02 1.5654726916412105e+02 0 2 0 +P 342 2212 1.1992793272742071e-01 4.4331641651508663e-01 2.1078582809441220e+00 2.3525155216586264e+00 9.3827000000000005e-01 1 0 0 0 0 +P 343 -211 -6.7996745488604390e-02 5.5989719598877254e-02 1.9771880117508914e-01 2.5754788940295620e-01 1.3957000000000000e-01 1 0 0 0 0 +V -113 0 -1.9934912146134204e-05 -1.3868036460130835e-05 1.0897575057695162e-05 2.8444666377829044e-05 0 2 0 +P 344 22 -7.6471623616945908e-03 -4.7325606667598510e-02 -9.0136760118943275e-03 4.8779488454572417e-02 0 1 0 0 0 0 +P 345 22 -2.6060566020735898e-01 -1.3928870578333724e-01 1.5565617169762194e-01 3.3398427729231522e-01 0 1 0 0 0 0 +V -114 0 2.1360272638227475e-06 -5.9239931243597419e-05 -1.7993753681444694e-06 6.8947286767231003e-05 0 2 0 +P 346 22 -4.6502144541311519e-02 -2.4623793396686189e-02 1.1401113821310007e-02 5.3840189863615641e-02 0 1 0 0 0 0 +P 347 22 5.4701295373774099e-02 -2.0276896501862660e-01 -1.8308024747732833e-02 2.1081429899429852e-01 0 1 0 0 0 0 +V -115 0 4.8539793062532255e-05 -1.4165862411844778e-05 2.4016825005729855e-05 7.2944566814726108e-05 0 2 0 +P 348 22 -1.5453741505853599e-02 -1.0327941204819121e-03 4.5670963822391386e-02 4.8225737181418267e-02 0 1 0 0 0 0 +P 349 22 1.5554508615043744e-01 -3.9851490465752641e-02 2.3644315392168085e-02 1.6230055073305602e-01 0 1 0 0 0 0 +V -116 0 1.1104293133444440e-06 -2.0397223612887224e-05 2.6020420003133673e-05 3.8240287119304297e-05 0 2 0 +P 350 22 5.0771406605997528e-02 -4.0452964763788126e-03 5.4032352941951377e-02 7.4253587905076579e-02 0 1 0 0 0 0 +P 351 22 -4.2957833154388850e-02 -1.3948045792591390e-01 1.2906121320666405e-01 1.9482548685148704e-01 0 1 0 0 0 0 +V -117 0 -2.6036576342430157e-05 -1.0491857009467409e-05 1.7925506161217156e-05 5.1630923141319130e-05 0 2 0 +P 352 22 -1.0270748918179354e-01 -7.3080935605012304e-02 4.7240148627235183e-02 1.3461531534433765e-01 0 1 0 0 0 0 +P 353 22 1.3626247902199785e-02 3.7184217333022761e-02 1.4089970909410013e-02 4.2034128167355814e-02 0 1 0 0 0 0 +V -118 0 1.0691248272362538e-04 -1.2986567995721066e-04 -1.7016239984005995e-04 2.4093759072278827e-04 0 2 0 +P 354 22 2.0070538345311324e-02 -3.6272560866489251e-02 -8.3680527288135988e-03 4.2291245994366115e-02 0 1 0 0 0 0 +P 355 22 4.9004630498621926e-01 -5.8336201340606209e-01 -8.0353626423030966e-01 1.1073062573872792e+00 0 1 0 0 0 0 +V -119 0 2.7525122215137944e-05 -2.6642831665992929e-05 6.7365331090041411e-04 6.7489490565872043e-04 0 2 0 +P 356 22 -1.3261749120023297e-02 1.7702328450182473e-03 2.6929989477908284e-01 2.6963204750562036e-01 0 1 0 0 0 0 +P 357 22 2.7157220269959242e-01 -2.5180080050229070e-01 6.0526227086513051e+00 6.0639423445225926e+00 0 1 0 0 0 0 +V -120 0 -3.1715703820054426e-05 2.6103702096238404e-05 3.4053191039106886e-03 3.4056312822883005e-03 0 2 0 +P 358 22 -1.2742245539164479e-01 1.6454266915182736e-01 1.2849928685755119e+01 1.2851613828663774e+01 0 1 0 0 0 0 +P 359 22 -7.6911270929779313e-02 3.6347974549852820e-03 9.0894091818038234e+00 9.0897353003048575e+00 0 1 0 0 0 0 +V -121 0 0 0 0 0 0 1 0 +P 360 130 -2.2181622425943659e-01 8.2064928378335456e-01 3.4099179264428734e+01 3.4113404544560858e+01 4.9767000000000000e-01 1 0 0 0 0 +V -122 0 1.6365951152252307e-05 4.5995497474848116e-05 8.0042791688625977e-04 8.0209607121551534e-04 0 2 0 +P 361 22 1.6457473104822637e-02 1.2357630669817704e-01 3.0214087375441823e+00 3.0239796148959881e+00 0 1 0 0 0 0 +P 362 22 1.1330261036987670e-01 2.4110641392544135e-01 3.3249131073885452e+00 3.3355684607030280e+00 0 1 0 0 0 0 +V -123 0 3.8177543412316921e+00 -8.6205770648757274e-01 7.4806429994568623e+02 7.4809183094914840e+02 0 2 0 +P 363 22 2.8847555483102255e-01 -1.8442581482610237e-01 3.6678513532652126e+01 3.6680111586414981e+01 0 1 0 0 0 0 +P 364 22 4.3636955441329298e-02 -8.7163582461208516e-03 1.2809612421069319e+01 1.2809689712744593e+01 0 1 0 0 0 0 +V -124 0 1.8055353550502218e-05 3.7279208096233577e-06 2.3446562478244642e-03 2.3447554864834664e-03 0 2 0 +P 365 22 3.2840553761882885e-02 3.3487323111844082e-02 1.2824422473230022e+01 1.2824508242995824e+01 0 1 0 0 0 0 +P 366 22 1.8472596630477001e-01 1.1434021428166474e-02 1.5428621653813121e+01 1.5429731707193888e+01 0 1 0 0 0 0 +V -125 0 1.5000494737206010e-05 1.1258909510514894e-06 1.0218133916554050e-03 1.0219688735163036e-03 0 2 0 +P 367 22 2.0590072325621228e-01 1.6406750822116400e-02 1.4396424714445700e+01 1.4397906405030316e+01 0 1 0 0 0 0 +P 368 22 5.7849775424257200e-03 -5.1827386375097220e-04 2.3318613186452682e-02 2.4031069345820253e-02 0 1 0 0 0 0 +V -126 0 1.1025628596229910e-05 1.5468117627169742e-05 1.3962923100580519e-03 1.3968638531069975e-03 0 2 0 +P 369 22 -4.6518556081000337e-03 8.8937831391877178e-02 2.3566496719389329e+00 2.3583318794993993e+00 0 1 0 0 0 0 +P 370 22 4.6990507384627421e-02 -2.9539925853952553e-02 3.0051429349701460e+00 3.0056554650532892e+00 0 1 0 0 0 0 +V -127 0 -5.5259884809614866e-05 -3.2536766497669014e-05 2.6871197190801157e-03 2.6880069771947918e-03 0 2 0 +P 371 22 -1.0110895637559562e-01 -5.3295271113881944e-02 2.6031718919982696e+00 2.6056798165300958e+00 0 1 0 0 0 0 +P 372 22 -1.8993147600415941e-01 -1.1806799940949568e-01 1.1549236995418905e+01 1.1551402044531839e+01 0 1 0 0 0 0 +V -128 0 3.9393832255598700e-05 -1.3215629843371153e-05 1.9683245778019608e-03 1.9687985505421920e-03 0 2 0 +P 373 22 4.0519797499710603e-01 -1.6100216218666105e-01 1.8439347310789309e+01 1.8444501520590993e+01 0 1 0 0 0 0 +P 374 22 4.4907023564857852e-02 1.0003370978663674e-02 4.0502831854952213e+00 4.0505444807953541e+00 0 1 0 0 0 0 +V -129 0 -2.0539396101361708e-04 -1.8288351670226675e-04 1.7693707760742391e-03 1.7911489965044658e-03 0 2 0 +P 375 22 -2.7639354994895160e-01 -2.6866740687512319e-01 2.9022806969822539e+00 2.9277651569151142e+00 0 1 0 0 0 0 +P 376 22 -3.5818511152162880e-01 -2.9636370047210259e-01 2.5643110819839920e+00 2.6061119205166898e+00 0 1 0 0 0 0 +V -130 0 0 0 0 0 0 1 0 +P 377 310 -8.8640989536248971e-01 -1.6453928479315294e+00 1.0105514131225380e+01 1.0288932471929078e+01 4.9767000000000000e-01 2 0 0 -134 0 +V -131 0 1.8966305837442445e-02 -3.3751224473166320e-03 -7.9448025344839107e-02 8.1849904533435089e-02 0 1 0 +P 378 130 2.6183277643501564e+00 6.1386138582397727e-02 -9.6191913944512102e+00 9.9817797537093131e+00 4.9767000000000000e-01 1 0 0 0 0 +V -132 0 2.0149870341415778e-02 -3.7518155698254710e-03 -8.4788852159078762e-02 8.7333428458016546e-02 0 2 0 +P 379 22 2.8921594225230942e+00 -9.1550660519293359e-01 -1.2794645715543083e+01 1.3149361104468387e+01 0 1 0 0 0 0 +P 380 22 7.9146423222132656e-01 -2.5688044426217738e-01 -3.8276810970475545e+00 3.9170838354859354e+00 0 1 0 0 0 0 +V -133 0 -1.1231803604738254e-05 -8.8920063263619592e-06 1.8142054749441223e-04 1.8209874966319139e-04 0 2 0 +P 381 22 -1.1488886556337818e-01 -1.3618640965757867e-01 2.8158840839305816e+00 2.8215154374448228e+00 0 1 0 0 0 0 +P 382 22 -1.2096730624219609e-01 -5.0536457444721711e-02 9.9375836751438251e-01 1.0023685528364348e+00 0 1 0 0 0 0 +V -134 0 -5.4534669499812850e+01 -1.0122964063099396e+02 6.2172238391663780e+02 6.3300684570210751e+02 0 2 0 +P 383 111 -2.7057189871723214e-01 -3.1393099110360240e-01 1.6814506090419195e+00 1.7370254950915891e+00 1.3497999999999999e-01 2 0 0 -135 0 +P 384 111 -6.1583799664525751e-01 -1.3314618568279268e+00 8.4240635221834612e+00 8.5519069768374898e+00 1.3497999999999999e-01 2 0 0 -136 0 +V -135 0 -5.4534759776515948e+01 -1.0122974537452058e+02 6.2172294493505149e+02 6.3300742526316185e+02 0 2 0 +P 385 22 -1.0129816071137022e-01 -2.0517523717889224e-01 1.0348101654081705e+00 1.0598067152773691e+00 0 1 0 0 0 0 +P 386 22 -1.6927373800586196e-01 -1.0875575392471017e-01 6.4664044363374906e-01 6.7721877981422007e-01 0 1 0 0 0 0 +V -136 0 -5.4534805123554811e+01 -1.0122993385395240e+02 6.2172423911723217e+02 6.3300872905719666e+02 0 2 0 +P 387 22 -3.0111265749682459e-01 -7.1575180908117086e-01 4.0963761753010273e+00 4.1693245561219676e+00 0 1 0 0 0 0 +P 388 22 -3.1472533914843293e-01 -6.1571004774675597e-01 4.3276873468824339e+00 4.3825824207155222e+00 0 1 0 0 0 0 diff --git a/examples/extended/persistency/PersistentEx02/PersistentEx02.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc similarity index 55% rename from examples/extended/persistency/PersistentEx02/PersistentEx02.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc index bd664286bf..85ff721aa9 100644 --- a/examples/extended/persistency/PersistentEx02/PersistentEx02.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc @@ -21,75 +21,81 @@ // ******************************************************************** // // -// $Id: PersistentEx02.cc,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// $Id: hepmcEx02-clhep.cc,v 1.1 2002/11/19 10:37:08 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // +// // -------------------------------------------------------------- -// GEANT4 - PersistentEx02 +// GEANT 4 - example of HepMC-interface // // -------------------------------------------------------------- // Comments // -// +// // -------------------------------------------------------------- - -#include "PersEx02DetectorConstruction.hh" -#include "PersEx02PhysicsList.hh" -#include "PersEx02RunAction.hh" -#include "PersEx02PrimaryGeneratorAction.hh" -#include "PersEx02EventAction.hh" -#include "PersEx02StackingAction.hh" - -#include "G4ios.hh" - #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" -#include "G4PersistencyManager.hh" +#include "G4UItcsh.hh" + +#include "H02DetectorConstruction.hh" +#include "H02PhysicsList.hh" +#include "H02PrimaryGeneratorAction.hh" +#include "H02EventAction.hh" +#include "H02SteppingAction.hh" + +#ifdef G4VIS_USE +#include "H02VisManager.hh" +#endif int main(int argc, char** argv) { - // Persistency Manager - G4PersistencyManager * persistencyManager = - G4PersistencyManager::GetPersistencyManager(); + G4RunManager* runManager= new G4RunManager; - // Run manager - G4RunManager * runManager = new G4RunManager; + runManager-> SetUserInitialization(new H02DetectorConstruction); + runManager-> SetUserInitialization(new H02PhysicsList); - // Detector geometry - runManager->SetUserInitialization(new PersEx02DetectorConstruction); - runManager->SetUserInitialization(new PersEx02PhysicsList); - - // UserAction classes. - runManager->SetUserAction(new PersEx02RunAction); - runManager->SetUserAction(new PersEx02PrimaryGeneratorAction); - runManager->SetUserAction(new PersEx02EventAction); - runManager->SetUserAction(new PersEx02StackingAction); + runManager-> Initialize(); - // get the pointer to the User Interface manager - G4UImanager* UI = G4UImanager::GetUIpointer(); + runManager-> SetUserAction(new H02PrimaryGeneratorAction); + runManager-> SetUserAction(new H02EventAction); + runManager-> SetUserAction(new H02SteppingAction); - if(argc==1) - // Define (G)UI terminal for interactive mode - { - G4UIsession* session = new G4UIterminal; - UI->ApplyCommand("/control/execute prerunPEx02.mac"); +#ifdef G4VIS_USE + // initialize visualization package + G4VisManager* visManager= new H02VisManager; + visManager-> Initialize(); + G4cout << G4endl; +#endif + + if(argc==1) { + // G4UIterminal is a (dumb) terminal. + +#ifdef QERAUOY + G4UItcsh* tcsh= new + G4UItcsh("hepmcEx02(%s)[%/]:"); + G4UIterminal* session= new G4UIterminal(tcsh); + tcsh-> SetLsColor(RED, GREEN); +#else + G4UItcsh* tcsh= new G4UItcsh("hepmcEx01(%s)[%/]:"); + G4UIterminal* session= new G4UIterminal(tcsh); +#endif session->SessionStart(); delete session; - } - else - // Batch mode - { - G4String command = "/control/execute "; - G4String fileName = argv[1]; - UI->ApplyCommand(command+fileName); + + } else { + G4UImanager* UImanager= G4UImanager::GetUIpointer(); + G4String command= "/control/execute "; + G4String fileName= argv[1]; + UImanager-> ApplyCommand(command+fileName); } - // job termination +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; - delete persistencyManager; return 0; } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.in b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.in new file mode 100644 index 0000000000..e9614c8430 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.in @@ -0,0 +1,5 @@ +/generator/select hepmcAscii +/generator/hepmcAscii/open data/example_MyPythia.dat +/generator/hepmcAscii/verbose 1 +/run/beamOn 3 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out new file mode 100644 index 0000000000..eda9344f3b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out @@ -0,0 +1,2106 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) + Copyright : Geant4 Collaboration +********************************************** + +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created + +compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. + Scattered gamma energy according Klein-Nishina. + PhysicsTables from 1 keV to 100 GeV in 80 bins. + +conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. + e+e- energies according Bethe-Heitler + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. + +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. + +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. + +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. + +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: 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. + +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. + +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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 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. +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... +* Visualizaton Driver: DAWN +* Visualizaton Driver: VRML1/2 +* Visualizaton Driver: VRML1/2 File + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + OpenGLImmediateXm (OGLIXm) + OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +current generator type: hepmcAscii +HepMC Ascii inputfile: data/example_MyPythia.dat +________________________________________________________________________________ +GenEvent: #1 ID=20 SignalProcessGenVertex Barcode: 0 + Current Memory Usage: 1 events, 78 vertices, 210 particles. + Entries this event: 78 vertices, 210 particles. + RndmState(0)= + Wgts(0)= + EventScale -1 GeV alphaQCD=-1 alphaQED=-1 + GenParticle Legend + Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx +________________________________________________________________________________ +GenVertex: -1 ID: 0 (X,cT):0 + I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 + O: 2 20 2101 +7.76e-01,+9.12e-01,+4.45e+03,+4.45e+03 2 -16 + 3 2 -7.76e-01,-9.12e-01,+1.88e+03,+1.88e+03 3 -3 +GenVertex: -2 ID: 0 (X,cT):0 + I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 + O: 3 13 2214 +1.00e-00,+2.73e-02,-4.08e+03,+4.08e+03 2 -9 + 4 -1 -1.01e+00,-1.27e-02,-4.15e+00,+4.27e+00 3 -4 + 26 1 +8.08e-03,-1.46e-02,-2.46e+03,+2.46e+03 2 -16 +GenVertex: -3 ID: 0 (X,cT):0 + I: 1 3 2 -7.76e-01,-9.12e-01,+1.88e+03,+1.88e+03 3 -3 + O: 4 5 2 -5.02e+00,+1.15e+00,+1.48e+03,+1.48e+03 3 -5 + 21 21 +1.46e+00,-3.91e-01,+1.09e+02,+1.09e+02 2 -16 + 22 21 +3.11e+00,+2.32e-01,+1.46e+02,+1.47e+02 2 -16 + 23 21 -1.09e-01,-1.87e+00,+8.61e+01,+8.61e+01 2 -16 +GenVertex: -4 ID: 0 (X,cT):0 + I: 1 4 -1 -1.01e+00,-1.27e-02,-4.15e+00,+4.27e+00 3 -4 + O: 3 6 -1 +2.54e-02,+8.35e+00,+6.60e-01,+8.37e+00 3 -5 + 24 21 -5.37e-01,-6.68e+00,+4.75e+01,+4.79e+01 2 -16 + 25 21 -7.11e-01,-1.71e+00,+1.08e+01,+1.10e+01 2 -16 +GenVertex: -5 ID: 0 (X,cT):0 + I: 2 5 2 -5.02e+00,+1.15e+00,+1.48e+03,+1.48e+03 3 -5 + 6 -1 +2.54e-02,+8.35e+00,+6.60e-01,+8.37e+00 3 -5 + O: 2 8 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 3 -7 + 7 22 -4.03e+00,-1.23e+00,+2.46e+02,+2.46e+02 3 -6 +GenVertex: -6 ID: 0 (X,cT):0 + I: 1 7 22 -4.03e+00,-1.23e+00,+2.46e+02,+2.46e+02 3 -6 + O: 1 9 22 -4.03e+00,-1.23e+00,+2.46e+02,+2.46e+02 1 (nil) +GenVertex: -7 ID: 0 (X,cT):0 + I: 1 8 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 3 -7 + O: 1 10 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 2 -8 +GenVertex: -8 ID: 0 (X,cT):0 + I: 1 10 24 -9.67e-01,+1.07e+01,+1.23e+03,+1.24e+03 2 -8 + O: 2 11 -13 -2.56e+01,+4.70e+01,+2.09e+02,+2.16e+02 1 (nil) + 12 14 +2.47e+01,-3.63e+01,+1.02e+03,+1.02e+03 1 (nil) +GenVertex: -9 ID: 0 (X,cT):0 + I: 1 13 2214 +1.00e-00,+2.73e-02,-4.08e+03,+4.08e+03 2 -9 + O: 2 29 2212 +1.02e+00,+1.18e-01,-3.74e+03,+3.74e+03 1 (nil) + 30 111 -2.46e-02,-9.09e-02,-3.46e+02,+3.46e+02 2 -20 +GenVertex: -10 ID: 0 (X,cT):0 + I: 2 14 1 +2.31e+00,+5.82e+00,+1.51e+02,+1.51e+02 2 -10 + 15 -1 -2.31e+00,-5.82e+00,+4.62e+01,+4.66e+01 2 -10 + O: 1 31 92 +0.00e+00,+0.00e+00,+1.97e+02,+1.97e+02 2 -11 +GenVertex: -11 ID: 0 (X,cT):0 + I: 1 31 92 +0.00e+00,+0.00e+00,+1.97e+02,+1.97e+02 2 -11 + O: 8 32 -211 +2.54e-01,+1.65e+00,+3.42e+01,+3.42e+01 1 (nil) + 33 211 +1.83e-01,-2.25e-01,+8.98e+00,+8.99e+00 1 (nil) + 34 -211 +1.65e+00,+3.36e+00,+8.55e+01,+8.56e+01 1 (nil) + 35 221 +1.53e-01,+1.01e-01,+1.68e+01,+1.68e+01 2 -21 + 36 211 -5.43e-01,+7.13e-02,+3.10e+00,+3.15e+00 1 (nil) + 37 221 -4.39e-01,-1.09e+00,+1.62e+01,+1.63e+01 2 -22 + 38 -213 -1.18e+00,-2.20e+00,+1.67e+01,+1.70e+01 2 -23 + 39 211 -8.40e-02,-1.67e+00,+1.53e+01,+1.54e+01 1 (nil) +GenVertex: -12 ID: 0 (X,cT):0 + I: 2 16 2 -3.95e+00,-1.33e+00,+3.41e+01,+3.44e+01 2 -12 + 17 -2 +3.95e+00,+1.33e+00,+4.38e+02,+4.38e+02 2 -12 + O: 1 40 92 +0.00e+00,+0.00e+00,+4.72e+02,+4.72e+02 2 -13 +GenVertex: -13 ID: 0 (X,cT):0 + I: 1 40 92 +0.00e+00,+0.00e+00,+4.72e+02,+4.72e+02 2 -13 + O: 8 41 221 -2.68e+00,-7.41e-01,+2.70e+01,+2.71e+01 2 -24 + 42 211 -1.08e+00,-1.77e-01,+8.94e+00,+9.00e+00 1 (nil) + 43 223 +7.31e-01,-2.42e-01,+2.97e+01,+2.97e+01 2 -25 + 44 -213 +6.83e-02,+2.16e-01,+2.67e+01,+2.67e+01 2 -26 + 45 211 -7.62e-02,+3.34e-01,+9.98e+00,+9.98e+00 1 (nil) + 46 223 +1.18e+00,+7.67e-03,+1.59e+02,+1.59e+02 2 -27 + 47 -213 +4.18e-01,+2.70e-01,+5.63e+01,+5.63e+01 2 -28 + 48 111 +1.44e+00,+3.32e-01,+1.54e+02,+1.54e+02 2 -29 +GenVertex: -14 ID: 0 (X,cT):0 + I: 2 18 2 +1.54e+00,+3.04e+00,-6.32e+01,+6.33e+01 2 -14 + 19 -2 -1.54e+00,-3.04e+00,-3.11e+02,+3.11e+02 2 -14 + O: 1 49 92 +0.00e+00,+0.00e+00,-3.75e+02,+3.75e+02 2 -15 +GenVertex: -15 ID: 0 (X,cT):0 + I: 1 49 92 +0.00e+00,+0.00e+00,-3.75e+02,+3.75e+02 2 -15 + O: 3 50 113 +1.57e+00,+2.83e+00,-6.11e+01,+6.12e+01 2 -30 + 51 211 +2.02e-01,+1.20e-01,-2.70e+01,+2.70e+01 1 (nil) + 52 -211 -1.77e+00,-2.95e+00,-2.86e+02,+2.86e+02 1 (nil) +GenVertex: -16 ID: 0 (X,cT):0 + I: 7 20 2101 +7.76e-01,+9.12e-01,+4.45e+03,+4.45e+03 2 -16 + 26 1 +8.08e-03,-1.46e-02,-2.46e+03,+2.46e+03 2 -16 + 21 21 +1.46e+00,-3.91e-01,+1.09e+02,+1.09e+02 2 -16 + 22 21 +3.11e+00,+2.32e-01,+1.46e+02,+1.47e+02 2 -16 + 23 21 -1.09e-01,-1.87e+00,+8.61e+01,+8.61e+01 2 -16 + 24 21 -5.37e-01,-6.68e+00,+4.75e+01,+4.79e+01 2 -16 + 25 21 -7.11e-01,-1.71e+00,+1.08e+01,+1.10e+01 2 -16 + O: 1 53 92 +3.99e+00,-9.52e+00,+2.38e+03,+7.31e+03 2 -17 +GenVertex: -17 ID: 0 (X,cT):0 + I: 1 53 92 +3.99e+00,-9.52e+00,+2.38e+03,+7.31e+03 2 -17 + O:31 54 2212 +8.22e-01,+7.58e-01,+2.86e+03,+2.86e+03 1 (nil) + 55 113 -3.60e-01,-1.69e-01,+8.62e+02,+8.62e+02 2 -31 + 56 -2214 +1.03e+00,+9.30e-02,+4.53e+02,+4.53e+02 2 -32 + 57 223 -3.60e-01,+4.04e-01,+1.25e+02,+1.25e+02 2 -33 + 58 2212 +1.68e+00,-6.25e-01,+1.57e+02,+1.57e+02 1 (nil) + 59 -213 +5.56e-01,+3.45e-01,+9.14e+01,+9.14e+01 2 -34 + 60 -311 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -35 + 61 311 +5.59e-01,-2.32e-01,+5.88e+01,+5.88e+01 2 -36 + 62 211 +3.24e-01,-1.11e+00,+5.03e+01,+5.03e+01 1 (nil) + 63 113 -1.65e-02,-7.81e-02,+4.91e+00,+4.95e+00 2 -37 + 64 -211 +7.06e-01,-6.40e-01,+6.56e+01,+6.56e+01 1 (nil) + 65 213 +4.72e-01,-4.39e-01,+1.44e+01,+1.44e+01 2 -38 + 66 -213 -3.00e-01,-3.82e-01,+1.62e+01,+1.63e+01 2 -39 + 67 211 -4.39e-01,-3.19e+00,+2.48e+01,+2.50e+01 1 (nil) + 68 -211 -1.40e-01,-1.20e-01,+4.92e-01,+5.44e-01 1 (nil) + 69 -311 -2.66e-01,-2.65e+00,+2.07e+01,+2.08e+01 2 -40 + 70 323 +1.09e-01,-8.86e-01,+4.66e+00,+4.83e+00 2 -41 + 71 113 -4.98e-01,-2.28e-01,+1.70e+00,+1.96e+00 2 -42 + 72 -323 -2.90e-01,-2.30e-01,+6.43e-01,+1.16e+00 2 -43 + 73 311 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -44 + 74 113 +1.28e-01,+1.79e-01,-7.07e-01,+1.09e+00 2 -45 + 75 -2112 +2.40e-01,-6.43e-01,-2.35e+00,+2.62e+00 1 (nil) + 76 2112 +1.43e-01,-2.20e-01,-2.23e+00,+2.43e+00 1 (nil) + 77 221 -1.58e-01,+9.23e-01,-1.12e+01,+1.12e+01 2 -46 + 78 211 -3.97e-01,-5.01e-01,-1.11e+00,+1.29e+00 1 (nil) + 79 111 +2.87e-01,+2.82e-01,-1.04e+00,+1.12e+00 2 -47 + 80 223 +4.06e-01,-2.45e-01,-3.51e+01,+3.51e+01 2 -48 + 81 -321 -6.14e-01,+2.77e-01,-2.28e+02,+2.28e+02 1 (nil) + 82 323 +1.26e-01,-3.07e-01,-1.50e+03,+1.50e+03 2 -49 + 83 -321 +1.94e-01,+2.93e-01,-1.69e+02,+1.69e+02 1 (nil) + 84 311 -9.36e-02,-1.11e-01,-5.09e+02,+5.09e+02 2 -50 +GenVertex: -18 ID: 0 (X,cT):0 + I: 2 27 21 -1.37e-01,-5.99e+00,-1.38e+01,+1.51e+01 2 -18 + 28 21 +1.37e-01,+5.99e+00,-6.12e+01,+6.15e+01 2 -18 + O: 1 85 92 +0.00e+00,+0.00e+00,-7.51e+01,+7.66e+01 2 -19 +GenVertex: -19 ID: 0 (X,cT):0 + I: 1 85 92 +0.00e+00,+0.00e+00,-7.51e+01,+7.66e+01 2 -19 + O: 9 86 -2112 -3.84e-02,-2.48e+00,-7.98e+00,+8.41e+00 1 (nil) + 87 2212 +1.88e-01,-2.14e+00,-4.49e+00,+5.07e+00 1 (nil) + 88 -213 +2.00e-01,-1.11e-01,-1.66e+00,+1.83e+00 2 -51 + 89 -313 -6.26e-01,+1.37e+00,-1.29e+01,+1.30e+01 2 -52 + 90 321 +7.89e-02,+7.45e-01,-1.09e+01,+1.10e+01 1 (nil) + 91 -211 +4.23e-02,+3.92e-01,-8.74e+00,+8.75e+00 1 (nil) + 92 211 +6.44e-02,+3.67e-01,-1.38e+00,+1.43e+00 1 (nil) + 93 -2212 +4.16e-02,+5.64e-01,-1.20e+01,+1.20e+01 1 (nil) + 94 2112 +4.92e-02,+1.30e+00,-1.50e+01,+1.51e+01 1 (nil) +Vertex: -20 ID: 0 (X,cT)=-7.43e-06,-2.74e-05,-1.04e-01,+1.04e-01 + I: 1 30 111 -2.46e-02,-9.09e-02,-3.46e+02,+3.46e+02 2 -20 + O: 2 95 22 -4.57e-02,-1.20e-01,-2.72e+02,+2.72e+02 1 (nil) + 96 22 +2.11e-02,+2.92e-02,-7.38e+01,+7.38e+01 1 (nil) +GenVertex: -21 ID: 0 (X,cT):0 + I: 1 35 221 +1.53e-01,+1.01e-01,+1.68e+01,+1.68e+01 2 -21 + O: 3 97 211 +1.91e-01,+1.34e-01,+6.86e+00,+6.86e+00 1 (nil) + 98 -211 -4.99e-02,-5.38e-02,+4.31e+00,+4.31e+00 1 (nil) + 99 111 +1.27e-02,+2.08e-02,+5.61e+00,+5.61e+00 2 -53 +GenVertex: -22 ID: 0 (X,cT):0 + I: 1 37 221 -4.39e-01,-1.09e+00,+1.62e+01,+1.63e+01 2 -22 + O: 3 100 111 +2.02e-02,-1.98e-01,+2.68e+00,+2.69e+00 2 -54 + 101 111 -1.94e-01,-3.08e-01,+5.97e+00,+5.98e+00 2 -55 + 102 111 -2.65e-01,-5.85e-01,+7.55e+00,+7.58e+00 2 -56 +GenVertex: -23 ID: 0 (X,cT):0 + I: 1 38 -213 -1.18e+00,-2.20e+00,+1.67e+01,+1.70e+01 2 -23 + O: 2 103 -211 +5.93e-02,-7.99e-01,+3.99e+00,+4.07e+00 1 (nil) + 104 111 -1.24e+00,-1.40e+00,+1.27e+01,+1.29e+01 2 -57 +GenVertex: -24 ID: 0 (X,cT):0 + I: 1 41 221 -2.68e+00,-7.41e-01,+2.70e+01,+2.71e+01 2 -24 + O: 2 105 22 -6.34e-03,-7.93e-02,+8.01e-01,+8.05e-01 1 (nil) + 106 22 -2.67e+00,-6.61e-01,+2.62e+01,+2.63e+01 1 (nil) +GenVertex: -25 ID: 0 (X,cT):0 + I: 1 43 223 +7.31e-01,-2.42e-01,+2.97e+01,+2.97e+01 2 -25 + O: 3 107 -211 +1.76e-02,+3.37e-02,+3.20e+00,+3.21e+00 1 (nil) + 108 211 +3.94e-01,+9.73e-02,+1.40e+01,+1.40e+01 1 (nil) + 109 111 +3.20e-01,-3.73e-01,+1.25e+01,+1.25e+01 2 -58 +GenVertex: -26 ID: 0 (X,cT):0 + I: 1 44 -213 +6.83e-02,+2.16e-01,+2.67e+01,+2.67e+01 2 -26 + O: 2 110 -211 -8.41e-02,-1.88e-01,+1.75e+01,+1.75e+01 1 (nil) + 111 111 +1.52e-01,+4.04e-01,+9.17e+00,+9.18e+00 2 -59 +GenVertex: -27 ID: 0 (X,cT):0 + I: 1 46 223 +1.18e+00,+7.67e-03,+1.59e+02,+1.59e+02 2 -27 + O: 3 112 -211 +4.71e-01,+6.85e-02,+4.92e+01,+4.92e+01 1 (nil) + 113 211 +5.97e-01,-1.23e-01,+1.01e+02,+1.01e+02 1 (nil) + 114 111 +1.09e-01,+6.20e-02,+9.26e+00,+9.26e+00 2 -60 +GenVertex: -28 ID: 0 (X,cT):0 + I: 1 47 -213 +4.18e-01,+2.70e-01,+5.63e+01,+5.63e+01 2 -28 + O: 2 115 -211 +4.07e-02,+6.55e-03,+6.59e+00,+6.59e+00 1 (nil) + 116 111 +3.77e-01,+2.64e-01,+4.98e+01,+4.98e+01 2 -61 +Vertex: -29 ID: 0 (X,cT)=+3.69e-04,+8.53e-05,+3.95e-02,+3.95e-02 + I: 1 48 111 +1.44e+00,+3.32e-01,+1.54e+02,+1.54e+02 2 -29 + O: 2 117 22 +4.72e-01,+4.59e-02,+5.06e+01,+5.06e+01 1 (nil) + 118 22 +9.67e-01,+2.86e-01,+1.03e+02,+1.03e+02 1 (nil) +GenVertex: -30 ID: 0 (X,cT):0 + I: 1 50 113 +1.57e+00,+2.83e+00,-6.11e+01,+6.12e+01 2 -30 + O: 2 119 -211 +9.16e-01,+2.13e+00,-4.37e+01,+4.38e+01 1 (nil) + 120 211 +6.49e-01,+7.08e-01,-1.74e+01,+1.75e+01 1 (nil) +GenVertex: -31 ID: 0 (X,cT):0 + I: 1 55 113 -3.60e-01,-1.69e-01,+8.62e+02,+8.62e+02 2 -31 + O: 2 121 211 -1.07e-01,+4.26e-02,+1.56e+02,+1.56e+02 1 (nil) + 122 -211 -2.53e-01,-2.12e-01,+7.07e+02,+7.07e+02 1 (nil) +GenVertex: -32 ID: 0 (X,cT):0 + I: 1 56 -2214 +1.03e+00,+9.30e-02,+4.53e+02,+4.53e+02 2 -32 + O: 2 123 -2212 +4.99e-01,+1.49e-01,+3.29e+02,+3.29e+02 1 (nil) + 124 111 +5.28e-01,-5.58e-02,+1.24e+02,+1.24e+02 2 -62 +GenVertex: -33 ID: 0 (X,cT):0 + I: 1 57 223 -3.60e-01,+4.04e-01,+1.25e+02,+1.25e+02 2 -33 + O: 3 125 211 -1.22e-01,+3.51e-01,+3.18e+01,+3.18e+01 1 (nil) + 126 -211 -2.21e-01,+7.11e-02,+8.21e+01,+8.21e+01 1 (nil) + 127 111 -1.66e-02,-1.80e-02,+1.09e+01,+1.09e+01 2 -63 +GenVertex: -34 ID: 0 (X,cT):0 + I: 1 59 -213 +5.56e-01,+3.45e-01,+9.14e+01,+9.14e+01 2 -34 + O: 2 128 -211 +3.11e-01,+3.56e-01,+3.44e+01,+3.44e+01 1 (nil) + 129 111 +2.45e-01,-1.18e-02,+5.70e+01,+5.70e+01 2 -64 +GenVertex: -35 ID: 0 (X,cT):0 + I: 1 60 -311 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -35 + O: 1 130 310 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -65 +GenVertex: -36 ID: 0 (X,cT):0 + I: 1 61 311 +5.59e-01,-2.32e-01,+5.88e+01,+5.88e+01 2 -36 + O: 1 131 130 +5.59e-01,-2.32e-01,+5.88e+01,+5.88e+01 1 (nil) +GenVertex: -37 ID: 0 (X,cT):0 + I: 1 63 113 -1.65e-02,-7.81e-02,+4.91e+00,+4.95e+00 2 -37 + O: 2 132 211 +1.08e-01,-5.14e-02,+4.37e+00,+4.38e+00 1 (nil) + 133 -211 -1.25e-01,-2.68e-02,+5.37e-01,+5.69e-01 1 (nil) +GenVertex: -38 ID: 0 (X,cT):0 + I: 1 65 213 +4.72e-01,-4.39e-01,+1.44e+01,+1.44e+01 2 -38 + O: 2 134 211 +1.82e-01,-5.33e-01,+1.18e+01,+1.18e+01 1 (nil) + 135 111 +2.91e-01,+9.43e-02,+2.56e+00,+2.58e+00 2 -66 +GenVertex: -39 ID: 0 (X,cT):0 + I: 1 66 -213 -3.00e-01,-3.82e-01,+1.62e+01,+1.63e+01 2 -39 + O: 2 136 -211 -4.94e-01,-2.13e-01,+6.74e+00,+6.77e+00 1 (nil) + 137 111 +1.93e-01,-1.69e-01,+9.48e+00,+9.49e+00 2 -67 +GenVertex: -40 ID: 0 (X,cT):0 + I: 1 69 -311 -2.66e-01,-2.65e+00,+2.07e+01,+2.08e+01 2 -40 + O: 1 138 130 -2.66e-01,-2.65e+00,+2.07e+01,+2.08e+01 1 (nil) +GenVertex: -41 ID: 0 (X,cT):0 + I: 1 70 323 +1.09e-01,-8.86e-01,+4.66e+00,+4.83e+00 2 -41 + O: 2 139 311 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -68 + 140 211 +1.54e-01,-6.92e-01,+2.81e+00,+2.90e+00 1 (nil) +GenVertex: -42 ID: 0 (X,cT):0 + I: 1 71 113 -4.98e-01,-2.28e-01,+1.70e+00,+1.96e+00 2 -42 + O: 2 141 211 +7.24e-02,-1.33e-01,+6.29e-02,+2.15e-01 1 (nil) + 142 -211 -5.70e-01,-9.51e-02,+1.64e+00,+1.75e+00 1 (nil) +GenVertex: -43 ID: 0 (X,cT):0 + I: 1 72 -323 -2.90e-01,-2.30e-01,+6.43e-01,+1.16e+00 2 -43 + O: 2 143 -311 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -69 + 144 -211 -1.88e-01,+1.45e-01,+3.90e-01,+4.77e-01 1 (nil) +GenVertex: -44 ID: 0 (X,cT):0 + I: 1 73 311 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -44 + O: 1 145 310 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -70 +GenVertex: -45 ID: 0 (X,cT):0 + I: 1 74 113 +1.28e-01,+1.79e-01,-7.07e-01,+1.09e+00 2 -45 + O: 2 146 -211 -7.31e-02,+3.05e-01,-7.33e-01,+8.10e-01 1 (nil) + 147 211 +2.01e-01,-1.27e-01,+2.56e-02,+2.77e-01 1 (nil) +GenVertex: -46 ID: 0 (X,cT):0 + I: 1 77 221 -1.58e-01,+9.23e-01,-1.12e+01,+1.12e+01 2 -46 + O: 3 148 -211 -1.37e-01,+2.12e-01,-2.48e+00,+2.50e+00 1 (nil) + 149 211 -6.29e-02,+5.66e-01,-6.65e+00,+6.68e+00 1 (nil) + 150 111 +4.20e-02,+1.44e-01,-2.05e+00,+2.06e+00 2 -71 +Vertex: -47 ID: 0 (X,cT)=+2.15e-05,+2.11e-05,-7.77e-05,+8.40e-05 + I: 1 79 111 +2.87e-01,+2.82e-01,-1.04e+00,+1.12e+00 2 -47 + O: 2 151 22 +1.31e-01,+1.64e-01,-6.99e-01,+7.30e-01 1 (nil) + 152 22 +1.57e-01,+1.18e-01,-3.38e-01,+3.91e-01 1 (nil) +GenVertex: -48 ID: 0 (X,cT):0 + I: 1 80 223 +4.06e-01,-2.45e-01,-3.51e+01,+3.51e+01 2 -48 + O: 2 153 -211 -6.79e-02,+2.16e-01,-6.21e+00,+6.22e+00 1 (nil) + 154 211 +4.74e-01,-4.61e-01,-2.89e+01,+2.89e+01 1 (nil) +GenVertex: -49 ID: 0 (X,cT):0 + I: 1 82 323 +1.26e-01,-3.07e-01,-1.50e+03,+1.50e+03 2 -49 + O: 2 155 321 +2.70e-01,-1.79e-01,-6.57e+02,+6.57e+02 1 (nil) + 156 111 -1.45e-01,-1.29e-01,-8.42e+02,+8.42e+02 2 -72 +GenVertex: -50 ID: 0 (X,cT):0 + I: 1 84 311 -9.36e-02,-1.11e-01,-5.09e+02,+5.09e+02 2 -50 + O: 1 157 130 -9.36e-02,-1.11e-01,-5.09e+02,+5.09e+02 1 (nil) +GenVertex: -51 ID: 0 (X,cT):0 + I: 1 88 -213 +2.00e-01,-1.11e-01,-1.66e+00,+1.83e+00 2 -51 + O: 2 158 -211 -1.33e-01,-2.94e-01,-9.51e-01,+1.01e+00 1 (nil) + 159 111 +3.33e-01,+1.83e-01,-7.05e-01,+8.13e-01 2 -73 +GenVertex: -52 ID: 0 (X,cT):0 + I: 1 89 -313 -6.26e-01,+1.37e+00,-1.29e+01,+1.30e+01 2 -52 + O: 2 160 -311 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -74 + 161 111 -5.98e-01,+7.99e-01,-7.16e+00,+7.23e+00 2 -75 +Vertex: -53 ID: 0 (X,cT)=+6.33e-07,+1.04e-06,+2.79e-04,+2.79e-04 + I: 1 99 111 +1.27e-02,+2.08e-02,+5.61e+00,+5.61e+00 2 -53 + O: 2 162 22 +5.81e-02,+5.34e-02,+3.78e+00,+3.78e+00 1 (nil) + 163 22 -4.54e-02,-3.26e-02,+1.83e+00,+1.83e+00 1 (nil) +Vertex: -54 ID: 0 (X,cT)=+3.79e-06,-3.71e-05,+5.03e-04,+5.05e-04 + I: 1 100 111 +2.02e-02,-1.98e-01,+2.68e+00,+2.69e+00 2 -54 + O: 2 164 22 +2.39e-02,-9.50e-02,+2.06e+00,+2.06e+00 1 (nil) + 165 22 -3.65e-03,-1.03e-01,+6.27e-01,+6.35e-01 1 (nil) +Vertex: -55 ID: 0 (X,cT)=-2.82e-05,-4.46e-05,+8.64e-04,+8.66e-04 + I: 1 101 111 -1.94e-01,-3.08e-01,+5.97e+00,+5.98e+00 2 -55 + O: 2 166 22 -2.13e-01,-2.53e-01,+5.08e+00,+5.10e+00 1 (nil) + 167 22 +1.82e-02,-5.48e-02,+8.85e-01,+8.87e-01 1 (nil) +Vertex: -56 ID: 0 (X,cT)=-1.01e-04,-2.22e-04,+2.87e-03,+2.88e-03 + I: 1 102 111 -2.65e-01,-5.85e-01,+7.55e+00,+7.58e+00 2 -56 + O: 2 168 22 -2.34e-01,-3.64e-01,+4.90e+00,+4.92e+00 1 (nil) + 169 22 -3.04e-02,-2.21e-01,+2.65e+00,+2.66e+00 1 (nil) +Vertex: -57 ID: 0 (X,cT)=-2.73e-04,-3.09e-04,+2.81e-03,+2.84e-03 + I: 1 104 111 -1.24e+00,-1.40e+00,+1.27e+01,+1.29e+01 2 -57 + O: 2 170 22 -1.22e-02,-1.70e-02,+7.27e-02,+7.56e-02 1 (nil) + 171 22 -1.22e+00,-1.38e+00,+1.27e+01,+1.28e+01 1 (nil) +Vertex: -58 ID: 0 (X,cT)=+7.51e-05,-8.77e-05,+2.93e-03,+2.94e-03 + I: 1 109 111 +3.20e-01,-3.73e-01,+1.25e+01,+1.25e+01 2 -58 + O: 2 172 22 +3.26e-01,-3.46e-01,+1.21e+01,+1.21e+01 1 (nil) + 173 22 -6.46e-03,-2.66e-02,+3.50e-01,+3.51e-01 1 (nil) +Vertex: -59 ID: 0 (X,cT)=+1.45e-06,+3.84e-06,+8.70e-05,+8.71e-05 + I: 1 111 111 +1.52e-01,+4.04e-01,+9.17e+00,+9.18e+00 2 -59 + O: 2 174 22 -2.15e-02,+1.49e-02,+4.86e-01,+4.86e-01 1 (nil) + 175 22 +1.74e-01,+3.89e-01,+8.68e+00,+8.69e+00 1 (nil) +Vertex: -60 ID: 0 (X,cT)=+1.34e-05,+7.65e-06,+1.14e-03,+1.14e-03 + I: 1 114 111 +1.09e-01,+6.20e-02,+9.26e+00,+9.26e+00 2 -60 + O: 2 176 22 -1.64e-02,+4.04e-02,+4.24e+00,+4.24e+00 1 (nil) + 177 22 +1.25e-01,+2.17e-02,+5.02e+00,+5.02e+00 1 (nil) +Vertex: -61 ID: 0 (X,cT)=+1.85e-05,+1.29e-05,+2.43e-03,+2.43e-03 + I: 1 116 111 +3.77e-01,+2.64e-01,+4.98e+01,+4.98e+01 2 -61 + O: 2 178 22 +1.08e-01,+2.89e-02,+7.90e+00,+7.91e+00 1 (nil) + 179 22 +2.70e-01,+2.35e-01,+4.19e+01,+4.19e+01 1 (nil) +Vertex: -62 ID: 0 (X,cT)=+5.58e-05,-5.89e-06,+1.31e-02,+1.31e-02 + I: 1 124 111 +5.28e-01,-5.58e-02,+1.24e+02,+1.24e+02 2 -62 + O: 2 180 22 +2.10e-01,+4.29e-02,+4.58e+01,+4.58e+01 1 (nil) + 181 22 +3.18e-01,-9.86e-02,+7.82e+01,+7.82e+01 1 (nil) +Vertex: -63 ID: 0 (X,cT)=-7.71e-06,-8.34e-06,+5.03e-03,+5.03e-03 + I: 1 127 111 -1.66e-02,-1.80e-02,+1.09e+01,+1.09e+01 2 -63 + O: 2 182 22 -6.61e-02,-4.57e-02,+6.07e+00,+6.07e+00 1 (nil) + 183 22 +4.94e-02,+2.77e-02,+4.78e+00,+4.78e+00 1 (nil) +Vertex: -64 ID: 0 (X,cT)=+1.66e-05,-7.99e-07,+3.86e-03,+3.86e-03 + I: 1 129 111 +2.45e-01,-1.18e-02,+5.70e+01,+5.70e+01 2 -64 + O: 2 184 22 +1.69e-01,+5.36e-02,+3.26e+01,+3.26e+01 1 (nil) + 185 22 +7.62e-02,-6.54e-02,+2.44e+01,+2.44e+01 1 (nil) +Vertex: -65 ID: 0 (X,cT)=+7.56e+00,-3.28e+00,+4.14e+03,+4.14e+03 + I: 1 130 310 +6.88e-02,-2.98e-02,+3.77e+01,+3.77e+01 2 -65 + O: 2 186 211 +1.58e-01,-6.43e-02,+3.22e+01,+3.22e+01 1 (nil) + 187 -211 -8.94e-02,+3.44e-02,+5.50e+00,+5.50e+00 1 (nil) +Vertex: -66 ID: 0 (X,cT)=+2.53e-06,+8.21e-07,+2.23e-05,+2.25e-05 + I: 1 135 111 +2.91e-01,+9.43e-02,+2.56e+00,+2.58e+00 2 -66 + O: 2 188 22 +1.27e-02,-2.62e-02,+3.17e-01,+3.18e-01 1 (nil) + 189 22 +2.78e-01,+1.20e-01,+2.24e+00,+2.26e+00 1 (nil) +Vertex: -67 ID: 0 (X,cT)=+1.37e-04,-1.19e-04,+6.70e-03,+6.70e-03 + I: 1 137 111 +1.93e-01,-1.69e-01,+9.48e+00,+9.49e+00 2 -67 + O: 2 190 22 +3.61e-04,+4.27e-04,-3.17e-04,+6.42e-04 1 (nil) + 191 22 +1.93e-01,-1.69e-01,+9.49e+00,+9.49e+00 1 (nil) +GenVertex: -68 ID: 0 (X,cT):0 + I: 1 139 311 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -68 + O: 1 192 310 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -76 +GenVertex: -69 ID: 0 (X,cT):0 + I: 1 143 -311 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -69 + O: 1 193 310 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -77 +Vertex: -70 ID: 0 (X,cT)=+5.44e+00,-2.22e+00,-5.83e+01,+6.79e+01 + I: 1 145 310 +7.90e-02,-3.23e-02,-8.47e-01,+9.86e-01 2 -70 + O: 2 194 211 +3.78e-02,+1.72e-01,-5.70e-01,+6.12e-01 1 (nil) + 195 -211 +4.12e-02,-2.04e-01,-2.77e-01,+3.74e-01 1 (nil) +Vertex: -71 ID: 0 (X,cT)=+8.77e-06,+3.01e-05,-4.27e-04,+4.30e-04 + I: 1 150 111 +4.20e-02,+1.44e-01,-2.05e+00,+2.06e+00 2 -71 + O: 2 196 22 +2.27e-02,+1.42e-01,-1.05e+00,+1.06e+00 1 (nil) + 197 22 +1.93e-02,+2.42e-03,-9.95e-01,+9.95e-01 1 (nil) +Vertex: -72 ID: 0 (X,cT)=-6.15e-05,-5.48e-05,-3.58e-01,+3.58e-01 + I: 1 156 111 -1.45e-01,-1.29e-01,-8.42e+02,+8.42e+02 2 -72 + O: 2 198 22 -1.62e-01,-1.30e-01,-6.73e+02,+6.73e+02 1 (nil) + 199 22 +1.77e-02,+1.35e-03,-1.69e+02,+1.69e+02 1 (nil) +Vertex: -73 ID: 0 (X,cT)=+1.59e-06,+8.76e-07,-3.37e-06,+3.89e-06 + I: 1 159 111 +3.33e-01,+1.83e-01,-7.05e-01,+8.13e-01 2 -73 + O: 2 200 22 +1.34e-01,+3.84e-02,-1.48e-01,+2.03e-01 1 (nil) + 201 22 +1.99e-01,+1.45e-01,-5.58e-01,+6.10e-01 1 (nil) +GenVertex: -74 ID: 0 (X,cT):0 + I: 1 160 -311 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -74 + O: 1 202 310 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -78 +Vertex: -75 ID: 0 (X,cT)=-2.71e-05,+3.62e-05,-3.25e-04,+3.28e-04 + I: 1 161 111 -5.98e-01,+7.99e-01,-7.16e+00,+7.23e+00 2 -75 + O: 2 203 22 -4.61e-01,+6.62e-01,-6.07e+00,+6.13e+00 1 (nil) + 204 22 -1.37e-01,+1.37e-01,-1.09e+00,+1.10e+00 1 (nil) +Vertex: -76 ID: 0 (X,cT)=-2.44e+00,-1.04e+01,+9.94e+01,+1.04e+02 + I: 1 192 310 -4.56e-02,-1.94e-01,+1.85e+00,+1.93e+00 2 -76 + O: 2 205 -211 -6.12e-02,+7.90e-02,+2.98e-01,+3.44e-01 1 (nil) + 206 211 +1.56e-02,-2.73e-01,+1.56e+00,+1.59e+00 1 (nil) +Vertex: -77 ID: 0 (X,cT)=-1.49e+01,-5.46e+01,+3.68e+01,+9.90e+01 + I: 1 193 310 -1.02e-01,-3.76e-01,+2.53e-01,+6.81e-01 2 -77 + O: 2 207 -211 -2.41e-01,-3.27e-01,+1.77e-01,+4.65e-01 1 (nil) + 208 211 +1.38e-01,-4.84e-02,+7.57e-02,+2.16e-01 1 (nil) +Vertex: -78 ID: 0 (X,cT)=-1.33e-01,+2.68e+00,-2.69e+01,+2.71e+01 + I: 1 202 310 -2.82e-02,+5.68e-01,-5.71e+00,+5.76e+00 2 -78 + O: 2 209 211 +5.42e-02,+4.89e-01,-5.04e+00,+5.07e+00 1 (nil) + 210 -211 -8.24e-02,+7.87e-02,-6.67e-01,+6.91e-01 1 (nil) +________________________________________________________________________________ + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=3) +E1 : e- : pT=0.00117 : TOF=28.3 : x=(-0.279,1.77,-7.9) +E0 : pi+ : pT=3.22 : TOF=26.6 : x=(-0.175,-1.01,7.9) +E0 : mu+ : pT=52 : TOF=27.2 : x=(-0.96,1.78,7.9) + +________________________________________________________________________________ +GenEvent: #2 ID=20 SignalProcessGenVertex Barcode: 0 + Current Memory Usage: 1 events, 224 vertices, 624 particles. + Entries this event: 224 vertices, 624 particles. + RndmState(0)= + Wgts(0)= + EventScale -1 GeV alphaQCD=-1 alphaQED=-1 + GenParticle Legend + Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx +________________________________________________________________________________ +GenVertex: -1 ID: 0 (X,cT):0 + I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 + O: 3 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 + 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 + 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 +GenVertex: -2 ID: 0 (X,cT):0 + I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 + O: 2 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 + 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 +GenVertex: -3 ID: 0 (X,cT):0 + I: 1 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 + O: 8 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 + 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 + 12 21 +1.85e+00,+6.48e+00,-3.61e+01,+3.67e+01 2 -9 + 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 + 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 + 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 + 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 + 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 +GenVertex: -4 ID: 0 (X,cT):0 + I: 1 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 + O:12 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 + 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 + 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 + 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 + 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 + 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 + 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 + 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 + 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 + 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 +GenVertex: -5 ID: 0 (X,cT):0 + I: 2 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 + 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + O: 2 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 + 8 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 3 -7 +GenVertex: -6 ID: 0 (X,cT):0 + I: 1 7 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 3 -6 + O: 1 9 22 -1.33e+01,-8.08e+00,-1.04e+02,+1.05e+02 1 (nil) +GenVertex: -7 ID: 0 (X,cT):0 + I: 1 8 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 3 -7 + O: 1 10 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -8 +GenVertex: -8 ID: 0 (X,cT):0 + I: 1 10 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -8 + O: 6 43 21 -1.27e+00,-7.35e-02,-1.13e+01,+1.14e+01 2 -15 + 44 21 -4.16e-02,-2.47e-01,-1.97e+00,+1.98e+00 2 -15 + 45 21 +9.29e-01,-5.25e-01,-8.27e+00,+8.34e+00 2 -15 + 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 + 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 + 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 +GenVertex: -9 ID: 0 (X,cT):0 + I: 3 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 + 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 + 12 21 +1.85e+00,+6.48e+00,-3.61e+01,+3.67e+01 2 -9 + O: 1 52 92 +3.65e+00,+5.68e+00,+4.07e+02,+4.96e+02 2 -10 +GenVertex: -10 ID: 0 (X,cT):0 + I: 1 52 92 +3.65e+00,+5.68e+00,+4.07e+02,+4.96e+02 2 -10 + O:17 54 -323 +5.03e-01,+1.51e+00,-6.41e+00,+6.67e+00 2 -22 + 64 -213 -3.57e-01,-2.47e-01,+4.39e+00,+4.44e+00 2 -32 + 65 211 -9.70e-03,-2.00e-01,+9.73e-01,+1.00e+00 1 (nil) + 66 -213 +3.60e-01,-1.91e-02,+2.45e+01,+2.45e+01 2 -33 + 55 313 +6.48e-01,+1.70e+00,-1.25e+01,+1.27e+01 2 -23 + 58 213 +1.90e-01,+8.19e-01,-3.63e+00,+3.80e+00 2 -26 + 59 223 +4.76e-01,+3.30e-01,-1.30e+00,+1.62e+00 2 -27 + 60 -323 -1.01e-01,+5.65e-03,+1.73e-01,+8.22e-01 2 -28 + 68 113 -9.06e-02,+1.63e-01,+1.67e+02,+1.67e+02 2 -35 + 56 113 +3.14e-01,+1.06e+00,-3.82e+00,+4.04e+00 2 -24 + 57 223 +8.27e-03,+4.69e-01,-5.55e+00,+5.62e+00 2 -25 + 67 113 -3.73e-01,+1.18e-02,+3.83e+01,+3.84e+01 2 -34 + 61 313 -7.71e-02,+3.71e-01,+6.58e-01,+1.14e+00 2 -29 + 62 213 -3.58e-01,-1.85e-01,+2.02e-01,+7.59e-01 2 -30 + 63 221 +5.37e-01,+2.24e-01,+7.68e+00,+7.72e+00 2 -31 + 69 221 +1.73e-01,+4.07e-01,+2.06e+02,+2.06e+02 2 -36 + 53 -423 +1.80e+00,-7.41e-01,-9.90e+00,+1.03e+01 2 -21 +GenVertex: -11 ID: 0 (X,cT):0 + I:26 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 + 18 21 -3.89e+00,-1.90e+00,+4.34e+01,+4.36e+01 2 -11 + 19 21 -3.91e+00,+3.13e+00,+7.89e+02,+7.89e+02 2 -11 + 20 21 +3.89e+00,+1.90e+00,+1.42e+03,+1.42e+03 2 -11 + 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 + 21 21 +4.37e+00,+6.72e+00,+8.31e+01,+8.35e+01 2 -11 + 22 21 +3.91e+00,-3.13e+00,+3.66e+01,+3.69e+01 2 -11 + 23 21 -1.76e+00,-3.29e+00,+9.66e+00,+1.04e+01 2 -11 + 24 21 -4.37e+00,-6.72e+00,+8.76e-01,+8.07e+00 2 -11 + 25 21 -2.35e+00,-1.77e+00,-4.88e+00,+5.70e+00 2 -11 + 26 21 +1.76e+00,+3.29e+00,-4.65e+00,+5.96e+00 2 -11 + 27 21 +2.35e+00,+1.77e+00,-7.28e+02,+7.28e+02 2 -11 + 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 + 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 + 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 + 15 21 +3.52e-01,-6.45e-01,-1.11e+00,+1.33e+00 2 -11 + 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 + 17 21 -3.76e-02,-1.65e-01,-9.73e-01,+9.88e-01 2 -11 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 + 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 + 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 + 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 + 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 + 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 + 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 + O: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 +GenVertex: -12 ID: 0 (X,cT):0 + I: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 + O:90 100 111 +1.28e+00,+5.91e-01,+1.83e+01,+1.84e+01 2 -60 + 101 331 +1.59e+00,+2.22e+00,+3.03e+01,+3.04e+01 2 -61 + 102 213 +1.77e+00,-1.58e+00,+1.71e+01,+1.73e+01 2 -62 + 103 -211 -1.88e-01,-1.28e-01,+3.87e+00,+3.88e+00 1 (nil) + 104 211 +6.95e-01,-7.43e-02,+2.83e+00,+2.91e+00 1 (nil) + 105 311 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -63 + 106 333 +8.72e-02,-2.03e+00,+7.62e+00,+7.95e+00 2 -64 + 107 -323 -1.98e-01,-1.55e-01,+2.64e+00,+2.79e+00 2 -65 + 108 113 -1.10e+00,-1.90e+00,+5.32e+00,+5.81e+00 2 -66 + 109 213 -7.23e-01,-7.70e-01,+6.13e-01,+1.63e+00 2 -67 + 122 213 +6.99e-01,+4.88e-01,-2.14e+00,+2.37e+00 2 -74 + 123 223 +1.59e-01,-2.33e-01,-7.42e+00,+7.46e+00 2 -75 + 112 -211 -1.43e+00,-1.65e+00,+4.83e-01,+2.24e+00 1 (nil) + 113 111 +4.36e-02,-2.43e-01,+6.27e-02,+2.89e-01 2 -69 + 114 213 -1.15e+00,-1.72e+00,-2.01e+00,+2.97e+00 2 -70 + 115 -213 -9.95e-01,-3.87e-01,-1.11e+00,+1.63e+00 2 -71 + 116 321 +3.64e-01,+4.39e-01,+9.92e-02,+7.61e-01 1 (nil) + 117 -321 -1.27e-01,-1.02e+00,-1.45e+00,+1.85e+00 1 (nil) + 118 211 -2.01e-01,+3.58e-01,-1.79e+00,+1.84e+00 1 (nil) + 119 311 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -72 + 120 -321 +1.03e-01,-1.31e-01,-8.45e-01,+9.93e-01 1 (nil) + 121 113 -2.01e-02,+9.67e-01,-2.76e+00,+3.05e+00 2 -73 + 124 223 -3.07e-01,+5.68e-01,-1.77e+01,+1.77e+01 2 -76 + 125 1114 +7.70e-01,-3.47e-01,-1.94e+02,+1.94e+02 2 -77 + 126 111 +6.52e-01,+1.56e+00,-1.11e+02,+1.11e+02 2 -78 + 127 -2112 +1.08e-01,+9.33e-02,-7.63e+01,+7.63e+01 1 (nil) + 128 211 +3.93e-01,-4.83e-01,-5.97e+01,+5.97e+01 1 (nil) + 129 -211 -4.91e-02,+3.02e-01,-5.27e+01,+5.27e+01 1 (nil) + 130 113 +7.74e-01,+8.64e-01,-8.89e+01,+8.89e+01 2 -79 + 131 223 +1.70e-02,+2.83e-01,-9.69e+01,+9.69e+01 2 -80 + 132 223 +3.02e-01,+2.43e-01,-3.21e+01,+3.21e+01 2 -81 + 133 221 +6.52e-01,-1.30e-02,-7.49e+00,+7.53e+00 2 -82 + 134 213 +1.25e+00,+2.45e+00,-3.91e+01,+3.93e+01 2 -83 + 148 211 -1.19e+00,-2.34e-01,-3.93e+01,+3.93e+01 1 (nil) + 149 311 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 2 -94 + 137 111 +7.22e-01,+1.16e+00,-1.29e+01,+1.29e+01 2 -85 + 138 113 +1.21e+00,+1.68e+00,-1.89e+01,+1.90e+01 2 -86 + 139 211 +1.12e+00,+5.04e-01,-1.16e+01,+1.17e+01 1 (nil) + 140 -213 +4.58e-01,+1.15e+00,-1.84e+01,+1.85e+01 2 -87 + 141 213 +2.08e+00,+1.68e+00,-2.61e+01,+2.63e+01 2 -88 + 142 313 +1.78e+00,+1.24e+00,-2.26e+01,+2.27e+01 2 -89 + 143 -313 +1.42e+00,+6.47e-01,-1.81e+01,+1.82e+01 2 -90 + 144 2112 -1.12e+00,+5.37e-01,-5.10e+01,+5.10e+01 1 (nil) + 145 -213 -5.75e-01,-4.78e-01,-9.45e+01,+9.45e+01 2 -91 + 146 -1114 -8.04e-01,-7.43e-01,-3.40e+01,+3.40e+01 2 -92 + 147 -213 -1.80e-01,+6.29e-02,-4.32e+01,+4.32e+01 2 -93 + 73 331 +8.84e-01,-9.17e-01,-1.33e+00,+2.07e+00 2 -39 + 74 -213 +1.67e+00,-6.02e-01,-4.33e+00,+4.71e+00 2 -40 + 75 111 -2.29e-01,-5.45e-02,-1.11e+00,+1.15e+00 2 -41 + 150 -323 -3.04e-01,-3.92e-01,-7.88e+01,+7.88e+01 2 -95 + 151 213 -1.80e+00,-1.21e+00,-8.93e+01,+8.94e+01 2 -96 + 152 113 +4.91e-01,-9.72e-01,-5.04e+01,+5.05e+01 2 -97 + 153 221 +2.67e-01,-2.61e-01,-2.16e+01,+2.16e+01 2 -98 + 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 + 155 -321 +3.69e-01,-3.68e-01,-5.25e+01,+5.25e+01 1 (nil) + 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 + 157 211 +7.13e-01,-3.28e-01,-1.35e+02,+1.35e+02 1 (nil) + 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 + 159 -211 +8.50e-01,-2.44e-01,-2.40e+03,+2.40e+03 1 (nil) + 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 + 72 213 +1.08e+00,-6.60e-01,-2.31e+00,+2.70e+00 2 -38 + 88 323 -3.96e-01,+4.77e-01,+8.35e+01,+8.35e+01 2 -49 + 89 -313 -1.18e+00,+4.38e-01,+2.34e+02,+2.34e+02 2 -50 + 76 211 +1.91e-01,-3.77e-01,+3.30e-01,+5.54e-01 1 (nil) + 77 -211 +2.15e-01,+4.10e-01,+1.16e-01,+4.98e-01 1 (nil) + 78 211 +1.18e-01,-7.30e-01,-1.31e+00,+1.51e+00 1 (nil) + 79 3112 -1.25e-01,-5.92e-02,+4.02e+00,+4.19e+00 2 -42 + 80 311 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -43 + 81 -1114 -5.93e-01,-4.62e-01,+7.53e+00,+7.69e+00 2 -44 + 82 -211 -3.95e-01,+3.08e-01,+9.39e+00,+9.40e+00 1 (nil) + 83 211 -3.13e-01,-7.22e-01,+8.53e+00,+8.56e+00 1 (nil) + 84 -213 -1.27e-01,-1.01e-01,+5.15e+00,+5.19e+00 2 -45 + 85 213 -1.20e+00,-1.22e-01,+2.34e+01,+2.35e+01 2 -46 + 86 223 -7.42e-02,+1.42e-01,+1.52e+01,+1.52e+01 2 -47 + 87 -213 -9.01e-01,-6.04e-01,+2.49e+01,+2.49e+01 2 -48 + 90 111 -2.10e-02,+1.47e-01,+2.20e+01,+2.20e+01 2 -51 + 110 -211 -4.35e-01,-8.15e-01,+1.78e-01,+9.51e-01 1 (nil) + 111 213 -5.97e-01,-1.22e+00,+2.67e-01,+1.55e+00 2 -68 + 71 423 +6.74e+00,-3.13e+00,-1.81e+01,+1.96e+01 2 -37 + 91 -213 -1.47e+00,+1.82e+00,+3.92e+02,+3.92e+02 2 -52 + 92 213 +1.75e+00,+1.50e+00,+6.91e+02,+6.91e+02 2 -53 + 93 -211 -8.94e-02,-3.08e-01,+1.41e+02,+1.41e+02 1 (nil) + 94 111 +7.06e-01,+3.83e-01,+1.68e+02,+1.68e+02 2 -54 + 95 223 +1.83e-01,+6.58e-01,+2.64e+02,+2.64e+02 2 -55 + 96 113 +1.17e+00,-6.49e-01,+1.09e+02,+1.09e+02 2 -56 + 97 213 -3.59e-02,+9.92e-01,+3.73e+01,+3.74e+01 2 -57 + 98 221 +4.22e-01,+3.30e-01,+8.56e+00,+8.60e+00 2 -58 + 99 -213 +9.75e-01,+2.54e+00,+3.20e+01,+3.22e+01 2 -59 + 135 221 +8.86e-01,+9.16e-01,-1.24e+01,+1.25e+01 2 -84 + 136 -211 +1.82e+00,+1.89e+00,-2.77e+01,+2.78e+01 1 (nil) +GenVertex: -13 ID: 0 (X,cT):0 + I: 2 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 + 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 + O: 1 161 92 -4.19e-01,-2.08e+00,+4.13e+03,+4.13e+03 2 -14 +GenVertex: -14 ID: 0 (X,cT):0 + I: 1 161 92 -4.19e-01,-2.08e+00,+4.13e+03,+4.13e+03 2 -14 + O:14 174 2112 +5.28e-01,-1.88e-01,+1.06e+03,+1.06e+03 1 (nil) + 175 211 -3.22e-01,+5.25e-01,+2.61e+03,+2.61e+03 1 (nil) + 162 211 -3.13e-01,-1.66e+00,+2.96e+00,+3.41e+00 1 (nil) + 163 223 -1.35e-02,+1.05e-01,+2.90e+00,+3.01e+00 2 -103 + 164 -213 -7.67e-02,-1.58e-01,+2.83e+00,+2.94e+00 2 -104 + 165 113 -3.96e-01,-2.46e-01,+7.66e+00,+7.72e+00 2 -105 + 166 223 +8.97e-02,-2.51e-02,+1.83e+01,+1.83e+01 2 -106 + 167 331 +7.92e-02,-2.14e-01,+1.65e+01,+1.65e+01 2 -107 + 168 211 +1.55e-01,-4.55e-02,+2.09e+01,+2.09e+01 1 (nil) + 169 113 -9.07e-02,+1.70e-01,+7.69e+00,+7.71e+00 2 -108 + 170 -211 +1.96e-02,-3.42e-02,+4.36e+00,+4.36e+00 1 (nil) + 171 211 +1.50e-01,-7.36e-02,+6.14e+01,+6.14e+01 1 (nil) + 172 313 -9.79e-02,+5.68e-01,+7.20e+01,+7.20e+01 2 -109 + 173 -313 -1.30e-01,-7.96e-01,+2.37e+02,+2.37e+02 2 -110 +GenVertex: -15 ID: 0 (X,cT):0 + I: 6 43 21 -1.27e+00,-7.35e-02,-1.13e+01,+1.14e+01 2 -15 + 44 21 -4.16e-02,-2.47e-01,-1.97e+00,+1.98e+00 2 -15 + 45 21 +9.29e-01,-5.25e-01,-8.27e+00,+8.34e+00 2 -15 + 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 + 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 + 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 + O: 1 176 92 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -16 +GenVertex: -16 ID: 0 (X,cT):0 + I: 1 176 92 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -16 + O:10 177 -411 -2.64e+01,+1.68e+01,-2.54e+02,+2.56e+02 2 -111 + 178 -2112 -3.30e+00,+1.95e+00,-3.12e+01,+3.14e+01 1 (nil) + 179 2112 -3.69e+00,+2.38e+00,-3.47e+01,+3.50e+01 1 (nil) + 180 -313 -1.69e+00,+9.52e-01,-1.93e+01,+1.94e+01 2 -112 + 181 323 -1.07e+00,+1.14e+00,-1.19e+01,+1.20e+01 2 -113 + 182 -323 -1.04e+00,-2.43e-02,-1.56e+01,+1.57e+01 2 -114 + 183 321 +9.73e-01,-7.75e-01,-1.20e+01,+1.21e+01 1 (nil) + 184 113 +9.16e+00,-6.89e+00,-1.32e+02,+1.32e+02 2 -115 + 185 111 +1.57e+00,-1.44e+00,-2.40e+01,+2.41e+01 2 -116 + 186 -321 +1.62e+01,-1.24e+01,-2.25e+02,+2.26e+02 1 (nil) +GenVertex: -17 ID: 0 (X,cT):0 + I: 2 48 3 +2.68e+00,-2.13e+00,-4.93e+00,+6.00e+00 2 -17 + 49 -3 -2.68e+00,+2.13e+00,+2.54e+01,+2.56e+01 2 -17 + O: 1 187 92 +0.00e+00,+0.00e+00,+2.05e+01,+3.16e+01 2 -18 +GenVertex: -18 ID: 0 (X,cT):0 + I: 1 187 92 +0.00e+00,+0.00e+00,+2.05e+01,+3.16e+01 2 -18 + O:11 188 -321 +2.32e+00,-1.47e+00,-3.73e+00,+4.66e+00 1 (nil) + 189 213 -1.88e-01,-4.78e-01,-1.86e-02,+8.02e-01 2 -117 + 190 -211 +5.28e-01,-6.99e-02,+3.78e-01,+6.68e-01 1 (nil) + 191 213 -1.69e-01,+6.66e-02,+1.66e+00,+1.95e+00 2 -118 + 192 113 -7.42e-01,+4.97e-01,+2.71e+00,+2.94e+00 2 -119 + 193 -213 +2.70e-02,+3.31e-01,+2.97e-01,+7.93e-01 2 -120 + 194 211 -6.87e-03,-3.65e-01,+8.22e-01,+9.10e-01 1 (nil) + 195 113 -1.79e-01,+4.58e-01,+4.36e+00,+4.46e+00 2 -121 + 196 -213 -8.75e-02,+1.16e-01,+1.21e+00,+1.46e+00 2 -122 + 197 323 -7.63e-01,+6.20e-01,+7.15e+00,+7.28e+00 2 -123 + 198 221 -7.36e-01,+2.91e-01,+5.63e+00,+5.72e+00 2 -124 +GenVertex: -19 ID: 0 (X,cT):0 + I: 2 50 21 +1.28e+00,-2.63e+00,+9.77e-01,+3.09e+00 2 -19 + 51 21 -1.28e+00,+2.63e+00,+2.15e+00,+3.63e+00 2 -19 + O: 1 199 92 +0.00e+00,+0.00e+00,+3.12e+00,+6.71e+00 2 -20 +GenVertex: -20 ID: 0 (X,cT):0 + I: 1 199 92 +0.00e+00,+0.00e+00,+3.12e+00,+6.71e+00 2 -20 + O: 5 201 111 +3.73e-01,-3.78e-02,+1.18e+00,+1.24e+00 2 -126 + 202 -213 -7.72e-01,+1.13e+00,+1.14e+00,+1.96e+00 2 -127 + 203 223 +4.07e-01,-5.29e-01,+1.12e-01,+1.04e+00 2 -128 + 204 223 -5.49e-02,-3.91e-01,+1.06e+00,+1.37e+00 2 -129 + 200 213 +4.69e-02,-1.77e-01,-3.64e-01,+1.10e+00 2 -125 +GenVertex: -21 ID: 0 (X,cT):0 + I: 1 53 -423 +1.80e+00,-7.41e-01,-9.90e+00,+1.03e+01 2 -21 + O: 2 205 -421 +1.62e+00,-6.80e-01,-9.14e+00,+9.49e+00 2 -130 + 206 111 +1.80e-01,-6.13e-02,-7.60e-01,+7.95e-01 2 -131 +GenVertex: -22 ID: 0 (X,cT):0 + I: 1 54 -323 +5.03e-01,+1.51e+00,-6.41e+00,+6.67e+00 2 -22 + O: 2 207 -311 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -132 + 208 -211 +1.19e-01,+8.35e-01,-4.09e+00,+4.18e+00 1 (nil) +GenVertex: -23 ID: 0 (X,cT):0 + I: 1 55 313 +6.48e-01,+1.70e+00,-1.25e+01,+1.27e+01 2 -23 + O: 2 209 311 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -133 + 210 111 +1.56e-01,+3.28e-02,-2.20e+00,+2.21e+00 2 -134 +GenVertex: -24 ID: 0 (X,cT):0 + I: 1 56 113 +3.14e-01,+1.06e+00,-3.82e+00,+4.04e+00 2 -24 + O: 2 211 -211 +2.07e-01,-7.41e-03,-8.44e-01,+8.80e-01 1 (nil) + 212 211 +1.07e-01,+1.07e+00,-2.97e+00,+3.16e+00 1 (nil) +GenVertex: -25 ID: 0 (X,cT):0 + I: 1 57 223 +8.27e-03,+4.69e-01,-5.55e+00,+5.62e+00 2 -25 + O: 3 213 211 +1.65e-01,+9.37e-02,-1.12e+00,+1.14e+00 1 (nil) + 214 -211 -3.30e-02,+9.79e-02,-3.21e+00,+3.22e+00 1 (nil) + 215 111 -1.24e-01,+2.78e-01,-1.22e+00,+1.26e+00 2 -135 +GenVertex: -26 ID: 0 (X,cT):0 + I: 1 58 213 +1.90e-01,+8.19e-01,-3.63e+00,+3.80e+00 2 -26 + O: 2 216 211 +2.62e-01,+8.26e-01,-2.45e+00,+2.61e+00 1 (nil) + 217 111 -7.15e-02,-6.31e-03,-1.18e+00,+1.19e+00 2 -136 +GenVertex: -27 ID: 0 (X,cT):0 + I: 1 59 223 +4.76e-01,+3.30e-01,-1.30e+00,+1.62e+00 2 -27 + O: 3 218 -211 +1.28e-01,-6.04e-02,-2.75e-01,+3.39e-01 1 (nil) + 219 211 +2.00e-01,+3.04e-01,-9.82e-01,+1.06e+00 1 (nil) + 220 111 +1.49e-01,+8.68e-02,-4.65e-02,+2.24e-01 2 -137 +GenVertex: -28 ID: 0 (X,cT):0 + I: 1 60 -323 -1.01e-01,+5.65e-03,+1.73e-01,+8.22e-01 2 -28 + O: 2 221 -311 -8.28e-02,+1.40e-01,+2.87e-01,+5.97e-01 2 -138 + 222 -211 -1.84e-02,-1.34e-01,-1.14e-01,+2.25e-01 1 (nil) +GenVertex: -29 ID: 0 (X,cT):0 + I: 1 61 313 -7.71e-02,+3.71e-01,+6.58e-01,+1.14e+00 2 -29 + O: 2 223 321 -1.86e-02,+1.84e-02,+1.85e-01,+5.28e-01 1 (nil) + 224 -211 -5.85e-02,+3.52e-01,+4.73e-01,+6.09e-01 1 (nil) +GenVertex: -30 ID: 0 (X,cT):0 + I: 1 62 213 -3.58e-01,-1.85e-01,+2.02e-01,+7.59e-01 2 -30 + O: 2 225 211 +1.06e-01,-2.99e-02,+1.77e-01,+2.51e-01 1 (nil) + 226 111 -4.64e-01,-1.55e-01,+2.53e-02,+5.08e-01 2 -139 +GenVertex: -31 ID: 0 (X,cT):0 + I: 1 63 221 +5.37e-01,+2.24e-01,+7.68e+00,+7.72e+00 2 -31 + O: 3 227 22 +9.24e-02,+1.22e-01,+1.51e+00,+1.52e+00 1 (nil) + 228 -211 +1.64e-01,-1.14e-01,+3.22e+00,+3.23e+00 1 (nil) + 229 211 +2.81e-01,+2.16e-01,+2.94e+00,+2.97e+00 1 (nil) +GenVertex: -32 ID: 0 (X,cT):0 + I: 1 64 -213 -3.57e-01,-2.47e-01,+4.39e+00,+4.44e+00 2 -32 + O: 2 230 -211 -3.46e-01,-7.92e-02,+3.34e+00,+3.37e+00 1 (nil) + 231 111 -1.13e-02,-1.68e-01,+1.05e+00,+1.07e+00 2 -140 +GenVertex: -33 ID: 0 (X,cT):0 + I: 1 66 -213 +3.60e-01,-1.91e-02,+2.45e+01,+2.45e+01 2 -33 + O: 2 232 -211 +2.45e-01,+2.11e-01,+2.06e+01,+2.06e+01 1 (nil) + 233 111 +1.15e-01,-2.30e-01,+3.89e+00,+3.90e+00 2 -141 +GenVertex: -34 ID: 0 (X,cT):0 + I: 1 67 113 -3.73e-01,+1.18e-02,+3.83e+01,+3.84e+01 2 -34 + O: 2 234 -211 +1.07e-02,+2.95e-01,+1.86e+01,+1.86e+01 1 (nil) + 235 211 -3.83e-01,-2.83e-01,+1.98e+01,+1.98e+01 1 (nil) +GenVertex: -35 ID: 0 (X,cT):0 + I: 1 68 113 -9.06e-02,+1.63e-01,+1.67e+02,+1.67e+02 2 -35 + O: 2 236 211 -2.00e-02,-2.69e-01,+6.04e+01,+6.04e+01 1 (nil) + 237 -211 -7.06e-02,+4.32e-01,+1.07e+02,+1.07e+02 1 (nil) +GenVertex: -36 ID: 0 (X,cT):0 + I: 1 69 221 +1.73e-01,+4.07e-01,+2.06e+02,+2.06e+02 2 -36 + O: 3 238 211 +2.30e-02,+1.07e-01,+4.89e+01,+4.89e+01 1 (nil) + 239 -211 +1.52e-01,+2.49e-01,+1.36e+02,+1.36e+02 1 (nil) + 240 111 -1.84e-03,+5.13e-02,+2.10e+01,+2.10e+01 2 -142 +GenVertex: -37 ID: 0 (X,cT):0 + I: 1 71 423 +6.74e+00,-3.13e+00,-1.81e+01,+1.96e+01 2 -37 + O: 2 241 421 +6.24e+00,-2.87e+00,-1.68e+01,+1.82e+01 2 -143 + 242 111 +4.94e-01,-2.63e-01,-1.28e+00,+1.40e+00 2 -144 +GenVertex: -38 ID: 0 (X,cT):0 + I: 1 72 213 +1.08e+00,-6.60e-01,-2.31e+00,+2.70e+00 2 -38 + O: 2 243 211 +2.70e-01,-4.65e-01,-9.32e-01,+1.08e+00 1 (nil) + 244 111 +8.10e-01,-1.96e-01,-1.38e+00,+1.62e+00 2 -145 +GenVertex: -39 ID: 0 (X,cT):0 + I: 1 73 331 +8.84e-01,-9.17e-01,-1.33e+00,+2.07e+00 2 -39 + O: 3 245 211 +4.27e-01,-3.13e-01,-3.45e-01,+6.47e-01 1 (nil) + 246 -211 +6.70e-02,-6.53e-02,-1.12e-01,+2.02e-01 1 (nil) + 247 221 +3.89e-01,-5.39e-01,-8.71e-01,+1.22e+00 2 -146 +GenVertex: -40 ID: 0 (X,cT):0 + I: 1 74 -213 +1.67e+00,-6.02e-01,-4.33e+00,+4.71e+00 2 -40 + O: 2 248 -211 +8.95e-01,-3.43e-01,-1.67e+00,+1.93e+00 1 (nil) + 249 111 +7.72e-01,-2.59e-01,-2.66e+00,+2.78e+00 2 -147 +Vertex: -41 ID: 0 (X,cT)=-1.15e-05,-2.74e-06,-5.60e-05,+5.77e-05 + I: 1 75 111 -2.29e-01,-5.45e-02,-1.11e+00,+1.15e+00 2 -41 + O: 2 250 22 -1.87e-01,-7.34e-02,-6.48e-01,+6.78e-01 1 (nil) + 251 22 -4.27e-02,+1.89e-02,-4.65e-01,+4.68e-01 1 (nil) +Vertex: -42 ID: 0 (X,cT)=-9.58e+00,-4.54e+00,+3.08e+02,+3.22e+02 + I: 1 79 3112 -1.25e-01,-5.92e-02,+4.02e+00,+4.19e+00 2 -42 + O: 2 252 2112 +2.35e-02,-7.71e-02,+3.69e+00,+3.81e+00 1 (nil) + 253 -211 -1.48e-01,+1.79e-02,+3.30e-01,+3.88e-01 1 (nil) +GenVertex: -43 ID: 0 (X,cT):0 + I: 1 80 311 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -43 + O: 1 254 310 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -148 +GenVertex: -44 ID: 0 (X,cT):0 + I: 1 81 -1114 -5.93e-01,-4.62e-01,+7.53e+00,+7.69e+00 2 -44 + O: 2 255 -2112 -7.16e-01,-5.94e-01,+6.69e+00,+6.82e+00 1 (nil) + 256 211 +1.23e-01,+1.32e-01,+8.42e-01,+8.72e-01 1 (nil) +GenVertex: -45 ID: 0 (X,cT):0 + I: 1 84 -213 -1.27e-01,-1.01e-01,+5.15e+00,+5.19e+00 2 -45 + O: 2 257 -211 +1.09e-01,-2.00e-01,+3.92e+00,+3.93e+00 1 (nil) + 258 111 -2.36e-01,+9.89e-02,+1.22e+00,+1.25e+00 2 -149 +GenVertex: -46 ID: 0 (X,cT):0 + I: 1 85 213 -1.20e+00,-1.22e-01,+2.34e+01,+2.35e+01 2 -46 + O: 2 259 211 -9.25e-02,+6.68e-02,+1.06e+00,+1.07e+00 1 (nil) + 260 111 -1.11e+00,-1.89e-01,+2.24e+01,+2.24e+01 2 -150 +GenVertex: -47 ID: 0 (X,cT):0 + I: 1 86 223 -7.42e-02,+1.42e-01,+1.52e+01,+1.52e+01 2 -47 + O: 3 261 211 -8.80e-02,-1.85e-01,+7.90e+00,+7.90e+00 1 (nil) + 262 -211 -9.38e-02,+7.23e-02,+3.34e+00,+3.35e+00 1 (nil) + 263 111 +1.08e-01,+2.55e-01,+3.93e+00,+3.94e+00 2 -151 +GenVertex: -48 ID: 0 (X,cT):0 + I: 1 87 -213 -9.01e-01,-6.04e-01,+2.49e+01,+2.49e+01 2 -48 + O: 2 264 -211 -5.80e-01,-4.05e-01,+2.11e+01,+2.11e+01 1 (nil) + 265 111 -3.21e-01,-1.99e-01,+3.80e+00,+3.82e+00 2 -152 +GenVertex: -49 ID: 0 (X,cT):0 + I: 1 88 323 -3.96e-01,+4.77e-01,+8.35e+01,+8.35e+01 2 -49 + O: 2 266 321 -2.79e-01,+6.38e-01,+6.43e+01,+6.43e+01 1 (nil) + 267 111 -1.18e-01,-1.61e-01,+1.92e+01,+1.92e+01 2 -153 +GenVertex: -50 ID: 0 (X,cT):0 + I: 1 89 -313 -1.18e+00,+4.38e-01,+2.34e+02,+2.34e+02 2 -50 + O: 2 268 -321 -8.94e-01,+2.08e-02,+1.54e+02,+1.54e+02 1 (nil) + 269 211 -2.85e-01,+4.17e-01,+8.01e+01,+8.01e+01 1 (nil) +Vertex: -51 ID: 0 (X,cT)=-6.60e-06,+4.63e-05,+6.91e-03,+6.91e-03 + I: 1 90 111 -2.10e-02,+1.47e-01,+2.20e+01,+2.20e+01 2 -51 + O: 2 270 22 +3.30e-03,+1.38e-01,+2.13e+01,+2.13e+01 1 (nil) + 271 22 -2.43e-02,+9.55e-03,+7.24e-01,+7.25e-01 1 (nil) +GenVertex: -52 ID: 0 (X,cT):0 + I: 1 91 -213 -1.47e+00,+1.82e+00,+3.92e+02,+3.92e+02 2 -52 + O: 2 272 -211 -2.85e-01,+9.40e-01,+1.43e+02,+1.43e+02 1 (nil) + 273 111 -1.19e+00,+8.85e-01,+2.49e+02,+2.49e+02 2 -154 +GenVertex: -53 ID: 0 (X,cT):0 + I: 1 92 213 +1.75e+00,+1.50e+00,+6.91e+02,+6.91e+02 2 -53 + O: 2 274 211 +1.79e+00,+1.29e+00,+6.18e+02,+6.18e+02 1 (nil) + 275 111 -3.94e-02,+2.10e-01,+7.29e+01,+7.29e+01 2 -155 +Vertex: -54 ID: 0 (X,cT)=+1.07e-04,+5.79e-05,+2.54e-02,+2.54e-02 + I: 1 94 111 +7.06e-01,+3.83e-01,+1.68e+02,+1.68e+02 2 -54 + O: 2 276 22 +2.50e-01,+1.51e-01,+4.86e+01,+4.86e+01 1 (nil) + 277 22 +4.56e-01,+2.32e-01,+1.20e+02,+1.20e+02 1 (nil) +GenVertex: -55 ID: 0 (X,cT):0 + I: 1 95 223 +1.83e-01,+6.58e-01,+2.64e+02,+2.64e+02 2 -55 + O: 3 278 211 +2.62e-01,+6.67e-02,+8.45e+01,+8.45e+01 1 (nil) + 279 -211 +3.03e-02,+5.27e-01,+1.40e+02,+1.40e+02 1 (nil) + 280 111 -1.09e-01,+6.39e-02,+3.93e+01,+3.93e+01 2 -156 +GenVertex: -56 ID: 0 (X,cT):0 + I: 1 96 113 +1.17e+00,-6.49e-01,+1.09e+02,+1.09e+02 2 -56 + O: 2 281 -211 +1.05e+00,-3.90e-01,+9.92e+01,+9.92e+01 1 (nil) + 282 211 +1.20e-01,-2.59e-01,+1.03e+01,+1.03e+01 1 (nil) +GenVertex: -57 ID: 0 (X,cT):0 + I: 1 97 213 -3.59e-02,+9.92e-01,+3.73e+01,+3.74e+01 2 -57 + O: 2 283 211 -1.62e-01,+3.10e-02,+2.19e+00,+2.20e+00 1 (nil) + 284 111 +1.27e-01,+9.61e-01,+3.52e+01,+3.52e+01 2 -157 +GenVertex: -58 ID: 0 (X,cT):0 + I: 1 98 221 +4.22e-01,+3.30e-01,+8.56e+00,+8.60e+00 2 -58 + O: 3 285 111 +2.92e-01,+2.10e-01,+3.56e+00,+3.58e+00 2 -158 + 286 111 +7.22e-02,+1.09e-01,+1.73e+00,+1.74e+00 2 -159 + 287 111 +5.73e-02,+1.07e-02,+3.27e+00,+3.27e+00 2 -160 +GenVertex: -59 ID: 0 (X,cT):0 + I: 1 99 -213 +9.75e-01,+2.54e+00,+3.20e+01,+3.22e+01 2 -59 + O: 2 288 -211 +5.56e-01,+1.36e+00,+1.23e+01,+1.24e+01 1 (nil) + 289 111 +4.18e-01,+1.18e+00,+1.97e+01,+1.98e+01 2 -161 +Vertex: -60 ID: 0 (X,cT)=+3.89e-05,+1.80e-05,+5.58e-04,+5.60e-04 + I: 1 100 111 +1.28e+00,+5.91e-01,+1.83e+01,+1.84e+01 2 -60 + O: 2 290 22 +1.23e+00,+5.60e-01,+1.78e+01,+1.79e+01 1 (nil) + 291 22 +5.03e-02,+3.14e-02,+4.95e-01,+4.99e-01 1 (nil) +GenVertex: -61 ID: 0 (X,cT):0 + I: 1 101 331 +1.59e+00,+2.22e+00,+3.03e+01,+3.04e+01 2 -61 + O: 3 292 211 +3.32e-01,+2.48e-01,+4.45e+00,+4.47e+00 1 (nil) + 293 -211 +3.06e-01,+6.92e-01,+8.24e+00,+8.28e+00 1 (nil) + 294 221 +9.56e-01,+1.28e+00,+1.76e+01,+1.77e+01 2 -162 +GenVertex: -62 ID: 0 (X,cT):0 + I: 1 102 213 +1.77e+00,-1.58e+00,+1.71e+01,+1.73e+01 2 -62 + O: 2 295 211 +8.03e-02,+2.02e-02,+5.69e-01,+5.92e-01 1 (nil) + 296 111 +1.69e+00,-1.60e+00,+1.65e+01,+1.67e+01 2 -163 +GenVertex: -63 ID: 0 (X,cT):0 + I: 1 105 311 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -63 + O: 1 297 310 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -164 +GenVertex: -64 ID: 0 (X,cT):0 + I: 1 106 333 +8.72e-02,-2.03e+00,+7.62e+00,+7.95e+00 2 -64 + O: 2 298 130 +1.44e-01,-1.08e+00,+4.20e+00,+4.37e+00 1 (nil) + 299 310 -5.64e-02,-9.48e-01,+3.42e+00,+3.58e+00 2 -165 +GenVertex: -65 ID: 0 (X,cT):0 + I: 1 107 -323 -1.98e-01,-1.55e-01,+2.64e+00,+2.79e+00 2 -65 + O: 2 300 -321 -2.21e-01,+1.56e-01,+1.65e+00,+1.74e+00 1 (nil) + 301 111 +2.32e-02,-3.11e-01,+9.92e-01,+1.05e+00 2 -166 +GenVertex: -66 ID: 0 (X,cT):0 + I: 1 108 113 -1.10e+00,-1.90e+00,+5.32e+00,+5.81e+00 2 -66 + O: 2 302 -211 -1.16e+00,-1.76e+00,+5.02e+00,+5.45e+00 1 (nil) + 303 211 +5.82e-02,-1.40e-01,+3.02e-01,+3.65e-01 1 (nil) +GenVertex: -67 ID: 0 (X,cT):0 + I: 1 109 213 -7.23e-01,-7.70e-01,+6.13e-01,+1.63e+00 2 -67 + O: 2 304 211 +1.49e-03,+1.26e-01,-1.51e-01,+2.41e-01 1 (nil) + 305 111 -7.25e-01,-8.95e-01,+7.64e-01,+1.39e+00 2 -167 +GenVertex: -68 ID: 0 (X,cT):0 + I: 1 111 213 -5.97e-01,-1.22e+00,+2.67e-01,+1.55e+00 2 -68 + O: 2 306 211 +1.06e-01,-2.72e-01,-4.01e-02,+3.26e-01 1 (nil) + 307 111 -7.03e-01,-9.49e-01,+3.08e-01,+1.23e+00 2 -168 +Vertex: -69 ID: 0 (X,cT)=+1.27e-05,-7.07e-05,+1.82e-05,+8.39e-05 + I: 1 113 111 +4.36e-02,-2.43e-01,+6.27e-02,+2.89e-01 2 -69 + O: 2 308 22 +5.40e-02,-1.99e-02,+1.91e-02,+6.07e-02 1 (nil) + 309 22 -1.04e-02,-2.23e-01,+4.36e-02,+2.28e-01 1 (nil) +GenVertex: -70 ID: 0 (X,cT):0 + I: 1 114 213 -1.15e+00,-1.72e+00,-2.01e+00,+2.97e+00 2 -70 + O: 2 310 211 -4.37e-02,-6.49e-02,-3.59e-02,+1.64e-01 1 (nil) + 311 111 -1.10e+00,-1.65e+00,-1.97e+00,+2.80e+00 2 -169 +GenVertex: -71 ID: 0 (X,cT):0 + I: 1 115 -213 -9.95e-01,-3.87e-01,-1.11e+00,+1.63e+00 2 -71 + O: 2 312 -211 -7.40e-01,-4.72e-01,-9.20e-01,+1.28e+00 1 (nil) + 313 111 -2.55e-01,+8.51e-02,-1.87e-01,+3.54e-01 2 -170 +GenVertex: -72 ID: 0 (X,cT):0 + I: 1 119 311 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -72 + O: 1 314 310 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -171 +GenVertex: -73 ID: 0 (X,cT):0 + I: 1 121 113 -2.01e-02,+9.67e-01,-2.76e+00,+3.05e+00 2 -73 + O: 2 315 -211 -5.02e-03,+1.03e+00,-2.68e+00,+2.88e+00 1 (nil) + 316 211 -1.50e-02,-6.21e-02,-7.50e-02,+1.71e-01 1 (nil) +GenVertex: -74 ID: 0 (X,cT):0 + I: 1 122 213 +6.99e-01,+4.88e-01,-2.14e+00,+2.37e+00 2 -74 + O: 2 317 211 +2.31e-01,+4.39e-01,-1.27e+00,+1.37e+00 1 (nil) + 318 111 +4.68e-01,+4.92e-02,-8.74e-01,+1.00e+00 2 -172 +GenVertex: -75 ID: 0 (X,cT):0 + I: 1 123 223 +1.59e-01,-2.33e-01,-7.42e+00,+7.46e+00 2 -75 + O: 2 319 -211 +2.57e-01,+5.62e-02,-5.93e+00,+5.93e+00 1 (nil) + 320 211 -9.87e-02,-2.90e-01,-1.49e+00,+1.53e+00 1 (nil) +GenVertex: -76 ID: 0 (X,cT):0 + I: 1 124 223 -3.07e-01,+5.68e-01,-1.77e+01,+1.77e+01 2 -76 + O: 2 321 -211 -1.81e-01,+2.32e-01,-1.48e+01,+1.48e+01 1 (nil) + 322 211 -1.26e-01,+3.36e-01,-2.88e+00,+2.90e+00 1 (nil) +GenVertex: -77 ID: 0 (X,cT):0 + I: 1 125 1114 +7.70e-01,-3.47e-01,-1.94e+02,+1.94e+02 2 -77 + O: 2 323 2112 +6.85e-01,-3.51e-01,-1.63e+02,+1.63e+02 1 (nil) + 324 -211 +8.47e-02,+3.52e-03,-3.06e+01,+3.06e+01 1 (nil) +Vertex: -78 ID: 0 (X,cT)=+9.27e-06,+2.22e-05,-1.58e-03,+1.58e-03 + I: 1 126 111 +6.52e-01,+1.56e+00,-1.11e+02,+1.11e+02 2 -78 + O: 2 325 22 +6.52e-01,+1.50e+00,-1.08e+02,+1.08e+02 1 (nil) + 326 22 -1.55e-04,+6.21e-02,-3.67e+00,+3.67e+00 1 (nil) +GenVertex: -79 ID: 0 (X,cT):0 + I: 1 130 113 +7.74e-01,+8.64e-01,-8.89e+01,+8.89e+01 2 -79 + O: 2 327 -211 +6.68e-01,+7.08e-01,-4.84e+01,+4.84e+01 1 (nil) + 328 211 +1.06e-01,+1.56e-01,-4.05e+01,+4.05e+01 1 (nil) +GenVertex: -80 ID: 0 (X,cT):0 + I: 1 131 223 +1.70e-02,+2.83e-01,-9.69e+01,+9.69e+01 2 -80 + O: 3 329 211 -1.62e-01,+5.36e-02,-3.29e+01,+3.29e+01 1 (nil) + 330 -211 +6.38e-02,-3.43e-02,-4.30e+01,+4.30e+01 1 (nil) + 331 111 +1.15e-01,+2.64e-01,-2.11e+01,+2.11e+01 2 -173 +GenVertex: -81 ID: 0 (X,cT):0 + I: 1 132 223 +3.02e-01,+2.43e-01,-3.21e+01,+3.21e+01 2 -81 + O: 3 332 -211 +5.67e-02,-4.99e-02,-1.78e+01,+1.78e+01 1 (nil) + 333 211 +8.54e-02,+2.91e-01,-8.16e+00,+8.17e+00 1 (nil) + 334 111 +1.60e-01,+1.64e-03,-6.16e+00,+6.16e+00 2 -174 +GenVertex: -82 ID: 0 (X,cT):0 + I: 1 133 221 +6.52e-01,-1.30e-02,-7.49e+00,+7.53e+00 2 -82 + O: 3 335 111 +3.20e-01,-1.06e-01,-2.80e+00,+2.83e+00 2 -175 + 336 111 +2.91e-01,+8.79e-02,-3.67e+00,+3.68e+00 2 -176 + 337 111 +4.06e-02,+5.17e-03,-1.02e+00,+1.02e+00 2 -177 +GenVertex: -83 ID: 0 (X,cT):0 + I: 1 134 213 +1.25e+00,+2.45e+00,-3.91e+01,+3.93e+01 2 -83 + O: 2 338 211 +6.58e-01,+5.66e-01,-1.72e+01,+1.72e+01 1 (nil) + 339 111 +5.88e-01,+1.89e+00,-2.20e+01,+2.20e+01 2 -178 +GenVertex: -84 ID: 0 (X,cT):0 + I: 1 135 221 +8.86e-01,+9.16e-01,-1.24e+01,+1.25e+01 2 -84 + O: 2 340 22 +6.66e-01,+6.36e-01,-6.31e+00,+6.38e+00 1 (nil) + 341 22 +2.20e-01,+2.80e-01,-6.11e+00,+6.12e+00 1 (nil) +Vertex: -85 ID: 0 (X,cT)=+3.02e-04,+4.87e-04,-5.38e-03,+5.41e-03 + I: 1 137 111 +7.22e-01,+1.16e+00,-1.29e+01,+1.29e+01 2 -85 + O: 2 342 22 +5.79e-02,+1.36e-01,-1.76e+00,+1.76e+00 1 (nil) + 343 22 +6.65e-01,+1.03e+00,-1.11e+01,+1.12e+01 1 (nil) +GenVertex: -86 ID: 0 (X,cT):0 + I: 1 138 113 +1.21e+00,+1.68e+00,-1.89e+01,+1.90e+01 2 -86 + O: 2 344 -211 +4.13e-01,+1.29e-01,-3.64e+00,+3.67e+00 1 (nil) + 345 211 +8.01e-01,+1.55e+00,-1.52e+01,+1.53e+01 1 (nil) +GenVertex: -87 ID: 0 (X,cT):0 + I: 1 140 -213 +4.58e-01,+1.15e+00,-1.84e+01,+1.85e+01 2 -87 + O: 2 346 -211 +4.43e-01,+4.32e-01,-3.36e+00,+3.42e+00 1 (nil) + 347 111 +1.51e-02,+7.22e-01,-1.51e+01,+1.51e+01 2 -179 +GenVertex: -88 ID: 0 (X,cT):0 + I: 1 141 213 +2.08e+00,+1.68e+00,-2.61e+01,+2.63e+01 2 -88 + O: 2 348 211 +2.03e+00,+1.63e+00,-2.51e+01,+2.52e+01 1 (nil) + 349 111 +5.56e-02,+5.31e-02,-1.06e+00,+1.07e+00 2 -180 +GenVertex: -89 ID: 0 (X,cT):0 + I: 1 142 313 +1.78e+00,+1.24e+00,-2.26e+01,+2.27e+01 2 -89 + O: 2 350 321 +5.53e-01,+4.44e-01,-6.45e+00,+6.51e+00 1 (nil) + 351 -211 +1.23e+00,+7.92e-01,-1.62e+01,+1.62e+01 1 (nil) +GenVertex: -90 ID: 0 (X,cT):0 + I: 1 143 -313 +1.42e+00,+6.47e-01,-1.81e+01,+1.82e+01 2 -90 + O: 2 352 -311 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -181 + 353 111 +9.21e-01,+1.38e-01,-1.06e+01,+1.06e+01 2 -182 +GenVertex: -91 ID: 0 (X,cT):0 + I: 1 145 -213 -5.75e-01,-4.78e-01,-9.45e+01,+9.45e+01 2 -91 + O: 2 354 -211 -4.16e-01,-6.42e-04,-4.57e+01,+4.57e+01 1 (nil) + 355 111 -1.59e-01,-4.77e-01,-4.88e+01,+4.88e+01 2 -183 +GenVertex: -92 ID: 0 (X,cT):0 + I: 1 146 -1114 -8.04e-01,-7.43e-01,-3.40e+01,+3.40e+01 2 -92 + O: 2 356 -2112 -5.09e-01,-4.51e-01,-2.85e+01,+2.85e+01 1 (nil) + 357 211 -2.95e-01,-2.92e-01,-5.48e+00,+5.50e+00 1 (nil) +GenVertex: -93 ID: 0 (X,cT):0 + I: 1 147 -213 -1.80e-01,+6.29e-02,-4.32e+01,+4.32e+01 2 -93 + O: 2 358 -211 -2.49e-01,+3.34e-01,-2.84e+01,+2.84e+01 1 (nil) + 359 111 +6.89e-02,-2.71e-01,-1.49e+01,+1.49e+01 2 -184 +GenVertex: -94 ID: 0 (X,cT):0 + I: 1 149 311 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 2 -94 + O: 1 360 130 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 1 (nil) +GenVertex: -95 ID: 0 (X,cT):0 + I: 1 150 -323 -3.04e-01,-3.92e-01,-7.88e+01,+7.88e+01 2 -95 + O: 2 361 -321 -3.90e-02,+2.37e-02,-4.50e+01,+4.50e+01 1 (nil) + 362 111 -2.65e-01,-4.16e-01,-3.38e+01,+3.38e+01 2 -185 +GenVertex: -96 ID: 0 (X,cT):0 + I: 1 151 213 -1.80e+00,-1.21e+00,-8.93e+01,+8.94e+01 2 -96 + O: 2 363 211 -1.88e+00,-1.09e+00,-8.20e+01,+8.20e+01 1 (nil) + 364 111 +7.55e-02,-1.18e-01,-7.35e+00,+7.36e+00 2 -186 +GenVertex: -97 ID: 0 (X,cT):0 + I: 1 152 113 +4.91e-01,-9.72e-01,-5.04e+01,+5.05e+01 2 -97 + O: 2 365 -211 +3.30e-01,-1.08e+00,-4.62e+01,+4.62e+01 1 (nil) + 366 211 +1.61e-01,+1.05e-01,-4.23e+00,+4.23e+00 1 (nil) +GenVertex: -98 ID: 0 (X,cT):0 + I: 1 153 221 +2.67e-01,-2.61e-01,-2.16e+01,+2.16e+01 2 -98 + O: 2 367 22 -1.53e-01,-5.63e-02,-3.12e+00,+3.12e+00 1 (nil) + 368 22 +4.20e-01,-2.04e-01,-1.84e+01,+1.85e+01 1 (nil) +GenVertex: -99 ID: 0 (X,cT):0 + I: 1 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 + O: 1 369 130 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 1 (nil) +GenVertex: -100 ID: 0 (X,cT):0 + I: 1 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 + O: 3 370 211 -2.54e-01,-1.08e-01,-2.26e+01,+2.26e+01 1 (nil) + 371 -211 -9.47e-02,-7.03e-02,-6.26e+00,+6.26e+00 1 (nil) + 372 111 -6.13e-02,-9.53e-02,-1.99e+01,+1.99e+01 2 -187 +GenVertex: -101 ID: 0 (X,cT):0 + I: 1 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 + O: 2 373 211 -5.66e-01,+1.70e-01,-3.23e+02,+3.23e+02 1 (nil) + 374 -211 -2.90e-01,+2.81e-01,-6.32e+01,+6.32e+01 1 (nil) +GenVertex: -102 ID: 0 (X,cT):0 + I: 1 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 + O: 2 375 2212 +9.56e-04,+8.62e-01,-1.17e+03,+1.17e+03 1 (nil) + 376 211 -2.86e-03,-1.12e-01,-2.17e+02,+2.17e+02 1 (nil) +GenVertex: -103 ID: 0 (X,cT):0 + I: 1 163 223 -1.35e-02,+1.05e-01,+2.90e+00,+3.01e+00 2 -103 + O: 3 377 -211 +6.98e-02,+4.75e-02,+2.34e+00,+2.34e+00 1 (nil) + 378 211 -3.36e-03,-3.94e-02,+1.39e-01,+2.01e-01 1 (nil) + 379 111 -7.99e-02,+9.68e-02,+4.23e-01,+4.62e-01 2 -188 +GenVertex: -104 ID: 0 (X,cT):0 + I: 1 164 -213 -7.67e-02,-1.58e-01,+2.83e+00,+2.94e+00 2 -104 + O: 2 380 -211 +2.46e-01,-2.54e-01,+9.52e-01,+1.02e+00 1 (nil) + 381 111 -3.23e-01,+9.61e-02,+1.88e+00,+1.91e+00 2 -189 +GenVertex: -105 ID: 0 (X,cT):0 + I: 1 165 113 -3.96e-01,-2.46e-01,+7.66e+00,+7.72e+00 2 -105 + O: 2 382 -211 -4.58e-01,-1.09e-01,+2.26e+00,+2.31e+00 1 (nil) + 383 211 +6.19e-02,-1.38e-01,+5.40e+00,+5.41e+00 1 (nil) +GenVertex: -106 ID: 0 (X,cT):0 + I: 1 166 223 +8.97e-02,-2.51e-02,+1.83e+01,+1.83e+01 2 -106 + O: 3 384 211 +1.54e-02,+2.33e-01,+6.44e+00,+6.45e+00 1 (nil) + 385 -211 -1.25e-01,-1.91e-01,+6.30e+00,+6.31e+00 1 (nil) + 386 111 +1.99e-01,-6.72e-02,+5.57e+00,+5.57e+00 2 -190 +GenVertex: -107 ID: 0 (X,cT):0 + I: 1 167 331 +7.92e-02,-2.14e-01,+1.65e+01,+1.65e+01 2 -107 + O: 2 388 113 +8.30e-02,-2.83e-01,+1.61e+01,+1.61e+01 2 -191 + 387 22 -3.78e-03,+6.83e-02,+3.46e-01,+3.53e-01 1 (nil) +GenVertex: -108 ID: 0 (X,cT):0 + I: 1 169 113 -9.07e-02,+1.70e-01,+7.69e+00,+7.71e+00 2 -108 + O: 2 389 211 -1.47e-01,+1.94e-03,+5.31e+00,+5.31e+00 1 (nil) + 390 -211 +5.60e-02,+1.68e-01,+2.38e+00,+2.39e+00 1 (nil) +GenVertex: -109 ID: 0 (X,cT):0 + I: 1 172 313 -9.79e-02,+5.68e-01,+7.20e+01,+7.20e+01 2 -109 + O: 2 391 321 +1.98e-01,+2.04e-01,+3.95e+01,+3.95e+01 1 (nil) + 392 -211 -2.96e-01,+3.65e-01,+3.25e+01,+3.25e+01 1 (nil) +GenVertex: -110 ID: 0 (X,cT):0 + I: 1 173 -313 -1.30e-01,-7.96e-01,+2.37e+02,+2.37e+02 2 -110 + O: 2 393 -321 +8.77e-02,-3.77e-01,+1.73e+02,+1.73e+02 1 (nil) + 394 211 -2.18e-01,-4.20e-01,+6.41e+01,+6.41e+01 1 (nil) +Vertex: -111 ID: 0 (X,cT)=-3.81e+00,+2.43e+00,-3.67e+01,+3.70e+01 + I: 1 177 -411 -2.64e+01,+1.68e+01,-2.54e+02,+2.56e+02 2 -111 + O: 4 395 13 -1.41e+00,+1.04e+00,-1.32e+01,+1.33e+01 1 (nil) + 397 323 -2.16e+01,+1.35e+01,-2.09e+02,+2.11e+02 2 -192 + 396 -14 -1.31e+00,+1.05e+00,-1.23e+01,+1.24e+01 1 (nil) + 398 -211 -2.09e+00,+1.24e+00,-1.91e+01,+1.92e+01 1 (nil) +GenVertex: -112 ID: 0 (X,cT):0 + I: 1 180 -313 -1.69e+00,+9.52e-01,-1.93e+01,+1.94e+01 2 -112 + O: 2 399 -311 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -193 + 400 111 -1.24e+00,+6.47e-01,-1.29e+01,+1.30e+01 2 -194 +GenVertex: -113 ID: 0 (X,cT):0 + I: 1 181 323 -1.07e+00,+1.14e+00,-1.19e+01,+1.20e+01 2 -113 + O: 2 401 311 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -195 + 402 211 -1.36e-01,+1.77e-01,-7.16e-01,+7.63e-01 1 (nil) +GenVertex: -114 ID: 0 (X,cT):0 + I: 1 182 -323 -1.04e+00,-2.43e-02,-1.56e+01,+1.57e+01 2 -114 + O: 2 403 -321 -9.22e-01,-9.25e-02,-1.49e+01,+1.49e+01 1 (nil) + 404 111 -1.17e-01,+6.82e-02,-7.01e-01,+7.26e-01 2 -196 +GenVertex: -115 ID: 0 (X,cT):0 + I: 1 184 113 +9.16e+00,-6.89e+00,-1.32e+02,+1.32e+02 2 -115 + O: 2 405 -211 +8.07e+00,-6.29e+00,-1.19e+02,+1.20e+02 1 (nil) + 406 211 +1.09e+00,-5.97e-01,-1.23e+01,+1.24e+01 1 (nil) +Vertex: -116 ID: 0 (X,cT)=+1.87e-03,-1.71e-03,-2.84e-02,+2.85e-02 + I: 1 185 111 +1.57e+00,-1.44e+00,-2.40e+01,+2.41e+01 2 -116 + O: 2 407 22 +1.03e+00,-8.53e-01,-1.49e+01,+1.50e+01 1 (nil) + 408 22 +5.46e-01,-5.88e-01,-9.04e+00,+9.08e+00 1 (nil) +GenVertex: -117 ID: 0 (X,cT):0 + I: 1 189 213 -1.88e-01,-4.78e-01,-1.86e-02,+8.02e-01 2 -117 + O: 2 409 211 +6.32e-02,-4.07e-02,-1.95e-01,+2.51e-01 1 (nil) + 410 111 -2.51e-01,-4.37e-01,+1.76e-01,+5.51e-01 2 -197 +GenVertex: -118 ID: 0 (X,cT):0 + I: 1 191 213 -1.69e-01,+6.66e-02,+1.66e+00,+1.95e+00 2 -118 + O: 2 411 211 -8.99e-02,-4.44e-01,+8.88e-01,+1.01e+00 1 (nil) + 412 111 -7.90e-02,+5.11e-01,+7.72e-01,+9.39e-01 2 -198 +GenVertex: -119 ID: 0 (X,cT):0 + I: 1 192 113 -7.42e-01,+4.97e-01,+2.71e+00,+2.94e+00 2 -119 + O: 2 413 -211 -6.65e-02,+8.33e-02,+1.29e+00,+1.30e+00 1 (nil) + 414 211 -6.76e-01,+4.14e-01,+1.43e+00,+1.64e+00 1 (nil) +GenVertex: -120 ID: 0 (X,cT):0 + I: 1 193 -213 +2.70e-02,+3.31e-01,+2.97e-01,+7.93e-01 2 -120 + O: 2 415 -211 -1.79e-01,+3.73e-02,+3.36e-01,+4.08e-01 1 (nil) + 416 111 +2.06e-01,+2.93e-01,-3.94e-02,+3.85e-01 2 -199 +GenVertex: -121 ID: 0 (X,cT):0 + I: 1 195 113 -1.79e-01,+4.58e-01,+4.36e+00,+4.46e+00 2 -121 + O: 2 417 -211 -4.09e-01,+9.88e-02,+1.62e+00,+1.68e+00 1 (nil) + 418 211 +2.30e-01,+3.59e-01,+2.75e+00,+2.78e+00 1 (nil) +GenVertex: -122 ID: 0 (X,cT):0 + I: 1 196 -213 -8.75e-02,+1.16e-01,+1.21e+00,+1.46e+00 2 -122 + O: 2 419 -211 +1.71e-01,-8.56e-03,+1.11e+00,+1.13e+00 1 (nil) + 420 111 -2.59e-01,+1.24e-01,+1.06e-01,+3.34e-01 2 -200 +GenVertex: -123 ID: 0 (X,cT):0 + I: 1 197 323 -7.63e-01,+6.20e-01,+7.15e+00,+7.28e+00 2 -123 + O: 2 421 321 -4.34e-01,+3.13e-01,+2.39e+00,+2.49e+00 1 (nil) + 422 111 -3.29e-01,+3.07e-01,+4.76e+00,+4.78e+00 2 -201 +GenVertex: -124 ID: 0 (X,cT):0 + I: 1 198 221 -7.36e-01,+2.91e-01,+5.63e+00,+5.72e+00 2 -124 + O: 3 424 211 -2.05e-01,+1.05e-01,+1.26e+00,+1.28e+00 1 (nil) + 423 22 -3.68e-01,+1.74e-01,+3.63e+00,+3.66e+00 1 (nil) + 425 -211 -1.63e-01,+1.25e-02,+7.47e-01,+7.77e-01 1 (nil) +GenVertex: -125 ID: 0 (X,cT):0 + I: 1 200 213 +4.69e-02,-1.77e-01,-3.64e-01,+1.10e+00 2 -125 + O: 2 426 211 -3.67e-01,-1.30e-01,-4.96e-01,+6.46e-01 1 (nil) + 427 111 +4.14e-01,-4.69e-02,+1.31e-01,+4.58e-01 2 -202 +Vertex: -126 ID: 0 (X,cT)=+6.94e-05,-7.03e-06,+2.19e-04,+2.31e-04 + I: 1 201 111 +3.73e-01,-3.78e-02,+1.18e+00,+1.24e+00 2 -126 + O: 2 428 22 +1.73e-01,-3.58e-02,+3.54e-01,+3.96e-01 1 (nil) + 429 22 +2.00e-01,-2.02e-03,+8.22e-01,+8.46e-01 1 (nil) +GenVertex: -127 ID: 0 (X,cT):0 + I: 1 202 -213 -7.72e-01,+1.13e+00,+1.14e+00,+1.96e+00 2 -127 + O: 2 430 -211 -3.73e-02,+7.08e-01,+6.44e-01,+9.68e-01 1 (nil) + 431 111 -7.34e-01,+4.26e-01,+4.97e-01,+9.93e-01 2 -203 +GenVertex: -128 ID: 0 (X,cT):0 + I: 1 203 223 +4.07e-01,-5.29e-01,+1.12e-01,+1.04e+00 2 -128 + O: 3 432 211 +3.59e-01,-2.82e-01,+1.18e-01,+4.92e-01 1 (nil) + 433 -211 -1.50e-02,+9.43e-02,+3.19e-02,+1.72e-01 1 (nil) + 434 111 +6.29e-02,-3.41e-01,-3.80e-02,+3.74e-01 2 -204 +GenVertex: -129 ID: 0 (X,cT):0 + I: 1 204 223 -5.49e-02,-3.91e-01,+1.06e+00,+1.37e+00 2 -129 + O: 3 435 -211 +6.25e-02,-1.04e-01,+1.78e-01,+2.57e-01 1 (nil) + 436 211 +2.00e-02,-2.71e-01,+8.68e-01,+9.20e-01 1 (nil) + 437 111 -1.37e-01,-1.63e-02,+1.18e-02,+1.94e-01 2 -205 +Vertex: -130 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 205 -421 +1.62e+00,-6.80e-01,-9.14e+00,+9.49e+00 2 -130 + O: 2 438 10323 +8.73e-01,-6.30e-01,-7.46e+00,+7.64e+00 2 -206 + 439 -211 +7.49e-01,-4.97e-02,-1.68e+00,+1.85e+00 1 (nil) +Vertex: -131 ID: 0 (X,cT)=+6.33e-05,-2.16e-05,-2.68e-04,+2.80e-04 + I: 1 206 111 +1.80e-01,-6.13e-02,-7.60e-01,+7.95e-01 2 -131 + O: 2 440 22 +1.83e-01,-8.44e-02,-7.27e-01,+7.54e-01 1 (nil) + 441 22 -3.44e-03,+2.31e-02,-3.29e-02,+4.04e-02 1 (nil) +GenVertex: -132 ID: 0 (X,cT):0 + I: 1 207 -311 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -132 + O: 1 442 310 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -207 +GenVertex: -133 ID: 0 (X,cT):0 + I: 1 209 311 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -133 + O: 1 443 310 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -208 +Vertex: -134 ID: 0 (X,cT)=+9.60e-06,+2.02e-06,-1.35e-04,+1.36e-04 + I: 1 210 111 +1.56e-01,+3.28e-02,-2.20e+00,+2.21e+00 2 -134 + O: 2 444 22 +1.58e-01,+4.61e-02,-2.17e+00,+2.18e+00 1 (nil) + 445 22 -2.08e-03,-1.33e-02,-2.27e-02,+2.64e-02 1 (nil) +Vertex: -135 ID: 0 (X,cT)=-6.11e-05,+1.37e-04,-6.02e-04,+6.24e-04 + I: 1 215 111 -1.24e-01,+2.78e-01,-1.22e+00,+1.26e+00 2 -135 + O: 2 446 22 -2.52e-02,+2.45e-02,-3.81e-01,+3.83e-01 1 (nil) + 447 22 -9.85e-02,+2.53e-01,-8.38e-01,+8.81e-01 1 (nil) +Vertex: -136 ID: 0 (X,cT)=-4.44e-05,-3.92e-06,-7.34e-04,+7.40e-04 + I: 1 217 111 -7.15e-02,-6.31e-03,-1.18e+00,+1.19e+00 2 -136 + O: 2 448 22 -9.35e-02,-3.77e-02,-1.03e+00,+1.04e+00 1 (nil) + 449 22 +2.21e-02,+3.14e-02,-1.46e-01,+1.51e-01 1 (nil) +Vertex: -137 ID: 0 (X,cT)=+3.41e-05,+1.99e-05,-1.06e-05,+5.12e-05 + I: 1 220 111 +1.49e-01,+8.68e-02,-4.65e-02,+2.24e-01 2 -137 + O: 2 450 22 +1.62e-01,+9.36e-02,-6.67e-02,+1.99e-01 1 (nil) + 451 22 -1.32e-02,-6.86e-03,+2.02e-02,+2.51e-02 1 (nil) +GenVertex: -138 ID: 0 (X,cT):0 + I: 1 221 -311 -8.28e-02,+1.40e-01,+2.87e-01,+5.97e-01 2 -138 + O: 1 452 130 -8.28e-02,+1.40e-01,+2.87e-01,+5.97e-01 1 (nil) +Vertex: -139 ID: 0 (X,cT)=-3.00e-05,-1.01e-05,+1.64e-06,+3.29e-05 + I: 1 226 111 -4.64e-01,-1.55e-01,+2.53e-02,+5.08e-01 2 -139 + O: 2 453 22 -2.22e-01,-3.76e-02,-4.59e-02,+2.30e-01 1 (nil) + 454 22 -2.42e-01,-1.18e-01,+7.12e-02,+2.78e-01 1 (nil) +Vertex: -140 ID: 0 (X,cT)=-5.23e-07,-7.76e-06,+4.86e-05,+4.96e-05 + I: 1 231 111 -1.13e-02,-1.68e-01,+1.05e+00,+1.07e+00 2 -140 + O: 2 455 22 +4.72e-02,-1.23e-01,+8.16e-01,+8.27e-01 1 (nil) + 456 22 -5.85e-02,-4.52e-02,+2.34e-01,+2.45e-01 1 (nil) +Vertex: -141 ID: 0 (X,cT)=+3.06e-05,-6.13e-05,+1.04e-03,+1.04e-03 + I: 1 233 111 +1.15e-01,-2.30e-01,+3.89e+00,+3.90e+00 2 -141 + O: 2 457 22 +4.00e-02,+3.07e-04,+9.61e-01,+9.62e-01 1 (nil) + 458 22 +7.48e-02,-2.30e-01,+2.93e+00,+2.94e+00 1 (nil) +Vertex: -142 ID: 0 (X,cT)=-4.86e-07,+1.36e-05,+5.54e-03,+5.54e-03 + I: 1 240 111 -1.84e-03,+5.13e-02,+2.10e+01,+2.10e+01 2 -142 + O: 2 459 22 +6.53e-02,+3.07e-02,+8.88e+00,+8.88e+00 1 (nil) + 460 22 -6.72e-02,+2.07e-02,+1.21e+01,+1.21e+01 1 (nil) +Vertex: -143 ID: 0 (X,cT)=+9.00e-01,-4.13e-01,-2.42e+00,+2.63e+00 + I: 1 241 421 +6.24e+00,-2.87e+00,-1.68e+01,+1.82e+01 2 -143 + O: 2 461 -313 +3.33e+00,-1.55e+00,-7.24e+00,+8.16e+00 2 -209 + 462 111 +2.92e+00,-1.31e+00,-9.56e+00,+1.01e+01 2 -210 +Vertex: -144 ID: 0 (X,cT)=+1.11e-04,-5.90e-05,-2.87e-04,+3.15e-04 + I: 1 242 111 +4.94e-01,-2.63e-01,-1.28e+00,+1.40e+00 2 -144 + O: 2 463 22 +3.13e-01,-2.24e-01,-9.52e-01,+1.03e+00 1 (nil) + 464 22 +1.81e-01,-3.87e-02,-3.28e-01,+3.76e-01 1 (nil) +Vertex: -145 ID: 0 (X,cT)=+2.18e-05,-5.26e-06,-3.70e-05,+4.34e-05 + I: 1 244 111 +8.10e-01,-1.96e-01,-1.38e+00,+1.62e+00 2 -145 + O: 2 465 22 +6.12e-01,-2.00e-01,-1.10e+00,+1.28e+00 1 (nil) + 466 22 +1.98e-01,+3.77e-03,-2.74e-01,+3.39e-01 1 (nil) +GenVertex: -146 ID: 0 (X,cT):0 + I: 1 247 221 +3.89e-01,-5.39e-01,-8.71e-01,+1.22e+00 2 -146 + O: 3 467 -211 +1.74e-01,-1.31e-01,-4.30e-01,+5.02e-01 1 (nil) + 468 211 +5.41e-02,-2.04e-01,-3.15e-01,+4.04e-01 1 (nil) + 469 111 +1.61e-01,-2.04e-01,-1.26e-01,+3.19e-01 2 -211 +Vertex: -147 ID: 0 (X,cT)=+1.07e-04,-3.60e-05,-3.69e-04,+3.86e-04 + I: 1 249 111 +7.72e-01,-2.59e-01,-2.66e+00,+2.78e+00 2 -147 + O: 2 470 22 +2.51e-02,-3.16e-02,-2.06e-01,+2.10e-01 1 (nil) + 471 22 +7.47e-01,-2.27e-01,-2.45e+00,+2.57e+00 1 (nil) +Vertex: -148 ID: 0 (X,cT)=-8.22e+00,-2.29e+00,+1.29e+02,+1.35e+02 + I: 1 254 310 -1.08e-01,-3.01e-02,+1.70e+00,+1.77e+00 2 -148 + O: 2 472 211 +1.20e-02,+1.80e-01,+6.79e-01,+7.16e-01 1 (nil) + 473 -211 -1.20e-01,-2.10e-01,+1.02e+00,+1.05e+00 1 (nil) +Vertex: -149 ID: 0 (X,cT)=-9.20e-06,+3.86e-06,+4.76e-05,+4.89e-05 + I: 1 258 111 -2.36e-01,+9.89e-02,+1.22e+00,+1.25e+00 2 -149 + O: 2 474 22 -1.60e-01,+3.34e-03,+8.26e-01,+8.41e-01 1 (nil) + 475 22 -7.61e-02,+9.56e-02,+3.95e-01,+4.13e-01 1 (nil) +Vertex: -150 ID: 0 (X,cT)=-5.14e-04,-8.73e-05,+1.03e-02,+1.04e-02 + I: 1 260 111 -1.11e+00,-1.89e-01,+2.24e+01,+2.24e+01 2 -150 + O: 2 476 22 -9.81e-01,-1.35e-01,+2.02e+01,+2.02e+01 1 (nil) + 477 22 -1.30e-01,-5.37e-02,+2.22e+00,+2.22e+00 1 (nil) +Vertex: -151 ID: 0 (X,cT)=+1.88e-05,+4.46e-05,+6.87e-04,+6.89e-04 + I: 1 263 111 +1.08e-01,+2.55e-01,+3.93e+00,+3.94e+00 2 -151 + O: 2 478 22 +1.10e-01,+2.16e-01,+2.55e+00,+2.56e+00 1 (nil) + 479 22 -2.65e-03,+3.91e-02,+1.38e+00,+1.38e+00 1 (nil) +Vertex: -152 ID: 0 (X,cT)=-6.14e-05,-3.82e-05,+7.27e-04,+7.31e-04 + I: 1 265 111 -3.21e-01,-1.99e-01,+3.80e+00,+3.82e+00 2 -152 + O: 2 480 22 -2.34e-01,-1.54e-01,+3.28e+00,+3.29e+00 1 (nil) + 481 22 -8.72e-02,-4.50e-02,+5.19e-01,+5.28e-01 1 (nil) +Vertex: -153 ID: 0 (X,cT)=-2.19e-06,-3.00e-06,+3.58e-04,+3.58e-04 + I: 1 267 111 -1.18e-01,-1.61e-01,+1.92e+01,+1.92e+01 2 -153 + O: 2 482 22 -9.69e-02,-1.72e-01,+1.33e+01,+1.34e+01 1 (nil) + 483 22 -2.08e-02,+1.15e-02,+5.82e+00,+5.82e+00 1 (nil) +Vertex: -154 ID: 0 (X,cT)=-9.00e-04,+6.71e-04,+1.89e-01,+1.89e-01 + I: 1 273 111 -1.19e+00,+8.85e-01,+2.49e+02,+2.49e+02 2 -154 + O: 2 484 22 -5.91e-01,+4.58e-01,+1.37e+02,+1.37e+02 1 (nil) + 485 22 -5.96e-01,+4.27e-01,+1.12e+02,+1.12e+02 1 (nil) +Vertex: -155 ID: 0 (X,cT)=-5.19e-06,+2.77e-05,+9.61e-03,+9.61e-03 + I: 1 275 111 -3.94e-02,+2.10e-01,+7.29e+01,+7.29e+01 2 -155 + O: 2 486 22 -5.34e-02,+1.01e-01,+2.01e+01,+2.01e+01 1 (nil) + 487 22 +1.40e-02,+1.09e-01,+5.28e+01,+5.28e+01 1 (nil) +Vertex: -156 ID: 0 (X,cT)=-3.80e-05,+2.22e-05,+1.37e-02,+1.37e-02 + I: 1 280 111 -1.09e-01,+6.39e-02,+3.93e+01,+3.93e+01 2 -156 + O: 2 488 22 -5.83e-02,+1.46e-02,+3.27e+01,+3.27e+01 1 (nil) + 489 22 -5.08e-02,+4.93e-02,+6.60e+00,+6.60e+00 1 (nil) +Vertex: -157 ID: 0 (X,cT)=+6.48e-05,+4.92e-04,+1.80e-02,+1.80e-02 + I: 1 284 111 +1.27e-01,+9.61e-01,+3.52e+01,+3.52e+01 2 -157 + O: 2 490 22 -2.52e-02,+2.35e-01,+8.00e+00,+8.00e+00 1 (nil) + 491 22 +1.52e-01,+7.26e-01,+2.72e+01,+2.72e+01 1 (nil) +Vertex: -158 ID: 0 (X,cT)=+1.48e-04,+1.07e-04,+1.80e-03,+1.81e-03 + I: 1 285 111 +2.92e-01,+2.10e-01,+3.56e+00,+3.58e+00 2 -158 + O: 2 492 22 +2.42e-01,+1.03e-01,+2.23e+00,+2.25e+00 1 (nil) + 493 22 +5.02e-02,+1.07e-01,+1.33e+00,+1.33e+00 1 (nil) +Vertex: -159 ID: 0 (X,cT)=+2.50e-05,+3.78e-05,+5.99e-04,+6.03e-04 + I: 1 286 111 +7.22e-02,+1.09e-01,+1.73e+00,+1.74e+00 2 -159 + O: 2 494 22 +2.13e-02,+6.88e-02,+1.49e+00,+1.49e+00 1 (nil) + 495 22 +5.09e-02,+4.05e-02,+2.47e-01,+2.55e-01 1 (nil) +Vertex: -160 ID: 0 (X,cT)=+2.02e-05,+3.78e-06,+1.16e-03,+1.16e-03 + I: 1 287 111 +5.73e-02,+1.07e-02,+3.27e+00,+3.27e+00 2 -160 + O: 2 496 22 -1.28e-02,-2.31e-02,+1.49e-01,+1.51e-01 1 (nil) + 497 22 +7.01e-02,+3.38e-02,+3.12e+00,+3.12e+00 1 (nil) +Vertex: -161 ID: 0 (X,cT)=+9.91e-05,+2.78e-04,+4.67e-03,+4.68e-03 + I: 1 289 111 +4.18e-01,+1.18e+00,+1.97e+01,+1.98e+01 2 -161 + O: 2 498 22 +2.65e-01,+6.35e-01,+1.17e+01,+1.18e+01 1 (nil) + 499 22 +1.54e-01,+5.40e-01,+7.99e+00,+8.01e+00 1 (nil) +GenVertex: -162 ID: 0 (X,cT):0 + I: 1 294 221 +9.56e-01,+1.28e+00,+1.76e+01,+1.77e+01 2 -162 + O: 3 500 111 +3.73e-01,+4.04e-01,+4.84e+00,+4.87e+00 2 -212 + 501 111 +4.30e-01,+7.17e-01,+9.92e+00,+9.96e+00 2 -213 + 502 111 +1.53e-01,+1.59e-01,+2.85e+00,+2.86e+00 2 -214 +Vertex: -163 ID: 0 (X,cT)=+2.58e-04,-2.44e-04,+2.53e-03,+2.55e-03 + I: 1 296 111 +1.69e+00,-1.60e+00,+1.65e+01,+1.67e+01 2 -163 + O: 2 503 22 +1.04e+00,-1.02e+00,+1.08e+01,+1.09e+01 1 (nil) + 504 22 +6.52e-01,-5.77e-01,+5.78e+00,+5.84e+00 1 (nil) +Vertex: -164 ID: 0 (X,cT)=+2.91e+01,-1.32e+01,+2.80e+02,+2.82e+02 + I: 1 297 310 +6.37e-01,-2.90e-01,+6.13e+00,+6.19e+00 2 -164 + O: 2 505 -211 +1.68e-01,+3.96e-04,+7.88e-01,+8.18e-01 1 (nil) + 506 211 +4.69e-01,-2.90e-01,+5.34e+00,+5.37e+00 1 (nil) +Vertex: -165 ID: 0 (X,cT)=-3.01e+00,-5.05e+01,+1.82e+02,+1.91e+02 + I: 1 299 310 -5.64e-02,-9.48e-01,+3.42e+00,+3.58e+00 2 -165 + O: 2 507 211 -9.80e-03,-8.77e-01,+3.10e+00,+3.22e+00 1 (nil) + 508 -211 -4.66e-02,-7.14e-02,+3.18e-01,+3.57e-01 1 (nil) +Vertex: -166 ID: 0 (X,cT)=+5.65e-06,-7.57e-05,+2.42e-04,+2.55e-04 + I: 1 301 111 +2.32e-02,-3.11e-01,+9.92e-01,+1.05e+00 2 -166 + O: 2 509 22 -1.58e-02,-2.94e-01,+9.06e-01,+9.53e-01 1 (nil) + 510 22 +3.90e-02,-1.71e-02,+8.60e-02,+9.59e-02 1 (nil) +Vertex: -167 ID: 0 (X,cT)=-1.40e-04,-1.73e-04,+1.47e-04,+2.68e-04 + I: 1 305 111 -7.25e-01,-8.95e-01,+7.64e-01,+1.39e+00 2 -167 + O: 2 511 22 -1.23e-01,-1.25e-01,+1.74e-01,+2.47e-01 1 (nil) + 512 22 -6.01e-01,-7.71e-01,+5.90e-01,+1.14e+00 1 (nil) +Vertex: -168 ID: 0 (X,cT)=-2.82e-04,-3.80e-04,+1.23e-04,+4.92e-04 + I: 1 307 111 -7.03e-01,-9.49e-01,+3.08e-01,+1.23e+00 2 -168 + O: 2 513 22 -4.88e-01,-5.82e-01,+1.49e-01,+7.74e-01 1 (nil) + 514 22 -2.15e-01,-3.67e-01,+1.58e-01,+4.54e-01 1 (nil) +Vertex: -169 ID: 0 (X,cT)=-3.47e-04,-5.20e-04,-6.20e-04,+8.81e-04 + I: 1 311 111 -1.10e+00,-1.65e+00,-1.97e+00,+2.80e+00 2 -169 + O: 2 515 22 -1.08e+00,-1.63e+00,-1.96e+00,+2.76e+00 1 (nil) + 516 22 -2.45e-02,-2.46e-02,-1.45e-02,+3.76e-02 1 (nil) +Vertex: -170 ID: 0 (X,cT)=-3.29e-06,+1.10e-06,-2.41e-06,+4.57e-06 + I: 1 313 111 -2.55e-01,+8.51e-02,-1.87e-01,+3.54e-01 2 -170 + O: 2 517 22 -1.13e-01,-2.84e-02,-9.56e-02,+1.51e-01 1 (nil) + 518 22 -1.42e-01,+1.13e-01,-9.12e-02,+2.04e-01 1 (nil) +Vertex: -171 ID: 0 (X,cT)=-2.73e+00,+6.86e+00,-1.26e+01,+1.53e+01 + I: 1 314 310 -2.88e-01,+7.23e-01,-1.33e+00,+1.62e+00 2 -171 + O: 2 519 -211 -3.73e-01,+4.98e-01,-1.02e+00,+1.20e+00 1 (nil) + 520 211 +8.58e-02,+2.25e-01,-3.14e-01,+4.20e-01 1 (nil) +Vertex: -172 ID: 0 (X,cT)=+3.20e-04,+3.36e-05,-5.97e-04,+6.84e-04 + I: 1 318 111 +4.68e-01,+4.92e-02,-8.74e-01,+1.00e+00 2 -172 + O: 2 521 22 +1.99e-02,+1.62e-02,-1.31e-01,+1.33e-01 1 (nil) + 522 22 +4.48e-01,+3.29e-02,-7.43e-01,+8.69e-01 1 (nil) +Vertex: -173 ID: 0 (X,cT)=+1.96e-05,+4.48e-05,-3.57e-03,+3.57e-03 + I: 1 331 111 +1.15e-01,+2.64e-01,-2.11e+01,+2.11e+01 2 -173 + O: 2 523 22 +5.11e-03,+1.71e-01,-1.28e+01,+1.28e+01 1 (nil) + 524 22 +1.10e-01,+9.28e-02,-8.25e+00,+8.26e+00 1 (nil) +Vertex: -174 ID: 0 (X,cT)=+5.52e-05,+5.68e-07,-2.13e-03,+2.13e-03 + I: 1 334 111 +1.60e-01,+1.64e-03,-6.16e+00,+6.16e+00 2 -174 + O: 2 525 22 +9.75e-02,+6.03e-02,-2.60e+00,+2.61e+00 1 (nil) + 526 22 +6.22e-02,-5.86e-02,-3.55e+00,+3.56e+00 1 (nil) +Vertex: -175 ID: 0 (X,cT)=+5.38e-05,-1.78e-05,-4.71e-04,+4.74e-04 + I: 1 335 111 +3.20e-01,-1.06e-01,-2.80e+00,+2.83e+00 2 -175 + O: 2 527 22 +5.30e-02,+1.88e-02,-7.85e-01,+7.87e-01 1 (nil) + 528 22 +2.67e-01,-1.25e-01,-2.02e+00,+2.04e+00 1 (nil) +Vertex: -176 ID: 0 (X,cT)=+2.93e-05,+8.83e-06,-3.69e-04,+3.70e-04 + I: 1 336 111 +2.91e-01,+8.79e-02,-3.67e+00,+3.68e+00 2 -176 + O: 2 529 22 +2.68e-01,+3.23e-02,-2.79e+00,+2.81e+00 1 (nil) + 530 22 +2.34e-02,+5.56e-02,-8.74e-01,+8.76e-01 1 (nil) +Vertex: -177 ID: 0 (X,cT)=+1.18e-05,+1.50e-06,-2.95e-04,+2.98e-04 + I: 1 337 111 +4.06e-02,+5.17e-03,-1.02e+00,+1.02e+00 2 -177 + O: 2 531 22 -1.54e-02,-5.04e-02,-2.38e-01,+2.44e-01 1 (nil) + 532 22 +5.60e-02,+5.56e-02,-7.77e-01,+7.81e-01 1 (nil) +Vertex: -178 ID: 0 (X,cT)=+3.27e-04,+1.05e-03,-1.22e-02,+1.23e-02 + I: 1 339 111 +5.88e-01,+1.89e+00,-2.20e+01,+2.20e+01 2 -178 + O: 2 533 22 +9.44e-02,+2.34e-01,-3.28e+00,+3.29e+00 1 (nil) + 534 22 +4.93e-01,+1.65e+00,-1.87e+01,+1.88e+01 1 (nil) +Vertex: -179 ID: 0 (X,cT)=+1.73e-05,+8.31e-04,-1.74e-02,+1.74e-02 + I: 1 347 111 +1.51e-02,+7.22e-01,-1.51e+01,+1.51e+01 2 -179 + O: 2 535 22 -3.85e-02,+1.69e-01,-2.84e+00,+2.85e+00 1 (nil) + 536 22 +5.35e-02,+5.53e-01,-1.22e+01,+1.23e+01 1 (nil) +Vertex: -180 ID: 0 (X,cT)=+1.08e-05,+1.04e-05,-2.06e-04,+2.08e-04 + I: 1 349 111 +5.56e-02,+5.31e-02,-1.06e+00,+1.07e+00 2 -180 + O: 2 537 22 -2.80e-02,+6.26e-02,-5.73e-01,+5.77e-01 1 (nil) + 538 22 +8.36e-02,-9.58e-03,-4.84e-01,+4.91e-01 1 (nil) +GenVertex: -181 ID: 0 (X,cT):0 + I: 1 352 -311 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -181 + O: 1 539 310 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -215 +Vertex: -182 ID: 0 (X,cT)=+8.78e-05,+1.31e-05,-1.01e-03,+1.01e-03 + I: 1 353 111 +9.21e-01,+1.38e-01,-1.06e+01,+1.06e+01 2 -182 + O: 2 540 22 +2.76e-01,+8.46e-03,-3.75e+00,+3.76e+00 1 (nil) + 541 22 +6.45e-01,+1.29e-01,-6.82e+00,+6.85e+00 1 (nil) +Vertex: -183 ID: 0 (X,cT)=-2.61e-05,-7.86e-05,-8.03e-03,+8.03e-03 + I: 1 355 111 -1.59e-01,-4.77e-01,-4.88e+01,+4.88e+01 2 -183 + O: 2 542 22 -7.47e-03,+4.92e-03,-2.71e-01,+2.71e-01 1 (nil) + 543 22 -1.51e-01,-4.82e-01,-4.85e+01,+4.85e+01 1 (nil) +Vertex: -184 ID: 0 (X,cT)=+3.04e-05,-1.20e-04,-6.56e-03,+6.56e-03 + I: 1 359 111 +6.89e-02,-2.71e-01,-1.49e+01,+1.49e+01 2 -184 + O: 2 544 22 +1.36e-02,-6.16e-02,-1.31e+00,+1.31e+00 1 (nil) + 545 22 +5.54e-02,-2.10e-01,-1.35e+01,+1.35e+01 1 (nil) +Vertex: -185 ID: 0 (X,cT)=-3.11e-05,-4.88e-05,-3.97e-03,+3.97e-03 + I: 1 362 111 -2.65e-01,-4.16e-01,-3.38e+01,+3.38e+01 2 -185 + O: 2 546 22 -2.39e-02,-6.37e-02,-2.40e+00,+2.40e+00 1 (nil) + 547 22 -2.41e-01,-3.52e-01,-3.14e+01,+3.14e+01 1 (nil) +Vertex: -186 ID: 0 (X,cT)=+4.99e-06,-7.81e-06,-4.87e-04,+4.87e-04 + I: 1 364 111 +7.55e-02,-1.18e-01,-7.35e+00,+7.36e+00 2 -186 + O: 3 549 11 +3.80e-02,-5.45e-02,-1.98e+00,+1.99e+00 1 (nil) + 548 22 -7.69e-03,-3.50e-03,-3.43e+00,+3.43e+00 1 (nil) + 550 -11 +4.52e-02,-6.00e-02,-1.94e+00,+1.94e+00 1 (nil) +Vertex: -187 ID: 0 (X,cT)=-3.39e-06,-5.26e-06,-1.10e-03,+1.10e-03 + I: 1 372 111 -6.13e-02,-9.53e-02,-1.99e+01,+1.99e+01 2 -187 + O: 2 551 22 +3.73e-02,+2.39e-03,-4.50e+00,+4.50e+00 1 (nil) + 552 22 -9.86e-02,-9.77e-02,-1.54e+01,+1.54e+01 1 (nil) +Vertex: -188 ID: 0 (X,cT)=-4.64e-06,+5.62e-06,+2.46e-05,+2.68e-05 + I: 1 379 111 -7.99e-02,+9.68e-02,+4.23e-01,+4.62e-01 2 -188 + O: 2 553 22 -6.55e-03,+1.04e-01,+1.84e-01,+2.11e-01 1 (nil) + 554 22 -7.33e-02,-6.90e-03,+2.39e-01,+2.50e-01 1 (nil) +Vertex: -189 ID: 0 (X,cT)=-4.97e-05,+1.48e-05,+2.90e-04,+2.95e-04 + I: 1 381 111 -3.23e-01,+9.61e-02,+1.88e+00,+1.91e+00 2 -189 + O: 2 555 22 -1.22e-01,-2.90e-02,+7.14e-01,+7.25e-01 1 (nil) + 556 22 -2.00e-01,+1.25e-01,+1.16e+00,+1.19e+00 1 (nil) +Vertex: -190 ID: 0 (X,cT)=+4.11e-06,-1.39e-06,+1.15e-04,+1.15e-04 + I: 1 386 111 +1.99e-01,-6.72e-02,+5.57e+00,+5.57e+00 2 -190 + O: 2 557 22 +9.39e-02,+3.48e-02,+1.85e+00,+1.85e+00 1 (nil) + 558 22 +1.05e-01,-1.02e-01,+3.72e+00,+3.72e+00 1 (nil) +GenVertex: -191 ID: 0 (X,cT):0 + I: 1 388 113 +8.30e-02,-2.83e-01,+1.61e+01,+1.61e+01 2 -191 + O: 2 559 211 +2.80e-01,-4.59e-01,+9.99e+00,+1.00e+01 1 (nil) + 560 -211 -1.97e-01,+1.77e-01,+6.12e+00,+6.13e+00 1 (nil) +Vertex: -192 ID: 0 (X,cT)=-3.81e+00,+2.43e+00,-3.67e+01,+3.70e+01 + I: 1 397 323 -2.16e+01,+1.35e+01,-2.09e+02,+2.11e+02 2 -192 + O: 2 561 311 -1.87e+01,+1.16e+01,-1.82e+02,+1.84e+02 2 -216 + 562 211 -2.87e+00,+1.93e+00,-2.71e+01,+2.73e+01 1 (nil) +GenVertex: -193 ID: 0 (X,cT):0 + I: 1 399 -311 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -193 + O: 1 563 310 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -217 +Vertex: -194 ID: 0 (X,cT)=-3.15e-04,+1.64e-04,-3.28e-03,+3.30e-03 + I: 1 400 111 -1.24e+00,+6.47e-01,-1.29e+01,+1.30e+01 2 -194 + O: 2 564 22 -2.94e-01,+1.77e-01,-3.70e+00,+3.71e+00 1 (nil) + 565 22 -9.48e-01,+4.69e-01,-9.23e+00,+9.29e+00 1 (nil) +GenVertex: -195 ID: 0 (X,cT):0 + I: 1 401 311 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -195 + O: 1 566 310 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -218 +Vertex: -196 ID: 0 (X,cT)=-6.57e-06,+3.84e-06,-3.95e-05,+4.09e-05 + I: 1 404 111 -1.17e-01,+6.82e-02,-7.01e-01,+7.26e-01 2 -196 + O: 2 567 22 +1.75e-02,+4.41e-02,-2.82e-01,+2.86e-01 1 (nil) + 568 22 -1.34e-01,+2.41e-02,-4.19e-01,+4.40e-01 1 (nil) +Vertex: -197 ID: 0 (X,cT)=-4.47e-05,-7.78e-05,+3.13e-05,+9.80e-05 + I: 1 410 111 -2.51e-01,-4.37e-01,+1.76e-01,+5.51e-01 2 -197 + O: 2 569 22 -1.16e-01,-2.11e-01,+1.32e-02,+2.41e-01 1 (nil) + 570 22 -1.36e-01,-2.27e-01,+1.63e-01,+3.10e-01 1 (nil) +Vertex: -198 ID: 0 (X,cT)=-4.20e-06,+2.71e-05,+4.10e-05,+4.99e-05 + I: 1 412 111 -7.90e-02,+5.11e-01,+7.72e-01,+9.39e-01 2 -198 + O: 2 571 22 -9.13e-02,+4.77e-01,+7.59e-01,+9.01e-01 1 (nil) + 572 22 +1.23e-02,+3.33e-02,+1.37e-02,+3.81e-02 1 (nil) +Vertex: -199 ID: 0 (X,cT)=+2.92e-05,+4.15e-05,-5.58e-06,+5.45e-05 + I: 1 416 111 +2.06e-01,+2.93e-01,-3.94e-02,+3.85e-01 2 -199 + O: 2 573 22 +2.03e-01,+2.67e-01,-7.22e-02,+3.43e-01 1 (nil) + 574 22 +3.43e-03,+2.63e-02,+3.28e-02,+4.22e-02 1 (nil) +Vertex: -200 ID: 0 (X,cT)=-2.16e-05,+1.04e-05,+8.87e-06,+2.79e-05 + I: 1 420 111 -2.59e-01,+1.24e-01,+1.06e-01,+3.34e-01 2 -200 + O: 2 575 22 -3.89e-02,+8.36e-02,+4.53e-02,+1.03e-01 1 (nil) + 576 22 -2.20e-01,+4.05e-02,+6.09e-02,+2.32e-01 1 (nil) +Vertex: -201 ID: 0 (X,cT)=-5.59e-05,+5.21e-05,+8.09e-04,+8.13e-04 + I: 1 422 111 -3.29e-01,+3.07e-01,+4.76e+00,+4.78e+00 2 -201 + O: 2 577 22 -2.64e-01,+1.59e-01,+3.14e+00,+3.16e+00 1 (nil) + 578 22 -6.51e-02,+1.48e-01,+1.62e+00,+1.62e+00 1 (nil) +Vertex: -202 ID: 0 (X,cT)=+2.56e-05,-2.90e-06,+8.11e-06,+2.82e-05 + I: 1 427 111 +4.14e-01,-4.69e-02,+1.31e-01,+4.58e-01 2 -202 + O: 2 579 22 +4.15e-01,-2.52e-02,+1.20e-01,+4.33e-01 1 (nil) + 580 22 -9.68e-04,-2.17e-02,+1.13e-02,+2.45e-02 1 (nil) +Vertex: -203 ID: 0 (X,cT)=-9.79e-05,+5.68e-05,+6.63e-05,+1.32e-04 + I: 1 431 111 -7.34e-01,+4.26e-01,+4.97e-01,+9.93e-01 2 -203 + O: 2 581 22 -3.41e-01,+2.71e-01,+2.25e-01,+4.90e-01 1 (nil) + 582 22 -3.94e-01,+1.56e-01,+2.73e-01,+5.03e-01 1 (nil) +Vertex: -204 ID: 0 (X,cT)=+1.01e-05,-5.45e-05,-6.08e-06,+5.98e-05 + I: 1 434 111 +6.29e-02,-3.41e-01,-3.80e-02,+3.74e-01 2 -204 + O: 2 583 22 +5.58e-02,-8.25e-02,+3.46e-02,+1.05e-01 1 (nil) + 584 22 +7.11e-03,-2.58e-01,-7.26e-02,+2.69e-01 1 (nil) +Vertex: -205 ID: 0 (X,cT)=-3.75e-05,-4.46e-06,+3.21e-06,+5.29e-05 + I: 1 437 111 -1.37e-01,-1.63e-02,+1.18e-02,+1.94e-01 2 -205 + O: 2 585 22 -9.46e-02,+4.14e-02,+4.73e-02,+1.14e-01 1 (nil) + 586 22 -4.29e-02,-5.77e-02,-3.55e-02,+8.02e-02 1 (nil) +Vertex: -206 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 438 10323 +8.73e-01,-6.30e-01,-7.46e+00,+7.64e+00 2 -206 + O: 2 587 321 +3.86e-01,-2.73e-01,-2.92e+00,+3.00e+00 1 (nil) + 588 223 +4.87e-01,-3.58e-01,-4.53e+00,+4.64e+00 2 -219 +Vertex: -207 ID: 0 (X,cT)=+6.34e+00,+1.12e+01,-3.83e+01,+4.12e+01 + I: 1 442 310 +3.84e-01,+6.75e-01,-2.32e+00,+2.49e+00 2 -207 + O: 2 589 -211 +1.48e-01,+5.93e-01,-1.74e+00,+1.85e+00 1 (nil) + 590 211 +2.36e-01,+8.15e-02,-5.72e-01,+6.40e-01 1 (nil) +Vertex: -208 ID: 0 (X,cT)=+6.83e+00,+2.32e+01,-1.43e+02,+1.45e+02 + I: 1 443 310 +4.92e-01,+1.67e+00,-1.03e+01,+1.05e+01 2 -208 + O: 2 591 211 +2.44e-01,+1.36e+00,-7.90e+00,+8.02e+00 1 (nil) + 592 -211 +2.48e-01,+3.05e-01,-2.40e+00,+2.43e+00 1 (nil) +Vertex: -209 ID: 0 (X,cT)=+9.00e-01,-4.13e-01,-2.42e+00,+2.63e+00 + I: 1 461 -313 +3.33e+00,-1.55e+00,-7.24e+00,+8.16e+00 2 -209 + O: 2 593 -321 +2.28e+00,-1.05e+00,-5.51e+00,+6.07e+00 1 (nil) + 594 211 +1.05e+00,-5.07e-01,-1.73e+00,+2.09e+00 1 (nil) +Vertex: -210 ID: 0 (X,cT)=+9.00e-01,-4.13e-01,-2.42e+00,+2.63e+00 + I: 1 462 111 +2.92e+00,-1.31e+00,-9.56e+00,+1.01e+01 2 -210 + O: 2 595 22 +2.61e+00,-1.13e+00,-8.44e+00,+8.90e+00 1 (nil) + 596 22 +3.12e-01,-1.85e-01,-1.12e+00,+1.18e+00 1 (nil) +Vertex: -211 ID: 0 (X,cT)=+1.16e-05,-1.47e-05,-9.04e-06,+2.29e-05 + I: 1 469 111 +1.61e-01,-2.04e-01,-1.26e-01,+3.19e-01 2 -211 + O: 2 597 22 +1.53e-02,-6.02e-02,-9.24e-02,+1.11e-01 1 (nil) + 598 22 +1.46e-01,-1.44e-01,-3.35e-02,+2.08e-01 1 (nil) +Vertex: -212 ID: 0 (X,cT)=+4.54e-05,+4.92e-05,+5.89e-04,+5.93e-04 + I: 1 500 111 +3.73e-01,+4.04e-01,+4.84e+00,+4.87e+00 2 -212 + O: 2 599 22 +6.24e-02,+9.07e-02,+5.92e-01,+6.02e-01 1 (nil) + 600 22 +3.10e-01,+3.13e-01,+4.25e+00,+4.27e+00 1 (nil) +Vertex: -213 ID: 0 (X,cT)=+1.06e-05,+1.77e-05,+2.45e-04,+2.46e-04 + I: 1 501 111 +4.30e-01,+7.17e-01,+9.92e+00,+9.96e+00 2 -213 + O: 2 601 22 +2.70e-01,+3.42e-01,+4.68e+00,+4.70e+00 1 (nil) + 602 22 +1.60e-01,+3.75e-01,+5.24e+00,+5.26e+00 1 (nil) +Vertex: -214 ID: 0 (X,cT)=+3.42e-05,+3.55e-05,+6.36e-04,+6.39e-04 + I: 1 502 111 +1.53e-01,+1.59e-01,+2.85e+00,+2.86e+00 2 -214 + O: 2 603 22 +1.66e-01,+9.32e-02,+2.21e+00,+2.21e+00 1 (nil) + 604 22 -1.33e-02,+6.57e-02,+6.40e-01,+6.43e-01 1 (nil) +Vertex: -215 ID: 0 (X,cT)=+2.34e+01,+2.39e+01,-3.53e+02,+3.55e+02 + I: 1 539 310 +4.98e-01,+5.10e-01,-7.52e+00,+7.57e+00 2 -215 + O: 2 605 -211 -2.61e-02,+1.43e-01,-1.27e+00,+1.29e+00 1 (nil) + 606 211 +5.24e-01,+3.67e-01,-6.25e+00,+6.28e+00 1 (nil) +Vertex: -216 ID: 0 (X,cT)=-3.81e+00,+2.43e+00,-3.67e+01,+3.70e+01 + I: 1 561 311 -1.87e+01,+1.16e+01,-1.82e+02,+1.84e+02 2 -216 + O: 1 607 130 -1.87e+01,+1.16e+01,-1.82e+02,+1.84e+02 1 (nil) +Vertex: -217 ID: 0 (X,cT)=-8.57e+01,+5.84e+01,-1.21e+03,+1.22e+03 + I: 1 563 310 -4.47e-01,+3.05e-01,-6.33e+00,+6.37e+00 2 -217 + O: 2 608 111 -3.60e-01,+3.29e-01,-3.33e+00,+3.37e+00 2 -220 + 609 111 -8.72e-02,-2.40e-02,-2.99e+00,+3.00e+00 2 -221 +Vertex: -218 ID: 0 (X,cT)=-1.70e+00,+1.75e+00,-2.03e+01,+2.05e+01 + I: 1 566 310 -9.33e-01,+9.63e-01,-1.12e+01,+1.13e+01 2 -218 + O: 2 610 111 -1.61e-01,+2.25e-01,-1.49e+00,+1.52e+00 2 -222 + 611 111 -7.72e-01,+7.38e-01,-9.69e+00,+9.75e+00 2 -223 +Vertex: -219 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 588 223 +4.87e-01,-3.58e-01,-4.53e+00,+4.64e+00 2 -219 + O: 3 612 -211 +3.21e-01,-2.23e-01,-1.77e+00,+1.82e+00 1 (nil) + 613 211 +1.03e-01,-2.97e-01,-2.00e+00,+2.03e+00 1 (nil) + 614 111 +6.30e-02,+1.63e-01,-7.63e-01,+7.94e-01 2 -224 +Vertex: -220 ID: 0 (X,cT)=-8.57e+01,+5.84e+01,-1.21e+03,+1.22e+03 + I: 1 608 111 -3.60e-01,+3.29e-01,-3.33e+00,+3.37e+00 2 -220 + O: 2 615 22 -3.26e-01,+2.76e-01,-3.12e+00,+3.15e+00 1 (nil) + 616 22 -3.41e-02,+5.33e-02,-2.15e-01,+2.24e-01 1 (nil) +Vertex: -221 ID: 0 (X,cT)=-8.57e+01,+5.84e+01,-1.21e+03,+1.22e+03 + I: 1 609 111 -8.72e-02,-2.40e-02,-2.99e+00,+3.00e+00 2 -221 + O: 2 617 22 -1.01e-01,+2.75e-02,-2.29e+00,+2.30e+00 1 (nil) + 618 22 +1.37e-02,-5.15e-02,-7.01e-01,+7.03e-01 1 (nil) +Vertex: -222 ID: 0 (X,cT)=-1.70e+00,+1.75e+00,-2.03e+01,+2.05e+01 + I: 1 610 111 -1.61e-01,+2.25e-01,-1.49e+00,+1.52e+00 2 -222 + O: 2 619 22 -7.30e-02,+2.04e-01,-1.01e+00,+1.03e+00 1 (nil) + 620 22 -8.76e-02,+2.04e-02,-4.77e-01,+4.85e-01 1 (nil) +Vertex: -223 ID: 0 (X,cT)=-1.70e+00,+1.75e+00,-2.03e+01,+2.05e+01 + I: 1 611 111 -7.72e-01,+7.38e-01,-9.69e+00,+9.75e+00 2 -223 + O: 2 621 22 -6.72e-01,+5.71e-01,-7.86e+00,+7.91e+00 1 (nil) + 622 22 -1.00e-01,+1.67e-01,-1.82e+00,+1.83e+00 1 (nil) +Vertex: -224 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 + I: 1 614 111 +6.30e-02,+1.63e-01,-7.63e-01,+7.94e-01 2 -224 + O: 2 623 22 -8.72e-03,-2.00e-02,-1.18e-01,+1.20e-01 1 (nil) + 624 22 +7.17e-02,+1.83e-01,-6.45e-01,+6.74e-01 1 (nil) +________________________________________________________________________________ + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=12) +E1 : pi+ : pT=3.46 : TOF=26.6 : x=(-0.819,0.587,-7.9) +E0 : e+ : pT=1.19 : TOF=26.6 : x=(0.761,-0.75,7.9) +E0 : e- : pT=0.265 : TOF=26.6 : x=(0.76,-0.748,7.9) +E0 : pi- : pT=0.171 : TOF=26.9 : x=(0.912,0.794,7.9) +E0 : pi+ : pT=0.414 : TOF=26.7 : x=(0.944,0.786,7.9) +E1 : pi- : pT=2.42 : TOF=26.6 : x=(-0.884,0.476,-7.9) +E1 : mu- : pT=1.76 : TOF=26.6 : x=(-0.887,0.569,-7.9) +E1 : e- : pT=0.000515 : TOF=29.9 : x=(1.92,0.339,-7.9) +E1 : pi+ : pT=0.359 : TOF=27 : x=(-0.0642,0.998,-8.03) +E0 : pi+ : pT=0.082 : TOF=27.4 : x=(0.362,-1.03,7.9) +E0 : e- : pT=0.00165 : TOF=29.1 : x=(-0.412,-1.68,7.9) +E0 : pi- : pT=0.259 : TOF=26.7 : x=(-0.2,1.05,7.9) + +________________________________________________________________________________ +GenEvent: #3 ID=20 SignalProcessGenVertex Barcode: 0 + Current Memory Usage: 1 events, 102 vertices, 280 particles. + Entries this event: 102 vertices, 280 particles. + RndmState(0)= + Wgts(0)= + EventScale -1 GeV alphaQCD=-1 alphaQED=-1 + GenParticle Legend + Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx +________________________________________________________________________________ +GenVertex: -1 ID: 0 (X,cT):0 + I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 + O: 3 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 + 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 + 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 +GenVertex: -2 ID: 0 (X,cT):0 + I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 + O: 2 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 + 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 +GenVertex: -3 ID: 0 (X,cT):0 + I: 1 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 + O: 4 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 + 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 + 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 + 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 +GenVertex: -4 ID: 0 (X,cT):0 + I: 1 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 + O: 7 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 + 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 +GenVertex: -5 ID: 0 (X,cT):0 + I: 2 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 + 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 + O: 2 7 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 3 -6 + 8 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 3 -7 +GenVertex: -6 ID: 0 (X,cT):0 + I: 1 7 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 3 -6 + O: 1 9 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 1 (nil) +GenVertex: -7 ID: 0 (X,cT):0 + I: 1 8 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 3 -7 + O: 1 10 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 2 -8 +GenVertex: -8 ID: 0 (X,cT):0 + I: 1 10 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 2 -8 + O: 2 11 13 +1.17e+01,+3.45e+01,-2.85e+02,+2.87e+02 1 (nil) + 12 -14 -9.19e+00,-3.92e+01,-1.68e+02,+1.73e+02 1 (nil) +GenVertex: -9 ID: 0 (X,cT):0 + I: 2 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 + 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 + O: 1 35 92 -2.00e+00,+7.56e-01,+6.53e+03,+6.54e+03 2 -10 +GenVertex: -10 ID: 0 (X,cT):0 + I: 1 35 92 -2.00e+00,+7.56e-01,+6.53e+03,+6.54e+03 2 -10 + O: 9 36 321 -2.73e-01,+1.76e-01,+9.69e-01,+1.13e+00 1 (nil) + 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 + 38 -321 +5.75e-01,-1.63e-01,+3.07e+00,+3.17e+00 1 (nil) + 39 323 -4.93e-01,+1.18e-01,+1.14e+01,+1.14e+01 2 -18 + 40 333 +4.67e-02,-1.10e-02,+6.10e+01,+6.10e+01 2 -19 + 41 -313 +6.61e-02,+2.00e-01,+1.02e+02,+1.02e+02 2 -20 + 42 -211 +6.62e-01,+2.34e-03,+1.91e+01,+1.92e+01 1 (nil) + 43 213 -1.13e+00,+2.68e-01,+8.99e+02,+8.99e+02 2 -21 + 44 2112 -3.44e-01,+2.18e-02,+5.44e+03,+5.44e+03 1 (nil) +GenVertex: -11 ID: 0 (X,cT):0 + I:15 20 21 +2.14e+00,-4.17e+00,-7.24e+00,+8.62e+00 2 -11 + 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 + 19 21 -2.14e+00,+4.17e+00,-2.51e+00,+5.32e+00 2 -11 + 21 21 +2.68e+00,-1.72e+00,-3.07e+01,+3.09e+01 2 -11 + 22 21 -2.68e+00,+1.72e+00,-1.05e+02,+1.05e+02 2 -11 + 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 + 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 + 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 + 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 + 18 21 +9.34e-01,+2.91e+00,+1.97e+01,+2.00e+01 2 -11 + O: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 +GenVertex: -12 ID: 0 (X,cT):0 + I: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 + O:44 63 221 +1.94e-01,-2.74e-01,-2.66e-01,+6.95e-01 2 -35 + 64 -213 +2.31e-01,+2.74e-01,-1.31e+00,+1.58e+00 2 -36 + 79 -2112 -1.86e+00,+2.64e-01,-6.69e+01,+6.69e+01 1 (nil) + 80 -211 -4.20e-01,-6.99e-02,-4.46e+01,+4.47e+01 1 (nil) + 81 211 -1.23e+00,+5.35e-01,-3.48e+01,+3.49e+01 1 (nil) + 61 -211 -1.05e+00,+1.11e+00,-1.21e-01,+1.54e+00 1 (nil) + 62 213 -9.08e-02,+5.82e-01,-1.54e+00,+1.76e+00 2 -34 + 46 211 +1.39e+00,-8.14e-01,+3.12e+01,+3.13e+01 1 (nil) + 73 111 -6.69e-01,+1.78e-01,-1.87e+01,+1.87e+01 2 -41 + 74 -213 -3.45e-01,-1.71e-01,-1.77e+01,+1.77e+01 2 -42 + 75 2212 -3.93e-01,+8.27e-02,-3.98e+01,+3.98e+01 1 (nil) + 65 213 -4.52e-01,+2.86e-01,-1.23e+00,+1.57e+00 2 -37 + 66 2114 +9.53e-01,-6.69e-01,-3.09e+00,+3.53e+00 2 -38 + 67 211 -1.36e-01,-6.50e-01,-8.86e-01,+1.12e+00 1 (nil) + 68 -2212 +8.49e-01,-2.09e+00,-5.29e+00,+5.82e+00 1 (nil) + 69 -211 +1.20e-01,+2.39e-01,-1.06e+00,+1.10e+00 1 (nil) + 47 113 +6.88e-02,-1.41e-01,+2.65e+01,+2.66e+01 2 -22 + 87 213 +3.40e-01,+1.94e-01,-1.02e+03,+1.02e+03 2 -48 + 76 -2212 -6.65e-01,+6.91e-02,-2.61e+01,+2.61e+01 1 (nil) + 77 3224 -4.07e-01,-1.66e+00,-3.45e+01,+3.46e+01 2 -43 + 78 311 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 2 -44 + 58 -321 +1.93e-01,+1.97e-01,+6.13e+00,+6.16e+00 1 (nil) + 59 223 -2.63e-01,+7.90e-01,+6.47e-01,+1.31e+00 2 -32 + 60 213 +1.35e-01,+1.08e+00,+5.74e-01,+1.37e+00 2 -33 + 89 223 +1.23e+00,+3.33e-01,-2.87e+03,+2.87e+03 2 -50 + 49 113 +6.00e-01,-2.67e-01,+2.22e+00,+2.44e+00 2 -23 + 51 -313 +1.43e-02,+4.68e-01,-3.88e-01,+1.12e+00 2 -25 + 48 -211 -3.37e-01,-1.68e-01,+9.43e+00,+9.44e+00 1 (nil) + 88 2214 +5.67e-01,+9.88e-02,-8.80e+02,+8.80e+02 2 -49 + 82 311 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -45 + 83 -323 -5.63e-01,-7.34e-02,-1.48e+02,+1.48e+02 2 -46 + 84 211 -1.34e-01,-9.12e-02,-7.11e+00,+7.11e+00 1 (nil) + 50 323 -3.07e-01,-6.12e-02,-1.42e-02,+9.76e-01 2 -24 + 70 323 +1.48e+00,-9.63e-01,-1.55e+01,+1.56e+01 2 -39 + 71 -321 -2.78e-01,+3.30e-01,-8.84e+00,+8.87e+00 1 (nil) + 72 213 +4.81e-01,-1.41e-01,-1.37e+01,+1.37e+01 2 -40 + 52 111 +8.08e-02,-1.35e-02,-7.15e-01,+7.33e-01 2 -26 + 53 113 -2.30e-01,+1.48e-01,-1.62e+00,+1.84e+00 2 -27 + 54 223 +3.60e-01,+7.58e-01,+8.72e-01,+1.44e+00 2 -28 + 55 113 +1.21e-01,+1.16e-01,+9.83e-01,+1.26e+00 2 -29 + 56 -213 +8.69e-02,+1.01e+00,+7.42e+00,+7.52e+00 2 -30 + 57 323 +1.76e-01,+4.23e-01,+1.93e+00,+2.16e+00 2 -31 + 85 113 +1.80e-02,+8.34e-01,-6.47e+02,+6.47e+02 2 -47 + 86 -211 +2.67e-01,-2.79e-01,-5.20e+02,+5.20e+02 1 (nil) +GenVertex: -13 ID: 0 (X,cT):0 + I: 3 31 21 -9.34e-01,-2.91e+00,+1.02e+02,+1.02e+02 2 -13 + 32 21 +3.00e+00,-2.35e+00,+2.97e+01,+3.00e+01 2 -13 + 30 21 -3.00e+00,+2.35e+00,+2.36e+02,+2.36e+02 2 -13 + O: 1 90 92 -9.34e-01,-2.91e+00,+3.67e+02,+3.67e+02 2 -14 +GenVertex: -14 ID: 0 (X,cT):0 + I: 1 90 92 -9.34e-01,-2.91e+00,+3.67e+02,+3.67e+02 2 -14 + O:11 99 -2112 +1.14e+00,-1.49e+00,+2.49e+01,+2.50e+01 1 (nil) + 91 211 -8.24e-01,-1.45e-02,+1.59e+01,+1.59e+01 1 (nil) + 100 2112 +5.39e-01,-8.02e-01,+1.40e+01,+1.41e+01 1 (nil) + 101 223 +1.06e+00,-1.22e-01,+2.53e+01,+2.53e+01 2 -56 + 94 313 -3.62e-01,+5.42e-01,+5.03e+01,+5.03e+01 2 -52 + 93 -311 -2.08e-02,-2.14e-01,+2.11e+01,+2.11e+01 2 -51 + 92 -211 -1.30e+00,+8.92e-01,+8.32e+01,+8.33e+01 1 (nil) + 96 113 -1.28e-01,-1.56e-01,+3.41e+01,+3.41e+01 2 -54 + 95 213 -8.94e-01,-3.47e-01,+5.52e+01,+5.52e+01 2 -53 + 98 111 +4.23e-01,-2.45e-01,+3.08e+00,+3.12e+00 2 -55 + 97 -211 -5.72e-01,-9.49e-01,+3.99e+01,+3.99e+01 1 (nil) +GenVertex: -15 ID: 0 (X,cT):0 + I: 2 34 21 -1.02e+00,+2.88e+00,-7.45e+00,+8.05e+00 2 -15 + 33 21 +1.02e+00,-2.88e+00,-9.85e+00,+1.03e+01 2 -15 + O: 1 102 92 +0.00e+00,+0.00e+00,-1.73e+01,+1.84e+01 2 -16 +GenVertex: -16 ID: 0 (X,cT):0 + I: 1 102 92 +0.00e+00,+0.00e+00,-1.73e+01,+1.84e+01 2 -16 + O: 7 107 -211 -2.88e-01,+5.23e-01,-3.10e+00,+3.16e+00 1 (nil) + 108 223 +2.53e-01,-1.38e-01,-2.52e+00,+2.66e+00 2 -61 + 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 + 106 111 +1.94e-01,-8.30e-01,-1.78e+00,+1.98e+00 2 -60 + 103 113 +2.54e-01,-1.28e-01,-3.69e+00,+3.77e+00 2 -57 + 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 + 109 113 -5.13e-01,+2.04e-01,-2.60e+00,+2.77e+00 2 -62 +GenVertex: -17 ID: 0 (X,cT):0 + I: 1 37 333 -1.11e+00,+1.44e-01,+2.44e+00,+2.87e+00 2 -17 + O: 2 110 321 -5.35e-01,-4.15e-03,+1.39e+00,+1.57e+00 1 (nil) + 111 -321 -5.74e-01,+1.48e-01,+1.05e+00,+1.30e+00 1 (nil) +GenVertex: -18 ID: 0 (X,cT):0 + I: 1 39 323 -4.93e-01,+1.18e-01,+1.14e+01,+1.14e+01 2 -18 + O: 2 112 311 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -63 + 113 211 -3.29e-01,+3.86e-02,+3.09e+00,+3.12e+00 1 (nil) +GenVertex: -19 ID: 0 (X,cT):0 + I: 1 40 333 +4.67e-02,-1.10e-02,+6.10e+01,+6.10e+01 2 -19 + O: 2 114 321 -8.91e-02,+3.84e-02,+3.21e+01,+3.21e+01 1 (nil) + 115 -321 +1.36e-01,-4.94e-02,+2.89e+01,+2.89e+01 1 (nil) +GenVertex: -20 ID: 0 (X,cT):0 + I: 1 41 -313 +6.61e-02,+2.00e-01,+1.02e+02,+1.02e+02 2 -20 + O: 2 116 -311 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -64 + 117 111 +2.74e-01,-8.21e-02,+5.65e+01,+5.65e+01 2 -65 +GenVertex: -21 ID: 0 (X,cT):0 + I: 1 43 213 -1.13e+00,+2.68e-01,+8.99e+02,+8.99e+02 2 -21 + O: 2 119 111 -1.00e-01,-1.65e-01,+2.61e+02,+2.61e+02 2 -66 + 118 211 -1.03e+00,+4.32e-01,+6.38e+02,+6.38e+02 1 (nil) +GenVertex: -22 ID: 0 (X,cT):0 + I: 1 47 113 +6.88e-02,-1.41e-01,+2.65e+01,+2.66e+01 2 -22 + O: 2 120 -211 +2.55e-01,-1.00e-02,+2.33e+01,+2.33e+01 1 (nil) + 121 211 -1.86e-01,-1.31e-01,+3.23e+00,+3.24e+00 1 (nil) +GenVertex: -23 ID: 0 (X,cT):0 + I: 1 49 113 +6.00e-01,-2.67e-01,+2.22e+00,+2.44e+00 2 -23 + O: 2 122 211 +7.62e-01,-2.15e-01,+1.64e+00,+1.83e+00 1 (nil) + 123 -211 -1.62e-01,-5.17e-02,+5.74e-01,+6.14e-01 1 (nil) +GenVertex: -24 ID: 0 (X,cT):0 + I: 1 50 323 -3.07e-01,-6.12e-02,-1.42e-02,+9.76e-01 2 -24 + O: 2 124 311 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -67 + 125 211 +1.40e-01,+1.66e-01,+6.23e-02,+2.65e-01 1 (nil) +GenVertex: -25 ID: 0 (X,cT):0 + I: 1 51 -313 +1.43e-02,+4.68e-01,-3.88e-01,+1.12e+00 2 -25 + O: 2 126 -321 -2.60e-02,+2.92e-01,+9.54e-02,+5.82e-01 1 (nil) + 127 211 +4.03e-02,+1.76e-01,-4.83e-01,+5.35e-01 1 (nil) +Vertex: -26 ID: 0 (X,cT)=+4.64e-05,-7.72e-06,-4.10e-04,+4.20e-04 + I: 1 52 111 +8.08e-02,-1.35e-02,-7.15e-01,+7.33e-01 2 -26 + O: 2 129 22 +9.76e-02,-3.63e-02,-6.77e-01,+6.85e-01 1 (nil) + 128 22 -1.68e-02,+2.28e-02,-3.88e-02,+4.80e-02 1 (nil) +GenVertex: -27 ID: 0 (X,cT):0 + I: 1 53 113 -2.30e-01,+1.48e-01,-1.62e+00,+1.84e+00 2 -27 + O: 2 130 -211 -8.09e-02,+2.95e-01,-1.97e-01,+3.90e-01 1 (nil) + 131 211 -1.49e-01,-1.47e-01,-1.43e+00,+1.45e+00 1 (nil) +GenVertex: -28 ID: 0 (X,cT):0 + I: 1 54 223 +3.60e-01,+7.58e-01,+8.72e-01,+1.44e+00 2 -28 + O: 3 132 211 +1.97e-01,+3.51e-01,+6.75e-01,+7.98e-01 1 (nil) + 133 -211 -3.88e-02,+1.47e-01,+2.00e-01,+2.87e-01 1 (nil) + 134 111 +2.02e-01,+2.60e-01,-3.27e-03,+3.56e-01 2 -68 +GenVertex: -29 ID: 0 (X,cT):0 + I: 1 55 113 +1.21e-01,+1.16e-01,+9.83e-01,+1.26e+00 2 -29 + O: 2 135 -211 +1.15e-01,+2.71e-01,+9.97e-01,+1.05e+00 1 (nil) + 136 211 +5.83e-03,-1.56e-01,-1.47e-02,+2.10e-01 1 (nil) +GenVertex: -30 ID: 0 (X,cT):0 + I: 1 56 -213 +8.69e-02,+1.01e+00,+7.42e+00,+7.52e+00 2 -30 + O: 2 137 -211 -8.49e-03,+1.28e-01,+3.83e-01,+4.28e-01 1 (nil) + 138 111 +9.53e-02,+8.80e-01,+7.03e+00,+7.09e+00 2 -69 +GenVertex: -31 ID: 0 (X,cT):0 + I: 1 57 323 +1.76e-01,+4.23e-01,+1.93e+00,+2.16e+00 2 -31 + O: 2 139 311 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -70 + 140 211 +1.10e-01,-9.78e-02,+1.66e-01,+2.62e-01 1 (nil) +GenVertex: -32 ID: 0 (X,cT):0 + I: 1 59 223 -2.63e-01,+7.90e-01,+6.47e-01,+1.31e+00 2 -32 + O: 3 141 211 -1.81e-01,+4.47e-01,+1.25e-01,+5.17e-01 1 (nil) + 142 -211 -2.25e-01,+2.99e-01,+3.59e-01,+5.38e-01 1 (nil) + 143 111 +1.43e-01,+4.38e-02,+1.63e-01,+2.59e-01 2 -71 +GenVertex: -33 ID: 0 (X,cT):0 + I: 1 60 213 +1.35e-01,+1.08e+00,+5.74e-01,+1.37e+00 2 -33 + O: 2 144 211 +6.61e-02,+1.08e+00,+5.00e-01,+1.20e+00 1 (nil) + 145 111 +6.86e-02,-8.01e-04,+7.43e-02,+1.69e-01 2 -72 +GenVertex: -34 ID: 0 (X,cT):0 + I: 1 62 213 -9.08e-02,+5.82e-01,-1.54e+00,+1.76e+00 2 -34 + O: 2 146 211 -4.09e-02,-5.32e-02,-5.87e-01,+6.07e-01 1 (nil) + 147 111 -4.99e-02,+6.35e-01,-9.56e-01,+1.16e+00 2 -73 +GenVertex: -35 ID: 0 (X,cT):0 + I: 1 63 221 +1.94e-01,-2.74e-01,-2.66e-01,+6.95e-01 2 -35 + O: 3 150 111 +7.41e-02,-1.52e-01,-1.38e-01,+2.57e-01 2 -76 + 148 111 -8.07e-02,-5.76e-02,-3.25e-02,+1.71e-01 2 -74 + 149 111 +2.01e-01,-6.40e-02,-9.60e-02,+2.68e-01 2 -75 +GenVertex: -36 ID: 0 (X,cT):0 + I: 1 64 -213 +2.31e-01,+2.74e-01,-1.31e+00,+1.58e+00 2 -36 + O: 2 151 -211 +4.35e-01,+4.07e-01,-8.38e-01,+1.04e+00 1 (nil) + 152 111 -2.04e-01,-1.33e-01,-4.69e-01,+5.45e-01 2 -77 +GenVertex: -37 ID: 0 (X,cT):0 + I: 1 65 213 -4.52e-01,+2.86e-01,-1.23e+00,+1.57e+00 2 -37 + O: 2 153 211 -1.15e-01,-2.61e-01,-4.89e-01,+5.83e-01 1 (nil) + 154 111 -3.37e-01,+5.47e-01,-7.40e-01,+9.89e-01 2 -78 +GenVertex: -38 ID: 0 (X,cT):0 + I: 1 66 2114 +9.53e-01,-6.69e-01,-3.09e+00,+3.53e+00 2 -38 + O: 2 155 2212 +6.04e-01,-7.13e-01,-2.45e+00,+2.79e+00 1 (nil) + 156 -211 +3.49e-01,+4.35e-02,-6.38e-01,+7.42e-01 1 (nil) +GenVertex: -39 ID: 0 (X,cT):0 + I: 1 70 323 +1.48e+00,-9.63e-01,-1.55e+01,+1.56e+01 2 -39 + O: 2 157 311 +5.39e-01,-2.99e-01,-4.42e+00,+4.49e+00 2 -79 + 158 211 +9.45e-01,-6.64e-01,-1.11e+01,+1.11e+01 1 (nil) +GenVertex: -40 ID: 0 (X,cT):0 + I: 1 72 213 +4.81e-01,-1.41e-01,-1.37e+01,+1.37e+01 2 -40 + O: 2 160 111 +4.80e-01,+2.17e-01,-7.34e+00,+7.36e+00 2 -80 + 159 211 +1.18e-04,-3.58e-01,-6.34e+00,+6.36e+00 1 (nil) +Vertex: -41 ID: 0 (X,cT)=-1.16e-04,+3.09e-05,-3.23e-03,+3.24e-03 + I: 1 73 111 -6.69e-01,+1.78e-01,-1.87e+01,+1.87e+01 2 -41 + O: 2 161 22 -5.04e-01,+7.96e-02,-1.28e+01,+1.28e+01 1 (nil) + 162 22 -1.65e-01,+9.88e-02,-5.90e+00,+5.90e+00 1 (nil) +GenVertex: -42 ID: 0 (X,cT):0 + I: 1 74 -213 -3.45e-01,-1.71e-01,-1.77e+01,+1.77e+01 2 -42 + O: 2 163 -211 +1.33e-01,+1.21e-01,-7.19e+00,+7.19e+00 1 (nil) + 164 111 -4.77e-01,-2.92e-01,-1.05e+01,+1.05e+01 2 -81 +GenVertex: -43 ID: 0 (X,cT):0 + I: 1 77 3224 -4.07e-01,-1.66e+00,-3.45e+01,+3.46e+01 2 -43 + O: 2 165 3122 -4.69e-01,-1.62e+00,-3.09e+01,+3.09e+01 2 -82 + 166 211 +6.12e-02,-3.83e-02,-3.63e+00,+3.64e+00 1 (nil) +GenVertex: -44 ID: 0 (X,cT):0 + I: 1 78 311 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 2 -44 + O: 1 167 130 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 1 (nil) +GenVertex: -45 ID: 0 (X,cT):0 + I: 1 82 311 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -45 + O: 1 168 310 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -83 +GenVertex: -46 ID: 0 (X,cT):0 + I: 1 83 -323 -5.63e-01,-7.34e-02,-1.48e+02,+1.48e+02 2 -46 + O: 2 169 -311 -5.45e-01,+2.59e-01,-8.99e+01,+8.99e+01 2 -84 + 170 -211 -1.76e-02,-3.32e-01,-5.80e+01,+5.80e+01 1 (nil) +GenVertex: -47 ID: 0 (X,cT):0 + I: 1 85 113 +1.80e-02,+8.34e-01,-6.47e+02,+6.47e+02 2 -47 + O: 2 171 211 +9.30e-02,-1.09e-02,-3.29e+01,+3.29e+01 1 (nil) + 172 -211 -7.50e-02,+8.45e-01,-6.14e+02,+6.14e+02 1 (nil) +GenVertex: -48 ID: 0 (X,cT):0 + I: 1 87 213 +3.40e-01,+1.94e-01,-1.02e+03,+1.02e+03 2 -48 + O: 2 173 211 +8.59e-02,+3.47e-01,-6.99e+02,+6.99e+02 1 (nil) + 174 111 +2.54e-01,-1.53e-01,-3.24e+02,+3.24e+02 2 -85 +GenVertex: -49 ID: 0 (X,cT):0 + I: 1 88 2214 +5.67e-01,+9.88e-02,-8.80e+02,+8.80e+02 2 -49 + O: 2 175 2212 +3.83e-01,+1.63e-01,-5.77e+02,+5.77e+02 1 (nil) + 176 111 +1.84e-01,-6.41e-02,-3.04e+02,+3.04e+02 2 -86 +GenVertex: -50 ID: 0 (X,cT):0 + I: 1 89 223 +1.23e+00,+3.33e-01,-2.87e+03,+2.87e+03 2 -50 + O: 3 177 211 +5.33e-01,+7.46e-02,-1.01e+03,+1.01e+03 1 (nil) + 178 -211 +4.00e-01,-1.62e-02,-1.32e+03,+1.32e+03 1 (nil) + 179 111 +2.98e-01,+2.74e-01,-5.41e+02,+5.41e+02 2 -87 +GenVertex: -51 ID: 0 (X,cT):0 + I: 1 93 -311 -2.08e-02,-2.14e-01,+2.11e+01,+2.11e+01 2 -51 + O: 1 180 130 -2.08e-02,-2.14e-01,+2.11e+01,+2.11e+01 1 (nil) +GenVertex: -52 ID: 0 (X,cT):0 + I: 1 94 313 -3.62e-01,+5.42e-01,+5.03e+01,+5.03e+01 2 -52 + O: 2 181 321 -3.90e-01,+2.06e-01,+3.09e+01,+3.09e+01 1 (nil) + 182 -211 +2.79e-02,+3.36e-01,+1.94e+01,+1.94e+01 1 (nil) +GenVertex: -53 ID: 0 (X,cT):0 + I: 1 95 213 -8.94e-01,-3.47e-01,+5.52e+01,+5.52e+01 2 -53 + O: 2 183 211 -8.91e-01,-1.82e-01,+3.63e+01,+3.63e+01 1 (nil) + 184 111 -2.63e-03,-1.65e-01,+1.89e+01,+1.89e+01 2 -88 +GenVertex: -54 ID: 0 (X,cT):0 + I: 1 96 113 -1.28e-01,-1.56e-01,+3.41e+01,+3.41e+01 2 -54 + O: 2 185 -211 -1.20e-02,-3.34e-01,+2.86e+01,+2.86e+01 1 (nil) + 186 211 -1.16e-01,+1.78e-01,+5.45e+00,+5.46e+00 1 (nil) +Vertex: -55 ID: 0 (X,cT)=+4.23e-05,-2.45e-05,+3.08e-04,+3.12e-04 + I: 1 98 111 +4.23e-01,-2.45e-01,+3.08e+00,+3.12e+00 2 -55 + O: 2 187 22 +2.88e-01,-9.56e-02,+1.70e+00,+1.72e+00 1 (nil) + 188 22 +1.35e-01,-1.49e-01,+1.38e+00,+1.40e+00 1 (nil) +GenVertex: -56 ID: 0 (X,cT):0 + I: 1 101 223 +1.06e+00,-1.22e-01,+2.53e+01,+2.53e+01 2 -56 + O: 3 189 211 +5.04e-01,-1.97e-01,+8.76e+00,+8.77e+00 1 (nil) + 190 -211 +2.54e-02,-9.08e-02,+3.85e+00,+3.86e+00 1 (nil) + 191 111 +5.32e-01,+1.66e-01,+1.27e+01,+1.27e+01 2 -89 +GenVertex: -57 ID: 0 (X,cT):0 + I: 1 103 113 +2.54e-01,-1.28e-01,-3.69e+00,+3.77e+00 2 -57 + O: 2 192 -211 -1.71e-01,-5.67e-02,-2.24e+00,+2.25e+00 1 (nil) + 193 211 +4.26e-01,-7.15e-02,-1.45e+00,+1.52e+00 1 (nil) +GenVertex: -58 ID: 0 (X,cT):0 + I: 1 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 + O: 3 196 111 +3.92e-02,+1.08e-02,-6.72e-02,+1.56e-01 2 -90 + 195 211 -1.94e-01,+1.20e-01,-1.32e-01,+2.98e-01 1 (nil) + 194 -211 +7.65e-02,-8.75e-02,-7.83e-01,+8.04e-01 1 (nil) +GenVertex: -59 ID: 0 (X,cT):0 + I: 1 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 + O: 2 198 111 +4.58e-01,+7.63e-02,-1.24e+00,+1.33e+00 2 -91 + 197 211 -2.80e-01,+2.51e-01,-1.39e+00,+1.44e+00 1 (nil) +Vertex: -60 ID: 0 (X,cT)=+9.83e-05,-4.21e-04,-9.04e-04,+1.00e-03 + I: 1 106 111 +1.94e-01,-8.30e-01,-1.78e+00,+1.98e+00 2 -60 + O: 2 199 22 +1.08e-01,-5.84e-01,-1.11e+00,+1.25e+00 1 (nil) + 200 22 +8.65e-02,-2.46e-01,-6.78e-01,+7.27e-01 1 (nil) +GenVertex: -61 ID: 0 (X,cT):0 + I: 1 108 223 +2.53e-01,-1.38e-01,-2.52e+00,+2.66e+00 2 -61 + O: 3 201 -211 -4.19e-02,+9.47e-02,-3.16e-01,+3.61e-01 1 (nil) + 202 211 +1.25e-01,+2.93e-02,-2.70e-01,+3.30e-01 1 (nil) + 203 111 +1.70e-01,-2.62e-01,-1.93e+00,+1.96e+00 2 -92 +GenVertex: -62 ID: 0 (X,cT):0 + I: 1 109 113 -5.13e-01,+2.04e-01,-2.60e+00,+2.77e+00 2 -62 + O: 2 204 211 -6.28e-01,+1.34e-01,-1.31e+00,+1.46e+00 1 (nil) + 205 -211 +1.15e-01,+6.97e-02,-1.29e+00,+1.30e+00 1 (nil) +GenVertex: -63 ID: 0 (X,cT):0 + I: 1 112 311 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -63 + O: 1 206 310 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -93 +GenVertex: -64 ID: 0 (X,cT):0 + I: 1 116 -311 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -64 + O: 1 207 310 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -94 +Vertex: -65 ID: 0 (X,cT)=+7.38e-05,-2.21e-05,+1.52e-02,+1.52e-02 + I: 1 117 111 +2.74e-01,-8.21e-02,+5.65e+01,+5.65e+01 2 -65 + O: 2 208 22 +3.27e-02,-6.35e-02,+1.64e+01,+1.64e+01 1 (nil) + 209 22 +2.41e-01,-1.86e-02,+4.01e+01,+4.01e+01 1 (nil) +Vertex: -66 ID: 0 (X,cT)=-2.41e-05,-3.97e-05,+6.29e-02,+6.29e-02 + I: 1 119 111 -1.00e-01,-1.65e-01,+2.61e+02,+2.61e+02 2 -66 + O: 2 210 22 -3.55e-02,-4.32e-03,+1.12e+02,+1.12e+02 1 (nil) + 211 22 -6.45e-02,-1.60e-01,+1.49e+02,+1.49e+02 1 (nil) +GenVertex: -67 ID: 0 (X,cT):0 + I: 1 124 311 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -67 + O: 1 212 310 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -95 +Vertex: -68 ID: 0 (X,cT)=+5.62e-07,+7.23e-07,-9.08e-09,+9.90e-07 + I: 1 134 111 +2.02e-01,+2.60e-01,-3.27e-03,+3.56e-01 2 -68 + O: 2 213 22 +5.96e-02,+3.17e-04,-3.48e-03,+5.97e-02 1 (nil) + 214 22 +1.43e-01,+2.60e-01,+2.13e-04,+2.96e-01 1 (nil) +Vertex: -69 ID: 0 (X,cT)=+6.81e-05,+6.29e-04,+5.02e-03,+5.07e-03 + I: 1 138 111 +9.53e-02,+8.80e-01,+7.03e+00,+7.09e+00 2 -69 + O: 2 216 22 -2.90e-03,+2.45e-01,+1.55e+00,+1.57e+00 1 (nil) + 215 22 +9.82e-02,+6.35e-01,+5.48e+00,+5.52e+00 1 (nil) +GenVertex: -70 ID: 0 (X,cT):0 + I: 1 139 311 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -70 + O: 1 217 310 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -96 +Vertex: -71 ID: 0 (X,cT)=+2.07e-05,+6.35e-06,+2.36e-05,+3.76e-05 + I: 1 143 111 +1.43e-01,+4.38e-02,+1.63e-01,+2.59e-01 2 -71 + O: 2 219 22 -2.87e-03,+5.32e-02,+2.80e-02,+6.02e-02 1 (nil) + 218 22 +1.46e-01,-9.35e-03,+1.35e-01,+1.99e-01 1 (nil) +Vertex: -72 ID: 0 (X,cT)=+3.76e-05,-4.39e-07,+4.07e-05,+9.25e-05 + I: 1 145 111 +6.86e-02,-8.01e-04,+7.43e-02,+1.69e-01 2 -72 + O: 2 220 22 +2.42e-02,+6.45e-02,+1.68e-02,+7.09e-02 1 (nil) + 221 22 +4.44e-02,-6.53e-02,+5.76e-02,+9.78e-02 1 (nil) +Vertex: -73 ID: 0 (X,cT)=-5.91e-06,+7.52e-05,-1.13e-04,+1.37e-04 + I: 1 147 111 -4.99e-02,+6.35e-01,-9.56e-01,+1.16e+00 2 -73 + O: 2 222 22 -6.98e-02,+2.12e-01,-3.96e-01,+4.55e-01 1 (nil) + 223 22 +1.99e-02,+4.23e-01,-5.60e-01,+7.02e-01 1 (nil) +Vertex: -74 ID: 0 (X,cT)=-3.84e-05,-2.74e-05,-1.55e-05,+8.12e-05 + I: 1 148 111 -8.07e-02,-5.76e-02,-3.25e-02,+1.71e-01 2 -74 + O: 2 225 22 +3.13e-02,+6.07e-03,-2.68e-02,+4.17e-02 1 (nil) + 224 22 -1.12e-01,-6.36e-02,-5.73e-03,+1.29e-01 1 (nil) +Vertex: -75 ID: 0 (X,cT)=+4.38e-07,-1.40e-07,-2.10e-07,+5.85e-07 + I: 1 149 111 +2.01e-01,-6.40e-02,-9.60e-02,+2.68e-01 2 -75 + O: 2 226 22 +1.78e-01,-9.49e-02,-1.07e-01,+2.28e-01 1 (nil) + 227 22 +2.25e-02,+3.09e-02,+1.06e-02,+3.97e-02 1 (nil) +Vertex: -76 ID: 0 (X,cT)=+2.78e-06,-5.71e-06,-5.17e-06,+9.63e-06 + I: 1 150 111 +7.41e-02,-1.52e-01,-1.38e-01,+2.57e-01 2 -76 + O: 2 228 22 +2.08e-02,-3.01e-03,-8.82e-02,+9.06e-02 1 (nil) + 229 22 +5.32e-02,-1.49e-01,-4.97e-02,+1.66e-01 1 (nil) +Vertex: -77 ID: 0 (X,cT)=-1.62e-04,-1.05e-04,-3.72e-04,+4.33e-04 + I: 1 152 111 -2.04e-01,-1.33e-01,-4.69e-01,+5.45e-01 2 -77 + O: 2 230 22 -5.35e-02,-1.09e-01,-1.58e-01,+1.99e-01 1 (nil) + 231 22 -1.50e-01,-2.43e-02,-3.11e-01,+3.46e-01 1 (nil) +Vertex: -78 ID: 0 (X,cT)=-3.66e-05,+5.95e-05,-8.05e-05,+1.08e-04 + I: 1 154 111 -3.37e-01,+5.47e-01,-7.40e-01,+9.89e-01 2 -78 + O: 2 232 22 -2.19e-01,+4.46e-01,-6.11e-01,+7.88e-01 1 (nil) + 233 22 -1.17e-01,+1.01e-01,-1.29e-01,+2.01e-01 1 (nil) +GenVertex: -79 ID: 0 (X,cT):0 + I: 1 157 311 +5.39e-01,-2.99e-01,-4.42e+00,+4.49e+00 2 -79 + O: 1 234 130 +5.39e-01,-2.99e-01,-4.42e+00,+4.49e+00 1 (nil) +Vertex: -80 ID: 0 (X,cT)=+1.61e-05,+7.28e-06,-2.46e-04,+2.47e-04 + I: 1 160 111 +4.80e-01,+2.17e-01,-7.34e+00,+7.36e+00 2 -80 + O: 2 235 22 +2.66e-01,+1.44e-01,-3.31e+00,+3.33e+00 1 (nil) + 236 22 +2.15e-01,+7.28e-02,-4.03e+00,+4.03e+00 1 (nil) +Vertex: -81 ID: 0 (X,cT)=-3.45e-05,-2.11e-05,-7.57e-04,+7.58e-04 + I: 1 164 111 -4.77e-01,-2.92e-01,-1.05e+01,+1.05e+01 2 -81 + O: 2 237 22 -1.85e-01,-4.71e-02,-2.98e+00,+2.99e+00 1 (nil) + 238 22 -2.92e-01,-2.45e-01,-7.48e+00,+7.49e+00 1 (nil) +Vertex: -82 ID: 0 (X,cT)=-9.53e+01,-3.29e+02,-6.28e+03,+6.29e+03 + I: 1 165 3122 -4.69e-01,-1.62e+00,-3.09e+01,+3.09e+01 2 -82 + O: 2 239 2212 -4.74e-01,-1.44e+00,-2.62e+01,+2.62e+01 1 (nil) + 240 -211 +5.01e-03,-1.82e-01,-4.71e+00,+4.71e+00 1 (nil) +Vertex: -83 ID: 0 (X,cT)=-1.49e+00,+1.99e+01,-5.17e+03,+5.17e+03 + I: 1 168 310 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -83 + O: 2 241 -211 -1.84e-01,-3.33e-04,-2.55e+01,+2.55e+01 1 (nil) + 242 211 +1.67e-01,+2.33e-01,-3.49e+01,+3.49e+01 1 (nil) +GenVertex: -84 ID: 0 (X,cT):0 + I: 1 169 -311 -5.45e-01,+2.59e-01,-8.99e+01,+8.99e+01 2 -84 + O: 1 243 130 -5.45e-01,+2.59e-01,-8.99e+01,+8.99e+01 1 (nil) +Vertex: -85 ID: 0 (X,cT)=+5.73e-06,-3.45e-06,-7.31e-03,+7.31e-03 + I: 1 174 111 +2.54e-01,-1.53e-01,-3.24e+02,+3.24e+02 2 -85 + O: 2 244 22 +1.63e-01,-5.83e-02,-2.39e+02,+2.39e+02 1 (nil) + 245 22 +9.09e-02,-9.45e-02,-8.53e+01,+8.53e+01 1 (nil) +Vertex: -86 ID: 0 (X,cT)=+4.34e-06,-1.51e-06,-7.14e-03,+7.14e-03 + I: 1 176 111 +1.84e-01,-6.41e-02,-3.04e+02,+3.04e+02 2 -86 + O: 2 246 22 +3.56e-02,-7.99e-02,-1.18e+02,+1.18e+02 1 (nil) + 247 22 +1.49e-01,+1.58e-02,-1.86e+02,+1.86e+02 1 (nil) +Vertex: -87 ID: 0 (X,cT)=+7.08e-05,+6.51e-05,-1.28e-01,+1.28e-01 + I: 1 179 111 +2.98e-01,+2.74e-01,-5.41e+02,+5.41e+02 2 -87 + O: 2 248 22 +1.81e-01,+2.40e-01,-4.18e+02,+4.18e+02 1 (nil) + 249 22 +1.17e-01,+3.44e-02,-1.23e+02,+1.23e+02 1 (nil) +Vertex: -88 ID: 0 (X,cT)=-6.24e-07,-3.92e-05,+4.48e-03,+4.48e-03 + I: 1 184 111 -2.63e-03,-1.65e-01,+1.89e+01,+1.89e+01 2 -88 + O: 2 251 22 +1.06e-02,-1.55e-01,+1.86e+01,+1.86e+01 1 (nil) + 250 22 -1.32e-02,-1.02e-02,+2.51e-01,+2.52e-01 1 (nil) +Vertex: -89 ID: 0 (X,cT)=+1.36e-04,+4.24e-05,+3.24e-03,+3.24e-03 + I: 1 191 111 +5.32e-01,+1.66e-01,+1.27e+01,+1.27e+01 2 -89 + O: 2 252 22 +1.83e-01,+1.10e-01,+5.73e+00,+5.73e+00 1 (nil) + 253 22 +3.49e-01,+5.63e-02,+6.96e+00,+6.97e+00 1 (nil) +Vertex: -90 ID: 0 (X,cT)=+3.53e-05,+9.71e-06,-6.05e-05,+1.41e-04 + I: 1 196 111 +3.92e-02,+1.08e-02,-6.72e-02,+1.56e-01 2 -90 + O: 2 254 22 +7.69e-02,+3.56e-02,-7.15e-02,+1.11e-01 1 (nil) + 255 22 -3.77e-02,-2.48e-02,+4.24e-03,+4.53e-02 1 (nil) +Vertex: -91 ID: 0 (X,cT)=+4.08e-05,+6.79e-06,-1.10e-04,+1.18e-04 + I: 1 198 111 +4.58e-01,+7.63e-02,-1.24e+00,+1.33e+00 2 -91 + O: 2 256 22 +1.21e-01,-3.91e-02,-3.40e-01,+3.63e-01 1 (nil) + 257 22 +3.37e-01,+1.15e-01,-8.96e-01,+9.65e-01 1 (nil) +Vertex: -92 ID: 0 (X,cT)=+5.61e-06,-8.66e-06,-6.40e-05,+6.49e-05 + I: 1 203 111 +1.70e-01,-2.62e-01,-1.93e+00,+1.96e+00 2 -92 + O: 3 258 22 +3.78e-02,-1.90e-02,-5.69e-01,+5.70e-01 1 (nil) + 259 11 +1.27e-01,-2.18e-01,-1.21e+00,+1.24e+00 1 (nil) + 260 -11 +4.80e-03,-2.48e-02,-1.54e-01,+1.56e-01 1 (nil) +Vertex: -93 ID: 0 (X,cT)=-1.44e+01,+6.94e+00,+7.21e+02,+7.22e+02 + I: 1 206 310 -1.65e-01,+7.95e-02,+8.26e+00,+8.27e+00 2 -93 + O: 2 261 111 +9.20e-02,+1.32e-01,+2.25e+00,+2.26e+00 2 -97 + 262 111 -2.57e-01,-5.26e-02,+6.00e+00,+6.01e+00 2 -98 +Vertex: -94 ID: 0 (X,cT)=-7.78e+00,+1.06e+01,+1.70e+03,+1.70e+03 + I: 1 207 310 -2.08e-01,+2.83e-01,+4.52e+01,+4.53e+01 2 -94 + O: 2 263 111 -2.89e-01,+1.56e-01,+3.66e+01,+3.66e+01 2 -99 + 264 111 +8.17e-02,+1.26e-01,+8.62e+00,+8.62e+00 2 -100 +Vertex: -95 ID: 0 (X,cT)=-1.37e+01,-6.92e+00,-2.33e+00,+2.17e+01 + I: 1 212 310 -4.48e-01,-2.27e-01,-7.65e-02,+7.11e-01 2 -95 + O: 2 265 211 -2.95e-01,-9.17e-02,+1.55e-01,+3.73e-01 1 (nil) + 266 -211 -1.52e-01,-1.35e-01,-2.31e-01,+3.38e-01 1 (nil) +Vertex: -96 ID: 0 (X,cT)=+5.58e+00,+4.38e+01,+1.48e+02,+1.60e+02 + I: 1 217 310 +6.63e-02,+5.21e-01,+1.76e+00,+1.90e+00 2 -96 + O: 2 267 111 +1.60e-01,+1.55e-01,+1.10e+00,+1.13e+00 2 -101 + 268 111 -9.38e-02,+3.66e-01,+6.60e-01,+7.72e-01 2 -102 +Vertex: -97 ID: 0 (X,cT)=-1.44e+01,+6.94e+00,+7.21e+02,+7.22e+02 + I: 1 261 111 +9.20e-02,+1.32e-01,+2.25e+00,+2.26e+00 2 -97 + O: 2 269 22 +1.66e-02,-2.70e-02,+2.39e-01,+2.41e-01 1 (nil) + 270 22 +7.54e-02,+1.59e-01,+2.02e+00,+2.02e+00 1 (nil) +Vertex: -98 ID: 0 (X,cT)=-1.44e+01,+6.94e+00,+7.21e+02,+7.22e+02 + I: 1 262 111 -2.57e-01,-5.26e-02,+6.00e+00,+6.01e+00 2 -98 + O: 2 272 22 -1.85e-01,-2.09e-02,+2.76e+00,+2.76e+00 1 (nil) + 271 22 -7.17e-02,-3.17e-02,+3.25e+00,+3.25e+00 1 (nil) +Vertex: -99 ID: 0 (X,cT)=-7.78e+00,+1.06e+01,+1.70e+03,+1.70e+03 + I: 1 263 111 -2.89e-01,+1.56e-01,+3.66e+01,+3.66e+01 2 -99 + O: 2 274 22 -1.90e-01,+1.31e-01,+3.04e+01,+3.04e+01 1 (nil) + 273 22 -9.96e-02,+2.50e-02,+6.20e+00,+6.20e+00 1 (nil) +Vertex: -100 ID: 0 (X,cT)=-7.78e+00,+1.06e+01,+1.70e+03,+1.70e+03 + I: 1 264 111 +8.17e-02,+1.26e-01,+8.62e+00,+8.62e+00 2 -100 + O: 2 275 22 +7.76e-02,+2.39e-03,+3.60e+00,+3.60e+00 1 (nil) + 276 22 +4.09e-03,+1.24e-01,+5.01e+00,+5.02e+00 1 (nil) +Vertex: -101 ID: 0 (X,cT)=+5.58e+00,+4.38e+01,+1.48e+02,+1.60e+02 + I: 1 267 111 +1.60e-01,+1.55e-01,+1.10e+00,+1.13e+00 2 -101 + O: 2 277 22 +1.49e-01,+9.93e-02,+5.70e-01,+5.98e-01 1 (nil) + 278 22 +1.13e-02,+5.56e-02,+5.29e-01,+5.32e-01 1 (nil) +Vertex: -102 ID: 0 (X,cT)=+5.58e+00,+4.38e+01,+1.48e+02,+1.60e+02 + I: 1 268 111 -9.38e-02,+3.66e-01,+6.60e-01,+7.72e-01 2 -102 + O: 2 279 22 -6.60e-02,+5.16e-02,+1.69e-01,+1.89e-01 1 (nil) + 280 22 -2.77e-02,+3.15e-01,+4.91e-01,+5.84e-01 1 (nil) +________________________________________________________________________________ + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=5) +E1 : e+ : pT=0.0228 : TOF=26.7 : x=(0.593,-0.903,-7.9) +E1 : pi- : pT=0.116 : TOF=27.1 : x=(1.11,0.264,-7.9) +E1 : e- : pT=0.00033 : TOF=27.3 : x=(1.09,0.2,-7.9) +E1 : pi+ : pT=0.21 : TOF=26.8 : x=(-1.14,-0.214,-7.9) +E1 : mu- : pT=36.4 : TOF=26.6 : x=(0.321,0.958,-7.9) + +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.in b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.in new file mode 100644 index 0000000000..73f5852bb4 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.in @@ -0,0 +1,4 @@ +/control/execute pyset.mac +/run/beamOn 10 +/generator/pythia/pystat 1 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out new file mode 100644 index 0000000000..29470dee57 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out @@ -0,0 +1,415 @@ +********************************************** + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) + Copyright : Geant4 Collaboration +********************************************** + +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created + +compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. + Scattered gamma energy according Klein-Nishina. + PhysicsTables from 1 keV to 100 GeV in 80 bins. + +conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. + e+e- energies according Bethe-Heitler + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. + +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. + +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. + +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. + +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: 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. + +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. + +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. + +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. + +MuBrems: theoretical cross section + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 bins. + +MuPairProd: theoretical cross sections + Good description up to 1000 PeV. + PhysicsTables from 1 keV to 1000 PeV in 150 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. +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... +* Visualizaton Driver: DAWN +* Visualizaton Driver: VRML1/2 +* Visualizaton Driver: VRML1/2 File + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + OpenGLImmediateXm (OGLIXm) + OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +current generator type: pythia +1 + ****************************************************************************** + ****************************************************************************** + ** ** + ** ** + ** *......* Welcome to the Lund Monte Carlo! ** + ** *:::!!:::::::::::* ** + ** *::::::!!::::::::::::::* PPP Y Y TTTTT H H III A ** + ** *::::::::!!::::::::::::::::* P P Y Y T H H I A A ** + ** *:::::::::!!:::::::::::::::::* PPP Y T HHHHH I AAAAA ** + ** *:::::::::!!:::::::::::::::::* P Y T H H I A A ** + ** *::::::::!!::::::::::::::::*! P Y T H H III A A ** + ** *::::::!!::::::::::::::* !! ** + ** !! *:::!!:::::::::::* !! This is PYTHIA version 6.205 ** + ** !! !* -><- * !! Last date of change: 1 Mar 2002 ** + ** !! !! !! ** + ** !! !! !! Now is 0 Jan 2000 at 0:00:00 ** + ** !! !! ** + ** !! lh !! Disclaimer: this program comes ** + ** !! !! without any guarantees. Beware ** + ** !! hh !! of errors and use common sense ** + ** !! ll !! when interpreting results. ** + ** !! !! ** + ** !! Copyright T. Sjostrand (2001) ** + ** ** + ** An archive of program versions and documentation is found on the web: ** + ** http://www.thep.lu.se/~torbjorn/Pythia.html ** + ** ** + ** When you cite this program, currently the official reference is ** + ** T. Sjostrand, P. Eden, C. Friberg, L. Lonnblad, G. Miu, S. Mrenna and ** + ** E. Norrbin, Computer Physics Commun. 135 (2001) 238. ** + ** The large manual is ** + ** T. Sjostrand, L. Lonnblad and S. Mrenna, LU TP 01-21 [hep-ph/0108264]. ** + ** Also remember that the program, to a large extent, represents original ** + ** physics research. Other publications of special relevance to your ** + ** studies may therefore deserve separate mention. ** + ** ** + ** Main author: Torbjorn Sjostrand; Department of Theoretical Physics 2, ** + ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** + ** phone: + 46 - 46 - 222 48 16; e-mail: torbjorn@thep.lu.se ** + ** Author: Leif Lonnblad; Department of Theoretical Physics 2, ** + ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** + ** phone: + 46 - 46 - 222 77 80; e-mail: leif@thep.lu.se ** + ** Author: Stephen Mrenna; Computing Division, Simulations Group, ** + ** Fermi National Accelerator Laboratory, MS 234, Batavia, IL 60510, USA; ** + ** phone: + 1 - 630 - 840 - 2556; e-mail: mrenna@fnal.gov ** + ** Author: Peter Skands; Department of Theoretical Physics 2, ** + ** Lund University, Solvegatan 14A, S-223 62 Lund, Sweden; ** + ** phone: + 46 - 46 - 222 31 92; e-mail: zeiler@thep.lu.se ** + ** ** + ** ** + ****************************************************************************** + ****************************************************************************** + PMAS(6,1) changed from 175.00000 to 174.30000 + PMAS(25,1) changed from 115.00000 to 200.00000 + MSEL changed from 1 to 0 + MSUB(102) changed from 0 to 1 + MSUB(123) changed from 0 to 1 + MSUB(124) changed from 0 to 1 + MDME(210,1) changed from 1 to 0 + MDME(211,1) changed from 1 to 0 + MDME(212,1) changed from 1 to 0 + MDME(213,1) changed from 1 to 0 + MDME(214,1) changed from 1 to 0 + MDME(215,1) changed from 1 to 0 + MDME(218,1) changed from 1 to 0 + MDME(219,1) changed from 1 to 0 + MDME(220,1) changed from 1 to 0 + MDME(222,1) changed from 1 to 0 + MDME(223,1) changed from 1 to 0 + MDME(224,1) changed from 1 to 0 + MDME(225,1) changed from 1 to 1 + MDME(226,1) changed from 1 to 0 + MDME(216,1) changed from -1 to -1 + MDME(217,1) changed from -1 to -1 + MDME(218,1) changed from 0 to -1 + MDME(174,1) changed from 1 to 0 + MDME(175,1) changed from 1 to 0 + MDME(176,1) changed from 1 to 0 + MDME(177,1) changed from 1 to 0 + MDME(178,1) changed from 1 to 0 + MDME(179,1) changed from 1 to 0 + MDME(182,1) changed from 1 to 0 + MDME(183,1) changed from 1 to 0 + MDME(184,1) changed from 1 to 1 + MDME(185,1) changed from 1 to 0 + MDME(186,1) changed from 1 to 0 + MDME(187,1) changed from 1 to 0 + MDME(180,1) changed from -1 to -1 + MDME(181,1) changed from -1 to -1 + MDME(188,1) changed from -1 to -1 + MDME(189,1) changed from -1 to -1 + MSTP(61) changed from 2 to 1 + MSTP(71) changed from 1 to 1 + MSTP(81) changed from 1 to 1 + MSTP(111) changed from 1 to 1 +1****************** PYINIT: initialization of PYTHIA routines ***************** + + ============================================================================== + I I + I PYTHIA will be initialized for a p on p collider I + I at 14000.000 GeV center-of-mass energy I + I I + ============================================================================== + + ******** PYMAXI: summary of differential cross-section maximum search ******** + + ========================================================== + I I I + I ISUB Subprocess name I Maximum value I + I I I + ========================================================== + I I I + I 96 Semihard QCD 2 -> 2 I 1.8679E+03 I + I 102 g + g -> h0 I 5.1617E-12 I + I 123 f + f' -> f + f' + h0 I 4.0000E-12 I + I 124 f + f' -> f" + f"' + h0 I 8.9419E-12 I + I I I + ========================================================== + + ********************** PYINIT: initialization completed ********************** + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=18) +E0 : pi+ : pT=0.118 : TOF=27 : x=(-0.322,1.06,7.9) +E0 : pi- : pT=0.324 : TOF=26.7 : x=(1.15,0.339,7.9) +E1 : pi- : pT=0.301 : TOF=26.7 : x=(1.05,0.415,-7.9) +E1 : mu- : pT=0.356 : TOF=26.6 : x=(-0.985,0.19,-7.9) +E1 : pi+ : pT=0.536 : TOF=26.6 : x=(-0.529,0.882,-7.9) +E1 : pi+ : pT=1.14 : TOF=27 : x=(-0.652,0.758,-8.02) +E0 : e- : pT=0.000369 : TOF=29.1 : x=(-0.823,0.569,7.94) +E1 : mu- : pT=1.29 : TOF=27.8 : x=(-0.151,-2.68,-7.9) +E1 : e- : pT=0.000702 : TOF=31 : x=(0.345,-1.69,-7.9) +E1 : e- : pT=0.00121 : TOF=28.1 : x=(-1.62,-0.29,-7.9) +E0 : pi- : pT=0.298 : TOF=26.6 : x=(0.353,-0.963,7.9) +E0 : mu- : pT=0.0257 : TOF=28.2 : x=(-1.12,-0.828,7.9) +E0 : pi+ : pT=0.226 : TOF=26.7 : x=(-0.35,0.973,7.9) +E1 : e- : pT=0.00205 : TOF=27.6 : x=(1.22,0.311,-7.9) +B3 : mu+ : pT=42 : TOF=15 : x=(-4.04,1.97,-0.0268) +B1 : mu- : pT=58.3 : TOF=21.4 : x=(2.07,3.94,-4.63) +B4 : mu+ : pT=22.9 : TOF=24.1 : x=(-4.25,-1.09,5.75) +E1 : mu- : pT=26.5 : TOF=28.6 : x=(-1.86,2.74,-7.9) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=9) +E1 : pi- : pT=0.11 : TOF=27 : x=(-0.612,-0.904,-7.9) +E1 : e- : pT=0.0024 : TOF=27.6 : x=(-1.01,-1.34,-7.9) +E1 : pi- : pT=0.359 : TOF=26.6 : x=(-0.15,1.02,-7.9) +E1 : e- : pT=0.00115 : TOF=28 : x=(-0.153,-1.18,-7.9) +E1 : e- : pT=0.00182 : TOF=27.4 : x=(-1.44,-0.518,-7.9) +B6 : mu+ : pT=25.6 : TOF=16.8 : x=(-0.273,-4.25,-2.71) +E0 : mu- : pT=19.4 : TOF=27.9 : x=(2.63,-0.623,7.9) +E1 : mu- : pT=7.96 : TOF=26.9 : x=(-1.44,0.67,-7.9) +B4 : mu+ : pT=51.7 : TOF=17.3 : x=(-4.25,0.68,2.91) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=22) +E0 : pi- : pT=0.538 : TOF=26.7 : x=(0.758,-0.963,7.9) +E1 : pi- : pT=1.23 : TOF=26.6 : x=(-1.05,0.00395,-7.9) +E1 : pi+ : pT=0.204 : TOF=26.7 : x=(0.438,0.986,-7.9) +E0 : pi- : pT=3.4 : TOF=26.6 : x=(0.696,-0.81,7.9) +E0 : pi- : pT=0.583 : TOF=27 : x=(-0.8,-0.599,8.03) +E0 : kaon+ : pT=0.531 : TOF=26.8 : x=(0.141,1.04,7.9) +E0 : pi- : pT=0.298 : TOF=26.6 : x=(0.136,1.05,7.9) +E1 : pi- : pT=0.421 : TOF=26.6 : x=(-0.0951,1.05,-7.9) +E0 : kaon- : pT=0.22 : TOF=27.9 : x=(-1.1,-0.0225,7.9) +E0 : e- : pT=0.00133 : TOF=27.7 : x=(-0.836,-0.549,7.99) +E1 : kaon+ : pT=2.03 : TOF=26.6 : x=(0.373,0.992,-7.9) +E1 : mu+ : pT=0.9 : TOF=27.8 : x=(-2.58,0.167,-7.9) +E1 : kaon+ : pT=2.37 : TOF=26.8 : x=(1.43,-0.379,-7.9) +E0 : pi+ : pT=1.7 : TOF=26.7 : x=(-0.925,0.785,7.9) +E1 : pi+ : pT=1.19 : TOF=26.7 : x=(-0.867,-0.815,-7.9) +E0 : e- : pT=0.00166 : TOF=29.4 : x=(-0.977,1.06,7.9) +E1 : pi+ : pT=0.302 : TOF=27 : x=(-0.874,-0.486,-8.02) +E1 : mu- : pT=0.0717 : TOF=28.1 : x=(1.5,1.95,-7.9) +B6 : mu- : pT=40.4 : TOF=14.9 : x=(-1.28,-4.25,0.423) +E1 : mu+ : pT=24.4 : TOF=27.9 : x=(-2.65,0.752,-7.9) +B7 : mu+ : pT=42.5 : TOF=17.2 : x=(2.1,-3.91,-2.61) +B2 : mu- : pT=52.3 : TOF=22.1 : x=(1.47,4.25,-4.85) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=20) +E1 : mu- : pT=0.392 : TOF=26.7 : x=(1.19,0.48,-7.9) +E0 : e- : pT=0.000597 : TOF=39 : x=(-1.84,2.29,8.1) +E1 : pi+ : pT=0.426 : TOF=26.6 : x=(-0.675,0.797,-7.9) +E1 : e- : pT=2.13e-05 : TOF=26.6 : x=(-0.675,0.797,-7.9) +E0 : e- : pT=0.000367 : TOF=37.7 : x=(0.778,1.11,7.9) +E1 : pi- : pT=0.29 : TOF=26.7 : x=(0.0726,-1.09,-7.9) +E1 : pi- : pT=0.831 : TOF=26.6 : x=(-0.0968,1.01,-7.9) +E1 : pi+ : pT=1.9 : TOF=26.6 : x=(0.496,0.974,-7.9) +E1 : pi- : pT=0.59 : TOF=26.7 : x=(0.857,0.961,-7.9) +E1 : pi- : pT=13 : TOF=26.7 : x=(0.375,1.15,-7.9) +E1 : pi+ : pT=0.0802 : TOF=27.4 : x=(0.698,1.32,-7.9) +E1 : pi- : pT=2.59 : TOF=26.6 : x=(0.232,1.09,-7.9) +E1 : pi- : pT=1.06 : TOF=26.6 : x=(0.00739,1.1,-7.9) +E1 : pi+ : pT=0.698 : TOF=26.6 : x=(0.698,0.894,-7.9) +E1 : pi- : pT=0.547 : TOF=26.6 : x=(0.679,-0.885,-7.9) +E1 : pi- : pT=0.31 : TOF=26.7 : x=(-0.983,0.185,-7.94) +E1 : pi+ : pT=6.23 : TOF=26.7 : x=(0.479,1.14,-7.9) +B6 : mu- : pT=42.7 : TOF=25.2 : x=(1.54,-4.25,-6.05) +E1 : mu+ : pT=29.3 : TOF=26.9 : x=(1.59,0.0382,-7.9) +E1 : mu- : pT=69.8 : TOF=26.6 : x=(-1.14,-0.105,-7.9) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=13) +E1 : e- : pT=0.000657 : TOF=31.4 : x=(-1.13,2.25,-7.9) +E0 : pi- : pT=0.19 : TOF=26.7 : x=(-0.765,0.666,7.9) +E1 : pi+ : pT=0.148 : TOF=26.9 : x=(-0.79,-0.841,-7.9) +E0 : anti_proton : pT=0.652 : TOF=27.1 : x=(0.921,-0.592,7.9) +E1 : mu- : pT=0.112 : TOF=28 : x=(-0.00993,2.61,-7.9) +B1 : mu- : pT=0.474 : TOF=19.4 : x=(2.64,3.37,3.78) +E1 : e- : pT=0.000675 : TOF=27.6 : x=(-0.903,-0.54,-7.9) +E1 : pi- : pT=0.796 : TOF=26.6 : x=(-0.271,-1.05,-7.9) +E1 : kaon+ : pT=0.466 : TOF=26.8 : x=(0.613,-0.803,-7.9) +B5 : mu- : pT=15.6 : TOF=22.2 : x=(-2.88,-3.13,-5.12) +B4 : mu+ : pT=74.1 : TOF=20.4 : x=(-4.25,1.12,4.24) +E0 : mu- : pT=23.6 : TOF=27.5 : x=(-1.05,2.14,7.9) +B5 : mu+ : pT=64.7 : TOF=15.9 : x=(-2.56,-3.45,2.09) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=10) +E1 : pi- : pT=0.168 : TOF=26.9 : x=(-0.195,1.19,-7.9) +E1 : e- : pT=0.00145 : TOF=27.5 : x=(0.0163,1.28,-7.9) +E0 : e- : pT=0.00184 : TOF=27 : x=(-0.747,-0.943,7.9) +E0 : pi+ : pT=0.373 : TOF=26.7 : x=(0.699,0.91,7.9) +E0 : e- : pT=0.00126 : TOF=28.9 : x=(0.923,-0.384,7.93) +E0 : e- : pT=0.000846 : TOF=35.5 : x=(2.17,-1.42,7.9) +B5 : mu+ : pT=16.2 : TOF=15.1 : x=(-4.08,-1.93,0.167) +B1 : mu- : pT=99.2 : TOF=14.3 : x=(3.37,2.64,0.176) +B1 : mu+ : pT=63.1 : TOF=17.9 : x=(3.08,2.93,3.27) +B4 : mu- : pT=30.6 : TOF=19.3 : x=(-4.25,-0.434,3.88) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=15) +E1 : mu+ : pT=0.106 : TOF=27.5 : x=(1.25,-0.911,-7.9) +E0 : e+ : pT=0.0376 : TOF=26.6 : x=(-0.859,0.675,7.9) +E1 : mu+ : pT=0.153 : TOF=27.5 : x=(0.989,-0.15,-8.1) +E1 : pi- : pT=0.642 : TOF=26.6 : x=(-0.552,0.844,-7.9) +E1 : e- : pT=0.000328 : TOF=28.4 : x=(-0.538,1.07,-8.1) +E0 : pi+ : pT=0.634 : TOF=26.7 : x=(-0.732,-0.927,7.9) +E0 : pi+ : pT=0.693 : TOF=26.6 : x=(-0.166,-0.999,7.9) +E0 : e- : pT=0.000121 : TOF=26.7 : x=(-0.178,-1.01,7.9) +E1 : pi- : pT=0.912 : TOF=26.6 : x=(1.02,0.466,-7.9) +E0 : mu+ : pT=0.265 : TOF=27.3 : x=(-0.679,0.734,8.1) +E1 : kaon- : pT=0.811 : TOF=26.7 : x=(0.161,-1.16,-7.9) +E0 : mu+ : pT=4.37 : TOF=27.5 : x=(-2.22,-0.931,7.9) +E1 : mu- : pT=24.6 : TOF=27 : x=(0.369,1.72,-7.9) +E1 : mu+ : pT=21.7 : TOF=28.6 : x=(3.31,-0.634,-7.9) +B5 : mu- : pT=22.1 : TOF=23.4 : x=(-3.64,-2.37,5.5) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=7) +E1 : e- : pT=0.000993 : TOF=28.6 : x=(-0.999,-0.0531,-8.03) +E1 : e- : pT=0.0016 : TOF=34.5 : x=(-3.34,-1.7,-7.9) +E0 : pi+ : pT=0.0712 : TOF=28 : x=(-1.22,-0.224,7.9) +B1 : mu- : pT=19.7 : TOF=21.5 : x=(1.89,4.12,4.58) +E1 : mu+ : pT=11.3 : TOF=26.7 : x=(-1.15,-0.41,-7.9) +B6 : mu+ : pT=15.3 : TOF=18.8 : x=(0.00684,-4.25,3.69) +E1 : mu- : pT=40.2 : TOF=27.7 : x=(-0.927,-2.4,-7.9) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=12) +E1 : e- : pT=0.000952 : TOF=28.9 : x=(0.967,-0.254,-7.99) +E1 : e- : pT=6.09e-05 : TOF=33.4 : x=(1.19,-0.587,-7.9) +E1 : pi- : pT=0.88 : TOF=26.6 : x=(0.99,-0.532,-7.9) +E1 : pi+ : pT=0.353 : TOF=26.7 : x=(0.446,-1.1,-7.9) +E0 : e- : pT=0.00106 : TOF=29.2 : x=(-1.34,-0.637,7.9) +E0 : e- : pT=0.000573 : TOF=30.4 : x=(-0.986,0.168,8.03) +E0 : pi- : pT=0.603 : TOF=26.8 : x=(-0.371,-1.08,7.9) +E0 : e- : pT=0.00118 : TOF=30.1 : x=(-1.24,-0.77,7.9) +B1 : mu+ : pT=29.8 : TOF=15.6 : x=(4.04,1.97,-1.32) +B4 : mu- : pT=67.6 : TOF=14.7 : x=(-4.25,0.691,-1.01) +B1 : mu- : pT=44.5 : TOF=14.3 : x=(3.15,2.86,0.518) +B4 : mu+ : pT=33.7 : TOF=20.1 : x=(-4.25,-0.737,4.2) + + Print out hit information +------------------------------------------ +*** Muon System Hit (#hits=17) +E0 : pi- : pT=0.15 : TOF=26.8 : x=(0.187,-1.01,7.9) +E0 : pi- : pT=0.483 : TOF=26.7 : x=(0.122,-1.15,7.9) +E1 : pi- : pT=0.314 : TOF=26.7 : x=(1.19,-0.189,-7.9) +E0 : pi+ : pT=0.272 : TOF=26.6 : x=(0.697,-0.776,7.9) +E0 : e- : pT=0.00231 : TOF=28.5 : x=(0.0574,-1.96,7.9) +E0 : e- : pT=8.52e-05 : TOF=37.5 : x=(1.2,-3.83,7.9) +E0 : pi- : pT=1.08 : TOF=26.6 : x=(0.413,-0.943,7.9) +E0 : pi+ : pT=1.21 : TOF=26.6 : x=(0.752,-0.669,7.9) +E0 : proton : pT=0.537 : TOF=27.5 : x=(0.932,-0.698,7.9) +E0 : pi- : pT=2 : TOF=26.7 : x=(0.67,0.991,7.9) +E0 : pi+ : pT=0.585 : TOF=26.7 : x=(-1.12,-0.465,7.9) +E0 : pi+ : pT=0.667 : TOF=26.6 : x=(0.104,1.03,7.9) +E0 : pi+ : pT=0.193 : TOF=27 : x=(-1.22,-0.344,7.9) +E0 : pi+ : pT=0.237 : TOF=27 : x=(-1.2,0.225,7.9) +E0 : mu- : pT=29.5 : TOF=27.4 : x=(-2.23,-0.524,7.9) +B7 : mu- : pT=55.5 : TOF=15.7 : x=(1.93,-4.08,1.28) +E0 : mu+ : pT=18.3 : TOF=27.2 : x=(1.27,1.59,7.9) + +1********* PYSTAT: Statistics on Number of Events and Cross-sections ********* + + ============================================================================== + I I I I + I Subprocess I Number of points I Sigma I + I I I I + I----------------------------------I----------------------------I (mb) I + I I I I + I N:o Type I Generated Tried I I + I I I I + ============================================================================== + I I I I + I 0 All included subprocesses I 10 43 I 3.988E-12 I + I 102 g + g -> h0 I 7 13 I 2.929E-12 I + I 123 f + f' -> f + f' + h0 I 1 9 I 3.282E-13 I + I 124 f + f' -> f" + f"' + h0 I 2 21 I 7.305E-13 I + I I I I + ============================================================================== + + ********* Fraction of events that fail fragmentation cuts = 0.00000 ********* + +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh new file mode 100644 index 0000000000..034666f3f1 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H02DetectorConstruction.hh +// $Id: H02DetectorConstruction.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// +// ==================================================================== +#ifndef H02_DETECTOR_CONSTRUCTION_H +#define H02_DETECTOR_CONSTRUCTION_H + +#include "G4Types.hh" +#include "G4VUserDetectorConstruction.hh" + +class H02DetectorConstruction : public G4VUserDetectorConstruction { +public: + H02DetectorConstruction(); + ~H02DetectorConstruction(); + + virtual G4VPhysicalVolume* Construct(); + +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh new file mode 100644 index 0000000000..250b38b51c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: H02EMPhysics.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef H02EMPhysics_h +#define H02EMPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4MultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +class H02EMPhysics : public G4VPhysicsConstructor +{ + public: + H02EMPhysics(const G4String& name ="EM"); + virtual ~H02EMPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Gamma physics + G4PhotoElectricEffect thePhotoEffect; + G4ComptonScattering theComptonEffect; + G4GammaConversion thePairProduction; + + // Electron physics + G4MultipleScattering theElectronMultipleScattering; + G4eIonisation theElectronIonisation; + G4eBremsstrahlung theElectronBremsStrahlung; + + //Positron physics + G4MultipleScattering thePositronMultipleScattering; + G4eIonisation thePositronIonisation; + G4eBremsstrahlung thePositronBremsStrahlung; + G4eplusAnnihilation theAnnihilation; +}; + + +#endif + + + + + diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh similarity index 74% rename from examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh index ae57e020a4..5e3b95063e 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02EventAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh @@ -19,34 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: PersEx02EventAction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#ifndef PersEx02EventAction_h -#define PersEx02EventAction_h 1 +// ==================================================================== +// +// H02EventAction.hh +// $Id: H02EventAction.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// +// ==================================================================== +#ifndef H02_EVENT_ACTION_H +#define H02_EVENT_ACTION_H #include "G4UserEventAction.hh" -#include "globals.hh" -class PersEx02EventAction : public G4UserEventAction -{ - public: - PersEx02EventAction(); - virtual ~PersEx02EventAction(); +class H02EventAction : public G4UserEventAction { +public: + H02EventAction(); + ~H02EventAction(); - public: - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); - - private: - G4int colID1; - G4int colID2; + virtual void BeginOfEventAction(const G4Event* anEvent); + virtual void EndOfEventAction(const G4Event* anEvent); }; #endif - - diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh similarity index 76% rename from examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh index f85024e95f..d493f161ff 100644 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh @@ -19,26 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: PersEx02DetectorConstruction.hh,v 1.4 2001/07/11 09:58:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef PersEx02DetectorConstruction_h -#define PersEx02DetectorConstruction_h 1 +// ==================================================================== +// +// H02Field.hh +// $Id: H02Field.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// +// ==================================================================== +#ifndef H02_FIELD_H +#define H02_FIELD_H -#include "G4VUserDetectorConstruction.hh" #include "globals.hh" +#include "G4MagneticField.hh" -class PersEx02DetectorConstruction : public G4VUserDetectorConstruction -{ - public: - PersEx02DetectorConstruction(); - ~PersEx02DetectorConstruction(); - - public: - G4VPhysicalVolume* Construct(); +class H02Field : public G4MagneticField { +public: + H02Field() { } + ~H02Field() { } + + void GetFieldValue(const G4double Point[3], G4double* Bfield ) const; }; diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01PhysicsList.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh similarity index 63% rename from examples/extended/persistency/PersistentEx01/include/PersEx01PhysicsList.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh index 9560567abc..0d2bd1ae25 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01PhysicsList.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh @@ -20,54 +20,58 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PersEx01PhysicsList.hh,v 1.3 2001/07/11 09:58:12 gunter Exp $ +// +// $Id: H02GeneralPhysics.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// // ------------------------------------------------------------ // GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor // -// This class is a class derived from G4VUserPhysicsList -// for constructing all particles and processes. -// +// ------------------------------------------- // History -// first version 10 Jan. 1998 by H.Kurashige +// first version 12 Nov. 2000 by H.Kurashige // ------------------------------------------------------------ -#ifndef PersEx01PhysicsList_h -#define PersEx01PhysicsList_h 1 +#ifndef H02GeneralPhysics_h +#define H02GeneralPhysics_h 1 -#include "G4VUserPhysicsList.hh" #include "globals.hh" +#include "G4ios.hh" -class PersEx01PhysicsList: public G4VUserPhysicsList +#include "G4VPhysicsConstructor.hh" + + +#include "G4Decay.hh" + +class H02GeneralPhysics : public G4VPhysicsConstructor { - public: - PersEx01PhysicsList(); - virtual ~PersEx01PhysicsList(); + public: + H02GeneralPhysics(const G4String& name = "general"); + virtual ~H02GeneralPhysics(); - protected: - // Construct particle and physics + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated 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(); - // - virtual void SetCuts(); - protected: - // these methods Construct particles - virtual void ConstructBosons(); - virtual void ConstructLeptons(); - virtual void ConstructMesons(); - virtual void ConstructBaryons(); - virtual void ConstructIons(); - - protected: - // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); - + G4Decay fDecayProcess; }; + #endif + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh new file mode 100644 index 0000000000..d4851a172c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh @@ -0,0 +1,337 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +//======================== +// taken from example N04 of G4 distribution +//======================== +#ifndef H02HadronPhysics_h +#define H02HadronPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/vector" + +#include "G4VPhysicsConstructor.hh" + +#include "G4MultipleScattering.hh" +#include "G4hIonisation.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" + +#include "G4PionPlusInelasticProcess.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4KaonPlusInelasticProcess.hh" +#include "G4KaonZeroSInelasticProcess.hh" +#include "G4KaonZeroLInelasticProcess.hh" +#include "G4KaonMinusInelasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4AntiNeutronInelasticProcess.hh" +#include "G4LambdaInelasticProcess.hh" +#include "G4AntiLambdaInelasticProcess.hh" +#include "G4SigmaPlusInelasticProcess.hh" +#include "G4SigmaMinusInelasticProcess.hh" +#include "G4AntiSigmaPlusInelasticProcess.hh" +#include "G4AntiSigmaMinusInelasticProcess.hh" +#include "G4XiZeroInelasticProcess.hh" +#include "G4XiMinusInelasticProcess.hh" +#include "G4AntiXiZeroInelasticProcess.hh" +#include "G4AntiXiMinusInelasticProcess.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4OmegaMinusInelasticProcess.hh" +#include "G4AntiOmegaMinusInelasticProcess.hh" + +// Low-energy Models +#include "G4LElastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" + +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4LEKaonPlusInelastic.hh" +#include "G4LEKaonZeroSInelastic.hh" +#include "G4LEKaonZeroLInelastic.hh" +#include "G4LEKaonMinusInelastic.hh" +#include "G4LEProtonInelastic.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LEAntiNeutronInelastic.hh" +#include "G4LELambdaInelastic.hh" +#include "G4LEAntiLambdaInelastic.hh" +#include "G4LESigmaPlusInelastic.hh" +#include "G4LESigmaMinusInelastic.hh" +#include "G4LEAntiSigmaPlusInelastic.hh" +#include "G4LEAntiSigmaMinusInelastic.hh" +#include "G4LEXiZeroInelastic.hh" +#include "G4LEXiMinusInelastic.hh" +#include "G4LEAntiXiZeroInelastic.hh" +#include "G4LEAntiXiMinusInelastic.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4LETritonInelastic.hh" +#include "G4LEAlphaInelastic.hh" +#include "G4LEOmegaMinusInelastic.hh" +#include "G4LEAntiOmegaMinusInelastic.hh" + +// High-energy Models + +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4HEKaonPlusInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonMinusInelastic.hh" +#include "G4HEProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4HENeutronInelastic.hh" +#include "G4HEAntiNeutronInelastic.hh" +#include "G4HELambdaInelastic.hh" +#include "G4HEAntiLambdaInelastic.hh" +#include "G4HESigmaPlusInelastic.hh" +#include "G4HESigmaMinusInelastic.hh" +#include "G4HEAntiSigmaPlusInelastic.hh" +#include "G4HEAntiSigmaMinusInelastic.hh" +#include "G4HEXiZeroInelastic.hh" +#include "G4HEXiMinusInelastic.hh" +#include "G4HEAntiXiZeroInelastic.hh" +#include "G4HEAntiXiMinusInelastic.hh" +#include "G4HEOmegaMinusInelastic.hh" +#include "G4HEAntiOmegaMinusInelastic.hh" + +// Stopping processes +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4AntiNeutronAnnihilationAtRest.hh" + +#ifdef TRIUMF_STOP_PIMINUS +#include "G4PionMinusAbsorptionAtRest.hh" +#else +#include "G4PiMinusAbsorptionAtRest.hh" +#endif +#ifdef TRIUMF_STOP_KMINUS +#include "G4KaonMinusAbsorption.hh" +#else +#include "G4KaonMinusAbsorptionAtRest.hh" +#endif + +// quark gluon string model with chips afterburner. +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + +class H02HadronPhysics : public G4VPhysicsConstructor +{ + public: + H02HadronPhysics(const G4String& name ="hadron"); + virtual ~H02HadronPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Elastic Process + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; + + // Pi + + G4PionPlusInelasticProcess thePionPlusInelastic; + G4LEPionPlusInelastic* theLEPionPlusModel; + G4MultipleScattering thePionPlusMult; + G4hIonisation thePionPlusIonisation; + + // Pi - + G4PionMinusInelasticProcess thePionMinusInelastic; + G4LEPionMinusInelastic* theLEPionMinusModel; + G4MultipleScattering thePionMinusMult; + G4hIonisation thePionMinusIonisation; +#ifdef TRIUMF_STOP_PIMINUS + G4PionMinusAbsorptionAtRest thePionMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest thePionMinusAbsorption; +#endif + + // pi+ and pi- + + G4TheoFSGenerator theTheoModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + + // K + + G4KaonPlusInelasticProcess theKaonPlusInelastic; + G4LEKaonPlusInelastic* theLEKaonPlusModel; + G4HEKaonPlusInelastic* theHEKaonPlusModel; + G4MultipleScattering theKaonPlusMult; + G4hIonisation theKaonPlusIonisation; + + // K - + G4KaonMinusInelasticProcess theKaonMinusInelastic; + G4LEKaonMinusInelastic* theLEKaonMinusModel; + G4HEKaonMinusInelastic* theHEKaonMinusModel; + G4MultipleScattering theKaonMinusMult; + G4hIonisation theKaonMinusIonisation; +#ifdef TRIUMF_STOP_KMINUS + G4KaonMinusAbsorption theKaonMinusAbsorption; +#else + G4PiMinusAbsorptionAtRest theKaonMinusAbsorption; +#endif + + // K0L + G4KaonZeroLInelasticProcess theKaonZeroLInelastic; + G4LEKaonZeroLInelastic* theLEKaonZeroLModel; + G4HEKaonZeroInelastic* theHEKaonZeroLModel; + + // K0S + G4KaonZeroSInelasticProcess theKaonZeroSInelastic; + G4LEKaonZeroSInelastic* theLEKaonZeroSModel; + G4HEKaonZeroInelastic* theHEKaonZeroSModel; + + // Proton + G4ProtonInelasticProcess theProtonInelastic; + G4LEProtonInelastic* theLEProtonModel; + G4HEProtonInelastic* theHEProtonModel; + G4MultipleScattering theProtonMult; + G4hIonisation theProtonIonisation; + + // anti-proton + G4AntiProtonInelasticProcess theAntiProtonInelastic; + G4LEAntiProtonInelastic* theLEAntiProtonModel; + G4HEAntiProtonInelastic* theHEAntiProtonModel; + G4MultipleScattering theAntiProtonMult; + G4hIonisation theAntiProtonIonisation; + G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation; + + // neutron + G4NeutronInelasticProcess theNeutronInelastic; + G4LENeutronInelastic* theLENeutronModel; + G4HENeutronInelastic* theHENeutronModel; + G4HadronFissionProcess theNeutronFission; + G4LFission* theNeutronFissionModel; + G4HadronCaptureProcess theNeutronCapture; + G4LCapture* theNeutronCaptureModel; + + + // anti-neutron + G4AntiNeutronInelasticProcess theAntiNeutronInelastic; + G4LEAntiNeutronInelastic* theLEAntiNeutronModel; + G4HEAntiNeutronInelastic* theHEAntiNeutronModel; + G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation; + + // Lambda + G4LambdaInelasticProcess theLambdaInelastic; + G4LELambdaInelastic* theLELambdaModel; + G4HELambdaInelastic* theHELambdaModel; + + // AntiLambda + G4AntiLambdaInelasticProcess theAntiLambdaInelastic; + G4LEAntiLambdaInelastic* theLEAntiLambdaModel; + G4HEAntiLambdaInelastic* theHEAntiLambdaModel; + + // SigmaMinus + G4SigmaMinusInelasticProcess theSigmaMinusInelastic; + G4LESigmaMinusInelastic* theLESigmaMinusModel; + G4HESigmaMinusInelastic* theHESigmaMinusModel; + G4MultipleScattering theSigmaMinusMult; + G4hIonisation theSigmaMinusIonisation; + + // AntiSigmaMinus + G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic; + G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel; + G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel; + G4MultipleScattering theAntiSigmaMinusMult; + G4hIonisation theAntiSigmaMinusIonisation; + + // SigmaPlus + G4SigmaPlusInelasticProcess theSigmaPlusInelastic; + G4LESigmaPlusInelastic* theLESigmaPlusModel; + G4HESigmaPlusInelastic* theHESigmaPlusModel; + G4MultipleScattering theSigmaPlusMult; + G4hIonisation theSigmaPlusIonisation; + + // AntiSigmaPlus + G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic; + G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel; + G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel; + G4MultipleScattering theAntiSigmaPlusMult; + G4hIonisation theAntiSigmaPlusIonisation; + + // XiZero + G4XiZeroInelasticProcess theXiZeroInelastic; + G4LEXiZeroInelastic* theLEXiZeroModel; + G4HEXiZeroInelastic* theHEXiZeroModel; + + // AntiXiZero + G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic; + G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel; + G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel; + + // XiMinus + G4XiMinusInelasticProcess theXiMinusInelastic; + G4LEXiMinusInelastic* theLEXiMinusModel; + G4HEXiMinusInelastic* theHEXiMinusModel; + G4MultipleScattering theXiMinusMult; + G4hIonisation theXiMinusIonisation; + + // AntiXiMinus + G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic; + G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel; + G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel; + G4MultipleScattering theAntiXiMinusMult; + G4hIonisation theAntiXiMinusIonisation; + + // OmegaMinus + G4OmegaMinusInelasticProcess theOmegaMinusInelastic; + G4LEOmegaMinusInelastic* theLEOmegaMinusModel; + G4HEOmegaMinusInelastic* theHEOmegaMinusModel; + G4MultipleScattering theOmegaMinusMult; + G4hIonisation theOmegaMinusIonisation; + + // AntiOmegaMinus + G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic; + G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel; + G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel; + G4MultipleScattering theAntiOmegaMinusMult; + G4hIonisation theAntiOmegaMinusIonisation; + + +}; + + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh new file mode 100644 index 0000000000..fdf8b19902 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: H02IonPhysics.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef H02IonPhysics_h +#define H02IonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4LElastic.hh" + +#include "G4DeuteronInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" + +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" + +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" + +class H02IonPhysics : public G4VPhysicsConstructor +{ + public: + H02IonPhysics(const G4String& name="ion"); + virtual ~H02IonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Elastic Process + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; + + // Generic Ion physics + G4MultipleScattering fIonMultipleScattering; + G4hIonisation fIonIonisation; + + // Deuteron physics + G4MultipleScattering fDeuteronMultipleScattering; + G4hIonisation fDeuteronIonisation; + G4DeuteronInelasticProcess fDeuteronProcess; + G4LEDeuteronInelastic* fDeuteronModel; + + // Triton physics + G4MultipleScattering fTritonMultipleScattering; + G4hIonisation fTritonIonisation; + G4TritonInelasticProcess fTritonProcess; + G4LETritonInelastic* fTritonModel; + + // Alpha physics + G4MultipleScattering fAlphaMultipleScattering; + G4hIonisation fAlphaIonisation; + G4AlphaInelasticProcess fAlphaProcess; + G4LEAlphaInelastic* fAlphaModel; + + // He3 physics + G4MultipleScattering fHe3MultipleScattering; + G4hIonisation fHe3Ionisation; + +}; + + +#endif + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh new file mode 100644 index 0000000000..4416c99990 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh @@ -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. * +// ******************************************************************** + +// ==================================================================== +// +// H02MuonHit.hh +// $Id: H02MuonHit.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// +// ==================================================================== +#ifndef H02_MUON_HIT_H +#define H02_MUON_HIT_H + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class H02MuonHit : public G4VHit { +private: + G4int moduleID; + G4String pname; + G4ThreeVector momentum; + G4ThreeVector position; + G4double tof; + +public: + H02MuonHit(); + H02MuonHit(G4int imod, G4String aname, const G4ThreeVector& pxyz, + const G4ThreeVector& xyz, G4double atof); + ~H02MuonHit(); + + H02MuonHit(const H02MuonHit& right); + const H02MuonHit& operator=(const H02MuonHit& right); + int operator==(const H02MuonHit& right) const; + + void* operator new(size_t); + void operator delete(void* aHit); + + // set/get functions... + void SetModuleID(G4int i); + G4int GetModuleID() const; + + void SetParticle(G4String aname); + G4String GetParticle() const; + + void SetMomentum(const G4ThreeVector& pxyz); + G4ThreeVector GetMomentum() const; + + void SetPosition(const G4ThreeVector& xyz); + G4ThreeVector GetPosition() const; + + void SetTOF(G4double atof); + G4double GetTOF() const; + + // methods... + virtual void Draw(); + virtual void Print(); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void H02MuonHit::SetModuleID(G4int i) { moduleID=i; } +inline G4int H02MuonHit::GetModuleID() const { return moduleID; } + +inline void H02MuonHit::SetParticle(G4String aname) { pname=aname; } +inline G4String H02MuonHit::GetParticle() const { return pname; } + +inline void H02MuonHit::SetMomentum(const G4ThreeVector& pxyz) +{ momentum=pxyz; } +inline G4ThreeVector H02MuonHit::GetMomentum() const { return momentum; } + +inline void H02MuonHit::SetPosition(const G4ThreeVector& xyz) { position=xyz; } +inline G4ThreeVector H02MuonHit::GetPosition() const { return position; } + +inline void H02MuonHit::SetTOF(G4double atof) { tof=atof; } +inline G4double H02MuonHit::GetTOF() const { return tof; } + +typedef G4THitsCollection H02MuonHitsCollection; +extern G4Allocator H02MuonHitAllocator; + +inline void* H02MuonHit::operator new(size_t) +{ + void* aHit; + aHit= (void*)H02MuonHitAllocator.MallocSingle(); + return aHit; +} + +inline void H02MuonHit::operator delete(void* aHit) +{ + H02MuonHitAllocator.FreeSingle((H02MuonHit*) aHit); +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh new file mode 100644 index 0000000000..f75b02c6df --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: H02MuonPhysics.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------- +// History +// first version 12 Nov. 2000 by H.Kurashige +// ------------------------------------------------------------ +#ifndef H02MuonPhysics_h +#define H02MuonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4MultipleScattering.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuIonisation.hh" +#include "G4hIonisation.hh" + +#include "G4MuonMinusCaptureAtRest.hh" + +class H02MuonPhysics : public G4VPhysicsConstructor +{ + public: + H02MuonPhysics(const G4String& name="muon"); + virtual ~H02MuonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + protected: + // Muon physics + G4MultipleScattering fMuPlusMultipleScattering; + G4MuBremsstrahlung fMuPlusBremsstrahlung ; + G4MuPairProduction fMuPlusPairProduction; + G4MuIonisation fMuPlusIonisation; + + G4MultipleScattering fMuMinusMultipleScattering; + G4MuBremsstrahlung fMuMinusBremsstrahlung ; + G4MuPairProduction fMuMinusPairProduction; + G4MuIonisation fMuMinusIonisation; + + G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; + + // Tau physics + G4MultipleScattering fTauPlusMultipleScattering; + G4hIonisation fTauPlusIonisation; + + G4MultipleScattering fTauMinusMultipleScattering; + G4hIonisation fTauMinusIonisation; + +}; + + +#endif + diff --git a/examples/extended/biasing/B06/include/B06Scorer.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh similarity index 66% rename from examples/extended/biasing/B06/include/B06Scorer.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh index 93d6e7dba0..26ab602dec 100644 --- a/examples/extended/biasing/B06/include/B06Scorer.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh @@ -19,39 +19,38 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B06Scorer.hh,v 1.3 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef G4Pscorer_hh -#define G4Pscorer_hh G4Pscorer_hh - -#include "g4std/iostream" - -#include "G4VPScorer.hh" -#include "G4PMapPtkTallys.hh" +// ==================================================================== +// +// H02MuonSD.hh +// $Id: H02MuonSD.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// +// ==================================================================== +#ifndef H02_MUON_SD_H +#define H02_MUON_SD_H + +#include "G4VSensitiveDetector.hh" +#include "H02MuonHit.hh" class G4Step; -class G4PStep; -class G4VIStore; +class G4HCofThisEvent; +class G4TouchableHistory; -class B06Scorer : public G4VPScorer -{ -public: - B06Scorer(const G4VIStore &IStore); - ~B06Scorer(); - void Score(const G4Step &aStep, const G4PStep &aPStep); - const G4PMapPtkTallys &GetMapPtkTallys() const { return fPtkTallys; } - G4bool CorrectWeight() const {return fCorrectWeight;} - void ResetCorrectWeight() {fCorrectWeight = true;} +class H02MuonSD : public G4VSensitiveDetector { private: - G4PMapPtkTallys fPtkTallys; - const G4VIStore &fIStore; - G4bool fCorrectWeight; + H02MuonHitsCollection* hitCollection; + +public: + H02MuonSD(G4String name); + ~H02MuonSD(); + + virtual void Initialize(G4HCofThisEvent* HCE); + virtual G4bool ProcessHits(G4Step* astep, G4TouchableHistory* ROhist); + virtual void EndOfEvent(G4HCofThisEvent* HCE); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + }; -G4std::ostream& operator<<(G4std::ostream &out, const B06Scorer &ps); - #endif diff --git a/source/persistency/digits+hits/digits/src/G4PVDigit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PhysicsList.hh similarity index 82% rename from source/persistency/digits+hits/digits/src/G4PVDigit.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PhysicsList.hh index 3315e05515..3155c8b6e9 100644 --- a/source/persistency/digits+hits/digits/src/G4PVDigit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PhysicsList.hh @@ -20,26 +20,27 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PVDigit.cc,v 1.3 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#ifndef H02PhysicsList_h +#define H02PhysicsList_h 1 -#include "G4PVDigit.hh" +#include "G4VModularPhysicsList.hh" #include "globals.hh" -G4PVDigit::G4PVDigit() -{;} +class H02PhysicsList: public G4VModularPhysicsList +{ +public: + H02PhysicsList(); + virtual ~H02PhysicsList(); + +public: + // SetCuts() + virtual void SetCuts(); -G4PVDigit::~G4PVDigit() -{;} -int G4PVDigit::operator==(const G4PVDigit &right) const -{ return false; } +}; + + +#endif -void G4PVDigit::Draw() -{;} -void G4PVDigit::Print() -{;} diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..67dce7a0d6 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PrimaryGeneratorAction.hh +// $Id: H02PrimaryGeneratorAction.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// +// ==================================================================== +#ifndef H02_PRIMARY_GENERATOR_ACTION_H +#define H02_PRIMARY_GENERATOR_ACTION_H + +#include "g4std/map" +#include "globals.hh" +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4Event; +class G4VPrimaryGenerator; +class H02PrimaryGeneratorMessenger; + +class H02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { +private: + G4VPrimaryGenerator* particleGun; + G4VPrimaryGenerator* hepmcAscii; + G4VPrimaryGenerator* pythiaGen; + + G4VPrimaryGenerator* currentGenerator; + G4String currentGeneratorName; + std::map gentypeMap; + + H02PrimaryGeneratorMessenger* messenger; + +public: + H02PrimaryGeneratorAction(); + ~H02PrimaryGeneratorAction(); + + virtual void GeneratePrimaries(G4Event* anEvent); + + void SetGenerator(G4VPrimaryGenerator* gen); + void SetGenerator(G4String genname); + + G4VPrimaryGenerator* GetGenerator() const; + G4String GetGeneratorName() const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void H02PrimaryGeneratorAction::SetGenerator(G4VPrimaryGenerator* gen) +{ + currentGenerator= gen; +} + +inline void H02PrimaryGeneratorAction::SetGenerator(G4String genname) +{ + map::iterator pos= gentypeMap.find(genname); + if(pos != gentypeMap.end()) { + currentGenerator= pos->second; + currentGeneratorName= genname; + } +} + +inline G4VPrimaryGenerator* H02PrimaryGeneratorAction::GetGenerator() const +{ + return currentGenerator; +} + +inline G4String H02PrimaryGeneratorAction::GetGeneratorName() const +{ + return currentGeneratorName; +} + +#endif diff --git a/examples/extended/biasing/B08/include/B08MainMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh similarity index 65% rename from examples/extended/biasing/B08/include/B08MainMessenger.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh index 1eaa88f458..67a60b676d 100644 --- a/examples/extended/biasing/B08/include/B08MainMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh @@ -19,45 +19,40 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B08MainMessenger.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef B08MainMessenger_hh -#define B08MainMessenger_hh B08MainMessenger_hh +// ==================================================================== +// +// H02PrimaryGeneratorMessenger.hh +// $Id: H02PrimaryGeneratorMessenger.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// +// ==================================================================== +#ifndef H02_PRIMARY_GENERATOR_MESSENGER_H +#define H02_PRIMARY_GENERATOR_MESSENGER_H -#include "G4UImessenger.hh" #include "globals.hh" -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADouble; +#include "G4UImessenger.hh" + +class H02PrimaryGeneratorAction; +class G4UIdirectory; class G4UIcommand; +class G4UIcmdWithoutParameter; +class G4UIcmdWithABool; +class G4UIcmdWithAnInteger; +class G4UIcmdWithAString; - -class B08MainMessenger: public G4UImessenger{ -public: - B08MainMessenger(); - ~B08MainMessenger(){} - void SetNewValue(G4UIcommand* pCmd,G4String szValue); - G4String GetResultsFileName() const {return fResultsFileName;} - G4int GetNumberOfEvents() const {return fNumberOfEvents;} - G4double GetUpperLimit() const {return fUpper;} - G4double GetLowerLimit() const {return fLower;} - +class H02PrimaryGeneratorMessenger : public G4UImessenger { private: - G4String fResultsFileName; - G4int fNumberOfEvents; - G4double fUpper; - G4double fLower; + H02PrimaryGeneratorAction* primaryAction; - G4UIcmdWithAString *fCmdFn; - G4UIcmdWithAnInteger *fCmdEv; - G4UIcmdWithADouble *fCmdUpper; - G4UIcmdWithADouble *fCmdLower; + G4UIdirectory* dir; + G4UIcmdWithAString* select; + +public: + H02PrimaryGeneratorMessenger(H02PrimaryGeneratorAction* genaction); + ~H02PrimaryGeneratorMessenger(); - + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); }; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh new file mode 100644 index 0000000000..3ed208ec57 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PythiaInterface.hh +// $Id: H02PythiaInterface.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// +// A generic interface class with Pythia event generator via HepMC. +// +// ==================================================================== +#ifndef H02_PYTHIA_INTERFACE_H +#define H02_PYTHIA_INTERFACE_H + +#include "G4HepMCInterface.hh" + +namespace HepMC { + class CBhepevt; +} +class H02PythiaMessenger; + +class H02PythiaInterface : public G4HepMCInterface { +protected: + G4int verbose; + G4int mpylist; + HepMC::CBhepevt* hepevtio; + + H02PythiaMessenger* messenger; + + // In default, this is automatic conversion, Pythia->HEPEVT->HepMC, + // by HepMC utilities. + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + H02PythiaInterface(); + ~H02PythiaInterface(); + + // set/get methods + void SetVerboseLevel(G4int i); + G4int GetVerboseLevel() const; + + void SetPylist(G4int i); + G4int GetPylist() const; + + // call pyxxx + void CallPyinit(G4String frame, G4String beam, + G4String target, G4double win); + void CallPystat(G4int istat); + void CallPygive(G4String par); + void CallPyrget(G4int lun, G4int move); + void CallPyrset(G4int lun, G4int move); + void CallPyevnt(); + void CallPylist(G4int mode); + void CallPyhepc(G4int mode); + + // random numbers operations + void SetRandomSeed(G4int iseed); + void PrintRandomStatus(G4std::ostream& ostr=G4cout) const; + + // setup user parameters (empty in default). + // Implement your parameters in a delived class if you want. + virtual void SetUserParameters(); + + virtual void Print() const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void H02PythiaInterface::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int H02PythiaInterface::GetVerboseLevel() const +{ + return verbose; +} + +inline void H02PythiaInterface::SetPylist(G4int i) +{ + mpylist= i; +} + +inline G4int H02PythiaInterface::GetPylist() const +{ + return mpylist; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh new file mode 100644 index 0000000000..988f013402 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// HepMCG4GenericPythiaMessenger.hh +// $Id: H02PythiaMessenger.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// +// ==================================================================== +#ifndef H02_PYTHIA_MESSENGER_H +#define H02_PYTHIA_MESSENGER_H + +#include "G4UImessenger.hh" + +class H02PythiaInterface; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class H02PythiaMessenger : public G4UImessenger { +private: + H02PythiaInterface* gen; + + G4UIdirectory* dir; + G4UIcmdWithAnInteger* verbose; + G4UIcmdWithAnInteger* mpylist; + G4UIcmdWithoutParameter* print; + G4UIcommand* cpyinit; + G4UIcmdWithAnInteger* cpystat; + G4UIcommand* cpygive; + G4UIcommand* setUserParameters; + G4UIcmdWithAnInteger* setSeed; + G4UIcommand* cpyrget; + G4UIcommand* cpyrset; + G4UIcmdWithAString* printRandomStatus; + +public: + H02PythiaMessenger(H02PythiaInterface* agen); + ~H02PythiaMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/biasing/B04/include/B04DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh similarity index 74% rename from examples/extended/biasing/B04/include/B04DetectorConstruction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh index 994d87c92a..1c80f9c234 100644 --- a/examples/extended/biasing/B04/include/B04DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh @@ -19,26 +19,24 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** + +// ==================================================================== // +// H02SteppingAction.hh +// $Id: H02SteppingAction.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ // -// $Id: B04DetectorConstruction.hh,v 1.2 2002/04/19 10:54:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// ==================================================================== +#ifndef H02_STEPPING_ACTION_H +#define H02_STEPPING_ACTION_H -#ifndef B04DetectorConstruction_hh -#define B04DetectorConstruction_hh B04DetectorConstruction_hh +#include "G4UserSteppingAction.hh" -class G4VPhysicalVolume; - -#include "G4VUserDetectorConstruction.hh" - -class B04DetectorConstruction : public G4VUserDetectorConstruction -{ +class H02SteppingAction : public G4UserSteppingAction { public: - B04DetectorConstruction(); - ~B04DetectorConstruction(); + H02SteppingAction(); + virtual ~H02SteppingAction(); - G4VPhysicalVolume* Construct(); + virtual void UserSteppingAction(const G4Step* astep); }; #endif diff --git a/examples/extended/biasing/B07/include/B07DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh similarity index 76% rename from examples/extended/biasing/B07/include/B07DetectorConstruction.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh index 7cb485c3c1..b8a5a4020f 100644 --- a/examples/extended/biasing/B07/include/B07DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh @@ -19,26 +19,26 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** + +// ==================================================================== // +// H02VisManager.hh +// $Id: H02VisManager.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ // -// $Id: B07DetectorConstruction.hh,v 1.2 2002/04/19 10:54:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// ==================================================================== +#ifndef H02_VIS_MANAGER_H +#define H02_VIS_MANAGER_H -#ifndef B07DetectorConstruction_hh -#define B07DetectorConstruction_hh B07DetectorConstruction_hh +#include "G4VisManager.hh" -class G4VPhysicalVolume; - -#include "G4VUserDetectorConstruction.hh" - -class B07DetectorConstruction : public G4VUserDetectorConstruction -{ +class H02VisManager : public G4VisManager { public: - B07DetectorConstruction(); - ~B07DetectorConstruction(); - - G4VPhysicalVolume* Construct(); + H02VisManager(); + ~H02VisManager(); + +private: + virtual void RegisterGraphicsSystems(); + }; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyh4mu.mac b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyh4mu.mac new file mode 100644 index 0000000000..d4b3e63e60 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyh4mu.mac @@ -0,0 +1,47 @@ +/generator/pythia/pygive PMAS(6,1)=174.3D0 +/generator/pythia/pygive PMAS(25,1)=200.D0 + +/generator/pythia/pygive MSEL=0 +/generator/pythia/pygive MSUB(102)=1 +/generator/pythia/pygive MSUB(123)=1 +/generator/pythia/pygive MSUB(124)=1 + +/generator/pythia/pygive MDME(210,1)=0 +/generator/pythia/pygive MDME(211,1)=0 +/generator/pythia/pygive MDME(212,1)=0 +/generator/pythia/pygive MDME(213,1)=0 +/generator/pythia/pygive MDME(214,1)=0 +/generator/pythia/pygive MDME(215,1)=0 +/generator/pythia/pygive MDME(218,1)=0 +/generator/pythia/pygive MDME(219,1)=0 +/generator/pythia/pygive MDME(220,1)=0 +/generator/pythia/pygive MDME(222,1)=0 +/generator/pythia/pygive MDME(223,1)=0 +/generator/pythia/pygive MDME(224,1)=0 +/generator/pythia/pygive MDME(225,1)=1 +/generator/pythia/pygive MDME(226,1)=0 +/generator/pythia/pygive MDME(216,1)=-1 +/generator/pythia/pygive MDME(217,1)=-1 +/generator/pythia/pygive MDME(218,1)=-1 + +/generator/pythia/pygive MDME(174,1)=0 +/generator/pythia/pygive MDME(175,1)=0 +/generator/pythia/pygive MDME(176,1)=0 +/generator/pythia/pygive MDME(177,1)=0 +/generator/pythia/pygive MDME(178,1)=0 +/generator/pythia/pygive MDME(179,1)=0 +/generator/pythia/pygive MDME(182,1)=0 +/generator/pythia/pygive MDME(183,1)=0 +/generator/pythia/pygive MDME(184,1)=1 +/generator/pythia/pygive MDME(185,1)=0 +/generator/pythia/pygive MDME(186,1)=0 +/generator/pythia/pygive MDME(187,1)=0 +/generator/pythia/pygive MDME(180,1)=-1 +/generator/pythia/pygive MDME(181,1)=-1 +/generator/pythia/pygive MDME(188,1)=-1 +/generator/pythia/pygive MDME(189,1)=-1 + +/generator/pythia/pygive MSTP(61)=1 +/generator/pythia/pygive MSTP(71)=1 +/generator/pythia/pygive MSTP(81)=1 +/generator/pythia/pygive MSTP(111)=1 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyset.mac b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyset.mac new file mode 100644 index 0000000000..c4177f91fa --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/pyset.mac @@ -0,0 +1,4 @@ +/generator/select pythia +/control/execute pyh4mu.mac +/generator/pythia/pyinit cms p p 14000 + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc new file mode 100644 index 0000000000..322ee88c15 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc @@ -0,0 +1,259 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// H02DetectorConstruction.cc +// $Id: H02DetectorConstruction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02DetectorConstruction.hh" + +#include "G4Element.hh" +#include "G4Material.hh" + +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4VisAttributes.hh" +#include "G4Tubs.hh" +#include "G4Box.hh" + +#include "G4SDManager.hh" +#include "H02MuonSD.hh" + +// for magnetic field +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4ChordFinder.hh" +#include "H02Field.hh" + +// ==================================================================== +// +// constants (detector parameters) +// +// ==================================================================== +// [experimental hall] +static const G4double R_EXPHALL= 5.*m; +static const G4double DZ_EXPHALL= 10.*m; + +// [calorimeter] +static const G4double RIN_BARREL_CAL= 2.*m; +static const G4double ROUT_BARREL_CAL= 3.*m; +static const G4double DZ_BARREL_CAL= 5.*m; + +static const G4double RIN_ENDCAP_CAL= 1.*m; +static const G4double ROUT_ENDCAP_CAL= 3.*m; +static const G4double DZ_ENDCAP_CAL= 0.5*m; + +// [muon system] +static const G4double RIN_BARREL_MUON= 4.3*m; +static const G4double ROUT_BARREL_MUON= 4.5*m; +static const G4double DX_BARREL_MUON= RIN_BARREL_MUON*cos(67.5*deg)-5.*cm; +static const G4double DY_BARREL_MUON= 10.*cm; +static const G4double DZ_BARREL_MUON= 7.*m; + +static const G4double RIN_ENDCAP_MUON= 1.*m; +static const G4double ROUT_ENDCAP_MUON= 4.5*m; +static const G4double DZ_ENDCAP_MUON= 10.*cm; + +// ==================================================================== +// +// class description +// +// ==================================================================== + +//////////////////////////////////////////////// +H02DetectorConstruction::H02DetectorConstruction() +//////////////////////////////////////////////// +{ +} + +///////////////////////////////////////////////// +H02DetectorConstruction::~H02DetectorConstruction() +///////////////////////////////////////////////// +{ +} + + +////////////////////////////////////////////////////// +G4VPhysicalVolume* H02DetectorConstruction::Construct() +////////////////////////////////////////////////////// +{ + // ============================================================== + // Materials + // ============================================================== + + G4double a, iz, z, density; + G4String name, symbol; + G4int nel; + + a= 1.01*g/mole; + G4Element* elH= new G4Element(name="Hydrogen", symbol="H", iz=1., a); + + a= 12.01*g/mole; + G4Element* elC= new G4Element(name="Carbon", symbol="C", iz=6., a); + + a= 14.01*g/mole; + G4Element* elN= new G4Element(name="Nitrogen", symbol="N", iz=7., a); + + a = 16.00*g/mole; + G4Element* elO= new G4Element(name="Oxygen", symbol="O", iz=8., a); + + density= 1.29e-03*g/cm3; + G4Material* Air= new G4Material(name="Air", density, nel=2); + Air-> AddElement(elN, .7); + Air-> AddElement(elO, .3); + + a= 207.19*g/mole; + density= 11.35*g/cm3; + G4Material* Lead= new G4Material(name="Lead", z=82., a, density); + + a= 39.95*g/mole; + density= 1.782e-03*g/cm3; + G4Material* Ar= new G4Material(name="ArgonGas", z=18., a, density); + + a= 28.09*g/mole; + density= 2.33*g/cm3; + G4Material* Silicon= new G4Material(name="Silicon", z=14., a, density); + + density= 1.032*g/cm3; + G4Material* Scinti= new G4Material(name="Scintillator", density, nel=2); + Scinti-> AddElement(elC, 9); + Scinti-> AddElement(elH, 10); + + + // ============================================================== + // Experimental Hall (world) + // ============================================================== + G4Tubs* expHallSolid= + new G4Tubs("EXP_HALL", 0., R_EXPHALL, DZ_EXPHALL, 0., 360.*deg); + + G4LogicalVolume* expHallLV= + new G4LogicalVolume(expHallSolid, Air, "EXP_HALL_LV"); + + // visualization attributes + G4VisAttributes* expHallVisAtt= + new G4VisAttributes(false, G4Colour(1., 1., 1.)); + //expHallVisAtt-> SetForceWireframe(TRUE); + expHallLV-> SetVisAttributes(expHallVisAtt); + + G4PVPlacement* expHall= new G4PVPlacement(0, G4ThreeVector(), "EXP_HALL_PV", + expHallLV, 0, FALSE, 0); + // ... MV, MANY, copy# + + // ============================================================== + // each detector component + // ============================================================== + // calorimeter system + G4Tubs* barrelCalSolid= + new G4Tubs("BARREL_CAL", RIN_BARREL_CAL, ROUT_BARREL_CAL, + DZ_BARREL_CAL, 0., 360.*deg); + + G4Tubs* endcapCalSolid= + new G4Tubs("ENDCAP_CAL", RIN_ENDCAP_CAL, ROUT_ENDCAP_CAL, + DZ_ENDCAP_CAL, 0., 360.*deg); + + G4LogicalVolume* barrelCalLV= + new G4LogicalVolume(barrelCalSolid, Lead, "BARREL_CAL_LV"); + + G4LogicalVolume* endcapCalLV= + new G4LogicalVolume(endcapCalSolid, Lead, "ENDCAP_CAL_LV"); + + G4VisAttributes* calVisAtt= + new G4VisAttributes(true, G4Colour(0., 1., 1.)); + barrelCalLV-> SetVisAttributes(calVisAtt); + endcapCalLV-> SetVisAttributes(calVisAtt); + + G4PVPlacement* barrelCal= + new G4PVPlacement(0, G4ThreeVector(), "BARREL_CAL_PV", + barrelCalLV, expHall, FALSE, 0); + + G4ThreeVector posCal(0.,0.,6.*m); + G4PVPlacement* endcapCal1= + new G4PVPlacement(0, posCal, "ENDCAP_CAL_PV", + endcapCalLV, expHall, FALSE, 0); + + G4PVPlacement* endcapCal2= + new G4PVPlacement(0, -posCal, "ENDCAP_CAL_PV", + endcapCalLV, expHall, FALSE, 1); + + // muon system + G4Box* barrelMuonSolid= new G4Box("BARREL_MUON", DX_BARREL_MUON, + DY_BARREL_MUON, DZ_BARREL_MUON); + G4Tubs* endcapMuonSolid= + new G4Tubs("ENDCAP_MUON", RIN_ENDCAP_MUON, ROUT_ENDCAP_MUON, + DZ_ENDCAP_MUON, 0., 360.*deg); + + G4LogicalVolume* barrelMuonLV= + new G4LogicalVolume(barrelMuonSolid, Ar, "BARREL_MUON_LV"); + + G4LogicalVolume* endcapMuonLV= + new G4LogicalVolume(endcapMuonSolid, Ar, "ENDCAP_MUON_LV"); + + G4VisAttributes* muonVisAtt= + new G4VisAttributes(true, G4Colour(1., 1., 0.5)); + //muonVisAtt-> SetForceWireframe(TRUE); + barrelMuonLV-> SetVisAttributes(muonVisAtt); + endcapMuonLV-> SetVisAttributes(muonVisAtt); + + const G4double dangle= 45.*deg; + G4ThreeVector posM(RIN_BARREL_MUON+DY_BARREL_MUON/2., 0., 0.); + G4RotationMatrix* rotM= new G4RotationMatrix; + rotM->rotateZ(90.*deg); + + G4RotationMatrix* rotMDA= new G4RotationMatrix; + for (G4int k=0; k<8; k++) { + G4Transform3D transformM(*rotM, posM); + new G4PVPlacement(transformM, "BARREL_MUON_PV", + barrelMuonLV, expHall, FALSE, k); + rotM->rotateZ(dangle); + posM.rotateZ(dangle); + } + + G4ThreeVector posMuon(0.,0.,8.*m); + G4PVPlacement* endcapMuon1= + new G4PVPlacement(0, posMuon, "ENDCAP_MUON_PV", + endcapMuonLV, expHall, FALSE, 0); + + G4PVPlacement* endcapMuon2= + new G4PVPlacement(0, -posMuon, "ENDCAP_MUON_PV", + endcapMuonLV, expHall, FALSE, 1); + + + // sensitive Detectors + G4SDManager* SDman= G4SDManager::GetSDMpointer(); + + G4String muonSDname= "/mydet/muon"; + H02MuonSD* muonSD= new H02MuonSD(muonSDname); + SDman-> AddNewDetector(muonSD); + barrelMuonLV-> SetSensitiveDetector(muonSD); + endcapMuonLV-> SetSensitiveDetector(muonSD); + + // magnetic field + H02Field* myfield = new H02Field; + G4FieldManager* fieldMgr= + G4TransportationManager::GetTransportationManager()-> GetFieldManager(); + fieldMgr-> SetDetectorField(myfield); + fieldMgr-> CreateChordFinder(myfield); + + return expHall; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc new file mode 100644 index 0000000000..eeb5436b0b --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: H02EMPhysics.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "H02EMPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +H02EMPhysics::H02EMPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +H02EMPhysics::~H02EMPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4Gamma.hh" + +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + +void H02EMPhysics::ConstructParticle() +{ + // gamma + G4Gamma::GammaDefinition(); + + // electron + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); +} + + +#include "G4ProcessManager.hh" + + +void H02EMPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Gamma Physics + pManager = G4Gamma::Gamma()->GetProcessManager(); + pManager->AddDiscreteProcess(&thePhotoEffect); + pManager->AddDiscreteProcess(&theComptonEffect); + pManager->AddDiscreteProcess(&thePairProduction); + + // Electron Physics + pManager = G4Electron::Electron()->GetProcessManager(); + // add processes + pManager->AddDiscreteProcess(&theElectronBremsStrahlung); + + pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theElectronMultipleScattering); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); + + //Positron Physics + pManager = G4Positron::Positron()->GetProcessManager(); + // add processes + pManager->AddDiscreteProcess(&thePositronBremsStrahlung); + + pManager->AddDiscreteProcess(&theAnnihilation); + + pManager->AddRestProcess(&theAnnihilation); + + pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePositronMultipleScattering); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc new file mode 100644 index 0000000000..838cad1d43 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02EventAction.cc +// $Id: H02EventAction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02EventAction.hh" + +#include "G4Event.hh" +#include "G4SDManager.hh" +#include "H02MuonSD.hh" + +// ==================================================================== +// +// class description +// +// ==================================================================== + +////////////////////////////// +H02EventAction::H02EventAction() +////////////////////////////// +{ +} + +/////////////////////////////// +H02EventAction::~H02EventAction() +/////////////////////////////// +{ +} + + +////////////////////////////////////////////////////////////// +void H02EventAction::BeginOfEventAction(const G4Event* anEvent) +////////////////////////////////////////////////////////////// +{ +#ifdef DEBUG_HEPMC + // printout primary information + G4cout << "Print out primary information" << G4endl; + G4int nVtx= anEvent-> GetNumberOfPrimaryVertex(); + G4int i; + for(i=0; i< nVtx; i++) { + const G4PrimaryVertex* primaryVertex= anEvent-> GetPrimaryVertex(i); + primaryVertex-> Print(); + } +#endif +} + +//////////////////////////////////////////////////////////// +void H02EventAction::EndOfEventAction(const G4Event* anEvent) +//////////////////////////////////////////////////////////// +{ + G4cout << " Print out hit information" << G4endl; + G4SDManager* SDManager= G4SDManager::GetSDMpointer(); + H02MuonSD* muonSD= + (H02MuonSD*)SDManager-> FindSensitiveDetector("/mydet/muon"); + muonSD-> PrintAll(); + muonSD-> DrawAll(); + G4cout << G4endl; +} diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc new file mode 100644 index 0000000000..f5158e5ec8 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H02Field.hh +// $Id: H02Field.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== + +#include "H02Field.hh" + +//////////////////////////////////////////////////////////////////////////// +void H02Field::GetFieldValue(const G4double Point[3], G4double* Bfield) const +//////////////////////////////////////////////////////////////////////////// +{ + const G4double Bz= 3.0*tesla; + const G4double rmax_sq = sqr(1.*m); + const G4double zmax = 1.*m; + + Bfield[0]= 0.; + Bfield[1] = 0.; + if(abs(Point[2])reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (fDecayProcess.IsApplicable(*particle)) { + pmanager ->AddProcess(&fDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(&fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(&fDecayProcess, idxAtRest); + } + } +} + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc new file mode 100644 index 0000000000..0bdeb877a8 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc @@ -0,0 +1,431 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include "H02HadronPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +H02HadronPhysics::H02HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +H02HadronPhysics::~H02HadronPhysics() +{ +delete theStringDecay; +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +// Nuclei +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +void H02HadronPhysics::ConstructParticle() +{ + // Construct all mesons + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + // Construct all barions + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + // Construct resonaces and quarks + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); + +} + + +#include "G4ProcessManager.hh" + + +void H02HadronPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + theElasticProcess.RegisterMe(theElasticModel); + + // pi+ and pi- + + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade.SetDeExcitation(thePreEquilib); + theTheoModel.SetTransport(&theCascade); + theTheoModel.SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); + theTheoModel.SetMinEnergy(15*GeV); + theTheoModel.SetMaxEnergy(100*TeV); + + // PionPlus + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionPlusModel = new G4LEPionPlusInelastic(); + thePionPlusInelastic.RegisterMe(theLEPionPlusModel); + thePionPlusInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&thePionPlusInelastic); + + pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePionPlusMult); + pManager->SetProcessOrdering(&thePionPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePionPlusMult, idxPostStep, 1); + + // PionMinus + pManager = G4PionMinus::PionMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEPionMinusModel = new G4LEPionMinusInelastic(); + thePionMinusInelastic.RegisterMe(theLEPionMinusModel); + thePionMinusInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&thePionMinusInelastic); + + pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&thePionMinusMult); + pManager->SetProcessOrdering(&thePionMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&thePionMinusMult, idxPostStep, 1); + + pManager->AddRestProcess(&thePionMinusAbsorption, ordDefault); + + // KaonPlus + pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonPlusModel = new G4LEKaonPlusInelastic(); + theHEKaonPlusModel = new G4HEKaonPlusInelastic(); + theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); + theKaonPlusInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&theKaonPlusInelastic); + + pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theKaonPlusMult); + pManager->SetProcessOrdering(&theKaonPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theKaonPlusMult, idxPostStep, 1); + + // KaonMinus + pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonMinusModel = new G4LEKaonMinusInelastic(); + theHEKaonMinusModel = new G4HEKaonMinusInelastic(); + theKaonMinusInelastic.RegisterMe(theLEKaonMinusModel); + theKaonMinusInelastic.RegisterMe(theHEKaonMinusModel); + pManager->AddDiscreteProcess(&theKaonMinusInelastic); + + pManager->AddProcess(&theKaonMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theKaonMinusMult); + pManager->SetProcessOrdering(&theKaonMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theKaonMinusMult, idxPostStep, 1); + + pManager->AddRestProcess(&theKaonMinusAbsorption, ordDefault); + + // KaonZeroL + pManager = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); + theHEKaonZeroLModel = new G4HEKaonZeroInelastic(); + theKaonZeroLInelastic.RegisterMe(theLEKaonZeroLModel); + theKaonZeroLInelastic.RegisterMe(theHEKaonZeroLModel); + pManager->AddDiscreteProcess(&theKaonZeroLInelastic); + + // KaonZeroS + pManager = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); + theHEKaonZeroSModel = new G4HEKaonZeroInelastic(); + theKaonZeroSInelastic.RegisterMe(theLEKaonZeroSModel); + theKaonZeroSInelastic.RegisterMe(theHEKaonZeroSModel); + pManager->AddDiscreteProcess(&theKaonZeroSInelastic); + + // Proton + pManager = G4Proton::Proton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEProtonModel = new G4LEProtonInelastic(); + theHEProtonModel = new G4HEProtonInelastic(); + theProtonInelastic.RegisterMe(theLEProtonModel); + theProtonInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&theProtonInelastic); + + pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theProtonMult); + pManager->SetProcessOrdering(&theProtonMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theProtonMult, idxPostStep, 1); + + // anti-Proton + pManager = G4AntiProton::AntiProton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiProtonModel = new G4LEAntiProtonInelastic(); + theHEAntiProtonModel = new G4HEAntiProtonInelastic(); + theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel); + theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel); + pManager->AddDiscreteProcess(&theAntiProtonInelastic); + + pManager->AddProcess(&theAntiProtonIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiProtonMult); + pManager->SetProcessOrdering(&theAntiProtonMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiProtonMult, idxPostStep, 1); + + pManager->AddRestProcess(&theAntiProtonAnnihilation); + + // Neutron + pManager = G4Neutron::Neutron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLENeutronModel = new G4LENeutronInelastic(); + theHENeutronModel = new G4HENeutronInelastic(); + theNeutronInelastic.RegisterMe(theLENeutronModel); + theNeutronInelastic.RegisterMe(&theTheoModel); + pManager->AddDiscreteProcess(&theNeutronInelastic); + + //theNeutronFissionModel = new G4LFission(); + //theNeutronFission.RegisterMe(theNeutronFissionModel); + //pManager->AddDiscreteProcess(&NeutronFission); + + //theNeutronCaptureModel = new G4LCapture(); + //theNeutronCapture.RegisterMe(theNeutronCaptureModel); + //pManager->AddDiscreteProcess(&theNeutronCapture); + + // AntiNeutron + pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiNeutronModel = new G4LEAntiNeutronInelastic(); + theHEAntiNeutronModel = new G4HEAntiNeutronInelastic(); + theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel); + theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel); + pManager->AddDiscreteProcess(&theAntiNeutronInelastic); + + pManager->AddRestProcess(&theAntiNeutronAnnihilation); + + // Lambda + pManager = G4Lambda::Lambda()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLELambdaModel = new G4LELambdaInelastic(); + theHELambdaModel = new G4HELambdaInelastic(); + theLambdaInelastic.RegisterMe(theLELambdaModel); + theLambdaInelastic.RegisterMe(theHELambdaModel); + pManager->AddDiscreteProcess(&theLambdaInelastic); + + // AntiLambda + pManager = G4AntiLambda::AntiLambda()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiLambdaModel = new G4LEAntiLambdaInelastic(); + theHEAntiLambdaModel = new G4HEAntiLambdaInelastic(); + theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel); + theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel); + pManager->AddDiscreteProcess(&theAntiLambdaInelastic); + + // SigmaMinus + pManager = G4SigmaMinus::SigmaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLESigmaMinusModel = new G4LESigmaMinusInelastic(); + theHESigmaMinusModel = new G4HESigmaMinusInelastic(); + theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel); + theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel); + pManager->AddDiscreteProcess(&theSigmaMinusInelastic); + + pManager->AddProcess(&theSigmaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theSigmaMinusMult); + pManager->SetProcessOrdering(&theSigmaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theSigmaMinusMult, idxPostStep, 1); + + // anti-SigmaMinus + pManager = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic(); + theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic(); + theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel); + theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel); + pManager->AddDiscreteProcess(&theAntiSigmaMinusInelastic); + + pManager->AddProcess(&theAntiSigmaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiSigmaMinusMult); + pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiSigmaMinusMult, idxPostStep, 1); + + // SigmaPlus + pManager = G4SigmaPlus::SigmaPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLESigmaPlusModel = new G4LESigmaPlusInelastic(); + theHESigmaPlusModel = new G4HESigmaPlusInelastic(); + theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel); + theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel); + pManager->AddDiscreteProcess(&theSigmaPlusInelastic); + + pManager->AddProcess(&theSigmaPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theSigmaPlusMult); + pManager->SetProcessOrdering(&theSigmaPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theSigmaPlusMult, idxPostStep, 1); + + // anti-SigmaPlus + pManager = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic(); + theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic(); + theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel); + theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel); + pManager->AddDiscreteProcess(&theAntiSigmaPlusInelastic); + + pManager->AddProcess(&theAntiSigmaPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiSigmaPlusMult); + pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiSigmaPlusMult, idxPostStep, 1); + + // XiMinus + pManager = G4XiMinus::XiMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEXiMinusModel = new G4LEXiMinusInelastic(); + theHEXiMinusModel = new G4HEXiMinusInelastic(); + theXiMinusInelastic.RegisterMe(theLEXiMinusModel); + theXiMinusInelastic.RegisterMe(theHEXiMinusModel); + pManager->AddDiscreteProcess(&theXiMinusInelastic); + + pManager->AddProcess(&theXiMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theXiMinusMult); + pManager->SetProcessOrdering(&theXiMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theXiMinusMult, idxPostStep, 1); + + // anti-XiMinus + pManager = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic(); + theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic(); + theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel); + theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel); + pManager->AddDiscreteProcess(&theAntiXiMinusInelastic); + + pManager->AddProcess(&theAntiXiMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiXiMinusMult); + pManager->SetProcessOrdering(&theAntiXiMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiXiMinusMult, idxPostStep, 1); + + // XiZero + pManager = G4XiZero::XiZero()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEXiZeroModel = new G4LEXiZeroInelastic(); + theHEXiZeroModel = new G4HEXiZeroInelastic(); + theXiZeroInelastic.RegisterMe(theLEXiZeroModel); + theXiZeroInelastic.RegisterMe(theHEXiZeroModel); + pManager->AddDiscreteProcess(&theXiZeroInelastic); + + // anti-XiZero + pManager = G4AntiXiZero::AntiXiZero()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic(); + theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic(); + theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel); + theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel); + pManager->AddDiscreteProcess(&theAntiXiZeroInelastic); + + // OmegaMinus + pManager = G4OmegaMinus::OmegaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEOmegaMinusModel = new G4LEOmegaMinusInelastic(); + theHEOmegaMinusModel = new G4HEOmegaMinusInelastic(); + theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel); + theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel); + pManager->AddDiscreteProcess(&theOmegaMinusInelastic); + + pManager->AddProcess(&theOmegaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theOmegaMinusMult); + pManager->SetProcessOrdering(&theOmegaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theOmegaMinusMult, idxPostStep, 1); + + // anti-OmegaMinus + pManager = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic(); + theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic(); + theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel); + theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel); + pManager->AddDiscreteProcess(&theAntiOmegaMinusInelastic); + + pManager->AddProcess(&theAntiOmegaMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&theAntiOmegaMinusMult); + pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxAlongStep, 1); + pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1); + +} + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc new file mode 100644 index 0000000000..69336c4fea --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc @@ -0,0 +1,140 @@ +// +// ******************************************************************** +// * 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: H02IonPhysics.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "H02IonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +H02IonPhysics::H02IonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +H02IonPhysics::~H02IonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +// Nuclei +#include "G4IonConstructor.hh" + +void H02IonPhysics::ConstructParticle() +{ + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); +} + + +#include "G4ProcessManager.hh" + + +void H02IonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + theElasticProcess.RegisterMe(theElasticModel); + + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fIonMultipleScattering); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fDeuteronModel = new G4LEDeuteronInelastic(); + fDeuteronProcess.RegisterMe(fDeuteronModel); + pManager->AddDiscreteProcess(&fDeuteronProcess); + + pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fDeuteronMultipleScattering); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); + + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fTritonModel = new G4LETritonInelastic(); + fTritonProcess.RegisterMe(fTritonModel); + pManager->AddDiscreteProcess(&fTritonProcess); + + pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fTritonMultipleScattering); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1); + + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + fAlphaModel = new G4LEAlphaInelastic(); + fAlphaProcess.RegisterMe(fAlphaModel); + pManager->AddDiscreteProcess(&fAlphaProcess); + + pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + + pManager->AddProcess(&fAlphaMultipleScattering); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); + + // He3 + pManager = G4He3::He3()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(&theElasticProcess); + + pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + + pManager->AddProcess(&fHe3MultipleScattering); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc new file mode 100644 index 0000000000..cf75bf2205 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02MuonHit.cc +// $Id: H02MuonHit.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02MuonHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "g4std/iomanip" + +G4Allocator H02MuonHitAllocator; + +//////////////////////// +H02MuonHit::H02MuonHit() + : moduleID(-1) +//////////////////////// +{ +} + +///////////////////////////////////////////////////////////// +H02MuonHit::H02MuonHit(G4int imod, G4String aname, + const G4ThreeVector& pxyz, + const G4ThreeVector& xyz, G4double atof) + : moduleID(imod), pname(aname), momentum(pxyz), + position(xyz), tof(atof) +///////////////////////////////////////////////////////////// +{ +} + +//////////////////////// +H02MuonHit::~H02MuonHit() +//////////////////////// +{ +} + +///////////////////////////////////////////// +H02MuonHit::H02MuonHit(const H02MuonHit& right) +///////////////////////////////////////////// +{ + *this= right; +} + +//////////////////////////////////////////////////////////////// +const H02MuonHit& H02MuonHit::operator=(const H02MuonHit& right) +//////////////////////////////////////////////////////////////// +{ + moduleID= right.moduleID; + pname= right.pname; + momentum= right.momentum; + position= right.position; + tof= right.tof; + + return *this; +} + +///////////////////////////////////////////////////////// +int H02MuonHit::operator==(const H02MuonHit& right) const +///////////////////////////////////////////////////////// +{ + return 0; +} + +/////////////////////// +void H02MuonHit::Draw() +/////////////////////// +{ + const G4double pt_min=20.*GeV; + + G4VVisManager* pVVisManager= G4VVisManager::GetConcreteInstance(); + if(pVVisManager) { + G4Circle circle(position); + circle.SetScreenSize(5.); + circle.SetFillStyle(G4Circle::filled); + + G4Color color, goodColor(1.,0.,0.), badColor(0.,0.,1.); + if(momentum.perp()>pt_min) color=goodColor; + else color=badColor; + + G4VisAttributes attribs(color); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +//////////////////////// +void H02MuonHit::Print() +//////////////////////// +{ + G4int id= moduleID; + G4String tag="B"; + if(moduleID >=10) { + id -=10; + tag="E"; + } + G4cout << tag << id << " :" << setw(12) << pname.c_str() + << " : pT=" << setprecision(3) << momentum.perp()/GeV + << " : TOF=" << setprecision(3) << tof/ns + << " : x=" << setprecision(3) << position*(1./m) + << G4endl; +} diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc new file mode 100644 index 0000000000..5e75a27135 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * 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: H02MuonPhysics.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "H02MuonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + + +H02MuonPhysics::H02MuonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +H02MuonPhysics::~H02MuonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" +#include "G4NeutrinoTau.hh" +#include "G4AntiNeutrinoTau.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" + +void H02MuonPhysics::ConstructParticle() +{ + // Mu + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + + // Tau + G4TauMinus::TauMinusDefinition(); + G4TauPlus::TauPlusDefinition(); + G4NeutrinoTau::NeutrinoTauDefinition(); + G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); + +} + + +#include "G4ProcessManager.hh" + +void H02MuonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Muon Plus Physics + pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuPlusPairProduction); + + pManager->AddProcess(&fMuPlusMultipleScattering); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1); + + // Muon Minus Physics + pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung); + + pManager->AddDiscreteProcess(&fMuMinusPairProduction); + + pManager->AddProcess(&fMuMinusMultipleScattering); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1); + pManager->AddRestProcess(&fMuMinusCaptureAtRest); + + // Tau Plus Physics + pManager = G4TauPlus::TauPlus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauPlusMultipleScattering); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1); + + // Tau Minus Physics + pManager = G4TauMinus::TauMinus()->GetProcessManager(); + // add processes + pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fTauMinusMultipleScattering); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1); + pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1); + +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc new file mode 100644 index 0000000000..b9606e5e93 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02MuonSD.cc +// $Id: H02MuonSD.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== + +#include "H02MuonSD.hh" +#include "H02MuonHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ios.hh" + +///////////////////////////////// +H02MuonSD::H02MuonSD(G4String name) + : G4VSensitiveDetector(name) +///////////////////////////////// +{ + G4String HCname; + collectionName.insert("muonHit"); +} + +/////////////////////////////////////////////// +H02MuonSD::~H02MuonSD() +/////////////////////////////////////////////// +{ +} + +/////////////////////////////////////////////// +void H02MuonSD::Initialize(G4HCofThisEvent* HCE) +/////////////////////////////////////////////// +{ + static int HCID=-1; + hitCollection= new H02MuonHitsCollection(SensitiveDetectorName, + collectionName[0]); + if(HCID<0) HCID= GetCollectionID(0); + HCE-> AddHitsCollection(HCID, hitCollection); +} + +/////////////////////////////////////////////////////////////////////// +G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory* ROhist) +/////////////////////////////////////////////////////////////////////// +{ + G4ParticleDefinition* particle= astep-> GetTrack()-> GetDefinition(); + if(particle-> GetPDGCharge() == 0.) return false; + + G4StepPoint* prestep= astep-> GetPreStepPoint(); + + if(prestep-> GetStepStatus() != fGeomBoundary) return false; + + G4ThreeVector vmom= prestep-> GetMomentum(); + G4ThreeVector vpos= prestep-> GetPosition(); + G4double tof= prestep-> GetGlobalTime(); + + G4VPhysicalVolume* volume= prestep-> GetPhysicalVolume(); + G4int id= volume-> GetCopyNo(); + if(volume-> GetName() == "ENDCAP_MUON_PV") id +=10; + + H02MuonHit* aHit= + new H02MuonHit(id, particle-> GetParticleName(), vmom, vpos, tof); + hitCollection-> insert(aHit); + return true; + +} + +/////////////////////////////////////////////// +void H02MuonSD::EndOfEvent(G4HCofThisEvent* HCE) +/////////////////////////////////////////////// +{ +} + +////////////////////// +void H02MuonSD::clear() +////////////////////// +{ +} + +//////////////////////// +void H02MuonSD::DrawAll() +//////////////////////// +{ + hitCollection-> DrawAllHits(); +} + +///////////////////////// +void H02MuonSD::PrintAll() +///////////////////////// +{ + G4int nHit= hitCollection-> entries(); + G4cout << "------------------------------------------" << G4endl + << "*** Muon System Hit (#hits=" << nHit << ")" << G4endl; + hitCollection-> PrintAllHits(); +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc new file mode 100644 index 0000000000..9377b1ccee --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc @@ -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: H02PhysicsList.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +#include "H02PhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include "g4std/iomanip" + +#include "H02GeneralPhysics.hh" +#include "H02EMPhysics.hh" +#include "H02MuonPhysics.hh" +#include "H02HadronPhysics.hh" +#include "H02IonPhysics.hh" + +H02PhysicsList::H02PhysicsList(): G4VModularPhysicsList() +{ + // default cut value (1.0mm) + defaultCutValue = 1.0*mm; + SetVerboseLevel(1); + + // General Physics + RegisterPhysics( new H02GeneralPhysics("general") ); + + // EM Physics + RegisterPhysics( new H02EMPhysics("standard EM")); + + // Muon Physics + RegisterPhysics( new H02MuonPhysics("muon")); + + // Hadron Physics + RegisterPhysics( new H02HadronPhysics("hadron")); + + // Ion Physics + RegisterPhysics( new H02IonPhysics("ion")); + + +} + +H02PhysicsList::~H02PhysicsList() +{ +} + +void H02PhysicsList::SetCuts() +{ + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + SetCutsWithDefault(); +} + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..d4b9559e83 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PrimaryGeneratorAction.cc +// $Id: H02PrimaryGeneratorAction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02PrimaryGeneratorAction.hh" +#include "H02PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4HepMCAsciiReader.hh" +#include "H02PythiaInterface.hh" + +//////////////////////////////////////////////////// +H02PrimaryGeneratorAction::H02PrimaryGeneratorAction() +//////////////////////////////////////////////////// +{ + // default generator is particle gun. + currentGenerator= particleGun= new G4ParticleGun(); + currentGeneratorName= "particleGun"; + hepmcAscii= new G4HepMCAsciiReader(); + pythiaGen= new H02PythiaInterface(); + + gentypeMap["particleGun"]= particleGun; + gentypeMap["hepmcAscii"]= hepmcAscii; + gentypeMap["pythia"]= pythiaGen; + + messenger= new H02PrimaryGeneratorMessenger(this); +} + +///////////////////////////////////////////////////// +H02PrimaryGeneratorAction::~H02PrimaryGeneratorAction() +///////////////////////////////////////////////////// +{ + delete messenger; +} + +////////////////////////////////////////////////////////////////// +void H02PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +////////////////////////////////////////////////////////////////// +{ + if(currentGenerator) + currentGenerator-> GeneratePrimaryVertex(anEvent); + else + G4Exception("generator is not instanciated."); +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..5496e69618 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PrimaryGeneratorMessenger.cc +// $Id: H02PrimaryGeneratorMessenger.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIdirectory.hh" + +#include "H02PrimaryGeneratorMessenger.hh" +#include "H02PrimaryGeneratorAction.hh" + +///////////////////////////////////////////////////////////////// +H02PrimaryGeneratorMessenger::H02PrimaryGeneratorMessenger + (H02PrimaryGeneratorAction* genaction) + : primaryAction(genaction) +///////////////////////////////////////////////////////////////// +{ + dir= new G4UIdirectory("/generator/"); + dir-> SetGuidance("Control commands for primary generator"); + + //verbose= new G4UIcmdWithAnInteger("/generator/verbose", this); + //verbose-> SetGuidance("set verbose level (0,1,2)"); + //verbose-> SetParameterName("verbose", false, false); + //verbose-> SetDefaultValue(0); + //verbose-> SetRange("verbose>=0 && verbose<=2"); + + select= new G4UIcmdWithAString("/generator/select", this); + select-> SetGuidance("select generator type"); + select-> SetParameterName("generator_type", false, false); + select-> SetCandidates("particleGun pythia hepmcAscii"); + select-> SetDefaultValue("particleGun"); +} + +/////////////////////////////////////////////////////////// +H02PrimaryGeneratorMessenger::~H02PrimaryGeneratorMessenger() +/////////////////////////////////////////////////////////// +{ + //delete verbose; + delete select; + + delete dir; +} + +/////////////////////////////////////////////////////////////////// +void H02PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValues) +/////////////////////////////////////////////////////////////////// +{ + if ( command==select) { + primaryAction-> SetGenerator(newValues); + G4cout << "current generator type: " + << primaryAction-> GetGeneratorName() << G4endl; + } else { + } +} + + +/////////////////////////////////////////////////////////////////////////// +G4String H02PrimaryGeneratorMessenger::GetCurrentValue(G4UIcommand* command) +/////////////////////////////////////////////////////////////////////////// +{ + G4String cv, st; + if (command == select) { + cv= primaryAction-> GetGeneratorName(); + } + + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc new file mode 100644 index 0000000000..80e3823f14 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc @@ -0,0 +1,188 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PythiaInterface.cc +// $Id: H02PythiaInterface.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02PythiaInterface.hh" +#include "H02PythiaMessenger.hh" + +#include "CLHEP/HepMC/CBhepevt.h" +#include "CLHEP/HepMC/include/PythiaWrapper6_2.h" + +// additional pythia calls +#define pygive pygive_ +#define pyrget pyrget_ +#define pyrset pyrset_ + +extern "C" { + void pygive(const char*, int); + void pyrget(int*, int*); + void pyrset(int*, int*); +} + +void call_pygive(G4String s) { pygive(s.c_str(), s.length()); } +void call_pyrget(int a, int b) { pyrget(&a, &b); } +void call_pyrset(int a, int b) { pyrset(&a, &b); } + +// global parameters +hepev2_t hepev2_; +hepev3_t hepev3_; +hepev4_t hepev4_; +hepev5_t hepev5_; + +//////////////////////////////////////// +H02PythiaInterface::H02PythiaInterface() + : verbose(0), mpylist(0) +//////////////////////////////////////// +{ + hepevtio= new HepMC::CBhepevt; + messenger= new H02PythiaMessenger(this); +} + +///////////////////////////////////////// +H02PythiaInterface::~H02PythiaInterface() +///////////////////////////////////////// +{ + delete hepevtio; + delete messenger; +} + +///////////////////////////////////////////////// +void H02PythiaInterface::CallPygive(G4String par) +///////////////////////////////////////////////// +{ + call_pygive(par); +} + +////////////////////////////////////////////////////////////////////// +void H02PythiaInterface::CallPyinit(G4String frame, G4String beam, + G4String target, G4double win) +////////////////////////////////////////////////////////////////////// +{ + call_pyinit(frame.c_str(), beam.c_str(), target.c_str(), win); +} + +//////////////////////////////////////////////// +void H02PythiaInterface::CallPystat(G4int istat) +//////////////////////////////////////////////// +{ + call_pystat(istat); +} + + +////////////////////////////////////////////////////////// +void H02PythiaInterface::CallPyrget(G4int lun, G4int move) +////////////////////////////////////////////////////////// +{ + call_pyrget(lun, move); +} + +////////////////////////////////////////////////////////// +void H02PythiaInterface::CallPyrset(G4int lun, G4int move) +////////////////////////////////////////////////////////// +{ + call_pyrset(lun, move); +} + + +///////////////////////////////////// +void H02PythiaInterface::CallPyevnt() +///////////////////////////////////// +{ + call_pyevnt(); +} + +/////////////////////////////////////////////// +void H02PythiaInterface::CallPylist(G4int mode) +/////////////////////////////////////////////// +{ + call_pylist(mode); +} + +/////////////////////////////////////////////// +void H02PythiaInterface::CallPyhepc(G4int mode) +/////////////////////////////////////////////// +{ + call_pyhepc(mode); +} + + +/////////////////////////////////////////////////// +void H02PythiaInterface::SetRandomSeed(G4int iseed) +/////////////////////////////////////////////////// +{ + pydatr.mrpy[1-1]= iseed; +} + +////////////////////////////////////////////////////////////////////// +void H02PythiaInterface::PrintRandomStatus(G4std::ostream& ostr) const +////////////////////////////////////////////////////////////////////// +{ + ostr << "# Pythia random numbers status" << G4endl; + for (G4int j=0; j<6; j++) { + ostr << "pydatr.mrpy[" << j << "]= " << pydatr.mrpy[j] << G4endl; + } + for (G4int k=0; k<100; k++) { + ostr << "pydatr.rrpy[" << k << "]= " << pydatr.rrpy[k] << G4endl; + } +} + +//////////////////////////////////////////// +void H02PythiaInterface::SetUserParameters() +//////////////////////////////////////////// +{ + G4cout << "set user parameters of PYTHIA common." << G4endl + << "nothing to be done in default." + << G4endl; +} + +///////////////////////////////////////////////////////// +HepMC::GenEvent* H02PythiaInterface::GenerateHepMCEvent() +///////////////////////////////////////////////////////// +{ + static G4int nevent= 0; // event counter + + CallPyevnt(); // generate one event with Pythia + if(mpylist >=1 && mpylist<= 3) CallPylist(mpylist); + + CallPyhepc(1); + + HepMC::GenEvent* evt= new HepMC::GenEvent(); + hepevtio-> toGenEvent(evt, false); + hepevtio-> clean(); // clear HEPEVT common + evt-> set_event_number(nevent++); + if(verbose>0) evt-> print(); + + return evt; +} + +////////////////////////////////////// +void H02PythiaInterface::Print() const +////////////////////////////////////// +{ + G4cout << "PythiaInterface::Print()..." << G4endl; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc new file mode 100644 index 0000000000..2cb6f8d405 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc @@ -0,0 +1,212 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// H02PythiaMessenger.cc +// $Id: H02PythiaMessenger.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02PythiaMessenger.hh" +#include "H02PythiaInterface.hh" + +#include "g4std/fstream" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////////////// +H02PythiaMessenger::H02PythiaMessenger(H02PythiaInterface* agen) + : gen(agen) +//////////////////////////////////////////////////////////////// +{ + dir= new G4UIdirectory("/generator/pythia/"); + dir-> SetGuidance("Commands for Pythia event generation"); + + verbose= new G4UIcmdWithAnInteger("/generator/pythia/verbose",this); + verbose-> SetGuidance("set verbose level"); + verbose-> SetParameterName("verboseLevel", false, false); + verbose-> SetRange("verboseLevel>=0 && verboseLevel<=2"); + + mpylist= new G4UIcmdWithAnInteger("/generator/pythia/pylist",this); + mpylist-> SetGuidance("set argument of pylist (not called if mlist=0)"); + mpylist-> SetParameterName("mlist", false, false); + mpylist-> SetRange("mlist>=0 && mlist<=3"); + + print= new G4UIcmdWithoutParameter("/generator/pythia/print", this); + print-> SetGuidance("print user information."); + + cpyinit= new G4UIcommand("/generator/pythia/pyinit", this); + cpyinit-> SetGuidance("call PYINIT"); + G4UIparameter* frame= + new G4UIparameter("frame of the experiment", 's', false); + cpyinit-> SetParameter(frame); + G4UIparameter* beam= new G4UIparameter("beam particle", 's', false); + cpyinit-> SetParameter(beam); + G4UIparameter* target= new G4UIparameter("target particle", 's', false); + cpyinit-> SetParameter(target); + G4UIparameter* win= new G4UIparameter("energy of system (GeV)", 'd', false); + cpyinit-> SetParameter(win); + + cpystat= new G4UIcmdWithAnInteger("/generator/pythia/pystat", this); + cpystat-> SetGuidance("call PYSTAT"); + cpystat-> SetParameterName("mstat", false, false); + cpystat-> SetRange("mstat>=1 && mstat<=5"); + + cpygive= new G4UIcommand("/generator/pythia/pygive",this); + cpygive-> SetGuidance("call PYGIVE"); + G4UIparameter* parameter= new G4UIparameter ("Parameter", 's', false); + cpygive-> SetParameter(parameter); + + setUserParameters= + new G4UIcmdWithoutParameter("/generator/pythia/setUserParameters",this); + setUserParameters-> + SetGuidance("Set user parameters in the Pythia common blocks"); + + setSeed= new G4UIcmdWithAnInteger("/generator/pythia/setSeed", this); + setSeed-> SetGuidance("set initial seed."); + + cpyrget= new G4UIcommand("/generator/pythia/pyrget", this); + cpyrget-> SetGuidance("call PYRGET"); + G4UIparameter* lun, *move; + lun= new G4UIparameter("logical file number", 'i', false); + cpyrget-> SetParameter(lun); + move= new G4UIparameter("choice of adding a new record", 'i', true); + move-> SetDefaultValue(-1); + cpyrget-> SetParameter(move); + + cpyrset= new G4UIcommand("/generator/pythia/pyrset", this); + cpyrset-> SetGuidance("call PYRSET"); + lun= new G4UIparameter("logical file number", 'i', false); + cpyrset-> SetParameter(lun); + move= new G4UIparameter("choice of adding a new record", 'i', true); + move-> SetDefaultValue(0); + cpyrset-> SetParameter(move); + + printRandomStatus= + new G4UIcmdWithAString("/generator/pythia/printRandomStatus", this); + printRandomStatus-> SetGuidance("print random number status."); + printRandomStatus-> SetParameterName("filename", true, false); + printRandomStatus-> SetDefaultValue("G4cout"); +} + +///////////////////////////////////////// +H02PythiaMessenger::~H02PythiaMessenger() +///////////////////////////////////////// +{ + delete verbose; + delete mpylist; + delete print; + delete cpyinit; + delete cpystat; + delete cpygive; + delete setUserParameters; + delete setSeed; + delete cpyrget; + delete cpyrset; + delete printRandomStatus; + + delete dir; +} + +//////////////////////////////////////////////////////////// +void H02PythiaMessenger::SetNewValue(G4UIcommand* command, + G4String newValues) +//////////////////////////////////////////////////////////// +{ + if(command == verbose) { // /verbose ... + G4int level= verbose-> GetNewIntValue(newValues); + gen-> SetVerboseLevel(level); + + } else if (command == mpylist) { // /mpylist ... + G4int mlist= mpylist-> GetNewIntValue(newValues); + gen-> SetPylist(mlist); + + } else if (command == print) { // /print ... + gen-> Print(); + + } else if (command == cpyinit) { // /pyinit ... + const char* strvaluelist= newValues.c_str(); + G4std::istrstream is((char*)strvaluelist); + G4String sframe, sbeam, starget; G4double dwin; + is >> sframe >> sbeam >> starget >> dwin; + gen-> CallPyinit(sframe, sbeam, starget, dwin); + + } else if (command == cpystat) { // /pystat ... + G4int imod= cpystat-> GetNewIntValue(newValues); + gen-> CallPystat(imod); + + } else if (command == cpygive) { // /pygive ... + G4String s= newValues; + gen-> CallPygive(s); + + } else if (command == setUserParameters) { // /setUserParameters ... + gen-> SetUserParameters(); + + } else if (command == setSeed) { // /setSeed ... + G4int iseed= setSeed-> GetNewIntValue(newValues); + gen-> SetRandomSeed(iseed); + + } else if (command == cpyrget) { // /pyrget ... + const char* strvaluelist= newValues.c_str(); + G4std::istrstream is((char*)strvaluelist); + G4int lun, move; + is >> lun >> move; + gen-> CallPyrget(lun, move); + + } else if (command == cpyrset) { // /pyrset ... + const char* strvaluelist= newValues.c_str(); + G4std::istrstream is((char*)strvaluelist); + G4int lun, move; + is >> lun >> move; + gen-> CallPyrset(lun, move); + + } else if (command == printRandomStatus) { // /printRandomStatus ... + G4String s= newValues; + if (newValues == "G4cout") { + gen-> PrintRandomStatus(); + } else { + // to a file (overwrite mode) + G4std::ofstream ofs; + ofs.open(s.c_str(), std::ios::out); + //ofs.open(randomStatusFileName.c_str(), std::ios::out|std::ios::app); + ofs.setf(std::ios::fixed | std::ios::showpoint); + gen-> PrintRandomStatus(ofs); + ofs.close(); + } + } +} + +////////////////////////////////////////////////////////////////////// +G4String H02PythiaMessenger::GetCurrentValue(G4UIcommand* command) +////////////////////////////////////////////////////////////////////// +{ + G4String cv; + if (command == verbose) { + cv= verbose-> ConvertToString(gen->GetVerboseLevel()); + } else if (command == mpylist) { + cv= verbose-> ConvertToString(gen->GetPylist()); + } + return cv; +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc new file mode 100644 index 0000000000..8f5b06725e --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.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. * +// ******************************************************************** + +// ==================================================================== +// +// H02SteppingAction.cc +// $Id: H02SteppingAction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== + +#include "H02SteppingAction.hh" +#include "G4SteppingManager.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "G4TrackStatus.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" + +//////////////////////////////////// +H02SteppingAction::H02SteppingAction() +//////////////////////////////////// +{ +} + +///////////////////////////////////// +H02SteppingAction::~H02SteppingAction() +///////////////////////////////////// +{ +} + +////////////////////////////////////////////////////////////// +void H02SteppingAction::UserSteppingAction(const G4Step* astep) + ////////////////////////////////////////////////////////////// +{ + G4Track* atrack= astep-> GetTrack(); + + if(atrack-> GetTrackStatus() != fAlive) return; + if(atrack-> GetParentID() == 0) return; + + G4ParticleDefinition* particleType= atrack-> GetDefinition(); + if((particleType == G4MuonPlus::MuonPlusDefinition()) + || (particleType == G4MuonMinus::MuonMinusDefinition())) return; + + G4StepPoint* prestep= astep-> GetPreStepPoint(); + G4VPhysicalVolume* pv= prestep-> GetPhysicalVolume(); + G4String pvname= pv-> GetName(); + if(pvname=="BARREL_CAL_PV" || pvname=="ENDCAP_CAL_PV" ) { + atrack-> SetTrackStatus(fKillTrackAndSecondaries); + } +} + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc new file mode 100644 index 0000000000..6392778c30 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc @@ -0,0 +1,170 @@ +// +// ******************************************************************** +// * 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.1 2002/11/19 10:36:20 murakami Exp $ +// +// ==================================================================== +#include "H02VisManager.hh" + +// supported drivers... +#include "G4ASCIITree.hh" + +#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_RAYX +#include "G4RayX.hh" +#endif + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + +#ifdef G4VIS_USE_VRMLFILE +#include "G4VRML1File.hh" +#include "G4VRML2File.hh" +#endif + +// ==================================================================== +// +// class description +// +// ==================================================================== + +//////////////////////////// +H02VisManager::H02VisManager() +//////////////////////////// +{ +} + +///////////////////////////// +H02VisManager::~H02VisManager() +///////////////////////////// +{ +} + +//////////////////////////////////////////// +void H02VisManager::RegisterGraphicsSystems() +//////////////////////////////////////////// +{ + RegisterGraphicsSystem (new G4ASCIITree); + +#ifdef G4VIS_USE_DAWN + G4cout << "* Visualizaton Driver: Fukui Renderer" << G4endl; + RegisterGraphicsSystem(new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_DAWNFILE + G4cout << "* Visualizaton Driver: DAWN" << G4endl; + 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_RAYX + RegisterGraphicsSystem(new G4RayX); +#endif + +#ifdef G4VIS_USE_VRML + G4cout << "* Visualizaton Driver: VRML1/2" << G4endl; + RegisterGraphicsSystem(new G4VRML1); + RegisterGraphicsSystem(new G4VRML2); +#endif + +#ifdef G4VIS_USE_VRMLFILE + G4cout << "* Visualizaton Driver: VRML1/2 File" << G4endl; + RegisterGraphicsSystem(new G4VRML1File); + RegisterGraphicsSystem(new G4VRML2File); +#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-clhep/vis.mac b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/vis.mac new file mode 100644 index 0000000000..edafc0775c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/vis.mac @@ -0,0 +1,32 @@ +# +# Macro file for the initialization phase of "exampleN02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# create empty scene +# +/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/set/viewpointThetaPhi 90 180 deg +/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/add/trajectories +/vis/scene/endOfEventAction accumulate + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/History b/examples/extended/eventgenerator/HepMC/HepMCEx02/History index 7b27006707..e7ceab6226 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2002/05/28 14:19:07 murakami Exp $ +$Id: History,v 1.3 2002/11/19 10:26:52 murakami Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,9 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov. 19, 2002 K.Murakami +- modified physics lists as is ExN04. +- "std" namespace left/not cared was modified to "G4std". May. 28, 2002 K.Murakami - rename classes and filenames. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f index 01dc39c5e9..795df7197f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f @@ -1,3 +1,24 @@ +* +* ******************************************************************** +* * 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. * +* ******************************************************************** c c Matt.Dobbs@Cern.CH, December 1999 c EXTERNAL statement links PYDATA on most machines. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc index 524f92d0c0..26c2306125 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc @@ -22,7 +22,7 @@ // // // $Id: hepmcEx02.cc,v 1.2 2002/05/28 14:19:07 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out index 1cd5b2ab93..70d7772e15 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out @@ -1,17 +1,15 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** -MuonMinusCaptureAtRest is created -phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z - Sandia crossSection below 50 KeV - PhysicsTables from 50 keV to 50 MeV in 100 bins. +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. - PhysicsTables from 10 keV to 100 GeV in 100 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. e+e- energies according Bethe-Heitler @@ -471,9 +469,10 @@ Vertex: -78 ID: 0 (X,cT)=-1.33e-01,+2.68e+00,-2.69e+01,+2.71e+01 ________________________________________________________________________________ Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=2) +*** Muon System Hit (#hits=3) +E1 : e- : pT=0.00117 : TOF=28.3 : x=(-0.279,1.77,-7.9) E0 : pi+ : pT=3.22 : TOF=26.6 : x=(-0.175,-1.01,7.9) -E0 : mu+ : pT=52.6 : TOF=27.2 : x=(-0.96,1.78,7.9) +E0 : mu+ : pT=52 : TOF=27.2 : x=(-0.96,1.78,7.9) ________________________________________________________________________________ GenEvent: #2 ID=20 SignalProcessGenVertex Barcode: 0 @@ -487,9 +486,9 @@ GenEvent: #2 ID=20 SignalProcessGenVertex Barcode: 0 ________________________________________________________________________________ GenVertex: -1 ID: 0 (X,cT):0 I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 - O: 3 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 - 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 + O: 3 3 21 +2.24e-03,-3.47e-01,+8.58e+00,+8.58e+00 3 -3 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 + 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 GenVertex: -2 ID: 0 (X,cT):0 I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 O: 2 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 @@ -506,7 +505,11 @@ GenVertex: -3 ID: 0 (X,cT):0 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 GenVertex: -4 ID: 0 (X,cT):0 I: 1 4 1 +1.81e-01,-9.21e-01,-1.91e+03,+1.91e+03 3 -4 - O:12 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 + O:12 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 + 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 + 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 + 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 + 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 @@ -514,10 +517,6 @@ GenVertex: -4 ID: 0 (X,cT):0 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 - 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 - 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 - 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 - 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 GenVertex: -5 ID: 0 (X,cT):0 I: 2 5 -2 -1.22e+01,+1.16e+00,-1.11e+01,+1.65e+01 3 -5 6 1 -1.04e+01,-7.53e+00,-8.52e+02,+8.53e+02 3 -5 @@ -531,20 +530,23 @@ GenVertex: -7 ID: 0 (X,cT):0 O: 1 10 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -8 GenVertex: -8 ID: 0 (X,cT):0 I: 1 10 -24 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -8 - O: 6 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 + O: 6 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 + 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 + 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 43 21 -1.27e+00,-7.35e-02,-1.13e+01,+1.14e+01 2 -15 44 21 -4.16e-02,-2.47e-01,-1.97e+00,+1.98e+00 2 -15 45 21 +9.29e-01,-5.25e-01,-8.27e+00,+8.34e+00 2 -15 - 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 - 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 GenVertex: -9 ID: 0 (X,cT):0 - I: 3 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 + I: 3 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 + 11 -4 +1.95e+00,-1.06e+00,-8.18e+00,+8.61e+00 2 -9 12 21 +1.85e+00,+6.48e+00,-3.61e+01,+3.67e+01 2 -9 - 13 1 -1.60e-01,+2.55e-01,+4.51e+02,+4.51e+02 2 -9 O: 1 52 92 +3.65e+00,+5.68e+00,+4.07e+02,+4.96e+02 2 -10 GenVertex: -10 ID: 0 (X,cT):0 I: 1 52 92 +3.65e+00,+5.68e+00,+4.07e+02,+4.96e+02 2 -10 - O:17 64 -213 -3.57e-01,-2.47e-01,+4.39e+00,+4.44e+00 2 -32 + O:17 61 313 -7.71e-02,+3.71e-01,+6.58e-01,+1.14e+00 2 -29 + 62 213 -3.58e-01,-1.85e-01,+2.02e-01,+7.59e-01 2 -30 + 63 221 +5.37e-01,+2.24e-01,+7.68e+00,+7.72e+00 2 -31 + 64 -213 -3.57e-01,-2.47e-01,+4.39e+00,+4.44e+00 2 -32 65 211 -9.70e-03,-2.00e-01,+9.73e-01,+1.00e+00 1 (nil) 66 -213 +3.60e-01,-1.91e-02,+2.45e+01,+2.45e+01 2 -33 67 113 -3.73e-01,+1.18e-02,+3.83e+01,+3.84e+01 2 -34 @@ -558,9 +560,6 @@ GenVertex: -10 ID: 0 (X,cT):0 58 213 +1.90e-01,+8.19e-01,-3.63e+00,+3.80e+00 2 -26 59 223 +4.76e-01,+3.30e-01,-1.30e+00,+1.62e+00 2 -27 60 -323 -1.01e-01,+5.65e-03,+1.73e-01,+8.22e-01 2 -28 - 61 313 -7.71e-02,+3.71e-01,+6.58e-01,+1.14e+00 2 -29 - 62 213 -3.58e-01,-1.85e-01,+2.02e-01,+7.59e-01 2 -30 - 63 221 +5.37e-01,+2.24e-01,+7.68e+00,+7.72e+00 2 -31 GenVertex: -11 ID: 0 (X,cT):0 I:26 23 21 -1.76e+00,-3.29e+00,+9.66e+00,+1.04e+01 2 -11 24 21 -4.37e+00,-6.72e+00,+8.76e-01,+8.07e+00 2 -11 @@ -572,14 +571,6 @@ GenVertex: -11 ID: 0 (X,cT):0 21 21 +4.37e+00,+6.72e+00,+8.31e+01,+8.35e+01 2 -11 22 21 +3.91e+00,-3.13e+00,+3.66e+01,+3.69e+01 2 -11 18 21 -3.89e+00,-1.90e+00,+4.34e+01,+4.36e+01 2 -11 - 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 - 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 - 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 - 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 - 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 - 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 - 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 - 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 39 2203 -1.81e-01,+9.21e-01,-4.33e+03,+4.33e+03 2 -11 14 4 +1.07e+01,-5.18e+00,-2.71e+01,+2.96e+01 2 -11 16 21 +3.32e-02,+9.61e-02,-6.60e-02,+1.21e-01 2 -11 @@ -588,10 +579,39 @@ GenVertex: -11 ID: 0 (X,cT):0 28 21 +8.30e-01,+1.28e+00,-3.84e+01,+3.84e+01 2 -11 29 21 +1.45e+00,+3.41e+00,-3.48e+01,+3.50e+01 2 -11 30 21 +4.75e+00,+5.08e+00,-7.07e+01,+7.11e+01 2 -11 + 31 21 +7.05e+00,+5.30e+00,-7.09e+01,+7.14e+01 2 -11 + 32 21 +6.43e-05,-2.87e-01,-2.01e+00,+2.03e+00 2 -11 + 33 21 -2.01e+00,+1.84e-01,-1.00e+02,+1.00e+02 2 -11 + 34 21 -1.92e+00,-1.52e+00,-2.29e+02,+2.29e+02 2 -11 + 35 21 -3.17e+00,-1.74e+00,-8.38e+01,+8.39e+01 2 -11 + 36 21 -3.72e-01,-3.53e+00,-1.09e+02,+1.09e+02 2 -11 + 37 21 -3.12e-01,+2.46e-01,-7.86e+01,+7.86e+01 2 -11 + 38 21 +2.18e+00,-6.98e-01,-1.55e+02,+1.55e+02 2 -11 O: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 GenVertex: -12 ID: 0 (X,cT):0 I: 1 70 92 +1.93e+01,+2.76e+00,-3.69e+03,+8.47e+03 2 -12 - O:90 157 211 +7.13e-01,-3.28e-01,-1.35e+02,+1.35e+02 1 (nil) + O:90 136 -211 +1.82e+00,+1.89e+00,-2.77e+01,+2.78e+01 1 (nil) + 137 111 +7.22e-01,+1.16e+00,-1.29e+01,+1.29e+01 2 -85 + 138 113 +1.21e+00,+1.68e+00,-1.89e+01,+1.90e+01 2 -86 + 139 211 +1.12e+00,+5.04e-01,-1.16e+01,+1.17e+01 1 (nil) + 140 -213 +4.58e-01,+1.15e+00,-1.84e+01,+1.85e+01 2 -87 + 141 213 +2.08e+00,+1.68e+00,-2.61e+01,+2.63e+01 2 -88 + 142 313 +1.78e+00,+1.24e+00,-2.26e+01,+2.27e+01 2 -89 + 143 -313 +1.42e+00,+6.47e-01,-1.81e+01,+1.82e+01 2 -90 + 144 2112 -1.12e+00,+5.37e-01,-5.10e+01,+5.10e+01 1 (nil) + 145 -213 -5.75e-01,-4.78e-01,-9.45e+01,+9.45e+01 2 -91 + 146 -1114 -8.04e-01,-7.43e-01,-3.40e+01,+3.40e+01 2 -92 + 147 -213 -1.80e-01,+6.29e-02,-4.32e+01,+4.32e+01 2 -93 + 148 211 -1.19e+00,-2.34e-01,-3.93e+01,+3.93e+01 1 (nil) + 149 311 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 2 -94 + 150 -323 -3.04e-01,-3.92e-01,-7.88e+01,+7.88e+01 2 -95 + 151 213 -1.80e+00,-1.21e+00,-8.93e+01,+8.94e+01 2 -96 + 152 113 +4.91e-01,-9.72e-01,-5.04e+01,+5.05e+01 2 -97 + 153 221 +2.67e-01,-2.61e-01,-2.16e+01,+2.16e+01 2 -98 + 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 + 155 -321 +3.69e-01,-3.68e-01,-5.25e+01,+5.25e+01 1 (nil) + 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 + 157 211 +7.13e-01,-3.28e-01,-1.35e+02,+1.35e+02 1 (nil) 158 113 -8.56e-01,+4.51e-01,-3.86e+02,+3.86e+02 2 -101 159 -211 +8.50e-01,-2.44e-01,-2.40e+03,+2.40e+03 1 (nil) 160 2224 -1.90e-03,+7.51e-01,-1.39e+03,+1.39e+03 2 -102 @@ -660,27 +680,6 @@ GenVertex: -12 ID: 0 (X,cT):0 133 221 +6.52e-01,-1.30e-02,-7.49e+00,+7.53e+00 2 -82 134 213 +1.25e+00,+2.45e+00,-3.91e+01,+3.93e+01 2 -83 135 221 +8.86e-01,+9.16e-01,-1.24e+01,+1.25e+01 2 -84 - 136 -211 +1.82e+00,+1.89e+00,-2.77e+01,+2.78e+01 1 (nil) - 137 111 +7.22e-01,+1.16e+00,-1.29e+01,+1.29e+01 2 -85 - 138 113 +1.21e+00,+1.68e+00,-1.89e+01,+1.90e+01 2 -86 - 139 211 +1.12e+00,+5.04e-01,-1.16e+01,+1.17e+01 1 (nil) - 140 -213 +4.58e-01,+1.15e+00,-1.84e+01,+1.85e+01 2 -87 - 141 213 +2.08e+00,+1.68e+00,-2.61e+01,+2.63e+01 2 -88 - 142 313 +1.78e+00,+1.24e+00,-2.26e+01,+2.27e+01 2 -89 - 143 -313 +1.42e+00,+6.47e-01,-1.81e+01,+1.82e+01 2 -90 - 144 2112 -1.12e+00,+5.37e-01,-5.10e+01,+5.10e+01 1 (nil) - 145 -213 -5.75e-01,-4.78e-01,-9.45e+01,+9.45e+01 2 -91 - 146 -1114 -8.04e-01,-7.43e-01,-3.40e+01,+3.40e+01 2 -92 - 147 -213 -1.80e-01,+6.29e-02,-4.32e+01,+4.32e+01 2 -93 - 148 211 -1.19e+00,-2.34e-01,-3.93e+01,+3.93e+01 1 (nil) - 149 311 -1.41e+00,-2.18e+00,-7.90e+01,+7.90e+01 2 -94 - 150 -323 -3.04e-01,-3.92e-01,-7.88e+01,+7.88e+01 2 -95 - 151 213 -1.80e+00,-1.21e+00,-8.93e+01,+8.94e+01 2 -96 - 152 113 +4.91e-01,-9.72e-01,-5.04e+01,+5.05e+01 2 -97 - 153 221 +2.67e-01,-2.61e-01,-2.16e+01,+2.16e+01 2 -98 - 154 311 +4.13e-01,+1.80e-01,-8.91e+01,+8.91e+01 2 -99 - 155 -321 +3.69e-01,-3.68e-01,-5.25e+01,+5.25e+01 1 (nil) - 156 221 -4.10e-01,-2.74e-01,-4.88e+01,+4.88e+01 2 -100 GenVertex: -13 ID: 0 (X,cT):0 I: 2 41 2203 +1.57e-01,+9.19e-02,+4.12e+03,+4.12e+03 2 -13 40 2 -5.76e-01,-2.17e+00,+2.82e+00,+3.62e+00 2 -13 @@ -702,12 +701,12 @@ GenVertex: -14 ID: 0 (X,cT):0 174 2112 +5.28e-01,-1.88e-01,+1.06e+03,+1.06e+03 1 (nil) 175 211 -3.22e-01,+5.25e-01,+2.61e+03,+2.61e+03 1 (nil) GenVertex: -15 ID: 0 (X,cT):0 - I: 6 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 + I: 6 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 + 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 + 42 -4 -3.64e+01,+2.35e+01,-3.49e+02,+3.52e+02 2 -15 43 21 -1.27e+00,-7.35e-02,-1.13e+01,+1.14e+01 2 -15 44 21 -4.16e-02,-2.47e-01,-1.97e+00,+1.98e+00 2 -15 45 21 +9.29e-01,-5.25e-01,-8.27e+00,+8.34e+00 2 -15 - 46 21 +2.59e+00,-1.54e+00,-4.01e+01,+4.02e+01 2 -15 - 47 3 +2.49e+01,-1.94e+01,-3.48e+02,+3.50e+02 2 -15 O: 1 176 92 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -16 GenVertex: -16 ID: 0 (X,cT):0 I: 1 176 92 -9.28e+00,+1.71e+00,-7.59e+02,+7.64e+02 2 -16 @@ -1580,16 +1579,24 @@ Vertex: -224 ID: 0 (X,cT)=+1.58e-01,-6.64e-02,-8.93e-01,+9.27e-01 ________________________________________________________________________________ Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=9) -E1 : pi+ : pT=0.299 : TOF=26.7 : x=(-0.113,-1.24,-7.9) -E1 : pi+ : pT=3.46 : TOF=26.6 : x=(-0.82,0.586,-7.9) -E0 : e- : pT=0.00106 : TOF=34.3 : x=(-1.67,-1.8,8.1) -E0 : pi- : pT=0.173 : TOF=26.9 : x=(0.914,0.8,7.9) +*** Muon System Hit (#hits=17) +E1 : pi+ : pT=3.46 : TOF=26.6 : x=(-0.819,0.587,-7.9) +E0 : e- : pT=0.00208 : TOF=27.2 : x=(-1.17,0.0548,7.9) +E0 : pi- : pT=0.171 : TOF=26.9 : x=(0.92,0.784,7.9) +E0 : pi+ : pT=0.438 : TOF=26.7 : x=(0.961,0.785,7.9) E1 : pi- : pT=2.42 : TOF=26.6 : x=(-0.885,0.475,-7.9) -E1 : mu- : pT=1.76 : TOF=26.6 : x=(-0.886,0.57,-7.9) -E1 : pi+ : pT=0.363 : TOF=26.8 : x=(-0.0654,0.998,-7.96) -E0 : mu- : pT=0.255 : TOF=28.1 : x=(-1.23,0.0337,7.9) -E0 : pi+ : pT=0.0828 : TOF=27.4 : x=(0.325,-1.05,7.9) +E1 : mu- : pT=1.76 : TOF=26.6 : x=(-0.885,0.57,-7.9) +E0 : pi- : pT=0.143 : TOF=29.1 : x=(-0.0854,-1.1,7.9) +E0 : proton : pT=0.67 : TOF=34 : x=(-0.0822,-1.86,7.9) +E1 : e- : pT=0.00124 : TOF=33 : x=(-0.325,0.946,-8) +E1 : pi+ : pT=0.358 : TOF=27 : x=(-0.0691,0.998,-8.03) +E0 : mu- : pT=0.0671 : TOF=27.5 : x=(-1.52,0.066,7.9) +E0 : e- : pT=0.00091 : TOF=27.6 : x=(-1.48,-0.00459,7.9) +E0 : e- : pT=0.000842 : TOF=37.5 : x=(-0.053,-1.79,8.1) +E0 : pi+ : pT=0.0821 : TOF=27.4 : x=(0.347,-1.04,7.9) +E0 : e- : pT=0.00124 : TOF=26.7 : x=(0.968,0.259,7.9) +E0 : e- : pT=0.00117 : TOF=32.7 : x=(-0.69,-1.28,8.1) +E1 : e- : pT=0.000873 : TOF=34.5 : x=(1.54,-0.746,-8.1) ________________________________________________________________________________ GenEvent: #3 ID=20 SignalProcessGenVertex Barcode: 0 @@ -1603,8 +1610,8 @@ GenEvent: #3 ID=20 SignalProcessGenVertex Barcode: 0 ________________________________________________________________________________ GenVertex: -1 ID: 0 (X,cT):0 I: 1 1 2212 +0.00e+00,+0.00e+00,+7.00e+03,+7.00e+03 3 -1 - O: 3 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 - 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 + O: 3 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 + 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 14 2101 -9.42e-01,+2.17e-01,+6.53e+03,+6.53e+03 2 -9 GenVertex: -2 ID: 0 (X,cT):0 I: 1 2 2212 +0.00e+00,+0.00e+00,-7.00e+03,+7.00e+03 3 -2 @@ -1612,22 +1619,22 @@ GenVertex: -2 ID: 0 (X,cT):0 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 GenVertex: -3 ID: 0 (X,cT):0 I: 1 3 21 +5.50e-01,+2.26e-01,+5.57e+01,+5.57e+01 3 -3 - O: 4 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 + O: 4 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 + 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 - 13 2 -1.06e+00,+5.40e-01,+6.25e-01,+1.38e+00 2 -9 GenVertex: -4 ID: 0 (X,cT):0 I: 1 4 1 -2.49e+00,-5.11e-01,-1.27e+03,+1.27e+03 3 -4 - O: 7 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 - 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 - 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 - 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 - 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + O: 7 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 + 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 + 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 GenVertex: -5 ID: 0 (X,cT):0 - I: 2 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 - 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 + I: 2 5 -2 +5.15e-01,-3.71e-01,+4.37e+00,+4.41e+00 3 -5 + 6 1 +2.57e+00,+4.38e-01,-4.63e+02,+4.63e+02 3 -5 O: 2 8 -24 +2.48e+00,-4.66e+00,-4.53e+02,+4.60e+02 3 -7 7 22 +6.11e-01,+4.73e+00,-5.78e+00,+7.50e+00 3 -6 GenVertex: -6 ID: 0 (X,cT):0 @@ -1656,39 +1663,50 @@ GenVertex: -10 ID: 0 (X,cT):0 44 2112 -3.44e-01,+2.18e-02,+5.44e+03,+5.44e+03 1 (nil) 36 321 -2.73e-01,+1.76e-01,+9.69e-01,+1.13e+00 1 (nil) GenVertex: -11 ID: 0 (X,cT):0 - I:15 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 - 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 + I:15 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 + 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 + 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 + 23 21 -6.21e-01,-2.83e+00,-4.24e+01,+4.25e+01 2 -11 25 21 -4.72e-02,-2.81e-01,-7.30e+00,+7.31e+00 2 -11 + 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 20 21 +2.14e+00,-4.17e+00,-7.24e+00,+8.62e+00 2 -11 21 21 +2.68e+00,-1.72e+00,-3.07e+01,+3.09e+01 2 -11 22 21 -2.68e+00,+1.72e+00,-1.05e+02,+1.05e+02 2 -11 - 26 21 -3.65e+00,+1.06e+00,-1.44e+02,+1.44e+02 2 -11 - 27 21 -8.57e-01,+1.30e+00,-8.64e+01,+8.64e+01 2 -11 - 28 21 +2.10e-01,-2.36e-01,-5.04e+02,+5.04e+02 2 -11 + 24 21 -1.09e-01,+2.50e-02,-1.28e+01,+1.28e+01 2 -11 16 21 +1.28e+00,-8.74e-01,+5.02e+01,+5.02e+01 2 -11 17 21 -1.67e-01,+9.43e-01,-4.22e+00,+4.33e+00 2 -11 - 29 2203 +2.49e+00,+5.11e-01,-5.57e+03,+5.57e+03 2 -11 - 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 18 21 +9.34e-01,+2.91e+00,+1.97e+01,+2.00e+01 2 -11 19 21 -2.14e+00,+4.17e+00,-2.51e+00,+5.32e+00 2 -11 + 15 2 +3.93e-01,-4.42e-01,+2.02e+01,+2.03e+01 2 -11 O: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 GenVertex: -12 ID: 0 (X,cT):0 I: 1 45 92 -1.50e-01,+2.09e+00,-6.43e+03,+6.61e+03 2 -12 - O:44 79 -2112 -1.86e+00,+2.64e-01,-6.69e+01,+6.69e+01 1 (nil) - 80 -211 -4.20e-01,-6.99e-02,-4.46e+01,+4.47e+01 1 (nil) - 81 211 -1.23e+00,+5.35e-01,-3.48e+01,+3.49e+01 1 (nil) - 82 311 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -45 - 83 -323 -5.63e-01,-7.34e-02,-1.48e+02,+1.48e+02 2 -46 + O:44 53 113 -2.30e-01,+1.48e-01,-1.62e+00,+1.84e+00 2 -27 + 54 223 +3.60e-01,+7.58e-01,+8.72e-01,+1.44e+00 2 -28 + 55 113 +1.21e-01,+1.16e-01,+9.83e-01,+1.26e+00 2 -29 + 56 -213 +8.69e-02,+1.01e+00,+7.42e+00,+7.52e+00 2 -30 + 57 323 +1.76e-01,+4.23e-01,+1.93e+00,+2.16e+00 2 -31 + 58 -321 +1.93e-01,+1.97e-01,+6.13e+00,+6.16e+00 1 (nil) + 59 223 -2.63e-01,+7.90e-01,+6.47e-01,+1.31e+00 2 -32 + 60 213 +1.35e-01,+1.08e+00,+5.74e-01,+1.37e+00 2 -33 + 61 -211 -1.05e+00,+1.11e+00,-1.21e-01,+1.54e+00 1 (nil) + 62 213 -9.08e-02,+5.82e-01,-1.54e+00,+1.76e+00 2 -34 + 63 221 +1.94e-01,-2.74e-01,-2.66e-01,+6.95e-01 2 -35 + 64 -213 +2.31e-01,+2.74e-01,-1.31e+00,+1.58e+00 2 -36 + 65 213 -4.52e-01,+2.86e-01,-1.23e+00,+1.57e+00 2 -37 84 211 -1.34e-01,-9.12e-02,-7.11e+00,+7.11e+00 1 (nil) 85 113 +1.80e-02,+8.34e-01,-6.47e+02,+6.47e+02 2 -47 86 -211 +2.67e-01,-2.79e-01,-5.20e+02,+5.20e+02 1 (nil) 87 213 +3.40e-01,+1.94e-01,-1.02e+03,+1.02e+03 2 -48 88 2214 +5.67e-01,+9.88e-02,-8.80e+02,+8.80e+02 2 -49 89 223 +1.23e+00,+3.33e-01,-2.87e+03,+2.87e+03 2 -50 - 62 213 -9.08e-02,+5.82e-01,-1.54e+00,+1.76e+00 2 -34 - 63 221 +1.94e-01,-2.74e-01,-2.66e-01,+6.95e-01 2 -35 - 64 -213 +2.31e-01,+2.74e-01,-1.31e+00,+1.58e+00 2 -36 - 65 213 -4.52e-01,+2.86e-01,-1.23e+00,+1.57e+00 2 -37 + 46 211 +1.39e+00,-8.14e-01,+3.12e+01,+3.13e+01 1 (nil) + 47 113 +6.88e-02,-1.41e-01,+2.65e+01,+2.66e+01 2 -22 + 48 -211 -3.37e-01,-1.68e-01,+9.43e+00,+9.44e+00 1 (nil) + 49 113 +6.00e-01,-2.67e-01,+2.22e+00,+2.44e+00 2 -23 + 50 323 -3.07e-01,-6.12e-02,-1.42e-02,+9.76e-01 2 -24 + 51 -313 +1.43e-02,+4.68e-01,-3.88e-01,+1.12e+00 2 -25 + 52 111 +8.08e-02,-1.35e-02,-7.15e-01,+7.33e-01 2 -26 66 2114 +9.53e-01,-6.69e-01,-3.09e+00,+3.53e+00 2 -38 67 211 -1.36e-01,-6.50e-01,-8.86e-01,+1.12e+00 1 (nil) 68 -2212 +8.49e-01,-2.09e+00,-5.29e+00,+5.82e+00 1 (nil) @@ -1702,22 +1720,11 @@ GenVertex: -12 ID: 0 (X,cT):0 76 -2212 -6.65e-01,+6.91e-02,-2.61e+01,+2.61e+01 1 (nil) 77 3224 -4.07e-01,-1.66e+00,-3.45e+01,+3.46e+01 2 -43 78 311 -2.78e-01,+5.33e-02,-1.90e+01,+1.90e+01 2 -44 - 46 211 +1.39e+00,-8.14e-01,+3.12e+01,+3.13e+01 1 (nil) - 47 113 +6.88e-02,-1.41e-01,+2.65e+01,+2.66e+01 2 -22 - 48 -211 -3.37e-01,-1.68e-01,+9.43e+00,+9.44e+00 1 (nil) - 49 113 +6.00e-01,-2.67e-01,+2.22e+00,+2.44e+00 2 -23 - 50 323 -3.07e-01,-6.12e-02,-1.42e-02,+9.76e-01 2 -24 - 51 -313 +1.43e-02,+4.68e-01,-3.88e-01,+1.12e+00 2 -25 - 52 111 +8.08e-02,-1.35e-02,-7.15e-01,+7.33e-01 2 -26 - 53 113 -2.30e-01,+1.48e-01,-1.62e+00,+1.84e+00 2 -27 - 54 223 +3.60e-01,+7.58e-01,+8.72e-01,+1.44e+00 2 -28 - 55 113 +1.21e-01,+1.16e-01,+9.83e-01,+1.26e+00 2 -29 - 56 -213 +8.69e-02,+1.01e+00,+7.42e+00,+7.52e+00 2 -30 - 57 323 +1.76e-01,+4.23e-01,+1.93e+00,+2.16e+00 2 -31 - 58 -321 +1.93e-01,+1.97e-01,+6.13e+00,+6.16e+00 1 (nil) - 59 223 -2.63e-01,+7.90e-01,+6.47e-01,+1.31e+00 2 -32 - 60 213 +1.35e-01,+1.08e+00,+5.74e-01,+1.37e+00 2 -33 - 61 -211 -1.05e+00,+1.11e+00,-1.21e-01,+1.54e+00 1 (nil) + 79 -2112 -1.86e+00,+2.64e-01,-6.69e+01,+6.69e+01 1 (nil) + 80 -211 -4.20e-01,-6.99e-02,-4.46e+01,+4.47e+01 1 (nil) + 81 211 -1.23e+00,+5.35e-01,-3.48e+01,+3.49e+01 1 (nil) + 82 311 -1.74e-02,+2.33e-01,-6.04e+01,+6.04e+01 2 -45 + 83 -323 -5.63e-01,-7.34e-02,-1.48e+02,+1.48e+02 2 -46 GenVertex: -13 ID: 0 (X,cT):0 I: 3 30 21 -3.00e+00,+2.35e+00,+2.36e+02,+2.36e+02 2 -13 31 21 -9.34e-01,-2.91e+00,+1.02e+02,+1.02e+02 2 -13 @@ -1872,8 +1879,8 @@ GenVertex: -46 ID: 0 (X,cT):0 170 -211 -1.76e-02,-3.32e-01,-5.80e+01,+5.80e+01 1 (nil) GenVertex: -47 ID: 0 (X,cT):0 I: 1 85 113 +1.80e-02,+8.34e-01,-6.47e+02,+6.47e+02 2 -47 - O: 2 171 211 +9.30e-02,-1.09e-02,-3.29e+01,+3.29e+01 1 (nil) - 172 -211 -7.50e-02,+8.45e-01,-6.14e+02,+6.14e+02 1 (nil) + O: 2 172 -211 -7.50e-02,+8.45e-01,-6.14e+02,+6.14e+02 1 (nil) + 171 211 +9.30e-02,-1.09e-02,-3.29e+01,+3.29e+01 1 (nil) GenVertex: -48 ID: 0 (X,cT):0 I: 1 87 213 +3.40e-01,+1.94e-01,-1.02e+03,+1.02e+03 2 -48 O: 2 173 211 +8.59e-02,+3.47e-01,-6.99e+02,+6.99e+02 1 (nil) @@ -1917,9 +1924,9 @@ GenVertex: -57 ID: 0 (X,cT):0 193 211 +4.26e-01,-7.15e-02,-1.45e+00,+1.52e+00 1 (nil) GenVertex: -58 ID: 0 (X,cT):0 I: 1 104 223 -7.85e-02,+4.34e-02,-9.82e-01,+1.26e+00 2 -58 - O: 3 196 111 +3.92e-02,+1.08e-02,-6.72e-02,+1.56e-01 2 -90 - 194 -211 +7.65e-02,-8.75e-02,-7.83e-01,+8.04e-01 1 (nil) + O: 3 194 -211 +7.65e-02,-8.75e-02,-7.83e-01,+8.04e-01 1 (nil) 195 211 -1.94e-01,+1.20e-01,-1.32e-01,+2.98e-01 1 (nil) + 196 111 +3.92e-02,+1.08e-02,-6.72e-02,+1.56e-01 2 -90 GenVertex: -59 ID: 0 (X,cT):0 I: 1 105 213 +1.78e-01,+3.27e-01,-2.62e+00,+2.77e+00 2 -59 O: 2 197 211 -2.80e-01,+2.51e-01,-1.39e+00,+1.44e+00 1 (nil) @@ -2096,13 +2103,13 @@ ________________________________________________________________________________ Print out hit information ------------------------------------------ *** Muon System Hit (#hits=7) -E1 : e+ : pT=0.0233 : TOF=26.7 : x=(0.594,-0.875,-7.9) -E1 : mu- : pT=0.0989 : TOF=26.9 : x=(1.03,0.182,-7.9) -E1 : pi+ : pT=0.207 : TOF=26.8 : x=(-1.13,-0.213,-7.9) -E0 : e- : pT=0.00145 : TOF=28.3 : x=(-0.883,-0.469,8.01) -E0 : e- : pT=0.000702 : TOF=29.1 : x=(-1.08,-0.489,8.1) +E1 : e+ : pT=0.0261 : TOF=26.7 : x=(0.62,-0.926,-7.9) +E0 : e- : pT=0.000751 : TOF=35.4 : x=(1.18,1.87,8.1) +E1 : e- : pT=0.000339 : TOF=28.3 : x=(-0.849,0.529,-8) +E1 : pi+ : pT=0.208 : TOF=26.8 : x=(-1.13,-0.22,-7.9) +E0 : e- : pT=0.000418 : TOF=28.4 : x=(-0.898,-0.44,7.98) +E0 : e- : pT=0.000795 : TOF=27.4 : x=(-0.0466,0.999,8.03) E1 : mu- : pT=36.4 : TOF=26.6 : x=(0.321,0.958,-7.9) -E1 : e- : pT=0.000233 : TOF=28.1 : x=(0.268,1.28,-7.9) Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out index 070a6d888e..b00bd3ead1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out @@ -1,17 +1,15 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** -MuonMinusCaptureAtRest is created -phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z - Sandia crossSection below 50 KeV - PhysicsTables from 50 keV to 50 MeV in 100 bins. +phot: Total cross sections from Sandia parametrisation. +MuonMinusCaptureAtRest is created compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. - PhysicsTables from 10 keV to 100 GeV in 100 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. e+e- energies according Bethe-Heitler @@ -211,190 +209,179 @@ current generator type: pythia ********************** PYINIT: initialization completed ********************** Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=11) -E0 : pi+ : pT=0.119 : TOF=27 : x=(-0.325,1.07,7.9) -E0 : mu- : pT=0.271 : TOF=26.7 : x=(1.11,0.388,7.9) -E1 : pi- : pT=0.299 : TOF=26.7 : x=(1.05,0.409,-7.9) -E1 : pi+ : pT=0.535 : TOF=26.6 : x=(-0.53,0.88,-7.9) +*** Muon System Hit (#hits=18) +E0 : pi+ : pT=0.118 : TOF=27 : x=(-0.322,1.06,7.9) +E0 : pi- : pT=0.324 : TOF=26.7 : x=(1.15,0.339,7.9) +E1 : pi- : pT=0.301 : TOF=26.7 : x=(1.05,0.415,-7.9) +E1 : mu- : pT=0.356 : TOF=26.6 : x=(-0.985,0.19,-7.9) +E1 : pi+ : pT=0.536 : TOF=26.6 : x=(-0.529,0.882,-7.9) E1 : pi+ : pT=1.14 : TOF=27 : x=(-0.652,0.758,-8.02) -E0 : pi- : pT=0.297 : TOF=26.6 : x=(0.351,-0.96,7.9) -E1 : e- : pT=0.000632 : TOF=37.3 : x=(-0.575,1.66,-8.1) -B3 : mu+ : pT=42.7 : TOF=15 : x=(-4.04,1.97,-0.032) -B1 : mu- : pT=58.3 : TOF=21.4 : x=(2.08,3.93,-4.61) -B4 : mu+ : pT=21.8 : TOF=24.2 : x=(-4.25,-1.08,5.77) -E1 : mu- : pT=25.9 : TOF=28.6 : x=(-1.86,2.72,-7.9) +E0 : e- : pT=0.000369 : TOF=29.1 : x=(-0.823,0.569,7.94) +E1 : mu- : pT=1.29 : TOF=27.8 : x=(-0.151,-2.68,-7.9) +E1 : e- : pT=0.000702 : TOF=31 : x=(0.345,-1.69,-7.9) +E1 : e- : pT=0.00121 : TOF=28.1 : x=(-1.62,-0.29,-7.9) +E0 : pi- : pT=0.298 : TOF=26.6 : x=(0.353,-0.963,7.9) +E0 : mu- : pT=0.0257 : TOF=28.2 : x=(-1.12,-0.828,7.9) +E0 : pi+ : pT=0.226 : TOF=26.7 : x=(-0.35,0.973,7.9) +E1 : e- : pT=0.00205 : TOF=27.6 : x=(1.22,0.311,-7.9) +B3 : mu+ : pT=42 : TOF=15 : x=(-4.04,1.97,-0.0268) +B1 : mu- : pT=58.3 : TOF=21.4 : x=(2.07,3.94,-4.63) +B4 : mu+ : pT=22.9 : TOF=24.1 : x=(-4.25,-1.09,5.75) +E1 : mu- : pT=26.5 : TOF=28.6 : x=(-1.86,2.74,-7.9) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=15) -E1 : pi- : pT=0.297 : TOF=26.7 : x=(0.011,-1.06,-7.9) -E0 : e- : pT=0.000664 : TOF=29.2 : x=(0.573,1.12,7.9) -E0 : e- : pT=0.000499 : TOF=31.4 : x=(0.778,0.87,7.9) -E1 : mu- : pT=0.626 : TOF=26.7 : x=(-1.21,-0.17,-7.9) -E1 : pi- : pT=0.113 : TOF=27 : x=(-0.607,-0.921,-7.9) -E1 : e- : pT=0.000587 : TOF=29.9 : x=(-0.545,-1.33,-7.9) -E1 : e- : pT=0.000537 : TOF=30.7 : x=(-0.493,-1.47,-7.9) -E1 : e- : pT=0.000303 : TOF=31.4 : x=(-0.358,-1.45,-7.9) -E1 : pi- : pT=0.358 : TOF=26.6 : x=(-0.144,1.02,-7.9) -E1 : pi+ : pT=0.124 : TOF=26.7 : x=(-0.631,-0.99,-7.9) -E1 : pi+ : pT=0.617 : TOF=27.1 : x=(-1.22,-1.25,-7.9) -B6 : mu+ : pT=26.8 : TOF=16.9 : x=(-0.234,-4.25,-2.74) -E0 : mu- : pT=18.6 : TOF=27.8 : x=(2.62,-0.617,7.9) -E1 : mu- : pT=8.64 : TOF=26.9 : x=(-1.44,0.692,-7.9) -B4 : mu+ : pT=51 : TOF=17.3 : x=(-4.25,0.677,2.92) +*** Muon System Hit (#hits=10) +E1 : pi- : pT=0.11 : TOF=27 : x=(-0.612,-0.904,-7.9) +E1 : e- : pT=0.0024 : TOF=27.6 : x=(-1.01,-1.34,-7.9) +E1 : pi- : pT=0.359 : TOF=26.6 : x=(-0.15,1.02,-7.9) +E1 : e- : pT=0.00115 : TOF=28 : x=(-0.153,-1.18,-7.9) +E1 : e- : pT=0.00182 : TOF=27.4 : x=(-1.44,-0.518,-7.9) +B6 : mu+ : pT=28.4 : TOF=16.9 : x=(-0.237,-4.25,-2.74) +E0 : mu- : pT=18.9 : TOF=27.8 : x=(2.63,-0.612,7.9) +E1 : mu- : pT=8.45 : TOF=26.9 : x=(-1.44,0.674,-7.9) +E1 : e- : pT=0.00144 : TOF=27.1 : x=(-1.54,0.59,-7.9) +B4 : mu+ : pT=48.5 : TOF=17.3 : x=(-4.25,0.685,2.92) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=30) -E1 : e+ : pT=0.00741 : TOF=26.6 : x=(0.82,-0.592,-7.9) -E0 : pi- : pT=0.536 : TOF=26.7 : x=(0.746,-0.967,7.9) -E1 : pi- : pT=1.23 : TOF=26.6 : x=(-1.05,0.00119,-7.9) -E1 : mu+ : pT=0.164 : TOF=27 : x=(0.496,0.868,-8) -E0 : pi- : pT=3.4 : TOF=26.6 : x=(0.697,-0.808,7.9) -E0 : pi- : pT=0.584 : TOF=27 : x=(-0.797,-0.604,8.03) -E0 : kaon+ : pT=0.531 : TOF=26.8 : x=(0.13,1.05,7.9) -E0 : pi- : pT=0.294 : TOF=26.6 : x=(0.147,1.05,7.9) -E1 : pi- : pT=0.42 : TOF=26.6 : x=(-0.0944,1.05,-7.9) -E1 : pi+ : pT=0.307 : TOF=26.7 : x=(0.0136,-1.23,-7.9) -E1 : kaon+ : pT=2.03 : TOF=26.6 : x=(0.373,0.992,-7.9) -E0 : kaon- : pT=0.218 : TOF=27.9 : x=(-1.09,-0.0267,7.9) -E1 : kaon+ : pT=1.37 : TOF=26.8 : x=(1.38,-0.309,-7.9) -E0 : pi+ : pT=1.7 : TOF=26.7 : x=(-0.926,0.783,7.9) -E0 : mu+ : pT=0.48 : TOF=27.9 : x=(-1.06,2.53,7.9) -E1 : pi+ : pT=1.08 : TOF=26.9 : x=(-1.09,-0.742,-7.9) -E1 : pi+ : pT=0.299 : TOF=28.6 : x=(-0.256,-1.52,-7.9) -E1 : proton : pT=0.241 : TOF=27.6 : x=(-0.957,-0.798,-7.9) -E1 : mu+ : pT=0.101 : TOF=31.8 : x=(-0.485,-1.9,-7.9) -E1 : proton : pT=0.419 : TOF=27.1 : x=(-0.951,-0.863,-7.9) -E1 : pi+ : pT=0.334 : TOF=30.6 : x=(0.684,-1.27,-7.9) -E1 : pi- : pT=0.483 : TOF=31 : x=(-2.53,-1.06,-7.9) -E1 : proton : pT=0.338 : TOF=27 : x=(-0.912,-0.684,-7.9) -E1 : mu- : pT=0.274 : TOF=28 : x=(1.29,2.27,-7.9) -E1 : pi+ : pT=0.3 : TOF=27.1 : x=(-0.882,-0.471,-8.05) -B6 : mu- : pT=42 : TOF=14.9 : x=(-1.27,-4.25,0.409) -B6 : e- : pT=0.0158 : TOF=15 : x=(-1.3,-4.25,0.547) -E1 : mu+ : pT=24 : TOF=27.9 : x=(-2.65,0.758,-7.9) -B7 : mu+ : pT=42.8 : TOF=17.2 : x=(2.11,-3.9,-2.61) -B2 : mu- : pT=52.5 : TOF=22 : x=(1.45,4.25,-4.83) +*** Muon System Hit (#hits=21) +E0 : pi- : pT=0.536 : TOF=26.7 : x=(0.754,-0.961,7.9) +E1 : pi- : pT=1.23 : TOF=26.6 : x=(-1.05,0.00521,-7.9) +E1 : pi+ : pT=0.204 : TOF=26.7 : x=(0.449,0.975,-7.9) +E0 : pi- : pT=3.4 : TOF=26.6 : x=(0.695,-0.811,7.9) +E0 : pi- : pT=0.583 : TOF=27 : x=(-0.8,-0.6,8.03) +E0 : mu- : pT=0.506 : TOF=26.7 : x=(-0.712,0.755,7.9) +E0 : kaon+ : pT=0.532 : TOF=26.8 : x=(0.139,1.05,7.9) +E0 : mu- : pT=0.272 : TOF=26.7 : x=(0.208,1.08,7.9) +E1 : pi- : pT=0.425 : TOF=26.6 : x=(-0.0907,1.06,-7.9) +E0 : kaon- : pT=0.218 : TOF=27.9 : x=(-1.09,-0.0193,7.9) +E0 : e- : pT=0.000466 : TOF=31.8 : x=(1.47,0.409,7.9) +E0 : e- : pT=0.000277 : TOF=32.4 : x=(1.53,0.313,7.9) +E0 : e- : pT=9.85e-05 : TOF=31.8 : x=(1.47,0.413,7.9) +E1 : kaon+ : pT=2.03 : TOF=26.6 : x=(0.372,0.993,-7.9) +E0 : pi+ : pT=1.7 : TOF=26.7 : x=(-0.925,0.786,7.9) +E1 : pi+ : pT=1.19 : TOF=26.7 : x=(-0.866,-0.816,-7.9) +E1 : pi+ : pT=0.3 : TOF=27.1 : x=(-0.883,-0.469,-8.04) +B6 : mu- : pT=42.3 : TOF=14.8 : x=(-1.25,-4.25,0.423) +E1 : mu+ : pT=23.9 : TOF=27.9 : x=(-2.64,0.752,-7.9) +B7 : mu+ : pT=41.6 : TOF=17.2 : x=(2.1,-3.91,-2.61) +B2 : mu- : pT=51.3 : TOF=22.1 : x=(1.48,4.25,-4.85) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=23) -E0 : e- : pT=0.0121 : TOF=26.6 : x=(1.18,0.138,7.9) -E1 : pi- : pT=3.55 : TOF=26.7 : x=(0.739,-1.02,-7.9) -E1 : proton : pT=0.26 : TOF=41.2 : x=(-1.33,0.205,-7.9) -E1 : mu+ : pT=0.411 : TOF=26.6 : x=(-0.669,0.798,-7.9) -E1 : e- : pT=0.000313 : TOF=26.8 : x=(-0.732,0.801,-7.9) -B2 : pi+ : pT=0.376 : TOF=29.2 : x=(-0.469,4.25,-5.92) -E0 : e- : pT=0.000679 : TOF=29.9 : x=(0.544,0.839,7.96) -E1 : pi- : pT=0.293 : TOF=26.7 : x=(0.0569,-1.1,-7.9) -E1 : e- : pT=0.00276 : TOF=28 : x=(1.29,0.432,-7.9) -E1 : pi- : pT=0.83 : TOF=26.6 : x=(-0.0938,1.01,-7.9) -E1 : pi+ : pT=1.9 : TOF=26.6 : x=(0.495,0.974,-7.9) -E1 : pi- : pT=0.428 : TOF=26.7 : x=(0.687,1.04,-7.9) -E1 : pi- : pT=13 : TOF=26.7 : x=(0.375,1.15,-7.9) -E1 : pi- : pT=2.59 : TOF=26.6 : x=(0.23,1.1,-7.9) -E1 : pi- : pT=1.06 : TOF=26.6 : x=(0.00362,1.1,-7.9) -E1 : pi+ : pT=0.695 : TOF=26.6 : x=(0.699,0.891,-7.9) -E1 : pi- : pT=0.551 : TOF=26.6 : x=(0.681,-0.888,-7.9) -E1 : pi- : pT=0.309 : TOF=26.7 : x=(-0.981,0.195,-7.94) -E1 : e- : pT=0.000682 : TOF=28.9 : x=(0.702,-0.743,-7.9) -E1 : e- : pT=0.000116 : TOF=30 : x=(0.794,-0.923,-8.1) -B6 : mu- : pT=42.2 : TOF=25.1 : x=(1.51,-4.25,-6.04) -E1 : mu+ : pT=29.4 : TOF=26.9 : x=(1.59,0.0322,-7.9) +*** Muon System Hit (#hits=21) +E1 : pi+ : pT=0.423 : TOF=26.6 : x=(-0.674,0.794,-7.9) +E1 : pi- : pT=0.292 : TOF=26.7 : x=(0.0581,-1.09,-7.9) +E1 : kaon+ : pT=0.239 : TOF=27 : x=(0.583,-1.16,-7.9) +E0 : mu- : pT=0.347 : TOF=26.7 : x=(-0.0869,-1.2,7.9) +E1 : pi- : pT=0.826 : TOF=26.6 : x=(-0.0928,1.01,-7.9) +E1 : pi+ : pT=1.89 : TOF=26.6 : x=(0.496,0.971,-7.9) +E1 : pi- : pT=0.498 : TOF=26.7 : x=(0.757,1.02,-7.9) +E1 : pi- : pT=13 : TOF=26.7 : x=(0.376,1.15,-7.9) +E1 : pi- : pT=2.59 : TOF=26.6 : x=(0.231,1.1,-7.9) +E1 : pi- : pT=1.06 : TOF=26.6 : x=(0.00287,1.1,-7.9) +E1 : pi+ : pT=0.698 : TOF=26.6 : x=(0.699,0.893,-7.9) +E1 : mu+ : pT=1.15 : TOF=27 : x=(0.0196,-1.75,-7.9) +E1 : pi- : pT=0.548 : TOF=26.6 : x=(0.681,-0.887,-7.9) +E1 : pi- : pT=0.312 : TOF=26.6 : x=(-0.985,0.187,-7.9) +E1 : mu+ : pT=1.7 : TOF=27.1 : x=(1.37,1.35,-7.9) +E1 : pi+ : pT=6.31 : TOF=26.7 : x=(0.481,1.15,-7.9) +E1 : e- : pT=0.000537 : TOF=27.1 : x=(0.328,1.2,-7.9) +E1 : e- : pT=9.91e-05 : TOF=29.2 : x=(0.181,1.12,-8.1) +B6 : mu- : pT=40.5 : TOF=25.2 : x=(1.49,-4.25,-6.05) +E1 : mu+ : pT=28.6 : TOF=26.9 : x=(1.58,0.0338,-7.9) E1 : mu- : pT=69.8 : TOF=26.6 : x=(-1.14,-0.105,-7.9) Print out hit information ------------------------------------------ *** Muon System Hit (#hits=11) -E0 : mu- : pT=0.173 : TOF=26.7 : x=(-0.798,0.707,7.9) -E1 : pi- : pT=0.065 : TOF=33.6 : x=(0.197,0.98,-7.96) -E1 : mu+ : pT=0.0974 : TOF=27 : x=(-0.666,-0.958,-7.9) -E0 : anti_proton : pT=0.653 : TOF=27.1 : x=(0.922,-0.59,7.9) -E1 : mu+ : pT=0.0996 : TOF=27.6 : x=(1.18,-1.18,-7.9) -E1 : pi- : pT=0.797 : TOF=26.6 : x=(-0.265,-1.06,-7.9) -E1 : kaon+ : pT=0.467 : TOF=26.8 : x=(0.614,-0.801,-7.9) -B5 : mu- : pT=17 : TOF=22.1 : x=(-2.87,-3.14,-5.09) -B4 : mu+ : pT=74.1 : TOF=20.4 : x=(-4.25,1.13,4.25) -E0 : mu- : pT=23.6 : TOF=27.5 : x=(-1.05,2.14,7.9) -B5 : mu+ : pT=64.9 : TOF=16 : x=(-2.56,-3.45,2.1) +E1 : e- : pT=0.00163 : TOF=27.6 : x=(0.438,0.899,-8.05) +E1 : e- : pT=0.00153 : TOF=28.4 : x=(0.76,1.57,-7.9) +E0 : pi- : pT=0.19 : TOF=26.7 : x=(-0.77,0.661,7.9) +E1 : pi+ : pT=0.148 : TOF=26.9 : x=(-0.79,-0.845,-7.9) +E0 : anti_proton : pT=0.652 : TOF=27.1 : x=(0.922,-0.59,7.9) +E1 : mu- : pT=0.478 : TOF=26.9 : x=(1.49,-0.685,-7.9) +E1 : pi- : pT=0.799 : TOF=26.6 : x=(-0.266,-1.06,-7.9) +B5 : mu- : pT=16.7 : TOF=22.1 : x=(-2.87,-3.14,-5.09) +B4 : mu+ : pT=74.3 : TOF=20.4 : x=(-4.25,1.13,4.25) +E0 : mu- : pT=23.7 : TOF=27.5 : x=(-1.05,2.14,7.9) +B5 : mu+ : pT=64.4 : TOF=16 : x=(-2.56,-3.45,2.11) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=10) -E0 : pi- : pT=0.1 : TOF=27.1 : x=(0.94,0.65,7.9) -E0 : pi- : pT=0.106 : TOF=27.2 : x=(1.09,0.622,7.9) -E0 : pi+ : pT=0.174 : TOF=27.2 : x=(1.16,0.556,7.9) -E1 : mu- : pT=0.108 : TOF=26.9 : x=(-0.236,1.11,-7.9) -E1 : pi- : pT=0.124 : TOF=26.7 : x=(-1.17,-0.277,-7.9) -E0 : pi+ : pT=0.377 : TOF=26.7 : x=(0.701,0.914,7.9) -B5 : mu+ : pT=16.3 : TOF=15 : x=(-4.07,-1.94,0.178) -B1 : mu- : pT=98.2 : TOF=14.3 : x=(3.37,2.64,0.179) -B1 : mu+ : pT=62.2 : TOF=17.9 : x=(3.08,2.93,3.26) -B4 : mu- : pT=29.7 : TOF=19.3 : x=(-4.25,-0.461,3.89) +*** Muon System Hit (#hits=11) +E1 : pi- : pT=0.167 : TOF=26.9 : x=(-0.173,1.2,-7.9) +E1 : mu+ : pT=0.105 : TOF=26.9 : x=(-0.663,0.752,-7.9) +E1 : e- : pT=0.00222 : TOF=27.7 : x=(-1.31,0.361,-7.9) +E1 : mu- : pT=0.109 : TOF=26.9 : x=(0.614,-1.09,-7.9) +E1 : pi+ : pT=1.79 : TOF=27 : x=(-0.628,-1.63,-7.9) +E0 : e- : pT=0.000832 : TOF=27.6 : x=(0.338,1.45,7.9) +E0 : pi+ : pT=0.376 : TOF=26.7 : x=(0.699,0.914,7.9) +B5 : mu+ : pT=13.7 : TOF=15 : x=(-4.07,-1.94,0.171) +B1 : mu- : pT=97.2 : TOF=14.3 : x=(3.37,2.64,0.181) +B1 : mu+ : pT=63.1 : TOF=17.9 : x=(3.08,2.93,3.26) +B4 : mu- : pT=30.5 : TOF=19.3 : x=(-4.25,-0.438,3.89) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=15) -E1 : mu- : pT=0.15 : TOF=26.8 : x=(-0.784,0.955,-7.9) -E1 : pi+ : pT=0.115 : TOF=27.2 : x=(1.06,-0.669,-7.9) -E1 : e+ : pT=0.145 : TOF=26.6 : x=(0.402,0.918,-7.9) -E1 : e- : pT=0.0496 : TOF=26.6 : x=(0.41,0.92,-7.9) -E1 : pi- : pT=0.644 : TOF=26.6 : x=(-0.561,0.839,-7.9) -E0 : pi+ : pT=0.633 : TOF=26.7 : x=(-0.722,-0.932,7.9) -E0 : e- : pT=0.00119 : TOF=27.8 : x=(0.335,-1.06,7.9) -E0 : pi+ : pT=0.692 : TOF=26.6 : x=(-0.168,-0.998,7.9) -E1 : pi- : pT=0.913 : TOF=26.6 : x=(1.02,0.463,-7.9) -E1 : kaon- : pT=0.814 : TOF=26.7 : x=(0.159,-1.16,-7.9) -E1 : e- : pT=0.000238 : TOF=27.1 : x=(-0.748,0.677,-7.9) -E0 : mu+ : pT=4.26 : TOF=27.6 : x=(-2.23,-0.935,7.9) -E1 : mu- : pT=24.6 : TOF=27 : x=(0.371,1.72,-7.9) -E1 : mu+ : pT=21.5 : TOF=28.7 : x=(3.33,-0.623,-7.9) -B5 : mu- : pT=22.7 : TOF=23.5 : x=(-3.65,-2.36,5.53) +*** Muon System Hit (#hits=14) +E1 : pi+ : pT=0.0724 : TOF=27.1 : x=(0.956,-0.621,-7.9) +E1 : pi- : pT=0.644 : TOF=26.6 : x=(-0.561,0.841,-7.9) +E1 : mu+ : pT=0.0492 : TOF=29.4 : x=(2.87,0.0326,-7.9) +E0 : mu- : pT=0.0373 : TOF=29.4 : x=(0.835,0.871,7.9) +E0 : pi+ : pT=0.632 : TOF=26.7 : x=(-0.725,-0.93,7.9) +E0 : pi+ : pT=0.688 : TOF=26.6 : x=(-0.165,-0.998,7.9) +E1 : pi- : pT=0.912 : TOF=26.6 : x=(1.02,0.465,-7.9) +E1 : mu+ : pT=0.0959 : TOF=27.1 : x=(-0.55,-1,-7.9) +E1 : e- : pT=0.000695 : TOF=27.6 : x=(-0.535,-1.14,-7.9) +E1 : kaon- : pT=0.812 : TOF=26.7 : x=(0.163,-1.16,-7.9) +E0 : mu+ : pT=4.41 : TOF=27.6 : x=(-2.26,-0.94,7.9) +E1 : mu- : pT=24.6 : TOF=27 : x=(0.37,1.72,-7.9) +E1 : mu+ : pT=21.9 : TOF=28.6 : x=(3.31,-0.627,-7.9) +B5 : mu- : pT=22.2 : TOF=23.4 : x=(-3.64,-2.37,5.53) Print out hit information ------------------------------------------ *** Muon System Hit (#hits=7) -E1 : pi- : pT=0.189 : TOF=26.8 : x=(1.06,0.813,-7.9) -E0 : pi+ : pT=0.0723 : TOF=28 : x=(-1.19,-0.228,7.9) -E1 : e- : pT=0.00102 : TOF=28.9 : x=(0.772,-0.651,-7.9) -B1 : mu- : pT=19.6 : TOF=21.6 : x=(1.89,4.12,4.62) -E1 : mu+ : pT=11.3 : TOF=26.7 : x=(-1.15,-0.41,-7.9) -B6 : mu+ : pT=15.1 : TOF=18.8 : x=(-0.0189,-4.25,3.69) -E1 : mu- : pT=39.4 : TOF=27.7 : x=(-0.917,-2.4,-7.9) +E0 : e- : pT=0.00108 : TOF=28.9 : x=(-0.109,1.36,7.9) +E1 : e- : pT=0.000312 : TOF=31.8 : x=(1.23,-0.241,-7.9) +E1 : pi- : pT=0.201 : TOF=35.1 : x=(2.99,-0.0553,-7.9) +B1 : mu- : pT=20.1 : TOF=21.6 : x=(1.88,4.13,4.6) +E1 : mu+ : pT=11.2 : TOF=26.7 : x=(-1.15,-0.41,-7.9) +B6 : mu+ : pT=15.4 : TOF=18.8 : x=(0.0482,-4.25,3.68) +E1 : mu- : pT=40.8 : TOF=27.7 : x=(-0.921,-2.41,-7.9) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=9) -E1 : pi- : pT=0.881 : TOF=26.6 : x=(0.986,-0.539,-7.9) -E0 : mu+ : pT=0.0765 : TOF=27 : x=(0.376,-0.961,7.9) -E1 : pi+ : pT=0.353 : TOF=26.7 : x=(0.441,-1.1,-7.9) -E1 : e- : pT=0.00138 : TOF=28.5 : x=(1.43,0.967,-7.9) -E0 : mu- : pT=0.172 : TOF=34.3 : x=(1.47,-0.372,7.9) -B1 : mu+ : pT=29.4 : TOF=15.6 : x=(4.05,1.96,-1.33) -B4 : mu- : pT=67.6 : TOF=14.7 : x=(-4.25,0.69,-1) -B1 : mu- : pT=43.1 : TOF=14.3 : x=(3.15,2.86,0.524) -B4 : mu+ : pT=34.2 : TOF=20.1 : x=(-4.25,-0.722,4.21) +*** Muon System Hit (#hits=6) +E1 : pi- : pT=0.879 : TOF=26.6 : x=(0.986,-0.538,-7.9) +E1 : pi+ : pT=0.353 : TOF=26.7 : x=(0.449,-1.1,-7.9) +B1 : mu+ : pT=30 : TOF=15.6 : x=(4.04,1.97,-1.31) +B4 : mu- : pT=66.3 : TOF=14.8 : x=(-4.25,0.693,-1.01) +B1 : mu- : pT=44.3 : TOF=14.3 : x=(3.14,2.87,0.513) +B4 : mu+ : pT=33.5 : TOF=20.1 : x=(-4.25,-0.712,4.22) Print out hit information ------------------------------------------ -*** Muon System Hit (#hits=16) -E0 : pi- : pT=0.152 : TOF=26.8 : x=(0.186,-1.01,7.9) -E0 : pi- : pT=0.482 : TOF=26.7 : x=(0.123,-1.15,7.9) -E1 : pi- : pT=0.316 : TOF=26.7 : x=(1.19,-0.193,-7.9) -E0 : e- : pT=0.000452 : TOF=30 : x=(0.825,-0.624,7.9) -E0 : pi+ : pT=0.272 : TOF=26.6 : x=(0.689,-0.774,7.9) -E0 : pi- : pT=1.08 : TOF=26.6 : x=(0.412,-0.944,7.9) -E0 : pi+ : pT=1.21 : TOF=26.6 : x=(0.749,-0.67,7.9) -E0 : mu+ : pT=0.466 : TOF=27.7 : x=(0.945,-2.1,7.9) -E0 : proton : pT=0.535 : TOF=27.5 : x=(0.93,-0.697,7.9) -E0 : pi- : pT=2 : TOF=26.7 : x=(0.667,0.992,7.9) -E1 : mu- : pT=3.3 : TOF=28 : x=(-0.0478,2.8,-7.9) -E0 : pi+ : pT=0.586 : TOF=26.7 : x=(-1.12,-0.471,7.9) -E0 : pi+ : pT=0.67 : TOF=26.6 : x=(0.106,1.03,7.9) -E0 : mu- : pT=29.9 : TOF=27.5 : x=(-2.25,-0.52,7.9) -B7 : mu- : pT=55.4 : TOF=15.6 : x=(1.92,-4.09,1.27) -E0 : mu+ : pT=18.1 : TOF=27.2 : x=(1.26,1.59,7.9) +*** Muon System Hit (#hits=17) +E0 : pi- : pT=0.15 : TOF=26.8 : x=(0.18,-1.01,7.9) +E0 : e+ : pT=1.14 : TOF=26.6 : x=(-0.547,-1.04,7.9) +E0 : e- : pT=0.0657 : TOF=26.6 : x=(-0.551,-1.05,7.9) +E0 : pi- : pT=0.486 : TOF=26.7 : x=(0.123,-1.15,7.9) +E0 : e- : pT=0.00107 : TOF=26.7 : x=(0.187,-1.09,7.9) +E1 : proton : pT=0.184 : TOF=43.6 : x=(-0.412,1.19,-7.9) +E0 : pi+ : pT=0.276 : TOF=26.6 : x=(0.704,-0.78,7.9) +E0 : pi- : pT=1.09 : TOF=26.6 : x=(0.414,-0.945,7.9) +E0 : pi+ : pT=1.21 : TOF=26.6 : x=(0.75,-0.67,7.9) +E0 : mu+ : pT=0.321 : TOF=27.4 : x=(1.04,-1.72,7.9) +E0 : proton : pT=0.538 : TOF=27.5 : x=(0.935,-0.695,7.9) +E0 : pi- : pT=2 : TOF=26.7 : x=(0.671,0.992,7.9) +E0 : pi+ : pT=0.67 : TOF=26.6 : x=(0.105,1.03,7.9) +E0 : pi+ : pT=0.564 : TOF=26.7 : x=(-1.12,-0.466,7.9) +E0 : mu- : pT=29.9 : TOF=27.4 : x=(-2.24,-0.52,7.9) +B7 : mu- : pT=55.6 : TOF=15.7 : x=(1.92,-4.09,1.27) +E0 : mu+ : pT=17.8 : TOF=27.2 : x=(1.26,1.59,7.9) 1********* PYSTAT: Statistics on Number of Events and Cross-sections ********* diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh index dfbaff3911..0dce4d5364 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02EMPhysics.hh,v 1.1 2002/05/28 14:10:50 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02EMPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -86,3 +86,8 @@ class H02EMPhysics : public G4VPhysicsConstructor #endif + + + + + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh index 52e867ec18..3f9e429a23 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02GeneralPhysics.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02GeneralPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh index bbdf382b2b..d4851a172c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh @@ -19,21 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: H02HadronPhysics.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// Class Description: -// This class is an derived class of G4VPhysicsConstructor -// -// ------------------------------------------- -// History -// first version 12 Nov. 2000 by H.Kurashige -// ------------------------------------------------------------ +//======================== +// taken from example N04 of G4 distribution +//======================== #ifndef H02HadronPhysics_h #define H02HadronPhysics_h 1 @@ -147,6 +135,16 @@ #include "G4KaonMinusAbsorptionAtRest.hh" #endif +// quark gluon string model with chips afterburner. +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + class H02HadronPhysics : public G4VPhysicsConstructor { public: @@ -171,14 +169,12 @@ class H02HadronPhysics : public G4VPhysicsConstructor // Pi + G4PionPlusInelasticProcess thePionPlusInelastic; G4LEPionPlusInelastic* theLEPionPlusModel; - G4HEPionPlusInelastic* theHEPionPlusModel; G4MultipleScattering thePionPlusMult; G4hIonisation thePionPlusIonisation; // Pi - G4PionMinusInelasticProcess thePionMinusInelastic; G4LEPionMinusInelastic* theLEPionMinusModel; - G4HEPionMinusInelastic* theHEPionMinusModel; G4MultipleScattering thePionMinusMult; G4hIonisation thePionMinusIonisation; #ifdef TRIUMF_STOP_PIMINUS @@ -187,13 +183,23 @@ class H02HadronPhysics : public G4VPhysicsConstructor G4PiMinusAbsorptionAtRest thePionMinusAbsorption; #endif + // pi+ and pi- + + G4TheoFSGenerator theTheoModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + // K + G4KaonPlusInelasticProcess theKaonPlusInelastic; G4LEKaonPlusInelastic* theLEKaonPlusModel; G4HEKaonPlusInelastic* theHEKaonPlusModel; G4MultipleScattering theKaonPlusMult; G4hIonisation theKaonPlusIonisation; - + // K - G4KaonMinusInelasticProcess theKaonMinusInelastic; G4LEKaonMinusInelastic* theLEKaonMinusModel; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh index 9822e9abe6..82e678138a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02IonPhysics.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02IonPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh index 26845eb912..2f7e9d83dc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02MuonPhysics.hh,v 1.1 2002/05/28 14:10:52 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02MuonPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh index dd270474f6..069b21fff9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4AsciiReader.hh -// $Id: HepMCG4AsciiReader.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: HepMCG4AsciiReader.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ // // ==================================================================== #ifndef HEPMC_G4_ASCII_READER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh index 4603fad0f5..a186f6a380 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4AsciiReaderMessenger.hh -// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ // // ==================================================================== #ifndef HEPMC_G4_ASCII_READER_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh index 44d40b3605..bd5d1dbb72 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4Interface.hh -// $Id: HepMCG4Interface.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: HepMCG4Interface.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ // // A base class for primary generation via HepMC object. // This class is derived from G4VPrimaryGenerator. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh index bf3356faa4..8379ba45fc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4PythiaInterface.hh -// $Id: HepMCG4PythiaInterface.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: HepMCG4PythiaInterface.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ // // A generic interface class with Pythia event generator via HepMC. // @@ -69,7 +69,7 @@ public: void CallPygive(G4String par); void CallPyrget(G4int lun, G4int move); void CallPyrset(G4int lun, G4int move); - void PrintRandomStatus(G4std::ostream& ostr=G4std::cout) const; + void PrintRandomStatus(G4std::ostream& ostr=G4cout) const; // setup user parameters (empty in default). // Implement your parameters in a delived class if you want. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh index 911aff5bac..eefadcc94e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4GenericPythiaMessenger.hh -// $Id: HepMCG4PythiaMessenger.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: HepMCG4PythiaMessenger.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ // // ==================================================================== #ifndef HEPMC_G4_PYTHIA_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc index 75874c674e..26f48fd6cd 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02EMPhysics.cc,v 1.1 2002/05/28 14:15:46 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02EMPhysics.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc index f020708fe9..5e64378080 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02GeneralPhysics.cc,v 1.1 2002/05/28 14:15:47 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02GeneralPhysics.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc index a2668e63b3..0bdeb877a8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc @@ -19,13 +19,6 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: H02HadronPhysics.cc,v 1.1 2002/05/28 14:15:47 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// - #include "H02HadronPhysics.hh" #include "globals.hh" @@ -40,6 +33,7 @@ H02HadronPhysics::H02HadronPhysics(const G4String& name) H02HadronPhysics::~H02HadronPhysics() { +delete theStringDecay; } #include "G4ParticleDefinition.hh" @@ -78,15 +72,25 @@ void H02HadronPhysics::ConstructProcess() theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); + // pi+ and pi- + + thePreEquilib = new G4PreCompoundModel(&theHandler); + theCascade.SetDeExcitation(thePreEquilib); + theTheoModel.SetTransport(&theCascade); + theTheoModel.SetHighEnergyGenerator(&theStringModel); + theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theStringModel.SetFragmentationModel(theStringDecay); + theTheoModel.SetMinEnergy(15*GeV); + theTheoModel.SetMaxEnergy(100*TeV); + // PionPlus pManager = G4PionPlus::PionPlus()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEPionPlusModel = new G4LEPionPlusInelastic(); - theHEPionPlusModel = new G4HEPionPlusInelastic(); thePionPlusInelastic.RegisterMe(theLEPionPlusModel); - thePionPlusInelastic.RegisterMe(theHEPionPlusModel); + thePionPlusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&thePionPlusInelastic); pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); @@ -101,9 +105,8 @@ void H02HadronPhysics::ConstructProcess() pManager->AddDiscreteProcess(&theElasticProcess); theLEPionMinusModel = new G4LEPionMinusInelastic(); - theHEPionMinusModel = new G4HEPionMinusInelastic(); thePionMinusInelastic.RegisterMe(theLEPionMinusModel); - thePionMinusInelastic.RegisterMe(theHEPionMinusModel); + thePionMinusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&thePionMinusInelastic); pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); @@ -122,7 +125,7 @@ void H02HadronPhysics::ConstructProcess() theLEKaonPlusModel = new G4LEKaonPlusInelastic(); theHEKaonPlusModel = new G4HEKaonPlusInelastic(); theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); - theKaonPlusInelastic.RegisterMe(theHEKaonPlusModel); + theKaonPlusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theKaonPlusInelastic); pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); @@ -180,7 +183,7 @@ void H02HadronPhysics::ConstructProcess() theLEProtonModel = new G4LEProtonInelastic(); theHEProtonModel = new G4HEProtonInelastic(); theProtonInelastic.RegisterMe(theLEProtonModel); - theProtonInelastic.RegisterMe(theHEProtonModel); + theProtonInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theProtonInelastic); pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); @@ -216,7 +219,7 @@ void H02HadronPhysics::ConstructProcess() theLENeutronModel = new G4LENeutronInelastic(); theHENeutronModel = new G4HENeutronInelastic(); theNeutronInelastic.RegisterMe(theLENeutronModel); - theNeutronInelastic.RegisterMe(theHENeutronModel); + theNeutronInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theNeutronInelastic); //theNeutronFissionModel = new G4LFission(); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc index 87a2be9ccb..55e79f07d1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02IonPhysics.cc,v 1.1 2002/05/28 14:15:47 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02IonPhysics.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc index 9ce54d6ba1..df6e274edf 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02MuonPhysics.cc,v 1.1 2002/05/28 14:15:47 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02MuonPhysics.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc index cbef74d57f..f689603f41 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: H02PhysicsList.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: H02PhysicsList.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc index e424b78b8c..e821a2f425 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4AsciiReader.cc -// $Id: HepMCG4AsciiReader.cc,v 1.1 2002/05/28 14:15:49 murakami Exp $ +// $Id: HepMCG4AsciiReader.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ // // ==================================================================== #include "HepMCG4AsciiReader.hh" @@ -37,7 +37,7 @@ HepMCG4AsciiReader::HepMCG4AsciiReader() : filename("xxx.dat"), verbose(0) //////////////////////////////////////// { - asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + asciiInput= new HepMC::IO_Ascii(filename.c_str(), G4std::ios::in); messenger= new HepMCG4AsciiReaderMessenger(this); } @@ -56,7 +56,7 @@ void HepMCG4AsciiReader::Initialize() { delete asciiInput; - asciiInput= new HepMC::IO_Ascii(filename.c_str(), ios::in); + asciiInput= new HepMC::IO_Ascii(filename.c_str(), G4std::ios::in); asciiInput-> print(); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc index 4903a71dd1..7c4afa0009 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4AsciiReaderMessenger.cc -// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.1 2002/05/28 14:15:49 murakami Exp $ +// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ // // ==================================================================== #include "HepMCG4AsciiReaderMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc index 65b44451ae..b88fc6a364 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4Interface.cc -// $Id: HepMCG4Interface.cc,v 1.1 2002/05/28 14:15:50 murakami Exp $ +// $Id: HepMCG4Interface.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ // // ==================================================================== #include "HepMCG4Interface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc index de76746e57..8600cf78bf 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4PythiaInterface.cc -// $Id: HepMCG4PythiaInterface.cc,v 1.1 2002/05/28 14:15:50 murakami Exp $ +// $Id: HepMCG4PythiaInterface.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ // // ==================================================================== #include "HepMCG4PythiaInterface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc index 205b9854dc..7951754ab6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc @@ -23,7 +23,7 @@ // ==================================================================== // // HepMCG4PythiaMessenger.cc -// $Id: HepMCG4PythiaMessenger.cc,v 1.1 2002/05/28 14:15:50 murakami Exp $ +// $Id: HepMCG4PythiaMessenger.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ // // ==================================================================== #include "HepMCG4PythiaMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/vis.mac b/examples/extended/eventgenerator/HepMC/HepMCEx02/vis.mac new file mode 100644 index 0000000000..edafc0775c --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/vis.mac @@ -0,0 +1,32 @@ +# +# Macro file for the initialization phase of "exampleN02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# create empty scene +# +/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/set/viewpointThetaPhi 90 180 deg +/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/add/trajectories +/vis/scene/endOfEventAction accumulate + diff --git a/examples/extended/eventgenerator/HepMC/History b/examples/extended/eventgenerator/HepMC/History index 3cdf75c91f..4e3052069c 100644 --- a/examples/extended/eventgenerator/HepMC/History +++ b/examples/extended/eventgenerator/HepMC/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2002/05/28 14:42:10 murakami Exp $ +$Id: History,v 1.5 2002/11/19 16:36:44 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,11 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 19, 2002 M.Asai (exHepMC-V04-01-00) +- Tag for 5.0 release + +Nov 19, 2002 K.Murakami +- Add CLHEP versions. May 28, 2002 K.Murakami (exHepMC-V04-00-01) - Clean up and add README. diff --git a/examples/extended/eventgenerator/HepMC/README b/examples/extended/eventgenerator/HepMC/README index f15ec2a5da..b6b46dd5e6 100644 --- a/examples/extended/eventgenerator/HepMC/README +++ b/examples/extended/eventgenerator/HepMC/README @@ -3,21 +3,34 @@ This directory contains examples for using HepMC as an interface with various Monte Carlo event generators, such as PYTHIA. -Note that HepMC can be currently compiled only with gcc, so examples in -this directory were tested only with gcc. + + In the version 1.80 of CLHEP, HepMC is merged into a part of CLHEP. +Toghether with this migration, the generic interfaces with HepMC is +provied in the G4 main tree from the release of Geant4.5.0. +But there are differences between the original HepMC and the CLHEP version +in terms of the I/O scheme. So, in this directory, a pair of codes for +each example, one for original HepMC and the other for the CLHEP version +which is tagged with "-clhep", is prepared. + Requirements for external software packages ------------------------------------------- -HepMC +HepMC (now, migrated into CLHEP(1.80)) tested version : 1.21 (latest at 28/May/02) URL: http://mdobbs.home.cern.ch/mdobbs/HepMC/ + Note that the original HepMC can be currently compiled only with gcc, + so examples were tested only with gcc. + PYTHIA tested version 6.205 URL: http://www.thep.lu.se/~torbjorn/Pythia.html + What is provided ---------------- +a) For the original HepMC + class HepMCG4Interface This class is derived from G4VPrimaryGenerator, and is a base class for primary generation via HepMC object. @@ -52,16 +65,26 @@ class HepMCG4PythiaInterface / HepMCG4AsciiReaderMessenger Users can set parameters, initialize, generate, and terminate by command line operation. + +b) For the CLHEP version of HepMC + + G4HepMCInterface, G4HepMCAsciiReader and G4HepMCAsciiReaderMessenger, +which have the same functionality as the above respective ones, are located +in the Geant4 "event/" source tree. As an example of interface with PYTHIA, +the classes of HxxPythiaInterface/HxxPythiaMessenger are provided in each +example. + Examples -------- -HepMCEx01 +HepMCEx01/HepMCEx01-clhep This example is based on ExampleN04. Only part of the primary generator action is replaced with new one. -HepMCEx02 +HepMCEx02/HepMCEx02-clhep This is another example having the same generator action as HepMCEx01, but much simpler user control. + Macros in examples ----------------- hepmc_pygen.in @@ -77,10 +100,11 @@ library have to be given in GNUmakefile. Please modify the next two lines in GNUmakefile; HEPMC_DIR := xxxxx # HepMC installed directory + (required only for using the original version) CERNLIB_DIR := xxxxx # directory including PYTHIA library Notes ----- We attached a sample HepMC Ascii data file, "data/example_MyPhyia.dat", -which contains ten PYTHIA events created by "data/example_MyPythia.cxx". +which contains ten PYTHIA events created by "data/example_MyPythia.cxx(cc)". diff --git a/examples/extended/field/field01/field01.cc b/examples/extended/field/field01/field01.cc index 67b5280d85..36bd6efdb0 100644 --- a/examples/extended/field/field01/field01.cc +++ b/examples/extended/field/field01/field01.cc @@ -22,7 +22,7 @@ // // // $Id: field01.cc,v 1.4 2001/11/07 16:36:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index a953fc7cd7..b62972d96e 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called @@ -15,6 +15,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -120,7 +121,7 @@ hIoni: Knock-on electron cross sections . delta ray energy sampled from differential Xsection. PhysicsTables from 1 keV to 100 TeV in 100 bins. -total time(SetCuts)=15.84 s +total time(SetCuts)=15.86 s G4ClassicalRK4 (default) is called The minimal step is equal to 1 mm ============= The cut Energy ============================== @@ -161,7 +162,7 @@ Start Run processing. Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -171,7 +172,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -181,7 +182,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -191,7 +192,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -201,7 +202,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -211,7 +212,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -221,7 +222,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -231,7 +232,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -241,7 +242,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -251,7 +252,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -261,7 +262,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -271,7 +272,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -281,7 +282,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -291,7 +292,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -301,7 +302,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -311,7 +312,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -321,7 +322,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -331,7 +332,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -341,7 +342,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -351,7 +352,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -361,7 +362,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -371,7 +372,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -381,7 +382,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -391,7 +392,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -401,7 +402,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -411,7 +412,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -421,7 +422,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -431,7 +432,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -441,7 +442,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -451,7 +452,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -461,7 +462,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -471,7 +472,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -481,7 +482,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -491,7 +492,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -501,7 +502,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -511,7 +512,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -521,7 +522,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -531,7 +532,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -541,7 +542,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -551,7 +552,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -561,7 +562,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -571,7 +572,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -581,7 +582,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -591,7 +592,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -601,7 +602,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -611,7 +612,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -621,7 +622,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -631,7 +632,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -641,7 +642,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -651,7 +652,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -661,7 +662,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -671,7 +672,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -681,7 +682,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -691,7 +692,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -701,7 +702,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -711,7 +712,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -721,7 +722,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -731,7 +732,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -741,7 +742,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -751,7 +752,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -761,7 +762,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -771,7 +772,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -781,7 +782,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -791,7 +792,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -801,7 +802,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -811,7 +812,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -821,7 +822,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -831,7 +832,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -841,7 +842,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -851,7 +852,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -861,7 +862,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -871,7 +872,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -881,7 +882,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -891,7 +892,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -901,7 +902,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -911,7 +912,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -921,7 +922,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -931,7 +932,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -941,7 +942,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -951,7 +952,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -961,7 +962,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -971,7 +972,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -981,7 +982,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -991,7 +992,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1001,7 +1002,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1011,7 +1012,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1021,7 +1022,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1031,7 +1032,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1041,7 +1042,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1051,7 +1052,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1061,7 +1062,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1071,7 +1072,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1081,7 +1082,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1091,7 +1092,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1101,7 +1102,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1111,7 +1112,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1121,7 +1122,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1131,7 +1132,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1141,7 +1142,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum @@ -1151,13 +1152,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077449158 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum + 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.007747758 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum Run terminated. Run Summary Number of events processed : 100 - User=0.36s Real=0.52s Sys=0.16s + User=0.32s Real=0.71s Sys=0.15s 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 82103ac9c0..b0d52290ea 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.2 2001/07/11 09:57:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01CalorimeterSD.hh b/examples/extended/field/field01/include/F01CalorimeterSD.hh index 09c30d331e..c0eadfeb06 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorConstruction.hh b/examples/extended/field/field01/include/F01DetectorConstruction.hh index 8cd5a7d4e2..ff503a0842 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.5 2001/10/25 08:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorMessenger.hh b/examples/extended/field/field01/include/F01DetectorMessenger.hh index 712f28da7b..e108079aa5 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01ElectroMagneticField.hh b/examples/extended/field/field01/include/F01ElectroMagneticField.hh index 7c98eddab2..c98e32c1b9 100644 --- a/examples/extended/field/field01/include/F01ElectroMagneticField.hh +++ b/examples/extended/field/field01/include/F01ElectroMagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: F01ElectroMagneticField.hh,v 1.4 2001/07/11 09:57:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/field/field01/include/F01EventAction.hh b/examples/extended/field/field01/include/F01EventAction.hh index 6dd62a69b0..353de4ec24 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01EventActionMessenger.hh b/examples/extended/field/field01/include/F01EventActionMessenger.hh index eb607324c0..f966966f1d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01FieldMessenger.hh b/examples/extended/field/field01/include/F01FieldMessenger.hh index c7e293f2b2..1d4d68c272 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.5 2001/10/15 17:20:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01PhysicsList.hh b/examples/extended/field/field01/include/F01PhysicsList.hh index 2480662a27..267161c4dd 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.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef F01PhysicsList_h diff --git a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh index fca3161d8f..440eb089b3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh index dc2536e028..e2655a8598 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh index 3ad5509df4..de3b93d585 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01RunAction.hh b/examples/extended/field/field01/include/F01RunAction.hh index 77e3cc2284..c8114c60e7 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.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01RunMessenger.hh b/examples/extended/field/field01/include/F01RunMessenger.hh index 4d140cb9e4..9deae109ea 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01StepCut.hh b/examples/extended/field/field01/include/F01StepCut.hh index 033ad9afd2..f304f48000 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.3 2001/10/15 17:20:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingAction.hh b/examples/extended/field/field01/include/F01SteppingAction.hh index 955766c8da..996a8e55b0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingMessenger.hh b/examples/extended/field/field01/include/F01SteppingMessenger.hh index 41a4190cd1..3a26de299b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/include/F01SteppingVerbose.hh b/examples/extended/field/field01/include/F01SteppingVerbose.hh index f6234ffc43..a72eafe163 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field01/include/F01VisManager.hh b/examples/extended/field/field01/include/F01VisManager.hh index 561f6e66fa..39a1b0ae95 100644 --- a/examples/extended/field/field01/include/F01VisManager.hh +++ b/examples/extended/field/field01/include/F01VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: F01VisManager.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01CalorHit.cc b/examples/extended/field/field01/src/F01CalorHit.cc index af59c9c114..c1d151cd9d 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.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01CalorimeterSD.cc b/examples/extended/field/field01/src/F01CalorimeterSD.cc index 6161ae8475..601fa51004 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.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorConstruction.cc b/examples/extended/field/field01/src/F01DetectorConstruction.cc index 3928cd63a5..b3d1ab4ca4 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.8 2001/10/26 13:42:44 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorMessenger.cc b/examples/extended/field/field01/src/F01DetectorMessenger.cc index 389d89239c..e18f4089c9 100644 --- a/examples/extended/field/field01/src/F01DetectorMessenger.cc +++ b/examples/extended/field/field01/src/F01DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01DetectorMessenger.cc,v 1.3 2001/10/25 08:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01DetectorMessenger.cc,v 1.4 2002/12/05 01:06:56 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,53 +50,53 @@ F01DetectorMessenger::F01DetectorMessenger(F01DetectorConstruction * F01Det) AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Lead"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); WorldMaterCmd = new G4UIcmdWithAString("/calor/setWorldMat",this); WorldMaterCmd->SetGuidance("Select Material of the World."); WorldMaterCmd->SetParameterName("wchoice",true); WorldMaterCmd->SetDefaultValue("Air"); - WorldMaterCmd->AvailableForStates(Idle); + WorldMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("SizeZ",false,false); AbsThickCmd->SetDefaultUnit("mm"); AbsThickCmd->SetRange("SizeZ>0."); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); AbsRadCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsRad",this); AbsRadCmd->SetGuidance("Set radius of the Absorber"); AbsRadCmd->SetParameterName("SizeR",false,false); AbsRadCmd->SetDefaultUnit("mm"); AbsRadCmd->SetRange("SizeR>0."); - AbsRadCmd->AvailableForStates(Idle); + AbsRadCmd->AvailableForStates(G4State_Idle); AbsZposCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsZpos",this); AbsZposCmd->SetGuidance("Set Z pos. of the Absorber"); AbsZposCmd->SetParameterName("Zpos",false,false); AbsZposCmd->SetDefaultUnit("mm"); - AbsZposCmd->AvailableForStates(Idle); + AbsZposCmd->AvailableForStates(G4State_Idle); WorldZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldZ",this); WorldZCmd->SetGuidance("Set Z size of the World"); WorldZCmd->SetParameterName("WSizeZ",false,false); WorldZCmd->SetDefaultUnit("mm"); WorldZCmd->SetRange("WSizeZ>0."); - WorldZCmd->AvailableForStates(Idle); + WorldZCmd->AvailableForStates(G4State_Idle); WorldRCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldR",this); WorldRCmd->SetGuidance("Set R size of the World"); WorldRCmd->SetParameterName("WSizeR",false,false); WorldRCmd->SetDefaultUnit("mm"); WorldRCmd->SetRange("WSizeR>0."); - WorldRCmd->AvailableForStates(Idle); + WorldRCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/field/field01/src/F01ElectroMagneticField.cc b/examples/extended/field/field01/src/F01ElectroMagneticField.cc index 345c01ec8d..09abb34765 100644 --- a/examples/extended/field/field01/src/F01ElectroMagneticField.cc +++ b/examples/extended/field/field01/src/F01ElectroMagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: F01ElectroMagneticField.cc,v 1.8 2001/10/15 17:20:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // User Field class implementation. diff --git a/examples/extended/field/field01/src/F01EventAction.cc b/examples/extended/field/field01/src/F01EventAction.cc index 3eff112d19..7bcd6a54d3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01EventActionMessenger.cc b/examples/extended/field/field01/src/F01EventActionMessenger.cc index b12d81bc3d..992e9f2a45 100644 --- a/examples/extended/field/field01/src/F01EventActionMessenger.cc +++ b/examples/extended/field/field01/src/F01EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01EventActionMessenger.cc,v 1.2 2001/07/11 09:58:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01EventActionMessenger.cc,v 1.3 2002/12/05 01:06:56 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -53,13 +53,13 @@ F01EventActionMessenger::F01EventActionMessenger(F01EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01FieldMessenger.cc b/examples/extended/field/field01/src/F01FieldMessenger.cc index 5a6ec88cb8..3bba74211a 100644 --- a/examples/extended/field/field01/src/F01FieldMessenger.cc +++ b/examples/extended/field/field01/src/F01FieldMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01FieldMessenger.cc,v 1.5 2001/10/15 17:20:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01FieldMessenger.cc,v 1.6 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -47,34 +47,34 @@ F01FieldMessenger::F01FieldMessenger(F01ElectroMagneticField* pEMfield) StepperCmd->SetGuidance("Select stepper type for magnetic field"); StepperCmd->SetParameterName("choice",true); StepperCmd->SetDefaultValue(4); - StepperCmd->AvailableForStates(PreInit,Idle); + StepperCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/field/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/field/setFieldZ",this); MagFieldCmd->SetGuidance("Define magnetic field."); MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false,false); MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); MinStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this); MinStepCmd->SetGuidance("Define minimal step"); MinStepCmd->SetGuidance("Magnetic field will be in Z direction."); MinStepCmd->SetParameterName("min step",false,false); MinStepCmd->SetDefaultUnit("mm"); - MinStepCmd->AvailableForStates(Idle); + MinStepCmd->AvailableForStates(G4State_Idle); AbsMaterCmd = new G4UIcmdWithAString("/field/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Xe"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); } /////////////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/field/field01/src/F01PhysicsList.cc b/examples/extended/field/field01/src/F01PhysicsList.cc index d2235adb22..0f8508ab54 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.5 2001/11/07 14:33:21 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc index 11b6b1b8f4..af180ee8bb 100644 --- a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc +++ b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01PhysicsListMessenger.cc,v 1.3 2001/10/15 17:20:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01PhysicsListMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,35 +46,35 @@ F01PhysicsListMessenger::F01PhysicsListMessenger(F01PhysicsList * List) cutGCmd->SetParameterName("range",true); cutGCmd->SetDefaultValue(1.); cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(Idle); + cutGCmd->AvailableForStates(G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); cutECmd->SetParameterName("range",true); cutECmd->SetDefaultValue(1.); cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(Idle); + cutECmd->AvailableForStates(G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); cutPCmd->SetParameterName("range",true); cutPCmd->SetDefaultValue(1.); cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(Idle); + cutPCmd->AvailableForStates(G4State_Idle); eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); eCmd->SetParameterName("energy",true); eCmd->SetDefaultValue(10.); eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(Idle); + eCmd->AvailableForStates(G4State_Idle); rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); rCmd->SetGuidance("Display the RANGE of Electron for the current material."); rCmd->SetParameterName("energy",true); rCmd->SetDefaultValue(10.); rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(Idle); + rCmd->AvailableForStates(G4State_Idle); setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc index c6037fe5ee..6a99fd416f 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.6 2001/11/07 14:33:21 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc index e5e6ceb66f..720453719b 100644 --- a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01PrimaryGeneratorMessenger.cc,v 1.3 2001/10/15 17:20:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ F01PrimaryGeneratorMessenger::F01PrimaryGeneratorMessenger(F01PrimaryGeneratorAc RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("off"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); diff --git a/examples/extended/field/field01/src/F01RunAction.cc b/examples/extended/field/field01/src/F01RunAction.cc index 117f5e9c12..179bcf9b51 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.6 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01RunMessenger.cc b/examples/extended/field/field01/src/F01RunMessenger.cc index 9695e6c78f..32f4730207 100644 --- a/examples/extended/field/field01/src/F01RunMessenger.cc +++ b/examples/extended/field/field01/src/F01RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01RunMessenger.cc,v 1.3 2001/10/15 17:20:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -55,13 +55,13 @@ F01RunMessenger::F01RunMessenger(F01RunAction* RA) RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); RndmSaveCmd->SetParameterName("frequency",false); RndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); - RndmSaveCmd->AvailableForStates(PreInit,Idle); + RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); RndmReadCmd->SetGuidance("get rndm status from an external file."); RndmReadCmd->SetParameterName("fileName",true); RndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); - RndmReadCmd->AvailableForStates(PreInit,Idle); + RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01StepCut.cc b/examples/extended/field/field01/src/F01StepCut.cc index 9eccf2843f..6fd2679d73 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "F01StepCut.hh" diff --git a/examples/extended/field/field01/src/F01SteppingAction.cc b/examples/extended/field/field01/src/F01SteppingAction.cc index cae455d41a..0b824bcce8 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.5 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field01/src/F01SteppingMessenger.cc b/examples/extended/field/field01/src/F01SteppingMessenger.cc index 33524d6068..cafbd6ebc0 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.2 2001/07/11 09:58:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01SteppingVerbose.cc b/examples/extended/field/field01/src/F01SteppingVerbose.cc index 5465595ee7..e8a47a9e2d 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.4 2001/10/15 17:20:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 index b1501dcf86..ede2df0ec3 100644 --- a/examples/extended/field/field01/src/F01VisManager.cc +++ b/examples/extended/field/field01/src/F01VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: F01VisManager.cc,v 1.3 2001/12/12 15:22:30 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F01VisManager.cc,v 1.4 2002/11/26 08:28:06 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void F01VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/field/field02/field02.cc b/examples/extended/field/field02/field02.cc index 664181c906..68307f08d5 100644 --- a/examples/extended/field/field02/field02.cc +++ b/examples/extended/field/field02/field02.cc @@ -22,7 +22,7 @@ // // // $Id: field02.cc,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 5fa0411878..448648832d 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called @@ -15,6 +15,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -120,7 +121,7 @@ hIoni: Knock-on electron cross sections . delta ray energy sampled from differential Xsection. PhysicsTables from 1 keV to 100 TeV in 100 bins. -total time(SetCuts)=15.86 s +total time(SetCuts)=15.91 s G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm ============= The cut Energy ============================== @@ -161,16 +162,16 @@ 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 -18.1 cm 2.17 cm 1.86 GeV 75.6 keV 18.6 cm 18.6 cm World eIoni - 2 -455 nm -20 cm 2.22 cm 2.05 GeV 12.3 keV 1.85 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -18.1 cm 2.17 cm 1.86 GeV 73 keV 18.6 cm 18.6 cm World eIoni + 2 -278 nm -20 cm 2.21 cm 2.05 GeV 8.24 keV 1.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 -18.1 cm 2.17 cm 3.32 keV 0 eV 0 fm 0 fm World initStep - 1 29.6 mum -18.2 cm 2.17 cm 5.3 MeV 6.63 keV 353 mum 353 mum World eIoni + 0 0 fm -18.1 cm 2.17 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 9.39 mum -18.2 cm 2.17 cm 1.38 MeV 2.45 keV 76.5 mum 76.5 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -178,7 +179,16 @@ 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 79.1 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.64 mm 4.97 mm 76.4 MeV 2.25 keV 5.81 mm 5.81 mm World eIoni + 2 2.25 mum -20 cm 2.22 cm 2.05 GeV 80.5 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.64 mm 4.97 mm 3.77 keV 0 eV 0 fm 0 fm World initStep + 1 -4.45 mum -3.07 mm 4.94 mm 6.52 MeV 7.53 keV 440 mum 440 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -186,44 +196,25 @@ 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 -5.01 cm 1.56 cm 551 MeV 22.7 keV 5.5 cm 5.5 cm World eIoni - 2 -2.36 mum -6.87 cm 1.7 cm 737 MeV 7.31 keV 1.87 cm 7.36 cm World eIoni - 3 -6.22 mum -17 cm 2.14 cm 1.75 GeV 43.8 keV 10.2 cm 17.5 cm World eIoni - 4 -6.81 mum -20 cm 2.22 cm 2.05 GeV 16.3 keV 2.97 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 -6.22 mum -17 cm 2.14 cm 1.28 keV 0 eV 0 fm 0 fm World initStep - 1 -7.53 mum -17 cm 2.14 cm 1.45 MeV 2.56 keV 81.1 mum 81.1 mum World eIoni + 1 0 fm -2.52 mm 4.86 mm 75.2 MeV 1.47 keV 5.64 mm 5.64 mm World eIoni + 2 9.68 mum -8.77 cm 1.82 cm 927 MeV 34.8 keV 8.7 cm 9.26 cm World eIoni + 3 11 mum -20 cm 2.22 cm 2.05 GeV 47 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 -2.36 mum -6.87 cm 1.7 cm 1.4 keV 0 eV 0 fm 0 fm World initStep - 1 -13.1 mum -6.88 cm 1.7 cm 1.61 MeV 2.79 keV 92 mum 92 mum World eIoni + 0 9.68 mum -8.77 cm 1.82 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 15 mum -8.78 cm 1.82 cm 1.37 MeV 2.43 keV 75.6 mum 75.6 mum World eIoni ********************************************************************************************************* * 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 11.2 keV 0 eV 0 fm 0 fm World initStep - 1 126 mum -5.2 cm 1.55 cm 24.9 MeV 7.7 keV 1.95 mm 1.95 mm World eIoni - 2 142 mum -10.8 cm 1.54 cm 585 MeV 20.6 keV 5.6 cm 5.8 cm World eIoni - 3 145 mum -20 cm 1.54 cm 1.51 GeV 35.8 keV 9.2 cm 15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 142 mum -10.8 cm 1.54 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 138 mum -10.8 cm 1.54 cm 1.54 MeV 2.69 keV 87.2 mum 87.2 mum World eIoni + 0 0 fm -2.52 mm 4.86 mm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 -10.3 mum -2.6 mm 4.86 mm 1.52 MeV 2.66 keV 85.6 mum 85.6 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -231,1044 +222,61 @@ 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.23 cm 1.48 cm 473 MeV 15.6 keV 4.71 cm 4.71 cm World eIoni - 2 -5.41 mum -20 cm 2.22 cm 2.05 GeV 62.5 keV 15.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 -4.23 cm 1.48 cm 5.03 keV 0 eV 0 fm 0 fm World initStep - 1 34 mum -4.3 cm 1.48 cm 10.3 MeV 10.1 keV 729 mum 729 mum World eIoni - -********************************************************************************************************* -* 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.9 cm 2.19 cm 1.94 GeV 86.1 keV 19.4 cm 19.4 cm World eIoni - 2 -13.8 nm -20 cm 2.21 cm 2.05 GeV 3.11 keV 1.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 -18.9 cm 2.19 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 791 nm -18.9 cm 2.19 cm 1.12 MeV 2.02 keV 59.1 mum 59.1 mum World eIoni - -********************************************************************************************************* -* 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.17 cm 1.19 cm 267 MeV 12.4 keV 2.63 cm 2.63 cm World eIoni - 2 -5.32 mum -15.5 cm 2.1 cm 1.6 GeV 48.7 keV 13.4 cm 16 cm World eIoni - 3 -5.64 mum -17.3 cm 2.15 cm 1.78 GeV 7 keV 1.77 cm 17.8 cm World eIoni - 4 -5.33 mum -20 cm 2.22 cm 2.05 GeV 10.2 keV 2.74 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.64 mum -17.3 cm 2.15 cm 5.5 keV 0 eV 0 fm 0 fm World initStep - 1 -60.5 mum -17.3 cm 2.14 cm 12 MeV 11 keV 852 mum 852 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.32 mum -15.5 cm 2.1 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -5.06 mum -15.5 cm 2.1 cm 1.38 MeV 2.45 keV 76.6 mum 76.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.17 cm 1.19 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 7.96 mum -2.18 cm 1.19 cm 1.41 MeV 2.49 keV 78.4 mum 78.4 mum World eIoni - -********************************************************************************************************* -* 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 442 MeV 17.7 keV 4.4 cm 4.4 cm World eIoni - 2 -1.71 mum -8.69 cm 1.81 cm 918 MeV 17.7 keV 4.78 cm 9.18 cm World eIoni - 3 -2.13 mum -10.1 cm 1.89 cm 1.06 GeV 7.56 keV 1.41 cm 10.6 cm World eIoni - 4 -1.89 mum -15.7 cm 2.1 cm 1.62 GeV 31 keV 5.6 cm 16.2 cm World eIoni - 5 -3.56 mum -20 cm 2.21 cm 2.05 GeV 19.8 keV 4.31 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.89 mum -15.7 cm 2.1 cm 8.95 keV 0 eV 0 fm 0 fm World initStep - 1 115 mum -15.8 cm 2.11 cm 21.3 MeV 9.8 keV 1.62 mm 1.62 mm World eIoni - 2 121 mum -20 cm 2.11 cm 437 MeV 15.1 keV 4.16 cm 4.32 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.13 mum -10.1 cm 1.89 cm 2.97 keV 0 eV 0 fm 0 fm World initStep - 1 -20.9 mum -10.1 cm 1.89 cm 4.5 MeV 5.94 keV 295 mum 295 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.71 mum -8.69 cm 1.81 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 132 nm -8.69 cm 1.82 cm 1.84 MeV 3.11 keV 107 mum 107 mum World eIoni - -********************************************************************************************************* -* 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 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 6.8 mum -3.93 cm 1.45 cm 1.6 MeV 2.78 keV 91.2 mum 91.2 mum World eIoni - -********************************************************************************************************* -* 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 84.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 -1.93 cm 1.14 cm 243 MeV 11.6 keV 2.38 cm 2.38 cm World eIoni - 2 8.57 mum -20 cm 2.22 cm 2.05 GeV 76.5 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.93 cm 1.14 cm 1.67 keV 0 eV 0 fm 0 fm World initStep - 1 -13.3 mum -1.94 cm 1.14 cm 2 MeV 3.33 keV 119 mum 119 mum World eIoni - -********************************************************************************************************* -* 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.72 cm 1.87 cm 1.02 GeV 38.5 keV 10.2 cm 10.2 cm World eIoni - 2 2.94 mum -15.1 cm 2.08 cm 1.56 GeV 25.8 keV 5.42 cm 15.6 cm World eIoni - 3 4.17 mum -20 cm 2.22 cm 2.05 GeV 19.5 keV 4.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 2.94 mum -15.1 cm 2.08 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 8.93 mum -15.1 cm 2.08 cm 1.25 MeV 2.24 keV 67.8 mum 67.8 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.72 cm 1.87 cm 7.43 keV 0 eV 0 fm 0 fm World initStep - 1 -92.4 mum -9.84 cm 1.86 cm 18.1 MeV 12.9 keV 1.35 mm 1.35 mm World eIoni - -********************************************************************************************************* -* 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 28.7 keV 7.09 cm 7.09 cm World eIoni - 2 -5.41 mum -20 cm 2.22 cm 2.05 GeV 60.5 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.6 cm 1.68 cm 5.26 keV 0 eV 0 fm 0 fm World initStep - 1 49.5 mum -6.67 cm 1.68 cm 11.2 MeV 10.5 keV 790 mum 790 mum World eIoni - -********************************************************************************************************* -* 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 cm 1.04 cm 201 MeV 7.47 keV 1.95 cm 1.95 cm World eIoni - 2 4.96 mum -7.34 cm 1.74 cm 784 MeV 26.2 keV 5.88 cm 7.83 cm World eIoni - 3 5.13 mum -9.41 cm 1.85 cm 991 MeV 9.01 keV 2.07 cm 9.9 cm World eIoni - 4 5.48 mum -17.8 cm 2.16 cm 1.83 GeV 32.5 keV 8.44 cm 18.3 cm World eIoni - 5 4.67 mum -20 cm 2.22 cm 2.05 GeV 6.38 keV 2.15 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.48 mum -17.8 cm 2.16 cm 9.94 keV 0 eV 0 fm 0 fm World initStep - 1 18.2 mum -17.9 cm 2.17 cm 664 keV 385 eV 60.9 mum 60.9 mum World eIoni - 2 70.2 mum -19.2 cm 2.17 cm 138 MeV 5.85 keV 1.38 cm 1.38 cm World eIoni - 3 74.1 mum -20 cm 2.17 cm 216 MeV 2.29 keV 7.71 mm 2.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 70.2 mum -19.2 cm 2.17 cm 2.41 keV 0 eV 0 fm 0 fm World initStep - 1 56.3 mum -19.2 cm 2.16 cm 3.29 MeV 4.81 keV 209 mum 209 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 18.2 mum -17.9 cm 2.17 cm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 13 mum -17.9 cm 2.17 cm 1.52 MeV 2.66 keV 85.8 mum 85.8 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.13 mum -9.41 cm 1.85 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 5.49 mum -9.42 cm 1.85 cm 1.26 MeV 2.26 keV 68.6 mum 68.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.96 mum -7.34 cm 1.74 cm 4.43 keV 0 eV 0 fm 0 fm World initStep - 1 28.3 mum -7.4 cm 1.74 cm 8.41 MeV 8.85 keV 583 mum 583 mum World eIoni - -********************************************************************************************************* -* 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 cm 1.04 cm 1.45 keV 0 eV 0 fm 0 fm World initStep - 1 -10.8 mum -1.52 cm 1.04 cm 1.69 MeV 2.91 keV 97.5 mum 97.5 mum World eIoni - -********************************************************************************************************* -* 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 78.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 -9.74 cm 1.87 cm 1.02 GeV 40.5 keV 10.2 cm 10.2 cm World eIoni - 2 -579 nm -10.1 cm 1.89 cm 1.06 GeV 2.36 keV 3.91 mm 10.6 cm World eIoni - 3 -15.8 mum -20 cm 2.22 cm 2.05 GeV 39.4 keV 9.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 -579 nm -10.1 cm 1.89 cm 7.12 keV 0 eV 0 fm 0 fm World initStep - 1 100 mum -10.3 cm 1.88 cm 17.3 MeV 10.5 keV 1.28 mm 1.28 mm World eIoni - 2 101 mum -14.2 cm 1.88 cm 413 MeV 16.3 keV 3.96 cm 4.09 cm World eIoni - 3 104 mum -20 cm 1.88 cm 992 MeV 19.2 keV 5.79 cm 9.88 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 101 mum -14.2 cm 1.88 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 84.4 mum -14.2 cm 1.88 cm 2.71 MeV 4.18 keV 168 mum 168 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.74 cm 1.87 cm 23.9 keV 0 eV 0 fm 0 fm World initStep - 1 329 mum -10.1 cm 1.87 cm 47 MeV 10.3 keV 4 mm 4 mm World eIoni - 2 359 mum -20 cm 1.86 cm 1.04 GeV 37.8 keV 9.88 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 -1.41 cm 1.01 cm 191 MeV 10.6 keV 1.85 cm 1.85 cm World eIoni - 2 -5.33 mum -12.3 cm 1.98 cm 1.28 GeV 46.5 keV 11 cm 12.8 cm World eIoni - 3 -5.01 mum -20 cm 2.22 cm 2.05 GeV 27.8 keV 7.66 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.33 mum -12.3 cm 1.98 cm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 -14.4 mum -12.4 cm 1.98 cm 1.33 MeV 2.36 keV 72.9 mum 72.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.41 cm 1.01 cm 3.23 keV 0 eV 0 fm 0 fm World initStep - 1 16.2 mum -1.44 cm 1.02 cm 5.1 MeV 6.47 keV 339 mum 339 mum World eIoni - -********************************************************************************************************* -* 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.7 mm 7.01 mm 107 MeV 4.47 keV 9.48 mm 9.48 mm World eIoni - 2 277 nm -11.3 cm 1.94 cm 1.18 GeV 44.2 keV 10.9 cm 11.8 cm World eIoni - 3 -9.26 mum -20 cm 2.22 cm 2.05 GeV 34.6 keV 8.66 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 277 nm -11.3 cm 1.94 cm 42 keV 0 eV 0 fm 0 fm World initStep - 1 448 mum -12 cm 1.92 cm 72.6 MeV 8.91 keV 6.49 mm 6.49 mm World eIoni - 2 489 mum -20 cm 1.91 cm 877 MeV 34.7 keV 8.05 cm 8.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 448 mum -12 cm 1.92 cm 4.17 keV 0 eV 0 fm 0 fm World initStep - 1 399 mum -12 cm 1.92 cm 7.65 MeV 8.35 keV 526 mum 526 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.7 mm 7.01 mm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -295 nm -5.77 mm 7 mm 1.37 MeV 2.43 keV 76 mum 76 mum World eIoni - -********************************************************************************************************* -* 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.52 mm 5.66 mm 85.2 MeV 2.46 keV 6.92 mm 6.92 mm World eIoni - 2 6.54 mum -3.03 cm 1.33 cm 353 MeV 18.2 keV 2.81 cm 3.5 cm World eIoni - 3 6.73 mum -3.97 cm 1.45 cm 447 MeV 3.38 keV 9.48 mm 4.45 cm World eIoni - 4 6.1 mum -20 cm 2.22 cm 2.05 GeV 63.9 keV 16.1 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 6.73 mum -3.97 cm 1.45 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 9.73 mum -3.98 cm 1.45 cm 1.23 MeV 2.22 keV 67 mum 67 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.54 mum -3.03 cm 1.33 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 16.1 mum -3.04 cm 1.33 cm 1.41 MeV 2.49 keV 78.3 mum 78.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.52 mm 5.66 mm 3.62 keV 0 eV 0 fm 0 fm World initStep - 1 -28.2 mum -3.91 mm 5.64 mm 6.13 MeV 7.24 keV 412 mum 412 mum World eIoni - -********************************************************************************************************* -* 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 75.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 -17 cm 2.14 cm 1.75 GeV 67.5 keV 17.5 cm 17.5 cm World eIoni - 2 -2.84 mum -20 cm 2.22 cm 2.05 GeV 12.3 keV 2.98 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 cm 2.14 cm 72.1 keV 0 eV 0 fm 0 fm World initStep - 1 259 mum -19 cm 2.17 cm 199 MeV 19.7 keV 1.98 cm 1.98 cm World eIoni - 2 264 mum -20 cm 2.17 cm 299 MeV 3.82 keV 9.99 mm 2.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 -4.8 cm 1.54 cm 530 MeV 22.3 keV 5.28 cm 5.28 cm World eIoni - 2 2.94 mum -13.3 cm 2.02 cm 1.38 GeV 31 keV 8.54 cm 13.8 cm World eIoni - 3 2.08 mum -20 cm 2.22 cm 2.05 GeV 26.1 keV 6.68 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.94 mum -13.3 cm 2.02 cm 2.72 keV 0 eV 0 fm 0 fm World initStep - 1 28.9 mum -13.3 cm 2.02 cm 3.93 MeV 5.45 keV 255 mum 255 mum World eIoni - -********************************************************************************************************* -* 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 1.27 keV 0 eV 0 fm 0 fm World initStep - 1 -8.34 mum -4.81 cm 1.54 cm 1.44 MeV 2.54 keV 80.4 mum 80.4 mum World eIoni - -********************************************************************************************************* -* 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 cm 1.83 cm 950 MeV 35.6 keV 9.49 cm 9.49 cm World eIoni - 2 3.7 mum -20 cm 2.22 cm 2.05 GeV 41 keV 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 -9 cm 1.83 cm 2.37 keV 0 eV 0 fm 0 fm World initStep - 1 -21.1 mum -9.02 cm 1.83 cm 3.22 MeV 4.74 keV 204 mum 204 mum World eIoni - -********************************************************************************************************* -* 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 52.6 keV 13.9 cm 13.9 cm World eIoni - 2 -428 nm -17.1 cm 2.14 cm 1.76 GeV 16.9 keV 3.68 cm 17.6 cm World eIoni - 3 -1.27 mum -20 cm 2.22 cm 2.05 GeV 11.6 keV 2.86 cm 20.5 cm World eBrem - 4 -1.28 mum -20 cm 2.22 cm 2.05 GeV 260 eV 337 mum 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.27 mum -20 cm 2.22 cm 41.9 keV 0 eV 0 fm 0 fm World initStep - 1 -1.19 mum -20 cm 2.22 cm 41.9 keV 0 eV 337 mum 337 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -428 nm -17.1 cm 2.14 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 10.5 mum -17.1 cm 2.14 cm 1.61 MeV 2.79 keV 91.7 mum 91.7 mum World eIoni - -********************************************************************************************************* -* 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.25 keV 0 eV 0 fm 0 fm World initStep - 1 7.68 mum -13.4 cm 2.03 cm 2.99 MeV 4.51 keV 188 mum 188 mum World eIoni - -********************************************************************************************************* -* 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 33.6 keV 8.74 cm 8.74 cm World eIoni - 2 21.9 nm -8.3 cm 1.79 cm 880 MeV 121 eV 575 mum 8.79 cm World eIoni - 3 -3.19 mum -20 cm 2.22 cm 2.05 GeV 46.5 keV 11.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 21.9 nm -8.3 cm 1.79 cm 5.01 keV 0 eV 0 fm 0 fm World initStep - 1 65.6 mum -8.37 cm 1.79 cm 10.3 MeV 10 keV 723 mum 723 mum World eIoni - -********************************************************************************************************* -* 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.13 keV 0 eV 0 fm 0 fm World initStep - 1 -8.49 mum -8.25 cm 1.79 cm 1.26 MeV 2.26 keV 68.6 mum 68.6 mum World eIoni - -********************************************************************************************************* -* 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.69 cm 1.62 cm 619 MeV 22.6 keV 6.18 cm 6.18 cm World eIoni - 2 -1.45 mum -9.57 cm 1.86 cm 1.01 GeV 15.8 keV 3.89 cm 10.1 cm World eIoni - 3 -3.87 mum -12.3 cm 1.98 cm 1.28 GeV 13.6 keV 2.74 cm 12.8 cm World eIoni - 4 -9.37 mum -20 cm 2.22 cm 2.05 GeV 33.4 keV 7.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 -3.87 mum -12.3 cm 1.98 cm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 249 nm -12.3 cm 1.98 cm 1.32 MeV 2.35 keV 72.4 mum 72.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.45 mum -9.57 cm 1.86 cm 5.25 keV 0 eV 0 fm 0 fm World initStep - 1 67.6 mum -9.65 cm 1.86 cm 11.1 MeV 10.5 keV 787 mum 787 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.69 cm 1.62 cm 2.15 keV 0 eV 0 fm 0 fm World initStep - 1 12 mum -5.71 cm 1.62 cm 2.8 MeV 4.29 keV 174 mum 174 mum World eIoni - -********************************************************************************************************* -* 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 mm 5.16 mm 78.8 MeV 3.39 keV 6.11 mm 6.11 mm World eIoni - 2 23.4 mum -8.07 cm 1.78 cm 857 MeV 30.4 keV 7.95 cm 8.56 cm World eIoni - 3 27.3 mum -10.8 cm 1.92 cm 1.13 GeV 10.8 keV 2.76 cm 11.3 cm World eIoni - 4 31.4 mum -13.4 cm 2.02 cm 1.39 GeV 9.87 keV 2.6 cm 13.9 cm World eIoni - 5 29.1 mum -20 cm 2.22 cm 2.05 GeV 31.7 keV 6.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 31.4 mum -13.4 cm 2.02 cm 73.5 keV 0 eV 0 fm 0 fm World initStep - 1 321 mum -13.7 cm 2.01 cm 36.1 MeV 2.96 keV 3.37 mm 3.37 mm World eIoni - 2 321 mum -13.7 cm 2.01 cm 36.3 MeV 0 eV 16.4 mum 3.39 mm World eIoni - 3 400 mum -19 cm 2.01 cm 564 MeV 18.1 keV 5.28 cm 5.62 cm World eIoni - 4 403 mum -20 cm 2.01 cm 662 MeV 3.59 keV 9.78 mm 6.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 400 mum -19 cm 2.01 cm 4.82 keV 0 eV 0 fm 0 fm World initStep - 1 461 mum -19.1 cm 2.01 cm 9.61 MeV 9.64 keV 673 mum 673 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 321 mum -13.7 cm 2.01 cm 3.61 keV 0 eV 0 fm 0 fm World initStep - 1 293 mum -13.8 cm 2.01 cm 6.09 MeV 7.22 keV 410 mum 410 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 321 mum -13.7 cm 2.01 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 332 mum -13.8 cm 2.01 cm 1.72 MeV 2.94 keV 99.1 mum 99.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 27.3 mum -10.8 cm 1.92 cm 6.32 keV 0 eV 0 fm 0 fm World initStep - 1 -48.9 mum -10.9 cm 1.91 cm 15 MeV 12.5 keV 1.09 mm 1.09 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 23.4 mum -8.07 cm 1.78 cm 2.12 keV 0 eV 0 fm 0 fm World initStep - 1 5.44 mum -8.09 cm 1.78 cm 2.76 MeV 4.24 keV 171 mum 171 mum World eIoni - -********************************************************************************************************* -* 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 mm 5.16 mm 16.1 keV 0 eV 0 fm 0 fm World initStep - 1 -164 mum -5.27 mm 5.3 mm 32.5 MeV 8.23 keV 2.67 mm 2.67 mm World eIoni - 2 -188 mum -10.8 cm 5.32 mm 1.06 GeV 38.3 keV 10.2 cm 10.5 cm World eIoni - 3 -194 mum -20 cm 5.33 mm 1.98 GeV 36.3 keV 9.24 cm 19.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -188 mum -10.8 cm 5.32 mm 13.1 keV 0 eV 0 fm 0 fm World initStep - 1 -68 mum -10.9 cm 5.23 mm 21.4 MeV 8.15 keV 1.74 mm 1.74 mm World eIoni - 2 -58.6 mum -11 cm 5.25 mm 33.7 MeV 223 eV 1.23 mm 2.97 mm World eIoni - 3 -21 mum -15.1 cm 5.34 mm 436 MeV 14.4 keV 4.03 cm 4.32 cm World eIoni - 4 -16 mum -20 cm 5.36 mm 929 MeV 17.2 keV 4.93 cm 9.25 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -21 mum -15.1 cm 5.34 mm 5.36 keV 0 eV 0 fm 0 fm World initStep - 1 -1.57 mum -15.1 cm 5.37 mm 3.99 MeV 2.54 keV 296 mum 296 mum World eIoni - 2 4.26 mum -15.8 cm 5.37 mm 70.8 MeV 1.7 keV 6.68 mm 6.98 mm World eIoni - 3 43.5 mum -20 cm 5.35 mm 494 MeV 16.4 keV 4.23 cm 4.93 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 12 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.26 mum -15.8 cm 5.37 mm 66.7 keV 0 eV 0 fm 0 fm World initStep - 1 -298 mum -17.5 cm 5.56 mm 176 MeV 17.8 keV 1.75 cm 1.75 cm World eIoni - 2 -306 mum -18.3 cm 5.56 mm 256 MeV 5.16 keV 7.96 mm 2.55 cm World eIoni - 3 -310 mum -20 cm 5.57 mm 425 MeV 6.98 keV 1.69 cm 4.24 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 14 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -306 mum -18.3 cm 5.56 mm 2.63 keV 0 eV 0 fm 0 fm World initStep - 1 -321 mum -18.3 cm 5.58 mm 3.65 MeV 5.25 keV 235 mum 235 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 12 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.57 mum -15.1 cm 5.37 mm 1.45 keV 0 eV 0 fm 0 fm World initStep - 1 2.12 mum -15.1 cm 5.38 mm 1.68 MeV 2.9 keV 97 mum 97 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -58.6 mum -11 cm 5.25 mm 5.15 keV 0 eV 0 fm 0 fm World initStep - 1 9.56 mum -11.1 cm 5.25 mm 10.8 MeV 10.3 keV 760 mum 760 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -68 mum -10.9 cm 5.23 mm 195 keV 0 eV 0 fm 0 fm World initStep - 1 -190 mum -12.3 cm 4.89 mm 135 MeV 4.86 keV 1.35 cm 1.35 cm World eIoni - 2 -221 mum -20 cm 4.83 mm 908 MeV 33.2 keV 7.73 cm 9.08 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -190 mum -12.3 cm 4.89 mm 1.8 keV 0 eV 0 fm 0 fm World initStep - 1 -175 mum -12.3 cm 4.89 mm 2.21 MeV 3.59 keV 133 mum 133 mum World eIoni - -********************************************************************************************************* -* 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 77.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 -5.55 cm 1.6 cm 605 MeV 29.8 keV 6.04 cm 6.04 cm World eIoni - 2 923 nm -20 cm 2.22 cm 2.05 GeV 50.5 keV 14.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 -5.55 cm 1.6 cm 1.5 keV 0 eV 0 fm 0 fm World initStep - 1 -2.32 mum -5.56 cm 1.61 cm 1.75 MeV 2.99 keV 102 mum 102 mum World eIoni - -********************************************************************************************************* -* 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 66.7 keV 18.3 cm 18.3 cm World eIoni - 2 -316 nm -20 cm 2.22 cm 2.05 GeV 10.2 keV 2.24 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 2.51 keV 0 eV 0 fm 0 fm World initStep - 1 12.6 mum -17.8 cm 2.16 cm 3.5 MeV 5.01 keV 223 mum 223 mum World eIoni - -********************************************************************************************************* -* 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.91 cm 1.31 cm 341 MeV 15.8 keV 3.37 cm 3.37 cm World eIoni - 2 1.78 mum -7.78 cm 1.76 cm 828 MeV 20.3 keV 4.89 cm 8.27 cm World eIoni - 3 2.15 mum -8.86 cm 1.83 cm 936 MeV 4.01 keV 1.08 cm 9.35 cm World eIoni - 4 7.07 mum -20 cm 2.21 cm 2.05 GeV 49.4 keV 11.1 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.15 mum -8.86 cm 1.83 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 -6.36 mum -8.87 cm 1.83 cm 1.25 MeV 2.24 keV 67.8 mum 67.8 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.78 mum -7.78 cm 1.76 cm 3.36 keV 0 eV 0 fm 0 fm World initStep - 1 -4.41 mum -7.81 cm 1.76 cm 5.43 MeV 6.73 keV 363 mum 363 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.91 cm 1.31 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 -5.02 mum -2.91 cm 1.31 cm 1.25 MeV 2.25 keV 68.1 mum 68.1 mum World eIoni - -********************************************************************************************************* -* 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 79.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 -8.42 cm 1.8 cm 892 MeV 31.9 keV 8.91 cm 8.91 cm World eIoni - 2 697 nm -12.4 cm 1.99 cm 1.29 GeV 16.7 keV 3.97 cm 12.9 cm World eIoni - 3 817 nm -14.6 cm 2.07 cm 1.51 GeV 8.09 keV 2.2 cm 15.1 cm World eIoni - 4 3.26 mum -20 cm 2.22 cm 2.05 GeV 21.7 keV 5.42 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 817 nm -14.6 cm 2.07 cm 5.08 keV 0 eV 0 fm 0 fm World initStep - 1 -63.7 mum -14.7 cm 2.07 cm 10 MeV 9.06 keV 709 mum 709 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 697 nm -12.4 cm 1.99 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 4.17 mum -12.4 cm 1.99 cm 1.75 MeV 2.99 keV 101 mum 101 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.42 cm 1.8 cm 1.3 keV 0 eV 0 fm 0 fm World initStep - 1 -5.23 mum -8.43 cm 1.8 cm 1.47 MeV 2.59 keV 82.7 mum 82.7 mum World eIoni - -********************************************************************************************************* -* 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.17 cm 1.65 cm 667 MeV 26.5 keV 6.65 cm 6.65 cm World eIoni - 2 -1.05 mum -9.69 cm 1.87 cm 1.02 GeV 15 keV 3.53 cm 10.2 cm World eIoni - 3 -10.6 mum -20 cm 2.22 cm 2.05 GeV 43.3 keV 10.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.05 mum -9.69 cm 1.87 cm 18.3 keV 0 eV 0 fm 0 fm World initStep - 1 206 mum -9.97 cm 1.88 cm 36.2 MeV 8.48 keV 3 mm 3 mm World eIoni - 2 210 mum -10.2 cm 1.88 cm 57.4 MeV 719 eV 2.12 mm 5.12 mm World eIoni - 3 238 mum -13.5 cm 1.88 cm 386 MeV 11.9 keV 3.28 cm 3.8 cm World eIoni - 4 251 mum -18.1 cm 1.88 cm 850 MeV 20.2 keV 4.64 cm 8.44 cm World eIoni - 5 255 mum -20 cm 1.88 cm 1.04 GeV 7.9 keV 1.89 cm 10.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 251 mum -18.1 cm 1.88 cm 5.62 keV 0 eV 0 fm 0 fm World initStep - 1 192 mum -18.2 cm 1.89 cm 12.4 MeV 11.2 keV 883 mum 883 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 238 mum -13.5 cm 1.88 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 232 mum -13.5 cm 1.88 cm 1.17 MeV 2.1 keV 62.4 mum 62.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 210 mum -10.2 cm 1.88 cm 4.08 keV 0 eV 0 fm 0 fm World initStep - 1 166 mum -10.2 cm 1.88 cm 7.37 MeV 8.17 keV 505 mum 505 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.17 cm 1.65 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 6.94 mum -6.18 cm 1.65 cm 1.51 MeV 2.65 keV 85.1 mum 85.1 mum World eIoni - -********************************************************************************************************* -* 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 -59 mum 771 mum 50.6 MeV 306 eV 774 mum 774 mum World eIoni - 2 -27.6 mum -19.2 cm 2.2 cm 1.97 GeV 76.6 keV 19.7 cm 19.7 cm World eIoni - 3 -27.9 mum -20 cm 2.22 cm 2.05 GeV 2.49 keV 7.54 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 -27.6 mum -19.2 cm 2.2 cm 3.47 keV 0 eV 0 fm 0 fm World initStep - 1 8.9 mum -19.3 cm 2.2 cm 5.72 MeV 6.95 keV 384 mum 384 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -59 mum 771 mum 5.92 keV 0 eV 0 fm 0 fm World initStep - 1 72.3 mum -994 mum 771 mum 13.5 MeV 11.8 keV 970 mum 970 mum World eIoni - -********************************************************************************************************* -* 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.71 cm 1.28 cm 321 MeV 9.95 keV 3.18 cm 3.18 cm World eIoni - 2 -3.42 mum -20 cm 2.22 cm 2.05 GeV 75 keV 17.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 -2.71 cm 1.28 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 4.4 mum -2.72 cm 1.28 cm 1.13 MeV 2.03 keV 59.5 mum 59.5 mum World eIoni - -********************************************************************************************************* -* 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.37 cm 1.74 cm 787 MeV 33.2 keV 7.86 cm 7.86 cm World eIoni - 2 3.92 mum -17.5 cm 2.15 cm 1.8 GeV 40.4 keV 10.1 cm 18 cm World eIoni - 3 4.51 mum -20 cm 2.21 cm 2.05 GeV 12.1 keV 2.5 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.92 mum -17.5 cm 2.15 cm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 2.72 mum -17.5 cm 2.16 cm 1.65 MeV 2.85 keV 94.9 mum 94.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.37 cm 1.74 cm 2.19 keV 0 eV 0 fm 0 fm World initStep - 1 -19.4 mum -7.38 cm 1.74 cm 2.89 MeV 4.38 keV 180 mum 180 mum World eIoni - -********************************************************************************************************* -* 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.48 cm 1.8 cm 898 MeV 34.5 keV 8.97 cm 8.97 cm World eIoni - 2 -386 nm -8.73 cm 1.82 cm 923 MeV 2.27 keV 2.5 mm 9.22 cm World eIoni - 3 -1.42 mum -9.53 cm 1.86 cm 1 GeV 3.17 keV 8.04 mm 10 cm World eIoni - 4 -3.33 mum -12.2 cm 1.98 cm 1.27 GeV 12.4 keV 2.66 cm 12.7 cm World eIoni - 5 -5.62 mum -16 cm 2.11 cm 1.65 GeV 16.5 keV 3.79 cm 16.5 cm World eIoni - 6 -5.84 mum -16.6 cm 2.13 cm 1.71 GeV 2.17 keV 6.71 mm 17.1 cm World eIoni - 7 -6.5 mum -20 cm 2.22 cm 2.05 GeV 13 keV 3.35 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.56 cm 1.26 cm 306 MeV 10.5 keV 3.02 cm 3.02 cm World eIoni + 2 3.07 mum -8.46 cm 1.8 cm 896 MeV 23.3 keV 5.93 cm 8.95 cm World eIoni + 3 3.1 mum -8.66 cm 1.81 cm 915 MeV 465 eV 1.95 mm 9.15 cm World eIoni + 4 3.58 mum -9.34 cm 1.85 cm 984 MeV 3.46 keV 6.83 mm 9.83 cm World eIoni + 5 7 mum -13.4 cm 2.02 cm 1.39 GeV 18.4 keV 4.04 cm 13.9 cm World eIoni + 6 8.62 mum -16.9 cm 2.14 cm 1.74 GeV 15.7 keV 3.52 cm 17.4 cm World eIoni + 7 10.9 mum -20 cm 2.22 cm 2.05 GeV 12.2 keV 3.11 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 -5.84 mum -16.6 cm 2.13 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -10.4 mum -16.7 cm 2.13 cm 1.22 MeV 2.19 keV 65.8 mum 65.8 mum World eIoni + 0 8.62 mum -16.9 cm 2.14 cm 4.52 keV 0 eV 0 fm 0 fm World initStep + 1 -46.5 mum -16.9 cm 2.14 cm 8.67 MeV 9.03 keV 602 mum 602 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.62 mum -16 cm 2.11 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 -14.1 mum -16 cm 2.11 cm 1.35 MeV 2.4 keV 74.5 mum 74.5 mum World eIoni + 0 7 mum -13.4 cm 2.02 cm 4.46 keV 0 eV 0 fm 0 fm World initStep + 1 29.6 mum -13.4 cm 2.03 cm 8.51 MeV 8.93 keV 590 mum 590 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.33 mum -12.2 cm 1.98 cm 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 -1.4 mum -12.2 cm 1.98 cm 1.62 MeV 2.81 keV 92.9 mum 92.9 mum World eIoni + 0 3.58 mum -9.34 cm 1.85 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 -4.34 mum -9.34 cm 1.85 cm 1.16 MeV 2.1 keV 62.2 mum 62.2 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.42 mum -9.53 cm 1.86 cm 1.8 keV 0 eV 0 fm 0 fm World initStep - 1 -16.4 mum -9.55 cm 1.86 cm 2.21 MeV 3.59 keV 133 mum 133 mum World eIoni + 0 3.1 mum -8.66 cm 1.81 cm 3.33 keV 0 eV 0 fm 0 fm World initStep + 1 -29 mum -8.69 cm 1.81 cm 5.34 MeV 6.67 keV 356 mum 356 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -386 nm -8.73 cm 1.82 cm 995 eV 0 eV 0 fm 0 fm World initStep - 1 -4.35 mum -8.74 cm 1.82 cm 1.1 MeV 1.99 keV 58 mum 58 mum World eIoni + 0 3.07 mum -8.46 cm 1.8 cm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 7.38 mum -8.47 cm 1.8 cm 1.55 MeV 2.71 keV 87.8 mum 87.8 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.48 cm 1.8 cm 19.4 keV 0 eV 0 fm 0 fm World initStep - 1 201 mum -8.7 cm 1.8 cm 27.5 MeV 5.43 keV 2.32 mm 2.32 mm World eIoni - 2 344 mum -16.5 cm 1.81 cm 806 MeV 32.6 keV 7.78 cm 8.02 cm World eIoni - 3 349 mum -17.4 cm 1.81 cm 896 MeV 2.34 keV 9.03 mm 8.92 cm World eIoni - 4 358 mum -20 cm 1.81 cm 1.16 GeV 11.8 keV 2.62 cm 11.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 349 mum -17.4 cm 1.81 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 356 mum -17.4 cm 1.81 cm 1.38 MeV 2.45 keV 76.6 mum 76.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 344 mum -16.5 cm 1.81 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 347 mum -16.5 cm 1.81 cm 1.35 MeV 2.4 keV 74.5 mum 74.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 201 mum -8.7 cm 1.8 cm 101 keV 0 eV 0 fm 0 fm World initStep - 1 -138 mum -10.4 cm 1.79 cm 172 MeV 12.3 keV 1.71 cm 1.71 cm World eIoni - 2 -184 mum -15.8 cm 1.79 cm 712 MeV 23.6 keV 5.41 cm 7.12 cm World eIoni - 3 -196 mum -20 cm 1.79 cm 1.13 GeV 19.3 keV 4.19 cm 11.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -184 mum -15.8 cm 1.79 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 -192 mum -15.8 cm 1.79 cm 1.18 MeV 2.13 keV 63.2 mum 63.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -138 mum -10.4 cm 1.79 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 -127 mum -10.4 cm 1.79 cm 1.97 MeV 3.29 keV 117 mum 117 mum World eIoni + 0 0 fm -2.56 cm 1.26 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 -7.06 mum -2.57 cm 1.26 cm 1.21 MeV 2.18 keV 65.2 mum 65.2 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1276,403 +284,72 @@ 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.21 cm 2.05 GeV 91 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.92 cm 1.44 cm 441 MeV 18.8 keV 4.39 cm 4.39 cm World eIoni - 2 -1.54 mum -8.47 cm 1.8 cm 897 MeV 19.7 keV 4.57 cm 8.96 cm World eIoni - 3 1.45 mum -20 cm 2.22 cm 2.05 GeV 48.3 keV 11.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -3.35 cm 1.37 cm 385 MeV 14.4 keV 3.82 cm 3.82 cm World eIoni + 2 10.9 mum -11.5 cm 1.95 cm 1.2 GeV 34.8 keV 8.17 cm 12 cm World eIoni + 3 15.1 mum -20 cm 2.22 cm 2.05 GeV 36.4 keV 8.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 -1.54 mum -8.47 cm 1.8 cm 4.08 keV 0 eV 0 fm 0 fm World initStep - 1 -44.2 mum -8.52 cm 1.8 cm 7.37 MeV 8.16 keV 505 mum 505 mum World eIoni + 0 10.9 mum -11.5 cm 1.95 cm 1.5 keV 0 eV 0 fm 0 fm World initStep + 1 16.1 mum -11.5 cm 1.95 cm 1.75 MeV 2.99 keV 101 mum 101 mum World eIoni ********************************************************************************************************* * 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 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 5.33 mum -3.92 cm 1.44 cm 1.19 MeV 2.13 keV 63.5 mum 63.5 mum World eIoni + 0 0 fm -3.35 cm 1.37 cm 12.7 keV 0 eV 0 fm 0 fm World initStep + 1 -154 mum -3.55 cm 1.39 cm 27.2 MeV 8.06 keV 2.16 mm 2.16 mm World eIoni + 2 -169 mum -6.46 cm 1.39 cm 318 MeV 12.2 keV 2.91 cm 3.13 cm World eIoni + 3 -173 mum -8.35 cm 1.39 cm 507 MeV 7.07 keV 1.89 cm 5.02 cm World eIoni + 4 -178 mum -13.6 cm 1.39 cm 1.03 GeV 20.8 keV 5.21 cm 10.2 cm World eIoni + 5 -179 mum -20 cm 1.39 cm 1.67 GeV 27.4 keV 6.44 cm 16.7 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 6, 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 -10.1 cm 1.89 cm 1.06 GeV 42.5 keV 10.6 cm 10.6 cm World eIoni - 2 -261 nm -10.8 cm 1.92 cm 1.13 GeV 3.98 keV 6.75 mm 11.3 cm World eIoni - 3 -2.48 mum -20 cm 2.22 cm 2.05 GeV 35.7 keV 9.19 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 -261 nm -10.8 cm 1.92 cm 9.29 keV 0 eV 0 fm 0 fm World initStep - 1 -2.94 mum -10.9 cm 1.92 cm 6.04 MeV 3.45 keV 481 mum 481 mum World eIoni - 2 -22.9 mum -20 cm 1.91 cm 920 MeV 22.8 keV 9.14 cm 9.19 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.94 mum -10.9 cm 1.92 cm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 12.1 mum -10.9 cm 1.91 cm 2.56 MeV 4.02 keV 158 mum 158 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.1 cm 1.89 cm 1.77 keV 0 eV 0 fm 0 fm World initStep - 1 14.7 mum -10.2 cm 1.89 cm 2.16 MeV 3.53 keV 130 mum 130 mum World eIoni - -********************************************************************************************************* -* 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.18 cm 1.72 cm 768 MeV 31.8 keV 7.67 cm 7.67 cm World eIoni - 2 1.6 mum -13 cm 2.01 cm 1.35 GeV 26.1 keV 5.78 cm 13.5 cm World eIoni - 3 2.59 mum -16 cm 2.11 cm 1.65 GeV 14.5 keV 3.03 cm 16.5 cm World eIoni - 4 4.17 mum -20 cm 2.22 cm 2.05 GeV 15.1 keV 4.01 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.59 mum -16 cm 2.11 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 -5.73 mum -16 cm 2.11 cm 2.25 MeV 3.64 keV 136 mum 136 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.6 mum -13 cm 2.01 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 -4.04 mum -13 cm 2.01 cm 1.49 MeV 2.63 keV 84.1 mum 84.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.18 cm 1.72 cm 6.12 keV 0 eV 0 fm 0 fm World initStep - 1 -32.8 mum -7.28 cm 1.72 cm 14.3 MeV 12.2 keV 1.03 mm 1.03 mm World eIoni - -********************************************************************************************************* -* 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.73 cm 1.29 cm 323 MeV 14.8 keV 3.2 cm 3.2 cm World eIoni - 2 1.91 mum -4.59 cm 1.52 cm 509 MeV 9.68 keV 1.87 cm 5.07 cm World eIoni - 3 5.54 mum -8.86 cm 1.82 cm 936 MeV 19.6 keV 4.28 cm 9.35 cm World eIoni - 4 7.86 mum -12 cm 1.97 cm 1.25 GeV 15.8 keV 3.1 cm 12.5 cm World eIoni - 5 9.64 mum -18.8 cm 2.19 cm 1.93 GeV 31.5 keV 6.8 cm 19.3 cm World eIoni - 6 9.94 mum -20 cm 2.22 cm 2.05 GeV 3.9 keV 1.25 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 9.64 mum -18.8 cm 2.19 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 6.68 mum -18.8 cm 2.19 cm 1.2 MeV 2.15 keV 64.3 mum 64.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.86 mum -12 cm 1.97 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 23.8 mum -12 cm 1.97 cm 2.7 MeV 4.18 keV 167 mum 167 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.54 mum -8.86 cm 1.82 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 314 nm -8.87 cm 1.83 cm 1.15 MeV 2.08 keV 61.4 mum 61.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.91 mum -4.59 cm 1.52 cm 997 eV 0 eV 0 fm 0 fm World initStep - 1 -2.26 mum -4.6 cm 1.52 cm 1.1 MeV 1.99 keV 58.2 mum 58.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.73 cm 1.29 cm 1.79 keV 0 eV 0 fm 0 fm World initStep - 1 -14.6 mum -2.75 cm 1.29 cm 2.21 MeV 3.59 keV 133 mum 133 mum World eIoni - -********************************************************************************************************* -* 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.78 cm 1.87 cm 1.03 GeV 37.1 keV 10.3 cm 10.3 cm World eIoni - 2 -59.5 nm -13.1 cm 2.01 cm 1.36 GeV 12.8 keV 3.29 cm 13.6 cm World eIoni - 3 -168 nm -19.6 cm 2.21 cm 2.01 GeV 29.2 keV 6.53 cm 20.1 cm World eIoni - 4 -102 nm -20 cm 2.22 cm 2.05 GeV 1.13 keV 4.08 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 -168 nm -19.6 cm 2.21 cm 15.1 keV 0 eV 0 fm 0 fm World initStep - 1 -76.7 mum -19.8 cm 2.23 cm 30.8 MeV 7.76 keV 2.5 mm 2.5 mm World eIoni - 2 -77.4 mum -20 cm 2.23 cm 48.3 MeV 474 eV 1.75 mm 4.25 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -59.5 nm -13.1 cm 2.01 cm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 158 nm -13.1 cm 2.01 cm 2.13 MeV 3.49 keV 128 mum 128 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.78 cm 1.87 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 721 nm -9.79 cm 1.87 cm 2.06 MeV 3.4 keV 122 mum 122 mum World eIoni - -********************************************************************************************************* -* 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.77 cm 1.76 cm 827 MeV 33.5 keV 8.26 cm 8.26 cm World eIoni - 2 -797 nm -17.5 cm 2.15 cm 1.8 GeV 42.6 keV 9.69 cm 17.9 cm World eIoni - 3 -1.56 mum -20 cm 2.22 cm 2.05 GeV 11.6 keV 2.55 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 -797 nm -17.5 cm 2.15 cm 2.35 keV 0 eV 0 fm 0 fm World initStep - 1 20.5 mum -17.5 cm 2.15 cm 3.17 MeV 4.69 keV 200 mum 200 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.77 cm 1.76 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 2.92 mum -7.78 cm 1.76 cm 1.54 MeV 2.69 keV 86.9 mum 86.9 mum World eIoni - -********************************************************************************************************* -* 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.31 cm 9.85 mm 181 MeV 7.54 keV 1.74 cm 1.74 cm World eIoni - 2 6.16 mum -5.55 cm 1.6 cm 605 MeV 19.5 keV 4.29 cm 6.03 cm World eIoni - 3 6.82 mum -6.54 cm 1.68 cm 704 MeV 4.17 keV 9.94 mm 7.03 cm World eIoni - 4 9.14 mum -13.2 cm 2.02 cm 1.37 GeV 29.2 keV 6.64 cm 13.7 cm World eIoni - 5 9.3 mum -20 cm 2.22 cm 2.05 GeV 30.2 keV 6.83 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 9.14 mum -13.2 cm 2.02 cm 1.68 keV 0 eV 0 fm 0 fm World initStep - 1 19.4 mum -13.2 cm 2.02 cm 2.03 MeV 3.36 keV 120 mum 120 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.82 mum -6.54 cm 1.68 cm 1.88 keV 0 eV 0 fm 0 fm World initStep - 1 10 mum -6.56 cm 1.68 cm 2.34 MeV 3.76 keV 142 mum 142 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.16 mum -5.55 cm 1.6 cm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 8.4 mum -5.56 cm 1.61 cm 2.14 MeV 3.5 keV 128 mum 128 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.31 cm 9.85 mm 2.69 keV 0 eV 0 fm 0 fm World initStep - 1 -24.7 mum -1.33 cm 9.84 mm 3.88 MeV 5.39 keV 250 mum 250 mum World eIoni - -********************************************************************************************************* -* 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.39 mm 5.57 mm 83.9 MeV 2 keV 6.76 mm 6.76 mm World eIoni - 2 -3.87 mum -3.42 cm 1.38 cm 392 MeV 13.5 keV 3.21 cm 3.89 cm World eIoni - 3 -5.56 mum -20 cm 2.22 cm 2.05 GeV 65.4 keV 16.6 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.87 mum -3.42 cm 1.38 cm 2.62 keV 0 eV 0 fm 0 fm World initStep - 1 -10.3 mum -3.44 cm 1.38 cm 3.74 MeV 5.25 keV 240 mum 240 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.39 mm 5.57 mm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 6.12 mum -3.45 mm 5.57 mm 1.27 MeV 2.26 keV 68.4 mum 68.4 mum World eIoni - -********************************************************************************************************* -* 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.62 cm 1.07 cm 212 MeV 7.47 keV 2.06 cm 2.06 cm World eIoni - 2 -2.89 mum -20 cm 2.22 cm 2.05 GeV 75.5 keV 18.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 -1.62 cm 1.07 cm 3.64 keV 0 eV 0 fm 0 fm World initStep - 1 8.32 mum -1.66 cm 1.06 cm 6.19 MeV 7.29 keV 417 mum 417 mum World eIoni - -********************************************************************************************************* -* 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.28 mm 7.78 mm 123 MeV 3.38 keV 1.12 cm 1.12 cm World eIoni - 2 -6.4 mum -8.43 cm 1.8 cm 893 MeV 34.1 keV 7.79 cm 8.92 cm World eIoni - 3 -5.03 mum -18.5 cm 2.18 cm 1.9 GeV 35.4 keV 10 cm 19 cm World eIoni - 4 -5.37 mum -20 cm 2.22 cm 2.05 GeV 5.52 keV 1.53 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.03 mum -18.5 cm 2.18 cm 7.69 keV 0 eV 0 fm 0 fm World initStep - 1 79.5 mum -18.6 cm 2.17 cm 18.7 MeV 10.7 keV 1.4 mm 1.4 mm World eIoni - 2 80.6 mum -20 cm 2.17 cm 159 MeV 6.32 keV 1.4 cm 1.54 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.4 mum -8.43 cm 1.8 cm 3.53 keV 0 eV 0 fm 0 fm World initStep - 1 -38.1 mum -8.46 cm 1.8 cm 5.89 MeV 7.07 keV 395 mum 395 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.28 mm 7.78 mm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 8.19 mum -7.35 mm 7.78 mm 1.32 MeV 2.36 keV 73 mum 73 mum World eIoni - -********************************************************************************************************* -* 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 48.2 keV 10.5 cm 10.5 cm World eIoni - 2 181 nm -20 cm 2.22 cm 2.05 GeV 41 keV 9.99 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.64 keV 0 eV 0 fm 0 fm World initStep - 1 -1.31 mum -10 cm 1.89 cm 3.78 MeV 5.29 keV 243 mum 243 mum World eIoni - -********************************************************************************************************* -* 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.57 cm 1.86 cm 1.01 GeV 42 keV 10.1 cm 10.1 cm World eIoni - 2 -2.38 mum -12.7 cm 2 cm 1.32 GeV 9.94 keV 3.12 cm 13.2 cm World eIoni - 3 -5.07 mum -16.2 cm 2.12 cm 1.67 GeV 14.9 keV 3.48 cm 16.7 cm World eIoni - 4 -7.28 mum -20 cm 2.22 cm 2.05 GeV 14.2 keV 3.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 -5.07 mum -16.2 cm 2.12 cm 1.84 keV 0 eV 0 fm 0 fm World initStep - 1 -7.92 mum -16.2 cm 2.12 cm 2.28 MeV 3.68 keV 138 mum 138 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.38 mum -12.7 cm 2 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 5.7 mum -12.7 cm 2 cm 1.75 MeV 2.99 keV 101 mum 101 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.57 cm 1.86 cm 34.4 keV 0 eV 0 fm 0 fm World initStep - 1 27.2 mum -9.61 cm 1.86 cm 3.94 MeV 611 eV 372 mum 372 mum World eIoni - 2 79.4 mum -20 cm 1.85 cm 1.04 GeV 28.9 keV 10.4 cm 10.4 cm OutOfWorldTransportation + 0 -178 mum -13.6 cm 1.39 cm 1.99 keV 0 eV 0 fm 0 fm World initStep + 1 -175 mum -13.6 cm 1.39 cm 2.53 MeV 3.98 keV 155 mum 155 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 27.2 mum -9.61 cm 1.86 cm 6.63 keV 0 eV 0 fm 0 fm World initStep - 1 25.5 mum -9.71 cm 1.85 cm 15.9 MeV 9.81 keV 1.16 mm 1.16 mm World eIoni - 2 25.5 mum -20 cm 1.85 cm 1.04 GeV 35 keV 10.3 cm 10.4 cm OutOfWorldTransportation + 0 -173 mum -8.35 cm 1.39 cm 2.17 keV 0 eV 0 fm 0 fm World initStep + 1 -179 mum -8.37 cm 1.39 cm 2.84 MeV 4.34 keV 177 mum 177 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -169 mum -6.46 cm 1.39 cm 98.2 keV 0 eV 0 fm 0 fm World initStep + 1 -147 mum -9.77 cm 1.35 cm 332 MeV 24.6 keV 3.31 cm 3.31 cm World eIoni + 2 -145 mum -18.6 cm 1.34 cm 1.22 GeV 37.1 keV 8.83 cm 12.1 cm World eIoni + 3 -145 mum -19.9 cm 1.34 cm 1.34 GeV 5.53 keV 1.29 cm 13.4 cm World eIoni + 4 -145 mum -20 cm 1.34 cm 1.36 GeV 136 eV 1.12 mm 13.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -145 mum -19.9 cm 1.34 cm 3.23 keV 0 eV 0 fm 0 fm World initStep + 1 -125 mum -19.9 cm 1.35 cm 5.1 MeV 6.46 keV 338 mum 338 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -145 mum -18.6 cm 1.34 cm 1.57 keV 0 eV 0 fm 0 fm World initStep + 1 -132 mum -18.6 cm 1.34 cm 1.85 MeV 3.15 keV 109 mum 109 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1680,7 +357,1303 @@ 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 72.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -11.3 cm 1.94 cm 1.18 GeV 46.6 keV 11.8 cm 11.8 cm World eIoni + 2 -1.39 mum -17 cm 2.14 cm 1.75 GeV 23.5 keV 5.77 cm 17.5 cm World eIoni + 3 -1.4 mum -20 cm 2.22 cm 2.05 GeV 15.9 keV 2.96 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 -17 cm 2.14 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -10.5 mum -17 cm 2.14 cm 1.37 MeV 2.44 keV 75.9 mum 75.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.3 cm 1.94 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 9.51 mum -11.3 cm 1.94 cm 1.43 MeV 2.53 keV 79.9 mum 79.9 mum World eIoni + +********************************************************************************************************* +* 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.52 cm 1.25 cm 302 MeV 11.7 keV 2.99 cm 2.99 cm World eIoni + 2 -3.31 mum -12.3 cm 1.98 cm 1.28 GeV 39.5 keV 9.81 cm 12.8 cm World eIoni + 3 -3.62 mum -14.1 cm 2.05 cm 1.46 GeV 6.99 keV 1.77 cm 14.6 cm World eIoni + 4 -2.59 mum -20 cm 2.22 cm 2.05 GeV 24.8 keV 5.93 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.62 mum -14.1 cm 2.05 cm 5.5 keV 0 eV 0 fm 0 fm World initStep + 1 -58.4 mum -14.1 cm 2.04 cm 11.9 MeV 11 keV 850 mum 850 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.31 mum -12.3 cm 1.98 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -3.06 mum -12.3 cm 1.98 cm 1.38 MeV 2.45 keV 76.4 mum 76.4 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.52 cm 1.25 cm 3.3 keV 0 eV 0 fm 0 fm World initStep + 1 13.6 mum -2.56 cm 1.25 cm 5.24 MeV 6.59 keV 349 mum 349 mum World eIoni + +********************************************************************************************************* +* 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.25 cm 1.48 cm 475 MeV 19.1 keV 4.73 cm 4.73 cm World eIoni + 2 9.05 mum -20 cm 2.22 cm 2.05 GeV 66.5 keV 15.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 -4.25 cm 1.48 cm 5.67 keV 0 eV 0 fm 0 fm World initStep + 1 -64.9 mum -4.34 cm 1.49 cm 12.5 MeV 11.3 keV 896 mum 896 mum World eIoni + +********************************************************************************************************* +* 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.79 cm 1.11 cm 228 MeV 7.66 keV 2.23 cm 2.23 cm World eIoni + 2 -51.3 nm -1.86 cm 1.12 cm 236 MeV 140 eV 734 mum 2.31 cm World eIoni + 3 3.89 mum -11.9 cm 1.97 cm 1.24 GeV 40.5 keV 10 cm 12.4 cm World eIoni + 4 4.23 mum -12.7 cm 2 cm 1.32 GeV 4.31 keV 8.44 mm 13.2 cm World eIoni + 5 5.22 mum -20 cm 2.22 cm 2.05 GeV 30.3 keV 7.3 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.23 mum -12.7 cm 2 cm 3.75 keV 0 eV 0 fm 0 fm World initStep + 1 23.1 mum -12.7 cm 2 cm 6.44 MeV 7.49 keV 436 mum 436 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.89 mum -11.9 cm 1.97 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -2.44 mum -11.9 cm 1.97 cm 1.11 MeV 2.01 keV 58.8 mum 58.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -51.3 nm -1.86 cm 1.12 cm 2.93 keV 0 eV 0 fm 0 fm World initStep + 1 -21.2 mum -1.88 cm 1.12 cm 4.4 MeV 5.85 keV 287 mum 287 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.79 cm 1.11 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 4.13 mum -1.79 cm 1.11 cm 1.25 MeV 2.24 keV 67.4 mum 67.4 mum World eIoni + +********************************************************************************************************* +* 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 cm 2.01 cm 1.35 GeV 51.8 keV 13.4 cm 13.4 cm World eIoni + 2 697 nm -17.6 cm 2.16 cm 1.81 GeV 17.8 keV 4.65 cm 18.1 cm World eIoni + 3 1.17 mum -20 cm 2.22 cm 2.05 GeV 9.97 keV 2.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 697 nm -17.6 cm 2.16 cm 1.51 keV 0 eV 0 fm 0 fm World initStep + 1 -3.77 mum -17.6 cm 2.16 cm 1.77 MeV 3.02 keV 103 mum 103 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -13 cm 2.01 cm 2.03 keV 0 eV 0 fm 0 fm World initStep + 1 -9.05 mum -13 cm 2.01 cm 2.59 MeV 4.06 keV 160 mum 160 mum World eIoni + +********************************************************************************************************* +* 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.74 cm 1.1 cm 224 MeV 8.5 keV 2.19 cm 2.19 cm World eIoni + 2 6.25 mum -11.3 cm 1.94 cm 1.18 GeV 39.5 keV 9.56 cm 11.8 cm World eIoni + 3 6.23 mum -15.1 cm 2.08 cm 1.56 GeV 15.9 keV 3.85 cm 15.6 cm World eIoni + 4 4.89 mum -20 cm 2.22 cm 2.05 GeV 20.3 keV 4.9 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 6.23 mum -15.1 cm 2.08 cm 2.51 keV 0 eV 0 fm 0 fm World initStep + 1 28.4 mum -15.1 cm 2.08 cm 3.49 MeV 5.01 keV 223 mum 223 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.25 mum -11.3 cm 1.94 cm 3.04 keV 0 eV 0 fm 0 fm World initStep + 1 27.3 mum -11.3 cm 1.94 cm 4.66 MeV 6.08 keV 307 mum 307 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.74 cm 1.1 cm 1.39 keV 0 eV 0 fm 0 fm World initStep + 1 -10.9 mum -1.75 cm 1.1 cm 1.6 MeV 2.78 keV 91 mum 91 mum World eIoni + +********************************************************************************************************* +* 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.54 cm 1.05 cm 204 MeV 8.61 keV 1.99 cm 1.99 cm World eIoni + 2 6.75 mum -20 cm 2.22 cm 2.05 GeV 77.2 keV 18.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 -1.54 cm 1.05 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 -7.01 mum -1.55 cm 1.05 cm 1.16 MeV 2.1 keV 62.1 mum 62.1 mum World eIoni + +********************************************************************************************************* +* 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.8 cm 2.04 cm 1.43 GeV 56 keV 14.3 cm 14.3 cm World eIoni + 2 -1.43 mum -19.3 cm 2.2 cm 1.98 GeV 23.1 keV 5.49 cm 19.8 cm World eIoni + 3 -1.47 mum -20 cm 2.21 cm 2.05 GeV 3.03 keV 6.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 -1.43 mum -19.3 cm 2.2 cm 2.83 keV 0 eV 0 fm 0 fm World initStep + 1 -14.4 mum -19.3 cm 2.2 cm 4.16 MeV 5.66 keV 271 mum 271 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -13.8 cm 2.04 cm 1.92 keV 0 eV 0 fm 0 fm World initStep + 1 16.2 mum -13.8 cm 2.04 cm 2.4 MeV 3.85 keV 147 mum 147 mum World eIoni + +********************************************************************************************************* +* 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.85 cm 1.12 cm 235 MeV 10.5 keV 2.3 cm 2.3 cm World eIoni + 2 5.78 mum -10.8 cm 1.92 cm 1.13 GeV 37.4 keV 8.99 cm 11.3 cm World eIoni + 3 6.16 mum -11.7 cm 1.96 cm 1.22 GeV 4.82 keV 9.05 mm 12.2 cm World eIoni + 4 10.6 mum -20 cm 2.22 cm 2.05 GeV 33.4 keV 8.3 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 6.16 mum -11.7 cm 1.96 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 -5.54 mum -11.7 cm 1.96 cm 1.88 MeV 3.17 keV 110 mum 110 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.78 mum -10.8 cm 1.92 cm 2.16 keV 0 eV 0 fm 0 fm World initStep + 1 755 nm -10.8 cm 1.92 cm 2.83 MeV 4.32 keV 176 mum 176 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.85 cm 1.12 cm 1.31 keV 0 eV 0 fm 0 fm World initStep + 1 -10.2 mum -1.86 cm 1.12 cm 1.49 MeV 2.63 keV 83.9 mum 83.9 mum World eIoni + +********************************************************************************************************* +* 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 78.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.2 cm 2.15 cm 1.77 GeV 69.9 keV 17.7 cm 17.7 cm World eIoni + 2 -177 nm -20 cm 2.22 cm 2.05 GeV 11.5 keV 2.84 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.2 cm 2.15 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 4.16 mum -17.2 cm 2.14 cm 1.97 MeV 3.3 keV 117 mum 117 mum World eIoni + +********************************************************************************************************* +* 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.06 mm 7.68 mm 121 MeV 4.2 keV 1.1 cm 1.1 cm World eIoni + 2 -2.06 mum -1.24 cm 9.66 mm 174 MeV 2.15 keV 5.7 mm 1.67 cm World eIoni + 3 -27.5 mum -19.3 cm 2.21 cm 1.98 GeV 76.5 keV 18.2 cm 19.8 cm World eIoni + 4 -27.6 mum -20 cm 2.22 cm 2.05 GeV 2.58 keV 6.52 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 -27.5 mum -19.3 cm 2.21 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 -41 mum -19.4 cm 2.21 cm 1.98 MeV 3.3 keV 117 mum 117 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.06 mum -1.24 cm 9.66 mm 5.26 keV 0 eV 0 fm 0 fm World initStep + 1 47.4 mum -1.32 cm 9.61 mm 11.2 MeV 10.5 keV 789 mum 789 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.06 mm 7.68 mm 4.76 keV 0 eV 0 fm 0 fm World initStep + 1 45.4 mum -7.68 mm 7.65 mm 9.4 MeV 9.51 keV 656 mum 656 mum World eIoni + +********************************************************************************************************* +* 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.89 cm 1.88 cm 1.04 GeV 40.4 keV 10.4 cm 10.4 cm World eIoni + 2 4.02 mum -20 cm 2.22 cm 2.05 GeV 42.4 keV 10.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 -9.89 cm 1.88 cm 3.49 keV 0 eV 0 fm 0 fm World initStep + 1 -37.4 mum -9.92 cm 1.88 cm 5.75 MeV 6.97 keV 385 mum 385 mum World eIoni + +********************************************************************************************************* +* 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.39 cm 1.8 cm 889 MeV 35.4 keV 8.88 cm 8.88 cm World eIoni + 2 -982 nm -10.8 cm 1.92 cm 1.13 GeV 8.53 keV 2.37 cm 11.2 cm World eIoni + 3 -737 nm -13.6 cm 2.03 cm 1.41 GeV 12.1 keV 2.85 cm 14.1 cm World eIoni + 4 -454 nm -16.1 cm 2.12 cm 1.66 GeV 9.56 keV 2.53 cm 16.6 cm World eIoni + 5 532 nm -20 cm 2.22 cm 2.05 GeV 14.8 keV 3.88 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 -454 nm -16.1 cm 2.12 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -7.53 mum -16.1 cm 2.12 cm 1.12 MeV 2.02 keV 58.9 mum 58.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -737 nm -13.6 cm 2.03 cm 1.37 keV 0 eV 0 fm 0 fm World initStep + 1 -2.53 mum -13.6 cm 2.03 cm 1.57 MeV 2.74 keV 89.4 mum 89.4 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -982 nm -10.8 cm 1.92 cm 71.7 keV 0 eV 0 fm 0 fm World initStep + 1 -74.2 mum -11.2 cm 1.88 cm 46.9 MeV 4.83 keV 4.37 mm 4.37 mm World eIoni + 2 -82.2 mum -20 cm 1.88 cm 930 MeV 36.5 keV 8.83 cm 9.27 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -74.2 mum -11.2 cm 1.88 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 -79.1 mum -11.2 cm 1.88 cm 1.14 MeV 2.06 keV 60.8 mum 60.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.39 cm 1.8 cm 2.06 keV 0 eV 0 fm 0 fm World initStep + 1 16.3 mum -8.41 cm 1.8 cm 2.65 MeV 4.12 keV 164 mum 164 mum World eIoni + +********************************************************************************************************* +* 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.48 mm 6.89 mm 105 MeV 3.93 keV 9.23 mm 9.23 mm World eIoni + 2 -3.97 mum -11.4 cm 1.94 cm 1.19 GeV 44.3 keV 10.9 cm 11.8 cm World eIoni + 3 -4.98 mum -20 cm 2.22 cm 2.05 GeV 36.6 keV 8.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 -3.97 mum -11.4 cm 1.94 cm 3.8 keV 0 eV 0 fm 0 fm World initStep + 1 -2.19 mum -11.4 cm 1.94 cm 6.57 MeV 7.59 keV 446 mum 446 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.48 mm 6.89 mm 2.8 keV 0 eV 0 fm 0 fm World initStep + 1 8.16 mum -5.71 mm 6.91 mm 4.08 MeV 5.6 keV 266 mum 266 mum World eIoni + +********************************************************************************************************* +* 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.98 cm 1.64 cm 648 MeV 24.4 keV 6.47 cm 6.47 cm World eIoni + 2 -507 nm -6.5 cm 1.68 cm 700 MeV 1.15 keV 5.14 mm 6.98 cm World eIoni + 3 -3.63 mum -16.8 cm 2.14 cm 1.73 GeV 44 keV 10.3 cm 17.3 cm World eIoni + 4 -3.87 mum -20 cm 2.22 cm 2.05 GeV 14.5 keV 3.17 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.63 mum -16.8 cm 2.14 cm 2.64 keV 0 eV 0 fm 0 fm World initStep + 1 -13.4 mum -16.9 cm 2.14 cm 3.77 MeV 5.29 keV 243 mum 243 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -507 nm -6.5 cm 1.68 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 -11 mum -6.51 cm 1.68 cm 1.97 MeV 3.3 keV 117 mum 117 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.98 cm 1.64 cm 5.07 keV 0 eV 0 fm 0 fm World initStep + 1 61.8 mum -6.05 cm 1.64 cm 10.5 MeV 10.1 keV 737 mum 737 mum World eIoni + +********************************************************************************************************* +* 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.52 cm 1.51 cm 502 MeV 17.7 keV 5 cm 5 cm World eIoni + 2 -2.48 mum -8.72 cm 1.82 cm 922 MeV 14.5 keV 4.21 cm 9.21 cm World eIoni + 3 -4.12 mum -16.3 cm 2.12 cm 1.68 GeV 30.9 keV 7.55 cm 16.8 cm World eIoni + 4 -3.54 mum -20 cm 2.22 cm 2.05 GeV 15.6 keV 3.73 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.12 mum -16.3 cm 2.12 cm 21.5 keV 0 eV 0 fm 0 fm World initStep + 1 -116 mum -16.6 cm 2.15 cm 42 MeV 11.2 keV 3.54 mm 3.54 mm World eIoni + 2 -125 mum -19.7 cm 2.15 cm 350 MeV 14 keV 3.08 cm 3.44 cm World eIoni + 3 -125 mum -20 cm 2.15 cm 382 MeV 1.11 keV 3.21 mm 3.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -125 mum -19.7 cm 2.15 cm 47.4 keV 0 eV 0 fm 0 fm World initStep + 1 -28.1 mum -20 cm 2.12 cm 37.6 MeV 3.04 keV 3.42 mm 3.42 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.48 mum -8.72 cm 1.82 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 -5.68 mum -8.73 cm 1.82 cm 1.15 MeV 2.07 keV 61 mum 61 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.52 cm 1.51 cm 1.7 keV 0 eV 0 fm 0 fm World initStep + 1 13.7 mum -4.54 cm 1.51 cm 2.06 MeV 3.41 keV 123 mum 123 mum World eIoni + +********************************************************************************************************* +* 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 -431 mum 2.07 mm 54.3 MeV 747 eV 2.13 mm 2.13 mm World eIoni + 2 4.94 mum -4.27 cm 1.48 cm 477 MeV 20.1 keV 4.53 cm 4.74 cm World eIoni + 3 9.6 mum -12.1 cm 1.97 cm 1.26 GeV 33.5 keV 7.89 cm 12.6 cm World eIoni + 4 8.98 mum -14.5 cm 2.06 cm 1.5 GeV 9.29 keV 2.34 cm 15 cm World eIoni + 5 7.32 mum -20 cm 2.22 cm 2.05 GeV 23.3 keV 5.52 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.98 mum -14.5 cm 2.06 cm 12.9 keV 0 eV 0 fm 0 fm World initStep + 1 14.6 mum -14.5 cm 2.06 cm 3.26 MeV 426 eV 281 mum 281 mum World eIoni + 2 44.1 mum -19.6 cm 2.05 cm 514 MeV 16.9 keV 5.11 cm 5.13 cm World eIoni + 3 44.2 mum -20 cm 2.05 cm 553 MeV 610 eV 3.9 mm 5.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 44.1 mum -19.6 cm 2.05 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 47.4 mum -19.6 cm 2.05 cm 1.21 MeV 2.19 keV 65.3 mum 65.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 14.6 mum -14.5 cm 2.06 cm 5.29 keV 0 eV 0 fm 0 fm World initStep + 1 -24.8 mum -14.6 cm 2.06 cm 11.2 MeV 10.6 keV 795 mum 795 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 9.6 mum -12.1 cm 1.97 cm 6.88 keV 0 eV 0 fm 0 fm World initStep + 1 116 mum -12.2 cm 1.97 cm 16.6 MeV 12.7 keV 1.22 mm 1.22 mm World eIoni + 2 103 mum -20 cm 1.97 cm 792 MeV 28.3 keV 7.75 cm 7.87 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.94 mum -4.27 cm 1.48 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -2.62 mum -4.27 cm 1.48 cm 1.39 MeV 2.46 keV 76.9 mum 76.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -431 mum 2.07 mm 1.42 keV 0 eV 0 fm 0 fm World initStep + 1 -5.95 mum -512 mum 2.08 mm 1.66 MeV 2.84 keV 94.3 mum 94.3 mum World eIoni + +********************************************************************************************************* +* 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.6 cm 2.07 cm 1.51 GeV 60 keV 15.1 cm 15.1 cm World eIoni + 2 1.01 mum -20 cm 2.22 cm 2.05 GeV 24.2 keV 5.43 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.6 cm 2.07 cm 1.52 keV 0 eV 0 fm 0 fm World initStep + 1 -10.1 mum -14.6 cm 2.06 cm 1.78 MeV 3.04 keV 104 mum 104 mum World eIoni + +********************************************************************************************************* +* 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 47.9 keV 12.2 cm 12.2 cm World eIoni + 2 522 nm -20 cm 2.22 cm 2.05 GeV 33.7 keV 8.29 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.2 keV 0 eV 0 fm 0 fm World initStep + 1 -2.66 mum -11.7 cm 1.96 cm 1.35 MeV 2.39 keV 74.1 mum 74.1 mum World eIoni + +********************************************************************************************************* +* 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.01 cm 1.15 cm 250 MeV 7.37 keV 2.46 cm 2.46 cm World eIoni + 2 -958 nm -9.42 cm 1.85 cm 992 MeV 29.6 keV 7.46 cm 9.92 cm World eIoni + 3 -967 nm -10.1 cm 1.89 cm 1.06 GeV 3.14 keV 6.92 mm 10.6 cm World eIoni + 4 -1.57 mum -20 cm 2.22 cm 2.05 GeV 42.1 keV 9.89 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 -967 nm -10.1 cm 1.89 cm 7.29 keV 0 eV 0 fm 0 fm World initStep + 1 9.35 mum -10.2 cm 1.9 cm 17.8 MeV 13.7 keV 1.32 mm 1.32 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -958 nm -9.42 cm 1.85 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -2.33 mum -9.43 cm 1.85 cm 1.22 MeV 2.2 keV 65.8 mum 65.8 mum World eIoni + +********************************************************************************************************* +* 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.15 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 1.65 mum -2.01 cm 1.16 cm 1.12 MeV 2.01 keV 58.7 mum 58.7 mum World eIoni + +********************************************************************************************************* +* 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 51.6 keV 13.4 cm 13.4 cm World eIoni + 2 3.11 mum -20 cm 2.22 cm 2.05 GeV 28.9 keV 7.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 -12.9 cm 2.01 cm 5.44 keV 0 eV 0 fm 0 fm World initStep + 1 -73.4 mum -13 cm 2.01 cm 11.7 MeV 10.9 keV 836 mum 836 mum World eIoni + +********************************************************************************************************* +* 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 337 MeV 12.4 keV 3.34 cm 3.34 cm World eIoni + 2 7.85 mum -14.4 cm 2.06 cm 1.49 GeV 47.1 keV 11.5 cm 14.8 cm World eIoni + 3 8.08 mum -16 cm 2.11 cm 1.65 GeV 6.91 keV 1.66 cm 16.5 cm World eIoni + 4 9.51 mum -20 cm 2.22 cm 2.05 GeV 18.9 keV 3.99 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 8.08 mum -16 cm 2.11 cm 2.09 keV 0 eV 0 fm 0 fm World initStep + 1 -10.1 mum -16 cm 2.11 cm 2.71 MeV 4.19 keV 168 mum 168 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 7.85 mum -14.4 cm 2.06 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 15.5 mum -14.4 cm 2.06 cm 1.21 MeV 2.19 keV 65.5 mum 65.5 mum World eIoni + +********************************************************************************************************* +* 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 2.78 keV 0 eV 0 fm 0 fm World initStep + 1 -26.6 mum -2.9 cm 1.31 cm 4.04 MeV 5.55 keV 262 mum 262 mum World eIoni + +********************************************************************************************************* +* 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.35 cm 9.97 mm 185 MeV 9.47 keV 1.78 cm 1.78 cm World eIoni + 2 -4.19 mum -4.14 cm 1.47 cm 464 MeV 11.4 keV 2.83 cm 4.62 cm World eIoni + 3 -9.5 mum -7.7 cm 1.76 cm 820 MeV 12.7 keV 3.57 cm 8.19 cm World eIoni + 4 -12.3 mum -9.88 cm 1.88 cm 1.04 GeV 8.51 keV 2.19 cm 10.4 cm World eIoni + 5 -16.1 mum -20 cm 2.22 cm 2.05 GeV 42.9 keV 10.1 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 -12.3 mum -9.88 cm 1.88 cm 6.14 keV 0 eV 0 fm 0 fm World initStep + 1 -85.9 mum -9.98 cm 1.87 cm 14.3 MeV 9.31 keV 1.03 mm 1.03 mm World eIoni + 2 -85 mum -20 cm 1.87 cm 1.02 GeV 34.7 keV 10 cm 10.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -9.5 mum -7.7 cm 1.76 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 -2.25 mum -7.7 cm 1.76 cm 1.43 MeV 2.52 keV 79.7 mum 79.7 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.19 mum -4.14 cm 1.47 cm 2.29 keV 0 eV 0 fm 0 fm World initStep + 1 16.2 mum -4.16 cm 1.47 cm 3.05 MeV 4.57 keV 192 mum 192 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.35 cm 9.97 mm 1.97 keV 0 eV 0 fm 0 fm World initStep + 1 16.9 mum -1.36 cm 9.97 mm 2.49 MeV 3.94 keV 153 mum 153 mum World eIoni + +********************************************************************************************************* +* 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 78.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 -7.03 cm 1.71 cm 753 MeV 29.3 keV 7.52 cm 7.52 cm World eIoni + 2 2.33 mum -17.9 cm 2.17 cm 1.84 GeV 47.7 keV 10.9 cm 18.4 cm World eIoni + 3 2.87 mum -20 cm 2.22 cm 2.05 GeV 6.61 keV 2.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 2.33 mum -17.9 cm 2.17 cm 1.2 keV 0 eV 0 fm 0 fm World initStep + 1 -5.37 mum -17.9 cm 2.17 cm 1.34 MeV 2.39 keV 74.1 mum 74.1 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.03 cm 1.71 cm 3.07 keV 0 eV 0 fm 0 fm World initStep + 1 -14.5 mum -7.06 cm 1.71 cm 4.73 MeV 6.14 keV 312 mum 312 mum World eIoni + +********************************************************************************************************* +* 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 -351 mum 1.87 mm 53.5 MeV 541 eV 1.92 mm 1.92 mm World eIoni + 2 -3.73 mum -14.2 cm 2.05 cm 1.47 GeV 56.1 keV 14.5 cm 14.7 cm World eIoni + 3 -2.47 mum -20 cm 2.22 cm 2.05 GeV 24.3 keV 5.78 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.73 mum -14.2 cm 2.05 cm 2.37 keV 0 eV 0 fm 0 fm World initStep + 1 -24.8 mum -14.2 cm 2.05 cm 3.22 MeV 4.74 keV 204 mum 204 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -351 mum 1.87 mm 2.49 keV 0 eV 0 fm 0 fm World initStep + 1 4.69 mum -539 mum 1.88 mm 3.44 MeV 4.98 keV 221 mum 221 mum World eIoni + +********************************************************************************************************* +* 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.47 cm 1.5 cm 497 MeV 13.8 keV 4.95 cm 4.95 cm World eIoni + 2 282 nm -5.1 cm 1.57 cm 560 MeV 3.21 keV 6.4 mm 5.59 cm World eIoni + 3 -4.19 mum -20 cm 2.22 cm 2.05 GeV 61.2 keV 14.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 282 nm -5.1 cm 1.57 cm 4.2 keV 0 eV 0 fm 0 fm World initStep + 1 9.55 mum -5.11 cm 1.56 cm 686 keV 819 eV 53.9 mum 53.9 mum World eIoni + 2 69.5 mum -6.53 cm 1.56 cm 143 MeV 4.31 keV 1.42 cm 1.43 cm World eIoni + 3 83.3 mum -20 cm 1.56 cm 1.49 GeV 55.3 keV 13.5 cm 14.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 69.5 mum -6.53 cm 1.56 cm 2.72 keV 0 eV 0 fm 0 fm World initStep + 1 93.9 mum -6.56 cm 1.56 cm 3.92 MeV 5.44 keV 254 mum 254 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 9.55 mum -5.11 cm 1.56 cm 4.39 keV 0 eV 0 fm 0 fm World initStep + 1 -42.6 mum -5.16 cm 1.56 cm 8.3 MeV 8.78 keV 574 mum 574 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.47 cm 1.5 cm 1.75 keV 0 eV 0 fm 0 fm World initStep + 1 -7.99 mum -4.48 cm 1.51 cm 2.13 MeV 3.5 keV 128 mum 128 mum World eIoni + +********************************************************************************************************* +* 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 78.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.02 cm 1.56 cm 552 MeV 21.8 keV 5.5 cm 5.5 cm World eIoni + 2 -1.1 mum -8.06 cm 1.78 cm 856 MeV 12.8 keV 3.05 cm 8.55 cm World eIoni + 3 -4.46 mum -16.2 cm 2.12 cm 1.67 GeV 33.8 keV 8.18 cm 16.7 cm World eIoni + 4 -5.08 mum -18 cm 2.17 cm 1.85 GeV 6.69 keV 1.74 cm 18.5 cm World eIoni + 5 -5.27 mum -18.5 cm 2.18 cm 1.9 GeV 1.97 keV 5.43 mm 19 cm World eIoni + 6 -5.93 mum -20 cm 2.22 cm 2.05 GeV 4.63 keV 1.49 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 -5.27 mum -18.5 cm 2.18 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 263 nm -18.5 cm 2.18 cm 1.17 MeV 2.11 keV 62.3 mum 62.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -5.08 mum -18 cm 2.17 cm 2.09 keV 0 eV 0 fm 0 fm World initStep + 1 -3.41 mum -18 cm 2.17 cm 2.7 MeV 4.18 keV 167 mum 167 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.46 mum -16.2 cm 2.12 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -1.32 mum -16.2 cm 2.12 cm 1.19 MeV 2.14 keV 63.6 mum 63.6 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.1 mum -8.06 cm 1.78 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 5.75 mum -8.06 cm 1.78 cm 1.44 MeV 2.54 keV 80.3 mum 80.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.02 cm 1.56 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 7 mum -5.03 cm 1.56 cm 1.5 MeV 2.64 keV 84.5 mum 84.5 mum World eIoni + +********************************************************************************************************* +* 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.01 cm 1.16 cm 251 MeV 9.12 keV 2.47 cm 2.47 cm World eIoni + 2 -534 nm -3.15 cm 1.35 cm 365 MeV 4.17 keV 1.15 cm 3.62 cm World eIoni + 3 -11.7 mum -12.6 cm 1.99 cm 1.31 GeV 39.9 keV 9.44 cm 13.1 cm World eIoni + 4 -18.2 mum -20 cm 2.22 cm 2.05 GeV 31.5 keV 7.44 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 -11.7 mum -12.6 cm 1.99 cm 3.18 keV 0 eV 0 fm 0 fm World initStep + 1 20.7 mum -12.6 cm 1.99 cm 4.98 MeV 6.36 keV 330 mum 330 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -534 nm -3.15 cm 1.35 cm 11.1 keV 0 eV 0 fm 0 fm World initStep + 1 114 mum -3.33 cm 1.36 cm 24.7 MeV 10 keV 1.93 mm 1.93 mm World eIoni + 2 126 mum -12.7 cm 1.36 cm 966 MeV 32.9 keV 9.41 cm 9.61 cm World eIoni + 3 129 mum -16.1 cm 1.36 cm 1.3 GeV 13.3 keV 3.31 cm 12.9 cm World eIoni + 4 129 mum -20 cm 1.36 cm 1.69 GeV 16.4 keV 3.95 cm 16.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 129 mum -16.1 cm 1.36 cm 4.25 keV 0 eV 0 fm 0 fm World initStep + 1 174 mum -16.1 cm 1.36 cm 7.87 MeV 8.5 keV 542 mum 542 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 126 mum -12.7 cm 1.36 cm 2.53 keV 0 eV 0 fm 0 fm World initStep + 1 103 mum -12.8 cm 1.36 cm 3.54 MeV 5.05 keV 226 mum 226 mum World eIoni + +********************************************************************************************************* +* 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.09 keV 0 eV 0 fm 0 fm World initStep + 1 3.53 mum -2.02 cm 1.16 cm 1.22 MeV 2.18 keV 65.3 mum 65.3 mum World eIoni + +********************************************************************************************************* +* 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.46 cm 1.74 cm 796 MeV 30.1 keV 7.95 cm 7.95 cm World eIoni + 2 -1.16 mum -9.78 cm 1.87 cm 1.03 GeV 10.7 keV 2.32 cm 10.3 cm World eIoni + 3 -1.17 mum -12.5 cm 1.99 cm 1.3 GeV 10.8 keV 2.76 cm 13 cm World eIoni + 4 -17.2 nm -15.1 cm 2.08 cm 1.56 GeV 9.86 keV 2.6 cm 15.6 cm World eIoni + 5 -5.41 mum -20 cm 2.22 cm 2.05 GeV 20.8 keV 4.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 -17.2 nm -15.1 cm 2.08 cm 73.5 keV 0 eV 0 fm 0 fm World initStep + 1 352 mum -17.2 cm 2.07 cm 206 MeV 19.5 keV 2.04 cm 2.04 cm World eIoni + 2 370 mum -20 cm 2.07 cm 489 MeV 13.3 keV 2.83 cm 4.88 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.17 mum -12.5 cm 1.99 cm 6.32 keV 0 eV 0 fm 0 fm World initStep + 1 -77.2 mum -12.6 cm 1.99 cm 15 MeV 12.5 keV 1.09 mm 1.09 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.16 mum -9.78 cm 1.87 cm 2.12 keV 0 eV 0 fm 0 fm World initStep + 1 -19.1 mum -9.79 cm 1.87 cm 2.76 MeV 4.24 keV 171 mum 171 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.46 cm 1.74 cm 11.1 keV 0 eV 0 fm 0 fm World initStep + 1 70.6 mum -7.64 cm 1.73 cm 24.8 MeV 10.4 keV 1.94 mm 1.94 mm World eIoni + 2 71.5 mum -7.77 cm 1.73 cm 37.6 MeV 551 eV 1.28 mm 3.22 mm World eIoni + 3 74.4 mum -13.7 cm 1.73 cm 633 MeV 23 keV 5.96 cm 6.28 cm World eIoni + 4 73.9 mum -20 cm 1.73 cm 1.26 GeV 25.8 keV 6.27 cm 12.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 74.4 mum -13.7 cm 1.73 cm 1.43 keV 0 eV 0 fm 0 fm World initStep + 1 80.5 mum -13.7 cm 1.73 cm 1.65 MeV 2.86 keV 94.8 mum 94.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 71.5 mum -7.77 cm 1.73 cm 1.67 keV 0 eV 0 fm 0 fm World initStep + 1 75.1 mum -7.78 cm 1.73 cm 2.01 MeV 3.34 keV 119 mum 119 mum World eIoni + +********************************************************************************************************* +* 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 50.5 keV 13.4 cm 13.4 cm World eIoni + 2 169 nm -14.8 cm 2.07 cm 1.53 GeV 9.48 keV 1.88 cm 15.3 cm World eIoni + 3 -667 nm -20 cm 2.22 cm 2.05 GeV 22.8 keV 5.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 169 nm -14.8 cm 2.07 cm 1.75 keV 0 eV 0 fm 0 fm World initStep + 1 14.3 mum -14.8 cm 2.07 cm 2.13 MeV 3.5 keV 128 mum 128 mum World eIoni + +********************************************************************************************************* +* 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 1.43 keV 0 eV 0 fm 0 fm World initStep + 1 -3.81 mum -12.9 cm 2.01 cm 1.66 MeV 2.86 keV 95 mum 95 mum World eIoni + +********************************************************************************************************* +* 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.44 cm 1.8 cm 894 MeV 35.3 keV 8.93 cm 8.93 cm World eIoni + 2 -1.22 mum -15.2 cm 2.08 cm 1.57 GeV 27 keV 6.73 cm 15.7 cm World eIoni + 3 668 nm -20 cm 2.22 cm 2.05 GeV 20.8 keV 4.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.22 mum -15.2 cm 2.08 cm 14.4 keV 0 eV 0 fm 0 fm World initStep + 1 -156 mum -15.4 cm 2.1 cm 29.7 MeV 9.14 keV 2.4 mm 2.4 mm World eIoni + 2 -171 mum -20 cm 2.1 cm 492 MeV 14.6 keV 4.62 cm 4.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 -8.44 cm 1.8 cm 1.95 keV 0 eV 0 fm 0 fm World initStep + 1 8.12 mum -8.45 cm 1.8 cm 2.45 MeV 3.9 keV 150 mum 150 mum World eIoni + +********************************************************************************************************* +* 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.04 cm 1.46 cm 454 MeV 17.9 keV 4.51 cm 4.51 cm World eIoni + 2 2.11 mum -20 cm 2.22 cm 2.05 GeV 67.9 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.04 cm 1.46 cm 2.57 keV 0 eV 0 fm 0 fm World initStep + 1 -6.58 mum -4.06 cm 1.46 cm 3.63 MeV 5.15 keV 233 mum 233 mum World eIoni + +********************************************************************************************************* +* 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.65 cm 1.61 cm 615 MeV 24.2 keV 6.13 cm 6.13 cm World eIoni + 2 -2.08 mum -11.1 cm 1.93 cm 1.16 GeV 22.4 keV 5.51 cm 11.6 cm World eIoni + 3 -1.26 mum -19.6 cm 2.21 cm 2.01 GeV 33.9 keV 8.43 cm 20.1 cm World eIoni + 4 -1.17 mum -19.9 cm 2.22 cm 2.04 GeV 1.04 keV 3.26 mm 20.4 cm World eIoni + 5 -1.16 mum -20 cm 2.22 cm 2.05 GeV 346 eV 1.02 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 -1.17 mum -19.9 cm 2.22 cm 1.46 keV 0 eV 0 fm 0 fm World initStep + 1 9.85 mum -19.9 cm 2.22 cm 1.7 MeV 2.92 keV 97.8 mum 97.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.26 mum -19.6 cm 2.21 cm 3.73 keV 0 eV 0 fm 0 fm World initStep + 1 -4.64 mum -19.6 cm 2.21 cm 168 keV 55.4 eV 16 mum 16 mum World eIoni + 2 -17.5 mum -20 cm 2.21 cm 43 MeV 1.4 keV 4.27 mm 4.28 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.64 mum -19.6 cm 2.21 cm 5.12 keV 0 eV 0 fm 0 fm World initStep + 1 -10.7 mum -19.6 cm 2.2 cm 9.29 MeV 7.07 keV 659 mum 659 mum World eIoni + 2 -15.2 mum -20 cm 2.2 cm 45.8 MeV 3.88 keV 3.65 mm 4.31 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.7 mum -19.6 cm 2.2 cm 1.5 keV 0 eV 0 fm 0 fm World initStep + 1 523 nm -19.6 cm 2.2 cm 1.75 MeV 3 keV 102 mum 102 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.08 mum -11.1 cm 1.93 cm 6.56 keV 0 eV 0 fm 0 fm World initStep + 1 -60.3 mum -11.3 cm 1.94 cm 15.7 MeV 13.1 keV 1.15 mm 1.15 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.65 cm 1.61 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 7.87 mum -5.65 cm 1.61 cm 1.16 MeV 2.09 keV 61.9 mum 61.9 mum World eIoni + +********************************************************************************************************* +* 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.53 cm 1.51 cm 503 MeV 23.5 keV 5.01 cm 5.01 cm World eIoni + 2 -4.03 mum -10.3 cm 1.9 cm 1.08 GeV 23.9 keV 5.8 cm 10.8 cm World eIoni + 3 -9.99 mum -20 cm 2.22 cm 2.05 GeV 41.2 keV 9.68 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.03 mum -10.3 cm 1.9 cm 3.19 keV 0 eV 0 fm 0 fm World initStep + 1 19.6 mum -10.4 cm 1.9 cm 5.01 MeV 6.38 keV 332 mum 332 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.53 cm 1.51 cm 2.75 keV 0 eV 0 fm 0 fm World initStep + 1 26.3 mum -4.56 cm 1.51 cm 3.99 MeV 5.51 keV 259 mum 259 mum World eIoni + +********************************************************************************************************* +* 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.46 cm 1.74 cm 796 MeV 29.5 keV 7.95 cm 7.95 cm World eIoni + 2 -2.35 mum -20 cm 2.22 cm 2.05 GeV 51.4 keV 12.6 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.46 cm 1.74 cm 5.95 keV 0 eV 0 fm 0 fm World initStep + 1 27.5 mum -7.55 cm 1.75 cm 13.6 MeV 11.9 keV 979 mum 979 mum World eIoni + +********************************************************************************************************* +* 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.51 cm 1.25 cm 301 MeV 9.6 keV 2.97 cm 2.97 cm World eIoni + 2 1.12 mum -7.41 cm 1.74 cm 791 MeV 21.6 keV 4.92 cm 7.9 cm World eIoni + 3 787 nm -20 cm 2.22 cm 2.05 GeV 52.4 keV 12.6 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.12 mum -7.41 cm 1.74 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 5.21 mum -7.42 cm 1.74 cm 1.43 MeV 2.52 keV 79.6 mum 79.6 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.51 cm 1.25 cm 3.09 keV 0 eV 0 fm 0 fm World initStep + 1 -6.45 mum -2.54 cm 1.25 cm 4.76 MeV 6.18 keV 314 mum 314 mum World eIoni + +********************************************************************************************************* +* 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 7.67 keV 1.7 cm 1.7 cm World eIoni + 2 -5.67 mum -19.3 cm 2.21 cm 1.98 GeV 75.8 keV 18.1 cm 19.8 cm World eIoni + 3 -5.63 mum -20 cm 2.22 cm 2.05 GeV 3.08 keV 6.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 -5.67 mum -19.3 cm 2.21 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -16.6 mum -19.3 cm 2.21 cm 1.62 MeV 2.81 keV 92.8 mum 92.8 mum World eIoni + +********************************************************************************************************* +* 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 10.3 keV 0 eV 0 fm 0 fm World initStep + 1 35.4 mum -1.44 cm 9.6 mm 23.5 MeV 10.1 keV 1.82 mm 1.82 mm World eIoni + 2 38.8 mum -20 cm 9.58 mm 1.88 GeV 66.8 keV 18.6 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 -14 cm 2.05 cm 1.45 GeV 55.3 keV 14.5 cm 14.5 cm World eIoni + 2 -1.21 mum -20 cm 2.22 cm 2.05 GeV 25.6 keV 5.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 -14 cm 2.05 cm 1.3 keV 0 eV 0 fm 0 fm World initStep + 1 9.71 mum -14 cm 2.05 cm 1.47 MeV 2.59 keV 82.6 mum 82.6 mum World eIoni + +********************************************************************************************************* +* 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.69 mm 7.51 mm 117 MeV 2.86 keV 1.06 cm 1.06 cm World eIoni + 2 -476 nm -20 cm 2.22 cm 2.05 GeV 81.7 keV 19.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.69 mm 7.51 mm 4.48 keV 0 eV 0 fm 0 fm World initStep + 1 1.33 mum -7.26 mm 7.46 mm 8.58 MeV 8.95 keV 594 mum 594 mum World eIoni + +********************************************************************************************************* +* 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 79.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 -18 cm 2.17 cm 1.85 GeV 74 keV 18.5 cm 18.5 cm World eIoni + 2 -63.9 nm -20 cm 2.22 cm 2.05 GeV 9.66 keV 2.04 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 cm 2.17 cm 1.02 keV 0 eV 0 fm 0 fm World initStep + 1 1.45 mum -18 cm 2.17 cm 1.13 MeV 2.04 keV 59.7 mum 59.7 mum World eIoni + +********************************************************************************************************* +* 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 80.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation ---> Begin of Event: 50 @@ -1690,369 +1663,43 @@ 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 -402 mum 2 mm 54 MeV 241 eV 2.05 mm 2.05 mm World eIoni - 2 -15.9 mum -9.67 cm 1.87 cm 1.02 GeV 36.6 keV 9.96 cm 10.2 cm World eIoni - 3 -17 mum -17.3 cm 2.15 cm 1.78 GeV 31.4 keV 7.65 cm 17.8 cm World eIoni - 4 -16.9 mum -20 cm 2.22 cm 2.05 GeV 12.7 keV 2.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 -17 mum -17.3 cm 2.15 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -25 mum -17.3 cm 2.15 cm 1.31 MeV 2.33 keV 71.6 mum 71.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -15.9 mum -9.67 cm 1.87 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -23.2 mum -9.68 cm 1.87 cm 1.27 MeV 2.27 keV 68.9 mum 68.9 mum World eIoni + 1 0 fm -19.5 cm 2.21 cm 2 GeV 76.4 keV 20 cm 20 cm World eIoni + 2 172 nm -20 cm 2.22 cm 2.05 GeV 3.01 keV 5.31 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 -402 mum 2 mm 6.13 keV 0 eV 0 fm 0 fm World initStep - 1 55.7 mum -1.3 mm 2.03 mm 14.3 MeV 9.54 keV 1.03 mm 1.03 mm World eIoni - 2 53.2 mum -6.76 cm 2.03 mm 677 MeV 22.7 keV 6.63 cm 6.73 cm World eIoni - 3 56.3 mum -12.4 cm 2.03 mm 1.25 GeV 24.3 keV 5.68 cm 12.4 cm World eIoni - 4 58.6 mum -20 cm 2.03 mm 2 GeV 35 keV 7.56 cm 20 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 56.3 mum -12.4 cm 2.03 mm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 47.7 mum -12.5 cm 2.04 mm 1.98 MeV 3.3 keV 117 mum 117 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 53.2 mum -6.76 cm 2.03 mm 6.44 keV 0 eV 0 fm 0 fm World initStep - 1 -15.6 mum -6.86 cm 2.1 mm 15.4 MeV 12.5 keV 1.12 mm 1.12 mm World eIoni - -********************************************************************************************************* -* 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 35.2 keV 9.83 cm 9.83 cm World eIoni - 2 -445 nm -9.91 cm 1.88 cm 1.04 GeV 904 eV 5.76 mm 10.4 cm World eIoni - 3 -3.9 mum -16.9 cm 2.14 cm 1.74 GeV 26.6 keV 7.03 cm 17.4 cm World eIoni - 4 -4.7 mum -20 cm 2.21 cm 2.05 GeV 14.4 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 -3.9 mum -16.9 cm 2.14 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -6.96 mum -16.9 cm 2.14 cm 1.15 MeV 2.07 keV 61.2 mum 61.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -445 nm -9.91 cm 1.88 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -3.21 mum -9.92 cm 1.88 cm 1.23 MeV 2.21 keV 66.4 mum 66.4 mum World eIoni - -********************************************************************************************************* -* 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 6.26 keV 0 eV 0 fm 0 fm World initStep - 1 91.9 mum -9.44 cm 1.85 cm 14.8 MeV 11.4 keV 1.07 mm 1.07 mm World eIoni - 2 82.1 mum -11.1 cm 1.85 cm 183 MeV 6.41 keV 1.68 cm 1.79 cm World eIoni - 3 73.2 mum -20 cm 1.85 cm 1.07 GeV 31.3 keV 8.88 cm 10.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 82.1 mum -11.1 cm 1.85 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 90.8 mum -11.1 cm 1.85 cm 1.36 MeV 2.41 keV 75.1 mum 75.1 mum World eIoni - -********************************************************************************************************* -* 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.3 cm 2.12 cm 1.68 GeV 63.9 keV 16.8 cm 16.8 cm World eIoni - 2 -224 nm -17.3 cm 2.15 cm 1.78 GeV 2.22 keV 1.01 cm 17.8 cm World eIoni - 3 -993 nm -20 cm 2.22 cm 2.05 GeV 7.99 keV 2.71 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 -224 nm -17.3 cm 2.15 cm 4.12 keV 0 eV 0 fm 0 fm World initStep - 1 11.4 mum -17.3 cm 2.14 cm 7.49 MeV 8.24 keV 514 mum 514 mum World eIoni - -********************************************************************************************************* -* 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 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 12 mum -16.3 cm 2.12 cm 1.82 MeV 3.09 keV 106 mum 106 mum World eIoni - -********************************************************************************************************* -* 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.76 cm 1.43 cm 426 MeV 15.3 keV 4.24 cm 4.24 cm World eIoni - 2 -952 nm -20 cm 2.22 cm 2.05 GeV 71.7 keV 16.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 -3.76 cm 1.43 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 1.74 mum -3.77 cm 1.43 cm 1.59 MeV 2.76 keV 90.6 mum 90.6 mum World eIoni - -********************************************************************************************************* -* 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 cm 2.11 cm 1.65 GeV 62.4 keV 16.5 cm 16.5 cm World eIoni - 2 -2.7 mum -20 cm 2.22 cm 2.05 GeV 18.7 keV 3.98 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 -16 cm 2.11 cm 15.4 keV 0 eV 0 fm 0 fm World initStep - 1 216 mum -16.3 cm 2.11 cm 31.3 MeV 8.94 keV 2.55 mm 2.55 mm World eIoni - 2 236 mum -20 cm 2.11 cm 405 MeV 14.5 keV 3.74 cm 3.99 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.85 mm 5.89 mm 88.4 MeV 5.07 keV 7.32 mm 7.32 mm World eIoni - 2 2.84 mum -20 cm 2.22 cm 2.05 GeV 88.1 keV 19.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.85 mm 5.89 mm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 -2.77 mum -3.95 mm 5.88 mm 1.88 MeV 3.17 keV 110 mum 110 mum World eIoni - -********************************************************************************************************* -* 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 cm 1.76 cm 817 MeV 30.4 keV 8.16 cm 8.16 cm World eIoni - 2 3.44 mum -17.5 cm 2.15 cm 1.8 GeV 38.9 keV 9.8 cm 18 cm World eIoni - 3 3.84 mum -20 cm 2.22 cm 2.05 GeV 9.7 keV 2.53 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.44 mum -17.5 cm 2.15 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 7.68 mum -17.5 cm 2.15 cm 1.8 MeV 3.06 keV 105 mum 105 mum World eIoni - -********************************************************************************************************* -* 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 cm 1.76 cm 1.87 keV 0 eV 0 fm 0 fm World initStep - 1 -15.7 mum -7.68 cm 1.76 cm 2.31 MeV 3.73 keV 140 mum 140 mum World eIoni - -********************************************************************************************************* -* 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.49 nm 5.94 mum 50 MeV 0 eV 5.94 mum 5.94 mum World eIoni - 2 -6.54 mum -2.75 cm 1.29 cm 325 MeV 12.4 keV 3.22 cm 3.22 cm World eIoni - 3 -11.5 mum -6.09 cm 1.65 cm 659 MeV 17.2 keV 3.35 cm 6.57 cm World eIoni - 4 -12.6 mum -7.46 cm 1.74 cm 796 MeV 4.39 keV 1.38 cm 7.95 cm World eIoni - 5 -17.9 mum -20 cm 2.22 cm 2.05 GeV 61 keV 12.5 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 -12.6 mum -7.46 cm 1.74 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 -13.9 mum -7.47 cm 1.74 cm 1.54 MeV 2.69 keV 87.2 mum 87.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.5 mum -6.09 cm 1.65 cm 2.51 keV 0 eV 0 fm 0 fm World initStep - 1 -15.8 mum -6.11 cm 1.65 cm 3.5 MeV 5.01 keV 223 mum 223 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.54 mum -2.75 cm 1.29 cm 3.18 keV 0 eV 0 fm 0 fm World initStep - 1 18.8 mum -2.78 cm 1.29 cm 4.98 MeV 6.35 keV 330 mum 330 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.49 nm 5.94 mum 15.6 keV 0 eV 0 fm 0 fm World initStep - 1 44.4 mum -2.58 mm 33.1 mum 31.8 MeV 7.33 keV 2.59 mm 2.59 mm World eIoni - 2 52.4 mum -20 cm 38 mum 2.01 GeV 70.3 keV 19.7 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 -3.06 mm 5.31 mm 80.6 MeV 2.03 keV 6.34 mm 6.34 mm World eIoni - 2 7.16 mum -8.49 cm 1.8 cm 899 MeV 35 keV 8.34 cm 8.98 cm World eIoni - 3 9.73 mum -20 cm 2.22 cm 2.05 GeV 48.8 keV 11.5 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.16 mum -8.49 cm 1.8 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 6.47 mum -8.49 cm 1.8 cm 1.14 MeV 2.07 keV 60.9 mum 60.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.06 mm 5.31 mm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 -7.2 mum -3.12 mm 5.31 mm 1.29 MeV 2.31 keV 70.5 mum 70.5 mum World eIoni - -********************************************************************************************************* -* 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.59 cm 1.26 cm 309 MeV 14.8 keV 3.05 cm 3.05 cm World eIoni - 2 -1.57 mum -6.25 cm 1.66 cm 675 MeV 15 keV 3.68 cm 6.73 cm World eIoni - 3 -6.15 mum -14.3 cm 2.06 cm 1.48 GeV 31.3 keV 8.11 cm 14.8 cm World eIoni - 4 -6.93 mum -20 cm 2.22 cm 2.05 GeV 27.1 keV 5.65 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 -6.15 mum -14.3 cm 2.06 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 -14.9 mum -14.4 cm 2.06 cm 1.29 MeV 2.3 keV 70.5 mum 70.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.57 mum -6.25 cm 1.66 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 10.4 mum -6.26 cm 1.66 cm 1.85 MeV 3.13 keV 108 mum 108 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.59 cm 1.26 cm 2.69 keV 0 eV 0 fm 0 fm World initStep - 1 9.81 mum -2.61 cm 1.26 cm 3.87 MeV 5.38 keV 250 mum 250 mum World eIoni - -********************************************************************************************************* -* 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.03 cm 1.71 cm 752 MeV 25.3 keV 7.51 cm 7.51 cm World eIoni - 2 2.82 mum -13.8 cm 2.04 cm 1.43 GeV 24.7 keV 6.74 cm 14.3 cm World eIoni - 3 2.75 mum -15.5 cm 2.1 cm 1.6 GeV 5.54 keV 1.76 cm 16 cm World eIoni - 4 1.9 mum -20 cm 2.22 cm 2.05 GeV 15.9 keV 4.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 2.75 mum -15.5 cm 2.1 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 10.5 mum -15.5 cm 2.1 cm 1.37 MeV 2.44 keV 76 mum 76 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.82 mum -13.8 cm 2.04 cm 2.53 keV 0 eV 0 fm 0 fm World initStep - 1 26.2 mum -13.8 cm 2.04 cm 3.55 MeV 5.06 keV 227 mum 227 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.03 cm 1.71 cm 1.94 keV 0 eV 0 fm 0 fm World initStep - 1 -16.4 mum -7.04 cm 1.71 cm 2.44 MeV 3.88 keV 149 mum 149 mum World eIoni - -********************************************************************************************************* -* 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 -568 mum 2.37 mm 55.7 MeV 649 eV 2.46 mm 2.46 mm World eIoni - 2 38 mum -20 cm 2.22 cm 2.05 GeV 79.8 keV 20.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 -568 mum 2.37 mm 24.4 keV 0 eV 0 fm 0 fm World initStep - 1 -161 mum -3.6 mm 2.32 mm 36.1 MeV 9.39 keV 3.08 mm 3.08 mm World eIoni - 2 -193 mum -20 cm 2.3 mm 2 GeV 70.9 keV 19.6 cm 19.9 cm OutOfWorldTransportation + 0 0 fm -19.5 cm 2.21 cm 10.9 keV 0 eV 0 fm 0 fm World initStep + 1 -90.2 mum -19.6 cm 2.2 cm 18.2 MeV 6.85 keV 1.43 mm 1.43 mm World eIoni + 2 -94.4 mum -20 cm 2.2 cm 57.9 MeV 1.01 keV 3.97 mm 5.41 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -161 mum -3.6 mm 2.32 mm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 -159 mum -3.66 mm 2.33 mm 1.2 MeV 2.16 keV 64.3 mum 64.3 mum World eIoni + 0 -90.2 mum -19.6 cm 2.2 cm 7.09 keV 0 eV 0 fm 0 fm World initStep + 1 -84.5 mum -19.7 cm 2.19 cm 13.6 MeV 8.84 keV 1.01 mm 1.01 mm World eIoni + 2 -84.5 mum -20 cm 2.19 cm 43.9 MeV 804 eV 3.04 mm 4.04 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -84.5 mum -19.7 cm 2.19 cm 31 keV 0 eV 0 fm 0 fm World initStep + 1 -83 mum -20 cm 2.21 cm 31.7 MeV 5.22 keV 2.78 mm 2.78 mm World eIoni + 2 -82.8 mum -20 cm 2.21 cm 36 MeV 515 eV 432 mum 3.21 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -83 mum -20 cm 2.21 cm 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 -89.5 mum -20 cm 2.21 cm 1.27 MeV 2.27 keV 69 mum 69 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2060,377 +1707,70 @@ 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 -13 cm 2.01 cm 1.35 GeV 51 keV 13.5 cm 13.5 cm World eIoni - 2 -829 nm -18 cm 2.17 cm 1.85 GeV 24.9 keV 4.94 cm 18.5 cm World eIoni - 3 -722 nm -20 cm 2.21 cm 2.05 GeV 9.29 keV 2.01 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -5.05 cm 1.56 cm 555 MeV 21.3 keV 5.53 cm 5.53 cm World eIoni + 2 -1.42 mum -6.03 cm 1.64 cm 653 MeV 3.3 keV 9.88 mm 6.52 cm World eIoni + 3 -16 mum -20 cm 2.22 cm 2.05 GeV 60.3 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 -829 nm -18 cm 2.17 cm 1.5 keV 0 eV 0 fm 0 fm World initStep - 1 -12.8 mum -18 cm 2.17 cm 1.76 MeV 3 keV 102 mum 102 mum World eIoni + 0 -1.42 mum -6.03 cm 1.64 cm 1.68 keV 0 eV 0 fm 0 fm World initStep + 1 12.3 mum -6.05 cm 1.64 cm 2.02 MeV 3.36 keV 120 mum 120 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13 cm 2.01 cm 2.07 keV 0 eV 0 fm 0 fm World initStep - 1 10.5 mum -13.1 cm 2.01 cm 2.67 MeV 4.14 keV 165 mum 165 mum World eIoni + 0 0 fm -5.05 cm 1.56 cm 7.65 keV 0 eV 0 fm 0 fm World initStep + 1 49.1 mum -5.1 cm 1.56 cm 6.3 MeV 3.83 keV 486 mum 486 mum World eIoni + 2 57.2 mum -5.42 cm 1.56 cm 38.9 MeV 687 eV 3.26 mm 3.75 mm World eIoni + 3 58.8 mum -6.6 cm 1.56 cm 156 MeV 6.32 keV 1.17 cm 1.55 cm World eIoni + 4 58.9 mum -8.8 cm 1.56 cm 377 MeV 8.05 keV 2.2 cm 3.75 cm World eIoni + 5 57.3 mum -14.4 cm 1.56 cm 932 MeV 23.1 keV 5.55 cm 9.31 cm World eIoni + 6 58.6 mum -20 cm 1.56 cm 1.5 GeV 24.4 keV 5.65 cm 15 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 8, 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 -3.75 cm 1.43 cm 425 MeV 18.4 keV 4.23 cm 4.23 cm World eIoni - 2 -1.42 mum -5.78 cm 1.62 cm 628 MeV 9.79 keV 2.04 cm 6.27 cm World eIoni - 3 -1.79 mum -16.9 cm 2.14 cm 1.74 GeV 52 keV 11.1 cm 17.4 cm World eIoni - 4 -2.77 mum -18.8 cm 2.19 cm 1.93 GeV 13.4 keV 1.92 cm 19.3 cm World eIoni - 5 -3.26 mum -20 cm 2.22 cm 2.05 GeV 2.82 keV 1.16 cm 20.5 cm OutOfWorldTransportation + 0 57.3 mum -14.4 cm 1.56 cm 5.08 keV 0 eV 0 fm 0 fm World initStep + 1 -9.81 mum -14.4 cm 1.56 cm 10.5 MeV 10.2 keV 742 mum 742 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.77 mum -18.8 cm 2.19 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -1.67 mum -18.8 cm 2.19 cm 1.12 MeV 2.01 keV 59 mum 59 mum World eIoni + 0 58.9 mum -8.8 cm 1.56 cm 1.36 keV 0 eV 0 fm 0 fm World initStep + 1 64.2 mum -8.81 cm 1.56 cm 1.56 MeV 2.73 keV 88.7 mum 88.7 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.79 mum -16.9 cm 2.14 cm 10.1 keV 0 eV 0 fm 0 fm World initStep - 1 98 mum -17 cm 2.13 cm 16.3 MeV 7.12 keV 1.27 mm 1.27 mm World eIoni - 2 123 mum -20 cm 2.13 cm 313 MeV 13.4 keV 2.96 cm 3.09 cm OutOfWorldTransportation + 0 58.8 mum -6.6 cm 1.56 cm 1.49 keV 0 eV 0 fm 0 fm World initStep + 1 62.3 mum -6.61 cm 1.56 cm 1.75 MeV 2.99 keV 101 mum 101 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 98 mum -17 cm 2.13 cm 3.45 keV 0 eV 0 fm 0 fm World initStep - 1 61.3 mum -17.1 cm 2.13 cm 5.67 MeV 6.91 keV 380 mum 380 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.42 mum -5.78 cm 1.62 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -9.9 mum -5.79 cm 1.62 cm 1.32 MeV 2.35 keV 72.3 mum 72.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.75 cm 1.43 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 12.8 mum -3.76 cm 1.42 cm 2.25 MeV 3.64 keV 136 mum 136 mum World eIoni - -********************************************************************************************************* -* 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.18 cm 1.57 cm 568 MeV 20.2 keV 5.66 cm 5.66 cm World eIoni - 2 372 nm -7.23 cm 1.73 cm 773 MeV 8.11 keV 2.05 cm 7.71 cm World eIoni - 3 3.75 mum -10.6 cm 1.91 cm 1.11 GeV 12 keV 3.41 cm 11.1 cm World eIoni - 4 11.5 mum -20 cm 2.22 cm 2.05 GeV 41.1 keV 9.37 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.75 mum -10.6 cm 1.91 cm 1.37 keV 0 eV 0 fm 0 fm World initStep - 1 -6.2 mum -10.6 cm 1.91 cm 1.58 MeV 2.75 keV 89.8 mum 89.8 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 372 nm -7.23 cm 1.73 cm 6.8 keV 0 eV 0 fm 0 fm World initStep - 1 -52.5 mum -7.28 cm 1.73 cm 7.45 MeV 3.2 keV 560 mum 560 mum World eIoni - 2 -59.4 mum -8.02 cm 1.73 cm 81.3 MeV 3.99 keV 7.39 mm 7.95 mm World eIoni - 3 -73.4 mum -11.7 cm 1.73 cm 447 MeV 15.4 keV 3.66 cm 4.45 cm World eIoni - 4 -85.9 mum -20 cm 1.72 cm 1.28 GeV 39.6 keV 8.33 cm 12.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -73.4 mum -11.7 cm 1.73 cm 3.69 keV 0 eV 0 fm 0 fm World initStep - 1 -38.6 mum -11.7 cm 1.72 cm 5.1 MeV 5.66 keV 348 mum 348 mum World eIoni - 2 -66.5 mum -20 cm 1.72 cm 835 MeV 24.4 keV 8.3 cm 8.33 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -38.6 mum -11.7 cm 1.72 cm 1.99 keV 0 eV 0 fm 0 fm World initStep - 1 -21.6 mum -11.7 cm 1.73 cm 2.53 MeV 3.98 keV 155 mum 155 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -59.4 mum -8.02 cm 1.73 cm 2.9 keV 0 eV 0 fm 0 fm World initStep - 1 -31.8 mum -8.04 cm 1.72 cm 4.33 MeV 5.79 keV 283 mum 283 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -52.5 mum -7.28 cm 1.73 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 -60.1 mum -7.28 cm 1.73 cm 1.19 MeV 2.15 keV 64.2 mum 64.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.18 cm 1.57 cm 3.73 keV 0 eV 0 fm 0 fm World initStep - 1 -8.12 mum -5.22 cm 1.58 cm 6.4 MeV 7.46 keV 433 mum 433 mum World eIoni - -********************************************************************************************************* -* 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.4 cm 2.15 cm 1.79 GeV 71.2 keV 17.9 cm 17.9 cm World eIoni - 2 88.3 nm -20 cm 2.22 cm 2.05 GeV 9.32 keV 2.65 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.4 cm 2.15 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 -1.73 mum -17.4 cm 2.15 cm 1.42 MeV 2.51 keV 79.1 mum 79.1 mum World eIoni - -********************************************************************************************************* -* 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.1 cm 1.89 cm 1.06 GeV 40 keV 10.6 cm 10.6 cm World eIoni - 2 -880 nm -14 cm 2.05 cm 1.45 GeV 16.6 keV 3.91 cm 14.5 cm World eIoni - 3 -712 nm -20 cm 2.22 cm 2.05 GeV 21.2 keV 5.99 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 -880 nm -14 cm 2.05 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 -8.9 mum -14 cm 2.05 cm 1.18 MeV 2.12 keV 63 mum 63 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.1 cm 1.89 cm 2.6 keV 0 eV 0 fm 0 fm World initStep - 1 13.4 mum -10.1 cm 1.89 cm 3.68 MeV 5.2 keV 237 mum 237 mum World eIoni - -********************************************************************************************************* -* 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.1 cm 1.46 cm 460 MeV 16.1 keV 4.57 cm 4.57 cm World eIoni - 2 -2.09 mum -18 cm 2.17 cm 1.85 GeV 57.3 keV 13.9 cm 18.5 cm World eIoni - 3 -2.6 mum -20 cm 2.22 cm 2.05 GeV 7.99 keV 1.98 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.09 mum -18 cm 2.17 cm 1.63 keV 0 eV 0 fm 0 fm World initStep - 1 9.17 mum -18 cm 2.17 cm 1.95 MeV 3.26 keV 115 mum 115 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.1 cm 1.46 cm 2.26 keV 0 eV 0 fm 0 fm World initStep - 1 6.3 mum -4.11 cm 1.46 cm 3.01 MeV 4.52 keV 189 mum 189 mum World eIoni - -********************************************************************************************************* -* 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.65 cm 1.52 cm 514 MeV 16.7 keV 5.13 cm 5.13 cm World eIoni - 2 2.62 mum -8.35 cm 1.8 cm 885 MeV 17 keV 3.72 cm 8.84 cm World eIoni - 3 7.89 mum -10.8 cm 1.92 cm 1.13 GeV 13.1 keV 2.48 cm 11.3 cm World eIoni - 4 9.97 mum -11.9 cm 1.97 cm 1.24 GeV 3.3 keV 1.1 cm 12.4 cm World eIoni - 5 22.2 mum -20 cm 2.22 cm 2.05 GeV 35 keV 8.07 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 9.97 mum -11.9 cm 1.97 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 4.95 mum -11.9 cm 1.97 cm 1.16 MeV 2.09 keV 61.7 mum 61.7 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.89 mum -10.8 cm 1.92 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 5.28 mum -10.8 cm 1.92 cm 1.33 MeV 2.37 keV 73.4 mum 73.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.62 mum -8.35 cm 1.8 cm 45.4 keV 0 eV 0 fm 0 fm World initStep - 1 -582 mum -9.24 cm 1.85 cm 106 MeV 13.4 keV 9.52 mm 9.52 mm World eIoni - 2 -609 mum -15.4 cm 1.85 cm 727 MeV 25.9 keV 6.21 cm 7.16 cm World eIoni - 3 -616 mum -20 cm 1.85 cm 1.18 GeV 15.5 keV 4.55 cm 11.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -609 mum -15.4 cm 1.85 cm 1.57 keV 0 eV 0 fm 0 fm World initStep - 1 -609 mum -15.5 cm 1.85 cm 1.85 MeV 3.13 keV 108 mum 108 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.65 cm 1.52 cm 4.76 keV 0 eV 0 fm 0 fm World initStep - 1 -41.6 mum -4.71 cm 1.52 cm 9.41 MeV 9.52 keV 658 mum 658 mum World eIoni - -********************************************************************************************************* -* 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.6 cm 1.81 cm 910 MeV 29.2 keV 9.09 cm 9.09 cm World eIoni - 2 -214 nm -9.06 cm 1.84 cm 355 MeV 1.18 keV 4.6 mm 9.55 cm World eBrem - 3 -2.48 mum -20 cm 2.1 cm 1.45 GeV 53.5 keV 10.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -214 nm -9.06 cm 1.84 cm 601 MeV 0 eV 0 fm 0 fm World initStep - 1 -14.8 mum -20 cm 2.42 cm 601 MeV 0 eV 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 -8.6 cm 1.81 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 17.1 mum -8.61 cm 1.81 cm 2.71 MeV 4.18 keV 168 mum 168 mum World eIoni - -********************************************************************************************************* -* 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.1 cm 2.14 cm 1.76 GeV 71.4 keV 17.5 cm 17.5 cm World eIoni - 2 235 nm -20 cm 2.22 cm 2.05 GeV 14 keV 2.95 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.1 cm 2.14 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 -3.95 mum -17.1 cm 2.14 cm 1.29 MeV 2.31 keV 70.6 mum 70.6 mum World eIoni - -********************************************************************************************************* -* 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.42 cm 1.23 cm 292 MeV 9.82 keV 2.88 cm 2.88 cm World eIoni - 2 265 nm -3.42 cm 1.38 cm 392 MeV 3.06 keV 1.01 cm 3.89 cm World eIoni - 3 6.92 mum -20 cm 2.22 cm 2.05 GeV 71.7 keV 16.6 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 265 nm -3.42 cm 1.38 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 -8.59 mum -3.43 cm 1.38 cm 1.53 MeV 2.68 keV 86.6 mum 86.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.42 cm 1.23 cm 1.51 keV 0 eV 0 fm 0 fm World initStep - 1 -2.76 mum -2.43 cm 1.24 cm 1.78 MeV 3.03 keV 103 mum 103 mum World eIoni - -********************************************************************************************************* -* 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.14 cm 9.32 mm 163 MeV 4.57 keV 1.56 cm 1.56 cm World eIoni - 2 28.2 mum -17.3 cm 2.15 cm 1.78 GeV 76 keV 16.2 cm 17.8 cm World eIoni - 3 30.3 mum -20 cm 2.22 cm 2.05 GeV 10.6 keV 2.73 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 28.2 mum -17.3 cm 2.15 cm 2.12 keV 0 eV 0 fm 0 fm World initStep - 1 9.61 mum -17.3 cm 2.15 cm 2.76 MeV 4.24 keV 171 mum 171 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.14 cm 9.32 mm 52.8 keV 0 eV 0 fm 0 fm World initStep - 1 -175 mum -2.33 cm 9.06 mm 122 MeV 10.3 keV 1.2 cm 1.2 cm World eIoni - 2 -192 mum -6.94 cm 9.03 mm 582 MeV 20 keV 4.61 cm 5.8 cm World eIoni - 3 -209 mum -20 cm 9.02 mm 1.89 GeV 55.8 keV 13.1 cm 18.9 cm OutOfWorldTransportation + 0 57.2 mum -5.42 cm 1.56 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 66.6 mum -5.43 cm 1.56 cm 1.5 MeV 2.63 keV 84.3 mum 84.3 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -192 mum -6.94 cm 9.03 mm 1.79 keV 0 eV 0 fm 0 fm World initStep - 1 -177 mum -6.95 cm 9.04 mm 2.2 MeV 3.58 keV 132 mum 132 mum World eIoni + 0 49.1 mum -5.1 cm 1.56 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 53.9 mum -5.1 cm 1.56 cm 1.47 MeV 2.59 keV 82.3 mum 82.3 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2438,43 +1778,168 @@ 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 -7.91 cm 1.77 cm 841 MeV 32.5 keV 8.4 cm 8.4 cm World eIoni - 2 418 nm -11.8 cm 1.96 cm 1.23 GeV 14.6 keV 3.86 cm 12.3 cm World eIoni - 3 2 mum -19.4 cm 2.21 cm 1.99 GeV 34.8 keV 7.63 cm 19.9 cm World eIoni - 4 2.04 mum -19.9 cm 2.22 cm 2.04 GeV 2.28 keV 5.18 mm 20.4 cm World eIoni - 5 2.07 mum -20 cm 2.22 cm 2.05 GeV 138 eV 881 mum 20.5 cm OutOfWorldTransportation + 1 0 fm -4.31 cm 1.49 cm 481 MeV 21.2 keV 4.79 cm 4.79 cm World eIoni + 2 2.34 mum -9.52 cm 1.86 cm 1 GeV 20.2 keV 5.22 cm 10 cm World eIoni + 3 -1.22 mum -20 cm 2.22 cm 2.05 GeV 43.8 keV 10.5 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.34 mum -9.52 cm 1.86 cm 6.65 keV 0 eV 0 fm 0 fm World initStep + 1 37.4 mum -9.55 cm 1.86 cm 4.08 MeV 1.32 keV 315 mum 315 mum World eIoni + 2 77 mum -13.4 cm 1.86 cm 392 MeV 13 keV 3.88 cm 3.91 cm World eIoni + 3 80.9 mum -17 cm 1.86 cm 745 MeV 15 keV 3.53 cm 7.44 cm World eIoni + 4 79.8 mum -20 cm 1.86 cm 1.05 GeV 13.4 keV 3.04 cm 10.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 80.9 mum -17 cm 1.86 cm 18.3 keV 0 eV 0 fm 0 fm World initStep + 1 193 mum -17.1 cm 1.87 cm 17.7 MeV 3.31 keV 1.49 mm 1.49 mm World eIoni + 2 217 mum -18.8 cm 1.87 cm 184 MeV 6.91 keV 1.67 cm 1.82 cm World eIoni + 3 223 mum -20 cm 1.87 cm 308 MeV 4.83 keV 1.23 cm 3.05 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 217 mum -18.8 cm 1.87 cm 7.32 keV 0 eV 0 fm 0 fm World initStep + 1 107 mum -18.9 cm 1.86 cm 17.9 MeV 11 keV 1.32 mm 1.32 mm World eIoni + 2 107 mum -20 cm 1.86 cm 129 MeV 2.25 keV 1.11 cm 1.24 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 193 mum -17.1 cm 1.87 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 192 mum -17.1 cm 1.87 cm 1.83 MeV 3.1 keV 107 mum 107 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 77 mum -13.4 cm 1.86 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 84 mum -13.4 cm 1.86 cm 1.5 MeV 2.65 keV 84.9 mum 84.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 37.4 mum -9.55 cm 1.86 cm 2.29 keV 0 eV 0 fm 0 fm World initStep + 1 31.9 mum -9.57 cm 1.86 cm 3.06 MeV 4.58 keV 192 mum 192 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.31 cm 1.49 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -7.93 mum -4.32 cm 1.49 cm 1.22 MeV 2.2 keV 66.1 mum 66.1 mum World eIoni + +********************************************************************************************************* +* 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 -264 mum 1.62 mm 52.6 MeV 367 eV 1.65 mm 1.65 mm World eIoni + 2 5.67 mum -2.73 cm 1.28 cm 323 MeV 11 keV 3.03 cm 3.19 cm World eIoni + 3 -716 nm -9.58 cm 1.86 cm 1.01 GeV 29.6 keV 6.88 cm 10.1 cm World eIoni + 4 -9.33 mum -20 cm 2.22 cm 2.05 GeV 43.2 keV 10.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 -716 nm -9.58 cm 1.86 cm 5.92 keV 0 eV 0 fm 0 fm World initStep + 1 71.6 mum -9.67 cm 1.86 cm 13.5 MeV 11.8 keV 969 mum 969 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.67 mum -2.73 cm 1.28 cm 26.4 keV 0 eV 0 fm 0 fm World initStep + 1 38.4 mum -2.78 cm 1.28 cm 5.85 MeV 511 eV 529 mum 529 mum World eIoni + 2 99 mum -17.6 cm 1.27 cm 1.49 GeV 46.8 keV 14.8 cm 14.9 cm World eIoni + 3 100 mum -20 cm 1.27 cm 1.73 GeV 7.58 keV 2.42 cm 17.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 99 mum -17.6 cm 1.27 cm 3.1 keV 0 eV 0 fm 0 fm World initStep + 1 98.2 mum -17.6 cm 1.27 cm 4.8 MeV 6.2 keV 317 mum 317 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 38.4 mum -2.78 cm 1.28 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 30.6 mum -2.79 cm 1.28 cm 2.1 MeV 3.46 keV 126 mum 126 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -264 mum 1.62 mm 1.88 keV 0 eV 0 fm 0 fm World initStep + 1 -9.42 mum -386 mum 1.63 mm 2.33 MeV 3.76 keV 142 mum 142 mum World eIoni + +********************************************************************************************************* +* 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.71 cm 1.87 cm 1.02 GeV 38 keV 10.2 cm 10.2 cm World eIoni + 2 1.02 mum -12.1 cm 1.97 cm 1.26 GeV 11.3 keV 2.34 cm 12.5 cm World eIoni + 3 1.27 mum -12.4 cm 1.99 cm 1.29 GeV 1.15 keV 3.75 mm 12.9 cm World eIoni + 4 2.75 mum -14.3 cm 2.05 cm 1.48 GeV 5.59 keV 1.83 cm 14.7 cm World eIoni + 5 5.77 mum -20 cm 2.21 cm 2.05 GeV 24.5 keV 5.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 2.04 mum -19.9 cm 2.22 cm 3.49 keV 0 eV 0 fm 0 fm World initStep - 1 -34.5 mum -19.9 cm 2.22 cm 5.77 MeV 6.98 keV 387 mum 387 mum World eIoni + 0 2.75 mum -14.3 cm 2.05 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 6.81 mum -14.3 cm 2.06 cm 1.15 MeV 2.07 keV 60.8 mum 60.8 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2 mum -19.4 cm 2.21 cm 6.37 keV 0 eV 0 fm 0 fm World initStep - 1 23.1 mum -19.5 cm 2.2 cm 15.1 MeV 12.7 keV 1.1 mm 1.1 mm World eIoni + 0 1.27 mum -12.4 cm 1.99 cm 2.27 keV 0 eV 0 fm 0 fm World initStep + 1 -9.84 mum -12.4 cm 1.99 cm 3.01 MeV 4.53 keV 189 mum 189 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 418 nm -11.8 cm 1.96 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -5.06 mum -11.8 cm 1.96 cm 1.26 MeV 2.26 keV 68.6 mum 68.6 mum World eIoni + 0 1.02 mum -12.1 cm 1.97 cm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 -9.41 mum -12.1 cm 1.97 cm 1.55 MeV 2.71 keV 87.9 mum 87.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.91 cm 1.77 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 -3.19 mum -7.92 cm 1.77 cm 1.59 MeV 2.76 keV 90.4 mum 90.4 mum World eIoni + 0 0 fm -9.71 cm 1.87 cm 3.12 keV 0 eV 0 fm 0 fm World initStep + 1 -27.7 mum -9.74 cm 1.87 cm 4.85 MeV 6.25 keV 320 mum 320 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2482,43 +1947,16 @@ 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 -5.96 cm 1.64 cm 646 MeV 23.6 keV 6.45 cm 6.45 cm World eIoni - 2 -1.17 mum -11.7 cm 1.96 cm 1.22 GeV 27 keV 5.73 cm 12.2 cm World eIoni - 3 -969 nm -14 cm 2.04 cm 1.45 GeV 11 keV 2.31 cm 14.5 cm World eIoni - 4 -1.26 mum -17.1 cm 2.14 cm 1.76 GeV 11.8 keV 3.08 cm 17.6 cm World eIoni - 5 -1.44 mum -20 cm 2.22 cm 2.05 GeV 11.1 keV 2.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 -1.26 mum -17.1 cm 2.14 cm 4.28 keV 0 eV 0 fm 0 fm World initStep - 1 -4.36 mum -17.1 cm 2.14 cm 7.97 MeV 8.56 keV 549 mum 549 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -969 nm -14 cm 2.04 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 5.76 mum -14 cm 2.04 cm 1.24 MeV 2.22 keV 67 mum 67 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.17 mum -11.7 cm 1.96 cm 2.36 keV 0 eV 0 fm 0 fm World initStep - 1 -14.3 mum -11.7 cm 1.96 cm 3.21 MeV 4.73 keV 203 mum 203 mum World eIoni + 1 0 fm -7.78 mm 8 mm 128 MeV 3.49 keV 1.18 cm 1.18 cm World eIoni + 2 -9.74 mum -20 cm 2.22 cm 2.05 GeV 79.7 keV 19.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 -5.96 cm 1.64 cm 3.56 keV 0 eV 0 fm 0 fm World initStep - 1 11.9 mum -6 cm 1.64 cm 5.95 MeV 7.12 keV 401 mum 401 mum World eIoni + 0 0 fm -7.78 mm 8 mm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 9.36 mum -7.85 mm 8 mm 1.4 MeV 2.49 keV 78 mum 78 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2526,25 +1964,34 @@ 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.06 cm 1.46 cm 456 MeV 22.2 keV 4.54 cm 4.54 cm World eIoni - 2 1.6 mum -6.56 cm 1.68 cm 706 MeV 12.5 keV 2.51 cm 7.05 cm World eIoni - 3 8.81 mum -20 cm 2.21 cm 2.05 GeV 60.1 keV 13.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -5.52 cm 1.6 cm 602 MeV 23.5 keV 6.01 cm 6.01 cm World eIoni + 2 -994 nm -7.5 cm 1.74 cm 799 MeV 7.4 keV 1.98 cm 7.98 cm World eIoni + 3 626 nm -17.1 cm 2.14 cm 1.76 GeV 40.2 keV 9.65 cm 17.6 cm World eIoni + 4 957 nm -20 cm 2.21 cm 2.05 GeV 14.8 keV 2.86 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 626 nm -17.1 cm 2.14 cm 1.43 keV 0 eV 0 fm 0 fm World initStep + 1 -570 nm -17.1 cm 2.15 cm 1.65 MeV 2.85 keV 94.7 mum 94.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.6 mum -6.56 cm 1.68 cm 2.11 keV 0 eV 0 fm 0 fm World initStep - 1 -11.2 mum -6.58 cm 1.68 cm 2.74 MeV 4.22 keV 170 mum 170 mum World eIoni + 0 -994 nm -7.5 cm 1.74 cm 4.22 keV 0 eV 0 fm 0 fm World initStep + 1 -43.3 mum -7.55 cm 1.74 cm 7.79 MeV 8.44 keV 536 mum 536 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.06 cm 1.46 cm 1.44 keV 0 eV 0 fm 0 fm World initStep - 1 -10.9 mum -4.07 cm 1.46 cm 1.67 MeV 2.87 keV 95.7 mum 95.7 mum World eIoni + 0 0 fm -5.52 cm 1.6 cm 1.39 keV 0 eV 0 fm 0 fm World initStep + 1 10.2 mum -5.53 cm 1.6 cm 1.6 MeV 2.78 keV 91.2 mum 91.2 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2552,34 +1999,7 @@ 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 5.82 keV 1.92 cm 1.92 cm World eIoni - 2 1.11 mum -3.05 cm 1.33 cm 355 MeV 6.48 keV 1.6 cm 3.52 cm World eIoni - 3 6.55 mum -19.7 cm 2.21 cm 2.02 GeV 73 keV 16.7 cm 20.2 cm World eIoni - 4 6.55 mum -20 cm 2.22 cm 2.05 GeV 522 eV 2.58 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 6.55 mum -19.7 cm 2.21 cm 4.04 keV 0 eV 0 fm 0 fm World initStep - 1 29.4 mum -19.8 cm 2.22 cm 7.24 MeV 8.08 keV 496 mum 496 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.11 mum -3.05 cm 1.33 cm 2.38 keV 0 eV 0 fm 0 fm World initStep - 1 -4.48 mum -3.07 cm 1.34 cm 3.23 MeV 4.75 keV 205 mum 205 mum World eIoni - -********************************************************************************************************* -* 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.4 keV 0 eV 0 fm 0 fm World initStep - 1 -8.19 mum -1.5 cm 1.03 cm 3.28 MeV 4.79 keV 207 mum 207 mum World eIoni + 1 0 fm -20 cm 2.22 cm 2.05 GeV 79.3 keV 20.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2587,71 +2007,269 @@ 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 -215 mum 1.47 mm 52.1 MeV 522 eV 1.49 mm 1.49 mm World eIoni - 2 5.73 mum -2.44 cm 1.24 cm 294 MeV 11.5 keV 2.75 cm 2.9 cm World eIoni - 3 8.94 mum -13.3 cm 2.02 cm 1.38 GeV 50.8 keV 10.9 cm 13.8 cm World eIoni - 4 9.74 mum -14.3 cm 2.06 cm 1.48 GeV 4.31 keV 9.89 mm 14.8 cm World eIoni - 5 14.3 mum -20 cm 2.22 cm 2.05 GeV 22.5 keV 5.69 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 9.74 mum -14.3 cm 2.06 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 3.97 mum -14.3 cm 2.06 cm 1.11 MeV 2.01 keV 58.8 mum 58.8 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.94 mum -13.3 cm 2.02 cm 15.3 keV 0 eV 0 fm 0 fm World initStep - 1 -156 mum -13.6 cm 2.01 cm 31.2 MeV 8.32 keV 2.54 mm 2.54 mm World eIoni - 2 -171 mum -20 cm 2.01 cm 675 MeV 25.2 keV 6.44 cm 6.69 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.73 mum -2.44 cm 1.24 cm 2.89 keV 0 eV 0 fm 0 fm World initStep - 1 8.83 mum -2.47 cm 1.24 cm 4.32 MeV 5.79 keV 282 mum 282 mum World eIoni + 1 0 fm -18.3 cm 2.18 cm 1.88 GeV 73.3 keV 18.8 cm 18.8 cm World eIoni + 2 243 nm -20 cm 2.22 cm 2.05 GeV 9.46 keV 1.72 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 -215 mum 1.47 mm 6.53 keV 0 eV 0 fm 0 fm World initStep - 1 -18.9 mum -819 mum 1.46 mm 8.23 MeV 4.26 keV 607 mum 607 mum World eIoni - 2 -25.8 mum -10.3 cm 1.48 mm 1.03 GeV 34.1 keV 10.2 cm 10.2 cm World eIoni - 3 -27.4 mum -18.1 cm 1.48 mm 1.81 GeV 38.8 keV 7.84 cm 18.1 cm World eIoni - 4 -27.3 mum -20 cm 1.48 mm 2 GeV 9.37 keV 1.9 cm 20 cm OutOfWorldTransportation + 0 0 fm -18.3 cm 2.18 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -7.21 mum -18.3 cm 2.18 cm 1.32 MeV 2.35 keV 72.2 mum 72.2 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -27.4 mum -18.1 cm 1.48 mm 1.64 keV 0 eV 0 fm 0 fm World initStep - 1 -37.6 mum -18.1 cm 1.49 mm 1.97 MeV 3.29 keV 117 mum 117 mum World eIoni + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.63 cm 1.61 cm 613 MeV 24 keV 6.11 cm 6.11 cm World eIoni + 2 -391 nm -10.9 cm 1.93 cm 1.14 GeV 22.6 keV 5.3 cm 11.4 cm World eIoni + 3 -537 nm -20 cm 2.22 cm 2.05 GeV 37.2 keV 9.09 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -25.8 mum -10.3 cm 1.48 mm 3.24 keV 0 eV 0 fm 0 fm World initStep - 1 -18 mum -10.3 cm 1.45 mm 5.11 MeV 6.47 keV 339 mum 339 mum World eIoni + 0 -391 nm -10.9 cm 1.93 cm 2.45 keV 0 eV 0 fm 0 fm World initStep + 1 -2.11 mum -10.9 cm 1.92 cm 3.38 MeV 4.9 keV 215 mum 215 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.63 cm 1.61 cm 2.23 keV 0 eV 0 fm 0 fm World initStep + 1 2.61 mum -5.65 cm 1.61 cm 2.95 MeV 4.46 keV 185 mum 185 mum World eIoni + +********************************************************************************************************* +* 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.86 cm 1.63 cm 636 MeV 24.6 keV 6.34 cm 6.34 cm World eIoni + 2 -1.36 mum -16.8 cm 2.13 cm 1.73 GeV 46.9 keV 10.9 cm 17.3 cm World eIoni + 3 -2.34 mum -19 cm 2.2 cm 1.95 GeV 8.25 keV 2.26 cm 19.5 cm World eIoni + 4 -2.91 mum -20 cm 2.22 cm 2.05 GeV 3.41 keV 9.68 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 -2.34 mum -19 cm 2.2 cm 18.2 keV 0 eV 0 fm 0 fm World initStep + 1 38.3 mum -19.2 cm 2.21 cm 18.6 MeV 4.03 keV 1.56 mm 1.56 mm World eIoni + 2 47.7 mum -20 cm 2.21 cm 101 MeV 1.9 keV 8.22 mm 9.78 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 38.3 mum -19.2 cm 2.21 cm 4.57 keV 0 eV 0 fm 0 fm World initStep + 1 25.5 mum -19.2 cm 2.21 cm 4.51 MeV 1.87 keV 323 mum 323 mum World eIoni + 2 17 mum -20 cm 2.22 cm 83.7 MeV 3.24 keV 7.92 mm 8.24 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 25.5 mum -19.2 cm 2.21 cm 4.2 keV 0 eV 0 fm 0 fm World initStep + 1 36.3 mum -19.3 cm 2.21 cm 7.72 MeV 8.4 keV 531 mum 531 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.36 mum -16.8 cm 2.13 cm 5.24 keV 0 eV 0 fm 0 fm World initStep + 1 62.1 mum -16.8 cm 2.13 cm 11.1 MeV 10.5 keV 783 mum 783 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.86 cm 1.63 cm 1.82 keV 0 eV 0 fm 0 fm World initStep + 1 4.82 mum -5.87 cm 1.63 cm 2.24 MeV 3.64 keV 135 mum 135 mum World eIoni + +********************************************************************************************************* +* 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.83 cm 1.82 cm 933 MeV 38.1 keV 9.32 cm 9.32 cm World eIoni + 2 2.47 mum -18.2 cm 2.18 cm 1.87 GeV 40.4 keV 9.42 cm 18.7 cm World eIoni + 3 3.1 mum -20 cm 2.22 cm 2.05 GeV 9.15 keV 1.77 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.47 mum -18.2 cm 2.18 cm 3.54 keV 0 eV 0 fm 0 fm World initStep + 1 -22 mum -18.3 cm 2.17 cm 5.88 MeV 7.07 keV 395 mum 395 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.83 cm 1.82 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -9.57 mum -8.83 cm 1.82 cm 1.41 MeV 2.5 keV 78.7 mum 78.7 mum World eIoni + +********************************************************************************************************* +* 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.17 cm 1.47 cm 467 MeV 16.8 keV 4.65 cm 4.65 cm World eIoni + 2 2.03 mum -14.8 cm 2.07 cm 1.53 GeV 44.2 keV 10.7 cm 15.3 cm World eIoni + 3 1.55 mum -17.4 cm 2.15 cm 1.79 GeV 13 keV 2.58 cm 17.9 cm World eIoni + 4 928 nm -20 cm 2.21 cm 2.05 GeV 14.5 keV 2.61 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.55 mum -17.4 cm 2.15 cm 1.02 keV 0 eV 0 fm 0 fm World initStep + 1 6.58 mum -17.4 cm 2.15 cm 1.13 MeV 2.04 keV 60 mum 60 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.03 mum -14.8 cm 2.07 cm 2.39 keV 0 eV 0 fm 0 fm World initStep + 1 23.5 mum -14.8 cm 2.07 cm 3.26 MeV 4.79 keV 207 mum 207 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.17 cm 1.47 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -4.17 mum -4.17 cm 1.47 cm 1.19 MeV 2.14 keV 63.8 mum 63.8 mum World eIoni + +********************************************************************************************************* +* 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 79.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 -7.91 cm 1.77 cm 841 MeV 31.2 keV 8.4 cm 8.4 cm World eBrem + 2 0 fm -8.29 cm 1.79 cm 879 MeV 1.04 keV 3.73 mm 8.78 cm World eIoni + 3 -1.53 mum -16.7 cm 2.13 cm 1.72 GeV 35.3 keV 8.45 cm 17.2 cm World eIoni + 4 -2.6 mum -20 cm 2.22 cm 2.05 GeV 14.2 keV 3.27 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.53 mum -16.7 cm 2.13 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 10.2 mum -16.7 cm 2.13 cm 1.72 MeV 2.95 keV 99.3 mum 99.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.29 cm 1.79 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 6.03 mum -8.29 cm 1.79 cm 1.37 MeV 2.44 keV 75.9 mum 75.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.91 cm 1.77 cm 2.46 keV 0 eV 0 fm 0 fm World initStep + 1 -19.5 mum -11.7 cm 2 cm 0 eV 403 eV 3.8 cm 3.8 cm World phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -19.5 mum -11.7 cm 2 cm 2.06 keV 0 eV 0 fm 0 fm World initStep + 1 -34.7 mum -11.7 cm 2 cm 2.66 MeV 4.12 keV 163 mum 163 mum World eIoni + +********************************************************************************************************* +* 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 79.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 -1.5 cm 1.04 cm 199 MeV 10.5 keV 1.93 cm 1.93 cm World eIoni + 2 14.6 mum -4.34 cm 1.49 cm 484 MeV 12.6 keV 2.88 cm 4.82 cm World eIoni + 3 42.2 mum -20 cm 2.22 cm 2.05 GeV 66.3 keV 15.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 14.6 mum -4.34 cm 1.49 cm 2.43 keV 0 eV 0 fm 0 fm World initStep + 1 1.74 mum -4.36 cm 1.49 cm 3.34 MeV 4.86 keV 212 mum 212 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.5 cm 1.04 cm 28 keV 0 eV 0 fm 0 fm World initStep + 1 -383 mum -1.95 cm 1.03 cm 56.1 MeV 10.1 keV 4.85 mm 4.85 mm World eIoni + 2 -407 mum -5.08 cm 1.03 cm 369 MeV 12.1 keV 3.13 cm 3.61 cm World eIoni + 3 -422 mum -16.4 cm 1.03 cm 1.5 GeV 47.3 keV 11.3 cm 14.9 cm World eIoni + 4 -423 mum -18.3 cm 1.03 cm 1.7 GeV 7.03 keV 1.97 cm 16.9 cm World eIoni + 5 -424 mum -20 cm 1.03 cm 1.86 GeV 5.66 keV 1.65 cm 18.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -18.9 mum -819 mum 1.46 mm 2.76 keV 0 eV 0 fm 0 fm World initStep - 1 -20.4 mum -1.06 mm 1.43 mm 4.02 MeV 5.53 keV 261 mum 261 mum World eIoni + 0 -423 mum -18.3 cm 1.03 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -426 mum -18.4 cm 1.03 cm 1.63 MeV 2.82 keV 93.4 mum 93.4 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -422 mum -16.4 cm 1.03 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 -429 mum -16.4 cm 1.03 cm 1.19 MeV 2.15 keV 64.1 mum 64.1 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -407 mum -5.08 cm 1.03 cm 1.91 keV 0 eV 0 fm 0 fm World initStep + 1 -416 mum -5.09 cm 1.03 cm 2.38 MeV 3.82 keV 145 mum 145 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2659,25 +2277,24 @@ 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 -5.63 cm 1.61 cm 613 MeV 25.1 keV 6.11 cm 6.11 cm World eIoni - 2 3.87 mum -11.2 cm 1.94 cm 1.17 GeV 24.9 keV 5.53 cm 11.6 cm World eIoni - 3 7.53 mum -20 cm 2.22 cm 2.05 GeV 38.5 keV 8.85 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -20 cm 2.22 cm 2.05 GeV 78.7 keV 20.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.87 mum -11.2 cm 1.94 cm 1.4 keV 0 eV 0 fm 0 fm World initStep - 1 2.57 mum -11.2 cm 1.93 cm 1.62 MeV 2.81 keV 92.6 mum 92.6 mum World eIoni + 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 51.3 keV 14 cm 14 cm World eIoni + 2 1.49 mum -20 cm 2.22 cm 2.05 GeV 26.6 keV 6.48 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 -5.63 cm 1.61 cm 5.2 keV 0 eV 0 fm 0 fm World initStep - 1 -57.7 mum -5.7 cm 1.61 cm 11 MeV 10.4 keV 775 mum 775 mum World eIoni + 0 0 fm -13.5 cm 2.03 cm 2.91 keV 0 eV 0 fm 0 fm World initStep + 1 -20.7 mum -13.6 cm 2.03 cm 4.36 MeV 5.82 keV 285 mum 285 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2685,300 +2302,499 @@ 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 -5.32 mm 6.8 mm 103 MeV 3.5 keV 9.05 mm 9.05 mm World eIoni - 2 10.3 mum -17.5 cm 2.15 cm 1.8 GeV 78.5 keV 17 cm 18 cm World eIoni - 3 10.3 mum -20 cm 2.22 cm 2.05 GeV 10.2 keV 2.54 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 -17.5 cm 2.15 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 18.7 mum -17.5 cm 2.15 cm 1.36 MeV 2.42 keV 75.4 mum 75.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.32 mm 6.8 mm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 -9.59 mum -5.39 mm 6.81 mm 1.42 MeV 2.51 keV 79.1 mum 79.1 mum World eIoni - -********************************************************************************************************* -* 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 11.7 keV 2.14 cm 2.14 cm World eIoni - 2 -9.36 mum -6.12 cm 1.65 cm 662 MeV 20.2 keV 4.46 cm 6.6 cm World eIoni - 3 -11 mum -7.31 cm 1.73 cm 781 MeV 6.14 keV 1.2 cm 7.8 cm World eIoni - 4 -11.8 mum -8.37 cm 1.8 cm 887 MeV 4.94 keV 1.06 cm 8.86 cm World eIoni - 5 -17.9 mum -18.3 cm 2.18 cm 1.88 GeV 41.4 keV 9.94 cm 18.8 cm World eIoni - 6 -18.5 mum -20 cm 2.21 cm 2.05 GeV 6.06 keV 1.69 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 -17.9 mum -18.3 cm 2.18 cm 3.15 keV 0 eV 0 fm 0 fm World initStep - 1 -19.3 mum -18.3 cm 2.18 cm 4.92 MeV 6.3 keV 325 mum 325 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.8 mum -8.37 cm 1.8 cm 1.66 keV 0 eV 0 fm 0 fm World initStep - 1 -5.44 mum -8.38 cm 1.8 cm 1.99 MeV 3.32 keV 118 mum 118 mum World eIoni + 1 0 fm -7.3 mm 7.79 mm 123 MeV 5.42 keV 1.13 cm 1.13 cm World eIoni + 2 -10.5 mum -15.9 cm 2.11 cm 1.63 GeV 60.4 keV 15.2 cm 16.3 cm World eIoni + 3 -10.5 mum -16 cm 2.11 cm 1.65 GeV 1.12 keV 1.94 mm 16.5 cm World eIoni + 4 -11.5 mum -20 cm 2.21 cm 2.05 GeV 16.2 keV 3.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 -11 mum -7.31 cm 1.73 cm 2.32 keV 0 eV 0 fm 0 fm World initStep - 1 -25.3 mum -7.33 cm 1.74 cm 3.13 MeV 4.65 keV 197 mum 197 mum World eIoni + 0 -10.5 mum -16 cm 2.11 cm 20.3 keV 0 eV 0 fm 0 fm World initStep + 1 67.5 mum -16.4 cm 2.09 cm 39.7 MeV 8.81 keV 3.33 mm 3.33 mm World eIoni + 2 73.4 mum -18.6 cm 2.08 cm 265 MeV 8.99 keV 2.25 cm 2.59 cm World eIoni + 3 75 mum -20 cm 2.08 cm 404 MeV 6.7 keV 1.39 cm 3.98 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 73.4 mum -18.6 cm 2.08 cm 6.12 keV 0 eV 0 fm 0 fm World initStep + 1 42.3 mum -18.7 cm 2.08 cm 13.4 MeV 10 keV 969 mum 969 mum World eIoni + 2 55.1 mum -20 cm 2.07 cm 144 MeV 4.26 keV 1.3 cm 1.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 42.3 mum -18.7 cm 2.08 cm 3.93 keV 0 eV 0 fm 0 fm World initStep + 1 6.25 mum -18.7 cm 2.08 cm 6.91 MeV 7.85 keV 471 mum 471 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.36 mum -6.12 cm 1.65 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -6.22 mum -6.12 cm 1.65 cm 1.32 MeV 2.35 keV 72.2 mum 72.2 mum World eIoni + 0 -10.5 mum -15.9 cm 2.11 cm 1.28 keV 0 eV 0 fm 0 fm World initStep + 1 -19.7 mum -15.9 cm 2.11 cm 1.45 MeV 2.56 keV 81.1 mum 81.1 mum World eIoni ********************************************************************************************************* * 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 10.2 keV 0 eV 0 fm 0 fm World initStep - 1 96.3 mum -1.82 cm 1.08 cm 16.9 MeV 5.37 keV 1.32 mm 1.32 mm World eIoni - 2 153 mum -13.7 cm 1.08 cm 1.21 GeV 42.6 keV 11.9 cm 12 cm World eIoni - 3 156 mum -16.4 cm 1.08 cm 1.48 GeV 11.3 keV 2.72 cm 14.8 cm World eIoni - 4 160 mum -20 cm 1.08 cm 1.83 GeV 17.9 keV 3.55 cm 18.3 cm OutOfWorldTransportation + 0 0 fm -7.3 mm 7.79 mm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 13.2 mum -7.41 mm 7.79 mm 1.98 MeV 3.3 keV 117 mum 117 mum World eIoni + +********************************************************************************************************* +* 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 29 keV 7.27 cm 7.27 cm World eIoni + 2 1.23 mum -18.6 cm 2.18 cm 1.91 GeV 47.8 keV 11.8 cm 19.1 cm World eIoni + 3 1.3 mum -20 cm 2.22 cm 2.05 GeV 6.02 keV 1.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 1.23 mum -18.6 cm 2.18 cm 1.2 keV 0 eV 0 fm 0 fm World initStep + 1 1.76 mum -18.6 cm 2.18 cm 1.35 MeV 2.4 keV 74.3 mum 74.3 mum World eIoni + +********************************************************************************************************* +* 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.04 keV 0 eV 0 fm 0 fm World initStep + 1 -3.07 mum -6.79 cm 1.7 cm 1.15 MeV 2.08 keV 61.4 mum 61.4 mum World eIoni + +********************************************************************************************************* +* 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.85 cm 1.54 cm 535 MeV 20.2 keV 5.33 cm 5.33 cm World eIoni + 2 2.56 mum -20 cm 2.22 cm 2.05 GeV 64.9 keV 15.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 -4.85 cm 1.54 cm 8.53 keV 0 eV 0 fm 0 fm World initStep + 1 -27.1 mum -4.99 cm 1.55 cm 20.4 MeV 12.6 keV 1.54 mm 1.54 mm World eIoni + 2 -27.1 mum -5.47 cm 1.55 cm 67.8 MeV 2.24 keV 4.74 mm 6.29 mm World eIoni + 3 -19 mum -7.82 cm 1.55 cm 303 MeV 10.4 keV 2.35 cm 2.98 cm World eIoni + 4 -21.8 mum -9.67 cm 1.55 cm 489 MeV 6.34 keV 1.85 cm 4.84 cm World eIoni + 5 -19.2 mum -12 cm 1.55 cm 717 MeV 9.65 keV 2.29 cm 7.12 cm World eIoni + 6 -13.9 mum -14.4 cm 1.55 cm 958 MeV 11.7 keV 2.41 cm 9.53 cm World eIoni + 7 -8.53 mum -20 cm 1.55 cm 1.52 GeV 23.2 keV 5.63 cm 15.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -13.9 mum -14.4 cm 1.55 cm 2.15 keV 0 eV 0 fm 0 fm World initStep + 1 4.22 mum -14.4 cm 1.56 cm 2.8 MeV 4.29 keV 174 mum 174 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -19.2 mum -12 cm 1.55 cm 21.2 keV 0 eV 0 fm 0 fm World initStep + 1 -254 mum -12.3 cm 1.57 cm 41.3 MeV 7.49 keV 3.48 mm 3.48 mm World eIoni + 2 -256 mum -12.4 cm 1.57 cm 55.8 MeV 235 eV 1.45 mm 4.93 mm World eIoni + 3 -291 mum -19.1 cm 1.57 cm 724 MeV 26.3 keV 6.69 cm 7.18 cm World eIoni + 4 -293 mum -20 cm 1.57 cm 813 MeV 2.68 keV 8.84 mm 8.06 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -291 mum -19.1 cm 1.57 cm 1.49 keV 0 eV 0 fm 0 fm World initStep + 1 -281 mum -19.1 cm 1.58 cm 1.75 MeV 2.99 keV 101 mum 101 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -256 mum -12.4 cm 1.57 cm 1.13 keV 0 eV 0 fm 0 fm World initStep + 1 -248 mum -12.4 cm 1.57 cm 1.26 MeV 2.27 keV 68.7 mum 68.7 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -21.8 mum -9.67 cm 1.55 cm 18.2 keV 0 eV 0 fm 0 fm World initStep + 1 -80.4 mum -9.72 cm 1.56 cm 5.92 MeV 603 eV 549 mum 549 mum World eIoni + 2 -255 mum -20 cm 1.59 cm 1.03 GeV 33.4 keV 10.3 cm 10.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -80.4 mum -9.72 cm 1.56 cm 396 keV 0 eV 0 fm 0 fm World initStep + 1 106 mum -15.5 cm 1.51 cm 577 MeV 20 keV 5.77 cm 5.77 cm World eIoni + 2 116 mum -20 cm 1.51 cm 1.03 GeV 21.8 keV 4.51 cm 10.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 106 mum -15.5 cm 1.51 cm 3.45 keV 0 eV 0 fm 0 fm World initStep + 1 112 mum -15.5 cm 1.51 cm 5.66 MeV 6.91 keV 379 mum 379 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -19 mum -7.82 cm 1.55 cm 17.3 keV 0 eV 0 fm 0 fm World initStep + 1 62.3 mum -7.91 cm 1.55 cm 11.6 MeV 3.33 keV 981 mum 981 mum World eIoni + 2 91.4 mum -14.8 cm 1.55 cm 701 MeV 23.4 keV 6.89 cm 6.99 cm World eIoni + 3 93.7 mum -20 cm 1.55 cm 1.22 GeV 22.2 keV 5.19 cm 12.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 91.4 mum -14.8 cm 1.55 cm 5.63 keV 0 eV 0 fm 0 fm World initStep + 1 78.8 mum -14.9 cm 1.54 cm 12.4 MeV 11.3 keV 885 mum 885 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 62.3 mum -7.91 cm 1.55 cm 4.02 keV 0 eV 0 fm 0 fm World initStep + 1 72.7 mum -7.93 cm 1.55 cm 2.48 MeV 986 eV 178 mum 178 mum World eIoni + 2 65.3 mum -14.8 cm 1.54 cm 686 MeV 20.6 keV 6.83 cm 6.85 cm World eIoni + 3 63.3 mum -20 cm 1.54 cm 1.21 GeV 21.6 keV 5.24 cm 12.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 65.3 mum -14.8 cm 1.54 cm 7.9 keV 0 eV 0 fm 0 fm World initStep + 1 157 mum -14.9 cm 1.55 cm 19.2 MeV 10.1 keV 1.43 mm 1.43 mm World eIoni + 2 160 mum -16.1 cm 1.55 cm 141 MeV 3.53 keV 1.22 cm 1.36 cm World eIoni + 3 162 mum -20 cm 1.55 cm 530 MeV 16.8 keV 3.89 cm 5.25 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 160 mum -16.1 cm 1.55 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 152 mum -16.1 cm 1.55 cm 1.83 MeV 3.11 keV 107 mum 107 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 72.7 mum -7.93 cm 1.55 cm 1.52 keV 0 eV 0 fm 0 fm World initStep + 1 84.9 mum -7.94 cm 1.55 cm 1.78 MeV 3.04 keV 104 mum 104 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -27.1 mum -5.47 cm 1.55 cm 2.84 keV 0 eV 0 fm 0 fm World initStep + 1 -54.8 mum -5.49 cm 1.55 cm 4.19 MeV 5.68 keV 273 mum 273 mum World eIoni + +********************************************************************************************************* +* 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 49.6 keV 13 cm 13 cm World eIoni + 2 -2.06 mum -20 cm 2.21 cm 2.05 GeV 32.1 keV 7.46 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.5 cm 1.99 cm 2.15 keV 0 eV 0 fm 0 fm World initStep + 1 18.9 mum -12.6 cm 1.99 cm 2.81 MeV 4.3 keV 175 mum 175 mum World eIoni + +********************************************************************************************************* +* 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.24 mm 3.47 mm 62.4 MeV 1.51 keV 3.75 mm 3.75 mm World eIoni + 2 -2.98 mum -10.4 cm 1.9 cm 1.09 GeV 41 keV 10.5 cm 10.9 cm World eIoni + 3 -1.64 mum -14.7 cm 2.07 cm 1.52 GeV 19.9 keV 4.29 cm 15.2 cm World eIoni + 4 -1.42 mum -15.7 cm 2.1 cm 1.62 GeV 4.17 keV 9.94 mm 16.2 cm World eIoni + 5 -863 nm -20 cm 2.22 cm 2.05 GeV 16.8 keV 4.3 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.42 mum -15.7 cm 2.1 cm 1.88 keV 0 eV 0 fm 0 fm World initStep + 1 1.8 mum -15.7 cm 2.1 cm 2.33 MeV 3.76 keV 142 mum 142 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.64 mum -14.7 cm 2.07 cm 1.75 keV 0 eV 0 fm 0 fm World initStep + 1 602 nm -14.7 cm 2.07 cm 2.13 MeV 3.5 keV 128 mum 128 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.98 mum -10.4 cm 1.9 cm 2.69 keV 0 eV 0 fm 0 fm World initStep + 1 -27.6 mum -10.4 cm 1.9 cm 3.87 MeV 5.39 keV 250 mum 250 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.24 mm 3.47 mm 2.9 keV 0 eV 0 fm 0 fm World initStep + 1 4.92 mum -1.51 mm 3.45 mm 4.21 MeV 4.49 keV 274 mum 274 mum World eIoni + 2 19.6 mum -11.1 cm 3.47 mm 1.1 GeV 32.5 keV 11 cm 11 cm World eIoni + 3 20.6 mum -20 cm 3.47 mm 1.99 GeV 34.5 keV 8.87 cm 19.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 19.6 mum -11.1 cm 3.47 mm 1 keV 0 eV 0 fm 0 fm World initStep + 1 21.1 mum -11.1 cm 3.46 mm 1.11 MeV 2 keV 58.5 mum 58.5 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.92 mum -1.51 mm 3.45 mm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 -1.26 mum -1.57 mm 3.45 mm 1.19 MeV 2.15 keV 64 mum 64 mum World eIoni + +********************************************************************************************************* +* 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.87 cm 1.7 cm 737 MeV 29.5 keV 7.36 cm 7.36 cm World eIoni + 2 -9.46 mum -20 cm 2.22 cm 2.05 GeV 57 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.87 cm 1.7 cm 8.5 keV 0 eV 0 fm 0 fm World initStep + 1 133 mum -7.02 cm 1.7 cm 20.4 MeV 8.37 keV 1.54 mm 1.54 mm World eIoni + 2 149 mum -20 cm 1.7 cm 1.32 GeV 46.8 keV 13 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 -2.12 cm 1.18 cm 262 MeV 8.97 keV 2.57 cm 2.57 cm World eIoni + 2 6.87 mum -4.98 cm 1.55 cm 548 MeV 11.7 keV 2.89 cm 5.46 cm World eIoni + 3 15.5 mum -7.99 cm 1.77 cm 849 MeV 9.08 keV 3.02 cm 8.48 cm World eIoni + 4 19.6 mum -10.6 cm 1.91 cm 1.11 GeV 8.67 keV 2.61 cm 11.1 cm World eIoni + 5 32 mum -20 cm 2.22 cm 2.05 GeV 40.1 keV 9.41 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 19.6 mum -10.6 cm 1.91 cm 2.27 keV 0 eV 0 fm 0 fm World initStep + 1 -23.3 nm -10.6 cm 1.91 cm 3.01 MeV 4.53 keV 189 mum 189 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 15.5 mum -7.99 cm 1.77 cm 1.7 keV 0 eV 0 fm 0 fm World initStep + 1 29.5 mum -8 cm 1.77 cm 2.06 MeV 3.41 keV 123 mum 123 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.87 mum -4.98 cm 1.55 cm 12.8 keV 0 eV 0 fm 0 fm World initStep + 1 -162 mum -5.18 cm 1.55 cm 27.4 MeV 10.7 keV 2.18 mm 2.18 mm World eIoni + 2 -180 mum -20 cm 1.55 cm 1.51 GeV 52.2 keV 14.8 cm 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.12 cm 1.18 cm 12.8 keV 0 eV 0 fm 0 fm World initStep + 1 -118 mum -2.27 cm 1.19 cm 20.7 MeV 8.08 keV 1.66 mm 1.66 mm World eIoni + 2 -117 mum -20 cm 1.19 cm 1.79 GeV 63.7 keV 17.7 cm 17.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -118 mum -2.27 cm 1.19 cm 5.26 keV 0 eV 0 fm 0 fm World initStep + 1 -178 mum -2.34 cm 1.19 cm 11.1 MeV 10.5 keV 788 mum 788 mum World eIoni + +********************************************************************************************************* +* 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.25 cm 9.69 mm 175 MeV 4.31 keV 1.68 cm 1.68 cm World eIoni + 2 -18.6 mum -20 cm 2.22 cm 2.05 GeV 78.5 keV 18.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 -1.25 cm 9.69 mm 44.6 keV 0 eV 0 fm 0 fm World initStep + 1 248 mum -2.09 cm 9.1 mm 97.7 MeV 10.3 keV 8.76 mm 8.76 mm World eIoni + 2 256 mum -20 cm 9.08 mm 1.89 GeV 73.4 keV 17.9 cm 18.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 248 mum -2.09 cm 9.1 mm 5.34 keV 0 eV 0 fm 0 fm World initStep + 1 283 mum -2.17 cm 9.04 mm 11.4 MeV 10.7 keV 809 mum 809 mum World eIoni + +********************************************************************************************************* +* 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 78.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.07 cm 1.46 cm 457 MeV 17.3 keV 4.55 cm 4.55 cm World eIoni + 2 936 nm -5.55 cm 1.6 cm 605 MeV 6.57 keV 1.48 cm 6.03 cm World eIoni + 3 2.21 mum -9.33 cm 1.85 cm 983 MeV 12.9 keV 3.78 cm 9.82 cm World eIoni + 4 2.81 mum -20 cm 2.22 cm 2.05 GeV 45.8 keV 10.7 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 -9.33 cm 1.85 cm 2.37 keV 0 eV 0 fm 0 fm World initStep + 1 10.2 mum -9.35 cm 1.85 cm 3.22 MeV 4.74 keV 204 mum 204 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 936 nm -5.55 cm 1.6 cm 990 eV 0 eV 0 fm 0 fm World initStep + 1 2.56 mum -5.56 cm 1.6 cm 1.09 MeV 1.98 keV 57.6 mum 57.6 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.07 cm 1.46 cm 2.99 keV 0 eV 0 fm 0 fm World initStep + 1 -14 mum -4.09 cm 1.46 cm 3.2 MeV 4.78 keV 213 mum 213 mum World eIoni + 2 -15.7 mum -4.67 cm 1.46 cm 61.2 MeV 1.81 keV 5.8 mm 6.02 mm World eIoni + 3 -17.8 mum -10.5 cm 1.46 cm 646 MeV 22.7 keV 5.85 cm 6.45 cm World eIoni + 4 -18.1 mum -13 cm 1.46 cm 895 MeV 8.74 keV 2.5 cm 8.94 cm World eIoni + 5 -18.7 mum -14.2 cm 1.46 cm 1.01 GeV 4.75 keV 1.17 cm 10.1 cm World eIoni + 6 -21.1 mum -19.3 cm 1.46 cm 1.53 GeV 21.4 keV 5.15 cm 15.3 cm World eIoni + 7 -21.2 mum -20 cm 1.46 cm 1.59 GeV 3.47 keV 6.7 mm 15.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -21.1 mum -19.3 cm 1.46 cm 1.39 keV 0 eV 0 fm 0 fm World initStep + 1 -31 mum -19.3 cm 1.46 cm 1.6 MeV 2.79 keV 91.5 mum 91.5 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 156 mum -16.4 cm 1.08 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 153 mum -16.5 cm 1.08 cm 1.2 MeV 2.15 keV 64.3 mum 64.3 mum World eIoni + 0 -18.7 mum -14.2 cm 1.46 cm 997 eV 0 eV 0 fm 0 fm World initStep + 1 -15.8 mum -14.2 cm 1.46 cm 1.1 MeV 1.99 keV 58.1 mum 58.1 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 153 mum -13.7 cm 1.08 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 144 mum -13.7 cm 1.08 cm 1.27 MeV 2.27 keV 68.9 mum 68.9 mum World eIoni + 0 -18.1 mum -13 cm 1.46 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 -6.68 mum -13 cm 1.46 cm 1.88 MeV 3.19 keV 111 mum 111 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 96.3 mum -1.82 cm 1.08 cm 5.22 keV 0 eV 0 fm 0 fm World initStep - 1 66.7 mum -1.85 cm 1.08 cm 3.77 MeV 1.8 keV 280 mum 280 mum World eIoni - 2 45.1 mum -4.33 cm 1.08 cm 252 MeV 9.1 keV 2.48 cm 2.51 cm World eIoni - 3 41.4 mum -20 cm 1.08 cm 1.82 GeV 65.1 keV 15.7 cm 18.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 45.1 mum -4.33 cm 1.08 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 37.2 mum -4.34 cm 1.08 cm 1.42 MeV 2.5 keV 78.8 mum 78.8 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 66.7 mum -1.85 cm 1.08 cm 1.36 keV 0 eV 0 fm 0 fm World initStep - 1 65.3 mum -1.86 cm 1.08 cm 1.55 MeV 2.71 keV 88.2 mum 88.2 mum World eIoni - -********************************************************************************************************* -* 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 48.4 keV 12.9 cm 12.9 cm World eIoni - 2 -874 nm -20 cm 2.22 cm 2.05 GeV 34.2 keV 7.61 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.28 keV 0 eV 0 fm 0 fm World initStep - 1 5.18 mum -12.4 cm 1.99 cm 1.45 MeV 2.56 keV 81.5 mum 81.5 mum World eIoni - -********************************************************************************************************* -* 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.92 mm 8.06 mm 129 MeV 4.55 keV 1.19 cm 1.19 cm World eIoni - 2 9.89 mum -3.76 cm 1.43 cm 426 MeV 11.7 keV 3.04 cm 4.24 cm World eIoni - 3 17.1 mum -16.8 cm 2.13 cm 1.73 GeV 47.9 keV 13 cm 17.3 cm World eIoni - 4 17.3 mum -20 cm 2.22 cm 2.05 GeV 11.6 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 17.1 mum -16.8 cm 2.13 cm 1.46 keV 0 eV 0 fm 0 fm World initStep - 1 28.7 mum -16.8 cm 2.13 cm 1.69 MeV 2.91 keV 97.6 mum 97.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.89 mum -3.76 cm 1.43 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 16.8 mum -3.77 cm 1.43 cm 1.11 MeV 2 keV 58.5 mum 58.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.92 mm 8.06 mm 7.5 keV 0 eV 0 fm 0 fm World initStep - 1 -108 mum -9.17 mm 8.1 mm 18.3 MeV 10.6 keV 1.36 mm 1.36 mm World eIoni - 2 -110 mum -1.92 cm 8.1 mm 118 MeV 3.07 keV 1 cm 1.14 cm World eIoni - 3 -102 mum -20 cm 8.11 mm 1.93 GeV 71.6 keV 18.1 cm 19.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -110 mum -1.92 cm 8.1 mm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 -119 mum -1.93 cm 8.1 mm 1.46 MeV 2.57 keV 81.8 mum 81.8 mum World eIoni - -********************************************************************************************************* -* 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.59 cm 1.68 cm 709 MeV 26.9 keV 7.07 cm 7.07 cm World eIoni - 2 -951 nm -19.1 cm 2.2 cm 1.96 GeV 59.3 keV 12.5 cm 19.6 cm World eIoni - 3 -1.16 mum -20 cm 2.22 cm 2.05 GeV 3.56 keV 9.1 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 -951 nm -19.1 cm 2.2 cm 2.73 keV 0 eV 0 fm 0 fm World initStep - 1 19.5 mum -19.1 cm 2.2 cm 3.96 MeV 5.47 keV 256 mum 256 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.59 cm 1.68 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 2.39 mum -6.59 cm 1.68 cm 1.28 MeV 2.3 keV 70.1 mum 70.1 mum World eIoni - -********************************************************************************************************* -* 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 44.3 keV 12.8 cm 12.8 cm World eIoni - 2 2 mum -18.4 cm 2.18 cm 1.89 GeV 23.4 keV 6.16 cm 18.9 cm World eIoni - 3 2.28 mum -19.3 cm 2.2 cm 1.98 GeV 3.74 keV 8.93 mm 19.8 cm World eIoni - 4 2.36 mum -20 cm 2.22 cm 2.05 GeV 4.25 keV 6.73 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 2.28 mum -19.3 cm 2.2 cm 1.42 keV 0 eV 0 fm 0 fm World initStep - 1 13.3 mum -19.3 cm 2.2 cm 1.65 MeV 2.84 keV 94.3 mum 94.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2 mum -18.4 cm 2.18 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 -369 nm -18.4 cm 2.18 cm 1.21 MeV 2.18 keV 65.2 mum 65.2 mum World eIoni - -********************************************************************************************************* -* 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 3.6 keV 0 eV 0 fm 0 fm World initStep - 1 -33 mum -12.3 cm 1.98 cm 6.05 MeV 7.2 keV 408 mum 408 mum World eIoni - -********************************************************************************************************* -* 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.52 mm 170 MeV 8.76 keV 1.63 cm 1.63 cm World eIoni - 2 6.48 mum -1.74 cm 1.1 cm 224 MeV 1.32 keV 5.6 mm 2.19 cm World eIoni - 3 35.1 mum -8.94 cm 1.83 cm 944 MeV 26.2 keV 7.25 cm 9.43 cm World eIoni - 4 53.2 mum -20 cm 2.22 cm 2.05 GeV 43.5 keV 11.1 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 35.1 mum -8.94 cm 1.83 cm 1.97 keV 0 eV 0 fm 0 fm World initStep - 1 21.3 mum -8.96 cm 1.83 cm 2.49 MeV 3.93 keV 152 mum 152 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.48 mum -1.74 cm 1.1 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 13.8 mum -1.75 cm 1.1 cm 1.22 MeV 2.2 keV 65.9 mum 65.9 mum World eIoni - -********************************************************************************************************* -* 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.52 mm 51.6 keV 0 eV 0 fm 0 fm World initStep - 1 -325 mum -2.35 cm 9.49 mm 117 MeV 12.7 keV 1.16 cm 1.16 cm World eIoni - 2 -352 mum -5.84 cm 9.49 mm 466 MeV 18 keV 3.49 cm 4.64 cm World eIoni - 3 -381 mum -19.5 cm 9.48 mm 1.83 GeV 56.6 keV 13.6 cm 18.3 cm World eIoni - 4 -382 mum -20 cm 9.48 mm 1.88 GeV 1.7 keV 5.29 mm 18.8 cm OutOfWorldTransportation + 0 -17.8 mum -10.5 cm 1.46 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -17.4 mum -10.5 cm 1.46 cm 1.31 MeV 2.34 keV 71.9 mum 71.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -381 mum -19.5 cm 9.48 mm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -374 mum -19.5 cm 9.48 mm 1.19 MeV 2.15 keV 64 mum 64 mum World eIoni + 0 -15.7 mum -4.67 cm 1.46 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -15.2 mum -4.68 cm 1.46 cm 1.22 MeV 2.2 keV 65.8 mum 65.8 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -352 mum -5.84 cm 9.49 mm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 -347 mum -5.84 cm 9.49 mm 1.4 MeV 2.48 keV 78.1 mum 78.1 mum World eIoni + 0 -14 mum -4.09 cm 1.46 cm 1 keV 0 eV 0 fm 0 fm World initStep + 1 -11.6 mum -4.1 cm 1.46 cm 1.11 MeV 2.01 keV 58.7 mum 58.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2986,78 +2802,230 @@ 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.89 cm 1.83 cm 939 MeV 37.6 keV 9.38 cm 9.38 cm World eIoni - 2 2.57 mum -20 cm 2.22 cm 2.05 GeV 47.1 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.89 cm 1.83 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 -9.23 mum -8.89 cm 1.83 cm 1.5 MeV 2.64 keV 84.8 mum 84.8 mum World eIoni - -********************************************************************************************************* -* 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.43 cm 1.38 cm 393 MeV 15.5 keV 3.9 cm 3.9 cm World eIoni - 2 3.36 mum -10.1 cm 1.89 cm 1.06 GeV 27.7 keV 6.73 cm 10.6 cm World eIoni - 3 5.11 mum -19.1 cm 2.2 cm 1.96 GeV 35.3 keV 8.96 cm 19.6 cm World eIoni - 4 5.29 mum -20 cm 2.21 cm 2.05 GeV 3.76 keV 9.14 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 5.11 mum -19.1 cm 2.2 cm 1.3 keV 0 eV 0 fm 0 fm World initStep - 1 -2.6 mum -19.1 cm 2.2 cm 1.48 MeV 2.6 keV 83.2 mum 83.2 mum World eIoni + 1 0 fm -5.29 mm 6.79 mm 103 MeV 3.66 keV 9.02 mm 9.02 mm World eIoni + 2 -4.66 mum -13.7 cm 2.04 cm 1.42 GeV 55.2 keV 13.3 cm 14.2 cm World eIoni + 3 -4.67 mum -20 cm 2.22 cm 2.05 GeV 27.1 keV 6.28 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.36 mum -10.1 cm 1.89 cm 9.07 keV 0 eV 0 fm 0 fm World initStep - 1 5.06 mum -10.2 cm 1.89 cm 3.32 MeV 1.45 keV 271 mum 271 mum World eIoni - 2 -2.9 mum -14.2 cm 1.88 cm 412 MeV 13.6 keV 4.09 cm 4.11 cm World eIoni - 3 -3.63 mum -18.3 cm 1.88 cm 822 MeV 18.4 keV 4.1 cm 8.21 cm World eIoni - 4 -3.24 mum -20 cm 1.88 cm 988 MeV 9.08 keV 1.66 cm 9.87 cm OutOfWorldTransportation + 0 -4.66 mum -13.7 cm 2.04 cm 1.71 keV 0 eV 0 fm 0 fm World initStep + 1 -10.4 mum -13.7 cm 2.03 cm 2.07 MeV 3.42 keV 123 mum 123 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.29 mm 6.79 mm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 4.7 mum -5.36 mm 6.8 mm 1.38 MeV 2.44 keV 76 mum 76 mum World eIoni + +********************************************************************************************************* +* 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 81 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 -8.29 cm 1.79 cm 879 MeV 34.8 keV 8.78 cm 8.78 cm World eIoni + 2 127 nm -20 cm 2.22 cm 2.05 GeV 47.5 keV 11.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 -8.29 cm 1.79 cm 6.64 keV 0 eV 0 fm 0 fm World initStep + 1 -1.85 mum -8.4 cm 1.78 cm 16 MeV 11.2 keV 1.17 mm 1.17 mm World eIoni + 2 -1.72 mum -20 cm 1.78 cm 1.18 GeV 43.2 keV 11.6 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 -6.9 cm 1.71 cm 740 MeV 27.9 keV 7.39 cm 7.39 cm World eIoni + 2 571 nm -8.81 cm 1.82 cm 930 MeV 8.95 keV 1.91 cm 9.3 cm World eIoni + 3 1.99 mum -9.95 cm 1.88 cm 1.05 GeV 4.19 keV 1.15 cm 10.4 cm World eIoni + 4 6.13 mum -13.3 cm 2.02 cm 1.38 GeV 14.2 keV 3.38 cm 13.8 cm World eIoni + 5 9.36 mum -16 cm 2.11 cm 1.65 GeV 9.89 keV 2.7 cm 16.5 cm World eIoni + 6 14.8 mum -20 cm 2.22 cm 2.05 GeV 17.8 keV 3.97 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 9.36 mum -16 cm 2.11 cm 13.6 keV 0 eV 0 fm 0 fm World initStep + 1 -121 mum -16.2 cm 2.13 cm 28.6 MeV 9.32 keV 2.29 mm 2.29 mm World eIoni + 2 -133 mum -20 cm 2.13 cm 404 MeV 16.6 keV 3.76 cm 3.99 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.13 mum -13.3 cm 2.02 cm 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 -2.36 mum -13.3 cm 2.02 cm 1.27 MeV 2.28 keV 69.3 mum 69.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.99 mum -9.95 cm 1.88 cm 2.97 keV 0 eV 0 fm 0 fm World initStep + 1 -12.3 mum -9.98 cm 1.88 cm 4.49 MeV 5.94 keV 294 mum 294 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 571 nm -8.81 cm 1.82 cm 9.43 keV 0 eV 0 fm 0 fm World initStep + 1 -88.1 mum -8.9 cm 1.82 cm 12.6 MeV 3.47 keV 982 mum 982 mum World eIoni + 2 -114 mum -20 cm 1.82 cm 1.12 GeV 38.5 keV 11.1 cm 11.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.63 mum -18.3 cm 1.88 cm 1.3 keV 0 eV 0 fm 0 fm World initStep - 1 -13.7 mum -18.4 cm 1.88 cm 1.47 MeV 2.6 keV 82.9 mum 82.9 mum World eIoni + 0 -88.1 mum -8.9 cm 1.82 cm 13.6 keV 0 eV 0 fm 0 fm World initStep + 1 -99 mum -9.02 cm 1.81 cm 15.7 MeV 4.06 keV 1.28 mm 1.28 mm World eIoni + 2 -113 mum -10.3 cm 1.81 cm 145 MeV 4.86 keV 1.3 cm 1.43 cm World eIoni + 3 -118 mum -15.5 cm 1.81 cm 665 MeV 21.9 keV 5.2 cm 6.62 cm World eIoni + 4 -118 mum -20 cm 1.81 cm 1.11 GeV 21.8 keV 4.49 cm 11.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -118 mum -15.5 cm 1.81 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 -126 mum -15.5 cm 1.81 cm 1.98 MeV 3.3 keV 117 mum 117 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -113 mum -10.3 cm 1.81 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -120 mum -10.3 cm 1.81 cm 1.25 MeV 2.24 keV 67.5 mum 67.5 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -99 mum -9.02 cm 1.81 cm 11.3 keV 0 eV 0 fm 0 fm World initStep + 1 -48.7 mum -9.12 cm 1.8 cm 14.3 MeV 6.1 keV 1.14 mm 1.14 mm World eIoni + 2 -44.4 mum -16.6 cm 1.8 cm 763 MeV 26.3 keV 7.49 cm 7.61 cm World eIoni + 3 -45 mum -20 cm 1.8 cm 1.1 GeV 14.8 keV 3.39 cm 11 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -44.4 mum -16.6 cm 1.8 cm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 -33.8 mum -16.6 cm 1.8 cm 1.87 MeV 3.16 keV 109 mum 109 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -48.7 mum -9.12 cm 1.8 cm 8.34 keV 0 eV 0 fm 0 fm World initStep + 1 -38.8 mum -9.15 cm 1.8 cm 3.64 MeV 2.39 keV 293 mum 293 mum World eIoni + 2 -20.6 mum -16.1 cm 1.79 cm 696 MeV 19.6 keV 6.92 cm 6.95 cm World eIoni + 3 -21 mum -20 cm 1.79 cm 1.09 GeV 14.1 keV 3.93 cm 10.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 11 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -20.6 mum -16.1 cm 1.79 cm 3.39 keV 0 eV 0 fm 0 fm World initStep + 1 9.67 mum -16.1 cm 1.8 cm 5.49 MeV 6.78 keV 367 mum 367 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 11 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -38.8 mum -9.15 cm 1.8 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -41.6 mum -9.15 cm 1.8 cm 1.23 MeV 2.21 keV 66.3 mum 66.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.9 cm 1.71 cm 1.18 keV 0 eV 0 fm 0 fm World initStep + 1 -6.48 mum -6.91 cm 1.71 cm 1.32 MeV 2.36 keV 72.8 mum 72.8 mum World eIoni + +********************************************************************************************************* +* 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.91 cm 1.71 cm 741 MeV 29 keV 7.39 cm 7.39 cm World eIoni + 2 -6.61 nm -6.93 cm 1.71 cm 743 MeV 11.2 eV 269 mum 7.42 cm World eIoni + 3 641 nm -11.2 cm 1.94 cm 1.17 GeV 17.4 keV 4.32 cm 11.7 cm World eIoni + 4 2.85 mum -16.8 cm 2.14 cm 1.73 GeV 24.4 keV 5.53 cm 17.3 cm World eIoni + 5 4.26 mum -20 cm 2.22 cm 2.05 GeV 12.5 keV 3.22 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 2.85 mum -16.8 cm 2.14 cm 5.17 keV 0 eV 0 fm 0 fm World initStep + 1 -20.6 mum -16.8 cm 2.14 cm 10.8 MeV 10.3 keV 765 mum 765 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 641 nm -11.2 cm 1.94 cm 2.26 keV 0 eV 0 fm 0 fm World initStep + 1 -17.5 mum -11.3 cm 1.94 cm 2.99 MeV 4.51 keV 188 mum 188 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -6.61 nm -6.93 cm 1.71 cm 7.39 keV 0 eV 0 fm 0 fm World initStep + 1 -13.4 mum -6.96 cm 1.7 cm 4 MeV 1.19 keV 314 mum 314 mum World eIoni + 2 -3.94 mum -20 cm 1.7 cm 1.31 GeV 38.4 keV 13 cm 13.1 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.9 mum -14.2 cm 1.88 cm 1.93 keV 0 eV 0 fm 0 fm World initStep - 1 -5 mum -14.3 cm 1.88 cm 2.42 MeV 3.86 keV 148 mum 148 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.06 mum -10.2 cm 1.89 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 11.1 mum -10.2 cm 1.88 cm 1.59 MeV 2.76 keV 90.5 mum 90.5 mum World eIoni + 0 -13.4 mum -6.96 cm 1.7 cm 2.07 keV 0 eV 0 fm 0 fm World initStep + 1 -31.1 mum -6.98 cm 1.71 cm 2.66 MeV 4.14 keV 165 mum 165 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.43 cm 1.38 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 -8.41 mum -3.43 cm 1.38 cm 1.23 MeV 2.22 keV 66.8 mum 66.8 mum World eIoni + 0 0 fm -6.91 cm 1.71 cm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 6.77 mum -6.92 cm 1.7 cm 2.44 MeV 3.88 keV 149 mum 149 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3065,16 +3033,25 @@ 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.03 cm 1.46 cm 453 MeV 20.4 keV 4.51 cm 4.51 cm World eIoni - 2 -3.03 mum -20 cm 2.22 cm 2.05 GeV 64.4 keV 16 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -7.35 mm 7.81 mm 123 MeV 2.96 keV 1.13 cm 1.13 cm World eIoni + 2 -4.09 mum -11.1 cm 1.93 cm 1.16 GeV 43.8 keV 10.5 cm 11.6 cm World eIoni + 3 -7.22 mum -20 cm 2.22 cm 2.05 GeV 37.9 keV 8.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.09 mum -11.1 cm 1.93 cm 1.61 keV 0 eV 0 fm 0 fm World initStep + 1 7.86 mum -11.1 cm 1.93 cm 1.9 MeV 3.21 keV 112 mum 112 mum World eIoni ********************************************************************************************************* * 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 cm 1.46 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 6.14 mum -4.04 cm 1.46 cm 1.74 MeV 2.98 keV 101 mum 101 mum World eIoni + 0 0 fm -7.35 mm 7.81 mm 2.23 keV 0 eV 0 fm 0 fm World initStep + 1 7.4 mum -7.53 mm 7.79 mm 2.95 MeV 4.46 keV 184 mum 184 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3082,61 +3059,366 @@ 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.88 mm 4.23 mm 68.8 MeV 1.51 keV 4.74 mm 4.74 mm World eIoni - 2 2.89 mum -4.01 cm 1.45 cm 451 MeV 16.9 keV 4.01 cm 4.48 cm World eIoni - 3 3.41 mum -4.94 cm 1.55 cm 544 MeV 4.27 keV 9.38 mm 5.42 cm World eIoni - 4 10.4 mum -14.6 cm 2.06 cm 1.51 GeV 41.6 keV 9.66 cm 15.1 cm World eIoni - 5 11 mum -17.1 cm 2.14 cm 1.76 GeV 10.5 keV 2.49 cm 17.6 cm World eIoni - 6 10.9 mum -17.7 cm 2.16 cm 1.82 GeV 4.36 keV 6.06 mm 18.2 cm World eIoni - 7 10.5 mum -20 cm 2.21 cm 2.05 GeV 12 keV 2.32 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -8.82 cm 1.82 cm 932 MeV 38 keV 9.31 cm 9.31 cm World eIoni + 2 502 nm -11 cm 1.93 cm 1.15 GeV 9.89 keV 2.19 cm 11.5 cm World eIoni + 3 -417 nm -20 cm 2.22 cm 2.05 GeV 38.4 keV 9 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 10.9 mum -17.7 cm 2.16 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 20.1 mum -17.7 cm 2.16 cm 1.37 MeV 2.44 keV 76.1 mum 76.1 mum World eIoni + 0 502 nm -11 cm 1.93 cm 4.97 keV 0 eV 0 fm 0 fm World initStep + 1 36.5 mum -11.1 cm 1.93 cm 10.1 MeV 9.93 keV 711 mum 711 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.82 cm 1.82 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 -5.89 mum -8.82 cm 1.82 cm 1.21 MeV 2.18 keV 65.2 mum 65.2 mum World eIoni + +********************************************************************************************************* +* 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.65 cm 1.08 cm 215 MeV 6.58 keV 2.1 cm 2.1 cm World eIoni + 2 -1.37 mum -20 cm 2.22 cm 2.05 GeV 77.1 keV 18.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 -1.65 cm 1.08 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 1.74 mum -1.66 cm 1.08 cm 1.59 MeV 2.76 keV 90.4 mum 90.4 mum World eIoni + +********************************************************************************************************* +* 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.84 cm 1.82 cm 934 MeV 38.5 keV 9.33 cm 9.33 cm World eIoni + 2 118 nm -9.21 cm 1.84 cm 971 MeV 1.34 keV 3.67 mm 9.7 cm World eIoni + 3 -2.2 mum -20 cm 2.22 cm 2.05 GeV 46.3 keV 10.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 118 nm -9.21 cm 1.84 cm 3.73 keV 0 eV 0 fm 0 fm World initStep + 1 41.7 mum -9.25 cm 1.84 cm 6.41 MeV 7.47 keV 434 mum 434 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.84 cm 1.82 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -8.16 mum -8.85 cm 1.82 cm 1.37 MeV 2.44 keV 76 mum 76 mum World eIoni + +********************************************************************************************************* +* 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.53 cm 1.81 cm 903 MeV 35.1 keV 9.02 cm 9.02 cm World eIoni + 2 -3.29 mum -20 cm 2.22 cm 2.05 GeV 47.1 keV 11.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 -8.53 cm 1.81 cm 1.81 keV 0 eV 0 fm 0 fm World initStep + 1 14.1 mum -8.54 cm 1.81 cm 2.22 MeV 3.61 keV 134 mum 134 mum World eIoni + +********************************************************************************************************* +* 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.18 cm 1.84 cm 968 MeV 39.6 keV 9.68 cm 9.68 cm World eIoni + 2 -357 nm -20 cm 2.22 cm 2.05 GeV 46.6 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.18 cm 1.84 cm 1.67 keV 0 eV 0 fm 0 fm World initStep + 1 1.58 mum -9.2 cm 1.84 cm 2 MeV 3.34 keV 119 mum 119 mum World eIoni + +********************************************************************************************************* +* 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.5 cm 1.95 cm 1.2 GeV 47.8 keV 12 cm 12 cm World eIoni + 2 1.52 mum -20 cm 2.22 cm 2.05 GeV 37.4 keV 8.48 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.5 cm 1.95 cm 1.48 keV 0 eV 0 fm 0 fm World initStep + 1 -8.67 mum -11.5 cm 1.95 cm 1.73 MeV 2.97 keV 100 mum 100 mum World eIoni + +********************************************************************************************************* +* 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.2 cm 2.05 cm 1.47 GeV 54.3 keV 14.7 cm 14.7 cm World eIoni + 2 1.22 mum -19.9 cm 2.22 cm 2.04 GeV 23.2 keV 5.67 cm 20.4 cm World eIoni + 3 1.27 mum -20 cm 2.22 cm 2.05 GeV 664 eV 1.19 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 1.22 mum -19.9 cm 2.22 cm 2.83 keV 0 eV 0 fm 0 fm World initStep + 1 -26.2 mum -19.9 cm 2.22 cm 4.16 MeV 5.66 keV 271 mum 271 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -14.2 cm 2.05 cm 4.93 keV 0 eV 0 fm 0 fm World initStep + 1 -10.6 mum -14.2 cm 2.05 cm 1.96 MeV 1.1 keV 149 mum 149 mum World eIoni + 2 -40.1 mum -20 cm 2.05 cm 579 MeV 18.7 keV 5.77 cm 5.79 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.6 mum -14.2 cm 2.05 cm 8.82 keV 0 eV 0 fm 0 fm World initStep + 1 3.05 mum -14.3 cm 2.04 cm 9.28 MeV 3.72 keV 722 mum 722 mum World eBrem + 2 8.39 mum -20 cm 2.04 cm 580 MeV 21.6 keV 5.71 cm 5.78 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.05 mum -14.3 cm 2.04 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 16.4 mum -14.3 cm 2.05 cm 0 eV 403 eV 551 mum 551 mum World phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 16.4 mum -14.3 cm 2.05 cm 865 eV 0 eV 0 fm 0 fm World initStep + 1 17.2 mum -14.4 cm 2.05 cm 952 keV 1.73 keV 48.5 mum 48.5 mum World eIoni + +********************************************************************************************************* +* 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.84 mm 4.19 mm 68.4 MeV 821 eV 4.69 mm 4.69 mm World eIoni + 2 2.52 mum -1.06 cm 9.07 mm 156 MeV 3.17 keV 1.01 cm 1.48 cm World eIoni + 3 3.16 mum -2.2 cm 1.19 cm 270 MeV 3.13 keV 1.18 cm 2.66 cm World eIoni + 4 3.31 mum -2.53 cm 1.25 cm 303 MeV 1.01 keV 3.41 mm 3 cm World eIoni + 5 442 nm -20 cm 2.22 cm 2.05 GeV 72.9 keV 17.5 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.31 mum -2.53 cm 1.25 cm 1.46 keV 0 eV 0 fm 0 fm World initStep + 1 11.6 mum -2.54 cm 1.25 cm 1.7 MeV 2.92 keV 98.1 mum 98.1 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.16 mum -2.2 cm 1.19 cm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 2.62 mum -2.21 cm 1.19 cm 1.87 MeV 3.17 keV 110 mum 110 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.52 mum -1.06 cm 9.07 mm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 7.24 mum -1.07 cm 9.05 mm 1.86 MeV 3.16 keV 109 mum 109 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.84 mm 4.19 mm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 -9.81 mum -1.97 mm 4.2 mm 2.42 MeV 3.87 keV 148 mum 148 mum World eIoni + +********************************************************************************************************* +* 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.33 cm 1.73 cm 783 MeV 31 keV 7.82 cm 7.82 cm World eIoni + 2 -5.43 mum -20 cm 2.22 cm 2.05 GeV 51.8 keV 12.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 -7.33 cm 1.73 cm 4.31 keV 0 eV 0 fm 0 fm World initStep + 1 44 mum -7.38 cm 1.74 cm 8.04 MeV 8.61 keV 555 mum 555 mum World eIoni + +********************************************************************************************************* +* 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 55.4 keV 14.4 cm 14.4 cm World eIoni + 2 4.84 mum -20 cm 2.22 cm 2.05 GeV 24.7 keV 6.08 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 18.6 keV 0 eV 0 fm 0 fm World initStep + 1 -100 mum -14 cm 2.04 cm 12.1 MeV 4.17 keV 1.03 mm 1.03 mm World eIoni + 2 -132 mum -18.5 cm 2.04 cm 462 MeV 18.7 keV 4.5 cm 4.6 cm World eIoni + 3 -132 mum -20 cm 2.04 cm 610 MeV 6.56 keV 1.49 cm 6.08 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -132 mum -18.5 cm 2.04 cm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 -142 mum -18.5 cm 2.04 cm 1.52 MeV 2.67 keV 85.9 mum 85.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -100 mum -14 cm 2.04 cm 1.3 keV 0 eV 0 fm 0 fm World initStep + 1 -110 mum -14 cm 2.04 cm 1.47 MeV 2.6 keV 82.8 mum 82.8 mum World eIoni + +********************************************************************************************************* +* 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.17 cm 1.79 cm 867 MeV 33.9 keV 8.66 cm 8.66 cm World eIoni + 2 3.36 mum -18.8 cm 2.19 cm 1.93 GeV 44.3 keV 10.7 cm 19.3 cm World eIoni + 3 3.12 mum -20 cm 2.22 cm 2.05 GeV 4.88 keV 1.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 3.36 mum -18.8 cm 2.19 cm 7.7 keV 0 eV 0 fm 0 fm World initStep + 1 20.3 mum -18.8 cm 2.19 cm 1.1 MeV 315 eV 93.6 mum 93.6 mum World eIoni + 2 39.4 mum -20 cm 2.19 cm 116 MeV 4.52 keV 1.15 cm 1.16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 20.3 mum -18.8 cm 2.19 cm 8.64 keV 0 eV 0 fm 0 fm World initStep + 1 66.5 mum -19 cm 2.2 cm 20.6 MeV 11 keV 1.56 mm 1.56 mm World eIoni + 2 67.4 mum -19.7 cm 2.2 cm 88.7 MeV 2.56 keV 6.8 mm 8.37 mm World eIoni + 3 67.2 mum -20 cm 2.2 cm 121 MeV 638 eV 3.28 mm 1.16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 67.4 mum -19.7 cm 2.2 cm 3.08 keV 0 eV 0 fm 0 fm World initStep + 1 85.3 mum -19.7 cm 2.2 cm 4.74 MeV 6.15 keV 312 mum 312 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.17 cm 1.79 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -14.2 mum -8.18 cm 1.79 cm 2.09 MeV 3.44 keV 124 mum 124 mum World eIoni + +********************************************************************************************************* +* 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.9 mm 7.11 mm 109 MeV 4.46 keV 9.71 mm 9.71 mm World eIoni + 2 -16.6 mum -7.66 cm 1.76 cm 816 MeV 29.2 keV 7.18 cm 8.15 cm World eIoni + 3 -20.2 mum -13.5 cm 2.03 cm 1.4 GeV 23.5 keV 5.85 cm 14 cm World eIoni + 4 -22.6 mum -16.8 cm 2.14 cm 1.73 GeV 13.8 keV 3.3 cm 17.3 cm World eIoni + 5 -22.6 mum -16.9 cm 2.14 cm 1.74 GeV 180 eV 758 mum 17.4 cm World eIoni + 6 -25.6 mum -20 cm 2.22 cm 2.05 GeV 14.4 keV 3.12 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 11 mum -17.1 cm 2.14 cm 1.77 keV 0 eV 0 fm 0 fm World initStep - 1 25.6 mum -17.1 cm 2.14 cm 2.17 MeV 3.55 keV 130 mum 130 mum World eIoni + 0 -22.6 mum -16.9 cm 2.14 cm 3.76 keV 0 eV 0 fm 0 fm World initStep + 1 10.3 mum -16.9 cm 2.13 cm 6.47 MeV 7.52 keV 438 mum 438 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 10.4 mum -14.6 cm 2.06 cm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 19.2 mum -14.6 cm 2.06 cm 1.3 MeV 2.32 keV 71 mum 71 mum World eIoni + 0 -22.6 mum -16.8 cm 2.14 cm 995 eV 0 eV 0 fm 0 fm World initStep + 1 -15.5 mum -16.8 cm 2.14 cm 1.1 MeV 1.99 keV 57.9 mum 57.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.41 mum -4.94 cm 1.55 cm 2.51 keV 0 eV 0 fm 0 fm World initStep - 1 -15.7 mum -4.96 cm 1.55 cm 3.51 MeV 5.02 keV 224 mum 224 mum World eIoni + 0 -20.2 mum -13.5 cm 2.03 cm 2.71 keV 0 eV 0 fm 0 fm World initStep + 1 642 nm -13.5 cm 2.03 cm 3.9 MeV 5.42 keV 252 mum 252 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.89 mum -4.01 cm 1.45 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 -439 nm -4.01 cm 1.45 cm 1.23 MeV 2.21 keV 66.6 mum 66.6 mum World eIoni + 0 -16.6 mum -7.66 cm 1.76 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 -20.2 mum -7.67 cm 1.75 cm 1.58 MeV 2.76 keV 90.1 mum 90.1 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.88 mm 4.23 mm 1.37 keV 0 eV 0 fm 0 fm World initStep - 1 -4.17 mum -1.95 mm 4.24 mm 1.58 MeV 2.73 keV 89.1 mum 89.1 mum World eIoni + 0 0 fm -5.9 mm 7.11 mm 6.39 keV 0 eV 0 fm 0 fm World initStep + 1 96.1 mum -6.92 mm 7.13 mm 15.2 MeV 10.5 keV 1.1 mm 1.1 mm World eIoni + 2 90.2 mum -20 cm 7.13 mm 1.95 GeV 66.1 keV 19.3 cm 19.4 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3144,35 +3426,25 @@ 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.23 cm 9.61 mm 173 MeV 7.17 keV 1.66 cm 1.66 cm World eIoni - 2 5.24 mum -6.65 cm 1.69 cm 715 MeV 21.7 keV 5.48 cm 7.14 cm WorldTransportation - 3 5.24 mum -6.65 cm 1.69 cm 715 MeV 0 eV 0 fm 7.14 cm World eIoni - 4 3.72 mum -15.8 cm 2.1 cm 1.63 GeV 43.1 keV 9.16 cm 16.3 cm World eIoni - 5 3.78 mum -20 cm 2.22 cm 2.05 GeV 17.2 keV 4.2 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.72 mum -15.8 cm 2.1 cm 2.4 keV 0 eV 0 fm 0 fm World initStep - 1 -5.77 mum -15.8 cm 2.11 cm 3.28 MeV 4.8 keV 208 mum 208 mum World eIoni + 1 0 fm -6.09 cm 1.65 cm 659 MeV 25.9 keV 6.58 cm 6.58 cm World eIoni + 2 3.3 mum -16.5 cm 2.13 cm 1.7 GeV 44.5 keV 10.5 cm 17 cm World eIoni + 3 3.73 mum -20 cm 2.22 cm 2.05 GeV 12.3 keV 3.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 5.24 mum -6.65 cm 1.69 cm 2.98 keV 0 eV 0 fm 0 fm World initStep - 1 34.9 mum -6.68 cm 1.69 cm 4.52 MeV 5.96 keV 297 mum 297 mum World eIoni + 0 3.3 mum -16.5 cm 2.13 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 6.36 mum -16.6 cm 2.13 cm 1.3 MeV 2.32 keV 70.9 mum 70.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.23 cm 9.61 mm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 -10.3 mum -1.24 cm 9.61 mm 1.54 MeV 2.7 keV 87.4 mum 87.4 mum World eIoni + 0 0 fm -6.09 cm 1.65 cm 1.85 keV 0 eV 0 fm 0 fm World initStep + 1 -12.4 mum -6.1 cm 1.65 cm 2.28 MeV 3.69 keV 138 mum 138 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3180,7 +3452,16 @@ 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 81.3 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -11.5 cm 1.95 cm 1.2 GeV 45.2 keV 11.9 cm 11.9 cm World eIoni + 2 1.59 mum -20 cm 2.22 cm 2.05 GeV 35.5 keV 8.55 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.5 cm 1.95 cm 1.83 keV 0 eV 0 fm 0 fm World initStep + 1 -10.4 mum -11.5 cm 1.95 cm 2.25 MeV 3.66 keV 136 mum 136 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3188,283 +3469,20 @@ 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 -3.67 cm 1.42 cm 417 MeV 14.5 keV 4.15 cm 4.15 cm World eIoni - 2 -903 nm -5.22 cm 1.58 cm 572 MeV 3.38 keV 1.55 cm 5.7 cm World eIoni - 3 -932 nm -5.43 cm 1.59 cm 593 MeV 311 eV 2.16 mm 5.92 cm World eIoni - 4 1.39 mum -15 cm 2.08 cm 1.55 GeV 46.5 keV 9.54 cm 15.5 cm World eIoni - 5 1.7 mum -15.8 cm 2.1 cm 1.63 GeV 4.26 keV 8.26 mm 16.3 cm World eIoni - 6 1.89 mum -16.3 cm 2.12 cm 1.68 GeV 2.03 keV 5.21 mm 16.8 cm World eIoni - 7 2.88 mum -20 cm 2.22 cm 2.05 GeV 14.7 keV 3.7 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 1.89 mum -16.3 cm 2.12 cm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 4.76 mum -16.3 cm 2.12 cm 2.14 MeV 3.5 keV 128 mum 128 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.7 mum -15.8 cm 2.1 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 1.52 mum -15.8 cm 2.11 cm 1.34 MeV 2.38 keV 73.5 mum 73.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.39 mum -15 cm 2.08 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 -9.33 mum -15 cm 2.08 cm 1.73 MeV 2.97 keV 100 mum 100 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -932 nm -5.43 cm 1.59 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 -10.1 mum -5.44 cm 1.59 cm 1.55 MeV 2.7 keV 87.6 mum 87.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -903 nm -5.22 cm 1.58 cm 1.42 keV 0 eV 0 fm 0 fm World initStep - 1 -7.05 mum -5.23 cm 1.58 cm 1.64 MeV 2.83 keV 94 mum 94 mum World eIoni + 1 0 fm -16 cm 2.11 cm 1.65 GeV 64.2 keV 16.5 cm 16.5 cm World eIoni + 2 1.13 mum -20 cm 2.22 cm 2.05 GeV 12.1 keV 3.98 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.67 cm 1.42 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 7 mum -3.68 cm 1.42 cm 1.19 MeV 2.15 keV 64.1 mum 64.1 mum World eIoni - -********************************************************************************************************* -* 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.4 cm 1.01 cm 190 MeV 6.63 keV 1.83 cm 1.83 cm World eIoni - 2 728 nm -2.01 cm 1.15 cm 251 MeV 2.44 keV 6.25 mm 2.46 cm World eIoni - 3 10.6 mum -12.3 cm 1.98 cm 1.28 GeV 42.7 keV 10.3 cm 12.8 cm World eIoni - 4 12.6 mum -20 cm 2.22 cm 2.05 GeV 28.4 keV 7.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 10.6 mum -12.3 cm 1.98 cm 2.36 keV 0 eV 0 fm 0 fm World initStep - 1 18.6 mum -12.3 cm 1.98 cm 3.19 MeV 4.71 keV 202 mum 202 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 728 nm -2.01 cm 1.15 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 -8.67 mum -2.01 cm 1.15 cm 1.41 MeV 2.49 keV 78.4 mum 78.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.4 cm 1.01 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 -8.25 mum -1.41 cm 1.01 cm 1.91 MeV 3.21 keV 112 mum 112 mum World eIoni - -********************************************************************************************************* -* 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.44 cm 1.24 cm 294 MeV 13.7 keV 2.9 cm 2.9 cm World eIoni - 2 2.7 mum -13.1 cm 2.01 cm 1.36 GeV 45.1 keV 10.7 cm 13.5 cm World eIoni - 3 2.75 mum -20 cm 2.22 cm 2.05 GeV 30 keV 6.95 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.7 mum -13.1 cm 2.01 cm 4.11 keV 0 eV 0 fm 0 fm World initStep - 1 14.9 mum -13.1 cm 2.01 cm 7.45 MeV 8.21 keV 511 mum 511 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.44 cm 1.24 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -4.26 mum -2.44 cm 1.24 cm 1.15 MeV 2.06 keV 60.8 mum 60.8 mum World eIoni - -********************************************************************************************************* -* 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.4 cm 1.8 cm 890 MeV 31.6 keV 8.89 cm 8.89 cm World eIoni - 2 3.05 mum -20 cm 2.22 cm 2.05 GeV 56.8 keV 11.6 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.4 cm 1.8 cm 1.95 keV 0 eV 0 fm 0 fm World initStep - 1 -13.7 mum -8.41 cm 1.8 cm 2.47 MeV 3.91 keV 151 mum 151 mum World eIoni - -********************************************************************************************************* -* 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.12 cm 1.78 cm 862 MeV 32.8 keV 8.61 cm 8.61 cm World eIoni - 2 -1.01 mum -10 cm 1.88 cm 1.05 GeV 11.9 keV 1.88 cm 10.5 cm World eIoni - 3 -1.33 mum -11.3 cm 1.94 cm 1.18 GeV 6.42 keV 1.29 cm 11.8 cm World eIoni - 4 -1.68 mum -14.6 cm 2.07 cm 1.51 GeV 12.1 keV 3.32 cm 15.1 cm World eIoni - 5 -2.52 mum -20 cm 2.22 cm 2.05 GeV 25.8 keV 5.4 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.68 mum -14.6 cm 2.07 cm 2.76 keV 0 eV 0 fm 0 fm World initStep - 1 4.92 mum -14.6 cm 2.06 cm 4.01 MeV 5.52 keV 260 mum 260 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.33 mum -11.3 cm 1.94 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -5.01 mum -11.3 cm 1.94 cm 1.32 MeV 2.34 keV 72.2 mum 72.2 mum World eIoni - -********************************************************************************************************* -* 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 cm 1.88 cm 3.38 keV 0 eV 0 fm 0 fm World initStep - 1 -14.9 mum -10 cm 1.89 cm 5.46 MeV 6.75 keV 365 mum 365 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.12 cm 1.78 cm 2.59 keV 0 eV 0 fm 0 fm World initStep - 1 24.2 mum -8.14 cm 1.78 cm 3.66 MeV 5.17 keV 235 mum 235 mum World eIoni - -********************************************************************************************************* -* 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 27.4 keV 7.72 cm 7.72 cm World eIoni - 2 4.66 mum -14.3 cm 2.06 cm 1.48 GeV 31.8 keV 7.13 cm 14.8 cm World eIoni - 3 5.58 mum -20 cm 2.22 cm 2.05 GeV 22.2 keV 5.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 4.66 mum -14.3 cm 2.06 cm 2.13 keV 0 eV 0 fm 0 fm World initStep - 1 21.8 mum -14.4 cm 2.06 cm 2.77 MeV 4.25 keV 172 mum 172 mum World eIoni - -********************************************************************************************************* -* 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 5.09 keV 0 eV 0 fm 0 fm World initStep - 1 -66.7 mum -7.3 cm 1.73 cm 10.6 MeV 10.2 keV 745 mum 745 mum World eIoni - -********************************************************************************************************* -* 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 mm 6.61 mm 99.8 MeV 3.63 keV 8.67 mm 8.67 mm World eIoni - 2 12.3 mum -20 cm 2.22 cm 2.05 GeV 78.4 keV 19.6 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.98 mm 6.61 mm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 -12.5 mum -5.08 mm 6.61 mm 1.83 MeV 3.11 keV 107 mum 107 mum World eIoni - -********************************************************************************************************* -* 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 18.4 keV 5.12 cm 5.12 cm World eIoni - 2 2.7 mum -10.6 cm 1.91 cm 1.11 GeV 24.1 keV 5.97 cm 11.1 cm World eIoni - 3 1.09 mum -16.7 cm 2.13 cm 1.72 GeV 26.2 keV 6.13 cm 17.2 cm World eIoni - 4 241 nm -20 cm 2.22 cm 2.05 GeV 13.3 keV 3.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.09 mum -16.7 cm 2.13 cm 2.4 keV 0 eV 0 fm 0 fm World initStep - 1 6.74 mum -16.7 cm 2.13 cm 3.27 MeV 4.79 keV 207 mum 207 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.7 mum -10.6 cm 1.91 cm 11.9 keV 0 eV 0 fm 0 fm World initStep - 1 115 mum -10.8 cm 1.9 cm 25.5 MeV 12.1 keV 2.01 mm 2.01 mm World eIoni - 2 116 mum -11.4 cm 1.9 cm 85.5 MeV 1.66 keV 6 mm 8.01 mm World eIoni - 3 113 mum -20 cm 1.9 cm 947 MeV 34.1 keV 8.61 cm 9.41 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 116 mum -11.4 cm 1.9 cm 996 eV 0 eV 0 fm 0 fm World initStep - 1 123 mum -11.4 cm 1.9 cm 1.1 MeV 1.99 keV 58.1 mum 58.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 115 mum -10.8 cm 1.9 cm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 120 mum -10.8 cm 1.9 cm 1.92 MeV 3.22 keV 113 mum 113 mum World eIoni - -********************************************************************************************************* -* 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.43 keV 0 eV 0 fm 0 fm World initStep - 1 -10.4 mum -4.65 cm 1.52 cm 1.66 MeV 2.86 keV 95.2 mum 95.2 mum World eIoni + 0 0 fm -16 cm 2.11 cm 5.27 keV 0 eV 0 fm 0 fm World initStep + 1 -50.9 mum -16.1 cm 2.12 cm 11.2 MeV 10.5 keV 791 mum 791 mum World eIoni Run terminated. Run Summary Number of events processed : 100 - User=0.63s Real=0.97s Sys=0.33s + User=0.49s Real=1.75s Sys=0.73s 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 b25b078dc6..6afc2c96d7 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.2 2001/07/11 09:58:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02CalorimeterSD.hh b/examples/extended/field/field02/include/F02CalorimeterSD.hh index 8a877906d5..0db6bae465 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorConstruction.hh b/examples/extended/field/field02/include/F02DetectorConstruction.hh index b2fe7a6853..96688954a9 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.4 2001/10/25 09:30:13 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorMessenger.hh b/examples/extended/field/field02/include/F02DetectorMessenger.hh index 9aac1275ac..680fdf9eaa 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02ElectroMagneticField.hh b/examples/extended/field/field02/include/F02ElectroMagneticField.hh index 13132b7c9f..7780e4b018 100644 --- a/examples/extended/field/field02/include/F02ElectroMagneticField.hh +++ b/examples/extended/field/field02/include/F02ElectroMagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: F02ElectroMagneticField.hh,v 1.6 2001/12/04 17:53:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/field/field02/include/F02EventAction.hh b/examples/extended/field/field02/include/F02EventAction.hh index efc9497bdb..78f8292984 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02EventActionMessenger.hh b/examples/extended/field/field02/include/F02EventActionMessenger.hh index 2ee206dc51..9545e4d52e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02FieldMessenger.hh b/examples/extended/field/field02/include/F02FieldMessenger.hh index f9baee22ce..6922e1e1a9 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.2 2001/07/11 09:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02PhysicsList.hh b/examples/extended/field/field02/include/F02PhysicsList.hh index 59ba19cdf9..e5b99cfd62 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.2 2001/07/11 09:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef F02PhysicsList_h diff --git a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh index 04e98bee75..24e1771e45 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh index 92c07d871e..a6566f1135 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh index 71c536aff8..56c802504d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02RunAction.hh b/examples/extended/field/field02/include/F02RunAction.hh index 53f403252a..8506db5195 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.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02RunMessenger.hh b/examples/extended/field/field02/include/F02RunMessenger.hh index 0eb334b433..479e9563a1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02StepCut.hh b/examples/extended/field/field02/include/F02StepCut.hh index d26920d894..38e0c4db2a 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.3 2001/10/15 17:20:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingAction.hh b/examples/extended/field/field02/include/F02SteppingAction.hh index 2e7e91e1c1..d32ae0abe3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingMessenger.hh b/examples/extended/field/field02/include/F02SteppingMessenger.hh index 86553a6b4a..1c769c5f2a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/include/F02SteppingVerbose.hh b/examples/extended/field/field02/include/F02SteppingVerbose.hh index f3a0971c7a..4df56034d0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/include/F02VisManager.hh b/examples/extended/field/field02/include/F02VisManager.hh index b078057cae..15c230a629 100644 --- a/examples/extended/field/field02/include/F02VisManager.hh +++ b/examples/extended/field/field02/include/F02VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: F02VisManager.hh,v 1.2 2001/07/11 09:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02CalorHit.cc b/examples/extended/field/field02/src/F02CalorHit.cc index 3c20e8144f..212a230a3e 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.2 2001/07/11 09:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02CalorimeterSD.cc b/examples/extended/field/field02/src/F02CalorimeterSD.cc index f79eeac33c..4de27ea9ee 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.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorConstruction.cc b/examples/extended/field/field02/src/F02DetectorConstruction.cc index 55d23c448f..31636c581e 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.5 2001/10/26 13:42:45 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorMessenger.cc b/examples/extended/field/field02/src/F02DetectorMessenger.cc index ab1cd978ba..199030d196 100644 --- a/examples/extended/field/field02/src/F02DetectorMessenger.cc +++ b/examples/extended/field/field02/src/F02DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02DetectorMessenger.cc,v 1.3 2001/10/25 09:30:39 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02DetectorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,53 +50,53 @@ F02DetectorMessenger::F02DetectorMessenger(F02DetectorConstruction * F02Det) AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Lead"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); WorldMaterCmd = new G4UIcmdWithAString("/calor/setWorldMat",this); WorldMaterCmd->SetGuidance("Select Material of the World."); WorldMaterCmd->SetParameterName("wchoice",true); WorldMaterCmd->SetDefaultValue("Air"); - WorldMaterCmd->AvailableForStates(Idle); + WorldMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("SizeZ",false,false); AbsThickCmd->SetDefaultUnit("mm"); AbsThickCmd->SetRange("SizeZ>0."); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); AbsRadCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsRad",this); AbsRadCmd->SetGuidance("Set radius of the Absorber"); AbsRadCmd->SetParameterName("SizeR",false,false); AbsRadCmd->SetDefaultUnit("mm"); AbsRadCmd->SetRange("SizeR>0."); - AbsRadCmd->AvailableForStates(Idle); + AbsRadCmd->AvailableForStates(G4State_Idle); AbsZposCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsZpos",this); AbsZposCmd->SetGuidance("Set Z pos. of the Absorber"); AbsZposCmd->SetParameterName("Zpos",false,false); AbsZposCmd->SetDefaultUnit("mm"); - AbsZposCmd->AvailableForStates(Idle); + AbsZposCmd->AvailableForStates(G4State_Idle); WorldZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldZ",this); WorldZCmd->SetGuidance("Set Z size of the World"); WorldZCmd->SetParameterName("WSizeZ",false,false); WorldZCmd->SetDefaultUnit("mm"); WorldZCmd->SetRange("WSizeZ>0."); - WorldZCmd->AvailableForStates(Idle); + WorldZCmd->AvailableForStates(G4State_Idle); WorldRCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldR",this); WorldRCmd->SetGuidance("Set R size of the World"); WorldRCmd->SetParameterName("WSizeR",false,false); WorldRCmd->SetDefaultUnit("mm"); WorldRCmd->SetRange("WSizeR>0."); - WorldRCmd->AvailableForStates(Idle); + WorldRCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/field/field02/src/F02ElectroMagneticField.cc b/examples/extended/field/field02/src/F02ElectroMagneticField.cc index 5ba46508e2..eece0619d9 100644 --- a/examples/extended/field/field02/src/F02ElectroMagneticField.cc +++ b/examples/extended/field/field02/src/F02ElectroMagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: F02ElectroMagneticField.cc,v 1.5 2001/11/12 09:41:26 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // User Field class implementation. diff --git a/examples/extended/field/field02/src/F02EventAction.cc b/examples/extended/field/field02/src/F02EventAction.cc index f6f2a244e2..d6fc0b5398 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02EventActionMessenger.cc b/examples/extended/field/field02/src/F02EventActionMessenger.cc index eb19b09250..6421b17a95 100644 --- a/examples/extended/field/field02/src/F02EventActionMessenger.cc +++ b/examples/extended/field/field02/src/F02EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02EventActionMessenger.cc,v 1.3 2001/10/15 17:20:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02EventActionMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -53,13 +53,13 @@ F02EventActionMessenger::F02EventActionMessenger(F02EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02FieldMessenger.cc b/examples/extended/field/field02/src/F02FieldMessenger.cc index b4db4e7822..8684c2f2f2 100644 --- a/examples/extended/field/field02/src/F02FieldMessenger.cc +++ b/examples/extended/field/field02/src/F02FieldMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02FieldMessenger.cc,v 1.3 2001/10/15 17:20:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02FieldMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -47,34 +47,34 @@ F02FieldMessenger::F02FieldMessenger(F02ElectroMagneticField* pEMfield) StepperCmd->SetGuidance("Select stepper type for electric field"); StepperCmd->SetParameterName("choice",true); StepperCmd->SetDefaultValue(4); - StepperCmd->AvailableForStates(PreInit,Idle); + StepperCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/field/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/field/setFieldZ",this); MagFieldCmd->SetGuidance("Define magnetic field."); MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false,false); MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); MinStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this); MinStepCmd->SetGuidance("Define minimal step"); MinStepCmd->SetGuidance("Magnetic field will be in Z direction."); MinStepCmd->SetParameterName("min step",false,false); MinStepCmd->SetDefaultUnit("mm"); - MinStepCmd->AvailableForStates(Idle); + MinStepCmd->AvailableForStates(G4State_Idle); AbsMaterCmd = new G4UIcmdWithAString("/field/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Xe"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/field/field02/src/F02PhysicsList.cc b/examples/extended/field/field02/src/F02PhysicsList.cc index 1bd5db1cc3..6ad79e7f97 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.4 2001/10/25 09:30:53 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc index 12cd8afcaa..b503944211 100644 --- a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc +++ b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02PhysicsListMessenger.cc,v 1.3 2001/10/15 17:20:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02PhysicsListMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,35 +46,35 @@ F02PhysicsListMessenger::F02PhysicsListMessenger(F02PhysicsList * List) cutGCmd->SetParameterName("range",true); cutGCmd->SetDefaultValue(1.); cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(Idle); + cutGCmd->AvailableForStates(G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); cutECmd->SetParameterName("range",true); cutECmd->SetDefaultValue(1.); cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(Idle); + cutECmd->AvailableForStates(G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); cutPCmd->SetParameterName("range",true); cutPCmd->SetDefaultValue(1.); cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(Idle); + cutPCmd->AvailableForStates(G4State_Idle); eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); eCmd->SetParameterName("energy",true); eCmd->SetDefaultValue(10.); eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(Idle); + eCmd->AvailableForStates(G4State_Idle); rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); rCmd->SetGuidance("Display the RANGE of Electron for the current material."); rCmd->SetParameterName("energy",true); rCmd->SetDefaultValue(10.); rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(Idle); + rCmd->AvailableForStates(G4State_Idle); setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc index e2f8db3fb0..aa23dbc39c 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.3 2001/10/15 17:20:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc index ba5fc138d8..dbbdbf3e50 100644 --- a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02PrimaryGeneratorMessenger.cc,v 1.3 2001/10/15 17:20:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ F02PrimaryGeneratorMessenger::F02PrimaryGeneratorMessenger(F02PrimaryGeneratorAc RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("off"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); diff --git a/examples/extended/field/field02/src/F02RunAction.cc b/examples/extended/field/field02/src/F02RunAction.cc index 32aad5d1be..8e634e03ac 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.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02RunMessenger.cc b/examples/extended/field/field02/src/F02RunMessenger.cc index faf9ee9fbb..724fb9a886 100644 --- a/examples/extended/field/field02/src/F02RunMessenger.cc +++ b/examples/extended/field/field02/src/F02RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02RunMessenger.cc,v 1.3 2001/10/15 17:20:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -55,13 +55,13 @@ F02RunMessenger::F02RunMessenger(F02RunAction* RA) RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); RndmSaveCmd->SetParameterName("frequency",false); RndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); - RndmSaveCmd->AvailableForStates(PreInit,Idle); + RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); RndmReadCmd->SetGuidance("get rndm status from an external file."); RndmReadCmd->SetParameterName("fileName",true); RndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); - RndmReadCmd->AvailableForStates(PreInit,Idle); + RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02StepCut.cc b/examples/extended/field/field02/src/F02StepCut.cc index 44174b84f6..dc9aaa5cbf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "F02StepCut.hh" diff --git a/examples/extended/field/field02/src/F02SteppingAction.cc b/examples/extended/field/field02/src/F02SteppingAction.cc index a5e0675888..7f22cd57db 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.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field02/src/F02SteppingMessenger.cc b/examples/extended/field/field02/src/F02SteppingMessenger.cc index d9900f6645..a70050adc5 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.2 2001/07/11 09:58:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02SteppingVerbose.cc b/examples/extended/field/field02/src/F02SteppingVerbose.cc index 3f5ab0be30..8c2493c422 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.4 2001/10/15 17:20:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/src/F02VisManager.cc b/examples/extended/field/field02/src/F02VisManager.cc index 953e3e0fd3..94331a782b 100644 --- a/examples/extended/field/field02/src/F02VisManager.cc +++ b/examples/extended/field/field02/src/F02VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: F02VisManager.cc,v 1.3 2001/12/12 15:22:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F02VisManager.cc,v 1.4 2002/11/26 08:28:06 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void F02VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/field/field03/field03.cc b/examples/extended/field/field03/field03.cc index aa39201e8f..25a52c486c 100644 --- a/examples/extended/field/field03/field03.cc +++ b/examples/extended/field/field03/field03.cc @@ -22,7 +22,7 @@ // // // $Id: field03.cc,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 912e93bae5..3a6b4d637c 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called @@ -17,6 +17,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -129,7 +130,7 @@ hIoni: Knock-on electron cross sections . delta ray energy sampled from differential Xsection. PhysicsTables from 1 keV to 100 TeV in 100 bins. -total time(SetCuts)=15.84 s +total time(SetCuts)=16.25 s G4ClassicalRK4 (default) is called The minimal step is equal to 10 mm ============= The cut Energy ============================== @@ -170,13 +171,13 @@ Start Run processing. Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -186,13 +187,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -202,13 +203,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -218,13 +219,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -234,13 +235,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -250,13 +251,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -266,13 +267,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -282,13 +283,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -298,13 +299,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -314,13 +315,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -330,13 +331,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -346,13 +347,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -362,13 +363,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -378,13 +379,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -394,13 +395,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -410,13 +411,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -426,13 +427,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -442,13 +443,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -458,13 +459,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -474,13 +475,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -490,13 +491,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -506,13 +507,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -522,13 +523,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -538,13 +539,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -554,13 +555,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -570,13 +571,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -586,13 +587,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -602,13 +603,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -618,13 +619,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -634,13 +635,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -650,13 +651,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -666,13 +667,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -682,13 +683,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -698,13 +699,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -714,13 +715,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -730,13 +731,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -746,13 +747,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -762,13 +763,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -778,13 +779,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -794,13 +795,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -810,13 +811,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -826,13 +827,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -842,13 +843,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -858,13 +859,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -874,13 +875,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -890,13 +891,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -906,13 +907,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -922,13 +923,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -938,13 +939,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -954,13 +955,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -972,13 +973,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -988,13 +989,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1004,13 +1005,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1020,13 +1021,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1036,13 +1037,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1052,13 +1053,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1068,13 +1069,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1084,13 +1085,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1100,13 +1101,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1116,13 +1117,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1132,13 +1133,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1148,13 +1149,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1164,13 +1165,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1180,13 +1181,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1196,13 +1197,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1212,13 +1213,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1228,13 +1229,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1244,13 +1245,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1260,13 +1261,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1276,13 +1277,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1292,13 +1293,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1308,13 +1309,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1324,13 +1325,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1340,13 +1341,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1356,13 +1357,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1372,13 +1373,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1388,13 +1389,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1404,13 +1405,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1420,13 +1421,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1436,13 +1437,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1452,13 +1453,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1468,13 +1469,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1484,13 +1485,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1500,13 +1501,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1516,13 +1517,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1532,13 +1533,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1548,13 +1549,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1564,13 +1565,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1580,13 +1581,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1596,13 +1597,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1612,13 +1613,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1628,13 +1629,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1644,13 +1645,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1660,13 +1661,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1676,13 +1677,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1692,13 +1693,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1708,13 +1709,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1724,13 +1725,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1740,13 +1741,13 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum @@ -1756,19 +1757,19 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098873443 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028296654 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099691988 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032076741 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099680619 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053194071 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073953288 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum + 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098907549 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum + 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028308023 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum + 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099726094 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum + 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.003208811 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum + 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099714725 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum + 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.0005320544 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum + 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073987394 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum Run terminated. Run Summary Number of events processed : 100 - User=0.68s Real=0.93s Sys=0.25s + User=0.71s Real=2.65s Sys=0.2s 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 5853c748e8..e36f8e8ea9 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.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03CalorimeterSD.hh b/examples/extended/field/field03/include/F03CalorimeterSD.hh index bcf658b87d..a8b7efe7fc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorConstruction.hh b/examples/extended/field/field03/include/F03DetectorConstruction.hh index 7358afcb25..6c5851cfc7 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.4 2001/10/25 10:03:53 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorMessenger.hh b/examples/extended/field/field03/include/F03DetectorMessenger.hh index 9925c4f222..7a9581547b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03ElectroMagneticField.hh b/examples/extended/field/field03/include/F03ElectroMagneticField.hh index c00f0f8f8c..ab7b60c8a2 100644 --- a/examples/extended/field/field03/include/F03ElectroMagneticField.hh +++ b/examples/extended/field/field03/include/F03ElectroMagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: F03ElectroMagneticField.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/field/field03/include/F03EventAction.hh b/examples/extended/field/field03/include/F03EventAction.hh index c360685012..664a7f2a39 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03EventActionMessenger.hh b/examples/extended/field/field03/include/F03EventActionMessenger.hh index 8951a8823b..345e632086 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03FieldMessenger.hh b/examples/extended/field/field03/include/F03FieldMessenger.hh index 8d412864a7..3cc896e6e3 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.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03PhysicsList.hh b/examples/extended/field/field03/include/F03PhysicsList.hh index cb2783eed0..2d78d67056 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.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef F03PhysicsList_h diff --git a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh index 2785e700a8..2f331c4c8f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh index 1737091ff8..a308e0da72 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh index 09bf2773a6..b3e9ccbb76 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03RunAction.hh b/examples/extended/field/field03/include/F03RunAction.hh index fff088f62d..3b83db7ff5 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.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03RunMessenger.hh b/examples/extended/field/field03/include/F03RunMessenger.hh index c38f31c945..6ee711d3c0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03StepCut.hh b/examples/extended/field/field03/include/F03StepCut.hh index 9af39b54f4..e938a901e6 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.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingAction.hh b/examples/extended/field/field03/include/F03SteppingAction.hh index 299a4eb644..f75a24121a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingMessenger.hh b/examples/extended/field/field03/include/F03SteppingMessenger.hh index ec6e165a21..7bd77ddfb6 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/include/F03SteppingVerbose.hh b/examples/extended/field/field03/include/F03SteppingVerbose.hh index 340e7c3785..f626e4dc26 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field03/include/F03VisManager.hh b/examples/extended/field/field03/include/F03VisManager.hh index 0de212a516..928f92ec46 100644 --- a/examples/extended/field/field03/include/F03VisManager.hh +++ b/examples/extended/field/field03/include/F03VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: F03VisManager.hh,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03CalorHit.cc b/examples/extended/field/field03/src/F03CalorHit.cc index 5ada1132b7..7f5d09db2d 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.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03CalorimeterSD.cc b/examples/extended/field/field03/src/F03CalorimeterSD.cc index 245163a223..a88aa337ec 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.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorConstruction.cc b/examples/extended/field/field03/src/F03DetectorConstruction.cc index d33ef340a6..682774a3bc 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.5 2001/10/26 13:42:45 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorMessenger.cc b/examples/extended/field/field03/src/F03DetectorMessenger.cc index 99951ba95a..2a1bfaa5c7 100644 --- a/examples/extended/field/field03/src/F03DetectorMessenger.cc +++ b/examples/extended/field/field03/src/F03DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03DetectorMessenger.cc,v 1.3 2001/10/25 10:03:54 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03DetectorMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,53 +50,53 @@ F03DetectorMessenger::F03DetectorMessenger(F03DetectorConstruction * F03Det) AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Lead"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); WorldMaterCmd = new G4UIcmdWithAString("/calor/setWorldMat",this); WorldMaterCmd->SetGuidance("Select Material of the World."); WorldMaterCmd->SetParameterName("wchoice",true); WorldMaterCmd->SetDefaultValue("Air"); - WorldMaterCmd->AvailableForStates(Idle); + WorldMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("SizeZ",false,false); AbsThickCmd->SetDefaultUnit("mm"); AbsThickCmd->SetRange("SizeZ>0."); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); AbsRadCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsRad",this); AbsRadCmd->SetGuidance("Set radius of the Absorber"); AbsRadCmd->SetParameterName("SizeR",false,false); AbsRadCmd->SetDefaultUnit("mm"); AbsRadCmd->SetRange("SizeR>0."); - AbsRadCmd->AvailableForStates(Idle); + AbsRadCmd->AvailableForStates(G4State_Idle); AbsZposCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsZpos",this); AbsZposCmd->SetGuidance("Set Z pos. of the Absorber"); AbsZposCmd->SetParameterName("Zpos",false,false); AbsZposCmd->SetDefaultUnit("mm"); - AbsZposCmd->AvailableForStates(Idle); + AbsZposCmd->AvailableForStates(G4State_Idle); WorldZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldZ",this); WorldZCmd->SetGuidance("Set Z size of the World"); WorldZCmd->SetParameterName("WSizeZ",false,false); WorldZCmd->SetDefaultUnit("mm"); WorldZCmd->SetRange("WSizeZ>0."); - WorldZCmd->AvailableForStates(Idle); + WorldZCmd->AvailableForStates(G4State_Idle); WorldRCmd = new G4UIcmdWithADoubleAndUnit("/calor/setWorldR",this); WorldRCmd->SetGuidance("Set R size of the World"); WorldRCmd->SetParameterName("WSizeR",false,false); WorldRCmd->SetDefaultUnit("mm"); WorldRCmd->SetRange("WSizeR>0."); - WorldRCmd->AvailableForStates(Idle); + WorldRCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/field/field03/src/F03ElectroMagneticField.cc b/examples/extended/field/field03/src/F03ElectroMagneticField.cc index 6b8ba818a6..4c7ebcf400 100644 --- a/examples/extended/field/field03/src/F03ElectroMagneticField.cc +++ b/examples/extended/field/field03/src/F03ElectroMagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: F03ElectroMagneticField.cc,v 1.3 2001/10/15 17:20:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // User Field class implementation. diff --git a/examples/extended/field/field03/src/F03EventAction.cc b/examples/extended/field/field03/src/F03EventAction.cc index f33eded72c..948c45f14b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03EventActionMessenger.cc b/examples/extended/field/field03/src/F03EventActionMessenger.cc index 48fd73f93f..9d7ddd2ce0 100644 --- a/examples/extended/field/field03/src/F03EventActionMessenger.cc +++ b/examples/extended/field/field03/src/F03EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03EventActionMessenger.cc,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03EventActionMessenger.cc,v 1.3 2002/12/05 01:06:58 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -53,13 +53,13 @@ F03EventActionMessenger::F03EventActionMessenger(F03EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03FieldMessenger.cc b/examples/extended/field/field03/src/F03FieldMessenger.cc index 11c9edbaa2..3beedb10c3 100644 --- a/examples/extended/field/field03/src/F03FieldMessenger.cc +++ b/examples/extended/field/field03/src/F03FieldMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03FieldMessenger.cc,v 1.3 2001/10/15 17:20:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03FieldMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -47,34 +47,34 @@ F03FieldMessenger::F03FieldMessenger(F03ElectroMagneticField* pEMfield) StepperCmd->SetGuidance("Select stepper type for magnetic field"); StepperCmd->SetParameterName("choice",true); StepperCmd->SetDefaultValue(4); - StepperCmd->AvailableForStates(PreInit,Idle); + StepperCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/field/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/field/setFieldZ",this); MagFieldCmd->SetGuidance("Define magnetic field."); MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false,false); MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); MinStepCmd = new G4UIcmdWithADoubleAndUnit("/field/setMinStep",this); MinStepCmd->SetGuidance("Define minimal step"); MinStepCmd->SetGuidance("Magnetic field will be in Z direction."); MinStepCmd->SetParameterName("min step",false,false); MinStepCmd->SetDefaultUnit("mm"); - MinStepCmd->AvailableForStates(Idle); + MinStepCmd->AvailableForStates(G4State_Idle); AbsMaterCmd = new G4UIcmdWithAString("/field/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",true); AbsMaterCmd->SetDefaultValue("Xe"); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/field/field03/src/F03PhysicsList.cc b/examples/extended/field/field03/src/F03PhysicsList.cc index f79cab435f..b5c39702e6 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.4 2001/10/25 10:03:54 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc index 13be484fa7..542c8ea216 100644 --- a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc +++ b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03PhysicsListMessenger.cc,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03PhysicsListMessenger.cc,v 1.3 2002/12/05 01:06:58 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,35 +46,35 @@ F03PhysicsListMessenger::F03PhysicsListMessenger(F03PhysicsList * List) cutGCmd->SetParameterName("range",true); cutGCmd->SetDefaultValue(1.); cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(Idle); + cutGCmd->AvailableForStates(G4State_Idle); cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); cutECmd->SetParameterName("range",true); cutECmd->SetDefaultValue(1.); cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(Idle); + cutECmd->AvailableForStates(G4State_Idle); cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); cutPCmd->SetParameterName("range",true); cutPCmd->SetDefaultValue(1.); cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(Idle); + cutPCmd->AvailableForStates(G4State_Idle); eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); eCmd->SetParameterName("energy",true); eCmd->SetDefaultValue(10.); eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(Idle); + eCmd->AvailableForStates(G4State_Idle); rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); rCmd->SetGuidance("Display the RANGE of Electron for the current material."); rCmd->SetParameterName("energy",true); rCmd->SetDefaultValue(10.); rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(Idle); + rCmd->AvailableForStates(G4State_Idle); setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc index a8ae78fd54..ff5b8c5004 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.4 2001/11/07 14:34:43 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc index e93b53bbcf..6a582a0328 100644 --- a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03PrimaryGeneratorMessenger.cc,v 1.3 2001/10/15 17:20:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ F03PrimaryGeneratorMessenger::F03PrimaryGeneratorMessenger(F03PrimaryGeneratorAc RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("off"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); setxvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/xvertex",this); setxvertexCmd->SetGuidance(" Set x coord. of the primary vertex."); diff --git a/examples/extended/field/field03/src/F03RunAction.cc b/examples/extended/field/field03/src/F03RunAction.cc index 374678605d..b93be8c120 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.5 2001/11/07 16:36:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "F03RunAction.hh" diff --git a/examples/extended/field/field03/src/F03RunMessenger.cc b/examples/extended/field/field03/src/F03RunMessenger.cc index 7b7d5f099f..0b38164229 100644 --- a/examples/extended/field/field03/src/F03RunMessenger.cc +++ b/examples/extended/field/field03/src/F03RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03RunMessenger.cc,v 1.3 2001/10/15 17:20:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03RunMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -55,13 +55,13 @@ F03RunMessenger::F03RunMessenger(F03RunAction* RA) RndmSaveCmd->SetGuidance("freq = 2 saved on: endOfEvent.rndm"); RndmSaveCmd->SetParameterName("frequency",false); RndmSaveCmd->SetRange("frequency>=0 && frequency<=2"); - RndmSaveCmd->AvailableForStates(PreInit,Idle); + RndmSaveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RndmReadCmd = new G4UIcmdWithAString("/rndm/read",this); RndmReadCmd->SetGuidance("get rndm status from an external file."); RndmReadCmd->SetParameterName("fileName",true); RndmReadCmd->SetDefaultValue ("beginOfRun.rndm"); - RndmReadCmd->AvailableForStates(PreInit,Idle); + RndmReadCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03StepCut.cc b/examples/extended/field/field03/src/F03StepCut.cc index f3caf54199..4c319da27b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "F03StepCut.hh" diff --git a/examples/extended/field/field03/src/F03SteppingAction.cc b/examples/extended/field/field03/src/F03SteppingAction.cc index ecbc4b5c02..c7cfe292f5 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.4 2001/11/07 16:36:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/field/field03/src/F03SteppingMessenger.cc b/examples/extended/field/field03/src/F03SteppingMessenger.cc index a71e23bec5..465200a6e7 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.3 2001/10/15 17:20:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03SteppingVerbose.cc b/examples/extended/field/field03/src/F03SteppingVerbose.cc index e44128a0f0..8fe9046b6d 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.3 2001/10/15 17:20:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 index 4f0f69c79f..e63372de6f 100644 --- a/examples/extended/field/field03/src/F03VisManager.cc +++ b/examples/extended/field/field03/src/F03VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: F03VisManager.cc,v 1.3 2001/12/12 15:22:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: F03VisManager.cc,v 1.4 2002/11/26 08:28:06 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void F03VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.cc b/examples/extended/g3tog4/clGeometry/clGeometry.cc index 82091304bd..45ed64089e 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.cc +++ b/examples/extended/g3tog4/clGeometry/clGeometry.cc @@ -22,7 +22,7 @@ // // // $Id: clGeometry.cc,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index a551c13242..393d5d481f 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -1,9 +1,9 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** -Instantiated G3toG4DetectorConstruction using call list file "/afs/cern.ch/sw/geant4/stt/dev1/src/geant4/examples/extended/g3tog4/data/testmodel.dat" +Instantiated G3toG4DetectorConstruction using call list file "/afs/cern.ch/sw/geant4/stt/dev2/src/geant4/examples/extended/g3tog4/data/testmodel.dat" G4VUserPhysicsList::SetVerboseLevel : Verbose level is set to 2 Visualization Manager instantiating... Visualization Manager initialising... @@ -15,6 +15,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -23,7 +24,7 @@ Current available graphics systems are: /tracking/storeTrajectory 1 /run/initialize Instantiated unit rotation matrix irot=0 -Reading the call List file /afs/cern.ch/sw/geant4/stt/dev1/src/geant4/examples/extended/g3tog4/data/testmodel.dat... +Reading the call List file /afs/cern.ch/sw/geant4/stt/dev2/src/geant4/examples/extended/g3tog4/data/testmodel.dat... G4ggclos: setting top-level VolTableEntry Dump of VTD - 26 entries: Instantiated 26 volume table entries @@ -59,9 +60,13 @@ G3toG4 top level volume is HALL Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1) linestyle: solid, line width: 1 drawing style unforced + vector pointer is zero + vector pointer is zero Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1) linestyle: solid, line width: 1 drawing style unforced + vector pointer is zero + vector pointer is zero G4VUserPhysicsList::Construct() Construct particles Construct processes @@ -188,7 +193,7 @@ Cut in energy AIR 990 eV 990 eV VACUUM 990 eV 990 eV =================================================== -/control/execute /afs/cern.ch/sw/geant4/stt/dev1/src/geant4/tests/test601/test601.in +/control/execute /afs/cern.ch/sw/geant4/stt/dev2/src/geant4/tests/test601/test601.in /gun/position 0. -1.5 0. mm /gun/direction 0. 1. 0. /gun/energy 1 GeV @@ -210,7 +215,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.01s Sys=0s + User=0s Real=0s Sys=0s /gun/particle mu+ /run/beamOn 1 ### Run 1 start. @@ -267,7 +272,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0s Sys=0s + User=0s Real=0.01s Sys=0.01s /gun/position 0. 1.5 0. mm /gun/direction 1. 0. 0. /gun/energy 1 GeV @@ -346,7 +351,7 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0s Sys=0s + User=0s Real=0.01s Sys=0.01s Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh index f059ab7c9f..bbea6821d5 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.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #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 5b3159441d..4d0c04471a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh index 88d171b926..095b5335c3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh index a5ecaeeac3..1b35e20328 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh index b94c2071f0..bd73889f25 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh index 5e88f97015..2bfcda0886 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh index 65cd600909..4e720e33d7 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4VisManager.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc index 21ed19aa68..17079b9886 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.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //-------------------------------------------------------------------------- // 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 2060eb5bd9..06ae594a04 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.3 2001/10/23 13:32:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc index 553c3b7c7f..6ea0117e47 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4EventActionMessenger.cc,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G3toG4EventActionMessenger.cc,v 1.3 2002/12/05 01:06:59 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ G3toG4EventActionMessenger::G3toG4EventActionMessenger(G3toG4EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc index 4c0d402bf1..8e2b12d63d 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.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc index 5a9d345ef8..986371af65 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.3 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc index dcfefe70bf..2d4c1a9660 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.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc index 92082aeea1..00e1637c52 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G3toG4VisManager.cc,v 1.4 2001/11/15 13:09:39 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G3toG4VisManager.cc,v 1.5 2002/11/26 08:28:06 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -42,6 +42,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -98,6 +99,7 @@ void G3toG4VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/g3tog4/cltog4/cltog4.cc b/examples/extended/g3tog4/cltog4/cltog4.cc index 9fd5e06f0e..3d9a2baf53 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.cc +++ b/examples/extended/g3tog4/cltog4/cltog4.cc @@ -22,7 +22,7 @@ // // // $Id: cltog4.cc,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/cltog4.out b/examples/extended/g3tog4/cltog4/cltog4.out index 8df74c2462..f294bca512 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.out +++ b/examples/extended/g3tog4/cltog4/cltog4.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Instantiated G3toG4DetectorConstruction using call list file "/afs/cern.ch/sw/geant4/stt/dev2/src/geant4/examples/extended/g3tog4/data/testmodel.dat" @@ -45,9 +45,13 @@ G3toG4 top level volume is HALL Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1) linestyle: solid, line width: 1 drawing style unforced + vector pointer is zero + vector pointer is zero Top-level G3toG4 logical volume HALL G4VisAttributes: invisible, daughters visible, colour: (1,1,1,1) linestyle: solid, line width: 1 drawing style unforced + vector pointer is zero + vector pointer is zero phot: Total cross sections from Sandia parametrisation. G3toG4PhysicsList::SetCuts:CutLength : 2 mm @@ -247,5 +251,5 @@ Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolu Run terminated. Run Summary Number of events processed : 10 - User=0s Real=0.03s Sys=0.03s + User=0.01s Real=0.02s Sys=0.01s G4 kernel has come to Quit state. diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh index 568214bdbc..4911e6155b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #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 bfa16ae13d..aa89f77ef7 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh index 14b925762e..4b6011bfc1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh index f9a07cde35..85d8de38e3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh index 48314c65b2..d7fab13bbc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh index 04be0d74bf..887824c0ce 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh b/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh index 55d008bc0e..ea4f5d9fa9 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4VisManager.hh,v 1.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc index a823638f79..65276a9965 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.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //-------------------------------------------------------------------------- // 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 6b972a04e4..721d65a8e2 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.3 2001/10/23 13:32:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc index 2a8b59ae53..6ea0117e47 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4EventActionMessenger.cc,v 1.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G3toG4EventActionMessenger.cc,v 1.3 2002/12/05 01:06:59 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ G3toG4EventActionMessenger::G3toG4EventActionMessenger(G3toG4EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc index c53bd3e292..19a2d5eb3f 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.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc index 5af18001b6..debecc4b38 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.3 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc index 628916fef2..68d18b7e9c 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.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc index 562a5f1a03..f8ea0dd5ef 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G3toG4VisManager.cc,v 1.4 2001/11/15 13:09:41 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G3toG4VisManager.cc,v 1.5 2002/11/26 08:28:07 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -42,6 +42,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -98,6 +99,7 @@ void G3toG4VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/gdml/N03gdml/NO3gogdml.cc b/examples/extended/gdml/N03gdml/NO3gogdml.cc index d2839dd7b5..af4b0991df 100644 --- a/examples/extended/gdml/N03gdml/NO3gogdml.cc +++ b/examples/extended/gdml/N03gdml/NO3gogdml.cc @@ -22,7 +22,7 @@ // // // $Id: NO3gogdml.cc,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/N03gdml/exampleN03.out b/examples/extended/gdml/N03gdml/exampleN03.out index 7da3de035d..17f06fd21b 100644 --- a/examples/extended/gdml/N03gdml/exampleN03.out +++ b/examples/extended/gdml/N03gdml/exampleN03.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ + Geant4 version $Name: geant4-05-00 $ (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh b/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh index b5b16ca630..8a49591ee8 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorHit.hh,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh b/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh index 9d7f2277fa..58e4510eca 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorimeterSD.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh b/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh index ef50ee396c..0b65b54c0e 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh index e2209d9a70..31a1b69365 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh b/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh index c3d4db1d88..8ed2a567ef 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh index 0b9c013df9..c94e97a171 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh b/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh index f1b56e17c9..55bea2ba7c 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh index 3d8a13a1fc..abc6299682 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh index c71cd3b974..4509387833 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh b/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh index cbed578242..23d84353bb 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh b/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh index c8a94432ee..5ab58ef44b 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh b/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh index e9d2e1974d..93abca0abf 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh b/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh index 323f0d0cc8..f23935b5c1 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03VisManager.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc b/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc index 290e884def..8747048c68 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorHit.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc b/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc index e3f99c0137..e0d32a4a98 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorimeterSD.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc b/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc index 6e7d0e0dd4..d7cd44d67a 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.cc,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc index b2859d6167..138f8d713f 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorMessenger.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03DetectorMessenger.cc,v 1.2 2002/12/05 01:06:59 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,21 +50,21 @@ ExN03DetectorMessenger::ExN03DetectorMessenger( GDMLFile = new G4UIcmdWithAString("/gdml/input",this); GDMLFile->SetGuidance("Select GDML input"); GDMLFile->SetParameterName("file",false); - GDMLFile->AvailableForStates(Idle); + GDMLFile->AvailableForStates(G4State_Idle); GDMLSetup = new G4UIcmdWithAString("/gdml/setup",this); GDMLSetup->SetGuidance("Select geometry setup in GDML input"); GDMLSetup->SetGuidance("If none is specified the GDML processor will choose the first found"); GDMLSetup->SetParameterName("id",true); GDMLSetup->SetDefaultValue( "default" ); - GDMLSetup->AvailableForStates(Idle); + GDMLSetup->AvailableForStates(G4State_Idle); GDMLVersion = new G4UIcmdWithAString("/gdml/version",this); GDMLVersion->SetGuidance("Select a particular version of a given geometry setup in GDML input"); GDMLVersion->SetGuidance("If none is specified the GDML processor will choose the first found"); GDMLVersion->SetParameterName("id",false); GDMLVersion->SetDefaultValue( "default" ); - GDMLVersion->AvailableForStates(Idle); + GDMLVersion->AvailableForStates(G4State_Idle); ExN03detDir = new G4UIdirectory("/calor/"); ExN03detDir->SetGuidance("ExN03 detector control."); @@ -72,52 +72,52 @@ ExN03DetectorMessenger::ExN03DetectorMessenger( AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",false); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); GapMaterCmd = new G4UIcmdWithAString("/calor/setGapMat",this); GapMaterCmd->SetGuidance("Select Material of the Gap."); GapMaterCmd->SetParameterName("choice",false); - GapMaterCmd->AvailableForStates(Idle); + GapMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("Size",false); AbsThickCmd->SetRange("Size>=0."); AbsThickCmd->SetUnitCategory("Length"); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); GapThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setGapThick",this); GapThickCmd->SetGuidance("Set Thickness of the Gap"); GapThickCmd->SetParameterName("Size",false); GapThickCmd->SetRange("Size>=0."); GapThickCmd->SetUnitCategory("Length"); - GapThickCmd->AvailableForStates(Idle); + GapThickCmd->AvailableForStates(G4State_Idle); SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeYZ",this); SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); SizeYZCmd->SetParameterName("Size",false); SizeYZCmd->SetRange("Size>0."); SizeYZCmd->SetUnitCategory("Length"); - SizeYZCmd->AvailableForStates(Idle); + SizeYZCmd->AvailableForStates(G4State_Idle); NbLayersCmd = new G4UIcmdWithAnInteger("/calor/setNbOfLayers",this); NbLayersCmd->SetGuidance("Set number of layers."); NbLayersCmd->SetParameterName("NbLayers",false); NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); - NbLayersCmd->AvailableForStates(Idle); + NbLayersCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/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(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc b/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc index d1d21f77c2..73db084304 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc index 1af36bcfbd..1848280905 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventActionMessenger.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03EventActionMessenger.cc,v 1.2 2002/12/05 01:06:59 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -47,13 +47,13 @@ ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged neutral all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc b/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc index a673375013..f80dbf9198 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc index 131079001a..10fb464e68 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.cc,v 1.2 2002/06/03 09:59:37 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc index 1df2804242..3ebecccbdb 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.2 2002/12/05 01:06:59 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ ExN03PrimaryGeneratorMessenger::ExN03PrimaryGeneratorMessenger( RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("on"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc b/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc index 5deff1373f..5030f6aa90 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc b/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc index 58e498774d..7579984cb2 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc b/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc index b9d5c0eaed..e4c1362288 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc b/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc index 7ca393b49c..0901d24b76 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03VisManager.cc,v 1.2 2002/11/26 08:28:07 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void ExN03VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/gdml/libgdml/libgdml.gmk b/examples/extended/gdml/libgdml/libgdml.gmk index 7cf9747db3..e2e05a2544 100644 --- a/examples/extended/gdml/libgdml/libgdml.gmk +++ b/examples/extended/gdml/libgdml/libgdml.gmk @@ -1,4 +1,4 @@ -# $Id: libgdml.gmk,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# $Id: libgdml.gmk,v 1.2 2002/08/19 07:32:10 radoone Exp $ # ---------------------------------------------------------------- # GNUmakefile settings for GDML libraries. Radovan Chytracek, 30/05/2002. # ---------------------------------------------------------------- @@ -7,6 +7,9 @@ ifndef G4INSTALL G4INSTALL = ../../../.. endif +# This causes the libraries will go into G4WORKDIR area +#G4EXLIB := true + GDMLINSTALL := $(G4INSTALL)/examples/extended/gdml GDMLLIBROOT := $(GDMLINSTALL)/libgdml @@ -20,10 +23,10 @@ CPPFLAGS += \ EXTRALIBS += \ -lGDMLsaxana \ - -lGDMLmanagement \ -lGDMLschema \ -lGDMLprocesses \ -lGDMLsubscribers \ + -lGDMLmanagement \ -L $(XERCESCROOT)/lib -lxerces-c EXTRALIBSSOURCEDIRS += \ diff --git a/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh b/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh index abbd2df412..27b4d67163 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLDefineTable.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh b/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh index 418640d2ec..1bd6d952a8 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLExpressionEvaluator.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh b/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh index f1edf5c05b..3793acdb3f 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLLinkResolver.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh b/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh index 1624dcbec2..948d4b9938 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GDMLProcessor.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GDMLProcessor.hh,v 1.3 2002/08/19 07:35:16 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -33,6 +33,8 @@ #ifndef GDML_PROCESSOR_H #define GDML_PROCESSOR_H 1 +#include "globals.hh" + #include "G4ThreeVector.hh" #include "G4RotationMatrix.hh" @@ -51,6 +53,10 @@ #include "G4BooleanSolid.hh" #include "G4CSGSolid.hh" +// Workaround for SUN linker +extern const double defaultTemp; +extern const double defaultPress; + class GDMLProcessor { public: diff --git a/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc b/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc index 5880414796..804898661a 100644 --- a/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc +++ b/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc @@ -22,7 +22,7 @@ // // // $Id: GDMLExpressionEvaluator.cc,v 1.3 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc b/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc index 7dbb0afafb..fcbeb57c2a 100644 --- a/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc +++ b/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GDMLLinkResolver.cc,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GDMLLinkResolver.cc,v 1.3 2002/07/24 17:48:42 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -97,7 +97,7 @@ StatusCode GDMLLinkResolver::Run() std::cerr << "\nAn error occured: '" << xmlfile << "'\n" << "Exception message is: \n" << msg - << "\n" << endl; + << "\n" << std::endl; if( msg != 0 ) { delete [] msg; diff --git a/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc b/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc index 028874506c..1dc7c603f8 100644 --- a/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc +++ b/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GDMLProcessor.cc,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: GDMLProcessor.cc,v 1.3 2002/08/19 07:35:50 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -36,6 +36,8 @@ extern "C" void GDMLProcessLibLoad(); extern "C" void GDMLSubscriberLibLoad(); +const double defaultTemp = STP_Temperature; +const double defaultPress = STP_Pressure; static GDMLProcessor* sProcessor = 0; diff --git a/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh index 250acacfc5..8af190890e 100644 --- a/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: BooleanSolidTypeProcess.hh,v 1.3 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh index 56e257f3bf..64b14f72b1 100644 --- a/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialTypeProcess.hh,v 1.3 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh index 89a21f1580..5cd044dc9e 100644 --- a/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: QuantityTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh index 7996e53d12..39b1e2df0d 100644 --- a/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: ReferenceTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh index 52920bca7d..e06ad5387e 100644 --- a/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: SinglePlacementTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh index ea02d0c04f..3ccea6c005 100644 --- a/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: SolidTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/DProcess.cc b/examples/extended/gdml/libgdml/processes/src/DProcess.cc index 38043be521..830a7eac98 100644 --- a/examples/extended/gdml/libgdml/processes/src/DProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/DProcess.cc @@ -22,7 +22,7 @@ // // // $Id: DProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc index 6efd890f2b..4bac59ea2a 100644 --- a/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: DrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc b/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc index 8d4e469dd5..a080653570 100644 --- a/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc +++ b/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc @@ -22,7 +22,7 @@ // // // $Id: LibLoadProcesses.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/PProcess.cc b/examples/extended/gdml/libgdml/processes/src/PProcess.cc index a2082ba991..bc6b50f97d 100644 --- a/examples/extended/gdml/libgdml/processes/src/PProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/PProcess.cc @@ -22,7 +22,7 @@ // // // $Id: PProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc index 6c88f7f024..9c4081311f 100644 --- a/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: PrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/TProcess.cc b/examples/extended/gdml/libgdml/processes/src/TProcess.cc index b1bf60fc9e..354abeaee2 100644 --- a/examples/extended/gdml/libgdml/processes/src/TProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/TProcess.cc @@ -22,7 +22,7 @@ // // // $Id: TProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc index 2bdc196096..1e85260c10 100644 --- a/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: TrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc b/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc index 7be8443422..d5713c509f 100644 --- a/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc @@ -22,7 +22,7 @@ // // // $Id: assemblyProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/atomProcess.cc b/examples/extended/gdml/libgdml/processes/src/atomProcess.cc index e43bfe9021..03d4ea2a6b 100644 --- a/examples/extended/gdml/libgdml/processes/src/atomProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/atomProcess.cc @@ -22,7 +22,7 @@ // // // $Id: atomProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/boxProces.cc b/examples/extended/gdml/libgdml/processes/src/boxProces.cc index 572b46ea74..04659b3e2e 100644 --- a/examples/extended/gdml/libgdml/processes/src/boxProces.cc +++ b/examples/extended/gdml/libgdml/processes/src/boxProces.cc @@ -22,7 +22,7 @@ // // // $Id: boxProces.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/childProcess.cc b/examples/extended/gdml/libgdml/processes/src/childProcess.cc index 22a312ce8f..e13f3aa588 100644 --- a/examples/extended/gdml/libgdml/processes/src/childProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/childProcess.cc @@ -22,7 +22,7 @@ // // // $Id: childProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc b/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc index b7c6032207..6ed91bb0a8 100644 --- a/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc @@ -22,7 +22,7 @@ // // // $Id: compositeProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/coneProcess.cc b/examples/extended/gdml/libgdml/processes/src/coneProcess.cc index 1c4afe3e80..6c707887fa 100644 --- a/examples/extended/gdml/libgdml/processes/src/coneProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/coneProcess.cc @@ -22,7 +22,7 @@ // // // $Id: coneProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/constantProcess.cc b/examples/extended/gdml/libgdml/processes/src/constantProcess.cc index f5156f959c..e798159a68 100644 --- a/examples/extended/gdml/libgdml/processes/src/constantProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/constantProcess.cc @@ -22,7 +22,7 @@ // // // $Id: constantProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/defineProcess.cc b/examples/extended/gdml/libgdml/processes/src/defineProcess.cc index 6b9a695077..30560c6825 100644 --- a/examples/extended/gdml/libgdml/processes/src/defineProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/defineProcess.cc @@ -22,7 +22,7 @@ // // // $Id: defineProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/elementProcess.cc b/examples/extended/gdml/libgdml/processes/src/elementProcess.cc index 84f6f00eb3..1af68b2801 100644 --- a/examples/extended/gdml/libgdml/processes/src/elementProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/elementProcess.cc @@ -22,7 +22,7 @@ // // // $Id: elementProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc b/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc index 3e5c6a52be..ac27fd9d30 100644 --- a/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: expressionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/firstProcess.cc b/examples/extended/gdml/libgdml/processes/src/firstProcess.cc index 0af517857c..552ec4cbe4 100644 --- a/examples/extended/gdml/libgdml/processes/src/firstProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/firstProcess.cc @@ -22,7 +22,7 @@ // // // $Id: firstProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc b/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc index 27e3b12eef..a96aed8853 100644 --- a/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: fractionProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc b/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc index d8a9147019..dd407be432 100644 --- a/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: intersectionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc b/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc index 98dc658e4e..a01566db4f 100644 --- a/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc @@ -22,7 +22,7 @@ // // // $Id: isotopeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/materialProcess.cc b/examples/extended/gdml/libgdml/processes/src/materialProcess.cc index b6028f246e..63e6763dd9 100644 --- a/examples/extended/gdml/libgdml/processes/src/materialProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/materialProcess.cc @@ -22,7 +22,7 @@ // // // $Id: materialProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc index 6c54336235..63cdef4146 100644 --- a/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: materialrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/paraProcess.cc b/examples/extended/gdml/libgdml/processes/src/paraProcess.cc index 30ddadd0f0..e6cb2a5953 100644 --- a/examples/extended/gdml/libgdml/processes/src/paraProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/paraProcess.cc @@ -22,7 +22,7 @@ // // // $Id: paraProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/positionProcess.cc b/examples/extended/gdml/libgdml/processes/src/positionProcess.cc index 907e3dd2c4..312800bb9f 100644 --- a/examples/extended/gdml/libgdml/processes/src/positionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/positionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: positionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc index 2edf39305a..ea617495ea 100644 --- a/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: positionrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc b/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc index db54ab513c..c103ea390c 100644 --- a/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc @@ -22,7 +22,7 @@ // // // $Id: quantityProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc b/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc index 7cb73e3238..1f4016242d 100644 --- a/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc @@ -22,7 +22,7 @@ // // // $Id: rotationProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc index 4c9702231f..fabd8bb8aa 100644 --- a/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: rotationrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/secondProcess.cc b/examples/extended/gdml/libgdml/processes/src/secondProcess.cc index 6333caad08..e6a6b8e8ff 100644 --- a/examples/extended/gdml/libgdml/processes/src/secondProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/secondProcess.cc @@ -22,7 +22,7 @@ // // // $Id: secondProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/setupProcess.cc b/examples/extended/gdml/libgdml/processes/src/setupProcess.cc index 099f4e9fbf..661fff128d 100644 --- a/examples/extended/gdml/libgdml/processes/src/setupProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/setupProcess.cc @@ -22,7 +22,7 @@ // // // $Id: setupProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc index 39a18c32d2..2b1aa90a54 100644 --- a/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: solidrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc b/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc index 756e473ffe..b95a3986e6 100644 --- a/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc @@ -22,7 +22,7 @@ // // // $Id: sphereProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc b/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc index fd59e8e22b..ec90f6f305 100644 --- a/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: subtractionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/trapProcess.cc b/examples/extended/gdml/libgdml/processes/src/trapProcess.cc index 928c33c91b..908c168b7e 100644 --- a/examples/extended/gdml/libgdml/processes/src/trapProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/trapProcess.cc @@ -22,7 +22,7 @@ // // // $Id: trapProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/trdProcess.cc b/examples/extended/gdml/libgdml/processes/src/trdProcess.cc index fba700f522..f07016495d 100644 --- a/examples/extended/gdml/libgdml/processes/src/trdProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/trdProcess.cc @@ -22,7 +22,7 @@ // // // $Id: trdProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc b/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc index f1cd9b8388..2c4ab02b09 100644 --- a/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc @@ -22,7 +22,7 @@ // // // $Id: tubeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/unionProcess.cc b/examples/extended/gdml/libgdml/processes/src/unionProcess.cc index 7189aa7803..13572e7695 100644 --- a/examples/extended/gdml/libgdml/processes/src/unionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/unionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: unionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc b/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc index e7202647f8..9a9cf33d89 100644 --- a/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc @@ -22,7 +22,7 @@ // // // $Id: volumeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc b/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc index bb3ef7972a..0a267f5deb 100644 --- a/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: volumerefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/worldProcess.cc b/examples/extended/gdml/libgdml/processes/src/worldProcess.cc index d9e9d3d56c..3464a07e18 100644 --- a/examples/extended/gdml/libgdml/processes/src/worldProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/worldProcess.cc @@ -22,7 +22,7 @@ // // // $Id: worldProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh b/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh index fd4b1fe9b6..1a07bbce89 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh @@ -22,7 +22,7 @@ // // // $Id: ASCIIAttributeList.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/Action.hh b/examples/extended/gdml/libgdml/saxana/include/Action.hh index 88d7068179..b418ab0244 100644 --- a/examples/extended/gdml/libgdml/saxana/include/Action.hh +++ b/examples/extended/gdml/libgdml/saxana/include/Action.hh @@ -22,7 +22,7 @@ // // // $Id: Action.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh index 0980d7caf0..a916e45547 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh @@ -22,7 +22,7 @@ // // // $Id: ActionProcessingState.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh index 80410cc787..7dbddc5ab8 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessingConfigurator.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh index 7ab9304970..158f8da0c9 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessingContext.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh index fbf0aad606..a46799a044 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessingState.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh b/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh index 3a2184a303..5c5d3ace3d 100644 --- a/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh +++ b/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh @@ -22,7 +22,7 @@ // // // $Id: RCObjectHandle.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh index aabe099aa0..89b62ff9b0 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactory.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh index b5c45b2cbe..556689188e 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactoryBase.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh index 2d30e58988..5f41198f20 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactoryTable.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh index 4761d23276..1983ca3108 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentObject.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh index 0abea30fdf..1990c08c6a 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXDocumentEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh index c83ab74105..145418bbdc 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXElementEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh index 2a3e4baebe..d3f07afe43 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXErrorEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh index 688a02ce53..c2b3c89e28 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh @@ -22,7 +22,7 @@ // // // $Id: SAXEvent.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh index e144ea434f..84a5ff3fee 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh @@ -22,7 +22,7 @@ // // // $Id: SAXEventGun.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh index 8ceda01f8a..bd8de6c080 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh index 943ff09754..bc6cadf0d6 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh @@ -22,7 +22,7 @@ // // // $Id: SAXObject.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh index 25ce2ca337..9ec5191c3d 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh @@ -22,7 +22,7 @@ // // // $Id: SAXObjectBase.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh index 3077170ae8..8e7c294f0e 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh @@ -22,7 +22,7 @@ // // // $Id: SAXObjectHandle.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh index 7f0cc7975b..59b944c4f9 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh @@ -22,7 +22,7 @@ // // // $Id: SAXProcessingState.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh b/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh index 77d849a6ad..845fb7e07a 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh @@ -22,7 +22,7 @@ // // // $Id: SAXProcessor.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh b/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh index 76c6fc9d0a..6d2aba3181 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh @@ -22,7 +22,7 @@ // // // $Id: SAXStateProcess.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh index f460ac5b6a..4b7e132f0d 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh @@ -22,7 +22,7 @@ // // // $Id: SAXSubscriber.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh index 199c65846b..5b2b1014f7 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh @@ -22,7 +22,7 @@ // // // $Id: SAXSubscriberPool.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh b/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh index e9d1e1d9ca..8a818c7783 100644 --- a/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh +++ b/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh @@ -22,7 +22,7 @@ // // // $Id: StateProcessMap.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/StateStack.hh b/examples/extended/gdml/libgdml/saxana/include/StateStack.hh index 0f93fa2c38..f6a95d720d 100644 --- a/examples/extended/gdml/libgdml/saxana/include/StateStack.hh +++ b/examples/extended/gdml/libgdml/saxana/include/StateStack.hh @@ -22,7 +22,7 @@ // // // $Id: StateStack.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh b/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh index ede93b16fa..b51a9391ef 100644 --- a/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh +++ b/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh @@ -22,7 +22,7 @@ // // // $Id: StatusCode.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc index 058ff2f7fe..6ebcbe317a 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactory.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc index 4a07b39766..03e2e4d3be 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactoryTable.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc b/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc index d097858a44..790a948c2f 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc @@ -22,7 +22,7 @@ // // // $Id: SAXEventGun.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc b/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc index 2a03b53e1c..b2f7909e69 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc @@ -22,7 +22,7 @@ // // // $Id: SAXProcessor.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc b/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc index a5a5765048..0514600b76 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc @@ -22,7 +22,7 @@ // // // $Id: SAXSubscriberPool.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc b/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc index d3fe3a8b25..269d013920 100644 --- a/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc +++ b/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc @@ -22,7 +22,7 @@ // // // $Id: StateProcessMap.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh b/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh index ce661137c5..f604bbba98 100644 --- a/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh @@ -22,7 +22,7 @@ // // // $Id: AssemblyVolumeType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/AtomType.hh b/examples/extended/gdml/libgdml/schema/include/AtomType.hh index b9a654932b..78669431c8 100644 --- a/examples/extended/gdml/libgdml/schema/include/AtomType.hh +++ b/examples/extended/gdml/libgdml/schema/include/AtomType.hh @@ -22,7 +22,7 @@ // // // $Id: AtomType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh b/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh index fc750bdccb..3b595ec8da 100644 --- a/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh +++ b/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh @@ -22,7 +22,7 @@ // // // $Id: BooleanSolidType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ConstantType.hh b/examples/extended/gdml/libgdml/schema/include/ConstantType.hh index 0d18be9c69..e85c9468b9 100644 --- a/examples/extended/gdml/libgdml/schema/include/ConstantType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ConstantType.hh @@ -22,7 +22,7 @@ // // // $Id: ConstantType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh b/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh index a9ec7d5005..8d53de03d2 100644 --- a/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh +++ b/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh @@ -22,7 +22,7 @@ // // // $Id: ContentGroup.hh,v 1.3 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/DorDref.hh b/examples/extended/gdml/libgdml/schema/include/DorDref.hh index a86689f04f..c6e3ce51b2 100644 --- a/examples/extended/gdml/libgdml/schema/include/DorDref.hh +++ b/examples/extended/gdml/libgdml/schema/include/DorDref.hh @@ -22,7 +22,7 @@ // // // $Id: DorDref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh b/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh index b1df615cff..a809f60a82 100644 --- a/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh @@ -22,7 +22,7 @@ // // // $Id: ExpressionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh index d6fa32d08c..421bd4c5eb 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableConstantType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh index a1c6c7f9f8..46af278056 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableExpressionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh index 09407c6b74..2ff757f676 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableQuantityType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh index 79e9509ae8..a2c447da4c 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: IdentifiableQuantityVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: IdentifiableQuantityVectorType.hh,v 1.3 2002/07/25 10:41:20 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -43,10 +43,10 @@ public: } ~IdentifiableQuantityVectorType() { } - void set_name( std::string& s ) { + void set_name( const std::string& s ) { m_name = s; } - void set_name( char* s ) { + void set_name( const char* s ) { m_name = s; } std::string get_name() const { diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh index 4981963fc4..99236081e6 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableThreeVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh index b96a5650f0..b9e5ce1ce4 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableVolumeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh b/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh index 299edb4e9e..d48fb45442 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialAttributeGroup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh index b6565b443a..83f4cf98f6 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialElementType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh index 5e9efba803..24021532c2 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialIsotopeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh index dfb7d93676..800ce3b069 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialMixtureType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh b/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh index 93b23ae76d..f13cc1eabc 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialPropertiesGroup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialType.hh index a5ddabf89b..d3753a5601 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/PorPref.hh b/examples/extended/gdml/libgdml/schema/include/PorPref.hh index c570387c73..75d85cf40c 100644 --- a/examples/extended/gdml/libgdml/schema/include/PorPref.hh +++ b/examples/extended/gdml/libgdml/schema/include/PorPref.hh @@ -22,7 +22,7 @@ // // // $Id: PorPref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/QuantityType.hh b/examples/extended/gdml/libgdml/schema/include/QuantityType.hh index 518d2a8017..c8f930e66d 100644 --- a/examples/extended/gdml/libgdml/schema/include/QuantityType.hh +++ b/examples/extended/gdml/libgdml/schema/include/QuantityType.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: QuantityType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: QuantityType.hh,v 1.3 2002/07/25 10:41:21 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -41,19 +41,19 @@ public: } ~QuantityType() { } - void set_unit( std::string& s ) { + void set_unit( const std::string& s ) { m_unit = s; } - void set_unit( char* s ) { + void set_unit( const char* s ) { m_unit = s; } std::string get_unit() const { return m_unit; } - void set_type( std::string& s ) { + void set_type( const std::string& s ) { m_type = s; } - void set_type( char* s ) { + void set_type( const char* s ) { m_type = s; } std::string get_type() const { diff --git a/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh b/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh index 68885d854f..88add8900d 100644 --- a/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: QuantityVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: QuantityVectorType.hh,v 1.3 2002/07/25 10:41:22 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -43,19 +43,19 @@ public: } ~QuantityVectorType() { } - void set_unit( std::string& s ) { + void set_unit( const std::string& s ) { m_unit = s; } - void set_unit( char* s ) { + void set_unit( const char* s ) { m_unit = s; } std::string get_unit() const { return m_unit; } - void set_type( std::string& s ) { + void set_type( const std::string& s ) { m_type = s; } - void set_type( char* s ) { + void set_type( const char* s ) { m_type = s; } std::string get_type() const { diff --git a/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh b/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh index 9bbe497f65..db5496fd2c 100644 --- a/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh @@ -22,7 +22,7 @@ // // // $Id: ReferenceListType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh b/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh index fdfca7d7a6..0342a1c12d 100644 --- a/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ReferenceType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ReferenceType.hh,v 1.3 2002/07/25 10:41:23 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -41,10 +41,10 @@ public: } ~ReferenceType() { } - void set_ref( std::string& s ) { + void set_ref( const std::string& s ) { m_ref = s; } - void set_ref( char* s ) { + void set_ref( const char* s ) { m_ref = s; } const std::string& get_ref() const { diff --git a/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh b/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh index 028ee3534b..24cefc15d3 100644 --- a/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh +++ b/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh @@ -22,7 +22,7 @@ // // // $Id: SinglePlacementType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/SolidType.hh b/examples/extended/gdml/libgdml/schema/include/SolidType.hh index 913c7081f6..cdd913aff1 100644 --- a/examples/extended/gdml/libgdml/schema/include/SolidType.hh +++ b/examples/extended/gdml/libgdml/schema/include/SolidType.hh @@ -22,7 +22,7 @@ // // // $Id: SolidType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh b/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh index 07c699daf7..0966d7c995 100644 --- a/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh +++ b/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh @@ -22,7 +22,7 @@ // // // $Id: TagorTagref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh b/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh index 25dd3d5e80..1c21dc8297 100644 --- a/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ThreeVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ThreeVectorType.hh,v 1.3 2002/07/25 10:41:24 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -41,28 +41,28 @@ public: } ~ThreeVectorType() { } - void set_x( std::string& s ) { + void set_x( const std::string& s ) { m_x = s; } - void set_x( char* s ) { + void set_x( const char* s ) { m_x = s; } std::string get_x() const { return m_x; } - void set_y( std::string& s ) { + void set_y( const std::string& s ) { m_y = s; } - void set_y( char* s ) { + void set_y( const char* s ) { m_y = s; } std::string get_y() const { return m_y; } - void set_z( std::string& s ) { + void set_z( const std::string& s ) { m_z = s; } - void set_z( char* s ) { + void set_z( const char* s ) { m_z = s; } std::string get_z() const { diff --git a/examples/extended/gdml/libgdml/schema/include/TorTref.hh b/examples/extended/gdml/libgdml/schema/include/TorTref.hh index 8bc33883bc..2de23922ab 100644 --- a/examples/extended/gdml/libgdml/schema/include/TorTref.hh +++ b/examples/extended/gdml/libgdml/schema/include/TorTref.hh @@ -22,7 +22,7 @@ // // // $Id: TorTref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/VolumeType.hh b/examples/extended/gdml/libgdml/schema/include/VolumeType.hh index 4136aa9322..a4a580c790 100644 --- a/examples/extended/gdml/libgdml/schema/include/VolumeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/VolumeType.hh @@ -22,7 +22,7 @@ // // // $Id: VolumeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/assembly.hh b/examples/extended/gdml/libgdml/schema/include/assembly.hh index eb7c1ba187..3b6893650b 100644 --- a/examples/extended/gdml/libgdml/schema/include/assembly.hh +++ b/examples/extended/gdml/libgdml/schema/include/assembly.hh @@ -22,7 +22,7 @@ // // // $Id: assembly.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/atom.hh b/examples/extended/gdml/libgdml/schema/include/atom.hh index 6ae45dc219..8b49efa080 100644 --- a/examples/extended/gdml/libgdml/schema/include/atom.hh +++ b/examples/extended/gdml/libgdml/schema/include/atom.hh @@ -22,7 +22,7 @@ // // // $Id: atom.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh b/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh index 5b47f84cc0..3d7a684e86 100644 --- a/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh +++ b/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh @@ -22,7 +22,7 @@ // // // $Id: boolean_intersection.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh b/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh index a42512ae05..e8e0e91e7b 100644 --- a/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh +++ b/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh @@ -22,7 +22,7 @@ // // // $Id: boolean_subtraction.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_union.hh b/examples/extended/gdml/libgdml/schema/include/boolean_union.hh index d56820ab56..09976619b3 100644 --- a/examples/extended/gdml/libgdml/schema/include/boolean_union.hh +++ b/examples/extended/gdml/libgdml/schema/include/boolean_union.hh @@ -22,7 +22,7 @@ // // // $Id: boolean_union.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/box.hh b/examples/extended/gdml/libgdml/schema/include/box.hh index 6d6ee7582b..6d424057a0 100644 --- a/examples/extended/gdml/libgdml/schema/include/box.hh +++ b/examples/extended/gdml/libgdml/schema/include/box.hh @@ -22,7 +22,7 @@ // // // $Id: box.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/child.hh b/examples/extended/gdml/libgdml/schema/include/child.hh index 534d306a56..7f2e232292 100644 --- a/examples/extended/gdml/libgdml/schema/include/child.hh +++ b/examples/extended/gdml/libgdml/schema/include/child.hh @@ -22,7 +22,7 @@ // // // $Id: child.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/composite.hh b/examples/extended/gdml/libgdml/schema/include/composite.hh index a809dffdb4..40ef35d035 100644 --- a/examples/extended/gdml/libgdml/schema/include/composite.hh +++ b/examples/extended/gdml/libgdml/schema/include/composite.hh @@ -22,7 +22,7 @@ // // // $Id: composite.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/cone.hh b/examples/extended/gdml/libgdml/schema/include/cone.hh index e186fa7f41..86e1e96148 100644 --- a/examples/extended/gdml/libgdml/schema/include/cone.hh +++ b/examples/extended/gdml/libgdml/schema/include/cone.hh @@ -22,7 +22,7 @@ // // // $Id: cone.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/define.hh b/examples/extended/gdml/libgdml/schema/include/define.hh index 9960b8a277..95f30dcf17 100644 --- a/examples/extended/gdml/libgdml/schema/include/define.hh +++ b/examples/extended/gdml/libgdml/schema/include/define.hh @@ -22,7 +22,7 @@ // // // $Id: define.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/defineType.hh b/examples/extended/gdml/libgdml/schema/include/defineType.hh index 13220e4263..ed6f1bf7d8 100644 --- a/examples/extended/gdml/libgdml/schema/include/defineType.hh +++ b/examples/extended/gdml/libgdml/schema/include/defineType.hh @@ -22,7 +22,7 @@ // // // $Id: defineType.hh,v 1.3 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/element.hh b/examples/extended/gdml/libgdml/schema/include/element.hh index 4a86dbff58..812e448bee 100644 --- a/examples/extended/gdml/libgdml/schema/include/element.hh +++ b/examples/extended/gdml/libgdml/schema/include/element.hh @@ -22,7 +22,7 @@ // // // $Id: element.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/fraction.hh b/examples/extended/gdml/libgdml/schema/include/fraction.hh index eb7f9dbd95..8afc180ca8 100644 --- a/examples/extended/gdml/libgdml/schema/include/fraction.hh +++ b/examples/extended/gdml/libgdml/schema/include/fraction.hh @@ -22,7 +22,7 @@ // // // $Id: fraction.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/isotope.hh b/examples/extended/gdml/libgdml/schema/include/isotope.hh index 8b9b8b78ca..daab50bd9e 100644 --- a/examples/extended/gdml/libgdml/schema/include/isotope.hh +++ b/examples/extended/gdml/libgdml/schema/include/isotope.hh @@ -22,7 +22,7 @@ // // // $Id: isotope.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/material.hh b/examples/extended/gdml/libgdml/schema/include/material.hh index f750dc0e62..56e71fc748 100644 --- a/examples/extended/gdml/libgdml/schema/include/material.hh +++ b/examples/extended/gdml/libgdml/schema/include/material.hh @@ -22,7 +22,7 @@ // // // $Id: material.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/para.hh b/examples/extended/gdml/libgdml/schema/include/para.hh index 2a11afe92e..b4047c28d6 100644 --- a/examples/extended/gdml/libgdml/schema/include/para.hh +++ b/examples/extended/gdml/libgdml/schema/include/para.hh @@ -22,7 +22,7 @@ // // // $Id: para.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/positionType.hh b/examples/extended/gdml/libgdml/schema/include/positionType.hh index 151ef3dd02..8f29d0c33b 100644 --- a/examples/extended/gdml/libgdml/schema/include/positionType.hh +++ b/examples/extended/gdml/libgdml/schema/include/positionType.hh @@ -22,7 +22,7 @@ // // // $Id: positionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/rotationType.hh b/examples/extended/gdml/libgdml/schema/include/rotationType.hh index 95b3d40a6e..72bb2fff0a 100644 --- a/examples/extended/gdml/libgdml/schema/include/rotationType.hh +++ b/examples/extended/gdml/libgdml/schema/include/rotationType.hh @@ -22,7 +22,7 @@ // // // $Id: rotationType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/setup.hh b/examples/extended/gdml/libgdml/schema/include/setup.hh index 2d411af487..e4de64ed19 100644 --- a/examples/extended/gdml/libgdml/schema/include/setup.hh +++ b/examples/extended/gdml/libgdml/schema/include/setup.hh @@ -22,7 +22,7 @@ // // // $Id: setup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/sphere.hh b/examples/extended/gdml/libgdml/schema/include/sphere.hh index 8866a449fc..68d94379cf 100644 --- a/examples/extended/gdml/libgdml/schema/include/sphere.hh +++ b/examples/extended/gdml/libgdml/schema/include/sphere.hh @@ -22,7 +22,7 @@ // // // $Id: sphere.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/trap.hh b/examples/extended/gdml/libgdml/schema/include/trap.hh index 98aeaafb98..6ea85d1feb 100644 --- a/examples/extended/gdml/libgdml/schema/include/trap.hh +++ b/examples/extended/gdml/libgdml/schema/include/trap.hh @@ -22,7 +22,7 @@ // // // $Id: trap.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/trd.hh b/examples/extended/gdml/libgdml/schema/include/trd.hh index 63bf9106c9..74c19384bf 100644 --- a/examples/extended/gdml/libgdml/schema/include/trd.hh +++ b/examples/extended/gdml/libgdml/schema/include/trd.hh @@ -22,7 +22,7 @@ // // // $Id: trd.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/tube.hh b/examples/extended/gdml/libgdml/schema/include/tube.hh index c86e8eb607..b84105c2b5 100644 --- a/examples/extended/gdml/libgdml/schema/include/tube.hh +++ b/examples/extended/gdml/libgdml/schema/include/tube.hh @@ -22,7 +22,7 @@ // // // $Id: tube.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/volume.hh b/examples/extended/gdml/libgdml/schema/include/volume.hh index 3e4c23c38c..dff2a7167d 100644 --- a/examples/extended/gdml/libgdml/schema/include/volume.hh +++ b/examples/extended/gdml/libgdml/schema/include/volume.hh @@ -22,7 +22,7 @@ // // // $Id: volume.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/src/schema.cc b/examples/extended/gdml/libgdml/schema/src/schema.cc index ca47dc77d7..f498dfba69 100644 --- a/examples/extended/gdml/libgdml/schema/src/schema.cc +++ b/examples/extended/gdml/libgdml/schema/src/schema.cc @@ -22,7 +22,7 @@ // // // $Id: schema.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh b/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh index 6d98dfa54f..4e8e5c1f3d 100644 --- a/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh +++ b/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh @@ -22,7 +22,7 @@ // // // $Id: BooleanSolidTypeSubscriber.hh,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc b/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc index d5bed83617..4083ea3637 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc @@ -22,7 +22,7 @@ // // // $Id: LibLoadSubscribers.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc index e3b1dafe89..60de01df48 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: assemblySubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc index 14764f5344..1d69630482 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: boxSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc index 8053a50eb6..41629b52dc 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: coneSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc b/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc index 0acd7dafa4..f066dd0bea 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc @@ -22,7 +22,7 @@ // // // $Id: defineSubcriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc index eec343c9ff..6037c25af9 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: elementSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc index 2007d27690..f56b8944b7 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: intersectionSubscriber.cc,v 1.3 2002/06/05 11:54:33 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc index 1f302be1be..1fd485e7a5 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: isotopeSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc index e1bab3264d..af6343e5fb 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: materialSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: materialSubscriber.cc,v 1.4 2002/08/19 07:38:49 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -44,6 +44,9 @@ #include +extern const double defaultTemp; +extern const double defaultPress; + class materialSubscriber : virtual public SAXSubscriber { public: @@ -79,8 +82,9 @@ public: double z = 0.0; double a = 0.0; double d = 0.0; - double t = STP_Temperature; - double p = STP_Pressure; + double t = defaultTemp; + double p = defaultPress; + G4State s = kStateUndefined; std::string f, str; diff --git a/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc index a54d31d0eb..07a775ffe0 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: paraSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc index 141fb6538a..8095e50889 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: setupSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc index a7353e33e9..1cb30814a6 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: sphereSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc index 0d1c6ecebc..53c83cc09d 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: subtractionSubscriber.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc index adb5cb3d6b..b5d2d047ca 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: trapSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc index 7b871d6af8..06c441d25e 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: trdSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc b/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc index 1d05a99623..5cf3e7361a 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc @@ -22,7 +22,7 @@ // // // $Id: tubeSusbcriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc index 55e6b96a90..e0f2842d71 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: unionSubscriber.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc index c454375a23..b0efc27207 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: volumeSubscriber.cc,v 1.3 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: volumeSubscriber.cc,v 1.5 2002/08/19 07:39:29 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -184,7 +184,8 @@ public: } // At this point we should have everything ready to create a child if( doAssemblyInprint ) { - alog->MakeImprint( plog, *ppos, prot ); + //std::cout << "Imprinting assembly volume: " << vr->get_ref() << std::endl; + alog->MakeImprint( vnew, *ppos, prot ); } else { std::strstream pvname; pvname << "pv_" << vr->get_ref() << "_" << (cidx-2) << std::ends; diff --git a/examples/extended/gdml/sample/GNUmakefile b/examples/extended/gdml/sample/GNUmakefile index 9fb5edf49b..1bbcbde629 100644 --- a/examples/extended/gdml/sample/GNUmakefile +++ b/examples/extended/gdml/sample/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2002/06/11 15:48:17 radoone Exp $ +# $Id: GNUmakefile,v 1.4 2002/08/19 07:30:22 radoone Exp $ # -------------------------------------------------------------- # GNUmakefile for GDML sample module. Radovan Chytracek, 30/05/2002. # -------------------------------------------------------------- @@ -24,11 +24,11 @@ CPPFLAGS += \ EXTRALIBS += \ -lGDMLsaxana \ + -L $(XERCESCROOT)/lib -lxerces-c \ -lGDMLmanagement \ -lGDMLschema \ -lGDMLprocesses \ - -lGDMLsubscribers \ - -L $(XERCESCROOT)/lib -lxerces-c + -lGDMLsubscribers EXTRALIBSSOURCEDIRS += \ $(GDMLLIBROOT)/saxana \ @@ -37,13 +37,13 @@ EXTRALIBSSOURCEDIRS += \ $(GDMLLIBROOT)/management \ $(GDMLLIBROOT)/subscribers -# EXTRA_LINK_DEPENDENCIES := \ -# $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name)/libgogdml.a \ -# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLmanagement.a \ -# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLprocesses.a \ -# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLsaxana.a \ -# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLschema.a \ -# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLsubscribers.a +#EXTRA_LINK_DEPENDENCIES := \ +# $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name)/libgogdml.a \ +# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLmanagement.a \ +# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLprocesses.a \ +# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLsaxana.a \ +# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLschema.a \ +# $(G4WORKDIR)/lib/$(G4SYSTEM)/libGDMLsubscribers.a .PHONY: all diff --git a/examples/extended/gdml/sample/gogdml.cc b/examples/extended/gdml/sample/gogdml.cc index 5501e5da54..360443aa15 100644 --- a/examples/extended/gdml/sample/gogdml.cc +++ b/examples/extended/gdml/sample/gogdml.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: gogdml.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: gogdml.cc,v 1.3 2002/08/19 07:28:52 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -30,6 +30,8 @@ // // -------------------------------------------------------------- +#include "globals.hh" + #include "G4RunManager.hh" #include "G4UImanager.hh" diff --git a/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh b/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh index 165c944b52..c261d78771 100644 --- a/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh +++ b/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: gogdmlDetectorConstruction.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh b/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh index c8a74ee578..0a2fa1a778 100644 --- a/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh +++ b/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: gogdmlPhysicsList.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh b/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh index e5c36b32f2..04699a9ce6 100644 --- a/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh +++ b/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: gogdmlPrimaryGeneratorAction.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc b/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc index c9f25eaba5..cb27710474 100644 --- a/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc +++ b/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: gogdmlDetectorConstruction.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: gogdmlDetectorConstruction.cc,v 1.3 2002/08/19 07:27:51 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -30,6 +30,8 @@ // // -------------------------------------------------------------- +#include "globals.hh" + #include "gogdmlDetectorConstruction.hh" #include "GDMLProcessor.hh" diff --git a/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc b/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc index 3ae4e90b50..0d46d1bbfc 100644 --- a/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc +++ b/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: gogdmlPhysicsList.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc b/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc index 8a69a2a166..5e8d9c88ef 100644 --- a/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc +++ b/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: gogdmlPrimaryGeneratorAction.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "gogdmlPrimaryGeneratorAction.hh" diff --git a/examples/extended/geometry/cad/GNUmakefile b/examples/extended/geometry/cad/GNUmakefile index 33f57befee..0017a014a2 100644 --- a/examples/extended/geometry/cad/GNUmakefile +++ b/examples/extended/geometry/cad/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2002/06/20 10:01:40 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2002/07/04 16:20:09 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. # -------------------------------------------------------------- @@ -16,7 +16,7 @@ include $(G4INSTALL)/config/architecture.gmk # To avoid incompatibilities with ANSI standard treatment of strings, the # NIST STEP reader on gcc-2.95.X and later must be compiled in non-ANSI mode. # -ifneq (,$(findstring Linux-g++,$(G4SYSTEM))) +ifneq (,$(findstring g++,$(G4SYSTEM))) ansi_options = -Wall -ansi -pedantic NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) NCPP = $(CPPFLAGS) diff --git a/examples/extended/geometry/cad/History b/examples/extended/geometry/cad/History index 969b85eb12..4493b76216 100644 --- a/examples/extended/geometry/cad/History +++ b/examples/extended/geometry/cad/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2002/06/20 10:00:53 gcosmo Exp $ +$Id: History,v 1.3 2002/11/18 13:55:19 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,14 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 18, 02 G.Cosmo (cadex-V04-01-01) +- Enhanced corrections for VERTEX_POINT, EDGE_LOOP and POLY_LOOP. + (courtesy of Daniel Szepielak). + +July 04, 02 G.Cosmo (cadex-V04-01-00) +- GNUmakefile: parse 'g++' string in G4SYSTEM to detect non-ISO setup for + gcc-2.95 and higher. + June 27, 98 G.Cosmo - Created. diff --git a/examples/extended/geometry/cad/cadex.cc b/examples/extended/geometry/cad/cadex.cc index 71805e8104..aa602922d4 100644 --- a/examples/extended/geometry/cad/cadex.cc +++ b/examples/extended/geometry/cad/cadex.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: cadex.cc,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #include "CadDetectorConstruction.hh" diff --git a/examples/extended/geometry/cad/include/CadDetectorConstruction.hh b/examples/extended/geometry/cad/include/CadDetectorConstruction.hh index 1596704a8c..0a77d25763 100644 --- a/examples/extended/geometry/cad/include/CadDetectorConstruction.hh +++ b/examples/extended/geometry/cad/include/CadDetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadDetectorConstruction.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #ifndef CadDetectorConstruction_h diff --git a/examples/extended/geometry/cad/include/CadDetectorMessenger.hh b/examples/extended/geometry/cad/include/CadDetectorMessenger.hh index 4df69f04b3..aa18fa0c8a 100644 --- a/examples/extended/geometry/cad/include/CadDetectorMessenger.hh +++ b/examples/extended/geometry/cad/include/CadDetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadDetectorMessenger.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #ifndef CadDetectorMessenger_h diff --git a/examples/extended/geometry/cad/include/CadPhysicsList.hh b/examples/extended/geometry/cad/include/CadPhysicsList.hh index 37cd935e9a..38398e17ee 100644 --- a/examples/extended/geometry/cad/include/CadPhysicsList.hh +++ b/examples/extended/geometry/cad/include/CadPhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadPhysicsList.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #ifndef CadPhysicsList_h diff --git a/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh b/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh index 77c720f615..062e6f6237 100644 --- a/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh +++ b/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadPrimaryGeneratorAction.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #ifndef CadPrimaryGeneratorAction_h diff --git a/examples/extended/geometry/cad/include/CadRunAction.hh b/examples/extended/geometry/cad/include/CadRunAction.hh index 725050b1cc..5b56497f45 100644 --- a/examples/extended/geometry/cad/include/CadRunAction.hh +++ b/examples/extended/geometry/cad/include/CadRunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadRunAction.hh,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #ifndef CadRunAction_h diff --git a/examples/extended/geometry/cad/include/CadVisManager.hh b/examples/extended/geometry/cad/include/CadVisManager.hh index c559857dd1..24e47b2ddc 100644 --- a/examples/extended/geometry/cad/include/CadVisManager.hh +++ b/examples/extended/geometry/cad/include/CadVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: CadVisManager.hh,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // -------------------------------------------------------------------- #ifndef CadVisManager_h diff --git a/examples/extended/geometry/cad/scripts/g4step_correct.pl b/examples/extended/geometry/cad/scripts/g4step_correct.pl index e1c13dcdfe..e5aee6bbb0 100755 --- a/examples/extended/geometry/cad/scripts/g4step_correct.pl +++ b/examples/extended/geometry/cad/scripts/g4step_correct.pl @@ -15,18 +15,16 @@ foreach (@filebuf) { if(/.*VERTEX\_POINT.*/) { - s/VERTEX\_POINT\s*\(\s*\'\s*\'\s*\,/VERTEX\_POINT\(\'\'\,\'\'\,/g ; - s/VERTEX\_POINT\s*\(\s*\'NONE\'\s*\,/VERTEX\_POINT\(\'NONE\'\,\'\'\,/g ; + ($a,$b) = split (",",$&); + s//$a\,\'\'\,$b\n/; } elsif(/.*EDGE\_LOOP.*/) { - s/EDGE\_LOOP\s*\(\s*\'\s*\'\s*\,/EDGE\_LOOP\(\'\'\,\'\'\,/g; - s/EDGE\_LOOP\s*\(\s*\'NONE\'\s*\,/EDGE\_LOOP\(\'NONE\'\,\'\'\,/g; + s/EDGE\_LOOP\(\'(\w+)\'\,/EDGE\_LOOP\(\'$1\'\,\'\'\,/; } elsif(/.*POLY\_LOOP.*/) { - s/POLY\_LOOP\s*\(\s*\'\s*\'\s*\,/POLY\_LOOP\(\'\'\,\'\'\,/g; - s/POLY\_LOOP\s*\(\s*\'NONE\'\s*\,/POLY\_LOOP\(\'NONE\'\,\'\'\,/g; + s/POLY\_LOOP\(\'(\w+)\'\,/POLY\_LOOP\(\'$1\'\,\'\'\,/; } elsif(/.*ADVANCED\_FACE.*/) { diff --git a/examples/extended/geometry/cad/src/CadDetectorConstruction.cc b/examples/extended/geometry/cad/src/CadDetectorConstruction.cc index 373f2919c0..dc720000ab 100644 --- a/examples/extended/geometry/cad/src/CadDetectorConstruction.cc +++ b/examples/extended/geometry/cad/src/CadDetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadDetectorConstruction.cc,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #include "G4AssemblyCreator.hh" diff --git a/examples/extended/geometry/cad/src/CadDetectorMessenger.cc b/examples/extended/geometry/cad/src/CadDetectorMessenger.cc index 595b00001b..a9758656e7 100644 --- a/examples/extended/geometry/cad/src/CadDetectorMessenger.cc +++ b/examples/extended/geometry/cad/src/CadDetectorMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadDetectorMessenger.cc,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: CadDetectorMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #include "CadDetectorConstruction.hh" @@ -43,7 +43,7 @@ CadDetectorMessenger::CadDetectorMessenger(CadDetectorConstruction * myDC) selDetCmd->SetParameterName("choice",true); selDetCmd->SetDefaultValue("rod_place_asm"); selDetCmd->SetCandidates("rod_place_asm rod_solid"); - selDetCmd->AvailableForStates(PreInit,Idle); + selDetCmd->AvailableForStates(G4State_PreInit,G4State_Idle); switchCmd = new G4UIcmdWithAString("/mydet/SwitchDetector",this); switchCmd->SetGuidance("Assign the selected geometry to G4RunManager."); @@ -52,7 +52,7 @@ CadDetectorMessenger::CadDetectorMessenger(CadDetectorConstruction * myDC) switchCmd->SetParameterName("choice",true); switchCmd->SetDefaultValue(" "); switchCmd->SetCandidates("rod_place_asm rod_solid \" \""); - switchCmd->AvailableForStates(PreInit,Idle); + switchCmd->AvailableForStates(G4State_PreInit,G4State_Idle); myDetector->SelectDetector(defParam="rod_place_asm"); } diff --git a/examples/extended/geometry/cad/src/CadPhysicsList.cc b/examples/extended/geometry/cad/src/CadPhysicsList.cc index 16396a3628..54f1a6ecae 100644 --- a/examples/extended/geometry/cad/src/CadPhysicsList.cc +++ b/examples/extended/geometry/cad/src/CadPhysicsList.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadPhysicsList.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #include "CadPhysicsList.hh" diff --git a/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc b/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc index 8e00625838..ee2582c6e2 100644 --- a/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc +++ b/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadPrimaryGeneratorAction.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ #include "CadPrimaryGeneratorAction.hh" diff --git a/examples/extended/geometry/cad/src/CadRunAction.cc b/examples/extended/geometry/cad/src/CadRunAction.cc index d05a5f57c8..b95b68ceaf 100644 --- a/examples/extended/geometry/cad/src/CadRunAction.cc +++ b/examples/extended/geometry/cad/src/CadRunAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: CadRunAction.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // Make this appear first! diff --git a/examples/extended/geometry/cad/src/CadVisManager.cc b/examples/extended/geometry/cad/src/CadVisManager.cc index e576b5374a..8f10388e32 100644 --- a/examples/extended/geometry/cad/src/CadVisManager.cc +++ b/examples/extended/geometry/cad/src/CadVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: CadVisManager.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: CadVisManager.cc,v 1.2 2002/11/26 08:28:07 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -------------------------------------------------------------------- #ifdef G4VIS_USE @@ -35,6 +35,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" CadVisManager::CadVisManager () {} @@ -45,6 +46,7 @@ void CadVisManager::RegisterGraphicsSystems () RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); if (fVerbose > 0) diff --git a/examples/extended/geometry/olap/include/G4GeoNav.hh b/examples/extended/geometry/olap/include/G4GeoNav.hh index 9caa0b19b5..c48710c2be 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.2 2002/06/04 09:23:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapDetConstr.hh b/examples/extended/geometry/olap/include/OlapDetConstr.hh index 1c696b8224..3ed659c666 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapEventAction.hh b/examples/extended/geometry/olap/include/OlapEventAction.hh index 3c4315f9e6..f93ef5d7aa 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.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapGenerator.hh b/examples/extended/geometry/olap/include/OlapGenerator.hh index 2daa5461e8..1d73c14c74 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.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapLogManager.hh b/examples/extended/geometry/olap/include/OlapLogManager.hh index aba2e361b4..90e6920c81 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManager.hh b/examples/extended/geometry/olap/include/OlapManager.hh index 5431997972..8ddf0a942e 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.2 2002/06/04 09:23:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh index 1b0932b3d1..82a0712a11 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapNotify.hh b/examples/extended/geometry/olap/include/OlapNotify.hh index b9e58a1779..62b4a6fc62 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.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapPhysicsList.hh b/examples/extended/geometry/olap/include/OlapPhysicsList.hh index 884cca92b6..1767257963 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapRunAction.hh b/examples/extended/geometry/olap/include/OlapRunAction.hh index 2551329313..71a6012db9 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.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapSteppingAction.hh b/examples/extended/geometry/olap/include/OlapSteppingAction.hh index 009604f9b3..6894a9d8b4 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.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapVisManager.hh b/examples/extended/geometry/olap/include/OlapVisManager.hh index aee11d5e70..6cb9e88149 100644 --- a/examples/extended/geometry/olap/include/OlapVisManager.hh +++ b/examples/extended/geometry/olap/include/OlapVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: OlapVisManager.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/RandomDetector.hh b/examples/extended/geometry/olap/include/RandomDetector.hh index 36217a9674..20dfbe9324 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/SolidAnalyser.hh b/examples/extended/geometry/olap/include/SolidAnalyser.hh index 31bf997af6..43b4cbcf6c 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.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/tree.hh b/examples/extended/geometry/olap/include/tree.hh index 6dc574ddea..cc7fde890f 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.2 2002/06/04 09:23:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/olapex.cc b/examples/extended/geometry/olap/olapex.cc index 2909402753..969d267d1d 100644 --- a/examples/extended/geometry/olap/olapex.cc +++ b/examples/extended/geometry/olap/olapex.cc @@ -22,7 +22,7 @@ // // // $Id: olapex.cc,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/G4GeoNav.cc b/examples/extended/geometry/olap/src/G4GeoNav.cc index 82ec830d0e..60e72afed8 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.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapDetConstr.cc b/examples/extended/geometry/olap/src/OlapDetConstr.cc index 361654ed8b..017e49569c 100644 --- a/examples/extended/geometry/olap/src/OlapDetConstr.cc +++ b/examples/extended/geometry/olap/src/OlapDetConstr.cc @@ -22,7 +22,7 @@ // // // $Id: OlapDetConstr.cc,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapEventAction.cc b/examples/extended/geometry/olap/src/OlapEventAction.cc index 76965095ed..557d90482b 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.1 2002/06/04 07:40:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapGenerator.cc b/examples/extended/geometry/olap/src/OlapGenerator.cc index 58b6d37b2f..ee734512ba 100644 --- a/examples/extended/geometry/olap/src/OlapGenerator.cc +++ b/examples/extended/geometry/olap/src/OlapGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: OlapGenerator.cc,v 1.2 2002/06/04 09:23:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapLogManager.cc b/examples/extended/geometry/olap/src/OlapLogManager.cc index 9a6dda7a74..7378a71039 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.1 2002/06/04 07:40:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManager.cc b/examples/extended/geometry/olap/src/OlapManager.cc index 93e76b8e65..a1e9eb4a1b 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.1 2002/06/04 07:40:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc index 86a660db0d..e8bbec39f0 100644 --- a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc +++ b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: OlapManagerMessenger.cc,v 1.1 2002/06/04 07:40:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: OlapManagerMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -56,13 +56,13 @@ OlapManagerMessenger::OlapManagerMessenger(OlapManager* aManager) theRotationCmd = new G4UIcmdWith3VectorAndUnit("/olap/rotate",this); theRotationCmd->SetGuidance("rotate the new-world"); - theRotationCmd->AvailableForStates(Idle); + theRotationCmd->AvailableForStates(G4State_Idle); theRotationCmd->SetUnitCategory("Angle"); theRotationCmd->SetParameterName("rotAxisTheta", "rotAxisPhi", "rotAngle",true,true); theTriggerCmd = new G4UIcmdWithoutParameter("/olap/trigger",this); theTriggerCmd->SetGuidance("starts a single mother-daughters overlap detection."); - theTriggerCmd->AvailableForStates(Idle); + theTriggerCmd->AvailableForStates(G4State_Idle); theTriggerFullCmd = new G4UIcmdWithAnInteger("/olap/triggerFull",this); theTriggerFullCmd->SetGuidance("starts a series of scans (only where mothers have"); @@ -70,7 +70,7 @@ OlapManagerMessenger::OlapManagerMessenger(OlapManager* aManager) theTriggerFullCmd->SetDefaultValue(1); theTriggerFullCmd->SetParameterName("nr",true); theTriggerFullCmd->SetRange("nr>=-1"); - theTriggerFullCmd->AvailableForStates(Idle); + theTriggerFullCmd->AvailableForStates(G4State_Idle); theDeltaCmd = new G4UIcmdWithADoubleAndUnit("/olap/delta",this); theDeltaCmd->SetGuidance("set boundary tolerance for overlaps in units of length"); @@ -78,46 +78,46 @@ OlapManagerMessenger::OlapManagerMessenger(OlapManager* aManager) theDeltaCmd->SetParameterName("delta",true); theDeltaCmd->SetRange("delta>=1.e-9"); // current G4-accuracy theDeltaCmd->SetUnitCategory("Length"); - theDeltaCmd->AvailableForStates(Idle); + theDeltaCmd->AvailableForStates(G4State_Idle); theSetGridCmd = new G4UIcmdWith3Vector("/olap/grid",this); theSetGridCmd->SetGuidance("set the grid for the generator (x-, y-, z- grid)"); theSetGridCmd->SetDefaultValue(G4ThreeVector(3.,3.,3.)); theSetGridCmd->SetParameterName("xGrid", "yGrid", "zGrid", true); theSetGridCmd->SetRange("xGrid>2. && yGrid >2. && zGrid >2."); - theSetGridCmd->AvailableForStates(Idle); + theSetGridCmd->AvailableForStates(G4State_Idle); thePwdCmd = new G4UIcmdWithoutParameter("/olap/pwd",this); thePwdCmd->SetGuidance("show the position in the logical volume hierachy of the new world"); - thePwdCmd->AvailableForStates(Idle); + thePwdCmd->AvailableForStates(G4State_Idle); theLsCmd = new G4UIcmdWithoutParameter("/olap/ls",this); theLsCmd->SetGuidance("lists the logical daughters of the current NewWorld"); - theLsCmd->AvailableForStates(Idle); + theLsCmd->AvailableForStates(G4State_Idle); theListCmd = new G4UIcmdWithAString("/olap/list",this); theListCmd->SetGuidance("lists all logical volumes which name matches regexp"); - theListCmd->AvailableForStates(Idle); + theListCmd->AvailableForStates(G4State_Idle); theCdCmd = new G4UIcmdWithAString("/olap/cd",this); theCdCmd->SetGuidance("change to NewWorld like unix-cd"); - theCdCmd->AvailableForStates(Idle); + theCdCmd->AvailableForStates(G4State_Idle); theGotoWorldCmd = new G4UIcmdWithAString("/olap/goto",this); theGotoWorldCmd->SetGuidance("setting first logical vol matching regexp as NewWorld"); - theGotoWorldCmd->AvailableForStates(Idle); + theGotoWorldCmd->AvailableForStates(G4State_Idle); theLogCmd = new G4UIcmdWithAString("/olap/log", this); theLogCmd->SetGuidance("puts output into a single logfile"); theLogCmd->SetDefaultValue("olap.log"); theLogCmd->SetParameterName("name of logfile",true); - theLogCmd->AvailableForStates(Idle); + theLogCmd->AvailableForStates(G4State_Idle); theLogByVolumeCmd = new G4UIcmdWithAString("/olap/logByVolume", this); theLogByVolumeCmd->SetGuidance("puts output into a logfile for each volume"); theLogByVolumeCmd->SetDefaultValue(""); theLogByVolumeCmd->SetParameterName("path of logfile(s)",true); - theLogByVolumeCmd->AvailableForStates(Idle); + theLogByVolumeCmd->AvailableForStates(G4State_Idle); } diff --git a/examples/extended/geometry/olap/src/OlapNotify.cc b/examples/extended/geometry/olap/src/OlapNotify.cc index 0d6bfb062e..90cd046b9c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapPhysicsList.cc b/examples/extended/geometry/olap/src/OlapPhysicsList.cc index fd1c8e502b..03930508ae 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapRunAction.cc b/examples/extended/geometry/olap/src/OlapRunAction.cc index ecef29deba..b852b39374 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.2 2002/06/04 09:23:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapSteppingAction.cc b/examples/extended/geometry/olap/src/OlapSteppingAction.cc index 084918b570..3c38d965cd 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.1 2002/06/04 07:40:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapVisManager.cc b/examples/extended/geometry/olap/src/OlapVisManager.cc index 6d3f454f31..a939be183b 100644 --- a/examples/extended/geometry/olap/src/OlapVisManager.cc +++ b/examples/extended/geometry/olap/src/OlapVisManager.cc @@ -22,7 +22,7 @@ // // // $Id: OlapVisManager.cc,v 1.1 2002/06/04 07:40:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/RandomDetector.cc b/examples/extended/geometry/olap/src/RandomDetector.cc index 361dd185bf..a7ce250880 100644 --- a/examples/extended/geometry/olap/src/RandomDetector.cc +++ b/examples/extended/geometry/olap/src/RandomDetector.cc @@ -22,7 +22,7 @@ // // // $Id: RandomDetector.cc,v 1.1 2002/06/04 07:40:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/SolidAnalyser.cc b/examples/extended/geometry/olap/src/SolidAnalyser.cc index e10458457d..7a5e3dcb67 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.2 2002/06/04 09:23:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/parallel/ParN02/ParN02.cc b/examples/extended/parallel/ParN02/ParN02.cc index a22711347f..85e97f1b59 100644 --- a/examples/extended/parallel/ParN02/ParN02.cc +++ b/examples/extended/parallel/ParN02/ParN02.cc @@ -22,7 +22,7 @@ // // // $Id: ParN02.cc,v 1.2 2002/03/09 06:21:18 cooperma Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/ParTopC.icc b/examples/extended/parallel/ParN02/ParTopC.icc index 71ec7490f9..8baa24436a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh index 1363e0fd77..60b9fa62b7 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.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // 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 f250be88f6..d37f35346b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 1b144f4124..0363a1d50b 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.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 e142e79c34..c1569d9956 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 c55f7e8450..943e0edcc9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // 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 90243bf484..f8fffefb4a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 c28a84f838..606388ef26 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 bd09bb9f5d..5db6c6cc7f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 e883ba9b9d..8f6373f470 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 92090fd5db..9af47a83bd 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 0701a61f0b..3a33fcb888 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.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 e8687092d2..65d96b715a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 index af06b52c00..bd75344f3e 100644 --- a/examples/extended/parallel/ParN02/include/ExN02VisManager.hh +++ b/examples/extended/parallel/ParN02/include/ExN02VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02VisManager.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh b/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh index 0e06f434d4..cd67289d73 100644 --- a/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh +++ b/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExMarshaledHits.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh b/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh index 35a8f7a04f..93623cf42d 100644 --- a/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh +++ b/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ParRandomState.hh b/examples/extended/parallel/ParN02/include/ParRandomState.hh index 10669f5820..b66bf5e021 100644 --- a/examples/extended/parallel/ParN02/include/ParRandomState.hh +++ b/examples/extended/parallel/ParN02/include/ParRandomState.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRandomState.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ParRunManager.hh b/examples/extended/parallel/ParN02/include/ParRunManager.hh index f651f6c07f..0f0a865031 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc index 2d3eed596a..056866f499 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.1 2002/03/05 15:21:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 4e4e34e8ab..d81a7cfcdc 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.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 a762444b60..2a131967e5 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorMessenger.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN02DetectorMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,12 +47,12 @@ ExN02DetectorMessenger::ExN02DetectorMessenger(ExN02DetectorConstruction* myDet) TargMatCmd = new G4UIcmdWithAString("/mydet/setTargetMate",this); TargMatCmd->SetGuidance("Select Material of the Target."); TargMatCmd->SetParameterName("choice",false); - TargMatCmd->AvailableForStates(PreInit,Idle); + TargMatCmd->AvailableForStates(G4State_PreInit,G4State_Idle); ChamMatCmd = new G4UIcmdWithAString("/mydet/setChamberMate",this); ChamMatCmd->SetGuidance("Select Material of the Target."); ChamMatCmd->SetParameterName("choice",false); - ChamMatCmd->AvailableForStates(PreInit,Idle); + ChamMatCmd->AvailableForStates(G4State_PreInit,G4State_Idle); FieldCmd = new G4UIcmdWithADoubleAndUnit("/mydet/setField",this); FieldCmd->SetGuidance("Define magnetic field."); @@ -60,7 +60,7 @@ ExN02DetectorMessenger::ExN02DetectorMessenger(ExN02DetectorConstruction* myDet) FieldCmd->SetParameterName("Bx",false); FieldCmd->SetDefaultUnit("tesla"); FieldCmd->SetUnitCategory("Magnetic flux density"); - FieldCmd->AvailableForStates(PreInit,Idle); + FieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc index 4475905875..38359614e8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 79739eeb7c..08a87809ca 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // User Field class implementation. // diff --git a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc index 6edaf22bfe..224dac6746 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.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 840fae548b..fbe0fedb0a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 422faf9339..783af9371c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 40fafc9911..0311c55e77 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 35134bd625..8d577b2527 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.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 c74183f000..465e70dcf4 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.1 2002/03/05 15:22:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 4bf1d227f4..43c2789a62 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.1 2002/03/05 15:22:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 index bf2010a06b..7a060ba3c4 100644 --- a/examples/extended/parallel/ParN02/src/ExN02VisManager.cc +++ b/examples/extended/parallel/ParN02/src/ExN02VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: ExN02VisManager.cc,v 1.1 2002/03/05 15:22:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN02VisManager.cc,v 1.2 2002/11/26 08:28:07 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void ExN02VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc b/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc index bde4cc6127..50ac58e686 100644 --- a/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc +++ b/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExN02MarshaledHits.cc,v 1.1 2002/03/05 15:22:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc b/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc index d302127a99..044e57fe73 100644 --- a/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc +++ b/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.cc,v 1.1 2002/03/05 15:22:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ParRunManager.cc b/examples/extended/parallel/ParN02/src/ParRunManager.cc index 8f76dfeb9b..96c800ea5e 100644 --- a/examples/extended/parallel/ParN02/src/ParRunManager.cc +++ b/examples/extended/parallel/ParN02/src/ParRunManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: ParRunManager.cc,v 1.3 2002/06/06 17:04:40 cooperma Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ParRunManager.cc,v 1.4 2002/12/05 01:07:00 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 @@ -168,7 +168,7 @@ TOPC_BUF ParRunManager::DoEvent( void *input_buf ) ParMarshaledRandomState buf = ParMarshaledRandomState( input_buf ); buf.unmarshalEventIDandSetState( i_event ); - stateManager->SetNewState(EventProc); + stateManager->SetNewState(G4State_EventProc); currentEvent = GenerateEvent(i_event); @@ -184,7 +184,7 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf MarshaledObj buf = MarshaledObj(input_buf); buf.Unmarshal(i_event); - stateManager->SetNewState(EventProc); + stateManager->SetNewState(G4State_EventProc); if(!userPrimaryGeneratorAction) { G4Exception @@ -215,7 +215,7 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf AnalyzeEvent(currentEvent); if(i_eventApplyCommand(msg); - stateManager->SetNewState(GeomClosed); + stateManager->SetNewState(G4State_GeomClosed); StackPreviousEvent(currentEvent); currentEvent = NULL; // Move this to GenerateEventInput: diff --git a/examples/extended/parallel/ParN04/ParN04.cc b/examples/extended/parallel/ParN04/ParN04.cc index 9f0fb02068..5cb463260c 100644 --- a/examples/extended/parallel/ParN04/ParN04.cc +++ b/examples/extended/parallel/ParN04/ParN04.cc @@ -22,7 +22,7 @@ // // // $Id: ParN04.cc,v 1.2 2002/03/09 06:21:25 cooperma Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/parallel/ParN04/ParTopC.icc b/examples/extended/parallel/ParN04/ParTopC.icc index 01b0581a7d..b219f0fa54 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh index 566c4e5b56..6c5fefe233 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh index 9010793ebd..47d50aa47c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh index bd388ae718..dc7c965d0b 100644 --- a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.hh,v 1.1 2002/03/05 15:22:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh index f2213f0813..15d17e7917 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.1 2002/03/05 15:22:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh index ac219f72b3..0e3c4589b7 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.1 2002/03/05 15:22:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh b/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh index f8d97a77ba..d3fda7d475 100644 --- a/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh +++ b/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExMarshaledHits.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh b/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh index 31dda8ff84..4f5d67d789 100644 --- a/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh +++ b/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ParRandomState.hh b/examples/extended/parallel/ParN04/include/ParRandomState.hh index 6104e88221..92211050d2 100644 --- a/examples/extended/parallel/ParN04/include/ParRandomState.hh +++ b/examples/extended/parallel/ParN04/include/ParRandomState.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRandomState.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ParRunManager.hh b/examples/extended/parallel/ParN04/include/ParRunManager.hh index 1966831238..6add093756 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.2 2002/06/06 17:05:05 cooperma Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc index 989366a0e5..f9dc190e64 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.1 2002/03/05 15:22:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc index 14651fa491..f20fe126dc 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.1 2002/03/05 15:22:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc index 341e85e4e7..690e1d5df6 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.1 2002/03/05 15:22:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc index 4027057cb4..a9ef833e76 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.1 2002/03/05 15:22:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc index 8dc9a4454b..2b0fc12c33 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.1 2002/03/05 15:22:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc index 5bab699154..f6dcc8aca0 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.1 2002/03/05 15:22:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc b/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc index 3eba19e8a4..4b5b306039 100644 --- a/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc +++ b/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExN04MarshaledHits.cc,v 1.1 2002/03/05 15:22:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc b/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc index 33bcc992a4..fa8acaaefc 100644 --- a/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc +++ b/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.cc,v 1.1 2002/03/05 15:22:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ParRunManager.cc b/examples/extended/parallel/ParN04/src/ParRunManager.cc index 26b5147dda..cc6aef1d32 100644 --- a/examples/extended/parallel/ParN04/src/ParRunManager.cc +++ b/examples/extended/parallel/ParN04/src/ParRunManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: ParRunManager.cc,v 1.3 2002/06/06 17:04:55 cooperma Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ParRunManager.cc,v 1.4 2002/12/05 01:07:01 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 @@ -168,7 +168,7 @@ TOPC_BUF ParRunManager::DoEvent( void *input_buf ) ParMarshaledRandomState buf = ParMarshaledRandomState( input_buf ); buf.unmarshalEventIDandSetState( i_event ); - stateManager->SetNewState(EventProc); + stateManager->SetNewState(G4State_EventProc); currentEvent = GenerateEvent(i_event); @@ -184,7 +184,7 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf MarshaledObj buf = MarshaledObj(input_buf); buf.Unmarshal(i_event); - stateManager->SetNewState(EventProc); + stateManager->SetNewState(G4State_EventProc); if(!userPrimaryGeneratorAction) { G4Exception @@ -215,7 +215,7 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf AnalyzeEvent(currentEvent); if(i_eventApplyCommand(msg); - stateManager->SetNewState(GeomClosed); + stateManager->SetNewState(G4State_GeomClosed); StackPreviousEvent(currentEvent); currentEvent = 0; // Move this to GenerateEventInput: diff --git a/examples/extended/persistency/History b/examples/extended/persistency/History new file mode 100644 index 0000000000..46264f2208 --- /dev/null +++ b/examples/extended/persistency/History @@ -0,0 +1,24 @@ +$Id: History,v 1.2 2002/12/06 17:00:07 gcosmo Exp $ +-------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Persistency Exapmles 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 * + ---------------------------------------------------------- + +06 December, 02 G.Cosmo (persistencyEx-V04-01-01) +- Migration to new G4ApplicationState for messengers. + +05 December, 02 Y.Morita (persistencyEx-V04-01-00) +- Initial creation of Geant4 ROOT I/O examples + diff --git a/examples/extended/persistency/PersEx01/G4PersEx01.cc b/examples/extended/persistency/PersEx01/G4PersEx01.cc new file mode 100644 index 0000000000..33ae7e1690 --- /dev/null +++ b/examples/extended/persistency/PersEx01/G4PersEx01.cc @@ -0,0 +1,135 @@ +// +// ******************************************************************** +// * 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: G4PersEx01.cc,v 1.1 2002/12/04 02:44:24 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 - exampleN03 +// +// -------------------------------------------------------------- +// Comments +// +// -------------------------------------------------------------- + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +#ifdef G4UI_USE_XM +#include "G4UIXm.hh" +#endif + +#include "Randomize.hh" + +#ifdef G4VIS_USE +#include "Pers01VisManager.hh" +#endif + +#include "Pers01DetectorConstruction.hh" +#include "Pers01PhysicsList.hh" +#include "Pers01PrimaryGeneratorAction.hh" +#include "Pers01RunAction.hh" +#include "Pers01EventAction.hh" +#include "Pers01SteppingAction.hh" +#include "Pers01SteppingVerbose.hh" + +int main(int argc,char** argv) { + + // choose the Random engine + HepRandom::setTheEngine(new RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new Pers01SteppingVerbose); + + // Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + // set mandatory initialization classes + Pers01DetectorConstruction* detector = new Pers01DetectorConstruction; + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new Pers01PhysicsList); + + G4UIsession* session=0; + + if (argc==1) // Define UI session for interactive mode. + { + // G4UIterminal is a (dumb) terminal. +#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 + } + +#ifdef G4VIS_USE + // visualization manager + G4VisManager* visManager = new Pers01VisManager; + visManager->Initialize(); +#endif + + // set user action classes + runManager->SetUserAction(new Pers01PrimaryGeneratorAction(detector)); + runManager->SetUserAction(new Pers01RunAction); + runManager->SetUserAction(new Pers01EventAction); + runManager->SetUserAction(new Pers01SteppingAction); + + //Initialize G4 kernel + runManager->Initialize(); + + // get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (session) // Define UI session for interactive mode. + { + // G4UIterminal is a (dumb) terminal. + UI->ApplyCommand("/control/execute vis.mac"); +#ifdef G4UI_USE_XM + // Customize the G4UIXm menubar with a macro file : + UI->ApplyCommand("/control/execute visTutor/gui.mac"); +#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 runManager; + + return 0; +} + diff --git a/examples/extended/persistency/PersEx01/GNUmakefile b/examples/extended/persistency/PersEx01/GNUmakefile new file mode 100644 index 0000000000..af2b19305a --- /dev/null +++ b/examples/extended/persistency/PersEx01/GNUmakefile @@ -0,0 +1,33 @@ +# $Id: GNUmakefile,v 1.1 2002/12/04 02:44:24 morita Exp $ +# +# GNUmakefile: makefile for example ROOT I/O impelmentatoin. +# +# This makefile creates a granular library in $(FADS_LIB). +# $(name) is the name of granular library. +# +# Author: Youhei Morita +# + +# name of the granular library +name := G4PersEx01 + +ifndef G4PEX_DIR + G4PEX_DIR := $(G4INSTALL)/examples/extended/persistency/rootio +endif + +include $(G4PEX_DIR)/config/G4PEXsetup.gmk + +cwd := $(shell pwd) + +CINT_INCLUDES := -I$(cwd)/include +CINT_INCLUDES += -I$(G4INCLUDE) +CINT_INCLUDES += -I$(G4PEX_DIR)/include +CINT_INCLUDES += -I$(CLHEP_BASE_DIR)/include +CINT_INCLUDES += -I$(ROOTSYS)/include + +CPPFLAGS += -Iinclude +CPPFLAGS += -I$(G4INCLUDE) +CPPFLAGS += -I$(G4PEX_DIR)/include + +include $(G4PEX_DIR)/config/binmake.gmk + diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/GNUmakefile b/examples/extended/persistency/PersEx01/HitsAnalyzer/GNUmakefile new file mode 100644 index 0000000000..f23799d462 --- /dev/null +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/GNUmakefile @@ -0,0 +1,38 @@ +# $Id: GNUmakefile,v 1.1 2002/12/04 14:51:34 morita Exp $ +# +# GNUmakefile: makefile for example ROOT I/O impelmentatoin. +# +# This makefile creates a granular library in $(FADS_LIB). +# $(name) is the name of granular library. +# +# Author: Youhei Morita +# + +# name of the granular library +name := HitsAnalyzer + +ifndef G4PEX_DIR + G4PEX_DIR := $(G4INSTALL)/examples/extended/persistency/rootio +endif + +include $(G4PEX_DIR)/config/G4PEXsetup.gmk + +cwd := $(shell pwd) + +CINT_INCLUDES := -I$(cwd)/include +CINT_INCLUDES += -I$(G4INCLUDE) +CINT_INCLUDES += -I$(G4PEX_DIR)/include +CINT_INCLUDES += -I$(CLHEP_BASE_DIR)/include +CINT_INCLUDES += -I$(ROOTSYS)/include + +CPPFLAGS += -I../include +CPPFLAGS += -I$(G4INCLUDE) +CPPFLAGS += -I$(G4PEX_DIR)/include +CPPFLAGS += -I$(ROOTSYS)/include + +EXTLDFLAGS := -Wl,-rpath $(G4PEX_DIR)/lib/$(G4SYSTEM) \ + -L$(G4PEX_DIR)/lib/$(G4SYSTEM) \ + -lG4PersEx01 + +include $(G4PEX_DIR)/config/binmake.gmk + diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc b/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc new file mode 100644 index 0000000000..0e00431c02 --- /dev/null +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc @@ -0,0 +1,224 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include +#include +#include + +#include "TFile.h" +#include "TH1F.h" +#include "TRandom.h" + +#include "Pers01CalorHit.hh" +//#include "Pers01CalorHitRoot.hh" +#include "Pers01CalorHitRootIO.hh" +#include "G4PersistencyCenter.hh" + +////////////////////////////////////////////////////////////////////// + +void usage(char*); + +////////////////////////////////////////////////////////////////////// + +void usage(char* myname) +{ +//usage: HitsAnalyzer [-h] [-v] [-r|w] +// [-f ] [-o ] [-n ] [-s ] + + std::cerr << std::endl + << "usage: " << myname + << " [-h] [-v] [-r|w]" << std::endl + << " " + << " [-f ] [-o ]" + << " [-n ] [-s ]" << std::endl + << " -h: print this menu" << std::endl + << " -v: verbose output" << std::endl + << " -r: read the file" << std::endl + << " -w: write the file" << std::endl + << " -f: file name" << std::endl + << " -n: number of events" << std::endl + << " -s: split level" << std::endl + << " -N: Total nodes (Gfarm option)" << std::endl + << " -I: Node index (Gfarm option)" << std::endl + << std::endl; + exit(1); +} + +int main(int argc, char **argv) +{ + Int_t nevent = 15; + Int_t split = 1; // by default, split Event in sub branches + Int_t write = 1; // by default the event is filled + Int_t read = 0; + Int_t verbose = 0; + + std::string filename = "Event.root"; + std::string histofile = "Histo.root"; + + int c; + while ((c = ::getopt(argc, argv, "hvrwf:n:s:")) != EOF) { + switch (c) { + case 'v': + verbose = 1; + break; + case 'r': + read = 1; + write = 0; + break; + case 'w': + read = 0; + write = 1; + break; + case 'f': + filename = optarg; + break; + case 'o': + histofile = optarg; + break; + case 'n': + nevent = (int) ::atoi(optarg); + break; + case 's': + split = (int) ::atoi(optarg); + break; + case 'h': + default: + usage(argv[0]); + break; + } + } + + if (verbose) { + if (read) cout << "*** Input File: " << filename << endl; + if (write) cout << "*** Output File: " << filename << endl; + cout << "*** Histogram File: " << histofile << endl; + } + + Int_t ev; + Int_t printev = 10000; + + cout << endl << " *** Testing Pers01CalorHitRootIO *** " << endl << endl; + + string detName = "CalorSD"; + string colName = "CalCollection"; + string obj = "Hits"; + string pmName = "ROOT"; + + G4PersistencyCenter* pc = G4PersistencyCenter::GetPersistencyCenter(); + G4PersistencyManager* pm = pc->GetPersistencyManager(pmName); + pm = pm->Create(); + pc->SetPersistencyManager(pm,pmName); + pc->SetReadFile("Hits",filename); + pc->SetWriteFile("Hits",filename); + + Pers01CalorHitRootIO* ioman = new Pers01CalorHitRootIO(detName,colName); + if (verbose) ioman->SetVerboseLevel(5); + + Pers01CalorHitsCollection* hc = 0; + +// Read case + if (read) { + std::cout << "Reading ..." << std::endl; + + pm->TransactionManager()->StartRead(); + + TFile* hf = new TFile(histofile.c_str(), "RECREATE"); + TObjArray Hlist(0); + TH1F* h1 = new TH1F("hist1", "Pers01CalorHit EdepAbs", 100, 0, 4.4); + TH1F* h2 = new TH1F("hist2", "Pers01CalorHit TrackLengthAbs", 100, 0, 4.4); + TH1F* h3 = new TH1F("hist3", "Pers01CalorHit EdepGap", 100, 0, 4.4); + TH1F* h4 = new TH1F("hist4", "Pers01CalorHit TrackLengthGap", 100, 0, 4.4); + Hlist.Add(h1); + Hlist.Add(h2); + Hlist.Add(h3); + Hlist.Add(h4); + + G4VHitsCollection* ahc; + + string file = pc->CurrentReadFile(obj); + if ( pm->TransactionManager()->SelectReadFile(obj, file) ) { + + ev = 0; + while ( ioman->Retrieve(ahc) ) { + hc = (Pers01CalorHitsCollection*) ahc; + assert(ahc); + + if (verbose || ev%printev == 0) printf("event:%d\n",ev); + if ( ev++ > nevent ) break; + + // analyze transient Pers01CalorHit + hc = (Pers01CalorHitsCollection*) ahc; + int n = hc->entries(); + for ( int i = 0; i < n; i++ ) { + + Pers01CalorHit* h = (*hc)[i]; + if ( h != 0 ) { + h1->Fill(h->GetEdepAbs()); + h2->Fill(h->GetTrakAbs()); + h3->Fill(h->GetEdepGap()); + h4->Fill(h->GetTrakGap()); + } + } + delete ahc; + } + } + + pm->TransactionManager()->Commit(); + hf->Write(); + + } else { +// Write case + std::cout << "Writing ..." << std::endl; + + pm->TransactionManager()->StartUpdate(); + + for (ev = 0; ev < nevent; ev++) { + if (verbose || ev%printev == 0) printf("event:%d\n",ev); + + Float_t edep = 600*gRandom->Rndm(1); + + Pers01CalorHit* hit = new Pers01CalorHit(); + hit->AddAbs(edep,2*edep); + hit->AddGap(edep,2*edep); + + if (verbose) cout << " EdepAbs = " << hit->GetEdepAbs() << endl; + + hc = new Pers01CalorHitsCollection(detName,colName); + hc->insert(hit); + + string file = pc->CurrentWriteFile(obj); + if ( pm->TransactionManager()->SelectWriteFile(obj, file) ) { + ioman->Store(hc); + } + delete hc; + } + + pm->TransactionManager()->Commit(); + } + + cout << "Done." << endl; + + // delete hits collection, IO manager + // delete pc; + delete ioman; + +} + diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/README b/examples/extended/persistency/PersEx01/HitsAnalyzer/README new file mode 100644 index 0000000000..8b8ec8a7ca --- /dev/null +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/README @@ -0,0 +1,14 @@ + + Geant4 ROOT Hit Analyzer + ======================== + +This directory contains an example of ROOT Hit analysis and histogramming. +Type the following commands for quick setup and running. + + make + ./run + setenv DISPLAY :0.0 + $ROOTSYS/bin/root draw.C + +See the README file in PersEx01 for more detail. + diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/draw.C b/examples/extended/persistency/PersEx01/HitsAnalyzer/draw.C new file mode 100644 index 0000000000..bb2cd61fdf --- /dev/null +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/draw.C @@ -0,0 +1,50 @@ +{ + TFile f("Histo.root"); + f->ls(); + + hist1->SetFillColor(kRed); + hist1->SetMarkerStyle(21); + hist1->SetMarkerColor(kRed); + + hist2->SetFillColor(kBlue); + hist2->SetMarkerStyle(21); + hist2->SetMarkerColor(kBlue); + + hist3->SetFillColor(50); + hist3->SetMarkerStyle(21); + hist3->SetMarkerColor(50); + + hist4->SetFillColor(kGreen); + hist4->SetMarkerStyle(21); + hist4->SetMarkerColor(kGreen); + + // hist5->SetFillColor(kYellow); + // hist5->SetMarkerStyle(21); + // hist5->SetMarkerColor(kYellow); + + // hist6->SetFillColor(7); + // hist6->SetMarkerStyle(21); + // hist6->SetMarkerColor(7); + + // TCanvas *c1 = new TCanvas("c1","stacked hists",10,10,750,600); + TCanvas *c1 = new TCanvas("c1","stacked hists",10,10,1000,800); + c1->SetFillColor(41); + c1->Divide(2,2); + + // in top left pad, draw the stack with defaults + c1->cd(1); + hist1->Draw(); + + // in top right pad, draw the stack in non-stack mode and errors option + c1->cd(2); + hist2->Draw(); + + c1->cd(3); + hist3->Draw(); + + c1->cd(4); + hist4->Draw(); + + // c1->cd(5); + // hist5->Draw(); +} diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/run b/examples/extended/persistency/PersEx01/HitsAnalyzer/run new file mode 100755 index 0000000000..f09c9614ae --- /dev/null +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/run @@ -0,0 +1,3 @@ +#!/bin/sh +rm -f Histo.root +../../rootio/bin/Linux-g++/HitsAnalyzer -v -r -f ../G4run0001.root -n 20 diff --git a/examples/extended/persistency/PersEx01/README b/examples/extended/persistency/PersEx01/README new file mode 100644 index 0000000000..fb5a6a691d --- /dev/null +++ b/examples/extended/persistency/PersEx01/README @@ -0,0 +1,321 @@ + + PersEx01: ROOT I/O example + ========================== + +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. + +*** 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 PATH $ROOTSYS/bin:$PATH + +In Addition, you may also need to set up LD_LIBRARY_PATH, depending on +the ROOT version. + + setenv LD_LIBRARY_PATH $ROOTSYS/lib:$LD_LIBRARY_PATH + +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 + +The library module will be built into $G4PEX_LIB. + (G4INSTALL/examples/extented/persistency/rootio/lib/$G4SYSTEM) + + +*** Making executable module G4PersEx01 *** + + cd G4INSTALL/examples/extented/persistency/PersEx01 + make + +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) + +By running "run" script provided in this directory, hits information +will be stored into a file G4run0001.root. + + ./run + + +*** Reading the ROOT file *** + +You can read the hit ROOT file G4run0001.root with HitsAnalyzer. + + cd HitsAnalyzer + make + ./run + + +*** Some Documentation *** + +In G4run0001.root, there is a ROOT tree called "Geant4". +Hits information is stored as a branch under this tree, +and the calorimeter hits in the above example are stored +into the branch "CalCollection". + +Now take a look of a macro file "run.mac", which gives the +necessary commands to enable Geant4 ROOT I/O. + +------------------------------------------------------- +/persistency/verbose 1 +/persistency/select ROOT +/persistency/store/using/hitIO CalorSD CalCollection +# +/persistency/set/writeFile/Hits G4run0001.root +/persistency/printall +------------------------------------------------------- + +On line#2, ROOT I/O package is selected. +On line#3, you must provide the same sensitive detector name +as you named to Pers01CarorimeterSD in the file +Pers01DetectorConstruction.cc. +On line#4, file name for the hits output is specified. + + +*** Root I/O Adopter 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. +Following files are generated automatically with this file by using +a perl script "g4rootio.pl". + + Pers01CalorHitRoot.hh Pers01CalorHitRoot.cc + Pers01CalorHitsRoot.hh Pers01CalorHitsRoot.cc + Pers01CalorHitRootIO.hh Pers01CalorHitRootIO.cc + +The contents of Pers01CalorHit.rootio may look like this: + +------------------------------------------------------- +# +# File: Pers01CalorHit.rootio +# +# Author: +# +# Usage: +# Use g4rootio.pl to generate ROOT I/O adapter classes: +# % g4rootio.pl Pers01CalorHit.rootio +# This will generate the following files: +# Pers01CalorHitRoot.hh/cc, Pers01CalorHitsRoot.hh/cc, +# Pers01CalorHitRootIs.hh/cc +# +set class_name Pers01CalorHit +set collection_class Pers01CalorHitsCollection +set collection_base_class G4VHitsCollection +set array_io_base G4VPHitsCollectionIO +set catalog G4HCIOentryT +set sdet_name CalorSD +set add_header + @class_name@.hh +.. +set member + @float@ EdepAbs; + @float@ EdepGap; + @float@ TrackLengthAbs; + @float@ TrackLengthGap; +.. + +set constructor + @class_root@(@class_name@* hit) + { + EdepAbs = hit->GetEdepAbs(); + EdepGap = hit->GetEdepGap(); + TrackLengthAbs = hit->GetTrakAbs(); + TrackLengthGap = hit->GetTrakGap(); + } +.. + +set method + @class_name@* @make_transient@() + { + @class_name@* hit = new @class_name@(); + hit->AddAbs(EdepAbs, TrackLengthAbs); + hit->AddGap(EdepGap, TrackLengthGap); + return hit; + } +.. +------------------------------------------------------- + + +*** About g4rootio.pl *** + +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 +a simple definition file *.rootio. + + +*** Limitations of g4rootio.pl *** + +g4rootio.pl generates a large collection of a simple hit class +by using an array class (TClonesArray) as a container. + +For the moment, g4rootio.pl limits itself to store only a simple +data types, such as @int@, @uint@, @float@, @char@, or a fixed +length array of these types, or a simple concrete class containing +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]. + + +*** How to write Pers01CalorHit.rootio *** + +To store and retrieve a collection of transient class Pers01CalorHit, +you create a file Pers01CalorHit.rootio. + +In *.rootio, you may use macro such as @class_name@. See the later +section of this document about detail description of the macros. + +Normally you may need to edit the name of the following classes. + +set class_name Pers01CalorHit # name of the original transient class +set collection_class Pers01CalorHitsCollection # name of the original hit collection transient class + +Following examples are universal for standard Geant4 hits. +You may need to change them to digits if you are dealing with digits class. + +set collection_base_class G4VHitsCollection # base class of the transient hits collection +set array_io_base VPHitsCollectionIO # base class of the Hits I/O manager +set catalog HCIOentryT # name of the Hit I/O catalog + +In the next section you declare the data members which you want to +store and retrieve. In this example, four simple Float_t variables +EdepAbs, EdepGap, TrackLengthAbs, TrackLengthGap are declared. + +This command takes several input lines, so you need to terminate +with a line ".." by itself. + +set member + @float@ EdepAbs; + @float@ EdepGap; + @float@ TrackLengthAbs; + @float@ TrackLengthGap; +.. + +Next you need to design a constructor for the ROOT I/O persistent +class Pers01CalorHitRoot. A macro @class_root@ will be replaced +with "Pers01CalorHitROot", and @class_name@ will become "Pers01CalorHit". + +In the constructor, copy the values of the transient class into the +data members of @class_root@. + +This command takes several input lines, so you need to terminate +with a line ".." by itself. + +set constructor + @class_root@(@class_name@* hit) + { + EdepAbs = hit->GetEdepAbs(); + EdepGap = hit->GetEdepGap(); + TrackLengthAbs = hit->GetTrakAbs(); + TrackLengthGap = hit->GetTrakGap(); + } +.. + +The method "@make_transient@ is called duing a retrieve of events. +In this method you specify how to reproduce the instance of the +transient class @class_name@, by using the stored data member +values of @class_root@. + +This command takes several input lines, so you need to terminate +with a line ".." by itself. + +set method + @class_name@* @make_transient@() + { + @class_name@* hit = new @class_name@(); + hit->AddAbs(EdepAbs, TrackLengthAbs); + hit->AddGap(EdepGap, TrackLengthGap); + return hit; + } +.. + + +*** List of available macros *** +@class_name@ name of the original transient class +@class_root@ name of the correspondent root class +@class_array@ name of the collection of the root class +@class_io@ name of the I/O manager class +@collection_class@ name of the collection of the transient class +@collection_base_class@ name of the base class of the transient collection +@catalog@ catalog of the I/O manager class +@entry_object@ -internal use- +@entry_name@ -internal use- + (used in /persistency/store/using/hitIO) +@make_transient@ -internal use- (MakeTransientObject) + + +*** Data type macros *** +@int@ Int_t +@uint@ UInt_t +@float@ Float_t +@char@ char + + +*** Use of the generic hits collection class *** + +In the above example, hits collection is made of a template class +G4THitsCollection. + + typedef G4THitsCollection Pers01CalorHitsCollection; + +In this case, *.rootio may remain as above. + +However, in some circumstances it would be required to use +a base hits collection class other than G4THitsCollecton. +g4rootio.pl provides a way to work with this situation. + +You may add addtional directives to the *.rootio file. + + set collection_class_header yes + +This command tells the hits collection header file is separated +from the transient hit class. + + set collection_class_method_entries Size() + set collection_class_method_add Insert(hit) + set collection_class_method_get GetHit(i) + +You may specify the method names for the entries of the transient +hit class, adding a hit to the collection, or referencing the i-th +hit entry in the collection. (In this example, the variable name +"hit" is a place holder, and will be ignored in the actual +implementation.) + + set collection_class_signature @collection_class@(f_detName, f_colName, 0) + +This command gives a non-standard signature of the collection class +constructor. Note that f_detName and f_colName are required and +cannot be omitted. For other variables, it can take only explicit +numbers such as 0, or 1. + +Example: Suppose MDTHitsCollection just has the following type of constructor. + + MDTHitsCollection(G4String detName, G4String colName, MDTSensitiveDetector* sd); + +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 *** + +ROOT I/O adopter classes can be generated automatically with the +GNUmakefiles provided in the $G4PEX_DIR/config directory. +"make clean" will cleans up your directory. + +If you want to generate these file manually, type: + +% $G4PEX_DIR/config/fadsrootio.pl rootio/Pers01CalorHit.rootio + diff --git a/examples/extended/persistency/PersEx01/README.jp b/examples/extended/persistency/PersEx01/README.jp new file mode 100644 index 0000000000..ab91b28600 --- /dev/null +++ b/examples/extended/persistency/PersEx01/README.jp @@ -0,0 +1,288 @@ +¢¡ PersEx01: ROOT I/O example + +exampleN03¤Ç»È¤Ã¤¿¤Î¤ÈƱÅù¤Ê Pers01CalorimeterSD ¤ÇÀ¸À®¤·¤¿ Calorimeter Hit +Pers01CalorHit ¤òROOT I/O¤ò»È¤Ã¤ÆÊݸ¤¹¤ë¡£ + +¢¡ ¥é¥¤¥Ö¥é¥ê·²¤ÎÀ¸À® + +¤Þ¤ºROOT I/O¤Î¥Ù¡¼¥¹¥¤¥ó¥×¥ê¥á¥ó¥Æ¡¼¥·¥ç¥ó¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¡£ + +´Ä¶­ÀßÄê¤È¤·¤Æ¤ÏGeant4¤ÎÄ̾ï¤ÎÀßÄê¤Ë²Ã¤¨¤Æ + +setenv ROOTSYS $HOME/local/root/v3.03.06/root +setenv PATH $ROOTSYS/bin:$PATH + +¤¬É¬Íס£¤µ¤é¤ËROOT¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤Ï + +setenv LD_LIBRARY_PATH $ROOTSYS/lib:$LD_LIBRARY_PATH + +¤¬É¬Íס£ + +cd G4INSTALL/examples/extented/persistency/rootio +make + +¤³¤ì¤Ë¤è¤ê $G4PEX_LIB + (G4INSTALL/examples/extented/persistency/rootio/lib/$G4SYSTEM) +¤Ë libG4ROOTIO.so ¤¬À¸À®¤µ¤ì¤ë¡£ + +¢¡ ¼Â¹Ô¥â¥¸¥å¡¼¥ë G4PersEx01 ¤ÎÀ¸À® + +cd G4INSTALL/examples/extented/persistency/PersEx01 +make + +¤³¤ì¤Ë¤è¤ê $G4PEX_LIB ¤Ë libG4PersEx01.so ¤¬¡¢¤Þ¤¿ $G4PEX_BIN + (G4INSTALL/examples/extented/persistency/rootio/bin/$G4SYSTEM) +¤Ë¼Â¹Ô¥â¥¸¥å¡¼¥ë G4PersEx01 ¤¬À¸À®¤µ¤ì¤ë¡£ + +¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë run ¤ò¼Â¹Ô¤¹¤ì¤Ð¡¢Pers01CalorHit ¤¬ +G4run0001.root ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ËÊݸ¤µ¤ì¤ë¡£ + +./run + +¢¡ ROOT¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß¥Æ¥¹¥È + +HitsAnalyzer¤ò»È¤Ã¤Æ G4run0001.root ¤ÎÃæ¿È¤òÆÉ¤ß½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡£ + +cd HitsAnalyzer +make +./run + +¢¡ ²òÀâ + +G4run0001.root ¤ÎÃæ¤Ç¤Ï "Geant4" ¤È¤¤¤¦Ì¾Á°¤ÎROOT Tree¤Ë +ÂФ·¤Æ¡¢ "CalCollection"¤È¤¤¤¦ Branch ¤¬À¸À®¤µ¤ì¡¢¤½¤ì¤¾¤ì +¤Î¥¨¥ó¥È¥ê¤Ë¤½¤ì¤¾¤ì¤ÎPers01CalorHitsCollection¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ + +run.mac¤ÎÃæ¤Ë¤Ï ROOT I/O¤Î¤¿¤á¤ËɬÍפʥ³¥Þ¥ó¥É¤¬½ñ¤«¤ì¤Æ¤¤¤ë¡£ + +------------------------------------------------------- +/persistency/verbose 1 +/persistency/select ROOT +/persistency/store/using/hitIO CalorSD CalCollection +# +/persistency/set/writeFile/Hits G4run0001.root +/persistency/printall +------------------------------------------------------- + +2¹ÔÌܤÇROOT I/O¤òÁªÂò¤·¤Æ¤¤¤ë¡£ +3¹ÔÌܤΠCalorSD ¤Ï¡¢Pers01DetectorConstruction.cc¤ÎÃæ¤Ç +Pers01CalorimeterSD¤ËÍ¿¤¨¤Æ¤¤¤ë̾Á°¤È°ìÃפµ¤»¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£ +4¹ÔÌܤǤÏHit¾ðÊó¤ò½ÐÎϤ¹¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤷ¤Æ¤¤¤ë¡£ + +¢¡ ROOT Hit I/OÍѤΥ¢¥À¥×¥¿¥¯¥é¥¹ + +¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê rootio ¤ÎÃæ¤Ë¤Ï¡¢ROOT I/O¥¢¥À¥×¥¿¥¯¥é¥¹ + + Pers01CalorHitRoot.hh Pers01CalorHitRoot.cc + Pers01CalorHitsRoot.hh Pers01CalorHitsRoot.cc + Pers01CalorHitRootIO.hh Pers01CalorHitRootIO.cc + +¤ò¼«Æ°À¸À®¤¹¤ë¤¿¤á¤Î Pers01CalorHit.rootio ¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ +Perl script "g4rootio.pl"¤Ë¤è¤Ã¤Æ¾åµ­¤Î¥¢¥À¥×¥¿¥¯¥é¥¹¤¬ +À¸À®¤µ¤ì¤ë¡£ + +------------------------------------------------------- +# +# File: Pers01CalorHit.rootio +# +# Author: +# +# Usage: +# Use g4rootio.pl to generate ROOT I/O adapter classes: +# % g4rootio.pl Pers01CalorHit.rootio +# This will generate the following files: +# Pers01CalorHitRoot.hh/cc, Pers01CalorHitsRoot.hh/cc, +# Pers01CalorHitRootIs.hh/cc +# +set class_name Pers01CalorHit +set collection_class Pers01CalorHitsCollection +set collection_base_class G4VHitsCollection +set array_io_base G4VPHitsCollectionIO +set catalog G4HCIOentryT +set sdet_name CalorSD +set add_header + @class_name@.hh +.. +set member + @float@ EdepAbs; + @float@ EdepGap; + @float@ TrackLengthAbs; + @float@ TrackLengthGap; +.. + +set constructor + @class_root@(@class_name@* hit) + { + EdepAbs = hit->GetEdepAbs(); + EdepGap = hit->GetEdepGap(); + TrackLengthAbs = hit->GetTrakAbs(); + TrackLengthGap = hit->GetTrakGap(); + } +.. + +set method + @class_name@* @make_transient@() + { + @class_name@* hit = new @class_name@(); + hit->AddAbs(EdepAbs, TrackLengthAbs); + hit->AddGap(EdepGap, TrackLengthGap); + return hit; + } +.. +------------------------------------------------------- + +¢¡g4rootio.pl¤Ë¤Ä¤¤¤Æ +Geant4 ¤Ç¤Ïhit¥¯¥é¥¹¤Ê¤É¤ÎÈæ³ÓŪñ½ã¤Ê¹½Â¤¤ò»ý¤Ä¥¯¥é¥¹¤Î½¸¹ç¤ò +¤½¤ì¤¾¤ì¤Î¬Äê´ï¤´¤È¤ËÆþ½ÐÎϤ¹¤ëɬÍפ¬¤¢¤ë¡£¤³¤ì¤é¤òROOT I/O¤òÍѤ¤¤Æ +¼Â¸½¤¹¤ë¾ì¹ç¡¢³ÆÂ¬Äê´ï¤Î³«È¯¼Ô¤Ï¡Ö¥Ò¥Ã¥È¾ðÊó¤È¤·¤Æ²¿¤ò»Ä¤¹¤Ù¤­¤«¡×¤À¤± +¤ËÃíÎϤ·¤Æ³«È¯¤¹¤ì¤Ð¤è¤¯¡¢ROOT I/O»ÈÍѤΤ¿¤á¤Î¥¢¥À¥×¥¿¥¯¥é¥¹¤Ï¤¹¤Ù¤Æ¤Î +¸¡½Ð´ï¤ÈƱ¤¸µ¡¹½¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£g4rootio.pl¤Ï¡¢³Æ¥Ò¥Ã¥È¾ðÊó¤ÎI/O +ÄêµÁ¥Õ¥¡¥¤¥ë *.rootio ¤«¤é¡¢É¬ÍפÊROOT I/O¥¢¥À¥×¥¿¥¯¥é¥¹¤ò¼«Æ°À¸À®¤¹¤ë +¤¿¤á¤Î¥Ä¡¼¥ë¤Ç¤¢¤ë¡£ + +¢¡À©¸Â»ö¹à +g4rootio.pl¤Ï¡¢Ã±½ã¤Ê¥Ç¡¼¥¿¥á¥ó¥Ð¡¼¤ò»ý¤Ä¥¯¥é¥¹ (hit¤Ê¤É)¤¬ÂçÎ̤˳ÊǼ +¤µ¤ì¤¿array¥¯¥é¥¹ (TClonesArray)¤òÍѤ¤¤Æ¡¢¥¯¥é¥¹½¸¹çÁ´ÂΤÎROOT I/O¤ò +¹Ô¤¦¤¿¤á¤Îºî¶È¥¯¥é¥¹¤òÀ¸À®¤¹¤ë¡£ + +¥Ç¡¼¥¿¥á¥ó¥Ð¡¼¤Î·¿¤È¤·¤Æ¸½ºßÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ïñ½ã·¿ @int@, +@uint@, @float@, @char@¤â¤·¤¯¤Ï¤³¤ì¤é¤Î¸ÇÄêĹÇÛÎ󡢤⤷¤¯¤Ï¤³¤ì¤é¤«¤é +¹½À®¤µ¤ì¤¿Â¾¤ÎÍ×ÁÇ¥¯¥é¥¹¤Î¤ß¡£ + +¥Ý¥¤¥ó¥¿¤ä²ÄÊÑĹÇÛÎó¤ò»ý¤Ä¥á¥ó¥Ð¡¼(char*, std::string¤Ê¤É)¤Ë¤ÏÈóÂбþ¡£ +ʸ»úÎó¤Ïchar[20]¤Ê¤É¤Î¸ÇÄêĹÇÛÎó¤ò»È¤¦É¬Íפ¬¤¢¤ë¡£ + +¢¡Pers01CalorHit.rootio¤Î½ñ¤­Êý + +Pers01CalorHit¤È¤¤¤¦transient¥¯¥é¥¹¤òGeant4 ROOT I/O¤òÍѤ¤¤ÆÆþ½ÐÎÏ +¤¹¤ë¤¿¤á¤Ë Pers01CalorHits.rootio¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òÍѰդ¹¤ë¡£ + +*.rootio¤Ç¤Ï @class_name@ ¤Î¤è¤¦¤Ê¥Þ¥¯¥í¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ +¥Þ¥¯¥í¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¡£ + +Ä̾ï¤Ï¡¢°Ê²¼¤ÎÆó¤Ä¤Î¥¯¥é¥¹Ì¾¤òŬµ¹ÊÔ½¸¤¹¤ë¡£ + +set class_name Pers01CalorHit # ¤â¤È¤Îtransient¥¯¥é¥¹¤Î̾Á° +set collection_class Pers01CalorHitsCollection # ¤â¤È¤Îtransient¥¯¥é¥¹¤Îcollection¤Î̾Á° + +Hits¥¯¥é¥¹¤ÎGeant4 ROOT I/O¤Ç¤¢¤ì¤Ð¡¢°Ê²¼¤Ï¤½¤Î¤Þ¤ÞÆþÎϤ¹¤ë¡£ +(Digits¥¯¥é¥¹¤ò°·¤¦»þ¤Ï¤³¤ì¤é¤Î¥¯¥é¥¹Ì¾¤ò¤½¤ì¤¾¤ìDigitsÍѤËÊѹ¹¤¹¤ë¡Ë + +set collection_base_class G4VHitsCollection # ¤â¤È¤Îtransient¥¯¥é¥¹¤Îcollection¤Î¥Ù¡¼¥¹¥¯¥é¥¹¤Î̾Á° +set array_io_base VPHitsCollectionIO # Geant4¤ÎHit I/O¤Î¥Ù¡¼¥¹¥¯¥é¥¹Ì¾ +set catalog HCIOentryT # Geant4¤ÎHit I/O¥«¥¿¥í¥°¥¯¥é¥¹Ì¾ + +ROOT I/O¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ¹¤ë¥Ç¡¼¥¿¥á¥ó¥Ð¡¼¤ÎÀë¸À¤òµ­½Ò¤¹¤ë¡£ +¤³¤ÎÎã¤Ç¤Ï 4¤Ä¤Î Float_tÊÑ¿ô, EdepAbs, EdepGap, TrackLengthAbs, +TrackLengthGap ¤òÀë¸À¤·¤Æ¤¤¤ë¡£ + +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢Ê£¿ô¹Ô¤ÎÆþÎϤò¼õ¤±¼è¤ë¤Î¤Ç¡¢ÆþÎϤνªÎ»¹Ô¤È¤·¤Æ¡Ö..¡×¤òµ­½Ò¤¹¤ë¡£ + +set member + @float@ EdepAbs; + @float@ EdepGap; + @float@ TrackLengthAbs; + @float@ TrackLengthGap; +.. + +¼¡¤Ë Pers01CalorHitRoot¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤òÀ߷פ¹¤ë¡£@class_root@¤È¤¤¤¦ +¥Þ¥¯¥í¤Ï¡¢¥×¥ê¥×¥í¥»¥Ã¥µ¤Ë¤è¤ê¡ÖPers01CalorHitRoot¡×¤Ë¼«Æ°ÊÑ´¹¤µ¤ì¤ë¡£ +ƱÍÍ¤Ë @class_name@¤Ï¾å¤Î set class_nameʸ¤Ç»ØÄꤷ¤¿¡ÖPers01CalorHit¡× +¤È¤Ê¤ë¡£ + +transient¥¯¥é¥¹¤ÎÊݸ¤¹¤ë¤Ù¤­¥á¥ó¥Ð¡¼¤ÎÃͤò¾å¤ÇÀë¸À¤·¤¿ @class_root@ +¤Î¥Ç¡¼¥¿¥á¥ó¥Ð¡¼¤Ë¥³¥Ô¡¼¤¹¤ë¡£ + +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢Ê£¿ô¹Ô¤ÎÆþÎϤò¼õ¤±¼è¤ë¤Î¤Ç¡¢ÆþÎϤνªÎ»¹Ô¤È¤·¤Æ¡Ö..¡× +¤òµ­½Ò¤¹¤ë¡£ + +set constructor + @class_root@(@class_name@* hit) + { + EdepAbs = hit->GetEdepAbs(); + EdepGap = hit->GetEdepGap(); + TrackLengthAbs = hit->GetTrakAbs(); + TrackLengthGap = hit->GetTrakGap(); + } +.. + +@make_transient@ ¤È¤¤¤¦Ì¾Á°¤Î¥á¥½¥Ã¥É¤Ï¡¢Event¤ÎRetrieve¤ÎºÝ¤Ë¸Æ¤Ð +¤ì¤ë¡£¤³¤Î¥á¥½¥Ã¥É¤Ë¤Ï¡¢Êݸ¤·¤Æ¤ª¤¤¤¿ @class_root@ ¤Î¥Ç¡¼¥¿¥á¥ó +¥Ð¡¼¤ÎÃͤò»È¤Ã¤Æ¡¢transient¤Ê¤â¤È¤Î¥¯¥é¥¹ @class_name@ ¤ò¹½ÃÛ¤¹¤ë +¤¿¤á¤ÎÊýË¡¤òµ­½Ò¤¹¤ë¡£ + +¤³¤Î¥³¥Þ¥ó¥É¤Ï¡¢Ê£¿ô¹Ô¤ÎÆþÎϤò¼õ¤±¼è¤ë¤Î¤Ç¡¢ÆþÎϤνªÎ»¹Ô¤È¤·¤Æ¡Ö..¡× +¤òµ­½Ò¤¹¤ë¡£ + +set method + @class_name@* @make_transient@() + { + @class_name@* hit = new @class_name@(); + hit->AddAbs(EdepAbs, TrackLengthAbs); + hit->AddGap(EdepGap, TrackLengthGap); + return hit; + } +.. + +¢¡ ¥Þ¥¯¥í +@class_name@ ¤â¤È¤Îtransient¥¯¥é¥¹¤Î̾Á° +@class_root@ Âбþ¤¹¤ëROOT¥¯¥é¥¹¤Î̾Á° +@class_array@ Âбþ¤¹¤ëROOT¥¯¥é¥¹¤Îcollection¤Î̾Á° +@class_io@ Âбþ¤¹¤ëROOT¥¯¥é¥¹¤ÎI/O´ÉÍý¥¯¥é¥¹¤Î̾Á° +@collection_class@ ¤â¤È¤Îtransient¥¯¥é¥¹¤Îcollection¤Î̾Á° +@collection_base_class@ ¤â¤È¤Îtransient¥¯¥é¥¹¤Îcollection¤Î¥Ù¡¼¥¹¥¯¥é¥¹¤Î̾Á° +@catalog@ I/O´ÉÍý¥¯¥é¥¹¤Î¥«¥¿¥í¥°¤Î̾Á° +@entry_object@ ÆâÉôÊÑ¿ô +@entry_name@ ÆâÉôÊÑ¿ô(/persistency/store/using/hitIO¤Ç»ØÄꤹ¤ë) +@make_transient@ ÆâÉôÊÑ¿ô (MakeTransientObject) + +¢¡¥Ç¡¼¥¿·¿¥Þ¥¯¥í +@int@ Int_t +@uint@ UInt_t +@float@ Float_t +@char@ char + +¢¡°ìÈÌŪ¤ÊHitsCollection¥¯¥é¥¹¤Î»ÈÍÑ + +¾å½Ò¤Î Pers01CalorHit.hh¤Î¤è¤¦¤Ë¡¢HitsCollection¥¯¥é¥¹¤È¤·¤Æ + + typedef G4THitsCollection Pers01CalorHitsCollection; + +¤È¡¢G4THitsCollection¤òÍѤ¤¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¾åµ­¤Î *.rootio ¤¬ +¤½¤Î¤Þ¤Þ»È¤¨¤ë¡£ + +¤è¤ê°ìÈÌŪ¤Ê HitsCollection¥¯¥é¥¹¤ò transient hit¤Î½¸¹ç¤È¤·¤ÆÍѤ¤¤Æ¤¤¤ë +¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ëµ­½Ò¤òÄɲ乤롣 + + set collection_class_header yes + +HitsCollection¥¯¥é¥¹¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Hit¤È¤ÏÊ̤ˤ¢¤ë¾ì¹ç yes ¤ò»ØÄꤹ¤ë¡£ + + set collection_class_method_entries Size() + set collection_class_method_add Insert(hit) + set collection_class_method_get GetHit(i) + +HitsCollection¥¯¥é¥¹¤Ë´Þ¤Þ¤ì¤ëHit¥¯¥é¥¹¤Î¿ô¡¢Äɲᢻ²¾È¤Î¤¿¤á¤Î¥á¥½¥Ã¥É̾ +¤ò»ØÄꤹ¤ë¡£(¤³¤ÎÎã¤Îmethod_add¤Î°ú¿ô¤Ïplace holder¤Ç¤¢¤ê¡¢¼ÂºÝ¤Î¥½¡¼¥¹ +¥³¡¼¥ÉºîÀ®»þ¤Ë¤Ï̵»ë¤µ¤ì¤ë) + + set collection_class_signature @collection_class@(f_detName, f_colName, 0) + +HitsCollection¥¯¥é¥¹¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Î¥·¥°¥Í¥Á¥ã¤òµ­½Ò¤¹¤ë¡£f_detName, +f_colName¤Ïɬ¿Ü¡£¤½¤ì°Ê³°¤Î°ú¿ô¤Ë¤Ï¡¢0¡¢1¤Ê¤É¤Î¿ôÃͤΤߤòµ­½Ò¤Ç¤­¤ë¡£ + +Îã¡§MDTHitsCollection¤¬°Ê²¼¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤·¤«»ý¤¿¤Ê¤¤¾ì¹ç + + MDTHitsCollection(G4String detName, G4String colName, MDTSensitiveDetector* sd); + +3ÈÖÌܤΰú¿ô¤Ë¡Ö0¡×¤ò»ØÄꤷ¤Æ¤¤¤ë¡£FADS ROOT I/O¤Ë¤è¤êRetrieve¤µ¤ì¤¿ +HitsCollection¤ËÂФ·¡¢¤³¤ÎÃͤò¥»¥Ã¥È¤¹¤ë¤Î¤Ï¥æ¡¼¥¶¡¼¤ÎÀÕǤ¡£ + +¢¡ ROOT I/O¥¢¥À¥×¥¿¥¯¥é¥¹¤ÎÀ¸À® + +ROOT I/O¥¢¥À¥×¥¿¥¯¥é¥¹¤ÏźÉÕ¤ÎGNUmakefile¤Ë¤è¤ê¡¢¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤ë¡£ +make clean ¤È¤¹¤ë¤È¾¤Î°ì»þŪ¥Õ¥¡¥¤¥ë¤È¤È¤â¤Ë¾Ãµî¤µ¤ì¤ë¡£ + +¼êư¤Ç¼Â¹Ô¤¹¤ë¾ì¹ç¤Ï + +% $G4PEX_DIR/config/fadsrootio.pl rootio/Pers01CalorHit.rootio diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh new file mode 100644 index 0000000000..2a6584ae29 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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: Pers01CalorHit.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01CalorHit_h +#define Pers01CalorHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01CalorHit : public G4VHit +{ + public: + + Pers01CalorHit(); + ~Pers01CalorHit(); + Pers01CalorHit(const Pers01CalorHit&); + const Pers01CalorHit& operator=(const Pers01CalorHit&); + int operator==(const Pers01CalorHit&) const; + + inline void* operator new(size_t); + inline void operator delete(void*); + + void Draw(); + 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; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +typedef G4THitsCollection Pers01CalorHitsCollection; + +extern G4Allocator Pers01CalorHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void* Pers01CalorHit::operator new(size_t) +{ + void* aHit; + aHit = (void*) Pers01CalorHitAllocator.MallocSingle(); + return aHit; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void Pers01CalorHit::operator delete(void* aHit) +{ + Pers01CalorHitAllocator.FreeSingle((Pers01CalorHit*) aHit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh new file mode 100644 index 0000000000..d28623e99c --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.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: Pers01CalorimeterSD.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef Pers01CalorimeterSD_h +#define Pers01CalorimeterSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "globals.hh" + +class Pers01DetectorConstruction; +class G4HCofThisEvent; +class G4Step; +#include "Pers01CalorHit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class Pers01CalorimeterSD : public G4VSensitiveDetector +{ + public: + + Pers01CalorimeterSD(G4String, Pers01DetectorConstruction* ); + ~Pers01CalorimeterSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*,G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + + Pers01CalorHitsCollection* CalCollection; + Pers01DetectorConstruction* Detector; + G4int* HitID; +}; + +#endif + diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh new file mode 100644 index 0000000000..257685826e --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh @@ -0,0 +1,158 @@ +// +// ******************************************************************** +// * 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: Pers01DetectorConstruction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01DetectorConstruction_h +#define Pers01DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class G4Box; +class G4LogicalVolume; +class G4VPhysicalVolume; +class G4Material; +class G4UniformMagField; +class Pers01DetectorMessenger; +class Pers01CalorimeterSD; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + Pers01DetectorConstruction(); + ~Pers01DetectorConstruction(); + + public: + + void SetAbsorberMaterial (G4String); + void SetAbsorberThickness(G4double); + + void SetGapMaterial (G4String); + void SetGapThickness(G4double); + + void SetCalorSizeYZ(G4double); + void SetNbOfLayers (G4int); + + void SetMagField(G4double); + + G4VPhysicalVolume* Construct(); + + void UpdateGeometry(); + + public: + + void PrintCalorParameters(); + + G4double GetWorldSizeX() {return WorldSizeX;}; + G4double GetWorldSizeYZ() {return WorldSizeYZ;}; + + G4double GetCalorThickness() {return CalorThickness;}; + G4double GetCalorSizeYZ() {return CalorSizeYZ;}; + + G4int GetNbOfLayers() {return NbOfLayers;}; + + G4Material* GetAbsorberMaterial() {return AbsorberMaterial;}; + G4double GetAbsorberThickness() {return AbsorberThickness;}; + + G4Material* GetGapMaterial() {return GapMaterial;}; + G4double GetGapThickness() {return GapThickness;}; + + const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;}; + const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;}; + const G4VPhysicalVolume* GetGap() {return physiGap;}; + + private: + + G4Material* AbsorberMaterial; + G4double AbsorberThickness; + + G4Material* GapMaterial; + G4double GapThickness; + + G4int NbOfLayers; + G4double LayerThickness; + + G4double CalorSizeYZ; + G4double CalorThickness; + + G4Material* defaultMaterial; + G4double WorldSizeYZ; + G4double WorldSizeX; + + G4Box* solidWorld; //pointer to the solid World + G4LogicalVolume* logicWorld; //pointer to the logical World + G4VPhysicalVolume* physiWorld; //pointer to the physical World + + G4Box* solidCalor; //pointer to the solid Calor + G4LogicalVolume* logicCalor; //pointer to the logical Calor + G4VPhysicalVolume* physiCalor; //pointer to the physical Calor + + G4Box* solidLayer; //pointer to the solid Layer + G4LogicalVolume* logicLayer; //pointer to the logical Layer + G4VPhysicalVolume* physiLayer; //pointer to the physical Layer + + G4Box* solidAbsorber; //pointer to the solid Absorber + G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber + G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber + + G4Box* solidGap; //pointer to the solid Gap + G4LogicalVolume* logicGap; //pointer to the logical Gap + G4VPhysicalVolume* physiGap; //pointer to the physical Gap + + G4UniformMagField* magField; //pointer to the magnetic field + + Pers01DetectorMessenger* detectorMessenger; //pointer to the Messenger + Pers01CalorimeterSD* calorimeterSD; //pointer to the sensitive detector + + private: + + void DefineMaterials(); + void ComputeCalorParameters(); + G4VPhysicalVolume* ConstructCalorimeter(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void Pers01DetectorConstruction::ComputeCalorParameters() +{ + // Compute derived parameters of the calorimeter + LayerThickness = AbsorberThickness + GapThickness; + CalorThickness = NbOfLayers*LayerThickness; + + WorldSizeX = 1.2*CalorThickness; WorldSizeYZ = 1.2*CalorSizeYZ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/source/persistency/management/include/G4PersistencyMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh similarity index 56% rename from source/persistency/management/include/G4PersistencyMessenger.hh rename to examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh index 52d155656f..a753b299db 100644 --- a/source/persistency/management/include/G4PersistencyMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh @@ -21,58 +21,52 @@ // ******************************************************************** // // -// $Id: G4PersistencyMessenger.hh,v 1.5 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Pers01DetectorMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -// GEANT 4 class header file -// class description: -// -// This is a messenger class for G4PersistencyManager. -// Implemented commands are following; -// -// Commands : -// /db/verbose * Set the Verbose level of G4PersistencyManager. -// /db/run * Set the name of the Run Database -// /db/event * Set the name of the Event Database -// /db/geometry * Set the name of the Geometry Database -// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef G4PersistencyMessenger_h -#define G4PersistencyMessenger_h 1 +#ifndef Pers01DetectorMessenger_h +#define Pers01DetectorMessenger_h 1 -class G4PersistencyManager; +#include "globals.hh" +#include "G4UImessenger.hh" + +class Pers01DetectorConstruction; class G4UIdirectory; -class G4UIcmdWithoutParameter; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; -class G4UIcmdWithABool; -class G4UIcommand; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; -#include "G4UImessenger.hh" -#include "globals.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4PersistencyMessenger: public G4UImessenger +class Pers01DetectorMessenger: public G4UImessenger { public: - G4PersistencyMessenger(G4PersistencyManager* persistencyMgr); - ~G4PersistencyMessenger(); - - public: - void SetNewValue(G4UIcommand* command,G4String newValues); - G4String GetCurrentValue(G4UIcommand* command); - + Pers01DetectorMessenger(Pers01DetectorConstruction* ); + ~Pers01DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + private: - G4PersistencyManager* persistencyManager; - - private: //commands - G4UIdirectory* persistencyDirectory; - G4UIcmdWithAnInteger* verboseCmd; - G4UIcmdWithAString* runDbCmd; - G4UIcmdWithAString* eventDbCmd; - G4UIcmdWithAString* geomDbCmd; + Pers01DetectorConstruction* Pers01Detector; + + G4UIdirectory* Pers01detDir; + G4UIcmdWithAString* AbsMaterCmd; + G4UIcmdWithAString* GapMaterCmd; + G4UIcmdWithADoubleAndUnit* AbsThickCmd; + G4UIcmdWithADoubleAndUnit* GapThickCmd; + G4UIcmdWithADoubleAndUnit* SizeYZCmd; + G4UIcmdWithAnInteger* NbLayersCmd; + G4UIcmdWithADoubleAndUnit* MagFieldCmd; + G4UIcmdWithoutParameter* UpdateCmd; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh new file mode 100644 index 0000000000..2a0fc2ae64 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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: Pers01EventAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01EventAction_h +#define Pers01EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class Pers01EventActionMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01EventAction : public G4UserEventAction +{ + public: + Pers01EventAction(); + virtual ~Pers01EventAction(); + + public: + virtual void BeginOfEventAction(const G4Event*); + virtual void EndOfEventAction(const G4Event*); + + void SetDrawFlag (G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; + + private: + G4int calorimeterCollID; + G4String drawFlag; + G4int printModulo; + Pers01EventActionMessenger* eventMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh new file mode 100644 index 0000000000..34da396635 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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: Pers01EventActionMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01EventActionMessenger_h +#define Pers01EventActionMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class Pers01EventAction; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01EventActionMessenger: public G4UImessenger +{ + public: + Pers01EventActionMessenger(Pers01EventAction*); + ~Pers01EventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + Pers01EventAction* eventAction; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/biasing/B07/include/B07PhysicsList.hh b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh similarity index 64% rename from examples/extended/biasing/B07/include/B07PhysicsList.hh rename to examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh index 58fdfd5aba..3db03bb401 100644 --- a/examples/extended/biasing/B07/include/B07PhysicsList.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh @@ -21,43 +21,52 @@ // ******************************************************************** // // -// $Id: B07PhysicsList.hh,v 1.2 2002/04/19 10:54:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: Pers01PhysicsList.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // +// -#ifndef B07PhysicsList_h -#define B07PhysicsList_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01PhysicsList_h +#define Pers01PhysicsList_h 1 -#include "globals.hh" #include "G4VUserPhysicsList.hh" +#include "globals.hh" -class B07PhysicsList : public G4VUserPhysicsList +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01PhysicsList: public G4VUserPhysicsList { public: - B07PhysicsList(); - virtual ~B07PhysicsList(); + Pers01PhysicsList(); + ~Pers01PhysicsList(); protected: // Construct particle and physics - virtual void ConstructParticle(); - virtual void ConstructProcess(); + void ConstructParticle(); + void ConstructProcess(); + + void SetCuts(); + + + protected: + // these methods Construct particles + void ConstructBosons(); + void ConstructLeptons(); + void ConstructMesons(); + void ConstructBaryons(); - virtual void SetCuts(); - protected: // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); - - void ConstructAllBosons(); - void ConstructAllLeptons(); - void ConstructAllMesons(); - void ConstructAllBaryons(); - void ConstructAllIons(); - void ConstructAllShortLiveds(); - + void ConstructGeneral(); + void ConstructEM(); }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif + + + diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..c7cdb40509 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.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: Pers01PrimaryGeneratorAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01PrimaryGeneratorAction_h +#define Pers01PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4ParticleGun; +class G4Event; +class Pers01DetectorConstruction; +class Pers01PrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + Pers01PrimaryGeneratorAction(Pers01DetectorConstruction*); + ~Pers01PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + void SetRndmFlag(G4String val) { rndmFlag = val;} + + private: + G4ParticleGun* particleGun; //pointer a to G4 class + Pers01DetectorConstruction* Pers01Detector; //pointer to the geometry + + Pers01PrimaryGeneratorMessenger* gunMessenger; //messenger of this class + G4String rndmFlag; //flag for a rndm impact point +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..d4e9773278 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.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: Pers01PrimaryGeneratorMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01PrimaryGeneratorMessenger_h +#define Pers01PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class Pers01PrimaryGeneratorAction; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + Pers01PrimaryGeneratorMessenger(Pers01PrimaryGeneratorAction*); + ~Pers01PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + Pers01PrimaryGeneratorAction* Pers01Action; + G4UIcmdWithAString* RndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh new file mode 100644 index 0000000000..8fa75d1ab7 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * 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: Pers01RunAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01RunAction_h +#define Pers01RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class Pers01RunAction : public G4UserRunAction +{ + public: + Pers01RunAction(); + ~Pers01RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh new file mode 100644 index 0000000000..48f680b1f3 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh @@ -0,0 +1,50 @@ +// +// ******************************************************************** +// * 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: Pers01SteppingAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef Pers01SteppingAction_h +#define Pers01SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01SteppingAction : public G4UserSteppingAction +{ + public: + Pers01SteppingAction(); + ~Pers01SteppingAction(); + + void UserSteppingAction(const G4Step*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh new file mode 100644 index 0000000000..ebd0ff1a0d --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * 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: Pers01SteppingVerbose.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01SteppingVerbose; + +#ifndef Pers01SteppingVerbose_h +#define Pers01SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class Pers01SteppingVerbose : public G4SteppingVerbose +{ + public: + + Pers01SteppingVerbose(); + ~Pers01SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh b/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh new file mode 100644 index 0000000000..6316606d01 --- /dev/null +++ b/examples/extended/persistency/PersEx01/include/Pers01VisManager.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: Pers01VisManager.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ +// GEANT4 tag $Name: geant4-05-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 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/rootio/Pers01CalorHit.rootio b/examples/extended/persistency/PersEx01/rootio/Pers01CalorHit.rootio new file mode 100644 index 0000000000..3cf626520c --- /dev/null +++ b/examples/extended/persistency/PersEx01/rootio/Pers01CalorHit.rootio @@ -0,0 +1,47 @@ +# +# File: Pers01CalorHit.rootio +# +# Author: +# +# Usage: +# Use g4rootio.pl to generate ROOT I/O adapter classes: +# % g4rootio.pl Pers01CalorHit.rootio +# This will generate the following files: +# Pers01CalorHitRoot.hh/cc, Pers01CalorHitsRoot.hh/cc, +# Pers01CalorHitRootIs.hh/cc +# +set class_name Pers01CalorHit +set collection_class Pers01CalorHitsCollection +set collection_base_class G4VHitsCollection +set array_io_base G4VPHitsCollectionIO +set catalog G4HCIOentryT +set sdet_name CalorSD +set add_header + @class_name@.hh +.. +set member + @float@ EdepAbs; + @float@ EdepGap; + @float@ TrackLengthAbs; + @float@ TrackLengthGap; +.. + +set constructor + @class_root@(@class_name@* hit) + { + EdepAbs = hit->GetEdepAbs(); + EdepGap = hit->GetEdepGap(); + TrackLengthAbs = hit->GetTrakAbs(); + TrackLengthGap = hit->GetTrakGap(); + } +.. + +set method + @class_name@* @make_transient@() + { + @class_name@* hit = new @class_name@(); + hit->AddAbs(EdepAbs, TrackLengthAbs); + hit->AddGap(EdepGap, TrackLengthGap); + return hit; + } +.. diff --git a/examples/extended/persistency/PersEx01/run b/examples/extended/persistency/PersEx01/run new file mode 100755 index 0000000000..7e6b81382f --- /dev/null +++ b/examples/extended/persistency/PersEx01/run @@ -0,0 +1,3 @@ +#!/bin/sh +rm -f G4defaultOutput G4run0001.root +../rootio/bin/Linux-g++/G4PersEx01 run.mac diff --git a/examples/extended/persistency/PersEx01/run.mac b/examples/extended/persistency/PersEx01/run.mac new file mode 100644 index 0000000000..5df79e673f --- /dev/null +++ b/examples/extended/persistency/PersEx01/run.mac @@ -0,0 +1,27 @@ +# $Id: run.mac,v 1.3 2002/12/04 18:32:59 morita Exp $ +# +# Macro file for "G4PersEx01.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run.mac +# +/control/verbose 2 +/control/saveHistory +# +/run/verbose 0 +/event/verbose 0 +/tracking/verbose 0 +# +/persistency/verbose 1 +/persistency/select ROOT +/persistency/store/using/hitIO CalorSD CalCollection +# +/persistency/set/writeFile/Hits G4run0001.root +/persistency/printall +# +# e+ 30 MeV to the direction (1.,0.,0.) +# 3 events +# +/gun/particle e+ +/gun/energy 30 MeV +/run/beamOn 20 diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc new file mode 100644 index 0000000000..88d90acbe3 --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * 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: Pers01CalorHit.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01CalorHit.hh" + +G4Allocator Pers01CalorHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01CalorHit::Pers01CalorHit() +{ + EdepAbs = 0.; TrackLengthAbs = 0.; + EdepGap = 0.; TrackLengthGap = 0.; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01CalorHit::~Pers01CalorHit() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01CalorHit::Pers01CalorHit(const Pers01CalorHit& right) +{ + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +const Pers01CalorHit& Pers01CalorHit::operator=(const Pers01CalorHit& right) +{ + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + return *this; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int Pers01CalorHit::operator==(const Pers01CalorHit& right) const +{ + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorHit::Draw() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorHit::Print() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc new file mode 100644 index 0000000000..b563e7f14b --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc @@ -0,0 +1,139 @@ +// +// ******************************************************************** +// * 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: Pers01CalorimeterSD.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01CalorimeterSD.hh" + +#include "Pers01CalorHit.hh" +#include "Pers01DetectorConstruction.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" + +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01CalorimeterSD::Pers01CalorimeterSD(G4String name, + Pers01DetectorConstruction* det) +:G4VSensitiveDetector(name),Detector(det) +{ + collectionName.insert("CalCollection"); + HitID = new G4int[500]; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01CalorimeterSD::~Pers01CalorimeterSD() +{ + delete [] HitID; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +{ + CalCollection = new Pers01CalorHitsCollection + (SensitiveDetectorName,collectionName[0]); + for (G4int j=0;jGetNbOfLayers();j++) {HitID[j] = -1;}; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool Pers01CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + + G4double stepl = 0.; + if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) + stepl = aStep->GetStepLength(); + + if ((edep==0.)&&(stepl==0.)) return false; + + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); + + G4VPhysicalVolume* physVol = theTouchable->GetVolume(); + //theTouchable->MoveUpHistory(); + G4int LayerNumber = 0; + if(Detector->GetNbOfLayers()>1) LayerNumber=theTouchable->GetReplicaNumber(1); + + if (HitID[LayerNumber]==-1) + { + Pers01CalorHit* calHit = new Pers01CalorHit(); + if (physVol == Detector->GetAbsorber()) calHit->AddAbs(edep,stepl); + if (physVol == Detector->GetGap ()) calHit->AddGap(edep,stepl); + HitID[LayerNumber] = CalCollection->insert(calHit) - 1; + if (verboseLevel>0) + G4cout << " New Calorimeter Hit on layer: " << LayerNumber << G4endl; + } + else + { + if (physVol == Detector->GetAbsorber()) + (*CalCollection)[HitID[LayerNumber]]->AddAbs(edep,stepl); + if (physVol == Detector->GetGap()) + (*CalCollection)[HitID[LayerNumber]]->AddGap(edep,stepl); + if (verboseLevel>0) + G4cout << " Energy added to Layer: " << LayerNumber << G4endl; + } + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) +{ + static G4int HCID = -1; + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } + HCE->AddHitsCollection(HCID,CalCollection); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorimeterSD::clear() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorimeterSD::DrawAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01CalorimeterSD::PrintAll() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc new file mode 100644 index 0000000000..c7fead32ce --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc @@ -0,0 +1,473 @@ +// +// ******************************************************************** +// * 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: Pers01DetectorConstruction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01DetectorConstruction.hh" +#include "Pers01DetectorMessenger.hh" + +#include "Pers01CalorimeterSD.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4UniformMagField.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4SDManager.hh" +#include "G4RunManager.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01DetectorConstruction::Pers01DetectorConstruction() +:AbsorberMaterial(0),GapMaterial(0),defaultMaterial(0), + solidWorld(0),logicWorld(0),physiWorld(0), + solidCalor(0),logicCalor(0),physiCalor(0), + solidLayer(0),logicLayer(0),physiLayer(0), + solidAbsorber(0),logicAbsorber(0),physiAbsorber(0), + solidGap (0),logicGap (0),physiGap (0), + magField(0),calorimeterSD(0) +{ + // default parameter values of the calorimeter + AbsorberThickness = 10.*mm; + GapThickness = 5.*mm; + NbOfLayers = 10; + CalorSizeYZ = 10.*cm; + ComputeCalorParameters(); + + // create commands for interactive definition of the calorimeter + detectorMessenger = new Pers01DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01DetectorConstruction::~Pers01DetectorConstruction() +{ delete detectorMessenger;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* Pers01DetectorConstruction::Construct() +{ + DefineMaterials(); + return ConstructCalorimeter(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::DefineMaterials() +{ + //This function illustrates the possible ways to define materials + +G4String name, symbol; //a=mass of a mole; +G4double a, z, density; //z=mean number of protons; +G4int iz, n; //iz=number of protons in an isotope; + // n=number of nucleons in an isotope; + +G4int ncomponents, natoms; +G4double abundance, fractionmass; +G4double temperature, pressure; + +// +// define Elements +// + +a = 1.01*g/mole; +G4Element* H = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); + +a = 12.01*g/mole; +G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., 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 = 28.09*g/mole; +G4Element* Si = new G4Element(name="Silicon",symbol="Si" , z= 14., a); + +// +// define an Element from isotopes, by relative abundance +// + +G4Isotope* U5 = new G4Isotope(name="U235", iz=92, n=235, a=235.01*g/mole); +G4Isotope* U8 = new G4Isotope(name="U238", iz=92, n=238, a=238.03*g/mole); + +G4Element* U = new G4Element(name="enriched Uranium",symbol="U",ncomponents=2); +U->AddIsotope(U5, abundance= 90.*perCent); +U->AddIsotope(U8, abundance= 10.*perCent); + +// +// define simple materials +// + +new G4Material(name="Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3); + +density = 1.390*g/cm3; +a = 39.95*g/mole; +G4Material* lAr = new G4Material(name="liquidArgon", z=18., a, density); + +density = 11.35*g/cm3; +a = 207.19*g/mole; +G4Material* Pb = new G4Material(name="Lead" , z=82., a, density); + +// +// define a material from elements. case 1: chemical molecule +// + +density = 1.000*g/cm3; +G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); +H2O->AddElement(H, natoms=2); +H2O->AddElement(O, natoms=1); + +density = 1.032*g/cm3; +G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2); +Sci->AddElement(C, natoms=9); +Sci->AddElement(H, natoms=10); + +density = 2.200*g/cm3; +G4Material* SiO2 = new G4Material(name="quartz", density, ncomponents=2); +SiO2->AddElement(Si, natoms=1); +SiO2->AddElement(O , natoms=2); + +// +// define a material from elements. case 2: mixture by fractional mass +// + +density = 1.290*mg/cm3; +G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); +Air->AddElement(N, fractionmass=0.7); +Air->AddElement(O, fractionmass=0.3); + +// +// define a material from elements and/or others materials (mixture of mixtures) +// + +density = 0.200*g/cm3; +G4Material* Aerog = new G4Material(name="Aerogel", density, ncomponents=3); +Aerog->AddMaterial(SiO2, fractionmass=62.5*perCent); +Aerog->AddMaterial(H2O , fractionmass=37.4*perCent); +Aerog->AddElement (C , fractionmass= 0.1*perCent); + +// +// examples of gas in non STP conditions +// + +density = 27.*mg/cm3; +pressure = 50.*atmosphere; +temperature = 325.*kelvin; +G4Material* CO2 = new G4Material(name="CarbonicGas", density, ncomponents=2, + kStateGas,temperature,pressure); +CO2->AddElement(C, natoms=1); +CO2->AddElement(O, natoms=2); + +density = 0.3*mg/cm3; +pressure = 2.*atmosphere; +temperature = 500.*kelvin; +G4Material* steam = new G4Material(name="WaterSteam", density, ncomponents=1, + kStateGas,temperature,pressure); +steam->AddMaterial(H2O, fractionmass=1.); + +// +// examples of vacuum +// + +density = universe_mean_density; +pressure = 3.e-18*pascal; +temperature = 2.73*kelvin; +G4Material* Vacuum = new G4Material(name="Galactic", z=1., a=1.01*g/mole, + density,kStateGas,temperature,pressure); + +density = 1.e-5*g/cm3; +pressure = 2.e-2*bar; +temperature = STP_Temperature; //from PhysicalConstants.h +G4Material* beam = new G4Material(name="Beam", density, ncomponents=1, + kStateGas,temperature,pressure); +beam->AddMaterial(Air, fractionmass=1.); + +G4cout << *(G4Material::GetMaterialTable()) << G4endl; + + //default materials of the calorimeter + AbsorberMaterial = Pb; + GapMaterial = lAr; + defaultMaterial = Vacuum; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* Pers01DetectorConstruction::ConstructCalorimeter() +{ + // complete the Calor parameters definition + ComputeCalorParameters(); + + // + // World + // + solidWorld = new G4Box("World", //its name + WorldSizeX/2,WorldSizeYZ/2,WorldSizeYZ/2); //its size + + logicWorld = new G4LogicalVolume(solidWorld, //its solid + defaultMaterial, //its material + "World"); //its name + + physiWorld = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + "World", //its name + logicWorld, //its logical volume + 0, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Calorimeter + // + solidCalor=0; logicCalor=0; physiCalor=0; + solidLayer=0; logicLayer=0; physiLayer=0; + + if (CalorThickness > 0.) + { solidCalor = new G4Box("Calorimeter", //its name + CalorThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);//size + + logicCalor = new G4LogicalVolume(solidCalor, //its solid + defaultMaterial, //its material + "Calorimeter"); //its name + + physiCalor = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + "Calorimeter", //its name + logicCalor, //its logical volume + physiWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + // + // Layer + // + solidLayer = new G4Box("Layer", //its name + LayerThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); //size + + logicLayer = new G4LogicalVolume(solidLayer, //its solid + defaultMaterial, //its material + "Layer"); //its name + if (NbOfLayers > 1) + physiLayer = new G4PVReplica("Layer", //its name + logicLayer, //its logical volume + physiCalor, //its mother + kXAxis, //axis of replication + NbOfLayers, //number of replica + LayerThickness); //witdth of replica + else + physiLayer = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + "Layer", //its name + logicLayer, //its logical volume + physiCalor, //its mother volume + false, //no boolean operation + 0); //copy number + } + + // + // Absorber + // + solidAbsorber=0; logicAbsorber=0; physiAbsorber=0; + + if (AbsorberThickness > 0.) + { solidAbsorber = new G4Box("Absorber", //its name + AbsorberThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); + + logicAbsorber = new G4LogicalVolume(solidAbsorber, //its solid + AbsorberMaterial, //its material + "Absorber"); //its name + + physiAbsorber = new G4PVPlacement(0, //no rotation + G4ThreeVector(-GapThickness/2,0.,0.), //its position + "Absorber", //its name + logicAbsorber, //its logical volume + physiLayer, //its mother + false, //no boulean operat + 0); //copy number + + } + + // + // Gap + // + solidGap=0; logicGap=0; physiGap=0; + + if (GapThickness > 0.) + { solidGap = new G4Box("Gap", + GapThickness/2,CalorSizeYZ/2,CalorSizeYZ/2); + + logicGap = new G4LogicalVolume(solidGap, + GapMaterial, + "Gap"); + + physiGap = new G4PVPlacement(0, //no rotation + G4ThreeVector(AbsorberThickness/2,0.,0.), //its position + "Gap", //its name + logicGap, //its logical volume + physiLayer, //its mother + false, //no boulean operat + 0); //copy number + } + + // + // Sensitive Detectors: Absorber and Gap + // + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + if(!calorimeterSD) + { + calorimeterSD = new Pers01CalorimeterSD("CalorSD",this); + SDman->AddNewDetector( calorimeterSD ); + } + if (logicAbsorber) + logicAbsorber->SetSensitiveDetector(calorimeterSD); + if (logicGap) + logicGap ->SetSensitiveDetector(calorimeterSD); + + // + // Visualization attributes + // + logicWorld->SetVisAttributes (G4VisAttributes::Invisible); + G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + simpleBoxVisAtt->SetVisibility(true); + logicCalor->SetVisAttributes(simpleBoxVisAtt); + + // + //always return the physical World + // + PrintCalorParameters(); + return physiWorld; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::PrintCalorParameters() +{ + G4cout << "\n------------------------------------------------------------" + << "\n---> The calorimeter is " << NbOfLayers << " layers of: [ " + << AbsorberThickness/mm << "mm of " << AbsorberMaterial->GetName() + << " + " + << GapThickness/mm << "mm of " << GapMaterial->GetName() << " ] " + << "\n------------------------------------------------------------\n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) + {AbsorberMaterial = pttoMaterial; + logicAbsorber->SetMaterial(pttoMaterial); + PrintCalorParameters(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::SetGapMaterial(G4String materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) + {GapMaterial = pttoMaterial; + logicGap->SetMaterial(pttoMaterial); + PrintCalorParameters(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::SetAbsorberThickness(G4double val) +{ + // change Absorber thickness and recompute the calorimeter parameters + AbsorberThickness = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::SetGapThickness(G4double val) +{ + // change Gap thickness and recompute the calorimeter parameters + GapThickness = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::SetCalorSizeYZ(G4double val) +{ + // change the transverse size and recompute the calorimeter parameters + CalorSizeYZ = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::SetNbOfLayers(G4int val) +{ + NbOfLayers = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorConstruction::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...... + +void Pers01DetectorConstruction::UpdateGeometry() +{ + G4RunManager::GetRunManager()->DefineWorldVolume(ConstructCalorimeter()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc new file mode 100644 index 0000000000..5eaad96bd6 --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc @@ -0,0 +1,143 @@ +// +// ******************************************************************** +// * 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: Pers01DetectorMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01DetectorMessenger.hh" + +#include "Pers01DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01DetectorMessenger::Pers01DetectorMessenger( + Pers01DetectorConstruction* Pers01Det) +:Pers01Detector(Pers01Det) +{ + Pers01detDir = new G4UIdirectory("/calor/"); + Pers01detDir->SetGuidance("Pers01 detector control."); + + AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this); + AbsMaterCmd->SetGuidance("Select Material of the Absorber."); + AbsMaterCmd->SetParameterName("choice",false); + AbsMaterCmd->AvailableForStates(G4State_Idle); + + GapMaterCmd = new G4UIcmdWithAString("/calor/setGapMat",this); + GapMaterCmd->SetGuidance("Select Material of the Gap."); + GapMaterCmd->SetParameterName("choice",false); + GapMaterCmd->AvailableForStates(G4State_Idle); + + AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); + AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); + AbsThickCmd->SetParameterName("Size",false); + AbsThickCmd->SetRange("Size>=0."); + AbsThickCmd->SetUnitCategory("Length"); + AbsThickCmd->AvailableForStates(G4State_Idle); + + GapThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setGapThick",this); + GapThickCmd->SetGuidance("Set Thickness of the Gap"); + GapThickCmd->SetParameterName("Size",false); + GapThickCmd->SetRange("Size>=0."); + GapThickCmd->SetUnitCategory("Length"); + GapThickCmd->AvailableForStates(G4State_Idle); + + SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeYZ",this); + SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); + SizeYZCmd->SetParameterName("Size",false); + SizeYZCmd->SetRange("Size>0."); + SizeYZCmd->SetUnitCategory("Length"); + SizeYZCmd->AvailableForStates(G4State_Idle); + + NbLayersCmd = new G4UIcmdWithAnInteger("/calor/setNbOfLayers",this); + NbLayersCmd->SetGuidance("Set number of layers."); + NbLayersCmd->SetParameterName("NbLayers",false); + NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); + NbLayersCmd->AvailableForStates(G4State_Idle); + + UpdateCmd = new G4UIcmdWithoutParameter("/calor/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); + + MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/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_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01DetectorMessenger::~Pers01DetectorMessenger() +{ + delete NbLayersCmd; + delete AbsMaterCmd; delete GapMaterCmd; + delete AbsThickCmd; delete GapThickCmd; + delete SizeYZCmd; delete UpdateCmd; + delete MagFieldCmd; + delete Pers01detDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == AbsMaterCmd ) + { Pers01Detector->SetAbsorberMaterial(newValue);} + + if( command == GapMaterCmd ) + { Pers01Detector->SetGapMaterial(newValue);} + + if( command == AbsThickCmd ) + { Pers01Detector->SetAbsorberThickness(AbsThickCmd + ->GetNewDoubleValue(newValue));} + + if( command == GapThickCmd ) + { Pers01Detector->SetGapThickness(GapThickCmd->GetNewDoubleValue(newValue));} + + if( command == SizeYZCmd ) + { Pers01Detector->SetCalorSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));} + + if( command == NbLayersCmd ) + { Pers01Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} + + if( command == UpdateCmd ) + { Pers01Detector->UpdateGeometry(); } + + if( command == MagFieldCmd ) + { Pers01Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc new file mode 100644 index 0000000000..c0059fefeb --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc @@ -0,0 +1,153 @@ +// +// ******************************************************************** +// * 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: Pers01EventAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01EventAction.hh" + +#include "Pers01CalorHit.hh" +#include "Pers01EventActionMessenger.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01EventAction::Pers01EventAction() +:calorimeterCollID(-1),drawFlag("all"),printModulo(1), + eventMessenger(0) +{ + eventMessenger = new Pers01EventActionMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01EventAction::~Pers01EventAction() +{ + delete eventMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01EventAction::BeginOfEventAction(const G4Event* evt) +{ + + G4int evtNb = evt->GetEventID(); + if (evtNb%printModulo == 0) + { + G4cout << "\n---> Begin of event: " << evtNb << G4endl; + HepRandom::showEngineStatus(); + } + + if (calorimeterCollID==-1) + { + G4SDManager * SDman = G4SDManager::GetSDMpointer(); + calorimeterCollID = SDman->GetCollectionID("CalCollection"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01EventAction::EndOfEventAction(const G4Event* evt) +{ + G4int evtNb = evt->GetEventID(); + + // extracted from hits, compute the total energy deposit (and total charged + // track length) in all absorbers and in all gaps + + G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); + Pers01CalorHitsCollection* CHC = 0; + G4int n_hit = 0; + G4double totEAbs=0, totLAbs=0, totEGap=0, totLGap=0; + + if (HCE) CHC = (Pers01CalorHitsCollection*)(HCE->GetHC(calorimeterCollID)); + + if (CHC) + { + n_hit = CHC->entries(); + for (G4int i=0;iGetEdepAbs(); + totLAbs += (*CHC)[i]->GetTrakAbs(); + totEGap += (*CHC)[i]->GetEdepGap(); + totLGap += (*CHC)[i]->GetTrakGap(); + } + } + + // print this information event by event (modulo n) + + if (evtNb%printModulo == 0) { + G4cout << "---> End of event: " << evtNb << G4endl; + + G4cout + << " Absorber: total energy: " << G4std::setw(7) + << G4BestUnit(totEAbs,"Energy") + << " total track length: " << G4std::setw(7) + << G4BestUnit(totLAbs,"Length") + << G4endl + << " Gap: total energy: " << G4std::setw(7) + << G4BestUnit(totEGap,"Energy") + << " total track length: " << G4std::setw(7) + << G4BestUnit(totLGap,"Length") + << G4endl; + + G4cout << "\n " << n_hit + << " hits are stored in Pers01CalorHitsCollection." << G4endl; + } + + // extract the trajectories and draw them + + 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(50); + else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) + trj->DrawTrajectory(50); + else if ((drawFlag == "neutral")&&(trj->GetCharge() == 0.)) + trj->DrawTrajectory(50); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc new file mode 100644 index 0000000000..d44b4e77cf --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.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: Pers01EventActionMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01EventActionMessenger.hh" + +#include "Pers01EventAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01EventActionMessenger::Pers01EventActionMessenger(Pers01EventAction* EvAct) +:eventAction(EvAct) +{ + DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this); + DrawCmd->SetGuidance("Draw the tracks in the event"); + DrawCmd->SetGuidance(" Choice : none, charged(default),neutral, all"); + DrawCmd->SetParameterName("choice",true); + DrawCmd->SetDefaultValue("all"); + DrawCmd->SetCandidates("none charged neutral all"); + DrawCmd->AvailableForStates(G4State_Idle); + + PrintCmd = new G4UIcmdWithAnInteger("/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...... + +Pers01EventActionMessenger::~Pers01EventActionMessenger() +{ + delete DrawCmd; + delete PrintCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01EventActionMessenger::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/persistency/PersEx01/src/Pers01PhysicsList.cc b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc new file mode 100644 index 0000000000..6a220d1c23 --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc @@ -0,0 +1,316 @@ +// +// ******************************************************************** +// * 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: Pers01PhysicsList.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01PhysicsList.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01PhysicsList::Pers01PhysicsList(): G4VUserPhysicsList() +{ + defaultCutValue = 1.0*mm; + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01PhysicsList::~Pers01PhysicsList() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructParticle() +{ + // 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(); + ConstructBaryons(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); + + // optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructMesons() +{ + // mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructBaryons() +{ +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructEM(); + ConstructGeneral(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#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" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4GammaConversion()); + pmanager->AddDiscreteProcess(new G4ComptonScattering()); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); + + } else if (particleName == "e-") { + //electron + G4VProcess* theeminusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeminusIonisation = new G4eIonisation(); + G4VProcess* theeminusBremsstrahlung = new G4eBremsstrahlung(); + // + // add processes + pmanager->AddProcess(theeminusMultipleScattering); + pmanager->AddProcess(theeminusIonisation); + pmanager->AddProcess(theeminusBremsstrahlung); + // + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep,1); + pmanager->SetProcessOrdering(theeminusIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(theeminusIonisation, idxPostStep,2); + pmanager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep,3); + + } else if (particleName == "e+") { + //positron + G4VProcess* theeplusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeplusIonisation = new G4eIonisation(); + G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung(); + G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation(); + // + // add processes + pmanager->AddProcess(theeplusMultipleScattering); + pmanager->AddProcess(theeplusIonisation); + pmanager->AddProcess(theeplusBremsstrahlung); + pmanager->AddProcess(theeplusAnnihilation); + // + // set ordering for AtRestDoIt + pmanager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest); + // + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep,1); + pmanager->SetProcessOrdering(theeplusIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(theeplusIonisation, idxPostStep,2); + pmanager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep,3); + pmanager->SetProcessOrdering(theeplusAnnihilation, idxPostStep,4); + + } else 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); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(anIonisation, idxPostStep,2); + pmanager->SetProcessOrdering(aBremsstrahlung, idxPostStep,3); + pmanager->SetProcessOrdering(aPairProduction, idxPostStep,4); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + // all others charged particles except geantino + G4VProcess* aMultipleScattering = new G4MultipleScattering(); + G4VProcess* anIonisation = new G4hIonisation(); + // + // add processes + pmanager->AddProcess(anIonisation); + pmanager->AddProcess(aMultipleScattering); + // + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1); + pmanager->SetProcessOrdering(anIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); + pmanager->SetProcessOrdering(anIonisation, idxPostStep,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4Decay.hh" + +void Pers01PhysicsList::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 ->AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PhysicsList::SetCuts() +{ + if (verboseLevel >0){ + G4cout << "Pers01PhysicsList::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(defaultCutValue, "gamma"); + SetCutValue(defaultCutValue, "e-"); + SetCutValue(defaultCutValue, "e+"); + + // set cut values for proton and anti_proton before all other hadrons + // because some processes for hadrons need cut values for proton/anti_proton + // + SetCutValue(defaultCutValue, "proton"); + SetCutValue(defaultCutValue, "anti_proton"); + + SetCutValueForOthers(defaultCutValue); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..6c5fa8dc90 --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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: Pers01PrimaryGeneratorAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01PrimaryGeneratorAction.hh" + +#include "Pers01DetectorConstruction.hh" +#include "Pers01PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01PrimaryGeneratorAction::Pers01PrimaryGeneratorAction( + Pers01DetectorConstruction* Pers01DC) +:Pers01Detector(Pers01DC),rndmFlag("off") +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + //create a messenger for this class + gunMessenger = new Pers01PrimaryGeneratorMessenger(this); + + // default particle kinematic + + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + G4ParticleDefinition* particle + = particleTable->FindParticle(particleName="e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); + particleGun->SetParticleEnergy(50.*MeV); + G4double position = -0.5*(Pers01Detector->GetWorldSizeX()); + particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01PrimaryGeneratorAction::~Pers01PrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //this function is called at the begining of event + // + G4double x0 = -0.5*(Pers01Detector->GetWorldSizeX()); + G4double y0 = 0.*cm, z0 = 0.*cm; + if (rndmFlag == "on") + {y0 = (Pers01Detector->GetCalorSizeYZ())*(G4UniformRand()-0.5); + z0 = (Pers01Detector->GetCalorSizeYZ())*(G4UniformRand()-0.5); + } + particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); + + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..9cbaceb46c --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc @@ -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: Pers01PrimaryGeneratorMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01PrimaryGeneratorMessenger.hh" + +#include "Pers01PrimaryGeneratorAction.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01PrimaryGeneratorMessenger::Pers01PrimaryGeneratorMessenger( + Pers01PrimaryGeneratorAction* Pers01Gun) +:Pers01Action(Pers01Gun) +{ + RndmCmd = new G4UIcmdWithAString("/gun/random",this); + RndmCmd->SetGuidance("Shoot randomly the incident particle."); + RndmCmd->SetGuidance(" Choice : on(default), off"); + RndmCmd->SetParameterName("choice",true); + RndmCmd->SetDefaultValue("on"); + RndmCmd->SetCandidates("on off"); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01PrimaryGeneratorMessenger::~Pers01PrimaryGeneratorMessenger() +{ + delete RndmCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01PrimaryGeneratorMessenger::SetNewValue( + G4UIcommand* command, G4String newValue) +{ + if( command == RndmCmd ) + { Pers01Action->SetRndmFlag(newValue);} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc b/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc new file mode 100644 index 0000000000..542fd36a64 --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01RunAction.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: Pers01RunAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01RunAction.hh" + +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01RunAction::Pers01RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01RunAction::~Pers01RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01RunAction::BeginOfRunAction(const G4Run* aRun) +{ + + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01RunAction::EndOfRunAction(const G4Run* ) +{ + if (G4VVisManager::GetConcreteInstance()) { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc new file mode 100644 index 0000000000..b7199e397f --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: Pers01SteppingAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01SteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01SteppingAction::Pers01SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01SteppingAction::~Pers01SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01SteppingAction::UserSteppingAction(const G4Step*) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc new file mode 100644 index 0000000000..a738fb636b --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.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: Pers01SteppingVerbose.cc,v 1.1 2002/12/04 02:44:27 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "Pers01SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01SteppingVerbose::Pers01SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +Pers01SteppingVerbose::~Pers01SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << G4std::setw( 5) << "#Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "Volume" << " " + << G4std::setw(10) << "Process" << G4endl; + } + + G4cout << G4std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << G4std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != 0){ + G4cout << " " + << G4std::setw(10) + << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); + } else { + G4cout << " UserLimit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << G4std::setw(3) << tN2ndariesTot + << "(Rest=" << G4std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << G4std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << G4std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << G4std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << G4std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << G4std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void Pers01SteppingVerbose::TrackingStarted() +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << G4std::setw( 5) << "Step#" << " " + << G4std::setw( 6) << "X" << " " + << G4std::setw( 6) << "Y" << " " + << G4std::setw( 6) << "Z" << " " + << G4std::setw( 9) << "KineE" << " " + << G4std::setw( 9) << "dEStep" << " " + << G4std::setw(10) << "StepLeng" + << G4std::setw(10) << "TrakLeng" + << G4std::setw(10) << "Volume" << " " + << G4std::setw(10) << "Process" << G4endl; + + G4cout << G4std::setw( 5) << fTrack->GetCurrentStepNumber() << " " + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length") + << G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length"); + + if(fTrack->GetNextVolume()){ + G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc b/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc new file mode 100644 index 0000000000..913c40d83a --- /dev/null +++ b/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc @@ -0,0 +1,153 @@ +// +// ******************************************************************** +// * 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.1 2002/12/04 02:44:27 morita Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// 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 "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...... + +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 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/persistency/PersEx01/vis.mac b/examples/extended/persistency/PersEx01/vis.mac new file mode 100644 index 0000000000..405a89019f --- /dev/null +++ b/examples/extended/persistency/PersEx01/vis.mac @@ -0,0 +1,27 @@ +# +# Macro file for the initialization phase of "exampleN03.cc" +# when running in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/control/saveHistory +/run/verbose 2 +# +# create empty scene +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +# +/vis/open DAWNFILE +/vis/open OGLIX +# +/vis/viewer/flush +# +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +# +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate diff --git a/examples/extended/persistency/PersistentEx01/GNUmakefile b/examples/extended/persistency/PersistentEx01/GNUmakefile deleted file mode 100644 index 67a9160958..0000000000 --- a/examples/extended/persistency/PersistentEx01/GNUmakefile +++ /dev/null @@ -1,32 +0,0 @@ -# $Id: GNUmakefile,v 1.5 2001/03/15 22:56:27 morita Exp $ -# -------------------------------------------------------------- -# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. -# -------------------------------------------------------------- -# You must have unique G4EXAMPLE_FDID assigned by your local -# manager of Objectivity/DB lock server. -# - -name := PersistentEx01 -G4ODBMS := true -G4TARGET := $(name) -G4EXLIB := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../.. -endif - -.PHONY: all - -all: lib bin - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4EXAMPLE_BOOT) - - CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4TMPDIR) - -include $(G4INSTALL)/config/binmake.gmk - diff --git a/examples/extended/persistency/PersistentEx01/History b/examples/extended/persistency/PersistentEx01/History deleted file mode 100644 index c455680556..0000000000 --- a/examples/extended/persistency/PersistentEx01/History +++ /dev/null @@ -1,105 +0,0 @@ -$Id: History,v 1.12 2001/06/19 15:07:44 morita Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Example PersistentEx01 History file - ----------------------------------- -This file should be used by the test developer to briefly -summarize all major modifications introduced in the code and keep -track of all tags. - - ---------------------------------------------------------- - * Reverse chronological order (last date on top), please * - ---------------------------------------------------------- - -June 20, 2001 Y.Morita (PersistentEx01-V03-01-00) -- New setup scripts for SUN-CC5 and gcc-2.95.2. - -March 15, 2001 Y.Morita (PersistentEx01-V03-00-00) -- Updated GNUmakefile for new config. - -June 17, 2000 John Allison (PersistentEx01-V01-00-01) -- Updated PersistentEx01.out for geant4-01-01-ref-06. - -8th June 2000 Y.Morita (PersistentEx01-V01-00-00) -- tagged for release 2.0 - -5th December 1999 Y.Morita (PersistentEx01-V00-01-05) -- LD_LIBRARY_PATH change for Linux -- readDB: added access to G4PPrimaryParticle. - -3rd December 1999 Y.Morita (PersistentEx01-V00-01-04) -- Added short example of using HepODBMS tag database - (createTag, readTag) -- Bug fixes - -1st December 1999 Y.Morita (PersistentEx01-V00-01-03) -- Fix GNUmakefile to pick up right dependency files. -- new PersistentEx01run script file for new config. - -23th November 1999 Y.Morita (PersistentEx01-V00-01-02) -- use interactive mode and batch mode -- bug fix in PersEx01EventAction.cc -- updated README, PersistentEx01.in, PersistentEx01.out - -19th November 1999 Y.Morita (PersistentEx01-V00-01-01) -- coworks with persistency-V00-01-06 (STL version) -- fix for readDB - -9th November 1999 Y.Morita (PersistentEx01-V00-01-00) -- coworks with persistency-V00-01-03 - -3rd November 1999 Y.Morita -- Renamed from examples/extended/E02 - -26th Octobre 1999 Y.Morita -- Created g4odbms_setup.sh -- Modified g4odbms_setup.csh for Objy 5.1 and HepODBMS 0.3.0.1 -- Fixed typo in README -- Check LD_LIBRARY_PATH in exampleE02run -- Barion -> Baryon in ExE02PhysicsList.hh/.cc - -17 Apr., 1999 H.Kurashige -- Modify SetCuts() and ConstructParticle() in ExE02PhysicsList -- Modify BeginOfRunAction() and EndOfRunAction() in ExE02RunAction -- Modify ClassifyNewTrack() in ExE02StackingAction -- Modify BeginOfEventAction() and EndOfEventAction() in ExN02EventAction - -14th November 1998 Y.Morita -- Modified from N08 to E02 (exampleE02-00-03-01) - -14th October 1998 John Allison -- Moved from N08. - -25th August 1998 Y.Morita -- tagged (exampleN08-00-02-02) - -24th August 1998 Y.Morita -- Fixed typo on exampleN08.cc -- script cleanup on exampleN08run - -21st August 1998 John Allison -- Renamed file My* to ExN08*. - -August 7th, 1998 John Allison -- Moved from test04. - -July 15, 98 Y. Morita -- GNUmakefile cleandb target revised -- README new instructions -- g4odbms_setup.csh example setup -- test04.cc bug fix - -July 14, 98 Y. Morita -- Geometry persistency incorporated. - -July 8, 98 Y. Morita -- First skeleton version to demonstrate persistency capability - in Geant4. - -June 27, 98 G. Cosmo -- Created. - diff --git a/examples/extended/persistency/PersistentEx01/PersistentEx01.in b/examples/extended/persistency/PersistentEx01/PersistentEx01.in deleted file mode 100644 index cbda5bc7c0..0000000000 --- a/examples/extended/persistency/PersistentEx01/PersistentEx01.in +++ /dev/null @@ -1,15 +0,0 @@ -# -# PersistentEx01.in -# -/control/verbose 2 -/db/verbose 2 -###/db/run NewRuns -###/db/event NewEvents -###/db/geometry NewGeometry -/run/initialize -# -# 10 events -# -/run/beamOn 10 -# -exit diff --git a/examples/extended/persistency/PersistentEx01/PersistentEx01.out b/examples/extended/persistency/PersistentEx01/PersistentEx01.out deleted file mode 100644 index 94e63a49fd..0000000000 --- a/examples/extended/persistency/PersistentEx01/PersistentEx01.out +++ /dev/null @@ -1,192 +0,0 @@ -LD_LIBRARY_PATH = /afs/cern.ch/sw/lhcxx/specific/sun/Objectivity/5.1/lib:/usr/local/libexec/jdk/1.1.6/lib:/opt/SUNWspro/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/afs/cern.ch/sw/lhcxx/specific/@sys/HepODBMS/0.3.0.1/lib - -Copying G4EXAMPLE_BOOT into runtime federated database... -Creating new runtime federated database /afs/cern.ch/sw/geant4/stt/dev2/SUN-CC/debug_NONISO/exampleSchema/SUN-CC/PersistentEx01 for FDID 207 -Run with active lockserver -Schema import from PersistentEx01 to PersistentEx01 - -Updating Name Service values... -Now updating System Name Space (catalog) values... -Now updating Database File locations... - -Federated Database Installation complete. -OO_FD_BOOT is set to /afs/cern.ch/sw/geant4/stt/dev2/SUN-CC/debug_NONISO/exampleFD/SUN-CC/PersistentEx01 - -Opening federated database OO_FD_BOOT. -********************************************** - Geant4 version $Name: geant4-04-01 $ - (06-Apr-2001) - Copyright : Geant4 Collaboration -********************************************** -# -# PersistentEx01.in -# -/db/verbose 2 -###/db/run NewRuns -###/db/event NewEvents -###/db/geometry NewGeometry -/run/initialize - -- Tracker type sensitive detector -PersEx01PhysicsList::SetCuts:CutLength : 1 (mm) - -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 10 keV to 100 GeV in 100 bins. - -phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z - Sandia crossSection below 50 KeV - PhysicsTables from 50 keV to 50 MeV in 100 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -# -# 10 events -# -/run/beamOn 10 -Transaction started for /Geometry/GeomContainer/ with non-sustained mode. - -- Geometry stored in /Geometry/GeomContainer/ -Transaction is committed on /Geometry/GeomContainer/ ->>> Event 0 -Event : 0 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 34.1915 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 5.53475 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 0 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 1 -Event : 1 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 23.2999 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 29.1522 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 1 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 2 -Event : 2 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 14.3968 -mySD/OddCollection Number of hits 40 - Edep of the first Hit 65.8934 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 2 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 3 -Event : 3 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 49.9221 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 21.264 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 3 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 4 -Event : 4 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 13.3126 -mySD/OddCollection Number of hits 43 - Edep of the first Hit 16.2155 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 4 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 5 -Event : 5 -mySD/EvenCollection Number of hits 25 - Edep of the first Hit 41.9428 -mySD/OddCollection Number of hits 27 - Edep of the first Hit 7.70035 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 5 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 6 -Event : 6 -mySD/EvenCollection Number of hits 30 - Edep of the first Hit 48.9032 -mySD/OddCollection Number of hits 17 - Edep of the first Hit 10.2197 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 6 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 7 -Event : 7 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 1.93499 -mySD/OddCollection Number of hits 46 - Edep of the first Hit 10.5944 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 7 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 8 -Event : 8 -mySD/EvenCollection Number of hits 16 - Edep of the first Hit 19.969 -mySD/OddCollection Number of hits 35 - Edep of the first Hit 13.4286 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 8 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ ->>> Event 9 -Event : 9 -mySD/EvenCollection Number of hits 28 - Edep of the first Hit 31.4189 -mySD/OddCollection Number of hits 22 - Edep of the first Hit 43.0041 -Transaction started for /Events/EventContainer/ with non-sustained mode. - -- G4PEvent 9 stored in /Events/EventContainer/ -Transaction is committed on /Events/EventContainer/ -Transaction started for /Runs/RunContainer/ with non-sustained mode. - -- G4PRun 0 stored in /Runs/RunContainer/ -Transaction is committed on /Runs/RunContainer/ -# -exit -PersistencyManager is deleting. diff --git a/examples/extended/persistency/PersistentEx01/PersistentEx01run b/examples/extended/persistency/PersistentEx01/PersistentEx01run deleted file mode 100755 index 9d20e9b63a..0000000000 --- a/examples/extended/persistency/PersistentEx01/PersistentEx01run +++ /dev/null @@ -1,48 +0,0 @@ -#! /bin/csh -f - -# check some configurations - -if ( ! $?G4EXAMPLE_FDID ) then - echo "G4EXAMPLE_FDID is not defined. Stop." - exit 2 -endif - -# setup some variables - -set name = PersistentEx01 - -set CWD = `pwd` -set G4ROOT = ${CWD}/../../../.. -if ( $?G4WORKDIR ) then - set G4BIN = ${G4WORKDIR}/bin/${G4SYSTEM} -else - set G4BIN = ${G4ROOT}/bin/${G4SYSTEM} -endif - -# check for LHC++ variables - -source ${G4ROOT}/examples/extended/persistency/PersistentEx01/setup_lhcxx.csh - -# install new runtime federated database - -set G4EXAMPLE_FD = $G4WORKDIR/exampleFD/$G4SYSTEM/${name} - -echo "Copying G4EXAMPLE_BOOT into runtime federated database..." -gmake newfd - -setenv OO_FD_BOOT $G4EXAMPLE_FD - -echo "OO_FD_BOOT is set to $OO_FD_BOOT" -echo "" - -if ( $?BACKGROUND ) then - if ( -e ${name}.log.old ) rm -f ${name}.log.old - if ( -e ${name}.log ) mv -f ${name}.log ${name}.log.old - ${G4BIN}/${name} ${name}.in >& ${name}.log & - echo "Job ${name} submitted..." - sleep 2 - echo "tail -f ${name}.log" - tail -f ${name}.log -else - ${G4BIN}/${name} ${name}.in -endif diff --git a/examples/extended/persistency/PersistentEx01/README b/examples/extended/persistency/PersistentEx01/README deleted file mode 100644 index da734b873b..0000000000 --- a/examples/extended/persistency/PersistentEx01/README +++ /dev/null @@ -1,265 +0,0 @@ -$Id: README,v 1.8 2001/06/19 15:03:58 morita Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Example PersistentEx01 - ---------------------- - -This example program demonstrates how users can use object database -with Geant4 Persistency Manager with HepODBMS and Objectivity/DB. -Ask your local system manager for the availability of these -products on your system. - -Users of this example are assumed to have the knowledge of -HepODBMS and Objectivity/DB. Refer to the corresponding -documents and examples for detail usage and setups. -It is also recommended to read the Geant4 User's Guide: -"Object persistency" (in Chapter 3) and "Object-oriented database" -(in Appendix). - -============ -Introduction -============ -PersistentEx01 demonstrates how to store event, run and geometry -objects into databases. Only some skelton associations and basic data -members are stored in this release. - -Event: - Event ID and the informaion of the primary vertecies and particles - are stored. Hits are transient in this example, and therefore - they are not stored. See example PersistentEx02 to create - persistent hits, - -Run: - Run ID and number of events are stored in this release. - -Geometry: - Basic geometry types and volume informations are stored. - Note that the association to materials is not supported in - this release. Material names are stored instead. - -There are two types of database transactions in the Geant4 -persistency. Non-sustained transaction, which is used in this -example as a default, stores Geant4 persistent objects -at the end of each event as an atomic database transaction. - -If user wants to create his/her own persitent objects in -the user event action class or in any other user classes, -he/she should explicitly use StartTransaction() and -Commit()/Abort() of the G4PersistentManager. See -PersistentEx02 for an example of the sustained transaction. - -===== -Setup -===== -In addition to the standard Geant4 setup, additional setup for -LHC++, HepODBMS and Objectivity/DB are required. -Here are the required variables: - - G4USE_HEPODBMS <"1" for compiling Geant4 persistent libraries> - - HEP_ODBMS_DIR - HEP_ODBMS_INCLUDES - - OBJY_VERS - OBJY_DIR - - OS <"Solaris", "Linux", "HP-UX" etc used by HepODBMS> - - PATH - MANPATH - LD_LIBRARY_PATH - -Following variables are optional (used by HepODBMS GNUmakefiles): - - LHCXXTOP - PLATF - -____________________________________________________________________________ - -For CERN AFS users, an example setup script "g4odbms_setup.csh" and -"g4odbms_setup.sh" is provided in this directory. - -For csh users, copy "g4odbms_setup.csh" to your local directory, edit -the version numbers of HepODBMS and Objectivity if needed, and put a line -such as - - source g4odbms_setup.csh - -in your .cshrc file. - -For zsh and alike, copy "g4odbms_setup.sh" to your local directory, -edit the version numbers, then put a line such as - - . g4odbms_setup.sh - -in your .zshrc etc... -____________________________________________________________________________ - - -======================= -Objectivity Lock Server -======================= -Make sure that your system is running Objectivity/DB lock -server. Ask your local system administrator for the location of -the lock server. - -If you own your machine, or if you know you are the only user of -Objectivity/DB on your system, you may start your own lock server by: - - oocheckls -notitle `hostname` || oolockserver -notitle -noauto - -See the note below for more detail about the lock server. - -====================================== -Installing Geant4 persistent libraries -====================================== -Persistency in Geant4 is designed to be as an optional sub category. -If the installation of Geant4 has been made without the variable -G4USE_HEPODBMS defined, you must re-install it from the -source directory. - - cd ${G4INSTALL}/source - setenv G4USE_HEPODBMS 1 - gmake - -This will generate persistent granular libraries such as -libG4pmanegement.a, libG4phits.a, etc, in the Geant4 library directory. -This process will also produce schema files in ${G4INSTALL}/schema. - -Make sure that you have set up proper combination of HepODBMS and -Objectivity/DB versions before you build the persistency libraries. -Users of this installation must use the same versions of schema -for building their applications. - -========================================= -Your boot file and federeated database ID -========================================= -Geant4 provids a base boot file which contains database schema -information of Geant4, HepODBMS and Objectivity/DB persistent -classes. When you compile your application with your own -persistent classes, you must copy the Geant4 schema boot file -to your local area and process your schema files into -your boot file. In this example, schema of the example files -are stored into G4EXAMPLE_BOOT, which is located at -${G4WORKDIR}/exampleSchema/${G4SYSTEM} by default. - -When you run your application and populate the database, -copy the schema into runtime federated database G4EXAMPLE_FD. -This is located at ${G4WORKDIR}/exampleFD/${G4SYSTEM} by default. - -To run the runtime federate database concorrently on the same -lock server, each copy of the boot file must have a unique -Federated Database ID (FDID). Ask your local system manager for -the unique FDID on your system, then assign it to - - setenv G4EXAMPLE_FDID - -for example. -___________________________________________________________________________ -Note: On CERN AFS, contact your group system administrator to obtain access - to your group lock server. Generally it is recommended to stay away - from the production lock server when you are building your own - application. Use development lock server or use your own - to avoid unintentional locks being left on the production lock - server. - - To start your own lock server, type - - oocheckls -notitle `hostname` || oolockserver -notitle -noauto - - Check the lock server with - - ps -ef | grep ools - .... - 60156 1 0 06:36:40 pts/15 0:00 ools -OO_NO_AUTOREC - .... - - To kill the lock server, - - ookillls - or - kill -9 - - You must have AFS ACL access to HepODBMS and Objectivity/DB - directories. - - At CERN, the FDID allocation table is given in this URL: - - http://wwwinfo.cern.ch/asd/rd45/white-papers/9804/FDIDAllocation.html -___________________________________________________________________________ - -========================= -PersistentEx01 executable -========================= -PersistentEx01 executable can be made by simply typing "gmake" in this -directory. Use PersistentEx01run csh-script for a simple test. - -example: - gmake # creates PersistentEx01 executable - PersistentEx01run # run PersistentEx01 - -================= -Persistent output -================= -When PersistentEx01 is run correctly, following database files will be -created in your federated database directory $G4EXAMPLE_FD_DIR. - -Events.PersistentEx01.DB Geometry.PersistentEx01.DB -PersistentEx01 PersistentEx01.FDDB -Runs.PersistentEx01.DB System.PersistentEx01.DB - -To browse the database contents, use tools such as "oodump" or "ootoolmgr". - - oodump -notitle -db Events $G4EXAMPLE_FD - oodump -notitle -db Geometry $G4EXAMPLE_FD - oodump -notitle -db Runs $G4EXAMPLE_FD - - setenv DISPLAY :0.0 - ootoolmgr -notitle $G4EXAMPLE_FD - -Make sure to quit the ootoolmgr when you finish browsing. -Otherwise the transaction lock will remain in the lock server -and the further updates to the database will be blocked. - -========================== -readDB, createTag, readTag -========================== -Simple HepODBMS example applications are provided in this directory. -These examples demonstrate how to access the stored Geant4 event objects. -See the corresponding README for more detail. - -========================== -Changing the database name -========================== -To work on different set of federated database, change the -definition of OO_FD_BOOT variable defined in PersistentEx01run. -Use $HEP_ODBMS_DIR/etc/getdb to create a new federeated database. - -To change the database name within the federation, and to -change the verbose level of G4PersistencyManager, following -runtime commands are supported. - - /db/verbose * Set the verbose level of G4PersistencyManager. - /db/run * Set the name of Run Database. - /db/event * Set the name of Event Database. - /db/geometry * Set the name of Geometry Database. - -Here is the example of changing database names in the macro -file PersistentEx01.in. - - # ------------------------- - # - # PersistentEx01.in - # - ..... - /db/run NewRuns - /db/event NewEvents - /db/geometry NewGeometry - ..... - # ------------------------- - --- diff --git a/examples/extended/persistency/PersistentEx01/createTag/GNUmakefile b/examples/extended/persistency/PersistentEx01/createTag/GNUmakefile deleted file mode 100644 index a075ae4222..0000000000 --- a/examples/extended/persistency/PersistentEx01/createTag/GNUmakefile +++ /dev/null @@ -1,59 +0,0 @@ -include $(HEP_ODBMS_DIR)/etc/HepODBMS.mk - -# application name, source files on objects -APPL = createTag -SRCS = $(APPL).cpp -OBJS = $(OS)/$(APPL).$(OBJ_EXT) -LIBS = $(HEP_ODBMS_LIBS) $(OBJY_LIBS) $(OSPACE_LIBS) - -G4INSTALL := ../../../../.. -G4ODBMS := true -ifeq ($(OS),Solaris) - G4SYSTEM := SUN-CC -endif -ifeq ($(OS),HP-UX) - G4SYSTEM := HP-aCC -endif - -CLHEPLIB := /afs/cern.ch/sw/geant4/dev/CLHEP/$(G4SYSTEM)/pro/lib/libCLHEP.a - -include $(G4INSTALL)/config/architecture.gmk - -.PHONY: cleanall - -# CPPFLAGS is defined in Geant4 architecture.gmk -CPPFLAGS += \ - -I$./ \ - -I$(G4SCHEMA_INCLUDE) \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/persistency/events/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/hits/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/tracking/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include - -# C_FLAGS is the one used in the rules of HepODBMS.mk -C_FLAGS += $(CPPFLAGS) - -# Add Geant4 Persistent Libraries -LIBS := -L$(G4LIB)/$(G4SYSTEM) \ - -lG4pmanagement -lG4pgeomn -lG4pgeomBoolean -lG4pcsg \ - -lG4pgeomGlobal -lG4prun -lG4pevents -lG4phits -lG4pglobal \ - -lG4event -lG4partman -lG4hits -lG4digits \ - -lG4materials \ - -lG4intercoms -lG4globman -lG4hepnumerics \ - $(LIBS) \ - $(CLHEPLIB) - -# make APPL the default target -all : $(APPL) - -$(APPL): GNUmakefile $(OBJS) - $(C++) $(C_FLAGS) $(CPPFLAGS) -o $(APPL) $(OBJS) $(LIBS) - -cleanall : clean - @rm -f $(APPL) - diff --git a/examples/extended/persistency/PersistentEx01/createTag/README b/examples/extended/persistency/PersistentEx01/createTag/README deleted file mode 100644 index da45d5d665..0000000000 --- a/examples/extended/persistency/PersistentEx01/createTag/README +++ /dev/null @@ -1,35 +0,0 @@ -$Id: README,v 1.1 1999/12/03 11:20:26 morita Exp $ -------------------------------------------------------------------- - - createTag - --------- - -This short program demonstrates how to create a HepODBMS tag -based on attibutes stored in G4PEvent objects. - -To create and populate the database, see the README file -of PersistentEx01. - -===== -Setup -===== -In addition to the variables required by PersistentEx01, -set OO_FD_BOOT to your runtime federeate database boot file. - - OO_FD_BOOT - -See setup.sh/setup.csh for example setup. - -==================== -createTag executable -==================== -createTag executable can be made by simply typing "gmake" in this -directory. - -After gmake, type "createTab" to create a new selection of tags -in OO_FD_BOOT. - -To access the tag attributes created by this example, see -readTag/README. - --- diff --git a/examples/extended/persistency/PersistentEx01/createTag/createTag.cpp b/examples/extended/persistency/PersistentEx01/createTag/createTag.cpp deleted file mode 100644 index 5d526183a3..0000000000 --- a/examples/extended/persistency/PersistentEx01/createTag/createTag.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#include "HepODBMS/tagdb/HepTagDbApplication.h" -#include "HepODBMS/tagdb/HepAnalysis.h" - -#include "G4PEvent.hh" - -const char tagName[] = "geant4Events"; - -class dbAccessApp : public HepTagDbApplication { - // Application inherits session control from HepTagDbApplication -public: - // this application implements just one method: run the - dbAccessApp(const char *name) : HepTagDbApplication(name) - {}; - - int run() - { - // print an - message("about to initialise the db connection"); - Init(); // initialise the db session - - message("starting an update transaction"); - startUpdate(); // start an update transaction - - // create an iterator over all events in the container "Events" in db "Events" - db("Events"); - ooItr(G4PEvent) pevent_iterator; - pevent_iterator.scan(container("EventContainer")); - -#ifdef REMOVE_OLD_TAGS - // remove an existing tag collection with the name - HepExplorable *cd = HepExplorable::findExplorable(tagName); - if (cd) { - cout << "removing old tag:" << tagName << G4endl; - cd->removeDescription(); - delete cd; - } -#endif - - HepExplorableGenericTags events; // create a tag collection ... - db("Tags"); // ... in db "Tags" - - if (events.createDescription(tagName) == 0) // start creating a new tag field description - fatal("could not create new tag"); // print the message and stop the application - - - // define some attributes in the tag - TagAttribute event_id(events,"eventID"); - TagAttribute n_pvertex(events,"NumberOfPrimaryVertex"); - - - // Loop over all tag collection elements (= all events) - - while(pevent_iterator.next()) - { - HepRef(G4PEvent) evt = pevent_iterator; - // create a new tag entry and bind it to the current event - events.newTag(evt); - - // fill the tag variables with data from the event - event_id = evt->GetEventID(); - n_pvertex = evt->GetNumberOfPrimaryVertex(); - } - - message("End of loop over events."); - - // finish this read transaction and return - commit(); - return 0; - } - -}; - - -int main(int argc, const char *argv[]) -{ - dbAccessApp myApp(argv[0]); // create an application object - - return myApp.run(); // call it's run method -} - diff --git a/examples/extended/persistency/PersistentEx01/createTag/setup.csh b/examples/extended/persistency/PersistentEx01/createTag/setup.csh deleted file mode 100755 index 4f96a7dee2..0000000000 --- a/examples/extended/persistency/PersistentEx01/createTag/setup.csh +++ /dev/null @@ -1,2 +0,0 @@ -setenv OO_FD_BOOT $G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx01 -source ../setup_lhcxx.csh diff --git a/examples/extended/persistency/PersistentEx01/createTag/setup.sh b/examples/extended/persistency/PersistentEx01/createTag/setup.sh deleted file mode 100755 index 8052fe6cd3..0000000000 --- a/examples/extended/persistency/PersistentEx01/createTag/setup.sh +++ /dev/null @@ -1,2 +0,0 @@ -OO_FD_BOOT=$G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx01; export OO_FD_BOOT -. ../setup_lhcxx.sh diff --git a/examples/extended/persistency/PersistentEx01/g4odbms_setup.csh b/examples/extended/persistency/PersistentEx01/g4odbms_setup.csh deleted file mode 100644 index bef72c932d..0000000000 --- a/examples/extended/persistency/PersistentEx01/g4odbms_setup.csh +++ /dev/null @@ -1,61 +0,0 @@ -# -# G4ODBMS user example setup for CERN AFS -# -# Put a line in your .cshrc or .login to source this file. -# -# eg. source ....../g4odbms_setup.csh -# -# Youhei Morita -# - -# ----- Use HepODBMS - -setenv G4USE_HEPODBMS 1 - -# ----- LHCXX related variables - -if( ! $?LHCXXTOP ) then - setenv LHCXXTOP /afs/cern.ch/sw/lhcxx -endif - -switch ($G4SYSTEM) - case SUN-CC: - setenv PLATF sol7 - setenv CC_COMP CC-5.2 - setenv OBJY_VERS 6.1.3 - setenv HEP_ODBMS_VER 0.3.3.1 - breaksw - case Linux-g++: - setenv PLATF @sys - setenv CC_COMP gcc-2.95.2 - setenv OBJY_VERS 6.1.3 - setenv HEP_ODBMS_VER 0.3.3.1 - breaksw - default: - echo "Objectivity and HepODBMS versions not specified for G4SYSTEM = $G4SYSTEM." - breaksw -endsw - -if(! $?CC_COMP )then - setenv CC_COMP "" -else - if( "x${CC_COMP}" != "x" ) then - setenv CC_COMP ${CC_COMP}/ - endif -endif - -# ----- HepODBMS variables setup - -setenv HEP_ODBMS_DIR $LHCXXTOP/specific/$PLATF/${CC_COMP}HepODBMS/${HEP_ODBMS_VER} -setenv HEP_ODBMS_INCLUDES ${HEP_ODBMS_DIR}/include -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$HEP_ODBMS_DIR/lib - -# ----- Objectivity variables setup - -if ( -r /afs/cern.ch/rd45/objectivity/objyenv.csh ) then - setenv OBJY_DIR $LHCXXTOP/specific/$PLATF/${CC_COMP}Objectivity/${OBJY_VERS} - source /afs/cern.ch/rd45/objectivity/objyenv.csh -else - echo "/afs/cern.ch/rd45/objectivity/objyenv.csh not found!" -endif - diff --git a/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh b/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh deleted file mode 100644 index 58039417d7..0000000000 --- a/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh +++ /dev/null @@ -1,52 +0,0 @@ -# -# G4ODBMS user example setup for CERN AFS -# -# Put a line in your .zshrc to source this file. -# -# eg. . /g4odbms_setup.sh -# -# Youhei Morita -# - -# ----- Use HepODBMS - -export G4USE_HEPODBMS=1 - -# ----- LHCXX related variables - -if [ -z "$LHCXXTOP" ] ; then - export LHCXXTOP=/afs/cern.ch/sw/lhcxx -fi - -export CC_COMP="" -case $G4SYSTEM in -SUN-CC) - export PLATF=sol7 - export CC_COMP=CC-5.2/ - export OBJY_VERS=6.1.3 - export HEP_ODBMS_VER=0.3.3.1 - ;; -Linux-g++) - export PLATF=@sys - export CC_COMP=gcc-2.95.2/ - export OBJY_VERS=6.1.3 - export HEP_ODBMS_VER=0.3.3.1 - ;; -default) - echo "Objectivity and HepODBMS versions not specified for G4SYSTEM = $G4SYSTEM." - ;; -esac - -# ----- HepODBMS variables setup - -export HEP_ODBMS_DIR=$LHCXXTOP/specific/$PLATF/${CC_COMP}HepODBMS/${HEP_ODBMS_VER} -export HEP_ODBMS_INCLUDES=${HEP_ODBMS_DIR}/include -export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HEP_ODBMS_DIR/lib - -# ----- Objectivity variables setup - -if [ -r /afs/cern.ch/rd45/objectivity/objyenv.sh ] ; then - export OBJY_DIR=$LHCXXTOP/specific/$PLATF/${CC_COMP}Objectivity/${OBJY_VERS} - . /afs/cern.ch/rd45/objectivity/objyenv.sh -fi - diff --git a/examples/extended/persistency/PersistentEx01/prerunPEx01.mac b/examples/extended/persistency/PersistentEx01/prerunPEx01.mac deleted file mode 100644 index 40a15dc754..0000000000 --- a/examples/extended/persistency/PersistentEx01/prerunPEx01.mac +++ /dev/null @@ -1,6 +0,0 @@ -# -# prerunPEx01.mac -# -/control/verbose 2 -/db/verbose 2 -/run/initialize diff --git a/examples/extended/persistency/PersistentEx01/readDB/GNUmakefile b/examples/extended/persistency/PersistentEx01/readDB/GNUmakefile deleted file mode 100644 index 72ba943ab4..0000000000 --- a/examples/extended/persistency/PersistentEx01/readDB/GNUmakefile +++ /dev/null @@ -1,59 +0,0 @@ -include $(HEP_ODBMS_DIR)/etc/HepODBMS.mk - -# application name, source files on objects -APPL = readDB -SRCS = $(APPL).cpp -OBJS = $(OS)/$(APPL).$(OBJ_EXT) -LIBS = $(HEP_ODBMS_LIBS) $(OBJY_LIBS) $(OSPACE_LIBS) - -G4INSTALL := ../../../../.. -G4ODBMS := true -ifeq ($(OS),Solaris) - G4SYSTEM := SUN-CC -endif -ifeq ($(OS),HP-UX) - G4SYSTEM := HP-aCC -endif - -CLHEPLIB := /afs/cern.ch/sw/geant4/dev/CLHEP/$(G4SYSTEM)/pro/lib/libCLHEP.a - -include $(G4INSTALL)/config/architecture.gmk - -.PHONY: cleanall - -# CPPFLAGS is defined in Geant4 architecture.gmk -CPPFLAGS += \ - -I$./ \ - -I$(G4SCHEMA_INCLUDE) \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/persistency/events/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/hits/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/tracking/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include - -# C_FLAGS is the one used in the rules of HepODBMS.mk -C_FLAGS += $(CPPFLAGS) - -# Add Geant4 Persistent Libraries -LIBS := -L$(G4LIB)/$(G4SYSTEM) \ - -lG4pmanagement -lG4pgeomn -lG4pgeomBoolean -lG4pcsg \ - -lG4pgeomGlobal -lG4prun -lG4pevents -lG4phits -lG4pglobal \ - -lG4event -lG4partman -lG4hits -lG4digits \ - -lG4materials \ - -lG4intercoms -lG4globman -lG4hepnumerics \ - $(LIBS) \ - $(CLHEPLIB) - -# make APPL the default target -all : $(APPL) - -$(APPL): GNUmakefile $(OBJS) - $(C++) $(C_FLAGS) $(CPPFLAGS) -o $(APPL) $(OBJS) $(LIBS) - -cleanall : clean - @rm -f $(APPL) - diff --git a/examples/extended/persistency/PersistentEx01/readDB/README b/examples/extended/persistency/PersistentEx01/readDB/README deleted file mode 100644 index 21d8ad9f29..0000000000 --- a/examples/extended/persistency/PersistentEx01/readDB/README +++ /dev/null @@ -1,32 +0,0 @@ -$Id: README,v 1.3 1999/12/03 11:20:58 morita Exp $ -------------------------------------------------------------------- - - readDB - ------ - -This short program demonstrates how to access events and their -associations which are stored in the database. - -To create and populate the database, see the README file -of PersistentEx01. - -===== -Setup -===== -In addition to the variables required by PersistentEx01, -set OO_FD_BOOT to your runtime federeate database boot file. - - OO_FD_BOOT - -See setup.sh/setup.csh for example setup. - -================= -readDB executable -================= -readDB executable can be made by simply typing "gmake" in this -directory. - -After gmake, type "readDB" to access the database defined by -OO_FD_BOOT. - --- diff --git a/examples/extended/persistency/PersistentEx01/readDB/readDB.cpp b/examples/extended/persistency/PersistentEx01/readDB/readDB.cpp deleted file mode 100644 index ce6ed12d85..0000000000 --- a/examples/extended/persistency/PersistentEx01/readDB/readDB.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include "HepODBMS/clustering/HepDbApplication.h" - -#include "G4PEvent.hh" -#include "G4PPrimaryVertex.hh" -#include "G4PPrimaryParticle.hh" -#include "G4PHCofThisEvent.hh" -#include "G4PVHitsCollection.hh" - -class dbAccessApp : public HepDbApplication { - // Application inherits session control from HepDbApplication -public: - // this application implements just one method: run the - dbAccessApp(const char *name) : HepDbApplication(name) - {}; - - int run() - { - // print an - message("about to initialise the db connection"); - Init(); // initialise the db session - message("starting a read transaction"); - startRead(); // start a read transaction - - HepDatabaseRef myDb = db("Events"); - - // if the database ref is not valid: - // - print a message - // - exit the application with an error code - if (myDb == 0) - fatal("could not find Events DB"); - - // locates Events container in this database - HepContainerRef cont = container("EventContainer"); - if (cont == 0 ) - fatal("could not find Events Container"); - - // initialize iterator for G4PEvent in "Events" Container - ooItr(G4PEvent) pevent_iterator; - pevent_iterator.scan(cont); - - // Loop for all G4PEvent in the "EventContainer" - - while (pevent_iterator.next()) - { - // access this G4PEvent - int evt_id = pevent_iterator->GetEventID(); - int n_pvertex = pevent_iterator->GetNumberOfPrimaryVertex(); - - cout << G4endl << "Reading event #" << evt_id << ":" << G4endl; - cout << " No. of primary vertex: " << n_pvertex << G4endl; - - // Loop for all primary vertex in this event - for ( int i = 0; i < n_pvertex; i++ ) - { - HepRef(G4PPrimaryVertex) pvertex = - pevent_iterator->GetPrimaryVertex(i); - cout << " ObjectID of the primary vertex: " - << pvertex.sprint() << G4endl; - cout << " No. of particle in the primary vertex: " - << pvertex->GetNumberOfParticle() << G4endl; - - for ( int j = 0; j < pvertex->GetNumberOfParticle() ; j++ ) - { - HepRef(G4PPrimaryParticle) particle = pvertex->GetPrimary(j); - cout << " PDGcode: " << particle->GetPDGcode() - << " Px = " << particle->GetPx() - << " Py = " << particle->GetPy() - << " Pz = " << particle->GetPz() << G4endl; - } - } - - // HitCollections of this event - const HepRef(G4PHCofThisEvent) hcte = pevent_iterator->GetHCofThisEvent(); - if( hcte != 0 ) - { - cout << " ObjectID of the Hit Collections: " << hcte.sprint() << G4endl; - - // Capacity of the Hit Collections VArray - // G4int numHC = hcte->GetCapacity(); - - // Actual number of Hit Collections in this event - G4int numHCact = hcte->GetNumberOfCollections(); - - cout << " No. of the Hit Collections: " << numHCact << G4endl; - for( G4int i = 0; iGetHC(i); - if( aHC != 0 ) - { - cout << " Hit Collection[" << i << "]: Name: " - << aHC->GetName(); - cout << " Sensitive Detector: " << aHC->GetSDname() << G4endl; - } - } - } - else - { cout << " No Hit Collections for this event." << G4endl; } - } - - message("End of loop over events."); - - // finish this read transaction and return - commit(); - return 0; - } - -}; - - -int main(int argc, const char *argv[]) -{ - dbAccessApp myApp(argv[0]); // create an application object - - return myApp.run(); // call it's run method -} - - diff --git a/examples/extended/persistency/PersistentEx01/readDB/setup.csh b/examples/extended/persistency/PersistentEx01/readDB/setup.csh deleted file mode 100644 index 4f96a7dee2..0000000000 --- a/examples/extended/persistency/PersistentEx01/readDB/setup.csh +++ /dev/null @@ -1,2 +0,0 @@ -setenv OO_FD_BOOT $G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx01 -source ../setup_lhcxx.csh diff --git a/examples/extended/persistency/PersistentEx01/readDB/setup.sh b/examples/extended/persistency/PersistentEx01/readDB/setup.sh deleted file mode 100644 index 8052fe6cd3..0000000000 --- a/examples/extended/persistency/PersistentEx01/readDB/setup.sh +++ /dev/null @@ -1,2 +0,0 @@ -OO_FD_BOOT=$G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx01; export OO_FD_BOOT -. ../setup_lhcxx.sh diff --git a/examples/extended/persistency/PersistentEx01/readTag/GNUmakefile b/examples/extended/persistency/PersistentEx01/readTag/GNUmakefile deleted file mode 100644 index 2735dc0b89..0000000000 --- a/examples/extended/persistency/PersistentEx01/readTag/GNUmakefile +++ /dev/null @@ -1,59 +0,0 @@ -include $(HEP_ODBMS_DIR)/etc/HepODBMS.mk - -# application name, source files on objects -APPL = readTag -SRCS = $(APPL).cpp -OBJS = $(OS)/$(APPL).$(OBJ_EXT) -LIBS = $(HEP_ODBMS_LIBS) $(OBJY_LIBS) $(OSPACE_LIBS) - -G4INSTALL := ../../../../.. -G4ODBMS := true -ifeq ($(OS),Solaris) - G4SYSTEM := SUN-CC -endif -ifeq ($(OS),HP-UX) - G4SYSTEM := HP-aCC -endif - -CLHEPLIB := /afs/cern.ch/sw/geant4/dev/CLHEP/$(G4SYSTEM)/pro/lib/libCLHEP.a - -include $(G4INSTALL)/config/architecture.gmk - -.PHONY: cleanall - -# CPPFLAGS is defined in Geant4 architecture.gmk -CPPFLAGS += \ - -I$./ \ - -I$(G4SCHEMA_INCLUDE) \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/persistency/events/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/hits/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/tracking/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include - -# C_FLAGS is the one used in the rules of HepODBMS.mk -C_FLAGS += $(CPPFLAGS) - -# Add Geant4 Persistent Libraries -LIBS := -L$(G4LIB)/$(G4SYSTEM) \ - -lG4pmanagement -lG4pgeomn -lG4pgeomBoolean -lG4pcsg \ - -lG4pgeomGlobal -lG4prun -lG4pevents -lG4phits -lG4pglobal \ - -lG4event -lG4partman -lG4hits -lG4digits \ - -lG4materials \ - -lG4intercoms -lG4globman -lG4hepnumerics \ - $(LIBS) \ - $(CLHEPLIB) - -# make APPL the default target -all : $(APPL) - -$(APPL): GNUmakefile $(OBJS) - $(C++) $(C_FLAGS) $(CPPFLAGS) -o $(APPL) $(OBJS) $(LIBS) - -cleanall : clean - @rm -f $(APPL) - diff --git a/examples/extended/persistency/PersistentEx01/readTag/README b/examples/extended/persistency/PersistentEx01/readTag/README deleted file mode 100644 index 003a710ef2..0000000000 --- a/examples/extended/persistency/PersistentEx01/readTag/README +++ /dev/null @@ -1,25 +0,0 @@ -$Id: README,v 1.1 1999/12/03 11:20:29 morita Exp $ -------------------------------------------------------------------- - - readTag - ------- - -This short program demonstrates how to access tag attributes -created by createTag example, and how to follow the association -of the original objects. - -See the README file of createTag and create a new tag before -running this example. - -===== -Setup -===== -See setup.sh/setup.csh for example setup. - -================== -readTag executable -================== -readTag executable can be made by simply typing "gmake" in this -directory. After gmake, type "readTag". - --- diff --git a/examples/extended/persistency/PersistentEx01/readTag/readTag.cpp b/examples/extended/persistency/PersistentEx01/readTag/readTag.cpp deleted file mode 100644 index 1750043def..0000000000 --- a/examples/extended/persistency/PersistentEx01/readTag/readTag.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "HepODBMS/tagdb/HepTagDbApplication.h" -#include "HepODBMS/tagdb/HepAnalysis.h" - -#include "G4PEvent.hh" - -const char tagName[] = "geant4Events"; - -class dbAccessApp : public HepTagDbApplication { - // Application inherits session control from HepTagDbApplication -public: - // this application implements just one method: run the - dbAccessApp(const char *name) : HepTagDbApplication(name) - {}; - - int run() - { - // print an - message("about to initialise the db connection"); - Init(); // initialise the db session - message("starting a read transaction"); - startRead(); // start a read transaction - - // find the tag collection by name - HepExplorable *events = - HepExplorable::findExplorable(tagName); - - if (events == 0) - fatal("could not find tag collection"); - - // define some attributes in the tag - TagAttribute event_id(events,"eventID"); - TagAttribute n_pvertex(events,"NumberOfPrimaryVertex"); - - // also use G4PEvent directly... - HepRef(G4PEvent) g4evt; - - // Loop over all tag collection elements (= all events) - - for(events->start(); events->next() != 0; ) - { - // use a tag attribute directly in a print statment - cout << "Reading event #" << event_id << ":" << G4endl; - cout << " number of primary vertex: " << n_pvertex << G4endl; - - // - // [ could do some selection based on tag attributes here ... ] - // - // eg. if( n_pvertex < 20 ) - // { ...do something... } - // else - // { ...do anything else... } - // - - // retrieve the associated event object for the current tag - // and navigate to the associated objects/members which are - // not present in the tag (GetNumberOfParticle() in this example). - - if (getEvent(g4evt, events) ) - { - cout << " ObjectID of event: " << g4evt.sprint() << G4endl; - cout << " No. of the primary vertex (from G4PEvent): " - << g4evt->GetNumberOfPrimaryVertex() << G4endl; - - for ( int i = 0; i < n_pvertex; i++ ) - { - HepRef(G4PPrimaryVertex) pvertex = g4evt->GetPrimaryVertex(i); - cout << " ObjectID of primary vertex: " << pvertex.sprint() << G4endl; - cout << " No. of particle in the primary vertex: " - << pvertex->GetNumberOfParticle() << G4endl; - } - } - else - { cout << " No event object found." << G4endl; } - - } - - message("End of loop over events."); - - // finish this read transaction and return - commit(); - return 0; - } - -}; - - -int main(int argc, const char *argv[]) -{ - dbAccessApp myApp(argv[0]); // create an application object - - return myApp.run(); // call it's run method -} - diff --git a/examples/extended/persistency/PersistentEx01/readTag/setup.csh b/examples/extended/persistency/PersistentEx01/readTag/setup.csh deleted file mode 100755 index 4f96a7dee2..0000000000 --- a/examples/extended/persistency/PersistentEx01/readTag/setup.csh +++ /dev/null @@ -1,2 +0,0 @@ -setenv OO_FD_BOOT $G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx01 -source ../setup_lhcxx.csh diff --git a/examples/extended/persistency/PersistentEx01/readTag/setup.sh b/examples/extended/persistency/PersistentEx01/readTag/setup.sh deleted file mode 100755 index 8052fe6cd3..0000000000 --- a/examples/extended/persistency/PersistentEx01/readTag/setup.sh +++ /dev/null @@ -1,2 +0,0 @@ -OO_FD_BOOT=$G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx01; export OO_FD_BOOT -. ../setup_lhcxx.sh diff --git a/examples/extended/persistency/PersistentEx01/setup_lhcxx.csh b/examples/extended/persistency/PersistentEx01/setup_lhcxx.csh deleted file mode 100644 index b998bc80c6..0000000000 --- a/examples/extended/persistency/PersistentEx01/setup_lhcxx.csh +++ /dev/null @@ -1,22 +0,0 @@ -#! /bin/csh -f - -# check for LHC++ variables - -if ( ! $?LHCXXTOP ) set LHCXXTOP = /afs/cern.ch/sw/lhcxx -if ( ! $?PLATF ) set PLATF = $OS -if ( ! $?OSPACE_DIR ) \ - set OSPACE_DIR = $LHCXXTOP/specific/$PLATF/ObjectSpace/2.1/ToolKit - -# check the LD_LIBRARY_PATH - -if( $?LD_LIBRARY_PATH ) then - (echo $LD_LIBRARY_PATH | grep HepODBMS >& /dev/null) || \ - setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$HEP_ODBMS_DIR/lib - if ( $PLATF == "Linux" ) then - (echo $LD_LIBRARY_PATH | grep ObjectSpace >& /dev/null) || \ - setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$OSPACE_DIR/lib - endif - echo LD_LIBRARY_PATH = $LD_LIBRARY_PATH - echo "" -endif - diff --git a/examples/extended/persistency/PersistentEx01/setup_lhcxx.sh b/examples/extended/persistency/PersistentEx01/setup_lhcxx.sh deleted file mode 100644 index 0c8366f361..0000000000 --- a/examples/extended/persistency/PersistentEx01/setup_lhcxx.sh +++ /dev/null @@ -1,23 +0,0 @@ -#! /bin/sh - -# check for LHC++ variables - -if [ -z "$LHCXXTOP" ] ; then LHCXXTOP=/afs/cern.ch/sw/lhcxx ; fi -if [ -z "$PLATF" ] ; then PLATF=$OS ; fi -if [ -z "$OSPACE_DIR" ] ; then - OSPACE_DIR=$LHCXXTOP/specific/$PLATF/ObjectSpace/2.1/ToolKit -fi - -# check the LD_LIBRARY_PATH - -if [ -n "$LD_LIBRARY_PATH" ] ; then - (echo $LD_LIBRARY_PATH | grep HepODBMS >& /dev/null) || \ - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HEP_ODBMS_DIR/lib; export LD_LIBRARY_PATH - if [ $PLATF = "Linux" ] ; then - (echo $LD_LIBRARY_PATH | grep ObjectSpace >& /dev/null) || \ - LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$OSPACE_DIR/lib; export LD_LIBRARY_PATH - fi - echo LD_LIBRARY_PATH = $LD_LIBRARY_PATH - echo "" -fi - diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01DetectorConstruction.cc b/examples/extended/persistency/PersistentEx01/src/PersEx01DetectorConstruction.cc deleted file mode 100644 index 84276da4f4..0000000000 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01DetectorConstruction.cc +++ /dev/null @@ -1,140 +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. * -// ******************************************************************** -// - -#include "PersEx01DetectorConstruction.hh" - -#include "PersEx01TrackerSD.hh" - -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "G4Element.hh" -#include "G4ElementTable.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4SDManager.hh" - -PersEx01DetectorConstruction::PersEx01DetectorConstruction() -{;} - -PersEx01DetectorConstruction::~PersEx01DetectorConstruction() -{;} - -G4VPhysicalVolume* PersEx01DetectorConstruction::Construct() -{ - G4cout << " -- Tracker type sensitive detector" << G4endl; - -//--------- Material definition --------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxigen", symbol="O", iz=8., a); - - a = 26.98*g/mole; - density = 2.7*g/cm3; - G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", z=82., a, density); - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - -//--------- G4VSolid, G4LogicalVolume, G4VPhysicalVolume --------- - - G4double offset=22.5*cm, xTlate, yTlate; - G4int i,j,copyNo; - - G4Box *myWorldBox= new G4Box("WBox",10000*cm, 10000*cm, 10000*cm); - G4Box *myCalBox = new G4Box("CBox",1500*cm, 1500*cm, 1000*cm); - G4Tubs *myTargetTube - = new G4Tubs("TTube",0*cm, 22.5*cm, 1000*cm, 0.*deg, 360.*deg); - - G4LogicalVolume *myWorldLog=new G4LogicalVolume(myWorldBox,Air, - "WLog", 0, 0, 0); - G4LogicalVolume *myCalLog=new G4LogicalVolume(myCalBox,Al, - "CLog", 0, 0, 0); - G4LogicalVolume *myTargetLog=new G4LogicalVolume(myTargetTube,Pb, - "TLog", 0, 0, 0); - - G4PVPlacement *myWorldPhys=new G4PVPlacement(0,G4ThreeVector(), - "WPhys", - myWorldLog, - 0,false,0); - G4PVPlacement *myCalPhys=new G4PVPlacement(0,G4ThreeVector(), - "CalPhys", - myCalLog, - myWorldPhys,false,0); - - G4String tName1("TPhys1"); - copyNo=1; - for (j=1;j<=25;j++) - { - yTlate = -1000.0*cm - 40.0*cm + j*80.0*cm; - for (i=1;i<=50;i++) - { - xTlate = -1000.0*cm - 20.0*cm + i*45.0*cm - offset; - G4PVPlacement *myTargetPhys - =new G4PVPlacement(0,G4ThreeVector(xTlate,yTlate,0*cm), - tName1,myTargetLog,myCalPhys,false,copyNo++); - } - } - G4String tName2("TPhys2"); - copyNo=1; - for (j=1;j<=26;j++) - { - yTlate = -1000.0*cm - 80.0*cm + j*80.0*cm; - for (i=1;i<=50;i++) - { - xTlate = -1000.0*cm - 20.0*cm + i*45.0*cm; - G4PVPlacement *myTargetPhys - =new G4PVPlacement(0,G4ThreeVector(xTlate,yTlate,0*cm), - tName2,myTargetLog,myCalPhys,false,copyNo++); - } - } - -//--------- Sensitive detector ------------------------------------- - - // A concrete object named "mySD", which corresponds to - // the G4LogicalVolume object "myTargetLog" - G4String sdName = "sample/tracker/mySD"; - PersEx01TrackerSD* mySD = new PersEx01TrackerSD( sdName ); - myTargetLog->SetSensitiveDetector( mySD ); - - // "mySD" will be registrated - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - SDman->AddNewDetector( mySD ); - -//------------------------------------------------------------------ - - return myWorldPhys; -} - diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01PhysicsList.cc b/examples/extended/persistency/PersistentEx01/src/PersEx01PhysicsList.cc deleted file mode 100644 index a9b7c0a3f3..0000000000 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01PhysicsList.cc +++ /dev/null @@ -1,217 +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: PersEx01PhysicsList.cc,v 1.4 2001/07/11 09:58:13 gunter Exp $ -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// This is a version for maximum particle set -// History -// first version 10 Jan. 1998 by H.Kurashige -// add decay at rest 26 Feb. 1998 by H.Kurashige -// ------------------------------------------------------------ - -#include "globals.hh" -#include "PersEx01PhysicsList.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "G4ios.hh" -#include "g4std/iomanip" - - -PersEx01PhysicsList::PersEx01PhysicsList(): G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -PersEx01PhysicsList::~PersEx01PhysicsList() -{ -} - -void PersEx01PhysicsList::ConstructParticle() -{ - // 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(); - ConstructBaryons(); - -} - -void PersEx01PhysicsList::ConstructBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx01PhysicsList::ConstructLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx01PhysicsList::ConstructMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx01PhysicsList::ConstructBaryons() -{ - // Construct all baryons - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx01PhysicsList::ConstructIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - - -void PersEx01PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" -void PersEx01PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - pmanager->AddProcess(new G4MultipleScattering(),-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 ((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); - } - } - } -} - -void PersEx01PhysicsList::ConstructHad() -{;} - -void PersEx01PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void PersEx01PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager->AddProcess(theDecayProcess, INT_MAX, -1, INT_MAX); - } - } -} - -void PersEx01PhysicsList::SetCuts() -{ - if (verboseLevel >0){ - G4cout << "PersEx01PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - - // " G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} - diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01TrackerSD.cc b/examples/extended/persistency/PersistentEx01/src/PersEx01TrackerSD.cc deleted file mode 100644 index abcf5c64c6..0000000000 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01TrackerSD.cc +++ /dev/null @@ -1,90 +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. * -// ******************************************************************** -// - -#include "PersEx01TrackerSD.hh" -#include "PersEx01TrackerHit.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4Track.hh" -#include "G4ParticleDefinition.hh" -#include "G4SDManager.hh" -#include "G4ios.hh" - -PersEx01TrackerSD::PersEx01TrackerSD(G4String name) -:G4VSensitiveDetector(name) -{ - G4String HCname; - collectionName.insert(HCname="EvenCollection"); - collectionName.insert(HCname="OddCollection"); -} - -PersEx01TrackerSD::~PersEx01TrackerSD(){;} - -void PersEx01TrackerSD::Initialize(G4HCofThisEvent*HCE) -{ - EvenCollection = new - PersEx01TrackerHitsCollection(SensitiveDetectorName,collectionName[0]); - OddCollection = new - PersEx01TrackerHitsCollection(SensitiveDetectorName,collectionName[1]); -} - -G4bool PersEx01TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) -{ - const G4VPhysicalVolume* physVol - = aStep->GetPreStepPoint()->GetPhysicalVolume(); - G4double edep = aStep->GetTotalEnergyDeposit(); - - PersEx01TrackerHit* newHit = new PersEx01TrackerHit(); - newHit->SetEdep( edep ); - newHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); - if( physVol->GetName() == "TPhys1" ) - { EvenCollection->insert( newHit ); } - else if( physVol->GetName() == "TPhys2" ) - { OddCollection->insert( newHit ); } - return true; -} - -void PersEx01TrackerSD::EndOfEvent(G4HCofThisEvent*HCE) -{ - static G4int IDe = -1; - static G4int IDo = -1; - if(IDe<0) - { IDe = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } - if(IDo<0) - { IDo = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[1]); } - HCE->AddHitsCollection( IDe, EvenCollection ); - HCE->AddHitsCollection( IDo, OddCollection ); -} - -void PersEx01TrackerSD::clear() -{ -} - -void PersEx01TrackerSD::DrawAll() -{ -} - -void PersEx01TrackerSD::PrintAll() -{ -} - diff --git a/examples/extended/persistency/PersistentEx02/GNUmakefile b/examples/extended/persistency/PersistentEx02/GNUmakefile deleted file mode 100644 index c7f7bf1446..0000000000 --- a/examples/extended/persistency/PersistentEx02/GNUmakefile +++ /dev/null @@ -1,32 +0,0 @@ -# $Id: GNUmakefile,v 1.5 2001/03/15 22:57:02 morita Exp $ -# -------------------------------------------------------------- -# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. -# -------------------------------------------------------------- -# You must have unique G4EXAMPLE_FDID assigned by your local -# manager of Objectivity/DB lock server. -# - -name := PersistentEx02 -G4ODBMS := true -G4TARGET := $(name) -G4EXLIB := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../.. -endif - -.PHONY: all - -all: lib bin - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4EXAMPLE_BOOT) - - CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4TMPDIR) - -include $(G4INSTALL)/config/binmake.gmk - diff --git a/examples/extended/persistency/PersistentEx02/History b/examples/extended/persistency/PersistentEx02/History deleted file mode 100644 index a7f0365645..0000000000 --- a/examples/extended/persistency/PersistentEx02/History +++ /dev/null @@ -1,53 +0,0 @@ -$Id: History,v 1.12 2001/06/21 14:20:47 morita Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - PersistentEx02 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 * - ---------------------------------------------------------- - -21 June, 01 Y.Morita (PersistentEx02-V03-01-00) -- new tag for release 3.2 - -April 28, 2001 Y.Morita -- Change NULL to 0 - -March 15, 2001 Y.Morita (PersistentEx02-V03-00-00) -- Updated GNUmakefile for new config. - -June 17, 2000 John Allison (PersistentEx02-V01-00-01) -- Updated PersistentEx02.out for geant4-01-01-ref-06. - -8th June 2000 Y.Morita (PersistentEx02-V01-00-00) -- tagged for release 2.0 - -5th December 1999 Y.Morita (PersistentEx02-V00-01-03) -- LD_LIBRARY_PATH change for Linux -- readDB: added access to G4PPrimaryParticle. - -3rd December 1999 Y.Morita (PersistentEx02-V00-01-02) -- more bug fixes (TrackerSD) - -1st December 1999 Y.Morita (PersistentEx02-V00-01-01) -- Fix GNUmakefile to pick up right dependency files. -- new PersistentEx01run script file for new config. - -29th November 1999 Y.Morita -- Bug fix for persistent hits collection based on PersistentEx01. - (Requires persistency-V00-01-08) - -10th November 1999 Y.Morita (PersistentEx02-V00-01-00) -- tagged for release 4.1 - -Oct 18, 1999 Y. Morita -- Example for persistent hits, started from exampleN02. - diff --git a/examples/extended/persistency/PersistentEx02/PersistentEx02.in b/examples/extended/persistency/PersistentEx02/PersistentEx02.in deleted file mode 100644 index df974cf212..0000000000 --- a/examples/extended/persistency/PersistentEx02/PersistentEx02.in +++ /dev/null @@ -1,15 +0,0 @@ -# -# PersistentEx02.in -# -/control/verbose 2 -/db/verbose 2 -###/db/run NewRuns -###/db/event NewEvents -###/db/geometry NewGeometry -/run/initialize -# -# 100 events -# -/run/beamOn 100 -# -exit diff --git a/examples/extended/persistency/PersistentEx02/PersistentEx02.out b/examples/extended/persistency/PersistentEx02/PersistentEx02.out deleted file mode 100644 index 7087de4e99..0000000000 --- a/examples/extended/persistency/PersistentEx02/PersistentEx02.out +++ /dev/null @@ -1,824 +0,0 @@ -LD_LIBRARY_PATH = /afs/cern.ch/sw/lhcxx/specific/sun/Objectivity/5.1/lib:/usr/local/libexec/jdk/1.1.6/lib:/opt/SUNWspro/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/afs/cern.ch/sw/lhcxx/specific/@sys/HepODBMS/0.3.0.1/lib - -Copying G4EXAMPLE_BOOT into runtime federated database... -Creating new runtime federated database /afs/cern.ch/sw/geant4/stt/dev2/SUN-CC/debug_NONISO/exampleSchema/SUN-CC/PersistentEx02 for FDID 207 -Run with active lockserver -Schema import from PersistentEx02 to PersistentEx02 - -Updating Name Service values... -Now updating System Name Space (catalog) values... -Now updating Database File locations... - -Federated Database Installation complete. -OO_FD_BOOT is set to /afs/cern.ch/sw/geant4/stt/dev2/SUN-CC/debug_NONISO/exampleFD/SUN-CC/PersistentEx02 - -Opening federated database OO_FD_BOOT. -********************************************** - Geant4 version $Name: geant4-04-01 $ - (06-Apr-2001) - Copyright : Geant4 Collaboration -********************************************** -# -# PersistentEx02.in -# -/db/verbose 2 -###/db/run NewRuns -###/db/event NewEvents -###/db/geometry NewGeometry -/run/initialize - -- Tracker type sensitive detector -PersEx02PhysicsList::SetCuts:CutLength : 1 (mm) - -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 10 keV to 100 GeV in 100 bins. - -phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all Z - Sandia crossSection below 50 KeV - PhysicsTables from 50 keV to 50 MeV in 100 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: 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. - -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. - -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: 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. - -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. - -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. - -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. - -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. - -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -# -# 100 events -# -/run/beamOn 100 -Transaction started for /Geometry/GeomContainer/ with non-sustained mode. - -- Geometry stored in /Geometry/GeomContainer/ -Transaction is committed on /Geometry/GeomContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. ->>> Event 0 -Event : 0 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 34.1915 -mySD/OddCollection Number of hits 41 - Edep of the first Hit 5.53475 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 0 stored in /Events/EventContainer/ (sustained) ->>> Event 1 -Event : 1 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 23.2999 -mySD/OddCollection Number of hits 35 - Edep of the first Hit 29.1522 - -- G4PEvent 1 stored in /Events/EventContainer/ (sustained) ->>> Event 2 -Event : 2 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 14.3968 -mySD/OddCollection Number of hits 39 - Edep of the first Hit 65.8934 - -- G4PEvent 2 stored in /Events/EventContainer/ (sustained) ->>> Event 3 -Event : 3 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 49.9221 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 21.264 - -- G4PEvent 3 stored in /Events/EventContainer/ (sustained) ->>> Event 4 -Event : 4 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 13.3126 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 16.2155 - -- G4PEvent 4 stored in /Events/EventContainer/ (sustained) ->>> Event 5 -Event : 5 -mySD/EvenCollection Number of hits 24 - Edep of the first Hit 41.9428 -mySD/OddCollection Number of hits 27 - Edep of the first Hit 7.70035 - -- G4PEvent 5 stored in /Events/EventContainer/ (sustained) ->>> Event 6 -Event : 6 -mySD/EvenCollection Number of hits 29 - Edep of the first Hit 48.9032 -mySD/OddCollection Number of hits 17 - Edep of the first Hit 10.2197 - -- G4PEvent 6 stored in /Events/EventContainer/ (sustained) ->>> Event 7 -Event : 7 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 1.93499 -mySD/OddCollection Number of hits 45 - Edep of the first Hit 10.5944 - -- G4PEvent 7 stored in /Events/EventContainer/ (sustained) ->>> Event 8 -Event : 8 -mySD/EvenCollection Number of hits 16 - Edep of the first Hit 19.969 -mySD/OddCollection Number of hits 34 - Edep of the first Hit 13.4286 - -- G4PEvent 8 stored in /Events/EventContainer/ (sustained) ->>> Event 9 -Event : 9 -mySD/EvenCollection Number of hits 27 - Edep of the first Hit 31.4189 -mySD/OddCollection Number of hits 22 - Edep of the first Hit 43.0041 - -- G4PEvent 9 stored in /Events/EventContainer/ (sustained) ->>> Event 10 -Event : 10 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 30.8409 -mySD/OddCollection Number of hits 34 - Edep of the first Hit 28.0611 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 10 stored in /Events/EventContainer/ (sustained) ->>> Event 11 -Event : 11 -mySD/EvenCollection Number of hits 22 - Edep of the first Hit 32.4305 -mySD/OddCollection Number of hits 25 - Edep of the first Hit 8.81217 - -- G4PEvent 11 stored in /Events/EventContainer/ (sustained) ->>> Event 12 -Event : 12 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 11.5257 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 46.3586 - -- G4PEvent 12 stored in /Events/EventContainer/ (sustained) ->>> Event 13 -Event : 13 -mySD/EvenCollection Number of hits 13 - Edep of the first Hit 12.5938 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 0.741625 - -- G4PEvent 13 stored in /Events/EventContainer/ (sustained) ->>> Event 14 -Event : 14 -mySD/EvenCollection Number of hits 28 - Edep of the first Hit 3.63532 -mySD/OddCollection Number of hits 25 - Edep of the first Hit 13.5259 - -- G4PEvent 14 stored in /Events/EventContainer/ (sustained) ->>> Event 15 -Event : 15 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 19.0235 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 37.7258 - -- G4PEvent 15 stored in /Events/EventContainer/ (sustained) ->>> Event 16 -Event : 16 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 1.24717 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 5.86464 - -- G4PEvent 16 stored in /Events/EventContainer/ (sustained) ->>> Event 17 -Event : 17 -mySD/EvenCollection Number of hits 32 - Edep of the first Hit 13.2498 -mySD/OddCollection Number of hits 17 - Edep of the first Hit 51.8571 - -- G4PEvent 17 stored in /Events/EventContainer/ (sustained) ->>> Event 18 -Event : 18 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 21.9788 -mySD/OddCollection Number of hits 44 - Edep of the first Hit 53.1987 - -- G4PEvent 18 stored in /Events/EventContainer/ (sustained) ->>> Event 19 -Event : 19 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 26.0022 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 53.1515 - -- G4PEvent 19 stored in /Events/EventContainer/ (sustained) ->>> Event 20 -Event : 20 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 18.0813 -mySD/OddCollection Number of hits 43 - Edep of the first Hit 4.29183 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 20 stored in /Events/EventContainer/ (sustained) ->>> Event 21 -Event : 21 -mySD/EvenCollection Number of hits 5 - Edep of the first Hit 18.6669 -mySD/OddCollection Number of hits 41 - Edep of the first Hit 33.1752 - -- G4PEvent 21 stored in /Events/EventContainer/ (sustained) ->>> Event 22 -Event : 22 -mySD/EvenCollection Number of hits 11 - Edep of the first Hit 4.21294 -mySD/OddCollection Number of hits 40 - Edep of the first Hit 4.36274 - -- G4PEvent 22 stored in /Events/EventContainer/ (sustained) ->>> Event 23 -Event : 23 -mySD/EvenCollection Number of hits 26 - Edep of the first Hit 3.97331 -mySD/OddCollection Number of hits 19 - Edep of the first Hit 108.262 - -- G4PEvent 23 stored in /Events/EventContainer/ (sustained) ->>> Event 24 -Event : 24 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 22.8391 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 31.2467 - -- G4PEvent 24 stored in /Events/EventContainer/ (sustained) ->>> Event 25 -Event : 25 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 76.5024 -mySD/OddCollection Number of hits 43 - Edep of the first Hit 7.2116 - -- G4PEvent 25 stored in /Events/EventContainer/ (sustained) ->>> Event 26 -Event : 26 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 22.4802 -mySD/OddCollection Number of hits 34 - Edep of the first Hit 2.86032 - -- G4PEvent 26 stored in /Events/EventContainer/ (sustained) ->>> Event 27 -Event : 27 -mySD/EvenCollection Number of hits 27 - Edep of the first Hit 61.5559 -mySD/OddCollection Number of hits 22 - Edep of the first Hit 47.3304 - -- G4PEvent 27 stored in /Events/EventContainer/ (sustained) ->>> Event 28 -Event : 28 -mySD/EvenCollection Number of hits 22 - Edep of the first Hit 12.3259 -mySD/OddCollection Number of hits 22 - Edep of the first Hit 41.0559 - -- G4PEvent 28 stored in /Events/EventContainer/ (sustained) ->>> Event 29 -Event : 29 -mySD/EvenCollection Number of hits 14 - Edep of the first Hit 7.85987 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 7.0312 - -- G4PEvent 29 stored in /Events/EventContainer/ (sustained) ->>> Event 30 -Event : 30 -mySD/EvenCollection Number of hits 24 - Edep of the first Hit 45.8915 -mySD/OddCollection Number of hits 24 - Edep of the first Hit 37.9709 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 30 stored in /Events/EventContainer/ (sustained) ->>> Event 31 -Event : 31 -mySD/EvenCollection Number of hits 14 - Edep of the first Hit 9.81858 -mySD/OddCollection Number of hits 41 - Edep of the first Hit 12.5792 - -- G4PEvent 31 stored in /Events/EventContainer/ (sustained) ->>> Event 32 -Event : 32 -mySD/EvenCollection Number of hits 24 - Edep of the first Hit 29.7844 -mySD/OddCollection Number of hits 19 - Edep of the first Hit 16.2709 - -- G4PEvent 32 stored in /Events/EventContainer/ (sustained) ->>> Event 33 -Event : 33 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 43.2617 -mySD/OddCollection Number of hits 39 - Edep of the first Hit 17.3373 - -- G4PEvent 33 stored in /Events/EventContainer/ (sustained) ->>> Event 34 -Event : 34 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 128.462 -mySD/OddCollection Number of hits 49 - Edep of the first Hit 21.6578 - -- G4PEvent 34 stored in /Events/EventContainer/ (sustained) ->>> Event 35 -Event : 35 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 18.9519 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 14.4698 - -- G4PEvent 35 stored in /Events/EventContainer/ (sustained) ->>> Event 36 -Event : 36 -mySD/EvenCollection Number of hits 11 - Edep of the first Hit 8.77704 -mySD/OddCollection Number of hits 45 - Edep of the first Hit 52.7854 - -- G4PEvent 36 stored in /Events/EventContainer/ (sustained) ->>> Event 37 -Event : 37 -mySD/EvenCollection Number of hits 29 - Edep of the first Hit 62.5802 -mySD/OddCollection Number of hits 19 - Edep of the first Hit 34.1562 - -- G4PEvent 37 stored in /Events/EventContainer/ (sustained) ->>> Event 38 -Event : 38 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 28.1323 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 30.3472 - -- G4PEvent 38 stored in /Events/EventContainer/ (sustained) ->>> Event 39 -Event : 39 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 8.2046 -mySD/OddCollection Number of hits 41 - Edep of the first Hit 112.965 - -- G4PEvent 39 stored in /Events/EventContainer/ (sustained) ->>> Event 40 -Event : 40 -mySD/EvenCollection Number of hits 27 - Edep of the first Hit 53.3963 -mySD/OddCollection Number of hits 22 - Edep of the first Hit 0.520498 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 40 stored in /Events/EventContainer/ (sustained) ->>> Event 41 -Event : 41 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 56.9513 -mySD/OddCollection Number of hits 39 - Edep of the first Hit 5.62534 - -- G4PEvent 41 stored in /Events/EventContainer/ (sustained) ->>> Event 42 -Event : 42 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 7.69654 -mySD/OddCollection Number of hits 40 - Edep of the first Hit 31.1215 - -- G4PEvent 42 stored in /Events/EventContainer/ (sustained) ->>> Event 43 -Event : 43 -mySD/EvenCollection Number of hits 12 - Edep of the first Hit 24.6901 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 47.9073 - -- G4PEvent 43 stored in /Events/EventContainer/ (sustained) ->>> Event 44 -Event : 44 -mySD/EvenCollection Number of hits 4 - Edep of the first Hit 90.0128 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 7.85146 - -- G4PEvent 44 stored in /Events/EventContainer/ (sustained) ->>> Event 45 -Event : 45 -mySD/EvenCollection Number of hits 27 - Edep of the first Hit 72.4869 -mySD/OddCollection Number of hits 15 - Edep of the first Hit 17.1856 - -- G4PEvent 45 stored in /Events/EventContainer/ (sustained) ->>> Event 46 -Event : 46 -mySD/EvenCollection Number of hits 17 - Edep of the first Hit 2.63679 -mySD/OddCollection Number of hits 32 - Edep of the first Hit 7.76861 - -- G4PEvent 46 stored in /Events/EventContainer/ (sustained) ->>> Event 47 -Event : 47 -mySD/EvenCollection Number of hits 15 - Edep of the first Hit 0.677309 -mySD/OddCollection Number of hits 24 - Edep of the first Hit 14.3137 - -- G4PEvent 47 stored in /Events/EventContainer/ (sustained) ->>> Event 48 -Event : 48 -mySD/EvenCollection Number of hits 11 - Edep of the first Hit 19.7269 -mySD/OddCollection Number of hits 39 - Edep of the first Hit 2.05634 - -- G4PEvent 48 stored in /Events/EventContainer/ (sustained) ->>> Event 49 -Event : 49 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 22.5794 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 58.4931 - -- G4PEvent 49 stored in /Events/EventContainer/ (sustained) ->>> Event 50 -Event : 50 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 104.528 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 85.0795 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 50 stored in /Events/EventContainer/ (sustained) ->>> Event 51 -Event : 51 -mySD/EvenCollection Number of hits 15 - Edep of the first Hit 20.1566 -mySD/OddCollection Number of hits 39 - Edep of the first Hit 32.7288 - -- G4PEvent 51 stored in /Events/EventContainer/ (sustained) ->>> Event 52 -Event : 52 -mySD/EvenCollection Number of hits 4 - Edep of the first Hit 8.73571 -mySD/OddCollection Number of hits 40 - Edep of the first Hit 7.87425 - -- G4PEvent 52 stored in /Events/EventContainer/ (sustained) ->>> Event 53 -Event : 53 -mySD/EvenCollection Number of hits 33 - Edep of the first Hit 10.2809 -mySD/OddCollection Number of hits 16 - Edep of the first Hit 67.4227 - -- G4PEvent 53 stored in /Events/EventContainer/ (sustained) ->>> Event 54 -Event : 54 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 45.236 -mySD/OddCollection Number of hits 40 - Edep of the first Hit 20.834 - -- G4PEvent 54 stored in /Events/EventContainer/ (sustained) ->>> Event 55 -Event : 55 -mySD/EvenCollection Number of hits 5 - Edep of the first Hit 46.4083 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 23.7436 - -- G4PEvent 55 stored in /Events/EventContainer/ (sustained) ->>> Event 56 -Event : 56 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 2.14152 -mySD/OddCollection Number of hits 44 - Edep of the first Hit 27.842 - -- G4PEvent 56 stored in /Events/EventContainer/ (sustained) ->>> Event 57 -Event : 57 -mySD/EvenCollection Number of hits 5 - Edep of the first Hit 70.4385 -mySD/OddCollection Number of hits 41 - Edep of the first Hit 4.52298 - -- G4PEvent 57 stored in /Events/EventContainer/ (sustained) ->>> Event 58 -Event : 58 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 41.055 -mySD/OddCollection Number of hits 35 - Edep of the first Hit 54.3162 - -- G4PEvent 58 stored in /Events/EventContainer/ (sustained) ->>> Event 59 -Event : 59 -mySD/EvenCollection Number of hits 27 - Edep of the first Hit 39.9691 -mySD/OddCollection Number of hits 27 - Edep of the first Hit 27.0996 - -- G4PEvent 59 stored in /Events/EventContainer/ (sustained) ->>> Event 60 -Event : 60 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 14.0926 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 28.9825 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 60 stored in /Events/EventContainer/ (sustained) ->>> Event 61 -Event : 61 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 17.7827 -mySD/OddCollection Number of hits 43 - Edep of the first Hit 9.79498 - -- G4PEvent 61 stored in /Events/EventContainer/ (sustained) ->>> Event 62 -Event : 62 -mySD/EvenCollection Number of hits 31 - Edep of the first Hit 37.9211 -mySD/OddCollection Number of hits 20 - Edep of the first Hit 2.99622 - -- G4PEvent 62 stored in /Events/EventContainer/ (sustained) ->>> Event 63 -Event : 63 -mySD/EvenCollection Number of hits 28 - Edep of the first Hit 15.661 -mySD/OddCollection Number of hits 18 - Edep of the first Hit 11.8508 - -- G4PEvent 63 stored in /Events/EventContainer/ (sustained) ->>> Event 64 -Event : 64 -mySD/EvenCollection Number of hits 28 - Edep of the first Hit 52.2113 -mySD/OddCollection Number of hits 12 - Edep of the first Hit 8.51693 - -- G4PEvent 64 stored in /Events/EventContainer/ (sustained) ->>> Event 65 -Event : 65 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 68.6264 -mySD/OddCollection Number of hits 51 - Edep of the first Hit 13.9765 - -- G4PEvent 65 stored in /Events/EventContainer/ (sustained) ->>> Event 66 -Event : 66 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 75.2143 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 0.350296 - -- G4PEvent 66 stored in /Events/EventContainer/ (sustained) ->>> Event 67 -Event : 67 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 12.6045 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 106.09 - -- G4PEvent 67 stored in /Events/EventContainer/ (sustained) ->>> Event 68 -Event : 68 -mySD/EvenCollection Number of hits 34 - Edep of the first Hit 10.7006 -mySD/OddCollection Number of hits 16 - Edep of the first Hit 5.95943 - -- G4PEvent 68 stored in /Events/EventContainer/ (sustained) ->>> Event 69 -Event : 69 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 19.4701 -mySD/OddCollection Number of hits 35 - Edep of the first Hit 94.7252 - -- G4PEvent 69 stored in /Events/EventContainer/ (sustained) ->>> Event 70 -Event : 70 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 9.66376 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 10.4491 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 70 stored in /Events/EventContainer/ (sustained) ->>> Event 71 -Event : 71 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 6.57662 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 4.00586 - -- G4PEvent 71 stored in /Events/EventContainer/ (sustained) ->>> Event 72 -Event : 72 -mySD/EvenCollection Number of hits 31 - Edep of the first Hit 18.2989 -mySD/OddCollection Number of hits 17 - Edep of the first Hit 17.4929 - -- G4PEvent 72 stored in /Events/EventContainer/ (sustained) ->>> Event 73 -Event : 73 -mySD/EvenCollection Number of hits 13 - Edep of the first Hit 9.80981 -mySD/OddCollection Number of hits 39 - Edep of the first Hit 43.2404 - -- G4PEvent 73 stored in /Events/EventContainer/ (sustained) ->>> Event 74 -Event : 74 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 29.7958 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 1.15918 - -- G4PEvent 74 stored in /Events/EventContainer/ (sustained) ->>> Event 75 -Event : 75 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 2.63033 -mySD/OddCollection Number of hits 45 - Edep of the first Hit 18.7 - -- G4PEvent 75 stored in /Events/EventContainer/ (sustained) ->>> Event 76 -Event : 76 -mySD/EvenCollection Number of hits 24 - Edep of the first Hit 19.0416 -mySD/OddCollection Number of hits 17 - Edep of the first Hit 67.1248 - -- G4PEvent 76 stored in /Events/EventContainer/ (sustained) ->>> Event 77 -Event : 77 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 48.1326 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 53.2688 - -- G4PEvent 77 stored in /Events/EventContainer/ (sustained) ->>> Event 78 -Event : 78 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 8.98802 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 9.27606 - -- G4PEvent 78 stored in /Events/EventContainer/ (sustained) ->>> Event 79 -Event : 79 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 82.0629 -mySD/OddCollection Number of hits 40 - Edep of the first Hit 26.4362 - -- G4PEvent 79 stored in /Events/EventContainer/ (sustained) ->>> Event 80 -Event : 80 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 18.8341 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 37.8026 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 80 stored in /Events/EventContainer/ (sustained) ->>> Event 81 -Event : 81 -mySD/EvenCollection Number of hits 27 - Edep of the first Hit 14.3923 -mySD/OddCollection Number of hits 15 - Edep of the first Hit 28.4391 - -- G4PEvent 81 stored in /Events/EventContainer/ (sustained) ->>> Event 82 -Event : 82 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 0.794183 -mySD/OddCollection Number of hits 44 - Edep of the first Hit 19.7649 - -- G4PEvent 82 stored in /Events/EventContainer/ (sustained) ->>> Event 83 -Event : 83 -mySD/EvenCollection Number of hits 11 - Edep of the first Hit 34.5293 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 11.0381 - -- G4PEvent 83 stored in /Events/EventContainer/ (sustained) ->>> Event 84 -Event : 84 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 21.777 -mySD/OddCollection Number of hits 31 - Edep of the first Hit 39.3528 - -- G4PEvent 84 stored in /Events/EventContainer/ (sustained) ->>> Event 85 -Event : 85 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 27.0443 -mySD/OddCollection Number of hits 41 - Edep of the first Hit 35.3737 - -- G4PEvent 85 stored in /Events/EventContainer/ (sustained) ->>> Event 86 -Event : 86 -mySD/EvenCollection Number of hits 31 - Edep of the first Hit 0.0305549 -mySD/OddCollection Number of hits 20 - Edep of the first Hit 24.6963 - -- G4PEvent 86 stored in /Events/EventContainer/ (sustained) ->>> Event 87 -Event : 87 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 83.564 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 12.1307 - -- G4PEvent 87 stored in /Events/EventContainer/ (sustained) ->>> Event 88 -Event : 88 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 40.0056 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 12.7231 - -- G4PEvent 88 stored in /Events/EventContainer/ (sustained) ->>> Event 89 -Event : 89 -mySD/EvenCollection Number of hits 11 - Edep of the first Hit 5.4018 -mySD/OddCollection Number of hits 35 - Edep of the first Hit 27.4816 - -- G4PEvent 89 stored in /Events/EventContainer/ (sustained) ->>> Event 90 -Event : 90 -mySD/EvenCollection Number of hits 6 - Edep of the first Hit 62.386 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 1.56992 -Transaction is committed on /Events/EventContainer/ -Transaction started for /Events/EventContainer/ with sustained mode. - -- G4PEvent 90 stored in /Events/EventContainer/ (sustained) ->>> Event 91 -Event : 91 -mySD/EvenCollection Number of hits 10 - Edep of the first Hit 32.4751 -mySD/OddCollection Number of hits 38 - Edep of the first Hit 82.1078 - -- G4PEvent 91 stored in /Events/EventContainer/ (sustained) ->>> Event 92 -Event : 92 -mySD/EvenCollection Number of hits 24 - Edep of the first Hit 13.8439 -mySD/OddCollection Number of hits 28 - Edep of the first Hit 10.2436 - -- G4PEvent 92 stored in /Events/EventContainer/ (sustained) ->>> Event 93 -Event : 93 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 29.5644 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 72.0211 - -- G4PEvent 93 stored in /Events/EventContainer/ (sustained) ->>> Event 94 -Event : 94 -mySD/EvenCollection Number of hits 9 - Edep of the first Hit 5.24109 -mySD/OddCollection Number of hits 32 - Edep of the first Hit 27.6502 - -- G4PEvent 94 stored in /Events/EventContainer/ (sustained) ->>> Event 95 -Event : 95 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 18.4752 -mySD/OddCollection Number of hits 42 - Edep of the first Hit 21.1629 - -- G4PEvent 95 stored in /Events/EventContainer/ (sustained) ->>> Event 96 -Event : 96 -mySD/EvenCollection Number of hits 8 - Edep of the first Hit 9.37571 -mySD/OddCollection Number of hits 43 - Edep of the first Hit 1.81649 - -- G4PEvent 96 stored in /Events/EventContainer/ (sustained) ->>> Event 97 -Event : 97 -mySD/EvenCollection Number of hits 7 - Edep of the first Hit 94.2912 -mySD/OddCollection Number of hits 37 - Edep of the first Hit 77.0715 - -- G4PEvent 97 stored in /Events/EventContainer/ (sustained) ->>> Event 98 -Event : 98 -mySD/EvenCollection Number of hits 13 - Edep of the first Hit 2.81038 -mySD/OddCollection Number of hits 36 - Edep of the first Hit 6.01062 - -- G4PEvent 98 stored in /Events/EventContainer/ (sustained) ->>> Event 99 -Event : 99 -mySD/EvenCollection Number of hits 35 - Edep of the first Hit 3.09663 -mySD/OddCollection Number of hits 16 - Edep of the first Hit 58.8186 - -- G4PEvent 99 stored in /Events/EventContainer/ (sustained) -Transaction is committed on /Events/EventContainer/ -Transaction started for /Runs/RunContainer/ with non-sustained mode. - -- G4PRun 0 stored in /Runs/RunContainer/ -Transaction is committed on /Runs/RunContainer/ -# -exit -PersistencyManager is deleting. diff --git a/examples/extended/persistency/PersistentEx02/PersistentEx02run b/examples/extended/persistency/PersistentEx02/PersistentEx02run deleted file mode 100755 index dd4b2c66ee..0000000000 --- a/examples/extended/persistency/PersistentEx02/PersistentEx02run +++ /dev/null @@ -1,48 +0,0 @@ -#! /bin/csh -f - -# check some configurations - -if ( ! $?G4EXAMPLE_FDID ) then - echo "G4EXAMPLE_FDID is not defined. Stop." - exit 2 -endif - -# setup some variables - -set name = PersistentEx02 - -set CWD = `pwd` -set G4ROOT = ${CWD}/../../../.. -if ( $?G4WORKDIR ) then - set G4BIN = ${G4WORKDIR}/bin/${G4SYSTEM} -else - set G4BIN = ${G4ROOT}/bin/${G4SYSTEM} -endif - -# check for LHC++ variables - -source ${G4ROOT}/examples/extended/persistency/PersistentEx01/setup_lhcxx.csh - -# install new runtime federated database - -set G4EXAMPLE_FD = $G4WORKDIR/exampleFD/$G4SYSTEM/${name} - -echo "Copying G4EXAMPLE_BOOT into runtime federated database..." -gmake newfd - -setenv OO_FD_BOOT $G4EXAMPLE_FD - -echo "OO_FD_BOOT is set to $OO_FD_BOOT" -echo "" - -if ( $?BACKGROUND ) then - if ( -e ${name}.log.old ) rm -f ${name}.log.old - if ( -e ${name}.log ) mv -f ${name}.log ${name}.log.old - ${G4BIN}/${name} ${name}.in >& ${name}.log & - echo "Job ${name} submitted..." - sleep 2 - echo "tail -f ${name}.log" - tail -f ${name}.log -else - ${G4BIN}/${name} ${name}.in -endif diff --git a/examples/extended/persistency/PersistentEx02/README b/examples/extended/persistency/PersistentEx02/README deleted file mode 100644 index ae3d7fecfb..0000000000 --- a/examples/extended/persistency/PersistentEx02/README +++ /dev/null @@ -1,142 +0,0 @@ -$Id: README,v 1.6 1999/12/05 22:27:05 morita Exp $ ------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Example PersistentEx02 - ---------------------- - -This example program demonstrates how users can use object database -with Geant4 Persistency Manager with HepODBMS and Objectivity/DB. -Ask your local system manager for the availability of these -products on your system. For more detail description of the -setup, see the README file of PersistentEx01. - -============ -Introduction -============ -PersistentEx02 demonstrates how to store persistent hits, in -addition to other objects demonstrated in PersistentEx01. - -To make persistent hits, schema definitions of PersEx02TrackerHit and -PersEx02TrackerHitsCollection must inherit from Geant4 persistent -hit classes G4PVHit and G4PVHitsCollection. Note that the data -members in persistent hits must be persistent-capable types. - - ------------------------- - In PersEx02TrackerHit.ddl - ------------------------- - class PersEx02TrackerHit : public G4PVHit - { - public: - : - private: - G4Pdouble edep; - G4ThreeVector pos; - : - } - - ------------------------------------ - In PersEx02TrackerHitsCollection.ddl - ------------------------------------ - typedef d_Varray< d_Ref > PersEx02TrackerHitsVArray; - - class PersEx02TrackerHitsCollection : public G4PVHitsCollection - { - public: - : - private: - PersEx02TrackerHitsVArray hitsCollection; - : - } - -When persistent hits collections are made at runtime, each hit collection -should be registered to the collection of hits collections -(G4PHCofThisEvent) by the user SensitiveDetector (PersEx02TrackerSD). -Each event object stored in the database has an association to this -collection of the collections for the future reference. - -==================== -Sustained Transation -==================== - -There are two types of database transactions in the Geant4 -persistency. By default, Geant4 persistent objects are -stored at the end of each event as an atmic database transaction. - -In this example, user-defined persistent hits are created -during the event. To enable this, user should explicitly call -StartTransaction() and Commit() of G4PersistencyManager. -These calls are implemented in BeginOfRunAction() and -EndOfRunAction() of the RunAction class. - - void PersEx02RunAction::BeginOfRunAction(const G4Run* aRun) - { - .... - persM->StartTransaction(kEventDB, kUpdate, true); - .... - } - - void PersEx02RunAction::EndOfRunAction(const G4Run* ) - { - .... - persM->Commit(kEventDB, true); - .... - } - -To make a "check point", a pair of Commit()/StartTransaction() -is called at EndOfEventAction() in the EventAction class at -every 10 events. - - void PersEx02EventAction::EndOfEventAction(const G4Event* evt) - { - .... - if( persM && (evt->GetEventID() % 10 == 0)) - { - persM->Commit(kEventDB, true); - persM->StartTransaction(kEventDB, kUpdate, true); - } - .... - } - -========================= -PersistentEx02 executable -========================= -PersistentEx02 executable can be made by simply typing "gmake" in this -directory. Use PersistentEx02run csh-script for a simple test. - -example: - gmake # creates PersistentEx02 executable - PersistentEx02run # run PersistentEx02 - -PersistentEx02run will copy the G4EXAMPLE_BOOT file into runtime -federated database. Whenever PersistentEx02run is executed again, -it will delete the old federeated database and start from the -new copy of G4EXAMPLE_BOOT. - -================= -Persistent output -================= -When PersistentEx02 is run correctly, following database files will be -created in your runtime federeated database directory. - -Events.PersistentEx02.DB Geometry.PersistentEx02.DB -PersistentEx02 PersistentEx02.FDDB -Runs.PersistentEx02.DB System.PersistentEx02.DB - -Hits are stored in "Events" database. - -To browse the database contents, refer to the README file in -PersistentEx01. Persistent hits are stored in the Events -database. - -====== -readDB -====== -A simple standalone application readDB, provided in this directory, -can also be used to access the event and hits objects. -See PersistentEx02/readDB/README for more detail. - --- diff --git a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl b/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl deleted file mode 100644 index b44c63831b..0000000000 --- a/examples/extended/persistency/PersistentEx02/include/PersEx02TrackerHitsCollection.ddl +++ /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. * -// ******************************************************************** -// -// -// $Id: PersEx02TrackerHitsCollection.ddl,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#ifndef PersEx02TrackerHitsCollection_h -#define PersEx02TrackerHitsCollection_h 1 - -#include "HepODBMS/odbms/HepODBMS.h" -#include "HepODBMS/clustering/HepClusteringHint.h" - -#include "G4PersistentTypes.hh" -#include "G4PVHit.hh" -#include "G4PVHitsCollection.hh" -#include "G4ThreeVector.hh" - -#include "PersEx02TrackerHit.hh" - -typedef d_Varray< d_Ref > PersEx02TrackerHitsVArray; - -class PersEx02TrackerHitsCollection - : public G4PVHitsCollection -{ - public: - PersEx02TrackerHitsCollection(G4String dName, G4String aName); - ~PersEx02TrackerHitsCollection(); - - void DrawAllHits(); - void PrintAllHits(); - - public: - static HepClusteringHint clustering; - - private: - PersEx02TrackerHitsVArray hitsCollection; - size_t elems; - - public: - inline void Insert(d_Ref pHit) - { - size_t curSize = hitsCollection.size(); - if (elems >= curSize) - hitsCollection.resize(curSize + 1024); - hitsCollection[elems++] = pHit; - }; - inline void ShrinkToFit() - { hitsCollection.resize(elems); }; - inline size_t size() const - { return hitsCollection.size(); } - inline HepRef(PersEx02TrackerHit) element(const size_t i) const - { return hitsCollection[i]; } - inline HepRef(PersEx02TrackerHit) operator[](const size_t i) const - { return hitsCollection[i]; } - -}; - -#endif - diff --git a/examples/extended/persistency/PersistentEx02/prerunPEx02.mac b/examples/extended/persistency/PersistentEx02/prerunPEx02.mac deleted file mode 100644 index 1f21629de0..0000000000 --- a/examples/extended/persistency/PersistentEx02/prerunPEx02.mac +++ /dev/null @@ -1,6 +0,0 @@ -# -# prerunPEx02.mac -# -/control/verbose 2 -/db/verbose 2 -/run/initialize diff --git a/examples/extended/persistency/PersistentEx02/readDB/GNUmakefile b/examples/extended/persistency/PersistentEx02/readDB/GNUmakefile deleted file mode 100644 index da95606d3a..0000000000 --- a/examples/extended/persistency/PersistentEx02/readDB/GNUmakefile +++ /dev/null @@ -1,63 +0,0 @@ -include $(HEP_ODBMS_DIR)/etc/HepODBMS.mk - -# application name, source files on objects -APPL = readDB -SRCS = $(APPL).cpp -OBJS = $(OS)/$(APPL).$(OBJ_EXT) -LIBS = $(HEP_ODBMS_LIBS) $(OBJY_LIBS) $(OSPACE_LIBS) - -G4INSTALL := ../../../../.. -G4ODBMS := true -ifeq ($(OS),Solaris) - G4SYSTEM := SUN-CC -endif -ifeq ($(OS),HP-UX) - G4SYSTEM := HP-aCC -endif - -CLHEPLIB := /afs/cern.ch/sw/geant4/dev/CLHEP/$(G4SYSTEM)/pro/lib/libCLHEP.a - -include $(G4INSTALL)/config/architecture.gmk - -.PHONY: cleanall - -# CPPFLAGS is defined in Geant4 architecture.gmk -CPPFLAGS += \ - -I$./ \ - -I$../include \ - -I$(G4TMP)/$(G4SYSTEM)/PersistentEx02 \ - -I$(G4SCHEMA_INCLUDE) \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/persistency/events/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/hits/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/tracking/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include - -# C_FLAGS is the one used in the rules of HepODBMS.mk -C_FLAGS += $(CPPFLAGS) - -# Add Geant4 Persistent Libraries -LIBS := -L$(G4TMP)/$(G4SYSTEM)/PersistentEx02 \ - -lPersistentEx02 \ - -L$(G4LIB)/$(G4SYSTEM) \ - -lG4pmanagement -lG4pgeomn -lG4pgeomBoolean -lG4pcsg \ - -lG4pgeomGlobal -lG4prun -lG4pevents -lG4phits -lG4pdigits \ - -lG4pglobal -lG4event -lG4partman -lG4hits -lG4digits \ - -lG4materials \ - -lG4intercoms -lG4globman -lG4hepnumerics \ - $(LIBS) \ - $(CLHEPLIB) - -# make APPL the default target -all : $(APPL) - -$(APPL): GNUmakefile $(OBJS) - $(C++) $(C_FLAGS) $(CPPFLAGS) -o $(APPL) $(OBJS) $(LIBS) - -cleanall : clean - @rm -f $(APPL) - diff --git a/examples/extended/persistency/PersistentEx02/readDB/README b/examples/extended/persistency/PersistentEx02/readDB/README deleted file mode 100644 index 959a6137eb..0000000000 --- a/examples/extended/persistency/PersistentEx02/readDB/README +++ /dev/null @@ -1,18 +0,0 @@ -$Id: README,v 1.2 1999/12/02 20:51:49 morita Exp $ -------------------------------------------------------------------- - - readDB - ------ - -This short program demonstrates how to access events and their -associations which are stored in the database. - -To create and populate the database, see the file PersistentEx02/README. - -For the setup of readDB, see PersistentEx01/readDB/README. - -The difference between PersistentEx01/readDB and this example -is the additional capability to look into the user derived -persistent hits. - --- diff --git a/examples/extended/persistency/PersistentEx02/readDB/readDB.cpp b/examples/extended/persistency/PersistentEx02/readDB/readDB.cpp deleted file mode 100644 index 58d322c087..0000000000 --- a/examples/extended/persistency/PersistentEx02/readDB/readDB.cpp +++ /dev/null @@ -1,125 +0,0 @@ -#include "HepODBMS/clustering/HepDbApplication.h" - -#include "G4PEvent.hh" -#include "G4PPrimaryVertex.hh" -#include "G4PPrimaryParticle.hh" -#include "G4PHCofThisEvent.hh" -#include "PersEx02TrackerHitsCollection.hh" - -class dbAccessApp : public HepDbApplication { - // Application inherits session control from HepDbApplication -public: - // this application implements just one method: run the - dbAccessApp(const char *name) : HepDbApplication(name) - {}; - - int run() - { - // print an - message("about to initialise the db connection"); - Init(); // initialise the db session - message("starting a read transaction"); - startRead(); // start a read transaction - - HepDatabaseRef myDb = db("Events"); - - // if the database ref is not valid: - // - print a message - // - exit the application with an error code - if (myDb == 0) - fatal("could not find Events DB"); - - // locates Events container in this database - HepContainerRef cont = container("EventContainer"); - if (cont == 0 ) - fatal("could not find Events Container"); - - // initialize iterator for G4PEvent in "Events" Container - ooItr(G4PEvent) pevent_iterator; - pevent_iterator.scan(cont); - - // Loop for all G4PEvent in the "EventContainer" - - while (pevent_iterator.next()) - { - // access this G4PEvent - int evt_id = pevent_iterator->GetEventID(); - int n_pvertex = pevent_iterator->GetNumberOfPrimaryVertex(); - - cout << G4endl << "Reading event #" << evt_id << ":" << G4endl; - cout << " No. of primary vertex: " << n_pvertex << G4endl; - - // Loop for all primary vertex in this event - for ( int i = 0; i < n_pvertex; i++ ) - { - HepRef(G4PPrimaryVertex) pvertex = - pevent_iterator->GetPrimaryVertex(i); - cout << " ObjectID of the primary vertex: " - << pvertex.sprint() << G4endl; - cout << " No. of particle in the primary vertex: " - << pvertex->GetNumberOfParticle() << G4endl; - - for ( int j = 0; j < pvertex->GetNumberOfParticle() ; j++ ) - { - HepRef(G4PPrimaryParticle) particle = pvertex->GetPrimary(j); - cout << " PDGcode: " << particle->GetPDGcode() - << " Px = " << particle->GetPx() - << " Py = " << particle->GetPy() - << " Pz = " << particle->GetPz() << G4endl; - } - } - - // HitCollections of this event - const HepRef(G4PHCofThisEvent) hcte = pevent_iterator->GetHCofThisEvent(); - if( hcte != 0 ) - { - cout << " ObjectID of the Hit Collections: " << hcte.sprint() << G4endl; - - // Capacity of the Hit Collections VArray - // G4int numHC = hcte->GetCapacity(); - - // Actual number of Hit Collections in this event - G4int numHCact = hcte->GetNumberOfCollections(); - - cout << " No. of the Hit Collections: " << numHCact << G4endl; - for( G4int i = 0; iGetHC(i); - if( aHC != 0 ) - { - cout << " Hit Collection[" << i << "]: Name: " - << aHC->GetName(); - cout << " Sensitive Detector: " << aHC->GetSDname() << G4endl; - - HepRef(PersEx02TrackerHit) aHit = aHC->element(0); - if( aHit != 0 ) - { - cout << " Number of hits: " << aHC->size() << G4endl - << " Edep of the first hit: " << aHit->GetEdep() << G4endl; - } - } - } - } - else - { cout << " No Hit Collections for this event." << G4endl; } - } - - message("End of loop over events."); - - // finish this read transaction and return - commit(); - return 0; - } - -}; - - -int main(int argc, const char *argv[]) -{ - dbAccessApp myApp(argv[0]); // create an application object - - return myApp.run(); // call it's run method -} - - diff --git a/examples/extended/persistency/PersistentEx02/readDB/setup.csh b/examples/extended/persistency/PersistentEx02/readDB/setup.csh deleted file mode 100644 index c0d7efa43c..0000000000 --- a/examples/extended/persistency/PersistentEx02/readDB/setup.csh +++ /dev/null @@ -1,2 +0,0 @@ -setenv OO_FD_BOOT $G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx02 -source ../../PersistentEx01/setup_lhcxx.csh diff --git a/examples/extended/persistency/PersistentEx02/readDB/setup.sh b/examples/extended/persistency/PersistentEx02/readDB/setup.sh deleted file mode 100644 index 28ceec84ea..0000000000 --- a/examples/extended/persistency/PersistentEx02/readDB/setup.sh +++ /dev/null @@ -1,2 +0,0 @@ -OO_FD_BOOT=$G4WORKDIR/exampleFD/$G4SYSTEM/PersistentEx02; export OO_FD_BOOT -. ../../PersistentEx01/setup_lhcxx.sh diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.cc deleted file mode 100644 index 76a0bab3f2..0000000000 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02DetectorConstruction.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: PersEx02DetectorConstruction.cc,v 1.5 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "PersEx02DetectorConstruction.hh" - -#include "PersEx02TrackerSD.hh" - -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "G4Element.hh" -#include "G4ElementTable.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4PVPlacement.hh" -#include "G4SDManager.hh" - -PersEx02DetectorConstruction::PersEx02DetectorConstruction() -{;} - -PersEx02DetectorConstruction::~PersEx02DetectorConstruction() -{;} - -G4VPhysicalVolume* PersEx02DetectorConstruction::Construct() -{ - G4cout << " -- Tracker type sensitive detector" << G4endl; - -//--------- Material definition --------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxigen", symbol="O", iz=8., a); - - a = 26.98*g/mole; - density = 2.7*g/cm3; - G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", z=82., a, density); - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - -//--------- G4VSolid, G4LogicalVolume, G4VPhysicalVolume --------- - - G4double offset=22.5*cm, xTlate, yTlate; - G4int i,j,copyNo; - - G4Box *myWorldBox= new G4Box("WBox",10000*cm, 10000*cm, 10000*cm); - G4Box *myCalBox = new G4Box("CBox",1500*cm, 1500*cm, 1000*cm); - G4Tubs *myTargetTube - = new G4Tubs("TTube",0*cm, 22.5*cm, 1000*cm, 0.*deg, 360.*deg); - - G4LogicalVolume *myWorldLog=new G4LogicalVolume(myWorldBox,Air, - "WLog", 0, 0, 0); - G4LogicalVolume *myCalLog=new G4LogicalVolume(myCalBox,Al, - "CLog", 0, 0, 0); - G4LogicalVolume *myTargetLog=new G4LogicalVolume(myTargetTube,Pb, - "TLog", 0, 0, 0); - - G4PVPlacement *myWorldPhys=new G4PVPlacement(0,G4ThreeVector(), - "WPhys", - myWorldLog, - 0,false,0); - G4PVPlacement *myCalPhys=new G4PVPlacement(0,G4ThreeVector(), - "CalPhys", - myCalLog, - myWorldPhys,false,0); - - G4String tName1("TPhys1"); - copyNo=1; - for (j=1;j<=25;j++) - { - yTlate = -1000.0*cm - 40.0*cm + j*80.0*cm; - for (i=1;i<=50;i++) - { - xTlate = -1000.0*cm - 20.0*cm + i*45.0*cm - offset; - G4PVPlacement *myTargetPhys - =new G4PVPlacement(0,G4ThreeVector(xTlate,yTlate,0*cm), - tName1,myTargetLog,myCalPhys,false,copyNo++); - } - } - G4String tName2("TPhys2"); - copyNo=1; - for (j=1;j<=26;j++) - { - yTlate = -1000.0*cm - 80.0*cm + j*80.0*cm; - for (i=1;i<=50;i++) - { - xTlate = -1000.0*cm - 20.0*cm + i*45.0*cm; - G4PVPlacement *myTargetPhys - =new G4PVPlacement(0,G4ThreeVector(xTlate,yTlate,0*cm), - tName2,myTargetLog,myCalPhys,false,copyNo++); - } - } - -//--------- Sensitive detector ------------------------------------- - - // A concrete object named "mySD", which corresponds to - // the G4LogicalVolume object "myTargetLog" - G4String sdName = "sample/tracker/mySD"; - PersEx02TrackerSD* mySD = new PersEx02TrackerSD( sdName ); - myTargetLog->SetSensitiveDetector( mySD ); - - // "mySD" will be registrated - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - SDman->AddNewDetector( mySD ); - -//------------------------------------------------------------------ - - return myWorldPhys; -} - diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc deleted file mode 100644 index 672667d06f..0000000000 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02EventAction.cc +++ /dev/null @@ -1,101 +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: PersEx02EventAction.cc,v 1.6 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "PersEx02EventAction.hh" - -#include "PersEx02TrackerHit.hh" -#include "PersEx02TrackerHitsCollection.hh" - -#include "G4PersistencyManager.hh" -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4PHCofThisEvent.hh" -#include "G4PersistentHitMan.hh" -#include "G4SDManager.hh" -#include "G4ios.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -PersEx02EventAction::PersEx02EventAction() -{ - colID1 = -1; - colID2 = -1; -} - -PersEx02EventAction::~PersEx02EventAction() -{;} - -void PersEx02EventAction::BeginOfEventAction(const G4Event* ) -{ - if(colID1<0||colID2<0) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - G4String colNam; - colID1 = SDman->GetCollectionID(colNam="EvenCollection"); - colID2 = SDman->GetCollectionID(colNam="OddCollection"); - } -} - -void PersEx02EventAction::EndOfEventAction(const G4Event* evt) -{ - G4cout << ">>> Event " << evt->GetEventID() << G4endl; - - G4PHCofThisEvent* pHCE = G4PersistentHitMan::GetPersistentHitMan() - ->GetCurrentPHCofThisEvent(); - HepRef(PersEx02TrackerHitsCollection) pTHC1 - = (HepRef(PersEx02TrackerHitsCollection))(pHCE->GetHC(colID1)); - HepRef(PersEx02TrackerHitsCollection) pTHC2 - = (HepRef(PersEx02TrackerHitsCollection))(pHCE->GetHC(colID2)); - - G4cout << "Event : " << evt->GetEventID() << G4endl - << pTHC1->GetSDname() << "/" << pTHC1->GetName() << " " - << "Number of hits " << pTHC1->size() << G4endl; - if( pTHC1->size() > 0 ) - { - HepRef(PersEx02TrackerHit) aHit = pTHC1->element(0); - G4cout << " Edep of the first Hit " << aHit->GetEdep() << G4endl; - } - G4cout << pTHC2->GetSDname() << "/" << pTHC2->GetName() << " " - << "Number of hits " << pTHC2->size() << G4endl; - if( pTHC2->size() > 0 ) - { - HepRef(PersEx02TrackerHit) aHit = pTHC2->element(0); - assert(aHit!=0); - G4cout << " Edep of the first Hit " << aHit->GetEdep() << G4endl; - } - - G4PersistencyManager* persM - = G4PersistencyManager::GetPersistencyManager(); - if( persM && (evt->GetEventID() % 10 == 0)) - { - // commit and resume the sustained event DB transaction for every 10 events - persM->Commit(kEventDB, true); - persM->StartTransaction(kEventDB, kUpdate, true); - } - -} - diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc deleted file mode 100644 index b32383d87f..0000000000 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02PhysicsList.cc +++ /dev/null @@ -1,212 +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: PersEx02PhysicsList.cc,v 1.5 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "globals.hh" -#include "PersEx02PhysicsList.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "G4ios.hh" -#include "g4std/iomanip" - - -PersEx02PhysicsList::PersEx02PhysicsList(): G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -PersEx02PhysicsList::~PersEx02PhysicsList() -{ -} - -void PersEx02PhysicsList::ConstructParticle() -{ - // 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(); - ConstructBaryons(); - -} - -void PersEx02PhysicsList::ConstructBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx02PhysicsList::ConstructLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx02PhysicsList::ConstructMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx02PhysicsList::ConstructBaryons() -{ - // Construct all baryons - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void PersEx02PhysicsList::ConstructIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - - -void PersEx02PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" -void PersEx02PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - pmanager->AddProcess(new G4MultipleScattering(),-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 ((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); - } - } - } -} - -void PersEx02PhysicsList::ConstructHad() -{;} - -void PersEx02PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void PersEx02PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager->AddProcess(theDecayProcess, INT_MAX, -1, INT_MAX); - } - } -} - -void PersEx02PhysicsList::SetCuts() -{ - if (verboseLevel >0){ - G4cout << "PersEx02PhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - - // " G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} - diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc b/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc deleted file mode 100644 index 4f0c778bae..0000000000 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerSD.cc +++ /dev/null @@ -1,115 +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: PersEx02TrackerSD.cc,v 1.6 2001/07/11 09:58:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include -#include "PersEx02TrackerSD.hh" -#include "PersEx02TrackerHit.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4Track.hh" -#include "G4ParticleDefinition.hh" -#include "G4SDManager.hh" -#include "G4PersistentHitMan.hh" -#include "G4PHCofThisEvent.hh" -#include "G4ios.hh" - -PersEx02TrackerSD::PersEx02TrackerSD(G4String name) - : G4VSensitiveDetector(name) -{ - G4String HCname; - collectionName.insert(HCname="EvenCollection"); - collectionName.insert(HCname="OddCollection"); - - f_hitMan = G4PersistentHitMan::GetPersistentHitMan(); - hitContainer = f_hitMan->GetContainer(); - assert(hitContainer != 0); -} - -PersEx02TrackerSD::~PersEx02TrackerSD(){;} - -void PersEx02TrackerSD::Initialize(G4HCofThisEvent*HCE) -{ - HepRef(G4PHCofThisEvent) aPHC = new( hitContainer ) G4PHCofThisEvent; - f_hitMan->SetCurrentPHCofThisEvent(aPHC); - - EvenCollection = new( hitContainer ) - PersEx02TrackerHitsCollection(SensitiveDetectorName,collectionName[0]); - OddCollection = new( hitContainer ) - PersEx02TrackerHitsCollection(SensitiveDetectorName,collectionName[1]); -} - -G4bool PersEx02TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) -{ - G4double edep = aStep->GetTotalEnergyDeposit(); - if( edep == 0. ) return true; - - const G4VPhysicalVolume* physVol - = aStep->GetPreStepPoint()->GetPhysicalVolume(); - - HepRef(PersEx02TrackerHit) newHit = new( hitContainer ) PersEx02TrackerHit(); - newHit->SetEdep( edep ); - newHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); - - if( physVol->GetName() == "TPhys1" ) - { EvenCollection->Insert( newHit ); } - else if( physVol->GetName() == "TPhys2" ) - { OddCollection->Insert( newHit ); } - - return true; -} - -void PersEx02TrackerSD::EndOfEvent(G4HCofThisEvent*HCE) -{ - static G4int IDe = -1; - static G4int IDo = -1; - if(IDe<0) - { IDe = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } - if(IDo<0) - { IDo = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[1]); } - - // Shrink the array size to the actual hit entries - EvenCollection->ShrinkToFit(); - OddCollection->ShrinkToFit(); - - // Register this HitCollection to Persistent HCofThisEvent - G4PHCofThisEvent* aPHC = f_hitMan->GetCurrentPHCofThisEvent(); - aPHC->AddHitsCollection( IDe, EvenCollection ); - aPHC->AddHitsCollection( IDo, OddCollection ); -} - -void PersEx02TrackerSD::clear() -{ -} - -void PersEx02TrackerSD::DrawAll() -{ -} - -void PersEx02TrackerSD::PrintAll() -{ -} - diff --git a/examples/extended/persistency/README b/examples/extended/persistency/README new file mode 100644 index 0000000000..12824d40c2 --- /dev/null +++ b/examples/extended/persistency/README @@ -0,0 +1,11 @@ + + Geant4 Persistency Examples + =========================== + +This directory contains a several set of persistency examples. + + PersEx01 ROOT I/O example for storing and retrieving calorimeter hits + rootio Geant4 ROOT I/O library module + +See the README file in PersEx01 for more detail. + diff --git a/examples/extended/persistency/rootio/GNUmakefile b/examples/extended/persistency/rootio/GNUmakefile new file mode 100644 index 0000000000..9edd9a0672 --- /dev/null +++ b/examples/extended/persistency/rootio/GNUmakefile @@ -0,0 +1,40 @@ +# $Id: GNUmakefile,v 1.1 2002/12/04 02:44:27 morita Exp $ +# +# GNUmakefile: makefile for example ROOT I/O impelmentatoin. +# +# This makefile creates a granular library in $(FADS_LIB). +# $(name) is the name of granular library. +# +# Author: Youhei Morita +# + +# name of the granular library +name := G4ROOTIO + +ifndef G4PEX_DIR + G4PEX_DIR := $(G4INSTALL)/examples/extended/persistency/rootio +endif + +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/particles/management/include \ + -I$(G4INSTALL)/source/run/include \ + -I$(G4INSTALL)/source/event/include \ + -I$(G4INSTALL)/source/track/include \ + -I$(G4INSTALL)/source/tracking/include \ + -I$(G4INSTALL)/source/intercoms/include \ + -I$(G4INSTALL)/source/geometry/management/include \ + -I$(G4INSTALL)/source/persistency/include + +# check HepMC +##hepmc_barcode := $(shell $(G4PEX_DIR)/config/hepmctest.csh) +##ifeq ($(hepmc_barcode),false) + CXXFLAGS += -DHEPMC_HAS_NO_BARCODE +##endif + +include $(G4PEX_DIR)/config/common.gmk + diff --git a/examples/extended/persistency/rootio/README b/examples/extended/persistency/rootio/README new file mode 100644 index 0000000000..44a240715f --- /dev/null +++ b/examples/extended/persistency/rootio/README @@ -0,0 +1,8 @@ + + Geant4 ROOT I/O Examples Module + =============================== + +This directory contains a example I/O library module for ROOT I/O. + +See the README file in PersEx01 for more detail. + diff --git a/examples/extended/persistency/rootio/config/G4PEXsetup.gmk b/examples/extended/persistency/rootio/config/G4PEXsetup.gmk new file mode 100644 index 0000000000..38e95ce0d6 --- /dev/null +++ b/examples/extended/persistency/rootio/config/G4PEXsetup.gmk @@ -0,0 +1,32 @@ +# $Id: G4PEXsetup.gmk,v 1.1 2002/12/04 02:44:27 morita Exp $ +# ===================================================================== +# FADSsetup.gmk: GNUmakefile variables for FADS +# +# Author: Youhei Morita +# ===================================================================== +# +ifndef G4PEX_WORKDIR + G4PEX_WORKDIR := $(G4PEX_DIR) +endif + +ifndef G4PEX_LIB + G4PEX_LIB := $(G4PEX_WORKDIR)/lib/$(G4SYSTEM) +endif +ifndef G4PEX_BIN + G4PEX_BIN := $(G4PEX_WORKDIR)/bin/$(G4SYSTEM) +endif +ifndef G4PEX_TMP + G4PEX_TMP := $(G4PEX_WORKDIR)/tmp/$(G4SYSTEM)/$(name) +endif + +DUMMY := $(shell if [ ! -d $(G4PEX_LIB) ] ; then mkdir -p $(G4PEX_LIB) ;fi) +DUMMY := $(shell if [ ! -d $(G4PEX_BIN) ] ; then mkdir -p $(G4PEX_BIN) ;fi) +DUMMY := $(shell if [ ! -d $(G4PEX_TMP) ] ; then mkdir -p $(G4PEX_TMP) ;fi) + +include $(G4INSTALL)/config/architecture.gmk + +G4ROOTIO := $(G4PEX_DIR)/config/g4rootio.pl + +PROG_ROOTCONFIG = $(ROOTSYS)/bin/root-config +PROG_ROOTCINT = $(ROOTSYS)/bin/rootcint + diff --git a/examples/extended/persistency/rootio/config/binmake.gmk b/examples/extended/persistency/rootio/config/binmake.gmk new file mode 100644 index 0000000000..74e428fb3a --- /dev/null +++ b/examples/extended/persistency/rootio/config/binmake.gmk @@ -0,0 +1,235 @@ +# $Id: binmake.gmk,v 1.4 2002/12/04 17:54:25 morita Exp $ +# ===================================================================== +# binmake.gmk: GNUmakefile variables for creating the binary executable +# +# Author: Youhei Morita +# ===================================================================== +ifndef TARGET + TARGET := $(name) +endif + +# Geant4 variables +include $(G4INSTALL)/config/G4UI_USE.gmk +include $(G4INSTALL)/config/G4VIS_USE.gmk +include $(G4INSTALL)/config/interactivity.gmk +include $(G4INSTALL)/config/analysis.gmk + +ifdef G4DEBUG + CXXFLAGS += -g +endif + +# dependency option +GPPFLAGS := "-MM" + +headers := $(wildcard include/*.hh) + +sources := $(wildcard src/*.cc) + +objects := $(patsubst src/%.cc,$(G4PEX_TMP)/%.o,$(sources)) + +dependencies := $(patsubst src/%.cc,$(G4PEX_TMP)/%.d,$(sources)) + +ifneq ($(G4LIB_BUILD_SHARED),) + library_name := lib$(TARGET).so +endif +ifneq ($(G4LIB_BUILD_STATIC),) + library_name := lib$(TARGET).a +endif + + +ifneq ($(sources),) + libraries_to_build := $(G4PEX_LIB)/$(library_name) +else + libraries_to_build := +endif + + +# linker option (refer to Standard Installation) +ifdef G4LIB_BUILD_SHARED + LDOPTION := -Wl,-rpath $(G4PEX_LIB) \ + -Wl,-rpath $(G4LIB)/$(G4SYSTEM) \ + -Wl,-rpath $(CLHEP_BASE_DIR)/lib \ + -Wl,-rpath $(ROOTSYS)/lib +endif + +# libraries path +LDFLAGS := -L$(G4PEX_LIB) \ + -L$(G4LIB)/$(G4SYSTEM) \ + -L$(CLHEP_BASE_DIR)/lib \ + -L$(ROOTSYS)/lib + +# extra LDFLAGS +ifneq ($(EXTLDFLAGS),) + LDFLAGS += $(EXTLDFLAGS) +endif + +# libraries +LDLIBS := $(libraries_to_build) \ + -lG4ROOTIO + +g4libs := $(wildcard $(G4LIB)/$(G4SYSTEM)/*.so) +g4libs := $(patsubst $(G4LIB)/$(G4SYSTEM)/lib%.so,-l%,$(g4libs)) +g4libs := $(patsubst -lG3toG4,,$(g4libs)) +LDLIBS += $(g4libs) + +LDLIBS += $(INTYLIBS) +LDLIBS += $(ANALYSISLIBS) + +# external packagers +LDLIBS += -lCLHEP +# ROOT +LDLIBS += -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint \ + -lPostscript -lMatrix -lPhysics +# etc +LDLIBS += -lm -ldl + +.PHONY: all lib bin clean test + +all: lib bin + +bin: $(G4PEX_BIN)/$(TARGET) + +lib: $(libraries_to_build) + +# --------------------------------------------------------------------- +CPPFLAGS += $(shell root-config --cflags) + +# ROOTCINT LinkDef.h and Dict.cc files + +root_def := include/$(name)LinkDef.h +root_dict := $(G4PEX_TMP)/$(name)Dict.cc +root_dict_o := $(root_dict:.cc=.o) + +# rootio files +rootio_file := $(wildcard rootio/*.rootio) +rootio_hh := $(patsubst rootio/%.rootio, include/%Root.hh, $(rootio_file)) +rootio_hh += $(patsubst rootio/%.rootio, include/%sRoot.hh, $(rootio_file)) +rootio_hh += $(patsubst rootio/%.rootio, include/%RootIO.hh, $(rootio_file)) +rootio_cc := $(patsubst rootio/%.rootio, src/%Root.cc, $(rootio_file)) +rootio_cc += $(patsubst rootio/%.rootio, src/%sRoot.cc, $(rootio_file)) +rootio_cc += $(patsubst rootio/%.rootio, src/%RootIO.cc, $(rootio_file)) +rootio_d := $(patsubst rootio/%.rootio, $(G4PEX_TMP)/%Root.d, $(rootio_file)) +rootio_d += $(patsubst rootio/%.rootio, $(G4PEX_TMP)/%sRoot.d, $(rootio_file)) +rootio_d += $(patsubst rootio/%.rootio, $(G4PEX_TMP)/%RootIO.d, $(rootio_file)) + +ifneq ($(rootio_file),) + root_hh := $(patsubst rootio/%.rootio, include/%Root.hh, $(rootio_file)) + root_hh += $(patsubst rootio/%.rootio, include/%sRoot.hh, $(rootio_file)) +else +ifneq ($(headers),) + root_hh := $(shell grep 'public.*TObject' include/*.hh|awk -F: '{print $$1}'|sort|uniq) +endif +endif +root_tmp := $(patsubst include/%,%,$(root_hh)) +root_tmp += $(patsubst include/%,%,$(root_def)) +root_name := $(patsubst include/%.hh,%,$(root_hh)) + +.PRECIOUS: $(dependencies) $(rootio_hh) $(rootio_cc) $(rootio_d) + +ifneq ($(rootio_file),) + +objects += $(patsubst rootio/%.rootio,$(G4PEX_TMP)/%Root.o, $(rootio_file)) +objects += $(patsubst rootio/%.rootio,$(G4PEX_TMP)/%sRoot.o, $(rootio_file)) +objects += $(patsubst rootio/%.rootio,$(G4PEX_TMP)/%RootIO.o, $(rootio_file)) +objects += $(root_dict_o) + +cleanup_target := $(rootio_hh) $(rootio_cc) $(root_def) + +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) $< + +$(root_dict): $(root_hh) $(root_def) +ifdef CPPVERBOSE + cp -f $^ $(G4PEX_TMP)/ + ( cd $(G4PEX_TMP); \ + $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) + ( cd $(G4PEX_TMP); rm -f $(root_tmp) ) +else + @echo "Generating dictionary $(root_dict) ..." + @cp -f $^ $(G4PEX_TMP)/ + @( cd $(G4PEX_TMP); \ + $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) + @( cd $(G4PEX_TMP); rm -f $(root_tmp) ) +endif + +$(root_def): $(root_hh) + $(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) + +endif + +$(root_dict_o): $(root_dict) + @echo "Compiling $< with $(CXX) ..." + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ +# --------------------------------------------------------------------- + +$(G4PEX_BIN)/$(TARGET): $(G4PEX_TMP)/$(TARGET).o $(libraries_to_build) +ifdef CPPVERBOSE + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $< \ + $(LDOPTION) \ + $(LDFLAGS) $(LDLIBS) +else + @echo Linking $(TARGET) ... + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $< \ + $(LDOPTION) \ + $(LDFLAGS) $(LDLIBS) +endif + +$(G4PEX_TMP)/$(TARGET).o: $(TARGET).cc $(G4PEX_TMP)/$(TARGET).d +ifdef CPPVERBOSE + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ +else + @echo "Compiling $< with $(CXX) ..." + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ +endif + +$(G4PEX_TMP)/$(TARGET).d: $(TARGET).cc + @echo "Making dependency file for $< ..." + @($(ECHO) $(G4PEX_TMP)/\\c ; \ + g++ $(GPPFLAGS) $(CPPFLAGS) $< ) | sed 's!$(G4PEX_TMP)/$*.o!& $@!' >$@ +ifneq ($(dependencies),) +-include $(dependencies) +endif + +$(libraries_to_build): $(objects) +ifneq ($(G4LIB_BUILD_SHARED),) + @echo Creating shared library $@ + @rm -f $(G4PEX_LIB)/lib$(TARGET).so + @cd $(G4PEX_TMP); \ + $(CXX) -Wl,-soname,lib$(TARGET).so \ + -shared -o $(G4PEX_LIB)/lib$(TARGET).so *.o \ + $(EXTLDFLAGS) $(EXTLIBS) +endif +ifneq ($(G4LIB_BUILD_STATIC),) + @echo Creating static library $@ + @rm -f $(G4PEX_LIB)/lib$(TARGET).a + $(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 + +$(G4PEX_TMP)/%.o: src/%.cc $(G4PEX_TMP)/%.d + @echo "Compiling $< with $(CXX) ..." + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ + +$(G4PEX_TMP)/%.d: src/%.cc + @echo "Making dependency file for $< ..." + @($(ECHO) $(G4PEX_TMP)/\\c ; \ + g++ $(GPPFLAGS) $(CPPFLAGS) $< ) | sed 's!$(G4PEX_TMP)/$*.o!& $@!' >$@ + +clean: +ifneq ($(cleanup_target),) + @rm -f $(cleanup_target) +endif + @rm -f $(G4PEX_DIR)/bin/$(G4SYSTEM)/$(TARGET) +ifneq ($(libraries_to_build),) + @rm -f -r $(G4PEX_DIR)/lib/$(G4SYSTEM)/$(libraries_to_build) +endif + @rm -f -r $(G4PEX_DIR)/tmp/$(G4SYSTEM)/$(TARGET) + +distclean: clean + @rm -f G4defaultOutput G4run0001.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 new file mode 100644 index 0000000000..557d68e233 --- /dev/null +++ b/examples/extended/persistency/rootio/config/common.gmk @@ -0,0 +1,158 @@ +# $Id: common.gmk,v 1.2 2002/12/04 09:39:24 morita Exp $ +# ===================================================================== +# common.gmk: GNUmakefile variables for building the library files. +# +# Author: Youhei Morita +# ===================================================================== +ifndef TARGET + TARGET := $(name) +endif + +ifdef G4DEBUG + CXXFLAGS += -g +endif + +GPPFLAGS := "-MM" + +CPPFLAGS += -Iinclude \ + -I$(G4INSTALL)/include \ + -I$(CLHEP_BASE_DIR)/include + +sources := $(wildcard src/*.cc) + +objects := $(patsubst src/%.cc,$(G4PEX_TMP)/%.o,$(sources)) + +dependencies := $(patsubst src/%.cc,$(G4PEX_TMP)/%.d,$(sources)) + +ifneq ($(G4LIB_BUILD_SHARED),) + library_name := lib$(TARGET).so +endif +ifneq ($(G4LIB_BUILD_STATIC),) + library_name := lib$(TARGET).a +endif + +libraries_to_build := $(G4PEX_LIB)/$(library_name) + +.PHONY: all lib includes clean_lib clean + +all: lib + +lib: $(libraries_to_build) + +# --------------------------------------------------------------------- +# make ROOT I/O files +#include $(G4PEX_DIR)/config/rootio.gmk +# --------------------------------------------------------------------- + +CPPFLAGS += $(shell root-config --cflags) + +# ROOTCINT LinkDef.h and Dict.cc files + +root_def := include/$(name)LinkDef.h +root_dict := $(G4PEX_TMP)/$(name)Dict.cc +root_dict_o := $(root_dict:.cc=.o) + +objects += $(root_dict_o) + +# rootio files +rootio_file := $(wildcard rootio/*.rootio) +rootio_hh := $(patsubst rootio/%.rootio, include/%Root.hh, $(rootio_file)) +rootio_hh += $(patsubst rootio/%.rootio, include/%sRoot.hh, $(rootio_file)) +rootio_hh += $(patsubst rootio/%.rootio, include/%RootIO.hh, $(rootio_file)) +rootio_cc := $(patsubst rootio/%.rootio, src/%Root.cc, $(rootio_file)) +rootio_cc += $(patsubst rootio/%.rootio, src/%sRoot.cc, $(rootio_file)) +rootio_cc += $(patsubst rootio/%.rootio, src/%RootIO.cc, $(rootio_file)) + +# search for TObject inheritance with a regexp 'public.*TObject' + +root_hh := $(shell grep 'public.*TObject' include/*.hh|awk -F: '{print $$1}'|sort|uniq) +ifneq ($(rootio_file),) +root_hh += $(patsubst rootio/%.rootio, include/%Root.hh, $(rootio_file)) +root_hh += $(patsubst rootio/%.rootio, include/%sRoot.hh, $(rootio_file)) +endif +root_tmp := $(patsubst include/%,%,$(root_hh)) +root_tmp += $(patsubst include/%,%,$(root_def)) +root_name := $(patsubst include/%.hh,%,$(root_hh)) + +.PRECIOUS: $(dependencies) $(rootio_hh) $(rootio_cc) + +ifneq ($(rootio_file),) + +objects += $(patsubst rootio/%.rootio,$(G4PEX_TMP)/%Root.o, $(rootio_file)) +objects += $(patsubst rootio/%.rootio,$(G4PEX_TMP)/%sRoot.o, $(rootio_file)) +objects += $(patsubst rootio/%.rootio,$(G4PEX_TMP)/%RootIO.o, $(rootio_file)) +objects += $(root_dict_o) + +cleanup_target := $(rootio_hh) $(rootio_cc) $(root_def) + +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) $< + +$(root_dict): $(root_hh) $(root_def) +ifdef CPPVERBOSE + cp -f $^ $(G4PEX_TMP)/ + ( cd $(G4PEX_TMP); \ + $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) + ( cd $(G4PEX_TMP); rm -f $(root_tmp) ) +else + @echo "Generating dictionary $(root_dict) ..." + @cp -f $^ $(G4PEX_TMP)/ + @( cd $(G4PEX_TMP); \ + $(PROG_ROOTCINT) -f $@ -c $(CINT_INCLUDES) -p $(root_tmp) ) + @( cd $(G4PEX_TMP); rm -f $(root_tmp) ) +endif + +$(root_def): $(root_hh) + $(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) + +endif + +$(root_dict_o): $(root_dict) + @echo "Compiling $< with $(CXX) ..." + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ + +# --------------------------------------------------------------------- + +$(libraries_to_build): $(objects) +ifneq ($(G4LIB_BUILD_SHARED),) + @echo Creating shared library $@ + @rm -f $(G4PEX_LIB)/lib$(TARGET).so + @cd $(G4PEX_TMP); \ + $(CXX) -Wl,-soname,lib$(TARGET).so \ + -shared -o $(G4PEX_LIB)/lib$(TARGET).so *.o \ + $(EXTLDFLAGS) $(EXTLIBS) +endif +ifneq ($(G4LIB_BUILD_STATIC),) + @echo Creating static library $@ + @rm -f $(G4PEX_LIB)/lib$(TARGET).a + $(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 + +$(G4PEX_TMP)/%.o: src/%.cc $(G4PEX_TMP)/%.d + @echo "Compiling $< with $(CXX) ..." + @$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@ + +$(G4PEX_TMP)/%.d: src/%.cc + @echo "Making dependency file for $< ..." + @($(ECHO) $(G4PEX_TMP)/\\c ; \ + g++ $(GPPFLAGS) $(CPPFLAGS) $< ) | sed 's!$(G4PEX_TMP)/$*.o!& $@!' >$@ +ifneq ($(dependencies),) +-include $(dependencies) +endif + +clean: +ifneq ($(cleanup_target),) + @rm -f $(cleanup_target) +endif + @rm -f -r $(G4PEX_DIR)/lib/$(G4SYSTEM)/$(libraries_to_build) + @rm -f -r $(G4PEX_DIR)/tmp/$(G4SYSTEM)/$(TARGET) + +test: + @echo "objects = $(objects)" + diff --git a/examples/extended/persistency/rootio/config/g4rootio.pl b/examples/extended/persistency/rootio/config/g4rootio.pl new file mode 100755 index 0000000000..52ee22e736 --- /dev/null +++ b/examples/extended/persistency/rootio/config/g4rootio.pl @@ -0,0 +1,2449 @@ +#! /usr/bin/perl +# +# File: g4rootio.pl +# +# This script reads the ROOT I/O class defition and implementation +# information from STDIN or from a *.rootio file. It then produces the +# actual C++ header and source files according to the naming rules and +# directory conventions defined in the style options part of this script. +# +# To obtain the command list, invoke g4rootio.pl without any option, +# and type "help". +# +# % g4rootio.pl +# fadscpp> help +# fadscpp> set help +# fadscpp> quit +# +# To run in batchmode, specify the name of the file which contains +# the *.rootio file information. +# +# % g4rootio.pl [options] +# +# Option: +# -h : print usage +# -f : replace existing source and header files +# -v : verbose output +# -n : does not write files +# -d : difference between new and orginal files +# +# Example: +# See RPCHit.rootio attached in this distribution for the example +# *.rootio file. +# +# Style options: +# By default, above example skeleton will produce the header file +# as include/MyClassName.hh, source file as src/MyClassName.cc. +# +# Edit the section "##### Style options #####" below, to change +# some default behavior. +# +# Header and source file names can also be specified explicitly +# with "set header_file " and "set source_file ". +# +# Caveat: +# No syntax checking or context checking are done. For example, +# puting member declaration into method scope, will create a corrupted +# source file, but not detected in this perl script. +# When in doubt, use -v option to see if the skeleton information +# is correctly loaded. +# +# Author: +# + +use File::Basename; +use File::Compare; +use Text::ParseWords; + +##### Style options ##### + +#$author_name = "enter_your_name"; +$author_name = ""; +$package_name = "Geant4"; +$script_name = basename($0,".pl"); +$header_ext_default = ".hh"; +$src_ext_default = ".cc"; +$include_dir = "include"; +$src_dir = "src"; +$tmp_dir = "/tmp"; + +##### Get the author name from GCOS ##### + +if ( $author_name eq "" ) { + chop($user_name = `whoami`); # chop off the last newline + ($na,$pw,$uid,$gid,$qo,$cm,$author_name,$dr,$sh) = getpwnam("$user_name"); +} + +$creation_date=`date +%y.%m.%d`; +chop($creation_date); + +##### Parse command line ##### + +$infile = ""; +$console = 0; +$force = 0; +$diff = 0; +$summary = 0; +$nowrite = 0; +$verbose = 0; +$friends[0] = ""; +$global_decls[0] = ""; +$assoc_class[0] = ""; +$global_impls[0] = ""; +$additional_hdrs_src[0] =""; + +if ($#ARGV >= 0 ) { + while(1) { + if ( $ARGV[0] =~ /-h/ ) { + &print_usage; + exit 1; + } elsif ( $ARGV[0] =~ /-f/ ) { + $force = 1; + shift; + } elsif ( $ARGV[0] =~ /-d/ ) { + $diff = 1; + shift; + } elsif ( $ARGV[0] =~ /-s/ ) { + $nowrite = 1; + $summary = 1; + shift; + } elsif ( $ARGV[0] =~ /-n/ ) { + $nowrite = 1; + shift; + } elsif ( $ARGV[0] =~ /-v/ ) { + $verbose = 1; + shift; + } elsif ( $ARGV[0] eq "" ) { + $infile = "<&STDIN"; + $console = 1; + last; + } elsif ( $ARGV[1] eq "" ) { + $infile = $ARGV[0]; + $force = 1; + last; + } else { + &print_usage; + exit 1; + } + } +} else { + $infile = "<&STDIN"; + $console = 1; +} + +if ( $console == 0 && ! -f $infile ) { + print "File $infile does not exist.\n"; + exit (1); +} + +##### Message ##### + +if ( $verbose ) { + print "\n"; + print "***********************************************************\n"; + print "* FADS ROOT I/O adopter class generator *\n"; + print "* utility to generate ROOT I/O header and source files. *\n"; + print "***********************************************************\n\n"; + + print "File override option is selected.\n" if ( $force ); +} + +##### Read skeleton information ##### + +$class_name = ""; +$collection_class = ""; +$collection_class_header = 0; +$collection_class_method_entries = "entries()"; +$collection_class_method_add = "insert(obj)"; +$collection_class_method_get = "[i]"; +$collection_class_signature = "\@collection_class\@(f_detName, f_colName)"; +$collection_base_class = ""; +$array_io_base = ""; +$catalog = ""; +$sdet_name = ""; +$make_transient = "MakeTransientObject"; # method name for retrieve +$template = ""; +$header_file_in = ""; +$source_file_in = ""; +$incl_mark_in = ""; +$namespace = "none"; +$root_class = 1; +$inherited_class[0] = "TObject"; +$num_inherit = 1; +$root_class_num = 1; +$num_constructor = 0; +$num_destructor = 0; +$num_method = 0; +$num_member = 0; +$end = 0; + +print "${script_name}> " if ( ! $force ); + +open(IN, $infile); + +while() { + chop; # chop off the last newline + s/^#.*$//; # omit comments + @_cmds = quotewords(" ", 1, $_); + $_cmd = $_cmds[0]; + if ( $_cmd ne "" ) { + if ( $_cmd =~ /^help$/i ) { + &fads_help; + } elsif ( $_cmd =~ /^end$/i ) { + $end = 1; + print "'end' accepted.\n" if ( $verbose ); + last; + } elsif ( $_cmd =~ /^quit$/i ) { + exit 0; + } elsif ( $_cmd =~ /^set$/i ) { + &fads_set; + } elsif ( $_cmd =~ /^\+EOD$/i ) { + last; + } else { + print "\n-- Unrecognized command: $_cmd\n"; + &fads_help; + if ( $force ) { + print "exiting...\n\n"; + exit (1); + } + } + } + print "${script_name}> " if ( ! $force ); +} + +print "EOF reached.\n" if ( ! $end && $verbose ); + +close(IN); + +if ( $class_name eq "") { + print "\n${script_name}: Error - class name is not specified. Stop.\n"; + exit 1; +} +if ( $collection_class eq "") { + print "\n${script_name}: Error - collection class is not specified. Stop.\n"; + exit 1; +} +if ( $collection_base_class eq "") { + print "\n${script_name}: Error - collection base class is not specified. Stop.\n"; + exit 1; +} +if ( $array_io_base eq "") { + print "\n${script_name}: Error - array I/O base class is not specified. Stop.\n"; + exit 1; +} +if ( $catalog eq "") { + print "\n${script_name}: Error - catalog is not specified. Stop.\n"; + exit 1; +} + +if ( $sdet_name eq "") { + print "\n${script_name}: Error - sensitive detctor name is not specified. Stop.\n"; + exit 1; +} + +#----- compose ROOT I/O related class names + +$class_root = $class_name . "Root"; +$class_array = $class_name . "sRoot"; +$class_io = $class_name . "RootIO"; +$entry_object = &lowerstring($class_name) . "_" . &lowerstring($catalog); + +#----- compose default file names and include header mark +$header_ext = $header_ext_default; + +$header_file = "$include_dir/${class_root}${header_ext}"; +$source_file = "$src_dir/${class_root}${src_ext_default}"; + +$header_file = $header_file_in if ( $header_file_in ne "" ); +$source_file = $source_file_in if ( $source_file_in ne "" ); + +#----- temporary files + +$header_file_tmp = "$tmp_dir/${class_root}${header_ext}.$$"; +$source_file_tmp = "$tmp_dir/${class_root}${src_ext_default}.$$"; + +#----- ROOT I/O files + +$array_header_file = "$include_dir/${class_array}${header_ext}"; +$array_source_file = "$src_dir/${class_array}${src_ext_default}"; +$io_header_file = "$include_dir/${class_io}${header_ext}"; +$io_source_file = "$src_dir/${class_io}${src_ext_default}"; + +$array_header_file_tmp = "$tmp_dir/${class_array}${header_ext}.$$"; +$array_source_file_tmp = "$tmp_dir/${class_array}${src_ext_default}.$$"; +$io_header_file_tmp = "$tmp_dir/${class_io}${header_ext}.$$"; +$io_source_file_tmp = "$tmp_dir/${class_io}${src_ext_default}.$$"; + +#----- Include file mark + +$incl_mark = &capitalize(&underscore($class_root)); +$incl_mark = $incl_mark. "_HH"; +$incl_mark = $incl_mark_in if ( $incl_mark_in ne "" ); + +#----- Convert macros + +&fads_conv; + +#----- Print information + +if ( $verbose ) { + print "Include Header Mark: $incl_mark\n"; + print "Default Constructor will be used.\n" if ( $constructors[0] eq "" ); + print "Default Destructor will be used.\n" if ( $destructors[0] eq "" ); +} + +#----- Check existence of header and source directories + +if ( ! $nowrite ) { + &check_dir($include_dir); + &check_dir($src_dir); +} + +##### Create tmp header file ##### + +&fads_create_header_file; + +##### Create tmp source file ##### + +$no_source = &is_no_source; +if ( ! $no_source ) { + &fads_create_source_file; +} else { + print "Warning: file $source_file is _not_ created.\n"; + print " - All methods are inline, pure virtual, or the class is template.\n"; +} + +##### Create tmp ROOT I/O files ##### + +&fads_create_array_header_file; +&fads_create_array_source_file; +&fads_create_io_header_file; +&fads_create_io_source_file; + +#----- diff-ing files for -n option + +if ( $diff ) { + $_ = 1; # does fflush(3) for each print + + &diff_file( $header_file_tmp, $header_file ); + &diff_file( $source_file_tmp, $source_file ) if ( ! $no_source ); + &diff_file( $array_header_file_tmp, $array_header_file ); + &diff_file( $array_source_file_tmp, $array_source_file ); + &diff_file( $io_header_file_tmp, $io_header_file ); + &diff_file( $io_source_file_tmp, $io_source_file ); +} + +#----- summary output for -s option + +if ( $summary ) { + &fads_print_summary; +} + +#----- Install header and source files + +if ( ! $nowrite ) { + &check_file($header_file); + &check_file($source_file) if ( ! $no_source ); + &check_file($array_header_file); + &check_file($array_source_file); + &check_file($io_header_file); + &check_file($io_source_file); + + &install_file( $header_file_tmp, $header_file ); + if ( ! $no_source ) { + &install_file( $source_file_tmp, $source_file ); + } else { + system("rm -f $source_file") if ( -f $source_file ); + } + &install_file( $array_header_file_tmp, $array_header_file ); + &install_file( $array_source_file_tmp, $array_source_file ); + &install_file( $io_header_file_tmp, $io_header_file ); + &install_file( $io_source_file_tmp, $io_source_file ); +} + +#----- Delete tmp header and source files + +system("rm -f $header_file_tmp"); +system("rm -f $source_file_tmp") if ( ! $no_source ); +system("rm -f $array_header_file_tmp"); +system("rm -f $array_source_file_tmp"); +system("rm -f $io_header_file_tmp"); +system("rm -f $io_source_file_tmp"); + +#----- End of the script + +exit 0; + +############################################################################ + +sub print_usage { + print "\n Usage: ${script_name} [-h] [-f] [-d] [-s] [-n] [-v] \n\n"; + print " -h : print usage\n"; + print " -f : override existing header and source files\n"; + print " -d : difference output to stdout\n"; + print " -s : summary output to stdout\n"; + print " -n : does not replace files\n"; + print " -v : verbose mode\n"; + print "\n"; +} + +############################################################################ + +sub fads_help { + print "\n Available commands:\n"; + print " help : prints this message\n"; + print " set : sets various parameters\n"; + print " end : ends class description and creates skeleton files\n"; + print " quit : quits this program without changing files\n"; + print "\n"; +} + +############################################################################ + +sub fads_set_help { + print "\n Available set command options:\n"; + print " help : prints this message\n"; + print " class_name : sets the class name\n"; + print " collection_class : sets the collection class name\n"; + print " collection_class_header : set yes if the collection has a header file\n"; + print " collection_class_method_entries : method name for entries\n"; + print " collection_class_method_add : method name to add an entry\n"; + print " collection_class_method_get : method name to get i-th entry\n"; + print " collection_class_signagure : constructor signature\n"; + print " collection_base_class : sets the collection base class name\n"; + print " array_io_base : sets the array I/O base class name\n"; + print " catalog : sets the catalog name\n"; + print " sdet_name : sets the sensitive detector name\n"; + print " template : sets the class template\n"; + print " description : sets the class description\n"; + print " history : sets the development history\n"; + print " header_file : sets the header file name\n"; + print " source_file : sets the source file name\n"; + print " include_mark : sets the include macro name\n"; + print " namespace : sets the name space\n"; + print " root_class_num : sets the root class number\n"; + print " inherited_class : class to be inherited\n"; + print " associated_class : associated class to be used\n"; + print " add_header : additional header include\n"; + print " add_header_src : additional header include for source file\n"; + print " global_declaration : add. global declaration in header file\n"; + print " global_implementation : add. global impl. in source file\n"; + print " friend : sets the friend class declaration\n"; + print " constructor : explicitly create constructor(s)\n"; + print " destructor : explicitly create destructor(s)\n"; + print " method [ public|protected|private ] \n"; + print " : set method types, names and arguments\n"; + print " member [ public|protectec|private ] \n"; + print " : set data member types and names\n"; + print "\n"; +} + +############################################################################ + +sub fads_set { + $option = $_cmds[1]; + if ( $option =~ /^help$/i ) { + &fads_set_help; + } elsif ( $option =~ /^class_name$/i ) { + &fads_set_class_name; + } elsif ( $option =~ /^collection_class$/i ) { + &fads_set_collection_class; + } elsif ( $option =~ /^collection_class_header$/i ) { + &fads_set_collection_class_header; + } elsif ( $option =~ /^collection_class_method_entries$/i ) { + &fads_set_collection_class_method_entries; + } elsif ( $option =~ /^collection_class_method_add$/i ) { + &fads_set_collection_class_method_add; + } elsif ( $option =~ /^collection_class_method_get$/i ) { + &fads_set_collection_class_method_get; + } elsif ( $option =~ /^collection_class_signature$/i ) { + &fads_set_collection_class_signature; + } elsif ( $option =~ /^collection_base_class$/i ) { + &fads_set_collection_base_class; + } elsif ( $option =~ /^array_io_base$/i ) { + &fads_set_array_io_base; + } elsif ( $option =~ /^catalog$/i ) { + &fads_set_catalog; + } elsif ( $option =~ /^sdet_name$/i ) { + &fads_set_sdet_name; + } elsif ( $option =~ /^template$/i ) { + &fads_set_template; + } elsif ( $option =~ /^description$/i ) { + &fads_set_description; + } elsif ( $option =~ /^history$/i ) { + &fads_set_history; + } elsif ( $option =~ /^header_file$/i ) { + &fads_set_header_file; + } elsif ( $option =~ /^source_file$/i ) { + &fads_set_source_file; + } elsif ( $option =~ /^include_mark$/i ) { + &fads_set_include_mark; + } elsif ( $option =~ /^namespace$/i ) { + &fads_set_namespace; + } elsif ( $option =~ /^root_class_num$/i ) { + &fads_set_root_class_num; + } elsif ( $option =~ /^friend$/i ) { + &fads_set_friend; + } elsif ( $option =~ /^constructor$/i ) { + &fads_set_constructor; + } elsif ( $option =~ /^destructor$/i ) { + &fads_set_destructor; + } elsif ( $option =~ /^inherited_class$/i ) { + &fads_set_inherited_class; + } elsif ( $option =~ /^associated_class$/i ) { + &fads_set_associated_class; + } elsif ( $option =~ /^add_header$/i ) { + &fads_set_add_header; + } elsif ( $option =~ /^add_header_src$/i ) { + &fads_set_add_header_src; + } elsif ( $option =~ /^global_declaration$/i ) { + &fads_set_global_declaration; + } elsif ( $option =~ /^global_implementation$/i ) { + &fads_set_global_implementation; + } elsif ( $option =~ /^method$/i ) { + &fads_set_method; + } elsif ( $option =~ /^member$/i ) { + &fads_set_members; + } else { + print "\n${script_name}: Unrecognized set command option: $option\n"; + &fads_set_help; + if ( $force ) { + print "exiting...\n\n"; + exit (1); + } + } +} + +############################################################################ + +sub fads_set_class_name { + if ( $#_cmds < 2 ) { + print "\nError - specify a class name.\n"; + exit(1) if ( $force ); + return; + } + $class_name = "$_cmds[2]"; + print "Class name = $class_name\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_collection_class { + if ( $#_cmds < 2 ) { + print "\nError - specify a collection class name.\n"; + exit(1) if ( $force ); + return; + } + $collection_class = "$_cmds[2]"; + print "Collection class name = $collection_class\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_collection_class_header { + if ( $#_cmds < 2 ) { + print "\nError - specify yes or no!.\n"; + exit(1) if ( $force ); + return; + } + &tidy_command_option; + if ( $_cmds[2] =~ /^y$/i || $_cmds[2] =~ /^yes$/i ) { + $collection_class_header = 1 + } elsif ( $_cmds[2] =~ /^n$/i || $_cmds[2] =~ /^no$/i ) { + $collection_class_header = 0 + } else { + print "\nError - specify yes or no!.\n"; + } +} + +############################################################################ + +sub fads_set_collection_class_method_entries { + if ( $#_cmds < 2 ) { + print "\nError - specify a collection class method name for entries.\n"; + exit(1) if ( $force ); + return; + } + &tidy_command_option; + $collection_class_method_entries = "$_cmds[2]"; + print "Collection class method for entries = $collection_class_method_entries\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_collection_class_method_add { + if ( $#_cmds < 2 ) { + print "\nError - specify a collection class method name for add.\n"; + exit(1) if ( $force ); + return; + } + &tidy_command_option; + $collection_class_method_add = "$_cmds[2]"; + print "Collection class method for add = $collection_class_method_add\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_collection_class_method_get { + if ( $#_cmds < 2 ) { + print "\nError - specify a collection class method name for get.\n"; + exit(1) if ( $force ); + return; + } + &tidy_command_option; + $collection_class_method_get = "$_cmds[2]"; + print "Collection class method for get = $collection_class_method_get\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_collection_class_signature { + if ( $#_cmds < 2 ) { + print "\nError - specify a collection class signature.\n"; + exit(1) if ( $force ); + return; + } + &tidy_command_option; + $collection_class_signature = "$_cmds[2]"; + print "Collection class signature = $collection_class_signature\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_collection_base_class { + if ( $#_cmds < 2 ) { + print "\nError - specify a collection base class name.\n"; + exit(1) if ( $force ); + return; + } + $collection_base_class = "$_cmds[2]"; + print "Collection base class name = $collection_base_class\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_array_io_base { + if ( $#_cmds < 2 ) { + print "\nError - specify an array I/O base class name.\n"; + exit(1) if ( $force ); + return; + } + $array_io_base = "$_cmds[2]"; + print "Array I/O base class name = $array_io_base\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_catalog { + if ( $#_cmds < 2 ) { + print "\nError - specify a catalog name.\n"; + exit(1) if ( $force ); + return; + } + $catalog = "$_cmds[2]"; + print "Catalog name = $catalog\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_sdet_name { + if ( $#_cmds < 2 ) { + print "\nError - specify a sensitive detector name.\n"; + exit(1) if ( $force ); + return; + } + $sdet_name = "$_cmds[2]"; + print "Sensitive detector name = $sdet_name\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_template { + if ( $#_cmds < 2 ) { + print "\nError - specify template.\n"; + exit(1) if ( $force ); + return; + } + shift @_cmds; + shift @_cmds; + while ($_cmds[0] ne "") { + $template .= " " . $_cmds[0]; + shift @_cmds; + } + $template =~ s/^ //; + print "Template = $template\n" if ($verbose) ; +} + +############################################################################ + +sub fads_set_description { + $i=0; + while() { + chop; # chop off the last newline + s/^#.*$//; # omit comments + last if ( &is_endline ); + $description[$i++] = $_; + } + if ($verbose) { + print "--- Class Description: ------------------------------------\n"; + foreach $line (@description) { + print $line,"\n"; + } + print "--- Class Description: ------------------------------------\n\n"; + } +} + +############################################################################ + +sub fads_set_history { + $i=0; + while() { + chop; # chop off the last newline + s/^#.*$//; # omit comments + last if ( &is_endline ); + $history[$i++] = $_; + } + if ($verbose) { + print "--- History: ----------------------------------------------\n"; + foreach $line (@history) { + print $line,"\n"; + } + print "--- History: ----------------------------------------------\n\n"; + } +} + +############################################################################ + +sub fads_set_header_file { + if ( $#_cmds < 2 ) { + print "\nError - specify header file name.\n"; + exit(1) if ( $force ); + return; + } + $header_file_in = "$_cmds[2]"; + print "Header file = $header_file_in\n" if ($verbose); +} + +############################################################################ + +sub fads_set_source_file { + if ( $#_cmds < 2 ) { + print "\nError - specify source file name.\n"; + exit(1) if ( $force ); + return; + } + $source_file_in = "$_cmds[2]"; + print "Source file = $source_file_in\n" if ($verbose); +} + +############################################################################ + +sub fads_set_include_mark { + if ( $#_cmds < 2 ) { + print "\nError - specify include mark name.\n"; + exit(1) if ( $force ); + return; + } + $incl_mark_in = "$_cmds[2]"; + print "Include mark = $incl_mark_in\n" if ($verbose); +} + +############################################################################ + +sub fads_set_namespace { + if ( $#_cmds < 2 ) { + print "\nError - specify name space.\n"; + exit(1) if ( $force ); + return; + } + $namespace = "$_cmds[2]"; + print "Name space = $namespace\n" if ($verbose); +} + +############################################################################ + +sub fads_set_root_class_num { + if ( $#_cmds < 2 ) { + print "\nError - specify the class number!.\n"; + exit(1) if ( $force ); + return; + } + $root_class_num = $_cmds[2]; + if ($verbose) { + print "*** ROOT class number $root_class_num ***\n" + } +} + +############################################################################ + +sub fads_set_constructor { + $num_constructor++; + $i = $num_constructor - 1; + $num_constructor_impl[$i] = 0; + $constructor_desc[$i] = ""; + $constructor_impl[$i] = ""; + $l = 0; + while() { + chop($line0 = $_); + $_ = &tidy_line; + last if ( &is_endline ); + if ( $_ ne "" ) { + $l++; + if ( $l == 1 ) { + ($idt = $line0) =~ s/(^[ ]*)(.*$)/$1/; # count indent space + s/;[ ]*$//; + $constructors[$i] = $_; + } elsif ( $num_constructor_impl[$i] == 0 && /^\/\// ) { + s/^\/\/ //; # chop off C++ comment mark + $constructor_desc[$i] .= $_ . "\n"; + } else { + $line0 =~ s/(^$idt)//; # chop off indent space + $num_constructor_impl[$i]++; + $constructor_impl[$i] .= $line0 . "\n"; + } + } else { + if ( $num_constructor_impl[$i] > 0 ) { + $num_constructor_impl[$i]++; + $constructor_impl[$i] .= "\n"; + } + } + } + &fads_print_constructor($i, $constructors[$i]) if ($verbose); +} + +############################################################################ + +sub fads_print_summary { + print "${class_root}:\n"; + if ( $inherited_class[0] ne "" ) { + print " -> "; + foreach $iclass (@inherited_class) { + print "${iclass} "; + } + print "\n"; + } + $i=0; + foreach $line (@member_names) { + &fads_print_member($i++, "summary"); + } + $i=0; + foreach $line (@method_names) { + &fads_print_method($i++, $line, "summary"); + } + print " collection_class: $collection_class\n"; + print " collection_class_header: $collection_class_header\n"; + print " collection_class_method_entries: $collection_class_method_entries\n"; + print " collection_class_method_add: $collection_class_method_add\n"; + print " collection_class_method_get: $collection_class_method_get\n"; + print " collection_class_signature: $collection_class_signature\n"; + print " collection_base_class: $collection_base_class\n"; + print " array_io_base: $array_io_base\n"; + print " catalog: $catalog\n"; +} + +############################################################################ + +sub fads_print_constructors { + $i=0; + foreach $line (@constructors) { + &fads_print_constructor($i++, $line); + } +} + +############################################################################ + +sub fads_print_constructor { + $j=$_[0]+1; + print "Constructor #${j}: $_[1]\n"; + &fads_print_description($constructor_desc[$_[0]]); + &fads_print_implementation_body($constructor_impl[$_[0]], + $num_constructor_impl[$_[0]]); +} + +############################################################################ + +sub fads_set_destructor { + $num_destructor++; + $i = $num_destructor - 1; + $num_destructor_impl[$i] = 0; + $destructor_desc[$i] = ""; + $destructor_impl[$i] = ""; + $l = 0; + while() { + chop($line0 = $_); + $_ = &tidy_line; + last if ( &is_endline ); + if ( $_ ne "" ) { + $l++; + if ( $l == 1 ) { + ($idt = $line0) =~ s/(^[ ]*)(.*$)/$1/; # count indent space + s/;[ ]*$//; + $destructors[$i] = $_; + } elsif ( $num_destructor_impl[$i] == 0 && /^\/\// ) { + s/^\/\/ //; # chop off C++ comment mark + $destructor_desc[$i] .= $_ . "\n"; + } else { + $line0 =~ s/(^$idt)//; # chop off indent space + $num_destructor_impl[$i]++; + $destructor_impl[$i] .= $line0 . "\n"; + } + } else { + if ( $num_destructor_impl[$i] > 0 ) { + $num_destructor_impl[$i]++; + $destructor_impl[$i] .= "\n"; + } + } + } + &fads_print_destructor($i, $destructors[$i]) if ($verbose); +} + +############################################################################ + +sub fads_print_destructors { + $i=0; + foreach $line (@destructors) { + &fads_print_destructor($i++, $line); + } +} + +############################################################################ + +sub fads_print_destructor { + $j=$_[0]+1; + print "Destructor #${j}: $_[1]\n"; + &fads_print_description($destructor_desc[$_[0]]); + &fads_print_implementation_body($destructor_impl[$_[0]], + $num_destructor_impl[$_[0]]); +} + +############################################################################ + +sub fads_set_friend { + $i=0; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $friends[$i++] = $_; + } + if ($verbose) { + print "Friend classes: @friends\n"; + } +} + +############################################################################ + +sub fads_set_inherited_class { + $i=$num_inherit; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $root_class = 1 if ($_ eq "TObject"); + $inherited_class[$i++] = $_; + } + $num_inherit = $i; + if ($verbose) { + print "Number of inherited class: $num_inherit\n"; + print "Inherited class: @inherited_class\n"; + print "*** ROOT class ***\n" if ($root_class == 1) + } +} + +############################################################################ + +sub fads_set_associated_class { + $i=0; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $assoc_class[$i++] = $_; + } + print "Associated class: @assoc_class\n" if ($verbose); +} + +############################################################################ + +sub fads_set_add_header { + $i=0; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $additional_hdrs[$i++] = $_; + } + print "Additional header include: @additional_hdrs\n" if ($verbose); +} + +############################################################################ + +sub fads_set_add_header_src { + $i=0; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $additional_hdrs_src[$i++] = $_; + } + print "Additional header include for source file: @additional_hdrs_src\n" + if ($verbose); +} + +############################################################################ + +sub fads_set_global_declaration { + $i=0; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $global_decls[$i++] = $_; + } + print "Global declation: @global_decls\n" if ($verbose); +} + +############################################################################ + +sub fads_set_global_implementation { + $i=0; + while() { + $_ = &tidy_line; + last if ( &is_endline ); + $global_impls[$i++] = $_; + } + print "Global implementation: @global_impls\n" if ($verbose); +} + +############################################################################ + +sub fads_set_method { + $num_method++; + $i = $num_method - 1; + $num_method_impl[$i] = 0; + $method_desc[$i] = ""; + $method_impl[$i] = ""; + $method_attr[$i] = "public"; + $method_attr[$i] = "protected" if ($_cmds[2] eq "protected"); + $method_attr[$i] = "private" if ($_cmds[2] eq "private"); + $l = 0; + while() { + chop($line0 = $_); + $_ = &tidy_line; + last if ( &is_endline ); + if ( $_ ne "" ) { + $l++; + if ( $l == 1 ) { + ($idt = $line0) =~ s/(^[ ]*)(.*$)/$1/; # count indent space + s/;[ ]*$//; # chop off trailing semicolon + $method_names[$i] = $_; + } elsif ( $num_method_impl[$i] == 0 && /^\/\// ) { + s/^\/\/ //; # chop off C++ comment mark + $method_desc[$i] .= $_ . "\n"; + } else { + $line0 =~ s/(^$idt)//; # chop off indent space + if ( &test_line($line0) ) { + $num_method_impl[$i]++; + $method_impl[$i] .= $line0 . "\n"; + } else { + print "\nError: Line does not match. Check the number of double quotation. Stop.\n"; + print " Class: $class_name\n"; + print " Method: $method_names[$i]\n"; + print " Line: $line0\n"; + exit 1; + } + } + } else { + if ( $num_method_impl[$i] > 0 ) { + $num_method_impl[$i]++; + $method_impl[$i] .= "\n"; + } + } + } + &fads_print_method($i, $method_names[$i]) if ( $verbose ); +} + +############################################################################ + +sub test_line { + $_ = $_[0] . "\n"; + @words = quotewords("\n",1,$_); + if ( $words[0] ne "" ) { + return 1; + } else { + return 0; + } +} + +############################################################################ + +sub fads_print_methods { + $i=0; + foreach $line (@method_names) { + &fads_print_method($i++, $line); + } +} + +############################################################################ + +sub fads_print_method { + $j=$_[0]+1; + if ( $_[2] eq "summary" ) { + $rtype = &return_type($_[1]); + $namarg = &method_namarg($_[1]); + $namarg =~ s/(^.*)\{.*$/$1/; + print " + $namarg : $rtype\n"; + } else { + print "Method#${j} "; + print "$method_attr[$_[0]]: "; + print "virtual " if ( &is_virtual($_[1]) ); + print "static " if ( &is_static($_[1]) ); + print "inline " if ( &is_inline($_[1]) ); + $rtype = &return_type($_[1]); + $namarg = &method_namarg($_[1]); + print "$rtype $namarg\n"; + &fads_print_description($method_desc[$_[0]]); + &fads_print_implementation_body($method_impl[$_[0]], + $num_method_impl[$_[0]] ); + } +} + +############################################################################ + +sub fads_set_members { + $attr = "private"; + $attr = "protected" if ($_cmds[2] eq "protected"); + $attr = "public" if ($_cmds[2] eq "public"); + while() { + $_ = &tidy_line(); + last if ( &is_endline() ); + if ( $_ ne "" ) { + &fads_set_member($num_member++, $_, $attr); + } + } +} + +############################################################################ + +sub fads_set_member { + $_ = $_[1]; + s/;[ ]*$//; + $type = $_; + $type =~ s/(^.*)[ ]+(.*$)/$1/g; + $mname = $_; + $mname =~ s/(^.*)[ ]+(.*$)/$2/g; + $member_type[$_[0]] = $type; + $member_names[$_[0]] = $mname; + $member_attr[$_[0]] = $_[2]; + $member_attr[$_[0]] = "private" if ( $_[2] eq "" ); + + &fads_print_member($_[0]) if ( $verbose ); +} + +############################################################################ + +sub fads_print_members { + $i=0; + foreach $line (@member_names) { + &fads_print_member($i++); + } +} + +############################################################################ + +sub fads_print_member { + $j=$_[0]+1; + if ( $_[1] eq "summary" ) { + print " - $member_type[$_[0]] $member_names[$_[0]]\n"; + } else { + print "member#${j} $member_attr[$_[0]]: "; + print "$member_type[$_[0]] $member_names[$_[0]]\n"; + } +} + +############################################################################ + +sub fads_conv { + + $collection_class_method_entries = ¯o_conv($collection_class_method_entries); + + # change method_add arguments to "(a)" + $collection_class_method_add =~ s/(.*)\(.*\)/$1(a)/; + $collection_class_method_add = ¯o_conv($collection_class_method_add); + + # add "." to method_get. Don't add if [] operator. + $collection_class_method_get =~ s/^(.*)$/.$1/; + $collection_class_method_get =~ s/^.\[(.*)$/[$1/; + $collection_class_method_get = ¯o_conv($collection_class_method_get); + + $collection_class_signature = ¯o_conv($collection_class_signature); + + $i=0; + foreach $line (@additional_hdrs) { + $additional_hdrs[$i] = ¯o_conv($additional_hdrs[$i]); + $i++; + } + + $i=0; + foreach $line (@additional_hdrs_src) { + $additional_hdrs_src[$i] = ¯o_conv($additional_hdrs_src[$i]); + $i++; + } + + $i=0; + foreach $line (@global_decls) { + $global_decls[$i] = ¯o_conv($global_decls[$i]); + $i++; + } + + $i=0; + foreach $line (@global_impls) { + $global_impls[$i] = ¯o_conv($global_impls[$i]); + $i++; + } + + $i=0; + foreach $line (@member_names) { + $member_type [$i] = ¯o_conv($member_type [$i]); + $member_names[$i] = ¯o_conv($member_names[$i]); + $i++; + } + + $i=0; + foreach $line (@method_names) { + $method_desc [$i] = ¯o_conv($method_desc [$i]); + $method_impl [$i] = ¯o_conv($method_impl [$i]); + $method_names[$i] = ¯o_conv($method_names[$i]); + } + + $i=0; + foreach $line (@constructors) { + $constructor_desc[$i] = ¯o_conv($constructor_desc[$i]); + $constructor_impl[$i] = ¯o_conv($constructor_impl[$i]); + $constructors[$i] = ¯o_conv($constructors[$i]); + } + + $i=0; + foreach $line (@destructor_names) { + $destructor_desc[$i] = ¯o_conv($destructor_desc [$i]); + $destructor_impl[$i] = ¯o_conv($destructor_impl [$i]); + $destructors[$i] = ¯o_conv($destructors[$i]); + } +} + +############################################################################ + +sub fads_print_implementation_body { + @words = quotewords("\n",1,$_[0]); + $k=0; + foreach $word (@words) { + $k++; + print " $word\n" if ( $k <= $_[1] ); + } +} + +############################################################################ + +sub macro_conv { + $_ = $_[0]; + s/\@class_name\@/$class_name/g; + s/\@class_root\@/$class_root/g; + s/\@class_array\@/$class_array/g; + s/\@class_io\@/$class_io/g; + s/\@collection_class\@/$collection_class/g; + s/\@collection_class_method_entries\@/$collection_class_method_entries/g; + s/\@collection_class_method_add\@/$collection_class_method_add/g; + s/\@collection_class_method_get\@/$collection_class_method_get/g; + s/\@collection_class_signature\@/$collection_class_signature/g; + s/\@collection_base_class\@/$collection_base_class/g; + s/\@array_io_base\@/$array_io_base/g; + s/\@catalog\@/$catalog/g; + s/\@entry_object\@/$entry_object/g; + s/\@sdet_name\@/$sdet_name/g; + s/\@make_transient\@/$make_transient/g; + + # for ROOT data types + s/\@int\@/ Int_t/g; + s/\@uint\@/UInt_t/g; + s/\@float\@/ Float_t/g; + s/\@char\@/char/g; + + return $_; +} + +############################################################################ + +sub capitalize { + $_ = $_[0]; + y/a-z/A-Z/; + return $_; +} + +############################################################################ + +sub lowerstring { + $_ = $_[0]; + y/A-Z/a-z/; + return $_; +} + +############################################################################ + +sub underscore { + $_ = $_[0]; + s/[A-Z]/_$&/g; + s/^_//g; + s/_([A-Z])_([A-Z])_/$1$2_/g; + s/_([A-Z])_([A-Z])$/_$1$2/g; + return $_; +} + +############################################################################ + +sub tidy_command_option { + $i = 0; + foreach $cmd (@_cmds) { + last if ( $cmd eq "#" ); + if ( $i > 2 ) { + $_tmp[2] .= $cmd if ( $cmd ne "" ); + } else { + $_tmp[$i++] = $cmd if ( $cmd ne "" ); + } + } + @_cmds = (); + while( $_ = shift(@_tmp) ) { + push(@_cmds,$_); + } +} + +############################################################################ + +sub tidy_line { + $result = $_[0]; + $result = $_ if ( $result eq "" ); + chop($result); # chop off the last newline + $result =~ s/^#.*$//; # omit comments + $result =~ s/^[ ]+//; # chop off leading spaces + $result =~ s/[ ]+$//; # chop off the trailing branks +## $result =~ s/;.*$//; # chop off the rest of the words after ";" + return $result; +} + +############################################################################ + +sub fads_create_header_file { + open(OUT, "> $header_file_tmp"); + + print(OUT "//\n"); + print(OUT "// File: ${class_root}${header_ext}\n"); + print(OUT "//\n"); + print(OUT "// This file is automatically generated by $script_name.pl.\n"); + print(OUT "// Do not edit by hand. Edit $class_name.rootio instead.\n"); + print(OUT "\n"); + + print(OUT "#ifndef $incl_mark\n"); + print(OUT "#define $incl_mark 1\n"); + print(OUT "\n"); + + if ( $additional_hdrs[0] ne "" ) { + foreach $addhdr (@additional_hdrs) { + $line = "#include \"$addhdr\""; + $line =~ s/""/>/; + print(OUT "$line\n"); + } + print(OUT "\n"); + } + + if ( $global_decls[0] ne "" ) { + foreach $decl (@global_decls) { + print(OUT "$decl\n"); + } + print(OUT "\n"); + } + + if ( $inherited_class[0] ne "" ) { +## print(OUT "// Class inherited:\n"); + foreach $iclass (@inherited_class) { + if ( $iclass ne "TObject" ) { + print(OUT "#include \"${iclass}${header_ext_default}\"\n"); + } else { + print(OUT "#include \"TObject.h\"\n"); + } + } + print(OUT "\n"); + } + + if ( $assoc_class[0] ne "" ) { + print(OUT "// Forward Declarations:\n"); + foreach $aclass (@assoc_class) { + print(OUT "class ${aclass};\n"); + } + print(OUT "\n"); + } + + if ( $description[0] ne "" ) { + print(OUT "// Class Description:\n"); + foreach $line (@description) { + print(OUT "// $line\n"); + } + print(OUT "\n"); + } + + if ( $namespace ne "none" ) { + print(OUT "namespace ${namespace}\n"); + print(OUT "{\n"); + print(OUT "\n"); + $nspace = " "; + } else { + $nspace = ""; + } + + if ( $template ne "" ) { + print(OUT "template $template "); + } + + print(OUT "${nspace}class $class_root\n"); + + if ( $inherited_class[0] ne "" ) { + print(OUT "${nspace} : "); + $i=0; + foreach $iclass (@inherited_class) { + $i++; + print(OUT "public $iclass"); + print(OUT ", ") if ( $i != $num_inherit ); + } + } + print(OUT "\n") if ( $num_inherit > 0 ); + + print(OUT "${nspace}\{\n"); + + if ( $friends[0] ne "" ) { + foreach $friend (@friends) { + print(OUT " friend class ${friend};\n") if ( $friend ne "" ); + } + print(OUT "\n"); + } + + print(OUT " public:\n"); + if ( $template ne "" ) { + print(OUT " ${class_root}() {};\n"); + } else { + print(OUT " ${class_root}();\n"); + } + if ( $constructors[0] ne "" ) { + $i = 0; + foreach $constructor (@constructors) { + if ( $constructor ne "" ) { + print(OUT " ${constructor}"); + if ( $template ne "" ) { + if ( $num_constructor_impl[$i] > 0 ) { + print(OUT "\n") + &fads_create_implementation_body($constructor_impl[$i], + $num_constructor_impl[$i], " "); + } elsif ( ! &is_implicit_inline($constructor) ) { + print(OUT "{};\n"); + } + } else { + print(OUT ";\n") + } + } + $i++; + } + } +## &fads_create_description($constructor_desc[$i], "Constructor"); + + if ( $destructors[0] ne "" ) { + foreach $destructor (@destructors) { + print(OUT " ${destructor};\n") if ( $destructor ne "" ); + } + } else { + print(OUT " ~${class_root}();\n"); + } +## &fads_create_description($destructor_desc[$i], "Destructor"); + print(OUT "\n"); + + &fads_create_header_methods("public"); + &fads_create_header_methods("protected"); + &fads_create_header_methods("private"); + + if ( $assoc_class[0] ne "" ) { + print(OUT " private:\n"); + foreach $aclass (@assoc_class) { + print(OUT " ${aclass}* f_${aclass};\n"); + } + print(OUT "\n"); + } + + &fads_create_header_members("public"); + &fads_create_header_members("protected"); + &fads_create_header_members("private"); + + if ( $root_class == 1 ) { + print(OUT " ClassDef (${class_root},${root_class_num})\n"); + print(OUT "\n"); + } + + print(OUT "${nspace}}; // End of class ${class_root}\n"); + print(OUT "\n"); + + if ( $namespace ne "none" ) { + print(OUT "} // ${namespace}\n"); + print(OUT "\n"); + } + + print(OUT "#endif\n"); + print(OUT "\n"); + + close(OUT); + + print "File $header_file created.\n" if ( $verbose && ! $nowrite ); +} + +############################################################################ + +sub fads_create_header_methods { + $attr = $_[0]; + $attr = "public" if ( $_[0] eq ""); + if ( &check_methods_attr($attr) ) { + print(OUT " $attr:\n"); + $i=0; + foreach $method (@method_names) { + if ( $method ne "" ) { + &fads_create_header_method($i++, $method, $attr) + } + } + print(OUT "\n"); + } +} + +############################################################################ + +sub fads_create_header_method { + if ( $_[2] eq $method_attr[$_[0]] ) { + $j = $_[0]+1; + print(OUT " "); + print(OUT "inline ") if ( &is_inline($_[1]) ); + print(OUT "static ") if ( &is_static($_[1]) ); + print(OUT "virtual ") if ( &is_virtual($_[1]) ); + $rtype = &return_type($_[1]); + $rtype =~ s/\//; + $namarg = &method_namarg($_[1]); + print(OUT "$rtype $namarg"); + if ( $template ne "" ) { + if ( $num_method_impl[$_[0]] > 0 ) { + print(OUT "\n"); + @words = quotewords("\n",1,$method_impl[$_[0]]); + $k=0; + foreach $word (@words) { + $k++; + print(OUT " $word\n") if ( $k <= $num_method_impl[$_[0]] ); + } + } else { + print(OUT ";\n"); + } + } else { + print(OUT ";\n"); + } + $name = "method #$j: $namarg"; +## &fads_create_description($method_desc[$_[0]], $name); + } +} + +############################################################################ + +sub fads_create_header_members { + $attr = $_[0]; + $attr = "private" if ( $_[0] eq ""); + if ( &check_members_attr($attr) ) { + print(OUT " $attr:\n"); + $i=0; + foreach $member (@member_names) { + if ( $member ne "" ) { + &fads_create_header_member($i++, $attr); + } + } + print(OUT "\n"); + } +} + +############################################################################ + +sub fads_create_header_member { + $mtype = $member_type[$_[0]]; + $mtype =~ s/\/${namespace}::/ if ( $namespace ne "none" ); + $mtype =~ s/\// if ( $namespace eq "none" ); + if ( $_[1] eq $member_attr[$_[0]] ) { + print(OUT " $mtype $member_names[$_[0]];\n"); + } +} + +############################################################################ + +sub check_methods_attr { + $i = 0; + foreach $method (@method_names) { + return 1 if ( $method_attr[$i++] eq $_[0] ); + } + return 0; +} + +############################################################################ + +sub check_members_attr { + $i = 0; + foreach $member (@member_names) { + return 1 if ( $member_attr[$i++] eq $_[0] ); + } + return 0; +} + +############################################################################ + +sub fads_create_source_file { + open(OUT, "> $source_file_tmp"); + print(OUT "//\n"); + print(OUT "// File: ${class_root}${src_ext_default}\n"); + print(OUT "//\n"); + print(OUT "// This file is automatically generated by $script_name.pl.\n"); + print(OUT "// Do not edit by hand. Edit $class_name.rootio instead.\n"); + print(OUT "\n"); + + print(OUT "#include \"${class_root}${header_ext_default}\"\n\n"); + + if ( $assoc_class[0] ne "" ) { +## print(OUT "// Forward Declarations:\n"); + foreach $aclass (@assoc_class) { + print(OUT "#include \"${aclass}${header_ext_default}\"\n"); + } + print(OUT "\n"); + } + + if ( $additional_hdrs_src[0] ne "" ) { +## print(OUT "// Additional Include:\n"); + foreach $addhdr (@additional_hdrs_src) { + if ( $addhdr ne "" ) { + $line = "#include \"$addhdr\""; + $line =~ s/""/>/; + print(OUT "$line\n"); + } + } + print(OUT "\n"); + } + + if ( $root_class == 1 ) { + print(OUT "ClassImp(${class_root})\n"); + print(OUT "\n"); + } + + if ( $global_impls[0] ne "" ) { + foreach $impl (@global_impls) { + print(OUT "$impl\n"); + } + print(OUT "\n"); + } + + if ( $namespace ne "none" ) { + $nspace ="${namespace}::"; + } else { + $nspace = ""; + } + + &fads_create_constructor(-1); + + if ( $constructors[0] ne "" ) { + $i=0; + foreach $constructor (@constructors) { + if ( ! &is_no_implementation($constructor) ) { + &fads_create_constructor($i++); + } + } + } + + if ( $destructors[0] ne "" ) { + $i=0; + foreach $destructor (@destructors) { + if ( ! &is_no_implementation($destructor) ) { + &fads_create_destructor($i++); + } + } + } else { + &fads_create_destructor(-1); + } + + &fads_create_methods; + + print(OUT "// End of ${class_root}${src_ext_default}\n\n"); + + close(OUT); + + print "File $source_file created.\n" if ( $verbose && ! $nowrite ); +} + +############################################################################ + +sub fads_create_constructor { + $j = $_[0]; + $k = $j + 1; + if ( $j >= 0 ) { + $namarg = $constructors[$j]; + $dname = "Constructor #" . $k; + $impl = $constructor_impl[$j]; + } else { + $namarg = $class_root . "()"; + $dname = "Default Constructor"; + $impl = ""; + } +## print(OUT "// Implementation of $dname\n"); + print(OUT "${nspace}${class_root}::$namarg\n"); + + if ( $impl ne "" ) { + # + # explicit implementation + # + &fads_create_implementation_body($impl, $num_constructor_impl[$j], ""); + } else { + # + # default implementation + # + if ( $member_names[0] ne "") { + print(OUT " : "); + $j=0; + foreach $mname (@member_names) { + $j++; + print(OUT "${mname}(0)"); + print(OUT ", ") if ( $j != $num_member ); + } + print(OUT "\n"); + } + print(OUT "{\n"); + + foreach $aclass (@assoc_class) { + print(OUT " f_${aclass} = new ${nspace}${aclass}();\n") if ($aclass ne ""); + } + print(OUT "}\n"); + } + print(OUT "\n"); +} + +############################################################################ + +sub count_members { + $ii = 0; + foreach $mname (@member_names) { + $ii++; + } + return $ii; +} + +############################################################################ + +sub fads_create_destructor { + $j = $_[0]; + $k = $j + 1; + if ( $j >= 0 ) { + $namarg = $destructors[$j]; + $namarg =~ s/virtual[ ]+//; + $dname = "Destructor #" . $k; + $impl = $destructor_impl[$j]; + } else { + $namarg = "~" . $class_root . "()"; + $dname = "Default Destructor"; + $impl = ""; + } +## print(OUT "// Implementation of $dname\n"); + print(OUT "${nspace}${class_root}::$namarg\n"); + + if ( $impl ne "" ) { + # + # explicit implementation + # + &fads_create_implementation_body($impl, $num_destructor_impl[$j], ""); + } else { + print(OUT "{\n"); + foreach $aclass (@assoc_class) { + print(OUT " delete f_${aclass};\n") if ( $aclass ne "" ); + } + print(OUT "}\n"); + } + print(OUT "\n"); +} + +############################################################################ + +sub fads_create_methods { + $i=0; + foreach $method (@method_names) { + &fads_create_method($i++, $method); + } +} + +############################################################################ + +sub fads_create_method { + $namarg = &method_namarg($_[1]); + ($mname = $namarg) =~ s/\(.*$//; # chop off arguments + $rtype = &return_type($_[1]) ; $rtype = "" if ( $rtype eq "none" ); + $rtype =~ s/\/${namespace}::/ if ( $namespace ne "none" ); + $rtype =~ s/\// if ( $namespace eq "none" ); + $ntype = $namespace . "::" ; $ntype = "" if ( $namespace eq "none" ); + +### print "$_[1]\n"; +### $ss = &is_implicit_inline($_[1]); +### $tt = &is_inline($_[1]); +### $uu = &is_virtual($_[1]); +### print " implicit_inline = $ss"; +### print " is_inline = $tt"; +### print " is_virtual = $uu\n"; + + if ( ! &is_no_implementation($_[1]) ) { + +## print(OUT "// Implementation of $mname\n"); + print(OUT "$rtype ${ntype}${class_root}::${namarg}\n"); + $impl = $method_impl[$_[0]]; + + if ( $impl ne "" ) { + # + # explicit implementation + # + &fads_create_implementation_body($impl, $num_method_impl[$_[0]], ""); + } else { + # + # default implementation + # + print(OUT "{\n"); + if ( $rtype ne "void" ) { + print(OUT " // Comment out the next line in actual implementation\n"); + print(OUT " // return ($rtype) _something_;\n"); + } + print(OUT "}\n"); + } + print(OUT "\n"); + } +} + +############################################################################ + +sub fads_print_description { + @words = quotewords("\n",1,$_[0]); + foreach $word (@words) { + print " // $word\n" if ( $word ne "" ); + } +} + +############################################################################ + +sub fads_create_description { + $desc = $_[0]; + if ( $desc ne "" ) { + @words = quotewords("\n",1,$desc); + foreach $word (@words) { + print(OUT " // $word\n") if ( $word ne "" ); + } + } else { + print(OUT " // $_[1]\n"); + } + print(OUT "\n"); +} + +############################################################################ + +sub fads_print_implementation_body { + @words = quotewords("\n",1,$_[0]); + $k=0; + foreach $word (@words) { + $k++; + print " $word\n" if ( $k <= $_[1] ); + } +} + +############################################################################ + +sub fads_create_implementation_body { + @words = quotewords("\n",1,$_[0]); + $lspace = $_[2]; + $k=0; + foreach $word (@words) { + $k++; + $word =~ s/^[ ]+$//; # tidy empty line + print(OUT "${lspace}$word\n") if ( $k <= $_[1] ); + } +# print "Debug: fads_create_implementation_body k = $k n = $_[1]\n"; +} + +############################################################################ + +sub fads_create_array_header_file{ + open(OUT, "> $array_header_file_tmp"); + + print(OUT "//\n"); + print(OUT "// File: ${class_array}.hh\n"); + print(OUT "//\n"); + print(OUT "// This file is automatically generated by g4rootio.pl.\n"); + print(OUT "// Do not edit by hand. Edit ${class_name}.rootio instead.\n"); + print(OUT "\n"); + + $_ = &capitalize(&underscore($class_array)); + print(OUT "#ifndef $_\n"); + print(OUT "#define $_ 1\n"); + print(OUT "\n"); + + print(OUT "#include \"TClonesArray.h\"\n"); + print(OUT "#include \"TObject.h\"\n"); + print(OUT "\n"); + print(OUT "class ${class_name};\n"); + print(OUT "\n"); + print(OUT "// Class Description:\n"); + print(OUT "// Collection class to store each ${class_name}.\n"); + print(OUT "// Actual store/retrieve operation is done via ${class_io}.\n"); + print(OUT "\n"); + print(OUT "class ${class_array}\n"); + print(OUT " : public TObject\n"); + print(OUT "{\n"); + print(OUT " public:\n"); + print(OUT " ${class_array}();\n"); + print(OUT " ~${class_array}();\n"); + print(OUT "\n"); + print(OUT " public:\n"); + print(OUT " bool Add(${class_name}*);\n"); + print(OUT " int NumEntries() { return fentries; };\n"); + print(OUT " TClonesArray* GetArray() const {return farray;};\n"); + print(OUT " void Clear();\n"); + print(OUT "\n"); + print(OUT " private:\n"); + print(OUT " Int_t fentries; // number of entries;\n"); + print(OUT " TClonesArray* farray; //-> \"${class_root}\";\n"); + print(OUT " static TClonesArray* fgarray;\n"); + print(OUT "\n"); + print(OUT " ClassDef (${class_array},1)\n"); + print(OUT "\n"); + print(OUT "}; // End of class ${class_array}\n"); + print(OUT "\n"); + print(OUT "#endif\n"); + + close(OUT); + print "File $array_header_file created.\n" if ( $verbose && ! $nowrite ); +} + +############################################################################ + +sub fads_create_array_source_file{ + open(OUT, "> $array_source_file_tmp"); + + print(OUT "//\n"); + print(OUT "// File: ${class_array}.cc\n"); + print(OUT "//\n"); + print(OUT "// This file is automatically generated by g4rootio.pl.\n"); + print(OUT "// Do not edit by hand. Edit ${class_name}.rootio instead.\n"); + print(OUT "\n"); + + print(OUT "#include \"${class_array}.hh\"\n"); + print(OUT "#include \"${class_name}.hh\"\n"); + print(OUT "#include \"${class_root}.hh\"\n"); + print(OUT "\n"); + print(OUT "ClassImp(${class_array})\n"); + print(OUT "\n"); + print(OUT "TClonesArray* ${class_array}::fgarray = 0;\n"); + print(OUT "\n"); + print(OUT "${class_array}::${class_array}()\n"); + print(OUT "{\n"); + print(OUT " if (!fgarray) fgarray = new TClonesArray(\"${class_root}\",1000);\n"); + print(OUT " farray = fgarray;\n"); + print(OUT " fentries = 0;\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "${class_array}::~${class_array}()\n"); + print(OUT "{\n"); + print(OUT " Clear();\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "bool ${class_array}::Add(${class_name}* a)\n"); + print(OUT "{\n"); + print(OUT " TClonesArray &ary = *farray;\n"); + print(OUT " ${class_root}* h = new(ary[fentries++]) ${class_root}(a);\n"); + print(OUT " if (h==0) return false;\n"); + print(OUT " return true;\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "void ${class_array}::Clear()\n"); + print(OUT "{\n"); + print(OUT " fentries = 0;\n"); + print(OUT " farray->Delete();\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "// End of ${class_array}.cc\n"); + + close(OUT); + print "File $array_source_file created.\n" if ( $verbose && ! $nowrite ); +} + +############################################################################ + +sub fads_create_io_header_file{ + open(OUT, "> $io_header_file_tmp"); + + print(OUT "//\n"); + print(OUT "// File: ${class_io}.hh\n"); + print(OUT "//\n"); + print(OUT "// This file is automatically generated by g4rootio.pl.\n"); + print(OUT "// Do not edit by hand. Edit ${class_name}.rootio instead.\n"); + print(OUT "\n"); + + $_ = &capitalize(&underscore($class_io)); + print(OUT "#ifndef $_\n"); + print(OUT "#define $_ 1\n"); + print(OUT "\n"); + + print(OUT "#include \n"); + print(OUT "#include \"G4HitRootIO.hh\"\n"); + print(OUT "#include \"${class_name}.hh\"\n"); + print(OUT "#include \"${class_array}.hh\"\n"); + print(OUT "#include \"G4RootTransManager.hh\"\n"); + print(OUT "#include \"${array_io_base}.hh\"\n"); + print(OUT "\n"); + print(OUT "class ${class_array};\n"); + print(OUT "\n"); + print(OUT "class ${class_io}\n"); + print(OUT " : public ${array_io_base}\n"); + print(OUT "{\n"); + print(OUT " public:\n"); + print(OUT " ${class_io}(G4std::string detName, G4std::string colName);\n"); + print(OUT " ~${class_io}();\n"); + print(OUT "\n"); + print(OUT " public:\n"); + print(OUT " bool Store(const ${collection_base_class}* hc);\n"); + print(OUT " bool Retrieve( ${collection_base_class}*& hc);\n"); + print(OUT "\n"); + print(OUT " private:\n"); + print(OUT " G4std::string f_branchName;\n"); + print(OUT " G4std::string f_branchDesc;\n"); + print(OUT " G4RootTransManager* f_transMan;\n"); + print(OUT " ${class_array}* f_hc;\n"); + print(OUT " int f_nev;\n"); + print(OUT "\n"); + print(OUT "}; // End of class ${class_io}\n"); + print(OUT "\n"); + print(OUT "#endif\n"); + + close(OUT); + print "File $io_header_file created.\n" if ( $verbose && ! $nowrite ); +} + +############################################################################ + +sub fads_create_io_source_file{ + open(OUT, "> $io_source_file_tmp"); + + print(OUT "//\n"); + print(OUT "// File: ${class_io}.cc\n"); + print(OUT "//\n"); + print(OUT "// This file is automatically generated by g4rootio.pl.\n"); + print(OUT "// Do not edit by hand. Edit ${class_name}.rootio instead.\n"); + print(OUT "\n"); + print(OUT "#include \"${class_io}.hh\"\n"); + print(OUT "#include \"${collection_class}.hh\"\n") if ( $collection_class_header ); + print(OUT "#include \"${catalog}.hh\"\n"); + print(OUT "#include \"G4PersistencyManager.hh\"\n"); + print(OUT "#include \"G4RootIOManager.hh\"\n"); + print(OUT "#include \"${class_root}.hh\"\n"); + print(OUT "#include \"TFile.h\"\n"); + print(OUT "#include \"TTree.h\"\n"); + print(OUT "#include \"TBranch.h\"\n"); + print(OUT "\n"); + print(OUT "static ${catalog}<${class_io}> ${entry_object}(\"${sdet_name}\");\n"); + print(OUT "\n"); + print(OUT "${class_io}::${class_io}(G4std::string detName, G4std::string colName)\n"); + print(OUT " : ${array_io_base}(detName, colName), f_nev(0)\n"); + print(OUT "{\n"); + print(OUT " f_branchName = colName + \".\";\n"); + print(OUT "\n"); + print(OUT " G4RootIOManager* pm = (G4RootIOManager*)\n"); + print(OUT " G4PersistencyCenter::GetPersistencyCenter()->CurrentPersistencyManager();\n"); + print(OUT " assert(pm!=0);\n"); + print(OUT " f_transMan = (G4RootTransManager*) pm->TransactionManager();\n"); + print(OUT " assert(f_transMan!=0);\n"); + print(OUT "\n"); + print(OUT " // create a placeholder for new persistent array\n"); + print(OUT " f_hc = new ${class_array}();\n"); + print(OUT " assert(f_hc!=0);\n"); + print(OUT "\n"); + print(OUT " // Tell ROOT the class name to be stored in this branch\n"); + print(OUT " f_branchDesc = \"${class_array}\";\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "${class_io}::~${class_io}()\n"); + print(OUT "{\n"); + print(OUT " delete f_hc;\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "bool ${class_io}::Store(const ${collection_base_class}* hc)\n"); + print(OUT "{\n"); + print(OUT " // cast the transient collection for this detector type.\n"); + print(OUT " ${collection_class}* ahc = (${collection_class}*) hc;\n"); + print(OUT " if ( ahc->$collection_class_method_entries <= 0 ) {\n"); + print(OUT " return true;\n"); + print(OUT " }\n"); + print(OUT "\n"); + print(OUT " f_transMan->LastWriteFile()->cd();\n"); + print(OUT "\n"); + print(OUT " int bufsize = f_transMan->BufferSize();\n"); + print(OUT " int split = f_transMan->SplitLevel();\n"); + print(OUT "\n"); + print(OUT " // Set the new branch style\n"); + print(OUT " TTree::SetBranchStyle(1);\n"); + print(OUT "\n"); + print(OUT " TTree* tree = f_transMan->LastWriteTree();\n"); + print(OUT "\n"); + print(OUT " // Get the branch if already exists\n"); + print(OUT " TBranch* branch = tree->GetBranch(f_branchName.c_str());\n"); + print(OUT "\n"); + print(OUT " // Set the branch with \"collection_name.class_name\"\n"); + print(OUT " if ( branch == 0 ) {\n"); + print(OUT " branch = tree->Branch(f_branchName.c_str(), f_branchDesc.c_str(),\n"); + print(OUT " &f_hc, bufsize, split);\n"); + print(OUT " if ( m_verbose > 2 ) {\n"); + print(OUT " G4cout << \"${class_io}: Branch \\\"\" << f_branchName\n"); + print(OUT " << \"\\\" initialized with bufsize = \" << bufsize\n"); + print(OUT " << \", split level = \" << split << \".\" << G4endl;\n"); + print(OUT " }\n"); + print(OUT " } else {\n"); + print(OUT " branch->SetAddress(&f_hc);\n"); + print(OUT " }\n"); + print(OUT " assert(branch != 0);\n"); + 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 " << \"for \\\"\" << ahc->GetSDname() << \"\\\", \"\n"); + print(OUT " << \"collection \\\"\" << ahc->GetName() << \"\\\".\" << G4endl\n"); + print(OUT " << \" # of entries: \" << ahc->$collection_class_method_entries << \".\" << G4endl;\n"); + print(OUT " }\n"); + print(OUT "\n"); + print(OUT " // reset the persistent array\n"); + print(OUT " f_hc->Clear();\n"); + print(OUT "\n"); + print(OUT " // loop for the transient collections and copy the values to\n"); + print(OUT " // persistent collection\n"); + print(OUT " for ( int i = 0; i < ahc->$collection_class_method_entries; i++ ) {\n"); + print(OUT " ${class_name}* a = (*ahc)$collection_class_method_get;\n"); + print(OUT " if ( a != 0 ) {\n"); + print(OUT " if ( m_verbose > 1 )\n"); + print(OUT " G4cout << \"${class_io}: Storing ${class_name} #\"\n"); + print(OUT " << i << \".\" << G4endl;\n"); + print(OUT " f_hc->Add(a);\n"); + print(OUT " }\n"); + print(OUT " }\n"); + print(OUT "\n"); + print(OUT " tree->Fill();\n"); + print(OUT "\n"); + print(OUT " return true;\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "bool ${class_io}::Retrieve( ${collection_base_class}*& hc)\n"); + print(OUT "{\n"); + print(OUT " hc = 0;\n"); + print(OUT "\n"); + print(OUT " // Get the ROOT tree \"Geant4\"\n"); + print(OUT " TTree* tree = f_transMan->LastReadTree();\n"); + print(OUT " if ( tree == 0 ) {\n"); + print(OUT " G4cerr << \"${class_io}::Retrieve: error getting the ROOT file tree \\\"Geant4\\\".\" << G4endl;\n"); + print(OUT " return false;\n"); + print(OUT " }\n"); + print(OUT "\n"); + print(OUT " // Set the branch with \"collection_name.class_name\"\n"); + print(OUT " TBranch* branch = tree->GetBranch(f_branchName.c_str());\n"); + print(OUT " if ( branch == 0 ) {\n"); + print(OUT " G4cerr << \"${class_io}::Retrieve: error getting the ROOT file branch \\\"\" << f_branchName << \"\\\".\" << G4endl;\n"); + print(OUT " return false;\n"); + print(OUT " }\n"); + 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 " << \"for \\\"\" << f_detName << \"\\\", \"\n"); + print(OUT " << \"collection \\\"\" << f_colName << \"\\\".\" << G4endl;\n"); + print(OUT " }\n"); + print(OUT "\n"); + print(OUT " // Read an n-th \"event\" from the tree\n"); + print(OUT " Int_t nb = tree->GetEntry(f_nev++);\n"); + print(OUT " if ( nb == 0 ) return false;\n"); + print(OUT "\n"); + print(OUT " if ( m_verbose > 4 )\n"); + print(OUT " G4cout << \"${class_io}: Retrieved \" << nb\n"); + print(OUT " << \" bytes for event \" << f_nev-1 << \".\" << G4endl;\n"); + print(OUT "\n"); + print(OUT " // create a new transient collection\n"); + print(OUT " ${collection_class}* ahc =\n"); + print(OUT " new ${collection_class_signature};\n"); + print(OUT "\n"); + print(OUT " // Initialize the iterator\n"); + print(OUT " TClonesArray* ary = f_hc->GetArray();\n"); + print(OUT " TIter NextEntry(ary);\n"); + print(OUT "\n"); + print(OUT " // Loop over each entry\n"); + print(OUT " int nh = 0;\n"); + print(OUT " while ( ${class_root}* h = (${class_root}*)NextEntry() ) {\n"); + print(OUT " nh++;\n"); + print(OUT " ${class_name}* a = h->${make_transient}();\n"); + print(OUT " ahc->$collection_class_method_add;\n"); + print(OUT " }\n"); + print(OUT "\n"); + print(OUT " // reset the persistent array\n"); + print(OUT " f_hc->Clear();\n"); + print(OUT "\n"); + print(OUT " // return the array pointer\n"); + print(OUT " hc = (${collection_base_class}*&) ahc;\n"); + print(OUT "\n"); + print(OUT " // Check the number of stored entries\n"); + print(OUT " return true;\n"); + print(OUT "}\n"); + print(OUT "\n"); + print(OUT "// End of ${class_io}.cc\n"); + + close(OUT); + print "File $io_source_file created.\n" if ( $verbose && ! $nowrite ); +} + +############################################################################ + +sub is_virtual { + @words = quotewords(" ", 1, $_[0]); + $result = 0; + foreach $word (@words) { + $result = 1 if ( $word eq "virtual"); + } + return $result; +} + +############################################################################ + +sub is_static { + @words = quotewords(" ", 1, $_[0]); + $result = 0; + foreach $word (@words) { + $result = 1 if ( $word eq "static"); + } + return $result; +} + +############################################################################ + +sub is_inline { + @words = quotewords(" ", 1, $_[0]); + $result = 0; + foreach $word (@words) { + $result = 1 if ( $word eq "inline"); + } + return $result; +} + +############################################################################ + +sub is_implicit_inline { + $result = 0; + $result = 1 if ( $_[0] =~ /{.*}/ ); + return $result; +} + +############################################################################ + +sub is_pure { + $_ = $_[0]; + s/(^.*)(=[ ]*0[ ]*$)/$2/; + $result = 0; + $result = 1 if ( /=[ ]*0[ ]*$/ ); + return $result; +} + +############################################################################ + +sub is_no_implementation { +# if ($verbose ) { +# $st1 = &is_implicit_inline($_[0]); +# $st2 = &is_inline($_[0]); +# $st3 = &is_virtual($_[0]); +# print "method $_[0] st = $st1 $st2 $st3\n"; +# } + $result = 0; + $result = 1 if ( &is_implicit_inline($_[0]) || &is_inline($_[0]) || + &is_pure($_[0]) ); +# &is_virtual($_[0]) ); +# print "method $_[0] result = $result\n" if ($verbose); + return $result; +} + +############################################################################ + +sub is_endline { + $_ = $_[0] if ( $_[0] ne "" ); + return(1) if ( /^\.\.$/ ); + return(0); +} + +############################################################################ + +sub is_description { + $ll = $_[0]; + $ll =~ s/^#.*$//; # omit comments + $ll =~ s/^[ ]+//; # chop off leading spaces + if ( $ll =~ /^\/\// ) { + print "is_description: return 1\n"; + return(1) if ( $ll =~ /^\/\// ); + } + return(0); +} + +############################################################################ + +sub is_no_source { + $result = 1; + if ( $template ne "" ) { + return(1); + } + if ( $constructors[0] ne "" ) { + foreach $constructor (@constructors) { + return(0) if ( ! &is_no_implementation($constructor) ); + } + } else { + return(0); + } + if ( $destructors[0] ne "" ) { + foreach $destructor (@destructors) { + return(0) if ( ! &is_no_implementation($destructor) ); + } + } else { + return(0); + } + if ( $method_names[0] ne "" ) { + foreach $method (@method_names) { + return(0) if ( ! &is_no_implementation($method) ); + } + } + return $result; +} + +############################################################################ + +sub return_type { + @words = quotewords(" ", 1, $_[0]); + $n=0; + foreach $word (@words) { + $n++ if ( $word eq "virtual"); + $n++ if ( $word eq "static"); + $n++ if ( $word eq "inline"); + } + return $words[$n]; +} + +############################################################################ + +sub method_namarg { + @words = quotewords(" ", 1, $_[0]); + $n=0; + foreach $word (@words) { + shift @words if ( $word eq "virtual"); + shift @words if ( $word eq "static"); + shift @words if ( $word eq "inline"); + $n++; + } + shift @words; + $result = ""; + $ii=0; + foreach $word (@words) { + $result .= $word; + $result .= " " if ( $ii++ < $n ); + } + $result =~ s/[ ]+$//; # chop off the trailing branks + return $result; +} + +############################################################################ + +sub check_dir { + while ( ! -d $_[0] ) { + if ( ! $force ) { + print "Directory $_[0] does not exist. Create it? (yes/no) : "; + ; + chop; + print; + if ( $_ eq "y" || $_ eq "yes" ) { + system("mkdir -p $_[0]"); + } elsif ( $_ eq "n" || $_ eq "no" ) { + print "exiting...\n"; + exit 1; + } elsif ( $_ ne "" ) { + print "\nError - answer yes or no!\n"; + } + } else { + print "\n${script_name}: Error - directory $_[0] does not exist. Stop.\n"; + exit 1; + } + } +} + +############################################################################ + +sub check_file { + if ( ! $force ) { + while ( -f $_[0] ) { + print "File $_[0] already exists - discard old file? (yes/no) : "; + ; + chop; + if ( $_ eq "n" || $_ eq "no" ) { + print "\nSpecify alternative header file name: "; + $_[0] = ; + chop($_[0]); + print "\nNew header file name: $_[0]\n"; + } elsif ( $_ eq "y" || $_ eq "yes" ) { + system("rm -f $_[0]"); + } elsif ( $_ ne "" ) { + print "\nError - answer yes or no!\n"; + } + } + } +} + +############################################################################ + +sub diff_file { + if ( -f $_[1] ) { + if ( -f $_[0] ) { + system ("egrep -v '^// \\\$Id\: | tag \\\$Name\: ' $_[0] > $_[0].tmp"); + system ("egrep -v '^// \\\$Id\: | tag \\\$Name\: ' $_[1] > $_[1].tmp"); + system("diff $_[1].tmp $_[0].tmp >& /dev/null"); + if ( $? ) { +## if ( compare($_[0].tmp, $_[1].tmp) == 0 ) { + print "diff $_[1].tmp $_[0].tmp\n"; + system("diff $_[1].tmp $_[0].tmp"); + } + system ("rm -rf $_[0].tmp $_[1].tmp"); + } + } else { + print "Original file $_[1] does not exist.\n"; + } +} + +############################################################################ + +sub install_file { + if ( -f $_[0] ) { + if ( -f $_[1] ) { + system ("egrep -v '^// \\\$Id\: | tag \\\$Name\: ' $_[0] > $_[0].tmp"); + system ("egrep -v '^// \\\$Id\: | tag \\\$Name\: ' $_[1] > $_[1].tmp"); + system("diff $_[1].tmp $_[0].tmp >& /dev/null"); + if ( $? ) { +## if ( compare($_[0].tmp, $_[1].tmp) != 0 ) { + print "Replacing $_[1] ... \n"; + system ("mv -f $_[0] $_[1]"); + exit 1 if $?; +## } else { +## print "File $_[1] and $_[0] are same.\n"; + } + system ("rm -rf $_[0].tmp $_[1].tmp"); + } else { + print "Installing $_[1] ... \n"; + system ("mv -f $_[0] $_[1]"); + exit 1 if $?; + } + } else { + print "File $_[0] does not exist!\n"; + exit 1; + } +} + +############################################################################ diff --git a/examples/extended/persistency/rootio/config/hepmctest.csh b/examples/extended/persistency/rootio/config/hepmctest.csh new file mode 100755 index 0000000000..3a3733b805 --- /dev/null +++ b/examples/extended/persistency/rootio/config/hepmctest.csh @@ -0,0 +1,28 @@ +#! /bin/csh -f + +mkdir -p $G4PEX_DIR/tmp/$G4SYSTEM/.hepmc +set test_src = $G4PEX_DIR/tmp/$G4SYSTEM/.hepmc/qhepmc.cc +set test_obj = $G4PEX_DIR/tmp/$G4SYSTEM/.hepmc/qhepmc.o + +cat > $test_src << +EOF +#include "HepMC/GenVertex.h" + +int main() +{ + HepMC::GenVertex av; + av.barcode(); +} ++EOF + +g++ -c -I$HEPMC_DIR -I$CLHEP_BASE_DIR/include $test_src \ + -o $test_obj >& /dev/null +set qbar=$status + +\rm -r $G4PEX_DIR/tmp/$G4SYSTEM/.hepmc + +if ( $qbar == 0 ) then + echo true +else + echo false +endif + diff --git a/examples/extended/persistency/rootio/config/rootdict.sh b/examples/extended/persistency/rootio/config/rootdict.sh new file mode 100755 index 0000000000..679130e9b1 --- /dev/null +++ b/examples/extended/persistency/rootio/config/rootdict.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +class="$1" +dict="$2" + +if [ "$class" = "" ]; then + echo "Usage: `basename $0` 'class names' [ dict_file ]" + exit 1 +fi + +if [ "$dict" = "" ]; then + dict="DefaultLinkDef.h" +fi + +echo "Creating ROOTCINT LinkDef $2 for classes $1" + +echo "#ifdef __CINT__" > $dict +echo "" >> $dict +echo "#pragma link off all globals;" >> $dict +echo "#pragma link off all classes;" >> $dict +echo "#pragma link off all functions;" >> $dict +echo "" >> $dict + +for name in $class ; do + echo "#pragma link C++ class ${name};" >> $dict +done + +echo "" >> $dict +echo "#endif" >> $dict + diff --git a/examples/extended/persistency/rootio/config/rootio.gmk b/examples/extended/persistency/rootio/config/rootio.gmk new file mode 100644 index 0000000000..a25afd04c3 --- /dev/null +++ b/examples/extended/persistency/rootio/config/rootio.gmk @@ -0,0 +1,37 @@ +# $Id: rootio.gmk,v 1.1 2002/12/04 02:44:27 morita Exp $ +# ===================================================================== +# rootio.gmk: GNUmakefile variables for building the ROOT I/O files. +# +# Author: Youhei Morita +# ===================================================================== + +CPPFLAGS += $(shell root-config --cflags) + +CINT_INCLUDES := \ + -Iinclude \ + -I$(G4INSTALL)/include \ + -I$(ROOTSYS)/include + +# ROOTCINT LinkDef.h and Dict.cc files + +root_def := include/$(name)LinkDef.h +root_dict := $(G4PEX_TMP)/$(name)Dict.cc +root_dict_o := $(patsubst %.cc,%.o,$(root_dict)) + +# search for TObject inheritance with a regexp 'public.*TObject' + +root_hh := $(shell grep 'public.*TObject' include/*.hh|awk -F: '{print $$1}'|sort|uniq) +root_tmp := $(patsubst include/%,%,$(root_hh)) +root_tmp += $(patsubst include/%,%,$(root_def)) +root_name := $(patsubst include/%.hh,%,$(root_hh)) + +$(root_dict): $(root_hh) $(root_def) + @echo "Generating dictionary $(root_dict) ..." + @(cp $^ $(G4PEX_TMP)/ ; \ + cd $(G4PEX_TMP) ; \ + rootcint -f $@ -c $(CINT_INCLUDES) $(root_tmp) ; \ + rm -f $(root_tmp) ) + +$(root_def): $(root_hh) + @$(G4PEX_DIR)/config/rootdict.sh "$(root_name)" $(root_def) + diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh similarity index 50% rename from examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc rename to examples/extended/persistency/rootio/include/G4DigitRootIO.hh index b1de9a128f..14fc68d861 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHitsCollection.cc +++ b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh @@ -20,25 +20,58 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4DigitRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: PersEx02TrackerHitsCollection.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// File: G4DigitRootIO.hh // +// History: +// '02.5.7 Youhei Morita Initial creation -#include "PersEx02TrackerHitsCollection.hh" +#ifndef DIGIT_ROOT_IO_HH +#define DIGIT_ROOT_IO_HH 1 +#include "G4DCofThisEvent.hh" +#include "G4PersistencyCenter.hh" +#include "G4RootIOManager.hh" +#include "G4DCIOcatalog.hh" -PersEx02TrackerHitsCollection::PersEx02TrackerHitsCollection - (G4String dName, G4String aName) - : G4PVHitsCollection(dName, aName), elems(0) -{;} +// Class inherited: +#include "G4VPDigitIO.hh" -PersEx02TrackerHitsCollection::~PersEx02TrackerHitsCollection() -{;} +// Class Description: +// Manager class to store and retrieve Digit objects. +// +// This is a singleton class and should be constructed only +// by GetDigitRootIO(). -void PersEx02TrackerHitsCollection::DrawAllHits() -{;} +class G4DigitRootIO + : public G4VPDigitIO +{ + public: // With description + G4DigitRootIO(); + // Constructor -void PersEx02TrackerHitsCollection::PrintAllHits() -{;} + virtual ~G4DigitRootIO(); + // Destructor + + public: // With description + static G4DigitRootIO* GetDigitRootIO(); + // Construct a new singleton G4DigitRootIO object if it does not exist. + + bool Store(const G4DCofThisEvent* dcevt); + // Store digit collections. + // Concrete class of RootVDigitsCollectionIO must be registered + // with G4VPDigitIO::AddDCIOmanager() before calling this method. + + bool Retrieve(G4DCofThisEvent*& dcevt); + // Retrieve digit collections + // Concrete class of RootVDigitsCollectionIO must be registered + // with G4VPDigitIO::AddDCIOmanager() before calling this method. + // Also a pointer of persistent digit collection must be set with + // SetCurrentPDCofThisEvent(). + +}; // End of class G4DigitRootIO + +#endif diff --git a/examples/extended/persistency/rootio/include/G4EventRootIO.hh b/examples/extended/persistency/rootio/include/G4EventRootIO.hh new file mode 100644 index 0000000000..4045bf3243 --- /dev/null +++ b/examples/extended/persistency/rootio/include/G4EventRootIO.hh @@ -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: G4EventRootIO.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4EventRootIO.hh +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#ifndef EVENT_ROOT_IO_HH +#define EVENT_ROOT_IO_HH 1 + +#include "G4Event.hh" +#include "G4PersistencyCenter.hh" +#include "G4RootIOManager.hh" +#include "G4HitRootIO.hh" +#include "G4DigitRootIO.hh" +#include "G4HepMCRootIO.hh" +#include "G4MCTruthRootIO.hh" +#include "G4RootEvent.hh" + +// Class inherited: +#include "G4VPEventIO.hh" + +// Class Description: +// Manager class to store and retrieve G4Event objects + +class G4EventRootIO + : public G4VPEventIO +{ + public: // With description + G4EventRootIO( G4PersistencyManager* pc ); + // Constructor + + virtual ~G4EventRootIO(){}; + // Destructor + + public: // With description + // G4bool Store( HepMC::GenEvent* hepevt, G4MCTEvent* mctevt, const G4Event* g4evt); + G4bool Store( HepMC::GenEvent* hepevt, const G4Event* g4evt); + // Store a FADS event. + + G4bool Store( const G4Event* anEvent ); + // Store a Geant4 event. + + G4bool Retrieve( G4Pevent*& anEvent ); + // Retrieve a FADS event. + + G4bool Retrieve( G4Event*& anEvent ); + // Retrieve a Geant4 event. + + private: + G4PersistencyManager* f_pc; + G4HepMCRootIO* f_hepmcio; + G4MCTruthRootIO* f_mctruthio; + G4HitRootIO* f_PHCMan; + G4DigitRootIO* f_PDCMan; + +}; // End of class G4EventRootIO + +#endif + diff --git a/source/persistency/geometry/solids/CSG/include/G4PPara.ddl b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh similarity index 58% rename from source/persistency/geometry/solids/CSG/include/G4PPara.ddl rename to examples/extended/persistency/rootio/include/G4HepMCRootIO.hh index 3ccade0d36..29d92ae4f1 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PPara.ddl +++ b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh @@ -20,53 +20,53 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4HepMCRootIO.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PPara.ddl,v 1.7 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// File: G4HepMCRootIO.hh +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#ifndef HEPMC_ROOT_IO_HH +#define HEPMC_ROOT_IO_HH 1 + +#include "CLHEP/HepMC/GenEvent.h" +#include "CLHEP/HepMC/GenParticle.h" +#include "G4PersistencyCenter.hh" +#include "G4RootIOManager.hh" + +// Class inherited: +#include "G4VHepMCIO.hh" // Class Description: -// Persistent version of G4PPara solid. +// Concreate class for storing and retrieving HepMC events. -// History: -// 19.06.98 A.Kimura Converted G4Para.hh - -#ifndef G4PPara_DDL -#define G4PPara_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4Para; -class G4VSolid; - -#include "G4ThreeVector.hh" - -class G4PPara - : public G4PCSGSolid +class G4HepMCRootIO + : public G4VHepMCIO { -public: // With description - G4PPara(const G4Para* thePara); - virtual ~G4PPara() ; - // Constructor and Destructor + public: // With description + G4HepMCRootIO() {}; + // Constructor - G4VSolid* MakeTransientObject() const ; - // Creates a transient boolean solid object. + virtual ~G4HepMCRootIO() {}; + // Destructor -public: - G4ThreeVector GetSymAxis() const { - G4double cosTheta - = 1.0/sqrt(1+fTthetaCphi*fTthetaCphi+fTthetaSphi*fTthetaSphi) ; - return G4ThreeVector(fTthetaCphi*cosTheta,fTthetaSphi*cosTheta,cosTheta) ; - } + public: // With description + bool Store(HepMC::GenEvent* evt); + // Method for storing HepMC GenEvent. -public: // With description - virtual G4GeometryType GetEntityType() const {return G4String("G4Para");} - // Returns the G4GeometryType of this solid. + bool Retrieve(HepMC::GenEvent*& evt, int id=-1); + // Method for retrieving HepMC GenEvent. + + int LastEventID() { return m_lastid; }; + // returns the last event ID. + + private: + HepMC::GenEvent* f_lastevt; + int m_lastid; + +}; // End of class G4HepMCRootIO -private: - G4double fDx,fDy,fDz; - G4double fTalpha,fTthetaCphi,fTthetaSphi; -}; - #endif diff --git a/source/persistency/global/include/G4VPersistentSubMan.hh b/examples/extended/persistency/rootio/include/G4HitRootIO.hh similarity index 53% rename from source/persistency/global/include/G4VPersistentSubMan.hh rename to examples/extended/persistency/rootio/include/G4HitRootIO.hh index b1f08ec43b..71ecd8e419 100644 --- a/source/persistency/global/include/G4VPersistentSubMan.hh +++ b/examples/extended/persistency/rootio/include/G4HitRootIO.hh @@ -20,57 +20,56 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4HitRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4VPersistentSubMan.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Abstract submanager class to be used by G4PersistencyManager - -// Member functions: -// ================= -// virtual void SetVerboseLevel(G4int verboseLevel) -// Set verbose level -// inline G4int GetVerboseLevel() -// Get verbose level -// -// Member data: -// ============ -// G4int f_verboseLevel; -// Internal flag for verbose message printing +// File: G4HitRootIO.hh // // History: -// 98.10.30 Y.Morita Splited from G4PersistencyManager +// '02.5.7 Youhei Morita Initial creation -#ifndef G4VPersistentSubMan_hh -#define G4VPersistentSubMan_hh 1 +#ifndef HIT_ROOT_IO_HH +#define HIT_ROOT_IO_HH 1 -#include "globals.hh" +#include "G4HCofThisEvent.hh" +#include "G4PersistencyCenter.hh" +#include "G4RootIOManager.hh" +#include "G4HCIOcatalog.hh" -class G4VPersistentSubMan +// Class inherited: +#include "G4VPHitIO.hh" + +// Class Description: +// Manager class to store and retrieve Hit objects. +// +// This is a singleton class and should be constructed only +// by GetHitRootIO(). + +class G4HitRootIO + : public G4VPHitIO { - friend class G4PersistencyManager; + public: // With description + G4HitRootIO(); + // Constructor - protected: - // to be used by G4PersistencyManager only - G4VPersistentSubMan(); - virtual ~G4VPersistentSubMan(); + virtual ~G4HitRootIO(); + // Destructor - protected: - // interface with G4PersistencyManager - inline virtual void SetVerboseLevel(G4int verboseLevel) - { f_verboseLevel = verboseLevel; } - // Set the verbose level + public: // With description + static G4HitRootIO* GetHitRootIO(); + // Construct a new singleton G4HitRootIO object if it does not exist. - public: // With description - inline G4int GetVerboseLevel() - { return f_verboseLevel; }; - // Get the current verbose level + bool Store(const G4HCofThisEvent* hcevt); + // Store hit collections. + // Concrete class of G4VPHitsCollectionIO must be registered + // with G4VPHitIO::AddHCIOmanager() before calling this method. - protected: - G4int f_verboseLevel; + bool Retrieve(G4HCofThisEvent*& hcevt); + // Retrieve hit collections + // Concrete class of G4VPHitsCollectionIO must be registered + // with G4VPHitIO::AddHCIOmanager() before calling this method. -}; +}; // End of class G4HitRootIO #endif diff --git a/source/persistency/geometry/solids/CSG/include/G4PTorus.ddl b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh similarity index 61% rename from source/persistency/geometry/solids/CSG/include/G4PTorus.ddl rename to examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh index a82776913b..4d39c78816 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTorus.ddl +++ b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh @@ -20,49 +20,47 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MCTruthRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PTorus.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// File: G4MCTruthRootIO.hh +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#ifndef MCTRUTH_ROOT_IO_HH +#define MCTRUTH_ROOT_IO_HH 1 + +// Class inherited: +#include "G4VMCTruthIO.hh" // Class Description: -// Persistent version of G4PTorus solid. +// Concreate class for storing and retrieving MCTruth events. -// History: -// 19.06.98 A.Kimura Converted G4Torus.hh - -#ifndef G4PTorus_DDL -#define G4PTorus_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4VSolid; -class G4Torus; - -class G4PTorus - : public G4PCSGSolid +class G4MCTruthRootIO + : public G4VMCTruthIO { -public: // With description - G4PTorus(const G4Torus* theTorus); - virtual ~G4PTorus(); - // Constructor and Destructor - - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. + public: // With description + G4MCTruthRootIO() {}; + // Constructor -public: - void SetAllParameters(G4double pRmin, G4double pRmax, G4double pRtor, - G4double pSPhi, G4double pDPhi); + virtual ~G4MCTruthRootIO() {}; + // Destructor -public: // With description - virtual G4GeometryType GetEntityType() const {return G4String("G4Torus");} - // Returns the G4GeometryType of this solid. + public: // With description + virtual bool Store(G4MCTEvent* mctevent); + // Method for storing MCTruth Event. -protected: + virtual bool Retrieve(G4MCTEvent* & mctevent); + // Method for retrieving MCTruth GenEvent. - G4double fRmin,fRmax,fRtor,fSPhi,fDPhi; + static G4MCTruthRootIO* GetMCTruthRootIO(); + // method #3: GetMCTruthRootIO() + + private: + static G4MCTruthRootIO* thePointer; + +}; // End of class G4MCTruthRootIO -}; - #endif diff --git a/source/persistency/geometry/solids/CSG/include/G4PSphere.ddl b/examples/extended/persistency/rootio/include/G4RootEvent.hh similarity index 62% rename from source/persistency/geometry/solids/CSG/include/G4PSphere.ddl rename to examples/extended/persistency/rootio/include/G4RootEvent.hh index a44ee404bd..1998c871bc 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PSphere.ddl +++ b/examples/extended/persistency/rootio/include/G4RootEvent.hh @@ -20,47 +20,53 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4RootEvent.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PSphere.ddl,v 1.7 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// File: G4RootEvent.hh +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#ifndef ROOT_FADS_EVENT_HH +#define ROOT_FADS_EVENT_HH 1 + +class G4Event; +class GenEvent; +class G4MCTEvent; +class G4Pevent; + +// Class inherited: +#include "TObject.h" // Class Description: -// Persistent version of G4PSphere solid. +// FADS persistent event object. +// +// This class has pointers to HepMCGenEvent, MCTruth and G4Event. -// History: -// 19.06.98 A.Kimura Converted G4Sphere.hh - -#ifndef G4PSphere_DDL -#define G4PSphere_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4VSolid; -class G4Sphere; - -#include "G4ThreeVector.hh" - -class G4PSphere - : public G4PCSGSolid +class G4RootEvent + : public TObject { -public: // With description - G4PSphere(const G4Sphere* theSphere); - virtual ~G4PSphere() ; - // Constructor and Destructor + public: // With description + G4RootEvent() {}; + // Constructor - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. + virtual ~G4RootEvent(); + // Destructor - virtual G4GeometryType GetEntityType() const {return G4String("G4Sphere");} - // Returns the G4GeometryType of this solid. + public: // With description + int GetEventID() { return m_id; }; + // returns the event ID. -private: + G4Pevent* MakeTransientObject(); + // Make transient G4Pevent from G4RootEvent + + private: + int m_id; + + ClassDef (G4RootEvent,1) + +}; // End of class G4RootEvent - G4double fRmin,fRmax, - fSPhi,fDPhi, - fSTheta,fDTheta; -}; - #endif diff --git a/examples/extended/persistency/rootio/include/G4RootIOManager.hh b/examples/extended/persistency/rootio/include/G4RootIOManager.hh new file mode 100644 index 0000000000..28c0de22bf --- /dev/null +++ b/examples/extended/persistency/rootio/include/G4RootIOManager.hh @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * 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: G4RootIOManager.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4RootIOManager.hh +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#ifndef ROOT_IO_MANAGER_HH +#define ROOT_IO_MANAGER_HH 1 + +#include "G4Event.hh" +#include "G4Run.hh" +#include "G4VPhysicalVolume.hh" +#include +#include + +class G4VPHitIO; +class G4VPDigitIO; +class VPHepMCIO; +class VPMCTruthIO; +class G4RootTransManager; +class G4HitRootIO; +class G4DigitRootIO; +class G4EventRootIO; +class G4HepMCRootIO; +class G4MCTruthRootIO; + +// Class inherited: +#include "G4PersistencyManager.hh" + +// Class Description: +// Implementation of G4PersistencyManager with ROOT I/O package + +class G4RootIOManager + : public G4PersistencyManager +{ + friend class G4RootTransManager; + + public: // With description + G4RootIOManager(G4PersistencyCenter* pc, std::string n); + // Constructor + + virtual ~G4RootIOManager(); + // Destructor + + public: // With description + G4VPHitIO* HitIO() { return (G4VPHitIO*) f_G4HitRootIO; }; + // returns the hit I/O handling manager. + + G4VPDigitIO* DigitIO() { return (G4VPDigitIO*) f_G4DigitRootIO; }; + // returns the digit I/O handling manager. + + G4VPEventIO* EventIO() { return (G4VPEventIO*) f_G4EventRootIO; }; + // returns the event I/O handling manager. + + G4VHepMCIO* HepMCIO() { return (G4VHepMCIO*) f_G4HepMCRootIO; }; + // returns the HepMC event I/O handling manager. + + G4VMCTruthIO* MCTruthIO() { return (G4VMCTruthIO*) f_G4MCTruthRootIO; }; + // returns the HepMC event I/O handling manager. + + G4VTransactionManager* TransactionManager() { return (G4VTransactionManager*) f_G4RootTransManager; }; + // returns the event I/O handling manager. + + void Initialize(); + // Initialize the ROOT I/O package. + + private: + G4PersistencyManager* Create() {return 0;}; + // Dummy in this class (used by PersistentManagerT). + + private: + G4RootTransManager* f_G4RootTransManager; + G4HitRootIO* f_G4HitRootIO; + G4DigitRootIO* f_G4DigitRootIO; + G4EventRootIO* f_G4EventRootIO; + G4HepMCRootIO* f_G4HepMCRootIO; + G4MCTruthRootIO* f_G4MCTruthRootIO; + +}; // End of class G4RootIOManager + +#endif + diff --git a/examples/extended/persistency/rootio/include/G4RootTransManager.hh b/examples/extended/persistency/rootio/include/G4RootTransManager.hh new file mode 100644 index 0000000000..e886f9d0bb --- /dev/null +++ b/examples/extended/persistency/rootio/include/G4RootTransManager.hh @@ -0,0 +1,131 @@ +// +// ******************************************************************** +// * 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: G4RootTransManager.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4RootTransManager.hh +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#ifndef ROOT_TRANS_MANAGER_HH +#define ROOT_TRANS_MANAGER_HH 1 + +#include +#include + +class G4RootIOManager; +class TFile; +class TTree; + +typedef std::map > RootFileCatalog; + +// Class inherited: +#include "G4VTransactionManager.hh" + +// Class Description: +// Implementation of transaction manager with HepODBMS persistency package + +class G4RootTransManager + : public G4VTransactionManager +{ + public: // With description + G4RootTransManager(); + // Constructor + + virtual ~G4RootTransManager() {}; + // Destructor + + public: // With description + bool SelectReadFile(std::string obj, std::string file); + // Select the input file for type "obj" and sets the container ref. + + bool SelectWriteFile(std::string obj, std::string file); + // Select the output file for type "obj" and sets the container ref. + + bool StartUpdate() {return true;}; + // Start the database update transaction. Dummy in ROOT I/O. + + bool StartRead() {return true;}; + // Start the database read transaction. Dummy in ROOT I/O. + + void Commit(); + // Commit the changes to the ROOT I/O files. + + void Abort() {}; + // Abort the transaction. Dummy in ROOT I/O. + + TFile* LastReadFile() { return f_lastreadfile; }; + // returns the pointer of the last read file + + TFile* LastWriteFile() { return f_lastwritefile; }; + // returns the pointer of the last read file + + TTree* LastReadTree() { return f_lastreadtree; }; + // returns the pointer of the last read tree + + TTree* LastWriteTree() { return f_lastwritetree; }; + // returns the pointer of the last read tree + + void Initialize(); + // Initialize the ROOT I/O file map. + + int BufferSize(); + // Returns the ROOT I/O buffer size. + + int SplitLevel() { return f_split; }; + // Returns the ROOT I/O split level. + + int CompressionLevel() { return f_comp; }; + // Returns the ROOT I/O compression level. + + void SetBufferSize(int buf) { f_bufsize = buf; }; + // Sets the ROOT I/O buffer size. + + void SetSplitLevel(int s) { f_split = s; }; + // Sets the ROOT I/O split level. + + void SetCompressionLevel(int c) { f_comp = c; }; + // Sets the ROOT I/O compression level. + + private: + TFile* LookUp(string file, 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. + + private: + RootFileCatalog f_catalog; + TFile* f_lastreadfile; + TFile* f_lastwritefile; + TTree* f_lastreadtree; + TTree* f_lastwritetree; + std::string f_treeName; + std::string f_treeDesc; + int f_bufsize; + int f_split; + int f_comp; + +}; // End of class G4RootTransManager + +#endif + diff --git a/source/persistency/geometry/global/src/G4PVSolid.cc b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc similarity index 65% rename from source/persistency/geometry/global/src/G4PVSolid.cc rename to examples/extended/persistency/rootio/src/G4DigitRootIO.cc index 89fd6a0870..c365d713f8 100644 --- a/source/persistency/geometry/global/src/G4PVSolid.cc +++ b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc @@ -20,46 +20,47 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4DigitRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PVSolid.cc,v 1.3 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PVSolid -// -// Implementation for persistent solid base class -// +// File: G4DigitRootIO.cc // // History: -// 19.06.98 A.Kimura Converted G4VSolid.cc +// '02.5.7 Youhei Morita Initial creation -#include "G4PVSolid.hh" +#include "G4DigitRootIO.hh" -// Constructor (default) -G4PVSolid::G4PVSolid() - : fshapeName("____________Unknown_____________") +// Implementation of Constructor #1 +G4DigitRootIO::G4DigitRootIO() { + f_G4VPDigitIO = (G4VPDigitIO*) this; } -// Constructor -// - Copies name -G4PVSolid::G4PVSolid(const G4String& name) - : fshapeName(name) +// Implementation of Destructor #1 +G4DigitRootIO::~G4DigitRootIO() +{} + +// Implementation of GetDigitRootIO +G4DigitRootIO* G4DigitRootIO::GetDigitRootIO() { + G4DigitRootIO* dio=0; + if ( f_G4VPDigitIO == 0 ) { + dio = new G4DigitRootIO; + } + return dio; } -// Destructor (virtual) -// - Remove ourselves from solid Store -G4PVSolid::~G4PVSolid() +// Implementation of Store +bool G4DigitRootIO::Store(const G4DCofThisEvent* dcevt) { -} - -// Returns name by value -G4String G4PVSolid::GetName() const -{ - return (const char*) fshapeName; + return true; } -void G4PVSolid::SetName(const G4String& name) +// Implementation of Retrieve +bool G4DigitRootIO::Retrieve(G4DCofThisEvent*& dcevt) { - fshapeName = name; -} + return true; +} + +// End of G4DigitRootIO.cc + diff --git a/source/persistency/geometry/solids/Boolean/src/G4PDisplacedSolid.cc b/examples/extended/persistency/rootio/src/G4EventRootIO.cc similarity index 54% rename from source/persistency/geometry/solids/Boolean/src/G4PDisplacedSolid.cc rename to examples/extended/persistency/rootio/src/G4EventRootIO.cc index ed4436ca06..45ae3a1549 100644 --- a/source/persistency/geometry/solids/Boolean/src/G4PDisplacedSolid.cc +++ b/examples/extended/persistency/rootio/src/G4EventRootIO.cc @@ -20,42 +20,54 @@ // * statement, and all its terms. * // ******************************************************************** // -// Persistent class describing solid placements for boolean operations +// $Id: G4EventRootIO.cc,v 1.3 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4EventRootIO.cc // // History: -// 10.11.99 Y.Morita, Initial creation +// '02.5.7 Youhei Morita Initial creation -#include "G4PDisplacedSolid.hh" -#include "G4DisplacedSolid.hh" -#include "G4AffineTransform.hh" +#include "G4EventRootIO.hh" -#include "G4VSolid.hh" - -G4PDisplacedSolid::G4PDisplacedSolid - ( HepRef(G4PVSolid) persCostituentSolid, - HepRef(G4PAffineTransform) pDirectTransform ) +// Implementation of Constructor #1 +G4EventRootIO::G4EventRootIO( G4PersistencyManager* pc ) + : f_pc(pc), f_hepmcio(0), f_mctruthio(0), f_PHCMan(0), f_PDCMan(0) { - fPtrSolid = persCostituentSolid; - fDirectTransform = pDirectTransform; + f_hepmcio = (G4HepMCRootIO*) f_pc->HepMCIO(); + f_mctruthio = (G4MCTruthRootIO*) f_pc->MCTruthIO(); + f_PHCMan = (G4HitRootIO*) f_pc->HitIO(); + f_PDCMan = (G4DigitRootIO*) f_pc->DigitIO(); } -G4PDisplacedSolid::~G4PDisplacedSolid() -{;} - -HepRef(G4PVSolid) G4PDisplacedSolid::GetConstituentMovedSolid() -{ return fPtrSolid; } - -G4VSolid* G4PDisplacedSolid::MakeTransientObject() const -{ return 0; } - -G4VSolid* G4PDisplacedSolid::MakeTransientDisplacedSolid - (G4VSolid* movedSolid) const +// Implementation of Store +// G4bool G4EventRootIO::Store( HepMC::GenEvent* hepevt, G4MCTEvent* mctevt, const G4Event* g4evt) +G4bool G4EventRootIO::Store( HepMC::GenEvent* hepevt, const G4Event* g4evt) { - G4AffineTransform aTransform = fDirectTransform->MakeTransientObject(); + // if (hepevt == 0) return false; // no event generated... - G4VSolid* theSolid = new G4DisplacedSolid - ( GetName(), movedSolid, aTransform ); - return theSolid; + // G4RootEvent* evt = new G4RootEvent(); + + return true; } +// Implementation of Store +G4bool G4EventRootIO::Store( const G4Event* anEvent ) +{ + return true; +} + +// Implementation of Retrieve +G4bool G4EventRootIO::Retrieve( G4Pevent*& anEvent ) +{ + return true; +} + +// Implementation of Retrieve +G4bool G4EventRootIO::Retrieve( G4Event*& anEvent ) +{ + return true; +} + +// End of G4EventRootIO.cc diff --git a/source/persistency/geometry/solids/CSG/src/G4PBox.cc b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc similarity index 61% rename from source/persistency/geometry/solids/CSG/src/G4PBox.cc rename to examples/extended/persistency/rootio/src/G4HepMCRootIO.cc index 4644393c7e..b0c62da5bc 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PBox.cc +++ b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc @@ -20,45 +20,42 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4HepMCRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PBox.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// -// Implementation for G4PBox class +// File: G4HepMCRootIO.cc // // History: -// 19.06.98 A.Kimura Converted G4Box.cc +// '02.5.7 Youhei Morita Initial creation +#include "G4HepMCRootIO.hh" -#include "G4VSolid.hh" -#include "G4PBox.hh" -#include "G4Box.hh" +// Implementation of Store +bool G4HepMCRootIO::Store(HepMC::GenEvent* evt) +{ + // G4RootIOManager* pm = + // (G4RootIOManager*) G4PersistencyCenter::GetPersistencyCenter() + // ->CurrentPersistencyManager(); -// Constructor - check & set half widths -G4PBox::G4PBox(const G4Box* theBox) : G4PCSGSolid(theBox->GetName()) { - G4double pX = theBox->GetXHalfLength(); - G4double pY = theBox->GetYHalfLength(); - G4double pZ = theBox->GetZHalfLength(); - - if (pX>0&&pY>0&&pZ>0) { - fDx=pX; fDy=pY; fDz=pZ; - } else { - G4Exception("Error in G4PBox::Box - negative parameters"); - } + // actual implementation should come in here + return true; } -// Destructor -G4PBox::~G4PBox() { - ; +// Implementation of Retrieve +bool G4HepMCRootIO::Retrieve(HepMC::GenEvent*& evt, int id) +{ + // bool st = false; + evt = 0; + + // G4RootIOManager* pm = + // (G4RootIOManager*) G4PersistencyCenter::GetPersistencyCenter() + // ->CurrentPersistencyManager(); + + // actual implementation should come in here + + return true; } -// make a transient object -G4VSolid* G4PBox::MakeTransientObject() const { - G4VSolid* transientObject = new G4Box(GetName(), - fDx, fDy, fDz); - return transientObject; -} +// End of G4HepMCRootIO.cc diff --git a/examples/extended/persistency/rootio/src/G4HitRootIO.cc b/examples/extended/persistency/rootio/src/G4HitRootIO.cc new file mode 100644 index 0000000000..e6e805a650 --- /dev/null +++ b/examples/extended/persistency/rootio/src/G4HitRootIO.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: G4HitRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4HitRootIO.cc +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#include "G4HitRootIO.hh" + +// Addtional Include: +#include "G4VPHitsCollectionIO.hh" + +// Implementation of Constructor #1 +G4HitRootIO::G4HitRootIO() +{ + f_G4VPHitIO = (G4VPHitIO*) this; +} + +// Implementation of Destructor #1 +G4HitRootIO::~G4HitRootIO() +{} + +// Implementation of GetHitRootIO +G4HitRootIO* G4HitRootIO::GetHitRootIO() +{ + G4HitRootIO* hio=0; + if ( f_G4VPHitIO == 0 ) { + hio = new G4HitRootIO; + } + return hio; +} + +// Implementation of Store +bool G4HitRootIO::Store(const G4HCofThisEvent* hcevt) +{ + // cast for non-const transient collection of this event. + G4HCofThisEvent* ahcevt = (G4HCofThisEvent*) hcevt; + + if ( m_verbose > 2 ) { + std::cout << "G4HitRootIO: storing G4HCofThisEvent, # of collections: " + << ahcevt->GetNumberOfCollections() << std::endl; + } + + // Loop through hit collections + for (int i=0; i< ahcevt->GetNumberOfCollections(); i++ ) { + // Get hit collection for each sensitive detector + G4VHitsCollection* hc = ahcevt->GetHC(i); + if ( m_verbose > 2 ) { + std::cout << "G4HitRootIO: collection#: " << i + << ", HitsCollection: " << hc << "." << std::endl; + } + if (hc!=0) { + // find out I/O manager for this hit collection + G4VPHitsCollectionIO* hitIOman = + (G4VPHitsCollectionIO*) f_catalog->GetHCIOmanager(hc->GetSDname()); + if ( hitIOman != 0) { + if ( hitIOman->Store(hc) ) { + if ( m_verbose > 2 ) { + std::cout << "G4HitRootIO::Store() #" << i << " storing " + << hc->GetSDname() << "." << std::endl; + } + } else { + std::cerr << "G4HitRootIO::Store() failed in storing " + << hc->GetSDname() << "." << std::endl; + } + } else { + std::cerr << "G4HitRootIO::Store(): Hit Collection I/O manager is not" + << " registered for detector: '" << hc->GetSDname() + << "', collection name: '" << hc->GetName() + << "'." << std::endl; + return false; + } + } + } + + return true; +} + +// Implementation of Retrieve +bool G4HitRootIO::Retrieve(G4HCofThisEvent*& hcevt) +{ + // new digits collections for this event + hcevt = new G4HCofThisEvent; + + // Loop through the registered IO managers + for (size_t i=0; i< f_catalog->NumberOfHCIOmanager(); i++ ) { + + // find out I/O manager for this hit collection + G4VPHitsCollectionIO* hitIOman = + (G4VPHitsCollectionIO*) f_catalog->GetHCIOmanager(i); + if ( hitIOman != 0) { + G4VHitsCollection* hc; + if ( hitIOman->Retrieve(hc) ) { + hcevt->AddHitsCollection(i, hc); + } + } + } + return true; +} + +// End of G4HitRootIO.cc + diff --git a/examples/extended/persistency/PersistentEx01/src/PersEx01TrackerHit.cc b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc similarity index 70% rename from examples/extended/persistency/PersistentEx01/src/PersEx01TrackerHit.cc rename to examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc index 40e078f5b6..cfc185c512 100644 --- a/examples/extended/persistency/PersistentEx01/src/PersEx01TrackerHit.cc +++ b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc @@ -20,41 +20,35 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MCTruthRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4MCTruthRootIO.cc +// +// History: +// '02.5.7 Youhei Morita Initial creation -#include "PersEx01TrackerHit.hh" +#include "G4MCTruthRootIO.hh" -G4Allocator PersEx01TrackerHitAllocator; +G4MCTruthRootIO* G4MCTruthRootIO::thePointer=G4MCTruthRootIO::GetMCTruthRootIO(); -PersEx01TrackerHit::PersEx01TrackerHit() -{;} - -PersEx01TrackerHit::~PersEx01TrackerHit() -{;} - -PersEx01TrackerHit::PersEx01TrackerHit(const PersEx01TrackerHit &right) +// Implementation of Store +bool G4MCTruthRootIO::Store(G4MCTEvent* mctevent) { - edep = right.edep; - pos = right.pos; + return true; } -const PersEx01TrackerHit& PersEx01TrackerHit::operator=(const PersEx01TrackerHit &right) +// Implementation of Retrieve +bool G4MCTruthRootIO::Retrieve(G4MCTEvent* & mctevent) { - edep = right.edep; - pos = right.pos; - return *this; + return true; } -int PersEx01TrackerHit::operator==(const PersEx01TrackerHit &right) const +// Implementation of GetMCTruthRootIO +G4MCTruthRootIO* G4MCTruthRootIO::GetMCTruthRootIO() { return 0; } -void PersEx01TrackerHit::Draw() -{ -} - -void PersEx01TrackerHit::Print() -{ -} - +// End of G4MCTruthRootIO.cc diff --git a/source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc b/examples/extended/persistency/rootio/src/G4RootEvent.cc similarity index 66% rename from source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc rename to examples/extended/persistency/rootio/src/G4RootEvent.cc index 05042b5df8..4e1ad56afd 100644 --- a/source/persistency/digits+hits/digits/src/G4PersistentDigitMan.cc +++ b/examples/extended/persistency/rootio/src/G4RootEvent.cc @@ -20,36 +20,38 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4RootEvent.cc,v 1.3 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// $Id: G4PersistentDigitMan.cc,v 1.6 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PersistentDigitMan +// File: G4RootEvent.cc // // History: -// 99.11.22 Y.Morita Initial version +// '02.5.7 Youhei Morita Initial creation -#include "G4PersistentDigitMan.hh" +#include "G4RootEvent.hh" +// Addtional Include: +#include "G4Event.hh" +#include "CLHEP/HepMC/GenEvent.h" +#include "G4MCTEvent.hh" +#include "G4Pevent.hh" -G4PersistentDigitMan* G4PersistentDigitMan::f_PersistentDigitMan = 0; +ClassImp(G4RootEvent) -G4PersistentDigitMan* G4PersistentDigitMan::GetPersistentDigitMan() +// Implementation of Destructor #1 +G4RootEvent::~G4RootEvent() +{} + +// Implementation of MakeTransientObject +G4Pevent* G4RootEvent::MakeTransientObject() { - if(!f_PersistentDigitMan) - { - f_PersistentDigitMan = new G4PersistentDigitMan; - } - return f_PersistentDigitMan; + HepMC::GenEvent* hepevt = 0; + G4MCTEvent* mctevt = 0; + G4Event* g4evt = 0; + // G4Pevent* anEvt = new G4Pevent(hepevt, mctevt, g4evt); + G4Pevent* anEvt = new G4Pevent(hepevt, g4evt); + return anEvt; } -G4PersistentDigitMan* G4PersistentDigitMan::get_PersistentDigitManIfExist() -{ return f_PersistentDigitMan; } - -G4PersistentDigitMan::G4PersistentDigitMan() - : f_CurrentPDCofThisEvent(0) -{;} - -G4PersistentDigitMan::~G4PersistentDigitMan() -{;} +// End of G4RootEvent.cc diff --git a/examples/extended/persistency/rootio/src/G4RootIOManager.cc b/examples/extended/persistency/rootio/src/G4RootIOManager.cc new file mode 100644 index 0000000000..e47200a99e --- /dev/null +++ b/examples/extended/persistency/rootio/src/G4RootIOManager.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: G4RootIOManager.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4RootIOManager.cc +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#include "G4RootIOManager.hh" + +// Addtional Include: +#include "G4PersistencyManagerT.hh" +#include +#include "G4RootTransManager.hh" +#include "G4HitRootIO.hh" +#include "G4DigitRootIO.hh" +#include "G4EventRootIO.hh" +#include "G4HepMCRootIO.hh" +#include "G4MCTruthRootIO.hh" + +static G4PersistencyManagerT rootio(G4PersistencyCenter::GetPersistencyCenter(),"ROOT"); + +// Implementation of Constructor #1 +G4RootIOManager::G4RootIOManager(G4PersistencyCenter* pc, std::string n) + : G4PersistencyManager(pc, n) +{ + f_G4HepMCRootIO = new G4HepMCRootIO(); + f_G4MCTruthRootIO = G4MCTruthRootIO::GetMCTruthRootIO(); + f_G4HitRootIO = G4HitRootIO::GetHitRootIO(); + f_G4DigitRootIO = G4DigitRootIO::GetDigitRootIO(); + f_G4EventRootIO = new G4EventRootIO(this); + f_G4RootTransManager = new G4RootTransManager(); +} + +// Implementation of Destructor #1 +G4RootIOManager::~G4RootIOManager() +{ + delete f_G4HitRootIO; + delete f_G4DigitRootIO; + delete f_G4EventRootIO; + delete f_G4HepMCRootIO; + delete f_G4MCTruthRootIO; + delete f_G4RootTransManager; +} + +// Implementation of Initialize +void G4RootIOManager::Initialize() +{ + // Initialize ROOT files for store + f_G4RootTransManager->Initialize(); + + if ( m_verbose > 2 ) { + std::cout << " -> Root I/O is initialized." << std::endl; + } + +} + +// End of G4RootIOManager.cc + diff --git a/examples/extended/persistency/rootio/src/G4RootTransManager.cc b/examples/extended/persistency/rootio/src/G4RootTransManager.cc new file mode 100644 index 0000000000..7d4bd8113e --- /dev/null +++ b/examples/extended/persistency/rootio/src/G4RootTransManager.cc @@ -0,0 +1,147 @@ +// +// ******************************************************************** +// * 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: G4RootTransManager.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// File: G4RootTransManager.cc +// +// History: +// '02.5.7 Youhei Morita Initial creation + +#include "G4RootTransManager.hh" + +// Addtional Include: +#include "G4RootIOManager.hh" +#include "G4PersistencyCenter.hh" +#include "TFile.h" +#include "TTree.h" + +// Implementation of Constructor #1 +G4RootTransManager::G4RootTransManager() + : f_lastreadfile(0), f_lastwritefile(0), f_lastreadtree(0), f_lastwritetree(0), f_treeName("Geant4"), f_treeDesc("Geant4 output tree"), f_bufsize(64000), f_split(1), f_comp(1) +{ + Initialize(); +} + +// Implementation of SelectReadFile +bool G4RootTransManager::SelectReadFile(std::string obj, std::string file) +{ + // obtain TFile pointer for "file" for reading + TFile* tfile = LookUp(file, "READ"); + if ( tfile == 0 ) return false; + + // cd to the file + tfile->cd(); + + // Get the tree "Geant4" + TTree* tree = (TTree*)tfile->Get(f_treeName.c_str()); + if ( tree == 0 ) return false; + + // cache the pointer to the last write file + f_lastreadfile = tfile; + f_lastreadtree = tree; + + return true; +} + +// Implementation of SelectWriteFile +bool G4RootTransManager::SelectWriteFile(std::string obj, std::string file) +{ + // obtain TFile pointer for "obj" and "file" for writing + TFile* tfile = LookUp(file, "WRITE"); + if ( tfile == 0 ) return false; + + // cd to the file + tfile->cd(); + + // Get the tree "Geant4" + TTree* tree = (TTree*)tfile->Get(f_treeName.c_str()); + if ( tree == 0 ) { + tree = new TTree(f_treeName.c_str(),f_treeDesc.c_str()); + if ( tree == 0 ) return false; + tree->SetAutoSave(1000000000); // autosave when 1 Gbyte written + if ( m_verbose > 2 ) + std::cout << "G4RootTransManager: TTree \"" << f_treeName << "\" created." + << std::endl; + } + + // cache the pointer to the last write file + f_lastwritefile = tfile; + f_lastwritetree = tree; + + return true; +} + +// Implementation of Commit +void G4RootTransManager::Commit() +{ + if( f_lastwritefile != 0 ) { + // f_lastwritefile->cd(); + // if( f_lastwritetree != 0 ) f_lastwritetree->Fill(); + f_lastwritefile->Write(); + } +} + +// Implementation of Initialize +void G4RootTransManager::Initialize() +{ + // Initialize the root file catalog + RootFileCatalog::iterator itr; + for ( itr = f_catalog.begin(); itr != f_catalog.end(); itr++ ) { + (*itr).second = 0; + } +} + +// Implementation of BufferSize +int G4RootTransManager::BufferSize() +{ + if (f_split) return f_bufsize/4; + return f_bufsize; +} + +// Implementation of LookUp +TFile* G4RootTransManager::LookUp(string file, string mode) +{ + if ( (*(f_catalog.find(file))).second != 0 ) { + return f_catalog[file]; + } else { + if ( mode == "WRITE" ) { + f_catalog[file] = new TFile(file.c_str(), "UPDATE"); + + cout << "LookUp: File: " << file << " for write" << endl; + 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; + return f_catalog[file]; + } else { + cout << "LookUp: File: " << file << ", f_catalog=0" << endl; + return 0; + } + } +} + +// End of G4RootTransManager.cc + diff --git a/examples/extended/persistency/rootio/tools/README b/examples/extended/persistency/rootio/tools/README new file mode 100644 index 0000000000..cf16dbf4ca --- /dev/null +++ b/examples/extended/persistency/rootio/tools/README @@ -0,0 +1,3 @@ + +The files in this directory are intended for developpers' use. + diff --git a/examples/extended/persistency/rootio/tools/g4exmv.sh b/examples/extended/persistency/rootio/tools/g4exmv.sh new file mode 100755 index 0000000000..3203872e16 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/g4exmv.sh @@ -0,0 +1,34 @@ +#!/bin/csh -f +set file = $1 +set tmpfile = fadsmv.tmp.$$ +#if ( ! -f $file ) then +# echo "File $file does not exist. Stop." +# exit 1 +#endif + +set filename = `basename $file` +set filepath = `dirname $file` + +echo $filename | sed \ + -e 's/DigitRootIO/G4DigitRootIO/g' \ + -e 's/EventRootIO/G4EventRootIO/g' \ + -e 's/HepMCRootIO/G4HepMCRootIO/g' \ + -e 's/HitRootIO/G4HitRootIO/g' \ + -e 's/MCTruthRootIO/G4MCTruthRootIO/g' \ + -e 's/RootFADSevent/G4RootEvent/g' \ + -e 's/RootIOManager/G4RootIOManager/g' \ + -e 's/RootTransManager/G4RootTransManager/g' \ + -e 's/fadsROOTLinkDef/G4ROOTLinkDef/g' \ +-e 's/G4G4/G4/g' \ +-e 's/G4VG4/G4V/g' \ + > $tmpfile + +set filename2 = `cat $tmpfile` + +if ( $filename != $filename2 ) then + echo "mv -f $filepath/$filename $filepath/$filename2" + mv -f $filepath/$filename $filepath/$filename2 +endif + +rm -f $tmpfile + diff --git a/examples/extended/persistency/rootio/tools/g4exsed.sh b/examples/extended/persistency/rootio/tools/g4exsed.sh new file mode 100755 index 0000000000..3a55255aa8 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/g4exsed.sh @@ -0,0 +1,28 @@ +#!/bin/csh -f +set file = $1 +set tmpfile = $1.tmp.$$ +if ( ! -f $file ) then + echo "File $file does not exist. Stop." + exit 1 +endif + +cat $file | sed \ + -e 's/DigitRootIO/G4DigitRootIO/g' \ + -e 's/EventRootIO/G4EventRootIO/g' \ + -e 's/HepMCRootIO/G4HepMCRootIO/g' \ + -e 's/HitRootIO/G4HitRootIO/g' \ + -e 's/MCTruthRootIO/G4MCTruthRootIO/g' \ + -e 's/RootFADSevent/G4RootEvent/g' \ + -e 's/RootIOManager/G4RootIOManager/g' \ + -e 's/RootTransManager/G4RootTransManager/g' \ + -e 's/fadsROOTLinkDef/G4ROOTLinkDef/g' \ +-e 's/G4G4/G4/g' \ +-e 's/G4VG4/G4V/g' \ +-e 's/FADS\/Goofy tag/GEANT4 tag/g' \ + > $tmpfile + +diff $file $tmpfile + +mv -f $file ${file}.org +mv -f $tmpfile $file + diff --git a/examples/extended/persistency/rootio/tools/g4psed.sh b/examples/extended/persistency/rootio/tools/g4psed.sh new file mode 100755 index 0000000000..0fa1461e09 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/g4psed.sh @@ -0,0 +1,51 @@ +#!/bin/csh -f +set file = $1 +set tmpfile = $1.tmp.$$ +if ( ! -f $file ) then + echo "File $file does not exist. Stop." + exit 1 +endif + +cat $file | sed \ +-e 's/DCIOcatalog/G4DCIOcatalog/g' \ +-e 's/DCIOentryT/G4DCIOentryT/g' \ +-e 's/FADSevent/G4Pevent/g' \ +-e 's/FileUtilities/G4FileUtilities/g' \ +-e 's/HCIOcatalog/G4HCIOcatalog/g' \ +-e 's/HCIOentryT/G4HCIOentryT/g' \ +-e 's/PersistencyCenter/G4PersistencyCenter/g' \ +-e 's/PersistencyCenterMessenger/G4PersistencyCenterMessenger/g' \ +-e 's/PersistencyManager/G4PersistencyManager/g' \ +-e 's/PersistencyManagerT/G4PersistencyManagerT/g' \ +-e 's/VDCIOentry/G4VDCIOentry/g' \ +-e 's/VHCIOentry/G4VHCIOentry/g' \ +-e 's/VHepMCIO/G4VHepMCIO/g' \ +-e 's/VMCTruthIO/G4VMCTruthIO/g' \ +-e 's/VPDigitIO/G4VPDigitIO/g' \ +-e 's/VPDigitsCollectionIO/G4VPDigitsCollectionIO/g' \ +-e 's/VPEventIO/G4VPEventIO/g' \ +-e 's/VPHitIO/G4VPHitIO/g' \ +-e 's/VPHitsCollectionIO/G4VPHitsCollectionIO/g' \ +-e 's/VTransactionManager/G4VTransactionManager/g' \ + -e 's/MCTEvent/G4MCTEvent/g' \ + -e 's/MCTEventAction/G4MCTEventAction/g' \ + -e 's/MCTGenEvent/G4MCTGenEvent/g' \ + -e 's/MCTGenParticle/G4MCTGenParticle/g' \ + -e 's/MCTManager/G4MCTManager/g' \ + -e 's/MCTMessenger/G4MCTMessenger/g' \ + -e 's/MCTSimEvent/G4MCTSimEvent/g' \ + -e 's/MCTSimParticle/G4MCTSimParticle/g' \ + -e 's/MCTSimVertex/G4MCTSimVertex/g' \ + -e 's/MCTSteppingAction/G4MCTSteppingAction/g' \ + -e 's/MCTVStoreSelection/G4MCTVStoreSelection/g' \ + -e 's/MCTVUserFilter/G4MCTVUserFilter/g' \ +-e 's/G4G4/G4/g' \ +-e 's/G4VG4/G4V/g' \ +-e 's/FADS\/Goofy tag/GEANT4 tag/g' \ + > $tmpfile + +diff $file $tmpfile + +mv -f $file ${file}.org +mv -f $tmpfile $file + diff --git a/examples/extended/persistency/rootio/tools/mksed.pl b/examples/extended/persistency/rootio/tools/mksed.pl new file mode 100755 index 0000000000..952d82a8c4 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/mksed.pl @@ -0,0 +1,9 @@ +#! /usr/bin/perl + +while() { + chop; + s/.hh//; + print " -e \'s/$_/G4$_/g\' \\\n"; + +} + diff --git a/examples/extended/persistency/rootio/tools/rename.sh b/examples/extended/persistency/rootio/tools/rename.sh new file mode 100755 index 0000000000..10d99b6a1e --- /dev/null +++ b/examples/extended/persistency/rootio/tools/rename.sh @@ -0,0 +1,3 @@ +#!/bin/sh +find . -name '*.h*' -exec ./g4exmv.sh "{}" \; +find . -name '*.cc' -exec ./g4exmv.sh "{}" \; diff --git a/examples/extended/persistency/rootio/tools/sed.sh b/examples/extended/persistency/rootio/tools/sed.sh new file mode 100755 index 0000000000..f64bc6ba71 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/sed.sh @@ -0,0 +1,5 @@ +#!/bin/sh +find . -name '*.h*' -exec ./g4exsed.sh "{}" \; +find . -name '*.h*' -exec ./g4psed.sh "{}" \; +find . -name '*.cc' -exec ./g4exsed.sh "{}" \; +find . -name '*.cc' -exec ./g4psed.sh "{}" \; diff --git a/examples/extended/persistency/rootio/tools/sedrootio.sh b/examples/extended/persistency/rootio/tools/sedrootio.sh new file mode 100755 index 0000000000..a01484b825 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/sedrootio.sh @@ -0,0 +1,56 @@ +#!/bin/csh -f +set file = $1 +set tmpfile = $1.tmp +if ( ! -f $file ) then + echo "File $file does not exist. Stop." + exit 1 +endif + +cat $file | sed \ +-e 's/g4rootio/fadsrootio/g' \ +-e 's/G4DCIOcatalog/DCIOcatalog/g' \ +-e 's/G4DCIOentryT/DCIOentryT/g' \ +-e 's/G4Pevent/FADSevent/g' \ +-e 's/G4FileUtilities/FileUtilities/g' \ +-e 's/G4HCIOcatalog/HCIOcatalog/g' \ +-e 's/G4HCIOentryT/HCIOentryT/g' \ +-e 's/G4PersistencyCenter/PersistencyCenter/g' \ +-e 's/G4PersistencyCenterMessenger/PersistencyCenterMessenger/g' \ +-e 's/G4PersistencyManager/PersistencyManager/g' \ +-e 's/G4PersistencyManagerT/PersistencyManagerT/g' \ +-e 's/G4VDCIOentry/VDCIOentry/g' \ +-e 's/G4VHCIOentry/VHCIOentry/g' \ +-e 's/G4VHepMCIO/VHepMCIO/g' \ +-e 's/G4VMCTruthIO/VMCTruthIO/g' \ +-e 's/G4VPDigitIO/VPDigitIO/g' \ +-e 's/G4VPDigitsCollectionIO/VPDigitsCollectionIO/g' \ +-e 's/G4VPEventIO/VPEventIO/g' \ +-e 's/G4VPHitIO/VPHitIO/g' \ +-e 's/G4VPHitsCollectionIO/VPHitsCollectionIO/g' \ +-e 's/G4VTransactionManager/VTransactionManager/g' \ +-e 's/G4MCTEvent/MCTEvent/g' \ +-e 's/G4MCTEventAction/MCTEventAction/g' \ +-e 's/G4MCTGenEvent/MCTGenEvent/g' \ +-e 's/G4MCTGenParticle/MCTGenParticle/g' \ +-e 's/G4MCTManager/MCTManager/g' \ +-e 's/G4MCTMessenger/MCTMessenger/g' \ +-e 's/G4MCTSimEvent/MCTSimEvent/g' \ +-e 's/G4MCTSimParticle/MCTSimParticle/g' \ +-e 's/G4MCTSimVertex/MCTSimVertex/g' \ +-e 's/G4MCTSteppingAction/MCTSteppingAction/g' \ +-e 's/G4MCTVStoreSelection/MCTVStoreSelection/g' \ +-e 's/G4MCTVUserFilter/MCTVUserFilter/g' \ +-e 's/G4HitRootIO/HitRootIO/g' \ +-e 's/G4RootIOManager/RootIOManager/g' \ +-e 's/G4RootTransManager/RootTransManager/g' \ +-e 's/GEANT4 tag/FADS\/Goofy tag/g' \ +-e 's/Geant4/FADS/g' \ +-e 's/G4cout/std::cout/g' \ +-e 's/G4cerr/std::cerr/g' \ +-e 's/G4endl/std::endl/g' \ +-e 's/G4std/std/g' \ +-e 's/$package_name = "FADS";/$package_name = "FADS\/Goofy";/g' \ +> $tmpfile + +diff $file $tmpfile + diff --git a/examples/extended/persistency/rootio/tools/setup.csh b/examples/extended/persistency/rootio/tools/setup.csh new file mode 100644 index 0000000000..6df98954e0 --- /dev/null +++ b/examples/extended/persistency/rootio/tools/setup.csh @@ -0,0 +1,13 @@ +setenv G4INSTALL $HOME/geant4/cvsco/geant4 +setenv G4SYSTEM Linux-g++ +setenv G4LIB_BUILD_SHARED 1 + +# CLHEP (1.80) +set clhep_vers = 1.8.0.0 +setenv CLHEP_BASE_DIR /usr/local/CLHEP/$clhep_vers + +# ROOT +setenv ROOTSYS $HOME/local/root/v3.03.06/root +setenv PATH $ROOTSYS/bin:$PATH +setenv LD_LIBRARY_PATH $ROOTSYS/lib:$LD_LIBRARY_PATH + diff --git a/examples/novice/N01/GNUmakefile.light b/examples/novice/N01/GNUmakefile.light deleted file mode 100644 index 89a5c0e61e..0000000000 --- a/examples/novice/N01/GNUmakefile.light +++ /dev/null @@ -1,37 +0,0 @@ -# $Id: GNUmakefile.light,v 1.1 1999/01/07 16:05:40 gunter Exp $ -# -------------------------------------------------------------- -# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. -# -------------------------------------------------------------- - -name := exampleN01 -G4TARGET := $(name) -G4EXLIB := true - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -LDLIBS := \ - -l$(G4TARGET) \ - -lG4run \ - -lG4event \ - -lG4tracking \ - -lG4bosons \ - -lG4partman \ - -lG4transportation \ - -lG4procman \ - -lG4track \ - -lG4materials \ - -lG4digits+hits \ - -lG4csg \ - -lG4geometrymng \ - -lG4volumes \ - -lG4magneticfield \ - -lG4graphics_reps \ - -lG4intercoms \ - -lG4global - -.PHONY: all -all: lib bin - -include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/novice/N01/History b/examples/novice/N01/History index 93990d1062..21e85dc5f2 100644 --- a/examples/novice/N01/History +++ b/examples/novice/N01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2002/05/14 01:50:31 asaim Exp $ +$Id: History,v 1.6 2002/07/03 07:50:34 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +July 03, 2002 Makoto Asai (exampleN01-V04-01-00) +- Correction to README. + May 14, 2002 Makoto Asai (exampleN01-V04-00-01) - Remove UI command from ExN01PrimaryGeneratorAction and use direct method calls diff --git a/examples/novice/N01/README b/examples/novice/N01/README index 25f605b5e7..caa1c1bd30 100644 --- a/examples/novice/N01/README +++ b/examples/novice/N01/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 2000/03/14 10:15:17 gcosmo Exp $ +$Id: README,v 1.3 2002/07/02 18:35:01 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,7 +20,7 @@ aluminum and lead are defined first, where all of them are single element materials. Though materials are assigned for each volume, they will not affect the trajectory of a geantino. - The experimental hall, which is the world volume, is made of aluminum + The experimental hall, which is the world volume, is made of argon gas and it is a box. The tracker tube made of argon gas is placed at (-1m,0m,0m) respect to the origin of the world volume. The calorimeter block made of lead and it has 19 layers of aluminum plates inside. diff --git a/examples/novice/N01/exampleN01.cc b/examples/novice/N01/exampleN01.cc index 67ef8fb294..8a09197aae 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out index b597feccd2..c8de17e1be 100644 --- a/examples/novice/N01/exampleN01.out +++ b/examples/novice/N01/exampleN01.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Start Run processing. @@ -193,5 +193,5 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 3 - User=0.02s Real=0.06s Sys=0.04s + User=0.02s Real=0.05s Sys=0.03s G4 kernel has come to Quit state. diff --git a/examples/novice/N01/include/ExN01DetectorConstruction.hh b/examples/novice/N01/include/ExN01DetectorConstruction.hh index 717d60a88d..a857da4a38 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN01DetectorConstruction_H diff --git a/examples/novice/N01/include/ExN01PhysicsList.hh b/examples/novice/N01/include/ExN01PhysicsList.hh index fb12365c57..de629755ab 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh index e125f4e59f..afc46aacfb 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN01PrimaryGeneratorAction_h diff --git a/examples/novice/N01/src/ExN01DetectorConstruction.cc b/examples/novice/N01/src/ExN01DetectorConstruction.cc index a7e095d3e7..34d46cf4d2 100644 --- a/examples/novice/N01/src/ExN01DetectorConstruction.cc +++ b/examples/novice/N01/src/ExN01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01DetectorConstruction.cc,v 1.6 2002/04/26 13:49:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN01DetectorConstruction.hh" diff --git a/examples/novice/N01/src/ExN01PhysicsList.cc b/examples/novice/N01/src/ExN01PhysicsList.cc index b223f59344..b6a012f350 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc index a0b8979eea..602bf152ed 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN01PrimaryGeneratorAction.hh" diff --git a/examples/novice/N02/exampleN02.cc b/examples/novice/N02/exampleN02.cc index daca1f2122..5e662fea90 100644 --- a/examples/novice/N02/exampleN02.cc +++ b/examples/novice/N02/exampleN02.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN02.cc,v 1.8 2002/01/09 17:23:49 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/exampleN02.large_N.out b/examples/novice/N02/exampleN02.large_N.out index 595b06c0ef..a62f21f242 100644 --- a/examples/novice/N02/exampleN02.large_N.out +++ b/examples/novice/N02/exampleN02.large_N.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ + Geant4 version $Name: geant4-05-00 $ (15-Dec-2000) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out index b7314f6568..f86a4d6a8b 100644 --- a/examples/novice/N02/exampleN02.out +++ b/examples/novice/N02/exampleN02.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,6 +13,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -112,2267 +113,2362 @@ Cut in energy 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 -374 mum -14.8 mum -2.86 m 200 MeV 8.09 keV 4.79 cm 4.79 cm World eIoni - 2 -518 mum 101 mum -2.45 m 200 MeV 90.7 keV 41.2 cm 46 cm World Transportation - 3 -533 mum 98.4 mum -2.45 m 195 MeV 2.18 MeV 682 mum 46.1 cm Target eBrem - 4 -570 mum 103 mum -2.45 m 190 MeV 1.67 MeV 1.29 mm 46.2 cm Target eBrem - 5 -533 mum 91.1 mum -2.45 m 181 MeV 2.44 MeV 1.22 mm 46.3 cm Target eBrem - 6 -519 mum 102 mum -2.45 m 180 MeV 200 keV 191 mum 46.3 cm Target eBrem - 7 -506 mum 107 mum -2.45 m 138 MeV 213 keV 187 mum 46.4 cm Target eBrem - 8 -461 mum 134 mum -2.45 m 137 MeV 854 keV 550 mum 46.4 cm Target eBrem - 9 -433 mum 139 mum -2.45 m 136 MeV 527 keV 395 mum 46.5 cm Target eBrem - 10 -407 mum 134 mum -2.45 m 120 MeV 950 keV 334 mum 46.5 cm Target eBrem - 11 -371 mum 118 mum -2.44 m 114 MeV 440 keV 411 mum 46.5 cm Target eBrem - 12 -361 mum 124 mum -2.44 m 113 MeV 149 keV 151 mum 46.5 cm Target eBrem - 13 -294 mum 228 mum -2.44 m 108 MeV 741 keV 713 mum 46.6 cm Target eBrem - 14 -286 mum 248 mum -2.44 m 84 MeV 270 keV 186 mum 46.6 cm Target eBrem - 15 -242 mum 304 mum -2.44 m 81.9 MeV 883 keV 774 mum 46.7 cm Target eBrem - 16 -218 mum 407 mum -2.44 m 72.9 MeV 575 keV 495 mum 46.8 cm Target eBrem - 17 -207 mum 529 mum -2.44 m 71.1 MeV 656 keV 347 mum 46.8 cm Target eBrem - 18 -56.4 mum 918 mum -2.44 m 39.2 MeV 2.27 MeV 1.78 mm 47 cm Target eBrem - 19 15.7 mum 1.1 mm -2.44 m 37.8 MeV 574 keV 475 mum 47 cm Target eBrem - 20 250 mum 1.38 mm -2.44 m 34.9 MeV 947 keV 769 mum 47.1 cm Target eBrem - 21 362 mum 1.83 mm -2.44 m 33.3 MeV 1.23 MeV 890 mum 47.2 cm Target eBrem - 22 459 mum 2 mm -2.44 m 28 MeV 632 keV 421 mum 47.2 cm Target eBrem - 23 496 mum 2.13 mm -2.44 m 26.8 MeV 380 keV 292 mum 47.3 cm Target eBrem - 24 518 mum 2.35 mm -2.44 m 25.8 MeV 403 keV 368 mum 47.3 cm Target eBrem - 25 587 mum 2.5 mm -2.44 m 24.2 MeV 209 keV 222 mum 47.3 cm Target eBrem - 26 652 mum 3.06 mm -2.44 m 17.3 MeV 898 keV 650 mum 47.4 cm Target eBrem - 27 1.17 mm 3.53 mm -2.44 m 14.3 MeV 872 keV 832 mum 47.5 cm Target eBrem - 28 1.68 mm 3.78 mm -2.43 m 9.73 MeV 4.01 MeV 3.34 mm 47.8 cm Target eBrem - 29 2.25 mm 5.11 mm -2.43 m 7.18 MeV 2.13 MeV 1.76 mm 48 cm Target eBrem - 30 2.45 mm 7.33 mm -2.44 m 1.76 MeV 5.42 MeV 2.59 mm 48.2 cm Target eIoni - 31 2.48 mm 7.38 mm -2.44 m 1.25 MeV 168 keV 213 mum 48.3 cm Target eBrem - 32 2.43 mm 7.26 mm -2.44 m 0 eV 1.25 MeV 947 mum 48.3 cm Target eIoni - 33 2.43 mm 7.26 mm -2.44 m 0 eV 0 eV 0 fm 48.3 cm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.43 mm 7.26 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.47 mm 6.98 mm -2.44 m 380 keV 0 eV 336 mum 336 mum Target compt - 2 5.92 mm 3.51 mm -2.44 m 0 eV 88 keV 4.9 mm 5.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 32 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.92 mm 3.51 mm -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 5.92 mm 3.5 mm -2.44 m 5.55e-11 eV 292 keV 143 mum 143 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 32 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.47 mm 6.98 mm -2.44 m 131 keV 0 eV 0 fm 0 fm Target initStep - 1 2.47 mm 6.98 mm -2.44 m 0 eV 131 keV 42 mum 42 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.43 mm 7.26 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.39 mm 1.34 cm -2.43 m 0 eV 88 keV 7.37 mm 7.37 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 31 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.39 mm 1.34 cm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.39 mm 1.34 cm -2.43 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.48 mm 7.38 mm -2.44 m 348 keV 0 eV 0 fm 0 fm Target initStep - 1 -350 mum 5.25 mm -2.44 m 0 eV 88 keV 3.57 mm 3.57 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 30 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -350 mum 5.25 mm -2.44 m 260 keV 0 eV 0 fm 0 fm Target initStep - 1 -356 mum 5.25 mm -2.44 m 0 eV 260 keV 120 mum 120 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.25 mm 5.11 mm -2.43 m 420 keV 0 eV 0 fm 0 fm Target initStep - 1 2.29 mm 5.3 mm -2.43 m 0 eV 88 keV 248 mum 248 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 29 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.29 mm 5.3 mm -2.43 m 332 keV 0 eV 0 fm 0 fm Target initStep - 1 2.29 mm 5.31 mm -2.43 m 0 eV 332 keV 171 mum 171 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.68 mm 3.78 mm -2.43 m 599 keV 0 eV 0 fm 0 fm Target initStep - 1 2.85 mm 5.01 mm -2.43 m 421 keV 0 eV 1.96 mm 1.96 mm Target compt - 2 2.97 mm 5.23 mm -2.43 m 0 eV 88 keV 265 mum 2.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 28 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.97 mm 5.23 mm -2.43 m 333 keV 0 eV 0 fm 0 fm Target initStep - 1 2.98 mm 5.23 mm -2.43 m 1.11e-10 eV 333 keV 172 mum 172 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 28 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.85 mm 5.01 mm -2.43 m 178 keV 0 eV 0 fm 0 fm Target initStep - 1 2.85 mm 5.01 mm -2.43 m 8.33e-11 eV 178 keV 68.2 mum 68.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.17 mm 3.53 mm -2.44 m 2.07 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.32 mm 6.71 mm -2.43 m 0 eV 88 keV 6.19 mm 6.19 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 27 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.32 mm 6.71 mm -2.43 m 1.98 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.39 mm 6.83 mm -2.43 m 1.11 MeV 188 keV 179 mum 179 mum Target eBrem - 2 3.4 mm 6.82 mm -2.43 m 2.22e-10 eV 1.11 MeV 814 mum 993 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.39 mm 6.83 mm -2.43 m 683 keV 0 eV 0 fm 0 fm Target initStep - 1 1.77 mm 8.07 mm -2.43 m 0 eV 88 keV 4.63 mm 4.63 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 41 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.77 mm 8.07 mm -2.43 m 595 keV 0 eV 0 fm 0 fm Target initStep - 1 1.76 mm 8.1 mm -2.43 m 2.22e-10 eV 595 keV 378 mum 378 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 652 mum 3.06 mm -2.44 m 6.01 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.4 mm 4.02 mm -2.44 m 270 keV 0 eV 1.53 mm 1.53 mm Target compt - 2 1.39 mm 3.61 mm -2.44 m 0 eV 88 keV 433 mum 1.96 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 26 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.39 mm 3.61 mm -2.44 m 182 keV 0 eV 0 fm 0 fm Target initStep - 1 1.39 mm 3.61 mm -2.44 m 2.78e-11 eV 182 keV 70.2 mum 70.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 26 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.4 mm 4.02 mm -2.44 m 5.74 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.6 mm 5.15 mm -2.44 m 2.22 MeV 3.52 MeV 2.31 mm 2.31 mm Target eIoni - 2 1.58 mm 5.36 mm -2.44 m 601 keV 1.2 MeV 1.11 mm 3.42 mm Target eBrem - 3 1.59 mm 5.39 mm -2.44 m 1.11e-10 eV 601 keV 383 mum 3.8 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 43 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.58 mm 5.36 mm -2.44 m 426 keV 0 eV 0 fm 0 fm Target initStep - 1 1.55 mm 5.62 mm -2.44 m 368 keV 0 eV 332 mum 332 mum Target compt - 2 1.43 mm 5.8 mm -2.44 m 0 eV 88 keV 219 mum 551 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.43 mm 5.8 mm -2.44 m 280 keV 0 eV 0 fm 0 fm Target initStep - 1 1.42 mm 5.8 mm -2.44 m 0 eV 280 keV 134 mum 134 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 45 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.55 mm 5.62 mm -2.44 m 58.3 keV 0 eV 0 fm 0 fm Target initStep - 1 1.55 mm 5.62 mm -2.44 m 0 eV 58.3 keV 11.5 mum 11.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 587 mum 2.5 mm -2.44 m 1.45 MeV 0 eV 0 fm 0 fm Target initStep - 1 5.9 mm 2.5 cm -2.42 m 1.45 MeV 0 eV 2.84 cm 2.84 cm Target Transportation - 2 1.27 cm 5.39 cm -2.4 m 1.45 MeV 0 eV 3.64 cm 6.47 cm World Transportation - 3 56.7 cm 2.4 m -68.8 cm 1.45 MeV 0 eV 2.96 m 3.02 m Tracker Transportation - 4 68.8 cm 2.91 m -31.6 cm 1.45 MeV 0 eV 64.3 cm 3.66 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 518 mum 2.35 mm -2.44 m 586 keV 0 eV 0 fm 0 fm Target initStep - 1 872 mum 3.45 mm -2.44 m 0 eV 88 keV 1.51 mm 1.51 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 872 mum 3.45 mm -2.44 m 498 keV 0 eV 0 fm 0 fm Target initStep - 1 882 mum 3.47 mm -2.44 m 1.67e-10 eV 498 keV 299 mum 299 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 496 mum 2.13 mm -2.44 m 740 keV 0 eV 0 fm 0 fm Target initStep - 1 829 mum 3.47 mm -2.44 m 689 keV 0 eV 2.27 mm 2.27 mm Target compt - 2 429 mum 5.67 mm -2.43 m 550 keV 0 eV 5.56 mm 7.82 mm Target compt - 3 529 mum 5.8 mm -2.43 m 0 eV 88 keV 221 mum 8.05 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 23 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 529 mum 5.8 mm -2.43 m 462 keV 0 eV 0 fm 0 fm Target initStep - 1 531 mum 5.82 mm -2.43 m 1.67e-10 eV 462 keV 271 mum 271 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 23 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 429 mum 5.67 mm -2.43 m 139 keV 0 eV 0 fm 0 fm Target initStep - 1 426 mum 5.67 mm -2.43 m 2.78e-11 eV 139 keV 46.4 mum 46.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 23 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 829 mum 3.47 mm -2.44 m 50.3 keV 0 eV 0 fm 0 fm Target initStep - 1 830 mum 3.47 mm -2.44 m 0 eV 50.3 keV 9.01 mum 9.01 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 459 mum 2 mm -2.44 m 4.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.43 mm 9.17 mm -2.42 m 4.57 MeV 0 eV 1.86 cm 1.86 cm Target compt - 2 4.57 mm 1.41 cm -2.41 m 0 eV 0 eV 1.11 cm 2.96 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 54, Parent ID = 22 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.57 mm 1.41 cm -2.41 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.81 mm 1.43 cm -2.41 m 934 keV 507 keV 622 mum 622 mum Target eBrem - 2 4.77 mm 1.42 cm -2.41 m 0 eV 934 keV 674 mum 1.3 mm Target eIoni - 3 4.77 mm 1.42 cm -2.41 m 0 eV 0 eV 0 fm 1.3 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 54 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.77 mm 1.42 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 3.96 mm 1.27 cm -2.41 m 0 eV 88 keV 2.15 mm 2.15 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 57 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.96 mm 1.27 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 3.96 mm 1.27 cm -2.41 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 54 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.77 mm 1.42 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 6.44 mm 1.74 cm -2.41 m 0 eV 88 keV 4.44 mm 4.44 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 56 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.44 mm 1.74 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 6.44 mm 1.74 cm -2.41 m 0 eV 423 keV 235 mum 235 mum Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 54 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.81 mm 1.43 cm -2.41 m 290 keV 0 eV 0 fm 0 fm Target initStep - 1 4.29 mm 1.36 cm -2.41 m 0 eV 88 keV 1.08 mm 1.08 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.29 mm 1.36 cm -2.41 m 202 keV 0 eV 0 fm 0 fm Target initStep - 1 4.29 mm 1.36 cm -2.41 m 0 eV 202 keV 82.8 mum 82.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 22 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.57 mm 1.41 cm -2.41 m 1.82 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.48 mm 1.43 cm -2.41 m 299 keV 1.52 MeV 1.31 mm 1.31 mm Target eIoni - 2 4.48 mm 1.42 cm -2.41 m 0 eV 299 keV 148 mum 1.46 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 22 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.43 mm 9.17 mm -2.42 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 3.43 mm 9.16 mm -2.42 m 3.33e-10 eV 156 keV 55.6 mum 55.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 362 mum 1.83 mm -2.44 m 306 keV 0 eV 0 fm 0 fm Target initStep - 1 1.86 mm 3.97 mm -2.43 m 0 eV 88 keV 6.69 mm 6.69 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 21 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.86 mm 3.97 mm -2.43 m 218 keV 0 eV 0 fm 0 fm Target initStep - 1 1.86 mm 3.98 mm -2.43 m 2.78e-11 eV 218 keV 93 mum 93 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 250 mum 1.38 mm -2.44 m 2.04 MeV 0 eV 0 fm 0 fm Target initStep - 1 8.61 mm 2 cm -2.4 m 2.04 MeV 0 eV 4.43 cm 4.43 cm Target Transportation - 2 68.9 cm 1.53 m 80 cm 2.04 MeV 0 eV 3.61 m 3.65 m Tracker Transportation - 3 69 cm 1.54 m 80.4 cm 2.04 MeV 0 eV 4.18 mm 3.65 m Chamber Transportation - 4 85.9 cm 1.91 m 1.6 m 2.04 MeV 0 eV 89.7 cm 4.55 m Tracker Transportation - 5 88.4 cm 1.97 m 1.72 m 2.04 MeV 0 eV 13.1 cm 4.68 m Chamber Transportation - 6 1.03 m 2.29 m 2.4 m 2.04 MeV 0 eV 77 cm 5.45 m Tracker Transportation - 7 1.14 m 2.53 m 2.91 m 2.04 MeV 0 eV 57.5 cm 6.03 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 15.7 mum 1.1 mm -2.44 m 770 keV 0 eV 0 fm 0 fm Target initStep - 1 248 mum 1.53 mm -2.44 m 319 keV 0 eV 1.11 mm 1.11 mm Target compt - 2 1.09 mm 895 mum -2.44 m 0 eV 88 keV 1.07 mm 2.17 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.09 mm 895 mum -2.44 m 231 keV 0 eV 0 fm 0 fm Target initStep - 1 1.1 mm 889 mum -2.44 m 0 eV 231 keV 101 mum 101 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 248 mum 1.53 mm -2.44 m 450 keV 0 eV 0 fm 0 fm Target initStep - 1 246 mum 1.54 mm -2.44 m 5.55e-11 eV 450 keV 262 mum 262 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -56.4 mum 918 mum -2.44 m 29.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 360 mum 2.48 mm -2.44 m 0 eV 0 eV 3.75 mm 3.75 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 65, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 360 mum 2.48 mm -2.44 m 24.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 80.1 mum 3.39 mm -2.44 m 18.1 MeV 3.55 MeV 1.88 mm 1.88 mm Target eBrem - 2 107 mum 3.73 mm -2.44 m 16.5 MeV 643 keV 554 mum 2.43 mm Target eBrem - 3 166 mum 4.75 mm -2.43 m 11.3 MeV 2.17 MeV 1.38 mm 3.81 mm Target eBrem - 4 151 mum 5.07 mm -2.43 m 4.61 MeV 362 keV 337 mum 4.14 mm Target eBrem - 5 137 mum 5.11 mm -2.43 m 3.46 MeV 54.1 keV 62.4 mum 4.2 mm Target eBrem - 6 134 mum 5.13 mm -2.43 m 3.11 MeV 27.6 keV 27.5 mum 4.23 mm Target eBrem - 7 -361 mum 5.29 mm -2.43 m 1.77 MeV 904 keV 931 mum 5.16 mm Target eBrem - 8 -15.4 mum 5.24 mm -2.43 m 600 keV 1.17 MeV 1.31 mm 6.47 mm Target eIoni - 9 7.11 mum 5.26 mm -2.43 m 0 eV 600 keV 385 mum 6.86 mm Target eIoni - 10 7.11 mum 5.26 mm -2.43 m 0 eV 0 eV 0 fm 6.86 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.11 mum 5.26 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -642 mum 5.78 mm -2.44 m 0 eV 88 keV 1.69 mm 1.69 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 74 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -642 mum 5.78 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -637 mum 5.78 mm -2.44 m 5.55e-11 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.11 mum 5.26 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 401 mum 4.95 mm -2.43 m 0 eV 88 keV 1.02 mm 1.02 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 401 mum 4.95 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 413 mum 4.95 mm -2.43 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -361 mum 5.29 mm -2.43 m 435 keV 0 eV 0 fm 0 fm Target initStep - 1 748 mum 6.27 mm -2.43 m 276 keV 0 eV 1.53 mm 1.53 mm Target compt - 2 1.79 mm 6.26 mm -2.43 m 0 eV 88 keV 1.46 mm 3 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.79 mm 6.26 mm -2.43 m 188 keV 0 eV 0 fm 0 fm Target initStep - 1 1.79 mm 6.25 mm -2.43 m 0 eV 188 keV 73.8 mum 73.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 748 mum 6.27 mm -2.43 m 159 keV 0 eV 0 fm 0 fm Target initStep - 1 749 mum 6.27 mm -2.43 m 2.78e-11 eV 159 keV 57.2 mum 57.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 134 mum 5.13 mm -2.43 m 325 keV 0 eV 0 fm 0 fm Target initStep - 1 -201 mum 6.81 mm -2.43 m 0 eV 88 keV 2.37 mm 2.37 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -201 mum 6.81 mm -2.43 m 237 keV 0 eV 0 fm 0 fm Target initStep - 1 -200 mum 6.81 mm -2.43 m 2.78e-11 eV 237 keV 105 mum 105 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 137 mum 5.11 mm -2.43 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -211 mum 5.68 mm -2.43 m 0 eV 88 keV 881 mum 881 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 70 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -211 mum 5.68 mm -2.43 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep - 1 -218 mum 5.73 mm -2.43 m 0 eV 1.01 MeV 728 mum 728 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 151 mum 5.07 mm -2.43 m 6.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.08 mm 2.02 cm -2.42 m 0 eV 0 eV 2.27 cm 2.27 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 82, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.08 mm 2.02 cm -2.42 m 2.02 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.88 mm 2.06 cm -2.42 m 663 keV 1.36 MeV 1.43 mm 1.43 mm Target eIoni - 2 -2.84 mm 2.06 cm -2.42 m 0 eV 663 keV 438 mum 1.86 mm Target eIoni - 3 -2.84 mm 2.06 cm -2.42 m 0 eV 0 eV 0 fm 1.86 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.84 mm 2.06 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 7.11 mm 2.33 cm -2.41 m 0 eV 88 keV 1.52 cm 1.52 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 84 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.11 mm 2.33 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 7.11 mm 2.33 cm -2.41 m 1.11e-10 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.84 mm 2.06 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.95 mm 2.06 cm -2.42 m 184 keV 0 eV 170 mum 170 mum Target compt - 2 -2.54 mm 2.05 cm -2.42 m 0 eV 88 keV 438 mum 608 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.54 mm 2.05 cm -2.42 m 96.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.54 mm 2.05 cm -2.42 m 0 eV 96.1 keV 25.8 mum 25.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.95 mm 2.06 cm -2.42 m 327 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.96 mm 2.06 cm -2.42 m 1.11e-10 eV 327 keV 167 mum 167 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.08 mm 2.02 cm -2.42 m 3.26 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.12 mm 2.03 cm -2.42 m 2.52 MeV 76.4 keV 96.4 mum 96.4 mum Target eBrem - 2 -3.22 mm 2.03 cm -2.42 m 139 keV 2.38 MeV 1.59 mm 1.69 mm Target eIoni - 3 -3.22 mm 2.03 cm -2.42 m 0 eV 139 keV 46.2 mum 1.73 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 88, Parent ID = 81 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.12 mm 2.03 cm -2.42 m 664 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.38 mm 2.5 cm -2.41 m 664 keV 0 eV 1.06 cm 1.06 cm Target Transportation - 2 -5.45 mm 2.9 cm -2.4 m 664 keV 0 eV 9.02 mm 1.96 cm World Transportation - 3 -63.8 cm 2.4 m 2.32 m 664 keV 0 eV 5.32 m 5.34 m Tracker Transportation - 4 -71.7 cm 2.7 m 2.91 m 664 keV 0 eV 66.8 cm 6.01 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 166 mum 4.75 mm -2.43 m 3.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.77 mm 2.5 cm -2.42 m 3.03 MeV 0 eV 2.33 cm 2.33 cm Target Transportation - 2 -5.7 mm 6.6 cm -2.4 m 3.03 MeV 0 eV 4.71 cm 7.04 cm World Transportation - 3 -22.9 cm 2.4 m -1.1 m 3.03 MeV 0 eV 2.68 m 2.75 m Tracker Transportation - 4 -27.8 cm 2.91 m -81.5 cm 3.03 MeV 0 eV 58.6 cm 3.34 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 107 mum 3.73 mm -2.44 m 950 keV 0 eV 0 fm 0 fm Target initStep - 1 1.11 mm 5.78 mm -2.43 m 229 keV 0 eV 2.85 mm 2.85 mm Target compt - 2 633 mum 5.73 mm -2.43 m 0 eV 88 keV 600 mum 3.45 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 633 mum 5.73 mm -2.43 m 141 keV 0 eV 0 fm 0 fm Target initStep - 1 634 mum 5.73 mm -2.43 m 2.78e-11 eV 141 keV 47.5 mum 47.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.11 mm 5.78 mm -2.43 m 721 keV 0 eV 0 fm 0 fm Target initStep - 1 1.11 mm 5.81 mm -2.43 m 302 keV 38.5 keV 40.2 mum 40.2 mum Target eBrem - 2 1.11 mm 5.8 mm -2.43 m 0 eV 302 keV 150 mum 190 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 89 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.11 mm 5.81 mm -2.43 m 380 keV 0 eV 0 fm 0 fm Target initStep - 1 2.28 mm 3.08 mm -2.43 m 0 eV 88 keV 3.78 mm 3.78 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.28 mm 3.08 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 2.28 mm 3.07 mm -2.43 m 0 eV 292 keV 143 mum 143 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 80.1 mum 3.39 mm -2.44 m 3.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.39 mm 7.42 mm -2.43 m 271 keV 0 eV 8.01 mm 8.01 mm Target compt - 2 1.68 mm 6.97 mm -2.43 m 0 eV 88 keV 634 mum 8.64 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 66 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.68 mm 6.97 mm -2.43 m 183 keV 0 eV 0 fm 0 fm Target initStep - 1 1.68 mm 6.97 mm -2.43 m 0 eV 183 keV 70.9 mum 70.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 66 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.39 mm 7.42 mm -2.43 m 2.82 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.55 mm 7.89 mm -2.43 m 48.3 keV 1.7 MeV 1.66 mm 1.66 mm Target eBrem - 2 1.55 mm 7.89 mm -2.43 m 0 eV 48.3 keV 8.45 mum 1.66 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 93 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.55 mm 7.89 mm -2.43 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.11 mm 1.04 cm -2.43 m 319 keV 0 eV 3.58 mm 3.58 mm Target compt - 2 4.04 mm 5.01 mm -2.42 m 289 keV 0 eV 7.13 mm 1.07 cm Target compt - 3 5.56 mm 3.73 mm -2.42 m 0 eV 88 keV 2.32 mm 1.3 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.56 mm 3.73 mm -2.42 m 201 keV 0 eV 0 fm 0 fm Target initStep - 1 5.56 mm 3.73 mm -2.42 m 0 eV 201 keV 82.3 mum 82.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.04 mm 5.01 mm -2.42 m 29.8 keV 0 eV 0 fm 0 fm Target initStep - 1 4.04 mm 5 mm -2.42 m 0 eV 29.8 keV 3.83 mum 3.83 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.11 mm 1.04 cm -2.43 m 753 keV 0 eV 0 fm 0 fm Target initStep - 1 3.12 mm 1.05 cm -2.43 m 0 eV 753 keV 510 mum 510 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 360 mum 2.48 mm -2.44 m 3.96 MeV 0 eV 0 fm 0 fm Target initStep - 1 -124 mum 2.85 mm -2.44 m 1.52 MeV 2.01 MeV 1.8 mm 1.8 mm Target eBrem - 2 -100 mum 2.85 mm -2.44 m 880 keV 31.1 keV 26.2 mum 1.83 mm Target eBrem - 3 -66.1 mum 2.88 mm -2.44 m 0 eV 880 keV 617 mum 2.45 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -100 mum 2.85 mm -2.44 m 612 keV 0 eV 0 fm 0 fm Target initStep - 1 3.12 mm 3.25 mm -2.43 m 574 keV 0 eV 5.73 mm 5.73 mm Target compt - 2 3.83 mm 3.53 mm -2.43 m 0 eV 88 keV 987 mum 6.72 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 100 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.83 mm 3.53 mm -2.43 m 486 keV 0 eV 0 fm 0 fm Target initStep - 1 3.85 mm 3.54 mm -2.43 m 0 eV 486 keV 290 mum 290 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 100 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.12 mm 3.25 mm -2.43 m 37.6 keV 0 eV 0 fm 0 fm Target initStep - 1 3.12 mm 3.25 mm -2.43 m 0 eV 37.6 keV 5.59 mum 5.59 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -124 mum 2.85 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 4.38 mm 4.88 mm -2.43 m 0 eV 88 keV 5.17 mm 5.17 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 99 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.38 mm 4.88 mm -2.43 m 335 keV 0 eV 0 fm 0 fm Target initStep - 1 4.38 mm 4.88 mm -2.43 m 0 eV 335 keV 173 mum 173 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -207 mum 529 mum -2.44 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep - 1 -31.5 mum 1.25 mm -2.44 m 0 eV 88 keV 2.38 mm 2.38 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -31.5 mum 1.25 mm -2.44 m 978 keV 0 eV 0 fm 0 fm Target initStep - 1 -17.3 mum 1.28 mm -2.44 m 1.11e-10 eV 978 keV 701 mum 701 mum Target eIoni + 1 -37.5 mum -1.48 mum -2.86 m 200 MeV 8.09 keV 4.79 cm 4.79 cm World eIoni + 2 -32.4 mum 109 mum -2.45 m 200 MeV 89.9 keV 41.2 cm 46 cm World Transportation + 3 -21.6 mum 115 mum -2.45 m 180 MeV 906 keV 682 mum 46.1 cm Target eBrem + 4 -21.6 mum 115 mum -2.45 m 126 MeV 936 eV 2.64 mum 46.1 cm Target eBrem + 5 -21.4 mum 116 mum -2.45 m 103 MeV 92.4 keV 80.5 mum 46.1 cm Target eBrem + 6 41.9 mum 192 mum -2.45 m 93.9 MeV 2.2 MeV 1.39 mm 46.2 cm Target eBrem + 7 40.8 mum 193 mum -2.45 m 92.8 MeV 93 keV 82.6 mum 46.2 cm Target eBrem + 8 37.1 mum 197 mum -2.45 m 74.1 MeV 240 keV 215 mum 46.2 cm Target eBrem + 9 46.2 mum 306 mum -2.45 m 72.1 MeV 1.68 MeV 1.21 mm 46.4 cm Target eBrem + 10 56.4 mum 302 mum -2.45 m 30.9 MeV 606 keV 456 mum 46.4 cm Target eBrem + 11 -209 mum 23.7 mum -2.44 m 26.6 MeV 3.79 MeV 1.68 mm 46.6 cm Target eBrem + 12 -221 mum 15.5 mum -2.44 m 20.2 MeV 332 keV 323 mum 46.6 cm Target eBrem + 13 -464 mum -18.2 mum -2.44 m 18.5 MeV 832 keV 834 mum 46.7 cm Target eBrem + 14 -674 mum 432 mum -2.44 m 10.9 MeV 1.5 MeV 1.23 mm 46.8 cm Target eBrem + 15 -210 mum 39.9 mum -2.44 m 3.85 MeV 7.05 MeV 3.18 mm 47.1 cm Target eIoni + 16 545 mum -198 mum -2.44 m 2 MeV 1.85 MeV 1.97 mm 47.3 cm Target eIoni + 17 736 mum -20.5 mum -2.44 m 600 keV 1.4 MeV 1.42 mm 47.5 cm Target eIoni + 18 750 mum 22.6 mum -2.44 m 0 eV 600 keV 385 mum 47.5 cm Target eIoni + 19 750 mum 22.6 mum -2.44 m 0 eV 0 eV 0 fm 47.5 cm Target annihil ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -218 mum 407 mum -2.44 m 8.46 MeV 0 eV 0 fm 0 fm Target initStep - 1 493 mum 4.32 mm -2.43 m 0 eV 0 eV 1.19 cm 1.19 cm Target conv + 0 750 mum 22.6 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm -790 mum -2.44 m 0 eV 88 keV 1.7 mm 1.7 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 106, Parent ID = 16 +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 16 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 493 mum 4.32 mm -2.43 m 5.85 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.64 mm 4.52 mm -2.43 m 3.31 MeV 2.54 MeV 2.36 mm 2.36 mm Target eIoni - 2 1.16 mm 4.02 mm -2.43 m 1.01 MeV 2.29 MeV 1.84 mm 4.2 mm Target eIoni - 3 1.13 mm 3.89 mm -2.43 m 20.6 keV 575 keV 617 mum 4.81 mm Target eBrem - 4 1.13 mm 3.89 mm -2.43 m 3.47e-12 eV 20.6 keV 1.78 mum 4.81 mm Target eIoni - 5 1.13 mm 3.89 mm -2.43 m 3.47e-12 eV 0 eV 0 fm 4.81 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 106 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.13 mm 3.89 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 4.61 mm 7.43 mm -2.43 m 0 eV 88 keV 5.07 mm 5.07 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 109 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.61 mm 7.43 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 4.62 mm 7.44 mm -2.43 m 1.11e-10 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 106 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.13 mm 3.89 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -190 mum 2.54 mm -2.43 m 174 keV 0 eV 1.92 mm 1.92 mm Target compt - 2 -174 mum 2.55 mm -2.43 m 140 keV 0 eV 19.3 mum 1.94 mm Target compt - 3 -197 mum 2.64 mm -2.43 m 0 eV 88 keV 90.8 mum 2.03 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -197 mum 2.64 mm -2.43 m 52 keV 0 eV 0 fm 0 fm Target initStep - 1 -198 mum 2.64 mm -2.43 m 0 eV 52 keV 9.49 mum 9.49 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -174 mum 2.55 mm -2.43 m 34.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -173 mum 2.55 mm -2.43 m 0 eV 34.1 keV 4.77 mum 4.77 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -190 mum 2.54 mm -2.43 m 337 keV 0 eV 0 fm 0 fm Target initStep - 1 -199 mum 2.53 mm -2.43 m 0 eV 337 keV 175 mum 175 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 106 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.13 mm 3.89 mm -2.43 m 417 keV 0 eV 0 fm 0 fm Target initStep - 1 1.67 mm 2.89 mm -2.43 m 0 eV 88 keV 1.68 mm 1.68 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 107 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.67 mm 2.89 mm -2.43 m 329 keV 0 eV 0 fm 0 fm Target initStep - 1 1.67 mm 2.89 mm -2.43 m 5.55e-11 eV 329 keV 169 mum 169 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 16 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 493 mum 4.32 mm -2.43 m 1.59 MeV 0 eV 0 fm 0 fm Target initStep - 1 504 mum 4.42 mm -2.43 m 216 keV 1.38 MeV 1.19 mm 1.19 mm Target eIoni - 2 509 mum 4.42 mm -2.43 m 8.33e-11 eV 216 keV 91.6 mum 1.28 mm Target eIoni + 0 1.86 mm -790 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm -791 mum -2.44 m 5.55e-11 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -242 mum 304 mum -2.44 m 1.21 MeV 0 eV 0 fm 0 fm Target initStep - 1 244 mum 1.44 mm -2.44 m 964 keV 0 eV 7.2 mm 7.2 mm Target compt - 2 1.06 mm -698 mum -2.43 m 901 keV 0 eV 7.09 mm 1.43 cm Target compt - 3 746 mum -8.14 mm -2.42 m 205 keV 0 eV 1.43 cm 2.86 cm Target compt - 4 739 mum -8.13 mm -2.42 m 0 eV 88 keV 88.1 mum 2.87 cm Target phot + 0 750 mum 22.6 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 cm 9.73 mm -2.43 m 493 keV 0 eV 2.03 cm 2.03 cm Target compt + 2 -1.42 cm 1.03 cm -2.43 m 420 keV 0 eV 2.06 mm 2.24 cm Target compt + 3 -1.68 cm 1.16 cm -2.43 m 166 keV 0 eV 2.87 mm 2.53 cm Target compt + 4 -1.66 cm 1.16 cm -2.43 m 0 eV 88 keV 150 mum 2.54 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 739 mum -8.13 mm -2.42 m 117 keV 0 eV 0 fm 0 fm Target initStep - 1 739 mum -8.13 mm -2.42 m 4.16e-11 eV 117 keV 35.6 mum 35.6 mum Target eIoni + 0 -1.66 cm 1.16 cm -2.43 m 78 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.66 cm 1.16 cm -2.43 m 0 eV 78 keV 18.5 mum 18.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 746 mum -8.14 mm -2.42 m 695 keV 0 eV 0 fm 0 fm Target initStep - 1 745 mum -8.16 mm -2.42 m 2.22e-10 eV 695 keV 461 mum 461 mum Target eIoni + 0 -1.68 cm 1.16 cm -2.43 m 254 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 cm 1.16 cm -2.43 m 0 eV 254 keV 116 mum 116 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.06 mm -698 mum -2.43 m 63.1 keV 0 eV 0 fm 0 fm Target initStep - 1 1.06 mm -697 mum -2.43 m 0 eV 63.1 keV 13 mum 13 mum Target eIoni + 0 -1.42 cm 1.03 cm -2.43 m 72.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.42 cm 1.03 cm -2.43 m 0 eV 72.7 keV 16.5 mum 16.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 244 mum 1.44 mm -2.44 m 245 keV 0 eV 0 fm 0 fm Target initStep - 1 244 mum 1.45 mm -2.44 m 0 eV 245 keV 110 mum 110 mum Target eIoni + 0 -1.25 cm 9.73 mm -2.43 m 18.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 cm 9.73 mm -2.43 m 0 eV 18.5 keV 1.8 mum 1.8 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -286 mum 248 mum -2.44 m 23.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.32 mm 3.58 mm -2.42 m 0 eV 0 eV 2.62 cm 2.62 cm Target conv + 0 -674 mum 432 mum -2.44 m 6.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 -982 mum 768 mum -2.44 m 0 eV 0 eV 5.2 mm 5.2 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 120, Parent ID = 14 +* G4Track Information: Particle = e+, Track ID = 23, Parent ID = 14 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.32 mm 3.58 mm -2.42 m 14.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.61 mm 4.67 mm -2.42 m 11.4 MeV 2.42 MeV 2.25 mm 2.25 mm Target eBrem - 2 2.21 mm 4.59 mm -2.41 m 2.49 MeV 6.59 MeV 1.35 mm 3.6 mm Target eBrem - 3 1.65 mm 4.69 mm -2.42 m 1.04 MeV 1.45 MeV 1.6 mm 5.21 mm Target eIoni - 4 1.68 mm 4.73 mm -2.42 m 0 eV 1.04 MeV 765 mum 5.97 mm Target eIoni - 5 1.68 mm 4.73 mm -2.42 m 0 eV 0 eV 0 fm 5.97 mm Target annihil + 0 -982 mum 768 mum -2.44 m 1.79 MeV 0 eV 0 fm 0 fm Target initStep + 1 -845 mum 639 mum -2.44 m 466 keV 567 keV 412 mum 412 mum Target eBrem + 2 -837 mum 619 mum -2.44 m 0 eV 466 keV 274 mum 685 mum Target eIoni + 3 -837 mum 619 mum -2.44 m 0 eV 0 eV 0 fm 685 mum Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.68 mm 4.73 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.19 mm 6.8 mm -2.41 m 0 eV 88 keV 4.45 mm 4.45 mm Target phot + 0 -837 mum 619 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -708 mum 3.17 mm -2.44 m 503 keV 0 eV 2.96 mm 2.96 mm Target compt + 2 -548 mum 6.16 mm -2.44 m 251 keV 0 eV 3.97 mm 6.93 mm Target compt + 3 -1.41 mm 5.97 mm -2.44 m 0 eV 88 keV 919 mum 7.85 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 124 +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 26 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.19 mm 6.8 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.21 mm 6.8 mm -2.41 m 0 eV 423 keV 240 mum 240 mum Target eIoni + 0 -1.41 mm 5.97 mm -2.44 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.41 mm 5.96 mm -2.44 m 0 eV 163 keV 59.6 mum 59.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 120 +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 26 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.68 mm 4.73 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 6.67 mm 2.05 mm -2.42 m 0 eV 88 keV 5.75 mm 5.75 mm Target phot + 0 -548 mum 6.16 mm -2.44 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 -545 mum 6.17 mm -2.44 m 0 eV 252 keV 115 mum 115 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 123 +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 26 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.67 mm 2.05 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 6.67 mm 2.03 mm -2.42 m 0 eV 423 keV 240 mum 240 mum Target eIoni + 0 -708 mum 3.17 mm -2.44 m 8.45 keV 0 eV 0 fm 0 fm Target initStep + 1 -708 mum 3.17 mm -2.44 m 0 eV 8.45 keV 545 nm 545 nm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.21 mm 4.59 mm -2.41 m 2.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 -963 mum 2.39 mm -2.41 m 680 keV 0 eV 3.99 mm 3.99 mm Target compt - 2 -2.54 mm 2.64 mm -2.41 m 593 keV 0 eV 4.93 mm 8.92 mm Target compt - 3 -1.07 cm 6.71 mm -2.4 m 593 keV 0 eV 1.3 cm 2.19 cm Target Transportation - 4 -2.4 m 1.2 m 30.9 cm 593 keV 0 eV 3.8 m 3.83 m Tracker Transportation - 5 -2.91 m 1.45 m 88.7 cm 593 keV 0 eV 81.2 cm 4.64 m OutOfWorld Transportation + 0 -837 mum 619 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.16 mm -5.82 mm -2.43 m 474 keV 0 eV 7.48 mm 7.48 mm Target compt + 2 220 mum -1.06 cm -2.43 m 0 eV 88 keV 5.2 mm 1.27 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 122 +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 25 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.54 mm 2.64 mm -2.41 m 86.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.54 mm 2.63 mm -2.41 m 0 eV 86.6 keV 21.8 mum 21.8 mum Target eIoni + 0 220 mum -1.06 cm -2.43 m 386 keV 0 eV 0 fm 0 fm Target initStep + 1 218 mum -1.07 cm -2.43 m 0 eV 386 keV 212 mum 212 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 122 +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 25 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -963 mum 2.39 mm -2.41 m 1.66 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.14 mm 2.4 mm -2.41 m 353 keV 1.31 MeV 1.23 mm 1.23 mm Target eIoni - 2 -1.13 mm 2.4 mm -2.41 m 0 eV 353 keV 187 mum 1.41 mm Target eIoni + 0 -1.16 mm -5.82 mm -2.43 m 37 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.16 mm -5.82 mm -2.43 m 0 eV 37 keV 5.46 mum 5.46 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.61 mm 4.67 mm -2.42 m 672 keV 0 eV 0 fm 0 fm Target initStep - 1 4.64 mm 6.37 mm -2.41 m 567 keV 0 eV 1.1 cm 1.1 cm Target compt - 2 3.93 mm 7.82 mm -2.4 m 0 eV 88 keV 3.67 mm 1.47 cm Target phot + 0 -845 mum 639 mum -2.44 m 753 keV 0 eV 0 fm 0 fm Target initStep + 1 4.04 mm -7.58 mm -2.44 m 225 keV 0 eV 1.2 cm 1.2 cm Target compt + 2 3.98 mm -7.61 mm -2.44 m 0 eV 88 keV 197 mum 1.22 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 121 +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.93 mm 7.82 mm -2.4 m 479 keV 0 eV 0 fm 0 fm Target initStep - 1 3.94 mm 7.83 mm -2.4 m 1.67e-10 eV 479 keV 284 mum 284 mum Target eIoni + 0 3.98 mm -7.61 mm -2.44 m 137 keV 0 eV 0 fm 0 fm Target initStep + 1 3.98 mm -7.61 mm -2.44 m 2.78e-11 eV 137 keV 45.2 mum 45.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 121 +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.64 mm 6.37 mm -2.41 m 105 keV 0 eV 0 fm 0 fm Target initStep - 1 4.64 mm 6.36 mm -2.41 m 0 eV 105 keV 29.9 mum 29.9 mum Target eIoni + 0 4.04 mm -7.58 mm -2.44 m 529 keV 0 eV 0 fm 0 fm Target initStep + 1 4.02 mm -7.59 mm -2.44 m 260 keV 269 keV 89.8 mum 89.8 mum Target eBrem + 2 4.02 mm -7.6 mm -2.44 m 0 eV 260 keV 121 mum 210 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 14 +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 14 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.32 mm 3.58 mm -2.42 m 7.86 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.9 mm 4.51 mm -2.42 m 3.89 MeV 3.97 MeV 2.66 mm 2.66 mm Target eIoni - 2 1.9 mm 3.98 mm -2.42 m 1.95 MeV 799 keV 641 mum 3.3 mm Target eBrem - 3 1.9 mm 3.95 mm -2.42 m 465 keV 1.04 MeV 1.04 mm 4.34 mm Target eBrem - 4 1.91 mm 3.94 mm -2.42 m 0 eV 465 keV 273 mum 4.62 mm Target eIoni + 0 -982 mum 768 mum -2.44 m 3.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm 1.12 mm -2.44 m 722 keV 1.19 MeV 948 mum 948 mum Target eBrem + 2 -1.12 mm 1.15 mm -2.44 m 0 eV 722 keV 484 mum 1.43 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 119 +* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.9 mm 3.95 mm -2.42 m 451 keV 0 eV 0 fm 0 fm Target initStep - 1 2.49 mm 4.42 mm -2.42 m 0 eV 88 keV 754 mum 754 mum Target phot + 0 -1.14 mm 1.12 mm -2.44 m 1.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 450 mum 3.47 mm -2.44 m 658 keV 0 eV 3.46 mm 3.46 mm Target compt + 2 1.47 mm 3.09 mm -2.45 m 0 eV 88 keV 8.36 mm 1.18 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 132 +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 34 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.49 mm 4.42 mm -2.42 m 363 keV 0 eV 0 fm 0 fm Target initStep - 1 2.5 mm 4.42 mm -2.42 m 0 eV 363 keV 195 mum 195 mum Target eIoni + 0 1.47 mm 3.09 mm -2.45 m 570 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 mm 3.1 mm -2.45 m 0 eV 570 keV 358 mum 358 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 119 +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 34 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.9 mm 3.98 mm -2.42 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep - 1 2 cm -1.43 cm -2.42 m 933 keV 0 eV 2.57 cm 2.57 cm Target compt - 2 2.07 cm -1.48 cm -2.42 m 0 eV 88 keV 939 mum 2.67 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.07 cm -1.48 cm -2.42 m 845 keV 0 eV 0 fm 0 fm Target initStep - 1 2.07 cm -1.49 cm -2.42 m 2.22e-10 eV 845 keV 587 mum 587 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2 cm -1.43 cm -2.42 m 207 keV 0 eV 0 fm 0 fm Target initStep - 1 2 cm -1.43 cm -2.42 m 0 eV 207 keV 85.6 mum 85.6 mum Target eIoni + 0 450 mum 3.47 mm -2.44 m 713 keV 0 eV 0 fm 0 fm Target initStep + 1 468 mum 3.5 mm -2.44 m 0 eV 713 keV 478 mum 478 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -294 mum 228 mum -2.44 m 4.86 MeV 0 eV 0 fm 0 fm Target initStep - 1 -284 mum 252 mum -2.44 m 0 eV 0 eV 231 mum 231 mum Target conv + 0 -464 mum -18.2 mum -2.44 m 881 keV 0 eV 0 fm 0 fm Target initStep + 1 -996 mum 252 mum -2.44 m 0 eV 88 keV 2.21 mm 2.21 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 137, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -284 mum 252 mum -2.44 m 332 keV 0 eV 0 fm 0 fm Target initStep - 1 -270 mum 261 mum -2.44 m 0 eV 332 keV 169 mum 169 mum Target eIoni - 2 -270 mum 261 mum -2.44 m 0 eV 0 eV 0 fm 169 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 139, Parent ID = 137 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -270 mum 261 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 367 mum -1.16 mm -2.44 m 0 eV 88 keV 1.56 mm 1.56 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 367 mum -1.16 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 369 mum -1.18 mm -2.44 m 5.55e-11 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 137 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -270 mum 261 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -978 mum 1.85 mm -2.44 m 202 keV 0 eV 1.74 mm 1.74 mm Target compt - 2 -63.6 mum 1.72 mm -2.44 m 0 eV 88 keV 923 mum 2.66 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 138 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -63.6 mum 1.72 mm -2.44 m 114 keV 0 eV 0 fm 0 fm Target initStep - 1 -63.3 mum 1.72 mm -2.44 m 0 eV 114 keV 34 mum 34 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 138 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -978 mum 1.85 mm -2.44 m 309 keV 0 eV 0 fm 0 fm Target initStep - 1 -985 mum 1.86 mm -2.44 m 0 eV 309 keV 155 mum 155 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 13 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -284 mum 252 mum -2.44 m 3.51 MeV 0 eV 0 fm 0 fm Target initStep - 1 52.5 mum 562 mum -2.44 m 921 keV 1.94 MeV 1.72 mm 1.72 mm Target eBrem - 2 130 nm 559 mum -2.44 m 3.33e-10 eV 921 keV 652 mum 2.37 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 136 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 52.5 mum 562 mum -2.44 m 644 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.11 mm -529 mum -2.44 m 642 keV 0 eV 2.85 mm 2.85 mm Target compt - 2 -4.86 mm -1.75 mm -2.44 m 0 eV 88 keV 3.47 mm 6.32 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 143 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.86 mm -1.75 mm -2.44 m 554 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.88 mm -1.75 mm -2.44 m 0 eV 554 keV 345 mum 345 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 143 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.11 mm -529 mum -2.44 m 1.42 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.11 mm -529 mum -2.44 m 4.16e-11 eV 1.42 keV 45.4 nm 45.4 nm Target eIoni + 0 -996 mum 252 mum -2.44 m 793 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.01 mm 264 mum -2.44 m 0 eV 793 keV 545 mum 545 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -361 mum 124 mum -2.44 m 376 keV 0 eV 0 fm 0 fm Target initStep - 1 -231 mum 360 mum -2.44 m 0 eV 88 keV 1.91 mm 1.91 mm Target phot + 0 -221 mum 15.5 mum -2.44 m 6.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.86 mm 670 mum -2.44 m 5.92 MeV 0 eV 8.9 mm 8.9 mm Target compt + 2 -3.83 mm 1.64 mm -2.42 m 0 eV 0 eV 1.54 cm 2.43 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 12 +* G4Track Information: Particle = e+, Track ID = 40, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -231 mum 360 mum -2.44 m 288 keV 0 eV 0 fm 0 fm Target initStep - 1 -234 mum 356 mum -2.44 m 5.55e-11 eV 288 keV 140 mum 140 mum Target eIoni + 0 -3.83 mm 1.64 mm -2.42 m 3.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.97 mm 1.72 mm -2.42 m 2.7 MeV 246 keV 259 mum 259 mum Target eBrem + 2 -3.88 mm 1.5 mm -2.42 m 1.37 MeV 611 keV 712 mum 972 mum Target eBrem + 3 -3.79 mm 1.43 mm -2.42 m 364 keV 155 keV 134 mum 1.11 mm Target eBrem + 4 -3.79 mm 1.42 mm -2.42 m 0 eV 364 keV 193 mum 1.3 mm Target eIoni + 5 -3.79 mm 1.42 mm -2.42 m 0 eV 0 eV 0 fm 1.3 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 40 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.79 mm 1.42 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.12 mm 771 mum -2.42 m 0 eV 88 keV 1.38 mm 1.38 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 45 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.12 mm 771 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.11 mm 769 mum -2.42 m 5.55e-11 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 40 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.79 mm 1.42 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.05 mm 2.64 mm -2.42 m 0 eV 88 keV 2.63 mm 2.63 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 44 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.05 mm 2.64 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.06 mm 2.64 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 40 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.79 mm 1.43 mm -2.42 m 852 keV 0 eV 0 fm 0 fm Target initStep + 1 -65 mum 1.5 mm -2.42 m 596 keV 0 eV 3.73 mm 3.73 mm Target compt + 2 2.19 cm -1.74 cm -2.42 m 253 keV 0 eV 2.92 cm 3.29 cm Target compt + 3 2.18 cm -1.74 cm -2.42 m 0 eV 88 keV 52.4 mum 3.3 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 43 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.18 cm -1.74 cm -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 2.18 cm -1.74 cm -2.42 m 2.78e-11 eV 165 keV 61 mum 61 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 43 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.19 cm -1.74 cm -2.42 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 2.19 cm -1.74 cm -2.42 m 0 eV 343 keV 180 mum 180 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 43 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -65 mum 1.5 mm -2.42 m 255 keV 0 eV 0 fm 0 fm Target initStep + 1 -59.1 mum 1.51 mm -2.42 m 1.11e-10 eV 255 keV 117 mum 117 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 40 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.88 mm 1.5 mm -2.42 m 721 keV 0 eV 0 fm 0 fm Target initStep + 1 1.53 mm -1.33 cm -2.41 m 0 eV 88 keV 1.65 cm 1.65 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 42 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.53 mm -1.33 cm -2.41 m 633 keV 0 eV 0 fm 0 fm Target initStep + 1 1.53 mm -1.33 cm -2.41 m 1.11e-10 eV 633 keV 411 mum 411 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 40 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.97 mm 1.72 mm -2.42 m 569 keV 0 eV 0 fm 0 fm Target initStep + 1 -306 mum 8.94 mm -2.4 m 569 keV 0 eV 2.14 cm 2.14 cm Target Transportation + 2 29.5 cm 59.2 cm -80 cm 569 keV 0 eV 1.73 m 1.75 m Tracker Transportation + 3 33.2 cm 66.4 cm -60 cm 569 keV 0 eV 21.6 cm 1.97 m Chamber Transportation + 4 44.3 cm 88.3 cm 0 fm 569 keV 0 eV 64.8 cm 2.61 m Tracker Transportation + 5 48 cm 95.6 cm 20 cm 569 keV 0 eV 21.6 cm 2.83 m Chamber Transportation + 6 59.1 cm 1.17 m 80 cm 569 keV 0 eV 64.8 cm 3.48 m Tracker Transportation + 7 62.8 cm 1.25 m 1 m 569 keV 0 eV 21.6 cm 3.69 m Chamber Transportation + 8 73.9 cm 1.47 m 1.6 m 569 keV 0 eV 64.8 cm 4.34 m Tracker Transportation + 9 77.6 cm 1.54 m 1.8 m 569 keV 0 eV 21.6 cm 4.56 m Chamber Transportation + 10 88.6 cm 1.76 m 2.4 m 569 keV 0 eV 64.8 cm 5.21 m Tracker Transportation + 11 98.1 cm 1.94 m 2.91 m 569 keV 0 eV 55.1 cm 5.76 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.83 mm 1.64 mm -2.42 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.82 mm 1.69 mm -2.42 m 241 keV 1.14 MeV 1.04 mm 1.04 mm Target eIoni + 2 -3.82 mm 1.68 mm -2.42 m 2.78e-11 eV 241 keV 108 mum 1.15 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.86 mm 670 mum -2.44 m 116 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.86 mm 670 mum -2.44 m 2.5e-10 eV 116 keV 35 mum 35 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -371 mum 118 mum -2.44 m 5.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 785 mum 465 mum -2.43 m 0 eV 0 eV 1.47 cm 1.47 cm Target conv + 0 -209 mum 23.7 mum -2.44 m 505 keV 0 eV 0 fm 0 fm Target initStep + 1 -419 mum -102 mum -2.44 m 449 keV 0 eV 1.66 mm 1.66 mm Target compt + 2 -302 mum -141 mum -2.44 m 323 keV 0 eV 320 mum 1.98 mm Target compt + 3 -894 mum 1.93 mm -2.44 m 0 eV 88 keV 3.29 mm 5.27 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 148, Parent ID = 11 +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 785 mum 465 mum -2.43 m 2.05 MeV 0 eV 0 fm 0 fm Target initStep - 1 690 mum 671 mum -2.43 m 453 keV 1.6 MeV 1.44 mm 1.44 mm Target eIoni - 2 680 mum 695 mum -2.43 m 5.55e-11 eV 453 keV 263 mum 1.7 mm Target eIoni - 3 680 mum 695 mum -2.43 m 5.55e-11 eV 0 eV 0 fm 1.7 mm Target annihil + 0 -894 mum 1.93 mm -2.44 m 235 keV 0 eV 0 fm 0 fm Target initStep + 1 -895 mum 1.93 mm -2.44 m 1.11e-10 eV 235 keV 104 mum 104 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 150, Parent ID = 148 +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 680 mum 695 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 192 mum 6.76 mm -2.43 m 351 keV 0 eV 7.52 mm 7.52 mm Target compt - 2 3.06 mm 8.45 mm -2.44 m 0 eV 88 keV 3.58 mm 1.11 cm Target phot + 0 -302 mum -141 mum -2.44 m 126 keV 0 eV 0 fm 0 fm Target initStep + 1 -300 mum -143 mum -2.44 m 2.78e-11 eV 126 keV 40 mum 40 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 150 +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.06 mm 8.45 mm -2.44 m 263 keV 0 eV 0 fm 0 fm Target initStep - 1 3.06 mm 8.46 mm -2.44 m 0 eV 263 keV 122 mum 122 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 150 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 192 mum 6.76 mm -2.43 m 160 keV 0 eV 0 fm 0 fm Target initStep - 1 189 mum 6.76 mm -2.43 m 0 eV 160 keV 57.7 mum 57.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 148 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 680 mum 695 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.8 mm -1.33 cm -2.42 m 172 keV 0 eV 1.73 cm 1.73 cm Target compt - 2 1.8 mm -1.33 cm -2.42 m 0 eV 88 keV 10.7 mum 1.73 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 149 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.8 mm -1.33 cm -2.42 m 83.9 keV 0 eV 0 fm 0 fm Target initStep - 1 1.8 mm -1.33 cm -2.42 m 2.78e-11 eV 83.9 keV 20.7 mum 20.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 149 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.8 mm -1.33 cm -2.42 m 339 keV 0 eV 0 fm 0 fm Target initStep - 1 1.8 mm -1.33 cm -2.42 m 0 eV 339 keV 176 mum 176 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 11 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 785 mum 465 mum -2.43 m 2.72 MeV 0 eV 0 fm 0 fm Target initStep - 1 797 mum 476 mum -2.43 m 1.11 MeV 31.5 keV 36.1 mum 36.1 mum Target eBrem - 2 825 mum 484 mum -2.43 m 0 eV 1.11 MeV 814 mum 850 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 147 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 797 mum 476 mum -2.43 m 1.58 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.59 mm 546 mum -2.43 m 0 eV 88 keV 1.52 mm 1.52 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 155 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.59 mm 546 mum -2.43 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.68 mm 446 mum -2.43 m 932 keV 251 keV 236 mum 236 mum Target eBrem - 2 1.68 mm 501 mum -2.43 m 4.44e-10 eV 932 keV 662 mum 898 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 156 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.68 mm 446 mum -2.43 m 307 keV 0 eV 0 fm 0 fm Target initStep - 1 1.66 mm 778 mum -2.43 m 297 keV 0 eV 333 mum 333 mum Target compt - 2 616 mum 3.96 mm -2.43 m 295 keV 0 eV 3.46 mm 3.79 mm Target compt - 3 -109 mum 8.02 mm -2.43 m 0 eV 88 keV 4.21 mm 7.99 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 157 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -109 mum 8.02 mm -2.43 m 207 keV 0 eV 0 fm 0 fm Target initStep - 1 -113 mum 8.02 mm -2.43 m 2.78e-11 eV 207 keV 85.8 mum 85.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 157 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 616 mum 3.96 mm -2.43 m 1.82 keV 0 eV 0 fm 0 fm Target initStep - 1 616 mum 3.96 mm -2.43 m 0 eV 1.82 keV 63.8 nm 63.8 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 157 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.66 mm 778 mum -2.43 m 10.1 keV 0 eV 0 fm 0 fm Target initStep - 1 1.66 mm 778 mum -2.43 m 1.73e-11 eV 10.1 keV 702 nm 702 nm Target eIoni + 0 -419 mum -102 mum -2.44 m 55.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -420 mum -102 mum -2.44 m 2.08e-11 eV 55.3 keV 10.5 mum 10.5 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -407 mum 134 mum -2.45 m 15 MeV 0 eV 0 fm 0 fm Target initStep - 1 579 mum -136 mum -2.43 m 1.84 MeV 0 eV 1.41 cm 1.41 cm Target compt - 2 6.44 mm -497 mum -2.43 m 1.02 MeV 0 eV 8.32 mm 2.24 cm Target compt - 3 1.82 cm -3.56 mm -2.42 m 991 keV 0 eV 1.22 cm 3.46 cm Target compt - 4 2.5 cm -4.25 mm -2.42 m 991 keV 0 eV 6.89 mm 4.15 cm Target Transportation - 5 39.8 cm -4.19 cm -2.4 m 991 keV 0 eV 37.6 cm 41.8 cm World Transportation - 6 2.4 m -24.4 cm -2.28 m 991 keV 0 eV 2.02 m 2.43 m Tracker Transportation - 7 2.91 m -29.5 cm -2.24 m 991 keV 0 eV 51.4 cm 2.95 m OutOfWorld Transportation + 0 56.4 mum 302 mum -2.45 m 40.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -152 mum 520 mum -2.44 m 0 eV 0 eV 8.25 mm 8.25 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 10 +* G4Track Information: Particle = e+, Track ID = 56, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.82 cm -3.56 mm -2.42 m 27.4 keV 0 eV 0 fm 0 fm Target initStep - 1 1.82 cm -3.56 mm -2.42 m 2.43e-11 eV 27.4 keV 3.35 mum 3.35 mum Target eIoni + 0 -152 mum 520 mum -2.44 m 8.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 -206 mum 457 mum -2.44 m 7.41 MeV 306 keV 307 mum 307 mum Target eBrem + 2 -214 mum 443 mum -2.44 m 3.83 MeV 229 keV 62 mum 369 mum Target eBrem + 3 -695 mum 714 mum -2.44 m 1.29 MeV 2.03 MeV 1.78 mm 2.15 mm Target eBrem + 4 -581 mum 673 mum -2.44 m 0 eV 1.29 MeV 987 mum 3.13 mm Target eIoni + 5 -581 mum 673 mum -2.44 m 0 eV 0 eV 0 fm 3.13 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 10 +* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.44 mm -497 mum -2.43 m 825 keV 0 eV 0 fm 0 fm Target initStep - 1 6.45 mm -491 mum -2.43 m 0 eV 825 keV 571 mum 571 mum Target eIoni + 0 -581 mum 673 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 219 mum 496 mum -2.43 m 186 keV 0 eV 2.75 mm 2.75 mm Target compt + 2 786 mum 594 mum -2.44 m 0 eV 88 keV 1.37 mm 4.13 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 10 +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 61 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 579 mum -136 mum -2.43 m 13.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 334 mum -513 mum -2.43 m 10.3 MeV 1.35 MeV 1.16 mm 1.16 mm Target eBrem - 2 218 mum -664 mum -2.43 m 9.09 MeV 336 keV 349 mum 1.51 mm Target eBrem - 3 217 mum -1.72 mm -2.43 m 5.61 MeV 3.48 MeV 2.85 mm 4.36 mm Target eIoni - 4 239 nm -1.86 mm -2.43 m 5.04 MeV 229 keV 274 mum 4.64 mm Target eBrem - 5 -18.7 mum -1.78 mm -2.43 m 3.61 MeV 628 keV 515 mum 5.15 mm Target eBrem - 6 -17.1 mum -1.78 mm -2.43 m 3.18 MeV 989 eV 3.32 mum 5.15 mm Target eBrem - 7 93.5 mum -1.92 mm -2.43 m 1.72 MeV 625 keV 268 mum 5.42 mm Target eBrem - 8 94.1 mum -2.03 mm -2.43 m 0 eV 1.72 MeV 1.26 mm 6.68 mm Target eIoni + 0 786 mum 594 mum -2.44 m 97.7 keV 0 eV 0 fm 0 fm Target initStep + 1 786 mum 594 mum -2.44 m 0 eV 97.7 keV 26.6 mum 26.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 161 +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 61 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 93.5 mum -1.92 mm -2.43 m 830 keV 0 eV 0 fm 0 fm Target initStep - 1 -366 mum -5.38 mm -2.42 m 829 keV 0 eV 4.73 mm 4.73 mm Target compt - 2 -1.18 mm -1.09 cm -2.42 m 714 keV 0 eV 7.69 mm 1.24 cm Target compt - 3 -2.6 mm -1.25 cm -2.42 m 396 keV 0 eV 2.71 mm 1.51 cm Target compt - 4 -7.87 mm -1.15 cm -2.42 m 286 keV 0 eV 5.35 mm 2.05 cm Target compt - 5 -8.15 mm -1.13 cm -2.42 m 260 keV 0 eV 646 mum 2.11 cm Target compt - 6 -8.07 mm -1.04 cm -2.42 m 0 eV 88 keV 1.22 mm 2.23 cm Target phot + 0 219 mum 496 mum -2.43 m 325 keV 0 eV 0 fm 0 fm Target initStep + 1 220 mum 495 mum -2.43 m 0 eV 325 keV 167 mum 167 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 60, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.07 mm -1.04 cm -2.42 m 172 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.07 mm -1.04 cm -2.42 m 1.11e-10 eV 172 keV 64.7 mum 64.7 mum Target eIoni + 0 -581 mum 673 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.62 mm 1.56 mm -2.45 m 511 keV 0 eV 1.39 cm 1.39 cm Target Transportation + 2 -14.5 cm 3.24 cm -2.91 m 511 keV 0 eV 48.2 cm 49.6 cm OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 59, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.15 mm -1.13 cm -2.42 m 25.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.15 mm -1.13 cm -2.42 m 0 eV 25.8 keV 3.04 mum 3.04 mum Target eIoni + 0 -695 mum 714 mum -2.44 m 510 keV 0 eV 0 fm 0 fm Target initStep + 1 6.45 mm -1.95 mm -2.44 m 0 eV 88 keV 8.45 mm 8.45 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 169 +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 59 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.87 mm -1.15 cm -2.42 m 110 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.87 mm -1.15 cm -2.42 m 1.39e-11 eV 110 keV 31.9 mum 31.9 mum Target eIoni + 0 6.45 mm -1.95 mm -2.44 m 422 keV 0 eV 0 fm 0 fm Target initStep + 1 6.45 mm -1.97 mm -2.44 m 1.11e-10 eV 422 keV 240 mum 240 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 58, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.6 mm -1.25 cm -2.42 m 318 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.6 mm -1.25 cm -2.42 m 0 eV 318 keV 161 mum 161 mum Target eIoni + 0 -214 mum 443 mum -2.44 m 3.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.82 mm -7.74 mm -2.42 m 0 eV 0 eV 2.28 cm 2.28 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 169 +* G4Track Information: Particle = e+, Track ID = 66, Parent ID = 58 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 mm -1.09 cm -2.42 m 115 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.18 mm -1.09 cm -2.42 m 0 eV 115 keV 34.6 mum 34.6 mum Target eIoni + 0 -3.82 mm -7.74 mm -2.42 m 838 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.83 mm -7.77 mm -2.42 m 1.11e-10 eV 838 keV 591 mum 591 mum Target eIoni + 2 -3.83 mm -7.77 mm -2.42 m 1.11e-10 eV 0 eV 0 fm 591 mum Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 169 +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 66 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -366 mum -5.38 mm -2.42 m 326 eV 0 eV 0 fm 0 fm Target initStep - 1 -366 mum -5.38 mm -2.42 m 0 eV 326 eV 9.02 nm 9.02 nm Target eIoni + 0 -3.83 mm -7.77 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 cm -1.15 cm -2.4 m 511 keV 0 eV 1.94 cm 1.94 cm Target Transportation + 2 -2.4 m -91.8 cm 1.53 m 511 keV 0 eV 4.69 m 4.7 m Tracker Transportation + 3 -2.91 m -1.11 m 2.37 m 511 keV 0 eV 1 m 5.71 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 161 +* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 66 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -17.1 mum -1.78 mm -2.43 m 438 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 mm -4.32 mm -2.43 m 384 keV 0 eV 3.58 mm 3.58 mm Target compt - 2 1.32 mm -5.87 mm -2.43 m 0 eV 88 keV 1.7 mm 5.28 mm Target phot + 0 -3.83 mm -7.77 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 mm -6.76 mm -2.42 m 182 keV 0 eV 5.22 mm 5.22 mm Target compt + 2 -1.19 mm -6.94 mm -2.42 m 0 eV 88 keV 294 mum 5.52 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 168 +* G4Track Information: Particle = e-, Track ID = 70, Parent ID = 67 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.32 mm -5.87 mm -2.43 m 296 keV 0 eV 0 fm 0 fm Target initStep - 1 1.31 mm -5.87 mm -2.43 m 5.55e-11 eV 296 keV 146 mum 146 mum Target eIoni + 0 -1.19 mm -6.94 mm -2.42 m 93.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.19 mm -6.94 mm -2.42 m 0 eV 93.5 keV 24.7 mum 24.7 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 168 +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 67 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.47 mm -4.32 mm -2.43 m 53.2 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 mm -4.32 mm -2.43 m 0 eV 53.2 keV 9.85 mum 9.85 mum Target eIoni + 0 -1.17 mm -6.76 mm -2.42 m 329 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.16 mm -6.75 mm -2.42 m 5.55e-11 eV 329 keV 170 mum 170 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 167, Parent ID = 161 +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 58 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -18.7 mum -1.78 mm -2.43 m 797 keV 0 eV 0 fm 0 fm Target initStep - 1 484 mum -2.32 mm -2.43 m 316 keV 0 eV 920 mum 920 mum Target compt - 2 1.25 mm 803 mum -2.43 m 194 keV 0 eV 4.06 mm 4.98 mm Target compt - 3 2.56 mm 957 mum -2.43 m 0 eV 88 keV 1.46 mm 6.44 mm Target phot + 0 -3.82 mm -7.74 mm -2.42 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.85 mm -7.79 mm -2.42 m 2.22e-10 eV 1.48 MeV 1.12 mm 1.12 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 167 +* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.56 mm 957 mum -2.43 m 106 keV 0 eV 0 fm 0 fm Target initStep - 1 2.56 mm 959 mum -2.43 m 0 eV 106 keV 30.2 mum 30.2 mum Target eIoni + 0 -206 mum 457 mum -2.44 m 319 keV 0 eV 0 fm 0 fm Target initStep + 1 -271 mum 420 mum -2.44 m 0 eV 88 keV 755 mum 755 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 167 +* G4Track Information: Particle = e-, Track ID = 71, Parent ID = 57 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.25 mm 803 mum -2.43 m 122 keV 0 eV 0 fm 0 fm Target initStep - 1 1.25 mm 804 mum -2.43 m 0 eV 122 keV 37.6 mum 37.6 mum Target eIoni + 0 -271 mum 420 mum -2.44 m 231 keV 0 eV 0 fm 0 fm Target initStep + 1 -270 mum 424 mum -2.44 m 0 eV 231 keV 101 mum 101 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 167 +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 484 mum -2.32 mm -2.43 m 481 keV 0 eV 0 fm 0 fm Target initStep - 1 494 mum -2.34 mm -2.43 m 0 eV 481 keV 286 mum 286 mum Target eIoni + 0 -152 mum 520 mum -2.44 m 31.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -127 mum 548 mum -2.44 m 29.3 MeV 518 keV 425 mum 425 mum Target eBrem + 2 -126 mum 542 mum -2.44 m 27.1 MeV 55.6 keV 47.3 mum 472 mum Target eBrem + 3 -119 mum 535 mum -2.44 m 26.4 MeV 459 keV 329 mum 801 mum Target eBrem + 4 -119 mum 525 mum -2.44 m 25.9 MeV 110 keV 105 mum 907 mum Target eBrem + 5 -150 mum 510 mum -2.44 m 21.2 MeV 363 keV 341 mum 1.25 mm Target eBrem + 6 -245 mum 1.71 mm -2.43 m 15 MeV 6.22 MeV 4.55 mm 5.8 mm Target eIoni + 7 -170 mum 1.75 mm -2.43 m 10.5 MeV 313 keV 314 mum 6.11 mm Target eBrem + 8 25.7 mum 2.81 mm -2.43 m 4.78 MeV 5.76 MeV 3.07 mm 9.19 mm Target eIoni + 9 -498 mum 2.74 mm -2.43 m 3.74 MeV 688 keV 672 mum 9.86 mm Target eBrem + 10 -447 mum 3.46 mm -2.43 m 1.73 MeV 2.01 MeV 1.92 mm 1.18 cm Target eIoni + 11 -678 mum 3.48 mm -2.43 m 951 keV 456 keV 525 mum 1.23 cm Target eBrem + 12 -605 mum 3.5 mm -2.43 m 349 keV 187 keV 180 mum 1.25 cm Target eBrem + 13 -610 mum 3.49 mm -2.43 m 0 eV 349 keV 184 mum 1.27 cm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 166, Parent ID = 161 +* G4Track Information: Particle = gamma, Track ID = 80, Parent ID = 55 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 239 nm -1.86 mm -2.43 m 341 keV 0 eV 0 fm 0 fm Target initStep - 1 363 mum -2.25 mm -2.43 m 0 eV 88 keV 1.44 mm 1.44 mm Target phot + 0 -605 mum 3.5 mm -2.43 m 415 keV 0 eV 0 fm 0 fm Target initStep + 1 -495 mum 4.06 mm -2.43 m 0 eV 88 keV 574 mum 574 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 166 +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 80 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 363 mum -2.25 mm -2.43 m 253 keV 0 eV 0 fm 0 fm Target initStep - 1 363 mum -2.25 mm -2.43 m 5.55e-11 eV 253 keV 115 mum 115 mum Target eIoni + 0 -495 mum 4.06 mm -2.43 m 327 keV 0 eV 0 fm 0 fm Target initStep + 1 -505 mum 4.06 mm -2.43 m 0 eV 327 keV 168 mum 168 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 161 +* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 55 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 218 mum -664 mum -2.43 m 915 keV 0 eV 0 fm 0 fm Target initStep - 1 -340 mum -1.27 mm -2.43 m 0 eV 88 keV 913 mum 913 mum Target phot + 0 -678 mum 3.48 mm -2.43 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 3.58 mm 5 mm -2.43 m 315 keV 0 eV 5 mm 5 mm Target compt + 2 5.79 mm 5.34 mm -2.43 m 0 eV 88 keV 2.87 mm 7.87 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 165 +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 79 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -340 mum -1.27 mm -2.43 m 827 keV 0 eV 0 fm 0 fm Target initStep - 1 -359 mum -1.29 mm -2.43 m 0 eV 827 keV 572 mum 572 mum Target eIoni + 0 5.79 mm 5.34 mm -2.43 m 227 keV 0 eV 0 fm 0 fm Target initStep + 1 5.8 mm 5.35 mm -2.43 m 8.33e-11 eV 227 keV 98.9 mum 98.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 161 +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 79 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 334 mum -513 mum -2.43 m 1.44 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.18 cm -5.12 mm -2.41 m 226 keV 0 eV 2.77 cm 2.77 cm Target compt - 2 -1.12 cm -4.29 mm -2.41 m 0 eV 88 keV 1.47 mm 2.92 cm Target phot + 0 3.58 mm 5 mm -2.43 m 8.26 keV 0 eV 0 fm 0 fm Target initStep + 1 3.58 mm 5 mm -2.43 m 1.56e-11 eV 8.26 keV 527 nm 527 nm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 164 +* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 55 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.12 cm -4.29 mm -2.41 m 138 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.12 cm -4.29 mm -2.41 m 0 eV 138 keV 45.9 mum 45.9 mum Target eIoni + 0 -498 mum 2.74 mm -2.43 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 mm 3.66 mm -2.43 m 0 eV 88 keV 1.37 mm 1.37 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 164 +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 78 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 cm -5.12 mm -2.41 m 1.21 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.18 cm -5.07 mm -2.41 m 179 keV 200 keV 145 mum 145 mum Target eBrem - 2 -1.18 cm -5.07 mm -2.41 m 0 eV 179 keV 68.8 mum 214 mum Target eIoni + 0 -1.05 mm 3.66 mm -2.43 m 264 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 mm 3.66 mm -2.43 m 0 eV 264 keV 123 mum 123 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 185, Parent ID = 183 +* G4Track Information: Particle = gamma, Track ID = 77, Parent ID = 55 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.18 cm -5.07 mm -2.41 m 831 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm -8.48 mm -2.42 m 831 keV 0 eV 1.67 cm 1.67 cm Target Transportation - 2 -69.4 cm -18.2 cm -2.91 m 831 keV 0 eV 85 cm 86.7 cm OutOfWorld Transportation + 0 -170 mum 1.75 mm -2.43 m 4.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 21.1 mum 1.84 mm -2.43 m 1.02 MeV 0 eV 428 mum 428 mum Target compt + 2 -7.86 mm 1.36 cm -2.41 m 530 keV 0 eV 2.23 cm 2.28 cm Target compt + 3 -1.34 cm 2.35 cm -2.42 m 0 eV 88 keV 1.14 cm 3.41 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 77 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.34 cm 2.35 cm -2.42 m 442 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.34 cm 2.35 cm -2.42 m 5.55e-11 eV 442 keV 256 mum 256 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 77 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.86 mm 1.36 cm -2.41 m 488 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.86 mm 1.36 cm -2.41 m 0 eV 488 keV 292 mum 292 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 77 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 21.1 mum 1.84 mm -2.43 m 3.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 589 mum 1.91 mm -2.43 m 526 keV 1.54 MeV 1.47 mm 1.47 mm Target eBrem + 2 577 mum 1.93 mm -2.43 m 0 eV 526 keV 322 mum 1.79 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 88, Parent ID = 85 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 589 mum 1.91 mm -2.43 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.62 mm 1.92 mm -2.45 m 0 eV 88 keV 1.88 cm 1.88 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 88 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.62 mm 1.92 mm -2.45 m 947 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.66 mm 1.96 mm -2.45 m 0 eV 947 keV 675 mum 675 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 76, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -150 mum 510 mum -2.44 m 4.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -325 mum -3.5 mm -2.41 m 0 eV 0 eV 2.61 cm 2.61 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 91, Parent ID = 76 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -325 mum -3.5 mm -2.41 m 2.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 -251 mum -3.55 mm -2.41 m 158 keV 2.09 MeV 1.52 mm 1.52 mm Target eIoni + 2 -253 mum -3.56 mm -2.41 m 0 eV 158 keV 53.7 mum 1.57 mm Target eIoni + 3 -253 mum -3.56 mm -2.41 m 0 eV 0 eV 0 fm 1.57 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 91 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -253 mum -3.56 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -826 mum -1.25 cm -2.41 m 0 eV 88 keV 9.35 mm 9.35 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 93 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -826 mum -1.25 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -827 mum -1.25 cm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 91 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -253 mum -3.56 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -234 mum -3.26 mm -2.41 m 491 keV 0 eV 314 mum 314 mum Target compt + 2 -1.97 mm 1.2 cm -2.41 m 254 keV 0 eV 1.54 cm 1.57 cm Target compt + 3 -2.44 mm 1.2 cm -2.41 m 0 eV 88 keV 485 mum 1.62 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 92 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 mm 1.2 cm -2.41 m 166 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 mm 1.2 cm -2.41 m 0 eV 166 keV 61.2 mum 61.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 92 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.97 mm 1.2 cm -2.41 m 238 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.96 mm 1.2 cm -2.41 m 0 eV 238 keV 106 mum 106 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 92 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -234 mum -3.26 mm -2.41 m 19.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -234 mum -3.26 mm -2.41 m 0 eV 19.6 keV 1.97 mum 1.97 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 76 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -325 mum -3.5 mm -2.41 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 -312 mum -3.51 mm -2.41 m 0 eV 1.07 MeV 779 mum 779 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum 525 mum -2.44 m 365 keV 0 eV 0 fm 0 fm Target initStep + 1 -129 mum 392 mum -2.43 m 199 keV 0 eV 2.2 mm 2.2 mm Target compt + 2 -23.4 mum 519 mum -2.43 m 0 eV 88 keV 166 mum 2.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 75 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -23.4 mum 519 mum -2.43 m 111 keV 0 eV 0 fm 0 fm Target initStep + 1 -23 mum 520 mum -2.43 m 1.39e-11 eV 111 keV 32.5 mum 32.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 75 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -129 mum 392 mum -2.43 m 166 keV 0 eV 0 fm 0 fm Target initStep + 1 -131 mum 391 mum -2.43 m 0 eV 166 keV 61.3 mum 61.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum 535 mum -2.44 m 307 keV 0 eV 0 fm 0 fm Target initStep + 1 -12.3 mum 426 mum -2.44 m 0 eV 88 keV 1.61 mm 1.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 74 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -12.3 mum 426 mum -2.44 m 219 keV 0 eV 0 fm 0 fm Target initStep + 1 -10.6 mum 427 mum -2.44 m 2.78e-11 eV 219 keV 93.5 mum 93.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -126 mum 542 mum -2.44 m 2.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 -511 mum -734 mum -2.43 m 0 eV 0 eV 1.11 cm 1.11 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 102, Parent ID = 73 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -511 mum -734 mum -2.43 m 717 keV 0 eV 0 fm 0 fm Target initStep + 1 -530 mum -756 mum -2.43 m 1.11e-10 eV 717 keV 486 mum 486 mum Target eIoni + 2 -530 mum -756 mum -2.43 m 1.11e-10 eV 0 eV 0 fm 486 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -530 mum -756 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.71 mm -2.23 mm -2.41 m 251 keV 0 eV 1.23 cm 1.23 cm Target compt + 2 -910 mum -1.69 mm -2.41 m 0 eV 88 keV 970 mum 1.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 104 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -910 mum -1.69 mm -2.41 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 -910 mum -1.68 mm -2.41 m 2.78e-11 eV 163 keV 59.8 mum 59.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 104 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.71 mm -2.23 mm -2.41 m 260 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.71 mm -2.23 mm -2.41 m 0 eV 260 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -530 mum -756 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -25.9 mum -126 mum -2.43 m 0 eV 88 keV 5.27 mm 5.27 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 103 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -25.9 mum -126 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -36 mum -123 mum -2.43 m 5.55e-11 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 73 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -511 mum -734 mum -2.43 m 355 keV 0 eV 0 fm 0 fm Target initStep + 1 -506 mum -731 mum -2.43 m 0 eV 355 keV 189 mum 189 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -127 mum 548 mum -2.44 m 1.78 MeV 0 eV 0 fm 0 fm Target initStep + 1 60.6 mum -3.97 mm -2.4 m 1.78 MeV 0 eV 3.75 cm 3.75 cm Target Transportation + 2 4.08 mm -10.1 cm -1.6 m 1.78 MeV 0 eV 80.6 cm 84.3 cm Tracker Transportation + 3 5.09 mm -12.5 cm -1.4 m 1.78 MeV 0 eV 20.1 cm 1.04 m Chamber Transportation + 4 8.11 mm -19.8 cm -80 cm 1.78 MeV 0 eV 60.4 cm 1.65 m Tracker Transportation + 5 9.11 mm -22.2 cm -60 cm 1.78 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation + 6 1.21 cm -29.5 cm 0 fm 1.78 MeV 0 eV 60.4 cm 2.46 m Tracker Transportation + 7 1.31 cm -31.9 cm 20 cm 1.78 MeV 0 eV 20.1 cm 2.66 m Chamber Transportation + 8 1.62 cm -39.2 cm 80 cm 1.78 MeV 0 eV 60.4 cm 3.26 m Tracker Transportation + 9 1.72 cm -41.6 cm 1 m 1.78 MeV 0 eV 20.1 cm 3.46 m Chamber Transportation + 10 2.02 cm -48.9 cm 1.6 m 1.78 MeV 0 eV 60.4 cm 4.07 m Tracker Transportation + 11 2.12 cm -51.3 cm 1.8 m 1.78 MeV 0 eV 20.1 cm 4.27 m Chamber Transportation + 12 2.42 cm -58.6 cm 2.4 m 1.78 MeV 0 eV 60.4 cm 4.87 m Tracker Transportation + 13 2.68 cm -64.8 cm 2.91 m 1.78 MeV 0 eV 51.4 cm 5.39 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -433 mum 139 mum -2.45 m 765 keV 0 eV 0 fm 0 fm Target initStep - 1 1.43 mm 151 mum -2.41 m 370 keV 0 eV 3.48 cm 3.48 cm Target compt - 2 443 mum 3.99 mm -2.41 m 0 eV 88 keV 4.16 mm 3.9 cm Target phot + 0 46.2 mum 306 mum -2.45 m 306 keV 0 eV 0 fm 0 fm Target initStep + 1 -45.2 mum 263 mum -2.44 m 0 eV 88 keV 3.46 mm 3.46 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 9 +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 9 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 443 mum 3.99 mm -2.41 m 282 keV 0 eV 0 fm 0 fm Target initStep - 1 438 mum 4 mm -2.41 m 5.55e-11 eV 282 keV 135 mum 135 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.43 mm 151 mum -2.41 m 395 keV 0 eV 0 fm 0 fm Target initStep - 1 1.43 mm 143 mum -2.41 m 5.55e-11 eV 395 keV 218 mum 218 mum Target eIoni + 0 -45.2 mum 263 mum -2.44 m 218 keV 0 eV 0 fm 0 fm Target initStep + 1 -44.6 mum 265 mum -2.44 m 5.55e-11 eV 218 keV 93 mum 93 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -461 mum 134 mum -2.45 m 309 keV 0 eV 0 fm 0 fm Target initStep - 1 -402 mum 160 mum -2.44 m 0 eV 88 keV 1.06 mm 1.06 mm Target phot + 0 37.1 mum 197 mum -2.45 m 18.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 221 mum 506 mum -2.43 m 8.29 MeV 0 eV 2.21 cm 2.21 cm Target compt + 2 1.04 mm -1.41 mm -2.42 m 0 eV 0 eV 8.38 mm 3.05 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 8 +* G4Track Information: Particle = e+, Track ID = 111, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -402 mum 160 mum -2.44 m 221 keV 0 eV 0 fm 0 fm Target initStep - 1 -401 mum 157 mum -2.44 m 2.78e-11 eV 221 keV 94.7 mum 94.7 mum Target eIoni + 0 1.04 mm -1.41 mm -2.42 m 4.87 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -1.67 mm -2.42 m 3.84 MeV 517 keV 492 mum 492 mum Target eBrem + 2 1.7 mm -1.08 mm -2.42 m 2.43 MeV 920 keV 859 mum 1.35 mm Target eBrem + 3 2.04 mm -1.17 mm -2.42 m 940 keV 1.49 MeV 1.58 mm 2.93 mm Target eIoni + 4 2 mm -1.23 mm -2.42 m 2.22e-10 eV 940 keV 680 mum 3.61 mm Target eIoni + 5 2 mm -1.23 mm -2.42 m 2.22e-10 eV 0 eV 0 fm 3.61 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2 mm -1.23 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.27 mm -2.81 mm -2.41 m 0 eV 88 keV 5.16 mm 5.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.27 mm -2.81 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 6.28 mm -2.82 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2 mm -1.23 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 cm 3.41 mm -2.42 m 0 eV 88 keV 1.52 cm 1.52 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 cm 3.41 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 cm 3.41 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.7 mm -1.08 mm -2.42 m 497 keV 0 eV 0 fm 0 fm Target initStep + 1 1.54 mm -1.36 mm -2.42 m 0 eV 88 keV 817 mum 817 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 113 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.54 mm -1.36 mm -2.42 m 409 keV 0 eV 0 fm 0 fm Target initStep + 1 1.53 mm -1.37 mm -2.42 m 0 eV 409 keV 230 mum 230 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm -1.67 mm -2.42 m 512 keV 0 eV 0 fm 0 fm Target initStep + 1 1.94 mm -553 mum -2.42 m 215 keV 0 eV 1.71 mm 1.71 mm Target compt + 2 1.85 mm -585 mum -2.42 m 0 eV 88 keV 99.8 mum 1.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.85 mm -585 mum -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 1.85 mm -586 mum -2.42 m 2.78e-11 eV 127 keV 40.1 mum 40.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.94 mm -553 mum -2.42 m 298 keV 0 eV 0 fm 0 fm Target initStep + 1 1.95 mm -546 mum -2.42 m 0 eV 298 keV 147 mum 147 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 mm -1.41 mm -2.42 m 2.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm -1.08 mm -2.42 m 655 keV 1.23 MeV 1.25 mm 1.25 mm Target eBrem + 2 1.25 mm -1.06 mm -2.42 m 1.11e-10 eV 655 keV 428 mum 1.67 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -1.08 mm -2.42 m 507 keV 0 eV 0 fm 0 fm Target initStep + 1 9.78 mm 1.4 cm -2.43 m 0 eV 88 keV 1.96 cm 1.96 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 121 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.78 mm 1.4 cm -2.43 m 419 keV 0 eV 0 fm 0 fm Target initStep + 1 9.79 mm 1.4 cm -2.43 m 0 eV 419 keV 237 mum 237 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 221 mum 506 mum -2.43 m 10.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 213 mum 514 mum -2.43 m 8.42 MeV 71.2 keV 54.7 mum 54.7 mum Target eBrem + 2 -669 mum 1.47 mm -2.42 m 2.61 MeV 3.05 MeV 2.62 mm 2.68 mm Target eBrem + 3 -302 mum 1.56 mm -2.42 m 816 keV 1.79 MeV 1.62 mm 4.3 mm Target eIoni + 4 -337 mum 1.59 mm -2.42 m 1.11e-10 eV 816 keV 564 mum 4.86 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -669 mum 1.47 mm -2.42 m 2.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -2.95 mm -2.44 m 2.77 MeV 0 eV 3.08 cm 3.08 cm Target Transportation + 2 76.2 cm -13 cm -2.91 m 2.77 MeV 0 eV 88.3 cm 91.4 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 213 mum 514 mum -2.43 m 1.67 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.88 mm 3.82 mm -2.4 m 897 keV 0 eV 2.48 cm 2.48 cm Target compt + 2 1.75 mm 4.75 mm -2.4 m 897 keV 0 eV 1.24 mm 2.61 cm Target Transportation + 3 -32.7 cm 2.4 m -32.4 cm 897 keV 0 eV 3.19 m 3.21 m Tracker Transportation + 4 -39.7 cm 2.91 m 11.8 cm 897 keV 0 eV 67.8 cm 3.89 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 123 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.88 mm 3.82 mm -2.4 m 769 keV 0 eV 0 fm 0 fm Target initStep + 1 1.88 mm 3.8 mm -2.4 m 2.22e-10 eV 769 keV 524 mum 524 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -506 mum 107 mum -2.45 m 41.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.99 mm 1.08 mm -2.41 m 0 eV 0 eV 3.71 cm 3.71 cm Target conv + 0 40.8 mum 193 mum -2.45 m 985 keV 0 eV 0 fm 0 fm Target initStep + 1 63.9 mum 210 mum -2.45 m 382 keV 0 eV 1.9 mm 1.9 mm Target compt + 2 -322 mum -4.91 mm -2.44 m 0 eV 88 keV 5.23 mm 7.13 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 190, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.99 mm 1.08 mm -2.41 m 34.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.01 mm 1.15 mm -2.41 m 33.4 MeV 575 keV 544 mum 544 mum Target eBrem - 2 1.88 mm 1.02 mm -2.41 m 25.4 MeV 4.38 MeV 2.35 mm 2.89 mm Target eBrem - 3 2.61 mm 1.23 mm -2.4 m 20.5 MeV 2.63 MeV 1.96 mm 4.85 mm Target eBrem - 4 3.76 mm 1.8 mm -2.4 m 14.6 MeV 4.21 MeV 2.98 mm 7.83 mm Target eBrem - 5 3.31 mm 1.98 mm -2.4 m 11 MeV 1.03 MeV 667 mum 8.49 mm Target eBrem - 6 2.42 mm 1.57 mm -2.4 m 7.14 MeV 1.36 MeV 1.29 mm 9.78 mm Target eBrem - 7 1.73 mm 1.63 mm -2.4 m 5.14 MeV 1.63 MeV 1.23 mm 1.1 cm Target eBrem - 8 1.01 mm 2.29 mm -2.4 m 2.59 MeV 1.94 MeV 1.51 mm 1.25 cm Target eBrem - 9 961 mum 2.36 mm -2.4 m 882 keV 1.71 MeV 1.63 mm 1.42 cm Target eIoni - 10 918 mum 2.3 mm -2.4 m 1.11e-10 eV 882 keV 628 mum 1.48 cm Target eIoni - 11 918 mum 2.3 mm -2.4 m 1.11e-10 eV 0 eV 0 fm 1.48 cm Target annihil + 0 -322 mum -4.91 mm -2.44 m 294 keV 0 eV 0 fm 0 fm Target initStep + 1 -314 mum -4.91 mm -2.44 m 0 eV 294 keV 145 mum 145 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 918 mum 2.3 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -426 mum 1.63 mm -2.41 m 0 eV 88 keV 3.8 mm 3.8 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 200 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -426 mum 1.63 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -440 mum 1.64 mm -2.41 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 918 mum 2.3 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.82 mm 3.23 mm -2.4 m 511 keV 0 eV 5.36 mm 5.36 mm Target Transportation - 2 61.9 cm 30.6 cm -80 cm 511 keV 0 eV 1.74 m 1.75 m Tracker Transportation - 3 67.2 cm 33.2 cm -66.2 cm 511 keV 0 eV 15.1 cm 1.9 m Chamber Transportation - 4 92.7 cm 45.7 cm 0 fm 511 keV 0 eV 72 cm 2.62 m Tracker Transportation - 5 1 m 49.5 cm 20 cm 511 keV 0 eV 21.8 cm 2.83 m Chamber Transportation - 6 1.23 m 60.9 cm 80 cm 511 keV 0 eV 65.3 cm 3.49 m Tracker Transportation - 7 1.31 m 64.7 cm 1 m 511 keV 0 eV 21.8 cm 3.7 m Chamber Transportation - 8 1.54 m 76 cm 1.6 m 511 keV 0 eV 65.3 cm 4.36 m Tracker Transportation - 9 1.62 m 79.8 cm 1.8 m 511 keV 0 eV 21.8 cm 4.58 m Chamber Transportation - 10 1.85 m 91.2 cm 2.4 m 511 keV 0 eV 65.3 cm 5.23 m Tracker Transportation - 11 2.05 m 1.01 m 2.91 m 511 keV 0 eV 55.5 cm 5.78 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.01 mm 2.29 mm -2.4 m 601 keV 0 eV 0 fm 0 fm Target initStep - 1 -225 mum 3.29 mm -2.41 m 416 keV 0 eV 2 mm 2 mm Target compt - 2 143 mum 3.99 mm -2.42 m 0 eV 88 keV 1.04 cm 1.24 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 198 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 143 mum 3.99 mm -2.42 m 328 keV 0 eV 0 fm 0 fm Target initStep - 1 149 mum 3.99 mm -2.42 m 5.55e-11 eV 328 keV 168 mum 168 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 198 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -225 mum 3.29 mm -2.41 m 186 keV 0 eV 0 fm 0 fm Target initStep - 1 -229 mum 3.29 mm -2.41 m 0 eV 186 keV 72.6 mum 72.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.73 mm 1.63 mm -2.4 m 373 keV 0 eV 0 fm 0 fm Target initStep - 1 -101 mum 1.08 cm -2.41 m 0 eV 88 keV 1.07 cm 1.07 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 197 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -101 mum 1.08 cm -2.41 m 285 keV 0 eV 0 fm 0 fm Target initStep - 1 -99.3 mum 1.08 cm -2.41 m 0 eV 285 keV 138 mum 138 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 196, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.42 mm 1.57 mm -2.4 m 2.49 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.46 mm 6.93 mm -2.41 m 798 keV 0 eV 1.08 cm 1.08 cm Target compt - 2 1.9 mm 2.5 cm -2.42 m 798 keV 0 eV 2.41 cm 3.5 cm Target Transportation - 3 21.2 cm 62.3 cm -2.91 m 798 keV 0 eV 79.8 cm 83.3 cm OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 196 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.46 mm 6.93 mm -2.41 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.58 mm 6.89 mm -2.41 m 1.14 MeV 187 keV 152 mum 152 mum Target eBrem - 2 -4.56 mm 6.97 mm -2.41 m 197 keV 443 keV 386 mum 539 mum Target eBrem - 3 -4.56 mm 6.96 mm -2.41 m 0 eV 197 keV 79.3 mum 618 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 207, Parent ID = 205 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.56 mm 6.97 mm -2.41 m 499 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.48 mm 6.37 mm -2.41 m 0 eV 88 keV 3.66 mm 3.66 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 207 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.48 mm 6.37 mm -2.41 m 411 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.48 mm 6.36 mm -2.41 m 0 eV 411 keV 231 mum 231 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 206, Parent ID = 205 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.58 mm 6.89 mm -2.41 m 370 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.55 mm 6.92 mm -2.41 m 0 eV 88 keV 40.3 mum 40.3 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 206 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.55 mm 6.92 mm -2.41 m 282 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.54 mm 6.92 mm -2.41 m 0 eV 282 keV 136 mum 136 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.31 mm 1.98 mm -2.4 m 2.57 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.43 cm 3.14 mm -2.42 m 0 eV 0 eV 2.26 cm 2.26 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 211, Parent ID = 195 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.43 cm 3.14 mm -2.42 m 881 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.43 cm 3.13 mm -2.42 m 2.22e-10 eV 881 keV 628 mum 628 mum Target eIoni - 2 -1.43 cm 3.13 mm -2.42 m 2.22e-10 eV 0 eV 0 fm 628 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 213, Parent ID = 211 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.43 cm 3.13 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.48 cm 2.72 mm -2.42 m 506 keV 0 eV 756 mum 756 mum Target compt - 2 -1.75 cm -28.8 mum -2.42 m 267 keV 0 eV 4.16 mm 4.92 mm Target compt - 3 -1.73 cm 45.3 mum -2.42 m 238 keV 0 eV 536 mum 5.46 mm Target compt - 4 -1.72 cm -39.8 mum -2.42 m 0 eV 88 keV 162 mum 5.62 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 213 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.72 cm -39.8 mum -2.42 m 150 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.72 cm -42.6 mum -2.42 m 2.78e-11 eV 150 keV 52.3 mum 52.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 213 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.73 cm 45.3 mum -2.42 m 29.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.73 cm 45.6 mum -2.42 m 0 eV 29.3 keV 3.74 mum 3.74 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 213 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.75 cm -28.8 mum -2.42 m 238 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 cm -33.9 mum -2.42 m 2.78e-11 eV 238 keV 106 mum 106 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 213 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.48 cm 2.72 mm -2.42 m 5.48 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.48 cm 2.72 mm -2.42 m 0 eV 5.48 keV 292 nm 292 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 212, Parent ID = 211 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.43 cm 3.13 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 cm 4.71 mm -2.42 m 392 keV 0 eV 2.89 mm 2.89 mm Target compt - 2 -1.21 cm 6.14 mm -2.42 m 382 keV 0 eV 1.45 mm 4.34 mm Target compt - 3 -1.21 cm 7.32 mm -2.41 m 0 eV 88 keV 1.27 mm 5.61 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 212 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.21 cm 7.32 mm -2.41 m 294 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.21 cm 7.32 mm -2.41 m 5.55e-11 eV 294 keV 144 mum 144 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 219, Parent ID = 212 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.21 cm 6.14 mm -2.42 m 10.7 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.21 cm 6.14 mm -2.42 m 0 eV 10.7 keV 766 nm 766 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 212 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 cm 4.71 mm -2.42 m 119 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 cm 4.71 mm -2.42 m 0 eV 119 keV 36.1 mum 36.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 195 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.43 cm 3.14 mm -2.42 m 663 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.43 cm 3.14 mm -2.42 m 1.11e-10 eV 663 keV 435 mum 435 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.76 mm 1.8 mm -2.4 m 1.69 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.86 cm 5.79 mm -2.42 m 1.13 MeV 0 eV 2.64 cm 2.64 cm Target compt - 2 -2.5 cm 5.12 mm -2.42 m 1.13 MeV 0 eV 6.44 mm 3.29 cm Target Transportation - 3 -2.91 m -29.7 cm -2.56 m 1.13 MeV 0 eV 2.9 m 2.94 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 194 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.86 cm 5.79 mm -2.42 m 559 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.86 cm 5.8 mm -2.42 m 0 eV 559 keV 349 mum 349 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.61 mm 1.23 mm -2.4 m 2.29 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.61 mm 439 mum -2.4 m 2.29 MeV 0 eV 5.26 mm 5.26 mm Target Transportation - 2 1.01 m -39.4 cm 0.455 fm 2.29 MeV 0 eV 2.63 m 2.64 m Tracker Transportation - 3 1.09 m -42.7 cm 20 cm 2.29 MeV 0 eV 21.9 cm 2.86 m Chamber Transportation - 4 1.34 m -52.6 cm 80 cm 2.29 MeV 0 eV 65.8 cm 3.51 m Tracker Transportation - 5 1.43 m -55.9 cm 1 m 2.29 MeV 0 eV 21.9 cm 3.73 m Chamber Transportation - 6 1.68 m -65.7 cm 1.6 m 2.29 MeV 0 eV 65.8 cm 4.39 m Tracker Transportation - 7 1.76 m -69 cm 1.8 m 2.29 MeV 0 eV 21.9 cm 4.61 m Chamber Transportation - 8 2.01 m -78.9 cm 2.4 m 2.29 MeV 0 eV 65.8 cm 5.27 m Tracker Transportation - 9 2.23 m -87.3 cm 2.91 m 2.29 MeV 0 eV 55.9 cm 5.83 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.88 mm 1.02 mm -2.41 m 3.59 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.13 mm 663 mum -2.4 m 3.59 MeV 0 eV 6.71 mm 6.71 mm Target Transportation - 2 15.5 cm -4.33 cm -1.6 m 3.59 MeV 0 eV 81.5 cm 82.2 cm Tracker Transportation - 3 19.3 cm -5.42 cm -1.4 m 3.59 MeV 0 eV 20.4 cm 1.03 m Chamber Transportation - 4 30.7 cm -8.72 cm -80 cm 3.59 MeV 0 eV 61.2 cm 1.64 m Tracker Transportation - 5 34.5 cm -9.82 cm -60 cm 3.59 MeV 0 eV 20.4 cm 1.84 m Chamber Transportation - 6 45.9 cm -13.1 cm 0 fm 3.59 MeV 0 eV 61.2 cm 2.45 m Tracker Transportation - 7 49.7 cm -14.2 cm 20 cm 3.59 MeV 0 eV 20.4 cm 2.66 m Chamber Transportation - 8 61.1 cm -17.5 cm 80 cm 3.59 MeV 0 eV 61.2 cm 3.27 m Tracker Transportation - 9 64.9 cm -18.6 cm 1 m 3.59 MeV 0 eV 20.4 cm 3.47 m Chamber Transportation - 10 76.3 cm -21.9 cm 1.6 m 3.59 MeV 0 eV 61.2 cm 4.08 m Tracker Transportation - 11 80.1 cm -23 cm 1.8 m 3.59 MeV 0 eV 20.4 cm 4.29 m Chamber Transportation - 12 91.4 cm -26.3 cm 2.4 m 3.59 MeV 0 eV 61.2 cm 4.9 m Tracker Transportation - 13 1.01 m -29.1 cm 2.91 m 3.59 MeV 0 eV 52 cm 5.42 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 191, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.01 mm 1.15 mm -2.41 m 421 keV 0 eV 0 fm 0 fm Target initStep - 1 2.48 mm 1.46 mm -2.4 m 0 eV 88 keV 4.63 mm 4.63 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 191 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.48 mm 1.46 mm -2.4 m 333 keV 0 eV 0 fm 0 fm Target initStep - 1 2.49 mm 1.46 mm -2.4 m 1.11e-10 eV 333 keV 172 mum 172 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.99 mm 1.08 mm -2.41 m 5.74 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.97 mm 1.17 mm -2.41 m 4.85 MeV 300 keV 308 mum 308 mum Target eBrem - 2 2 mm 1.13 mm -2.41 m 2.82 MeV 135 keV 118 mum 427 mum Target eBrem - 3 2.43 mm 1.04 mm -2.41 m 162 keV 1.63 MeV 1.34 mm 1.77 mm Target eBrem - 4 2.43 mm 1.05 mm -2.41 m 5.55e-11 eV 162 keV 58.7 mum 1.83 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 225, Parent ID = 189 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.43 mm 1.04 mm -2.41 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.35 mm 1.53 mm -2.4 m 1.03 MeV 0 eV 1.01 cm 1.01 cm Target Transportation - 2 -2.4 m 24.4 cm 2.06 m 1.03 MeV 0 eV 5.07 m 5.08 m Tracker Transportation - 3 -2.86 m 29 cm 2.91 m 1.03 MeV 0 eV 96.7 cm 6.05 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 224, Parent ID = 189 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2 mm 1.13 mm -2.41 m 1.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.68 mm 2.11 mm -2.41 m 236 keV 0 eV 1.7 mm 1.7 mm Target compt - 2 2.28 mm 1.88 mm -2.41 m 0 eV 88 keV 528 mum 2.23 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 224 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.28 mm 1.88 mm -2.41 m 148 keV 0 eV 0 fm 0 fm Target initStep - 1 2.27 mm 1.88 mm -2.41 m 0 eV 148 keV 51.2 mum 51.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 224 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.68 mm 2.11 mm -2.41 m 1.66 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.59 mm 2.15 mm -2.41 m 272 keV 1.07 MeV 1.06 mm 1.06 mm Target eBrem - 2 2.6 mm 2.15 mm -2.41 m 0 eV 272 keV 128 mum 1.19 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 228, Parent ID = 226 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.59 mm 2.15 mm -2.41 m 322 keV 0 eV 0 fm 0 fm Target initStep - 1 4.25 mm 406 mum -2.41 m 317 keV 0 eV 3.87 mm 3.87 mm Target compt - 2 5.02 mm -1.24 mm -2.41 m 0 eV 88 keV 3.61 mm 7.48 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 230, Parent ID = 228 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.02 mm -1.24 mm -2.41 m 229 keV 0 eV 0 fm 0 fm Target initStep - 1 5.02 mm -1.25 mm -2.41 m 0 eV 229 keV 99.7 mum 99.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 228 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.25 mm 406 mum -2.41 m 5.21 keV 0 eV 0 fm 0 fm Target initStep - 1 4.25 mm 406 mum -2.41 m 0 eV 5.21 keV 272 nm 272 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 223, Parent ID = 189 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.97 mm 1.17 mm -2.41 m 588 keV 0 eV 0 fm 0 fm Target initStep - 1 2.38 mm 1.11 mm -2.4 m 554 keV 0 eV 4.46 mm 4.46 mm Target compt - 2 2.48 mm 2.62 mm -2.4 m 554 keV 0 eV 4.96 mm 9.41 mm Target Transportation - 3 3.64 cm 51.6 cm -80 cm 554 keV 0 eV 1.68 m 1.69 m Tracker Transportation - 4 4.06 cm 58 cm -60 cm 554 keV 0 eV 21 cm 1.9 m Chamber Transportation - 5 5.33 cm 77.3 cm 0 fm 554 keV 0 eV 63 cm 2.53 m Tracker Transportation - 6 5.76 cm 83.7 cm 20 cm 554 keV 0 eV 21 cm 2.74 m Chamber Transportation - 7 7.03 cm 1.03 m 80 cm 554 keV 0 eV 63 cm 3.37 m Tracker Transportation - 8 7.45 cm 1.09 m 1 m 554 keV 0 eV 21 cm 3.58 m Chamber Transportation - 9 8.72 cm 1.29 m 1.6 m 554 keV 0 eV 63 cm 4.21 m Tracker Transportation - 10 9.15 cm 1.35 m 1.8 m 554 keV 0 eV 21 cm 4.42 m Chamber Transportation - 11 10.4 cm 1.54 m 2.4 m 554 keV 0 eV 63 cm 5.05 m Tracker Transportation - 12 11.5 cm 1.71 m 2.91 m 554 keV 0 eV 53.6 cm 5.59 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 223 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.38 mm 1.11 mm -2.4 m 34.5 keV 0 eV 0 fm 0 fm Target initStep - 1 2.38 mm 1.11 mm -2.4 m 0 eV 34.5 keV 4.88 mum 4.88 mum Target eIoni + 0 63.9 mum 210 mum -2.45 m 603 keV 0 eV 0 fm 0 fm Target initStep + 1 65.1 mum 222 mum -2.45 m 2.22e-10 eV 603 keV 386 mum 386 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -519 mum 102 mum -2.45 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep - 1 -368 mum 159 mum -2.44 m 1.1 MeV 0 eV 2.6 mm 2.6 mm Target compt - 2 -1.4 mm 5.04 mm -2.41 m 422 keV 0 eV 3.04 cm 3.3 cm Target compt - 3 3.98 mm 2.78 mm -2.41 m 354 keV 0 eV 6.22 mm 3.92 cm Target compt - 4 5.84 mm 2.57 mm -2.41 m 0 eV 88 keV 1.95 mm 4.11 cm Target phot + 0 41.9 mum 192 mum -2.45 m 7.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 41.4 mum 201 mum -2.45 m 0 eV 0 eV 583 mum 583 mum Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 6 +* G4Track Information: Particle = e+, Track ID = 129, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.84 mm 2.57 mm -2.41 m 266 keV 0 eV 0 fm 0 fm Target initStep - 1 5.85 mm 2.57 mm -2.41 m 0 eV 266 keV 125 mum 125 mum Target eIoni + 0 41.4 mum 201 mum -2.45 m 5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -53.7 mum 222 mum -2.45 m 3.87 MeV 355 keV 328 mum 328 mum Target eBrem + 2 -717 mum 829 mum -2.45 m 1.89 MeV 1.97 MeV 1.97 mm 2.3 mm Target eIoni + 3 -689 mum 1.09 mm -2.45 m 172 keV 1.72 MeV 1.37 mm 3.67 mm Target eIoni + 4 -693 mum 1.1 mm -2.45 m 0 eV 172 keV 61.6 mum 3.73 mm Target eIoni + 5 -693 mum 1.1 mm -2.45 m 0 eV 0 eV 0 fm 3.73 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 6 +* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.98 mm 2.78 mm -2.41 m 68.2 keV 0 eV 0 fm 0 fm Target initStep - 1 3.98 mm 2.78 mm -2.41 m 0 eV 68.2 keV 14.8 mum 14.8 mum Target eIoni + 0 -693 mum 1.1 mm -2.45 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -596 mum 1.88 mm -2.45 m 0 eV 88 keV 960 mum 960 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 132 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 mm 5.04 mm -2.41 m 679 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.41 mm 5.05 mm -2.41 m 2.22e-10 eV 679 keV 448 mum 448 mum Target eIoni + 0 -596 mum 1.88 mm -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -599 mum 1.88 mm -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 6 +* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -368 mum 159 mum -2.44 m 34 keV 0 eV 0 fm 0 fm Target initStep - 1 -368 mum 159 mum -2.44 m 4.16e-11 eV 34 keV 4.77 mum 4.77 mum Target eIoni + 0 -693 mum 1.1 mm -2.45 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 mm -2.09 mm -2.44 m 0 eV 88 keV 3.96 mm 3.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 131 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.09 mm -2.09 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 mm -2.11 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 129 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -53.7 mum 222 mum -2.45 m 773 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.6 mm 310 mum -2.45 m 773 keV 0 eV 4.67 mm 4.67 mm Target Transportation + 2 -54.1 cm 1.36 cm -2.91 m 773 keV 0 eV 70.8 cm 71.2 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 41.4 mum 201 mum -2.45 m 1.32 MeV 0 eV 0 fm 0 fm Target initStep + 1 17 mum 193 mum -2.45 m 6.66e-10 eV 1.32 MeV 994 mum 994 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -533 mum 91.1 mum -2.45 m 6.61 MeV 0 eV 0 fm 0 fm Target initStep - 1 219 mum 638 mum -2.44 m 0 eV 0 eV 1.11 cm 1.11 cm Target conv + 0 -21.4 mum 116 mum -2.45 m 22.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.86 mum 174 mum -2.45 m 0 eV 0 eV 2.56 mm 2.56 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 237, Parent ID = 5 +* G4Track Information: Particle = e+, Track ID = 136, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 219 mum 638 mum -2.44 m 279 keV 0 eV 0 fm 0 fm Target initStep - 1 232 mum 639 mum -2.44 m 0 eV 279 keV 130 mum 130 mum Target eIoni - 2 232 mum 639 mum -2.44 m 0 eV 0 eV 0 fm 130 mum Target annihil + 0 -7.86 mum 174 mum -2.45 m 19.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -12.9 mum 180 mum -2.45 m 16.9 MeV 85 keV 81 mum 81 mum Target eBrem + 2 -16.4 mum 179 mum -2.45 m 11.9 MeV 65.4 keV 79.9 mum 161 mum Target eBrem + 3 449 mum 643 mum -2.44 m 8.81 MeV 2.1 MeV 1.79 mm 1.95 mm Target eBrem + 4 90.2 mum 1.4 mm -2.44 m 6.35 MeV 1.16 MeV 921 mum 2.88 mm Target eBrem + 5 -975 mum 1.53 mm -2.44 m 3.79 MeV 1.2 MeV 1.28 mm 4.15 mm Target eBrem + 6 -1.62 mm 1.56 mm -2.44 m 404 keV 1.38 MeV 1.33 mm 5.48 mm Target eBrem + 7 -1.63 mm 1.56 mm -2.44 m 0 eV 15.9 keV 10 mum 5.49 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 237 +* G4Track Information: Particle = gamma, Track ID = 144, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 232 mum 639 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 3.16 mm 3.29 mm -2.43 m 362 keV 0 eV 5.79 mm 5.79 mm Target compt - 2 3.93 mm 9.14 mm -2.43 m 0 eV 88 keV 5.93 mm 1.17 cm Target phot + 0 -1.63 mm 1.56 mm -2.44 m 953 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.83 mm 1.07 mm -2.44 m 277 keV 0 eV 1.51 mm 1.51 mm Target compt + 2 -2.75 mm 921 mum -2.44 m 0 eV 88 keV 190 mum 1.7 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 239 +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 144 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.93 mm 9.14 mm -2.43 m 274 keV 0 eV 0 fm 0 fm Target initStep - 1 3.93 mm 9.14 mm -2.43 m 0 eV 274 keV 130 mum 130 mum Target eIoni + 0 -2.75 mm 921 mum -2.44 m 189 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.75 mm 917 mum -2.44 m 0 eV 189 keV 74.9 mum 74.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 239 +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 144 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.16 mm 3.29 mm -2.43 m 149 keV 0 eV 0 fm 0 fm Target initStep - 1 3.16 mm 3.29 mm -2.43 m 0 eV 149 keV 51.7 mum 51.7 mum Target eIoni + 0 -2.83 mm 1.07 mm -2.44 m 676 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.86 mm 1.07 mm -2.44 m 0 eV 676 keV 446 mum 446 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 237 +* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 232 mum 639 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.34 mm -2.59 mm -2.44 m 0 eV 88 keV 7.06 mm 7.06 mm Target phot + 0 -1.63 mm 1.56 mm -2.44 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 488 mum 4.6 mm -2.44 m 0 eV 88 keV 3.73 mm 3.73 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 238 +* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 143 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.34 mm -2.59 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.34 mm -2.61 mm -2.44 m 0 eV 423 keV 240 mum 240 mum Target eIoni + 0 488 mum 4.6 mm -2.44 m 368 keV 0 eV 0 fm 0 fm Target initStep + 1 490 mum 4.6 mm -2.44 m 0 eV 368 keV 199 mum 199 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 5 +* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 219 mum 638 mum -2.44 m 5.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 -94.3 mum 683 mum -2.44 m 3.2 MeV 1.54 MeV 525 mum 525 mum Target eBrem - 2 -48.8 mum 697 mum -2.44 m 2.26 MeV 479 keV 267 mum 792 mum Target eBrem - 3 92.9 mum 956 mum -2.44 m 500 keV 1.76 MeV 1.5 mm 2.29 mm Target eIoni - 4 86.2 mum 954 mum -2.44 m 1.11e-10 eV 500 keV 301 mum 2.59 mm Target eIoni + 0 -1.62 mm 1.56 mm -2.44 m 2.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -6.65 mm -2.44 m 2.01 MeV 0 eV 2.62 cm 2.62 cm Target Transportation + 2 -12 cm -4 cm -2.4 m 2.01 MeV 0 eV 10.7 cm 13.3 cm World Transportation + 3 -2.4 m -84 cm -1.56 m 2.01 MeV 0 eV 2.56 m 2.69 m Tracker Transportation + 4 -2.91 m -1.02 m -1.37 m 2.01 MeV 0 eV 57.3 cm 3.26 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 244, Parent ID = 236 +* G4Track Information: Particle = gamma, Track ID = 141, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -48.8 mum 697 mum -2.44 m 464 keV 0 eV 0 fm 0 fm Target initStep - 1 2.68 mm 2.92 mm -2.43 m 419 keV 0 eV 3.96 mm 3.96 mm Target compt - 2 5.93 mm 1.08 cm -2.43 m 0 eV 88 keV 1.17 cm 1.57 cm Target phot + 0 -975 mum 1.53 mm -2.44 m 1.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.24 mm 2.35 mm -2.44 m 1.18 MeV 0 eV 1.51 mm 1.51 mm Target compt + 2 -4.89 mm 3.17 mm -2.44 m 297 keV 0 eV 2.81 mm 4.31 mm Target compt + 3 -4.94 mm 1.48 mm -2.44 m 0 eV 88 keV 1.71 mm 6.02 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 244 +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 141 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.93 mm 1.08 cm -2.43 m 331 keV 0 eV 0 fm 0 fm Target initStep - 1 5.93 mm 1.08 cm -2.43 m 0 eV 331 keV 170 mum 170 mum Target eIoni + 0 -4.94 mm 1.48 mm -2.44 m 209 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.94 mm 1.48 mm -2.44 m 0 eV 209 keV 87.5 mum 87.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 244 +* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 141 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.68 mm 2.92 mm -2.43 m 44.4 keV 0 eV 0 fm 0 fm Target initStep - 1 2.68 mm 2.92 mm -2.43 m 0 eV 44.4 keV 7.34 mum 7.34 mum Target eIoni + 0 -4.89 mm 3.17 mm -2.44 m 881 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.94 mm 3.2 mm -2.44 m 1.11e-10 eV 881 keV 619 mum 619 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 243, Parent ID = 236 +* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 141 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -94.3 mum 683 mum -2.44 m 564 keV 0 eV 0 fm 0 fm Target initStep - 1 1.55 mm 1 mm -2.43 m 0 eV 88 keV 2.28 mm 2.28 mm Target phot + 0 -2.24 mm 2.35 mm -2.44 m 178 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.24 mm 2.35 mm -2.44 m 0 eV 178 keV 68.4 mum 68.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 243 +* G4Track Information: Particle = gamma, Track ID = 140, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.55 mm 1 mm -2.43 m 476 keV 0 eV 0 fm 0 fm Target initStep - 1 1.57 mm 1.01 mm -2.43 m 0 eV 476 keV 282 mum 282 mum Target eIoni + 0 90.2 mum 1.4 mm -2.44 m 1.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 mm 2.69 mm -2.44 m 979 keV 0 eV 2.03 mm 2.03 mm Target compt + 2 -2.34 mm 2.9 mm -2.44 m 662 keV 0 eV 1.16 mm 3.18 mm Target compt + 3 -1.49 cm -273 mum -2.42 m 0 eV 88 keV 2.68 cm 3 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 140 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.49 cm -273 mum -2.42 m 574 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.49 cm -250 mum -2.42 m 1.11e-10 eV 574 keV 361 mum 361 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 140 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.34 mm 2.9 mm -2.44 m 318 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.35 mm 2.91 mm -2.44 m 0 eV 318 keV 161 mum 161 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 140 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 mm 2.69 mm -2.44 m 318 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 mm 2.7 mm -2.44 m 5.55e-11 eV 318 keV 162 mum 162 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 139, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 449 mum 643 mum -2.44 m 961 keV 0 eV 0 fm 0 fm Target initStep + 1 -525 mum 1.99 mm -2.44 m 0 eV 88 keV 2.32 mm 2.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 139 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -525 mum 1.99 mm -2.44 m 873 keV 0 eV 0 fm 0 fm Target initStep + 1 -533 mum 1.99 mm -2.44 m 360 keV 15.3 keV 17.9 mum 17.9 mum Target eBrem + 2 -556 mum 1.97 mm -2.44 m 261 keV 98.9 keV 84.3 mum 102 mum Target eBrem + 3 -560 mum 1.98 mm -2.44 m 5.55e-11 eV 261 keV 121 mum 224 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 154 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -533 mum 1.99 mm -2.44 m 498 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 mm 3.01 mm -2.44 m 185 keV 0 eV 3.6 mm 3.6 mm Target compt + 2 -1.73 mm 3.01 mm -2.44 m 0 eV 88 keV 11.6 mum 3.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 mm 3.01 mm -2.44 m 96.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 mm 3.01 mm -2.44 m 0 eV 96.9 keV 26.2 mum 26.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 mm 3.01 mm -2.44 m 313 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 mm 3.02 mm -2.44 m 0 eV 313 keV 158 mum 158 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -16.4 mum 179 mum -2.45 m 4.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 -303 mum 267 mum -2.44 m 987 keV 0 eV 2.7 mm 2.7 mm Target compt + 2 2.61 mm 4.15 mm -2.44 m 721 keV 0 eV 6.18 mm 8.88 mm Target compt + 3 1.72 cm 5.86 mm -2.43 m 0 eV 88 keV 1.9 cm 2.78 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 138 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.72 cm 5.86 mm -2.43 m 633 keV 0 eV 0 fm 0 fm Target initStep + 1 1.73 cm 5.85 mm -2.43 m 0 eV 633 keV 411 mum 411 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 138 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.61 mm 4.15 mm -2.44 m 265 keV 0 eV 0 fm 0 fm Target initStep + 1 2.61 mm 4.16 mm -2.44 m 0 eV 265 keV 124 mum 124 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 138 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -303 mum 267 mum -2.44 m 3.94 MeV 0 eV 0 fm 0 fm Target initStep + 1 -159 mum -1.41 mum -2.44 m 1.99 MeV 1.4 MeV 743 mum 743 mum Target eBrem + 2 -391 mum 24.1 mum -2.44 m 280 keV 803 keV 779 mum 1.52 mm Target eBrem + 3 -386 mum 15.8 mum -2.44 m 0 eV 280 keV 135 mum 1.66 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 162, Parent ID = 158 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -391 mum 24.1 mum -2.44 m 908 keV 0 eV 0 fm 0 fm Target initStep + 1 1.16 mm -2.43 mm -2.44 m 686 keV 0 eV 2.9 mm 2.9 mm Target compt + 2 1.64 mm -1.15 cm -2.45 m 597 keV 0 eV 9.82 mm 1.27 cm Target compt + 3 -417 mum -1.64 cm -2.45 m 528 keV 0 eV 5.42 mm 1.81 cm Target compt + 4 -2.39 mm -1.95 cm -2.45 m 0 eV 88 keV 3.76 mm 2.19 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.39 mm -1.95 cm -2.45 m 440 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.39 mm -1.95 cm -2.45 m 0 eV 440 keV 254 mum 254 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -417 mum -1.64 cm -2.45 m 68.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -417 mum -1.64 cm -2.45 m 0 eV 68.3 keV 14.9 mum 14.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 mm -1.15 cm -2.45 m 89.7 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 mm -1.15 cm -2.45 m 0 eV 89.7 keV 23.1 mum 23.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm -2.43 mm -2.44 m 222 keV 0 eV 0 fm 0 fm Target initStep + 1 1.17 mm -2.43 mm -2.44 m 0 eV 222 keV 95.4 mum 95.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 158 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -159 mum -1.41 mum -2.44 m 547 keV 0 eV 0 fm 0 fm Target initStep + 1 454 mum 3.15 mm -2.44 m 0 eV 88 keV 4.94 mm 4.94 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 454 mum 3.15 mm -2.44 m 459 keV 0 eV 0 fm 0 fm Target initStep + 1 451 mum 3.15 mm -2.44 m 0 eV 459 keV 269 mum 269 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -12.9 mum 180 mum -2.45 m 2.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.3 mm 2.19 mm -2.4 m 2.54 MeV 0 eV 4.67 cm 4.67 cm Target Transportation + 2 2.38 cm 3.67 cm -1.6 m 2.54 MeV 0 eV 80.1 cm 84.8 cm Tracker Transportation + 3 2.94 cm 4.53 cm -1.4 m 2.54 MeV 0 eV 20 cm 1.05 m Chamber Transportation + 4 4.63 cm 7.12 cm -80 cm 2.54 MeV 0 eV 60.1 cm 1.65 m Tracker Transportation + 5 5.19 cm 7.98 cm -60 cm 2.54 MeV 0 eV 20 cm 1.85 m Chamber Transportation + 6 6.88 cm 10.6 cm 0 fm 2.54 MeV 0 eV 60.1 cm 2.45 m Tracker Transportation + 7 7.45 cm 11.4 cm 20 cm 2.54 MeV 0 eV 20 cm 2.65 m Chamber Transportation + 8 9.13 cm 14 cm 80 cm 2.54 MeV 0 eV 60.1 cm 3.25 m Tracker Transportation + 9 9.7 cm 14.9 cm 1 m 2.54 MeV 0 eV 20 cm 3.45 m Chamber Transportation + 10 11.4 cm 17.5 cm 1.6 m 2.54 MeV 0 eV 60.1 cm 4.05 m Tracker Transportation + 11 11.9 cm 18.3 cm 1.8 m 2.54 MeV 0 eV 20 cm 4.25 m Chamber Transportation + 12 13.6 cm 20.9 cm 2.4 m 2.54 MeV 0 eV 60.1 cm 4.85 m Tracker Transportation + 13 13.9 cm 21.3 cm 2.49 m 600 keV 0 eV 9.25 cm 4.95 m World compt + 14 -45.4 cm 1.26 m 2.91 m 600 keV 0 eV 1.28 m 6.22 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 137 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 13.9 cm 21.3 cm 2.49 m 1.94 MeV 0 eV 0 fm 0 fm World initStep + 1 20.1 cm 14.5 cm 2.91 m 1.88 MeV 62 keV 43.5 cm 43.5 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.86 mum 174 mum -2.45 m 2.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.36 mum 140 mum -2.45 m 0 eV 2.1 MeV 1.44 mm 1.44 mm Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -570 mum 103 mum -2.45 m 3.24 MeV 0 eV 0 fm 0 fm Target initStep - 1 -359 mum 265 mum -2.44 m 2.42 MeV 0 eV 8.1 mm 8.1 mm Target compt - 2 457 mum 45.3 mum -2.44 m 1.56 MeV 0 eV 2.49 mm 1.06 cm Target compt - 3 7.9 mm -2.4 cm -2.4 m 1.56 MeV 0 eV 4.52 cm 5.58 cm Target Transportation - 4 74.3 cm -2.4 m 1.31 m 1.56 MeV 0 eV 4.47 m 4.53 m Tracker Transportation - 5 90.1 cm -2.91 m 2.11 m 1.56 MeV 0 eV 95.9 cm 5.48 m OutOfWorld Transportation + 0 -21.6 mum 115 mum -2.45 m 53.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 15.8 mum 191 mum -2.44 m 0 eV 0 eV 5.02 mm 5.02 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 4 +* G4Track Information: Particle = e+, Track ID = 170, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 457 mum 45.3 mum -2.44 m 869 keV 0 eV 0 fm 0 fm Target initStep - 1 465 mum 114 mum -2.44 m 195 keV 360 keV 158 mum 158 mum Target eBrem - 2 469 mum 111 mum -2.44 m 0 eV 195 keV 78 mum 236 mum Target eIoni + 0 15.8 mum 191 mum -2.44 m 40.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.04 mum 216 mum -2.44 m 37.8 MeV 319 keV 279 mum 279 mum Target eBrem + 2 148 mum 243 mum -2.44 m 11.1 MeV 3.51 MeV 1.12 mm 1.4 mm Target eBrem + 3 -287 mum 1.15 mm -2.44 m 6.93 MeV 4.18 MeV 3.21 mm 4.61 mm Target eIoni + 4 -228 mum 1.8 mm -2.44 m 4.08 MeV 2.85 MeV 2.55 mm 7.16 mm Target eIoni + 5 -308 mum 1.89 mm -2.44 m 2.98 MeV 144 keV 139 mum 7.3 mm Target eBrem + 6 -800 mum 1.6 mm -2.44 m 1.42 MeV 1.55 MeV 1.75 mm 9.05 mm Target eIoni + 7 -939 mum 1.54 mm -2.44 m 5.12 keV 1.42 MeV 1.09 mm 1.01 cm Target eIoni + 8 -939 mum 1.54 mm -2.44 m 8.67e-13 eV 5.12 keV 196 nm 1.01 cm Target eIoni + 9 -939 mum 1.54 mm -2.44 m 8.67e-13 eV 0 eV 0 fm 1.01 cm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 250, Parent ID = 249 +* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 170 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 465 mum 114 mum -2.44 m 314 keV 0 eV 0 fm 0 fm Target initStep - 1 1.93 mm -301 mum -2.44 m 0 eV 88 keV 1.58 mm 1.58 mm Target phot + 0 -939 mum 1.54 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 572 mum -548 mum -2.45 m 312 keV 0 eV 4.76 mm 4.76 mm Target compt + 2 3.12 mm -2.07 mm -2.45 m 0 eV 88 keV 3.01 mm 7.76 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 251, Parent ID = 250 +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 175 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.93 mm -301 mum -2.44 m 226 keV 0 eV 0 fm 0 fm Target initStep - 1 1.93 mm -305 mum -2.44 m 5.55e-11 eV 226 keV 98 mum 98 mum Target eIoni + 0 3.12 mm -2.07 mm -2.45 m 224 keV 0 eV 0 fm 0 fm Target initStep + 1 3.13 mm -2.07 mm -2.45 m 2.78e-11 eV 224 keV 96.8 mum 96.8 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 248, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 175 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -359 mum 265 mum -2.44 m 820 keV 0 eV 0 fm 0 fm Target initStep - 1 -386 mum 275 mum -2.44 m 1.11e-10 eV 820 keV 567 mum 567 mum Target eIoni + 0 572 mum -548 mum -2.45 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 571 mum -549 mum -2.45 m 2.78e-11 eV 199 keV 80.8 mum 80.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 170 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -939 mum 1.54 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.87 mm 8.34 mm -2.43 m 0 eV 88 keV 1.55 cm 1.55 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.87 mm 8.34 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.86 mm 8.36 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 173, Parent ID = 170 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -308 mum 1.89 mm -2.44 m 963 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.97 mm 4.08 mm -2.45 m 963 keV 0 eV 9.69 mm 9.69 mm Target Transportation + 2 -26.6 cm 12.7 cm -2.91 m 963 keV 0 eV 54.3 cm 55.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 172, Parent ID = 170 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 148 mum 243 mum -2.44 m 23.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.8 mm -445 mum -2.43 m 0 eV 0 eV 1.1 cm 1.1 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 180, Parent ID = 172 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 mm -445 mum -2.43 m 7.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.28 mm 396 mum -2.43 m 3.13 MeV 2.5 MeV 2.13 mm 2.13 mm Target eBrem + 2 2.12 mm -222 mum -2.43 m 1.41 MeV 1.12 MeV 716 mum 2.85 mm Target eBrem + 3 2.06 mm -312 mum -2.43 m 0 eV 1.41 MeV 1.08 mm 3.93 mm Target eIoni + 4 2.06 mm -312 mum -2.43 m 0 eV 0 eV 0 fm 3.93 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 184, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.06 mm -312 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.25 mm 909 mum -2.43 m 314 keV 0 eV 3.77 mm 3.77 mm Target compt + 2 2.82 mm 687 mum -2.43 m 0 eV 88 keV 687 mum 4.46 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.82 mm 687 mum -2.43 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 2.82 mm 685 mum -2.43 m 5.55e-11 eV 226 keV 98.1 mum 98.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 mm 909 mum -2.43 m 197 keV 0 eV 0 fm 0 fm Target initStep + 1 2.25 mm 912 mum -2.43 m 5.55e-11 eV 197 keV 79.6 mum 79.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.06 mm -312 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.94 mm -1.13 mm -2.43 m 483 keV 0 eV 2.53 mm 2.53 mm Target compt + 2 2.25 mm -3.14 mm -2.43 m 0 eV 88 keV 3.38 mm 5.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 183 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 mm -3.14 mm -2.43 m 395 keV 0 eV 0 fm 0 fm Target initStep + 1 2.25 mm -3.16 mm -2.43 m 0 eV 395 keV 219 mum 219 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 183 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.94 mm -1.13 mm -2.43 m 27.6 keV 0 eV 0 fm 0 fm Target initStep + 1 1.94 mm -1.13 mm -2.43 m 0 eV 27.6 keV 3.4 mum 3.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.12 mm -222 mum -2.43 m 610 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.08 mm 3.04 mm -2.43 m 0 eV 88 keV 6.3 mm 6.3 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.08 mm 3.04 mm -2.43 m 522 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.1 mm 3.05 mm -2.43 m 1.11e-10 eV 522 keV 319 mum 319 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 181, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.28 mm 396 mum -2.43 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.18 mm -2.83 mm -2.43 m 0 eV 0 eV 3.51 mm 3.51 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 191, Parent ID = 181 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.18 mm -2.83 mm -2.43 m 83.4 keV 0 eV 0 fm 0 fm Target initStep + 1 3.18 mm -2.84 mm -2.43 m 2.78e-11 eV 83.4 keV 18.8 mum 18.8 mum Target eIoni + 2 3.18 mm -2.84 mm -2.43 m 2.78e-11 eV 0 eV 0 fm 18.8 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.18 mm -2.84 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 mm -4.5 mm -2.43 m 455 keV 0 eV 4.77 mm 4.77 mm Target compt + 2 -3.17 mm -6.25 mm -2.43 m 306 keV 0 eV 2.76 mm 7.53 mm Target compt + 3 -3.1 mm -6.74 mm -2.43 m 0 eV 88 keV 651 mum 8.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.1 mm -6.74 mm -2.43 m 218 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.1 mm -6.75 mm -2.43 m 8.33e-11 eV 218 keV 92.8 mum 92.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.17 mm -6.25 mm -2.43 m 149 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.17 mm -6.25 mm -2.43 m 0 eV 149 keV 51.9 mum 51.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 mm -4.5 mm -2.43 m 56.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 mm -4.5 mm -2.43 m 0 eV 56.2 keV 10.8 mum 10.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.18 mm -2.84 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 9.22 mm -455 mum -2.43 m 365 keV 0 eV 6.83 mm 6.83 mm Target compt + 2 1.82 cm -6.4 mm -2.43 m 0 eV 88 keV 1.1 cm 1.79 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.82 cm -6.4 mm -2.43 m 277 keV 0 eV 0 fm 0 fm Target initStep + 1 1.82 cm -6.4 mm -2.43 m 0 eV 277 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.22 mm -455 mum -2.43 m 146 keV 0 eV 0 fm 0 fm Target initStep + 1 9.22 mm -452 mum -2.43 m 0 eV 146 keV 50.3 mum 50.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 181 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.18 mm -2.83 mm -2.43 m 384 keV 0 eV 0 fm 0 fm Target initStep + 1 3.19 mm -2.85 mm -2.43 m 5.55e-11 eV 384 keV 211 mum 211 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 172 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 mm -445 mum -2.43 m 15 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -449 mum -2.43 m 10.9 MeV 1.07 MeV 640 mum 640 mum Target eBrem + 2 2.15 mm -646 mum -2.43 m 9.52 MeV 573 keV 555 mum 1.2 mm Target eBrem + 3 822 mum 522 mum -2.43 m 6.32 MeV 3.2 MeV 2.92 mm 4.11 mm Target eIoni + 4 764 mum 1.13 mm -2.43 m 4.2 MeV 783 keV 701 mum 4.82 mm Target eBrem + 5 822 mum 1.5 mm -2.43 m 2.92 MeV 763 keV 426 mum 5.24 mm Target eBrem + 6 728 mum 1.52 mm -2.43 m 1.82 MeV 427 keV 204 mum 5.45 mm Target eBrem + 7 751 mum 1.64 mm -2.43 m 540 keV 1.28 MeV 1.32 mm 6.76 mm Target eIoni + 8 729 mum 1.65 mm -2.43 m 0 eV 540 keV 334 mum 7.09 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 203, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 728 mum 1.52 mm -2.43 m 666 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.65 mm 3.85 mm -2.42 m 550 keV 0 eV 8.99 mm 8.99 mm Target compt + 2 -5.72 mm 6.97 mm -2.41 m 401 keV 0 eV 1.44 cm 2.34 cm Target compt + 3 -3.54 mm 1.86 mm -2.4 m 401 keV 0 eV 9.47 mm 3.29 cm Target Transportation + 4 1.02 m -2.4 m 1.21 m 401 keV 0 eV 4.45 m 4.49 m Tracker Transportation + 5 1.24 m -2.91 m 1.97 m 401 keV 0 eV 94.6 cm 5.43 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 203 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.72 mm 6.97 mm -2.41 m 149 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.73 mm 6.98 mm -2.41 m 2.78e-11 eV 149 keV 52 mum 52 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 203 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.65 mm 3.85 mm -2.42 m 115 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.65 mm 3.85 mm -2.42 m 0 eV 115 keV 34.7 mum 34.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 202, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 822 mum 1.5 mm -2.43 m 523 keV 0 eV 0 fm 0 fm Target initStep + 1 -175 mum 2.63 mm -2.43 m 174 keV 0 eV 1.82 mm 1.82 mm Target compt + 2 180 mum 1.71 mm -2.43 m 0 eV 88 keV 1.21 mm 3.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 202 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 180 mum 1.71 mm -2.43 m 86.1 keV 0 eV 0 fm 0 fm Target initStep + 1 179 mum 1.71 mm -2.43 m 0 eV 86.1 keV 21.7 mum 21.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 202 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -175 mum 2.63 mm -2.43 m 349 keV 0 eV 0 fm 0 fm Target initStep + 1 -182 mum 2.64 mm -2.43 m 1.67e-10 eV 349 keV 184 mum 184 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 201, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 764 mum 1.13 mm -2.43 m 1.33 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.54 mm 1.27 cm -2.42 m 333 keV 0 eV 1.36 cm 1.36 cm Target compt + 2 -1.83 mm 1.27 cm -2.42 m 0 eV 88 keV 334 mum 1.39 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 201 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.83 mm 1.27 cm -2.42 m 245 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.84 mm 1.27 cm -2.42 m 0 eV 245 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 201 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.54 mm 1.27 cm -2.42 m 999 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.54 mm 1.28 cm -2.42 m 1.11e-10 eV 999 keV 720 mum 720 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.15 mm -646 mum -2.43 m 793 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.08 mm -1.1 mm -2.41 m 217 keV 0 eV 2.05 cm 2.05 cm Target compt + 2 -3.45 mm -1.74 mm -2.41 m 0 eV 88 keV 1.1 mm 2.16 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 200 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.45 mm -1.74 mm -2.41 m 129 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.45 mm -1.74 mm -2.41 m 5.55e-11 eV 129 keV 41.4 mum 41.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 200 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.08 mm -1.1 mm -2.41 m 576 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.1 mm -1.09 mm -2.41 m 0 eV 576 keV 363 mum 363 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -449 mum -2.43 m 3.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.1 mm -655 mum -2.43 m 351 keV 0 eV 1.04 mm 1.04 mm Target compt + 2 -240 mum -2.16 mm -2.43 m 0 eV 88 keV 2.98 mm 4.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -240 mum -2.16 mm -2.43 m 263 keV 0 eV 0 fm 0 fm Target initStep + 1 -242 mum -2.16 mm -2.43 m 1.11e-10 eV 263 keV 123 mum 123 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.1 mm -655 mum -2.43 m 2.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.11 mm -756 mum -2.43 m 1.48 MeV 194 keV 181 mum 181 mum Target eBrem + 2 2.21 mm -904 mum -2.43 m 645 keV 405 keV 402 mum 583 mum Target eBrem + 3 2.18 mm -897 mum -2.43 m 1.11e-10 eV 645 keV 421 mum 1 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.21 mm -904 mum -2.43 m 428 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.44 mm 153 mum -2.43 m 0 eV 88 keV 6.96 mm 6.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.44 mm 153 mum -2.43 m 340 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.45 mm 157 mum -2.43 m 0 eV 340 keV 178 mum 178 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 214, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.11 mm -756 mum -2.43 m 1.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.37 mm -2.87 mm -2.42 m 972 keV 0 eV 1.54 cm 1.54 cm Target compt + 2 5.45 mm -2.38 mm -2.4 m 205 keV 0 eV 1.3 cm 2.84 cm Target compt + 3 5.45 mm -2.39 mm -2.4 m 0 eV 88 keV 40.7 mum 2.84 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 219, Parent ID = 214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.45 mm -2.39 mm -2.4 m 117 keV 0 eV 0 fm 0 fm Target initStep + 1 5.45 mm -2.38 mm -2.4 m 0 eV 117 keV 35.6 mum 35.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.45 mm -2.38 mm -2.4 m 767 keV 0 eV 0 fm 0 fm Target initStep + 1 5.45 mm -2.38 mm -2.4 m 0 eV 767 keV 523 mum 523 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.37 mm -2.87 mm -2.42 m 79.9 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm -2.88 mm -2.42 m 0 eV 79.9 keV 19.2 mum 19.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 171, Parent ID = 170 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.04 mum 216 mum -2.44 m 2.29 MeV 0 eV 0 fm 0 fm Target initStep + 1 -322 mum 454 mum -2.42 m 313 keV 0 eV 2.75 cm 2.75 cm Target compt + 2 38 mum 2.38 mm -2.42 m 0 eV 88 keV 2.15 mm 2.96 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 38 mum 2.38 mm -2.42 m 225 keV 0 eV 0 fm 0 fm Target initStep + 1 39.4 mum 2.39 mm -2.42 m 2.78e-11 eV 225 keV 97.4 mum 97.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -322 mum 454 mum -2.42 m 1.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 -144 mum 458 mum -2.42 m 1.12 MeV 383 keV 392 mum 392 mum Target eBrem + 2 -137 mum 507 mum -2.42 m 0 eV 1.12 MeV 824 mum 1.22 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 222, Parent ID = 220 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -144 mum 458 mum -2.42 m 468 keV 0 eV 0 fm 0 fm Target initStep + 1 11.2 mum 1.29 mm -2.42 m 0 eV 88 keV 1.29 mm 1.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 11.2 mum 1.29 mm -2.42 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 15.8 mum 1.3 mm -2.42 m 5.55e-11 eV 380 keV 207 mum 207 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 15.8 mum 191 mum -2.44 m 12.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -22.9 mum 213 mum -2.44 m 10.7 MeV 650 keV 344 mum 344 mum Target eBrem + 2 -189 mum -152 mum -2.44 m 4.47 MeV 2.34 MeV 1.3 mm 1.64 mm Target eBrem + 3 -236 mum -264 mum -2.44 m 3.31 MeV 297 keV 240 mum 1.88 mm Target eBrem + 4 -27.1 mum -155 mum -2.44 m 1.73 MeV 390 keV 386 mum 2.26 mm Target eBrem + 5 28.2 mum -341 mum -2.44 m 348 keV 1.38 MeV 1.27 mm 3.53 mm Target eIoni + 6 35 mum -345 mum -2.44 m 0 eV 348 keV 184 mum 3.72 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 227, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -27.1 mum -155 mum -2.44 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -172 mum -1.7 mm -2.45 m 367 keV 0 eV 3.2 mm 3.2 mm Target compt + 2 -3.32 mm -6 mm -2.44 m 197 keV 0 eV 5.79 mm 9 mm Target compt + 3 -3.21 mm -4.37 mm -2.44 m 0 eV 88 keV 2.54 mm 1.15 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 230, Parent ID = 227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.21 mm -4.37 mm -2.44 m 109 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.21 mm -4.37 mm -2.44 m 0 eV 109 keV 31.6 mum 31.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.32 mm -6 mm -2.44 m 170 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.32 mm -6 mm -2.44 m 0 eV 170 keV 63.5 mum 63.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -172 mum -1.7 mm -2.45 m 818 keV 0 eV 0 fm 0 fm Target initStep + 1 -166 mum -1.71 mm -2.45 m 0 eV 818 keV 566 mum 566 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 226, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -236 mum -264 mum -2.44 m 867 keV 0 eV 0 fm 0 fm Target initStep + 1 2.96 mm 1.73 cm -2.45 m 867 keV 0 eV 1.93 cm 1.93 cm Target Transportation + 2 20.3 cm 1.12 m -2.91 m 867 keV 0 eV 1.21 m 1.23 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 225, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -189 mum -152 mum -2.44 m 3.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 428 mum -1.35 mm -2.44 m 0 eV 88 keV 3.09 mm 3.09 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 225 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 428 mum -1.35 mm -2.44 m 3.84 MeV 0 eV 0 fm 0 fm Target initStep + 1 581 mum -1.23 mm -2.44 m 2.93 MeV 416 keV 439 mum 439 mum Target eBrem + 2 548 mum -1.54 mm -2.44 m 0 eV 2.93 MeV 1.72 mm 2.15 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 232, Parent ID = 231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 581 mum -1.23 mm -2.44 m 495 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.49 mm -1.52 cm -2.44 m 0 eV 88 keV 1.46 cm 1.46 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 232 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.49 mm -1.52 cm -2.44 m 407 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.49 mm -1.53 cm -2.44 m 0 eV 407 keV 228 mum 228 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 224, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -22.9 mum 213 mum -2.44 m 869 keV 0 eV 0 fm 0 fm Target initStep + 1 6.17 mm 6.62 mm -2.41 m 673 keV 0 eV 3.44 cm 3.44 cm Target compt + 2 3.96 mm 7.32 mm -2.41 m 625 keV 0 eV 5.54 mm 3.99 cm Target compt + 3 33 mum 1.04 cm -2.4 m 625 keV 0 eV 7.6 mm 4.75 cm Target Transportation + 4 -2.4 m 1.91 m 1.1 m 625 keV 0 eV 4.65 m 4.7 m Tracker Transportation + 5 -2.91 m 2.31 m 1.85 m 625 keV 0 eV 98.8 cm 5.69 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.96 mm 7.32 mm -2.41 m 48.4 keV 0 eV 0 fm 0 fm Target initStep + 1 3.96 mm 7.32 mm -2.41 m 0 eV 48.4 keV 8.5 mum 8.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.17 mm 6.62 mm -2.41 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 6.17 mm 6.62 mm -2.41 m 0 eV 196 keV 79.1 mum 79.1 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -533 mum 98.4 mum -2.45 m 2.68 MeV 0 eV 0 fm 0 fm Target initStep - 1 -524 mum 163 mum -2.44 m 284 keV 0 eV 6.8 mm 6.8 mm Target compt - 2 -1.07 mm 441 mum -2.44 m 283 keV 0 eV 767 mum 7.57 mm Target compt - 3 -5.91 mm 3.08 mm -2.45 m 0 eV 88 keV 7.88 mm 1.54 cm Target phot + 0 -21.6 mum 115 mum -2.45 m 19.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 85.8 mum 408 mum -2.42 m 6.8 MeV 0 eV 3.34 cm 3.34 cm Target compt + 2 -1.31 mm -344 mum -2.41 m 0 eV 88 keV 5.27 mm 3.86 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 254, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.91 mm 3.08 mm -2.45 m 195 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.91 mm 3.08 mm -2.45 m 0 eV 195 keV 78.2 mum 78.2 mum Target eIoni + 0 -1.31 mm -344 mum -2.41 m 6.71 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.27 mm -159 mum -2.41 m 4.09 MeV 2.25 MeV 1.08 mm 1.08 mm Target eBrem + 2 -1.3 mm 223 mum -2.41 m 1.12 MeV 675 keV 694 mum 1.78 mm Target eBrem + 3 -1.31 mm 249 mum -2.41 m 4.44e-10 eV 1.12 MeV 821 mum 2.6 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 3 +* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 237 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.07 mm 441 mum -2.44 m 1.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.07 mm 441 mum -2.44 m 2.6e-12 eV 1.6 keV 53 nm 53 nm Target eIoni + 0 -1.3 mm 223 mum -2.41 m 2.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 mm 1.12 mm -2.41 m 1.41 MeV 0 eV 2.54 mm 2.54 mm Target compt + 2 -1.45 cm 2.5 cm -2.43 m 1.41 MeV 0 eV 3.39 cm 3.64 cm Target Transportation + 3 -31.6 cm 58.5 cm -2.91 m 1.41 MeV 0 eV 79.5 cm 83.2 cm OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 3 +* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 239 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -524 mum 163 mum -2.44 m 2.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -780 mum 325 mum -2.44 m 892 keV 1.51 MeV 1.55 mm 1.55 mm Target eIoni - 2 -774 mum 287 mum -2.44 m 0 eV 892 keV 627 mum 2.18 mm Target eIoni + 0 -1.68 mm 1.12 mm -2.41 m 894 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 mm 1.11 mm -2.41 m 3.33e-10 eV 894 keV 630 mum 630 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 mm -159 mum -2.41 m 365 keV 0 eV 0 fm 0 fm Target initStep + 1 1.67 mm 947 mum -2.41 m 0 eV 88 keV 5.01 mm 5.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.67 mm 947 mum -2.41 m 277 keV 0 eV 0 fm 0 fm Target initStep + 1 1.67 mm 946 mum -2.41 m 0 eV 277 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 85.8 mum 408 mum -2.42 m 12.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 750 mum -860 mum -2.41 m 7.92 MeV 3.94 MeV 3.27 mm 3.27 mm Target eBrem + 2 608 mum -842 mum -2.41 m 7.22 MeV 210 keV 200 mum 3.47 mm Target eBrem + 3 251 mum -503 mum -2.41 m 6.05 MeV 531 keV 539 mum 4.01 mm Target eBrem + 4 219 mum -476 mum -2.41 m 3.43 MeV 29.2 keV 41.8 mum 4.05 mm Target eBrem + 5 -276 mum -393 mum -2.41 m 2.49 MeV 634 keV 636 mum 4.69 mm Target eBrem + 6 -307 mum -597 mum -2.41 m 1.75 MeV 425 keV 464 mum 5.15 mm Target eBrem + 7 -390 mum -547 mum -2.41 m 342 keV 411 keV 392 mum 5.55 mm Target eBrem + 8 -390 mum -554 mum -2.41 m 0 eV 342 keV 179 mum 5.72 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 248, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -390 mum -547 mum -2.41 m 995 keV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm -2.5 cm -2.44 m 995 keV 0 eV 3.6 cm 3.6 cm Target Transportation + 2 5.45 cm -46.3 cm -2.91 m 995 keV 0 eV 64.4 cm 68 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 247, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -307 mum -597 mum -2.41 m 313 keV 0 eV 0 fm 0 fm Target initStep + 1 -539 mum -418 mum -2.41 m 0 eV 88 keV 317 mum 317 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 247 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -539 mum -418 mum -2.41 m 225 keV 0 eV 0 fm 0 fm Target initStep + 1 -542 mum -414 mum -2.41 m 0 eV 225 keV 97.6 mum 97.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 246, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -276 mum -393 mum -2.41 m 315 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 mm 2.41 mm -2.41 m 259 keV 0 eV 6.5 mm 6.5 mm Target compt + 2 -660 mum 3.21 mm -2.41 m 174 keV 0 eV 1.3 mm 7.8 mm Target compt + 3 -612 mum 3.12 mm -2.41 m 0 eV 88 keV 119 mum 7.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 246 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -612 mum 3.12 mm -2.41 m 85.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -611 mum 3.12 mm -2.41 m 0 eV 85.8 keV 21.5 mum 21.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 251, Parent ID = 246 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -660 mum 3.21 mm -2.41 m 85.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -660 mum 3.21 mm -2.41 m 2.78e-11 eV 85.7 keV 21.5 mum 21.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 250, Parent ID = 246 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.4 mm 2.41 mm -2.41 m 55.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 mm 2.41 mm -2.41 m 3.47e-11 eV 55.1 keV 10.5 mum 10.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 245, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 219 mum -476 mum -2.41 m 2.59 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 mm 872 mum -2.42 m 0 eV 0 eV 2.21 mm 2.21 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 254, Parent ID = 245 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 mm 872 mum -2.42 m 927 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 759 mum -2.42 m 22.8 keV 599 keV 631 mum 631 mum Target eBrem + 2 -1.37 mm 758 mum -2.42 m 0 eV 22.8 keV 2.11 mum 633 mum Target eIoni + 3 -1.37 mm 758 mum -2.42 m 0 eV 0 eV 0 fm 633 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 257, Parent ID = 254 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 758 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.98 mm 2.55 mm -2.42 m 308 keV 0 eV 4.04 mm 4.04 mm Target compt + 2 1.91 mm 2.7 mm -2.42 m 0 eV 88 keV 340 mum 4.38 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 259, Parent ID = 257 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.91 mm 2.7 mm -2.42 m 220 keV 0 eV 0 fm 0 fm Target initStep + 1 1.91 mm 2.7 mm -2.42 m 5.55e-11 eV 220 keV 94.3 mum 94.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 258, Parent ID = 257 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.98 mm 2.55 mm -2.42 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 1.98 mm 2.55 mm -2.42 m 8.33e-11 eV 203 keV 83.3 mum 83.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 256, Parent ID = 254 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 758 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.45 mm -1.96 mm -2.41 m 174 keV 0 eV 6.15 mm 6.15 mm Target compt + 2 -5.57 mm -1.88 mm -2.41 m 0 eV 88 keV 960 mum 7.11 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 261, Parent ID = 256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.57 mm -1.88 mm -2.41 m 86.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.57 mm -1.88 mm -2.41 m 0 eV 86.3 keV 21.8 mum 21.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 260, Parent ID = 256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.45 mm -1.96 mm -2.41 m 337 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.46 mm -1.96 mm -2.41 m 0 eV 337 keV 175 mum 175 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 255, Parent ID = 254 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 759 mum -2.42 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 1.48 mm 206 mum -2.42 m 0 eV 88 keV 4.75 mm 4.75 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 262, Parent ID = 255 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm 206 mum -2.42 m 217 keV 0 eV 0 fm 0 fm Target initStep + 1 1.48 mm 208 mum -2.42 m 2.78e-11 eV 217 keV 92.3 mum 92.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 245 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 mm 872 mum -2.42 m 638 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.34 mm 899 mum -2.42 m 3.33e-10 eV 638 keV 415 mum 415 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 244, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 251 mum -503 mum -2.41 m 641 keV 0 eV 0 fm 0 fm Target initStep + 1 -59.2 mum -377 mum -2.41 m 461 keV 0 eV 347 mum 347 mum Target compt + 2 -1.7 mm -1.15 mm -2.41 m 228 keV 0 eV 1.84 mm 2.19 mm Target compt + 3 -1.84 mm -936 mum -2.41 m 0 eV 88 keV 994 mum 3.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 265, Parent ID = 244 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.84 mm -936 mum -2.41 m 140 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.84 mm -937 mum -2.41 m 0 eV 140 keV 47.3 mum 47.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 264, Parent ID = 244 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.7 mm -1.15 mm -2.41 m 233 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 mm -1.15 mm -2.41 m 0 eV 233 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 263, Parent ID = 244 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -59.2 mum -377 mum -2.41 m 180 keV 0 eV 0 fm 0 fm Target initStep + 1 -60.9 mum -372 mum -2.41 m 8.33e-11 eV 180 keV 69.5 mum 69.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 243, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 608 mum -842 mum -2.41 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 -627 mum 59.5 mum -2.42 m 0 eV 88 keV 1.86 mm 1.86 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 266, Parent ID = 243 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -627 mum 59.5 mum -2.42 m 399 keV 0 eV 0 fm 0 fm Target initStep + 1 -640 mum 67.4 mum -2.42 m 1.11e-10 eV 399 keV 222 mum 222 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 242, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 750 mum -860 mum -2.41 m 531 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.73 mm 1.1 mm -2.42 m 0 eV 88 keV 5.84 mm 5.84 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 267, Parent ID = 242 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.73 mm 1.1 mm -2.42 m 443 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.74 mm 1.09 mm -2.42 m 0 eV 443 keV 256 mum 256 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -374 mum -14.8 mum -2.86 m 10.5 keV 0 eV 0 fm 0 fm World initStep - 1 -801 mum -971 mum -2.86 m 5.03 keV 5.46 keV 1.76 mm 1.76 mm World eIoni - 2 -740 mum -690 mum -2.86 m 0 eV 5.03 keV 695 mum 2.46 mm World eIoni + 0 -37.5 mum -1.48 mum -2.86 m 10.5 keV 0 eV 0 fm 0 fm World initStep + 1 -1.13 mm -1.04 mm -2.86 m 3.41 keV 7.08 keV 1.76 mm 1.76 mm World eIoni + 2 -1.09 mm -1.09 mm -2.86 m 4.34e-13 eV 3.41 keV 364 mum 2.13 mm World eIoni >>> Event 0 0 trajectories stored in this event. ### Run 1 start. @@ -2383,1537 +2479,156 @@ 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.7 m 1e+03 GeV 41.1 keV 21.1 cm 21.1 cm World MuIoni - 2 11.5 nm -6.08 nm -2.56 m 1e+03 GeV 36.1 keV 13.9 cm 35 cm World MuIoni - 3 73 nm -3.34 nm -2.45 m 1e+03 GeV 24.5 keV 11 cm 46 cm World Transportation - 4 125 nm -116 nm -2.44 m 1e+03 GeV 12.7 MeV 8.13 mm 46.8 cm Target MuPairProd - 5 103 nm 322 nm -2.4 m 1e+03 GeV 81.9 MeV 4.19 cm 51 cm Target Transportation - 6 6.88 mum 5.81 mum -2.19 m 1e+03 GeV 52.4 keV 20.7 cm 71.7 cm Tracker MuIoni - 7 26.4 mum 21.5 mum -1.6 m 1e+03 GeV 123 keV 59.3 cm 1.31 m Tracker Transportation - 8 33 mum 26.8 mum -1.4 m 1e+03 GeV 150 keV 20 cm 1.51 m Chamber Transportation - 9 38.1 mum 30.8 mum -1.24 m 1e+03 GeV 37.5 keV 15.6 cm 1.67 m Tracker MuIoni - 10 52.7 mum 42.4 mum -80 cm 1e+03 GeV 103 keV 44.4 cm 2.11 m Tracker Transportation - 11 59.3 mum 47.5 mum -60 cm 1e+03 GeV 184 keV 20 cm 2.31 m Chamber Transportation - 12 75.3 mum 63 mum 0.114 fm 1e+03 GeV 156 keV 60 cm 2.91 m Tracker Transportation - 13 80.7 mum 68.2 mum 20 cm 1e+03 GeV 131 keV 20 cm 3.11 m Chamber Transportation - 14 80.8 mum 68.3 mum 20.5 cm 1e+03 GeV 566 eV 4.85 mm 3.11 m Tracker MuIoni - 15 82.9 mum 70.4 mum 28 cm 1e+03 GeV 24.5 keV 7.48 cm 3.19 m Tracker MuIoni - 16 92 mum 79.7 mum 61.1 cm 1e+03 GeV 80.8 keV 33.1 cm 3.52 m Tracker MuIoni - 17 97.2 mum 85 mum 80 cm 1e+03 GeV 47.2 keV 18.9 cm 3.71 m Tracker Transportation - 18 99 mum 86.9 mum 86.9 cm 1e+03 GeV 70.3 keV 6.92 cm 3.78 m Chamber MuIoni - 19 99.5 mum 87.4 mum 88.8 cm 1e+03 GeV 43.9 keV 1.88 cm 3.8 m Chamber MuIoni - 20 103 mum 90.7 mum 1 m 1e+03 GeV 86.9 keV 11.2 cm 3.91 m Chamber Transportation - 21 119 mum 108 mum 1.6 m 1e+03 GeV 143 keV 60 cm 4.51 m Tracker Transportation - 22 124 mum 114 mum 1.8 m 1e+03 GeV 200 keV 20 cm 4.71 m Chamber Transportation - 23 128 mum 118 mum 1.93 m 1e+03 GeV 32 keV 12.9 cm 4.84 m Tracker MuIoni - 24 140 mum 132 mum 2.4 m 1e+03 GeV 102 keV 47.1 cm 5.31 m Tracker Transportation - 25 154 mum 147 mum 2.91 m 1e+03 GeV 115 keV 51 cm 5.82 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 128 mum 118 mum 1.93 m 331 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -6.13 cm -11 cm 2.07 m 284 keV 46.7 keV 19.9 cm 19.9 cm Tracker eIoni - 2 -15.9 cm -20.5 cm 2.03 m 241 keV 43 keV 15.8 cm 35.7 cm Tracker eIoni - 3 -16.5 cm -31 cm 2.08 m 211 keV 29.4 keV 12.2 cm 47.9 cm Tracker eIoni - 4 -17.9 cm -37 cm 2.15 m 184 keV 27 keV 9.9 cm 57.8 cm Tracker eIoni - 5 -19.2 cm -44.4 cm 2.16 m 162 keV 22.4 keV 7.93 cm 65.7 cm Tracker eIoni - 6 -22 cm -49.7 cm 2.15 m 134 keV 28.1 keV 6.41 cm 72.1 cm Tracker eIoni - 7 -19.9 cm -53.6 cm 2.15 m 114 keV 19.5 keV 4.68 cm 76.8 cm Tracker eIoni - 8 -18.2 cm -56.4 cm 2.17 m 92.8 keV 21.6 keV 3.61 cm 80.4 cm Tracker eIoni - 9 -17.1 cm -58.1 cm 2.15 m 77.7 keV 15.2 keV 2.55 cm 83 cm Tracker eIoni - 10 -15.8 cm -59.2 cm 2.15 m 70 keV 7.62 keV 1.9 cm 84.9 cm Tracker eIoni - 11 -15.6 cm -60.7 cm 2.14 m 63.6 keV 6.41 keV 1.62 cm 86.5 cm Tracker eIoni - 12 -14.8 cm -61.2 cm 2.14 m 57.2 keV 6.46 keV 1.38 cm 87.9 cm Tracker eIoni - 13 -13.7 cm -61.1 cm 2.14 m 52.8 keV 4.36 keV 1.17 cm 89 cm Tracker eIoni - 14 -12.9 cm -61.3 cm 2.13 m 45.4 keV 7.38 keV 1.03 cm 90.1 cm Tracker eIoni - 15 -12.1 cm -61.5 cm 2.13 m 31.8 keV 13.6 keV 8.26 mm 90.9 cm Tracker eIoni - 16 -12.1 cm -61.2 cm 2.13 m 27.9 keV 3.95 keV 5.08 mm 91.4 cm Tracker eIoni - 17 -11.9 cm -61.2 cm 2.13 m 20.1 keV 7.82 keV 4.32 mm 91.8 cm Tracker eIoni - 18 -11.8 cm -61.3 cm 2.13 m 15.4 keV 4.67 keV 3.03 mm 92.1 cm Tracker eIoni - 19 -11.8 cm -61.1 cm 2.13 m 9.92 keV 5.48 keV 2.39 mm 92.4 cm Tracker eIoni - 20 -11.7 cm -61.1 cm 2.13 m 6.38 keV 3.54 keV 1.68 mm 92.5 cm Tracker eIoni - 21 -11.7 cm -61.2 cm 2.13 m 1.38 keV 4.99 keV 1.04 mm 92.6 cm Tracker eIoni - 22 -11.7 cm -61.2 cm 2.13 m 2.17e-13 eV 1.38 keV 90.5 mum 92.6 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 99.5 mum 87.4 mum 88.8 cm 56.9 keV 0 eV 0 fm 0 fm Chamber initStep - 1 540 mum 2.56 mm 88.6 cm 42.2 keV 14.8 keV 5.43 mm 5.43 mm Chamber eIoni - 2 646 mum 3.07 mm 88.8 cm 34.1 keV 8.1 keV 3.87 mm 9.29 mm Chamber eIoni - 3 1.53 mm 3.85 mm 88.9 cm 27.7 keV 6.36 keV 3.14 mm 1.24 cm Chamber eIoni - 4 1.08 mm 4.77 mm 89 cm 19.8 keV 7.94 keV 2.62 mm 1.51 cm Chamber eIoni - 5 606 mum 4.29 mm 89 cm 8.44 keV 11.3 keV 2.02 mm 1.71 cm Chamber eIoni - 6 523 mum 4.26 mm 89 cm 0 eV 8.44 keV 841 mum 1.79 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 99 mum 86.9 mum 86.9 cm 65.7 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -54.6 mum -3.85 mm 86.9 cm 55.3 keV 10.4 keV 6.48 mm 6.48 mm Chamber eIoni - 2 -1.85 mm -1.83 mm 86.7 cm 50.3 keV 5.04 keV 5.24 mm 1.17 cm Chamber eIoni - 3 -1.78 mm -124 mum 86.9 cm 39.9 keV 10.3 keV 4.69 mm 1.64 cm Chamber eIoni - 4 -1.86 mm -1.87 mm 86.9 cm 26.3 keV 13.6 keV 3.66 mm 2.01 cm Chamber eIoni - 5 -1.9 mm -1.28 mm 86.8 cm 21.2 keV 5.11 keV 2.51 mm 2.26 cm Chamber eIoni - 6 -1.44 mm -744 mum 86.8 cm 16.1 keV 5.13 keV 2.13 mm 2.47 cm Chamber eIoni - 7 -1.01 mm -1.02 mm 86.8 cm 8.79 keV 7.29 keV 1.73 mm 2.64 cm Chamber eIoni - 8 -1.06 mm -978 mum 86.8 cm 0 eV 8.79 keV 897 mum 2.73 cm Chamber eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 92 mum 79.7 mum 61.1 cm 140 keV 0 eV 0 fm 0 fm Tracker initStep - 1 3.6 cm -2.3 cm 63.5 cm 127 keV 13 keV 5.07 cm 5.07 cm Tracker eIoni - 2 4.4 cm -5.45 cm 66 cm 107 keV 20 keV 4.31 cm 9.38 cm Tracker eIoni - 3 7.29 cm -6.41 cm 66.2 cm 94 keV 13.3 keV 3.24 cm 12.6 cm Tracker eIoni - 4 9.22 cm -7.8 cm 67 cm 84.7 keV 9.32 keV 2.61 cm 15.2 cm Tracker eIoni - 5 8.96 cm -9.7 cm 66.4 cm 71.6 keV 13.1 keV 2.2 cm 17.4 cm Tracker eIoni - 6 8.64 cm -10.9 cm 67.3 cm 63.6 keV 7.99 keV 1.67 cm 19.1 cm Tracker eIoni - 7 7.76 cm -11.6 cm 68.1 cm 53.4 keV 10.2 keV 1.38 cm 20.5 cm Tracker eIoni - 8 6.96 cm -11 cm 68 cm 48.1 keV 5.35 keV 1.05 cm 21.5 cm Tracker eIoni - 9 6.35 cm -10.6 cm 68.2 cm 44.1 keV 3.93 keV 8.99 mm 22.4 cm Tracker eIoni - 10 6.23 cm -11.1 cm 68.8 cm 37.5 keV 6.67 keV 7.9 mm 23.2 cm Tracker eIoni - 11 5.97 cm -11.6 cm 69 cm 32.4 keV 5.06 keV 6.29 mm 23.8 cm Tracker eIoni - 12 5.72 cm -11.6 cm 69.4 cm 27.6 keV 4.76 keV 5.19 mm 24.4 cm Tracker eIoni - 13 5.4 cm -11.5 cm 69.6 cm 21.8 keV 5.87 keV 4.27 mm 24.8 cm Tracker eIoni - 14 5.6 cm -11.7 cm 69.8 cm 16.8 keV 4.96 keV 3.28 mm 25.1 cm Tracker eIoni - 15 5.77 cm -11.7 cm 69.9 cm 12.6 keV 4.16 keV 2.58 mm 25.4 cm Tracker eIoni - 16 5.86 cm -11.8 cm 70 cm 9.14 keV 3.5 keV 2.04 mm 25.6 cm Tracker eIoni - 17 5.95 cm -11.8 cm 70.1 cm 5.9 keV 3.24 keV 1.57 mm 25.7 cm Tracker eIoni - 18 5.94 cm -11.8 cm 70.1 cm 0 eV 5.9 keV 908 mum 25.8 cm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 82.9 mum 70.4 mum 28 cm 10.1 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -461 mum 1.12 mm 28.1 cm 6.6 keV 3.49 keV 1.71 mm 1.71 mm Tracker eIoni - 2 -835 mum 1.24 mm 28.1 cm 8.67e-13 eV 6.6 keV 1.09 mm 2.8 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 80.8 mum 68.3 mum 20.5 cm 8.57 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -646 mum 642 mum 20.5 cm 4.4 keV 4.17 keV 1.48 mm 1.48 mm Tracker eIoni - 2 -640 mum 592 mum 20.5 cm 0 eV 4.4 keV 556 mum 2.04 mm Tracker eIoni + 1 20.4 nm -11.3 nm -2.81 m 1e+03 GeV 25.9 keV 9.76 cm 9.76 cm World MuIoni + 2 100 nm -101 nm -2.45 m 1e+03 GeV 84.7 keV 36.2 cm 46 cm World Transportation + 3 116 nm -131 nm -2.4 m 1e+03 GeV 77.3 MeV 5 cm 51 cm Target Transportation + 4 -3.36 mum 11.5 mum -2.29 m 1e+03 GeV 20.2 keV 10.8 cm 61.8 cm Tracker MuIoni + 5 -25.7 mum 85.8 mum -1.6 m 1e+03 GeV 166 keV 69.2 cm 1.31 m Tracker Transportation + 6 -32.1 mum 107 mum -1.4 m 1e+03 GeV 187 keV 20 cm 1.51 m Chamber Transportation + 7 -51.6 mum 172 mum -80 cm 1e+03 GeV 135 keV 60 cm 2.11 m Tracker Transportation + 8 -58.1 mum 193 mum -60 cm 1e+03 GeV 184 keV 20 cm 2.31 m Chamber Transportation + 9 -78.1 mum 258 mum 0 fm 1e+03 GeV 139 keV 60 cm 2.91 m Tracker Transportation + 10 -84.7 mum 280 mum 20 cm 1e+03 GeV 184 keV 20 cm 3.11 m Chamber Transportation + 11 -104 mum 342 mum 76.8 cm 1e+03 GeV 127 keV 56.8 cm 3.68 m Tracker MuIoni + 12 -105 mum 346 mum 80 cm 1e+03 GeV 8.99 keV 3.24 cm 3.71 m Tracker Transportation + 13 -112 mum 368 mum 1 m 1e+03 GeV 112 keV 20 cm 3.91 m Chamber Transportation + 14 -123 mum 400 mum 1.3 m 1e+03 GeV 72.9 keV 29.7 cm 4.21 m Tracker MuIoni + 15 -131 mum 426 mum 1.53 m 1e+03 GeV 61.7 keV 23.8 cm 4.44 m Tracker MuIoni + 16 -133 mum 433 mum 1.6 m 1e+03 GeV 11.7 keV 6.54 cm 4.51 m Tracker Transportation + 17 -140 mum 455 mum 1.8 m 1e+03 GeV 158 keV 20 cm 4.71 m Chamber Transportation + 18 -159 mum 511 mum 2.31 m 1e+03 GeV 124 keV 51.4 cm 5.22 m Tracker MuIoni + 19 -162 mum 520 mum 2.4 m 1e+03 GeV 16.3 keV 8.57 cm 5.31 m Tracker Transportation + 20 -180 mum 575 mum 2.91 m 1e+03 GeV 115 keV 51 cm 5.82 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 38.1 mum 30.8 mum -1.24 m 27.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 2.3 mm -3.13 mm -1.24 m 21.9 keV 5.38 keV 4.2 mm 4.2 mm Tracker eIoni - 2 4.1 mm -3.18 mm -1.25 m 14.8 keV 7.1 keV 3.3 mm 7.51 mm Tracker eIoni - 3 3.12 mm -4.76 mm -1.25 m 8.11 keV 6.67 keV 2.31 mm 9.82 mm Tracker eIoni - 4 2.71 mm -4.72 mm -1.25 m 2.91 keV 5.19 keV 1.4 mm 1.12 cm Tracker eIoni - 5 2.66 mm -4.68 mm -1.25 m 4.34e-13 eV 2.91 keV 282 mum 1.15 cm Tracker eIoni + 0 -159 mum 511 mum 2.31 m 32 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.32 mm 4.5 mm 2.32 m 27.3 keV 4.73 keV 5.11 mm 5.11 mm Tracker eIoni + 2 -1.35 mm 7.34 mm 2.32 m 22 keV 5.23 keV 4.2 mm 9.31 mm Tracker eIoni + 3 -1.59 mm 1.04 cm 2.32 m 17.9 keV 4.16 keV 3.33 mm 1.26 cm Tracker eIoni + 4 -3.38 mm 1.14 cm 2.32 m 13.5 keV 4.39 keV 2.72 mm 1.54 cm Tracker eIoni + 5 -4.39 mm 1.23 cm 2.32 m 8.02 keV 5.46 keV 2.15 mm 1.75 cm Tracker eIoni + 6 -3.63 mm 1.21 cm 2.32 m 0 eV 8.02 keV 1.39 mm 1.89 cm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.88 mum 5.81 mum -2.19 m 9 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -939 mum 627 mum -2.19 m 2.3 keV 6.7 keV 1.55 mm 1.55 mm Tracker eIoni - 2 -925 mum 608 mum -2.19 m 0 eV 2.3 keV 193 mum 1.74 mm Tracker eIoni + 0 -131 mum 426 mum 1.53 m 8.21 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -138 mum -545 mum 1.54 m 4.72 keV 3.5 keV 1.42 mm 1.42 mm Tracker eIoni + 2 55.5 mum -401 mum 1.54 m 0 eV 4.72 keV 621 mum 2.04 mm Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 5, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 125 nm -116 nm -2.44 m 39.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 -22.6 mum -21.8 mum -2.44 m 19.1 MeV 479 keV 425 mum 425 mum Target eBrem - 2 -27.9 mum 384 mum -2.44 m 16.9 MeV 1.45 MeV 1.33 mm 1.76 mm Target eBrem - 3 18.7 mum 2 mm -2.44 m 13.3 MeV 2.84 MeV 2.06 mm 3.81 mm Target eBrem - 4 478 mum 2.14 mm -2.44 m 11.9 MeV 825 keV 763 mum 4.58 mm Target eBrem - 5 548 mum 2.15 mm -2.44 m 10.8 MeV 94.6 keV 107 mum 4.68 mm Target eBrem - 6 1.28 mm 1.75 mm -2.44 m 3.51 MeV 2.73 MeV 2.48 mm 7.16 mm Target eBrem - 7 2.07 mm 1.45 mm -2.44 m 1.5 MeV 2.01 MeV 1.88 mm 9.05 mm Target eIoni - 8 2.06 mm 1.42 mm -2.44 m 0 eV 1.3 MeV 1.01 mm 1.01 cm Target annihil + 0 -123 mum 400 mum 1.3 m 284 keV 0 eV 0 fm 0 fm Tracker initStep + 1 9.53 mm -2.6 cm 1.31 m 253 keV 11.5 keV 3.04 cm 3.04 cm Tracker eIoni + 2 1.61 cm -13.3 cm 1.36 m 222 keV 31.3 keV 13.2 cm 16.2 cm Tracker eIoni + 3 4.27 cm -20.8 cm 1.43 m 193 keV 28.8 keV 10.7 cm 26.9 cm Tracker eIoni + 4 2.8 cm -27.9 cm 1.46 m 155 keV 38.3 keV 8.52 cm 35.4 cm Tracker eIoni + 5 7.84 mm -31.5 cm 1.49 m 138 keV 16.2 keV 5.94 cm 41.3 cm Tracker eIoni + 6 -2.75 cm -34.3 cm 1.5 m 125 keV 13.3 keV 4.95 cm 46.3 cm Tracker eIoni + 7 -6.31 cm -36.2 cm 1.51 m 110 keV 15.5 keV 4.19 cm 50.5 cm Tracker eIoni + 8 -7.95 cm -38.9 cm 1.51 m 101 keV 9.1 keV 3.35 cm 53.8 cm Tracker eIoni + 9 -8.55 cm -41.7 cm 1.51 m 91.7 keV 8.89 keV 2.92 cm 56.8 cm Tracker eIoni + 10 -8.32 cm -43.9 cm 1.5 m 83 keV 8.62 keV 2.49 cm 59.3 cm Tracker eIoni + 11 -6.79 cm -42.7 cm 1.51 m 72.4 keV 10.6 keV 2.13 cm 61.4 cm Tracker eIoni + 12 -5.23 cm -42.3 cm 1.51 m 52.7 keV 19.7 keV 1.7 cm 63.1 cm Tracker eIoni + 13 -4.74 cm -41.4 cm 1.51 m 46.2 keV 6.52 keV 1.03 cm 64.1 cm Tracker eIoni + 14 -4.54 cm -40.7 cm 1.51 m 38.2 keV 7.98 keV 8.48 mm 65 cm Tracker eIoni + 15 -4.37 cm -41 cm 1.5 m 33.6 keV 4.67 keV 6.47 mm 65.6 cm Tracker eIoni + 16 -4.11 cm -40.7 cm 1.5 m 30.5 keV 3.1 keV 5.43 mm 66.2 cm Tracker eIoni + 17 -3.92 cm -40.9 cm 1.5 m 25.4 keV 5.1 keV 4.79 mm 66.6 cm Tracker eIoni + 18 -3.58 cm -41 cm 1.5 m 19.9 keV 5.48 keV 3.86 mm 67 cm Tracker eIoni + 19 -3.8 cm -41.1 cm 1.5 m 12 keV 7.83 keV 3 mm 67.3 cm Tracker eIoni + 20 -3.92 cm -41.2 cm 1.5 m 4.44 keV 7.61 keV 1.96 mm 67.5 cm Tracker eIoni + 21 -3.97 cm -41.2 cm 1.5 m 0 eV 4.44 keV 563 mum 67.6 cm Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.06 mm 1.42 mm -2.44 m 725 keV 0 eV 0 fm 0 fm Target initStep - 1 1.5 mm -873 mum -2.45 m 383 keV 0 eV 1.04 cm 1.04 cm Target compt - 2 3.68 mm 432 mum -2.45 m 0 eV 88 keV 2.97 mm 1.34 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 21 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.68 mm 432 mum -2.45 m 295 keV 0 eV 0 fm 0 fm Target initStep - 1 3.69 mm 437 mum -2.45 m 0 eV 295 keV 145 mum 145 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 21 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.5 mm -873 mum -2.45 m 342 keV 0 eV 0 fm 0 fm Target initStep - 1 1.5 mm -879 mum -2.45 m 0 eV 342 keV 178 mum 178 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.06 mm 1.42 mm -2.44 m 496 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.11 mm 1.87 mm -2.43 m 451 keV 0 eV 6.62 mm 6.62 mm Target compt - 2 -3 mm 1.99 mm -2.43 m 199 keV 0 eV 3.94 mm 1.06 cm Target compt - 3 -2.43 mm 2.4 mm -2.43 m 0 eV 88 keV 725 mum 1.13 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 mm 2.4 mm -2.43 m 111 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.43 mm 2.4 mm -2.43 m 0 eV 111 keV 32.3 mum 32.3 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3 mm 1.99 mm -2.43 m 252 keV 0 eV 0 fm 0 fm Target initStep - 1 -3 mm 1.99 mm -2.43 m 0 eV 252 keV 115 mum 115 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.11 mm 1.87 mm -2.43 m 45.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.11 mm 1.87 mm -2.43 m 1.39e-11 eV 45.2 keV 7.56 mum 7.56 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.28 mm 1.75 mm -2.44 m 4.57 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.29 cm 2.72 mm -2.43 m 338 keV 0 eV 1.53 cm 1.53 cm Target compt - 2 1.29 cm 2.33 mm -2.43 m 0 eV 88 keV 443 mum 1.58 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.29 cm 2.33 mm -2.43 m 250 keV 0 eV 0 fm 0 fm Target initStep - 1 1.29 cm 2.32 mm -2.43 m 8.33e-11 eV 250 keV 114 mum 114 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.29 cm 2.72 mm -2.43 m 4.23 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.3 cm 3.09 mm -2.43 m 2.48 MeV 1.01 MeV 1.02 mm 1.02 mm Target eBrem - 2 1.31 cm 2.85 mm -2.43 m 0 eV 2.48 MeV 1.58 mm 2.6 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 27 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.3 cm 3.09 mm -2.43 m 745 keV 0 eV 0 fm 0 fm Target initStep - 1 1.55 cm -5.31 mm -2.43 m 219 keV 0 eV 8.76 mm 8.76 mm Target compt - 2 1.51 cm -5.13 mm -2.43 m 0 eV 88 keV 442 mum 9.2 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 29 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.51 cm -5.13 mm -2.43 m 131 keV 0 eV 0 fm 0 fm Target initStep - 1 1.51 cm -5.13 mm -2.43 m 5.55e-11 eV 131 keV 42 mum 42 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 29 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.55 cm -5.31 mm -2.43 m 527 keV 0 eV 0 fm 0 fm Target initStep - 1 1.55 cm -5.33 mm -2.43 m 0 eV 527 keV 323 mum 323 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 548 mum 2.15 mm -2.44 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 9.49 mm 5.13 mm -2.43 m 473 keV 0 eV 1.52 cm 1.52 cm Target compt - 2 1.01 cm 4.7 mm -2.43 m 192 keV 0 eV 781 mum 1.6 cm Target compt - 3 1.01 cm 4.95 mm -2.43 m 0 eV 88 keV 323 mum 1.63 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.01 cm 4.95 mm -2.43 m 104 keV 0 eV 0 fm 0 fm Target initStep - 1 1.01 cm 4.95 mm -2.43 m 0 eV 104 keV 29.1 mum 29.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.01 cm 4.7 mm -2.43 m 281 keV 0 eV 0 fm 0 fm Target initStep - 1 1.02 cm 4.7 mm -2.43 m 0 eV 281 keV 135 mum 135 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.49 mm 5.13 mm -2.43 m 561 keV 0 eV 0 fm 0 fm Target initStep - 1 9.5 mm 5.14 mm -2.43 m 0 eV 561 keV 351 mum 351 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 478 mum 2.14 mm -2.44 m 538 keV 0 eV 0 fm 0 fm Target initStep - 1 2.25 mm 2.33 mm -2.44 m 366 keV 0 eV 2.46 mm 2.46 mm Target compt - 2 2.06 mm 2.68 mm -2.44 m 0 eV 88 keV 1.18 mm 3.64 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.06 mm 2.68 mm -2.44 m 278 keV 0 eV 0 fm 0 fm Target initStep - 1 2.06 mm 2.69 mm -2.44 m 0 eV 278 keV 133 mum 133 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.25 mm 2.33 mm -2.44 m 172 keV 0 eV 0 fm 0 fm Target initStep - 1 2.26 mm 2.33 mm -2.44 m 2.78e-11 eV 172 keV 64.5 mum 64.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 18.7 mum 2 mm -2.44 m 781 keV 0 eV 0 fm 0 fm Target initStep - 1 4.08 mm 1.4 mm -2.43 m 0 eV 88 keV 6.79 mm 6.79 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 16 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.08 mm 1.4 mm -2.43 m 693 keV 0 eV 0 fm 0 fm Target initStep - 1 4.09 mm 1.4 mm -2.43 m 0 eV 693 keV 459 mum 459 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -27.9 mum 384 mum -2.44 m 771 keV 0 eV 0 fm 0 fm Target initStep - 1 333 mum 1.56 mm -2.44 m 0 eV 88 keV 1.96 mm 1.96 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 15 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 333 mum 1.56 mm -2.44 m 683 keV 0 eV 0 fm 0 fm Target initStep - 1 339 mum 1.58 mm -2.44 m 0 eV 683 keV 451 mum 451 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -22.6 mum -21.8 mum -2.44 m 20.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 285 mum 524 mum -2.43 m 0 eV 0 eV 9.9 mm 9.9 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 40, Parent ID = 14 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 285 mum 524 mum -2.43 m 4.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 523 mum 373 mum -2.43 m 2.97 MeV 551 keV 553 mum 553 mum Target eBrem - 2 141 mum 645 mum -2.43 m 1.05 MeV 1.92 MeV 1.75 mm 2.3 mm Target eIoni - 3 131 mum 672 mum -2.43 m 133 keV 18.4 keV 30.4 mum 2.33 mm Target eBrem - 4 127 mum 677 mum -2.43 m 0 eV 27.7 keV 14 mum 2.34 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 127 mum 677 mum -2.43 m 565 keV 0 eV 0 fm 0 fm Target initStep - 1 2.05 mm 4.29 mm -2.43 m 0 eV 88 keV 5.38 mm 5.38 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 44 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.05 mm 4.29 mm -2.43 m 477 keV 0 eV 0 fm 0 fm Target initStep - 1 2.06 mm 4.29 mm -2.43 m 0 eV 477 keV 283 mum 283 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 127 mum 677 mum -2.43 m 562 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.95 mm -833 mum -2.42 m 0 eV 88 keV 1.18 cm 1.18 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 43 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.95 mm -833 mum -2.42 m 474 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.96 mm -834 mum -2.42 m 0 eV 474 keV 280 mum 280 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 131 mum 672 mum -2.43 m 897 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 mm 815 mum -2.43 m 845 keV 0 eV 1.42 mm 1.42 mm Target compt - 2 4.73 mm 707 mum -2.43 m 0 eV 88 keV 3.85 mm 5.27 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 42 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.73 mm 707 mum -2.43 m 757 keV 0 eV 0 fm 0 fm Target initStep - 1 4.76 mm 710 mum -2.43 m 0 eV 757 keV 513 mum 513 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 42 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.47 mm 815 mum -2.43 m 52.4 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 mm 816 mum -2.43 m 0 eV 52.4 keV 9.61 mum 9.61 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 40 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 523 mum 373 mum -2.43 m 517 keV 0 eV 0 fm 0 fm Target initStep - 1 249 mum 204 mum -2.43 m 0 eV 88 keV 714 mum 714 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 41 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 249 mum 204 mum -2.43 m 429 keV 0 eV 0 fm 0 fm Target initStep - 1 238 mum 191 mum -2.43 m 5.55e-11 eV 429 keV 245 mum 245 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 14 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 285 mum 524 mum -2.43 m 15.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -32.9 mum 422 mum -2.43 m 7.77 MeV 2.88 MeV 915 mum 915 mum Target eBrem - 2 87.6 mum 362 mum -2.43 m 6.7 MeV 278 keV 289 mum 1.2 mm Target eBrem - 3 803 mum 1.15 mm -2.43 m 2.18 MeV 2.4 MeV 2.06 mm 3.27 mm Target eBrem - 4 552 mum 1.33 mm -2.43 m 624 keV 1.56 MeV 1.47 mm 4.74 mm Target eIoni - 5 527 mum 1.31 mm -2.43 m 0 eV 624 keV 403 mum 5.14 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 52, Parent ID = 39 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 803 mum 1.15 mm -2.43 m 2.11 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.88 mm 932 mum -2.43 m 297 keV 0 eV 3.3 mm 3.3 mm Target compt - 2 -1.9 mm 812 mum -2.43 m 0 eV 88 keV 353 mum 3.66 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 52 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.9 mm 812 mum -2.43 m 209 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.9 mm 811 mum -2.43 m 8.33e-11 eV 209 keV 87.1 mum 87.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.88 mm 932 mum -2.43 m 1.81 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.9 mm 936 mum -2.43 m 1.5 MeV 19.4 keV 24.6 mum 24.6 mum Target eBrem - 2 -1.96 mm 799 mum -2.43 m 276 keV 1.23 MeV 1.13 mm 1.15 mm Target eIoni - 3 -1.97 mm 807 mum -2.43 m 1.11e-10 eV 276 keV 131 mum 1.29 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 53 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.9 mm 936 mum -2.43 m 291 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.82 mm 77.6 mum -2.43 m 257 keV 0 eV 1.55 mm 1.55 mm Target compt - 2 -4.81 mm -8.47 mm -2.43 m 165 keV 0 eV 8.94 mm 1.05 cm Target compt - 3 -4.95 mm -8.46 mm -2.43 m 145 keV 0 eV 301 mum 1.08 cm Target compt - 4 -5.32 mm -9.18 mm -2.43 m 0 eV 88 keV 929 mum 1.17 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.32 mm -9.18 mm -2.43 m 56.7 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.32 mm -9.18 mm -2.43 m 0 eV 56.7 keV 11 mum 11 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.95 mm -8.46 mm -2.43 m 20.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.95 mm -8.46 mm -2.43 m 0 eV 20.2 keV 2.06 mum 2.06 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.81 mm -8.47 mm -2.43 m 92.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.81 mm -8.47 mm -2.43 m 0 eV 92.6 keV 24.2 mum 24.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 55 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.82 mm 77.6 mum -2.43 m 33.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.82 mm 77.8 mum -2.43 m 0 eV 33.3 keV 4.61 mum 4.61 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 39 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 87.6 mum 362 mum -2.43 m 794 keV 0 eV 0 fm 0 fm Target initStep - 1 3.14 mm -65.2 mum -2.42 m 263 keV 0 eV 1.54 cm 1.54 cm Target compt - 2 3.18 mm -402 mum -2.42 m 149 keV 0 eV 364 mum 1.58 cm Target compt - 3 2.94 mm -299 mum -2.41 m 0 eV 88 keV 859 mum 1.66 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 51 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.94 mm -299 mum -2.41 m 61.1 keV 0 eV 0 fm 0 fm Target initStep - 1 2.94 mm -298 mum -2.41 m 6.94e-12 eV 61.1 keV 12.4 mum 12.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 51 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.18 mm -402 mum -2.42 m 114 keV 0 eV 0 fm 0 fm Target initStep - 1 3.18 mm -404 mum -2.42 m 0 eV 114 keV 33.9 mum 33.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 51 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.14 mm -65.2 mum -2.42 m 531 keV 0 eV 0 fm 0 fm Target initStep - 1 3.14 mm -59.3 mum -2.42 m 1.11e-10 eV 531 keV 326 mum 326 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 50, Parent ID = 39 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -32.9 mum 422 mum -2.43 m 4.59 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.6 mm -992 mum -2.41 m 2.09 MeV 0 eV 1.88 cm 1.88 cm Target compt - 2 2.02 mm 3.38 mm -2.4 m 2.09 MeV 0 eV 1.31 cm 3.2 cm Target Transportation - 3 -20.4 cm 57.2 cm -80 cm 2.09 MeV 0 eV 1.71 m 1.74 m Tracker Transportation - 4 -23 cm 64.3 cm -60 cm 2.09 MeV 0 eV 21.4 cm 1.96 m Chamber Transportation - 5 -30.7 cm 85.6 cm 0 fm 2.09 MeV 0 eV 64.1 cm 2.6 m Tracker Transportation - 6 -33.2 cm 92.8 cm 20 cm 2.09 MeV 0 eV 21.4 cm 2.81 m Chamber Transportation - 7 -41 cm 1.14 m 80 cm 2.09 MeV 0 eV 64.1 cm 3.45 m Tracker Transportation - 8 -43.5 cm 1.21 m 1 m 2.09 MeV 0 eV 21.4 cm 3.67 m Chamber Transportation - 9 -51.3 cm 1.43 m 1.6 m 2.09 MeV 0 eV 64.1 cm 4.31 m Tracker Transportation - 10 -53.8 cm 1.5 m 1.8 m 2.09 MeV 0 eV 21.4 cm 4.52 m Chamber Transportation - 11 -61.6 cm 1.71 m 2.4 m 2.09 MeV 0 eV 64.1 cm 5.16 m Tracker Transportation - 12 -68.1 cm 1.89 m 2.91 m 2.09 MeV 0 eV 54.5 cm 5.71 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 50 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.6 mm -992 mum -2.41 m 2.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.99 mm -1.12 mm -2.41 m 935 keV 1.56 MeV 1.58 mm 1.58 mm Target eIoni - 2 4 mm -1.17 mm -2.41 m 0 eV 935 keV 664 mum 2.25 mm Target eIoni + 0 9.53 mm -2.6 cm 1.31 m 19.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.13 cm -2.69 cm 1.31 m 13.6 keV 5.93 keV 2.95 mm 2.95 mm Tracker eIoni + 2 1.26 cm -2.69 cm 1.3 m 8.81 keV 4.78 keV 2.16 mm 5.12 mm Tracker eIoni + 3 1.38 cm -2.75 cm 1.3 m 1.88 keV 6.93 keV 1.52 mm 6.64 mm Tracker eIoni + 4 1.39 cm -2.75 cm 1.3 m 4.34e-13 eV 1.88 keV 142 mum 6.78 mm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 125 nm -116 nm -2.44 m 70.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 mum -447 nm -2.44 m 70 MeV 61.2 keV 71 mum 71 mum Target eBrem - 2 82 nm 553 nm -2.44 m 69.4 MeV 170 keV 170 mum 241 mum Target eBrem - 3 23.2 mum 21.4 mum -2.44 m 22.4 MeV 719 keV 607 mum 848 mum Target eBrem - 4 25.1 mum 27 mum -2.44 m 20.7 MeV 250 keV 187 mum 1.04 mm Target eBrem - 5 -152 mum 104 mum -2.44 m 16.4 MeV 3.87 MeV 687 mum 1.72 mm Target eBrem - 6 -168 mum 140 mum -2.44 m 12.7 MeV 92 keV 51.4 mum 1.77 mm Target eBrem - 7 -207 mum 211 mum -2.44 m 7.73 MeV 109 keV 103 mum 1.88 mm Target eBrem - 8 -216 mum 292 mum -2.44 m 3.1 MeV 143 keV 111 mum 1.99 mm Target eBrem - 9 -341 mum 810 mum -2.44 m 1.12 MeV 1.35 MeV 1.3 mm 3.29 mm Target eBrem - 10 -267 mum 811 mum -2.44 m 0 eV 1.12 MeV 821 mum 4.11 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -341 mum 810 mum -2.44 m 633 keV 0 eV 0 fm 0 fm Target initStep - 1 1.42 cm 2.07 mm -2.44 m 0 eV 88 keV 1.49 cm 1.49 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.42 cm 2.07 mm -2.44 m 545 keV 0 eV 0 fm 0 fm Target initStep - 1 1.43 cm 2.08 mm -2.44 m 1.11e-10 eV 545 keV 338 mum 338 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -216 mum 292 mum -2.44 m 4.49 MeV 0 eV 0 fm 0 fm Target initStep - 1 40.4 mum 2.01 mm -2.44 m 3.78 MeV 0 eV 2.51 mm 2.51 mm Target compt - 2 -1.22 mm 1.28 cm -2.43 m 1.87 MeV 0 eV 1.45 cm 1.7 cm Target compt - 3 -6.05 mm 2.5 cm -2.43 m 1.87 MeV 0 eV 1.35 cm 3.06 cm Target Transportation - 4 -4.34 cm 11.9 cm -2.4 m 1.87 MeV 0 eV 10.4 cm 13.5 cm World Transportation - 5 -94.8 cm 2.4 m -1.79 m 1.87 MeV 0 eV 2.53 m 2.66 m Tracker Transportation - 6 -1.15 m 2.91 m -1.65 m 1.87 MeV 0 eV 56.5 cm 3.23 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm 1.28 cm -2.43 m 1.91 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm 1.29 cm -2.43 m 56.1 keV 1.85 MeV 1.36 mm 1.36 mm Target eIoni - 2 -1.24 mm 1.29 cm -2.43 m 1.39e-11 eV 56.1 keV 10.8 mum 1.37 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 40.4 mum 2.01 mm -2.44 m 711 keV 0 eV 0 fm 0 fm Target initStep - 1 67 mum 2.02 mm -2.44 m 0 eV 711 keV 475 mum 475 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -207 mum 211 mum -2.44 m 4.85 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.88 mm 2.5 cm -2.42 m 4.85 MeV 0 eV 3.28 cm 3.28 cm Target Transportation - 2 -1.78 cm 5.06 cm -2.4 m 4.85 MeV 0 eV 3.4 cm 6.68 cm World Transportation - 3 -84 cm 2.4 m -53.2 cm 4.85 MeV 0 eV 3.11 m 3.18 m Tracker Transportation - 4 -1.02 m 2.91 m -12.7 cm 4.85 MeV 0 eV 67.6 cm 3.85 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -168 mum 140 mum -2.44 m 3.62 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.57 mm 9.39 mm -2.43 m 1.91 MeV 0 eV 1.44 cm 1.44 cm Target compt - 2 -2.79 mm 1.95 cm -2.41 m 701 keV 0 eV 2.61 cm 4.04 cm Target compt - 3 -5.72 mm 1.67 cm -2.4 m 0 eV 88 keV 6.73 mm 4.72 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.72 mm 1.67 cm -2.4 m 613 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.73 mm 1.66 cm -2.4 m 0 eV 613 keV 394 mum 394 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.79 mm 1.95 cm -2.41 m 1.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.77 mm 1.95 cm -2.41 m 2.22e-10 eV 1.2 MeV 893 mum 893 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.57 mm 9.39 mm -2.43 m 1.71 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.83 mm 9.37 mm -2.43 m 365 keV 996 keV 986 mum 986 mum Target eBrem - 2 -4.83 mm 9.37 mm -2.43 m 1.11e-10 eV 365 keV 196 mum 1.18 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 79, Parent ID = 76 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.83 mm 9.37 mm -2.43 m 352 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.01 mm 8.67 mm -2.43 m 282 keV 0 eV 819 mum 819 mum Target compt - 2 -5.02 mm 8.58 mm -2.43 m 0 eV 88 keV 383 mum 1.2 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.02 mm 8.58 mm -2.43 m 194 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.01 mm 8.58 mm -2.43 m 2.78e-11 eV 194 keV 78 mum 78 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 79 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.01 mm 8.67 mm -2.43 m 69 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.01 mm 8.67 mm -2.43 m 5.55e-11 eV 69 keV 15.1 mum 15.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -152 mum 104 mum -2.44 m 402 keV 0 eV 0 fm 0 fm Target initStep - 1 -368 mum 594 mum -2.44 m 0 eV 88 keV 734 mum 734 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 68 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -368 mum 594 mum -2.44 m 314 keV 0 eV 0 fm 0 fm Target initStep - 1 -376 mum 601 mum -2.44 m 0 eV 314 keV 159 mum 159 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 25.1 mum 27 mum -2.44 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 mm -285 mum -2.42 m 1.38 MeV 0 eV 1.96 cm 1.96 cm Target compt - 2 -3.25 mm -1.73 mm -2.41 m 710 keV 0 eV 7.61 mm 2.72 cm Target compt - 3 793 mum -1.73 cm -2.4 m 600 keV 0 eV 1.98 cm 4.7 cm Target compt - 4 1.1 mm -1.83 cm -2.4 m 470 keV 0 eV 2.53 mm 4.95 cm Target compt - 5 926 mum -1.84 cm -2.4 m 470 keV 0 eV 309 mum 4.98 cm Target Transportation - 6 -2.4 m -1.27 m 1.06 m 470 keV 0 eV 4.39 m 4.44 m Tracker Transportation - 7 -2.91 m -1.53 m 1.79 m 470 keV 0 eV 93.3 cm 5.37 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.1 mm -1.83 cm -2.4 m 130 keV 0 eV 0 fm 0 fm Target initStep - 1 1.1 mm -1.83 cm -2.4 m 0 eV 130 keV 41.9 mum 41.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 793 mum -1.73 cm -2.4 m 109 keV 0 eV 0 fm 0 fm Target initStep - 1 793 mum -1.73 cm -2.4 m 2.78e-11 eV 109 keV 31.6 mum 31.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.25 mm -1.73 mm -2.41 m 668 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.27 mm -1.72 mm -2.41 m 0 eV 668 keV 439 mum 439 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.35 mm -285 mum -2.42 m 132 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 mm -284 mum -2.42 m 0 eV 132 keV 42.9 mum 42.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 23.2 mum 21.4 mum -2.44 m 46.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -17.8 mum 847 nm -2.44 m 0 eV 0 eV 570 mum 570 mum Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 88, Parent ID = 66 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -17.8 mum 847 nm -2.44 m 8.55 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.73 mum -181 mum -2.44 m 7.25 MeV 614 keV 613 mum 613 mum Target eBrem - 2 614 mum 505 mum -2.44 m 5.35 MeV 1.37 MeV 1.1 mm 1.72 mm Target eBrem - 3 624 mum 504 mum -2.44 m 3.6 MeV 28 keV 10.2 mum 1.73 mm Target eBrem - 4 667 mum 506 mum -2.44 m 1.1 MeV 179 keV 57.3 mum 1.78 mm Target eBrem - 5 774 mum 475 mum -2.44 m 2.22e-10 eV 1.1 MeV 822 mum 2.61 mm Target eIoni - 6 774 mum 475 mum -2.44 m 2.22e-10 eV 0 eV 0 fm 2.61 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 774 mum 475 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.19 mm -6.28 mm -2.45 m 283 keV 0 eV 1.02 cm 1.02 cm Target compt - 2 -5.31 mm -5.44 mm -2.45 m 0 eV 88 keV 1.5 mm 1.17 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.31 mm -5.44 mm -2.45 m 195 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.32 mm -5.44 mm -2.45 m 0 eV 195 keV 78.5 mum 78.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.19 mm -6.28 mm -2.45 m 228 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.19 mm -6.29 mm -2.45 m 5.55e-11 eV 228 keV 98.8 mum 98.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 774 mum 475 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 4.72 mm 5.85 mm -2.43 m 0 eV 88 keV 8.13 mm 8.13 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 93 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.72 mm 5.85 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 4.74 mm 5.86 mm -2.43 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 92, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 667 mum 506 mum -2.44 m 2.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.79 mm -35.5 mum -2.44 m 337 keV 0 eV 1.25 mm 1.25 mm Target compt - 2 1.86 mm 407 mum -2.44 m 0 eV 88 keV 503 mum 1.75 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.86 mm 407 mum -2.44 m 249 keV 0 eV 0 fm 0 fm Target initStep - 1 1.86 mm 410 mum -2.44 m 2.78e-11 eV 249 keV 113 mum 113 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 92 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.79 mm -35.5 mum -2.44 m 1.98 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.83 mm -269 mum -2.44 m 439 keV 1.54 MeV 1.39 mm 1.39 mm Target eIoni - 2 1.83 mm -287 mum -2.44 m 0 eV 439 keV 253 mum 1.64 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 91, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 624 mum 504 mum -2.44 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.77 cm -3.02 mm -2.43 m 223 keV 0 eV 2 cm 2 cm Target compt - 2 1.67 cm -2.7 mm -2.43 m 0 eV 88 keV 1.18 mm 2.12 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.67 cm -2.7 mm -2.43 m 135 keV 0 eV 0 fm 0 fm Target initStep - 1 1.67 cm -2.69 mm -2.43 m 0 eV 135 keV 44.4 mum 44.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 91 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.77 cm -3.02 mm -2.43 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.77 cm -3.1 mm -2.43 m 276 keV 1.23 MeV 1.13 mm 1.13 mm Target eIoni - 2 1.77 cm -3.1 mm -2.43 m 0 eV 276 keV 131 mum 1.26 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 90, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 614 mum 505 mum -2.44 m 530 keV 0 eV 0 fm 0 fm Target initStep - 1 8.12 mm 334 mum -2.44 m 355 keV 0 eV 8.3 mm 8.3 mm Target compt - 2 8.29 mm 791 mum -2.44 m 0 eV 88 keV 816 mum 9.12 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 90 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.29 mm 791 mum -2.44 m 267 keV 0 eV 0 fm 0 fm Target initStep - 1 8.29 mm 797 mum -2.44 m 0 eV 267 keV 125 mum 125 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 90 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.12 mm 334 mum -2.44 m 176 keV 0 eV 0 fm 0 fm Target initStep - 1 8.12 mm 332 mum -2.44 m 0 eV 176 keV 66.8 mum 66.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 89, Parent ID = 88 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.73 mum -181 mum -2.44 m 688 keV 0 eV 0 fm 0 fm Target initStep - 1 195 mum -92.2 mum -2.44 m 655 keV 0 eV 335 mum 335 mum Target compt - 2 356 mum -37.4 mum -2.44 m 530 keV 0 eV 207 mum 542 mum Target compt - 3 536 mum -52.3 mum -2.44 m 467 keV 0 eV 181 mum 723 mum Target compt - 4 793 mum -160 mum -2.44 m 0 eV 88 keV 325 mum 1.05 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 89 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 793 mum -160 mum -2.44 m 379 keV 0 eV 0 fm 0 fm Target initStep - 1 799 mum -174 mum -2.44 m 1.67e-10 eV 379 keV 207 mum 207 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 89 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 536 mum -52.3 mum -2.44 m 63.1 keV 0 eV 0 fm 0 fm Target initStep - 1 537 mum -51.9 mum -2.44 m 0 eV 63.1 keV 13 mum 13 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 89 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 356 mum -37.4 mum -2.44 m 125 keV 0 eV 0 fm 0 fm Target initStep - 1 356 mum -35.7 mum -2.44 m 0 eV 125 keV 39.1 mum 39.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 89 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 195 mum -92.2 mum -2.44 m 33.5 keV 0 eV 0 fm 0 fm Target initStep - 1 195 mum -92.2 mum -2.44 m 0 eV 33.5 keV 4.64 mum 4.64 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 66 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -17.8 mum 847 nm -2.44 m 36.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -19.2 mum -946 nm -2.44 m 31 MeV 27.9 keV 29.1 mum 29.1 mum Target eBrem - 2 21.6 mum 461 mum -2.44 m 22.8 MeV 6.33 MeV 2.24 mm 2.27 mm Target eBrem - 3 -255 mum 331 mum -2.44 m 10.3 MeV 1.09 MeV 951 mum 3.22 mm Target eBrem - 4 -515 mum 437 mum -2.44 m 9.33 MeV 569 keV 318 mum 3.54 mm Target eBrem - 5 -577 mum 403 mum -2.44 m 7.63 MeV 121 keV 115 mum 3.66 mm Target eBrem - 6 -1.1 mm 350 mum -2.44 m 6.03 MeV 824 keV 600 mum 4.26 mm Target eBrem - 7 -1.09 mm 544 mum -2.44 m 2.62 MeV 263 keV 253 mum 4.51 mm Target eBrem - 8 -1.21 mm 704 mum -2.44 m 1.06 MeV 1.2 MeV 625 mum 5.14 mm Target eBrem - 9 -1.17 mm 756 mum -2.44 m 114 keV 514 keV 460 mum 5.6 mm Target eBrem - 10 -1.17 mm 755 mum -2.44 m 0 eV 114 keV 33.7 mum 5.63 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.17 mm 756 mum -2.44 m 432 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.67 mm 235 mum -2.44 m 0 eV 88 keV 1.22 mm 1.22 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 116 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.67 mm 235 mum -2.44 m 344 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.68 mm 229 mum -2.44 m 5.55e-11 eV 344 keV 180 mum 180 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.21 mm 704 mum -2.44 m 360 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm -2.02 mm -2.43 m 262 keV 0 eV 3.64 mm 3.64 mm Target compt - 2 -1.16 mm -1.97 mm -2.43 m 0 eV 88 keV 234 mum 3.87 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 115 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.16 mm -1.97 mm -2.43 m 174 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.16 mm -1.97 mm -2.43 m 0 eV 174 keV 65.7 mum 65.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 115 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 mm -2.02 mm -2.43 m 98 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm -2.02 mm -2.43 m 0 eV 98 keV 26.6 mum 26.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.09 mm 544 mum -2.44 m 3.15 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.95 mm 1.59 cm -2.43 m 800 keV 0 eV 1.66 cm 1.66 cm Target compt - 2 -7.7 mm 1.92 cm -2.44 m 277 keV 0 eV 5.19 mm 2.18 cm Target compt - 3 -7.55 mm 1.85 cm -2.44 m 0 eV 88 keV 818 mum 2.26 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 114 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.55 mm 1.85 cm -2.44 m 189 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.55 mm 1.85 cm -2.44 m 0 eV 189 keV 74.4 mum 74.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 114 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.7 mm 1.92 cm -2.44 m 524 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.71 mm 1.93 cm -2.44 m 0 eV 524 keV 320 mum 320 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 114 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.95 mm 1.59 cm -2.43 m 2.35 MeV 0 eV 0 fm 0 fm Target initStep - 1 -7.22 mm 1.59 cm -2.43 m 1.52 MeV 527 keV 529 mum 529 mum Target eBrem - 2 -7.22 mm 1.57 cm -2.43 m 470 keV 322 keV 337 mum 866 mum Target eBrem - 3 -7.2 mm 1.57 cm -2.43 m 0 eV 470 keV 277 mum 1.14 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 120 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.22 mm 1.57 cm -2.43 m 727 keV 0 eV 0 fm 0 fm Target initStep - 1 8.18 mm 7.29 mm -2.45 m 0 eV 88 keV 2.17 cm 2.17 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 124 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.18 mm 7.29 mm -2.45 m 639 keV 0 eV 0 fm 0 fm Target initStep - 1 8.2 mm 7.27 mm -2.45 m 1.11e-10 eV 639 keV 415 mum 415 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 120 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.22 mm 1.59 cm -2.43 m 304 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.9 mm 1.43 cm -2.44 m 0 eV 88 keV 3.38 mm 3.38 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 123 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.9 mm 1.43 cm -2.44 m 216 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.91 mm 1.43 cm -2.44 m 0 eV 216 keV 91.8 mum 91.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 mm 350 mum -2.44 m 778 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.07 mm 401 mum -2.44 m 724 keV 0 eV 82.4 mum 82.4 mum Target compt - 2 -163 mum 1.06 cm -2.42 m 667 keV 0 eV 1.59 cm 1.6 cm Target compt - 3 121 mum 1.2 cm -2.42 m 219 keV 0 eV 4.14 mm 2.02 cm Target compt - 4 483 mum 1.11 cm -2.42 m 0 eV 88 keV 983 mum 2.11 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 483 mum 1.11 cm -2.42 m 131 keV 0 eV 0 fm 0 fm Target initStep - 1 482 mum 1.11 cm -2.42 m 0 eV 131 keV 42.1 mum 42.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 121 mum 1.2 cm -2.42 m 448 keV 0 eV 0 fm 0 fm Target initStep - 1 120 mum 1.2 cm -2.42 m 1.11e-10 eV 448 keV 260 mum 260 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -163 mum 1.06 cm -2.42 m 57.2 keV 0 eV 0 fm 0 fm Target initStep - 1 -163 mum 1.06 cm -2.42 m 0 eV 57.2 keV 11.1 mum 11.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.07 mm 401 mum -2.44 m 53.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.07 mm 401 mum -2.44 m 0 eV 53.8 keV 10 mum 10 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -577 mum 403 mum -2.44 m 1.58 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm -9.62 mm -2.42 m 1.58 MeV 0 eV 3.21 cm 3.21 cm Target Transportation - 2 -5.03 cm -2 cm -2.4 m 1.58 MeV 0 eV 3.33 cm 6.54 cm World Transportation - 3 -18.6 cm -7.58 cm -2.3 m 533 keV 0 eV 17.9 cm 24.4 cm Tracker compt - 4 -40.8 cm -2.4 m -2.37 m 533 keV 0 eV 2.34 m 2.58 m Tracker Transportation - 5 -45.7 cm -2.91 m -2.39 m 533 keV 0 eV 51.3 cm 3.09 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 112 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -18.6 cm -7.58 cm -2.3 m 1.04 MeV 0 eV 0 fm 0 fm Tracker initStep - 1 -41.6 cm -1.32 cm -2.11 m 984 keV 50 keV 30.5 cm 30.5 cm Tracker eIoni - 2 -47 cm -1.41 cm -2.1 m 965 keV 7.11 keV 5.4 cm 35.9 cm Tracker eIoni - 3 -1.03 m -15.4 cm -2.15 m 859 keV 92.4 keV 60.4 cm 96.4 cm Tracker eIoni - 4 -1.19 m -18.3 cm -2.17 m 812 keV 25.9 keV 17 cm 1.13 m Tracker eIoni - 5 -1.79 m -15.8 cm -2.4 m 682 keV 129 keV 71.2 cm 1.85 m Tracker Transportation - 6 -2.27 m -6.2 cm -2.57 m 594 keV 88.7 keV 56.3 cm 2.41 m World msc - 7 -2.41 m 9.53 cm -2.56 m 549 keV 36.6 keV 21.9 cm 2.63 m World eIoni - 8 -2.81 m 14.2 cm -2.64 m 474 keV 75.2 keV 42 cm 3.05 m World eIoni - 9 -2.91 m 18.8 cm -2.66 m 447 keV 26.3 keV 11.9 cm 3.17 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.41 m 9.53 cm -2.56 m 8.25 keV 0 eV 0 fm 0 fm World initStep - 1 -2.41 m 9.58 cm -2.56 m 2.19 keV 6.07 keV 1.43 mm 1.43 mm World eIoni - 2 -2.41 m 9.58 cm -2.56 m 4.34e-13 eV 2.19 keV 179 mum 1.61 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.19 m -18.3 cm -2.17 m 21.2 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.19 m -18.4 cm -2.17 m 17 keV 4.13 keV 3.19 mm 3.19 mm Tracker eIoni - 2 -1.19 m -18.6 cm -2.17 m 10.2 keV 6.86 keV 2.61 mm 5.8 mm Tracker eIoni - 3 -1.2 m -18.6 cm -2.17 m 6.63 keV 3.56 keV 1.72 mm 7.52 mm Tracker eIoni - 4 -1.2 m -18.6 cm -2.17 m 665 eV 5.96 keV 1.1 mm 8.62 mm Tracker eIoni - 5 -1.2 m -18.6 cm -2.17 m 2.17e-13 eV 665 eV 35.7 mum 8.65 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.03 m -15.4 cm -2.15 m 14.1 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -1.03 m -15.4 cm -2.15 m 8.63 keV 5.52 keV 2.23 mm 2.23 mm Tracker eIoni - 2 -1.03 m -15.4 cm -2.15 m 5.01 keV 3.62 keV 1.49 mm 3.72 mm Tracker eIoni - 3 -1.03 m -15.4 cm -2.15 m 8.67e-13 eV 5.01 keV 690 mum 4.41 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -47 cm -1.41 cm -2.1 m 11.7 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -47 cm -1.49 cm -2.1 m 7.89 keV 3.79 keV 1.92 mm 1.92 mm Tracker eIoni - 2 -46.9 cm -1.57 cm -2.1 m 242 eV 7.65 keV 1.37 mm 3.29 mm Tracker eIoni - 3 -46.9 cm -1.57 cm -2.1 m 8.13e-14 eV 242 eV 15 mum 3.3 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -41.6 cm -1.32 cm -2.11 m 10.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -41.5 cm -1.27 cm -2.11 m 6.78 keV 3.51 keV 1.74 mm 1.74 mm Tracker eIoni - 2 -41.6 cm -1.22 cm -2.11 m 2.16 keV 4.62 keV 1.14 mm 2.87 mm Tracker eIoni - 3 -41.6 cm -1.22 cm -2.11 m 0 eV 2.16 keV 176 mum 3.05 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -515 mum 437 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.78 mm 29.1 mum -2.44 m 0 eV 88 keV 1.98 mm 1.98 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 111 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.78 mm 29.1 mum -2.44 m 335 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.78 mm 20.5 mum -2.44 m 0 eV 335 keV 173 mum 173 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -255 mum 331 mum -2.44 m 11.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.98 mm 933 mum -2.43 m 0 eV 0 eV 4.67 mm 4.67 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 139, Parent ID = 110 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.98 mm 933 mum -2.43 m 6.51 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.76 mm 1.09 mm -2.43 m 4.79 MeV 866 keV 910 mum 910 mum Target eBrem - 2 -4.81 mm 927 mum -2.43 m 4.1 MeV 218 keV 176 mum 1.09 mm Target eBrem - 3 -5.03 mm 796 mum -2.43 m 3.26 MeV 279 keV 288 mum 1.37 mm Target eBrem - 4 -5.02 mm 274 mum -2.43 m 473 keV 2.3 MeV 1.51 mm 2.88 mm Target eBrem - 5 -5.03 mm 248 mum -2.43 m 1.67e-10 eV 473 keV 279 mum 3.16 mm Target eIoni - 6 -5.03 mm 248 mum -2.43 m 1.67e-10 eV 0 eV 0 fm 3.16 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 145, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.03 mm 248 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.24 mm -730 mum -2.44 m 0 eV 88 keV 1.53 mm 1.53 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 145 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.24 mm -730 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.23 mm -721 mum -2.44 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 144, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.03 mm 248 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.64 mm 2.25 mm -2.43 m 0 eV 88 keV 3.14 mm 3.14 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 144 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.64 mm 2.25 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.64 mm 2.27 mm -2.43 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.02 mm 274 mum -2.43 m 488 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.03 mm 108 mum -2.43 m 0 eV 88 keV 186 mum 186 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 143 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.03 mm 108 mum -2.43 m 400 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.04 mm 94.1 mum -2.43 m 0 eV 400 keV 222 mum 222 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.03 mm 796 mum -2.43 m 564 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.17 mm -7.62 mm -2.43 m 0 eV 88 keV 9.58 mm 9.58 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 142 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.17 mm -7.62 mm -2.43 m 476 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.18 mm -7.63 mm -2.43 m 2.78e-10 eV 476 keV 282 mum 282 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 141, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.81 mm 927 mum -2.43 m 468 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.51 mm -3.99 mm -2.44 m 0 eV 88 keV 5.65 mm 5.65 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 141 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.51 mm -3.99 mm -2.44 m 380 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.51 mm -4 mm -2.44 m 0 eV 380 keV 207 mum 207 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 140, Parent ID = 139 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.76 mm 1.09 mm -2.43 m 855 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.84 mm -7.38 mm -2.44 m 0 eV 88 keV 8.76 mm 8.76 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 140 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.84 mm -7.38 mm -2.44 m 767 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.84 mm -7.4 mm -2.44 m 85.4 keV 305 keV 260 mum 260 mum Target eBrem - 2 -6.84 mm -7.4 mm -2.44 m 2.78e-11 eV 85.4 keV 21.3 mum 281 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 151 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.84 mm -7.4 mm -2.44 m 377 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.79 mm -1.08 cm -2.43 m 169 keV 0 eV 6.43 mm 6.43 mm Target compt - 2 -5.63 mm -1.07 cm -2.43 m 0 eV 88 keV 933 mum 7.36 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 152 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.63 mm -1.07 cm -2.43 m 80.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.63 mm -1.07 cm -2.43 m 1.39e-11 eV 80.6 keV 19.4 mum 19.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 152 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.79 mm -1.08 cm -2.43 m 208 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.78 mm -1.08 cm -2.43 m 2.78e-11 eV 208 keV 86.7 mum 86.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 110 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.98 mm 933 mum -2.43 m 3.89 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.07 mm 1.53 mm -2.43 m 1.98 MeV 1.91 MeV 1.95 mm 1.95 mm Target eIoni - 2 -3.92 mm 1.34 mm -2.43 m 469 keV 609 keV 623 mum 2.57 mm Target eBrem - 3 -3.93 mm 1.33 mm -2.43 m 1.11e-10 eV 469 keV 276 mum 2.85 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 138 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.92 mm 1.34 mm -2.43 m 901 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.04 cm -3.81 mm -2.44 m 0 eV 88 keV 1.02 cm 1.02 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 155 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.04 cm -3.81 mm -2.44 m 813 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.05 cm -3.83 mm -2.44 m 3.33e-10 eV 813 keV 561 mum 561 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 21.6 mum 461 mum -2.44 m 1.79 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.15 mm -338 mum -2.43 m 516 keV 0 eV 1.09 cm 1.09 cm Target compt - 2 3.04 mm 697 mum -2.43 m 477 keV 0 eV 4.73 mm 1.56 cm Target compt - 3 9.31 mm 237 mum -2.42 m 0 eV 88 keV 6.36 mm 2.2 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 109 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.31 mm 237 mum -2.42 m 389 keV 0 eV 0 fm 0 fm Target initStep - 1 9.31 mm 231 mum -2.42 m 2.22e-10 eV 389 keV 214 mum 214 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 109 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.04 mm 697 mum -2.43 m 38.8 keV 0 eV 0 fm 0 fm Target initStep - 1 3.04 mm 697 mum -2.43 m 1.39e-11 eV 38.8 keV 5.89 mum 5.89 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 109 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.15 mm -338 mum -2.43 m 1.27 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.18 mm -351 mum -2.43 m 2.22e-10 eV 1.27 MeV 871 mum 871 mum Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 87 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -19.2 mum -946 nm -2.44 m 5.67 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.43 mm -1.23 mm -2.4 m 5.67 MeV 0 eV 4.06 cm 4.06 cm Target Transportation - 2 -7.1 cm -2.55 cm -1.6 m 5.67 MeV 0 eV 80.3 cm 84.4 cm Tracker Transportation - 3 -8.79 cm -3.16 cm -1.4 m 5.67 MeV 0 eV 20.1 cm 1.04 m Chamber Transportation - 4 -13.9 cm -4.98 cm -80 cm 5.67 MeV 0 eV 60.2 cm 1.65 m Tracker Transportation - 5 -15.5 cm -5.58 cm -60 cm 5.67 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation - 6 -20.6 cm -7.41 cm 0 fm 5.67 MeV 0 eV 60.2 cm 2.45 m Tracker Transportation - 7 -22.3 cm -8.01 cm 20 cm 5.67 MeV 0 eV 20.1 cm 2.65 m Chamber Transportation - 8 -27.4 cm -9.83 cm 80 cm 5.67 MeV 0 eV 60.2 cm 3.25 m Tracker Transportation - 9 -29.1 cm -10.4 cm 1 m 5.67 MeV 0 eV 20.1 cm 3.45 m Chamber Transportation - 10 -34.1 cm -12.3 cm 1.6 m 5.67 MeV 0 eV 60.2 cm 4.06 m Tracker Transportation - 11 -35.8 cm -12.9 cm 1.8 m 5.67 MeV 0 eV 20.1 cm 4.26 m Chamber Transportation - 12 -40.9 cm -14.7 cm 2.4 m 5.67 MeV 0 eV 60.2 cm 4.86 m Tracker Transportation - 13 -45.2 cm -16.2 cm 2.91 m 5.67 MeV 0 eV 51.2 cm 5.37 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 82 nm 553 nm -2.44 m 401 keV 0 eV 0 fm 0 fm Target initStep - 1 -83.9 mum 7.3 mum -2.44 m 0 eV 88 keV 5.04 mm 5.04 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 65 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -83.9 mum 7.3 mum -2.44 m 313 keV 0 eV 0 fm 0 fm Target initStep - 1 -88.9 mum 11.7 mum -2.44 m 0 eV 313 keV 157 mum 157 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 64, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.11 mum -447 nm -2.44 m 309 keV 0 eV 0 fm 0 fm Target initStep - 1 101 mum 76.5 mum -2.44 m 0 eV 88 keV 5.2 mm 5.2 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 101 mum 76.5 mum -2.44 m 221 keV 0 eV 0 fm 0 fm Target initStep - 1 105 mum 79.1 mum -2.44 m 0 eV 221 keV 94.4 mum 94.4 mum Target eIoni + 0 -104 mum 342 mum 76.8 cm 163 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.06 cm -5.46 cm 78.8 cm 144 keV 19.5 keV 6.49 cm 6.49 cm Tracker eIoni + 2 2.41 cm -10.1 cm 78.6 cm 132 keV 12.1 keV 5.27 cm 11.8 cm Tracker eIoni + 3 2.19 cm -11.2 cm 77.8 cm 78.3 keV 9.14 keV 1.39 cm 13.2 cm Tracker eIoni + 4 2.08 cm -12.9 cm 78.1 cm 69.5 keV 8.82 keV 1.93 cm 15.1 cm Tracker eIoni + 5 2.31 cm -14.4 cm 78.1 cm 62.5 keV 6.99 keV 1.59 cm 16.7 cm Tracker eIoni + 6 1.65 cm -15.5 cm 77.9 cm 54.8 keV 7.69 keV 1.34 cm 18 cm Tracker eIoni + 7 2.3 cm -15.7 cm 78.7 cm 46.5 keV 8.3 keV 1.09 cm 19.1 cm Tracker eIoni + 8 2.32 cm -16.1 cm 79.3 cm 37.5 keV 8.97 keV 8.55 mm 20 cm Tracker eIoni + 9 2.52 cm -16.4 cm 79.8 cm 31.7 keV 5.8 keV 6.29 mm 20.6 cm Tracker eIoni + 10 2.68 cm -16.7 cm 80 cm 29.1 keV 2.63 keV 4.61 mm 21.1 cm Tracker Transportation + 11 2.71 cm -16.8 cm 80 cm 25.8 keV 3.26 keV 1.25 mm 21.2 cm Chamber msc + 12 2.74 cm -16.8 cm 80 cm 24.7 keV 1.15 keV 553 mum 21.2 cm Chamber Transportation + 13 2.74 cm -16.8 cm 80 cm 24.7 keV 0 eV 0 fm 21.2 cm Tracker Transportation + 14 2.77 cm -16.8 cm 80 cm 23.9 keV 797 eV 948 mum 21.3 cm Chamber msc + 15 2.73 cm -16.9 cm 80 cm 22 keV 1.87 keV 949 mum 21.4 cm Chamber msc + 16 2.72 cm -16.9 cm 80 cm 21.3 keV 662 eV 579 mum 21.5 cm Chamber Transportation + 17 2.72 cm -16.9 cm 80 cm 21.3 keV 0 eV 0 fm 21.5 cm Tracker Transportation + 18 2.73 cm -17 cm 80 cm 19.5 keV 1.83 keV 746 mum 21.6 cm Chamber msc + 19 2.73 cm -17 cm 80 cm 19.5 keV 24.7 eV 21.6 mum 21.6 cm Chamber Transportation + 20 2.75 cm -17.1 cm 79.9 cm 17.5 keV 1.94 keV 1.45 mm 21.7 cm Tracker msc + 21 2.84 cm -17.1 cm 79.8 cm 15 keV 2.53 keV 1.45 mm 21.9 cm Tracker msc + 22 2.94 cm -17.1 cm 79.7 cm 11.2 keV 3.82 keV 1.45 mm 22 cm Tracker msc + 23 2.91 cm -17.1 cm 79.6 cm 0 eV 11.2 keV 1.45 mm 22.1 cm Tracker msc + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.19 cm -11.2 cm 77.8 cm 44.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.94 cm -11.6 cm 77.2 cm 35.2 keV 9.02 keV 7.94 mm 7.94 mm Tracker eIoni + 2 2 cm -11.5 cm 76.7 cm 29.7 keV 5.55 keV 5.78 mm 1.37 cm Tracker eIoni + 3 2.06 cm -11.7 cm 76.3 cm 25.8 keV 3.89 keV 4.64 mm 1.84 cm Tracker eIoni + 4 1.8 cm -12 cm 76.3 cm 22 keV 3.77 keV 3.94 mm 2.23 cm Tracker eIoni + 5 1.49 cm -11.9 cm 76.3 cm 17.5 keV 4.55 keV 3.33 mm 2.56 cm Tracker eIoni + 6 1.28 cm -11.8 cm 76.4 cm 10.9 keV 6.59 keV 2.66 mm 2.83 cm Tracker eIoni + 7 1.17 cm -11.7 cm 76.3 cm 5.78 keV 5.1 keV 1.82 mm 3.01 cm Tracker eIoni + 8 1.19 cm -11.7 cm 76.3 cm 0 eV 5.78 keV 875 mum 3.1 cm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 11.5 nm -6.08 nm -2.56 m 227 keV 0 eV 0 fm 0 fm World initStep - 1 -9.07 cm -4.28 mm -2.51 m 182 keV 45.4 keV 11.1 cm 11.1 cm World eIoni - 2 -15.3 cm -1.86 cm -2.48 m 155 keV 26.7 keV 7.75 cm 18.8 cm World eIoni - 3 -17.9 cm 1.21 cm -2.44 m 137 keV 18.2 keV 5.96 cm 24.8 cm World eIoni - 4 -19.8 cm 3.13 cm -2.4 m 122 keV 15.2 keV 4.86 cm 29.7 cm World eIoni - 5 -20.1 cm 3.14 cm -2.4 m 121 keV 845 eV 3.43 mm 30 cm World Transportation - 6 -22.2 cm 2.9 cm -2.37 m 98.9 keV 22 keV 3.78 cm 33.8 cm Tracker msc - 7 -23.6 cm 2.12 cm -2.35 m 84.1 keV 14.9 keV 2.84 cm 36.6 cm Tracker eIoni - 8 -24.3 cm 3.47 mm -2.36 m 74.4 keV 9.69 keV 2.17 cm 38.8 cm Tracker eIoni - 9 -25.2 cm 3.33 mm -2.37 m 66.3 keV 8.1 keV 1.77 cm 40.6 cm Tracker eIoni - 10 -26.1 cm -76.8 mum -2.38 m 58.9 keV 7.34 keV 1.48 cm 42.1 cm Tracker eIoni - 11 -26.9 cm 6.62 mm -2.38 m 54.4 keV 4.51 keV 1.23 cm 43.3 cm Tracker eIoni - 12 -27.7 cm 1.28 cm -2.38 m 48 keV 6.48 keV 1.08 cm 44.4 cm Tracker eIoni - 13 -28.4 cm 1.8 cm -2.38 m 40.6 keV 7.32 keV 8.97 mm 45.3 cm Tracker eIoni - 14 -29 cm 1.91 cm -2.38 m 33.1 keV 7.58 keV 7.05 mm 46 cm Tracker eIoni - 15 -29.2 cm 2.22 cm -2.39 m 26.4 keV 6.69 keV 5.33 mm 46.5 cm Tracker eIoni - 16 -29.5 cm 2.36 cm -2.39 m 22.1 keV 4.31 keV 4.04 mm 46.9 cm Tracker eIoni - 17 -29.6 cm 2.58 cm -2.39 m 17.2 keV 4.84 keV 3.33 mm 47.2 cm Tracker eIoni - 18 -29.7 cm 2.81 cm -2.39 m 12.4 keV 4.83 keV 2.63 mm 47.5 cm Tracker eIoni - 19 -29.7 cm 2.95 cm -2.39 m 7.16 keV 5.23 keV 2.01 mm 47.7 cm Tracker eIoni - 20 -29.7 cm 3.03 cm -2.39 m 1.35 keV 5.81 keV 1.22 mm 47.8 cm Tracker eIoni - 21 -29.7 cm 3.03 cm -2.39 m 0 eV 1.35 keV 87.5 mum 47.8 cm Tracker eIoni + 0 -3.36 mum 11.5 mum -2.29 m 59.9 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.25 mm -9.6 mm -2.29 m 52.6 keV 7.24 keV 1.26 cm 1.26 cm Tracker eIoni + 2 -9.15 mm -1.24 cm -2.29 m 46.1 keV 6.55 keV 1.03 cm 2.28 cm Tracker eIoni + 3 -1.4 cm -1.89 cm -2.29 m 28.6 keV 17.5 keV 8.45 mm 3.13 cm Tracker eIoni + 4 -1.77 cm -2.01 cm -2.29 m 24.9 keV 3.62 keV 4.44 mm 3.57 cm Tracker eIoni + 5 -1.56 cm -1.82 cm -2.29 m 21.8 keV 3.15 keV 3.79 mm 3.95 cm Tracker eIoni + 6 -1.84 cm -1.73 cm -2.29 m 18.1 keV 3.7 keV 3.29 mm 4.28 cm Tracker eIoni + 7 -2.01 cm -1.56 cm -2.29 m 4.34 keV 13.8 keV 2.75 mm 4.56 cm Tracker eIoni + 8 -2.01 cm -1.55 cm -2.29 m 8.67e-13 eV 4.34 keV 543 mum 4.61 cm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 0 fm 0 fm -2.7 m 8.5 keV 0 eV 0 fm 0 fm World initStep - 1 -926 mum 491 mum -2.7 m 1.73e-12 eV 8.5 keV 1.47 mm 1.47 mm World eIoni + 0 20.4 nm -11.3 nm -2.81 m 9.82 keV 0 eV 0 fm 0 fm World initStep + 1 -932 mum 740 mum -2.81 m 5.26 keV 4.56 keV 1.67 mm 1.67 mm World eIoni + 2 -466 mum 849 mum -2.81 m 0 eV 5.26 keV 749 mum 2.42 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 bd3c017857..862e3dc852 100644 --- a/examples/novice/N02/include/ExN02ChamberParameterisation.hh +++ b/examples/novice/N02/include/ExN02ChamberParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.hh,v 1.6 2002/01/09 17:24:08 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // 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 aba3cb86d7..3a02da2bde 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 f7b0eca6b6..a90520a1d8 100644 --- a/examples/novice/N02/include/ExN02DetectorMessenger.hh +++ b/examples/novice/N02/include/ExN02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 3fc469d372..6b7bfa5477 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 a6eaa891fa..567ef5d7f8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // 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 1fed981377..b3522a7ccc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 27d04accda..67f10bc4a8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 422b1b2ba1..9edad4344a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 d4ccd2c604..873b15f81b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 ac38a60e5f..91b242669b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 9805a23c9c..96464a186d 100644 --- a/examples/novice/N02/include/ExN02TrackerHit.hh +++ b/examples/novice/N02/include/ExN02TrackerHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 540f1c8541..33f7af7b88 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02VisManager.hh b/examples/novice/N02/include/ExN02VisManager.hh index 9432ded329..94f8a9ed04 100644 --- a/examples/novice/N02/include/ExN02VisManager.hh +++ b/examples/novice/N02/include/ExN02VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02VisManager.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N02/src/ExN02ChamberParameterisation.cc b/examples/novice/N02/src/ExN02ChamberParameterisation.cc index 44d272f908..f37e3cc561 100644 --- a/examples/novice/N02/src/ExN02ChamberParameterisation.cc +++ b/examples/novice/N02/src/ExN02ChamberParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.cc,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 b5ed482e00..e18613c00c 100644 --- a/examples/novice/N02/src/ExN02DetectorConstruction.cc +++ b/examples/novice/N02/src/ExN02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.cc,v 1.11 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02DetectorMessenger.cc b/examples/novice/N02/src/ExN02DetectorMessenger.cc index 530347e62a..cad951212e 100644 --- a/examples/novice/N02/src/ExN02DetectorMessenger.cc +++ b/examples/novice/N02/src/ExN02DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorMessenger.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN02DetectorMessenger.cc,v 1.8 2002/12/05 01:07:01 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,12 +47,12 @@ ExN02DetectorMessenger::ExN02DetectorMessenger(ExN02DetectorConstruction* myDet) TargMatCmd = new G4UIcmdWithAString("/mydet/setTargetMate",this); TargMatCmd->SetGuidance("Select Material of the Target."); TargMatCmd->SetParameterName("choice",false); - TargMatCmd->AvailableForStates(PreInit,Idle); + TargMatCmd->AvailableForStates(G4State_PreInit,G4State_Idle); ChamMatCmd = new G4UIcmdWithAString("/mydet/setChamberMate",this); ChamMatCmd->SetGuidance("Select Material of the Target."); ChamMatCmd->SetParameterName("choice",false); - ChamMatCmd->AvailableForStates(PreInit,Idle); + ChamMatCmd->AvailableForStates(G4State_PreInit,G4State_Idle); FieldCmd = new G4UIcmdWithADoubleAndUnit("/mydet/setField",this); FieldCmd->SetGuidance("Define magnetic field."); @@ -60,7 +60,7 @@ ExN02DetectorMessenger::ExN02DetectorMessenger(ExN02DetectorConstruction* myDet) FieldCmd->SetParameterName("Bx",false); FieldCmd->SetDefaultUnit("tesla"); FieldCmd->SetUnitCategory("Magnetic flux density"); - FieldCmd->AvailableForStates(PreInit,Idle); + FieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02EventAction.cc b/examples/novice/N02/src/ExN02EventAction.cc index ff9f603c3a..b320d85098 100644 --- a/examples/novice/N02/src/ExN02EventAction.cc +++ b/examples/novice/N02/src/ExN02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 55a33d14a3..61293254b9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // User Field class implementation. // diff --git a/examples/novice/N02/src/ExN02PhysicsList.cc b/examples/novice/N02/src/ExN02PhysicsList.cc index 068b2d0bfa..d0d2776560 100644 --- a/examples/novice/N02/src/ExN02PhysicsList.cc +++ b/examples/novice/N02/src/ExN02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.cc,v 1.13 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc index ffcb3f1c5b..411548cc37 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 fa4791b379..edc2579e50 100644 --- a/examples/novice/N02/src/ExN02RunAction.cc +++ b/examples/novice/N02/src/ExN02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 f22ed474ba..1d7b50296f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 ac7007e832..2c65650096 100644 --- a/examples/novice/N02/src/ExN02SteppingVerbose.cc +++ b/examples/novice/N02/src/ExN02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.cc,v 1.9 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 0c311a5b36..133354d6bf 100644 --- a/examples/novice/N02/src/ExN02TrackerHit.cc +++ b/examples/novice/N02/src/ExN02TrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02TrackerSD.cc b/examples/novice/N02/src/ExN02TrackerSD.cc index 1db2549118..5c450157b9 100644 --- a/examples/novice/N02/src/ExN02TrackerSD.cc +++ b/examples/novice/N02/src/ExN02TrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.cc,v 1.6 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02VisManager.cc b/examples/novice/N02/src/ExN02VisManager.cc old mode 100644 new mode 100755 index b86b9d215e..e2f6397515 --- a/examples/novice/N02/src/ExN02VisManager.cc +++ b/examples/novice/N02/src/ExN02VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: ExN02VisManager.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN02VisManager.cc,v 1.9 2002/11/13 19:14:31 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void ExN02VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/novice/N03/exampleN03.cc b/examples/novice/N03/exampleN03.cc index 61e2de7f1a..2317c473b8 100644 --- a/examples/novice/N03/exampleN03.cc +++ b/examples/novice/N03/exampleN03.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN03.cc,v 1.16 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out index c453744834..4fdfac00fb 100644 --- a/examples/novice/N03/exampleN03.out +++ b/examples/novice/N03/exampleN03.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,6 +13,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -166,10 +167,10 @@ Cut in energy Current couple of seeds = 9876, 54321 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 279.411 MeV total track length: 18.8834 cm - Gap: total energy: 12.3279 MeV total track length: 6.12525 cm + Absorber: total energy: 271.238 MeV total track length: 18.8504 cm + Gap: total energy: 8.40916 MeV total track length: 4.16209 cm - 8 hits are stored in ExN03CalorHitsCollection. + 9 hits are stored in ExN03CalorHitsCollection. Transportation, hIoni, msc, eIoni eBrem, annihil, conv, compt phot, MuIoni, MuBrems, MuPairProd @@ -180,11 +181,11 @@ Cut in energy --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 27996052, 1757575368 + Current couple of seeds = 594012148, 523050693 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 278.292 MeV total track length: 19.7119 cm - Gap: total energy: 15.6382 MeV total track length: 7.04943 cm + Absorber: total energy: 266.99 MeV total track length: 18.6743 cm + Gap: total energy: 20.1124 MeV total track length: 9.65901 cm 10 hits are stored in ExN03CalorHitsCollection. @@ -205,12 +206,12 @@ Cut in energy --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2129424520, 867017805 + Current couple of seeds = 696574897, 750246800 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 387.241 MeV total track length: 92.4175 cm - Gap: total energy: 92.7356 MeV total track length: 2.58238 m + Absorber: total energy: 408.79 MeV total track length: 96.801 cm + Gap: total energy: 68.9387 MeV total track length: 1.95423 m - 26 hits are stored in ExN03CalorHitsCollection. + 21 hits are stored in ExN03CalorHitsCollection. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N03/include/ExN03CalorHit.hh b/examples/novice/N03/include/ExN03CalorHit.hh index c0ca4989ca..d6babaf866 100644 --- a/examples/novice/N03/include/ExN03CalorHit.hh +++ b/examples/novice/N03/include/ExN03CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorHit.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03CalorimeterSD.hh b/examples/novice/N03/include/ExN03CalorimeterSD.hh index 3e9425d5cd..a73ac53d7b 100644 --- a/examples/novice/N03/include/ExN03CalorimeterSD.hh +++ b/examples/novice/N03/include/ExN03CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorimeterSD.hh,v 1.4 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03DetectorConstruction.hh b/examples/novice/N03/include/ExN03DetectorConstruction.hh index bfdb4b25a7..326e5b244c 100644 --- a/examples/novice/N03/include/ExN03DetectorConstruction.hh +++ b/examples/novice/N03/include/ExN03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03DetectorMessenger.hh b/examples/novice/N03/include/ExN03DetectorMessenger.hh index f1228d0e55..75c1fd2dc4 100644 --- a/examples/novice/N03/include/ExN03DetectorMessenger.hh +++ b/examples/novice/N03/include/ExN03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03EventAction.hh b/examples/novice/N03/include/ExN03EventAction.hh index 9cf3f6d7a5..0461684492 100644 --- a/examples/novice/N03/include/ExN03EventAction.hh +++ b/examples/novice/N03/include/ExN03EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.hh,v 1.7 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03EventActionMessenger.hh b/examples/novice/N03/include/ExN03EventActionMessenger.hh index f1c57102f3..e243ab8558 100644 --- a/examples/novice/N03/include/ExN03EventActionMessenger.hh +++ b/examples/novice/N03/include/ExN03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.hh,v 1.6 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03PhysicsList.hh b/examples/novice/N03/include/ExN03PhysicsList.hh index ee7cbcfa54..360ae7d242 100644 --- a/examples/novice/N03/include/ExN03PhysicsList.hh +++ b/examples/novice/N03/include/ExN03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.hh,v 1.10 2002/03/08 10:48:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh index d0f3206e9d..17057c286c 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh index d79f377768..caca6e8a3f 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03RunAction.hh b/examples/novice/N03/include/ExN03RunAction.hh index 8eabaa3f65..9efdf31f0e 100644 --- a/examples/novice/N03/include/ExN03RunAction.hh +++ b/examples/novice/N03/include/ExN03RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingAction.hh b/examples/novice/N03/include/ExN03SteppingAction.hh index 98acccc0ee..ad63054c97 100644 --- a/examples/novice/N03/include/ExN03SteppingAction.hh +++ b/examples/novice/N03/include/ExN03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingVerbose.hh b/examples/novice/N03/include/ExN03SteppingVerbose.hh index 4073fb2a61..d5e66c2119 100644 --- a/examples/novice/N03/include/ExN03SteppingVerbose.hh +++ b/examples/novice/N03/include/ExN03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03VisManager.hh b/examples/novice/N03/include/ExN03VisManager.hh index 243d000377..32b2c62cd1 100644 --- a/examples/novice/N03/include/ExN03VisManager.hh +++ b/examples/novice/N03/include/ExN03VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03VisManager.hh,v 1.6 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03CalorHit.cc b/examples/novice/N03/src/ExN03CalorHit.cc index 3f6b1de907..3b36acb68c 100644 --- a/examples/novice/N03/src/ExN03CalorHit.cc +++ b/examples/novice/N03/src/ExN03CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorHit.cc,v 1.5 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03CalorimeterSD.cc b/examples/novice/N03/src/ExN03CalorimeterSD.cc index 90789ffd50..6ce4c4f66c 100644 --- a/examples/novice/N03/src/ExN03CalorimeterSD.cc +++ b/examples/novice/N03/src/ExN03CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorimeterSD.cc,v 1.6 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03DetectorConstruction.cc b/examples/novice/N03/src/ExN03DetectorConstruction.cc index 80ea50f6f1..e6a032f2f4 100644 --- a/examples/novice/N03/src/ExN03DetectorConstruction.cc +++ b/examples/novice/N03/src/ExN03DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.cc,v 1.11 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03DetectorMessenger.cc b/examples/novice/N03/src/ExN03DetectorMessenger.cc index b98bc1d832..9a3ca45605 100644 --- a/examples/novice/N03/src/ExN03DetectorMessenger.cc +++ b/examples/novice/N03/src/ExN03DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorMessenger.cc,v 1.6 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03DetectorMessenger.cc,v 1.7 2002/12/05 01:07:01 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -50,52 +50,52 @@ ExN03DetectorMessenger::ExN03DetectorMessenger( AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",false); - AbsMaterCmd->AvailableForStates(Idle); + AbsMaterCmd->AvailableForStates(G4State_Idle); GapMaterCmd = new G4UIcmdWithAString("/calor/setGapMat",this); GapMaterCmd->SetGuidance("Select Material of the Gap."); GapMaterCmd->SetParameterName("choice",false); - GapMaterCmd->AvailableForStates(Idle); + GapMaterCmd->AvailableForStates(G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("Size",false); AbsThickCmd->SetRange("Size>=0."); AbsThickCmd->SetUnitCategory("Length"); - AbsThickCmd->AvailableForStates(Idle); + AbsThickCmd->AvailableForStates(G4State_Idle); GapThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setGapThick",this); GapThickCmd->SetGuidance("Set Thickness of the Gap"); GapThickCmd->SetParameterName("Size",false); GapThickCmd->SetRange("Size>=0."); GapThickCmd->SetUnitCategory("Length"); - GapThickCmd->AvailableForStates(Idle); + GapThickCmd->AvailableForStates(G4State_Idle); SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeYZ",this); SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); SizeYZCmd->SetParameterName("Size",false); SizeYZCmd->SetRange("Size>0."); SizeYZCmd->SetUnitCategory("Length"); - SizeYZCmd->AvailableForStates(Idle); + SizeYZCmd->AvailableForStates(G4State_Idle); NbLayersCmd = new G4UIcmdWithAnInteger("/calor/setNbOfLayers",this); NbLayersCmd->SetGuidance("Set number of layers."); NbLayersCmd->SetParameterName("NbLayers",false); NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); - NbLayersCmd->AvailableForStates(Idle); + NbLayersCmd->AvailableForStates(G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/calor/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(Idle); + UpdateCmd->AvailableForStates(G4State_Idle); MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/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(Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03EventAction.cc b/examples/novice/N03/src/ExN03EventAction.cc index 087542df1a..07d9e49e9f 100644 --- a/examples/novice/N03/src/ExN03EventAction.cc +++ b/examples/novice/N03/src/ExN03EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.cc,v 1.16 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03EventActionMessenger.cc b/examples/novice/N03/src/ExN03EventActionMessenger.cc index cfede798fb..8e9da261f5 100644 --- a/examples/novice/N03/src/ExN03EventActionMessenger.cc +++ b/examples/novice/N03/src/ExN03EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventActionMessenger.cc,v 1.7 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03EventActionMessenger.cc,v 1.8 2002/12/05 01:07:01 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -47,13 +47,13 @@ ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct) DrawCmd->SetParameterName("choice",true); DrawCmd->SetDefaultValue("all"); DrawCmd->SetCandidates("none charged neutral all"); - DrawCmd->AvailableForStates(Idle); + DrawCmd->AvailableForStates(G4State_Idle); PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this); PrintCmd->SetGuidance("Print events modulo n"); PrintCmd->SetParameterName("EventNb",false); PrintCmd->SetRange("EventNb>0"); - PrintCmd->AvailableForStates(Idle); + PrintCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03PhysicsList.cc b/examples/novice/N03/src/ExN03PhysicsList.cc index 9e35a1148d..79e7fa1772 100644 --- a/examples/novice/N03/src/ExN03PhysicsList.cc +++ b/examples/novice/N03/src/ExN03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.cc,v 1.13 2002/03/08 10:48:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc index 8acad9d022..4650ecdeee 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc index ab335d99ff..b95108ad5a 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.7 2002/12/05 01:07:01 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -46,7 +46,7 @@ ExN03PrimaryGeneratorMessenger::ExN03PrimaryGeneratorMessenger( RndmCmd->SetParameterName("choice",true); RndmCmd->SetDefaultValue("on"); RndmCmd->SetCandidates("on off"); - RndmCmd->AvailableForStates(PreInit,Idle); + RndmCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03RunAction.cc b/examples/novice/N03/src/ExN03RunAction.cc index 4dc3a100f1..fa81b1746b 100644 --- a/examples/novice/N03/src/ExN03RunAction.cc +++ b/examples/novice/N03/src/ExN03RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.cc,v 1.10 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03SteppingAction.cc b/examples/novice/N03/src/ExN03SteppingAction.cc index 66d18b6eaf..bccc054cf8 100644 --- a/examples/novice/N03/src/ExN03SteppingAction.cc +++ b/examples/novice/N03/src/ExN03SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N03/src/ExN03SteppingVerbose.cc b/examples/novice/N03/src/ExN03SteppingVerbose.cc index cd585a0197..78115503d0 100644 --- a/examples/novice/N03/src/ExN03SteppingVerbose.cc +++ b/examples/novice/N03/src/ExN03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.cc,v 1.9 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03VisManager.cc b/examples/novice/N03/src/ExN03VisManager.cc old mode 100644 new mode 100755 index c174ee3cbd..62da7d9628 --- a/examples/novice/N03/src/ExN03VisManager.cc +++ b/examples/novice/N03/src/ExN03VisManager.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.cc,v 1.9 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN03VisManager.cc,v 1.10 2002/11/13 19:14:38 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // John Allison 24th January 1998. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -97,6 +98,7 @@ void ExN03VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/novice/N04/exampleN04.EMtest.large_N.out b/examples/novice/N04/exampleN04.EMtest.large_N.out index 077c0e469e..483a77cc49 100644 --- a/examples/novice/N04/exampleN04.EMtest.large_N.out +++ b/examples/novice/N04/exampleN04.EMtest.large_N.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ + Geant4 version $Name: geant4-05-00 $ (15-Dec-2000) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/novice/N04/exampleN04.EMtest.out b/examples/novice/N04/exampleN04.EMtest.out index 944962bf22..374a330e8e 100644 --- a/examples/novice/N04/exampleN04.EMtest.out +++ b/examples/novice/N04/exampleN04.EMtest.out @@ -1,11 +1,24 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** phot: Total cross sections from Sandia parametrisation. MuonMinusCaptureAtRest is created +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) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -65,24 +78,28 @@ 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. +### Run 0 start. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 11 hits are stored in ExN04TrackerHitsCollection. - 6 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.360266 (GeV) + 9 hits are stored in ExN04TrackerHitsCollection. + 4 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.241565 (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 5 hits are stored in ExN04TrackerHitsCollection. - 15 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.24056 (GeV) + 18 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.03393 (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 - 18 hits are stored in ExN04TrackerHitsCollection. - 16 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 5.24496 (GeV) + 37 hits are stored in ExN04TrackerHitsCollection. + 30 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 8.44836 (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 980c4c79ba..363e5c4b26 100644 --- a/examples/novice/N04/exampleN04.cc +++ b/examples/novice/N04/exampleN04.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN04.cc,v 1.6 2002/06/19 10:44:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out index e5f9fd14e7..dcbf8ad475 100644 --- a/examples/novice/N04/exampleN04.out +++ b/examples/novice/N04/exampleN04.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** @@ -82,9 +82,9 @@ msc: Tables of transport mean free paths. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 111 hits are stored in ExN04TrackerHitsCollection. - 49 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.67483 (GeV) + 102 hits are stored in ExN04TrackerHitsCollection. + 63 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.834231 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 0 hits found in the muon chamber. ++++++++ event aborted @@ -97,9 +97,9 @@ Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 0 isolated muon found. ++++++++ event aborted >>> Event 2 - 81 hits are stored in ExN04TrackerHitsCollection. + 73 hits are stored in ExN04TrackerHitsCollection. 13 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.331409 (GeV) + Total energy deposition in calorimeter : 0.336442 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N04/include/ExN04EMPhysics.hh b/examples/novice/N04/include/ExN04EMPhysics.hh index cb2d6eae35..1ef3e9240b 100644 --- a/examples/novice/N04/include/ExN04EMPhysics.hh +++ b/examples/novice/N04/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04GeneralPhysics.hh b/examples/novice/N04/include/ExN04GeneralPhysics.hh index d7e17d5868..7c281435b6 100644 --- a/examples/novice/N04/include/ExN04GeneralPhysics.hh +++ b/examples/novice/N04/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04HadronPhysics.hh b/examples/novice/N04/include/ExN04HadronPhysics.hh index 5e32d4b687..252debc97a 100644 --- a/examples/novice/N04/include/ExN04HadronPhysics.hh +++ b/examples/novice/N04/include/ExN04HadronPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04IonPhysics.hh b/examples/novice/N04/include/ExN04IonPhysics.hh index d3bfbc07b9..9b47a177f1 100644 --- a/examples/novice/N04/include/ExN04IonPhysics.hh +++ b/examples/novice/N04/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04MuonPhysics.hh b/examples/novice/N04/include/ExN04MuonPhysics.hh index 261c118bf0..9726af48a2 100644 --- a/examples/novice/N04/include/ExN04MuonPhysics.hh +++ b/examples/novice/N04/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.4 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04RunAction.hh b/examples/novice/N04/include/ExN04RunAction.hh index 997ab380d6..4254476845 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 a077e5b98d..a1195c7316 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 index 3648b8917d..39748510e1 100644 --- a/examples/novice/N04/include/ExN04VisManager.hh +++ b/examples/novice/N04/include/ExN04VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04VisManager.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04EMPhysics.cc b/examples/novice/N04/src/ExN04EMPhysics.cc index 17a580e09a..53a6616a06 100644 --- a/examples/novice/N04/src/ExN04EMPhysics.cc +++ b/examples/novice/N04/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04GeneralPhysics.cc b/examples/novice/N04/src/ExN04GeneralPhysics.cc index a6eb6db30d..80dd10c962 100644 --- a/examples/novice/N04/src/ExN04GeneralPhysics.cc +++ b/examples/novice/N04/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04HadronPhysics.cc b/examples/novice/N04/src/ExN04HadronPhysics.cc index f5ecb42a07..858ca34a07 100644 --- a/examples/novice/N04/src/ExN04HadronPhysics.cc +++ b/examples/novice/N04/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04IonPhysics.cc b/examples/novice/N04/src/ExN04IonPhysics.cc index 4ab6dbfda8..e2d55bff46 100644 --- a/examples/novice/N04/src/ExN04IonPhysics.cc +++ b/examples/novice/N04/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.3 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04MuonPhysics.cc b/examples/novice/N04/src/ExN04MuonPhysics.cc index 3b9a25e085..1af193ac84 100644 --- a/examples/novice/N04/src/ExN04MuonPhysics.cc +++ b/examples/novice/N04/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.4 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04PhysicsList.cc b/examples/novice/N04/src/ExN04PhysicsList.cc index 11143892d9..5cc6140304 100644 --- a/examples/novice/N04/src/ExN04PhysicsList.cc +++ b/examples/novice/N04/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.12 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N04/src/ExN04RunAction.cc b/examples/novice/N04/src/ExN04RunAction.cc index 66d67afaa5..34d142fc60 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....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 b358018d52..c955c2c87e 100644 --- a/examples/novice/N04/src/ExN04SteppingVerbose.cc +++ b/examples/novice/N04/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/src/ExN04VisManager.cc b/examples/novice/N04/src/ExN04VisManager.cc old mode 100644 new mode 100755 index 5faf3bacf3..25e3ad8f26 --- a/examples/novice/N04/src/ExN04VisManager.cc +++ b/examples/novice/N04/src/ExN04VisManager.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04VisManager.cc,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 24th January 1998. diff --git a/examples/novice/N05/exampleN05.cc b/examples/novice/N05/exampleN05.cc index 3f093a14c7..3ae6bf88ac 100644 --- a/examples/novice/N05/exampleN05.cc +++ b/examples/novice/N05/exampleN05.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN05.cc,v 1.10 2002/01/09 17:24:16 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out index aae7817901..83d400b67e 100644 --- a/examples/novice/N05/exampleN05.out +++ b/examples/novice/N05/exampleN05.out @@ -1,7 +1,7 @@ RunManager construction starting.... ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** @@ -76,6 +76,7 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) @@ -83,31 +84,31 @@ Current available graphics systems are: ExN05EMShowerModel::DoIt >>> Event 0 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.989911 (GeV) + Total energy deposition in EM calorimeter crytals : 0.989906 (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.999922 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999904 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 13 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.9999 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99984 (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.999903 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99992 (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.989854 (GeV) + Total energy deposition in EM calorimeter crytals : 0.989897 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 @@ -115,31 +116,31 @@ number of event = 5 ExN05EMShowerModel::DoIt >>> Event 0 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999922 (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 1 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. + 6 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 2 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999923 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999907 (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.999908 (GeV) + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999929 (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.999919 (GeV) + 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) number of event = 5 @@ -147,245 +148,244 @@ number of event = 5 ExN05EMShowerModel::DoIt >>> Event 0 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999909 (GeV) - 0 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0 (GeV) -ExN05EMShowerModel::DoIt ->>> Event 1 - 11 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 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. Total energy deposition in EM calorimeter crytals : 0.999919 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt +>>> Event 1 + 9 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 + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999914 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) +ExN05EMShowerModel::DoIt >>> Event 3 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999915 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999775 (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.999736 (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) number of event = 5 ### Run 3 start. ExN05EMShowerModel::DoIt >>> Event 0 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999602 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999915 (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.989884 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99991 (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.999913 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999916 (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.99992 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999907 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 11 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999921 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.98989 (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 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.179991 (GeV) - 8 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.539974 (GeV) + 3 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.0999924 (GeV) + 9 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.479963 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.339982 (GeV) - 12 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.999948 (GeV) + 7 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.279983 (GeV) + 14 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.879942 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 19 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.559966 (GeV) - 16 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.43992 (GeV) -ExN05PionShowerModel::DoIt + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.419974 (GeV) + 14 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 1.35991 (GeV) >>> Event 3 - 22 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.719957 (GeV) - 17 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.01988 (GeV) + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.275929 (GeV) + 9 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.701091 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 27 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.07994 (GeV) - 17 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.37986 (GeV) + 16 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.57996 (GeV) + 15 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 1.77988 (GeV) number of event = 5 ### Run 5 start. ExN05PionShowerModel::DoIt >>> Event 0 - 27 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.07994 (GeV) - 32 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 3.25981 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.619958 (GeV) + 26 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 2.59984 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 31 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.14087 (GeV) - 35 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 4.05897 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.659956 (GeV) + 31 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 3.4398 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 31 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.15987 (GeV) - 36 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 4.8989 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.659956 (GeV) + 31 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 4.21976 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 32 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.17987 (GeV) - 36 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 5.75887 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.659956 (GeV) + 32 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 5.0997 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 33 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.19987 (GeV) - 38 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 6.57882 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.659956 (GeV) + 33 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 6.03965 (GeV) number of event = 5 ### Run 6 start. ExN05PionShowerModel::DoIt >>> Event 0 - 36 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.25987 (GeV) - 52 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 7.43878 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.659956 (GeV) + 46 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 6.9396 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 38 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.29986 (GeV) - 55 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 8.25873 (GeV) + 19 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.659973 (GeV) + 51 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 7.87944 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 40 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.33986 (GeV) - 56 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 9.11869 (GeV) + 19 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.679955 (GeV) + 55 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 8.8194 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 41 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.39985 (GeV) - 57 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 9.91859 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.759951 (GeV) + 59 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 9.61935 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 42 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.41985 (GeV) - 58 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 10.7785 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.759951 (GeV) + 60 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 10.5593 (GeV) number of event = 5 ### Run 7 start. ExN05PionShowerModel::DoIt >>> Event 0 - 49 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.61984 (GeV) - 66 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.3185 (GeV) + 30 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.95994 (GeV) + 68 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 11.0193 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 55 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.75983 (GeV) - 68 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.8785 (GeV) + 32 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.07993 (GeV) + 70 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 11.4393 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 58 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.91982 (GeV) - 69 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.4184 (GeV) + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.27992 (GeV) + 71 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 11.9192 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 61 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.99981 (GeV) - 69 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.9984 (GeV) + 43 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.49991 (GeV) + 72 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 12.3192 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 68 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.2398 (GeV) - 70 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 13.4984 (GeV) + 46 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.6799 (GeV) + 73 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 12.6592 (GeV) number of event = 5 ### Run 8 start. >>> Event 0 - 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.990112 (GeV) - 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00214115 (GeV) ->>> Event 1 31 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.992515 (GeV) - 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00226128 (GeV) ->>> Event 2 - 47 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.980111 (GeV) + Total energy deposition in EM calorimeter crytals : 0.989578 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) +>>> Event 1 + 36 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.980311 (GeV) + 2 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.0036638 (GeV) +>>> Event 2 + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.991035 (GeV) + 2 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.00156932 (GeV) >>> Event 3 - 31 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.996269 (GeV) + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.989798 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 4 - 26 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.995069 (GeV) - 3 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00186706 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.993616 (GeV) + 2 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.00270411 (GeV) number of event = 5 ### Run 9 start. >>> Event 0 - 25 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.991577 (GeV) - 3 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00525579 (GeV) + 29 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.983441 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 1 - 19 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.994401 (GeV) + 20 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.992494 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 2 - 26 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.996132 (GeV) + 24 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.998882 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 3 - 25 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.996335 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.994512 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 4 24 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999873 (GeV) + Total energy deposition in EM calorimeter crytals : 0.996505 (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 517576fdb5..7aea134891 100644 --- a/examples/novice/N05/include/ExN05CalorimeterHit.hh +++ b/examples/novice/N05/include/ExN05CalorimeterHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterHit.hh,v 1.5 2002/01/09 17:24:17 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05CalorimeterHit_h diff --git a/examples/novice/N05/include/ExN05CalorimeterSD.hh b/examples/novice/N05/include/ExN05CalorimeterSD.hh index d0246fcf45..a2091fe643 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05CalorimeterSD_h diff --git a/examples/novice/N05/include/ExN05DetectorConstruction.hh b/examples/novice/N05/include/ExN05DetectorConstruction.hh index 3100f598a8..1879937291 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05DetectorConstruction_h #define ExN05DetectorConstruction_h 1 diff --git a/examples/novice/N05/include/ExN05DetectorMessenger.hh b/examples/novice/N05/include/ExN05DetectorMessenger.hh index bc329bf5e8..f497c85d55 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N05/include/ExN05EMShowerModel.hh b/examples/novice/N05/include/ExN05EMShowerModel.hh index 065199519f..df1cf342ec 100644 --- a/examples/novice/N05/include/ExN05EMShowerModel.hh +++ b/examples/novice/N05/include/ExN05EMShowerModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EMShowerModel.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05EnergySpot.hh b/examples/novice/N05/include/ExN05EnergySpot.hh index b633daf90f..54e7d7fba1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05EnergySpot_h #define ExN05EnergySpot_h diff --git a/examples/novice/N05/include/ExN05EventAction.hh b/examples/novice/N05/include/ExN05EventAction.hh index 52d1663653..43e41291b8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05EventAction_h diff --git a/examples/novice/N05/include/ExN05EventActionMessenger.hh b/examples/novice/N05/include/ExN05EventActionMessenger.hh index 589b05eea1..9f4e30deea 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05EventActionMessenger_h diff --git a/examples/novice/N05/include/ExN05MaxTimeCuts.hh b/examples/novice/N05/include/ExN05MaxTimeCuts.hh index fa9df16e30..8fa28efa59 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinEkineCuts.hh b/examples/novice/N05/include/ExN05MinEkineCuts.hh index a6c0fece4c..64bde396e8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinRangeCuts.hh b/examples/novice/N05/include/ExN05MinRangeCuts.hh index 14b3110463..4d25e75a68 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05PhysicsList.hh b/examples/novice/N05/include/ExN05PhysicsList.hh index f557186d9e..3ee93a7e8f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // #ifndef ExN05PhysicsList_h diff --git a/examples/novice/N05/include/ExN05PiModel.hh b/examples/novice/N05/include/ExN05PiModel.hh index 55945b6620..1507a887ab 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //---------------------------------------- diff --git a/examples/novice/N05/include/ExN05PionShowerModel.hh b/examples/novice/N05/include/ExN05PionShowerModel.hh index 2958cca9f9..1e35e5c559 100644 --- a/examples/novice/N05/include/ExN05PionShowerModel.hh +++ b/examples/novice/N05/include/ExN05PionShowerModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PionShowerModel.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh index ca96324db4..139036f9ef 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05PrimaryGeneratorAction_h diff --git a/examples/novice/N05/include/ExN05RunAction.hh b/examples/novice/N05/include/ExN05RunAction.hh index 9f0472eebc..4484860a80 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05RunAction_h diff --git a/examples/novice/N05/include/ExN05SpecialCuts.hh b/examples/novice/N05/include/ExN05SpecialCuts.hh index 7afabf68c5..e0f9edf44b 100644 --- a/examples/novice/N05/include/ExN05SpecialCuts.hh +++ b/examples/novice/N05/include/ExN05SpecialCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.hh,v 1.6 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05SteppingAction.hh b/examples/novice/N05/include/ExN05SteppingAction.hh index 94ca54da0a..9c4967e15b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05SteppingAction_h diff --git a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh index 03c5d7cf42..f01ab08ccb 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef ExN05SteppingActionMessenger_h diff --git a/examples/novice/N05/include/ExN05VisManager.hh b/examples/novice/N05/include/ExN05VisManager.hh index b7c3fd32ea..4bd3f61af1 100644 --- a/examples/novice/N05/include/ExN05VisManager.hh +++ b/examples/novice/N05/include/ExN05VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05VisManager.hh,v 1.3 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N05/src/ExN05CalorimeterHit.cc b/examples/novice/N05/src/ExN05CalorimeterHit.cc index e30599ff2d..3b7b0c79e0 100644 --- a/examples/novice/N05/src/ExN05CalorimeterHit.cc +++ b/examples/novice/N05/src/ExN05CalorimeterHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterHit.cc,v 1.4 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05CalorimeterHit.hh" diff --git a/examples/novice/N05/src/ExN05CalorimeterSD.cc b/examples/novice/N05/src/ExN05CalorimeterSD.cc index fc60acad02..9c46158b99 100644 --- a/examples/novice/N05/src/ExN05CalorimeterSD.cc +++ b/examples/novice/N05/src/ExN05CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterSD.cc,v 1.4 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorConstruction.cc b/examples/novice/N05/src/ExN05DetectorConstruction.cc index bd92f50984..87ec6ca5ee 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05DetectorConstruction.hh" #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorMessenger.cc b/examples/novice/N05/src/ExN05DetectorMessenger.cc index 9a6a420907..b14f71ee20 100644 --- a/examples/novice/N05/src/ExN05DetectorMessenger.cc +++ b/examples/novice/N05/src/ExN05DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorMessenger.cc,v 1.4 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN05DetectorMessenger.cc,v 1.5 2002/12/05 01:07:02 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -48,28 +48,28 @@ ExN05DetectorMessenger::ExN05DetectorMessenger(ExN05DetectorConstruction * myDet SwitchCmd->SetParameterName("choice",true); SwitchCmd->SetDefaultValue("on"); SwitchCmd->SetCandidates("on ON off OFF"); - SwitchCmd->AvailableForStates(PreInit,Idle); + SwitchCmd->AvailableForStates(G4State_PreInit,G4State_Idle); TmaxCmd = new G4UIcmdWithADoubleAndUnit("/exN05/detector/maxTime",this); TmaxCmd->SetGuidance("Set maximum time in crystal"); TmaxCmd->SetParameterName("Tmax",false,false); TmaxCmd->SetDefaultUnit("ns"); TmaxCmd->SetUnitCategory("Time"); - TmaxCmd->AvailableForStates(PreInit,Idle); + TmaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle); EminCmd = new G4UIcmdWithADoubleAndUnit("/exN05/detector/minEkine",this); EminCmd->SetGuidance("Set minimum kinetic energy in crystal"); EminCmd->SetParameterName("Emin",false,false); EminCmd->SetDefaultUnit("MeV"); EminCmd->SetUnitCategory("Energy"); - EminCmd->AvailableForStates(PreInit,Idle); + EminCmd->AvailableForStates(G4State_PreInit,G4State_Idle); RminCmd = new G4UIcmdWithADoubleAndUnit("/exN05/detector/minRange",this); RminCmd->SetGuidance("Set minimum range in crystal"); RminCmd->SetParameterName("Rmin",false,false); RminCmd->SetDefaultUnit("mm"); RminCmd->SetUnitCategory("Length"); - RminCmd->AvailableForStates(PreInit,Idle); + RminCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } ExN05DetectorMessenger::~ExN05DetectorMessenger() diff --git a/examples/novice/N05/src/ExN05EMShowerModel.cc b/examples/novice/N05/src/ExN05EMShowerModel.cc index 0186306b25..f3199210f6 100644 --- a/examples/novice/N05/src/ExN05EMShowerModel.cc +++ b/examples/novice/N05/src/ExN05EMShowerModel.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EMShowerModel.cc,v 1.7 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05EMShowerModel.hh" #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EnergySpot.cc b/examples/novice/N05/src/ExN05EnergySpot.cc index 56d8198936..4fba9e6262 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EventAction.cc b/examples/novice/N05/src/ExN05EventAction.cc index 77a299854b..a11779b281 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05EventAction.hh" diff --git a/examples/novice/N05/src/ExN05EventActionMessenger.cc b/examples/novice/N05/src/ExN05EventActionMessenger.cc index cd45a461da..2b3b33b95f 100644 --- a/examples/novice/N05/src/ExN05EventActionMessenger.cc +++ b/examples/novice/N05/src/ExN05EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EventActionMessenger.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05EventActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05MaxTimeCuts.cc b/examples/novice/N05/src/ExN05MaxTimeCuts.cc index 401bdd0ce1..a9b4b8ea14 100644 --- a/examples/novice/N05/src/ExN05MaxTimeCuts.cc +++ b/examples/novice/N05/src/ExN05MaxTimeCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MaxTimeCuts.cc,v 1.5 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinEkineCuts.cc b/examples/novice/N05/src/ExN05MinEkineCuts.cc index d4b677abba..60553106be 100644 --- a/examples/novice/N05/src/ExN05MinEkineCuts.cc +++ b/examples/novice/N05/src/ExN05MinEkineCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MinEkineCuts.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinRangeCuts.cc b/examples/novice/N05/src/ExN05MinRangeCuts.cc index eb66959297..5fdb91b963 100644 --- a/examples/novice/N05/src/ExN05MinRangeCuts.cc +++ b/examples/novice/N05/src/ExN05MinRangeCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MinRangeCuts.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05PhysicsList.cc b/examples/novice/N05/src/ExN05PhysicsList.cc index 83a0caefe1..407aabc1eb 100644 --- a/examples/novice/N05/src/ExN05PhysicsList.cc +++ b/examples/novice/N05/src/ExN05PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PhysicsList.cc,v 1.7 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/examples/novice/N05/src/ExN05PiModel.cc b/examples/novice/N05/src/ExN05PiModel.cc index 08da26f7ac..fc1b15334e 100644 --- a/examples/novice/N05/src/ExN05PiModel.cc +++ b/examples/novice/N05/src/ExN05PiModel.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PiModel.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05PiModel.hh" diff --git a/examples/novice/N05/src/ExN05PionShowerModel.cc b/examples/novice/N05/src/ExN05PionShowerModel.cc index e227f3f48c..3239ee419f 100644 --- a/examples/novice/N05/src/ExN05PionShowerModel.cc +++ b/examples/novice/N05/src/ExN05PionShowerModel.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PionShowerModel.cc,v 1.8 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05PionShowerModel.hh" #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc index 2bc515bc17..92c8d8704d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05PrimaryGeneratorAction.hh" diff --git a/examples/novice/N05/src/ExN05RunAction.cc b/examples/novice/N05/src/ExN05RunAction.cc index cdc2cf8512..860f02dde4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Make this appear first! diff --git a/examples/novice/N05/src/ExN05SpecialCuts.cc b/examples/novice/N05/src/ExN05SpecialCuts.cc index 3cc2ecc322..f7582a44eb 100644 --- a/examples/novice/N05/src/ExN05SpecialCuts.cc +++ b/examples/novice/N05/src/ExN05SpecialCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.cc,v 1.5 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/src/ExN05SteppingAction.cc b/examples/novice/N05/src/ExN05SteppingAction.cc index e0cef153c4..47bfac2dfa 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05SteppingAction.hh" diff --git a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc index 5d3b56d04a..218d9741bd 100644 --- a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc +++ b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingActionMessenger.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "ExN05SteppingActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05VisManager.cc b/examples/novice/N05/src/ExN05VisManager.cc old mode 100644 new mode 100755 index e9f440acda..8c9651b98b --- a/examples/novice/N05/src/ExN05VisManager.cc +++ b/examples/novice/N05/src/ExN05VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05VisManager.cc,v 1.6 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: ExN05VisManager.cc,v 1.7 2002/11/13 19:14:43 duns Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -39,6 +39,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -95,6 +96,7 @@ void ExN05VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); diff --git a/examples/novice/N06/History b/examples/novice/N06/History index 6a4ec927aa..6bb06f0458 100644 --- a/examples/novice/N06/History +++ b/examples/novice/N06/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2002/05/30 08:12:18 gcosmo Exp $ +$Id: History,v 1.11 2002/11/21 22:58:25 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 21, 2002 Peter Gumplinger (exampleN06-V04-01-02) +- exampleN06.out output changed because of small change in G4Scintillation + +November 14, 2002 Peter Gumplinger (exampleN06-V04-01-01) +- reduced the scintillation photon yield to reduce the output size + +November 12, 2002 Peter Gumplinger (exampleN06-V04-01-00) +- add ExN06StackingAction, change user interface to new version of G4Scintillation + May 30, 2002 Gabriele Cosmo (exampleN06-V04-00-02) - Renamed file ExN06PrimaryGeneratoraction.cc to ExN06PrimaryGeneratorAction.cc to be consistent with class name. diff --git a/examples/novice/N06/README b/examples/novice/N06/README index a095d5f8ff..40a6e5d56c 100644 --- a/examples/novice/N06/README +++ b/examples/novice/N06/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 2002/05/17 00:13:54 gum Exp $ +$Id: README,v 1.3 2002/11/12 23:05:04 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -47,3 +47,8 @@ G4UserRunAction ==> define G4Timer (start/stop) set verbose levels + +G4UserStackingAction +-------------------- + +==> show how to count the number of secondary particles in an event diff --git a/examples/novice/N06/exampleN06.cc b/examples/novice/N06/exampleN06.cc index 6732170784..518e4e13fb 100644 --- a/examples/novice/N06/exampleN06.cc +++ b/examples/novice/N06/exampleN06.cc @@ -36,7 +36,10 @@ // Version: 5.0 // Created: 1996-04-30 // Author: Juliet Armstrong -// Updated: 1998-06-03 by Peter Gumplinger for example ExN06 +// Updated: 2002-11-12 by Peter Gumplinger +// Change user interface to G4Scintillation +// Add UserStackingAction +// 1998-06-03 by Peter Gumplinger for example ExN06 // mail: gum@triumf.ca // // -------------------------------------------------------------- @@ -44,6 +47,7 @@ #include "ExN06RunAction.hh" #include "ExN06DetectorConstruction.hh" #include "ExN06PrimaryGeneratorAction.hh" +#include "ExN06StackingAction.hh" #include "ExN06PhysicsList.hh" #include "G4RunManager.hh" @@ -76,6 +80,8 @@ int main(int argc,char** argv) { runManager->SetUserAction(new ExN06RunAction); runManager->SetUserAction(new ExN06PrimaryGeneratorAction); + runManager->SetUserAction(new ExN06StackingAction); + // User interactions // Define (G)UI for interactive mode if(argc==1) diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out index 24545e688b..8c355dd9cd 100644 --- a/examples/novice/N06/exampleN06.out +++ b/examples/novice/N06/exampleN06.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-04-01 $ - (28-Feb-2002) + Geant4 version $Name: geant4-05-00 $ + (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** /run/initialize @@ -75,1021 +75,156 @@ MuPairProd: theoretical cross sections Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 224 - Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 158 + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 76 Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 384 stacked tracks. - -** Photon absorbed! ** -Track (trackID 384, parentID 1) is processed with stopping code 2 -### pop requested out of 383 stacked tracks. - -** Photon absorbed! ** -Track (trackID 383, parentID 1) is processed with stopping code 2 -### pop requested out of 382 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.729563,-0.245932,0.638166) - Old Polarization: (0.604742,-0.667775,0.43401) - New Momentum Direction: (-0.381059,-0.332464,0.862706) - New Polarization: (0.871094,-0.441794,0.214508) - *** FresnelRefraction *** -Track (trackID 382, parentID 1) is processed with stopping code 2 -### pop requested out of 381 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.689712,0.714357,-0.118287) - Old Polarization: (0.442783,0.286841,-0.849509) - New Momentum Direction: (-0.689712,-0.714357,-0.118287) - New Polarization: (-0.0104469,-0.153526,0.988089) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.689712,-0.714357,-0.118287) - Old Polarization: (-0.0104469,-0.153526,0.988089) - New Momentum Direction: (-0.179728,-0.970501,-0.1607) - New Polarization: (0.0230536,-0.167471,0.985607) - *** FresnelRefraction *** -Track (trackID 381, parentID 1) is processed with stopping code 2 -### pop requested out of 380 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.368599,-0.675515,0.638603) - Old Polarization: (0.580053,-0.369686,-0.725859) - New Momentum Direction: (0.368599,0.675515,0.638603) - New Polarization: (-0.921672,0.355039,0.156424) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.368599,0.675515,0.638603) - Old Polarization: (-0.921672,0.355039,0.156424) - New Momentum Direction: (0.368599,0.675515,-0.638603) - New Polarization: (0.921672,-0.355039,0.156424) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.368599,0.675515,-0.638603) - Old Polarization: (0.921672,-0.355039,0.156424) - New Momentum Direction: (-0.368599,0.675515,-0.638603) - New Polarization: (0.921672,0.355039,-0.156424) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.368599,0.675515,-0.638603) - Old Polarization: (0.921672,0.355039,-0.156424) - New Momentum Direction: (-0.368599,-0.675515,-0.638603) - New Polarization: (-0.612126,-0.340629,0.713634) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.368599,-0.675515,-0.638603) - Old Polarization: (-0.612126,-0.340629,0.713634) - New Momentum Direction: (-0.368599,-0.675515,0.638603) - New Polarization: (0.612126,0.340629,0.713634) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 380, parentID 1) is processed with stopping code 2 -### pop requested out of 379 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.104109,-0.452377,0.885729) - Old Polarization: (0.0407122,-0.891761,-0.450672) - New Momentum Direction: (-0.140834,-0.611958,0.77825) - New Polarization: (-0.000107108,-0.786075,-0.618131) - *** FresnelRefraction *** -Track (trackID 379, parentID 1) is processed with stopping code 2 -### pop requested out of 378 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.00386218,-0.911334,-0.411651) - Old Polarization: (0.874207,0.202952,-0.441104) - New Momentum Direction: (0.00524833,-0.828886,-0.559393) - New Polarization: (0.792796,0.344388,-0.502862) - *** FresnelRefraction *** -Track (trackID 378, parentID 1) is processed with stopping code 2 -### pop requested out of 377 stacked tracks. - -** Photon absorbed! ** -Track (trackID 377, parentID 1) is processed with stopping code 2 -### pop requested out of 376 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.315169,-0.434571,0.843692) - Old Polarization: (0.871627,0.484211,-0.0761959) - New Momentum Direction: (0.424789,-0.58572,0.69028) - New Polarization: (0.873062,0.466697,-0.141267) - *** FresnelRefraction *** -Track (trackID 376, parentID 1) is processed with stopping code 2 -### pop requested out of 375 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.492838,-0.451385,0.743883) - Old Polarization: (-0.323803,0.698376,0.638297) - New Momentum Direction: (0.663317,-0.607524,0.436949) - New Polarization: (0.456139,-0.134651,-0.879663) - *** FresnelRefraction *** -Track (trackID 375, parentID 1) is processed with stopping code 2 -### pop requested out of 374 stacked tracks. - -** Photon absorbed! ** -Track (trackID 374, parentID 1) is processed with stopping code 2 -### pop requested out of 373 stacked tracks. - -** Photon absorbed! ** -Track (trackID 373, parentID 1) is processed with stopping code 2 -### pop requested out of 372 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.461015,-0.423509,-0.779811) - Old Polarization: (0.00626173,0.880297,-0.474381) - New Momentum Direction: (0.624395,-0.573598,-0.530204) - New Polarization: (0.682968,0.0715057,0.72694) - *** FresnelRefraction *** -Track (trackID 372, parentID 1) is processed with stopping code 2 -### pop requested out of 371 stacked tracks. - -** Photon absorbed! ** -Track (trackID 371, parentID 1) is processed with stopping code 2 -### pop requested out of 370 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.865424,0.312572,0.391588) - Old Polarization: (-0.50096,-0.525706,-0.687512) - New Momentum Direction: (-0.735743,0.422506,0.529312) - New Polarization: (0.677203,0.46913,0.566844) - *** FresnelRefraction *** -Track (trackID 370, parentID 1) is processed with stopping code 2 -### pop requested out of 369 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.345275,-0.402597,0.847762) - Old Polarization: (0.856422,-0.234278,-0.460059) - New Momentum Direction: (0.468701,-0.546514,0.694004) - New Polarization: (0.705975,-0.24048,-0.666159) - *** FresnelRefraction *** -Track (trackID 369, parentID 1) is processed with stopping code 2 -### pop requested out of 368 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.019192,-0.965725,0.258858) - Old Polarization: (-0.9867,0.0235042,0.160843) - New Momentum Direction: (0.0260629,-0.935813,0.351531) - New Polarization: (-0.981156,0.0434004,0.188281) - *** FresnelRefraction *** -Track (trackID 368, parentID 1) is processed with stopping code 2 -### pop requested out of 367 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.611834,-0.603369,0.511473) - Old Polarization: (0.166744,0.730481,0.662264) - New Momentum Direction: (-0.611834,-0.603369,0.511473) - New Polarization: (0.166744,-0.730481,-0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,-0.603369,0.511473) - Old Polarization: (0.166744,-0.730481,-0.662264) - New Momentum Direction: (-0.611834,0.603369,0.511473) - New Polarization: (-0.166744,-0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,0.603369,0.511473) - Old Polarization: (-0.166744,-0.730481,0.662264) - New Momentum Direction: (-0.611834,0.603369,-0.511473) - New Polarization: (0.166744,0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,0.603369,-0.511473) - Old Polarization: (0.166744,0.730481,0.662264) - New Momentum Direction: (0.611834,0.603369,-0.511473) - New Polarization: (0.166744,-0.730481,-0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,0.603369,-0.511473) - Old Polarization: (0.166744,-0.730481,-0.662264) - New Momentum Direction: (0.611834,-0.603369,-0.511473) - New Polarization: (-0.166744,-0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,-0.603369,-0.511473) - Old Polarization: (-0.166744,-0.730481,0.662264) - New Momentum Direction: (0.611834,-0.603369,0.511473) - New Polarization: (0.166744,0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,-0.603369,0.511473) - Old Polarization: (0.166744,0.730481,0.662264) - New Momentum Direction: (-0.611834,-0.603369,0.511473) - New Polarization: (0.166744,-0.730481,-0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,-0.603369,0.511473) - Old Polarization: (0.166744,-0.730481,-0.662264) - New Momentum Direction: (-0.611834,0.603369,0.511473) - New Polarization: (-0.166744,-0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,0.603369,0.511473) - Old Polarization: (-0.166744,-0.730481,0.662264) - New Momentum Direction: (-0.611834,0.603369,-0.511473) - New Polarization: (0.166744,0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,0.603369,-0.511473) - Old Polarization: (0.166744,0.730481,0.662264) - New Momentum Direction: (0.611834,0.603369,-0.511473) - New Polarization: (0.166744,-0.730481,-0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,0.603369,-0.511473) - Old Polarization: (0.166744,-0.730481,-0.662264) - New Momentum Direction: (0.611834,-0.603369,-0.511473) - New Polarization: (-0.166744,-0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,-0.603369,-0.511473) - Old Polarization: (-0.166744,-0.730481,0.662264) - New Momentum Direction: (0.611834,-0.603369,0.511473) - New Polarization: (0.166744,0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,-0.603369,0.511473) - Old Polarization: (0.166744,0.730481,0.662264) - New Momentum Direction: (-0.611834,-0.603369,0.511473) - New Polarization: (0.166744,-0.730481,-0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,-0.603369,0.511473) - Old Polarization: (0.166744,-0.730481,-0.662264) - New Momentum Direction: (-0.611834,0.603369,0.511473) - New Polarization: (-0.166744,-0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,0.603369,0.511473) - Old Polarization: (-0.166744,-0.730481,0.662264) - New Momentum Direction: (-0.611834,0.603369,-0.511473) - New Polarization: (0.166744,0.730481,0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.611834,0.603369,-0.511473) - Old Polarization: (0.166744,0.730481,0.662264) - New Momentum Direction: (0.611834,0.603369,-0.511473) - New Polarization: (0.166744,-0.730481,-0.662264) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.611834,0.603369,-0.511473) - Old Polarization: (0.166744,-0.730481,-0.662264) - New Momentum Direction: (0.611834,-0.603369,-0.511473) - New Polarization: (-0.166744,-0.730481,0.662264) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 367, parentID 1) is processed with stopping code 2 -### pop requested out of 366 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0111887,-0.992739,-0.11977) - Old Polarization: (0.205314,0.119507,-0.971372) - New Momentum Direction: (0.01514,-0.986664,-0.162067) - New Polarization: (0.175553,0.162191,-0.971018) - *** FresnelRefraction *** -Track (trackID 366, parentID 1) is processed with stopping code 2 -### pop requested out of 365 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.343386,-0.653791,0.674273) - Old Polarization: (-0.608932,0.391603,0.689818) - New Momentum Direction: (0.343386,-0.653791,-0.674273) - New Polarization: (0.608932,-0.391603,0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.343386,-0.653791,-0.674273) - Old Polarization: (0.608932,-0.391603,0.689818) - New Momentum Direction: (0.343386,0.653791,-0.674273) - New Polarization: (-0.608932,-0.391603,-0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.343386,0.653791,-0.674273) - Old Polarization: (-0.608932,-0.391603,-0.689818) - New Momentum Direction: (-0.343386,0.653791,-0.674273) - New Polarization: (-0.608932,0.391603,0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.343386,0.653791,-0.674273) - Old Polarization: (-0.608932,0.391603,0.689818) - New Momentum Direction: (-0.343386,0.653791,0.674273) - New Polarization: (0.608932,-0.391603,0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.343386,0.653791,0.674273) - Old Polarization: (0.608932,-0.391603,0.689818) - New Momentum Direction: (-0.343386,-0.653791,0.674273) - New Polarization: (-0.608932,-0.391603,-0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.343386,-0.653791,0.674273) - Old Polarization: (-0.608932,-0.391603,-0.689818) - New Momentum Direction: (-0.343386,-0.653791,-0.674273) - New Polarization: (0.608932,0.391603,-0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.343386,-0.653791,-0.674273) - Old Polarization: (0.608932,0.391603,-0.689818) - New Momentum Direction: (-0.343386,0.653791,-0.674273) - New Polarization: (-0.608932,0.391603,0.689818) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.343386,0.653791,-0.674273) - Old Polarization: (-0.608932,0.391603,0.689818) - New Momentum Direction: (0.343386,0.653791,-0.674273) - New Polarization: (-0.608932,-0.391603,-0.689818) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 365, parentID 1) is processed with stopping code 2 -### pop requested out of 364 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.566908,-0.594757,0.569982) - Old Polarization: (0.750029,-0.658809,0.0585383) - New Momentum Direction: (-0.566908,0.594757,0.569982) - New Polarization: (-0.750029,-0.658809,-0.0585383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.566908,0.594757,0.569982) - Old Polarization: (-0.750029,-0.658809,-0.0585383) - New Momentum Direction: (-0.566908,0.594757,-0.569982) - New Polarization: (0.750029,0.658809,-0.0585383) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.566908,0.594757,-0.569982) - Old Polarization: (0.750029,0.658809,-0.0585383) - New Momentum Direction: (0.566908,0.594757,-0.569982) - New Polarization: (0.750029,-0.658809,0.0585383) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.566908,0.594757,-0.569982) -Old Polarization: (0.750029,-0.658809,0.0585383) -New Polarization: (0.155977,-0.656241,-0.738254) -Polarization Change: (0.155977,-0.656241,-0.738254) -New Momentum Direction: (0.7781,-0.378773,0.501091) -Momentum Change: (0.7781,-0.378773,0.501091) - Photon at Boundary! - Old Momentum Direction: (0.7781,-0.378773,0.501091) - Old Polarization: (0.155977,-0.656241,-0.738254) - New Momentum Direction: (0.521316,-0.514584,0.680759) - New Polarization: (-0.296006,-0.857248,-0.421314) - *** FresnelRefraction *** -Track (trackID 364, parentID 1) is processed with stopping code 2 -### pop requested out of 363 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.168285,-0.502368,-0.848119) - Old Polarization: (0.571337,0.651422,-0.499224) - New Momentum Direction: (-0.228153,-0.681088,-0.695748) - New Polarization: (0.0196103,-0.717665,0.696112) - *** FresnelRefraction *** -Track (trackID 363, parentID 1) is processed with stopping code 2 -### pop requested out of 362 stacked tracks. - -** Photon absorbed! ** -Track (trackID 362, parentID 1) is processed with stopping code 2 -### pop requested out of 361 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.380751,0.551614,0.742126) - Old Polarization: (-0.423635,-0.817455,0.390258) - New Momentum Direction: (-0.514029,0.744702,0.425669) - New Polarization: (-0.743048,-0.138654,-0.654717) - *** FresnelRefraction *** -Track (trackID 361, parentID 1) is processed with stopping code 2 -### pop requested out of 360 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.680244,-0.552881,-0.481238) -Old Polarization: (0.732736,-0.530075,-0.426754) -New Polarization: (-0.565666,-0.680197,0.466213) -Polarization Change: (-0.565666,-0.680197,0.466213) -New Momentum Direction: (0.609497,-0.725675,-0.319231) -Momentum Change: (0.609497,-0.725675,-0.319231) - Photon at Boundary! - Old Momentum Direction: (0.609497,-0.725675,-0.319231) - Old Polarization: (-0.565666,-0.680197,0.466213) - New Momentum Direction: (0.828559,-0.353784,-0.433967) - New Polarization: (0.358371,0.930607,-0.0744359) - *** FresnelRefraction *** -Track (trackID 360, parentID 1) is processed with stopping code 2 -### pop requested out of 359 stacked tracks. - -** Photon absorbed! ** -Track (trackID 359, parentID 1) is processed with stopping code 2 -### pop requested out of 358 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0537023,-0.996266,-0.0676093) - Old Polarization: (-0.987108,0.0427414,0.154242) - New Momentum Direction: (-0.0727992,-0.993127,-0.0916516) - New Polarization: (-0.997296,0.0715654,0.0166812) - *** FresnelRefraction *** -Track (trackID 358, parentID 1) is processed with stopping code 2 -### pop requested out of 357 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.10133,-0.243956,0.964478) - Old Polarization: (-0.706177,-0.665228,-0.242456) - New Momentum Direction: (-0.137307,-0.330573,0.933739) - New Polarization: (-0.620941,-0.705722,-0.341158) - *** FresnelRefraction *** -Track (trackID 357, parentID 1) is processed with stopping code 2 -### pop requested out of 356 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.520064,-0.626274,0.580788) - Old Polarization: (-0.28442,0.514191,0.809143) - New Momentum Direction: (0.520064,0.626274,0.580788) - New Polarization: (0.28442,0.514191,-0.809143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.520064,0.626274,0.580788) - Old Polarization: (0.28442,0.514191,-0.809143) - New Momentum Direction: (0.520064,0.626274,-0.580788) - New Polarization: (-0.28442,-0.514191,-0.809143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.520064,0.626274,-0.580788) - Old Polarization: (-0.28442,-0.514191,-0.809143) - New Momentum Direction: (-0.520064,0.626274,-0.580788) - New Polarization: (-0.28442,0.514191,0.809143) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 356, parentID 1) is processed with stopping code 2 -### pop requested out of 355 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.393926,-0.0569859,-0.917374) - Old Polarization: (0.0945505,-0.995294,0.0212257) - New Momentum Direction: (-0.535619,-0.0774836,-0.840897) - New Polarization: (0.0817133,-0.995864,0.0397146) - *** FresnelRefraction *** -Track (trackID 355, parentID 1) is processed with stopping code 2 -### pop requested out of 354 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.298687,-0.569393,0.765884) - Old Polarization: (-0.313508,-0.699439,-0.64226) - New Momentum Direction: (-0.405066,-0.772186,0.48954) - New Polarization: (-0.198383,-0.448447,-0.871516) - *** FresnelRefraction *** -Track (trackID 354, parentID 1) is processed with stopping code 2 -### pop requested out of 353 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.967646,0.248118,0.0458184) - Old Polarization: (-0.0270188,0.0786525,-0.996536) - New Momentum Direction: (-0.940424,0.334351,0.0617426) - New Polarization: (0.0490377,0.313074,-0.948462) - *** FresnelRefraction *** -Track (trackID 353, parentID 1) is processed with stopping code 2 -### pop requested out of 352 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.518894,-0.550156,-0.654277) - Old Polarization: (0.402943,0.517604,-0.7548) - New Momentum Direction: (-0.518894,-0.550156,0.654277) - New Polarization: (-0.402943,-0.517604,-0.7548) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.518894,-0.550156,0.654277) - Old Polarization: (-0.402943,-0.517604,-0.7548) - New Momentum Direction: (-0.518894,0.550156,0.654277) - New Polarization: (0.402943,-0.517604,0.7548) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.518894,0.550156,0.654277) - Old Polarization: (0.402943,-0.517604,0.7548) - New Momentum Direction: (0.518894,0.550156,0.654277) - New Polarization: (0.402943,0.517604,-0.7548) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 352, parentID 1) is processed with stopping code 2 -### pop requested out of 351 stacked tracks. - -** Photon absorbed! ** -Track (trackID 351, parentID 1) is processed with stopping code 2 -### pop requested out of 350 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.853302,0.52138,0.00619984) - Old Polarization: (-0.409914,0.66343,0.625964) - New Momentum Direction: (0.705741,0.70842,0.00842396) - New Polarization: (-0.617574,0.609325,0.497319) - *** FresnelRefraction *** -Track (trackID 350, parentID 1) is processed with stopping code 2 -### pop requested out of 349 stacked tracks. - -** Photon absorbed! ** -Track (trackID 349, parentID 1) is processed with stopping code 2 -### pop requested out of 348 stacked tracks. - -** Photon absorbed! ** -Track (trackID 348, parentID 1) is processed with stopping code 2 -### pop requested out of 347 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.637626,-0.73117,-0.242536) - Old Polarization: (-0.724295,0.461796,0.511998) - New Momentum Direction: (-0.866885,-0.373873,-0.32974) - New Polarization: (-0.491579,0.751015,0.440826) - *** FresnelRefraction *** -Track (trackID 347, parentID 1) is processed with stopping code 2 -### pop requested out of 346 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.185758,-0.487227,0.85329) - Old Polarization: (-0.979723,0.158191,-0.122955) - New Momentum Direction: (-0.252041,-0.661083,0.706714) - New Polarization: (-0.965772,0.125557,-0.226981) - *** FresnelRefraction *** -Track (trackID 346, parentID 1) is processed with stopping code 2 -### pop requested out of 345 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.851001,-0.510447,-0.123452) - Old Polarization: (0.50493,0.859908,-0.0748567) - New Momentum Direction: (0.700302,-0.693843,-0.167806) - New Polarization: (-0.699412,-0.619881,-0.355768) - *** FresnelRefraction *** -Track (trackID 345, parentID 1) is processed with stopping code 2 -### pop requested out of 344 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.331004,0.854194,0.400984) - Old Polarization: (-0.934109,-0.356818,-0.0109776) - New Momentum Direction: (-0.449221,0.708556,0.544196) - New Polarization: (-0.825594,-0.562022,0.0502562) - *** FresnelRefraction *** -Track (trackID 344, parentID 1) is processed with stopping code 2 -### pop requested out of 343 stacked tracks. - -** Photon absorbed! ** -Track (trackID 343, parentID 1) is processed with stopping code 2 -### pop requested out of 342 stacked tracks. - -** Photon absorbed! ** -Track (trackID 342, parentID 1) is processed with stopping code 2 -### pop requested out of 341 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.976985,0.174949,0.122041) - Old Polarization: (0.0824949,0.837498,-0.540177) - New Momentum Direction: (-0.957907,0.235451,0.164245) - New Polarization: (0.141414,0.884904,-0.443787) - *** FresnelRefraction *** -Track (trackID 341, parentID 1) is processed with stopping code 2 -### pop requested out of 340 stacked tracks. - -** Photon absorbed! ** -Track (trackID 340, parentID 1) is processed with stopping code 2 -### pop requested out of 339 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.950344,-0.128223,-0.283558) -Old Polarization: (0.178299,0.971139,0.158427) -New Polarization: (-0.0674108,0.959632,0.27306) -Polarization Change: (-0.0674108,0.959632,0.27306) -New Momentum Direction: (0.904632,0.174223,-0.388956) -Momentum Change: (0.904632,0.174223,-0.388956) - Photon at Boundary! - Old Momentum Direction: (0.904632,0.174223,-0.388956) - Old Polarization: (-0.0674108,0.959632,0.27306) - New Momentum Direction: (0.814724,0.237036,-0.529187) - New Polarization: (-0.125369,0.963051,0.23836) - *** FresnelRefraction *** -Track (trackID 339, parentID 1) is processed with stopping code 2 -### pop requested out of 338 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.507651,-0.324818,-0.797987) - Old Polarization: (0.237035,0.837811,-0.491821) - New Momentum Direction: (-0.686722,-0.439396,-0.579089) - New Polarization: (-0.677144,0.0969561,0.729435) - *** FresnelRefraction *** -Track (trackID 338, parentID 1) is processed with stopping code 2 -### pop requested out of 337 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.762436,0.645252,0.0483928) - Old Polarization: (0.597487,-0.730758,0.330155) - New Momentum Direction: (0.488054,0.870369,0.0652762) - New Polarization: (-0.838555,0.446837,0.311709) - *** FresnelRefraction *** -Track (trackID 337, parentID 1) is processed with stopping code 2 -### pop requested out of 336 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.652,0.0480463,0.756695) - Old Polarization: (0.0524035,0.992748,-0.108187) - New Momentum Direction: (0.885156,0.0652277,0.4607) - New Polarization: (0.0380603,0.976657,-0.211405) - *** FresnelRefraction *** -Track (trackID 336, parentID 1) is processed with stopping code 2 -### pop requested out of 335 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.171721,-0.770333,0.614084) - Old Polarization: (0.862352,-0.418915,-0.284358) - New Momentum Direction: (-0.231479,-0.511078,0.827778) - New Polarization: (0.495026,0.670614,0.552472) - *** FresnelRefraction *** -Track (trackID 335, parentID 1) is processed with stopping code 2 -### pop requested out of 334 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.447631,-0.89277,-0.0508808) - Old Polarization: (0.304462,0.0986616,0.947401) - New Momentum Direction: (0.605318,-0.793005,-0.0688046) - New Polarization: (0.340485,0.179825,0.922894) - *** FresnelRefraction *** -Track (trackID 334, parentID 1) is processed with stopping code 2 -### pop requested out of 333 stacked tracks. - -** Photon absorbed! ** -Track (trackID 333, parentID 1) is processed with stopping code 2 -### pop requested out of 332 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.178421,-0.632419,0.753799) - Old Polarization: (0.282157,0.701033,0.654935) - New Momentum Direction: (-0.24005,-0.850864,0.46734) - New Polarization: (-0.0723881,-0.464387,-0.882669) - *** FresnelRefraction *** -Track (trackID 332, parentID 1) is processed with stopping code 2 -### pop requested out of 331 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.907262,-0.410741,-0.0903802) - Old Polarization: (0.159562,-0.535003,0.829645) - New Momentum Direction: (-0.820159,-0.558769,-0.122953) - New Polarization: (0.282004,-0.581792,0.762884) - *** FresnelRefraction *** -Track (trackID 331, parentID 1) is processed with stopping code 2 -### pop requested out of 330 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.788322,0.364358,0.495774) - Old Polarization: (-0.0251346,-0.82419,0.565755) - New Momentum Direction: (-0.549191,0.494899,0.673398) - New Polarization: (0.0489175,-0.785373,0.617088) - *** FresnelRefraction *** -Track (trackID 330, parentID 1) is processed with stopping code 2 -### pop requested out of 329 stacked tracks. - -** Photon absorbed! ** -Track (trackID 329, parentID 1) is processed with stopping code 2 -### pop requested out of 328 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0751,0.819806,-0.567695) - Old Polarization: (0.241299,0.567324,0.787349) - New Momentum Direction: (-0.102172,0.626943,-0.772336) - New Polarization: (0.0137222,-0.775437,-0.631275) - *** FresnelRefraction *** -Track (trackID 328, parentID 1) is processed with stopping code 2 -### pop requested out of 327 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.605042,0.278749,0.745804) - Old Polarization: (0.549425,0.531769,-0.644479) - New Momentum Direction: (0.82029,0.377916,0.429306) - New Polarization: (0.310614,0.335912,-0.889203) - *** FresnelRefraction *** -Track (trackID 327, parentID 1) is processed with stopping code 2 -### pop requested out of 326 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0186595,-0.686406,0.726979) - Old Polarization: (-0.0686908,0.724508,0.685835) - New Momentum Direction: (0.025317,-0.931308,0.363351) - New Polarization: (-0.0227694,-0.363911,-0.931155) - *** FresnelRefraction *** -Track (trackID 326, parentID 1) is processed with stopping code 2 -### pop requested out of 325 stacked tracks. - -** Photon absorbed! ** -Track (trackID 325, parentID 1) is processed with stopping code 2 -### pop requested out of 324 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.25121,-0.248095,0.935597) - Old Polarization: (-0.919167,-0.241792,-0.310915) - New Momentum Direction: (-0.339618,-0.335406,0.878728) - New Polarization: (-0.839392,-0.313433,-0.44405) - *** FresnelRefraction *** -Track (trackID 324, parentID 1) is processed with stopping code 2 -### pop requested out of 323 stacked tracks. - -** Photon absorbed! ** -Track (trackID 323, parentID 1) is processed with stopping code 2 -### pop requested out of 322 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.367436,0.386002,0.846164) - Old Polarization: (-0.576218,0.619672,-0.532897) - New Momentum Direction: (-0.498476,0.523664,0.690868) - New Polarization: (-0.471203,0.505264,-0.722963) - *** FresnelRefraction *** -Track (trackID 322, parentID 1) is processed with stopping code 2 -### pop requested out of 321 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.231415,-0.0579073,-0.97113) - Old Polarization: (0.782898,-0.581486,0.221234) - New Momentum Direction: (0.312458,-0.0781867,-0.946708) - New Polarization: (0.811007,-0.496955,0.308713) - *** FresnelRefraction *** -Track (trackID 321, parentID 1) is processed with stopping code 2 -### pop requested out of 320 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.648208,0.675178,0.352082) -Old Polarization: (0.235948,-0.617713,0.750173) -New Polarization: (-0.130545,-0.175517,0.975783) -Polarization Change: (-0.130545,-0.175517,0.975783) -New Momentum Direction: (0.58206,-0.810308,-0.0678815) -Momentum Change: (0.58206,-0.810308,-0.0678815) - Photon at Boundary! - Old Momentum Direction: (0.58206,-0.810308,-0.0678815) - Old Polarization: (-0.130545,-0.175517,0.975783) - New Momentum Direction: (-0.58206,-0.810308,-0.0678815) - New Polarization: (-0.130545,0.175517,-0.975783) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 320, parentID 1) is processed with stopping code 2 -### pop requested out of 319 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.499288,-0.423838,-0.755693) - Old Polarization: (0.443641,0.624122,-0.64316) - New Momentum Direction: (-0.676881,-0.574595,-0.46008) - New Polarization: (-0.432242,-0.195653,0.880276) - *** FresnelRefraction *** -Track (trackID 319, parentID 1) is processed with stopping code 2 -### pop requested out of 318 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.999117,-0.0375502,0.0188438) - Old Polarization: (0.0140344,0.721055,0.692736) - New Momentum Direction: (0.998386,-0.050764,0.0254748) - New Polarization: (-0.0245435,0.0188856,0.99952) - *** FresnelRefraction *** -Track (trackID 318, parentID 1) is processed with stopping code 2 -### pop requested out of 317 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.972029,0.00814031,0.234719) - Old Polarization: (-0.225423,0.248116,-0.942138) - New Momentum Direction: (-0.94836,0.0109941,0.317005) - New Polarization: (0.310066,0.24284,0.919178) - *** FresnelRefraction *** -Track (trackID 317, parentID 1) is processed with stopping code 2 -### pop requested out of 316 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.853925,-0.337596,0.396033) - Old Polarization: (0.0902803,-0.653377,-0.75163) - New Momentum Direction: (0.707023,-0.458774,0.538186) - New Polarization: (-0.169153,-0.848639,-0.501199) - *** FresnelRefraction *** -Track (trackID 316, parentID 1) is processed with stopping code 2 -### pop requested out of 315 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.40807,-0.623553,-0.666829) -Old Polarization: (0.166337,0.667404,-0.725881) -New Polarization: (0.0232157,0.757394,-0.652545) -Polarization Change: (0.0232157,0.757394,-0.652545) -New Momentum Direction: (-0.782106,0.420327,0.460039) -Momentum Change: (-0.782106,0.420327,0.460039) - Photon at Boundary! - Old Momentum Direction: (-0.782106,0.420327,0.460039) - Old Polarization: (0.0232157,0.757394,-0.652545) - New Momentum Direction: (-0.545241,0.56544,0.618862) - New Polarization: (0.0442483,0.756637,-0.652337) - *** FresnelRefraction *** -Track (trackID 315, parentID 1) is processed with stopping code 2 -### pop requested out of 314 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.315849,-0.615854,0.721778) - Old Polarization: (-0.234597,0.68641,0.688336) - New Momentum Direction: (0.42934,-0.837144,0.338905) - New Polarization: (0.215752,-0.269315,-0.938573) - *** FresnelRefraction *** -Track (trackID 314, parentID 1) is processed with stopping code 2 -### pop requested out of 313 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.183313,-0.205827,-0.961266) - Old Polarization: (-0.411117,-0.872169,0.265149) - New Momentum Direction: (-0.247611,-0.278022,-0.928112) - New Polarization: (-0.451412,-0.814508,0.364423) - *** FresnelRefraction *** -Track (trackID 313, parentID 1) is processed with stopping code 2 -### pop requested out of 312 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.0790761,0.103482,0.991483) -Old Polarization: (0.406206,0.904935,-0.126846) -New Polarization: (-0.397036,-0.147318,0.905903) -Polarization Change: (-0.397036,-0.147318,0.905903) -New Momentum Direction: (-0.267035,-0.925791,-0.267588) -Momentum Change: (-0.267035,-0.925791,-0.267588) - Photon at Boundary! - Old Momentum Direction: (-0.267035,-0.925791,-0.267588) - Old Polarization: (-0.397036,-0.147318,0.905903) - New Momentum Direction: (-0.267035,0.925791,-0.267588) - New Polarization: (0.522923,-0.0940336,-0.847177) - *** FresnelReflection *** - -** Photon absorbed! ** -Track (trackID 312, parentID 1) is processed with stopping code 2 -### pop requested out of 311 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.0867382,0.82235,-0.562331) -Old Polarization: (-0.768643,-0.303848,-0.562907) -New Polarization: (-0.940491,0.175252,-0.291142) -Polarization Change: (-0.940491,0.175252,-0.291142) -New Momentum Direction: (-0.0276785,0.814403,0.579639) -Momentum Change: (-0.0276785,0.814403,0.579639) - Photon at Boundary! - Old Momentum Direction: (-0.0276785,0.814403,0.579639) - Old Polarization: (-0.940491,0.175252,-0.291142) - New Momentum Direction: (-0.0374772,0.618562,0.784842) - New Polarization: (-0.92396,-0.320618,0.20857) - *** FresnelRefraction *** -Track (trackID 311, parentID 1) is processed with stopping code 2 -### pop requested out of 310 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.839018,0.370654,-0.398327) - Old Polarization: (0.439766,-0.893041,0.095305) - New Momentum Direction: (0.675418,0.502355,-0.53986) - New Polarization: (-0.65418,0.0702548,-0.753069) - *** FresnelRefraction *** -Track (trackID 310, parentID 1) is processed with stopping code 2 -### pop requested out of 309 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.876743,-0.365939,-0.312105) - Old Polarization: (-0.0145532,0.668811,-0.74329) - New Momentum Direction: (-0.762106,-0.492616,-0.420147) - New Polarization: (0.026912,0.624261,-0.780752) - *** FresnelRefraction *** -Track (trackID 309, parentID 1) is processed with stopping code 2 -### pop requested out of 308 stacked tracks. - -** Photon absorbed! ** -Track (trackID 308, parentID 1) is processed with stopping code 2 -### pop requested out of 307 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0879769,-0.000881915,0.996122) - Old Polarization: (0.474529,0.879278,-0.0411317) - New Momentum Direction: (0.118547,-0.00118836,0.992948) - New Polarization: (0.584561,0.808426,-0.0688223) - *** FresnelRefraction *** -Track (trackID 307, parentID 1) is processed with stopping code 2 -### pop requested out of 306 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.939634,-0.150654,-0.307233) - Old Polarization: (-0.320995,0.0770453,0.943942) - New Momentum Direction: (-0.885233,-0.204792,-0.417639) - New Polarization: (0.449157,-0.609745,-0.653046) - *** FresnelRefraction *** -Track (trackID 306, parentID 1) is processed with stopping code 2 -### pop requested out of 305 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.604707,0.609106,0.513146) - Old Polarization: (0.795969,0.439828,0.415915) - New Momentum Direction: (-0.604707,-0.609106,0.513146) - New Polarization: (-0.795969,0.439828,-0.415915) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.604707,-0.609106,0.513146) - Old Polarization: (-0.795969,0.439828,-0.415915) - New Momentum Direction: (0.604707,-0.609106,0.513146) - New Polarization: (-0.795969,-0.439828,0.415915) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.604707,-0.609106,0.513146) - Old Polarization: (-0.795969,-0.439828,0.415915) - New Momentum Direction: (0.604707,-0.609106,-0.513146) - New Polarization: (0.795969,0.439828,0.415915) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.604707,-0.609106,-0.513146) - Old Polarization: (0.795969,0.439828,0.415915) - New Momentum Direction: (0.604707,0.609106,-0.513146) - New Polarization: (-0.795969,0.439828,-0.415915) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.604707,0.609106,-0.513146) - Old Polarization: (-0.795969,0.439828,-0.415915) - New Momentum Direction: (-0.604707,0.609106,-0.513146) - New Polarization: (-0.795969,-0.439828,0.415915) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.604707,0.609106,-0.513146) - Old Polarization: (-0.795969,-0.439828,0.415915) - New Momentum Direction: (-0.604707,0.609106,0.513146) - New Polarization: (0.795969,0.439828,0.415915) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.604707,0.609106,0.513146) - Old Polarization: (0.795969,0.439828,0.415915) - New Momentum Direction: (-0.604707,-0.609106,0.513146) - New Polarization: (-0.795969,0.439828,-0.415915) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 305, parentID 1) is processed with stopping code 2 -### pop requested out of 304 stacked tracks. - -** Photon absorbed! ** -Track (trackID 304, parentID 1) is processed with stopping code 2 -### pop requested out of 303 stacked tracks. - -** Photon absorbed! ** -Track (trackID 303, parentID 1) is processed with stopping code 2 ### pop requested out of 302 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.616955,-0.768087,0.171491) +Old Polarization: (-0.173028,0.0801905,0.981647) +New Polarization: (0.272726,0.100475,0.956831) +Polarization Change: (0.272726,0.100475,0.956831) +New Momentum Direction: (0.960777,0.0235322,-0.276322) +Momentum Change: (0.960777,0.0235322,-0.276322) Photon at Boundary! - Old Momentum Direction: (0.616955,-0.768087,0.171491) - Old Polarization: (-0.173028,0.0801905,0.981647) - New Momentum Direction: (0.837456,-0.494448,0.232783) - New Polarization: (-0.177692,0.156449,0.971571) + Old Momentum Direction: (0.960777,0.0235322,-0.276322) + Old Polarization: (0.272726,0.100475,0.956831) + New Momentum Direction: (0.926352,0.0319616,-0.375302) + New Polarization: (0.370485,0.102368,0.92318) *** FresnelRefraction *** Track (trackID 302, parentID 1) is processed with stopping code 2 ### pop requested out of 301 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.0813557,-0.537745,0.839173) + Old Polarization: (0.255277,-0.802637,-0.53908) + New Momentum Direction: (0.109817,-0.725865,0.679014) + New Polarization: (0.0261388,0.685019,0.728056) + *** FresnelRefraction *** Track (trackID 301, parentID 1) is processed with stopping code 2 ### pop requested out of 300 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.706411,0.119394,0.697659) - Old Polarization: (-0.384422,-0.762904,0.519805) - New Momentum Direction: (0.283041,0.161785,0.945364) - New Polarization: (-0.677303,-0.664171,0.316446) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 300, parentID 1) is processed with stopping code 2 ### pop requested out of 299 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.866116,-0.487731,0.10937) + Old Polarization: (0.342642,0.738643,0.58052) + New Momentum Direction: (0.734485,-0.66218,0.148489) + New Polarization: (0.471318,0.655179,0.590423) + *** FresnelRefraction *** Track (trackID 299, parentID 1) is processed with stopping code 2 ### pop requested out of 298 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0438985,-0.509879,-0.859125) - Old Polarization: (-0.166026,-0.844273,0.509548) - New Momentum Direction: (-0.0595278,-0.691412,-0.720004) - New Polarization: (-0.128292,-0.710003,0.692414) - *** FresnelRefraction *** -Track (trackID 298, parentID 1) is processed with stopping code 2 -### pop requested out of 297 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.478524,-0.559029,-0.677128) - Old Polarization: (0.070113,-0.744362,0.664085) - New Momentum Direction: (0.646049,-0.754737,-0.113988) - New Polarization: (-0.137471,-0.261944,0.955242) - *** FresnelRefraction *** -Track (trackID 297, parentID 1) is processed with stopping code 2 -### pop requested out of 296 stacked tracks. ** Photon absorbed! ** +Track (trackID 298, parentID 1) is processed with stopping code 2 +### pop requested out of 297 stacked tracks. + +** Photon absorbed! ** +Track (trackID 297, parentID 1) is processed with stopping code 2 +### pop requested out of 296 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.286328,-0.649504,-0.704386) + Old Polarization: (0.916262,0.400567,0.00309772) + New Momentum Direction: (0.389193,-0.882843,-0.262901) + New Polarization: (0.914488,0.404585,-0.00483958) + *** FresnelRefraction *** Track (trackID 296, parentID 1) is processed with stopping code 2 ### pop requested out of 295 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.536425,0.617743,0.575015) -Old Polarization: (0.683462,-0.0817289,0.725396) -New Polarization: (-0.809183,0.306307,-0.501397) -Polarization Change: (-0.809183,0.306307,-0.501397) -New Momentum Direction: (0.23385,-0.614961,-0.753085) -Momentum Change: (0.23385,-0.614961,-0.753085) Photon at Boundary! - Old Momentum Direction: (0.23385,-0.614961,-0.753085) - Old Polarization: (-0.809183,0.306307,-0.501397) - New Momentum Direction: (0.317698,-0.835458,-0.448418) - New Polarization: (-0.330382,-0.540818,0.773539) - *** FresnelRefraction *** + Old Momentum Direction: (-0.536425,0.617743,0.575015) + Old Polarization: (0.683462,-0.0817289,0.725396) + New Momentum Direction: (-0.536425,-0.617743,0.575015) + New Polarization: (-0.683462,-0.0817289,-0.725396) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.536425,-0.617743,0.575015) + Old Polarization: (-0.683462,-0.0817289,-0.725396) + New Momentum Direction: (-0.536425,-0.617743,-0.575015) + New Polarization: (0.683462,0.0817289,-0.725396) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.536425,-0.617743,-0.575015) + Old Polarization: (0.683462,0.0817289,-0.725396) + New Momentum Direction: (0.536425,-0.617743,-0.575015) + New Polarization: (0.683462,-0.0817289,0.725396) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 295, parentID 1) is processed with stopping code 2 ### pop requested out of 294 stacked tracks. Photon at Boundary! Old Momentum Direction: (-0.720612,0.379088,0.580526) Old Polarization: (0.539631,-0.219068,0.812901) - New Momentum Direction: (-0.346232,0.51294,0.785504) - New Polarization: (0.826667,-0.229064,0.513956) + New Momentum Direction: (-0.342566,0.513675,0.78663) + New Polarization: (-0.760754,-0.642969,0.0885662) *** FresnelRefraction *** Track (trackID 294, parentID 1) is processed with stopping code 2 ### pop requested out of 293 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.666297,-0.737353,0.111169) Old Polarization: (-0.630489,-0.477466,0.611972) - New Momentum Direction: (0.898137,-0.413393,0.14985) - New Polarization: (0.243899,0.751914,0.612485) + New Momentum Direction: (0.898263,-0.413112,0.149871) + New Polarization: (-0.411258,-0.670026,0.618006) *** FresnelRefraction *** Track (trackID 293, parentID 1) is processed with stopping code 2 ### pop requested out of 292 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.100885,0.740226,0.664746) Old Polarization: (-0.432438,-0.569112,0.699363) - New Momentum Direction: (0.135921,0.42358,0.895604) - New Polarization: (-0.332787,-0.831947,0.443978) + New Momentum Direction: (0.135968,0.422909,0.895913) + New Polarization: (-0.551061,0.783795,-0.286352) *** FresnelRefraction *** Track (trackID 292, parentID 1) is processed with stopping code 2 ### pop requested out of 291 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.395331,0.812589,-0.428266) Old Polarization: (0.915338,-0.387404,0.109887) - New Momentum Direction: (0.532171,0.620027,-0.576507) - New Polarization: (0.7879,-0.611901,0.0692139) + New Momentum Direction: (0.532528,0.619361,-0.576893) + New Polarization: (0.253758,0.533396,0.806905) *** FresnelRefraction *** Track (trackID 291, parentID 1) is processed with stopping code 2 ### pop requested out of 290 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.411206,-0.756793,-0.508109) + Old Polarization: (-0.364605,0.37433,-0.852608) + New Momentum Direction: (0.554551,-0.47215,-0.685235) + New Polarization: (-0.80033,-0.528145,-0.283786) + *** FresnelRefraction *** Track (trackID 290, parentID 1) is processed with stopping code 2 ### pop requested out of 289 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.833267,-0.11592,0.540581) Old Polarization: (0.297427,0.918217,-0.261563) - New Momentum Direction: (0.663946,-0.156787,0.731159) - New Polarization: (-0.498057,0.636609,0.588785) + New Momentum Direction: (0.662675,-0.157023,0.73226) + New Polarization: (0.412742,0.89245,-0.182146) *** FresnelRefraction *** Track (trackID 289, parentID 1) is processed with stopping code 2 ### pop requested out of 288 stacked tracks. Photon at Boundary! Old Momentum Direction: (-0.618195,0.259292,0.742026) Old Polarization: (-0.637582,-0.71752,-0.280453) - New Momentum Direction: (-0.837957,0.351468,0.417491) - New Polarization: (-0.536292,-0.672028,-0.510656) + New Momentum Direction: (-0.838913,0.351869,0.415227) + New Polarization: (-0.173985,-0.896257,0.407985) *** FresnelRefraction *** Track (trackID 288, parentID 1) is processed with stopping code 2 ### pop requested out of 287 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.3665,-0.22582,-0.902598) - Old Polarization: (-0.750493,-0.501648,0.430244) - New Momentum Direction: (-0.49791,-0.306788,-0.811152) - New Polarization: (-0.677693,-0.445981,0.584664) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 287, parentID 1) is processed with stopping code 2 ### pop requested out of 286 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.0318776,-0.375179,0.926404) Old Polarization: (-0.998589,-0.051345,0.0135676) New Momentum Direction: (0.0433183,-0.509828,0.859185) - New Polarization: (-0.991588,-0.126935,-0.0253279) + New Polarization: (-0.998399,-0.0534022,0.0186491) *** FresnelRefraction *** Track (trackID 286, parentID 1) is processed with stopping code 2 ### pop requested out of 285 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (-0.731399,-0.626807,0.26864) + Old Polarization: (-0.21256,-0.164766,-0.963157) + New Momentum Direction: (-0.374435,-0.852276,0.365273) + New Polarization: (-0.315615,-0.253265,-0.914464) + *** FresnelRefraction *** Track (trackID 285, parentID 1) is processed with stopping code 2 ### pop requested out of 284 stacked tracks. Photon at Boundary! @@ -1110,24 +245,6 @@ Track (trackID 285, parentID 1) is processed with stopping code 2 New Momentum Direction: (-0.559655,0.536983,0.631218) New Polarization: (-0.81272,-0.504606,-0.291306) *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559655,0.536983,0.631218) - Old Polarization: (-0.81272,-0.504606,-0.291306) - New Momentum Direction: (-0.559655,0.536983,-0.631218) - New Polarization: (0.81272,0.504606,-0.291306) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.559655,0.536983,-0.631218) - Old Polarization: (0.81272,0.504606,-0.291306) - New Momentum Direction: (0.559655,0.536983,-0.631218) - New Polarization: (0.81272,-0.504606,0.291306) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.559655,0.536983,-0.631218) - Old Polarization: (0.81272,-0.504606,0.291306) - New Momentum Direction: (0.559655,-0.536983,-0.631218) - New Polarization: (-0.81272,-0.504606,-0.291306) - *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 284, parentID 1) is processed with stopping code 2 @@ -1136,7 +253,7 @@ Track (trackID 284, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.593056,-0.194221,-0.781386) Old Polarization: (0.752164,0.479913,0.45159) New Momentum Direction: (0.805945,-0.26394,-0.529894) - New Polarization: (0.591702,0.387079,0.707148) + New Polarization: (-0.166216,0.758208,-0.63047) *** FresnelRefraction *** Track (trackID 283, parentID 1) is processed with stopping code 2 ### pop requested out of 282 stacked tracks. @@ -1188,6 +305,30 @@ Track (trackID 283, parentID 1) is processed with stopping code 2 New Momentum Direction: (-0.504255,0.598821,-0.622205) New Polarization: (0.740803,0.670236,0.0446761) *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.504255,0.598821,-0.622205) + Old Polarization: (0.740803,0.670236,0.0446761) + New Momentum Direction: (0.504255,0.598821,-0.622205) + New Polarization: (0.740803,-0.670236,-0.0446761) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.504255,0.598821,-0.622205) + Old Polarization: (0.740803,-0.670236,-0.0446761) + New Momentum Direction: (0.504255,0.598821,0.622205) + New Polarization: (-0.740803,0.670236,-0.0446761) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.504255,0.598821,0.622205) + Old Polarization: (-0.740803,0.670236,-0.0446761) + New Momentum Direction: (0.504255,-0.598821,0.622205) + New Polarization: (0.740803,0.670236,0.0446761) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.504255,-0.598821,0.622205) + Old Polarization: (0.740803,0.670236,0.0446761) + New Momentum Direction: (-0.504255,-0.598821,0.622205) + New Polarization: (0.740803,-0.670236,-0.0446761) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 282, parentID 1) is processed with stopping code 2 @@ -1196,7 +337,7 @@ Track (trackID 282, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.159728,0.110128,-0.980999) Old Polarization: (0.551331,-0.814373,-0.181191) New Momentum Direction: (-0.216549,0.149304,-0.964787) - New Polarization: (-0.918434,0.303938,0.25318) + New Polarization: (0.539549,-0.805298,-0.245726) *** FresnelRefraction *** Track (trackID 281, parentID 1) is processed with stopping code 2 ### pop requested out of 280 stacked tracks. @@ -1204,7 +345,7 @@ Track (trackID 281, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.159857,-0.979339,-0.123861) Old Polarization: (0.840452,0.20084,-0.503293) New Momentum Direction: (0.21711,-0.961543,-0.168222) - New Polarization: (0.810006,0.273634,-0.518666) + New Polarization: (-0.683482,-0.272781,0.677084) *** FresnelRefraction *** Track (trackID 280, parentID 1) is processed with stopping code 2 ### pop requested out of 279 stacked tracks. @@ -1212,7 +353,7 @@ Track (trackID 280, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.562874,-0.207722,-0.800015) Old Polarization: (0.256114,-0.876434,0.407761) New Momentum Direction: (0.761315,-0.280954,-0.58435) - New Polarization: (0.226356,-0.729371,0.645586) + New Polarization: (-0.630266,-0.532225,-0.565244) *** FresnelRefraction *** Track (trackID 279, parentID 1) is processed with stopping code 2 ### pop requested out of 278 stacked tracks. @@ -1220,7 +361,7 @@ Track (trackID 279, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.0963115,-0.639158,-0.763021) Old Polarization: (0.937831,-0.19855,0.284695) New Momentum Direction: (0.129783,-0.86129,-0.49126) - New Polarization: (0.850388,-0.158098,0.501841) + New Polarization: (0.842263,0.357198,-0.403737) *** FresnelRefraction *** Track (trackID 278, parentID 1) is processed with stopping code 2 ### pop requested out of 277 stacked tracks. @@ -1228,7 +369,7 @@ Track (trackID 278, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.506512,-0.861843,-0.0259199) Old Polarization: (-0.291846,-0.199652,0.935396) New Momentum Direction: (0.687473,-0.725358,-0.0351802) - New Polarization: (0.415027,0.352674,0.838673) + New Polarization: (-0.244706,-0.276992,0.92919) *** FresnelRefraction *** Track (trackID 277, parentID 1) is processed with stopping code 2 ### pop requested out of 276 stacked tracks. @@ -1236,35 +377,46 @@ Track (trackID 277, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.789157,-0.56867,0.232048) Old Polarization: (0.597009,-0.621485,0.507283) New Momentum Direction: (-0.558239,-0.768187,0.313461) - New Polarization: (0.81795,-0.446253,0.363064) + New Polarization: (-0.808642,0.588299,0.00162158) *** FresnelRefraction *** Track (trackID 276, parentID 1) is processed with stopping code 2 ### pop requested out of 275 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (-0.264872,-0.420103,0.867961) + Old Polarization: (-0.96187,0.178749,-0.207014) + New Momentum Direction: (-0.358124,-0.568006,0.741024) + New Polarization: (-0.597728,0.749183,0.285388) + *** FresnelRefraction *** Track (trackID 275, parentID 1) is processed with stopping code 2 ### pop requested out of 274 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (-0.0466254,-0.5532,0.831743) + Old Polarization: (0.965237,0.189427,0.180099) + New Momentum Direction: (-0.062856,-0.745773,0.663228) + New Polarization: (0.957782,0.141726,0.250137) + *** FresnelRefraction *** Track (trackID 274, parentID 1) is processed with stopping code 2 ### pop requested out of 273 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.589931,-0.0634708,-0.804955) - Old Polarization: (-0.78575,0.184455,-0.590401) - New Momentum Direction: (0.7938,-0.0854051,-0.602153) - New Polarization: (0.604777,0.00627287,0.79637) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 273, parentID 1) is processed with stopping code 2 ### pop requested out of 272 stacked tracks. ** Photon absorbed! ** Track (trackID 272, parentID 1) is processed with stopping code 2 ### pop requested out of 271 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.449129,-0.891567,0.0582387) +Old Polarization: (0.108961,0.119353,0.986855) +New Polarization: (-0.226816,-0.110861,-0.967608) +Polarization Change: (-0.226816,-0.110861,-0.967608) +New Momentum Direction: (-0.972607,0.0777071,0.219085) +Momentum Change: (-0.972607,0.0777071,0.219085) Photon at Boundary! - Old Momentum Direction: (0.449129,-0.891567,0.0582387) - Old Polarization: (0.108961,0.119353,0.986855) - New Momentum Direction: (0.610561,-0.788002,0.0791716) - New Polarization: (0.156317,0.217908,0.96337) + Old Momentum Direction: (-0.972607,0.0777071,0.219085) + Old Polarization: (-0.226816,-0.110861,-0.967608) + New Momentum Direction: (-0.948756,0.105637,0.297831) + New Polarization: (-0.308396,-0.103879,-0.945569) *** FresnelRefraction *** Track (trackID 271, parentID 1) is processed with stopping code 2 ### pop requested out of 270 stacked tracks. @@ -1272,7 +424,7 @@ Track (trackID 271, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.363048,0.32359,0.873777) Old Polarization: (-0.206279,0.942403,-0.263297) New Momentum Direction: (0.489402,0.436211,0.75512) - New Polarization: (-0.123715,0.891877,-0.43503) + New Polarization: (-0.865694,0.347442,0.360359) *** FresnelRefraction *** Track (trackID 270, parentID 1) is processed with stopping code 2 ### pop requested out of 269 stacked tracks. @@ -1280,30 +432,19 @@ Track (trackID 270, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.137487,0.840818,0.523568) Old Polarization: (-0.990471,-0.121001,-0.0657732) New Momentum Direction: (-0.18579,0.681844,0.707511) - New Polarization: (-0.974005,-0.22277,-0.0410817) + New Polarization: (-0.901348,0.168424,-0.399005) *** FresnelRefraction *** Track (trackID 269, parentID 1) is processed with stopping code 2 ### pop requested out of 268 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.63847,0.206556,0.741411) - Old Polarization: (0.276292,-0.83759,0.471281) - New Momentum Direction: (-0.867747,0.280731,0.41013) - New Polarization: (-0.495841,-0.432507,-0.753046) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 268, parentID 1) is processed with stopping code 2 ### pop requested out of 267 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.84387,-0.249614,0.474949) -Old Polarization: (-0.360178,0.919642,-0.156622) -New Polarization: (-0.514122,0.843325,0.156466) -Polarization Change: (-0.514122,0.843325,0.156466) -New Momentum Direction: (-0.344786,-0.370233,0.862583) -Momentum Change: (-0.344786,-0.370233,0.862583) Photon at Boundary! - Old Momentum Direction: (-0.344786,-0.370233,0.862583) - Old Polarization: (-0.514122,0.843325,0.156466) - New Momentum Direction: (-0.465799,-0.500178,0.729968) - New Polarization: (-0.871555,0.401997,-0.280696) + Old Momentum Direction: (-0.84387,-0.249614,0.474949) + Old Polarization: (-0.360178,0.919642,-0.156622) + New Momentum Direction: (-0.68889,-0.337224,0.641647) + New Polarization: (-0.49462,0.865778,-0.0760193) *** FresnelRefraction *** Track (trackID 267, parentID 1) is processed with stopping code 2 ### pop requested out of 266 stacked tracks. @@ -1311,7 +452,7 @@ Track (trackID 267, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.462843,-0.884948,-0.0514109) Old Polarization: (0.148302,-0.134483,0.979755) New Momentum Direction: (-0.629571,-0.77379,-0.0699304) - New Polarization: (-0.398892,0.244678,0.883752) + New Polarization: (0.120777,-0.186384,0.975025) *** FresnelRefraction *** Track (trackID 266, parentID 1) is processed with stopping code 2 ### pop requested out of 265 stacked tracks. @@ -1319,19 +460,23 @@ Track (trackID 266, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.111313,-0.194696,-0.974527) Old Polarization: (0.979877,-0.141982,0.14029) New Momentum Direction: (0.150518,-0.263268,-0.952908) - New Polarization: (0.935716,-0.273116,0.223258) + New Polarization: (0.379956,0.905263,-0.190088) *** FresnelRefraction *** Track (trackID 265, parentID 1) is processed with stopping code 2 ### pop requested out of 264 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (-0.0477429,-0.398906,0.915748) + Old Polarization: (0.995337,-0.0959242,0.0101071) + New Momentum Direction: (-0.0643033,-0.537273,0.840954) + New Polarization: (0.995138,-0.0975257,0.0137852) + *** FresnelRefraction *** Track (trackID 264, parentID 1) is processed with stopping code 2 ### pop requested out of 263 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.13628,-0.968996,-0.206095) Old Polarization: (0.415418,0.244758,-0.876083) New Momentum Direction: (0.184017,-0.942705,-0.278288) - New Polarization: (0.432828,0.331912,-0.838149) + New Polarization: (-0.628695,-0.33052,0.703918) *** FresnelRefraction *** Track (trackID 263, parentID 1) is processed with stopping code 2 ### pop requested out of 262 stacked tracks. @@ -1339,96 +484,82 @@ Track (trackID 263, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.77925,0.565132,-0.270915) Old Polarization: (-0.125506,-0.282803,-0.950931) New Momentum Direction: (0.522646,0.768778,-0.36854) - New Polarization: (-0.241459,-0.281101,-0.928806) + New Polarization: (0.180863,-0.522422,-0.833285) *** FresnelRefraction *** Track (trackID 262, parentID 1) is processed with stopping code 2 ### pop requested out of 261 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.815093,0.157458,0.557522) + Old Polarization: (-0.502679,-0.286168,0.815734) + New Momentum Direction: (0.623811,0.212427,0.752153) + New Polarization: (0.684623,-0.612753,-0.394747) + *** FresnelRefraction *** Track (trackID 261, parentID 1) is processed with stopping code 2 ### pop requested out of 260 stacked tracks. ** Photon absorbed! ** Track (trackID 260, parentID 1) is processed with stopping code 2 ### pop requested out of 259 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.646524,-0.43343,0.62781) - Old Polarization: (-0.417462,0.487793,0.766671) - New Momentum Direction: (-0.646524,-0.43343,0.62781) - New Polarization: (-0.417462,-0.487793,-0.766671) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646524,-0.43343,0.62781) - Old Polarization: (-0.417462,-0.487793,-0.766671) - New Momentum Direction: (-0.646524,-0.43343,-0.62781) - New Polarization: (0.417462,0.487793,-0.766671) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646524,-0.43343,-0.62781) - Old Polarization: (0.417462,0.487793,-0.766671) - New Momentum Direction: (-0.646524,0.43343,-0.62781) - New Polarization: (-0.417462,0.487793,0.766671) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646524,0.43343,-0.62781) - Old Polarization: (-0.417462,0.487793,0.766671) - New Momentum Direction: (0.646524,0.43343,-0.62781) - New Polarization: (-0.417462,-0.487793,-0.766671) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.646524,0.43343,-0.62781) - Old Polarization: (-0.417462,-0.487793,-0.766671) - New Momentum Direction: (0.646524,0.43343,0.62781) - New Polarization: (0.417462,0.487793,-0.766671) - *** TotalInternalReflection *** Scattering Photon! -Old Momentum Direction: (0.646524,0.43343,0.62781) -Old Polarization: (0.417462,0.487793,-0.766671) -New Polarization: (0.697386,0.240544,-0.675124) -Polarization Change: (0.697386,0.240544,-0.675124) -New Momentum Direction: (0.605151,-0.702329,0.374869) -Momentum Change: (0.605151,-0.702329,0.374869) +Old Momentum Direction: (0.646524,-0.43343,0.62781) +Old Polarization: (-0.417462,0.487793,0.766671) +New Polarization: (0.256016,0.922071,0.290244) +Polarization Change: (0.256016,0.922071,0.290244) +New Momentum Direction: (0.681643,0.0406982,-0.730552) +Momentum Change: (0.681643,0.0406982,-0.730552) Photon at Boundary! - Old Momentum Direction: (0.605151,-0.702329,0.374869) - Old Polarization: (0.697386,0.240544,-0.675124) - New Momentum Direction: (0.820942,-0.25969,0.508543) - New Polarization: (0.567339,0.471811,-0.674923) + Old Momentum Direction: (0.681643,0.0406982,-0.730552) + Old Polarization: (0.256016,0.922071,0.290244) + New Momentum Direction: (-0.681643,0.0406982,-0.730552) + New Polarization: (0.20836,0.967909,-0.14049) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.681643,0.0406982,-0.730552) + Old Polarization: (0.20836,0.967909,-0.14049) + New Momentum Direction: (-0.92471,0.0552108,-0.376648) + New Polarization: (0.142896,0.967415,-0.209017) *** FresnelRefraction *** Track (trackID 259, parentID 1) is processed with stopping code 2 ### pop requested out of 258 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0446975,0.910757,0.410518) - Old Polarization: (0.78788,0.284784,-0.546025) - New Momentum Direction: (-0.0607775,0.827476,0.558202) - New Polarization: (0.530767,-0.446826,0.720162) - *** FresnelRefraction *** -Track (trackID 258, parentID 1) is processed with stopping code 2 -### pop requested out of 257 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0080004,0.154196,-0.988008) - Old Polarization: (0.27708,0.94901,0.150353) - New Momentum Direction: (0.0108831,0.209757,-0.977693) - New Polarization: (0.218731,0.953573,0.207017) - *** FresnelRefraction *** -Track (trackID 257, parentID 1) is processed with stopping code 2 -### pop requested out of 256 stacked tracks. ** Photon absorbed! ** +Track (trackID 258, parentID 1) is processed with stopping code 2 +### pop requested out of 257 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.0080004,0.154196,-0.988008) +Old Polarization: (0.27708,0.94901,0.150353) +New Polarization: (-0.328119,-0.894165,0.304643) +Polarization Change: (-0.328119,-0.894165,0.304643) +New Momentum Direction: (0.0360011,-0.334101,-0.94185) +Momentum Change: (0.0360011,-0.334101,-0.94185) + +** Photon absorbed! ** +Track (trackID 257, parentID 1) is processed with stopping code 2 +### pop requested out of 256 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.300624,0.881613,-0.363846) + Old Polarization: (-0.64744,0.0914825,0.756606) + New Momentum Direction: (-0.407951,0.767979,-0.493745) + New Polarization: (-0.658943,0.12666,0.741453) + *** FresnelRefraction *** Track (trackID 256, parentID 1) is processed with stopping code 2 ### pop requested out of 255 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.199671,0.639551,-0.742365) - Old Polarization: (-0.978506,-0.17,0.11673) - New Momentum Direction: (-0.271294,0.868958,-0.413897) - New Polarization: (-0.954644,-0.18811,0.230803) - *** FresnelRefraction *** +Scattering Photon! +Old Momentum Direction: (-0.199671,0.639551,-0.742365) +Old Polarization: (-0.978506,-0.17,0.11673) +New Polarization: (-0.935354,-0.331296,0.12392) +Polarization Change: (-0.935354,-0.331296,0.12392) +New Momentum Direction: (0.337546,-0.940738,0.0327832) +Momentum Change: (0.337546,-0.940738,0.0327832) + +** Photon absorbed! ** Track (trackID 255, parentID 1) is processed with stopping code 2 ### pop requested out of 254 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.767308,0.622663,0.153391) Old Polarization: (0.631336,-0.77544,-0.0103789) New Momentum Direction: (0.493562,0.844464,0.208031) - New Polarization: (-0.863203,0.446443,0.23573) + New Polarization: (0.857853,-0.512064,0.0433421) *** FresnelRefraction *** Track (trackID 254, parentID 1) is processed with stopping code 2 ### pop requested out of 253 stacked tracks. @@ -1436,7 +567,7 @@ Track (trackID 254, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.27589,-0.863514,-0.422172) Old Polarization: (-0.841255,0.0044699,0.540619) New Momentum Direction: (-0.375153,-0.727812,-0.574065) - New Polarization: (-0.841962,0.00848241,0.53947) + New Polarization: (-0.833445,-0.00623824,0.552567) *** FresnelRefraction *** Track (trackID 253, parentID 1) is processed with stopping code 2 ### pop requested out of 252 stacked tracks. @@ -1444,23 +575,26 @@ Track (trackID 253, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.252195,-0.883682,-0.39434) Old Polarization: (0.00442717,-0.408561,0.91272) New Momentum Direction: (-0.341372,-0.773657,-0.53378) - New Polarization: (-0.702536,0.587289,-0.401915) + New Polarization: (-0.0393771,-0.555624,0.830501) *** FresnelRefraction *** Track (trackID 252, parentID 1) is processed with stopping code 2 ### pop requested out of 251 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.484113,-0.192853,-0.853488) - Old Polarization: (-0.365697,0.930729,-0.00287665) - New Momentum Direction: (-0.657213,-0.261809,-0.706773) - New Polarization: (-0.375131,0.926956,0.00545489) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 251, parentID 1) is processed with stopping code 2 ### pop requested out of 250 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.0989436,0.949689,-0.297154) +Old Polarization: (0.782691,-0.258678,-0.56611) +New Polarization: (-0.963116,-0.26623,-0.0391099) +Polarization Change: (-0.963116,-0.26623,-0.0391099) +New Momentum Direction: (0.192745,-0.581128,-0.790658) +Momentum Change: (0.192745,-0.581128,-0.790658) Photon at Boundary! - Old Momentum Direction: (0.0989436,0.949689,-0.297154) - Old Polarization: (0.782691,-0.258678,-0.56611) - New Momentum Direction: (0.134407,0.904983,-0.40366) - New Polarization: (0.679339,-0.380714,-0.62734) + Old Momentum Direction: (0.192745,-0.581128,-0.790658) + Old Polarization: (-0.963116,-0.26623,-0.0391099) + New Momentum Direction: (0.261829,-0.789415,-0.555221) + New Polarization: (-0.958772,-0.278602,-0.0560167) *** FresnelRefraction *** Track (trackID 250, parentID 1) is processed with stopping code 2 ### pop requested out of 249 stacked tracks. @@ -1468,56 +602,68 @@ Track (trackID 250, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.0452204,-0.98898,-0.140973) Old Polarization: (-0.672397,0.134498,-0.727869) New Momentum Direction: (-0.0615059,-0.979516,-0.191742) - New Polarization: (-0.588147,0.190778,-0.78593) + New Polarization: (-0.125611,-0.182982,0.975059) *** FresnelRefraction *** Track (trackID 249, parentID 1) is processed with stopping code 2 ### pop requested out of 248 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.430169,-0.310952,0.847504) - Old Polarization: (-0.468641,-0.879313,-0.0847546) - New Momentum Direction: (0.583291,-0.421639,0.694257) - New Polarization: (-0.447378,-0.880157,-0.158669) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 248, parentID 1) is processed with stopping code 2 ### pop requested out of 247 stacked tracks. Photon at Boundary! Old Momentum Direction: (-0.0150907,-0.990993,-0.133058) Old Polarization: (0.149375,0.129346,-0.980284) New Momentum Direction: (-0.0204351,-0.983421,-0.180181) - New Polarization: (0.0839968,0.177893,-0.980458) + New Polarization: (0.364021,-0.175167,0.91477) *** FresnelRefraction *** Track (trackID 247, parentID 1) is processed with stopping code 2 ### pop requested out of 246 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (-0.877303,0.334226,-0.344429) + Old Polarization: (-0.468441,-0.752446,0.463021) + New Momentum Direction: (-0.759624,0.45291,-0.466737) + New Polarization: (-0.635424,-0.669782,0.384225) + *** FresnelRefraction *** Track (trackID 246, parentID 1) is processed with stopping code 2 ### pop requested out of 245 stacked tracks. Photon at Boundary! Old Momentum Direction: (-0.790172,0.413187,-0.452664) Old Polarization: (-0.205468,-0.874427,-0.439501) New Momentum Direction: (-0.55729,0.559773,-0.613255) - New Polarization: (0.375976,-0.488399,-0.78747) + New Polarization: (-0.291453,-0.823462,-0.486792) *** FresnelRefraction *** Track (trackID 245, parentID 1) is processed with stopping code 2 ### pop requested out of 244 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.839247,0.337496,0.426334) + Old Polarization: (-0.108034,0.871926,-0.47757) + New Momentum Direction: (0.679865,0.45517,0.574982) + New Polarization: (0.150122,0.681074,-0.71666) + *** FresnelRefraction *** Track (trackID 244, parentID 1) is processed with stopping code 2 ### pop requested out of 243 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.22457,-0.973313,0.0472307) Old Polarization: (0.355481,0.126955,0.926022) New Momentum Direction: (0.302508,-0.951021,0.0636223) - New Polarization: (0.468523,0.206496,0.858979) + New Polarization: (-0.687356,-0.171422,0.705802) *** FresnelRefraction *** Track (trackID 243, parentID 1) is processed with stopping code 2 ### pop requested out of 242 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.174785,0.851369,0.494592) + Old Polarization: (-0.952301,0.0185552,0.304595) + New Momentum Direction: (0.235073,0.708704,0.665191) + New Polarization: (-0.950815,0.0256351,0.308698) + *** FresnelRefraction *** Track (trackID 242, parentID 1) is processed with stopping code 2 ### pop requested out of 241 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.451125,0.544512,0.707101) + Old Polarization: (0.0754681,-0.812742,0.577715) + New Momentum Direction: (0.609267,0.735391,0.296636) + New Polarization: (0.247452,-0.531727,0.80996) + *** FresnelRefraction *** Track (trackID 241, parentID 1) is processed with stopping code 2 ### pop requested out of 240 stacked tracks. @@ -1528,7 +674,7 @@ Track (trackID 240, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.276461,-0.943738,-0.18146) Old Polarization: (-0.102832,0.216785,-0.970788) New Momentum Direction: (-0.376001,-0.893149,-0.246795) - New Polarization: (-0.218849,0.3444,-0.912959) + New Polarization: (0.904695,-0.296249,-0.306209) *** FresnelRefraction *** Track (trackID 239, parentID 1) is processed with stopping code 2 ### pop requested out of 238 stacked tracks. @@ -1540,72 +686,51 @@ Track (trackID 238, parentID 1) is processed with stopping code 2 Old Momentum Direction: (-0.652299,0.678192,-0.33847) Old Polarization: (-0.111754,-0.527726,-0.842031) New Momentum Direction: (-0.883913,0.0913019,-0.458651) - New Polarization: (0.156894,-0.866017,-0.474761) + New Polarization: (0.345052,0.789315,-0.50786) *** FresnelRefraction *** Track (trackID 237, parentID 1) is processed with stopping code 2 ### pop requested out of 236 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.131735,-0.344696,-0.929425) - Old Polarization: (0.895088,-0.361552,0.260957) - New Momentum Direction: (0.177117,-0.463442,-0.868246) - New Polarization: (0.803417,-0.441468,0.399534) - *** FresnelRefraction *** -Track (trackID 236, parentID 1) is processed with stopping code 2 -### pop requested out of 235 stacked tracks. ** Photon absorbed! ** +Track (trackID 236, parentID 1) is processed with stopping code 2 +### pop requested out of 235 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.496191,-0.450582,-0.742139) + Old Polarization: (-0.555039,0.492681,-0.670222) + New Momentum Direction: (0.669181,-0.60767,-0.427708) + New Polarization: (-0.321839,0.281786,-0.90389) + *** FresnelRefraction *** Track (trackID 235, parentID 1) is processed with stopping code 2 ### pop requested out of 234 stacked tracks. Photon at Boundary! Old Momentum Direction: (-0.232151,-0.656729,0.717505) Old Polarization: (0.124327,-0.751641,-0.647748) - New Momentum Direction: (-0.232151,-0.656729,-0.717505) - New Polarization: (-0.435768,0.729709,-0.526907) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.232151,-0.656729,-0.717505) - Old Polarization: (-0.435768,0.729709,-0.526907) - New Momentum Direction: (-0.232151,0.656729,-0.717505) - New Polarization: (0.435768,0.729709,0.526907) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.232151,0.656729,-0.717505) - Old Polarization: (0.435768,0.729709,0.526907) - New Momentum Direction: (-0.313434,0.886672,-0.339958) - New Polarization: (0.372222,0.444065,0.81502) + New Momentum Direction: (-0.313434,-0.886672,0.339958) + New Polarization: (0.422564,0.19037,0.886114) *** FresnelRefraction *** Track (trackID 234, parentID 1) is processed with stopping code 2 ### pop requested out of 233 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.495,0.868176,0.0352899) Old Polarization: (-0.472646,0.23496,0.849352) - New Momentum Direction: (0.495,-0.868176,0.0352899) - New Polarization: (0.215419,0.0832743,-0.972965) - *** FresnelReflection *** -Scattering Photon! -Old Momentum Direction: (0.495,-0.868176,0.0352899) -Old Polarization: (0.215419,0.0832743,-0.972965) -New Polarization: (0.0862891,-0.395515,0.914397) -Polarization Change: (0.0862891,-0.395515,0.914397) -New Momentum Direction: (0.686407,-0.641619,-0.342301) -Momentum Change: (0.686407,-0.641619,-0.342301) - Photon at Boundary! - Old Momentum Direction: (0.686407,-0.641619,-0.342301) - Old Polarization: (0.0862891,-0.395515,0.914397) - New Momentum Direction: (0.172239,-0.869108,-0.463665) - New Polarization: (-0.187561,-0.491024,0.850715) + New Momentum Direction: (0.670505,0.740364,0.0478021) + New Polarization: (-0.41846,0.324198,0.848402) *** FresnelRefraction *** Track (trackID 233, parentID 1) is processed with stopping code 2 ### pop requested out of 232 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (-0.115205,-0.990836,-0.0705123) + Old Polarization: (0.674772,-0.0259672,-0.737569) + New Momentum Direction: (-0.156661,-0.982987,-0.0958863) + New Polarization: (0.673651,-0.0353528,-0.738204) + *** FresnelRefraction *** Track (trackID 232, parentID 1) is processed with stopping code 2 ### pop requested out of 231 stacked tracks. Photon at Boundary! Old Momentum Direction: (-0.179718,-0.208388,-0.961393) Old Polarization: (0.967538,0.139083,-0.211013) New Momentum Direction: (-0.243748,-0.282633,-0.927742) - New Polarization: (-0.120207,-0.940414,0.318076) + New Polarization: (0.950174,0.122064,-0.286827) *** FresnelRefraction *** Track (trackID 231, parentID 1) is processed with stopping code 2 ### pop requested out of 230 stacked tracks. @@ -1613,7 +738,7 @@ Track (trackID 231, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.807631,-0.587532,0.0503787) Old Polarization: (-0.177603,-0.160888,0.970862) New Momentum Direction: (0.608501,-0.790652,0.0677955) - New Polarization: (-0.321436,-0.167467,0.932005) + New Polarization: (0.248148,0.270734,0.930121) *** FresnelRefraction *** Track (trackID 230, parentID 1) is processed with stopping code 2 ### pop requested out of 229 stacked tracks. @@ -1621,510 +746,336 @@ Track (trackID 230, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.441059,0.781868,-0.440624) Old Polarization: (-0.292971,-0.338632,-0.894146) New Momentum Direction: (0.598576,0.533029,-0.597986) - New Polarization: (-0.260825,-0.576128,-0.774627) + New Polarization: (-0.796178,0.478201,-0.370708) *** FresnelRefraction *** Track (trackID 229, parentID 1) is processed with stopping code 2 ### pop requested out of 228 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.0474606,-0.0447631,0.99787) + Old Polarization: (0.723978,0.689814,-0.00348968) + New Momentum Direction: (0.064416,-0.0607548,0.996072) + New Polarization: (0.646377,0.763003,0.00473767) + *** FresnelRefraction *** Track (trackID 228, parentID 1) is processed with stopping code 2 ### pop requested out of 227 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.577172,-0.137157,-0.805022) Old Polarization: (0.781181,0.379998,0.495336) New Momentum Direction: (0.781428,-0.185696,-0.595724) - New Polarization: (0.623016,0.285654,0.728184) + New Polarization: (-0.367098,0.635196,-0.679533) *** FresnelRefraction *** Track (trackID 227, parentID 1) is processed with stopping code 2 ### pop requested out of 226 stacked tracks. - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 11 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 12 - Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 35 + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 13 Track (trackID 226, parentID 1) is processed with stopping code 4 -### pop requested out of 272 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.741946,-0.580371,0.335687) - Old Polarization: (0.597213,0.799642,0.0625255) - New Momentum Direction: (0.423988,-0.783975,0.453451) - New Polarization: (-0.855307,-0.181975,0.485114) - *** FresnelRefraction *** -Track (trackID 430, parentID 226) is processed with stopping code 2 -### pop requested out of 271 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.763891,-0.184792,0.618323) - Old Polarization: (0.362977,-0.669178,-0.64842) - New Momentum Direction: (0.479867,-0.251222,0.840604) - New Polarization: (-0.617711,-0.777138,0.120371) - *** FresnelRefraction *** -Track (trackID 429, parentID 226) is processed with stopping code 2 -### pop requested out of 270 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.85091,-0.521599,-0.0623376) - Old Polarization: (0.0148346,0.14248,-0.989686) - New Momentum Direction: (0.699962,-0.709134,-0.0847504) - New Polarization: (-0.0282342,0.0910988,-0.995442) - *** FresnelRefraction *** -Track (trackID 428, parentID 226) is processed with stopping code 2 -### pop requested out of 269 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.92866,-0.142845,-0.342324) - Old Polarization: (-0.36913,0.26502,0.89079) - New Momentum Direction: (-0.864551,-0.193529,-0.463787) - New Polarization: (0.501238,-0.398572,-0.76805) - *** FresnelRefraction *** -Track (trackID 427, parentID 226) is processed with stopping code 2 -### pop requested out of 268 stacked tracks. - -** Photon absorbed! ** -Track (trackID 426, parentID 226) is processed with stopping code 2 -### pop requested out of 267 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.9927,-0.0377751,-0.114545) - Old Polarization: (0.112115,-0.639158,-0.760859) - New Momentum Direction: (-0.986467,-0.051351,-0.15571) - New Polarization: (0.157408,-0.562389,-0.811752) - *** FresnelRefraction *** -Track (trackID 425, parentID 226) is processed with stopping code 2 -### pop requested out of 266 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.653646,0.737526,-0.169713) - Old Polarization: (-0.463729,-0.2131,0.859967) - New Momentum Direction: (-0.88557,0.403607,-0.22993) - New Polarization: (-0.397972,-0.403974,0.823665) - *** FresnelRefraction *** -Track (trackID 424, parentID 226) is processed with stopping code 2 -### pop requested out of 265 stacked tracks. - -** Photon absorbed! ** -Track (trackID 423, parentID 226) is processed with stopping code 2 -### pop requested out of 264 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.793965,0.474132,0.38055) - Old Polarization: (-0.361078,0.871334,-0.332264) - New Momentum Direction: (0.570714,0.640388,0.513992) - New Polarization: (-0.593803,0.754197,-0.280329) - *** FresnelRefraction *** -Track (trackID 422, parentID 226) is processed with stopping code 2 -### pop requested out of 263 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.320284,-0.0835044,0.943634) - Old Polarization: (0.673543,-0.680384,-0.28882) - New Momentum Direction: (0.433815,-0.113104,0.893874) - New Polarization: (0.704639,-0.575682,-0.414818) - *** FresnelRefraction *** -Track (trackID 421, parentID 226) is processed with stopping code 2 -### pop requested out of 262 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.694757,-0.527573,0.488855) - Old Polarization: (0.270118,-0.821313,-0.502475) - New Momentum Direction: (-0.240247,-0.712027,0.659771) - New Polarization: (0.518707,-0.66867,-0.532751) - *** FresnelRefraction *** -Track (trackID 420, parentID 226) is processed with stopping code 2 -### pop requested out of 261 stacked tracks. - -** Photon absorbed! ** -Track (trackID 419, parentID 226) is processed with stopping code 2 -### pop requested out of 260 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.678608,0.734135,0.0231515) - Old Polarization: (-0.345768,0.291489,0.891896) - New Momentum Direction: (0.922742,0.38413,0.0314804) - New Polarization: (0.19469,-0.535048,0.822082) - *** FresnelRefraction *** -Track (trackID 418, parentID 226) is processed with stopping code 2 -### pop requested out of 259 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.292082,-0.664949,0.687409) - Old Polarization: (0.442596,-0.543177,-0.71349) - New Momentum Direction: (0.292082,-0.664949,-0.687409) - New Polarization: (-0.502978,0.504527,-0.701759) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.292082,-0.664949,-0.687409) - Old Polarization: (-0.502978,0.504527,-0.701759) - New Momentum Direction: (0.292082,0.664949,-0.687409) - New Polarization: (0.502978,0.504527,0.701759) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.292082,0.664949,-0.687409) - Old Polarization: (0.502978,0.504527,0.701759) - New Momentum Direction: (-0.292082,0.664949,-0.687409) - New Polarization: (0.502978,-0.504527,-0.701759) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.292082,0.664949,-0.687409) - Old Polarization: (0.502978,-0.504527,-0.701759) - New Momentum Direction: (-0.292082,0.664949,0.687409) - New Polarization: (-0.0616614,-0.730349,0.680286) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.292082,0.664949,0.687409) - Old Polarization: (-0.0616614,-0.730349,0.680286) - New Momentum Direction: (-0.292082,-0.664949,0.687409) - New Polarization: (0.0616614,-0.730349,-0.680286) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.292082,-0.664949,0.687409) -Old Polarization: (0.0616614,-0.730349,-0.680286) -New Polarization: (0.649336,-0.708354,-0.276763) -Polarization Change: (0.649336,-0.708354,-0.276763) -New Momentum Direction: (0.634111,0.30339,0.711236) -Momentum Change: (0.634111,0.30339,0.711236) - Photon at Boundary! - Old Momentum Direction: (0.634111,0.30339,0.711236) - Old Polarization: (0.649336,-0.708354,-0.276763) - New Momentum Direction: (0.634111,0.30339,-0.711236) - New Polarization: (-0.559364,0.815046,-0.151035) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.634111,0.30339,-0.711236) - Old Polarization: (-0.559364,0.815046,-0.151035) - New Momentum Direction: (-0.634111,0.30339,-0.711236) - New Polarization: (-0.559364,-0.815046,0.151035) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 417, parentID 226) is processed with stopping code 2 -### pop requested out of 258 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.535841,-0.692336,-0.483265) - Old Polarization: (-0.0667442,-0.535848,0.841673) - New Momentum Direction: (-0.726629,-0.206274,-0.655333) - New Polarization: (-0.462643,0.852085,0.244771) - *** FresnelRefraction *** -Track (trackID 416, parentID 226) is processed with stopping code 2 -### pop requested out of 257 stacked tracks. - -** Photon absorbed! ** -Track (trackID 415, parentID 226) is processed with stopping code 2 -### pop requested out of 256 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.63485,-0.622564,-0.457581) - Old Polarization: (0.602497,0.0281366,0.797625) - New Momentum Direction: (-0.63485,-0.622564,-0.457581) - New Polarization: (0.602497,-0.0281366,-0.797625) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63485,-0.622564,-0.457581) - Old Polarization: (0.602497,-0.0281366,-0.797625) - New Momentum Direction: (-0.63485,0.622564,-0.457581) - New Polarization: (-0.602497,-0.0281366,0.797625) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63485,0.622564,-0.457581) - Old Polarization: (-0.602497,-0.0281366,0.797625) - New Momentum Direction: (-0.63485,0.622564,0.457581) - New Polarization: (0.602497,0.0281366,0.797625) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63485,0.622564,0.457581) - Old Polarization: (0.602497,0.0281366,0.797625) - New Momentum Direction: (0.63485,0.622564,0.457581) - New Polarization: (0.602497,-0.0281366,-0.797625) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.63485,0.622564,0.457581) - Old Polarization: (0.602497,-0.0281366,-0.797625) - New Momentum Direction: (0.63485,-0.622564,0.457581) - New Polarization: (-0.602497,-0.0281366,0.797625) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 414, parentID 226) is processed with stopping code 2 -### pop requested out of 255 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.533555,-0.450131,0.716032) - Old Polarization: (0.711352,-0.219108,-0.66781) - New Momentum Direction: (0.724641,-0.61134,0.318055) - New Polarization: (0.364496,-0.0516721,-0.92977) - *** FresnelRefraction *** -Track (trackID 413, parentID 226) is processed with stopping code 2 -### pop requested out of 254 stacked tracks. - -** Photon absorbed! ** -Track (trackID 412, parentID 226) is processed with stopping code 2 -### pop requested out of 253 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.220284,-0.961343,0.165208) - Old Polarization: (0.530575,-0.0240323,-0.847297) - New Momentum Direction: (0.296883,-0.928593,0.222656) - New Polarization: (0.683363,0.0437373,-0.728768) - *** FresnelRefraction *** -Track (trackID 411, parentID 226) is processed with stopping code 2 -### pop requested out of 252 stacked tracks. - -** Photon absorbed! ** -Track (trackID 410, parentID 226) is processed with stopping code 2 ### pop requested out of 251 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.090636,-0.557922,0.824929) -Old Polarization: (0.992556,-0.01706,-0.120592) -New Polarization: (0.391345,0.875913,-0.282179) -Polarization Change: (0.391345,0.875913,-0.282179) -New Momentum Direction: (0.912263,-0.40956,-0.00613085) -Momentum Change: (0.912263,-0.40956,-0.00613085) Photon at Boundary! - Old Momentum Direction: (0.912263,-0.40956,-0.00613085) - Old Polarization: (0.391345,0.875913,-0.282179) - New Momentum Direction: (0.912263,0.40956,-0.00613085) - New Polarization: (-0.391345,0.875913,0.282179) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.912263,0.40956,-0.00613085) - Old Polarization: (-0.391345,0.875913,0.282179) - New Momentum Direction: (0.831737,0.555107,-0.0083096) - New Polarization: (-0.541645,0.814669,0.207205) + Old Momentum Direction: (-0.874591,0.346798,-0.338853) + Old Polarization: (-0.479081,-0.510507,0.714048) + New Momentum Direction: (-0.7571,0.467274,-0.456568) + New Polarization: (-0.64583,-0.429954,0.630906) *** FresnelRefraction *** -Track (trackID 409, parentID 226) is processed with stopping code 2 +Track (trackID 327, parentID 226) is processed with stopping code 2 ### pop requested out of 250 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.647484,-0.313996,0.694386) - Old Polarization: (0.636254,0.278789,0.719345) - New Momentum Direction: (-0.872113,-0.42293,0.246068) - New Polarization: (-0.213839,-0.122892,-0.969108) + Old Momentum Direction: (-0.279562,-0.92718,0.249364) + Old Polarization: (0.251846,0.179812,0.950916) + New Momentum Direction: (-0.379696,-0.860887,0.338682) + New Polarization: (0.893478,-0.246338,0.375518) *** FresnelRefraction *** -Track (trackID 408, parentID 226) is processed with stopping code 2 +Track (trackID 326, parentID 226) is processed with stopping code 2 ### pop requested out of 249 stacked tracks. - -** Photon absorbed! ** -Track (trackID 407, parentID 226) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (-0.348902,0.929252,0.121485) + Old Polarization: (0.866634,0.270588,0.4192) + New Momentum Direction: (-0.472642,0.865752,0.164569) + New Polarization: (0.824378,0.368358,0.429783) + *** FresnelRefraction *** +Track (trackID 325, parentID 226) is processed with stopping code 2 ### pop requested out of 248 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.590795,0.346621,-0.72857) - Old Polarization: (-0.362192,0.69297,0.623385) - New Momentum Direction: (-0.799442,0.469035,-0.375365) - New Polarization: (-0.161689,0.433783,0.886391) + Old Momentum Direction: (-0.995819,0.0451359,0.0794152) + Old Polarization: (-0.089944,-0.332791,-0.938701) + New Momentum Direction: (-0.992386,0.0608582,0.107078) + New Polarization: (-0.121276,-0.331203,-0.935733) *** FresnelRefraction *** -Track (trackID 406, parentID 226) is processed with stopping code 2 +Track (trackID 324, parentID 226) is processed with stopping code 2 ### pop requested out of 247 stacked tracks. - -** Photon absorbed! ** -Track (trackID 405, parentID 226) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (-0.735157,0.659466,-0.156996) + Old Polarization: (-0.544576,-0.71244,-0.442568) + New Momentum Direction: (-0.408966,0.88774,-0.21134) + New Polarization: (-0.754093,-0.459185,-0.469568) + *** FresnelRefraction *** +Track (trackID 323, parentID 226) is processed with stopping code 2 ### pop requested out of 246 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.334354,-0.171322,0.926745) - Old Polarization: (0.196174,-0.949148,-0.24624) - New Momentum Direction: (0.450877,-0.231028,0.862169) - New Polarization: (0.29156,-0.874819,-0.386891) + Old Momentum Direction: (0.269751,-0.891234,-0.364604) + Old Polarization: (0.951823,0.30413,-0.0392094) + New Momentum Direction: (0.365166,-0.78933,-0.493571) + New Polarization: (0.273508,-0.415822,0.867344) *** FresnelRefraction *** -Track (trackID 404, parentID 226) is processed with stopping code 2 +Track (trackID 322, parentID 226) is processed with stopping code 2 ### pop requested out of 245 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.0104158,-0.98425,0.176474) - Old Polarization: (-0.996245,-0.0253848,-0.0827784) - New Momentum Direction: (0.0141579,-0.9707,0.239876) - New Polarization: (-0.968229,0.0465911,0.245686) + Old Momentum Direction: (-0.825951,-0.480503,0.294827) + Old Polarization: (-0.557851,0.621226,-0.550346) + New Momentum Direction: (-0.644798,-0.651492,0.399742) + New Polarization: (-0.75693,0.471541,-0.452445) *** FresnelRefraction *** -Track (trackID 403, parentID 226) is processed with stopping code 2 +Track (trackID 321, parentID 226) is processed with stopping code 2 ### pop requested out of 244 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.0365197,-0.680745,0.73161) -Old Polarization: (-0.997983,0.0132008,0.0620992) -New Polarization: (0.627635,-0.778507,-0.00097093) -Polarization Change: (0.627635,-0.778507,-0.00097093) -New Momentum Direction: (-0.775981,-0.625697,0.0797309) -Momentum Change: (-0.775981,-0.625697,0.0797309) - Photon at Boundary! - Old Momentum Direction: (-0.775981,-0.625697,0.0797309) - Old Polarization: (0.627635,-0.778507,-0.00097093) - New Momentum Direction: (-0.775981,-0.625697,-0.0797309) - New Polarization: (-0.627635,0.778507,-0.00097093) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.775981,-0.625697,-0.0797309) - Old Polarization: (-0.627635,0.778507,-0.00097093) - New Momentum Direction: (-0.775981,0.625697,-0.0797309) - New Polarization: (0.627635,0.778507,0.00097093) - *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 402, parentID 226) is processed with stopping code 2 +Track (trackID 320, parentID 226) is processed with stopping code 2 ### pop requested out of 243 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0290635,0.896012,0.443078) - Old Polarization: (-0.777131,0.258529,-0.573785) - New Momentum Direction: (-0.0394411,0.798061,0.601285) - New Polarization: (-0.746208,-0.423727,0.513448) - *** FresnelRefraction *** -Track (trackID 401, parentID 226) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 319, parentID 226) is processed with stopping code 2 ### pop requested out of 242 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.205745,-0.491021,-0.846503) - Old Polarization: (-0.583094,-0.63318,0.509004) - New Momentum Direction: (-0.279738,-0.66761,-0.689959) - New Polarization: (-0.457434,-0.539156,0.707153) + Old Momentum Direction: (-0.620047,0.20181,-0.758165) + Old Polarization: (0.333198,0.94261,-0.0215921) + New Momentum Direction: (-0.841115,0.273762,-0.466454) + New Polarization: (0.325083,0.945161,-0.0314779) *** FresnelRefraction *** -Track (trackID 400, parentID 226) is processed with stopping code 2 +Track (trackID 318, parentID 226) is processed with stopping code 2 ### pop requested out of 241 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.488946,0.585766,-0.646382) -Old Polarization: (-0.284622,-0.807573,-0.516543) -New Polarization: (-0.646497,-0.585506,-0.489105) -Polarization Change: (-0.646497,-0.585506,-0.489105) -New Momentum Direction: (-0.729714,0.661639,0.172487) -Momentum Change: (-0.729714,0.661639,0.172487) Photon at Boundary! - Old Momentum Direction: (-0.729714,0.661639,0.172487) - Old Polarization: (-0.646497,-0.585506,-0.489105) - New Momentum Direction: (-0.729714,-0.661639,0.172487) - New Polarization: (0.646497,-0.585506,0.489105) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.729714,-0.661639,0.172487) - Old Polarization: (0.646497,-0.585506,0.489105) - New Momentum Direction: (-0.367548,-0.899926,0.234608) - New Polarization: (0.90656,-0.29041,0.306285) + Old Momentum Direction: (0.18376,-0.0613904,-0.981052) + Old Polarization: (0.662491,-0.729584,0.169745) + New Momentum Direction: (0.249512,-0.0833567,-0.964777) + New Polarization: (-0.954642,-0.188344,-0.230618) *** FresnelRefraction *** -Track (trackID 399, parentID 226) is processed with stopping code 2 +Track (trackID 317, parentID 226) is processed with stopping code 2 ### pop requested out of 240 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.958629,-0.0821399,0.272548) - Old Polarization: (-0.20001,-0.486919,-0.850239) - New Momentum Direction: (-0.922915,-0.111096,0.368627) - New Polarization: (0.308817,-0.785382,0.536477) + Old Momentum Direction: (0.813486,0.523871,0.252586) + Old Polarization: (-0.532519,0.845536,-0.0386188) + New Momentum Direction: (0.613474,0.711348,0.342979) + New Polarization: (0.727907,-0.34091,-0.594922) *** FresnelRefraction *** -Track (trackID 398, parentID 226) is processed with stopping code 2 +Track (trackID 316, parentID 226) is processed with stopping code 2 ### pop requested out of 239 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.57211,0.157049,0.805001) - Old Polarization: (0.322943,-0.859075,0.397112) - New Momentum Direction: (-0.776828,0.213246,0.592507) - New Polarization: (-0.613286,-0.469714,-0.635019) + Old Momentum Direction: (0.689371,-0.652729,-0.314185) + Old Polarization: (-0.485062,-0.093797,-0.869435) + New Momentum Direction: (0.180394,-0.886269,-0.426598) + New Polarization: (0.720877,0.414199,-0.555676) *** FresnelRefraction *** -Track (trackID 397, parentID 226) is processed with stopping code 2 +Track (trackID 315, parentID 226) is processed with stopping code 2 ### pop requested out of 238 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.525987,-0.476815,0.704262) - Old Polarization: (-0.218715,-0.724381,-0.653786) - New Momentum Direction: (-0.709974,-0.643602,0.285855) - New Polarization: (-0.0251625,-0.38247,-0.923625) + Old Momentum Direction: (0.766405,0.368087,-0.526436) + Old Polarization: (0.621877,-0.219873,0.751615) + New Momentum Direction: (0.489798,0.499584,-0.714503) + New Polarization: (0.847369,-0.0799968,0.524944) *** FresnelRefraction *** -Track (trackID 396, parentID 226) is processed with stopping code 2 +Track (trackID 314, parentID 226) is processed with stopping code 2 ### pop requested out of 237 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.733598,0.247955,-0.632734) - Old Polarization: (0.650276,-0.526596,0.547575) - New Momentum Direction: (0.398265,0.334678,-0.854035) - New Polarization: (-0.898419,-0.0454642,-0.436779) + Old Momentum Direction: (0.543578,0.00450419,-0.839346) + Old Polarization: (0.154448,-0.983447,0.0947465) + New Momentum Direction: (0.73768,0.00611254,-0.675123) + New Polarization: (-0.113321,-0.984652,-0.132737) *** FresnelRefraction *** -Track (trackID 395, parentID 226) is processed with stopping code 2 +Track (trackID 313, parentID 226) is processed with stopping code 2 ### pop requested out of 236 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.32033,0.0555965,-0.945673) - Old Polarization: (-0.2458,-0.959208,-0.139653) - New Momentum Direction: (0.430774,0.0747652,-0.899357) - New Polarization: (0.623727,-0.744901,0.236828) + Old Momentum Direction: (0.107673,0.714006,-0.69181) + Old Polarization: (-0.761202,0.506819,0.404607) + New Momentum Direction: (0.146111,0.312007,-0.938777) + New Polarization: (-0.674951,0.725224,0.135983) *** FresnelRefraction *** -Track (trackID 394, parentID 226) is processed with stopping code 2 +Track (trackID 312, parentID 226) is processed with stopping code 2 ### pop requested out of 235 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.0274279,0.576454,-0.816669) -Old Polarization: (-0.972553,0.173453,0.155097) -New Polarization: (0.754638,-0.122454,0.644613) -Polarization Change: (0.754638,-0.122454,0.644613) -New Momentum Direction: (0.632885,-0.123397,-0.764349) -Momentum Change: (0.632885,-0.123397,-0.764349) - Photon at Boundary! - Old Momentum Direction: (0.632885,-0.123397,-0.764349) - Old Polarization: (0.754638,-0.122454,0.644613) - New Momentum Direction: (0.858787,-0.167442,-0.484199) - New Polarization: (0.478376,-0.0762751,0.874836) - *** FresnelRefraction *** -Track (trackID 393, parentID 226) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 311, parentID 226) is processed with stopping code 2 ### pop requested out of 234 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.671324,0.12406,-0.730707) - Old Polarization: (0.511445,-0.791086,0.33557) - New Momentum Direction: (0.907083,0.167628,-0.386136) - New Polarization: (0.382995,-0.709297,0.591787) + Old Momentum Direction: (0.769078,0.237315,-0.593466) + Old Polarization: (0.621892,-0.492184,0.609102) + New Momentum Direction: (0.495499,0.32251,-0.806516) + New Polarization: (0.847941,-0.38094,0.368619) *** FresnelRefraction *** -Track (trackID 392, parentID 226) is processed with stopping code 2 +Track (trackID 310, parentID 226) is processed with stopping code 2 ### pop requested out of 233 stacked tracks. - -** Photon absorbed! ** -Track (trackID 391, parentID 226) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.605176,0.0251281,-0.795695) + Old Polarization: (0.284051,-0.940528,0.186337) + New Momentum Direction: (0.821194,0.0340975,-0.569629) + New Polarization: (-0.143906,-0.953578,-0.264539) + *** FresnelRefraction *** +Track (trackID 309, parentID 226) is processed with stopping code 2 ### pop requested out of 232 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.0912174,0.195625,-0.976427) - Old Polarization: (-0.741519,-0.641135,-0.197723) - New Momentum Direction: (0.123059,0.263914,-0.956664) - New Polarization: (0.105625,0.955032,0.27705) - *** FresnelRefraction *** -Track (trackID 390, parentID 226) is processed with stopping code 2 -### pop requested out of 231 stacked tracks. + Old Momentum Direction: (0.665444,0.58027,-0.469543) + Old Polarization: (0.418264,0.231145,0.878423) + New Momentum Direction: (-0.665444,0.58027,-0.469543) + New Polarization: (0.418264,-0.231145,-0.878423) + *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.75015,0.306306,-0.586047) - Old Polarization: (0.660338,-0.393954,0.639339) - New Momentum Direction: (0.441015,0.415732,-0.795407) - New Polarization: (-0.896914,0.172142,-0.407323) - *** FresnelRefraction *** -Track (trackID 389, parentID 226) is processed with stopping code 2 -### pop requested out of 230 stacked tracks. + Old Momentum Direction: (-0.665444,0.58027,-0.469543) + Old Polarization: (0.418264,-0.231145,-0.878423) + New Momentum Direction: (-0.665444,-0.58027,-0.469543) + New Polarization: (-0.418264,-0.231145,0.878423) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.665444,-0.58027,-0.469543) + Old Polarization: (-0.418264,-0.231145,0.878423) + New Momentum Direction: (-0.665444,-0.58027,0.469543) + New Polarization: (0.418264,0.231145,0.878423) + *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 388, parentID 226) is processed with stopping code 2 -### pop requested out of 229 stacked tracks. +Track (trackID 308, parentID 226) is processed with stopping code 2 +### pop requested out of 231 stacked tracks. + +** Photon absorbed! ** +Track (trackID 307, parentID 226) is processed with stopping code 2 +### pop requested out of 230 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.254434,0.790023,-0.557788) - Old Polarization: (-0.377686,0.612139,0.694722) - New Momentum Direction: (0.346054,0.552003,-0.758643) - New Polarization: (0.193842,-0.833222,-0.517847) + Old Momentum Direction: (0.0466121,0.263859,-0.963434) + Old Polarization: (-0.8846,-0.437118,-0.162513) + New Momentum Direction: (0.0633336,0.358514,-0.931373) + New Polarization: (-0.880051,-0.42004,-0.22153) *** FresnelRefraction *** -Track (trackID 387, parentID 226) is processed with stopping code 2 +Track (trackID 306, parentID 226) is processed with stopping code 2 +### pop requested out of 229 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.655901,0.598622,-0.459831) +Old Polarization: (0.384286,0.259515,0.885989) +New Polarization: (0.105911,-0.993557,-0.0403439) +Polarization Change: (0.105911,-0.993557,-0.0403439) +New Momentum Direction: (0.42488,0.0085346,0.905209) +Momentum Change: (0.42488,0.0085346,0.905209) + Photon at Boundary! + Old Momentum Direction: (0.42488,0.0085346,0.905209) + Old Polarization: (0.105911,-0.993557,-0.0403439) + New Momentum Direction: (-0.42488,0.0085346,0.905209) + New Polarization: (0.105911,0.993557,0.0403439) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.42488,0.0085346,0.905209) + Old Polarization: (0.105911,0.993557,0.0403439) + New Momentum Direction: (-0.577737,0.0116051,0.81614) + New Polarization: (0.0986742,0.993558,0.0557226) + *** FresnelRefraction *** +Track (trackID 305, parentID 226) is processed with stopping code 2 ### pop requested out of 228 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.0420666,0.23491,-0.971106) - Old Polarization: (-0.823312,-0.542497,-0.166894) - New Momentum Direction: (0.0571338,0.319049,-0.946015) - New Polarization: (-0.456958,0.850838,0.259353) + Old Momentum Direction: (0.752725,0.400455,-0.522533) + Old Polarization: (0.616679,-0.151047,0.772588) + New Momentum Direction: (0.458484,0.540584,-0.70538) + New Polarization: (0.839431,-0.00281323,0.543458) *** FresnelRefraction *** -Track (trackID 386, parentID 226) is processed with stopping code 2 +Track (trackID 304, parentID 226) is processed with stopping code 2 ### pop requested out of 227 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.0333743,0.451977,-0.891405) - Old Polarization: (-0.996212,-0.0867055,-0.00666482) - New Momentum Direction: (-0.0451748,0.611788,-0.789731) - New Polarization: (-0.998259,-0.0576617,0.0124339) + Old Momentum Direction: (0.353835,0.0173205,-0.935147) + Old Polarization: (-0.244573,-0.963327,-0.110382) + New Momentum Direction: (0.479413,0.0234676,-0.877276) + New Polarization: (-0.228987,-0.961668,-0.150862) *** FresnelRefraction *** -Track (trackID 385, parentID 226) is processed with stopping code 2 +Track (trackID 303, parentID 226) is processed with stopping code 2 ### pop requested out of 226 stacked tracks. + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 3 Track (trackID 226, parentID 1) is processed with stopping code 2 +### pop requested out of 228 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.367302,-0.648747,-0.666495) + Old Polarization: (-0.929338,0.226951,0.291246) + New Momentum Direction: (-0.367302,-0.648747,0.666495) + New Polarization: (0.929338,-0.226951,0.291246) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.367302,-0.648747,0.666495) + Old Polarization: (0.929338,-0.226951,0.291246) + New Momentum Direction: (-0.367302,0.648747,0.666495) + New Polarization: (-0.929338,-0.226951,-0.291246) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.367302,0.648747,0.666495) + Old Polarization: (-0.929338,-0.226951,-0.291246) + New Momentum Direction: (0.367302,0.648747,0.666495) + New Polarization: (-0.929338,0.226951,0.291246) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 330, parentID 226) is processed with stopping code 2 +### pop requested out of 227 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.257925,-0.635849,0.727441) + Old Polarization: (0.85963,-0.494718,-0.127633) + New Momentum Direction: (-0.257925,-0.635849,-0.727441) + New Polarization: (0.902386,-0.42756,0.0537712) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.257925,-0.635849,-0.727441) + Old Polarization: (0.902386,-0.42756,0.0537712) + New Momentum Direction: (-0.257925,0.635849,-0.727441) + New Polarization: (-0.902386,-0.42756,-0.0537712) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.257925,0.635849,-0.727441) + Old Polarization: (-0.902386,-0.42756,-0.0537712) + New Momentum Direction: (0.257925,0.635849,-0.727441) + New Polarization: (-0.902386,0.42756,0.0537712) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.257925,0.635849,-0.727441) + Old Polarization: (-0.902386,0.42756,0.0537712) + New Momentum Direction: (0.257925,0.635849,0.727441) + New Polarization: (-0.917251,0.397681,-0.0223838) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.257925,0.635849,0.727441) + Old Polarization: (-0.917251,0.397681,-0.0223838) + New Momentum Direction: (0.257925,-0.635849,0.727441) + New Polarization: (0.917251,0.397681,0.0223838) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 329, parentID 226) is processed with stopping code 2 +### pop requested out of 226 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.529763,-0.742681,-0.409605) + Old Polarization: (0.431058,-0.651683,0.624098) + New Momentum Direction: (-0.72045,-0.413106,-0.557041) + New Polarization: (0.189857,-0.890026,0.414497) + *** FresnelRefraction *** +Track (trackID 328, parentID 226) is processed with stopping code 2 ### pop requested out of 225 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.737956,-0.315042,0.596799) Old Polarization: (-0.674849,-0.344503,0.652608) New Momentum Direction: (0.402168,-0.427417,0.809676) - New Polarization: (-0.915566,-0.187745,0.355655) + New Polarization: (0.915566,0.187745,-0.355655) *** FresnelRefraction *** Track (trackID 225, parentID 1) is processed with stopping code 2 ### pop requested out of 224 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.744341,0.583838,0.324175) - Old Polarization: (-0.667799,0.650756,0.361332) - New Momentum Direction: (0.439525,0.785297,0.436035) - New Polarization: (-0.89823,0.384264,0.213362) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 224, parentID 1) is processed with stopping code 2 ### pop requested out of 223 stacked tracks. ** Photon absorbed! ** Track (trackID 223, parentID 1) is processed with stopping code 2 ### pop requested out of 222 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742495,0.664737,0.0826134) - Old Polarization: (-0.669851,0.736827,0.0915726) - New Momentum Direction: (0.429157,0.896334,0.111396) - New Polarization: (-0.90323,0.42588,0.0529283) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 222, parentID 1) is processed with stopping code 2 ### pop requested out of 221 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738118,-0.302389,-0.603111) Old Polarization: (-0.674672,-0.330825,-0.659828) New Momentum Direction: (0.403169,-0.41016,-0.818061) - New Polarization: (-0.915125,-0.180701,-0.360406) + New Polarization: (0.915125,0.180701,0.360406) *** FresnelRefraction *** Track (trackID 221, parentID 1) is processed with stopping code 2 ### pop requested out of 220 stacked tracks. @@ -2132,23 +1083,19 @@ Track (trackID 221, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738612,-0.637482,0.219245) Old Polarization: (-0.67413,-0.698458,0.240217) New Momentum Direction: (0.406212,-0.864102,0.297186) - New Polarization: (-0.913779,-0.384129,0.132111) + New Polarization: (0.913779,0.384129,-0.132111) *** FresnelRefraction *** Track (trackID 220, parentID 1) is processed with stopping code 2 ### pop requested out of 219 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.73618,-0.53719,-0.411662) - Old Polarization: (-0.676786,-0.584334,-0.447789) - New Momentum Direction: (0.390956,-0.730564,-0.559849) - New Polarization: (-0.92041,-0.310316,-0.237803) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 219, parentID 1) is processed with stopping code 2 ### pop requested out of 218 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736231,-0.00135337,-0.676728) Old Polarization: (-0.67673,-0.00147236,-0.73623) New Momentum Direction: (0.391287,-0.00184041,-0.920267) - New Polarization: (-0.920269,-0.000782521,-0.391286) + New Polarization: (0.920269,0.000782521,0.391286) *** FresnelRefraction *** Track (trackID 218, parentID 1) is processed with stopping code 2 ### pop requested out of 217 stacked tracks. @@ -2156,15 +1103,22 @@ Track (trackID 218, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736636,-0.450879,0.504059) Old Polarization: (-0.676289,-0.491112,0.549037) New Momentum Direction: (0.393875,-0.612803,0.685081) - New Polarization: (-0.919164,-0.262595,0.293567) + New Polarization: (0.919164,0.262595,-0.293567) *** FresnelRefraction *** Track (trackID 217, parentID 1) is processed with stopping code 2 ### pop requested out of 216 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.735789,-0.639282,-0.223457) +Old Polarization: (-0.677211,-0.694579,-0.242786) +New Polarization: (0.266747,-0.0722936,0.961051) +Polarization Change: (0.266747,-0.0722936,0.961051) +New Momentum Direction: (-0.622848,-0.773894,0.114661) +Momentum Change: (-0.622848,-0.773894,0.114661) Photon at Boundary! - Old Momentum Direction: (0.735789,-0.639282,-0.223457) - Old Polarization: (-0.677211,-0.694579,-0.242786) - New Momentum Direction: (0.388435,-0.869867,-0.304057) - New Polarization: (-0.921476,-0.366679,-0.128171) + Old Momentum Direction: (-0.622848,-0.773894,0.114661) + Old Polarization: (0.266747,-0.0722936,0.961051) + New Momentum Direction: (-0.847506,-0.507338,0.156019) + New Polarization: (0.24035,-0.104736,0.965019) *** FresnelRefraction *** Track (trackID 216, parentID 1) is processed with stopping code 2 ### pop requested out of 215 stacked tracks. @@ -2172,7 +1126,7 @@ Track (trackID 216, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742575,0.6549,0.140318) Old Polarization: (-0.669763,0.726095,0.155573) New Momentum Direction: (0.429609,0.882975,0.189186) - New Polarization: (-0.903015,0.420075,0.0900049) + New Polarization: (0.903015,-0.420075,-0.0900049) *** FresnelRefraction *** Track (trackID 215, parentID 1) is processed with stopping code 2 ### pop requested out of 214 stacked tracks. @@ -2180,47 +1134,55 @@ Track (trackID 215, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736599,0.0240631,-0.675902) Old Polarization: (-0.67633,0.0262074,-0.736132) New Momentum Direction: (0.393636,0.0327065,-0.918684) - New Polarization: (-0.919266,0.0140051,-0.393387) + New Polarization: (0.919266,-0.0140051,0.393387) *** FresnelRefraction *** Track (trackID 214, parentID 1) is processed with stopping code 2 ### pop requested out of 213 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.743061,0.58443,-0.326039) + Old Polarization: (-0.669223,0.648912,-0.362012) + New Momentum Direction: (0.43237,0.787448,-0.439298) + New Polarization: (0.901696,-0.377587,0.210646) + *** FresnelRefraction *** Track (trackID 213, parentID 1) is processed with stopping code 2 ### pop requested out of 212 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.73633,0.676544,0.0103061) - Old Polarization: (-0.676622,0.736245,0.0112156) - New Momentum Direction: (0.39192,0.919892,0.0140132) - New Polarization: (-0.919999,0.391875,0.00596963) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 212, parentID 1) is processed with stopping code 2 ### pop requested out of 211 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.738786,0.078842,0.669313) + Old Polarization: (-0.67394,0.0864281,0.733713) + New Momentum Direction: (0.407272,0.106845,0.907036) + New Polarization: (0.913307,-0.0476454,-0.404475) + *** FresnelRefraction *** Track (trackID 211, parentID 1) is processed with stopping code 2 ### pop requested out of 210 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.739854,-0.00386876,0.672756) + Old Polarization: (-0.672767,-0.00425455,0.739842) + New Momentum Direction: (0.413727,-0.00523528,0.910386) + New Polarization: (0.910401,0.00237915,-0.41372) + *** FresnelRefraction *** Track (trackID 210, parentID 1) is processed with stopping code 2 ### pop requested out of 209 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743923,-0.599283,0.295699) - Old Polarization: (-0.668265,-0.667132,0.329177) - New Momentum Direction: (0.437205,-0.806525,0.397956) - New Polarization: (-0.899362,-0.392075,0.193458) - *** FresnelRefraction *** -Track (trackID 209, parentID 1) is processed with stopping code 2 -### pop requested out of 208 stacked tracks. ** Photon absorbed! ** +Track (trackID 209, parentID 1) is processed with stopping code 2 +### pop requested out of 208 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.736692,-0.472326,-0.483935) + Old Polarization: (-0.676228,-0.514558,-0.527205) + New Momentum Direction: (0.394231,-0.641903,-0.65768) + New Polarization: (0.919012,0.275359,0.282126) + *** FresnelRefraction *** Track (trackID 208, parentID 1) is processed with stopping code 2 ### pop requested out of 207 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.745087,-0.318532,0.585989) Old Polarization: (-0.666967,-0.35584,0.654624) New Momentum Direction: (0.443623,-0.428016,0.787402) - New Polarization: (-0.896214,-0.211866,0.389761) + New Polarization: (0.896214,0.211866,-0.389761) *** FresnelRefraction *** Track (trackID 207, parentID 1) is processed with stopping code 2 ### pop requested out of 206 stacked tracks. @@ -2228,7 +1190,7 @@ Track (trackID 207, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.743661,0.23748,-0.624958) Old Polarization: (-0.668557,0.264157,-0.695163) New Momentum Direction: (0.43574,0.319717,-0.841375) - New Polarization: (-0.900072,0.15478,-0.407324) + New Polarization: (0.900072,-0.15478,0.407324) *** FresnelRefraction *** Track (trackID 206, parentID 1) is processed with stopping code 2 ### pop requested out of 205 stacked tracks. @@ -2236,27 +1198,34 @@ Track (trackID 206, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.740148,-0.190799,0.644808) Old Polarization: (-0.672444,-0.21001,0.709729) New Momentum Direction: (0.415479,-0.258091,0.872219) - New Polarization: (-0.909603,-0.117888,0.398404) + New Polarization: (0.909603,0.117888,-0.398404) *** FresnelRefraction *** Track (trackID 205, parentID 1) is processed with stopping code 2 ### pop requested out of 204 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737751,0.287358,0.61086) - Old Polarization: (-0.675073,0.314038,0.667575) - New Momentum Direction: (0.400891,0.389966,0.828983) - New Polarization: (-0.916126,0.170647,0.362758) - *** FresnelRefraction *** -Track (trackID 204, parentID 1) is processed with stopping code 2 -### pop requested out of 203 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.737751,0.287358,0.61086) +Old Polarization: (-0.675073,0.314038,0.667575) +New Polarization: (0.47772,0.529784,-0.700794) +Polarization Change: (0.47772,0.529784,-0.700794) +New Momentum Direction: (0.482427,-0.824867,-0.294718) +Momentum Change: (0.482427,-0.824867,-0.294718) ** Photon absorbed! ** +Track (trackID 204, parentID 1) is processed with stopping code 2 +### pop requested out of 203 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.738843,-0.0479759,0.672168) + Old Polarization: (-0.673878,-0.052601,0.736968) + New Momentum Direction: (0.407618,-0.0650108,0.910835) + New Polarization: (0.913152,0.0290199,-0.406584) + *** FresnelRefraction *** Track (trackID 203, parentID 1) is processed with stopping code 2 ### pop requested out of 202 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.740313,-0.505426,0.443262) Old Polarization: (-0.672262,-0.556589,0.488131) New Momentum Direction: (0.416461,-0.683528,0.599458) - New Polarization: (-0.909154,-0.313107,0.274597) + New Polarization: (0.909154,0.313107,-0.274597) *** FresnelRefraction *** Track (trackID 202, parentID 1) is processed with stopping code 2 ### pop requested out of 201 stacked tracks. @@ -2264,7 +1233,7 @@ Track (trackID 202, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739376,0.0785171,0.668699) Old Polarization: (-0.673293,0.0862235,0.734331) New Momentum Direction: (0.410854,0.106319,0.905481) - New Polarization: (-0.911701,0.0479124,0.408051) + New Polarization: (0.911701,-0.0479124,-0.408051) *** FresnelRefraction *** Track (trackID 201, parentID 1) is processed with stopping code 2 ### pop requested out of 200 stacked tracks. @@ -2272,19 +1241,23 @@ Track (trackID 201, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737034,-0.560843,-0.377142) Old Polarization: (-0.675856,-0.61161,-0.411281) New Momentum Direction: (0.396396,-0.761847,-0.512308) - New Polarization: (-0.91808,-0.32894,-0.221198) + New Polarization: (0.91808,0.32894,0.221198) *** FresnelRefraction *** Track (trackID 200, parentID 1) is processed with stopping code 2 ### pop requested out of 199 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.744621,0.467001,0.476916) + Old Polarization: (-0.667487,0.520967,0.532028) + New Momentum Direction: (0.441068,0.627909,0.64124) + New Polarization: (0.897474,-0.308589,-0.315141) + *** FresnelRefraction *** Track (trackID 199, parentID 1) is processed with stopping code 2 ### pop requested out of 198 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736555,0.369201,0.566726) Old Polarization: (-0.676378,0.402049,0.617146) New Momentum Direction: (0.393354,0.501848,0.770339) - New Polarization: (-0.919387,0.214712,0.329584) + New Polarization: (0.919387,-0.214712,-0.329584) *** FresnelRefraction *** Track (trackID 198, parentID 1) is processed with stopping code 2 ### pop requested out of 197 stacked tracks. @@ -2292,67 +1265,78 @@ Track (trackID 198, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738288,-0.47137,-0.482432) Old Polarization: (-0.674485,-0.51596,-0.528068) New Momentum Direction: (0.404222,-0.639219,-0.65422) - New Polarization: (-0.914661,-0.282494,-0.289123) + New Polarization: (0.914661,0.282494,0.289123) *** FresnelRefraction *** Track (trackID 197, parentID 1) is processed with stopping code 2 ### pop requested out of 196 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.74384,0.509063,0.433078) + Old Polarization: (-0.668358,0.566556,0.481988) + New Momentum Direction: (0.436742,0.685182,0.582908) + New Polarization: (0.899587,-0.33265,-0.282997) + *** FresnelRefraction *** Track (trackID 196, parentID 1) is processed with stopping code 2 ### pop requested out of 195 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.73982,-0.420838,0.524939) +Old Polarization: (-0.672804,-0.462757,0.577226) +New Polarization: (-0.528162,-0.558235,0.639858) +Polarization Change: (-0.528162,-0.558235,0.639858) +New Momentum Direction: (0.837118,-0.468666,0.282107) +Momentum Change: (0.837118,-0.468666,0.282107) Photon at Boundary! - Old Momentum Direction: (0.73982,-0.420838,0.524939) - Old Polarization: (-0.672804,-0.462757,0.577226) - New Momentum Direction: (0.413525,-0.569512,0.710389) - New Polarization: (-0.910493,-0.25866,0.322643) + Old Momentum Direction: (0.837118,-0.468666,0.282107) + Old Polarization: (-0.528162,-0.558235,0.639858) + New Momentum Direction: (0.672306,-0.634237,0.38177) + New Polarization: (0.716293,0.687545,-0.119188) *** FresnelRefraction *** Track (trackID 195, parentID 1) is processed with stopping code 2 ### pop requested out of 194 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.735925,0.504302,0.451768) - Old Polarization: (-0.677063,0.548144,0.491043) - New Momentum Direction: (0.389313,0.686073,0.614605) - New Polarization: (-0.921106,0.289975,0.259768) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 194, parentID 1) is processed with stopping code 2 ### pop requested out of 193 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741754,-0.125435,0.658837) Old Polarization: (-0.670672,-0.13873,0.728666) New Momentum Direction: (0.424901,-0.169306,0.889266) - New Polarization: (-0.90524,-0.0794691,0.417404) + New Polarization: (0.90524,0.0794691,-0.417404) *** FresnelRefraction *** Track (trackID 193, parentID 1) is processed with stopping code 2 ### pop requested out of 192 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.735781,0.148675,-0.660698) - Old Polarization: (-0.67722,0.161531,-0.717831) - New Momentum Direction: (0.38838,0.202303,-0.899019) - New Polarization: (-0.921499,0.0852637,-0.378905) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 192, parentID 1) is processed with stopping code 2 ### pop requested out of 191 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741048,0.595394,0.310409) Old Polarization: (-0.671452,0.657107,0.342583) New Momentum Direction: (0.420794,0.804399,0.419374) - New Polarization: (-0.907156,0.373129,0.194531) + New Polarization: (0.907156,-0.373129,-0.194531) *** FresnelRefraction *** Track (trackID 191, parentID 1) is processed with stopping code 2 ### pop requested out of 190 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736666,0.676255,0.00167989) Old Polarization: (-0.676257,0.736664,0.00182995) - New Momentum Direction: (0.394062,0.919081,0.0022831) - New Polarization: (-0.919084,0.394061,0.000978891) - *** FresnelRefraction *** + New Momentum Direction: (-0.736666,0.676255,0.00167989) + New Polarization: (0.676257,0.736664,0.00182995) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.736666,0.676255,0.00167989) + Old Polarization: (0.676257,0.736664,0.00182995) + New Momentum Direction: (-0.736666,-0.676255,0.00167989) + New Polarization: (-0.676257,0.736664,-0.00182995) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 190, parentID 1) is processed with stopping code 2 ### pop requested out of 189 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738183,-0.581462,0.342035) Old Polarization: (-0.6746,-0.636266,0.374272) New Momentum Direction: (0.403573,-0.788626,0.463895) - New Polarization: (-0.914947,-0.347854,0.204619) + New Polarization: (0.914947,0.347854,-0.204619) *** FresnelRefraction *** Track (trackID 189, parentID 1) is processed with stopping code 2 ### pop requested out of 188 stacked tracks. @@ -2360,7 +1344,7 @@ Track (trackID 189, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737293,-0.320412,-0.594756) Old Polarization: (-0.675573,-0.349685,-0.649093) New Momentum Direction: (0.398028,-0.435094,-0.807631) - New Polarization: (-0.917373,-0.188777,-0.350413) + New Polarization: (0.917373,0.188777,0.350413) *** FresnelRefraction *** Track (trackID 188, parentID 1) is processed with stopping code 2 ### pop requested out of 187 stacked tracks. @@ -2368,7 +1352,7 @@ Track (trackID 188, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.73666,0.24141,0.631707) Old Polarization: (-0.676264,0.26297,0.688124) New Momentum Direction: (0.394023,0.328097,0.858544) - New Polarization: (-0.9191,0.140657,0.368063) + New Polarization: (0.9191,-0.140657,-0.368063) *** FresnelRefraction *** Track (trackID 187, parentID 1) is processed with stopping code 2 ### pop requested out of 186 stacked tracks. @@ -2376,23 +1360,50 @@ Track (trackID 187, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 186, parentID 1) is processed with stopping code 2 ### pop requested out of 185 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.736372,-0.660024,0.148744) +Old Polarization: (-0.676577,-0.718356,0.16189) +New Polarization: (-0.992697,-0.0171904,-0.1194) +Polarization Change: (-0.992697,-0.0171904,-0.1194) +New Momentum Direction: (0.0224523,0.946169,-0.322893) +Momentum Change: (0.0224523,0.946169,-0.322893) ** Photon absorbed! ** Track (trackID 185, parentID 1) is processed with stopping code 2 ### pop requested out of 184 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.737423,-0.297385,0.60644) + Old Polarization: (-0.675431,-0.32468,0.6621) + New Momentum Direction: (0.398844,-0.403754,0.823351) + New Polarization: (0.917019,0.175607,-0.358105) + *** FresnelRefraction *** Track (trackID 184, parentID 1) is processed with stopping code 2 ### pop requested out of 183 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.738505,-0.0914989,0.668011) + Old Polarization: (-0.674248,-0.100219,0.731673) + New Momentum Direction: (-0.738505,-0.0914989,0.668011) + New Polarization: (0.674248,-0.100219,0.731673) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.738505,-0.0914989,0.668011) + Old Polarization: (0.674248,-0.100219,0.731673) + New Momentum Direction: (-0.738505,-0.0914989,-0.668011) + New Polarization: (-0.674248,0.100219,0.731673) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.738505,-0.0914989,-0.668011) + Old Polarization: (-0.674248,0.100219,0.731673) + New Momentum Direction: (-0.405553,-0.124044,-0.905616) + New Polarization: (-0.914071,0.0550357,0.401802) + *** FresnelRefraction *** Track (trackID 183, parentID 1) is processed with stopping code 2 ### pop requested out of 182 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.73643,-0.202307,0.645557) Old Polarization: (-0.676514,-0.220224,0.70273) New Momentum Direction: (0.392556,-0.275038,0.877641) - New Polarization: (-0.919728,-0.117391,0.374593) + New Polarization: (0.919728,0.117391,-0.374593) *** FresnelRefraction *** Track (trackID 182, parentID 1) is processed with stopping code 2 ### pop requested out of 181 stacked tracks. @@ -2400,7 +1411,7 @@ Track (trackID 182, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.740952,0.664328,0.0982746) Old Polarization: (-0.671558,0.732975,0.10843) New Momentum Direction: (0.42023,0.897649,0.13279) - New Polarization: (-0.907418,0.415706,0.0614956) + New Polarization: (0.907418,-0.415706,-0.0614956) *** FresnelRefraction *** Track (trackID 181, parentID 1) is processed with stopping code 2 ### pop requested out of 180 stacked tracks. @@ -2408,7 +1419,7 @@ Track (trackID 181, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738204,0.424169,0.524534) Old Polarization: (-0.674578,0.464176,0.574008) New Momentum Direction: (0.403699,0.575276,0.711396) - New Polarization: (-0.914892,0.253842,0.313906) + New Polarization: (0.914892,-0.253842,-0.313906) *** FresnelRefraction *** Track (trackID 180, parentID 1) is processed with stopping code 2 ### pop requested out of 179 stacked tracks. @@ -2416,79 +1427,74 @@ Track (trackID 180, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 179, parentID 1) is processed with stopping code 2 ### pop requested out of 178 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737658,-0.671962,-0.0657838) - Old Polarization: (-0.675174,-0.734149,-0.0718718) - New Momentum Direction: (0.400315,-0.912018,-0.0892848) - New Polarization: (-0.916378,-0.39841,-0.0390036) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 178, parentID 1) is processed with stopping code 2 ### pop requested out of 177 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736536,0.309081,0.601651) Old Polarization: (-0.676398,0.336561,0.655143) New Momentum Direction: (0.393235,0.420138,0.817833) - New Polarization: (-0.919438,0.179689,0.349779) + New Polarization: (0.919438,-0.179689,-0.349779) *** FresnelRefraction *** Track (trackID 177, parentID 1) is processed with stopping code 2 ### pop requested out of 176 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.741979,-0.482883,0.465071) - Old Polarization: (-0.670423,-0.534422,0.51471) - New Momentum Direction: (0.426197,-0.651574,0.627541) - New Polarization: (-0.904631,-0.306975,0.295652) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 176, parentID 1) is processed with stopping code 2 ### pop requested out of 175 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741608,-0.668568,-0.0550881) Old Polarization: (-0.670833,-0.739103,-0.0609) New Momentum Direction: (0.424054,-0.902578,-0.0743698) - New Polarization: (-0.905637,-0.422622,-0.0348229) + New Polarization: (0.905637,0.422622,0.0348229) *** FresnelRefraction *** Track (trackID 175, parentID 1) is processed with stopping code 2 ### pop requested out of 174 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742178,0.167292,-0.648988) - Old Polarization: (-0.670203,0.185258,-0.718685) - New Momentum Direction: (0.427339,0.225673,-0.875473) - New Polarization: (-0.904091,0.10667,-0.413812) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 174, parentID 1) is processed with stopping code 2 ### pop requested out of 173 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.735974,0.676241,0.0322435) - Old Polarization: (-0.67701,0.735139,0.0350518) - New Momentum Direction: (0.389631,0.919926,0.0438625) - New Polarization: (-0.920971,0.389189,0.0185567) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 173, parentID 1) is processed with stopping code 2 ### pop requested out of 172 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.739004,0.494932,-0.457073) Old Polarization: (-0.673701,0.542906,-0.501377) New Momentum Direction: (0.408599,0.670522,-0.619231) - New Polarization: (-0.912714,0.300176,-0.277214) + New Polarization: (0.912714,-0.300176,0.277214) *** FresnelRefraction *** Track (trackID 172, parentID 1) is processed with stopping code 2 ### pop requested out of 171 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.736558,-0.535604,-0.41305) +Old Polarization: (-0.676374,-0.583263,-0.449803) +New Polarization: (-0.775096,-0.318961,-0.545427) +Polarization Change: (-0.775096,-0.318961,-0.545427) +New Momentum Direction: (0.218376,-0.945266,0.242453) +Momentum Change: (0.218376,-0.945266,0.242453) Photon at Boundary! - Old Momentum Direction: (0.736558,-0.535604,-0.41305) - Old Polarization: (-0.676374,-0.583263,-0.449803) - New Momentum Direction: (0.393379,-0.728032,-0.561447) - New Polarization: (-0.919377,-0.311507,-0.240229) + Old Momentum Direction: (0.218376,-0.945266,0.242453) + Old Polarization: (-0.775096,-0.318961,-0.545427) + New Momentum Direction: (0.296833,-0.896259,0.32956) + New Polarization: (-0.742036,-0.43371,-0.511154) *** FresnelRefraction *** Track (trackID 171, parentID 1) is processed with stopping code 2 ### pop requested out of 170 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.736839,-0.211299,-0.6422) + Old Polarization: (-0.676068,-0.230292,-0.699927) + New Momentum Direction: (0.395165,-0.287103,-0.872592) + New Polarization: (0.91861,0.123505,0.375369) + *** FresnelRefraction *** Track (trackID 170, parentID 1) is processed with stopping code 2 ### pop requested out of 169 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.739307,0.182079,0.648284) Old Polarization: (-0.673369,0.199909,0.711766) New Momentum Direction: (0.410437,0.246575,0.87792) - New Polarization: (-0.911889,0.110982,0.395147) + New Polarization: (0.911889,-0.110982,-0.395147) *** FresnelRefraction *** Track (trackID 169, parentID 1) is processed with stopping code 2 ### pop requested out of 168 stacked tracks. @@ -2496,19 +1502,23 @@ Track (trackID 169, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736971,-0.201368,0.645233) Old Polarization: (-0.675925,-0.219554,0.703507) New Momentum Direction: (0.395997,-0.27356,0.876557) - New Polarization: (-0.918252,-0.117973,0.378015) + New Polarization: (0.918252,0.117973,-0.378015) *** FresnelRefraction *** Track (trackID 168, parentID 1) is processed with stopping code 2 ### pop requested out of 167 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.738796,-0.413444,-0.532206) + Old Polarization: (-0.673929,-0.45324,-0.583433) + New Momentum Direction: (0.407337,-0.560281,-0.721222) + New Polarization: (0.913278,0.249895,0.321677) + *** FresnelRefraction *** Track (trackID 167, parentID 1) is processed with stopping code 2 ### pop requested out of 166 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736405,-0.290831,-0.61084) Old Polarization: (-0.676541,-0.316566,-0.66489) New Momentum Direction: (0.392396,-0.395402,-0.830471) - New Polarization: (-0.919796,-0.168683,-0.354289) + New Polarization: (0.919796,0.168683,0.354289) *** FresnelRefraction *** Track (trackID 166, parentID 1) is processed with stopping code 2 ### pop requested out of 165 stacked tracks. @@ -2516,32 +1526,15 @@ Track (trackID 166, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 165, parentID 1) is processed with stopping code 2 ### pop requested out of 164 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.735815,0.669579,0.101199) -Old Polarization: (-0.677183,0.727552,0.109961) -New Polarization: (-0.561556,0.776854,0.284874) -Polarization Change: (-0.561556,0.776854,0.284874) -New Momentum Direction: (0.600788,0.146076,0.785949) -Momentum Change: (0.600788,0.146076,0.785949) - Photon at Boundary! - Old Momentum Direction: (0.600788,0.146076,0.785949) - Old Polarization: (-0.561556,0.776854,0.284874) - New Momentum Direction: (-0.600788,0.146076,0.785949) - New Polarization: (-0.561556,-0.776854,-0.284874) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600788,0.146076,0.785949) - Old Polarization: (-0.561556,-0.776854,-0.284874) - New Momentum Direction: (-0.81746,0.198758,0.540605) - New Polarization: (-0.503726,-0.701848,-0.503655) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 164, parentID 1) is processed with stopping code 2 ### pop requested out of 163 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.737459,0.525809,-0.423886) Old Polarization: (-0.675392,0.574129,-0.46284) New Momentum Direction: (0.399069,0.713845,-0.575473) - New Polarization: (-0.916921,0.310685,-0.250462) + New Polarization: (0.916921,-0.310685,0.250462) *** FresnelRefraction *** Track (trackID 163, parentID 1) is processed with stopping code 2 ### pop requested out of 162 stacked tracks. @@ -2549,7 +1542,7 @@ Track (trackID 163, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742916,0.196312,-0.639951) Old Polarization: (-0.669385,0.217877,-0.710249) New Momentum Direction: (0.431546,0.264559,-0.862425) - New Polarization: (-0.902091,0.126561,-0.41257) + New Polarization: (0.902091,-0.126561,0.41257) *** FresnelRefraction *** Track (trackID 162, parentID 1) is processed with stopping code 2 ### pop requested out of 161 stacked tracks. @@ -2557,19 +1550,23 @@ Track (trackID 162, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.741381,-0.418959,-0.52424) Old Polarization: (-0.671084,-0.462845,-0.579154) New Momentum Direction: (0.422736,-0.565775,-0.70795) - New Polarization: (-0.906253,-0.263915,-0.330234) + New Polarization: (0.906253,0.263915,0.330234) *** FresnelRefraction *** Track (trackID 161, parentID 1) is processed with stopping code 2 ### pop requested out of 160 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.741564,0.621063,0.253697) + Old Polarization: (-0.670882,0.686498,0.280427) + New Momentum Direction: (0.423802,0.838496,0.342516) + New Polarization: (0.905755,-0.392331,-0.160263) + *** FresnelRefraction *** Track (trackID 160, parentID 1) is processed with stopping code 2 ### pop requested out of 159 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738839,-0.519697,-0.42899) Old Polarization: (-0.673882,-0.569791,-0.470341) New Momentum Direction: (0.407597,-0.704229,-0.581314) - New Polarization: (-0.913162,-0.314338,-0.259474) + New Polarization: (0.913162,0.314338,0.259474) *** FresnelRefraction *** Track (trackID 159, parentID 1) is processed with stopping code 2 ### pop requested out of 158 stacked tracks. @@ -2577,61 +1574,27 @@ Track (trackID 159, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742052,0.00877387,0.670285) Old Polarization: (-0.670342,0.00971246,0.741989) New Momentum Direction: (0.426618,0.0118378,0.904354) - New Polarization: (-0.904432,0.00558386,0.426582) + New Polarization: (0.904432,-0.00558386,-0.426582) *** FresnelRefraction *** Track (trackID 158, parentID 1) is processed with stopping code 2 ### pop requested out of 157 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741234,0.272516,0.613438) Old Polarization: (-0.671246,0.30093,0.677399) - New Momentum Direction: (-0.741234,0.272516,0.613438) - New Polarization: (-0.671246,-0.30093,-0.677399) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.741234,0.272516,0.613438) - Old Polarization: (-0.671246,-0.30093,-0.677399) - New Momentum Direction: (-0.741234,0.272516,-0.613438) - New Polarization: (0.671246,0.30093,-0.677399) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.741234,0.272516,-0.613438) - Old Polarization: (0.671246,0.30093,-0.677399) - New Momentum Direction: (-0.741234,-0.272516,-0.613438) - New Polarization: (-0.671246,0.30093,0.677399) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.741234,-0.272516,-0.613438) - Old Polarization: (-0.671246,0.30093,0.677399) - New Momentum Direction: (0.741234,-0.272516,-0.613438) - New Polarization: (0.671246,0.30093,0.677399) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.741234,-0.272516,-0.613438) - Old Polarization: (0.671246,0.30093,0.677399) - New Momentum Direction: (0.741234,-0.272516,0.613438) - New Polarization: (-0.671246,-0.30093,0.677399) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.741234,-0.272516,0.613438) - Old Polarization: (-0.671246,-0.30093,0.677399) - New Momentum Direction: (0.421882,-0.368086,0.82857) - New Polarization: (-0.906651,-0.171278,0.385549) + New Momentum Direction: (0.421882,0.368086,0.82857) + New Polarization: (0.906651,-0.171278,-0.385549) *** FresnelRefraction *** Track (trackID 157, parentID 1) is processed with stopping code 2 ### pop requested out of 156 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736225,0.0603963,-0.674037) - Old Polarization: (-0.676737,0.0657054,-0.733287) - New Momentum Direction: (0.391242,0.0821323,-0.916615) - New Polarization: (-0.920288,0.034917,-0.389681) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 156, parentID 1) is processed with stopping code 2 ### pop requested out of 155 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.739474,0.252176,-0.624167) Old Polarization: (-0.673185,0.277008,-0.68563) New Momentum Direction: (0.411448,0.341424,-0.845068) - New Polarization: (-0.911433,0.154129,-0.381489) + New Polarization: (0.911433,-0.154129,0.381489) *** FresnelRefraction *** Track (trackID 155, parentID 1) is processed with stopping code 2 ### pop requested out of 154 stacked tracks. @@ -2639,19 +1602,15 @@ Track (trackID 155, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 154, parentID 1) is processed with stopping code 2 ### pop requested out of 153 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742366,0.577681,0.33938) - Old Polarization: (-0.669995,0.64008,0.376038) - New Momentum Direction: (0.428415,0.779083,0.457701) - New Polarization: (-0.903582,0.369386,0.217009) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 153, parentID 1) is processed with stopping code 2 ### pop requested out of 152 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.742158,-0.317186,0.590418) Old Polarization: (-0.670224,-0.351229,0.653787) New Momentum Direction: (0.427229,-0.427889,0.796484) - New Polarization: (-0.904144,-0.202187,0.376357) + New Polarization: (0.904144,0.202187,-0.376357) *** FresnelRefraction *** Track (trackID 152, parentID 1) is processed with stopping code 2 ### pop requested out of 151 stacked tracks. @@ -2659,7 +1618,7 @@ Track (trackID 152, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742213,0.159661,0.650867) Old Polarization: (-0.670164,0.176826,0.720842) New Momentum Direction: (0.427544,0.215369,0.877965) - New Polarization: (-0.903995,0.101858,0.415233) + New Polarization: (0.903995,-0.101858,-0.415233) *** FresnelRefraction *** Track (trackID 151, parentID 1) is processed with stopping code 2 ### pop requested out of 150 stacked tracks. @@ -2667,53 +1626,43 @@ Track (trackID 151, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739168,-0.414376,0.530964) Old Polarization: (-0.673521,-0.454765,0.582717) New Momentum Direction: (0.409598,-0.561261,0.719177) - New Polarization: (-0.912266,-0.252,0.322903) + New Polarization: (0.912266,0.252,-0.322903) *** FresnelRefraction *** Track (trackID 150, parentID 1) is processed with stopping code 2 ### pop requested out of 149 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.738817,0.152456,0.656435) -Old Polarization: (-0.673906,0.16714,0.719663) -New Polarization: (-0.853219,0.207581,0.478463) -Polarization Change: (-0.853219,0.207581,0.478463) -New Momentum Direction: (0.467317,-0.10307,0.878061) -Momentum Change: (0.467317,-0.10307,0.878061) -Scattering Photon! -Old Momentum Direction: (0.467317,-0.10307,0.878061) -Old Polarization: (-0.853219,0.207581,0.478463) -New Polarization: (-0.965404,0.242851,-0.0949617) -Polarization Change: (-0.965404,0.242851,-0.0949617) -New Momentum Direction: (0.0950652,-0.0113201,-0.995407) -Momentum Change: (0.0950652,-0.0113201,-0.995407) - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.738817,0.152456,0.656435) + Old Polarization: (-0.673906,0.16714,0.719663) + New Momentum Direction: (0.407462,0.206596,0.889547) + New Polarization: (0.913222,-0.0921788,-0.396898) + *** FresnelRefraction *** Track (trackID 149, parentID 1) is processed with stopping code 2 ### pop requested out of 148 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738495,-0.561449,0.373362) Old Polarization: (-0.674258,-0.614939,0.408932) New Momentum Direction: (0.405495,-0.761161,0.506169) - New Polarization: (-0.914097,-0.337652,0.224538) + New Polarization: (0.914097,0.337652,-0.224538) *** FresnelRefraction *** Track (trackID 148, parentID 1) is processed with stopping code 2 ### pop requested out of 147 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.73845,-0.216179,-0.638716) - Old Polarization: (-0.674308,-0.236743,-0.699472) - New Momentum Direction: (0.405216,-0.293094,-0.865966) - New Polarization: (-0.914221,-0.12991,-0.383827) - *** FresnelRefraction *** -Track (trackID 147, parentID 1) is processed with stopping code 2 -### pop requested out of 146 stacked tracks. ** Photon absorbed! ** +Track (trackID 147, parentID 1) is processed with stopping code 2 +### pop requested out of 146 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.739179,0.661008,0.129161) + Old Polarization: (-0.673509,0.725459,0.141755) + New Momentum Direction: (0.409663,0.895305,0.174943) + New Polarization: (0.912237,-0.40206,-0.0785627) + *** FresnelRefraction *** Track (trackID 146, parentID 1) is processed with stopping code 2 ### pop requested out of 145 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.739027,-0.659811,0.135977) Old Polarization: (-0.673676,-0.723816,0.149168) New Momentum Direction: (0.408738,-0.893867,0.184213) - New Polarization: (-0.912652,-0.400325,0.0825011) + New Polarization: (0.912652,0.400325,-0.0825011) *** FresnelRefraction *** Track (trackID 145, parentID 1) is processed with stopping code 2 ### pop requested out of 144 stacked tracks. @@ -2721,7 +1670,7 @@ Track (trackID 145, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739537,0.267501,0.61768) Old Polarization: (-0.673116,0.293897,0.67863) New Momentum Direction: (0.411824,0.362143,0.836214) - New Polarization: (-0.911263,0.163662,0.377907) + New Polarization: (0.911263,-0.163662,-0.377907) *** FresnelRefraction *** Track (trackID 144, parentID 1) is processed with stopping code 2 ### pop requested out of 143 stacked tracks. @@ -2729,7 +1678,7 @@ Track (trackID 144, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.74416,-0.0652926,-0.664803) Old Polarization: (-0.668002,-0.0727365,-0.740596) New Momentum Direction: (0.438519,-0.087844,-0.894419) - New Polarization: (-0.898722,-0.0428622,-0.436419) + New Polarization: (0.898722,0.0428622,0.436419) *** FresnelRefraction *** Track (trackID 143, parentID 1) is processed with stopping code 2 ### pop requested out of 142 stacked tracks. @@ -2737,7 +1686,7 @@ Track (trackID 143, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.741549,0.41201,-0.529483) Old Polarization: (-0.670899,0.455398,-0.585242) New Momentum Direction: (0.423711,0.556266,-0.714869) - New Polarization: (-0.905797,0.260208,-0.334399) + New Polarization: (0.905797,-0.260208,0.334399) *** FresnelRefraction *** Track (trackID 142, parentID 1) is processed with stopping code 2 ### pop requested out of 141 stacked tracks. @@ -2745,7 +1694,7 @@ Track (trackID 142, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736597,0.474371,-0.482075) Old Polarization: (-0.676331,0.516641,-0.525031) New Momentum Direction: (0.393627,0.644766,-0.655237) - New Polarization: (-0.91927,0.276086,-0.280569) + New Polarization: (0.91927,-0.276086,0.280569) *** FresnelRefraction *** Track (trackID 141, parentID 1) is processed with stopping code 2 ### pop requested out of 140 stacked tracks. @@ -2753,7 +1702,7 @@ Track (trackID 141, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737441,0.0310574,-0.674697) Old Polarization: (-0.675411,0.0339097,-0.736661) New Momentum Direction: (0.398958,0.042165,-0.915999) - New Polarization: (-0.916969,0.0183453,-0.398536) + New Polarization: (0.916969,-0.0183453,0.398536) *** FresnelRefraction *** Track (trackID 140, parentID 1) is processed with stopping code 2 ### pop requested out of 139 stacked tracks. @@ -2761,40 +1710,35 @@ Track (trackID 140, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737408,0.617303,0.274165) Old Polarization: (-0.675448,0.67393,0.299314) New Momentum Direction: (0.398749,0.838117,0.372235) - New Polarization: (-0.91706,0.364423,0.161852) + New Polarization: (0.91706,-0.364423,-0.161852) *** FresnelRefraction *** Track (trackID 139, parentID 1) is processed with stopping code 2 ### pop requested out of 138 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736082,-0.408109,-0.540028) - Old Polarization: (-0.676892,-0.443796,-0.58725) - New Momentum Direction: (0.390327,-0.55509,-0.73452) - New Polarization: (-0.920676,-0.235334,-0.311405) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 138, parentID 1) is processed with stopping code 2 ### pop requested out of 137 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738593,0.274571,0.615703) - Old Polarization: (-0.674151,0.300817,0.674558) - New Momentum Direction: (0.406095,0.372189,0.834603) - New Polarization: (-0.913831,0.165396,0.370887) - *** FresnelRefraction *** +Scattering Photon! +Old Momentum Direction: (0.738593,0.274571,0.615703) +Old Polarization: (-0.674151,0.300817,0.674558) +New Polarization: (0.728462,-0.339992,-0.594768) +Polarization Change: (0.728462,-0.339992,-0.594768) +New Momentum Direction: (0.484094,-0.358855,0.798045) +Momentum Change: (0.484094,-0.358855,0.798045) + +** Photon absorbed! ** Track (trackID 137, parentID 1) is processed with stopping code 2 ### pop requested out of 136 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.73615,0.630768,0.245387) Old Polarization: (-0.676818,0.686063,0.266898) New Momentum Direction: (0.390766,0.85786,0.333732) - New Polarization: (-0.92049,0.364179,0.141676) + New Polarization: (0.92049,-0.364179,-0.141676) *** FresnelRefraction *** Track (trackID 136, parentID 1) is processed with stopping code 2 ### pop requested out of 135 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736032,0.513319,0.441316) - Old Polarization: (-0.676946,0.558123,0.479836) - New Momentum Direction: (0.390006,0.698239,0.600298) - New Polarization: (-0.920812,0.295736,0.254254) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 135, parentID 1) is processed with stopping code 2 ### pop requested out of 134 stacked tracks. @@ -2805,7 +1749,7 @@ Track (trackID 134, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738684,-0.626937,0.247581) Old Polarization: (-0.674052,-0.687051,0.27132) New Momentum Direction: (0.406649,-0.849726,0.335562) - New Polarization: (-0.913584,-0.378225,0.149363) + New Polarization: (0.913584,0.378225,-0.149363) *** FresnelRefraction *** Track (trackID 133, parentID 1) is processed with stopping code 2 ### pop requested out of 132 stacked tracks. @@ -2813,23 +1757,19 @@ Track (trackID 133, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738577,0.231672,0.633113) Old Polarization: (-0.674169,0.253806,0.693598) New Momentum Direction: (0.405995,0.314045,0.858221) - New Polarization: (-0.913875,0.139517,0.38127) + New Polarization: (0.913875,-0.139517,-0.38127) *** FresnelRefraction *** Track (trackID 132, parentID 1) is processed with stopping code 2 ### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739367,0.655446,0.154036) - Old Polarization: (-0.673303,0.719758,0.16915) - New Momentum Direction: (0.410799,0.887546,0.208581) - New Polarization: (-0.911726,0.399904,0.0939812) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 131, parentID 1) is processed with stopping code 2 ### pop requested out of 130 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741877,0.538043,0.400161) Old Polarization: (-0.670536,0.595287,0.442736) New Momentum Direction: (0.425609,0.726104,0.540029) - New Polarization: (-0.904907,0.341511,0.253994) + New Polarization: (0.904907,-0.341511,-0.253994) *** FresnelRefraction *** Track (trackID 130, parentID 1) is processed with stopping code 2 ### pop requested out of 129 stacked tracks. @@ -2837,7 +1777,7 @@ Track (trackID 130, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737839,-0.640351,-0.213409) Old Polarization: (-0.674976,-0.699989,-0.233284) New Momentum Direction: (0.401442,-0.868901,-0.289577) - New Polarization: (-0.915884,-0.380849,-0.126925) + New Polarization: (0.915884,0.380849,0.126925) *** FresnelRefraction *** Track (trackID 129, parentID 1) is processed with stopping code 2 ### pop requested out of 128 stacked tracks. @@ -2845,7 +1785,7 @@ Track (trackID 129, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738534,-0.603858,-0.299872) Old Polarization: (-0.674216,-0.661464,-0.328478) New Momentum Direction: (0.405731,-0.818612,-0.406517) - New Polarization: (-0.913993,-0.363391,-0.180457) + New Polarization: (0.913993,0.363391,0.180457) *** FresnelRefraction *** Track (trackID 128, parentID 1) is processed with stopping code 2 ### pop requested out of 127 stacked tracks. @@ -2853,7 +1793,7 @@ Track (trackID 128, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738768,-0.248028,0.626661) Old Polarization: (-0.67396,-0.271878,0.686921) New Momentum Direction: (0.407164,-0.336129,0.849255) - New Polarization: (-0.913355,-0.149843,0.378589) + New Polarization: (0.913355,0.149843,-0.378589) *** FresnelRefraction *** Track (trackID 127, parentID 1) is processed with stopping code 2 ### pop requested out of 126 stacked tracks. @@ -2861,31 +1801,34 @@ Track (trackID 127, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.741103,0.0391668,-0.670248) Old Polarization: (-0.671392,0.0432335,-0.739841) New Momentum Direction: (0.421112,0.052912,-0.905464) - New Polarization: (-0.907009,0.0245663,-0.420395) + New Polarization: (0.907009,-0.0245663,0.420395) *** FresnelRefraction *** Track (trackID 126, parentID 1) is processed with stopping code 2 ### pop requested out of 125 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739182,-0.384331,-0.553082) - Old Polarization: (-0.673505,-0.421809,-0.607015) - New Momentum Direction: (0.409683,-0.520556,-0.74912) - New Polarization: (-0.912228,-0.233782,-0.336431) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 125, parentID 1) is processed with stopping code 2 ### pop requested out of 124 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741825,-0.59458,0.310113) Old Polarization: (-0.670593,-0.657738,0.343054) New Momentum Direction: (0.42531,-0.802459,0.418535) - New Polarization: (-0.905048,-0.3771,0.196683) + New Polarization: (0.905048,0.3771,-0.196683) *** FresnelRefraction *** Track (trackID 124, parentID 1) is processed with stopping code 2 ### pop requested out of 123 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.74124,-0.385957,0.549182) +Old Polarization: (-0.67124,-0.426206,0.606453) +New Polarization: (0.0591041,-0.688226,0.723085) +Polarization Change: (0.0591041,-0.688226,0.723085) +New Momentum Direction: (0.98672,-0.0695045,-0.146807) +Momentum Change: (0.98672,-0.0695045,-0.146807) Photon at Boundary! - Old Momentum Direction: (0.74124,-0.385957,0.549182) - Old Polarization: (-0.67124,-0.426206,0.606453) - New Momentum Direction: (0.421913,-0.521307,0.741774) - New Polarization: (-0.906636,-0.242596,0.345192) + Old Momentum Direction: (0.98672,-0.0695045,-0.146807) + Old Polarization: (0.0591041,-0.688226,0.723085) + New Momentum Direction: (0.975637,-0.0938789,-0.198291) + New Polarization: (0.079948,-0.689542,0.71982) *** FresnelRefraction *** Track (trackID 123, parentID 1) is processed with stopping code 2 ### pop requested out of 122 stacked tracks. @@ -2893,7 +1836,7 @@ Track (trackID 123, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.74143,-0.308948,0.595678) Old Polarization: (-0.67103,-0.341361,0.658173) New Momentum Direction: (0.423023,-0.417185,0.804368) - New Polarization: (-0.906119,-0.194763,0.37552) + New Polarization: (0.906119,0.194763,-0.37552) *** FresnelRefraction *** Track (trackID 122, parentID 1) is processed with stopping code 2 ### pop requested out of 121 stacked tracks. @@ -2901,7 +1844,7 @@ Track (trackID 122, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739298,-0.0453484,0.67185) Old Polarization: (-0.673379,-0.0497876,0.737619) New Momentum Direction: (0.41038,-0.0614124,0.909844) - New Polarization: (-0.911914,-0.0276369,0.409449) + New Polarization: (0.911914,0.0276369,-0.409449) *** FresnelRefraction *** Track (trackID 121, parentID 1) is processed with stopping code 2 ### pop requested out of 120 stacked tracks. @@ -2909,7 +1852,7 @@ Track (trackID 121, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.743087,-0.00371966,0.669185) Old Polarization: (-0.669195,-0.00413038,0.743075) New Momentum Direction: (0.432515,-0.00501161,0.901613) - New Polarization: (-0.901627,-0.00240409,0.432508) + New Polarization: (0.901627,0.00240409,-0.432508) *** FresnelRefraction *** Track (trackID 120, parentID 1) is processed with stopping code 2 ### pop requested out of 119 stacked tracks. @@ -2917,31 +1860,35 @@ Track (trackID 120, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.74034,-0.4975,-0.452096) Old Polarization: (-0.672233,-0.547904,-0.4979) New Momentum Direction: (0.416621,-0.672784,-0.611383) - New Polarization: (-0.90908,-0.308329,-0.28019) + New Polarization: (0.90908,0.308329,0.28019) *** FresnelRefraction *** Track (trackID 119, parentID 1) is processed with stopping code 2 ### pop requested out of 118 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.73584,0.6065,-0.301159) + Old Polarization: (-0.677155,0.659062,-0.327259) + New Momentum Direction: (0.388767,0.825203,-0.409756) + New Polarization: (0.921336,-0.348202,0.1729) + *** FresnelRefraction *** Track (trackID 118, parentID 1) is processed with stopping code 2 ### pop requested out of 117 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.740337,0.657452,0.140208) + Old Polarization: (-0.672236,0.724055,0.154412) + New Momentum Direction: (0.416601,0.889097,0.189608) + New Polarization: (0.90909,-0.407439,-0.0868901) + *** FresnelRefraction *** Track (trackID 117, parentID 1) is processed with stopping code 2 ### pop requested out of 116 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.74465,-0.0369841,0.66643) - Old Polarization: (-0.667455,-0.0412615,0.743506) - New Momentum Direction: (0.441226,-0.0497253,0.896017) - New Polarization: (-0.897396,-0.0244486,0.440549) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 116, parentID 1) is processed with stopping code 2 ### pop requested out of 115 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738874,-0.67367,0.0153338) Old Polarization: (-0.673844,-0.738682,0.0168136) New Momentum Direction: (0.407807,-0.912832,0.0207775) - New Polarization: (-0.913068,-0.407701,0.00927994) + New Polarization: (0.913068,0.407701,-0.00927994) *** FresnelRefraction *** Track (trackID 115, parentID 1) is processed with stopping code 2 ### pop requested out of 114 stacked tracks. @@ -2949,7 +1896,7 @@ Track (trackID 115, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736355,0.314762,-0.598921) Old Polarization: (-0.676595,0.342564,-0.65182) New Momentum Direction: (0.392079,0.427966,-0.814321) - New Polarization: (-0.919932,0.182401,-0.347067) + New Polarization: (0.919932,-0.182401,0.347067) *** FresnelRefraction *** Track (trackID 114, parentID 1) is processed with stopping code 2 ### pop requested out of 113 stacked tracks. @@ -2957,7 +1904,7 @@ Track (trackID 114, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739925,-0.608842,-0.286048) Old Polarization: (-0.67269,-0.669695,-0.314638) New Momentum Direction: (0.414148,-0.823817,-0.387048) - New Polarization: (-0.910209,-0.37484,-0.176108) + New Polarization: (0.910209,0.37484,0.176108) *** FresnelRefraction *** Track (trackID 113, parentID 1) is processed with stopping code 2 ### pop requested out of 112 stacked tracks. @@ -2965,19 +1912,23 @@ Track (trackID 113, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738788,0.318676,-0.593833) Old Polarization: (-0.673938,0.349341,-0.650975) New Momentum Direction: (0.407284,0.431861,-0.804746) - New Polarization: (-0.913301,0.192587,-0.358874) + New Polarization: (0.913301,-0.192587,0.358874) *** FresnelRefraction *** Track (trackID 112, parentID 1) is processed with stopping code 2 ### pop requested out of 111 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.742458,-0.622451,-0.247609) + Old Polarization: (-0.669892,-0.689878,-0.274431) + New Momentum Direction: (0.428946,-0.839357,-0.333893) + New Polarization: (0.90333,0.398569,0.158549) + *** FresnelRefraction *** Track (trackID 111, parentID 1) is processed with stopping code 2 ### pop requested out of 110 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.735765,-0.621654,0.268693) Old Polarization: (-0.677237,-0.675379,0.291914) New Momentum Direction: (0.388277,-0.845909,0.365621) - New Polarization: (-0.921543,-0.35641,0.154049) + New Polarization: (0.921543,0.35641,-0.154049) *** FresnelRefraction *** Track (trackID 110, parentID 1) is processed with stopping code 2 ### pop requested out of 109 stacked tracks. @@ -2985,7 +1936,7 @@ Track (trackID 110, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.73878,-0.089943,-0.667918) Old Polarization: (-0.673946,-0.0985956,-0.732172) New Momentum Direction: (0.407239,-0.121889,-0.905152) - New Polarization: (-0.913322,-0.054349,-0.403596) + New Polarization: (0.913322,0.054349,0.403596) *** FresnelRefraction *** Track (trackID 109, parentID 1) is processed with stopping code 2 ### pop requested out of 108 stacked tracks. @@ -2993,7 +1944,7 @@ Track (trackID 109, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738318,-0.0839017,0.669214) Old Polarization: (-0.674453,-0.0918466,0.732583) New Momentum Direction: (0.404405,-0.113773,0.907476) - New Polarization: (-0.91458,-0.0503079,0.401264) + New Polarization: (0.91458,0.0503079,-0.401264) *** FresnelRefraction *** Track (trackID 108, parentID 1) is processed with stopping code 2 ### pop requested out of 107 stacked tracks. @@ -3001,7 +1952,7 @@ Track (trackID 108, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738589,-0.143681,0.658667) Old Polarization: (-0.674156,-0.157413,0.721619) New Momentum Direction: (0.406066,-0.194765,0.892848) - New Polarization: (-0.913844,-0.0865436,0.396737) + New Polarization: (0.913844,0.0865436,-0.396737) *** FresnelRefraction *** Track (trackID 107, parentID 1) is processed with stopping code 2 ### pop requested out of 106 stacked tracks. @@ -3009,7 +1960,7 @@ Track (trackID 107, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739266,0.673058,-0.0218902) Old Polarization: (-0.673414,0.738875,-0.0240308) New Momentum Direction: (0.410188,0.911519,-0.0296458) - New Polarization: (-0.912001,0.409971,-0.0133337) + New Polarization: (0.912001,-0.409971,0.0133337) *** FresnelRefraction *** Track (trackID 106, parentID 1) is processed with stopping code 2 ### pop requested out of 105 stacked tracks. @@ -3025,7 +1976,7 @@ Track (trackID 104, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742962,-0.429265,0.513555) Old Polarization: (-0.669333,-0.476486,0.570047) New Momentum Direction: (0.431809,-0.578459,0.692045) - New Polarization: (-0.901965,-0.276933,0.331311) + New Polarization: (0.901965,0.276933,-0.331311) *** FresnelRefraction *** Track (trackID 103, parentID 1) is processed with stopping code 2 ### pop requested out of 102 stacked tracks. @@ -3033,7 +1984,7 @@ Track (trackID 103, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.740086,0.435227,-0.51269) Old Polarization: (-0.672513,0.478958,-0.564204) New Momentum Direction: (0.41511,0.588773,-0.693564) - New Polarization: (-0.909771,0.268645,-0.316459) + New Polarization: (0.909771,-0.268645,0.316459) *** FresnelRefraction *** Track (trackID 102, parentID 1) is processed with stopping code 2 ### pop requested out of 101 stacked tracks. @@ -3041,22 +1992,15 @@ Track (trackID 102, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.741902,0.121929,-0.659329) Old Polarization: (-0.670508,0.134911,-0.729532) New Momentum Direction: (0.425754,0.164541,-0.889753) - New Polarization: (-0.904839,0.0774213,-0.418655) + New Polarization: (0.904839,-0.0774213,0.418655) *** FresnelRefraction *** Track (trackID 101, parentID 1) is processed with stopping code 2 ### pop requested out of 100 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.738272,-0.388155,0.551625) -Old Polarization: (-0.674503,-0.424851,0.603777) -New Polarization: (-0.00680936,-0.274771,0.961486) -Polarization Change: (-0.00680936,-0.274771,0.961486) -New Momentum Direction: (0.940198,0.325699,0.099736) -Momentum Change: (0.940198,0.325699,0.099736) Photon at Boundary! - Old Momentum Direction: (0.940198,0.325699,0.099736) - Old Polarization: (-0.00680936,-0.274771,0.961486) - New Momentum Direction: (0.886916,0.441687,0.135254) - New Polarization: (-0.0126315,-0.269501,0.962917) + Old Momentum Direction: (0.738272,-0.388155,0.551625) + Old Polarization: (-0.674503,-0.424851,0.603777) + New Momentum Direction: (0.40412,-0.526383,0.748069) + New Polarization: (0.914706,0.232558,-0.3305) *** FresnelRefraction *** Track (trackID 100, parentID 1) is processed with stopping code 2 ### pop requested out of 99 stacked tracks. @@ -3064,7 +2008,7 @@ Track (trackID 100, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736992,0.398584,-0.54587) Old Polarization: (-0.675902,0.434609,-0.595207) New Momentum Direction: (0.39613,0.541466,-0.741549) - New Polarization: (-0.918194,0.233601,-0.319921) + New Polarization: (0.918194,-0.233601,0.319921) *** FresnelRefraction *** Track (trackID 99, parentID 1) is processed with stopping code 2 ### pop requested out of 98 stacked tracks. @@ -3072,7 +2016,7 @@ Track (trackID 99, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736255,-0.119369,0.666093) Old Polarization: (-0.676704,-0.129874,0.724709) New Momentum Direction: (0.391436,-0.162323,0.905775) - New Polarization: (-0.920205,-0.0690486,0.385298) + New Polarization: (0.920205,0.0690486,-0.385298) *** FresnelRefraction *** Track (trackID 98, parentID 1) is processed with stopping code 2 ### pop requested out of 97 stacked tracks. @@ -3080,7 +2024,7 @@ Track (trackID 98, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737182,0.655153,0.165337) Old Polarization: (-0.675694,0.714773,0.180383) New Momentum Direction: (0.397332,0.889778,0.224548) - New Polarization: (-0.917675,0.385253,0.097224) + New Polarization: (0.917675,-0.385253,-0.097224) *** FresnelRefraction *** Track (trackID 97, parentID 1) is processed with stopping code 2 ### pop requested out of 96 stacked tracks. @@ -3088,20 +2032,12 @@ Track (trackID 97, parentID 1) is processed with stopping code 2 ** Photon absorbed! ** Track (trackID 96, parentID 1) is processed with stopping code 2 ### pop requested out of 95 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.739901,0.450605,-0.499502) - Old Polarization: (-0.672716,0.495607,-0.549388) - New Momentum Direction: (0.414007,0.609728,-0.675892) - New Polarization: (-0.910274,0.277314,-0.307406) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 95, parentID 1) is processed with stopping code 2 ### pop requested out of 94 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742568,-0.453498,-0.492882) - Old Polarization: (-0.669771,-0.502789,-0.546453) - New Momentum Direction: (0.429569,-0.611439,-0.664539) - New Polarization: (-0.903034,-0.290859,-0.316118) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 94, parentID 1) is processed with stopping code 2 ### pop requested out of 93 stacked tracks. @@ -3112,7 +2048,7 @@ Track (trackID 93, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.735897,0.619151,0.274057) Old Polarization: (-0.677094,0.672923,0.297858) New Momentum Direction: (0.389131,0.842352,0.372853) - New Polarization: (-0.921182,0.355831,0.157503) + New Polarization: (0.921182,-0.355831,-0.157503) *** FresnelRefraction *** Track (trackID 92, parentID 1) is processed with stopping code 2 ### pop requested out of 91 stacked tracks. @@ -3120,19 +2056,23 @@ Track (trackID 92, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.735828,0.399436,-0.546816) Old Polarization: (-0.677168,0.434037,-0.594184) New Momentum Direction: (0.388689,0.543481,-0.744009) - New Polarization: (-0.921369,0.229273,-0.313868) + New Polarization: (0.921369,-0.229273,0.313868) *** FresnelRefraction *** Track (trackID 91, parentID 1) is processed with stopping code 2 ### pop requested out of 90 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.741786,0.484232,0.463975) + Old Polarization: (-0.670637,0.535605,0.513199) + New Momentum Direction: (0.425083,0.653565,0.626225) + New Polarization: (0.905154,-0.30693,-0.294091) + *** FresnelRefraction *** Track (trackID 90, parentID 1) is processed with stopping code 2 ### pop requested out of 89 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.739312,-0.621101,0.260098) Old Polarization: (-0.673363,-0.681932,0.285572) New Momentum Direction: (0.41047,-0.841101,0.352227) - New Polarization: (-0.911874,-0.378612,0.158551) + New Polarization: (0.911874,0.378612,-0.158551) *** FresnelRefraction *** Track (trackID 89, parentID 1) is processed with stopping code 2 ### pop requested out of 88 stacked tracks. @@ -3140,35 +2080,42 @@ Track (trackID 89, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738474,-0.526187,0.421643) Old Polarization: (-0.674282,-0.576281,0.461784) New Momentum Direction: (0.405366,-0.713376,0.57164) - New Polarization: (-0.914155,-0.316334,0.253484) + New Polarization: (0.914155,0.316334,-0.253484) *** FresnelRefraction *** Track (trackID 88, parentID 1) is processed with stopping code 2 ### pop requested out of 87 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.739289,-0.10052,0.665843) +Old Polarization: (-0.673388,-0.110357,0.731006) +New Polarization: (0.404689,0.46837,-0.785402) +Polarization Change: (0.404689,0.46837,-0.785402) +New Momentum Direction: (-0.705289,0.706549,0.0579368) +Momentum Change: (-0.705289,0.706549,0.0579368) Photon at Boundary! - Old Momentum Direction: (0.739289,-0.10052,0.665843) - Old Polarization: (-0.673388,-0.110357,0.731006) - New Momentum Direction: (0.41033,-0.136129,0.90172) - New Polarization: (-0.911937,-0.0612519,0.405732) + Old Momentum Direction: (-0.705289,0.706549,0.0579368) + Old Polarization: (0.404689,0.46837,-0.785402) + New Momentum Direction: (-0.955139,0.285576,0.078461) + New Polarization: (0.143795,0.678787,-0.720119) *** FresnelRefraction *** Track (trackID 87, parentID 1) is processed with stopping code 2 ### pop requested out of 86 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.744879,0.243047,-0.621356) + Old Polarization: (-0.6672,0.271344,-0.693698) + New Momentum Direction: (0.442485,0.326677,-0.835158) + New Polarization: (0.896776,-0.161188,0.412081) + *** FresnelRefraction *** Track (trackID 86, parentID 1) is processed with stopping code 2 ### pop requested out of 85 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738394,-0.499978,0.452544) - Old Polarization: (-0.67437,-0.547446,0.495508) - New Momentum Direction: (0.404871,-0.677918,0.613602) - New Polarization: (-0.914374,-0.300172,0.271694) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 85, parentID 1) is processed with stopping code 2 ### pop requested out of 84 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.742044,-0.294022,-0.60243) Old Polarization: (-0.670352,-0.325467,-0.666858) New Momentum Direction: (0.426569,-0.396702,-0.812814) - New Polarization: (-0.904455,-0.187097,-0.383348) + New Polarization: (0.904455,0.187097,0.383348) *** FresnelRefraction *** Track (trackID 84, parentID 1) is processed with stopping code 2 ### pop requested out of 83 stacked tracks. @@ -3180,35 +2127,35 @@ Track (trackID 83, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.73852,-0.661813,-0.128809) Old Polarization: (-0.674232,-0.724917,-0.141091) New Momentum Direction: (0.405645,-0.897195,-0.174622) - New Polarization: (-0.914031,-0.398174,-0.0774968) + New Polarization: (0.914031,0.398174,0.0774968) *** FresnelRefraction *** Track (trackID 82, parentID 1) is processed with stopping code 2 ### pop requested out of 81 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.735888,0.576855,-0.354552) + Old Polarization: (-0.677104,0.626936,-0.385333) + New Momentum Direction: (0.389072,0.784819,-0.482372) + New Polarization: (0.921208,-0.331468,0.20373) + *** FresnelRefraction *** Track (trackID 81, parentID 1) is processed with stopping code 2 ### pop requested out of 80 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738943,-0.598974,-0.308535) Old Polarization: (-0.673768,-0.656913,-0.33838) New Momentum Direction: (0.408228,-0.811542,-0.41803) - New Polarization: (-0.91288,-0.362911,-0.186938) + New Polarization: (0.91288,0.362911,0.186938) *** FresnelRefraction *** Track (trackID 80, parentID 1) is processed with stopping code 2 ### pop requested out of 79 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736426,-0.627833,-0.251997) - Old Polarization: (-0.676519,-0.683429,-0.274312) - New Momentum Direction: (0.39253,-0.853551,-0.342595) - New Polarization: (-0.919739,-0.364282,-0.146214) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 79, parentID 1) is processed with stopping code 2 ### pop requested out of 78 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736128,0.676087,0.0319755) Old Polarization: (-0.676842,0.735306,0.0347763) New Momentum Direction: (0.390621,0.919524,0.0434889) - New Polarization: (-0.920552,0.390185,0.0184538) + New Polarization: (0.920552,-0.390185,-0.0184538) *** FresnelRefraction *** Track (trackID 78, parentID 1) is processed with stopping code 2 ### pop requested out of 77 stacked tracks. @@ -3216,7 +2163,7 @@ Track (trackID 78, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738501,-0.228654,-0.634297) Old Polarization: (-0.674252,-0.250443,-0.694739) New Momentum Direction: (0.405531,-0.309986,-0.859915) - New Polarization: (-0.914081,-0.137525,-0.3815) + New Polarization: (0.914081,0.137525,0.3815) *** FresnelRefraction *** Track (trackID 77, parentID 1) is processed with stopping code 2 ### pop requested out of 76 stacked tracks. @@ -3224,19 +2171,23 @@ Track (trackID 77, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.741415,-0.43832,-0.508113) Old Polarization: (-0.671047,-0.484284,-0.561396) New Momentum Direction: (0.422934,-0.591894,-0.68614) - New Polarization: (-0.90616,-0.276256,-0.320244) + New Polarization: (0.90616,0.276256,0.320244) *** FresnelRefraction *** Track (trackID 76, parentID 1) is processed with stopping code 2 ### pop requested out of 75 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.744169,0.0945031,-0.661273) + Old Polarization: (-0.667991,0.10528,-0.736684) + New Momentum Direction: (0.438572,0.127142,-0.889657) + New Polarization: (0.898696,-0.0620463,0.434161) + *** FresnelRefraction *** Track (trackID 75, parentID 1) is processed with stopping code 2 ### pop requested out of 74 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.739397,-0.66549,0.102055) Old Polarization: (-0.67327,-0.730853,0.112079) New Momentum Direction: (0.410981,-0.90111,0.138188) - New Polarization: (-0.911644,-0.406232,0.0622972) + New Polarization: (0.911644,0.406232,-0.0622972) *** FresnelRefraction *** Track (trackID 74, parentID 1) is processed with stopping code 2 ### pop requested out of 73 stacked tracks. @@ -3244,19 +2195,23 @@ Track (trackID 74, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.743371,-0.301172,0.59724) Old Polarization: (-0.668879,-0.334713,0.663753) New Momentum Direction: (0.434115,-0.405623,0.804372) - New Polarization: (-0.900857,-0.195466,0.38762) + New Polarization: (0.900857,0.195466,-0.38762) *** FresnelRefraction *** Track (trackID 73, parentID 1) is processed with stopping code 2 ### pop requested out of 72 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.74347,0.668767,-0.00169285) + Old Polarization: (-0.668769,0.743468,-0.00188194) + New Momentum Direction: (0.434674,0.900585,-0.00227965) + New Polarization: (0.900588,-0.434672,0.00110028) + *** FresnelRefraction *** Track (trackID 72, parentID 1) is processed with stopping code 2 ### pop requested out of 71 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.735925,0.0265065,-0.676544) Old Polarization: (-0.677063,0.0288109,-0.735361) New Momentum Direction: (0.389315,0.0360605,-0.920399) - New Polarization: (-0.921105,0.0152414,-0.389016) + New Polarization: (0.921105,-0.0152414,0.389016) *** FresnelRefraction *** Track (trackID 71, parentID 1) is processed with stopping code 2 ### pop requested out of 70 stacked tracks. @@ -3268,69 +2223,59 @@ Track (trackID 70, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742118,0.636407,0.210353) Old Polarization: (-0.67027,0.704624,0.232901) New Momentum Direction: (0.426994,0.85857,0.283785) - New Polarization: (-0.904255,0.405421,0.134005) + New Polarization: (0.904255,-0.405421,-0.134005) *** FresnelRefraction *** Track (trackID 69, parentID 1) is processed with stopping code 2 ### pop requested out of 68 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.742797,-0.0502604,0.667628) -Old Polarization: (-0.669517,-0.0557615,0.740701) -New Polarization: (-0.792156,0.250552,0.556518) -Polarization Change: (-0.792156,0.250552,0.556518) -New Momentum Direction: (-0.178085,0.777276,-0.60343) -Momentum Change: (-0.178085,0.777276,-0.60343) Photon at Boundary! - Old Momentum Direction: (-0.178085,0.777276,-0.60343) - Old Polarization: (-0.792156,0.250552,0.556518) - New Momentum Direction: (-0.240034,0.529969,-0.813337) - New Polarization: (-0.894488,-0.446287,-0.026817) + Old Momentum Direction: (0.742797,-0.0502604,0.667628) + Old Polarization: (-0.669517,-0.0557615,0.740701) + New Momentum Direction: (0.430872,-0.0677438,0.899867) + New Polarization: (0.902413,0.0323454,-0.429656) *** FresnelRefraction *** Track (trackID 68, parentID 1) is processed with stopping code 2 ### pop requested out of 67 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743236,-0.665613,0.0675277) - Old Polarization: (-0.669029,-0.73944,0.0750177) - New Momentum Direction: (0.433355,-0.896621,0.0909639) - New Polarization: (-0.901223,-0.431142,0.0437402) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 67, parentID 1) is processed with stopping code 2 ### pop requested out of 66 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.740726,-0.671508,0.0200498) Old Polarization: (-0.671807,-0.740396,0.0221066) New Momentum Direction: (0.418904,-0.907626,0.0270997) - New Polarization: (-0.908031,-0.418717,0.012502) + New Polarization: (0.908031,0.418717,-0.012502) *** FresnelRefraction *** Track (trackID 66, parentID 1) is processed with stopping code 2 ### pop requested out of 65 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.738119,0.580063,0.344538) + Old Polarization: (-0.67467,0.634615,0.37694) + New Momentum Direction: (0.403178,0.786797,0.467331) + New Polarization: (0.915121,-0.346642,-0.205894) + *** FresnelRefraction *** Track (trackID 65, parentID 1) is processed with stopping code 2 ### pop requested out of 64 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.744293,-0.229544,0.627167) + Old Polarization: (-0.667854,-0.255816,0.698949) + New Momentum Direction: (0.439256,-0.30877,0.843632) + New Polarization: (0.898362,0.150974,-0.412495) + *** FresnelRefraction *** Track (trackID 64, parentID 1) is processed with stopping code 2 ### pop requested out of 63 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.737639,0.486725,-0.467961) Old Polarization: (-0.675196,0.531738,-0.511239) New Momentum Direction: (0.400193,0.660623,-0.635155) - New Polarization: (-0.916431,0.288486,-0.277364) + New Polarization: (0.916431,-0.288486,0.277364) *** FresnelRefraction *** Track (trackID 63, parentID 1) is processed with stopping code 2 ### pop requested out of 62 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.73583,0.561965,-0.377822) -Old Polarization: (-0.677167,0.610648,-0.410553) -New Polarization: (-0.910127,0.266754,0.317035) -Polarization Change: (-0.910127,0.266754,0.317035) -New Momentum Direction: (0.113647,-0.575106,0.810146) -Momentum Change: (0.113647,-0.575106,0.810146) Photon at Boundary! - Old Momentum Direction: (0.113647,-0.575106,0.810146) - Old Polarization: (-0.910127,0.266754,0.317035) - New Momentum Direction: (0.15463,-0.7825,0.603144) - New Polarization: (-0.644904,-0.542429,-0.538395) + Old Momentum Direction: (0.73583,0.561965,-0.377822) + Old Polarization: (-0.677167,0.610648,-0.410553) + New Momentum Direction: (0.388697,0.76462,-0.514072) + New Polarization: (0.921366,-0.322571,0.216872) *** FresnelRefraction *** Track (trackID 62, parentID 1) is processed with stopping code 2 ### pop requested out of 61 stacked tracks. @@ -3338,7 +2283,7 @@ Track (trackID 62, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739066,-0.640621,-0.208294) Old Polarization: (-0.673633,-0.702847,-0.228527) New Momentum Direction: (0.408978,-0.867824,-0.282168) - New Polarization: (-0.912544,-0.388936,-0.12646) + New Polarization: (0.912544,0.388936,0.12646) *** FresnelRefraction *** Track (trackID 61, parentID 1) is processed with stopping code 2 ### pop requested out of 60 stacked tracks. @@ -3346,7 +2291,7 @@ Track (trackID 61, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736509,0.117822,0.666087) Old Polarization: (-0.676427,0.128288,0.725251) New Momentum Direction: (0.393066,0.160163,0.905454) - New Polarization: (-0.91951,0.0684656,0.387057) + New Polarization: (0.91951,-0.0684656,-0.387057) *** FresnelRefraction *** Track (trackID 60, parentID 1) is processed with stopping code 2 ### pop requested out of 59 stacked tracks. @@ -3354,35 +2299,43 @@ Track (trackID 60, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736903,-0.336567,-0.586257) Old Polarization: (-0.675999,-0.366889,-0.639076) New Momentum Direction: (0.395565,-0.457272,-0.796512) - New Polarization: (-0.918438,-0.196944,-0.343052) + New Polarization: (0.918438,0.196944,0.343052) *** FresnelRefraction *** Track (trackID 59, parentID 1) is processed with stopping code 2 ### pop requested out of 58 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.736334,-0.139962,-0.661984) + Old Polarization: (-0.676618,-0.152314,-0.720409) + New Momentum Direction: (0.391946,-0.190304,-0.90009) + New Polarization: (0.919988,0.081076,0.383469) + *** FresnelRefraction *** Track (trackID 58, parentID 1) is processed with stopping code 2 ### pop requested out of 57 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.737789,-0.0427065,0.67368) + Old Polarization: (-0.675032,-0.0466769,0.736311) + New Momentum Direction: (0.401127,-0.057953,0.914187) + New Polarization: (0.916022,0.0253777,-0.400323) + *** FresnelRefraction *** Track (trackID 57, parentID 1) is processed with stopping code 2 ### pop requested out of 56 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742865,0.133851,0.655924) - Old Polarization: (-0.669442,0.148532,0.727864) - New Momentum Direction: (0.431257,0.180396,0.88401) - New Polarization: (-0.902229,0.0862277,0.422549) - *** FresnelRefraction *** -Track (trackID 56, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. ** Photon absorbed! ** +Track (trackID 56, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.736998,-0.52199,0.429372) + Old Polarization: (-0.675895,-0.56918,0.468189) + New Momentum Direction: (0.396171,-0.709103,0.583285) + New Polarization: (0.918177,0.305961,-0.251673) + *** FresnelRefraction *** Track (trackID 55, parentID 1) is processed with stopping code 2 ### pop requested out of 54 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738042,0.0334211,0.673927) Old Polarization: (-0.674755,0.0365558,0.737136) New Momentum Direction: (0.402699,0.0453371,0.914209) - New Polarization: (-0.915333,0.019946,0.402204) + New Polarization: (0.915333,-0.019946,-0.402204) *** FresnelRefraction *** Track (trackID 54, parentID 1) is processed with stopping code 2 ### pop requested out of 53 stacked tracks. @@ -3390,7 +2343,7 @@ Track (trackID 54, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739563,0.254049,-0.623303) Old Polarization: (-0.673088,0.279139,-0.684861) New Momentum Direction: (0.411979,0.343919,-0.843797) - New Polarization: (-0.911193,0.155496,-0.381507) + New Polarization: (0.911193,-0.155496,0.381507) *** FresnelRefraction *** Track (trackID 53, parentID 1) is processed with stopping code 2 ### pop requested out of 52 stacked tracks. @@ -3398,7 +2351,7 @@ Track (trackID 53, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739306,-0.663882,0.112634) Old Polarization: (-0.673369,-0.72889,0.123664) New Momentum Direction: (0.410433,-0.899043,0.152532) - New Polarization: (-0.911891,-0.404651,0.068653) + New Polarization: (0.911891,0.404651,-0.068653) *** FresnelRefraction *** Track (trackID 52, parentID 1) is processed with stopping code 2 ### pop requested out of 51 stacked tracks. @@ -3406,7 +2359,7 @@ Track (trackID 52, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.73618,0.227707,0.637329) Old Polarization: (-0.676786,0.247691,0.693261) New Momentum Direction: (0.390956,0.309675,0.866749) - New Polarization: (-0.920409,0.131539,0.368163) + New Polarization: (0.920409,-0.131539,-0.368163) *** FresnelRefraction *** Track (trackID 51, parentID 1) is processed with stopping code 2 ### pop requested out of 50 stacked tracks. @@ -3414,34 +2367,45 @@ Track (trackID 51, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736059,0.482651,-0.474621) Old Polarization: (-0.676918,0.52482,-0.516088) New Momentum Direction: (0.390177,0.6565,-0.645577) - New Polarization: (-0.92074,0.278201,-0.273572) + New Polarization: (0.92074,-0.278201,0.273572) *** FresnelRefraction *** Track (trackID 50, parentID 1) is processed with stopping code 2 ### pop requested out of 49 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.738781,0.109114,0.665054) + Old Polarization: (-0.673946,0.119611,0.729034) + New Momentum Direction: (0.407243,0.147869,0.90127) + New Polarization: (0.91332,-0.0659339,-0.40187) + *** FresnelRefraction *** Track (trackID 49, parentID 1) is processed with stopping code 2 ### pop requested out of 48 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.74271,-0.234814,0.627091) - Old Polarization: (-0.669613,-0.260447,0.695547) - New Momentum Direction: (0.43038,-0.316533,0.845328) - New Polarization: (-0.902648,-0.150922,0.403051) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 48, parentID 1) is processed with stopping code 2 ### pop requested out of 47 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.738713,-0.506215,0.445028) Old Polarization: (-0.67402,-0.554801,0.487742) New Momentum Direction: (0.406827,-0.686077,0.60315) - New Polarization: (-0.913505,-0.305542,0.268611) + New Polarization: (0.913505,0.305542,-0.268611) *** FresnelRefraction *** Track (trackID 47, parentID 1) is processed with stopping code 2 ### pop requested out of 46 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.743855,0.654507,-0.135276) + Old Polarization: (-0.668341,0.728459,-0.150561) + New Momentum Direction: (0.436827,0.880927,-0.182073) + New Polarization: (0.899546,-0.427785,0.0884162) + *** FresnelRefraction *** Track (trackID 46, parentID 1) is processed with stopping code 2 ### pop requested out of 45 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.737632,0.366842,0.566856) +Old Polarization: (-0.675203,0.40076,0.619268) +New Polarization: (-0.913686,0.253387,-0.317762) +Polarization Change: (-0.913686,0.253387,-0.317762) +New Momentum Direction: (0.232719,-0.314805,-0.920185) +Momentum Change: (0.232719,-0.314805,-0.920185) ** Photon absorbed! ** Track (trackID 45, parentID 1) is processed with stopping code 2 @@ -3450,7 +2414,7 @@ Track (trackID 45, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742195,-0.461695,0.485783) Old Polarization: (-0.670184,-0.511303,0.537979) New Momentum Direction: (0.427436,-0.622804,0.655297) - New Polarization: (-0.904046,-0.294463,0.309826) + New Polarization: (0.904046,0.294463,-0.309826) *** FresnelRefraction *** Track (trackID 44, parentID 1) is processed with stopping code 2 ### pop requested out of 43 stacked tracks. @@ -3458,7 +2422,7 @@ Track (trackID 44, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742575,0.619663,0.254165) Old Polarization: (-0.669763,0.687029,0.281797) New Momentum Direction: (0.429612,0.835466,0.342681) - New Polarization: (-0.903013,0.397476,0.163032) + New Polarization: (0.903013,-0.397476,-0.163032) *** FresnelRefraction *** Track (trackID 43, parentID 1) is processed with stopping code 2 ### pop requested out of 42 stacked tracks. @@ -3466,7 +2430,7 @@ Track (trackID 43, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737891,0.490823,-0.463259) Old Polarization: (-0.674919,0.536618,-0.506482) New Momentum Direction: (0.401766,0.665957,-0.628558) - New Polarization: (-0.915742,0.292177,-0.275769) + New Polarization: (0.915742,-0.292177,0.275769) *** FresnelRefraction *** Track (trackID 42, parentID 1) is processed with stopping code 2 ### pop requested out of 41 stacked tracks. @@ -3474,23 +2438,34 @@ Track (trackID 42, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738895,-0.608723,0.288948) Old Polarization: (-0.67382,-0.667511,0.316853) New Momentum Direction: (0.407939,-0.824803,0.391516) - New Polarization: (-0.913009,-0.368528,0.174932) + New Polarization: (0.913009,0.368528,-0.174932) *** FresnelRefraction *** Track (trackID 41, parentID 1) is processed with stopping code 2 ### pop requested out of 40 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.737429,0.453098,0.500899) + Old Polarization: (-0.675425,0.494693,0.546882) + New Momentum Direction: (0.398881,0.615157,0.680055) + New Polarization: (0.917003,-0.267584,-0.295813) + *** FresnelRefraction *** Track (trackID 40, parentID 1) is processed with stopping code 2 ### pop requested out of 39 stacked tracks. ** Photon absorbed! ** Track (trackID 39, parentID 1) is processed with stopping code 2 ### pop requested out of 38 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.739539,-0.370207,0.562164) +Old Polarization: (-0.673113,-0.406741,0.617641) +New Polarization: (-0.440222,0.37211,0.817153) +Polarization Change: (-0.440222,0.37211,0.817153) +New Momentum Direction: (-0.509216,-0.853039,0.114124) +Momentum Change: (-0.509216,-0.853039,0.114124) Photon at Boundary! - Old Momentum Direction: (0.739539,-0.370207,0.562164) - Old Polarization: (-0.673113,-0.406741,0.617641) - New Momentum Direction: (0.411839,-0.501184,0.761054) - New Polarization: (-0.911257,-0.226508,0.343956) + Old Momentum Direction: (-0.509216,-0.853039,0.114124) + Old Polarization: (-0.440222,0.37211,0.817153) + New Momentum Direction: (-0.689373,-0.707739,0.1545) + New Polarization: (0.650299,-0.510639,0.562458) *** FresnelRefraction *** Track (trackID 38, parentID 1) is processed with stopping code 2 ### pop requested out of 37 stacked tracks. @@ -3498,7 +2473,7 @@ Track (trackID 38, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742089,-0.256805,-0.619156) Old Polarization: (-0.670301,-0.284309,-0.685467) New Momentum Direction: (0.426832,-0.346467,-0.83533) - New Polarization: (-0.904331,-0.163528,-0.394264) + New Polarization: (0.904331,0.163528,0.394264) *** FresnelRefraction *** Track (trackID 37, parentID 1) is processed with stopping code 2 ### pop requested out of 36 stacked tracks. @@ -3506,7 +2481,7 @@ Track (trackID 37, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738846,0.293655,0.606526) Old Polarization: (-0.673874,0.321968,0.665004) New Momentum Direction: (0.407641,0.397921,0.821881) - New Polarization: (-0.913142,0.177638,0.3669) + New Polarization: (0.913142,-0.177638,-0.3669) *** FresnelRefraction *** Track (trackID 36, parentID 1) is processed with stopping code 2 ### pop requested out of 35 stacked tracks. @@ -3514,12 +2489,16 @@ Track (trackID 36, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.739139,0.571709,0.356122) Old Polarization: (-0.673553,0.627377,0.390799) New Momentum Direction: (0.409418,0.774396,0.482378) - New Polarization: (-0.912347,0.347512,0.216468) + New Polarization: (0.912347,-0.347512,-0.216468) *** FresnelRefraction *** Track (trackID 35, parentID 1) is processed with stopping code 2 ### pop requested out of 34 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.736191,0.555437,-0.386669) + Old Polarization: (-0.676774,0.604201,-0.420616) + New Momentum Direction: (0.391025,0.755368,-0.525851) + New Polarization: (0.92038,-0.32092,0.223409) + *** FresnelRefraction *** Track (trackID 34, parentID 1) is processed with stopping code 2 ### pop requested out of 33 stacked tracks. @@ -3530,27 +2509,27 @@ Track (trackID 33, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742131,-0.397463,-0.53969) Old Polarization: (-0.670255,-0.440085,-0.597564) New Momentum Direction: (0.427069,-0.536204,-0.728078) - New Polarization: (-0.904219,-0.253253,-0.343876) + New Polarization: (0.904219,0.253253,0.343876) *** FresnelRefraction *** Track (trackID 32, parentID 1) is processed with stopping code 2 ### pop requested out of 31 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738814,0.649393,0.180119) - Old Polarization: (-0.67391,0.711936,0.197467) - New Momentum Direction: (0.407443,0.880007,0.244084) - New Polarization: (-0.913231,0.39262,0.108899) - *** FresnelRefraction *** -Track (trackID 31, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. ** Photon absorbed! ** +Track (trackID 31, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.742235,-0.639615,0.19995) + Old Polarization: (-0.67014,-0.708426,0.221461) + New Momentum Direction: (0.427668,-0.862762,0.269708) + New Polarization: (0.903936,0.408187,-0.127604) + *** FresnelRefraction *** Track (trackID 30, parentID 1) is processed with stopping code 2 ### pop requested out of 29 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.740482,-0.199898,-0.64166) Old Polarization: (-0.672076,-0.220244,-0.70697) New Momentum Direction: (0.417463,-0.270276,-0.867569) - New Polarization: (-0.908694,-0.124168,-0.39857) + New Polarization: (0.908694,0.124168,0.39857) *** FresnelRefraction *** Track (trackID 29, parentID 1) is processed with stopping code 2 ### pop requested out of 28 stacked tracks. @@ -3558,7 +2537,7 @@ Track (trackID 29, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.73872,0.120961,0.663069) Old Polarization: (-0.674012,0.132574,0.726727) New Momentum Direction: (0.406872,0.163938,0.898654) - New Polarization: (-0.913485,0.073019,0.400266) + New Polarization: (0.913485,-0.073019,-0.400266) *** FresnelRefraction *** Track (trackID 28, parentID 1) is processed with stopping code 2 ### pop requested out of 27 stacked tracks. @@ -3566,64 +2545,47 @@ Track (trackID 28, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.742427,0.490769,0.456014) Old Polarization: (-0.669927,0.54388,0.505363) New Momentum Direction: (0.428765,0.661816,0.614947) - New Polarization: (-0.903416,0.314101,0.291857) + New Polarization: (0.903416,-0.314101,-0.291857) *** FresnelRefraction *** Track (trackID 27, parentID 1) is processed with stopping code 2 ### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742583,0.0722617,0.665844) - Old Polarization: (-0.669754,0.0801194,0.738248) - New Momentum Direction: (0.429657,0.0974264,0.897721) - New Polarization: (-0.902992,0.0463569,0.427149) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 26, parentID 1) is processed with stopping code 2 ### pop requested out of 25 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.737585,-0.656873,0.156482) -Old Polarization: (-0.675255,-0.717507,0.170926) -New Polarization: (0.931895,-0.282249,-0.227832) -Polarization Change: (0.931895,-0.282249,-0.227832) -New Momentum Direction: (0.272646,0.959321,-0.0732543) -Momentum Change: (0.272646,0.959321,-0.0732543) Photon at Boundary! - Old Momentum Direction: (0.272646,0.959321,-0.0732543) - Old Polarization: (0.931895,-0.282249,-0.227832) - New Momentum Direction: (-0.272646,0.959321,-0.0732543) - New Polarization: (0.931895,0.282249,0.227832) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.272646,0.959321,-0.0732543) - Old Polarization: (0.931895,0.282249,0.227832) - New Momentum Direction: (-0.370085,0.923661,-0.0994341) - New Polarization: (-0.887772,-0.383162,-0.255044) + Old Momentum Direction: (0.737585,-0.656873,0.156482) + Old Polarization: (-0.675255,-0.717507,0.170926) + New Momentum Direction: (0.399856,-0.891627,0.212406) + New Polarization: (0.916578,0.388972,-0.0926617) *** FresnelRefraction *** Track (trackID 25, parentID 1) is processed with stopping code 2 ### pop requested out of 24 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.739915,-0.572675,0.352945) + Old Polarization: (-0.672701,-0.629894,0.38821) + New Momentum Direction: (0.414089,-0.77489,0.477572) + New Polarization: (0.910237,0.352516,-0.217259) + *** FresnelRefraction *** Track (trackID 24, parentID 1) is processed with stopping code 2 ### pop requested out of 23 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.743463,0.195396,0.639596) Old Polarization: (-0.668777,0.217218,0.711023) New Momentum Direction: (0.434633,0.26313,0.861311) - New Polarization: (-0.900608,0.126987,0.415669) + New Polarization: (0.900608,-0.126987,-0.415669) *** FresnelRefraction *** Track (trackID 23, parentID 1) is processed with stopping code 2 ### pop requested out of 22 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736204,0.281538,-0.615419) - Old Polarization: (-0.67676,0.306267,-0.669475) - New Momentum Direction: (0.391111,0.382871,-0.836924) - New Polarization: (-0.920344,0.162705,-0.355661) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 22, parentID 1) is processed with stopping code 2 ### pop requested out of 21 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.737321,-0.646768,0.195063) Old Polarization: (-0.675543,-0.705914,0.212901) New Momentum Direction: (0.398202,-0.878225,0.264869) - New Polarization: (-0.917298,-0.38124,0.114981) + New Polarization: (0.917298,0.38124,-0.114981) *** FresnelRefraction *** Track (trackID 21, parentID 1) is processed with stopping code 2 ### pop requested out of 20 stacked tracks. @@ -3635,7 +2597,7 @@ Track (trackID 20, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.740964,0.644925,-0.187203) Old Polarization: (-0.671545,0.711592,-0.206555) New Momentum Direction: (0.420299,0.871416,-0.252947) - New Polarization: (-0.907386,0.403638,-0.117164) + New Polarization: (0.907386,-0.403638,0.117164) *** FresnelRefraction *** Track (trackID 19, parentID 1) is processed with stopping code 2 ### pop requested out of 18 stacked tracks. @@ -3643,7 +2605,7 @@ Track (trackID 19, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737884,0.56715,0.365881) Old Polarization: (-0.674928,0.620052,0.400009) New Momentum Direction: (0.401718,0.769527,0.496438) - New Polarization: (-0.915764,0.337568,0.217772) + New Polarization: (0.915764,-0.337568,-0.217772) *** FresnelRefraction *** Track (trackID 18, parentID 1) is processed with stopping code 2 ### pop requested out of 17 stacked tracks. @@ -3651,23 +2613,19 @@ Track (trackID 18, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.738501,-0.5424,0.400523) Old Polarization: (-0.674252,-0.594085,0.438688) New Momentum Direction: (0.405532,-0.735329,0.542987) - New Polarization: (-0.914081,-0.326229,0.240896) + New Polarization: (0.914081,0.326229,-0.240896) *** FresnelRefraction *** Track (trackID 17, parentID 1) is processed with stopping code 2 ### pop requested out of 16 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738612,0.283844,0.611461) - Old Polarization: (-0.67413,0.310994,0.669949) - New Momentum Direction: (0.406212,0.384748,0.828831) - New Polarization: (-0.913779,0.171036,0.368449) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 16, parentID 1) is processed with stopping code 2 ### pop requested out of 15 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.741808,0.333939,-0.581555) Old Polarization: (-0.670612,0.369391,-0.643295) New Momentum Direction: (0.425211,0.450702,-0.784897) - New Polarization: (-0.905094,0.211738,-0.368742) + New Polarization: (0.905094,-0.211738,0.368742) *** FresnelRefraction *** Track (trackID 15, parentID 1) is processed with stopping code 2 ### pop requested out of 14 stacked tracks. @@ -3675,7 +2633,7 @@ Track (trackID 15, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737694,-0.67508,-0.00864168) Old Polarization: (-0.675136,-0.737633,-0.00944243) New Momentum Direction: (0.400536,-0.916206,-0.0117283) - New Polarization: (-0.916281,-0.400503,-0.00512683) + New Polarization: (0.916281,0.400503,0.00512683) *** FresnelRefraction *** Track (trackID 14, parentID 1) is processed with stopping code 2 ### pop requested out of 13 stacked tracks. @@ -3683,72 +2641,58 @@ Track (trackID 14, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736718,-0.41983,-0.530085) Old Polarization: (-0.6762,-0.457403,-0.577525) New Momentum Direction: (0.394393,-0.57054,-0.720374) - New Polarization: (-0.918942,-0.244865,-0.309171) + New Polarization: (0.918942,0.244865,0.309171) *** FresnelRefraction *** Track (trackID 13, parentID 1) is processed with stopping code 2 ### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.743256,0.668761,0.0181507) - Old Polarization: (-0.669007,0.742983,0.0201652) - New Momentum Direction: (0.43347,0.900836,0.0244494) - New Polarization: (-0.901168,0.43331,0.0117604) - *** FresnelRefraction *** + +** Photon absorbed! ** Track (trackID 12, parentID 1) is processed with stopping code 2 ### pop requested out of 11 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.74113,-0.487578,-0.461513) Old Polarization: (-0.671362,-0.538248,-0.509473) New Momentum Direction: (0.42127,-0.658664,-0.623452) - New Polarization: (-0.906935,-0.305949,-0.289593) + New Polarization: (0.906935,0.305949,0.289593) *** FresnelRefraction *** Track (trackID 11, parentID 1) is processed with stopping code 2 ### pop requested out of 10 stacked tracks. - -** Photon absorbed! ** + Photon at Boundary! + Old Momentum Direction: (0.743162,0.663684,0.0850488) + Old Polarization: (-0.669112,0.737134,0.0944611) + New Momentum Direction: (0.432938,0.894112,0.114577) + New Polarization: (0.901424,-0.429427,-0.0550295) + *** FresnelRefraction *** Track (trackID 10, parentID 1) is processed with stopping code 2 ### pop requested out of 9 stacked tracks. Photon at Boundary! Old Momentum Direction: (0.736307,-0.671489,-0.0833978) Old Polarization: (-0.676648,-0.730693,-0.0907509) New Momentum Direction: (0.39177,-0.913048,-0.113399) - New Polarization: (-0.920063,-0.388783,-0.0482862) + New Polarization: (0.920063,0.388783,0.0482862) *** FresnelRefraction *** Track (trackID 9, parentID 1) is processed with stopping code 2 ### pop requested out of 8 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.737914,-0.67446,-0.0242381) -Old Polarization: (-0.674895,-0.737437,-0.0265013) -New Polarization: (-0.78797,-0.593751,-0.162981) -Polarization Change: (-0.78797,-0.593751,-0.162981) -New Momentum Direction: (0.408362,-0.702073,0.583382) -Momentum Change: (0.408362,-0.702073,0.583382) Photon at Boundary! - Old Momentum Direction: (0.408362,-0.702073,0.583382) - Old Polarization: (-0.78797,-0.593751,-0.162981) - New Momentum Direction: (0.408362,0.702073,0.583382) - New Polarization: (0.348579,0.470727,-0.810499) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.408362,0.702073,0.583382) - Old Polarization: (0.348579,0.470727,-0.810499) - New Momentum Direction: (-0.408362,0.702073,0.583382) - New Polarization: (0.348579,-0.470727,0.810499) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.408362,0.702073,0.583382) - Old Polarization: (0.348579,-0.470727,0.810499) - New Momentum Direction: (-0.408362,0.702073,-0.583382) - New Polarization: (-0.348579,0.470727,0.810499) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.737914,-0.67446,-0.0242381) + Old Polarization: (-0.674895,-0.737437,-0.0265013) + New Momentum Direction: (0.401903,-0.915091,-0.0328857) + New Polarization: (0.915682,0.401644,0.0144339) + *** FresnelRefraction *** Track (trackID 8, parentID 1) is processed with stopping code 2 ### pop requested out of 7 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.741243,-0.434066,-0.512002) +Old Polarization: (-0.671237,-0.479336,-0.5654) +New Polarization: (0.213706,0.516428,0.829236) +Polarization Change: (0.213706,0.516428,0.829236) +New Momentum Direction: (0.954797,0.0691218,-0.289112) +Momentum Change: (0.954797,0.0691218,-0.289112) Photon at Boundary! - Old Momentum Direction: (0.741243,-0.434066,-0.512002) - Old Polarization: (-0.671237,-0.479336,-0.5654) - New Momentum Direction: (0.421929,-0.586286,-0.691552) - New Polarization: (-0.906629,-0.272847,-0.321837) + Old Momentum Direction: (0.954797,0.0691218,-0.289112) + Old Polarization: (0.213706,0.516428,0.829236) + New Momentum Direction: (0.915857,0.0933617,-0.390498) + New Polarization: (0.289513,0.520305,0.803408) *** FresnelRefraction *** Track (trackID 7, parentID 1) is processed with stopping code 2 ### pop requested out of 6 stacked tracks. @@ -3756,7 +2700,7 @@ Track (trackID 7, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.736461,-0.644838,-0.204471) Old Polarization: (-0.67648,-0.702014,-0.222601) New Momentum Direction: (0.392756,-0.876627,-0.277969) - New Polarization: (-0.919643,-0.374386,-0.118714) + New Polarization: (0.919643,0.374386,0.118714) *** FresnelRefraction *** Track (trackID 6, parentID 1) is processed with stopping code 2 ### pop requested out of 5 stacked tracks. @@ -3764,7 +2708,7 @@ Track (trackID 6, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737214,-0.111409,-0.666411) Old Polarization: (-0.675659,-0.121559,-0.727123) New Momentum Direction: (0.397532,-0.1513,-0.905028) - New Polarization: (-0.917588,-0.0655487,-0.392091) + New Polarization: (0.917588,0.0655487,0.392091) *** FresnelRefraction *** Track (trackID 5, parentID 1) is processed with stopping code 2 ### pop requested out of 4 stacked tracks. @@ -3776,7 +2720,7 @@ Track (trackID 4, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.737215,-0.356406,-0.574012) Old Polarization: (-0.675659,-0.388876,-0.626307) New Momentum Direction: (0.397535,-0.484021,-0.779544) - New Polarization: (-0.917587,-0.209697,-0.33773) + New Polarization: (0.917587,0.209697,0.33773) *** FresnelRefraction *** Track (trackID 3, parentID 1) is processed with stopping code 2 ### pop requested out of 2 stacked tracks. @@ -3784,7070 +2728,19203 @@ Track (trackID 3, parentID 1) is processed with stopping code 2 Old Momentum Direction: (0.7364,-0.502803,0.452665) Old Polarization: (-0.676547,-0.547285,0.492711) New Momentum Direction: (0.392364,-0.683593,0.615427) - New Polarization: (-0.91981,-0.291601,0.262523) + New Polarization: (0.91981,0.291601,-0.262523) *** FresnelRefraction *** Track (trackID 2, parentID 1) is processed with stopping code 2 ### pop requested out of 1 stacked tracks. - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 308 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 285 - Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 139 + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 81 Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 448 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.457345,-0.731385,-0.505877) - Old Polarization: (0.0687006,-0.538097,0.840078) - New Momentum Direction: (0.622005,-0.373833,-0.68801) - New Polarization: (0.564071,0.823351,0.0625856) - *** FresnelRefraction *** -Track (trackID 877, parentID 1) is processed with stopping code 2 -### pop requested out of 447 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.108271,0.965435,-0.237092) - Old Polarization: (-0.611788,0.252691,0.749575) - New Momentum Direction: (0.146262,0.935961,-0.320287) - New Polarization: (0.215611,-0.346146,-0.913069) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.146262,0.935961,-0.320287) - Old Polarization: (0.215611,-0.346146,-0.913069) - New Momentum Direction: (0.108271,0.692845,-0.712911) - New Polarization: (0.416897,0.619377,0.665258) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.108271,0.692845,-0.712911) - Old Polarization: (0.416897,0.619377,0.665258) - New Momentum Direction: (0.146262,0.226067,-0.963069) - New Polarization: (0.382199,-0.910857,-0.155766) - *** FresnelRefraction *** -Track (trackID 876, parentID 1) is processed with stopping code 2 -### pop requested out of 446 stacked tracks. - -** Photon absorbed! ** -Track (trackID 875, parentID 1) is processed with stopping code 2 -### pop requested out of 445 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.460472,0.858017,-0.227534) - Old Polarization: (0.886041,0.45981,-0.0592074) - New Momentum Direction: (-0.624004,0.718015,-0.30834) - New Polarization: (-0.456966,-0.655385,-0.601376) - *** FresnelRefraction *** -Track (trackID 874, parentID 1) is processed with stopping code 2 -### pop requested out of 444 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.104688,-0.924875,-0.365577) - Old Polarization: (0.79755,-0.297673,0.524695) - New Momentum Direction: (-0.141432,-0.857946,-0.493888) - New Polarization: (0.279344,0.444041,-0.851349) - *** FresnelRefraction *** -Track (trackID 873, parentID 1) is processed with stopping code 2 -### pop requested out of 443 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.972565,0.0521103,0.226719) - Old Polarization: (-0.0980698,0.975595,0.196458) - New Momentum Direction: (0.949136,0.0705319,0.306866) - New Polarization: (-0.168133,0.937541,0.304544) - *** FresnelRefraction *** -Track (trackID 872, parentID 1) is processed with stopping code 2 -### pop requested out of 442 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.701541,-0.0921046,0.706652) - Old Polarization: (-0.640259,-0.353936,-0.68176) - New Momentum Direction: (-0.946452,-0.124259,0.297972) - New Polarization: (-0.267288,-0.216048,-0.939085) - *** FresnelRefraction *** -Track (trackID 871, parentID 1) is processed with stopping code 2 -### pop requested out of 441 stacked tracks. - -** Photon absorbed! ** -Track (trackID 870, parentID 1) is processed with stopping code 2 -### pop requested out of 440 stacked tracks. - -** Photon absorbed! ** -Track (trackID 869, parentID 1) is processed with stopping code 2 -### pop requested out of 439 stacked tracks. - -** Photon absorbed! ** -Track (trackID 868, parentID 1) is processed with stopping code 2 -### pop requested out of 438 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.59023,-0.769789,-0.243008) - Old Polarization: (-0.617692,0.624498,-0.477974) - New Momentum Direction: (-0.801415,-0.498862,-0.329957) - New Polarization: (-0.401493,0.857601,-0.321441) - *** FresnelRefraction *** -Track (trackID 867, parentID 1) is processed with stopping code 2 -### pop requested out of 437 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.525591,-0.84219,0.120288) - Old Polarization: (-0.84823,-0.529625,-0.00185559) - New Momentum Direction: (0.7143,-0.680479,0.163476) - New Polarization: (0.627235,0.72609,0.281726) - *** FresnelRefraction *** -Track (trackID 866, parentID 1) is processed with stopping code 2 -### pop requested out of 436 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.426983,0.897643,-0.10919) - Old Polarization: (-0.319143,0.0366137,-0.946999) - New Momentum Direction: (0.576292,0.803846,-0.147372) - New Polarization: (-0.157648,-0.0675952,-0.985179) - *** FresnelRefraction *** -Track (trackID 865, parentID 1) is processed with stopping code 2 -### pop requested out of 435 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.338205,-0.936534,-0.0923104) - Old Polarization: (0.862182,-0.347672,0.368466) - New Momentum Direction: (-0.459956,-0.879022,-0.125542) - New Polarization: (-0.86898,0.474675,-0.139848) - *** FresnelRefraction *** -Track (trackID 864, parentID 1) is processed with stopping code 2 -### pop requested out of 434 stacked tracks. - -** Photon absorbed! ** -Track (trackID 863, parentID 1) is processed with stopping code 2 -### pop requested out of 433 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.60352,-0.143146,0.784394) - Old Polarization: (-0.784244,-0.0710516,-0.616371) - New Momentum Direction: (-0.817166,-0.193819,0.542839) - New Polarization: (-0.544664,-0.0485482,-0.837248) - *** FresnelRefraction *** -Track (trackID 862, parentID 1) is processed with stopping code 2 -### pop requested out of 432 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.250736,0.964644,0.0811977) - Old Polarization: (-0.320397,0.161843,-0.933356) - New Momentum Direction: (0.338916,0.934393,0.109754) - New Polarization: (0.857426,-0.25875,-0.444824) - *** FresnelRefraction *** -Track (trackID 861, parentID 1) is processed with stopping code 2 -### pop requested out of 431 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.241155,-0.18606,-0.952484) - Old Polarization: (0.326919,0.908514,-0.260242) - New Momentum Direction: (-0.241155,-0.18606,0.952484) - New Polarization: (-0.198705,-0.951191,-0.236117) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.241155,-0.18606,0.952484) - Old Polarization: (-0.198705,-0.951191,-0.236117) - New Momentum Direction: (-0.327503,-0.252681,0.910436) - New Polarization: (-0.306488,-0.883064,-0.355334) - *** FresnelRefraction *** -Track (trackID 860, parentID 1) is processed with stopping code 2 -### pop requested out of 430 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.700349,0.644298,0.307233) - Old Polarization: (0.354899,-0.0591429,0.933032) - New Momentum Direction: (0.700349,0.644298,0.307233) - New Polarization: (0.230412,0.20332,-0.951615) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.700349,0.644298,0.307233) - Old Polarization: (0.230412,0.20332,-0.951615) - New Momentum Direction: (0.700349,-0.644298,0.307233) - New Polarization: (-0.230412,0.20332,0.951615) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.700349,-0.644298,0.307233) - Old Polarization: (-0.230412,0.20332,0.951615) - New Momentum Direction: (0.700349,-0.644298,-0.307233) - New Polarization: (0.230412,-0.20332,0.951615) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.700349,-0.644298,-0.307233) - Old Polarization: (0.230412,-0.20332,0.951615) - New Momentum Direction: (0.250425,-0.873868,-0.416704) - New Polarization: (-0.455956,-0.486152,0.745493) - *** FresnelRefraction *** -Track (trackID 859, parentID 1) is processed with stopping code 2 -### pop requested out of 429 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.466655,-0.852469,-0.235646) - Old Polarization: (-0.3802,0.0472089,-0.923699) - New Momentum Direction: (0.634087,-0.703853,-0.320194) - New Polarization: (-0.368117,0.089384,-0.925473) - *** FresnelRefraction *** -Track (trackID 858, parentID 1) is processed with stopping code 2 -### pop requested out of 428 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.642521,0.763965,-0.0593663) - Old Polarization: (-0.383028,0.253105,-0.888385) - New Momentum Direction: (0.867525,0.490892,-0.0801558) - New Polarization: (0.177479,-0.456048,-0.872079) - *** FresnelRefraction *** -Track (trackID 857, parentID 1) is processed with stopping code 2 -### pop requested out of 427 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.887216,-0.327305,0.325145) - Old Polarization: (-0.0945161,-0.818763,-0.566298) - New Momentum Direction: (0.783047,-0.441248,0.438336) - New Polarization: (-0.171819,-0.830802,-0.529383) - *** FresnelRefraction *** -Track (trackID 856, parentID 1) is processed with stopping code 2 -### pop requested out of 426 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.928283,-0.371262,-0.0213366) - Old Polarization: (0.14273,-0.302718,-0.942332) - New Momentum Direction: (-0.86296,-0.504439,-0.0289903) - New Polarization: (0.250557,-0.377401,-0.89151) - *** FresnelRefraction *** -Track (trackID 855, parentID 1) is processed with stopping code 2 -### pop requested out of 425 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.332338,-0.400039,-0.85412) - Old Polarization: (-0.638743,-0.761767,0.10825) - New Momentum Direction: (0.447752,-0.538965,-0.713467) - New Polarization: (-0.609111,-0.767998,0.197898) - *** FresnelRefraction *** -Track (trackID 854, parentID 1) is processed with stopping code 2 -### pop requested out of 424 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.786693,-0.557783,0.264562) - Old Polarization: (-0.350958,0.0515212,-0.934973) - New Momentum Direction: (-0.543918,-0.758177,0.359611) - New Polarization: (0.591264,-0.650369,-0.476893) - *** FresnelRefraction *** -Track (trackID 853, parentID 1) is processed with stopping code 2 -### pop requested out of 423 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.967608,0.231357,0.101036) - Old Polarization: (0.204423,0.483181,0.851321) - New Momentum Direction: (-0.939183,0.314716,0.13744) - New Polarization: (0.303396,0.572881,0.761418) - *** FresnelRefraction *** -Track (trackID 852, parentID 1) is processed with stopping code 2 -### pop requested out of 422 stacked tracks. - -** Photon absorbed! ** -Track (trackID 851, parentID 1) is processed with stopping code 2 -### pop requested out of 421 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.846932,0.331256,0.415905) - Old Polarization: (-0.222129,-0.931118,0.289272) - New Momentum Direction: (-0.694845,0.448044,0.562537) - New Polarization: (0.387923,-0.425148,0.81778) - *** FresnelRefraction *** -Track (trackID 850, parentID 1) is processed with stopping code 2 -### pop requested out of 420 stacked tracks. - -** Photon absorbed! ** -Track (trackID 849, parentID 1) is processed with stopping code 2 -### pop requested out of 419 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.096869,-0.973029,-0.20936) - Old Polarization: (0.436866,-0.147435,0.887362) - New Momentum Direction: (0.131226,-0.949917,-0.283615) - New Polarization: (0.900206,0.234007,-0.367247) - *** FresnelRefraction *** -Track (trackID 848, parentID 1) is processed with stopping code 2 -### pop requested out of 418 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.689889,0.524618,0.498827) - Old Polarization: (0.677411,0.710834,0.189288) - New Momentum Direction: (-0.20555,0.709222,0.674354) - New Polarization: (0.952264,0.303864,-0.0293147) - *** FresnelRefraction *** -Track (trackID 847, parentID 1) is processed with stopping code 2 -### pop requested out of 417 stacked tracks. - -** Photon absorbed! ** -Track (trackID 846, parentID 1) is processed with stopping code 2 -### pop requested out of 416 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.23179,0.781813,0.578827) - Old Polarization: (0.818207,0.478519,-0.31868) - New Momentum Direction: (-0.315282,0.529829,0.787324) - New Polarization: (0.29481,-0.733907,0.611938) - *** FresnelRefraction *** -Track (trackID 845, parentID 1) is processed with stopping code 2 -### pop requested out of 415 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.772773,-0.0351431,0.633709) - Old Polarization: (0.634422,-0.0714069,0.769682) - New Momentum Direction: (-0.507949,-0.0476959,0.860065) - New Polarization: (0.861217,-0.0479413,0.505971) - *** FresnelRefraction *** -Track (trackID 844, parentID 1) is processed with stopping code 2 -### pop requested out of 414 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.248842,0.94789,0.198954) - Old Polarization: (0.87284,-0.130438,-0.470252) - New Momentum Direction: (0.336534,0.902413,0.269066) - New Polarization: (0.900431,-0.224746,-0.372442) - *** FresnelRefraction *** -Track (trackID 843, parentID 1) is processed with stopping code 2 -### pop requested out of 413 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.809412,0.437209,-0.392046) - Old Polarization: (-0.138401,0.790826,0.596187) - New Momentum Direction: (-0.809412,0.437209,-0.392046) - New Polarization: (0.0037313,-0.663764,-0.747932) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.809412,0.437209,-0.392046) - Old Polarization: (0.0037313,-0.663764,-0.747932) - New Momentum Direction: (-0.809412,-0.437209,-0.392046) - New Polarization: (-0.0037313,-0.663764,0.747932) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.809412,-0.437209,-0.392046) - Old Polarization: (-0.0037313,-0.663764,0.747932) - New Momentum Direction: (-0.809412,-0.437209,0.392046) - New Polarization: (0.0037313,0.663764,0.747932) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.809412,-0.437209,0.392046) - Old Polarization: (0.0037313,0.663764,0.747932) - New Momentum Direction: (-0.607376,-0.591453,0.530357) - New Polarization: (0.00712669,0.663523,0.748122) - *** FresnelRefraction *** -Track (trackID 842, parentID 1) is processed with stopping code 2 -### pop requested out of 412 stacked tracks. - -** Photon absorbed! ** -Track (trackID 841, parentID 1) is processed with stopping code 2 -### pop requested out of 411 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.313291,-0.415757,-0.853812) - Old Polarization: (-0.522151,-0.675561,0.520553) - New Momentum Direction: (-0.42489,-0.563855,-0.708192) - New Polarization: (-0.432169,-0.561065,0.706) - *** FresnelRefraction *** -Track (trackID 840, parentID 1) is processed with stopping code 2 -### pop requested out of 410 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.134965,-0.0956274,-0.986225) - Old Polarization: (-0.921439,-0.378087,-0.0894389) - New Momentum Direction: (0.182976,-0.129644,-0.974532) - New Polarization: (0.0874291,-0.985194,0.147478) - *** FresnelRefraction *** -Track (trackID 839, parentID 1) is processed with stopping code 2 -### pop requested out of 409 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.46247,0.674324,-0.57568) -Old Polarization: (-0.839091,-0.123109,0.529877) -New Polarization: (-0.905373,-0.344036,-0.248875) -Polarization Change: (-0.905373,-0.344036,-0.248875) -New Momentum Direction: (-0.313034,0.144777,0.938642) -Momentum Change: (-0.313034,0.144777,0.938642) - Photon at Boundary! - Old Momentum Direction: (-0.313034,0.144777,0.938642) - Old Polarization: (-0.905373,-0.344036,-0.248875) - New Momentum Direction: (-0.425905,0.19698,0.883065) - New Polarization: (-0.897443,-0.215918,-0.384676) - *** FresnelRefraction *** -Track (trackID 838, parentID 1) is processed with stopping code 2 -### pop requested out of 408 stacked tracks. - -** Photon absorbed! ** -Track (trackID 837, parentID 1) is processed with stopping code 2 -### pop requested out of 407 stacked tracks. - -** Photon absorbed! ** -Track (trackID 836, parentID 1) is processed with stopping code 2 -### pop requested out of 406 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.732202,0.343571,-0.588081) - Old Polarization: (0.18369,0.731833,0.656261) - New Momentum Direction: (0.403002,0.461667,-0.790223) - New Polarization: (-0.347029,0.876049,0.334828) - *** FresnelRefraction *** -Track (trackID 835, parentID 1) is processed with stopping code 2 -### pop requested out of 405 stacked tracks. - -** Photon absorbed! ** -Track (trackID 834, parentID 1) is processed with stopping code 2 -### pop requested out of 404 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0489332,0.661093,-0.748706) - Old Polarization: (-0.977637,0.121797,0.17144) - New Momentum Direction: (-0.0664846,0.898214,-0.434501) - New Polarization: (-0.9395,0.0903023,0.330432) - *** FresnelRefraction *** -Track (trackID 833, parentID 1) is processed with stopping code 2 -### pop requested out of 403 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.871439,0.381316,0.308533) - Old Polarization: (0.309436,-0.0606789,0.948982) - New Momentum Direction: (-0.745796,0.51788,0.419032) - New Polarization: (0.498997,0.0175532,0.866426) - *** FresnelRefraction *** -Track (trackID 832, parentID 1) is processed with stopping code 2 -### pop requested out of 402 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.877101,0.165172,0.451011) - Old Polarization: (-0.332343,0.469213,-0.818161) - New Momentum Direction: (-0.762687,0.222417,0.607321) - New Polarization: (0.515173,0.776634,0.362541) - *** FresnelRefraction *** -Track (trackID 831, parentID 1) is processed with stopping code 2 -### pop requested out of 401 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.89842,0.439112,0.00478303) - Old Polarization: (0.295091,-0.595616,-0.747103) - New Momentum Direction: (0.80364,0.59508,0.00648192) - New Polarization: (-0.46478,0.634401,-0.61767) - *** FresnelRefraction *** -Track (trackID 830, parentID 1) is processed with stopping code 2 -### pop requested out of 400 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.127046,0.807929,0.575421) - Old Polarization: (-0.789124,-0.433801,0.434856) - New Momentum Direction: (-0.172106,0.602284,0.779509) - New Polarization: (-0.640783,-0.669466,0.375782) - *** FresnelRefraction *** -Track (trackID 829, parentID 1) is processed with stopping code 2 -### pop requested out of 399 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.369106,-0.501627,-0.782388) - Old Polarization: (0.898639,-0.407379,-0.162759) - New Momentum Direction: (-0.498107,-0.676943,-0.541884) - New Polarization: (0.635938,-0.710018,0.302419) - *** FresnelRefraction *** -Track (trackID 828, parentID 1) is processed with stopping code 2 -### pop requested out of 398 stacked tracks. - -** Photon absorbed! ** -Track (trackID 827, parentID 1) is processed with stopping code 2 -### pop requested out of 397 stacked tracks. - -** Photon absorbed! ** -Track (trackID 826, parentID 1) is processed with stopping code 2 -### pop requested out of 396 stacked tracks. - -** Photon absorbed! ** -Track (trackID 825, parentID 1) is processed with stopping code 2 -### pop requested out of 395 stacked tracks. - -** Photon absorbed! ** -Track (trackID 824, parentID 1) is processed with stopping code 2 -### pop requested out of 394 stacked tracks. - -** Photon absorbed! ** -Track (trackID 823, parentID 1) is processed with stopping code 2 -### pop requested out of 393 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.428059,0.846885,0.315518) - Old Polarization: (0.314998,0.187418,-0.930403) - New Momentum Direction: (0.582096,0.690705,0.429058) - New Polarization: (0.784321,-0.33776,-0.520345) - *** FresnelRefraction *** -Track (trackID 822, parentID 1) is processed with stopping code 2 -### pop requested out of 392 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.527735,0.849399,0.00422561) - Old Polarization: (-0.0384276,0.018905,0.999083) - New Momentum Direction: (0.714769,0.699337,0.00572321) - New Polarization: (0.0269153,-0.0356848,0.999001) - *** FresnelRefraction *** -Track (trackID 821, parentID 1) is processed with stopping code 2 -### pop requested out of 391 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.343225,-0.571247,0.745569) - Old Polarization: (-0.402561,0.806654,0.432729) - New Momentum Direction: (-0.463374,-0.771218,0.436472) - New Polarization: (-0.711809,0.0305466,-0.701708) - *** FresnelRefraction *** -Track (trackID 820, parentID 1) is processed with stopping code 2 -### pop requested out of 390 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.500016,0.801319,-0.328438) - Old Polarization: (-0.857132,0.403731,-0.319886) - New Momentum Direction: (0.677671,0.585337,-0.445132) - New Polarization: (0.0527978,-0.642487,-0.764475) - *** FresnelRefraction *** -Track (trackID 819, parentID 1) is processed with stopping code 2 -### pop requested out of 389 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.624857,-0.0559932,-0.778729) - Old Polarization: (-0.67315,0.466632,-0.573693) - New Momentum Direction: (0.842104,-0.0754606,-0.53401) - New Polarization: (0.534406,0.25004,0.807397) - *** FresnelRefraction *** -Track (trackID 818, parentID 1) is processed with stopping code 2 -### pop requested out of 388 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.147869,0.980235,0.131433) - Old Polarization: (-0.762936,0.197621,-0.615528) - New Momentum Direction: (0.201038,0.963147,0.178693) - New Polarization: (0.696639,-0.268816,0.665155) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.201038,0.963147,0.178693) - Old Polarization: (0.696639,-0.268816,0.665155) - New Momentum Direction: (0.693446,0.70842,0.131433) - New Polarization: (-0.476077,0.313584,0.821594) - *** FresnelRefraction *** - Photon at Boundary! - Old Momentum Direction: (0.693446,0.70842,0.131433) - Old Polarization: (-0.476077,0.313584,0.821594) - New Momentum Direction: (0.942789,0.281457,0.178693) - New Polarization: (0.0209836,-0.585019,0.810748) - *** FresnelRefraction *** -Track (trackID 817, parentID 1) is processed with stopping code 2 -### pop requested out of 387 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.473452,0.142259,0.869256) - Old Polarization: (0.283218,-0.909878,0.303166) - New Momentum Direction: (-0.643119,0.193239,0.740983) - New Polarization: (-0.716268,-0.494044,-0.492828) - *** FresnelRefraction *** -Track (trackID 816, parentID 1) is processed with stopping code 2 -### pop requested out of 386 stacked tracks. - -** Photon absorbed! ** -Track (trackID 815, parentID 1) is processed with stopping code 2 -### pop requested out of 385 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.498943,-0.398893,-0.769376) - Old Polarization: (0.182005,0.916206,-0.356988) - New Momentum Direction: (0.498943,-0.398893,0.769376) - New Polarization: (-0.691034,-0.718876,0.0754278) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.498943,-0.398893,0.769376) - Old Polarization: (-0.691034,-0.718876,0.0754278) - New Momentum Direction: (-0.498943,-0.398893,0.769376) - New Polarization: (-0.691034,0.718876,-0.0754278) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.498943,-0.398893,0.769376) - Old Polarization: (-0.691034,0.718876,-0.0754278) - New Momentum Direction: (-0.498943,0.398893,0.769376) - New Polarization: (0.691034,0.718876,0.0754278) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 814, parentID 1) is processed with stopping code 2 -### pop requested out of 384 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.142922,-0.981378,0.128334) - Old Polarization: (0.623267,-0.189968,-0.758585) - New Momentum Direction: (-0.192734,-0.965869,0.173062) - New Polarization: (-0.787826,0.257457,0.559505) - *** FresnelRefraction *** -Track (trackID 813, parentID 1) is processed with stopping code 2 -### pop requested out of 383 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.0771,-0.250901,0.964937) - Old Polarization: (0.508166,0.842563,0.178478) - New Momentum Direction: (0.104836,-0.341159,0.934141) - New Polarization: (0.807556,-0.518996,-0.280173) - *** FresnelRefraction *** -Track (trackID 812, parentID 1) is processed with stopping code 2 -### pop requested out of 382 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859825,0.438022,-0.262371) - Old Polarization: (-0.0494817,0.582924,0.811018) - New Momentum Direction: (-0.859825,0.438022,-0.262371) - New Polarization: (0.0135815,-0.494057,-0.869323) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.859825,0.438022,-0.262371) - Old Polarization: (0.0135815,-0.494057,-0.869323) - New Momentum Direction: (-0.859825,-0.438022,-0.262371) - New Polarization: (-0.0135815,-0.494057,0.869323) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.859825,-0.438022,-0.262371) - Old Polarization: (-0.0135815,-0.494057,0.869323) - New Momentum Direction: (-0.720981,-0.594468,-0.356081) - New Polarization: (0.025682,-0.536429,0.843554) - *** FresnelRefraction *** -Track (trackID 811, parentID 1) is processed with stopping code 2 -### pop requested out of 381 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.282534,-0.394151,-0.87454) - Old Polarization: (0.305817,0.827102,-0.47157) - New Momentum Direction: (-0.381532,-0.532259,-0.755734) - New Polarization: (-0.573,-0.505358,0.6452) - *** FresnelRefraction *** -Track (trackID 810, parentID 1) is processed with stopping code 2 -### pop requested out of 380 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.506876,0.638155,-0.579513) -Old Polarization: (0.86087,0.34004,-0.378518) -New Polarization: (0.404721,0.72633,-0.555559) -Polarization Change: (0.404721,0.72633,-0.555559) -New Momentum Direction: (-0.902837,0.413864,-0.116631) -Momentum Change: (-0.902837,0.413864,-0.116631) - Photon at Boundary! - Old Momentum Direction: (-0.902837,0.413864,-0.116631) - Old Polarization: (0.404721,0.72633,-0.555559) - New Momentum Direction: (-0.812759,0.560758,-0.158027) - New Polarization: (0.563763,0.688583,-0.456097) - *** FresnelRefraction *** -Track (trackID 809, parentID 1) is processed with stopping code 2 -### pop requested out of 379 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.118173,0.759961,-0.639136) - Old Polarization: (0.762858,0.342557,0.548363) - New Momentum Direction: (0.160239,0.472479,-0.866653) - New Polarization: (0.787598,-0.590439,-0.176271) - *** FresnelRefraction *** -Track (trackID 808, parentID 1) is processed with stopping code 2 -### pop requested out of 378 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.626053,0.227577,0.745833) - Old Polarization: (-0.463235,0.66086,-0.590489) - New Momentum Direction: (-0.851083,0.309378,0.424198) - New Polarization: (-0.262136,0.449648,-0.853874) - *** FresnelRefraction *** -Track (trackID 807, parentID 1) is processed with stopping code 2 -### pop requested out of 377 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.414777,-0.85487,0.3117) - Old Polarization: (0.114627,0.290738,0.949912) - New Momentum Direction: (-0.560311,-0.71327,0.421067) - New Polarization: (0.0476671,0.479752,0.876109) - *** FresnelRefraction *** -Track (trackID 806, parentID 1) is processed with stopping code 2 -### pop requested out of 376 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.146531,-0.372776,0.916279) - Old Polarization: (-0.88255,0.369115,0.291307) - New Momentum Direction: (0.197299,-0.50193,0.842104) - New Polarization: (-0.276391,-0.852623,-0.443443) - *** FresnelRefraction *** -Track (trackID 805, parentID 1) is processed with stopping code 2 -### pop requested out of 375 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.603608,-0.777111,-0.178201) - Old Polarization: (-0.795892,-0.574123,-0.192194) - New Momentum Direction: (0.811726,-0.532609,-0.239643) - New Polarization: (0.401715,0.807001,-0.432868) - *** FresnelRefraction *** -Track (trackID 804, parentID 1) is processed with stopping code 2 -### pop requested out of 374 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.520546,-0.574909,-0.631277) - Old Polarization: (0.388675,0.49875,-0.774713) - New Momentum Direction: (-0.520546,-0.574909,0.631277) - New Polarization: (-0.388675,-0.49875,-0.774713) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.520546,-0.574909,0.631277) - Old Polarization: (-0.388675,-0.49875,-0.774713) - New Momentum Direction: (-0.520546,0.574909,0.631277) - New Polarization: (0.388675,-0.49875,0.774713) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.520546,0.574909,0.631277) - Old Polarization: (0.388675,-0.49875,0.774713) - New Momentum Direction: (0.520546,0.574909,0.631277) - New Polarization: (0.388675,0.49875,-0.774713) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.520546,0.574909,0.631277) - Old Polarization: (0.388675,0.49875,-0.774713) - New Momentum Direction: (0.520546,0.574909,-0.631277) - New Polarization: (-0.388675,-0.49875,-0.774713) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.520546,0.574909,-0.631277) - Old Polarization: (-0.388675,-0.49875,-0.774713) - New Momentum Direction: (0.520546,-0.574909,-0.631277) - New Polarization: (0.388675,-0.49875,0.774713) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.520546,-0.574909,-0.631277) - Old Polarization: (0.388675,-0.49875,0.774713) - New Momentum Direction: (-0.520546,-0.574909,-0.631277) - New Polarization: (0.388675,0.49875,-0.774713) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 803, parentID 1) is processed with stopping code 2 -### pop requested out of 373 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.481025,0.0944977,-0.871599) - Old Polarization: (0.160174,-0.986913,-0.0186017) - New Momentum Direction: (0.65284,0.128251,-0.74656) - New Polarization: (0.231093,-0.9723,0.0350519) - *** FresnelRefraction *** -Track (trackID 802, parentID 1) is processed with stopping code 2 -### pop requested out of 372 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.668946,-0.263389,0.695081) - Old Polarization: (-0.742264,0.286313,-0.605862) - New Momentum Direction: (-0.903407,-0.355705,0.239435) - New Polarization: (-0.344876,0.270974,-0.898685) - *** FresnelRefraction *** -Track (trackID 801, parentID 1) is processed with stopping code 2 -### pop requested out of 371 stacked tracks. - -** Photon absorbed! ** -Track (trackID 800, parentID 1) is processed with stopping code 2 -### pop requested out of 370 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.591619,0.800558,0.0953591) - Old Polarization: (0.424071,-0.409603,0.807706) - New Momentum Direction: (0.796647,0.590648,0.128406) - New Polarization: (0.368433,-0.642914,0.671505) - *** FresnelRefraction *** -Track (trackID 799, parentID 1) is processed with stopping code 2 -### pop requested out of 369 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.69601,0.634032,0.337007) - Old Polarization: (0.654606,0.753167,-0.0650408) - New Momentum Direction: (-0.229408,0.859464,0.456831) - New Polarization: (0.935938,0.323631,-0.138866) - *** FresnelRefraction *** -Track (trackID 798, parentID 1) is processed with stopping code 2 -### pop requested out of 368 stacked tracks. - -** Photon absorbed! ** -Track (trackID 797, parentID 1) is processed with stopping code 2 ### pop requested out of 367 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.790198,0.326239,0.518801) - Old Polarization: (-0.380497,0.402451,-0.832619) - New Momentum Direction: (-0.553847,0.443228,0.704842) - New Polarization: (0.624761,0.780816,-8.07902e-05) + Old Momentum Direction: (0.0865354,-0.538753,0.838008) + Old Polarization: (-0.982945,-0.183177,-0.016262) + New Momentum Direction: (0.116865,-0.727581,0.675994) + New Polarization: (-0.990176,-0.137978,0.0226733) *** FresnelRefraction *** -Track (trackID 796, parentID 1) is processed with stopping code 2 -### pop requested out of 366 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.349434,-0.354727,-0.867217) - Old Polarization: (0.791484,-0.6071,-0.0705899) - New Momentum Direction: (-0.473296,-0.480465,-0.738339) - New Polarization: (0.597746,-0.790835,0.131454) - *** FresnelRefraction *** -Track (trackID 795, parentID 1) is processed with stopping code 2 -### pop requested out of 365 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0348413,-0.548548,0.835393) - Old Polarization: (0.579947,-0.691858,-0.43011) - New Momentum Direction: (-0.0472804,-0.744393,0.666066) - New Polarization: (0.455279,-0.609581,-0.648947) - *** FresnelRefraction *** -Track (trackID 794, parentID 1) is processed with stopping code 2 -### pop requested out of 364 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.17036,0.888464,0.426157) - Old Polarization: (0.960913,0.245568,-0.127834) - New Momentum Direction: (-0.23135,0.78202,0.578724) - New Polarization: (0.506755,-0.410923,0.757853) - *** FresnelRefraction *** -Track (trackID 793, parentID 1) is processed with stopping code 2 -### pop requested out of 363 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.543511,0.370091,-0.753411) - Old Polarization: (0.734524,0.224743,0.640285) - New Momentum Direction: (0.735784,0.501014,-0.455639) - New Polarization: (0.460987,0.122332,0.878934) - *** FresnelRefraction *** -Track (trackID 792, parentID 1) is processed with stopping code 2 -### pop requested out of 362 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.986493,0.131582,0.0975599) - Old Polarization: (0.142468,0.395301,0.907436) - New Momentum Direction: (-0.975171,0.17789,0.131894) - New Polarization: (0.204249,0.492342,0.846098) - *** FresnelRefraction *** -Track (trackID 791, parentID 1) is processed with stopping code 2 -### pop requested out of 361 stacked tracks. - -** Photon absorbed! ** -Track (trackID 790, parentID 1) is processed with stopping code 2 -### pop requested out of 360 stacked tracks. - -** Photon absorbed! ** -Track (trackID 789, parentID 1) is processed with stopping code 2 -### pop requested out of 359 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.996265,-0.0844579,-0.0179789) - Old Polarization: (0.0802524,0.982472,-0.168248) - New Momentum Direction: (0.99308,-0.114863,-0.0244514) - New Polarization: (-0.112733,-0.874068,-0.472543) - *** FresnelRefraction *** -Track (trackID 788, parentID 1) is processed with stopping code 2 -### pop requested out of 358 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.285487,0.277063,0.91746) - Old Polarization: (-0.365949,-0.916279,0.162833) - New Momentum Direction: (-0.386798,0.375383,0.842303) - New Polarization: (-0.90995,-0.303537,-0.282587) - *** FresnelRefraction *** -Track (trackID 787, parentID 1) is processed with stopping code 2 -### pop requested out of 357 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.0593988,0.0935558,0.993841) - Old Polarization: (0.579033,0.81422,-0.0420401) - New Momentum Direction: (-0.0807494,0.127184,0.988587) - New Polarization: (0.479132,0.874669,-0.073392) - *** FresnelRefraction *** -Track (trackID 786, parentID 1) is processed with stopping code 2 -### pop requested out of 356 stacked tracks. - -** Photon absorbed! ** -Track (trackID 785, parentID 1) is processed with stopping code 2 -### pop requested out of 355 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.601525,0.753841,0.26437) - Old Polarization: (0.772874,-0.465458,-0.431294) - New Momentum Direction: (0.816388,0.452517,0.358803) - New Polarization: (0.56886,-0.737219,-0.364563) - *** FresnelRefraction *** -Track (trackID 784, parentID 1) is processed with stopping code 2 -### pop requested out of 354 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.972417,0.225036,0.061353) - Old Polarization: (0.0631367,-0.000731506,-0.998005) - New Momentum Direction: (0.948881,0.30452,0.0830233) - New Polarization: (-0.112608,0.572333,-0.812253) - *** FresnelRefraction *** -Track (trackID 783, parentID 1) is processed with stopping code 2 -### pop requested out of 353 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.962397,0.0156038,-0.271198) - Old Polarization: (0.114399,-0.928783,0.352526) - New Momentum Direction: (0.929294,0.0212155,-0.368731) - New Polarization: (-0.197914,-0.81431,-0.545646) - *** FresnelRefraction *** -Track (trackID 782, parentID 1) is processed with stopping code 2 -### pop requested out of 352 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.189694,0.869567,-0.455928) - Old Polarization: (0.720425,0.192225,0.666361) - New Momentum Direction: (0.257824,0.741299,-0.61968) - New Polarization: (0.940143,-0.340402,-0.0160532) - *** FresnelRefraction *** -Track (trackID 781, parentID 1) is processed with stopping code 2 -### pop requested out of 351 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.114434,0.515811,-0.849025) - Old Polarization: (-0.520252,0.696958,0.493546) - New Momentum Direction: (-0.154379,0.695864,-0.701385) - New Polarization: (-0.405626,0.602671,0.687208) - *** FresnelRefraction *** -Track (trackID 780, parentID 1) is processed with stopping code 2 -### pop requested out of 350 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.574583,0.695367,-0.431646) - Old Polarization: (0.37766,-0.693155,-0.613929) - New Momentum Direction: (0.780559,0.216526,-0.586382) - New Polarization: (0.0689743,-0.962195,-0.263483) - *** FresnelRefraction *** -Track (trackID 779, parentID 1) is processed with stopping code 2 -### pop requested out of 349 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.595402,0.0754247,0.79988) - Old Polarization: (-0.800905,-0.134551,-0.583478) - New Momentum Direction: (-0.801651,0.101552,0.589103) - New Polarization: (-0.597254,-0.0942718,-0.796493) - *** FresnelRefraction *** -Track (trackID 778, parentID 1) is processed with stopping code 2 -### pop requested out of 348 stacked tracks. - -** Photon absorbed! ** -Track (trackID 777, parentID 1) is processed with stopping code 2 -### pop requested out of 347 stacked tracks. - -** Photon absorbed! ** -Track (trackID 776, parentID 1) is processed with stopping code 2 -### pop requested out of 346 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.569764,0.54754,0.612837) - Old Polarization: (0.675796,-0.73649,0.0297192) - New Momentum Direction: (0.569764,0.54754,-0.612837) - New Polarization: (-0.675796,0.73649,0.0297192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.569764,0.54754,-0.612837) - Old Polarization: (-0.675796,0.73649,0.0297192) - New Momentum Direction: (-0.569764,0.54754,-0.612837) - New Polarization: (-0.675796,-0.73649,-0.0297192) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.569764,0.54754,-0.612837) - Old Polarization: (-0.675796,-0.73649,-0.0297192) - New Momentum Direction: (-0.569764,-0.54754,-0.612837) - New Polarization: (0.675796,-0.73649,0.0297192) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 775, parentID 1) is processed with stopping code 2 -### pop requested out of 345 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.883271,0.44941,0.133656) - Old Polarization: (-0.35031,-0.822022,0.448957) - New Momentum Direction: (-0.774638,0.606166,0.180276) - New Polarization: (0.531003,0.46862,0.705996) - *** FresnelRefraction *** -Track (trackID 774, parentID 1) is processed with stopping code 2 -### pop requested out of 344 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.621675,0.630395,0.46489) - Old Polarization: (-0.698947,-0.714364,0.034016) - New Momentum Direction: (-0.621675,-0.630395,0.46489) - New Polarization: (0.698947,-0.714364,-0.034016) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.621675,-0.630395,0.46489) - Old Polarization: (0.698947,-0.714364,-0.034016) - New Momentum Direction: (0.621675,-0.630395,0.46489) - New Polarization: (0.698947,0.714364,0.034016) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.621675,-0.630395,0.46489) - Old Polarization: (0.698947,0.714364,0.034016) - New Momentum Direction: (0.621675,-0.630395,-0.46489) - New Polarization: (-0.698947,-0.714364,0.034016) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.621675,-0.630395,-0.46489) - Old Polarization: (-0.698947,-0.714364,0.034016) - New Momentum Direction: (0.621675,0.630395,-0.46489) - New Polarization: (0.698947,-0.714364,-0.034016) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.621675,0.630395,-0.46489) - Old Polarization: (0.698947,-0.714364,-0.034016) - New Momentum Direction: (-0.621675,0.630395,-0.46489) - New Polarization: (0.698947,0.714364,0.034016) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 773, parentID 1) is processed with stopping code 2 -### pop requested out of 343 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.966144,-0.0347175,0.255656) - Old Polarization: (0.235549,0.285619,0.928945) - New Momentum Direction: (-0.937233,-0.0469225,0.345533) - New Polarization: (0.331221,0.19003,0.924219) - *** FresnelRefraction *** -Track (trackID 772, parentID 1) is processed with stopping code 2 -### pop requested out of 342 stacked tracks. - -** Photon absorbed! ** -Track (trackID 771, parentID 1) is processed with stopping code 2 -### pop requested out of 341 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.958704,0.131797,0.252025) - Old Polarization: (-0.244901,-0.0679921,0.967161) - New Momentum Direction: (0.922318,0.179078,0.342434) - New Polarization: (-0.354743,0.0409263,0.934068) - *** FresnelRefraction *** -Track (trackID 770, parentID 1) is processed with stopping code 2 -### pop requested out of 340 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.345019,-0.870447,-0.351119) - Old Polarization: (0.31485,0.459747,-0.830363) - New Momentum Direction: (0.467499,-0.745046,-0.475764) - New Polarization: (0.313681,0.64299,-0.69869) - *** FresnelRefraction *** -Track (trackID 769, parentID 1) is processed with stopping code 2 -### pop requested out of 339 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.912158,0.391409,-0.121522) - Old Polarization: (0.00997019,-0.27523,-0.961327) - New Momentum Direction: (-0.832436,0.529202,-0.164303) - New Polarization: (0.018472,-0.269844,-0.962727) - *** FresnelRefraction *** -Track (trackID 768, parentID 1) is processed with stopping code 2 -### pop requested out of 338 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.334891,-0.741129,-0.581873) - Old Polarization: (0.918484,-0.118924,-0.377152) - New Momentum Direction: (-0.452763,-0.419701,-0.786674) - New Polarization: (0.784407,0.23199,-0.575228) - *** FresnelRefraction *** -Track (trackID 767, parentID 1) is processed with stopping code 2 -### pop requested out of 337 stacked tracks. - -** Photon absorbed! ** -Track (trackID 766, parentID 1) is processed with stopping code 2 -### pop requested out of 336 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.120623,0.888424,0.442891) - Old Polarization: (0.984613,0.0502473,0.167369) - New Momentum Direction: (-0.163703,0.782252,0.601068) - New Polarization: (0.922884,-0.0938347,0.373471) - *** FresnelRefraction *** -Track (trackID 765, parentID 1) is processed with stopping code 2 -### pop requested out of 335 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.211001,-0.959465,0.186831) - Old Polarization: (0.277185,-0.124558,-0.952708) - New Momentum Direction: (0.284453,-0.925013,0.251869) - New Polarization: (0.935907,0.211003,-0.282055) - *** FresnelRefraction *** -Track (trackID 764, parentID 1) is processed with stopping code 2 -### pop requested out of 334 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.433711,-0.320733,-0.842036) - Old Polarization: (-0.788409,0.587517,0.182303) - New Momentum Direction: (-0.587316,-0.434325,-0.682951) - New Polarization: (-0.777705,0.536521,0.327598) - *** FresnelRefraction *** -Track (trackID 763, parentID 1) is processed with stopping code 2 -### pop requested out of 333 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.213565,0.940387,-0.264693) - Old Polarization: (-0.961087,-0.153648,0.229572) - New Momentum Direction: (-0.290056,0.886923,-0.359494) - New Polarization: (-0.956909,-0.263335,0.122392) - *** FresnelRefraction *** -Track (trackID 762, parentID 1) is processed with stopping code 2 -### pop requested out of 332 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.346081,-0.821575,0.453036) - Old Polarization: (0.858506,0.472076,0.200279) - New Momentum Direction: (0.466195,-0.640494,0.61027) - New Polarization: (0.696412,0.691109,0.193337) - *** FresnelRefraction *** -Track (trackID 761, parentID 1) is processed with stopping code 2 -### pop requested out of 331 stacked tracks. - -** Photon absorbed! ** -Track (trackID 760, parentID 1) is processed with stopping code 2 -### pop requested out of 330 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.626743,0.0756336,0.775547) - Old Polarization: (-0.606723,0.671896,0.424786) - New Momentum Direction: (0.850454,0.10263,0.515941) - New Polarization: (0.334727,0.651039,-0.681253) - *** FresnelRefraction *** -Track (trackID 759, parentID 1) is processed with stopping code 2 -### pop requested out of 329 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.946458,0.320683,0.0371342) - Old Polarization: (0.0766645,-0.111534,-0.990799) - New Momentum Direction: (0.898646,0.435762,0.0504599) - New Polarization: (-0.139282,0.392509,-0.909141) - *** FresnelRefraction *** -Track (trackID 758, parentID 1) is processed with stopping code 2 -### pop requested out of 328 stacked tracks. - -** Photon absorbed! ** -Track (trackID 757, parentID 1) is processed with stopping code 2 -### pop requested out of 327 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.914008,-0.405496,0.0127105) - Old Polarization: (0.0597881,-0.103645,0.992816) - New Momentum Direction: (0.914008,-0.405496,0.0127105) - New Polarization: (-0.033072,-0.105698,-0.993848) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.914008,-0.405496,0.0127105) - Old Polarization: (-0.033072,-0.105698,-0.993848) - New Momentum Direction: (0.914008,0.405496,0.0127105) - New Polarization: (0.033072,-0.105698,0.993848) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.914008,0.405496,0.0127105) - Old Polarization: (0.033072,-0.105698,0.993848) - New Momentum Direction: (0.836117,0.548281,0.0171861) - New Polarization: (-0.0610966,0.0619446,0.996208) - *** FresnelRefraction *** -Track (trackID 756, parentID 1) is processed with stopping code 2 -### pop requested out of 326 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.162459,0.283278,-0.945177) -Old Polarization: (-0.355473,0.910385,0.211751) -New Polarization: (-0.0841668,0.0485437,0.995269) -Polarization Change: (-0.0841668,0.0485437,0.995269) -New Momentum Direction: (-0.345825,0.935308,-0.0748645) -Momentum Change: (-0.345825,0.935308,-0.0748645) - Photon at Boundary! - Old Momentum Direction: (-0.345825,0.935308,-0.0748645) - Old Polarization: (-0.0841668,0.0485437,0.995269) - New Momentum Direction: (-0.345825,-0.935308,-0.0748645) - New Polarization: (0.127974,0.0320253,-0.99126) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.345825,-0.935308,-0.0748645) - Old Polarization: (0.127974,0.0320253,-0.99126) - New Momentum Direction: (-0.345825,-0.935308,0.0748645) - New Polarization: (-0.127974,-0.0320253,-0.99126) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.345825,-0.935308,0.0748645) - Old Polarization: (-0.127974,-0.0320253,-0.99126) - New Momentum Direction: (-0.470192,-0.876675,0.101788) - New Polarization: (-0.316052,0.0595726,-0.94687) - *** FresnelRefraction *** -Track (trackID 755, parentID 1) is processed with stopping code 2 -### pop requested out of 325 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.510067,0.80111,-0.313136) - Old Polarization: (0.810895,0.569278,0.135544) - New Momentum Direction: (-0.692241,0.583265,-0.424975) - New Polarization: (-0.368311,-0.791953,-0.486989) - *** FresnelRefraction *** -Track (trackID 754, parentID 1) is processed with stopping code 2 -### pop requested out of 324 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.377097,0.55783,-0.73934) - Old Polarization: (0.08304,-0.815422,-0.57288) - New Momentum Direction: (0.511732,0.756993,-0.406316) - New Polarization: (0.528726,0.0952866,0.843427) - *** FresnelRefraction *** -Track (trackID 753, parentID 1) is processed with stopping code 2 -### pop requested out of 323 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.669293,0.738481,0.0818074) - Old Polarization: (-0.633411,0.509555,0.582361) - New Momentum Direction: (0.910477,0.398305,0.111287) - New Polarization: (0.280815,-0.792975,0.540678) - *** FresnelRefraction *** -Track (trackID 752, parentID 1) is processed with stopping code 2 -### pop requested out of 322 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.192016,0.768553,-0.610292) - Old Polarization: (-0.962582,-0.026323,0.269708) - New Momentum Direction: (-0.192016,-0.768553,-0.610292) - New Polarization: (0.95559,-0.00476021,-0.294663) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.192016,-0.768553,-0.610292) - Old Polarization: (0.95559,-0.00476021,-0.294663) - New Momentum Direction: (-0.192016,-0.768553,0.610292) - New Polarization: (-0.95559,0.00476021,-0.294663) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.192016,-0.768553,0.610292) - Old Polarization: (-0.95559,0.00476021,-0.294663) - New Momentum Direction: (-0.192016,0.768553,0.610292) - New Polarization: (0.954209,0.000860146,0.29914) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.192016,0.768553,0.610292) - Old Polarization: (0.954209,0.000860146,0.29914) - New Momentum Direction: (-0.192016,0.768553,-0.610292) - New Polarization: (-0.954209,-0.000860146,0.29914) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.192016,0.768553,-0.610292) - Old Polarization: (-0.954209,-0.000860146,0.29914) - New Momentum Direction: (0.192016,0.768553,-0.610292) - New Polarization: (-0.954209,0.000860146,-0.29914) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.192016,0.768553,-0.610292) - Old Polarization: (-0.954209,0.000860146,-0.29914) - New Momentum Direction: (0.259881,0.500202,-0.82599) - New Polarization: (-0.953607,-0.00167898,-0.30105) - *** FresnelRefraction *** -Track (trackID 751, parentID 1) is processed with stopping code 2 -### pop requested out of 321 stacked tracks. - -** Photon absorbed! ** -Track (trackID 750, parentID 1) is processed with stopping code 2 -### pop requested out of 320 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.785618,-0.14265,-0.602043) - Old Polarization: (0.0199088,0.966726,-0.255039) - New Momentum Direction: (0.785618,-0.14265,-0.602043) - New Polarization: (0.00174296,-0.972544,0.232712) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.785618,-0.14265,-0.602043) - Old Polarization: (0.00174296,-0.972544,0.232712) - New Momentum Direction: (0.785618,-0.14265,0.602043) - New Polarization: (-0.00174296,0.972544,0.232712) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.785618,-0.14265,0.602043) - Old Polarization: (-0.00174296,0.972544,0.232712) - New Momentum Direction: (0.551315,-0.192355,0.81182) - New Polarization: (-0.00333843,0.972542,0.232705) - *** FresnelRefraction *** -Track (trackID 749, parentID 1) is processed with stopping code 2 -### pop requested out of 319 stacked tracks. - -** Photon absorbed! ** -Track (trackID 748, parentID 1) is processed with stopping code 2 -### pop requested out of 318 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.40476,-0.717229,0.567232) - Old Polarization: (-0.356937,0.447184,0.820136) - New Momentum Direction: (0.548038,-0.331356,0.768022) - New Polarization: (-0.353614,0.740322,0.571735) - *** FresnelRefraction *** -Track (trackID 747, parentID 1) is processed with stopping code 2 -### pop requested out of 317 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.0492945,0.903296,0.426177) -Old Polarization: (-0.863067,0.253275,-0.436997) -New Polarization: (0.868735,0.150274,0.471929) -Polarization Change: (0.868735,0.150274,0.471929) -New Momentum Direction: (0.165398,-0.986181,0.0095562) -Momentum Change: (0.165398,-0.986181,0.0095562) - -** Photon absorbed! ** -Track (trackID 746, parentID 1) is processed with stopping code 2 -### pop requested out of 316 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.905036,0.424356,-0.028831) - Old Polarization: (-0.343237,-0.7687,-0.539713) - New Momentum Direction: (-0.819163,0.572242,-0.0388785) - New Polarization: (0.505787,0.688742,-0.519436) - *** FresnelRefraction *** -Track (trackID 745, parentID 1) is processed with stopping code 2 -### pop requested out of 315 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.498024,-0.65468,0.568653) - Old Polarization: (0.442987,0.755815,0.48219) - New Momentum Direction: (0.498024,0.65468,0.568653) - New Polarization: (-0.442987,0.755815,-0.48219) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.498024,0.65468,0.568653) - Old Polarization: (-0.442987,0.755815,-0.48219) - New Momentum Direction: (0.498024,0.65468,-0.568653) - New Polarization: (0.442987,-0.755815,-0.48219) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.498024,0.65468,-0.568653) - Old Polarization: (0.442987,-0.755815,-0.48219) - New Momentum Direction: (-0.498024,0.65468,-0.568653) - New Polarization: (0.442987,0.755815,0.48219) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.498024,0.65468,-0.568653) - Old Polarization: (0.442987,0.755815,0.48219) - New Momentum Direction: (-0.498024,-0.65468,-0.568653) - New Polarization: (-0.442987,0.755815,-0.48219) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 744, parentID 1) is processed with stopping code 2 -### pop requested out of 314 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.263188,0.608851,0.748353) - Old Polarization: (0.847629,-0.2245,0.480754) - New Momentum Direction: (-0.35458,0.820273,0.448804) - New Polarization: (0.3541,0.562042,-0.747477) - *** FresnelRefraction *** -Track (trackID 743, parentID 1) is processed with stopping code 2 -### pop requested out of 313 stacked tracks. - -** Photon absorbed! ** -Track (trackID 742, parentID 1) is processed with stopping code 2 -### pop requested out of 312 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.88456,0.412284,0.218118) - Old Polarization: (0.11439,0.2616,-0.958374) - New Momentum Direction: (0.778685,0.554585,0.293402) - New Polarization: (-0.205536,0.667312,-0.715856) - *** FresnelRefraction *** -Track (trackID 741, parentID 1) is processed with stopping code 2 -### pop requested out of 311 stacked tracks. -Scattering Photon! -Old Momentum Direction: (-0.45992,0.462858,-0.757783) -Old Polarization: (0.64499,0.76068,0.0731646) -New Polarization: (0.274174,0.778544,-0.564533) -Polarization Change: (0.274174,0.778544,-0.564533) -New Momentum Direction: (-0.649513,-0.282995,-0.705724) -Momentum Change: (-0.649513,-0.282995,-0.705724) - Photon at Boundary! - Old Momentum Direction: (-0.649513,-0.282995,-0.705724) - Old Polarization: (0.274174,0.778544,-0.564533) - New Momentum Direction: (-0.882282,-0.384414,-0.27167) - New Polarization: (-0.398937,0.304298,0.865016) - *** FresnelRefraction *** -Track (trackID 740, parentID 1) is processed with stopping code 2 -### pop requested out of 310 stacked tracks. - -** Photon absorbed! ** -Track (trackID 739, parentID 1) is processed with stopping code 2 -### pop requested out of 309 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.648115,0.430007,0.628523) - Old Polarization: (-0.726342,0.101021,0.679869) - New Momentum Direction: (-0.648115,0.430007,0.628523) - New Polarization: (-0.726342,-0.101021,-0.679869) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648115,0.430007,0.628523) - Old Polarization: (-0.726342,-0.101021,-0.679869) - New Momentum Direction: (-0.648115,0.430007,-0.628523) - New Polarization: (0.726342,0.101021,-0.679869) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648115,0.430007,-0.628523) - Old Polarization: (0.726342,0.101021,-0.679869) - New Momentum Direction: (-0.648115,-0.430007,-0.628523) - New Polarization: (-0.726342,0.101021,0.679869) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648115,-0.430007,-0.628523) - Old Polarization: (-0.726342,0.101021,0.679869) - New Momentum Direction: (0.648115,-0.430007,-0.628523) - New Polarization: (-0.726342,-0.101021,-0.679869) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.648115,-0.430007,-0.628523) - Old Polarization: (-0.726342,-0.101021,-0.679869) - New Momentum Direction: (0.648115,-0.430007,0.628523) - New Polarization: (0.726342,0.101021,-0.679869) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 738, parentID 1) is processed with stopping code 2 -### pop requested out of 308 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.850407,-0.355974,0.387414) - Old Polarization: (-0.505203,-0.75809,0.412395) - New Momentum Direction: (0.699031,-0.483828,0.52656) - New Polarization: (-0.700155,-0.612797,0.366419) - *** FresnelRefraction *** -Track (trackID 737, parentID 1) is processed with stopping code 2 -### pop requested out of 307 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.550544,0.830209,-0.0874877) - Old Polarization: (-0.833799,0.541704,-0.106475) - New Momentum Direction: (0.745446,0.655955,-0.11846) - New Polarization: (0.61155,-0.743733,-0.269941) - *** FresnelRefraction *** -Track (trackID 736, parentID 1) is processed with stopping code 2 -### pop requested out of 306 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.584035,0.695143,-0.419142) - Old Polarization: (-0.795425,0.387135,-0.466289) - New Momentum Direction: (0.584035,-0.695143,-0.419142) - New Polarization: (0.318148,-0.279016,0.906053) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.584035,-0.695143,-0.419142) - Old Polarization: (0.318148,-0.279016,0.906053) - New Momentum Direction: (-0.584035,-0.695143,-0.419142) - New Polarization: (0.318148,0.279016,-0.906053) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.584035,-0.695143,-0.419142) - Old Polarization: (0.318148,0.279016,-0.906053) - New Momentum Direction: (-0.584035,-0.695143,0.419142) - New Polarization: (-0.318148,-0.279016,-0.906053) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 735, parentID 1) is processed with stopping code 2 -### pop requested out of 305 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.842575,-0.325941,0.428753) - Old Polarization: (-0.51366,-0.725672,0.457771) - New Momentum Direction: (0.681507,-0.442884,0.582582) - New Polarization: (-0.714014,-0.576909,0.396685) - *** FresnelRefraction *** -Track (trackID 734, parentID 1) is processed with stopping code 2 -### pop requested out of 304 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.613923,0.560262,0.556062) - Old Polarization: (-0.763534,0.242741,0.598408) - New Momentum Direction: (-0.613923,0.560262,0.556062) - New Polarization: (-0.763534,-0.242741,-0.598408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613923,0.560262,0.556062) - Old Polarization: (-0.763534,-0.242741,-0.598408) - New Momentum Direction: (-0.613923,-0.560262,0.556062) - New Polarization: (0.763534,-0.242741,0.598408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613923,-0.560262,0.556062) - Old Polarization: (0.763534,-0.242741,0.598408) - New Momentum Direction: (-0.613923,-0.560262,-0.556062) - New Polarization: (-0.763534,0.242741,0.598408) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 733, parentID 1) is processed with stopping code 2 -### pop requested out of 303 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.659552,0.41128,-0.629158) - Old Polarization: (-0.713376,0.0787806,-0.696339) - New Momentum Direction: (-0.659552,0.41128,-0.629158) - New Polarization: (-0.713376,-0.0787806,0.696339) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659552,0.41128,-0.629158) - Old Polarization: (-0.713376,-0.0787806,0.696339) - New Momentum Direction: (-0.659552,0.41128,0.629158) - New Polarization: (0.713376,0.0787806,0.696339) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659552,0.41128,0.629158) - Old Polarization: (0.713376,0.0787806,0.696339) - New Momentum Direction: (-0.659552,-0.41128,0.629158) - New Polarization: (-0.713376,0.0787806,-0.696339) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 732, parentID 1) is processed with stopping code 2 -### pop requested out of 302 stacked tracks. - -** Photon absorbed! ** -Track (trackID 731, parentID 1) is processed with stopping code 2 -### pop requested out of 301 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.73394,0.139234,-0.66479) - Old Polarization: (-0.632021,-0.218469,-0.743519) - New Momentum Direction: (0.395379,0.18829,-0.899012) - New Polarization: (-0.887644,-0.173308,-0.426677) - *** FresnelRefraction *** -Track (trackID 730, parentID 1) is processed with stopping code 2 -### pop requested out of 300 stacked tracks. - -** Photon absorbed! ** -Track (trackID 729, parentID 1) is processed with stopping code 2 -### pop requested out of 299 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.656412,0.432104,-0.618392) - Old Polarization: (-0.717225,0.103296,-0.689143) - New Momentum Direction: (-0.656412,0.432104,-0.618392) - New Polarization: (-0.717225,-0.103296,0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.656412,0.432104,-0.618392) - Old Polarization: (-0.717225,-0.103296,0.689143) - New Momentum Direction: (-0.656412,0.432104,0.618392) - New Polarization: (0.717225,0.103296,0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.656412,0.432104,0.618392) - Old Polarization: (0.717225,0.103296,0.689143) - New Momentum Direction: (-0.656412,-0.432104,0.618392) - New Polarization: (-0.717225,0.103296,-0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.656412,-0.432104,0.618392) - Old Polarization: (-0.717225,0.103296,-0.689143) - New Momentum Direction: (0.656412,-0.432104,0.618392) - New Polarization: (-0.717225,-0.103296,0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.656412,-0.432104,0.618392) - Old Polarization: (-0.717225,-0.103296,0.689143) - New Momentum Direction: (0.656412,-0.432104,-0.618392) - New Polarization: (0.717225,0.103296,0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.656412,-0.432104,-0.618392) - Old Polarization: (0.717225,0.103296,0.689143) - New Momentum Direction: (0.656412,0.432104,-0.618392) - New Polarization: (-0.717225,0.103296,-0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.656412,0.432104,-0.618392) - Old Polarization: (-0.717225,0.103296,-0.689143) - New Momentum Direction: (-0.656412,0.432104,-0.618392) - New Polarization: (-0.717225,-0.103296,0.689143) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.656412,0.432104,-0.618392) - Old Polarization: (-0.717225,-0.103296,0.689143) - New Momentum Direction: (-0.656412,0.432104,0.618392) - New Polarization: (0.717225,0.103296,0.689143) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 728, parentID 1) is processed with stopping code 2 -### pop requested out of 298 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.628702,0.54125,-0.558375) - Old Polarization: (-0.747894,0.224127,-0.624838) - New Momentum Direction: (-0.628702,0.54125,-0.558375) - New Polarization: (-0.747894,-0.224127,0.624838) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.628702,0.54125,-0.558375) - Old Polarization: (-0.747894,-0.224127,0.624838) - New Momentum Direction: (-0.628702,0.54125,0.558375) - New Polarization: (0.747894,0.224127,0.624838) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.628702,0.54125,0.558375) - Old Polarization: (0.747894,0.224127,0.624838) - New Momentum Direction: (-0.628702,-0.54125,0.558375) - New Polarization: (-0.747894,0.224127,-0.624838) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.628702,-0.54125,0.558375) - Old Polarization: (-0.747894,0.224127,-0.624838) - New Momentum Direction: (0.628702,-0.54125,0.558375) - New Polarization: (-0.747894,-0.224127,0.624838) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.628702,-0.54125,0.558375) - Old Polarization: (-0.747894,-0.224127,0.624838) - New Momentum Direction: (0.628702,-0.54125,-0.558375) - New Polarization: (0.747894,0.224127,0.624838) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.628702,-0.54125,-0.558375) - Old Polarization: (0.747894,0.224127,0.624838) - New Momentum Direction: (0.628702,0.54125,-0.558375) - New Polarization: (-0.747894,0.224127,-0.624838) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.628702,0.54125,-0.558375) -Old Polarization: (-0.747894,0.224127,-0.624838) -New Polarization: (-0.687288,-0.156439,-0.70934) -Polarization Change: (-0.687288,-0.156439,-0.70934) -New Momentum Direction: (-0.294991,0.952492,0.0757551) -Momentum Change: (-0.294991,0.952492,0.0757551) - Photon at Boundary! - Old Momentum Direction: (-0.294991,0.952492,0.0757551) - Old Polarization: (-0.687288,-0.156439,-0.70934) - New Momentum Direction: (-0.399302,0.911067,0.102543) - New Polarization: (-0.750545,-0.2606,-0.607264) - *** FresnelRefraction *** -Track (trackID 727, parentID 1) is processed with stopping code 2 -### pop requested out of 297 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.879937,-0.454753,0.137518) - Old Polarization: (-0.471816,-0.87039,0.140751) - New Momentum Direction: (0.765179,-0.616257,0.186356) - New Polarization: (-0.641489,-0.75437,0.139348) - *** FresnelRefraction *** -Track (trackID 726, parentID 1) is processed with stopping code 2 -### pop requested out of 296 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.614134,0.563071,0.552984) -Old Polarization: (-0.763595,0.24691,0.596622) -New Polarization: (0.92867,-0.331904,-0.165564) -Polarization Change: (0.92867,-0.331904,-0.165564) -New Momentum Direction: (-0.137623,0.106168,-0.984778) -Momentum Change: (-0.137623,0.106168,-0.984778) -Scattering Photon! -Old Momentum Direction: (-0.137623,0.106168,-0.984778) -Old Polarization: (0.92867,-0.331904,-0.165564) -New Polarization: (0.838263,-0.491554,0.235988) -Polarization Change: (0.838263,-0.491554,0.235988) -New Momentum Direction: (-0.39968,-0.259518,0.879151) -Momentum Change: (-0.39968,-0.259518,0.879151) - -** Photon absorbed! ** -Track (trackID 725, parentID 1) is processed with stopping code 2 -### pop requested out of 295 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.879583,-0.457075,0.131969) - Old Polarization: (-0.47272,-0.870925,0.13426) - New Momentum Direction: (0.763723,-0.62021,0.17907) - New Polarization: (-0.643397,-0.753914,0.132869) - *** FresnelRefraction *** -Track (trackID 724, parentID 1) is processed with stopping code 2 -### pop requested out of 294 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.775918,-0.0315874,-0.630043) - Old Polarization: (-0.586072,-0.405603,-0.701431) - New Momentum Direction: (0.518343,-0.0428206,-0.8541) - New Polarization: (-0.824219,-0.291292,-0.485605) - *** FresnelRefraction *** -Track (trackID 723, parentID 1) is processed with stopping code 2 -### pop requested out of 293 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.829772,-0.27961,0.483008) - Old Polarization: (-0.527802,-0.674433,0.5163) - New Momentum Direction: (0.651323,-0.38016,0.656701) - New Polarization: (-0.737231,-0.52192,0.429057) - *** FresnelRefraction *** -Track (trackID 722, parentID 1) is processed with stopping code 2 -### pop requested out of 292 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.786391,-0.101901,0.609267) - Old Polarization: (-0.574327,-0.483785,0.660379) - New Momentum Direction: (0.548495,-0.137932,0.824698) - New Polarization: (-0.805742,-0.350772,0.47722) - *** FresnelRefraction *** -Track (trackID 721, parentID 1) is processed with stopping code 2 -### pop requested out of 291 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.693199,0.278646,-0.664704) - Old Polarization: (-0.676628,-0.0661142,-0.733351) - New Momentum Direction: (-0.693199,0.278646,-0.664704) - New Polarization: (-0.634034,0.202815,0.746235) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.693199,0.278646,-0.664704) - Old Polarization: (-0.634034,0.202815,0.746235) - New Momentum Direction: (-0.693199,0.278646,0.664704) - New Polarization: (0.634034,-0.202815,0.746235) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.693199,0.278646,0.664704) -Old Polarization: (0.634034,-0.202815,0.746235) -New Polarization: (-0.115844,0.859035,-0.498637) -Polarization Change: (-0.115844,0.859035,-0.498637) -New Momentum Direction: (-0.716426,-0.419982,-0.55709) -Momentum Change: (-0.716426,-0.419982,-0.55709) - Photon at Boundary! - Old Momentum Direction: (-0.716426,-0.419982,-0.55709) - Old Polarization: (-0.115844,0.859035,-0.498637) - New Momentum Direction: (-0.716426,-0.419982,0.55709) - New Polarization: (0.115844,-0.859035,-0.498637) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.716426,-0.419982,0.55709) -Old Polarization: (0.115844,-0.859035,-0.498637) -New Polarization: (-0.96841,0.194913,0.155533) -Polarization Change: (-0.96841,0.194913,0.155533) -New Momentum Direction: (-0.246296,-0.845166,-0.474375) -Momentum Change: (-0.246296,-0.845166,-0.474375) - -** Photon absorbed! ** -Track (trackID 720, parentID 1) is processed with stopping code 2 -### pop requested out of 290 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.865955,-0.409069,0.287724) - Old Polarization: (-0.487702,-0.818125,0.304662) - New Momentum Direction: (0.734382,-0.555164,0.390482) - New Polarization: (-0.669871,-0.685515,0.285206) - *** FresnelRefraction *** -Track (trackID 719, parentID 1) is processed with stopping code 2 -### pop requested out of 289 stacked tracks. - -** Photon absorbed! ** -Track (trackID 718, parentID 1) is processed with stopping code 2 -### pop requested out of 288 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.580119,0.7072,0.404142) - Old Polarization: (-0.801848,0.40861,0.435979) - New Momentum Direction: (0.78413,0.294502,0.546268) - New Polarization: (-0.210264,-0.702096,0.680331) - *** FresnelRefraction *** -Track (trackID 717, parentID 1) is processed with stopping code 2 -### pop requested out of 287 stacked tracks. - -** Photon absorbed! ** -Track (trackID 716, parentID 1) is processed with stopping code 2 -### pop requested out of 286 stacked tracks. - -** Photon absorbed! ** -Track (trackID 715, parentID 1) is processed with stopping code 2 -### pop requested out of 285 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.545554,0.837216,-0.037957) - Old Polarization: (-0.837772,0.543576,-0.0516091) - New Momentum Direction: (0.741435,0.669039,-0.0515855) - New Polarization: (0.659953,-0.740951,-0.124311) - *** FresnelRefraction *** -Track (trackID 714, parentID 1) is processed with stopping code 2 -### pop requested out of 284 stacked tracks. - -** Photon absorbed! ** -Track (trackID 713, parentID 1) is processed with stopping code 2 -### pop requested out of 283 stacked tracks. - -** Photon absorbed! ** -Track (trackID 712, parentID 1) is processed with stopping code 2 -### pop requested out of 282 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.644657,0.491575,-0.585467) - Old Polarization: (-0.731025,0.172339,-0.660229) - New Momentum Direction: (-0.644657,0.491575,-0.585467) - New Polarization: (-0.731025,-0.172339,0.660229) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.644657,0.491575,-0.585467) - Old Polarization: (-0.731025,-0.172339,0.660229) - New Momentum Direction: (-0.644657,0.491575,0.585467) - New Polarization: (0.731025,0.172339,0.660229) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.644657,0.491575,0.585467) - Old Polarization: (0.731025,0.172339,0.660229) - New Momentum Direction: (-0.644657,-0.491575,0.585467) - New Polarization: (-0.731025,0.172339,-0.660229) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 711, parentID 1) is processed with stopping code 2 -### pop requested out of 281 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.639452,0.459774,0.616205) - Old Polarization: (-0.735597,0.132775,0.66428) - New Momentum Direction: (-0.639452,0.459774,0.616205) - New Polarization: (-0.735597,-0.132775,-0.66428) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639452,0.459774,0.616205) - Old Polarization: (-0.735597,-0.132775,-0.66428) - New Momentum Direction: (-0.639452,0.459774,-0.616205) - New Polarization: (0.735597,0.132775,-0.66428) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639452,0.459774,-0.616205) - Old Polarization: (0.735597,0.132775,-0.66428) - New Momentum Direction: (-0.639452,-0.459774,-0.616205) - New Polarization: (-0.735597,0.132775,0.66428) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.639452,-0.459774,-0.616205) - Old Polarization: (-0.735597,0.132775,0.66428) - New Momentum Direction: (-0.639452,-0.459774,0.616205) - New Polarization: (0.735597,-0.132775,0.66428) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 710, parentID 1) is processed with stopping code 2 -### pop requested out of 280 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.600781,0.619466,0.505296) - Old Polarization: (-0.778565,0.309989,0.545659) - New Momentum Direction: (0.600781,-0.619466,0.505296) - New Polarization: (0.778565,0.309989,-0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,-0.619466,0.505296) - Old Polarization: (0.778565,0.309989,-0.545659) - New Momentum Direction: (-0.600781,-0.619466,0.505296) - New Polarization: (0.778565,-0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600781,-0.619466,0.505296) - Old Polarization: (0.778565,-0.309989,0.545659) - New Momentum Direction: (-0.600781,-0.619466,-0.505296) - New Polarization: (-0.778565,0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600781,-0.619466,-0.505296) - Old Polarization: (-0.778565,0.309989,0.545659) - New Momentum Direction: (-0.600781,0.619466,-0.505296) - New Polarization: (0.778565,0.309989,-0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600781,0.619466,-0.505296) - Old Polarization: (0.778565,0.309989,-0.545659) - New Momentum Direction: (0.600781,0.619466,-0.505296) - New Polarization: (0.778565,-0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,0.619466,-0.505296) - Old Polarization: (0.778565,-0.309989,0.545659) - New Momentum Direction: (0.600781,0.619466,0.505296) - New Polarization: (-0.778565,0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,0.619466,0.505296) - Old Polarization: (-0.778565,0.309989,0.545659) - New Momentum Direction: (0.600781,-0.619466,0.505296) - New Polarization: (0.778565,0.309989,-0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,-0.619466,0.505296) - Old Polarization: (0.778565,0.309989,-0.545659) - New Momentum Direction: (-0.600781,-0.619466,0.505296) - New Polarization: (0.778565,-0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600781,-0.619466,0.505296) - Old Polarization: (0.778565,-0.309989,0.545659) - New Momentum Direction: (-0.600781,-0.619466,-0.505296) - New Polarization: (-0.778565,0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600781,-0.619466,-0.505296) - Old Polarization: (-0.778565,0.309989,0.545659) - New Momentum Direction: (-0.600781,0.619466,-0.505296) - New Polarization: (0.778565,0.309989,-0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.600781,0.619466,-0.505296) - Old Polarization: (0.778565,0.309989,-0.545659) - New Momentum Direction: (0.600781,0.619466,-0.505296) - New Polarization: (0.778565,-0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,0.619466,-0.505296) - Old Polarization: (0.778565,-0.309989,0.545659) - New Momentum Direction: (0.600781,0.619466,0.505296) - New Polarization: (-0.778565,0.309989,0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,0.619466,0.505296) - Old Polarization: (-0.778565,0.309989,0.545659) - New Momentum Direction: (0.600781,-0.619466,0.505296) - New Polarization: (0.778565,0.309989,-0.545659) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.600781,-0.619466,0.505296) - Old Polarization: (0.778565,0.309989,-0.545659) - New Momentum Direction: (-0.600781,-0.619466,0.505296) - New Polarization: (0.778565,-0.309989,0.545659) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 709, parentID 1) is processed with stopping code 2 -### pop requested out of 279 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.565498,0.770663,0.293753) -Old Polarization: (-0.818468,0.480511,0.314991) -New Polarization: (-0.218867,0.909311,0.353908) -Polarization Change: (-0.218867,0.909311,0.353908) -New Momentum Direction: (0.960899,0.263908,-0.0838215) -Momentum Change: (0.960899,0.263908,-0.0838215) - Photon at Boundary! - Old Momentum Direction: (0.960899,0.263908,-0.0838215) - Old Polarization: (-0.218867,0.909311,0.353908) - New Momentum Direction: (0.927508,0.356264,-0.113155) - New Polarization: (-0.324602,0.917755,0.22882) - *** FresnelRefraction *** -Track (trackID 708, parentID 1) is processed with stopping code 2 -### pop requested out of 278 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.663009,0.40696,-0.628334) -Old Polarization: (-0.709989,0.0757167,-0.70013) -New Polarization: (-0.38437,0.20069,-0.901101) -Polarization Change: (-0.38437,0.20069,-0.901101) -New Momentum Direction: (-0.904796,-0.275713,0.32454) -Momentum Change: (-0.904796,-0.275713,0.32454) - Photon at Boundary! - Old Momentum Direction: (-0.904796,-0.275713,0.32454) - Old Polarization: (-0.38437,0.20069,-0.901101) - New Momentum Direction: (-0.816695,-0.373624,0.43979) - New Polarization: (0.545256,-0.749167,0.376092) - *** FresnelRefraction *** -Track (trackID 707, parentID 1) is processed with stopping code 2 -### pop requested out of 277 stacked tracks. - -** Photon absorbed! ** -Track (trackID 706, parentID 1) is processed with stopping code 2 -### pop requested out of 276 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.57773,0.722767,0.379258) - Old Polarization: (-0.805141,0.428304,0.410247) - New Momentum Direction: (0.779423,0.361526,0.511662) - New Polarization: (-0.125164,-0.71038,0.692599) - *** FresnelRefraction *** -Track (trackID 705, parentID 1) is processed with stopping code 2 -### pop requested out of 275 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.88693,-0.459492,0.047147) - Old Polarization: (-0.461362,-0.886207,0.0422226) - New Momentum Direction: (0.783198,-0.618526,0.0634649) - New Polarization: (-0.621384,-0.782229,0.044715) - *** FresnelRefraction *** -Track (trackID 704, parentID 1) is processed with stopping code 2 -### pop requested out of 274 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.590153,0.680287,-0.434659) - Old Polarization: (-0.789612,0.374357,-0.486178) - New Momentum Direction: (0.800707,0.105265,-0.589736) - New Polarization: (-0.35774,-0.705611,-0.611666) - *** FresnelRefraction *** -Track (trackID 703, parentID 1) is processed with stopping code 2 -### pop requested out of 273 stacked tracks. - -** Photon absorbed! ** -Track (trackID 702, parentID 1) is processed with stopping code 2 -### pop requested out of 272 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.618086,0.540315,0.57099) - Old Polarization: (-0.758711,0.219925,0.613181) - New Momentum Direction: (-0.618086,0.540315,0.57099) - New Polarization: (-0.758711,-0.219925,-0.613181) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618086,0.540315,0.57099) - Old Polarization: (-0.758711,-0.219925,-0.613181) - New Momentum Direction: (-0.618086,0.540315,-0.57099) - New Polarization: (0.758711,0.219925,-0.613181) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618086,0.540315,-0.57099) - Old Polarization: (0.758711,0.219925,-0.613181) - New Momentum Direction: (-0.618086,-0.540315,-0.57099) - New Polarization: (-0.758711,0.219925,0.613181) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.618086,-0.540315,-0.57099) -Old Polarization: (-0.758711,0.219925,0.613181) -New Polarization: (-0.135264,0.737144,0.662059) -Polarization Change: (-0.135264,0.737144,0.662059) -New Momentum Direction: (0.900589,0.370058,-0.228029) -Momentum Change: (0.900589,0.370058,-0.228029) - Photon at Boundary! - Old Momentum Direction: (0.900589,0.370058,-0.228029) - Old Polarization: (-0.135264,0.737144,0.662059) - New Momentum Direction: (0.900589,0.370058,0.228029) - New Polarization: (0.135264,-0.737144,0.662059) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 701, parentID 1) is processed with stopping code 2 -### pop requested out of 271 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.730684,0.168274,-0.661653) - Old Polarization: (-0.635456,-0.186677,-0.749231) - New Momentum Direction: (0.396255,0.226301,-0.889814) - New Polarization: (-0.886925,-0.156213,-0.434697) - *** FresnelRefraction *** -Track (trackID 700, parentID 1) is processed with stopping code 2 -### pop requested out of 270 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.562413,0.801659,-0.202569) - Old Polarization: (-0.822583,0.517582,-0.235511) - New Momentum Direction: (0.757866,0.592561,-0.272967) - New Polarization: (0.387191,-0.745264,-0.542831) - *** FresnelRefraction *** -Track (trackID 699, parentID 1) is processed with stopping code 2 -### pop requested out of 269 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.804594,-0.154619,-0.573342) - Old Polarization: (-0.555372,-0.537726,-0.634361) - New Momentum Direction: (0.589412,-0.210342,-0.779968) - New Polarization: (-0.780796,-0.396029,-0.483237) - *** FresnelRefraction *** -Track (trackID 698, parentID 1) is processed with stopping code 2 -### pop requested out of 268 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.687687,0.302547,-0.659963) - Old Polarization: (-0.68268,-0.0398555,-0.729629) - New Momentum Direction: (0.160429,0.411329,-0.897257) - New Polarization: (-0.963972,-0.130117,-0.232007) - *** FresnelRefraction *** -Track (trackID 697, parentID 1) is processed with stopping code 2 -### pop requested out of 267 stacked tracks. - -** Photon absorbed! ** Track (trackID 696, parentID 1) is processed with stopping code 2 -### pop requested out of 266 stacked tracks. +### pop requested out of 366 stacked tracks. ** Photon absorbed! ** Track (trackID 695, parentID 1) is processed with stopping code 2 -### pop requested out of 265 stacked tracks. +### pop requested out of 365 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.85545,-0.374191,0.358031) - Old Polarization: (-0.499643,-0.778192,0.380491) - New Momentum Direction: (0.710429,-0.508499,0.486539) - New Polarization: (-0.690748,-0.636183,0.343712) + Old Momentum Direction: (-0.435667,0.899928,0.0179648) + Old Polarization: (-0.500196,-0.225462,-0.836045) + New Momentum Direction: (-0.586639,0.809487,0.0241902) + New Polarization: (0.387885,0.307072,-0.869052) *** FresnelRefraction *** Track (trackID 694, parentID 1) is processed with stopping code 2 -### pop requested out of 264 stacked tracks. +### pop requested out of 364 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.556407,0.814626,-0.163691) - Old Polarization: (-0.828015,0.527174,-0.190994) - New Momentum Direction: (0.752107,0.620788,-0.221264) - New Polarization: (0.478785,-0.745392,-0.463848) + Old Momentum Direction: (-0.29322,0.775284,0.559425) + Old Polarization: (-0.626972,0.285812,-0.724719) + New Momentum Direction: (-0.29322,-0.775284,0.559425) + New Polarization: (-0.909198,0.0452069,-0.413902) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.29322,-0.775284,0.559425) + Old Polarization: (-0.909198,0.0452069,-0.413902) + New Momentum Direction: (-0.29322,-0.775284,-0.559425) + New Polarization: (0.909198,-0.0452069,-0.413902) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.29322,-0.775284,-0.559425) + Old Polarization: (0.909198,-0.0452069,-0.413902) + New Momentum Direction: (0.29322,-0.775284,-0.559425) + New Polarization: (0.909198,0.0452069,0.413902) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.29322,-0.775284,-0.559425) + Old Polarization: (0.909198,0.0452069,0.413902) + New Momentum Direction: (0.395827,-0.52251,-0.755185) + New Polarization: (0.864766,-0.0646514,0.497996) *** FresnelRefraction *** Track (trackID 693, parentID 1) is processed with stopping code 2 -### pop requested out of 263 stacked tracks. +### pop requested out of 363 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.587589,0.667105,0.45794) - Old Polarization: (-0.792576,0.360512,0.491788) - New Momentum Direction: (0.587589,-0.667105,0.45794) - New Polarization: (0.792576,0.360512,-0.491788) - *** TotalInternalReflection *** + Old Momentum Direction: (-0.773314,0.268419,-0.574401) + Old Polarization: (0.463921,0.857073,-0.224062) + New Momentum Direction: (-0.508839,0.364453,-0.779908) + New Polarization: (-0.647866,0.434457,0.625713) + *** FresnelRefraction *** +Track (trackID 692, parentID 1) is processed with stopping code 2 +### pop requested out of 362 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.587589,-0.667105,0.45794) - Old Polarization: (0.792576,0.360512,-0.491788) - New Momentum Direction: (-0.587589,-0.667105,0.45794) - New Polarization: (0.792576,-0.360512,0.491788) - *** TotalInternalReflection *** + Old Momentum Direction: (0.516653,0.467234,0.717469) + Old Polarization: (-0.537384,0.829324,-0.153104) + New Momentum Direction: (0.70048,0.633477,0.328686) + New Polarization: (-0.709988,0.665296,0.230866) + *** FresnelRefraction *** +Track (trackID 691, parentID 1) is processed with stopping code 2 +### pop requested out of 361 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.290142,0.617923,0.730746) +Old Polarization: (-0.356851,-0.63866,0.681741) +New Polarization: (0.185395,-0.215658,-0.958708) +Polarization Change: (0.185395,-0.215658,-0.958708) +New Momentum Direction: (0.306142,0.939742,-0.15219) +Momentum Change: (0.306142,0.939742,-0.15219) Photon at Boundary! - Old Momentum Direction: (-0.587589,-0.667105,0.45794) - Old Polarization: (0.792576,-0.360512,0.491788) - New Momentum Direction: (-0.587589,-0.667105,-0.45794) - New Polarization: (-0.792576,0.360512,0.491788) + Old Momentum Direction: (0.306142,0.939742,-0.15219) + Old Polarization: (0.185395,-0.215658,-0.958708) + New Momentum Direction: (0.416022,0.885525,-0.206814) + New Polarization: (-0.847075,0.294655,-0.442315) + *** FresnelRefraction *** +Track (trackID 690, parentID 1) is processed with stopping code 2 +### pop requested out of 360 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.721004,0.0922177,-0.686767) + Old Polarization: (0.242677,0.961941,-0.125607) + New Momentum Direction: (0.721004,0.0922177,-0.686767) + New Polarization: (-0.110277,0.993744,0.0176632) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.721004,0.0922177,-0.686767) + Old Polarization: (-0.110277,0.993744,0.0176632) + New Momentum Direction: (0.721004,0.0922177,0.686767) + New Polarization: (-0.115634,0.99322,-0.0119689) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 689, parentID 1) is processed with stopping code 2 +### pop requested out of 359 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.50147,0.250544,0.828103) + Old Polarization: (-0.814707,-0.458874,-0.354525) + New Momentum Direction: (-0.50147,0.250544,-0.828103) + New Polarization: (-0.36959,-0.927458,-0.0567931) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.50147,0.250544,-0.828103) + Old Polarization: (-0.36959,-0.927458,-0.0567931) + New Momentum Direction: (0.50147,0.250544,-0.828103) + New Polarization: (-0.36959,0.927458,0.0567931) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 692, parentID 1) is processed with stopping code 2 -### pop requested out of 262 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.682554,0.317529,0.658252) - Old Polarization: (-0.689178,-0.0200902,0.724314) - New Momentum Direction: (0.182917,0.427144,0.885488) - New Polarization: (-0.959915,-0.116973,0.254717) - *** FresnelRefraction *** -Track (trackID 691, parentID 1) is processed with stopping code 2 -### pop requested out of 261 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.567687,0.7606,-0.31499) - Old Polarization: (-0.813802,0.460692,-0.354244) - New Momentum Direction: (0.771122,0.471487,-0.427868) - New Polarization: (0.0678161,-0.729023,-0.681121) - *** FresnelRefraction *** -Track (trackID 690, parentID 1) is processed with stopping code 2 -### pop requested out of 260 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.857921,-0.364261,-0.362334) - Old Polarization: (-0.49699,-0.767196,-0.405477) - New Momentum Direction: (0.715826,-0.495065,-0.492447) - New Polarization: (-0.6863,-0.628866,-0.365404) - *** FresnelRefraction *** -Track (trackID 689, parentID 1) is processed with stopping code 2 -### pop requested out of 259 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.79447,-0.13336,0.59248) - Old Polarization: (-0.565473,-0.518252,0.641604) - New Momentum Direction: (0.569182,-0.180553,0.802142) - New Polarization: (-0.792723,-0.379441,0.47709) - *** FresnelRefraction *** Track (trackID 688, parentID 1) is processed with stopping code 2 -### pop requested out of 258 stacked tracks. +### pop requested out of 358 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.541652,-0.811035,0.22099) +Old Polarization: (0.26957,0.081419,0.959533) +New Polarization: (0.654006,0.0352875,-0.755666) +Polarization Change: (0.654006,0.0352875,-0.755666) +New Momentum Direction: (0.747873,0.120169,0.652874) +Momentum Change: (0.747873,0.120169,0.652874) + Photon at Boundary! + Old Momentum Direction: (0.747873,0.120169,0.652874) + Old Polarization: (0.654006,0.0352875,-0.755666) + New Momentum Direction: (0.747873,0.120169,-0.652874) + New Polarization: (-0.654006,-0.0352875,-0.755666) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 687, parentID 1) is processed with stopping code 2 -### pop requested out of 257 stacked tracks. +### pop requested out of 357 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.625008,0.511171,0.589975) - Old Polarization: (-0.751025,0.187629,0.633054) - New Momentum Direction: (-0.625008,0.511171,0.589975) - New Polarization: (-0.751025,-0.187629,-0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625008,0.511171,0.589975) - Old Polarization: (-0.751025,-0.187629,-0.633054) - New Momentum Direction: (-0.625008,0.511171,-0.589975) - New Polarization: (0.751025,0.187629,-0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625008,0.511171,-0.589975) - Old Polarization: (0.751025,0.187629,-0.633054) - New Momentum Direction: (-0.625008,-0.511171,-0.589975) - New Polarization: (-0.751025,0.187629,0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625008,-0.511171,-0.589975) - Old Polarization: (-0.751025,0.187629,0.633054) - New Momentum Direction: (0.625008,-0.511171,-0.589975) - New Polarization: (-0.751025,-0.187629,-0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625008,-0.511171,-0.589975) - Old Polarization: (-0.751025,-0.187629,-0.633054) - New Momentum Direction: (0.625008,-0.511171,0.589975) - New Polarization: (0.751025,0.187629,-0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625008,-0.511171,0.589975) - Old Polarization: (0.751025,0.187629,-0.633054) - New Momentum Direction: (0.625008,0.511171,0.589975) - New Polarization: (-0.751025,0.187629,0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625008,0.511171,0.589975) - Old Polarization: (-0.751025,0.187629,0.633054) - New Momentum Direction: (-0.625008,0.511171,0.589975) - New Polarization: (-0.751025,-0.187629,-0.633054) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625008,0.511171,0.589975) - Old Polarization: (-0.751025,-0.187629,-0.633054) - New Momentum Direction: (-0.625008,0.511171,-0.589975) - New Polarization: (0.751025,0.187629,-0.633054) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (-0.91254,-0.147176,0.381588) + Old Polarization: (-0.132853,-0.775742,-0.616907) + New Momentum Direction: (-0.831791,-0.199752,0.517903) + New Polarization: (-0.182586,-0.782633,-0.595103) + *** FresnelRefraction *** Track (trackID 686, parentID 1) is processed with stopping code 2 -### pop requested out of 256 stacked tracks. +### pop requested out of 356 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.552941,0.831898,-0.0469298) - Old Polarization: (-0.832812,0.550029,-0.062384) - New Momentum Direction: (0.745646,0.66333,-0.0632853) - New Polarization: (0.649857,-0.744907,-0.150995) + Old Momentum Direction: (-0.170408,-0.984799,-0.0336363) + Old Polarization: (0.983415,-0.172122,0.0571794) + New Momentum Direction: (-0.231433,-0.971778,-0.0456818) + New Polarization: (0.970738,-0.233769,0.0549488) *** FresnelRefraction *** Track (trackID 685, parentID 1) is processed with stopping code 2 -### pop requested out of 255 stacked tracks. +### pop requested out of 355 stacked tracks. ** Photon absorbed! ** Track (trackID 684, parentID 1) is processed with stopping code 2 -### pop requested out of 254 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 354 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.450446,-0.0785924,-0.889338) + Old Polarization: (0.295484,0.926858,-0.231569) + New Momentum Direction: (-0.611942,-0.10677,-0.783663) + New Polarization: (0.249095,0.914402,-0.319094) + *** FresnelRefraction *** Track (trackID 683, parentID 1) is processed with stopping code 2 -### pop requested out of 253 stacked tracks. +### pop requested out of 353 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.634852,0.495254,0.593031) - Old Polarization: (-0.741782,0.175956,0.647147) - New Momentum Direction: (-0.634852,0.495254,0.593031) - New Polarization: (-0.741782,-0.175956,-0.647147) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634852,0.495254,0.593031) - Old Polarization: (-0.741782,-0.175956,-0.647147) - New Momentum Direction: (-0.634852,0.495254,-0.593031) - New Polarization: (0.741782,0.175956,-0.647147) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634852,0.495254,-0.593031) - Old Polarization: (0.741782,0.175956,-0.647147) - New Momentum Direction: (-0.634852,-0.495254,-0.593031) - New Polarization: (-0.741782,0.175956,0.647147) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.634852,-0.495254,-0.593031) -Old Polarization: (-0.741782,0.175956,0.647147) -New Polarization: (-0.141737,0.940145,0.3099) -Polarization Change: (-0.141737,0.940145,0.3099) -New Momentum Direction: (0.765251,0.302649,-0.56815) -Momentum Change: (0.765251,0.302649,-0.56815) - Photon at Boundary! - Old Momentum Direction: (0.765251,0.302649,-0.56815) - Old Polarization: (-0.141737,0.940145,0.3099) - New Momentum Direction: (0.4956,0.408347,-0.766573) - New Polarization: (-0.268122,0.91141,0.312156) + Old Momentum Direction: (-0.226541,0.729758,0.645084) + Old Polarization: (-0.233251,0.602383,-0.763366) + New Momentum Direction: (-0.307409,0.373158,0.875359) + New Polarization: (-0.301757,0.834197,-0.461582) *** FresnelRefraction *** Track (trackID 682, parentID 1) is processed with stopping code 2 -### pop requested out of 252 stacked tracks. - -** Photon absorbed! ** -Track (trackID 681, parentID 1) is processed with stopping code 2 -### pop requested out of 251 stacked tracks. - -** Photon absorbed! ** -Track (trackID 680, parentID 1) is processed with stopping code 2 -### pop requested out of 250 stacked tracks. - -** Photon absorbed! ** -Track (trackID 679, parentID 1) is processed with stopping code 2 -### pop requested out of 249 stacked tracks. +### pop requested out of 352 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.883949,-0.466653,-0.029483) - Old Polarization: (-0.467543,-0.882944,-0.0425759) - New Momentum Direction: (0.773456,-0.632588,-0.0399667) - New Polarization: (-0.633821,-0.772483,-0.0392554) + Old Momentum Direction: (-0.0530794,0.823106,0.565402) + Old Polarization: (0.37613,0.54098,-0.752242) + New Momentum Direction: (-0.0714348,0.644898,0.760923) + New Polarization: (0.350736,0.730394,-0.586097) + *** FresnelRefraction *** +Track (trackID 681, parentID 1) is processed with stopping code 2 +### pop requested out of 351 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.202394,0.959593,-0.195495) + Old Polarization: (0.103836,-0.219529,-0.970064) + New Momentum Direction: (0.273928,0.924638,-0.264591) + New Polarization: (-0.953121,0.297767,0.0538175) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.273928,0.924638,-0.264591) + Old Polarization: (-0.953121,0.297767,0.0538175) + New Momentum Direction: (0.703601,0.683174,-0.195495) + New Polarization: (0.705685,-0.639491,0.305056) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.703601,0.683174,-0.195495) + Old Polarization: (0.705685,-0.639491,0.305056) + New Momentum Direction: (0.703601,-0.683174,-0.195495) + New Polarization: (0.688718,0.587884,0.424334) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.703601,-0.683174,-0.195495) + Old Polarization: (0.688718,0.587884,0.424334) + New Momentum Direction: (0.273928,-0.924638,-0.264591) + New Polarization: (0.938776,0.197294,0.282443) + *** FresnelRefraction *** +Track (trackID 680, parentID 1) is processed with stopping code 2 +### pop requested out of 350 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0991247,0.984828,0.142436) + Old Polarization: (0.532281,-0.173418,0.828615) + New Momentum Direction: (0.134414,0.97192,0.193146) + New Polarization: (-0.584641,0.235158,-0.776463) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.134414,0.97192,0.193146) + Old Polarization: (-0.584641,0.235158,-0.776463) + New Momentum Direction: (0.0991247,0.984828,0.142436) + New Polarization: (-0.591952,0.173419,-0.787095) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.0991247,0.984828,0.142436) + Old Polarization: (-0.591952,0.173419,-0.787095) + New Momentum Direction: (0.134414,0.97192,0.193146) + New Polarization: (-0.584525,0.235159,-0.77655) + *** FresnelRefraction *** +Track (trackID 679, parentID 1) is processed with stopping code 2 +### pop requested out of 349 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.00819436,-0.18936,-0.981874) + Old Polarization: (0.969147,-0.240395,0.0544498) + New Momentum Direction: (0.0111403,-0.257436,-0.966231) + New Polarization: (0.944731,0.319343,-0.0741911) *** FresnelRefraction *** Track (trackID 678, parentID 1) is processed with stopping code 2 -### pop requested out of 248 stacked tracks. +### pop requested out of 348 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.37448,0.4567,-0.806963) +Old Polarization: (-0.689352,0.444917,0.571701) +New Polarization: (-0.834855,0.494846,0.241132) +Polarization Change: (-0.834855,0.494846,0.241132) +New Momentum Direction: (0.251074,-0.0475232,0.966801) +Momentum Change: (0.251074,-0.0475232,0.966801) Photon at Boundary! - Old Momentum Direction: (0.61295,0.598967,-0.515297) - Old Polarization: (-0.76505,0.286931,-0.576514) - New Momentum Direction: (-0.61295,0.598967,-0.515297) - New Polarization: (-0.76505,-0.286931,0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,0.598967,-0.515297) - Old Polarization: (-0.76505,-0.286931,0.576514) - New Momentum Direction: (-0.61295,-0.598967,-0.515297) - New Polarization: (0.76505,-0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,-0.598967,-0.515297) - Old Polarization: (0.76505,-0.286931,-0.576514) - New Momentum Direction: (-0.61295,-0.598967,0.515297) - New Polarization: (-0.76505,0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,-0.598967,0.515297) - Old Polarization: (-0.76505,0.286931,-0.576514) - New Momentum Direction: (0.61295,-0.598967,0.515297) - New Polarization: (-0.76505,-0.286931,0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61295,-0.598967,0.515297) - Old Polarization: (-0.76505,-0.286931,0.576514) - New Momentum Direction: (0.61295,0.598967,0.515297) - New Polarization: (0.76505,-0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61295,0.598967,0.515297) - Old Polarization: (0.76505,-0.286931,-0.576514) - New Momentum Direction: (0.61295,0.598967,-0.515297) - New Polarization: (-0.76505,0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61295,0.598967,-0.515297) - Old Polarization: (-0.76505,0.286931,-0.576514) - New Momentum Direction: (-0.61295,0.598967,-0.515297) - New Polarization: (-0.76505,-0.286931,0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,0.598967,-0.515297) - Old Polarization: (-0.76505,-0.286931,0.576514) - New Momentum Direction: (-0.61295,-0.598967,-0.515297) - New Polarization: (0.76505,-0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,-0.598967,-0.515297) - Old Polarization: (0.76505,-0.286931,-0.576514) - New Momentum Direction: (-0.61295,-0.598967,0.515297) - New Polarization: (-0.76505,0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,-0.598967,0.515297) - Old Polarization: (-0.76505,0.286931,-0.576514) - New Momentum Direction: (0.61295,-0.598967,0.515297) - New Polarization: (-0.76505,-0.286931,0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61295,-0.598967,0.515297) - Old Polarization: (-0.76505,-0.286931,0.576514) - New Momentum Direction: (0.61295,0.598967,0.515297) - New Polarization: (0.76505,-0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61295,0.598967,0.515297) - Old Polarization: (0.76505,-0.286931,-0.576514) - New Momentum Direction: (0.61295,0.598967,-0.515297) - New Polarization: (-0.76505,0.286931,-0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.61295,0.598967,-0.515297) - Old Polarization: (-0.76505,0.286931,-0.576514) - New Momentum Direction: (-0.61295,0.598967,-0.515297) - New Polarization: (-0.76505,-0.286931,0.576514) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.61295,0.598967,-0.515297) - Old Polarization: (-0.76505,-0.286931,0.576514) - New Momentum Direction: (-0.61295,-0.598967,-0.515297) - New Polarization: (0.76505,-0.286931,-0.576514) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.251074,-0.0475232,0.966801) + Old Polarization: (-0.834855,0.494846,0.241132) + New Momentum Direction: (0.34067,-0.064482,0.937969) + New Polarization: (-0.808808,0.488544,0.327344) + *** FresnelRefraction *** Track (trackID 677, parentID 1) is processed with stopping code 2 -### pop requested out of 247 stacked tracks. +### pop requested out of 347 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.884909,-0.465685,0.00859283) - Old Polarization: (-0.465696,-0.884945,-0.000785061) - New Momentum Direction: (0.776465,-0.630053,0.0116258) - New Polarization: (-0.630112,-0.776502,0.00192313) + Old Momentum Direction: (0.203747,-0.608919,-0.766619) + Old Polarization: (0.0522917,0.788695,-0.612556) + New Momentum Direction: (0.275091,-0.822137,-0.498413) + New Polarization: (0.11669,0.543134,-0.831498) *** FresnelRefraction *** Track (trackID 676, parentID 1) is processed with stopping code 2 -### pop requested out of 246 stacked tracks. - -** Photon absorbed! ** -Track (trackID 675, parentID 1) is processed with stopping code 2 -### pop requested out of 245 stacked tracks. +### pop requested out of 346 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.718305,0.157252,0.677724) - Old Polarization: (-0.649274,-0.19847,0.734202) - New Momentum Direction: (0.333886,0.213054,0.91822) - New Polarization: (-0.913494,-0.167118,0.370944) + Old Momentum Direction: (-0.428199,-0.00480742,0.903672) + Old Polarization: (-0.804002,0.458579,-0.378532) + New Momentum Direction: (-0.580242,-0.00651442,0.814418) + New Polarization: (0.717116,0.469949,0.514677) *** FresnelRefraction *** -Track (trackID 674, parentID 1) is processed with stopping code 2 -### pop requested out of 244 stacked tracks. +Track (trackID 675, parentID 1) is processed with stopping code 2 +### pop requested out of 345 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.670802,-0.551246,0.496138) + Old Polarization: (-0.736458,0.574033,-0.357933) + New Momentum Direction: (0.670802,-0.551246,0.496138) + New Polarization: (-0.736458,-0.574033,0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670802,-0.551246,0.496138) + Old Polarization: (-0.736458,-0.574033,0.357933) + New Momentum Direction: (0.670802,0.551246,0.496138) + New Polarization: (0.736458,-0.574033,-0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670802,0.551246,0.496138) + Old Polarization: (0.736458,-0.574033,-0.357933) + New Momentum Direction: (0.670802,0.551246,-0.496138) + New Polarization: (-0.736458,0.574033,-0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670802,0.551246,-0.496138) + Old Polarization: (-0.736458,0.574033,-0.357933) + New Momentum Direction: (-0.670802,0.551246,-0.496138) + New Polarization: (-0.736458,-0.574033,0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670802,0.551246,-0.496138) + Old Polarization: (-0.736458,-0.574033,0.357933) + New Momentum Direction: (-0.670802,-0.551246,-0.496138) + New Polarization: (0.736458,-0.574033,-0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670802,-0.551246,-0.496138) + Old Polarization: (0.736458,-0.574033,-0.357933) + New Momentum Direction: (-0.670802,-0.551246,0.496138) + New Polarization: (-0.736458,0.574033,-0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670802,-0.551246,0.496138) + Old Polarization: (-0.736458,0.574033,-0.357933) + New Momentum Direction: (0.670802,-0.551246,0.496138) + New Polarization: (-0.736458,-0.574033,0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670802,-0.551246,0.496138) + Old Polarization: (-0.736458,-0.574033,0.357933) + New Momentum Direction: (0.670802,0.551246,0.496138) + New Polarization: (0.736458,-0.574033,-0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670802,0.551246,0.496138) + Old Polarization: (0.736458,-0.574033,-0.357933) + New Momentum Direction: (0.670802,0.551246,-0.496138) + New Polarization: (-0.736458,0.574033,-0.357933) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670802,0.551246,-0.496138) + Old Polarization: (-0.736458,0.574033,-0.357933) + New Momentum Direction: (-0.670802,0.551246,-0.496138) + New Polarization: (-0.736458,-0.574033,0.357933) + *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 673, parentID 1) is processed with stopping code 2 -### pop requested out of 243 stacked tracks. +Track (trackID 674, parentID 1) is processed with stopping code 2 +### pop requested out of 344 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.876918,-0.439139,-0.195377) - Old Polarization: (-0.475825,-0.850569,-0.223881) - New Momentum Direction: (0.757789,-0.596158,-0.265237) - New Polarization: (-0.649081,-0.730285,-0.213022) + Old Momentum Direction: (0.207879,0.138301,0.968328) + Old Polarization: (0.409313,-0.911413,0.0423015) + New Momentum Direction: (0.281496,0.187279,0.941109) + New Polarization: (0.412531,-0.909126,0.0575211) + *** FresnelRefraction *** +Track (trackID 673, parentID 1) is processed with stopping code 2 +### pop requested out of 343 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.302194,-0.902819,0.305936) + Old Polarization: (0.546113,0.42702,0.720704) + New Momentum Direction: (0.40741,-0.8148,0.412455) + New Polarization: (-0.651375,-0.575816,-0.494111) *** FresnelRefraction *** Track (trackID 672, parentID 1) is processed with stopping code 2 -### pop requested out of 242 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.560562,0.794769,0.23262) - Old Polarization: (-0.824367,0.508875,0.247922) - New Momentum Direction: (0.755896,0.574654,0.313679) - New Polarization: (0.32224,-0.743637,0.585804) - *** FresnelRefraction *** +### pop requested out of 342 stacked tracks. + +** Photon absorbed! ** Track (trackID 671, parentID 1) is processed with stopping code 2 -### pop requested out of 241 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 341 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.896925,-0.425736,0.119475) + Old Polarization: (-0.41258,0.902951,0.120238) + New Momentum Direction: (-0.800733,-0.576741,0.161851) + New Polarization: (-0.560137,0.816668,0.138928) + *** FresnelRefraction *** Track (trackID 670, parentID 1) is processed with stopping code 2 -### pop requested out of 240 stacked tracks. +### pop requested out of 340 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.646251,0.451726,0.615063) - Old Polarization: (-0.72922,0.127977,0.672205) - New Momentum Direction: (-0.646251,0.451726,0.615063) - New Polarization: (-0.72922,-0.127977,-0.672205) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646251,0.451726,0.615063) - Old Polarization: (-0.72922,-0.127977,-0.672205) - New Momentum Direction: (-0.646251,0.451726,-0.615063) - New Polarization: (0.72922,0.127977,-0.672205) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646251,0.451726,-0.615063) - Old Polarization: (0.72922,0.127977,-0.672205) - New Momentum Direction: (-0.646251,-0.451726,-0.615063) - New Polarization: (-0.72922,0.127977,0.672205) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646251,-0.451726,-0.615063) - Old Polarization: (-0.72922,0.127977,0.672205) - New Momentum Direction: (-0.646251,0.451726,-0.615063) - New Polarization: (0.72922,0.127977,-0.672205) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646251,0.451726,-0.615063) - Old Polarization: (0.72922,0.127977,-0.672205) - New Momentum Direction: (-0.646251,-0.451726,-0.615063) - New Polarization: (-0.72922,0.127977,0.672205) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (-0.173913,-0.984134,0.0351363) + Old Polarization: (0.153083,-0.0622642,-0.98625) + New Momentum Direction: (-0.235766,-0.970642,0.047633) + New Polarization: (0.1491,-0.0845634,-0.9852) + *** FresnelRefraction *** Track (trackID 669, parentID 1) is processed with stopping code 2 -### pop requested out of 239 stacked tracks. +### pop requested out of 339 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.563978,0.752802,0.339437) - Old Polarization: (-0.817354,0.450276,0.359422) - New Momentum Direction: (0.767156,0.445292,0.461722) - New Polarization: (0.00627991,-0.724976,0.688745) + Old Momentum Direction: (-0.271243,-0.250236,-0.929413) + Old Polarization: (-0.139858,0.965612,-0.219165) + New Momentum Direction: (-0.368336,-0.339809,-0.865366) + New Polarization: (-0.163071,0.939993,-0.299703) *** FresnelRefraction *** Track (trackID 668, parentID 1) is processed with stopping code 2 -### pop requested out of 238 stacked tracks. - -** Photon absorbed! ** -Track (trackID 667, parentID 1) is processed with stopping code 2 -### pop requested out of 237 stacked tracks. +### pop requested out of 338 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.854681,-0.359914,0.374143) - Old Polarization: (-0.499147,-0.76783,0.401609) - New Momentum Direction: (0.711489,-0.487159,0.506419) - New Polarization: (-0.688309,-0.628248,0.362678) + Old Momentum Direction: (-0.419118,0.841048,-0.342021) + Old Polarization: (0.635469,0.540789,0.551114) + New Momentum Direction: (-0.566448,0.682248,-0.46225) + New Polarization: (0.512974,0.730903,0.450154) + *** FresnelRefraction *** +Track (trackID 667, parentID 1) is processed with stopping code 2 +### pop requested out of 337 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.989244,-0.0658987,0.130591) + Old Polarization: (0.14423,0.290624,-0.945904) + New Momentum Direction: (0.9803,-0.088983,0.176337) + New Polarization: (0.194761,0.286863,-0.937965) *** FresnelRefraction *** Track (trackID 666, parentID 1) is processed with stopping code 2 -### pop requested out of 236 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 336 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0512255,0.574379,-0.816985) + Old Polarization: (-0.479147,-0.731892,-0.484512) + New Momentum Direction: (-0.0692445,0.776422,-0.626397) + New Polarization: (-0.477817,-0.577008,-0.662384) + *** FresnelRefraction *** Track (trackID 665, parentID 1) is processed with stopping code 2 -### pop requested out of 235 stacked tracks. +### pop requested out of 335 stacked tracks. ** Photon absorbed! ** Track (trackID 664, parentID 1) is processed with stopping code 2 -### pop requested out of 234 stacked tracks. +### pop requested out of 334 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.741648,0.0708028,0.667042) - Old Polarization: (-0.623557,-0.293776,0.724481) - New Momentum Direction: (0.419644,0.0958079,0.902618) - New Polarization: (-0.876393,-0.216104,0.43039) + Old Momentum Direction: (-0.175468,-0.257483,0.950218) + Old Polarization: (0.983283,0.00184286,0.182073) + New Momentum Direction: (-0.23743,-0.348407,0.906774) + New Polarization: (0.968754,-0.016011,0.247507) *** FresnelRefraction *** Track (trackID 663, parentID 1) is processed with stopping code 2 -### pop requested out of 233 stacked tracks. - -** Photon absorbed! ** -Track (trackID 662, parentID 1) is processed with stopping code 2 -### pop requested out of 232 stacked tracks. +### pop requested out of 333 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.613374,0.595143,-0.519208) - Old Polarization: (-0.764393,0.28196,-0.57983) - New Momentum Direction: (-0.613374,0.595143,-0.519208) - New Polarization: (-0.764393,-0.28196,0.57983) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613374,0.595143,-0.519208) - Old Polarization: (-0.764393,-0.28196,0.57983) - New Momentum Direction: (-0.613374,-0.595143,-0.519208) - New Polarization: (0.764393,-0.28196,-0.57983) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613374,-0.595143,-0.519208) - Old Polarization: (0.764393,-0.28196,-0.57983) - New Momentum Direction: (-0.613374,-0.595143,0.519208) - New Polarization: (-0.764393,0.28196,-0.57983) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613374,-0.595143,0.519208) - Old Polarization: (-0.764393,0.28196,-0.57983) - New Momentum Direction: (0.613374,-0.595143,0.519208) - New Polarization: (-0.764393,-0.28196,0.57983) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.613374,-0.595143,0.519208) - Old Polarization: (-0.764393,-0.28196,0.57983) - New Momentum Direction: (0.613374,0.595143,0.519208) - New Polarization: (0.764393,-0.28196,-0.57983) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 661, parentID 1) is processed with stopping code 2 -### pop requested out of 231 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.596034,0.625964,0.502904) - Old Polarization: (-0.782627,0.312834,0.538173) - New Momentum Direction: (0.596034,-0.625964,0.502904) - New Polarization: (0.782627,0.312834,-0.538173) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.596034,-0.625964,0.502904) - Old Polarization: (0.782627,0.312834,-0.538173) - New Momentum Direction: (-0.596034,-0.625964,0.502904) - New Polarization: (0.782627,-0.312834,0.538173) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.596034,-0.625964,0.502904) - Old Polarization: (0.782627,-0.312834,0.538173) - New Momentum Direction: (-0.596034,-0.625964,-0.502904) - New Polarization: (-0.782627,0.312834,0.538173) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 660, parentID 1) is processed with stopping code 2 -### pop requested out of 230 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.832239,-0.253809,-0.492908) - Old Polarization: (-0.524303,-0.64932,-0.550899) - New Momentum Direction: (0.659582,-0.344093,-0.668246) - New Polarization: (-0.730067,-0.504729,-0.460707) + Old Momentum Direction: (0.481141,0.130379,0.866894) + Old Polarization: (-0.867835,-0.0689898,0.492039) + New Momentum Direction: (0.651583,0.176565,0.737743) + New Polarization: (-0.744243,-0.0393771,0.666747) *** FresnelRefraction *** -Track (trackID 659, parentID 1) is processed with stopping code 2 -### pop requested out of 229 stacked tracks. +Track (trackID 662, parentID 1) is processed with stopping code 2 +### pop requested out of 332 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.840275,-0.287358,-0.459743) - Old Polarization: (-0.515643,-0.685542,-0.51395) - New Momentum Direction: (0.677642,-0.389775,-0.6236) - New Polarization: (-0.716393,-0.541393,-0.440085) + Old Momentum Direction: (-0.376147,-0.694017,0.613885) + Old Polarization: (-0.901581,0.426952,-0.0697439) + New Momentum Direction: (-0.511114,-0.207234,0.834156) + New Polarization: (-0.572821,-0.641428,-0.510339) + *** FresnelRefraction *** +Track (trackID 661, parentID 1) is processed with stopping code 2 +### pop requested out of 331 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.211823,0.244205,0.946306) + Old Polarization: (-0.72705,-0.686433,0.0143975) + New Momentum Direction: (-0.286361,0.330138,0.899448) + New Polarization: (-0.728206,-0.685077,0.0196119) + *** FresnelRefraction *** +Track (trackID 660, parentID 1) is processed with stopping code 2 +### pop requested out of 330 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.714521,-0.396414,-0.576468) + Old Polarization: (0.154089,-0.714577,0.682376) + New Momentum Direction: (-0.714521,-0.396414,-0.576468) + New Polarization: (0.0777979,-0.863891,0.497634) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.714521,-0.396414,-0.576468) + Old Polarization: (0.0777979,-0.863891,0.497634) + New Momentum Direction: (-0.714521,-0.396414,0.576468) + New Polarization: (-0.0777979,0.863891,0.497634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.714521,-0.396414,0.576468) + Old Polarization: (-0.0777979,0.863891,0.497634) + New Momentum Direction: (-0.714521,0.396414,0.576468) + New Polarization: (0.0777979,0.863891,-0.497634) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 659, parentID 1) is processed with stopping code 2 +### pop requested out of 329 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.383911,-0.381378,0.84093) + Old Polarization: (-0.920025,0.0805439,-0.383492) + New Momentum Direction: (-0.521565,-0.518124,0.677878) + New Polarization: (-0.142722,0.836287,0.52939) *** FresnelRefraction *** Track (trackID 658, parentID 1) is processed with stopping code 2 -### pop requested out of 228 stacked tracks. +### pop requested out of 328 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.555475,0.791723,0.254211) - Old Polarization: (-0.827077,0.494437,0.26735) - New Momentum Direction: (0.754661,0.55786,0.345368) - New Polarization: (0.264422,-0.740335,0.61805) + Old Momentum Direction: (-0.716553,0.366496,0.593492) + Old Polarization: (-0.445146,0.414795,-0.793593) + New Momentum Direction: (-0.335541,0.494956,0.801518) + New Polarization: (-0.639134,0.505443,-0.579685) *** FresnelRefraction *** Track (trackID 657, parentID 1) is processed with stopping code 2 -### pop requested out of 227 stacked tracks. +### pop requested out of 327 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.614665,0.607871,-0.502672) - Old Polarization: (-0.764526,0.302277,-0.569323) - New Momentum Direction: (-0.614665,0.607871,-0.502672) - New Polarization: (-0.764526,-0.302277,0.569323) + Old Momentum Direction: (-0.627302,0.366652,0.687066) + Old Polarization: (-0.686918,-0.676176,-0.266326) + New Momentum Direction: (-0.627302,0.366652,-0.687066) + New Polarization: (-0.643192,-0.741338,0.19163) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.627302,0.366652,-0.687066) + Old Polarization: (-0.643192,-0.741338,0.19163) + New Momentum Direction: (0.627302,0.366652,-0.687066) + New Polarization: (-0.643192,0.741338,-0.19163) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.614665,0.607871,-0.502672) - Old Polarization: (-0.764526,-0.302277,0.569323) - New Momentum Direction: (-0.614665,-0.607871,-0.502672) - New Polarization: (0.764526,-0.302277,-0.569323) + Old Momentum Direction: (0.627302,0.366652,-0.687066) + Old Polarization: (-0.643192,0.741338,-0.19163) + New Momentum Direction: (0.627302,-0.366652,-0.687066) + New Polarization: (0.643192,0.741338,0.19163) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.614665,-0.607871,-0.502672) - Old Polarization: (0.764526,-0.302277,-0.569323) - New Momentum Direction: (-0.614665,-0.607871,0.502672) - New Polarization: (-0.764526,0.302277,-0.569323) + Old Momentum Direction: (0.627302,-0.366652,-0.687066) + Old Polarization: (0.643192,0.741338,0.19163) + New Momentum Direction: (0.627302,-0.366652,0.687066) + New Polarization: (0.606356,0.78357,-0.135461) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.627302,-0.366652,0.687066) + Old Polarization: (0.606356,0.78357,-0.135461) + New Momentum Direction: (-0.627302,-0.366652,0.687066) + New Polarization: (0.606356,-0.78357,0.135461) *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.614665,-0.607871,0.502672) -Old Polarization: (-0.764526,0.302277,-0.569323) -New Polarization: (-0.00948387,-0.357365,-0.933917) -Polarization Change: (-0.00948387,-0.357365,-0.933917) -New Momentum Direction: (0.842698,-0.505631,0.184923) -Momentum Change: (0.842698,-0.505631,0.184923) - Photon at Boundary! - Old Momentum Direction: (0.842698,-0.505631,0.184923) - Old Polarization: (-0.00948387,-0.357365,-0.933917) - New Momentum Direction: (0.688335,-0.68126,0.249156) - New Polarization: (-0.0177354,-0.35918,-0.9331) - *** FresnelRefraction *** -Track (trackID 656, parentID 1) is processed with stopping code 2 -### pop requested out of 226 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.782641,-0.0912505,0.615748) - Old Polarization: (-0.578655,-0.471225,0.665662) - New Momentum Direction: (0.536929,-0.12367,0.834513) - New Polarization: (-0.813108,-0.339524,0.472841) - *** FresnelRefraction *** -Track (trackID 655, parentID 1) is processed with stopping code 2 -### pop requested out of 225 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.753431,0.0740539,-0.653343) - Old Polarization: (-0.610214,-0.291349,-0.736719) - New Momentum Direction: (0.463677,0.0997861,-0.880367) - New Polarization: (-0.853726,-0.215439,-0.474065) - *** FresnelRefraction *** -Track (trackID 654, parentID 1) is processed with stopping code 2 -### pop requested out of 224 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.883853,-0.464803,-0.0525491) - Old Polarization: (-0.467532,-0.881363,-0.0679224) - New Momentum Direction: (0.773404,-0.629901,-0.0712145) - New Polarization: (-0.633749,-0.77087,-0.0642051) - *** FresnelRefraction *** -Track (trackID 653, parentID 1) is processed with stopping code 2 -### pop requested out of 223 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.596698,0.662249,-0.453187) - Old Polarization: (-0.78311,0.357265,-0.50902) - New Momentum Direction: (0.596698,-0.662249,-0.453187) - New Polarization: (0.78311,0.357265,0.50902) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.596698,-0.662249,-0.453187) - Old Polarization: (0.78311,0.357265,0.50902) - New Momentum Direction: (-0.596698,-0.662249,-0.453187) - New Polarization: (0.78311,-0.357265,-0.50902) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.596698,-0.662249,-0.453187) -Old Polarization: (0.78311,-0.357265,-0.50902) -New Polarization: (0.75317,0.154944,-0.639317) -Polarization Change: (0.75317,0.154944,-0.639317) -New Momentum Direction: (0.265374,-0.96084,0.0797647) -Momentum Change: (0.265374,-0.96084,0.0797647) - Photon at Boundary! - Old Momentum Direction: (0.265374,-0.96084,0.0797647) - Old Polarization: (0.75317,0.154944,-0.639317) - New Momentum Direction: (-0.265374,-0.96084,0.0797647) - New Polarization: (0.75317,-0.154944,0.639317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.265374,-0.96084,0.0797647) - Old Polarization: (0.75317,-0.154944,0.639317) - New Momentum Direction: (-0.359225,-0.926984,0.107974) - New Polarization: (-0.388254,0.253652,0.885957) - *** FresnelRefraction *** -Track (trackID 652, parentID 1) is processed with stopping code 2 -### pop requested out of 222 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.883149,-0.442129,0.156746) - Old Polarization: (-0.464793,-0.869892,0.16509) - New Momentum Direction: (0.776404,-0.594009,0.210592) - New Polarization: (-0.627134,-0.761284,0.164773) - *** FresnelRefraction *** -Track (trackID 651, parentID 1) is processed with stopping code 2 -### pop requested out of 221 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.570885,0.756471,-0.319127) - Old Polarization: (-0.811268,0.459982,-0.360916) - New Momentum Direction: (0.773331,0.463768,-0.432294) - New Polarization: (0.0543119,-0.727802,-0.683633) - *** FresnelRefraction *** -Track (trackID 650, parentID 1) is processed with stopping code 2 -### pop requested out of 220 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.563007,0.781771,-0.268062) -Old Polarization: (-0.819449,0.48592,-0.303951) -New Polarization: (-0.953978,-0.0792286,0.28922) -Polarization Change: (-0.953978,-0.0792286,0.28922) -New Momentum Direction: (0.257206,-0.712047,0.653325) -Momentum Change: (0.257206,-0.712047,0.653325) - Photon at Boundary! - Old Momentum Direction: (0.257206,-0.712047,0.653325) - Old Polarization: (-0.953978,-0.0792286,0.28922) - New Momentum Direction: (0.257206,-0.712047,-0.653325) - New Polarization: (0.953978,0.0792286,0.28922) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.257206,-0.712047,-0.653325) - Old Polarization: (0.953978,0.0792286,0.28922) - New Momentum Direction: (0.348866,-0.305016,-0.886148) - New Polarization: (0.935874,0.16315,0.312285) - *** FresnelRefraction *** -Track (trackID 649, parentID 1) is processed with stopping code 2 -### pop requested out of 219 stacked tracks. ** Photon absorbed! ** +Track (trackID 656, parentID 1) is processed with stopping code 2 +### pop requested out of 326 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.402827,0.495149,-0.769778) + Old Polarization: (-0.871391,0.0498288,0.488053) + New Momentum Direction: (-0.547464,0.672936,-0.497434) + New Polarization: (-0.234307,-0.693916,-0.680867) + *** FresnelRefraction *** +Track (trackID 655, parentID 1) is processed with stopping code 2 +### pop requested out of 325 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0443256,0.959105,-0.27956) + Old Polarization: (-0.563267,0.255108,0.785907) + New Momentum Direction: (0.0595826,0.924789,-0.375785) + New Polarization: (-0.556697,0.34326,0.756479) + *** FresnelRefraction *** +Track (trackID 654, parentID 1) is processed with stopping code 2 +### pop requested out of 324 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.790507,-0.604265,0.0998133) + Old Polarization: (-0.0859899,-0.270864,-0.958769) + New Momentum Direction: (-0.790507,-0.604265,0.0998133) + New Polarization: (0.00649329,-0.171233,-0.985209) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.790507,-0.604265,0.0998133) + Old Polarization: (0.00649329,-0.171233,-0.985209) + New Momentum Direction: (-0.790507,0.604265,0.0998133) + New Polarization: (-0.00649329,-0.171233,0.985209) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.790507,0.604265,0.0998133) + Old Polarization: (-0.00649329,-0.171233,0.985209) + New Momentum Direction: (-0.554872,0.820813,0.135583) + New Polarization: (-0.00930254,-0.169084,0.985558) + *** FresnelRefraction *** +Track (trackID 653, parentID 1) is processed with stopping code 2 +### pop requested out of 323 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.189449,-0.127592,-0.973565) + Old Polarization: (0.30796,-0.93377,0.182304) + New Momentum Direction: (0.257331,-0.17331,-0.950655) + New Polarization: (-0.965931,-0.0741444,-0.24795) + *** FresnelRefraction *** +Track (trackID 652, parentID 1) is processed with stopping code 2 +### pop requested out of 322 stacked tracks. + +** Photon absorbed! ** +Track (trackID 651, parentID 1) is processed with stopping code 2 +### pop requested out of 321 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.895278,-0.0137472,0.445296) + Old Polarization: (0.0981792,0.981039,-0.167105) + New Momentum Direction: (0.798085,-0.018593,0.602258) + New Polarization: (0.134976,0.97964,-0.14862) + *** FresnelRefraction *** +Track (trackID 650, parentID 1) is processed with stopping code 2 +### pop requested out of 320 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.265125,0.854757,-0.446206) + Old Polarization: (0.961811,0.201789,-0.184935) + New Momentum Direction: (-0.360716,0.708046,-0.607087) + New Polarization: (0.932614,0.281281,-0.226079) + *** FresnelRefraction *** +Track (trackID 649, parentID 1) is processed with stopping code 2 +### pop requested out of 319 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.689314,-0.368785,-0.623574) + Old Polarization: (-0.282518,-0.655755,0.70012) + New Momentum Direction: (-0.183294,-0.500422,-0.846157) + New Polarization: (-0.443175,-0.726249,0.525508) + *** FresnelRefraction *** Track (trackID 648, parentID 1) is processed with stopping code 2 -### pop requested out of 218 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.637583,0.502277,-0.584128) - Old Polarization: (-0.73778,0.179859,-0.650639) - New Momentum Direction: (-0.637583,0.502277,-0.584128) - New Polarization: (-0.73778,-0.179859,0.650639) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.637583,0.502277,-0.584128) - Old Polarization: (-0.73778,-0.179859,0.650639) - New Momentum Direction: (-0.637583,0.502277,0.584128) - New Polarization: (0.73778,0.179859,0.650639) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.637583,0.502277,0.584128) - Old Polarization: (0.73778,0.179859,0.650639) - New Momentum Direction: (-0.637583,-0.502277,0.584128) - New Polarization: (-0.73778,0.179859,-0.650639) - *** TotalInternalReflection *** +### pop requested out of 318 stacked tracks. ** Photon absorbed! ** Track (trackID 647, parentID 1) is processed with stopping code 2 -### pop requested out of 217 stacked tracks. +### pop requested out of 317 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.213899,-0.366033,0.905686) +Old Polarization: (0.674982,-0.614832,-0.407898) +New Polarization: (0.905572,0.0262647,-0.423379) +Polarization Change: (0.905572,0.0262647,-0.423379) +New Momentum Direction: (0.0316971,0.991101,0.129281) +Momentum Change: (0.0316971,0.991101,0.129281) Photon at Boundary! - Old Momentum Direction: (0.733354,0.0919404,0.673601) - Old Polarization: (-0.632849,-0.269673,0.725795) - New Momentum Direction: (0.384041,0.124866,0.914834) - New Polarization: (-0.892996,-0.201597,0.402389) + Old Momentum Direction: (0.0316971,0.991101,0.129281) + Old Polarization: (0.905572,0.0262647,-0.423379) + New Momentum Direction: (0.0316971,-0.991101,0.129281) + New Polarization: (0.909483,-0.0250448,-0.414986) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0316971,-0.991101,0.129281) + Old Polarization: (0.909483,-0.0250448,-0.414986) + New Momentum Direction: (0.0316971,-0.991101,-0.129281) + New Polarization: (-0.909483,0.0250448,-0.414986) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0316971,-0.991101,-0.129281) + Old Polarization: (-0.909483,0.0250448,-0.414986) + New Momentum Direction: (0.0430595,-0.983515,-0.175624) + New Polarization: (-0.997963,-0.0340609,-0.0539358) *** FresnelRefraction *** Track (trackID 646, parentID 1) is processed with stopping code 2 -### pop requested out of 216 stacked tracks. - -** Photon absorbed! ** -Track (trackID 645, parentID 1) is processed with stopping code 2 -### pop requested out of 215 stacked tracks. +### pop requested out of 316 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.848564,-0.303493,-0.433395) - Old Polarization: (-0.504751,-0.709949,-0.49112) - New Momentum Direction: (0.700521,-0.409346,-0.584556) - New Polarization: (-0.696002,-0.572845,-0.432932) + Old Momentum Direction: (0.776172,-0.445976,0.445715) + Old Polarization: (-0.486767,0.0254856,0.87316) + New Momentum Direction: (0.515541,-0.606072,0.605718) + New Polarization: (0.677517,0.721099,0.144869) *** FresnelRefraction *** -Track (trackID 644, parentID 1) is processed with stopping code 2 -### pop requested out of 214 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.63192,0.519214,-0.575407) - Old Polarization: (-0.743667,0.19713,-0.638827) - New Momentum Direction: (-0.63192,0.519214,-0.575407) - New Polarization: (-0.743667,-0.19713,0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63192,0.519214,-0.575407) - Old Polarization: (-0.743667,-0.19713,0.638827) - New Momentum Direction: (-0.63192,0.519214,0.575407) - New Polarization: (0.743667,0.19713,0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63192,0.519214,0.575407) - Old Polarization: (0.743667,0.19713,0.638827) - New Momentum Direction: (-0.63192,-0.519214,0.575407) - New Polarization: (-0.743667,0.19713,-0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63192,-0.519214,0.575407) - Old Polarization: (-0.743667,0.19713,-0.638827) - New Momentum Direction: (0.63192,-0.519214,0.575407) - New Polarization: (-0.743667,-0.19713,0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.63192,-0.519214,0.575407) - Old Polarization: (-0.743667,-0.19713,0.638827) - New Momentum Direction: (0.63192,-0.519214,-0.575407) - New Polarization: (0.743667,0.19713,0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.63192,-0.519214,-0.575407) - Old Polarization: (0.743667,0.19713,0.638827) - New Momentum Direction: (0.63192,0.519214,-0.575407) - New Polarization: (-0.743667,0.19713,-0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.63192,0.519214,-0.575407) - Old Polarization: (-0.743667,0.19713,-0.638827) - New Momentum Direction: (-0.63192,0.519214,-0.575407) - New Polarization: (-0.743667,-0.19713,0.638827) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.63192,0.519214,-0.575407) - Old Polarization: (-0.743667,-0.19713,0.638827) - New Momentum Direction: (-0.63192,0.519214,0.575407) - New Polarization: (0.743667,0.19713,0.638827) - *** TotalInternalReflection *** +Track (trackID 645, parentID 1) is processed with stopping code 2 +### pop requested out of 315 stacked tracks. ** Photon absorbed! ** -Track (trackID 643, parentID 1) is processed with stopping code 2 -### pop requested out of 213 stacked tracks. +Track (trackID 644, parentID 1) is processed with stopping code 2 +### pop requested out of 314 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.579975,0.738032,-0.344873) - Old Polarization: (-0.803116,0.447073,-0.393865) - New Momentum Direction: (0.781401,0.41655,-0.464648) - New Polarization: (-0.0291818,-0.719388,-0.693996) + Old Momentum Direction: (0.236845,-0.120741,0.964015) + Old Polarization: (-0.358147,-0.933218,-0.0288918) + New Momentum Direction: (0.321435,-0.163864,0.932646) + New Polarization: (-0.542209,-0.839319,0.0394053) + *** FresnelRefraction *** +Track (trackID 643, parentID 1) is processed with stopping code 2 +### pop requested out of 313 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.418398,-0.849483,0.321436) + Old Polarization: (-0.732834,0.106669,-0.671995) + New Momentum Direction: (-0.564594,-0.702206,0.433752) + New Polarization: (-0.480271,-0.147887,-0.864563) *** FresnelRefraction *** Track (trackID 642, parentID 1) is processed with stopping code 2 -### pop requested out of 212 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 312 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.607287,-0.0273699,-0.794011) + Old Polarization: (0.103436,0.988176,-0.113174) + New Momentum Direction: (-0.81774,-0.0368548,-0.574407) + New Polarization: (0.0676639,0.984873,-0.159519) + *** FresnelRefraction *** Track (trackID 641, parentID 1) is processed with stopping code 2 -### pop requested out of 211 stacked tracks. +### pop requested out of 311 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.626827,0.520548,0.579757) - Old Polarization: (-0.750212,0.202283,0.629495) - New Momentum Direction: (-0.626827,0.520548,0.579757) - New Polarization: (-0.750212,-0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,0.520548,0.579757) - Old Polarization: (-0.750212,-0.202283,-0.629495) - New Momentum Direction: (-0.626827,0.520548,-0.579757) - New Polarization: (0.750212,0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,0.520548,-0.579757) - Old Polarization: (0.750212,0.202283,-0.629495) - New Momentum Direction: (-0.626827,-0.520548,-0.579757) - New Polarization: (-0.750212,0.202283,0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,-0.520548,-0.579757) - Old Polarization: (-0.750212,0.202283,0.629495) - New Momentum Direction: (0.626827,-0.520548,-0.579757) - New Polarization: (-0.750212,-0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626827,-0.520548,-0.579757) - Old Polarization: (-0.750212,-0.202283,-0.629495) - New Momentum Direction: (0.626827,-0.520548,0.579757) - New Polarization: (0.750212,0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626827,-0.520548,0.579757) - Old Polarization: (0.750212,0.202283,-0.629495) - New Momentum Direction: (0.626827,0.520548,0.579757) - New Polarization: (-0.750212,0.202283,0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626827,0.520548,0.579757) - Old Polarization: (-0.750212,0.202283,0.629495) - New Momentum Direction: (-0.626827,0.520548,0.579757) - New Polarization: (-0.750212,-0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,0.520548,0.579757) - Old Polarization: (-0.750212,-0.202283,-0.629495) - New Momentum Direction: (-0.626827,0.520548,-0.579757) - New Polarization: (0.750212,0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,0.520548,-0.579757) - Old Polarization: (0.750212,0.202283,-0.629495) - New Momentum Direction: (-0.626827,-0.520548,-0.579757) - New Polarization: (-0.750212,0.202283,0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,-0.520548,-0.579757) - Old Polarization: (-0.750212,0.202283,0.629495) - New Momentum Direction: (0.626827,-0.520548,-0.579757) - New Polarization: (-0.750212,-0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626827,-0.520548,-0.579757) - Old Polarization: (-0.750212,-0.202283,-0.629495) - New Momentum Direction: (0.626827,-0.520548,0.579757) - New Polarization: (0.750212,0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626827,-0.520548,0.579757) - Old Polarization: (0.750212,0.202283,-0.629495) - New Momentum Direction: (0.626827,0.520548,0.579757) - New Polarization: (-0.750212,0.202283,0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626827,0.520548,0.579757) - Old Polarization: (-0.750212,0.202283,0.629495) - New Momentum Direction: (-0.626827,0.520548,0.579757) - New Polarization: (-0.750212,-0.202283,-0.629495) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626827,0.520548,0.579757) - Old Polarization: (-0.750212,-0.202283,-0.629495) - New Momentum Direction: (-0.626827,0.520548,-0.579757) - New Polarization: (0.750212,0.202283,-0.629495) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (-0.233965,-0.824623,0.515032) + Old Polarization: (-0.777549,-0.159319,-0.608306) + New Momentum Direction: (-0.317538,-0.640751,0.699004) + New Polarization: (-0.79359,-0.22391,-0.565756) + *** FresnelRefraction *** Track (trackID 640, parentID 1) is processed with stopping code 2 -### pop requested out of 210 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 310 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.597816,0.00860611,0.801587) + Old Polarization: (0.778587,-0.244278,-0.57804) + New Momentum Direction: (0.811571,0.0116833,0.584137) + New Polarization: (-0.562861,-0.252437,0.78706) + *** FresnelRefraction *** Track (trackID 639, parentID 1) is processed with stopping code 2 -### pop requested out of 209 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.659019,0.388459,0.644045) - Old Polarization: (-0.714422,0.055591,0.697503) - New Momentum Direction: (-0.659019,0.388459,0.644045) - New Polarization: (-0.714422,-0.055591,-0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659019,0.388459,0.644045) - Old Polarization: (-0.714422,-0.055591,-0.697503) - New Momentum Direction: (-0.659019,0.388459,-0.644045) - New Polarization: (0.714422,0.055591,-0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659019,0.388459,-0.644045) - Old Polarization: (0.714422,0.055591,-0.697503) - New Momentum Direction: (-0.659019,-0.388459,-0.644045) - New Polarization: (-0.714422,0.055591,0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659019,-0.388459,-0.644045) - Old Polarization: (-0.714422,0.055591,0.697503) - New Momentum Direction: (0.659019,-0.388459,-0.644045) - New Polarization: (-0.714422,-0.055591,-0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659019,-0.388459,-0.644045) - Old Polarization: (-0.714422,-0.055591,-0.697503) - New Momentum Direction: (0.659019,-0.388459,0.644045) - New Polarization: (0.714422,0.055591,-0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659019,-0.388459,0.644045) - Old Polarization: (0.714422,0.055591,-0.697503) - New Momentum Direction: (-0.659019,-0.388459,0.644045) - New Polarization: (0.714422,-0.055591,0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659019,-0.388459,0.644045) - Old Polarization: (0.714422,-0.055591,0.697503) - New Momentum Direction: (-0.659019,0.388459,0.644045) - New Polarization: (-0.714422,-0.055591,-0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659019,0.388459,0.644045) - Old Polarization: (-0.714422,-0.055591,-0.697503) - New Momentum Direction: (-0.659019,0.388459,-0.644045) - New Polarization: (0.714422,0.055591,-0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659019,0.388459,-0.644045) - Old Polarization: (0.714422,0.055591,-0.697503) - New Momentum Direction: (0.659019,0.388459,-0.644045) - New Polarization: (0.714422,-0.055591,0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659019,0.388459,-0.644045) - Old Polarization: (0.714422,-0.055591,0.697503) - New Momentum Direction: (0.659019,0.388459,0.644045) - New Polarization: (-0.714422,0.055591,0.697503) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659019,0.388459,0.644045) - Old Polarization: (-0.714422,0.055591,0.697503) - New Momentum Direction: (0.659019,-0.388459,0.644045) - New Polarization: (0.714422,0.055591,-0.697503) - *** TotalInternalReflection *** +### pop requested out of 309 stacked tracks. ** Photon absorbed! ** Track (trackID 638, parentID 1) is processed with stopping code 2 -### pop requested out of 208 stacked tracks. - -** Photon absorbed! ** -Track (trackID 637, parentID 1) is processed with stopping code 2 -### pop requested out of 207 stacked tracks. +### pop requested out of 308 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.836874,-0.2712,-0.475491) - Old Polarization: (-0.519115,-0.668787,-0.532206) - New Momentum Direction: (0.670564,-0.367541,-0.644405) - New Polarization: (-0.721567,-0.524876,-0.451492) + Old Momentum Direction: (-0.319997,0.545209,-0.774822) + Old Polarization: (0.851061,0.524765,0.0177719) + New Momentum Direction: (-0.433579,0.738731,-0.516029) + New Polarization: (0.869843,0.492665,-0.0255793) + *** FresnelRefraction *** +Track (trackID 637, parentID 1) is processed with stopping code 2 +### pop requested out of 307 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.285272,-0.473956,-0.833058) + Old Polarization: (-0.36276,-0.857907,0.363869) + New Momentum Direction: (0.384949,-0.63956,-0.665415) + New Polarization: (-0.865892,-0.000724496,-0.500231) *** FresnelRefraction *** Track (trackID 636, parentID 1) is processed with stopping code 2 -### pop requested out of 206 stacked tracks. +### pop requested out of 306 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.876306,-0.446227,0.181576) - Old Polarization: (-0.476372,-0.8588,0.188499) - New Momentum Direction: (0.756662,-0.60559,0.246422) - New Polarization: (-0.649981,-0.737472,0.183465) + Old Momentum Direction: (-0.499246,0.758092,0.419582) + Old Polarization: (-0.267586,0.32568,-0.906824) + New Momentum Direction: (-0.676502,0.468073,0.568553) + New Polarization: (-0.358438,0.465136,-0.809426) *** FresnelRefraction *** Track (trackID 635, parentID 1) is processed with stopping code 2 -### pop requested out of 205 stacked tracks. +### pop requested out of 305 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.673291,0.355181,0.648479) - Old Polarization: (-0.699576,0.0221441,0.714215) - New Momentum Direction: (0.108264,0.477555,0.871906) - New Polarization: (-0.973762,-0.125652,0.189732) + Old Momentum Direction: (0.806599,-0.0766361,-0.58611) + Old Polarization: (-0.415595,-0.778626,-0.47013) + New Momentum Direction: (0.595449,-0.10416,-0.796612) + New Polarization: (0.577806,-0.633409,0.514717) *** FresnelRefraction *** Track (trackID 634, parentID 1) is processed with stopping code 2 -### pop requested out of 204 stacked tracks. +### pop requested out of 304 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.833968,-0.262988,-0.485112) - Old Polarization: (-0.522626,-0.658562,-0.541441) - New Momentum Direction: (0.662936,-0.356812,-0.65818) - New Polarization: (-0.727797,-0.513308,-0.454782) + Old Momentum Direction: (-0.599941,-0.0871803,0.79528) + Old Polarization: (0.0176148,0.992365,0.122073) + New Momentum Direction: (-0.807352,-0.11732,0.578289) + New Polarization: (-0.0200909,0.984932,0.171769) *** FresnelRefraction *** Track (trackID 633, parentID 1) is processed with stopping code 2 -### pop requested out of 203 stacked tracks. - -** Photon absorbed! ** -Track (trackID 632, parentID 1) is processed with stopping code 2 -### pop requested out of 202 stacked tracks. +### pop requested out of 303 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.84551,-0.307746,0.436354) - Old Polarization: (-0.50731,-0.71793,0.476669) - New Momentum Direction: (0.695748,-0.413983,0.586987) - New Polarization: (-0.698893,-0.57878,0.420193) + Old Momentum Direction: (-0.844442,-0.0723042,-0.530745) + Old Polarization: (0.535629,-0.122272,-0.835555) + New Momentum Direction: (-0.687242,-0.0980566,-0.71978) + New Polarization: (-0.726404,0.0847278,0.682025) + *** FresnelRefraction *** +Track (trackID 632, parentID 1) is processed with stopping code 2 +### pop requested out of 302 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.137386,-0.609997,-0.780403) + Old Polarization: (0.468666,-0.654069,0.593756) + New Momentum Direction: (0.185528,-0.823749,-0.53574) + New Polarization: (0.178489,0.564386,-0.805984) *** FresnelRefraction *** Track (trackID 631, parentID 1) is processed with stopping code 2 -### pop requested out of 201 stacked tracks. +### pop requested out of 301 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.687125,0.270585,0.674272) - Old Polarization: (-0.683351,-0.0745115,0.726278) - New Momentum Direction: (0.161427,0.367546,0.915888) - New Polarization: (-0.963815,-0.140776,0.226367) + Old Momentum Direction: (0.323795,0.098278,-0.941009) + Old Polarization: (-0.624551,0.769305,-0.134558) + New Momentum Direction: (0.438384,0.133058,-0.888884) + New Polarization: (-0.606798,0.773386,-0.183494) *** FresnelRefraction *** Track (trackID 630, parentID 1) is processed with stopping code 2 -### pop requested out of 200 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 300 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.533469,-0.835727,0.130273) + Old Polarization: (-0.807078,-0.456882,0.37401) + New Momentum Direction: (0.722658,-0.668298,0.176472) + New Polarization: (-0.67418,-0.625183,0.393227) + *** FresnelRefraction *** Track (trackID 629, parentID 1) is processed with stopping code 2 -### pop requested out of 199 stacked tracks. +### pop requested out of 299 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.617541,0.56883,0.543209) - Old Polarization: (-0.761409,0.259161,0.594215) - New Momentum Direction: (-0.617541,0.56883,0.543209) - New Polarization: (-0.761409,-0.259161,-0.594215) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617541,0.56883,0.543209) - Old Polarization: (-0.761409,-0.259161,-0.594215) - New Momentum Direction: (-0.617541,-0.56883,0.543209) - New Polarization: (0.761409,-0.259161,0.594215) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617541,-0.56883,0.543209) - Old Polarization: (0.761409,-0.259161,0.594215) - New Momentum Direction: (-0.617541,-0.56883,-0.543209) - New Polarization: (-0.761409,0.259161,0.594215) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.617541,-0.56883,-0.543209) - Old Polarization: (-0.761409,0.259161,0.594215) - New Momentum Direction: (0.617541,-0.56883,-0.543209) - New Polarization: (-0.761409,-0.259161,-0.594215) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.617541,-0.56883,-0.543209) - Old Polarization: (-0.761409,-0.259161,-0.594215) - New Momentum Direction: (0.617541,0.56883,-0.543209) - New Polarization: (0.761409,-0.259161,0.594215) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.617541,0.56883,-0.543209) - Old Polarization: (0.761409,-0.259161,0.594215) - New Momentum Direction: (0.617541,0.56883,0.543209) - New Polarization: (-0.761409,0.259161,0.594215) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.796453,-0.412596,-0.442072) + Old Polarization: (-0.365095,-0.910878,0.192373) + New Momentum Direction: (0.568433,-0.56136,-0.601464) + New Polarization: (0.512798,-0.32994,0.792577) + *** FresnelRefraction *** Track (trackID 628, parentID 1) is processed with stopping code 2 -### pop requested out of 198 stacked tracks. - -** Photon absorbed! ** -Track (trackID 627, parentID 1) is processed with stopping code 2 -### pop requested out of 197 stacked tracks. +### pop requested out of 298 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.876563,-0.42145,0.232417) - Old Polarization: (-0.472525,-0.845336,0.249254) - New Momentum Direction: (0.762306,-0.566749,0.312545) - New Polarization: (-0.640881,-0.728398,0.242298) + Old Momentum Direction: (-0.900883,0.184145,0.393066) + Old Polarization: (-0.164858,-0.982852,0.0826066) + New Momentum Direction: (-0.807635,0.250165,0.533989) + New Polarization: (-0.227158,-0.967652,0.109763) + *** FresnelRefraction *** +Track (trackID 627, parentID 1) is processed with stopping code 2 +### pop requested out of 297 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.134157,0.848312,0.512219) + Old Polarization: (0.964152,-0.231155,0.130303) + New Momentum Direction: (0.181431,0.698018,0.692714) + New Polarization: (0.786352,0.320022,-0.528428) *** FresnelRefraction *** Track (trackID 626, parentID 1) is processed with stopping code 2 -### pop requested out of 196 stacked tracks. +### pop requested out of 296 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.669329,-0.375087,0.641333) + Old Polarization: (-0.611812,0.768006,-0.189346) + New Momentum Direction: (0.669329,-0.375087,0.641333) + New Polarization: (-0.611812,-0.768006,0.189346) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.669329,-0.375087,0.641333) + Old Polarization: (-0.611812,-0.768006,0.189346) + New Momentum Direction: (0.669329,-0.375087,-0.641333) + New Polarization: (0.611812,0.768006,0.189346) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.669329,-0.375087,-0.641333) + Old Polarization: (0.611812,0.768006,0.189346) + New Momentum Direction: (0.669329,0.375087,-0.641333) + New Polarization: (-0.611812,0.768006,-0.189346) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.669329,0.375087,-0.641333) + Old Polarization: (-0.611812,0.768006,-0.189346) + New Momentum Direction: (-0.669329,0.375087,-0.641333) + New Polarization: (-0.611812,-0.768006,0.189346) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.669329,0.375087,-0.641333) + Old Polarization: (-0.611812,-0.768006,0.189346) + New Momentum Direction: (-0.669329,0.375087,0.641333) + New Polarization: (0.611812,0.768006,0.189346) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 625, parentID 1) is processed with stopping code 2 -### pop requested out of 195 stacked tracks. +### pop requested out of 295 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.545019,0.838319,-0.0132088) - Old Polarization: (-0.838316,0.544629,-0.0246045) - New Momentum Direction: (0.74078,0.671508,-0.0179532) - New Polarization: (0.670193,-0.740619,-0.0482154) + Old Momentum Direction: (-0.262122,-0.948506,-0.177842) + Old Polarization: (-0.961965,0.242125,0.126485) + New Momentum Direction: (-0.354056,-0.903848,-0.240217) + New Polarization: (0.212951,-0.328022,0.920355) *** FresnelRefraction *** Track (trackID 624, parentID 1) is processed with stopping code 2 -### pop requested out of 194 stacked tracks. +### pop requested out of 294 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.802267,-0.167028,0.573123) - Old Polarization: (-0.557177,-0.554142,0.61845) - New Momentum Direction: (0.587386,-0.226439,0.776983) - New Polarization: (-0.781181,-0.409537,0.471206) + Old Momentum Direction: (0.255188,-0.332291,0.907999) + Old Polarization: (0.783899,-0.478645,-0.395475) + New Momentum Direction: (0.345825,-0.450315,0.823178) + New Polarization: (-0.215572,0.815709,0.536793) *** FresnelRefraction *** Track (trackID 623, parentID 1) is processed with stopping code 2 -### pop requested out of 193 stacked tracks. +### pop requested out of 293 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.585515,0.666277,0.461787) - Old Polarization: (-0.793933,0.356176,0.492756) - New Momentum Direction: (0.585515,-0.666277,0.461787) - New Polarization: (0.793933,0.356176,-0.492756) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.585515,-0.666277,0.461787) - Old Polarization: (0.793933,0.356176,-0.492756) - New Momentum Direction: (-0.585515,-0.666277,0.461787) - New Polarization: (0.793933,-0.356176,0.492756) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.585515,-0.666277,0.461787) - Old Polarization: (0.793933,-0.356176,0.492756) - New Momentum Direction: (-0.585515,-0.666277,-0.461787) - New Polarization: (-0.793933,0.356176,0.492756) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.585515,-0.666277,-0.461787) - Old Polarization: (-0.793933,0.356176,0.492756) - New Momentum Direction: (-0.585515,0.666277,-0.461787) - New Polarization: (0.793933,0.356176,-0.492756) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.585515,0.666277,-0.461787) - Old Polarization: (0.793933,0.356176,-0.492756) - New Momentum Direction: (0.585515,0.666277,-0.461787) - New Polarization: (0.793933,-0.356176,0.492756) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (-0.425275,-0.894132,0.140249) + Old Polarization: (0.894717,-0.391969,0.214108) + New Momentum Direction: (-0.57316,-0.797346,0.189019) + New Polarization: (0.814897,-0.530343,0.233836) + *** FresnelRefraction *** Track (trackID 622, parentID 1) is processed with stopping code 2 -### pop requested out of 192 stacked tracks. - -** Photon absorbed! ** -Track (trackID 621, parentID 1) is processed with stopping code 2 -### pop requested out of 191 stacked tracks. +### pop requested out of 292 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.879295,-0.459576,0.125022) - Old Polarization: (-0.473545,-0.871669,0.126284) - New Momentum Direction: (0.762405,-0.624408,0.169862) - New Polarization: (-0.645166,-0.753749,0.124992) + Old Momentum Direction: (0.669441,-0.69466,-0.263243) + Old Polarization: (-0.158301,-0.47962,0.863079) + New Momentum Direction: (0.900512,-0.252363,-0.354107) + New Polarization: (0.0870924,-0.693176,0.715488) + *** FresnelRefraction *** +Track (trackID 621, parentID 1) is processed with stopping code 2 +### pop requested out of 291 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.501551,0.824642,-0.261558) +Old Polarization: (0.0956693,-0.353347,-0.930587) +New Polarization: (0.417782,0.603116,0.679492) +Polarization Change: (0.417782,0.603116,0.679492) +New Momentum Direction: (0.729244,0.223479,-0.646731) +Momentum Change: (0.729244,0.223479,-0.646731) + Photon at Boundary! + Old Momentum Direction: (0.729244,0.223479,-0.646731) + Old Polarization: (0.417782,0.603116,0.679492) + New Momentum Direction: (0.370894,0.303307,-0.877748) + New Polarization: (0.60187,0.64129,0.47592) *** FresnelRefraction *** Track (trackID 620, parentID 1) is processed with stopping code 2 -### pop requested out of 190 stacked tracks. +### pop requested out of 290 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.607591,0.605251,0.5143) - Old Polarization: (-0.772208,0.298666,0.560797) - New Momentum Direction: (-0.607591,0.605251,0.5143) - New Polarization: (-0.772208,-0.298666,-0.560797) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.607591,0.605251,0.5143) - Old Polarization: (-0.772208,-0.298666,-0.560797) - New Momentum Direction: (-0.607591,-0.605251,0.5143) - New Polarization: (0.772208,-0.298666,0.560797) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.607591,-0.605251,0.5143) - Old Polarization: (0.772208,-0.298666,0.560797) - New Momentum Direction: (-0.607591,-0.605251,-0.5143) - New Polarization: (-0.772208,0.298666,0.560797) - *** TotalInternalReflection *** + Old Momentum Direction: (-0.852693,0.30886,-0.421332) + Old Polarization: (0.522271,0.522788,-0.673741) + New Momentum Direction: (-0.704622,0.419519,-0.572287) + New Polarization: (-0.709401,-0.398217,0.581527) + *** FresnelRefraction *** +Track (trackID 619, parentID 1) is processed with stopping code 2 +### pop requested out of 289 stacked tracks. ** Photon absorbed! ** -Track (trackID 619, parentID 1) is processed with stopping code 2 -### pop requested out of 189 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.557438,0.785239,0.26956) - Old Polarization: (-0.82513,0.488112,0.284441) - New Momentum Direction: (0.756932,0.541365,0.36603) - New Polarization: (0.220277,-0.738698,0.637027) - *** FresnelRefraction *** Track (trackID 618, parentID 1) is processed with stopping code 2 -### pop requested out of 188 stacked tracks. +### pop requested out of 288 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.580954,0.683731,0.441592) - Old Polarization: (-0.798818,0.374874,0.470488) - New Momentum Direction: (0.790375,0.119898,0.600776) - New Polarization: (-0.357908,-0.705527,0.611664) + Old Momentum Direction: (0.209564,0.445937,0.870185) + Old Polarization: (-0.74273,0.651415,-0.154956) + New Momentum Direction: (0.284624,0.60566,0.743078) + New Polarization: (-0.958602,0.186661,0.215035) *** FresnelRefraction *** Track (trackID 617, parentID 1) is processed with stopping code 2 -### pop requested out of 187 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 287 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.530673,0.0552762,0.845772) + Old Polarization: (-0.363782,-0.886432,0.286185) + New Momentum Direction: (0.718814,0.0748735,0.691159) + New Polarization: (-0.290043,-0.871227,0.396029) + *** FresnelRefraction *** Track (trackID 616, parentID 1) is processed with stopping code 2 -### pop requested out of 186 stacked tracks. +### pop requested out of 286 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.656787,0.420435,0.625992) + Old Polarization: (-0.733798,0.165121,0.658996) + New Momentum Direction: (-0.656787,0.420435,0.625992) + New Polarization: (-0.733798,-0.165121,-0.658996) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656787,0.420435,0.625992) + Old Polarization: (-0.733798,-0.165121,-0.658996) + New Momentum Direction: (-0.656787,0.420435,-0.625992) + New Polarization: (0.733798,0.165121,-0.658996) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656787,0.420435,-0.625992) + Old Polarization: (0.733798,0.165121,-0.658996) + New Momentum Direction: (-0.656787,-0.420435,-0.625992) + New Polarization: (-0.733798,0.165121,0.658996) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 615, parentID 1) is processed with stopping code 2 -### pop requested out of 185 stacked tracks. +### pop requested out of 285 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.862421,-0.391873,0.320415) - Old Polarization: (-0.491041,-0.801378,0.341572) - New Momentum Direction: (0.727647,-0.531036,0.434202) - New Polarization: (-0.675095,-0.666573,0.316112) - *** FresnelRefraction *** + Old Momentum Direction: (0.651757,0.572425,-0.497536) + Old Polarization: (-0.740614,0.339015,-0.580138) + New Momentum Direction: (-0.651757,0.572425,-0.497536) + New Polarization: (-0.740614,-0.339015,0.580138) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 614, parentID 1) is processed with stopping code 2 -### pop requested out of 184 stacked tracks. +### pop requested out of 284 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.634145,0.552491,0.540938) + Old Polarization: (-0.759359,0.313154,0.570359) + New Momentum Direction: (-0.634145,0.552491,0.540938) + New Polarization: (-0.759359,-0.313154,-0.570359) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.634145,0.552491,0.540938) + Old Polarization: (-0.759359,-0.313154,-0.570359) + New Momentum Direction: (-0.634145,-0.552491,0.540938) + New Polarization: (0.759359,-0.313154,0.570359) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.634145,-0.552491,0.540938) + Old Polarization: (0.759359,-0.313154,0.570359) + New Momentum Direction: (-0.634145,-0.552491,-0.540938) + New Polarization: (-0.759359,0.313154,0.570359) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 613, parentID 1) is processed with stopping code 2 -### pop requested out of 183 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.725085,0.1587,-0.670124) -Old Polarization: (-0.641905,-0.19668,-0.74113) -New Polarization: (0.0291042,-0.0705079,0.997087) -Polarization Change: (0.0291042,-0.0705079,0.997087) -New Momentum Direction: (0.927949,0.372706,-0.000730675) -Momentum Change: (0.927949,0.372706,-0.000730675) +### pop requested out of 283 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.927949,0.372706,-0.000730675) - Old Polarization: (0.0291042,-0.0705079,0.997087) - New Momentum Direction: (0.862192,0.506581,-0.000993131) - New Polarization: (-0.0542256,0.09424,0.994072) + Old Momentum Direction: (0.819743,-0.271361,-0.504365) + Old Polarization: (-0.55481,-0.594814,-0.581706) + New Momentum Direction: (0.631715,-0.367291,-0.682666) + New Polarization: (0.752682,0.0798991,0.653518) *** FresnelRefraction *** Track (trackID 612, parentID 1) is processed with stopping code 2 -### pop requested out of 182 stacked tracks. +### pop requested out of 282 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.552046,0.824892,-0.121645) - Old Polarization: (-0.832087,0.535626,-0.144) - New Momentum Direction: (0.747591,0.643405,-0.164733) - New Polarization: (0.560749,-0.744381,-0.362572) - *** FresnelRefraction *** + Old Momentum Direction: (0.670857,0.366149,0.644892) + Old Polarization: (-0.718983,0.108069,0.686574) + New Momentum Direction: (-0.670857,0.366149,0.644892) + New Polarization: (-0.718983,-0.108069,-0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670857,0.366149,0.644892) + Old Polarization: (-0.718983,-0.108069,-0.686574) + New Momentum Direction: (-0.670857,0.366149,-0.644892) + New Polarization: (0.718983,0.108069,-0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670857,0.366149,-0.644892) + Old Polarization: (0.718983,0.108069,-0.686574) + New Momentum Direction: (-0.670857,-0.366149,-0.644892) + New Polarization: (-0.718983,0.108069,0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670857,-0.366149,-0.644892) + Old Polarization: (-0.718983,0.108069,0.686574) + New Momentum Direction: (0.670857,-0.366149,-0.644892) + New Polarization: (-0.718983,-0.108069,-0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670857,-0.366149,-0.644892) + Old Polarization: (-0.718983,-0.108069,-0.686574) + New Momentum Direction: (0.670857,-0.366149,0.644892) + New Polarization: (0.718983,0.108069,-0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.670857,-0.366149,0.644892) + Old Polarization: (0.718983,0.108069,-0.686574) + New Momentum Direction: (-0.670857,-0.366149,0.644892) + New Polarization: (0.718983,-0.108069,0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670857,-0.366149,0.644892) + Old Polarization: (0.718983,-0.108069,0.686574) + New Momentum Direction: (-0.670857,-0.366149,-0.644892) + New Polarization: (-0.718983,0.108069,0.686574) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670857,-0.366149,-0.644892) + Old Polarization: (-0.718983,0.108069,0.686574) + New Momentum Direction: (-0.670857,0.366149,-0.644892) + New Polarization: (0.718983,0.108069,-0.686574) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 611, parentID 1) is processed with stopping code 2 -### pop requested out of 181 stacked tracks. +### pop requested out of 281 stacked tracks. ** Photon absorbed! ** Track (trackID 610, parentID 1) is processed with stopping code 2 -### pop requested out of 180 stacked tracks. +### pop requested out of 280 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.701865,0.265529,-0.660968) - Old Polarization: (-0.667427,-0.0790259,-0.74047) - New Momentum Direction: (0.270981,0.358825,-0.893204) - New Polarization: (-0.935653,-0.119775,-0.331975) + Old Momentum Direction: (0.706046,0.181076,0.684624) + Old Polarization: (-0.679963,-0.0967665,0.726833) + New Momentum Direction: (0.284339,0.245143,0.926853) + New Polarization: (0.928777,-0.310174,-0.202892) *** FresnelRefraction *** Track (trackID 609, parentID 1) is processed with stopping code 2 -### pop requested out of 179 stacked tracks. +### pop requested out of 279 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.857361,-0.358475,0.369362) - Old Polarization: (-0.494849,-0.77151,0.399872) - New Momentum Direction: (0.720022,-0.483303,0.497982) - New Polarization: (-0.679563,-0.636432,0.364895) + Old Momentum Direction: (0.596519,0.785487,-0.164849) + Old Polarization: (-0.799598,0.56387,-0.206626) + New Momentum Direction: (0.809884,0.542214,-0.223813) + New Polarization: (-0.585272,0.772495,-0.246391) *** FresnelRefraction *** Track (trackID 608, parentID 1) is processed with stopping code 2 -### pop requested out of 178 stacked tracks. +### pop requested out of 278 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.646341,0.462321,0.607044) - Old Polarization: (-0.729788,0.142218,0.668718) - New Momentum Direction: (-0.646341,0.462321,0.607044) - New Polarization: (-0.729788,-0.142218,-0.668718) + Old Momentum Direction: (0.844916,-0.399437,-0.355762) + Old Polarization: (-0.526387,-0.739082,-0.420326) + New Momentum Direction: (0.691658,-0.539324,-0.480353) + New Polarization: (0.711381,0.393921,0.582034) + *** FresnelRefraction *** +Track (trackID 607, parentID 1) is processed with stopping code 2 +### pop requested out of 277 stacked tracks. + +** Photon absorbed! ** +Track (trackID 606, parentID 1) is processed with stopping code 2 +### pop requested out of 276 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.63862,0.53616,0.551993) + Old Polarization: (-0.754809,0.296847,0.584932) + New Momentum Direction: (-0.63862,0.53616,0.551993) + New Polarization: (-0.754809,-0.296847,-0.584932) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.646341,0.462321,0.607044) - Old Polarization: (-0.729788,-0.142218,-0.668718) - New Momentum Direction: (-0.646341,0.462321,-0.607044) - New Polarization: (0.729788,0.142218,-0.668718) + Old Momentum Direction: (-0.63862,0.53616,0.551993) + Old Polarization: (-0.754809,-0.296847,-0.584932) + New Momentum Direction: (-0.63862,0.53616,-0.551993) + New Polarization: (0.754809,0.296847,-0.584932) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.646341,0.462321,-0.607044) - Old Polarization: (0.729788,0.142218,-0.668718) - New Momentum Direction: (-0.646341,-0.462321,-0.607044) - New Polarization: (-0.729788,0.142218,0.668718) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646341,-0.462321,-0.607044) - Old Polarization: (-0.729788,0.142218,0.668718) - New Momentum Direction: (-0.646341,-0.462321,0.607044) - New Polarization: (0.729788,-0.142218,0.668718) + Old Momentum Direction: (-0.63862,0.53616,-0.551993) + Old Polarization: (0.754809,0.296847,-0.584932) + New Momentum Direction: (-0.63862,-0.53616,-0.551993) + New Polarization: (-0.754809,0.296847,0.584932) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 607, parentID 1) is processed with stopping code 2 -### pop requested out of 177 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.546083,0.833368,0.085392) - Old Polarization: (-0.837413,0.540221,0.0830695) - New Momentum Direction: (0.741751,0.66057,0.115989) - New Polarization: (0.621577,-0.742043,0.251027) - *** FresnelRefraction *** -Track (trackID 606, parentID 1) is processed with stopping code 2 -### pop requested out of 176 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.733053,0.147025,-0.664091) - Old Polarization: (-0.632945,-0.210014,-0.745168) - New Momentum Direction: (0.395516,0.198533,-0.896745) - New Polarization: (-0.887485,-0.16881,-0.428806) - *** FresnelRefraction *** Track (trackID 605, parentID 1) is processed with stopping code 2 -### pop requested out of 175 stacked tracks. +### pop requested out of 275 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.564515,0.792144,-0.232016) - Old Polarization: (-0.819964,0.505898,-0.267818) - New Momentum Direction: (0.761257,0.567975,-0.312878) - New Polarization: (0.310685,-0.742983,-0.592833) + Old Momentum Direction: (0.594166,0.791258,-0.144493) + Old Polarization: (-0.801839,0.568518,-0.183963) + New Momentum Direction: (0.807559,0.55613,-0.196387) + New Polarization: (-0.58896,0.778036,-0.2186) *** FresnelRefraction *** Track (trackID 604, parentID 1) is processed with stopping code 2 -### pop requested out of 174 stacked tracks. +### pop requested out of 274 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.625084,0.531626,0.571528) - Old Polarization: (-0.75245,0.215683,0.622334) - New Momentum Direction: (-0.625084,0.531626,0.571528) - New Polarization: (-0.75245,-0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625084,0.531626,0.571528) - Old Polarization: (-0.75245,-0.215683,-0.622334) - New Momentum Direction: (-0.625084,0.531626,-0.571528) - New Polarization: (0.75245,0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625084,0.531626,-0.571528) - Old Polarization: (0.75245,0.215683,-0.622334) - New Momentum Direction: (-0.625084,-0.531626,-0.571528) - New Polarization: (-0.75245,0.215683,0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625084,-0.531626,-0.571528) - Old Polarization: (-0.75245,0.215683,0.622334) - New Momentum Direction: (0.625084,-0.531626,-0.571528) - New Polarization: (-0.75245,-0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625084,-0.531626,-0.571528) - Old Polarization: (-0.75245,-0.215683,-0.622334) - New Momentum Direction: (0.625084,-0.531626,0.571528) - New Polarization: (0.75245,0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625084,-0.531626,0.571528) - Old Polarization: (0.75245,0.215683,-0.622334) - New Momentum Direction: (0.625084,0.531626,0.571528) - New Polarization: (-0.75245,0.215683,0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625084,0.531626,0.571528) - Old Polarization: (-0.75245,0.215683,0.622334) - New Momentum Direction: (-0.625084,0.531626,0.571528) - New Polarization: (-0.75245,-0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625084,0.531626,0.571528) - Old Polarization: (-0.75245,-0.215683,-0.622334) - New Momentum Direction: (-0.625084,0.531626,-0.571528) - New Polarization: (0.75245,0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625084,0.531626,-0.571528) - Old Polarization: (0.75245,0.215683,-0.622334) - New Momentum Direction: (-0.625084,-0.531626,-0.571528) - New Polarization: (-0.75245,0.215683,0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.625084,-0.531626,-0.571528) - Old Polarization: (-0.75245,0.215683,0.622334) - New Momentum Direction: (0.625084,-0.531626,-0.571528) - New Polarization: (-0.75245,-0.215683,-0.622334) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.625084,-0.531626,-0.571528) - Old Polarization: (-0.75245,-0.215683,-0.622334) - New Momentum Direction: (0.625084,-0.531626,0.571528) - New Polarization: (0.75245,0.215683,-0.622334) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.846779,-0.478573,0.232234) + Old Polarization: (-0.525708,-0.819542,0.227995) + New Momentum Direction: (0.692308,-0.649202,0.315035) + New Polarization: (0.713633,0.551264,-0.432245) + *** FresnelRefraction *** Track (trackID 603, parentID 1) is processed with stopping code 2 -### pop requested out of 173 stacked tracks. +### pop requested out of 273 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.799987,-0.1127,-0.589338) - Old Polarization: (-0.558761,-0.497846,-0.663276) - New Momentum Direction: (0.586755,-0.152097,-0.795352) - New Polarization: (-0.780383,-0.368391,-0.505263) + Old Momentum Direction: (0.723895,0.105743,0.681758) + Old Polarization: (-0.660343,-0.179994,0.729074) + New Momentum Direction: (0.365176,0.142686,0.919939) + New Polarization: (0.897771,-0.315401,-0.307456) *** FresnelRefraction *** Track (trackID 602, parentID 1) is processed with stopping code 2 -### pop requested out of 172 stacked tracks. +### pop requested out of 272 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.623767,0.601505,0.499106) + Old Polarization: (-0.770423,0.365509,0.522352) + New Momentum Direction: (-0.623767,0.601505,0.499106) + New Polarization: (-0.770423,-0.365509,-0.522352) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623767,0.601505,0.499106) + Old Polarization: (-0.770423,-0.365509,-0.522352) + New Momentum Direction: (-0.623767,-0.601505,0.499106) + New Polarization: (0.770423,-0.365509,0.522352) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623767,-0.601505,0.499106) + Old Polarization: (0.770423,-0.365509,0.522352) + New Momentum Direction: (-0.623767,-0.601505,-0.499106) + New Polarization: (-0.770423,0.365509,0.522352) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 601, parentID 1) is processed with stopping code 2 -### pop requested out of 171 stacked tracks. +### pop requested out of 271 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.688023,0.264764,0.675666) - Old Polarization: (-0.682321,-0.0810199,0.726549) - New Momentum Direction: (0.163774,0.359919,0.918497) - New Polarization: (-0.963308,-0.142344,0.227543) + Old Momentum Direction: (0.862818,-0.502563,-0.0545497) + Old Polarization: (-0.505507,-0.858377,-0.0874696) + New Momentum Direction: (0.732863,-0.676403,-0.0734188) + New Polarization: (0.680366,0.727976,0.0845826) *** FresnelRefraction *** Track (trackID 600, parentID 1) is processed with stopping code 2 -### pop requested out of 170 stacked tracks. +### pop requested out of 270 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.570781,0.770968,-0.282519) - Old Polarization: (-0.813222,0.48323,-0.324283) - New Momentum Direction: (0.769264,0.513081,-0.380763) - New Polarization: (0.165992,-0.735963,-0.656358) + Old Momentum Direction: (0.69986,0.324263,-0.636434) + Old Polarization: (-0.686683,0.060162,-0.724464) + New Momentum Direction: (0.249388,0.439629,-0.862863) + New Polarization: (0.93992,-0.324397,0.106379) *** FresnelRefraction *** Track (trackID 599, parentID 1) is processed with stopping code 2 -### pop requested out of 169 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.715146,0.161474,0.680068) - Old Polarization: (-0.652745,-0.193683,0.732401) - New Momentum Direction: (0.313571,0.219364,0.923879) - New Polarization: (-0.921143,-0.16599,0.352054) - *** FresnelRefraction *** +### pop requested out of 269 stacked tracks. + +** Photon absorbed! ** Track (trackID 598, parentID 1) is processed with stopping code 2 -### pop requested out of 168 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.742035,0.093103,-0.663864) -Old Polarization: (-0.623411,-0.268249,-0.734439) -New Polarization: (0.181783,0.137129,0.97373) -Polarization Change: (0.181783,0.137129,0.97373) -New Momentum Direction: (-0.929771,-0.2984,0.2156) -Momentum Change: (-0.929771,-0.2984,0.2156) - -** Photon absorbed! ** +### pop requested out of 268 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.794334,-0.2411,0.557589) + Old Polarization: (-0.582775,-0.561543,0.587404) + New Momentum Direction: (0.5692,-0.326317,0.754671) + New Polarization: (0.791744,-0.0299621,-0.610117) + *** FresnelRefraction *** Track (trackID 597, parentID 1) is processed with stopping code 2 -### pop requested out of 167 stacked tracks. +### pop requested out of 267 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.583695,0.72954,-0.356471) - Old Polarization: (-0.799623,0.440183,-0.408463) - New Momentum Direction: (0.583695,-0.72954,-0.356471) - New Polarization: (0.310205,-0.205362,0.928224) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.583695,-0.72954,-0.356471) - Old Polarization: (0.310205,-0.205362,0.928224) - New Momentum Direction: (-0.583695,-0.72954,-0.356471) - New Polarization: (0.310205,0.205362,-0.928224) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.596074,0.759678,0.25997) + Old Polarization: (-0.800916,0.539633,0.259481) + New Momentum Direction: (0.807105,0.473995,0.352009) + New Polarization: (-0.58048,0.745947,0.326506) + *** FresnelRefraction *** Track (trackID 596, parentID 1) is processed with stopping code 2 -### pop requested out of 166 stacked tracks. +### pop requested out of 266 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.820085,-0.229572,0.524173) - Old Polarization: (-0.537193,-0.624497,0.566945) - New Momentum Direction: (0.632647,-0.31069,0.709387) - New Polarization: (-0.749352,-0.476848,0.459444) + Old Momentum Direction: (0.795881,-0.151639,-0.586157) + Old Polarization: (-0.581313,-0.462035,-0.669775) + New Momentum Direction: (0.5715,-0.205525,-0.794448) + New Polarization: (0.790802,-0.12059,0.600075) *** FresnelRefraction *** Track (trackID 595, parentID 1) is processed with stopping code 2 -### pop requested out of 165 stacked tracks. +### pop requested out of 265 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.807864,-0.315569,0.497767) +Old Polarization: (-0.5686,-0.639548,0.517371) +New Polarization: (0.0329908,0.319849,0.946894) +Polarization Change: (0.0329908,0.319849,0.946894) +New Momentum Direction: (-0.599073,-0.752026,0.274897) +Momentum Change: (-0.599073,-0.752026,0.274897) Photon at Boundary! - Old Momentum Direction: (0.555477,0.818843,0.144712) - Old Polarization: (-0.830279,0.536625,0.150568) - New Momentum Direction: (0.748549,0.633755,0.195011) - New Polarization: (0.525852,-0.746533,0.407636) + Old Momentum Direction: (-0.599073,-0.752026,0.274897) + Old Polarization: (0.0329908,0.319849,0.946894) + New Momentum Direction: (-0.813713,-0.44548,0.373389) + New Polarization: (0.565927,-0.460562,0.683819) *** FresnelRefraction *** Track (trackID 594, parentID 1) is processed with stopping code 2 -### pop requested out of 164 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.880287,-0.455363,0.133194) - Old Polarization: (-0.471348,-0.871388,0.136069) - New Momentum Direction: (0.766032,-0.616952,0.180459) - New Polarization: (-0.640602,-0.75592,0.134961) - *** FresnelRefraction *** +### pop requested out of 264 stacked tracks. + +** Photon absorbed! ** Track (trackID 593, parentID 1) is processed with stopping code 2 -### pop requested out of 163 stacked tracks. - -** Photon absorbed! ** -Track (trackID 592, parentID 1) is processed with stopping code 2 -### pop requested out of 162 stacked tracks. - -** Photon absorbed! ** -Track (trackID 591, parentID 1) is processed with stopping code 2 -### pop requested out of 161 stacked tracks. +### pop requested out of 263 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.673979,0.363444,-0.643165) - Old Polarization: (-0.697896,0.0277296,-0.715662) - New Momentum Direction: (-0.673979,0.363444,-0.643165) - New Polarization: (-0.697896,-0.0277296,0.715662) + Old Momentum Direction: (0.656142,0.423708,0.624459) + Old Polarization: (-0.734502,0.168699,0.657303) + New Momentum Direction: (-0.656142,0.423708,0.624459) + New Polarization: (-0.734502,-0.168699,-0.657303) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.673979,0.363444,-0.643165) - Old Polarization: (-0.697896,-0.0277296,0.715662) - New Momentum Direction: (-0.673979,0.363444,0.643165) - New Polarization: (0.697896,0.0277296,0.715662) + Old Momentum Direction: (-0.656142,0.423708,0.624459) + Old Polarization: (-0.734502,-0.168699,-0.657303) + New Momentum Direction: (-0.656142,0.423708,-0.624459) + New Polarization: (0.734502,0.168699,-0.657303) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.673979,0.363444,0.643165) - Old Polarization: (0.697896,0.0277296,0.715662) - New Momentum Direction: (-0.673979,-0.363444,0.643165) - New Polarization: (-0.697896,0.0277296,-0.715662) + Old Momentum Direction: (-0.656142,0.423708,-0.624459) + Old Polarization: (0.734502,0.168699,-0.657303) + New Momentum Direction: (-0.656142,-0.423708,-0.624459) + New Polarization: (-0.734502,0.168699,0.657303) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.673979,-0.363444,0.643165) - Old Polarization: (-0.697896,0.0277296,-0.715662) - New Momentum Direction: (0.673979,-0.363444,0.643165) - New Polarization: (-0.697896,-0.0277296,0.715662) + Old Momentum Direction: (-0.656142,-0.423708,-0.624459) + Old Polarization: (-0.734502,0.168699,0.657303) + New Momentum Direction: (0.656142,-0.423708,-0.624459) + New Polarization: (-0.734502,-0.168699,-0.657303) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.673979,-0.363444,0.643165) - Old Polarization: (-0.697896,-0.0277296,0.715662) - New Momentum Direction: (0.673979,-0.363444,-0.643165) - New Polarization: (0.697896,0.0277296,0.715662) + Old Momentum Direction: (0.656142,-0.423708,-0.624459) + Old Polarization: (-0.734502,-0.168699,-0.657303) + New Momentum Direction: (0.656142,-0.423708,0.624459) + New Polarization: (0.734502,0.168699,-0.657303) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656142,-0.423708,0.624459) + Old Polarization: (0.734502,0.168699,-0.657303) + New Momentum Direction: (0.656142,0.423708,0.624459) + New Polarization: (-0.734502,0.168699,0.657303) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656142,0.423708,0.624459) + Old Polarization: (-0.734502,0.168699,0.657303) + New Momentum Direction: (-0.656142,0.423708,0.624459) + New Polarization: (-0.734502,-0.168699,-0.657303) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656142,0.423708,0.624459) + Old Polarization: (-0.734502,-0.168699,-0.657303) + New Momentum Direction: (-0.656142,0.423708,-0.624459) + New Polarization: (0.734502,0.168699,-0.657303) *** TotalInternalReflection *** Scattering Photon! -Old Momentum Direction: (0.673979,-0.363444,-0.643165) -Old Polarization: (0.697896,0.0277296,0.715662) -New Polarization: (0.0158642,-0.938892,-0.343846) -Polarization Change: (0.0158642,-0.938892,-0.343846) -New Momentum Direction: (0.727253,-0.225167,0.648385) -Momentum Change: (0.727253,-0.225167,0.648385) +Old Momentum Direction: (-0.656142,0.423708,-0.624459) +Old Polarization: (0.734502,0.168699,-0.657303) +New Polarization: (-0.25327,0.0357634,0.966734) +Polarization Change: (-0.25327,0.0357634,0.966734) +New Momentum Direction: (-0.91211,-0.341816,-0.226314) +Momentum Change: (-0.91211,-0.341816,-0.226314) Photon at Boundary! - Old Momentum Direction: (0.727253,-0.225167,0.648385) - Old Polarization: (0.0158642,-0.938892,-0.343846) - New Momentum Direction: (0.366148,-0.305274,0.879059) - New Polarization: (-0.0322108,-0.94825,-0.315886) + Old Momentum Direction: (-0.91211,-0.341816,-0.226314) + Old Polarization: (-0.25327,0.0357634,0.966734) + New Momentum Direction: (-0.831021,-0.463797,-0.307077) + New Polarization: (-0.346642,6.48842e-05,0.937997) *** FresnelRefraction *** +Track (trackID 592, parentID 1) is processed with stopping code 2 +### pop requested out of 262 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.855144,-0.487534,-0.176181) + Old Polarization: (-0.516915,-0.827583,-0.218872) + New Momentum Direction: (0.710165,-0.662128,-0.239275) + New Polarization: (0.70214,0.641169,0.309681) + *** FresnelRefraction *** +Track (trackID 591, parentID 1) is processed with stopping code 2 +### pop requested out of 261 stacked tracks. + +** Photon absorbed! ** Track (trackID 590, parentID 1) is processed with stopping code 2 -### pop requested out of 160 stacked tracks. +### pop requested out of 260 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.857332,-0.504964,0.0999665) + Old Polarization: (-0.512961,-0.854304,0.0838816) + New Momentum Direction: (-0.857332,-0.504964,0.0999665) + New Polarization: (-0.490677,0.74295,-0.455259) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.857332,-0.504964,0.0999665) + Old Polarization: (-0.490677,0.74295,-0.455259) + New Momentum Direction: (-0.857332,0.504964,0.0999665) + New Polarization: (0.490677,0.74295,0.455259) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 589, parentID 1) is processed with stopping code 2 -### pop requested out of 159 stacked tracks. +### pop requested out of 259 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.877075,-0.439525,-0.193797) - Old Polarization: (-0.475618,-0.851127,-0.222197) - New Momentum Direction: (0.758176,-0.596628,-0.263068) - New Polarization: (-0.648688,-0.731073,-0.211508) + Old Momentum Direction: (0.796272,-0.250626,0.550578) + Old Polarization: (-0.580668,-0.571872,0.579471) + New Momentum Direction: (0.573949,-0.339267,0.745305) + New Polarization: (0.788925,-0.0148691,-0.614309) *** FresnelRefraction *** Track (trackID 588, parentID 1) is processed with stopping code 2 -### pop requested out of 158 stacked tracks. - -** Photon absorbed! ** -Track (trackID 587, parentID 1) is processed with stopping code 2 -### pop requested out of 157 stacked tracks. - -** Photon absorbed! ** -Track (trackID 586, parentID 1) is processed with stopping code 2 -### pop requested out of 156 stacked tracks. +### pop requested out of 258 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.546918,0.837084,0.0130897) - Old Polarization: (-0.837178,0.546915,0.00412585) - New Momentum Direction: (0.741639,0.670564,0.0177501) - New Polarization: (0.66986,-0.741742,0.0332682) + Old Momentum Direction: (0.770286,-0.00378448,-0.637687) + Old Polarization: (-0.608901,-0.301474,-0.733725) + New Momentum Direction: (0.509786,-0.00510553,-0.860286) + New Polarization: (0.825615,-0.278181,0.490892) *** FresnelRefraction *** +Track (trackID 587, parentID 1) is processed with stopping code 2 +### pop requested out of 257 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.60302,0.717194,0.349284) + Old Polarization: (-0.79325,0.492788,0.35765) + New Momentum Direction: (0.60302,-0.717194,0.349284) + New Polarization: (-0.189821,0.296268,0.936052) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.60302,-0.717194,0.349284) + Old Polarization: (-0.189821,0.296268,0.936052) + New Momentum Direction: (-0.60302,-0.717194,0.349284) + New Polarization: (-0.189821,-0.296268,-0.936052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.60302,-0.717194,0.349284) + Old Polarization: (-0.189821,-0.296268,-0.936052) + New Momentum Direction: (-0.60302,-0.717194,-0.349284) + New Polarization: (0.189821,0.296268,-0.936052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.60302,-0.717194,-0.349284) + Old Polarization: (0.189821,0.296268,-0.936052) + New Momentum Direction: (-0.816579,-0.330889,-0.472982) + New Polarization: (0.576866,-0.438549,-0.68913) + *** FresnelRefraction *** +Track (trackID 586, parentID 1) is processed with stopping code 2 +### pop requested out of 256 stacked tracks. + +** Photon absorbed! ** Track (trackID 585, parentID 1) is processed with stopping code 2 -### pop requested out of 155 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 255 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.591856,0.775363,0.220268) + Old Polarization: (-0.804812,0.553357,0.214649) + New Momentum Direction: (0.803258,0.515179,0.298944) + New Polarization: (-0.589104,0.761245,0.271038) + *** FresnelRefraction *** Track (trackID 584, parentID 1) is processed with stopping code 2 -### pop requested out of 154 stacked tracks. +### pop requested out of 254 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.659504,0.428956,-0.617293) - Old Polarization: (-0.714249,0.101619,-0.692475) - New Momentum Direction: (-0.659504,0.428956,-0.617293) - New Polarization: (-0.714249,-0.101619,0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659504,0.428956,-0.617293) - Old Polarization: (-0.714249,-0.101619,0.692475) - New Momentum Direction: (-0.659504,0.428956,0.617293) - New Polarization: (0.714249,0.101619,0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659504,0.428956,0.617293) - Old Polarization: (0.714249,0.101619,0.692475) - New Momentum Direction: (-0.659504,-0.428956,0.617293) - New Polarization: (-0.714249,0.101619,-0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659504,-0.428956,0.617293) - Old Polarization: (-0.714249,0.101619,-0.692475) - New Momentum Direction: (0.659504,-0.428956,0.617293) - New Polarization: (-0.714249,-0.101619,0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659504,-0.428956,0.617293) - Old Polarization: (-0.714249,-0.101619,0.692475) - New Momentum Direction: (0.659504,-0.428956,-0.617293) - New Polarization: (0.714249,0.101619,0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659504,-0.428956,-0.617293) - Old Polarization: (0.714249,0.101619,0.692475) - New Momentum Direction: (0.659504,0.428956,-0.617293) - New Polarization: (-0.714249,0.101619,-0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659504,0.428956,-0.617293) - Old Polarization: (-0.714249,0.101619,-0.692475) - New Momentum Direction: (-0.659504,0.428956,-0.617293) - New Polarization: (-0.714249,-0.101619,0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659504,0.428956,-0.617293) - Old Polarization: (-0.714249,-0.101619,0.692475) - New Momentum Direction: (-0.659504,0.428956,0.617293) - New Polarization: (0.714249,0.101619,0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659504,0.428956,0.617293) - Old Polarization: (0.714249,0.101619,0.692475) - New Momentum Direction: (0.659504,0.428956,0.617293) - New Polarization: (0.714249,-0.101619,-0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659504,0.428956,0.617293) - Old Polarization: (0.714249,-0.101619,-0.692475) - New Momentum Direction: (0.659504,0.428956,-0.617293) - New Polarization: (-0.714249,0.101619,-0.692475) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.659504,0.428956,-0.617293) - Old Polarization: (-0.714249,0.101619,-0.692475) - New Momentum Direction: (0.659504,-0.428956,-0.617293) - New Polarization: (0.714249,0.101619,0.692475) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.677903,0.451847,-0.579898) + Old Polarization: (-0.711552,0.205021,-0.672057) + New Momentum Direction: (0.140036,0.608575,-0.781042) + New Polarization: (0.968289,-0.248999,-0.020408) + *** FresnelRefraction *** Track (trackID 583, parentID 1) is processed with stopping code 2 -### pop requested out of 153 stacked tracks. +### pop requested out of 253 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.846377,-0.336626,0.412709) - Old Polarization: (-0.509124,-0.738858,0.441453) - New Momentum Direction: (0.691073,-0.456845,0.560099) - New Polarization: (-0.705988,-0.59274,0.387608) + Old Momentum Direction: (0.604863,0.762603,-0.229299) + Old Polarization: (-0.79144,0.543828,-0.279058) + New Momentum Direction: (0.81847,0.483565,-0.310276) + New Polarization: (-0.570219,0.749842,-0.335539) *** FresnelRefraction *** Track (trackID 582, parentID 1) is processed with stopping code 2 -### pop requested out of 152 stacked tracks. +### pop requested out of 252 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.834693,-0.292649,0.466523) - Old Polarization: (-0.521892,-0.690804,0.500419) - New Momentum Direction: (0.664439,-0.397136,0.63309) - New Polarization: (-0.726728,-0.540935,0.423386) + Old Momentum Direction: (0.591963,0.788976,0.164609) + Old Polarization: (-0.805484,0.572084,0.154646) + New Momentum Direction: (0.591963,-0.788976,0.164609) + New Polarization: (-0.116046,0.118674,0.986129) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.591963,-0.788976,0.164609) + Old Polarization: (-0.116046,0.118674,0.986129) + New Momentum Direction: (-0.591963,-0.788976,0.164609) + New Polarization: (-0.116046,-0.118674,-0.986129) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.591963,-0.788976,0.164609) + Old Polarization: (-0.116046,-0.118674,-0.986129) + New Momentum Direction: (-0.801423,-0.555029,0.222855) + New Polarization: (-0.153714,-0.168952,-0.973564) *** FresnelRefraction *** Track (trackID 581, parentID 1) is processed with stopping code 2 -### pop requested out of 151 stacked tracks. +### pop requested out of 251 stacked tracks. ** Photon absorbed! ** Track (trackID 580, parentID 1) is processed with stopping code 2 -### pop requested out of 150 stacked tracks. +### pop requested out of 250 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.606286,0.684129,0.405445) + Old Polarization: (-0.788745,0.452246,0.416359) + New Momentum Direction: (0.606286,-0.684129,0.405445) + New Polarization: (-0.177682,0.380413,0.907588) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.606286,-0.684129,0.405445) + Old Polarization: (-0.177682,0.380413,0.907588) + New Momentum Direction: (-0.606286,-0.684129,0.405445) + New Polarization: (-0.177682,-0.380413,-0.907588) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 579, parentID 1) is processed with stopping code 2 -### pop requested out of 149 stacked tracks. +### pop requested out of 249 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.553702,0.816101,-0.165508) - Old Polarization: (-0.829791,0.524106,-0.191731) - New Momentum Direction: (0.750742,0.621311,-0.224406) - New Polarization: (0.476001,-0.744335,-0.468389) + Old Momentum Direction: (0.840141,-0.396685,-0.36987) + Old Polarization: (-0.53333,-0.728209,-0.43043) + New Momentum Direction: (0.676264,-0.538789,-0.502368) + New Polarization: (0.725147,0.366792,0.582775) *** FresnelRefraction *** Track (trackID 578, parentID 1) is processed with stopping code 2 -### pop requested out of 148 stacked tracks. - -** Photon absorbed! ** -Track (trackID 577, parentID 1) is processed with stopping code 2 -### pop requested out of 147 stacked tracks. +### pop requested out of 248 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.824232,-0.258239,0.503939) - Old Polarization: (-0.533797,-0.651311,0.539309) - New Momentum Direction: (0.638341,-0.351046,0.685046) - New Polarization: (-0.746683,-0.498643,0.44025) + Old Momentum Direction: (0.733046,0.0354478,0.679255) + Old Polarization: (-0.650335,-0.256044,0.715197) + New Momentum Direction: (0.382093,0.0481611,0.922868) + New Polarization: (0.890261,-0.287042,-0.353613) + *** FresnelRefraction *** +Track (trackID 577, parentID 1) is processed with stopping code 2 +### pop requested out of 247 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.797776,-0.270647,0.538798) +Old Polarization: (-0.579671,-0.590192,0.561832) +New Polarization: (0.221708,-0.756524,0.615237) +Polarization Change: (0.221708,-0.756524,0.615237) +New Momentum Direction: (0.971592,0.117818,-0.20525) +Momentum Change: (0.971592,0.117818,-0.20525) + Photon at Boundary! + Old Momentum Direction: (0.971592,0.117818,-0.20525) + Old Polarization: (0.221708,-0.756524,0.615237) + New Momentum Direction: (0.946894,0.160076,-0.278867) + New Polarization: (0.301372,-0.744175,0.596136) *** FresnelRefraction *** Track (trackID 576, parentID 1) is processed with stopping code 2 -### pop requested out of 146 stacked tracks. +### pop requested out of 246 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.549451,0.813263,0.19159) - Old Polarization: (-0.833185,0.51616,0.198448) - New Momentum Direction: (0.747371,0.611165,0.260604) - New Polarization: (0.428566,-0.743176,0.51383) + Old Momentum Direction: (0.816426,-0.346025,0.462293) + Old Polarization: (-0.558734,-0.675541,0.481104) + New Momentum Direction: (0.622595,-0.468923,0.626487) + New Polarization: (0.759073,0.167281,-0.629147) *** FresnelRefraction *** Track (trackID 575, parentID 1) is processed with stopping code 2 -### pop requested out of 145 stacked tracks. +### pop requested out of 245 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.549309,0.832287,-0.0745508) - Old Polarization: (-0.834836,0.542742,-0.0920915) - New Momentum Direction: (0.744365,0.660087,-0.101023) - New Polarization: (0.627318,-0.743078,-0.233041) - *** FresnelRefraction *** + Old Momentum Direction: (0.620187,0.615597,0.486218) + Old Polarization: (-0.774041,0.379575,0.506738) + New Momentum Direction: (-0.620187,0.615597,0.486218) + New Polarization: (-0.774041,-0.379575,-0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.620187,0.615597,0.486218) + Old Polarization: (-0.774041,-0.379575,-0.506738) + New Momentum Direction: (-0.620187,-0.615597,0.486218) + New Polarization: (0.774041,-0.379575,0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.620187,-0.615597,0.486218) + Old Polarization: (0.774041,-0.379575,0.506738) + New Momentum Direction: (-0.620187,-0.615597,-0.486218) + New Polarization: (-0.774041,0.379575,0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.620187,-0.615597,-0.486218) + Old Polarization: (-0.774041,0.379575,0.506738) + New Momentum Direction: (0.620187,-0.615597,-0.486218) + New Polarization: (-0.774041,-0.379575,-0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.620187,-0.615597,-0.486218) + Old Polarization: (-0.774041,-0.379575,-0.506738) + New Momentum Direction: (0.620187,0.615597,-0.486218) + New Polarization: (0.774041,-0.379575,0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.620187,0.615597,-0.486218) + Old Polarization: (0.774041,-0.379575,0.506738) + New Momentum Direction: (0.620187,0.615597,0.486218) + New Polarization: (-0.774041,0.379575,0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.620187,0.615597,0.486218) + Old Polarization: (-0.774041,0.379575,0.506738) + New Momentum Direction: (-0.620187,0.615597,0.486218) + New Polarization: (-0.774041,-0.379575,-0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.620187,0.615597,0.486218) + Old Polarization: (-0.774041,-0.379575,-0.506738) + New Momentum Direction: (-0.620187,-0.615597,0.486218) + New Polarization: (0.774041,-0.379575,0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.620187,-0.615597,0.486218) + Old Polarization: (0.774041,-0.379575,0.506738) + New Momentum Direction: (-0.620187,-0.615597,-0.486218) + New Polarization: (-0.774041,0.379575,0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.620187,-0.615597,-0.486218) + Old Polarization: (-0.774041,0.379575,0.506738) + New Momentum Direction: (0.620187,-0.615597,-0.486218) + New Polarization: (-0.774041,-0.379575,-0.506738) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.620187,-0.615597,-0.486218) + Old Polarization: (-0.774041,-0.379575,-0.506738) + New Momentum Direction: (0.620187,0.615597,-0.486218) + New Polarization: (0.774041,-0.379575,0.506738) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 574, parentID 1) is processed with stopping code 2 -### pop requested out of 144 stacked tracks. +### pop requested out of 244 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.879719,-0.461421,0.114828) - Old Polarization: (-0.473148,-0.87343,0.115112) - New Momentum Direction: (0.763218,-0.627017,0.156037) - New Polarization: (-0.644481,-0.756024,0.114329) + Old Momentum Direction: (0.608895,0.744014,-0.275116) + Old Polarization: (-0.786782,0.522244,-0.328991) + New Momentum Direction: (0.824556,0.425802,-0.372558) + New Polarization: (-0.556535,0.728965,-0.398597) *** FresnelRefraction *** Track (trackID 573, parentID 1) is processed with stopping code 2 -### pop requested out of 143 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 243 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.590838,0.803045,0.0776541) + Old Polarization: (-0.806789,0.587887,0.0590036) + New Momentum Direction: (0.799737,0.591078,0.10511) + New Polarization: (-0.599211,0.796674,0.0790995) + *** FresnelRefraction *** Track (trackID 572, parentID 1) is processed with stopping code 2 -### pop requested out of 142 stacked tracks. +### pop requested out of 242 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.586972,0.801795,0.112201) + Old Polarization: (-0.80952,0.579203,0.0959256) + New Momentum Direction: (0.798194,0.582758,0.152576) + New Polarization: (-0.6005,0.789835,0.12474) + *** FresnelRefraction *** +Track (trackID 571, parentID 1) is processed with stopping code 2 +### pop requested out of 241 stacked tracks. ** Photon absorbed! ** -Track (trackID 571, parentID 1) is processed with stopping code 2 -### pop requested out of 141 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.877289,-0.43629,0.200037) - Old Polarization: (-0.473413,-0.855199,0.210986) - New Momentum Direction: (0.761433,-0.589259,0.270173) - New Polarization: (-0.643549,-0.737205,0.20585) - *** FresnelRefraction *** Track (trackID 570, parentID 1) is processed with stopping code 2 -### pop requested out of 140 stacked tracks. +### pop requested out of 240 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.55239,0.81638,0.168491) - Old Polarization: (-0.83182,0.52669,0.175138) - New Momentum Direction: (0.747849,0.623448,0.22811) - New Polarization: (0.479405,-0.744859,0.464063) - *** FresnelRefraction *** + Old Momentum Direction: (0.620139,0.639183,0.454833) + Old Polarization: (-0.775523,0.412076,0.478286) + New Momentum Direction: (0.620139,-0.639183,0.454833) + New Polarization: (0.775523,0.412076,-0.478286) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.620139,-0.639183,0.454833) + Old Polarization: (0.775523,0.412076,-0.478286) + New Momentum Direction: (-0.620139,-0.639183,0.454833) + New Polarization: (0.775523,-0.412076,0.478286) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 569, parentID 1) is processed with stopping code 2 -### pop requested out of 139 stacked tracks. +### pop requested out of 239 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.797063,-0.144139,0.586442) - Old Polarization: (-0.56268,-0.529867,0.634533) - New Momentum Direction: (0.575436,-0.195205,0.79421) - New Polarization: (-0.788754,-0.389169,0.475831) + Old Momentum Direction: (0.807714,-0.20868,-0.551408) + Old Polarization: (-0.568092,-0.525641,-0.633224) + New Momentum Direction: (0.602452,-0.282507,-0.746486) + New Polarization: (0.771388,-0.034091,0.635451) *** FresnelRefraction *** Track (trackID 568, parentID 1) is processed with stopping code 2 -### pop requested out of 138 stacked tracks. +### pop requested out of 238 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.607336,0.602014,0.518384) - Old Polarization: (-0.772109,0.293648,0.563577) - New Momentum Direction: (-0.607336,0.602014,0.518384) - New Polarization: (-0.772109,-0.293648,-0.563577) + Old Momentum Direction: (0.706066,0.185725,0.683357) + Old Polarization: (-0.680001,-0.0915353,0.727475) + New Momentum Direction: (0.288422,0.251124,0.923986) + New Polarization: (0.927526,-0.312852,-0.204499) + *** FresnelRefraction *** +Track (trackID 567, parentID 1) is processed with stopping code 2 +### pop requested out of 237 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,0.45022) + Old Polarization: (-0.778961,0.41569,0.469491) + New Momentum Direction: (0.616205,-0.646215,0.45022) + New Polarization: (0.778961,0.41569,-0.469491) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.607336,0.602014,0.518384) - Old Polarization: (-0.772109,-0.293648,-0.563577) - New Momentum Direction: (-0.607336,-0.602014,0.518384) - New Polarization: (0.772109,-0.293648,0.563577) + Old Momentum Direction: (0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (-0.616205,-0.646215,0.45022) + New Polarization: (0.778961,-0.41569,0.469491) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.607336,-0.602014,0.518384) - Old Polarization: (0.772109,-0.293648,0.563577) - New Momentum Direction: (-0.607336,-0.602014,-0.518384) - New Polarization: (-0.772109,0.293648,0.563577) + Old Momentum Direction: (-0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (-0.616205,-0.646215,-0.45022) + New Polarization: (-0.778961,0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,-0.646215,-0.45022) + Old Polarization: (-0.778961,0.41569,0.469491) + New Momentum Direction: (-0.616205,0.646215,-0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (0.616205,0.646215,-0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (0.616205,0.646215,0.45022) + New Polarization: (-0.778961,0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,0.45022) + Old Polarization: (-0.778961,0.41569,0.469491) + New Momentum Direction: (0.616205,-0.646215,0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (-0.616205,-0.646215,0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (-0.616205,0.646215,0.45022) + New Polarization: (-0.778961,-0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,0.646215,0.45022) + Old Polarization: (-0.778961,-0.41569,-0.469491) + New Momentum Direction: (-0.616205,0.646215,-0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (0.616205,0.646215,-0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (0.616205,0.646215,0.45022) + New Polarization: (-0.778961,0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,0.45022) + Old Polarization: (-0.778961,0.41569,0.469491) + New Momentum Direction: (0.616205,-0.646215,0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (-0.616205,-0.646215,0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (-0.616205,-0.646215,-0.45022) + New Polarization: (-0.778961,0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,-0.646215,-0.45022) + Old Polarization: (-0.778961,0.41569,0.469491) + New Momentum Direction: (-0.616205,0.646215,-0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (0.616205,0.646215,-0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (0.616205,0.646215,0.45022) + New Polarization: (-0.778961,0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,0.45022) + Old Polarization: (-0.778961,0.41569,0.469491) + New Momentum Direction: (0.616205,-0.646215,0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (-0.616205,-0.646215,0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,-0.646215,0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (-0.616205,0.646215,0.45022) + New Polarization: (-0.778961,-0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,0.646215,0.45022) + Old Polarization: (-0.778961,-0.41569,-0.469491) + New Momentum Direction: (-0.616205,0.646215,-0.45022) + New Polarization: (0.778961,0.41569,-0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,0.41569,-0.469491) + New Momentum Direction: (0.616205,0.646215,-0.45022) + New Polarization: (0.778961,-0.41569,0.469491) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.616205,0.646215,-0.45022) + Old Polarization: (0.778961,-0.41569,0.469491) + New Momentum Direction: (0.616205,-0.646215,-0.45022) + New Polarization: (-0.778961,-0.41569,-0.469491) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 567, parentID 1) is processed with stopping code 2 -### pop requested out of 137 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.548062,0.834389,-0.0585031) - Old Polarization: (-0.835891,0.543836,-0.0743521) - New Momentum Direction: (0.74325,0.664293,-0.0793385) - New Polarization: (0.643648,-0.742369,-0.186025) - *** FresnelRefraction *** Track (trackID 566, parentID 1) is processed with stopping code 2 -### pop requested out of 136 stacked tracks. +### pop requested out of 236 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.641262,0.481961,-0.597073) - Old Polarization: (-0.733363,0.156033,-0.661689) - New Momentum Direction: (-0.641262,0.481961,-0.597073) - New Polarization: (-0.733363,-0.156033,0.661689) + Old Momentum Direction: (0.671761,0.451737,-0.587087) + Old Polarization: (-0.717287,0.198707,-0.667843) + New Momentum Direction: (-0.671761,0.451737,-0.587087) + New Polarization: (-0.717287,-0.198707,0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.641262,0.481961,-0.597073) - Old Polarization: (-0.733363,-0.156033,0.661689) - New Momentum Direction: (-0.641262,0.481961,0.597073) - New Polarization: (0.733363,0.156033,0.661689) + Old Momentum Direction: (-0.671761,0.451737,-0.587087) + Old Polarization: (-0.717287,-0.198707,0.667843) + New Momentum Direction: (-0.671761,0.451737,0.587087) + New Polarization: (0.717287,0.198707,0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.641262,0.481961,0.597073) - Old Polarization: (0.733363,0.156033,0.661689) - New Momentum Direction: (-0.641262,-0.481961,0.597073) - New Polarization: (-0.733363,0.156033,-0.661689) + Old Momentum Direction: (-0.671761,0.451737,0.587087) + Old Polarization: (0.717287,0.198707,0.667843) + New Momentum Direction: (-0.671761,-0.451737,0.587087) + New Polarization: (-0.717287,0.198707,-0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.641262,-0.481961,0.597073) - Old Polarization: (-0.733363,0.156033,-0.661689) - New Momentum Direction: (-0.641262,-0.481961,-0.597073) - New Polarization: (0.733363,-0.156033,-0.661689) + Old Momentum Direction: (-0.671761,-0.451737,0.587087) + Old Polarization: (-0.717287,0.198707,-0.667843) + New Momentum Direction: (0.671761,-0.451737,0.587087) + New Polarization: (-0.717287,-0.198707,0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.641262,-0.481961,-0.597073) - Old Polarization: (0.733363,-0.156033,-0.661689) - New Momentum Direction: (0.641262,-0.481961,-0.597073) - New Polarization: (0.733363,0.156033,0.661689) + Old Momentum Direction: (0.671761,-0.451737,0.587087) + Old Polarization: (-0.717287,-0.198707,0.667843) + New Momentum Direction: (0.671761,-0.451737,-0.587087) + New Polarization: (0.717287,0.198707,0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.641262,-0.481961,-0.597073) - Old Polarization: (0.733363,0.156033,0.661689) - New Momentum Direction: (0.641262,-0.481961,0.597073) - New Polarization: (-0.733363,-0.156033,0.661689) + Old Momentum Direction: (0.671761,-0.451737,-0.587087) + Old Polarization: (0.717287,0.198707,0.667843) + New Momentum Direction: (0.671761,0.451737,-0.587087) + New Polarization: (-0.717287,0.198707,-0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.641262,-0.481961,0.597073) - Old Polarization: (-0.733363,-0.156033,0.661689) - New Momentum Direction: (0.641262,0.481961,0.597073) - New Polarization: (0.733363,-0.156033,-0.661689) + Old Momentum Direction: (0.671761,0.451737,-0.587087) + Old Polarization: (-0.717287,0.198707,-0.667843) + New Momentum Direction: (-0.671761,0.451737,-0.587087) + New Polarization: (-0.717287,-0.198707,0.667843) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.641262,0.481961,0.597073) - Old Polarization: (0.733363,-0.156033,-0.661689) - New Momentum Direction: (-0.641262,0.481961,0.597073) - New Polarization: (0.733363,0.156033,0.661689) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.641262,0.481961,0.597073) - Old Polarization: (0.733363,0.156033,0.661689) - New Momentum Direction: (-0.641262,0.481961,-0.597073) - New Polarization: (-0.733363,-0.156033,0.661689) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.641262,0.481961,-0.597073) - Old Polarization: (-0.733363,-0.156033,0.661689) - New Momentum Direction: (-0.641262,-0.481961,-0.597073) - New Polarization: (0.733363,-0.156033,-0.661689) + Old Momentum Direction: (-0.671761,0.451737,-0.587087) + Old Polarization: (-0.717287,-0.198707,0.667843) + New Momentum Direction: (-0.671761,0.451737,0.587087) + New Polarization: (0.717287,0.198707,0.667843) *** TotalInternalReflection *** Scattering Photon! -Old Momentum Direction: (-0.641262,-0.481961,-0.597073) -Old Polarization: (0.733363,-0.156033,-0.661689) -New Polarization: (-0.910344,-0.296546,0.288677) -Polarization Change: (-0.910344,-0.296546,0.288677) -New Momentum Direction: (-0.0105635,-0.680658,-0.732525) -Momentum Change: (-0.0105635,-0.680658,-0.732525) - -** Photon absorbed! ** +Old Momentum Direction: (-0.671761,0.451737,0.587087) +Old Polarization: (0.717287,0.198707,0.667843) +New Polarization: (0.761444,0.645624,0.058076) +Polarization Change: (0.761444,0.645624,0.058076) +New Momentum Direction: (-0.248516,0.373491,-0.893725) +Momentum Change: (-0.248516,0.373491,-0.893725) + Photon at Boundary! + Old Momentum Direction: (-0.248516,0.373491,-0.893725) + Old Polarization: (0.761444,0.645624,0.058076) + New Momentum Direction: (-0.337515,0.507247,-0.792959) + New Polarization: (0.88317,0.462129,-0.0802937) + *** FresnelRefraction *** Track (trackID 565, parentID 1) is processed with stopping code 2 -### pop requested out of 135 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 235 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.790211,-0.237076,0.56512) + Old Polarization: (-0.587987,-0.55322,0.590102) + New Momentum Direction: (0.553368,-0.322223,0.768086) + New Polarization: (0.802416,-0.0411085,-0.595347) + *** FresnelRefraction *** Track (trackID 564, parentID 1) is processed with stopping code 2 -### pop requested out of 134 stacked tracks. +### pop requested out of 234 stacked tracks. ** Photon absorbed! ** Track (trackID 563, parentID 1) is processed with stopping code 2 -### pop requested out of 133 stacked tracks. +### pop requested out of 233 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.569173,0.740631,0.357083) - Old Polarization: (-0.812691,0.440835,0.381048) - New Momentum Direction: (0.77201,0.411603,0.484338) - New Polarization: (-0.0510769,-0.719367,0.69275) + Old Momentum Direction: (0.857224,-0.48653,-0.168687) + Old Polarization: (-0.513608,-0.831398,-0.212094) + New Momentum Direction: (0.716962,-0.658647,-0.228363) + New Polarization: (0.695399,0.652783,0.300492) *** FresnelRefraction *** Track (trackID 562, parentID 1) is processed with stopping code 2 -### pop requested out of 132 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.626514,0.526074,0.575088) - Old Polarization: (-0.750873,0.209563,0.626317) - New Momentum Direction: (-0.626514,0.526074,0.575088) - New Polarization: (-0.750873,-0.209563,-0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626514,0.526074,0.575088) - Old Polarization: (-0.750873,-0.209563,-0.626317) - New Momentum Direction: (-0.626514,0.526074,-0.575088) - New Polarization: (0.750873,0.209563,-0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626514,0.526074,-0.575088) - Old Polarization: (0.750873,0.209563,-0.626317) - New Momentum Direction: (-0.626514,-0.526074,-0.575088) - New Polarization: (-0.750873,0.209563,0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626514,-0.526074,-0.575088) - Old Polarization: (-0.750873,0.209563,0.626317) - New Momentum Direction: (0.626514,-0.526074,-0.575088) - New Polarization: (-0.750873,-0.209563,-0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626514,-0.526074,-0.575088) - Old Polarization: (-0.750873,-0.209563,-0.626317) - New Momentum Direction: (0.626514,-0.526074,0.575088) - New Polarization: (0.750873,0.209563,-0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626514,-0.526074,0.575088) - Old Polarization: (0.750873,0.209563,-0.626317) - New Momentum Direction: (0.626514,0.526074,0.575088) - New Polarization: (-0.750873,0.209563,0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626514,0.526074,0.575088) - Old Polarization: (-0.750873,0.209563,0.626317) - New Momentum Direction: (-0.626514,0.526074,0.575088) - New Polarization: (-0.750873,-0.209563,-0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626514,0.526074,0.575088) - Old Polarization: (-0.750873,-0.209563,-0.626317) - New Momentum Direction: (-0.626514,0.526074,-0.575088) - New Polarization: (0.750873,0.209563,-0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626514,0.526074,-0.575088) - Old Polarization: (0.750873,0.209563,-0.626317) - New Momentum Direction: (-0.626514,-0.526074,-0.575088) - New Polarization: (-0.750873,0.209563,0.626317) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626514,-0.526074,-0.575088) - Old Polarization: (-0.750873,0.209563,0.626317) - New Momentum Direction: (0.626514,-0.526074,-0.575088) - New Polarization: (-0.750873,-0.209563,-0.626317) - *** TotalInternalReflection *** +### pop requested out of 232 stacked tracks. ** Photon absorbed! ** Track (trackID 561, parentID 1) is processed with stopping code 2 -### pop requested out of 131 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.807092,-0.162143,-0.567725) - Old Polarization: (-0.552477,-0.546564,-0.629315) - New Momentum Direction: (0.596547,-0.220405,-0.771721) - New Polarization: (-0.775815,-0.404605,-0.484155) - *** FresnelRefraction *** -Track (trackID 560, parentID 1) is processed with stopping code 2 -### pop requested out of 130 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.774467,-0.0666581,0.629093) - Old Polarization: (-0.587954,-0.442856,0.676896) - New Momentum Direction: (0.511434,-0.0905461,0.854539) - New Polarization: (-0.828624,-0.315388,0.462506) - *** FresnelRefraction *** -Track (trackID 559, parentID 1) is processed with stopping code 2 -### pop requested out of 129 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.687442,0.271004,0.673781) - Old Polarization: (-0.68304,-0.0739396,0.726628) - New Momentum Direction: (0.167152,0.36791,0.914714) - New Polarization: (-0.962682,-0.139388,0.231981) - *** FresnelRefraction *** -Track (trackID 558, parentID 1) is processed with stopping code 2 -### pop requested out of 128 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.736381,0.0777387,0.672086) - Old Polarization: (-0.629588,-0.284973,0.722779) - New Momentum Direction: (0.392748,0.105669,0.913555) - New Polarization: (-0.889222,-0.209764,0.40655) - *** FresnelRefraction *** -Track (trackID 557, parentID 1) is processed with stopping code 2 -### pop requested out of 127 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.62301,0.552907,-0.553311) - Old Polarization: (-0.753385,0.233872,-0.614586) - New Momentum Direction: (-0.62301,0.552907,-0.553311) - New Polarization: (-0.753385,-0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.62301,0.552907,-0.553311) - Old Polarization: (-0.753385,-0.233872,0.614586) - New Momentum Direction: (-0.62301,0.552907,0.553311) - New Polarization: (0.753385,0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.62301,0.552907,0.553311) - Old Polarization: (0.753385,0.233872,0.614586) - New Momentum Direction: (-0.62301,-0.552907,0.553311) - New Polarization: (-0.753385,0.233872,-0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.62301,-0.552907,0.553311) - Old Polarization: (-0.753385,0.233872,-0.614586) - New Momentum Direction: (0.62301,-0.552907,0.553311) - New Polarization: (-0.753385,-0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.62301,-0.552907,0.553311) - Old Polarization: (-0.753385,-0.233872,0.614586) - New Momentum Direction: (0.62301,-0.552907,-0.553311) - New Polarization: (0.753385,0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.62301,-0.552907,-0.553311) - Old Polarization: (0.753385,0.233872,0.614586) - New Momentum Direction: (0.62301,0.552907,-0.553311) - New Polarization: (-0.753385,0.233872,-0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.62301,0.552907,-0.553311) - Old Polarization: (-0.753385,0.233872,-0.614586) - New Momentum Direction: (-0.62301,0.552907,-0.553311) - New Polarization: (-0.753385,-0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.62301,0.552907,-0.553311) - Old Polarization: (-0.753385,-0.233872,0.614586) - New Momentum Direction: (-0.62301,0.552907,0.553311) - New Polarization: (0.753385,0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.62301,0.552907,0.553311) - Old Polarization: (0.753385,0.233872,0.614586) - New Momentum Direction: (-0.62301,-0.552907,0.553311) - New Polarization: (-0.753385,0.233872,-0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.62301,-0.552907,0.553311) - Old Polarization: (-0.753385,0.233872,-0.614586) - New Momentum Direction: (0.62301,-0.552907,0.553311) - New Polarization: (-0.753385,-0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.62301,-0.552907,0.553311) - Old Polarization: (-0.753385,-0.233872,0.614586) - New Momentum Direction: (0.62301,-0.552907,-0.553311) - New Polarization: (0.753385,0.233872,0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.62301,-0.552907,-0.553311) - Old Polarization: (0.753385,0.233872,0.614586) - New Momentum Direction: (0.62301,0.552907,-0.553311) - New Polarization: (-0.753385,0.233872,-0.614586) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.62301,0.552907,-0.553311) - Old Polarization: (-0.753385,0.233872,-0.614586) - New Momentum Direction: (-0.62301,0.552907,-0.553311) - New Polarization: (-0.753385,-0.233872,0.614586) - *** TotalInternalReflection *** +### pop requested out of 231 stacked tracks. ** Photon absorbed! ** +Track (trackID 560, parentID 1) is processed with stopping code 2 +### pop requested out of 230 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.746708,0.104287,-0.656926) + Old Polarization: (-0.635176,-0.181354,-0.750775) + New Momentum Direction: (-0.746708,0.104287,-0.656926) + New Polarization: (0.457657,-0.636137,-0.621192) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.746708,0.104287,-0.656926) + Old Polarization: (0.457657,-0.636137,-0.621192) + New Momentum Direction: (-0.746708,0.104287,0.656926) + New Polarization: (-0.457657,0.636137,-0.621192) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.746708,0.104287,0.656926) + Old Polarization: (-0.457657,0.636137,-0.621192) + New Momentum Direction: (-0.436559,0.141058,0.888549) + New Polarization: (-0.644187,0.640436,-0.41817) + *** FresnelRefraction *** +Track (trackID 559, parentID 1) is processed with stopping code 2 +### pop requested out of 229 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.633996,0.533283,0.560052) +Old Polarization: (-0.758451,0.287373,0.584952) +New Polarization: (-0.265185,0.113867,-0.95745) +Polarization Change: (-0.265185,0.113867,-0.95745) +New Momentum Direction: (0.893854,-0.343297,-0.288398) +Momentum Change: (0.893854,-0.343297,-0.288398) + Photon at Boundary! + Old Momentum Direction: (0.893854,-0.343297,-0.288398) + Old Polarization: (-0.265185,0.113867,-0.95745) + New Momentum Direction: (0.793007,-0.466458,-0.391863) + New Polarization: (0.364581,0.878699,-0.30817) + *** FresnelRefraction *** +Track (trackID 558, parentID 1) is processed with stopping code 2 +### pop requested out of 228 stacked tracks. + +** Photon absorbed! ** +Track (trackID 557, parentID 1) is processed with stopping code 2 +### pop requested out of 227 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.796027,-0.156869,-0.584579) + Old Polarization: (-0.581357,-0.466912,-0.666346) + New Momentum Direction: (0.570487,-0.212863,-0.793242) + New Polarization: (0.791793,-0.114045,0.600048) + *** FresnelRefraction *** Track (trackID 556, parentID 1) is processed with stopping code 2 -### pop requested out of 126 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.588971,0.655711,0.472394) - Old Polarization: (-0.790483,0.345858,0.505488) - New Momentum Direction: (0.588971,-0.655711,0.472394) - New Polarization: (0.790483,0.345858,-0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.588971,-0.655711,0.472394) - Old Polarization: (0.790483,0.345858,-0.505488) - New Momentum Direction: (-0.588971,-0.655711,0.472394) - New Polarization: (0.790483,-0.345858,0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.588971,-0.655711,0.472394) - Old Polarization: (0.790483,-0.345858,0.505488) - New Momentum Direction: (-0.588971,-0.655711,-0.472394) - New Polarization: (-0.790483,0.345858,0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.588971,-0.655711,-0.472394) - Old Polarization: (-0.790483,0.345858,0.505488) - New Momentum Direction: (-0.588971,0.655711,-0.472394) - New Polarization: (0.790483,0.345858,-0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.588971,0.655711,-0.472394) - Old Polarization: (0.790483,0.345858,-0.505488) - New Momentum Direction: (0.588971,0.655711,-0.472394) - New Polarization: (0.790483,-0.345858,0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.588971,0.655711,-0.472394) - Old Polarization: (0.790483,-0.345858,0.505488) - New Momentum Direction: (0.588971,0.655711,0.472394) - New Polarization: (-0.790483,0.345858,0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.588971,0.655711,0.472394) - Old Polarization: (-0.790483,0.345858,0.505488) - New Momentum Direction: (0.588971,-0.655711,0.472394) - New Polarization: (0.790483,0.345858,-0.505488) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.588971,-0.655711,0.472394) - Old Polarization: (0.790483,0.345858,-0.505488) - New Momentum Direction: (-0.588971,-0.655711,0.472394) - New Polarization: (0.790483,-0.345858,0.505488) - *** TotalInternalReflection *** +### pop requested out of 226 stacked tracks. ** Photon absorbed! ** Track (trackID 555, parentID 1) is processed with stopping code 2 -### pop requested out of 125 stacked tracks. - -** Photon absorbed! ** -Track (trackID 554, parentID 1) is processed with stopping code 2 -### pop requested out of 124 stacked tracks. +### pop requested out of 225 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.69995,0.336124,-0.630152) +Old Polarization: (-0.686798,0.0747612,-0.722993) +New Polarization: (0.921476,0.197686,0.334368) +Polarization Change: (0.921476,0.197686,0.334368) +New Momentum Direction: (0.206667,0.479342,-0.852948) +Momentum Change: (0.206667,0.479342,-0.852948) Photon at Boundary! - Old Momentum Direction: (0.882999,-0.455486,0.113338) - Old Polarization: (-0.467024,-0.876717,0.115137) - New Momentum Direction: (0.773472,-0.615075,0.153049) - New Polarization: (-0.632151,-0.766163,0.115668) + Old Momentum Direction: (0.206667,0.479342,-0.852948) + Old Polarization: (0.921476,0.197686,0.334368) + New Momentum Direction: (0.279227,0.647637,-0.708942) + New Polarization: (0.514408,-0.724317,-0.459075) + *** FresnelRefraction *** +Track (trackID 554, parentID 1) is processed with stopping code 2 +### pop requested out of 224 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.589165,0.808001,0.00437071) + Old Polarization: (-0.807764,0.589109,-0.0216076) + New Momentum Direction: (0.799587,0.600522,0.00593172) + New Polarization: (-0.600327,0.799519,-0.0193871) *** FresnelRefraction *** Track (trackID 553, parentID 1) is processed with stopping code 2 -### pop requested out of 123 stacked tracks. +### pop requested out of 223 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.733624,0.107211,0.671045) - Old Polarization: (-0.632323,-0.254022,0.731875) - New Momentum Direction: (0.396884,0.144809,0.906374) - New Polarization: (-0.886879,-0.193925,0.419331) + Old Momentum Direction: (0.756104,-0.0655761,0.651158) + Old Polarization: (-0.624951,-0.367706,0.688642) + New Momentum Direction: (0.462177,-0.0888562,0.882325) + New Polarization: (0.851914,-0.231794,-0.46959) *** FresnelRefraction *** Track (trackID 552, parentID 1) is processed with stopping code 2 -### pop requested out of 122 stacked tracks. +### pop requested out of 222 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.623619,0.5456,0.55984) - Old Polarization: (-0.754708,0.233543,0.613085) - New Momentum Direction: (-0.623619,0.5456,0.55984) - New Polarization: (-0.754708,-0.233543,-0.613085) + Old Momentum Direction: (0.707984,0.289425,-0.644199) + Old Polarization: (-0.677821,0.0223643,-0.734887) + New Momentum Direction: (0.292247,0.391927,-0.872345) + New Polarization: (0.925996,-0.343933,0.155699) + *** FresnelRefraction *** +Track (trackID 551, parentID 1) is processed with stopping code 2 +### pop requested out of 221 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.658477,0.413675,0.628714) + Old Polarization: (-0.732024,0.158032,0.662697) + New Momentum Direction: (-0.658477,0.413675,0.628714) + New Polarization: (-0.732024,-0.158032,-0.662697) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.623619,0.5456,0.55984) - Old Polarization: (-0.754708,-0.233543,-0.613085) - New Momentum Direction: (-0.623619,0.5456,-0.55984) - New Polarization: (0.754708,0.233543,-0.613085) + Old Momentum Direction: (-0.658477,0.413675,0.628714) + Old Polarization: (-0.732024,-0.158032,-0.662697) + New Momentum Direction: (-0.658477,0.413675,-0.628714) + New Polarization: (0.732024,0.158032,-0.662697) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.623619,0.5456,-0.55984) - Old Polarization: (0.754708,0.233543,-0.613085) - New Momentum Direction: (-0.623619,-0.5456,-0.55984) - New Polarization: (-0.754708,0.233543,0.613085) + Old Momentum Direction: (-0.658477,0.413675,-0.628714) + Old Polarization: (0.732024,0.158032,-0.662697) + New Momentum Direction: (-0.658477,-0.413675,-0.628714) + New Polarization: (-0.732024,0.158032,0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658477,-0.413675,-0.628714) + Old Polarization: (-0.732024,0.158032,0.662697) + New Momentum Direction: (0.658477,-0.413675,-0.628714) + New Polarization: (-0.732024,-0.158032,-0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658477,-0.413675,-0.628714) + Old Polarization: (-0.732024,-0.158032,-0.662697) + New Momentum Direction: (0.658477,-0.413675,0.628714) + New Polarization: (0.732024,0.158032,-0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658477,-0.413675,0.628714) + Old Polarization: (0.732024,0.158032,-0.662697) + New Momentum Direction: (0.658477,0.413675,0.628714) + New Polarization: (-0.732024,0.158032,0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658477,0.413675,0.628714) + Old Polarization: (-0.732024,0.158032,0.662697) + New Momentum Direction: (-0.658477,0.413675,0.628714) + New Polarization: (-0.732024,-0.158032,-0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658477,0.413675,0.628714) + Old Polarization: (-0.732024,-0.158032,-0.662697) + New Momentum Direction: (-0.658477,0.413675,-0.628714) + New Polarization: (0.732024,0.158032,-0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658477,0.413675,-0.628714) + Old Polarization: (0.732024,0.158032,-0.662697) + New Momentum Direction: (0.658477,0.413675,-0.628714) + New Polarization: (0.732024,-0.158032,0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658477,0.413675,-0.628714) + Old Polarization: (0.732024,-0.158032,0.662697) + New Momentum Direction: (0.658477,0.413675,0.628714) + New Polarization: (-0.732024,0.158032,0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658477,0.413675,0.628714) + Old Polarization: (-0.732024,0.158032,0.662697) + New Momentum Direction: (0.658477,-0.413675,0.628714) + New Polarization: (0.732024,0.158032,-0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658477,-0.413675,0.628714) + Old Polarization: (0.732024,0.158032,-0.662697) + New Momentum Direction: (-0.658477,-0.413675,0.628714) + New Polarization: (0.732024,-0.158032,0.662697) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658477,-0.413675,0.628714) + Old Polarization: (0.732024,-0.158032,0.662697) + New Momentum Direction: (-0.658477,-0.413675,-0.628714) + New Polarization: (-0.732024,0.158032,0.662697) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 551, parentID 1) is processed with stopping code 2 -### pop requested out of 121 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.833911,-0.28762,0.471027) - Old Polarization: (-0.522542,-0.686117,0.506155) - New Momentum Direction: (0.663236,-0.390032,0.638743) - New Polarization: (-0.72739,-0.536792,0.427503) - *** FresnelRefraction *** Track (trackID 550, parentID 1) is processed with stopping code 2 -### pop requested out of 120 stacked tracks. +### pop requested out of 220 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.885005,-0.462917,-0.0497301) - Old Polarization: (-0.465378,-0.882714,-0.0651173) - New Momentum Direction: (0.77693,-0.625985,-0.0672481) - New Polarization: (-0.629442,-0.774597,-0.0616614) + Old Momentum Direction: (0.852363,-0.501885,0.146936) + Old Polarization: (-0.519882,-0.843622,0.134255) + New Momentum Direction: (0.704136,-0.681461,0.19951) + New Polarization: (0.70613,0.642482,-0.297653) *** FresnelRefraction *** Track (trackID 549, parentID 1) is processed with stopping code 2 -### pop requested out of 119 stacked tracks. - -** Photon absorbed! ** -Track (trackID 548, parentID 1) is processed with stopping code 2 -### pop requested out of 118 stacked tracks. +### pop requested out of 219 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.69298,0.290283,-0.659936) - Old Polarization: (-0.677055,-0.0525148,-0.734056) - New Momentum Direction: (0.211171,0.393556,-0.894718) - New Polarization: (-0.952643,-0.122043,-0.278525) + Old Momentum Direction: (0.689533,0.37547,-0.619327) + Old Polarization: (-0.698052,0.11661,-0.706488) + New Momentum Direction: (0.191864,0.508792,-0.839237) + New Polarization: (0.955786,-0.291039,0.0420652) + *** FresnelRefraction *** +Track (trackID 548, parentID 1) is processed with stopping code 2 +### pop requested out of 218 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.831853,-0.355334,-0.426332) +Old Polarization: (-0.542702,-0.68158,-0.490839) +New Polarization: (-0.402255,0.276678,0.87272) +Polarization Change: (-0.402255,0.276678,0.87272) +New Momentum Direction: (-0.766602,-0.622921,-0.155858) +Momentum Change: (-0.766602,-0.622921,-0.155858) + Photon at Boundary! + Old Momentum Direction: (-0.766602,-0.622921,-0.155858) + Old Polarization: (-0.402255,0.276678,0.87272) + New Momentum Direction: (-0.487347,-0.847096,-0.211948) + New Polarization: (-0.56944,0.124294,0.812582) *** FresnelRefraction *** Track (trackID 547, parentID 1) is processed with stopping code 2 -### pop requested out of 117 stacked tracks. +### pop requested out of 217 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.591176,0.791353,0.155793) + Old Polarization: (-0.80615,0.573737,0.144733) + New Momentum Direction: (0.591176,-0.791353,0.155793) + New Polarization: (-0.115479,0.108122,0.987408) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.591176,-0.791353,0.155793) + Old Polarization: (-0.115479,0.108122,0.987408) + New Momentum Direction: (-0.591176,-0.791353,0.155793) + New Polarization: (-0.115479,-0.108122,-0.987408) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 546, parentID 1) is processed with stopping code 2 -### pop requested out of 116 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.812273,-0.163764,-0.559815) - Old Polarization: (-0.545353,-0.55366,-0.629326) - New Momentum Direction: (0.615838,-0.221208,-0.756182) - New Polarization: (-0.760721,-0.416742,-0.497624) - *** FresnelRefraction *** -Track (trackID 545, parentID 1) is processed with stopping code 2 -### pop requested out of 115 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.555885,0.802979,0.214983) - Old Polarization: (-0.828162,0.512668,0.226537) - New Momentum Direction: (0.75222,0.591215,0.290914) - New Polarization: (0.369354,-0.743956,0.556873) - *** FresnelRefraction *** -Track (trackID 544, parentID 1) is processed with stopping code 2 -### pop requested out of 114 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.626969,0.551522,-0.550213) - Old Polarization: (-0.750082,0.236574,-0.617584) - New Momentum Direction: (-0.626969,0.551522,-0.550213) - New Polarization: (-0.750082,-0.236574,0.617584) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626969,0.551522,-0.550213) - Old Polarization: (-0.750082,-0.236574,0.617584) - New Momentum Direction: (-0.626969,-0.551522,-0.550213) - New Polarization: (0.750082,-0.236574,-0.617584) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626969,-0.551522,-0.550213) - Old Polarization: (0.750082,-0.236574,-0.617584) - New Momentum Direction: (-0.626969,-0.551522,0.550213) - New Polarization: (-0.750082,0.236574,-0.617584) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.626969,-0.551522,0.550213) -Old Polarization: (-0.750082,0.236574,-0.617584) -New Polarization: (-0.898428,0.432428,-0.0763761) -Polarization Change: (-0.898428,0.432428,-0.0763761) -New Momentum Direction: (0.018235,0.210519,0.97742) -Momentum Change: (0.018235,0.210519,0.97742) - Photon at Boundary! - Old Momentum Direction: (0.018235,0.210519,0.97742) - Old Polarization: (-0.898428,0.432428,-0.0763761) - New Momentum Direction: (0.0246517,0.284597,0.95833) - New Polarization: (-0.843396,0.520595,-0.132907) - *** FresnelRefraction *** -Track (trackID 543, parentID 1) is processed with stopping code 2 -### pop requested out of 113 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.875179,-0.41862,0.242525) - Old Polarization: (-0.474361,-0.841031,0.260094) - New Momentum Direction: (0.759005,-0.563369,0.326385) - New Polarization: (-0.644267,-0.722228,0.251608) - *** FresnelRefraction *** -Track (trackID 542, parentID 1) is processed with stopping code 2 -### pop requested out of 112 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.754778,0.0548247,-0.653686) - Old Polarization: (-0.609142,-0.311212,-0.729447) - New Momentum Direction: (0.459637,0.074225,-0.885) - New Polarization: (-0.856457,-0.226615,-0.463819) - *** FresnelRefraction *** -Track (trackID 541, parentID 1) is processed with stopping code 2 -### pop requested out of 111 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.573269,0.739225,-0.353425) - Old Polarization: (-0.807614,0.436981,-0.395989) - New Momentum Direction: (0.573269,-0.739225,-0.353425) - New Polarization: (0.324172,-0.191522,0.926408) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.573269,-0.739225,-0.353425) - Old Polarization: (0.324172,-0.191522,0.926408) - New Momentum Direction: (-0.573269,-0.739225,-0.353425) - New Polarization: (0.324172,0.191522,-0.926408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.573269,-0.739225,-0.353425) - Old Polarization: (0.324172,0.191522,-0.926408) - New Momentum Direction: (-0.573269,-0.739225,0.353425) - New Polarization: (-0.324172,-0.191522,-0.926408) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.573269,-0.739225,0.353425) - Old Polarization: (-0.324172,-0.191522,-0.926408) - New Momentum Direction: (-0.778917,-0.403346,0.480209) - New Polarization: (-0.618692,0.369066,-0.693549) - *** FresnelRefraction *** -Track (trackID 540, parentID 1) is processed with stopping code 2 -### pop requested out of 110 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.547456,0.825676,0.136198) - Old Polarization: (-0.835782,0.531317,0.138462) - New Momentum Direction: (0.74386,0.642203,0.18506) - New Polarization: (0.545001,-0.743143,0.388218) - *** FresnelRefraction *** -Track (trackID 539, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. +### pop requested out of 216 stacked tracks. ** Photon absorbed! ** -Track (trackID 538, parentID 1) is processed with stopping code 2 -### pop requested out of 108 stacked tracks. +Track (trackID 545, parentID 1) is processed with stopping code 2 +### pop requested out of 215 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.801465,-0.166093,0.574515) - Old Polarization: (-0.558207,-0.552505,0.618985) - New Momentum Direction: (0.584558,-0.225334,0.779433) - New Polarization: (-0.783248,-0.407374,0.469647) + Old Momentum Direction: (0.6174,0.714032,-0.330114) + Old Polarization: (-0.777924,0.491859,-0.391036) + New Momentum Direction: (0.834511,0.323259,-0.446201) + New Polarization: (-0.527748,0.701671,-0.478686) *** FresnelRefraction *** -Track (trackID 537, parentID 1) is processed with stopping code 2 -### pop requested out of 107 stacked tracks. +Track (trackID 544, parentID 1) is processed with stopping code 2 +### pop requested out of 214 stacked tracks. + +** Photon absorbed! ** +Track (trackID 543, parentID 1) is processed with stopping code 2 +### pop requested out of 213 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.545518,0.837121,-0.0404841) - Old Polarization: (-0.83777,0.543312,-0.054355) - New Momentum Direction: (0.741462,0.668734,-0.0550256) - New Polarization: (0.658468,-0.740941,-0.132007) - *** FresnelRefraction *** -Track (trackID 536, parentID 1) is processed with stopping code 2 -### pop requested out of 106 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.687168,0.265826,0.676118) - Old Polarization: (-0.683206,-0.0800095,0.725829) - New Momentum Direction: (-0.687168,0.265826,0.676118) - New Polarization: (-0.653701,0.17981,-0.73508) + Old Momentum Direction: (0.683875,0.297298,0.66628) + Old Polarization: (-0.704508,0.0316511,0.708989) + New Momentum Direction: (-0.683875,0.297298,0.66628) + New Polarization: (0.684394,-0.05505,0.727031) *** FresnelReflection *** Photon at Boundary! - Old Momentum Direction: (-0.687168,0.265826,0.676118) - Old Polarization: (-0.653701,0.17981,-0.73508) - New Momentum Direction: (-0.687168,0.265826,-0.676118) - New Polarization: (0.653701,-0.17981,-0.73508) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.687168,0.265826,-0.676118) -Old Polarization: (0.653701,-0.17981,-0.73508) -New Polarization: (-0.843067,0.288573,0.453831) -Polarization Change: (-0.843067,0.288573,0.453831) -New Momentum Direction: (-0.387914,0.258197,-0.884792) -Momentum Change: (-0.387914,0.258197,-0.884792) - Photon at Boundary! - Old Momentum Direction: (-0.387914,0.258197,-0.884792) - Old Polarization: (-0.843067,0.288573,0.453831) - New Momentum Direction: (-0.387914,-0.258197,-0.884792) - New Polarization: (0.843067,0.288573,-0.453831) + Old Momentum Direction: (-0.683875,0.297298,0.66628) + Old Polarization: (0.684394,-0.05505,0.727031) + New Momentum Direction: (-0.683875,0.297298,-0.66628) + New Polarization: (-0.684394,0.05505,0.727031) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.387914,-0.258197,-0.884792) - Old Polarization: (0.843067,0.288573,-0.453831) - New Momentum Direction: (-0.527729,-0.351258,-0.773382) - New Polarization: (-0.543251,-0.560358,0.625202) + Old Momentum Direction: (-0.683875,0.297298,-0.66628) + Old Polarization: (-0.684394,0.05505,0.727031) + New Momentum Direction: (-0.683875,-0.297298,-0.66628) + New Polarization: (0.684394,0.05505,-0.727031) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.683875,-0.297298,-0.66628) + Old Polarization: (0.684394,0.05505,-0.727031) + New Momentum Direction: (-0.165013,-0.401895,-0.900695) + New Polarization: (-0.942723,0.332692,0.0242639) *** FresnelRefraction *** +Track (trackID 542, parentID 1) is processed with stopping code 2 +### pop requested out of 212 stacked tracks. + +** Photon absorbed! ** +Track (trackID 541, parentID 1) is processed with stopping code 2 +### pop requested out of 211 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.751305,-0.0541871,0.657727) + Old Polarization: (-0.630432,-0.35368,0.690989) + New Momentum Direction: (0.441917,-0.0736548,0.894027) + New Polarization: (0.862457,-0.239233,-0.446021) + *** FresnelRefraction *** +Track (trackID 540, parentID 1) is processed with stopping code 2 +### pop requested out of 210 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.594734,0.776484,0.20824) + Old Polarization: (-0.802868,0.560422,0.203297) + New Momentum Direction: (0.804082,0.523628,0.281541) + New Polarization: (-0.58888,0.766551,0.256163) + *** FresnelRefraction *** +Track (trackID 539, parentID 1) is processed with stopping code 2 +### pop requested out of 209 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.769581,-0.138099,0.623437) + Old Polarization: (-0.61041,-0.445742,0.654762) + New Momentum Direction: (0.497847,-0.187564,0.84674) + New Polarization: (0.833446,-0.166514,-0.526916) + *** FresnelRefraction *** +Track (trackID 538, parentID 1) is processed with stopping code 2 +### pop requested out of 208 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.850774,-0.453545,-0.265482) +Old Polarization: (-0.521317,-0.792196,-0.317259) +New Polarization: (0.372426,0.915613,0.151499) +Polarization Change: (0.372426,0.915613,0.151499) +New Momentum Direction: (-0.637173,0.370952,-0.675577) +Momentum Change: (-0.637173,0.370952,-0.675577) + Photon at Boundary! + Old Momentum Direction: (-0.637173,0.370952,-0.675577) + Old Polarization: (0.372426,0.915613,0.151499) + New Momentum Direction: (-0.637173,0.370952,0.675577) + New Polarization: (-0.372426,-0.915613,0.151499) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 537, parentID 1) is processed with stopping code 2 +### pop requested out of 207 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.855537,-0.496933,-0.145307) + Old Polarization: (-0.516889,-0.835899,-0.184657) + New Momentum Direction: (0.710153,-0.675751,-0.197595) + New Polarization: (0.702952,0.664898,0.252525) + *** FresnelRefraction *** +Track (trackID 536, parentID 1) is processed with stopping code 2 +### pop requested out of 206 stacked tracks. + +** Photon absorbed! ** Track (trackID 535, parentID 1) is processed with stopping code 2 -### pop requested out of 105 stacked tracks. +### pop requested out of 205 stacked tracks. ** Photon absorbed! ** Track (trackID 534, parentID 1) is processed with stopping code 2 -### pop requested out of 104 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 204 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.590825,0.798446,0.1158) + Old Polarization: (-0.806693,0.582292,0.100909) + New Momentum Direction: (0.799989,0.579166,0.156795) + New Polarization: (-0.598056,0.790772,0.130422) + *** FresnelRefraction *** Track (trackID 533, parentID 1) is processed with stopping code 2 -### pop requested out of 103 stacked tracks. +### pop requested out of 203 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.599896,0.664001,-0.44635) - Old Polarization: (-0.780997,0.36488,-0.506859) - New Momentum Direction: (0.599896,-0.664001,-0.44635) - New Polarization: (0.780997,0.36488,0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.599896,-0.664001,-0.44635) - Old Polarization: (0.780997,0.36488,0.506859) - New Momentum Direction: (-0.599896,-0.664001,-0.44635) - New Polarization: (0.780997,-0.36488,-0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.599896,-0.664001,-0.44635) - Old Polarization: (0.780997,-0.36488,-0.506859) - New Momentum Direction: (-0.599896,-0.664001,0.44635) - New Polarization: (-0.780997,0.36488,-0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.599896,-0.664001,0.44635) - Old Polarization: (-0.780997,0.36488,-0.506859) - New Momentum Direction: (-0.599896,0.664001,0.44635) - New Polarization: (0.780997,0.36488,0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.599896,0.664001,0.44635) - Old Polarization: (0.780997,0.36488,0.506859) - New Momentum Direction: (0.599896,0.664001,0.44635) - New Polarization: (0.780997,-0.36488,-0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.599896,0.664001,0.44635) - Old Polarization: (0.780997,-0.36488,-0.506859) - New Momentum Direction: (0.599896,0.664001,-0.44635) - New Polarization: (-0.780997,0.36488,-0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.599896,0.664001,-0.44635) - Old Polarization: (-0.780997,0.36488,-0.506859) - New Momentum Direction: (0.599896,-0.664001,-0.44635) - New Polarization: (0.780997,0.36488,0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.599896,-0.664001,-0.44635) - Old Polarization: (0.780997,0.36488,0.506859) - New Momentum Direction: (-0.599896,-0.664001,-0.44635) - New Polarization: (0.780997,-0.36488,-0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.599896,-0.664001,-0.44635) - Old Polarization: (0.780997,-0.36488,-0.506859) - New Momentum Direction: (-0.599896,0.664001,-0.44635) - New Polarization: (-0.780997,-0.36488,0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.599896,0.664001,-0.44635) - Old Polarization: (-0.780997,-0.36488,0.506859) - New Momentum Direction: (-0.599896,0.664001,0.44635) - New Polarization: (0.780997,0.36488,0.506859) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.599896,0.664001,0.44635) - Old Polarization: (0.780997,0.36488,0.506859) - New Momentum Direction: (0.599896,0.664001,0.44635) - New Polarization: (0.780997,-0.36488,-0.506859) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.595854,0.79854,0.0853872) + Old Polarization: (-0.803082,0.591917,0.0685127) + New Momentum Direction: (0.802023,0.586131,0.114932) + New Polarization: (-0.596033,0.797865,0.0903107) + *** FresnelRefraction *** Track (trackID 532, parentID 1) is processed with stopping code 2 -### pop requested out of 102 stacked tracks. +### pop requested out of 202 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.74833,0.0780063,-0.658724) - Old Polarization: (-0.616287,-0.285537,-0.733934) - New Momentum Direction: (0.438684,0.105679,-0.892406) - New Polarization: (-0.867218,-0.210528,-0.451233) + Old Momentum Direction: (0.719196,0.227164,-0.656623) + Old Polarization: (-0.665465,-0.0465312,-0.744978) + New Momentum Direction: (0.332921,0.308295,-0.891133) + New Polarization: (0.910681,-0.350253,0.219051) *** FresnelRefraction *** Track (trackID 531, parentID 1) is processed with stopping code 2 -### pop requested out of 101 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.76285,0.0326678,-0.64575) - Old Polarization: (-0.599912,-0.336767,-0.725737) - New Momentum Direction: (0.488397,0.0440886,-0.871507) - New Polarization: (-0.840511,-0.244669,-0.483404) - *** FresnelRefraction *** +### pop requested out of 201 stacked tracks. + +** Photon absorbed! ** Track (trackID 530, parentID 1) is processed with stopping code 2 -### pop requested out of 100 stacked tracks. +### pop requested out of 200 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.77323,0.00356247,-0.634116) - Old Polarization: (-0.587904,-0.370758,-0.718963) - New Momentum Direction: (0.522664,0.00478949,-0.852525) - New Polarization: (-0.820089,-0.270438,-0.504298) + Old Momentum Direction: (0.716695,0.111577,0.688403) + Old Polarization: (-0.668173,-0.172852,0.723649) + New Momentum Direction: (-0.716695,0.111577,0.688403) + New Polarization: (0.594877,-0.417362,0.686972) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.716695,0.111577,0.688403) + Old Polarization: (0.594877,-0.417362,0.686972) + New Momentum Direction: (-0.974663,0.151739,0.164342) + New Polarization: (0.114764,-0.291404,0.949691) *** FresnelRefraction *** Track (trackID 529, parentID 1) is processed with stopping code 2 -### pop requested out of 99 stacked tracks. +### pop requested out of 199 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.619062,0.585309,-0.523618) - Old Polarization: (-0.759128,0.275154,-0.589929) - New Momentum Direction: (-0.619062,0.585309,-0.523618) - New Polarization: (-0.759128,-0.275154,0.589929) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.619062,0.585309,-0.523618) - Old Polarization: (-0.759128,-0.275154,0.589929) - New Momentum Direction: (-0.619062,-0.585309,-0.523618) - New Polarization: (0.759128,-0.275154,-0.589929) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.619062,-0.585309,-0.523618) - Old Polarization: (0.759128,-0.275154,-0.589929) - New Momentum Direction: (-0.619062,-0.585309,0.523618) - New Polarization: (-0.759128,0.275154,-0.589929) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.619062,-0.585309,0.523618) -Old Polarization: (-0.759128,0.275154,-0.589929) -New Polarization: (-0.584811,-0.298129,-0.754397) -Polarization Change: (-0.584811,-0.298129,-0.754397) -New Momentum Direction: (0.486293,-0.873213,-0.0318926) -Momentum Change: (0.486293,-0.873213,-0.0318926) - Photon at Boundary! - Old Momentum Direction: (0.486293,-0.873213,-0.0318926) - Old Polarization: (-0.584811,-0.298129,-0.754397) - New Momentum Direction: (-0.486293,-0.873213,-0.0318926) - New Polarization: (-0.584811,0.298129,0.754397) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.486293,-0.873213,-0.0318926) - Old Polarization: (-0.584811,0.298129,0.754397) - New Momentum Direction: (-0.656552,-0.753051,-0.0430586) - New Polarization: (-0.593106,0.480149,0.646284) + Old Momentum Direction: (0.603593,0.759812,-0.241581) + Old Polarization: (-0.792039,0.536702,-0.290902) + New Momentum Direction: (0.818985,0.470976,-0.327789) + New Polarization: (-0.568409,0.744101,-0.351033) *** FresnelRefraction *** Track (trackID 528, parentID 1) is processed with stopping code 2 -### pop requested out of 98 stacked tracks. +### pop requested out of 198 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.671878,0.356714,0.649103) + Old Polarization: (-0.71771,0.0970808,0.689542) + New Momentum Direction: (-0.671878,0.356714,0.649103) + New Polarization: (-0.71771,-0.0970808,-0.689542) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671878,0.356714,0.649103) + Old Polarization: (-0.71771,-0.0970808,-0.689542) + New Momentum Direction: (-0.671878,0.356714,-0.649103) + New Polarization: (0.71771,0.0970808,-0.689542) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671878,0.356714,-0.649103) + Old Polarization: (0.71771,0.0970808,-0.689542) + New Momentum Direction: (-0.671878,-0.356714,-0.649103) + New Polarization: (-0.71771,0.0970808,0.689542) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671878,-0.356714,-0.649103) + Old Polarization: (-0.71771,0.0970808,0.689542) + New Momentum Direction: (0.671878,-0.356714,-0.649103) + New Polarization: (-0.71771,-0.0970808,-0.689542) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671878,-0.356714,-0.649103) + Old Polarization: (-0.71771,-0.0970808,-0.689542) + New Momentum Direction: (0.671878,-0.356714,0.649103) + New Polarization: (0.71771,0.0970808,-0.689542) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 527, parentID 1) is processed with stopping code 2 -### pop requested out of 97 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 197 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.772726,-0.0275585,-0.634141) + Old Polarization: (-0.606544,-0.326515,-0.724908) + New Momentum Direction: (0.512067,-0.0372928,-0.858136) + New Polarization: (0.824911,-0.257092,0.503414) + *** FresnelRefraction *** Track (trackID 526, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. +### pop requested out of 196 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.651815,0.471681,0.593847) + Old Polarization: (-0.740403,0.22632,0.632916) + New Momentum Direction: (-0.651815,0.471681,0.593847) + New Polarization: (-0.740403,-0.22632,-0.632916) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.651815,0.471681,0.593847) + Old Polarization: (-0.740403,-0.22632,-0.632916) + New Momentum Direction: (-0.651815,0.471681,-0.593847) + New Polarization: (0.740403,0.22632,-0.632916) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.651815,0.471681,-0.593847) + Old Polarization: (0.740403,0.22632,-0.632916) + New Momentum Direction: (-0.651815,-0.471681,-0.593847) + New Polarization: (-0.740403,0.22632,0.632916) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 525, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.596224,0.668002,-0.445298) - Old Polarization: (-0.784043,0.365243,-0.501871) - New Momentum Direction: (0.596224,-0.668002,-0.445298) - New Polarization: (0.784043,0.365243,0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.596224,-0.668002,-0.445298) - Old Polarization: (0.784043,0.365243,0.501871) - New Momentum Direction: (-0.596224,-0.668002,-0.445298) - New Polarization: (0.784043,-0.365243,-0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.596224,-0.668002,-0.445298) - Old Polarization: (0.784043,-0.365243,-0.501871) - New Momentum Direction: (-0.596224,-0.668002,0.445298) - New Polarization: (-0.784043,0.365243,-0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.596224,-0.668002,0.445298) - Old Polarization: (-0.784043,0.365243,-0.501871) - New Momentum Direction: (-0.596224,0.668002,0.445298) - New Polarization: (0.784043,0.365243,0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.596224,0.668002,0.445298) - Old Polarization: (0.784043,0.365243,0.501871) - New Momentum Direction: (0.596224,0.668002,0.445298) - New Polarization: (0.784043,-0.365243,-0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.596224,0.668002,0.445298) - Old Polarization: (0.784043,-0.365243,-0.501871) - New Momentum Direction: (0.596224,0.668002,-0.445298) - New Polarization: (-0.784043,0.365243,-0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.596224,0.668002,-0.445298) - Old Polarization: (-0.784043,0.365243,-0.501871) - New Momentum Direction: (0.596224,-0.668002,-0.445298) - New Polarization: (0.784043,0.365243,0.501871) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.596224,-0.668002,-0.445298) - Old Polarization: (0.784043,0.365243,0.501871) - New Momentum Direction: (-0.596224,-0.668002,-0.445298) - New Polarization: (0.784043,-0.365243,-0.501871) - *** TotalInternalReflection *** +### pop requested out of 195 stacked tracks. ** Photon absorbed! ** Track (trackID 524, parentID 1) is processed with stopping code 2 -### pop requested out of 94 stacked tracks. +### pop requested out of 194 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.638762,0.466942,0.611513) - Old Polarization: (-0.736626,0.141627,0.661305) - New Momentum Direction: (-0.638762,0.466942,0.611513) - New Polarization: (-0.736626,-0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,0.466942,0.611513) - Old Polarization: (-0.736626,-0.141627,-0.661305) - New Momentum Direction: (-0.638762,0.466942,-0.611513) - New Polarization: (0.736626,0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,0.466942,-0.611513) - Old Polarization: (0.736626,0.141627,-0.661305) - New Momentum Direction: (-0.638762,-0.466942,-0.611513) - New Polarization: (-0.736626,0.141627,0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,-0.466942,-0.611513) - Old Polarization: (-0.736626,0.141627,0.661305) - New Momentum Direction: (-0.638762,-0.466942,0.611513) - New Polarization: (0.736626,-0.141627,0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,-0.466942,0.611513) - Old Polarization: (0.736626,-0.141627,0.661305) - New Momentum Direction: (-0.638762,-0.466942,-0.611513) - New Polarization: (-0.736626,0.141627,0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,-0.466942,-0.611513) - Old Polarization: (-0.736626,0.141627,0.661305) - New Momentum Direction: (0.638762,-0.466942,-0.611513) - New Polarization: (-0.736626,-0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.638762,-0.466942,-0.611513) - Old Polarization: (-0.736626,-0.141627,-0.661305) - New Momentum Direction: (0.638762,0.466942,-0.611513) - New Polarization: (0.736626,-0.141627,0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.638762,0.466942,-0.611513) - Old Polarization: (0.736626,-0.141627,0.661305) - New Momentum Direction: (-0.638762,0.466942,-0.611513) - New Polarization: (0.736626,0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,0.466942,-0.611513) - Old Polarization: (0.736626,0.141627,-0.661305) - New Momentum Direction: (-0.638762,0.466942,0.611513) - New Polarization: (-0.736626,-0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,0.466942,0.611513) - Old Polarization: (-0.736626,-0.141627,-0.661305) - New Momentum Direction: (-0.638762,-0.466942,0.611513) - New Polarization: (0.736626,-0.141627,0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,-0.466942,0.611513) - Old Polarization: (0.736626,-0.141627,0.661305) - New Momentum Direction: (0.638762,-0.466942,0.611513) - New Polarization: (0.736626,0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.638762,-0.466942,0.611513) - Old Polarization: (0.736626,0.141627,-0.661305) - New Momentum Direction: (0.638762,-0.466942,-0.611513) - New Polarization: (-0.736626,-0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.638762,-0.466942,-0.611513) - Old Polarization: (-0.736626,-0.141627,-0.661305) - New Momentum Direction: (0.638762,0.466942,-0.611513) - New Polarization: (0.736626,-0.141627,0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.638762,0.466942,-0.611513) - Old Polarization: (0.736626,-0.141627,0.661305) - New Momentum Direction: (-0.638762,0.466942,-0.611513) - New Polarization: (0.736626,0.141627,-0.661305) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.638762,0.466942,-0.611513) - Old Polarization: (0.736626,0.141627,-0.661305) - New Momentum Direction: (-0.638762,0.466942,0.611513) - New Polarization: (-0.736626,-0.141627,-0.661305) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 523, parentID 1) is processed with stopping code 2 -### pop requested out of 93 stacked tracks. - -** Photon absorbed! ** -Track (trackID 522, parentID 1) is processed with stopping code 2 -### pop requested out of 92 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.551007,0.810985,0.196709) - Old Polarization: (-0.832003,0.515654,0.204625) - New Momentum Direction: (0.748498,0.606916,0.267213) - New Polarization: (0.415911,-0.743497,0.52367) + Old Momentum Direction: (0.788098,-0.0946049,-0.608237) + Old Polarization: (-0.589171,-0.402102,-0.700851) + New Momentum Direction: (0.556962,-0.127647,-0.82067) + New Polarization: (0.798204,-0.190758,0.571385) *** FresnelRefraction *** -Track (trackID 521, parentID 1) is processed with stopping code 2 -### pop requested out of 91 stacked tracks. +Track (trackID 523, parentID 1) is processed with stopping code 2 +### pop requested out of 193 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.882625,-0.449655,-0.137056) - Old Polarization: (-0.467781,-0.868938,-0.161638) - New Momentum Direction: (0.77225,-0.607716,-0.185233) - New Polarization: (-0.633681,-0.757719,-0.155918) + Old Momentum Direction: (0.603659,0.764788,-0.225155) + Old Polarization: (-0.792498,0.544874,-0.273969) + New Momentum Direction: (0.817582,0.488434,-0.304945) + New Polarization: (-0.571754,0.751392,-0.329405) + *** FresnelRefraction *** +Track (trackID 522, parentID 1) is processed with stopping code 2 +### pop requested out of 192 stacked tracks. + +** Photon absorbed! ** +Track (trackID 521, parentID 1) is processed with stopping code 2 +### pop requested out of 191 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.784445,-0.0980037,-0.612406) + Old Polarization: (-0.594061,-0.402371,-0.696555) + New Momentum Direction: (0.539919,-0.133008,-0.831142) + New Polarization: (0.80979,-0.187296,0.556022) *** FresnelRefraction *** Track (trackID 520, parentID 1) is processed with stopping code 2 -### pop requested out of 90 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.55083,0.831865,-0.0677251) - Old Polarization: (-0.833936,0.545286,-0.0849354) - New Momentum Direction: (0.745001,0.660744,-0.0915987) - New Polarization: (0.633525,-0.743835,-0.212969) - *** FresnelRefraction *** +### pop requested out of 190 stacked tracks. + +** Photon absorbed! ** Track (trackID 519, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.734218,0.130006,-0.66635) - Old Polarization: (-0.631835,-0.22828,-0.740725) - New Momentum Direction: (0.390372,0.176297,-0.90362) - New Polarization: (-0.89009,-0.17854,-0.41936) - *** FresnelRefraction *** +### pop requested out of 189 stacked tracks. + +** Photon absorbed! ** Track (trackID 518, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. +### pop requested out of 188 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.547611,0.828168,0.119416) - Old Polarization: (-0.835968,0.53541,0.120389) - New Momentum Direction: (0.743409,0.648893,0.162114) - New Polarization: (0.573473,-0.743139,0.344779) - *** FresnelRefraction *** + Old Momentum Direction: (0.630976,0.572041,0.52406) + Old Polarization: (-0.763009,0.335408,0.552557) + New Momentum Direction: (-0.630976,0.572041,0.52406) + New Polarization: (-0.763009,-0.335408,-0.552557) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.630976,0.572041,0.52406) + Old Polarization: (-0.763009,-0.335408,-0.552557) + New Momentum Direction: (-0.630976,-0.572041,0.52406) + New Polarization: (0.763009,-0.335408,0.552557) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.630976,-0.572041,0.52406) + Old Polarization: (0.763009,-0.335408,0.552557) + New Momentum Direction: (-0.630976,-0.572041,-0.52406) + New Polarization: (-0.763009,0.335408,0.552557) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.630976,-0.572041,-0.52406) + Old Polarization: (-0.763009,0.335408,0.552557) + New Momentum Direction: (0.630976,-0.572041,-0.52406) + New Polarization: (-0.763009,-0.335408,-0.552557) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 517, parentID 1) is processed with stopping code 2 -### pop requested out of 87 stacked tracks. +### pop requested out of 187 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.64103,0.487257,-0.593011) - Old Polarization: (-0.733886,0.16292,-0.659446) - New Momentum Direction: (-0.64103,0.487257,-0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) + Old Momentum Direction: (0.624088,0.588311,0.514202) + Old Polarization: (-0.769404,0.348055,0.535608) + New Momentum Direction: (-0.624088,0.588311,0.514202) + New Polarization: (-0.769404,-0.348055,-0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,-0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (-0.64103,0.487257,0.593011) - New Polarization: (0.733886,0.16292,0.659446) + Old Momentum Direction: (-0.624088,0.588311,0.514202) + Old Polarization: (-0.769404,-0.348055,-0.535608) + New Momentum Direction: (-0.624088,-0.588311,0.514202) + New Polarization: (0.769404,-0.348055,0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,0.593011) - Old Polarization: (0.733886,0.16292,0.659446) - New Momentum Direction: (-0.64103,-0.487257,0.593011) - New Polarization: (-0.733886,0.16292,-0.659446) + Old Momentum Direction: (-0.624088,-0.588311,0.514202) + Old Polarization: (0.769404,-0.348055,0.535608) + New Momentum Direction: (-0.624088,-0.588311,-0.514202) + New Polarization: (-0.769404,0.348055,0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.64103,-0.487257,0.593011) - Old Polarization: (-0.733886,0.16292,-0.659446) - New Momentum Direction: (-0.64103,-0.487257,-0.593011) - New Polarization: (0.733886,-0.16292,-0.659446) + Old Momentum Direction: (-0.624088,-0.588311,-0.514202) + Old Polarization: (-0.769404,0.348055,0.535608) + New Momentum Direction: (0.624088,-0.588311,-0.514202) + New Polarization: (-0.769404,-0.348055,-0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.64103,-0.487257,-0.593011) - Old Polarization: (0.733886,-0.16292,-0.659446) - New Momentum Direction: (0.64103,-0.487257,-0.593011) - New Polarization: (0.733886,0.16292,0.659446) + Old Momentum Direction: (0.624088,-0.588311,-0.514202) + Old Polarization: (-0.769404,-0.348055,-0.535608) + New Momentum Direction: (0.624088,0.588311,-0.514202) + New Polarization: (0.769404,-0.348055,0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.64103,-0.487257,-0.593011) - Old Polarization: (0.733886,0.16292,0.659446) - New Momentum Direction: (0.64103,-0.487257,0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) + Old Momentum Direction: (0.624088,0.588311,-0.514202) + Old Polarization: (0.769404,-0.348055,0.535608) + New Momentum Direction: (0.624088,0.588311,0.514202) + New Polarization: (-0.769404,0.348055,0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.64103,-0.487257,0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (0.64103,0.487257,0.593011) - New Polarization: (0.733886,-0.16292,-0.659446) + Old Momentum Direction: (0.624088,0.588311,0.514202) + Old Polarization: (-0.769404,0.348055,0.535608) + New Momentum Direction: (-0.624088,0.588311,0.514202) + New Polarization: (-0.769404,-0.348055,-0.535608) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.64103,0.487257,0.593011) - Old Polarization: (0.733886,-0.16292,-0.659446) - New Momentum Direction: (-0.64103,0.487257,0.593011) - New Polarization: (0.733886,0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,0.593011) - Old Polarization: (0.733886,0.16292,0.659446) - New Momentum Direction: (-0.64103,0.487257,-0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,-0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (-0.64103,-0.487257,-0.593011) - New Polarization: (0.733886,-0.16292,-0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,-0.487257,-0.593011) - Old Polarization: (0.733886,-0.16292,-0.659446) - New Momentum Direction: (0.64103,-0.487257,-0.593011) - New Polarization: (0.733886,0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64103,-0.487257,-0.593011) - Old Polarization: (0.733886,0.16292,0.659446) - New Momentum Direction: (0.64103,-0.487257,0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64103,-0.487257,0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (-0.64103,-0.487257,0.593011) - New Polarization: (-0.733886,0.16292,-0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,-0.487257,0.593011) - Old Polarization: (-0.733886,0.16292,-0.659446) - New Momentum Direction: (-0.64103,0.487257,0.593011) - New Polarization: (0.733886,0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,0.593011) - Old Polarization: (0.733886,0.16292,0.659446) - New Momentum Direction: (-0.64103,0.487257,-0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,-0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (0.64103,0.487257,-0.593011) - New Polarization: (-0.733886,0.16292,-0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64103,0.487257,-0.593011) - Old Polarization: (-0.733886,0.16292,-0.659446) - New Momentum Direction: (0.64103,0.487257,0.593011) - New Polarization: (0.733886,-0.16292,-0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64103,0.487257,0.593011) - Old Polarization: (0.733886,-0.16292,-0.659446) - New Momentum Direction: (0.64103,-0.487257,0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.64103,-0.487257,0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (-0.64103,-0.487257,0.593011) - New Polarization: (-0.733886,0.16292,-0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,-0.487257,0.593011) - Old Polarization: (-0.733886,0.16292,-0.659446) - New Momentum Direction: (-0.64103,-0.487257,-0.593011) - New Polarization: (0.733886,-0.16292,-0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,-0.487257,-0.593011) - Old Polarization: (0.733886,-0.16292,-0.659446) - New Momentum Direction: (-0.64103,0.487257,-0.593011) - New Polarization: (-0.733886,-0.16292,0.659446) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.64103,0.487257,-0.593011) - Old Polarization: (-0.733886,-0.16292,0.659446) - New Momentum Direction: (0.64103,0.487257,-0.593011) - New Polarization: (-0.733886,0.16292,-0.659446) + Old Momentum Direction: (-0.624088,0.588311,0.514202) + Old Polarization: (-0.769404,-0.348055,-0.535608) + New Momentum Direction: (-0.624088,-0.588311,0.514202) + New Polarization: (0.769404,-0.348055,0.535608) *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 516, parentID 1) is processed with stopping code 2 -### pop requested out of 86 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.557381,0.78591,0.267715) -Old Polarization: (-0.825243,0.489042,0.282509) -New Polarization: (0.409407,-0.733782,-0.542172) -Polarization Change: (0.409407,-0.733782,-0.542172) -New Momentum Direction: (0.905725,0.255387,0.338291) -Momentum Change: (0.905725,0.255387,0.338291) +### pop requested out of 186 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.905725,0.255387,0.338291) - Old Polarization: (0.409407,-0.733782,-0.542172) - New Momentum Direction: (0.817816,0.346736,0.459295) - New Polarization: (-0.5649,0.331353,0.755707) + Old Momentum Direction: (0.650635,0.560194,-0.512696) + Old Polarization: (-0.740901,0.320204,-0.590369) + New Momentum Direction: (-0.650635,0.560194,-0.512696) + New Polarization: (-0.740901,-0.320204,0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.650635,0.560194,-0.512696) + Old Polarization: (-0.740901,-0.320204,0.590369) + New Momentum Direction: (-0.650635,-0.560194,-0.512696) + New Polarization: (0.740901,-0.320204,-0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.650635,-0.560194,-0.512696) + Old Polarization: (0.740901,-0.320204,-0.590369) + New Momentum Direction: (-0.650635,-0.560194,0.512696) + New Polarization: (-0.740901,0.320204,-0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.650635,-0.560194,0.512696) + Old Polarization: (-0.740901,0.320204,-0.590369) + New Momentum Direction: (0.650635,-0.560194,0.512696) + New Polarization: (-0.740901,-0.320204,0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.650635,-0.560194,0.512696) + Old Polarization: (-0.740901,-0.320204,0.590369) + New Momentum Direction: (0.650635,0.560194,0.512696) + New Polarization: (0.740901,-0.320204,-0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.650635,0.560194,0.512696) + Old Polarization: (0.740901,-0.320204,-0.590369) + New Momentum Direction: (0.650635,0.560194,-0.512696) + New Polarization: (-0.740901,0.320204,-0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.650635,0.560194,-0.512696) + Old Polarization: (-0.740901,0.320204,-0.590369) + New Momentum Direction: (-0.650635,0.560194,-0.512696) + New Polarization: (-0.740901,-0.320204,0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.650635,0.560194,-0.512696) + Old Polarization: (-0.740901,-0.320204,0.590369) + New Momentum Direction: (-0.650635,-0.560194,-0.512696) + New Polarization: (0.740901,-0.320204,-0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.650635,-0.560194,-0.512696) + Old Polarization: (0.740901,-0.320204,-0.590369) + New Momentum Direction: (-0.650635,-0.560194,0.512696) + New Polarization: (-0.740901,0.320204,-0.590369) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.650635,-0.560194,0.512696) + Old Polarization: (-0.740901,0.320204,-0.590369) + New Momentum Direction: (0.650635,-0.560194,0.512696) + New Polarization: (-0.740901,-0.320204,0.590369) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.650635,-0.560194,0.512696) +Old Polarization: (-0.740901,-0.320204,0.590369) +New Polarization: (-0.341304,0.0979083,0.93484) +Polarization Change: (-0.341304,0.0979083,0.93484) +New Momentum Direction: (0.752382,0.6246,0.209274) +Momentum Change: (0.752382,0.6246,0.209274) + Photon at Boundary! + Old Momentum Direction: (0.752382,0.6246,0.209274) + Old Polarization: (-0.341304,0.0979083,0.93484) + New Momentum Direction: (0.452133,0.845741,0.283368) + New Polarization: (0.487662,-0.500399,0.715393) *** FresnelRefraction *** Track (trackID 515, parentID 1) is processed with stopping code 2 -### pop requested out of 85 stacked tracks. +### pop requested out of 185 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.565161,0.785652,-0.251682) - Old Polarization: (-0.818668,0.496434,-0.288679) - New Momentum Direction: (0.763292,0.549403,-0.339915) - New Polarization: (0.256511,-0.740613,-0.621043) + Old Momentum Direction: (0.763819,0.00269013,-0.645425) + Old Polarization: (-0.616733,-0.291828,-0.731079) + New Momentum Direction: (0.480755,0.00365469,-0.876848) + New Polarization: (0.842614,-0.278645,0.460824) *** FresnelRefraction *** Track (trackID 514, parentID 1) is processed with stopping code 2 -### pop requested out of 84 stacked tracks. +### pop requested out of 184 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.884324,-0.45576,-0.101265) - Old Polarization: (-0.465703,-0.876458,-0.122238) - New Momentum Direction: (0.776045,-0.615663,-0.136794) - New Polarization: (-0.629842,-0.767726,-0.117882) - *** FresnelRefraction *** + Old Momentum Direction: (0.684023,0.309376,0.660605) + Old Polarization: (-0.704697,0.0462998,0.707996) + New Momentum Direction: (-0.684023,0.309376,0.660605) + New Polarization: (0.681527,-0.0518206,0.729956) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.684023,0.309376,0.660605) + Old Polarization: (0.681527,-0.0518206,0.729956) + New Momentum Direction: (-0.684023,0.309376,-0.660605) + New Polarization: (-0.681527,0.0518206,0.729956) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 513, parentID 1) is processed with stopping code 2 -### pop requested out of 83 stacked tracks. +### pop requested out of 183 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.578809,0.71631,-0.389719) - Old Polarization: (-0.801299,0.410912,-0.434823) - New Momentum Direction: (0.787098,0.315622,-0.529962) - New Polarization: (-0.177857,-0.706554,-0.684944) - *** FresnelRefraction *** + Old Momentum Direction: (0.636113,0.61937,-0.460153) + Old Polarization: (-0.756437,0.382954,-0.530235) + New Momentum Direction: (-0.636113,0.61937,-0.460153) + New Polarization: (-0.756437,-0.382954,0.530235) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.636113,0.61937,-0.460153) + Old Polarization: (-0.756437,-0.382954,0.530235) + New Momentum Direction: (-0.636113,-0.61937,-0.460153) + New Polarization: (0.756437,-0.382954,-0.530235) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.636113,-0.61937,-0.460153) + Old Polarization: (0.756437,-0.382954,-0.530235) + New Momentum Direction: (-0.636113,-0.61937,0.460153) + New Polarization: (-0.756437,0.382954,-0.530235) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.636113,-0.61937,0.460153) + Old Polarization: (-0.756437,0.382954,-0.530235) + New Momentum Direction: (0.636113,-0.61937,0.460153) + New Polarization: (-0.756437,-0.382954,0.530235) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.636113,-0.61937,0.460153) + Old Polarization: (-0.756437,-0.382954,0.530235) + New Momentum Direction: (0.636113,0.61937,0.460153) + New Polarization: (0.756437,-0.382954,-0.530235) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 512, parentID 1) is processed with stopping code 2 -### pop requested out of 82 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.874263,-0.41874,-0.245604) - Old Polarization: (-0.477596,-0.832566,-0.2806) - New Momentum Direction: (0.753812,-0.56679,-0.33244) - New Polarization: (-0.651473,-0.710671,-0.265573) - *** FresnelRefraction *** +### pop requested out of 182 stacked tracks. + +** Photon absorbed! ** Track (trackID 511, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. +### pop requested out of 181 stacked tracks. ** Photon absorbed! ** Track (trackID 510, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.805775,-0.171406,0.566874) - Old Polarization: (-0.552667,-0.561593,0.61577) - New Momentum Direction: (0.599429,-0.231667,0.766169) - New Polarization: (-0.772238,-0.419174,0.477431) - *** FresnelRefraction *** +### pop requested out of 180 stacked tracks. + +** Photon absorbed! ** Track (trackID 509, parentID 1) is processed with stopping code 2 -### pop requested out of 79 stacked tracks. - -** Photon absorbed! ** +### pop requested out of 179 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.606419,0.772639,-0.187842) + Old Polarization: (-0.791443,0.563743,-0.236245) + New Momentum Direction: (0.815881,0.520066,-0.252724) + New Polarization: (-0.576255,0.767338,-0.281289) + *** FresnelRefraction *** Track (trackID 508, parentID 1) is processed with stopping code 2 -### pop requested out of 78 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.655449,0.397537,0.642146) -Old Polarization: (-0.718109,0.0647306,0.692913) -New Polarization: (-0.691674,0.532322,-0.488078) -Polarization Change: (-0.691674,0.532322,-0.488078) -New Momentum Direction: (-0.595842,-0.0387134,0.802168) -Momentum Change: (-0.595842,-0.0387134,0.802168) - Photon at Boundary! - Old Momentum Direction: (-0.595842,-0.0387134,0.802168) - Old Polarization: (-0.691674,0.532322,-0.488078) - New Momentum Direction: (-0.808441,-0.0525264,0.586229) - New Polarization: (-0.552962,0.408992,-0.725919) - *** FresnelRefraction *** +### pop requested out of 178 stacked tracks. + +** Photon absorbed! ** Track (trackID 507, parentID 1) is processed with stopping code 2 -### pop requested out of 77 stacked tracks. - -** Photon absorbed! ** -Track (trackID 506, parentID 1) is processed with stopping code 2 -### pop requested out of 76 stacked tracks. +### pop requested out of 177 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.648565,0.436191,0.623779) - Old Polarization: (-0.726285,0.109422,0.678629) - New Momentum Direction: (-0.648565,0.436191,0.623779) - New Polarization: (-0.726285,-0.109422,-0.678629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648565,0.436191,0.623779) - Old Polarization: (-0.726285,-0.109422,-0.678629) - New Momentum Direction: (-0.648565,0.436191,-0.623779) - New Polarization: (0.726285,0.109422,-0.678629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648565,0.436191,-0.623779) - Old Polarization: (0.726285,0.109422,-0.678629) - New Momentum Direction: (-0.648565,-0.436191,-0.623779) - New Polarization: (-0.726285,0.109422,0.678629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648565,-0.436191,-0.623779) - Old Polarization: (-0.726285,0.109422,0.678629) - New Momentum Direction: (-0.648565,0.436191,-0.623779) - New Polarization: (0.726285,0.109422,-0.678629) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 505, parentID 1) is processed with stopping code 2 -### pop requested out of 75 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.563035,0.776822,-0.282026) - Old Polarization: (-0.818774,0.47798,-0.318032) - New Momentum Direction: (0.765034,0.517565,-0.383209) - New Polarization: (0.16917,-0.73567,-0.655874) - *** FresnelRefraction *** -Track (trackID 504, parentID 1) is processed with stopping code 2 -### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.865673,-0.402719,0.297367) - Old Polarization: (-0.487332,-0.813826,0.316535) - New Momentum Direction: (0.734942,-0.545526,0.402816) - New Polarization: (-0.668618,-0.682079,0.296174) - *** FresnelRefraction *** -Track (trackID 503, parentID 1) is processed with stopping code 2 -### pop requested out of 73 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.570299,0.746659,-0.342433) - Old Polarization: (-0.810419,0.44338,-0.38293) - New Momentum Direction: (0.775873,0.425427,-0.465868) - New Polarization: (-0.0195192,-0.721891,-0.691732) - *** FresnelRefraction *** -Track (trackID 502, parentID 1) is processed with stopping code 2 -### pop requested out of 72 stacked tracks. - -** Photon absorbed! ** -Track (trackID 501, parentID 1) is processed with stopping code 2 -### pop requested out of 71 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.546445,0.835412,0.059033) - Old Polarization: (-0.837388,0.543895,0.0543969) - New Momentum Direction: (0.741559,0.666087,0.0801113) - New Polarization: (0.647633,-0.7419,0.173656) - *** FresnelRefraction *** -Track (trackID 500, parentID 1) is processed with stopping code 2 -### pop requested out of 70 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.686144,0.316547,-0.654984) - Old Polarization: (-0.684551,-0.0237174,-0.728579) - New Momentum Direction: (0.164952,0.429176,-0.888031) - New Polarization: (-0.963201,-0.123628,-0.238662) - *** FresnelRefraction *** -Track (trackID 499, parentID 1) is processed with stopping code 2 -### pop requested out of 69 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737828,0.0796226,0.670276) - Old Polarization: (-0.627868,-0.283553,0.72483) - New Momentum Direction: (-0.737828,0.0796226,0.670276) - New Polarization: (-0.447958,0.685057,-0.574483) + Old Momentum Direction: (0.60704,0.743788,-0.279787) + Old Polarization: (-0.788079,0.518201,-0.332265) + New Momentum Direction: (0.60704,-0.743788,-0.279787) + New Polarization: (-0.142493,0.244494,-0.959124) *** FresnelReflection *** Photon at Boundary! - Old Momentum Direction: (-0.737828,0.0796226,0.670276) - Old Polarization: (-0.447958,0.685057,-0.574483) - New Momentum Direction: (-0.737828,0.0796226,-0.670276) - New Polarization: (0.447958,-0.685057,-0.574483) + Old Momentum Direction: (0.60704,-0.743788,-0.279787) + Old Polarization: (-0.142493,0.244494,-0.959124) + New Momentum Direction: (-0.60704,-0.743788,-0.279787) + New Polarization: (-0.142493,-0.244494,0.959124) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.737828,0.0796226,-0.670276) - Old Polarization: (0.447958,-0.685057,-0.574483) - New Momentum Direction: (-0.403022,0.107957,-0.908801) - New Polarization: (0.728378,-0.563396,-0.389937) + Old Momentum Direction: (-0.60704,-0.743788,-0.279787) + Old Polarization: (-0.142493,-0.244494,0.959124) + New Momentum Direction: (-0.60704,-0.743788,0.279787) + New Polarization: (0.142493,0.244494,0.959124) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.60704,-0.743788,0.279787) + Old Polarization: (0.142493,0.244494,0.959124) + New Momentum Direction: (-0.824212,-0.419957,0.379882) + New Polarization: (0.534836,-0.356862,0.765898) + *** FresnelRefraction *** +Track (trackID 506, parentID 1) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.854065,-0.504473,0.126809) + Old Polarization: (-0.517683,-0.848138,0.112547) + New Momentum Direction: (0.708685,-0.684239,0.171997) + New Polarization: (0.702339,0.661057,-0.264052) + *** FresnelRefraction *** +Track (trackID 505, parentID 1) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + +** Photon absorbed! ** +Track (trackID 504, parentID 1) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.654194,0.426922,0.624314) + Old Polarization: (-0.736352,0.17106,0.654618) + New Momentum Direction: (-0.654194,0.426922,0.624314) + New Polarization: (-0.736352,-0.17106,-0.654618) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.654194,0.426922,0.624314) + Old Polarization: (-0.736352,-0.17106,-0.654618) + New Momentum Direction: (-0.654194,0.426922,-0.624314) + New Polarization: (0.736352,0.17106,-0.654618) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.654194,0.426922,-0.624314) + Old Polarization: (0.736352,0.17106,-0.654618) + New Momentum Direction: (-0.654194,-0.426922,-0.624314) + New Polarization: (-0.736352,0.17106,0.654618) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 503, parentID 1) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.82118,-0.283501,-0.495268) + Old Polarization: (-0.553496,-0.60698,-0.570278) + New Momentum Direction: (0.634048,-0.384162,-0.67112) + New Polarization: (0.751688,0.102467,0.651511) + *** FresnelRefraction *** +Track (trackID 502, parentID 1) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.858829,-0.502128,-0.10139) + Old Polarization: (-0.51199,-0.847848,-0.137914) + New Momentum Direction: (0.720171,-0.680071,-0.137321) + New Polarization: (0.693446,0.699278,0.173615) + *** FresnelRefraction *** +Track (trackID 501, parentID 1) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.850217,-0.496959,0.173675) + Old Polarization: (-0.522495,-0.836888,0.16315) + New Momentum Direction: (0.698696,-0.675364,0.236024) + New Polarization: (0.710374,0.615815,-0.340795) + *** FresnelRefraction *** +Track (trackID 500, parentID 1) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.704288,0.313186,-0.637098) + Old Polarization: (-0.681972,0.049168,-0.729724) + New Momentum Direction: (0.28092,0.423395,-0.86129) + New Polarization: (0.93014,-0.341239,0.135629) + *** FresnelRefraction *** +Track (trackID 499, parentID 1) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.590893,0.805683,0.0414691) + Old Polarization: (-0.806699,0.590652,0.0191666) + New Momentum Direction: (0.799882,0.597527,0.056136) + New Polarization: (-0.599563,0.79975,0.0304164) *** FresnelRefraction *** Track (trackID 498, parentID 1) is processed with stopping code 2 -### pop requested out of 68 stacked tracks. +### pop requested out of 168 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.882915,-0.469252,0.0162126) - Old Polarization: (-0.469408,-0.882949,0.00751001) - New Momentum Direction: (0.770332,-0.637263,0.0220174) - New Polarization: (-0.637555,-0.770339,0.0100265) + Old Momentum Direction: (0.827014,-0.313471,-0.466674) + Old Polarization: (-0.547004,-0.64028,-0.539286) + New Momentum Direction: (0.648133,-0.424625,-0.632152) + New Polarization: (0.742361,0.167237,0.648793) *** FresnelRefraction *** Track (trackID 497, parentID 1) is processed with stopping code 2 -### pop requested out of 67 stacked tracks. - -** Photon absorbed! ** -Track (trackID 496, parentID 1) is processed with stopping code 2 -### pop requested out of 66 stacked tracks. +### pop requested out of 167 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.809856,-0.146015,-0.568167) - Old Polarization: (-0.547411,-0.536282,-0.642451) - New Momentum Direction: (0.61281,-0.196692,-0.76536) - New Polarization: (-0.762039,-0.403477,-0.506461) + Old Momentum Direction: (0.608361,0.6837,0.403052) + Old Polarization: (-0.787195,0.455114,0.416168) + New Momentum Direction: (0.608361,-0.6837,0.403052) + New Polarization: (-0.180082,0.375681,0.909084) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.608361,-0.6837,0.403052) + Old Polarization: (-0.180082,0.375681,0.909084) + New Momentum Direction: (-0.608361,-0.6837,0.403052) + New Polarization: (-0.180082,-0.375681,-0.909084) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.608361,-0.6837,0.403052) + Old Polarization: (-0.180082,-0.375681,-0.909084) + New Momentum Direction: (-0.608361,-0.6837,-0.403052) + New Polarization: (0.180082,0.375681,-0.909084) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.608361,-0.6837,-0.403052) + Old Polarization: (0.180082,0.375681,-0.909084) + New Momentum Direction: (-0.608361,0.6837,-0.403052) + New Polarization: (0.268549,-0.300554,-0.915177) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.608361,0.6837,-0.403052) + Old Polarization: (0.268549,-0.300554,-0.915177) + New Momentum Direction: (0.608361,0.6837,-0.403052) + New Polarization: (0.268549,0.300554,0.915177) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.608361,0.6837,-0.403052) + Old Polarization: (0.268549,0.300554,0.915177) + New Momentum Direction: (0.824343,0.148943,-0.546144) + New Polarization: (0.424428,0.475786,0.770382) + *** FresnelRefraction *** +Track (trackID 496, parentID 1) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.85913,-0.509325,-0.0498336) + Old Polarization: (-0.511755,-0.855286,-0.0811924) + New Momentum Direction: (0.720632,-0.690023,-0.0675135) + New Polarization: (0.693316,0.71697,0.0725759) *** FresnelRefraction *** Track (trackID 495, parentID 1) is processed with stopping code 2 -### pop requested out of 65 stacked tracks. +### pop requested out of 165 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.715316,0.167944,0.67832) - Old Polarization: (-0.652557,-0.186713,0.734376) - New Momentum Direction: (0.321068,0.227608,0.919299) - New Polarization: (-0.918348,-0.162364,0.360936) + Old Momentum Direction: (0.824649,-0.381596,0.417538) + Old Polarization: (-0.549648,-0.714903,0.432205) + New Momentum Direction: (-0.824649,-0.381596,0.417538) + New Polarization: (-0.215154,-0.47107,-0.855454) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.824649,-0.381596,0.417538) + Old Polarization: (-0.215154,-0.47107,-0.855454) + New Momentum Direction: (-0.824649,-0.381596,-0.417538) + New Polarization: (0.215154,0.47107,-0.855454) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.824649,-0.381596,-0.417538) + Old Polarization: (0.215154,0.47107,-0.855454) + New Momentum Direction: (-0.824649,0.381596,-0.417538) + New Polarization: (-0.215154,0.47107,0.855454) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.824649,0.381596,-0.417538) + Old Polarization: (-0.215154,0.47107,0.855454) + New Momentum Direction: (-0.64241,0.517005,-0.5657) + New Polarization: (-0.300933,0.508691,0.806643) *** FresnelRefraction *** Track (trackID 494, parentID 1) is processed with stopping code 2 -### pop requested out of 64 stacked tracks. +### pop requested out of 164 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.88486,-0.461224,0.0655399) - Old Polarization: (-0.464944,-0.883149,0.0622535) - New Momentum Direction: (0.777367,-0.622791,0.0884986) - New Polarization: (-0.628395,-0.775242,0.064178) + Old Momentum Direction: (0.862631,-0.500848,-0.0708466) + Old Polarization: (-0.505775,-0.856178,-0.105599) + New Momentum Direction: (0.732352,-0.674215,-0.0953699) + New Polarization: (0.68085,0.722952,0.117404) *** FresnelRefraction *** Track (trackID 493, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. +### pop requested out of 163 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.553659,0.807176,0.204762) - Old Polarization: (-0.829985,0.514889,0.214508) - New Momentum Direction: (0.7504,0.5999,0.277524) - New Polarization: (0.395541,-0.743942,0.538607) - *** FresnelRefraction *** + Old Momentum Direction: (0.652578,0.545307,-0.526101) + Old Polarization: (-0.738459,0.302137,-0.60282) + New Momentum Direction: (-0.652578,0.545307,-0.526101) + New Polarization: (-0.738459,-0.302137,0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.652578,0.545307,-0.526101) + Old Polarization: (-0.738459,-0.302137,0.60282) + New Momentum Direction: (-0.652578,-0.545307,-0.526101) + New Polarization: (0.738459,-0.302137,-0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.652578,-0.545307,-0.526101) + Old Polarization: (0.738459,-0.302137,-0.60282) + New Momentum Direction: (-0.652578,-0.545307,0.526101) + New Polarization: (-0.738459,0.302137,-0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.652578,-0.545307,0.526101) + Old Polarization: (-0.738459,0.302137,-0.60282) + New Momentum Direction: (0.652578,-0.545307,0.526101) + New Polarization: (-0.738459,-0.302137,0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.652578,-0.545307,0.526101) + Old Polarization: (-0.738459,-0.302137,0.60282) + New Momentum Direction: (0.652578,0.545307,0.526101) + New Polarization: (0.738459,-0.302137,-0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.652578,0.545307,0.526101) + Old Polarization: (0.738459,-0.302137,-0.60282) + New Momentum Direction: (0.652578,0.545307,-0.526101) + New Polarization: (-0.738459,0.302137,-0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.652578,0.545307,-0.526101) + Old Polarization: (-0.738459,0.302137,-0.60282) + New Momentum Direction: (-0.652578,0.545307,-0.526101) + New Polarization: (-0.738459,-0.302137,0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.652578,0.545307,-0.526101) + Old Polarization: (-0.738459,-0.302137,0.60282) + New Momentum Direction: (-0.652578,-0.545307,-0.526101) + New Polarization: (0.738459,-0.302137,-0.60282) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.652578,-0.545307,-0.526101) + Old Polarization: (0.738459,-0.302137,-0.60282) + New Momentum Direction: (-0.652578,-0.545307,0.526101) + New Polarization: (-0.738459,0.302137,-0.60282) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 492, parentID 1) is processed with stopping code 2 -### pop requested out of 62 stacked tracks. +### pop requested out of 162 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.792871,-0.119824,0.597493) - Old Polarization: (-0.566767,-0.505241,0.650774) - New Momentum Direction: (0.568103,-0.161818,0.806892) - New Polarization: (-0.792794,-0.370634,0.483848) + Old Momentum Direction: (0.860018,-0.510255,-0.0029326) + Old Polarization: (-0.510107,-0.859597,-0.0297485) + New Momentum Direction: (0.723926,-0.689866,-0.00396489) + New Polarization: (0.689676,0.723842,-0.0200185) *** FresnelRefraction *** Track (trackID 491, parentID 1) is processed with stopping code 2 -### pop requested out of 61 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.678771,0.337242,-0.652333) -Old Polarization: (-0.69241,-0.00198933,-0.721501) -New Polarization: (0.500166,-0.788868,0.357101) -Polarization Change: (0.500166,-0.788868,0.357101) -New Momentum Direction: (-0.489994,-0.597853,-0.634411) -Momentum Change: (-0.489994,-0.597853,-0.634411) +### pop requested out of 161 stacked tracks. Photon at Boundary! - Old Momentum Direction: (-0.489994,-0.597853,-0.634411) - Old Polarization: (0.500166,-0.788868,0.357101) - New Momentum Direction: (-0.489994,-0.597853,0.634411) - New Polarization: (-0.500166,0.788868,0.357101) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.489994,-0.597853,0.634411) - Old Polarization: (-0.500166,0.788868,0.357101) - New Momentum Direction: (-0.489994,0.597853,0.634411) - New Polarization: (0.500166,0.788868,-0.357101) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.594832,0.803781,0.0105441) + Old Polarization: (-0.803643,0.594925,-0.0148937) + New Momentum Direction: (0.802038,0.597104,0.0142171) + New Polarization: (-0.596999,0.802164,-0.0112029) + *** FresnelRefraction *** Track (trackID 490, parentID 1) is processed with stopping code 2 -### pop requested out of 60 stacked tracks. +### pop requested out of 160 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.554271,0.821567,-0.13346) - Old Polarization: (-0.830306,0.534572,-0.157559) - New Momentum Direction: (0.749346,0.637122,-0.180431) - New Polarization: (0.539153,-0.745233,-0.392354) + Old Momentum Direction: (0.84724,-0.435053,-0.304818) + Old Polarization: (-0.525384,-0.771023,-0.359856) + New Momentum Direction: (0.692891,-0.590521,-0.413747) + New Polarization: (0.713592,0.479327,0.510913) *** FresnelRefraction *** Track (trackID 489, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - -** Photon absorbed! ** -Track (trackID 488, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. +### pop requested out of 159 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.798169,-0.15333,0.582594) - Old Polarization: (-0.561802,-0.538587,0.627935) - New Momentum Direction: (0.576283,-0.208004,0.790337) - New Polarization: (-0.788644,-0.395161,0.471049) + Old Momentum Direction: (0.734565,0.153445,-0.660961) + Old Polarization: (-0.648634,-0.1272,-0.750396) + New Momentum Direction: (0.390754,0.208162,-0.896649) + New Polarization: (0.886405,-0.347732,0.305562) + *** FresnelRefraction *** +Track (trackID 488, parentID 1) is processed with stopping code 2 +### pop requested out of 158 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.845125,-0.39979,-0.354869) + Old Polarization: (-0.526098,-0.739745,-0.419521) + New Momentum Direction: (0.692274,-0.539691,-0.479051) + New Polarization: (0.710841,0.395605,0.581551) *** FresnelRefraction *** Track (trackID 487, parentID 1) is processed with stopping code 2 -### pop requested out of 57 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.882497,-0.469698,-0.0241455) - Old Polarization: (-0.4703,-0.881751,-0.0365174) - New Momentum Direction: (0.768874,-0.638557,-0.0328259) - New Polarization: (-0.639387,-0.76817,-0.0331427) - *** FresnelRefraction *** +### pop requested out of 157 stacked tracks. + +** Photon absorbed! ** Track (trackID 486, parentID 1) is processed with stopping code 2 -### pop requested out of 56 stacked tracks. +### pop requested out of 156 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.862854,-0.369717,-0.344663) - Old Polarization: (-0.489905,-0.779555,-0.39024) - New Momentum Direction: (0.72978,-0.500083,-0.466195) - New Polarization: (-0.672502,-0.647882,-0.357756) + Old Momentum Direction: (0.80151,-0.187241,-0.567911) + Old Polarization: (-0.575451,-0.49975,-0.647384) + New Momentum Direction: (0.583874,-0.254206,-0.771019) + New Polarization: (0.783896,-0.0705156,0.616875) *** FresnelRefraction *** Track (trackID 485, parentID 1) is processed with stopping code 2 -### pop requested out of 55 stacked tracks. +### pop requested out of 155 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.836232,-0.302453,0.457427) - Old Polarization: (-0.520614,-0.699916,0.488957) - New Momentum Direction: (0.666839,-0.41101,0.621608) - New Polarization: (-0.725392,-0.549066,0.41513) + Old Momentum Direction: (0.604101,0.7534,-0.259713) + Old Polarization: (-0.791057,0.527509,-0.309778) + New Momentum Direction: (0.820899,0.44897,-0.352918) + New Polarization: (-0.563742,0.735799,-0.375225) *** FresnelRefraction *** Track (trackID 484, parentID 1) is processed with stopping code 2 -### pop requested out of 54 stacked tracks. +### pop requested out of 154 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.878761,-0.429749,-0.207595) - Old Polarization: (-0.471652,-0.848475,-0.240072) - New Momentum Direction: (0.764705,-0.580229,-0.280286) - New Polarization: (-0.640359,-0.732795,-0.230113) + Old Momentum Direction: (0.784477,-0.20513,0.58525) + Old Polarization: (-0.594021,-0.51963,0.614104) + New Momentum Direction: (0.540048,-0.278388,0.79426) + New Polarization: (0.809707,-0.0856082,-0.580557) *** FresnelRefraction *** Track (trackID 483, parentID 1) is processed with stopping code 2 -### pop requested out of 53 stacked tracks. - -** Photon absorbed! ** -Track (trackID 482, parentID 1) is processed with stopping code 2 -### pop requested out of 52 stacked tracks. +### pop requested out of 153 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.725182,0.127513,0.676648) - Old Polarization: (-0.641745,-0.230991,0.731305) - New Momentum Direction: (0.357576,0.172944,0.917731) - New Polarization: (-0.904117,-0.182023,0.386574) + Old Momentum Direction: (0.774613,-0.128111,0.619324) + Old Polarization: (-0.603816,-0.441065,0.663979) + New Momentum Direction: (0.525064,-0.172397,0.833419) + New Polarization: (0.816424,-0.174505,-0.550455) + *** FresnelRefraction *** +Track (trackID 482, parentID 1) is processed with stopping code 2 +### pop requested out of 152 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.773123,-0.0307854,-0.633508) + Old Polarization: (-0.606145,-0.329928,-0.723696) + New Momentum Direction: (0.512694,-0.0416732,-0.857559) + New Polarization: (0.824626,-0.254179,0.505357) *** FresnelRefraction *** Track (trackID 481, parentID 1) is processed with stopping code 2 -### pop requested out of 51 stacked tracks. - -** Photon absorbed! ** -Track (trackID 480, parentID 1) is processed with stopping code 2 -### pop requested out of 50 stacked tracks. +### pop requested out of 151 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.694391,0.269274,0.667317) - Old Polarization: (-0.67592,-0.0740938,0.733241) - New Momentum Direction: (0.248202,0.362492,0.898329) - New Polarization: (-0.942829,-0.122524,0.309938) + Old Momentum Direction: (0.716047,0.128996,0.68603) + Old Polarization: (-0.668944,-0.154038,0.727177) + New Momentum Direction: (0.324961,0.174765,0.929439) + New Polarization: (0.91389,-0.310883,-0.261068) + *** FresnelRefraction *** +Track (trackID 480, parentID 1) is processed with stopping code 2 +### pop requested out of 150 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.840295,-0.366786,-0.399214) + Old Polarization: (-0.531052,-0.704997,-0.470067) + New Momentum Direction: (0.682584,-0.494439,-0.538153) + New Polarization: (0.716739,0.309129,0.62508) *** FresnelRefraction *** Track (trackID 479, parentID 1) is processed with stopping code 2 -### pop requested out of 49 stacked tracks. +### pop requested out of 149 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.659412,0.396493,0.638724) - Old Polarization: (-0.714439,0.0660598,0.696572) - New Momentum Direction: (-0.659412,0.396493,0.638724) - New Polarization: (-0.714439,-0.0660598,-0.696572) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659412,0.396493,0.638724) - Old Polarization: (-0.714439,-0.0660598,-0.696572) - New Momentum Direction: (-0.659412,0.396493,-0.638724) - New Polarization: (0.714439,0.0660598,-0.696572) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.659412,0.396493,-0.638724) - Old Polarization: (0.714439,0.0660598,-0.696572) - New Momentum Direction: (-0.659412,-0.396493,-0.638724) - New Polarization: (-0.714439,0.0660598,0.696572) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.593169,0.80178,-0.0728012) + Old Polarization: (-0.803943,0.585105,-0.106429) + New Momentum Direction: (0.803594,0.58695,-0.0986272) + New Polarization: (-0.595147,0.794136,-0.123075) + *** FresnelRefraction *** Track (trackID 478, parentID 1) is processed with stopping code 2 -### pop requested out of 48 stacked tracks. +### pop requested out of 148 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.879524,-0.428342,-0.20727) - Old Polarization: (-0.470223,-0.849151,-0.240485) - New Momentum Direction: (0.767094,-0.57748,-0.279436) - New Polarization: (-0.63749,-0.734986,-0.231091) + Old Momentum Direction: (0.799929,-0.283457,0.528929) + Old Polarization: (-0.577476,-0.603316,0.550028) + New Momentum Direction: (0.57803,-0.385448,0.719244) + New Polarization: (0.78799,0.0346437,-0.614712) *** FresnelRefraction *** Track (trackID 477, parentID 1) is processed with stopping code 2 -### pop requested out of 47 stacked tracks. +### pop requested out of 147 stacked tracks. ** Photon absorbed! ** Track (trackID 476, parentID 1) is processed with stopping code 2 -### pop requested out of 46 stacked tracks. +### pop requested out of 146 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.753528,0.0137561,0.657272) - Old Polarization: (-0.610822,-0.355035,0.707705) - New Momentum Direction: (0.450067,0.0186854,0.892799) - New Polarization: (-0.861826,-0.252747,0.439744) + Old Momentum Direction: (0.859429,-0.50778,-0.0595129) + Old Polarization: (-0.511239,-0.854508,-0.0919279) + New Momentum Direction: (0.721668,-0.687533,-0.0805803) + New Polarization: (0.692217,0.715813,0.0919044) *** FresnelRefraction *** Track (trackID 475, parentID 1) is processed with stopping code 2 -### pop requested out of 45 stacked tracks. +### pop requested out of 145 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.784143,-0.09571,0.613155) - Old Polarization: (-0.576934,-0.476416,0.663457) - New Momentum Direction: (0.541509,-0.129658,0.830636) - New Polarization: (-0.810226,-0.344078,0.474494) + Old Momentum Direction: (0.701324,0.192678,0.686309) + Old Polarization: (-0.68499,-0.0843422,0.723654) + New Momentum Direction: (0.250765,0.261658,0.932015) + New Polarization: (0.939268,-0.29878,-0.168835) *** FresnelRefraction *** Track (trackID 474, parentID 1) is processed with stopping code 2 -### pop requested out of 44 stacked tracks. +### pop requested out of 144 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.553968,0.810966,-0.18829) - Old Polarization: (-0.828878,0.51606,-0.21597) - New Momentum Direction: (0.752307,0.607165,-0.255705) - New Polarization: (0.424559,-0.743592,-0.516547) + Old Momentum Direction: (0.611372,0.736039,-0.29064) + Old Polarization: (-0.784269,0.514562,-0.346624) + New Momentum Direction: (0.827281,0.401167,-0.393282) + New Polarization: (-0.549919,0.72141,-0.420899) *** FresnelRefraction *** Track (trackID 473, parentID 1) is processed with stopping code 2 -### pop requested out of 43 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.773312,-0.0498333,0.632065) - Old Polarization: (-0.588629,-0.426864,0.686515) - New Momentum Direction: (0.514272,-0.067408,0.854974) - New Polarization: (-0.826171,-0.306457,0.472785) - *** FresnelRefraction *** +### pop requested out of 143 stacked tracks. + +** Photon absorbed! ** Track (trackID 472, parentID 1) is processed with stopping code 2 -### pop requested out of 42 stacked tracks. +### pop requested out of 142 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.825428,-0.259694,0.501226) - Old Polarization: (-0.532213,-0.654015,0.5376) - New Momentum Direction: (0.642155,-0.352653,0.680642) - New Polarization: (-0.743562,-0.502471,0.441178) - *** FresnelRefraction *** + Old Momentum Direction: (0.615307,0.67016,0.41507) + Old Polarization: (-0.78116,0.447727,0.43512) + New Momentum Direction: (0.615307,-0.67016,0.41507) + New Polarization: (-0.121628,0.439529,0.889956) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.615307,-0.67016,0.41507) + Old Polarization: (-0.121628,0.439529,0.889956) + New Momentum Direction: (-0.615307,-0.67016,0.41507) + New Polarization: (-0.121628,-0.439529,-0.889956) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.615307,-0.67016,0.41507) + Old Polarization: (-0.121628,-0.439529,-0.889956) + New Momentum Direction: (-0.615307,-0.67016,-0.41507) + New Polarization: (0.121628,0.439529,-0.889956) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.615307,-0.67016,-0.41507) + Old Polarization: (0.121628,0.439529,-0.889956) + New Momentum Direction: (-0.615307,0.67016,-0.41507) + New Polarization: (0.132255,-0.431319,-0.892453) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.615307,0.67016,-0.41507) + Old Polarization: (0.132255,-0.431319,-0.892453) + New Momentum Direction: (0.615307,0.67016,-0.41507) + New Polarization: (0.132255,0.431319,0.892453) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 471, parentID 1) is processed with stopping code 2 -### pop requested out of 41 stacked tracks. +### pop requested out of 141 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.578374,0.713674,0.395161) - Old Polarization: (-0.803712,0.415527,0.425892) - New Momentum Direction: (0.781913,0.321274,0.534224) - New Polarization: (-0.178909,-0.705267,0.685996) + Old Momentum Direction: (0.856057,-0.509877,0.0848082) + Old Polarization: (-0.515445,-0.854335,0.0665524) + New Momentum Direction: (0.713212,-0.691449,0.115009) + New Polarization: (0.699103,0.689797,-0.188244) *** FresnelRefraction *** Track (trackID 470, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.558386,0.795118,0.236626) - Old Polarization: (-0.825725,0.505231,0.250839) - New Momentum Direction: (0.754986,0.572394,0.319939) - New Polarization: (0.312096,-0.742759,0.592372) - *** FresnelRefraction *** +### pop requested out of 140 stacked tracks. + +** Photon absorbed! ** Track (trackID 469, parentID 1) is processed with stopping code 2 -### pop requested out of 39 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.734002,0.143412,-0.663833) - Old Polarization: (-0.631893,-0.214015,-0.744922) - New Momentum Direction: (0.398766,0.19365,-0.896374) - New Polarization: (-0.886001,-0.170848,-0.431061) - *** FresnelRefraction *** +### pop requested out of 139 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.835213,-0.376476,-0.400856) +Old Polarization: (-0.539211,-0.703833,-0.462461) +New Polarization: (0.727908,0.645723,0.230632) +Polarization Change: (0.727908,0.645723,0.230632) +New Momentum Direction: (-0.514842,0.292555,0.805822) +Momentum Change: (-0.514842,0.292555,0.805822) + +** Photon absorbed! ** Track (trackID 468, parentID 1) is processed with stopping code 2 -### pop requested out of 38 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.568126,0.758496,0.319243) - Old Polarization: (-0.815398,0.466431,0.342883) - New Momentum Direction: (0.767277,0.474759,0.43115) - New Polarization: (0.0691795,-0.729638,0.680326) - *** FresnelRefraction *** +### pop requested out of 138 stacked tracks. + +** Photon absorbed! ** Track (trackID 467, parentID 1) is processed with stopping code 2 -### pop requested out of 37 stacked tracks. +### pop requested out of 137 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.559672,0.783957,0.268662) - Old Polarization: (-0.823622,0.490306,0.285039) - New Momentum Direction: (0.758078,0.541195,0.363904) - New Polarization: (0.222438,-0.739101,0.635807) + Old Momentum Direction: (0.830521,-0.312834,-0.460836) + Old Polarization: (-0.541886,-0.645169,-0.538625) + New Momentum Direction: (0.660567,-0.421671,-0.621164) + New Polarization: (0.731692,0.176265,0.65845) *** FresnelRefraction *** Track (trackID 466, parentID 1) is processed with stopping code 2 -### pop requested out of 36 stacked tracks. +### pop requested out of 136 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.556054,0.785995,0.270214) - Old Polarization: (-0.826056,0.486702,0.28417) - New Momentum Direction: (0.756228,0.541362,0.367488) - New Polarization: (0.218644,-0.738437,0.637891) + Old Momentum Direction: (0.610477,0.754532,-0.240832) + Old Polarization: (-0.786688,0.542375,-0.294877) + New Momentum Direction: (0.821972,0.468202,-0.324267) + New Polarization: (-0.564428,0.745706,-0.354039) *** FresnelRefraction *** Track (trackID 465, parentID 1) is processed with stopping code 2 -### pop requested out of 35 stacked tracks. +### pop requested out of 135 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.634182,0.480412,0.605819) - Old Polarization: (-0.741361,0.155349,0.652878) - New Momentum Direction: (-0.634182,0.480412,0.605819) - New Polarization: (-0.741361,-0.155349,-0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,0.480412,0.605819) - Old Polarization: (-0.741361,-0.155349,-0.652878) - New Momentum Direction: (-0.634182,0.480412,-0.605819) - New Polarization: (0.741361,0.155349,-0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,0.480412,-0.605819) - Old Polarization: (0.741361,0.155349,-0.652878) - New Momentum Direction: (-0.634182,-0.480412,-0.605819) - New Polarization: (-0.741361,0.155349,0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,-0.480412,-0.605819) - Old Polarization: (-0.741361,0.155349,0.652878) - New Momentum Direction: (-0.634182,-0.480412,0.605819) - New Polarization: (0.741361,-0.155349,0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,-0.480412,0.605819) - Old Polarization: (0.741361,-0.155349,0.652878) - New Momentum Direction: (-0.634182,-0.480412,-0.605819) - New Polarization: (-0.741361,0.155349,0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,-0.480412,-0.605819) - Old Polarization: (-0.741361,0.155349,0.652878) - New Momentum Direction: (0.634182,-0.480412,-0.605819) - New Polarization: (-0.741361,-0.155349,-0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.634182,-0.480412,-0.605819) - Old Polarization: (-0.741361,-0.155349,-0.652878) - New Momentum Direction: (0.634182,0.480412,-0.605819) - New Polarization: (0.741361,-0.155349,0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.634182,0.480412,-0.605819) - Old Polarization: (0.741361,-0.155349,0.652878) - New Momentum Direction: (-0.634182,0.480412,-0.605819) - New Polarization: (0.741361,0.155349,-0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,0.480412,-0.605819) - Old Polarization: (0.741361,0.155349,-0.652878) - New Momentum Direction: (-0.634182,0.480412,0.605819) - New Polarization: (-0.741361,-0.155349,-0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,0.480412,0.605819) - Old Polarization: (-0.741361,-0.155349,-0.652878) - New Momentum Direction: (-0.634182,0.480412,-0.605819) - New Polarization: (0.741361,0.155349,-0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,0.480412,-0.605819) - Old Polarization: (0.741361,0.155349,-0.652878) - New Momentum Direction: (-0.634182,-0.480412,-0.605819) - New Polarization: (-0.741361,0.155349,0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,-0.480412,-0.605819) - Old Polarization: (-0.741361,0.155349,0.652878) - New Momentum Direction: (-0.634182,-0.480412,0.605819) - New Polarization: (0.741361,-0.155349,0.652878) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.634182,-0.480412,0.605819) - Old Polarization: (0.741361,-0.155349,0.652878) - New Momentum Direction: (0.634182,-0.480412,0.605819) - New Polarization: (0.741361,0.155349,-0.652878) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.731919,0.162625,-0.661701) + Old Polarization: (-0.651554,-0.117185,-0.749496) + New Momentum Direction: (0.379137,0.220847,-0.8986) + New Polarization: (0.891548,-0.347221,0.290826) + *** FresnelRefraction *** Track (trackID 464, parentID 1) is processed with stopping code 2 -### pop requested out of 34 stacked tracks. - -** Photon absorbed! ** -Track (trackID 463, parentID 1) is processed with stopping code 2 -### pop requested out of 33 stacked tracks. +### pop requested out of 134 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.676667,0.35638,-0.644295) - Old Polarization: (-0.695054,0.0204478,-0.718666) - New Momentum Direction: (0.0758836,0.482625,-0.872533) - New Polarization: (-0.977235,-0.137876,-0.161253) + Old Momentum Direction: (0.794949,-0.260817,0.547751) + Old Polarization: (-0.582912,-0.578598,0.570472) + New Momentum Direction: (0.565122,-0.354681,0.744875) + New Polarization: (0.79569,-0.00423495,-0.60569) + *** FresnelRefraction *** +Track (trackID 463, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.837539,-0.429345,0.337922) + Old Polarization: (-0.534858,-0.770593,0.346574) + New Momentum Direction: (0.674196,-0.580357,0.456778) + New Polarization: (0.723928,0.396825,-0.564321) *** FresnelRefraction *** Track (trackID 462, parentID 1) is processed with stopping code 2 -### pop requested out of 32 stacked tracks. +### pop requested out of 132 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.718598,0.188174,-0.669483) - Old Polarization: (-0.648965,-0.164518,-0.742817) - New Momentum Direction: (0.330441,0.255389,-0.908617) - New Polarization: (-0.914861,-0.149999,-0.374873) + Old Momentum Direction: (0.623406,0.699401,-0.349575) + Old Polarization: (-0.772201,0.480523,-0.415695) + New Momentum Direction: (0.839655,0.270725,-0.470837) + New Polarization: (-0.509655,0.692348,-0.510789) *** FresnelRefraction *** Track (trackID 461, parentID 1) is processed with stopping code 2 -### pop requested out of 31 stacked tracks. +### pop requested out of 131 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.87515,-0.435768,-0.210281) - Old Polarization: (-0.478266,-0.844927,-0.239501) - New Momentum Direction: (0.75326,-0.592361,-0.285846) - New Polarization: (-0.653764,-0.721931,-0.226733) + Old Momentum Direction: (0.672912,0.373731,0.638369) + Old Polarization: (-0.717343,0.119023,0.686478) + New Momentum Direction: (0.10343,0.502521,0.858356) + New Polarization: (0.974806,-0.222681,0.0129058) *** FresnelRefraction *** Track (trackID 460, parentID 1) is processed with stopping code 2 -### pop requested out of 30 stacked tracks. +### pop requested out of 130 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.587878,0.675533,0.445033) - Old Polarization: (-0.793229,0.373453,0.480958) - New Momentum Direction: (0.587878,-0.675533,0.445033) - New Polarization: (0.294865,-0.333346,-0.895508) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.587878,-0.675533,0.445033) - Old Polarization: (0.294865,-0.333346,-0.895508) - New Momentum Direction: (-0.587878,-0.675533,0.445033) - New Polarization: (0.294865,0.333346,0.895508) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.587878,-0.675533,0.445033) - Old Polarization: (0.294865,0.333346,0.895508) - New Momentum Direction: (-0.587878,-0.675533,-0.445033) - New Polarization: (-0.294865,-0.333346,0.895508) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.587878,-0.675533,-0.445033) - Old Polarization: (-0.294865,-0.333346,0.895508) - New Momentum Direction: (-0.587878,0.675533,-0.445033) - New Polarization: (0.768821,0.295448,-0.56712) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.587878,0.675533,-0.445033) - Old Polarization: (0.768821,0.295448,-0.56712) - New Momentum Direction: (0.587878,0.675533,-0.445033) - New Polarization: (0.768821,-0.295448,0.56712) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.609195,0.733769,-0.300773) + Old Polarization: (-0.785628,0.506756,-0.354946) + New Momentum Direction: (0.827426,0.385329,-0.408519) + New Polarization: (-0.547311,0.716241,-0.432955) + *** FresnelRefraction *** Track (trackID 459, parentID 1) is processed with stopping code 2 -### pop requested out of 29 stacked tracks. +### pop requested out of 129 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.668238,0.476494,-0.571325) + Old Polarization: (-0.721454,0.227647,-0.653973) + New Momentum Direction: (-0.668238,0.476494,-0.571325) + New Polarization: (-0.721454,-0.227647,0.653973) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668238,0.476494,-0.571325) + Old Polarization: (-0.721454,-0.227647,0.653973) + New Momentum Direction: (-0.668238,0.476494,0.571325) + New Polarization: (0.721454,0.227647,0.653973) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668238,0.476494,0.571325) + Old Polarization: (0.721454,0.227647,0.653973) + New Momentum Direction: (-0.668238,-0.476494,0.571325) + New Polarization: (-0.721454,0.227647,-0.653973) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668238,-0.476494,0.571325) + Old Polarization: (-0.721454,0.227647,-0.653973) + New Momentum Direction: (0.668238,-0.476494,0.571325) + New Polarization: (-0.721454,-0.227647,0.653973) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.668238,-0.476494,0.571325) + Old Polarization: (-0.721454,-0.227647,0.653973) + New Momentum Direction: (0.668238,-0.476494,-0.571325) + New Polarization: (0.721454,0.227647,0.653973) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.668238,-0.476494,-0.571325) + Old Polarization: (0.721454,0.227647,0.653973) + New Momentum Direction: (0.668238,0.476494,-0.571325) + New Polarization: (-0.721454,0.227647,-0.653973) + *** TotalInternalReflection *** ** Photon absorbed! ** Track (trackID 458, parentID 1) is processed with stopping code 2 -### pop requested out of 28 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.862314,-0.399905,0.310628) - Old Polarization: (-0.492204,-0.806051,0.328659) - New Momentum Direction: (0.725498,-0.543521,0.422182) - New Polarization: (-0.678128,-0.669244,0.303735) - *** FresnelRefraction *** +### pop requested out of 128 stacked tracks. + +** Photon absorbed! ** Track (trackID 457, parentID 1) is processed with stopping code 2 -### pop requested out of 27 stacked tracks. +### pop requested out of 127 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.82979,-0.277437,0.484228) - Old Polarization: (-0.527568,-0.672916,0.518513) - New Momentum Direction: (0.652049,-0.376914,0.657851) - New Polarization: (-0.736428,-0.521188,0.431319) - *** FresnelRefraction *** + Old Momentum Direction: (0.618457,0.642364,0.452636) + Old Polarization: (-0.777008,0.413874,0.474307) + New Momentum Direction: (0.618457,-0.642364,0.452636) + New Polarization: (0.777008,0.413874,-0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.618457,-0.642364,0.452636) + Old Polarization: (0.777008,0.413874,-0.474307) + New Momentum Direction: (-0.618457,-0.642364,0.452636) + New Polarization: (0.777008,-0.413874,0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.618457,-0.642364,0.452636) + Old Polarization: (0.777008,-0.413874,0.474307) + New Momentum Direction: (-0.618457,-0.642364,-0.452636) + New Polarization: (-0.777008,0.413874,0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.618457,-0.642364,-0.452636) + Old Polarization: (-0.777008,0.413874,0.474307) + New Momentum Direction: (-0.618457,0.642364,-0.452636) + New Polarization: (0.777008,0.413874,-0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.618457,0.642364,-0.452636) + Old Polarization: (0.777008,0.413874,-0.474307) + New Momentum Direction: (0.618457,0.642364,-0.452636) + New Polarization: (0.777008,-0.413874,0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.618457,0.642364,-0.452636) + Old Polarization: (0.777008,-0.413874,0.474307) + New Momentum Direction: (0.618457,0.642364,0.452636) + New Polarization: (-0.777008,0.413874,0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.618457,0.642364,0.452636) + Old Polarization: (-0.777008,0.413874,0.474307) + New Momentum Direction: (0.618457,-0.642364,0.452636) + New Polarization: (0.777008,0.413874,-0.474307) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.618457,-0.642364,0.452636) + Old Polarization: (0.777008,0.413874,-0.474307) + New Momentum Direction: (-0.618457,-0.642364,0.452636) + New Polarization: (0.777008,-0.413874,0.474307) + *** TotalInternalReflection *** + +** Photon absorbed! ** Track (trackID 456, parentID 1) is processed with stopping code 2 -### pop requested out of 26 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.675647,0.325288,0.66158) - Old Polarization: (-0.696208,-0.0136269,0.717711) - New Momentum Direction: (-0.675647,0.325288,0.66158) - New Polarization: (-0.686711,0.0487726,-0.725293) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.675647,0.325288,0.66158) - Old Polarization: (-0.686711,0.0487726,-0.725293) - New Momentum Direction: (-0.675647,0.325288,-0.66158) - New Polarization: (0.686711,-0.0487726,-0.725293) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.675647,0.325288,-0.66158) - Old Polarization: (0.686711,-0.0487726,-0.725293) - New Momentum Direction: (-0.675647,-0.325288,-0.66158) - New Polarization: (-0.686711,-0.0487726,0.725293) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.675647,-0.325288,-0.66158) -Old Polarization: (-0.686711,-0.0487726,0.725293) -New Polarization: (-0.861716,-0.0468503,0.505223) -Polarization Change: (-0.861716,-0.0468503,0.505223) -New Momentum Direction: (-0.50628,0.0135579,-0.862262) -Momentum Change: (-0.50628,0.0135579,-0.862262) - Photon at Boundary! - Old Momentum Direction: (-0.50628,0.0135579,-0.862262) - Old Polarization: (-0.861716,-0.0468503,0.505223) - New Momentum Direction: (-0.685404,0.0183547,-0.727932) - New Polarization: (-0.728095,-0.0309181,0.684779) - *** FresnelRefraction *** +### pop requested out of 126 stacked tracks. + +** Photon absorbed! ** Track (trackID 455, parentID 1) is processed with stopping code 2 -### pop requested out of 25 stacked tracks. +### pop requested out of 125 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.546151,0.835619,0.058828) - Old Polarization: (-0.837582,0.543623,0.0541314) - New Momentum Direction: (0.741396,0.6663,0.0798585) - New Polarization: (0.647967,-0.741742,0.173083) + Old Momentum Direction: (0.791444,-0.227405,0.567366) + Old Polarization: (-0.585941,-0.546551,0.598294) + New Momentum Direction: (0.561891,-0.307754,0.767832) + New Polarization: (0.796104,-0.0509732,-0.60301) *** FresnelRefraction *** Track (trackID 454, parentID 1) is processed with stopping code 2 -### pop requested out of 24 stacked tracks. +### pop requested out of 124 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.629054,0.51224,0.584724) - Old Polarization: (-0.747787,0.193239,0.635195) - New Momentum Direction: (-0.629054,0.51224,0.584724) - New Polarization: (-0.747787,-0.193239,-0.635195) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629054,0.51224,0.584724) - Old Polarization: (-0.747787,-0.193239,-0.635195) - New Momentum Direction: (-0.629054,0.51224,-0.584724) - New Polarization: (0.747787,0.193239,-0.635195) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629054,0.51224,-0.584724) - Old Polarization: (0.747787,0.193239,-0.635195) - New Momentum Direction: (-0.629054,-0.51224,-0.584724) - New Polarization: (-0.747787,0.193239,0.635195) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629054,-0.51224,-0.584724) - Old Polarization: (-0.747787,0.193239,0.635195) - New Momentum Direction: (0.629054,-0.51224,-0.584724) - New Polarization: (-0.747787,-0.193239,-0.635195) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.629054,-0.51224,-0.584724) - Old Polarization: (-0.747787,-0.193239,-0.635195) - New Momentum Direction: (0.629054,-0.51224,0.584724) - New Polarization: (0.747787,0.193239,-0.635195) - *** TotalInternalReflection *** - -** Photon absorbed! ** + Old Momentum Direction: (0.594762,0.747738,0.295206) + Old Polarization: (-0.801084,0.520553,0.295446) + New Momentum Direction: (0.808646,0.430113,0.401366) + New Polarization: (-0.573254,0.729388,0.373326) + *** FresnelRefraction *** Track (trackID 453, parentID 1) is processed with stopping code 2 -### pop requested out of 23 stacked tracks. +### pop requested out of 123 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.836234,-0.262769,-0.481317) - Old Polarization: (-0.51925,-0.661659,-0.540913) - New Momentum Direction: (0.670703,-0.355419,-0.651026) - New Polarization: (-0.720763,-0.519504,-0.45893) + Old Momentum Direction: (0.658625,0.50898,-0.554213) + Old Polarization: (-0.731456,0.26021,-0.630288) + New Momentum Direction: (-0.658625,0.50898,-0.554213) + New Polarization: (-0.731456,-0.26021,0.630288) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658625,0.50898,-0.554213) + Old Polarization: (-0.731456,-0.26021,0.630288) + New Momentum Direction: (-0.658625,0.50898,0.554213) + New Polarization: (0.731456,0.26021,0.630288) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (-0.658625,0.50898,0.554213) +Old Polarization: (0.731456,0.26021,0.630288) +New Polarization: (0.0942283,-0.289573,0.952507) +Polarization Change: (0.0942283,-0.289573,0.952507) +New Momentum Direction: (0.839622,0.53721,0.0802568) +Momentum Change: (0.839622,0.53721,0.0802568) + Photon at Boundary! + Old Momentum Direction: (0.839622,0.53721,0.0802568) + Old Polarization: (0.0942283,-0.289573,0.952507) + New Momentum Direction: (0.839622,-0.53721,0.0802568) + New Polarization: (-0.0942283,-0.289573,-0.952507) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.839622,-0.53721,0.0802568) + Old Polarization: (-0.0942283,-0.289573,-0.952507) + New Momentum Direction: (0.674162,-0.730477,0.10913) + New Polarization: (0.132333,-0.0258998,-0.990867) *** FresnelRefraction *** Track (trackID 452, parentID 1) is processed with stopping code 2 -### pop requested out of 22 stacked tracks. +### pop requested out of 122 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.866568,-0.391384,-0.309643) - Old Polarization: (-0.486588,-0.800457,-0.350001) - New Momentum Direction: (0.736468,-0.530519,-0.419719) - New Polarization: (-0.667552,-0.670384,-0.323976) + Old Momentum Direction: (0.856409,-0.499857,0.129254) + Old Polarization: (-0.513708,-0.850023,0.11647) + New Momentum Direction: (0.716876,-0.674999,0.174542) + New Polarization: (0.693882,0.666347,-0.272964) *** FresnelRefraction *** Track (trackID 451, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. +### pop requested out of 121 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.555437,0.831163,-0.0256426) - Old Polarization: (-0.831359,0.554365,-0.0390021) - New Momentum Direction: (0.746621,0.664356,-0.0344689) - New Polarization: (0.660048,-0.746254,-0.0862652) + Old Momentum Direction: (0.612036,0.732188,-0.298852) + Old Polarization: (-0.78344,0.509816,-0.3554) + New Momentum Direction: (0.828473,0.387275,-0.404537) + New Polarization: (-0.546413,0.717296,-0.432341) *** FresnelRefraction *** Track (trackID 450, parentID 1) is processed with stopping code 2 -### pop requested out of 20 stacked tracks. - -** Photon absorbed! ** -Track (trackID 449, parentID 1) is processed with stopping code 2 -### pop requested out of 19 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.886766,-0.461932,-0.0163078) - Old Polarization: (-0.462218,-0.886312,-0.0284038) - New Momentum Direction: (0.782057,-0.622819,-0.0219877) - New Polarization: (-0.623206,-0.781642,-0.0254936) - *** FresnelRefraction *** -Track (trackID 448, parentID 1) is processed with stopping code 2 -### pop requested out of 18 stacked tracks. - -** Photon absorbed! ** -Track (trackID 447, parentID 1) is processed with stopping code 2 -### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.554707,0.814066,-0.172038) - Old Polarization: (-0.828909,0.522738,-0.199135) - New Momentum Direction: (0.751679,0.616953,-0.233126) - New Polarization: (0.461398,-0.744491,-0.48254) - *** FresnelRefraction *** -Track (trackID 446, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. - -** Photon absorbed! ** -Track (trackID 445, parentID 1) is processed with stopping code 2 -### pop requested out of 15 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.724298,0.176279,-0.666572) - Old Polarization: (-0.642658,-0.177607,-0.745283) - New Momentum Direction: (0.361106,0.238416,-0.901532) - New Polarization: (-0.902537,-0.153843,-0.402193) - *** FresnelRefraction *** -Track (trackID 444, parentID 1) is processed with stopping code 2 -### pop requested out of 14 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.841874,-0.307254,0.44367) - Old Polarization: (-0.512736,-0.711874,0.479935) - New Momentum Direction: (0.684245,-0.415188,0.599523) - New Polarization: (-0.709813,-0.56773,0.416951) - *** FresnelRefraction *** -Track (trackID 443, parentID 1) is processed with stopping code 2 -### pop requested out of 13 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.746269,0.107752,-0.656865) - Old Polarization: (-0.618051,-0.254265,-0.743883) - New Momentum Direction: (0.445701,0.144909,-0.883375) - New Polarization: (-0.862894,-0.193095,-0.467043) - *** FresnelRefraction *** -Track (trackID 442, parentID 1) is processed with stopping code 2 -### pop requested out of 12 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.790422,-0.124587,0.599759) - Old Polarization: (-0.570337,-0.506901,0.646349) - New Momentum Direction: (0.555951,-0.169058,0.813841) - New Polarization: (-0.801679,-0.367738,0.471253) - *** FresnelRefraction *** -Track (trackID 441, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.620514,0.539599,0.569031) - Old Polarization: (-0.756726,0.221642,0.615012) - New Momentum Direction: (-0.620514,0.539599,0.569031) - New Polarization: (-0.756726,-0.221642,-0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.620514,0.539599,0.569031) - Old Polarization: (-0.756726,-0.221642,-0.615012) - New Momentum Direction: (-0.620514,0.539599,-0.569031) - New Polarization: (0.756726,0.221642,-0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.620514,0.539599,-0.569031) - Old Polarization: (0.756726,0.221642,-0.615012) - New Momentum Direction: (-0.620514,-0.539599,-0.569031) - New Polarization: (-0.756726,0.221642,0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.620514,-0.539599,-0.569031) - Old Polarization: (-0.756726,0.221642,0.615012) - New Momentum Direction: (0.620514,-0.539599,-0.569031) - New Polarization: (-0.756726,-0.221642,-0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.620514,-0.539599,-0.569031) - Old Polarization: (-0.756726,-0.221642,-0.615012) - New Momentum Direction: (0.620514,-0.539599,0.569031) - New Polarization: (0.756726,0.221642,-0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.620514,-0.539599,0.569031) - Old Polarization: (0.756726,0.221642,-0.615012) - New Momentum Direction: (0.620514,0.539599,0.569031) - New Polarization: (-0.756726,0.221642,0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.620514,0.539599,0.569031) - Old Polarization: (-0.756726,0.221642,0.615012) - New Momentum Direction: (-0.620514,0.539599,0.569031) - New Polarization: (-0.756726,-0.221642,-0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.620514,0.539599,0.569031) - Old Polarization: (-0.756726,-0.221642,-0.615012) - New Momentum Direction: (-0.620514,0.539599,-0.569031) - New Polarization: (0.756726,0.221642,-0.615012) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.620514,0.539599,-0.569031) - Old Polarization: (0.756726,0.221642,-0.615012) - New Momentum Direction: (-0.620514,-0.539599,-0.569031) - New Polarization: (-0.756726,0.221642,0.615012) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (-0.620514,-0.539599,-0.569031) -Old Polarization: (-0.756726,0.221642,0.615012) -New Polarization: (0.495611,0.551274,-0.671168) -Polarization Change: (0.495611,0.551274,-0.671168) -New Momentum Direction: (0.571945,-0.788697,-0.225467) -Momentum Change: (0.571945,-0.788697,-0.225467) - Photon at Boundary! - Old Momentum Direction: (0.571945,-0.788697,-0.225467) - Old Polarization: (0.495611,0.551274,-0.671168) - New Momentum Direction: (0.77479,-0.553546,-0.30543) - New Polarization: (0.366907,0.787122,-0.495801) - *** FresnelRefraction *** -Track (trackID 440, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.882405,-0.468162,-0.0467499) - Old Polarization: (-0.470324,-0.88037,-0.0611842) - New Momentum Direction: (0.768781,-0.636348,-0.0635447) - New Polarization: (-0.639395,-0.76674,-0.057306) - *** FresnelRefraction *** -Track (trackID 439, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.862069,-0.379706,-0.335649) - Old Polarization: (-0.4923,-0.784669,-0.376742) - New Momentum Direction: (0.725275,-0.515818,-0.455969) - New Polarization: (-0.678123,-0.649578,-0.343799) - *** FresnelRefraction *** -Track (trackID 438, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - -** Photon absorbed! ** -Track (trackID 437, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.869465,-0.408326,-0.278031) -Old Polarization: (-0.484019,-0.816705,-0.314195) -New Polarization: (-0.170758,-0.627273,-0.759849) -Polarization Change: (-0.170758,-0.627273,-0.759849) -New Momentum Direction: (-0.618686,-0.531937,0.578162) -Momentum Change: (-0.618686,-0.531937,0.578162) - Photon at Boundary! - Old Momentum Direction: (-0.618686,-0.531937,0.578162) - Old Polarization: (-0.170758,-0.627273,-0.759849) - New Momentum Direction: (-0.618686,0.531937,0.578162) - New Polarization: (0.170758,-0.627273,0.759849) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618686,0.531937,0.578162) - Old Polarization: (0.170758,-0.627273,0.759849) - New Momentum Direction: (-0.618686,0.531937,-0.578162) - New Polarization: (-0.170758,0.627273,0.759849) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.618686,0.531937,-0.578162) - Old Polarization: (-0.170758,0.627273,0.759849) - New Momentum Direction: (0.618686,0.531937,-0.578162) - New Polarization: (-0.170758,-0.627273,-0.759849) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 436, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. - -** Photon absorbed! ** -Track (trackID 435, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - -** Photon absorbed! ** -Track (trackID 434, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859491,-0.379068,0.342904) - Old Polarization: (-0.494014,-0.788277,0.366838) - New Momentum Direction: (0.721719,-0.513323,0.464351) - New Polarization: (-0.679882,-0.651637,0.336347) - *** FresnelRefraction *** -Track (trackID 433, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.867077,-0.396879,0.301105) - Old Polarization: (-0.484384,-0.812878,0.323423) - New Momentum Direction: (0.74033,-0.535555,0.406316) - New Polarization: (-0.662298,-0.684656,0.304314) - *** FresnelRefraction *** -Track (trackID 432, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.884047,-0.467042,0.018228) - Old Polarization: (-0.467255,-0.884068,0.00978363) - New Momentum Direction: (0.773891,-0.632836,0.0246987) - New Polarization: (-0.633217,-0.773876,0.0123186) - *** FresnelRefraction *** -Track (trackID 431, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 8 - - Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 2 -Track (trackID 1, parentID 0) is processed with stopping code 4 -### pop requested out of 12 stacked tracks. - -** Photon absorbed! ** -Track (trackID 888, parentID 1) is processed with stopping code 2 -### pop requested out of 11 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (-0.698255,-0.351488,-0.623616) - Old Polarization: (0.564477,-0.806094,-0.177701) - New Momentum Direction: (-0.234848,-0.477275,-0.846791) - New Polarization: (0.871551,-0.489127,0.0339706) - *** FresnelRefraction *** -Track (trackID 887, parentID 1) is processed with stopping code 2 -### pop requested out of 10 stacked tracks. -Track (trackID 886, parentID 1) is processed with stopping code 2 -### pop requested out of 9 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.742468,-0.110926,-0.660634) - Old Polarization: (-0.627,-0.462251,-0.627052) - New Momentum Direction: (0.416803,-0.150521,-0.896448) - New Polarization: (-0.880905,-0.310165,-0.357496) - *** FresnelRefraction *** -Track (trackID 885, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.87985,-0.429687,0.20306) - Old Polarization: (-0.474461,-0.81881,0.323167) - New Momentum Direction: (0.766834,-0.580309,0.27424) - New Polarization: (-0.641283,-0.710594,0.289502) - *** FresnelRefraction *** -Track (trackID 884, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.564908,0.825029,-0.0143686) - Old Polarization: (-0.821687,0.564044,0.0817623) - New Momentum Direction: (0.766683,0.64173,-0.0195008) - New Polarization: (0.642022,-0.766215,0.0268876) - *** FresnelRefraction *** -Track (trackID 883, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.863591,-0.334543,0.377215) -Old Polarization: (-0.495056,-0.704413,0.508647) -New Polarization: (0.195563,0.874672,-0.443513) -Polarization Change: (0.195563,0.874672,-0.443513) -New Momentum Direction: (0.902467,-0.337501,-0.267668) -Momentum Change: (0.902467,-0.337501,-0.267668) - Photon at Boundary! - Old Momentum Direction: (0.902467,-0.337501,-0.267668) - Old Polarization: (0.195563,0.874672,-0.443513) - New Momentum Direction: (0.810297,-0.459148,-0.364144) - New Polarization: (-0.337561,0.142241,-0.930495) - *** FresnelRefraction *** -Track (trackID 882, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.737405,-0.0947831,-0.668768) - Old Polarization: (-0.632598,-0.443961,-0.634601) - New Momentum Direction: (0.397975,-0.128734,-0.908319) - New Polarization: (-0.889665,-0.295756,-0.347885) - *** FresnelRefraction *** -Track (trackID 881, parentID 1) is processed with stopping code 2 -### pop requested out of 4 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.878914,-0.404377,0.252962) - Old Polarization: (-0.474648,-0.793867,0.38011) - New Momentum Direction: (0.766052,-0.544938,0.340892) - New Polarization: (-0.641111,-0.685938,0.344188) - *** FresnelRefraction *** -Track (trackID 880, parentID 1) is processed with stopping code 2 -### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.8403,-0.181994,0.510661) - Old Polarization: (-0.519007,-0.542193,0.660802) - New Momentum Direction: (0.679237,-0.246381,0.691327) - New Polarization: (-0.717388,-0.421686,0.554559) - *** FresnelRefraction *** -Track (trackID 879, parentID 1) is processed with stopping code 2 -### pop requested out of 2 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.738299,-0.101341,-0.666817) - Old Polarization: (-0.631673,-0.450465,-0.630928) - New Momentum Direction: (0.398845,-0.137783,-0.906608) - New Polarization: (-0.889356,-0.299116,-0.345797) - *** FresnelRefraction *** -Track (trackID 878, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. - - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 120 -Track (trackID 1, parentID 0) is processed with stopping code 2 -### pop requested out of 122 stacked tracks. -Track (trackID 1010, parentID 1) is processed with stopping code 2 -### pop requested out of 121 stacked tracks. -Track (trackID 1009, parentID 1) is processed with stopping code 2 ### pop requested out of 120 stacked tracks. ** Photon absorbed! ** -Track (trackID 1008, parentID 1) is processed with stopping code 2 +Track (trackID 449, parentID 1) is processed with stopping code 2 ### pop requested out of 119 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.661516,0.505224,-0.554207) +Old Polarization: (-0.728722,0.258545,-0.634128) +New Polarization: (0.793625,0.546192,0.268018) +Polarization Change: (0.793625,0.546192,0.268018) +New Momentum Direction: (0.310746,-0.742626,0.593248) +Momentum Change: (0.310746,-0.742626,0.593248) Photon at Boundary! - Old Momentum Direction: (0.869621,-0.437493,0.228822) - Old Polarization: (-0.489623,-0.823774,0.285773) - New Momentum Direction: (0.741543,-0.5945,0.310941) - New Polarization: (-0.668015,-0.697234,0.260039) + Old Momentum Direction: (0.310746,-0.742626,0.593248) + Old Polarization: (0.793625,0.546192,0.268018) + New Momentum Direction: (0.421348,-0.418818,0.804399) + New Polarization: (0.321118,-0.760614,-0.564225) *** FresnelRefraction *** -Track (trackID 1007, parentID 1) is processed with stopping code 2 +Track (trackID 448, parentID 1) is processed with stopping code 2 ### pop requested out of 118 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.844048,-0.307316,0.439477) - Old Polarization: (-0.517412,-0.682091,0.516756) - New Momentum Direction: (0.685254,-0.417365,0.596853) - New Polarization: (-0.714925,-0.54184,0.441919) + Old Momentum Direction: (0.826547,-0.398563,0.397452) + Old Polarization: (-0.548193,-0.7302,0.407789) + New Momentum Direction: (0.644577,-0.541365,0.539856) + New Polarization: (0.745998,0.290784,-0.599109) *** FresnelRefraction *** -Track (trackID 1006, parentID 1) is processed with stopping code 2 +Track (trackID 447, parentID 1) is processed with stopping code 2 ### pop requested out of 117 stacked tracks. - -** Photon absorbed! ** -Track (trackID 1005, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.668168,0.46487,-0.580902) + Old Polarization: (-0.721073,0.212236,-0.659553) + New Momentum Direction: (-0.668168,0.46487,-0.580902) + New Polarization: (-0.721073,-0.212236,0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668168,0.46487,-0.580902) + Old Polarization: (-0.721073,-0.212236,0.659553) + New Momentum Direction: (-0.668168,0.46487,0.580902) + New Polarization: (0.721073,0.212236,0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668168,0.46487,0.580902) + Old Polarization: (0.721073,0.212236,0.659553) + New Momentum Direction: (-0.668168,-0.46487,0.580902) + New Polarization: (-0.721073,0.212236,-0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668168,-0.46487,0.580902) + Old Polarization: (-0.721073,0.212236,-0.659553) + New Momentum Direction: (0.668168,-0.46487,0.580902) + New Polarization: (-0.721073,-0.212236,0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.668168,-0.46487,0.580902) + Old Polarization: (-0.721073,-0.212236,0.659553) + New Momentum Direction: (0.668168,-0.46487,-0.580902) + New Polarization: (0.721073,0.212236,0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.668168,-0.46487,-0.580902) + Old Polarization: (0.721073,0.212236,0.659553) + New Momentum Direction: (0.668168,0.46487,-0.580902) + New Polarization: (-0.721073,0.212236,-0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.668168,0.46487,-0.580902) + Old Polarization: (-0.721073,0.212236,-0.659553) + New Momentum Direction: (-0.668168,0.46487,-0.580902) + New Polarization: (-0.721073,-0.212236,0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668168,0.46487,-0.580902) + Old Polarization: (-0.721073,-0.212236,0.659553) + New Momentum Direction: (-0.668168,0.46487,0.580902) + New Polarization: (0.721073,0.212236,0.659553) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668168,0.46487,0.580902) + Old Polarization: (0.721073,0.212236,0.659553) + New Momentum Direction: (0.668168,0.46487,0.580902) + New Polarization: (0.721073,-0.212236,-0.659553) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.668168,0.46487,0.580902) +Old Polarization: (0.721073,-0.212236,-0.659553) +New Polarization: (-0.812124,0.569882,0.125259) +Polarization Change: (-0.812124,0.569882,0.125259) +New Momentum Direction: (0.130537,0.386685,-0.912927) +Momentum Change: (0.130537,0.386685,-0.912927) + Photon at Boundary! + Old Momentum Direction: (0.130537,0.386685,-0.912927) + Old Polarization: (-0.812124,0.569882,0.125259) + New Momentum Direction: (0.130537,-0.386685,-0.912927) + New Polarization: (0.812124,0.569882,-0.125259) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.130537,-0.386685,-0.912927) + Old Polarization: (0.812124,0.569882,-0.125259) + New Momentum Direction: (0.177477,-0.525732,-0.83193) + New Polarization: (0.817806,0.549034,-0.172494) + *** FresnelRefraction *** +Track (trackID 446, parentID 1) is processed with stopping code 2 ### pop requested out of 116 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.646572,0.530923,0.547782) - Old Polarization: (-0.73381,0.236614,0.636817) - New Momentum Direction: (-0.646572,0.530923,0.547782) - New Polarization: (-0.73381,-0.236614,-0.636817) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646572,0.530923,0.547782) - Old Polarization: (-0.73381,-0.236614,-0.636817) - New Momentum Direction: (-0.646572,0.530923,-0.547782) - New Polarization: (0.73381,0.236614,-0.636817) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646572,0.530923,-0.547782) - Old Polarization: (0.73381,0.236614,-0.636817) - New Momentum Direction: (-0.646572,-0.530923,-0.547782) - New Polarization: (-0.73381,0.236614,0.636817) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.646572,-0.530923,-0.547782) - Old Polarization: (-0.73381,0.236614,0.636817) - New Momentum Direction: (0.646572,-0.530923,-0.547782) - New Polarization: (-0.73381,-0.236614,-0.636817) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.646572,-0.530923,-0.547782) - Old Polarization: (-0.73381,-0.236614,-0.636817) - New Momentum Direction: (0.646572,-0.530923,0.547782) - New Polarization: (0.73381,0.236614,-0.636817) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.646572,-0.530923,0.547782) - Old Polarization: (0.73381,0.236614,-0.636817) - New Momentum Direction: (0.646572,0.530923,0.547782) - New Polarization: (-0.73381,0.236614,0.636817) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 1004, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.603826,0.771668,-0.199806) + Old Polarization: (-0.793113,0.556523,-0.247496) + New Momentum Direction: (0.81562,0.511785,-0.269888) + New Polarization: (-0.576046,0.761961,-0.295951) + *** FresnelRefraction *** +Track (trackID 445, parentID 1) is processed with stopping code 2 ### pop requested out of 115 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.666392,0.329043,-0.669068) - Old Polarization: (-0.712303,0.01578,-0.701694) - New Momentum Direction: (0.666392,0.329043,0.669068) - New Polarization: (0.712303,-0.01578,-0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.666392,0.329043,0.669068) - Old Polarization: (0.712303,-0.01578,-0.701694) - New Momentum Direction: (-0.666392,0.329043,0.669068) - New Polarization: (0.712303,0.01578,0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,0.329043,0.669068) - Old Polarization: (0.712303,0.01578,0.701694) - New Momentum Direction: (-0.666392,-0.329043,0.669068) - New Polarization: (-0.712303,0.01578,-0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,-0.329043,0.669068) - Old Polarization: (-0.712303,0.01578,-0.701694) - New Momentum Direction: (-0.666392,-0.329043,-0.669068) - New Polarization: (0.712303,-0.01578,-0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,-0.329043,-0.669068) - Old Polarization: (0.712303,-0.01578,-0.701694) - New Momentum Direction: (0.666392,-0.329043,-0.669068) - New Polarization: (0.712303,0.01578,0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.666392,-0.329043,-0.669068) - Old Polarization: (0.712303,0.01578,0.701694) - New Momentum Direction: (0.666392,-0.329043,0.669068) - New Polarization: (-0.712303,-0.01578,0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.666392,-0.329043,0.669068) - Old Polarization: (-0.712303,-0.01578,0.701694) - New Momentum Direction: (-0.666392,-0.329043,0.669068) - New Polarization: (-0.712303,0.01578,-0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,-0.329043,0.669068) - Old Polarization: (-0.712303,0.01578,-0.701694) - New Momentum Direction: (-0.666392,0.329043,0.669068) - New Polarization: (0.712303,0.01578,0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,0.329043,0.669068) - Old Polarization: (0.712303,0.01578,0.701694) - New Momentum Direction: (-0.666392,0.329043,-0.669068) - New Polarization: (-0.712303,-0.01578,0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,0.329043,-0.669068) - Old Polarization: (-0.712303,-0.01578,0.701694) - New Momentum Direction: (0.666392,0.329043,-0.669068) - New Polarization: (-0.712303,0.01578,-0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.666392,0.329043,-0.669068) - Old Polarization: (-0.712303,0.01578,-0.701694) - New Momentum Direction: (0.666392,0.329043,0.669068) - New Polarization: (0.712303,-0.01578,-0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.666392,0.329043,0.669068) - Old Polarization: (0.712303,-0.01578,-0.701694) - New Momentum Direction: (-0.666392,0.329043,0.669068) - New Polarization: (0.712303,0.01578,0.701694) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.666392,0.329043,0.669068) - Old Polarization: (0.712303,0.01578,0.701694) - New Momentum Direction: (-0.666392,-0.329043,0.669068) - New Polarization: (-0.712303,0.01578,-0.701694) - *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 1003, parentID 1) is processed with stopping code 2 +Track (trackID 444, parentID 1) is processed with stopping code 2 ### pop requested out of 114 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.584198,0.712453,-0.388745) - Old Polarization: (-0.804136,0.443246,-0.396103) - New Momentum Direction: (0.788113,0.322248,-0.524437) - New Polarization: (-0.141385,-0.734454,-0.663768) - *** FresnelRefraction *** -Track (trackID 1002, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.610424,0.660293,0.437489) + Old Polarization: (-0.784183,0.426018,0.451182) + New Momentum Direction: (0.610424,-0.660293,0.437489) + New Polarization: (0.784183,0.426018,-0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.610424,-0.660293,0.437489) + Old Polarization: (0.784183,0.426018,-0.451182) + New Momentum Direction: (-0.610424,-0.660293,0.437489) + New Polarization: (0.784183,-0.426018,0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.610424,-0.660293,0.437489) + Old Polarization: (0.784183,-0.426018,0.451182) + New Momentum Direction: (-0.610424,-0.660293,-0.437489) + New Polarization: (-0.784183,0.426018,0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.610424,-0.660293,-0.437489) + Old Polarization: (-0.784183,0.426018,0.451182) + New Momentum Direction: (-0.610424,0.660293,-0.437489) + New Polarization: (0.784183,0.426018,-0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.610424,0.660293,-0.437489) + Old Polarization: (0.784183,0.426018,-0.451182) + New Momentum Direction: (0.610424,0.660293,-0.437489) + New Polarization: (0.784183,-0.426018,0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.610424,0.660293,-0.437489) + Old Polarization: (0.784183,-0.426018,0.451182) + New Momentum Direction: (0.610424,0.660293,0.437489) + New Polarization: (-0.784183,0.426018,0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.610424,0.660293,0.437489) + Old Polarization: (-0.784183,0.426018,0.451182) + New Momentum Direction: (0.610424,-0.660293,0.437489) + New Polarization: (0.784183,0.426018,-0.451182) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.610424,-0.660293,0.437489) + Old Polarization: (0.784183,0.426018,-0.451182) + New Momentum Direction: (-0.610424,-0.660293,0.437489) + New Polarization: (0.784183,-0.426018,0.451182) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 443, parentID 1) is processed with stopping code 2 ### pop requested out of 113 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.577187,0.723766,-0.378177) - Old Polarization: (-0.809828,0.447746,-0.37908) - New Momentum Direction: (0.577187,-0.723766,-0.378177) - New Polarization: (0.302725,-0.240467,0.922244) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (0.577187,-0.723766,-0.378177) - Old Polarization: (0.302725,-0.240467,0.922244) - New Momentum Direction: (-0.577187,-0.723766,-0.378177) - New Polarization: (0.302725,0.240467,-0.922244) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.577187,-0.723766,-0.378177) - Old Polarization: (0.302725,0.240467,-0.922244) - New Momentum Direction: (-0.577187,-0.723766,0.378177) - New Polarization: (-0.302725,-0.240467,-0.922244) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.577187,-0.723766,0.378177) - Old Polarization: (-0.302725,-0.240467,-0.922244) - New Momentum Direction: (-0.783326,-0.350693,0.51324) - New Polarization: (-0.621493,0.457948,-0.635634) + Old Momentum Direction: (0.786326,-0.221209,0.576852) + Old Polarization: (-0.592316,-0.535388,0.602097) + New Momentum Direction: (0.542273,-0.300836,0.784498) + New Polarization: (0.809004,-0.0651213,-0.584185) *** FresnelRefraction *** -Track (trackID 1001, parentID 1) is processed with stopping code 2 +Track (trackID 442, parentID 1) is processed with stopping code 2 ### pop requested out of 112 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.859623,-0.363499,0.35905) - Old Polarization: (-0.498528,-0.750622,0.433632) - New Momentum Direction: (0.723643,-0.491023,0.485013) - New Polarization: (-0.681299,-0.620551,0.388262) - *** FresnelRefraction *** -Track (trackID 1000, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 441, parentID 1) is processed with stopping code 2 ### pop requested out of 111 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.626922,0.51078,-0.588279) - Old Polarization: (-0.756444,0.218375,-0.616527) - New Momentum Direction: (-0.626922,0.51078,-0.588279) - New Polarization: (-0.756444,-0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626922,0.51078,-0.588279) - Old Polarization: (-0.756444,-0.218375,0.616527) - New Momentum Direction: (-0.626922,0.51078,0.588279) - New Polarization: (0.756444,0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626922,0.51078,0.588279) - Old Polarization: (0.756444,0.218375,0.616527) - New Momentum Direction: (-0.626922,-0.51078,0.588279) - New Polarization: (-0.756444,0.218375,-0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626922,-0.51078,0.588279) - Old Polarization: (-0.756444,0.218375,-0.616527) - New Momentum Direction: (0.626922,-0.51078,0.588279) - New Polarization: (-0.756444,-0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626922,-0.51078,0.588279) - Old Polarization: (-0.756444,-0.218375,0.616527) - New Momentum Direction: (0.626922,-0.51078,-0.588279) - New Polarization: (0.756444,0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626922,-0.51078,-0.588279) - Old Polarization: (0.756444,0.218375,0.616527) - New Momentum Direction: (0.626922,0.51078,-0.588279) - New Polarization: (-0.756444,0.218375,-0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626922,0.51078,-0.588279) - Old Polarization: (-0.756444,0.218375,-0.616527) - New Momentum Direction: (-0.626922,0.51078,-0.588279) - New Polarization: (-0.756444,-0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626922,0.51078,-0.588279) - Old Polarization: (-0.756444,-0.218375,0.616527) - New Momentum Direction: (-0.626922,0.51078,0.588279) - New Polarization: (0.756444,0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626922,0.51078,0.588279) - Old Polarization: (0.756444,0.218375,0.616527) - New Momentum Direction: (-0.626922,-0.51078,0.588279) - New Polarization: (-0.756444,0.218375,-0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.626922,-0.51078,0.588279) - Old Polarization: (-0.756444,0.218375,-0.616527) - New Momentum Direction: (0.626922,-0.51078,0.588279) - New Polarization: (-0.756444,-0.218375,0.616527) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.626922,-0.51078,0.588279) - Old Polarization: (-0.756444,-0.218375,0.616527) - New Momentum Direction: (0.626922,-0.51078,-0.588279) - New Polarization: (0.756444,0.218375,0.616527) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.626922,-0.51078,-0.588279) -Old Polarization: (0.756444,0.218375,0.616527) -New Polarization: (-0.97072,0.234779,0.0508078) -Polarization Change: (-0.97072,0.234779,0.0508078) -New Momentum Direction: (-0.163254,-0.48964,-0.856505) -Momentum Change: (-0.163254,-0.48964,-0.856505) - Photon at Boundary! - Old Momentum Direction: (-0.163254,-0.48964,-0.856505) - Old Polarization: (-0.97072,0.234779,0.0508078) - New Momentum Direction: (-0.163254,0.48964,-0.856505) - New Polarization: (0.97072,0.234779,-0.0508078) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 999, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.590937,0.806559,0.0159867) + Old Polarization: (-0.806547,0.591104,-0.00888024) + New Momentum Direction: (0.800196,0.599347,0.0216478) + New Polarization: (-0.599417,0.800428,-0.00383794) + *** FresnelRefraction *** +Track (trackID 440, parentID 1) is processed with stopping code 2 ### pop requested out of 110 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.733163,0.0496561,-0.678238) - Old Polarization: (-0.638713,-0.292148,-0.711826) - New Momentum Direction: (0.390039,0.0672349,-0.91834) - New Polarization: (-0.894084,-0.210835,-0.395173) - *** FresnelRefraction *** -Track (trackID 998, parentID 1) is processed with stopping code 2 -### pop requested out of 109 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.806502,-0.241544,-0.53964) - Old Polarization: (-0.557852,-0.613236,-0.559234) - New Momentum Direction: (0.59943,-0.327009,-0.730581) - New Polarization: (-0.776877,-0.457463,-0.432654) - *** FresnelRefraction *** -Track (trackID 997, parentID 1) is processed with stopping code 2 -### pop requested out of 108 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.85506,-0.362872,0.370399) -Old Polarization: (-0.505616,-0.741898,0.440385) -New Polarization: (-0.430374,-0.828674,-0.357879) -Polarization Change: (-0.430374,-0.828674,-0.357879) -New Momentum Direction: (0.2916,0.24758,-0.923945) -Momentum Change: (0.2916,0.24758,-0.923945) - Photon at Boundary! - Old Momentum Direction: (0.2916,0.24758,-0.923945) - Old Polarization: (-0.430374,-0.828674,-0.357879) - New Momentum Direction: (-0.2916,0.24758,-0.923945) - New Polarization: (-0.430374,0.828674,0.357879) - *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 996, parentID 1) is processed with stopping code 2 +Track (trackID 439, parentID 1) is processed with stopping code 2 +### pop requested out of 109 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.789783,-0.129171,-0.599632) +Old Polarization: (-0.588383,-0.435807,-0.681086) +New Polarization: (-0.773585,0.0811396,-0.628477) +Polarization Change: (-0.773585,0.0811396,-0.628477) +New Momentum Direction: (-0.127303,0.951652,0.279559) +Momentum Change: (-0.127303,0.951652,0.279559) + Photon at Boundary! + Old Momentum Direction: (-0.127303,0.951652,0.279559) + Old Polarization: (-0.773585,0.0811396,-0.628477) + New Momentum Direction: (-0.172948,0.90876,0.379795) + New Polarization: (-0.777198,0.110953,-0.619398) + *** FresnelRefraction *** +Track (trackID 438, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.603987,0.727735,0.324963) + Old Polarization: (-0.793243,0.509391,0.333597) + New Momentum Direction: (0.81501,0.378784,0.4385) + New Polarization: (-0.558443,0.715362,0.419998) + *** FresnelRefraction *** +Track (trackID 437, parentID 1) is processed with stopping code 2 ### pop requested out of 107 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.636609,0.573164,0.515957) - Old Polarization: (-0.744994,0.284187,0.603507) - New Momentum Direction: (-0.636609,0.573164,0.515957) - New Polarization: (-0.744994,-0.284187,-0.603507) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.636609,0.573164,0.515957) - Old Polarization: (-0.744994,-0.284187,-0.603507) - New Momentum Direction: (-0.636609,-0.573164,0.515957) - New Polarization: (0.744994,-0.284187,0.603507) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 995, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.737847,0.15004,-0.658081) + Old Polarization: (-0.644929,-0.130907,-0.752947) + New Momentum Direction: (0.409182,0.20283,-0.889623) + New Polarization: (0.877888,-0.353321,0.323229) + *** FresnelRefraction *** +Track (trackID 436, parentID 1) is processed with stopping code 2 ### pop requested out of 106 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.874232,-0.436272,0.213038) - Old Polarization: (-0.481964,-0.832763,0.272427) - New Momentum Direction: (0.755474,-0.588736,0.287488) - New Polarization: (-0.652651,-0.71475,0.251355) + Old Momentum Direction: (0.589236,0.807652,0.0223471) + Old Polarization: (-0.807827,0.589417,-0.00192539) + New Momentum Direction: (0.799336,0.600119,0.0303153) + New Polarization: (-0.600502,0.79961,0.00468558) *** FresnelRefraction *** -Track (trackID 994, parentID 1) is processed with stopping code 2 +Track (trackID 435, parentID 1) is processed with stopping code 2 ### pop requested out of 105 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.664123,0.466714,0.584053) - Old Polarization: (-0.714769,0.16733,0.679047) - New Momentum Direction: (-0.664123,0.466714,0.584053) - New Polarization: (-0.714769,-0.16733,-0.679047) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.664123,0.466714,0.584053) - Old Polarization: (-0.714769,-0.16733,-0.679047) - New Momentum Direction: (-0.664123,0.466714,-0.584053) - New Polarization: (0.714769,0.16733,-0.679047) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.664123,0.466714,-0.584053) - Old Polarization: (0.714769,0.16733,-0.679047) - New Momentum Direction: (-0.664123,-0.466714,-0.584053) - New Polarization: (-0.714769,0.16733,0.679047) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.664123,-0.466714,-0.584053) - Old Polarization: (-0.714769,0.16733,0.679047) - New Momentum Direction: (0.664123,-0.466714,-0.584053) - New Polarization: (-0.714769,-0.16733,-0.679047) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.664123,-0.466714,-0.584053) - Old Polarization: (-0.714769,-0.16733,-0.679047) - New Momentum Direction: (0.664123,-0.466714,0.584053) - New Polarization: (0.714769,0.16733,-0.679047) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.664123,-0.466714,0.584053) - Old Polarization: (0.714769,0.16733,-0.679047) - New Momentum Direction: (0.664123,0.466714,0.584053) - New Polarization: (-0.714769,0.16733,0.679047) - *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 993, parentID 1) is processed with stopping code 2 +Track (trackID 434, parentID 1) is processed with stopping code 2 ### pop requested out of 104 stacked tracks. - -** Photon absorbed! ** -Track (trackID 992, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.858335,-0.500704,-0.112061) + Old Polarization: (-0.512704,-0.845452,-0.149484) + New Momentum Direction: (0.718734,-0.6785,-0.151852) + New Polarization: (0.694789,0.692637,0.193705) + *** FresnelRefraction *** +Track (trackID 433, parentID 1) is processed with stopping code 2 ### pop requested out of 103 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.58447,0.695747,-0.417529) - Old Polarization: (-0.802502,0.419585,-0.424192) - New Momentum Direction: (0.791609,0.23143,-0.565504) - New Polarization: (-0.243291,-0.72959,-0.639147) + Old Momentum Direction: (0.710411,0.159274,0.685527) + Old Polarization: (-0.675158,-0.120757,0.727722) + New Momentum Direction: (0.303423,0.215641,0.928134) + New Polarization: (0.922019,-0.312245,-0.228878) *** FresnelRefraction *** -Track (trackID 991, parentID 1) is processed with stopping code 2 +Track (trackID 432, parentID 1) is processed with stopping code 2 ### pop requested out of 102 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.565152,0.820791,0.0830956) - Old Polarization: (-0.822948,0.553812,0.126683) - New Momentum Direction: (0.767153,0.631469,0.112796) - New Polarization: (0.58935,-0.763272,0.264731) + Old Momentum Direction: (0.687842,0.381461,-0.617544) + Old Polarization: (-0.699858,0.122857,-0.703637) + New Momentum Direction: (0.17721,0.517213,-0.83731) + New Polarization: (0.959117,-0.281511,0.0290977) *** FresnelRefraction *** -Track (trackID 990, parentID 1) is processed with stopping code 2 +Track (trackID 431, parentID 1) is processed with stopping code 2 ### pop requested out of 101 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.85276,-0.351546,0.386285) - Old Polarization: (-0.508121,-0.729557,0.457777) - New Momentum Direction: (0.704324,-0.477797,0.525012) - New Polarization: (-0.699834,-0.591328,0.400705) + Old Momentum Direction: (0.769346,-0.115841,0.628241) + Old Polarization: (-0.61004,-0.425128,0.668668) + New Momentum Direction: (0.505827,-0.156424,0.848334) + New Polarization: (0.827997,-0.187835,-0.528336) *** FresnelRefraction *** -Track (trackID 989, parentID 1) is processed with stopping code 2 +Track (trackID 430, parentID 1) is processed with stopping code 2 ### pop requested out of 100 stacked tracks. - -** Photon absorbed! ** -Track (trackID 988, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.857383,-0.510711,-0.0637846) + Old Polarization: (-0.514651,-0.852013,-0.0959579) + New Momentum Direction: (0.714739,-0.694,-0.0866763) + New Polarization: (0.699356,0.707942,0.0985863) + *** FresnelRefraction *** +Track (trackID 429, parentID 1) is processed with stopping code 2 ### pop requested out of 99 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.576608,0.74056,-0.3451) - Old Polarization: (-0.811666,0.470939,-0.345564) - New Momentum Direction: (0.77984,0.417141,-0.466735) - New Polarization: (0.00204138,-0.7473,-0.664483) + Old Momentum Direction: (0.712079,0.169478,0.681338) + Old Polarization: (-0.673499,-0.109272,0.731067) + New Momentum Direction: (0.32422,0.228348,0.918008) + New Polarization: (0.914736,-0.323031,-0.242712) *** FresnelRefraction *** -Track (trackID 987, parentID 1) is processed with stopping code 2 +Track (trackID 428, parentID 1) is processed with stopping code 2 ### pop requested out of 98 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.813507,-0.30564,0.494763) +Old Polarization: (-0.560288,-0.639876,0.525962) +New Polarization: (-0.450926,-0.383486,0.80598) +Polarization Change: (-0.450926,-0.383486,0.80598) +New Momentum Direction: (0.373229,0.739248,0.560547) +Momentum Change: (0.373229,0.739248,0.560547) Photon at Boundary! - Old Momentum Direction: (0.745819,0.118665,0.655494) - Old Polarization: (-0.625089,-0.215455,0.750228) - New Momentum Direction: (0.422422,0.161462,0.891902) - New Polarization: (-0.879594,-0.16451,0.446375) - *** FresnelRefraction *** -Track (trackID 986, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.373229,0.739248,0.560547) + Old Polarization: (-0.450926,-0.383486,0.80598) + New Momentum Direction: (-0.373229,0.739248,0.560547) + New Polarization: (-0.450926,0.383486,-0.80598) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 427, parentID 1) is processed with stopping code 2 ### pop requested out of 97 stacked tracks. - -** Photon absorbed! ** -Track (trackID 985, parentID 1) is processed with stopping code 2 -### pop requested out of 96 stacked tracks. - -** Photon absorbed! ** -Track (trackID 984, parentID 1) is processed with stopping code 2 -### pop requested out of 95 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.879528,-0.474045,0.0413827) - Old Polarization: (-0.475841,-0.875709,0.081906) - New Momentum Direction: (0.766921,-0.63931,0.0558099) - New Polarization: (-0.641736,-0.763666,0.0706323) - *** FresnelRefraction *** -Track (trackID 983, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.671574,0.455982,-0.584012) + Old Polarization: (-0.717612,0.204066,-0.665875) + New Momentum Direction: (-0.671574,0.455982,-0.584012) + New Polarization: (-0.717612,-0.204066,0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671574,0.455982,-0.584012) + Old Polarization: (-0.717612,-0.204066,0.665875) + New Momentum Direction: (-0.671574,0.455982,0.584012) + New Polarization: (0.717612,0.204066,0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671574,0.455982,0.584012) + Old Polarization: (0.717612,0.204066,0.665875) + New Momentum Direction: (-0.671574,-0.455982,0.584012) + New Polarization: (-0.717612,0.204066,-0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671574,-0.455982,0.584012) + Old Polarization: (-0.717612,0.204066,-0.665875) + New Momentum Direction: (0.671574,-0.455982,0.584012) + New Polarization: (-0.717612,-0.204066,0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671574,-0.455982,0.584012) + Old Polarization: (-0.717612,-0.204066,0.665875) + New Momentum Direction: (0.671574,-0.455982,-0.584012) + New Polarization: (0.717612,0.204066,0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671574,-0.455982,-0.584012) + Old Polarization: (0.717612,0.204066,0.665875) + New Momentum Direction: (0.671574,0.455982,-0.584012) + New Polarization: (-0.717612,0.204066,-0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671574,0.455982,-0.584012) + Old Polarization: (-0.717612,0.204066,-0.665875) + New Momentum Direction: (-0.671574,0.455982,-0.584012) + New Polarization: (-0.717612,-0.204066,0.665875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671574,0.455982,-0.584012) + Old Polarization: (-0.717612,-0.204066,0.665875) + New Momentum Direction: (-0.671574,0.455982,0.584012) + New Polarization: (0.717612,0.204066,0.665875) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 426, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.665901,0.472586,-0.577267) + Old Polarization: (-0.723432,0.219995,-0.654407) + New Momentum Direction: (-0.665901,0.472586,-0.577267) + New Polarization: (-0.723432,-0.219995,0.654407) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.665901,0.472586,-0.577267) + Old Polarization: (-0.723432,-0.219995,0.654407) + New Momentum Direction: (-0.665901,0.472586,0.577267) + New Polarization: (0.723432,0.219995,0.654407) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.665901,0.472586,0.577267) + Old Polarization: (0.723432,0.219995,0.654407) + New Momentum Direction: (-0.665901,-0.472586,0.577267) + New Polarization: (-0.723432,0.219995,-0.654407) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 425, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + +** Photon absorbed! ** +Track (trackID 424, parentID 1) is processed with stopping code 2 ### pop requested out of 94 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.720236,0.0910379,-0.68773) - Old Polarization: (-0.652974,-0.245821,-0.716378) - New Momentum Direction: (0.333515,0.123716,-0.934592) - New Polarization: (-0.917521,-0.185187,-0.351937) - *** FresnelRefraction *** -Track (trackID 982, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.670773,0.450949,-0.588819) + Old Polarization: (-0.718174,0.196708,-0.667482) + New Momentum Direction: (-0.670773,0.450949,-0.588819) + New Polarization: (-0.718174,-0.196708,0.667482) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670773,0.450949,-0.588819) + Old Polarization: (-0.718174,-0.196708,0.667482) + New Momentum Direction: (-0.670773,0.450949,0.588819) + New Polarization: (0.718174,0.196708,0.667482) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670773,0.450949,0.588819) + Old Polarization: (0.718174,0.196708,0.667482) + New Momentum Direction: (-0.670773,-0.450949,0.588819) + New Polarization: (-0.718174,0.196708,-0.667482) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.670773,-0.450949,0.588819) + Old Polarization: (-0.718174,0.196708,-0.667482) + New Momentum Direction: (0.670773,-0.450949,0.588819) + New Polarization: (-0.718174,-0.196708,0.667482) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 423, parentID 1) is processed with stopping code 2 ### pop requested out of 93 stacked tracks. - -** Photon absorbed! ** -Track (trackID 981, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.853715,-0.465225,-0.233957) + Old Polarization: (-0.517621,-0.807233,-0.283626) + New Momentum Direction: (0.708908,-0.630111,-0.316876) + New Polarization: (0.701304,0.581981,0.411668) + *** FresnelRefraction *** +Track (trackID 422, parentID 1) is processed with stopping code 2 ### pop requested out of 92 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.617995,0.618735,0.485025) + Old Polarization: (-0.775915,0.380643,0.503057) + New Momentum Direction: (-0.617995,0.618735,0.485025) + New Polarization: (-0.775915,-0.380643,-0.503057) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.617995,0.618735,0.485025) + Old Polarization: (-0.775915,-0.380643,-0.503057) + New Momentum Direction: (-0.617995,-0.618735,0.485025) + New Polarization: (0.775915,-0.380643,0.503057) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.617995,-0.618735,0.485025) + Old Polarization: (0.775915,-0.380643,0.503057) + New Momentum Direction: (-0.617995,-0.618735,-0.485025) + New Polarization: (-0.775915,0.380643,0.503057) + *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 980, parentID 1) is processed with stopping code 2 +Track (trackID 421, parentID 1) is processed with stopping code 2 ### pop requested out of 91 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.648229,0.542767,0.534044) - Old Polarization: (-0.733123,0.255371,0.63033) - New Momentum Direction: (-0.648229,0.542767,0.534044) - New Polarization: (-0.733123,-0.255371,-0.63033) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648229,0.542767,0.534044) - Old Polarization: (-0.733123,-0.255371,-0.63033) - New Momentum Direction: (-0.648229,-0.542767,0.534044) - New Polarization: (0.733123,-0.255371,0.63033) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648229,-0.542767,0.534044) - Old Polarization: (0.733123,-0.255371,0.63033) - New Momentum Direction: (-0.648229,-0.542767,-0.534044) - New Polarization: (-0.733123,0.255371,0.63033) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.648229,-0.542767,-0.534044) - Old Polarization: (-0.733123,0.255371,0.63033) - New Momentum Direction: (0.648229,-0.542767,-0.534044) - New Polarization: (-0.733123,-0.255371,-0.63033) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 979, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.738458,0.130027,-0.661644) + Old Polarization: (-0.644413,-0.152804,-0.749255) + New Momentum Direction: (0.401611,0.176599,-0.898622) + New Polarization: (0.881523,-0.340523,0.327049) + *** FresnelRefraction *** +Track (trackID 420, parentID 1) is processed with stopping code 2 ### pop requested out of 90 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.618626,0.68762,-0.380107) +Old Polarization: (-0.774869,0.45396,-0.439884) +New Polarization: (-0.96075,-0.0633012,0.270098) +Polarization Change: (-0.96075,-0.0633012,0.270098) +New Momentum Direction: (-0.251013,0.612912,-0.749221) +Momentum Change: (-0.251013,0.612912,-0.749221) Photon at Boundary! - Old Momentum Direction: (0.566663,0.821136,0.0680326) - Old Polarization: (-0.822248,0.558257,0.110711) - New Momentum Direction: (0.76722,0.634736,0.0921111) - New Polarization: (0.605331,-0.764059,0.223133) - *** FresnelRefraction *** -Track (trackID 978, parentID 1) is processed with stopping code 2 -### pop requested out of 89 stacked tracks. + Old Momentum Direction: (-0.251013,0.612912,-0.749221) + Old Polarization: (-0.96075,-0.0633012,0.270098) + New Momentum Direction: (-0.251013,-0.612912,-0.749221) + New Polarization: (0.96075,-0.0633012,-0.270098) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.251013,-0.612912,-0.749221) + Old Polarization: (0.96075,-0.0633012,-0.270098) + New Momentum Direction: (-0.251013,-0.612912,0.749221) + New Polarization: (0.880302,-0.466434,-0.0866435) + *** FresnelReflection *** ** Photon absorbed! ** -Track (trackID 977, parentID 1) is processed with stopping code 2 -### pop requested out of 88 stacked tracks. +Track (trackID 419, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.698488,0.19234,-0.689289) - Old Polarization: (-0.676917,-0.134897,-0.723593) - New Momentum Direction: (0.246266,0.260496,-0.933539) - New Polarization: (-0.946725,-0.14158,-0.289252) + Old Momentum Direction: (0.849429,-0.489249,0.197751) + Old Polarization: (-0.522864,-0.83094,0.190135) + New Momentum Direction: (0.698113,-0.663813,0.268309) + New Polarization: (0.709795,0.592465,-0.38102) *** FresnelRefraction *** -Track (trackID 976, parentID 1) is processed with stopping code 2 +Track (trackID 418, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + +** Photon absorbed! ** +Track (trackID 417, parentID 1) is processed with stopping code 2 ### pop requested out of 87 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.847184,-0.403109,-0.346096) - Old Polarization: (-0.514158,-0.786173,-0.342891) - New Momentum Direction: (0.69192,-0.547778,-0.470304) - New Polarization: (-0.709824,-0.635144,-0.304536) + Old Momentum Direction: (0.591394,0.806379,0.00254075) + Old Polarization: (-0.80612,0.591278,-0.0236737) + New Momentum Direction: (0.800628,0.599151,0.00343967) + New Polarization: (-0.598951,0.800486,-0.0219077) *** FresnelRefraction *** -Track (trackID 975, parentID 1) is processed with stopping code 2 +Track (trackID 416, parentID 1) is processed with stopping code 2 ### pop requested out of 86 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.566228,0.783091,-0.257204) - Old Polarization: (-0.82198,0.51334,-0.246638) - New Momentum Direction: (0.768171,0.536802,-0.348936) - New Polarization: (0.263349,-0.761684,-0.592018) - *** FresnelRefraction *** -Track (trackID 974, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 415, parentID 1) is processed with stopping code 2 ### pop requested out of 85 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.815537,-0.163816,0.555034) - Old Polarization: (-0.547692,-0.528243,0.64884) - New Momentum Direction: (0.622273,-0.22159,0.750782) - New Polarization: (-0.760783,-0.397062,0.513371) + Old Momentum Direction: (0.817018,-0.361924,0.448879) + Old Polarization: (-0.558948,-0.688322,0.462374) + New Momentum Direction: (0.620248,-0.49235,0.610642) + New Polarization: (0.762223,0.194475,-0.617411) *** FresnelRefraction *** -Track (trackID 973, parentID 1) is processed with stopping code 2 +Track (trackID 414, parentID 1) is processed with stopping code 2 ### pop requested out of 84 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.629786,0.489311,-0.603278) - Old Polarization: (-0.752705,0.192616,-0.629551) - New Momentum Direction: (-0.629786,0.489311,-0.603278) - New Polarization: (-0.752705,-0.192616,0.629551) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629786,0.489311,-0.603278) - Old Polarization: (-0.752705,-0.192616,0.629551) - New Momentum Direction: (-0.629786,0.489311,0.603278) - New Polarization: (0.752705,0.192616,0.629551) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.629786,0.489311,0.603278) - Old Polarization: (0.752705,0.192616,0.629551) - New Momentum Direction: (-0.629786,-0.489311,0.603278) - New Polarization: (-0.752705,0.192616,-0.629551) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 972, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.759535,-0.0921487,0.643906) + Old Polarization: (-0.621425,-0.395283,0.676448) + New Momentum Direction: (0.467779,-0.125211,0.874932) + New Polarization: (0.849394,-0.210002,-0.484178) + *** FresnelRefraction *** +Track (trackID 413, parentID 1) is processed with stopping code 2 ### pop requested out of 83 stacked tracks. - -** Photon absorbed! ** -Track (trackID 971, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.598549,0.799714,-0.0468657) + Old Polarization: (-0.800307,0.594363,-0.0789977) + New Momentum Direction: (0.805088,0.589796,-0.0630375) + New Polarization: (-0.593151,0.800138,-0.0891716) + *** FresnelRefraction *** +Track (trackID 412, parentID 1) is processed with stopping code 2 ### pop requested out of 82 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.583436,0.693667,-0.422408) - Old Polarization: (-0.803029,0.414946,-0.427743) - New Momentum Direction: (0.791677,0.211465,-0.573175) - New Polarization: (-0.261791,-0.730267,-0.631011) - *** FresnelRefraction *** -Track (trackID 970, parentID 1) is processed with stopping code 2 -### pop requested out of 81 stacked tracks. + Old Momentum Direction: (0.628569,0.606053,0.487443) + Old Polarization: (-0.766922,0.378748,0.518054) + New Momentum Direction: (-0.628569,0.606053,0.487443) + New Polarization: (-0.766922,-0.378748,-0.518054) + *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.832414,-0.242484,0.498286) - Old Polarization: (-0.52926,-0.61436,0.585189) - New Momentum Direction: (0.661249,-0.328254,0.674537) - New Polarization: (-0.732421,-0.476922,0.485906) - *** FresnelRefraction *** -Track (trackID 969, parentID 1) is processed with stopping code 2 -### pop requested out of 80 stacked tracks. + Old Momentum Direction: (-0.628569,0.606053,0.487443) + Old Polarization: (-0.766922,-0.378748,-0.518054) + New Momentum Direction: (-0.628569,-0.606053,0.487443) + New Polarization: (0.766922,-0.378748,0.518054) + *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 968, parentID 1) is processed with stopping code 2 +Track (trackID 411, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + +** Photon absorbed! ** +Track (trackID 410, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.598816,0.725087,0.340101) + Old Polarization: (-0.79677,0.496354,0.344659) + New Momentum Direction: (0.813868,0.352068,0.462241) + New Polarization: (-0.554667,0.70774,0.43755) + *** FresnelRefraction *** +Track (trackID 409, parentID 1) is processed with stopping code 2 ### pop requested out of 79 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.825148,-0.210802,0.524112) - Old Polarization: (-0.537376,-0.579046,0.613134) - New Momentum Direction: (0.643977,-0.285481,0.709785) - New Polarization: (-0.745466,-0.442706,0.498289) + Old Momentum Direction: (0.595871,0.750518,0.285762) + Old Polarization: (-0.800482,0.526471,0.286456) + New Momentum Direction: (0.808539,0.442622,0.387751) + New Polarization: (-0.575068,0.734045,0.361212) *** FresnelRefraction *** -Track (trackID 967, parentID 1) is processed with stopping code 2 +Track (trackID 408, parentID 1) is processed with stopping code 2 ### pop requested out of 78 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.623108,0.513993,-0.589532) - Old Polarization: (-0.75973,0.218633,-0.61238) - New Momentum Direction: (-0.623108,0.513993,-0.589532) - New Polarization: (-0.75973,-0.218633,0.61238) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.623108,0.513993,-0.589532) - Old Polarization: (-0.75973,-0.218633,0.61238) - New Momentum Direction: (-0.623108,0.513993,0.589532) - New Polarization: (0.75973,0.218633,0.61238) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.623108,0.513993,0.589532) - Old Polarization: (0.75973,0.218633,0.61238) - New Momentum Direction: (-0.623108,-0.513993,0.589532) - New Polarization: (-0.75973,0.218633,-0.61238) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.623108,-0.513993,0.589532) - Old Polarization: (-0.75973,0.218633,-0.61238) - New Momentum Direction: (0.623108,-0.513993,0.589532) - New Polarization: (-0.75973,-0.218633,0.61238) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.623108,-0.513993,0.589532) - Old Polarization: (-0.75973,-0.218633,0.61238) - New Momentum Direction: (0.623108,-0.513993,-0.589532) - New Polarization: (0.75973,0.218633,0.61238) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.623108,-0.513993,-0.589532) -Old Polarization: (0.75973,0.218633,0.61238) -New Polarization: (-0.111573,0.791705,0.600629) -Polarization Change: (-0.111573,0.791705,0.600629) -New Momentum Direction: (0.910907,-0.160124,0.380274) -Momentum Change: (0.910907,-0.160124,0.380274) - Photon at Boundary! - Old Momentum Direction: (0.910907,-0.160124,0.380274) - Old Polarization: (-0.111573,0.791705,0.600629) - New Momentum Direction: (0.910907,-0.160124,-0.380274) - New Polarization: (0.111573,-0.791705,0.600629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.910907,-0.160124,-0.380274) - Old Polarization: (0.111573,-0.791705,0.600629) - New Momentum Direction: (0.910907,0.160124,-0.380274) - New Polarization: (-0.111573,-0.791705,-0.600629) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.910907,0.160124,-0.380274) - Old Polarization: (-0.111573,-0.791705,-0.600629) - New Momentum Direction: (0.82893,0.217071,-0.515515) - New Polarization: (-0.201522,-0.743839,-0.637254) + Old Momentum Direction: (0.838317,-0.378081,-0.392785) + Old Polarization: (-0.534759,-0.710467,-0.45746) + New Momentum Direction: (0.673735,-0.512473,-0.532403) + New Polarization: (0.725718,0.323,0.607457) *** FresnelRefraction *** -Track (trackID 966, parentID 1) is processed with stopping code 2 +Track (trackID 407, parentID 1) is processed with stopping code 2 ### pop requested out of 77 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.712287,0.127488,-0.690213) - Old Polarization: (-0.66168,-0.206088,-0.720907) - New Momentum Direction: (0.303713,0.173056,-0.936915) - New Polarization: (-0.928372,-0.167332,-0.331851) - *** FresnelRefraction *** -Track (trackID 965, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 406, parentID 1) is processed with stopping code 2 ### pop requested out of 76 stacked tracks. ** Photon absorbed! ** -Track (trackID 964, parentID 1) is processed with stopping code 2 +Track (trackID 405, parentID 1) is processed with stopping code 2 ### pop requested out of 75 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.796942,-0.101028,0.595548) - Old Polarization: (-0.569365,-0.45494,0.684729) - New Momentum Direction: (0.569503,-0.137478,0.810411) - New Polarization: (-0.797915,-0.329319,0.504857) - *** FresnelRefraction *** -Track (trackID 963, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.64838,0.455167,0.610267) + Old Polarization: (-0.742616,0.201545,0.638672) + New Momentum Direction: (-0.64838,0.455167,0.610267) + New Polarization: (-0.742616,-0.201545,-0.638672) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.64838,0.455167,0.610267) + Old Polarization: (-0.742616,-0.201545,-0.638672) + New Momentum Direction: (-0.64838,0.455167,-0.610267) + New Polarization: (0.742616,0.201545,-0.638672) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.64838,0.455167,-0.610267) + Old Polarization: (0.742616,0.201545,-0.638672) + New Momentum Direction: (-0.64838,-0.455167,-0.610267) + New Polarization: (-0.742616,0.201545,0.638672) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.64838,-0.455167,-0.610267) + Old Polarization: (-0.742616,0.201545,0.638672) + New Momentum Direction: (-0.64838,-0.455167,0.610267) + New Polarization: (0.742616,-0.201545,0.638672) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 404, parentID 1) is processed with stopping code 2 ### pop requested out of 74 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.595184,0.633895,-0.493896) - Old Polarization: (-0.789824,0.348179,-0.504926) - New Momentum Direction: (0.595184,-0.633895,-0.493896) - New Polarization: (0.789824,0.348179,0.504926) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.595184,-0.633895,-0.493896) - Old Polarization: (0.789824,0.348179,0.504926) - New Momentum Direction: (-0.595184,-0.633895,-0.493896) - New Polarization: (0.789824,-0.348179,-0.504926) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595184,-0.633895,-0.493896) - Old Polarization: (0.789824,-0.348179,-0.504926) - New Momentum Direction: (-0.595184,-0.633895,0.493896) - New Polarization: (-0.789824,0.348179,-0.504926) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595184,-0.633895,0.493896) - Old Polarization: (-0.789824,0.348179,-0.504926) - New Momentum Direction: (-0.595184,0.633895,0.493896) - New Polarization: (0.789824,0.348179,0.504926) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.595184,0.633895,0.493896) - Old Polarization: (0.789824,0.348179,0.504926) - New Momentum Direction: (0.595184,0.633895,0.493896) - New Polarization: (0.789824,-0.348179,-0.504926) - *** TotalInternalReflection *** -Scattering Photon! -Old Momentum Direction: (0.595184,0.633895,0.493896) -Old Polarization: (0.789824,-0.348179,-0.504926) -New Polarization: (0.400538,-0.861402,-0.312338) -Polarization Change: (0.400538,-0.861402,-0.312338) -New Momentum Direction: (-0.757754,-0.503049,0.415633) -Momentum Change: (-0.757754,-0.503049,0.415633) - Photon at Boundary! - Old Momentum Direction: (-0.757754,-0.503049,0.415633) - Old Polarization: (0.400538,-0.861402,-0.312338) - New Momentum Direction: (-0.757754,-0.503049,-0.415633) - New Polarization: (-0.400538,0.861402,-0.312338) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.757754,-0.503049,-0.415633) - Old Polarization: (-0.400538,0.861402,-0.312338) - New Momentum Direction: (-0.462918,-0.683334,-0.56459) - New Polarization: (0.665508,0.152788,-0.730585) - *** FresnelRefraction *** -Track (trackID 962, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 403, parentID 1) is processed with stopping code 2 ### pop requested out of 73 stacked tracks. ** Photon absorbed! ** -Track (trackID 961, parentID 1) is processed with stopping code 2 +Track (trackID 402, parentID 1) is processed with stopping code 2 ### pop requested out of 72 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.835779,-0.275343,0.475037) - Old Polarization: (-0.52702,-0.644993,0.553385) - New Momentum Direction: (0.664665,-0.374673,0.646406) - New Polarization: (-0.73157,-0.502079,0.461218) - *** FresnelRefraction *** -Track (trackID 960, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 401, parentID 1) is processed with stopping code 2 ### pop requested out of 71 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.86478,-0.458841,-0.204011) - Old Polarization: (-0.494579,-0.848567,-0.187951) - New Momentum Direction: (0.731622,-0.622914,-0.276961) - New Polarization: (-0.67635,-0.714115,-0.180531) - *** FresnelRefraction *** -Track (trackID 959, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.66053,0.420773,0.621813) + Old Polarization: (-0.73048,0.168783,0.661749) + New Momentum Direction: (-0.66053,0.420773,0.621813) + New Polarization: (-0.73048,-0.168783,-0.661749) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 400, parentID 1) is processed with stopping code 2 ### pop requested out of 70 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.867298,-0.425992,0.257536) - Old Polarization: (-0.492293,-0.810679,0.316933) - New Momentum Direction: (0.736278,-0.57908,0.350086) - New Polarization: (-0.672801,-0.681781,0.287251) + Old Momentum Direction: (0.845541,-0.417809,-0.332409) + Old Polarization: (-0.526734,-0.754516,-0.391482) + New Momentum Direction: (0.690373,-0.566135,-0.450417) + New Polarization: (0.714293,0.434648,0.548513) *** FresnelRefraction *** -Track (trackID 958, parentID 1) is processed with stopping code 2 +Track (trackID 399, parentID 1) is processed with stopping code 2 ### pop requested out of 69 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.844955,-0.366177,-0.389828) - Old Polarization: (-0.51352,-0.759171,-0.399946) - New Momentum Direction: (0.694515,-0.492592,-0.524407) - New Polarization: (-0.704082,-0.615305,-0.354498) + Old Momentum Direction: (0.793377,-0.116465,-0.597485) + Old Polarization: (-0.583097,-0.427229,-0.690995) + New Momentum Direction: (0.572052,-0.156928,-0.805065) + New Polarization: (0.78866,-0.164405,0.592442) *** FresnelRefraction *** -Track (trackID 957, parentID 1) is processed with stopping code 2 +Track (trackID 398, parentID 1) is processed with stopping code 2 ### pop requested out of 68 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.570769,0.807595,0.148371) - Old Polarization: (-0.817188,0.541048,0.198673) - New Momentum Direction: (0.77392,0.600478,0.20118) - New Polarization: (0.482135,-0.764657,0.427605) + Old Momentum Direction: (0.744639,0.00666186,0.667435) + Old Polarization: (-0.637332,-0.289976,0.713948) + New Momentum Direction: (0.435397,0.0089851,0.900194) + New Polarization: (0.865116,-0.280762,-0.415628) *** FresnelRefraction *** -Track (trackID 956, parentID 1) is processed with stopping code 2 +Track (trackID 397, parentID 1) is processed with stopping code 2 ### pop requested out of 67 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.829449,-0.235335,0.506589) - Old Polarization: (-0.533042,-0.604579,0.591904) - New Momentum Direction: (0.652709,-0.319186,0.687089) - New Polarization: (-0.739481,-0.465619,0.486176) - *** FresnelRefraction *** -Track (trackID 955, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 396, parentID 1) is processed with stopping code 2 ### pop requested out of 66 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.570622,0.811081,0.128599) - Old Polarization: (-0.817909,0.547283,0.1775) - New Momentum Direction: (0.772526,0.610649,0.174101) - New Polarization: (0.518801,-0.765081,0.38144) + Old Momentum Direction: (0.600504,0.746554,0.286448) + Old Polarization: (-0.796955,0.529548,0.290589) + New Momentum Direction: (0.810694,0.439579,0.386711) + New Polarization: (-0.572276,0.734399,0.364908) *** FresnelRefraction *** -Track (trackID 954, parentID 1) is processed with stopping code 2 +Track (trackID 395, parentID 1) is processed with stopping code 2 ### pop requested out of 65 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.858047,-0.512342,-0.0355141) +Old Polarization: (-0.513563,-0.855569,-0.0652375) +New Polarization: (-0.891381,-0.419788,-0.170932) +Polarization Change: (-0.891381,-0.419788,-0.170932) +New Momentum Direction: (-0.400608,0.906082,-0.136121) +Momentum Change: (-0.400608,0.906082,-0.136121) Photon at Boundary! - Old Momentum Direction: (0.874725,-0.466262,-0.132124) - Old Polarization: (-0.480517,-0.869864,-0.111534) - New Momentum Direction: (0.757854,-0.627708,-0.177873) - New Polarization: (-0.649485,-0.751709,-0.114468) + Old Momentum Direction: (-0.400608,0.906082,-0.136121) + Old Polarization: (-0.891381,-0.419788,-0.170932) + New Momentum Direction: (-0.54377,0.818642,-0.184766) + New Polarization: (0.729638,0.569939,0.377887) *** FresnelRefraction *** -Track (trackID 953, parentID 1) is processed with stopping code 2 +Track (trackID 394, parentID 1) is processed with stopping code 2 ### pop requested out of 64 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.566282,0.822693,0.0500079) - Old Polarization: (-0.822884,0.560885,0.0909369) - New Momentum Direction: (0.766264,0.638953,0.0676682) - New Polarization: (0.621854,-0.763986,0.172116) - *** FresnelRefraction *** -Track (trackID 952, parentID 1) is processed with stopping code 2 -### pop requested out of 63 stacked tracks. + Old Momentum Direction: (0.653199,0.566641,-0.502244) + Old Polarization: (-0.739054,0.332829,-0.585682) + New Momentum Direction: (-0.653199,0.566641,-0.502244) + New Polarization: (-0.739054,-0.332829,0.585682) + *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.57247,0.810803,0.121971) - Old Polarization: (-0.816802,0.550972,0.171069) - New Momentum Direction: (0.773055,0.612583,0.164708) - New Polarization: (0.529156,-0.765948,0.365127) - *** FresnelRefraction *** -Track (trackID 951, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (-0.653199,0.566641,-0.502244) + Old Polarization: (-0.739054,-0.332829,0.585682) + New Momentum Direction: (-0.653199,-0.566641,-0.502244) + New Polarization: (0.739054,-0.332829,-0.585682) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.653199,-0.566641,-0.502244) + Old Polarization: (0.739054,-0.332829,-0.585682) + New Momentum Direction: (-0.653199,-0.566641,0.502244) + New Polarization: (-0.739054,0.332829,-0.585682) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 393, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + +** Photon absorbed! ** +Track (trackID 392, parentID 1) is processed with stopping code 2 ### pop requested out of 62 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.85881,-0.435773,-0.269347) - Old Polarization: (-0.500598,-0.82556,-0.260486) - New Momentum Direction: (0.719579,-0.590686,-0.365097) - New Polarization: (-0.686091,-0.685903,-0.242522) + Old Momentum Direction: (0.59823,0.736308,0.316182) + Old Polarization: (-0.797909,0.51096,0.319782) + New Momentum Direction: (0.811713,0.39632,0.429013) + New Polarization: (-0.564854,0.719494,0.404065) *** FresnelRefraction *** -Track (trackID 950, parentID 1) is processed with stopping code 2 +Track (trackID 391, parentID 1) is processed with stopping code 2 ### pop requested out of 61 stacked tracks. ** Photon absorbed! ** -Track (trackID 949, parentID 1) is processed with stopping code 2 +Track (trackID 390, parentID 1) is processed with stopping code 2 ### pop requested out of 60 stacked tracks. - -** Photon absorbed! ** -Track (trackID 948, parentID 1) is processed with stopping code 2 -### pop requested out of 59 stacked tracks. - -** Photon absorbed! ** -Track (trackID 947, parentID 1) is processed with stopping code 2 -### pop requested out of 58 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.58674,0.690442,-0.423114) - Old Polarization: (-0.800488,0.41563,-0.431822) - New Momentum Direction: (0.7935,0.207188,-0.572215) - New Polarization: (-0.265191,-0.728575,-0.631548) + Old Momentum Direction: (0.596927,0.751442,0.281091) + Old Polarization: (-0.799798,0.529726,0.282336) + New Momentum Direction: (0.808728,0.448252,0.380827) + New Polarization: (-0.575584,0.736419,0.355514) *** FresnelRefraction *** -Track (trackID 946, parentID 1) is processed with stopping code 2 +Track (trackID 389, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.855914,-0.492965,-0.156196) + Old Polarization: (-0.516061,-0.833578,-0.197052) + New Momentum Direction: (0.711901,-0.669477,-0.212125) + New Polarization: (0.700921,0.658554,0.273893) + *** FresnelRefraction *** +Track (trackID 388, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + +** Photon absorbed! ** +Track (trackID 387, parentID 1) is processed with stopping code 2 ### pop requested out of 57 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.761569,-0.0489115,-0.646236) - Old Polarization: (-0.606892,-0.403649,-0.684653) - New Momentum Direction: (-0.761569,-0.0489115,-0.646236) - New Polarization: (-0.313707,0.900365,0.301548) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.761569,-0.0489115,-0.646236) - Old Polarization: (-0.313707,0.900365,0.301548) - New Momentum Direction: (-0.761569,-0.0489115,0.646236) - New Polarization: (0.313707,-0.900365,0.301548) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.761569,-0.0489115,0.646236) - Old Polarization: (0.313707,-0.900365,0.301548) - New Momentum Direction: (-0.487816,-0.0658821,0.870457) - New Polarization: (0.543239,-0.803453,0.243628) + Old Momentum Direction: (0.849126,-0.4553,-0.267742) + Old Polarization: (-0.523945,-0.7902,-0.317907) + New Momentum Direction: (0.695606,-0.619282,-0.364172) + New Polarization: (0.712986,0.532829,0.45579) *** FresnelRefraction *** -Track (trackID 945, parentID 1) is processed with stopping code 2 +Track (trackID 386, parentID 1) is processed with stopping code 2 ### pop requested out of 56 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.695726,0.215082,-0.68535) - Old Polarization: (-0.680171,-0.109493,-0.72483) - New Momentum Direction: (0.244939,0.290308,-0.925055) - New Polarization: (-0.94728,-0.131614,-0.292128) + Old Momentum Direction: (0.697824,0.324758,-0.638415) + Old Polarization: (-0.688757,0.059586,-0.72254) + New Momentum Direction: (0.228066,0.441453,-0.867817) + New Polarization: (0.945785,-0.312139,0.0897729) *** FresnelRefraction *** -Track (trackID 944, parentID 1) is processed with stopping code 2 +Track (trackID 385, parentID 1) is processed with stopping code 2 ### pop requested out of 55 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.712061,0.125629,-0.690787) - Old Polarization: (-0.661916,-0.208029,-0.720133) - New Momentum Direction: (0.300123,0.170681,-0.938507) - New Polarization: (-0.929618,-0.168245,-0.327878) + Old Momentum Direction: (0.621598,0.688502,-0.373606) + Old Polarization: (-0.772692,0.460562,-0.436839) + New Momentum Direction: (0.842166,0.185851,-0.506177) + New Polarization: (-0.479667,0.687036,-0.545804) *** FresnelRefraction *** -Track (trackID 943, parentID 1) is processed with stopping code 2 +Track (trackID 384, parentID 1) is processed with stopping code 2 ### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.643766,0.59312,-0.483501) + Old Polarization: (-0.748548,0.356924,-0.558821) + New Momentum Direction: (-0.643766,0.59312,-0.483501) + New Polarization: (-0.748548,-0.356924,0.558821) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.643766,0.59312,-0.483501) + Old Polarization: (-0.748548,-0.356924,0.558821) + New Momentum Direction: (-0.643766,-0.59312,-0.483501) + New Polarization: (0.748548,-0.356924,-0.558821) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.643766,-0.59312,-0.483501) + Old Polarization: (0.748548,-0.356924,-0.558821) + New Momentum Direction: (-0.643766,-0.59312,0.483501) + New Polarization: (-0.748548,0.356924,-0.558821) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.643766,-0.59312,0.483501) + Old Polarization: (-0.748548,0.356924,-0.558821) + New Momentum Direction: (0.643766,-0.59312,0.483501) + New Polarization: (-0.748548,-0.356924,0.558821) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.643766,-0.59312,0.483501) + Old Polarization: (-0.748548,-0.356924,0.558821) + New Momentum Direction: (0.643766,0.59312,0.483501) + New Polarization: (0.748548,-0.356924,-0.558821) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.643766,0.59312,0.483501) + Old Polarization: (0.748548,-0.356924,-0.558821) + New Momentum Direction: (0.643766,0.59312,-0.483501) + New Polarization: (-0.748548,0.356924,-0.558821) + *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 942, parentID 1) is processed with stopping code 2 +Track (trackID 383, parentID 1) is processed with stopping code 2 ### pop requested out of 53 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.808379,-0.116957,0.576927) - Old Polarization: (-0.554613,-0.479811,0.679843) - New Momentum Direction: (0.609747,-0.157475,0.776795) - New Polarization: (-0.768293,-0.358269,0.530443) + Old Momentum Direction: (0.692881,0.244621,0.67829) + Old Polarization: (-0.694411,-0.0269634,0.719073) + New Momentum Direction: (0.214853,0.331332,0.918726) + New Polarization: (0.949988,-0.289187,-0.11787) *** FresnelRefraction *** -Track (trackID 941, parentID 1) is processed with stopping code 2 +Track (trackID 382, parentID 1) is processed with stopping code 2 ### pop requested out of 52 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.754317,-0.0456337,-0.654922) - Old Polarization: (-0.615653,-0.395599,-0.681523) - New Momentum Direction: (0.452873,-0.0619729,-0.889418) - New Polarization: (-0.86439,-0.27498,-0.42097) + Old Momentum Direction: (0.587598,0.807028,0.0586016) + Old Polarization: (-0.809143,0.586406,0.0376274) + New Momentum Direction: (0.798286,0.596994,0.0796136) + New Polarization: (-0.601442,0.797146,0.0531476) *** FresnelRefraction *** -Track (trackID 940, parentID 1) is processed with stopping code 2 +Track (trackID 381, parentID 1) is processed with stopping code 2 ### pop requested out of 51 stacked tracks. ** Photon absorbed! ** -Track (trackID 939, parentID 1) is processed with stopping code 2 +Track (trackID 380, parentID 1) is processed with stopping code 2 ### pop requested out of 50 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.802622,-0.20458,-0.560308) - Old Polarization: (-0.560703,-0.579226,-0.5917) - New Momentum Direction: (0.59764,-0.274985,-0.753133) - New Polarization: (-0.776221,-0.433662,-0.457622) - *** FresnelRefraction *** -Track (trackID 938, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 379, parentID 1) is processed with stopping code 2 ### pop requested out of 49 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.583048,0.773408,0.248787) - Old Polarization: (-0.804397,0.506571,0.310373) - New Momentum Direction: (0.788907,0.514109,0.336628) - New Polarization: (0.236965,-0.759938,0.605262) + Old Momentum Direction: (0.814669,-0.238996,-0.528389) + Old Polarization: (-0.560089,-0.560516,-0.610018) + New Momentum Direction: (0.620973,-0.323029,-0.714175) + New Polarization: (0.759002,0.0202925,0.650772) *** FresnelRefraction *** -Track (trackID 937, parentID 1) is processed with stopping code 2 +Track (trackID 378, parentID 1) is processed with stopping code 2 ### pop requested out of 48 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.60025,0.712595,0.363193) - Old Polarization: (-0.785331,0.439089,0.436413) - New Momentum Direction: (0.812398,0.313657,0.491557) - New Polarization: (-0.120458,-0.734542,0.667786) + Old Momentum Direction: (0.600774,0.750303,0.275892) + Old Polarization: (-0.797003,0.535349,0.279621) + New Momentum Direction: (0.81016,0.453014,0.372047) + New Polarization: (-0.574565,0.739511,0.350711) *** FresnelRefraction *** -Track (trackID 936, parentID 1) is processed with stopping code 2 +Track (trackID 377, parentID 1) is processed with stopping code 2 ### pop requested out of 47 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.681737,0.403714,0.610123) - Old Polarization: (-0.695601,0.099319,0.71153) - New Momentum Direction: (-0.681737,0.403714,0.610123) - New Polarization: (-0.670985,-0.0126657,-0.741362) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.681737,0.403714,0.610123) - Old Polarization: (-0.670985,-0.0126657,-0.741362) - New Momentum Direction: (-0.681737,0.403714,-0.610123) - New Polarization: (0.670985,0.0126657,-0.741362) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.681737,0.403714,-0.610123) - Old Polarization: (0.670985,0.0126657,-0.741362) - New Momentum Direction: (-0.681737,-0.403714,-0.610123) - New Polarization: (-0.670985,0.0126657,0.741362) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.681737,-0.403714,-0.610123) - Old Polarization: (-0.670985,0.0126657,0.741362) - New Momentum Direction: (-0.151631,-0.545445,-0.824317) - New Polarization: (0.955261,-0.295115,0.0195578) - *** FresnelRefraction *** -Track (trackID 935, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 376, parentID 1) is processed with stopping code 2 ### pop requested out of 46 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.716541,0.126034,-0.686064) - Old Polarization: (-0.657059,-0.20825,-0.724504) - New Momentum Direction: (0.335187,0.17023,-0.926645) - New Polarization: (-0.916798,-0.1677,-0.362433) - *** FresnelRefraction *** -Track (trackID 934, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 375, parentID 1) is processed with stopping code 2 ### pop requested out of 45 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.664109,0.325674,-0.672975) -Old Polarization: (-0.714301,0.0106054,-0.699758) -New Polarization: (-0.92794,-0.3703,-0.0424783) -Polarization Change: (-0.92794,-0.3703,-0.0424783) -New Momentum Direction: (-0.103841,0.366291,-0.924688) -Momentum Change: (-0.103841,0.366291,-0.924688) Photon at Boundary! - Old Momentum Direction: (-0.103841,0.366291,-0.924688) - Old Polarization: (-0.92794,-0.3703,-0.0424783) - New Momentum Direction: (-0.141159,0.497926,-0.855654) - New Polarization: (-0.986434,-0.143907,0.0789908) + Old Momentum Direction: (0.69506,0.225327,0.682729) + Old Polarization: (-0.691862,-0.0485854,0.720393) + New Momentum Direction: (0.218004,0.305872,0.926777) + New Polarization: (0.948767,-0.288978,-0.127803) *** FresnelRefraction *** -Track (trackID 933, parentID 1) is processed with stopping code 2 +Track (trackID 374, parentID 1) is processed with stopping code 2 ### pop requested out of 44 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.8226,-0.295725,-0.485671) - Old Polarization: (-0.539522,-0.67565,-0.502408) - New Momentum Direction: (0.640419,-0.39943,-0.655987) - New Polarization: (-0.747252,-0.521364,-0.412061) + Old Momentum Direction: (0.608406,0.752534,-0.252059) + Old Polarization: (-0.787949,0.534859,-0.30506) + New Momentum Direction: (0.822086,0.456264,-0.340586) + New Polarization: (-0.563091,0.740077,-0.367715) *** FresnelRefraction *** -Track (trackID 932, parentID 1) is processed with stopping code 2 +Track (trackID 373, parentID 1) is processed with stopping code 2 ### pop requested out of 43 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.58162,0.78552,0.211369) - Old Polarization: (-0.807059,0.524689,0.270844) - New Momentum Direction: (0.784505,0.550699,0.2851) - New Polarization: (0.336173,-0.764005,0.550712) - *** FresnelRefraction *** -Track (trackID 931, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 372, parentID 1) is processed with stopping code 2 ### pop requested out of 42 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.714059,0.130585,-0.687799) - Old Polarization: (-0.659778,-0.203022,-0.723515) - New Momentum Direction: (-0.714059,0.130585,-0.687799) - New Polarization: (-0.565778,0.470992,0.676803) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.714059,0.130585,-0.687799) - Old Polarization: (-0.565778,0.470992,0.676803) - New Momentum Direction: (-0.966163,0.176689,-0.18791) - New Polarization: (-0.137478,0.263655,0.95477) + Old Momentum Direction: (0.587158,0.799497,0.126688) + Old Polarization: (-0.809309,0.576664,0.111705) + New Momentum Direction: (0.798466,0.576864,0.172281) + New Polarization: (-0.599751,0.787097,0.144143) *** FresnelRefraction *** -Track (trackID 930, parentID 1) is processed with stopping code 2 +Track (trackID 371, parentID 1) is processed with stopping code 2 ### pop requested out of 41 stacked tracks. - -** Photon absorbed! ** -Track (trackID 929, parentID 1) is processed with stopping code 2 -### pop requested out of 40 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.801726,-0.238305,-0.548129) -Old Polarization: (-0.564121,-0.604723,-0.562208) -New Polarization: (-0.0971712,0.801521,0.590018) -Polarization Change: (-0.0971712,0.801521,0.590018) -New Momentum Direction: (0.984681,-0.00881332,0.174142) -Momentum Change: (0.984681,-0.00881332,0.174142) Photon at Boundary! - Old Momentum Direction: (0.984681,-0.00881332,0.174142) - Old Polarization: (-0.0971712,0.801521,0.590018) - New Momentum Direction: (0.971451,-0.0119914,0.236936) - New Polarization: (-0.160158,0.703644,0.692268) + Old Momentum Direction: (0.791821,-0.111386,-0.60051) + Old Polarization: (-0.584948,-0.421089,-0.693195) + New Momentum Direction: (0.567212,-0.150199,-0.80976) + New Polarization: (0.791841,-0.170833,0.586348) *** FresnelRefraction *** -Track (trackID 928, parentID 1) is processed with stopping code 2 +Track (trackID 370, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + +** Photon absorbed! ** +Track (trackID 369, parentID 1) is processed with stopping code 2 ### pop requested out of 39 stacked tracks. - -** Photon absorbed! ** -Track (trackID 927, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.597783,0.79922,-0.0624822) + Old Polarization: (-0.800665,0.591347,-0.0961441) + New Momentum Direction: (0.805277,0.586894,-0.0841701) + New Polarization: (-0.592894,0.797714,-0.110133) + *** FresnelRefraction *** +Track (trackID 368, parentID 1) is processed with stopping code 2 ### pop requested out of 38 stacked tracks. - -** Photon absorbed! ** -Track (trackID 926, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.833999,-0.325736,-0.445357) + Old Polarization: (-0.53763,-0.661272,-0.523138) + New Momentum Direction: (0.669716,-0.438405,-0.599401) + New Polarization: (0.724736,0.209791,0.656312) + *** FresnelRefraction *** +Track (trackID 367, parentID 1) is processed with stopping code 2 ### pop requested out of 37 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.845965,-0.317628,0.428317) - Old Polarization: (-0.515426,-0.692948,0.504142) - New Momentum Direction: (0.689322,-0.431528,0.58191) - New Polarization: (-0.711826,-0.552774,0.433296) + Old Momentum Direction: (0.603145,0.732583,0.315497) + Old Polarization: (-0.794165,0.514708,0.323077) + New Momentum Direction: (0.813904,0.395351,0.425743) + New Polarization: (-0.562367,0.72016,0.406341) *** FresnelRefraction *** -Track (trackID 925, parentID 1) is processed with stopping code 2 +Track (trackID 366, parentID 1) is processed with stopping code 2 ### pop requested out of 36 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.864435,-0.409516,0.291633) - Old Polarization: (-0.495308,-0.793127,0.354428) - New Momentum Direction: (0.730235,-0.556504,0.396309) - New Polarization: (-0.67794,-0.662061,0.319488) + Old Momentum Direction: (0.825691,-0.386887,0.410552) + Old Polarization: (-0.548555,-0.72044,0.424327) + New Momentum Direction: (0.644669,-0.524284,0.556353) + New Polarization: (0.744818,0.266844,-0.611588) *** FresnelRefraction *** -Track (trackID 924, parentID 1) is processed with stopping code 2 +Track (trackID 365, parentID 1) is processed with stopping code 2 ### pop requested out of 35 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.627808,0.514585,-0.584003) - Old Polarization: (-0.755984,0.224471,-0.614899) - New Momentum Direction: (-0.627808,0.514585,-0.584003) - New Polarization: (-0.755984,-0.224471,0.614899) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.627808,0.514585,-0.584003) - Old Polarization: (-0.755984,-0.224471,0.614899) - New Momentum Direction: (-0.627808,0.514585,0.584003) - New Polarization: (0.755984,0.224471,0.614899) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.627808,0.514585,0.584003) - Old Polarization: (0.755984,0.224471,0.614899) - New Momentum Direction: (-0.627808,-0.514585,0.584003) - New Polarization: (-0.755984,0.224471,-0.614899) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 923, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.5961,0.802336,-0.030359) + Old Polarization: (-0.802335,0.593816,-0.0603394) + New Momentum Direction: (0.803503,0.593893,-0.0409219) + New Polarization: (-0.595263,0.800771,-0.0665466) + *** FresnelRefraction *** +Track (trackID 364, parentID 1) is processed with stopping code 2 ### pop requested out of 34 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.803151,-0.216763,-0.554944) - Old Polarization: (-0.560764,-0.58965,-0.581254) - New Momentum Direction: (0.595373,-0.292321,-0.748384) - New Polarization: (-0.778608,-0.439748,-0.447651) + Old Momentum Direction: (0.610248,0.732053,-0.302814) + Old Polarization: (-0.784717,0.506126,-0.357847) + New Momentum Direction: (0.828122,0.381253,-0.410926) + New Polarization: (-0.545847,0.715259,-0.436413) *** FresnelRefraction *** -Track (trackID 922, parentID 1) is processed with stopping code 2 +Track (trackID 363, parentID 1) is processed with stopping code 2 ### pop requested out of 33 stacked tracks. - -** Photon absorbed! ** -Track (trackID 921, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.590349,0.806248,-0.0381165) + Old Polarization: (-0.806493,0.587308,-0.0681127) + New Momentum Direction: (0.801134,0.596246,-0.051726) + New Polarization: (-0.59847,0.797505,-0.0762844) + *** FresnelRefraction *** +Track (trackID 362, parentID 1) is processed with stopping code 2 ### pop requested out of 32 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.613854,0.563841,-0.552509) - Old Polarization: (-0.770509,0.275665,-0.574739) - New Momentum Direction: (-0.613854,0.563841,-0.552509) - New Polarization: (-0.770509,-0.275665,0.574739) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613854,0.563841,-0.552509) - Old Polarization: (-0.770509,-0.275665,0.574739) - New Momentum Direction: (-0.613854,-0.563841,-0.552509) - New Polarization: (0.770509,-0.275665,-0.574739) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613854,-0.563841,-0.552509) - Old Polarization: (0.770509,-0.275665,-0.574739) - New Momentum Direction: (-0.613854,-0.563841,0.552509) - New Polarization: (-0.770509,0.275665,-0.574739) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.613854,-0.563841,0.552509) - Old Polarization: (-0.770509,0.275665,-0.574739) - New Momentum Direction: (0.613854,-0.563841,0.552509) - New Polarization: (-0.770509,-0.275665,0.574739) - *** TotalInternalReflection *** - -** Photon absorbed! ** -Track (trackID 920, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.737997,0.0216902,0.674456) + Old Polarization: (-0.644834,-0.271891,0.714328) + New Momentum Direction: (0.405019,0.0293885,0.913836) + New Polarization: (0.87988,-0.284218,-0.38083) + *** FresnelRefraction *** +Track (trackID 361, parentID 1) is processed with stopping code 2 ### pop requested out of 31 stacked tracks. ** Photon absorbed! ** -Track (trackID 919, parentID 1) is processed with stopping code 2 +Track (trackID 360, parentID 1) is processed with stopping code 2 ### pop requested out of 30 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.564857,0.789646,-0.239573) - Old Polarization: (-0.82337,0.520073,-0.227124) - New Momentum Direction: (0.766548,0.553808,-0.325117) - New Polarization: (0.310656,-0.76287,-0.56703) + Old Momentum Direction: (0.856542,-0.456,-0.241663) + Old Polarization: (-0.512593,-0.806043,-0.295875) + New Momentum Direction: (0.719213,-0.613906,-0.325348) + New Polarization: (0.690331,0.578446,0.434561) *** FresnelRefraction *** -Track (trackID 918, parentID 1) is processed with stopping code 2 +Track (trackID 359, parentID 1) is processed with stopping code 2 ### pop requested out of 29 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.590958,0.681958,-0.430932) - Old Polarization: (-0.796835,0.410168,-0.443639) - New Momentum Direction: (0.796722,0.16643,-0.580978) - New Polarization: (-0.298255,-0.727824,-0.617508) - *** FresnelRefraction *** -Track (trackID 917, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 358, parentID 1) is processed with stopping code 2 ### pop requested out of 28 stacked tracks. - -** Photon absorbed! ** -Track (trackID 916, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.806195,-0.290906,0.515193) + Old Polarization: (-0.569464,-0.617753,0.542303) + New Momentum Direction: (0.600341,-0.393223,0.696395) + New Polarization: (0.77214,0.0581868,-0.632783) + *** FresnelRefraction *** +Track (trackID 357, parentID 1) is processed with stopping code 2 ### pop requested out of 27 stacked tracks. - -** Photon absorbed! ** -Track (trackID 915, parentID 1) is processed with stopping code 2 +Scattering Photon! +Old Momentum Direction: (0.61831,0.70377,-0.349857) +Old Polarization: (-0.776388,0.477775,-0.411039) +New Polarization: (-0.953575,0.286781,0.0919366) +Polarization Change: (-0.953575,0.286781,0.0919366) +New Momentum Direction: (0.0445569,0.436267,-0.898713) +Momentum Change: (0.0445569,0.436267,-0.898713) +Scattering Photon! +Old Momentum Direction: (0.0445569,0.436267,-0.898713) +Old Polarization: (-0.953575,0.286781,0.0919366) +New Polarization: (0.976338,0.131016,-0.172045) +Polarization Change: (0.976338,0.131016,-0.172045) +New Momentum Direction: (0.158165,-0.975179,0.154949) +Momentum Change: (0.158165,-0.975179,0.154949) + Photon at Boundary! + Old Momentum Direction: (0.158165,-0.975179,0.154949) + Old Polarization: (0.976338,0.131016,-0.172045) + New Momentum Direction: (0.214219,-0.953975,0.209863) + New Polarization: (0.159398,-0.17783,-0.971066) + *** FresnelRefraction *** +Track (trackID 356, parentID 1) is processed with stopping code 2 ### pop requested out of 26 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.877279,-0.475034,0.0687282) - Old Polarization: (-0.479931,-0.870201,0.111431) - New Momentum Direction: (0.759933,-0.643303,0.0930734) - New Polarization: (-0.649966,-0.753544,0.0985657) + Old Momentum Direction: (0.676462,0.334503,0.65613) + Old Polarization: (-0.712685,0.0726991,0.697707) + New Momentum Direction: (-0.676462,0.334503,0.65613) + New Polarization: (0.703529,0.0300054,0.710033) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676462,0.334503,0.65613) + Old Polarization: (0.703529,0.0300054,0.710033) + New Momentum Direction: (-0.676462,0.334503,-0.65613) + New Polarization: (-0.703529,-0.0300054,0.710033) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676462,0.334503,-0.65613) + Old Polarization: (-0.703529,-0.0300054,0.710033) + New Momentum Direction: (-0.676462,-0.334503,-0.65613) + New Polarization: (0.703529,-0.0300054,-0.710033) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676462,-0.334503,-0.65613) + Old Polarization: (0.703529,-0.0300054,-0.710033) + New Momentum Direction: (0.676462,-0.334503,-0.65613) + New Polarization: (-0.691181,0.0192747,-0.722425) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.676462,-0.334503,-0.65613) + Old Polarization: (-0.691181,0.0192747,-0.722425) + New Momentum Direction: (0.676462,-0.334503,0.65613) + New Polarization: (0.691181,-0.0192747,-0.722425) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.676462,-0.334503,0.65613) + Old Polarization: (0.691181,-0.0192747,-0.722425) + New Momentum Direction: (0.0932889,-0.452213,0.887018) + New Polarization: (0.95547,-0.209843,-0.207469) *** FresnelRefraction *** -Track (trackID 914, parentID 1) is processed with stopping code 2 +Track (trackID 355, parentID 1) is processed with stopping code 2 ### pop requested out of 25 stacked tracks. ** Photon absorbed! ** -Track (trackID 913, parentID 1) is processed with stopping code 2 +Track (trackID 354, parentID 1) is processed with stopping code 2 ### pop requested out of 24 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.863035,-0.448512,-0.232396) - Old Polarization: (-0.495833,-0.84008,-0.220035) - New Momentum Direction: (0.729026,-0.607747,-0.314904) - New Polarization: (-0.677866,-0.704862,-0.208968) + Old Momentum Direction: (0.797121,-0.247546,0.550744) + Old Polarization: (-0.579394,-0.57037,0.582221) + New Momentum Direction: (0.578362,-0.334444,0.744073) + New Polarization: (0.785608,-0.0174262,-0.618479) *** FresnelRefraction *** -Track (trackID 912, parentID 1) is processed with stopping code 2 +Track (trackID 353, parentID 1) is processed with stopping code 2 ### pop requested out of 23 stacked tracks. - -** Photon absorbed! ** -Track (trackID 911, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.85787,-0.497317,-0.129361) + Old Polarization: (-0.513253,-0.841546,-0.168439) + New Momentum Direction: (0.717635,-0.673991,-0.175318) + New Polarization: (0.695632,0.681768,0.226469) + *** FresnelRefraction *** +Track (trackID 352, parentID 1) is processed with stopping code 2 ### pop requested out of 22 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.766621,0.0522355,0.639972) - Old Polarization: (-0.601609,-0.289901,0.744328) - New Momentum Direction: (0.49716,0.070585,0.864783) - New Polarization: (-0.839944,-0.210744,0.500081) - *** FresnelRefraction *** -Track (trackID 910, parentID 1) is processed with stopping code 2 -### pop requested out of 21 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.6061,0.586352,-0.537433) - Old Polarization: (-0.778087,0.296928,-0.553547) - New Momentum Direction: (-0.6061,0.586352,-0.537433) - New Polarization: (-0.778087,-0.296928,0.553547) + Old Momentum Direction: (0.643598,0.581574,-0.497548) + Old Polarization: (-0.74802,0.340357,-0.569757) + New Momentum Direction: (-0.643598,0.581574,-0.497548) + New Polarization: (-0.74802,-0.340357,0.569757) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.6061,0.586352,-0.537433) - Old Polarization: (-0.778087,-0.296928,0.553547) - New Momentum Direction: (-0.6061,-0.586352,-0.537433) - New Polarization: (0.778087,-0.296928,-0.553547) + Old Momentum Direction: (-0.643598,0.581574,-0.497548) + Old Polarization: (-0.74802,-0.340357,0.569757) + New Momentum Direction: (-0.643598,-0.581574,-0.497548) + New Polarization: (0.74802,-0.340357,-0.569757) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.6061,-0.586352,-0.537433) - Old Polarization: (0.778087,-0.296928,-0.553547) - New Momentum Direction: (-0.6061,-0.586352,0.537433) - New Polarization: (-0.778087,0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,-0.586352,0.537433) - Old Polarization: (-0.778087,0.296928,-0.553547) - New Momentum Direction: (0.6061,-0.586352,0.537433) - New Polarization: (-0.778087,-0.296928,0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,-0.586352,0.537433) - Old Polarization: (-0.778087,-0.296928,0.553547) - New Momentum Direction: (0.6061,0.586352,0.537433) - New Polarization: (0.778087,-0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,0.586352,0.537433) - Old Polarization: (0.778087,-0.296928,-0.553547) - New Momentum Direction: (0.6061,0.586352,-0.537433) - New Polarization: (-0.778087,0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,0.586352,-0.537433) - Old Polarization: (-0.778087,0.296928,-0.553547) - New Momentum Direction: (-0.6061,0.586352,-0.537433) - New Polarization: (-0.778087,-0.296928,0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,0.586352,-0.537433) - Old Polarization: (-0.778087,-0.296928,0.553547) - New Momentum Direction: (-0.6061,-0.586352,-0.537433) - New Polarization: (0.778087,-0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,-0.586352,-0.537433) - Old Polarization: (0.778087,-0.296928,-0.553547) - New Momentum Direction: (-0.6061,-0.586352,0.537433) - New Polarization: (-0.778087,0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,-0.586352,0.537433) - Old Polarization: (-0.778087,0.296928,-0.553547) - New Momentum Direction: (0.6061,-0.586352,0.537433) - New Polarization: (-0.778087,-0.296928,0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,-0.586352,0.537433) - Old Polarization: (-0.778087,-0.296928,0.553547) - New Momentum Direction: (0.6061,0.586352,0.537433) - New Polarization: (0.778087,-0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,0.586352,0.537433) - Old Polarization: (0.778087,-0.296928,-0.553547) - New Momentum Direction: (0.6061,0.586352,-0.537433) - New Polarization: (-0.778087,0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,0.586352,-0.537433) - Old Polarization: (-0.778087,0.296928,-0.553547) - New Momentum Direction: (-0.6061,0.586352,-0.537433) - New Polarization: (-0.778087,-0.296928,0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,0.586352,-0.537433) - Old Polarization: (-0.778087,-0.296928,0.553547) - New Momentum Direction: (-0.6061,-0.586352,-0.537433) - New Polarization: (0.778087,-0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,-0.586352,-0.537433) - Old Polarization: (0.778087,-0.296928,-0.553547) - New Momentum Direction: (-0.6061,-0.586352,0.537433) - New Polarization: (-0.778087,0.296928,-0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.6061,-0.586352,0.537433) - Old Polarization: (-0.778087,0.296928,-0.553547) - New Momentum Direction: (0.6061,-0.586352,0.537433) - New Polarization: (-0.778087,-0.296928,0.553547) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.6061,-0.586352,0.537433) - Old Polarization: (-0.778087,-0.296928,0.553547) - New Momentum Direction: (0.6061,0.586352,0.537433) - New Polarization: (0.778087,-0.296928,-0.553547) + Old Momentum Direction: (-0.643598,-0.581574,-0.497548) + Old Polarization: (0.74802,-0.340357,-0.569757) + New Momentum Direction: (-0.643598,-0.581574,0.497548) + New Polarization: (-0.74802,0.340357,-0.569757) *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 909, parentID 1) is processed with stopping code 2 +Track (trackID 351, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + +** Photon absorbed! ** +Track (trackID 350, parentID 1) is processed with stopping code 2 ### pop requested out of 20 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.842982,-0.389258,-0.371295) - Old Polarization: (-0.518856,-0.770567,-0.370155) - New Momentum Direction: (0.68211,-0.529137,-0.504719) - New Polarization: (-0.717732,-0.616554,-0.323607) - *** FresnelRefraction *** -Track (trackID 908, parentID 1) is processed with stopping code 2 + Old Momentum Direction: (0.672158,0.454421,-0.584556) + Old Polarization: (-0.717015,0.20261,-0.666962) + New Momentum Direction: (-0.672158,0.454421,-0.584556) + New Polarization: (-0.717015,-0.20261,0.666962) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.672158,0.454421,-0.584556) + Old Polarization: (-0.717015,-0.20261,0.666962) + New Momentum Direction: (-0.672158,0.454421,0.584556) + New Polarization: (0.717015,0.20261,0.666962) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.672158,0.454421,0.584556) + Old Polarization: (0.717015,0.20261,0.666962) + New Momentum Direction: (-0.672158,-0.454421,0.584556) + New Polarization: (-0.717015,0.20261,-0.666962) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.672158,-0.454421,0.584556) + Old Polarization: (-0.717015,0.20261,-0.666962) + New Momentum Direction: (0.672158,-0.454421,0.584556) + New Polarization: (-0.717015,-0.20261,0.666962) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.672158,-0.454421,0.584556) + Old Polarization: (-0.717015,-0.20261,0.666962) + New Momentum Direction: (0.672158,-0.454421,-0.584556) + New Polarization: (0.717015,0.20261,0.666962) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 349, parentID 1) is processed with stopping code 2 ### pop requested out of 19 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.872006,-0.439465,0.215581) - Old Polarization: (-0.485921,-0.830286,0.272956) - New Momentum Direction: (0.748436,-0.595423,0.292087) - New Polarization: (-0.660675,-0.707825,0.249984) + Old Momentum Direction: (0.860603,-0.509006,0.0166083) + Old Polarization: (-0.508942,-0.860762,-0.00817033) + New Momentum Direction: (0.726224,-0.687092,0.0224191) + New Polarization: (0.687028,0.724233,-0.0589854) *** FresnelRefraction *** -Track (trackID 907, parentID 1) is processed with stopping code 2 +Track (trackID 348, parentID 1) is processed with stopping code 2 ### pop requested out of 18 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.877488,-0.478379,-0.0341693) - Old Polarization: (-0.478719,-0.877966,-0.00204303) - New Momentum Direction: (0.761788,-0.64618,-0.0461549) - New Polarization: (-0.647202,-0.762248,-0.0104298) + Old Momentum Direction: (0.684273,0.387278,-0.617888) + Old Polarization: (-0.703478,0.127403,-0.699205) + New Momentum Direction: (0.127138,0.526771,-0.840445) + New Polarization: (0.968468,-0.248956,-0.00953484) *** FresnelRefraction *** -Track (trackID 906, parentID 1) is processed with stopping code 2 +Track (trackID 347, parentID 1) is processed with stopping code 2 ### pop requested out of 17 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.785496,-0.0152635,0.618678) - Old Polarization: (-0.580057,-0.366605,0.727417) - New Momentum Direction: (0.553644,-0.0205388,0.8325) - New Polarization: (-0.805443,-0.267128,0.52906) - *** FresnelRefraction *** -Track (trackID 905, parentID 1) is processed with stopping code 2 -### pop requested out of 16 stacked tracks. -Scattering Photon! -Old Momentum Direction: (0.599101,0.705789,0.378074) -Old Polarization: (-0.785398,0.426232,0.448862) -New Polarization: (0.608723,-0.751081,-0.255603) -Polarization Change: (0.608723,-0.751081,-0.255603) -New Momentum Direction: (0.562811,0.635866,-0.528127) -Momentum Change: (0.562811,0.635866,-0.528127) - Photon at Boundary! - Old Momentum Direction: (0.562811,0.635866,-0.528127) - Old Polarization: (0.608723,-0.751081,-0.255603) - New Momentum Direction: (0.562811,-0.635866,-0.528127) - New Polarization: (-0.608723,-0.751081,0.255603) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (0.562811,-0.635866,-0.528127) - Old Polarization: (-0.608723,-0.751081,0.255603) - New Momentum Direction: (-0.562811,-0.635866,-0.528127) - New Polarization: (-0.608723,0.751081,-0.255603) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.562811,-0.635866,-0.528127) - Old Polarization: (-0.608723,0.751081,-0.255603) - New Momentum Direction: (-0.562811,-0.635866,0.528127) - New Polarization: (0.608723,-0.751081,-0.255603) - *** TotalInternalReflection *** ** Photon absorbed! ** -Track (trackID 904, parentID 1) is processed with stopping code 2 +Track (trackID 346, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + +** Photon absorbed! ** +Track (trackID 345, parentID 1) is processed with stopping code 2 ### pop requested out of 15 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.801898,-0.206119,-0.56078) - Old Polarization: (-0.561787,-0.579602,-0.590302) - New Momentum Direction: (0.594354,-0.277443,-0.75483) - New Polarization: (-0.77882,-0.432533,-0.454263) + Old Momentum Direction: (0.853867,-0.498117,0.150965) + Old Polarization: (-0.517262,-0.844349,0.139694) + New Momentum Direction: (0.709672,-0.674247,0.204345) + New Polarization: (0.700395,0.643794,-0.308181) *** FresnelRefraction *** -Track (trackID 903, parentID 1) is processed with stopping code 2 +Track (trackID 344, parentID 1) is processed with stopping code 2 ### pop requested out of 14 stacked tracks. - -** Photon absorbed! ** -Track (trackID 902, parentID 1) is processed with stopping code 2 + Photon at Boundary! + Old Momentum Direction: (0.858192,-0.498154,0.12389) + Old Polarization: (-0.51087,-0.852426,0.11127) + New Momentum Direction: (0.722534,-0.670899,0.166851) + New Polarization: (0.688188,0.674976,-0.266092) + *** FresnelRefraction *** +Track (trackID 343, parentID 1) is processed with stopping code 2 ### pop requested out of 13 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.754062,0.0847953,0.651306) - Old Polarization: (-0.616074,-0.252448,0.746139) - New Momentum Direction: (0.449231,0.115343,0.885939) - New Polarization: (-0.866439,-0.185592,0.463506) + Old Momentum Direction: (0.765169,-0.107323,0.634821) + Old Polarization: (-0.614958,-0.413785,0.671274) + New Momentum Direction: (0.489394,-0.145368,0.859861) + New Polarization: (0.837524,-0.196399,-0.509884) *** FresnelRefraction *** -Track (trackID 901, parentID 1) is processed with stopping code 2 +Track (trackID 342, parentID 1) is processed with stopping code 2 ### pop requested out of 12 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.760218,-0.045741,-0.648056) - Old Polarization: (-0.608464,-0.399723,-0.685561) - New Momentum Direction: (0.482849,-0.0616554,-0.873531) - New Polarization: (-0.847559,-0.283766,-0.448464) + Old Momentum Direction: (0.734075,0.0681249,0.675642) + Old Polarization: (-0.649017,-0.222325,0.727564) + New Momentum Direction: (0.407095,0.0916319,0.908778) + New Polarization: (0.878891,-0.31015,-0.362434) *** FresnelRefraction *** -Track (trackID 900, parentID 1) is processed with stopping code 2 +Track (trackID 341, parentID 1) is processed with stopping code 2 ### pop requested out of 11 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.860297,-0.387621,0.331118) - Old Polarization: (-0.49977,-0.76943,0.397752) - New Momentum Direction: (0.721275,-0.526655,0.449886) - New Polarization: (-0.685555,-0.635528,0.355133) + Old Momentum Direction: (0.589369,0.806734,0.0427151) + Old Polarization: (-0.807817,0.58908,0.0204156) + New Momentum Direction: (0.799181,0.598293,0.0579214) + New Polarization: (-0.600477,0.799001,0.0320003) *** FresnelRefraction *** -Track (trackID 899, parentID 1) is processed with stopping code 2 +Track (trackID 340, parentID 1) is processed with stopping code 2 ### pop requested out of 10 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.740436,0.0270201,-0.671583) - Old Polarization: (-0.630589,-0.317886,-0.708029) - New Momentum Direction: (-0.740436,0.0270201,-0.671583) - New Polarization: (-0.4452,0.72885,0.520168) - *** FresnelReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.740436,0.0270201,-0.671583) - Old Polarization: (-0.4452,0.72885,0.520168) - New Momentum Direction: (-0.740436,0.0270201,0.671583) - New Polarization: (0.4452,-0.72885,0.520168) - *** TotalInternalReflection *** - Photon at Boundary! - Old Momentum Direction: (-0.740436,0.0270201,0.671583) - Old Polarization: (0.4452,-0.72885,0.520168) - New Momentum Direction: (-0.418839,0.0365049,0.907326) - New Polarization: (0.719282,-0.59655,0.356036) + Old Momentum Direction: (0.710918,0.144807,0.688205) + Old Polarization: (-0.674501,-0.136657,0.725516) + New Momentum Direction: (0.296035,0.196674,0.93471) + New Polarization: (0.924347,-0.305603,-0.22845) *** FresnelRefraction *** -Track (trackID 898, parentID 1) is processed with stopping code 2 +Track (trackID 339, parentID 1) is processed with stopping code 2 ### pop requested out of 9 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.623005,0.624063,0.471604) - Old Polarization: (-0.759872,0.339761,0.554218) - New Momentum Direction: (-0.623005,0.624063,0.471604) - New Polarization: (-0.759872,-0.339761,-0.554218) + Old Momentum Direction: (0.767477,0.00612534,-0.641048) + Old Polarization: (-0.612129,-0.29009,-0.735626) + New Momentum Direction: (0.500326,0.00827287,-0.865798) + New Polarization: (0.831086,-0.285041,0.477543) + *** FresnelRefraction *** +Track (trackID 338, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.623026,0.61617,0.481844) + Old Polarization: (-0.771877,0.38455,0.506287) + New Momentum Direction: (-0.623026,0.61617,0.481844) + New Polarization: (-0.771877,-0.38455,-0.506287) *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (-0.623005,0.624063,0.471604) - Old Polarization: (-0.759872,-0.339761,-0.554218) - New Momentum Direction: (-0.623005,-0.624063,0.471604) - New Polarization: (0.759872,-0.339761,0.554218) + Old Momentum Direction: (-0.623026,0.61617,0.481844) + Old Polarization: (-0.771877,-0.38455,-0.506287) + New Momentum Direction: (-0.623026,-0.61617,0.481844) + New Polarization: (0.771877,-0.38455,0.506287) *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623026,-0.61617,0.481844) + Old Polarization: (0.771877,-0.38455,0.506287) + New Momentum Direction: (-0.623026,-0.61617,-0.481844) + New Polarization: (-0.771877,0.38455,0.506287) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623026,-0.61617,-0.481844) + Old Polarization: (-0.771877,0.38455,0.506287) + New Momentum Direction: (0.623026,-0.61617,-0.481844) + New Polarization: (-0.771877,-0.38455,-0.506287) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.623026,-0.61617,-0.481844) + Old Polarization: (-0.771877,-0.38455,-0.506287) + New Momentum Direction: (0.623026,0.61617,-0.481844) + New Polarization: (0.771877,-0.38455,0.506287) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 337, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.85204,-0.461332,-0.247387) + Old Polarization: (-0.519925,-0.800752,-0.297446) + New Momentum Direction: (0.704133,-0.625772,-0.335568) + New Polarization: (0.705517,0.563146,0.430247) + *** FresnelRefraction *** +Track (trackID 336, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.589759,0.779417,0.211407) +Old Polarization: (-0.8065,0.554907,0.204048) +New Polarization: (-0.821998,0.509053,0.255314) +Polarization Change: (-0.821998,0.509053,0.255314) +New Momentum Direction: (0.190945,0.668728,-0.71857) +Momentum Change: (0.190945,0.668728,-0.71857) + Photon at Boundary! + Old Momentum Direction: (0.190945,0.668728,-0.71857) + Old Polarization: (-0.821998,0.509053,0.255314) + New Momentum Direction: (0.190945,-0.668728,-0.71857) + New Polarization: (0.821998,0.509053,-0.255314) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 335, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.842693,-0.383376,-0.378011) +Old Polarization: (-0.528609,-0.722404,-0.445762) +New Polarization: (-0.518933,-0.44027,-0.732715) +Polarization Change: (-0.518933,-0.44027,-0.732715) +New Momentum Direction: (-0.131169,-0.805998,0.577202) +Momentum Change: (-0.131169,-0.805998,0.577202) + Photon at Boundary! + Old Momentum Direction: (-0.131169,-0.805998,0.577202) + Old Polarization: (-0.518933,-0.44027,-0.732715) + New Momentum Direction: (-0.176956,-0.601938,0.778689) + New Polarization: (-0.535043,-0.605224,-0.589435) + *** FresnelRefraction *** +Track (trackID 334, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.67686,0.422261,-0.602956) +Old Polarization: (-0.711546,0.16547,-0.682878) +New Polarization: (-0.541187,-0.700821,-0.464723) +Polarization Change: (-0.541187,-0.700821,-0.464723) +New Momentum Direction: (0.486632,-0.71172,0.506601) +Momentum Change: (0.486632,-0.71172,0.506601) + +** Photon absorbed! ** +Track (trackID 333, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + +** Photon absorbed! ** +Track (trackID 332, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.857072,-0.487076,-0.16788) + Old Polarization: (-0.513881,-0.831493,-0.21106) + New Momentum Direction: (0.716407,-0.659603,-0.227344) + New Polarization: (0.695995,0.653013,0.298606) + *** FresnelRefraction *** +Track (trackID 331, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 157 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 51 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 210 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.150011,0.731549,-0.665081) + Old Polarization: (0.96201,-0.0472018,-0.268903) + New Momentum Direction: (-0.150011,-0.731549,-0.665081) + New Polarization: (0.971093,0.0173122,-0.238074) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 905, parentID 1) is processed with stopping code 2 +### pop requested out of 209 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.446257,0.787173,-0.425693) + Old Polarization: (-0.767324,0.581356,0.270627) + New Momentum Direction: (0.602962,0.552819,-0.575177) + New Polarization: (-0.599067,0.789881,0.131171) + *** FresnelRefraction *** +Track (trackID 904, parentID 1) is processed with stopping code 2 +### pop requested out of 208 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.648098,-0.761537,-0.00548339) + Old Polarization: (0.36788,0.319369,-0.873309) + New Momentum Direction: (0.878027,-0.478553,-0.00742875) + New Polarization: (-0.255424,-0.4554,-0.85286) + *** FresnelRefraction *** +Track (trackID 903, parentID 1) is processed with stopping code 2 +### pop requested out of 207 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.606928,-0.0358872,0.793946) + Old Polarization: (-0.302195,-0.934367,0.188777) + New Momentum Direction: (0.824816,-0.0487708,0.563294) + New Polarization: (-0.238723,-0.933155,0.268762) + *** FresnelRefraction *** +Track (trackID 902, parentID 1) is processed with stopping code 2 +### pop requested out of 206 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.402138,0.777718,-0.483156) + Old Polarization: (-0.429784,-0.626298,-0.650413) + New Momentum Direction: (-0.545928,0.521285,-0.655916) + New Polarization: (0.394488,0.850593,0.347666) + *** FresnelRefraction *** +Track (trackID 901, parentID 1) is processed with stopping code 2 +### pop requested out of 205 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.508576,-0.179728,0.84205) +Old Polarization: (0.780699,-0.316192,-0.53901) +New Polarization: (-0.423323,0.822988,-0.3788) +Polarization Change: (-0.423323,0.822988,-0.3788) +New Momentum Direction: (0.669074,0.00208119,-0.743192) +Momentum Change: (0.669074,0.00208119,-0.743192) + Photon at Boundary! + Old Momentum Direction: (0.669074,0.00208119,-0.743192) + Old Polarization: (-0.423323,0.822988,-0.3788) + New Momentum Direction: (-0.669074,0.00208119,-0.743192) + New Polarization: (-0.423323,-0.822988,0.3788) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 900, parentID 1) is processed with stopping code 2 +### pop requested out of 204 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.996141,-0.0807373,-0.0344247) + Old Polarization: (0.0874588,0.880077,0.466706) + New Momentum Direction: (0.992889,-0.109503,-0.0466897) + New Polarization: (0.118619,0.877116,0.465399) + *** FresnelRefraction *** +Track (trackID 899, parentID 1) is processed with stopping code 2 +### pop requested out of 203 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.326016,0.935314,-0.137481) + Old Polarization: (0.458579,-0.283634,-0.842174) + New Momentum Direction: (0.440234,0.878481,-0.185647) + New Polarization: (-0.881936,0.384277,-0.272983) + *** FresnelRefraction *** +Track (trackID 898, parentID 1) is processed with stopping code 2 +### pop requested out of 202 stacked tracks. ** Photon absorbed! ** Track (trackID 897, parentID 1) is processed with stopping code 2 -### pop requested out of 8 stacked tracks. +### pop requested out of 201 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.703245,0.174644,-0.689163) - Old Polarization: (-0.671704,-0.154387,-0.724554) - New Momentum Direction: (0.272251,0.236371,-0.932743) - New Polarization: (-0.93889,-0.146933,-0.31128) + Old Momentum Direction: (-0.599374,0.394111,0.696726) + Old Polarization: (0.0822908,-0.835448,0.543373) + New Momentum Direction: (-0.599374,0.394111,-0.696726) + New Polarization: (-0.787103,-0.448572,0.423382) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.599374,0.394111,-0.696726) + Old Polarization: (-0.787103,-0.448572,0.423382) + New Momentum Direction: (0.599374,0.394111,-0.696726) + New Polarization: (-0.787103,0.448572,-0.423382) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.599374,0.394111,-0.696726) + Old Polarization: (-0.787103,0.448572,-0.423382) + New Momentum Direction: (0.599374,-0.394111,-0.696726) + New Polarization: (0.787103,0.448572,0.423382) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.599374,-0.394111,-0.696726) + Old Polarization: (0.787103,0.448572,0.423382) + New Momentum Direction: (0.81365,-0.535006,-0.227471) + New Polarization: (0.294613,0.716771,-0.632014) *** FresnelRefraction *** Track (trackID 896, parentID 1) is processed with stopping code 2 -### pop requested out of 7 stacked tracks. +### pop requested out of 200 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.87899,-0.469774,0.0817856) - Old Polarization: (-0.476698,-0.869893,0.126668) - New Momentum Direction: (0.765438,-0.633974,0.110372) - New Polarization: (-0.643409,-0.757016,0.113805) + Old Momentum Direction: (0.838242,-0.207,-0.50448) + Old Polarization: (0.539629,0.447952,0.712839) + New Momentum Direction: (0.671813,-0.281185,-0.685276) + New Polarization: (0.733512,0.381303,0.562644) *** FresnelRefraction *** Track (trackID 895, parentID 1) is processed with stopping code 2 -### pop requested out of 6 stacked tracks. +### pop requested out of 199 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.586568,0.759289,0.28181) - Old Polarization: (-0.80022,0.489706,0.346172) - New Momentum Direction: (0.794379,0.472552,0.38165) - New Polarization: (0.14137,-0.754888,0.640436) + Old Momentum Direction: (0.737958,-0.243724,0.629298) + Old Polarization: (0.585685,-0.231942,-0.776644) + New Momentum Direction: (0.407447,-0.329817,0.851592) + New Polarization: (0.808613,-0.303085,-0.504266) *** FresnelRefraction *** Track (trackID 894, parentID 1) is processed with stopping code 2 -### pop requested out of 5 stacked tracks. +### pop requested out of 198 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.80916,-0.233112,-0.539369) - Old Polarization: (-0.553605,-0.610096,-0.566838) - New Momentum Direction: (0.612275,-0.31367,-0.725763) - New Polarization: (-0.76635,-0.461247,-0.447168) + Old Momentum Direction: (0.156498,0.78876,0.594446) + Old Polarization: (0.55824,0.425868,-0.712042) + New Momentum Direction: (0.212552,0.550439,0.807365) + New Polarization: (0.579217,0.594466,-0.557779) *** FresnelRefraction *** Track (trackID 893, parentID 1) is processed with stopping code 2 +### pop requested out of 197 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.415496,-0.0284784,0.909149) + Old Polarization: (0.29197,0.942443,0.162957) + New Momentum Direction: (-0.562818,-0.038576,0.82568) + New Polarization: (0.263499,0.938422,0.223455) + *** FresnelRefraction *** +Track (trackID 892, parentID 1) is processed with stopping code 2 +### pop requested out of 196 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.999941,-0.00349171,-0.010309) + Old Polarization: (-0.00810551,0.871013,0.491194) + New Momentum Direction: (0.999941,-0.00349171,-0.010309) + New Polarization: (0.00810436,0.87109,0.491056) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 891, parentID 1) is processed with stopping code 2 +### pop requested out of 195 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.32646,-0.877714,0.350773) + Old Polarization: (-0.46912,0.171717,0.866279) + New Momentum Direction: (0.438933,-0.764795,0.471622) + New Polarization: (-0.871627,-0.234968,0.430182) + *** FresnelRefraction *** +Track (trackID 890, parentID 1) is processed with stopping code 2 +### pop requested out of 194 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.178703,-0.760276,0.624536) + Old Polarization: (-0.909552,-0.369712,-0.18981) + New Momentum Direction: (0.178703,0.760276,0.624536) + New Polarization: (-0.917304,-0.100823,0.385212) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.178703,0.760276,0.624536) + Old Polarization: (-0.917304,-0.100823,0.385212) + New Momentum Direction: (0.178703,0.760276,-0.624536) + New Polarization: (0.917304,0.100823,0.385212) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.178703,0.760276,-0.624536) + Old Polarization: (0.917304,0.100823,0.385212) + New Momentum Direction: (0.242231,0.473991,-0.846556) + New Polarization: (0.926383,0.146316,0.346996) + *** FresnelRefraction *** +Track (trackID 889, parentID 1) is processed with stopping code 2 +### pop requested out of 193 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.484805,-0.298538,0.822094) + Old Polarization: (-0.649958,0.751933,-0.110233) + New Momentum Direction: (-0.659379,-0.40604,0.632733) + New Polarization: (-0.405259,0.900835,0.155761) + *** FresnelRefraction *** +Track (trackID 888, parentID 1) is processed with stopping code 2 +### pop requested out of 192 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.818599,-0.529147,-0.223383) + Old Polarization: (0.556019,0.632546,0.539193) + New Momentum Direction: (0.62655,-0.718021,-0.303118) + New Polarization: (0.756326,0.466252,0.45889) + *** FresnelRefraction *** +Track (trackID 887, parentID 1) is processed with stopping code 2 +### pop requested out of 191 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.124031,0.825267,-0.550955) + Old Polarization: (-0.819443,0.227932,0.525889) + New Momentum Direction: (-0.168428,0.641777,-0.748168) + New Polarization: (-0.8282,0.319454,0.460472) + *** FresnelRefraction *** +Track (trackID 886, parentID 1) is processed with stopping code 2 +### pop requested out of 190 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0189026,-0.931971,-0.362039) + Old Polarization: (0.946401,-0.133456,0.294133) + New Momentum Direction: (-0.0255857,-0.871324,-0.490041) + New Polarization: (0.944102,-0.182223,0.274711) + *** FresnelRefraction *** +Track (trackID 885, parentID 1) is processed with stopping code 2 +### pop requested out of 189 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.955006,0.165359,-0.246212) + Old Polarization: (-0.0542709,-0.913565,-0.403056) + New Momentum Direction: (0.955006,0.165359,-0.246212) + New Polarization: (0.0415554,-0.896565,-0.440959) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 884, parentID 1) is processed with stopping code 2 +### pop requested out of 188 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.184516,0.97064,0.15431) + Old Polarization: (0.308762,0.0918092,-0.946698) + New Momentum Direction: (0.249946,0.945428,0.20903) + New Polarization: (0.314863,0.124787,-0.940898) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.249946,0.945428,0.20903) + Old Polarization: (0.314863,0.124787,-0.940898) + New Momentum Direction: (0.69934,0.697934,0.15431) + New Polarization: (0.263558,-0.0511098,-0.963289) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.69934,0.697934,0.15431) + Old Polarization: (0.263558,-0.0511098,-0.963289) + New Momentum Direction: (0.947332,0.24263,0.20903) + New Polarization: (0.195182,0.080053,-0.977494) + *** FresnelRefraction *** +Track (trackID 883, parentID 1) is processed with stopping code 2 +### pop requested out of 187 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.737317,-0.611334,-0.287462) +Old Polarization: (0.26395,-0.130998,0.955599) +New Polarization: (-0.872426,0.466347,-0.146264) +Polarization Change: (-0.872426,0.466347,-0.146264) +New Momentum Direction: (0.124334,-0.0776486,-0.989197) +Momentum Change: (0.124334,-0.0776486,-0.989197) + Photon at Boundary! + Old Momentum Direction: (0.124334,-0.0776486,-0.989197) + Old Polarization: (-0.872426,0.466347,-0.146264) + New Momentum Direction: (0.168396,-0.105166,-0.980093) + New Polarization: (-0.864678,0.461616,-0.198098) + *** FresnelRefraction *** +Track (trackID 882, parentID 1) is processed with stopping code 2 +### pop requested out of 186 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.836101,0.548227,0.0195527) + Old Polarization: (-0.546679,0.835643,-0.0533201) + New Momentum Direction: (0.668691,0.743068,0.0265018) + New Polarization: (0.741136,-0.663242,-0.104052) + *** FresnelRefraction *** +Track (trackID 881, parentID 1) is processed with stopping code 2 +### pop requested out of 185 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.506282,0.861524,0.0381565) + Old Polarization: (-0.755745,0.464562,-0.461554) + New Momentum Direction: (0.681381,0.730125,0.0513531) + New Polarization: (-0.639061,0.627664,-0.444566) + *** FresnelRefraction *** +Track (trackID 880, parentID 1) is processed with stopping code 2 +### pop requested out of 184 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.655597,-0.530263,-0.537599) + Old Polarization: (-0.214952,0.551439,-0.806046) + New Momentum Direction: (-0.655597,-0.530263,-0.537599) + New Polarization: (-0.214952,-0.551439,0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655597,-0.530263,-0.537599) + Old Polarization: (-0.214952,-0.551439,0.806046) + New Momentum Direction: (-0.655597,-0.530263,0.537599) + New Polarization: (0.214952,0.551439,0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655597,-0.530263,0.537599) + Old Polarization: (0.214952,0.551439,0.806046) + New Momentum Direction: (-0.655597,0.530263,0.537599) + New Polarization: (-0.214952,0.551439,-0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655597,0.530263,0.537599) + Old Polarization: (-0.214952,0.551439,-0.806046) + New Momentum Direction: (0.655597,0.530263,0.537599) + New Polarization: (-0.214952,-0.551439,0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655597,0.530263,0.537599) + Old Polarization: (-0.214952,-0.551439,0.806046) + New Momentum Direction: (0.655597,0.530263,-0.537599) + New Polarization: (0.214952,0.551439,0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655597,0.530263,-0.537599) + Old Polarization: (0.214952,0.551439,0.806046) + New Momentum Direction: (0.655597,-0.530263,-0.537599) + New Polarization: (-0.214952,0.551439,-0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655597,-0.530263,-0.537599) + Old Polarization: (-0.214952,0.551439,-0.806046) + New Momentum Direction: (-0.655597,-0.530263,-0.537599) + New Polarization: (-0.214952,-0.551439,0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655597,-0.530263,-0.537599) + Old Polarization: (-0.214952,-0.551439,0.806046) + New Momentum Direction: (-0.655597,-0.530263,0.537599) + New Polarization: (0.214952,0.551439,0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655597,-0.530263,0.537599) + Old Polarization: (0.214952,0.551439,0.806046) + New Momentum Direction: (-0.655597,0.530263,0.537599) + New Polarization: (-0.214952,0.551439,-0.806046) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655597,0.530263,0.537599) + Old Polarization: (-0.214952,0.551439,-0.806046) + New Momentum Direction: (0.655597,0.530263,0.537599) + New Polarization: (-0.214952,-0.551439,0.806046) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 879, parentID 1) is processed with stopping code 2 +### pop requested out of 183 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.120876,-0.980762,0.15328) + Old Polarization: (-0.603607,0.195205,0.773016) + New Momentum Direction: (-0.163337,-0.964583,0.207123) + New Polarization: (0.600966,-0.263775,-0.754494) + *** FresnelRefraction *** +Track (trackID 878, parentID 1) is processed with stopping code 2 +### pop requested out of 182 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0270441,-0.0928942,0.995309) + Old Polarization: (0.816407,-0.572505,-0.0756161) + New Momentum Direction: (0.036635,-0.125838,0.991374) + New Polarization: (0.382121,0.918415,0.102456) + *** FresnelRefraction *** +Track (trackID 877, parentID 1) is processed with stopping code 2 +### pop requested out of 181 stacked tracks. + +** Photon absorbed! ** +Track (trackID 876, parentID 1) is processed with stopping code 2 +### pop requested out of 180 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.191059,-0.801618,0.566484) + Old Polarization: (-0.576646,-0.558692,-0.596106) + New Momentum Direction: (0.258085,-0.589777,0.765216) + New Polarization: (-0.501159,-0.758878,-0.415865) + *** FresnelRefraction *** +Track (trackID 875, parentID 1) is processed with stopping code 2 +### pop requested out of 179 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.596525,0.501744,-0.626428) + Old Polarization: (0.79741,-0.459086,0.391635) + New Momentum Direction: (0.596525,0.501744,0.626428) + New Polarization: (-0.79741,0.459086,0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.596525,0.501744,0.626428) + Old Polarization: (-0.79741,0.459086,0.391635) + New Momentum Direction: (-0.596525,0.501744,0.626428) + New Polarization: (-0.79741,-0.459086,-0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.596525,0.501744,0.626428) + Old Polarization: (-0.79741,-0.459086,-0.391635) + New Momentum Direction: (-0.596525,-0.501744,0.626428) + New Polarization: (0.79741,-0.459086,0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.596525,-0.501744,0.626428) + Old Polarization: (0.79741,-0.459086,0.391635) + New Momentum Direction: (0.596525,-0.501744,0.626428) + New Polarization: (0.79741,0.459086,-0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.596525,-0.501744,0.626428) + Old Polarization: (0.79741,0.459086,-0.391635) + New Momentum Direction: (-0.596525,-0.501744,0.626428) + New Polarization: (0.79741,-0.459086,0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.596525,-0.501744,0.626428) + Old Polarization: (0.79741,-0.459086,0.391635) + New Momentum Direction: (-0.596525,-0.501744,-0.626428) + New Polarization: (-0.79741,0.459086,0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.596525,-0.501744,-0.626428) + Old Polarization: (-0.79741,0.459086,0.391635) + New Momentum Direction: (-0.596525,0.501744,-0.626428) + New Polarization: (0.79741,0.459086,-0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.596525,0.501744,-0.626428) + Old Polarization: (0.79741,0.459086,-0.391635) + New Momentum Direction: (-0.596525,0.501744,0.626428) + New Polarization: (-0.79741,-0.459086,-0.391635) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.596525,0.501744,0.626428) + Old Polarization: (-0.79741,-0.459086,-0.391635) + New Momentum Direction: (0.596525,0.501744,0.626428) + New Polarization: (-0.79741,0.459086,0.391635) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.596525,0.501744,0.626428) +Old Polarization: (-0.79741,0.459086,0.391635) +New Polarization: (-0.999124,-0.0122238,-0.040031) +Polarization Change: (-0.999124,-0.0122238,-0.040031) +New Momentum Direction: (-0.0358981,0.742052,0.669381) +Momentum Change: (-0.0358981,0.742052,0.669381) + Photon at Boundary! + Old Momentum Direction: (-0.0358981,0.742052,0.669381) + Old Polarization: (-0.999124,-0.0122238,-0.040031) + New Momentum Direction: (-0.0487159,0.415279,0.908389) + New Polarization: (-0.997926,0.0180703,-0.0617787) + *** FresnelRefraction *** +Track (trackID 874, parentID 1) is processed with stopping code 2 +### pop requested out of 178 stacked tracks. + +** Photon absorbed! ** +Track (trackID 873, parentID 1) is processed with stopping code 2 +### pop requested out of 177 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.368835,-0.363387,-0.855518) + Old Polarization: (0.134584,-0.889834,0.435985) + New Momentum Direction: (0.501216,-0.493813,-0.710585) + New Polarization: (-0.800696,0.0467227,-0.597246) + *** FresnelRefraction *** +Track (trackID 872, parentID 1) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.484712,0.764032,0.425804) + Old Polarization: (0.339609,0.284229,-0.896593) + New Momentum Direction: (0.653682,0.492901,0.574238) + New Polarization: (0.413111,0.403352,-0.816484) + *** FresnelRefraction *** +Track (trackID 871, parentID 1) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.64336,-0.052775,0.763743) + Old Polarization: (-0.687235,0.399778,0.606536) + New Momentum Direction: (0.866504,-0.0710796,0.494083) + New Polarization: (-0.439504,0.360635,0.822666) + *** FresnelRefraction *** +Track (trackID 870, parentID 1) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.223854,0.867965,0.443313) + Old Polarization: (-0.940895,0.0738331,0.330554) + New Momentum Direction: (0.303748,0.738848,0.601532) + New Polarization: (-0.932948,0.102596,0.345083) + *** FresnelRefraction *** +Track (trackID 869, parentID 1) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + +** Photon absorbed! ** +Track (trackID 868, parentID 1) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. + +** Photon absorbed! ** +Track (trackID 867, parentID 1) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + +** Photon absorbed! ** +Track (trackID 866, parentID 1) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.771704,-0.184708,0.608569) + Old Polarization: (0.416271,0.870144,-0.263758) + New Momentum Direction: (0.514439,-0.249051,0.820564) + New Polarization: (0.580147,0.805749,-0.119159) + *** FresnelRefraction *** +Track (trackID 865, parentID 1) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.870417,-0.184121,0.456589) + Old Polarization: (-0.470832,-0.582304,0.662752) + New Momentum Direction: (0.743368,-0.250156,0.620344) + New Polarization: (0.640975,0.00131245,-0.767561) + *** FresnelRefraction *** +Track (trackID 864, parentID 1) is processed with stopping code 2 +### pop requested out of 168 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.900173,-0.258103,0.350815) + Old Polarization: (-0.088724,-0.897267,-0.43248) + New Momentum Direction: (0.808684,-0.348602,0.473822) + New Polarization: (0.121681,-0.688931,-0.71454) + *** FresnelRefraction *** +Track (trackID 863, parentID 1) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. + +** Photon absorbed! ** +Track (trackID 862, parentID 1) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.592581,-0.777674,0.209932) + Old Polarization: (0.805425,-0.56824,0.168504) + New Momentum Direction: (-0.80171,-0.525922,0.28402) + New Polarization: (0.588817,-0.776594,0.224043) + *** FresnelRefraction *** +Track (trackID 861, parentID 1) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.188578,0.981117,-0.0429921) + Old Polarization: (0.947802,-0.170364,0.269531) + New Momentum Direction: (0.254044,0.965457,-0.057917) + New Polarization: (-0.72451,0.229629,0.649889) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.254044,0.965457,-0.057917) + Old Polarization: (-0.72451,0.229629,0.649889) + New Momentum Direction: (0.696093,0.716664,-0.0429921) + New Polarization: (0.568717,-0.513863,0.642266) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.696093,0.716664,-0.0429921) + Old Polarization: (0.568717,-0.513863,0.642266) + New Momentum Direction: (0.937745,0.342463,-0.057917) + New Polarization: (-0.224202,0.724206,0.652119) + *** FresnelRefraction *** +Track (trackID 860, parentID 1) is processed with stopping code 2 +### pop requested out of 164 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.252437,0.769534,-0.586595) + Old Polarization: (0.583359,-0.604702,-0.542243) + New Momentum Direction: (0.340945,0.506038,-0.792264) + New Polarization: (0.0887836,0.821659,0.563022) + *** FresnelRefraction *** +Track (trackID 859, parentID 1) is processed with stopping code 2 +### pop requested out of 163 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0288609,0.730635,0.682158) + Old Polarization: (0.74045,-0.474072,0.476434) + New Momentum Direction: (0.0288609,-0.730635,0.682158) + New Polarization: (0.945059,0.242256,0.219488) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0288609,-0.730635,0.682158) + Old Polarization: (0.945059,0.242256,0.219488) + New Momentum Direction: (0.0288609,-0.730635,-0.682158) + New Polarization: (0.976362,-0.125638,0.175874) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0288609,-0.730635,-0.682158) + Old Polarization: (0.976362,-0.125638,0.175874) + New Momentum Direction: (0.0391535,-0.376874,-0.925437) + New Polarization: (0.975297,-0.187084,0.117451) + *** FresnelRefraction *** +Track (trackID 858, parentID 1) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.591544,-0.590622,0.548855) + Old Polarization: (0.776538,-0.234182,0.584934) + New Momentum Direction: (-0.591544,0.590622,0.548855) + New Polarization: (-0.776538,-0.234182,-0.584934) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.591544,0.590622,0.548855) + Old Polarization: (-0.776538,-0.234182,-0.584934) + New Momentum Direction: (0.591544,0.590622,0.548855) + New Polarization: (-0.776538,0.234182,0.584934) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.591544,0.590622,0.548855) + Old Polarization: (-0.776538,0.234182,0.584934) + New Momentum Direction: (0.591544,0.590622,-0.548855) + New Polarization: (0.776538,-0.234182,0.584934) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.591544,0.590622,-0.548855) + Old Polarization: (0.776538,-0.234182,0.584934) + New Momentum Direction: (-0.591544,0.590622,-0.548855) + New Polarization: (0.776538,0.234182,-0.584934) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.591544,0.590622,-0.548855) + Old Polarization: (0.776538,0.234182,-0.584934) + New Momentum Direction: (-0.591544,-0.590622,-0.548855) + New Polarization: (-0.776538,0.234182,0.584934) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 857, parentID 1) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0233214,-0.128456,0.991441) + Old Polarization: (0.650081,0.751467,0.112655) + New Momentum Direction: (-0.0315796,-0.173942,0.984249) + New Polarization: (0.64861,0.745669,0.152589) + *** FresnelRefraction *** +Track (trackID 856, parentID 1) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. + +** Photon absorbed! ** +Track (trackID 855, parentID 1) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 54 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 15 +Track (trackID 854, parentID 1) is processed with stopping code 4 +### pop requested out of 228 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.54273,0.203642,0.814846) + Old Polarization: (-0.576321,-0.796026,-0.184922) + New Momentum Direction: (-0.732233,0.274746,0.623177) + New Polarization: (-0.138714,-0.956002,0.258493) + *** FresnelRefraction *** +Track (trackID 974, parentID 854) is processed with stopping code 2 +### pop requested out of 227 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.180274,-0.378316,-0.907953) + Old Polarization: (-0.96505,0.110473,-0.237642) + New Momentum Direction: (0.24442,-0.512929,-0.822899) + New Polarization: (-0.942748,0.07288,-0.325445) + *** FresnelRefraction *** +Track (trackID 973, parentID 854) is processed with stopping code 2 +### pop requested out of 226 stacked tracks. + +** Photon absorbed! ** +Track (trackID 972, parentID 854) is processed with stopping code 2 +### pop requested out of 225 stacked tracks. + +** Photon absorbed! ** +Track (trackID 971, parentID 854) is processed with stopping code 2 +### pop requested out of 224 stacked tracks. + +** Photon absorbed! ** +Track (trackID 970, parentID 854) is processed with stopping code 2 +### pop requested out of 223 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.414505,-0.89861,0.143826) + Old Polarization: (-0.79863,0.283413,-0.530912) + New Momentum Direction: (-0.414505,0.89861,0.143826) + New Polarization: (0.00866351,0.161932,-0.986764) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 969, parentID 854) is processed with stopping code 2 +### pop requested out of 222 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.63669,-0.418517,0.647665) + Old Polarization: (-0.54065,0.356606,0.761925) + New Momentum Direction: (0.63669,-0.418517,-0.647665) + New Polarization: (0.54065,-0.356606,0.761925) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.63669,-0.418517,-0.647665) + Old Polarization: (0.54065,-0.356606,0.761925) + New Momentum Direction: (-0.63669,-0.418517,-0.647665) + New Polarization: (0.54065,0.356606,-0.761925) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 968, parentID 854) is processed with stopping code 2 +### pop requested out of 221 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.639473,0.0782005,-0.764826) + Old Polarization: (0.702347,0.345204,0.62253) + New Momentum Direction: (0.869216,0.106296,-0.482871) + New Polarization: (-0.494427,0.182636,-0.849815) + *** FresnelRefraction *** +Track (trackID 967, parentID 854) is processed with stopping code 2 +### pop requested out of 220 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.185889,0.83978,0.510112) + Old Polarization: (-0.61645,0.503951,-0.604998) + New Momentum Direction: (0.251709,0.677885,0.690735) + New Polarization: (-0.556358,0.685348,-0.469856) + *** FresnelRefraction *** +Track (trackID 966, parentID 854) is processed with stopping code 2 +### pop requested out of 219 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.74713,0.481192,-0.458531) + Old Polarization: (0.649862,0.383984,-0.655924) + New Momentum Direction: (-0.435589,0.651659,-0.62097) + New Polarization: (-0.882941,-0.44355,0.153881) + *** FresnelRefraction *** +Track (trackID 965, parentID 854) is processed with stopping code 2 +### pop requested out of 218 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.837535,0.446454,-0.314984) + Old Polarization: (0.455357,-0.251734,0.853979) + New Momentum Direction: (0.671093,0.60578,-0.427393) + New Polarization: (0.624053,-0.150353,0.76678) + *** FresnelRefraction *** +Track (trackID 964, parentID 854) is processed with stopping code 2 +### pop requested out of 217 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.56071,-0.823363,0.0876251) + Old Polarization: (0.810055,0.567389,0.14792) + New Momentum Direction: (0.757237,-0.64233,0.118338) + New Polarization: (-0.637633,-0.76627,-0.0790893) + *** FresnelRefraction *** +Track (trackID 963, parentID 854) is processed with stopping code 2 +### pop requested out of 216 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.748426,0.479871,-0.457802) + Old Polarization: (0.077402,0.748755,0.658312) + New Momentum Direction: (-0.435488,0.651335,-0.62138) + New Polarization: (-0.113694,0.644949,0.755721) + *** FresnelRefraction *** +Track (trackID 962, parentID 854) is processed with stopping code 2 +### pop requested out of 215 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0648636,-0.945283,-0.319738) + Old Polarization: (-0.669128,0.278906,-0.688825) + New Momentum Direction: (-0.0877465,-0.897337,-0.432536) + New Polarization: (-0.352733,-0.378088,0.855937) + *** FresnelRefraction *** +Track (trackID 961, parentID 854) is processed with stopping code 2 +### pop requested out of 214 stacked tracks. + +** Photon absorbed! ** +Track (trackID 960, parentID 854) is processed with stopping code 2 +### pop requested out of 213 stacked tracks. + +** Photon absorbed! ** +Track (trackID 959, parentID 854) is processed with stopping code 2 +### pop requested out of 212 stacked tracks. + +** Photon absorbed! ** +Track (trackID 958, parentID 854) is processed with stopping code 2 +### pop requested out of 211 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.846504,-0.460897,0.266467) + Old Polarization: (-0.089336,-0.616394,-0.782353) + New Momentum Direction: (0.692038,-0.624934,0.361304) + New Polarization: (0.124753,-0.389447,-0.912561) + *** FresnelRefraction *** +Track (trackID 957, parentID 854) is processed with stopping code 2 +### pop requested out of 210 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.950553,0.258979,0.171403) + Old Polarization: (0.0549501,0.40295,-0.913571) + New Momentum Direction: (0.906553,0.351983,0.232957) + New Polarization: (0.0752073,0.408381,-0.909708) + *** FresnelRefraction *** +Track (trackID 956, parentID 854) is processed with stopping code 2 +### pop requested out of 209 stacked tracks. + +** Photon absorbed! ** +Track (trackID 955, parentID 854) is processed with stopping code 2 +### pop requested out of 208 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.350626,0.382368,0.854901) + Old Polarization: (-0.801932,0.594063,0.0631974) + New Momentum Direction: (0.471884,0.514603,0.715898) + New Polarization: (-0.791731,0.604604,0.0872668) + *** FresnelRefraction *** +Track (trackID 954, parentID 854) is processed with stopping code 2 +### pop requested out of 207 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.57583,-0.585082,0.571051) +Old Polarization: (-0.474569,-0.807958,-0.349269) +New Polarization: (0.0785626,-0.790299,-0.607665) +Polarization Change: (0.0785626,-0.790299,-0.607665) +New Momentum Direction: (-0.925874,-0.283815,0.249413) +Momentum Change: (-0.925874,-0.283815,0.249413) + Photon at Boundary! + Old Momentum Direction: (-0.925874,-0.283815,0.249413) + Old Polarization: (0.0785626,-0.790299,-0.607665) + New Momentum Direction: (-0.925874,0.283815,0.249413) + New Polarization: (-0.0785626,-0.790299,0.607665) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 953, parentID 854) is processed with stopping code 2 +### pop requested out of 206 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.220555,-0.0989445,0.970343) +Old Polarization: (-0.972298,-0.101254,0.210675) +New Polarization: (0.804117,-0.341089,-0.486882) +Polarization Change: (0.804117,-0.341089,-0.486882) +New Momentum Direction: (0.548212,0.742228,0.385435) +Momentum Change: (0.548212,0.742228,0.385435) + Photon at Boundary! + Old Momentum Direction: (0.548212,0.742228,0.385435) + Old Polarization: (0.804117,-0.341089,-0.486882) + New Momentum Direction: (0.745969,0.410436,0.524473) + New Polarization: (0.301047,0.494653,-0.815285) + *** FresnelRefraction *** +Track (trackID 952, parentID 854) is processed with stopping code 2 +### pop requested out of 205 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.658573,0.553919,0.509368) + Old Polarization: (-0.356068,0.825694,-0.437544) + New Momentum Direction: (-0.658573,0.553919,0.509368) + New Polarization: (-0.356068,-0.825694,0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658573,0.553919,0.509368) + Old Polarization: (-0.356068,-0.825694,0.437544) + New Momentum Direction: (-0.658573,-0.553919,0.509368) + New Polarization: (0.356068,-0.825694,-0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658573,-0.553919,0.509368) + Old Polarization: (0.356068,-0.825694,-0.437544) + New Momentum Direction: (-0.658573,-0.553919,-0.509368) + New Polarization: (-0.356068,0.825694,-0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658573,-0.553919,-0.509368) + Old Polarization: (-0.356068,0.825694,-0.437544) + New Momentum Direction: (0.658573,-0.553919,-0.509368) + New Polarization: (-0.356068,-0.825694,0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658573,-0.553919,-0.509368) + Old Polarization: (-0.356068,-0.825694,0.437544) + New Momentum Direction: (0.658573,0.553919,-0.509368) + New Polarization: (0.356068,-0.825694,-0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658573,0.553919,-0.509368) + Old Polarization: (0.356068,-0.825694,-0.437544) + New Momentum Direction: (0.658573,0.553919,0.509368) + New Polarization: (-0.356068,0.825694,-0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.658573,0.553919,0.509368) + Old Polarization: (-0.356068,0.825694,-0.437544) + New Momentum Direction: (-0.658573,0.553919,0.509368) + New Polarization: (-0.356068,-0.825694,0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658573,0.553919,0.509368) + Old Polarization: (-0.356068,-0.825694,0.437544) + New Momentum Direction: (-0.658573,-0.553919,0.509368) + New Polarization: (0.356068,-0.825694,-0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658573,-0.553919,0.509368) + Old Polarization: (0.356068,-0.825694,-0.437544) + New Momentum Direction: (-0.658573,-0.553919,-0.509368) + New Polarization: (-0.356068,0.825694,-0.437544) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.658573,-0.553919,-0.509368) + Old Polarization: (-0.356068,0.825694,-0.437544) + New Momentum Direction: (0.658573,-0.553919,-0.509368) + New Polarization: (-0.356068,-0.825694,0.437544) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 951, parentID 854) is processed with stopping code 2 +### pop requested out of 204 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.972687,-0.190186,0.133078) + Old Polarization: (0.0874331,-0.230894,-0.969043) + New Momentum Direction: (0.949019,-0.258272,0.180719) + New Polarization: (0.119115,-0.236975,-0.964186) + *** FresnelRefraction *** +Track (trackID 950, parentID 854) is processed with stopping code 2 +### pop requested out of 203 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.541339,-0.582917,0.605937) + Old Polarization: (-0.523579,-0.797589,-0.299527) + New Momentum Direction: (0.541339,-0.582917,-0.605937) + New Polarization: (0.523579,0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,-0.582917,-0.605937) + Old Polarization: (0.523579,0.797589,-0.299527) + New Momentum Direction: (0.541339,0.582917,-0.605937) + New Polarization: (-0.523579,0.797589,0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,0.582917,-0.605937) + Old Polarization: (-0.523579,0.797589,0.299527) + New Momentum Direction: (-0.541339,0.582917,-0.605937) + New Polarization: (-0.523579,-0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,0.582917,-0.605937) + Old Polarization: (-0.523579,-0.797589,-0.299527) + New Momentum Direction: (-0.541339,0.582917,0.605937) + New Polarization: (0.523579,0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,0.582917,0.605937) + Old Polarization: (0.523579,0.797589,-0.299527) + New Momentum Direction: (-0.541339,-0.582917,0.605937) + New Polarization: (-0.523579,0.797589,0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,-0.582917,0.605937) + Old Polarization: (-0.523579,0.797589,0.299527) + New Momentum Direction: (0.541339,-0.582917,0.605937) + New Polarization: (-0.523579,-0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,-0.582917,0.605937) + Old Polarization: (-0.523579,-0.797589,-0.299527) + New Momentum Direction: (0.541339,-0.582917,-0.605937) + New Polarization: (0.523579,0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,-0.582917,-0.605937) + Old Polarization: (0.523579,0.797589,-0.299527) + New Momentum Direction: (0.541339,0.582917,-0.605937) + New Polarization: (-0.523579,0.797589,0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,0.582917,-0.605937) + Old Polarization: (-0.523579,0.797589,0.299527) + New Momentum Direction: (-0.541339,0.582917,-0.605937) + New Polarization: (-0.523579,-0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,0.582917,-0.605937) + Old Polarization: (-0.523579,-0.797589,-0.299527) + New Momentum Direction: (-0.541339,0.582917,0.605937) + New Polarization: (0.523579,0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,0.582917,0.605937) + Old Polarization: (0.523579,0.797589,-0.299527) + New Momentum Direction: (-0.541339,-0.582917,0.605937) + New Polarization: (-0.523579,0.797589,0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,-0.582917,0.605937) + Old Polarization: (-0.523579,0.797589,0.299527) + New Momentum Direction: (0.541339,-0.582917,0.605937) + New Polarization: (-0.523579,-0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,-0.582917,0.605937) + Old Polarization: (-0.523579,-0.797589,-0.299527) + New Momentum Direction: (0.541339,-0.582917,-0.605937) + New Polarization: (0.523579,0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,-0.582917,-0.605937) + Old Polarization: (0.523579,0.797589,-0.299527) + New Momentum Direction: (0.541339,0.582917,-0.605937) + New Polarization: (-0.523579,0.797589,0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.541339,0.582917,-0.605937) + Old Polarization: (-0.523579,0.797589,0.299527) + New Momentum Direction: (-0.541339,0.582917,-0.605937) + New Polarization: (-0.523579,-0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,0.582917,-0.605937) + Old Polarization: (-0.523579,-0.797589,-0.299527) + New Momentum Direction: (-0.541339,0.582917,0.605937) + New Polarization: (0.523579,0.797589,-0.299527) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.541339,0.582917,0.605937) + Old Polarization: (0.523579,0.797589,-0.299527) + New Momentum Direction: (-0.541339,-0.582917,0.605937) + New Polarization: (-0.523579,0.797589,0.299527) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 949, parentID 854) is processed with stopping code 2 +### pop requested out of 202 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.264001,-0.276529,0.924032) + Old Polarization: (-0.920676,-0.357817,0.155961) + New Momentum Direction: (0.356939,-0.373877,0.856043) + New Polarization: (-0.902561,-0.374253,0.21288) + *** FresnelRefraction *** +Track (trackID 948, parentID 854) is processed with stopping code 2 +### pop requested out of 201 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.413528,0.472522,0.778279) + Old Polarization: (-0.703806,0.708181,-0.0560053) + New Momentum Direction: (0.560907,0.640926,0.524021) + New Polarization: (-0.781785,0.618324,0.0805479) + *** FresnelRefraction *** +Track (trackID 947, parentID 854) is processed with stopping code 2 +### pop requested out of 200 stacked tracks. + +** Photon absorbed! ** +Track (trackID 946, parentID 854) is processed with stopping code 2 +### pop requested out of 199 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.992184,0.0400602,0.118177) + Old Polarization: (0.113986,0.0943659,-0.98899) + New Momentum Direction: (0.98552,0.054435,0.160583) + New Polarization: (0.154915,0.0959416,-0.983258) + *** FresnelRefraction *** +Track (trackID 945, parentID 854) is processed with stopping code 2 +### pop requested out of 198 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.94158,-0.290752,0.169969) + Old Polarization: (0.050009,-0.378379,-0.924299) + New Momentum Direction: (0.89035,-0.393045,0.229767) + New Polarization: (0.0681585,-0.383916,-0.920849) + *** FresnelRefraction *** +Track (trackID 944, parentID 854) is processed with stopping code 2 +### pop requested out of 197 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.931191,-0.3127,0.187356) + Old Polarization: (0.0427137,-0.416825,-0.907982) + New Momentum Direction: (0.871629,-0.420471,0.251927) + New Polarization: (0.0579875,-0.4219,-0.904786) + *** FresnelRefraction *** +Track (trackID 943, parentID 854) is processed with stopping code 2 +### pop requested out of 196 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.360103,-0.469448,0.806191) + Old Polarization: (-0.779002,-0.62679,-0.0170231) + New Momentum Direction: (0.488709,-0.637105,0.596038) + New Polarization: (-0.804011,-0.594123,0.0241753) + *** FresnelRefraction *** +Track (trackID 942, parentID 854) is processed with stopping code 2 +### pop requested out of 195 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.444651,-0.537175,0.716749) + Old Polarization: (-0.663261,-0.735257,-0.139577) + New Momentum Direction: (0.444651,-0.537175,-0.716749) + New Polarization: (-0.72412,-0.686573,0.0653358) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.444651,-0.537175,-0.716749) + Old Polarization: (-0.72412,-0.686573,0.0653358) + New Momentum Direction: (0.444651,0.537175,-0.716749) + New Polarization: (0.72412,-0.686573,-0.0653358) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.444651,0.537175,-0.716749) + Old Polarization: (0.72412,-0.686573,-0.0653358) + New Momentum Direction: (-0.444651,0.537175,-0.716749) + New Polarization: (0.72412,0.686573,0.0653358) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.444651,0.537175,-0.716749) + Old Polarization: (0.72412,0.686573,0.0653358) + New Momentum Direction: (-0.600097,0.724967,-0.338094) + New Polarization: (0.788594,0.60705,-0.0980246) + *** FresnelRefraction *** +Track (trackID 941, parentID 854) is processed with stopping code 2 +### pop requested out of 194 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.870669,-0.430515,0.237891) + Old Polarization: (-0.0574878,-0.5694,-0.820048) + New Momentum Direction: (0.743803,-0.585024,0.323269) + New Polarization: (0.0799835,-0.402268,-0.912022) + *** FresnelRefraction *** +Track (trackID 940, parentID 854) is processed with stopping code 2 +### pop requested out of 193 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.260171,0.230784,0.937577) + Old Polarization: (-0.917244,0.362396,0.165325) + New Momentum Direction: (0.353876,0.313905,0.881042) + New Polarization: (-0.898184,0.376766,0.226524) + *** FresnelRefraction *** +Track (trackID 939, parentID 854) is processed with stopping code 2 +### pop requested out of 192 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.661025,-0.584951,0.469977) + Old Polarization: (-0.352463,-0.794986,-0.493728) + New Momentum Direction: (-0.661025,-0.584951,0.469977) + New Polarization: (-0.352463,0.794986,0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.661025,-0.584951,0.469977) + Old Polarization: (-0.352463,0.794986,0.493728) + New Momentum Direction: (-0.661025,0.584951,0.469977) + New Polarization: (0.352463,0.794986,-0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.661025,0.584951,0.469977) + Old Polarization: (0.352463,0.794986,-0.493728) + New Momentum Direction: (-0.661025,0.584951,-0.469977) + New Polarization: (-0.352463,-0.794986,-0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.661025,0.584951,-0.469977) + Old Polarization: (-0.352463,-0.794986,-0.493728) + New Momentum Direction: (0.661025,0.584951,-0.469977) + New Polarization: (-0.352463,0.794986,0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.661025,0.584951,-0.469977) + Old Polarization: (-0.352463,0.794986,0.493728) + New Momentum Direction: (0.661025,-0.584951,-0.469977) + New Polarization: (0.352463,0.794986,-0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.661025,-0.584951,-0.469977) + Old Polarization: (0.352463,0.794986,-0.493728) + New Momentum Direction: (0.661025,-0.584951,0.469977) + New Polarization: (-0.352463,-0.794986,-0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.661025,-0.584951,0.469977) + Old Polarization: (-0.352463,-0.794986,-0.493728) + New Momentum Direction: (-0.661025,-0.584951,0.469977) + New Polarization: (-0.352463,0.794986,0.493728) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.661025,-0.584951,0.469977) + Old Polarization: (-0.352463,0.794986,0.493728) + New Momentum Direction: (-0.661025,0.584951,0.469977) + New Polarization: (0.352463,0.794986,-0.493728) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 938, parentID 854) is processed with stopping code 2 +### pop requested out of 191 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.829199,0.462098,0.314475) + Old Polarization: (-0.115047,0.691664,-0.712997) + New Momentum Direction: (0.651319,0.627318,0.426914) + New Polarization: (0.161719,0.43493,-0.885823) + *** FresnelRefraction *** +Track (trackID 937, parentID 854) is processed with stopping code 2 +### pop requested out of 190 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.462951,-0.553753,0.692123) + Old Polarization: (-0.634954,-0.752011,-0.176957) + New Momentum Direction: (0.462951,-0.553753,-0.692123) + New Polarization: (-0.684445,-0.71948,0.117827) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.462951,-0.553753,-0.692123) + Old Polarization: (-0.684445,-0.71948,0.117827) + New Momentum Direction: (0.462951,0.553753,-0.692123) + New Polarization: (0.684445,-0.71948,-0.117827) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.462951,0.553753,-0.692123) + Old Polarization: (0.684445,-0.71948,-0.117827) + New Momentum Direction: (-0.462951,0.553753,-0.692123) + New Polarization: (0.684445,0.71948,0.117827) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.462951,0.553753,-0.692123) + Old Polarization: (0.684445,0.71948,0.117827) + New Momentum Direction: (-0.626693,0.749613,-0.212924) + New Polarization: (0.779172,0.598531,-0.186148) + *** FresnelRefraction *** +Track (trackID 936, parentID 854) is processed with stopping code 2 +### pop requested out of 189 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.687499,-0.573329,0.445689) + Old Polarization: (-0.313433,-0.787904,-0.530064) + New Momentum Direction: (0.199864,-0.773579,0.601357) + New Polarization: (0.481095,-0.457188,-0.748015) + *** FresnelRefraction *** +Track (trackID 935, parentID 854) is processed with stopping code 2 +### pop requested out of 188 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.91043,0.346056,0.226635) + Old Polarization: (0.00661204,0.535628,-0.844428) + New Momentum Direction: (0.829388,0.467365,0.306082) + New Polarization: (0.00905478,0.536555,-0.843817) + *** FresnelRefraction *** +Track (trackID 934, parentID 854) is processed with stopping code 2 +### pop requested out of 187 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.232729,0.119175,0.965212) + Old Polarization: (-0.956824,0.205768,0.2053) + New Momentum Direction: (0.316352,0.161996,0.934708) + New Polarization: (-0.935876,0.214396,0.27959) + *** FresnelRefraction *** +Track (trackID 933, parentID 854) is processed with stopping code 2 +### pop requested out of 186 stacked tracks. + +** Photon absorbed! ** +Track (trackID 932, parentID 854) is processed with stopping code 2 +### pop requested out of 185 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.493926,0.52854,0.690422) + Old Polarization: (-0.589675,0.787157,-0.180741) + New Momentum Direction: (0.493926,0.52854,-0.690422) + New Polarization: (-0.637344,0.760207,0.126008) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 931, parentID 854) is processed with stopping code 2 +### pop requested out of 184 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.723734,0.53273,0.438644) + Old Polarization: (-0.262414,0.80035,-0.539053) + New Momentum Direction: (0.358954,0.720535,0.59328) + New Polarization: (0.38646,0.463857,-0.797173) + *** FresnelRefraction *** +Track (trackID 930, parentID 854) is processed with stopping code 2 +### pop requested out of 183 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.925093,-0.331214,0.185743) + Old Polarization: (0.0249886,-0.434974,-0.900096) + New Momentum Direction: (0.857873,-0.448196,0.251345) + New Polarization: (0.0341974,-0.43825,-0.898203) + *** FresnelRefraction *** +Track (trackID 929, parentID 854) is processed with stopping code 2 +### pop requested out of 182 stacked tracks. + +** Photon absorbed! ** +Track (trackID 928, parentID 854) is processed with stopping code 2 +### pop requested out of 181 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.500968,0.525997,0.687283) + Old Polarization: (-0.581511,0.792729,-0.182828) + New Momentum Direction: (0.677003,0.710827,0.190764) + New Polarization: (-0.730764,0.618429,0.289015) + *** FresnelRefraction *** +Track (trackID 927, parentID 854) is processed with stopping code 2 +### pop requested out of 180 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.867726,-0.434012,0.24225) + Old Polarization: (-0.0605553,-0.576062,-0.81516) + New Momentum Direction: (0.738032,-0.589198,0.328869) + New Polarization: (0.0842151,-0.403141,-0.911255) + *** FresnelRefraction *** +Track (trackID 926, parentID 854) is processed with stopping code 2 +### pop requested out of 179 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.495483,-0.573715,0.652188) + Old Polarization: (-0.587313,-0.774467,-0.235085) + New Momentum Direction: (0.495483,-0.573715,-0.652188) + New Polarization: (0.587313,0.774467,-0.235085) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.495483,-0.573715,-0.652188) + Old Polarization: (0.587313,0.774467,-0.235085) + New Momentum Direction: (0.495483,0.573715,-0.652188) + New Polarization: (-0.587313,0.774467,0.235085) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.495483,0.573715,-0.652188) + Old Polarization: (-0.587313,0.774467,0.235085) + New Momentum Direction: (-0.495483,0.573715,-0.652188) + New Polarization: (-0.587313,-0.774467,-0.235085) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.495483,0.573715,-0.652188) + Old Polarization: (-0.587313,-0.774467,-0.235085) + New Momentum Direction: (-0.495483,0.573715,0.652188) + New Polarization: (0.587313,0.774467,-0.235085) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.495483,0.573715,0.652188) + Old Polarization: (0.587313,0.774467,-0.235085) + New Momentum Direction: (-0.495483,-0.573715,0.652188) + New Polarization: (-0.587313,0.774467,0.235085) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.495483,-0.573715,0.652188) + Old Polarization: (-0.587313,0.774467,0.235085) + New Momentum Direction: (0.495483,-0.573715,0.652188) + New Polarization: (-0.587313,-0.774467,-0.235085) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.495483,-0.573715,0.652188) + Old Polarization: (-0.587313,-0.774467,-0.235085) + New Momentum Direction: (0.495483,-0.573715,-0.652188) + New Polarization: (0.587313,0.774467,-0.235085) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.495483,-0.573715,-0.652188) +Old Polarization: (0.587313,0.774467,-0.235085) +New Polarization: (-0.852679,-0.386316,0.351707) +Polarization Change: (-0.852679,-0.386316,0.351707) +New Momentum Direction: (-0.351719,0.922275,0.160319) +Momentum Change: (-0.351719,0.922275,0.160319) + Photon at Boundary! + Old Momentum Direction: (-0.351719,0.922275,0.160319) + Old Polarization: (-0.852679,-0.386316,0.351707) + New Momentum Direction: (-0.351719,0.922275,-0.160319) + New Polarization: (0.852679,0.386316,0.351707) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (-0.351719,0.922275,-0.160319) +Old Polarization: (0.852679,0.386316,0.351707) +New Polarization: (0.271946,0.861194,0.429407) +Polarization Change: (0.271946,0.861194,0.429407) +New Momentum Direction: (0.942113,-0.329209,0.0635975) +Momentum Change: (0.942113,-0.329209,0.0635975) + +** Photon absorbed! ** +Track (trackID 925, parentID 854) is processed with stopping code 2 +### pop requested out of 178 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.4339,-0.539541,0.721544) + Old Polarization: (-0.674353,-0.725582,-0.137038) + New Momentum Direction: (0.4339,-0.539541,-0.721544) + New Polarization: (-0.735099,-0.675052,0.0627241) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 924, parentID 854) is processed with stopping code 2 +### pop requested out of 177 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.609012,-0.595999,0.523345) + Old Polarization: (-0.426562,-0.802388,-0.417395) + New Momentum Direction: (-0.609012,-0.595999,0.523345) + New Polarization: (-0.426562,0.802388,0.417395) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.609012,-0.595999,0.523345) + Old Polarization: (-0.426562,0.802388,0.417395) + New Momentum Direction: (-0.609012,0.595999,0.523345) + New Polarization: (0.426562,0.802388,-0.417395) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.609012,0.595999,0.523345) + Old Polarization: (0.426562,0.802388,-0.417395) + New Momentum Direction: (-0.609012,0.595999,-0.523345) + New Polarization: (-0.426562,-0.802388,-0.417395) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 923, parentID 854) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.234271,0.0535243,0.970697) + Old Polarization: (-0.967007,0.11561,0.227006) + New Momentum Direction: (0.316027,0.0722031,0.945999) + New Polarization: (-0.944371,0.119634,0.306352) + *** FresnelRefraction *** +Track (trackID 922, parentID 854) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + +** Photon absorbed! ** +Track (trackID 921, parentID 854) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.273855,0.266347,0.924155) + Old Polarization: (-0.898725,0.41304,0.147278) + New Momentum Direction: (0.372294,0.362087,0.854571) + New Polarization: (-0.880748,0.428223,0.202257) + *** FresnelRefraction *** +Track (trackID 920, parentID 854) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + +** Photon absorbed! ** +Track (trackID 919, parentID 854) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.354876,0.404309,0.842969) + Old Polarization: (-0.788482,0.613915,0.0374888) + New Momentum Direction: (0.480693,0.547652,0.684844) + New Polarization: (-0.782087,0.620964,0.0523796) + *** FresnelRefraction *** +Track (trackID 918, parentID 854) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.976553,-0.169693,0.132469) + Old Polarization: (0.096792,-0.203532,-0.974272) + New Momentum Direction: (0.956534,-0.229873,0.179448) + New Polarization: (0.131445,-0.209436,-0.968947) + *** FresnelRefraction *** +Track (trackID 917, parentID 854) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.678644,-0.575845,0.4559) + Old Polarization: (-0.326087,-0.79242,-0.515497) + New Momentum Direction: (0.136488,-0.776694,0.614913) + New Polarization: (0.51223,-0.475971,-0.714893) + *** FresnelRefraction *** +Track (trackID 916, parentID 854) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.791168,-0.515712,0.328775) + Old Polarization: (-0.166268,-0.698686,-0.695839) + New Momentum Direction: (0.561392,-0.697807,0.444864) + New Polarization: (0.235813,-0.380391,-0.894257) + *** FresnelRefraction *** +Track (trackID 915, parentID 854) is processed with stopping code 2 +### pop requested out of 168 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.95939,0.229327,0.164253) + Old Polarization: (0.071887,0.364291,-0.928506) + New Momentum Direction: (0.924064,0.310753,0.222573) + New Polarization: (0.0979278,0.370388,-0.923701) + *** FresnelRefraction *** +Track (trackID 914, parentID 854) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.341417,-0.439807,0.830665) + Old Polarization: (-0.807999,-0.588834,0.0203346) + New Momentum Direction: (0.462323,-0.595556,0.656941) + New Polarization: (-0.804595,-0.593139,0.0285191) + *** FresnelRefraction *** +Track (trackID 913, parentID 854) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.582014,-0.593932,0.555432) + Old Polarization: (-0.464794,-0.803439,-0.372091) + New Momentum Direction: (0.582014,0.593932,0.555432) + New Polarization: (0.464794,-0.803439,0.372091) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.582014,0.593932,0.555432) + Old Polarization: (0.464794,-0.803439,0.372091) + New Momentum Direction: (-0.582014,0.593932,0.555432) + New Polarization: (0.464794,0.803439,-0.372091) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.582014,0.593932,0.555432) + Old Polarization: (0.464794,0.803439,-0.372091) + New Momentum Direction: (-0.582014,0.593932,-0.555432) + New Polarization: (-0.464794,-0.803439,-0.372091) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 912, parentID 854) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.381317,-0.495254,0.78059) + Old Polarization: (-0.748058,-0.661415,-0.0542172) + New Momentum Direction: (0.517989,-0.672764,0.528277) + New Polarization: (-0.818625,-0.568999,0.078059) + *** FresnelRefraction *** +Track (trackID 911, parentID 854) is processed with stopping code 2 +### pop requested out of 164 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.259102,0.223355,0.939669) + Old Polarization: (-0.920119,0.3529,0.169829) + New Momentum Direction: (0.352091,0.303515,0.885387) + New Polarization: (-0.90071,0.367061,0.232354) + *** FresnelRefraction *** +Track (trackID 910, parentID 854) is processed with stopping code 2 +### pop requested out of 163 stacked tracks. + +** Photon absorbed! ** +Track (trackID 909, parentID 854) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.550251,0.547589,0.630373) + Old Polarization: (-0.510239,0.818099,-0.265274) + New Momentum Direction: (0.550251,0.547589,-0.630373) + New Polarization: (0.510239,-0.818099,-0.265274) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.550251,0.547589,-0.630373) + Old Polarization: (0.510239,-0.818099,-0.265274) + New Momentum Direction: (-0.550251,0.547589,-0.630373) + New Polarization: (0.510239,0.818099,0.265274) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.550251,0.547589,-0.630373) + Old Polarization: (0.510239,0.818099,0.265274) + New Momentum Direction: (-0.550251,-0.547589,-0.630373) + New Polarization: (-0.510239,0.818099,-0.265274) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 908, parentID 854) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.22544,-0.111859,0.967814) + Old Polarization: (-0.969819,-0.120478,0.211982) + New Momentum Direction: (0.305928,-0.151796,0.939876) + New Polarization: (-0.948896,-0.128967,0.288035) + *** FresnelRefraction *** +Track (trackID 907, parentID 854) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.291131,-0.356845,0.88764) + Old Polarization: (-0.877805,-0.468564,0.0995351) + New Momentum Direction: (0.394772,-0.48388,0.781035) + New Polarization: (-0.864525,-0.483422,0.137474) + *** FresnelRefraction *** +Track (trackID 906, parentID 854) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 5 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 16 +Track (trackID 854, parentID 1) is processed with stopping code 2 +### pop requested out of 179 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.295384,-0.652609,0.697746) + Old Polarization: (-0.499449,-0.517106,-0.695092) + New Momentum Direction: (-0.40167,-0.887433,0.226106) + New Polarization: (-0.0987627,0.287436,0.952694) + *** FresnelRefraction *** +Track (trackID 995, parentID 854) is processed with stopping code 2 +### pop requested out of 178 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.638281,0.76624,-0.073982) + Old Polarization: (0.0276123,0.0732545,0.996931) + New Momentum Direction: (0.860171,0.500165,-0.0997009) + New Polarization: (0.0540603,0.10497,0.993005) + *** FresnelRefraction *** +Track (trackID 994, parentID 854) is processed with stopping code 2 +### pop requested out of 177 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.669323,0.434551,-0.602638) + Old Polarization: (-0.640301,-0.748801,0.171207) + New Momentum Direction: (0.669323,0.434551,-0.602638) + New Polarization: (-0.640301,0.748801,-0.171207) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.669323,0.434551,-0.602638) + Old Polarization: (-0.640301,0.748801,-0.171207) + New Momentum Direction: (0.669323,0.434551,0.602638) + New Polarization: (0.640301,-0.748801,-0.171207) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 993, parentID 854) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.933262,0.307684,-0.185342) + Old Polarization: (0.244113,-0.921817,-0.301101) + New Momentum Direction: (0.873107,0.417613,-0.251561) + New Polarization: (0.333127,-0.887783,-0.317597) + *** FresnelRefraction *** +Track (trackID 992, parentID 854) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.154385,-0.981684,-0.11163) + Old Polarization: (-0.782779,-0.190471,0.592434) + New Momentum Direction: (0.20978,-0.965911,-0.151684) + New Polarization: (-0.770032,-0.258815,0.583152) + *** FresnelRefraction *** +Track (trackID 991, parentID 854) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.576086,-0.238216,0.781907) +Old Polarization: (-0.630993,-0.47847,-0.610668) +New Polarization: (-0.857372,0.346731,-0.380382) +Polarization Change: (-0.857372,0.346731,-0.380382) +New Momentum Direction: (-0.13877,-0.867396,-0.477877) +Momentum Change: (-0.13877,-0.867396,-0.477877) + Photon at Boundary! + Old Momentum Direction: (-0.13877,-0.867396,-0.477877) + Old Polarization: (-0.857372,0.346731,-0.380382) + New Momentum Direction: (-0.188602,-0.736612,-0.649485) + New Polarization: (-0.535523,-0.477227,0.696756) + *** FresnelRefraction *** +Track (trackID 990, parentID 854) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + +** Photon absorbed! ** +Track (trackID 989, parentID 854) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.269627,-0.542778,0.79542) + Old Polarization: (0.559957,0.760376,0.329054) + New Momentum Direction: (0.364319,-0.733399,0.573931) + New Polarization: (0.597718,0.656744,0.459805) + *** FresnelRefraction *** +Track (trackID 988, parentID 854) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.667204,0.74394,0.0373108) + Old Polarization: (0.415611,0.330239,0.847472) + New Momentum Direction: (-0.906647,0.418832,0.0507008) + New Polarization: (0.267564,0.477915,0.836664) + *** FresnelRefraction *** +Track (trackID 987, parentID 854) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.29846,0.40649,-0.863532) + Old Polarization: (0.135288,0.913652,0.383324) + New Momentum Direction: (-0.404393,0.550765,-0.730154) + New Polarization: (0.848042,-0.0731428,-0.524857) + *** FresnelRefraction *** +Track (trackID 986, parentID 854) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.580475,-0.700544,-0.415075) + Old Polarization: (0.244204,0.636052,-0.731985) + New Momentum Direction: (0.78391,-0.266978,-0.560543) + New Polarization: (-0.43487,-0.880479,-0.1888) + *** FresnelRefraction *** +Track (trackID 985, parentID 854) is processed with stopping code 2 +### pop requested out of 168 stacked tracks. + +** Photon absorbed! ** +Track (trackID 984, parentID 854) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.91759,-0.397498,0.00500011) + Old Polarization: (-0.141457,-0.314735,0.93858) + New Momentum Direction: (0.841679,-0.539935,0.00679183) + New Polarization: (0.194355,0.314658,0.929094) + *** FresnelRefraction *** +Track (trackID 983, parentID 854) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + +** Photon absorbed! ** +Track (trackID 982, parentID 854) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.225585,0.321932,-0.919495) + Old Polarization: (-0.974141,-0.0868013,0.208601) + New Momentum Direction: (-0.306472,0.437365,-0.845451) + New Polarization: (-0.431805,-0.855424,-0.285997) + *** FresnelRefraction *** +Track (trackID 981, parentID 854) is processed with stopping code 2 +### pop requested out of 164 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.9051,-0.350003,0.241437) + Old Polarization: (0.108885,0.358099,0.927313) + New Momentum Direction: (-0.818282,-0.473162,0.326393) + New Polarization: (-0.149285,0.72327,0.674236) + *** FresnelRefraction *** +Track (trackID 980, parentID 854) is processed with stopping code 2 +### pop requested out of 163 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.164678,0.646622,0.744823) + Old Polarization: (-0.830629,0.316313,-0.458259) + New Momentum Direction: (-0.223725,0.878475,0.422172) + New Polarization: (-0.601119,-0.465325,0.649714) + *** FresnelRefraction *** +Track (trackID 979, parentID 854) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0181141,0.750349,0.660794) + Old Polarization: (-0.324244,0.629593,-0.70603) + New Momentum Direction: (0.0245352,0.445328,0.895031) + New Polarization: (-0.29571,0.858469,-0.41903) + *** FresnelRefraction *** +Track (trackID 978, parentID 854) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.202271,0.51096,0.835468) + Old Polarization: (-0.977976,-0.0605591,-0.199736) + New Momentum Direction: (-0.273455,0.690779,0.669363) + New Polarization: (-0.770185,-0.574122,0.277847) + *** FresnelRefraction *** +Track (trackID 977, parentID 854) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.00924306,0.755245,0.655378) + Old Polarization: (-0.340321,0.618656,-0.708128) + New Momentum Direction: (0.0125629,0.454284,0.890768) + New Polarization: (-0.31463,0.847385,-0.427722) + *** FresnelRefraction *** +Track (trackID 976, parentID 854) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.300659,0.247419,0.92108) + Old Polarization: (0.51651,-0.854118,0.0608321) + New Momentum Direction: (0.405392,0.333605,0.851096) + New Polarization: (0.523591,-0.847921,0.0829652) + *** FresnelRefraction *** +Track (trackID 975, parentID 854) is processed with stopping code 2 +### pop requested out of 158 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.617128,0.309217,0.723559) + Old Polarization: (-0.765135,0.0212195,0.64352) + New Momentum Direction: (0.832141,0.416951,0.365642) + New Polarization: (-0.457076,0.142292,0.877972) + *** FresnelRefraction *** +Track (trackID 853, parentID 1) is processed with stopping code 2 +### pop requested out of 157 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.555557,0.749354,0.360314) + Old Polarization: (-0.831467,0.503025,0.235859) + New Momentum Direction: (0.753115,0.440729,0.488443) + New Polarization: (-0.627653,0.703827,0.332685) + *** FresnelRefraction *** +Track (trackID 852, parentID 1) is processed with stopping code 2 +### pop requested out of 156 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.846092,-0.482714,0.226085) + Old Polarization: (-0.511435,-0.854687,0.0891331) + New Momentum Direction: (0.69298,-0.652894,0.305791) + New Polarization: (0.693335,0.487237,-0.530929) + *** FresnelRefraction *** +Track (trackID 851, parentID 1) is processed with stopping code 2 +### pop requested out of 155 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.613116,0.291571,0.734217) + Old Polarization: (-0.767324,-0.00125022,0.641259) + New Momentum Direction: (0.83408,0.396651,0.383378) + New Polarization: (-0.459504,0.115024,0.880696) + *** FresnelRefraction *** +Track (trackID 850, parentID 1) is processed with stopping code 2 +### pop requested out of 154 stacked tracks. + +** Photon absorbed! ** +Track (trackID 849, parentID 1) is processed with stopping code 2 +### pop requested out of 153 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.72316,0.452265,-0.522011) + Old Polarization: (-0.647211,0.179837,-0.740795) + New Momentum Direction: (0.36263,0.61024,-0.704348) + New Polarization: (0.882985,-0.466703,0.0502541) + *** FresnelRefraction *** +Track (trackID 848, parentID 1) is processed with stopping code 2 +### pop requested out of 152 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.795552,0.151735,-0.586578) + Old Polarization: (-0.567202,-0.153872,-0.809077) + New Momentum Direction: (0.573477,0.205162,-0.793116) + New Polarization: (0.771344,-0.461343,0.438395) + *** FresnelRefraction *** +Track (trackID 847, parentID 1) is processed with stopping code 2 +### pop requested out of 151 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.866952,-0.22606,-0.444175) + Old Polarization: (-0.486753,-0.57553,-0.657143) + New Momentum Direction: (0.741415,-0.304373,-0.598048) + New Polarization: (0.656058,0.141465,0.741334) + *** FresnelRefraction *** +Track (trackID 846, parentID 1) is processed with stopping code 2 +### pop requested out of 150 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.606339,0.341202,0.718286) + Old Polarization: (-0.775582,0.0543086,0.628907) + New Momentum Direction: (0.822168,0.462654,0.331649) + New Polarization: (-0.457324,0.189915,0.868785) + *** FresnelRefraction *** +Track (trackID 845, parentID 1) is processed with stopping code 2 +### pop requested out of 149 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.733772,0.420224,-0.533845) + Old Polarization: (-0.635344,0.146092,-0.758285) + New Momentum Direction: (0.405464,0.565401,-0.718276) + New Polarization: (0.863345,-0.495075,0.0976489) + *** FresnelRefraction *** +Track (trackID 844, parentID 1) is processed with stopping code 2 +### pop requested out of 148 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.878202,-0.380924,-0.289236) + Old Polarization: (-0.47724,-0.737944,-0.47716) + New Momentum Direction: (-0.878202,-0.380924,-0.289236) + New Polarization: (-0.470593,0.580123,0.66483) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.878202,-0.380924,-0.289236) + Old Polarization: (-0.470593,0.580123,0.66483) + New Momentum Direction: (-0.878202,0.380924,-0.289236) + New Polarization: (0.470593,0.580123,-0.66483) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.878202,0.380924,-0.289236) + Old Polarization: (0.470593,0.580123,-0.66483) + New Momentum Direction: (-0.760764,0.516906,-0.392488) + New Polarization: (-0.639019,-0.70235,0.313622) + *** FresnelRefraction *** +Track (trackID 843, parentID 1) is processed with stopping code 2 +### pop requested out of 147 stacked tracks. + +** Photon absorbed! ** +Track (trackID 842, parentID 1) is processed with stopping code 2 +### pop requested out of 146 stacked tracks. + +** Photon absorbed! ** +Track (trackID 841, parentID 1) is processed with stopping code 2 +### pop requested out of 145 stacked tracks. + +** Photon absorbed! ** +Track (trackID 840, parentID 1) is processed with stopping code 2 +### pop requested out of 144 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.729902,-0.186858,0.657516) +Old Polarization: (-0.639874,-0.525114,0.561086) +New Polarization: (0.962693,-0.19092,-0.191758) +Polarization Change: (0.962693,-0.19092,-0.191758) +New Momentum Direction: (-0.0508832,-0.823737,0.564684) +Momentum Change: (-0.0508832,-0.823737,0.564684) +Scattering Photon! +Old Momentum Direction: (-0.0508832,-0.823737,0.564684) +Old Polarization: (0.962693,-0.19092,-0.191758) +New Polarization: (-0.525625,-0.808857,0.26357) +Polarization Change: (-0.525625,-0.808857,0.26357) +New Momentum Direction: (0.820596,-0.563779,-0.0936759) +Momentum Change: (0.820596,-0.563779,-0.0936759) + Photon at Boundary! + Old Momentum Direction: (0.820596,-0.563779,-0.0936759) + Old Polarization: (-0.525625,-0.808857,0.26357) + New Momentum Direction: (0.820596,0.563779,-0.0936759) + New Polarization: (0.525625,-0.808857,-0.26357) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.820596,0.563779,-0.0936759) + Old Polarization: (0.525625,-0.808857,-0.26357) + New Momentum Direction: (0.631309,0.765042,-0.127117) + New Polarization: (0.71748,-0.638376,-0.278743) + *** FresnelRefraction *** +Track (trackID 839, parentID 1) is processed with stopping code 2 +### pop requested out of 143 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.773881,0.239524,-0.586291) + Old Polarization: (-0.591533,-0.0573703,-0.804237) + New Momentum Direction: (0.512448,0.324765,-0.794937) + New Polarization: (0.808027,-0.495717,0.318366) + *** FresnelRefraction *** +Track (trackID 838, parentID 1) is processed with stopping code 2 +### pop requested out of 142 stacked tracks. + +** Photon absorbed! ** +Track (trackID 837, parentID 1) is processed with stopping code 2 +### pop requested out of 141 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.81513,0.0718345,-0.574807) + Old Polarization: (-0.544611,-0.243089,-0.802687) + New Momentum Direction: (0.625705,0.0967327,-0.774039) + New Polarization: (0.736579,-0.399927,0.545444) + *** FresnelRefraction *** +Track (trackID 836, parentID 1) is processed with stopping code 2 +### pop requested out of 140 stacked tracks. + +** Photon absorbed! ** +Track (trackID 835, parentID 1) is processed with stopping code 2 +### pop requested out of 139 stacked tracks. + +** Photon absorbed! ** +Track (trackID 834, parentID 1) is processed with stopping code 2 +### pop requested out of 138 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.769343,0.261908,-0.58268) + Old Polarization: (-0.59638,-0.0325055,-0.802044) + New Momentum Direction: (0.50138,0.354723,-0.78917) + New Polarization: (0.813988,-0.502599,0.291235) + *** FresnelRefraction *** +Track (trackID 833, parentID 1) is processed with stopping code 2 +### pop requested out of 137 stacked tracks. + +** Photon absorbed! ** +Track (trackID 832, parentID 1) is processed with stopping code 2 +### pop requested out of 136 stacked tracks. + +** Photon absorbed! ** +Track (trackID 831, parentID 1) is processed with stopping code 2 +### pop requested out of 135 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.863876,-0.242264,-0.441619) + Old Polarization: (-0.493148,-0.585341,-0.643569) + New Momentum Direction: (0.729577,-0.32893,-0.599601) + New Polarization: (0.670259,0.169675,0.722471) + *** FresnelRefraction *** +Track (trackID 830, parentID 1) is processed with stopping code 2 +### pop requested out of 134 stacked tracks. + +** Photon absorbed! ** +Track (trackID 829, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.623325,0.276235,0.731546) + Old Polarization: (-0.758163,-0.0155563,0.651879) + New Momentum Direction: (0.623325,0.276235,-0.731546) + New Polarization: (0.258156,0.810378,0.525968) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.623325,0.276235,-0.731546) + Old Polarization: (0.258156,0.810378,0.525968) + New Momentum Direction: (-0.623325,0.276235,-0.731546) + New Polarization: (0.258156,-0.810378,-0.525968) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623325,0.276235,-0.731546) + Old Polarization: (0.258156,-0.810378,-0.525968) + New Momentum Direction: (-0.623325,-0.276235,-0.731546) + New Polarization: (-0.258156,-0.810378,0.525968) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623325,-0.276235,-0.731546) + Old Polarization: (-0.258156,-0.810378,0.525968) + New Momentum Direction: (-0.840769,-0.372598,-0.392782) + New Polarization: (0.530661,-0.423423,-0.734243) + *** FresnelRefraction *** +Track (trackID 828, parentID 1) is processed with stopping code 2 +### pop requested out of 132 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.837018,-0.0571923,-0.544179) + Old Polarization: (-0.521468,-0.384632,-0.761662) + New Momentum Direction: (0.672492,-0.0773578,-0.736051) + New Polarization: (0.707389,-0.225238,0.669977) + *** FresnelRefraction *** +Track (trackID 827, parentID 1) is processed with stopping code 2 +### pop requested out of 131 stacked tracks. + +** Photon absorbed! ** +Track (trackID 826, parentID 1) is processed with stopping code 2 +### pop requested out of 130 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.678806,0.00265234,0.734313) + Old Polarization: (-0.695854,-0.317074,0.6444) + New Momentum Direction: (0.92166,0.00360126,0.387982) + New Polarization: (-0.370333,-0.290128,0.882428) + *** FresnelRefraction *** +Track (trackID 825, parentID 1) is processed with stopping code 2 +### pop requested out of 129 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.708327,0.500362,-0.497907) + Old Polarization: (-0.663626,0.231643,-0.711296) + New Momentum Direction: (0.298938,0.67643,-0.673111) + New Polarization: (0.908622,-0.417318,-0.0158433) + *** FresnelRefraction *** +Track (trackID 824, parentID 1) is processed with stopping code 2 +### pop requested out of 128 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.635947,0.715374,-0.289501) + Old Polarization: (-0.743283,0.466857,-0.47914) + New Momentum Direction: (0.861341,0.323024,-0.392107) + New Polarization: (-0.500583,0.6713,-0.546602) + *** FresnelRefraction *** +Track (trackID 823, parentID 1) is processed with stopping code 2 +### pop requested out of 127 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.873032,-0.485232,-0.0486355) + Old Polarization: (-0.48372,-0.848999,-0.212642) + New Momentum Direction: (0.748466,-0.659867,-0.0661396) + New Polarization: (0.658054,0.751353,-0.049328) + *** FresnelRefraction *** +Track (trackID 822, parentID 1) is processed with stopping code 2 +### pop requested out of 126 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.555308,0.778106,0.29357) + Old Polarization: (-0.831087,0.532135,0.161639) + New Momentum Direction: (0.754034,0.522043,0.398629) + New Polarization: (-0.63508,0.734346,0.239601) + *** FresnelRefraction *** +Track (trackID 821, parentID 1) is processed with stopping code 2 +### pop requested out of 125 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.6785,0.607133,-0.413555) + Old Polarization: (-0.697065,0.354461,-0.623264) + New Momentum Direction: (-0.6785,0.607133,-0.413555) + New Polarization: (0.672389,0.286546,-0.682483) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.6785,0.607133,-0.413555) + Old Polarization: (0.672389,0.286546,-0.682483) + New Momentum Direction: (-0.6785,-0.607133,-0.413555) + New Polarization: (-0.672389,0.286546,0.682483) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.6785,-0.607133,-0.413555) + Old Polarization: (-0.672389,0.286546,0.682483) + New Momentum Direction: (-0.6785,-0.607133,0.413555) + New Polarization: (0.672389,-0.286546,0.682483) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 820, parentID 1) is processed with stopping code 2 +### pop requested out of 124 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.563852,0.647167,0.513076) +Old Polarization: (-0.823614,0.394682,0.407291) +New Polarization: (0.381872,-0.703847,-0.598977) +Polarization Change: (0.381872,-0.703847,-0.598977) +New Momentum Direction: (-0.919658,-0.353668,-0.17073) +Momentum Change: (-0.919658,-0.353668,-0.17073) + Photon at Boundary! + Old Momentum Direction: (-0.919658,-0.353668,-0.17073) + Old Polarization: (0.381872,-0.703847,-0.598977) + New Momentum Direction: (-0.847621,-0.477838,-0.230672) + New Polarization: (-0.516283,0.843048,0.15074) + *** FresnelRefraction *** +Track (trackID 819, parentID 1) is processed with stopping code 2 +### pop requested out of 123 stacked tracks. + +** Photon absorbed! ** +Track (trackID 818, parentID 1) is processed with stopping code 2 +### pop requested out of 122 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.598126,0.797924,-0.0745786) + Old Polarization: (-0.786672,0.566824,-0.244658) + New Momentum Direction: (0.805468,0.584068,-0.100431) + New Polarization: (-0.58821,0.767203,-0.255752) + *** FresnelRefraction *** +Track (trackID 817, parentID 1) is processed with stopping code 2 +### pop requested out of 121 stacked tracks. + +** Photon absorbed! ** +Track (trackID 816, parentID 1) is processed with stopping code 2 +### pop requested out of 120 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.879179,-0.428843,-0.207698) + Old Polarization: (-0.476488,-0.789338,-0.387176) + New Momentum Direction: (0.76239,-0.582406,-0.282071) + New Polarization: (0.647112,0.68802,0.328443) + *** FresnelRefraction *** +Track (trackID 815, parentID 1) is processed with stopping code 2 +### pop requested out of 119 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.877852,-0.46855,-0.0991806) + Old Polarization: (-0.476972,-0.836593,-0.269463) + New Momentum Direction: (0.760949,-0.634747,-0.13436) + New Polarization: (0.646268,0.759855,0.0704148) + *** FresnelRefraction *** +Track (trackID 814, parentID 1) is processed with stopping code 2 +### pop requested out of 118 stacked tracks. + +** Photon absorbed! ** +Track (trackID 813, parentID 1) is processed with stopping code 2 +### pop requested out of 117 stacked tracks. + +** Photon absorbed! ** +Track (trackID 812, parentID 1) is processed with stopping code 2 +### pop requested out of 116 stacked tracks. + +** Photon absorbed! ** +Track (trackID 811, parentID 1) is processed with stopping code 2 +### pop requested out of 115 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.653681,0.670915,-0.350106) +Old Polarization: (-0.723988,0.419728,-0.547421) +New Polarization: (-0.513523,0.494528,-0.70124) +Polarization Change: (-0.513523,0.494528,-0.70124) +New Momentum Direction: (-0.853563,-0.210694,0.476485) +Momentum Change: (-0.853563,-0.210694,0.476485) + Photon at Boundary! + Old Momentum Direction: (-0.853563,-0.210694,0.476485) + Old Polarization: (-0.513523,0.494528,-0.70124) + New Momentum Direction: (-0.709599,-0.28495,0.644416) + New Polarization: (-0.695039,0.433273,-0.573756) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.709599,-0.28495,0.644416) + Old Polarization: (-0.695039,0.433273,-0.573756) + New Momentum Direction: (-0.524681,-0.705458,0.476485) + New Polarization: (-0.322144,-0.353559,-0.878191) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.524681,-0.705458,0.476485) + Old Polarization: (-0.322144,-0.353559,-0.878191) + New Momentum Direction: (-0.524681,0.705458,0.476485) + New Polarization: (-0.797521,-0.211547,-0.564985) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.524681,0.705458,0.476485) + Old Polarization: (-0.797521,-0.211547,-0.564985) + New Momentum Direction: (0.524681,0.705458,0.476485) + New Polarization: (-0.797521,0.211547,0.564985) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.524681,0.705458,0.476485) + Old Polarization: (-0.797521,0.211547,0.564985) + New Momentum Direction: (0.524681,0.705458,-0.476485) + New Polarization: (0.797521,-0.211547,0.564985) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.524681,0.705458,-0.476485) +Old Polarization: (0.797521,-0.211547,0.564985) +New Polarization: (0.211726,0.21407,0.953597) +Polarization Change: (0.211726,0.21407,0.953597) +New Momentum Direction: (0.877312,-0.471611,-0.0889183) +Momentum Change: (0.877312,-0.471611,-0.0889183) + Photon at Boundary! + Old Momentum Direction: (0.877312,-0.471611,-0.0889183) + Old Polarization: (0.211726,0.21407,0.953597) + New Momentum Direction: (0.877312,0.471611,-0.0889183) + New Polarization: (-0.211726,0.21407,-0.953597) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.877312,0.471611,-0.0889183) + Old Polarization: (-0.211726,0.21407,-0.953597) + New Momentum Direction: (0.760736,0.637824,-0.120257) + New Polarization: (0.291286,-0.501063,-0.814916) + *** FresnelRefraction *** +Track (trackID 810, parentID 1) is processed with stopping code 2 +### pop requested out of 114 stacked tracks. + +** Photon absorbed! ** +Track (trackID 809, parentID 1) is processed with stopping code 2 +### pop requested out of 113 stacked tracks. + +** Photon absorbed! ** +Track (trackID 808, parentID 1) is processed with stopping code 2 +### pop requested out of 112 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.594726,0.389419,0.703316) + Old Polarization: (-0.787355,0.105415,0.607421) + New Momentum Direction: (0.809136,0.529813,0.254162) + New Polarization: (-0.443414,0.266677,0.855726) + *** FresnelRefraction *** +Track (trackID 807, parentID 1) is processed with stopping code 2 +### pop requested out of 111 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.575402,0.814311,0.0762202) + Old Polarization: (-0.810913,0.580155,-0.0764223) + New Momentum Direction: (0.77723,0.620737,0.102955) + New Polarization: (-0.618969,0.783677,-0.0522185) + *** FresnelRefraction *** +Track (trackID 806, parentID 1) is processed with stopping code 2 +### pop requested out of 110 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.629378,0.732171,-0.260401) + Old Polarization: (-0.75063,0.486081,-0.447526) + New Momentum Direction: (0.852,0.387083,-0.352509) + New Polarization: (-0.521478,0.687176,-0.505816) + *** FresnelRefraction *** +Track (trackID 805, parentID 1) is processed with stopping code 2 +### pop requested out of 109 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.878606,-0.454696,-0.145954) + Old Polarization: (-0.476839,-0.818684,-0.31997) + New Momentum Direction: (0.761562,-0.61708,-0.198078) + New Polarization: (0.647171,0.740375,0.181696) + *** FresnelRefraction *** +Track (trackID 804, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.769979,0.258685,-0.583278) + Old Polarization: (-0.595704,-0.0361011,-0.802393) + New Momentum Direction: (0.502883,0.350425,-0.790134) + New Polarization: (0.81319,-0.501651,0.295074) + *** FresnelRefraction *** +Track (trackID 803, parentID 1) is processed with stopping code 2 +### pop requested out of 107 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.673648,0.610459,-0.416579) + Old Polarization: (-0.701803,0.351701,-0.619499) + New Momentum Direction: (-0.673648,0.610459,-0.416579) + New Polarization: (-0.701803,-0.351701,0.619499) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.673648,0.610459,-0.416579) + Old Polarization: (-0.701803,-0.351701,0.619499) + New Momentum Direction: (-0.673648,-0.610459,-0.416579) + New Polarization: (0.701803,-0.351701,-0.619499) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 802, parentID 1) is processed with stopping code 2 +### pop requested out of 106 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.597651,0.79578,-0.0977105) + Old Polarization: (-0.785798,0.557193,-0.268435) + New Momentum Direction: (0.808538,0.573404,-0.132189) + New Polarization: (-0.585049,0.759233,-0.285102) + *** FresnelRefraction *** +Track (trackID 801, parentID 1) is processed with stopping code 2 +### pop requested out of 105 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.55747,0.802859,0.211295) + Old Polarization: (-0.827983,0.556249,0.0709284) + New Momentum Direction: (0.758437,0.584924,0.287467) + New Polarization: (-0.635644,0.761297,0.127998) + *** FresnelRefraction *** +Track (trackID 800, parentID 1) is processed with stopping code 2 +### pop requested out of 104 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.824771,-0.45708,0.332914) + Old Polarization: (-0.536268,-0.818997,0.204109) + New Momentum Direction: (0.639727,-0.621278,0.452507) + New Polarization: (0.731644,0.311874,-0.606161) + *** FresnelRefraction *** +Track (trackID 799, parentID 1) is processed with stopping code 2 +### pop requested out of 103 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.558445,0.700026,0.445088) + Old Polarization: (-0.828975,0.451117,0.330595) + New Momentum Direction: (0.755704,0.257176,0.602306) + New Polarization: (-0.592393,0.660572,0.461212) + *** FresnelRefraction *** +Track (trackID 798, parentID 1) is processed with stopping code 2 +### pop requested out of 102 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.869507,-0.492883,0.032005) + Old Polarization: (-0.485764,-0.865078,-0.125189) + New Momentum Direction: (0.7438,-0.666998,0.0433111) + New Polarization: (0.657857,0.719062,-0.223993) + *** FresnelRefraction *** +Track (trackID 797, parentID 1) is processed with stopping code 2 +### pop requested out of 101 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.731538,-0.18776,0.655438) + Old Polarization: (-0.638026,-0.527434,0.561014) + New Momentum Direction: (0.383033,-0.254385,0.888017) + New Polarization: (0.873811,-0.211978,-0.43763) + *** FresnelRefraction *** +Track (trackID 796, parentID 1) is processed with stopping code 2 +### pop requested out of 100 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.763727,-0.293914,0.574748) + Old Polarization: (-0.602657,-0.643715,0.47163) + New Momentum Direction: (0.484064,-0.398402,0.779075) + New Polarization: (0.823629,-0.0932148,-0.559416) + *** FresnelRefraction *** +Track (trackID 795, parentID 1) is processed with stopping code 2 +### pop requested out of 99 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.776544,-0.336372,0.53276) + Old Polarization: (-0.58881,-0.688365,0.423624) + New Momentum Direction: (0.517807,-0.456725,0.72338) + New Polarization: (0.805334,-0.0250548,-0.592291) + *** FresnelRefraction *** +Track (trackID 794, parentID 1) is processed with stopping code 2 +### pop requested out of 98 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.571116,0.566725,0.593844) + Old Polarization: (-0.814786,0.303459,0.494001) + New Momentum Direction: (0.571116,0.566725,-0.593844) + New Polarization: (0.814786,-0.303459,0.494001) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.571116,0.566725,-0.593844) + Old Polarization: (0.814786,-0.303459,0.494001) + New Momentum Direction: (-0.571116,0.566725,-0.593844) + New Polarization: (0.814786,0.303459,-0.494001) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.571116,0.566725,-0.593844) + Old Polarization: (0.814786,0.303459,-0.494001) + New Momentum Direction: (-0.571116,-0.566725,-0.593844) + New Polarization: (-0.814786,0.303459,0.494001) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.571116,-0.566725,-0.593844) + Old Polarization: (-0.814786,0.303459,0.494001) + New Momentum Direction: (-0.571116,-0.566725,0.593844) + New Polarization: (0.814786,-0.303459,0.494001) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.571116,-0.566725,0.593844) + Old Polarization: (0.814786,-0.303459,0.494001) + New Momentum Direction: (0.571116,-0.566725,0.593844) + New Polarization: (0.814786,0.303459,-0.494001) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.571116,-0.566725,0.593844) + Old Polarization: (0.814786,0.303459,-0.494001) + New Momentum Direction: (0.571116,0.566725,0.593844) + New Polarization: (-0.814786,0.303459,0.494001) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.571116,0.566725,0.593844) + Old Polarization: (-0.814786,0.303459,0.494001) + New Momentum Direction: (0.571116,0.566725,-0.593844) + New Polarization: (0.814786,-0.303459,0.494001) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 793, parentID 1) is processed with stopping code 2 +### pop requested out of 97 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.72066,-0.146117,0.677716) + Old Polarization: (-0.649991,-0.482443,0.587163) + New Momentum Direction: (0.345963,-0.197745,0.917173) + New Polarization: (0.889962,-0.240393,-0.387528) + *** FresnelRefraction *** +Track (trackID 792, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.721929,0.454117,-0.522108) +Old Polarization: (-0.648582,0.181105,-0.739285) +New Polarization: (0.693809,0.114323,-0.711027) +Polarization Change: (0.693809,0.114323,-0.711027) +New Momentum Direction: (-0.718785,0.170883,-0.673904) +Momentum Change: (-0.718785,0.170883,-0.673904) + Photon at Boundary! + Old Momentum Direction: (-0.718785,0.170883,-0.673904) + Old Polarization: (0.693809,0.114323,-0.711027) + New Momentum Direction: (-0.970909,0.230823,-0.0636952) + New Polarization: (0.110273,0.194898,-0.974605) + *** FresnelRefraction *** +Track (trackID 791, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + +** Photon absorbed! ** +Track (trackID 790, parentID 1) is processed with stopping code 2 +### pop requested out of 94 stacked tracks. + +** Photon absorbed! ** +Track (trackID 789, parentID 1) is processed with stopping code 2 +### pop requested out of 93 stacked tracks. + +** Photon absorbed! ** +Track (trackID 788, parentID 1) is processed with stopping code 2 +### pop requested out of 92 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.589113,0.48054,0.649637) + Old Polarization: (-0.797104,0.213704,0.564762) + New Momentum Direction: (0.589113,0.48054,-0.649637) + New Polarization: (0.797104,-0.213704,0.564762) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.589113,0.48054,-0.649637) + Old Polarization: (0.797104,-0.213704,0.564762) + New Momentum Direction: (-0.589113,0.48054,-0.649637) + New Polarization: (0.797104,0.213704,-0.564762) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.589113,0.48054,-0.649637) + Old Polarization: (0.797104,0.213704,-0.564762) + New Momentum Direction: (-0.589113,-0.48054,-0.649637) + New Polarization: (-0.797104,0.213704,0.564762) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 787, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.882371,-0.41548,-0.2209) + Old Polarization: (-0.470534,-0.783353,-0.406147) + New Momentum Direction: (0.772405,-0.560795,-0.298161) + New Polarization: (0.635105,0.677773,0.370494) + *** FresnelRefraction *** +Track (trackID 786, parentID 1) is processed with stopping code 2 +### pop requested out of 90 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.740746,-0.217632,0.635556) + Old Polarization: (-0.627867,-0.56074,0.539772) + New Momentum Direction: (0.415184,-0.294719,0.860676) + New Polarization: (0.858778,-0.185226,-0.477695) + *** FresnelRefraction *** +Track (trackID 785, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.585781,0.810456,-0.00477037) + Old Polarization: (-0.799645,0.576988,-0.166293) + New Momentum Direction: (0.790704,0.612164,-0.00643919) + New Polarization: (-0.605005,0.779764,-0.16105) + *** FresnelRefraction *** +Track (trackID 784, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + +** Photon absorbed! ** +Track (trackID 783, parentID 1) is processed with stopping code 2 +### pop requested out of 87 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.747082,-0.25047,0.615738) +Old Polarization: (-0.621189,-0.592799,0.512556) +New Polarization: (0.608476,0.711395,-0.351673) +Polarization Change: (0.608476,0.711395,-0.351673) +New Momentum Direction: (-0.125038,0.523562,0.842762) +Momentum Change: (-0.125038,0.523562,0.842762) + +** Photon absorbed! ** +Track (trackID 782, parentID 1) is processed with stopping code 2 +### pop requested out of 86 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.808039,-0.422302,0.410771) + Old Polarization: (-0.554652,-0.780352,0.288813) + New Momentum Direction: (0.598485,-0.574273,0.558593) + New Polarization: (0.758001,0.180211,-0.626864) + *** FresnelRefraction *** +Track (trackID 781, parentID 1) is processed with stopping code 2 +### pop requested out of 85 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.640147,0.703125,-0.309558) + Old Polarization: (-0.738471,0.452067,-0.500295) + New Momentum Direction: (0.867883,0.265787,-0.419685) + New Polarization: (-0.480815,0.661815,-0.575168) + *** FresnelRefraction *** +Track (trackID 780, parentID 1) is processed with stopping code 2 +### pop requested out of 84 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.575148,0.814486,0.0762658) + Old Polarization: (-0.811096,0.579905,-0.0763692) + New Momentum Direction: (0.7771,0.620885,0.103045) + New Polarization: (-0.619129,0.783556,-0.0521443) + *** FresnelRefraction *** +Track (trackID 779, parentID 1) is processed with stopping code 2 +### pop requested out of 83 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.82707,-0.443756,0.345015) + Old Polarization: (-0.531469,-0.817213,0.222943) + New Momentum Direction: (0.652903,-0.597972,0.464916) + New Polarization: (0.718736,0.295405,-0.629408) + *** FresnelRefraction *** +Track (trackID 778, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. + +** Photon absorbed! ** +Track (trackID 777, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + +** Photon absorbed! ** +Track (trackID 776, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.659875,0.0768606,0.747434) + Old Polarization: (-0.716414,-0.235544,0.656711) + New Momentum Direction: (0.897107,0.104493,0.429278) + New Polarization: (-0.406111,-0.187608,0.894359) + *** FresnelRefraction *** +Track (trackID 775, parentID 1) is processed with stopping code 2 +### pop requested out of 79 stacked tracks. + +** Photon absorbed! ** +Track (trackID 774, parentID 1) is processed with stopping code 2 +### pop requested out of 78 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.718001,0.458874,-0.523363) +Old Polarization: (-0.652923,0.183492,-0.734862) +New Polarization: (0.588993,0.476273,0.652879) +Polarization Change: (0.588993,0.476273,0.652879) +New Momentum Direction: (0.310224,-0.879236,0.361532) +Momentum Change: (0.310224,-0.879236,0.361532) + Photon at Boundary! + Old Momentum Direction: (0.310224,-0.879236,0.361532) + Old Polarization: (0.588993,0.476273,0.652879) + New Momentum Direction: (-0.310224,-0.879236,0.361532) + New Polarization: (0.588993,-0.476273,-0.652879) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.310224,-0.879236,0.361532) + Old Polarization: (0.588993,-0.476273,-0.652879) + New Momentum Direction: (-0.420695,-0.763314,0.490273) + New Polarization: (0.513177,-0.64588,-0.565232) + *** FresnelRefraction *** +Track (trackID 773, parentID 1) is processed with stopping code 2 +### pop requested out of 77 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.634676,0.185664,0.750144) + Old Polarization: (-0.743756,-0.116771,0.658173) + New Momentum Direction: (0.863655,0.252649,0.436198) + New Polarization: (-0.44205,-0.0362831,0.896257) + *** FresnelRefraction *** +Track (trackID 772, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.595925,0.795964,-0.106368) + Old Polarization: (-0.786673,0.552029,-0.276423) + New Momentum Direction: (0.809007,0.569786,-0.144401) + New Polarization: (-0.584817,0.755522,-0.295256) + *** FresnelRefraction *** +Track (trackID 771, parentID 1) is processed with stopping code 2 +### pop requested out of 75 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.879648,-0.392961,-0.267959) + Old Polarization: (-0.475071,-0.753134,-0.455079) + New Momentum Direction: (0.764641,-0.532447,-0.363074) + New Polarization: (0.643734,0.604383,0.469391) + *** FresnelRefraction *** +Track (trackID 770, parentID 1) is processed with stopping code 2 +### pop requested out of 74 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.616341,0.756799,-0.217665) + Old Polarization: (-0.764098,0.507888,-0.397748) + New Momentum Direction: (0.837441,0.459594,-0.295747) + New Polarization: (-0.546499,0.709788,-0.444455) + *** FresnelRefraction *** +Track (trackID 769, parentID 1) is processed with stopping code 2 +### pop requested out of 73 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.867782,-0.251485,-0.428614) + Old Polarization: (-0.487295,-0.599771,-0.634679) + New Momentum Direction: (0.740727,-0.339976,-0.579431) + New Polarization: (0.659347,0.202558,0.724039) + *** FresnelRefraction *** +Track (trackID 768, parentID 1) is processed with stopping code 2 +### pop requested out of 72 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.595962,0.794772,-0.114748) + Old Polarization: (-0.786192,0.548396,-0.284893) + New Momentum Direction: (0.810291,0.564879,-0.156015) + New Polarization: (-0.583408,0.752413,-0.305793) + *** FresnelRefraction *** +Track (trackID 767, parentID 1) is processed with stopping code 2 +### pop requested out of 71 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.58727,0.809388,0.00238946) + Old Polarization: (-0.798888,0.58012,-0.158866) + New Momentum Direction: (0.7906,0.612324,0.00321676) + New Polarization: (-0.604827,0.78172,-0.151981) + *** FresnelRefraction *** +Track (trackID 766, parentID 1) is processed with stopping code 2 +### pop requested out of 70 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.755597,0.311144,-0.576422) + Old Polarization: (-0.611774,0.0207042,-0.790762) + New Momentum Direction: (0.456692,0.422574,-0.782856) + New Polarization: (0.838353,-0.498855,0.219792) + *** FresnelRefraction *** +Track (trackID 765, parentID 1) is processed with stopping code 2 +### pop requested out of 69 stacked tracks. + +** Photon absorbed! ** +Track (trackID 764, parentID 1) is processed with stopping code 2 +### pop requested out of 68 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.859845,-0.210356,-0.465206) + Old Polarization: (-0.497362,-0.550911,-0.67017) + New Momentum Direction: (0.721134,-0.285441,-0.63126) + New Polarization: (0.675786,0.0891576,0.731686) + *** FresnelRefraction *** +Track (trackID 763, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + +** Photon absorbed! ** +Track (trackID 762, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.778184,0.215035,-0.590076) + Old Polarization: (-0.587108,-0.0845498,-0.805081) + New Momentum Direction: (0.52144,0.292159,-0.801712) + New Polarization: (0.803437,-0.484545,0.345985) + *** FresnelRefraction *** +Track (trackID 761, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.855845,-0.192605,-0.480033) +Old Polarization: (-0.502498,-0.529554,-0.683424) +New Polarization: (-0.650546,-0.417173,-0.634631) +Polarization Change: (-0.650546,-0.417173,-0.634631) +New Momentum Direction: (-0.711194,0.627794,0.316351) +Momentum Change: (-0.711194,0.627794,0.316351) + +** Photon absorbed! ** +Track (trackID 760, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.876959,-0.467048,-0.113175) + Old Polarization: (-0.479026,-0.830735,-0.283573) + New Momentum Direction: (0.757502,-0.634471,-0.153745) + New Polarization: (0.650833,0.75236,0.10184) + *** FresnelRefraction *** +Track (trackID 759, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + +** Photon absorbed! ** +Track (trackID 758, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.820679,-0.44421,0.359392) + Old Polarization: (-0.540175,-0.808204,0.234557) + New Momentum Direction: (0.632075,-0.60243,0.487401) + New Polarization: (0.735533,0.268473,-0.622024) + *** FresnelRefraction *** +Track (trackID 757, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.816082,0.0573199,-0.575087) + Old Polarization: (-0.544256,-0.258509,-0.798097) + New Momentum Direction: (0.625032,0.07742,-0.77675) + New Polarization: (0.738292,-0.381773,0.556034) + *** FresnelRefraction *** +Track (trackID 756, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.843217,-0.4804,0.241251) + Old Polarization: (-0.514881,-0.850741,0.105535) + New Momentum Direction: (0.685855,-0.650339,0.326593) + New Polarization: (0.698752,0.4631,-0.545237) + *** FresnelRefraction *** +Track (trackID 755, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.633514,0.202068,0.74688) + Old Polarization: (-0.745576,-0.0986056,0.659086) + New Momentum Direction: (0.859671,0.274203,0.43102) + New Polarization: (-0.444752,-0.0133506,0.895554) + *** FresnelRefraction *** +Track (trackID 754, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.553952,0.762361,0.33458) + Old Polarization: (-0.832417,0.514315,0.206304) + New Momentum Direction: (0.75249,0.476647,0.454495) + New Polarization: (-0.632229,0.716121,0.295733) + *** FresnelRefraction *** +Track (trackID 753, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.791436,0.165288,-0.58848) + Old Polarization: (-0.572056,-0.138913,-0.808366) + New Momentum Direction: (0.560874,0.223872,-0.797058) + New Polarization: (0.77955,-0.467003,0.417385) + *** FresnelRefraction *** +Track (trackID 752, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.875261,-0.297055,-0.381677) + Old Polarization: (-0.477747,-0.653955,-0.586602) + New Momentum Direction: (0.758518,-0.400239,-0.514256) + New Polarization: (0.644019,0.339991,0.685307) + *** FresnelRefraction *** +Track (trackID 751, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + +** Photon absorbed! ** +Track (trackID 750, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.879494,-0.453495,-0.144335) + Old Polarization: (-0.475178,-0.81997,-0.319147) + New Momentum Direction: (0.764403,-0.614373,-0.195538) + New Polarization: (0.643789,0.743788,0.179766) + *** FresnelRefraction *** +Track (trackID 749, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.711939,-0.117193,0.692394) + Old Polarization: (-0.659598,-0.449948,0.60206) + New Momentum Direction: (0.308611,-0.158738,0.937849) + New Polarization: (0.904795,-0.255178,-0.340925) + *** FresnelRefraction *** +Track (trackID 748, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.61522,0.287474,0.734073) + Old Polarization: (-0.765403,-0.00524232,0.64353) + New Momentum Direction: (0.835647,0.390472,0.386297) + New Polarization: (-0.458682,0.109186,0.881867) + *** FresnelRefraction *** +Track (trackID 747, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.653626,0.105203,0.74947) + Old Polarization: (-0.723294,-0.204636,0.659522) + New Momentum Direction: (0.888287,0.142972,0.43647) + New Polarization: (-0.416749,-0.14853,0.896805) + *** FresnelRefraction *** +Track (trackID 746, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.675511,0.606785,-0.418924) + Old Polarization: (-0.69986,0.348776,-0.623338) + New Momentum Direction: (-0.675511,0.606785,-0.418924) + New Polarization: (0.689369,0.318121,-0.650822) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.675511,0.606785,-0.418924) + Old Polarization: (0.689369,0.318121,-0.650822) + New Momentum Direction: (-0.675511,-0.606785,-0.418924) + New Polarization: (-0.689369,0.318121,0.650822) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.675511,-0.606785,-0.418924) + Old Polarization: (-0.689369,0.318121,0.650822) + New Momentum Direction: (-0.675511,-0.606785,0.418924) + New Polarization: (0.689369,-0.318121,0.650822) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.675511,-0.606785,0.418924) + Old Polarization: (0.689369,-0.318121,0.650822) + New Momentum Direction: (0.675511,-0.606785,0.418924) + New Polarization: (-0.676318,-0.283554,0.679847) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.675511,-0.606785,0.418924) + Old Polarization: (-0.676318,-0.283554,0.679847) + New Momentum Direction: (0.675511,0.606785,0.418924) + New Polarization: (0.676318,-0.283554,-0.679847) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.675511,0.606785,0.418924) + Old Polarization: (0.676318,-0.283554,-0.679847) + New Momentum Direction: (0.675511,0.606785,-0.418924) + New Polarization: (-0.676318,0.283554,-0.679847) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 745, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.564631,0.660605,0.494764) + Old Polarization: (-0.823628,0.41237,0.389342) + New Momentum Direction: (0.564631,-0.660605,0.494764) + New Polarization: (0.823628,0.41237,-0.389342) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.564631,-0.660605,0.494764) + Old Polarization: (0.823628,0.41237,-0.389342) + New Momentum Direction: (-0.564631,-0.660605,0.494764) + New Polarization: (0.823628,-0.41237,0.389342) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.564631,-0.660605,0.494764) + Old Polarization: (0.823628,-0.41237,0.389342) + New Momentum Direction: (-0.564631,-0.660605,-0.494764) + New Polarization: (-0.823628,0.41237,0.389342) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 744, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.727847,0.43434,-0.530648) + Old Polarization: (-0.642012,0.159702,-0.749878) + New Momentum Direction: (0.378556,0.586252,-0.716243) + New Polarization: (0.875878,-0.477064,0.0724463) + *** FresnelRefraction *** +Track (trackID 743, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + +** Photon absorbed! ** +Track (trackID 742, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.872291,-0.29672,-0.388672) + Old Polarization: (-0.482854,-0.648166,-0.58884) + New Momentum Direction: (0.749494,-0.401711,-0.5262) + New Polarization: (0.654071,0.326604,0.682292) + *** FresnelRefraction *** +Track (trackID 741, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + +** Photon absorbed! ** +Track (trackID 740, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.56213,0.797819,0.217932) + Old Polarization: (-0.825009,0.559422,0.0800432) + New Momentum Direction: (0.760494,0.57855,0.294836) + New Polarization: (-0.633042,0.761674,0.138242) + *** FresnelRefraction *** +Track (trackID 739, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.858909,-0.182376,-0.478555) + Old Polarization: (-0.496685,-0.52439,-0.691606) + New Momentum Direction: (0.722397,-0.246245,-0.646147) + New Polarization: (0.671628,0.027579,0.740375) + *** FresnelRefraction *** +Track (trackID 738, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + +** Photon absorbed! ** +Track (trackID 737, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + +** Photon absorbed! ** +Track (trackID 736, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.816342,0.0385157,-0.576284) +Old Polarization: (-0.545235,-0.277775,-0.790924) +New Polarization: (-0.7678,0.320178,-0.554949) +Polarization Change: (-0.7678,0.320178,-0.554949) +New Momentum Direction: (0.0702027,-0.818916,-0.569603) +Momentum Change: (0.0702027,-0.818916,-0.569603) +Scattering Photon! +Old Momentum Direction: (0.0702027,-0.818916,-0.569603) +Old Polarization: (-0.7678,0.320178,-0.554949) +New Polarization: (-0.718898,0.586549,0.373023) +Polarization Change: (-0.718898,0.586549,0.373023) +New Momentum Direction: (-0.454703,0.00908376,-0.890597) +Momentum Change: (-0.454703,0.00908376,-0.890597) + Photon at Boundary! + Old Momentum Direction: (-0.454703,0.00908376,-0.890597) + Old Polarization: (-0.718898,0.586549,0.373023) + New Momentum Direction: (-0.617423,0.0123345,-0.786535) + New Polarization: (0.660208,0.55175,-0.509605) + *** FresnelRefraction *** +Track (trackID 735, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + +** Photon absorbed! ** +Track (trackID 734, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.555226,0.712247,0.429451) + Old Polarization: (-0.831365,0.460658,0.310847) + New Momentum Direction: (0.753558,0.304025,0.582855) + New Polarization: (-0.604956,0.667677,0.433862) + *** FresnelRefraction *** +Track (trackID 733, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.866024,-0.253336,-0.431072) + Old Polarization: (-0.49039,-0.598592,-0.633408) + New Momentum Direction: (0.734964,-0.343576,-0.584623) + New Polarization: (0.665682,0.201283,0.718576) + *** FresnelRefraction *** +Track (trackID 732, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.701534,0.518544,-0.488838) + Old Polarization: (-0.671041,0.249746,-0.698091) + New Momentum Direction: (0.26002,0.702614,-0.662362) + New Polarization: (0.921982,-0.384499,-0.0459271) + *** FresnelRefraction *** +Track (trackID 731, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.857597,-0.185899,-0.479551) + Old Polarization: (-0.499118,-0.525845,-0.688744) + New Momentum Direction: (0.717607,-0.251727,-0.649364) + New Polarization: (0.676887,0.0326592,0.735362) + *** FresnelRefraction *** +Track (trackID 730, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.661941,0.096943,0.74326) + Old Polarization: (-0.715258,-0.214829,0.665023) + New Momentum Direction: (0.892789,0.130751,0.431083) + New Polarization: (-0.409767,-0.161818,0.897723) + *** FresnelRefraction *** +Track (trackID 729, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.835593,-0.0314311,-0.54845) + Old Polarization: (-0.521624,-0.358556,-0.774174) + New Momentum Direction: (0.673332,-0.0423015,-0.738129) + New Polarization: (0.704158,-0.267616,0.65768) + *** FresnelRefraction *** +Track (trackID 728, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + +** Photon absorbed! ** +Track (trackID 727, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.562455,0.812863,0.15132) + Old Polarization: (-0.822812,0.568286,0.00565425) + New Momentum Direction: (0.764667,0.610706,0.205723) + New Polarization: (-0.631191,0.774139,0.0480253) + *** FresnelRefraction *** +Track (trackID 726, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.822927,-0.45359,0.342121) + Old Polarization: (-0.538297,-0.815097,0.214133) + New Momentum Direction: (0.635271,-0.616571,0.46505) + New Polarization: (0.734553,0.296467,-0.610359) + *** FresnelRefraction *** +Track (trackID 725, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.878196,-0.441946,-0.182908) + Old Polarization: (-0.478148,-0.801515,-0.359093) + New Momentum Direction: (0.759463,-0.601103,-0.248778) + New Polarization: (0.650351,0.710983,0.267482) + *** FresnelRefraction *** +Track (trackID 724, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.671468,0.0267463,0.740551) + Old Polarization: (-0.70371,-0.290146,0.648543) + New Momentum Direction: (0.913243,0.0363769,0.405787) + New Polarization: (-0.383934,-0.256403,0.887047) + *** FresnelRefraction *** +Track (trackID 723, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.66086,0.0899468,0.7451) + Old Polarization: (-0.715993,-0.222055,0.66185) + New Momentum Direction: (0.89417,0.121701,0.430871) + New Polarization: (-0.408763,-0.170764,0.896523) + *** FresnelRefraction *** +Track (trackID 722, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.772364,-0.307635,0.555711) +Old Polarization: (-0.592574,-0.664012,0.456009) +New Polarization: (0.813532,0.550381,-0.187738) +Polarization Change: (0.813532,0.550381,-0.187738) +New Momentum Direction: (-0.463354,0.418437,-0.781162) +Momentum Change: (-0.463354,0.418437,-0.781162) + Photon at Boundary! + Old Momentum Direction: (-0.463354,0.418437,-0.781162) + Old Polarization: (0.813532,0.550381,-0.187738) + New Momentum Direction: (-0.625231,0.564622,-0.538783) + New Polarization: (0.762224,0.590061,-0.266164) + *** FresnelRefraction *** +Track (trackID 721, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.638698,0.703567,-0.31154) +Old Polarization: (-0.739673,0.449843,-0.500525) +New Polarization: (-0.0594227,-0.776889,0.626827) +Polarization Change: (-0.0594227,-0.776889,0.626827) +New Momentum Direction: (0.988909,0.0398117,0.14309) +Momentum Change: (0.988909,0.0398117,0.14309) + Photon at Boundary! + Old Momentum Direction: (0.988909,0.0398117,0.14309) + Old Polarization: (-0.0594227,-0.776889,0.626827) + New Momentum Direction: (0.979431,0.0540865,0.194396) + New Polarization: (0.0808283,-0.987898,-0.132378) + *** FresnelRefraction *** +Track (trackID 720, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + +** Photon absorbed! ** +Track (trackID 719, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + +** Photon absorbed! ** +Track (trackID 718, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.877528,-0.383181,-0.2883) + Old Polarization: (-0.478525,-0.738578,-0.474886) + New Momentum Direction: (0.758543,-0.520702,-0.391768) + New Polarization: (0.650322,0.566952,0.505616) + *** FresnelRefraction *** +Track (trackID 717, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.556473,0.723885,0.407832) + Old Polarization: (-0.830733,0.475991,0.288643) + New Momentum Direction: (0.753831,0.355687,0.552473) + New Polarization: (-0.614731,0.678707,0.401823) + *** FresnelRefraction *** +Track (trackID 716, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.872286,-0.488948,-0.00685169) + Old Polarization: (-0.483023,-0.859364,-0.167877) + New Momentum Direction: (0.749229,-0.662246,-0.00928014) + New Polarization: (0.654577,0.742541,-0.141992) + *** FresnelRefraction *** +Track (trackID 715, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.590382,0.805495,-0.0512508) + Old Polarization: (-0.793844,0.568025,-0.217163) + New Momentum Direction: (0.798652,0.597787,-0.0693306) + New Polarization: (-0.596487,0.771073,-0.222822) + *** FresnelRefraction *** +Track (trackID 714, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.563708,0.772062,0.293518) + Old Polarization: (-0.825435,0.539406,0.166428) + New Momentum Direction: (0.758412,0.518523,0.394899) + New Polarization: (-0.630551,0.737069,0.243177) + *** FresnelRefraction *** +Track (trackID 713, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.849062,-0.476134,0.228888) + Old Polarization: (-0.506192,-0.857225,0.0945197) + New Momentum Direction: (0.70407,-0.640019,0.30767) + New Polarization: (0.681915,0.488429,-0.544453) + *** FresnelRefraction *** +Track (trackID 712, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + +** Photon absorbed! ** +Track (trackID 711, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.659704,0.654406,-0.369518) + Old Polarization: (-0.717371,0.401802,-0.569151) + New Momentum Direction: (-0.659704,0.654406,-0.369518) + New Polarization: (-0.717371,-0.401802,0.569151) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.659704,0.654406,-0.369518) + Old Polarization: (-0.717371,-0.401802,0.569151) + New Momentum Direction: (-0.659704,-0.654406,-0.369518) + New Polarization: (0.717371,-0.401802,-0.569151) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.659704,-0.654406,-0.369518) + Old Polarization: (0.717371,-0.401802,-0.569151) + New Momentum Direction: (-0.659704,-0.654406,0.369518) + New Polarization: (-0.717371,0.401802,-0.569151) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.659704,-0.654406,0.369518) + Old Polarization: (-0.717371,0.401802,-0.569151) + New Momentum Direction: (0.659704,-0.654406,0.369518) + New Polarization: (-0.717371,-0.401802,0.569151) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.659704,-0.654406,0.369518) + Old Polarization: (-0.717371,-0.401802,0.569151) + New Momentum Direction: (0.659704,0.654406,0.369518) + New Polarization: (0.717371,-0.401802,-0.569151) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 710, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + +** Photon absorbed! ** +Track (trackID 709, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.874751,-0.48454,-0.00562717) + Old Polarization: (-0.478525,-0.861947,-0.167516) + New Momentum Direction: (0.757139,-0.65321,-0.007586) + New Polarization: (0.645436,0.749819,-0.145548) + *** FresnelRefraction *** +Track (trackID 708, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.749098,-0.246952,0.614708) + Old Polarization: (-0.618714,-0.592414,0.515983) + New Momentum Direction: (0.440661,-0.334636,0.832969) + New Polarization: (0.846257,-0.154672,-0.509829) + *** FresnelRefraction *** +Track (trackID 707, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.563882,0.783326,0.261607) + Old Polarization: (-0.824791,0.550233,0.130245) + New Momentum Direction: (0.759503,0.546805,0.352363) + New Polarization: (-0.631706,0.749258,0.198897) + *** FresnelRefraction *** +Track (trackID 706, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + +** Photon absorbed! ** +Track (trackID 705, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.876522,-0.355664,-0.324364) + Old Polarization: (-0.479065,-0.710298,-0.515727) + New Momentum Direction: (0.757212,-0.482607,-0.440136) + New Polarization: (0.650186,0.4926,0.578449) + *** FresnelRefraction *** +Track (trackID 704, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.575778,0.815789,0.0544839) + Old Polarization: (-0.809707,0.578188,-0.100363) + New Momentum Direction: (0.779479,0.62207,0.0737595) + New Polarization: (-0.617006,0.78276,-0.0811867) + *** FresnelRefraction *** +Track (trackID 703, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.827173,-0.00178329,-0.561945) + Old Polarization: (-0.53217,-0.323691,-0.782317) + New Momentum Direction: (0.650405,-0.00241049,-0.759584) + New Polarization: (0.721913,-0.309062,0.61913) + *** FresnelRefraction *** +Track (trackID 702, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.816365,0.05514,-0.574898) + Old Polarization: (-0.543998,-0.260864,-0.797506) + New Momentum Direction: (0.625477,0.0744932,-0.776678) + New Polarization: (0.738104,-0.3792,0.558042) + *** FresnelRefraction *** +Track (trackID 701, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.760028,-0.271399,0.590508) + Old Polarization: (-0.606324,-0.623195,0.493963) + New Momentum Direction: (0.479738,-0.366413,0.797241) + New Polarization: (0.825364,-0.119836,-0.551738) + *** FresnelRefraction *** +Track (trackID 700, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.55715,0.773814,0.301324) + Old Polarization: (-0.829961,0.530848,0.171361) + New Momentum Direction: (0.7548,0.513453,0.408219) + New Polarization: (-0.633599,0.731776,0.25111) + *** FresnelRefraction *** +Track (trackID 699, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.659955,0.648432,-0.379467) + Old Polarization: (-0.716685,0.391788,-0.576945) + New Momentum Direction: (-0.659955,0.648432,-0.379467) + New Polarization: (-0.716685,-0.391788,0.576945) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.659955,0.648432,-0.379467) + Old Polarization: (-0.716685,-0.391788,0.576945) + New Momentum Direction: (-0.659955,-0.648432,-0.379467) + New Polarization: (0.716685,-0.391788,-0.576945) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.659955,-0.648432,-0.379467) + Old Polarization: (0.716685,-0.391788,-0.576945) + New Momentum Direction: (-0.659955,-0.648432,0.379467) + New Polarization: (-0.716685,0.391788,-0.576945) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (-0.659955,-0.648432,0.379467) +Old Polarization: (-0.716685,0.391788,-0.576945) +New Polarization: (0.469713,0.709875,-0.52483) +Polarization Change: (0.469713,0.709875,-0.52483) +New Momentum Direction: (-0.857403,0.225201,-0.462757) +Momentum Change: (-0.857403,0.225201,-0.462757) + Photon at Boundary! + Old Momentum Direction: (-0.857403,0.225201,-0.462757) + Old Polarization: (0.469713,0.709875,-0.52483) + New Momentum Direction: (-0.716254,0.305364,-0.627482) + New Polarization: (-0.639738,0.071878,0.765224) + *** FresnelRefraction *** +Track (trackID 698, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.809757,0.0741831,-0.582057) + Old Polarization: (-0.552238,-0.238906,-0.798722) + New Momentum Direction: (0.605284,0.100637,-0.789622) + New Polarization: (0.75278,-0.394824,0.526722) + *** FresnelRefraction *** +Track (trackID 697, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 253 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 66 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 320 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.293075,-0.280735,0.913945) + Old Polarization: (-0.779449,-0.48343,-0.39844) + New Momentum Direction: (-0.395235,-0.378594,0.836932) + New Polarization: (0.463814,0.704191,0.53758) + *** FresnelRefraction *** +Track (trackID 1314, parentID 1) is processed with stopping code 2 +### pop requested out of 319 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.551548,-0.688933,0.470282) + Old Polarization: (0.165821,-0.461982,-0.87125) + New Momentum Direction: (0.749474,-0.172944,0.639045) + New Polarization: (0.367688,-0.693975,-0.619035) + *** FresnelRefraction *** +Track (trackID 1313, parentID 1) is processed with stopping code 2 +### pop requested out of 318 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.37021,-0.270162,-0.888795) + Old Polarization: (0.880411,-0.203183,0.428478) + New Momentum Direction: (0.50031,-0.365103,-0.785105) + New Polarization: (-0.388465,0.715715,-0.580385) + *** FresnelRefraction *** +Track (trackID 1312, parentID 1) is processed with stopping code 2 +### pop requested out of 317 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.345675,0.938311,-0.00904524) + Old Polarization: (-0.215521,0.0887728,0.972456) + New Momentum Direction: (0.468648,0.8833,-0.012263) + New Polarization: (-0.203357,0.121382,0.971551) + *** FresnelRefraction *** +Track (trackID 1311, parentID 1) is processed with stopping code 2 +### pop requested out of 316 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.549508,0.272772,0.789707) + Old Polarization: (0.259786,0.842566,-0.471799) + New Momentum Direction: (0.746181,0.370399,0.55319) + New Polarization: (-0.664379,0.361124,0.654363) + *** FresnelRefraction *** +Track (trackID 1310, parentID 1) is processed with stopping code 2 +### pop requested out of 315 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.455919,0.872802,-0.174225) + Old Polarization: (0.888505,0.457759,-0.0318717) + New Momentum Direction: (-0.619263,0.748673,-0.236646) + New Polarization: (0.779042,0.623471,-0.0661589) + *** FresnelRefraction *** +Track (trackID 1309, parentID 1) is processed with stopping code 2 +### pop requested out of 314 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.661436,0.74814,-0.0528024) + Old Polarization: (0.715184,-0.650367,-0.255997) + New Momentum Direction: (0.897911,0.434301,-0.0716802) + New Polarization: (-0.440175,0.885478,-0.148911) + *** FresnelRefraction *** +Track (trackID 1308, parentID 1) is processed with stopping code 2 +### pop requested out of 313 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.932183,0.36089,-0.0281565) + Old Polarization: (0.36064,0.932605,0.0136828) + New Momentum Direction: (-0.871034,0.489735,-0.0382089) + New Polarization: (-0.489432,-0.858594,0.152554) + *** FresnelRefraction *** +Track (trackID 1307, parentID 1) is processed with stopping code 2 +### pop requested out of 312 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.752781,-0.401289,-0.521813) + Old Polarization: (-0.269142,0.911044,-0.312348) + New Momentum Direction: (-0.459633,-0.541401,-0.704005) + New Polarization: (-0.385237,0.835783,-0.391228) + *** FresnelRefraction *** +Track (trackID 1306, parentID 1) is processed with stopping code 2 +### pop requested out of 311 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.671517,0.692335,-0.264079) + Old Polarization: (-0.475679,0.676034,0.562768) + New Momentum Direction: (0.671517,-0.692335,-0.264079) + New Polarization: (0.740973,0.629778,0.233107) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671517,-0.692335,-0.264079) + Old Polarization: (0.740973,0.629778,0.233107) + New Momentum Direction: (-0.671517,-0.692335,-0.264079) + New Polarization: (0.740973,-0.629778,-0.233107) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1305, parentID 1) is processed with stopping code 2 +### pop requested out of 310 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.153957,-0.316806,0.935912) + Old Polarization: (-0.83577,-0.547006,-0.0476777) + New Momentum Direction: (0.20752,-0.427024,0.880106) + New Polarization: (-0.943529,-0.324883,0.0648418) + *** FresnelRefraction *** +Track (trackID 1304, parentID 1) is processed with stopping code 2 +### pop requested out of 309 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.342816,-0.65561,0.672795) +Old Polarization: (0.473147,-0.498215,-0.726577) +New Polarization: (-0.164192,-0.0798019,0.983195) +Polarization Change: (-0.164192,-0.0798019,0.983195) +New Momentum Direction: (0.53068,-0.84734,0.0198474) +Momentum Change: (0.53068,-0.84734,0.0198474) + Photon at Boundary! + Old Momentum Direction: (0.53068,-0.84734,0.0198474) + Old Polarization: (-0.164192,-0.0798019,0.983195) + New Momentum Direction: (0.721188,-0.692214,0.0269723) + New Polarization: (-0.144031,-0.111748,0.983243) + *** FresnelRefraction *** +Track (trackID 1303, parentID 1) is processed with stopping code 2 +### pop requested out of 308 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.842898,0.362978,0.397202) + Old Polarization: (-0.506634,0.784021,0.358655) + New Momentum Direction: (0.683947,0.492134,0.538535) + New Polarization: (0.689293,-0.194161,-0.69798) + *** FresnelRefraction *** +Track (trackID 1302, parentID 1) is processed with stopping code 2 +### pop requested out of 307 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.517947,0.344123,0.783141) + Old Polarization: (0.847693,0.0837702,0.523831) + New Momentum Direction: (-0.699449,0.464712,0.542967) + New Polarization: (0.673588,0.174747,0.718152) + *** FresnelRefraction *** +Track (trackID 1301, parentID 1) is processed with stopping code 2 +### pop requested out of 306 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1300, parentID 1) is processed with stopping code 2 +### pop requested out of 305 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1299, parentID 1) is processed with stopping code 2 +### pop requested out of 304 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.893556,-0.28348,-0.348133) + Old Polarization: (-0.448702,0.589754,0.671458) + New Momentum Direction: (-0.795416,-0.382686,-0.469963) + New Polarization: (-0.605739,0.527387,0.595772) + *** FresnelRefraction *** +Track (trackID 1298, parentID 1) is processed with stopping code 2 +### pop requested out of 303 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.239741,0.720493,0.650703) + Old Polarization: (0.967885,-0.229605,-0.102371) + New Momentum Direction: (0.325903,0.333674,0.884561) + New Polarization: (0.831343,0.344378,-0.436202) + *** FresnelRefraction *** +Track (trackID 1297, parentID 1) is processed with stopping code 2 +### pop requested out of 302 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.483051,0.723236,-0.49355) + Old Polarization: (-0.744452,-0.0425105,0.666321) + New Momentum Direction: (-0.650326,0.368195,-0.664461) + New Polarization: (-0.695581,0.0629787,0.715682) + *** FresnelRefraction *** +Track (trackID 1296, parentID 1) is processed with stopping code 2 +### pop requested out of 301 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.200525,-0.972736,-0.116513) + Old Polarization: (0.0499249,0.128921,-0.990397) + New Momentum Direction: (0.27232,-0.949108,-0.158229) + New Polarization: (-0.874495,-0.17553,-0.452159) + *** FresnelRefraction *** +Track (trackID 1295, parentID 1) is processed with stopping code 2 +### pop requested out of 300 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.878079,0.258695,0.402561) + Old Polarization: (-0.452491,-0.175223,-0.874385) + New Momentum Direction: (-0.761307,0.350532,0.545471) + New Polarization: (-0.614495,-0.121613,-0.779491) + *** FresnelRefraction *** +Track (trackID 1294, parentID 1) is processed with stopping code 2 +### pop requested out of 299 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.780831,0.126765,-0.611746) + Old Polarization: (-0.623121,-0.0875226,0.777213) + New Momentum Direction: (-0.532701,0.171722,-0.828699) + New Polarization: (-0.844343,-0.0412179,0.534216) + *** FresnelRefraction *** +Track (trackID 1293, parentID 1) is processed with stopping code 2 +### pop requested out of 298 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.764243,-0.50247,0.404298) + Old Polarization: (0.00189747,0.628637,0.777696) + New Momentum Direction: (0.487495,-0.680261,0.547352) + New Polarization: (0.00274548,0.628079,0.778145) + *** FresnelRefraction *** +Track (trackID 1292, parentID 1) is processed with stopping code 2 +### pop requested out of 297 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0978593,0.874163,-0.47567) + Old Polarization: (0.212724,-0.485291,-0.848081) + New Momentum Direction: (0.133154,0.750577,-0.647228) + New Polarization: (-0.115293,0.66034,0.742064) + *** FresnelRefraction *** +Track (trackID 1291, parentID 1) is processed with stopping code 2 +### pop requested out of 296 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.686484,-0.726973,0.0158027) + Old Polarization: (0.658576,0.630816,0.410303) + New Momentum Direction: (0.686484,0.726973,0.0158027) + New Polarization: (0.475738,-0.465466,0.746334) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.686484,0.726973,0.0158027) + Old Polarization: (0.475738,-0.465466,0.746334) + New Momentum Direction: (0.196966,0.980179,0.0213069) + New Polarization: (0.700095,-0.155831,0.696838) + *** FresnelRefraction *** +Track (trackID 1290, parentID 1) is processed with stopping code 2 +### pop requested out of 295 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0858112,-0.969422,-0.229908) + Old Polarization: (0.331518,-0.245393,0.910977) + New Momentum Direction: (-0.11595,-0.943424,-0.310657) + New Polarization: (0.322458,-0.331579,0.886609) + *** FresnelRefraction *** +Track (trackID 1289, parentID 1) is processed with stopping code 2 +### pop requested out of 294 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.813533,0.155606,-0.560312) + Old Polarization: (-0.386031,0.865119,-0.320234) + New Momentum Direction: (0.615034,0.210992,-0.759747) + New Polarization: (0.535638,0.595291,0.598933) + *** FresnelRefraction *** +Track (trackID 1288, parentID 1) is processed with stopping code 2 +### pop requested out of 293 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0716652,0.996713,-0.0377688) + Old Polarization: (0.70371,0.0773605,0.706263) + New Momentum Direction: (-0.0967437,0.994003,-0.0509856) + New Polarization: (0.701501,0.104436,0.704975) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.0967437,0.994003,-0.0509856) + Old Polarization: (0.701501,0.104436,0.704975) + New Momentum Direction: (-0.0716652,0.996713,-0.0377688) + New Polarization: (0.703872,0.077366,0.706101) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.0716652,0.996713,-0.0377688) + Old Polarization: (0.703872,0.077366,0.706101) + New Momentum Direction: (-0.0967437,0.994003,-0.0509856) + New Polarization: (0.701663,0.104443,0.704813) + *** FresnelRefraction *** +Track (trackID 1287, parentID 1) is processed with stopping code 2 +### pop requested out of 292 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.70604,-0.43539,-0.558518) + Old Polarization: (0.0602415,0.822743,-0.565212) + New Momentum Direction: (-0.70604,-0.43539,-0.558518) + New Polarization: (0.0319786,0.76827,-0.639326) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 1286, parentID 1) is processed with stopping code 2 +### pop requested out of 291 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.414157,0.640828,0.646385) + Old Polarization: (-0.887839,0.440883,0.131771) + New Momentum Direction: (0.414157,0.640828,-0.646385) + New Polarization: (0.887839,-0.440883,0.131771) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.414157,0.640828,-0.646385) + Old Polarization: (0.887839,-0.440883,0.131771) + New Momentum Direction: (0.414157,-0.640828,-0.646385) + New Polarization: (-0.887839,-0.440883,-0.131771) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.414157,-0.640828,-0.646385) + Old Polarization: (-0.887839,-0.440883,-0.131771) + New Momentum Direction: (-0.414157,-0.640828,-0.646385) + New Polarization: (-0.887839,0.440883,0.131771) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1285, parentID 1) is processed with stopping code 2 +### pop requested out of 290 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.972883,-0.107011,-0.205056) + Old Polarization: (0.222374,-0.188839,-0.956499) + New Momentum Direction: (-0.949952,-0.14453,-0.27695) + New Polarization: (-0.30042,0.665749,0.683027) + *** FresnelRefraction *** +Track (trackID 1284, parentID 1) is processed with stopping code 2 +### pop requested out of 289 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1283, parentID 1) is processed with stopping code 2 +### pop requested out of 288 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.226558,-0.9286,0.293895) + Old Polarization: (0.46201,0.368092,0.80688) + New Momentum Direction: (0.305613,-0.865697,0.396447) + New Polarization: (-0.623696,-0.496616,-0.603636) + *** FresnelRefraction *** +Track (trackID 1282, parentID 1) is processed with stopping code 2 +### pop requested out of 287 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.69242,-0.637242,-0.338344) +Old Polarization: (0.0856246,-0.538213,0.838448) +New Polarization: (-0.0219705,0.933514,-0.357866) +Polarization Change: (-0.0219705,0.933514,-0.357866) +New Momentum Direction: (0.114371,0.357949,0.92671) +Momentum Change: (0.114371,0.357949,0.92671) + Photon at Boundary! + Old Momentum Direction: (0.114371,0.357949,0.92671) + Old Polarization: (-0.0219705,0.933514,-0.357866) + New Momentum Direction: (0.155557,0.48685,0.859523) + New Polarization: (-0.536965,-0.688662,0.487251) + *** FresnelRefraction *** +Track (trackID 1281, parentID 1) is processed with stopping code 2 +### pop requested out of 286 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.974929,-0.22227,-0.0104185) + Old Polarization: (-0.217227,0.940571,0.261032) + New Momentum Direction: (-0.954024,-0.299402,-0.0140339) + New Polarization: (-0.292652,0.920356,0.259423) + *** FresnelRefraction *** +Track (trackID 1280, parentID 1) is processed with stopping code 2 +### pop requested out of 285 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.502343,0.309241,0.807479) + Old Polarization: (0.566134,0.588232,-0.577474) + New Momentum Direction: (0.680466,0.418893,0.601245) + New Polarization: (-0.604689,-0.142461,0.783618) + *** FresnelRefraction *** +Track (trackID 1279, parentID 1) is processed with stopping code 2 +### pop requested out of 284 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.986872,-0.150489,0.0586199) + Old Polarization: (-0.142786,-0.982606,-0.118731) + New Momentum Direction: (0.975718,-0.204093,0.0795005) + New Polarization: (0.193719,0.634729,-0.748059) + *** FresnelRefraction *** +Track (trackID 1278, parentID 1) is processed with stopping code 2 +### pop requested out of 283 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.805458,0.440575,-0.396399) + Old Polarization: (-0.100405,-0.760627,-0.641378) + New Momentum Direction: (-0.60139,0.593939,-0.534385) + New Polarization: (-0.141123,-0.737305,-0.660655) + *** FresnelRefraction *** +Track (trackID 1277, parentID 1) is processed with stopping code 2 +### pop requested out of 282 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0245533,-0.984855,0.171633) + Old Polarization: (0.614322,-0.12058,-0.779788) + New Momentum Direction: (0.0333474,-0.971879,0.233106) + New Polarization: (0.614807,-0.163938,-0.771451) + *** FresnelRefraction *** +Track (trackID 1276, parentID 1) is processed with stopping code 2 +### pop requested out of 281 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.991019,0.110108,0.0758845) + Old Polarization: (0.00822791,-0.616601,0.787233) + New Momentum Direction: (0.983606,0.148484,0.102333) + New Polarization: (0.0111079,-0.616278,0.78745) + *** FresnelRefraction *** +Track (trackID 1275, parentID 1) is processed with stopping code 2 +### pop requested out of 280 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.377168,0.0175998,0.925978) + Old Polarization: (0.735506,0.613293,0.287929) + New Momentum Direction: (-0.51227,0.023904,0.858492) + New Polarization: (0.687028,0.611223,0.392937) + *** FresnelRefraction *** +Track (trackID 1274, parentID 1) is processed with stopping code 2 +### pop requested out of 279 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0835913,0.0158381,0.996374) + Old Polarization: (-0.775839,-0.626451,0.0750473) + New Momentum Direction: (0.113618,0.0215273,0.993291) + New Polarization: (-0.77329,-0.625792,0.102016) + *** FresnelRefraction *** +Track (trackID 1273, parentID 1) is processed with stopping code 2 +### pop requested out of 278 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0735258,0.935632,0.345235) + Old Polarization: (0.821734,0.252992,-0.510635) + New Momentum Direction: (-0.0992607,0.879161,0.466071) + New Polarization: (0.810638,0.343079,-0.474513) + *** FresnelRefraction *** +Track (trackID 1272, parentID 1) is processed with stopping code 2 +### pop requested out of 277 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1271, parentID 1) is processed with stopping code 2 +### pop requested out of 276 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.78193,-0.622985,-0.0218072) + Old Polarization: (0.539444,-0.658716,-0.524493) + New Momentum Direction: (-0.540545,-0.8408,-0.0294317) + New Polarization: (-0.737651,0.490474,-0.464011) + *** FresnelRefraction *** +Track (trackID 1270, parentID 1) is processed with stopping code 2 +### pop requested out of 275 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1269, parentID 1) is processed with stopping code 2 +### pop requested out of 274 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.976577,-0.113543,0.182769) + Old Polarization: (0.214626,-0.574198,0.790084) + New Momentum Direction: (0.976577,-0.113543,0.182769) + New Polarization: (0.214461,0.444928,-0.869509) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.976577,-0.113543,0.182769) + Old Polarization: (0.214461,0.444928,-0.869509) + New Momentum Direction: (0.956912,-0.153231,0.246655) + New Polarization: (0.28943,0.434801,-0.852747) + *** FresnelRefraction *** +Track (trackID 1268, parentID 1) is processed with stopping code 2 +### pop requested out of 273 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.411511,0.50933,-0.755805) + Old Polarization: (0.79462,0.606638,-0.0238366) + New Momentum Direction: (-0.411511,0.50933,0.755805) + New Polarization: (0.773625,0.633618,-0.00577621) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.411511,0.50933,0.755805) + Old Polarization: (0.773625,0.633618,-0.00577621) + New Momentum Direction: (-0.411511,-0.50933,0.755805) + New Polarization: (-0.773625,0.633618,0.00577621) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.411511,-0.50933,0.755805) + Old Polarization: (-0.773625,0.633618,0.00577621) + New Momentum Direction: (0.411511,-0.50933,0.755805) + New Polarization: (-0.773625,-0.633618,-0.00577621) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.411511,-0.50933,0.755805) + Old Polarization: (-0.773625,-0.633618,-0.00577621) + New Momentum Direction: (0.555621,-0.687696,0.46729) + New Polarization: (-0.780589,-0.624988,0.00836721) + *** FresnelRefraction *** +Track (trackID 1267, parentID 1) is processed with stopping code 2 +### pop requested out of 272 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.913269,0.38153,-0.142736) + Old Polarization: (-0.405843,0.882367,-0.238159) + New Momentum Direction: (0.832671,0.51866,-0.194038) + New Polarization: (0.551768,-0.747306,0.370251) + *** FresnelRefraction *** +Track (trackID 1266, parentID 1) is processed with stopping code 2 +### pop requested out of 271 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1265, parentID 1) is processed with stopping code 2 +### pop requested out of 270 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.605253,-0.782866,0.144188) + Old Polarization: (-0.0903251,-0.247504,-0.964667) + New Momentum Direction: (0.82212,-0.534566,0.195851) + New Polarization: (-0.00637675,-0.352638,-0.935738) + *** FresnelRefraction *** +Track (trackID 1264, parentID 1) is processed with stopping code 2 +### pop requested out of 269 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.956987,0.215647,0.194092) + Old Polarization: (-0.145382,0.222503,-0.964031) + New Momentum Direction: (-0.919353,0.292431,0.263202) + New Polarization: (-0.198043,0.23408,-0.951833) + *** FresnelRefraction *** +Track (trackID 1263, parentID 1) is processed with stopping code 2 +### pop requested out of 268 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.657854,0.18688,-0.729592) + Old Polarization: (0.552086,-0.778572,0.298375) + New Momentum Direction: (0.894298,0.254049,-0.368362) + New Polarization: (0.0734354,-0.89537,-0.439226) + *** FresnelRefraction *** +Track (trackID 1262, parentID 1) is processed with stopping code 2 +### pop requested out of 267 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.976032,-0.202766,0.0790344) + Old Polarization: (0.109328,-0.770864,-0.627547) + New Momentum Direction: (-0.955249,-0.275605,0.107426) + New Polarization: (-0.148965,0.134462,-0.979658) + *** FresnelRefraction *** +Track (trackID 1261, parentID 1) is processed with stopping code 2 +### pop requested out of 266 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.371824,-0.303852,-0.877166) + Old Polarization: (-0.752511,-0.65196,-0.0931442) + New Momentum Direction: (0.50331,-0.411301,-0.759941) + New Polarization: (-0.736777,-0.66377,-0.128718) + *** FresnelRefraction *** +Track (trackID 1260, parentID 1) is processed with stopping code 2 +### pop requested out of 265 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1259, parentID 1) is processed with stopping code 2 +### pop requested out of 264 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.940533,0.284497,-0.185634) + Old Polarization: (-0.330309,0.638273,-0.695344) + New Momentum Direction: (0.887427,0.386038,-0.251888) + New Polarization: (0.448413,-0.849567,0.277779) + *** FresnelRefraction *** +Track (trackID 1258, parentID 1) is processed with stopping code 2 +### pop requested out of 263 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.215287,-0.120229,0.969121) + Old Polarization: (0.685838,-0.687844,-0.23769) + New Momentum Direction: (0.291068,-0.162549,0.942792) + New Polarization: (-0.922945,0.211758,0.32145) + *** FresnelRefraction *** +Track (trackID 1257, parentID 1) is processed with stopping code 2 +### pop requested out of 262 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.700994,-0.259814,-0.664157) + Old Polarization: (0.605693,0.708524,0.362118) + New Momentum Direction: (-0.700994,-0.259814,-0.664157) + New Polarization: (0.496117,0.491354,-0.715849) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.700994,-0.259814,-0.664157) + Old Polarization: (0.496117,0.491354,-0.715849) + New Momentum Direction: (-0.700994,-0.259814,0.664157) + New Polarization: (-0.496117,-0.491354,-0.715849) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1256, parentID 1) is processed with stopping code 2 +### pop requested out of 261 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0696201,0.746877,-0.661307) + Old Polarization: (0.973502,-0.195616,-0.118441) + New Momentum Direction: (0.0943026,0.434417,-0.895762) + New Polarization: (0.929088,0.284828,0.235944) + *** FresnelRefraction *** +Track (trackID 1255, parentID 1) is processed with stopping code 2 +### pop requested out of 260 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1254, parentID 1) is processed with stopping code 2 +### pop requested out of 259 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1253, parentID 1) is processed with stopping code 2 +### pop requested out of 258 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.159404,-0.585188,-0.795076) + Old Polarization: (0.170129,0.809608,-0.561775) + New Momentum Direction: (0.214624,-0.787907,-0.577182) + New Polarization: (0.207838,0.614262,-0.761239) + *** FresnelRefraction *** +Track (trackID 1252, parentID 1) is processed with stopping code 2 +### pop requested out of 257 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.497528,0.846936,-0.187525) + Old Polarization: (-0.863283,0.504589,-0.0114826) + New Momentum Direction: (0.674407,0.693226,-0.254192) + New Polarization: (-0.725595,0.685974,-0.0543351) + *** FresnelRefraction *** +Track (trackID 1251, parentID 1) is processed with stopping code 2 +### pop requested out of 256 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.468877,0.768414,0.43554) + Old Polarization: (-0.512092,0.165276,-0.84288) + New Momentum Direction: (-0.632809,0.504007,0.587817) + New Polarization: (-0.553611,0.23626,-0.798559) + *** FresnelRefraction *** +Track (trackID 1250, parentID 1) is processed with stopping code 2 +### pop requested out of 255 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1249, parentID 1) is processed with stopping code 2 +### pop requested out of 254 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1248, parentID 1) is processed with stopping code 2 +### pop requested out of 253 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1247, parentID 1) is processed with stopping code 2 +### pop requested out of 252 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.502351,0.843504,-0.190116) + Old Polarization: (-0.851504,0.520814,0.0607741) + New Momentum Direction: (0.678985,0.687713,-0.256963) + New Polarization: (-0.708882,0.705185,0.0141857) + *** FresnelRefraction *** +Track (trackID 1246, parentID 1) is processed with stopping code 2 +### pop requested out of 251 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.494991,0.846147,-0.197533) + Old Polarization: (-0.856418,0.513499,0.0535414) + New Momentum Direction: (0.673437,0.688664,-0.268745) + New Polarization: (-0.713985,0.700143,0.00498513) + *** FresnelRefraction *** +Track (trackID 1245, parentID 1) is processed with stopping code 2 +### pop requested out of 250 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.814133,0.247908,0.525099) + Old Polarization: (-0.505956,-0.140902,0.850973) + New Momentum Direction: (0.617162,0.335923,0.711524) + New Polarization: (0.692254,-0.661667,-0.288064) + *** FresnelRefraction *** +Track (trackID 1244, parentID 1) is processed with stopping code 2 +### pop requested out of 249 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.637927,0.0119461,-0.770005) + Old Polarization: (-0.701346,-0.403952,-0.587312) + New Momentum Direction: (0.637927,0.0119461,0.770005) + New Polarization: (0.297531,-0.926063,-0.232128) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.637927,0.0119461,0.770005) + Old Polarization: (0.297531,-0.926063,-0.232128) + New Momentum Direction: (-0.637927,0.0119461,0.770005) + New Polarization: (0.297531,0.926063,0.232128) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.637927,0.0119461,0.770005) + Old Polarization: (0.297531,0.926063,0.232128) + New Momentum Direction: (-0.860016,0.0161051,0.510013) + New Polarization: (0.212684,0.919855,0.329594) + *** FresnelRefraction *** +Track (trackID 1243, parentID 1) is processed with stopping code 2 +### pop requested out of 248 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1242, parentID 1) is processed with stopping code 2 +### pop requested out of 247 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.483282,0.645665,-0.591232) + Old Polarization: (-0.872633,0.300996,-0.384595) + New Momentum Direction: (0.483282,-0.645665,-0.591232) + New Polarization: (0.872633,0.300996,0.384595) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.483282,-0.645665,-0.591232) + Old Polarization: (0.872633,0.300996,0.384595) + New Momentum Direction: (0.483282,-0.645665,0.591232) + New Polarization: (-0.872633,-0.300996,0.384595) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.483282,-0.645665,0.591232) + Old Polarization: (-0.872633,-0.300996,0.384595) + New Momentum Direction: (-0.483282,-0.645665,0.591232) + New Polarization: (-0.872633,0.300996,-0.384595) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1241, parentID 1) is processed with stopping code 2 +### pop requested out of 246 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.582562,0.797805,0.155333) + Old Polarization: (-0.762452,0.470204,0.444494) + New Momentum Direction: (0.787322,0.579701,0.20993) + New Polarization: (-0.60138,0.647025,0.468721) + *** FresnelRefraction *** +Track (trackID 1240, parentID 1) is processed with stopping code 2 +### pop requested out of 245 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.918769,-0.369237,0.139739) + Old Polarization: (-0.392561,-0.816829,0.422713) + New Momentum Direction: (0.843509,-0.502344,0.190114) + New Polarization: (0.534154,0.82167,-0.198839) + *** FresnelRefraction *** +Track (trackID 1239, parentID 1) is processed with stopping code 2 +### pop requested out of 244 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.671812,-0.103685,-0.733429) + Old Polarization: (-0.662867,-0.526041,-0.532812) + New Momentum Direction: (0.914143,-0.141085,-0.380049) + New Polarization: (-0.394002,-0.529864,-0.751004) + *** FresnelRefraction *** +Track (trackID 1238, parentID 1) is processed with stopping code 2 +### pop requested out of 243 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.850336,0.116302,0.513228) + Old Polarization: (-0.466139,-0.286145,0.837159) + New Momentum Direction: (0.700771,0.157662,0.695746) + New Polarization: (0.635796,-0.580354,-0.508874) + *** FresnelRefraction *** +Track (trackID 1237, parentID 1) is processed with stopping code 2 +### pop requested out of 242 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.802723,0.288067,0.522161) + Old Polarization: (-0.51823,-0.0962942,0.849803) + New Momentum Direction: (0.590503,0.389838,0.706635) + New Polarization: (0.708943,-0.668955,-0.223381) + *** FresnelRefraction *** +Track (trackID 1236, parentID 1) is processed with stopping code 2 +### pop requested out of 241 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.54706,0.836869,0.0193779) + Old Polarization: (-0.802995,0.518095,0.294577) + New Momentum Direction: (0.73723,0.675137,0.0261142) + New Polarization: (-0.65175,0.700442,0.290867) + *** FresnelRefraction *** +Track (trackID 1235, parentID 1) is processed with stopping code 2 +### pop requested out of 240 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1234, parentID 1) is processed with stopping code 2 +### pop requested out of 239 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.681194,0.615813,0.395915) + Old Polarization: (-0.6528,0.266123,0.709246) + New Momentum Direction: (0.13158,0.833843,0.53609) + New Polarization: (0.915938,-0.309096,0.255962) + *** FresnelRefraction *** +Track (trackID 1233, parentID 1) is processed with stopping code 2 +### pop requested out of 238 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.906013,-0.421623,-0.0370763) + Old Polarization: (-0.40272,-0.885703,0.230969) + New Momentum Direction: (0.820584,-0.569329,-0.0500651) + New Polarization: (0.544553,0.752258,0.370904) + *** FresnelRefraction *** +Track (trackID 1232, parentID 1) is processed with stopping code 2 +### pop requested out of 237 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.626627,0.723129,0.290556) + Old Polarization: (-0.712585,0.380703,0.589311) + New Momentum Direction: (0.851264,0.345759,0.394716) + New Polarization: (-0.524727,0.555949,0.644657) + *** FresnelRefraction *** +Track (trackID 1231, parentID 1) is processed with stopping code 2 +### pop requested out of 236 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.894856,-0.437092,-0.0904567) + Old Polarization: (-0.418448,-0.892035,0.170808) + New Momentum Direction: (0.794781,-0.594304,-0.122992) + New Polarization: (0.570179,0.661782,0.486765) + *** FresnelRefraction *** +Track (trackID 1230, parentID 1) is processed with stopping code 2 +### pop requested out of 235 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.504536,0.491612,-0.709761) + Old Polarization: (-0.848208,0.128741,-0.513779) + New Momentum Direction: (0.683167,0.665667,-0.300284) + New Polarization: (-0.611255,0.296264,-0.73389) + *** FresnelRefraction *** +Track (trackID 1229, parentID 1) is processed with stopping code 2 +### pop requested out of 234 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.917479,-0.250696,0.308842) + Old Polarization: (-0.393245,-0.688582,0.609273) + New Momentum Direction: (0.84138,-0.340605,0.419604) + New Polarization: (0.534434,0.408908,-0.739712) + *** FresnelRefraction *** +Track (trackID 1228, parentID 1) is processed with stopping code 2 +### pop requested out of 233 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479389,0.727911,-0.490237) + Old Polarization: (-0.877582,0.39379,-0.273458) + New Momentum Direction: (0.647272,0.378023,-0.66192) + New Polarization: (-0.727601,0.565267,-0.388676) + *** FresnelRefraction *** +Track (trackID 1227, parentID 1) is processed with stopping code 2 +### pop requested out of 232 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.478636,0.776051,-0.410673) + Old Polarization: (-0.877096,0.443986,-0.183246) + New Momentum Direction: (0.647812,0.520957,-0.555826) + New Polarization: (-0.735235,0.618556,-0.277161) + *** FresnelRefraction *** +Track (trackID 1226, parentID 1) is processed with stopping code 2 +### pop requested out of 231 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.904154,-0.111482,0.412405) + Old Polarization: (-0.402895,-0.543532,0.736375) + New Momentum Direction: (0.818354,-0.149975,0.554801) + New Polarization: (0.542876,-0.115125,-0.831885) + *** FresnelRefraction *** +Track (trackID 1225, parentID 1) is processed with stopping code 2 +### pop requested out of 230 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.917025,-0.391205,0.0776174) + Old Polarization: (-0.391919,-0.84783,0.357188) + New Momentum Direction: (0.841655,-0.529691,0.105094) + New Polarization: (0.53089,0.847238,0.0185373) + *** FresnelRefraction *** +Track (trackID 1224, parentID 1) is processed with stopping code 2 +### pop requested out of 229 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.478053,0.780891,-0.402089) + Old Polarization: (-0.87718,0.447888,-0.173064) + New Momentum Direction: (0.64769,0.532657,-0.54477) + New Polarization: (-0.735628,0.623349,-0.265117) + *** FresnelRefraction *** +Track (trackID 1223, parentID 1) is processed with stopping code 2 +### pop requested out of 228 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.90565,-0.423643,-0.0180376) + Old Polarization: (-0.406109,-0.87883,0.250466) + New Momentum Direction: (0.81748,-0.575436,-0.0245005) + New Polarization: (0.552319,0.771158,0.316636) + *** FresnelRefraction *** +Track (trackID 1222, parentID 1) is processed with stopping code 2 +### pop requested out of 227 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.473956,0.773864,-0.420118) + Old Polarization: (-0.879836,0.435386,-0.190598) + New Momentum Direction: (0.644346,0.508529,-0.571154) + New Polarization: (-0.73731,0.611324,-0.287501) + *** FresnelRefraction *** +Track (trackID 1221, parentID 1) is processed with stopping code 2 +### pop requested out of 226 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1220, parentID 1) is processed with stopping code 2 +### pop requested out of 225 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.592526,0.784076,0.184761) + Old Polarization: (-0.751464,0.455381,0.47742) + New Momentum Direction: (0.80055,0.544799,0.249627) + New Polarization: (-0.587267,0.630274,0.507811) + *** FresnelRefraction *** +Track (trackID 1219, parentID 1) is processed with stopping code 2 +### pop requested out of 224 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.592991,0.785212,0.178339) +Old Polarization: (-0.751652,0.460375,0.472307) +New Polarization: (-0.622897,0.687886,0.372576) +Polarization Change: (-0.622897,0.687886,0.372576) +New Momentum Direction: (0.552755,0.72402,-0.412623) +Momentum Change: (0.552755,0.72402,-0.412623) + Photon at Boundary! + Old Momentum Direction: (0.552755,0.72402,-0.412623) + Old Polarization: (-0.622897,0.687886,0.372576) + New Momentum Direction: (0.744889,0.368715,-0.556048) + New Polarization: (-0.335047,0.927436,0.166149) + *** FresnelRefraction *** +Track (trackID 1218, parentID 1) is processed with stopping code 2 +### pop requested out of 223 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1217, parentID 1) is processed with stopping code 2 +### pop requested out of 222 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.540605,0.841209,0.0106613) + Old Polarization: (-0.80844,0.515956,0.283223) + New Momentum Direction: (0.731765,0.681404,0.0144312) + New Polarization: (-0.657598,0.700318,0.277705) + *** FresnelRefraction *** +Track (trackID 1216, parentID 1) is processed with stopping code 2 +### pop requested out of 221 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.902395,-0.428739,-0.0432071) + Old Polarization: (-0.409623,-0.884618,0.222845) + New Momentum Direction: (0.810864,-0.582286,-0.0586811) + New Polarization: (0.557182,0.737432,0.381762) + *** FresnelRefraction *** +Track (trackID 1215, parentID 1) is processed with stopping code 2 +### pop requested out of 220 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.55292,0.830482,0.0676701) + Old Polarization: (-0.793965,0.500483,0.345161) + New Momentum Direction: (0.750199,0.654807,0.0918143) + New Polarization: (-0.639697,0.683623,0.351352) + *** FresnelRefraction *** +Track (trackID 1214, parentID 1) is processed with stopping code 2 +### pop requested out of 219 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.472884,0.72782,-0.496647) + Old Polarization: (-0.881083,0.385072,-0.274614) + New Momentum Direction: (0.642804,0.361987,-0.675106) + New Polarization: (-0.728885,0.560134,-0.39367) + *** FresnelRefraction *** +Track (trackID 1213, parentID 1) is processed with stopping code 2 +### pop requested out of 218 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.610135,0.753078,0.246189) + Old Polarization: (-0.730942,0.415127,0.541658) + New Momentum Direction: (0.827902,0.450537,0.334058) + New Polarization: (-0.556833,0.58889,0.585786) + *** FresnelRefraction *** +Track (trackID 1212, parentID 1) is processed with stopping code 2 +### pop requested out of 217 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.887141,-0.437072,-0.148153) + Old Polarization: (-0.424897,-0.898844,0.107428) + New Momentum Direction: (0.780817,-0.591692,-0.200564) + New Polarization: (0.576865,0.559528,0.59511) + *** FresnelRefraction *** +Track (trackID 1211, parentID 1) is processed with stopping code 2 +### pop requested out of 216 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.575873,0.807772,0.125996) + Old Polarization: (-0.770644,0.484909,0.413486) + New Momentum Direction: (0.776398,0.606919,0.169869) + New Polarization: (-0.612281,0.662468,0.431565) + *** FresnelRefraction *** +Track (trackID 1210, parentID 1) is processed with stopping code 2 +### pop requested out of 215 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.509183,0.849324,-0.139219) + Old Polarization: (-0.843155,0.524715,0.117315) + New Momentum Direction: (0.68933,0.699501,-0.188474) + New Polarization: (-0.698912,0.710597,0.0810845) + *** FresnelRefraction *** +Track (trackID 1209, parentID 1) is processed with stopping code 2 +### pop requested out of 214 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.554577,0.264435,-0.788998) + Old Polarization: (-0.792083,-0.12286,-0.597922) + New Momentum Direction: (0.752571,0.358843,-0.55215) + New Polarization: (-0.580428,-0.0345646,-0.813578) + *** FresnelRefraction *** +Track (trackID 1208, parentID 1) is processed with stopping code 2 +### pop requested out of 213 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.510114,0.447398,-0.734587) + Old Polarization: (-0.840469,0.0778236,-0.536242) + New Momentum Direction: (0.693083,0.607871,-0.387465) + New Polarization: (-0.618163,0.224682,-0.753255) + *** FresnelRefraction *** +Track (trackID 1207, parentID 1) is processed with stopping code 2 +### pop requested out of 212 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.919942,-0.351956,0.172726) + Old Polarization: (-0.391341,-0.797757,0.458734) + New Momentum Direction: (0.84583,-0.478891,0.235021) + New Polarization: (0.532504,0.78422,-0.318493) + *** FresnelRefraction *** +Track (trackID 1206, parentID 1) is processed with stopping code 2 +### pop requested out of 211 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.924924,-0.298558,0.235328) + Old Polarization: (-0.379781,-0.753045,0.537299) + New Momentum Direction: (0.859228,-0.401786,0.316694) + New Polarization: (0.511104,0.647103,-0.565712) + *** FresnelRefraction *** +Track (trackID 1205, parentID 1) is processed with stopping code 2 +### pop requested out of 210 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.875598,0.0214441,0.482564) + Old Polarization: (-0.436516,-0.392649,0.809494) + New Momentum Direction: (0.758064,0.0289529,0.651537) + New Polarization: (0.591647,-0.450853,-0.668346) + *** FresnelRefraction *** +Track (trackID 1204, parentID 1) is processed with stopping code 2 +### pop requested out of 209 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.480903,0.685968,-0.546059) + Old Polarization: (-0.87583,0.346957,-0.335473) + New Momentum Direction: (0.480903,-0.685968,-0.546059) + New Polarization: (-0.541531,0.257425,-0.800298) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480903,-0.685968,-0.546059) + Old Polarization: (-0.541531,0.257425,-0.800298) + New Momentum Direction: (0.480903,-0.685968,0.546059) + New Polarization: (0.541531,-0.257425,-0.800298) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480903,-0.685968,0.546059) + Old Polarization: (0.541531,-0.257425,-0.800298) + New Momentum Direction: (-0.480903,-0.685968,0.546059) + New Polarization: (0.541531,0.257425,0.800298) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480903,-0.685968,0.546059) + Old Polarization: (0.541531,0.257425,0.800298) + New Momentum Direction: (-0.649395,-0.1859,0.737379) + New Polarization: (0.734947,-0.402447,0.545792) + *** FresnelRefraction *** +Track (trackID 1203, parentID 1) is processed with stopping code 2 +### pop requested out of 208 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.536129,0.844046,0.0122957) + Old Polarization: (-0.811408,0.511272,0.28323) + New Momentum Direction: (0.729372,0.683913,0.0167275) + New Polarization: (-0.660428,0.697527,0.278012) + *** FresnelRefraction *** +Track (trackID 1202, parentID 1) is processed with stopping code 2 +### pop requested out of 207 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.616241,0.74195,0.264115) + Old Polarization: (-0.724058,0.401819,0.560608) + New Momentum Direction: (0.836866,0.413531,0.358673) + New Polarization: (-0.545524,0.575723,0.609054) + *** FresnelRefraction *** +Track (trackID 1201, parentID 1) is processed with stopping code 2 +### pop requested out of 206 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.539253,0.329389,-0.775054) + Old Polarization: (-0.809524,-0.0509168,-0.584875) + New Momentum Direction: (0.7307,0.446329,-0.516594) + New Polarization: (-0.59871,0.0553203,-0.799053) + *** FresnelRefraction *** +Track (trackID 1200, parentID 1) is processed with stopping code 2 +### pop requested out of 205 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1199, parentID 1) is processed with stopping code 2 +### pop requested out of 204 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.917761,-0.206231,0.339388) + Old Polarization: (-0.387808,-0.649516,0.654014) + New Momentum Direction: (0.845207,-0.277533,0.456728) + New Polarization: (0.522179,0.246847,-0.816331) + *** FresnelRefraction *** +Track (trackID 1198, parentID 1) is processed with stopping code 2 +### pop requested out of 203 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1197, parentID 1) is processed with stopping code 2 +### pop requested out of 202 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1196, parentID 1) is processed with stopping code 2 +### pop requested out of 201 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.646071,0.684974,0.336753) + Old Polarization: (-0.691118,0.337724,0.638982) + New Momentum Direction: (0.646071,-0.684974,0.336753) + New Polarization: (-0.201461,0.272517,0.940823) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646071,-0.684974,0.336753) + Old Polarization: (-0.201461,0.272517,0.940823) + New Momentum Direction: (-0.646071,-0.684974,0.336753) + New Polarization: (-0.201461,-0.272517,-0.940823) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1195, parentID 1) is processed with stopping code 2 +### pop requested out of 200 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.919744,-0.27262,0.282398) + Old Polarization: (-0.390142,-0.713979,0.581397) + New Momentum Direction: (0.846316,-0.369969,0.383239) + New Polarization: (0.529536,0.506263,-0.680654) + *** FresnelRefraction *** +Track (trackID 1194, parentID 1) is processed with stopping code 2 +### pop requested out of 199 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.648936,0.688798,0.323171) + Old Polarization: (-0.689027,0.35189,0.633573) + New Momentum Direction: (0.648936,-0.688798,0.323171) + New Polarization: (-0.206532,0.249332,0.946139) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.648936,-0.688798,0.323171) + Old Polarization: (-0.206532,0.249332,0.946139) + New Momentum Direction: (-0.648936,-0.688798,0.323171) + New Polarization: (-0.206532,-0.249332,-0.946139) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.648936,-0.688798,0.323171) + Old Polarization: (-0.206532,-0.249332,-0.946139) + New Momentum Direction: (-0.648936,-0.688798,-0.323171) + New Polarization: (0.206532,0.249332,-0.946139) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.648936,-0.688798,-0.323171) + Old Polarization: (0.206532,0.249332,-0.946139) + New Momentum Direction: (-0.875003,-0.210925,-0.435753) + New Polarization: (0.484113,-0.385326,-0.785594) + *** FresnelRefraction *** +Track (trackID 1193, parentID 1) is processed with stopping code 2 +### pop requested out of 198 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.878863,-0.0134641,0.476885) + Old Polarization: (-0.436214,-0.42744,0.791841) + New Momentum Direction: (0.760774,-0.0183166,0.648758) + New Polarization: (0.595534,-0.377659,-0.709023) + *** FresnelRefraction *** +Track (trackID 1192, parentID 1) is processed with stopping code 2 +### pop requested out of 197 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.865109,-0.427352,-0.262596) + Old Polarization: (-0.447771,-0.893916,-0.020391) + New Momentum Direction: (0.736426,-0.576397,-0.35418) + New Polarization: (0.606816,0.331343,0.722486) + *** FresnelRefraction *** +Track (trackID 1191, parentID 1) is processed with stopping code 2 +### pop requested out of 196 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.831153,-0.4097,-0.375939) + Old Polarization: (-0.488493,-0.860987,-0.141688) + New Momentum Direction: (0.653922,-0.557445,-0.511509) + New Polarization: (0.670051,0.112779,0.733697) + *** FresnelRefraction *** +Track (trackID 1190, parentID 1) is processed with stopping code 2 +### pop requested out of 195 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1189, parentID 1) is processed with stopping code 2 +### pop requested out of 194 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.901788,-0.117082,0.416017) + Old Polarization: (-0.408534,-0.544973,0.732192) + New Momentum Direction: (0.811115,-0.158453,0.563014) + New Polarization: (0.55381,-0.101533,-0.82643) + *** FresnelRefraction *** +Track (trackID 1188, parentID 1) is processed with stopping code 2 +### pop requested out of 193 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1187, parentID 1) is processed with stopping code 2 +### pop requested out of 192 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1186, parentID 1) is processed with stopping code 2 +### pop requested out of 191 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.810612,0.25279,0.528209) + Old Polarization: (-0.51078,-0.135899,0.848903) + New Momentum Direction: (0.605039,0.34371,0.718186) + New Polarization: (0.701635,-0.656537,-0.276889) + *** FresnelRefraction *** +Track (trackID 1185, parentID 1) is processed with stopping code 2 +### pop requested out of 190 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1184, parentID 1) is processed with stopping code 2 +### pop requested out of 189 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.474804,0.767035,-0.43153) + Old Polarization: (-0.879617,0.429692,-0.204058) + New Momentum Direction: (0.644648,0.491077,-0.585894) + New Polarization: (-0.736447,0.604553,-0.303583) + *** FresnelRefraction *** +Track (trackID 1183, parentID 1) is processed with stopping code 2 +### pop requested out of 188 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.882238,-0.00726113,0.470748) + Old Polarization: (-0.428869,-0.424909,0.797198) + New Momentum Direction: (0.772266,-0.00979813,0.635224) + New Polarization: (0.580631,-0.394894,-0.711987) + *** FresnelRefraction *** +Track (trackID 1182, parentID 1) is processed with stopping code 2 +### pop requested out of 187 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.768245,-0.296481,-0.567361) + Old Polarization: (-0.55574,-0.748778,-0.361227) + New Momentum Direction: (0.505531,-0.3996,-0.764695) + New Polarization: (0.75988,-0.213601,0.613968) + *** FresnelRefraction *** +Track (trackID 1181, parentID 1) is processed with stopping code 2 +### pop requested out of 186 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.60116,0.768773,0.218163) + Old Polarization: (-0.741146,0.434269,0.51197) + New Momentum Direction: (0.814619,0.498999,0.295628) + New Polarization: (-0.572263,0.608555,0.549705) + *** FresnelRefraction *** +Track (trackID 1180, parentID 1) is processed with stopping code 2 +### pop requested out of 185 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.707548,-0.175689,-0.684477) + Old Polarization: (-0.623621,-0.61081,-0.48786) + New Momentum Direction: (0.295266,-0.237533,-0.925417) + New Polarization: (0.864278,-0.346452,0.364685) + *** FresnelRefraction *** +Track (trackID 1179, parentID 1) is processed with stopping code 2 +### pop requested out of 184 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1178, parentID 1) is processed with stopping code 2 +### pop requested out of 183 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.683832,-0.127088,-0.718487) + Old Polarization: (-0.649807,-0.553941,-0.520481) + New Momentum Direction: (0.683832,-0.127088,0.718487) + New Polarization: (0.168514,-0.930582,-0.324991) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.683832,-0.127088,0.718487) + Old Polarization: (0.168514,-0.930582,-0.324991) + New Momentum Direction: (0.140995,-0.17244,0.974877) + New Polarization: (0.275668,-0.938931,-0.205951) + *** FresnelRefraction *** +Track (trackID 1177, parentID 1) is processed with stopping code 2 +### pop requested out of 182 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.776089,0.372214,0.509059) + Old Polarization: (-0.547554,-0.00272093,0.836766) + New Momentum Direction: (0.522523,0.503248,0.688267) + New Polarization: (0.750575,-0.654446,-0.0913086) + *** FresnelRefraction *** +Track (trackID 1176, parentID 1) is processed with stopping code 2 +### pop requested out of 181 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.923888,-0.347017,0.161278) + Old Polarization: (-0.381683,-0.805528,0.453258) + New Momentum Direction: (0.856795,-0.467622,0.21733) + New Polarization: (0.514365,0.804851,-0.296045) + *** FresnelRefraction *** +Track (trackID 1175, parentID 1) is processed with stopping code 2 +### pop requested out of 180 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.619904,0.0415249,-0.783578) + Old Polarization: (-0.719811,-0.367468,-0.588931) + New Momentum Direction: (0.84284,0.0564584,-0.535195) + New Polarization: (-0.488779,-0.335848,-0.805172) + *** FresnelRefraction *** +Track (trackID 1174, parentID 1) is processed with stopping code 2 +### pop requested out of 179 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.872826,0.0239777,0.487441) + Old Polarization: (-0.441207,-0.388128,0.809131) + New Momentum Direction: (0.750029,0.0324958,0.660607) + New Polarization: (0.6004,-0.452425,-0.659417) + *** FresnelRefraction *** +Track (trackID 1173, parentID 1) is processed with stopping code 2 +### pop requested out of 178 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.488313,0.836232,-0.249532) +Old Polarization: (-0.864001,0.503477,-0.00352683) +New Polarization: (0.583831,0.578832,-0.569294) +Polarization Change: (0.583831,0.578832,-0.569294) +New Momentum Direction: (-0.757878,0.640016,-0.126492) +Momentum Change: (-0.757878,0.640016,-0.126492) + Photon at Boundary! + Old Momentum Direction: (-0.757878,0.640016,-0.126492) + Old Polarization: (0.583831,0.578832,-0.569294) + New Momentum Direction: (-0.757878,-0.640016,-0.126492) + New Polarization: (-0.583831,0.578832,0.569294) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.757878,-0.640016,-0.126492) + Old Polarization: (-0.583831,0.578832,0.569294) + New Momentum Direction: (-0.461573,-0.870268,-0.171999) + New Polarization: (-0.804991,0.329431,0.493421) + *** FresnelRefraction *** +Track (trackID 1172, parentID 1) is processed with stopping code 2 +### pop requested out of 177 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.496636,0.561369,-0.66198) + Old Polarization: (-0.859183,0.209778,-0.466688) + New Momentum Direction: (0.496636,0.561369,0.66198) + New Polarization: (0.859183,-0.209778,-0.466688) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.496636,0.561369,0.66198) + Old Polarization: (0.859183,-0.209778,-0.466688) + New Momentum Direction: (0.496636,-0.561369,0.66198) + New Polarization: (-0.859183,-0.209778,0.466688) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.496636,-0.561369,0.66198) + Old Polarization: (-0.859183,-0.209778,0.466688) + New Momentum Direction: (-0.496636,-0.561369,0.66198) + New Polarization: (-0.859183,0.209778,-0.466688) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.496636,-0.561369,0.66198) + Old Polarization: (-0.859183,0.209778,-0.466688) + New Momentum Direction: (-0.496636,-0.561369,-0.66198) + New Polarization: (0.859183,-0.209778,-0.466688) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.496636,-0.561369,-0.66198) + Old Polarization: (0.859183,-0.209778,-0.466688) + New Momentum Direction: (-0.496636,0.561369,-0.66198) + New Polarization: (-0.859183,-0.209778,0.466688) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.496636,0.561369,-0.66198) + Old Polarization: (-0.859183,-0.209778,0.466688) + New Momentum Direction: (0.496636,0.561369,-0.66198) + New Polarization: (-0.859183,0.209778,-0.466688) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.496636,0.561369,-0.66198) + Old Polarization: (-0.859183,0.209778,-0.466688) + New Momentum Direction: (0.496636,0.561369,0.66198) + New Polarization: (0.859183,-0.209778,-0.466688) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1171, parentID 1) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.521331,0.402118,-0.752672) + Old Polarization: (-0.828888,0.0289315,-0.558665) + New Momentum Direction: (0.707112,0.545417,-0.450014) + New Polarization: (-0.614111,0.158219,-0.773198) + *** FresnelRefraction *** +Track (trackID 1170, parentID 1) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.487274,0.80202,-0.345437) + Old Polarization: (-0.870048,0.479727,-0.113483) + New Momentum Direction: (0.656403,0.5938,-0.465335) + New Polarization: (-0.729767,0.656147,-0.192123) + *** FresnelRefraction *** +Track (trackID 1169, parentID 1) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.867804,-0.433879,-0.24221) +Old Polarization: (-0.446428,-0.894813,0.00342268) +New Polarization: (-0.494467,-0.38032,-0.781575) +Polarization Change: (-0.494467,-0.38032,-0.781575) +New Momentum Direction: (-0.205314,-0.822641,0.530196) +Momentum Change: (-0.205314,-0.822641,0.530196) + Photon at Boundary! + Old Momentum Direction: (-0.205314,-0.822641,0.530196) + Old Polarization: (-0.494467,-0.38032,-0.781575) + New Momentum Direction: (-0.278034,-0.638116,0.717987) + New Polarization: (-0.523889,-0.52577,-0.670154) + *** FresnelRefraction *** +Track (trackID 1168, parentID 1) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1167, parentID 1) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.919636,-0.281357,0.274059) +Old Polarization: (-0.391002,-0.72197,0.570856) +New Polarization: (-0.78514,-0.107902,0.609846) +Polarization Change: (-0.78514,-0.107902,0.609846) +New Momentum Direction: (-0.271284,0.945128,-0.182037) +Momentum Change: (-0.271284,0.945128,-0.182037) +Scattering Photon! +Old Momentum Direction: (-0.271284,0.945128,-0.182037) +Old Polarization: (-0.78514,-0.107902,0.609846) +New Polarization: (-0.88332,-0.161186,0.440188) +Polarization Change: (-0.88332,-0.161186,0.440188) +New Momentum Direction: (0.395662,0.247222,0.884496) +Momentum Change: (0.395662,0.247222,0.884496) + Photon at Boundary! + Old Momentum Direction: (0.395662,0.247222,0.884496) + Old Polarization: (-0.88332,-0.161186,0.440188) + New Momentum Direction: (0.537686,0.335962,0.77332) + New Polarization: (-0.792557,-0.111525,0.599513) + *** FresnelRefraction *** +Track (trackID 1166, parentID 1) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.753092,0.429815,0.498108) + Old Polarization: (-0.573733,0.0584995,0.816951) + New Momentum Direction: (0.448199,0.584006,0.676797) + New Polarization: (0.79327,-0.60887,6.10058e-05) + *** FresnelRefraction *** +Track (trackID 1165, parentID 1) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.789973,-0.333912,-0.514242) + Old Polarization: (-0.531336,-0.791357,-0.302383) + New Momentum Direction: (0.56375,-0.449803,-0.692722) + New Polarization: (0.724289,-0.133883,0.676373) + *** FresnelRefraction *** +Track (trackID 1164, parentID 1) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.822054,-0.385368,-0.419188) + Old Polarization: (-0.495986,-0.846217,-0.194715) + New Momentum Direction: (0.639923,-0.520069,-0.565709) + New Polarization: (0.675198,0.0290544,0.737064) + *** FresnelRefraction *** +Track (trackID 1163, parentID 1) is processed with stopping code 2 +### pop requested out of 168 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1162, parentID 1) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.4725,0.724503,-0.501835) +Old Polarization: (-0.881254,0.380856,-0.279895) +New Polarization: (-0.95788,-0.0341601,-0.285131) +Polarization Change: (-0.95788,-0.0341601,-0.285131) +New Momentum Direction: (0.0210659,-0.998583,0.0488654) +Momentum Change: (0.0210659,-0.998583,0.0488654) + Photon at Boundary! + Old Momentum Direction: (0.0210659,-0.998583,0.0488654) + Old Polarization: (-0.95788,-0.0341601,-0.285131) + New Momentum Direction: (0.0286487,-0.997378,0.0664548) + New Polarization: (-0.957547,-0.0464612,-0.284507) + *** FresnelRefraction *** +Track (trackID 1161, parentID 1) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1160, parentID 1) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.640346,-0.00908425,-0.768033) + Old Polarization: (-0.697851,-0.424612,-0.57681) + New Momentum Direction: (0.867857,-0.0123118,-0.496662) + New Polarization: (-0.458355,-0.405514,-0.790866) + *** FresnelRefraction *** +Track (trackID 1159, parentID 1) is processed with stopping code 2 +### pop requested out of 164 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.625102,0.724896,0.289436) + Old Polarization: (-0.714086,0.381382,0.587051) + New Momentum Direction: (0.850046,0.350013,0.393591) + New Polarization: (-0.52668,0.556983,0.642167) + *** FresnelRefraction *** +Track (trackID 1158, parentID 1) is processed with stopping code 2 +### pop requested out of 163 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1157, parentID 1) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1156, parentID 1) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.551707,0.831074,0.0702533) + Old Polarization: (-0.794608,0.498164,0.347032) + New Momentum Direction: (0.750021,0.654482,0.0955061) + New Polarization: (-0.640138,0.681958,0.353774) + *** FresnelRefraction *** +Track (trackID 1155, parentID 1) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.675211,0.629933,0.383763) + Old Polarization: (-0.659459,0.282443,0.696664) + New Momentum Direction: (0.0614591,0.852388,0.519285) + New Polarization: (0.92998,-0.237825,0.280316) + *** FresnelRefraction *** +Track (trackID 1154, parentID 1) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.58442,0.154192,-0.796667) + Old Polarization: (-0.758808,-0.244018,-0.603876) + New Momentum Direction: (0.794297,0.209565,-0.570241) + New Polarization: (-0.540648,-0.184308,-0.820811) + *** FresnelRefraction *** +Track (trackID 1153, parentID 1) is processed with stopping code 2 +### pop requested out of 158 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1152, parentID 1) is processed with stopping code 2 +### pop requested out of 157 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479345,0.811653,-0.333838) + Old Polarization: (-0.873858,0.47662,-0.0959415) + New Momentum Direction: (0.651759,0.607595,-0.453915) + New Polarization: (-0.73342,0.657342,-0.173194) + *** FresnelRefraction *** +Track (trackID 1151, parentID 1) is processed with stopping code 2 +### pop requested out of 156 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.911029,-0.157823,0.380945) + Old Polarization: (-0.395664,-0.594687,0.699855) + New Momentum Direction: (0.831696,-0.212513,0.512953) + New Polarization: (0.533334,0.0488791,-0.844491) + *** FresnelRefraction *** +Track (trackID 1150, parentID 1) is processed with stopping code 2 +### pop requested out of 155 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.569613,0.204857,-0.795974) + Old Polarization: (-0.775056,-0.188437,-0.603142) + New Momentum Direction: (0.77416,0.278421,-0.568469) + New Polarization: (-0.560522,-0.115722,-0.820015) + *** FresnelRefraction *** +Track (trackID 1149, parentID 1) is processed with stopping code 2 +### pop requested out of 154 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.829876,-0.399736,-0.389251) + Old Polarization: (-0.48816,-0.858037,-0.159598) + New Momentum Direction: (0.655644,-0.540963,-0.526773) + New Polarization: (0.66596,0.0855071,0.741071) + *** FresnelRefraction *** +Track (trackID 1148, parentID 1) is processed with stopping code 2 +### pop requested out of 153 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.843872,-0.422318,-0.33095) + Old Polarization: (-0.474431,-0.875404,-0.0926441) + New Momentum Direction: (0.683726,-0.574382,-0.450116) + New Polarization: (0.649666,0.198198,0.733929) + *** FresnelRefraction *** +Track (trackID 1147, parentID 1) is processed with stopping code 2 +### pop requested out of 152 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.63476,0.707582,0.310494) + Old Polarization: (-0.703596,0.363162,0.610791) + New Momentum Direction: (0.862645,0.278909,0.421964) + New Polarization: (-0.504125,0.542142,0.672265) + *** FresnelRefraction *** +Track (trackID 1146, parentID 1) is processed with stopping code 2 +### pop requested out of 151 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1145, parentID 1) is processed with stopping code 2 +### pop requested out of 150 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1144, parentID 1) is processed with stopping code 2 +### pop requested out of 149 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.799329,-0.360241,-0.480936) + Old Polarization: (-0.522367,-0.812167,-0.25984) + New Momentum Direction: (0.580255,-0.488261,-0.651847) + New Polarization: (0.71604,-0.0755154,0.693962) + *** FresnelRefraction *** +Track (trackID 1143, parentID 1) is processed with stopping code 2 +### pop requested out of 148 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1142, parentID 1) is processed with stopping code 2 +### pop requested out of 147 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.883336,-0.437408,-0.168501) + Old Polarization: (-0.429096,-0.899259,0.0849081) + New Momentum Direction: (-0.883336,-0.437408,-0.168501) + New Polarization: (-0.312413,0.281392,0.907313) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.883336,-0.437408,-0.168501) + Old Polarization: (-0.312413,0.281392,0.907313) + New Momentum Direction: (-0.883336,0.437408,-0.168501) + New Polarization: (0.312413,0.281392,-0.907313) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.883336,0.437408,-0.168501) + Old Polarization: (0.312413,0.281392,-0.907313) + New Momentum Direction: (-0.772885,0.59213,-0.228104) + New Polarization: (-0.427617,-0.751617,-0.502211) + *** FresnelRefraction *** +Track (trackID 1141, parentID 1) is processed with stopping code 2 +### pop requested out of 146 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479368,0.671012,-0.565641) + Old Polarization: (-0.87603,0.327144,-0.354329) + New Momentum Direction: (0.479368,-0.671012,-0.565641) + New Polarization: (0.87603,0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479368,-0.671012,-0.565641) + Old Polarization: (0.87603,0.327144,0.354329) + New Momentum Direction: (0.479368,-0.671012,0.565641) + New Polarization: (-0.87603,-0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479368,-0.671012,0.565641) + Old Polarization: (-0.87603,-0.327144,0.354329) + New Momentum Direction: (-0.479368,-0.671012,0.565641) + New Polarization: (-0.87603,0.327144,-0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,-0.671012,0.565641) + Old Polarization: (-0.87603,0.327144,-0.354329) + New Momentum Direction: (-0.479368,0.671012,0.565641) + New Polarization: (0.87603,0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,0.671012,0.565641) + Old Polarization: (0.87603,0.327144,0.354329) + New Momentum Direction: (-0.479368,0.671012,-0.565641) + New Polarization: (-0.87603,-0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,0.671012,-0.565641) + Old Polarization: (-0.87603,-0.327144,0.354329) + New Momentum Direction: (0.479368,0.671012,-0.565641) + New Polarization: (-0.87603,0.327144,-0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479368,0.671012,-0.565641) + Old Polarization: (-0.87603,0.327144,-0.354329) + New Momentum Direction: (0.479368,-0.671012,-0.565641) + New Polarization: (0.87603,0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479368,-0.671012,-0.565641) + Old Polarization: (0.87603,0.327144,0.354329) + New Momentum Direction: (0.479368,-0.671012,0.565641) + New Polarization: (-0.87603,-0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479368,-0.671012,0.565641) + Old Polarization: (-0.87603,-0.327144,0.354329) + New Momentum Direction: (-0.479368,-0.671012,0.565641) + New Polarization: (-0.87603,0.327144,-0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,-0.671012,0.565641) + Old Polarization: (-0.87603,0.327144,-0.354329) + New Momentum Direction: (-0.479368,0.671012,0.565641) + New Polarization: (0.87603,0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,0.671012,0.565641) + Old Polarization: (0.87603,0.327144,0.354329) + New Momentum Direction: (-0.479368,0.671012,-0.565641) + New Polarization: (-0.87603,-0.327144,0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,0.671012,-0.565641) + Old Polarization: (-0.87603,-0.327144,0.354329) + New Momentum Direction: (-0.479368,-0.671012,-0.565641) + New Polarization: (0.87603,-0.327144,-0.354329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479368,-0.671012,-0.565641) + Old Polarization: (0.87603,-0.327144,-0.354329) + New Momentum Direction: (0.479368,-0.671012,-0.565641) + New Polarization: (0.87603,0.327144,0.354329) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1140, parentID 1) is processed with stopping code 2 +### pop requested out of 145 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.919859,-0.361568,0.15208) + Old Polarization: (-0.390701,-0.810133,0.437079) + New Momentum Direction: (0.84612,-0.491302,0.206648) + New Polarization: (0.53094,0.810927,-0.245967) + *** FresnelRefraction *** +Track (trackID 1139, parentID 1) is processed with stopping code 2 +### pop requested out of 144 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.660201,0.659526,0.359388) + Old Polarization: (-0.675894,0.312998,0.667232) + New Momentum Direction: (-0.660201,0.659526,0.359388) + New Polarization: (-0.675894,-0.312998,-0.667232) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.660201,0.659526,0.359388) + Old Polarization: (-0.675894,-0.312998,-0.667232) + New Momentum Direction: (-0.660201,-0.659526,0.359388) + New Polarization: (0.675894,-0.312998,0.667232) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1138, parentID 1) is processed with stopping code 2 +### pop requested out of 143 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.841263,0.169307,0.513431) + Old Polarization: (-0.473266,-0.228446,0.850783) + New Momentum Direction: (0.686802,0.227625,0.690282) + New Polarization: (0.640614,-0.638243,-0.426919) + *** FresnelRefraction *** +Track (trackID 1137, parentID 1) is processed with stopping code 2 +### pop requested out of 142 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.878851,-0.0121656,0.476941) + Old Polarization: (-0.436024,-0.42626,0.792581) + New Momentum Direction: (0.761005,-0.0165425,0.648535) + New Polarization: (0.595003,-0.380596,-0.707897) + *** FresnelRefraction *** +Track (trackID 1136, parentID 1) is processed with stopping code 2 +### pop requested out of 141 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1135, parentID 1) is processed with stopping code 2 +### pop requested out of 140 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.4998,0.515685,-0.695895) + Old Polarization: (-0.853255,0.155072,-0.497904) + New Momentum Direction: (0.4998,0.515685,0.695895) + New Polarization: (-0.365854,0.853943,-0.370044) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.4998,0.515685,0.695895) + Old Polarization: (-0.365854,0.853943,-0.370044) + New Momentum Direction: (0.4998,-0.515685,0.695895) + New Polarization: (0.365854,0.853943,0.370044) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.4998,-0.515685,0.695895) + Old Polarization: (0.365854,0.853943,0.370044) + New Momentum Direction: (-0.4998,-0.515685,0.695895) + New Polarization: (0.365854,-0.853943,-0.370044) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (-0.4998,-0.515685,0.695895) +Old Polarization: (0.365854,-0.853943,-0.370044) +New Polarization: (-0.506128,-0.194537,-0.840232) +Polarization Change: (-0.506128,-0.194537,-0.840232) +New Momentum Direction: (-0.536963,0.833454,0.130481) +Momentum Change: (-0.536963,0.833454,0.130481) + Photon at Boundary! + Old Momentum Direction: (-0.536963,0.833454,0.130481) + Old Polarization: (-0.506128,-0.194537,-0.840232) + New Momentum Direction: (-0.727358,0.663107,0.176747) + New Polarization: (0.0136841,0.271515,-0.962337) + *** FresnelRefraction *** +Track (trackID 1134, parentID 1) is processed with stopping code 2 +### pop requested out of 139 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.78396,-0.326813,-0.527826) + Old Polarization: (-0.538401,-0.781211,-0.315965) + New Momentum Direction: (0.546203,-0.440965,-0.712188) + New Polarization: (0.735712,-0.15395,0.659566) + *** FresnelRefraction *** +Track (trackID 1133, parentID 1) is processed with stopping code 2 +### pop requested out of 138 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.518679,0.452,-0.725719) + Old Polarization: (-0.835777,0.089214,-0.541773) + New Momentum Direction: (0.697413,0.607758,-0.379797) + New Polarization: (-0.614761,0.234946,-0.752907) + *** FresnelRefraction *** +Track (trackID 1132, parentID 1) is processed with stopping code 2 +### pop requested out of 137 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.764084,0.400336,0.505872) + Old Polarization: (-0.561503,0.0266173,0.827047) + New Momentum Direction: (0.482935,0.5434,0.686651) + New Polarization: (0.774253,-0.631277,-0.0449684) + *** FresnelRefraction *** +Track (trackID 1131, parentID 1) is processed with stopping code 2 +### pop requested out of 136 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.870694,-0.431161,-0.236625) + Old Polarization: (-0.441833,-0.897055,0.00876518) + New Momentum Direction: (0.747895,-0.58194,-0.319373) + New Polarization: (0.5989,0.384022,0.702741) + *** FresnelRefraction *** +Track (trackID 1130, parentID 1) is processed with stopping code 2 +### pop requested out of 135 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.656806,0.671593,0.342884) + Old Polarization: (-0.680094,0.331192,0.654052) + New Momentum Direction: (0.656806,-0.671593,0.342884) + New Polarization: (0.680094,0.331192,-0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656806,-0.671593,0.342884) + Old Polarization: (0.680094,0.331192,-0.654052) + New Momentum Direction: (-0.656806,-0.671593,0.342884) + New Polarization: (0.680094,-0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,-0.671593,0.342884) + Old Polarization: (0.680094,-0.331192,0.654052) + New Momentum Direction: (-0.656806,-0.671593,-0.342884) + New Polarization: (-0.680094,0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,-0.671593,-0.342884) + Old Polarization: (-0.680094,0.331192,0.654052) + New Momentum Direction: (-0.656806,0.671593,-0.342884) + New Polarization: (0.680094,0.331192,-0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,0.671593,-0.342884) + Old Polarization: (0.680094,0.331192,-0.654052) + New Momentum Direction: (0.656806,0.671593,-0.342884) + New Polarization: (0.680094,-0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656806,0.671593,-0.342884) + Old Polarization: (0.680094,-0.331192,0.654052) + New Momentum Direction: (0.656806,-0.671593,-0.342884) + New Polarization: (-0.680094,-0.331192,-0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656806,-0.671593,-0.342884) + Old Polarization: (-0.680094,-0.331192,-0.654052) + New Momentum Direction: (-0.656806,-0.671593,-0.342884) + New Polarization: (-0.680094,0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,-0.671593,-0.342884) + Old Polarization: (-0.680094,0.331192,0.654052) + New Momentum Direction: (-0.656806,-0.671593,0.342884) + New Polarization: (0.680094,-0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,-0.671593,0.342884) + Old Polarization: (0.680094,-0.331192,0.654052) + New Momentum Direction: (-0.656806,0.671593,0.342884) + New Polarization: (-0.680094,-0.331192,-0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,0.671593,0.342884) + Old Polarization: (-0.680094,-0.331192,-0.654052) + New Momentum Direction: (0.656806,0.671593,0.342884) + New Polarization: (-0.680094,0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656806,0.671593,0.342884) + Old Polarization: (-0.680094,0.331192,0.654052) + New Momentum Direction: (0.656806,-0.671593,0.342884) + New Polarization: (0.680094,0.331192,-0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.656806,-0.671593,0.342884) + Old Polarization: (0.680094,0.331192,-0.654052) + New Momentum Direction: (-0.656806,-0.671593,0.342884) + New Polarization: (0.680094,-0.331192,0.654052) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.656806,-0.671593,0.342884) + Old Polarization: (0.680094,-0.331192,0.654052) + New Momentum Direction: (-0.656806,-0.671593,-0.342884) + New Polarization: (-0.680094,0.331192,0.654052) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1129, parentID 1) is processed with stopping code 2 +### pop requested out of 134 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.91008,-0.173408,0.376411) + Old Polarization: (-0.399806,-0.606528,0.687225) + New Momentum Direction: (0.827569,-0.234886,0.509861) + New Polarization: (0.542081,0.0983712,-0.834549) + *** FresnelRefraction *** +Track (trackID 1128, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.920644,-0.362406,0.145179) + Old Polarization: (-0.388548,-0.814347,0.431126) + New Momentum Direction: (0.848484,-0.491269,0.1968) + New Polarization: (0.526767,0.819755,-0.224762) + *** FresnelRefraction *** +Track (trackID 1127, parentID 1) is processed with stopping code 2 +### pop requested out of 132 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.486416,0.824679,-0.288624) + Old Polarization: (-0.867542,0.495097,-0.0474319) + New Momentum Direction: (0.659527,0.641775,-0.391343) + New Polarization: (-0.726922,0.677068,-0.114732) + *** FresnelRefraction *** +Track (trackID 1126, parentID 1) is processed with stopping code 2 +### pop requested out of 131 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.867286,0.0474054,0.495548) + Old Polarization: (-0.447423,-0.362171,0.817707) + New Momentum Direction: (0.737981,0.0642619,0.671755) + New Polarization: (0.609305,-0.491326,-0.622372) + *** FresnelRefraction *** +Track (trackID 1125, parentID 1) is processed with stopping code 2 +### pop requested out of 130 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.609932,0.759791,0.225167) + Old Polarization: (-0.732831,0.432666,0.525127) + New Momentum Direction: (0.821521,0.482831,0.303279) + New Polarization: (-0.563161,0.603909,0.564043) + *** FresnelRefraction *** +Track (trackID 1124, parentID 1) is processed with stopping code 2 +### pop requested out of 129 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.887862,-0.440908,-0.131534) + Old Polarization: (-0.426229,-0.895828,0.125785) + New Momentum Direction: (0.780018,-0.599642,-0.178888) + New Polarization: (0.581276,0.588477,0.561973) + *** FresnelRefraction *** +Track (trackID 1123, parentID 1) is processed with stopping code 2 +### pop requested out of 128 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1122, parentID 1) is processed with stopping code 2 +### pop requested out of 127 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.874752,-0.437709,-0.207892) + Old Polarization: (-0.439183,-0.897436,0.0415576) + New Momentum Direction: (0.754003,-0.593347,-0.281813) + New Polarization: (0.597686,0.441748,0.669052) + *** FresnelRefraction *** +Track (trackID 1121, parentID 1) is processed with stopping code 2 +### pop requested out of 126 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.764166,0.410852,0.497243) + Old Polarization: (-0.560438,0.0412916,0.827167) + New Momentum Direction: (0.492795,0.554248,0.670792) + New Polarization: (0.767456,-0.640152,-0.0348764) + *** FresnelRefraction *** +Track (trackID 1120, parentID 1) is processed with stopping code 2 +### pop requested out of 125 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1119, parentID 1) is processed with stopping code 2 +### pop requested out of 124 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.800041,-0.355627,-0.483182) + Old Polarization: (-0.520795,-0.811492,-0.265054) + New Momentum Direction: (0.585651,-0.480473,-0.652808) + New Polarization: (0.711408,-0.0813012,0.698061) + *** FresnelRefraction *** +Track (trackID 1118, parentID 1) is processed with stopping code 2 +### pop requested out of 123 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.902934,-0.114988,0.414111) + Old Polarization: (-0.405909,-0.544814,0.733768) + New Momentum Direction: (0.814568,-0.155198,0.55892) + New Polarization: (0.548744,-0.106177,-0.82922) + *** FresnelRefraction *** +Track (trackID 1117, parentID 1) is processed with stopping code 2 +### pop requested out of 122 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.484341,0.65425,-0.580836) + Old Polarization: (-0.872546,0.312771,-0.375284) + New Momentum Direction: (0.484341,-0.65425,-0.580836) + New Polarization: (0.872546,0.312771,0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.484341,-0.65425,-0.580836) + Old Polarization: (0.872546,0.312771,0.375284) + New Momentum Direction: (0.484341,-0.65425,0.580836) + New Polarization: (-0.872546,-0.312771,0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.484341,-0.65425,0.580836) + Old Polarization: (-0.872546,-0.312771,0.375284) + New Momentum Direction: (-0.484341,-0.65425,0.580836) + New Polarization: (-0.872546,0.312771,-0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.484341,-0.65425,0.580836) + Old Polarization: (-0.872546,0.312771,-0.375284) + New Momentum Direction: (-0.484341,0.65425,0.580836) + New Polarization: (0.872546,0.312771,0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.484341,0.65425,0.580836) + Old Polarization: (0.872546,0.312771,0.375284) + New Momentum Direction: (-0.484341,0.65425,-0.580836) + New Polarization: (-0.872546,-0.312771,0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.484341,0.65425,-0.580836) + Old Polarization: (-0.872546,-0.312771,0.375284) + New Momentum Direction: (0.484341,0.65425,-0.580836) + New Polarization: (-0.872546,0.312771,-0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.484341,0.65425,-0.580836) + Old Polarization: (-0.872546,0.312771,-0.375284) + New Momentum Direction: (0.484341,-0.65425,-0.580836) + New Polarization: (0.872546,0.312771,0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.484341,-0.65425,-0.580836) + Old Polarization: (0.872546,0.312771,0.375284) + New Momentum Direction: (0.484341,-0.65425,0.580836) + New Polarization: (-0.872546,-0.312771,0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.484341,-0.65425,0.580836) + Old Polarization: (-0.872546,-0.312771,0.375284) + New Momentum Direction: (-0.484341,-0.65425,0.580836) + New Polarization: (-0.872546,0.312771,-0.375284) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.484341,-0.65425,0.580836) + Old Polarization: (-0.872546,0.312771,-0.375284) + New Momentum Direction: (-0.484341,0.65425,0.580836) + New Polarization: (0.872546,0.312771,0.375284) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1116, parentID 1) is processed with stopping code 2 +### pop requested out of 121 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1115, parentID 1) is processed with stopping code 2 +### pop requested out of 120 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.505867,0.483866,-0.714123) + Old Polarization: (-0.846667,0.120075,-0.518399) + New Momentum Direction: (0.505867,0.483866,0.714123) + New Polarization: (-0.363172,0.870381,-0.332479) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.505867,0.483866,0.714123) + Old Polarization: (-0.363172,0.870381,-0.332479) + New Momentum Direction: (-0.505867,0.483866,0.714123) + New Polarization: (-0.363172,-0.870381,0.332479) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.505867,0.483866,0.714123) + Old Polarization: (-0.363172,-0.870381,0.332479) + New Momentum Direction: (-0.505867,-0.483866,0.714123) + New Polarization: (0.363172,-0.870381,-0.332479) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.505867,-0.483866,0.714123) + Old Polarization: (0.363172,-0.870381,-0.332479) + New Momentum Direction: (-0.685068,-0.655273,0.318275) + New Polarization: (0.710367,-0.504085,0.4912) + *** FresnelRefraction *** +Track (trackID 1114, parentID 1) is processed with stopping code 2 +### pop requested out of 119 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.686188,-0.126216,-0.716391) + Old Polarization: (-0.647302,-0.555272,-0.522182) + New Momentum Direction: (0.928439,-0.170775,-0.329905) + New Polarization: (-0.366628,-0.564364,-0.739647) + *** FresnelRefraction *** +Track (trackID 1113, parentID 1) is processed with stopping code 2 +### pop requested out of 118 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1112, parentID 1) is processed with stopping code 2 +### pop requested out of 117 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.590713,0.142439,-0.79421) + Old Polarization: (-0.752686,-0.257374,-0.605988) + New Momentum Direction: (0.800449,0.193013,-0.567474) + New Polarization: (-0.533854,-0.20091,-0.821362) + *** FresnelRefraction *** +Track (trackID 1111, parentID 1) is processed with stopping code 2 +### pop requested out of 116 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.815202,0.254879,0.52008) + Old Polarization: (-0.503301,-0.132585,0.853879) + New Momentum Direction: (0.624865,0.343577,0.70107) + New Polarization: (0.684801,-0.672453,-0.280811) + *** FresnelRefraction *** +Track (trackID 1110, parentID 1) is processed with stopping code 2 +### pop requested out of 115 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479642,0.64995,-0.589498) + Old Polarization: (-0.874811,0.301997,-0.378819) + New Momentum Direction: (0.479642,-0.64995,-0.589498) + New Polarization: (0.874811,0.301997,0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479642,-0.64995,-0.589498) + Old Polarization: (0.874811,0.301997,0.378819) + New Momentum Direction: (0.479642,-0.64995,0.589498) + New Polarization: (-0.874811,-0.301997,0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479642,-0.64995,0.589498) + Old Polarization: (-0.874811,-0.301997,0.378819) + New Momentum Direction: (-0.479642,-0.64995,0.589498) + New Polarization: (-0.874811,0.301997,-0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479642,-0.64995,0.589498) + Old Polarization: (-0.874811,0.301997,-0.378819) + New Momentum Direction: (-0.479642,0.64995,0.589498) + New Polarization: (0.874811,0.301997,0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479642,0.64995,0.589498) + Old Polarization: (0.874811,0.301997,0.378819) + New Momentum Direction: (-0.479642,0.64995,-0.589498) + New Polarization: (-0.874811,-0.301997,0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479642,0.64995,-0.589498) + Old Polarization: (-0.874811,-0.301997,0.378819) + New Momentum Direction: (0.479642,0.64995,-0.589498) + New Polarization: (-0.874811,0.301997,-0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479642,0.64995,-0.589498) + Old Polarization: (-0.874811,0.301997,-0.378819) + New Momentum Direction: (0.479642,-0.64995,-0.589498) + New Polarization: (0.874811,0.301997,0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479642,-0.64995,-0.589498) + Old Polarization: (0.874811,0.301997,0.378819) + New Momentum Direction: (0.479642,-0.64995,0.589498) + New Polarization: (-0.874811,-0.301997,0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479642,-0.64995,0.589498) + Old Polarization: (-0.874811,-0.301997,0.378819) + New Momentum Direction: (-0.479642,-0.64995,0.589498) + New Polarization: (-0.874811,0.301997,-0.378819) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479642,-0.64995,0.589498) + Old Polarization: (-0.874811,0.301997,-0.378819) + New Momentum Direction: (-0.479642,0.64995,0.589498) + New Polarization: (0.874811,0.301997,0.378819) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1109, parentID 1) is processed with stopping code 2 +### pop requested out of 114 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.498074,0.841,-0.211283) + Old Polarization: (-0.855662,0.516176,0.0374885) + New Momentum Direction: (0.674001,0.681158,-0.285912) + New Polarization: (-0.713602,0.70042,-0.0135408) + *** FresnelRefraction *** +Track (trackID 1108, parentID 1) is processed with stopping code 2 +### pop requested out of 113 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1107, parentID 1) is processed with stopping code 2 +### pop requested out of 112 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.801044,-0.368033,-0.472102) + Old Polarization: (-0.521205,-0.816696,-0.247695) + New Momentum Direction: (0.581282,-0.500279,-0.641742) + New Polarization: (0.716536,-0.059031,0.695048) + *** FresnelRefraction *** +Track (trackID 1106, parentID 1) is processed with stopping code 2 +### pop requested out of 111 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.813806,0.25344,0.52296) + Old Polarization: (-0.505703,-0.13454,0.852152) + New Momentum Direction: (0.61856,0.342669,0.707079) + New Polarization: (0.690345,-0.66677,-0.280787) + *** FresnelRefraction *** +Track (trackID 1105, parentID 1) is processed with stopping code 2 +### pop requested out of 110 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.556045,0.826447,0.0883151) + Old Polarization: (-0.78963,0.492112,0.366484) + New Momentum Direction: (0.756413,0.642967,0.120139) + New Polarization: (-0.633907,0.675318,0.376971) + *** FresnelRefraction *** +Track (trackID 1104, parentID 1) is processed with stopping code 2 +### pop requested out of 109 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.8746,0.0179281,0.484514) + Old Polarization: (-0.438947,-0.395131,0.806968) + New Momentum Direction: (0.754216,0.0242801,0.656177) + New Polarization: (0.596813,-0.44206,-0.669625) + *** FresnelRefraction *** +Track (trackID 1103, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.829244,-0.403438,-0.386772) + Old Polarization: (-0.489755,-0.857949,-0.155122) + New Momentum Direction: (0.651714,-0.547506,-0.524887) + New Polarization: (0.670118,0.0914996,0.736593) + *** FresnelRefraction *** +Track (trackID 1102, parentID 1) is processed with stopping code 2 +### pop requested out of 107 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.492548,0.83694,-0.238594) + Old Polarization: (-0.860843,0.508813,0.00770927) + New Momentum Direction: (0.667758,0.670424,-0.323466) + New Polarization: (-0.719408,0.692849,-0.049117) + *** FresnelRefraction *** +Track (trackID 1101, parentID 1) is processed with stopping code 2 +### pop requested out of 106 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.775032,0.370134,0.512178) +Old Polarization: (-0.549264,-0.00619378,0.835626) +New Polarization: (-0.82222,-0.102983,0.559776) +Polarization Change: (-0.82222,-0.102983,0.559776) +New Momentum Direction: (-0.528715,-0.225968,-0.818168) +Momentum Change: (-0.528715,-0.225968,-0.818168) + Photon at Boundary! + Old Momentum Direction: (-0.528715,-0.225968,-0.818168) + Old Polarization: (-0.82222,-0.102983,0.559776) + New Momentum Direction: (-0.716911,-0.306401,-0.626224) + New Polarization: (0.475327,0.442279,-0.760561) + *** FresnelRefraction *** +Track (trackID 1100, parentID 1) is processed with stopping code 2 +### pop requested out of 105 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1099, parentID 1) is processed with stopping code 2 +### pop requested out of 104 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.890875,-0.435736,-0.128361) + Old Polarization: (-0.42058,-0.897989,0.129338) + New Momentum Direction: (0.788759,-0.58965,-0.173702) + New Polarization: (0.570603,0.597229,0.563675) + *** FresnelRefraction *** +Track (trackID 1098, parentID 1) is processed with stopping code 2 +### pop requested out of 103 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.521852,0.851229,-0.0555037) + Old Polarization: (-0.827534,0.520968,0.209235) + New Momentum Direction: (0.709112,0.70105,-0.0754206) + New Polarization: (-0.679939,0.708207,0.19007) + *** FresnelRefraction *** +Track (trackID 1097, parentID 1) is processed with stopping code 2 +### pop requested out of 102 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.791976,0.313541,0.523895) + Old Polarization: (-0.531169,-0.0692712,0.844429) + New Momentum Direction: (0.557746,0.426241,0.712206) + New Polarization: (0.73107,-0.658573,-0.178376) + *** FresnelRefraction *** +Track (trackID 1096, parentID 1) is processed with stopping code 2 +### pop requested out of 101 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1095, parentID 1) is processed with stopping code 2 +### pop requested out of 100 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.492157,0.821251,-0.288667) + Old Polarization: (-0.86432,0.500475,-0.049767) + New Momentum Direction: (0.663311,0.639261,-0.389054) + New Polarization: (-0.723783,0.680126,-0.116476) + *** FresnelRefraction *** +Track (trackID 1094, parentID 1) is processed with stopping code 2 +### pop requested out of 99 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1093, parentID 1) is processed with stopping code 2 +### pop requested out of 98 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.913474,-0.405184,0.0373107) + Old Polarization: (-0.395781,-0.863485,0.312653) + New Momentum Direction: (0.834592,-0.548548,0.0505122) + New Polarization: (0.536205,0.829969,0.153738) + *** FresnelRefraction *** +Track (trackID 1092, parentID 1) is processed with stopping code 2 +### pop requested out of 97 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.612331,0.0871882,-0.785779) + Old Polarization: (-0.729838,-0.319775,-0.604219) + New Momentum Direction: (0.825871,0.117594,-0.551461) + New Polarization: (-0.505889,-0.277405,-0.816776) + *** FresnelRefraction *** +Track (trackID 1091, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479691,0.730261,-0.486432) + Old Polarization: (-0.877429,0.396839,-0.269512) + New Momentum Direction: (0.647466,0.386927,-0.656564) + New Polarization: (-0.728242,0.568047,-0.383388) + *** FresnelRefraction *** +Track (trackID 1090, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.480573,0.747576,-0.458454) + Old Polarization: (-0.876864,0.417146,-0.238953) + New Momentum Direction: (0.480573,-0.747576,-0.458454) + New Polarization: (-0.55231,0.148057,-0.820386) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480573,-0.747576,-0.458454) + Old Polarization: (-0.55231,0.148057,-0.820386) + New Momentum Direction: (-0.480573,-0.747576,-0.458454) + New Polarization: (-0.55231,-0.148057,0.820386) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480573,-0.747576,-0.458454) + Old Polarization: (-0.55231,-0.148057,0.820386) + New Momentum Direction: (-0.480573,-0.747576,0.458454) + New Polarization: (0.55231,0.148057,0.820386) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480573,-0.747576,0.458454) + Old Polarization: (0.55231,0.148057,0.820386) + New Momentum Direction: (-0.648167,-0.444456,0.618335) + New Polarization: (0.747183,-0.214494,0.629055) + *** FresnelRefraction *** +Track (trackID 1089, parentID 1) is processed with stopping code 2 +### pop requested out of 94 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.92401,-0.302668,0.233662) + Old Polarization: (-0.382077,-0.754719,0.533307) + New Momentum Direction: (0.856737,-0.408249,0.315172) + New Polarization: (0.515368,0.654051,-0.553726) + *** FresnelRefraction *** +Track (trackID 1088, parentID 1) is processed with stopping code 2 +### pop requested out of 93 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.492999,0.573041,-0.654658) + Old Polarization: (-0.862184,0.220957,-0.455869) + New Momentum Direction: (0.492999,0.573041,0.654658) + New Polarization: (0.862184,-0.220957,-0.455869) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.492999,0.573041,0.654658) + Old Polarization: (0.862184,-0.220957,-0.455869) + New Momentum Direction: (0.492999,-0.573041,0.654658) + New Polarization: (-0.862184,-0.220957,0.455869) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.492999,-0.573041,0.654658) + Old Polarization: (-0.862184,-0.220957,0.455869) + New Momentum Direction: (-0.492999,-0.573041,0.654658) + New Polarization: (-0.862184,0.220957,-0.455869) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.492999,-0.573041,0.654658) + Old Polarization: (-0.862184,0.220957,-0.455869) + New Momentum Direction: (-0.492999,-0.573041,-0.654658) + New Polarization: (0.862184,-0.220957,-0.455869) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.492999,-0.573041,-0.654658) + Old Polarization: (0.862184,-0.220957,-0.455869) + New Momentum Direction: (-0.492999,0.573041,-0.654658) + New Polarization: (-0.862184,-0.220957,0.455869) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.492999,0.573041,-0.654658) + Old Polarization: (-0.862184,-0.220957,0.455869) + New Momentum Direction: (0.492999,0.573041,-0.654658) + New Polarization: (-0.862184,0.220957,-0.455869) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.492999,0.573041,-0.654658) + Old Polarization: (-0.862184,0.220957,-0.455869) + New Momentum Direction: (0.492999,0.573041,0.654658) + New Polarization: (0.862184,-0.220957,-0.455869) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1087, parentID 1) is processed with stopping code 2 +### pop requested out of 92 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1086, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (-0.671215,0.640017,0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,-0.294798,-0.6872) + New Momentum Direction: (-0.671215,-0.640017,0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (-0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,-0.294798,-0.6872) + New Momentum Direction: (0.671215,0.640017,-0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (-0.671215,0.640017,-0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (-0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (-0.671215,-0.640017,0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (0.671215,-0.640017,0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (0.671215,0.640017,0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (0.671215,0.640017,-0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (-0.671215,0.640017,-0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (-0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,-0.294798,-0.6872) + New Momentum Direction: (0.671215,0.640017,-0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (0.671215,0.640017,0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (-0.671215,0.640017,0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,-0.294798,-0.6872) + New Momentum Direction: (-0.671215,-0.640017,0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (0.671215,-0.640017,0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (0.671215,0.640017,0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (0.671215,0.640017,-0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (-0.671215,0.640017,-0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,0.640017,-0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (-0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,-0.373964) + Old Polarization: (-0.663965,-0.294798,-0.6872) + New Momentum Direction: (0.671215,-0.640017,0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (0.671215,0.640017,0.373964) + New Polarization: (-0.663965,0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,0.294798,0.6872) + New Momentum Direction: (-0.671215,0.640017,0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,0.640017,0.373964) + Old Polarization: (-0.663965,-0.294798,-0.6872) + New Momentum Direction: (-0.671215,-0.640017,0.373964) + New Polarization: (0.663965,-0.294798,0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,-0.294798,0.6872) + New Momentum Direction: (0.671215,-0.640017,0.373964) + New Polarization: (0.663965,0.294798,-0.6872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.671215,-0.640017,0.373964) + Old Polarization: (0.663965,0.294798,-0.6872) + New Momentum Direction: (0.671215,-0.640017,-0.373964) + New Polarization: (-0.663965,-0.294798,-0.6872) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1085, parentID 1) is processed with stopping code 2 +### pop requested out of 90 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.868763,0.0344261,0.49403) + Old Polarization: (-0.446886,-0.375396,0.812017) + New Momentum Direction: (0.739562,0.0467902,0.67146) + New Polarization: (0.610094,-0.467977,-0.639361) + *** FresnelRefraction *** +Track (trackID 1084, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.918216,-0.258036,0.300493) +Old Polarization: (-0.392311,-0.696901,0.600351) +New Polarization: (-0.0897389,-0.683116,0.724776) +Polarization Change: (-0.0897389,-0.683116,0.724776) +New Momentum Direction: (0.951567,0.156045,0.264895) +Momentum Change: (0.951567,0.156045,0.264895) + Photon at Boundary! + Old Momentum Direction: (0.951567,0.156045,0.264895) + Old Polarization: (-0.0897389,-0.683116,0.724776) + New Momentum Direction: (0.90863,0.211959,0.359813) + New Polarization: (0.122679,-0.95908,0.255179) + *** FresnelRefraction *** +Track (trackID 1083, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.900173,-0.42987,-0.069998) + Old Polarization: (-0.410425,-0.891033,0.193935) + New Momentum Direction: (0.807734,-0.581883,-0.0947511) + New Polarization: (0.55656,0.699619,0.448079) + *** FresnelRefraction *** +Track (trackID 1082, parentID 1) is processed with stopping code 2 +### pop requested out of 87 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.92154,-0.292409,0.255464) + Old Polarization: (-0.387367,-0.737546,0.553148) + New Momentum Direction: (0.850384,-0.396243,0.346178) + New Polarization: (0.52495,0.594281,-0.609309) + *** FresnelRefraction *** +Track (trackID 1081, parentID 1) is processed with stopping code 2 +### pop requested out of 86 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.521637,0.3994,-0.753906) + Old Polarization: (-0.82841,0.0257807,-0.559529) + New Momentum Direction: (0.70776,0.541908,-0.453224) + New Polarization: (-0.613853,0.154212,-0.774211) + *** FresnelRefraction *** +Track (trackID 1080, parentID 1) is processed with stopping code 2 +### pop requested out of 85 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1079, parentID 1) is processed with stopping code 2 +### pop requested out of 84 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.648828,0.679689,0.342117) + Old Polarization: (-0.688121,0.33217,0.645099) + New Momentum Direction: (0.648828,-0.679689,0.342117) + New Polarization: (-0.183796,0.296304,0.937242) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.648828,-0.679689,0.342117) + Old Polarization: (-0.183796,0.296304,0.937242) + New Momentum Direction: (-0.648828,-0.679689,0.342117) + New Polarization: (-0.183796,-0.296304,-0.937242) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.648828,-0.679689,0.342117) + Old Polarization: (-0.183796,-0.296304,-0.937242) + New Momentum Direction: (-0.648828,-0.679689,-0.342117) + New Polarization: (0.183796,0.296304,-0.937242) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.648828,-0.679689,-0.342117) + Old Polarization: (0.183796,0.296304,-0.937242) + New Momentum Direction: (-0.882062,-0.0751756,-0.465098) + New Polarization: (0.438883,-0.490074,-0.753133) + *** FresnelRefraction *** +Track (trackID 1078, parentID 1) is processed with stopping code 2 +### pop requested out of 83 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.730662,-0.218237,-0.64692) + Old Polarization: (-0.597669,-0.662496,-0.451543) + New Momentum Direction: (0.39378,-0.293823,-0.870979) + New Polarization: (0.82037,-0.315087,0.477193) + *** FresnelRefraction *** +Track (trackID 1077, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1076, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.694276,0.58475,0.419581) + Old Polarization: (-0.638319,0.230993,0.734296) + New Momentum Direction: (0.220749,0.792437,0.568606) + New Polarization: (0.890944,-0.401047,0.213029) + *** FresnelRefraction *** +Track (trackID 1075, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.918148,-0.385662,0.0909316) + Old Polarization: (-0.390546,-0.842052,0.372051) + New Momentum Direction: (0.84398,-0.522059,0.123091) + New Polarization: (0.528859,0.848228,-0.0286038) + *** FresnelRefraction *** +Track (trackID 1074, parentID 1) is processed with stopping code 2 +### pop requested out of 79 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.619016,0.0442718,-0.78413) + Old Polarization: (-0.720792,-0.364472,-0.589593) + New Momentum Direction: (0.841601,0.0601909,-0.536735) + New Polarization: (-0.490175,-0.332177,-0.805846) + *** FresnelRefraction *** +Track (trackID 1073, parentID 1) is processed with stopping code 2 +### pop requested out of 78 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.920504,-0.293383,0.258067) + Old Polarization: (-0.38977,-0.73579,0.553798) + New Momentum Direction: (0.847551,-0.398488,0.35052) + New Polarization: (0.529438,0.589102,-0.610454) + *** FresnelRefraction *** +Track (trackID 1072, parentID 1) is processed with stopping code 2 +### pop requested out of 77 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.667757,0.639719,0.380604) + Old Polarization: (-0.667341,0.287955,0.686832) + New Momentum Direction: (-0.667757,0.639719,0.380604) + New Polarization: (-0.667341,-0.287955,-0.686832) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.667757,0.639719,0.380604) + Old Polarization: (-0.667341,-0.287955,-0.686832) + New Momentum Direction: (-0.667757,-0.639719,0.380604) + New Polarization: (0.667341,-0.287955,0.686832) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (-0.667757,-0.639719,0.380604) +Old Polarization: (0.667341,-0.287955,0.686832) +New Polarization: (0.763577,-0.547952,0.341613) +Polarization Change: (0.763577,-0.547952,0.341613) +New Momentum Direction: (-0.0495443,0.477767,0.877088) +Momentum Change: (-0.0495443,0.477767,0.877088) + Photon at Boundary! + Old Momentum Direction: (-0.0495443,0.477767,0.877088) + Old Polarization: (0.763577,-0.547952,0.341613) + New Momentum Direction: (-0.0673791,0.649753,0.757153) + New Polarization: (0.747429,-0.469826,0.469695) + *** FresnelRefraction *** +Track (trackID 1071, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.832359,0.202761,0.515817) + Old Polarization: (-0.483065,-0.190856,0.854531) + New Momentum Direction: (0.667438,0.272426,0.693045) + New Polarization: (0.653966,-0.659569,-0.370535) + *** FresnelRefraction *** +Track (trackID 1070, parentID 1) is processed with stopping code 2 +### pop requested out of 75 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.809235,0.272348,0.520543) + Old Polarization: (-0.510273,-0.113254,0.852523) + New Momentum Direction: (0.609435,0.367545,0.702496) + New Polarization: (0.695536,-0.673144,-0.25121) + *** FresnelRefraction *** +Track (trackID 1069, parentID 1) is processed with stopping code 2 +### pop requested out of 74 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.611064,0.751652,0.248234) + Old Polarization: (-0.729949,0.413749,0.544045) + New Momentum Direction: (0.829043,0.44639,0.336784) + New Polarization: (-0.555401,0.587396,0.588639) + *** FresnelRefraction *** +Track (trackID 1068, parentID 1) is processed with stopping code 2 +### pop requested out of 73 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1067, parentID 1) is processed with stopping code 2 +### pop requested out of 72 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.47632,0.768213,-0.427748) + Old Polarization: (-0.878731,0.432965,-0.200931) + New Momentum Direction: (0.645773,0.496658,-0.579921) + New Polarization: (-0.735882,0.607386,-0.299264) + *** FresnelRefraction *** +Track (trackID 1066, parentID 1) is processed with stopping code 2 +### pop requested out of 71 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1065, parentID 1) is processed with stopping code 2 +### pop requested out of 70 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.853381,-0.414897,-0.315598) + Old Polarization: (-0.459818,-0.884331,-0.0807795) + New Momentum Direction: (0.713,-0.558062,-0.424498) + New Polarization: (0.622041,0.224058,0.750242) + *** FresnelRefraction *** +Track (trackID 1064, parentID 1) is processed with stopping code 2 +### pop requested out of 69 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1063, parentID 1) is processed with stopping code 2 +### pop requested out of 68 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.805883,0.276848,0.523363) + Old Polarization: (-0.514858,-0.108804,0.850343) + New Momentum Direction: (0.597807,0.374838,0.708606) + New Polarization: (0.704457,-0.6675,-0.241213) + *** FresnelRefraction *** +Track (trackID 1062, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.825748,0.210229,0.523396) + Old Polarization: (-0.492802,-0.182504,0.850787) + New Momentum Direction: (0.645823,0.284568,0.708473) + New Polarization: (0.672725,-0.650912,-0.351788) + *** FresnelRefraction *** +Track (trackID 1061, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.82976,-0.402627,-0.38651) + Old Polarization: (-0.488899,-0.85839,-0.155386) + New Momentum Direction: (0.653711,-0.545914,-0.524061) + New Polarization: (0.66829,0.0915603,0.738244) + *** FresnelRefraction *** +Track (trackID 1060, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.4771,0.671657,-0.566792) + Old Polarization: (-0.877258,0.325169,-0.353106) + New Momentum Direction: (0.4771,-0.671657,-0.566792) + New Polarization: (0.877258,0.325169,0.353106) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.4771,-0.671657,-0.566792) + Old Polarization: (0.877258,0.325169,0.353106) + New Momentum Direction: (0.4771,-0.671657,0.566792) + New Polarization: (-0.877258,-0.325169,0.353106) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.4771,-0.671657,0.566792) + Old Polarization: (-0.877258,-0.325169,0.353106) + New Momentum Direction: (-0.4771,-0.671657,0.566792) + New Polarization: (-0.877258,0.325169,-0.353106) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (-0.4771,-0.671657,0.566792) +Old Polarization: (-0.877258,0.325169,-0.353106) +New Polarization: (0.688906,-0.435944,0.579104) +Polarization Change: (0.688906,-0.435944,0.579104) +New Momentum Direction: (0.716346,0.287434,-0.635791) +Momentum Change: (0.716346,0.287434,-0.635791) + +** Photon absorbed! ** +Track (trackID 1059, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.685966,0.613047,0.391949) + Old Polarization: (-0.647757,0.269123,0.71273) + New Momentum Direction: (0.202048,0.825145,0.527553) + New Polarization: (0.897898,-0.371173,0.236665) + *** FresnelRefraction *** +Track (trackID 1058, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.478315,0.787404,-0.388857) + Old Polarization: (-0.876637,0.454416,-0.158156) + New Momentum Direction: (0.648349,0.549381,-0.52709) + New Polarization: (-0.735502,0.630809,-0.24722) + *** FresnelRefraction *** +Track (trackID 1057, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.729276,-0.235978,-0.642239) +Old Polarization: (-0.599907,-0.671919,-0.434323) +New Polarization: (-0.722417,-0.673002,0.158686) +Polarization Change: (-0.722417,-0.673002,0.158686) +New Momentum Direction: (-0.0172134,-0.21192,-0.977135) +Momentum Change: (-0.0172134,-0.21192,-0.977135) + Photon at Boundary! + Old Momentum Direction: (-0.0172134,-0.21192,-0.977135) + Old Polarization: (-0.722417,-0.673002,0.158686) + New Momentum Direction: (-0.0233978,-0.288058,-0.957327) + New Polarization: (-0.604297,0.766923,-0.215996) + *** FresnelRefraction *** +Track (trackID 1056, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.519546,0.851483,-0.0710565) + Old Polarization: (-0.830488,0.522785,0.192317) + New Momentum Direction: (0.705287,0.702329,-0.0964596) + New Polarization: (-0.683581,0.709805,0.169979) + *** FresnelRefraction *** +Track (trackID 1055, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1054, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.480694,0.661515,-0.575614) + Old Polarization: (-0.87487,0.317277,-0.365976) + New Momentum Direction: (0.480694,-0.661515,-0.575614) + New Polarization: (0.87487,0.317277,0.365976) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480694,-0.661515,-0.575614) + Old Polarization: (0.87487,0.317277,0.365976) + New Momentum Direction: (0.480694,-0.661515,0.575614) + New Polarization: (-0.87487,-0.317277,0.365976) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480694,-0.661515,0.575614) + Old Polarization: (-0.87487,-0.317277,0.365976) + New Momentum Direction: (-0.480694,-0.661515,0.575614) + New Polarization: (-0.87487,0.317277,-0.365976) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480694,-0.661515,0.575614) + Old Polarization: (-0.87487,0.317277,-0.365976) + New Momentum Direction: (-0.480694,0.661515,0.575614) + New Polarization: (0.87487,0.317277,0.365976) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480694,0.661515,0.575614) + Old Polarization: (0.87487,0.317277,0.365976) + New Momentum Direction: (-0.480694,0.661515,-0.575614) + New Polarization: (-0.87487,-0.317277,0.365976) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480694,0.661515,-0.575614) + Old Polarization: (-0.87487,-0.317277,0.365976) + New Momentum Direction: (0.480694,0.661515,-0.575614) + New Polarization: (-0.87487,0.317277,-0.365976) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480694,0.661515,-0.575614) + Old Polarization: (-0.87487,0.317277,-0.365976) + New Momentum Direction: (0.480694,-0.661515,-0.575614) + New Polarization: (0.87487,0.317277,0.365976) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1053, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.782854,0.343535,0.51877) + Old Polarization: (-0.54098,-0.036078,0.840261) + New Momentum Direction: (0.534645,0.466588,0.704592) + New Polarization: (0.744653,-0.65432,-0.131745) + *** FresnelRefraction *** +Track (trackID 1052, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1051, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.908967,-0.416726,0.0109029) + Old Polarization: (-0.402612,-0.8708,0.282156) + New Momentum Direction: (0.824133,-0.566203,0.0148137) + New Polarization: (0.547567,0.80315,0.234779) + *** FresnelRefraction *** +Track (trackID 1050, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.758531,-0.284092,-0.586449) + Old Polarization: (-0.567024,-0.731241,-0.379172) + New Momentum Direction: (0.473243,-0.384057,-0.792806) + New Polarization: (0.778888,-0.238024,0.58024) + *** FresnelRefraction *** +Track (trackID 1049, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.777072,-0.322094,-0.540754) + Old Polarization: (-0.546801,-0.770956,-0.32655) + New Momentum Direction: (0.52273,-0.436256,-0.732417) + New Polarization: (0.750917,-0.171101,0.637847) + *** FresnelRefraction *** +Track (trackID 1048, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.611224,0.749965,0.252899) + Old Polarization: (-0.729442,0.409806,0.547698) + New Momentum Direction: (0.83057,0.43824,0.343656) + New Polarization: (-0.553741,0.584069,0.593494) + *** FresnelRefraction *** +Track (trackID 1047, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.884178,-0.440529,-0.155444) + Old Polarization: (-0.429663,-0.897488,0.0995254) + New Momentum Direction: (0.772933,-0.598331,-0.211125) + New Polarization: (0.585378,0.544111,0.601062) + *** FresnelRefraction *** +Track (trackID 1046, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.84083,-0.414932,-0.347616) + Old Polarization: (-0.47672,-0.871833,-0.112449) + New Momentum Direction: (0.67915,-0.562646,-0.471365) + New Polarization: (0.650994,0.165079,0.740915) + *** FresnelRefraction *** +Track (trackID 1045, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.922447,-0.3419,0.179433) + Old Polarization: (-0.38569,-0.793856,0.470145) + New Momentum Direction: (0.852583,-0.462737,0.24285) + New Polarization: (0.522018,0.77587,-0.354293) + *** FresnelRefraction *** +Track (trackID 1044, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.806192,-0.36358,-0.466758) + Old Polarization: (-0.513746,-0.821478,-0.247463) + New Momentum Direction: (0.601709,-0.490823,-0.630111) + New Polarization: (0.700725,-0.0542119,0.711369) + *** FresnelRefraction *** +Track (trackID 1043, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1042, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.532615,0.344799,-0.772939) +Old Polarization: (-0.815574,-0.0349733,-0.577595) +New Polarization: (0.484346,0.58387,0.65154) +Polarization Change: (0.484346,0.58387,0.65154) +New Momentum Direction: (0.707381,-0.699571,0.101055) +Momentum Change: (0.707381,-0.699571,0.101055) + Photon at Boundary! + Old Momentum Direction: (0.707381,-0.699571,0.101055) + Old Polarization: (0.484346,0.58387,0.65154) + New Momentum Direction: (0.277148,-0.950957,0.137369) + New Polarization: (0.703507,0.298217,0.645093) + *** FresnelRefraction *** +Track (trackID 1041, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.474941,0.786986,-0.393807) + Old Polarization: (-0.878607,0.44938,-0.161577) + New Momentum Direction: (0.645865,0.544117,-0.535532) + New Polarization: (-0.737216,0.626804,-0.252249) + *** FresnelRefraction *** +Track (trackID 1040, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.556046,0.268632,-0.786543) + Old Polarization: (-0.791462,-0.117805,-0.599758) + New Momentum Direction: (0.752422,0.363504,-0.549295) + New Polarization: (-0.580275,-0.0287925,-0.813912) + *** FresnelRefraction *** +Track (trackID 1039, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1038, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.690009,0.592958,0.415076) + Old Polarization: (-0.643005,0.238882,0.727654) + New Momentum Direction: (0.188388,0.80456,0.5632) + New Polarization: (0.900725,-0.370101,0.227419) + *** FresnelRefraction *** +Track (trackID 1037, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.922338,-0.346576,0.170813) + Old Polarization: (-0.385689,-0.799336,0.460767) + New Momentum Direction: (0.85244,-0.468961,0.231131) + New Polarization: (0.521908,0.789457,-0.323064) + *** FresnelRefraction *** +Track (trackID 1036, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.593433,0.124613,-0.795178) + Old Polarization: (-0.748919,-0.276466,-0.602235) + New Momentum Direction: (0.806551,0.169364,-0.566384) + New Polarization: (-0.528082,-0.224223,-0.819056) + *** FresnelRefraction *** +Track (trackID 1035, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.531242,0.349431,-0.771803) + Old Polarization: (-0.816965,-0.0299935,-0.575906) + New Momentum Direction: (0.722347,0.475133,-0.502458) + New Polarization: (-0.605224,0.0828603,-0.791731) + *** FresnelRefraction *** +Track (trackID 1034, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.919789,-0.265219,0.289219) + Old Polarization: (-0.389465,-0.707171,0.590108) + New Momentum Direction: (0.846794,-0.359506,0.392039) + New Polarization: (0.52802,0.479034,-0.701229) + *** FresnelRefraction *** +Track (trackID 1033, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1032, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1031, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.482117,0.80727,-0.340409) + Old Polarization: (-0.872657,0.476935,-0.104895) + New Momentum Direction: (0.653238,0.600454,-0.461233) + New Polarization: (-0.732258,0.655935,-0.183161) + *** FresnelRefraction *** +Track (trackID 1030, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.65755,-0.0575184,-0.751212) + Old Polarization: (-0.678817,-0.477801,-0.557597) + New Momentum Direction: (0.65755,-0.0575184,0.751212) + New Polarization: (0.219058,-0.939409,-0.263674) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.65755,-0.0575184,0.751212) + Old Polarization: (0.219058,-0.939409,-0.263674) + New Momentum Direction: (-0.65755,-0.0575184,0.751212) + New Polarization: (0.219058,0.939409,0.263674) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.65755,-0.0575184,0.751212) + Old Polarization: (0.219058,0.939409,0.263674) + New Momentum Direction: (-0.65755,-0.0575184,-0.751212) + New Polarization: (-0.175886,0.98125,0.0788243) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.65755,-0.0575184,-0.751212) + Old Polarization: (-0.175886,0.98125,0.0788243) + New Momentum Direction: (0.65755,-0.0575184,-0.751212) + New Polarization: (-0.175886,-0.98125,-0.0788243) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1029, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.625027,0.727376,0.283312) + Old Polarization: (-0.714579,0.387064,0.582717) + New Momentum Direction: (0.847954,0.365023,0.38436) + New Polarization: (-0.529814,0.561099,0.635976) + *** FresnelRefraction *** +Track (trackID 1028, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.905979,-0.421155,-0.0427831) + Old Polarization: (-0.401979,-0.887581,0.224972) + New Momentum Direction: (0.821123,-0.567829,-0.0576831) + New Polarization: (0.542741,0.745555,0.386754) + *** FresnelRefraction *** +Track (trackID 1027, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.612171,0.0783908,-0.78683) + Old Polarization: (-0.729299,-0.328557,-0.600144) + New Momentum Direction: (0.828334,0.106071,-0.550102) + New Polarization: (-0.503884,-0.288132,-0.814298) + *** FresnelRefraction *** +Track (trackID 1026, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.551423,0.271177,-0.78892) + Old Polarization: (-0.795022,-0.115676,-0.595449) + New Momentum Direction: (0.749417,0.368546,-0.550044) + New Polarization: (-0.583379,-0.0253277,-0.811805) + *** FresnelRefraction *** +Track (trackID 1025, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.606397,0.758826,0.237626) + Old Polarization: (-0.734947,0.420787,0.531781) + New Momentum Direction: (0.823239,0.467127,0.322599) + New Polarization: (-0.562563,0.595041,0.573976) + *** FresnelRefraction *** +Track (trackID 1024, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.744349,0.456076,0.487791) + Old Polarization: (-0.583186,0.0880985,0.807547) + New Momentum Direction: (0.422851,0.6189,0.661937) + New Polarization: (0.806239,-0.590431,0.0370108) + *** FresnelRefraction *** +Track (trackID 1023, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.632606,0.716896,0.293036) + Old Polarization: (-0.706776,0.379682,0.596916) + New Momentum Direction: (0.855392,0.33362,0.396235) + New Polarization: (-0.51798,0.553027,0.652578) + *** FresnelRefraction *** +Track (trackID 1022, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.48139,0.77175,-0.41553) + Old Polarization: (-0.875722,0.443532,-0.190762) + New Momentum Direction: (0.64954,0.513556,-0.560676) + New Polarization: (-0.733782,0.616558,-0.285342) + *** FresnelRefraction *** +Track (trackID 1021, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1020, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.714822,-0.186836,-0.673886) + Old Polarization: (-0.615467,-0.625596,-0.479407) + New Momentum Direction: (0.332388,-0.251983,-0.908858) + New Polarization: (0.84895,-0.339853,0.404703) + *** FresnelRefraction *** +Track (trackID 1019, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479552,0.69032,-0.541746) + Old Polarization: (-0.876706,0.35043,-0.329522) + New Momentum Direction: (0.479552,-0.69032,-0.541746) + New Polarization: (-0.545421,0.249144,-0.800277) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479552,-0.69032,-0.541746) + Old Polarization: (-0.545421,0.249144,-0.800277) + New Momentum Direction: (0.479552,-0.69032,0.541746) + New Polarization: (0.545421,-0.249144,-0.800277) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.479552,-0.69032,0.541746) + Old Polarization: (0.545421,-0.249144,-0.800277) + New Momentum Direction: (-0.479552,-0.69032,0.541746) + New Polarization: (0.545421,0.249144,0.800277) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.479552,-0.69032,0.541746) + Old Polarization: (0.545421,0.249144,0.800277) + New Momentum Direction: (-0.648309,-0.208089,0.73239) + New Polarization: (0.742244,-0.387027,0.547069) + *** FresnelRefraction *** +Track (trackID 1018, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.473755,0.769203,-0.428815) +Old Polarization: (-0.880126,0.430452,-0.200225) +New Polarization: (0.796536,-0.476263,0.372429) +Polarization Change: (0.796536,-0.476263,0.372429) +New Momentum Direction: (-0.505533,-0.186791,0.842345) +Momentum Change: (-0.505533,-0.186791,0.842345) + Photon at Boundary! + Old Momentum Direction: (-0.505533,-0.186791,0.842345) + Old Polarization: (0.796536,-0.476263,0.372429) + New Momentum Direction: (-0.687186,-0.253911,0.680665) + New Polarization: (0.695231,-0.501688,0.514745) + *** FresnelRefraction *** +Track (trackID 1017, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.480905,0.691331,-0.539251) + Old Polarization: (-0.876017,0.353341,-0.328244) + New Momentum Direction: (0.480905,-0.691331,-0.539251) + New Polarization: (-0.545671,0.245415,-0.801258) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480905,-0.691331,-0.539251) + Old Polarization: (-0.545671,0.245415,-0.801258) + New Momentum Direction: (0.480905,-0.691331,0.539251) + New Polarization: (0.545671,-0.245415,-0.801258) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.480905,-0.691331,0.539251) + Old Polarization: (0.545671,-0.245415,-0.801258) + New Momentum Direction: (-0.480905,-0.691331,0.539251) + New Polarization: (0.545671,0.245415,0.801258) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.480905,-0.691331,0.539251) + Old Polarization: (0.545671,0.245415,0.801258) + New Momentum Direction: (-0.649174,-0.220642,0.727935) + New Polarization: (0.744805,-0.378645,0.549449) + *** FresnelRefraction *** +Track (trackID 1016, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1015, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1014, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.668915,0.637576,0.382164) + Old Polarization: (-0.666091,0.285906,0.688898) + New Momentum Direction: (-0.668915,0.637576,0.382164) + New Polarization: (-0.666091,-0.285906,-0.688898) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668915,0.637576,0.382164) + Old Polarization: (-0.666091,-0.285906,-0.688898) + New Momentum Direction: (-0.668915,-0.637576,0.382164) + New Polarization: (0.666091,-0.285906,0.688898) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668915,-0.637576,0.382164) + Old Polarization: (0.666091,-0.285906,0.688898) + New Momentum Direction: (-0.668915,-0.637576,-0.382164) + New Polarization: (-0.666091,0.285906,0.688898) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1013, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1012, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.498509,0.837455,-0.22396) + Old Polarization: (-0.856348,0.515889,0.0229348) + New Momentum Direction: (0.673021,0.674996,-0.302361) + New Polarization: (-0.714617,0.698849,-0.0305331) + *** FresnelRefraction *** +Track (trackID 1011, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.840051,-0.419064,-0.344528) + Old Polarization: (-0.478723,-0.871377,-0.107361) + New Momentum Direction: (0.674718,-0.570132,-0.468727) + New Polarization: (0.655997,0.172176,0.734863) + *** FresnelRefraction *** +Track (trackID 1010, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.90815,-0.418641,0.00191127) + Old Polarization: (-0.403279,-0.873582,0.272433) + New Momentum Direction: (0.822645,-0.568549,0.00259567) + New Polarization: (0.548271,0.794496,0.261102) + *** FresnelRefraction *** +Track (trackID 1009, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.767914,0.385767,0.511362) + Old Polarization: (-0.557623,0.00973922,0.830037) + New Momentum Direction: (0.491001,0.524648,0.695459) + New Polarization: (0.770182,-0.634493,-0.0650999) + *** FresnelRefraction *** +Track (trackID 1008, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.686247,0.601363,0.409179) + Old Polarization: (-0.647141,0.247961,0.720919) + New Momentum Direction: (0.160011,0.816113,0.555298) + New Polarization: (0.908545,-0.341699,0.24039) + *** FresnelRefraction *** +Track (trackID 1007, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.845991,0.128332,0.517523) + Old Polarization: (-0.471676,-0.272482,0.838615) + New Momentum Direction: (0.689472,0.174331,0.70302) + New Polarization: (0.644969,-0.589458,-0.486369) + *** FresnelRefraction *** +Track (trackID 1006, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479776,0.68274,-0.551072) + Old Polarization: (-0.876309,0.341697,-0.339596) + New Momentum Direction: (0.648788,0.154114,-0.7452) + New Polarization: (-0.689883,0.532398,-0.490524) + *** FresnelRefraction *** +Track (trackID 1005, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.568055,0.814488,0.117997) + Old Polarization: (-0.777585,0.484204,0.401134) + New Momentum Direction: (0.770042,0.617616,0.159954) + New Polarization: (-0.619696,0.664457,0.4177) + *** FresnelRefraction *** +Track (trackID 1004, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.756592,0.437087,0.486337) + Old Polarization: (-0.568499,0.0722166,0.819508) + New Momentum Direction: (0.475756,0.587948,0.654196) + New Polarization: (0.776717,-0.629849,0.00120899) + *** FresnelRefraction *** +Track (trackID 1003, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.777695,-0.323137,-0.539234) + Old Polarization: (-0.546107,-0.772146,-0.324897) + New Momentum Direction: (0.524464,-0.437656,-0.730338) + New Polarization: (0.749884,-0.168821,0.639667) + *** FresnelRefraction *** +Track (trackID 1002, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.514004,0.852274,-0.0970999) + Old Polarization: (-0.836422,0.523087,0.163639) + New Momentum Direction: (0.698016,0.703837,-0.131861) + New Polarization: (-0.690597,0.710351,0.13593) + *** FresnelRefraction *** +Track (trackID 1001, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.646001,0.686562,0.33364) + Old Polarization: (-0.691353,0.340947,0.637013) + New Momentum Direction: (0.646001,-0.686562,0.33364) + New Polarization: (-0.205087,0.264905,0.942213) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646001,-0.686562,0.33364) + Old Polarization: (-0.205087,0.264905,0.942213) + New Momentum Direction: (-0.646001,-0.686562,0.33364) + New Polarization: (-0.205087,-0.264905,-0.942213) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1000, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.54628,0.836063,0.0507646) + Old Polarization: (-0.800468,0.503255,0.325553) + New Momentum Direction: (0.742827,0.665915,0.0690293) + New Polarization: (-0.647247,0.687975,0.328272) + *** FresnelRefraction *** +Track (trackID 999, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.718361,0.524453,0.457062) + Old Polarization: (-0.611785,0.163487,0.773945) + New Momentum Direction: (0.330274,0.711578,0.620142) + New Polarization: (0.849643,-0.510301,0.133041) + *** FresnelRefraction *** +Track (trackID 998, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.845838,0.133171,0.51655) + Old Polarization: (-0.471174,-0.267498,0.8405) + New Momentum Direction: (0.690541,0.180567,0.700392) + New Polarization: (0.643069,-0.596519,-0.480237) + *** FresnelRefraction *** +Track (trackID 997, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.822212,-0.388535,-0.415943) + Old Polarization: (-0.496346,-0.84711,-0.189857) + New Momentum Direction: (0.638647,-0.525276,-0.56233) + New Polarization: (0.676931,0.0360084,0.735165) + *** FresnelRefraction *** +Track (trackID 996, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 227 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 51 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 279 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0772847,0.790356,0.607754) + Old Polarization: (0.81217,-0.403471,0.421417) + New Momentum Direction: (0.104915,0.55526,0.825033) + New Polarization: (0.681536,0.564014,-0.466258) + *** FresnelRefraction *** +Track (trackID 1592, parentID 1) is processed with stopping code 2 +### pop requested out of 278 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.273865,-0.837552,-0.472763) + Old Polarization: (0.95392,0.17388,0.244545) + New Momentum Direction: (0.372285,-0.66962,-0.642661) + New Polarization: (0.707286,-0.243664,0.663607) + *** FresnelRefraction *** +Track (trackID 1591, parentID 1) is processed with stopping code 2 +### pop requested out of 277 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.223161,0.0573077,-0.973096) + Old Polarization: (0.911188,-0.342399,-0.229128) + New Momentum Direction: (-0.303077,0.0778302,-0.949782) + New Polarization: (0.888864,-0.336272,-0.311194) + *** FresnelRefraction *** +Track (trackID 1590, parentID 1) is processed with stopping code 2 +### pop requested out of 276 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.458833,0.840264,-0.288842) + Old Polarization: (-0.8552,0.505831,0.112996) + New Momentum Direction: (0.622562,0.677364,-0.391912) + New Polarization: (-0.723406,0.689148,0.0419452) + *** FresnelRefraction *** +Track (trackID 1589, parentID 1) is processed with stopping code 2 +### pop requested out of 275 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.794736,0.568952,-0.211397) + Old Polarization: (-0.594545,-0.799814,0.0825508) + New Momentum Direction: (-0.564504,0.773747,-0.28749) + New Polarization: (-0.810165,-0.586046,0.0135286) + *** FresnelRefraction *** +Track (trackID 1588, parentID 1) is processed with stopping code 2 +### pop requested out of 274 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1587, parentID 1) is processed with stopping code 2 +### pop requested out of 273 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.575361,-0.390759,-0.718517) + Old Polarization: (0.687698,0.706679,0.166362) + New Momentum Direction: (0.781156,-0.530525,-0.329147) + New Polarization: (0.469222,0.846645,-0.251046) + *** FresnelRefraction *** +Track (trackID 1586, parentID 1) is processed with stopping code 2 +### pop requested out of 272 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1585, parentID 1) is processed with stopping code 2 +### pop requested out of 271 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0465289,-0.384613,-0.921904) + Old Polarization: (0.634734,-0.70125,0.324593) + New Momentum Direction: (0.0632396,-0.522745,-0.85014) + New Polarization: (0.451423,0.774703,-0.442779) + *** FresnelRefraction *** +Track (trackID 1584, parentID 1) is processed with stopping code 2 +### pop requested out of 270 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.793804,-0.588498,-0.153445) + Old Polarization: (-0.0548278,0.18203,-0.981763) + New Momentum Direction: (0.562746,-0.799887,-0.208563) + New Polarization: (0.0784552,0.302848,-0.949804) + *** FresnelRefraction *** +Track (trackID 1583, parentID 1) is processed with stopping code 2 +### pop requested out of 269 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.454389,-0.877892,0.151118) +Old Polarization: (0.799423,-0.476709,-0.365611) +New Polarization: (0.294791,-0.894067,0.337257) +Polarization Change: (0.294791,-0.894067,0.337257) +New Momentum Direction: (-0.760351,-0.00570475,0.649487) +Momentum Change: (-0.760351,-0.00570475,0.649487) + +** Photon absorbed! ** +Track (trackID 1582, parentID 1) is processed with stopping code 2 +### pop requested out of 268 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.516216,0.304463,0.800514) + Old Polarization: (0.779783,-0.219472,0.58632) + New Momentum Direction: (-0.702343,0.414241,0.578894) + New Polarization: (0.589173,-0.118109,0.799329) + *** FresnelRefraction *** +Track (trackID 1581, parentID 1) is processed with stopping code 2 +### pop requested out of 267 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.150719,0.512173,-0.845555) + Old Polarization: (0.446622,0.727782,0.520444) + New Momentum Direction: (0.203134,0.690291,-0.694431) + New Polarization: (0.016719,-0.71156,-0.702427) + *** FresnelRefraction *** +Track (trackID 1580, parentID 1) is processed with stopping code 2 +### pop requested out of 266 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.480095,-0.757009,0.443221) + Old Polarization: (-0.240614,-0.372239,-0.896406) + New Momentum Direction: (-0.652742,-0.45912,0.602608) + New Polarization: (-0.341584,-0.531628,-0.775043) + *** FresnelRefraction *** +Track (trackID 1579, parentID 1) is processed with stopping code 2 +### pop requested out of 265 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.972903,0.217424,-0.0786579) + Old Polarization: (-4.3162e-05,-0.340023,-0.940417) + New Momentum Direction: (0.950243,0.292931,-0.105974) + New Polarization: (5.83544e-05,-0.340362,-0.940295) + *** FresnelRefraction *** +Track (trackID 1578, parentID 1) is processed with stopping code 2 +### pop requested out of 264 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.958358,-0.171017,0.228697) + Old Polarization: (0.0430127,-0.705268,-0.707635) + New Momentum Direction: (0.921959,-0.231932,0.310159) + New Polarization: (0.0586683,-0.707968,-0.703803) + *** FresnelRefraction *** +Track (trackID 1577, parentID 1) is processed with stopping code 2 +### pop requested out of 263 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.60182,-0.618723,0.50497) + Old Polarization: (0.70722,0.706621,0.0229397) + New Momentum Direction: (0.60182,0.618723,0.50497) + New Polarization: (-0.70722,0.706621,-0.0229397) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.60182,0.618723,0.50497) + Old Polarization: (-0.70722,0.706621,-0.0229397) + New Momentum Direction: (-0.60182,0.618723,0.50497) + New Polarization: (-0.70722,-0.706621,0.0229397) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.60182,0.618723,0.50497) + Old Polarization: (-0.70722,-0.706621,0.0229397) + New Momentum Direction: (-0.60182,0.618723,-0.50497) + New Polarization: (0.70722,0.706621,0.0229397) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1576, parentID 1) is processed with stopping code 2 +### pop requested out of 262 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.211568,0.874757,-0.435935) + Old Polarization: (0.0337135,0.439235,0.89774) + New Momentum Direction: (0.287739,0.752125,-0.592886) + New Polarization: (0.0739065,0.599782,0.796743) + *** FresnelRefraction *** +Track (trackID 1575, parentID 1) is processed with stopping code 2 +### pop requested out of 261 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.483233,0.83537,-0.261999) + Old Polarization: (-0.87549,0.460495,-0.146497) + New Momentum Direction: (0.65551,0.666328,-0.355405) + New Polarization: (-0.74968,0.630892,-0.199889) + *** FresnelRefraction *** +Track (trackID 1574, parentID 1) is processed with stopping code 2 +### pop requested out of 260 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1573, parentID 1) is processed with stopping code 2 +### pop requested out of 259 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.673807,-0.574535,-0.464643) + Old Polarization: (-0.734974,0.585925,0.341328) + New Momentum Direction: (0.673807,-0.574535,-0.464643) + New Polarization: (-0.734756,-0.454416,-0.503626) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.673807,-0.574535,-0.464643) + Old Polarization: (-0.734756,-0.454416,-0.503626) + New Momentum Direction: (0.673807,0.574535,-0.464643) + New Polarization: (0.734756,-0.454416,0.503626) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1572, parentID 1) is processed with stopping code 2 +### pop requested out of 258 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.973261,-0.1968,0.118461) + Old Polarization: (-0.227899,-0.762807,0.605134) + New Momentum Direction: (0.950372,-0.266552,0.160448) + New Polarization: (0.308691,0.872162,-0.37953) + *** FresnelRefraction *** +Track (trackID 1571, parentID 1) is processed with stopping code 2 +### pop requested out of 257 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1570, parentID 1) is processed with stopping code 2 +### pop requested out of 256 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0718048,-0.706831,-0.703729) + Old Polarization: (0.932465,0.202877,-0.298915) + New Momentum Direction: (-0.0967578,-0.302321,-0.948283) + New Polarization: (0.952503,-0.304528,-0.000102253) + *** FresnelRefraction *** +Track (trackID 1569, parentID 1) is processed with stopping code 2 +### pop requested out of 255 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0384584,-0.697565,0.715488) + Old Polarization: (-0.21078,-0.70557,-0.676566) + New Momentum Direction: (0.0521101,-0.945184,0.322354) + New Polarization: (-0.240752,0.301382,0.922609) + *** FresnelRefraction *** +Track (trackID 1568, parentID 1) is processed with stopping code 2 +### pop requested out of 254 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.588573,0.774762,-0.230924) + Old Polarization: (-0.464386,-0.557815,-0.687886) + New Momentum Direction: (-0.793226,0.523388,-0.311219) + New Polarization: (0.59946,0.760971,-0.248135) + *** FresnelRefraction *** +Track (trackID 1567, parentID 1) is processed with stopping code 2 +### pop requested out of 253 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.108727,-0.596491,0.795222) + Old Polarization: (0.94358,-0.313638,-0.106247) + New Momentum Direction: (-0.14791,-0.811454,0.565389) + New Polarization: (0.985632,-0.0737961,0.151935) + *** FresnelRefraction *** +Track (trackID 1566, parentID 1) is processed with stopping code 2 +### pop requested out of 252 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.866904,-0.419429,0.269365) + Old Polarization: (-0.277109,0.0436818,0.959845) + New Momentum Direction: (0.734818,-0.570707,0.366518) + New Polarization: (0.383627,0.795345,0.469315) + *** FresnelRefraction *** +Track (trackID 1565, parentID 1) is processed with stopping code 2 +### pop requested out of 251 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.746916,-0.658422,0.092715) + Old Polarization: (-0.0406019,-0.184341,-0.982023) + New Momentum Direction: (0.427582,-0.895145,0.126049) + New Polarization: (0.0599508,-0.111051,-0.992005) + *** FresnelRefraction *** +Track (trackID 1564, parentID 1) is processed with stopping code 2 +### pop requested out of 250 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0523635,-0.869608,-0.490959) + Old Polarization: (0.00595872,-0.491353,0.87094) + New Momentum Direction: (0.070905,-0.743646,-0.664803) + New Polarization: (0.0169875,-0.665484,0.746219) + *** FresnelRefraction *** +Track (trackID 1563, parentID 1) is processed with stopping code 2 +### pop requested out of 249 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.435442,0.0158964,0.900077) + Old Polarization: (0.890057,0.142187,-0.433106) + New Momentum Direction: (0.589148,0.0215076,0.807739) + New Polarization: (-0.806426,0.0785103,0.586099) + *** FresnelRefraction *** +Track (trackID 1562, parentID 1) is processed with stopping code 2 +### pop requested out of 248 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.358044,-0.302102,0.883481) + Old Polarization: (0.0288339,0.949337,0.312936) + New Momentum Direction: (0.486606,-0.410577,0.77113) + New Polarization: (0.0772472,0.899446,0.430151) + *** FresnelRefraction *** +Track (trackID 1561, parentID 1) is processed with stopping code 2 +### pop requested out of 247 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1560, parentID 1) is processed with stopping code 2 +### pop requested out of 246 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.545556,-0.706814,0.450313) + Old Polarization: (-0.0947175,-0.481876,-0.871105) + New Momentum Direction: (-0.741816,-0.273468,0.61231) + New Polarization: (-0.282013,-0.701194,-0.654825) + *** FresnelRefraction *** +Track (trackID 1559, parentID 1) is processed with stopping code 2 +### pop requested out of 245 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.251854,0.911593,-0.324912) + Old Polarization: (0.664933,-0.406939,-0.626311) + New Momentum Direction: (0.340143,0.831713,-0.438812) + New Polarization: (-0.393924,0.549742,0.736619) + *** FresnelRefraction *** +Track (trackID 1558, parentID 1) is processed with stopping code 2 +### pop requested out of 244 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.947088,0.320711,-0.0130162) + Old Polarization: (-0.250639,-0.713609,0.654174) + New Momentum Direction: (-0.901239,0.432965,-0.0175721) + New Polarization: (-0.339339,-0.679972,0.64999) + *** FresnelRefraction *** +Track (trackID 1557, parentID 1) is processed with stopping code 2 +### pop requested out of 243 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.547429,0.7713,-0.324682) + Old Polarization: (0.215127,0.245238,0.945293) + New Momentum Direction: (0.739978,0.50972,-0.438883) + New Polarization: (0.288404,0.349032,0.891628) + *** FresnelRefraction *** +Track (trackID 1556, parentID 1) is processed with stopping code 2 +### pop requested out of 242 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.478946,-0.747327,-0.460557) + Old Polarization: (-0.698863,0.00711555,0.71522) + New Momentum Direction: (-0.647239,-0.440128,-0.622389) + New Polarization: (-0.689417,-0.0103891,0.72429) + *** FresnelRefraction *** +Track (trackID 1555, parentID 1) is processed with stopping code 2 +### pop requested out of 241 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.165727,0.0470811,0.985047) + Old Polarization: (-0.662705,-0.745026,-0.075886) + New Momentum Direction: (-0.223734,0.0635604,0.972575) + New Polarization: (0.167467,-0.980524,0.102604) + *** FresnelRefraction *** +Track (trackID 1554, parentID 1) is processed with stopping code 2 +### pop requested out of 240 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.574398,-0.330562,-0.748863) + Old Polarization: (-0.683462,0.697141,0.216502) + New Momentum Direction: (-0.780184,-0.448991,-0.435569) + New Polarization: (-0.334668,0.887857,-0.315764) + *** FresnelRefraction *** +Track (trackID 1553, parentID 1) is processed with stopping code 2 +### pop requested out of 239 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.450004,-0.740063,0.499803) + Old Polarization: (0.576791,0.186409,0.795339) + New Momentum Direction: (-0.61046,-0.409431,0.678016) + New Polarization: (0.791125,-0.273894,0.546904) + *** FresnelRefraction *** +Track (trackID 1552, parentID 1) is processed with stopping code 2 +### pop requested out of 238 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.639586,0.0195555,-0.768471) + Old Polarization: (0.702271,0.421438,-0.573764) + New Momentum Direction: (-0.869693,0.0265911,-0.492876) + New Polarization: (0.460058,0.405448,-0.78991) + *** FresnelRefraction *** +Track (trackID 1551, parentID 1) is processed with stopping code 2 +### pop requested out of 237 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1550, parentID 1) is processed with stopping code 2 +### pop requested out of 236 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1549, parentID 1) is processed with stopping code 2 +### pop requested out of 235 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1548, parentID 1) is processed with stopping code 2 +### pop requested out of 234 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.105431,-0.47145,-0.875568) + Old Polarization: (-0.774253,-0.513607,0.369784) + New Momentum Direction: (-0.142853,-0.638789,-0.756004) + New Polarization: (-0.492402,0.708469,-0.505581) + *** FresnelRefraction *** +Track (trackID 1547, parentID 1) is processed with stopping code 2 +### pop requested out of 233 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1546, parentID 1) is processed with stopping code 2 +### pop requested out of 232 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.359151,0.263086,0.895431) + Old Polarization: (0.675114,0.589215,-0.4439) + New Momentum Direction: (0.484984,0.355261,0.799112) + New Polarization: (-0.687218,-0.410305,0.599484) + *** FresnelRefraction *** +Track (trackID 1545, parentID 1) is processed with stopping code 2 +### pop requested out of 231 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.578023,0.00618186,0.815997) + Old Polarization: (-0.604258,0.668801,-0.433102) + New Momentum Direction: (-0.779096,0.0083323,0.626849) + New Polarization: (0.484455,0.642629,0.593576) + *** FresnelRefraction *** +Track (trackID 1544, parentID 1) is processed with stopping code 2 +### pop requested out of 230 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1543, parentID 1) is processed with stopping code 2 +### pop requested out of 229 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0307507,0.737487,-0.674661) + Old Polarization: (-0.559974,-0.546396,-0.6228) + New Momentum Direction: (0.0416718,0.402964,-0.914267) + New Polarization: (-0.568404,0.762115,0.309996) + *** FresnelRefraction *** +Track (trackID 1542, parentID 1) is processed with stopping code 2 +### pop requested out of 228 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.561669,-0.173855,-0.80889) + Old Polarization: (-0.768262,-0.472471,-0.431909) + New Momentum Direction: (0.761172,-0.235608,-0.60424) + New Polarization: (-0.628294,-0.498918,-0.596932) + *** FresnelRefraction *** +Track (trackID 1541, parentID 1) is processed with stopping code 2 +### pop requested out of 227 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1540, parentID 1) is processed with stopping code 2 +### pop requested out of 226 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.92115,-0.35979,0.148439) + Old Polarization: (-0.367989,-0.680892,0.633222) + New Momentum Direction: (0.850062,-0.486874,0.200871) + New Polarization: (0.498599,0.866785,-0.0090853) + *** FresnelRefraction *** +Track (trackID 1539, parentID 1) is processed with stopping code 2 +### pop requested out of 225 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1538, parentID 1) is processed with stopping code 2 +### pop requested out of 224 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1537, parentID 1) is processed with stopping code 2 +### pop requested out of 223 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.928174,-0.31377,0.200105) + Old Polarization: (-0.360945,-0.628077,0.689375) + New Momentum Direction: (0.863545,-0.425169,0.271149) + New Polarization: (0.489404,0.836224,-0.247415) + *** FresnelRefraction *** +Track (trackID 1536, parentID 1) is processed with stopping code 2 +### pop requested out of 222 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.779647,0.556254,0.287632) + Old Polarization: (-0.526947,0.334587,0.781267) + New Momentum Direction: (0.523324,0.756928,0.391398) + New Polarization: (0.729212,-0.635444,0.253889) + *** FresnelRefraction *** +Track (trackID 1535, parentID 1) is processed with stopping code 2 +### pop requested out of 221 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1534, parentID 1) is processed with stopping code 2 +### pop requested out of 220 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.767194,-0.502738,-0.39833) +Old Polarization: (-0.539454,-0.841692,0.0233103) +New Polarization: (0.411165,0.754542,-0.511478) +Polarization Change: (0.411165,0.754542,-0.511478) +New Momentum Direction: (-0.368038,-0.375925,-0.850428) +Momentum Change: (-0.368038,-0.375925,-0.850428) + Photon at Boundary! + Old Momentum Direction: (-0.368038,-0.375925,-0.850428) + Old Polarization: (0.411165,0.754542,-0.511478) + New Momentum Direction: (-0.497588,-0.508252,-0.702912) + New Polarization: (0.315999,0.648453,-0.69257) + *** FresnelRefraction *** +Track (trackID 1533, parentID 1) is processed with stopping code 2 +### pop requested out of 219 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.934639,-0.23858,0.263683) + Old Polarization: (-0.353586,-0.544775,0.760393) + New Momentum Direction: (0.876332,-0.323191,0.357197) + New Polarization: (0.479035,0.662697,-0.575638) + *** FresnelRefraction *** +Track (trackID 1532, parentID 1) is processed with stopping code 2 +### pop requested out of 218 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.849432,-0.508294,-0.141785) + Old Polarization: (-0.449988,-0.838052,0.308511) + New Momentum Direction: (0.696197,-0.691453,-0.192877) + New Polarization: (0.617104,0.439217,0.652894) + *** FresnelRefraction *** +Track (trackID 1531, parentID 1) is processed with stopping code 2 +### pop requested out of 217 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.696165,-0.444021,-0.564092) +Old Polarization: (-0.618841,-0.769449,-0.158065) +New Polarization: (0.839949,0.309635,0.445659) +Polarization Change: (0.839949,0.309635,0.445659) +New Momentum Direction: (0.137578,-0.915914,0.377059) +Momentum Change: (0.137578,-0.915914,0.377059) + Photon at Boundary! + Old Momentum Direction: (0.137578,-0.915914,0.377059) + Old Polarization: (0.839949,0.309635,0.445659) + New Momentum Direction: (-0.137578,-0.915914,0.377059) + New Polarization: (0.839949,-0.309635,-0.445659) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1530, parentID 1) is processed with stopping code 2 +### pop requested out of 216 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.455421,0.58654,-0.669748) + Old Polarization: (-0.88604,0.37192,-0.276784) + New Momentum Direction: (0.455421,0.58654,0.669748) + New Polarization: (0.88604,-0.37192,-0.276784) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.455421,0.58654,0.669748) + Old Polarization: (0.88604,-0.37192,-0.276784) + New Momentum Direction: (0.455421,-0.58654,0.669748) + New Polarization: (-0.88604,-0.37192,0.276784) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.455421,-0.58654,0.669748) + Old Polarization: (-0.88604,-0.37192,0.276784) + New Momentum Direction: (-0.455421,-0.58654,0.669748) + New Polarization: (-0.88604,0.37192,-0.276784) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1529, parentID 1) is processed with stopping code 2 +### pop requested out of 215 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.545154,-0.120829,-0.829583) + Old Polarization: (-0.7871,-0.41441,-0.456878) + New Momentum Direction: (0.737811,-0.16353,-0.654899) + New Polarization: (-0.650618,-0.430733,-0.625432) + *** FresnelRefraction *** +Track (trackID 1528, parentID 1) is processed with stopping code 2 +### pop requested out of 214 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1527, parentID 1) is processed with stopping code 2 +### pop requested out of 213 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1526, parentID 1) is processed with stopping code 2 +### pop requested out of 212 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.868031,-0.490209,-0.0788454) +Old Polarization: (-0.428881,-0.820295,0.378386) +New Polarization: (-0.756597,-0.600034,0.259848) +Polarization Change: (-0.756597,-0.600034,0.259848) +New Momentum Direction: (0.652975,-0.672397,0.348577) +Momentum Change: (0.652975,-0.672397,0.348577) +Scattering Photon! +Old Momentum Direction: (0.652975,-0.672397,0.348577) +Old Polarization: (-0.756597,-0.600034,0.259848) +New Polarization: (-0.385647,-0.887375,0.25267) +Polarization Change: (-0.385647,-0.887375,0.25267) +New Momentum Direction: (-0.906259,0.415701,0.0767254) +Momentum Change: (-0.906259,0.415701,0.0767254) + Photon at Boundary! + Old Momentum Direction: (-0.906259,0.415701,0.0767254) + Old Polarization: (-0.385647,-0.887375,0.25267) + New Momentum Direction: (-0.81869,0.564698,0.104226) + New Polarization: (-0.525213,-0.809741,0.261671) + *** FresnelRefraction *** +Track (trackID 1525, parentID 1) is processed with stopping code 2 +### pop requested out of 211 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.596066,-0.249217,-0.76328) + Old Polarization: (-0.731267,-0.561074,-0.387872) + New Momentum Direction: (0.803772,-0.33606,-0.490932) + New Polarization: (-0.58421,-0.601831,-0.544516) + *** FresnelRefraction *** +Track (trackID 1524, parentID 1) is processed with stopping code 2 +### pop requested out of 210 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1523, parentID 1) is processed with stopping code 2 +### pop requested out of 209 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.478844,0.163188,-0.8626) + Old Polarization: (-0.86217,-0.0977525,-0.497098) + New Momentum Direction: (0.646665,0.220381,-0.730244) + New Polarization: (-0.738216,-0.0601491,-0.671877) + *** FresnelRefraction *** +Track (trackID 1522, parentID 1) is processed with stopping code 2 +### pop requested out of 208 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.719351,0.674175,0.167396) + Old Polarization: (-0.593016,0.470513,0.653413) + New Momentum Direction: (-0.719351,0.674175,0.167396) + New Polarization: (0.41643,0.225654,0.880719) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.719351,0.674175,0.167396) + Old Polarization: (0.41643,0.225654,0.880719) + New Momentum Direction: (-0.719351,-0.674175,0.167396) + New Polarization: (-0.41643,0.225654,-0.880719) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.719351,-0.674175,0.167396) + Old Polarization: (-0.41643,0.225654,-0.880719) + New Momentum Direction: (-0.338697,-0.913167,0.226738) + New Polarization: (-0.602965,0.02566,-0.797355) + *** FresnelRefraction *** +Track (trackID 1521, parentID 1) is processed with stopping code 2 +### pop requested out of 207 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.482151,0.169677,-0.8595) +Old Polarization: (-0.860897,-0.0901454,-0.50073) +New Polarization: (-0.99359,-0.113028,0.00168517) +Polarization Change: (-0.99359,-0.113028,0.00168517) +New Momentum Direction: (0.00341556,-0.0151174,0.99988) +Momentum Change: (0.00341556,-0.0151174,0.99988) + +** Photon absorbed! ** +Track (trackID 1520, parentID 1) is processed with stopping code 2 +### pop requested out of 206 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.933981,-0.151444,0.323642) + Old Polarization: (-0.356785,-0.444916,0.821434) + New Momentum Direction: (0.873934,-0.206,0.440232) + New Polarization: (0.485329,0.320689,-0.813397) + *** FresnelRefraction *** +Track (trackID 1519, parentID 1) is processed with stopping code 2 +### pop requested out of 205 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.844996,0.386108,0.370003) + Old Polarization: (-0.45328,0.149995,0.878657) + New Momentum Direction: (0.689362,0.523032,0.501216) + New Polarization: (0.619215,-0.784529,-0.0329787) + *** FresnelRefraction *** +Track (trackID 1518, parentID 1) is processed with stopping code 2 +### pop requested out of 204 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.892127,-0.451783,-0.00111666) + Old Polarization: (-0.398679,-0.788423,0.468449) + New Momentum Direction: (0.792923,-0.60932,-0.00150604) + New Polarization: (0.539755,0.701245,0.465746) + *** FresnelRefraction *** +Track (trackID 1517, parentID 1) is processed with stopping code 2 +### pop requested out of 203 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.465217,0.217671,-0.858016) + Old Polarization: (-0.874421,-0.0377765,-0.483695) + New Momentum Direction: (0.631603,0.295522,-0.71676) + New Polarization: (-0.752362,0.0104509,-0.658667) + *** FresnelRefraction *** +Track (trackID 1516, parentID 1) is processed with stopping code 2 +### pop requested out of 202 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.79895,-0.517961,-0.305608) + Old Polarization: (-0.504772,-0.853795,0.127432) + New Momentum Direction: (0.578716,-0.702383,-0.414422) + New Polarization: (0.694013,0.157286,0.702572) + *** FresnelRefraction *** +Track (trackID 1515, parentID 1) is processed with stopping code 2 +### pop requested out of 201 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.530563,0.784277,-0.321579) + Old Polarization: (-0.801668,0.58752,0.110216) + New Momentum Direction: (0.721118,0.537544,-0.437076) + New Polarization: (-0.595966,0.802998,0.00431454) + *** FresnelRefraction *** +Track (trackID 1514, parentID 1) is processed with stopping code 2 +### pop requested out of 200 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.778982,-0.510535,-0.364062) + Old Polarization: (-0.526626,-0.847825,0.0621111) + New Momentum Direction: (0.528208,-0.691341,-0.492995) + New Polarization: (0.724872,0.0647595,0.685833) + *** FresnelRefraction *** +Track (trackID 1513, parentID 1) is processed with stopping code 2 +### pop requested out of 199 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.457923,0.36781,-0.809335) + Old Polarization: (-0.887305,0.13304,-0.441577) + New Momentum Direction: (0.61667,0.495317,-0.611865) + New Polarization: (-0.768228,0.208942,-0.605119) + *** FresnelRefraction *** +Track (trackID 1512, parentID 1) is processed with stopping code 2 +### pop requested out of 198 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.660897,-0.379581,-0.647405) + Old Polarization: (-0.658399,-0.707274,-0.257437) + New Momentum Direction: (-0.660897,-0.379581,-0.647405) + New Polarization: (-0.658399,0.707274,0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.660897,-0.379581,-0.647405) + Old Polarization: (-0.658399,0.707274,0.257437) + New Momentum Direction: (-0.660897,-0.379581,0.647405) + New Polarization: (0.658399,-0.707274,0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.660897,-0.379581,0.647405) + Old Polarization: (0.658399,-0.707274,0.257437) + New Momentum Direction: (-0.660897,0.379581,0.647405) + New Polarization: (-0.658399,-0.707274,-0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.660897,0.379581,0.647405) + Old Polarization: (-0.658399,-0.707274,-0.257437) + New Momentum Direction: (0.660897,0.379581,0.647405) + New Polarization: (-0.658399,0.707274,0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.660897,0.379581,0.647405) + Old Polarization: (-0.658399,0.707274,0.257437) + New Momentum Direction: (0.660897,0.379581,-0.647405) + New Polarization: (0.658399,-0.707274,0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.660897,0.379581,-0.647405) + Old Polarization: (0.658399,-0.707274,0.257437) + New Momentum Direction: (-0.660897,0.379581,-0.647405) + New Polarization: (0.658399,0.707274,-0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.660897,0.379581,-0.647405) + Old Polarization: (0.658399,0.707274,-0.257437) + New Momentum Direction: (-0.660897,0.379581,0.647405) + New Polarization: (-0.658399,-0.707274,-0.257437) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.660897,0.379581,0.647405) + Old Polarization: (-0.658399,-0.707274,-0.257437) + New Momentum Direction: (-0.660897,-0.379581,0.647405) + New Polarization: (0.658399,-0.707274,0.257437) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1511, parentID 1) is processed with stopping code 2 +### pop requested out of 197 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.448083,0.522272,-0.725571) + Old Polarization: (-0.893047,0.298791,-0.336438) + New Momentum Direction: (0.608683,0.709462,-0.355202) + New Polarization: (-0.766612,0.410515,-0.493744) + *** FresnelRefraction *** +Track (trackID 1510, parentID 1) is processed with stopping code 2 +### pop requested out of 196 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.852419,-0.50595,-0.131895) + Old Polarization: (-0.446627,-0.835749,0.319451) + New Momentum Direction: (0.703049,-0.688143,-0.179391) + New Polarization: (0.612186,0.457284,0.645073) + *** FresnelRefraction *** +Track (trackID 1509, parentID 1) is processed with stopping code 2 +### pop requested out of 195 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.797176,0.517919,0.310275) + Old Polarization: (-0.506908,0.295003,0.809949) + New Momentum Direction: (0.57345,0.702778,0.421021) + New Polarization: (0.697596,-0.688346,0.198844) + *** FresnelRefraction *** +Track (trackID 1508, parentID 1) is processed with stopping code 2 +### pop requested out of 194 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1507, parentID 1) is processed with stopping code 2 +### pop requested out of 193 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1506, parentID 1) is processed with stopping code 2 +### pop requested out of 192 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1505, parentID 1) is processed with stopping code 2 +### pop requested out of 191 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.832787,-0.515597,-0.201556) + Old Polarization: (-0.46748,-0.849997,0.242832) + New Momentum Direction: (0.660019,-0.699687,-0.27352) + New Polarization: (0.640645,0.33406,0.691359) + *** FresnelRefraction *** +Track (trackID 1504, parentID 1) is processed with stopping code 2 +### pop requested out of 190 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.467364,0.216673,-0.857102) + Old Polarization: (-0.873187,-0.0384844,-0.485864) + New Momentum Direction: (0.633214,0.293563,-0.716143) + New Polarization: (-0.751032,0.00942704,-0.660199) + *** FresnelRefraction *** +Track (trackID 1503, parentID 1) is processed with stopping code 2 +### pop requested out of 189 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.51144,0.763317,-0.394685) +Old Polarization: (-0.823437,0.566671,0.0289116) +New Polarization: (-0.67966,-0.198008,0.706297) +Polarization Change: (-0.67966,-0.198008,0.706297) +New Momentum Direction: (-0.5719,0.746002,-0.341193) +Momentum Change: (-0.5719,0.746002,-0.341193) + Photon at Boundary! + Old Momentum Direction: (-0.5719,0.746002,-0.341193) + Old Polarization: (-0.67966,-0.198008,0.706297) + New Momentum Direction: (-0.776143,0.428011,-0.463044) + New Polarization: (-0.36764,0.289447,0.883777) + *** FresnelRefraction *** +Track (trackID 1502, parentID 1) is processed with stopping code 2 +### pop requested out of 188 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1501, parentID 1) is processed with stopping code 2 +### pop requested out of 187 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.616689,-0.314351,-0.721719) + Old Polarization: (-0.706573,-0.625231,-0.331422) + New Momentum Direction: (0.838248,-0.427289,-0.338771) + New Polarization: (-0.544861,-0.680967,-0.489296) + *** FresnelRefraction *** +Track (trackID 1500, parentID 1) is processed with stopping code 2 +### pop requested out of 186 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1499, parentID 1) is processed with stopping code 2 +### pop requested out of 185 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.931691,-0.283526,0.227079) + Old Polarization: (-0.356634,-0.595171,0.720128) + New Momentum Direction: (0.87066,-0.383927,0.307492) + New Polarization: (0.483099,0.785054,-0.387691) + *** FresnelRefraction *** +Track (trackID 1498, parentID 1) is processed with stopping code 2 +### pop requested out of 184 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.691744,-0.434668,-0.576675) + Old Polarization: (-0.623728,-0.762082,-0.173766) + New Momentum Direction: (0.204916,-0.589141,-0.781615) + New Polarization: (0.877146,-0.243806,0.41373) + *** FresnelRefraction *** +Track (trackID 1497, parentID 1) is processed with stopping code 2 +### pop requested out of 183 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.622477,-0.307594,-0.719659) + Old Polarization: (-0.701608,-0.626775,-0.33897) + New Momentum Direction: (0.839308,-0.41474,-0.3515) + New Polarization: (-0.542554,-0.68012,-0.493023) + *** FresnelRefraction *** +Track (trackID 1496, parentID 1) is processed with stopping code 2 +### pop requested out of 182 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.8102,0.481743,0.333917) + Old Polarization: (-0.493274,0.252634,0.83238) + New Momentum Direction: (0.60328,0.655465,0.454332) + New Polarization: (0.679697,-0.720576,0.137048) + *** FresnelRefraction *** +Track (trackID 1495, parentID 1) is processed with stopping code 2 +### pop requested out of 181 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.887545,-0.460721,0.000264321) + Old Polarization: (-0.40798,-0.785677,0.465042) + New Momentum Direction: (0.779244,-0.62672,0.000359557) + New Polarization: (0.557321,0.693218,0.456992) + *** FresnelRefraction *** +Track (trackID 1494, parentID 1) is processed with stopping code 2 +### pop requested out of 180 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1493, parentID 1) is processed with stopping code 2 +### pop requested out of 179 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.553133,0.795035,-0.248924) + Old Polarization: (-0.776907,0.600135,0.190404) + New Momentum Direction: (0.751449,0.566537,-0.338172) + New Polarization: (-0.568361,0.816139,0.10432) + *** FresnelRefraction *** +Track (trackID 1492, parentID 1) is processed with stopping code 2 +### pop requested out of 178 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.859963,0.33802,0.382369) + Old Polarization: (-0.436022,0.0972416,0.894667) + New Momentum Direction: (0.723497,0.457219,0.517207) + New Polarization: (0.593832,-0.794253,-0.128554) + *** FresnelRefraction *** +Track (trackID 1491, parentID 1) is processed with stopping code 2 +### pop requested out of 177 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.554202,0.794412,-0.248535) + Old Polarization: (-0.776069,0.601095,0.190793) + New Momentum Direction: (0.752133,0.566151,-0.337298) + New Polarization: (-0.567601,0.816587,0.104951) + *** FresnelRefraction *** +Track (trackID 1490, parentID 1) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.723167,0.666232,0.182111) + Old Polarization: (-0.589038,0.457245,0.666305) + New Momentum Direction: (0.344729,0.905484,0.24751) + New Polarization: (0.82265,-0.418414,0.384937) + *** FresnelRefraction *** +Track (trackID 1489, parentID 1) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.664711,-0.401889,-0.629797) + Old Polarization: (-0.65354,-0.721253,-0.229521) + New Momentum Direction: (-0.664711,-0.401889,-0.629797) + New Polarization: (-0.65354,0.721253,0.229521) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.664711,-0.401889,-0.629797) + Old Polarization: (-0.65354,0.721253,0.229521) + New Momentum Direction: (-0.664711,-0.401889,0.629797) + New Polarization: (0.65354,-0.721253,0.229521) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.664711,-0.401889,0.629797) + Old Polarization: (0.65354,-0.721253,0.229521) + New Momentum Direction: (-0.664711,0.401889,0.629797) + New Polarization: (-0.65354,-0.721253,-0.229521) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.664711,0.401889,0.629797) + Old Polarization: (-0.65354,-0.721253,-0.229521) + New Momentum Direction: (0.664711,0.401889,0.629797) + New Polarization: (-0.65354,0.721253,0.229521) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1488, parentID 1) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.456869,0.495049,-0.739052) + Old Polarization: (-0.889184,0.27747,-0.363817) + New Momentum Direction: (0.614561,0.665919,-0.422926) + New Polarization: (-0.767114,0.379434,-0.517269) + *** FresnelRefraction *** +Track (trackID 1487, parentID 1) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.933209,-0.125393,0.336745) + Old Polarization: (-0.357591,-0.416256,0.835978) + New Momentum Direction: (0.872427,-0.170552,0.45802) + New Polarization: (0.486421,0.211745,-0.847678) + *** FresnelRefraction *** +Track (trackID 1486, parentID 1) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.809339,-0.517043,-0.278634) + Old Polarization: (-0.492689,-0.8559,0.157142) + New Momentum Direction: (0.60668,-0.699799,-0.37712) + New Polarization: (0.67513,0.203115,0.709185) + *** FresnelRefraction *** +Track (trackID 1485, parentID 1) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1484, parentID 1) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1483, parentID 1) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1482, parentID 1) is processed with stopping code 2 +### pop requested out of 168 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.504667,0.0410086,-0.862339) + Old Polarization: (-0.833991,-0.234964,-0.49925) + New Momentum Direction: (0.680495,0.0552962,-0.730663) + New Polarization: (-0.705378,-0.220571,-0.673639) + *** FresnelRefraction *** +Track (trackID 1481, parentID 1) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.85911,-0.498167,-0.117298) + Old Polarization: (-0.437507,-0.833786,0.336731) + New Momentum Direction: (0.720785,-0.674708,-0.158866) + New Polarization: (0.596691,0.487321,0.637557) + *** FresnelRefraction *** +Track (trackID 1480, parentID 1) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.89597,-0.443943,0.0123503) + Old Polarization: (-0.393793,-0.781283,0.484277) + New Momentum Direction: (0.801266,-0.598077,0.0166382) + New Polarization: (0.532366,0.72537,0.436377) + *** FresnelRefraction *** +Track (trackID 1479, parentID 1) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.472301,0.224239,-0.852437) + Old Polarization: (-0.871123,-0.028765,-0.490221) + New Momentum Direction: (0.636007,0.301963,-0.71015) + New Polarization: (-0.749022,0.0201831,-0.662238) + *** FresnelRefraction *** +Track (trackID 1478, parentID 1) is processed with stopping code 2 +### pop requested out of 164 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1477, parentID 1) is processed with stopping code 2 +### pop requested out of 163 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.528469,-0.0685982,-0.846177) + Old Polarization: (-0.805364,-0.355783,-0.474137) + New Momentum Direction: (0.715806,-0.0929156,-0.69209) + New Polarization: (-0.671775,-0.362196,-0.646168) + *** FresnelRefraction *** +Track (trackID 1476, parentID 1) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479689,0.682709,-0.551186) + Old Polarization: (-0.861652,0.485141,-0.148978) + New Momentum Direction: (0.647298,0.166737,-0.743777) + New Polarization: (-0.596316,0.71856,-0.357881) + *** FresnelRefraction *** +Track (trackID 1475, parentID 1) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1474, parentID 1) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.530079,-0.053391,-0.846266) + Old Polarization: (-0.806008,-0.341715,-0.483303) + New Momentum Direction: (0.713794,-0.0718953,-0.696656) + New Polarization: (-0.673105,-0.3452,-0.654038) + *** FresnelRefraction *** +Track (trackID 1473, parentID 1) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.930794,-0.0418754,0.363139) + Old Polarization: (-0.356183,-0.327286,0.875224) + New Momentum Direction: (0.869584,-0.056566,0.490534) + New Polarization: (0.481383,-0.124132,-0.867676) + *** FresnelRefraction *** +Track (trackID 1472, parentID 1) is processed with stopping code 2 +### pop requested out of 158 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1471, parentID 1) is processed with stopping code 2 +### pop requested out of 157 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.739894,0.637081,0.216067) + Old Polarization: (-0.570648,0.424284,0.703096) + New Momentum Direction: (0.403705,0.866416,0.293846) + New Polarization: (0.794591,-0.491246,0.356795) + *** FresnelRefraction *** +Track (trackID 1470, parentID 1) is processed with stopping code 2 +### pop requested out of 156 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1469, parentID 1) is processed with stopping code 2 +### pop requested out of 155 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.445809,0.473019,-0.759939) + Old Polarization: (-0.895087,0.243702,-0.373402) + New Momentum Direction: (0.606073,0.643063,-0.46813) + New Polarization: (-0.7743,0.342298,-0.532252) + *** FresnelRefraction *** +Track (trackID 1468, parentID 1) is processed with stopping code 2 +### pop requested out of 154 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1467, parentID 1) is processed with stopping code 2 +### pop requested out of 153 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1466, parentID 1) is processed with stopping code 2 +### pop requested out of 152 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.857897,-0.50079,-0.114983) + Old Polarization: (-0.440153,-0.831718,0.338395) + New Momentum Direction: (0.715992,-0.680405,-0.156223) + New Polarization: (0.602313,0.488937,0.630999) + *** FresnelRefraction *** +Track (trackID 1465, parentID 1) is processed with stopping code 2 +### pop requested out of 151 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.602024,0.790364,-0.113545) + Old Polarization: (-0.723589,0.600143,0.34095) + New Momentum Direction: (0.81525,0.558324,-0.153761) + New Polarization: (-0.503099,0.814322,0.289433) + *** FresnelRefraction *** +Track (trackID 1464, parentID 1) is processed with stopping code 2 +### pop requested out of 150 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.48234,0.149794,-0.863082) + Old Polarization: (-0.858908,-0.112721,-0.499571) + New Momentum Direction: (0.650598,0.202047,-0.732051) + New Polarization: (-0.734461,-0.0777083,-0.674187) + *** FresnelRefraction *** +Track (trackID 1463, parentID 1) is processed with stopping code 2 +### pop requested out of 149 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1462, parentID 1) is processed with stopping code 2 +### pop requested out of 148 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.599137,-0.279126,-0.750416) + Old Polarization: (-0.725706,-0.585243,-0.36172) + New Momentum Direction: (0.815274,-0.37982,-0.437109) + New Polarization: (-0.573654,-0.632783,-0.520102) + *** FresnelRefraction *** +Track (trackID 1461, parentID 1) is processed with stopping code 2 +### pop requested out of 147 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.629572,0.776048,-0.0372552) + Old Polarization: (-0.69275,0.582414,0.425313) + New Momentum Direction: (0.853523,0.518602,-0.0505076) + New Polarization: (-0.460594,0.796251,0.392221) + *** FresnelRefraction *** +Track (trackID 1460, parentID 1) is processed with stopping code 2 +### pop requested out of 146 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.893071,0.193115,0.406362) +Old Polarization: (-0.401578,-0.0651289,0.913506) +New Polarization: (-0.404334,0.515277,0.755648) +Polarization Change: (-0.404334,0.515277,0.755648) +New Momentum Direction: (-0.1227,-0.849287,0.513475) +Momentum Change: (-0.1227,-0.849287,0.513475) +Scattering Photon! +Old Momentum Direction: (-0.1227,-0.849287,0.513475) +Old Polarization: (-0.404334,0.515277,0.755648) +New Polarization: (-0.389068,-0.836609,-0.385631) +Polarization Change: (-0.389068,-0.836609,-0.385631) +New Momentum Direction: (-0.756662,0.0514542,0.651779) +Momentum Change: (-0.756662,0.0514542,0.651779) + +** Photon absorbed! ** +Track (trackID 1459, parentID 1) is processed with stopping code 2 +### pop requested out of 145 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1458, parentID 1) is processed with stopping code 2 +### pop requested out of 144 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.773448,0.578862,0.25826) + Old Polarization: (-0.531718,0.370726,0.761471) + New Momentum Direction: (0.5207,0.779663,0.347847) + New Polarization: (0.728028,-0.618312,0.296082) + *** FresnelRefraction *** +Track (trackID 1457, parentID 1) is processed with stopping code 2 +### pop requested out of 143 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.914679,-0.387831,0.113797) + Old Polarization: (-0.375535,-0.711363,0.594084) + New Momentum Direction: (0.836954,-0.525135,0.154084) + New Polarization: (0.509403,0.850436,0.131401) + *** FresnelRefraction *** +Track (trackID 1456, parentID 1) is processed with stopping code 2 +### pop requested out of 142 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.797087,-0.516607,-0.31268) + Old Polarization: (-0.506584,-0.853884,0.119389) + New Momentum Direction: (0.575115,-0.699863,-0.423597) + New Polarization: (0.695928,0.146361,0.703039) + *** FresnelRefraction *** +Track (trackID 1455, parentID 1) is processed with stopping code 2 +### pop requested out of 141 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1454, parentID 1) is processed with stopping code 2 +### pop requested out of 140 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.847033,-0.507785,-0.15713) + Old Polarization: (-0.451259,-0.843178,0.292259) + New Momentum Direction: (0.693459,-0.688296,-0.212988) + New Polarization: (0.616726,0.414216,0.669383) + *** FresnelRefraction *** +Track (trackID 1453, parentID 1) is processed with stopping code 2 +### pop requested out of 139 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.508755,0.739708,-0.440455) + Old Polarization: (-0.831062,0.555526,-0.02697) + New Momentum Direction: (0.683646,0.426989,-0.591868) + New Polarization: (-0.622542,0.764429,-0.167598) + *** FresnelRefraction *** +Track (trackID 1452, parentID 1) is processed with stopping code 2 +### pop requested out of 138 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.754198,-0.498203,-0.427761) + Old Polarization: (-0.554396,-0.832213,-0.00821189) + New Momentum Direction: (0.455454,-0.675446,-0.579943) + New Polarization: (0.767057,-0.0329122,0.640735) + *** FresnelRefraction *** +Track (trackID 1451, parentID 1) is processed with stopping code 2 +### pop requested out of 137 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1450, parentID 1) is processed with stopping code 2 +### pop requested out of 136 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1449, parentID 1) is processed with stopping code 2 +### pop requested out of 135 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.933109,-0.270658,0.236751) + Old Polarization: (-0.354487,-0.581816,0.732004) + New Momentum Direction: (0.873698,-0.366155,0.320285) + New Polarization: (0.479695,0.757947,-0.44205) + *** FresnelRefraction *** +Track (trackID 1448, parentID 1) is processed with stopping code 2 +### pop requested out of 134 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1447, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1446, parentID 1) is processed with stopping code 2 +### pop requested out of 132 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.840767,0.409396,0.354268) + Old Polarization: (-0.455353,0.180772,0.871766) + New Momentum Direction: (0.685391,0.550634,0.476488) + New Polarization: (0.617725,-0.786142,0.0199232) + *** FresnelRefraction *** +Track (trackID 1445, parentID 1) is processed with stopping code 2 +### pop requested out of 131 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.639633,0.768668,-0.00435582) +Old Polarization: (-0.681191,0.569448,0.460116) +New Polarization: (0.698221,0.329804,-0.635387) +Polarization Change: (0.698221,0.329804,-0.635387) +New Momentum Direction: (0.33899,-0.934061,-0.112321) +Momentum Change: (0.33899,-0.934061,-0.112321) + +** Photon absorbed! ** +Track (trackID 1444, parentID 1) is processed with stopping code 2 +### pop requested out of 130 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.593158,-0.251794,-0.764698) + Old Polarization: (-0.733594,-0.560338,-0.384528) + New Momentum Direction: (0.802803,-0.340787,-0.489256) + New Polarization: (-0.586087,-0.601845,-0.54248) + *** FresnelRefraction *** +Track (trackID 1443, parentID 1) is processed with stopping code 2 +### pop requested out of 129 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.884124,-0.46693,-0.0173698) + Old Polarization: (-0.411007,-0.794841,0.446432) + New Momentum Direction: (0.772832,-0.634172,-0.0235912) + New Polarization: (0.560761,0.665021,0.493249) + *** FresnelRefraction *** +Track (trackID 1442, parentID 1) is processed with stopping code 2 +### pop requested out of 128 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.471543,0.208449,-0.856853) + Old Polarization: (-0.870242,-0.0470969,-0.490368) + New Momentum Direction: (0.636924,0.281557,-0.717672) + New Polarization: (-0.747749,-0.000928359,-0.663981) + *** FresnelRefraction *** +Track (trackID 1441, parentID 1) is processed with stopping code 2 +### pop requested out of 127 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.630756,-0.341622,-0.696737) + Old Polarization: (-0.691087,-0.655656,-0.304162) + New Momentum Direction: (0.857132,-0.464229,-0.223196) + New Polarization: (-0.511971,-0.720131,-0.468292) + *** FresnelRefraction *** +Track (trackID 1440, parentID 1) is processed with stopping code 2 +### pop requested out of 126 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.936526,-0.22314,0.270422) + Old Polarization: (-0.349414,-0.530697,0.772185) + New Momentum Direction: (0.88089,-0.301247,0.36508) + New Polarization: (0.471751,0.621558,-0.625393) + *** FresnelRefraction *** +Track (trackID 1439, parentID 1) is processed with stopping code 2 +### pop requested out of 125 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.449812,0.54546,-0.707207) + Old Polarization: (-0.891302,0.324699,-0.316467) + New Momentum Direction: (0.610861,0.740754,-0.279522) + New Polarization: (-0.758146,0.445529,-0.476149) + *** FresnelRefraction *** +Track (trackID 1438, parentID 1) is processed with stopping code 2 +### pop requested out of 124 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.524092,-0.0577211,-0.849703) + Old Polarization: (-0.809704,-0.343064,-0.476116) + New Momentum Direction: (0.710779,-0.0782819,-0.699046) + New Polarization: (-0.676693,-0.347415,-0.649145) + *** FresnelRefraction *** +Track (trackID 1437, parentID 1) is processed with stopping code 2 +### pop requested out of 123 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.49918,0.74585,-0.441053) + Old Polarization: (-0.836889,0.546919,-0.022307) + New Momentum Direction: (0.677636,0.427005,-0.598729) + New Polarization: (-0.626499,0.761554,-0.165936) + *** FresnelRefraction *** +Track (trackID 1436, parentID 1) is processed with stopping code 2 +### pop requested out of 122 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1435, parentID 1) is processed with stopping code 2 +### pop requested out of 121 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.459663,0.585339,-0.667899) + Old Polarization: (-0.883806,0.375309,-0.279339) + New Momentum Direction: (0.459663,0.585339,0.667899) + New Polarization: (0.883806,-0.375309,-0.279339) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.459663,0.585339,0.667899) + Old Polarization: (0.883806,-0.375309,-0.279339) + New Momentum Direction: (0.459663,-0.585339,0.667899) + New Polarization: (-0.883806,-0.375309,0.279339) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.459663,-0.585339,0.667899) + Old Polarization: (-0.883806,-0.375309,0.279339) + New Momentum Direction: (-0.459663,-0.585339,0.667899) + New Polarization: (-0.883806,0.375309,-0.279339) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1434, parentID 1) is processed with stopping code 2 +### pop requested out of 120 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1433, parentID 1) is processed with stopping code 2 +### pop requested out of 119 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.554553,-0.159447,-0.81673) + Old Polarization: (-0.77549,-0.454986,-0.437726) + New Momentum Direction: (0.753035,-0.216515,-0.621336) + New Polarization: (-0.636552,-0.478754,-0.604646) + *** FresnelRefraction *** +Track (trackID 1432, parentID 1) is processed with stopping code 2 +### pop requested out of 118 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.931076,-0.0670662,0.358608) + Old Polarization: (-0.358285,-0.353387,0.864147) + New Momentum Direction: (0.868994,-0.0909637,0.486389) + New Polarization: (0.486129,-0.0264977,-0.873485) + *** FresnelRefraction *** +Track (trackID 1431, parentID 1) is processed with stopping code 2 +### pop requested out of 117 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.589111,0.793474,-0.152796) + Old Polarization: (-0.738246,0.605392,0.29748) + New Momentum Direction: (0.796892,0.567664,-0.206688) + New Polarization: (-0.522332,0.819324,0.236385) + *** FresnelRefraction *** +Track (trackID 1430, parentID 1) is processed with stopping code 2 +### pop requested out of 116 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.862962,-0.495035,-0.101181) + Old Polarization: (-0.433713,-0.828477,0.354286) + New Momentum Direction: (0.728429,-0.671244,-0.137197) + New Polarization: (0.591988,0.515855,0.619229) + *** FresnelRefraction *** +Track (trackID 1429, parentID 1) is processed with stopping code 2 +### pop requested out of 115 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1428, parentID 1) is processed with stopping code 2 +### pop requested out of 114 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.567026,-0.177074,-0.804442) + Old Polarization: (-0.763588,-0.47924,-0.432739) + New Momentum Direction: (0.765344,-0.239005,-0.5976) + New Polarization: (-0.623409,-0.506143,-0.59597) + *** FresnelRefraction *** +Track (trackID 1427, parentID 1) is processed with stopping code 2 +### pop requested out of 113 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.58617,-0.229589,-0.776977) + Old Polarization: (-0.741917,-0.537425,-0.400916) + New Momentum Direction: (0.791776,-0.310119,-0.526229) + New Polarization: (-0.597111,-0.574429,-0.559901) + *** FresnelRefraction *** +Track (trackID 1426, parentID 1) is processed with stopping code 2 +### pop requested out of 112 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.646575,-0.366664,-0.668953) + Old Polarization: (-0.673819,-0.685625,-0.275476) + New Momentum Direction: (0.646575,-0.366664,0.668953) + New Polarization: (0.673819,0.685625,-0.275476) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646575,-0.366664,0.668953) + Old Polarization: (0.673819,0.685625,-0.275476) + New Momentum Direction: (-0.646575,-0.366664,0.668953) + New Polarization: (0.673819,-0.685625,0.275476) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646575,-0.366664,0.668953) + Old Polarization: (0.673819,-0.685625,0.275476) + New Momentum Direction: (-0.646575,0.366664,0.668953) + New Polarization: (-0.673819,-0.685625,-0.275476) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646575,0.366664,0.668953) + Old Polarization: (-0.673819,-0.685625,-0.275476) + New Momentum Direction: (-0.646575,0.366664,-0.668953) + New Polarization: (0.673819,0.685625,-0.275476) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646575,0.366664,-0.668953) + Old Polarization: (0.673819,0.685625,-0.275476) + New Momentum Direction: (0.646575,0.366664,-0.668953) + New Polarization: (0.673819,-0.685625,0.275476) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646575,0.366664,-0.668953) + Old Polarization: (0.673819,-0.685625,0.275476) + New Momentum Direction: (0.646575,0.366664,0.668953) + New Polarization: (-0.673819,0.685625,0.275476) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646575,0.366664,0.668953) + Old Polarization: (-0.673819,0.685625,0.275476) + New Momentum Direction: (-0.646575,0.366664,0.668953) + New Polarization: (-0.673819,-0.685625,-0.275476) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1425, parentID 1) is processed with stopping code 2 +### pop requested out of 111 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1424, parentID 1) is processed with stopping code 2 +### pop requested out of 110 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.456178,0.600646,-0.656602) + Old Polarization: (-0.8846,0.3864,-0.26111) + New Momentum Direction: (0.456178,0.600646,0.656602) + New Polarization: (0.8846,-0.3864,-0.26111) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.456178,0.600646,0.656602) + Old Polarization: (0.8846,-0.3864,-0.26111) + New Momentum Direction: (0.456178,-0.600646,0.656602) + New Polarization: (-0.8846,-0.3864,0.26111) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.456178,-0.600646,0.656602) + Old Polarization: (-0.8846,-0.3864,0.26111) + New Momentum Direction: (-0.456178,-0.600646,0.656602) + New Polarization: (-0.8846,0.3864,-0.26111) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1423, parentID 1) is processed with stopping code 2 +### pop requested out of 109 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.558846,-0.177809,-0.809985) + Old Polarization: (-0.770073,-0.47369,-0.427324) + New Momentum Direction: (0.760442,-0.241952,-0.60265) + New Polarization: (-0.629804,-0.501052,-0.593544) + *** FresnelRefraction *** +Track (trackID 1422, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.728216,0.658301,0.190635) + Old Polarization: (-0.583394,0.449449,0.676496) + New Momentum Direction: (0.365622,0.894031,0.2589) + New Polarization: (0.812997,-0.442185,0.378826) + *** FresnelRefraction *** +Track (trackID 1421, parentID 1) is processed with stopping code 2 +### pop requested out of 107 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.450711,0.385769,-0.80501) + Old Polarization: (-0.891549,0.149356,-0.42759) + New Momentum Direction: (0.610806,0.522796,-0.594643) + New Polarization: (-0.772642,0.229431,-0.591933) + *** FresnelRefraction *** +Track (trackID 1420, parentID 1) is processed with stopping code 2 +### pop requested out of 106 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.936852,-0.163432,0.309191) + Old Polarization: (-0.349582,-0.463116,0.814442) + New Momentum Direction: (0.8813,-0.220832,0.417783) + New Polarization: (0.472363,0.386412,-0.792186) + *** FresnelRefraction *** +Track (trackID 1419, parentID 1) is processed with stopping code 2 +### pop requested out of 105 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.618452,0.783298,-0.0629403) + Old Polarization: (-0.704857,0.588359,0.396246) + New Momentum Direction: (0.839555,0.536514,-0.085442) + New Polarization: (-0.476964,0.803205,0.356885) + *** FresnelRefraction *** +Track (trackID 1418, parentID 1) is processed with stopping code 2 +### pop requested out of 104 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1417, parentID 1) is processed with stopping code 2 +### pop requested out of 103 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.554594,0.794401,-0.247696) + Old Polarization: (-0.77568,0.601302,0.191717) + New Momentum Direction: (0.752563,0.566284,-0.336114) + New Polarization: (-0.567176,0.816732,0.106114) + *** FresnelRefraction *** +Track (trackID 1416, parentID 1) is processed with stopping code 2 +### pop requested out of 102 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1415, parentID 1) is processed with stopping code 2 +### pop requested out of 101 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1414, parentID 1) is processed with stopping code 2 +### pop requested out of 100 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.911262,-0.40344,0.0826935) + Old Polarization: (-0.37669,-0.735377,0.563316) + New Momentum Direction: (0.831897,-0.543627,0.111428) + New Polarization: (0.508689,0.827292,0.238378) + *** FresnelRefraction *** +Track (trackID 1413, parentID 1) is processed with stopping code 2 +### pop requested out of 99 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1412, parentID 1) is processed with stopping code 2 +### pop requested out of 98 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.499557,0.0392922,-0.865389) + Old Polarization: (-0.837031,-0.235504,-0.49388) + New Momentum Direction: (0.677347,0.0532761,-0.733732) + New Polarization: (-0.708488,-0.221339,-0.670115) + *** FresnelRefraction *** +Track (trackID 1411, parentID 1) is processed with stopping code 2 +### pop requested out of 97 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.453501,0.396267,-0.798316) + Old Polarization: (-0.890441,0.163156,-0.424848) + New Momentum Direction: (0.612552,0.535245,-0.581629) + New Polarization: (-0.771518,0.244868,-0.587197) + *** FresnelRefraction *** +Track (trackID 1410, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.926747,0.016386,0.375329) + Old Polarization: (-0.358111,-0.263467,0.895735) + New Momentum Direction: (0.862977,0.0220368,0.504762) + New Polarization: (0.482063,-0.335046,-0.809543) + *** FresnelRefraction *** +Track (trackID 1409, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.835279,0.423951,0.350107) + Old Polarization: (-0.462074,0.196158,0.864875) + New Momentum Direction: (0.671953,0.571044,0.47158) + New Polarization: (0.628147,-0.77676,0.0455464) + *** FresnelRefraction *** +Track (trackID 1408, parentID 1) is processed with stopping code 2 +### pop requested out of 94 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.452324,0.589201,-0.669511) + Old Polarization: (-0.887531,0.371197,-0.272948) + New Momentum Direction: (0.452324,0.589201,0.669511) + New Polarization: (0.887531,-0.371197,-0.272948) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.452324,0.589201,0.669511) + Old Polarization: (0.887531,-0.371197,-0.272948) + New Momentum Direction: (0.452324,-0.589201,0.669511) + New Polarization: (-0.887531,-0.371197,0.272948) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.452324,-0.589201,0.669511) + Old Polarization: (-0.887531,-0.371197,0.272948) + New Momentum Direction: (-0.452324,-0.589201,0.669511) + New Polarization: (-0.887531,0.371197,-0.272948) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1407, parentID 1) is processed with stopping code 2 +### pop requested out of 93 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.458234,0.627524,-0.629472) + Old Polarization: (-0.881141,0.413679,-0.229042) + New Momentum Direction: (0.458234,0.627524,0.629472) + New Polarization: (0.881141,-0.413679,-0.229042) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.458234,0.627524,0.629472) + Old Polarization: (0.881141,-0.413679,-0.229042) + New Momentum Direction: (0.458234,-0.627524,0.629472) + New Polarization: (-0.881141,-0.413679,0.229042) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1406, parentID 1) is processed with stopping code 2 +### pop requested out of 92 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.683572,-0.426549,-0.592272) + Old Polarization: (-0.632772,-0.750761,-0.189623) + New Momentum Direction: (0.134592,-0.579089,-0.804077) + New Polarization: (0.897247,-0.273142,0.346902) + *** FresnelRefraction *** +Track (trackID 1405, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.854166,0.359235,0.375967) + Old Polarization: (-0.442187,0.121332,0.888678) + New Momentum Direction: (0.711347,0.485547,0.508163) + New Polarization: (0.60211,-0.793958,-0.0842338) + *** FresnelRefraction *** +Track (trackID 1404, parentID 1) is processed with stopping code 2 +### pop requested out of 90 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.869856,0.2977,0.393352) + Old Polarization: (-0.42602,0.0513195,0.903257) + New Momentum Direction: (0.74341,0.403628,0.533316) + New Polarization: (0.581033,-0.784678,-0.21606) + *** FresnelRefraction *** +Track (trackID 1403, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.633384,0.773566,-0.0205032) + Old Polarization: (-0.688108,0.575138,0.442407) + New Momentum Direction: (0.861177,0.507541,-0.0278771) + New Polarization: (-0.452402,0.790315,0.413201) + *** FresnelRefraction *** +Track (trackID 1402, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.84867,-0.504615,-0.158504) + Old Polarization: (-0.448113,-0.845163,0.291366) + New Momentum Direction: (0.699635,-0.681663,-0.214117) + New Polarization: (0.610164,0.414086,0.67545) + *** FresnelRefraction *** +Track (trackID 1401, parentID 1) is processed with stopping code 2 +### pop requested out of 87 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.900655,0.176881,0.396905) + Old Polarization: (-0.388345,-0.0821563,0.917845) + New Momentum Direction: (0.810883,0.238214,0.534531) + New Polarization: (0.524617,-0.700648,-0.4836) + *** FresnelRefraction *** +Track (trackID 1400, parentID 1) is processed with stopping code 2 +### pop requested out of 86 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1399, parentID 1) is processed with stopping code 2 +### pop requested out of 85 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.710991,0.690012,0.13556) + Old Polarization: (-0.602042,0.497678,0.62439) + New Momentum Direction: (0.324231,0.928234,0.182362) + New Polarization: (0.83215,-0.371547,0.411678) + *** FresnelRefraction *** +Track (trackID 1398, parentID 1) is processed with stopping code 2 +### pop requested out of 84 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.926688,-0.331807,0.176503) + Old Polarization: (-0.360544,-0.652272,0.666745) + New Momentum Direction: (0.861666,-0.448032,0.238328) + New Polarization: (0.48725,0.861678,-0.141768) + *** FresnelRefraction *** +Track (trackID 1397, parentID 1) is processed with stopping code 2 +### pop requested out of 83 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.927688,-0.308524,0.210258) + Old Polarization: (-0.36356,-0.618321,0.69678) + New Momentum Direction: (0.861525,-0.419551,0.285922) + New Polarization: (0.494678,0.820439,-0.28666) + *** FresnelRefraction *** +Track (trackID 1396, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.486823,0.715088,-0.50165) + Old Polarization: (-0.851709,0.516074,-0.0908864) + New Momentum Direction: (0.659378,0.321798,-0.679461) + New Polarization: (-0.627075,0.733956,-0.260933) + *** FresnelRefraction *** +Track (trackID 1395, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1394, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.451814,0.547483,-0.704363) + Old Polarization: (-0.890167,0.328777,-0.315448) + New Momentum Direction: (0.612461,0.742146,-0.272231) + New Polarization: (-0.756383,0.4501,-0.474652) + *** FresnelRefraction *** +Track (trackID 1393, parentID 1) is processed with stopping code 2 +### pop requested out of 79 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.805837,0.495146,0.324743) + Old Polarization: (-0.497581,0.268934,0.824674) + New Momentum Direction: (0.594287,0.672516,0.441073) + New Polarization: (0.684708,-0.710771,0.16118) + *** FresnelRefraction *** +Track (trackID 1392, parentID 1) is processed with stopping code 2 +### pop requested out of 78 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1391, parentID 1) is processed with stopping code 2 +### pop requested out of 77 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.7137,-0.466137,-0.522827) + Old Polarization: (-0.599505,-0.792527,-0.111778) + New Momentum Direction: (0.305297,-0.63371,-0.710778) + New Polarization: (0.83975,-0.172788,0.514747) + *** FresnelRefraction *** +Track (trackID 1390, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1389, parentID 1) is processed with stopping code 2 +### pop requested out of 75 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.459049,0.265188,-0.847909) + Old Polarization: (-0.881228,0.0147992,-0.472459) + New Momentum Direction: (0.623249,0.360045,-0.69421) + New Polarization: (-0.760468,0.0720516,-0.645366) + *** FresnelRefraction *** +Track (trackID 1388, parentID 1) is processed with stopping code 2 +### pop requested out of 74 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.918593,-0.367875,0.144412) + Old Polarization: (-0.37283,-0.685451,0.625424) + New Momentum Direction: (0.843775,-0.499582,0.196115) + New Polarization: (0.507022,0.86182,0.0139599) + *** FresnelRefraction *** +Track (trackID 1387, parentID 1) is processed with stopping code 2 +### pop requested out of 73 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.4458,0.4856,-0.751967) + Old Polarization: (-0.894978,0.257415,-0.364352) + New Momentum Direction: (0.606181,0.6603,-0.443338) + New Polarization: (-0.773299,0.359044,-0.522586) + *** FresnelRefraction *** +Track (trackID 1386, parentID 1) is processed with stopping code 2 +### pop requested out of 72 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.581227,-0.235128,-0.779032) + Old Polarization: (-0.745596,-0.537383,-0.394087) + New Momentum Direction: (0.790395,-0.319745,-0.522531) + New Polarization: (-0.600049,-0.575856,-0.555276) + *** FresnelRefraction *** +Track (trackID 1385, parentID 1) is processed with stopping code 2 +### pop requested out of 71 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.491684,0.0776551,-0.867304) + Old Polarization: (-0.846058,-0.193014,-0.496921) + New Momentum Direction: (0.666285,0.105231,-0.738235) + New Polarization: (-0.719067,-0.171539,-0.673437) + *** FresnelRefraction *** +Track (trackID 1384, parentID 1) is processed with stopping code 2 +### pop requested out of 70 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.749558,-0.492352,-0.442439) + Old Polarization: (-0.559288,-0.828582,-0.0254596) + New Momentum Direction: (0.444463,-0.666297,-0.598749) + New Polarization: (0.772777,-0.0528625,0.632473) + *** FresnelRefraction *** +Track (trackID 1383, parentID 1) is processed with stopping code 2 +### pop requested out of 69 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.836495,-0.511987,-0.195308) + Old Polarization: (-0.462324,-0.850732,0.250022) + New Momentum Direction: (0.671009,-0.692756,-0.264266) + New Polarization: (0.631387,0.347021,0.693489) + *** FresnelRefraction *** +Track (trackID 1382, parentID 1) is processed with stopping code 2 +### pop requested out of 68 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1381, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.721143,0.671679,0.169706) + Old Polarization: (-0.590978,0.468594,0.656631) + New Momentum Direction: (0.347254,0.9092,0.229718) + New Polarization: (0.821475,-0.413076,0.393124) + *** FresnelRefraction *** +Track (trackID 1380, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.907734,0.120264,0.401939) + Old Polarization: (-0.384371,-0.145603,0.911624) + New Momentum Direction: (0.822164,0.163178,0.545362) + New Polarization: (0.522766,-0.595615,-0.609884) + *** FresnelRefraction *** +Track (trackID 1379, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.745258,0.628065,0.223883) + Old Polarization: (-0.564575,0.415754,0.713024) + New Momentum Direction: (0.423844,0.853152,0.304119) + New Polarization: (0.784188,-0.513675,0.34812) + *** FresnelRefraction *** +Track (trackID 1378, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.454488,0.292743,-0.841274) + Old Polarization: (-0.88536,0.0446937,-0.462753) + New Momentum Direction: (0.618033,0.398086,-0.677911) + New Polarization: (-0.765288,0.107306,-0.63468) + *** FresnelRefraction *** +Track (trackID 1377, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.595415,-0.249251,-0.763777) +Old Polarization: (-0.731843,-0.560507,-0.387605) +New Polarization: (0.926306,0.375455,-0.0314844) +Polarization Change: (0.926306,0.375455,-0.0314844) +New Momentum Direction: (0.165427,-0.480362,-0.861328) +Momentum Change: (0.165427,-0.480362,-0.861328) + Photon at Boundary! + Old Momentum Direction: (0.165427,-0.480362,-0.861328) + Old Polarization: (0.926306,0.375455,-0.0314844) + New Momentum Direction: (0.223209,-0.648147,-0.728068) + New Polarization: (0.928532,0.368688,-0.0435498) + *** FresnelRefraction *** +Track (trackID 1376, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.455019,0.305442,-0.836458) + Old Polarization: (-0.885837,0.0594504,-0.460172) + New Momentum Direction: (0.617619,0.414591,-0.668327) + New Polarization: (-0.765974,0.124322,-0.630736) + *** FresnelRefraction *** +Track (trackID 1375, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.84396,-0.506416,-0.176848) + Old Polarization: (-0.452876,-0.849381,0.271028) + New Momentum Direction: (0.690185,-0.683174,-0.238575) + New Polarization: (0.616085,0.381815,0.688953) + *** FresnelRefraction *** +Track (trackID 1374, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.859906,0.332825,0.387026) + Old Polarization: (-0.437472,0.0898385,0.894733) + New Momentum Direction: (0.721166,0.451695,0.525253) + New Polarization: (0.597842,-0.788856,-0.142448) + *** FresnelRefraction *** +Track (trackID 1373, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.931583,-0.0512967,0.359892) + Old Polarization: (-0.355309,-0.337824,0.871568) + New Momentum Direction: (0.87112,-0.0692936,0.486156) + New Polarization: (0.480178,-0.0871547,-0.872831) + *** FresnelRefraction *** +Track (trackID 1372, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.751933,0.618153,0.229095) + Old Polarization: (-0.556651,0.409171,0.722993) + New Momentum Direction: (0.451628,0.8366,0.310053) + New Polarization: (0.768884,-0.541235,0.340414) + *** FresnelRefraction *** +Track (trackID 1371, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1370, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1369, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.469101,0.199617,-0.860289) + Old Polarization: (-0.870829,-0.0575635,-0.488205) + New Momentum Direction: (0.636058,0.270662,-0.722615) + New Polarization: (-0.74818,-0.012842,-0.663371) + *** FresnelRefraction *** +Track (trackID 1368, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.497147,0.744342,-0.445869) + Old Polarization: (-0.838708,0.543904,-0.0271619) + New Momentum Direction: (0.675487,0.420365,-0.605814) + New Polarization: (-0.627494,0.759188,-0.172872) + *** FresnelRefraction *** +Track (trackID 1367, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.649148,0.760392,0.0202623) + Old Polarization: (-0.67065,0.559559,0.486952) + New Momentum Direction: (0.883219,0.46815,0.0275685) + New Polarization: (-0.425358,0.774959,0.46745) + *** FresnelRefraction *** +Track (trackID 1366, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.860991,-0.498023,-0.103284) + Old Polarization: (-0.43688,-0.828122,0.351212) + New Momentum Direction: (0.722586,-0.676878,-0.140376) + New Polarization: (0.597853,0.50996,0.618477) + *** FresnelRefraction *** +Track (trackID 1365, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.460286,0.254566,-0.85049) + Old Polarization: (-0.879839,0.00303442,-0.475262) + New Momentum Direction: (0.624951,0.345635,-0.69998) + New Polarization: (-0.75881,0.0582734,-0.6487) + *** FresnelRefraction *** +Track (trackID 1364, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.90655,-0.416492,0.0685657) + Old Polarization: (-0.383724,-0.745514,0.544944) + New Momentum Direction: (0.82122,-0.563033,0.0926902) + New Polarization: (0.520052,0.805364,0.28449) + *** FresnelRefraction *** +Track (trackID 1363, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1362, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1361, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.928321,-0.00513682,0.371744) + Old Polarization: (-0.357469,-0.287087,0.888705) + New Momentum Direction: (0.865477,-0.00692152,0.5009) + New Polarization: (0.482039,-0.260624,-0.836489) + *** FresnelRefraction *** +Track (trackID 1360, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.613177,-0.296788,-0.732073) + Old Polarization: (-0.711299,-0.610551,-0.348254) + New Momentum Direction: (0.829841,-0.401657,-0.387344) + New Polarization: (-0.555389,-0.661614,-0.503795) + *** FresnelRefraction *** +Track (trackID 1359, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.726785,0.663123,0.179031) + Old Polarization: (-0.58461,0.460373,0.668048) + New Momentum Direction: (0.370514,0.896721,0.242098) + New Polarization: (0.810551,-0.439439,0.387171) + *** FresnelRefraction *** +Track (trackID 1358, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.512591,-0.00233104,-0.85863) + Old Polarization: (-0.823928,-0.282768,-0.491106) + New Momentum Direction: (0.692919,-0.00315109,-0.721008) + New Polarization: (-0.693491,-0.276573,-0.665265) + *** FresnelRefraction *** +Track (trackID 1357, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1356, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1355, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.935324,-0.239871,0.260059) + Old Polarization: (-0.351582,-0.548155,0.758891) + New Momentum Direction: (0.878208,-0.324273,0.351565) + New Polarization: (0.475346,0.673047,-0.566616) + *** FresnelRefraction *** +Track (trackID 1354, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.772226,-0.509216,-0.379955) +Old Polarization: (-0.534434,-0.844014,0.0449557) +New Polarization: (0.167039,-0.659202,-0.733178) +Polarization Change: (0.167039,-0.659202,-0.733178) +New Momentum Direction: (-0.673761,-0.619225,0.403245) +Momentum Change: (-0.673761,-0.619225,0.403245) + Photon at Boundary! + Old Momentum Direction: (-0.673761,-0.619225,0.403245) + Old Polarization: (0.167039,-0.659202,-0.733178) + New Momentum Direction: (-0.673761,0.619225,0.403245) + New Polarization: (-0.167039,-0.659202,0.733178) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.673761,0.619225,0.403245) + Old Polarization: (-0.167039,-0.659202,0.733178) + New Momentum Direction: (0.673761,0.619225,0.403245) + New Polarization: (-0.167039,0.659202,-0.733178) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.673761,0.619225,0.403245) + Old Polarization: (-0.167039,0.659202,-0.733178) + New Momentum Direction: (0.673761,0.619225,-0.403245) + New Polarization: (0.167039,-0.659202,-0.733178) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.673761,0.619225,-0.403245) + Old Polarization: (0.167039,-0.659202,-0.733178) + New Momentum Direction: (0.673761,-0.619225,-0.403245) + New Polarization: (-0.167039,-0.659202,0.733178) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.673761,-0.619225,-0.403245) +Old Polarization: (-0.167039,-0.659202,0.733178) +New Polarization: (-0.384858,-0.695095,0.607229) +Polarization Change: (-0.384858,-0.695095,0.607229) +New Momentum Direction: (-0.814717,-0.0533223,-0.577401) +Momentum Change: (-0.814717,-0.0533223,-0.577401) + +** Photon absorbed! ** +Track (trackID 1353, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.460344,0.250457,-0.851678) + Old Polarization: (-0.879513,-0.00163909,-0.475871) + New Momentum Direction: (0.625318,0.340214,-0.702305) + New Polarization: (-0.758391,0.0528525,-0.649653) + *** FresnelRefraction *** +Track (trackID 1352, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1351, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1350, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.575187,-0.21383,-0.78958) + Old Polarization: (-0.752887,-0.515822,-0.408765) + New Momentum Direction: (0.780446,-0.290137,-0.553828) + New Polarization: (-0.609582,-0.550006,-0.57088) + *** FresnelRefraction *** +Track (trackID 1349, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.516112,-0.026253,-0.856119) + Old Polarization: (-0.818821,-0.308404,-0.484169) + New Momentum Direction: (0.699532,-0.035583,-0.713715) + New Polarization: (-0.687337,-0.306753,-0.658385) + *** FresnelRefraction *** +Track (trackID 1348, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.933175,-0.122854,0.337773) + Old Polarization: (-0.35753,-0.413563,0.83734) + New Momentum Direction: (0.872406,-0.167071,0.459342) + New Polarization: (0.486262,0.201362,-0.850295) + *** FresnelRefraction *** +Track (trackID 1347, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.693133,0.711096,0.117934) +Old Polarization: (-0.622192,0.507634,0.595973) +New Polarization: (-0.820767,0.433215,0.372378) +Polarization Change: (-0.820767,0.433215,0.372378) +New Momentum Direction: (-0.524176,-0.311968,-0.792411) +Momentum Change: (-0.524176,-0.311968,-0.792411) + Photon at Boundary! + Old Momentum Direction: (-0.524176,-0.311968,-0.792411) + Old Polarization: (-0.820767,0.433215,0.372378) + New Momentum Direction: (-0.711979,-0.423741,-0.559937) + New Polarization: (-0.0936809,0.847594,-0.522311) + *** FresnelRefraction *** +Track (trackID 1346, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.860286,0.332087,0.386815) + Old Polarization: (-0.436893,0.0892018,0.89508) + New Momentum Direction: (0.722254,0.450521,0.524767) + New Polarization: (0.596795,-0.789431,-0.143648) + *** FresnelRefraction *** +Track (trackID 1345, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.462126,0.239951,-0.853735) + Old Polarization: (-0.877801,-0.0131385,-0.478845) + New Momentum Direction: (0.627452,0.325793,-0.707222) + New Polarization: (-0.75638,0.0393261,-0.652949) + *** FresnelRefraction *** +Track (trackID 1344, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.935344,-0.229109,0.269519) + Old Polarization: (-0.352312,-0.534986,0.767898) + New Momentum Direction: (0.877923,-0.31011,0.364806) + New Polarization: (0.476906,0.634092,-0.608677) + *** FresnelRefraction *** +Track (trackID 1343, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.64379,-0.348831,-0.681066) + Old Polarization: (-0.67767,-0.673278,-0.295737) + New Momentum Direction: (0.64379,-0.348831,0.681066) + New Polarization: (-0.267352,-0.936494,-0.226938) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.64379,-0.348831,0.681066) + Old Polarization: (-0.267352,-0.936494,-0.226938) + New Momentum Direction: (-0.64379,-0.348831,0.681066) + New Polarization: (-0.267352,0.936494,0.226938) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1342, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.466608,0.616172,-0.634515) + Old Polarization: (-0.877429,0.412784,-0.244392) + New Momentum Direction: (0.466608,0.616172,0.634515) + New Polarization: (0.877429,-0.412784,-0.244392) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.466608,0.616172,0.634515) + Old Polarization: (0.877429,-0.412784,-0.244392) + New Momentum Direction: (0.466608,-0.616172,0.634515) + New Polarization: (-0.877429,-0.412784,0.244392) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.466608,-0.616172,0.634515) + Old Polarization: (-0.877429,-0.412784,0.244392) + New Momentum Direction: (-0.466608,-0.616172,0.634515) + New Polarization: (-0.877429,0.412784,-0.244392) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1341, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.835359,-0.51367,-0.195753) + Old Polarization: (-0.464181,-0.849911,0.249374) + New Momentum Direction: (0.667034,-0.696187,-0.265309) + New Polarization: (0.6351,0.345165,0.69102) + *** FresnelRefraction *** +Track (trackID 1340, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1339, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.460491,0.638891,-0.616252) + Old Polarization: (-0.878726,0.426369,-0.214592) + New Momentum Direction: (0.460491,-0.638891,-0.616252) + New Polarization: (0.878726,0.426369,0.214592) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.460491,-0.638891,-0.616252) + Old Polarization: (0.878726,0.426369,0.214592) + New Momentum Direction: (0.460491,-0.638891,0.616252) + New Polarization: (-0.878726,-0.426369,0.214592) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.460491,-0.638891,0.616252) + Old Polarization: (-0.878726,-0.426369,0.214592) + New Momentum Direction: (-0.460491,-0.638891,0.616252) + New Polarization: (-0.878726,0.426369,-0.214592) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.460491,-0.638891,0.616252) + Old Polarization: (-0.878726,0.426369,-0.214592) + New Momentum Direction: (-0.460491,0.638891,0.616252) + New Polarization: (0.878726,0.426369,0.214592) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.460491,0.638891,0.616252) + Old Polarization: (0.878726,0.426369,0.214592) + New Momentum Direction: (-0.460491,0.638891,-0.616252) + New Polarization: (-0.878726,-0.426369,0.214592) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.460491,0.638891,-0.616252) + Old Polarization: (-0.878726,-0.426369,0.214592) + New Momentum Direction: (0.460491,0.638891,-0.616252) + New Polarization: (-0.878726,0.426369,-0.214592) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.460491,0.638891,-0.616252) +Old Polarization: (-0.878726,0.426369,-0.214592) +New Polarization: (-0.894626,-0.171988,0.41239) +Polarization Change: (-0.894626,-0.171988,0.41239) +New Momentum Direction: (0.409901,-0.68325,0.604276) +Momentum Change: (0.409901,-0.68325,0.604276) + Photon at Boundary! + Old Momentum Direction: (0.409901,-0.68325,0.604276) + Old Polarization: (-0.894626,-0.171988,0.41239) + New Momentum Direction: (0.409901,-0.68325,-0.604276) + New Polarization: (0.894626,0.171988,0.41239) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.409901,-0.68325,-0.604276) + Old Polarization: (0.894626,0.171988,0.41239) + New Momentum Direction: (0.557416,-0.118431,-0.821743) + New Polarization: (0.773366,-0.285943,0.565811) + *** FresnelRefraction *** +Track (trackID 1338, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1337, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1336, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.901163,0.155702,0.404552) + Old Polarization: (-0.391873,-0.106349,0.913852) + New Momentum Direction: (0.808563,0.211351,0.549141) + New Polarization: (0.533509,-0.656965,-0.532696) + *** FresnelRefraction *** +Track (trackID 1335, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.622762,-0.322404,-0.712898) + Old Polarization: (-0.700186,-0.636254,-0.323914) + New Momentum Direction: (0.622762,-0.322404,0.712898) + New Polarization: (-0.283634,-0.942204,-0.178335) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.622762,-0.322404,0.712898) + Old Polarization: (-0.283634,-0.942204,-0.178335) + New Momentum Direction: (-0.622762,-0.322404,0.712898) + New Polarization: (-0.283634,0.942204,0.178335) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.622762,-0.322404,0.712898) + Old Polarization: (-0.283634,0.942204,0.178335) + New Momentum Direction: (-0.622762,0.322404,0.712898) + New Polarization: (0.283634,0.942204,-0.178335) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.622762,0.322404,0.712898) + Old Polarization: (0.283634,0.942204,-0.178335) + New Momentum Direction: (-0.84491,0.437411,0.307894) + New Polarization: (0.51851,0.811159,0.270498) + *** FresnelRefraction *** +Track (trackID 1334, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.638805,-0.349705,-0.685299) + Old Polarization: (-0.682621,-0.668507,-0.295173) + New Momentum Direction: (0.865252,-0.47367,-0.164245) + New Polarization: (-0.491477,-0.736763,-0.464359) + *** FresnelRefraction *** +Track (trackID 1333, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.651194,-0.378898,-0.657558) + Old Polarization: (-0.668493,-0.696544,-0.26066) + New Momentum Direction: (0.651194,-0.378898,0.657558) + New Polarization: (0.668493,0.696544,-0.26066) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.651194,-0.378898,0.657558) + Old Polarization: (0.668493,0.696544,-0.26066) + New Momentum Direction: (-0.651194,-0.378898,0.657558) + New Polarization: (0.668493,-0.696544,0.26066) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.651194,-0.378898,0.657558) + Old Polarization: (0.668493,-0.696544,0.26066) + New Momentum Direction: (-0.651194,0.378898,0.657558) + New Polarization: (-0.668493,-0.696544,-0.26066) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.651194,0.378898,0.657558) + Old Polarization: (-0.668493,-0.696544,-0.26066) + New Momentum Direction: (-0.651194,0.378898,-0.657558) + New Polarization: (0.668493,0.696544,-0.26066) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.651194,0.378898,-0.657558) + Old Polarization: (0.668493,0.696544,-0.26066) + New Momentum Direction: (0.651194,0.378898,-0.657558) + New Polarization: (0.668493,-0.696544,0.26066) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1332, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.57731,-0.226767,-0.784404) + Old Polarization: (-0.749764,-0.527673,-0.399268) + New Momentum Direction: (0.785502,-0.308545,-0.536458) + New Polarization: (-0.605129,-0.564526,-0.561364) + *** FresnelRefraction *** +Track (trackID 1331, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.730449,0.654983,0.193499) +Old Polarization: (-0.580851,0.446749,0.680461) +New Polarization: (0.643243,0.172167,-0.746054) +Polarization Change: (0.643243,0.172167,-0.746054) +New Momentum Direction: (0.106785,-0.98504,-0.135249) +Momentum Change: (0.106785,-0.98504,-0.135249) + Photon at Boundary! + Old Momentum Direction: (0.106785,-0.98504,-0.135249) + Old Polarization: (0.643243,0.172167,-0.746054) + New Momentum Direction: (0.144913,-0.972272,-0.18354) + New Polarization: (-0.56863,-0.233641,0.788716) + *** FresnelRefraction *** +Track (trackID 1330, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.710782,-0.462736,-0.529778) + Old Polarization: (-0.602719,-0.788949,-0.119535) + New Momentum Direction: (0.292815,-0.62901,-0.720143) + New Polarization: (0.844873,-0.18245,0.502893) + *** FresnelRefraction *** +Track (trackID 1329, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.547657,-0.134662,-0.825796) +Old Polarization: (-0.783615,-0.428512,-0.449806) +New Polarization: (0.910781,0.405215,-0.0792422) +Polarization Change: (0.910781,0.405215,-0.0792422) +New Momentum Direction: (0.0150858,0.159134,0.987142) +Momentum Change: (0.0150858,0.159134,0.987142) + Photon at Boundary! + Old Momentum Direction: (0.0150858,0.159134,0.987142) + Old Polarization: (0.910781,0.405215,-0.0792422) + New Momentum Direction: (0.0204566,0.215788,0.976226) + New Polarization: (0.818508,-0.564331,0.10759) + *** FresnelRefraction *** +Track (trackID 1328, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.668102,-0.404234,-0.624687) + Old Polarization: (-0.649884,-0.725857,-0.225349) + New Momentum Direction: (-0.668102,-0.404234,-0.624687) + New Polarization: (-0.649884,0.725857,0.225349) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668102,-0.404234,-0.624687) + Old Polarization: (-0.649884,0.725857,0.225349) + New Momentum Direction: (-0.668102,-0.404234,0.624687) + New Polarization: (0.649884,-0.725857,0.225349) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.668102,-0.404234,0.624687) + Old Polarization: (0.649884,-0.725857,0.225349) + New Momentum Direction: (-0.668102,0.404234,0.624687) + New Polarization: (-0.649884,-0.725857,-0.225349) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1327, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.521202,0.776108,-0.354973) + Old Polarization: (-0.812106,0.578891,0.0732753) + New Momentum Direction: (0.708218,0.515531,-0.482343) + New Polarization: (-0.606639,0.793854,-0.0422452) + *** FresnelRefraction *** +Track (trackID 1326, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.888092,0.22973,0.398141) + Old Polarization: (-0.403951,-0.0232781,0.914484) + New Momentum Direction: (0.783897,0.310307,0.537787) + New Polarization: (0.547918,-0.75314,-0.364097) + *** FresnelRefraction *** +Track (trackID 1325, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.786751,-0.51645,-0.338085) + Old Polarization: (-0.518604,-0.85008,0.0917269) + New Momentum Direction: (0.545503,-0.701219,-0.45904) + New Polarization: (0.715179,0.103897,0.691176) + *** FresnelRefraction *** +Track (trackID 1324, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.691923,0.715271,0.098138) + Old Polarization: (-0.623562,0.52355,0.580574) + New Momentum Direction: (0.93249,0.336111,0.132259) + New Polarization: (-0.34791,0.737408,0.578954) + *** FresnelRefraction *** +Track (trackID 1323, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.918729,0.0410382,0.392751) + Old Polarization: (-0.373464,-0.232853,0.897944) + New Momentum Direction: (0.84357,0.055809,0.534112) + New Polarization: (0.508574,-0.40243,-0.761185) + *** FresnelRefraction *** +Track (trackID 1322, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.918746,-0.373728,0.12741) + Old Polarization: (-0.369362,-0.699415,0.611874) + New Momentum Direction: (0.846063,-0.504567,0.172015) + New Polarization: (0.499429,0.863085,0.0751985) + *** FresnelRefraction *** +Track (trackID 1321, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.748972,-0.497182,-0.438008) + Old Polarization: (-0.560479,-0.82796,-0.0185757) + New Momentum Direction: (0.435645,-0.675403,-0.595017) + New Polarization: (0.778014,-0.0498945,0.626263) + *** FresnelRefraction *** +Track (trackID 1320, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.609877,0.786901,-0.0940105) + Old Polarization: (-0.715007,0.597518,0.362955) + New Momentum Direction: (0.825256,0.550246,-0.12721) + New Polarization: (-0.492048,0.811089,0.316265) + *** FresnelRefraction *** +Track (trackID 1319, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1318, parentID 1) is processed with stopping code 2 ### pop requested out of 4 stacked tracks. ** Photon absorbed! ** -Track (trackID 892, parentID 1) is processed with stopping code 2 +Track (trackID 1317, parentID 1) is processed with stopping code 2 ### pop requested out of 3 stacked tracks. - Photon at Boundary! - Old Momentum Direction: (0.793618,-0.0698265,0.604396) - Old Polarization: (-0.572045,-0.423954,0.702159) - New Momentum Direction: (0.567111,-0.0945275,0.818199) - New Polarization: (-0.798196,-0.308091,0.517652) - *** FresnelRefraction *** -Track (trackID 891, parentID 1) is processed with stopping code 2 + +** Photon absorbed! ** +Track (trackID 1316, parentID 1) is processed with stopping code 2 ### pop requested out of 2 stacked tracks. Photon at Boundary! - Old Momentum Direction: (0.757282,-0.0456069,-0.651494) - Old Polarization: (-0.612055,-0.397579,-0.683608) - New Momentum Direction: (0.468301,-0.0617019,-0.881412) - New Polarization: (-0.855892,-0.279399,-0.435183) - *** FresnelRefraction *** -Track (trackID 890, parentID 1) is processed with stopping code 2 -### pop requested out of 1 stacked tracks. + Old Momentum Direction: (0.67072,-0.409021,-0.618738) + Old Polarization: (-0.646967,-0.730582,-0.218364) + New Momentum Direction: (-0.67072,-0.409021,-0.618738) + New Polarization: (-0.646967,0.730582,0.218364) + *** TotalInternalReflection *** Photon at Boundary! - Old Momentum Direction: (0.75631,-0.0427803,-0.652813) - Old Polarization: (-0.613159,-0.394277,-0.684531) - New Momentum Direction: (0.464839,-0.0578978,-0.8835) - New Polarization: (-0.857764,-0.276791,-0.433159) + Old Momentum Direction: (-0.67072,-0.409021,-0.618738) + Old Polarization: (-0.646967,0.730582,0.218364) + New Momentum Direction: (-0.67072,-0.409021,0.618738) + New Polarization: (0.646967,-0.730582,0.218364) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1315, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 164 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 32 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 197 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.357973,0.808359,-0.467344) + Old Polarization: (0.778759,0.0176705,0.627074) + New Momentum Direction: (0.48599,0.601048,-0.634473) + New Polarization: (0.782009,0.0250837,0.622762) *** FresnelRefraction *** -Track (trackID 889, parentID 1) is processed with stopping code 2 +Track (trackID 1788, parentID 1) is processed with stopping code 2 +### pop requested out of 196 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.764942,-0.0899807,0.637783) + Old Polarization: (0.387622,-0.726501,-0.567402) + New Momentum Direction: (0.485798,-0.122108,0.8655) + New Polarization: (0.548625,-0.728252,-0.410683) + *** FresnelRefraction *** +Track (trackID 1787, parentID 1) is processed with stopping code 2 +### pop requested out of 195 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.872969,-0.479461,-0.0896773) + Old Polarization: (-0.17515,-0.136533,-0.975029) + New Momentum Direction: (0.749882,-0.650294,-0.12163) + New Polarization: (0.242336,0.441074,-0.864134) + *** FresnelRefraction *** +Track (trackID 1786, parentID 1) is processed with stopping code 2 +### pop requested out of 194 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.204104,-0.578904,-0.789438) + Old Polarization: (0.43623,0.775707,-0.456051) + New Momentum Direction: (0.277362,-0.786687,-0.551538) + New Polarization: (0.472786,0.611502,-0.634459) + *** FresnelRefraction *** +Track (trackID 1785, parentID 1) is processed with stopping code 2 +### pop requested out of 193 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.467683,-0.737288,-0.487523) + Old Polarization: (0.768359,0.611759,-0.188082) + New Momentum Direction: (0.629322,-0.416646,-0.656019) + New Polarization: (0.021193,-0.834625,0.550411) + *** FresnelRefraction *** +Track (trackID 1784, parentID 1) is processed with stopping code 2 +### pop requested out of 192 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0643551,0.939917,-0.335281) + Old Polarization: (-0.757253,0.172825,0.629841) + New Momentum Direction: (-0.086641,0.888111,-0.451388) + New Polarization: (-0.759844,0.234122,0.606485) + *** FresnelRefraction *** +Track (trackID 1783, parentID 1) is processed with stopping code 2 +### pop requested out of 191 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1782, parentID 1) is processed with stopping code 2 +### pop requested out of 190 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.658836,-0.741342,-0.127853) + Old Polarization: (-0.409646,-0.496086,0.765564) + New Momentum Direction: (0.891998,-0.417584,-0.1731) + New Polarization: (-0.191913,-0.696539,0.691377) + *** FresnelRefraction *** +Track (trackID 1781, parentID 1) is processed with stopping code 2 +### pop requested out of 189 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.567097,0.811116,0.143148) + Old Polarization: (0.589352,0.521013,-0.617422) + New Momentum Direction: (-0.765353,0.613931,0.193192) + New Polarization: (0.427029,0.708969,-0.561257) + *** FresnelRefraction *** +Track (trackID 1780, parentID 1) is processed with stopping code 2 +### pop requested out of 188 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1779, parentID 1) is processed with stopping code 2 +### pop requested out of 187 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.698581,0.457492,-0.550168) + Old Polarization: (-0.66644,0.695902,-0.267542) + New Momentum Direction: (0.233197,0.621747,-0.747697) + New Polarization: (0.921896,0.103287,0.373416) + *** FresnelRefraction *** +Track (trackID 1778, parentID 1) is processed with stopping code 2 +### pop requested out of 186 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.364961,-0.010711,-0.930961) + Old Polarization: (0.0882907,0.995826,0.0231549) + New Momentum Direction: (0.494506,-0.014513,-0.869053) + New Polarization: (-0.0263859,0.999149,-0.0316995) + *** FresnelRefraction *** +Track (trackID 1777, parentID 1) is processed with stopping code 2 +### pop requested out of 185 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.737625,0.0487974,-0.673445) + Old Polarization: (-0.650673,0.317808,-0.689654) + New Momentum Direction: (0.398579,0.0662812,-0.914736) + New Polarization: (0.889085,0.216856,0.403115) + *** FresnelRefraction *** +Track (trackID 1776, parentID 1) is processed with stopping code 2 +### pop requested out of 184 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.541419,0.836697,-0.0824813) + Old Polarization: (-0.155791,0.196246,0.968099) + New Momentum Direction: (0.732394,0.671677,-0.111575) + New Polarization: (-0.104814,0.273135,0.956249) + *** FresnelRefraction *** +Track (trackID 1775, parentID 1) is processed with stopping code 2 +### pop requested out of 183 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.918726,-0.0276443,-0.393928) + Old Polarization: (-0.250536,-0.730276,0.635554) + New Momentum Direction: (-0.845978,-0.0373274,-0.53191) + New Polarization: (-0.340773,-0.729399,0.59317) + *** FresnelRefraction *** +Track (trackID 1774, parentID 1) is processed with stopping code 2 +### pop requested out of 182 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.563696,-0.693339,0.448919) + Old Polarization: (-0.722322,0.677399,0.139217) + New Momentum Direction: (-0.563696,0.693339,0.448919) + New Polarization: (-0.774092,-0.633048,0.00571187) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.563696,0.693339,0.448919) + Old Polarization: (-0.774092,-0.633048,0.00571187) + New Momentum Direction: (0.563696,0.693339,0.448919) + New Polarization: (-0.774092,0.633048,-0.00571187) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.563696,0.693339,0.448919) + Old Polarization: (-0.774092,0.633048,-0.00571187) + New Momentum Direction: (0.563696,0.693339,-0.448919) + New Polarization: (0.774092,-0.633048,-0.00571187) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1773, parentID 1) is processed with stopping code 2 +### pop requested out of 181 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.942706,-0.0141623,-0.333323) + Old Polarization: (-0.0858522,-0.955154,0.283391) + New Momentum Direction: (-0.892928,-0.0191109,-0.449793) + New Polarization: (-0.116726,-0.955105,0.272305) + *** FresnelRefraction *** +Track (trackID 1772, parentID 1) is processed with stopping code 2 +### pop requested out of 180 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.428039,0.542359,0.722931) + Old Polarization: (-0.361592,0.835874,-0.412997) + New Momentum Direction: (0.581516,0.736827,0.344855) + New Polarization: (-0.740386,0.303656,0.599685) + *** FresnelRefraction *** +Track (trackID 1771, parentID 1) is processed with stopping code 2 +### pop requested out of 179 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1770, parentID 1) is processed with stopping code 2 +### pop requested out of 178 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.562273,0.556197,-0.611959) + Old Polarization: (-0.826777,-0.393302,0.402186) + New Momentum Direction: (-0.562273,0.556197,0.611959) + New Polarization: (0.826777,0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.562273,0.556197,0.611959) + Old Polarization: (0.826777,0.393302,0.402186) + New Momentum Direction: (0.562273,0.556197,0.611959) + New Polarization: (0.826777,-0.393302,-0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.562273,0.556197,0.611959) + Old Polarization: (0.826777,-0.393302,-0.402186) + New Momentum Direction: (0.562273,-0.556197,0.611959) + New Polarization: (-0.826777,-0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.562273,-0.556197,0.611959) + Old Polarization: (-0.826777,-0.393302,0.402186) + New Momentum Direction: (0.562273,-0.556197,-0.611959) + New Polarization: (0.826777,0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.562273,-0.556197,-0.611959) + Old Polarization: (0.826777,0.393302,0.402186) + New Momentum Direction: (-0.562273,-0.556197,-0.611959) + New Polarization: (0.826777,-0.393302,-0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.562273,-0.556197,-0.611959) + Old Polarization: (0.826777,-0.393302,-0.402186) + New Momentum Direction: (-0.562273,0.556197,-0.611959) + New Polarization: (-0.826777,-0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.562273,0.556197,-0.611959) + Old Polarization: (-0.826777,-0.393302,0.402186) + New Momentum Direction: (-0.562273,0.556197,0.611959) + New Polarization: (0.826777,0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.562273,0.556197,0.611959) + Old Polarization: (0.826777,0.393302,0.402186) + New Momentum Direction: (0.562273,0.556197,0.611959) + New Polarization: (0.826777,-0.393302,-0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.562273,0.556197,0.611959) + Old Polarization: (0.826777,-0.393302,-0.402186) + New Momentum Direction: (0.562273,-0.556197,0.611959) + New Polarization: (-0.826777,-0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.562273,-0.556197,0.611959) + Old Polarization: (-0.826777,-0.393302,0.402186) + New Momentum Direction: (0.562273,-0.556197,-0.611959) + New Polarization: (0.826777,0.393302,0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.562273,-0.556197,-0.611959) + Old Polarization: (0.826777,0.393302,0.402186) + New Momentum Direction: (-0.562273,-0.556197,-0.611959) + New Polarization: (0.826777,-0.393302,-0.402186) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.562273,-0.556197,-0.611959) + Old Polarization: (0.826777,-0.393302,-0.402186) + New Momentum Direction: (-0.562273,0.556197,-0.611959) + New Polarization: (-0.826777,-0.393302,0.402186) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1769, parentID 1) is processed with stopping code 2 +### pop requested out of 177 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.578545,-0.542148,-0.609395) + Old Polarization: (0.13167,0.675251,-0.725741) + New Momentum Direction: (-0.578545,-0.542148,0.609395) + New Polarization: (-0.13167,-0.675251,-0.725741) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.578545,-0.542148,0.609395) + Old Polarization: (-0.13167,-0.675251,-0.725741) + New Momentum Direction: (0.578545,-0.542148,0.609395) + New Polarization: (-0.13167,0.675251,0.725741) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.578545,-0.542148,0.609395) + Old Polarization: (-0.13167,0.675251,0.725741) + New Momentum Direction: (0.578545,0.542148,0.609395) + New Polarization: (0.13167,0.675251,-0.725741) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1768, parentID 1) is processed with stopping code 2 +### pop requested out of 176 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.285959,-0.889958,-0.355249) + Old Polarization: (0.425005,-0.450063,0.785375) + New Momentum Direction: (-0.384804,-0.789557,-0.478044) + New Polarization: (0.365235,-0.605905,0.706741) + *** FresnelRefraction *** +Track (trackID 1767, parentID 1) is processed with stopping code 2 +### pop requested out of 175 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.242498,-0.968792,0.051343) + Old Polarization: (-0.0295242,0.0602676,0.997746) + New Momentum Direction: (-0.329508,-0.941572,0.0697653) + New Polarization: (0.425749,-0.0822267,0.901097) + *** FresnelRefraction *** +Track (trackID 1766, parentID 1) is processed with stopping code 2 +### pop requested out of 174 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.115624,0.178509,-0.977121) + Old Polarization: (-0.603848,0.768435,0.211838) + New Momentum Direction: (-0.157002,0.242392,-0.95739) + New Polarization: (0.443899,-0.848651,-0.287656) + *** FresnelRefraction *** +Track (trackID 1765, parentID 1) is processed with stopping code 2 +### pop requested out of 173 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1764, parentID 1) is processed with stopping code 2 +### pop requested out of 172 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.139907,-0.281721,0.949242) + Old Polarization: (0.944592,-0.249519,-0.213275) + New Momentum Direction: (0.189556,-0.381697,0.904641) + New Polarization: (0.38223,0.877352,0.290091) + *** FresnelRefraction *** +Track (trackID 1763, parentID 1) is processed with stopping code 2 +### pop requested out of 171 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.151543,0.389724,0.908378) + Old Polarization: (0.891698,0.342636,-0.295762) + New Momentum Direction: (0.203881,0.524324,0.826751) + New Polarization: (0.440875,-0.803184,0.400655) + *** FresnelRefraction *** +Track (trackID 1762, parentID 1) is processed with stopping code 2 +### pop requested out of 170 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.606429,0.368535,0.704575) + Old Polarization: (-0.791416,-0.365394,-0.49005) + New Momentum Direction: (-0.816239,0.49604,0.29614) + New Polarization: (-0.167887,-0.694151,0.699977) + *** FresnelRefraction *** +Track (trackID 1761, parentID 1) is processed with stopping code 2 +### pop requested out of 169 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.830948,-0.0215302,0.555933) + Old Polarization: (0.42891,0.611646,0.664775) + New Momentum Direction: (-0.657338,-0.0291635,0.753032) + New Polarization: (-0.589139,0.642987,-0.48937) + *** FresnelRefraction *** +Track (trackID 1760, parentID 1) is processed with stopping code 2 +### pop requested out of 168 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1759, parentID 1) is processed with stopping code 2 +### pop requested out of 167 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.250375,-0.955331,0.157022) + Old Polarization: (0.694487,0.0642239,-0.716633) + New Momentum Direction: (0.336753,-0.917603,0.211194) + New Polarization: (0.348576,-0.0868698,-0.933246) + *** FresnelRefraction *** +Track (trackID 1758, parentID 1) is processed with stopping code 2 +### pop requested out of 166 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1757, parentID 1) is processed with stopping code 2 +### pop requested out of 165 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.437203,-0.202274,-0.876321) + Old Polarization: (-0.752788,-0.615453,-0.233511) + New Momentum Direction: (0.590902,-0.273384,-0.75901) + New Polarization: (-0.704798,-0.632731,-0.320797) + *** FresnelRefraction *** +Track (trackID 1756, parentID 1) is processed with stopping code 2 +### pop requested out of 164 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.977174,-0.211998,0.0137168) + Old Polarization: (-0.145891,-0.622723,0.768721) + New Momentum Direction: (0.957581,-0.287563,0.0186061) + New Polarization: (0.198212,0.70416,0.681815) + *** FresnelRefraction *** +Track (trackID 1755, parentID 1) is processed with stopping code 2 +### pop requested out of 163 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.962452,-0.268243,-0.0416097) + Old Polarization: (-0.161025,-0.687585,0.708024) + New Momentum Direction: (0.92997,-0.36329,-0.0563532) + New Polarization: (0.218812,0.423787,0.878935) + *** FresnelRefraction *** +Track (trackID 1754, parentID 1) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.565431,-0.364914,-0.739679) + Old Polarization: (-0.607131,-0.791168,-0.0737918) + New Momentum Direction: (0.565431,-0.364914,0.739679) + New Polarization: (-0.518124,-0.854919,-0.0256983) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.565431,-0.364914,0.739679) + Old Polarization: (-0.518124,-0.854919,-0.0256983) + New Momentum Direction: (-0.565431,-0.364914,0.739679) + New Polarization: (-0.518124,0.854919,0.0256983) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1753, parentID 1) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.244581,0.53372,-0.80952) + Old Polarization: (-0.96543,0.211653,-0.152143) + New Momentum Direction: (0.332327,0.725198,-0.603032) + New Polarization: (-0.943157,0.253049,-0.215455) + *** FresnelRefraction *** +Track (trackID 1752, parentID 1) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.290769,0.105087,-0.951005) +Old Polarization: (-0.913021,-0.266722,-0.308629) +New Polarization: (0.854162,-0.24674,0.457742) +Polarization Change: (0.854162,-0.24674,0.457742) +New Momentum Direction: (-0.352127,-0.922176,0.159995) +Momentum Change: (-0.352127,-0.922176,0.159995) + +** Photon absorbed! ** +Track (trackID 1751, parentID 1) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.362677,-0.079381,-0.928528) + Old Polarization: (-0.83364,-0.472989,-0.285178) + New Momentum Direction: (0.362677,-0.079381,0.928528) + New Polarization: (-0.713502,-0.664595,0.221872) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.362677,-0.079381,0.928528) + Old Polarization: (-0.713502,-0.664595,0.221872) + New Momentum Direction: (-0.362677,-0.079381,0.928528) + New Polarization: (-0.713502,0.664595,-0.221872) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.362677,-0.079381,0.928528) + Old Polarization: (-0.713502,0.664595,-0.221872) + New Momentum Direction: (-0.492736,-0.107848,0.86347) + New Polarization: (0.336913,0.891253,0.303576) + *** FresnelRefraction *** +Track (trackID 1750, parentID 1) is processed with stopping code 2 +### pop requested out of 158 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.535361,-0.335228,-0.775249) + Old Polarization: (-0.640839,-0.759121,-0.114287) + New Momentum Direction: (0.72713,-0.455309,-0.513785) + New Polarization: (-0.604456,-0.779418,-0.164742) + *** FresnelRefraction *** +Track (trackID 1749, parentID 1) is processed with stopping code 2 +### pop requested out of 157 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.973159,-0.230126,0.00181983) +Old Polarization: (-0.152799,-0.640204,0.752856) +New Polarization: (-0.33186,0.331156,-0.883292) +Polarization Change: (-0.33186,0.331156,-0.883292) +New Momentum Direction: (0.758129,0.650825,-0.0408343) +Momentum Change: (0.758129,0.650825,-0.0408343) + +** Photon absorbed! ** +Track (trackID 1748, parentID 1) is processed with stopping code 2 +### pop requested out of 156 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.812905,-0.445974,-0.374556) + Old Polarization: (-0.330671,-0.882848,0.333521) + New Momentum Direction: (0.611773,-0.60574,-0.508737) + New Polarization: (0.462192,-0.248209,0.851335) + *** FresnelRefraction *** +Track (trackID 1747, parentID 1) is processed with stopping code 2 +### pop requested out of 155 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.984217,0.0585768,0.166988) + Old Polarization: (-0.140086,-0.318693,0.937449) + New Momentum Direction: (0.970628,0.0796354,0.227021) + New Polarization: (0.190598,-0.830355,-0.523625) + *** FresnelRefraction *** +Track (trackID 1746, parentID 1) is processed with stopping code 2 +### pop requested out of 154 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.374072,0.806811,-0.457302) + Old Polarization: (-0.821142,0.517332,0.241028) + New Momentum Direction: (0.508026,0.59682,-0.62106) + New Polarization: (-0.695192,0.709816,0.113445) + *** FresnelRefraction *** +Track (trackID 1745, parentID 1) is processed with stopping code 2 +### pop requested out of 153 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.655908,-0.422216,-0.625714) + Old Polarization: (-0.505809,-0.861145,0.0508613) + New Momentum Direction: (-0.655908,-0.422216,-0.625714) + New Polarization: (-0.505809,0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,-0.422216,-0.625714) + Old Polarization: (-0.505809,0.861145,-0.0508613) + New Momentum Direction: (-0.655908,-0.422216,0.625714) + New Polarization: (0.505809,-0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,-0.422216,0.625714) + Old Polarization: (0.505809,-0.861145,-0.0508613) + New Momentum Direction: (-0.655908,0.422216,0.625714) + New Polarization: (-0.505809,-0.861145,0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,0.422216,0.625714) + Old Polarization: (-0.505809,-0.861145,0.0508613) + New Momentum Direction: (0.655908,0.422216,0.625714) + New Polarization: (-0.505809,0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655908,0.422216,0.625714) + Old Polarization: (-0.505809,0.861145,-0.0508613) + New Momentum Direction: (0.655908,0.422216,-0.625714) + New Polarization: (0.505809,-0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655908,0.422216,-0.625714) + Old Polarization: (0.505809,-0.861145,-0.0508613) + New Momentum Direction: (0.655908,-0.422216,-0.625714) + New Polarization: (-0.505809,-0.861145,0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655908,-0.422216,-0.625714) + Old Polarization: (-0.505809,-0.861145,0.0508613) + New Momentum Direction: (-0.655908,-0.422216,-0.625714) + New Polarization: (-0.505809,0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,-0.422216,-0.625714) + Old Polarization: (-0.505809,0.861145,-0.0508613) + New Momentum Direction: (-0.655908,-0.422216,0.625714) + New Polarization: (0.505809,-0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,-0.422216,0.625714) + Old Polarization: (0.505809,-0.861145,-0.0508613) + New Momentum Direction: (0.655908,-0.422216,0.625714) + New Polarization: (0.505809,0.861145,0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655908,-0.422216,0.625714) + Old Polarization: (0.505809,0.861145,0.0508613) + New Momentum Direction: (0.655908,-0.422216,-0.625714) + New Polarization: (-0.505809,-0.861145,0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655908,-0.422216,-0.625714) + Old Polarization: (-0.505809,-0.861145,0.0508613) + New Momentum Direction: (0.655908,0.422216,-0.625714) + New Polarization: (0.505809,-0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.655908,0.422216,-0.625714) + Old Polarization: (0.505809,-0.861145,-0.0508613) + New Momentum Direction: (-0.655908,0.422216,-0.625714) + New Polarization: (0.505809,0.861145,0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,0.422216,-0.625714) + Old Polarization: (0.505809,0.861145,0.0508613) + New Momentum Direction: (-0.655908,0.422216,0.625714) + New Polarization: (-0.505809,-0.861145,0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,0.422216,0.625714) + Old Polarization: (-0.505809,-0.861145,0.0508613) + New Momentum Direction: (-0.655908,-0.422216,0.625714) + New Polarization: (0.505809,-0.861145,-0.0508613) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.655908,-0.422216,0.625714) + Old Polarization: (0.505809,-0.861145,-0.0508613) + New Momentum Direction: (0.655908,-0.422216,0.625714) + New Polarization: (0.505809,0.861145,0.0508613) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1744, parentID 1) is processed with stopping code 2 +### pop requested out of 152 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.456776,-0.226193,-0.860344) + Old Polarization: (-0.73181,-0.645414,-0.218849) + New Momentum Direction: (0.615689,-0.304885,-0.726617) + New Polarization: (-0.684204,-0.664264,-0.301028) + *** FresnelRefraction *** +Track (trackID 1743, parentID 1) is processed with stopping code 2 +### pop requested out of 151 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.950971,-0.30033,-0.0738658) + Old Polarization: (-0.175682,-0.721112,0.670174) + New Momentum Direction: (0.907649,-0.407583,-0.100245) + New Polarization: (0.239562,0.306943,0.921084) + *** FresnelRefraction *** +Track (trackID 1742, parentID 1) is processed with stopping code 2 +### pop requested out of 150 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1741, parentID 1) is processed with stopping code 2 +### pop requested out of 149 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.884451,-0.403598,-0.234211) + Old Polarization: (-0.251085,-0.83468,0.49017) + New Momentum Direction: (0.773215,-0.548482,-0.318288) + New Polarization: (0.346177,-0.055456,0.936529) + *** FresnelRefraction *** +Track (trackID 1740, parentID 1) is processed with stopping code 2 +### pop requested out of 148 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.897579,-0.385402,-0.214048) + Old Polarization: (-0.231274,-0.825003,0.515638) + New Momentum Direction: (0.803876,-0.519984,-0.288792) + New Polarization: (0.315742,-0.0384191,0.948067) + *** FresnelRefraction *** +Track (trackID 1739, parentID 1) is processed with stopping code 2 +### pop requested out of 147 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.856061,0.486071,0.175767) +Old Polarization: (-0.28357,0.157353,0.945954) +New Polarization: (-0.0316288,-0.756001,0.653806) +Polarization Change: (-0.0316288,-0.756001,0.653806) +New Momentum Direction: (0.310643,-0.629173,-0.71249) +Momentum Change: (0.310643,-0.629173,-0.71249) + +** Photon absorbed! ** +Track (trackID 1738, parentID 1) is processed with stopping code 2 +### pop requested out of 146 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.677605,0.735411,-0.00456726) + Old Polarization: (-0.480747,0.447641,0.753989) + New Momentum Direction: (0.913583,0.406607,-0.00615781) + New Polarization: (-0.276479,0.632167,0.723826) + *** FresnelRefraction *** +Track (trackID 1737, parentID 1) is processed with stopping code 2 +### pop requested out of 145 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.24466,0.387481,-0.888819) +Old Polarization: (-0.968294,0.0499255,-0.244772) +New Polarization: (0.673587,0.637277,-0.374378) +Polarization Change: (0.673587,0.637277,-0.374378) +New Momentum Direction: (0.72119,-0.455844,0.521624) +Momentum Change: (0.72119,-0.455844,0.521624) + Photon at Boundary! + Old Momentum Direction: (0.72119,-0.455844,0.521624) + Old Polarization: (0.673587,0.637277,-0.374378) + New Momentum Direction: (0.345792,-0.61744,0.706538) + New Polarization: (0.917162,0.381383,-0.115586) + *** FresnelRefraction *** +Track (trackID 1736, parentID 1) is processed with stopping code 2 +### pop requested out of 144 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.239266,0.464492,-0.852643) + Old Polarization: (-0.970716,0.133883,-0.199465) + New Momentum Direction: (0.325329,0.631568,-0.703764) + New Polarization: (-0.944207,0.176569,-0.278023) + *** FresnelRefraction *** +Track (trackID 1735, parentID 1) is processed with stopping code 2 +### pop requested out of 143 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.827717,-0.436598,-0.352515) + Old Polarization: (-0.311549,-0.88004,0.358422) + New Momentum Direction: (0.651651,-0.590163,-0.476506) + New Polarization: (0.431513,-0.22821,0.872764) + *** FresnelRefraction *** +Track (trackID 1734, parentID 1) is processed with stopping code 2 +### pop requested out of 142 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.603784,-0.39236,-0.693901) + Old Polarization: (-0.564415,-0.825126,-0.0245557) + New Momentum Direction: (0.818864,-0.532125,-0.215186) + New Polarization: (-0.551671,-0.833147,-0.0390556) + *** FresnelRefraction *** +Track (trackID 1733, parentID 1) is processed with stopping code 2 +### pop requested out of 141 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.817387,-0.437676,-0.374591) + Old Polarization: (-0.321676,-0.886175,0.333495) + New Momentum Direction: (-0.817387,-0.437676,-0.374591) + New Polarization: (-0.0273308,-0.620037,0.784097) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.817387,-0.437676,-0.374591) + Old Polarization: (-0.0273308,-0.620037,0.784097) + New Momentum Direction: (-0.817387,0.437676,-0.374591) + New Polarization: (0.0273308,-0.620037,-0.784097) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.817387,0.437676,-0.374591) + Old Polarization: (0.0273308,-0.620037,-0.784097) + New Momentum Direction: (-0.817387,0.437676,0.374591) + New Polarization: (-0.0273308,0.620037,-0.784097) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1732, parentID 1) is processed with stopping code 2 +### pop requested out of 140 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.887222,-0.395047,-0.238276) + Old Polarization: (-0.241989,-0.838228,0.488687) + New Momentum Direction: (0.783402,-0.532202,-0.321002) + New Polarization: (0.330355,-0.0809163,0.940382) + *** FresnelRefraction *** +Track (trackID 1731, parentID 1) is processed with stopping code 2 +### pop requested out of 139 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.295808,0.716192,-0.632112) +Old Polarization: (-0.908377,0.415633,0.0458269) +New Polarization: (0.224518,-0.97342,-0.0452206) +Polarization Change: (0.224518,-0.97342,-0.0452206) +New Momentum Direction: (0.973925,0.225702,-0.0230006) +Momentum Change: (0.973925,0.225702,-0.0230006) + Photon at Boundary! + Old Momentum Direction: (0.973925,0.225702,-0.0230006) + Old Polarization: (0.224518,-0.97342,-0.0452206) + New Momentum Direction: (0.951319,0.30662,-0.0312466) + New Polarization: (0.305033,-0.951182,-0.0469828) + *** FresnelRefraction *** +Track (trackID 1730, parentID 1) is processed with stopping code 2 +### pop requested out of 138 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.909143,0.365994,0.198766) + Old Polarization: (-0.222974,0.0246329,0.974513) + New Momentum Direction: (0.824699,0.497007,0.269917) + New Polarization: (0.305989,-0.79346,0.526111) + *** FresnelRefraction *** +Track (trackID 1729, parentID 1) is processed with stopping code 2 +### pop requested out of 137 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.93629,0.2867,0.20289) + Old Polarization: (-0.192587,-0.0640088,0.97919) + New Momentum Direction: (0.878939,0.389312,0.275505) + New Polarization: (0.263269,-0.877715,0.400382) + *** FresnelRefraction *** +Track (trackID 1728, parentID 1) is processed with stopping code 2 +### pop requested out of 136 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.470823,0.836499,-0.28035) + Old Polarization: (-0.712416,0.547928,0.43845) + New Momentum Direction: (0.640446,0.666633,-0.381352) + New Polarization: (-0.566691,0.745334,0.351195) + *** FresnelRefraction *** +Track (trackID 1727, parentID 1) is processed with stopping code 2 +### pop requested out of 135 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.731165,0.679119,0.0647722) + Old Polarization: (-0.421797,0.375406,0.825323) + New Momentum Direction: (0.377803,0.921703,0.0879091) + New Polarization: (0.606324,-0.318046,0.728847) + *** FresnelRefraction *** +Track (trackID 1726, parentID 1) is processed with stopping code 2 +### pop requested out of 134 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.767047,0.63335,0.102498) + Old Polarization: (-0.382141,0.322671,0.86594) + New Momentum Direction: (0.489605,0.860746,0.139298) + New Polarization: (0.5418,-0.425489,0.724853) + *** FresnelRefraction *** +Track (trackID 1725, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1724, parentID 1) is processed with stopping code 2 +### pop requested out of 132 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.988153,0.0315022,0.150204) + Old Polarization: (-0.12973,-0.35146,0.927171) + New Momentum Direction: (0.978271,0.042557,0.202913) + New Polarization: (0.17533,-0.692166,-0.700119) + *** FresnelRefraction *** +Track (trackID 1723, parentID 1) is processed with stopping code 2 +### pop requested out of 131 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.935146,0.294413,0.197034) + Old Polarization: (-0.189567,-0.0539941,0.980382) + New Momentum Direction: (0.878085,0.397666,0.266137) + New Polarization: (0.257767,-0.861691,0.437086) + *** FresnelRefraction *** +Track (trackID 1722, parentID 1) is processed with stopping code 2 +### pop requested out of 130 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1721, parentID 1) is processed with stopping code 2 +### pop requested out of 129 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.443199,-0.219733,-0.869076) + Old Polarization: (-0.744138,-0.630758,-0.220007) + New Momentum Direction: (0.60154,-0.298237,-0.741083) + New Polarization: (-0.696944,-0.64931,-0.304409) + *** FresnelRefraction *** +Track (trackID 1720, parentID 1) is processed with stopping code 2 +### pop requested out of 128 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.987677,0.0379372,0.151835) + Old Polarization: (-0.129711,-0.344413,0.929814) + New Momentum Direction: (0.977421,0.0512203,0.204998) + New Polarization: (0.175212,-0.738732,-0.650827) + *** FresnelRefraction *** +Track (trackID 1719, parentID 1) is processed with stopping code 2 +### pop requested out of 127 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.980169,0.0968907,0.172863) + Old Polarization: (-0.140249,-0.277097,0.950551) + New Momentum Direction: (0.963381,0.131101,0.233899) + New Polarization: (0.190014,-0.949271,-0.250556) + *** FresnelRefraction *** +Track (trackID 1718, parentID 1) is processed with stopping code 2 +### pop requested out of 126 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.754413,0.651054,0.0836033) + Old Polarization: (-0.394572,0.348009,0.850413) + New Momentum Direction: (0.460212,0.880579,0.113077) + New Polarization: (0.558324,-0.386088,0.73431) + *** FresnelRefraction *** +Track (trackID 1717, parentID 1) is processed with stopping code 2 +### pop requested out of 125 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.393866,-0.127474,-0.910285) + Old Polarization: (-0.802073,-0.531365,-0.272634) + New Momentum Direction: (0.532045,-0.172195,-0.829022) + New Polarization: (-0.753841,-0.542169,-0.371182) + *** FresnelRefraction *** +Track (trackID 1716, parentID 1) is processed with stopping code 2 +### pop requested out of 124 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.54949,0.817536,-0.172322) + Old Polarization: (-0.626174,0.539514,0.562877) + New Momentum Direction: (0.741515,0.629349,-0.232541) + New Polarization: (-0.464038,0.731391,0.499736) + *** FresnelRefraction *** +Track (trackID 1715, parentID 1) is processed with stopping code 2 +### pop requested out of 123 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.52817,0.824052,-0.204875) + Old Polarization: (-0.650473,0.547735,0.526185) + New Momentum Direction: (0.712383,0.645098,-0.27633) + New Polarization: (-0.493567,0.740459,0.456194) + *** FresnelRefraction *** +Track (trackID 1714, parentID 1) is processed with stopping code 2 +### pop requested out of 122 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1713, parentID 1) is processed with stopping code 2 +### pop requested out of 121 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1712, parentID 1) is processed with stopping code 2 +### pop requested out of 120 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.965378,0.177283,0.191353) + Old Polarization: (-0.157969,-0.186438,0.969684) + New Momentum Direction: (0.935481,0.240163,0.259224) + New Polarization: (0.214641,-0.968908,0.123074) + *** FresnelRefraction *** +Track (trackID 1711, parentID 1) is processed with stopping code 2 +### pop requested out of 119 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.273224,0.662599,-0.69736) + Old Polarization: (-0.933977,0.356281,-0.0274083) + New Momentum Direction: (0.371018,0.89976,-0.229733) + New Polarization: (-0.927471,0.371369,-0.0433789) + *** FresnelRefraction *** +Track (trackID 1710, parentID 1) is processed with stopping code 2 +### pop requested out of 118 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.48528,0.834482,-0.261041) + Old Polarization: (-0.697079,0.549465,0.460618) + New Momentum Direction: (0.658568,0.663921,-0.354256) + New Polarization: (-0.548614,0.745814,0.377867) + *** FresnelRefraction *** +Track (trackID 1709, parentID 1) is processed with stopping code 2 +### pop requested out of 117 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.912972,0.355368,0.20049) + Old Polarization: (-0.219119,0.0125176,0.975618) + New Momentum Direction: (0.832253,0.482853,0.272413) + New Polarization: (0.300709,-0.805972,0.509886) + *** FresnelRefraction *** +Track (trackID 1708, parentID 1) is processed with stopping code 2 +### pop requested out of 116 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1707, parentID 1) is processed with stopping code 2 +### pop requested out of 115 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.815233,-0.442811,-0.373247) + Old Polarization: (-0.326671,-0.88378,0.334992) + New Momentum Direction: (-0.815233,-0.442811,-0.373247) + New Polarization: (-0.0211518,-0.621296,0.78329) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.815233,-0.442811,-0.373247) + Old Polarization: (-0.0211518,-0.621296,0.78329) + New Momentum Direction: (-0.815233,0.442811,-0.373247) + New Polarization: (0.0211518,-0.621296,-0.78329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.815233,0.442811,-0.373247) + Old Polarization: (0.0211518,-0.621296,-0.78329) + New Momentum Direction: (-0.815233,0.442811,0.373247) + New Polarization: (-0.0211518,0.621296,-0.78329) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.815233,0.442811,0.373247) + Old Polarization: (-0.0211518,0.621296,-0.78329) + New Momentum Direction: (0.815233,0.442811,0.373247) + New Polarization: (0.0011324,0.643272,-0.765637) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.815233,0.442811,0.373247) + Old Polarization: (0.0011324,0.643272,-0.765637) + New Momentum Direction: (0.620236,0.599772,0.505549) + New Polarization: (0.00159784,0.643525,-0.765424) + *** FresnelRefraction *** +Track (trackID 1706, parentID 1) is processed with stopping code 2 +### pop requested out of 114 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1705, parentID 1) is processed with stopping code 2 +### pop requested out of 113 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.242965,0.362893,-0.899598) + Old Polarization: (-0.967292,0.0209401,-0.252801) + New Momentum Direction: (0.330111,0.493054,-0.804937) + New Polarization: (-0.93585,0.0595359,-0.347332) + *** FresnelRefraction *** +Track (trackID 1704, parentID 1) is processed with stopping code 2 +### pop requested out of 112 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.249194,0.331532,-0.909939) + Old Polarization: (-0.963189,-0.0129917,-0.268511) + New Momentum Direction: (0.337535,0.449063,-0.827292) + New Polarization: (-0.930035,0.0234596,-0.366721) + *** FresnelRefraction *** +Track (trackID 1703, parentID 1) is processed with stopping code 2 +### pop requested out of 111 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.273053,0.668719,-0.691561) + Old Polarization: (-0.932464,0.360746,-0.0193403) + New Momentum Direction: (0.371524,0.909878,-0.184638) + New Polarization: (-0.927554,0.372367,-0.0314127) + *** FresnelRefraction *** +Track (trackID 1702, parentID 1) is processed with stopping code 2 +### pop requested out of 110 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.932666,0.300415,0.199713) + Old Polarization: (-0.194371,-0.0478916,0.979758) + New Momentum Direction: (0.872583,0.40678,0.270424) + New Polarization: (0.265062,-0.859337,0.437359) + *** FresnelRefraction *** +Track (trackID 1701, parentID 1) is processed with stopping code 2 +### pop requested out of 109 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.458453,0.835341,-0.303359) + Old Polarization: (-0.726732,0.548853,0.413064) + New Momentum Direction: (0.622765,0.665094,-0.412085) + New Polarization: (-0.583985,0.745644,0.3209) + *** FresnelRefraction *** +Track (trackID 1700, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.330923,0.00990801,-0.943606) + Old Polarization: (-0.873215,-0.375874,-0.310184) + New Momentum Direction: (0.447065,0.0133854,-0.894401) + New Polarization: (-0.828022,-0.372074,-0.419453) + *** FresnelRefraction *** +Track (trackID 1699, parentID 1) is processed with stopping code 2 +### pop requested out of 107 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.253065,0.576294,-0.777074) + Old Polarization: (-0.957986,0.26134,-0.118166) + New Momentum Direction: (0.343093,0.781312,-0.521381) + New Polarization: (-0.93901,0.299134,-0.169647) + *** FresnelRefraction *** +Track (trackID 1698, parentID 1) is processed with stopping code 2 +### pop requested out of 106 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1697, parentID 1) is processed with stopping code 2 +### pop requested out of 105 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.269866,0.198273,-0.942263) + Old Polarization: (-0.938915,-0.16286,-0.303177) + New Momentum Direction: (0.365963,0.268876,-0.890942) + New Polarization: (-0.900716,-0.138443,-0.411758) + *** FresnelRefraction *** +Track (trackID 1696, parentID 1) is processed with stopping code 2 +### pop requested out of 104 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.560105,0.815332,-0.146682) + Old Polarization: (-0.613218,0.527102,0.588325) + New Momentum Direction: (0.760557,0.617965,-0.199177) + New Polarization: (-0.446772,0.72071,0.530069) + *** FresnelRefraction *** +Track (trackID 1695, parentID 1) is processed with stopping code 2 +### pop requested out of 103 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.261703,0.227709,-0.937902) + Old Polarization: (-0.946409,-0.130018,-0.295643) + New Momentum Direction: (0.355553,0.309368,-0.881972) + New Polarization: (-0.909563,-0.102661,-0.402686) + *** FresnelRefraction *** +Track (trackID 1694, parentID 1) is processed with stopping code 2 +### pop requested out of 102 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.41075,-0.157653,-0.898014) + Old Polarization: (-0.783013,-0.565584,-0.258856) + New Momentum Direction: (0.554808,-0.212945,-0.804265) + New Polarization: (-0.734602,-0.579199,-0.353397) + *** FresnelRefraction *** +Track (trackID 1693, parentID 1) is processed with stopping code 2 +### pop requested out of 101 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.268401,0.230323,-0.935368) + Old Polarization: (-0.944806,-0.126448,-0.302246) + New Momentum Direction: (0.362254,0.31086,-0.878714) + New Polarization: (-0.907191,-0.098811,-0.40895) + *** FresnelRefraction *** +Track (trackID 1692, parentID 1) is processed with stopping code 2 +### pop requested out of 100 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.988878,-0.133258,0.0660553) + Old Polarization: (-0.128195,-0.538478,0.832831) + New Momentum Direction: (0.979637,-0.179887,0.0891689) + New Polarization: (0.173115,0.981754,0.0786737) + *** FresnelRefraction *** +Track (trackID 1691, parentID 1) is processed with stopping code 2 +### pop requested out of 99 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1690, parentID 1) is processed with stopping code 2 +### pop requested out of 98 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.470507,0.835972,-0.282443) + Old Polarization: (-0.713085,0.548759,0.436318) + New Momentum Direction: (0.639455,0.666143,-0.383862) + New Polarization: (-0.567605,0.745806,0.348708) + *** FresnelRefraction *** +Track (trackID 1689, parentID 1) is processed with stopping code 2 +### pop requested out of 97 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1688, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1687, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.881706,-0.40226,-0.246537) + Old Polarization: (-0.250318,-0.841785,0.478266) + New Momentum Direction: (0.770433,-0.543557,-0.333135) + New Polarization: (0.343142,-0.0868368,0.935261) + *** FresnelRefraction *** +Track (trackID 1686, parentID 1) is processed with stopping code 2 +### pop requested out of 94 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.746768,-0.44476,-0.494495) + Old Polarization: (-0.402021,-0.894162,0.197112) + New Momentum Direction: (0.443348,-0.599413,-0.666443) + New Polarization: (0.567665,-0.387638,0.726287) + *** FresnelRefraction *** +Track (trackID 1685, parentID 1) is processed with stopping code 2 +### pop requested out of 93 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.492141,-0.284537,-0.8227) + Old Polarization: (-0.689594,-0.70421,-0.16896) + New Momentum Direction: (0.66746,-0.3859,-0.63685) + New Polarization: (-0.645927,-0.725578,-0.237308) + *** FresnelRefraction *** +Track (trackID 1684, parentID 1) is processed with stopping code 2 +### pop requested out of 92 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.585968,0.802266,-0.114064) + Old Polarization: (-0.584471,0.515933,0.626264) + New Momentum Direction: (0.793907,0.588072,-0.154541) + New Polarization: (-0.411772,0.706998,0.574976) + *** FresnelRefraction *** +Track (trackID 1683, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.832665,0.532437,0.152247) + Old Polarization: (-0.30642,0.213978,0.927534) + New Momentum Direction: (0.66236,0.720316,0.20597) + New Polarization: (0.424384,-0.587306,0.68918) + *** FresnelRefraction *** +Track (trackID 1682, parentID 1) is processed with stopping code 2 +### pop requested out of 90 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.458194,-0.243849,-0.854749) + Old Polarization: (-0.726833,-0.656319,-0.202385) + New Momentum Direction: (0.62271,-0.331404,-0.708805) + New Polarization: (-0.680611,-0.676312,-0.281729) + *** FresnelRefraction *** +Track (trackID 1681, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.676104,-0.432491,-0.596518) + Old Polarization: (-0.483198,-0.871456,0.0841633) + New Momentum Direction: (-0.676104,-0.432491,-0.596518) + New Polarization: (0.454459,-0.882037,0.124408) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676104,-0.432491,-0.596518) + Old Polarization: (0.454459,-0.882037,0.124408) + New Momentum Direction: (-0.676104,-0.432491,0.596518) + New Polarization: (-0.454459,0.882037,0.124408) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676104,-0.432491,0.596518) + Old Polarization: (-0.454459,0.882037,0.124408) + New Momentum Direction: (-0.676104,0.432491,0.596518) + New Polarization: (0.454459,0.882037,-0.124408) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1680, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.974259,-0.225349,0.00615393) + Old Polarization: (-0.151622,-0.634825,0.757633) + New Momentum Direction: (0.951831,-0.306509,0.0083703) + New Polarization: (0.206631,0.661361,0.721044) + *** FresnelRefraction *** +Track (trackID 1679, parentID 1) is processed with stopping code 2 +### pop requested out of 87 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.954274,0.221898,0.200304) + Old Polarization: (-0.172997,-0.136515,0.975416) + New Momentum Direction: (0.913798,0.3015,0.272159) + New Polarization: (0.236088,-0.93952,0.248123) + *** FresnelRefraction *** +Track (trackID 1678, parentID 1) is processed with stopping code 2 +### pop requested out of 86 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.856315,-0.425031,-0.293383) + Old Polarization: (-0.281733,-0.860541,0.424377) + New Momentum Direction: (0.713187,-0.576887,-0.398203) + New Polarization: (0.389825,-0.145717,0.909287) + *** FresnelRefraction *** +Track (trackID 1677, parentID 1) is processed with stopping code 2 +### pop requested out of 85 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.892493,-0.394358,-0.218948) + Old Polarization: (-0.24084,-0.827054,0.507916) + New Momentum Direction: (0.79096,-0.534949,-0.297005) + New Polarization: (0.330969,-0.034206,0.943021) + *** FresnelRefraction *** +Track (trackID 1676, parentID 1) is processed with stopping code 2 +### pop requested out of 84 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.431771,0.832047,-0.348242) + Old Polarization: (-0.756305,0.544348,0.362887) + New Momentum Direction: (0.58682,0.656988,-0.473296) + New Polarization: (-0.619133,0.740772,0.260636) + *** FresnelRefraction *** +Track (trackID 1675, parentID 1) is processed with stopping code 2 +### pop requested out of 83 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.259127,0.600002,-0.756869) + Old Polarization: (-0.952347,0.289271,-0.096735) + New Momentum Direction: (0.350864,0.812416,-0.465698) + New Polarization: (-0.935712,0.323589,-0.140476) + *** FresnelRefraction *** +Track (trackID 1674, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.816257,-0.440895,-0.373278) + Old Polarization: (-0.324604,-0.884551,0.334965) + New Momentum Direction: (0.624473,-0.596099,-0.504678) + New Polarization: (0.450846,-0.252529,0.856135) + *** FresnelRefraction *** +Track (trackID 1673, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.268695,0.621651,-0.735767) + Old Polarization: (-0.945037,0.317878,-0.0765427) + New Momentum Direction: (0.362427,0.838507,-0.406882) + New Polarization: (-0.93081,0.347814,-0.112331) + *** FresnelRefraction *** +Track (trackID 1672, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.973853,0.137477,0.180859) + Old Polarization: (-0.145932,-0.231569,0.96181) + New Momentum Direction: (0.951739,0.185726,0.244333) + New Polarization: (0.197546,-0.979986,-0.0245707) + *** FresnelRefraction *** +Track (trackID 1671, parentID 1) is processed with stopping code 2 +### pop requested out of 79 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.793449,-0.446272,-0.413861) + Old Polarization: (-0.350281,-0.890905,0.289122) + New Momentum Direction: (0.568408,-0.603264,-0.559451) + New Polarization: (0.489156,-0.298959,0.81936) + *** FresnelRefraction *** +Track (trackID 1670, parentID 1) is processed with stopping code 2 +### pop requested out of 78 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.957904,0.213034,0.192447) + Old Polarization: (-0.163529,-0.146071,0.975665) + New Momentum Direction: (0.921808,0.287654,0.259856) + New Polarization: (0.221663,-0.941076,0.255426) + *** FresnelRefraction *** +Track (trackID 1669, parentID 1) is processed with stopping code 2 +### pop requested out of 77 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1668, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.941223,-0.322255,-0.101242) + Old Polarization: (-0.186536,-0.745754,0.639574) + New Momentum Direction: (0.888756,-0.437307,-0.137387) + New Polarization: (0.254661,0.221854,0.941238) + *** FresnelRefraction *** +Track (trackID 1667, parentID 1) is processed with stopping code 2 +### pop requested out of 75 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.947766,0.245896,0.203164) + Old Polarization: (-0.181003,-0.10984,0.977329) + New Momentum Direction: (0.90102,0.334404,0.276291) + New Polarization: (0.247441,-0.919375,0.305814) + *** FresnelRefraction *** +Track (trackID 1666, parentID 1) is processed with stopping code 2 +### pop requested out of 74 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.966391,-0.25565,-0.0270484) + Old Polarization: (-0.157569,-0.672172,0.723434) + New Momentum Direction: (0.937291,-0.346614,-0.0366726) + New Polarization: (0.21425,0.489957,0.845009) + *** FresnelRefraction *** +Track (trackID 1665, parentID 1) is processed with stopping code 2 +### pop requested out of 73 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.4939,0.832763,-0.250139) + Old Polarization: (-0.687934,0.550181,0.473336) + New Momentum Direction: (0.669177,0.661319,-0.338909) + New Polarization: (-0.537876,0.745741,0.393141) + *** FresnelRefraction *** +Track (trackID 1664, parentID 1) is processed with stopping code 2 +### pop requested out of 72 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.248877,0.316939,-0.91521) +Old Polarization: (-0.961847,-0.0299809,-0.271941) +New Polarization: (-0.693584,-0.654481,-0.300992) +Polarization Change: (-0.693584,-0.654481,-0.300992) +New Momentum Direction: (-0.670217,0.739447,-0.0634642) +Momentum Change: (-0.670217,0.739447,-0.0634642) + Photon at Boundary! + Old Momentum Direction: (-0.670217,0.739447,-0.0634642) + Old Polarization: (-0.693584,-0.654481,-0.300992) + New Momentum Direction: (-0.909468,0.406756,-0.0861195) + New Polarization: (0.415746,0.892073,-0.17709) + *** FresnelRefraction *** +Track (trackID 1663, parentID 1) is processed with stopping code 2 +### pop requested out of 71 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.600519,0.794457,-0.0906321) + Old Polarization: (-0.568024,0.50362,0.650934) + New Momentum Direction: (0.81551,0.565504,-0.123079) + New Polarization: (-0.39042,0.694546,0.604299) + *** FresnelRefraction *** +Track (trackID 1662, parentID 1) is processed with stopping code 2 +### pop requested out of 70 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.454771,-0.240488,-0.857525) + Old Polarization: (-0.730344,-0.651735,-0.204548) + New Momentum Direction: (0.618535,-0.327087,-0.714443) + New Polarization: (-0.684043,-0.671563,-0.284759) + *** FresnelRefraction *** +Track (trackID 1661, parentID 1) is processed with stopping code 2 +### pop requested out of 69 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1660, parentID 1) is processed with stopping code 2 +### pop requested out of 68 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.273967,0.167199,-0.947094) + Old Polarization: (-0.931829,-0.197536,-0.304424) + New Momentum Direction: (0.3726,0.227393,-0.899701) + New Polarization: (-0.892868,-0.176366,-0.414345) + *** FresnelRefraction *** +Track (trackID 1659, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.579581,0.806465,-0.117048) + Old Polarization: (-0.591315,0.515025,0.620561) + New Momentum Direction: (0.788106,0.594607,-0.15916) + New Polarization: (-0.419295,0.70789,0.568405) + *** FresnelRefraction *** +Track (trackID 1658, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.950168,-0.301934,-0.077567) +Old Polarization: (-0.175697,-0.724214,0.666816) +New Polarization: (0.361381,0.599379,-0.714247) +Polarization Change: (0.361381,0.599379,-0.714247) +New Momentum Direction: (0.775607,-0.618406,-0.126524) +Momentum Change: (0.775607,-0.618406,-0.126524) + Photon at Boundary! + Old Momentum Direction: (0.775607,-0.618406,-0.126524) + Old Polarization: (0.361381,0.599379,-0.714247) + New Momentum Direction: (0.517409,-0.838371,-0.171528) + New Polarization: (0.509784,0.462973,-0.725105) + *** FresnelRefraction *** +Track (trackID 1657, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.485653,0.835486,-0.257107) + Old Polarization: (-0.696045,0.547531,0.464469) + New Momentum Direction: (0.66032,0.664661,-0.349577) + New Polarization: (-0.547102,0.744632,0.382365) + *** FresnelRefraction *** +Track (trackID 1656, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.391954,0.81073,-0.434844) + Old Polarization: (-0.804633,0.531254,0.265208) + New Momentum Direction: (0.529105,0.612761,-0.587002) + New Polarization: (-0.676452,0.722233,0.144193) + *** FresnelRefraction *** +Track (trackID 1655, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.860024,-0.423635,-0.284414) +Old Polarization: (-0.278466,-0.85675,0.434092) +New Polarization: (0.0345485,-0.946993,0.319392) +Polarization Change: (0.0345485,-0.946993,0.319392) +New Momentum Direction: (0.914092,-0.0992568,-0.393172) +Momentum Change: (0.914092,-0.0992568,-0.393172) + Photon at Boundary! + Old Momentum Direction: (0.914092,-0.0992568,-0.393172) + Old Polarization: (0.0345485,-0.946993,0.319392) + New Momentum Direction: (0.834385,-0.134914,-0.534415) + New Polarization: (0.0476114,-0.948315,0.313739) + *** FresnelRefraction *** +Track (trackID 1654, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1653, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.311904,0.722264,-0.617293) + Old Polarization: (-0.89822,0.435935,0.0562159) + New Momentum Direction: (0.311904,-0.722264,-0.617293) + New Polarization: (-0.741079,0.22164,-0.63378) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.311904,-0.722264,-0.617293) + Old Polarization: (-0.741079,0.22164,-0.63378) + New Momentum Direction: (0.311904,-0.722264,0.617293) + New Polarization: (0.741079,-0.22164,-0.63378) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1652, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1651, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.985591,-0.162622,0.0465225) + Old Polarization: (-0.132485,-0.571206,0.810044) + New Momentum Direction: (0.973552,-0.219656,0.0628388) + New Polarization: (0.179076,0.904454,0.387163) + *** FresnelRefraction *** +Track (trackID 1650, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.960641,0.197986,0.194859) +Old Polarization: (-0.16372,-0.163173,0.972918) +New Polarization: (0.493768,-0.241693,-0.835331) +Polarization Change: (0.493768,-0.241693,-0.835331) +New Momentum Direction: (0.496091,-0.710656,0.498861) +Momentum Change: (0.496091,-0.710656,0.498861) + Photon at Boundary! + Old Momentum Direction: (0.496091,-0.710656,0.498861) + Old Polarization: (0.493768,-0.241693,-0.835331) + New Momentum Direction: (-0.496091,-0.710656,0.498861) + New Polarization: (0.493768,0.241693,0.835331) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.496091,-0.710656,0.498861) + Old Polarization: (0.493768,0.241693,0.835331) + New Momentum Direction: (-0.672376,-0.301259,0.676131) + New Polarization: (0.736445,-0.364263,0.570054) + *** FresnelRefraction *** +Track (trackID 1649, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.267414,0.198855,-0.94284) +Old Polarization: (-0.939794,-0.162248,-0.30077) +New Polarization: (-0.942481,0.327609,0.0663486) +Polarization Change: (-0.942481,0.327609,0.0663486) +New Momentum Direction: (0.298409,0.735219,0.608609) +Momentum Change: (0.298409,0.735219,0.608609) + Photon at Boundary! + Old Momentum Direction: (0.298409,0.735219,0.608609) + Old Polarization: (-0.942481,0.327609,0.0663486) + New Momentum Direction: (0.405532,0.38919,0.827088) + New Polarization: (-0.856605,0.477597,0.195269) + *** FresnelRefraction *** +Track (trackID 1648, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.494351,0.834181,-0.244458) +Old Polarization: (-0.686554,0.547175,0.478793) +New Polarization: (-0.0599884,-0.411065,0.90963) +Polarization Change: (-0.0599884,-0.411065,0.90963) +New Momentum Direction: (0.693802,-0.672336,-0.258076) +Momentum Change: (0.693802,-0.672336,-0.258076) + Photon at Boundary! + Old Momentum Direction: (0.693802,-0.672336,-0.258076) + Old Polarization: (-0.0599884,-0.411065,0.90963) + New Momentum Direction: (0.206208,-0.913521,-0.350654) + New Polarization: (0.0960152,-0.337736,0.936331) + *** FresnelRefraction *** +Track (trackID 1647, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.46721,-0.25329,-0.847089) + Old Polarization: (-0.717367,-0.668635,-0.195732) + New Momentum Direction: (0.633951,-0.343686,-0.69281) + New Polarization: (-0.671483,-0.689051,-0.272615) + *** FresnelRefraction *** +Track (trackID 1646, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.835281,-0.438315,-0.331941) + Old Polarization: (-0.306347,-0.872341,0.381016) + New Momentum Direction: (0.664019,-0.596074,-0.451413) + New Polarization: (0.426627,-0.193771,0.883426) + *** FresnelRefraction *** +Track (trackID 1645, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.596754,0.796818,-0.0946888) + Old Polarization: (-0.572203,0.505297,0.645955) + New Momentum Direction: (0.81091,0.57085,-0.12867) + New Polarization: (-0.395509,0.696725,0.598454) + *** FresnelRefraction *** +Track (trackID 1644, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1643, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.238507,0.452175,-0.859449) + Old Polarization: (-0.971093,0.119826,-0.206447) + New Momentum Direction: (0.238507,0.452175,0.859449) + New Polarization: (-0.925645,0.373551,0.0603436) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.238507,0.452175,0.859449) + Old Polarization: (-0.925645,0.373551,0.0603436) + New Momentum Direction: (0.238507,-0.452175,0.859449) + New Polarization: (0.925645,0.373551,-0.0603436) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.238507,-0.452175,0.859449) + Old Polarization: (0.925645,0.373551,-0.0603436) + New Momentum Direction: (0.324459,-0.615128,0.718571) + New Polarization: (0.837323,0.540166,0.0843257) + *** FresnelRefraction *** +Track (trackID 1642, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.961619,0.199334,0.188562) + Old Polarization: (-0.157543,-0.16155,0.974208) + New Momentum Direction: (0.929128,0.268616,0.254101) + New Polarization: (0.213024,-0.950565,0.225936) + *** FresnelRefraction *** +Track (trackID 1641, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.416175,0.822575,-0.387516) + Old Polarization: (-0.776706,0.543187,0.318868) + New Momentum Direction: (0.562316,0.640041,-0.523592) + New Polarization: (-0.643748,0.736247,0.208633) + *** FresnelRefraction *** +Track (trackID 1640, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.272529,0.216838,-0.937395) + Old Polarization: (-0.941295,-0.141652,-0.30643) + New Momentum Direction: (0.36735,0.292283,-0.882964) + New Polarization: (-0.903,-0.115344,-0.413867) + *** FresnelRefraction *** +Track (trackID 1639, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1638, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.462058,0.836455,-0.294695) + Old Polarization: (-0.722148,0.547752,0.422457) + New Momentum Direction: (0.628573,0.666466,-0.400897) + New Polarization: (-0.578334,0.745176,0.332028) + *** FresnelRefraction *** +Track (trackID 1637, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1636, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1635, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.284572,0.695412,-0.659864) + Old Polarization: (-0.920157,0.391244,0.0154954) + New Momentum Direction: (0.386955,0.212537,-0.89727) + New Polarization: (-0.780879,0.593042,-0.196286) + *** FresnelRefraction *** +Track (trackID 1634, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.973554,0.143379,0.177861) + Old Polarization: (-0.142878,-0.225364,0.963741) + New Momentum Direction: (0.951549,0.192985,0.239399) + New Polarization: (0.192707,-0.980943,0.0248026) + *** FresnelRefraction *** +Track (trackID 1633, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.87358,0.452153,0.180044) + Old Polarization: (-0.260911,0.122813,0.957519) + New Momentum Direction: (0.752104,0.612288,0.243809) + New Polarization: (0.358985,-0.690855,0.627575) + *** FresnelRefraction *** +Track (trackID 1632, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.463613,-0.24876,-0.850401) + Old Polarization: (-0.721319,-0.663338,-0.199201) + New Momentum Direction: (0.629196,-0.337607,-0.700095) + New Polarization: (-0.675215,-0.683549,-0.277208) + *** FresnelRefraction *** +Track (trackID 1631, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.378966,0.806343,-0.454088) + Old Polarization: (-0.817537,0.521632,0.243995) + New Momentum Direction: (0.513081,0.598985,-0.614788) + New Polarization: (-0.691202,0.712994,0.117812) + *** FresnelRefraction *** +Track (trackID 1630, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1629, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.398364,0.816325,-0.418235) + Old Polarization: (-0.796157,0.534161,0.284264) + New Momentum Direction: (0.538907,0.62407,-0.565788) + New Polarization: (-0.666441,0.726671,0.166748) + *** FresnelRefraction *** +Track (trackID 1628, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.253952,0.550772,-0.795084) + Old Polarization: (-0.96101,0.236661,-0.143008) + New Momentum Direction: (0.342816,0.743502,-0.574179) + New Polarization: (-0.93936,0.277134,-0.201989) + *** FresnelRefraction *** +Track (trackID 1627, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1626, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.778224,-0.452715,-0.43522) + Old Polarization: (-0.369407,-0.890467,0.265719) + New Momentum Direction: (0.522054,-0.614864,-0.591103) + New Polarization: (0.521321,-0.318479,0.791704) + *** FresnelRefraction *** +Track (trackID 1625, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1624, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.98666,0.0343133,0.159135) + Old Polarization: (-0.13769,-0.345613,0.92822) + New Momentum Direction: (0.975184,0.0466656,0.216421) + New Polarization: (0.187351,-0.694789,-0.694383) + *** FresnelRefraction *** +Track (trackID 1623, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1622, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.289139,0.11943,-0.949808) + Old Polarization: (-0.91674,-0.251161,-0.310654) + New Momentum Direction: (0.392364,0.162067,-0.90542) + New Polarization: (-0.875762,-0.235144,-0.421602) + *** FresnelRefraction *** +Track (trackID 1621, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.276309,0.670112,-0.688914) + Old Polarization: (-0.930802,0.365069,-0.0182197) + New Momentum Direction: (0.375087,0.90967,-0.178353) + New Polarization: (-0.926119,0.37607,-0.0295777) + *** FresnelRefraction *** +Track (trackID 1620, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.281408,0.67779,-0.679272) + Old Polarization: (-0.926627,0.375879,-0.00882275) + New Momentum Direction: (0.281408,0.67779,0.679272) + New Polarization: (-0.920944,0.389627,-0.0072489) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.281408,0.67779,0.679272) + Old Polarization: (-0.920944,0.389627,-0.0072489) + New Momentum Direction: (0.281408,-0.67779,0.679272) + New Polarization: (-0.693337,0.345763,0.632243) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 1619, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.247982,0.530372,-0.810685) + Old Polarization: (-0.964801,0.210829,-0.157195) + New Momentum Direction: (0.335805,0.718203,-0.609442) + New Polarization: (-0.941918,0.252508,-0.221429) + *** FresnelRefraction *** +Track (trackID 1618, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.283412,0.688977,-0.667074) + Old Polarization: (-0.922576,0.385761,0.00646275) + New Momentum Direction: (0.384857,0.17699,-0.905848) + New Polarization: (-0.776979,0.591869,-0.214463) + *** FresnelRefraction *** +Track (trackID 1617, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.24027,0.437812,-0.866367) +Old Polarization: (-0.970699,0.104864,-0.216213) +New Polarization: (0.530418,-0.262214,-0.806164) +Polarization Change: (0.530418,-0.262214,-0.806164) +New Momentum Direction: (-0.834017,0.00898137,-0.551665) +Momentum Change: (-0.834017,0.00898137,-0.551665) + Photon at Boundary! + Old Momentum Direction: (-0.834017,0.00898137,-0.551665) + Old Polarization: (0.530418,-0.262214,-0.806164) + New Momentum Direction: (-0.834017,0.00898137,0.551665) + New Polarization: (-0.530418,0.262214,-0.806164) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.834017,0.00898137,0.551665) + Old Polarization: (-0.530418,0.262214,-0.806164) + New Momentum Direction: (-0.66221,0.0121976,0.749219) + New Polarization: (-0.722209,0.256122,-0.642507) + *** FresnelRefraction *** +Track (trackID 1616, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.989927,-0.114602,0.0831267) + Old Polarization: (-0.130713,-0.51428,0.847603) + New Momentum Direction: (0.981422,-0.155306,0.112651) + New Polarization: (0.177173,0.958928,-0.221512) + *** FresnelRefraction *** +Track (trackID 1615, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.943776,0.268179,0.193305) + Old Polarization: (-0.177249,-0.083085,0.980653) + New Momentum Direction: (0.895445,0.361135,0.260308) + New Polarization: (0.240008,-0.884106,0.400941) + *** FresnelRefraction *** +Track (trackID 1614, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.757435,0.647975,0.0801291) + Old Polarization: (-0.389521,0.34997,0.851936) + New Momentum Direction: (0.476753,0.872392,0.107881) + New Polarization: (0.547037,-0.390513,0.740439) + *** FresnelRefraction *** +Track (trackID 1613, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1612, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1611, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.393432,0.813267,-0.428727) + Old Polarization: (-0.80203,0.531573,0.272357) + New Momentum Direction: (0.531948,0.617263,-0.57967) + New Polarization: (-0.673321,0.723455,0.152483) + *** FresnelRefraction *** +Track (trackID 1610, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.966631,0.176347,0.185813) + Old Polarization: (-0.152289,-0.187682,0.970352) + New Momentum Direction: (0.938462,0.237758,0.250521) + New Polarization: (0.205904,-0.967487,0.146874) + *** FresnelRefraction *** +Track (trackID 1609, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.299266,0.704057,-0.644006) + Old Polarization: (-0.910738,0.412081,0.0272905) + New Momentum Direction: (0.403465,0.288762,-0.868235) + New Polarization: (-0.782226,0.60114,-0.163567) + *** FresnelRefraction *** +Track (trackID 1608, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1607, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1606, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.616879,0.784271,-0.0661747) +Old Polarization: (-0.549742,0.48952,0.676871) +New Polarization: (0.191768,0.542086,0.818149) +Polarization Change: (0.191768,0.542086,0.818149) +New Momentum Direction: (-0.980269,0.146512,0.132692) +Momentum Change: (-0.980269,0.146512,0.132692) + Photon at Boundary! + Old Momentum Direction: (-0.980269,0.146512,0.132692) + Old Polarization: (0.191768,0.542086,0.818149) + New Momentum Direction: (-0.980269,-0.146512,0.132692) + New Polarization: (-0.191768,0.542086,-0.818149) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1605, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1604, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.948277,0.244657,0.202272) + Old Polarization: (-0.179815,-0.111122,0.977404) + New Momentum Direction: (-0.948277,0.244657,0.202272) + New Polarization: (-0.141434,-0.896071,0.420776) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.948277,0.244657,0.202272) + Old Polarization: (-0.141434,-0.896071,0.420776) + New Momentum Direction: (-0.902168,0.332472,0.274873) + New Polarization: (-0.19337,-0.881261,0.431263) + *** FresnelRefraction *** +Track (trackID 1603, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1602, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.596121,-0.389047,-0.70234) + Old Polarization: (-0.572923,-0.818959,-0.0326307) + New Momentum Direction: (0.809827,-0.528519,-0.254652) + New Polarization: (-0.557041,-0.828911,-0.0510976) + *** FresnelRefraction *** +Track (trackID 1601, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1600, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.566544,0.812675,-0.136337) + Old Polarization: (-0.605928,0.522979,0.599453) + New Momentum Direction: (0.769868,0.610721,-0.185266) + New Polarization: (-0.437604,0.716457,0.543315) + *** FresnelRefraction *** +Track (trackID 1599, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1598, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1597, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.882542,-0.403887,-0.240824) + Old Polarization: (-0.251717,-0.83835,0.483537) + New Momentum Direction: (0.770356,-0.54765,-0.326545) + New Polarization: (0.346317,-0.0706303,0.935455) + *** FresnelRefraction *** +Track (trackID 1596, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.844736,0.508334,0.167383) + Old Polarization: (-0.295744,0.18272,0.937629) + New Momentum Direction: (0.685872,0.691215,0.227601) + New Polarization: (0.410993,-0.626028,0.662701) + *** FresnelRefraction *** +Track (trackID 1595, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1594, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.925585,0.322695,0.197887) + Old Polarization: (-0.201521,-0.0224705,0.979226) + New Momentum Direction: (0.858966,0.436495,0.267673) + New Polarization: (0.274776,-0.834069,0.478358) + *** FresnelRefraction *** +Track (trackID 1593, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 127 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 35 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 163 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.810067,-0.51806,0.274601) + Old Polarization: (-0.579358,-0.779264,0.238941) + New Momentum Direction: (0.604514,-0.703833,0.373071) + New Polarization: (0.787901,0.459289,-0.410202) + *** FresnelRefraction *** +Track (trackID 1950, parentID 1) is processed with stopping code 2 +### pop requested out of 162 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.220666,0.975276,0.0119214) + Old Polarization: (0.865761,-0.190229,-0.462894) + New Momentum Direction: (0.297793,0.954495,0.0160882) + New Polarization: (-0.793734,0.25693,-0.551338) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.297793,0.954495,0.0160882) + Old Polarization: (-0.793734,0.25693,-0.551338) + New Momentum Direction: (-0.537157,-0.732958,0.417416) + New Polarization: (0.790172,-0.264128,0.55305) + *** LambertianReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.537157,-0.732958,0.417416) + Old Polarization: (0.790172,-0.264128,0.55305) + New Momentum Direction: (-0.398036,-0.863653,0.309307) + New Polarization: (0.833639,-0.199795,0.514906) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.398036,-0.863653,0.309307) + Old Polarization: (0.833639,-0.199795,0.514906) + New Momentum Direction: (-0.537157,-0.732958,0.417416) + New Polarization: (0.795279,-0.275198,0.540183) + *** FresnelRefraction *** +Track (trackID 1949, parentID 1) is processed with stopping code 2 +### pop requested out of 161 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.64202,0.676719,0.360363) + Old Polarization: (0.660113,0.248846,0.70875) + New Momentum Direction: (-0.64202,-0.676719,0.360363) + New Polarization: (-0.660113,0.248846,-0.70875) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.64202,-0.676719,0.360363) + Old Polarization: (-0.660113,0.248846,-0.70875) + New Momentum Direction: (0.64202,-0.676719,0.360363) + New Polarization: (-0.660113,-0.248846,0.70875) + *** TotalInternalReflection *** +Scattering Photon! +Old Momentum Direction: (0.64202,-0.676719,0.360363) +Old Polarization: (-0.660113,-0.248846,0.70875) +New Polarization: (0.469363,0.499589,-0.728086) +Polarization Change: (0.469363,0.499589,-0.728086) +New Momentum Direction: (-0.687003,0.72462,0.054332) +Momentum Change: (-0.687003,0.72462,0.054332) + Photon at Boundary! + Old Momentum Direction: (-0.687003,0.72462,0.054332) + Old Polarization: (0.469363,0.499589,-0.728086) + New Momentum Direction: (-0.154315,0.985256,0.0738745) + New Polarization: (-0.707839,-0.0580802,-0.703982) + *** FresnelRefraction *** +Track (trackID 1948, parentID 1) is processed with stopping code 2 +### pop requested out of 160 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.285069,-0.922077,-0.261745) + Old Polarization: (-0.0245102,0.279999,-0.959687) + New Momentum Direction: (-0.384265,-0.853144,-0.352825) + New Polarization: (0.921219,-0.379494,-0.0856762) + *** FresnelRefraction *** +Track (trackID 1947, parentID 1) is processed with stopping code 2 +### pop requested out of 159 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.473314,0.824268,-0.310735) + Old Polarization: (-0.0659769,-0.384931,-0.920584) + New Momentum Direction: (-0.641597,0.64104,-0.421215) + New Polarization: (0.767023,0.532303,-0.35823) + *** FresnelRefraction *** +Track (trackID 1946, parentID 1) is processed with stopping code 2 +### pop requested out of 158 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.00886247,-0.449604,0.893184) + Old Polarization: (-0.771222,0.571634,0.280092) + New Momentum Direction: (-0.0120445,-0.611033,0.791514) + New Polarization: (-0.766744,0.513743,0.384932) + *** FresnelRefraction *** +Track (trackID 1945, parentID 1) is processed with stopping code 2 +### pop requested out of 157 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.00228893,0.88232,-0.470645) + Old Polarization: (0.309536,0.446906,0.839323) + New Momentum Direction: (0.00310615,0.769466,-0.63868) + New Polarization: (0.304239,0.60768,0.733597) + *** FresnelRefraction *** +Track (trackID 1944, parentID 1) is processed with stopping code 2 +### pop requested out of 156 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.94211,-0.222571,-0.250779) + Old Polarization: (-0.196754,-0.238655,0.950964) + New Momentum Direction: (-0.890823,-0.301594,-0.339818) + New Polarization: (-0.268086,-0.254946,0.929049) + *** FresnelRefraction *** +Track (trackID 1943, parentID 1) is processed with stopping code 2 +### pop requested out of 155 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1942, parentID 1) is processed with stopping code 2 +### pop requested out of 154 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0764466,0.205085,0.975754) + Old Polarization: (0.23533,0.954681,-0.182219) + New Momentum Direction: (-0.103941,0.278845,0.954695) + New Polarization: (0.795772,-0.552485,0.248007) + *** FresnelRefraction *** +Track (trackID 1941, parentID 1) is processed with stopping code 2 +### pop requested out of 153 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1940, parentID 1) is processed with stopping code 2 +### pop requested out of 152 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.106566,-0.991831,-0.0701098) + Old Polarization: (-0.911243,-0.0692072,-0.406014) + New Momentum Direction: (0.144681,-0.984889,-0.0951861) + New Polarization: (-0.908287,-0.0940312,-0.407643) + *** FresnelRefraction *** +Track (trackID 1939, parentID 1) is processed with stopping code 2 +### pop requested out of 151 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0829267,0.811278,-0.57875) + Old Polarization: (-0.996514,0.0621948,-0.0556033) + New Momentum Direction: (0.112576,0.608313,-0.785673) + New Polarization: (-0.993349,0.088129,-0.0740985) + *** FresnelRefraction *** +Track (trackID 1938, parentID 1) is processed with stopping code 2 +### pop requested out of 150 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.418601,-0.786831,-0.453508) + Old Polarization: (-0.809307,-0.0966168,-0.579385) + New Momentum Direction: (0.564844,-0.5536,-0.611946) + New Polarization: (-0.786615,-0.137113,-0.602028) + *** FresnelRefraction *** +Track (trackID 1937, parentID 1) is processed with stopping code 2 +### pop requested out of 149 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.163776,-0.985961,0.0325338) + Old Polarization: (-0.973126,0.156056,-0.169331) + New Momentum Direction: (-0.220927,-0.974302,0.0438868) + New Polarization: (0.824138,-0.210561,-0.525795) + *** FresnelRefraction *** +Track (trackID 1936, parentID 1) is processed with stopping code 2 +### pop requested out of 148 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1935, parentID 1) is processed with stopping code 2 +### pop requested out of 147 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.732311,-0.206919,-0.648772) + Old Polarization: (-0.496249,0.490255,-0.71651) + New Momentum Direction: (0.396953,-0.278894,-0.874441) + New Polarization: (0.695723,0.712842,0.0884695) + *** FresnelRefraction *** +Track (trackID 1934, parentID 1) is processed with stopping code 2 +### pop requested out of 146 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1933, parentID 1) is processed with stopping code 2 +### pop requested out of 145 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1932, parentID 1) is processed with stopping code 2 +### pop requested out of 144 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1931, parentID 1) is processed with stopping code 2 +### pop requested out of 143 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.190859,0.438914,-0.878025) + Old Polarization: (-0.272643,0.83557,0.476957) + New Momentum Direction: (-0.25647,0.589798,-0.765742) + New Polarization: (0.379113,-0.667372,-0.641006) + *** FresnelRefraction *** +Track (trackID 1930, parentID 1) is processed with stopping code 2 +### pop requested out of 142 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0530117,-0.0642186,0.996527) + Old Polarization: (0.614769,-0.784302,-0.0832458) + New Momentum Direction: (0.0716856,-0.0868403,0.99364) + New Polarization: (-0.651774,0.750012,0.11257) + *** FresnelRefraction *** +Track (trackID 1929, parentID 1) is processed with stopping code 2 +### pop requested out of 141 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.697435,0.53348,0.478522) + Old Polarization: (-0.682002,0.288975,0.671838) + New Momentum Direction: (0.258616,0.719085,0.645007) + New Polarization: (0.929802,-0.366335,0.0356032) + *** FresnelRefraction *** +Track (trackID 1928, parentID 1) is processed with stopping code 2 +### pop requested out of 140 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1927, parentID 1) is processed with stopping code 2 +### pop requested out of 139 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1926, parentID 1) is processed with stopping code 2 +### pop requested out of 138 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.398456,0.822031,0.406814) + Old Polarization: (0.794488,-0.0877205,-0.600911) + New Momentum Direction: (0.536099,0.642661,0.547344) + New Polarization: (0.633501,0.12225,-0.764024) + *** FresnelRefraction *** +Track (trackID 1925, parentID 1) is processed with stopping code 2 +### pop requested out of 137 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.089899,0.232131,0.968521) + Old Polarization: (-0.525932,0.814748,-0.244093) + New Momentum Direction: (-0.089899,0.232131,-0.968521) + New Polarization: (0.121785,-0.962599,-0.242016) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 1924, parentID 1) is processed with stopping code 2 +### pop requested out of 136 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.689176,-0.0820457,-0.719934) + Old Polarization: (0.437363,-0.839264,-0.323032) + New Momentum Direction: (-0.927659,-0.110437,-0.356726) + New Polarization: (0.280154,-0.837432,-0.469278) + *** FresnelRefraction *** +Track (trackID 1923, parentID 1) is processed with stopping code 2 +### pop requested out of 135 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1922, parentID 1) is processed with stopping code 2 +### pop requested out of 134 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1921, parentID 1) is processed with stopping code 2 +### pop requested out of 133 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.129806,0.011016,0.991478) + Old Polarization: (0.456351,0.888401,0.0498755) + New Momentum Direction: (-0.175762,0.0149161,0.98432) + New Polarization: (0.453957,0.888456,0.0675959) + *** FresnelRefraction *** +Track (trackID 1920, parentID 1) is processed with stopping code 2 +### pop requested out of 132 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.964329,0.174319,-0.199207) + Old Polarization: (-0.240322,0.261041,-0.934935) + New Momentum Direction: (0.933449,0.236221,-0.269947) + New Polarization: (0.325943,-0.872781,0.363337) + *** FresnelRefraction *** +Track (trackID 1919, parentID 1) is processed with stopping code 2 +### pop requested out of 131 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.587169,-0.621217,-0.518962) + Old Polarization: (-0.0850626,0.684922,-0.723634) + New Momentum Direction: (-0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,-0.684922,-0.723634) + New Momentum Direction: (0.587169,0.621217,0.518962) + New Polarization: (-0.0850626,0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,0.621217,0.518962) + Old Polarization: (-0.0850626,0.684922,-0.723634) + New Momentum Direction: (0.587169,-0.621217,0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,-0.621217,0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (-0.587169,-0.621217,0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,-0.621217,0.518962) + Old Polarization: (0.0850626,-0.684922,-0.723634) + New Momentum Direction: (-0.587169,-0.621217,-0.518962) + New Polarization: (-0.0850626,0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,-0.621217,-0.518962) + Old Polarization: (-0.0850626,0.684922,-0.723634) + New Momentum Direction: (-0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,-0.684922,-0.723634) + New Momentum Direction: (0.587169,0.621217,0.518962) + New Polarization: (-0.0850626,0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,0.621217,0.518962) + Old Polarization: (-0.0850626,0.684922,-0.723634) + New Momentum Direction: (0.587169,-0.621217,0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,-0.621217,0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (-0.587169,-0.621217,0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,-0.621217,0.518962) + Old Polarization: (0.0850626,-0.684922,-0.723634) + New Momentum Direction: (-0.587169,-0.621217,-0.518962) + New Polarization: (-0.0850626,0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,-0.621217,-0.518962) + Old Polarization: (-0.0850626,0.684922,-0.723634) + New Momentum Direction: (-0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,-0.684922,-0.723634) + New Momentum Direction: (0.587169,0.621217,0.518962) + New Polarization: (-0.0850626,0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,0.621217,0.518962) + Old Polarization: (-0.0850626,0.684922,-0.723634) + New Momentum Direction: (0.587169,-0.621217,0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.587169,-0.621217,0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (-0.587169,-0.621217,0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,-0.621217,0.518962) + Old Polarization: (0.0850626,-0.684922,-0.723634) + New Momentum Direction: (-0.587169,0.621217,0.518962) + New Polarization: (-0.0850626,-0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,0.621217,0.518962) + Old Polarization: (-0.0850626,-0.684922,0.723634) + New Momentum Direction: (-0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,0.684922,0.723634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.587169,0.621217,-0.518962) + Old Polarization: (0.0850626,0.684922,0.723634) + New Momentum Direction: (0.587169,0.621217,-0.518962) + New Polarization: (0.0850626,-0.684922,-0.723634) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1918, parentID 1) is processed with stopping code 2 +### pop requested out of 130 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.204026,0.291094,-0.934686) + Old Polarization: (0.232554,-0.94185,-0.242562) + New Momentum Direction: (0.277195,0.395487,-0.875645) + New Polarization: (0.251091,-0.909504,-0.331294) + *** FresnelRefraction *** +Track (trackID 1917, parentID 1) is processed with stopping code 2 +### pop requested out of 129 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.11607,-0.992107,-0.0474515) + Old Polarization: (0.977557,-0.10565,-0.182266) + New Momentum Direction: (-0.157279,-0.985459,-0.0642984) + New Polarization: (0.972451,-0.143201,-0.183934) + *** FresnelRefraction *** +Track (trackID 1916, parentID 1) is processed with stopping code 2 +### pop requested out of 128 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.955708,0.237679,0.173582) + Old Polarization: (-0.149119,-0.117436,0.981821) + New Momentum Direction: (0.916604,0.32286,0.235792) + New Polarization: (0.203518,-0.884456,0.419902) + *** FresnelRefraction *** +Track (trackID 1915, parentID 1) is processed with stopping code 2 +### pop requested out of 127 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1914, parentID 1) is processed with stopping code 2 +### pop requested out of 126 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.991867,0.0411218,0.120452) + Old Polarization: (-0.0991289,-0.344003,0.933721) + New Momentum Direction: (0.98521,0.0553606,0.16216) + New Polarization: (0.133505,-0.841237,-0.523924) + *** FresnelRefraction *** +Track (trackID 1913, parentID 1) is processed with stopping code 2 +### pop requested out of 125 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.714015,0.700063,0.00974678) + Old Polarization: (-0.421074,0.41826,0.804832) + New Momentum Direction: (0.332377,0.943055,0.0131299) + New Polarization: (0.606038,-0.224222,0.763179) + *** FresnelRefraction *** +Track (trackID 1912, parentID 1) is processed with stopping code 2 +### pop requested out of 124 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1911, parentID 1) is processed with stopping code 2 +### pop requested out of 123 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.959211,-0.273661,-0.0708784) + Old Polarization: (-0.146499,-0.695647,0.703287) + New Momentum Direction: (0.923091,-0.372297,-0.0964254) + New Polarization: (0.200157,0.250986,0.947071) + *** FresnelRefraction *** +Track (trackID 1910, parentID 1) is processed with stopping code 2 +### pop requested out of 122 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.994399,-0.0488395,0.0937354) + Old Polarization: (-0.105676,-0.44216,0.890689) + New Momentum Direction: (0.98963,-0.0663726,0.127386) + New Polarization: (0.143613,0.474425,-0.868502) + *** FresnelRefraction *** +Track (trackID 1909, parentID 1) is processed with stopping code 2 +### pop requested out of 121 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.932076,-0.332317,-0.144221) + Old Polarization: (-0.176148,-0.76363,0.621161) + New Momentum Direction: (0.870468,-0.451536,-0.19596) + New Polarization: (0.241244,0.0443396,0.969451) + *** FresnelRefraction *** +Track (trackID 1908, parentID 1) is processed with stopping code 2 +### pop requested out of 120 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.282929,0.692028,-0.664115) + Old Polarization: (-0.915081,0.402207,0.029265) + New Momentum Direction: (0.383074,0.211475,-0.899184) + New Polarization: (-0.774019,0.604756,-0.187521) + *** FresnelRefraction *** +Track (trackID 1907, parentID 1) is processed with stopping code 2 +### pop requested out of 119 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.994844,-0.0111738,0.100797) + Old Polarization: (-0.0967003,-0.404014,0.909627) + New Momentum Direction: (0.990617,-0.0150579,0.135834) + New Polarization: (0.130321,-0.195246,-0.972057) + *** FresnelRefraction *** +Track (trackID 1906, parentID 1) is processed with stopping code 2 +### pop requested out of 118 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.235818,0.496456,-0.835417) + Old Polarization: (-0.969507,0.179166,-0.167197) + New Momentum Direction: (0.3191,0.671786,-0.668489) + New Polarization: (-0.947659,0.218117,-0.233168) + *** FresnelRefraction *** +Track (trackID 1905, parentID 1) is processed with stopping code 2 +### pop requested out of 117 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.352586,0.784284,-0.510472) + Old Polarization: (-0.836085,0.509028,0.204577) + New Momentum Direction: (0.476964,0.543739,-0.690545) + New Polarization: (-0.711114,0.700478,0.0603902) + *** FresnelRefraction *** +Track (trackID 1904, parentID 1) is processed with stopping code 2 +### pop requested out of 116 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.366545,-0.0964841,-0.925384) + Old Polarization: (-0.821255,-0.500974,-0.273066) + New Momentum Direction: (0.494979,-0.130291,-0.859081) + New Polarization: (-0.777223,-0.508431,-0.370705) + *** FresnelRefraction *** +Track (trackID 1903, parentID 1) is processed with stopping code 2 +### pop requested out of 115 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.295175,0.0536906,-0.953933) + Old Polarization: (-0.897822,-0.325896,-0.296155) + New Momentum Direction: (0.401233,0.0729818,-0.913064) + New Polarization: (-0.858466,-0.317684,-0.402633) + *** FresnelRefraction *** +Track (trackID 1902, parentID 1) is processed with stopping code 2 +### pop requested out of 114 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.234417,0.452854,-0.860216) + Old Polarization: (-0.971872,0.12979,-0.196518) + New Momentum Direction: (0.316965,0.612322,-0.724289) + New Polarization: (-0.947428,0.169199,-0.271573) + *** FresnelRefraction *** +Track (trackID 1901, parentID 1) is processed with stopping code 2 +### pop requested out of 113 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.994758,-0.0682946,0.076114) +Old Polarization: (-0.0993279,-0.468267,0.877986) +New Polarization: (-0.106122,-0.981919,-0.156759) +Polarization Change: (-0.106122,-0.981919,-0.156759) +New Momentum Direction: (0.0678876,0.150126,-0.986333) +Momentum Change: (0.0678876,0.150126,-0.986333) + Photon at Boundary! + Old Momentum Direction: (0.0678876,0.150126,-0.986333) + Old Polarization: (-0.106122,-0.981919,-0.156759) + New Momentum Direction: (0.0917134,0.202815,-0.974913) + New Polarization: (-0.102149,-0.971958,-0.211809) + *** FresnelRefraction *** +Track (trackID 1900, parentID 1) is processed with stopping code 2 +### pop requested out of 112 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.305428,0.0225053,-0.951949) + Old Polarization: (-0.885525,-0.360837,-0.292647) + New Momentum Direction: (0.41553,0.030618,-0.909064) + New Polarization: (-0.845322,-0.35598,-0.398383) + *** FresnelRefraction *** +Track (trackID 1899, parentID 1) is processed with stopping code 2 +### pop requested out of 111 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.514708,-0.323005,-0.794193) + Old Polarization: (-0.649085,-0.752001,-0.11482) + New Momentum Direction: (0.699924,-0.439238,-0.563184) + New Polarization: (-0.615714,-0.770685,-0.164137) + *** FresnelRefraction *** +Track (trackID 1898, parentID 1) is processed with stopping code 2 +### pop requested out of 110 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1897, parentID 1) is processed with stopping code 2 +### pop requested out of 109 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.23906,0.392836,-0.887992) + Old Polarization: (-0.970347,0.0629966,-0.233362) + New Momentum Direction: (0.322028,0.529174,-0.785031) + New Polarization: (-0.942501,0.1009,-0.318609) + *** FresnelRefraction *** +Track (trackID 1896, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.23343,0.34932,-0.907461) + Old Polarization: (-0.96931,0.00957306,-0.245655) + New Momentum Direction: (0.3168,0.474079,-0.821515) + New Polarization: (-0.940535,0.045059,-0.336695) + *** FresnelRefraction *** +Track (trackID 1895, parentID 1) is processed with stopping code 2 +### pop requested out of 107 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.329854,-0.0318841,-0.943493) + Old Polarization: (-0.85948,-0.423558,-0.286169) + New Momentum Direction: (0.447799,-0.0432848,-0.893086) + New Polarization: (-0.817469,-0.424477,-0.389311) + *** FresnelRefraction *** +Track (trackID 1894, parentID 1) is processed with stopping code 2 +### pop requested out of 106 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.965929,0.194411,0.170839) + Old Polarization: (-0.139134,-0.166528,0.976171) + New Momentum Direction: (0.935933,0.264549,0.232473) + New Polarization: (0.189979,-0.935074,0.299241) + *** FresnelRefraction *** +Track (trackID 1893, parentID 1) is processed with stopping code 2 +### pop requested out of 105 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.234499,0.522667,-0.819652) + Old Polarization: (-0.967651,0.206226,-0.145337) + New Momentum Direction: (0.318394,0.709657,-0.6285) + New Polarization: (-0.947926,0.243872,-0.20485) + *** FresnelRefraction *** +Track (trackID 1892, parentID 1) is processed with stopping code 2 +### pop requested out of 104 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.549397,-0.353936,-0.756896) + Old Polarization: (-0.61005,-0.788909,-0.0739024) + New Momentum Direction: (0.746088,-0.480649,-0.460793) + New Polarization: (-0.584665,-0.804061,-0.107945) + *** FresnelRefraction *** +Track (trackID 1891, parentID 1) is processed with stopping code 2 +### pop requested out of 103 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1890, parentID 1) is processed with stopping code 2 +### pop requested out of 102 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.735951,-0.4444,-0.510769) + Old Polarization: (-0.397779,-0.894298,0.204946) + New Momentum Direction: (0.396762,-0.602515,-0.692499) + New Polarization: (0.57116,-0.428537,0.700095) + *** FresnelRefraction *** +Track (trackID 1889, parentID 1) is processed with stopping code 2 +### pop requested out of 101 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.988575,0.0628799,0.13699) + Old Polarization: (-0.110458,-0.316188,0.942244) + New Momentum Direction: (0.978874,0.0852951,0.185824) + New Polarization: (0.149937,-0.917352,-0.368759) + *** FresnelRefraction *** +Track (trackID 1888, parentID 1) is processed with stopping code 2 +### pop requested out of 100 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.277942,0.665395,-0.692819) + Old Polarization: (-0.925576,0.378481,-0.00781915) + New Momentum Direction: (0.277942,0.665395,0.692819) + New Polarization: (-0.920924,0.389713,-0.00483521) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.277942,0.665395,0.692819) + Old Polarization: (-0.920924,0.389713,-0.00483521) + New Momentum Direction: (0.277942,-0.665395,0.692819) + New Polarization: (0.920924,0.389713,0.00483521) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.277942,-0.665395,0.692819) + Old Polarization: (0.920924,0.389713,0.00483521) + New Momentum Direction: (-0.277942,-0.665395,0.692819) + New Polarization: (0.920924,-0.389713,-0.00483521) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.277942,-0.665395,0.692819) + Old Polarization: (0.920924,-0.389713,-0.00483521) + New Momentum Direction: (-0.374325,-0.896135,0.238375) + New Polarization: (0.923419,-0.38372,0.00752406) + *** FresnelRefraction *** +Track (trackID 1887, parentID 1) is processed with stopping code 2 +### pop requested out of 99 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.56163,0.811271,-0.162512) + Old Polarization: (-0.59611,0.532968,0.600498) + New Momentum Direction: (0.763022,0.607495,-0.220787) + New Polarization: (-0.425578,0.729256,0.535788) + *** FresnelRefraction *** +Track (trackID 1886, parentID 1) is processed with stopping code 2 +### pop requested out of 98 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.747545,-0.447072,-0.491225) + Old Polarization: (-0.385214,-0.894296,0.227696) + New Momentum Direction: (-0.747545,-0.447072,-0.491225) + New Polarization: (0.138861,-0.828412,0.542634) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.747545,-0.447072,-0.491225) + Old Polarization: (0.138861,-0.828412,0.542634) + New Momentum Direction: (-0.747545,-0.447072,0.491225) + New Polarization: (-0.138861,0.828412,0.542634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.747545,-0.447072,0.491225) + Old Polarization: (-0.138861,0.828412,0.542634) + New Momentum Direction: (-0.747545,0.447072,0.491225) + New Polarization: (0.138861,0.828412,-0.542634) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.747545,0.447072,0.491225) + Old Polarization: (0.138861,0.828412,-0.542634) + New Momentum Direction: (0.747545,0.447072,0.491225) + New Polarization: (-0.0425541,0.77028,-0.636285) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.747545,0.447072,0.491225) + Old Polarization: (-0.0425541,0.77028,-0.636285) + New Momentum Direction: (0.747545,0.447072,-0.491225) + New Polarization: (0.0425541,-0.77028,-0.636285) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.747545,0.447072,-0.491225) + Old Polarization: (0.0425541,-0.77028,-0.636285) + New Momentum Direction: (-0.747545,0.447072,-0.491225) + New Polarization: (0.0128028,-0.729727,-0.683619) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.747545,0.447072,-0.491225) + Old Polarization: (0.0128028,-0.729727,-0.683619) + New Momentum Direction: (-0.747545,-0.447072,-0.491225) + New Polarization: (-0.0128028,-0.729727,0.683619) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.747545,-0.447072,-0.491225) + Old Polarization: (-0.0128028,-0.729727,0.683619) + New Momentum Direction: (-0.747545,-0.447072,0.491225) + New Polarization: (0.0128028,0.729727,0.683619) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.747545,-0.447072,0.491225) + Old Polarization: (0.0128028,0.729727,0.683619) + New Momentum Direction: (0.747545,-0.447072,0.491225) + New Polarization: (-0.00384529,0.736637,0.676277) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.747545,-0.447072,0.491225) + Old Polarization: (-0.00384529,0.736637,0.676277) + New Momentum Direction: (0.747545,-0.447072,-0.491225) + New Polarization: (0.00384529,-0.736637,0.676277) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.747545,-0.447072,-0.491225) + Old Polarization: (0.00384529,-0.736637,0.676277) + New Momentum Direction: (0.747545,0.447072,-0.491225) + New Polarization: (-0.00384529,-0.736637,-0.676277) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.747545,0.447072,-0.491225) + Old Polarization: (-0.00384529,-0.736637,-0.676277) + New Momentum Direction: (0.431354,0.607248,-0.667221) + New Polarization: (0.00566669,-0.741372,-0.671071) + *** FresnelRefraction *** +Track (trackID 1885, parentID 1) is processed with stopping code 2 +### pop requested out of 97 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1884, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.369605,-0.118555,-0.921595) +Old Polarization: (-0.81338,-0.520791,-0.25921) +New Polarization: (-0.626713,-0.767986,0.132016) +Polarization Change: (-0.626713,-0.767986,0.132016) +New Momentum Direction: (0.547767,-0.31368,0.7756) +Momentum Change: (0.547767,-0.31368,0.7756) + Photon at Boundary! + Old Momentum Direction: (0.547767,-0.31368,0.7756) + Old Polarization: (-0.626713,-0.767986,0.132016) + New Momentum Direction: (-0.547767,-0.31368,0.7756) + New Polarization: (-0.626713,0.767986,-0.132016) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.547767,-0.31368,0.7756) + Old Polarization: (-0.626713,0.767986,-0.132016) + New Momentum Direction: (-0.744755,-0.426485,0.513275) + New Polarization: (-0.385717,0.90275,0.190433) + *** FresnelRefraction *** +Track (trackID 1883, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.879463,-0.397347,-0.262029) + Old Polarization: (-0.234307,-0.840622,0.488319) + New Momentum Direction: (0.763893,-0.538746,-0.355275) + New Polarization: (0.322815,-0.157695,0.933232) + *** FresnelRefraction *** +Track (trackID 1882, parentID 1) is processed with stopping code 2 +### pop requested out of 94 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.705454,-0.441766,-0.554236) + Old Polarization: (-0.433052,-0.887704,0.156358) + New Momentum Direction: (0.269423,-0.60025,-0.753068) + New Polarization: (0.638029,-0.474477,0.606458) + *** FresnelRefraction *** +Track (trackID 1881, parentID 1) is processed with stopping code 2 +### pop requested out of 93 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.972891,-0.229244,-0.0305051) + Old Polarization: (-0.129079,-0.647716,0.750868) + New Momentum Direction: (0.949435,-0.311219,-0.0414134) + New Polarization: (0.175683,0.417308,0.891622) + *** FresnelRefraction *** +Track (trackID 1880, parentID 1) is processed with stopping code 2 +### pop requested out of 92 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.839366,-0.424956,-0.338937) + Old Polarization: (-0.279864,-0.872403,0.400735) + New Momentum Direction: (0.676057,-0.576061,-0.459456) + New Polarization: (0.388479,-0.251191,0.886559) + *** FresnelRefraction *** +Track (trackID 1879, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.353183,-0.081298,-0.932015) + Old Polarization: (-0.833358,-0.480085,-0.273921) + New Momentum Direction: (0.479202,-0.110306,-0.870746) + New Polarization: (-0.790185,-0.486067,-0.373291) + *** FresnelRefraction *** +Track (trackID 1878, parentID 1) is processed with stopping code 2 +### pop requested out of 90 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1877, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.801565,-0.435783,-0.409373) + Old Polarization: (-0.320996,-0.891286,0.320266) + New Momentum Direction: (0.590101,-0.588419,-0.552759) + New Polarization: (0.447439,-0.331537,0.830591) + *** FresnelRefraction *** +Track (trackID 1876, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.991266,0.0395427,0.125812) + Old Polarization: (-0.104724,-0.343827,0.933175) + New Momentum Direction: (0.983956,0.0534946,0.170203) + New Polarization: (0.141731,-0.813811,-0.563581) + *** FresnelRefraction *** +Track (trackID 1875, parentID 1) is processed with stopping code 2 +### pop requested out of 87 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1874, parentID 1) is processed with stopping code 2 +### pop requested out of 86 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.237609,0.472446,-0.848727) + Old Polarization: (-0.970421,0.153884,-0.186018) + New Momentum Direction: (0.320577,0.637415,-0.700665) + New Polarization: (-0.946793,0.193368,-0.257276) + *** FresnelRefraction *** +Track (trackID 1873, parentID 1) is processed with stopping code 2 +### pop requested out of 85 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.271555,0.649163,-0.710524) + Old Polarization: (-0.932753,0.359419,-0.0281089) + New Momentum Direction: (0.271555,0.649163,0.710524) + New Polarization: (-0.916951,0.39876,-0.0138738) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 1872, parentID 1) is processed with stopping code 2 +### pop requested out of 84 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.983572,0.100735,0.149794) + Old Polarization: (-0.117486,-0.27278,0.954876) + New Momentum Direction: (0.969472,0.136834,0.203472) + New Polarization: (0.159789,-0.981974,-0.100966) + *** FresnelRefraction *** +Track (trackID 1871, parentID 1) is processed with stopping code 2 +### pop requested out of 83 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.846444,-0.419201,-0.328334) + Old Polarization: (-0.270378,-0.869576,0.413199) + New Momentum Direction: (0.69382,-0.566948,-0.444054) + New Polarization: (0.373757,-0.243579,0.894972) + *** FresnelRefraction *** +Track (trackID 1870, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.843565,-0.424653,-0.328737) + Old Polarization: (-0.276517,-0.868222,0.411981) + New Momentum Direction: (0.683742,-0.577027,-0.446694) + New Polarization: (0.384555,-0.235318,0.892605) + *** FresnelRefraction *** +Track (trackID 1869, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.800722,0.589969,0.103829) + Old Polarization: (-0.324934,0.282148,0.902668) + New Momentum Direction: (0.581226,0.801425,0.141044) + New Polarization: (0.456475,-0.464597,0.758802) + *** FresnelRefraction *** +Track (trackID 1868, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1867, parentID 1) is processed with stopping code 2 +### pop requested out of 79 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.556813,0.813224,-0.169194) + Old Polarization: (-0.60158,0.535267,0.592951) + New Momentum Direction: (0.756437,0.612348,-0.229853) + New Polarization: (-0.432328,0.731809,0.526828) + *** FresnelRefraction *** +Track (trackID 1866, parentID 1) is processed with stopping code 2 +### pop requested out of 78 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.925336,0.337778,0.172217) + Old Polarization: (-0.181875,-0.00310281,0.983317) + New Momentum Direction: (0.857814,0.457882,0.233452) + New Polarization: (0.248718,-0.767317,0.59107) + *** FresnelRefraction *** +Track (trackID 1865, parentID 1) is processed with stopping code 2 +### pop requested out of 77 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.860112,-0.412498,-0.300087) + Old Polarization: (-0.25627,-0.858082,0.444995) + New Momentum Direction: (0.722336,-0.559218,-0.406823) + New Polarization: (0.354271,-0.205985,0.912174) + *** FresnelRefraction *** +Track (trackID 1864, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.432619,0.820242,-0.374224) + Old Polarization: (-0.746869,0.55855,0.360844) + New Momentum Direction: (0.582331,0.638083,-0.503727) + New Polarization: (-0.608244,0.753087,0.250796) + *** FresnelRefraction *** +Track (trackID 1863, parentID 1) is processed with stopping code 2 +### pop requested out of 75 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.87527,-0.400136,-0.271649) + Old Polarization: (-0.238298,-0.845577,0.477716) + New Momentum Direction: (0.755637,-0.541908,-0.367897) + New Polarization: (0.32814,-0.172907,0.92867) + *** FresnelRefraction *** +Track (trackID 1862, parentID 1) is processed with stopping code 2 +### pop requested out of 74 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.985714,-0.167934,0.0128944) + Old Polarization: (-0.109798,-0.582646,0.805275) + New Momentum Direction: (0.973764,-0.226891,0.0174213) + New Polarization: (0.148501,0.691605,0.706845) + *** FresnelRefraction *** +Track (trackID 1861, parentID 1) is processed with stopping code 2 +### pop requested out of 73 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.314778,0.00122912,-0.949165) + Old Polarization: (-0.875706,-0.385367,-0.290915) + New Momentum Direction: (0.427831,0.00167056,-0.903857) + New Polarization: (-0.834745,-0.382784,-0.395825) + *** FresnelRefraction *** +Track (trackID 1860, parentID 1) is processed with stopping code 2 +### pop requested out of 72 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1859, parentID 1) is processed with stopping code 2 +### pop requested out of 71 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1858, parentID 1) is processed with stopping code 2 +### pop requested out of 70 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.902078,-0.369893,-0.22234) + Old Polarization: (-0.203614,-0.819011,0.536434) + New Momentum Direction: (0.813627,-0.498295,-0.299522) + New Polarization: (0.277555,-0.119772,0.953214) + *** FresnelRefraction *** +Track (trackID 1857, parentID 1) is processed with stopping code 2 +### pop requested out of 69 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1856, parentID 1) is processed with stopping code 2 +### pop requested out of 68 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1855, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1854, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.237744,0.407426,-0.881749) + Old Polarization: (-0.971086,0.0794279,-0.22513) + New Momentum Direction: (0.3205,0.549249,-0.771755) + New Polarization: (-0.94401,0.117893,-0.308133) + *** FresnelRefraction *** +Track (trackID 1853, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.878311,-0.400248,-0.261479) + Old Polarization: (-0.237435,-0.839886,0.488073) + New Momentum Direction: (0.76,-0.544104,-0.355459) + New Polarization: (0.328139,-0.150857,0.932506) + *** FresnelRefraction *** +Track (trackID 1852, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.22753,0.448065,-0.864562) + Old Polarization: (-0.973622,0.120219,-0.193927) + New Momentum Direction: (0.309536,0.609557,-0.729813) + New Polarization: (-0.949673,0.15939,-0.269659) + *** FresnelRefraction *** +Track (trackID 1851, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.940088,-0.314966,-0.130503) + Old Polarization: (-0.162669,-0.750783,0.640206) + New Momentum Direction: (0.887466,-0.425772,-0.176414) + New Polarization: (0.221361,0.0580544,0.973462) + *** FresnelRefraction *** +Track (trackID 1850, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.260923,0.638067,-0.724424) + Old Polarization: (-0.939672,0.339831,-0.0391299) + New Momentum Direction: (0.353491,0.864437,-0.357481) + New Polarization: (-0.932275,0.356957,-0.0587002) + *** FresnelRefraction *** +Track (trackID 1849, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.474051,0.831627,-0.289261) + Old Polarization: (-0.695221,0.555122,0.456627) + New Momentum Direction: (0.644399,0.655849,-0.393206) + New Polarization: (-0.545753,0.754623,0.364278) + *** FresnelRefraction *** +Track (trackID 1848, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.23879,0.32201,-0.916127) + Old Polarization: (-0.96567,-0.0206199,-0.258951) + New Momentum Direction: (0.323265,0.435925,-0.839922) + New Polarization: (-0.935449,0.0131247,-0.353218) + *** FresnelRefraction *** +Track (trackID 1847, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1846, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.357097,-0.08157,-0.930499) + Old Polarization: (-0.830998,-0.482631,-0.276603) + New Momentum Direction: (0.48301,-0.110332,-0.868636) + New Polarization: (-0.787419,-0.488627,-0.375785) + *** FresnelRefraction *** +Track (trackID 1845, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.278365,0.108997,-0.954271) + Old Polarization: (-0.917576,-0.263435,-0.297751) + New Momentum Direction: (0.378069,0.148038,-0.913865) + New Polarization: (-0.879935,-0.249319,-0.40442) + *** FresnelRefraction *** +Track (trackID 1844, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1843, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.92442,-0.340313,-0.172149) + Old Polarization: (-0.178066,-0.784308,0.594267) + New Momentum Direction: (0.857824,-0.458606,-0.231987) + New Polarization: (0.242042,-0.0377002,0.969533) + *** FresnelRefraction *** +Track (trackID 1842, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.424438,0.825505,-0.372013) + Old Polarization: (-0.752007,0.550219,0.362966) + New Momentum Direction: (0.576245,0.64253,-0.50507) + New Polarization: (-0.613523,0.748368,0.252062) + *** FresnelRefraction *** +Track (trackID 1841, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.676659,-0.432692,-0.595744) + Old Polarization: (-0.465608,-0.878249,0.109029) + New Momentum Direction: (-0.676659,-0.432692,-0.595744) + New Polarization: (0.45951,-0.880367,0.117493) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676659,-0.432692,-0.595744) + Old Polarization: (0.45951,-0.880367,0.117493) + New Momentum Direction: (-0.676659,-0.432692,0.595744) + New Polarization: (-0.45951,0.880367,0.117493) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676659,-0.432692,0.595744) + Old Polarization: (-0.45951,0.880367,0.117493) + New Momentum Direction: (-0.676659,0.432692,0.595744) + New Polarization: (0.45951,0.880367,-0.117493) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.676659,0.432692,0.595744) + Old Polarization: (0.45951,0.880367,-0.117493) + New Momentum Direction: (0.676659,0.432692,0.595744) + New Polarization: (-0.45339,0.882375,-0.125903) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.676659,0.432692,0.595744) + Old Polarization: (-0.45339,0.882375,-0.125903) + New Momentum Direction: (0.676659,0.432692,-0.595744) + New Polarization: (0.45339,-0.882375,-0.125903) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.676659,0.432692,-0.595744) + Old Polarization: (0.45339,-0.882375,-0.125903) + New Momentum Direction: (0.676659,-0.432692,-0.595744) + New Polarization: (-0.45339,-0.882375,0.125903) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.676659,-0.432692,-0.595744) + Old Polarization: (-0.45339,-0.882375,0.125903) + New Momentum Direction: (-0.676659,-0.432692,-0.595744) + New Polarization: (0.447251,-0.884275,0.134255) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 1840, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.969315,0.189352,0.156762) + Old Polarization: (-0.124362,-0.172349,0.977154) + New Momentum Direction: (0.943759,0.254681,0.210846) + New Polarization: (0.167758,-0.918369,0.358407) + *** FresnelRefraction *** +Track (trackID 1839, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.896,0.414795,0.158521) + Old Polarization: (-0.212443,0.0869351,0.973299) + New Momentum Direction: (0.800274,0.560124,0.214062) + New Polarization: (0.290607,-0.674551,0.678622) + *** FresnelRefraction *** +Track (trackID 1838, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.93799,-0.32095,-0.131021) + Old Polarization: (-0.16845,-0.752308,0.636913) + New Momentum Direction: (0.882412,-0.43558,-0.177816) + New Polarization: (0.230231,0.0701825,0.970602) + *** FresnelRefraction *** +Track (trackID 1837, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.420785,0.826427,-0.374109) + Old Polarization: (-0.755067,0.547643,0.3605) + New Momentum Direction: (0.572549,0.642704,-0.509038) + New Polarization: (-0.616957,0.746644,0.248769) + *** FresnelRefraction *** +Track (trackID 1836, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1835, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.920219,-0.348139,-0.178876) + Old Polarization: (-0.185013,-0.789627,0.585029) + New Momentum Direction: (0.84874,-0.470356,-0.241672) + New Polarization: (0.25231,-0.0414419,0.966758) + *** FresnelRefraction *** +Track (trackID 1834, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.697859,0.716211,0.00588369) + Old Polarization: (-0.441826,0.424011,0.790572) + New Momentum Direction: (0.948914,0.315432,0.00800035) + New Polarization: (-0.212227,0.619268,0.755954) + *** FresnelRefraction *** +Track (trackID 1833, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.984382,0.101314,0.14397) + Old Polarization: (-0.111601,-0.273344,0.95542) + New Momentum Direction: (0.971286,0.13692,0.194567) + New Polarization: (0.151003,-0.986745,-0.0594261) + *** FresnelRefraction *** +Track (trackID 1832, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1831, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.239207,0.307826,-0.920882) + Old Polarization: (-0.964117,-0.0371674,-0.262862) + New Momentum Direction: (0.324183,0.417179,-0.849039) + New Polarization: (-0.933475,-0.00446096,-0.358615) + *** FresnelRefraction *** +Track (trackID 1830, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.317361,0.023867,-0.948004) + Old Polarization: (-0.880403,-0.364058,-0.303896) + New Momentum Direction: (0.427183,0.0321261,-0.903594) + New Polarization: (-0.838793,-0.359013,-0.409312) + *** FresnelRefraction *** +Track (trackID 1829, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.417173,-0.182703,-0.890273) + Old Polarization: (-0.763742,-0.60144,-0.234453) + New Momentum Direction: (0.562605,-0.246396,-0.789154) + New Polarization: (-0.719309,-0.616418,-0.320348) + *** FresnelRefraction *** +Track (trackID 1828, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.504666,0.823848,-0.258042) + Old Polarization: (-0.66315,0.561312,0.495138) + New Momentum Direction: (0.679874,0.645697,-0.347629) + New Polarization: (-0.508638,0.756692,0.410737) + *** FresnelRefraction *** +Track (trackID 1827, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.518399,0.824442,-0.227065) + Old Polarization: (-0.645661,0.551463,0.528215) + New Momentum Direction: (0.702768,0.641376,-0.307821) + New Polarization: (-0.486499,0.748967,0.449852) + *** FresnelRefraction *** +Track (trackID 1826, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.270394,0.140846,-0.952391) +Old Polarization: (-0.927421,-0.227416,-0.296937) +New Polarization: (-0.826443,-0.504789,-0.249358) +Polarization Change: (-0.826443,-0.504789,-0.249358) +New Momentum Direction: (0.466521,-0.861917,0.198639) +Momentum Change: (0.466521,-0.861917,0.198639) + Photon at Boundary! + Old Momentum Direction: (0.466521,-0.861917,0.198639) + Old Polarization: (-0.826443,-0.504789,-0.249358) + New Momentum Direction: (0.633048,-0.725669,0.269544) + New Polarization: (-0.700855,-0.68513,-0.198493) + *** FresnelRefraction *** +Track (trackID 1825, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.563858,0.809574,-0.163261) + Old Polarization: (-0.593882,0.53484,0.601041) + New Momentum Direction: (0.764244,0.605777,-0.221282) + New Polarization: (-0.423405,0.730093,0.536369) + *** FresnelRefraction *** +Track (trackID 1824, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.964978,-0.255947,-0.0575233) + Old Polarization: (-0.137165,-0.679193,0.721029) + New Momentum Direction: (0.934566,-0.347131,-0.0780166) + New Polarization: (0.186687,0.291776,0.938091) + *** FresnelRefraction *** +Track (trackID 1823, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.783743,0.614497,0.0902174) + Old Polarization: (-0.344492,0.309236,0.886396) + New Momentum Direction: (0.535934,0.835306,0.122635) + New Polarization: (0.486856,-0.42445,0.763423) + *** FresnelRefraction *** +Track (trackID 1822, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.497142,0.827795,-0.260009) + Old Polarization: (-0.670138,0.556667,0.490956) + New Momentum Direction: (0.673393,0.650004,-0.35219) + New Polarization: (-0.51615,0.75443,0.405494) + *** FresnelRefraction *** +Track (trackID 1821, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.227731,0.434586,-0.871363) + Old Polarization: (-0.973716,0.105185,-0.202021) + New Momentum Direction: (0.309709,0.591027,-0.744827) + New Polarization: (-0.949046,0.144171,-0.280226) + *** FresnelRefraction *** +Track (trackID 1820, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1819, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.738551,-0.445444,-0.506085) + Old Polarization: (-0.39507,-0.894205,0.210517) + New Momentum Direction: (0.403954,-0.604397,-0.686677) + New Polarization: (0.567184,-0.423466,0.706384) + *** FresnelRefraction *** +Track (trackID 1818, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1817, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.278297,0.669458,-0.68875) + Old Polarization: (-0.92422,0.381853,-0.00228365) + New Momentum Direction: (0.37519,0.902542,-0.211308) + New Polarization: (-0.923685,0.383136,-0.00360438) + *** FresnelRefraction *** +Track (trackID 1816, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1815, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.267236,0.63992,-0.720477) + Old Polarization: (-0.936848,0.347581,-0.0387743) + New Momentum Direction: (0.267236,0.63992,0.720477) + New Polarization: (-0.915735,0.401427,-0.0168832) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.267236,0.63992,0.720477) + Old Polarization: (-0.915735,0.401427,-0.0168832) + New Momentum Direction: (0.267236,-0.63992,0.720477) + New Polarization: (0.915735,0.401427,0.0168832) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.267236,-0.63992,0.720477) + Old Polarization: (0.915735,0.401427,0.0168832) + New Momentum Direction: (-0.267236,-0.63992,0.720477) + New Polarization: (0.915735,-0.401427,-0.0168832) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.267236,-0.63992,0.720477) + Old Polarization: (0.915735,-0.401427,-0.0168832) + New Momentum Direction: (-0.360332,-0.862847,0.354479) + New Polarization: (0.926112,-0.376406,0.025185) + *** FresnelRefraction *** +Track (trackID 1814, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.841263,-0.424586,-0.334669) + Old Polarization: (-0.278157,-0.870751,0.405489) + New Momentum Direction: (0.679775,-0.575999,-0.454017) + New Polarization: (0.386296,-0.245023,0.889235) + *** FresnelRefraction *** +Track (trackID 1813, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.366419,0.798724,-0.47726) + Old Polarization: (-0.818292,0.520773,0.243298) + New Momentum Direction: (0.49717,0.577481,-0.647563) + New Polarization: (-0.690889,0.714974,0.107163) + *** FresnelRefraction *** +Track (trackID 1812, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.864891,-0.411633,-0.287265) + Old Polarization: (-0.253045,-0.851795,0.458708) + New Momentum Direction: (0.730603,-0.559935,-0.390759) + New Polarization: (0.350828,-0.183131,0.918359) + *** FresnelRefraction *** +Track (trackID 1811, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.760882,-0.445634,-0.471666) + Old Polarization: (-0.36952,-0.895079,0.249577) + New Momentum Direction: (-0.760882,-0.445634,-0.471666) + New Polarization: (0.0999532,-0.798697,0.593374) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.760882,-0.445634,-0.471666) + Old Polarization: (0.0999532,-0.798697,0.593374) + New Momentum Direction: (-0.760882,-0.445634,0.471666) + New Polarization: (-0.0999532,0.798697,0.593374) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.760882,-0.445634,0.471666) + Old Polarization: (-0.0999532,0.798697,0.593374) + New Momentum Direction: (-0.760882,0.445634,0.471666) + New Polarization: (0.0999532,0.798697,-0.593374) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1810, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.829784,0.543518,0.126671) + Old Polarization: (-0.292004,0.229407,0.928497) + New Momentum Direction: (0.652071,0.738371,0.172082) + New Polarization: (0.407224,-0.532555,0.741993) + *** FresnelRefraction *** +Track (trackID 1809, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.631388,0.771437,-0.0789579) + Old Polarization: (-0.516797,0.494504,0.698847) + New Momentum Direction: (0.854011,0.509176,-0.106798) + New Polarization: (-0.326773,0.684716,0.651448) + *** FresnelRefraction *** +Track (trackID 1808, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.264865,0.660343,-0.702705) + Old Polarization: (-0.932328,0.361422,-0.0117812) + New Momentum Direction: (0.264865,0.660343,0.702705) + New Polarization: (-0.925538,0.378591,-0.00691203) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.264865,0.660343,0.702705) + Old Polarization: (-0.925538,0.378591,-0.00691203) + New Momentum Direction: (0.264865,-0.660343,0.702705) + New Polarization: (0.925538,0.378591,0.00691203) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1807, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.696852,0.717215,0.000116723) + Old Polarization: (-0.442253,0.429568,0.787327) + New Momentum Direction: (0.944484,0.328558,0.000158202) + New Polarization: (-0.216608,0.622305,0.752209) + *** FresnelRefraction *** +Track (trackID 1806, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.462221,-0.245822,-0.852011) + Old Polarization: (-0.71218,-0.675371,-0.191504) + New Momentum Direction: (0.622763,-0.331203,-0.708852) + New Polarization: (-0.669749,-0.694024,-0.264135) + *** FresnelRefraction *** +Track (trackID 1805, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1804, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.333789,-0.0447711,-0.941584) + Old Polarization: (-0.853973,-0.437312,-0.281937) + New Momentum Direction: (0.453794,-0.0608673,-0.889026) + New Polarization: (-0.811839,-0.439581,-0.384299) + *** FresnelRefraction *** +Track (trackID 1803, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.302442,0.736,-0.605667) + Old Polarization: (-0.889366,0.446472,0.0984398) + New Momentum Direction: (0.411226,0.390781,-0.823519) + New Polarization: (-0.765449,0.638604,-0.0791944) + *** FresnelRefraction *** +Track (trackID 1802, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1801, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.42972,0.82182,-0.374101) + Old Polarization: (-0.74888,0.555845,0.360854) + New Momentum Direction: (0.579979,0.639287,-0.504912) + New Polarization: (-0.610359,0.751505,0.250403) + *** FresnelRefraction *** +Track (trackID 1800, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.630308,-0.413901,-0.656808) + Old Polarization: (-0.518299,-0.85422,0.040917) + New Momentum Direction: (0.630308,-0.413901,0.656808) + New Polarization: (0.518299,0.85422,0.040917) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.630308,-0.413901,0.656808) + Old Polarization: (0.518299,0.85422,0.040917) + New Momentum Direction: (-0.630308,-0.413901,0.656808) + New Polarization: (0.518299,-0.85422,-0.040917) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1799, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.541424,0.819149,-0.189354) + Old Polarization: (-0.618896,0.540755,0.569695) + New Momentum Direction: (0.736089,0.626019,-0.257436) + New Polarization: (-0.453396,0.738398,0.499199) + *** FresnelRefraction *** +Track (trackID 1798, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.490637,-0.290422,-0.821542) + Old Polarization: (-0.677549,-0.719994,-0.150118) + New Momentum Direction: (0.664614,-0.393404,-0.635234) + New Polarization: (-0.639216,-0.739585,-0.210752) + *** FresnelRefraction *** +Track (trackID 1797, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.291705,0.70345,-0.648125) + Old Polarization: (-0.907073,0.41846,0.0459288) + New Momentum Direction: (0.394024,0.279836,-0.875464) + New Polarization: (-0.775486,0.612483,-0.153251) + *** FresnelRefraction *** +Track (trackID 1796, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.282273,0.108349,-0.953196) + Old Polarization: (-0.915977,-0.264891,-0.301361) + New Momentum Direction: (0.382122,0.146676,-0.912397) + New Polarization: (-0.877861,-0.250825,-0.40798) + *** FresnelRefraction *** +Track (trackID 1795, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.364662,0.789489,-0.49369) + Old Polarization: (-0.824445,0.520196,0.222905) + New Momentum Direction: (0.491688,0.561372,-0.665661) + New Polarization: (-0.69815,0.711015,0.0839347) + *** FresnelRefraction *** +Track (trackID 1794, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.772039,-0.446941,-0.451885) +Old Polarization: (-0.357654,-0.893237,0.272418) +New Polarization: (0.402908,-0.589329,0.700255) +Polarization Change: (0.402908,-0.589329,0.700255) +New Momentum Direction: (0.718175,0.677859,0.157262) +Momentum Change: (0.718175,0.677859,0.157262) + Photon at Boundary! + Old Momentum Direction: (0.718175,0.677859,0.157262) + Old Polarization: (0.402908,-0.589329,0.700255) + New Momentum Direction: (0.325056,0.921228,0.213723) + New Polarization: (0.58922,-0.374057,0.716171) + *** FresnelRefraction *** +Track (trackID 1793, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.955132,-0.282853,-0.0878506) + Old Polarization: (-0.147389,-0.711191,0.687375) + New Momentum Direction: (0.915965,-0.383201,-0.119017) + New Polarization: (0.200627,0.180495,0.962897) + *** FresnelRefraction *** +Track (trackID 1792, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.694974,-0.439921,-0.568754) + Old Polarization: (-0.445088,-0.884438,0.140234) + New Momentum Direction: (-0.694974,-0.439921,-0.568754) + New Polarization: (0.330279,-0.897922,0.290951) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.694974,-0.439921,-0.568754) + Old Polarization: (0.330279,-0.897922,0.290951) + New Momentum Direction: (-0.694974,-0.439921,0.568754) + New Polarization: (-0.330279,0.897922,0.290951) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.694974,-0.439921,0.568754) + Old Polarization: (-0.330279,0.897922,0.290951) + New Momentum Direction: (-0.694974,0.439921,0.568754) + New Polarization: (0.330279,0.897922,-0.290951) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1791, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1790, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.60801,-0.394642,-0.688899) + Old Polarization: (-0.543557,-0.839372,0.00110852) + New Momentum Direction: (0.823396,-0.534443,-0.19076) + New Polarization: (-0.544731,-0.838609,-0.00178088) + *** FresnelRefraction *** +Track (trackID 1789, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 91 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 17 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 109 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.469266,-0.453314,-0.757823) + Old Polarization: (-0.625266,-0.77657,0.0773456) + New Momentum Direction: (0.469266,-0.453314,0.757823) + New Polarization: (-0.678458,-0.734389,-0.019176) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.469266,-0.453314,0.757823) + Old Polarization: (-0.678458,-0.734389,-0.019176) + New Momentum Direction: (-0.469266,-0.453314,0.757823) + New Polarization: (-0.678458,0.734389,0.019176) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.469266,-0.453314,0.757823) + Old Polarization: (-0.678458,0.734389,0.019176) + New Momentum Direction: (-0.469266,0.453314,0.757823) + New Polarization: (0.678458,0.734389,-0.019176) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2058, parentID 1) is processed with stopping code 2 +### pop requested out of 108 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.829521,-0.349276,0.435777) + Old Polarization: (0.196549,0.912958,0.357598) + New Momentum Direction: (0.658347,-0.470755,0.587341) + New Polarization: (0.272905,0.876485,0.396607) + *** FresnelRefraction *** +Track (trackID 2057, parentID 1) is processed with stopping code 2 +### pop requested out of 107 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2056, parentID 1) is processed with stopping code 2 +### pop requested out of 106 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.399618,-0.481337,0.780141) + Old Polarization: (-0.881722,-0.434621,0.183496) + New Momentum Direction: (0.542704,-0.653683,0.527419) + New Polarization: (-0.83588,-0.48188,0.262862) + *** FresnelRefraction *** +Track (trackID 2055, parentID 1) is processed with stopping code 2 +### pop requested out of 105 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.391735,-0.377827,0.838922) + Old Polarization: (-0.2681,-0.825353,-0.496905) + New Momentum Direction: (-0.531358,-0.512492,0.674545) + New Polarization: (0.721154,0.144171,0.677608) + *** FresnelRefraction *** +Track (trackID 2054, parentID 1) is processed with stopping code 2 +### pop requested out of 104 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.418007,-0.39486,-0.818142) + Old Polarization: (0.651682,0.757784,-0.0327709) + New Momentum Direction: (0.565981,-0.53464,-0.627556) + New Polarization: (0.658438,0.751219,-0.0461604) + *** FresnelRefraction *** +Track (trackID 2053, parentID 1) is processed with stopping code 2 +### pop requested out of 103 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2052, parentID 1) is processed with stopping code 2 +### pop requested out of 102 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.798986,0.59945,-0.0477622) + Old Polarization: (-0.43981,0.636676,0.633412) + New Momentum Direction: (0.580435,0.811734,-0.0646762) + New Polarization: (0.608571,-0.379645,0.696787) + *** FresnelRefraction *** +Track (trackID 2051, parentID 1) is processed with stopping code 2 +### pop requested out of 101 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.237619,0.935636,-0.261002) +Old Polarization: (-0.960755,0.265975,0.0787824) +New Polarization: (-0.820249,0.534329,-0.204167) +Polarization Change: (-0.820249,0.534329,-0.204167) +New Momentum Direction: (0.520267,0.548574,-0.654514) +Momentum Change: (0.520267,0.548574,-0.654514) + Photon at Boundary! + Old Momentum Direction: (0.520267,0.548574,-0.654514) + Old Polarization: (-0.820249,0.534329,-0.204167) + New Momentum Direction: (0.520267,-0.548574,-0.654514) + New Polarization: (0.820249,0.534329,0.204167) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.520267,-0.548574,-0.654514) + Old Polarization: (0.820249,0.534329,0.204167) + New Momentum Direction: (0.520267,-0.548574,0.654514) + New Polarization: (-0.820249,-0.534329,0.204167) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.520267,-0.548574,0.654514) + Old Polarization: (-0.820249,-0.534329,0.204167) + New Momentum Direction: (-0.520267,-0.548574,0.654514) + New Polarization: (-0.820249,0.534329,-0.204167) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2050, parentID 1) is processed with stopping code 2 +### pop requested out of 100 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.262891,-0.562078,-0.784191) + Old Polarization: (-0.875178,0.203217,-0.439052) + New Momentum Direction: (0.354858,-0.758709,-0.546293) + New Polarization: (-0.790877,0.0680074,-0.608184) + *** FresnelRefraction *** +Track (trackID 2049, parentID 1) is processed with stopping code 2 +### pop requested out of 99 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.686251,-0.466722,0.557881) + Old Polarization: (0.666381,0.0959996,-0.739405) + New Momentum Direction: (0.194204,-0.629445,0.752386) + New Polarization: (0.919866,-0.149596,-0.362585) + *** FresnelRefraction *** +Track (trackID 2048, parentID 1) is processed with stopping code 2 +### pop requested out of 98 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.768144,-0.563559,-0.303901) + Old Polarization: (0.617757,0.527549,0.583154) + New Momentum Direction: (0.497183,-0.763685,-0.411819) + New Polarization: (0.840656,0.306535,0.446467) + *** FresnelRefraction *** +Track (trackID 2047, parentID 1) is processed with stopping code 2 +### pop requested out of 97 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2046, parentID 1) is processed with stopping code 2 +### pop requested out of 96 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.896897,0.441257,-0.0294555) + Old Polarization: (-0.001399,-0.0637741,-0.997963) + New Momentum Direction: (0.802147,0.5958,-0.0397719) + New Polarization: (0.00192064,-0.0691794,-0.997602) + *** FresnelRefraction *** +Track (trackID 2045, parentID 1) is processed with stopping code 2 +### pop requested out of 95 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.657083,-0.510161,0.554958) + Old Polarization: (0.172057,0.615262,0.769317) + New Momentum Direction: (0.657083,-0.510161,0.554958) + New Polarization: (0.172057,-0.615262,-0.769317) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2044, parentID 1) is processed with stopping code 2 +### pop requested out of 94 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.466235,0.884623,-0.00820386) + Old Polarization: (0.213288,0.103403,-0.971502) + New Momentum Direction: (-0.631783,0.775065,-0.0111168) + New Polarization: (0.192261,0.142793,-0.9709) + *** FresnelRefraction *** +Track (trackID 2043, parentID 1) is processed with stopping code 2 +### pop requested out of 93 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.215813,-0.382268,-0.898497) + Old Polarization: (0.5463,0.715413,-0.435592) + New Momentum Direction: (-0.29152,-0.516368,-0.80522) + New Polarization: (0.499171,0.63596,-0.588544) + *** FresnelRefraction *** +Track (trackID 2042, parentID 1) is processed with stopping code 2 +### pop requested out of 92 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.00593938,0.511232,-0.859422) + Old Polarization: (-0.97489,-0.194283,-0.108833) + New Momentum Direction: (-0.00802995,0.691177,-0.722641) + New Polarization: (-0.974009,-0.168997,-0.150816) + *** FresnelRefraction *** +Track (trackID 2041, parentID 1) is processed with stopping code 2 +### pop requested out of 91 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.281904,0.0438398,-0.958441) + Old Polarization: (-0.632509,-0.74265,-0.220008) + New Momentum Direction: (0.382684,0.0595124,-0.921961) + New Polarization: (-0.606725,-0.736385,-0.29937) + *** FresnelRefraction *** +Track (trackID 2040, parentID 1) is processed with stopping code 2 +### pop requested out of 90 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.347751,0.931254,-0.108787) + Old Polarization: (-0.55599,0.298251,0.775836) + New Momentum Direction: (0.471347,0.869534,-0.147452) + New Polarization: (-0.511269,0.405626,0.757675) + *** FresnelRefraction *** +Track (trackID 2039, parentID 1) is processed with stopping code 2 +### pop requested out of 89 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.968648,0.24344,-0.0495743) + Old Polarization: (0.171096,-0.509005,0.843587) + New Momentum Direction: (0.941403,0.330501,-0.0673036) + New Polarization: (0.232814,-0.49236,0.838677) + *** FresnelRefraction *** +Track (trackID 2038, parentID 1) is processed with stopping code 2 +### pop requested out of 88 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.893804,-0.102418,-0.436607) + Old Polarization: (0.0858718,-0.916472,0.390776) + New Momentum Direction: (0.794233,-0.138765,-0.591556) + New Polarization: (0.118356,-0.919593,0.374621) + *** FresnelRefraction *** +Track (trackID 2037, parentID 1) is processed with stopping code 2 +### pop requested out of 87 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2036, parentID 1) is processed with stopping code 2 +### pop requested out of 86 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.312111,0.93825,-0.149247) + Old Polarization: (-0.600951,0.316647,0.733889) + New Momentum Direction: (0.420266,0.884867,-0.200965) + New Polarization: (-0.559147,0.426968,0.710671) + *** FresnelRefraction *** +Track (trackID 2035, parentID 1) is processed with stopping code 2 +### pop requested out of 85 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2034, parentID 1) is processed with stopping code 2 +### pop requested out of 84 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2033, parentID 1) is processed with stopping code 2 +### pop requested out of 83 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.68068,0.730021,0.0611895) + Old Polarization: (-0.161296,0.067869,0.98457) + New Momentum Direction: (0.916829,0.390682,0.082418) + New Polarization: (-0.131227,0.0998851,0.986307) + *** FresnelRefraction *** +Track (trackID 2032, parentID 1) is processed with stopping code 2 +### pop requested out of 82 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0134657,0.841212,-0.540537) + Old Polarization: (-0.944386,0.188332,0.269566) + New Momentum Direction: (0.0183126,0.677713,-0.735099) + New Polarization: (-0.939304,0.263588,0.219611) + *** FresnelRefraction *** +Track (trackID 2031, parentID 1) is processed with stopping code 2 +### pop requested out of 81 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.301838,0.941939,-0.14712) + Old Polarization: (-0.60945,0.309312,0.729998) + New Momentum Direction: (0.409513,0.890201,-0.199603) + New Polarization: (-0.568791,0.420193,0.707047) + *** FresnelRefraction *** +Track (trackID 2030, parentID 1) is processed with stopping code 2 +### pop requested out of 80 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.959443,-4.74292e-05,-0.281901) + Old Polarization: (0.168799,-0.800812,0.574637) + New Momentum Direction: (0.924847,-6.39914e-05,-0.38034) + New Polarization: (0.22854,-0.799244,0.555859) + *** FresnelRefraction *** +Track (trackID 2029, parentID 1) is processed with stopping code 2 +### pop requested out of 79 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.954552,0.297349,-0.0203662) + Old Polarization: (0.157904,-0.446583,0.880699) + New Momentum Direction: (0.914919,0.402694,-0.0275814) + New Polarization: (0.214828,-0.42796,0.877895) + *** FresnelRefraction *** +Track (trackID 2028, parentID 1) is processed with stopping code 2 +### pop requested out of 78 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2027, parentID 1) is processed with stopping code 2 +### pop requested out of 77 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.368213,0.924483,-0.0987446) + Old Polarization: (-0.533335,0.297021,0.792043) + New Momentum Direction: (0.49685,0.857547,-0.133242) + New Polarization: (-0.486885,0.402538,0.775181) + *** FresnelRefraction *** +Track (trackID 2026, parentID 1) is processed with stopping code 2 +### pop requested out of 76 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2025, parentID 1) is processed with stopping code 2 +### pop requested out of 75 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.126252,0.232327,-0.964409) + Old Polarization: (-0.819056,-0.52406,-0.233471) + New Momentum Direction: (0.170625,0.313981,-0.933972) + New Polarization: (-0.805098,-0.502047,-0.315858) + *** FresnelRefraction *** +Track (trackID 2024, parentID 1) is processed with stopping code 2 +### pop requested out of 74 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0466197,0.366687,-0.929176) + Old Polarization: (-0.911452,-0.365019,-0.18978) + New Momentum Direction: (0.0630978,0.496295,-0.865858) + New Polarization: (-0.905397,-0.336519,-0.258866) + *** FresnelRefraction *** +Track (trackID 2023, parentID 1) is processed with stopping code 2 +### pop requested out of 73 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.766359,0.637221,0.0815061) + Old Polarization: (-0.0657671,-0.0483862,0.996661) + New Momentum Direction: (0.4889,0.86529,0.110678) + New Polarization: (0.0954349,-0.179167,0.979179) + *** FresnelRefraction *** +Track (trackID 2022, parentID 1) is processed with stopping code 2 +### pop requested out of 72 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.970349,0.0226678,-0.240641) + Old Polarization: (0.171497,-0.766143,0.619366) + New Momentum Direction: (0.944494,0.0308102,-0.327081) + New Polarization: (0.233575,-0.763097,0.602599) + *** FresnelRefraction *** +Track (trackID 2021, parentID 1) is processed with stopping code 2 +### pop requested out of 71 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.249239,0.0858811,-0.964626) + Old Polarization: (-0.674848,-0.699,-0.236599) + New Momentum Direction: (0.336182,0.115839,-0.934646) + New Polarization: (-0.650672,-0.688909,-0.319422) + *** FresnelRefraction *** +Track (trackID 2020, parentID 1) is processed with stopping code 2 +### pop requested out of 70 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2019, parentID 1) is processed with stopping code 2 +### pop requested out of 69 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.439507,0.897301,-0.0410412) + Old Polarization: (-0.448234,0.258686,0.855668) + New Momentum Direction: (0.595579,0.801369,-0.0556153) + New Polarization: (-0.397929,0.354466,0.846171) + *** FresnelRefraction *** +Track (trackID 2018, parentID 1) is processed with stopping code 2 +### pop requested out of 68 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.148638,0.934868,-0.322379) + Old Polarization: (-0.792898,0.307481,0.526088) + New Momentum Direction: (0.20081,0.877489,-0.435532) + New Polarization: (-0.76962,0.416381,0.484058) + *** FresnelRefraction *** +Track (trackID 2017, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.981669,0.102246,-0.16085) + Old Polarization: (0.187254,-0.674743,0.713903) + New Momentum Direction: (0.965987,0.138721,-0.218232) + New Polarization: (0.254076,-0.666152,0.701204) + *** FresnelRefraction *** +Track (trackID 2016, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.581013,0.812903,0.0401472) + Old Polarization: (-0.282934,0.155481,0.946453) + New Momentum Direction: (0.790049,0.610609,0.0545913) + New Polarization: (-0.235501,0.220075,0.946629) + *** FresnelRefraction *** +Track (trackID 2015, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.479123,0.877575,-0.0174084) + Old Polarization: (-0.401666,0.236843,0.88463) + New Momentum Direction: (0.648624,0.760744,-0.023567) + New Polarization: (-0.350261,0.325842,0.878148) + *** FresnelRefraction *** +Track (trackID 2014, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0300821,0.654732,-0.755263) + Old Polarization: (-0.999504,-0.0267207,0.0166463) + New Momentum Direction: (-0.0407825,0.887623,-0.458762) + New Polarization: (-0.997997,-0.0584101,-0.0242944) + *** FresnelRefraction *** +Track (trackID 2013, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.923703,0.38245,0.0224835) + Old Polarization: (0.120781,-0.346402,0.930278) + New Momentum Direction: (0.854668,0.51828,0.0304687) + New Polarization: (0.16541,-0.327457,0.930275) + *** FresnelRefraction *** +Track (trackID 2012, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.898943,-0.0966646,-0.427268) + Old Polarization: (0.0930188,-0.910988,0.401806) + New Momentum Direction: (0.805217,-0.130848,-0.578364) + New Polarization: (0.127915,-0.914059,0.384883) + *** FresnelRefraction *** +Track (trackID 2011, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2010, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0233903,0.571115,-0.820536) + Old Polarization: (-0.990355,-0.125352,-0.0590173) + New Momentum Direction: (-0.0233903,0.571115,0.820536) + New Polarization: (-0.99886,-0.0475209,0.00460222) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 2009, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.411931,0.909245,-0.0598832) + Old Polarization: (-0.480633,0.272641,0.833462) + New Momentum Direction: (0.558243,0.825699,-0.0811529) + New Polarization: (-0.431591,0.372537,0.82155) + *** FresnelRefraction *** +Track (trackID 2008, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2007, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.216201,0.949101,-0.22905) + Old Polarization: (-0.708063,0.313943,0.632524) + New Momentum Direction: (0.294044,0.9036,-0.31152) + New Polarization: (-0.676527,0.426999,0.599986) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.294044,0.9036,-0.31152) + Old Polarization: (-0.676527,0.426999,0.599986) + New Momentum Direction: (0.711425,0.664387,-0.22905) + New Polarization: (0.527805,-0.28994,0.798346) + *** FresnelRefraction *** + +** Photon absorbed! ** +Track (trackID 2006, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.857161,-0.129313,-0.498551) + Old Polarization: (0.0420965,-0.947141,0.318044) + New Momentum Direction: (0.715814,-0.175319,-0.675924) + New Polarization: (0.058633,-0.94946,0.308362) + *** FresnelRefraction *** +Track (trackID 2005, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.912748,0.40705,0.0346744) + Old Polarization: (0.105823,-0.317562,0.942314) + New Momentum Direction: (0.832142,0.552562,0.0470698) + New Polarization: (0.14554,-0.299503,0.94293) + *** FresnelRefraction *** +Track (trackID 2004, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.733099,0.676424,0.070826) + Old Polarization: (-0.0992805,0.00341026,0.995054) + New Momentum Direction: (0.399591,0.911709,0.0954619) + New Polarization: (0.145725,-0.16599,0.975301) + *** FresnelRefraction *** +Track (trackID 2003, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.978729,0.07363,-0.19149) + Old Polarization: (0.186301,-0.70986,0.679258) + New Momentum Direction: (0.960624,0.0997197,-0.259341) + New Polarization: (0.252438,-0.703208,0.664661) + *** FresnelRefraction *** +Track (trackID 2002, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0322739,0.659283,-0.751202) + Old Polarization: (-0.999477,-0.0227447,0.022979) + New Momentum Direction: (-0.0438346,0.895442,-0.443016) + New Polarization: (-0.99728,-0.0655193,-0.0337534) + *** FresnelRefraction *** +Track (trackID 2001, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0140246,0.539023,-0.842174) + Old Polarization: (-0.982946,-0.161884,-0.0872431) + New Momentum Direction: (-0.0189816,0.729538,-0.683677) + New Polarization: (-0.982693,-0.139635,-0.121719) + *** FresnelRefraction *** +Track (trackID 2000, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.353479,0.928668,-0.112375) + Old Polarization: (-0.551265,0.303854,0.777033) + New Momentum Direction: (0.353479,-0.928668,-0.112375) + New Polarization: (-0.363626,-0.247092,0.898177) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.353479,-0.928668,-0.112375) + Old Polarization: (-0.363626,-0.247092,0.898177) + New Momentum Direction: (-0.353479,-0.928668,-0.112375) + New Polarization: (-0.363626,0.247092,-0.898177) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.353479,-0.928668,-0.112375) + Old Polarization: (-0.363626,0.247092,-0.898177) + New Momentum Direction: (-0.47639,-0.866092,-0.151449) + New Polarization: (0.777918,-0.33492,-0.531669) + *** FresnelRefraction *** +Track (trackID 1999, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.085152,0.294724,-0.951781) + Old Polarization: (-0.866347,-0.44992,-0.216829) + New Momentum Direction: (0.115217,0.398783,-0.909779) + New Polarization: (-0.856408,-0.424154,-0.294378) + *** FresnelRefraction *** +Track (trackID 1998, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.981496,0.0985898,-0.164149) + Old Polarization: (0.18694,-0.678962,0.709974) + New Momentum Direction: (0.96566,0.133771,-0.222726) + New Polarization: (0.253678,-0.670622,0.697075) + *** FresnelRefraction *** +Track (trackID 1997, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.927948,-0.0651788,-0.366966) + Old Polarization: (0.125619,-0.872287,0.472584) + New Momentum Direction: (0.863037,-0.0883381,-0.497356) + New Polarization: (0.17191,-0.874456,0.453623) + *** FresnelRefraction *** +Track (trackID 1996, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1995, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.430498,-0.067506,-0.900063) + Old Polarization: (-0.458811,-0.875119,-0.153813) + New Momentum Direction: (0.583418,-0.0914852,-0.807003) + New Polarization: (-0.43013,-0.87765,-0.211466) + *** FresnelRefraction *** +Track (trackID 1994, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.706667,-0.162828,-0.688556) + Old Polarization: (-0.134634,-0.986324,0.0950692) + New Momentum Direction: (0.282136,-0.220782,-0.933625) + New Polarization: (0.206768,-0.936295,0.283898) + *** FresnelRefraction *** +Track (trackID 1993, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0921792,0.278001,-0.956148) + Old Polarization: (-0.855692,-0.468936,-0.218838) + New Momentum Direction: (0.125,0.376983,-0.917747) + New Polarization: (-0.845068,-0.444202,-0.297566) + *** FresnelRefraction *** +Track (trackID 1992, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.975428,0.0515372,-0.214205) + Old Polarization: (0.182136,-0.735668,0.652395) + New Momentum Direction: (0.954427,0.0698126,-0.290163) + New Polarization: (0.246978,-0.730573,0.636604) + *** FresnelRefraction *** +Track (trackID 1991, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.165033,0.939567,-0.299964) + Old Polarization: (-0.772959,0.312118,0.552373) + New Momentum Direction: (0.223092,0.886457,-0.405492) + New Polarization: (-0.747591,0.422538,0.512416) + *** FresnelRefraction *** +Track (trackID 1990, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.214432,0.117371,-0.969661) + Old Polarization: (-0.713697,-0.65893,-0.237587) + New Momentum Direction: (0.290208,0.158847,-0.943688) + New Polarization: (-0.692168,-0.646115,-0.321618) + *** FresnelRefraction *** +Track (trackID 1989, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.386598,-0.0431473,-0.921238) + Old Polarization: (-0.509592,-0.842558,-0.174389) + New Momentum Direction: (0.525636,-0.0586649,-0.848684) + New Polarization: (-0.480801,-0.843493,-0.23948) + *** FresnelRefraction *** +Track (trackID 1988, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0120556,0.834338,-0.551121) + Old Polarization: (-0.949016,0.183175,0.256547) + New Momentum Direction: (0.0163567,0.663783,-0.747746) + New Polarization: (-0.944232,0.256235,0.206808) + *** FresnelRefraction *** +Track (trackID 1987, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.246059,0.0779725,-0.966113) + Old Polarization: (-0.6742,-0.702346,-0.228396) + New Momentum Direction: (0.334161,0.105891,-0.936549) + New Polarization: (-0.650587,-0.693059,-0.310491) + *** FresnelRefraction *** +Track (trackID 1986, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.837686,-0.130924,-0.530228) +Old Polarization: (0.0266715,-0.959877,0.27915) +New Polarization: (-0.773911,0.496393,-0.393263) +Polarization Change: (-0.773911,0.496393,-0.393263) +New Momentum Direction: (-0.557403,-0.828679,0.0509315) +Momentum Change: (-0.557403,-0.828679,0.0509315) + Photon at Boundary! + Old Momentum Direction: (-0.557403,-0.828679,0.0509315) + Old Polarization: (-0.773911,0.496393,-0.393263) + New Momentum Direction: (-0.750246,-0.657595,0.0685521) + New Polarization: (0.543956,-0.672862,-0.501368) + *** FresnelRefraction *** +Track (trackID 1985, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0727564,0.893117,-0.443901) + Old Polarization: (-0.886083,0.262175,0.382259) + New Momentum Direction: (0.0727564,-0.893117,-0.443901) + New Polarization: (-0.983984,-0.136903,0.114167) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0727564,-0.893117,-0.443901) + Old Polarization: (-0.983984,-0.136903,0.114167) + New Momentum Direction: (0.0727564,-0.893117,0.443901) + New Polarization: (0.983984,0.136903,0.114167) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0727564,-0.893117,0.443901) + Old Polarization: (0.983984,0.136903,0.114167) + New Momentum Direction: (0.0980102,-0.795496,0.59798) + New Polarization: (0.898737,-0.187301,-0.396472) + *** FresnelRefraction *** +Track (trackID 1984, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.76036,-0.164026,-0.628448) + Old Polarization: (-0.0739633,-0.983159,0.167117) + New Momentum Direction: (0.468829,-0.223067,-0.854658) + New Polarization: (0.108028,-0.945842,0.306125) + *** FresnelRefraction *** +Track (trackID 1983, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.684347,-0.16395,-0.710485) + Old Polarization: (-0.162114,-0.984217,0.0709649) + New Momentum Direction: (0.92998,-0.222796,-0.292401) + New Polarization: (-0.263962,-0.958316,-0.109338) + *** FresnelRefraction *** +Track (trackID 1982, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.666769,-0.156436,-0.728661) + Old Polarization: (-0.180164,-0.982556,0.0460838) + New Momentum Direction: (0.901899,-0.211602,-0.376568) + New Polarization: (-0.254919,-0.964529,-0.0685537) + *** FresnelRefraction *** +Track (trackID 1981, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.290616,0.0331206,-0.956266) + Old Polarization: (-0.621404,-0.753429,-0.214945) + New Momentum Direction: (0.395215,0.0450413,-0.917484) + New Polarization: (-0.595291,-0.748123,-0.293155) + *** FresnelRefraction *** +Track (trackID 1980, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1979, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0342303,0.389853,-0.920241) + Old Polarization: (-0.924375,-0.337701,-0.177449) + New Momentum Direction: (0.046392,0.528364,-0.847749) + New Polarization: (-0.919554,-0.30893,-0.242863) + *** FresnelRefraction *** +Track (trackID 1978, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.00940595,0.464713,-0.885411) + Old Polarization: (-0.958191,-0.249039,-0.140889) + New Momentum Direction: (0.00940595,0.464713,0.885411) + New Polarization: (-0.993886,-0.0930714,0.0594074) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.00940595,0.464713,0.885411) + Old Polarization: (-0.993886,-0.0930714,0.0594074) + New Momentum Direction: (0.00940595,-0.464713,0.885411) + New Polarization: (0.993886,-0.0930714,-0.0594074) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.00940595,-0.464713,0.885411) + Old Polarization: (0.993886,-0.0930714,-0.0594074) + New Momentum Direction: (0.012703,-0.627607,0.778427) + New Polarization: (0.989227,0.121428,0.0817585) + *** FresnelRefraction *** +Track (trackID 1977, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.900149,-0.099671,-0.424026) +Old Polarization: (0.0902485,-0.909669,0.405411) +New Polarization: (-0.382471,-0.890377,0.246871) +Polarization Change: (-0.382471,-0.890377,0.246871) +New Momentum Direction: (0.87979,-0.269316,0.391711) +Momentum Change: (0.87979,-0.269316,0.391711) + Photon at Boundary! + Old Momentum Direction: (0.87979,-0.269316,0.391711) + Old Polarization: (-0.382471,-0.890377,0.246871) + New Momentum Direction: (0.76355,-0.365848,0.532115) + New Polarization: (0.523462,-0.13185,-0.841786) + *** FresnelRefraction *** +Track (trackID 1976, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.120357,0.235326,-0.964435) + Old Polarization: (-0.823232,-0.519274,-0.229441) + New Momentum Direction: (0.163112,0.318921,-0.93364) + New Polarization: (-0.809875,-0.497175,-0.311319) + *** FresnelRefraction *** +Track (trackID 1975, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.759579,0.645087,0.0830794) +Old Polarization: (-0.0748377,-0.0402022,0.996385) +New Polarization: (0.344893,0.0678411,0.936187) +Polarization Change: (0.344893,0.0678411,0.936187) +New Momentum Direction: (-0.905707,-0.237834,0.350899) +Momentum Change: (-0.905707,-0.237834,0.350899) + +** Photon absorbed! ** +Track (trackID 1974, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1973, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.961167,0.273872,-0.0339404) + Old Polarization: (0.165652,-0.474206,0.86469) + New Momentum Direction: (0.927531,0.370909,-0.0459659) + New Polarization: (0.225115,-0.456253,0.860904) + *** FresnelRefraction *** +Track (trackID 1972, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.614596,0.787817,0.0401867) + Old Polarization: (-0.239693,0.13797,0.960995) + New Momentum Direction: (0.82696,0.559655,0.0540726) + New Polarization: (-0.19458,0.194629,0.961383) + *** FresnelRefraction *** +Track (trackID 1971, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.641694,0.764863,0.0566852) + Old Polarization: (-0.210087,0.104211,0.972113) + New Momentum Direction: (0.868587,0.489561,0.0767281) + New Polarization: (-0.170788,0.150399,0.973761) + *** FresnelRefraction *** +Track (trackID 1970, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1969, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.619282,0.783884,0.0448903) + Old Polarization: (-0.23507,0.130552,0.963171) + New Momentum Direction: (0.619282,-0.783884,0.0448903) + New Polarization: (-0.056041,0.0128983,0.998345) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.619282,-0.783884,0.0448903) + Old Polarization: (-0.056041,0.0128983,0.998345) + New Momentum Direction: (-0.619282,-0.783884,0.0448903) + New Polarization: (-0.056041,-0.0128983,-0.998345) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1968, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.689172,0.721011,0.0720105) +Old Polarization: (-0.155633,0.0502308,0.986537) +New Polarization: (0.371779,-0.282466,0.884304) +Polarization Change: (0.371779,-0.282466,0.884304) +New Momentum Direction: (0.755896,-0.460861,-0.465004) +Momentum Change: (0.755896,-0.460861,-0.465004) + Photon at Boundary! + Old Momentum Direction: (0.755896,-0.460861,-0.465004) + Old Polarization: (0.371779,-0.282466,0.884304) + New Momentum Direction: (0.459059,-0.625381,-0.631002) + New Polarization: (0.529807,-0.377431,0.759507) + *** FresnelRefraction *** +Track (trackID 1967, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.308562,0.0165491,-0.95106) +Old Polarization: (-0.600264,-0.772231,-0.208187) +New Polarization: (-0.673198,-0.670066,-0.312754) +Polarization Change: (-0.673198,-0.670066,-0.312754) +New Momentum Direction: (-0.392742,0.682357,-0.616557) +Momentum Change: (-0.392742,0.682357,-0.616557) + Photon at Boundary! + Old Momentum Direction: (-0.392742,0.682357,-0.616557) + Old Polarization: (-0.673198,-0.670066,-0.312754) + New Momentum Direction: (-0.392742,0.682357,0.616557) + New Polarization: (0.673198,0.670066,-0.312754) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 1966, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1965, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.704222,-0.165803,-0.690348) + Old Polarization: (-0.139182,-0.985722,0.0947638) + New Momentum Direction: (-0.704222,-0.165803,-0.690348) + New Polarization: (0.081287,-0.984784,0.153598) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.704222,-0.165803,-0.690348) + Old Polarization: (0.081287,-0.984784,0.153598) + New Momentum Direction: (-0.957399,-0.225411,-0.180491) + New Polarization: (0.26599,-0.931705,-0.247337) + *** FresnelRefraction *** +Track (trackID 1964, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.809153,0.582431,0.0777517) + Old Polarization: (-0.014871,-0.111981,0.993599) + New Momentum Direction: (0.603746,0.790167,0.105483) + New Polarization: (0.0210821,-0.148101,0.988747) + *** FresnelRefraction *** +Track (trackID 1963, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.340649,0.933223,-0.114249) + Old Polarization: (-0.564221,0.300116,0.769146) + New Momentum Direction: (0.461857,0.873324,-0.1549) + New Polarization: (-0.520088,0.408127,0.750294) + *** FresnelRefraction *** +Track (trackID 1962, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0168515,0.839804,-0.542628) + Old Polarization: (-0.944813,0.190961,0.266201) + New Momentum Direction: (0.0228384,0.677239,-0.735409) + New Polarization: (-0.939407,0.26621,0.215979) + *** FresnelRefraction *** +Track (trackID 1961, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.668759,0.740484,0.066672) + Old Polarization: (-0.179256,0.0735611,0.981048) + New Momentum Direction: (0.907008,0.41129,0.0904243) + New Polarization: (-0.147282,0.108657,0.983108) + *** FresnelRefraction *** +Track (trackID 1960, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.00972767,0.461132,-0.887278) + Old Polarization: (-0.956848,-0.253421,-0.142197) + New Momentum Direction: (0.013147,0.62322,-0.781936) + New Polarization: (-0.954517,-0.225131,-0.195483) + *** FresnelRefraction *** +Track (trackID 1959, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0243361,0.568325,-0.822444) + Old Polarization: (-0.989801,-0.129207,-0.0599967) + New Momentum Direction: (-0.033063,0.772125,-0.634611) + New Polarization: (-0.990085,-0.112038,-0.0847319) + *** FresnelRefraction *** +Track (trackID 1958, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + +** Photon absorbed! ** +Track (trackID 1957, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.8179,0.57121,0.068991) + Old Polarization: (0.00145765,-0.121966,0.992533) + New Momentum Direction: (0.631141,0.770071,0.0930096) + New Polarization: (0.00204169,-0.121558,0.992582) + *** FresnelRefraction *** +Track (trackID 1956, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.623349,-0.148995,-0.767618) + Old Polarization: (-0.231682,-0.972791,0.000679594) + New Momentum Direction: (0.623349,-0.148995,0.767618) + New Polarization: (-0.232327,-0.972638,-0.000126155) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.623349,-0.148995,0.767618) + Old Polarization: (-0.232327,-0.972638,-0.000126155) + New Momentum Direction: (-0.623349,-0.148995,0.767618) + New Polarization: (-0.232327,0.972638,0.000126155) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.623349,-0.148995,0.767618) + Old Polarization: (-0.232327,0.972638,0.000126155) + New Momentum Direction: (-0.843708,-0.201665,0.497482) + New Polarization: (-0.232373,0.972627,0.000182067) + *** FresnelRefraction *** +Track (trackID 1955, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.509009,0.860738,0.00635327) + Old Polarization: (-0.366941,0.210307,0.90616) + New Momentum Direction: (0.692641,0.72123,0.00864532) + New Polarization: (-0.31596,0.292617,0.902521) + *** FresnelRefraction *** +Track (trackID 1954, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.880265,0.47178,0.0505756) + Old Polarization: (0.0734039,-0.240712,0.967817) + New Momentum Direction: (0.7676,0.637277,0.0683173) + New Polarization: (0.101147,-0.225703,0.968931) + *** FresnelRefraction *** +Track (trackID 1953, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.318485,0.937672,-0.13906) + Old Polarization: (-0.591976,0.311317,0.743402) + New Momentum Direction: (0.430128,0.883017,-0.187806) + New Polarization: (-0.549654,0.421185,0.721445) + *** FresnelRefraction *** +Track (trackID 1952, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.258537,0.946776,-0.191763) + Old Polarization: (-0.661452,0.31818,0.679149) + New Momentum Direction: (0.350042,0.900034,-0.259634) + New Polarization: (-0.625134,0.430869,0.650814) + *** FresnelRefraction *** +Track (trackID 1951, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 48 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 16 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.917634,-0.183595,-0.352478) + Old Polarization: (0.048679,0.932145,-0.358797) + New Momentum Direction: (0.841798,-0.249363,-0.478742) + New Polarization: (0.0669749,0.928297,-0.365757) + *** FresnelRefraction *** +Track (trackID 2122, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.968871,0.182885,0.166858) + Old Polarization: (0.0650781,-0.462145,0.884413) + New Momentum Direction: (-0.94192,0.248095,0.226354) + New Polarization: (-0.0886338,-0.833742,0.544994) + *** FresnelRefraction *** +Track (trackID 2121, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2120, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.107342,0.99398,0.0219386) + Old Polarization: (0.652654,-0.0538015,-0.755743) + New Momentum Direction: (0.145577,0.988899,0.029753) + New Polarization: (-0.301655,0.0730082,-0.950618) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.145577,0.988899,0.029753) + Old Polarization: (-0.301655,0.0730082,-0.950618) + New Momentum Direction: (0.0701785,-0.997487,-0.00970597) + New Polarization: (0.304888,0.0121841,0.95231) + *** LambertianReflection *** + Photon at Boundary! + Old Momentum Direction: (0.0701785,-0.997487,-0.00970597) + Old Polarization: (0.304888,0.0121841,0.95231) + New Momentum Direction: (0.0517466,-0.998635,-0.00715677) + New Polarization: (-0.0351955,-0.00898556,0.99934) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (0.0517466,-0.998635,-0.00715677) + Old Polarization: (-0.0351955,-0.00898556,0.99934) + New Momentum Direction: (0.0701785,-0.997487,-0.00970597) + New Polarization: (-0.0350294,-0.0121882,0.999312) + *** FresnelRefraction *** +Track (trackID 2119, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.327145,0.8379,0.436921) + Old Polarization: (-0.882797,0.435936,-0.175015) + New Momentum Direction: (0.441908,0.675566,0.590193) + New Polarization: (-0.798934,0.595588,-0.0835387) + *** FresnelRefraction *** +Track (trackID 2118, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.1502,0.381778,0.911968) + Old Polarization: (-0.628,-0.675592,0.386254) + New Momentum Direction: (0.202861,0.515633,0.832449) + New Polarization: (-0.597265,-0.608518,0.522475) + *** FresnelRefraction *** +Track (trackID 2117, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.161704,-0.20308,-0.965718) + Old Polarization: (0.0399167,0.97645,-0.212021) + New Momentum Direction: (-0.218667,-0.27462,-0.936359) + New Polarization: (0.0271042,0.957502,-0.28715) + *** FresnelRefraction *** +Track (trackID 2116, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.842412,0.253859,0.475287) + Old Polarization: (-0.23248,0.624508,-0.745615) + New Momentum Direction: (-0.681909,0.344599,0.645176) + New Polarization: (-0.323838,0.648666,-0.688739) + *** FresnelRefraction *** +Track (trackID 2115, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2114, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.159493,0.932176,-0.324977) + Old Polarization: (0.649564,0.148796,0.745605) + New Momentum Direction: (0.216848,0.87049,-0.441842) + New Polarization: (0.657912,0.204062,0.724921) + *** FresnelRefraction *** +Track (trackID 2113, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.726732,-0.372366,0.577238) + Old Polarization: (0.112813,0.764219,0.635014) + New Momentum Direction: (0.726732,-0.372366,0.577238) + New Polarization: (-0.0472006,0.811271,0.582762) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.726732,-0.372366,0.577238) + Old Polarization: (-0.0472006,0.811271,0.582762) + New Momentum Direction: (0.726732,-0.372366,-0.577238) + New Polarization: (0.0472006,-0.811271,0.582762) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.726732,-0.372366,-0.577238) + Old Polarization: (0.0472006,-0.811271,0.582762) + New Momentum Direction: (0.726732,0.372366,-0.577238) + New Polarization: (-0.0472006,-0.811271,-0.582762) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.726732,0.372366,-0.577238) + Old Polarization: (-0.0472006,-0.811271,-0.582762) + New Momentum Direction: (0.364972,0.504687,-0.78236) + New Polarization: (0.0706697,-0.85292,-0.517236) + *** FresnelRefraction *** +Track (trackID 2112, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.835068,-0.258538,-0.485613) + Old Polarization: (-0.490791,-0.748914,-0.445254) + New Momentum Direction: (0.670859,-0.348503,-0.654595) + New Polarization: (0.665843,-0.10556,0.738586) + *** FresnelRefraction *** +Track (trackID 2111, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.796044,-0.601991,0.0626161) + Old Polarization: (-0.353798,0.546778,0.758855) + New Momentum Direction: (-0.568704,-0.818128,0.0850976) + New Polarization: (-0.496858,0.424133,0.757128) + *** FresnelRefraction *** +Track (trackID 2110, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2109, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.29178,-0.313914,0.903506) + Old Polarization: (-0.941376,-0.0729902,-0.329369) + New Momentum Direction: (-0.395527,-0.425531,0.81393) + New Polarization: (-0.0356875,0.892646,0.449342) + *** FresnelRefraction *** +Track (trackID 2108, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.645172,0.155199,0.748108) +Old Polarization: (0.156103,0.985273,-0.0697766) +New Polarization: (-0.454346,-0.725994,0.516239) +Polarization Change: (-0.454346,-0.725994,0.516239) +New Momentum Direction: (0.382132,-0.682316,-0.623233) +Momentum Change: (0.382132,-0.682316,-0.623233) + Photon at Boundary! + Old Momentum Direction: (0.382132,-0.682316,-0.623233) + Old Polarization: (-0.454346,-0.725994,0.516239) + New Momentum Direction: (0.518256,-0.130293,-0.845242) + New Polarization: (-0.149487,-0.986913,0.0604741) + *** FresnelRefraction *** +Track (trackID 2107, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2106, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.179658,-0.378375,0.90805) + Old Polarization: (0.703539,0.595754,0.38744) + New Momentum Direction: (-0.243307,-0.512424,0.823543) + New Polarization: (0.666401,0.528624,0.525801) + *** FresnelRefraction *** +Track (trackID 2105, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.915882,-0.0926768,0.390605) + Old Polarization: (-0.203275,0.946095,-0.252159) + New Momentum Direction: (-0.83858,-0.125765,0.530063) + New Polarization: (-0.278592,0.935138,-0.218869) + *** FresnelRefraction *** +Track (trackID 2104, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0493705,-0.537281,0.841957) + Old Polarization: (0.864356,0.399404,0.305557) + New Momentum Direction: (-0.0668708,-0.72773,0.682596) + New Polarization: (0.848434,0.31854,0.42272) + *** FresnelRefraction *** +Track (trackID 2103, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0524058,-0.9781,0.201431) + Old Polarization: (0.861609,-0.146261,-0.486044) + New Momentum Direction: (-0.0709252,-0.959506,0.272614) + New Polarization: (0.857586,-0.198236,-0.474605) + *** FresnelRefraction *** +Track (trackID 2102, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.927735,-0.372882,-0.0163266) + Old Polarization: (-0.229911,0.605385,-0.762004) + New Momentum Direction: (0.927735,-0.372882,-0.0163266) + New Polarization: (0.163042,0.444224,-0.880955) + *** FresnelReflection *** + +** Photon absorbed! ** +Track (trackID 2101, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.921585,-0.0951731,0.376328) + Old Polarization: (-0.207292,0.940332,-0.269827) + New Momentum Direction: (-0.849331,-0.129421,0.511749) + New Polarization: (-0.284396,0.928932,-0.237075) + *** FresnelRefraction *** +Track (trackID 2100, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.778568,-0.0509614,0.625487) + Old Polarization: (-0.0353707,0.998676,0.0373395) + New Momentum Direction: (-0.525399,-0.0690943,0.848046) + New Polarization: (-0.0508437,0.997466,0.0497685) + *** FresnelRefraction *** +Track (trackID 2099, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2098, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2097, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.680696,-0.0736548,0.728854) +Old Polarization: (0.0797195,0.981576,0.173646) +New Polarization: (-0.564049,0.806445,-0.177471) +Polarization Change: (-0.564049,0.806445,-0.177471) +New Momentum Direction: (-0.692349,-0.579005,-0.430588) +Momentum Change: (-0.692349,-0.579005,-0.430588) + Photon at Boundary! + Old Momentum Direction: (-0.692349,-0.579005,-0.430588) + Old Polarization: (-0.564049,0.806445,-0.177471) + New Momentum Direction: (0.692349,-0.579005,-0.430588) + New Polarization: (-0.441408,0.132199,-0.887514) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.692349,-0.579005,-0.430588) + Old Polarization: (-0.441408,0.132199,-0.887514) + New Momentum Direction: (0.692349,0.579005,-0.430588) + New Polarization: (0.441408,0.132199,0.887514) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.692349,0.579005,-0.430588) + Old Polarization: (0.441408,0.132199,0.887514) + New Momentum Direction: (0.692349,0.579005,0.430588) + New Polarization: (-0.441408,-0.132199,0.887514) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.692349,0.579005,0.430588) + Old Polarization: (-0.441408,-0.132199,0.887514) + New Momentum Direction: (0.23969,0.779041,0.579348) + New Polarization: (0.64645,-0.573285,0.503435) + *** FresnelRefraction *** +Track (trackID 2096, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.733446,-0.0513326,0.677807) +Old Polarization: (0.0222945,0.994791,0.0994635) +New Polarization: (-0.301417,0.608003,0.734493) +Polarization Change: (-0.301417,0.608003,0.734493) +New Momentum Direction: (-0.302976,-0.791469,0.530832) +Momentum Change: (-0.302976,-0.791469,0.530832) + Photon at Boundary! + Old Momentum Direction: (-0.302976,-0.791469,0.530832) + Old Polarization: (-0.301417,0.608003,0.734493) + New Momentum Direction: (-0.302976,-0.791469,-0.530832) + New Polarization: (0.301417,-0.608003,0.734493) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.302976,-0.791469,-0.530832) + Old Polarization: (0.301417,-0.608003,0.734493) + New Momentum Direction: (-0.411758,-0.556777,-0.721425) + New Polarization: (0.190378,-0.826739,0.529395) + *** FresnelRefraction *** +Track (trackID 2095, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2094, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0254692,-0.969705,0.242948) + Old Polarization: (0.891339,-0.132063,-0.433675) + New Momentum Direction: (-0.0345634,-0.943454,0.329698) + New Polarization: (0.888997,-0.179746,-0.42116) + *** FresnelRefraction *** +Track (trackID 2093, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.962121,-0.226513,0.15171) + Old Polarization: (-0.272576,0.78877,-0.550949) + New Momentum Direction: (-0.930182,-0.305009,0.204284) + New Polarization: (-0.367035,0.762291,-0.533102) + *** FresnelRefraction *** +Track (trackID 2092, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0493927,-0.888345,0.456513) + Old Polarization: (0.984738,-0.0330586,-0.170874) + New Momentum Direction: (0.06697,-0.782553,0.618972) + New Polarization: (0.985341,-0.0456843,-0.164367) + *** FresnelRefraction *** +Track (trackID 2091, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2090, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2089, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2088, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2087, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2086, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.950634,-0.150159,0.271563) + Old Polarization: (-0.253352,0.880892,-0.399803) + New Momentum Direction: (-0.90793,-0.202811,0.366784) + New Polarization: (-0.342967,0.862529,-0.372046) + *** FresnelRefraction *** +Track (trackID 2085, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2084, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.357032,-0.927896,-0.107412) + Old Polarization: (0.484969,-0.0858587,-0.870306) + New Momentum Direction: (-0.482547,-0.863755,-0.145173) + New Polarization: (0.472604,-0.117224,-0.873444) + *** FresnelRefraction *** +Track (trackID 2083, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.92965,-0.367921,-0.0196373) + Old Polarization: (-0.225062,0.609262,-0.760359) + New Momentum Direction: (-0.866971,-0.497651,-0.0265614) + New Polarization: (-0.306414,0.574329,-0.759116) + *** FresnelRefraction *** +Track (trackID 2082, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.641306,-0.740098,-0.202438) + Old Polarization: (0.13494,0.150937,-0.97929) + New Momentum Direction: (-0.871252,-0.406548,-0.275025) + New Polarization: (0.38653,-0.222947,-0.894924) + *** FresnelRefraction *** +Track (trackID 2081, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.818266,-0.555635,-0.147343) + Old Polarization: (-0.0895025,0.376342,-0.922147) + New Momentum Direction: (-0.630929,-0.749921,-0.198864) + New Polarization: (-0.125416,0.351533,-0.927737) + *** FresnelRefraction *** +Track (trackID 2080, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2079, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.305042,-0.257594,0.91684) + Old Polarization: (0.546437,0.741135,0.390033) + New Momentum Direction: (-0.4151,-0.350534,0.839534) + New Polarization: (0.490878,0.690647,0.531079) + *** FresnelRefraction *** +Track (trackID 2078, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.952838,-0.300136,0.0449219) + Old Polarization: (-0.249777,0.691516,-0.677803) + New Momentum Direction: (-0.911389,-0.407013,0.0609184) + New Polarization: (-0.339453,0.659763,-0.670436) + *** FresnelRefraction *** +Track (trackID 2077, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.752766,-0.0564837,0.65586) + Old Polarization: (-0.00684882,0.99693,0.0779964) + New Momentum Direction: (-0.457097,-0.0763155,0.886137) + New Polarization: (-0.00995438,0.996689,0.0807016) + *** FresnelRefraction *** +Track (trackID 2076, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.880546,-0.464427,-0.094582) + Old Polarization: (-0.166497,0.489942,-0.855708) + New Momentum Direction: (-0.768386,-0.627114,-0.127714) + New Polarization: (-0.228841,0.45559,-0.860273) + *** FresnelRefraction *** +Track (trackID 2075, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2074, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2073, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2072, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.943015,-0.332614,0.00948897) + Old Polarization: (-0.236957,0.651245,-0.720924) + New Momentum Direction: (-0.892294,-0.451271,0.0128741) + New Polarization: (-0.322812,0.617838,-0.716986) + *** FresnelRefraction *** +Track (trackID 2071, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.350222,-0.92994,-0.112053) + Old Polarization: (0.491495,-0.080615,-0.867141) + New Momentum Direction: (-0.476243,-0.866011,-0.152372) + New Polarization: (0.479867,-0.110761,-0.870322) + *** FresnelRefraction *** +Track (trackID 2070, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.945272,-0.325385,0.0241937) + Old Polarization: (-0.246219,0.662701,-0.707251) + New Momentum Direction: (-0.897595,-0.439608,0.0326867) + New Polarization: (-0.333755,0.629277,-0.701867) + *** FresnelRefraction *** +Track (trackID 2069, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.578851,-0.100956,0.80916) + Old Polarization: (0.209677,0.940513,0.267341) + New Momentum Direction: (-0.782758,-0.136519,0.607167) + New Polarization: (0.129825,0.918354,0.373859) + *** FresnelRefraction *** +Track (trackID 2068, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.697172,-0.0573808,0.714604) + Old Polarization: (0.0667908,0.987257,0.144436) + New Momentum Direction: (-0.697172,-0.0573808,-0.714604) + New Polarization: (-0.156369,0.984963,0.0734644) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.697172,-0.0573808,-0.714604) + Old Polarization: (-0.156369,0.984963,0.0734644) + New Momentum Direction: (-0.224853,-0.0779901,-0.971267) + New Polarization: (-0.246344,0.96896,-0.020775) + *** FresnelRefraction *** +Track (trackID 2067, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2066, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2065, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.831696,-0.0519579,0.552795) + Old Polarization: (-0.0978192,0.993751,-0.0537678) + New Momentum Direction: (-0.656034,-0.0706267,0.751419) + New Polarization: (-0.137677,0.990105,-0.0271389) + *** FresnelRefraction *** +Track (trackID 2064, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0565796,-0.860218,0.506778) + Old Polarization: (0.994062,0.00128001,-0.10881) + New Momentum Direction: (0.0766918,-0.722674,0.686921) + New Polarization: (0.993615,-0.00178112,-0.112807) + *** FresnelRefraction *** +Track (trackID 2063, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.950283,-0.308718,0.0406956) + Old Polarization: (-0.251229,0.682901,-0.685952) + New Momentum Direction: (-0.907049,-0.417415,0.0550242) + New Polarization: (-0.340508,0.650428,-0.678968) + *** FresnelRefraction *** +Track (trackID 2062, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0244025,-0.93475,0.354468) + Old Polarization: (0.950981,-0.087637,-0.296571) + New Momentum Direction: (0.0331535,-0.875772,0.481585) + New Polarization: (0.951254,-0.120177,-0.284031) + *** FresnelRefraction *** +Track (trackID 2061, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.963438,-0.225895,0.14408) + Old Polarization: (-0.267627,0.785707,-0.55771) + New Momentum Direction: (-0.93208,-0.305416,0.1948) + New Polarization: (-0.361844,0.759435,-0.540674) + *** FresnelRefraction *** +Track (trackID 2060, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2059, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 45 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 22 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 68 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.510485,0.561702,0.651073) + Old Polarization: (0.166215,-0.678423,0.715622) + New Momentum Direction: (-0.510485,0.561702,-0.651073) + New Polarization: (-0.166215,0.678423,0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.510485,0.561702,-0.651073) + Old Polarization: (-0.166215,0.678423,0.715622) + New Momentum Direction: (-0.510485,-0.561702,-0.651073) + New Polarization: (0.166215,0.678423,-0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.510485,-0.561702,-0.651073) + Old Polarization: (0.166215,0.678423,-0.715622) + New Momentum Direction: (0.510485,-0.561702,-0.651073) + New Polarization: (0.166215,-0.678423,0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.510485,-0.561702,-0.651073) + Old Polarization: (0.166215,-0.678423,0.715622) + New Momentum Direction: (0.510485,-0.561702,0.651073) + New Polarization: (-0.166215,0.678423,0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.510485,-0.561702,0.651073) + Old Polarization: (-0.166215,0.678423,0.715622) + New Momentum Direction: (0.510485,0.561702,0.651073) + New Polarization: (0.166215,0.678423,-0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.510485,0.561702,0.651073) + Old Polarization: (0.166215,0.678423,-0.715622) + New Momentum Direction: (-0.510485,0.561702,0.651073) + New Polarization: (0.166215,-0.678423,0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.510485,0.561702,0.651073) + Old Polarization: (0.166215,-0.678423,0.715622) + New Momentum Direction: (-0.510485,0.561702,-0.651073) + New Polarization: (-0.166215,0.678423,0.715622) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.510485,0.561702,-0.651073) + Old Polarization: (-0.166215,0.678423,0.715622) + New Momentum Direction: (-0.510485,-0.561702,-0.651073) + New Polarization: (0.166215,0.678423,-0.715622) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2189, parentID 1) is processed with stopping code 2 +### pop requested out of 67 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.833804,-0.509967,-0.211436) + Old Polarization: (-0.247735,0.687903,-0.682215) + New Momentum Direction: (-0.663511,-0.69112,-0.286544) + New Polarization: (-0.344997,0.622476,-0.702496) + *** FresnelRefraction *** +Track (trackID 2188, parentID 1) is processed with stopping code 2 +### pop requested out of 66 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2187, parentID 1) is processed with stopping code 2 +### pop requested out of 65 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.373018,-0.14652,-0.916182) + Old Polarization: (0.911168,-0.244114,-0.331937) + New Momentum Direction: (-0.506204,-0.198835,-0.839179) + New Polarization: (0.852618,-0.261625,-0.452321) + *** FresnelRefraction *** +Track (trackID 2186, parentID 1) is processed with stopping code 2 +### pop requested out of 64 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.571092,0.374874,0.73029) + Old Polarization: (0.543346,-0.839487,0.00602623) + New Momentum Direction: (0.771363,0.506334,0.385519) + New Polarization: (0.545609,-0.837992,0.00892608) + *** FresnelRefraction *** +Track (trackID 2185, parentID 1) is processed with stopping code 2 +### pop requested out of 63 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.498173,-0.417414,-0.759993) + Old Polarization: (0.856623,0.372628,0.356854) + New Momentum Direction: (0.670251,-0.561595,-0.485154) + New Polarization: (0.312397,0.80649,-0.501978) + *** FresnelRefraction *** +Track (trackID 2184, parentID 1) is processed with stopping code 2 +### pop requested out of 62 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.248175,-0.761025,-0.599375) + Old Polarization: (0.359338,0.64691,-0.672595) + New Momentum Direction: (0.336865,-0.473946,-0.813571) + New Polarization: (-0.116534,-0.878416,0.46347) + *** FresnelRefraction *** +Track (trackID 2183, parentID 1) is processed with stopping code 2 +### pop requested out of 61 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.768688,-0.585509,-0.257484) +Old Polarization: (-0.0486472,0.454906,-0.88921) +New Polarization: (0.337292,-0.275319,0.900241) +Polarization Change: (0.337292,-0.275319,0.900241) +New Momentum Direction: (0.802964,0.583313,-0.122452) +Momentum Change: (0.802964,0.583313,-0.122452) + +** Photon absorbed! ** +Track (trackID 2182, parentID 1) is processed with stopping code 2 +### pop requested out of 60 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.475733,0.847105,-0.236836) + Old Polarization: (0.851996,0.376878,-0.363408) + New Momentum Direction: (-0.645195,0.69322,-0.3212) + New Polarization: (0.756049,0.518741,-0.399122) + *** FresnelRefraction *** +Track (trackID 2181, parentID 1) is processed with stopping code 2 +### pop requested out of 59 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.578482,0.364595,0.729678) + Old Polarization: (-0.577519,0.448665,-0.682034) + New Momentum Direction: (-0.578482,0.364595,-0.729678) + New Polarization: (-0.512685,0.533254,0.6729) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.578482,0.364595,-0.729678) + Old Polarization: (-0.512685,0.533254,0.6729) + New Momentum Direction: (0.578482,0.364595,-0.729678) + New Polarization: (-0.512685,-0.533254,-0.6729) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.578482,0.364595,-0.729678) + Old Polarization: (-0.512685,-0.533254,-0.6729) + New Momentum Direction: (0.578482,-0.364595,-0.729678) + New Polarization: (0.512685,-0.533254,0.6729) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.578482,-0.364595,-0.729678) + Old Polarization: (0.512685,-0.533254,0.6729) + New Momentum Direction: (0.784414,-0.494386,-0.374536) + New Polarization: (-0.398923,0.060239,-0.915004) + *** FresnelRefraction *** +Track (trackID 2180, parentID 1) is processed with stopping code 2 +### pop requested out of 58 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0455832,0.950529,0.307273) + Old Polarization: (0.719091,-0.244734,0.650394) + New Momentum Direction: (0.0619024,0.906667,0.417279) + New Polarization: (0.501383,0.333253,-0.798472) + *** FresnelRefraction *** +Track (trackID 2179, parentID 1) is processed with stopping code 2 +### pop requested out of 57 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2178, parentID 1) is processed with stopping code 2 +### pop requested out of 56 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.816363,0.298992,0.49412) + Old Polarization: (-0.158329,-0.938646,0.306391) + New Momentum Direction: (-0.619538,0.406378,0.671587) + New Polarization: (-0.223636,-0.911482,0.345234) + *** FresnelRefraction *** +Track (trackID 2177, parentID 1) is processed with stopping code 2 +### pop requested out of 55 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0180381,0.917291,0.397809) + Old Polarization: (0.751666,-0.249918,0.610359) + New Momentum Direction: (-0.0244066,0.842426,0.538258) + New Polarization: (0.797946,0.340767,-0.497152) + *** FresnelRefraction *** +Track (trackID 2176, parentID 1) is processed with stopping code 2 +### pop requested out of 54 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.835846,-0.214265,-0.505423) + Old Polarization: (-0.494387,0.106407,-0.862705) + New Momentum Direction: (0.667195,-0.290734,-0.685802) + New Polarization: (0.675031,0.625254,0.391652) + *** FresnelRefraction *** +Track (trackID 2175, parentID 1) is processed with stopping code 2 +### pop requested out of 53 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.494661,-0.85483,0.156769) + Old Polarization: (0.845954,-0.432256,0.312276) + New Momentum Direction: (-0.66772,-0.713701,0.211615) + New Polarization: (0.735363,-0.588198,0.336548) + *** FresnelRefraction *** +Track (trackID 2174, parentID 1) is processed with stopping code 2 +### pop requested out of 52 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.255734,0.609082,0.750746) + Old Polarization: (0.475006,-0.597199,0.646315) + New Momentum Direction: (-0.347326,0.827227,0.441656) + New Polarization: (0.344566,-0.325449,0.880544) + *** FresnelRefraction *** +Track (trackID 2173, parentID 1) is processed with stopping code 2 +### pop requested out of 51 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.314444,0.211291,0.925463) + Old Polarization: (0.899175,-0.378833,-0.219021) + New Momentum Direction: (0.426179,0.286372,0.858116) + New Polarization: (0.0384297,-0.953448,0.2991) + *** FresnelRefraction *** +Track (trackID 2172, parentID 1) is processed with stopping code 2 +### pop requested out of 50 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2171, parentID 1) is processed with stopping code 2 +### pop requested out of 49 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2170, parentID 1) is processed with stopping code 2 +### pop requested out of 48 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2169, parentID 1) is processed with stopping code 2 +### pop requested out of 47 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.786713,-0.263919,0.558058) + Old Polarization: (-0.610915,0.462726,-0.642393) + New Momentum Direction: (-0.550998,-0.356772,0.754397) + New Polarization: (-0.826704,0.356694,-0.43512) + *** FresnelRefraction *** +Track (trackID 2168, parentID 1) is processed with stopping code 2 +### pop requested out of 46 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.634856,-0.40222,0.65968) + Old Polarization: (0.0693693,0.820689,0.567149) + New Momentum Direction: (-0.634856,-0.40222,-0.65968) + New Polarization: (-0.0693693,-0.820689,0.567149) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.634856,-0.40222,-0.65968) + Old Polarization: (-0.0693693,-0.820689,0.567149) + New Momentum Direction: (0.634856,-0.40222,-0.65968) + New Polarization: (-0.0693693,0.820689,-0.567149) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.634856,-0.40222,-0.65968) + Old Polarization: (-0.0693693,0.820689,-0.567149) + New Momentum Direction: (0.634856,0.40222,-0.65968) + New Polarization: (0.0693693,0.820689,0.567149) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2167, parentID 1) is processed with stopping code 2 +### pop requested out of 45 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2166, parentID 1) is processed with stopping code 2 +### pop requested out of 44 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2165, parentID 1) is processed with stopping code 2 +### pop requested out of 43 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2164, parentID 1) is processed with stopping code 2 +### pop requested out of 42 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.75406,-0.574485,-0.318372) + Old Polarization: (-0.0933283,0.573527,-0.813853) + New Momentum Direction: (-0.452707,-0.779903,-0.432212) + New Polarization: (-0.136449,0.539613,-0.830783) + *** FresnelRefraction *** +Track (trackID 2163, parentID 1) is processed with stopping code 2 +### pop requested out of 41 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.154867,-0.732565,0.662846) + Old Polarization: (0.747674,0.351646,0.563319) + New Momentum Direction: (-0.209911,-0.385672,0.89844) + New Polarization: (0.860216,-0.509619,-0.0177828) + *** FresnelRefraction *** +Track (trackID 2162, parentID 1) is processed with stopping code 2 +### pop requested out of 40 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.931043,-0.364855,0.00630234) + Old Polarization: (-0.342548,0.867908,-0.359717) + New Momentum Direction: (-0.868871,-0.494965,0.00854982) + New Polarization: (-0.465276,0.810613,-0.355563) + *** FresnelRefraction *** +Track (trackID 2161, parentID 1) is processed with stopping code 2 +### pop requested out of 39 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2160, parentID 1) is processed with stopping code 2 +### pop requested out of 38 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2159, parentID 1) is processed with stopping code 2 +### pop requested out of 37 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2158, parentID 1) is processed with stopping code 2 +### pop requested out of 36 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.918348,-0.392529,-0.0505752) + Old Polarization: (-0.331648,0.832978,-0.442896) + New Momentum Direction: (-0.844847,-0.530622,-0.0683678) + New Polarization: (-0.449977,0.773871,-0.445696) + *** FresnelRefraction *** +Track (trackID 2157, parentID 1) is processed with stopping code 2 +### pop requested out of 35 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.230903,-0.66848,0.706978) + Old Polarization: (0.641463,0.441751,0.627201) + New Momentum Direction: (-0.312721,-0.905351,0.287307) + New Polarization: (0.479414,0.110676,0.870582) + *** FresnelRefraction *** +Track (trackID 2156, parentID 1) is processed with stopping code 2 +### pop requested out of 34 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2155, parentID 1) is processed with stopping code 2 +### pop requested out of 33 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.454995,-0.804266,-0.382278) + Old Polarization: (0.325456,0.2494,-0.912073) + New Momentum Direction: (-0.454995,0.804266,-0.382278) + New Polarization: (0.643529,0.000247733,-0.765422) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.454995,0.804266,-0.382278) + Old Polarization: (0.643529,0.000247733,-0.765422) + New Momentum Direction: (0.454995,0.804266,-0.382278) + New Polarization: (0.643529,-0.000247733,0.765422) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.454995,0.804266,-0.382278) + Old Polarization: (0.643529,-0.000247733,0.765422) + New Momentum Direction: (0.454995,0.804266,0.382278) + New Polarization: (-0.643529,0.000247733,0.765422) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.454995,0.804266,0.382278) + Old Polarization: (-0.643529,0.000247733,0.765422) + New Momentum Direction: (0.454995,-0.804266,0.382278) + New Polarization: (-0.643273,-2.23358e-07,0.765637) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.454995,-0.804266,0.382278) + Old Polarization: (-0.643273,-2.23358e-07,0.765637) + New Momentum Direction: (0.615383,-0.594963,0.517032) + New Polarization: (-0.643273,-3.15945e-07,0.765637) + *** FresnelRefraction *** +Track (trackID 2154, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.882966,-0.310362,0.352203) + Old Polarization: (-0.282717,0.950513,0.128828) + New Momentum Direction: (-0.773207,-0.419261,0.475785) + New Polarization: (-0.386727,0.906352,0.1702) + *** FresnelRefraction *** +Track (trackID 2153, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0116416,-0.992889,0.118475) + Old Polarization: (0.979262,-0.0126458,-0.202202) + New Momentum Direction: (0.0158009,-0.98686,0.160804) + New Polarization: (0.979305,-0.0171795,-0.201659) + *** FresnelRefraction *** +Track (trackID 2152, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2151, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0490361,-0.840137,0.540153) + Old Polarization: (0.898029,0.199636,0.392031) + New Momentum Direction: (-0.0664079,-0.678588,0.731511) + New Polarization: (0.94508,-0.277913,-0.172011) + *** FresnelRefraction *** +Track (trackID 2150, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0188527,-0.95195,0.305672) + Old Polarization: (0.997268,0.0397444,0.0622681) + New Momentum Direction: (0.0254874,-0.910263,0.413246) + New Polarization: (0.98223,-0.0540867,-0.179718) + *** FresnelRefraction *** +Track (trackID 2149, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.773315,-0.338073,0.536368) + Old Polarization: (-0.1273,0.911541,0.391008) + New Momentum Direction: (-0.516593,-0.456559,0.724352) + New Polarization: (-0.181969,0.885193,0.42816) + *** FresnelRefraction *** +Track (trackID 2148, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.0261851,-0.976391,0.214416) + Old Polarization: (0.997619,0.0118335,-0.0679452) + New Momentum Direction: (0.0355766,-0.955964,0.291319) + New Polarization: (0.984756,-0.0161294,-0.17319) + *** FresnelRefraction *** +Track (trackID 2147, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.139918,-0.750023,0.646443) + Old Polarization: (0.772166,0.326032,0.545402) + New Momentum Direction: (-0.189159,-0.447702,0.873946) + New Polarization: (0.883384,-0.466223,-0.0476331) + *** FresnelRefraction *** +Track (trackID 2146, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.251934,-0.920815,-0.297706) + Old Polarization: (0.610692,0.0873692,-0.787034) + New Momentum Direction: (-0.341648,-0.848697,-0.40372) + New Polarization: (0.867748,-0.119875,-0.482331) + *** FresnelRefraction *** +Track (trackID 2145, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.676793,-0.640026,-0.363756) +Old Polarization: (0.015366,0.481727,-0.876186) +New Polarization: (0.436544,-0.0198818,-0.899463) +Polarization Change: (0.436544,-0.0198818,-0.899463) +New Momentum Direction: (-0.528774,0.803187,-0.274388) +Momentum Change: (-0.528774,0.803187,-0.274388) + Photon at Boundary! + Old Momentum Direction: (-0.528774,0.803187,-0.274388) + Old Polarization: (0.436544,-0.0198818,-0.899463) + New Momentum Direction: (0.528774,0.803187,-0.274388) + New Polarization: (0.436544,0.0198818,0.899463) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2144, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2143, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.626576,-0.397411,0.670423) + Old Polarization: (0.0865893,0.819399,0.566646) + New Momentum Direction: (-0.626576,-0.397411,-0.670423) + New Polarization: (-0.0865893,-0.819399,0.566646) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2142, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0206034,-0.999084,0.0375177) + Old Polarization: (0.946995,-0.0315344,-0.319695) + New Momentum Direction: (-0.0277707,-0.998334,0.050569) + New Polarization: (0.946712,-0.0425065,-0.319264) + *** FresnelRefraction *** +Track (trackID 2141, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2140, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2139, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.343003,-0.870055,-0.354054) + Old Polarization: (0.481757,0.160631,-0.861457) + New Momentum Direction: (-0.466154,-0.742411,-0.481172) + New Polarization: (0.849236,-0.223044,-0.478591) + *** FresnelRefraction *** +Track (trackID 2138, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.921125,-0.387709,-0.0347906) + Old Polarization: (-0.338188,0.841313,-0.421688) + New Momentum Direction: (-0.850778,-0.523421,-0.0469686) + New Polarization: (-0.457881,0.782166,-0.422564) + *** FresnelRefraction *** +Track (trackID 2137, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.408813,-0.832483,-0.373958) + Old Polarization: (0.390488,0.210798,-0.896149) + New Momentum Direction: (-0.55391,-0.660647,-0.506685) + New Polarization: (0.811993,-0.294172,-0.504114) + *** FresnelRefraction *** +Track (trackID 2136, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.69508,-0.36355,0.620238) + Old Polarization: (-0.00934304,0.867216,0.497845) + New Momentum Direction: (0.69508,-0.36355,0.620238) + New Polarization: (-0.00611034,0.859702,0.510759) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.69508,-0.36355,0.620238) + Old Polarization: (-0.00611034,0.859702,0.510759) + New Momentum Direction: (0.69508,-0.36355,-0.620238) + New Polarization: (0.00611034,-0.859702,0.510759) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.69508,-0.36355,-0.620238) + Old Polarization: (0.00611034,-0.859702,0.510759) + New Momentum Direction: (0.69508,0.36355,-0.620238) + New Polarization: (-0.00611034,-0.859702,-0.510759) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.69508,0.36355,-0.620238) + Old Polarization: (-0.00611034,-0.859702,-0.510759) + New Momentum Direction: (0.211498,0.494241,-0.843205) + New Polarization: (0.00977642,-0.863747,-0.50383) + *** FresnelRefraction *** +Track (trackID 2135, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.312612,-0.599208,0.737037) + Old Polarization: (0.523804,0.538542,0.660002) + New Momentum Direction: (-0.425123,-0.814866,0.394036) + New Polarization: (0.353382,0.251361,0.901076) + *** FresnelRefraction *** +Track (trackID 2134, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0907795,-0.790188,0.606104) + Old Polarization: (0.834403,0.271881,0.479429) + New Momentum Direction: (-0.123324,-0.553912,0.823391) + New Polarization: (0.914625,-0.385374,-0.122261) + *** FresnelRefraction *** +Track (trackID 2133, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.075861,-0.808265,0.583911) + Old Polarization: (0.857929,0.245515,0.451309) + New Momentum Direction: (-0.102882,-0.601929,0.791894) + New Polarization: (0.927716,-0.345261,-0.14191) + *** FresnelRefraction *** +Track (trackID 2132, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.772371,-0.331237,0.541963) + Old Polarization: (-0.118114,0.913273,0.389847) + New Momentum Direction: (-0.505458,-0.449971,0.736232) + New Polarization: (-0.170575,0.888526,0.425942) + *** FresnelRefraction *** +Track (trackID 2131, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.399081,-0.537049,0.743178) + Old Polarization: (0.403312,0.625086,0.668287) + New Momentum Direction: (-0.542775,-0.73042,0.414587) + New Polarization: (0.210873,0.359298,0.909086) + *** FresnelRefraction *** +Track (trackID 2130, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.797752,-0.53577,-0.276662) + Old Polarization: (-0.158654,0.629156,-0.760915) + New Momentum Direction: (-0.577731,-0.725242,-0.374502) + New Polarization: (-0.224555,0.58234,-0.781316) + *** FresnelRefraction *** +Track (trackID 2129, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.934133,-0.351706,0.0608098) + Old Polarization: (-0.353943,0.890814,-0.284912) + New Momentum Direction: (-0.875889,-0.475459,0.0822066) + New Polarization: (-0.478559,0.834243,-0.273898) + *** FresnelRefraction *** +Track (trackID 2128, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2127, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.765429,-0.564583,-0.308811) + Old Polarization: (-0.11,0.587604,-0.801637) + New Momentum Direction: (-0.487517,-0.766013,-0.418988) + New Polarization: (-0.159282,0.549853,-0.819933) + *** FresnelRefraction *** +Track (trackID 2126, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.911865,-0.401741,-0.0842957) + Old Polarization: (-0.314316,0.815424,-0.486096) + New Momentum Direction: (-0.830337,-0.545385,-0.114436) + New Polarization: (-0.429193,0.756861,-0.492905) + *** FresnelRefraction *** +Track (trackID 2125, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.770489,-0.563228,-0.29853) + Old Polarization: (-0.12352,0.591355,-0.796895) + New Momentum Direction: (-0.509094,-0.76049,-0.403086) + New Polarization: (-0.176825,0.550738,-0.815733) + *** FresnelRefraction *** +Track (trackID 2124, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0726525,-0.810715,0.580915) + Old Polarization: (0.861508,0.242458,0.446115) + New Momentum Direction: (-0.098588,-0.607355,0.78829) + New Polarization: (0.928574,-0.340976,-0.146579) + *** FresnelRefraction *** +Track (trackID 2123, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 16 + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 16 +Track (trackID 1, parentID 0) is processed with stopping code 4 +### pop requested out of 33 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.776688,0.618207,-0.120731) +Old Polarization: (-0.582083,-0.631195,0.512614) +New Polarization: (0.693271,0.685025,0.223865) +Polarization Change: (0.693271,0.685025,0.223865) +New Momentum Direction: (-0.118536,-0.198013,0.973006) +Momentum Change: (-0.118536,-0.198013,0.973006) + Photon at Boundary! + Old Momentum Direction: (-0.118536,-0.198013,0.973006) + Old Polarization: (0.693271,0.685025,0.223865) + New Momentum Direction: (-0.161218,-0.269314,0.949462) + New Polarization: (0.680913,0.666042,0.304541) + *** FresnelRefraction *** +Track (trackID 2221, parentID 1) is processed with stopping code 2 +### pop requested out of 32 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.102288,-0.604573,0.789955) + Old Polarization: (0.00671616,-0.794522,-0.607198) + New Momentum Direction: (-0.137821,-0.814591,0.563425) + New Polarization: (0.223861,0.528514,0.818877) + *** FresnelRefraction *** +Track (trackID 2220, parentID 1) is processed with stopping code 2 +### pop requested out of 31 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2219, parentID 1) is processed with stopping code 2 +### pop requested out of 30 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.951622,-0.11594,0.284557) + Old Polarization: (-0.267754,-0.141422,-0.953052) + New Momentum Direction: (-0.908544,-0.157642,0.386906) + New Polarization: (-0.364676,-0.152647,-0.918537) + *** FresnelRefraction *** +Track (trackID 2218, parentID 1) is processed with stopping code 2 +### pop requested out of 29 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.847728,0.364436,-0.385414) + Old Polarization: (-0.411818,-0.910144,0.0451982) + New Momentum Direction: (-0.695015,0.49399,-0.522425) + New Polarization: (-0.564761,-0.824761,-0.0285337) + *** FresnelRefraction *** +Track (trackID 2217, parentID 1) is processed with stopping code 2 +### pop requested out of 28 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.498056,-0.347278,0.794568) + Old Polarization: (0.455688,0.884402,0.100904) + New Momentum Direction: (0.675892,-0.471277,0.566628) + New Polarization: (0.482029,0.864266,0.143849) + *** FresnelRefraction *** +Track (trackID 2216, parentID 1) is processed with stopping code 2 +### pop requested out of 27 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.607553,0.397914,-0.687418) + Old Polarization: (-0.790923,0.223611,-0.569595) + New Momentum Direction: (0.826091,0.541044,-0.157623) + New Polarization: (-0.409976,0.385095,-0.826814) + *** FresnelRefraction *** +Track (trackID 2215, parentID 1) is processed with stopping code 2 +### pop requested out of 26 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2214, parentID 1) is processed with stopping code 2 +### pop requested out of 25 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.831813,0.492487,-0.256016) + Old Polarization: (0.246182,-0.0860523,-0.965396) + New Momentum Direction: (0.831813,0.492487,-0.256016) + New Polarization: (0.0366291,-0.508943,-0.86002) + *** FresnelReflection *** + Photon at Boundary! + Old Momentum Direction: (0.831813,0.492487,-0.256016) + Old Polarization: (0.0366291,-0.508943,-0.86002) + New Momentum Direction: (0.831813,-0.492487,-0.256016) + New Polarization: (-0.0366291,-0.508943,0.86002) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.831813,-0.492487,-0.256016) + Old Polarization: (-0.0366291,-0.508943,0.86002) + New Momentum Direction: (0.657718,-0.668351,-0.347438) + New Polarization: (0.051493,-0.420272,0.905936) + *** FresnelRefraction *** +Track (trackID 2213, parentID 1) is processed with stopping code 2 +### pop requested out of 24 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.489886,0.828522,-0.271225) + Old Polarization: (0.268125,0.152843,0.951182) + New Momentum Direction: (0.662472,0.653151,-0.366777) + New Polarization: (0.303545,0.213565,0.928574) + *** FresnelRefraction *** +Track (trackID 2212, parentID 1) is processed with stopping code 2 +### pop requested out of 23 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.368006,0.120456,0.921988) + Old Polarization: (-0.446831,-0.846665,0.288965) + New Momentum Direction: (0.499358,0.163451,0.850838) + New Polarization: (-0.40101,-0.826916,0.394209) + *** FresnelRefraction *** +Track (trackID 2211, parentID 1) is processed with stopping code 2 +### pop requested out of 22 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.257067,0.0331023,0.965826) +Old Polarization: (-0.366145,-0.921568,0.12904) +New Polarization: (0.721125,0.672488,0.166548) +Polarization Change: (0.721125,0.672488,0.166548) +New Momentum Direction: (-0.504866,0.674717,-0.538393) +Momentum Change: (-0.504866,0.674717,-0.538393) + +** Photon absorbed! ** +Track (trackID 2210, parentID 1) is processed with stopping code 2 +### pop requested out of 21 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.495353,0.85273,0.165761) + Old Polarization: (0.579612,0.46657,-0.668103) + New Momentum Direction: (-0.672829,0.704705,0.22515) + New Polarization: (0.460913,0.63736,-0.617521) + *** FresnelRefraction *** +Track (trackID 2209, parentID 1) is processed with stopping code 2 +### pop requested out of 20 stacked tracks. +Scattering Photon! +Old Momentum Direction: (0.0794032,-0.900116,-0.428353) +Old Polarization: (0.723902,0.347488,-0.596002) +New Polarization: (-0.503711,0.271322,0.820158) +Polarization Change: (-0.503711,0.271322,0.820158) +New Momentum Direction: (-0.524664,-0.850325,-0.0409273) +Momentum Change: (-0.524664,-0.850325,-0.0409273) + Photon at Boundary! + Old Momentum Direction: (-0.524664,-0.850325,-0.0409273) + Old Polarization: (-0.503711,0.271322,0.820158) + New Momentum Direction: (-0.706744,-0.705318,-0.0551307) + New Polarization: (0.303755,-0.372899,0.876744) + *** FresnelRefraction *** +Track (trackID 2208, parentID 1) is processed with stopping code 2 +### pop requested out of 19 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.986431,-0.124093,-0.107497) + Old Polarization: (-0.147141,0.958661,0.243554) + New Momentum Direction: (-0.974792,-0.16864,-0.146087) + New Polarization: (-0.200033,0.95059,0.237414) + *** FresnelRefraction *** +Track (trackID 2207, parentID 1) is processed with stopping code 2 +### pop requested out of 18 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.55699,0.754653,-0.346786) + Old Polarization: (0.781795,0.335502,-0.525581) + New Momentum Direction: (-0.755796,0.455346,-0.470565) + New Polarization: (0.653581,0.480631,-0.58466) + *** FresnelRefraction *** +Track (trackID 2206, parentID 1) is processed with stopping code 2 +### pop requested out of 17 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2205, parentID 1) is processed with stopping code 2 +### pop requested out of 16 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.642106,0.598764,0.47873) + Old Polarization: (0.736369,-0.308046,-0.602386) + New Momentum Direction: (-0.642106,0.598764,0.47873) + New Polarization: (0.736369,0.308046,0.602386) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.642106,0.598764,0.47873) + Old Polarization: (0.736369,0.308046,0.602386) + New Momentum Direction: (-0.642106,-0.598764,0.47873) + New Polarization: (-0.736369,0.308046,-0.602386) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.642106,-0.598764,0.47873) + Old Polarization: (-0.736369,0.308046,-0.602386) + New Momentum Direction: (-0.642106,-0.598764,-0.47873) + New Polarization: (0.736369,-0.308046,-0.602386) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2204, parentID 1) is processed with stopping code 2 +### pop requested out of 15 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.599648,0.405496,0.689924) + Old Polarization: (0.662263,-0.735428,-0.143365) + New Momentum Direction: (0.812007,0.549098,0.197828) + New Polarization: (0.506782,-0.831462,0.227693) + *** FresnelRefraction *** +Track (trackID 2203, parentID 1) is processed with stopping code 2 +### pop requested out of 14 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2202, parentID 1) is processed with stopping code 2 +### pop requested out of 13 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.210629,0.91655,0.339959) + Old Polarization: (-0.195116,0.380179,-0.904098) + New Momentum Direction: (0.286171,0.839505,0.461884) + New Polarization: (-0.160241,0.517186,-0.840739) + *** FresnelRefraction *** +Track (trackID 2201, parentID 1) is processed with stopping code 2 +### pop requested out of 12 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2200, parentID 1) is processed with stopping code 2 +### pop requested out of 11 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2199, parentID 1) is processed with stopping code 2 +### pop requested out of 10 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.646639,0.496246,0.579308) + Old Polarization: (0.753884,-0.531518,-0.386197) + New Momentum Direction: (-0.646639,0.496246,0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (-0.646639,0.496246,-0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,-0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (-0.646639,-0.496246,-0.579308) + New Polarization: (0.753884,-0.531518,-0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,-0.496246,-0.579308) + Old Polarization: (0.753884,-0.531518,-0.386197) + New Momentum Direction: (0.646639,-0.496246,-0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,-0.496246,-0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (0.646639,-0.496246,0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,-0.496246,0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (0.646639,0.496246,0.579308) + New Polarization: (0.753884,-0.531518,-0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,0.496246,0.579308) + Old Polarization: (0.753884,-0.531518,-0.386197) + New Momentum Direction: (-0.646639,0.496246,0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (-0.646639,0.496246,-0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,-0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (-0.646639,-0.496246,-0.579308) + New Polarization: (0.753884,-0.531518,-0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,-0.496246,-0.579308) + Old Polarization: (0.753884,-0.531518,-0.386197) + New Momentum Direction: (0.646639,-0.496246,-0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,-0.496246,-0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (0.646639,-0.496246,0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,-0.496246,0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (-0.646639,-0.496246,0.579308) + New Polarization: (-0.753884,0.531518,-0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,-0.496246,0.579308) + Old Polarization: (-0.753884,0.531518,-0.386197) + New Momentum Direction: (-0.646639,0.496246,0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (-0.646639,0.496246,-0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,-0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (0.646639,0.496246,-0.579308) + New Polarization: (-0.753884,0.531518,-0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,0.496246,-0.579308) + Old Polarization: (-0.753884,0.531518,-0.386197) + New Momentum Direction: (0.646639,-0.496246,-0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,-0.496246,-0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (0.646639,-0.496246,0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.646639,-0.496246,0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (-0.646639,-0.496246,0.579308) + New Polarization: (-0.753884,0.531518,-0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,-0.496246,0.579308) + Old Polarization: (-0.753884,0.531518,-0.386197) + New Momentum Direction: (-0.646639,0.496246,0.579308) + New Polarization: (0.753884,0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,0.579308) + Old Polarization: (0.753884,0.531518,0.386197) + New Momentum Direction: (-0.646639,0.496246,-0.579308) + New Polarization: (-0.753884,-0.531518,0.386197) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.646639,0.496246,-0.579308) + Old Polarization: (-0.753884,-0.531518,0.386197) + New Momentum Direction: (0.646639,0.496246,-0.579308) + New Polarization: (-0.753884,0.531518,-0.386197) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2198, parentID 1) is processed with stopping code 2 +### pop requested out of 9 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2197, parentID 1) is processed with stopping code 2 +### pop requested out of 8 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.136,0.721936,0.678463) + Old Polarization: (-0.98574,-0.0301057,-0.16556) + New Momentum Direction: (-0.183324,0.360549,0.914547) + New Polarization: (-0.97596,0.0447969,-0.213295) + *** FresnelRefraction *** +Track (trackID 2196, parentID 1) is processed with stopping code 2 +### pop requested out of 7 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2195, parentID 1) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.0576883,0.85603,0.513697) + Old Polarization: (-0.800159,0.268058,-0.536554) + New Momentum Direction: (-0.0779068,0.716003,0.693736) + New Polarization: (-0.80129,0.369055,-0.470885) + *** FresnelRefraction *** +Track (trackID 2194, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.128225,0.753206,0.645165) + Old Polarization: (-0.969625,0.0414173,-0.241064) + New Momentum Direction: (-0.172794,0.462888,0.869412) + New Polarization: (-0.972479,0.0598852,-0.225162) + *** FresnelRefraction *** +Track (trackID 2193, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2192, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.645574,0.547111,0.532826) + Old Polarization: (0.762491,-0.422545,-0.489963) + New Momentum Direction: (-0.645574,0.547111,0.532826) + New Polarization: (0.762491,0.422545,0.489963) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.645574,0.547111,0.532826) + Old Polarization: (0.762491,0.422545,0.489963) + New Momentum Direction: (-0.645574,-0.547111,0.532826) + New Polarization: (-0.762491,0.422545,-0.489963) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.645574,-0.547111,0.532826) + Old Polarization: (-0.762491,0.422545,-0.489963) + New Momentum Direction: (-0.645574,-0.547111,-0.532826) + New Polarization: (0.762491,-0.422545,-0.489963) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (-0.645574,-0.547111,-0.532826) + Old Polarization: (0.762491,-0.422545,-0.489963) + New Momentum Direction: (0.645574,-0.547111,-0.532826) + New Polarization: (0.762491,0.422545,0.489963) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.645574,-0.547111,-0.532826) + Old Polarization: (0.762491,0.422545,0.489963) + New Momentum Direction: (0.645574,0.547111,-0.532826) + New Polarization: (-0.762491,0.422545,-0.489963) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.645574,0.547111,-0.532826) + Old Polarization: (-0.762491,0.422545,-0.489963) + New Momentum Direction: (0.645574,0.547111,0.532826) + New Polarization: (0.762491,-0.422545,-0.489963) + *** TotalInternalReflection *** + Photon at Boundary! + Old Momentum Direction: (0.645574,0.547111,0.532826) + Old Polarization: (0.762491,-0.422545,-0.489963) + New Momentum Direction: (-0.645574,0.547111,0.532826) + New Polarization: (0.762491,0.422545,0.489963) + *** TotalInternalReflection *** + +** Photon absorbed! ** +Track (trackID 2191, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.313327,0.893417,0.32192) + Old Polarization: (0.0273892,0.330347,-0.943462) + New Momentum Direction: (0.425669,0.792173,0.437342) + New Polarization: (0.0711171,0.452532,-0.888908) + *** FresnelRefraction *** +Track (trackID 2190, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 4 +Track (trackID 1, parentID 0) is processed with stopping code 2 +### pop requested out of 6 stacked tracks. +Track (trackID 2227, parentID 1) is processed with stopping code 2 +### pop requested out of 5 stacked tracks. +Track (trackID 2226, parentID 1) is processed with stopping code 2 +### pop requested out of 4 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (0.646805,-0.755794,0.102073) + Old Polarization: (-0.756822,-0.619561,0.208241) + New Momentum Direction: (0.877427,-0.459291,0.138468) + New Polarization: (-0.47958,-0.846582,0.230872) + *** FresnelRefraction *** +Track (trackID 2225, parentID 1) is processed with stopping code 2 +### pop requested out of 3 stacked tracks. + Photon at Boundary! + Old Momentum Direction: (-0.189028,0.975388,-0.113522) + Old Polarization: (-0.549627,-0.200894,-0.810896) + New Momentum Direction: (-0.25708,0.953978,-0.154391) + New Polarization: (0.957168,0.273374,0.0953724) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.25708,0.953978,-0.154391) + Old Polarization: (0.957168,0.273374,0.0953724) + New Momentum Direction: (-0.70362,0.70145,-0.113522) + New Polarization: (-0.705454,-0.670428,0.229915) + *** FresnelRefraction *** + Photon at Boundary! + Old Momentum Direction: (-0.70362,0.70145,-0.113522) + Old Polarization: (-0.705454,-0.670428,0.229915) + New Momentum Direction: (-0.956929,0.245866,-0.154391) + New Polarization: (0.184386,0.925461,0.330945) + *** FresnelRefraction *** +Track (trackID 2224, parentID 1) is processed with stopping code 2 +### pop requested out of 2 stacked tracks. + +** Photon absorbed! ** +Track (trackID 2223, parentID 1) is processed with stopping code 2 +### pop requested out of 1 stacked tracks. +Scattering Photon! +Old Momentum Direction: (-0.362023,-0.115446,-0.924993) +Old Polarization: (0.163085,-0.984841,0.0590877) +New Polarization: (-0.030959,-0.997054,-0.0701733) +Polarization Change: (-0.030959,-0.997054,-0.0701733) +New Momentum Direction: (0.833195,-0.0645243,0.549202) +Momentum Change: (0.833195,-0.0645243,0.549202) +Scattering Photon! +Old Momentum Direction: (0.833195,-0.0645243,0.549202) +Old Polarization: (-0.030959,-0.997054,-0.0701733) +New Polarization: (0.0311709,0.897761,-0.439378) +Polarization Change: (0.0311709,0.897761,-0.439378) +New Momentum Direction: (0.00795547,0.439355,0.898278) +Momentum Change: (0.00795547,0.439355,0.898278) + Photon at Boundary! + Old Momentum Direction: (0.00795547,0.439355,0.898278) + Old Polarization: (0.0311709,0.897761,-0.439378) + New Momentum Direction: (0.0107397,0.593121,0.805042) + New Polarization: (9.59924e-05,-0.805089,0.593154) + *** FresnelRefraction *** +Track (trackID 2222, parentID 1) is processed with stopping code 2 ### pop requested out of 0 stacked tracks. ### 0 waiting tracks are re-classified to +Number of optical photons produces in this event : 2222 0 urgent tracks and 0 waiting tracks. NULL returned from G4StackManager. Terminate current event processing. -number of event = 1 User=1.34s Real=3s Sys=1.32s +number of event = 1 User=2.6s Real=5.84s Sys=3.17s diff --git a/examples/extended/persistency/PersistentEx01/include/PersEx01StackingAction.hh b/examples/novice/N06/include/ExN06StackingAction.hh similarity index 78% rename from examples/extended/persistency/PersistentEx01/include/PersEx01StackingAction.hh rename to examples/novice/N06/include/ExN06StackingAction.hh index 8323d983f1..a69f39faeb 100644 --- a/examples/extended/persistency/PersistentEx01/include/PersEx01StackingAction.hh +++ b/examples/novice/N06/include/ExN06StackingAction.hh @@ -19,28 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// - -#ifndef PersEx01StackingAction_H -#define PersEx01StackingAction_H 1 +#ifndef ExN06StackingAction_H +#define ExN06StackingAction_H 1 #include "globals.hh" #include "G4UserStackingAction.hh" -#include "G4ThreeVector.hh" -class G4Track; - -class PersEx01StackingAction : public G4UserStackingAction +class ExN06StackingAction : public G4UserStackingAction { - public: - PersEx01StackingAction(); - virtual ~PersEx01StackingAction(); +public: + ExN06StackingAction(); + virtual ~ExN06StackingAction(); - public: - virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); - virtual void NewStage(); - virtual void PrepareNewEvent(); +public: + virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); + virtual void NewStage(); + virtual void PrepareNewEvent(); +private: + G4int gammaCounter; }; #endif diff --git a/examples/novice/N06/src/ExN06DetectorConstruction.cc b/examples/novice/N06/src/ExN06DetectorConstruction.cc index 1d5d437e90..bcef972967 100644 --- a/examples/novice/N06/src/ExN06DetectorConstruction.cc +++ b/examples/novice/N06/src/ExN06DetectorConstruction.cc @@ -116,6 +116,7 @@ G4VPhysicalVolume* ExN06DetectorConstruction::Construct() // 3.767E-9*GeV, 3.884E-9*GeV, 4.010E-9*GeV, 4.144E-9*GeV }; G4double RINDEX1[NUMENTRIES] = + { 1.3435, 1.344, 1.3445, 1.345, 1.3455, 1.346, 1.3465, 1.347, 1.3475, 1.348, 1.3485, 1.3492, 1.35, 1.3505, 1.351, @@ -145,17 +146,29 @@ G4VPhysicalVolume* ExN06DetectorConstruction::Construct() 3000.0*cm, 2850.0*cm, 2700.0*cm, 2450.0*cm, 2200.0*cm, 1950.0*cm, 1750.0*cm, 1450.0*cm }; - G4double SCINTILLATION[NUMENTRIES] = + G4double SCINTILLATION_FAST[NUMENTRIES] = { 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 }; + G4double SCINTILLATION_SLOW[NUMENTRIES] = + { 0.01, 1.00, 2.00, 3.00, 4.00, 5.00, 6.00, + 7.00, 8.00, 9.00, 8.00, 7.00, 6.00, 4.00, + 3.00, 2.00, 1.00, 0.01, 1.00, 2.00, 3.00, + 4.00, 5.00, 6.00, 7.00, 8.00, 9.00, 8.00, + 7.00, 6.00, 5.00, 4.00 }; G4MaterialPropertiesTable *myMPT1 = new G4MaterialPropertiesTable(); myMPT1->AddProperty("RINDEX", PPCKOV, RINDEX1, NUMENTRIES); myMPT1->AddProperty("ABSLENGTH",PPCKOV, ABSORPTION1, NUMENTRIES); - myMPT1->AddProperty("SCINTILLATION",PPCKOV, SCINTILLATION, NUMENTRIES); + myMPT1->AddProperty("FASTCOMPONENT",PPCKOV, SCINTILLATION_FAST, NUMENTRIES); + myMPT1->AddProperty("SLOWCOMPONENT",PPCKOV, SCINTILLATION_SLOW, NUMENTRIES); + myMPT1->AddConstProperty("SCINTILLATIONYIELD",50./MeV); + myMPT1->AddConstProperty("RESOLUTIONSCALE",1.0); + myMPT1->AddConstProperty("FASTTIMECONSTANT", 1.*ns); + myMPT1->AddConstProperty("SLOWTIMECONSTANT",10.*ns); + myMPT1->AddConstProperty("YIELDRATIO",0.8); Water->SetMaterialPropertiesTable(myMPT1); G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable(); diff --git a/examples/novice/N06/src/ExN06PhysicsList.cc b/examples/novice/N06/src/ExN06PhysicsList.cc index 17ca50fef0..a207c9b50b 100644 --- a/examples/novice/N06/src/ExN06PhysicsList.cc +++ b/examples/novice/N06/src/ExN06PhysicsList.cc @@ -220,8 +220,7 @@ void ExN06PhysicsList::ConstructOp() theCerenkovProcess->SetMaxNumPhotonsPerStep(MaxNumPhotons); theScintillationProcess->SetTrackSecondariesFirst(true); - theScintillationProcess->SetScintillationYield(100./MeV); - theScintillationProcess->SetResolutionScale(1.0); + theScintillationProcess->SetScintillationYieldFactor(1.); G4OpticalSurfaceModel themodel = unified; theBoundaryProcess->SetModel(themodel); diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc b/examples/novice/N06/src/ExN06StackingAction.cc similarity index 70% rename from examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc rename to examples/novice/N06/src/ExN06StackingAction.cc index 61c2a3053e..955378936c 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02StackingAction.cc +++ b/examples/novice/N06/src/ExN06StackingAction.cc @@ -19,38 +19,38 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: PersEx02StackingAction.cc,v 1.3 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "PersEx02StackingAction.hh" -#include "G4Track.hh" -#include "G4TrackStatus.hh" +#include "ExN06StackingAction.hh" +#include "G4ios.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTypes.hh" -#include "G4ios.hh" +#include "G4Track.hh" -PersEx02StackingAction::PersEx02StackingAction() +ExN06StackingAction::ExN06StackingAction() +: gammaCounter(0) {;} -PersEx02StackingAction::~PersEx02StackingAction() +ExN06StackingAction::~ExN06StackingAction() {;} -G4ClassificationOfNewTrack -PersEx02StackingAction::ClassifyNewTrack(const G4Track * aTrack) +G4ClassificationOfNewTrack +ExN06StackingAction::ClassifyNewTrack(const G4Track * aTrack) { - G4ClassificationOfNewTrack classification = fKill; - if(aTrack->GetParentID()==0) - { classification = fUrgent; } - return classification; + if(aTrack->GetDefinition()==G4OpticalPhoton::OpticalPhotonDefinition()) + { // particle is optical photon + if(aTrack->GetParentID()>0) + { // particle is secondary + gammaCounter++; + } + } + + return fUrgent; } -void PersEx02StackingAction::NewStage() -{;} - -void PersEx02StackingAction::PrepareNewEvent() -{;} - +void ExN06StackingAction::NewStage() +{ + G4cout << "Number of optical photons produces in this event : " + << gammaCounter << G4endl; +} +void ExN06StackingAction::PrepareNewEvent() +{ gammaCounter = 0; } diff --git a/source/GNUmakefile b/source/GNUmakefile index dfad4987ab..d5448aee1f 100644 --- a/source/GNUmakefile +++ b/source/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.35 2001/12/13 11:38:48 gcosmo Exp $ +# $Id: GNUmakefile,v 1.38 2002/11/25 11:58:25 gcosmo Exp $ # ----------------------------------------------------------------- # "gmake" makes default libraries for each subdomain. # "gmake global" makes global libraries for each subdomain. @@ -12,12 +12,11 @@ # # (The .o files(s) are made by implicit rules.) -MAKEFLAGS= --no-print-directory - -SUBDIR1 = global particles processes geometry digits+hits -SUBDIR2 = event tracking track materials run graphics_reps intercoms parameterisations readout -SUBDIR3 = g3tog4 interfaces visualization -SUBDIR4 = persistency +SUBDIR1 = global particles processes geometry digits+hits +SUBDIR2 = event tracking track materials run graphics_reps intercoms +SUBDIR2 += parameterisations persistency readout +SUBDIR3 = interfaces visualization +SUBDIR4 = g3tog4 ifndef G4INSTALL G4INSTALL = .. @@ -32,34 +31,20 @@ unique := $(shell echo $$$$) .PHONY: all glob global libmap includes clean_libs clean clean_all all: -ifdef G4USE_HEPODBMS - @$(ECHO) Making granular libraries with HepODBMS option ... - @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) cleandb); done;: - @if [ ! -f $(G4LIBDIR)/schema/G4SCHEMA ] ; then \ - $(ECHO) "Temporary boot file does not exist. Stop." ; exit 1 ; \ - fi -endif @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_HEPODBMS +ifdef G4USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: endif $(MAKE) libmap glob global: -ifdef G4USE_HEPODBMS - @$(ECHO) Making global libraries with HepODBMS option ... - @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) cleandb); done;: - @if [ ! -f $(G4LIBDIR)/schema/G4SCHEMA ] ; then \ - $(ECHO) "Temporary boot file does not exist. Stop." ; exit 1 ; \ - fi -endif @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE) global); done;: @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE)); done;: @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE)); done;: -ifdef G4USE_HEPODBMS - @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) && $(MAKE) global); done;: +ifdef G4USE_G3TOG4 + @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: endif @@ -111,7 +96,7 @@ includes: @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_HEPODBMS +ifdef G4USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) $@); done endif @@ -120,8 +105,8 @@ clean_libs: @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_HEPODBMS - @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) $@ cleandb); done +ifdef G4USE_G3TOG4 + @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) clean_libs); done endif @rm -rf $(G4LIBDIR)/libname.map @@ -131,9 +116,6 @@ clean: @rm -rf $(G4LIBDIR) @rm -rf $(G4BINDIR) @rm -rf $(G4INSTALL)/.config/bin/$(G4SYSTEM) -ifdef G4USE_HEPODBMS - @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) $@ cleandb); done -endif ifdef CFRONT @rm -rf $(G4TREP) endif @@ -150,9 +132,5 @@ clean_all: @rm -rf $(G4BIN) @echo Removing $(G4INCLUDE) ... @rm -rf $(G4INCLUDE) -ifdef G4USE_HEPODBMS - @echo Removing ODBMS federations and directories ... - @rm -rf $(G4INSTALL)/exampleSchema $(G4INSTALL)/exampleFD -endif @echo Removing installation configurations ... @rm -rf $(G4INSTALL)/.config diff --git a/source/digits+hits/History b/source/digits+hits/History index 8577ee5619..9fe14efd6c 100644 --- a/source/digits+hits/History +++ b/source/digits+hits/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2001/07/13 15:00:02 gcosmo Exp $ +$Id: History,v 1.16 2002/11/27 19:03:42 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,39 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 27, 2002, M.Asai (digits_hits-V04-01-05) +- Fix memory leak in G4SDManager. + +Nov 18, 2002, M.Asai (digits_hits-V04-01-04) +- Tag for Geant4 5.0 release. + +Nov 04, 2002, G.Cosmo (digits_hits-V04-01-03) +- Fixed compilation errors on SUN-CC (usage of G4std:: namespace) in + "detector" module. (M.Dressel) + +Nov 01, 2002, M.Asai (digits_hits-V04-01-02) +- Tag for Geant4 5.0 tag-set#1. + +Nov 1, 2002, J.Allison (digits+hits-V04-01-01 - does not include V04-01-00) +- Canonical tag of hits-traj03a. + +Oct 30, 2002, M.Asai/J.Allison (hits-traj03a) +- Added default implementation of G4VHitsCollection::GetHit and GetSize. + +Oct 28, 2002, J.Allison (hits-traj03 - does *not* include digits_hits-V04-01-00) +- Changed GetAttDefs return signature to map. +- Changed GetAttValues to CreateAttValues. +- Improved description in G4VHit. + +Oct 24, 2002, M.Asai/J.Allison (hits-traj02) +- Added virtual const G4std::vector* GetAttDefs/Values to G4VHit.hh. +- Added GetHit and GetSize to G4VHitsCollection. + +Oct 23, 2002, M.Dressel (digits_hits-V04-01-00) +- Added classes for event scoring in module "detector": + G4CellScoreComposer[.hh.cc], G4CellScoreValues.hh, + G4CellStoreScorer[.hh.cc], G4TrackLogger[.hh.cc]. + Jul 13, 2001, G.Cosmo (digits+hits-V03-02-00) - Cleanup of pedantic warnings in Linux-g++ ANSI setup. - Corrected "int" to "G4int". diff --git a/source/digits+hits/detector/GNUmakefile b/source/digits+hits/detector/GNUmakefile index 0d0f48d3fd..9ca94050f3 100644 --- a/source/digits+hits/detector/GNUmakefile +++ b/source/digits+hits/detector/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2000/01/31 09:36:55 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2002/10/28 10:01:49 dressel Exp $ # -------------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # -------------------------------------------------------------- @@ -19,6 +19,7 @@ CPPFLAGS += \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/digits+hits/hits/include \ -I$(G4BASE)/intercoms/include diff --git a/source/digits+hits/detector/History b/source/digits+hits/detector/History index 44fb18cc3e..bfb5cafe6a 100644 --- a/source/digits+hits/detector/History +++ b/source/digits+hits/detector/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 1999/01/07 16:06:24 gunter Exp $ +$Id: History,v 1.4 2002/11/04 10:51:49 dressel Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,5 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov, 4th 2002 M.Dressel + - remove G4std:: where it does not belong to + +Oct 28th, 2002 M.Dressel +- added G4CellScoreComposer[.hh.cc], G4CellScoreValues.hh, + G4CellStoreScorer[.hh.cc], G4TrackLogger[.hh.cc] + June 6, 98 M.Asai - Created. diff --git a/source/digits+hits/detector/include/G4CellScoreComposer.hh b/source/digits+hits/detector/include/G4CellScoreComposer.hh new file mode 100644 index 0000000000..062eb71b03 --- /dev/null +++ b/source/digits+hits/detector/include/G4CellScoreComposer.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: G4CellScoreComposer.hh,v 1.1 2002/10/28 10:01:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4CellScoreComposer +// +// Class description: +// This class will be created for every cell standard +// scoring should be applied. It does the actual scoring. +// GetStandardCellScoreValues() delivers the struct +// G4CellScoreValues does calculations based on the +// sums of scores and delivers the results in +// G4CellScoreValues. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4CellScoreComposer_hh +#define G4CellScoreComposer_hh G4CellScoreComposer_hh + +#include "G4CellScoreValues.hh" + +class G4Step; + +class G4CellScoreComposer { +public: // with description + + G4CellScoreComposer(); + + ~G4CellScoreComposer(); + + void EstimatorCalculation(const G4Step &step); + // get values for estimators based on + // track length + + void TrackEnters(); + // to be called if a track enters the cell + + void NewTrackPopedUp(); + // to be caled if the cell popultion is increased + + void SetCollisionWeight(G4double weight); + // to be called for every collision + // in the cell with the weight of the colliding particle + + void SetImportnace(G4double importance); + // informs G4CellScoreComposer about the importance of the cell + + const G4CellScoreValues &GetStandardCellScoreValues() const; + // return scores in G4CellScoreValues + +private: + mutable G4CellScoreValues fSCScoreValues; +}; + +G4std::ostream& operator<<(G4std::ostream &out, + const G4CellScoreComposer &ps); + + + +#endif + diff --git a/source/digits+hits/detector/include/G4CellScoreValues.hh b/source/digits+hits/detector/include/G4CellScoreValues.hh new file mode 100644 index 0000000000..7e6c67c7bf --- /dev/null +++ b/source/digits+hits/detector/include/G4CellScoreValues.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: G4CellScoreValues.hh,v 1.1 2002/10/28 10:01:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4CellScoreValues +// +// Class description: +// This struct holds sums of scores for standard scoring. +// +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4CellScoreValues_hh +#define G4CellScoreValues_hh G4CellScoreValues_hh + +#include "globals.hh" + +struct G4CellScoreValues { + G4double fSumSL; + G4double fSumSLW; + G4double fSumSLW_v; + G4double fSumSLWE; + G4double fSumSLWE_v; + G4int fSumTracksEntering; + G4int fSumPopulation; + G4int fSumCollisions; + G4double fSumCollisionsWeight; + G4double fNumberWeightedEnergy; + G4double fFluxWeightedEnergy; + G4double fAverageTrackWeight; + G4double fImportance; +}; + +#endif diff --git a/source/processes/transportation/include/G4PScorer.hh b/source/digits+hits/detector/include/G4CellStoreScorer.hh similarity index 62% rename from source/processes/transportation/include/G4PScorer.hh rename to source/digits+hits/detector/include/G4CellStoreScorer.hh index e7a69568e8..ed664ee15c 100644 --- a/source/processes/transportation/include/G4PScorer.hh +++ b/source/digits+hits/detector/include/G4CellStoreScorer.hh @@ -20,57 +20,54 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PScorer.hh,v 1.5 2002/04/10 13:14:16 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CellStoreScorer.hh,v 1.1 2002/10/28 10:01:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4PScorer +// Class G4CellStoreScorer // // Class description: +// +// This class invokes a G4VCellScorer according to the current +// step: +// - pre and post step are in a volume -> chose post gCell (cell) +// and call ScoreInVolume +// - cross boundary between gCells (cells) +// call ScoreAnExtingStep on the pre cell +// and ScoreAnEnteringStep on the post cell. // -// A scorer for standard tallies. Under development. -// See also G4VPScorer. -// It scores using informations form G4Step and G4PStep. -// The tallies are contained and related with "cells" -// in the container G4PMapPtkTallys (see G4PMapPtkTallys.hh) // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4Pscorer_hh -#define G4Pscorer_hh G4Pscorer_hh +// -#include "g4std/iostream" +#ifndef G4CellStoreScorer_hh +#define G4CellStoreScorer_hh G4CellStoreScorer_hh -#include "G4VPScorer.hh" -#include "G4PMapPtkTallys.hh" +#include "G4VScorer.hh" + +class G4VCellScorerStore; class G4Step; -class G4PStep; +class G4GeometryCellStep; +class G4GeometryCell; -class G4PScorer : public G4VPScorer +class G4CellStoreScorer : public G4VScorer { +public: // with description + explicit G4CellStoreScorer(G4VCellScorerStore &csc); + // take a G4VCellScorerStore created by the user to score + // the cells contained in it. -public: // with description - - G4PScorer(); - // simple construction - - ~G4PScorer(); - // simple destruction - - void Score(const G4Step &aStep, const G4PStep &aPStep); - // perform scoring for the G4Step and G4PStep + virtual ~G4CellStoreScorer(); + virtual void Score(const G4Step &aStep, const G4GeometryCellStep &aPStep); + // called to score a track for every step - const G4PMapPtkTallys &GetMapPtkTallys() const {return fPtkTallys;} - // get a reference to the G4PMapPtkTallys containing - // the tallies - private: - - G4PMapPtkTallys fPtkTallys; + G4VCellScorerStore &fCellScorerStore; }; -G4std::ostream& operator<<(G4std::ostream &out, const G4PScorer &ps); + #endif + diff --git a/source/digits+hits/detector/include/G4CollectionNameVector.hh b/source/digits+hits/detector/include/G4CollectionNameVector.hh index d00b3b0e17..c5e0dd2587 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.2 2001/07/11 09:58:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4CollectionNameVector_H diff --git a/source/digits+hits/detector/include/G4HCtable.hh b/source/digits+hits/detector/include/G4HCtable.hh index 042a6618ee..870f39425a 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.6 2001/07/11 09:58:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4HCtable_H diff --git a/source/digits+hits/detector/include/G4SDManager.hh b/source/digits+hits/detector/include/G4SDManager.hh index 959a0f1e41..ed43755a3f 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.4 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4SDManager_h diff --git a/source/digits+hits/detector/include/G4SDStructure.hh b/source/digits+hits/detector/include/G4SDStructure.hh index 3ed808b428..0e362f1b71 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.7 2001/07/13 15:00:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4SDStructure_h diff --git a/source/digits+hits/detector/include/G4SDmessenger.hh b/source/digits+hits/detector/include/G4SDmessenger.hh index 0a1cffaca5..ace7b73971 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.4 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4SDmessenger_h diff --git a/source/digits+hits/detector/include/G4SensitiveVolumeList.hh b/source/digits+hits/detector/include/G4SensitiveVolumeList.hh index 6a817a13f3..1304c29aae 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.6 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // 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 21e425cb2c..887cb9f05f 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.5 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------- // 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 new file mode 100644 index 0000000000..e1c609208b --- /dev/null +++ b/source/digits+hits/detector/include/G4TrackLogger.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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: G4TrackLogger.hh,v 1.1 2002/10/28 10:01:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4TrackLogger +// +// Class description: +// +// This class loggs every track via it's id. It may tell if +// a track has been logged. The loggs are cleared when ever +// the object has been informed about a new event. +// +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +// + +#ifndef G4TrackLogger_hh +#define G4TrackLogger_hh G4TrackLogger_hh + +#include "globals.hh" +#include "g4std/set" + +class G4TrackLogger { +public: + G4TrackLogger(); + ~G4TrackLogger(); + + void SetEventID(G4int id); + // inform the object about the event number + // if the event number changes the loggs are cleared. + + G4bool FirstEnterance(G4int trid); + // returns true if the track is new to this event. + + typedef G4std::set TrackIDsSet; + // log for the track ids. + +private: + G4int fPreviousEventID; + TrackIDsSet fTrackIDsSet; + +}; + +#endif diff --git a/source/digits+hits/detector/include/G4VReadOutGeometry.hh b/source/digits+hits/detector/include/G4VReadOutGeometry.hh index 2fecdb1186..2e38e80043 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.3 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ diff --git a/source/digits+hits/detector/include/G4VSensitiveDetector.hh b/source/digits+hits/detector/include/G4VSensitiveDetector.hh index 08725e2eed..a3f53fe47f 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.7 2001/07/13 15:00:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VSensitiveDetector_h diff --git a/source/digits+hits/detector/src/G4CellScoreComposer.cc b/source/digits+hits/detector/src/G4CellScoreComposer.cc new file mode 100644 index 0000000000..eb146a1521 --- /dev/null +++ b/source/digits+hits/detector/src/G4CellScoreComposer.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: G4CellScoreComposer.cc,v 1.2 2002/11/04 10:51:49 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4CellSCoreComposer.cc +// +// ---------------------------------------------------------------------- + +#include "G4CellScoreComposer.hh" +#include "G4Step.hh" + +G4CellScoreComposer::G4CellScoreComposer() +{ + G4CellScoreValues v = {0}; + fSCScoreValues = v; +} +G4CellScoreComposer::~G4CellScoreComposer() +{} + +void G4CellScoreComposer::EstimatorCalculation(const G4Step &aStep){ + + G4StepPoint *p = 0; + p = aStep.GetPreStepPoint(); + if (!p) { + G4Exception("G4CellScoreComposer::EstimatorCalculation: no pointer to pre PreStepPoint!"); + } + G4double sl = aStep.GetStepLength(); + G4double slw = sl * p->GetWeight(); + G4double slwe = slw * p->GetKineticEnergy(); + + G4double v = p->GetVelocity(); + if (!(v>0.)) { + v = 10e-9; + } + + fSCScoreValues.fSumSL += sl; + fSCScoreValues.fSumSLW += slw; + fSCScoreValues.fSumSLW_v += slw / v; + fSCScoreValues.fSumSLWE += slwe; + fSCScoreValues.fSumSLWE_v += slwe / v; + +} +void G4CellScoreComposer::TrackEnters(){ + fSCScoreValues.fSumTracksEntering++; +} +void G4CellScoreComposer::NewTrackPopedUp(){ + fSCScoreValues.fSumPopulation++; +} + +void G4CellScoreComposer::SetCollisionWeight(G4double weight){ + fSCScoreValues.fSumCollisions++; + fSCScoreValues.fSumCollisionsWeight+=weight; +} + + +const G4CellScoreValues &G4CellScoreComposer:: +GetStandardCellScoreValues() const { + if (fSCScoreValues.fSumSLW > 0.) { + //divide by SumSLW or SumSLW_v ? + fSCScoreValues.fNumberWeightedEnergy = + fSCScoreValues.fSumSLWE_v / fSCScoreValues.fSumSLW_v; + + fSCScoreValues.fFluxWeightedEnergy = + fSCScoreValues.fSumSLWE / fSCScoreValues.fSumSLW; + + fSCScoreValues.fAverageTrackWeight = + fSCScoreValues.fSumSLW / fSCScoreValues.fSumSL; + } + return fSCScoreValues; +} + +void G4CellScoreComposer::SetImportnace(G4double importance){ + fSCScoreValues.fImportance = importance; +}; + +G4std::ostream& operator<<(G4std::ostream &out, + const G4CellScoreComposer &ps) { + G4CellScoreValues scores = ps.GetStandardCellScoreValues(); + out << "Tracks entering: " << scores.fSumTracksEntering << G4endl; + out << "Population: " << scores.fSumPopulation << G4endl; + out << "Collisions: " << scores.fSumCollisions << G4endl; + out << "Collisions*Wgt: " << scores.fSumCollisionsWeight << G4endl; + out << "NumWGTedEnergy: " << scores.fNumberWeightedEnergy << G4endl; + out << "FluxWGTedEnergy: " << scores.fFluxWeightedEnergy << G4endl; + out << "Aver.TrackWGT*I: " << scores.fAverageTrackWeight* + scores.fImportance << G4endl; + return out; +} + diff --git a/source/processes/transportation/src/G4PScorer.cc b/source/digits+hits/detector/src/G4CellStoreScorer.cc similarity index 55% rename from source/processes/transportation/src/G4PScorer.cc rename to source/digits+hits/detector/src/G4CellStoreScorer.cc index 51c66b3e31..7f6b5e5800 100644 --- a/source/processes/transportation/src/G4PScorer.cc +++ b/source/digits+hits/detector/src/G4CellStoreScorer.cc @@ -21,57 +21,67 @@ // ******************************************************************** // // -// $Id: G4PScorer.cc,v 1.7 2002/04/09 17:40:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CellStoreScorer.cc,v 1.2 2002/11/04 10:51:49 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4PScorer.cc +// G4CellStoreScorer // // ---------------------------------------------------------------------- -#include "G4PScorer.hh" +#include "G4CellStoreScorer.hh" + +#include "G4VCellScorer.hh" + +#include "G4Track.hh" +#include "G4GeometryCell.hh" #include "G4Step.hh" -#include "G4PStep.hh" -#include "G4Sigma.hh" -#include "G4StateManager.hh" +#include "G4GeometryCellStep.hh" +#include "G4VCellScorerStore.hh" -G4PScorer::G4PScorer(){} -G4PScorer::~G4PScorer(){} +G4CellStoreScorer::G4CellStoreScorer(G4VCellScorerStore &csc) : + fCellScorerStore(csc) +{} -void G4PScorer::Score(const G4Step &aStep, const G4PStep &aPstep) -{ - G4Track *track = aStep.GetTrack(); +G4CellStoreScorer::~G4CellStoreScorer() +{} + +void G4CellStoreScorer:: +Score(const G4Step &aStep, const G4GeometryCellStep &aPstep){ + G4Track *track = 0; + track = aStep.GetTrack(); + if (track->GetTrackStatus()==fStopAndKill) { - G4cout << " track status is StopAndKill -> do nothing" << G4endl; + G4cout << "G4CellStoreScorer::Score: track status is StopAndKill -> do nothing" << G4endl; } - // do the scoring - else { - G4double weight = track->GetWeight(); - // the map fPtkTallys, the map nametallys and the "G4Sigma" will - // be setup the first time they are accesed. - G4PTouchableKey post_ptk(aPstep.fPostTouchableKey); - if (aPstep.fCrossBoundary) { - // Pstep crosses boundary - fPtkTallys[post_ptk]["WeighteOfHistorysEntering"].Xin(weight); - fPtkTallys[post_ptk]["HistorysEnteringWeighted"].Xin(1,weight); - fPtkTallys[post_ptk]["EnergyEnteringHistoryWeighted"]. - Xin(track->GetKineticEnergy(), weight); + else { + // chose the cells to be scored + G4GeometryCell pre_gCell(aPstep.GetPreGeometryCell()); + G4GeometryCell post_gCell(aPstep.GetPostGeometryCell()); + G4VCellScorer *post_cs = 0; + post_cs = fCellScorerStore.GetCellScore(post_gCell); + if (aPstep.GetCrossBoundary()) { + // entering post_gCell + if (post_cs) { + post_cs->ScoreAnEnteringStep(aStep, post_gCell); + } + // exiting pre_gCell + G4VCellScorer *pre_cs = 0; + pre_cs = fCellScorerStore.GetCellScore(pre_gCell); + if (pre_cs) { + pre_cs->ScoreAnExitingStep(aStep, pre_gCell); + } } - else { - // Pstep with both points in the same I volume - if (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) { - fPtkTallys[post_ptk]["WeighteOfCollisions"].Xin(weight); - fPtkTallys[post_ptk]["CollisionsWeighted"].Xin(1,weight); + else { + // step in post_gCell + if (post_cs) { + post_cs->ScoreAnInVolumeStep(aStep, post_gCell); } } } + } -G4std::ostream& operator<<(G4std::ostream &out, const G4PScorer &ps) -{ - out << ps.GetMapPtkTallys(); - return out; -} diff --git a/source/digits+hits/detector/src/G4HCtable.cc b/source/digits+hits/detector/src/G4HCtable.cc index 7f1b436015..4d9dbb94cb 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.6 2001/07/13 15:00:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4HCtable.hh" diff --git a/source/digits+hits/detector/src/G4SDManager.cc b/source/digits+hits/detector/src/G4SDManager.cc index bd37d8637d..8a538646cb 100644 --- a/source/digits+hits/detector/src/G4SDManager.cc +++ b/source/digits+hits/detector/src/G4SDManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDManager.cc,v 1.4 2001/07/13 15:00:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SDManager.cc,v 1.5 2002/11/27 19:03:42 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4SDManager.hh" @@ -58,6 +58,8 @@ G4SDManager::G4SDManager():verboseLevel(0) G4SDManager::~G4SDManager() { delete theMessenger; + delete HCtable; + delete treeTop; } void G4SDManager::AddNewDetector(G4VSensitiveDetector*aSD) diff --git a/source/digits+hits/detector/src/G4SDStructure.cc b/source/digits+hits/detector/src/G4SDStructure.cc index 2dc25e9ef2..48d5605285 100644 --- a/source/digits+hits/detector/src/G4SDStructure.cc +++ b/source/digits+hits/detector/src/G4SDStructure.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDStructure.cc,v 1.6 2001/07/13 15:00:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SDStructure.cc,v 1.7 2002/11/27 19:03:42 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4SDStructure @@ -45,6 +45,12 @@ G4SDStructure::G4SDStructure(G4String aPath):verboseLevel(0) G4SDStructure::~G4SDStructure() { + size_t nTree = structure.size(); + for(size_t iTree=0;iTree1) { + G4cout << "Error G4TrackLogger::FirstEnterance: " + << "more than one elm in set!" << G4endl; + + } + return first; +}; + diff --git a/source/digits+hits/detector/src/G4VReadOutGeometry.cc b/source/digits+hits/detector/src/G4VReadOutGeometry.cc index 4080a92451..c257dc4729 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.5 2001/07/13 15:00:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VReadOutGeometry.hh" diff --git a/source/digits+hits/detector/src/G4VSensitiveDetector.cc b/source/digits+hits/detector/src/G4VSensitiveDetector.cc index 5f0dddb627..3649342882 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.5 2001/07/13 15:00:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VSensitiveDetector #include "G4VSensitiveDetector.hh" diff --git a/source/digits+hits/digits/include/G4DCofThisEvent.hh b/source/digits+hits/digits/include/G4DCofThisEvent.hh index b5c971996e..49b40c98d2 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.7 2001/07/13 15:00:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4DCofThisEvent_h diff --git a/source/digits+hits/digits/include/G4TDigiCollection.hh b/source/digits+hits/digits/include/G4TDigiCollection.hh index 0f7b528646..5b9f3708d2 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.10 2001/07/13 15:00:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4TDigiCollection_h diff --git a/source/digits+hits/digits/include/G4VDigi.hh b/source/digits+hits/digits/include/G4VDigi.hh index cbed5161fe..6c5b0b1fff 100644 --- a/source/digits+hits/digits/include/G4VDigi.hh +++ b/source/digits+hits/digits/include/G4VDigi.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDigi.hh,v 1.7 2001/07/13 15:00:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VDigi_h diff --git a/source/digits+hits/digits/include/G4VDigiCollection.hh b/source/digits+hits/digits/include/G4VDigiCollection.hh index 877c57a63f..ff6609b5f7 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.7 2001/07/13 15:00:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VDigiCollection_h diff --git a/source/digits+hits/digits/src/G4DCofThisEvent.cc b/source/digits+hits/digits/src/G4DCofThisEvent.cc index 8bd9a10a2a..955014a4f5 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.6 2001/07/13 15:00:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4DCofThisEvent.hh" diff --git a/source/digits+hits/digits/src/G4TDigiCollection.cc b/source/digits+hits/digits/src/G4TDigiCollection.cc index 4a6cb80d6d..260cabab71 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.4 2001/07/13 15:00:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4TDigiCollection.hh" diff --git a/source/digits+hits/digits/src/G4VDigi.cc b/source/digits+hits/digits/src/G4VDigi.cc index 02c38c6fb5..8ec333620c 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.6 2001/07/13 15:00:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VDigi diff --git a/source/digits+hits/digits/src/G4VDigiCollection.cc b/source/digits+hits/digits/src/G4VDigiCollection.cc index 722a07d4da..f64c7e87f9 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.6 2001/07/13 15:00:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VDigiCollection diff --git a/source/digits+hits/hits/include/G4HCofThisEvent.hh b/source/digits+hits/hits/include/G4HCofThisEvent.hh index 3e11519e05..ee7b4ffab6 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.7 2001/07/13 15:00:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4HCofThisEvent_h diff --git a/source/digits+hits/hits/include/G4THitsCollection.hh b/source/digits+hits/hits/include/G4THitsCollection.hh index d995983eff..e1cf6b5144 100644 --- a/source/digits+hits/hits/include/G4THitsCollection.hh +++ b/source/digits+hits/hits/include/G4THitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4THitsCollection.hh,v 1.9 2001/07/13 15:00:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4THitsCollection.hh,v 1.11 2002/10/18 14:36:11 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4THitsCollection_h @@ -101,6 +101,12 @@ template class G4THitsCollection : public G4HitsCollection } // 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(); } + }; template inline void* G4THitsCollection::operator new(size_t) diff --git a/source/digits+hits/hits/include/G4VHit.hh b/source/digits+hits/hits/include/G4VHit.hh index f546d10fcc..9a81effefd 100644 --- a/source/digits+hits/hits/include/G4VHit.hh +++ b/source/digits+hits/hits/include/G4VHit.hh @@ -21,14 +21,19 @@ // ******************************************************************** // // -// $Id: G4VHit.hh,v 1.6 2001/07/13 15:00:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VHit.hh,v 1.9 2002/10/28 11:08:48 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VHit_h #define G4VHit_h 1 #include "globals.hh" +#include "g4std/vector" +#include "g4std/map" + +class G4AttDef; +class G4AttValue; // class description: // @@ -50,7 +55,22 @@ class G4VHit virtual void Draw(); virtual void Print(); + virtual const G4std::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. See + // G4Trajectory for an example of a concrete implementation of + // this method. + virtual const G4std::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. + }; #endif - diff --git a/source/digits+hits/hits/include/G4VHitsCollection.hh b/source/digits+hits/hits/include/G4VHitsCollection.hh index 05ae18352b..fc3b445be6 100644 --- a/source/digits+hits/hits/include/G4VHitsCollection.hh +++ b/source/digits+hits/hits/include/G4VHitsCollection.hh @@ -21,13 +21,14 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.hh,v 1.6 2001/07/13 15:00:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VHitsCollection.hh,v 1.10 2002/10/30 16:20:06 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VHitsCollection_h #define G4VHitsCollection_h 1 +class G4VHit; #include "globals.hh" // class description: @@ -61,6 +62,14 @@ class G4VHitsCollection { 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; }; + }; #endif diff --git a/source/digits+hits/hits/src/G4HCofThisEvent.cc b/source/digits+hits/hits/src/G4HCofThisEvent.cc index 82c3e10f55..118ea27b83 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.6 2001/07/13 15:00:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4HCofThisEvent.hh" diff --git a/source/digits+hits/hits/src/G4THitsCollection.cc b/source/digits+hits/hits/src/G4THitsCollection.cc index 2d017a5cc2..9d0d5fff19 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 2001/07/11 09:58:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4THitsCollection.hh" diff --git a/source/digits+hits/hits/src/G4VHit.cc b/source/digits+hits/hits/src/G4VHit.cc index 7ee24a7d85..497cea2c7e 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.4 2001/07/13 15:00:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VHit diff --git a/source/digits+hits/hits/src/G4VHitsCollection.cc b/source/digits+hits/hits/src/G4VHitsCollection.cc index 58c3c0a144..aea14c505b 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.4 2001/07/13 15:00:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VHitsCollection diff --git a/source/event/GNUmakefile b/source/event/GNUmakefile index 77036ef61f..d5d3500d46 100644 --- a/source/event/GNUmakefile +++ b/source/event/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2000/10/31 10:34:39 flei Exp $ +# $Id: GNUmakefile,v 1.4 2002/10/28 10:06:00 dressel Exp $ # ------------------------------------------------------------ # GNUmakefile for events library. Makoto Asai, 5/9/95. # ------------------------------------------------------------ @@ -30,6 +30,7 @@ CPPFLAGS += \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/digits+hits/detector/include \ -I$(G4BASE)/digits+hits/hits/include \ -I$(G4BASE)/digits+hits/digits/include \ diff --git a/source/event/History b/source/event/History index a953c2e048..2e7ff58741 100644 --- a/source/event/History +++ b/source/event/History @@ -1,4 +1,4 @@ -$Id: History,v 1.40 2002/06/08 20:36:18 asaim Exp $ +$Id: History,v 1.56 2002/12/06 19:17:57 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,47 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 06 2002, G.Cosmo (event-V04-01-11) +- Corrected tag to include also "event-V04-01-09" !! + +Dec 04 2002, M.Asai (event-V04-01-10) +- Migration to new G4ApplicationState + +Dec 03 2002, M.Asai (event-V04-01-09) +- Fix memory leak caused by deleting stacked tracks. + +Dec 03 2002, G.Cosmo (event-V04-01-08) +- Protect code defining interface to HepMC from compilation on Windows systems. + Temporarly solution until CLHEP will support the HepMC module on Windows. + +Nov 25 2002, M.Asai (event-V04-01-07) +- Fix a bug in G4CellScorer.cc + +Nov 18 2002, M.Asai (event-v04-01-06) +- Introducing HepMC interfaces +- Tag for Geant4 5.0 release + +Nov 4th 2002 M.Dressel (event-V04-01-05) + - remove G4std:: where it does not belong to + +Oct 28 2002, M.Dressel (event-V04-01-04) +- Added G4CellScorer[.hh.cc], G4CellScorerStore[.hh.cc], G4ScoreTable[.hh.cc], G4Scorer[.hh.cc] + +Oct 06 2002, M.Asai (event-V04-01-03) +- Protect user's mis-use of destructor of G4TrajectoryContainer. + By design it was expected that G4TrajectoryContainer would be + deleted by G4Event destructor, after "clearAndDestroy" is + separately invoked. + +Aug 19 2002, M.Asai (event-V04-01-02) +- Change the default value of charge for G4PrimaryParticle. + +Aug 13 2002, M.Asai (event-V04-01-01) +- G4Event: Introducing an EventAborted flag. + +Jun 29 2002, V.Ivantchenko (event-V04-01-00) +- G4PrimaryParticle: fixed initialisation of 'charge' in constructors. + Jun 8 2002, M.Asai (event-V04-00-04) - Fix G4TrajectoryContainer to be compliant to gcc-3.1. diff --git a/source/event/include/G4CellScorer.hh b/source/event/include/G4CellScorer.hh new file mode 100644 index 0000000000..df9ea80ca7 --- /dev/null +++ b/source/event/include/G4CellScorer.hh @@ -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: G4CellScorer.hh,v 1.1 2002/10/28 10:06:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4CellScorer +// +// Class description: +// +// This class does standard scoring for a cell. The cell may be a +// physical volume or replica in the mass or a parallel geometry. +// One object of this class per cell is used. +// See intercoms/include/G4VCellScorer.hh +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4CellScorer_hh +#define G4CellScorer_hh G4CellScorer_hh + +#include "G4VCellScorer.hh" +#include "G4TrackLogger.hh" +#include "G4CellScoreComposer.hh" +#include "G4CellScoreValues.hh" + +class G4CellScorer : public G4VCellScorer { +public: // with description + + G4CellScorer(); + + virtual ~G4CellScorer(); + + virtual void ScoreAnExitingStep(const G4Step &aStep, + const G4GeometryCell &gCell); + // to update scores related with the exiting of a cell + + virtual void ScoreAnEnteringStep(const G4Step &aStep, + const G4GeometryCell &gCell); + // to update scores related with the entering of a cell + + virtual void ScoreAnInVolumeStep(const G4Step &aStep, + const G4GeometryCell &gCell); + // to update scores related with the stepping inside the cell + + const G4CellScoreComposer &GetCellScoreComposer() const; + // return the G4CellScoreComposer + + const G4CellScoreValues &GetCellScoreValues() const; + // return scores in G4CellScoreValues + +private: + void ScorePopulation(const G4GeometryCell &post_gCell, + const G4Step &aStep); + G4CellScoreComposer fCellScoreComposer; + G4TrackLogger fTrackLogger; +}; + + + +#endif diff --git a/source/event/include/G4CellScorerStore.hh b/source/event/include/G4CellScorerStore.hh new file mode 100644 index 0000000000..cb3270a48c --- /dev/null +++ b/source/event/include/G4CellScorerStore.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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: G4CellScorerStore.hh,v 1.1 2002/10/28 10:06:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4CellScorerStore +// +// Class description: +// +// This class stores pointers to G4CellScorer. Objects of G4CellScorer for +// each cell may be created the first time a cell is hit: therefore +// SetAutoScorerCreate() has to be called before the run starts. +// Alternative the store may be filled with pointers to G4CellScorer +// before the run. In this case only the cells for which a G4CellScorer +// exists are scored. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4CellScorerStore_hh +#define G4CellScorerStore_hh G4CellScorerStore_hh + +#include "g4std/map" +#include "G4GeometryCell.hh" + +#include "globals.hh" +#include "G4VCellScorerStore.hh" +#include "G4GeometryCellComp.hh" + +class G4CellScorer; + +typedef G4std::map G4MapGeometryCellCellScorer; + +class G4CellScorerStore : public G4VCellScorerStore { +public: // with description + + G4CellScorerStore(); + + virtual ~G4CellScorerStore(); + + virtual G4VCellScorer *GetCellScore(const G4GeometryCell &gCell); + // return the current cell scorer + + void SetAutoScorerCreate(); + // if this function is called cell scorers will be created + // automatically for a cell the first time a track hits the cell + + G4CellScorer *AddCellScorer(const G4GeometryCell &gCell); + // add a G4CellScorer for the given cell, needed if + // SetAutoScorerCreate is not called. This way the user + // may specify to score only for the given cells. + + + G4CellScorer *AddCellScorer(G4VPhysicalVolume &vol, G4int repnum = 0); + // same functionallity as above only that the cell is specified + // by the physical volume and a replica number + + + const G4MapGeometryCellCellScorer &GetMapGeometryCellCellScorer() const ; + // return the map of GeometryCell to the G4CellScorer + + void DeleteAllScorers(); + +private: + G4MapGeometryCellCellScorer fMapGeometryCellCellScorer; + G4bool fAutoCreate; +}; + +#endif diff --git a/source/event/include/G4ClassificationOfNewTrack.hh b/source/event/include/G4ClassificationOfNewTrack.hh index 6425a211d0..af9e013184 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/event/include/G4EvManMessenger.hh b/source/event/include/G4EvManMessenger.hh index 73042e14ab..53a44c0301 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4EvManMessenger_h diff --git a/source/event/include/G4Event.hh b/source/event/include/G4Event.hh index 332b868029..68b1dd6916 100644 --- a/source/event/include/G4Event.hh +++ b/source/event/include/G4Event.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Event.hh,v 1.5 2001/07/13 15:01:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Event.hh,v 1.6 2002/08/13 18:17:53 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4Event_h @@ -83,6 +83,10 @@ class G4Event // TrajectoryContainer G4TrajectoryContainer * trajectoryContainer; + // Boolean flag which shall be set to true if the event is aborted and + // thus the containing information is not to be used. + G4bool eventAborted; + public: inline void SetEventID(G4int i) { eventID = i; } @@ -92,6 +96,8 @@ class G4Event { DC = value; } inline void SetTrajectoryContainer(G4TrajectoryContainer*value) { trajectoryContainer = value; } + inline void SetEventAborted() + { eventAborted = true; } public: // with description inline G4int GetEventID() const { return eventID; } @@ -137,6 +143,9 @@ class G4Event // (hits collections of this event), G4DCofThisEvent (digi collections // of this event), and G4TrajectoryContainer (trajectory coonainer), // respectively. + inline G4bool IsAborted() const { return eventAborted; } + // Return a boolean which indicates the event has been aborted and thus + // it should not be used for analysis. }; extern G4Allocator anEventAllocator; diff --git a/source/event/include/G4EventManager.hh b/source/event/include/G4EventManager.hh index 6d04bdc7ac..e1f0773bb4 100644 --- a/source/event/include/G4EventManager.hh +++ b/source/event/include/G4EventManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4EventManager.hh,v 1.9 2001/07/19 00:14:15 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/event/include/G4GeneralParticleSource.hh b/source/event/include/G4GeneralParticleSource.hh index b663a77443..1e2b6f776b 100644 --- a/source/event/include/G4GeneralParticleSource.hh +++ b/source/event/include/G4GeneralParticleSource.hh @@ -32,7 +32,7 @@ // /////////////////////////////////////////////////////////////////////////////// // $Id: G4GeneralParticleSource.hh,v 1.7 2001/10/19 16:48:28 flei Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ /////////////////////////////////////////////////////////////////////////////// // // Class Description: diff --git a/source/event/include/G4GeneralParticleSourceMessenger.hh b/source/event/include/G4GeneralParticleSourceMessenger.hh index cded0e9d8b..c5dfb4ffa0 100644 --- a/source/event/include/G4GeneralParticleSourceMessenger.hh +++ b/source/event/include/G4GeneralParticleSourceMessenger.hh @@ -32,7 +32,7 @@ // /////////////////////////////////////////////////////////////////////////////// // $Id: G4GeneralParticleSourceMessenger.hh,v 1.8 2002/02/26 16:34:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ /////////////////////////////////////////////////////////////////////////////// // // Class Description: diff --git a/source/event/include/G4HEPEvtInterface.hh b/source/event/include/G4HEPEvtInterface.hh index 9e8cb4a892..bc62c39c7b 100644 --- a/source/event/include/G4HEPEvtInterface.hh +++ b/source/event/include/G4HEPEvtInterface.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtInterface.hh,v 1.6 2001/07/11 09:58:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4HEPEvtInterface_h diff --git a/source/event/include/G4HEPEvtParticle.hh b/source/event/include/G4HEPEvtParticle.hh index 983ed46d57..a4ed1d272d 100644 --- a/source/event/include/G4HEPEvtParticle.hh +++ b/source/event/include/G4HEPEvtParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.hh,v 1.5 2001/07/13 15:01:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/event/include/G4HepMCAsciiReader.hh b/source/event/include/G4HepMCAsciiReader.hh new file mode 100644 index 0000000000..5a236cd519 --- /dev/null +++ b/source/event/include/G4HepMCAsciiReader.hh @@ -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. * +// ******************************************************************** + +// ==================================================================== +// +// G4HepMCAsciiReader.hh +// $Id: G4HepMCAsciiReader.hh,v 1.1 2002/11/18 22:43:13 asaim Exp $ +// +// ==================================================================== +#ifndef G4_HEPMC_ASCII_READER_H +#define G4_HEPMC_ASCII_READER_H + +#include "g4std/fstream" +#include "G4HepMCInterface.hh" +#include "CLHEP/HepMC/ReadHepMC.h" + +class G4HepMCAsciiReaderMessenger; + +class G4HepMCAsciiReader : public G4HepMCInterface { +protected: + G4String filename; + G4std::ifstream from; + + G4int verbose; + G4HepMCAsciiReaderMessenger* messenger; + + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + G4HepMCAsciiReader(); + ~G4HepMCAsciiReader(); + + // set/get methods + void SetFileName(G4String name); + G4String GetFileName() const; + + void SetVerboseLevel(G4int i); + G4int GetVerboseLevel() const; + + // methods... + void Initialize(); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void G4HepMCAsciiReader::SetFileName(G4String name) +{ + filename= name; +} + +inline G4String G4HepMCAsciiReader::GetFileName() const +{ + return filename; +} + +inline void G4HepMCAsciiReader::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int G4HepMCAsciiReader::GetVerboseLevel() const +{ + return verbose; +} + +#endif diff --git a/source/event/include/G4HepMCAsciiReaderMessenger.hh b/source/event/include/G4HepMCAsciiReaderMessenger.hh new file mode 100644 index 0000000000..5e911f5fad --- /dev/null +++ b/source/event/include/G4HepMCAsciiReaderMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// G4HepMCAsciiReaderMessenger.hh +// $Id: G4HepMCAsciiReaderMessenger.hh,v 1.1 2002/11/18 22:43:13 asaim Exp $ +// +// ==================================================================== +#ifndef G4_HEPMC_ASCII_READER_MESSENGER_H +#define G4_HEPMC_ASCII_READER_MESSENGER_H + +#include "G4UImessenger.hh" + +class G4HepMCAsciiReader; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class G4HepMCAsciiReaderMessenger : public G4UImessenger { +private: + G4HepMCAsciiReader* gen; + + G4UIdirectory* dir; + G4UIcmdWithAnInteger* verbose; + G4UIcmdWithAString* open; + +public: + G4HepMCAsciiReaderMessenger(G4HepMCAsciiReader* agen); + ~G4HepMCAsciiReaderMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/source/event/include/G4HepMCInterface.hh b/source/event/include/G4HepMCInterface.hh new file mode 100644 index 0000000000..21a02d5748 --- /dev/null +++ b/source/event/include/G4HepMCInterface.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. * +// ******************************************************************** + +// ==================================================================== +// +// G4HepMCInterface.hh +// $Id: G4HepMCInterface.hh,v 1.1 2002/11/18 22:43:13 asaim Exp $ +// +// A base class for primary generation via HepMC object. +// This class is derived from G4VPrimaryGenerator. +// +// ==================================================================== +#ifndef G4_HEPMC_INTERFACE_H +#define G4_HEPMC_INTERFACE_H + +#include "G4VPrimaryGenerator.hh" +#include "CLHEP/HepMC/GenEvent.h" + +class G4HepMCInterface : public G4VPrimaryGenerator { +protected: + // Note that the life of HepMC event object must be handled by users. + // In the default implementation, a current HepMC event will be + // deleted at GeneratePrimaryVertex() in the next event. + HepMC::GenEvent* hepmcEvent; // (care for single event case only) + + // We have to take care for the position of primaries because + // primary vertices outside the world voulme give rise to G4Execption. + // If the default implementation is not adequate, an alternative + // can be implemented in your own class. + virtual G4bool CheckVertexInsideWorld(const G4ThreeVector& pos) const; + + // service method for conversion from HepMC::GenEvent to G4Event + void HepMC2G4(const HepMC::GenEvent* hepmcevt, G4Event* g4event); + + // Implement this method in his/her own concrete class. + // An empty event will be created in default. + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + G4HepMCInterface(); + virtual ~G4HepMCInterface(); + + // set/get methods + HepMC::GenEvent* GetHepMCGenEvent() const; + + // The default behavior is that a single HepMC event generated by + // GenerateHepMCEvent() will be converted to G4Event through HepMC2G4(). + virtual void GeneratePrimaryVertex(G4Event* anEvent); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline HepMC::GenEvent* G4HepMCInterface::GetHepMCGenEvent() const +{ + return hepmcEvent; +} + +#endif diff --git a/source/event/include/G4ParticleGun.hh b/source/event/include/G4ParticleGun.hh index 7471d49f93..e67724866a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4ParticleGun_h diff --git a/source/event/include/G4ParticleGunMessenger.hh b/source/event/include/G4ParticleGunMessenger.hh index 3368b7001f..ab4fc24851 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/event/include/G4PrimaryParticle.hh b/source/event/include/G4PrimaryParticle.hh index de21f59aa1..b3e06f3c3d 100644 --- a/source/event/include/G4PrimaryParticle.hh +++ b/source/event/include/G4PrimaryParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryParticle.hh,v 1.10 2001/07/13 15:01:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/event/include/G4PrimaryTransformer.hh b/source/event/include/G4PrimaryTransformer.hh index 651b0aef68..0cd8543579 100644 --- a/source/event/include/G4PrimaryTransformer.hh +++ b/source/event/include/G4PrimaryTransformer.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryTransformer.hh,v 1.6 2001/07/18 01:25:44 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4PromaryTransformer_h diff --git a/source/event/include/G4PrimaryVertex.hh b/source/event/include/G4PrimaryVertex.hh index dbd19a0d3e..a1b4cf6bbf 100644 --- a/source/event/include/G4PrimaryVertex.hh +++ b/source/event/include/G4PrimaryVertex.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryVertex.hh,v 1.7 2001/07/13 15:01:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/geometry/biasing/include/G4Sigma.hh b/source/event/include/G4ScoreTable.hh similarity index 54% rename from source/geometry/biasing/include/G4Sigma.hh rename to source/event/include/G4ScoreTable.hh index 9bd04328d1..78b21d5396 100644 --- a/source/geometry/biasing/include/G4Sigma.hh +++ b/source/event/include/G4ScoreTable.hh @@ -20,87 +20,69 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4Sigma.hh,v 1.6 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ScoreTable.hh,v 1.1 2002/10/28 10:06:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4Sigma +// Class G4ScoreTable // // Class description: +// +// This class creates a table from a given G4CellScoreStore +// and prints it to a given output stream. // -// A class for simple Gaussian statistics taking into account -// weights. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4Sigma_hh -#define G4Sigma_hh G4Sigma_hh +// + +#ifndef G4ScoreTable_hh +#define G4ScoreTable_hh G4ScoreTable_hh #include "g4std/iostream" +#include "g4std/iomanip" +#include "g4std/vector" + #include "globals.hh" +#include "G4CellScorerStore.hh" +#include "G4CellScoreValues.hh" +class G4VIStore; -class G4Sigma -{ - - public: // with description - G4Sigma(); - // call Init() +class G4ScoreTable +{ +public: // with description + explicit G4ScoreTable(const G4VIStore *aIStore = 0); - ~G4Sigma(); - // simple deonstruction + ~G4ScoreTable(); - void Init(); - // initialisation + void Print(const G4MapGeometryCellCellScorer &cs, + G4std::ostream *out = 0); + // create the table and print it to the ouput stream. - G4int Xin(G4double x, G4double w = 1.); - // enter a value [with a weight] + void PrintHeader(G4std::ostream *out); + // print the table header, done by the above Print() function - G4int GetEntries() const; - // get the number of entries + void PrintTable(const G4MapGeometryCellCellScorer &cs, + G4std::ostream *out); + // print the table contend, done by the above Print() function - G4double GetMean() const; - // get the weighted mean value: Sum(w*x)/Sum(w) + G4std::string FillString(const G4std::string &name, + char c, G4int n, G4bool back = true); + // create a string of length n, by filling up + // name with the char c. - G4double GetSigma() const; - // get the weighted sigma: sqrt(Sum(w*x*x)/Sum(w)-mean^2) - - G4double GetXsum() const; - // get sum over x: Sum(x) - - G4double GetXXsum() const; - // get sum over squared x: Sum(x*x) - - G4double GetSumOfWeights() const; - // get sum over weights: Sum(w) - - G4double GetWeightedXsum() const; - // get weighted sum over x*w: Sum(w*x) - - G4double GetWeightedXXsum() const; - // get weighted sum over squarted x: Sum(W*x*x) - - private: - - G4int GetCalc() const; - G4int Calculate() const; - void Error(const G4String &m); - - private: - - G4int fEntries; - mutable G4double fMean; - mutable G4double fSigma; - G4double fXsum; - G4double fXXsum; - G4double fWsum; - G4double fWXsum; - G4double fWXXsum; - mutable G4int fcalc; +private: + G4ScoreTable(const G4ScoreTable &); + G4ScoreTable &operator=(const G4ScoreTable &); + G4String CreateName(const G4GeometryCell &gCell); + void PrintLine(const G4String &name, + const G4CellScoreValues &sc_scores, + G4std::ostream *out); + const G4VIStore *fIStore; + G4int FieldName; + G4int FieldValue; }; -G4std::ostream& operator<<(G4std::ostream &out, const G4Sigma &s); - #endif diff --git a/source/event/include/G4Scorer.hh b/source/event/include/G4Scorer.hh new file mode 100644 index 0000000000..7e6602f272 --- /dev/null +++ b/source/event/include/G4Scorer.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: G4Scorer.hh,v 1.1 2002/10/28 10:06:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4Scorer +// +// Class description: +// +// This is a simple scorer using the G4CellScorerStore and +// G4CellStoreScorer. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4Scorer_hh +#define G4Scorer_hh G4Scorer_hh + +#include "G4VScorer.hh" +#include "G4CellScorerStore.hh" +#include "G4CellStoreScorer.hh" + +class G4Scorer : public G4VScorer { +public: // with description + G4Scorer(); + + virtual ~G4Scorer(); + + virtual void Score(const G4Step &aStep, const G4GeometryCellStep &aPStep); + // called to score a track for every step + + const G4MapGeometryCellCellScorer &GetMapGeometryCellCellScorer() const ; + // returns a reference to the store containing the scores + +private: + G4Scorer(const G4Scorer &); + G4Scorer &operator=(const G4Scorer &); + G4CellScorerStore fCellScorerStore; + G4CellStoreScorer fCellStoreScorer; +}; + +#endif diff --git a/source/event/include/G4StackManager.hh b/source/event/include/G4StackManager.hh index 7fe55c7141..8a1d963c56 100644 --- a/source/event/include/G4StackManager.hh +++ b/source/event/include/G4StackManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StackManager.hh,v 1.9 2002/05/29 22:51:45 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StackManager.hh,v 1.10 2002/08/24 17:36:23 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -52,9 +52,6 @@ class G4VTrajectory; // waiting stack, and the postpone to next event stack. The meanings // of each stack is descrived in the Geant4 user's manual. // -// The only method the user can invoke is ReClassify(), which can -// be used from the user's concrete class of G4UserStackingAction. -// class G4StackManager diff --git a/source/event/include/G4StackedTrack.hh b/source/event/include/G4StackedTrack.hh index 95b981e2b1..5070552571 100644 --- a/source/event/include/G4StackedTrack.hh +++ b/source/event/include/G4StackedTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.hh,v 1.6 2001/07/13 15:01:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/include/G4StackingMessenger.hh b/source/event/include/G4StackingMessenger.hh index d7ade59ae3..19ef8d5c6a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4StackingMessenger_h diff --git a/source/event/include/G4TrackStack.hh b/source/event/include/G4TrackStack.hh index cb8d860484..24456b7231 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/include/G4TrajectoryContainer.hh b/source/event/include/G4TrajectoryContainer.hh index 0fc4731169..40538648d2 100644 --- a/source/event/include/G4TrajectoryContainer.hh +++ b/source/event/include/G4TrajectoryContainer.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.hh,v 1.10 2002/06/08 20:36:18 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4TrajectoryContainer diff --git a/source/event/include/G4UserEventAction.hh b/source/event/include/G4UserEventAction.hh index 195d8b3338..5d3d9f3976 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/event/include/G4UserStackingAction.hh b/source/event/include/G4UserStackingAction.hh index 7a47dc638c..889e1983e9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UserStackingAction_h diff --git a/source/event/include/G4VPrimaryGenerator.hh b/source/event/include/G4VPrimaryGenerator.hh index 915e5b7659..7681f2253e 100644 --- a/source/event/include/G4VPrimaryGenerator.hh +++ b/source/event/include/G4VPrimaryGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPrimaryGenerator.hh,v 1.6 2001/11/21 13:48:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VPrimaryGenerator_h diff --git a/source/event/include/eventgendefs.hh b/source/event/include/eventgendefs.hh index 5f86b2d528..be4cb4139d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef EventGenerator_DEBUG #define EventGenerator_DEBUG diff --git a/source/event/include/evmandefs.hh b/source/event/include/evmandefs.hh index e05bb7aa2a..5e31c4c913 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ///#define G4EVENTMANAGER_DEBUG 1 diff --git a/source/event/include/trajectoryControl.hh b/source/event/include/trajectoryControl.hh index 2f939aefcd..09b59c36f0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ////#define G4_STORE_TRAJECTORY 1 diff --git a/source/event/src/G4CellScorer.cc b/source/event/src/G4CellScorer.cc new file mode 100644 index 0000000000..e2ee37698d --- /dev/null +++ b/source/event/src/G4CellScorer.cc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: G4CellScorer.cc,v 1.2 2002/11/23 12:30:40 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4CellScorer.cc +// +// ---------------------------------------------------------------------- + +#include "G4CellScorer.hh" +#include "G4GeometryCell.hh" +#include "G4Track.hh" +#include "G4EventManager.hh" +#include "G4Event.hh" + +G4CellScorer::G4CellScorer() +{} + +G4CellScorer::~G4CellScorer() +{} + +void G4CellScorer::ScoreAnExitingStep(const G4Step &aStep, + const G4GeometryCell &pre_gCell){ + fCellScoreComposer.EstimatorCalculation(aStep); + ScorePopulation(pre_gCell, aStep); +} + +void G4CellScorer::ScoreAnEnteringStep(const G4Step &aStep, + const G4GeometryCell &post_gCell){ + // population counting + ScorePopulation(post_gCell, aStep); + // entering tracks + fCellScoreComposer.TrackEnters(); +} + +void G4CellScorer::ScoreAnInVolumeStep(const G4Step &aStep, + const G4GeometryCell &post_gCell){ + // population counting + ScorePopulation(post_gCell, aStep); + // collisions counting + if (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) { + fCellScoreComposer.SetCollisionWeight(aStep.GetTrack()->GetWeight()); + } + + // counting for step length estimators + fCellScoreComposer.EstimatorCalculation(aStep); + +} + +void G4CellScorer::ScorePopulation(const G4GeometryCell &post_gCell, + const G4Step &aStep) { + // check for new event + fTrackLogger.SetEventID(G4EventManager::GetEventManager()-> + GetConstCurrentEvent()-> + GetEventID()); + // increase population + if (fTrackLogger.FirstEnterance(aStep.GetTrack()->GetTrackID())) { + fCellScoreComposer.NewTrackPopedUp(); + } +} + +const G4CellScoreComposer &G4CellScorer::GetCellScoreComposer() const { + return fCellScoreComposer; +} + +const G4CellScoreValues &G4CellScorer::GetCellScoreValues() const { + return fCellScoreComposer.GetStandardCellScoreValues(); +} + diff --git a/source/event/src/G4CellScorerStore.cc b/source/event/src/G4CellScorerStore.cc new file mode 100644 index 0000000000..713acbc10d --- /dev/null +++ b/source/event/src/G4CellScorerStore.cc @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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: G4CellScorerStore.cc,v 1.2 2002/11/04 10:52:39 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4CellScorerStore.cc +// +// ---------------------------------------------------------------------- + +#include "G4CellScorerStore.hh" + +#include "G4CellScorer.hh" + +G4CellScorerStore::G4CellScorerStore() : + fAutoCreate(false) +{} + +G4CellScorerStore::~G4CellScorerStore() +{} + +void G4CellScorerStore::SetAutoScorerCreate(){ + fAutoCreate = true; +} + +G4CellScorer *G4CellScorerStore:: +AddCellScorer(G4VPhysicalVolume &vol, G4int repnum) { + G4CellScorer *s = 0; + s = new G4CellScorer; + if (!s) { + G4Exception("ERROR:G4CellScorerStore::AddCellScorer new failed to create G4CellScorer!"); + } + fMapGeometryCellCellScorer[G4GeometryCell(vol, repnum)] = s; + return s; +}; + +G4CellScorer *G4CellScorerStore:: +AddCellScorer(const G4GeometryCell &gCell) { + G4CellScorer *s = 0; + s = new G4CellScorer; + if (!s) { + G4Exception("ERROR:G4CellScorerStore::AddCellScorer new failed to create G4CellScorer!"); + } + fMapGeometryCellCellScorer[gCell] = s; + return s; +}; + +const G4MapGeometryCellCellScorer &G4CellScorerStore::GetMapGeometryCellCellScorer() const { + return fMapGeometryCellCellScorer; +} + +G4VCellScorer *G4CellScorerStore:: +GetCellScore(const G4GeometryCell &gCell){ + G4VCellScorer *s=0; + G4MapGeometryCellCellScorer::iterator it = fMapGeometryCellCellScorer.find(gCell); + if (it != fMapGeometryCellCellScorer.end()) { + s = (*it).second; + } + else { + if (fAutoCreate) { + s = AddCellScorer(gCell); + } + } + return s; +} + +void G4CellScorerStore::DeleteAllScorers(){ + for(G4MapGeometryCellCellScorer::iterator it = + fMapGeometryCellCellScorer.begin(); + it!=fMapGeometryCellCellScorer.end(); + ++it){ + delete it->second; + } + fMapGeometryCellCellScorer.clear(); +} diff --git a/source/event/src/G4EvManMessenger.cc b/source/event/src/G4EvManMessenger.cc index d9f1b45345..4bef0aadb4 100644 --- a/source/event/src/G4EvManMessenger.cc +++ b/source/event/src/G4EvManMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvManMessenger.cc,v 1.3 2001/07/11 09:58:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvManMessenger.cc,v 1.4 2002/12/04 18:43:15 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- @@ -40,7 +40,7 @@ G4EvManMessenger::G4EvManMessenger(G4EventManager * fEvMan) abortCmd = new G4UIcmdWithoutParameter("/event/abort",this); abortCmd->SetGuidance("Abort current event."); - abortCmd->AvailableForStates(EventProc); + abortCmd->AvailableForStates(G4State_EventProc); verboseCmd = new G4UIcmdWithAnInteger("/event/verbose",this); verboseCmd->SetGuidance("Set Verbose level of event management category."); diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index a1ff8efbde..3776111f80 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Event.cc,v 1.4 2001/07/13 15:01:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Event.cc,v 1.5 2002/08/13 18:17:53 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4Event @@ -40,13 +40,13 @@ G4Allocator anEventAllocator; G4Event::G4Event() :eventID(0), thePrimaryVertex(0),numberOfPrimaryVertex(0), - HC(0),DC(0),trajectoryContainer(0) + HC(0),DC(0),trajectoryContainer(0),eventAborted(false) {;} G4Event::G4Event(G4int evID) :eventID(evID), thePrimaryVertex(0),numberOfPrimaryVertex(0), - HC(0),DC(0),trajectoryContainer(0) + HC(0),DC(0),trajectoryContainer(0),eventAborted(false) {;} G4Event::~G4Event() diff --git a/source/event/src/G4EventManager.cc b/source/event/src/G4EventManager.cc index f97e259e74..8b5b6aa4d9 100644 --- a/source/event/src/G4EventManager.cc +++ b/source/event/src/G4EventManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4EventManager.cc,v 1.12 2002/05/15 05:47:49 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/event/src/G4GeneralParticleSource.cc b/source/event/src/G4GeneralParticleSource.cc index bef0a542e9..e7d4728610 100644 --- a/source/event/src/G4GeneralParticleSource.cc +++ b/source/event/src/G4GeneralParticleSource.cc @@ -39,7 +39,7 @@ // /////////////////////////////////////////////////////////////////////////////// // $Id: G4GeneralParticleSource.cc,v 1.14 2001/10/19 16:48:28 flei Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ /////////////////////////////////////////////////////////////////////////////// // // CHANGE HISTORY diff --git a/source/event/src/G4HEPEvtInterface.cc b/source/event/src/G4HEPEvtInterface.cc index a803c18a26..83764544fe 100644 --- a/source/event/src/G4HEPEvtInterface.cc +++ b/source/event/src/G4HEPEvtInterface.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtInterface.cc,v 1.7 2001/11/20 23:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- diff --git a/source/event/src/G4HEPEvtParticle.cc b/source/event/src/G4HEPEvtParticle.cc index 089d8a7c23..e82fa63f57 100644 --- a/source/event/src/G4HEPEvtParticle.cc +++ b/source/event/src/G4HEPEvtParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.cc,v 1.4 2001/07/13 15:01:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/persistency/geometry/management/src/G4PPVPlacement.cc b/source/event/src/G4HepMCAsciiReader.cc similarity index 52% rename from source/persistency/geometry/management/src/G4PPVPlacement.cc rename to source/event/src/G4HepMCAsciiReader.cc index 427e55a925..dad301d18e 100644 --- a/source/persistency/geometry/management/src/G4PPVPlacement.cc +++ b/source/event/src/G4HepMCAsciiReader.cc @@ -19,67 +19,58 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** + +// ==================================================================== // +// G4HepMCAsciiReader.cc +// $Id: G4HepMCAsciiReader.cc,v 1.2 2002/12/03 14:44:32 gcosmo Exp $ // -// $Id: G4PPVPlacement.cc,v 1.3 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// +// ==================================================================== -#include "G4PPVPlacement.hh" +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module -#include "HepODBMS/clustering/HepClustering.h" +#include "G4HepMCAsciiReader.hh" +#include "G4HepMCAsciiReaderMessenger.hh" -#include "globals.hh" +//#include "g4std/iostream" -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" - -#include "G4PVPlacement.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4PLogicalVolume.hh" - -G4PPVPlacement::G4PPVPlacement( - G4VPhysicalVolume* PhysVol, - HepRef(G4PLogicalVolume) persLogVol) - : G4PVPhysicalVolume(PhysVol, persLogVol) +//////////////////////////////////////// +G4HepMCAsciiReader::G4HepMCAsciiReader() + : filename("xxx.dat"), verbose(0) +//////////////////////////////////////// { - fcopyNo = PhysVol->GetCopyNo(); - fmany = PhysVol->IsMany(); + messenger= new G4HepMCAsciiReaderMessenger(this); } -G4PPVPlacement::~G4PPVPlacement() +///////////////////////////////////////// +G4HepMCAsciiReader::~G4HepMCAsciiReader() +///////////////////////////////////////// { + delete messenger; } -G4VPhysicalVolume* G4PPVPlacement::MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother ) +///////////////////////////////////// +void G4HepMCAsciiReader::Initialize() +///////////////////////////////////// { - G4RotationMatrix* pRot = GetRotation(); - G4ThreeVector tlate = GetTranslation(); - G4String pName; - - G4VPhysicalVolume* aPhysVol = new G4PVPlacement( - pRot, tlate, pName = fname, aLogical, aMother, false, 0); - - return aPhysVol; + from.close(); + from.open(filename.c_str(), G4std::ios::in); } -G4bool G4PPVPlacement::IsMany() const +///////////////////////////////////////////////////////// +HepMC::GenEvent* G4HepMCAsciiReader::GenerateHepMCEvent() +///////////////////////////////////////////////////////// { - return fmany; + HepMC::GenEvent* evt= HepMC::readGenEvent(from); + if(evt==0) { + return 0; // no more event + from.close(); + } + + if(verbose>0) evt-> print(); + + return evt; } -G4int G4PPVPlacement::GetCopyNo() const -{ - return fcopyNo; -} - - -void G4PPVPlacement::SetCopyNo(G4int newCopyNo) -{ - fcopyNo= newCopyNo; -} +#endif diff --git a/source/event/src/G4HepMCAsciiReaderMessenger.cc b/source/event/src/G4HepMCAsciiReaderMessenger.cc new file mode 100644 index 0000000000..42c0088ccb --- /dev/null +++ b/source/event/src/G4HepMCAsciiReaderMessenger.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. * +// ******************************************************************** + +// ==================================================================== +// +// G4HepMCAsciiReaderMessenger.cc +// $Id: G4HepMCAsciiReaderMessenger.cc,v 1.2 2002/12/03 14:44:32 gcosmo Exp $ +// +// ==================================================================== + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module + +#include "G4HepMCAsciiReaderMessenger.hh" +#include "G4HepMCAsciiReader.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////// +G4HepMCAsciiReaderMessenger::G4HepMCAsciiReaderMessenger + (G4HepMCAsciiReader* agen) + : gen(agen) +//////////////////////////////////////////////////////// +{ + dir= new G4UIdirectory("/generator/hepmcAscii/"); + dir-> SetGuidance("Reading HepMC event from an Ascii file"); + + verbose= + new G4UIcmdWithAnInteger("/generator/hepmcAscii/verbose", this); + verbose-> SetGuidance("Set verbose level"); + verbose-> SetParameterName("verboseLevel", false, false); + verbose-> SetRange("verboseLevel>=0 && verboseLevel<=1"); + + open= new G4UIcmdWithAString("/generator/hepmcAscii/open", this); + open-> SetGuidance("(re)open data file (HepMC Ascii format)"); + open-> SetParameterName("input ascii file", true, true); +} + +/////////////////////////////////////////////////////////// +G4HepMCAsciiReaderMessenger::~G4HepMCAsciiReaderMessenger() +/////////////////////////////////////////////////////////// +{ + delete verbose; + delete open; + + delete dir; +} + +/////////////////////////////////////////////////////////////////// +void G4HepMCAsciiReaderMessenger::SetNewValue(G4UIcommand* command, + G4String newValues) +/////////////////////////////////////////////////////////////////// +{ + if (command==verbose) { + int level= verbose-> GetNewIntValue(newValues); + gen-> SetVerboseLevel(level); + } else if (command==open) { + gen-> SetFileName(newValues); + G4cout << "HepMC Ascii inputfile: " + << gen-> GetFileName() << G4endl; + gen-> Initialize(); + } +} + + +/////////////////////////////////////////////////////////////////////////// +G4String G4HepMCAsciiReaderMessenger::GetCurrentValue(G4UIcommand* command) +/////////////////////////////////////////////////////////////////////////// +{ + G4String cv; + + if (command == verbose) { + cv= verbose-> ConvertToString(gen-> GetVerboseLevel()); + } else if (command == open) { + cv= gen-> GetFileName(); + } + return cv; +} + +#endif diff --git a/source/event/src/G4HepMCInterface.cc b/source/event/src/G4HepMCInterface.cc new file mode 100644 index 0000000000..97a7d0c82e --- /dev/null +++ b/source/event/src/G4HepMCInterface.cc @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +// ==================================================================== +// +// G4HepMCInterface.cc +// $Id: G4HepMCInterface.cc,v 1.2 2002/12/03 14:44:33 gcosmo Exp $ +// +// ==================================================================== + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module + +#include "G4HepMCInterface.hh" + +#include "globals.hh" +#include "G4LorentzVector.hh" +#include "G4Event.hh" +#include "G4PrimaryParticle.hh" +#include "G4PrimaryVertex.hh" +#include "G4TransportationManager.hh" + +//////////////////////////////////// +G4HepMCInterface::G4HepMCInterface() + : hepmcEvent(0) +//////////////////////////////////// +{ +} + +///////////////////////////////////// +G4HepMCInterface::~G4HepMCInterface() +///////////////////////////////////// +{ + delete hepmcEvent; +} + +///////////////////////////////////////////////////////// +G4bool G4HepMCInterface::CheckVertexInsideWorld + (const G4ThreeVector& pos) const +///////////////////////////////////////////////////////// +{ + G4Navigator* navigator= G4TransportationManager::GetTransportationManager() + -> GetNavigatorForTracking(); + + G4VPhysicalVolume* world= navigator-> GetWorldVolume(); + G4VSolid* solid= world-> GetLogicalVolume()-> GetSolid(); + EInside qinside= solid-> Inside(pos); + + if( qinside != kInside) return false; + else return true; +} + +//////////////////////////////////////////////////////////////// +void G4HepMCInterface::HepMC2G4(const HepMC::GenEvent* hepmcevt, + G4Event* g4event) +//////////////////////////////////////////////////////////////// +{ + for(HepMC::GenEvent::vertex_const_iterator vitr= hepmcevt->vertices_begin(); + vitr != hepmcevt->vertices_end(); ++vitr ) { // loop for vertex ... + + // real vertex? + G4bool qvtx=false; + for (HepMC::GenVertex::particle_iterator + pitr= (*vitr)->particles_begin(HepMC::children); + pitr != (*vitr)->particles_end(HepMC::children); ++pitr) { + + if (!(*pitr)->end_vertex() && (*pitr)->status()==1) { + qvtx=true; + break; + } + } + if (!qvtx) continue; + + // check world boundary + G4LorentzVector xvtx= (*vitr)-> position(); + if (! CheckVertexInsideWorld(xvtx.vect()*mm)) continue; + + // create G4PrimaryVertex and associated G4PrimaryParticles + G4PrimaryVertex* g4vtx= + new G4PrimaryVertex(xvtx.x()*mm, xvtx.y()*mm, xvtx.z()*mm, + xvtx.t()*mm/c_light); + + for (HepMC::GenVertex::particle_iterator + vpitr= (*vitr)->particles_begin(HepMC::children); + vpitr != (*vitr)->particles_end(HepMC::children); ++vpitr) { + + if( (*vpitr)->status() != 1 ) continue; + + G4int pdgcode= (*vpitr)-> pdg_id(); + G4LorentzVector p= (*vpitr)-> momentum(); + G4PrimaryParticle* g4prim= + new G4PrimaryParticle(pdgcode, p.x()*GeV, p.y()*GeV, p.z()*GeV); + + g4vtx-> SetPrimary(g4prim); + } + g4event-> AddPrimaryVertex(g4vtx); + } +} + + +/////////////////////////////////////////////////////// +HepMC::GenEvent* G4HepMCInterface::GenerateHepMCEvent() +/////////////////////////////////////////////////////// +{ + HepMC::GenEvent* aevent= new HepMC::GenEvent(); + return aevent; +} + +////////////////////////////////////////////////////////////// +void G4HepMCInterface::GeneratePrimaryVertex(G4Event* anEvent) +////////////////////////////////////////////////////////////// +{ + // delete previous event object + delete hepmcEvent; + + // generate next event + hepmcEvent= GenerateHepMCEvent(); + if(! hepmcEvent) { + G4Exception("G4HepMCInterface","GeneratePrimaryVertex",RunMustBeAborted, + "HepMCInterface: no generated particles. run terminated..." ); + return; + } + HepMC2G4(hepmcEvent, anEvent); +} + +#endif diff --git a/source/event/src/G4ParticleGun.cc b/source/event/src/G4ParticleGun.cc index 2565035478..f0946469f7 100644 --- a/source/event/src/G4ParticleGun.cc +++ b/source/event/src/G4ParticleGun.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleGun.cc,v 1.6 2001/11/20 23:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4ParticleGun diff --git a/source/event/src/G4ParticleGunMessenger.cc b/source/event/src/G4ParticleGunMessenger.cc index a65fd9ae2d..0a81633210 100644 --- a/source/event/src/G4ParticleGunMessenger.cc +++ b/source/event/src/G4ParticleGunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleGunMessenger.cc,v 1.8 2002/02/26 16:34:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4ParticleGunMessenger.hh" diff --git a/source/event/src/G4PrimaryParticle.cc b/source/event/src/G4PrimaryParticle.cc index e0693cc4d3..8b16cff87e 100644 --- a/source/event/src/G4PrimaryParticle.cc +++ b/source/event/src/G4PrimaryParticle.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryParticle.cc,v 1.7 2001/07/13 15:01:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PrimaryParticle.cc,v 1.9 2002/08/19 20:20:18 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4PrimaryParticle.hh" @@ -35,33 +35,38 @@ G4Allocator aPrimaryParticleAllocator; G4PrimaryParticle::G4PrimaryParticle() :PDGcode(0),G4code(0),Px(0.),Py(0.),Pz(0.), nextParticle(0),daughterParticle(0),trackID(-1), - mass(0.),polX(0.),polY(0.),polZ(0.),Weight0(1.0),properTime(0.0) + mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), + Weight0(1.0),properTime(0.0) {;} G4PrimaryParticle::G4PrimaryParticle(G4int Pcode) :PDGcode(Pcode),Px(0.),Py(0.),Pz(0.), nextParticle(0),daughterParticle(0),trackID(-1), - mass(0.),polX(0.),polY(0.),polZ(0.),Weight0(1.0),properTime(0.0) + mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), + Weight0(1.0),properTime(0.0) { G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode); } G4PrimaryParticle::G4PrimaryParticle(G4int Pcode, G4double px,G4double py,G4double pz) :PDGcode(Pcode),Px(px),Py(py),Pz(pz), nextParticle(0),daughterParticle(0),trackID(-1), - mass(0.),polX(0.),polY(0.),polZ(0.),Weight0(1.0),properTime(0.0) + mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), + Weight0(1.0),properTime(0.0) { G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode); } G4PrimaryParticle::G4PrimaryParticle(G4ParticleDefinition* Gcode) :G4code(Gcode),Px(0.),Py(0.),Pz(0.), nextParticle(0),daughterParticle(0),trackID(-1), - mass(0.),polX(0.),polY(0.),polZ(0.),Weight0(1.0),properTime(0.0) + mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), + Weight0(1.0),properTime(0.0) { PDGcode = Gcode->GetPDGEncoding(); } G4PrimaryParticle::G4PrimaryParticle(G4ParticleDefinition* Gcode, G4double px,G4double py,G4double pz) :G4code(Gcode),Px(px),Py(py),Pz(pz), nextParticle(0),daughterParticle(0),trackID(-1), - mass(0.),polX(0.),polY(0.),polZ(0.),Weight0(1.0),properTime(0.0) + mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), + Weight0(1.0),properTime(0.0) { PDGcode = Gcode->GetPDGEncoding(); } G4PrimaryParticle::~G4PrimaryParticle() @@ -98,7 +103,11 @@ void G4PrimaryParticle::Print() const if(G4code != 0) { G4cout << G4code->GetParticleName() << G4endl; } else - { G4cout << "is not defined in G4." << G4endl; } + { G4cout << " is not defined in G4." << G4endl; } + if(chargeGetPolZ()); if(primaryParticle->GetProperTime()>0.0) { DP->SetPreAssignedDecayProperTime(primaryParticle->GetProperTime()); } - // Set Charge - if (abs(primaryParticle->GetCharge()-DP->GetCharge())>eplus) { + // Set Charge is specified + if (primaryParticle->GetCharge()SetCharge(primaryParticle->GetCharge()); } // Set decay products to the DynamicParticle diff --git a/source/event/src/G4PrimaryVertex.cc b/source/event/src/G4PrimaryVertex.cc index 1d7d9727de..b3e6734d49 100644 --- a/source/event/src/G4PrimaryVertex.cc +++ b/source/event/src/G4PrimaryVertex.cc @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryVertex.cc,v 1.5 2001/07/13 15:01:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4PrimaryVertex.hh" diff --git a/source/event/src/G4ScoreTable.cc b/source/event/src/G4ScoreTable.cc new file mode 100644 index 0000000000..fc1afb7fbf --- /dev/null +++ b/source/event/src/G4ScoreTable.cc @@ -0,0 +1,186 @@ +// +// ******************************************************************** +// * 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: G4ScoreTable.cc,v 1.2 2002/11/04 10:52:39 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ScoreTable.cc +// +// ---------------------------------------------------------------------- + +#include "G4ScoreTable.hh" +#include "g4std/strstream" + +#include "G4VPhysicalVolume.hh" +#include "G4VIStore.hh" +#include "g4std/set" +#include "G4CellScorer.hh" + + +G4ScoreTable::G4ScoreTable(const G4VIStore *aIStore) : + fIStore(aIStore), + FieldName(25), + FieldValue(12) +{} + +G4ScoreTable::~G4ScoreTable() +{} +void G4ScoreTable:: +Print(const G4MapGeometryCellCellScorer &cs, + G4std::ostream *out){ + if (!out) { + out = &G4cout; + } + PrintHeader(out); + PrintTable(cs, out); +} + +void G4ScoreTable::PrintHeader(G4std::ostream *out) +{ + G4std::vector vecScoreName; + vecScoreName.push_back("Importance"); + vecScoreName.push_back("Tr.Entering"); + vecScoreName.push_back("Population"); + vecScoreName.push_back("Collisions"); + vecScoreName.push_back("Coll*WGT"); + vecScoreName.push_back("NumWGTedE"); + vecScoreName.push_back("FluxWGTedE"); + vecScoreName.push_back("Av.Tr.WGT"); + + // head line + G4std::string vname = FillString("Volume name", ' ', FieldName+1); + *out << vname << '|'; + for (G4std::vector::iterator it = vecScoreName.begin(); + it != vecScoreName.end(); it++) { + vname = FillString((*it), + ' ', + FieldValue+1, + false); + *out << vname << '|'; + } + *out << G4endl; +} + +G4String G4ScoreTable::CreateName(const G4GeometryCell &gCell) { + + char st[200]; + G4std::ostrstream os(st,200); + os << gCell.GetPhysicalVolume().GetName() + << "_rep:" << gCell.GetReplicaNumber() + << '\0'; + G4String name(st); + + return name; +} + + +void G4ScoreTable::PrintTable(const G4MapGeometryCellCellScorer &mcs, + G4std::ostream *out) { + + // this lines sort the ScoreValues according to the volume + // name they belong to + G4std::map MapStringSCScorer; + for (G4MapGeometryCellCellScorer::const_iterator mit = + mcs.begin(); + mit != mcs.end(); ++mit) { + G4GeometryCell gCell = (*mit).first; // get a key identifying a volume + G4String name(CreateName(gCell)); + + G4double importance = 1; + if (fIStore) { + if (fIStore->IsKnown(gCell)) { + importance = fIStore->GetImportance(gCell); + } + } + MapStringSCScorer[name] = (*mit).second->GetCellScoreComposer(); + MapStringSCScorer[name].SetImportnace(importance); + } + // now do the printing + for ( G4std::map::iterator + it = MapStringSCScorer.begin(); + it != MapStringSCScorer.end(); ++it) { + G4String name((*it).first); + PrintLine(name, (*it).second.GetStandardCellScoreValues(), out); + } + *out << '\0'; + out->flush(); +} + +void G4ScoreTable::PrintLine(const G4String &name, + const G4CellScoreValues &sc_scores, + G4std::ostream *out) +{ + G4std::string fname = FillString(name, '.', FieldName); + *out << fname << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fImportance + << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fSumTracksEntering + << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fSumPopulation << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fSumCollisions << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fSumCollisionsWeight + << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fNumberWeightedEnergy + << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fFluxWeightedEnergy + << " |"; + *out << G4std::setw(FieldValue) << sc_scores.fAverageTrackWeight* + sc_scores.fImportance + << " |"; + + *out << G4endl; +} + + +G4std::string G4ScoreTable::FillString(const G4std::string &name, + char c, G4int n, G4bool back) +{ + G4std::string fname(""); + G4int k = n - name.size(); + if (k > 0) { + if (back) { + fname = name; + fname += G4std::string(k,c); + } + else { + fname = G4std::string(k,c); + fname += name; + } + } + else { + fname = name; + } + return fname; +} + + + + + + + + + diff --git a/source/event/src/G4Scorer.cc b/source/event/src/G4Scorer.cc new file mode 100644 index 0000000000..89bbd51966 --- /dev/null +++ b/source/event/src/G4Scorer.cc @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * 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: G4Scorer.cc,v 1.1 2002/10/28 10:06:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4Scorer.cc +// +// ---------------------------------------------------------------------- + +#include "G4Scorer.hh" + +G4Scorer::G4Scorer() + : + fCellStoreScorer(fCellScorerStore) +{ + fCellScorerStore.SetAutoScorerCreate(); +} + +G4Scorer::~G4Scorer() +{ +} + +void G4Scorer::Score(const G4Step &aStep, const G4GeometryCellStep &aPStep){ + fCellStoreScorer.Score(aStep, aPStep); +} + +const G4MapGeometryCellCellScorer &G4Scorer::GetMapGeometryCellCellScorer() const { + return fCellScorerStore.GetMapGeometryCellCellScorer(); +} + diff --git a/source/event/src/G4StackManager.cc b/source/event/src/G4StackManager.cc index cef7f065e6..10d1603824 100644 --- a/source/event/src/G4StackManager.cc +++ b/source/event/src/G4StackManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StackManager.cc,v 1.7 2002/05/29 22:51:45 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StackManager.cc,v 1.8 2002/12/03 17:04:22 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Last Modification : 09/Dec/96 M.Asai @@ -99,8 +99,6 @@ G4int G4StackManager::PushOneTrack(G4Track *newTrack,G4VTrajectory *newTrajector case fPostpone: postponeStack->PushToStack( newStackedTrack ); break; - case fKill: - break; default: G4int i = classification - 10; if(i<1||i>numberOfAdditionalWaitingStacks) { @@ -245,6 +243,7 @@ G4int G4StackManager::PrepareNewEvent() if(classification==fKill) { delete aTrack; + delete aStackedTrack->GetTrajectory(); delete aStackedTrack; } else @@ -261,8 +260,6 @@ G4int G4StackManager::PrepareNewEvent() case fPostpone: postponeStack->PushToStack( aStackedTrack ); break; - case fKill: - break; default: G4int i = classification - 10; if(i<1||i>numberOfAdditionalWaitingStacks) { @@ -329,6 +326,7 @@ void G4StackManager::TransferStackedTracks(G4ClassificationOfNewTrack origin, G4 while( (aStackedTrack=originStack->PopFromStack()) != 0 ) { delete aStackedTrack->GetTrack(); + delete aStackedTrack->GetTrajectory(); delete aStackedTrack; } } @@ -387,6 +385,7 @@ void G4StackManager::TransferOneStackedTrack(G4ClassificationOfNewTrack origin, if( (aStackedTrack=originStack->PopFromStack()) != 0 ) { delete aStackedTrack->GetTrack(); + delete aStackedTrack->GetTrajectory(); delete aStackedTrack; } } diff --git a/source/event/src/G4StackedTrack.cc b/source/event/src/G4StackedTrack.cc index 7e2e877182..5d8f734c3c 100644 --- a/source/event/src/G4StackedTrack.cc +++ b/source/event/src/G4StackedTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.cc,v 1.5 2001/07/13 15:01:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/src/G4StackingMessenger.cc b/source/event/src/G4StackingMessenger.cc index 3c64efe22f..e84c64c7ee 100644 --- a/source/event/src/G4StackingMessenger.cc +++ b/source/event/src/G4StackingMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StackingMessenger.cc,v 1.3 2001/07/11 09:58:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StackingMessenger.cc,v 1.4 2002/12/04 18:43:15 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- @@ -52,7 +52,7 @@ G4StackingMessenger::G4StackingMessenger(G4StackManager * fCont) clearCmd->SetParameterName("level",true); clearCmd->SetDefaultValue(0); clearCmd->SetRange("level>=-2&&level<=2"); - clearCmd->AvailableForStates(GeomClosed,EventProc); + clearCmd->AvailableForStates(G4State_GeomClosed,G4State_EventProc); } G4StackingMessenger::~G4StackingMessenger() diff --git a/source/event/src/G4TrackStack.cc b/source/event/src/G4TrackStack.cc index c1598dccac..35a1fba799 100644 --- a/source/event/src/G4TrackStack.cc +++ b/source/event/src/G4TrackStack.cc @@ -21,21 +21,35 @@ // ******************************************************************** // // -// $Id: G4TrackStack.cc,v 1.4 2001/07/13 15:01:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// Last Modification : 09/Dec/96 M.Asai +// $Id: G4TrackStack.cc,v 1.5 2002/12/03 17:04:22 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4TrackStack.hh" +#include "G4VTrajectory.hh" G4TrackStack::G4TrackStack() :n_stackedTrack(0),firstStackedTrack(0),lastStackedTrack(0) {;} G4TrackStack::~G4TrackStack() -{;} +{ + if( n_stackedTrack != 0 ) + { + G4StackedTrack * aStackedTrack = firstStackedTrack; + G4StackedTrack * nextStackedTrack; + + // delete tracks in the stack + while( aStackedTrack != 0 ) + { + nextStackedTrack = aStackedTrack->GetNext(); + delete aStackedTrack->GetTrack(); + delete aStackedTrack->GetTrajectory(); + delete aStackedTrack; + aStackedTrack = nextStackedTrack; + } + } +} const G4TrackStack & G4TrackStack::operator=(const G4TrackStack &right) { @@ -140,6 +154,7 @@ void G4TrackStack::clear() { nextStackedTrack = aStackedTrack->GetNext(); delete aStackedTrack->GetTrack(); + delete aStackedTrack->GetTrajectory(); delete aStackedTrack; aStackedTrack = nextStackedTrack; } diff --git a/source/event/src/G4TrajectoryContainer.cc b/source/event/src/G4TrajectoryContainer.cc index 188358b220..8bb90cc051 100644 --- a/source/event/src/G4TrajectoryContainer.cc +++ b/source/event/src/G4TrajectoryContainer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoryContainer.cc,v 1.1 2002/05/15 05:47:49 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrajectoryContainer.cc,v 1.2 2002/10/06 11:46:48 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4TrajectoryContainer.hh" @@ -32,7 +32,8 @@ G4TrajectoryContainer::G4TrajectoryContainer() { vect = new TrajectoryVector; } G4TrajectoryContainer::~G4TrajectoryContainer() -{ delete vect; } +{ clearAndDestroy(); + delete vect; } G4int G4TrajectoryContainer::operator==(const G4TrajectoryContainer& right) const { return (this==&right); } diff --git a/source/event/src/G4UserEventAction.cc b/source/event/src/G4UserEventAction.cc index 5c2aadcaea..c4baa6322c 100644 --- a/source/event/src/G4UserEventAction.cc +++ b/source/event/src/G4UserEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserEventAction.cc,v 1.4 2001/07/11 09:58:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UserEventAction.hh" diff --git a/source/event/src/G4UserStackingAction.cc b/source/event/src/G4UserStackingAction.cc index 692f13f8f6..3170b26c71 100644 --- a/source/event/src/G4UserStackingAction.cc +++ b/source/event/src/G4UserStackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserStackingAction.cc,v 1.4 2001/07/11 09:58:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UserStackingAction.hh" diff --git a/source/event/src/G4VPrimaryGenerator.cc b/source/event/src/G4VPrimaryGenerator.cc index bcdab8541f..4988f9112a 100644 --- a/source/event/src/G4VPrimaryGenerator.cc +++ b/source/event/src/G4VPrimaryGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPrimaryGenerator.cc,v 1.3 2001/07/11 09:58:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VPrimaryGenerator diff --git a/source/g3tog4/History b/source/g3tog4/History index 600d78a026..f24066320f 100644 --- a/source/g3tog4/History +++ b/source/g3tog4/History @@ -1,8 +1,13 @@ -$Id: History,v 1.48 2001/11/21 14:25:29 gcosmo Exp $ +$Id: History,v 1.49 2002/10/23 17:21:39 gcosmo Exp $ G3toG4 Modification History (reverse chronological order, please !) -------------------------------------------------------------------- +g3tog4-V04-01-00 23-Oct-2002 G.Cosmo +- G4gsdvn.cc, G4gsposp.cc (I.Hrivnacova): + o fix to enable larger number of clone volumes + o fix for division defined in a mother with not yet defined parameters. + g3tog4-V03-02-03 21-Nov-2001 G.Cosmo - Added G3G4_NO_REFLECTION flag to exclude G4ReflectionFactory if needed. - Changed G3Division::CreatePVReplica() to return a G4PhysicalVolumesPair diff --git a/source/g3tog4/include/G3DetTable.hh b/source/g3tog4/include/G3DetTable.hh index 172190db67..9615708ffc 100644 --- a/source/g3tog4/include/G3DetTable.hh +++ b/source/g3tog4/include/G3DetTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3DetTable.hh,v 1.7 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G3DetTable class diff --git a/source/g3tog4/include/G3DetTableEntry.hh b/source/g3tog4/include/G3DetTableEntry.hh index 95194c8f20..933a94a7e9 100644 --- a/source/g3tog4/include/G3DetTableEntry.hh +++ b/source/g3tog4/include/G3DetTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3DetTableEntry.hh,v 1.4 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G3DetTableEntry class diff --git a/source/g3tog4/include/G3Division.hh b/source/g3tog4/include/G3Division.hh index f280f255ba..ce87577a61 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3EleTable.hh b/source/g3tog4/include/G3EleTable.hh index a35ca7c965..3f0e41f9f7 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3G4Interface.hh b/source/g3tog4/include/G3G4Interface.hh index 6992b41377..5c49680659 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Interfaces for G3 equivalent routines // diff --git a/source/g3tog4/include/G3MatTable.hh b/source/g3tog4/include/G3MatTable.hh index da7a585af5..d98ad635b5 100644 --- a/source/g3tog4/include/G3MatTable.hh +++ b/source/g3tog4/include/G3MatTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3MatTable.hh,v 1.11 2001/07/16 15:38:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MatTableEntry.hh b/source/g3tog4/include/G3MatTableEntry.hh index df9158ef66..5a497bf7ae 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTable.hh b/source/g3tog4/include/G3MedTable.hh index 966335811e..737be35323 100644 --- a/source/g3tog4/include/G3MedTable.hh +++ b/source/g3tog4/include/G3MedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3MedTable.hh,v 1.10 2001/07/16 15:38:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTableEntry.hh b/source/g3tog4/include/G3MedTableEntry.hh index b854ddd0aa..92813752c4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3PartTable.hh b/source/g3tog4/include/G3PartTable.hh index ec2ba7874e..9017698d7d 100644 --- a/source/g3tog4/include/G3PartTable.hh +++ b/source/g3tog4/include/G3PartTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3PartTable.hh,v 1.8 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3Pos.hh b/source/g3tog4/include/G3Pos.hh index e1fd11a827..582ceafc7d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTable.hh b/source/g3tog4/include/G3RotTable.hh index 6ab5df90e7..5c54ef9da9 100644 --- a/source/g3tog4/include/G3RotTable.hh +++ b/source/g3tog4/include/G3RotTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3RotTable.hh,v 1.13 2001/07/16 15:38:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTableEntry.hh b/source/g3tog4/include/G3RotTableEntry.hh index 93b196b660..23e6e05439 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3SensVolVector.hh b/source/g3tog4/include/G3SensVolVector.hh index fe95531dae..0668993438 100644 --- a/source/g3tog4/include/G3SensVolVector.hh +++ b/source/g3tog4/include/G3SensVolVector.hh @@ -22,7 +22,7 @@ // // // $Id: G3SensVolVector.hh,v 1.5 2001/07/16 15:38:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 eb5406d336..0bc325a3cf 100644 --- a/source/g3tog4/include/G3VolTable.hh +++ b/source/g3tog4/include/G3VolTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3VolTable.hh,v 1.16 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3VolTableEntry.hh b/source/g3tog4/include/G3VolTableEntry.hh index 9c6dea68da..99c323b59b 100644 --- a/source/g3tog4/include/G3VolTableEntry.hh +++ b/source/g3tog4/include/G3VolTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3VolTableEntry.hh,v 1.7 2001/11/08 16:07:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3toG4.hh b/source/g3tog4/include/G3toG4.hh index 55c8cf669e..f4c85158a4 100644 --- a/source/g3tog4/include/G3toG4.hh +++ b/source/g3tog4/include/G3toG4.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4.hh,v 1.7 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/include/G3toG4.inc b/source/g3tog4/include/G3toG4.inc index 2311d4a135..cbeb5648fc 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * 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 3f15b486e8..c4adda3dcc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MANY.hh b/source/g3tog4/include/G3toG4MANY.hh index 16ace71835..30a7e8935d 100644 --- a/source/g3tog4/include/G3toG4MANY.hh +++ b/source/g3tog4/include/G3toG4MANY.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4MANY.hh,v 1.1 2001/11/08 16:07:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MakeSolid.hh b/source/g3tog4/include/G3toG4MakeSolid.hh index fda8adc9c1..16a4e610f0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4RotationMatrix.hh b/source/g3tog4/include/G3toG4RotationMatrix.hh index 3c42140afc..a79fd6615a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ---------------------- // Class description: // diff --git a/source/g3tog4/include/gcbank.inc b/source/g3tog4/include/gcbank.inc index 46776ac986..090123d3a2 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * 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 eed143f645..8d4b657fee 100644 --- a/source/g3tog4/src/G3DetTable.cc +++ b/source/g3tog4/src/G3DetTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3DetTable.cc,v 1.10 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G3DetTableEntry.cc b/source/g3tog4/src/G3DetTableEntry.cc index 62a40a44e4..f080ceb789 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "globals.hh" #include "G3DetTableEntry.hh" diff --git a/source/g3tog4/src/G3Division.cc b/source/g3tog4/src/G3Division.cc index 6d4fb86bcb..3260a75d39 100644 --- a/source/g3tog4/src/G3Division.cc +++ b/source/g3tog4/src/G3Division.cc @@ -22,7 +22,7 @@ // // // $Id: G3Division.cc,v 1.14 2001/11/21 14:25:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, V.Berejnoi 13.10.99 diff --git a/source/g3tog4/src/G3EleTable.cc b/source/g3tog4/src/G3EleTable.cc index 5bb87547ad..309bd877f7 100644 --- a/source/g3tog4/src/G3EleTable.cc +++ b/source/g3tog4/src/G3EleTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3EleTable.cc,v 1.11 2001/07/16 15:38:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4strstreambuf.hh" diff --git a/source/g3tog4/src/G3MatTable.cc b/source/g3tog4/src/G3MatTable.cc index 5cf9f90d57..47d6040da8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MatTableEntry.cc b/source/g3tog4/src/G3MatTableEntry.cc index ee461139e9..147d69ccff 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTable.cc b/source/g3tog4/src/G3MedTable.cc index fc3b09271f..d5581d562e 100644 --- a/source/g3tog4/src/G3MedTable.cc +++ b/source/g3tog4/src/G3MedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3MedTable.cc,v 1.13 2001/07/16 15:38:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTableEntry.cc b/source/g3tog4/src/G3MedTableEntry.cc index 775bb28e8a..ea265c6b1d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3NegVolPars.cc b/source/g3tog4/src/G3NegVolPars.cc index 103b3570ca..c4bbc0e968 100644 --- a/source/g3tog4/src/G3NegVolPars.cc +++ b/source/g3tog4/src/G3NegVolPars.cc @@ -22,7 +22,7 @@ // // // $Id: G3NegVolPars.cc,v 1.9 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3PartTable.cc b/source/g3tog4/src/G3PartTable.cc index 908079ff93..55f286ce97 100644 --- a/source/g3tog4/src/G3PartTable.cc +++ b/source/g3tog4/src/G3PartTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3PartTable.cc,v 1.10 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/strstream" diff --git a/source/g3tog4/src/G3Pos.cc b/source/g3tog4/src/G3Pos.cc index a4e2231431..f2f6f5ea18 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3RotTable.cc b/source/g3tog4/src/G3RotTable.cc index 4c103492eb..f7b1111a86 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3RotTableEntry.cc b/source/g3tog4/src/G3RotTableEntry.cc index 545b70d7dd..fc7edd1986 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3VolTable.cc b/source/g3tog4/src/G3VolTable.cc index b3af9f77dd..863ac5ce93 100644 --- a/source/g3tog4/src/G3VolTable.cc +++ b/source/g3tog4/src/G3VolTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3VolTable.cc,v 1.20 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3VolTableEntry.cc b/source/g3tog4/src/G3VolTableEntry.cc index 1999859f51..64f3b6a454 100644 --- a/source/g3tog4/src/G3VolTableEntry.cc +++ b/source/g3tog4/src/G3VolTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3VolTableEntry.cc,v 1.10 2001/11/08 16:08:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3fillParams.cc.archive b/source/g3tog4/src/G3fillParams.cc.archive index 46c8cb7131..b0e6cd0082 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.1 1999/12/06 19:19:57 lockman Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 c585cdbb6d..a485588cce 100644 --- a/source/g3tog4/src/G3toG4BuildTree.cc +++ b/source/g3tog4/src/G3toG4BuildTree.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4BuildTree.cc,v 1.18 2001/11/21 14:25:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I. Hrivnacova, 2.8.99 diff --git a/source/g3tog4/src/G3toG4MANY.cc b/source/g3tog4/src/G3toG4MANY.cc index 5d59ced0c2..4aeb8549a1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // By I. Hrivnacova, 22.10.01 diff --git a/source/g3tog4/src/G3toG4MakeSolid.cc b/source/g3tog4/src/G3toG4MakeSolid.cc index 0a287edabe..7e424e8180 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I.Hrivnacova, V.Berejnoi 27 Sep 99 diff --git a/source/g3tog4/src/G3toG4RotationMatrix.cc b/source/g3tog4/src/G3toG4RotationMatrix.cc index 3f11a191d8..74b7b218cf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G3toG4RotationMatrix.hh" diff --git a/source/g3tog4/src/G4BuildGeom.cc b/source/g3tog4/src/G4BuildGeom.cc index 54aa52947b..375f3ccf41 100644 --- a/source/g3tog4/src/G4BuildGeom.cc +++ b/source/g3tog4/src/G4BuildGeom.cc @@ -22,7 +22,7 @@ // // // $Id: G4BuildGeom.cc,v 1.15 2001/07/16 15:38:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4ggclos.cc b/source/g3tog4/src/G4ggclos.cc index 333b34e9c0..49feb1fb13 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsatt.cc b/source/g3tog4/src/G4gsatt.cc index 92e546b3aa..8e1021594a 100644 --- a/source/g3tog4/src/G4gsatt.cc +++ b/source/g3tog4/src/G4gsatt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsatt.cc,v 1.11 2001/07/16 15:38:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsbool.cc b/source/g3tog4/src/G4gsbool.cc index d234199fa4..d39478ebea 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 13.10.01 diff --git a/source/g3tog4/src/G4gsdet.cc b/source/g3tog4/src/G4gsdet.cc index 563961474f..26e4094e0b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdeta.cc b/source/g3tog4/src/G4gsdeta.cc index 0037faafa8..714fb72bcc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // modified by I.Hrivnacova, 6 Oct 99 diff --git a/source/g3tog4/src/G4gsdetd.cc b/source/g3tog4/src/G4gsdetd.cc index ff789d06a0..42beecbef4 100644 --- a/source/g3tog4/src/G4gsdetd.cc +++ b/source/g3tog4/src/G4gsdetd.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetd.cc,v 1.6 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdeth.cc b/source/g3tog4/src/G4gsdeth.cc index 47b7ab3c6a..f7145203e6 100644 --- a/source/g3tog4/src/G4gsdeth.cc +++ b/source/g3tog4/src/G4gsdeth.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdeth.cc,v 1.6 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdetu.cc b/source/g3tog4/src/G4gsdetu.cc index 6aee99d0e9..5e17b83dc9 100644 --- a/source/g3tog4/src/G4gsdetu.cc +++ b/source/g3tog4/src/G4gsdetu.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetu.cc,v 1.4 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdetv.cc b/source/g3tog4/src/G4gsdetv.cc index e394d8c31e..cdb46d016e 100644 --- a/source/g3tog4/src/G4gsdetv.cc +++ b/source/g3tog4/src/G4gsdetv.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetv.cc,v 1.8 2001/07/16 15:38:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4ios.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdk.cc b/source/g3tog4/src/G4gsdk.cc index bc328b33aa..33c95f662b 100644 --- a/source/g3tog4/src/G4gsdk.cc +++ b/source/g3tog4/src/G4gsdk.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdk.cc,v 1.5 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4Decay.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdvn.cc b/source/g3tog4/src/G4gsdvn.cc index b69f72528c..497ddb1432 100644 --- a/source/g3tog4/src/G4gsdvn.cc +++ b/source/g3tog4/src/G4gsdvn.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4gsdvn.cc,v 1.7 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4gsdvn.cc,v 1.8 2002/10/23 17:21:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 @@ -59,10 +59,10 @@ void G4CreateCloneVTEWithDivision(G4String vname, G3VolTableEntry* mvte, G4String shape = mvteClone->GetShape(); G4int nmed = mvteClone->GetNmed(); G4String mvteName = mvteClone->GetName(); - + G4String newName = vname; if (i>0) { - char index[4]; sprintf(index, "%d", i); + char index[5]; sprintf(index, "%d", i); newName.append(gSeparator); newName = newName + index; } diff --git a/source/g3tog4/src/G4gsdvn2.cc b/source/g3tog4/src/G4gsdvn2.cc index 07dbe334c1..7ad4328eaf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt.cc b/source/g3tog4/src/G4gsdvt.cc index f543196efb..518b1c5f7b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt2.cc b/source/g3tog4/src/G4gsdvt2.cc index ef4c6eb600..16f7018004 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvx.cc b/source/g3tog4/src/G4gsdvx.cc index 4098479553..e05dfea348 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, V.Berejnoi, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmate.cc b/source/g3tog4/src/G4gsmate.cc index 7d3390677d..29fe789408 100644 --- a/source/g3tog4/src/G4gsmate.cc +++ b/source/g3tog4/src/G4gsmate.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsmate.cc,v 1.8 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmixt.cc b/source/g3tog4/src/G4gsmixt.cc index c173ba6ab3..95b05cd0c8 100644 --- a/source/g3tog4/src/G4gsmixt.cc +++ b/source/g3tog4/src/G4gsmixt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsmixt.cc,v 1.8 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gspart.cc b/source/g3tog4/src/G4gspart.cc index 49c034cea5..9518094832 100644 --- a/source/g3tog4/src/G4gspart.cc +++ b/source/g3tog4/src/G4gspart.cc @@ -22,7 +22,7 @@ // // // $Id: G4gspart.cc,v 1.5 2001/07/16 15:38:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4ProcessManager.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gspos.cc b/source/g3tog4/src/G4gspos.cc index 140c02f0cf..6e389d0d91 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsposp.cc b/source/g3tog4/src/G4gsposp.cc index 6886946f4d..e3f5d1976d 100644 --- a/source/g3tog4/src/G4gsposp.cc +++ b/source/g3tog4/src/G4gsposp.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4gsposp.cc,v 1.14 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4gsposp.cc,v 1.15 2002/10/23 17:21:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 13.10.99 @@ -138,7 +138,7 @@ void G4CloneDaughters(G3VolTableEntry* vte, G3VolTableEntry* vteClone) // generate vteClone name G4int cloneNo = dvteMaster->GetNoClones(); - char index[4]; sprintf(index,"%d",cloneNo); + char index[5]; sprintf(index,"%d",cloneNo); G4String newName = dvteMaster->GetName(); newName.append(gSeparator); newName = newName + index; @@ -169,7 +169,7 @@ void G4CloneDaughters(G3VolTableEntry* vte, G3VolTableEntry* vteClone) G3Division* dvteDivision = dvte->GetDivision(); if (dvteDivision) { G3Division* dvteCloneDivision - = new G3Division(dvteClone, vte, *dvteDivision); + = new G3Division(dvteClone, vteClone, *dvteDivision); dvteClone->SetDivision(dvteCloneDivision); dvteCloneDivision->UpdateVTE(); } @@ -261,9 +261,9 @@ void G4CreateCloneVTE(G3VolTableEntry* vte, G3VolTableEntry* mvte, } if ( negpars || !(vteSameClone)) { - // generate vteClone name + // generate vteClone name G4int cloneNo = vte->GetNoClones(); - char index[4]; sprintf(index,"%d",cloneNo); + char index[5]; sprintf(index,"%d",cloneNo); G4String newName = vte->GetName(); newName.append(gSeparator); newName = newName + index; diff --git a/source/g3tog4/src/G4gsrotm.cc b/source/g3tog4/src/G4gsrotm.cc index a23a580182..3d97798ce6 100644 --- a/source/g3tog4/src/G4gsrotm.cc +++ b/source/g3tog4/src/G4gsrotm.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsrotm.cc,v 1.9 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G3toG4.hh" #include "G3RotTable.hh" diff --git a/source/g3tog4/src/G4gstmed.cc b/source/g3tog4/src/G4gstmed.cc index c7ee68eb64..99f4ab7b1c 100644 --- a/source/g3tog4/src/G4gstmed.cc +++ b/source/g3tog4/src/G4gstmed.cc @@ -22,7 +22,7 @@ // // // $Id: G4gstmed.cc,v 1.5 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 fe85ad2655..367ae5d0d1 100644 --- a/source/g3tog4/src/G4gstpar.cc +++ b/source/g3tog4/src/G4gstpar.cc @@ -22,7 +22,7 @@ // // // $Id: G4gstpar.cc,v 1.6 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsvolu.cc b/source/g3tog4/src/G4gsvolu.cc index f54b091535..736a522b4c 100644 --- a/source/g3tog4/src/G4gsvolu.cc +++ b/source/g3tog4/src/G4gsvolu.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsvolu.cc,v 1.8 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/clparse.cc b/source/g3tog4/src/clparse.cc index 80a9a5aa6b..27342c7682 100644 --- a/source/g3tog4/src/clparse.cc +++ b/source/g3tog4/src/clparse.cc @@ -22,7 +22,7 @@ // // // $Id: clparse.cc,v 1.14 2001/10/11 12:36:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // modified by I.Hrivnacova // added G3SensVol diff --git a/source/g3tog4/src/g3routines.F b/source/g3tog4/src/g3routines.F index cd95d0c484..c5b18eb193 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * #define CALL_GEANT diff --git a/source/g3tog4/src/g3test.F.main b/source/g3tog4/src/g3test.F.main index 99f8014fc2..869276e96e 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * * * g3test diff --git a/source/g3tog4/src/g3tog4.F b/source/g3tog4/src/g3tog4.F index e09aa3bec7..c4028b6475 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * * * G3toG4 diff --git a/source/g3tog4/src/g4geom.cc.main b/source/g3tog4/src/g4geom.cc.main index b84a2fd437..b45e124bb7 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // g4geom // diff --git a/source/g3tog4/src/jshape.F b/source/g3tog4/src/jshape.F index fe79b30656..c4ef1f1a64 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * * *-- Author : Jouko Vuoskoski, CERN, Jouko.Vuoskoski@cern.ch diff --git a/source/g3tog4/src/mztog4.F b/source/g3tog4/src/mztog4.F index 0ea237b04f..c725f4bc91 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * subroutine mztog4 ************************************************************************ diff --git a/source/g3tog4/src/rztog4.F b/source/g3tog4/src/rztog4.F index fd45333802..40d4ae212d 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * program rztog4 ************************************************************************ diff --git a/source/g3tog4/src/tog4.F b/source/g3tog4/src/tog4.F index f764b3539e..1a829c965c 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-04-01 $ +* GEANT4 tag $Name: geant4-05-00 $ * subroutine tog4 ************************************************************************ diff --git a/source/geometry/History b/source/geometry/History index 57cf9ab5d8..0bebaa5809 100644 --- a/source/geometry/History +++ b/source/geometry/History @@ -1,4 +1,4 @@ -$Id: History,v 1.27 2002/04/19 08:31:18 gcosmo Exp $ +$Id: History,v 1.28 2002/12/04 19:14:18 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 04, 2002 Makoto Asai geometry-V04-01-00 +-------------------------- +- Migration to new G4ApplicationState + Apr 19, 2002 Gabriele Cosmo geometry-V04-00-03 ----------------------------- - Groups the following tags (see related History files for details): diff --git a/source/geometry/biasing/GNUmakefile b/source/geometry/biasing/GNUmakefile index 4715d3dcb5..b24e1e3278 100644 --- a/source/geometry/biasing/GNUmakefile +++ b/source/geometry/biasing/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 2002/03/25 17:09:16 gcosmo Exp $ +# $Id: GNUmakefile,v 1.2 2002/07/11 16:07:07 dressel Exp $ # -------------------------------------------------------------------- # GNUmakefile for geometry/biasing library. Gabriele Cosmo, 25/03/02. # -------------------------------------------------------------------- @@ -11,7 +11,9 @@ endif include $(G4INSTALL)/config/architecture.gmk -CPPFLAGS += -I$(G4BASE)/graphics_reps/include \ +CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include \ + -I$(G4BASE)/materials/include \ + -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ diff --git a/source/geometry/biasing/History b/source/geometry/biasing/History index d8fd731074..8e66182000 100644 --- a/source/geometry/biasing/History +++ b/source/geometry/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2002/05/31 09:56:09 dressel Exp $ +$Id: History,v 1.29 2002/11/20 13:19:09 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,87 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov, 20th 2002 G.Cosmo geombias-V04-01-04 + - changed definition of G4NSplit_Weight from struct to class + to allow porting on Windows DLLs. + +Nov, 4th 2002 M.Dressel geombias-V04-01-03 + - remove G4std:: where it does not belong to, + - remove G4StringConversion, + - and added G4Nsplit_Weight.cc + +Oct, 28th 2002 M.Dressel geombias-V04-01-02 + - moving interfaces G4VCellScorer and G4VCellScorerStore back + +Oct, 22th 2002 M.Dressel internal_7_geombias-V04-01-01 + - renaming G4VPScorer to G4VScorer and + G4PStep to G4GeometryCellStep + - moving interfaces G4VCellScorer and G4VCellScorerStore to intercoms + - adding comments + +Oct. 16th 2002 M.Dressel internal_6_geombias-V04-01-01 + - changes recomanded by codewizard + - stream, and string conversion from file G4Nsplit_Weight.hh/.cc + to G4StringConversion.hh/.cc + +Oct. 15th 2002 M.Dressel + removing G4Pstring with G4StringConversion + +Oct. 14th 2002 M.Dressel + cleanup according to codewizzard + +Oct. 10th 2002 M.Dressel geombias-V04-01-01-internal-5 + change in G4(V)ImportanceAlgorithm, G4ImportanceSplitExaminer + G4ImportanceFinder: give pre and post importance + separatly insted only ipre/ipost. + +Sep, 2th 2002 M.Dressel geombias-V04-01-01-internal-4 + moved files concerning messaging a importance geometry to + /afs/cern.ch/user/d/dressel/G4/IGeoMessangers. + Support will be given on demand. + +Sep, 2th 2002 M.Dressel geombias-V04-01-01-internal-3 + code cleanup for code-wizard + +Aug, 29th 2002 M.Dressel int-2-geombias-V04-01-01 + renaming of G4PTouchableKey to G4GeometryCell + changing G4VIStore and G4IStore + and dependants + +Aug, 13th, 2002 M.Dressel + removed G4VPrintableScorer.hh G4VPrintableScorerFactory.hh + +Aug, 13th, 2002 M.Dressel - geombias-V04-01-01 + added G4VCellScorer.hh and G4VCellScorerStore.hh + +July, 18th, 2002 M.Dressel + change the strategy for importance sampling: + - G4VIStore: new function: + IsKnown(const G4PTouchableKey &ptk) + to tell if a cell (G4PTouchableKey) is known in the + store + - no biasing is applied between cells that are not known by + the G4IStore and it's neighbors. + - importance valu 0 is allowed to flag that no biasing should + be done betweeen the cell and it's neighbors. + change the G4PArallelNavigator: + - using G4TouchableHanle + - and LocateGlobalPointAndSetup + + +July, 11th, 2002 M.Dressel + added comments in new classes + +July, 11th, 2002 M.Dressel - internal-2-geombias-V04-01-01 + added clases for contruction of a simple geometry with + importance values and messengers. + +July, 10th, 2002 M.Dressel - internal-1-geombias-V04-01-01 + change in G4Sigma: the sum over the weights is returned by GetWsum + (before it was GetSumOfWeights) and the weighted sum over x is returned + by GetWXsum(). + + May, 31th, 2002 M.Dressel - geombias-V04-00-04 - change name ImportanceSampler to ImportanceSplitExaminer diff --git a/source/geometry/biasing/include/G4PTouchableKey.hh b/source/geometry/biasing/include/G4GeometryCell.hh similarity index 73% rename from source/geometry/biasing/include/G4PTouchableKey.hh rename to source/geometry/biasing/include/G4GeometryCell.hh index 5a9c0ae5ff..71ca54303b 100644 --- a/source/geometry/biasing/include/G4PTouchableKey.hh +++ b/source/geometry/biasing/include/G4GeometryCell.hh @@ -21,11 +21,11 @@ // ******************************************************************** // // -// $Id: G4PTouchableKey.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryCell.hh,v 1.5 2002/10/22 13:18:43 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4PTouchableKey +// Class G4GeometryCell // // Class description: // @@ -33,48 +33,47 @@ // It serves to address a "cell". A "cell" is somewhat // related to a touchable in Geant4. It is identified by a reference // to a G4VPhysicalVolume and a number (replica number). +// Only simple replicas are supported. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4PTouchableKey_hh -#define G4PTouchableKey_hh G4PTouchableKey_hh +#ifndef G4GeometryCell_hh +#define G4GeometryCell_hh G4GeometryCell_hh #include "globals.hh" class G4VPhysicalVolume; -class G4PTouchableKey +class G4GeometryCell { - public: // with description - G4PTouchableKey(const G4VPhysicalVolume &aVolume, G4int RepNum); + G4GeometryCell(const G4VPhysicalVolume &aVolume, G4int RepNum); + + G4GeometryCell(const G4GeometryCell &rhs); // initialise volume and replica number - ~G4PTouchableKey(); + ~G4GeometryCell(); // simple destruction + + const G4VPhysicalVolume &GetPhysicalVolume() const; + // return the physical volume of the cell + G4int GetReplicaNumber() const; + // returns the replica number of the cell + + G4GeometryCell &operator=(const G4GeometryCell &rhs); + +private: const G4VPhysicalVolume *fVPhysiclaVolume; // pinter to the G4VPhysicalVolume of the "cell" + // it is treated as identifyer G4int fRepNum; // replica number of the "cell" }; -// ----------------------------------------------------------------------- - -class G4PTkComp -{ - -public: // without description - - G4bool operator() (const G4PTouchableKey &k1, - const G4PTouchableKey &k2) const; -}; - -// ----------------------------------------------------------------------- - -G4bool operator==(const G4PTouchableKey &k1, const G4PTouchableKey &k2); -G4bool operator!=(const G4PTouchableKey &k1, const G4PTouchableKey &k2); +G4bool operator==(const G4GeometryCell &k1, const G4GeometryCell &k2); +G4bool operator!=(const G4GeometryCell &k1, const G4GeometryCell &k2); #endif diff --git a/source/geometry/biasing/include/G4Pstring.hh b/source/geometry/biasing/include/G4GeometryCellComp.hh similarity index 75% rename from source/geometry/biasing/include/G4Pstring.hh rename to source/geometry/biasing/include/G4GeometryCellComp.hh index 2d854fe740..d5439ba143 100644 --- a/source/geometry/biasing/include/G4Pstring.hh +++ b/source/geometry/biasing/include/G4GeometryCellComp.hh @@ -21,32 +21,35 @@ // ******************************************************************** // // -// $Id: G4Pstring.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryCellComp.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Declaration +// Class G4GeometryCellComp // -// Declaration description: +// Class description: // -// This fucntions convert some non character objects into -// G4Strings +// A class needed for comparing G4GeometryCell e.g. in stl containers. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4Pstring_hh -#define G4Pstring_hh G4Pstring_hh +#ifndef G4GeometryCellComp_hh +#define G4GeometryCellComp_hh G4GeometryCellComp_hh #include "globals.hh" -#include "G4ThreeVector.hh" -G4String str(const int &i); - // convert an integer into a G4String +class G4GeometryCell; -G4String str(const double &d); - // convert a double into a G4String +class G4GeometryCellComp +{ + +public: // without description + G4GeometryCellComp(); + + G4bool operator() (const G4GeometryCell &g1, + const G4GeometryCell &g2) const; + // returns true if g1 < g2 +}; -G4String str(const G4ThreeVector &v); - // convert a G4ThreeVector into a G4String #endif diff --git a/source/geometry/biasing/include/G4PtkImportance.hh b/source/geometry/biasing/include/G4GeometryCellImportance.hh similarity index 77% rename from source/geometry/biasing/include/G4PtkImportance.hh rename to source/geometry/biasing/include/G4GeometryCellImportance.hh index 163c25ec1a..6508de5cdb 100644 --- a/source/geometry/biasing/include/G4PtkImportance.hh +++ b/source/geometry/biasing/include/G4GeometryCellImportance.hh @@ -21,11 +21,11 @@ // ******************************************************************** // // -// $Id: G4PtkImportance.hh,v 1.5 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryCellImportance.hh,v 1.2 2002/10/22 13:18:44 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4PtkImportance +// Class G4GeometryCellImportance // // Class description: // @@ -34,16 +34,17 @@ // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4PtkImportance_hh -#define G4PtkImportance_hh G4PtkImportance_hh +#ifndef G4GeometryCellImportance_hh +#define G4GeometryCellImportance_hh G4GeometryCellImportance_hh #include "g4std/map" #include "globals.hh" -#include "G4PTouchableKey.hh" +#include "G4GeometryCell.hh" +#include "G4GeometryCellComp.hh" -typedef G4std::map G4PtkImportance; - // implement container G4PtkImportance as map +typedef G4std::map G4GeometryCellImportance; + // implement container G4GeometryCellImportance as map -G4std::ostream& operator<<(G4std::ostream &out, const G4PtkImportance &ptki); +G4std::ostream& operator<<(G4std::ostream &out, const G4GeometryCellImportance &gCelli); #endif diff --git a/source/geometry/biasing/include/G4GeometryCellStep.hh b/source/geometry/biasing/include/G4GeometryCellStep.hh new file mode 100644 index 0000000000..61b3338738 --- /dev/null +++ b/source/geometry/biasing/include/G4GeometryCellStep.hh @@ -0,0 +1,115 @@ +// +// ******************************************************************** +// * 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: G4GeometryCellStep.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4GeometryCellStep +// +// Class description: +// +// This class serves to address the "cell" a track previously +// touched and a "cell" a track is currently in. It is used +// for scoring and importance sampling in the "mass" geometry as well +// as in a "parallel" geometry. +// The "cell" information is available with the GetPreGeometryCell and +// the GetPostGeometryCell functions. +// The GetCrossBoundary finction returns true in case the step +// crosses a boundary in the geometry this G4GeometryCellStep +// refers to. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4GeometryCellStep_hh +#define G4GeometryCellStep_hh G4GeometryCellStep_hh + +#include "G4GeometryCell.hh" + +class G4GeometryCellStep +{ +public: // with description + G4GeometryCellStep(const G4GeometryCell &preCell, + const G4GeometryCell &postCell); + // initialise pre and post G4GeometryCell + + ~G4GeometryCellStep(); + + const G4GeometryCell &GetPreGeometryCell() const; + // addressing the "cell" the track previously touched + + const G4GeometryCell &GetPostGeometryCell() const; + // addressing the current "cell" + + G4bool GetCrossBoundary() const; + // returns true if step crosses boundary of the geometry it refers to + + // the following functions are used by the scoring and importance + // system to set the cell information. + void SetPreGeometryCell(const G4GeometryCell &preCell); + + void SetPostGeometryCell(const G4GeometryCell &postCell); + + void SetCrossBoundary(G4bool b); + +private: + G4GeometryCell fPreGeometryCell; + G4GeometryCell fPostGeometryCell; + G4bool fCrossBoundary; + +}; + + + +inline void G4GeometryCellStep::SetPreGeometryCell(const G4GeometryCell &preCell) +{ + fPreGeometryCell = preCell; +} + +inline void G4GeometryCellStep::SetPostGeometryCell(const G4GeometryCell &postCell) +{ + fPostGeometryCell = postCell; +} + +inline void G4GeometryCellStep::SetCrossBoundary(G4bool b) +{ + fCrossBoundary = b; +} + +inline const G4GeometryCell &G4GeometryCellStep::GetPreGeometryCell() const +{ + return fPreGeometryCell; +} + +inline const G4GeometryCell &G4GeometryCellStep::GetPostGeometryCell() const +{ + return fPostGeometryCell; +} + +inline G4bool G4GeometryCellStep::GetCrossBoundary() const +{ + return fCrossBoundary; +} + + +#endif diff --git a/source/geometry/biasing/include/G4PStepStream.hh b/source/geometry/biasing/include/G4GeometryCellStepStream.hh similarity index 77% rename from source/geometry/biasing/include/G4PStepStream.hh rename to source/geometry/biasing/include/G4GeometryCellStepStream.hh index 4685629589..d352b11679 100644 --- a/source/geometry/biasing/include/G4PStepStream.hh +++ b/source/geometry/biasing/include/G4GeometryCellStepStream.hh @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: G4PStepStream.hh,v 1.5 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryCellStepStream.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Declarations // // Declaration description: // -// declarations of streams for G4PTouchableKey and G4PStep +// declarations of streams for G4GeometryCell and G4GeometryCellStep // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4PStepStream_hh -#define G4PStepStream_hh G4PStepStream_hh +#ifndef G4GeometryCellStepStream_hh +#define G4GeometryCellStepStream_hh G4GeometryCellStepStream_hh -#include "G4PTouchableKey.hh" -#include "G4PStep.hh" +#include "G4GeometryCell.hh" +#include "G4GeometryCellStep.hh" -G4std::ostream& operator<<(G4std::ostream &out, const G4PTouchableKey &tk); -G4std::ostream& operator<<(G4std::ostream &out, const G4PStep &ps); +G4std::ostream& operator<<(G4std::ostream &out, const G4GeometryCell &tk); +G4std::ostream& operator<<(G4std::ostream &out, const G4GeometryCellStep &ps); #endif diff --git a/source/geometry/biasing/include/G4IStore.hh b/source/geometry/biasing/include/G4IStore.hh index 46ee9eaec6..ade9363df1 100644 --- a/source/geometry/biasing/include/G4IStore.hh +++ b/source/geometry/biasing/include/G4IStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IStore.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IStore.hh,v 1.9 2002/10/22 13:18:44 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4IStore @@ -31,8 +31,13 @@ // // An implementation of a "importance store" with the interface // G4VIStore. See description in G4VIStore. -// This implementation uses G4PtkImportance as the container +// This implementation uses G4GeometryCellImportance as the container // to store the "cells" together with the importance values. +// Giving a cell the importance 0 is allowed as +// a flagging that no biasing should happen between this +// cell and it's neighbors +// If a cell is not known by the importance store no biasing +// should be applied between this cell and it's nighbors. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -40,24 +45,40 @@ #define G4IStore_hh G4IStore_hh #include "G4VIStore.hh" -#include "G4PtkImportance.hh" +#include "G4GeometryCellImportance.hh" class G4IStore : public G4VIStore { public: // with description - G4IStore(G4VPhysicalVolume &worldvolume); + explicit G4IStore(const G4VPhysicalVolume &worldvolume); // initialise the importance store for the given geometry - ~G4IStore(); + virtual ~G4IStore(); // destruct - void AddImportanceRegion(G4double importance, + virtual G4double GetImportance(const G4GeometryCell &gCell) const; + // derive a importance value of a "cell" addresed by a G4GeometryCell + // from the store. + + virtual G4bool IsKnown(const G4GeometryCell &gCell) const; + // returns true if the gCell is in the store, else false + + + virtual const G4VPhysicalVolume &GetWorldVolume() const; + // return a reference to the wolrd volume of the + // "importance" geometry + + void AddImportanceGeometryCell(G4double importance, + const G4GeometryCell &gCell); + void AddImportanceGeometryCell(G4double importance, const G4VPhysicalVolume &, G4int aRepNum = 0); // Add a "cell" together with a importance value to the store. + void ChangeImportance(G4double importance, + const G4GeometryCell &gCell); void ChangeImportance(G4double importance, const G4VPhysicalVolume &, G4int aRepNum = 0); @@ -65,29 +86,19 @@ public: // with description G4double GetImportance(const G4VPhysicalVolume &, G4int aRepNum = 0) const ; - // derive the importance value of a "cell" from the store. - - G4double GetImportance(const G4PTouchableKey &ptk) const; - // derive a importance value of a "cell" addresed by a G4PTouchableKey - // from the store. - - G4VPhysicalVolume &GetWorldVolume(); - // return a reference to the wolrd volume of the - // "importance" geometry private: G4bool IsInWorld(const G4VPhysicalVolume &) const; - void SetInternalIterator(const G4VPhysicalVolume &, - G4int aRepNum) const; + void SetInternalIterator(const G4GeometryCell &gCell) const; void Error(const G4String &m) const; - + private: - G4VPhysicalVolume &fWorldVolume; - G4PtkImportance fPtki; + const G4VPhysicalVolume &fWorldVolume; + G4GeometryCellImportance fGeometryCelli; - mutable G4PtkImportance::const_iterator fCurrentIterator; + mutable G4GeometryCellImportance::const_iterator fCurrentIterator; }; #endif diff --git a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh index 8a750cbb0d..a1f77ebd5d 100644 --- a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh +++ b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceAlgorithm.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImportanceAlgorithm.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceAlgorithm @@ -47,13 +47,14 @@ public: // with description G4ImportanceAlgorithm(); // simple construction - ~G4ImportanceAlgorithm(); + virtual ~G4ImportanceAlgorithm(); // repeate warning if triggered - G4Nsplit_Weight Calculate(G4double ipre_over_ipost, - G4double init_w) const; + virtual G4Nsplit_Weight Calculate(G4double ipre, + G4double ipost, + G4double init_w) const; // calculate the number of tracks and their weight according - // to the ratio of pre over post importance and the weight of + // to the pre and post importance value and the weight of // the mother track. private: diff --git a/source/geometry/biasing/include/G4ImportanceFinder.hh b/source/geometry/biasing/include/G4ImportanceFinder.hh index 56b10b15fc..caaced2014 100644 --- a/source/geometry/biasing/include/G4ImportanceFinder.hh +++ b/source/geometry/biasing/include/G4ImportanceFinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceFinder.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImportanceFinder.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceFinder @@ -31,7 +31,7 @@ // // This class is used internally by importance sampling in a parallel // geometry. It derives the ratio of importances of the pre over the post -// G4PTouchableKey. +// G4GeometryCell. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -42,23 +42,21 @@ class G4VParallelStepper; class G4VIStore; -class G4PTouchableKey; +class G4GeometryCell; class G4ImportanceFinder { public: // with description - G4ImportanceFinder(const G4VIStore &aIStore); + explicit G4ImportanceFinder(const G4VIStore &aIStore); // initialise fIStore ~G4ImportanceFinder(); // destruction - G4double GetIPre_over_IPost(const G4PTouchableKey &prekey, - const G4PTouchableKey &postkey) const; - // get the ratio of importances of the pre over the - // post G4PTouchableKey importances. + G4double GetImportance(const G4GeometryCell &gCell) const; + // get the importance to a G4GeometryCell private: diff --git a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh index 2d32d99f4e..32b5ffc28d 100644 --- a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceSplitExaminer.hh,v 1.2 2002/05/31 09:56:09 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImportanceSplitExaminer.hh,v 1.5 2002/10/14 12:36:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceSplitExaminer @@ -41,10 +41,10 @@ #define G4ImportanceSplitExaminer_hh G4ImportanceSplitExaminer_hh #include "G4VImportanceSplitExaminer.hh" +#include "G4ImportanceFinder.hh" class G4VImportanceAlgorithm; class G4VParallelStepper; -class G4ImportanceFinder; class G4VIStore; class G4ImportanceSplitExaminer: public G4VImportanceSplitExaminer @@ -57,10 +57,10 @@ public: // with description const G4VIStore &istore); // initialisation and construct G4ImportanceFinder - ~G4ImportanceSplitExaminer(); + virtual ~G4ImportanceSplitExaminer(); // delete G4ImportanceFinder - G4Nsplit_Weight Examine(G4double w) const; + virtual G4Nsplit_Weight Examine(G4double w) const; // Get G4Nsplit_Weight for a given mother track weight. @@ -73,7 +73,7 @@ private: const G4VImportanceAlgorithm &fIalgorithm; const G4VParallelStepper &fPStepper; - const G4ImportanceFinder &fIfinder; + G4ImportanceFinder fIfinder; }; diff --git a/source/geometry/biasing/include/G4Nsplit_Weight.hh b/source/geometry/biasing/include/G4Nsplit_Weight.hh index b9bf62ee29..55ce3e2bc3 100644 --- a/source/geometry/biasing/include/G4Nsplit_Weight.hh +++ b/source/geometry/biasing/include/G4Nsplit_Weight.hh @@ -21,16 +21,16 @@ // ******************************************************************** // // -// $Id: G4Nsplit_Weight.hh,v 1.5 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Nsplit_Weight.hh,v 1.9 2002/11/20 13:18:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Nsplit_Weight // // Class description: // -// A struct used by importance sampling. It contains the number of tracks -// a mother track should be split into and their weight. +// A class (struct) used by importance sampling. It contains the number +// of tracks a mother track should be split into and their weight. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -39,10 +39,9 @@ #include "globals.hh" -struct G4Nsplit_Weight +class G4Nsplit_Weight { - G4Nsplit_Weight(G4int an, G4double aw): fN(an), fW(aw){} - // initialise members + public: G4int fN; // number of tracks a mother track should be split into @@ -55,6 +54,7 @@ struct G4Nsplit_Weight G4std::ostream& operator<<(G4std::ostream &out, const G4Nsplit_Weight &nw); + #endif diff --git a/source/geometry/biasing/include/G4ParallelNavigator.hh b/source/geometry/biasing/include/G4ParallelNavigator.hh index 5b9e87459e..c48fe278ad 100644 --- a/source/geometry/biasing/include/G4ParallelNavigator.hh +++ b/source/geometry/biasing/include/G4ParallelNavigator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelNavigator.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelNavigator.hh,v 1.9 2002/10/14 12:36:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelNavigator @@ -42,9 +42,10 @@ #include "G4VPGeoDriver.hh" #include "geomdefs.hh" -class G4VTouchable; -class G4Navigator; -class G4PTouchableKey ; +#include "G4TouchableHandle.hh" +#include "G4Navigator.hh" + +class G4GeometryCell ; class G4VPhysicalVolume; class G4ParallelNavigator : public G4VPGeoDriver @@ -52,14 +53,15 @@ class G4ParallelNavigator : public G4VPGeoDriver public: // with description - G4ParallelNavigator(G4VPhysicalVolume &aWorldVolume); + explicit G4ParallelNavigator(G4VPhysicalVolume &aWorldVolume); // initialise and create G4Navigator and a TouchableHistory - ~G4ParallelNavigator(); + virtual ~G4ParallelNavigator(); // delete Touchable and Navigator - G4PTouchableKey LocateOnBoundary(const G4ThreeVector &aPosition, - const G4ThreeVector &aDirection); + virtual G4GeometryCell + LocateOnBoundary(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); // The location of a track according to it's position // and direction in case the track crosses a boundary // of a "parallel" geometry. @@ -67,22 +69,27 @@ public: // with description // (The track crosses the boundary if PostDOIT gets called.) - G4PTouchableKey GetCurrentTouchableKey() const; - // get the current G4PTouchableKey of the "parallel" geometry + virtual G4GeometryCell GetCurrentGeometryCell() const; + // get the current G4GeometryCell of the "parallel" geometry - G4double ComputeStepLengthInit(const G4ThreeVector &aPosition, - const G4ThreeVector &aDirection); + virtual G4double + ComputeStepLengthInit(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); // compute step length for a starting track. - G4double ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition, - const G4ThreeVector &aDirection); + virtual G4double + ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); // compute the step length after a track crossed a boundary // in a "parallel" geometry - G4double ComputeStepLengthInVolume(const G4ThreeVector &aPosition, - const G4ThreeVector &aDirection); + virtual G4double + ComputeStepLengthInVolume(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); // compute step length when track moves inside a volume. + void SetVerboseity(G4int v); + private: G4ParallelNavigator(const G4ParallelNavigator &); @@ -92,9 +99,18 @@ private: const G4ThreeVector &aPosition, const G4ThreeVector &aDirection); + G4double GetStepLength(const G4String &methodname, + const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); + + G4double GetStepLengthUseLocate(const G4String &methodname, + const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection); + void Locate(const G4ThreeVector &aPosition, const G4ThreeVector &aDirection, - G4bool histsearch); + G4bool historysearch, + G4bool useDirection); void Error(const G4String &m, const G4ThreeVector &pos, @@ -104,9 +120,11 @@ private: private: - G4Navigator &fNavigator; - G4VTouchable *fCurrentTouchable; + G4Navigator fNavigator; G4int fNlocated; + G4int fMaxShiftedTrys; + G4TouchableHandle fCurrentTouchableH; + G4int fVerbose; }; #endif diff --git a/source/geometry/biasing/include/G4ParallelStepper.hh b/source/geometry/biasing/include/G4ParallelStepper.hh index 491c196664..8c782da979 100644 --- a/source/geometry/biasing/include/G4ParallelStepper.hh +++ b/source/geometry/biasing/include/G4ParallelStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelStepper.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelStepper.hh,v 1.6 2002/10/22 13:18:45 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelStepper @@ -38,7 +38,7 @@ #define G4ParallelStepper_hh G4ParallelStepper_hh #include "G4VParallelStepper.hh" -#include "G4PStep.hh" +#include "G4GeometryCellStep.hh" class G4ParallelStepper : public G4VParallelStepper { @@ -48,28 +48,29 @@ public: // with description G4ParallelStepper(); // imitilisation - ~G4ParallelStepper(); + G4ParallelStepper(const G4ParallelStepper &); + // create new G4GeometryCellStep + + virtual ~G4ParallelStepper(); // delete G4Pstep if created - G4ParallelStepper(const G4ParallelStepper &); - // create new G4PStep + virtual G4GeometryCellStep GetPStep() const; + // get the current G4GeometryCellStep + + virtual void Init(const G4GeometryCell &agCell); + // initialise the parallel stepper and the G4GeometryCellStep + // pre and post G4GeometryCell of the step are set equal + + virtual void Update(const G4GeometryCell &agCell); + // to be called when crossing a boundary of the + // "parallel" geometry to update the G4GeometryCellStep + + virtual void UnSetCrossBoundary(); + // to be called to unset the fCrossBoundary member of the G4GeometryCellStep + G4ParallelStepper &operator=(const G4ParallelStepper &); - // create new G4PStep - - G4PStep GetPStep() const {return *fPStep;} - // get the current G4PStep - - void Init(const G4PTouchableKey &aptk); - // initialise the parallel stepper and the G4PStep - // pre and post G4PTouchableKey of the step are set equal - - void Update(const G4PTouchableKey &aptk); - // to be called when crossing a boundary of the - // "parallel" geometry to update the G4PStep - - void UnSetCrossBoundary(); - // to be called to unset the fCrossBoundary member of the G4PStep + // create new G4GeometryCellStep private: @@ -77,7 +78,9 @@ private: private: - G4PStep *fPStep; + G4GeometryCellStep *fPStep; }; + + #endif diff --git a/source/geometry/biasing/include/G4ParallelWorld.hh b/source/geometry/biasing/include/G4ParallelWorld.hh index 30bed9cbc2..efcd68656a 100644 --- a/source/geometry/biasing/include/G4ParallelWorld.hh +++ b/source/geometry/biasing/include/G4ParallelWorld.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelWorld.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelWorld.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelWorld @@ -51,20 +51,12 @@ class G4ParallelWorld public: // with description - G4ParallelWorld(G4VPhysicalVolume &worldvolume); + explicit G4ParallelWorld(G4VPhysicalVolume &worldvolume); // initialisation and create G4ParallelStepper and a G4VPGeoDriver ~G4ParallelWorld(); // delete G4ParallelStepper and a G4VPGeoDriver - G4ParallelWorld(const G4ParallelWorld &rhs); - // create G4ParallelStepper and a G4VPGeoDriver - - G4ParallelWorld &operator=(const G4ParallelWorld &rhs); - // create G4ParallelStepper and a G4VPGeoDriver - - G4VPhysicalVolume *GetWorldVolume() const; - // get the world volume G4VParallelStepper &GetParallelStepper(); // get the parallel stepper @@ -74,7 +66,12 @@ public: // with description private: - G4VPhysicalVolume *fWorldVolume; + G4ParallelWorld(const G4ParallelWorld &rhs); + // create G4ParallelStepper and a G4VPGeoDriver + + G4ParallelWorld &operator=(const G4ParallelWorld &rhs); + // create G4ParallelStepper and a G4VPGeoDriver + G4VParallelStepper *fPstepper; G4VPGeoDriver *fPdriver; }; diff --git a/source/geometry/biasing/include/G4VCellScorer.hh b/source/geometry/biasing/include/G4VCellScorer.hh new file mode 100644 index 0000000000..21a6b24614 --- /dev/null +++ b/source/geometry/biasing/include/G4VCellScorer.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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: G4VCellScorer.hh,v 1.6 2002/10/28 09:53:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4VCellScorer +// +// Class description: +// +// This is an interface for an object which does scoring for one cell +// of a geometry. +// The cell may be a physical volume or replica in the mass or a +// parallel geometry. +// +// Three different situation of the step with respect to the cell +// are separated: entering end exiting the cell and stepping inside +// the cell. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4VCellScorer_hh +#define G4VCellScorer_hh G4VCellScorer_hh + +class G4Step; +class G4GeometryCell; + +class G4VCellScorer { +public: // with description + + G4VCellScorer(); + + virtual ~G4VCellScorer(); + + virtual void ScoreAnExitingStep(const G4Step &aStep, + const G4GeometryCell &gCell) = 0; + // to update scores related with the exiting of a cell + + virtual void ScoreAnEnteringStep(const G4Step &aStep, + const G4GeometryCell &gCell) = 0; + // to update scores related with the entering of a cell + + virtual void ScoreAnInVolumeStep(const G4Step &aStep, + const G4GeometryCell &gCell) = 0; + // to update scores related with the stepping inside the cell + +}; + +#endif diff --git a/source/geometry/biasing/include/G4VCellScorerStore.hh b/source/geometry/biasing/include/G4VCellScorerStore.hh new file mode 100644 index 0000000000..3d01fe06e7 --- /dev/null +++ b/source/geometry/biasing/include/G4VCellScorerStore.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: G4VCellScorerStore.hh,v 1.6 2002/10/28 09:53:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4VCellScorerStore +// +// Class description: +// +// This class describes the interface for a store for +// G4VCellScorer objects. It is used by the class +// G4CellStoreScorer to score the G4CellScorer objects per cell. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4VCellScorerStore_hh +#define G4VCellScorerStore_hh G4VCellScorerStore_hh + +class G4VCellScorer; +class G4GeometryCell; + +class G4VCellScorerStore { +public: // with description + + G4VCellScorerStore(); + + virtual ~G4VCellScorerStore(); + + virtual G4VCellScorer *GetCellScore(const G4GeometryCell &gCell) = 0; + // returns a cell scorer related to the given cell +}; + + +#endif + diff --git a/source/geometry/biasing/include/G4PMapPtkTallys.hh b/source/geometry/biasing/include/G4VGCellFinder.hh similarity index 67% rename from source/geometry/biasing/include/G4PMapPtkTallys.hh rename to source/geometry/biasing/include/G4VGCellFinder.hh index 09c5332de3..90eea610e0 100644 --- a/source/geometry/biasing/include/G4PMapPtkTallys.hh +++ b/source/geometry/biasing/include/G4VGCellFinder.hh @@ -21,34 +21,43 @@ // ******************************************************************** // // -// $Id: G4PMapPtkTallys.hh,v 1.8 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VGCellFinder.hh,v 1.1 2002/10/16 14:30:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4PMapNameTally and G4PMapPtkTallys +// Class G4VGCellFinder // // Class description: // -// Used by G4PScorer and G4PIScorer as containers for tallies. +// An interface of an GCellFinder. The G4GeometryCell is obtained +// in the parallel geometry from G4VParallelStepper and in the +// mass geometry form G4Step. This interface allows to implement +// the two different ways to get a G4GeometryCell used by a process. +// // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4PMapPtkTallys_hh -#define G4PMapPtkTallys_hh G4PMapPtkTallys_hh +#ifndef G4VGCellFinder_hh +#define G4VGCellFinder_hh G4VGCellFinder_hh -#include "g4std/map" #include "globals.hh" -#include "g4std/iostream" -#include "G4PTouchableKey.hh" -#include "G4Sigma.hh" +#include "G4GeometryCell.hh" -typedef G4std::map G4PMapNameTally; - // container for a G4Sigma to each tally -typedef G4std::map G4PMapPtkTallys; - // container for a G4PMapNameTally to each "cell" addressed by a - // G4PTouchableKey +class G4Step; -G4std::ostream& operator<<(G4std::ostream &out, const G4PMapNameTally &tally); -G4std::ostream& operator<<(G4std::ostream &out, const G4PMapPtkTallys &ptktally); +class G4VGCellFinder +{ + +public: // with description + + G4VGCellFinder(); + virtual ~G4VGCellFinder(); + + virtual G4GeometryCell + GetPreGeometryCell(const G4Step &aStep) const=0; + virtual G4GeometryCell + GetPostGeometryCell(const G4Step &aStep) const=0; + +}; #endif diff --git a/source/geometry/biasing/include/G4VIStore.hh b/source/geometry/biasing/include/G4VIStore.hh index 0ae538cdcb..2432896fa7 100644 --- a/source/geometry/biasing/include/G4VIStore.hh +++ b/source/geometry/biasing/include/G4VIStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VIStore.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VIStore.hh,v 1.8 2002/10/14 12:36:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VIStore @@ -43,7 +43,7 @@ #include "globals.hh" -class G4PTouchableKey; +class G4GeometryCell; class G4VPhysicalVolume; class G4VIStore @@ -51,28 +51,17 @@ class G4VIStore public: // with description - G4VIStore(G4VPhysicalVolume &worldVolume){} - virtual ~G4VIStore(){} + G4VIStore(); + virtual ~G4VIStore(); - virtual void AddImportanceRegion(G4double importance, - const G4VPhysicalVolume &, - G4int aRepNum = 0) = 0; - // Add a "cell" together with a importance value to the store. - - virtual void ChangeImportance(G4double importance, - const G4VPhysicalVolume &, - G4int aRepNum = 0) = 0; - // Change a importance value of a "cell". - - virtual G4double GetImportance(const G4VPhysicalVolume &, - G4int aRepNum = 0) const = 0; - // derive the importance value of a "cell" from the store. - - virtual G4double GetImportance(const G4PTouchableKey &ptk) const = 0; - // derive a importance value of a "cell" addresed by a G4PTouchableKey + virtual G4double GetImportance(const G4GeometryCell &gCell) const = 0; + // derive a importance value of a "cell" addresed by a G4GeometryCell // from the store. - virtual G4VPhysicalVolume &GetWorldVolume() = 0; + virtual G4bool IsKnown(const G4GeometryCell &gCell) const = 0; + // returns true if the gCell is in the store, else false + + virtual const G4VPhysicalVolume &GetWorldVolume() const = 0; }; #endif diff --git a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh index 8bd67f06a6..80c9fbce06 100644 --- a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh +++ b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VImportanceAlgorithm.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VImportanceAlgorithm.hh,v 1.7 2002/10/14 12:36:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VImportanceAlgorithm @@ -51,11 +51,13 @@ class G4VImportanceAlgorithm public: // with description - virtual ~G4VImportanceAlgorithm(){} - virtual G4Nsplit_Weight Calculate(G4double ipre_over_ipost, + G4VImportanceAlgorithm(); + virtual ~G4VImportanceAlgorithm(); + virtual G4Nsplit_Weight Calculate(G4double ipre, + G4double ipost, G4double init_w) const = 0; // calculate the number of tracks and their weight according - // to the ratio of pre over post importance and the weight of + // to the pre and post importance value and the weight of // the mother track. }; diff --git a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh index a2234995e3..7315b99bd0 100644 --- a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VImportanceSplitExaminer.hh,v 1.1 2002/05/31 08:07:47 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VImportanceSplitExaminer.hh,v 1.4 2002/10/14 12:36:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VImportanceSplitExaminer @@ -47,8 +47,8 @@ class G4VImportanceSplitExaminer { public: // with description - - virtual ~G4VImportanceSplitExaminer(){} + G4VImportanceSplitExaminer(); + virtual ~G4VImportanceSplitExaminer(); virtual G4Nsplit_Weight Examine(G4double w) const = 0; // Get G4Nsplit_Weight for a given mother track weight. }; diff --git a/source/geometry/biasing/include/G4VPGeoDriver.hh b/source/geometry/biasing/include/G4VPGeoDriver.hh index ce39d57cd4..3e75b10ae8 100644 --- a/source/geometry/biasing/include/G4VPGeoDriver.hh +++ b/source/geometry/biasing/include/G4VPGeoDriver.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPGeoDriver.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPGeoDriver.hh,v 1.6 2002/10/14 12:36:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VPGeoDriver @@ -41,25 +41,28 @@ #include "globals.hh" #include "G4ThreeVector.hh" -#include "G4PTouchableKey.hh" +#include "G4GeometryCell.hh" + +class G4VPhysicalVolume; class G4VPGeoDriver { public: // with description - virtual ~G4VPGeoDriver(){} + G4VPGeoDriver(); + virtual ~G4VPGeoDriver(); - virtual G4PTouchableKey LocateOnBoundary(const G4ThreeVector &aPosition, - const G4ThreeVector &aDirection) = 0; + virtual G4GeometryCell LocateOnBoundary(const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) = 0; // The location of a track according to it's position // and direction in case the track crosses a boundary // of a "parallel" geometry. // Must be called in the PostDOIT of the ParallelTransportation. // (The track crosses the boundary if PostDOIT gets called.) - virtual G4PTouchableKey GetCurrentTouchableKey() const = 0; - // get the current G4PTouchableKey of the "parallel" geometry + virtual G4GeometryCell GetCurrentGeometryCell() const = 0; + // get the current G4GeometryCell of the "parallel" geometry virtual G4double ComputeStepLengthInit(const G4ThreeVector &aPosition, const G4ThreeVector &aDirection) = 0; diff --git a/source/geometry/biasing/include/G4VParallelStepper.hh b/source/geometry/biasing/include/G4VParallelStepper.hh index 0f72d48815..c30dc45601 100644 --- a/source/geometry/biasing/include/G4VParallelStepper.hh +++ b/source/geometry/biasing/include/G4VParallelStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParallelStepper.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VParallelStepper.hh,v 1.7 2002/10/22 13:18:46 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VParallelStepper @@ -32,7 +32,7 @@ // This interface is used internally by importance sampling and scoring // in a "parallel" geometry. // It abstracts a parallel stepper which servs to comunicate -// information about a G4PStep between the "transportation" +// information about a G4GeometryCellStep between the "transportation" // (done by G4ParallelTransport) of a track in a "parallel" geometry // and a scorer for that geometry. @@ -41,28 +41,29 @@ #ifndef G4VParallelStepper_hh #define G4VParallelStepper_hh G4VParallelStepper_hh -#include "G4PStep.hh" +#include "G4GeometryCellStep.hh" class G4VParallelStepper { public: // with description - virtual ~G4VParallelStepper(){} + G4VParallelStepper(); + virtual ~G4VParallelStepper(); - virtual G4PStep GetPStep() const = 0; - // get the current G4PStep + virtual G4GeometryCellStep GetPStep() const = 0; + // get the current G4GeometryCellStep - virtual void Init(const G4PTouchableKey &aptk) = 0; - // initialise the parallel stepper and the G4PStep - // pre and post G4PTouchableKey of the step are set equal + virtual void Init(const G4GeometryCell &agCell) = 0; + // initialise the parallel stepper and the G4GeometryCellStep + // pre and post G4GeometryCell of the step are set equal - virtual void Update(const G4PTouchableKey &aptk) = 0; + virtual void Update(const G4GeometryCell &agCell) = 0; // to be called when crossing a boundary of the - // "parallel" geometry to update the G4PStep + // "parallel" geometry to update the G4GeometryCellStep virtual void UnSetCrossBoundary() = 0; - // to be called to unset the fCrossBoundary member of the G4PStep + // to be called to unset the fCrossBoundary member of the G4GeometryCellStep }; diff --git a/source/geometry/biasing/include/G4VPScorer.hh b/source/geometry/biasing/include/G4VScorer.hh similarity index 77% rename from source/geometry/biasing/include/G4VPScorer.hh rename to source/geometry/biasing/include/G4VScorer.hh index e48582a017..d3e99048d2 100644 --- a/source/geometry/biasing/include/G4VPScorer.hh +++ b/source/geometry/biasing/include/G4VScorer.hh @@ -21,11 +21,11 @@ // ******************************************************************** // // -// $Id: G4VPScorer.hh,v 1.3 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VScorer.hh,v 1.1 2002/10/28 09:53:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4VPScorer +// Class G4VScorer // // Class description: // @@ -33,31 +33,29 @@ // scorers should inherit from it. // A scorer is applicable to a particle type. // The scorer (inheriting from this interface) is informed -// about every step of a particle of a the applicable type. -// The information consists of the G4Step and the G4PStep -// (see G4PStep.hh). +// about every step of a particle of the applicable type. +// The information consists of the G4Step and the G4GeometryCellStep +// (see G4GeometryCellStep.hh). // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4VPScorer_hh -#define G4VPScorer_hh G4VPScorer_hh +#ifndef G4VScorer_hh +#define G4VScorer_hh G4VScorer_hh class G4Step; -class G4PStep; +class G4GeometryCellStep; -class G4VPScorer +class G4VScorer { public: // with description - virtual ~G4VPScorer() {} - virtual void Score(const G4Step &step, const G4PStep &pstep) = 0; - // perform scoring for the G4Step and G4PStep + G4VScorer(); + + virtual ~G4VScorer(); + + virtual void Score(const G4Step &step, const G4GeometryCellStep &gstep) = 0; + // perform scoring for the G4Step and G4GeometryCellStep }; #endif - - - - - diff --git a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh index 58cc33e055..22f390fab3 100644 --- a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VWeightWindowAlgorithm.hh,v 1.2 2002/05/30 16:00:55 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VWeightWindowAlgorithm.hh,v 1.5 2002/10/14 12:36:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowAlgorithm @@ -50,7 +50,8 @@ class G4VWeightWindowAlgorithm public: // with description - virtual ~G4VWeightWindowAlgorithm(){} + G4VWeightWindowAlgorithm(); + virtual ~G4VWeightWindowAlgorithm(); virtual void SetUpperLimit(G4double Upper) = 0; // set upper limiting factor for window diff --git a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh index 21f215cee7..3136741074 100644 --- a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4WeightWindowAlgorithm.hh,v 1.2 2002/05/30 16:00:55 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4WeightWindowAlgorithm.hh,v 1.4 2002/10/14 12:36:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowAlgorithm @@ -46,22 +46,22 @@ public: // with description G4WeightWindowAlgorithm(); - ~G4WeightWindowAlgorithm(){} + virtual ~G4WeightWindowAlgorithm(); - void SetUpperLimit(G4double Upper); + virtual void SetUpperLimit(G4double Upper); // set upper limiting factor for window // - Upper is the maximum factor by which the weight of a particle may // be higher than it should be according to the importance - void SetLowerLimit(G4double Lower); + virtual void SetLowerLimit(G4double Lower); // set lower limiting facotr for window // - Lower is the minimal factor by which the wight may be // lower than it should be according to the importance - G4Nsplit_Weight Calculate(G4double init_w, - G4double importance) const; + virtual G4Nsplit_Weight Calculate(G4double init_w, + G4double importance) const; // calculate the number of tracks and their weight according // to the upper and lower limmiting factors of the window // and the initial weight diff --git a/source/geometry/biasing/src/G4GeometryCell.cc b/source/geometry/biasing/src/G4GeometryCell.cc new file mode 100644 index 0000000000..3955022732 --- /dev/null +++ b/source/geometry/biasing/src/G4GeometryCell.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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: G4GeometryCell.cc,v 1.5 2002/10/22 13:18:46 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4GeometryCell.cc +// +// ---------------------------------------------------------------------- + +#include "G4GeometryCell.hh" +//#include "G4VPhysicalVolume.hh" + +G4GeometryCell::G4GeometryCell(const G4VPhysicalVolume &aVolume, + G4int RepNum) + : fVPhysiclaVolume(&aVolume), + fRepNum(RepNum) +{} + +G4GeometryCell::~G4GeometryCell() +{} + + +const G4VPhysicalVolume &G4GeometryCell::GetPhysicalVolume() const +{ + return *fVPhysiclaVolume; +} + +G4int G4GeometryCell::GetReplicaNumber() const +{ + return fRepNum; +} + + +G4GeometryCell::G4GeometryCell(const G4GeometryCell &rhs){ + *this = rhs; +} + +G4GeometryCell &G4GeometryCell::operator=(const G4GeometryCell &rhs){ + if (this != &rhs) { + fVPhysiclaVolume = rhs.fVPhysiclaVolume; // this is treated + // as identifyer + fRepNum = rhs.fRepNum; + } + return *this; +} + + +G4bool operator==(const G4GeometryCell &k1, const G4GeometryCell &k2) +{ + G4bool equal=true; + if (&(k1.GetPhysicalVolume()) != &(k2.GetPhysicalVolume())) { + equal = false; + } + else if (k1.GetReplicaNumber() != k2.GetReplicaNumber()) { + equal = false; + } + return equal; +} + +G4bool operator!=(const G4GeometryCell &k1, const G4GeometryCell &k2) +{ + G4bool unequal = false; + if (&(k1.GetPhysicalVolume()) != &(k2.GetPhysicalVolume())) { + unequal = true; + } + else if (k1.GetReplicaNumber() != k2.GetReplicaNumber()) { + unequal = true; + } + return unequal; +} diff --git a/source/geometry/biasing/src/G4GeometryCellComp.cc b/source/geometry/biasing/src/G4GeometryCellComp.cc new file mode 100644 index 0000000000..954ebc169c --- /dev/null +++ b/source/geometry/biasing/src/G4GeometryCellComp.cc @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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: G4GeometryCellComp.cc,v 1.3 2002/12/13 11:54:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4GeometryCellCmp.cc +// +// ---------------------------------------------------------------------- + +#include "G4GeometryCellComp.hh" +#include "G4GeometryCell.hh" +//#include "G4VPhysicalVolume.hh" + + +G4GeometryCellComp::G4GeometryCellComp() +{} + +G4bool G4GeometryCellComp::operator() (const G4GeometryCell &k1, + const G4GeometryCell &k2) const +{ + G4bool smaler=false; + if (&(k1.GetPhysicalVolume()) != &(k2.GetPhysicalVolume())) { + smaler = &(k1.GetPhysicalVolume()) < &(k2.GetPhysicalVolume()); + } else { + smaler = k1.GetReplicaNumber() < k2.GetReplicaNumber(); + } + return smaler; +} diff --git a/source/geometry/biasing/src/G4PtkImportance.cc b/source/geometry/biasing/src/G4GeometryCellImportance.cc similarity index 80% rename from source/geometry/biasing/src/G4PtkImportance.cc rename to source/geometry/biasing/src/G4GeometryCellImportance.cc index 2395eda916..9586d2c7dd 100644 --- a/source/geometry/biasing/src/G4PtkImportance.cc +++ b/source/geometry/biasing/src/G4GeometryCellImportance.cc @@ -21,23 +21,23 @@ // ******************************************************************** // // -// $Id: G4PtkImportance.cc,v 1.4 2002/04/09 16:23:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryCellImportance.cc,v 1.3 2002/10/22 13:18:46 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4PtkImportance.cc +// G4GeometryCellImportance.cc // // ---------------------------------------------------------------------- -#include "G4PtkImportance.hh" -#include "G4PStepStream.hh" +#include "G4GeometryCellImportance.hh" +#include "G4GeometryCellStepStream.hh" -G4std::ostream& operator<<(G4std::ostream &out, const G4PtkImportance &ptki) +G4std::ostream& operator<<(G4std::ostream &out, const G4GeometryCellImportance &gCelli) { - for (G4PtkImportance::const_iterator it = ptki.begin(); - it != ptki.end(); it++) { + for (G4GeometryCellImportance::const_iterator it = gCelli.begin(); + it != gCelli.end(); ++it) { out << (*it).first << ", importance = "; out << (*it).second << "\n"; } diff --git a/source/geometry/biasing/src/G4GeometryCellStep.cc b/source/geometry/biasing/src/G4GeometryCellStep.cc new file mode 100644 index 0000000000..c1b7d2c60b --- /dev/null +++ b/source/geometry/biasing/src/G4GeometryCellStep.cc @@ -0,0 +1,45 @@ +// +// ******************************************************************** +// * 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: G4GeometryCellStep.cc,v 1.1 2002/10/22 13:18:46 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4GeometryCellStep.cc +// +// ---------------------------------------------------------------------- + +#include "G4GeometryCellStep.hh" + +G4GeometryCellStep::G4GeometryCellStep(const G4GeometryCell &preCell, + const G4GeometryCell &postCell) + : + fPreGeometryCell(preCell), + fPostGeometryCell(postCell), + fCrossBoundary(false) +{} + +G4GeometryCellStep::~G4GeometryCellStep() +{} diff --git a/source/geometry/biasing/src/G4PStepStream.cc b/source/geometry/biasing/src/G4GeometryCellStepStream.cc similarity index 71% rename from source/geometry/biasing/src/G4PStepStream.cc rename to source/geometry/biasing/src/G4GeometryCellStepStream.cc index 80eab236e0..d712de7c14 100644 --- a/source/geometry/biasing/src/G4PStepStream.cc +++ b/source/geometry/biasing/src/G4GeometryCellStepStream.cc @@ -21,31 +21,31 @@ // ******************************************************************** // // -// $Id: G4PStepStream.cc,v 1.3 2002/04/09 16:23:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryCellStepStream.cc,v 1.1 2002/10/22 13:18:47 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4PStepStream.cc +// G4GeometryCellStepStream.cc // // ---------------------------------------------------------------------- -#include "G4PStepStream.hh" +#include "G4GeometryCellStepStream.hh" #include "G4VPhysicalVolume.hh" -#include "G4PStep.hh" +#include "G4GeometryCellStep.hh" -G4std::ostream& operator<<(G4std::ostream &out, const G4PTouchableKey &tk) +G4std::ostream& operator<<(G4std::ostream &out, const G4GeometryCell &tk) { - out << "Volume name = " << tk.fVPhysiclaVolume->GetName() << ", "; - out << "Replica number = " << tk.fRepNum; + out << "Volume name = " << tk.GetPhysicalVolume().GetName() << ", "; + out << "Replica number = " << tk.GetReplicaNumber(); return out; } -G4std::ostream& operator<<(G4std::ostream &out, const G4PStep &ps) +G4std::ostream& operator<<(G4std::ostream &out, const G4GeometryCellStep &ps) { - out << "PreTouchableKey : " << ps.fPreTouchableKey << " "; - out << "PostTouchableKey: " << ps.fPostTouchableKey << " "; - out << "CrossBoundary : " << ps.fCrossBoundary << "\n"; + out << "PreGeometryCell : " << ps.GetPreGeometryCell() << " "; + out << "PostGeometryCell: " << ps.GetPostGeometryCell() << " "; + out << "CrossBoundary : " << ps.GetCrossBoundary() << "\n"; return out; } diff --git a/source/geometry/biasing/src/G4IStore.cc b/source/geometry/biasing/src/G4IStore.cc index 490b7f1ad1..5c19b42bae 100644 --- a/source/geometry/biasing/src/G4IStore.cc +++ b/source/geometry/biasing/src/G4IStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IStore.cc,v 1.3 2002/04/09 16:23:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IStore.cc,v 1.10 2002/11/04 10:43:07 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -33,83 +33,98 @@ #include "G4IStore.hh" #include "G4VPhysicalVolume.hh" -#include "G4PTouchableKey.hh" -#include "G4PStepStream.hh" +#include "G4GeometryCell.hh" +#include "G4GeometryCellStepStream.hh" -G4IStore::G4IStore(G4VPhysicalVolume &worldvolume) : - G4VIStore(worldvolume), +G4IStore::G4IStore(const G4VPhysicalVolume &worldvolume) : fWorldVolume(worldvolume) {} G4IStore::~G4IStore() {} -G4VPhysicalVolume &G4IStore::GetWorldVolume() +const G4VPhysicalVolume &G4IStore::GetWorldVolume() const { return fWorldVolume; } -void G4IStore::SetInternalIterator(const G4VPhysicalVolume &aVolume, - G4int aRepNum) const +void G4IStore::SetInternalIterator(const G4GeometryCell &gCell) const { - if (!IsInWorld(aVolume)) { - Error("SetInternalIterator: physical volume not in this World"); - } - fCurrentIterator = fPtki.find(G4PTouchableKey(aVolume, aRepNum)); + // if (!IsInWorld(aVolume)) { + // Error("SetInternalIterator: physical volume not in this World"); + // } + fCurrentIterator = fGeometryCelli.find(gCell); } -void G4IStore::AddImportanceRegion(G4double importance, +void G4IStore::AddImportanceGeometryCell(G4double importance, + const G4GeometryCell &gCell){ + if (importance < 0 ) { + Error("AddImportanceGeometryCell: invalid importance value given"); + } + SetInternalIterator(gCell); + if (fCurrentIterator!=fGeometryCelli.end()) { + Error("AddImportanceGeometryCell: Region allready exists"); + } + fGeometryCelli[gCell] = importance; +} + +void G4IStore::AddImportanceGeometryCell(G4double importance, const G4VPhysicalVolume &aVolume, G4int aRepNum) { - if (importance <=0 ) { - Error("AddImportanceRegion: invalid importance value given"); - } - SetInternalIterator(aVolume, aRepNum); - if (fCurrentIterator!=fPtki.end()) { - Error("AddImportanceRegion: Region allready exists"); - } - fPtki[G4PTouchableKey(aVolume, aRepNum)] = importance; + AddImportanceGeometryCell(importance, + G4GeometryCell(aVolume, aRepNum)); } +void G4IStore::ChangeImportance(G4double importance, + const G4GeometryCell &gCell){ + if (importance < 0 ) { + Error("ChangeImportance: Invalid importance value given"); + } + SetInternalIterator(gCell); + if (fCurrentIterator==fGeometryCelli.end()) { + Error("ChangeImportance: Region does not exist"); + } + fGeometryCelli[gCell] = importance; + +} void G4IStore::ChangeImportance(G4double importance, const G4VPhysicalVolume &aVolume, G4int aRepNum) { - if (importance <=0 ) { - Error("ChangeImportance: Invalid importance value given"); - } - SetInternalIterator(aVolume, aRepNum); - if (fCurrentIterator==fPtki.end()) { - Error("ChangeImportance: Region does not exist"); - } - fPtki[G4PTouchableKey(aVolume, aRepNum)] = importance; + ChangeImportance(importance, G4GeometryCell(aVolume, aRepNum)); } G4double G4IStore::GetImportance(const G4VPhysicalVolume &aVolume, G4int aRepNum) const { - SetInternalIterator(aVolume, aRepNum); - if (fCurrentIterator==fPtki.end()) { + SetInternalIterator(G4GeometryCell(aVolume, aRepNum)); + if (fCurrentIterator==fGeometryCelli.end()) { Error("GetImportance: Region does not exist"); } return (*fCurrentIterator).second; } -G4double G4IStore::GetImportance(const G4PTouchableKey &ptk) const +G4double G4IStore::GetImportance(const G4GeometryCell &gCell) const { - fCurrentIterator = fPtki.find(ptk); - if (fCurrentIterator==fPtki.end()) { - G4cout << "PTouchableKey ptk: " << ptk << G4endl; + SetInternalIterator(gCell); + if (fCurrentIterator==fGeometryCelli.end()) { + G4cout << "PGeometryCell gCell: " << gCell << G4endl; G4cout << "Not found in: " << G4endl; - G4cout << fPtki << G4endl; - Error("GetImportance(ptk): Region does not exist"); + G4cout << fGeometryCelli << G4endl; + Error("GetImportance(gCell): Region does not exist"); } return (*fCurrentIterator).second; } +G4bool G4IStore::IsKnown(const G4GeometryCell &gCell) const { + SetInternalIterator(gCell); + return (fCurrentIterator!=fGeometryCelli.end()); +} + + G4bool G4IStore::IsInWorld(const G4VPhysicalVolume &aVolume) const { return true; diff --git a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc index c1e72f9128..f49e5e752a 100644 --- a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc +++ b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceAlgorithm.cc,v 1.4 2002/04/09 16:23:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImportanceAlgorithm.cc,v 1.9 2002/11/04 10:43:07 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -49,59 +49,67 @@ G4ImportanceAlgorithm::~G4ImportanceAlgorithm() } G4Nsplit_Weight -G4ImportanceAlgorithm::Calculate(G4double ipre_over_ipost, +G4ImportanceAlgorithm::Calculate(G4double ipre, + G4double ipost, G4double init_w) const { - if ((ipre_over_ipost<0.25 || ipre_over_ipost> 4) && !fWorned) { - G4std::ostrstream os; - os << "Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = " - << ipre_over_ipost << '\0' << G4endl; - Warning(os.str()); - fWorned = true; - if (ipre_over_ipost<=0) { - Error("Calculate: ipre_over_ipost<=0"); + G4Nsplit_Weight nw = {0,0}; + if (ipost>0.){ + if (!(ipre>0.)){ + G4Exception("Error: G4ImportanceAlgorithm::Calculate: ipre==0."); + } + G4double ipre_over_ipost = ipre/ipost; + if ((ipre_over_ipost<0.25 || ipre_over_ipost> 4) && !fWorned) { + G4std::ostrstream os; + os << "Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = " + << ipre_over_ipost << '\0' << G4endl; + Warning(os.str()); + fWorned = true; + if (ipre_over_ipost<=0) { + Error("Calculate: ipre_over_ipost<=0"); + } + } + if (init_w<=0.) { + Error("Calculate: iniitweight<= 0. found"); } - } - if (init_w<=0.) { - Error("Calculate: iniitweight<= 0. found"); - } - // default geometrical splitting - // in integer mode - // for ipre_over_ipost <= 1 - G4double inv = 1./ipre_over_ipost; - G4Nsplit_Weight nw( (int)inv, init_w * ipre_over_ipost); - - // geometrical splitting for double mode - if (ipre_over_ipost<1) { - if ( G4double(nw.fN) != inv) { - // double mode - // probability p for splitting into n+1 tracks - G4double p = inv - nw.fN; + // default geometrical splitting + // in integer mode + // for ipre_over_ipost <= 1 + G4double inv = 1./ipre_over_ipost; + nw.fN = static_cast(inv); + nw.fW = init_w * ipre_over_ipost; + + // geometrical splitting for double mode + if (ipre_over_ipost<1) { + if ( static_cast(nw.fN) != inv) { + // double mode + // probability p for splitting into n+1 tracks + G4double p = inv - nw.fN; + // get a random number out of [0,1) + G4double r = G4UniformRand(); + if (r 1 + // russian roulett + else if (ipre_over_ipost>1) { + // probabiity for killing track + G4double p = 1-inv; // get a random number out of [0,1) G4double r = G4UniformRand(); if (r 1 - // russian roulett - else { - // probabiity for killing track - G4double p = 1-inv; - // get a random number out of [0,1) - G4double r = G4UniformRand(); - if (rSetGeometricallyLimitedStep(); + fNavigator-> + LocateGlobalPointAndUpdateTouchableHandle( aPosition, + aDirection, + fCurrentTouchableH, + true); + fNlocated++; + */ + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "LOB: " << aPosition << ", " << aDirection << G4endl; + } + fNavigator.SetGeometricallyLimitedStep(); + Locate(aPosition, aDirection, true, false); + // since the track crosses a boundary ipdate stepper + G4GeometryCell g= GetCurrentGeometryCell(); + return g; } G4double G4ParallelNavigator:: ComputeStepLengthInit(const G4ThreeVector &aPosition, const G4ThreeVector &aDirection) { - G4double newSafety; - G4double stepLength; - // initialization fNlocated = 0; - - // first try - Locate(aPosition, aDirection, false); - stepLength = fNavigator.ComputeStep( aPosition, aDirection, - kInfinity, newSafety); - if (stepLength<=0.0) { - // second try with schifted position - stepLength = ComputeStepLengthShifted("ComputeStepLengthInit", - aPosition, aDirection); - } - return stepLength; + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "CSInit: " << aPosition << ", " << aDirection << G4endl; + } + Locate(aPosition, aDirection, false, false); + return GetStepLength("ComputeStepLengthInit", + aPosition, aDirection); } G4double G4ParallelNavigator:: @@ -94,26 +98,20 @@ ComputeStepLengthCrossBoundary(const G4ThreeVector &aPosition, Error("ComputeStepLengthCrossBoundary: no location done before call", aPosition, aDirection); } - - // if the track is on boundary the location was done - // in the DOIT of the ImportanceSplitExaminer - - G4double newSafety; - G4double stepLength = fNavigator.ComputeStep( aPosition, aDirection, - kInfinity, newSafety); - if (stepLength<=0.) { - // second try with schifted position - G4cout << "Warning: G4ParallelNavigator::ComputeStepLengthCrossBoundary: " - << G4endl; - G4cout << "stepLength<=0." << ", pos = " << aPosition - << ", dir = " << aDirection << G4endl; - G4cout << "try ComputeStepLengthShifted" << G4endl; - stepLength = ComputeStepLengthShifted("ComputeStepLengthCrossBoundary", - aPosition, aDirection); + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "CSCB: " << aPosition << ", " << aDirection << G4endl; } - return stepLength; + // if the track is on boundary the LocateOnBoundary was called + // in the DOIT of the ParalleTransport + + // but location in volume overcomes a problem with spheres + // fNavigator->LocateGlobalPointWithinVolume(aPosition); + return GetStepLength("ComputeStepLengthCrossBoundary", + aPosition, aDirection); } + G4double G4ParallelNavigator:: ComputeStepLengthInVolume(const G4ThreeVector &aPosition, const G4ThreeVector &aDirection) @@ -122,68 +120,140 @@ ComputeStepLengthInVolume(const G4ThreeVector &aPosition, Error("ComputeStepLengthInVolume, no location done before call", aPosition, aDirection); } - + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "CSinV: " << aPosition << ", " << aDirection << G4endl; + } // if the track is not on the boundary and it's // not the first step, the location must be inside the // volume + fNavigator.LocateGlobalPointWithinVolume(aPosition); - G4double newSafety; - G4double stepLength = fNavigator.ComputeStep( aPosition, aDirection, - kInfinity, newSafety); - if (stepLength<=0.) { - // second try with schifted position - G4cout << "Warning: G4ParallelNavigator::ComputeStepLengthInVolume: " - << G4endl; - G4cout << "stepLength<=0." << ", pos = " << aPosition - << ", dir = " << aDirection << G4endl; - G4cout << "try ComputeStepLengthShifted" << G4endl; - stepLength = ComputeStepLengthShifted("ComputeStepLengthInVolume", - aPosition, aDirection); - } - return stepLength; + // Locate(aPosition, aDirection, true); // reduces stepLength<=0. calls + return GetStepLengthUseLocate("ComputeStepLengthInVolume", + aPosition, aDirection); } // private functions void G4ParallelNavigator::Locate(const G4ThreeVector &aPosition, const G4ThreeVector &aDirection, - G4bool histsearch) + G4bool historysearch, + G4bool useDirection) { - fNavigator.SetGeometricallyLimitedStep(); - fNavigator. - LocateGlobalPointAndUpdateTouchable( aPosition, aDirection, - fCurrentTouchable, histsearch); + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "Locate: " << aPosition << ", " << aDirection << G4endl; + } + fNavigator.LocateGlobalPointAndSetup( aPosition, + &aDirection, + historysearch, + !useDirection); + fCurrentTouchableH = fNavigator.CreateTouchableHistory(); + fNlocated++; return; } + +G4double G4ParallelNavigator:: +GetStepLength(const G4String &methodname, + const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) { + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "GetSL: " << aPosition << ", " << aDirection << G4endl; + } + G4double newSafety = 0.; + G4double stepLength = fNavigator.ComputeStep( aPosition, + aDirection, + kInfinity, + newSafety); + // if stepLength = 0 try shifting + if (stepLength<=2*kCarTolerance) { + stepLength = + ComputeStepLengthShifted(methodname, + aPosition, aDirection); + } + return stepLength; +} + +G4double G4ParallelNavigator:: +GetStepLengthUseLocate(const G4String &methodname, + const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) { + if (fVerbose>=2) { + G4cout.precision(12); + G4cout << "GetSLuseLocate: " << aPosition << ", " << aDirection << G4endl; + } + G4double newSafety = 0; + G4double stepLength = fNavigator.ComputeStep( aPosition, aDirection, + kInfinity, newSafety); + // if stepLength = 0 try locate + if (stepLength<=2*kCarTolerance) { + Locate(aPosition, aDirection, true, true); + stepLength = GetStepLength(methodname + + "form GetStepLengthUseLocate", + aPosition, + aDirection); + } + return stepLength; +} + + G4double -G4ParallelNavigator::ComputeStepLengthShifted(const G4String &m, - const G4ThreeVector &aPosition, - const G4ThreeVector &aDirection) +G4ParallelNavigator:: +ComputeStepLengthShifted(const G4String &m, + const G4ThreeVector &aPosition, + const G4ThreeVector &aDirection) { + if (fVerbose>=1) { + G4cout.precision(12); + G4cout << "G4ParallelNavigator::ComputeStepLengthShifted: invoked by: " + << m << G4endl; + } G4ThreeVector shift_pos(aPosition); shift_pos+=G4ThreeVector(Shift(aDirection.x()), Shift(aDirection.y()), Shift(aDirection.z())); - Locate(shift_pos, aDirection, false); - G4double newSafety; - G4double stepLength = fNavigator.ComputeStep( shift_pos, aDirection, - kInfinity, newSafety); - if (stepLength<=0.0) { - G4std::ostrstream os; - os << "ComputeStepLengthShifted: called by " << m << "\n"; - os << "shifted positio in second try: " << shift_pos << '\0' << G4endl; - Error(os.str() , aPosition, aDirection); + G4double stepLength = 0.; + G4int trys = 0; + while (stepLength<=2*kCarTolerance && trys < fMaxShiftedTrys) { + if (fVerbose>=1) { + G4cout << "G4ParallelNavigator::ComputeStepLengthShifted: trys = " + << ++trys << G4endl; + G4cout << "shifted position: " << shift_pos + << ", direction: " << aDirection << G4endl; + } + Locate(shift_pos, aDirection, true, true); // to get into the correct volume + G4double newSafety = 0; + fNavigator.LocateGlobalPointWithinVolume(aPosition); // to place at the correct position + stepLength = fNavigator.ComputeStep( aPosition, aDirection, + kInfinity, newSafety); + } + if (stepLength<=kCarTolerance) { + char st[200]; + G4std::ostrstream os(st,200); + os << "still got stepLength<=kCarTolerance: " + << shift_pos + << "\n" + << '\0'; + G4String m(st); + Error(m, aPosition, aDirection); } return stepLength; } -G4PTouchableKey G4ParallelNavigator::GetCurrentTouchableKey() const +G4GeometryCell G4ParallelNavigator::GetCurrentGeometryCell() const { - return G4PTouchableKey(*fCurrentTouchable->GetVolume(), - fCurrentTouchable->GetReplicaNumber()); + return G4GeometryCell(*fCurrentTouchableH->GetVolume(), + fCurrentTouchableH->GetReplicaNumber()); +} + + +void G4ParallelNavigator::SetVerboseity(G4int v) { + fVerbose = v; } void G4ParallelNavigator::Error(const G4String &m, @@ -198,7 +268,12 @@ void G4ParallelNavigator::Error(const G4String &m, G4double G4ParallelNavigator::Shift(G4double d) { - if (d>0) return 2 * kCarTolerance; - if (d<0) return -2 * kCarTolerance; - return 0.; + G4double s=0; + if (d>0){ + s = 2 * kCarTolerance; + } + else if (d<0) { + s = -2 * kCarTolerance; + } + return s; } diff --git a/source/geometry/biasing/src/G4ParallelStepper.cc b/source/geometry/biasing/src/G4ParallelStepper.cc index a65af4229c..1e6f7bce13 100644 --- a/source/geometry/biasing/src/G4ParallelStepper.cc +++ b/source/geometry/biasing/src/G4ParallelStepper.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelStepper.cc,v 1.3 2002/04/10 13:13:07 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelStepper.cc,v 1.8 2002/11/04 10:43:07 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -40,42 +40,61 @@ G4ParallelStepper::G4ParallelStepper() G4ParallelStepper::~G4ParallelStepper() { - if (fPStep) delete fPStep; + if (fPStep) { + delete fPStep; + } } G4ParallelStepper::G4ParallelStepper(const G4ParallelStepper &rhs) + : + fPStep(new G4GeometryCellStep(rhs.GetPStep())) { - fPStep = new G4PStep(rhs.GetPStep()); + if (!fPStep) { + Error("G4ParallelStepper:: new failed to create a G4GeometryCellStep!"); + } } G4ParallelStepper &G4ParallelStepper::operator=(const G4ParallelStepper &rhs) { if (this != &rhs) { - fPStep = new G4PStep(rhs.GetPStep()); + fPStep = new G4GeometryCellStep(rhs.GetPStep()); + if (!fPStep) { + Error("operator=: new failed to create a G4GeometryCellStep!"); + } } return *this; } -void G4ParallelStepper::Init(const G4PTouchableKey &aptk) -{ - if (!fPStep) { - fPStep = new G4PStep(aptk, aptk); - } - else { - fPStep->fPreTouchableKey = aptk; - fPStep->fPostTouchableKey = aptk; - } - UnSetCrossBoundary(); +G4GeometryCellStep G4ParallelStepper::GetPStep() const { + G4GeometryCellStep p = *fPStep; + return p; } -void G4ParallelStepper::Update(const G4PTouchableKey &aptk) + +void G4ParallelStepper::Init(const G4GeometryCell &agCell) +{ + if (!fPStep) { + fPStep = new G4GeometryCellStep(agCell, agCell); + if (!fPStep) { + Error("Init new failed to create a G4GeometryCellStep!"); + } + + } + else { + fPStep->SetPreGeometryCell(agCell); + fPStep->SetPostGeometryCell(agCell); + fPStep->SetCrossBoundary(false); + } +} + +void G4ParallelStepper::Update(const G4GeometryCell &agCell) { if (!fPStep) { Error("fPStep == 0, Init not called?"); } - fPStep->fPreTouchableKey = fPStep->fPostTouchableKey; - fPStep->fPostTouchableKey = aptk; - fPStep->fCrossBoundary = true; + fPStep->SetPreGeometryCell(fPStep->GetPostGeometryCell()); + fPStep->SetPostGeometryCell(agCell); + fPStep->SetCrossBoundary(true); } void G4ParallelStepper::UnSetCrossBoundary() @@ -83,7 +102,7 @@ void G4ParallelStepper::UnSetCrossBoundary() if (!fPStep) { Error("fPStep == 0, Init not called?"); } - fPStep->fCrossBoundary = false; + fPStep->SetCrossBoundary(false); } void G4ParallelStepper::Error(const G4String &m) diff --git a/source/geometry/biasing/src/G4ParallelWorld.cc b/source/geometry/biasing/src/G4ParallelWorld.cc index c3ffe6c4e6..66659d5ec0 100644 --- a/source/geometry/biasing/src/G4ParallelWorld.cc +++ b/source/geometry/biasing/src/G4ParallelWorld.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelWorld.cc,v 1.2 2002/04/09 16:23:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelWorld.cc,v 1.6 2002/11/04 10:43:07 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,10 +37,16 @@ #include "G4VPhysicalVolume.hh" G4ParallelWorld::G4ParallelWorld(G4VPhysicalVolume &worldvolume) - : fWorldVolume(&worldvolume), - fPstepper(new G4ParallelStepper), - fPdriver(new G4ParallelNavigator(*fWorldVolume)) -{} + : fPstepper(new G4ParallelStepper), + fPdriver(new G4ParallelNavigator(worldvolume)) +{ + if (!fPstepper) { + G4Exception("ERROR: G4ParallelWorld::G4ParallelWorld: new failed to create a G4ParallelStepper"); + } + if (!fPdriver) { + G4Exception("ERROR: G4ParallelWorld::G4ParallelWorld: new failed to create a G4ParallelNavigator"); + } +} G4ParallelWorld::~G4ParallelWorld() { @@ -48,31 +54,6 @@ G4ParallelWorld::~G4ParallelWorld() delete fPstepper; } -G4ParallelWorld::G4ParallelWorld(const G4ParallelWorld &rhs) - : fWorldVolume(rhs.GetWorldVolume()) -{ - fPstepper = new G4ParallelStepper; - fPdriver = new G4ParallelNavigator(*fWorldVolume); -} - -G4ParallelWorld &G4ParallelWorld::operator=(const G4ParallelWorld &rhs) -{ - if (this!=&rhs) { - - fWorldVolume = rhs.GetWorldVolume(); - fPstepper = new G4ParallelStepper; - fPdriver = new G4ParallelNavigator(*fWorldVolume); - } - return *this; -} - - -G4VPhysicalVolume *G4ParallelWorld::GetWorldVolume() const -{ - return fWorldVolume; -} - - G4VParallelStepper &G4ParallelWorld::GetParallelStepper() { return *fPstepper; diff --git a/source/geometry/biasing/src/G4Sigma.cc b/source/geometry/biasing/src/G4Sigma.cc deleted file mode 100644 index c389fc5470..0000000000 --- a/source/geometry/biasing/src/G4Sigma.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: G4Sigma.cc,v 1.4 2002/04/09 16:23:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4Sigma.cc -// -// ---------------------------------------------------------------------- - -#include "G4Sigma.hh" -#include "globals.hh" -#include -#include - -G4Sigma::G4Sigma() -{ - Init(); -} - -G4Sigma::~G4Sigma() -{} - -void G4Sigma::Init() -{ - fEntries = 0; - fMean = 0.; - fSigma = -1.; - fXsum = 0; - fXXsum = 0; - fWsum = 0; - fWXsum = 0; - fWXXsum = 0; - fcalc = 0; -} - -G4int G4Sigma::Xin(G4double x, G4double w) -{ - if (w<0.) Error("Xin: w < 0"); - fEntries++; - fXsum+=x; - fXXsum+=x*x; - fWsum += w; - fWXsum += w*x; - fWXXsum += w*x*x; - fcalc = 0; - return fEntries; -} - - - -G4int G4Sigma::GetCalc() const -{ - return fcalc; -} - -G4int G4Sigma::Calculate() const -{ - if (fcalc==0) { - if(fWsum>0) { - fMean=fWXsum/fWsum; - fSigma = sqrt( fWXXsum / fWsum - fMean * fMean); - fcalc = 1; - } else { - fcalc = -1; - } - } - return fcalc; -} - -G4int G4Sigma::GetEntries() const -{ - return fEntries; -} - -G4double G4Sigma::GetMean() const -{ - if (fcalc==0) Calculate(); - return fMean; -} - -G4double G4Sigma::GetSigma() const -{ - if (fcalc==0) Calculate(); - return fSigma; -} - -G4double G4Sigma::GetXsum() const {return fXsum;} -G4double G4Sigma::GetXXsum() const {return fXXsum;} -G4double G4Sigma::GetSumOfWeights() const {return fWsum;} -G4double G4Sigma::GetWeightedXsum() const {return fWXsum;} -G4double G4Sigma::GetWeightedXXsum() const {return fWXXsum;} - -void G4Sigma::Error(const G4String &m) -{ - G4cout << "ERROR: G4Sigma::" << m << G4endl; -} - -G4std::ostream& operator<<(G4std::ostream &out, const G4Sigma &s) -{ - out << "entries : " << s.GetEntries() << "\n"; - out << "Sum(w) : " << s.GetSumOfWeights()<<"\n"; - out << "Sum(w*x) : " << s.GetWeightedXsum() << "\n"; - out << "Sum(w*x*x) : " << s.GetWeightedXXsum() << "\n"; - out << "mean=Sum(w*x) / Sum(w) : " << s.GetMean() << "\n"; - out << "sigma=sqrt(Sum(w*x*x)/Sum(w)-mean^2): " << s.GetSigma() << "\n"; - out << "Sum(x) : " << s.GetXsum() << "\n"; - out << "Sum(x^2) : " << s.GetXXsum() << "\n"; - - return out; -} diff --git a/source/geometry/biasing/src/G4VCellScorer.cc b/source/geometry/biasing/src/G4VCellScorer.cc new file mode 100644 index 0000000000..15bb9e5466 --- /dev/null +++ b/source/geometry/biasing/src/G4VCellScorer.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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: G4VCellScorer.cc,v 1.5 2002/12/13 11:54:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VCellScorer.cc +// +// ---------------------------------------------------------------------- + +#include "G4VCellScorer.hh" + +G4VCellScorer::G4VCellScorer() +{} + +G4VCellScorer::~G4VCellScorer() +{} diff --git a/source/geometry/biasing/src/G4VCellScorerStore.cc b/source/geometry/biasing/src/G4VCellScorerStore.cc new file mode 100644 index 0000000000..9fa3c6b624 --- /dev/null +++ b/source/geometry/biasing/src/G4VCellScorerStore.cc @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * 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: G4VCellScorerStore.cc,v 1.3 2002/10/28 09:53:51 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VCellScorerStore.cc +// +// ---------------------------------------------------------------------- + +#include "G4VCellScorerStore.hh" + +G4VCellScorerStore::G4VCellScorerStore() +{} + +G4VCellScorerStore::~G4VCellScorerStore() +{} + diff --git a/source/geometry/biasing/src/G4VGCellFinder.cc b/source/geometry/biasing/src/G4VGCellFinder.cc new file mode 100644 index 0000000000..55f4ad7532 --- /dev/null +++ b/source/geometry/biasing/src/G4VGCellFinder.cc @@ -0,0 +1,39 @@ +// +// ******************************************************************** +// * 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: G4VGCellFinder.cc,v 1.1 2002/10/16 14:30:01 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VGCellFinder.cc +// +// ---------------------------------------------------------------------- + +#include "G4VGCellFinder.hh" + +G4VGCellFinder::G4VGCellFinder() +{} +G4VGCellFinder::~G4VGCellFinder() +{} diff --git a/source/geometry/biasing/src/G4VIStore.cc b/source/geometry/biasing/src/G4VIStore.cc new file mode 100644 index 0000000000..852694d476 --- /dev/null +++ b/source/geometry/biasing/src/G4VIStore.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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: G4VIStore.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VIStore.cc +// +// ---------------------------------------------------------------------- + +#include "G4VIStore.hh" + +G4VIStore::G4VIStore() +{} + +G4VIStore::~G4VIStore() +{} diff --git a/source/geometry/biasing/src/G4VImportanceAlgorithm.cc b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc new file mode 100644 index 0000000000..16db1fb1d0 --- /dev/null +++ b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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: G4VImportanceAlgorithm.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VImportanceAlgortihm.cc +// +// ---------------------------------------------------------------------- + +#include "G4VImportanceAlgorithm.hh" + +G4VImportanceAlgorithm::G4VImportanceAlgorithm() +{} + +G4VImportanceAlgorithm::~G4VImportanceAlgorithm() +{} diff --git a/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc new file mode 100644 index 0000000000..77c73977f5 --- /dev/null +++ b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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: G4VImportanceSplitExaminer.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VImportanceSplitExaminer.cc +// +// ---------------------------------------------------------------------- + +#include "G4VImportanceSplitExaminer.hh" + +G4VImportanceSplitExaminer::G4VImportanceSplitExaminer() +{} + +G4VImportanceSplitExaminer::~G4VImportanceSplitExaminer() +{} diff --git a/source/geometry/biasing/src/G4VPGeoDriver.cc b/source/geometry/biasing/src/G4VPGeoDriver.cc new file mode 100644 index 0000000000..19edc01c27 --- /dev/null +++ b/source/geometry/biasing/src/G4VPGeoDriver.cc @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * 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: G4VPGeoDriver.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VPGeoDriver.cc +// +// ---------------------------------------------------------------------- + + +#include "G4VPGeoDriver.hh" +G4VPGeoDriver::G4VPGeoDriver() +{} + +G4VPGeoDriver::~G4VPGeoDriver() +{} + diff --git a/source/geometry/biasing/src/G4VParallelStepper.cc b/source/geometry/biasing/src/G4VParallelStepper.cc new file mode 100644 index 0000000000..85fecccf75 --- /dev/null +++ b/source/geometry/biasing/src/G4VParallelStepper.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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: G4VParallelStepper.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VParallelStepper.cc +// +// ---------------------------------------------------------------------- + +#include "G4VParallelStepper.hh" + +G4VParallelStepper::G4VParallelStepper() +{} + +G4VParallelStepper::~G4VParallelStepper() +{} diff --git a/source/geometry/biasing/src/G4VScorer.cc b/source/geometry/biasing/src/G4VScorer.cc new file mode 100644 index 0000000000..5703046eee --- /dev/null +++ b/source/geometry/biasing/src/G4VScorer.cc @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * 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: G4VScorer.cc,v 1.1 2002/10/28 09:53:51 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VScorer.cc +// +// ---------------------------------------------------------------------- + + +#include "G4VScorer.hh" + +G4VScorer::G4VScorer() +{} + +G4VScorer::~G4VScorer() +{} + diff --git a/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc new file mode 100644 index 0000000000..795f448dfd --- /dev/null +++ b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * 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: G4VWeightWindowAlgorithm.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VWeightWindowAlgorithm.cc +// +// ---------------------------------------------------------------------- + +#include "G4VWeightWindowAlgorithm.hh" + +G4VWeightWindowAlgorithm::G4VWeightWindowAlgorithm() +{} + +G4VWeightWindowAlgorithm::~G4VWeightWindowAlgorithm() +{} + diff --git a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc index cb6750bab6..e385fec94f 100644 --- a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc +++ b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4WeightWindowAlgorithm.cc,v 1.2 2002/05/31 09:56:09 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4WeightWindowAlgorithm.cc,v 1.5 2002/10/16 14:29:07 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -39,6 +39,10 @@ G4WeightWindowAlgorithm::G4WeightWindowAlgorithm() : fLower(1) {} +G4WeightWindowAlgorithm::~G4WeightWindowAlgorithm() +{} + + void G4WeightWindowAlgorithm::SetUpperLimit(G4double Upper){ fUpper = Upper; } @@ -53,7 +57,7 @@ G4WeightWindowAlgorithm::Calculate(G4double init_w, G4double importance) const { - G4Nsplit_Weight nw(1, init_w); + G4Nsplit_Weight nw = {1, init_w}; G4double iw = importance * init_w; if (iw>fUpper) { // f is the factor by which the weight is greater @@ -64,9 +68,9 @@ G4WeightWindowAlgorithm::Calculate(G4double init_w, nw.fW/=f; // calculate the number of coppies - nw.fN = int(f); + nw.fN = static_cast(f); // correct the number of coppies in case f is not an integer - if (G4double(nw.fN) != f) { + if (static_cast(nw.fN) != f) { // probabillity p for splitting into nw.fN+1 particles G4double p = f - nw.fN; // get a random number out of [0,1) diff --git a/source/geometry/magneticfield/History b/source/geometry/magneticfield/History index 0a13ed1207..8930987808 100644 --- a/source/geometry/magneticfield/History +++ b/source/geometry/magneticfield/History @@ -1,4 +1,4 @@ -$Id: History,v 1.60 2002/06/07 18:30:29 japost Exp $ +$Id: History,v 1.69 2002/12/12 08:21:38 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,111 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Dec 12th, 2002 G. Cosmo - field-V04-01-06 +--------------------------- +- Moved unused variable 'nStpPr' to debug section in G4MagIntegratorDriver.cc, + method AccurateAdvance(). + +Dec 06th, 2002 G. Cosmo - field-V04-01-05 +--------------------------- +- Merged changes by Makoto for migration to new G4ApplicationState in + messengers of unit tests. + +Nov 29th, 2002 J. Apostolakis - field-V04-01-04 +--------------------------------- +Further fixes for unitialised variable - in other steppers: +G4ExplicitEuler, G4ImplicitEuler, G4ImplicitEuler + +Large memory leak fix for G4ImplicitEuler, small for ExplicitEuler. +Test accuracy requirements for spin adjusted. + +Nov 20th, 2002 J. Apostolakis - field-V04-01-03 +--------------------------------- +Further fixes for unitialised variables: + +* G4MagIntegratorStepper + - Created instance variables for number of Integration, State variables + +* G4MagErrorStepper + - Utilise number of State variables to initialise full state of Output. + +* G4Mag_SpinEqRhs + - Initialise the values of dydx that we do not update. + +Note: Undoing these changes and the ones below would enable the user to see + if undefined values are used in variables that he/she expects to + have integrated. + BUT the fix assists us to find truly undefined values elsewhere + -- if they exist -- using valgrind. + +Nov 9th, 2002 J. Apostolakis - field-V04-01-02 +--------------------------------- +Fixes to address use of uninitialised variable in seting values of FieldTrack +(this was done by design, but was neither ideal or always well-behaved.) +Changed: + +* G4MagIntegratorDriver + - Added instance variables for number of Integration, State variables + - Initialise all State variables of Output with values from initial variables. + - Only the Integration variables will be integrated + +* G4ClassicalRK4 and G4MagErrorStepper + - Copy the initial time to intermediate and output C-vectors, + in order to provide a zero-eth estimate value. + Note1: Should clean-up this fix, making it similar to Driver (above) + Note2: Should *not* be used for time varying field unless created + with at least 8 integration variables +--------------------------------- +G4ChordFinder.cc + - Correction from zero dChord + which is does not update the Unconstrained step estimate (state) + - Added instance variables to store number of calls and chord-trials + and new print method for 'debugging' + +G4Mag_UsualEqRhs.cc + - Attempted approximations for speedup *overwritten* by full inverse sqrt. + + +Oct 29th, 2002 J. Apostolakis - test-V04-01-02 +-------------------------------- +- Changed output of tests for small output change (GeV->MeV) + +Oct 29th, 2002 J. Apostolakis - test-V04-01-02 +-------------------------------- +- (Only changed and tagged test subdirectory) + Changed tests to use the new method SetChargeMomentumMass of + PropagatorInField in order to be ready for its full use in + G4PropagatorInField. + (A key problem at end-July was this non-preparedness of the unit tests.) + +Jul 24th, 2002 G. Cosmo - field-V04-01-01 +-------------------------- +- G4FieldManager[.hh.cc]: made fDefault_Delta_One_Step_Value and + fDefault_Delta_Intersection_Val normal constants (not static) to + resolve initialisation problems. Coworks with tag "geomvol-V04-01-01". + Fixes problem report #383. + +Jul 23rd, 2002 G. Cosmo - field-V04-01-00 +-------------------------- +- G4MagIntegratorDriver.cc: cleared warning of unused variable. + Protected variable 'nStpPr' with G4DEBUG_FIELD. +- Updated reference outputs and some other updates to unit tests. + +Jun 25th, 2002 J. Apostolakis - field-V04-00-05 +-------------------------------- +- G4ChordFinder.cc + In NewStep: fixed case of stepTrial >> stepTrialOld, to take large multiple - not small; + (it was treated the same as stepTrial << old) + Added guard for stepTrial==0.0 in FindNextChord +- G4MagIntegratorDriver.cc + Added protection against error of 0.0 in ComputeNewStepSize. + +- G4EquationOfMotion + Made RightHandSide an inline method + In GetFieldValue signature of Point is double[4], instead of double[3] + Defined G4maximum_number_of_field_components as enum + Jun 7th, 2002 J. Apostolakis - field-V04-00-04 -------------------------------- - G4Mag_SpinEqRhs.cc @@ -32,6 +137,18 @@ May 31st, 2002 J. Apostolakis - field-V04-00-03 - G4MagIntegratorDriver o More information in debug printing (tangent cosine, norm) +May 7th, 2002 J. Apostolakis +-------------------------------- +- G4MagIntegratorDriver - ( on trunk ) + * Fix to update the field track for steps smaller than the chord finder's +minstep. + + +April 19th, 2002 J. Apostolakis (not included in tag field-V04-00-02) +-------------------------------- +- G4MagIntegratorDriver.hh,cc (on trunk) + * Bug fix: last step can now only be triggerred if x+h > x2. + * Debugging methods improved. May 7th, 2002 J. Apostolakis - field-V04-00-02 -------------------------------- diff --git a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh index ffe7367fd9..20fb46c823 100644 --- a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh +++ b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh @@ -22,7 +22,7 @@ // // // $Id: G4CashKarpRKF45.hh,v 1.7 2001/07/11 09:59:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4CashKarpRKF45 diff --git a/source/geometry/magneticfield/include/G4ChordFinder.hh b/source/geometry/magneticfield/include/G4ChordFinder.hh index 2f818b42ea..f336f1af93 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.hh +++ b/source/geometry/magneticfield/include/G4ChordFinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.hh,v 1.8 2001/08/16 23:54:15 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ChordFinder.hh,v 1.9 2002/11/09 03:05:13 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ChordFinder @@ -101,6 +101,10 @@ class G4ChordFinder G4double& dyErr, // Error of endpoint G4double epsStep ); + void PrintDchordTrial(G4int noTrials, + G4double stepTrial, + G4double oldStepTrial, + G4double dChordStep); private: // ............................................................ G4ChordFinder(const G4ChordFinder&); @@ -121,6 +125,7 @@ class G4ChordFinder G4bool fAllocatedStepper; G4EquationOfMotion* fEquation; G4MagIntegratorStepper* fDriversStepper; + G4int fNoTrials, fNoCalls; }; // Inline function implementation: diff --git a/source/geometry/magneticfield/include/G4ChordFinder.icc b/source/geometry/magneticfield/include/G4ChordFinder.icc index 37db7439e3..6e72ee554a 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.icc +++ b/source/geometry/magneticfield/include/G4ChordFinder.icc @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.icc,v 1.4 2001/08/16 23:54:51 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4ChordFinder inline implementations // diff --git a/source/geometry/magneticfield/include/G4ClassicalRK4.hh b/source/geometry/magneticfield/include/G4ClassicalRK4.hh index ecc1a1a30c..0feb491407 100644 --- a/source/geometry/magneticfield/include/G4ClassicalRK4.hh +++ b/source/geometry/magneticfield/include/G4ClassicalRK4.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClassicalRK4.hh,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ClassicalRK4.hh,v 1.6 2002/11/20 17:56:35 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ClassicalRK4 @@ -85,7 +85,7 @@ class G4ClassicalRK4 : public G4MagErrorStepper private: - G4int fNumberOfVariables ; // is set default to 6 in constructor + // G4int fNumberOfVariables ; // is set default to 6 in constructor G4double *dydxm, *dydxt, *yt; // scratch space - not state }; diff --git a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh index f83b2a07e5..00810bfa05 100644 --- a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh +++ b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectroMagneticField.hh,v 1.6 2001/11/08 17:31:06 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ElectroMagneticField diff --git a/source/geometry/magneticfield/include/G4EqMagElectricField.hh b/source/geometry/magneticfield/include/G4EqMagElectricField.hh index 0b0e169c63..d12082f73f 100644 --- a/source/geometry/magneticfield/include/G4EqMagElectricField.hh +++ b/source/geometry/magneticfield/include/G4EqMagElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4EqMagElectricField.hh,v 1.6 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4EqMagElectricField diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.hh b/source/geometry/magneticfield/include/G4EquationOfMotion.hh index 28179dca92..7c89052e4a 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.hh +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EquationOfMotion.hh,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EquationOfMotion.hh,v 1.7 2002/06/11 08:38:56 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4EquationOfMotion @@ -64,6 +64,7 @@ class G4EquationOfMotion // Set the charge, momentum and mass of the current particle // --> used to set the equation's coefficients ... + inline void RightHandSide( const G4double y[], G4double dydx[] ) const; // This calculates the value of the derivative dydx at y. @@ -77,7 +78,7 @@ class G4EquationOfMotion // Same as RHS above, but also returns the value of B. // Should be made the new default ? after putting dydx & B in a class. - void GetFieldValue( const G4double Point[3], + void GetFieldValue( const G4double Point[4], G4double Field[] ) const; // Obtain only the field - the stepper assumes it is pure Magnetic. // Not protected, because G4RKG3_Stepper uses it directly. @@ -86,6 +87,8 @@ class G4EquationOfMotion void SetFieldObj(G4Field* pField); private: + // static const int G4maximum_number_of_field_components = 16; + enum { G4maximum_number_of_field_components = 16 } ; G4Field *itsField; diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.icc b/source/geometry/magneticfield/include/G4EquationOfMotion.icc index e8471163e0..5c7fd3b1d8 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.icc +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EquationOfMotion.icc,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EquationOfMotion.icc,v 1.7 2002/06/11 08:39:14 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Inline implementation @@ -46,8 +46,28 @@ void G4EquationOfMotion::SetFieldObj(G4Field* pField) } inline -void G4EquationOfMotion::GetFieldValue( const G4double Point[3], +void G4EquationOfMotion::GetFieldValue( const G4double Point[4], G4double Field[] ) const { itsField-> GetFieldValue( Point, Field ); } + +inline +void +G4EquationOfMotion::RightHandSide( const G4double y[], + G4double dydx[] ) const +{ + G4double Field[G4maximum_number_of_field_components]; + G4double PositionAndTime[4]; + + // Position + PositionAndTime[0] = y[0]; + PositionAndTime[1] = y[1]; + PositionAndTime[2] = y[2]; + // Global Time + PositionAndTime[3] = y[7]; // See G4FieldTrack::LoadFromArray + + GetFieldValue(PositionAndTime, Field) ; + EvaluateRhsGivenB( y, Field, dydx ); +} + diff --git a/source/geometry/magneticfield/include/G4ExplicitEuler.hh b/source/geometry/magneticfield/include/G4ExplicitEuler.hh index b264c46fa9..fe29d0adf9 100644 --- a/source/geometry/magneticfield/include/G4ExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ExplicitEuler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExplicitEuler.hh,v 1.5 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ExplicitEuler.hh,v 1.6 2002/11/29 13:47:49 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ExplicitEuler @@ -58,9 +58,6 @@ class G4ExplicitEuler : public G4MagErrorStepper G4int IntegratorOrder() const { return 1; } - private: - - G4int fNumberOfVariables ; }; #endif /* G4EXPLICITEULER_HH */ diff --git a/source/geometry/magneticfield/include/G4Field.hh b/source/geometry/magneticfield/include/G4Field.hh index 6e8687ec99..a1f21c8780 100644 --- a/source/geometry/magneticfield/include/G4Field.hh +++ b/source/geometry/magneticfield/include/G4Field.hh @@ -22,7 +22,7 @@ // // // $Id: G4Field.hh,v 1.6 2001/11/08 17:31:07 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Field diff --git a/source/geometry/magneticfield/include/G4FieldManager.hh b/source/geometry/magneticfield/include/G4FieldManager.hh index 2706846d4d..c30f02955f 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.hh +++ b/source/geometry/magneticfield/include/G4FieldManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FieldManager.hh,v 1.7 2001/11/28 18:44:43 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FieldManager.hh,v 1.8 2002/07/24 10:43:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4FieldManager @@ -120,10 +120,8 @@ class G4FieldManager G4double fDelta_One_Step_Value; // for one tracking/physics step G4double fDelta_Intersection_Val; // for boundary intersection - // Their default values ... (set in G4PropagatemagField.cc) - // - static const G4double fDefault_Delta_One_Step_Value; // = 0.25 * mm; - static const G4double fDefault_Delta_Intersection_Val; // = 0.1 * mm; + G4double fDefault_Delta_One_Step_Value; // = 0.25 * mm; + G4double fDefault_Delta_Intersection_Val; // = 0.1 * mm; }; // Our current design envisions that one Field manager is valid for a region of the detector. diff --git a/source/geometry/magneticfield/include/G4FieldManager.icc b/source/geometry/magneticfield/include/G4FieldManager.icc index 61177f3d08..363430e00b 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.icc +++ b/source/geometry/magneticfield/include/G4FieldManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.icc,v 1.5 2001/11/28 18:44:43 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4FieldManager inline implementation diff --git a/source/geometry/magneticfield/include/G4FieldTrack.hh b/source/geometry/magneticfield/include/G4FieldTrack.hh index 1bf7181581..b578ea84e9 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.hh +++ b/source/geometry/magneticfield/include/G4FieldTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.hh,v 1.8 2001/10/25 17:02:16 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4FieldTrack diff --git a/source/geometry/magneticfield/include/G4FieldTrack.icc b/source/geometry/magneticfield/include/G4FieldTrack.icc index f1a1e5bd72..8cc07f40f2 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.icc +++ b/source/geometry/magneticfield/include/G4FieldTrack.icc @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.icc,v 1.9 2001/10/25 17:02:16 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "PhysicalConstants.h" diff --git a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh index 9ec10a58d8..9758c4bd88 100644 --- a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixExplicitEuler.hh,v 1.6 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4HelixExplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixHeum.hh b/source/geometry/magneticfield/include/G4HelixHeum.hh index 7669100936..08b9d03bb7 100644 --- a/source/geometry/magneticfield/include/G4HelixHeum.hh +++ b/source/geometry/magneticfield/include/G4HelixHeum.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixHeum.hh,v 1.6 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4HelixHeum diff --git a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh index 8daed61345..0f50be6415 100644 --- a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixImplicitEuler.hh,v 1.6 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4HelixImplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh index d6198882ab..f5cc66e9fd 100644 --- a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixSimpleRunge.hh,v 1.5 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // W. Wander 03/12/98 diff --git a/source/geometry/magneticfield/include/G4ImplicitEuler.hh b/source/geometry/magneticfield/include/G4ImplicitEuler.hh index 01cacbaf6b..17a0d684ff 100644 --- a/source/geometry/magneticfield/include/G4ImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ImplicitEuler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImplicitEuler.hh,v 1.4 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImplicitEuler.hh,v 1.5 2002/11/29 13:48:47 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // W. Wander 12/09/97 @@ -45,9 +45,11 @@ class G4ImplicitEuler : public G4MagErrorStepper G4int IntegratorOrder() const { return 2 ; } ; -private: +private: // No description - G4int fNumberOfVariables ; + G4double* dydxTemp; + G4double* yTemp; + // Temporaries, created to avoid new/delete on every call }; #endif /* G4IMPLICITEULER_HH */ diff --git a/source/geometry/magneticfield/include/G4LineSection.hh b/source/geometry/magneticfield/include/G4LineSection.hh index 6e6f1b83d4..653c8dc2e9 100644 --- a/source/geometry/magneticfield/include/G4LineSection.hh +++ b/source/geometry/magneticfield/include/G4LineSection.hh @@ -22,7 +22,7 @@ // // // $Id: G4LineSection.hh,v 1.7 2001/12/05 16:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4LineSection diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.hh b/source/geometry/magneticfield/include/G4MagErrorStepper.hh index ac37db44d6..cd46aa8b3d 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.hh,v 1.8 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4MagErrorStepper diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.icc b/source/geometry/magneticfield/include/G4MagErrorStepper.icc index c64308cfb8..1e55bb103c 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagErrorStepper.icc,v 1.8 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MagErrorStepper.icc,v 1.9 2002/11/09 03:06:15 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // inline @@ -30,7 +30,7 @@ G4MagErrorStepper::G4MagErrorStepper(G4Mag_EqRhs *EqRhs, G4int numberOfVariables) : G4MagIntegratorStepper(EqRhs,numberOfVariables) { - G4int nvar = this->GetNumberOfVariables() ; + G4int nvar = G4std::max(this->GetNumberOfVariables(), 8); yMiddle= new G4double[nvar]; dydxMid= new G4double[nvar]; yInitial= new G4double[nvar]; diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh index 92c9726ebe..22b03ef357 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.hh,v 1.7 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4MagHelicalStepper diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc index 57f5683fdc..a6acf997f9 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.icc,v 1.7 2002/05/31 16:22:54 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // linear Step in regions of no field diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh index 2d73b44d62..d492b31a97 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorDriver.hh,v 1.11 2002/04/19 17:31:41 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MagIntegratorDriver.hh,v 1.12 2002/11/09 02:32:15 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4MagInt_Driver @@ -190,7 +190,9 @@ class G4MagInt_Driver G4double hminimum_val; // Minimum Step allowed in a Step. - G4int nvar; + const G4int fNoIntegrationVariables; // Number of Variables in integration + const G4int fMinNoVars; // Minimum number for FieldTrack + const G4int fNoVars; // Full number of variable G4MagIntegratorStepper *pIntStepper; G4int fMaxNoSteps; diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc index 7c1dc03120..2eb60ba998 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.icc,v 1.7 2001/10/25 09:11:09 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // inline diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh index 87bb954130..bc5ca64061 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.hh,v 1.8 2002/05/07 16:11:59 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MagIntegratorStepper.hh,v 1.9 2002/11/20 18:09:22 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4MagIntegratorStepper @@ -31,9 +31,16 @@ // // Abstract base class for integrator of particle's equation of motion, // used in tracking in space dependent magnetic field +// +// A Stepper must integrate over NumberOfVariables elements, +// and also copy (from input to output) any of NoStateVariables +// not included in the NumberOfVariables. +// +// So it is expected that NoStateVariables >= NumberOfVariables // History: -// - 15.01.97 J.Apostolakis (J.Apostolakis@cern.ch) +// - 15.01.97 J. Apostolakis (J.Apostolakis@cern.ch) +// - 20.11.02 J. Apostolakis: Added new "State" elements #ifndef G4MAGIntegratorSTEPPER #define G4MAGIntegratorSTEPPER @@ -45,7 +52,9 @@ class G4MagIntegratorStepper { public: // with description - G4MagIntegratorStepper(G4EquationOfMotion *Equation, G4int num_variables); + G4MagIntegratorStepper(G4EquationOfMotion *Equation, + G4int numIntegrationVariables, + G4int numStateVariables=12); virtual ~G4MagIntegratorStepper(); // Constructor and destructor. No actions. @@ -71,8 +80,12 @@ class G4MagIntegratorStepper // Right Hand side of the associated equation. inline G4int GetNumberOfVariables() const; - inline void SetNumberOfVariables(G4int newNo); - // Get/Set the number of variables that the stepper will compile over. + // Get the number of variables that the stepper will integrate over. + + // void SetNumberOfVariables(G4int newNo); // Dangerous & obsolete ... + + inline G4int GetNumberOfStateVariables() const; + // Get the number of variables of state variables (>= above, integration) virtual G4int IntegratorOrder() const = 0; // Returns the order of the integrator @@ -102,8 +115,9 @@ class G4MagIntegratorStepper private: G4EquationOfMotion *fEquation_Rhs; - G4int fNumberOfVariables; - + const G4int fNoIntegrationVariables; // Number of Variables in integration + const G4int fNoStateVariables; // Number required for FieldTrack + // const G4int fNumberOfVariables; }; #include "G4MagIntegratorStepper.icc" diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc index b867468708..3fa94f760c 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.icc,v 1.6 2002/05/07 16:11:59 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MagIntegratorStepper.icc,v 1.7 2002/11/20 18:10:44 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // inline @@ -34,15 +34,22 @@ G4EquationOfMotion* G4MagIntegratorStepper::GetEquationOfMotion() inline G4int G4MagIntegratorStepper::GetNumberOfVariables() const { - return fNumberOfVariables; + return fNoIntegrationVariables; } + inline -void G4MagIntegratorStepper::SetNumberOfVariables(G4int newNo) +G4int G4MagIntegratorStepper::GetNumberOfStateVariables() const { - fNumberOfVariables = newNo; + return fNoStateVariables; } +// inline +// void G4MagIntegratorStepper::SetNumberOfVariables(G4int newNo) +// { +// fNumberOfVariables = newNo; +// } + inline void G4MagIntegratorStepper::RightHandSide( const double y[], double dydx[] ) { diff --git a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh index 6fcc15e4ed..07412d89f1 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.6 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Mag_EqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh index dae56fd897..16c4f6725b 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.8 2002/06/07 18:25:09 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Mag_SpinEqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh index 354092f42d..7c49d8a031 100644 --- a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mag_UsualEqRhs.hh,v 1.4 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mag_UsualEqRhs.hh,v 1.5 2002/04/29 16:54:02 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Mag_UsualEqRhs @@ -57,6 +57,15 @@ class G4Mag_UsualEqRhs : public G4Mag_EqRhs G4double dydx[] ) const; // Given the value of the magnetic field B, this function // calculates the value of the derivative dydx. + + virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units + G4double MomentumXc, + G4double mass); + +private: // without description + G4double fInvCurrentMomentumXc; // This extra state enables us + // to save a square root in a + // critical method. }; #endif /* G4MAG_USUAL_EQRHS */ diff --git a/source/geometry/magneticfield/include/G4MagneticField.hh b/source/geometry/magneticfield/include/G4MagneticField.hh index e886d09b24..56f5488f66 100644 --- a/source/geometry/magneticfield/include/G4MagneticField.hh +++ b/source/geometry/magneticfield/include/G4MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagneticField.hh,v 1.10 2001/12/04 17:47:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4MagneticField diff --git a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh index 7d9a56288e..ab5464f481 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.8 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4RKG3_Stepper diff --git a/source/geometry/magneticfield/include/G4SimpleHeum.hh b/source/geometry/magneticfield/include/G4SimpleHeum.hh index 9aea34220a..64eda8c7fc 100644 --- a/source/geometry/magneticfield/include/G4SimpleHeum.hh +++ b/source/geometry/magneticfield/include/G4SimpleHeum.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleHeum.hh,v 1.5 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4SimpleHeum diff --git a/source/geometry/magneticfield/include/G4SimpleRunge.hh b/source/geometry/magneticfield/include/G4SimpleRunge.hh index 531060bfbe..10d47da165 100644 --- a/source/geometry/magneticfield/include/G4SimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4SimpleRunge.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleRunge.hh,v 1.5 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4SimpleRunge diff --git a/source/geometry/magneticfield/include/G4UniformElectricField.hh b/source/geometry/magneticfield/include/G4UniformElectricField.hh index 61f3f0745a..555390e679 100644 --- a/source/geometry/magneticfield/include/G4UniformElectricField.hh +++ b/source/geometry/magneticfield/include/G4UniformElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4UniformElectricField.hh,v 1.6 2001/12/04 17:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4UniformElectricField diff --git a/source/geometry/magneticfield/include/G4UniformMagField.hh b/source/geometry/magneticfield/include/G4UniformMagField.hh index 98baf6cc37..f5b662f9a0 100644 --- a/source/geometry/magneticfield/include/G4UniformMagField.hh +++ b/source/geometry/magneticfield/include/G4UniformMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4UniformMagField.hh,v 1.7 2001/12/04 17:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4UniformMagField diff --git a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc index d09d646d49..34a3ed418a 100644 --- a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc +++ b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc @@ -22,7 +22,7 @@ // // // $Id: G4CashKarpRKF45.cc,v 1.10 2001/11/21 17:56:18 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // The Cash-Karp Runge-Kutta-Fehlberg 4/5 method is an embedded fourth // order method (giving fifth-order accuracy) for the solution diff --git a/source/geometry/magneticfield/src/G4ChordFinder.cc b/source/geometry/magneticfield/src/G4ChordFinder.cc index 4a2914f15d..32c2f78d4b 100644 --- a/source/geometry/magneticfield/src/G4ChordFinder.cc +++ b/source/geometry/magneticfield/src/G4ChordFinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.cc,v 1.27 2002/06/01 02:37:14 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ChordFinder.cc,v 1.31 2002/11/09 02:50:48 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // 25.02.97 John Apostolakis, design and implimentation @@ -184,7 +184,7 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, stepForChord = NewStep(stepTrial, dChordStep, fLastStepEstimate_Unconstrained ); if( ! validEndPoint ) { - if( stepForChord <= oldStepTrial ) + if( (stepForChord <= oldStepTrial) || (stepTrial<=0.0) ) stepTrial = stepForChord; else stepTrial *= 0.1; @@ -223,6 +223,7 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, stepOfLastGoodChord = stepTrial; #ifdef TEST_CHORD_PRINT + static int dbg=0; if( dbg ) G4cout << "ChordF/FindNextChord: NoTrials= " << noTrials << " StepForGoodChord=" << G4std::setw(10) << stepTrial << G4endl; @@ -247,6 +248,11 @@ if( dbg ) { G4double G4ChordFinder::NewStep(G4double stepTrialOld, G4double dChordStep, // Current dchord achieved. G4double& stepEstimate_Unconstrained ) +// +// Is called to estimate the next step size, even for successful steps, +// in order to predict an accurate 'chord-sensitive' first step +// which is likely to assist in more performant 'stepping'. +// { G4double stepTrial; @@ -255,15 +261,22 @@ G4double G4ChordFinder::NewStep(G4double stepTrialOld, #if 1 // const G4double threshold = 1.21, multiplier = 0.9; // 0.9 < 1 / sqrt(1.21) - stepEstimate_Unconstrained = stepTrialOld * sqrt( fDeltaChord / dChordStep ); - stepTrial = 0.98 * stepEstimate_Unconstrained; + if (dChordStep > 0.0) + { + stepEstimate_Unconstrained = stepTrialOld * sqrt( fDeltaChord / dChordStep ); + stepTrial = 0.98 * stepEstimate_Unconstrained; + } + else + { + // Should not update the Unconstrained Step estimate: incorrect! + stepTrial = stepTrialOld * 2.; + } // if ( dChordStep < threshold * fDeltaChord ){ // stepTrial= stepTrialOld * multiplier; // } - if( (stepTrial < 0.001 * stepTrialOld) - || (stepTrial > 1000.0 * stepTrialOld) - ){ + if( stepTrial <= 0.001 * stepTrialOld) + { if ( dChordStep > 1000.0 * fDeltaChord ){ stepTrial= stepTrialOld * 0.03; }else{ @@ -274,6 +287,13 @@ G4double G4ChordFinder::NewStep(G4double stepTrialOld, stepTrial= stepTrialOld * 0.5; } } + }else if (stepTrial > 1000.0 * stepTrialOld) + { + stepTrial= 1000.0 * stepTrialOld; + } + + if( stepTrial == 0.0 ){ + stepTrial= 0.000001; } lastStepTrial = stepTrialOld; diff --git a/source/geometry/magneticfield/src/G4ClassicalRK4.cc b/source/geometry/magneticfield/src/G4ClassicalRK4.cc index 6fd06401aa..2190114372 100644 --- a/source/geometry/magneticfield/src/G4ClassicalRK4.cc +++ b/source/geometry/magneticfield/src/G4ClassicalRK4.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClassicalRK4.cc,v 1.4 2001/07/11 09:59:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ClassicalRK4.cc,v 1.6 2002/11/20 17:56:35 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4ClassicalRK4.hh" #include "G4ThreeVector.hh" @@ -33,12 +33,14 @@ // Constructor sets the number of variables (default = 6) G4ClassicalRK4::G4ClassicalRK4(G4Mag_EqRhs *EqRhs, G4int numberOfVariables) - : G4MagErrorStepper(EqRhs, numberOfVariables), - fNumberOfVariables(numberOfVariables) + : G4MagErrorStepper(EqRhs, numberOfVariables) + // fNumberOfVariables(numberOfVariables) { - dydxm = new G4double[fNumberOfVariables]; - dydxt = new G4double[fNumberOfVariables]; - yt = new G4double[fNumberOfVariables]; + unsigned int noVariables= G4std::max(numberOfVariables,8); // For Time .. 7+1 + + dydxm = new G4double[noVariables]; + dydxt = new G4double[noVariables]; + yt = new G4double[noVariables]; } //////////////////////////////////////////////////////////////// @@ -68,10 +70,15 @@ G4ClassicalRK4::DumbStepper( const G4double yIn[], G4double h, G4double yOut[]) { - const G4int nvar = fNumberOfVariables; // GetNumberOfVariables(); + const G4int nvar = this->GetNumberOfVariables(); // fNumberOfVariables(); G4int i; G4double hh = h*0.5 , h6 = h/6.0 ; + // Initialise time to t0, needed when it is not updated by the integration. + // [ Note: Only for time dependent fields (usually electric) + // is it neccessary to integrate the time.] + yt[7] = yIn[7]; + yOut[7] = yIn[7]; for(i=0;iCreateChordFinder(detectorField); - + fChordFinder= new G4ChordFinder( detectorField ); fDelta_One_Step_Value= fDefault_Delta_One_Step_Value; fDelta_Intersection_Val= fDefault_Delta_Intersection_Val; - - fFieldChangesEnergy= false; } diff --git a/source/geometry/magneticfield/src/G4FieldTrack.cc b/source/geometry/magneticfield/src/G4FieldTrack.cc index f4ce2fc1af..0b7316bf15 100644 --- a/source/geometry/magneticfield/src/G4FieldTrack.cc +++ b/source/geometry/magneticfield/src/G4FieldTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.cc,v 1.4 2001/07/11 09:59:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4FieldTrack.hh" diff --git a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc index 0de1c5af37..b5358bfd7e 100644 --- a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixExplicitEuler.cc,v 1.4 2001/07/11 09:59:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4HelixExplicitEuler.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4HelixHeum.cc b/source/geometry/magneticfield/src/G4HelixHeum.cc index 39858c9277..dc8783e3c7 100644 --- a/source/geometry/magneticfield/src/G4HelixHeum.cc +++ b/source/geometry/magneticfield/src/G4HelixHeum.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixHeum.cc,v 1.4 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4HelixHeum.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc index 608d56feba..73a4c3e726 100644 --- a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixImplicitEuler.cc,v 1.4 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4HelixImplicitEuler.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc index 59117185f5..ac3461e262 100644 --- a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixSimpleRunge.cc,v 1.5 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4HelixSimpleRunge.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4ImplicitEuler.cc b/source/geometry/magneticfield/src/G4ImplicitEuler.cc index d0b19864a9..a3098c967c 100644 --- a/source/geometry/magneticfield/src/G4ImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ImplicitEuler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImplicitEuler.cc,v 1.4 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImplicitEuler.cc,v 1.5 2002/11/29 13:45:21 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Implicit Euler: @@ -47,9 +47,11 @@ G4ImplicitEuler::G4ImplicitEuler(G4Mag_EqRhs *EqRhs, G4int numberOfVariables): -G4MagErrorStepper(EqRhs, numberOfVariables), - fNumberOfVariables(numberOfVariables) +G4MagErrorStepper(EqRhs, numberOfVariables) { + unsigned int noVariables= G4std::max(numberOfVariables,8); // For Time .. 7+1 + dydxTemp = new G4double[noVariables] ; + yTemp = new G4double[noVariables] ; } @@ -59,6 +61,8 @@ G4MagErrorStepper(EqRhs, numberOfVariables), G4ImplicitEuler::~G4ImplicitEuler() { + delete[] dydxTemp; + delete[] yTemp; } ////////////////////////////////////////////////////////////////////// @@ -71,25 +75,23 @@ G4ImplicitEuler::DumbStepper( const G4double yIn[], G4double h, G4double yOut[]) { - // const G4int nvar = 6 ; - G4double* dydxTemp = new G4double[fNumberOfVariables] ; - G4double* yTemp = new G4double[fNumberOfVariables] ; - G4int i; + const G4int numberOfVariables= GetNumberOfVariables(); - for( i = 0; i < fNumberOfVariables; i++ ) + // Initialise time to t0, needed when it is not updated by the integration. + yTemp[7] = yOut[7] = yIn[7]; // Better to set it to NaN; // TODO + + for( i = 0; i < numberOfVariables; i++ ) { yTemp[i] = yIn[i] + h*dydx[i] ; } RightHandSide(yTemp,dydxTemp); - for( i = 0; i < fNumberOfVariables; i++ ) + for( i = 0; i < numberOfVariables; i++ ) { yOut[i] = yIn[i] + 0.5 * h * ( dydx[i] + dydxTemp[i] ); } - // NormaliseTangentVector( yOut ); - return ; } diff --git a/source/geometry/magneticfield/src/G4LineSection.cc b/source/geometry/magneticfield/src/G4LineSection.cc index 1a7a02cbd7..2e44e0af7f 100644 --- a/source/geometry/magneticfield/src/G4LineSection.cc +++ b/source/geometry/magneticfield/src/G4LineSection.cc @@ -22,7 +22,7 @@ // // // $Id: G4LineSection.cc,v 1.6 2001/12/04 15:10:01 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // typedef double G4double; diff --git a/source/geometry/magneticfield/src/G4MagErrorStepper.cc b/source/geometry/magneticfield/src/G4MagErrorStepper.cc index a84a807adf..05b1dc56df 100644 --- a/source/geometry/magneticfield/src/G4MagErrorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagErrorStepper.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagErrorStepper.cc,v 1.9 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MagErrorStepper.cc,v 1.11 2002/11/20 18:14:00 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4MagErrorStepper.hh" #include "G4ThreeVector.hh" @@ -44,6 +44,7 @@ G4MagErrorStepper::Stepper( const G4double yInput[], G4double yError [] ) { const G4int nvar = this->GetNumberOfVariables() ; + const G4int maxvar= GetNumberOfStateVariables(); G4int i; // correction for Richardson Extrapolation. @@ -52,6 +53,12 @@ G4MagErrorStepper::Stepper( const G4double yInput[], // Saving yInput because yInput and yOutput can be aliases for same array for(i=0;i dumb stepper does it too for RK4 + for(i=nvar;iIntegratorOrder(); @@ -101,7 +107,6 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, G4FieldTrack yFldTrkStart(y_current); #endif - // G4double yscal[ncompSVEC]; G4double y[G4FieldTrack::ncompSVEC], dydx[G4FieldTrack::ncompSVEC]; G4double ystart[G4FieldTrack::ncompSVEC], yEnd[G4FieldTrack::ncompSVEC]; G4double x1, x2; @@ -111,19 +116,17 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, // Assume that hstep > 0 - // ystart = y_current.PosVelVec(); y_current.DumpToArray( ystart ); x1= y_current.GetCurveLength(); x2= x1 + hstep; - // // Initial Step size "h" is half the interval - // h = 0.5 * hstep; // Initial Step size "h" is the full interval h = hstep; x = x1; G4int noFullIntegr=0, noSmallIntegr = 0 ; static G4int noGoodSteps =0, noBadSteps = 0 ; // Bad = chord > curve-len + const int nvar= fNoVars; for(i=0;i2) PrintStatus( ySubStepStart, x1, y, x, h, nstp); // Only -# endif +#endif }else{ G4FieldTrack yFldTrk( G4ThreeVector(0,0,0), G4ThreeVector(0,0,0), 0., 0., 0., 0. ); @@ -172,15 +177,15 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, QuickAdvance( yFldTrk, dydx, h, dchord_step, dyerr_len ); //----------------------------------------------------- -# ifdef G4DEBUG_FIELD + // #ifdef G4DEBUG_FIELD // if(dbg>1) OneGoodStep(y,dydx,x,h,2*eps,hdid,hnext) ; // if(dbg>1) PrintStatus( ystart, x1, y, x, h, -nstp); -# endif + yFldTrk.DumpToArray(y); -# ifdef G4DEBUG_FIELD +#ifdef G4DEBUG_FIELD if(dbg>1) PrintStatus( ySubStepStart, x1, y, x, h, nstp); // Only this -# endif - dyerr = dyerr_len / h; // was dyerr_len / hstep; +#endif + dyerr = dyerr_len / h; hdid= h; x += hdid; // Compute suggested new step @@ -193,9 +198,9 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, G4ThreeVector EndPos( y[0], y[1], y[2] ); #ifdef G4DEBUG_FIELD - if(nstp>nStpPr) { + if(dbg && (nstp>nStpPr)) { G4cout << "hdid=" << G4std::setw(12) << hdid << " " - << "hnext=" << G4std::setw(12) << hnext << " " << endl; + << "hnext=" << G4std::setw(12) << hnext << " " << G4endl; PrintStatus( ystart, x1, y, x, h, (nstp==nStpPr) ? -nstp: nstp); } #endif @@ -208,11 +213,13 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, // we understand how small difference occur. if( endPointDist >= hdid*(1.+perThousand) ){ #ifdef G4DEBUG_FIELD - WarnEndPointTooFar ( endPointDist, hdid, eps, dbg ); - G4cerr << " Total steps: bad" << noBadSteps << " good " << noGoodSteps << endl; - // G4cerr << "Mid:EndPtFar> "; - if(dbg>1) PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + if(dbg){ + WarnEndPointTooFar ( endPointDist, hdid, eps, dbg ); + G4cerr << " Total steps: bad" << noBadSteps << " good " << noGoodSteps << G4endl; + // G4cerr << "Mid:EndPtFar> "; + PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); // Potentially add as arguments: - as Initial Force + } #endif no_warnings++; } @@ -230,10 +237,12 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, (fabs(hstep) > Hmin()) // and if we are asked, it's OK // && (hnext < hstep * PerThousand ) ){ - // Issue WARNING - WarnSmallStepSize( hnext, hstep, h, x-x1, nstp ); - // G4cerr << "Mid:SmallStep> "; - if(dbg>1) PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + if(dbg>0){ + // Issue WARNING + WarnSmallStepSize( hnext, hstep, h, x-x1, nstp ); + // G4cerr << "Mid:SmallStep> "; + PrintStatus( ystart, x1, y, x, hstep, no_warnings?nstp:-nstp); + } no_warnings++; } #endif @@ -266,16 +275,16 @@ G4MagInt_Driver::AccurateAdvance(G4FieldTrack& y_current, no_warnings++; succeeded = false; #ifdef G4DEBUG_FIELD - WarnTooManyStep( x1, x2, x ); // Issue WARNING - if( dbg>1) PrintStatus( yEnd, x1, y, x, hstep, -nstp); + if(dbg){ + WarnTooManyStep( x1, x2, x ); // Issue WARNING + PrintStatus( yEnd, x1, y, x, hstep, -nstp); + } #endif } #ifdef G4DEBUG_FIELD - if( no_warnings ){ - G4cerr << " Exiting status: " - << " no-steps " << nstp - < 0.0 ){ // Compute size of next Step for a successful step hnew = GetSafety()*hstepCurrent*pow(errMaxNorm,GetPgrow()) ; + }else { + // if error estimate is zero (possible) or negative (dubious) + hnew = max_stepping_increase * hstepCurrent; } return hnew; diff --git a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc index 38dbcaac50..ed82b2255d 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.cc,v 1.7 2002/05/07 16:11:59 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MagIntegratorStepper.cc,v 1.8 2002/11/20 18:12:56 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4MagIntegratorStepper.hh" @@ -30,9 +30,12 @@ // G4MagIntegratorStepper::G4MagIntegratorStepper(G4EquationOfMotion* Equation, - G4int num_var) + G4int num_integration_vars, + G4int num_state_vars) : fEquation_Rhs(Equation), - fNumberOfVariables(num_var) + fNoIntegrationVariables(num_integration_vars), + fNoStateVariables(num_state_vars) + // fNumberOfVariables( G4std::max(num_var,fNoStateVariables) ) { } diff --git a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc index 5212eab8bd..0726cf519e 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.7 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 74315bfc93..522953dcaf 100644 --- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc @@ -76,8 +76,10 @@ G4Mag_SpinEqRhs::EvaluateRhsGivenB( const G4double y[], G4double udb = anomaly*beta*gamma/(1.+gamma) * (BField * u); G4double ucb = (anomaly+1./gamma)/beta; - G4ThreeVector Spin(y[9],y[10],y[11]); + // Initialise the values of dydx that we do not update. + dydx[6] = dydx[7] = dydx[8] = 0.0; + G4ThreeVector Spin(y[9],y[10],y[11]); G4ThreeVector dSpin; dSpin = ParticleCharge*omegac*(ucb*(Spin.cross(BField))-udb*(Spin.cross(u))); diff --git a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc index b26caab8a3..ee43425ed0 100644 --- a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc @@ -21,17 +21,15 @@ // ******************************************************************** // // -// $Id: G4Mag_UsualEqRhs.cc,v 1.4 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mag_UsualEqRhs.cc,v 1.8 2002/11/09 02:58:14 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -// This is the standard right-hand side for equation of motion. +// This is the 'standard' right-hand side for the equation of motion +// of a charged particle in a magnetic field. // -// The only case another is required is when using a moving reference -// frame ... or extending the class to include additional Forces, -// eg an electric field -// -// J. Apostolakis, January 13th, 1997 +// Initial version: J. Apostolakis, January 13th, 1997 +// Modified: J. Apostolakis, November 9th, 2002 // #include "G4Mag_UsualEqRhs.hh" @@ -56,5 +54,13 @@ G4Mag_UsualEqRhs::EvaluateRhsGivenB( const G4double y[], return ; } +void +G4Mag_UsualEqRhs:: + SetChargeMomentumMass( G4double particleCharge, // in e+ units + G4double MomentumXc, + G4double mass) - +{ + fInvCurrentMomentumXc= 1.0 / MomentumXc; + G4Mag_EqRhs::SetChargeMomentumMass( particleCharge, MomentumXc, mass); +} diff --git a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc index 8f71003080..1f4bfc3410 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.6 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4RKG3_Stepper.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/magneticfield/src/G4SimpleHeum.cc b/source/geometry/magneticfield/src/G4SimpleHeum.cc index e3a658da9b..52112127cd 100644 --- a/source/geometry/magneticfield/src/G4SimpleHeum.cc +++ b/source/geometry/magneticfield/src/G4SimpleHeum.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleHeum.cc,v 1.5 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Simple Heum: // x_1 = x_0 + h * diff --git a/source/geometry/magneticfield/src/G4SimpleRunge.cc b/source/geometry/magneticfield/src/G4SimpleRunge.cc index ab3e51519e..c1d58892ff 100644 --- a/source/geometry/magneticfield/src/G4SimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4SimpleRunge.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SimpleRunge.cc,v 1.4 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SimpleRunge.cc,v 1.6 2002/11/29 23:17:16 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Simple Runge: // @@ -49,8 +49,12 @@ G4SimpleRunge::G4SimpleRunge(G4Mag_EqRhs *EqRhs, G4int numberOfVariables) : G4MagErrorStepper(EqRhs, numberOfVariables), fNumberOfVariables(numberOfVariables) { - dydxTemp = new G4double[fNumberOfVariables] ; - yTemp = new G4double[fNumberOfVariables] ; + + unsigned int noVariables= G4std::max(numberOfVariables, + GetNumberOfStateVariables()); + // To deal with Time >= 7+1 + dydxTemp = new G4double[noVariables] ; + yTemp = new G4double[noVariables] ; } @@ -60,10 +64,10 @@ G4SimpleRunge::G4SimpleRunge(G4Mag_EqRhs *EqRhs, G4int numberOfVariables) G4SimpleRunge::~G4SimpleRunge() { - ; + delete[] dydxTemp; + delete[] yTemp; } - ////////////////////////////////////////////////////////////////// // // @@ -74,7 +78,9 @@ G4SimpleRunge::DumbStepper( const G4double yIn[], G4double h, G4double yOut[]) { - // const G4int nvar = 6 ; + // Initialise time to t0, needed when it is not updated by the integration. + yTemp[7] = yOut[7] = yIn[7]; // Better to set it to NaN; // TODO + G4int i; for( i = 0; i < fNumberOfVariables; i++ ) @@ -89,7 +95,5 @@ G4SimpleRunge::DumbStepper( const G4double yIn[], yOut[i] = yIn[i] + h * ( dydxTemp[i] ); } - // NormaliseTangentVector( yOut ); - return ; } diff --git a/source/geometry/magneticfield/src/G4UniformElectricField.cc b/source/geometry/magneticfield/src/G4UniformElectricField.cc index eb16e87e2a..e49374c47e 100644 --- a/source/geometry/magneticfield/src/G4UniformElectricField.cc +++ b/source/geometry/magneticfield/src/G4UniformElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4UniformElectricField.cc,v 1.6 2001/12/04 17:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/geometry/magneticfield/src/G4UniformMagField.cc b/source/geometry/magneticfield/src/G4UniformMagField.cc index c66900e0a5..d72130ee68 100644 --- a/source/geometry/magneticfield/src/G4UniformMagField.cc +++ b/source/geometry/magneticfield/src/G4UniformMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4UniformMagField.cc,v 1.5 2001/11/08 17:32:21 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/geometry/management/History b/source/geometry/management/History index 76665bc065..fe0416df89 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.37 2002/06/24 07:15:27 gcosmo Exp $ +$Id: History,v 1.45 2002/11/19 17:15:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,58 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 19, 2002 G. Cosmo geommng-V04-01-05 +- G4GeometryManager[.cc] + o Fixed bug in initialisation of fine-grained timer + (courtesy of Helmut Burkhardt). + +November 09, 2002 G. Cosmo geommng-V04-01-04 +- G4LogicalVolume.cc: + o Correction to propagation of the Field Manager to Daughter volumes: + it should be propagated to all daughters that do not have one -- not to all the + ones that have one already. Fixes bug report for field by logical volume. + (J.Apostolakis) + +October 28, 2002 G. Cosmo geommng-V04-01-03 +- G4VSolid[.hh.icc.cc]: + o Added pure virtual method StreamInfo() to stream contents of a solid + to a generic output stream. + o Added method DumpInfo() using StreamInfo() to dump contents to the + standard output. + +October 23, 2002 G. Cosmo geommng-V04-01-02 +- G4PVReplica.cc: + o Corrected order for check on illegal constructions, in constructor taking + a pointer to logical volume as mother volume. + o Improved output diagnostics. +- G4PVParameterised.cc: + o Improved output diagnostics for check on illegal constructions. + +October 16, 2002 G. Cosmo geommng-V04-01-01 +- G4PVReplica.cc, G4PVParameterised.cc: + Added checks for illegal geometry contructions; contructors now verify unicity + of daughter volumes for replicas and parameterised volumes, as well as checks + for attempt to replicate/parameterise the world volume. + +October 4, 2002 G. Cosmo +- G4PVParameterised[.hh.cc], G4PVPlacement[.hh.cc]: + Added new method IsParameterised() to enquire for existing parameterisation + for a placed volume. +- G4PVReplica[.hh.cc], G4VPhysicalVolume[.hh.cc]: + Added methods IsParameterised() and GetMultiplicity() to enquire for existing + parameterisation of placed volume, and number of replicated volumes. + +September 11, 2002 G. Cosmo geommng-V04-01-00 +- G4AssemblyVolume[.hh.icc.cc]: + o Fixed bug #409 concerning missing imprint counter method. + o Fixed bug #410 concerning the internal counting mechanism. + The fix involved the addition of a new data member fAssemblyID, + holding the instance ID of the given object derived from + class-wide counter. Corresponding accessor methods has been + added as well. +- Updated unit test TestAssemblyVolume, to add call to G4RunManager + for resetting nagivator state in TstVADetectorConstruction.cc. + June 24, 2002 G. Cosmo geommng-V04-00-08 - G4AssemblyVolume[.hh.cc]: o Moved accessors to assembly counters to public. diff --git a/source/geometry/management/include/G4AffineTransform.hh b/source/geometry/management/include/G4AffineTransform.hh index d7cd3b59b2..9d670f9e83 100644 --- a/source/geometry/management/include/G4AffineTransform.hh +++ b/source/geometry/management/include/G4AffineTransform.hh @@ -22,7 +22,7 @@ // // // $Id: G4AffineTransform.hh,v 1.4 2001/07/11 09:59:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4AffineTransform diff --git a/source/geometry/management/include/G4AffineTransform.icc b/source/geometry/management/include/G4AffineTransform.icc index 78f010220f..15f94cd999 100644 --- a/source/geometry/management/include/G4AffineTransform.icc +++ b/source/geometry/management/include/G4AffineTransform.icc @@ -22,7 +22,7 @@ // // // $Id: G4AffineTransform.icc,v 1.6 2002/01/08 12:38:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4AffineTransformation Inline implementation diff --git a/source/geometry/management/include/G4AssemblyTriplet.hh b/source/geometry/management/include/G4AssemblyTriplet.hh index 87cd12278a..338a0d44ed 100644 --- a/source/geometry/management/include/G4AssemblyTriplet.hh +++ b/source/geometry/management/include/G4AssemblyTriplet.hh @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyTriplet.hh,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4AssemblyTriplet diff --git a/source/geometry/management/include/G4AssemblyTriplet.icc b/source/geometry/management/include/G4AssemblyTriplet.icc index 05537c3761..64ff70103f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4AssemblyTriplet - inline implementation diff --git a/source/geometry/management/include/G4AssemblyVolume.hh b/source/geometry/management/include/G4AssemblyVolume.hh index eb21a2ae18..195ef8aa37 100644 --- a/source/geometry/management/include/G4AssemblyVolume.hh +++ b/source/geometry/management/include/G4AssemblyVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.hh,v 1.7 2002/06/22 00:39:23 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AssemblyVolume.hh,v 1.8 2002/09/10 16:59:44 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4AssemblyVolume @@ -173,16 +173,24 @@ class G4AssemblyVolume public: unsigned int GetInstanceCount() const; + // Return the number of existing instance of G4AssemblyVolume class + unsigned int GetAssemblyID() const; + // Return instance number of this concrete object protected: void SetInstanceCount( unsigned int value ); + void SetAssemblyID( unsigned int value ); + void InstanceCountPlus(); void InstanceCountMinus(); private: static unsigned int fsInstanceCounter; + // Class instance counter + unsigned int fAssemblyID; + // Assembly object ID derived from instance counter at construction time }; diff --git a/source/geometry/management/include/G4AssemblyVolume.icc b/source/geometry/management/include/G4AssemblyVolume.icc index c89b0ad508..b23fe64788 100644 --- a/source/geometry/management/include/G4AssemblyVolume.icc +++ b/source/geometry/management/include/G4AssemblyVolume.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.icc,v 1.3 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AssemblyVolume.icc,v 1.4 2002/09/10 16:59:46 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4AssemblyVolume - inline implementation @@ -53,3 +53,16 @@ void G4AssemblyVolume::ImprintsCountMinus() { fImprintsCounter--; } + +inline +unsigned int G4AssemblyVolume::GetAssemblyID() const +{ + return fAssemblyID; +} + +inline +void G4AssemblyVolume::SetAssemblyID( unsigned int value ) +{ + fAssemblyID = value; +} + diff --git a/source/geometry/management/include/G4DrawVoxels.hh b/source/geometry/management/include/G4DrawVoxels.hh index d4a2f43bd4..59c61602f9 100644 --- a/source/geometry/management/include/G4DrawVoxels.hh +++ b/source/geometry/management/include/G4DrawVoxels.hh @@ -22,7 +22,7 @@ // // // $Id: G4DrawVoxels.hh,v 1.11 2002/04/19 08:20:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4DrawVoxels diff --git a/source/geometry/management/include/G4GeometryManager.hh b/source/geometry/management/include/G4GeometryManager.hh index 203043ed72..fb36cdc88d 100644 --- a/source/geometry/management/include/G4GeometryManager.hh +++ b/source/geometry/management/include/G4GeometryManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryManager.hh,v 1.6 2002/04/26 16:23:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4GeometryManager // diff --git a/source/geometry/management/include/G4LogicalSurface.hh b/source/geometry/management/include/G4LogicalSurface.hh index c97f4969be..33f4ffa5c7 100644 --- a/source/geometry/management/include/G4LogicalSurface.hh +++ b/source/geometry/management/include/G4LogicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSurface.hh,v 1.6 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // Class G4LogicalSurface diff --git a/source/geometry/management/include/G4LogicalSurface.icc b/source/geometry/management/include/G4LogicalSurface.icc index 5e07361bd7..b5d6582f0f 100644 --- a/source/geometry/management/include/G4LogicalSurface.icc +++ b/source/geometry/management/include/G4LogicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSurface.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // Surface Class Inline Methods diff --git a/source/geometry/management/include/G4LogicalVolume.hh b/source/geometry/management/include/G4LogicalVolume.hh index 691fdfb481..81f99c96f2 100644 --- a/source/geometry/management/include/G4LogicalVolume.hh +++ b/source/geometry/management/include/G4LogicalVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolume.hh,v 1.9 2002/05/17 17:59:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4LogicalVolume diff --git a/source/geometry/management/include/G4LogicalVolume.icc b/source/geometry/management/include/G4LogicalVolume.icc index d100b3ae2e..68dae4bb48 100644 --- a/source/geometry/management/include/G4LogicalVolume.icc +++ b/source/geometry/management/include/G4LogicalVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolume.icc,v 1.8 2002/05/17 17:59:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4LogicalVolume Inline Implementation file diff --git a/source/geometry/management/include/G4LogicalVolumeStore.hh b/source/geometry/management/include/G4LogicalVolumeStore.hh index 3c904c3c9e..8f3445e1b0 100644 --- a/source/geometry/management/include/G4LogicalVolumeStore.hh +++ b/source/geometry/management/include/G4LogicalVolumeStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeStore.hh,v 1.7 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4LogicalVolumeStore // diff --git a/source/geometry/management/include/G4PVParameterised.hh b/source/geometry/management/include/G4PVParameterised.hh index 43f8c59d67..69c2b20158 100644 --- a/source/geometry/management/include/G4PVParameterised.hh +++ b/source/geometry/management/include/G4PVParameterised.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVParameterised.hh,v 1.5 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PVParameterised.hh,v 1.6 2002/10/14 07:42:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PVParameterised @@ -68,6 +68,9 @@ class G4PVParameterised : public G4PVReplica virtual ~G4PVParameterised(); // Virtual empty destructor. + virtual G4bool IsParameterised() const; + // Returns true to identify it is a parameterised physical volume. + virtual G4VPVParameterisation* GetParameterisation() const; // Returns the current pointer to the parameterisation. diff --git a/source/geometry/management/include/G4PVPlacement.hh b/source/geometry/management/include/G4PVPlacement.hh index 0da9d33c29..328c4a6f22 100644 --- a/source/geometry/management/include/G4PVPlacement.hh +++ b/source/geometry/management/include/G4PVPlacement.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVPlacement.hh,v 1.6 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PVPlacement.hh,v 1.7 2002/10/14 07:42:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PVPlacement @@ -123,6 +123,7 @@ class G4PVPlacement : public G4VPhysicalVolume virtual G4bool IsMany() const; virtual G4bool IsReplicated() const; + virtual G4bool IsParameterised() const; virtual G4VPVParameterisation* GetParameterisation() const; virtual void GetReplicationData(EAxis& axis, G4int& nReplicas, diff --git a/source/geometry/management/include/G4PVReplica.hh b/source/geometry/management/include/G4PVReplica.hh index 22cb897050..484e264348 100644 --- a/source/geometry/management/include/G4PVReplica.hh +++ b/source/geometry/management/include/G4PVReplica.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVReplica.hh,v 1.5 2001/07/11 09:59:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PVReplica.hh,v 1.6 2002/10/14 07:42:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PVReplica @@ -107,7 +107,9 @@ class G4PVReplica : public G4VPhysicalVolume virtual G4int GetCopyNo() const; virtual void SetCopyNo(G4int CopyNo); virtual G4bool IsReplicated() const; + virtual G4bool IsParameterised() const; virtual G4VPVParameterisation* GetParameterisation() const; + virtual G4int GetMultiplicity() const; virtual void GetReplicationData(EAxis& axis, G4int& nReplicas, G4double& width, @@ -136,7 +138,3 @@ class G4PVReplica : public G4VPhysicalVolume }; #endif - - - - diff --git a/source/geometry/management/include/G4PhysicalVolumeStore.hh b/source/geometry/management/include/G4PhysicalVolumeStore.hh index 49399160c7..9e10cf050e 100644 --- a/source/geometry/management/include/G4PhysicalVolumeStore.hh +++ b/source/geometry/management/include/G4PhysicalVolumeStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeStore.hh,v 1.8 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4PhysicalVolume // diff --git a/source/geometry/management/include/G4SmartVoxelHeader.hh b/source/geometry/management/include/G4SmartVoxelHeader.hh index e8c8f54475..34e2ca5528 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.hh +++ b/source/geometry/management/include/G4SmartVoxelHeader.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.hh,v 1.7 2002/05/15 10:06:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4SmartVoxelHeader // diff --git a/source/geometry/management/include/G4SmartVoxelHeader.icc b/source/geometry/management/include/G4SmartVoxelHeader.icc index 12bb6745b6..2c5d24eaa7 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.icc +++ b/source/geometry/management/include/G4SmartVoxelHeader.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.icc,v 1.4 2002/05/15 10:06:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4SmartVoxelHeader Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelNode.hh b/source/geometry/management/include/G4SmartVoxelNode.hh index 0068af8d06..a3b3188db4 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.hh +++ b/source/geometry/management/include/G4SmartVoxelNode.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.hh,v 1.7 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4SmartVoxelNode // diff --git a/source/geometry/management/include/G4SmartVoxelNode.icc b/source/geometry/management/include/G4SmartVoxelNode.icc index 6a4315c60f..9c868a9348 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.icc +++ b/source/geometry/management/include/G4SmartVoxelNode.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.icc,v 1.3 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4SmartVoxelNode Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelProxy.hh b/source/geometry/management/include/G4SmartVoxelProxy.hh index 6719e09dcd..4f2ec3d35e 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.hh +++ b/source/geometry/management/include/G4SmartVoxelProxy.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.hh,v 1.6 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4SmartVoxelProxy // diff --git a/source/geometry/management/include/G4SmartVoxelProxy.icc b/source/geometry/management/include/G4SmartVoxelProxy.icc index 85bef3ced4..09f0eae7cd 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.icc +++ b/source/geometry/management/include/G4SmartVoxelProxy.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.icc,v 1.2 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4SmartVoxelProxy Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelStat.hh b/source/geometry/management/include/G4SmartVoxelStat.hh index e5bd4dcbde..da9c5ef2be 100644 --- a/source/geometry/management/include/G4SmartVoxelStat.hh +++ b/source/geometry/management/include/G4SmartVoxelStat.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4SmartVoxelStat.hh,v 1.1 2001/10/22 16:08:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/management/include/G4SolidStore.hh b/source/geometry/management/include/G4SolidStore.hh index cbedeae747..ee2f2a31f4 100644 --- a/source/geometry/management/include/G4SolidStore.hh +++ b/source/geometry/management/include/G4SolidStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4SolidStore.hh,v 1.7 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4SolidStore // diff --git a/source/geometry/management/include/G4TouchableHandle.hh b/source/geometry/management/include/G4TouchableHandle.hh index 1baad2a73e..71d04e8e3e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class G4TouchableHandle // diff --git a/source/geometry/management/include/G4VPVParameterisation.hh b/source/geometry/management/include/G4VPVParameterisation.hh index 46a5412c90..59a54f8fd0 100644 --- a/source/geometry/management/include/G4VPVParameterisation.hh +++ b/source/geometry/management/include/G4VPVParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPVParameterisation.hh,v 1.4 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4VPVParamterisation // diff --git a/source/geometry/management/include/G4VPhysicalVolume.hh b/source/geometry/management/include/G4VPhysicalVolume.hh index 7c56fedfba..9bb3ded815 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.hh +++ b/source/geometry/management/include/G4VPhysicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.hh,v 1.6 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPhysicalVolume.hh,v 1.7 2002/10/14 07:42:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VPhysicalVolume @@ -126,6 +126,10 @@ class G4VPhysicalVolume inline void SetName(const G4String& pName); // Set the volume's name. + virtual G4int GetMultiplicity() const; + // Returns number of object entities (1 for normal placements, + // n for replicas or parameterised). + // Functions required of subclasses virtual G4bool IsMany() const = 0; @@ -137,6 +141,9 @@ class G4VPhysicalVolume virtual G4bool IsReplicated() const = 0; // Return true if replicated (single object instance represents // many real volumes), else false. + virtual G4bool IsParameterised() const = 0; + // Return true if parameterised (single object instance represents + // many real parameterised volumes), else false. virtual G4VPVParameterisation* GetParameterisation() const = 0; // Return replicas parameterisation object (able to compute dimensions // and transformations of replicas), or NULL if not applicable. diff --git a/source/geometry/management/include/G4VPhysicalVolume.icc b/source/geometry/management/include/G4VPhysicalVolume.icc index 9072ba3df2..826bffeaa5 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.icc +++ b/source/geometry/management/include/G4VPhysicalVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.icc,v 1.5 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VPhysicalVolume Inline Implementation diff --git a/source/geometry/management/include/G4VSolid.hh b/source/geometry/management/include/G4VSolid.hh index f323877634..62ec5e6008 100644 --- a/source/geometry/management/include/G4VSolid.hh +++ b/source/geometry/management/include/G4VSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.hh,v 1.10 2002/04/16 08:21:07 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSolid.hh,v 1.11 2002/10/28 11:25:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VSolid @@ -92,14 +92,16 @@ class G4VSolid virtual ~G4VSolid(); // Default destructor. - inline G4bool operator==( const G4VSolid& s) const; + inline G4bool operator==( const G4VSolid& s ) const; // Return true only if addresses are the same. - G4String GetName() const; - // Returns the current shape's name. - void SetName(const G4String& name); - // Sets the current shape's name. + friend G4std::ostream& operator<< ( G4std::ostream& os, const G4VSolid& e ); + // Streaming operator, using DumpInfo(). + inline G4String GetName() const; + // Returns the current shape's name. + inline void SetName(const G4String& name); + // Sets the current shape's name. virtual G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, @@ -166,6 +168,11 @@ class G4VSolid // Provide identification of the class of an object. // (required for persistency and STEP interface) + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const = 0; + // Dumps contents of the solid to a stream. + inline void DumpInfo() const; + // Dumps contents of the solid to the standard output. + // Visualization functions virtual void DescribeYourselfTo (G4VGraphicsScene& scene) const = 0; diff --git a/source/geometry/management/include/G4VSolid.icc b/source/geometry/management/include/G4VSolid.icc index 98ee3b3ac7..ad5304e128 100644 --- a/source/geometry/management/include/G4VSolid.icc +++ b/source/geometry/management/include/G4VSolid.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.icc,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSolid.icc,v 1.6 2002/10/28 11:25:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4VSolid Inline implementation @@ -33,3 +33,21 @@ G4bool G4VSolid::operator==( const G4VSolid& s) const { return (this==&s) ? true : false; } + +inline +void G4VSolid::DumpInfo () const +{ + StreamInfo(G4cout); +} + +inline +G4String G4VSolid::GetName() const +{ + return fshapeName; +} + +inline +void G4VSolid::SetName(const G4String& name) +{ + fshapeName=name; +} diff --git a/source/geometry/management/include/G4VTouchable.hh b/source/geometry/management/include/G4VTouchable.hh index c1aa8b6c59..782a75c511 100644 --- a/source/geometry/management/include/G4VTouchable.hh +++ b/source/geometry/management/include/G4VTouchable.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTouchable.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VTouchable diff --git a/source/geometry/management/include/G4VTouchable.icc b/source/geometry/management/include/G4VTouchable.icc index eef98bba2e..8cb84d5648 100644 --- a/source/geometry/management/include/G4VTouchable.icc +++ b/source/geometry/management/include/G4VTouchable.icc @@ -22,7 +22,7 @@ // // // $Id: G4VTouchable.icc,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VTouchable Inline implementation diff --git a/source/geometry/management/include/G4VoxelLimits.hh b/source/geometry/management/include/G4VoxelLimits.hh index 4717e8d4cd..02e48f0797 100644 --- a/source/geometry/management/include/G4VoxelLimits.hh +++ b/source/geometry/management/include/G4VoxelLimits.hh @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.hh,v 1.6 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4VoxelLimits // diff --git a/source/geometry/management/include/G4VoxelLimits.icc b/source/geometry/management/include/G4VoxelLimits.icc index 3f54189936..14e4293551 100644 --- a/source/geometry/management/include/G4VoxelLimits.icc +++ b/source/geometry/management/include/G4VoxelLimits.icc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.icc,v 1.2 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4VoxelLimits Inline implementation diff --git a/source/geometry/management/include/meshdefs.hh b/source/geometry/management/include/meshdefs.hh index be6e2384d9..5ba902ef39 100644 --- a/source/geometry/management/include/meshdefs.hh +++ b/source/geometry/management/include/meshdefs.hh @@ -22,7 +22,7 @@ // // // $Id: meshdefs.hh,v 1.4 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Tube/Cone Meshing constants for extent calculations diff --git a/source/geometry/management/include/voxeldefs.hh b/source/geometry/management/include/voxeldefs.hh index dd96a0ffaa..0fcab7ead0 100644 --- a/source/geometry/management/include/voxeldefs.hh +++ b/source/geometry/management/include/voxeldefs.hh @@ -22,7 +22,7 @@ // // // $Id: voxeldefs.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/geometry/management/src/G4AssemblyVolume.cc b/source/geometry/management/src/G4AssemblyVolume.cc index e22380ff7e..6dd983d8c3 100644 --- a/source/geometry/management/src/G4AssemblyVolume.cc +++ b/source/geometry/management/src/G4AssemblyVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.cc,v 1.10 2002/06/24 07:15:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AssemblyVolume.cc,v 1.13 2002/09/10 17:07:15 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4AssemblyVolume - implementation @@ -42,8 +42,10 @@ unsigned int G4AssemblyVolume::fsInstanceCounter = 0; // Default constructor // G4AssemblyVolume::G4AssemblyVolume() +: fAssemblyID( 0 ) { InstanceCountPlus(); + SetAssemblyID( GetInstanceCount() ); SetImprintsCount( 0 ); } @@ -192,7 +194,7 @@ void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, // ZZZ - the log. volume index inside the assembly volume G4std::strstream pvName; pvName << "av_" - << GetInstanceCount() + << GetAssemblyID() << "_impr_" << GetImprintsCount() << "_" @@ -253,6 +255,8 @@ void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, // We start from the first available index numberOfDaughters++; + ImprintsCountPlus(); + for( unsigned int i = 0; i < fTriplets.size(); i++ ) { // Generate the unique name for the next PV instance @@ -266,7 +270,7 @@ void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, // ZZZ - the log. volume index inside the assembly volume G4std::strstream pvName; pvName << "av_" - << GetInstanceCount() + << GetAssemblyID() << "_impr_" << GetImprintsCount() << "_" diff --git a/source/geometry/management/src/G4DrawVoxels.cc b/source/geometry/management/src/G4DrawVoxels.cc index d4d27d9cd1..5272211133 100644 --- a/source/geometry/management/src/G4DrawVoxels.cc +++ b/source/geometry/management/src/G4DrawVoxels.cc @@ -22,7 +22,7 @@ // // // $Id: G4DrawVoxels.cc,v 1.15 2002/04/19 08:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4DrawVoxels diff --git a/source/geometry/management/src/G4GeometryManager.cc b/source/geometry/management/src/G4GeometryManager.cc index 62d9f3ca0c..58a4543990 100644 --- a/source/geometry/management/src/G4GeometryManager.cc +++ b/source/geometry/management/src/G4GeometryManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryManager.cc,v 1.11 2002/05/17 17:59:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryManager.cc,v 1.12 2002/11/19 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4GeometryManager // @@ -125,6 +125,7 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) for (n=0; nGetLogicalVolume(); - if ( forceAllDaughters || (DaughterLogVol->GetFieldManager() != 0) ) + if ( forceAllDaughters || (DaughterLogVol->GetFieldManager() == 0) ) { DaughterLogVol->SetFieldManager(pNewFieldMgr, forceAllDaughters); } diff --git a/source/geometry/management/src/G4LogicalVolumeStore.cc b/source/geometry/management/src/G4LogicalVolumeStore.cc index cd2675c350..b256dd8909 100644 --- a/source/geometry/management/src/G4LogicalVolumeStore.cc +++ b/source/geometry/management/src/G4LogicalVolumeStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeStore.cc,v 1.8 2002/04/26 16:24:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4LogicalVolumeStore // diff --git a/source/geometry/management/src/G4PVParameterised.cc b/source/geometry/management/src/G4PVParameterised.cc index 5b6800ecd8..4b3a22176d 100644 --- a/source/geometry/management/src/G4PVParameterised.cc +++ b/source/geometry/management/src/G4PVParameterised.cc @@ -21,35 +21,50 @@ // ******************************************************************** // // -// $Id: G4PVParameterised.cc,v 1.4 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PVParameterised.cc,v 1.7 2002/10/23 16:11:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PVParameterised // // Implementation +// +// ******************************************************************** #include "G4PVParameterised.hh" -G4PVParameterised::G4PVParameterised(const G4String& pName, - G4LogicalVolume* pLogical, - G4VPhysicalVolume* pMother, - const EAxis pAxis, - const G4int nReplicas, - G4VPVParameterisation *pParam) : - G4PVReplica(pName,pLogical,pMother,pAxis,nReplicas,0,0), - fparam(pParam) +G4PVParameterised::G4PVParameterised( const G4String& pName, + G4LogicalVolume* pLogical, + G4VPhysicalVolume* pMother, + const EAxis pAxis, + const G4int nReplicas, + G4VPVParameterisation *pParam) + : G4PVReplica(pName, pLogical, pMother, pAxis, nReplicas, 0, 0), + fparam(pParam) { +#ifdef G4VERBOSE + if ((pMother) && (pMother->IsParameterised())) + { + G4cout << "WARNING - A parameterised volume is being placed" << G4endl + << " inside another parameterised volume !" << G4endl + << " To make sure that no overlaps are generated," << G4endl + << " you should verify the mother replicated shapes" << G4endl + << " are of the same type and dimensions." << G4endl + << " Mother physical volume: " << pMother->GetName() << G4endl + << " Parameterised volume: " << pName << G4endl + << " (To switch this warning off, compile with G4_NO_VERBOSE)" << G4endl; + } +#endif } -G4PVParameterised::G4PVParameterised(const G4String& pName, - G4LogicalVolume* pLogical, - G4LogicalVolume* pMotherLogical, - const EAxis pAxis, - const G4int nReplicas, - G4VPVParameterisation *pParam) : - G4PVReplica(pName,pLogical,pMotherLogical,pAxis,nReplicas,0,0), - fparam(pParam) +G4PVParameterised::G4PVParameterised( const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4int nReplicas, + G4VPVParameterisation *pParam) + : G4PVReplica(pName, pLogical, pMotherLogical, pAxis, nReplicas, 0, 0), + fparam(pParam) { } @@ -59,19 +74,23 @@ G4PVParameterised::~G4PVParameterised() G4VPVParameterisation* G4PVParameterised::GetParameterisation() const { - return fparam; + return fparam; } -void G4PVParameterised::GetReplicationData(EAxis& axis, - G4int& nReplicas, - G4double& width, - G4double& offset, - G4bool& consuming) const +G4bool G4PVParameterised::IsParameterised() const { - axis=faxis; - nReplicas=fnReplicas; - width=fwidth; - offset=foffset; - consuming=false; + return true; } +void G4PVParameterised::GetReplicationData( EAxis& axis, + G4int& nReplicas, + G4double& width, + G4double& offset, + G4bool& consuming) const +{ + axis = faxis; + nReplicas = fnReplicas; + width = fwidth; + offset = foffset; + consuming = false; +} diff --git a/source/geometry/management/src/G4PVPlacement.cc b/source/geometry/management/src/G4PVPlacement.cc index b73cb6fde3..786822bc49 100644 --- a/source/geometry/management/src/G4PVPlacement.cc +++ b/source/geometry/management/src/G4PVPlacement.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVPlacement.cc,v 1.4 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PVPlacement.cc,v 1.5 2002/10/14 07:42:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PVPlacement Implementation @@ -124,6 +124,11 @@ G4bool G4PVPlacement::IsReplicated() const return false; } +G4bool G4PVPlacement::IsParameterised() const +{ + return false; +} + G4VPVParameterisation* G4PVPlacement::GetParameterisation() const { return 0; diff --git a/source/geometry/management/src/G4PVReplica.cc b/source/geometry/management/src/G4PVReplica.cc index f17e024642..b515f2057c 100644 --- a/source/geometry/management/src/G4PVReplica.cc +++ b/source/geometry/management/src/G4PVReplica.cc @@ -21,135 +21,173 @@ // ******************************************************************** // // -// $Id: G4PVReplica.cc,v 1.4 2002/05/15 10:07:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PVReplica.cc,v 1.9 2002/10/23 16:26:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PVReplica Implementation +// +// ******************************************************************** #include "G4PVReplica.hh" #include "G4LogicalVolume.hh" -G4PVReplica::G4PVReplica(const G4String& pName, - G4LogicalVolume* pLogical, - G4VPhysicalVolume* pMother, - const EAxis pAxis, - const G4int nReplicas, - const G4double width, - const G4double offset) : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,pMother), fcopyNo(-1) +G4PVReplica::G4PVReplica( const G4String& pName, + G4LogicalVolume* pLogical, + G4VPhysicalVolume* pMother, + const EAxis pAxis, + const G4int nReplicas, + const G4double width, + const G4double offset ) + : G4VPhysicalVolume(0, G4ThreeVector(), pName, pLogical, pMother), + fcopyNo(-1) { + if ((!pMother) || (!pMother->GetLogicalVolume())) + { + G4cout << "ERROR - NULL pointer specified as mother volume." << G4endl + << " The world volume cannot be sliced or parameterised !" + << G4endl; + G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup !"); + } + if (pMother->GetLogicalVolume()->GetNoDaughters() != 1) + { + G4cout << "ERROR - A replica or parameterised volume must be" << G4endl + << " the only daughter of a given mother volume !" << G4endl + << " Mother physical volume: " << pMother->GetName() << G4endl + << " Replicated volume: " << pName << G4endl; + G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup !"); + } CheckAndSetParameters (pAxis, nReplicas, width, offset); } -G4PVReplica::G4PVReplica(const G4String& pName, - G4LogicalVolume* pLogical, - G4LogicalVolume* pMotherLogical, - const EAxis pAxis, - const G4int nReplicas, - const G4double width, - const G4double offset) : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,0), fcopyNo(-1) +G4PVReplica::G4PVReplica( const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4int nReplicas, + const G4double width, + const G4double offset ) + : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,0), + fcopyNo(-1) { - if (pMotherLogical) pMotherLogical->AddDaughter(this); + if (!pMotherLogical) + { + G4cout << "ERROR - NULL pointer specified as mother volume for " + << pName << "." << G4endl; + G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup !"); + } + pMotherLogical->AddDaughter(this); + if (pMotherLogical->GetNoDaughters() != 1) + { + G4cout << "ERROR - A replica or parameterised volume must be" << G4endl + << " the only daughter of a given mother volume !" << G4endl + << " Mother logical volume: " << pMotherLogical->GetName() << G4endl + << " Replicated volume: " << pName << G4endl; + G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup"); + } CheckAndSetParameters (pAxis, nReplicas, width, offset); } -void G4PVReplica::CheckAndSetParameters (const EAxis pAxis, - const G4int nReplicas, - const G4double width, - const G4double offset) { - - if (nReplicas<1) - { - G4Exception("G4PVReplica::G4PVReplica illegal no of replicas"); - } - fnReplicas=nReplicas; - if (width<0) - { - G4Exception("G4PVReplica::G4PVReplica Width must be positive"); - } - fwidth=width; - - foffset=offset; - - faxis=pAxis; - -// Create rotation matrix for phi axis case & check axis is valid - G4RotationMatrix *pRMat; - switch (faxis) - { - case kPhi: - pRMat=new G4RotationMatrix(); - if (!pRMat) - { - G4Exception("G4PVReplica::G4PVReplica rotation matrix alloc failed"); - } - SetRotation(pRMat); - break; - case kRho: - case kXAxis: - case kYAxis: - case kZAxis: - case kUndefined: - break; - default: - G4Exception("G4PVReplica::G4PVReplica Unknown axis"); - break; - } +void G4PVReplica::CheckAndSetParameters( const EAxis pAxis, + const G4int nReplicas, + const G4double width, + const G4double offset) +{ + if (nReplicas<1) + { + G4Exception("G4PVReplica::CheckAndSetParameters() - Illegal number of replicas"); + } + fnReplicas=nReplicas; + if (width<0) + { + G4Exception("G4PVReplica::CheckAndSetParameters() - Width must be positive"); + } + fwidth = width; + foffset = offset; + faxis = pAxis; + // Create rotation matrix for phi axis case & check axis is valid + // + G4RotationMatrix* pRMat=0; + switch (faxis) + { + case kPhi: + pRMat=new G4RotationMatrix(); + if (!pRMat) + { + G4Exception("G4PVReplica::CheckAndSetParameters() - Rotation matrix alloc failed"); + } + SetRotation(pRMat); + break; + case kRho: + case kXAxis: + case kYAxis: + case kZAxis: + case kUndefined: + break; + default: + G4Exception("G4PVReplica::CheckAndSetParameters() - Unknown axis"); + break; + } } G4PVReplica::~G4PVReplica() { - if (faxis==kPhi) - { - delete GetRotation(); - } + if ( faxis==kPhi ) + { + delete GetRotation(); + } } G4bool G4PVReplica::IsMany() const { - return false; + return false; } G4int G4PVReplica::GetCopyNo() const { - // return 0; - return fcopyNo; + return fcopyNo; } void G4PVReplica::SetCopyNo(G4int newCopyNo) { - fcopyNo= newCopyNo; + fcopyNo = newCopyNo; } G4bool G4PVReplica::IsReplicated() const { - return true; + return true; +} + +G4bool G4PVReplica::IsParameterised() const +{ + return false; } G4VPVParameterisation* G4PVReplica::GetParameterisation() const { - return 0; + return 0; } -void G4PVReplica::GetReplicationData(EAxis& axis, - G4int& nReplicas, - G4double& width, - G4double& offset, - G4bool& consuming) const +G4int G4PVReplica::GetMultiplicity() const { - axis=faxis; - nReplicas=fnReplicas; - width=fwidth; - offset=foffset; - consuming=true; + return fnReplicas; +} + +void G4PVReplica::GetReplicationData( EAxis& axis, + G4int& nReplicas, + G4double& width, + G4double& offset, + G4bool& consuming ) const +{ + axis = faxis; + nReplicas = fnReplicas; + width = fwidth; + offset = foffset; + consuming = true; } void G4PVReplica::Setup(G4VPhysicalVolume *pMother) { - SetMother(pMother); + SetMother(pMother); } - - - - diff --git a/source/geometry/management/src/G4PhysicalVolumeStore.cc b/source/geometry/management/src/G4PhysicalVolumeStore.cc index 240c5124de..f29d54c5f9 100644 --- a/source/geometry/management/src/G4PhysicalVolumeStore.cc +++ b/source/geometry/management/src/G4PhysicalVolumeStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeStore.cc,v 1.9 2002/04/26 16:24:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4PhysicalVolumeStore // diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc index fd5be0d3f0..fd41abe6cb 100644 --- a/source/geometry/management/src/G4SmartVoxelHeader.cc +++ b/source/geometry/management/src/G4SmartVoxelHeader.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.cc,v 1.20 2002/05/17 17:59:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4SmartVoxelHeader diff --git a/source/geometry/management/src/G4SmartVoxelNode.cc b/source/geometry/management/src/G4SmartVoxelNode.cc index 74612a1766..a8804e7dae 100644 --- a/source/geometry/management/src/G4SmartVoxelNode.cc +++ b/source/geometry/management/src/G4SmartVoxelNode.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.cc,v 1.4 2002/04/19 08:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class G4SmartVoxelNode // diff --git a/source/geometry/management/src/G4SmartVoxelProxy.cc b/source/geometry/management/src/G4SmartVoxelProxy.cc index 9ac896588c..380851f6a5 100644 --- a/source/geometry/management/src/G4SmartVoxelProxy.cc +++ b/source/geometry/management/src/G4SmartVoxelProxy.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.cc,v 1.1 2002/04/19 08:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class G4SmartVoxelProxy // diff --git a/source/geometry/management/src/G4SmartVoxelStat.cc b/source/geometry/management/src/G4SmartVoxelStat.cc index f89fab9fee..ec32488dba 100644 --- a/source/geometry/management/src/G4SmartVoxelStat.cc +++ b/source/geometry/management/src/G4SmartVoxelStat.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelStat.cc,v 1.1 2001/10/22 16:08:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/management/src/G4SolidStore.cc b/source/geometry/management/src/G4SolidStore.cc index a3605f5a52..42a7f9aceb 100644 --- a/source/geometry/management/src/G4SolidStore.cc +++ b/source/geometry/management/src/G4SolidStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4SolidStore.cc,v 1.9 2002/04/26 16:24:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4SolidStore // diff --git a/source/geometry/management/src/G4VPVParameterisation.cc b/source/geometry/management/src/G4VPVParameterisation.cc index e52e87c81a..b8884abcc3 100644 --- a/source/geometry/management/src/G4VPVParameterisation.cc +++ b/source/geometry/management/src/G4VPVParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPVParameterisation.cc,v 1.3 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 83d75bc7eb..7601af858b 100644 --- a/source/geometry/management/src/G4VPhysicalVolume.cc +++ b/source/geometry/management/src/G4VPhysicalVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.cc,v 1.4 2001/07/11 09:59:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPhysicalVolume.cc,v 1.5 2002/10/14 07:42:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VPhysicalVolume Implementation @@ -57,6 +57,11 @@ G4VPhysicalVolume::~G4VPhysicalVolume() G4PhysicalVolumeStore::DeRegister(this); } +G4int G4VPhysicalVolume::GetMultiplicity() const +{ + return 1; +} + G4RotationMatrix* G4VPhysicalVolume::GetObjectRotation() const { static G4RotationMatrix aRotM; diff --git a/source/geometry/management/src/G4VSolid.cc b/source/geometry/management/src/G4VSolid.cc index cfadb2c502..bf8b84bdc5 100644 --- a/source/geometry/management/src/G4VSolid.cc +++ b/source/geometry/management/src/G4VSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.cc,v 1.13 2002/05/11 14:16:10 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSolid.cc,v 1.14 2002/10/28 11:25:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4VSolid // @@ -67,21 +67,13 @@ G4VSolid::~G4VSolid() G4SolidStore::GetInstance()->DeRegister(this); } -//////////////////////////////////////////////////////////////////////// -// -// Returns name by value - -G4String G4VSolid::GetName() const +////////////////////////////////////////////////////////////////////////// +// +// Streaming operator dumping solid contents +G4std::ostream& operator<< ( G4std::ostream& os, const G4VSolid& e ) { - return fshapeName; -} - -///////////////////////////////////////////////////////////////////////// - -void G4VSolid::SetName(const G4String& name) -{ - fshapeName=name; -} + return e.StreamInfo(os); +} ////////////////////////////////////////////////////////////////////////// // diff --git a/source/geometry/management/src/G4VoxelLimits.cc b/source/geometry/management/src/G4VoxelLimits.cc index 40b3a7b54c..eda69a028a 100644 --- a/source/geometry/management/src/G4VoxelLimits.cc +++ b/source/geometry/management/src/G4VoxelLimits.cc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.cc,v 1.7 2002/04/19 08:20:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4VoxelLimits // diff --git a/source/geometry/solids/BREPS/History b/source/geometry/solids/BREPS/History index 3a923f845c..17195683a5 100644 --- a/source/geometry/solids/BREPS/History +++ b/source/geometry/solids/BREPS/History @@ -1,4 +1,4 @@ -$Id: History,v 1.42 2002/04/19 08:29:41 gcosmo Exp $ +$Id: History,v 1.48 2002/12/03 14:32:44 gcosmo Exp $ ---------------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +03/12/2002 : G. Cosmo breps-V04-01-04 +- Fix to concrete BREPS for porting code on Windows: explicitely name the + internal struct type holding the solid parameters. + +21/11/2002 : G. Cosmo breps-V04-01-03 +- G4Ray[.hh.icc.cc], G4Surface[.hh.icc.cc]: made static inline methods not + inlined to allow porting on Windows DLLs. + +07/11/2002 : R. Chytracek breps-V04-01-02 +- All BREP solids + G4PlacedSolids now implement virtual StreamInfo(...) method + end properly expose their construction parameters via this interface to an + std::ostream instance. + +28/10/2002 : G. Cosmo breps-V04-01-01 +- G4BREPSolid[.hh.cc]: added implementation of StreamInfo() to comply with ne interface + for G4VSolid in "geommng-V04-01-03". + +16/10/2002 : R. Chytracek breps-V04-01-00 +- G4BREPSolidPCone.cc: fixed creation of begin & end planar surfaces in the case where + [RMIN[0] == 0.0 && RMAX[0] > 0.0] and/or [RMIN[sections] == 0.0 && RMAX[sections] > 0.0]. + Fixes problem report #419. + 19/04/2002 : R. Chytracek breps-V04-00-05 - G4BREPSolidPCone.cc: added sanity check of delta phi section value and exception is thrown saying about this unsupported feature if delta phi diff --git a/source/geometry/solids/BREPS/include/G4Assembly.hh b/source/geometry/solids/BREPS/include/G4Assembly.hh index 1597208e6a..883f8dcaf3 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.8 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Assembly diff --git a/source/geometry/solids/BREPS/include/G4Assembly.icc b/source/geometry/solids/BREPS/include/G4Assembly.icc index b19d4ccab0..8a8f68d556 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh index d9fe5465e6..659601f13f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3D diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc index de0d71a065..4772184cba 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.hh b/source/geometry/solids/BREPS/include/G4BREPSolid.hh index 4e9a662196..53b0799c92 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolid.hh,v 1.9 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolid.hh,v 1.10 2002/10/28 11:30:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolid @@ -55,10 +55,6 @@ public: // with description virtual ~G4BREPSolid(); // Constructors & destructor - virtual G4String GetEntityType() const; - // Returns identifier for solid type entity. - // A generic BREP solid is considered a "Closed_Shell". - virtual void Initialize(); // Calculates the bounding box for solids and surfaces. // Converts concave planes to convex. @@ -113,6 +109,13 @@ public: // with description // Utility function to determine the maximum scope of the solid // in the coordinates X, Y, Z. Returned as a G4Point3D. + virtual G4String GetEntityType() const; + // Returns identifier for solid type entity. + // A generic BREP solid is considered a "Closed_Shell". + + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + void DescribeYourselfTo (G4VGraphicsScene& scene) const; // Dispatch function which identifies the solid to the graphics scene. diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.icc b/source/geometry/solids/BREPS/include/G4BREPSolid.icc index e8a689e04d..b316432ce6 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.4 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh index 7604108c06..53a42c2a7c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidBox.hh,v 1.5 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidBox.hh,v 1.6 2002/11/06 23:28:45 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidBox @@ -63,6 +63,9 @@ public: // with description // Determines if the point Pt is inside, outside or on the surface // of the solid. + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + private: G4BREPSolidBox(const G4BREPSolidBox&); @@ -72,6 +75,7 @@ private: private: G4RotationMatrix Rotation; + G4Point3D constructorParams[8]; }; diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh index 56f806576e..e6d3ed5694 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidCone.hh,v 1.5 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidCone.hh,v 1.8 2002/12/03 14:24:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCone @@ -94,11 +94,26 @@ class G4BREPSolidCone : public G4BREPSolid // Calculates the distance to the nearest surface of a shape from an // inside point. The distance can be an underestimate. + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + private: G4BREPSolidCone(const G4BREPSolidCone&); G4BREPSolidCone& operator=(const G4BREPSolidCone&); // Private copy constructor and assignment operator. + + private: + + struct G4BREPConeParams + { + G4ThreeVector origin; + G4ThreeVector axis; + G4ThreeVector direction; + G4double length; + G4double radius; + G4double large_radius; + } constructorParams; }; diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh index a5af46b194..2309aa85bf 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidCylinder.hh,v 1.5 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidCylinder.hh,v 1.7 2002/12/03 14:32:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCylinder @@ -63,12 +63,23 @@ class G4BREPSolidCylinder : public G4BREPSolid ~G4BREPSolidCylinder(); // Empty destructor. + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + private: G4BREPSolidCylinder(const G4BREPSolidCylinder&); G4BREPSolidCylinder& operator=(const G4BREPSolidCylinder&); // Private copy constructor and assignment operator. + struct G4BREPCylinderParams + { + G4ThreeVector origin; + G4ThreeVector axis; + G4ThreeVector direction; + G4double length; + G4double radius; + } constructorParams; }; #endif diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh index d3f0216bcc..524422a626 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidOpenPCone.hh,v 1.5 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidOpenPCone.hh,v 1.6 2002/11/06 23:28:48 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidOpenPCone @@ -69,6 +69,9 @@ class G4BREPSolidOpenPCone : public G4IntersectionSolid void DescribeYourselfTo (G4VGraphicsScene& scene) const; // Dispatch function which identifies the solid to the graphics scene. + + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. private: diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh index e875ee242c..095f5fc9ee 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidPCone.hh,v 1.9 2002/01/22 22:43:01 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidPCone.hh,v 1.11 2002/12/03 14:32:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPCone @@ -118,6 +118,9 @@ public: G4Polyhedron* CreatePolyhedron () const; // Creates a G4Polyhedron + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + private: G4Surface* ComputePlanarSurface( G4double r1, G4double r2, @@ -133,16 +136,18 @@ private: // The following is only utilised in storing the shape parameters for // use in visualising this shape. J.A. Feb 24, 1997 - // - struct PConeParameters { - G4double Start_angle; - G4double Opening_angle; - G4int Num_z_planes; - // G4double z_start; - G4double *Z_values; - G4double *Rmin; - G4double *Rmax; - } original_parameters; + // R. Chytracek, Nov 2002, Update to new IO dumping mechanism + + struct G4BREPPConeParams + { + G4double start_angle; + G4double opening_angle; + G4int num_z_planes; + G4double z_start; + G4double* z_values; + G4double* RMIN; + G4double* RMAX; + } constructorParams; }; #endif diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh index 5d5cd03a6a..ce52f92335 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidPolyhedra.hh,v 1.9 2002/02/13 17:39:48 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidPolyhedra.hh,v 1.11 2002/12/03 14:32:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPolyhedra @@ -112,6 +112,9 @@ public: // with description // solid to any boundary of this solid. // Return 0 if the point is already outside. + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + public: G4Polyhedron* CreatePolyhedron () const; @@ -149,17 +152,20 @@ private: // The following is only utilised in storing the shape parameters for // use in visualising this shape. J.A. Feb 24, 1997 // - struct PGonParameters + // R. Chytracek, Nov 2002, Update to new IO dumping mechanism + + struct G4BREPPolyhedraParams { - G4double Start_angle; - G4double Opening_angle; - int Sides; - int Num_z_planes; - // G4double z_start; - G4double *Z_values; - G4double *Rmin; - G4double *Rmax; - } original_parameters; + G4double start_angle; + G4double opening_angle; + G4int sides; + G4int num_z_planes; + G4double z_start; + G4double* z_values; + G4double* RMIN; + G4double* RMAX; + } constructorParams; + }; #endif diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh index cedad22ed3..acd13236ef 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidSphere.hh,v 1.6 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidSphere.hh,v 1.8 2002/12/03 14:32:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidSphere @@ -96,6 +96,9 @@ class G4BREPSolidSphere : public G4BREPSolid // solid to any boundary of this solid. // Return 0 if the point is already outside. + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + public: // without description inline void SphReset() { active=1; } @@ -106,6 +109,13 @@ class G4BREPSolidSphere : public G4BREPSolid G4BREPSolidSphere& operator=(const G4BREPSolidSphere&); // Private copy constructor and assignment operator. + struct G4BREPSphereParams + { + G4Vector3D origin; + G4Vector3D xhat; + G4Vector3D zhat; + G4double radius; + } constructorParams; }; #endif diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh index 8f203a2e8f..06924e327c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidTorus.hh,v 1.5 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidTorus.hh,v 1.7 2002/12/03 14:32:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidTorus @@ -62,12 +62,24 @@ class G4BREPSolidTorus : public G4BREPSolid ~G4BREPSolidTorus(); // Empty destructor. + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + private: G4BREPSolidTorus(const G4BREPSolidTorus&); G4BREPSolidTorus& operator=(const G4BREPSolidTorus&); // Private copy constructor and assignment operator. + struct G4BREPTorusParams + { + G4ThreeVector origin; + G4ThreeVector axis; + G4ThreeVector direction; + G4double MinRadius; + G4double MaxRadius; + } constructorParams; + }; #endif diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh index de9922c5d2..2992ec6b73 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.10 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurve diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc index 588bfb77ad..b47c4a818d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh index 0b32a79119..90052568df 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh index e1707502c2..615091be54 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurface diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc index eee5493a31..b7256c522c 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.4 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh index 0099b7ac9e..c4ada1b026 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.hh b/source/geometry/solids/BREPS/include/G4BezierSurface.hh index f74d781d47..39dfdf4f70 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.icc b/source/geometry/solids/BREPS/include/G4BezierSurface.icc index 49bb197502..774b4d9dfa 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh b/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh index e59c70cef1..a2b36adf4d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BoundingBox3D diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc index 2e104ce034..d83886021a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.hh b/source/geometry/solids/BREPS/include/G4CircularCurve.hh index 31e7cb7ebe..766fa467aa 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CircularCurve diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.icc b/source/geometry/solids/BREPS/include/G4CircularCurve.icc index 7575db5ab0..6fd3c66e46 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.hh b/source/geometry/solids/BREPS/include/G4CompositeCurve.hh index 5b2feb5630..36518b5af5 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CompositeCurve diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc index 0e91eccf8f..f27ffe48a9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Conic.hh b/source/geometry/solids/BREPS/include/G4Conic.hh index 2819b1c6d6..8bf02cd34b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Conic diff --git a/source/geometry/solids/BREPS/include/G4Conic.icc b/source/geometry/solids/BREPS/include/G4Conic.icc index 2825c5e14e..41de2ec506 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.hh b/source/geometry/solids/BREPS/include/G4ConicalSurface.hh index 081aa68d76..c29408e073 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.8 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc index f4a6a01f45..6dd26ea9bf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.hh b/source/geometry/solids/BREPS/include/G4ControlPoints.hh index d88ca0c270..986929aeca 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ControlPoints diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.icc b/source/geometry/solids/BREPS/include/G4ControlPoints.icc index 8737a39f84..f16300480c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConvexHull.hh b/source/geometry/solids/BREPS/include/G4ConvexHull.hh index e532bc3497..19a040ed92 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConvexHull diff --git a/source/geometry/solids/BREPS/include/G4Curve.hh b/source/geometry/solids/BREPS/include/G4Curve.hh index 6558380863..fa9084e078 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Curve diff --git a/source/geometry/solids/BREPS/include/G4Curve.icc b/source/geometry/solids/BREPS/include/G4Curve.icc index 7630434bde..0b4876bfc0 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.5 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.hh b/source/geometry/solids/BREPS/include/G4CurvePoint.hh index 8c6b3495be..c29ed01892 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CurvePoint diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.icc b/source/geometry/solids/BREPS/include/G4CurvePoint.icc index 0f920ab259..67c2ac777e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh index d701f5cea2..8637f9bf48 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CurveRayIntersection diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc index eb183e1afc..bf5016ce9a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveVector.hh b/source/geometry/solids/BREPS/include/G4CurveVector.hh index 272d8227ae..4eb0103b15 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.5 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CurveVector diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh index 1de8643045..2bd024f0a6 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.8 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc index 38d2bb7b50..96fc162983 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.hh b/source/geometry/solids/BREPS/include/G4Ellipse.hh index 8e27c48e3b..c4e6fd8cc9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Ellipse diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.icc b/source/geometry/solids/BREPS/include/G4Ellipse.icc index d0b0e687c3..62fbc6e58e 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.6 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.hh b/source/geometry/solids/BREPS/include/G4FConicalSurface.hh index 2d149dc6e0..7eebde319e 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.11 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc index 4fadabd86c..6f62f27ba4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh index c1e77b2cd2..245e3d82ca 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.11 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FCylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc index 548385d740..3c930089a6 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FPlane.hh b/source/geometry/solids/BREPS/include/G4FPlane.hh index 64868ca4e5..adc23eaa50 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FPlane diff --git a/source/geometry/solids/BREPS/include/G4FPlane.icc b/source/geometry/solids/BREPS/include/G4FPlane.icc index cd52229e08..c9600d45cc 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.4 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Globals.hh b/source/geometry/solids/BREPS/include/G4Globals.hh index b03995793d..27c5c7e6cc 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 c061c54ef0..837e9cf835 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Hyperbola diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.icc b/source/geometry/solids/BREPS/include/G4Hyperbola.icc index 4993ade6ac..a507567c2d 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.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.hh b/source/geometry/solids/BREPS/include/G4KnotVector.hh index 631bf418b6..b7e69131a8 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.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4KnotVector diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.icc b/source/geometry/solids/BREPS/include/G4KnotVector.icc index 11b679dac1..0c206f0673 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.3 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Line.hh b/source/geometry/solids/BREPS/include/G4Line.hh index c7ba52f62a..9a0b7d19c7 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Line diff --git a/source/geometry/solids/BREPS/include/G4Line.icc b/source/geometry/solids/BREPS/include/G4Line.icc index f71bb3a3e9..272a2492e7 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.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.hh b/source/geometry/solids/BREPS/include/G4OsloMatrix.hh index fd54a88a33..06825a2a1a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4OsloMatrix diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc index 051ea4e231..59fabea25b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Parabola.hh b/source/geometry/solids/BREPS/include/G4Parabola.hh index 875741f22b..d6e11f1b0a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Parabola diff --git a/source/geometry/solids/BREPS/include/G4Parabola.icc b/source/geometry/solids/BREPS/include/G4Parabola.icc index 07be8299cb..6e29eb3642 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.6 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh index 3696f59dec..c171628cd0 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PlacedSolid.hh,v 1.7 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PlacedSolid.hh,v 1.8 2002/11/06 23:28:53 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PlacedSolid @@ -60,6 +60,9 @@ public: // with description inline G4ThreeVector* GetTranslation() const; // Accessors. + G4std::ostream& StreamInfo(G4std::ostream& os) const; + // Streams solid contents to output stream. + private: G4PlacedSolid(const G4PlacedSolid&); diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc index 8fb4a8bd1a..2c74870c24 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PlacedSolid.icc,v 1.5 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PlacedSolid.icc,v 1.6 2002/11/06 23:28:54 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -55,3 +55,9 @@ G4ThreeVector* G4PlacedSolid::GetTranslation() const { return solidTranslation; } + +inline +G4std::ostream& G4PlacedSolid::StreamInfo(G4std::ostream& os) const +{ + return solid->StreamInfo( os ); +} diff --git a/source/geometry/solids/BREPS/include/G4PlacementVector.hh b/source/geometry/solids/BREPS/include/G4PlacementVector.hh index 65d5b2f1e5..24a46df3ba 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.5 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PlacementVector diff --git a/source/geometry/solids/BREPS/include/G4Plane.hh b/source/geometry/solids/BREPS/include/G4Plane.hh index b54f4da5c2..2ce4ffc865 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Plane diff --git a/source/geometry/solids/BREPS/include/G4Point3DVector.hh b/source/geometry/solids/BREPS/include/G4Point3DVector.hh index b9abcbb6b7..1a3a210f2d 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.6 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Point3DVector diff --git a/source/geometry/solids/BREPS/include/G4PointRat.hh b/source/geometry/solids/BREPS/include/G4PointRat.hh index ce198a5aee..e4941542d3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PointRat diff --git a/source/geometry/solids/BREPS/include/G4PointRat.icc b/source/geometry/solids/BREPS/include/G4PointRat.icc index 4246cb86f6..5ed04644c8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh b/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh index 25f64ebe2f..de8b7575b1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ProjectedSurface diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc index 2ffbdfa599..9b1136745c 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.3 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ray.hh b/source/geometry/solids/BREPS/include/G4Ray.hh index b8eafac2ef..9ec00ec2fd 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.hh +++ b/source/geometry/solids/BREPS/include/G4Ray.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ray.hh,v 1.6 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ray.hh,v 1.7 2002/11/21 16:52:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Ray @@ -113,35 +113,35 @@ public: // with description inline void Vsetall(G4Vector3D &a, G4double s); // Sets all elements of vector to the same scalar value. - static inline void Vcross(G4Plane &a, const G4Vector3D &b, - const G4Vector3D &c); + static void Vcross(G4Plane &a, const G4Vector3D &b, + const G4Vector3D &c); // Cross product of 'b' and 'c'. Stores result in 'a' (G4Plane). - static inline void Vcross(G4Vector3D &a, const G4Vector3D &b, - const G4Vector3D &c); + static void Vcross(G4Vector3D &a, const G4Vector3D &b, + const G4Vector3D &c); // Cross product of 'b' and 'c'. Stores result in 'a' (G4Vector3D). - static inline void Vmove(G4Point3D &a, const G4Point3D &b); + static void Vmove(G4Point3D &a, const G4Point3D &b); // Sets 'a' equal to 'b'. - static inline void Vadd2(G4Point3D &a, const G4Point3D &b, - const G4Vector3D &c ); + static void Vadd2(G4Point3D &a, const G4Point3D &b, + const G4Vector3D &c ); // Adds vector 'c' to 'b'. Stores result in 'a'. - static inline void Vsub2(G4Vector3D &a, const G4Point3D &b, - const G4Point3D &c); + static void Vsub2(G4Vector3D &a, const G4Point3D &b, + const G4Point3D &c); // Subtracts vector 'c' from 'b'. Stores result in 'a'. - static inline void Vscale(G4Plane& a, const G4Plane& b, G4double c); + static void Vscale(G4Plane& a, const G4Plane& b, G4double c); // Scales vector at `b' by scalar `c'. Stores result in `a'. - static inline G4double Vdot(const G4Plane &a, const G4Point3D &b); + static G4double Vdot(const G4Plane &a, const G4Point3D &b); // Computes dot product of vectors at `a' and `b'. - static inline G4double Magsq(const G4Plane &a); + static G4double Magsq(const G4Plane &a); // Returns scalar Magnitude squared of vector at `a'. - static inline G4double Magnitude(const G4Plane &a); + static G4double Magnitude(const G4Plane &a); // Returns scalar Magnitude of vector at `a'. public: // without description diff --git a/source/geometry/solids/BREPS/include/G4Ray.icc b/source/geometry/solids/BREPS/include/G4Ray.icc index 8dc97943c3..f8bc7c29da 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.icc +++ b/source/geometry/solids/BREPS/include/G4Ray.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ray.icc,v 1.5 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ray.icc,v 1.6 2002/11/21 16:52:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -90,76 +90,8 @@ G4int G4Ray::NearZero(G4double val, G4double epsilon) const return ( ((val) > -epsilon) && ((val) < epsilon) ); } -inline -void G4Ray::Vcross(G4Plane &a, const G4Vector3D &b, const G4Vector3D &c) -{ - a.a = b.y() * c.z() - b.z() * c.y() ; - a.b = b.z() * c.x() - b.x() * c.z() ; - a.c = b.x() * c.y() - b.y() * c.x() ; -} - -inline -void G4Ray::Vcross(G4Vector3D &a, const G4Vector3D &b, const G4Vector3D &c) -{ - a.setX(b.y() * c.z() - b.z() * c.y()) ; - a.setY(b.z() * c.x() - b.x() * c.z()) ; - a.setZ(b.x() * c.y() - b.y() * c.x()) ; -} - -inline -void G4Ray::Vmove(G4Point3D &a, const G4Point3D &b) -{ - a.setX(b.x()); - a.setY(b.y()); - a.setZ(b.z()); -} - -inline -void G4Ray::Vadd2(G4Point3D &a, const G4Point3D &b, const G4Vector3D &c) -{ - a.setX(b.x() + c.x()) ; - a.setY(b.y() + c.y()) ; - a.setZ(b.z() + c.z()) ; -} - -inline -void G4Ray::Vsub2(G4Vector3D &a, const G4Point3D &b, const G4Point3D &c) -{ - a.setX(b.x() - c.x()); - a.setY(b.y() - c.y()); - a.setZ(b.z() - c.z()); -} - inline void G4Ray::Vsetall(G4Vector3D &a, G4double s) { a.setX(s); a.setY(s); a.setZ(s); } - -inline -void G4Ray::Vscale(G4Plane& a, const G4Plane& b, G4double c) -{ - a.a = b.a * c; - a.b = b.b * c; - a.c = b.c * c; -} - -inline -G4double G4Ray::Vdot(const G4Plane &a, const G4Point3D &b) -{ - return (a.a * b.x() + - a.b * b.y() + - a.c * b.z()); -} - -inline -G4double G4Ray::Magsq(const G4Plane &a) -{ - return ( a.a * a.a + a.b * a.b + a.c *a.c ); -} - -inline -G4double G4Ray::Magnitude(const G4Plane &a) -{ - return (sqrt( Magsq( a )) ); -} diff --git a/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh b/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh index 19691a7338..91924f2102 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4STEPEntity.hh b/source/geometry/solids/BREPS/include/G4STEPEntity.hh index 92c83c3e39..6b4acb06a9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4STEPEntity diff --git a/source/geometry/solids/BREPS/include/G4Sort.hh b/source/geometry/solids/BREPS/include/G4Sort.hh index f948fe4056..dc41d8fb6a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh index d2c6f04060..061fa6741f 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.8 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4SphericalSurface diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc index 8a0683038f..352bc0e47e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Surface.hh b/source/geometry/solids/BREPS/include/G4Surface.hh index 26bf84865b..6720b32d07 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.hh +++ b/source/geometry/solids/BREPS/include/G4Surface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Surface.hh,v 1.7 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Surface.hh,v 1.8 2002/11/21 16:52:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Surface @@ -110,8 +110,8 @@ public: // with description public: // without description - inline static void Project (G4double& Coord, const G4Point3D& Pt, - const G4Plane& Pl); + static void Project (G4double& Coord, const G4Point3D& Pt, + const G4Plane& Pl); // Utility function returning the projection (Coord) of a point Pt // on a plane Pl. diff --git a/source/geometry/solids/BREPS/include/G4Surface.icc b/source/geometry/solids/BREPS/include/G4Surface.icc index 3f4fcc4cfb..538a7470e6 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.icc +++ b/source/geometry/solids/BREPS/include/G4Surface.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Surface.icc,v 1.3 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Surface.icc,v 1.4 2002/11/21 16:52:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -103,11 +103,3 @@ void G4Surface::SetNextNode(G4Surface* node) { next = node; } - -inline -void G4Surface::Project (G4double& Coord, - const G4Point3D& Pt2, - const G4Plane& Pl1) -{ - Coord = Pt2.x()*Pl1.a + Pt2.y()*Pl1.b + Pt2.z()*Pl1.c - Pl1.d; -} diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh index 0398945510..3826b665f4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceBoundary diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc index 007e3092eb..488f19f336 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceList.hh b/source/geometry/solids/BREPS/include/G4SurfaceList.hh index 2a31f9ed55..56f1563931 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceList diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh index c25881d0ee..f1866f1336 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfLinearExtrusion diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh index 54c3716edd..53bdbff387 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfRevolution diff --git a/source/geometry/solids/BREPS/include/G4ThreeMat.hh b/source/geometry/solids/BREPS/include/G4ThreeMat.hh index bbfdc5990d..5bda55457d 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.8 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ThreeMat diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh index 7b8f1d2fc6..029b4f9175 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ToroidalSurface diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc index 1b38d9403d..81dac0503b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4UVHit.hh b/source/geometry/solids/BREPS/include/G4UVHit.hh index 17f84a34cc..e15672adde 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4UVHit diff --git a/source/geometry/solids/BREPS/src/G4Assembly.cc b/source/geometry/solids/BREPS/src/G4Assembly.cc index 55e63624c1..ee660624b6 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc index bb89a11fe5..21af6d3206 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.6 2001/07/11 09:59:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolid.cc b/source/geometry/solids/BREPS/src/G4BREPSolid.cc index da70f21616..cffb6d7968 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.20 2001/07/20 11:52:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolid.cc,v 1.22 2002/11/06 23:29:32 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -43,15 +43,30 @@ #include "G4ToroidalSurface.hh" #include "G4SphericalSurface.hh" +/* + G4int Box, Convex, AxisBox, PlaneSolid; + G4Axis2Placement3D* place; + G4BoundingBox3D* bbox; + G4double intersectionDistance; + G4int active; + G4int startInside; + G4int nb_of_surfaces; + G4Point3D intersection_point; + G4Surface** SurfaceVec; + G4double RealDist; + G4String solidname; + G4int Id; +*/ + G4Ray G4BREPSolid::Track; G4double G4BREPSolid::ShortestDistance= kInfinity; G4int G4BREPSolid::NumberOfSolids=0; G4BREPSolid::G4BREPSolid(const G4String& name) : G4VSolid(name), - Box(0), Convex(0), AxisBox(0), PlaneSolid(0), place(0), + Box(0), Convex(0), AxisBox(0), PlaneSolid(0), place(0), bbox(0), intersectionDistance(kInfinity), active(1), startInside(0), - solidname(name) + nb_of_surfaces(0), SurfaceVec(0), solidname(name) { } @@ -59,7 +74,7 @@ G4BREPSolid::G4BREPSolid( const G4String& name , G4Surface** srfVec , G4int numberOfSrfs ) : G4VSolid(name), - Box(0), Convex(0), AxisBox(0), PlaneSolid(0), place(0), + Box(0), Convex(0), AxisBox(0), PlaneSolid(0), place(0), bbox(0), intersectionDistance(kInfinity), active(1), startInside(0), nb_of_surfaces(numberOfSrfs), SurfaceVec(srfVec) { @@ -71,12 +86,14 @@ G4BREPSolid::~G4BREPSolid() if(place) delete place; - delete bbox; + if(bbox) + delete bbox; for(G4int a=0;a 0 && SurfaceVec != 0) + delete [] SurfaceVec; } void G4BREPSolid::Initialize() @@ -1467,3 +1484,17 @@ G4Point3D G4BREPSolid::Scope() const return scope; } + + +G4std::ostream& G4BREPSolid::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: " << GetEntityType() << "\n" + << " Parameters: \n" + << " Number of solids: " << NumberOfSolids << "\n" + << "-----------------------------------------------------------\n"; + + return os; +} diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc index 8b58f13888..5ec519ee36 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidBox.cc,v 1.6 2001/07/20 12:47:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidBox.cc,v 1.7 2002/11/06 23:29:33 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -84,6 +84,16 @@ G4BREPSolidBox::G4BREPSolidBox(const G4String& name, PVec[3] = Pt8; SurfaceVec[5] = new G4FPlane(&PVec); + // Save the constructor parameters + constructorParams[0] = Pt1; + constructorParams[1] = Pt2; + constructorParams[2] = Pt3; + constructorParams[3] = Pt4; + constructorParams[4] = Pt5; + constructorParams[5] = Pt6; + constructorParams[6] = Pt7; + constructorParams[7] = Pt8; + Initialize(); } @@ -115,3 +125,22 @@ EInside G4BREPSolidBox::Inside(register const G4ThreeVector& Pt) const return kSurface; } + +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidBox::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n" + << " Pt1: " << constructorParams[0] + << " Pt2: " << constructorParams[1] + << " Pt3: " << constructorParams[2] + << " Pt4: " << constructorParams[3] + << "\n Pt5: " << constructorParams[4] + << " Pt6: " << constructorParams[5] + << " Pt7: " << constructorParams[6] + << " Pt8: " << constructorParams[7] + << "\n-----------------------------------------------------------\n"; + + return os; +} + diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc index 08de5b1816..66e37efb4b 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidCone.cc,v 1.7 2001/07/11 09:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidCone.cc,v 1.10 2002/12/03 14:24:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -101,6 +101,15 @@ G4BREPSolidCone::G4BREPSolidCone(const G4String& name, nb_of_surfaces = 3; active=1; + + // Save constructor parameters + constructorParams.origin = origin; + constructorParams.axis = axis; + constructorParams.direction = direction; + constructorParams.length = length; + constructorParams.radius = radius; + constructorParams.large_radius = large_radius; + Initialize(); } @@ -198,3 +207,19 @@ G4double G4BREPSolidCone::DistanceToOut(const G4ThreeVector& Pt) const if(dist1 > dist3) dist1 = dist3; return dist1; } + +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidCone::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n origin: " << constructorParams.origin + << "\n axis: " << constructorParams.axis + << "\n direction: " << constructorParams.direction + << "\n length: " << constructorParams.length + << "\n radius: " << constructorParams.radius + << "\n large_radius: " << constructorParams.large_radius + << "\n-----------------------------------------------------------\n"; + + return os; +} + diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc index 5294452c94..84f450a44b 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidCylinder.cc,v 1.7 2001/07/11 09:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidCylinder.cc,v 1.8 2002/11/06 23:29:35 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -86,9 +86,32 @@ G4BREPSolidCylinder::G4BREPSolidCylinder(const G4String& name, nb_of_surfaces = 3; active=1; + + // Save constructor parameters + constructorParams.origin = origin; + constructorParams.axis = axis; + constructorParams.direction = direction; + constructorParams.length = length; + constructorParams.radius = radius; + Initialize(); } G4BREPSolidCylinder::~G4BREPSolidCylinder() { } + +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidCylinder::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n origin: " << constructorParams.origin + << "\n axis: " << constructorParams.axis + << "\n direction: " << constructorParams.direction + << "\n length: " << constructorParams.length + << "\n radius: " << constructorParams.radius + << "\n-----------------------------------------------------------\n"; + + return os; +} + diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc index f0270cdc05..b3d0c3eafb 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.6 2001/07/11 09:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidOpenPCone.cc,v 1.7 2002/11/06 23:29:36 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -47,14 +47,16 @@ G4BREPSolidOpenPCone::G4BREPSolidOpenPCone G4double RMAX[] ) : G4IntersectionSolid ( name, - new G4BREPSolidPCone ( name, - start_angle, - opening_angle, - num_z_planes, - z_start, z_values, - RMIN, RMAX ), - new G4Tubs( "IntersectionTubs", 0., 1., 1., - start_angle, opening_angle ) ) + new G4BREPSolidPCone( name, + start_angle, opening_angle, + num_z_planes, z_start, z_values, + RMIN, RMAX + ), + new G4Tubs( "IntersectionTubs", + 0., 1., 1., start_angle, opening_angle + ) + ) + //, constructorParams.z_values( 0 ), constructorParams.RMIN( 0 ), constructorParams.RMAX( 0 ) { // compute max radius @@ -78,3 +80,12 @@ void G4BREPSolidOpenPCone::DescribeYourselfTo (G4VGraphicsScene& scene) const { scene.AddThis ( *this ); } + +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidOpenPCone::StreamInfo(G4std::ostream& os) const +{ + G4IntersectionSolid::StreamInfo( os ); + + return os; +} + diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc index 5ead2b5822..d27aa57518 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidPCone.cc,v 1.26 2002/03/11 19:09:37 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidPCone.cc,v 1.28 2002/11/06 23:29:37 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -361,11 +361,13 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, G4Point3D ArcStart1a = G4Point3D( Origin + (RMIN[0]*PlaneDir) ); G4Point3D ArcStart1b = G4Point3D( Origin + (RMAX[0]*PlaneDir) ); - tmp = new G4CircularCurve; - tmp->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, Origin), RMIN[0]); - tmp->SetBounds(ArcStart1a, ArcStart1a); - tmp->SetSameSense(0); - cv.push_back(tmp); + if( RMIN[0] > 0.0 ) { + tmp = new G4CircularCurve; + tmp->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, Origin), RMIN[0]); + tmp->SetBounds(ArcStart1a, ArcStart1a); + tmp->SetSameSense(0); + cv.push_back(tmp); + } tmp = new G4CircularCurve; tmp->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, Origin), RMAX[0]); @@ -389,12 +391,13 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, cv.clear(); - tmp = new G4CircularCurve; - tmp->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, LocalOrigin), - RMIN[sections]); - tmp->SetBounds(ArcStart2a, ArcStart2a); - tmp->SetSameSense(0); - cv.push_back(tmp); + if( RMIN[sections] > 0.0 ) { + tmp = new G4CircularCurve; + tmp->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, LocalOrigin), RMIN[sections]); + tmp->SetBounds(ArcStart2a, ArcStart2a); + tmp->SetSameSense(0); + cv.push_back(tmp); + } tmp = new G4CircularCurve; tmp->Init(G4Axis2Placement3D(PlaneDir, PlaneAxis, LocalOrigin), @@ -413,51 +416,38 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, nb_of_surfaces--; } + // Save contructor parameters + constructorParams.start_angle = start_angle; + constructorParams.opening_angle = opening_angle; + constructorParams.num_z_planes = num_z_planes; + constructorParams.z_start = z_start; + constructorParams.z_values = 0; + constructorParams.RMIN = 0; + constructorParams.RMAX = 0; + + if( num_z_planes > 0 ) { + constructorParams.z_values = new G4double[num_z_planes]; + constructorParams.RMIN = new G4double[num_z_planes]; + constructorParams.RMAX = new G4double[num_z_planes]; + for( G4int idx = 0; idx < num_z_planes; idx++ ) { + constructorParams.z_values[idx] = z_values[idx]; + constructorParams.RMIN[idx] = RMIN[idx]; + constructorParams.RMAX[idx] = RMAX[idx]; + } + } + active=1; Initialize(); - - // Store the original parameters, to be used in visualisation - original_parameters.Start_angle= start_angle; - original_parameters.Opening_angle= opening_angle; - original_parameters.Num_z_planes= num_z_planes; - // original_parameters.z_start= z_start; - original_parameters.Z_values= new G4double[num_z_planes]; - original_parameters.Rmin= new G4double[nb_of_surfaces]; - original_parameters.Rmax= new G4double[nb_of_surfaces]; - - for(int is=0;is 0 ) { + delete [] constructorParams.z_values; + delete [] constructorParams.RMIN; + delete [] constructorParams.RMIN; + } + } void G4BREPSolidPCone::Initialize() @@ -793,6 +783,32 @@ G4double G4BREPSolidPCone::DistanceToOut(const G4ThreeVector& Pt) const return fabs(Dist); } +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidPCone::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n start_angle: " << constructorParams.start_angle + << "\n opening_angle: " << constructorParams.opening_angle + << "\n num_z_planes: " << constructorParams.num_z_planes + << "\n z_start: " << constructorParams.z_start + << "\n z_values: "; + G4int idx; + for( idx = 0; idx < constructorParams.num_z_planes; idx++ ) { + os << constructorParams.z_values[idx] << " "; + } + os << "\n RMIN: "; + for( idx = 0; idx < constructorParams.num_z_planes; idx++ ) { + os << constructorParams.RMIN[idx] << " "; + } + os << "\n RMAX: "; + for( idx = 0; idx < constructorParams.num_z_planes; idx++ ) { + os << constructorParams.RMAX[idx] << " "; + } + os << "\n-----------------------------------------------------------\n"; + + return os; +} + void G4BREPSolidPCone::Reset() const { Active(1); @@ -860,10 +876,12 @@ G4Surface* G4BREPSolidPCone::ComputePlanarSurface( G4double r1, G4double r2, G4Polyhedron* G4BREPSolidPCone::CreatePolyhedron() const { - return new G4PolyhedronPcon( original_parameters.Start_angle, - original_parameters.Opening_angle, - original_parameters.Num_z_planes, - original_parameters.Z_values, - original_parameters.Rmin, - original_parameters.Rmax); + return new G4PolyhedronPcon( + constructorParams.start_angle, + constructorParams.opening_angle, + constructorParams.num_z_planes, + constructorParams.z_values, + constructorParams.RMIN, + constructorParams.RMAX + ); } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc index 9b5a10a4b9..00eb5b91c6 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidPolyhedra.cc,v 1.22 2002/02/14 18:39:12 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidPolyhedra.cc,v 1.23 2002/11/06 23:29:38 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -64,8 +64,8 @@ #include "g4std/strstream" G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, - G4double phi1, - G4double dphi, + G4double start_angle, + G4double opening_angle, G4int sides, G4int num_z_planes, G4double z_start, @@ -76,7 +76,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, { G4int sections = num_z_planes - 1; - if( dphi >= 2*pi-perMillion ) { + if( opening_angle >= 2*pi-perMillion ) { nb_of_surfaces = 2*(sections * sides) + 2; } else { nb_of_surfaces = 2*(sections * sides) + 4; @@ -93,7 +93,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, G4Point3D LocalOrigin(0,0,z_start); G4double Length; G4int Count = 0 ; - G4double PartAngle = (dphi)/sides; + G4double PartAngle = (opening_angle)/sides; /////////////////////////////////////////////////// @@ -199,7 +199,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, if( Length != 0.0 ) { TmpAxis= XAxis; - TmpAxis.rotateZ(phi1); + TmpAxis.rotateZ(start_angle); // L. Broglia: Be careful in the construction of the planes, see G4FPlane for( G4int b = 0; b < sides; b++ ) { @@ -342,7 +342,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, } TmpAxis= XAxis; - TmpAxis.rotateZ(phi1); + TmpAxis.rotateZ(start_angle); // Compute the outer planar surface MaxSurfaceVec[Count] = ComputePlanarSurface( RMAX[a], RMAX[a+1], LocalOrigin, TmpAxis, sides, PartAngle, OuterSurfSense ); @@ -353,7 +353,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, Count++; TmpAxis= XAxis; - TmpAxis.rotateZ(phi1); + TmpAxis.rotateZ(start_angle); // Compute the inner planar surface MaxSurfaceVec[Count] = ComputePlanarSurface( RMIN[a], RMIN[a+1], LocalOrigin, TmpAxis, sides, PartAngle, InnerSurfSense ); @@ -415,7 +415,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, } TmpAxis= XAxis; - TmpAxis.rotateZ(phi1); + TmpAxis.rotateZ(start_angle); MaxSurfaceVec[Count] = ComputePlanarSurface( R1, R2, LocalOrigin, TmpAxis, sides, PartAngle, SurfSense ); if( MaxSurfaceVec[Count] == 0 ) { @@ -432,11 +432,11 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, LocalOrigin = LocalOrigin + (Length*Axis); } // End of for loop over z sections - if(dphi >= 2*pi-perMillion) { + if(opening_angle >= 2*pi-perMillion) { // Create the end planes for the configuration where delta phi >= 2*PI TmpAxis = XAxis; - TmpAxis.rotateZ(phi1); + TmpAxis.rotateZ(start_angle); MaxSurfaceVec[Count] = ComputePlanarSurface( RMIN[0], RMAX[0], Origin, TmpAxis, sides, PartAngle, ENormal ); @@ -448,7 +448,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // Reset plane axis TmpAxis = XAxis; - TmpAxis.rotateZ(phi1); + TmpAxis.rotateZ(start_angle); MaxSurfaceVec[Count] = ComputePlanarSurface( RMIN[sections], RMAX[sections], LocalOrigin, TmpAxis, sides, PartAngle, EInverse ); @@ -464,9 +464,9 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // Create the lateral planars TmpAxis = XAxis; G4Vector3D TmpAxis2 = XAxis; - TmpAxis.rotateZ(phi1); - TmpAxis2.rotateZ(phi1); - TmpAxis2.rotateZ(dphi); + TmpAxis.rotateZ(start_angle); + TmpAxis2.rotateZ(start_angle); + TmpAxis2.rotateZ(start_angle); LocalOrigin = Origin; G4int points = sections*2+2; @@ -494,8 +494,8 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, MaxSurfaceVec[Count++] = new G4FPlane( &GapPointList2, 0, EInverse ); TmpAxis = XAxis; - TmpAxis.rotateZ(phi1); - TmpAxis.rotateZ(dphi); + TmpAxis.rotateZ(start_angle); + TmpAxis.rotateZ(opening_angle); // Create end planes G4Point3DVector EndPointList ((sides+1)*2); @@ -564,46 +564,27 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // Note radii are not scaled because this BREP uses the radius of the // circumscribed circle and also graphics_reps/G4Polyhedron uses the radius of // the circumscribed circle. - original_parameters.Start_angle= phi1; - original_parameters.Opening_angle= dphi; - original_parameters.Sides= sides; - original_parameters.Num_z_planes= num_z_planes; - original_parameters.Z_values= new G4double[num_z_planes]; - original_parameters.Rmin= new G4double[num_z_planes]; - original_parameters.Rmax= new G4double[num_z_planes]; - G4double rFactor = 1.; - - for(G4int is=0;is 0 ) { + delete [] constructorParams.z_values; + delete [] constructorParams.RMIN; + delete [] constructorParams.RMIN; + } } void G4BREPSolidPolyhedra::Initialize() @@ -1006,6 +989,33 @@ G4double G4BREPSolidPolyhedra::DistanceToOut(const G4ThreeVector& Pt) const } } +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidPolyhedra::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n start_angle: " << constructorParams.start_angle + << "\n opening_angle: " << constructorParams.opening_angle + << "\n sides: " << constructorParams.sides + << "\n num_z_planes: " << constructorParams.num_z_planes + << "\n z_start: " << constructorParams.z_start + << "\n z_values: "; + G4int idx; + for( idx = 0; idx < constructorParams.num_z_planes; idx++ ) { + os << constructorParams.z_values[idx] << " "; + } + os << "\n RMIN: "; + for( idx = 0; idx < constructorParams.num_z_planes; idx++ ) { + os << constructorParams.RMIN[idx] << " "; + } + os << "\n RMAX: "; + for( idx = 0; idx < constructorParams.num_z_planes; idx++ ) { + os << constructorParams.RMAX[idx] << " "; + } + os << "\n-----------------------------------------------------------\n"; + + return os; +} + G4Surface* G4BREPSolidPolyhedra::CreateTrapezoidalSurface( G4double r1, G4double r2, const G4Point3D& origin, G4double distance, G4Vector3D& xAxis, G4double partAngle, @@ -1111,11 +1121,11 @@ G4Surface* G4BREPSolidPolyhedra::ComputePlanarSurface( G4double r1, G4double r2, G4Polyhedron* G4BREPSolidPolyhedra::CreatePolyhedron() const { - return new G4PolyhedronPgon( original_parameters.Start_angle, - original_parameters.Opening_angle, - original_parameters.Sides, - original_parameters.Num_z_planes, - original_parameters.Z_values, - original_parameters.Rmin, - original_parameters.Rmax); + return new G4PolyhedronPgon( constructorParams.start_angle, + constructorParams.opening_angle, + constructorParams.sides, + constructorParams.num_z_planes, + constructorParams.z_values, + constructorParams.RMIN, + constructorParams.RMAX); } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc index 7fbd4a03cd..a050d70881 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidSphere.cc,v 1.5 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidSphere.cc,v 1.6 2002/11/06 23:29:39 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -35,10 +35,10 @@ #include "G4SphericalSurface.hh" G4BREPSolidSphere::G4BREPSolidSphere(const G4String& name, - const G4Vector3D& o, + const G4Vector3D& origin, const G4Vector3D& xhat, const G4Vector3D& zhat, - G4double r) + G4double radius) : G4BREPSolid(name) { SurfaceVec = new G4Surface*[1]; @@ -46,8 +46,14 @@ G4BREPSolidSphere::G4BREPSolidSphere(const G4String& name, G4double ph2 = 2*M_PI; G4double th1 = 0; G4double th2 = M_PI; - SurfaceVec[0] = new G4SphericalSurface(o, xhat, zhat, r, ph1, ph2, th1, th2); + SurfaceVec[0] = new G4SphericalSurface(origin, xhat, zhat, radius, ph1, ph2, th1, th2); nb_of_surfaces = 1; + + constructorParams.origin = origin; + constructorParams.xhat = xhat; + constructorParams.zhat = zhat; + constructorParams.radius = radius; + active=1; Initialize(); } @@ -128,3 +134,17 @@ G4double G4BREPSolidSphere::DistanceToOut(const G4ThreeVector& Pt) const { return fabs(SurfaceVec[0]->HowNear(Pt)); } + +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidSphere::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n origin: " << constructorParams.origin + << "\n xhat: " << constructorParams.xhat + << "\n zhat: " << constructorParams.zhat + << "\n radius: " << constructorParams.radius + << "\n-----------------------------------------------------------\n"; + + return os; +} + diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc index e56e11bc98..d5d494123f 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidTorus.cc,v 1.5 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BREPSolidTorus.cc,v 1.6 2002/11/06 23:29:40 radoone Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -46,6 +46,14 @@ G4BREPSolidTorus::G4BREPSolidTorus(const G4String& name, SurfaceVec[0] = new G4ToroidalSurface( origin, axis, direction, MinRadius, MaxRadius); nb_of_surfaces = 1; + + // Save constructor parameters + constructorParams.origin = origin; + constructorParams.axis = axis; + constructorParams.direction = direction; + constructorParams.MinRadius = MinRadius; + constructorParams.MaxRadius = MaxRadius; + active = 1; Initialize(); } @@ -53,3 +61,18 @@ G4BREPSolidTorus::G4BREPSolidTorus(const G4String& name, G4BREPSolidTorus::~G4BREPSolidTorus() { } + +// Streams solid contents to output stream. +G4std::ostream& G4BREPSolidTorus::StreamInfo(G4std::ostream& os) const +{ + G4BREPSolid::StreamInfo( os ) + << "\n origin: " << constructorParams.origin + << "\n axis: " << constructorParams.axis + << "\n direction: " << constructorParams.direction + << "\n MinRadius: " << constructorParams.MinRadius + << "\n MaxRadius: " << constructorParams.MaxRadius + << "\n-----------------------------------------------------------\n"; + + return os; +} + diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc index 5b72f1e258..9ab1dac806 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.9 2001/07/17 07:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc index dc047df062..b22409df0f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurface.cc b/source/geometry/solids/BREPS/src/G4BSplineSurface.cc index 32646f3790..7e6597bee9 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.11 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc index 6f5ac6c7ef..46273f535d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BezierSurface.cc b/source/geometry/solids/BREPS/src/G4BezierSurface.cc index 83a5b6f2a0..d7e3beb689 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.6 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc b/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc index ff901db3ec..f4def755b9 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.6 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CircularCurve.cc b/source/geometry/solids/BREPS/src/G4CircularCurve.cc index 90386b230b..674b177db1 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.6 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc index 6f98b781fa..7d66a42d35 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.10 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Conic.cc b/source/geometry/solids/BREPS/src/G4Conic.cc index 7586ffb6b0..c21c0bf7a5 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.6 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ConicalSurface.cc b/source/geometry/solids/BREPS/src/G4ConicalSurface.cc index 8786353d34..da5ae52fb9 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.6 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ControlPoints.cc b/source/geometry/solids/BREPS/src/G4ControlPoints.cc index ad7f2eb6c1..13e3c53a9f 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.6 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Curve.cc b/source/geometry/solids/BREPS/src/G4Curve.cc index 11f68fb93d..ca76d0ba2e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurvePoint.cc b/source/geometry/solids/BREPS/src/G4CurvePoint.cc index 7a70f8990f..7d8a3ccbda 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc b/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc index 13c8f2b2e7..dadd7d011f 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.4 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc index e301fca1f6..99fa603af5 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.4 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ellipse.cc b/source/geometry/solids/BREPS/src/G4Ellipse.cc index ba8969c73c..74179a31c1 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.7 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FConicalSurface.cc b/source/geometry/solids/BREPS/src/G4FConicalSurface.cc index 9ba6ab2b69..d6cc71d0a1 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.15 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc index 31d1d4c20b..c8aafcf4da 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.12 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FPlane.cc b/source/geometry/solids/BREPS/src/G4FPlane.cc index 73fb1d758d..43ae66fa1b 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.14 2002/01/28 16:29:42 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Hyperbola.cc b/source/geometry/solids/BREPS/src/G4Hyperbola.cc index ec0a44420e..cc3f11526b 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.7 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4KnotVector.cc b/source/geometry/solids/BREPS/src/G4KnotVector.cc index 9c29070bfd..1457959caa 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.6 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Line.cc b/source/geometry/solids/BREPS/src/G4Line.cc index b8fd6b7087..43a81c9641 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.7 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4OsloMatrix.cc b/source/geometry/solids/BREPS/src/G4OsloMatrix.cc index 92925e2986..36982362df 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Parabola.cc b/source/geometry/solids/BREPS/src/G4Parabola.cc index 6017302fd4..bababde5f4 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.5 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PlacedSolid.cc b/source/geometry/solids/BREPS/src/G4PlacedSolid.cc index d4cb3556d1..e0f51e407d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PointRat.cc b/source/geometry/solids/BREPS/src/G4PointRat.cc index ebe8200ee0..12b7ddd8e9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc b/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc index af1d800c0f..f4d72680b4 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.8 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ray.cc b/source/geometry/solids/BREPS/src/G4Ray.cc index c5f7996558..0f8c389479 100644 --- a/source/geometry/solids/BREPS/src/G4Ray.cc +++ b/source/geometry/solids/BREPS/src/G4Ray.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ray.cc,v 1.7 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ray.cc,v 1.8 2002/11/21 16:52:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -245,3 +245,71 @@ void G4Ray::RayCheck() r_min = 0; r_max = 0; } + + +void G4Ray::Vcross(G4Plane &a, const G4Vector3D &b, const G4Vector3D &c) +{ + a.a = b.y() * c.z() - b.z() * c.y() ; + a.b = b.z() * c.x() - b.x() * c.z() ; + a.c = b.x() * c.y() - b.y() * c.x() ; +} + + +void G4Ray::Vcross(G4Vector3D &a, const G4Vector3D &b, const G4Vector3D &c) +{ + a.setX(b.y() * c.z() - b.z() * c.y()) ; + a.setY(b.z() * c.x() - b.x() * c.z()) ; + a.setZ(b.x() * c.y() - b.y() * c.x()) ; +} + + +void G4Ray::Vmove(G4Point3D &a, const G4Point3D &b) +{ + a.setX(b.x()); + a.setY(b.y()); + a.setZ(b.z()); +} + + +void G4Ray::Vadd2(G4Point3D &a, const G4Point3D &b, const G4Vector3D &c) +{ + a.setX(b.x() + c.x()) ; + a.setY(b.y() + c.y()) ; + a.setZ(b.z() + c.z()) ; +} + + +void G4Ray::Vsub2(G4Vector3D &a, const G4Point3D &b, const G4Point3D &c) +{ + a.setX(b.x() - c.x()); + a.setY(b.y() - c.y()); + a.setZ(b.z() - c.z()); +} + + +void G4Ray::Vscale(G4Plane& a, const G4Plane& b, G4double c) +{ + a.a = b.a * c; + a.b = b.b * c; + a.c = b.c * c; +} + + +G4double G4Ray::Vdot(const G4Plane &a, const G4Point3D &b) +{ + return (a.a * b.x() + + a.b * b.y() + + a.c * b.z()); +} + + +G4double G4Ray::Magsq(const G4Plane &a) +{ + return ( a.a * a.a + a.b * a.b + a.c *a.c ); +} + + +G4double G4Ray::Magnitude(const G4Plane &a) +{ + return (sqrt( Magsq( a )) ); +} diff --git a/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc b/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc index 3a2eea5bec..d11f3ab066 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Sort.cc b/source/geometry/solids/BREPS/src/G4Sort.cc index 6ae79e42aa..8abcab092a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 source file diff --git a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc index 150f7070fb..a5e8ece10f 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.5 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Surface.cc b/source/geometry/solids/BREPS/src/G4Surface.cc index ef97f78679..939ed05e98 100644 --- a/source/geometry/solids/BREPS/src/G4Surface.cc +++ b/source/geometry/solids/BREPS/src/G4Surface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Surface.cc,v 1.9 2001/07/11 09:59:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Surface.cc,v 1.10 2002/11/21 16:52:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -286,6 +286,13 @@ G4Ray* G4Surface::Norm() return (G4Ray*)0; } +void G4Surface::Project (G4double& Coord, + const G4Point3D& Pt2, + const G4Plane& Pl1) +{ + Coord = Pt2.x()*Pl1.a + Pt2.y()*Pl1.b + Pt2.z()*Pl1.c - Pl1.d; +} + /* G4double G4Surface::distanceAlongRay( G4int which_way, const G4Ray* ry, G4ThreeVec& p ) const diff --git a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc index e27da1884a..b71452428c 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.10 2001/07/11 09:59:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceList.cc b/source/geometry/solids/BREPS/src/G4SurfaceList.cc index 5b4db99996..c7e4f88074 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc index 266ad8bac2..1af167167c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc index bd8c77e9e5..8ea39b6d99 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ThreeMat.cc b/source/geometry/solids/BREPS/src/G4ThreeMat.cc index 52de888770..3bd17b936f 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.6 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc b/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc index 5a0b7b736e..38304e820e 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.6 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index 761ebcff02..69c7821cc9 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -1,5 +1,5 @@ -$Id: History,v 1.32 2002/05/13 06:56:49 gcosmo Exp $ +$Id: History,v 1.34 2002/10/29 14:16:22 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,19 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + Oct 29 2002 Gabriele Cosmo geom-bool-V04-01-01 + - Added method CleanTransformations() to G4DisplacedSolid and corrected + implementation in destructor of G4BooleanSolid to not call for deletion + of G4VSolid in the case where displacement is used. + This fixes a problem noticed on Linux-g++ at application closeout for + double deletion of a solid in such special case. + + Oct 28 2002 Gabriele Cosmo geom-bool-V04-01-00 + - Added implementation of StreamInfo() to comply with new interface for + G4VSolid in "geommng-V04-01-03". + - Some cosmetic changes to code formatting. + - Extended unit tests to include new user test-cases (V.Grichine). + May 11 2002 Vladimir Grichine geom-bool-V04-00-05 - G4ReflectedSolid.cc: bounding-box like algorithm for CalculateExtent(). diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh index e663030cba..e0a2766c5c 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.hh,v 1.5 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BooleanSolid.hh,v 1.6 2002/10/28 11:36:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4BooleanSolid @@ -34,7 +34,9 @@ // History: // -// 10.09.98 V.Grichine, creation according J. Apostolakis's recommendations. +// 10.09.98 V.Grichine, created +// +// ******************************************************************** #ifndef G4BOOLEANSOLID_HH @@ -75,6 +77,10 @@ class G4BooleanSolid : public G4VSolid // return the corresponding solid (for no=0 and 1) // If the solid is not a "Boolean", return 0. + virtual G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo(G4std::ostream& os) const; + protected: G4VSolid* fPtrSolidA ; diff --git a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh index 81899c7b20..78f2387f52 100644 --- a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh +++ b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DisplacedSolid.hh,v 1.11 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DisplacedSolid.hh,v 1.13 2002/10/29 14:13:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4DisplacedSolid @@ -35,8 +35,10 @@ // History: // -// 28.10.98 V.Grichine, creation according J. Apostolakis's recommendations -// 22.11.00 V.Grichine, new set methods for matrix/vectors +// 28.10.98 V.Grichine: created +// 22.11.00 V.Grichine: new set methods for matrix/vectors +// +// ******************************************************************** #ifndef G4DisplacedSolid_HH #define G4DisplacedSolid_HH @@ -97,7 +99,9 @@ class G4DisplacedSolid : public G4VSolid void ComputeDimensions( G4VPVParameterisation* p, const G4int n, const G4VPhysicalVolume* pRep ) ; - + + void CleanTransformations(); + public: // with description virtual G4GeometryType GetEntityType() const; @@ -130,6 +134,8 @@ class G4DisplacedSolid : public G4VSolid void SetObjectTranslation(const G4ThreeVector&); // Get/Set the rotation/translation, as applied to the object. + G4std::ostream& StreamInfo(G4std::ostream& os) const; + public: // without description void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; @@ -151,7 +157,3 @@ class G4DisplacedSolid : public G4VSolid } ; #endif - - - - diff --git a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh index 5e1a35054e..bdb4862fa7 100644 --- a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.hh,v 1.5 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IntersectionSolid.hh,v 1.6 2002/10/28 11:36:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4IntersectionSolid @@ -33,9 +33,10 @@ // History: // -// 12.09.98 V. Grichine, initial design according to J.Apostolakis's -// recommendations -// 28.10.98 V. Grichine, addition of two constructors with G4PlacedSolid +// 12.09.98 V.Grichine: initial design and implementation +// 28.10.98 V.Grichine: addition of two constructors with G4PlacedSolid +// +// ******************************************************************** #ifndef G4INTERSECTIONSOLID_HH #define G4INTERSECTIONSOLID_HH diff --git a/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh b/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh index e8f535bbca..4ba1bebff4 100644 --- a/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh +++ b/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.hh,v 1.5 2002/02/15 15:55:25 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReflectedSolid.hh,v 1.6 2002/10/28 11:36:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ReflectedSolid @@ -34,8 +34,10 @@ // History: // -// 23.07.01 V.Grichine, creation according John/Gabriele recommendations -// 15.02.02 V.Grichine, get/set methods for fPtr(Direct)Transform3D +// 23.07.01 V.Grichine: created +// 15.02.02 V.Grichine: get/set methods for fPtr(Direct)Transform3D +// +// ******************************************************************** #ifndef G4ReflectedSolid_HH #define G4ReflectedSolid_HH @@ -64,10 +66,10 @@ class G4ReflectedSolid : public G4VSolid EInside Inside( const G4ThreeVector& p ) const ; - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const ; + G4bool CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const ; G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const ; @@ -77,16 +79,15 @@ class G4ReflectedSolid : public G4VSolid G4double DistanceToIn( const G4ThreeVector& p) const ; G4double DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm=false, - G4bool *validNorm=0, - G4ThreeVector *n=0 ) const ; + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const ; G4double DistanceToOut( const G4ThreeVector& p ) const ; - - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, const G4VPhysicalVolume* pRep ) ; public: // with description @@ -106,6 +107,7 @@ class G4ReflectedSolid : public G4VSolid void SetDirectTransform3D(G4Transform3D&); // Accessors methods. + G4std::ostream& StreamInfo(G4std::ostream& os) const; public: // without description @@ -148,11 +150,3 @@ class G4ReflectedSolid : public G4VSolid } ; #endif - - - - - - - - diff --git a/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh b/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh index f54316228e..fa655f7687 100644 --- a/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh +++ b/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReflectionFactory.hh,v 1.1 2001/10/18 10:05:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Reflection diff --git a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh index 955812a072..b0d20d7911 100644 --- a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.hh,v 1.5 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SubtractionSolid.hh,v 1.6 2002/10/28 11:36:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4SubtractionSolid @@ -33,8 +33,9 @@ // History: // -// 14.10.98 V.Grichine - first implementation. - +// 14.10.98 V.Grichine: first implementation +// +// ******************************************************************** #ifndef G4SUBTRACTIONSOLID_HH #define G4SUBTRACTIONSOLID_HH @@ -74,9 +75,9 @@ class G4SubtractionSolid : public G4BooleanSolid public: // without description G4bool CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const ; + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const ; EInside Inside( const G4ThreeVector& p ) const ; @@ -88,16 +89,16 @@ class G4SubtractionSolid : public G4BooleanSolid G4double DistanceToIn( const G4ThreeVector& p) const ; G4double DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm=false, - G4bool *validNorm=0, - G4ThreeVector *n=0 ) const ; + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const ; G4double DistanceToOut( const G4ThreeVector& p ) const ; - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, const G4VPhysicalVolume* pRep ) ; void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; @@ -107,4 +108,3 @@ class G4SubtractionSolid : public G4BooleanSolid }; #endif - diff --git a/source/geometry/solids/Boolean/include/G4UnionSolid.hh b/source/geometry/solids/Boolean/include/G4UnionSolid.hh index 41bce57d47..5e87bb1cc6 100644 --- a/source/geometry/solids/Boolean/include/G4UnionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4UnionSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.hh,v 1.6 2001/07/11 09:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnionSolid.hh,v 1.7 2002/10/28 11:36:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4UnionSolid @@ -33,7 +33,9 @@ // History: // -// 12.09.98 V.Grichine, created. +// 12.09.98 V.Grichine: created +// +// ******************************************************************** #ifndef G4UNIONSOLID_HH #define G4UNIONSOLID_HH @@ -72,9 +74,9 @@ class G4UnionSolid : public G4BooleanSolid public: // without description G4bool CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const ; + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const ; EInside Inside( const G4ThreeVector& p ) const ; @@ -83,19 +85,19 @@ class G4UnionSolid : public G4BooleanSolid G4double DistanceToIn( const G4ThreeVector& p, const G4ThreeVector& v ) const ; - G4double DistanceToIn( const G4ThreeVector& p) const ; + G4double DistanceToIn( const G4ThreeVector& p ) const ; G4double DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm=false, - G4bool *validNorm=0, - G4ThreeVector *n=0 ) const ; + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const ; G4double DistanceToOut( const G4ThreeVector& p ) const ; - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, const G4VPhysicalVolume* pRep ) ; void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; @@ -105,4 +107,3 @@ class G4UnionSolid : public G4BooleanSolid }; #endif - diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index 0f3753af46..ba3245b16f 100644 --- a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc +++ b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc @@ -21,15 +21,17 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.cc,v 1.6 2002/01/10 15:34:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BooleanSolid.cc,v 1.8 2002/10/29 14:15:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation for the abstract base class for solids created by boolean // operations between other solids // // History: // -// 10.09.98 V.Grichine, creation according J. Apostolakis's recommendations +// 10.09.98 V.Grichine, created +// +// ******************************************************************** #include "G4BooleanSolid.hh" #include "G4DisplacedSolid.hh" @@ -41,7 +43,7 @@ ////////////////////////////////////////////////////////////////// // -// +// Constructor G4BooleanSolid::G4BooleanSolid( const G4String& pName, G4VSolid* pSolidA , @@ -55,7 +57,7 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, ////////////////////////////////////////////////////////////////// // -// +// Constructor G4BooleanSolid::G4BooleanSolid( const G4String& pName, G4VSolid* pSolidA , @@ -71,7 +73,7 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, ////////////////////////////////////////////////////////////////// // -// +// Constructor G4BooleanSolid::G4BooleanSolid( const G4String& pName, G4VSolid* pSolidA , @@ -86,11 +88,14 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, /////////////////////////////////////////////////////////////// // -// Destructor deletes second pointer created by 'new' +// Destructor deletes transformation contents of the created displaced solid G4BooleanSolid::~G4BooleanSolid() { - if(createdDisplacedSolid) delete fPtrSolidB ; + if(createdDisplacedSolid) + { + ((G4DisplacedSolid*)fPtrSolidB)->CleanTransformations(); + } } /////////////////////////////////////////////////////////////// @@ -98,6 +103,7 @@ G4BooleanSolid::~G4BooleanSolid() // If Solid is made up from a Boolean operation of two solids, // return the corresponding solid (for no=0 and 1) // If the solid is not a "Boolean", return 0 + const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const { const G4VSolid* subSolid=0; @@ -106,12 +112,21 @@ const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const else if( no == 1 ) subSolid = fPtrSolidB; else - G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid subsolid index"); + { + DumpInfo(); + G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid solid index"); + } return subSolid; } - G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) +/////////////////////////////////////////////////////////////// +// +// If Solid is made up from a Boolean operation of two solids, +// return the corresponding solid (for no=0 and 1) +// If the solid is not a "Boolean", return 0 + +G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) { G4VSolid* subSolid=0; if( no == 0 ) @@ -119,11 +134,38 @@ const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const else if( no == 1 ) subSolid = fPtrSolidB; else - G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid subsolid index"); + { + DumpInfo(); + G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid solid index"); + } return subSolid; } +////////////////////////////////////////////////////////////////////////// +// +// Returns entity type +G4GeometryType G4BooleanSolid::GetEntityType() const +{ + return G4String("G4BooleanSolid"); +} +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream +G4std::ostream& G4BooleanSolid::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for Boolean solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: " << GetEntityType() << "\n" + << " Parameters of constituent solids: \n" + << "===========================================================\n"; + fPtrSolidA->StreamInfo(os); + fPtrSolidB->StreamInfo(os); + os << "===========================================================\n"; + + return os; +} diff --git a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc index 3299162084..51d25bcea1 100644 --- a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc @@ -21,21 +21,22 @@ // ******************************************************************** // // -// $Id: G4DisplacedSolid.cc,v 1.14 2001/07/11 09:59:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DisplacedSolid.cc,v 1.16 2002/10/29 14:13:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation for G4DisplacedSolid class for boolean // operations between other solids // // History: // -// 28.10.98 V.Grichine, creation according J. Apostolakis's recommendations -// 14.11.99 V.Grichine, modifications in CalculateExtent(...) method -// 22.11.00 V.Grichine, new set methods for matrix/vectors +// 28.10.98 V.Grichine: created +// 14.11.99 V.Grichine: modifications in CalculateExtent(...) method +// 22.11.00 V.Grichine: new set methods for matrix/vectors +// +// ******************************************************************** #include "G4DisplacedSolid.hh" - #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" @@ -48,15 +49,14 @@ //////////////////////////////////////////////////////////////// // -// Constractor for transformation like rotation of frame then translation +// Constructor for transformation like rotation of frame then translation // in new frame. It is similar to 1st constractor in G4PVPlacement -G4DisplacedSolid:: -G4DisplacedSolid( const G4String& pName, - G4VSolid* pSolid , - G4RotationMatrix* rotMatrix, - const G4ThreeVector& transVector ) - : G4VSolid(pName) +G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, + G4VSolid* pSolid , + G4RotationMatrix* rotMatrix, + const G4ThreeVector& transVector ) + : G4VSolid(pName) { fPtrSolid = pSolid ; fPtrTransform = new G4AffineTransform(rotMatrix,transVector) ; @@ -66,11 +66,12 @@ G4DisplacedSolid( const G4String& pName, ///////////////////////////////////////////////////////////////////////////////// // -// +// Constructor + G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4VSolid* pSolid , - const G4Transform3D& transform ) : - G4VSolid(pName) + const G4Transform3D& transform ) + : G4VSolid(pName) { fPtrSolid = pSolid ; fDirectTransform = new G4AffineTransform(transform.getRotation().inverse(), @@ -81,14 +82,15 @@ G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, fPtrTransform->Invert() ; } -///////////////////////////////////////////////////////////////////////////////// -// Constructor for use with creation of Transient object from Persistent object +/////////////////////////////////////////////////////////////////// // +// Constructor for use with creation of Transient object +// from Persistent object G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, - G4VSolid* pSolid , - const G4AffineTransform directTransform ) : - G4VSolid(pName) + G4VSolid* pSolid , + const G4AffineTransform directTransform ) + : G4VSolid(pName) { fPtrSolid = pSolid ; fDirectTransform = new G4AffineTransform( directTransform ); @@ -97,26 +99,36 @@ G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, /////////////////////////////////////////////////////////////////// // +// Destructor G4DisplacedSolid::~G4DisplacedSolid() { - if(fPtrTransform) - { - delete fPtrTransform ; - delete fDirectTransform; - } + CleanTransformations(); } G4GeometryType G4DisplacedSolid::GetEntityType() const { - return G4String("G4DisplacedSolid"); + return G4String("G4DisplacedSolid"); +} + +void G4DisplacedSolid::CleanTransformations() +{ + if(fPtrTransform) + { + delete fPtrTransform; fPtrTransform=0; + delete fDirectTransform; fDirectTransform=0; + } } const G4DisplacedSolid* G4DisplacedSolid::GetDisplacedSolidPtr() const -{ return this; } +{ + return this; +} - G4DisplacedSolid* G4DisplacedSolid::GetDisplacedSolidPtr() -{ return this; } +G4DisplacedSolid* G4DisplacedSolid::GetDisplacedSolidPtr() +{ + return this; +} G4VSolid* G4DisplacedSolid::GetConstituentMovedSolid() const { @@ -127,46 +139,46 @@ G4VSolid* G4DisplacedSolid::GetConstituentMovedSolid() const G4AffineTransform G4DisplacedSolid::GetTransform() const { - G4AffineTransform aTransform = *fPtrTransform; - return aTransform; + G4AffineTransform aTransform = *fPtrTransform; + return aTransform; } void G4DisplacedSolid::SetTransform(G4AffineTransform& transform) { - fPtrTransform = &transform ; + fPtrTransform = &transform ; } ////////////////////////////////////////////////////////////////////////////// G4AffineTransform G4DisplacedSolid::GetDirectTransform() const { - G4AffineTransform aTransform= *fDirectTransform; - return aTransform; + G4AffineTransform aTransform= *fDirectTransform; + return aTransform; } void G4DisplacedSolid::SetDirectTransform(G4AffineTransform& transform) { - fDirectTransform = &transform ; + fDirectTransform = &transform ; } ///////////////////////////////////////////////////////////////////////////// G4RotationMatrix G4DisplacedSolid::GetFrameRotation() const { - G4RotationMatrix InvRotation= fDirectTransform->NetRotation(); - return InvRotation; + G4RotationMatrix InvRotation= fDirectTransform->NetRotation(); + return InvRotation; } void G4DisplacedSolid::SetFrameRotation(const G4RotationMatrix& matrix) { - fDirectTransform->SetNetRotation(matrix); + fDirectTransform->SetNetRotation(matrix); } ///////////////////////////////////////////////////////////////////////////// G4ThreeVector G4DisplacedSolid::GetFrameTranslation() const { - return fPtrTransform->NetTranslation(); + return fPtrTransform->NetTranslation(); } void G4DisplacedSolid::SetFrameTranslation(const G4ThreeVector& vector) @@ -178,20 +190,20 @@ void G4DisplacedSolid::SetFrameTranslation(const G4ThreeVector& vector) G4RotationMatrix G4DisplacedSolid::GetObjectRotation() const { - G4RotationMatrix Rotation= fPtrTransform->NetRotation(); - return Rotation; + G4RotationMatrix Rotation= fPtrTransform->NetRotation(); + return Rotation; } void G4DisplacedSolid::SetObjectRotation(const G4RotationMatrix& matrix) { - fPtrTransform->SetNetRotation(matrix); + fPtrTransform->SetNetRotation(matrix); } /////////////////////////////////////////////////////////////////////// G4ThreeVector G4DisplacedSolid::GetObjectTranslation() const { - return fDirectTransform->NetTranslation(); + return fDirectTransform->NetTranslation(); } void G4DisplacedSolid::SetObjectTranslation(const G4ThreeVector& vector) @@ -205,15 +217,14 @@ void G4DisplacedSolid::SetObjectTranslation(const G4ThreeVector& vector) G4bool G4DisplacedSolid::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const { G4AffineTransform sumTransform ; sumTransform.Product(*fDirectTransform,pTransform) ; - return fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform, - pMin,pMax) ; + return fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform,pMin,pMax) ; } ///////////////////////////////////////////////////// @@ -236,7 +247,6 @@ G4DisplacedSolid::SurfaceNormal( const G4ThreeVector& p ) const G4ThreeVector newPoint = fPtrTransform->TransformPoint(p) ; G4ThreeVector normal = fPtrSolid->SurfaceNormal(newPoint) ; return fDirectTransform->TransformAxis(normal) ; - } ///////////////////////////////////////////////////////////// @@ -245,7 +255,7 @@ G4DisplacedSolid::SurfaceNormal( const G4ThreeVector& p ) const G4double G4DisplacedSolid::DistanceToIn( const G4ThreeVector& p, - const G4ThreeVector& v ) const + const G4ThreeVector& v ) const { G4ThreeVector newPoint = fPtrTransform->TransformPoint(p) ; G4ThreeVector newDirection = fPtrTransform->TransformAxis(v) ; @@ -258,7 +268,7 @@ G4DisplacedSolid::DistanceToIn( const G4ThreeVector& p, // two solids G4double -G4DisplacedSolid::DistanceToIn( const G4ThreeVector& p) const +G4DisplacedSolid::DistanceToIn( const G4ThreeVector& p ) const { G4ThreeVector newPoint = fPtrTransform->TransformPoint(p) ; return fPtrSolid->DistanceToIn(newPoint) ; @@ -270,16 +280,16 @@ G4DisplacedSolid::DistanceToIn( const G4ThreeVector& p) const G4double G4DisplacedSolid::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { G4ThreeVector solNorm ; G4ThreeVector newPoint = fPtrTransform->TransformPoint(p) ; G4ThreeVector newDirection = fPtrTransform->TransformAxis(v) ; G4double dist = fPtrSolid->DistanceToOut(newPoint,newDirection, - calcNorm,validNorm,&solNorm) ; + calcNorm,validNorm,&solNorm) ; if(calcNorm) { *n = fDirectTransform->TransformAxis(solNorm) ; @@ -303,13 +313,38 @@ G4DisplacedSolid::DistanceToOut( const G4ThreeVector& p ) const // void -G4DisplacedSolid::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep ) +G4DisplacedSolid::ComputeDimensions( G4VPVParameterisation*, + const G4int, + const G4VPhysicalVolume* ) { - // fPtrSolid->ComputeDimensions(p,n,pRep); + DumpInfo(); + G4Exception("G4DisplacedSolid::ComputeDimensions() - has no meaning!"); +} - G4Exception("ERROR: ComputeDimensions has no meaning for a G4DisplacedSolid. It cannot be called."); +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4DisplacedSolid::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for Displaced solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: " << GetEntityType() << "\n" + << " Parameters of constituent solid: \n" + << "===========================================================\n"; + fPtrSolid->StreamInfo(os); + os << "===========================================================\n" + << " Transformations: \n" + << " Direct transformation - translation : \n" + << " " << fDirectTransform->NetTranslation() << "\n" + << " - rotation : \n" + << " "; + fDirectTransform->NetRotation().print(os); + os << "\n" + << "===========================================================\n"; + + return os; } ///////////////////////////////////////////////// @@ -330,8 +365,8 @@ G4Polyhedron* G4DisplacedSolid::CreatePolyhedron () const { G4Polyhedron* polyhedron = fPtrSolid->CreatePolyhedron(); - polyhedron->Transform - (G4Transform3D(GetObjectRotation(),GetObjectTranslation())); + polyhedron + ->Transform(G4Transform3D(GetObjectRotation(),GetObjectTranslation())); return polyhedron; } @@ -340,7 +375,7 @@ G4DisplacedSolid::CreatePolyhedron () const // G4NURBS* -G4DisplacedSolid::CreateNURBS () const +G4DisplacedSolid::CreateNURBS () const { // Take into account local transformation - see CreatePolyhedron. // return fPtrSolid->CreateNURBS() ; diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index 7ce5b25f4b..f82394db52 100644 --- a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc @@ -21,22 +21,21 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.cc,v 1.17 2002/01/10 15:34:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IntersectionSolid.cc,v 1.18 2002/10/28 11:36:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation of methods for the class G4IntersectionSolid // // History: // -// 29.05.01 V.Grichine, bug was fixed in DistanceToIn(p,v) -// 16.03.01 V.Grichine, modifications in CalculateExtent() and Inside() -// based on D.Williams proposal -// 29.07.99 V.Grichine, modifications in DistanceToIn(p,v) -// 12.09.98 V.Grichine, implementation based on discussions with J. Apostolakis and -// S. Giani +// 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() +// 29.05.01 V.Grichine: bug was fixed in DistanceToIn(p,v) +// +// ******************************************************************** #include "G4IntersectionSolid.hh" -// #include "G4DisplacedSolid.hh" #include "G4RotationMatrix.hh" #include "G4ThreeVector.hh" @@ -57,47 +56,40 @@ // for them. pName will be in turn sent to G4VSolid // -G4IntersectionSolid:: G4IntersectionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB ): -G4BooleanSolid(pName,pSolidA,pSolidB) +G4IntersectionSolid::G4IntersectionSolid( const G4String& pName, + G4VSolid* pSolidA , + G4VSolid* pSolidB ) + : G4BooleanSolid(pName,pSolidA,pSolidB) { - ; } /////////////////////////////////////////////////////////////////// // -G4IntersectionSolid:: -G4IntersectionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB, - G4RotationMatrix* rotMatrix, - const G4ThreeVector& transVector ): -G4BooleanSolid(pName,pSolidA,pSolidB,rotMatrix,transVector) +G4IntersectionSolid::G4IntersectionSolid( const G4String& pName, + G4VSolid* pSolidA, + G4VSolid* pSolidB, + G4RotationMatrix* rotMatrix, + const G4ThreeVector& transVector ) + : G4BooleanSolid(pName,pSolidA,pSolidB,rotMatrix,transVector) { - ; } ////////////////////////////////////////////////////////////////// // // -G4IntersectionSolid:: -G4IntersectionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB , - const G4Transform3D& transform ): -G4BooleanSolid(pName,pSolidA,pSolidB,transform) +G4IntersectionSolid::G4IntersectionSolid( const G4String& pName, + G4VSolid* pSolidA, + G4VSolid* pSolidB, + const G4Transform3D& transform ) + : G4BooleanSolid(pName,pSolidA,pSolidB,transform) { - ; } - G4IntersectionSolid::~G4IntersectionSolid() { - ; } /////////////////////////////////////////////////////////////// @@ -106,15 +98,18 @@ G4IntersectionSolid::~G4IntersectionSolid() G4bool G4IntersectionSolid::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, + G4double& pMax) const { G4bool retA, retB, out ; G4double minA, minB, maxA, maxB ; - retA= fPtrSolidA->CalculateExtent( pAxis, pVoxelLimit, pTransform, minA, maxA); - retB= fPtrSolidB->CalculateExtent( pAxis, pVoxelLimit, pTransform, minB, maxB); + retA= fPtrSolidA + ->CalculateExtent( pAxis, pVoxelLimit, pTransform, minA, maxA); + retB= fPtrSolidB + ->CalculateExtent( pAxis, pVoxelLimit, pTransform, minB, maxB); if(retA && retB) { pMin = G4std::max( minA, minB ) ; @@ -170,13 +165,16 @@ G4IntersectionSolid::SurfaceNormal( const G4ThreeVector& p ) const insideB= fPtrSolidB->Inside(p); #ifdef G4BOOLDEBUG - // if( Inside(p) == kOutside ) if( (insideA == kOutside) || (insideB == kOutside) ) { - G4cout << "WARNING - Invalid call in G4IntersectionSolid::SurfaceNormal(p)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4IntersectionSolid::SurfaceNormal(p)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4IntersectionSolid::SurfaceNormal(p), p is outside") ; + G4cerr << "WARNING - Invalid call in " + << "G4IntersectionSolid::SurfaceNormal(p)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; } #endif @@ -184,9 +182,9 @@ G4IntersectionSolid::SurfaceNormal( const G4ThreeVector& p ) const // On the surface of both is difficult ... treat it like on A now! // -// if( (insideA == kSurface) && (insideB == kSurface) ) -// normal= fPtrSolidA->SurfaceNormal(p) ; -// else + // if( (insideA == kSurface) && (insideB == kSurface) ) + // normal= fPtrSolidA->SurfaceNormal(p) ; + // else if( insideA == kSurface ) { normal= fPtrSolidA->SurfaceNormal(p) ; @@ -195,18 +193,22 @@ G4IntersectionSolid::SurfaceNormal( const G4ThreeVector& p ) const { normal= fPtrSolidB->SurfaceNormal(p) ; } - // We are on neither surface, so we should generate an exception + // We are on neither surface, so we should generate an exception else { if(fPtrSolidA->DistanceToOut(p) <= fPtrSolidB->DistanceToOut(p) ) - normal= fPtrSolidA->SurfaceNormal(p) ; + normal= fPtrSolidA->SurfaceNormal(p) ; else - normal= fPtrSolidB->SurfaceNormal(p) ; + normal= fPtrSolidB->SurfaceNormal(p) ; #ifdef G4BOOLDEBUG - G4cout << "WARNING - Invalid call in G4IntersectionSolid::SurfaceNormal(p)," - << " point p is outsurface" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4IntersectionSolid::SurfaceNormal(p)" << G4endl + << " Point p is out of surface !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4IntersectionSolid::SurfaceNormal(p), p is outsurface") ; + G4cerr << "WARNING - Invalid call in " + << "G4IntersectionSolid::SurfaceNormal(p)" << G4endl + << " Point p is out of surface !" << G4endl; + G4cerr << " p = " << p << G4endl; #endif } @@ -225,11 +227,16 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, if( Inside(p) == kInside ) { #ifdef G4BOOLDEBUG - G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToIn(p,v)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToIn(p,v)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; G4cout << " v = " << v << G4endl; - // G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p,v), p is inside") ; + G4cerr << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToIn(p,v)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; + G4cerr << " v = " << v << G4endl; #endif } else @@ -238,40 +245,40 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, { do { - if( fPtrSolidB->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; - } - else - { + 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 ; - } + { + 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 { @@ -285,40 +292,40 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, { do { - if( fPtrSolidA->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v) ; - } - else - { + 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 ; 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 ; - } + { + 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 { @@ -331,40 +338,40 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p, { do { - if( fPtrSolidB->Inside(p+dist*v) == kInside ) - { - disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; - } - else - { + 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 ; - } + { + 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 { @@ -388,23 +395,27 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p) const #ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToIn(p)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToIn(p)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4IntersectionSolid::DistanceToIn(p), p is inside") ; + G4cerr << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToIn(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; } #endif EInside sideA = fPtrSolidA->Inside(p) ; EInside sideB = fPtrSolidB->Inside(p) ; G4double dist ; - if( sideA != kInside && sideB != kOutside ) + if( sideA != kInside && sideB != kOutside ) { dist = fPtrSolidA->DistanceToIn(p) ; } else { - if( sideB != kInside && sideA != kOutside ) + if( sideB != kInside && sideA != kOutside ) { dist = fPtrSolidB->DistanceToIn(p) ; } @@ -423,10 +434,10 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p) const G4double G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { G4bool validNormA, validNormB; G4ThreeVector nA, nB; @@ -442,11 +453,16 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p, G4cout << "v.x() = " << v.x() << G4endl; G4cout << "v.y() = " << v.y() << G4endl; G4cout << "v.z() = " << v.z() << G4endl << G4endl; - G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToOut(p,v)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToOut(p,v)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; G4cout << " v = " << v << G4endl; - // G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p,v), p is outside") ; + G4cerr << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToOut(p,v)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; + G4cerr << " v = " << v << G4endl; } #endif G4double distA = fPtrSolidA->DistanceToOut(p,v,calcNorm,&validNormA,&nA) ; @@ -454,19 +470,21 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p, G4double dist = G4std::min(distA,distB) ; - if( calcNorm ){ - if (distA < distB ) { - *validNorm = validNormA; - *n = nA; - }else{ - *validNorm = validNormB; - *n = nB; - } + if( calcNorm ) + { + if ( distA < distB ) + { + *validNorm = validNormA; + *n = nA; + } + else + { + *validNorm = validNormB; + *n = nB; + } } return dist ; - // return G4std::min(fPtrSolidA->DistanceToOut(p,v,calcNorm,validNorm,n), - // fPtrSolidB->DistanceToOut(p,v,calcNorm,validNorm,n) ) ; } ////////////////////////////////////////////////////////////// @@ -479,10 +497,14 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p ) const #ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) { - G4cout << "WARNING - Invalid call in G4IntersectionSolid::DistanceToOut(p)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToOut(p)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4IntersectionSolid::DistanceToOut(p), p is outside") ; + G4cerr << "WARNING - Invalid call in " + << "G4IntersectionSolid::DistanceToOut(p)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; } #endif @@ -496,11 +518,10 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p ) const // void -G4IntersectionSolid::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep ) +G4IntersectionSolid::ComputeDimensions( G4VPVParameterisation*, + const G4int, + const G4VPhysicalVolume* ) { - return ; } ///////////////////////////////////////////////// diff --git a/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc b/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc index 938408a822..90cbebe434 100644 --- a/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc @@ -21,14 +21,16 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.cc,v 1.8 2002/05/11 14:10:38 grichine Exp $ +// $Id: G4ReflectedSolid.cc,v 1.9 2002/10/28 11:36:29 gcosmo Exp $ // -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation for G4ReflectedSolid class for boolean // operations between other solids // // Author: Vladimir Grichine, 23.07.01 (Vladimir.Grichine@cern.ch) +// +// ******************************************************************** #include "G4ReflectedSolid.hh" #include "G4Point3D.hh" @@ -46,64 +48,28 @@ #include "G4NURBSbox.hh" -///////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////// // // Constructor using HepTransform3D, in fact HepReflect3D G4ReflectedSolid::G4ReflectedSolid( const G4String& pName, G4VSolid* pSolid , - const G4Transform3D& transform ) : - G4VSolid(pName) + const G4Transform3D& transform ) + : G4VSolid(pName) { fPtrSolid = pSolid ; G4RotationMatrix rotMatrix ; - fDirectTransform = new G4AffineTransform(rotMatrix, transform.getTranslation()) ; - - fPtrTransform = new G4AffineTransform(rotMatrix, transform.getTranslation()) ; + fDirectTransform = + new G4AffineTransform(rotMatrix, transform.getTranslation()) ; + fPtrTransform = + new G4AffineTransform(rotMatrix, transform.getTranslation()) ; fPtrTransform->Invert() ; fDirectTransform3D = new G4Transform3D(transform) ; fPtrTransform3D = new G4Transform3D(transform.inverse()) ; } -/* ************************************************************** - -//////////////////////////////////////////////////////////////// -// -// Constractor for transformation like rotation of frame then translation -// in new frame. It is similar to 1st constractor in G4PVPlacement - -G4ReflectedSolid:: -G4ReflectedSolid( const G4String& pName, - G4VSolid* pSolid , - G4RotationMatrix* rotMatrix, - const G4ThreeVector& transVector ) - : G4VSolid(pName) -{ - fPtrSolid = pSolid ; - fPtrTransform = new G4AffineTransform(rotMatrix,transVector) ; - fPtrTransform->Invert() ; - fDirectTransform = new G4AffineTransform(rotMatrix,transVector) ; -} - -///////////////////////////////////////////////////////////////////////////////// -// Constructor for use with creation of Transient object from Persistent object -// - -G4ReflectedSolid::G4ReflectedSolid( const G4String& pName, - G4VSolid* pSolid , - const G4AffineTransform directTransform ) : - G4VSolid(pName) -{ - fPtrSolid = pSolid ; - fDirectTransform = new G4AffineTransform( directTransform ); - fPtrTransform = new G4AffineTransform( directTransform.Inverse() ) ; -} - -********************************************************** */ - - /////////////////////////////////////////////////////////////////// // @@ -118,14 +84,18 @@ G4ReflectedSolid::~G4ReflectedSolid() G4GeometryType G4ReflectedSolid::GetEntityType() const { - return G4String("G4ReflectedSolid"); + return G4String("G4ReflectedSolid"); } const G4ReflectedSolid* G4ReflectedSolid::GetReflectedSolidPtr() const -{ return this; } +{ + return this; +} - G4ReflectedSolid* G4ReflectedSolid::GetReflectedSolidPtr() -{ return this; } +G4ReflectedSolid* G4ReflectedSolid::GetReflectedSolidPtr() +{ + return this; +} G4VSolid* G4ReflectedSolid::GetConstituentMovedSolid() const { @@ -149,65 +119,59 @@ void G4ReflectedSolid::SetTransform(G4AffineTransform& transform) G4AffineTransform G4ReflectedSolid::GetDirectTransform() const { - G4AffineTransform aTransform= *fDirectTransform; - return aTransform; + G4AffineTransform aTransform= *fDirectTransform; + return aTransform; } void G4ReflectedSolid::SetDirectTransform(G4AffineTransform& transform) { - fDirectTransform = &transform ; + fDirectTransform = &transform ; } -///////////////////////////////////////////////////////////////////////////// - - - - - ///////////////////////////////////////////////////////////////////////////// G4Transform3D G4ReflectedSolid::GetTransform3D() const { - G4Transform3D aTransform = *fPtrTransform3D; - return aTransform; + G4Transform3D aTransform = *fPtrTransform3D; + return aTransform; } void G4ReflectedSolid::SetTransform3D(G4Transform3D& transform) { - fPtrTransform3D = &transform ; + fPtrTransform3D = &transform ; } ////////////////////////////////////////////////////////////////////////////// G4Transform3D G4ReflectedSolid::GetDirectTransform3D() const { - G4Transform3D aTransform= *fDirectTransform3D; - return aTransform; + G4Transform3D aTransform= *fDirectTransform3D; + return aTransform; } void G4ReflectedSolid::SetDirectTransform3D(G4Transform3D& transform) { - fDirectTransform3D = &transform ; + fDirectTransform3D = &transform ; } ///////////////////////////////////////////////////////////////////////////// G4RotationMatrix G4ReflectedSolid::GetFrameRotation() const { - G4RotationMatrix InvRotation= fDirectTransform->NetRotation(); - return InvRotation; + G4RotationMatrix InvRotation= fDirectTransform->NetRotation(); + return InvRotation; } void G4ReflectedSolid::SetFrameRotation(const G4RotationMatrix& matrix) { - fDirectTransform->SetNetRotation(matrix); + fDirectTransform->SetNetRotation(matrix); } ///////////////////////////////////////////////////////////////////////////// G4ThreeVector G4ReflectedSolid::GetFrameTranslation() const { - return fPtrTransform->NetTranslation(); + return fPtrTransform->NetTranslation(); } void G4ReflectedSolid::SetFrameTranslation(const G4ThreeVector& vector) @@ -219,20 +183,20 @@ void G4ReflectedSolid::SetFrameTranslation(const G4ThreeVector& vector) G4RotationMatrix G4ReflectedSolid::GetObjectRotation() const { - G4RotationMatrix Rotation= fPtrTransform->NetRotation(); - return Rotation; + G4RotationMatrix Rotation= fPtrTransform->NetRotation(); + return Rotation; } void G4ReflectedSolid::SetObjectRotation(const G4RotationMatrix& matrix) { - fPtrTransform->SetNetRotation(matrix); + fPtrTransform->SetNetRotation(matrix); } /////////////////////////////////////////////////////////////////////// G4ThreeVector G4ReflectedSolid::GetObjectTranslation() const { - return fDirectTransform->NetTranslation(); + return fDirectTransform->NetTranslation(); } void G4ReflectedSolid::SetObjectTranslation(const G4ThreeVector& vector) @@ -246,9 +210,9 @@ void G4ReflectedSolid::SetObjectTranslation(const G4ThreeVector& vector) G4bool G4ReflectedSolid::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const { @@ -260,9 +224,12 @@ G4ReflectedSolid::CalculateExtent( const EAxis pAxis, z1 = -kInfinity, z2 = kInfinity; G4bool existsAfterClip = false ; - existsAfterClip = fPtrSolid->CalculateExtent(kXAxis,unLimit,unTransform,x1,x2); - existsAfterClip = fPtrSolid->CalculateExtent(kYAxis,unLimit,unTransform,y1,y2); - existsAfterClip = fPtrSolid->CalculateExtent(kZAxis,unLimit,unTransform,z1,z2); + existsAfterClip = + fPtrSolid->CalculateExtent(kXAxis,unLimit,unTransform,x1,x2); + existsAfterClip = + fPtrSolid->CalculateExtent(kYAxis,unLimit,unTransform,y1,y2); + existsAfterClip = + fPtrSolid->CalculateExtent(kZAxis,unLimit,unTransform,z1,z2); existsAfterClip = false; pMin = +kInfinity ; @@ -324,202 +291,76 @@ G4ReflectedSolid::CalculateExtent( const EAxis pAxis, } else { - G4Exception("G4ReflectedSolid::CalculateExtent - Out of memory !"); + DumpInfo(); + G4Exception("G4ReflectedSolid::CalculateExtent() - Out of memory !"); } - - - 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 ; + existsAfterClip = true ; -// Add 2*tolerance to avoid precision troubles + // Add 2*tolerance to avoid precision troubles - pMin -= kCarTolerance; - pMax += kCarTolerance; + 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); + ( 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); + clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) - // if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) { - pMin = pVoxelLimit.GetMinExtent(pAxis); + pMin = pVoxelLimit.GetMinExtent(pAxis); } - else + else { - pMin -= kCarTolerance; + pMin -= kCarTolerance; } - clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); + clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); if (Inside(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) - // if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) { - pMax = pVoxelLimit.GetMaxExtent(pAxis); + pMax = pVoxelLimit.GetMaxExtent(pAxis); } - else + 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. - + // 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(transform3D.inverse()*G4Point3D(clipCentre)) != kOutside) - // else if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) - { - existsAfterClip = true ; - pMin = pVoxelLimit.GetMinExtent(pAxis) ; - pMax = pVoxelLimit.GetMaxExtent(pAxis) ; - } - } - delete vertices; - return existsAfterClip; - - - - /* ****************************************** - - // General rotated case from G4Tube - - G4int i, noEntries, noBetweenSections4 ; - G4bool existsAfterClip = false ; - G4Point3D refPoint; - G4ThreeVector point; - G4ThreeVectorList* vertices = new G4ThreeVectorList() ; - G4ThreeVectorList* tmpVertices = fPtrSolid->CreateRotatedVertices(pTransform) ; - - pMin = +kInfinity ; - pMax = -kInfinity ; - noEntries = tmpVertices->size() ; - - for(i = 0 ; i < noEntries ; i++ ) - { - point = (*tmpVertices)[i]; - // G4Point3D refPoint = (*fDirectTransform3D)*G4Point3D(point) ; - G4Point3D refPoint = (*fPtrTransform3D)*G4Point3D(point) ; - point = G4ThreeVector(refPoint.x(),refPoint.y(),refPoint.z()); - vertices->push_back(point); - } - noBetweenSections4 = noEntries - 4 ; - - G4cout<CalculateExtent(pAxis,pVoxelLimit,pTransform,min,max) ; - extentR = fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform, - minR,maxR) ; - - // Additional extension, just in case: - - // if( maxR > 0 ) pMax = 2.0*maxR ; - // else pMax = 0.5*maxR ; - // if( minR > 0 ) pMin = 0.5*minR ; - // else pMin = 2.0*minR ; - // maxR = pMax; - // minR = pMin; - - // and John's trick: - - pMin = -maxR ; // minR ; - pMax = -minR ; // maxR ; - return extentR ; - - - ****************************************** */ } - ///////////////////////////////////////////////////// // @@ -531,7 +372,9 @@ EInside G4ReflectedSolid::Inside(const G4ThreeVector& p) const G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; // G4Point3D newPoint = (*fPtrTransform3D)*G4Point3D(p) ; - return fPtrSolid->Inside(G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z())) ; + return fPtrSolid->Inside(G4ThreeVector(newPoint.x(), + newPoint.y(), + newPoint.z())) ; } ////////////////////////////////////////////////////////////// @@ -542,14 +385,14 @@ G4ThreeVector G4ReflectedSolid::SurfaceNormal( const G4ThreeVector& p ) const { G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - G4ThreeVector normal = fPtrSolid->SurfaceNormal(G4ThreeVector(newPoint.x(), - newPoint.y(), - newPoint.z() ) ) ; + G4ThreeVector normal = + fPtrSolid->SurfaceNormal(G4ThreeVector(newPoint.x(), + newPoint.y(), + newPoint.z() ) ) ; G4Point3D newN = (*fDirectTransform3D)*G4Point3D(normal) ; newN.unit() ; - return G4ThreeVector(newN.x(),newN.y(),newN.z()) ; - + return G4ThreeVector(newN.x(),newN.y(),newN.z()) ; } ///////////////////////////////////////////////////////////// @@ -587,10 +430,10 @@ G4ReflectedSolid::DistanceToIn( const G4ThreeVector& p) const G4double G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { G4ThreeVector solNorm ; @@ -598,10 +441,11 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, G4Point3D newDirection = (*fDirectTransform3D)*G4Point3D(v) ; newDirection.unit() ; - G4double dist = fPtrSolid->DistanceToOut( - G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z()), - G4ThreeVector(newDirection.x(),newDirection.y(),newDirection.z()), - calcNorm,validNorm,&solNorm) ; + G4double dist = + fPtrSolid->DistanceToOut( + G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z()), + G4ThreeVector(newDirection.x(),newDirection.y(),newDirection.z()), + calcNorm, validNorm, &solNorm) ; if(calcNorm) { G4Point3D newN = (*fDirectTransform3D)*G4Point3D(solNorm) ; @@ -628,13 +472,38 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p ) const // void -G4ReflectedSolid::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep ) +G4ReflectedSolid::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ) { - // fPtrSolid->ComputeDimensions(p,n,pRep); + DumpInfo(); + G4Exception("G4ReflectedSolid::ComputeDimensions() - has no meaning!"); +} - G4Exception("ERROR: ComputeDimensions has no meaning for a G4ReflectedSolid. It cannot be called."); +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4ReflectedSolid::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for Reflected solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: " << GetEntityType() << "\n" + << " Parameters of constituent solid: \n" + << "===========================================================\n"; + fPtrSolid->StreamInfo(os); + os << "===========================================================\n" + << " Transformations: \n" + << " Direct transformation - translation : \n" + << " " << fDirectTransform->NetTranslation() << "\n" + << " - rotation : \n" + << " "; + fDirectTransform->NetRotation().print(os); + os << "\n" + << "===========================================================\n"; + + return os; } ///////////////////////////////////////////////// diff --git a/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc b/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc index 0df88d6893..cee4d98168 100644 --- a/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc +++ b/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReflectionFactory.cc,v 1.3 2002/02/07 13:15:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReflectionFactory.cc,v 1.4 2002/10/28 11:36:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Ivana Hrivnacova, 16.10.2001 (Ivana.Hrivnacova@cern.ch) @@ -46,10 +46,10 @@ // x(inV) = TD * x(inD); // x(inM) = TGV * x(inV) // = TV * R * x(inV) -// = TV * R * TD * x(inD) -// = TV * R*TD*R-1 * R*x(inD) -// = TV * ReflTD * x(inReflD) - +// = TV * R * TD * x(inD) +// = TV * R*TD*R-1 * R*x(inD) +// = TV * ReflTD * x(inReflD) +// ******************************************************************** #include "G4ReflectionFactory.hh" #include "G4ReflectedSolid.hh" @@ -62,10 +62,11 @@ const G4String G4ReflectionFactory::fNameExtension = "_refl"; const G4Scale3D G4ReflectionFactory::fScale = G4ScaleZ3D(-1.0); //_____________________________________________________________________________ + G4ReflectionFactory* G4ReflectionFactory::Instance() { -// Static singleton access method. -// --- + // Static singleton access method. + // --- if (!fInstance) new G4ReflectionFactory(); @@ -73,17 +74,20 @@ G4ReflectionFactory* G4ReflectionFactory::Instance() } //_____________________________________________________________________________ + G4ReflectionFactory::G4ReflectionFactory() : fVerboseLevel(0) { -// Protected singleton constructor. -// --- + // Protected singleton constructor. + // --- fInstance = this; } //_____________________________________________________________________________ -G4ReflectionFactory::~G4ReflectionFactory() { + +G4ReflectionFactory::~G4ReflectionFactory() +{ } // @@ -91,26 +95,28 @@ G4ReflectionFactory::~G4ReflectionFactory() { // //_____________________________________________________________________________ -G4PhysicalVolumesPair G4ReflectionFactory::Place( - const G4Transform3D& transform3D, - const G4String& name, - G4LogicalVolume* LV, - G4LogicalVolume* motherLV, - G4bool isMany, - G4int copyNo) -{ -// Evaluates the passed transformation; if it contains reflection -// it performs its decomposition, creates new reflected solid and -// logical volume (or retrieves them from a map if the reflected -// objects were already created), transforms the daughters (if present) -// and place it in the given mother. -// The result is a pair of physical volumes; -// the second physical volume is a placement in a reflected mother -// - or 0 if mother LV was not reflected. -// --- - if (fVerboseLevel>0) { - G4cout << "Place " << name << " lv " << LV << " " +G4PhysicalVolumesPair +G4ReflectionFactory::Place( const G4Transform3D& transform3D, + const G4String& name, + G4LogicalVolume* LV, + G4LogicalVolume* motherLV, + G4bool isMany, + G4int copyNo) +{ + // Evaluates the passed transformation; if it contains reflection + // it performs its decomposition, creates new reflected solid and + // logical volume (or retrieves them from a map if the reflected + // objects were already created), transforms the daughters (if present) + // and place it in the given mother. + // The result is a pair of physical volumes; + // the second physical volume is a placement in a reflected mother + // - or 0 if mother LV was not reflected. + // --- + + if (fVerboseLevel>0) + { + G4cout << "Place " << name << " lv " << LV << " " << LV->GetName() << G4endl; } @@ -126,33 +132,34 @@ G4PhysicalVolumesPair G4ReflectionFactory::Place( //PrintTransform(pureTransform3D); // check that scale correspond to fScale + // CheckScale(scale); // // reflection IS NOT present in transform3D // - if (! IsReflection(scale)) { + if (! IsReflection(scale)) + { if (fVerboseLevel>0) - G4cout << "scale positive" << G4endl; + G4cout << "Scale positive" << G4endl; G4VPhysicalVolume* pv1 = new G4PVPlacement(pureTransform3D, LV, name, motherLV, isMany, copyNo); G4VPhysicalVolume* pv2 = 0; - if (G4LogicalVolume* reflMotherLV = GetReflectedLV(motherLV)) { - + if (G4LogicalVolume* reflMotherLV = GetReflectedLV(motherLV)) + { // if mother was reflected // reflect this LV and place it in reflected mother - pv2 = new G4PVPlacement( - fScale * (pureTransform3D * fScale.inverse()), - ReflectLV(LV), name, reflMotherLV, isMany, copyNo); + pv2 = new G4PVPlacement(fScale * (pureTransform3D * fScale.inverse()), + ReflectLV(LV),name,reflMotherLV,isMany,copyNo); } - - return G4PhysicalVolumesPair(pv1, pv2); - } - + + return G4PhysicalVolumesPair(pv1, pv2); + } + // // reflection IS present in transform3D // @@ -165,33 +172,36 @@ G4PhysicalVolumesPair G4ReflectionFactory::Place( ReflectLV(LV), name, motherLV, isMany, copyNo); G4VPhysicalVolume* pv2 = 0; - if (G4LogicalVolume* reflMotherLV = GetReflectedLV(motherLV)) { + if (G4LogicalVolume* reflMotherLV = GetReflectedLV(motherLV)) + { // if mother was reflected // place the refLV consituent in reflected mother pv2 = new G4PVPlacement(fScale * (pureTransform3D * fScale.inverse()), LV, name, reflMotherLV, isMany, copyNo); - } + } return G4PhysicalVolumesPair(pv1, pv2); -} +} //_____________________________________________________________________________ -G4PhysicalVolumesPair G4ReflectionFactory::Replicate(const G4String& name, - G4LogicalVolume* LV, - G4LogicalVolume* motherLV, - EAxis axis, - G4int nofReplicas, - G4double width, - G4double offset) + +G4PhysicalVolumesPair +G4ReflectionFactory::Replicate(const G4String& name, + G4LogicalVolume* LV, + G4LogicalVolume* motherLV, + EAxis axis, + G4int nofReplicas, + G4double width, + G4double offset) { -// Creates replica in given mother. -// The result is a pair of physical volumes; -// the second physical volume is a replica in a reflected mother -// - or 0 if mother LV was not reflected. -// --- + // Creates replica in given mother. + // The result is a pair of physical volumes; + // the second physical volume is a replica in a reflected mother + // - or 0 if mother LV was not reflected. + // --- if (fVerboseLevel>0) { G4cout << "Replicate " << name << " lv " << LV << " " @@ -202,114 +212,135 @@ G4PhysicalVolumesPair G4ReflectionFactory::Replicate(const G4String& name, = new G4PVReplica(name, LV, motherLV, axis, nofReplicas, width, offset); G4VPhysicalVolume* pv2 = 0; - if (G4LogicalVolume* reflMotherLV = GetReflectedLV(motherLV)) { - + if (G4LogicalVolume* reflMotherLV = GetReflectedLV(motherLV)) + { // if mother was reflected // reflect the LV and replicate it in reflected mother pv2 = new G4PVReplica(name, ReflectLV(LV), reflMotherLV, axis, nofReplicas, width, offset); } - - return G4PhysicalVolumesPair(pv1, pv2); -} - - + + return G4PhysicalVolumesPair(pv1, pv2); +} + + // // private methods // //_____________________________________________________________________________ + G4LogicalVolume* G4ReflectionFactory::ReflectLV(G4LogicalVolume* LV) { -// Gets/creates the reflected solid and logical volume -// and copies + transforms LV daughters. -// --- + // Gets/creates the reflected solid and logical volume + // and copies + transforms LV daughters. + // --- G4LogicalVolume* refLV = GetReflectedLV(LV); - if (!refLV) { + if (!refLV) + { // create new (reflected) objects + // refLV = CreateReflectedLV(LV); - + // process daughters + // ReflectDaughters(LV, refLV); } return refLV; -} +} //_____________________________________________________________________________ + G4LogicalVolume* G4ReflectionFactory::CreateReflectedLV(G4LogicalVolume* LV) { -// Creates the reflected solid and logical volume -// and add the logical volumes pair in the maps. -// --- + // Creates the reflected solid and logical volume + // and add the logical volumes pair in the maps. + // --- // consistency check - if (fReflectedLVMap.find(LV) != fReflectedLVMap.end()) { - G4Exception( - "G4ReflectionFactory::CreateReflectedLV: called for already reflected volume!"); + // + if (fReflectedLVMap.find(LV) != fReflectedLVMap.end()) + { + G4cout << "ERROR - G4ReflectionFactory::CreateReflectedLV(): " + << LV->GetName() << G4endl + << " Cannot be applied to an already reflected volume !" + << G4endl; + G4cerr << "ERROR - G4ReflectionFactory::CreateReflectedLV(): " + << LV->GetName() << G4endl + << " Cannot be applied to an already reflected volume !" + << G4endl; + G4Exception("G4ReflectionFactory::CreateReflectedLV() - Invalid call"); } - + G4VSolid* refSolid = new G4ReflectedSolid(LV->GetSolid()->GetName() + fNameExtension, LV->GetSolid(), fScale); G4LogicalVolume* refLV = new G4LogicalVolume(refSolid, - LV->GetMaterial(), - LV->GetName() + fNameExtension, - LV->GetFieldManager(), - LV->GetSensitiveDetector(), - LV->GetUserLimits()); - + LV->GetMaterial(), + LV->GetName() + fNameExtension, + LV->GetFieldManager(), + LV->GetSensitiveDetector(), + LV->GetUserLimits()); + fConstituentLVMap[LV] = refLV; fReflectedLVMap[refLV] = LV; - return refLV; + return refLV; } //_____________________________________________________________________________ + void G4ReflectionFactory::ReflectDaughters(G4LogicalVolume* LV, G4LogicalVolume* refLV) { -// Reflects daughters recursively. -// --- + // Reflects daughters recursively. + // --- - if (fVerboseLevel>0) { - G4cout << "G4ReflectionFactory::ReflectDaughters: " + if (fVerboseLevel>0) + { + G4cout << "G4ReflectionFactory::ReflectDaughters(): " << LV->GetNoDaughters() << " of " << LV->GetName() << G4endl; - } + } - for (G4int i=0; iGetNoDaughters(); i++) { - + for (G4int i=0; iGetNoDaughters(); i++) + { G4VPhysicalVolume* dPV = LV->GetDaughter(i); - if (! dPV->IsReplicated()) { + if (! dPV->IsReplicated()) + { ReflectPVPlacement(dPV, refLV); } - else if (! dPV->GetParameterisation()) { - ReflectPVReplica(dPV, refLV); - } - else { - ReflectPVParameterised(dPV, refLV); - } - } -} - + else if (! dPV->GetParameterisation()) + { + ReflectPVReplica(dPV, refLV); + } + else + { + ReflectPVParameterised(dPV, refLV); + } + } +} + //_____________________________________________________________________________ + void G4ReflectionFactory::ReflectPVPlacement(G4VPhysicalVolume* dPV, G4LogicalVolume* refLV) { -// Copies and transforms daughter of PVPlacement type of -// a constituent volume into a reflected volume. -// --- + // Copies and transforms daughter of PVPlacement type of + // a constituent volume into a reflected volume. + // --- G4LogicalVolume* dLV = dPV->GetLogicalVolume(); // update daughter transformation + // G4Transform3D dt(dPV->GetObjectRotationValue(), dPV->GetObjectTranslation()); dt = fScale * (dt * fScale.inverse()); @@ -318,19 +349,24 @@ void G4ReflectionFactory::ReflectPVPlacement(G4VPhysicalVolume* dPV, if (fVerboseLevel>0) G4cout << "Daughter: " << dPV << " " << dLV->GetName(); - if (!IsReflected(dLV)) { + if (!IsReflected(dLV)) + { if (fVerboseLevel>0) G4cout << " will be reflected." << G4endl; // get reflected volume if already created + // refDLV = GetReflectedLV(dLV); - if (!refDLV) { + if (!refDLV) + { // create new daughter solid and logical volume + // refDLV = CreateReflectedLV(dLV); // recursive call + // ReflectDaughters(dLV, refDLV); } @@ -341,9 +377,10 @@ void G4ReflectionFactory::ReflectPVPlacement(G4VPhysicalVolume* dPV, dPV->IsMany(), dPV->GetCopyNo()); } - else { + else + { if (fVerboseLevel>0) - G4cout << " will be reconstited." << G4endl; + G4cout << " will be reconstitued." << G4endl; refDLV = GetConstituentLV(dLV); @@ -353,16 +390,18 @@ void G4ReflectionFactory::ReflectPVPlacement(G4VPhysicalVolume* dPV, } //_____________________________________________________________________________ + void G4ReflectionFactory::ReflectPVReplica(G4VPhysicalVolume* dPV, G4LogicalVolume* refLV) { -// Copies and transforms daughter of PVReplica type of -// a constituent volume into a reflected volume. -// --- + // Copies and transforms daughter of PVReplica type of + // a constituent volume into a reflected volume. + // --- G4LogicalVolume* dLV = dPV->GetLogicalVolume(); // get replication data + // EAxis axis; G4int nofReplicas; G4double width; @@ -376,31 +415,35 @@ void G4ReflectionFactory::ReflectPVReplica(G4VPhysicalVolume* dPV, if (fVerboseLevel>0) G4cout << "Daughter: " << dPV << " " << dLV->GetName(); - if (!IsReflected(dLV)) { - + if (!IsReflected(dLV)) + { if (fVerboseLevel>0) G4cout << " will be reflected." << G4endl; // get reflected volume if already created + // refDLV = GetReflectedLV(dLV); - if (!refDLV) { + if (!refDLV) + { // create new daughter solid and logical volume + // refDLV = CreateReflectedLV(dLV); // recursive call + // ReflectDaughters(dLV, refDLV); } // create new daughter replica - + // new G4PVReplica(dPV->GetName(), refDLV, refLV, - axis, nofReplicas, width, offset); - - } - else { + axis, nofReplicas, width, offset); + } + else + { if (fVerboseLevel>0) - G4cout << " will be reconstited." << G4endl; + G4cout << " will be reconstitued." << G4endl; refDLV = GetConstituentLV(dLV); @@ -410,74 +453,86 @@ void G4ReflectionFactory::ReflectPVReplica(G4VPhysicalVolume* dPV, } //_____________________________________________________________________________ + void G4ReflectionFactory::ReflectPVParameterised(G4VPhysicalVolume* dPV, - G4LogicalVolume* refLV) + G4LogicalVolume* refLV) { -// Not implemented. -// Should copy and transform daughter of PVReplica type of -// a constituent volume into a reflected volume. -// --- - - G4Exception( - "G4ReflectionFactory: Parameterised volumes cannot be reflected yet."); + // Not implemented. + // Should copy and transform daughter of PVReplica type of + // a constituent volume into a reflected volume. + // --- + G4cout << "ERROR - G4ReflectionFactory::ReflectPVParameterised(): " + << dPV->GetName() << G4endl + << " Reflection of parameterised volumes " + << "is not yet implemented." << G4endl; + G4cerr << "ERROR - G4ReflectionFactory::ReflectPVParameterised(): " + << dPV->GetName() << G4endl + << " Reflection of parameterised volumes " + << "is not yet implemented." << G4endl; + G4Exception("G4ReflectionFactory::ReflectPVParameterised() - not implemented"); } //_____________________________________________________________________________ -G4LogicalVolume* G4ReflectionFactory::GetConstituentLV( - G4LogicalVolume* reflLV) const -{ -// Returns the consituent volume of the given reflected volume, -// 0 if the given reflected volume was not found. -// --- + +G4LogicalVolume* +G4ReflectionFactory::GetConstituentLV(G4LogicalVolume* reflLV) const +{ + // Returns the consituent volume of the given reflected volume, + // 0 if the given reflected volume was not found. + // --- LogicalVolumesMapIterator it = fReflectedLVMap.find(reflLV); if (it == fReflectedLVMap.end()) return 0; return (*it).second; -} +} //_____________________________________________________________________________ -G4LogicalVolume* G4ReflectionFactory::GetReflectedLV( - G4LogicalVolume* lv) const -{ -// Returns the reflected volume of the given consituent volume, -// 0 if the given volume was not reflected. -// --- + +G4LogicalVolume* +G4ReflectionFactory::GetReflectedLV(G4LogicalVolume* lv) const +{ + // Returns the reflected volume of the given consituent volume, + // 0 if the given volume was not reflected. + // --- LogicalVolumesMapIterator it = fConstituentLVMap.find(lv); if (it == fConstituentLVMap.end()) return 0; return (*it).second; -} +} //_____________________________________________________________________________ + G4bool G4ReflectionFactory::IsConstituent(G4LogicalVolume* lv) const { -// Returns true if the given volume has been already reflected -// (is in the map of constituent volumes). -// --- + // Returns true if the given volume has been already reflected + // (is in the map of constituent volumes). + // --- return (fConstituentLVMap.find(lv) != fConstituentLVMap.end()); } //_____________________________________________________________________________ + G4bool G4ReflectionFactory::IsReflected(G4LogicalVolume* lv) const { -// Returns true if the given volume is a reflected volume -// (is in the map reflected volumes). -// --- + // Returns true if the given volume is a reflected volume + // (is in the map reflected volumes). + // --- return (fReflectedLVMap.find(lv) != fReflectedLVMap.end()); } //_____________________________________________________________________________ + G4bool G4ReflectionFactory::IsReflection(const G4Scale3D& scale) const { -// Returns true if the scale is negative, false otherwise. -// --- + // Returns true if the scale is negative, false otherwise. + // --- if (scale(0,0)*scale(1,1)*scale(2,2) < 0.) return true; @@ -486,24 +541,27 @@ G4bool G4ReflectionFactory::IsReflection(const G4Scale3D& scale) const } //_____________________________________________________________________________ + void G4ReflectionFactory::PrintConstituentLVMap() { -// temporary - for debugging purpose -// --- + // temporary - for debugging purpose + // --- LogicalVolumesMapIterator it; - for (it = fConstituentLVMap.begin(); it != fConstituentLVMap.end(); it++) { - G4cout << "lv: " << (*it).first << " lv_refl: " << (*it).second << G4endl; + for (it = fConstituentLVMap.begin(); it != fConstituentLVMap.end(); it++) + { + G4cout << "lv: " << (*it).first << " lv_refl: " << (*it).second << G4endl; } G4cout << G4endl; } //_____________________________________________________________________________ + void G4ReflectionFactory::CheckScale(const G4Scale3D& scale) const { -// Check if scale correspond to fScale, -// if not give exception. -// --- + // Check if scale correspond to fScale, + // if not give exception. + // --- if (!IsReflection(scale)) return; @@ -513,14 +571,20 @@ void G4ReflectionFactory::CheckScale(const G4Scale3D& scale) const diff += abs(scale(i,j) - fScale(i,j)); if (diff > kCarTolerance) - G4Exception("G4ReflectionFactory::CheckScale: unexpected scale has occured."); + { + G4cout << "ERROR - G4ReflectionFactory::CheckScale()" << G4endl + << " Unexpected scale. Difference: " << diff << G4endl; + G4cerr << "ERROR - G4ReflectionFactory::CheckScale()" << G4endl + << " Unexpected scale. Difference: " << diff << G4endl; + G4Exception("G4ReflectionFactory::CheckScale() - unexpected scale"); + } } void G4ReflectionFactory::SetVerboseLevel(G4int verboseLevel) { fVerboseLevel = verboseLevel; } - + G4int G4ReflectionFactory::GetVerboseLevel() const { return fVerboseLevel; @@ -532,5 +596,5 @@ G4int G4ReflectionFactory::GetVerboseLevel() const G4VPhysicalVolume* pv1 = new G4PVPlacement(new G4RotationMatrix(rotation.getRotation().inverse()), translation.getTranslation(), - refLV, name, motherLV, isMany, copyNo); -*/ + refLV, name, motherLV, isMany, copyNo); +*/ diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index 9d8d1fd6e8..cd80400437 100644 --- a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc @@ -21,24 +21,22 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.cc,v 1.16 2002/01/10 15:34:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SubtractionSolid.cc,v 1.17 2002/10/28 11:36:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation of methods for the class G4IntersectionSolid // // History: // -// 14.10.98 V.Grichine, implementation of the first version -// 19.10.98 V.Grichine, new algorithm of DistanceToIn(p,v) according to -// J.Apostolakis recommendations (while loops) -// 02.08.99 V.Grichine, bugs fixed in DistanceToOut(p,v,...) +// 14.10.98 V.Grichine: implementation of the first version +// 19.10.98 V.Grichine: new algorithm of DistanceToIn(p,v) +// 02.08.99 V.Grichine: bugs fixed in DistanceToOut(p,v,...) // while -> do-while & surfaceA limitations -// 13.09.00 V.Grichine, bug fixed in SurfaceNormal(p), p can be inside -// +// 13.09.00 V.Grichine: bug fixed in SurfaceNormal(p), p can be inside // +// ******************************************************************** #include "G4SubtractionSolid.hh" -// #include "G4DisplacedSolid.hh" #include "G4RotationMatrix.hh" #include "G4ThreeVector.hh" @@ -58,71 +56,70 @@ // Transfer all data members to G4BooleanSolid which is responsible // for them. pName will be in turn sent to G4VSolid -G4SubtractionSolid:: G4SubtractionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB ): -G4BooleanSolid(pName,pSolidA,pSolidB) +G4SubtractionSolid::G4SubtractionSolid( const G4String& pName, + G4VSolid* pSolidA , + G4VSolid* pSolidB ) + : G4BooleanSolid(pName,pSolidA,pSolidB) { - ; } /////////////////////////////////////////////////////////////// // -// +// Constructor -G4SubtractionSolid:: -G4SubtractionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB , - G4RotationMatrix* rotMatrix, - const G4ThreeVector& transVector ): -G4BooleanSolid(pName,pSolidA,pSolidB,rotMatrix,transVector) +G4SubtractionSolid::G4SubtractionSolid( const G4String& pName, + G4VSolid* pSolidA , + G4VSolid* pSolidB , + G4RotationMatrix* rotMatrix, + const G4ThreeVector& transVector ) + : G4BooleanSolid(pName,pSolidA,pSolidB,rotMatrix,transVector) { - ; } /////////////////////////////////////////////////////////////// // -// +// Constructor -G4SubtractionSolid:: -G4SubtractionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB , - const G4Transform3D& transform ): -G4BooleanSolid(pName,pSolidA,pSolidB,transform) +G4SubtractionSolid::G4SubtractionSolid( const G4String& pName, + G4VSolid* pSolidA , + G4VSolid* pSolidB , + const G4Transform3D& transform ) + : G4BooleanSolid(pName,pSolidA,pSolidB,transform) { - ; -} +} +/////////////////////////////////////////////////////////////// +// +// Destructor + G4SubtractionSolid::~G4SubtractionSolid() { - ; } /////////////////////////////////////////////////////////////// // -// +// CalculateExtent G4bool -G4SubtractionSolid::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const +G4SubtractionSolid::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, + G4double& pMax ) const { // Since we cannot be sure how much the second solid subtracts // from the first, we must use the first solid's extent! return fPtrSolidA->CalculateExtent( pAxis, pVoxelLimit, - pTransform, pMin, pMax); + pTransform, pMin, pMax ); } ///////////////////////////////////////////////////// // // Touching ? Empty subtraction ? -EInside G4SubtractionSolid::Inside(const G4ThreeVector& p) const +EInside G4SubtractionSolid::Inside( const G4ThreeVector& p ) const { EInside positionA = fPtrSolidA->Inside(p) ; EInside positionB = fPtrSolidB->Inside(p) ; @@ -148,7 +145,7 @@ EInside G4SubtractionSolid::Inside(const G4ThreeVector& p) const ////////////////////////////////////////////////////////////// // -// +// SurfaceNormal G4ThreeVector G4SubtractionSolid::SurfaceNormal( const G4ThreeVector& p ) const @@ -157,10 +154,14 @@ G4SubtractionSolid::SurfaceNormal( const G4ThreeVector& p ) const if( Inside(p) == kOutside ) { #ifdef G4BOOLDEBUG - G4cout << "WARNING - Invalid call in G4SubtractionSolid::SurfaceNormal(p)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call [1] in " + << "G4SubtractionSolid::SurfaceNormal(p)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4SubtractionSolid::SurfaceNormal(p), p is outside") ; + G4cerr << "WARNING - Invalid call [1] in " + << "G4SubtractionSolid::SurfaceNormal(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; #endif } else @@ -186,7 +187,14 @@ G4SubtractionSolid::SurfaceNormal( const G4ThreeVector& p ) const normal = -fPtrSolidB->SurfaceNormal(p) ; } #ifdef G4BOOLDEBUG - G4cout << "G4SubtractionSolid::SurfaceNormal(p), point p is inside" << G4endl ; + G4cout << "WARNING - Invalid call [2] in " + << "G4SubtractionSolid::SurfaceNormal(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cout << " p = " << p << G4endl; + G4cerr << "WARNING - Invalid call [2] in " + << "G4SubtractionSolid::SurfaceNormal(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; #endif } } @@ -206,17 +214,21 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p, #ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToIn(p,v)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToIn(p,v)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; G4cout << " v = " << v << G4endl; - // G4Exception("Invalid call in G4SubtractionSolid::DistanceToIn(p,v), p is inside") ; + G4cerr << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToIn(p,v)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; + G4cerr << " v = " << v << G4endl; } #endif - if( // ( fPtrSolidA->Inside(p) != kOutside) && // case1:p in both A&B - - ( fPtrSolidB->Inside(p) != kOutside) ) // start: out of B + // if( // ( fPtrSolidA->Inside(p) != kOutside) && // case1:p in both A&B + if ( fPtrSolidB->Inside(p) != kOutside ) // start: out of B { dist = fPtrSolidB->DistanceToOut(p,v) ; // ,calcNorm,validNorm,n) ; @@ -229,19 +241,19 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p, if(disTmp == kInfinity) { return kInfinity ; - } + } dist += disTmp ; if( Inside(p+dist*v) == kOutside ) - { + { disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; dist += disTmp ; - } + } } while( Inside(p+dist*v) == kOutside ) ; } } - else // p outside A, start in A + else // p outside A, start in A { dist = fPtrSolidA->DistanceToIn(p,v) ; @@ -251,24 +263,22 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p, } else { - while( Inside(p+dist*v) == kOutside ) // pushing loop - // do - { + while( Inside(p+dist*v) == kOutside ) // pushing loop + { disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v) ; dist += disTmp ; if( Inside(p+dist*v) == kOutside ) - { + { disTmp = fPtrSolidA->DistanceToIn(p+dist*v,v) ; if(disTmp == kInfinity) // past A, hence past A\B { return kInfinity ; - } + } dist += disTmp ; - } - } - // while( Inside(p+dist*v) == kOutside ) ; + } + } } } @@ -282,17 +292,21 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p, // isotropic safety G4double -G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p) const +G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p ) const { G4double dist; #ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToIn(p)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToIn(p)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4SubtractionSolid::DistanceToIn(p), p is inside") ; + G4cerr << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToIn(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; } #endif @@ -315,10 +329,10 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p) const G4double G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { #ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) @@ -331,11 +345,16 @@ G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p, G4cout << "v.x() = " << v.x() << G4endl; G4cout << "v.y() = " << v.y() << G4endl; G4cout << "v.z() = " << v.z() << G4endl << G4endl; - G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToOut(p,v)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToOut(p,v)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; G4cout << " v = " << v << G4endl; - // G4Exception("Invalid call in G4SubtractionSolid::DistanceToOut(p,v), p is outside") ; + G4cerr << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToOut(p,v)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; + G4cerr << " v = " << v << G4endl; } #endif @@ -370,10 +389,14 @@ G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p ) const if( Inside(p) == kOutside ) { #ifdef G4BOOLDEBUG - G4cout << "WARNING - Invalid call in G4SubtractionSolid::DistanceToOut(p)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToOut(p)" << G4endl + << " Point p is outside" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4SubtractionSolid::DistanceToOut(p), p is outside") ; + G4cerr << "WARNING - Invalid call in " + << "G4SubtractionSolid::DistanceToOut(p)" << G4endl + << " Point p is outside" << G4endl; + G4cerr << " p = " << p << G4endl; #endif } else @@ -398,11 +421,10 @@ G4GeometryType G4SubtractionSolid::GetEntityType() const // void -G4SubtractionSolid::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep ) +G4SubtractionSolid::ComputeDimensions( G4VPVParameterisation*, + const G4int, + const G4VPhysicalVolume* ) { - return ; } ///////////////////////////////////////////////// @@ -435,7 +457,7 @@ G4SubtractionSolid::CreatePolyhedron () const // G4NURBS* -G4SubtractionSolid::CreateNURBS () const +G4SubtractionSolid::CreateNURBS () const { // Take into account boolean operation - see CreatePolyhedron. // return new G4NURBSbox (1.0, 1.0, 1.0); diff --git a/source/geometry/solids/Boolean/src/G4UnionSolid.cc b/source/geometry/solids/Boolean/src/G4UnionSolid.cc index d26badd368..a79d9aea62 100644 --- a/source/geometry/solids/Boolean/src/G4UnionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4UnionSolid.cc @@ -21,22 +21,21 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.cc,v 1.20 2002/01/10 15:34:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnionSolid.cc,v 1.21 2002/10/28 11:36:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation of methods for the class G4IntersectionSolid // // History: // -// 12.09.98 V.Grichine, implementation -// 28.11.98 V.Grichine, J. Apostolakis, while loops in DistToIn/Out -// 27.07.99 V.Grichine, modifications in Distance ToOut(p,v,...) -// while -> do-while -// 16.03.01 V.Grichine, modifications in CalculateExtent() -// based on D.Williams proposal +// 12.09.98 V.Grichine: first implementation +// 28.11.98 V.Grichine: fix while loops in DistToIn/Out +// 27.07.99 V.Grichine: modifications in DistToOut(p,v,...), while -> do-while +// 16.03.01 V.Grichine: modifications in CalculateExtent() +// +// ******************************************************************** #include "G4UnionSolid.hh" -// #include "G4PlacedSolid.hh" #include "G4RotationMatrix.hh" #include "G4ThreeVector.hh" @@ -57,47 +56,45 @@ // for them. pName will be in turn sent to G4VSolid G4UnionSolid:: G4UnionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB ): -G4BooleanSolid(pName,pSolidA,pSolidB) + G4VSolid* pSolidA , + G4VSolid* pSolidB ) + : G4BooleanSolid(pName,pSolidA,pSolidB) { - ; } ///////////////////////////////////////////////////////////////////// // -// +// Constructor -G4UnionSolid:: G4UnionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB , - G4RotationMatrix* rotMatrix, - const G4ThreeVector& transVector ): -G4BooleanSolid(pName,pSolidA,pSolidB,rotMatrix,transVector) +G4UnionSolid::G4UnionSolid( const G4String& pName, + G4VSolid* pSolidA , + G4VSolid* pSolidB , + G4RotationMatrix* rotMatrix, + const G4ThreeVector& transVector ) + : G4BooleanSolid(pName,pSolidA,pSolidB,rotMatrix,transVector) { - ; } /////////////////////////////////////////////////////////// // -// +// Constructor -G4UnionSolid:: G4UnionSolid( const G4String& pName, - G4VSolid* pSolidA , - G4VSolid* pSolidB , - const G4Transform3D& transform ): -G4BooleanSolid(pName,pSolidA,pSolidB,transform) - +G4UnionSolid::G4UnionSolid( const G4String& pName, + G4VSolid* pSolidA , + G4VSolid* pSolidB , + const G4Transform3D& transform ) + : G4BooleanSolid(pName,pSolidA,pSolidB,transform) { - ; } +/////////////////////////////////////////////////////////// +// +// Destructor G4UnionSolid::~G4UnionSolid() { - ; } /////////////////////////////////////////////////////////////// @@ -105,10 +102,11 @@ G4UnionSolid::~G4UnionSolid() // G4bool -G4UnionSolid::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const +G4UnionSolid::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, + G4double& pMax ) const { G4bool touchesA, touchesB, out ; G4double minA = kInfinity, minB = kInfinity, @@ -135,7 +133,7 @@ G4UnionSolid::CalculateExtent(const EAxis pAxis, // surface the surface points will be considered as kSurface, while points // located around will correspond to kInside -EInside G4UnionSolid::Inside(const G4ThreeVector& p) const +EInside G4UnionSolid::Inside( const G4ThreeVector& p ) const { EInside positionA = fPtrSolidA->Inside(p) ; EInside positionB = fPtrSolidB->Inside(p) ; @@ -171,10 +169,14 @@ G4UnionSolid::SurfaceNormal( const G4ThreeVector& p ) const #ifdef G4BOOLDEBUG if( Inside(p) == kOutside ) { - G4cout << "WARNING - Invalid call in G4UnionSolid::SurfaceNormal(p)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4UnionSolid::SurfaceNormal(p)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4UnionSolid::SurfaceNormal(p), p is outside") ; + G4cerr << "WARNING - Invalid call in " + << "G4UnionSolid::SurfaceNormal(p)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; } #endif @@ -191,10 +193,14 @@ G4UnionSolid::SurfaceNormal( const G4ThreeVector& p ) const { normal= fPtrSolidA->SurfaceNormal(p) ; #ifdef G4BOOLDEBUG - G4cout << "WARNING - Invalid call in G4UnionSolid::SurfaceNormal(p)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4UnionSolid::SurfaceNormal(p)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4UnionSolid::SurfaceNormal(p), p is inside") ; + G4cerr << "WARNING - Invalid call in " + << "G4UnionSolid::SurfaceNormal(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; #endif } return normal; @@ -211,11 +217,16 @@ G4UnionSolid::DistanceToIn( const G4ThreeVector& p, #ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToIn(p,v)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToIn(p,v)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; G4cout << " v = " << v << G4endl; - // G4Exception("Invalid call in G4UnionSolid::DistanceToIn(p,v), point p is intside"); + G4cerr << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToIn(p,v)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; + G4cerr << " v = " << v << G4endl; } #endif @@ -234,10 +245,14 @@ G4UnionSolid::DistanceToIn( const G4ThreeVector& p) const #ifdef G4BOOLDEBUG if( Inside(p) == kInside ) { - G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToIn(p)," - << " point p is inside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToIn(p)" << G4endl + << " Point p is inside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4UnionSolid::DistanceToIn(p), p is inside") ; + G4cerr << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToIn(p)" << G4endl + << " Point p is inside !" << G4endl; + G4cerr << " p = " << p << G4endl; } #endif G4double distA = fPtrSolidA->DistanceToIn(p) ; @@ -253,10 +268,10 @@ G4UnionSolid::DistanceToIn( const G4ThreeVector& p) const G4double G4UnionSolid::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { G4double dist = 0.0, disTmp = 0.0 ; G4ThreeVector normTmp; @@ -273,11 +288,16 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p, G4cout << "v.x() = " << v.x() << G4endl; G4cout << "v.y() = " << v.y() << G4endl; G4cout << "v.z() = " << v.z() << G4endl << G4endl; - G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToOut(p,v)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToOut(p,v)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; G4cout << " v = " << v << G4endl; - // G4Exception("Invalid call in G4UnionSolid::DistanceToOut(p,v), point p is outside"); + G4cerr << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToOut(p,v)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; + G4cerr << " v = " << v << G4endl; #endif } else @@ -294,11 +314,11 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p, dist += disTmp ; if(fPtrSolidB->Inside(p+dist*v) != kOutside) - { + { disTmp = fPtrSolidB->DistanceToOut(p+dist*v,v,calcNorm, validNorm,nTmp) ; dist += disTmp ; - } + } } // while( Inside(p+dist*v) == kInside ) ; while( fPtrSolidA->Inside(p+dist*v) != kOutside && @@ -313,15 +333,15 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p, dist += disTmp ; if(fPtrSolidA->Inside(p+dist*v) != kOutside) - { + { disTmp = fPtrSolidA->DistanceToOut(p+dist*v,v,calcNorm, validNorm,nTmp) ; dist += disTmp ; - } + } } // while( Inside(p+dist*v) == kInside ) ; - while( fPtrSolidB->Inside(p+dist*v) != kOutside && - disTmp > 0.5*kCarTolerance ) ; + while( (fPtrSolidB->Inside(p+dist*v) != kOutside) + && (disTmp > 0.5*kCarTolerance) ) ; } } if( calcNorm ) @@ -343,10 +363,14 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p ) const if( Inside(p) == kOutside ) { #ifdef G4BOOLDEBUG - G4cout << "WARNING - Invalid call in G4UnionSolid::DistanceToOut(p)," - << " point p is outside" << G4endl; + G4cout << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToOut(p)" << G4endl + << " Point p is outside !" << G4endl; G4cout << " p = " << p << G4endl; - // G4Exception("Invalid call in G4UnionSolid::DistanceToOut(p), p is outtside"); + G4cerr << "WARNING - Invalid call in " + << "G4UnionSolid::DistanceToOut(p)" << G4endl + << " Point p is outside !" << G4endl; + G4cerr << " p = " << p << G4endl; #endif } else @@ -362,7 +386,7 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p ) const (positionA == kSurface && positionB == kInside ) ) { distout= G4std::max(fPtrSolidA->DistanceToOut(p), - fPtrSolidB->DistanceToOut(p) ) ; + fPtrSolidB->DistanceToOut(p) ) ; } else { @@ -393,11 +417,10 @@ G4GeometryType G4UnionSolid::GetEntityType() const // void -G4UnionSolid::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep ) +G4UnionSolid::ComputeDimensions( G4VPVParameterisation*, + const G4int, + const G4VPhysicalVolume* ) { - return ; } ///////////////////////////////////////////////// diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index 7085fbcca2..be80cf06ae 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,4 +1,4 @@ -$Id: History,v 1.50 2002/06/19 10:22:27 gcosmo Exp $ +$Id: History,v 1.52 2002/10/28 11:43:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,19 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Oct 28, 2002 G.Cosmo geom-csg-V04-01-01 +- Added implementation of StreamInfo() to comply with new interface for + G4VSolid in "geommng-V04-01-03". +- Moved inline functions to .icc files, reorganised comments for the Software + Reference Manual. +- Some cosmetic changes to code formatting, removed all characters and + adopted uniform code indentation. +- Extended unit tests for G4Cons and G4Sphere (V.Grichine). + +Jun 26, 2002 V.Grichine geom-csg-V04-01-00 +- G4Cons.cc: bug fixed in DistanceToIn(p,v) concerning z-crossing at the + edge with Rmin,Rmax. + Jun 19, 2002 V.Grichine geom-csg-V04-00-05 - G4Sphere.cc: bug fixed in Inside() for treatment of point p on z-axis. Added new condition [(rho2 || p.z()) && fDTheta < M_PI - kAngTolerance*0.5)] diff --git a/source/geometry/solids/CSG/include/G4Box.hh b/source/geometry/solids/CSG/include/G4Box.hh index d6cd0edc9e..d3a531b656 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.7 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Box.hh,v 1.8 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -34,42 +34,15 @@ // // A Box is a cuboid of given half lengths dx,dy,dz. The Box is // centred on the origin with sides parallel to the x/y/z axes. -// -// Member functions: -// -// As inherited from G4CSGSolid + -// -// G4Box(const G4String& pName, -// G4double pX, G4double pY, G4double pZ) -// -// - Construct a box with name, and half lengths pX,pY,pZ -// -// G4double GetXHalfLength() const -// G4double GetYHalfLength() const -// G4double GetZHalfLength() const -// -// - Return the respective parameter -// -// Protected: -// -// G4ThreeVectorList* -// CreateRotatedVertices(const G4AffineTransform& pTransform) const -// -// - Create the List of transformed vertices in the format required -// for G4VSolid:: ClipCrossSection and ClipBetweenSections. -// -// Member Data: (private) -// -// fDx,fDy,fDz - The box's half-widths // History: -// 30.06.95 P.Kent Converted from source code developed end 94 -// 27.03.96 J.Allison Added virtual functions DescribeYourselfTo and -// SendWireframeTo (G4VGraphicsModel&). -// 22.07.96 J.Allison Changed G4VGraphicsModel to G4VGraphicsScene. -// and SendPolyhedronTo to CreatePolyhedron. -// 27.03.98 J.Apostolakis Inherit from G4CSGSolid (not G4VSolid). -// 18.11.99 J.Apostolakis, V.Grichine: kUndefined was added to ESide +// 30.06.95 P.Kent: Converted from source code developed end 94 +// 27.03.96 J.Allison: Added virtual functions DescribeYourselfTo() and +// SendWireframeTo(G4VGraphicsModel&) +// 22.07.96 J.Allison: Changed G4VGraphicsModel to G4VGraphicsScene +// and SendPolyhedronTo() to CreatePolyhedron() +// 27.03.98 J.Apostolakis: Inherit from G4CSGSolid (not G4VSolid) +// 18.11.99 J.Apostolakis, V.Grichine: kUndefined was added to ESide // -------------------------------------------------------------------- #ifndef G4BOX_HH @@ -79,9 +52,10 @@ class G4Box : public G4CSGSolid { - public: + public: // with description G4Box(const G4String& pName, G4double pX, G4double pY, G4double pZ); + // Construct a box with name, and half lengths pX,pY,pZ virtual ~G4Box(); @@ -92,21 +66,24 @@ class G4Box : public G4CSGSolid G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; - // Access functions + G4double& pmin, G4double& pmax) const; - G4double GetXHalfLength() const { return fDx; } + // Accessors and modifiers + + inline G4double GetXHalfLength() const; - G4double GetYHalfLength() const { return fDy; } + inline G4double GetYHalfLength() const; - G4double GetZHalfLength() const { return fDz; } + inline G4double GetZHalfLength() const; void SetXHalfLength(G4double dx) ; void SetYHalfLength(G4double dy) ; void SetZHalfLength(G4double dz) ; - + + // Methods for solid + EInside Inside(const G4ThreeVector& p) const; G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; @@ -117,29 +94,38 @@ class G4Box : public G4CSGSolid G4double DistanceToOut(const G4ThreeVector& p, const G4ThreeVector& v, const G4bool calcNorm=false, - G4bool *validNorm=0,G4ThreeVector *n=0) const; + G4bool *validNorm=0, G4ThreeVector *n=0) const; G4double DistanceToOut(const G4ThreeVector& p) const; - G4GeometryType GetEntityType() const { return G4String("G4Box"); } + G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo(G4std::ostream& os) const; + + // Functions for visualization void DescribeYourselfTo (G4VGraphicsScene& scene) const; G4VisExtent GetExtent () const; G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; - protected: + protected: // with description G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pTransform) const; - - // Codes for faces (kPX=plus x face,kMY= minus y face etc) + // Create the List of transformed vertices in the format required + // for G4VSolid:: ClipCrossSection and ClipBetweenSections. + + protected: // without description enum ESide {kUndefined,kPX,kMX,kPY,kMY,kPZ,kMZ}; + // Codes for faces (kPX=plus x face,kMY= minus y face etc) private: G4double fDx,fDy,fDz; }; +#include "G4Box.icc" + #endif diff --git a/source/geometry/solids/CSG/include/G4Box.icc b/source/geometry/solids/CSG/include/G4Box.icc new file mode 100644 index 0000000000..e1050165d5 --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Box.icc @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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: G4Box.icc,v 1.1 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Box.icc +// +// Implementation of inline methods of G4Box +// -------------------------------------------------------------------- + +inline +G4double G4Box::GetXHalfLength() const +{ + return fDx; +} + +inline +G4double G4Box::GetYHalfLength() const +{ + return fDy; +} + +inline +G4double G4Box::GetZHalfLength() const +{ + return fDz; +} diff --git a/source/geometry/solids/CSG/include/G4CSGSolid.hh b/source/geometry/solids/CSG/include/G4CSGSolid.hh index 917ab22e10..b1c1805835 100644 --- a/source/geometry/solids/CSG/include/G4CSGSolid.hh +++ b/source/geometry/solids/CSG/include/G4CSGSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CSGSolid.hh,v 1.5 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CSGSolid.hh,v 1.6 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -32,12 +32,8 @@ // // Class description: // -// An abstract class for Constructed Solids. -// Used primarily to simplify inheritance tree. -// -// Member functions: -// -// As inherited from G4VSolid +// An abstract class inherited from G4VSolid for Constructed Solids. +// Used primarily to structure inheritance tree. // History: // 27.03.98 J.Apostolakis Created first version. @@ -50,11 +46,12 @@ class G4CSGSolid : public G4VSolid { - public: + public: // with description G4CSGSolid(const G4String& pName); - virtual ~G4CSGSolid(); + + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; }; #endif diff --git a/source/geometry/solids/CSG/include/G4Cons.hh b/source/geometry/solids/CSG/include/G4Cons.hh index 88f8824194..c12a6b4f47 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.6 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Cons.hh,v 1.7 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -41,14 +41,14 @@ // // Member Data: // -// fRmin1 inside radius at -fDz -// fRmin2 inside radius at +fDz -// fRmax1 outside radius at -fDz -// fRmax2 outside radius at +fDz -// fDz half length in z +// fRmin1 inside radius at -fDz +// fRmin2 inside radius at +fDz +// fRmax1 outside radius at -fDz +// fRmax2 outside radius at +fDz +// fDz half length in z // -// fSPhi starting angle of the segment in radians -// fDPhi delta angle of the segment in radians +// fSPhi starting angle of the segment in radians +// fDPhi delta angle of the segment in radians // // Note: // Internally fSPhi & fDPhi are adjusted so that fDPhi<=2PI, @@ -56,8 +56,8 @@ // made with (say) Phi of a point. // History: -// 19.3.94 P.Kent Old C++ code converted to tolerant geometry -// 13.9.96 V.Grichine Final modifications to commit +// 19.3.94 P.Kent: Old C++ code converted to tolerant geometry +// 13.9.96 V.Grichine: Final modifications to commit // -------------------------------------------------------------------- #ifndef G4Cons_HH @@ -67,102 +67,109 @@ class G4Cons : public G4CSGSolid { - public: + public: // with description + G4Cons(const G4String& pName, - G4double pRmin1, G4double pRmax1, - G4double pRmin2, G4double pRmax2, - G4double pDz, - G4double pSPhi, G4double pDPhi); - - virtual ~G4Cons() ; + G4double pRmin1, G4double pRmax1, + G4double pRmin2, G4double pRmax2, + G4double pDz, + G4double pSPhi, G4double pDPhi); + + virtual ~G4Cons() ; - // Access functions - G4double GetInnerRadiusMinusZ() const { return fRmin1 ; } - G4double GetOuterRadiusMinusZ() const { return fRmax1 ; } - G4double GetInnerRadiusPlusZ() const { return fRmin2 ; } - G4double GetOuterRadiusPlusZ() const { return fRmax2 ; } - - G4double GetZHalfLength() const { return fDz ; } - - G4double GetStartPhiAngle () const { return fSPhi; } - G4double GetDeltaPhiAngle () const { return fDPhi; } - - // Modifier functions - void SetInnerRadiusMinusZ( G4double Rmin1 ) { fRmin1= Rmin1 ; } - void SetOuterRadiusMinusZ( G4double Rmax1 ) { fRmax1= Rmax1 ; } - void SetInnerRadiusPlusZ ( G4double Rmin2 ) { fRmin2= Rmin2 ; } - void SetOuterRadiusPlusZ ( G4double Rmax2 ) { fRmax2= Rmax2 ; } - - void SetZHalfLength ( G4double newDz ) { fDz= newDz ; } - void SetStartPhiAngle ( G4double newSPhi) { fSPhi= newSPhi; } - void SetDeltaPhiAngle ( G4double newDPhi) { fDPhi= newDPhi; } + // Accessors + + inline G4double GetInnerRadiusMinusZ() const; + inline G4double GetOuterRadiusMinusZ() const; + inline G4double GetInnerRadiusPlusZ() const; + inline G4double GetOuterRadiusPlusZ() const; + + inline G4double GetZHalfLength() const; + + inline G4double GetStartPhiAngle () const; + inline G4double GetDeltaPhiAngle () const; + + // Modifiers + + inline void SetInnerRadiusMinusZ( G4double Rmin1 ); + inline void SetOuterRadiusMinusZ( G4double Rmax1 ); + inline void SetInnerRadiusPlusZ ( G4double Rmin2 ); + inline void SetOuterRadiusPlusZ ( G4double Rmax2 ); + + inline void SetZHalfLength ( G4double newDz ); + inline void SetStartPhiAngle ( G4double newSPhi); + inline void SetDeltaPhiAngle ( G4double newDPhi); + + // Other methods for solid - // Other methods void ComputeDimensions(G4VPVParameterisation* p, const G4int n, const G4VPhysicalVolume* pRep); G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; - + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; + EInside Inside(const G4ThreeVector& p) const; - G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + G4ThreeVector SurfaceNormal(const G4ThreeVector& p) const; G4double DistanceToIn(const G4ThreeVector& p, - const G4ThreeVector& v) const; - + const G4ThreeVector& v) const; G4double DistanceToIn(const G4ThreeVector& p) const; - G4double DistanceToOut(const G4ThreeVector& p, - const G4ThreeVector& v, + const G4ThreeVector& v, const G4bool calcNorm=G4bool(false), - G4bool *validNorm=0, - G4ThreeVector *n=0) const; - - G4double DistanceToOut(const G4ThreeVector& p) const ; - - G4GeometryType GetEntityType() const { return G4String("G4Cons"); } - - void DescribeYourselfTo(G4VGraphicsScene& scene) const; - + G4bool *validNorm=0, + G4ThreeVector *n=0) const; + G4double DistanceToOut(const G4ThreeVector& p) const; + + G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo(G4std::ostream& os) const; + + // Visualisation functions + + void DescribeYourselfTo( G4VGraphicsScene& scene ) const; G4Polyhedron* CreatePolyhedron() const; - G4NURBS* CreateNURBS() const; + + public: // without description // Old access functions - G4double GetRmin1() const { return GetInnerRadiusMinusZ(); } - G4double GetRmax1() const { return GetOuterRadiusMinusZ(); } - G4double GetRmin2() const { return GetInnerRadiusPlusZ(); } - G4double GetRmax2() const { return GetOuterRadiusPlusZ(); } - - G4double GetDz() const { return GetZHalfLength() ; } // fDz - - G4double GetSPhi() const { return GetStartPhiAngle(); } // fSPhi - G4double GetDPhi() const { return GetDeltaPhiAngle(); } // fDPhi + + inline G4double GetRmin1() const; + inline G4double GetRmax1() const; + inline G4double GetRmin2() const; + inline G4double GetRmax2() const; + + inline G4double GetDz() const; + + inline G4double GetSPhi() const; + inline G4double GetDPhi() const; protected: G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pTransform) const; - - // Used by distanceToOut + + // Used by distanceToOut enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kPZ,kMZ}; - // used by normal + // used by normal enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; private: G4double fRmin1,fRmin2, - fRmax1,fRmax2, - fDz, - fSPhi,fDPhi; - + fRmax1,fRmax2, + fDz, + fSPhi,fDPhi; }; - + +#include "G4Cons.icc" + #endif diff --git a/source/geometry/solids/CSG/include/G4Cons.icc b/source/geometry/solids/CSG/include/G4Cons.icc new file mode 100644 index 0000000000..beefd0aa8b --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Cons.icc @@ -0,0 +1,160 @@ +// +// ******************************************************************** +// * 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: G4Cons.icc,v 1.1 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Cons.icc +// +// Implementation of inline methods of G4Cons +// -------------------------------------------------------------------- + +inline +G4double G4Cons::GetInnerRadiusMinusZ() const +{ + return fRmin1 ; +} + +inline +G4double G4Cons::GetOuterRadiusMinusZ() const +{ + return fRmax1 ; +} + +inline +G4double G4Cons::GetInnerRadiusPlusZ() const +{ + return fRmin2 ; +} + +inline +G4double G4Cons::GetOuterRadiusPlusZ() const +{ + return fRmax2 ; +} + +inline +G4double G4Cons::GetZHalfLength() const +{ + return fDz ; +} + +inline +G4double G4Cons::GetStartPhiAngle() const +{ + return fSPhi ; +} + +inline +G4double G4Cons::GetDeltaPhiAngle() const +{ + return fDPhi; +} + +inline +void G4Cons::SetInnerRadiusMinusZ( G4double Rmin1 ) +{ + fRmin1= Rmin1 ; +} + +inline +void G4Cons::SetOuterRadiusMinusZ( G4double Rmax1 ) +{ + fRmax1= Rmax1 ; +} + +inline +void G4Cons::SetInnerRadiusPlusZ ( G4double Rmin2 ) +{ + fRmin2= Rmin2 ; +} + +inline +void G4Cons::SetOuterRadiusPlusZ ( G4double Rmax2 ) +{ + fRmax2= Rmax2 ; +} + +inline +void G4Cons::SetZHalfLength ( G4double newDz ) +{ + fDz= newDz ; +} + +inline +void G4Cons::SetStartPhiAngle ( G4double newSPhi ) +{ + fSPhi= newSPhi; +} + +void G4Cons::SetDeltaPhiAngle ( G4double newDPhi ) +{ + fDPhi= newDPhi; +} + +// Old access methods ... + +inline +G4double G4Cons::GetRmin1() const +{ + return GetInnerRadiusMinusZ(); +} + +inline +G4double G4Cons::GetRmax1() const +{ + return GetOuterRadiusMinusZ(); +} + +inline +G4double G4Cons::GetRmin2() const +{ + return GetInnerRadiusPlusZ(); +} + +inline +G4double G4Cons::GetRmax2() const +{ + return GetOuterRadiusPlusZ(); +} + +inline +G4double G4Cons::GetDz() const +{ + return GetZHalfLength(); +} + +inline +G4double G4Cons::GetSPhi() const +{ + return GetStartPhiAngle(); +} + +inline +G4double G4Cons::GetDPhi() const +{ + return GetDeltaPhiAngle(); +} diff --git a/source/geometry/solids/CSG/include/G4Para.hh b/source/geometry/solids/CSG/include/G4Para.hh index 23899d49e7..90a41ad351 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.7 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Para.hh,v 1.8 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -39,14 +39,14 @@ // z-x plane at -dy and +dy. // // A G4Para is defined by: -// dx,dy,dz Half-length in x,y,z -// alpha Angle formed by the y axis and by the plane joining -// the centre of the faces G4Parallel to the z-x plane -// at -dy and +dy -// theta Polar angle of the line joining the centres of the -// faces at -dz and +dz in z -// phi Azimuthal angle of the line joining the centres of the -// faces at -dz and +dz in z +// dx,dy,dz - Half-length in x,y,z +// alpha - Angle formed by the y axis and by the plane joining +// the centre of the faces G4Parallel to the z-x plane +// at -dy and +dy +// theta - Polar angle of the line joining the centres of the +// faces at -dz and +dz in z +// phi - Azimuthal angle of the line joining the centres of the +// faces at -dz and +dz in z // Member data: // // Note that the angles parameters are not stored - precomputed trig is @@ -73,49 +73,38 @@ class G4Para : public G4CSGSolid { - public: + public: // with description G4Para(const G4String& pName, - G4double pDx, G4double pDy, G4double pDz, - G4double pAlpha, G4double pTheta, G4double pPhi); - - G4Para( const G4String& pName, - const G4ThreeVector pt[8]) ; - - virtual ~G4Para() ; - - // Access functions - - G4double GetZHalfLength() const { return fDz ; } - G4ThreeVector GetSymAxis() const - { - G4double cosTheta = 1.0/sqrt(1+fTthetaCphi*fTthetaCphi + - fTthetaSphi*fTthetaSphi) ; + G4double pDx, G4double pDy, G4double pDz, + G4double pAlpha, G4double pTheta, G4double pPhi); - return G4ThreeVector(fTthetaCphi*cosTheta, - fTthetaSphi*cosTheta, - cosTheta) ; - } - G4double GetYHalfLength() const { return fDy ; } - G4double GetXHalfLength() const { return fDx ; } - G4double GetTanAlpha() const { return fTalpha ; } - - // Set functions + G4Para(const G4String& pName, + const G4ThreeVector pt[8]); + + virtual ~G4Para(); + + // Accessors + + inline G4double GetZHalfLength() const; + inline G4ThreeVector GetSymAxis() const; + inline G4double GetYHalfLength() const; + inline G4double GetXHalfLength() const; + inline G4double GetTanAlpha() const; + + // Modifiers + + inline void SetXHalfLength(G4double val); + inline void SetYHalfLength(G4double val); + inline void SetZHalfLength(G4double val); + inline void SetAlpha(G4double alpha); + inline void SetTanAlpha(G4double val); + inline void SetThetaAndPhi(double pTheta, double pPhi); - void SetXHalfLength(G4double val) { fDx= val; } - void SetYHalfLength(G4double val) { fDy= val; } - void SetZHalfLength(G4double val) { fDz= val; } - void SetAlpha(G4double alpha) { fTalpha= tan(alpha); } - void SetTanAlpha(G4double val) { fTalpha= val; } - void SetThetaAndPhi(double pTheta, double pPhi) - { - fTthetaCphi=tan(pTheta)*cos(pPhi); - fTthetaSphi=tan(pTheta)*sin(pPhi); - } void SetAllParameters(G4double pDx, G4double pDy, G4double pDz, G4double pAlpha, G4double pTheta, G4double pPhi); - // Methods + // Other methods of solid void ComputeDimensions(G4VPVParameterisation* p, const G4int n, @@ -124,7 +113,7 @@ class G4Para : public G4CSGSolid G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const; + G4double& pMin, G4double& pMax) const; EInside Inside(const G4ThreeVector& p) const; @@ -134,14 +123,14 @@ class G4Para : public G4CSGSolid 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 G4ThreeVector& v, + const G4bool calcNorm=G4bool(false), + G4bool *validNorm=0, G4ThreeVector *n=0) const; G4double DistanceToOut(const G4ThreeVector& p) const; - // Naming method (pseudo-RTTI : run-time type identification + G4GeometryType GetEntityType() const; - G4GeometryType GetEntityType() const { return G4String("G4Para"); } + G4std::ostream& StreamInfo(G4std::ostream& os) const; // Visualisation functions @@ -149,7 +138,7 @@ class G4Para : public G4CSGSolid G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; - protected: + protected: // without description G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pTransform) const; @@ -159,5 +148,7 @@ class G4Para : public G4CSGSolid G4double fDx,fDy,fDz; G4double fTalpha,fTthetaCphi,fTthetaSphi; }; - + +#include "G4Para.icc" + #endif diff --git a/source/geometry/solids/CSG/include/G4Para.icc b/source/geometry/solids/CSG/include/G4Para.icc new file mode 100644 index 0000000000..02045af7da --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Para.icc @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * 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: G4Para.icc,v 1.1 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Para.icc +// +// Implementation of inline methods of G4Para +// -------------------------------------------------------------------- + +inline +G4double G4Para::GetZHalfLength() const +{ + return fDz ; +} + +inline +G4ThreeVector G4Para::GetSymAxis() const +{ + G4double cosTheta = 1.0/sqrt(1+fTthetaCphi*fTthetaCphi + + fTthetaSphi*fTthetaSphi) ; + + return G4ThreeVector(fTthetaCphi*cosTheta, + fTthetaSphi*cosTheta, + cosTheta) ; +} + +inline +G4double G4Para::GetYHalfLength() const +{ + return fDy ; +} + +inline +G4double G4Para::GetXHalfLength() const +{ + return fDx ; +} + +inline +G4double G4Para::GetTanAlpha() const +{ + return fTalpha ; +} + +inline +void G4Para::SetXHalfLength(G4double val) +{ + fDx= val; +} + +inline +void G4Para::SetYHalfLength(G4double val) +{ + fDy= val; +} + +inline +void G4Para::SetZHalfLength(G4double val) +{ + fDz= val; +} + +inline +void G4Para::SetAlpha(G4double alpha) +{ + fTalpha= tan(alpha); +} + +inline +void G4Para::SetTanAlpha(G4double val) +{ + fTalpha= val; +} + +inline +void G4Para::SetThetaAndPhi(double pTheta, double pPhi) +{ + fTthetaCphi=tan(pTheta)*cos(pPhi); + fTthetaSphi=tan(pTheta)*sin(pPhi); +} diff --git a/source/geometry/solids/CSG/include/G4Sphere.hh b/source/geometry/solids/CSG/include/G4Sphere.hh index c5c29a12c0..905785f96f 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.6 2001/07/11 09:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Sphere.hh,v 1.7 2002/10/28 11:43:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -44,14 +44,14 @@ // // Member Data: // -// fRmin inner radius -// fRmax outer radius +// fRmin inner radius +// fRmax outer radius // -// fSPhi starting angle of the segment in radians -// fDPhi delta angle of the segment in radians +// fSPhi starting angle of the segment in radians +// fDPhi delta angle of the segment in radians // -// fSTheta starting angle of the segment in radians -// fDTheta delta angle of the segment in radians +// fSTheta starting angle of the segment in radians +// fDTheta delta angle of the segment in radians // // // Note: @@ -60,8 +60,8 @@ // made with (say) Phi of a point. // History: -// 28.3.94 P.Kent Old C++ code converted to tolerant geometry -// 17.9.96 V.Grichine Final modifications to commit +// 28.3.94 P.Kent: old C++ code converted to tolerant geometry +// 17.9.96 V.Grichine: final modifications to commit // -------------------------------------------------------------------- #ifndef G4Sphere_HH @@ -71,94 +71,103 @@ class G4Sphere : public G4CSGSolid { - public: - G4Sphere(const G4String& pName, - G4double pRmin, G4double pRmax, - G4double pSPhi, G4double pDPhi, - G4double pSTheta, G4double pDTheta); - - virtual ~G4Sphere() ; - - // Access functions - - G4double GetInsideRadius () const { return fRmin; } - G4double GetOuterRadius () const { return fRmax; } - G4double GetStartPhiAngle () const { return fSPhi; } - G4double GetDeltaPhiAngle () const { return fDPhi; } - G4double GetStartThetaAngle() const { return fSTheta; } - G4double GetDeltaThetaAngle() const { return fDTheta; } + public: // with description - void SetInsideRadius (G4double newRmin) { fRmin= newRmin; } - void SetOuterRadius (G4double newRmax) { fRmax= newRmax; } - void SetStartPhiAngle (G4double newSphi) { fSPhi= newSphi; } - void SetDeltaPhiAngle (G4double newDphi) { fDPhi= newDphi; } - void SetStartThetaAngle(G4double newSTheta) { fSTheta=newSTheta; } - void SetDeltaThetaAngle(G4double newDTheta) { fDTheta=newDTheta; } - - void ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); - - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; - - EInside Inside(const G4ThreeVector& p) const; - - G4ThreeVector SurfaceNormal( const G4ThreeVector& p) 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; - - G4GeometryType GetEntityType() const { return G4String("G4Sphere"); } - // Naming method (pseudo-RTTI : run-time type identification) - - - // Visualisation functions - - void DescribeYourselfTo(G4VGraphicsScene& scene) const; - G4Polyhedron* CreatePolyhedron() const; - G4NURBS* CreateNURBS() const; + G4Sphere(const G4String& pName, + G4double pRmin, G4double pRmax, + G4double pSPhi, G4double pDPhi, + G4double pSTheta, G4double pDTheta); - // Old access functions + virtual ~G4Sphere() ; + + // Accessors + + inline G4double GetInsideRadius () const; + inline G4double GetOuterRadius () const; + inline G4double GetStartPhiAngle () const; + inline G4double GetDeltaPhiAngle () const; + inline G4double GetStartThetaAngle() const; + inline G4double GetDeltaThetaAngle() const; - G4double GetRmin() const { return GetInsideRadius (); } - G4double GetRmax() const { return GetOuterRadius (); } - G4double GetSPhi() const { return GetStartPhiAngle (); } - G4double GetDPhi() const { return GetDeltaPhiAngle (); } - G4double GetSTheta() const { return GetStartThetaAngle(); } - G4double GetDTheta() const { return GetDeltaThetaAngle(); } + // Modifiers + + inline void SetInsideRadius (G4double newRmin); + inline void SetOuterRadius (G4double newRmax); + inline void SetStartPhiAngle (G4double newSphi); + inline void SetDeltaPhiAngle (G4double newDphi); + inline void SetStartThetaAngle(G4double newSTheta); + inline void SetDeltaThetaAngle(G4double newDTheta); + + // Methods for solid + + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep); + + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; + + EInside Inside(const G4ThreeVector& p) const; + + G4ThreeVector SurfaceNormal( const G4ThreeVector& p) 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; + + G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo(G4std::ostream& os) const; + + // Visualisation functions + + void DescribeYourselfTo(G4VGraphicsScene& scene) const; + G4Polyhedron* CreatePolyhedron() const; + G4NURBS* CreateNURBS() const; + + public: // without description + + // Old access functions + + inline G4double GetRmin() const; + inline G4double GetRmax() const; + inline G4double GetSPhi() const; + inline G4double GetDPhi() const; + inline G4double GetSTheta() const; + inline G4double GetDTheta() const; protected: - G4ThreeVectorList* - CreateRotatedVertices(const G4AffineTransform& pTransform, - G4int& noPolygonVertices) const; - - // Used by distanceToOut + G4ThreeVectorList* + CreateRotatedVertices(const G4AffineTransform& pTransform, + G4int& noPolygonVertices) const; - enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kSTheta,kETheta}; + // Used by distanceToOut - // used by normal + enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kSTheta,kETheta}; - enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNSTheta,kNETheta}; + // used by normal + + enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNSTheta,kNETheta}; private: G4double fRmin,fRmax, fSPhi,fDPhi, - fSTheta,fDTheta; + fSTheta,fDTheta; }; - + +#include "G4Sphere.icc" + #endif diff --git a/source/geometry/solids/CSG/include/G4Sphere.icc b/source/geometry/solids/CSG/include/G4Sphere.icc new file mode 100644 index 0000000000..39ce97eea9 --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Sphere.icc @@ -0,0 +1,142 @@ +// +// ******************************************************************** +// * 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: G4Sphere.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Sphere.icc +// +// Implementation of inline methods of G4Sphere +// -------------------------------------------------------------------- + +inline +G4double G4Sphere::GetInsideRadius() const +{ + return fRmin; +} + +inline +G4double G4Sphere::GetOuterRadius() const +{ + return fRmax; +} + +inline +G4double G4Sphere::GetStartPhiAngle() const +{ + return fSPhi; +} + +inline +G4double G4Sphere::GetDeltaPhiAngle() const +{ + return fDPhi; +} + +inline +G4double G4Sphere::GetStartThetaAngle() const +{ + return fSTheta; +} + +G4double G4Sphere::GetDeltaThetaAngle() const +{ + return fDTheta; +} + +inline +void G4Sphere::SetInsideRadius(G4double newRmin) +{ + fRmin= newRmin; +} + +inline +void G4Sphere::SetOuterRadius(G4double newRmax) +{ + fRmax= newRmax; +} + +inline +void G4Sphere::SetStartPhiAngle(G4double newSphi) +{ + fSPhi= newSphi; +} + +inline +void G4Sphere::SetDeltaPhiAngle(G4double newDphi) +{ + fDPhi= newDphi; +} + +inline +void G4Sphere::SetStartThetaAngle(G4double newSTheta) +{ + fSTheta=newSTheta; +} + +inline +void G4Sphere::SetDeltaThetaAngle(G4double newDTheta) +{ + fDTheta=newDTheta; +} + +// Old access functions + +inline +G4double G4Sphere::GetRmin() const +{ + return GetInsideRadius(); +} + +inline +G4double G4Sphere::GetRmax() const +{ + return GetOuterRadius(); +} + +inline +G4double G4Sphere::GetSPhi() const +{ + return GetStartPhiAngle(); +} + +inline +G4double G4Sphere::GetDPhi() const +{ + return GetDeltaPhiAngle(); +} + +inline +G4double G4Sphere::GetSTheta() const +{ + return GetStartThetaAngle(); +} + +inline +G4double G4Sphere::GetDTheta() const +{ + return GetDeltaThetaAngle(); +} diff --git a/source/geometry/solids/CSG/include/G4Torus.hh b/source/geometry/solids/CSG/include/G4Torus.hh index 33d16ca14b..d1741bf919 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.13 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Torus.hh,v 1.14 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -65,29 +65,29 @@ // // Member Data: // -// fRmin Inside radius -// fRmax Outside radius -// fRtor swept radius of torus +// fRmin Inside radius +// fRmax Outside radius +// fRtor swept radius of torus // -// fSPhi The starting phi angle in radians, -// adjusted such the fSPhi+fDPhi<=2PI, -// fSPhi>-2PI +// fSPhi The starting phi angle in radians, +// adjusted such that fSPhi+fDPhi<=2PI, fSPhi>-2PI // -// fDPhi Delta angle of the segment in radians +// fDPhi Delta angle of the segment in radians // -// You could find very often in G4Torus:: functions the values like pt or -// it . These are the distances from p or i G4ThreeVector points in the +// You could find very often in G4Torus functions values like 'pt' or +// 'it'. These are the distances from p or i G4ThreeVector points in the // plane (Z axis points p or i) to fRtor point in XY plane. This value is // similar to rho for G4Tubs and is used for definiton of the point // relative to fRmin and fRmax, i.e. for solution of inside/outside // problems // History: -// 30.10.96 V.Grichine First version of G4Torus -// 21.04.98 J.Apostolakis Added SetAllParameters function -// 26.05.00 V.Grichine, new SolveBiQuadratic/Cubic developed by O.Cremonesi were -// added -// 31.08.00 E.Medernach Added SolveNumeric Functions +// 30.10.96 V.Grichine: first version of G4Torus +// 21.04.98 J.Apostolakis: added SetAllParameters() function +// 26.05.00 V.Grichine: added new SolveBiQuadratic/Cubic() developed +// by O.Cremonesi +// 31.08.00 E.Medernach: added SolveNumeric functions, migrated to +// numeric solutions // -------------------------------------------------------------------- #ifndef G4Torus_HH @@ -98,284 +98,154 @@ class G4Torus : public G4CSGSolid { -public: + public: // with description - G4Torus(const G4String &pName, - G4double pRmin, - G4double pRmax, - G4double pRtor, - G4double pSPhi, - G4double pDPhi); + G4Torus(const G4String &pName, + G4double pRmin, + G4double pRmax, + G4double pRtor, + G4double pSPhi, + G4double pDPhi); - virtual ~G4Torus(); + virtual ~G4Torus(); - void SetAllParameters(G4double pRmin, G4double pRmax, G4double pRtor, - G4double pSPhi, G4double pDPhi); + // Accessors + + inline G4double GetRmin() const; + inline G4double GetRmax() const; + inline G4double GetRtor() const; + inline G4double GetSPhi() const; + inline G4double GetDPhi() const; + + // Methods of solid + + EInside Inside(const G4ThreeVector& p) const; + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep); + G4ThreeVector SurfaceNormal( const G4ThreeVector& p) 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; + + G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo(G4std::ostream& os) const; + + // Visualisation functions + + void DescribeYourselfTo (G4VGraphicsScene& scene) const; + G4Polyhedron* CreatePolyhedron () const; + G4NURBS* CreateNURBS () const; + + public: // without description + + void SetAllParameters(G4double pRmin, G4double pRmax, G4double pRtor, + G4double pSPhi, G4double pDPhi); - void ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); - - G4int TorusRoots(G4double Ri, - const G4ThreeVector& p, - const G4ThreeVector& v) const ; + G4int TorusRoots( G4double Ri, + const G4ThreeVector& p, + const G4ThreeVector& v) const ; - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; + protected: - G4double GetRmin() const { return fRmin ; } - G4double GetRmax() const { return fRmax ; } - G4double GetRtor() const { return fRtor ; } - G4double GetSPhi() const { return fSPhi ; } - G4double GetDPhi() const { return fDPhi ; } + G4int SolveBiQuadratic(G4double c[], G4double s[] ) const ; + G4int SolveCubic(G4double c[], G4double s[] ) const ; - EInside Inside(const G4ThreeVector& p) const; + G4int SolveBiQuadraticNew(G4double c[], G4double s[] ) const ; + G4int SolveCubicNew(G4double c[], G4double s[], G4double& cd ) const ; - G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + G4int SolveQuadratic(G4double c[], G4double s[] ) 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; + G4double SolveNumeric(const G4ThreeVector& p, + const G4ThreeVector& v, + G4bool IsDistanceToIn) const; - G4GeometryType GetEntityType() const { return G4String("G4Torus"); } - // Naming method (pseudo-RTTI : run-time type identification) + G4ThreeVectorList* + CreateRotatedVertices(const G4AffineTransform& pTransform, + G4int& noPolygonVertices) const; - // Visualisation functions + protected: - void DescribeYourselfTo (G4VGraphicsScene& scene) const; - G4Polyhedron* CreatePolyhedron () const; - G4NURBS* CreateNURBS () const; + G4double fRmin,fRmax,fRtor,fSPhi,fDPhi; -protected: + // Used by distanceToOut + enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi}; - G4int SolveBiQuadratic(G4double c[], G4double s[] ) const ; - G4int SolveCubic(G4double c[], G4double s[] ) const ; + // used by normal + enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi}; - G4int SolveBiQuadraticNew(G4double c[], G4double s[] ) const ; - G4int SolveCubicNew(G4double c[], G4double s[], G4double& cd ) const ; + private: - G4int SolveQuadratic(G4double c[], G4double s[] ) const ; + inline G4double TorusEquation (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const; + inline G4double TorusDerivativeX (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const; + inline G4double TorusDerivativeY (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const; + inline G4double TorusDerivativeZ (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const; + inline G4double TorusGradient(G4double dx, G4double dy, G4double dz, + G4double x, G4double y, G4double z, + G4double Rmax, G4double Rmin) const; - G4double SolveNumeric(const G4ThreeVector& p, - const G4ThreeVector& v, - G4bool IsDistanceToIn) const; - - G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pTransform, - G4int& noPolygonVertices) const; - - G4double fRmin,fRmax,fRtor,fSPhi,fDPhi; - - // Used by distanceToOut - enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi}; - // used by normal - enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi}; - -private: - - G4double TorusEquation (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const - { - /* R0 : Radius of all little circles - R1 : Radius of little circles - */ - /* - An interesting property is that the sign - tell if the point is inside or outside - or if > EPSILON on the surface - */ - G4double temp; - - temp = ((x*x + y*y + z*z) + R0*R0 - R1*R1) ; - temp = temp*temp ; - temp = temp - 4*R0*R0*(x*x + y*y) ; - - /* - > 0 Outside - < 0 Inside - */ - return temp ; - } + void BVMIntersection (G4double x, G4double y, G4double z, + G4double dx, G4double dy, G4double dz, + G4double Rmax, G4double Rmin, + G4double *NewL, G4int *valid) const; - G4double TorusDerivativeX (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const - { - return 4*x*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*x ; - } - - G4double TorusDerivativeY (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const - { - return 4*y*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*y ; - } - - G4double TorusDerivativeZ (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const - { - return 4*z*(x*x + y*y + z*z + R0*R0 - R1*R1) ; - } - - G4double TorusGradient(G4double dx, G4double dy, G4double dz, - G4double x, G4double y, G4double z, - G4double Rmax, G4double Rmin) const - { - /* This tell the normal at a surface point */ - G4double result; - result = 0; - result += dx*TorusDerivativeX(x,y,z,Rmax,Rmin); - result += dy*TorusDerivativeY(x,y,z,Rmax,Rmin); - result += dz*TorusDerivativeZ(x,y,z,Rmax,Rmin); - - return result; - } - - void BVMIntersection (G4double x, G4double y, G4double z, - G4double dx, G4double dy, G4double dz, - G4double Rmax, G4double Rmin, - G4double *NewL, G4int *valid) const; + void SortIntervals (G4double *SortL, G4double *NewL, + G4int *valid, G4int *NbIntersection) const; - void SortIntervals (G4double *SortL, G4double *NewL, - G4int *valid, G4int *NbIntersection) const; - - G4double DistanceToTorus (G4double x, G4double y, G4double z, - G4double dx, G4double dy, G4double dz, - G4double R0,G4double R1) const; + G4double DistanceToTorus (G4double x, G4double y, G4double z, + G4double dx, G4double dy, G4double dz, + G4double R0,G4double R1) const; }; -class TorusEquationClass +class G4TorusEquation { -public: - TorusEquationClass() - { - ; - } + public: - TorusEquationClass(G4double Rmax, G4double Rmin) - { - R0 = Rmax; - R1 = Rmin; - } + G4TorusEquation(); + G4TorusEquation(G4double Rmax, G4double Rmin); - ~TorusEquationClass() {;} + ~G4TorusEquation(); - void setRadius (G4double Rmax, G4double Rmin) - { - R0 = Rmax; - R1 = Rmin; - } - - - void setPosition (G4double x,G4double y,G4double z) - { - Px = x; - Py = y; - Pz = z; - } + inline void setRadius (G4double Rmax, G4double Rmin); + inline void setPosition (G4double x,G4double y,G4double z); + inline void setPosition (const G4ThreeVector& p); + inline void setDirection (G4double dirx,G4double diry,G4double dirz); + inline void setDirection (const G4ThreeVector& v); - void setPosition (const G4ThreeVector& p) - { - Px = p.x(); - Py = p.y(); - Pz = p.z(); - } + public: - - void setDirection (G4double dirx,G4double diry,G4double dirz) - { - dx = dirx; - dy = diry; - dz = dirz; - } + inline G4double Function (G4double value); + inline G4double Derivative(G4double value); - void setDirection (const G4ThreeVector& v) - { - dx = v.x(); - dy = v.y(); - dz = v.z(); - } + private: - + inline G4double TorusEquation (G4double x, G4double y, G4double z); + inline G4double TorusDerivativeX (G4double x, G4double y, G4double z); + inline G4double TorusDerivativeY (G4double x, G4double y, G4double z); + inline G4double TorusDerivativeZ (G4double x, G4double y, G4double z); -private: - G4double R0; - G4double R1; + private: - G4double Px,Py,Pz; - G4double dx,dy,dz; - - - G4double TorusEquation (G4double x, G4double y, G4double z) //const - { - /* - An interesting property is that the sign - tell if the point is inside or outside - or if > EPSILON on the surface - */ - G4double temp; - - temp = ((x*x + y*y + z*z) + R0*R0 - R1*R1) ; - temp = temp*temp ; - temp = temp - 4*R0*R0*(x*x + y*y) ; - - /* - > 0 Outside - < 0 Inside - */ - return temp ; - } - - G4double TorusDerivativeX (G4double x, G4double y, G4double z) // const - { - return 4*x*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*x ; - } - - G4double TorusDerivativeY (G4double x, G4double y, G4double z) // const - { - return 4*y*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*y ; - } - - G4double TorusDerivativeZ (G4double x, G4double y, G4double z) // const - { - return 4*z*(x*x + y*y + z*z + R0*R0 - R1*R1) ; - } - -public: - G4double Function (G4double value) - { - G4double Lx,Ly,Lz; - G4double result; - - Lx = Px + value*dx; - Ly = Py + value*dy; - Lz = Pz + value*dz; - - result = TorusEquation(Lx,Ly,Lz); - - return result ; - } - - G4double Derivative(G4double value) - { - G4double Lx,Ly,Lz; - G4double result; - - Lx = Px + value*dx; - Ly = Py + value*dy; - Lz = Pz + value*dz; - - result = dx*TorusDerivativeX(Lx,Ly,Lz); - result += dy*TorusDerivativeY(Lx,Ly,Lz); - result += dz*TorusDerivativeZ(Lx,Ly,Lz); - - return result; - } -} ; + G4double R0; + G4double R1; + G4double Px,Py,Pz; + G4double dx,dy,dz; +}; +#include "G4Torus.icc" #endif diff --git a/source/geometry/solids/CSG/include/G4Torus.icc b/source/geometry/solids/CSG/include/G4Torus.icc new file mode 100644 index 0000000000..27240c4e24 --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Torus.icc @@ -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: G4Torus.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Torus.icc +// +// Implementation of inline methods of G4Torus +// -------------------------------------------------------------------- + +inline +G4double G4Torus::GetRmin() const +{ + return fRmin ; +} + +inline +G4double G4Torus::GetRmax() const +{ + return fRmax ; +} + +inline +G4double G4Torus::GetRtor() const +{ + return fRtor ; +} + +inline +G4double G4Torus::GetSPhi() const +{ + return fSPhi ; +} + +inline +G4double G4Torus::GetDPhi() const +{ + return fDPhi ; +} + +// Utility functions + +inline +G4double G4Torus::TorusEquation (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const +{ + // R0 : Radius of all little circles + // R1 : Radius of little circles + + // An interesting property is that the sign + // tell if the point is inside or outside + // or if > EPSILON on the surface + + G4double temp; + + temp = ((x*x + y*y + z*z) + R0*R0 - R1*R1) ; + temp = temp*temp ; + temp = temp - 4*R0*R0*(x*x + y*y) ; + + // > 0 Outside + // < 0 Inside + + return temp ; +} + +inline +G4double G4Torus::TorusDerivativeX (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const +{ + return 4*x*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*x ; +} + +inline +G4double G4Torus::TorusDerivativeY (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const +{ + return 4*y*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*y ; +} + +inline +G4double G4Torus::TorusDerivativeZ (G4double x, G4double y, G4double z, + G4double R0, G4double R1) const +{ + return 4*z*(x*x + y*y + z*z + R0*R0 - R1*R1) ; +} + +inline +G4double G4Torus::TorusGradient(G4double dx, G4double dy, G4double dz, + G4double x, G4double y, G4double z, + G4double Rmax, G4double Rmin) const +{ + // This tells the normal at a surface point + + G4double result; + result = 0; + result += dx*TorusDerivativeX(x,y,z,Rmax,Rmin); + result += dy*TorusDerivativeY(x,y,z,Rmax,Rmin); + result += dz*TorusDerivativeZ(x,y,z,Rmax,Rmin); + + return result; +} + +// ----------- G4TorusEquation methods --------------- + +inline +void G4TorusEquation::setRadius (G4double Rmax, G4double Rmin) +{ + R0 = Rmax; + R1 = Rmin; +} + +inline +void G4TorusEquation::setPosition (G4double x,G4double y,G4double z) +{ + Px = x; + Py = y; + Pz = z; +} + +inline +void G4TorusEquation::setPosition (const G4ThreeVector& p) +{ + Px = p.x(); + Py = p.y(); + Pz = p.z(); +} + +inline +void G4TorusEquation::setDirection (G4double dirx,G4double diry,G4double dirz) +{ + dx = dirx; + dy = diry; + dz = dirz; +} + +inline +void G4TorusEquation::setDirection (const G4ThreeVector& v) +{ + dx = v.x(); + dy = v.y(); + dz = v.z(); +} + +inline +G4double G4TorusEquation::TorusEquation (G4double x, G4double y, G4double z) +{ + // An interesting property is that the sign + // tells if the point is inside or outside + // or if > EPSILON on the surface + + G4double temp; + + temp = ((x*x + y*y + z*z) + R0*R0 - R1*R1) ; + temp = temp*temp ; + temp = temp - 4*R0*R0*(x*x + y*y) ; + + // > 0 Outside + // < 0 Inside + + return temp ; +} + +inline +G4double G4TorusEquation::TorusDerivativeX (G4double x, G4double y, G4double z) +{ + return 4*x*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*x ; +} + +inline +G4double G4TorusEquation::TorusDerivativeY (G4double x, G4double y, G4double z) +{ + return 4*y*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*y ; +} + +inline +G4double G4TorusEquation::TorusDerivativeZ (G4double x, G4double y, G4double z) +{ + return 4*z*(x*x + y*y + z*z + R0*R0 - R1*R1) ; +} + +inline +G4double G4TorusEquation::Function (G4double value) +{ + G4double Lx,Ly,Lz; + G4double result; + + Lx = Px + value*dx; + Ly = Py + value*dy; + Lz = Pz + value*dz; + + result = TorusEquation(Lx,Ly,Lz); + return result ; +} + +inline +G4double G4TorusEquation::Derivative(G4double value) +{ + G4double Lx,Ly,Lz; + G4double result; + + Lx = Px + value*dx; + Ly = Py + value*dy; + Lz = Pz + value*dz; + + result = dx*TorusDerivativeX(Lx,Ly,Lz); + result += dy*TorusDerivativeY(Lx,Ly,Lz); + result += dz*TorusDerivativeZ(Lx,Ly,Lz); + + return result; +} diff --git a/source/geometry/solids/CSG/include/G4Trap.hh b/source/geometry/solids/CSG/include/G4Trap.hh index 5bc15dcf2d..cc63766d7b 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.6 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Trap.hh,v 1.7 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -62,8 +62,8 @@ // Member Data: // // fDz Half-length along the z axis -// fTthetaCphi = tan(pTheta)*cos(pPhi) These combinations are suitable for -// fTthetaSphi = tan(pTheta)*sin(pPhi) creation of the trapezoid corners +// fTthetaCphi = tan(pTheta)*cos(pPhi) These combinations are suitable for +// fTthetaSphi = tan(pTheta)*sin(pPhi) creation of the trapezoid corners // // fDy1 Half-length along y of the face at -fDz // fDx1 Half-length along x of the side at y=-fDy1 of the face at -fDz @@ -76,92 +76,18 @@ // fDx3 Half-length along x of the side at y=-fDy2 of the face at +fDz // fDx4 Half-length along x of the side at y=+fDy2 of the face at +fDz // fTalpha2 Tan of Angle with respect to the y axis from the centre of -// the side at y=-fDy1 to the centre at y=+fDy1 of the face at -fDz +// the side at y=-fDy2 to the centre at y=+fDy2 of the face +// at +fDz // -// TrapSidePlane fPlanes[4] Plane equations of the faces not at +/-fDz -// *** order is important !!! -// -// -// Member functions: -// -// As inherited from G4CSGSolid + Constructors -// -// G4Trap( const G4String& pName, -// G4double pDz, -// G4double pTheta, G4double pPhi, -// G4double pDy1, G4double pDx1, G4double pDx2, -// G4double pAlp1, -// G4double pDy2, G4double pDx3, G4double pDx4, -// G4double pAlp2) -// -// - which prepare plane equations and corner coordinates from -// parameters -// -// G4Trap( const G4string& pName, -// const G4ThreeVector pt[8]) -// -// - which prepare plane equations and parameters from corner -// coordinates -// -// G4Trap( const G4String& pName, -// G4double pZ, -// G4double pY, -// G4double pX, G4double pLTX); -// -// - for Right Angular Wedge from STEP -// -// & Constructor for G4Trd -// -// G4Trap( const G4String& pName, -// G4double pDx1, G4double pDx2, -// G4double pDy1, G4double pDy2, -// G4double pDz); -// -// & Constructor for G4Para -// -// G4Trap(const G4String& pName, -// G4double pDx, G4double pDy, G4double pDz, -// G4double pAlpha, G4double pTheta, G4double pPhi); -// -// + Access functions that return the respective parameter -// -// G4double GetZHalfLength() const -// G4ThreeVector GetSymAxis() const -// - Returns coordinates of unit vector along straight -// line joining centers of -/+fDz planes -// G4double GetYHalfLength1() const -// G4double GetXHalfLength1() const -// G4double GetXHalfLength2() const -// G4double GetTanAlpha1() const -// -// G4double GetYHalfLength2() const -// G4double GetXHalfLength3() const -// G4double GetXHalfLength4() const -// G4double GetTanAlpha2() const -// -// TrapSidePlane GetSidePlane(G4int n ) const ; n = 0,1,2,3 -// -// Protected: -// -// G4bool MakePlane( G4ThreeVector& p1, -// G4ThreeVector& p2, -// G4ThreeVector& p3, -// G4ThreeVector& p4, -// TrapSidePlane& plane ) -// -// -// G4ThreeVectorList* -// CreateRotatedVertices(const G4Transform& pTransform) const -// -// - Create the List of transformed vertices in the format required -// for G4CSGSolid:: ClipCrossSection and ClipBetweenSections. +// TrapSidePlane fPlanes[4] Plane equations of the faces not at +/-fDz +// NOTE: order is important !!! // History: // // 23.3.94 P.Kent: Old C++ code converted to tolerant geometry // 9.9.96 V.Grichine: Final modifications before to commit -// 1.11.96 V.Grichine Costructors for Right Angular Wedge from STEP & G4Trd/Para -// 8.12.97 J.Allison Added "nominal" contructor and method SetAllParameters. +// 1.11.96 V.Grichine: Costructors for Right Angular Wedge from STEP, G4Trd/Para +// 8.12.97 J.Allison: Added "nominal" contructor and method SetAllParameters. // -------------------------------------------------------------------- #ifndef G4Trap_HH @@ -171,136 +97,141 @@ struct TrapSidePlane { - G4double a,b,c,d; // Normal unit vector (a,b,c) and offset (d) - // => Ax+By+Cz+D=0 + G4double a,b,c,d; // Normal unit vector (a,b,c) and offset (d) + // => Ax+By+Cz+D=0 }; class G4Trap : public G4CSGSolid { - public: - - // The most general constructor for G4Trap + public: // with description G4Trap( const G4String& pName, - G4double pDz, - G4double pTheta, G4double pPhi, - G4double pDy1, G4double pDx1, G4double pDx2, - G4double pAlp1, - G4double pDy2, G4double pDx3, G4double pDx4, - G4double pAlp2); - - G4Trap( const G4String& pName, - const G4ThreeVector pt[8]) ; + G4double pDz, + G4double pTheta, G4double pPhi, + G4double pDy1, G4double pDx1, G4double pDx2, + G4double pAlp1, + G4double pDy2, G4double pDx3, G4double pDx4, + G4double pAlp2 ); + // + // The most general constructor for G4Trap which prepares plane + // equations and corner coordinates from parameters - // Constructor for Right Angular Wedge from STEP (assumes pLTX<=pX) + G4Trap( const G4String& pName, + const G4ThreeVector pt[8] ) ; + // + // Prepares plane equations and parameters from corner coordinates - G4Trap( const G4String& pName, - G4double pZ, - G4double pY, - G4double pX, G4double pLTX); + G4Trap( const G4String& pName, + G4double pZ, + G4double pY, + G4double pX, G4double pLTX ); + // + // Constructor for Right Angular Wedge from STEP (assumes pLTX<=pX) - // Constructor for G4Trd - - G4Trap( const G4String& pName, - G4double pDx1, G4double pDx2, - G4double pDy1, G4double pDy2, - G4double pDz); + G4Trap( const G4String& pName, + G4double pDx1, G4double pDx2, + G4double pDy1, G4double pDy2, + G4double pDz ); + // + // Constructor for G4Trd - // Constructor for G4Para - G4Trap(const G4String& pName, - G4double pDx, G4double pDy, G4double pDz, - G4double pAlpha, G4double pTheta, G4double pPhi); - + G4double pDx, G4double pDy, G4double pDz, + G4double pAlpha, G4double pTheta, G4double pPhi ); + // + // Constructor for G4Para + + G4Trap( const G4String& pName ); + // + // Constructor for "nominal" G4Trap whose parameters are to be set + // by a G4VPVParamaterisation later + virtual ~G4Trap() ; - - // Constructor for "nominal" G4Trap whose parameters are to be set - // by a G4VParamaterisation later. + // + // Destructor - G4Trap(const G4String& pName); + // Accessors - // Access functions + inline G4double GetZHalfLength() const; + inline G4double GetYHalfLength1() const; + inline G4double GetXHalfLength1() const; + inline G4double GetXHalfLength2() const; + inline G4double GetTanAlpha1() const; + inline G4double GetYHalfLength2() const; + inline G4double GetXHalfLength3() const; + inline G4double GetXHalfLength4() const; + inline G4double GetTanAlpha2() const; + inline TrapSidePlane GetSidePlane( G4int n ) const; - G4double GetZHalfLength() const { return fDz ; } - G4ThreeVector GetSymAxis() const - { - G4double cosTheta = 1.0/sqrt(1+fTthetaCphi*fTthetaCphi + - fTthetaSphi*fTthetaSphi) ; - - return G4ThreeVector(fTthetaCphi*cosTheta, - fTthetaSphi*cosTheta, - cosTheta) ; - } - G4double GetYHalfLength1() const { return fDy1 ; } - G4double GetXHalfLength1() const { return fDx1 ; } - G4double GetXHalfLength2() const { return fDx2 ; } - G4double GetTanAlpha1() const { return fTalpha1 ; } - G4double GetYHalfLength2() const { return fDy2 ; } - G4double GetXHalfLength3() const { return fDx3 ; } - G4double GetXHalfLength4() const { return fDx4 ; } - G4double GetTanAlpha2() const { return fTalpha2 ; } - TrapSidePlane GetSidePlane(G4int n ) const { return fPlanes[n] ; } + inline G4ThreeVector GetSymAxis() const; + // + // Returns coordinates of unit vector along straight + // line joining centers of -/+fDz planes - // Set Methods + // Modifiers void SetAllParameters ( G4double pDz, - G4double pTheta, - G4double pPhi, - G4double pDy1, - G4double pDx1, - G4double pDx2, - G4double pAlp1, - G4double pDy2, - G4double pDx3, - G4double pDx4, - G4double pAlp2); - - // Methods + G4double pTheta, + G4double pPhi, + G4double pDy1, + G4double pDx1, + G4double pDx2, + G4double pAlp1, + G4double pDy2, + G4double pDx3, + G4double pDx4, + G4double pAlp2 ); + + // Methods for solid - void ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ); - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const; + G4bool CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const; - EInside Inside(const G4ThreeVector& p) const; + EInside Inside( const G4ThreeVector& p ) const; - G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; - G4double DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) const; + G4double DistanceToIn(const G4ThreeVector& p, const G4ThreeVector& v) const; - G4double DistanceToIn(const G4ThreeVector& p) const; + G4double DistanceToIn( const G4ThreeVector& p ) const; - G4double DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, - const G4bool calcNorm=false, - G4bool *validNorm=0,G4ThreeVector *n=0) const; - - G4double DistanceToOut(const G4ThreeVector& p) const; + G4double DistanceToOut(const G4ThreeVector& p, const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, G4ThreeVector *n=0) const; + + G4double DistanceToOut( const G4ThreeVector& p ) const; - G4GeometryType GetEntityType() const { return G4String("G4Trap"); } - // Naming method (pseudo-RTTI : run-time type identification + G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo( G4std::ostream& os ) const; // Visualisation functions - void DescribeYourselfTo (G4VGraphicsScene& scene) const; + void DescribeYourselfTo ( G4VGraphicsScene& scene ) const; G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; - protected: + protected: // with description G4bool MakePlanes(); G4bool MakePlane( const G4ThreeVector& p1, const G4ThreeVector& p2, - const G4ThreeVector& p3, - const G4ThreeVector& p4, - TrapSidePlane& plane ) ; + const G4ThreeVector& p3, + const G4ThreeVector& p4, + TrapSidePlane& plane ) ; G4ThreeVectorList* - CreateRotatedVertices(const G4AffineTransform& pTransform) const; + CreateRotatedVertices( const G4AffineTransform& pTransform ) const; + // + // Creates the List of transformed vertices in the format required + // for G4CSGSolid:: ClipCrossSection and ClipBetweenSections private: @@ -311,7 +242,6 @@ class G4Trap : public G4CSGSolid }; +#include "G4Trap.icc" + #endif - - -// **************************** End of G4Trap.hh ***************************************** diff --git a/source/geometry/solids/CSG/include/G4Trap.icc b/source/geometry/solids/CSG/include/G4Trap.icc new file mode 100644 index 0000000000..1e2af00365 --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Trap.icc @@ -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: G4Trap.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Trap.icc +// +// Implementation of inline methods of G4Trap +// -------------------------------------------------------------------- + +inline +G4double G4Trap::GetZHalfLength() const +{ + return fDz ; +} + +inline +G4ThreeVector G4Trap::GetSymAxis() const +{ + G4double cosTheta = 1.0/sqrt(1+fTthetaCphi*fTthetaCphi + + fTthetaSphi*fTthetaSphi) ; + + return G4ThreeVector(fTthetaCphi*cosTheta, + fTthetaSphi*cosTheta, + cosTheta) ; +} + +inline +G4double G4Trap::GetYHalfLength1() const +{ + return fDy1 ; +} + +inline +G4double G4Trap::GetXHalfLength1() const +{ + return fDx1 ; +} + +inline +G4double G4Trap::GetXHalfLength2() const +{ + return fDx2 ; +} + +inline +G4double G4Trap::GetTanAlpha1() const +{ + return fTalpha1 ; +} + +inline +G4double G4Trap::GetYHalfLength2() const +{ + return fDy2 ; +} + +inline +G4double G4Trap::GetXHalfLength3() const +{ + return fDx3 ; +} + +inline +G4double G4Trap::GetXHalfLength4() const +{ + return fDx4 ; +} + +inline +G4double G4Trap::GetTanAlpha2() const +{ + return fTalpha2 ; +} + +inline +TrapSidePlane G4Trap::GetSidePlane( G4int n ) const +{ + return fPlanes[n] ; +} diff --git a/source/geometry/solids/CSG/include/G4Trd.hh b/source/geometry/solids/CSG/include/G4Trd.hh index 73ef4af35b..c72ba953ab 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.7 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Trd.hh,v 1.8 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -33,44 +33,9 @@ // // Class description: // -// A Trd is a trapezoid with the x and y dimensions varying along z +// A G4Trd is a trapezoid with the x and y dimensions varying along z // functions: // -// As inherited from G4CSGSolid + -// -// G4Trd( const G4String& pName, -// G4double pdx1, G4double pdx2, -// G4double pdy1, G4double pdy2, -// G4double pdz ) -// -// - Construct a trapezoid with name, and half lengths -// dpx1,dpx2,dpy1,dpy2,dpz -// -// G4double GetXHalfLength1() const -// G4double GetXHalfLength2() const -// G4double GetYHalfLength1() const -// G4double GetYHalfLength2() const -// G4double GetZHalfLength() const -// -// - Return the respective parameter -// -// void SetXHalfLength1(G4double) -// void SetXHalfLength2(G4double) -// void SetYHalfLength1(G4double) -// void SetYHalfLength2(G4double) -// void SetZHalfLength(G4double) -// -// - Set the respective parameter -// -// Protected: -// -// G4ThreeVectorList* -// CreateRotatedVertices(const G4AffineTransform& pTransform) const -// -// - Create the List of transformed vertices in the format required -// for G4CSGSolid:: ClipCrossSection and ClipBetweenSections. -// -// // Member Data: // // fDx1 Half-length along x at the surface positioned at -dz @@ -80,11 +45,11 @@ // fDz Half-length along z axis // History: -// 19.11.99 V.Grichine, kUndefined was added to Eside enum -// 21.04.97 J. Apostolakis Added Set Methods. -// 19.08.96 P. Kent, V. Grichine ->Fs in accordance with G4Box -// 17.02.95 P.Kent Exiting normal return -// 12.01.95 P.Kent Old prototype code converted to thick geometry +// 12.01.95 P.Kent: Old prototype code converted to thick geometry +// 17.02.95 P.Kent: Exiting normal return +// 19.08.96 P.Kent, V.Grichine: Fs in accordance with G4Box +// 21.04.97 J.Apostolakis: Added Set Methods +// 19.11.99 V.Grichine: kUndefined was added to Eside enum // -------------------------------------------------------------------- #ifndef G4TRD_HH @@ -94,88 +59,97 @@ class G4Trd : public G4CSGSolid { - public: + public: // with description G4Trd( const G4String& pName, - G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz); + G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, + G4double pdz ); + // + // Constructs a trapezoid with name, and half lengths virtual ~G4Trd(); + // + // Destructor - // Access functions + // Accessors - G4double GetXHalfLength1() const { return fDx1; } - G4double GetXHalfLength2() const { return fDx2; } - G4double GetYHalfLength1() const { return fDy1; } - G4double GetYHalfLength2() const { return fDy2; } - G4double GetZHalfLength() const { return fDz; } + inline G4double GetXHalfLength1() const; + inline G4double GetXHalfLength2() const; + inline G4double GetYHalfLength1() const; + inline G4double GetYHalfLength2() const; + inline G4double GetZHalfLength() const; - // Set functions + // Modifiers - void SetXHalfLength1(G4double val) { fDx1= val; } - void SetXHalfLength2(G4double val) { fDx2= val; } - void SetYHalfLength1(G4double val) { fDy1= val; } - void SetYHalfLength2(G4double val) { fDy2= val; } - void SetZHalfLength(G4double val) { fDz= val; } + inline void SetXHalfLength1(G4double val); + inline void SetXHalfLength2(G4double val); + inline void SetYHalfLength1(G4double val); + inline void SetYHalfLength2(G4double val); + inline void SetZHalfLength(G4double val); - // Methods + // Methods of solid - void ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ); - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const; + G4bool CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const; + EInside Inside( const G4ThreeVector& p ) const; - EInside Inside(const G4ThreeVector& p) const; + G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; - G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + G4double DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const; - G4double DistanceToIn(const G4ThreeVector& p, - const G4ThreeVector& v) const; + G4double DistanceToIn( const G4ThreeVector& p ) const; - G4double DistanceToIn(const G4ThreeVector& p) const; + G4double DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const; - G4double DistanceToOut(const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm=false, - G4bool *validNorm=0, - G4ThreeVector *n=0) const; + G4double DistanceToOut( const G4ThreeVector& p ) const; - G4double DistanceToOut(const G4ThreeVector& p) const; + void CheckAndSetAllParameters ( G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, + G4double pdz ); - void CheckAndSetAllParameters (G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz); + void SetAllParameters ( G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, + G4double pdz ); - void SetAllParameters (G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz); + G4GeometryType GetEntityType() const; - G4GeometryType GetEntityType() const { return G4String("G4Trd"); } - // Naming method (pseudo-RTTI : run-time type identification + G4std::ostream& StreamInfo( G4std::ostream& os ) const; - // Visualisation functions + // Visualisation functions void DescribeYourselfTo (G4VGraphicsScene& scene) const; G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; - protected: + protected: // without description G4ThreeVectorList* - CreateRotatedVertices(const G4AffineTransform& pTransform) const; - + CreateRotatedVertices( const G4AffineTransform& pTransform ) const; + // + // Creates the List of transformed vertices in the format required + // for G4CSGSolid:: ClipCrossSection and ClipBetweenSections + G4double fDx1,fDx2,fDy1,fDy2,fDz; - // Codes for faces (kPX=plus x face,kMY= minus y face etc) + // Codes for faces (kPX=plus x face,kMY= minus y face etc) enum ESide {kUndefined, kPX,kMX,kPY,kMY,kPZ,kMZ}; }; +#include "G4Trd.icc" + #endif diff --git a/source/geometry/solids/CSG/include/G4Trd.icc b/source/geometry/solids/CSG/include/G4Trd.icc new file mode 100644 index 0000000000..f000c65ba9 --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Trd.icc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: G4Trd.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Trd.icc +// +// Implementation of inline methods of G4Trd +// -------------------------------------------------------------------- + +inline +G4double G4Trd::GetXHalfLength1() const +{ + return fDx1; +} + +inline +G4double G4Trd::GetXHalfLength2() const +{ + return fDx2; +} + +inline +G4double G4Trd::GetYHalfLength1() const +{ + return fDy1; +} + +inline +G4double G4Trd::GetYHalfLength2() const +{ + return fDy2; +} + +inline +G4double G4Trd::GetZHalfLength() const +{ + return fDz; +} + +inline +void G4Trd::SetXHalfLength1(G4double val) +{ + fDx1= val; +} + +inline +void G4Trd::SetXHalfLength2(G4double val) +{ + fDx2= val; +} + +inline +void G4Trd::SetYHalfLength1(G4double val) +{ + fDy1= val; +} + +inline +void G4Trd::SetYHalfLength2(G4double val) +{ + fDy2= val; +} + +inline +void G4Trd::SetZHalfLength(G4double val) +{ + fDz= val; +} diff --git a/source/geometry/solids/CSG/include/G4Tubs.hh b/source/geometry/solids/CSG/include/G4Tubs.hh index ad3937bfce..71934c18fc 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.6 2001/07/11 09:59:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Tubs.hh,v 1.7 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -43,47 +43,23 @@ // A delta angle of 2PI signifies a complete, unsegmented // tube/cylinder. // -// Member functions: -// -// As inherited from G4VSolid+ -// -// G4Tubs(const G4String &pName -// G4double pRMin -// G4double pRMax -// G4double pDz -// G4double pSPhi -// G4double pDPhi ) -// -// - Construct a tubs with the given name and dimensions. -// The angles are provided is radians. -// -// -// Protected: -// -// G4ThreeVectorList* -// CreateRotatedVertices(const G4AffineTransform& pTransform) const -// -// - Create the List of transformed vertices in the format required -// for G4VSolid:: ClipCrossSection and ClipBetweenSections. -// // Member Data: // -// fRMin Inner radius -// fRMax Outer radius -// fDz half length in z +// fRMin Inner radius +// fRMax Outer radius +// fDz half length in z // -// fSPhi The starting phi angle in radians, -// adjusted such the fSPhi+fDPhi<=2PI, -// fSPhi>-2PI +// fSPhi The starting phi angle in radians, +// adjusted such that fSPhi+fDPhi<=2PI, fSPhi>-2PI // -// fDPhi Delta angle of the segment in radians +// fDPhi Delta angle of the segment. // History: -// 10.8.95 P.Kent General cleanup, use G4VSolid extent helper functions -// to CaluclateExtent -// 23.1.94 P.Kent Converted to `tolerant' geometry -// 19.07.96 J.Allison G4GraphicsScene - see G4Box. -// 22.07.96 J.Allison Changed SendPolyhedronTo to CreatePolyhedron. +// 10.08.95 P.Kent: General cleanup, use G4VSolid extent helper functions +// to CalculateExtent() +// 23.01.94 P.Kent: Converted to `tolerant' geometry +// 19.07.96 J.Allison: G4GraphicsScene - see G4Box +// 22.07.96 J.Allison: Changed SendPolyhedronTo to CreatePolyhedron // -------------------------------------------------------------------- #ifndef G4TUBS_HH @@ -93,78 +69,99 @@ class G4Tubs : public G4CSGSolid { - public: + public: // with description - G4Tubs(const G4String &pName, - G4double pRMin, - G4double pRMax, - G4double pDz, - G4double pSPhi, - G4double pDPhi); + G4Tubs( const G4String& pName, + G4double pRMin, + G4double pRMax, + G4double pDz, + G4double pSPhi, + G4double pDPhi ); + // + // Constructs a tubs with the given name and dimensions virtual ~G4Tubs(); + // + // Destructor + + // Accessors - void ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); + inline G4double GetInnerRadius () const; + inline G4double GetOuterRadius () const; + inline G4double GetZHalfLength () const; + inline G4double GetStartPhiAngle () const; + inline G4double GetDeltaPhiAngle () const; - G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; + // Modifiers - G4double GetInnerRadius () const { return fRMin; } - G4double GetOuterRadius () const { return fRMax; } - G4double GetZHalfLength () const { return fDz ; } - G4double GetStartPhiAngle () const { return fSPhi; } - G4double GetDeltaPhiAngle () const { return fDPhi; } + inline void SetInnerRadius (G4double newRMin); + inline void SetOuterRadius (G4double newRMax); + inline void SetZHalfLength (G4double newDz); + inline void SetStartPhiAngle (G4double newSPhi); + inline void SetDeltaPhiAngle (G4double newDPhi); - void SetInnerRadius (G4double newRMin) { fRMin= newRMin; } - void SetOuterRadius (G4double newRMax) { fRMax= newRMax; } - void SetZHalfLength (G4double newDz) { fDz= newDz ; } - void SetStartPhiAngle (G4double newSPhi) { fSPhi= newSPhi; } - void SetDeltaPhiAngle (G4double newDPhi) { fDPhi= newDPhi; } + // Methods for solid - EInside Inside(const G4ThreeVector& p) const; + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ); - G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + 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; + EInside Inside( const G4ThreeVector& p ) const; + + G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) 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 G4ThreeVector& v, + const G4bool calcNorm=G4bool(false), + G4bool *validNorm=0, G4ThreeVector *n=0) const; G4double DistanceToOut(const G4ThreeVector& p) const; - G4GeometryType GetEntityType() const { return G4String("G4Tubs"); } - // Naming method (pseudo-RTTI : run-time type identification) + G4GeometryType GetEntityType() const; - // Visualisation functions + G4std::ostream& StreamInfo( G4std::ostream& os ) const; - void DescribeYourselfTo (G4VGraphicsScene& scene) const; + // Visualisation functions + + void DescribeYourselfTo ( G4VGraphicsScene& scene ) const; G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; - // Older names for access functions + public: // without description - G4double GetRMin() const { return GetInnerRadius(); } // fRMin - G4double GetRMax() const { return GetOuterRadius(); } // fRMax - G4double GetDz () const { return GetZHalfLength() ; } // fDz - G4double GetSPhi() const { return GetStartPhiAngle(); } // fSPhi - G4double GetDPhi() const { return GetDeltaPhiAngle(); } // fDPhi + // Older names for access functions + + inline G4double GetRMin() const; + inline G4double GetRMax() const; + inline G4double GetDz () const; + inline G4double GetSPhi() const; + inline G4double GetDPhi() const; protected: G4ThreeVectorList* - CreateRotatedVertices(const G4AffineTransform& pTransform) const; + CreateRotatedVertices( const G4AffineTransform& pTransform ) const; + // + // Creates the List of transformed vertices in the format required + // for G4VSolid:: ClipCrossSection and ClipBetweenSections G4double fRMin,fRMax,fDz,fSPhi,fDPhi; - // Used by distanceToOut + // Used by distanceToOut + enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kPZ,kMZ}; - // used by normal + + // used by normal + enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; }; - + +#include "G4Tubs.icc" + #endif diff --git a/source/geometry/solids/CSG/include/G4Tubs.icc b/source/geometry/solids/CSG/include/G4Tubs.icc new file mode 100644 index 0000000000..54c5732784 --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Tubs.icc @@ -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: G4Tubs.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Tubs.icc +// +// Implementation of inline methods of G4Tubs +// -------------------------------------------------------------------- + +inline +G4double G4Tubs::GetInnerRadius () const +{ + return fRMin; +} + +inline +G4double G4Tubs::GetOuterRadius () const +{ + return fRMax; +} + +inline +G4double G4Tubs::GetZHalfLength () const +{ + return fDz; +} + +inline +G4double G4Tubs::GetStartPhiAngle () const +{ + return fSPhi; +} + +inline +G4double G4Tubs::GetDeltaPhiAngle () const +{ + return fDPhi; +} + +inline +void G4Tubs::SetInnerRadius (G4double newRMin) +{ + fRMin= newRMin; +} + +inline +void G4Tubs::SetOuterRadius (G4double newRMax) +{ + fRMax= newRMax; +} + +inline +void G4Tubs::SetZHalfLength (G4double newDz) +{ + fDz= newDz; +} + +inline +void G4Tubs::SetStartPhiAngle (G4double newSPhi) +{ + fSPhi= newSPhi; +} + +inline +void G4Tubs::SetDeltaPhiAngle (G4double newDPhi) +{ + fDPhi= newDPhi; +} + +// Older names for access functions + +inline +G4double G4Tubs::GetRMin () const +{ + return GetInnerRadius(); +} + +inline +G4double G4Tubs::GetRMax () const +{ + return GetOuterRadius(); +} + +inline +G4double G4Tubs::GetDz () const +{ + return GetZHalfLength() ; +} + +inline +G4double G4Tubs::GetSPhi () const +{ + return GetStartPhiAngle(); +} + +inline +G4double G4Tubs::GetDPhi () const +{ + return GetDeltaPhiAngle(); +} diff --git a/source/geometry/solids/CSG/src/G4Box.cc b/source/geometry/solids/CSG/src/G4Box.cc index ac9b220ba5..1aaac62cab 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.17 2002/01/10 15:42:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Box.cc,v 1.19 2002/10/28 15:18:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // @@ -35,8 +35,7 @@ // and information before exception in DistanceToOut(p,v,...) // 15.11.00 - D.Williams, V.Grichine: bug fixed in CalculateExtent - change // algorithm for rotated vertices -// -// +// ******************************************************************** #include "G4Box.hh" @@ -56,10 +55,14 @@ // Constructor - check & set half widths G4Box::G4Box(const G4String& pName, - G4double pX, G4double pY, G4double pZ) + G4double pX, + G4double pY, + G4double pZ) : G4CSGSolid(pName) { - if ( pX > 2*kCarTolerance && pY > 2*kCarTolerance&& pZ > 2*kCarTolerance) + if ( (pX > 2*kCarTolerance) + && (pY > 2*kCarTolerance) + && (pZ > 2*kCarTolerance) ) { fDx = pX ; fDy = pY ; @@ -67,9 +70,14 @@ G4Box::G4Box(const G4String& pName, } else { - G4Exception("G4Box::G4Box(...) - invalid dimensions"); - } - + G4cout << "ERROR - G4Box()::G4Box(): " << GetName() << G4endl + << " Dimensions too small ! - " + << pX << ", " << pY << ", " << pZ << G4endl; + G4cerr << "ERROR - G4Box()::G4Box(): " << GetName() << G4endl + << " Dimensions too small ! - " + << pX << ", " << pY << ", " << pZ << G4endl; + G4Exception("G4Box::G4Box() - invalid dimensions"); + } } ////////////////////////////////////////////////////////////////////////// @@ -78,7 +86,6 @@ G4Box::G4Box(const G4String& pName, G4Box::~G4Box() { - ; } ////////////////////////////////////////////////////////////////////////////// @@ -88,7 +95,15 @@ void G4Box::SetXHalfLength(G4double dx) if(dx > 2*kCarTolerance) fDx = dx; else - G4Exception("G4Box::SetXHalfLength(...) - invalid dimensions"); + { + G4cout << "ERROR - G4Box()::SetXHalfLength(): " << GetName() << G4endl + << " Dimension X too small ! - " + << dx << G4endl; + G4cerr << "ERROR - G4Box()::SetXHalfLength(): " << GetName() << G4endl + << " Dimension X too small ! - " + << dx << G4endl; + G4Exception("G4Box::SetXHalfLength() - invalid dimensions"); + } } void G4Box::SetYHalfLength(G4double dy) @@ -96,7 +111,15 @@ void G4Box::SetYHalfLength(G4double dy) if(dy > 2*kCarTolerance) fDy = dy; else - G4Exception("G4Box::SetYHalfLength(...) - invalid dimensions"); + { + G4cout << "ERROR - G4Box()::SetYHalfLength(): " << GetName() << G4endl + << " Dimension Y too small ! - " + << dy << G4endl; + G4cerr << "ERROR - G4Box()::SetYHalfLength(): " << GetName() << G4endl + << " Dimension Y too small ! - " + << dy << G4endl; + G4Exception("G4Box::SetYHalfLength() - invalid dimensions"); + } } void G4Box::SetZHalfLength(G4double dz) @@ -104,7 +127,15 @@ void G4Box::SetZHalfLength(G4double dz) if(dz > 2*kCarTolerance) fDz = dz; else - G4Exception("G4Box::SetZHalfLength(...) - invalid dimensions"); + { + G4cout << "ERROR - G4Box()::SetZHalfLength(): " << GetName() << G4endl + << " Dimension Z too small ! - " + << dz << G4endl; + G4cerr << "ERROR - G4Box()::SetZHalfLength(): " << GetName() << G4endl + << " Dimension Z too small ! - " + << dz << G4endl; + G4Exception("G4Box::SetZHalfLength() - invalid dimensions"); + } } @@ -126,15 +157,15 @@ void G4Box::ComputeDimensions(G4VPVParameterisation* p, // Calculate extent under transform and specified limit G4bool G4Box::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const { 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 + // 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; @@ -151,13 +182,13 @@ G4bool G4Box::CalculateExtent(const EAxis pAxis, else { if (xMin < pVoxelLimit.GetMinXExtent()) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if (xMax > pVoxelLimit.GetMaxXExtent()) - { - xMax = pVoxelLimit.GetMaxXExtent() ; - } + { + xMin = pVoxelLimit.GetMinXExtent() ; + } + if (xMax > pVoxelLimit.GetMaxXExtent()) + { + xMax = pVoxelLimit.GetMaxXExtent() ; + } } } yoffset = pTransform.NetTranslation().y() ; @@ -167,17 +198,17 @@ G4bool G4Box::CalculateExtent(const EAxis pAxis, if (pVoxelLimit.IsYLimited()) { if ( yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance || - yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance ) return false ; + yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance ) return false ; else { if (yMin < pVoxelLimit.GetMinYExtent()) - { - yMin = pVoxelLimit.GetMinYExtent() ; - } - if (yMax > pVoxelLimit.GetMaxYExtent()) - { - yMax = pVoxelLimit.GetMaxYExtent() ; - } + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if (yMax > pVoxelLimit.GetMaxYExtent()) + { + yMax = pVoxelLimit.GetMaxYExtent() ; + } } } zoffset = pTransform.NetTranslation().z() ; @@ -187,33 +218,33 @@ G4bool G4Box::CalculateExtent(const EAxis pAxis, if (pVoxelLimit.IsZLimited()) { if ( zMin > pVoxelLimit.GetMaxZExtent()+kCarTolerance || - zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance ) return false ; + zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance ) return false ; else { - if (zMin < pVoxelLimit.GetMinZExtent()) - { - zMin = pVoxelLimit.GetMinZExtent() ; - } - if (zMax > pVoxelLimit.GetMaxZExtent()) - { - zMax = pVoxelLimit.GetMaxZExtent() ; - } + if (zMin < pVoxelLimit.GetMinZExtent()) + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if (zMax > pVoxelLimit.GetMaxZExtent()) + { + zMax = pVoxelLimit.GetMaxZExtent() ; + } } } switch (pAxis) { case kXAxis: - pMin = xMin ; - pMax = xMax ; - break ; + pMin = xMin ; + pMax = xMax ; + break ; case kYAxis: - pMin=yMin; - pMax=yMax; - break; + pMin=yMin; + pMax=yMax; + break; case kZAxis: - pMin=zMin; - pMax=zMax; - break; + pMin=zMin; + pMax=zMax; + break; default: break; } @@ -230,7 +261,7 @@ G4bool G4Box::CalculateExtent(const EAxis pAxis, pMin = +kInfinity ; pMax = -kInfinity ; -// Calculate rotated vertex coordinates + // Calculate rotated vertex coordinates vertices = CreateRotatedVertices(pTransform) ; ClipCrossSection(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; @@ -238,62 +269,64 @@ G4bool G4Box::CalculateExtent(const EAxis pAxis, ClipBetweenSections(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; if (pVoxelLimit.IsLimited(pAxis) == false) - { + { if ( pMin != kInfinity || pMax != -kInfinity ) { - existsAfterClip = true ; + existsAfterClip = true ; -// Add 2*tolerance to avoid precision troubles + // Add 2*tolerance to avoid precision troubles - pMin -= kCarTolerance; - pMax += kCarTolerance; + 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); + ( 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); + clipCentre(pAxis) = pVoxelLimit.GetMinExtent(pAxis); - if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) + if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) { - pMin = pVoxelLimit.GetMinExtent(pAxis); + pMin = pVoxelLimit.GetMinExtent(pAxis); } - else + else { - pMin -= kCarTolerance; + pMin -= kCarTolerance; } - clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); + clipCentre(pAxis) = pVoxelLimit.GetMaxExtent(pAxis); - if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) + if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) { - pMax = pVoxelLimit.GetMaxExtent(pAxis); + pMax = pVoxelLimit.GetMaxExtent(pAxis); } - else + 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) + + // 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) ; + existsAfterClip = true ; + pMin = pVoxelLimit.GetMinExtent(pAxis) ; + pMax = pVoxelLimit.GetMaxExtent(pAxis) ; } } delete vertices; @@ -342,7 +375,7 @@ G4ThreeVector G4Box::SurfaceNormal( const G4ThreeVector& p) const G4double distx, disty, distz ; G4ThreeVector norm ; -// Calculate distances as if in 1st octant + // Calculate distances as if in 1st octant distx = fabs(fabs(p.x()) - fDx) ; disty = fabs(fabs(p.y()) - fDy) ; @@ -365,7 +398,6 @@ G4ThreeVector G4Box::SurfaceNormal( const G4ThreeVector& p) const { if ( disty <= distz ) // Closest to Y { - if ( p.y() < 0 ) norm = G4ThreeVector(0,-1.0,0) ; else norm = G4ThreeVector(0, 1.0,0) ; } @@ -401,109 +433,108 @@ G4ThreeVector G4Box::SurfaceNormal( const G4ThreeVector& p) const G4double G4Box::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) const { - G4double safx, safy, safz ; - G4double smin=0.0, sminy, sminz ; // , sminx ; - G4double smax=kInfinity, smaxy, smaxz ; // , smaxx ; // they always > 0 - G4double stmp ; - G4double sOut=kInfinity, sOuty=kInfinity, sOutz=kInfinity ; + G4double safx, safy, safz ; + G4double smin=0.0, sminy, sminz ; // , sminx ; + G4double smax=kInfinity, smaxy, smaxz ; // , smaxx ; // they always > 0 + G4double stmp ; + G4double sOut=kInfinity, sOuty=kInfinity, sOutz=kInfinity ; - safx = fabs(p.x()) - fDx ; // minimum distance to x surface of shape - safy = fabs(p.y()) - fDy ; - safz = fabs(p.z()) - fDz ; + safx = fabs(p.x()) - fDx ; // minimum distance to x surface of shape + safy = fabs(p.y()) - fDy ; + safz = fabs(p.z()) - fDz ; -// Will we intersect? -// If safx/y/z is >-tol/2 the point is outside/on the box's x/y/z extent. -// If both p.x/y/z and v.x/y/z repectively are both positive/negative, -// travel is in a direction away from the shape. + // Will we intersect? + // If safx/y/z is >-tol/2 the point is outside/on the box's x/y/z extent. + // If both p.x/y/z and v.x/y/z repectively are both positive/negative, + // travel is in a direction away from the shape. - if ( ((p.x()*v.x() >= 0.0) && safx > -kCarTolerance*0.5) - || ((p.y()*v.y() >= 0.0) && safy > -kCarTolerance*0.5) - || ((p.z()*v.z() >= 0.0) && safz > -kCarTolerance*0.5) ) - { - return kInfinity ; // travel away or parallel within tolerance - } + if ( ((p.x()*v.x() >= 0.0) && safx > -kCarTolerance*0.5) + || ((p.y()*v.y() >= 0.0) && safy > -kCarTolerance*0.5) + || ((p.z()*v.z() >= 0.0) && safz > -kCarTolerance*0.5) ) + { + return kInfinity ; // travel away or parallel within tolerance + } -// Compute min / max distances for x/y/z travel: -// X Planes + // Compute min / max distances for x/y/z travel: + // X Planes - if ( v.x()) - { - stmp = 1.0/fabs(v.x()) ; + if ( v.x()) + { + stmp = 1.0/fabs(v.x()) ; - if (safx >= 0.0) + if (safx >= 0.0) + { + smin = safx*stmp ; + smax = (fDx+fabs(p.x()))*stmp ; + } + else + { + if (v.x() > 0) sOut = (fDx - p.x())*stmp ; + if (v.x() < 0) sOut = (fDx + p.x())*stmp ; + } + } + + // Y Planes + + if ( v.y()) + { + stmp = 1.0/fabs(v.y()) ; + + if (safy >= 0.0) + { + sminy = safy*stmp ; + smaxy = (fDy+fabs(p.y()))*stmp ; + + if (sminy > smin) smin=sminy ; + if (smaxy < smax) smax=smaxy ; + + if (smin >= smax-kCarTolerance*0.5) { - smin = safx*stmp ; - smax = (fDx+fabs(p.x()))*stmp ; + return kInfinity ; // touch XY corner } - else - { - if (v.x() > 0) sOut = (fDx - p.x())*stmp ; - if (v.x() < 0) sOut = (fDx + p.x())*stmp ; + } + else + { + if (v.y() > 0) sOuty = (fDy - p.y())*stmp ; + if (v.y() < 0) sOuty = (fDy + p.y())*stmp ; + if( sOuty < sOut ) sOut = sOuty ; + } + } + + // Z planes + + if ( v.z() ) + { + stmp = 1.0/fabs(v.z()) ; + + if ( safz >= 0.0) + { + sminz = safz*stmp ; + smaxz = (fDz+fabs(p.z()))*stmp ; + + if (sminz > smin) smin = sminz ; + if (smaxz < smax) smax = smaxz ; + + if (smin >= smax-kCarTolerance*0.5) + { + return kInfinity ; // touch ZX or ZY corners } - } + } + else + { + if (v.z() > 0) sOutz = (fDz - p.z())*stmp ; + if (v.z() < 0) sOutz = (fDz + p.z())*stmp ; + if( sOutz < sOut ) sOut = sOutz ; + } + } -// Y Planes + if ( sOut <= smin + 0.5*kCarTolerance) // travel over edge + { + return kInfinity ; + } + if (smin < 0.5*kCarTolerance) smin = 0.0 ; - if ( v.y()) - { - stmp = 1.0/fabs(v.y()) ; - - if (safy >= 0.0) - { - sminy = safy*stmp ; - smaxy = (fDy+fabs(p.y()))*stmp ; - - if (sminy > smin) smin=sminy ; - if (smaxy < smax) smax=smaxy ; - - if (smin >= smax-kCarTolerance*0.5) - { - return kInfinity ; // touch XY corner - } - } - else - { - if (v.y() > 0) sOuty = (fDy - p.y())*stmp ; - if (v.y() < 0) sOuty = (fDy + p.y())*stmp ; - if( sOuty < sOut ) sOut = sOuty ; - } - } - - -// Z planes - - if ( v.z() ) - { - stmp = 1.0/fabs(v.z()) ; - - if ( safz >= 0.0) - { - sminz = safz*stmp ; - smaxz = (fDz+fabs(p.z()))*stmp ; - - if (sminz > smin) smin = sminz ; - if (smaxz < smax) smax = smaxz ; - - if (smin >= smax-kCarTolerance*0.5) - { - return kInfinity ; // touch ZX or ZY corners - } - } - else - { - if (v.z() > 0) sOutz = (fDz - p.z())*stmp ; - if (v.z() < 0) sOutz = (fDz + p.z())*stmp ; - if( sOutz < sOut ) sOut = sOutz ; - } - } - - if ( sOut <= smin + 0.5*kCarTolerance) // travel over edge - { - return kInfinity ; - } - if (smin < 0.5*kCarTolerance) smin = 0.0 ; - - return smin ; + return smin ; } ////////////////////////////////////////////////////////////////////////// @@ -537,8 +568,8 @@ G4double G4Box::DistanceToIn(const G4ThreeVector& p) const // - when leaving a surface & v.close, return 0 G4double G4Box::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm,G4ThreeVector *n) const + const G4bool calcNorm, + G4bool *validNorm,G4ThreeVector *n) const { ESide side = kUndefined ; G4double pdist,stmp,snxt; @@ -547,145 +578,142 @@ G4double G4Box::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, if (v.x() > 0) // X planes { - pdist = fDx - p.x() ; + pdist = fDx - p.x() ; - if (pdist > kCarTolerance*0.5) - { - snxt = pdist/v.x() ; - side = kPX ; - } - else - { - if (calcNorm) *n = G4ThreeVector(1,0,0) ; - return snxt = 0 ; - } + if (pdist > kCarTolerance*0.5) + { + snxt = pdist/v.x() ; + side = kPX ; + } + else + { + if (calcNorm) *n = G4ThreeVector(1,0,0) ; + return snxt = 0 ; + } } else if (v.x() < 0) { - pdist = fDx + p.x() ; + pdist = fDx + p.x() ; - if (pdist > kCarTolerance*0.5) - { - snxt = -pdist/v.x() ; - side = kMX ; - } - else - { - if (calcNorm) *n = G4ThreeVector(-1,0,0) ; - return snxt = 0 ; - } + if (pdist > kCarTolerance*0.5) + { + snxt = -pdist/v.x() ; + side = kMX ; + } + else + { + if (calcNorm) *n = G4ThreeVector(-1,0,0) ; + return snxt = 0 ; + } } else snxt = kInfinity ; if ( v.y() > 0 ) // Y planes { - pdist=fDy-p.y(); + pdist=fDy-p.y(); - if (pdist>kCarTolerance*0.5) - { - stmp=pdist/v.y(); + if (pdist>kCarTolerance*0.5) + { + stmp=pdist/v.y(); - if (stmp kCarTolerance*0.5) - { - stmp=-pdist/v.y(); + if (pdist > kCarTolerance*0.5) + { + stmp=-pdist/v.y(); - if (stmp0) // Z planes { - pdist=fDz-p.z(); + pdist=fDz-p.z(); - if (pdist > kCarTolerance*0.5) - { - stmp=pdist/v.z(); + if (pdist > kCarTolerance*0.5) + { + stmp=pdist/v.z(); - if (stmp < snxt) - { - snxt=stmp; - side=kPZ; - } - } - else - { - if (calcNorm) *n = G4ThreeVector(0,0,1) ; - return snxt = 0 ; - } + if (stmp < snxt) + { + snxt=stmp; + side=kPZ; + } + } + else + { + if (calcNorm) *n = G4ThreeVector(0,0,1) ; + return snxt = 0 ; + } } else if (v.z()<0) { - pdist = fDz + p.z() ; + pdist = fDz + p.z() ; - if (pdist > kCarTolerance*0.5) - { - stmp=-pdist/v.z(); + if (pdist > kCarTolerance*0.5) + { + stmp=-pdist/v.z(); - if (stmp < snxt) - { - snxt=stmp; - side=kMZ; - } - } - else - { - if (calcNorm) *n = G4ThreeVector(0,0,-1) ; - return snxt = 0 ; - } + if (stmp < snxt) + { + snxt=stmp; + side=kMZ; + } + } + else + { + if (calcNorm) *n = G4ThreeVector(0,0,-1) ; + return snxt = 0 ; + } } if (calcNorm) - { + { switch (side) { case kPX: - *n=G4ThreeVector(1,0,0); - break; + *n=G4ThreeVector(1,0,0); + break; case kMX: - *n=G4ThreeVector(-1,0,0); - break; + *n=G4ThreeVector(-1,0,0); + break; case kPY: - *n=G4ThreeVector(0,1,0); - break; + *n=G4ThreeVector(0,1,0); + break; case kMY: - *n=G4ThreeVector(0,-1,0); - break; + *n=G4ThreeVector(0,-1,0); + break; case kPZ: - *n=G4ThreeVector(0,0,1); - break; + *n=G4ThreeVector(0,0,1); + break; case kMZ: - *n=G4ThreeVector(0,0,-1); - break; + *n=G4ThreeVector(0,0,-1); + break; default: G4cout.precision(16); G4cout << G4endl; - G4cout << "Box parameters:" << G4endl << G4endl; - G4cout << "fDx = " << fDx/mm << " mm" << G4endl; - G4cout << "fDy = " << fDy/mm << " mm" << G4endl; - G4cout << "fDz = " << fDz/mm << " mm" << G4endl; + DumpInfo(); G4cout << "Position:" << G4endl << G4endl; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; @@ -696,8 +724,8 @@ G4double G4Box::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, G4cout << "v.z() = " << v.z() << G4endl << G4endl; G4cout << "Proposed distance :" << G4endl << G4endl; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; - G4Exception("Invalid enum in G4Box::DistanceToOut(p,v,...)"); - break; + G4Exception("G4Box::DistanceToOut() - Invalid enum"); + break; } } return snxt; @@ -717,16 +745,13 @@ G4double G4Box::DistanceToOut(const G4ThreeVector& p) const { G4cout.precision(16) ; G4cout << G4endl ; - G4cout << "Box parameters:" << G4endl << G4endl ; - G4cout << "fDx = " << fDx/mm << " mm" << G4endl ; - G4cout << "fDy = " << fDy/mm << " mm" << G4endl ; - G4cout << "fDz = " << fDz/mm << " mm" << G4endl << G4endl ; + DumpInfo(); G4cout << "Position:" << G4endl << G4endl ; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; G4cout << "G4Box::DistanceToOut(p) - point p is outside ?!" << G4endl ; - // G4Exception("Invalid call in G4Box::DistanceToOut(p), point p is outside") ; + G4cerr << "G4Box::DistanceToOut(p) - point p is outside ?!" << G4endl ; } #endif @@ -735,19 +760,19 @@ G4double G4Box::DistanceToOut(const G4ThreeVector& p) const safy1 = fDy - p.y() ; safy2 = fDy + p.y() ; safz1 = fDz - p.z() ; - safz2 = fDz + p.z() ; - -// shortest Dist to any boundary now MIN(safx1,safx2,safy1..) + 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 (safy2 < safe) safe = safy2 ; + if (safz1 < safe) safe = safz1 ; + if (safz2 < safe) safe = safz2 ; - if (safe < 0) safe = 0 ; - return safe ; + if (safe < 0) safe = 0 ; + return safe ; } //////////////////////////////////////////////////////////////////////// @@ -787,11 +812,40 @@ G4Box::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { - G4Exception("G4Box::CreateRotatedVertices - Out of memory !"); + DumpInfo(); + G4Exception("G4Box::CreateRotatedVertices() - Out of memory !"); } return vertices; } +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType + +G4GeometryType G4Box::GetEntityType() const +{ + return G4String("G4Box"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Box::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Box\n" + << " Parameters: \n" + << " half length X: " << fDx/mm << " mm \n" + << " half length Y: " << fDy/mm << " mm \n" + << " half length Z: " << fDz/mm << " mm \n" + << "-----------------------------------------------------------\n"; + + return os; +} + ////////////////////////////////////////////////////////////////////////// // // Methods for visualisation diff --git a/source/geometry/solids/CSG/src/G4CSGSolid.cc b/source/geometry/solids/CSG/src/G4CSGSolid.cc index 3a2d7e07d9..888812a0b8 100644 --- a/source/geometry/solids/CSG/src/G4CSGSolid.cc +++ b/source/geometry/solids/CSG/src/G4CSGSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CSGSolid.cc,v 1.3 2001/07/11 09:59:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CSGSolid.cc,v 1.4 2002/10/28 11:43:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4CSGSolid.hh" @@ -37,3 +37,16 @@ G4CSGSolid::G4CSGSolid(const G4String& name) : G4CSGSolid::~G4CSGSolid() { } + +G4std::ostream& G4CSGSolid::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: " << GetEntityType() << "\n" + << " Parameters: \n" + << " NOT available !\n" + << "-----------------------------------------------------------\n"; + + return os; +} diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc index 527806b9f5..ba056aecd5 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.20 2002/01/10 15:42:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Cons.cc,v 1.23 2002/10/28 15:18:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4Cons // @@ -30,16 +30,18 @@ // // History: // -// 05.10.00 V. Grichine bugs fixed in Distance ToIn(p,v) -// 17.08.00 V.Grichine, if one and only one Rmin=0, it'll be 1e3*kRadTolerance -// 08.08.00 V.Grichine, more stable roots of 2-equation in DistanceToOut(p,v,...) -// 06.03.00 V.Grichine, modifications in DistanceToOut(p,v,...) -// 18.11.99 V.Grichine side = kNull initialisation in DistanceToOut(p,v,...) -// 28.04.99 V. Grichine bugs fixed in Distance ToOut(p,v,...) and -// Distance ToIn(p,v) -// 09.10.98 V. Grichine modifications in Distance ToOut(p,v,...) -// 13.09.96 V. Grichine: final modifications to commit -// ~1994 P. Kent: main part of geometry functions +// ~1994 P.Kent: main part of geometry functions +// 13.09.96 V.Grichine: final modifications to commit +// 09.10.98 V.Grichine: modifications in Distance ToOut(p,v,...) +// 28.04.99 V.Grichine: bugs fixed in Distance ToOut(p,v,...) and +// Distance ToIn(p,v) +// 18.11.99 V.Grichine: side = kNull initialisation in DistanceToOut(p,v,...) +// 06.03.00 V.Grichine: modifications in DistanceToOut(p,v,...) +// 08.08.00 V.Grichine: more stable roots 2-equation in DistanceToOut(p,v,...) +// 17.08.00 V.Grichine: if one and only one Rmin=0, it'll be 1e3*kRadTolerance +// 05.10.00 V.Grichine: bugs fixed in Distance ToIn(p,v) +// 26.06.02 V.Grichine: bugs fixed in Distance ToIn(p,v) +// ******************************************************************** #include "G4Cons.hh" @@ -71,7 +73,6 @@ enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; G4Cons::~G4Cons() { - ; } ////////////////////////////////////////////////////////////////////////// @@ -80,20 +81,28 @@ G4Cons::~G4Cons() // - note if pDPhi>2PI then reset to 2PI G4Cons::G4Cons( const G4String& pName, - G4double pRmin1, G4double pRmax1, - G4double pRmin2, G4double pRmax2, - G4double pDz, - G4double pSPhi, G4double pDPhi) : G4CSGSolid(pName) + G4double pRmin1, G4double pRmax1, + G4double pRmin2, G4double pRmax2, + G4double pDz, + G4double pSPhi, G4double pDPhi) + : G4CSGSolid(pName) { -// Check z-len + // Check z-len - if ( pDz > 0 ) fDz = pDz ; + if ( pDz > 0 ) + fDz = pDz ; else { - G4Exception("Error in G4Cons::G4Cons - invalid z half-length"); + G4cout << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl + << " Negative Z half-length ! - " + << pDz << G4endl; + G4cerr << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl + << " Negative Z half-length ! - " + << pDz << G4endl; + G4Exception("G4Cons::G4Cons() - invalid Z half-length"); } -// Check radii + // Check radii if ( pRmin1 < pRmax1 && pRmin2 < pRmax2 && pRmin1 >= 0 && pRmin2 >= 0 ) { @@ -105,25 +114,45 @@ G4Cons::G4Cons( const G4String& pName, if( (pRmin1 == 0.0 && pRmin2 > 0.0) ) fRmin1 = 1e3*kRadTolerance ; if( (pRmin2 == 0.0 && pRmin1 > 0.0) ) fRmin2 = 1e3*kRadTolerance ; } - else G4Exception("Error in G4Cons::G4Cons - invalid radii") ; + else + { + G4cout << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl + << " Invalid values for radii !" << G4endl + << " pRmin1 = " << pRmin1 << ", pRmin2 = " << pRmin2 + << ", pRmax1 = " << pRmax1 << ", pRmax2 = " << pRmax2 << G4endl; + G4cerr << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl + << " Invalide values for radii ! - " + << " pRmin1 = " << pRmin1 << ", pRmin2 = " << pRmin2 + << ", pRmax1 = " << pRmax1 << ", pRmax2 = " << pRmax2 << G4endl; + G4Exception("G4Cons::G4Cons() - invalid radii") ; + } -// Check angles + // Check angles if ( pDPhi >= 2.0*M_PI ) { - fDPhi=2*M_PI; - fSPhi=0; + fDPhi=2*M_PI; + fSPhi=0; } else { if ( pDPhi > 0 ) fDPhi = pDPhi ; - else G4Exception("Error in G4Cons::G4Cons - invalid pDPhi") ; - -// Ensure pSPhi in 0-2PI or -2PI-0 range if shape crosses 0 + else + { + G4cout << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl + << " Negative delta-Phi ! - " + << pDPhi << G4endl; + G4cerr << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl + << " Negative delta-Phi ! - " + << pDPhi << G4endl; + G4Exception("G4Cons::G4Cons() - invalid pDPhi") ; + } + + // Ensure pSPhi in 0-2PI or -2PI-0 range if shape crosses 0 if ( pSPhi < 0 ) fSPhi = 2.0*M_PI - fmod(fabs(pSPhi),2.0*M_PI) ; else fSPhi = fmod(pSPhi,2.0*M_PI) ; - + if (fSPhi + fDPhi > 2.0*M_PI) fSPhi -= 2.0*M_PI ; } } @@ -142,56 +171,55 @@ EInside G4Cons::Inside(const G4ThreeVector& p) const r2 = p.x()*p.x() + p.y()*p.y() ; rl = 0.5*(fRmin2*(p.z() + fDz) + fRmin1*(fDz - p.z()))/fDz ; -// inner radius at z of point + // inner radius at z of point rh = 0.5*(fRmax2*(p.z()+fDz)+fRmax1*(fDz-p.z()))/fDz; -// outer radius at z of point + // outer radius at z of point if (rl) tolRMin = rl + kRadTolerance*0.5 ; else tolRMin = 0.0 ; tolRMax = rh - kRadTolerance*0.5 ; - + if ( r2 >= tolRMin*tolRMin && r2 <= tolRMax*tolRMax ) { if ( fDPhi == 2*M_PI || r2 == 0 ) in = kInside ; else { -// Try inner tolerant phi boundaries (=>inside) -// if not inside, try outer tolerant phi boundaries + // Try inner tolerant phi boundaries (=>inside) + // if not inside, try outer tolerant phi boundaries - pPhi = atan2(p.y(),p.x()) ; + pPhi = atan2(p.y(),p.x()) ; - if (pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2pi - if (fSPhi >= 0) - { - if ( pPhi >= fSPhi + kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi - kAngTolerance*0.5 ) - { - in = kInside ; - } - else if ( pPhi >= fSPhi - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) - { - in = kSurface ; - } - } - else - { - if ( pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; - - if ( pPhi >= fSPhi + 2*M_PI + kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + 2*M_PI - kAngTolerance*0.5 ) - { - in = kInside ; - } - else if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) - { - in = kSurface ; - } - } + if (pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2pi + if (fSPhi >= 0) + { + if ( pPhi >= fSPhi + kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi - kAngTolerance*0.5 ) + { + in = kInside ; + } + else if ( pPhi >= fSPhi - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) + { + in = kSurface ; + } + } + else + { + if ( pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; + if ( pPhi >= fSPhi + 2*M_PI + kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + 2*M_PI - kAngTolerance*0.5 ) + { + in = kInside ; + } + else if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) + { + in = kSurface ; + } + } } } else // Try generous boundaries @@ -203,50 +231,48 @@ EInside G4Cons::Inside(const G4ThreeVector& p) const if (r2 >= tolRMin*tolRMin && r2 <= tolRMax*tolRMax) { - if (fDPhi == 2*M_PI || r2 == 0) // Continuous in phi or on z-axis + if (fDPhi == 2*M_PI || r2 == 0) // Continuous in phi or on z-axis { - in = kSurface ; - } - else // Try outer tolerant phi boundaries only - { - pPhi = atan2(p.y(),p.x()) ; + in = kSurface ; + } + else // Try outer tolerant phi boundaries only + { + pPhi = atan2(p.y(),p.x()) ; - if (pPhi < 0) pPhi += 2*M_PI ; // 0<=pPhi<2pi - - if ( fSPhi >= 0 ) - { - if ( pPhi >= fSPhi - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) - { - in = kSurface ; - } - } - else - { - if ( pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; - - if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) - { - in = kSurface ; - } - } - } + if ( pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2pi + if ( fSPhi >= 0 ) + { + if ( pPhi >= fSPhi - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) + { + in = kSurface ; + } + } + else + { + if ( pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; + if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) + { + in = kSurface ; + } + } + } } } } else if (fabs(p.z()) <= fDz + kCarTolerance*0.5 ) { -// Check within tolerant r limits + // Check within tolerant r limits r2 = p.x()*p.x() + p.y()*p.y() ; rl = 0.5*(fRmin2*(p.z() + fDz) + fRmin1*(fDz - p.z()))/fDz ; -// inner radius at z of point + // inner radius at z of point rh = 0.5*(fRmax2*(p.z() + fDz) + fRmax1*(fDz - p.z()))/fDz; -// outer radius at z of point + // outer radius at z of point tolRMin = rl - kRadTolerance*0.5 ; @@ -258,30 +284,30 @@ EInside G4Cons::Inside(const G4ThreeVector& p) const { if ( fDPhi == 2*M_PI || r2 == 0 ) // Continuous in phi or on z-axis { - in = kSurface ; + in = kSurface ; } else // Try outer tolerant phi boundaries { - pPhi = atan2(p.y(),p.x()) ; + pPhi = atan2(p.y(),p.x()) ; - if ( pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2pi - if ( fSPhi >= 0 ) - { - if ( pPhi >= fSPhi - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) - { - in = kSurface ; - } - } - else - { - if ( pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; - if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) - { - in = kSurface ; - } - } + if ( pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2pi + if ( fSPhi >= 0 ) + { + if ( pPhi >= fSPhi - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) + { + in = kSurface ; + } + } + else + { + if ( pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; + if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && + pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) + { + in = kSurface ; + } + } } } } @@ -306,26 +332,26 @@ void G4Cons::ComputeDimensions( G4VPVParameterisation* p, // Calculate extent under transform and specified limit G4bool G4Cons::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, - G4double& pMax ) const + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, + G4double& pMax ) const { if ( !pTransform.IsRotated() && fDPhi == 2.0*M_PI && fRmin1 == 0 && fRmin2 == 0 ) { -// Special case handling for unrotated solid cones -// Compute z/x/y mins and maxs for bounding box respecting limits, -// with early returns if outside limits. Then switch() on pAxis, -// and compute exact x and y limit for x/y case - + // Special case handling for unrotated solid cones + // Compute z/x/y mins and maxs for bounding box respecting limits, + // with early returns if outside limits. Then switch() on pAxis, + // and compute exact x and y limit for x/y case + G4double xoffset, xMin, xMax ; G4double yoffset, yMin, yMax ; G4double zoffset, zMin, zMax ; G4double diff1, diff2, maxDiff, newMin, newMax, RMax ; G4double xoff1, xoff2, yoff1, yoff2 ; - + zoffset = pTransform.NetTranslation().z(); zMin = zoffset - fDz ; zMax = zoffset + fDz ; @@ -335,22 +361,22 @@ G4bool G4Cons::CalculateExtent( const EAxis pAxis, if( zMin > pVoxelLimit.GetMaxZExtent() + kCarTolerance || zMax < pVoxelLimit.GetMinZExtent() - kCarTolerance ) { - return false ; + return false ; } else { - if ( zMin < pVoxelLimit.GetMinZExtent() ) - { - zMin = pVoxelLimit.GetMinZExtent() ; - } - if ( zMax > pVoxelLimit.GetMaxZExtent() ) - { - zMax = pVoxelLimit.GetMaxZExtent() ; - } + if ( zMin < pVoxelLimit.GetMinZExtent() ) + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if ( zMax > pVoxelLimit.GetMaxZExtent() ) + { + zMax = pVoxelLimit.GetMaxZExtent() ; + } } } xoffset = pTransform.NetTranslation().x() ; - RMax = (fRmax2 >= fRmax1) ? zMax : zMin ; + RMax = (fRmax2 >= fRmax1) ? zMax : zMin ; xMax = xoffset + (fRmax1 + fRmax2)*0.5 + (RMax - zoffset)*(fRmax2 - fRmax1)/(2*fDz) ; xMin = 2*xoffset-xMax ; @@ -360,18 +386,18 @@ G4bool G4Cons::CalculateExtent( const EAxis pAxis, if ( xMin > pVoxelLimit.GetMaxXExtent() + kCarTolerance || xMax < pVoxelLimit.GetMinXExtent() - kCarTolerance ) { - return false ; + return false ; } else { - if ( xMin < pVoxelLimit.GetMinXExtent() ) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if ( xMax > pVoxelLimit.GetMaxXExtent() ) - { - xMax=pVoxelLimit.GetMaxXExtent() ; - } + if ( xMin < pVoxelLimit.GetMinXExtent() ) + { + xMin = pVoxelLimit.GetMinXExtent() ; + } + if ( xMax > pVoxelLimit.GetMaxXExtent() ) + { + xMax=pVoxelLimit.GetMaxXExtent() ; + } } } yoffset = pTransform.NetTranslation().y() ; @@ -385,71 +411,73 @@ G4bool G4Cons::CalculateExtent( const EAxis pAxis, if ( yMin > pVoxelLimit.GetMaxYExtent() + kCarTolerance || yMax < pVoxelLimit.GetMinYExtent() - kCarTolerance ) { - return false ; + return false ; } else { - if ( yMin < pVoxelLimit.GetMinYExtent() ) - { - yMin = pVoxelLimit.GetMinYExtent() ; - } - if ( yMax > pVoxelLimit.GetMaxYExtent() ) - { - yMax = pVoxelLimit.GetMaxYExtent() ; - } + if ( yMin < pVoxelLimit.GetMinYExtent() ) + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if ( yMax > pVoxelLimit.GetMaxYExtent() ) + { + yMax = pVoxelLimit.GetMaxYExtent() ; + } } } switch (pAxis) // Known to cut cones { case kXAxis: - yoff1 = yoffset - yMin ; - yoff2 = yMax - yoffset ; + yoff1 = yoffset - yMin ; + yoff2 = yMax - yoffset ; - if (yoff1 >= 0 && yoff2 >= 0) // Y limits cross max/min x => no change - { - pMin = xMin ; - pMax = xMax ; - } - else - { -// Y limits don't cross max/min x => compute max delta x, hence new mins/maxs - - diff1 = sqrt(RMax*RMax - yoff1*yoff1) ; - diff2 = sqrt(RMax*RMax - yoff2*yoff2) ; - maxDiff = (diff1>diff2) ? diff1:diff2 ; - newMin = xoffset - maxDiff ; - newMax = xoffset + maxDiff ; - pMin = ( newMin < xMin ) ? xMin : newMin ; - pMax = ( newMax > xMax) ? xMax : newMax ; - } + if (yoff1 >= 0 && yoff2 >= 0) // Y limits cross max/min x => no change + { + pMin = xMin ; + pMax = xMax ; + } + else + { + // Y limits don't cross max/min x => compute max delta x, + // hence new mins/maxs + + diff1 = sqrt(RMax*RMax - yoff1*yoff1) ; + diff2 = sqrt(RMax*RMax - yoff2*yoff2) ; + maxDiff = (diff1>diff2) ? diff1:diff2 ; + newMin = xoffset - maxDiff ; + newMax = xoffset + maxDiff ; + pMin = ( newMin < xMin ) ? xMin : newMin ; + pMax = ( newMax > xMax) ? xMax : newMax ; + } break ; case kYAxis: - xoff1 = xoffset - xMin ; - xoff2 = xMax - xoffset ; + xoff1 = xoffset - xMin ; + xoff2 = xMax - xoffset ; - if (xoff1 >= 0 && xoff2 >= 0 ) // X limits cross max/min y => no change - { - pMin = yMin ; - pMax = yMax ; - } - else - { -// X limits don't cross max/min y => compute max delta y, hence new mins/maxs + if (xoff1 >= 0 && xoff2 >= 0 ) // X limits cross max/min y => no change + { + pMin = yMin ; + pMax = yMax ; + } + else + { + // X limits don't cross max/min y => compute max delta y, + // hence new mins/maxs - diff1 = sqrt(RMax*RMax - xoff1*xoff1) ; - diff2 = sqrt(RMax*RMax-xoff2*xoff2) ; - maxDiff = (diff1 > diff2) ? diff1:diff2 ; - newMin = yoffset - maxDiff ; - newMax = yoffset + maxDiff ; - pMin = (newMin < yMin) ? yMin : newMin ; - pMax = (newMax > yMax) ? yMax : newMax ; - } + diff1 = sqrt(RMax*RMax - xoff1*xoff1) ; + diff2 = sqrt(RMax*RMax-xoff2*xoff2) ; + maxDiff = (diff1 > diff2) ? diff1:diff2 ; + newMin = yoffset - maxDiff ; + newMax = yoffset + maxDiff ; + pMin = (newMin < yMin) ? yMin : newMin ; + pMax = (newMax > yMax) ? yMax : newMax ; + } break ; case kZAxis: - pMin = zMin ; - pMax = zMax ; + pMin = zMin ; + pMax = zMax ; break ; default: @@ -471,7 +499,7 @@ G4bool G4Cons::CalculateExtent( const EAxis pAxis, noEntries = vertices->size() ; noBetweenSections4 = noEntries-4 ; - + for ( i = 0 ; i < noEntries ; i += 4 ) { ClipCrossSection(vertices,i,pVoxelLimit,pAxis,pMin,pMax) ; @@ -483,28 +511,28 @@ G4bool G4Cons::CalculateExtent( const EAxis pAxis, if ( pMin != kInfinity || pMax != -kInfinity ) { existsAfterClip = true ; - -// Add 2*tolerance to avoid precision troubles + + // Add 2*tolerance to avoid precision troubles pMin -= kCarTolerance ; pMax += kCarTolerance ; } else { -// 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. - + // 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. + G4ThreeVector clipCentre( (pVoxelLimit.GetMinXExtent() + pVoxelLimit.GetMaxXExtent())*0.5, (pVoxelLimit.GetMinYExtent() + pVoxelLimit.GetMaxYExtent())*0.5, (pVoxelLimit.GetMinZExtent() + pVoxelLimit.GetMaxZExtent())*0.5 ) ; - + if (Inside(pTransform.Inverse().TransformPoint(clipCentre)) != kOutside) { - existsAfterClip = true ; - pMin = pVoxelLimit.GetMinExtent(pAxis) ; + existsAfterClip = true ; + pMin = pVoxelLimit.GetMinExtent(pAxis) ; pMax = pVoxelLimit.GetMaxExtent(pAxis) ; } } @@ -580,7 +608,7 @@ G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const distEPhi = fabs(phi - fSPhi - fDPhi)*rho ; -// Find new minimum + // Find new minimum if (distSPhi < distEPhi) { @@ -590,18 +618,18 @@ G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const { if (distEPhi < distMin) side = kNEPhi ; } - } + } switch (side) { - case kNRMin: // Inner radius + case kNRMin: // Inner radius rho *= secRMin ; norm = G4ThreeVector(-p.x()/rho,-p.y()/rho,tanRMin/secRMin) ; break ; - case kNRMax: // Outer radius + case kNRMax: // Outer radius rho *= secRMax ; norm = G4ThreeVector(p.x()/rho,p.y()/rho,-tanRMax/secRMax) ; break ; - case kNZ: // +/- dz + case kNZ: // +/- dz if (p.z() > 0) norm = G4ThreeVector(0,0,1) ; else norm = G4ThreeVector(0,0,-1) ; break ; @@ -612,7 +640,8 @@ G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const norm=G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0) ; break ; default: - G4Exception("Logic error in G4Cons::SurfaceNormal") ; + DumpInfo(); + G4Exception("G4Cons::SurfaceNormal() - Logic error") ; break ; } return norm ; @@ -644,40 +673,40 @@ G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const // - z, phi intersection from Tubs G4double G4Cons::DistanceToIn( const G4ThreeVector& p, - const G4ThreeVector& v ) const + const G4ThreeVector& v ) const { - G4double snxt = kInfinity ; // snxt = default return value + G4double snxt = kInfinity ; // snxt = default return value - G4bool seg ; // true if segmented in phi + G4bool seg ; // true if segmented in phi G4double hDPhi,hDPhiOT,hDPhiIT,cosHDPhiOT=0.,cosHDPhiIT=0. ; - // half dphi + outer tolerance - G4double cPhi,sinCPhi=0.,cosCPhi=0. ; // central phi + // half dphi + outer tolerance + G4double cPhi,sinCPhi=0.,cosCPhi=0. ; // central phi - G4double tanRMax,secRMax,rMaxAv,rMaxOAv ; // Data for cones + G4double tanRMax,secRMax,rMaxAv,rMaxOAv ; // Data for cones G4double tanRMin,secRMin,rMinAv,rMinIAv,rMinOAv ; G4double rout,rin ; - G4double tolORMin,tolORMin2 ; // `generous' radii squared - G4double tolORMax2 ; + G4double tolORMin,tolORMin2,tolIRMin,tolIRMin2 ; // `generous' radii squared + G4double tolORMax2,tolIRMax,tolIRMax2 ; G4double tolODz,tolIDz ; - G4double Dist,s,xi,yi,zi,ri=0.,rho2,cosPsi ; // Intersection point variables + G4double Dist,s,xi,yi,zi,ri=0.,rhoi2,cosPsi ; // Intersection point variables - G4double t1,t2,t3,b,c,d ; // Quadratic solver variables + G4double t1,t2,t3,b,c,d ; // Quadratic solver variables G4double nt1,nt2,nt3 ; G4double Comp ; - G4double cosSPhi,sinSPhi ; // Trig for phi start intersect - G4double ePhi,cosEPhi,sinEPhi ; // for phi end intersect + G4double cosSPhi,sinSPhi ; // Trig for phi start intersect + G4double ePhi,cosEPhi,sinEPhi ; // for phi end intersect -// -// Set phi divided flag and precalcs -// + // + // Set phi divided flag and precalcs + // if (fDPhi < 2.0*M_PI) { seg = true ; - hDPhi = 0.5*fDPhi ; // half delta phi + hDPhi = 0.5*fDPhi ; // half delta phi cPhi = fSPhi + hDPhi ; ; - hDPhiOT = hDPhi + 0.5*kAngTolerance ; // outers tol' half delta phi + hDPhiOT = hDPhi + 0.5*kAngTolerance ; // outers tol' half delta phi hDPhiIT = hDPhi - 0.5*kAngTolerance ; sinCPhi = sin(cPhi) ; cosCPhi = cos(cPhi) ; @@ -686,7 +715,7 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, } else seg = false ; -// Cone Precalcs + // Cone Precalcs tanRMin = (fRmin2 - fRmin1)*0.5/fDz ; secRMin = sqrt(1.0 + tanRMin*tanRMin) ; @@ -707,55 +736,85 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, rMaxAv = (fRmax1 + fRmax2)*0.5 ; rMaxOAv = rMaxAv + kRadTolerance*0.5 ; -// Intersection with Z surfaces + // Intersection with z-surfaces tolIDz = fDz - kCarTolerance*0.5 ; tolODz = fDz + kCarTolerance*0.5 ; if (fabs(p.z()) >= tolIDz) { - if ( p.z()*v.z() < 0 ) // at +Z going in -Z or visa versa + if ( p.z()*v.z() < 0 ) // at +Z going in -Z or visa versa { - s = (fabs(p.z()) - fDz)/fabs(v.z()) ; // Z intersect distance + s = (fabs(p.z()) - fDz)/fabs(v.z()) ; // Z intersect distance if( s < 0.0 ) s = 0.0 ; // negative dist -> zero - xi = p.x() + s*v.x() ; // Intersection coords + xi = p.x() + s*v.x() ; // Intersection coords yi = p.y() + s*v.y() ; - rho2 = xi*xi + yi*yi ; + rhoi2 = xi*xi + yi*yi ; -// Check validity of intersection -// Calculate (outer) tolerant radi^2 at intersecion + // Check validity of intersection + // Calculate (outer) tolerant radi^2 at intersecion if (v.z() > 0) { - tolORMin = fRmin1 - 0.5*kRadTolerance*secRMin ; - tolORMax2 = (fRmax1 + 0.5*kRadTolerance*secRMax)*(fRmax1 + 0.5*kRadTolerance*secRMax) ; + tolORMin = fRmin1 - 0.5*kRadTolerance*secRMin ; + tolIRMin = fRmin1 + 0.5*kRadTolerance*secRMin ; + tolIRMax = fRmax1 - 0.5*kRadTolerance*secRMin ; + tolORMax2 = (fRmax1 + 0.5*kRadTolerance*secRMax)* + (fRmax1 + 0.5*kRadTolerance*secRMax) ; } else { - tolORMin = fRmin2 - 0.5*kRadTolerance*secRMin ; - tolORMax2 = (fRmax2 + 0.5*kRadTolerance*secRMax)*(fRmax2 + 0.5*kRadTolerance*secRMax) ; + tolORMin = fRmin2 - 0.5*kRadTolerance*secRMin ; + tolIRMin = fRmin2 + 0.5*kRadTolerance*secRMin ; + tolIRMax = fRmax2 - 0.5*kRadTolerance*secRMin ; + tolORMax2 = (fRmax2 + 0.5*kRadTolerance*secRMax)* + (fRmax2 + 0.5*kRadTolerance*secRMax) ; } - if ( tolORMin > 0 ) tolORMin2 = tolORMin*tolORMin ; - else tolORMin2 = 0.0 ; - - if (tolORMin2 <= rho2 && rho2 <= tolORMax2) + if ( tolORMin > 0 ) { - if ( seg && rho2 ) - { -// Psi = angle made with central (average) phi of shape - - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rho2) ; - - if (cosPsi >= cosHDPhiOT) return s ; - } - else return s ; + tolORMin2 = tolORMin*tolORMin ; + tolIRMin2 = tolIRMin*tolIRMin ; } + else + { + tolORMin2 = 0.0 ; + tolIRMin2 = 0.0 ; + } + if ( tolIRMax > 0 ) tolIRMax2 = tolIRMax*tolIRMax ; + else tolIRMax2 = 0.0 ; + + if (tolIRMin2 <= rhoi2 && rhoi2 <= tolIRMax2) + { + if ( seg && rhoi2 ) + { + // Psi = angle made with central (average) phi of shape + + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + + if (cosPsi >= cosHDPhiOT) return s ; + } + else return s ; + } + /* + else if (tolORMin2 <= rhoi2 && rhoi2 <= tolORMax2) + { + if ( seg && rhoi2 ) + { + // Psi = angle made with central (average) phi of shape + + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + + if (cosPsi >= cosHDPhiOT) return s ; + } + else return s ; + } + */ } else // On/outside extent, and heading away -> cannot intersect { - return snxt ; + return snxt ; } } @@ -784,8 +843,8 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, rin = tanRMin*p.z() + rMinAv ; rout = tanRMax*p.z() + rMaxAv ; -// Outer Cone Intersection -// Must be outside/on outer cone for valid intersection + // Outer Cone Intersection + // Must be outside/on outer cone for valid intersection nt1 = t1 - (tanRMax*v.z())*(tanRMax*v.z()) ; nt2 = t2 - tanRMax*v.z()*rout ; @@ -795,8 +854,8 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, { if ( nt3 > rout*kRadTolerance*secRMax || rout < 0 ) { -// If outside real cone (should be rho-rout>kRadTolerance*0.5 NOT rho^2 etc) -// saves a sqrt() at expense of accuracy + // If outside real cone (should be rho-rout>kRadTolerance*0.5 + // NOT rho^2 etc) saves a sqrt() at expense of accuracy b = nt2/nt1 ; c = nt3/nt1 ; @@ -804,72 +863,73 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, if (d >= 0) { - + if (rout < 0 && nt3 <= 0 ) { -// Inside `shadow cone' with -ve radius -> 2nd root could be on real cone + // Inside `shadow cone' with -ve radius + // -> 2nd root could be on real cone s = -b + sqrt(d) ; - } - else + } + else { - if ( b <= 0 && c >= 0 ) // both >=0, try smaller root - { - s = -b - sqrt(d) ; - } + if ( b <= 0 && c >= 0 ) // both >=0, try smaller root + { + s = -b - sqrt(d) ; + } else - { - if ( c <= 0 ) // second >=0 - { - s = -b + sqrt(d) ; - } + { + if ( c <= 0 ) // second >=0 + { + s = -b + sqrt(d) ; + } else // both negative, travel away - { - return kInfinity ; - } - } - } - if ( s > 0 ) // If 'forwards'. Check z intersection - { - zi = p.z() + s*v.z() ; + { + return kInfinity ; + } + } + } + if ( s > 0 ) // If 'forwards'. Check z intersection + { + zi = p.z() + s*v.z() ; - if (fabs(zi) <= tolODz) - { -// Z ok. Check phi intersection if reqd + if (fabs(zi) <= tolODz) + { + // Z ok. Check phi intersection if reqd - if ( ! seg ) return s ; - else - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - ri = rMaxAv + zi*tanRMax ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( ! seg ) return s ; + else + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + ri = rMaxAv + zi*tanRMax ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if ( cosPsi >= cosHDPhiOT ) return s ; - } - } - } // end if (s>0) + if ( cosPsi >= cosHDPhiOT ) return s ; + } + } + } // end if (s>0) } } else { -// Inside outer cone -// check not inside, and heading through G4Cons (-> 0 to in) + // Inside outer cone + // check not inside, and heading through G4Cons (-> 0 to in) if ( t3 > (rin + kRadTolerance*0.5*secRMin)* (rin + kRadTolerance*0.5*secRMin) && nt2 < 0 && fabs(p.z()) <= tolIDz ) { -// Inside cones, delta r -ve, inside z extent + // Inside cones, delta r -ve, inside z extent if (seg) { cosPsi = (p.x()*cosCPhi + p.y()*sinCPhi)/sqrt(t3) ; - if (cosPsi >= cosHDPhiIT) return 0.0 ; - } - else return 0.0 ; + if (cosPsi >= cosHDPhiIT) return 0.0 ; + } + else return 0.0 ; } } } @@ -882,24 +942,24 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, if ( s < 0 ) return kInfinity ; // travel away else // s >= 0, If 'forwards'. Check z intersection { - zi = p.z() + s*v.z() ; + zi = p.z() + s*v.z() ; - if (fabs(zi) <= tolODz && nt2 < 0) - { -// Z ok. Check phi intersection if reqd + if (fabs(zi) <= tolODz && nt2 < 0) + { + // Z ok. Check phi intersection if reqd - if ( ! seg ) return s ; - else - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - ri = rMaxAv + zi*tanRMax ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( ! seg ) return s ; + else + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + ri = rMaxAv + zi*tanRMax ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if (cosPsi >= cosHDPhiOT) return s ; - } - } - } + if (cosPsi >= cosHDPhiOT) return s ; + } + } + } } else // travel || cone surface from its origin { @@ -907,13 +967,14 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, } } -// Inner Cone Intersection -// o Space is divided into 3 areas: -// 1) Radius greater than real inner cone & imaginary cone & outside -// tolerance -// 2) Radius less than inner or imaginary cone & outside tolarance -// 3) Within tolerance of real or imaginary cones -// - Extra checks needed for 3's intersections => lots of duplicated code + // Inner Cone Intersection + // o Space is divided into 3 areas: + // 1) Radius greater than real inner cone & imaginary cone & outside + // tolerance + // 2) Radius less than inner or imaginary cone & outside tolarance + // 3) Within tolerance of real or imaginary cones + // - Extra checks needed for 3's intersections + // => lots of duplicated code if (rMinAv) { @@ -925,192 +986,193 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, { if ( nt3 > rin*kRadTolerance*secRMin ) { -// At radius greater than real & imaginary cones -// -> 2nd root, with zi check + // At radius greater than real & imaginary cones + // -> 2nd root, with zi check b = nt2/nt1 ; c = nt3/nt1 ; - d = b*b-c ; - if (d > 0) - { - s = -b + sqrt(d) ; + d = b*b-c ; + if (d > 0) + { + s = -b + sqrt(d) ; - if ( s > 0 ) - { - zi = p.z() + s*v.z() ; + if ( s > 0 ) + { + zi = p.z() + s*v.z() ; - if ( fabs(zi) <= tolODz ) - { - if ( seg ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - ri = rMinAv + zi*tanRMin ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( fabs(zi) <= tolODz ) + { + if ( seg ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + ri = rMinAv + zi*tanRMin ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if (cosPsi >= cosHDPhiOT) snxt = s ; - } - else return s ; - } - } - } + if (cosPsi >= cosHDPhiOT) snxt = s ; + } + else return s ; + } + } + } } else if ( nt3 < -rin*kRadTolerance*secRMin ) { -// Within radius of inner cone (real or imaginary) -// -> Try 2nd root, with checking intersection is with real cone -// -> If check fails, try 1st root, also checking intersection is on real cone + // Within radius of inner cone (real or imaginary) + // -> Try 2nd root, with checking intersection is with real cone + // -> If check fails, try 1st root, also checking intersection is + // on real cone b = nt2/nt1 ; - c = nt3/nt1 ; - d = b*b - c ; + c = nt3/nt1 ; + d = b*b - c ; - if ( d > 0 ) + if ( d > 0 ) { - s = -b + sqrt(d) ; - zi = p.z() + s*v.z() ; - ri = rMinAv + zi*tanRMin ; + s = -b + sqrt(d) ; + zi = p.z() + s*v.z() ; + ri = rMinAv + zi*tanRMin ; - if ( ri >= 0 ) - { - if ( s > 0 && fabs(zi) <= tolODz ) - { - if ( seg ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( ri >= 0 ) + { + if ( s > 0 && fabs(zi) <= tolODz ) + { + if ( seg ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if (cosPsi >= cosHDPhiOT) snxt = s ; - } - else return s ; - } - } - else - { - s = -b - sqrt(d) ; - zi = p.z() + s*v.z() ; - ri = rMinAv + zi*tanRMin ; + if (cosPsi >= cosHDPhiOT) snxt = s ; + } + else return s ; + } + } + else + { + s = -b - sqrt(d) ; + zi = p.z() + s*v.z() ; + ri = rMinAv + zi*tanRMin ; - if ( s > 0 && ri >= 0 && fabs(zi) <= tolODz ) - { - if ( seg ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( s > 0 && ri >= 0 && fabs(zi) <= tolODz ) + { + if ( seg ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if (cosPsi >= cosHDPhiOT) snxt = s ; - } - else return s ; - } - } - } + if (cosPsi >= cosHDPhiOT) snxt = s ; + } + else return s ; + } + } + } } else { -// Within kRadTol*0.5 of inner cone (real OR imaginary) -// ----> Check not travelling through (=>0 to in) -// ----> if not: -// -2nd root with validity check + // Within kRadTol*0.5 of inner cone (real OR imaginary) + // ----> Check not travelling through (=>0 to in) + // ----> if not: + // -2nd root with validity check if ( fabs(p.z()) <= tolODz ) - { - if ( nt2 > 0 ) - { -// Inside inner real cone, heading outwards, inside z range + { + if ( nt2 > 0 ) + { + // Inside inner real cone, heading outwards, inside z range - if ( seg ) - { - cosPsi = (p.x()*cosCPhi + p.y()*sinCPhi)/sqrt(t3) ; + if ( seg ) + { + cosPsi = (p.x()*cosCPhi + p.y()*sinCPhi)/sqrt(t3) ; - if (cosPsi >= cosHDPhiIT) return 0.0 ; - } - else return 0.0 ; - } - else - { -// Within z extent, but not travelling through -// -> 2nd root or kInfinity if 1st root on imaginary cone + if (cosPsi >= cosHDPhiIT) return 0.0 ; + } + else return 0.0 ; + } + else + { + // Within z extent, but not travelling through + // -> 2nd root or kInfinity if 1st root on imaginary cone - b = nt2/nt1 ; - c = nt3/nt1 ; - d = b*b - c ; + b = nt2/nt1 ; + c = nt3/nt1 ; + d = b*b - c ; - if ( d > 0 ) - { - s = -b - sqrt(d) ; - zi = p.z() + s*v.z() ; - ri = rMinAv + zi*tanRMin ; + if ( d > 0 ) + { + s = -b - sqrt(d) ; + zi = p.z() + s*v.z() ; + ri = rMinAv + zi*tanRMin ; - if ( ri > 0 ) // 2nd root - { - s = -b + sqrt(d) ; - zi = p.z() + s*v.z() ; + if ( ri > 0 ) // 2nd root + { + s = -b + sqrt(d) ; + zi = p.z() + s*v.z() ; - if ( s > 0 && fabs(zi) <= tolODz ) - { - if ( seg ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( s > 0 && fabs(zi) <= tolODz ) + { + if ( seg ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if ( cosPsi >= cosHDPhiOT ) snxt = s ; - } - else return s ; - } - } - else return kInfinity ; - } - } - } + if ( cosPsi >= cosHDPhiOT ) snxt = s ; + } + else return s ; + } + } + else return kInfinity ; + } + } + } else // 2nd root - { - b = nt2/nt1 ; - c = nt3/nt1 ; - d = b*b - c ; + { + b = nt2/nt1 ; + c = nt3/nt1 ; + d = b*b - c ; - if ( d > 0 ) - { - s = -b + sqrt(d) ; - zi = p.z() + s*v.z() ; + if ( d > 0 ) + { + s = -b + sqrt(d) ; + zi = p.z() + s*v.z() ; - if ( s > 0 && fabs(zi) <= tolODz ) - { - if ( seg ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; + if ( s > 0 && fabs(zi) <= tolODz ) + { + if ( seg ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/ri ; - if (cosPsi >= cosHDPhiOT) snxt = s ; - } - else return s ; - } - } - } + if (cosPsi >= cosHDPhiOT) snxt = s ; + } + else return s ; + } + } + } } } } -// Phi segment intersection -// -// o Tolerant of points inside phi planes by up to kCarTolerance*0.5 -// -// o NOTE: Large duplication of code between sphi & ephi checks -// -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane -// intersection check <=0 -> >=0 -// -> Should use some form of loop Construct + // Phi segment intersection + // + // o Tolerant of points inside phi planes by up to kCarTolerance*0.5 + // + // o NOTE: Large duplication of code between sphi & ephi checks + // -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane + // intersection check <=0 -> >=0 + // -> Should use some form of loop Construct if ( seg ) { -// First phi surface (`S'tarting phi) + // First phi surface (`S'tarting phi) sinSPhi = sin(fSPhi) ; cosSPhi = cos(fSPhi) ; Comp = v.x()*sinSPhi - v.y()*cosSPhi ; - + if ( Comp < 0 ) // Component in outwards normal dirn { Dist = (p.y()*cosSPhi - p.x()*sinSPhi) ; @@ -1119,37 +1181,38 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, { s = Dist/Comp ; - if ( s < snxt ) - { - if ( s < 0 ) s = 0.0 ; + if ( s < snxt ) + { + if ( s < 0 ) s = 0.0 ; - zi = p.z() + s*v.z() ; + zi = p.z() + s*v.z() ; - if ( fabs(zi) <= tolODz ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - rho2 = xi*xi + yi*yi ; - tolORMin2 = (rMinOAv + zi*tanRMin)*(rMinOAv + zi*tanRMin) ; - tolORMax2 = (rMaxOAv + zi*tanRMax)*(rMaxOAv + zi*tanRMax) ; + if ( fabs(zi) <= tolODz ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + rhoi2 = xi*xi + yi*yi ; + tolORMin2 = (rMinOAv + zi*tanRMin)*(rMinOAv + zi*tanRMin) ; + tolORMax2 = (rMaxOAv + zi*tanRMax)*(rMaxOAv + zi*tanRMax) ; - if ( rho2 >= tolORMin2 && rho2 <= tolORMax2 ) - { -// z and r intersections good - check intersecting with correct half-plane + if ( rhoi2 >= tolORMin2 && rhoi2 <= tolORMax2 ) + { + // z and r intersections good - check intersecting with + // correct half-plane - if ((yi*cosCPhi - xi*sinCPhi) <= 0 ) snxt = s ; - } - } - } + if ((yi*cosCPhi - xi*sinCPhi) <= 0 ) snxt = s ; + } + } + } } } -// Second phi surface (`E'nding phi) + // Second phi surface (`E'nding phi) ePhi = fSPhi + fDPhi ; sinEPhi = sin(ePhi) ; cosEPhi = cos(ePhi) ; Comp = -(v.x()*sinEPhi - v.y()*cosEPhi) ; - + if ( Comp < 0 ) // Component in outwards normal dirn { Dist = -(p.y()*cosEPhi - p.x()*sinEPhi) ; @@ -1157,28 +1220,29 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, { s = Dist/Comp ; - if ( s < snxt ) - { - if ( s < 0 ) s = 0.0 ; + if ( s < snxt ) + { + if ( s < 0 ) s = 0.0 ; - zi = p.z() + s*v.z() ; + zi = p.z() + s*v.z() ; - if (fabs(zi) <= tolODz) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - rho2 = xi*xi + yi*yi ; - tolORMin2 = (rMinOAv + zi*tanRMin)*(rMinOAv + zi*tanRMin) ; - tolORMax2 = (rMaxOAv + zi*tanRMax)*(rMaxOAv + zi*tanRMax) ; + if (fabs(zi) <= tolODz) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + rhoi2 = xi*xi + yi*yi ; + tolORMin2 = (rMinOAv + zi*tanRMin)*(rMinOAv + zi*tanRMin) ; + tolORMax2 = (rMaxOAv + zi*tanRMax)*(rMaxOAv + zi*tanRMax) ; - if ( rho2 >= tolORMin2 && rho2 <= tolORMax2 ) - { -// z and r intersections good - check intersecting with correct half-plane + if ( rhoi2 >= tolORMin2 && rhoi2 <= tolORMax2 ) + { + // z and r intersections good - check intersecting with + // correct half-plane - if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) snxt = s ; - } - } - } + if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) snxt = s ; + } + } + } } } } @@ -1234,7 +1298,7 @@ G4double G4Cons::DistanceToIn(const G4ThreeVector& p) const cosPhiC = cos(phiC) ; sinPhiC = sin(phiC) ; -// Psi=angle from central phi to point + // Psi=angle from central phi to point cosPsi = (p.x()*cosPhiC + p.y()*sinPhiC)/rho ; @@ -1242,12 +1306,12 @@ G4double G4Cons::DistanceToIn(const G4ThreeVector& p) const { if ( (p.y()*cosPhiC - p.x()*sinPhiC) <= 0.0 ) { - safePhi = fabs(p.x()*sin(fSPhi) - p.y()*cos(fSPhi)) ; + safePhi = fabs(p.x()*sin(fSPhi) - p.y()*cos(fSPhi)) ; } else { - ePhi = fSPhi + fDPhi ; - safePhi = fabs(p.x()*sin(ePhi) - p.y()*cos(ePhi)) ; + ePhi = fSPhi + fDPhi ; + safePhi = fabs(p.x()*sin(ePhi) - p.y()*cos(ePhi)) ; } if ( safePhi > safe ) safe = safePhi ; } @@ -1263,34 +1327,34 @@ G4double G4Cons::DistanceToIn(const G4ThreeVector& p) const // - Only Calc rmax intersection if no valid rmin intersection G4double G4Cons::DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n) const + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n) const { ESide side = kNull, sider = kNull, sidephi = kNull; G4double snxt,sr,sphi,pdist ; - G4double tanRMax, secRMax, rMaxAv ; // Data for outer cone - G4double tanRMin, secRMin, rMinAv ; // Data for inner cone + G4double tanRMax, secRMax, rMaxAv ; // Data for outer cone + G4double tanRMin, secRMin, rMinAv ; // Data for inner cone G4double t1, t2, t3, rout, rin, nt1, nt2, nt3 ; G4double b, c, d, sr2, sr3 ; -// Vars for intersection within tolerance + // Vars for intersection within tolerance ESide sidetol ; G4double slentol = kInfinity ; -// Vars for phi intersection: + // Vars for phi intersection: G4double sinSPhi, cosSPhi, ePhi, sinEPhi, cosEPhi ; G4double cPhi, sinCPhi, cosCPhi ; G4double pDistS, compS, pDistE, compE, sphi2, xi, yi, risec, vphi ; G4double zi, ri, deltaRoi2 ; -// Z plane intersection + // Z plane intersection if ( v.z() > 0.0 ) { @@ -1305,8 +1369,8 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, { if (calcNorm) { - *n = G4ThreeVector(0,0,1) ; - *validNorm = true ; + *n = G4ThreeVector(0,0,1) ; + *validNorm = true ; } return snxt = 0.0 ; } @@ -1324,41 +1388,41 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, { if ( calcNorm ) { - *n = G4ThreeVector(0,0,-1) ; - *validNorm = true ; + *n = G4ThreeVector(0,0,-1) ; + *validNorm = true ; } return snxt = 0.0 ; } } else // Travel perpendicular to z axis { - snxt = kInfinity ; + snxt = kInfinity ; side = kNull ; } -// Radial Intersections -// -// Intersection with outer cone (possible return) and -// inner cone (must also check phi) -// -// Intersection point (xi,yi,zi) on line x=p.x+t*v.x etc. -// -// Intersects with x^2+y^2=(a*z+b)^2 -// -// where a=tanRMax or tanRMin -// b=rMaxAv or rMinAv -// -// (vx^2+vy^2-(a*vz)^2)t^2+2t(pxvx+pyvy-a*vz(a*pz+b))+px^2+py^2-(a*pz+b)^2=0 ; -// t1 t2 t3 -// -// \--------u-------/ \-----------v----------/ \---------w--------/ + // Radial Intersections + // + // Intersection with outer cone (possible return) and + // inner cone (must also check phi) + // + // Intersection point (xi,yi,zi) on line x=p.x+t*v.x etc. + // + // Intersects with x^2+y^2=(a*z+b)^2 + // + // where a=tanRMax or tanRMin + // b=rMaxAv or rMinAv + // + // (vx^2+vy^2-(a*vz)^2)t^2+2t(pxvx+pyvy-a*vz(a*pz+b))+px^2+py^2-(a*pz+b)^2=0 ; + // t1 t2 t3 + // + // \--------u-------/ \-----------v----------/ \---------w--------/ tanRMax = (fRmax2 - fRmax1)*0.5/fDz ; secRMax = sqrt(1.0 + tanRMax*tanRMax) ; rMaxAv = (fRmax1 + fRmax2)*0.5 ; - t1 = 1.0 - v.z()*v.z() ; // since v normalised + t1 = 1.0 - v.z()*v.z() ; // since v normalised t2 = p.x()*v.x() + p.y()*v.y() ; t3 = p.x()*p.x() + p.y()*p.y() ; rout = tanRMax*p.z() + rMaxAv ; @@ -1369,17 +1433,19 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, if (v.z() > 0.0) { - deltaRoi2 = snxt*snxt*t1 + 2*snxt*t2 + t3 - fRmax2*(fRmax2 + kRadTolerance*secRMax); + deltaRoi2 = snxt*snxt*t1 + 2*snxt*t2 + t3 + - fRmax2*(fRmax2 + kRadTolerance*secRMax); } else if ( v.z() < 0.0 ) { - deltaRoi2 = snxt*snxt*t1 + 2*snxt*t2 + t3 - fRmax1*(fRmax1 + kRadTolerance*secRMax); + deltaRoi2 = snxt*snxt*t1 + 2*snxt*t2 + t3 + - fRmax1*(fRmax1 + kRadTolerance*secRMax); } else deltaRoi2 = 1.0 ; if ( nt1 && deltaRoi2 > 0.0 ) { -// Equation quadratic => 2 roots : second root must be leaving + // Equation quadratic => 2 roots : second root must be leaving b = nt2/nt1 ; c = nt3/nt1 ; @@ -1387,77 +1453,79 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, if ( d >= 0 ) { -// Check if on outer cone & heading outwards -// NOTE: Should use rho-rout>-kRadtolerance*0.5 - + // Check if on outer cone & heading outwards + // NOTE: Should use rho-rout>-kRadtolerance*0.5 + if (nt3 > -kRadTolerance*0.5 && nt2 >= 0 ) { - if (calcNorm) - { - risec = sqrt(t3)*secRMax ; - *validNorm = true ; - *n = G4ThreeVector(p.x()/risec,p.y()/risec,-tanRMax/secRMax) ; - } - return snxt=0 ; + if (calcNorm) + { + risec = sqrt(t3)*secRMax ; + *validNorm = true ; + *n = G4ThreeVector(p.x()/risec,p.y()/risec,-tanRMax/secRMax) ; + } + return snxt=0 ; } else { - sider = kRMax ; - sr = -b - sqrt(d) ; // was +srqrt(d), vmg 28.04.99 - zi = p.z() + sr*v.z() ; - ri = tanRMax*zi + rMaxAv ; - - if ( (ri >= 0) && (-kRadTolerance*0.5 <= sr) && + sider = kRMax ; + sr = -b - sqrt(d) ; // was +srqrt(d), vmg 28.04.99 + zi = p.z() + sr*v.z() ; + ri = tanRMax*zi + rMaxAv ; + + if ( (ri >= 0) && (-kRadTolerance*0.5 <= sr) && ( sr <= kRadTolerance*0.5) ) - { -// An intersection within the tolerance -// we will Store it in case it is good - -// - slentol = sr ; - sidetol = kRMax ; - } - if ( (ri < 0) || (sr < kRadTolerance*0.5) ) - { -// Safety: if both roots -ve ensure that sr cannot `win' distance to out + { + // An intersection within the tolerance + // we will Store it in case it is good - + // + slentol = sr ; + sidetol = kRMax ; + } + if ( (ri < 0) || (sr < kRadTolerance*0.5) ) + { + // Safety: if both roots -ve ensure that sr cannot `win' + // distance to out - sr2 = -b + sqrt(d) ; - zi = p.z() + sr2*v.z() ; - ri = tanRMax*zi + rMaxAv ; + sr2 = -b + sqrt(d) ; + zi = p.z() + sr2*v.z() ; + ri = tanRMax*zi + rMaxAv ; - if (ri >= 0 && sr2 > kRadTolerance*0.5) sr = sr2 ; - else - { - sr = kInfinity ; + if (ri >= 0 && sr2 > kRadTolerance*0.5) sr = sr2 ; + else + { + sr = kInfinity ; - if( (-kRadTolerance*0.5 <= sr2) - && ( sr2 <= kRadTolerance*0.5) ) - { -// An intersection within the tolerance. Storing it in case it is good. + if( (-kRadTolerance*0.5 <= sr2) + && ( sr2 <= kRadTolerance*0.5) ) + { + // An intersection within the tolerance. + // Storing it in case it is good. - slentol = sr2 ; - sidetol = kRMax ; - } - } - } + slentol = sr2 ; + sidetol = kRMax ; + } + } + } } } else { -// No intersection with outer cone & not parallel -> already outside, no -// intersection + // No intersection with outer cone & not parallel + // -> already outside, no intersection if ( calcNorm ) { - risec = sqrt(t3)*secRMax ; - *validNorm = true ; - *n = G4ThreeVector(p.x()/risec,p.y()/risec,-tanRMax/secRMax) ; + risec = sqrt(t3)*secRMax ; + *validNorm = true ; + *n = G4ThreeVector(p.x()/risec,p.y()/risec,-tanRMax/secRMax) ; } return snxt = 0.0 ; } } else if ( nt2 && deltaRoi2 > 0.0 ) { -// Linear case (only one intersection) => point outside outer cone + // Linear case (only one intersection) => point outside outer cone if ( calcNorm ) { @@ -1469,23 +1537,24 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, } else { -// No intersection -> parallel to outer cone => Z or inner cone intersection + // No intersection -> parallel to outer cone + // => Z or inner cone intersection - sr = kInfinity ; + sr = kInfinity ; } -// Check possible intersection within tolerance + // Check possible intersection within tolerance if ( slentol <= kCarTolerance*0.5 ) { -// An intersection within the tolerance was found. -// We must accept it only if the momentum points outwards. -// -// G4ThreeVector ptTol ; // The point of the intersection -// ptTol= p + slentol*v ; -// ri=tanRMax*zi+rMaxAv ; -// -// Calculate a normal vector, as below + // An intersection within the tolerance was found. + // We must accept it only if the momentum points outwards. + // + // G4ThreeVector ptTol ; // The point of the intersection + // ptTol= p + slentol*v ; + // ri=tanRMax*zi+rMaxAv ; + // + // Calculate a normal vector, as below xi = p.x() + slentol*v.x() ; yi = p.y() + slentol*v.y() ; @@ -1496,8 +1565,8 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, { if ( calcNorm ) { - *n = Normal.unit() ; - *validNorm = true ; + *n = Normal.unit() ; + *validNorm = true ; } return snxt = 0.0 ; } @@ -1507,7 +1576,7 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, } } -// Inner Cone intersection + // Inner Cone intersection if ( fRmin1 || fRmin2 ) { @@ -1521,8 +1590,8 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, rin = tanRMin*p.z() + rMinAv ; nt2 = t2 - tanRMin*v.z()*rin ; nt3 = t3 - rin*rin ; - -// Equation quadratic => 2 roots : first root must be leaving + + // Equation quadratic => 2 roots : first root must be leaving b = nt2/nt1 ; c = nt3/nt1 ; @@ -1530,111 +1599,113 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, if (d >= 0.0 ) { -// NOTE: should be rho-rin= 0.0) && (-kRadTolerance*0.5 <= sr2) && + if( (ri >= 0.0) && (-kRadTolerance*0.5 <= sr2) && ( sr2 <= kRadTolerance*0.5) ) - { -// An intersection within the tolerance storing it in case it is good. + { + // An intersection within the tolerance + // storing it in case it is good. - slentol = sr2 ; - sidetol = kRMax ; - } - if( (ri<0) || (sr2 < kRadTolerance*0.5) ) - { - sr3 = -b + sqrt(d) ; + slentol = sr2 ; + sidetol = kRMax ; + } + if( (ri<0) || (sr2 < kRadTolerance*0.5) ) + { + sr3 = -b + sqrt(d) ; -// Safety: if both roots -ve ensure that sr cannot `win' distancetoout + // Safety: if both roots -ve ensure that sr cannot `win' + // distancetoout - if ( sr3 > kCarTolerance*0.5 ) - { - if( sr3 < sr ) - { - zi = p.z() + sr3*v.z() ; - ri = tanRMin*zi + rMinAv ; + if ( sr3 > kCarTolerance*0.5 ) + { + if( sr3 < sr ) + { + zi = p.z() + sr3*v.z() ; + ri = tanRMin*zi + rMinAv ; - if ( ri >= 0.0 ) - { - sr=sr3 ; - sider=kRMin ; - } - } - } - else if ( sr3 > -kCarTolerance*0.5 ) - { -// Intersection in tolerance. Store to check if it's good + if ( ri >= 0.0 ) + { + sr=sr3 ; + sider=kRMin ; + } + } + } + else if ( sr3 > -kCarTolerance*0.5 ) + { + // Intersection in tolerance. Store to check if it's good - slentol = sr3 ; - sidetol = kRMin ; - } - } - else if ( sr2 < sr && sr2 > kCarTolerance*0.5 ) - { - sr = sr2 ; - sider = kRMin ; - } - else if (sr2 > -kCarTolerance*0.5) - { -// Intersection in tolerance. Store to check if it's good + slentol = sr3 ; + sidetol = kRMin ; + } + } + else if ( sr2 < sr && sr2 > kCarTolerance*0.5 ) + { + sr = sr2 ; + sider = kRMin ; + } + else if (sr2 > -kCarTolerance*0.5) + { + // Intersection in tolerance. Store to check if it's good - slentol = sr2 ; - sidetol = kRMin ; - } - if( slentol <= kCarTolerance*0.5 ) - { -// An intersection within the tolerance was found. -// We must accept it only if the momentum points outwards. + slentol = sr2 ; + sidetol = kRMin ; + } + if( slentol <= kCarTolerance*0.5 ) + { + // An intersection within the tolerance was found. + // We must accept it only if the momentum points outwards. - G4ThreeVector Normal ; - -// Calculate a normal vector, as below + G4ThreeVector Normal ; + + // Calculate a normal vector, as below - xi = p.x() + slentol*v.x() ; - yi = p.y() + slentol*v.y() ; - risec = sqrt(xi*xi + yi*yi)*secRMin ; - Normal = G4ThreeVector(xi/risec,yi/risec,-tanRMin/secRMin) ; - - if( Normal.dot(v) > 0 ) - { -// We will leave the Cone immediatelly - if( calcNorm ) - { - *n = Normal.unit() ; - *validNorm = true ; - } - return snxt = 0.0 ; - } - else - { -// On the surface, but not heading out so we ignore this -// intersection (as it is within tolerance). + xi = p.x() + slentol*v.x() ; + yi = p.y() + slentol*v.y() ; + risec = sqrt(xi*xi + yi*yi)*secRMin ; + Normal = G4ThreeVector(xi/risec,yi/risec,-tanRMin/secRMin) ; + + if( Normal.dot(v) > 0 ) + { + // We will leave the Cone immediatelly + if( calcNorm ) + { + *n = Normal.unit() ; + *validNorm = true ; + } + return snxt = 0.0 ; + } + else + { + // On the surface, but not heading out so we ignore this + // intersection (as it is within tolerance). - slentol = kInfinity ; - } - } - } + slentol = kInfinity ; + } + } + } } } } -// Linear case => point outside inner cone ---> outer cone intersect -// -// Phi Intersection + // Linear case => point outside inner cone ---> outer cone intersect + // + // Phi Intersection if ( fDPhi < 2.0*M_PI ) { @@ -1649,12 +1720,12 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, if ( p.x() || p.y() ) // Check if on z axis (rho not needed later) { -// pDist -ve when inside + // pDist -ve when inside pDistS = p.x()*sinSPhi - p.y()*cosSPhi ; pDistE = -p.x()*sinEPhi + p.y()*cosEPhi ; -// Comp -ve when in direction of outwards normal + // Comp -ve when in direction of outwards normal compS = -sinSPhi*v.x() + cosSPhi*v.y() ; compE = sinEPhi*v.x() - cosEPhi*v.y() ; @@ -1663,187 +1734,193 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, if (pDistS <= 0 && pDistE <= 0) { -// Inside both phi *full* planes + // Inside both phi *full* planes if (compS < 0) { - sphi = pDistS/compS ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + sphi = pDistS/compS ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; -// Check intersecting with correct half-plane (if not -> no intersect) + // Check intersecting with correct half-plane + // (if not -> no intersect) - if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) sphi = kInfinity ; - else - { - sidephi = kSPhi ; + if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) sphi = kInfinity ; + else + { + sidephi = kSPhi ; - if ( pDistS > -kCarTolerance*0.5 ) // Leave by sphi immediately - { - sphi = 0.0 ; - } - } - } - else sphi = kInfinity ; - - if ( compE < 0.0 ) - { -// Only check further if < starting phi intersection + if ( pDistS > -kCarTolerance*0.5 ) // Leave by sphi immediately + { + sphi = 0.0 ; + } + } + } + else sphi = kInfinity ; - sphi2 = pDistE/compE ; + if ( compE < 0.0 ) + { + // Only check further if < starting phi intersection - if ( sphi2 < sphi ) - { - xi = p.x() + sphi2*v.x() ; - yi = p.y() + sphi2*v.y() ; + sphi2 = pDistE/compE ; -// Check intersecting with correct half-plane + if ( sphi2 < sphi ) + { + xi = p.x() + sphi2*v.x() ; + yi = p.y() + sphi2*v.y() ; - if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) // Leaving via ending phi - { - sidephi = kEPhi ; + // Check intersecting with correct half-plane - if ( pDistE <= -kCarTolerance*0.5 ) sphi = sphi2 ; - else sphi = 0.0 ; - } - } - } + if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) // Leaving via ending phi + { + sidephi = kEPhi ; + + if ( pDistE <= -kCarTolerance*0.5 ) sphi = sphi2 ; + else sphi = 0.0 ; + } + } + } } else if ( pDistS >= 0 && pDistE >= 0 ) { -// Outside both *full* phi planes + // Outside both *full* phi planes if ( pDistS <= pDistE ) sidephi = kSPhi ; else sidephi = kEPhi ; if ( fDPhi > M_PI ) - { - if (compS < 0 && compE < 0) sphi = 0.0 ; - else sphi = kInfinity ; - } - else - { -// if towards both >=0 then once inside (after error) will remain inside + { + if (compS < 0 && compE < 0) sphi = 0.0 ; + else sphi = kInfinity ; + } + else + { + // if towards both >=0 then once inside (after error) + // will remain inside if ( compS >= 0.0 && compE >= 0.0 ) sphi = kInfinity ; - else sphi = 0.0 ; - } + else sphi = 0.0 ; + } } else if ( pDistS > 0.0 && pDistE < 0.0 ) { -// Outside full starting plane, inside full ending plane + // Outside full starting plane, inside full ending plane if ( fDPhi > M_PI ) { - if ( compE < 0.0 ) - { - sphi = pDistE/compE ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + if ( compE < 0.0 ) + { + sphi = pDistE/compE ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; -// Check intersection in correct half-plane (if not -> not leaving phi extent) + // Check intersection in correct half-plane + // (if not -> not leaving phi extent) - if ( (yi*cosCPhi - xi*sinCPhi) <= 0.0 ) - { - sphi = kInfinity ; - } - else // Leaving via Ending phi - { + if ( (yi*cosCPhi - xi*sinCPhi) <= 0.0 ) + { + sphi = kInfinity ; + } + else // Leaving via Ending phi + { sidephi = kEPhi ; - if ( pDistE > -kCarTolerance*0.5 ) sphi = 0.0 ; - } - } - else sphi = kInfinity ; - } - else // fDPhi <= pi - { - if (compS >= 0.0 ) - { - if ( compE < 0.0 ) - { - sphi = pDistE/compE ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + if ( pDistE > -kCarTolerance*0.5 ) sphi = 0.0 ; + } + } + else sphi = kInfinity ; + } + else // fDPhi <= pi + { + if (compS >= 0.0 ) + { + if ( compE < 0.0 ) + { + sphi = pDistE/compE ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; -// Check intersection in correct half-plane (if not -> remain in extent) + // Check intersection in correct half-plane + // (if not -> remain in extent) - if ( (yi*cosCPhi - xi*sinCPhi) <= 0.0 ) - { - sphi = kInfinity ; - } - else // otherwise leaving via Ending phi - { - sidephi = kEPhi ; - } - } - else sphi = kInfinity ; - } - else // leaving immediately by starting phi - { - sidephi = kSPhi ; - sphi = 0.0 ; - } - } + if ( (yi*cosCPhi - xi*sinCPhi) <= 0.0 ) + { + sphi = kInfinity ; + } + else // otherwise leaving via Ending phi + { + sidephi = kEPhi ; + } + } + else sphi = kInfinity ; + } + else // leaving immediately by starting phi + { + sidephi = kSPhi ; + sphi = 0.0 ; + } + } } else { -// Must be pDistS<0&&pDistE>0 -// Inside full starting plane, outside full ending plane + // Must be pDistS<0&&pDistE>0 + // Inside full starting plane, outside full ending plane if (fDPhi > M_PI) - { - if ( compS < 0.0 ) - { - sphi = pDistS/compS ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + { + if ( compS < 0.0 ) + { + sphi = pDistS/compS ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; -// Check intersection in correct half-plane (if not -> not leaving phi extent) + // Check intersection in correct half-plane + // (if not -> not leaving phi extent) - if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) sphi = kInfinity ; - else // Leaving via Starting phi - { + if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) sphi = kInfinity ; + else // Leaving via Starting phi + { sidephi = kSPhi ; - if ( pDistS > -kCarTolerance*0.5 ) sphi = 0.0 ; - } - } - else sphi = kInfinity ; - } - else // fDPhi <= pi - { - if ( compE >= 0.0 ) - { - if ( compS < 0.0 ) - { - - sphi = pDistS/compS ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + if ( pDistS > -kCarTolerance*0.5 ) sphi = 0.0 ; + } + } + else sphi = kInfinity ; + } + else // fDPhi <= pi + { + if ( compE >= 0.0 ) + { + if ( compS < 0.0 ) + { + + sphi = pDistS/compS ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; -// Check intersection in correct half-plane (if not -> remain in extent) + // Check intersection in correct half-plane + // (if not -> remain in extent) - if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) sphi = kInfinity ; - else // otherwise leaving via Starting phi - { - sidephi = kSPhi ; - } - } - else sphi = kInfinity ; - } - else // CompE < 0, leaving immediately by ending - { - sidephi = kEPhi ; - sphi = 0.0 ; - } - } + if ( (yi*cosCPhi - xi*sinCPhi) >= 0.0 ) sphi = kInfinity ; + else // otherwise leaving via Starting phi + { + sidephi = kSPhi ; + } + } + else sphi = kInfinity ; + } + else // CompE < 0, leaving immediately by ending + { + sidephi = kEPhi ; + sphi = 0.0 ; + } + } } } else { -// On z axis + travel not || to z axis -> if phi of vector direction -// within phi of shape, Step limited by rmax, else Step =0 + // On z axis + travel not || to z axis -> if phi of vector direction + // within phi of shape, Step limited by rmax, else Step =0 vphi = atan2(v.y(),v.x()) ; @@ -1851,13 +1928,13 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, else { sidephi = kSPhi ; // arbitrary - sphi = 0.0 ; + sphi = 0.0 ; } - } + } if ( sphi < snxt ) // Order intersecttions { - snxt=sphi ; - side=sidephi ; + snxt=sphi ; + side=sidephi ; } } if ( sr < snxt ) // Order intersections @@ -1869,65 +1946,58 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, { switch(side) { - case kRMax: - // Note: returned vector not normalised - // (divide by frmax for unit vector) - xi = p.x() + snxt*v.x() ; - yi = p.y() + snxt*v.y() ; - risec = sqrt(xi*xi + yi*yi)*secRMax ; - *n = G4ThreeVector(xi/risec,yi/risec,-tanRMax/secRMax) ; - *validNorm = true ; - break ; - case kRMin: - *validNorm=false ; // Rmin is inconvex - break ; - case kSPhi: - if ( fDPhi <= M_PI ) - { - *n = G4ThreeVector(sin(fSPhi),-cos(fSPhi),0) ; - *validNorm = true ; - } - else *validNorm = false ; - break ; - case kEPhi: - if ( fDPhi <= M_PI ) - { - *n = G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0) ; - *validNorm = true ; - } - else *validNorm = false ; - break ; - case kPZ: - *n = G4ThreeVector(0,0,1) ; - *validNorm = true ; - break ; - case kMZ: - *n = G4ThreeVector(0,0,-1) ; - *validNorm = true ; - break ; - default: - G4cout.precision(16) ; - G4cout << G4endl ; - G4cout << "Cons parameters:" << G4endl << G4endl ; - G4cout << "fRmin1 = " << fRmin1/mm << " mm" << G4endl ; - G4cout << "fRmax1 = " << fRmax1/mm << " mm" << G4endl ; - G4cout << "fRmin2 = " << fRmin2/mm << " mm" << G4endl ; - G4cout << "fRmax2 = " << fRmax2/mm << " mm" << G4endl ; - G4cout << "fDz = " << fDz/mm << " mm" << G4endl ; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl ; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl ; - G4cout << "Position:" << G4endl << G4endl ; - G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; - G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; - G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; - G4cout << "Direction:" << G4endl << G4endl ; - G4cout << "v.x() = " << v.x() << G4endl ; - G4cout << "v.y() = " << v.y() << G4endl ; - G4cout << "v.z() = " << v.z() << G4endl<< G4endl ; - G4cout << "Proposed distance :" << G4endl<< G4endl ; - G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl ; - G4Exception("Invalid enum in G4Cons::DistanceToOut") ; - break ; + case kRMax: + // Note: returned vector not normalised + // (divide by frmax for unit vector) + xi = p.x() + snxt*v.x() ; + yi = p.y() + snxt*v.y() ; + risec = sqrt(xi*xi + yi*yi)*secRMax ; + *n = G4ThreeVector(xi/risec,yi/risec,-tanRMax/secRMax) ; + *validNorm = true ; + break ; + case kRMin: + *validNorm=false ; // Rmin is inconvex + break ; + case kSPhi: + if ( fDPhi <= M_PI ) + { + *n = G4ThreeVector(sin(fSPhi),-cos(fSPhi),0) ; + *validNorm = true ; + } + else *validNorm = false ; + break ; + case kEPhi: + if ( fDPhi <= M_PI ) + { + *n = G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0) ; + *validNorm = true ; + } + else *validNorm = false ; + break ; + case kPZ: + *n = G4ThreeVector(0,0,1) ; + *validNorm = true ; + break ; + case kMZ: + *n = G4ThreeVector(0,0,-1) ; + *validNorm = true ; + break ; + default: + G4cout.precision(16) ; + G4cout << G4endl ; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl ; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; + G4cout << "Direction:" << G4endl << G4endl ; + G4cout << "v.x() = " << v.x() << G4endl ; + G4cout << "v.y() = " << v.y() << G4endl ; + G4cout << "v.z() = " << v.z() << G4endl<< G4endl ; + G4cout << "Proposed distance :" << G4endl<< G4endl ; + G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl ; + G4Exception("G4Cons::DistanceToOut() - Invalid enum") ; + break ; } } if (snxt < kCarTolerance*0.5) snxt = 0.; @@ -1950,20 +2020,12 @@ G4double G4Cons::DistanceToOut(const G4ThreeVector& p) const { G4cout.precision(16) ; G4cout << G4endl ; - G4cout << "Cons parameters:" << G4endl << G4endl ; - G4cout << "fRmin1 = " << fRmin1/mm << " mm" << G4endl ; - G4cout << "fRmax1 = " << fRmax1/mm << " mm" << G4endl ; - G4cout << "fRmin2 = " << fRmin2/mm << " mm" << G4endl ; - G4cout << "fRmax2 = " << fRmax2/mm << " mm" << G4endl ; - G4cout << "fDz = " << fDz/mm << " mm" << G4endl ; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl ; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl << G4endl ; G4cout << "Position:" << G4endl << G4endl ; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; G4cout << "G4Cons::DistanceToOut(p) - point p is outside ?!" << G4endl ; - // G4Exception("Invalid call in G4Cons::DistanceToOut(p), p is outside") ; + G4cerr << "G4Cons::DistanceToOut(p) - point p is outside ?!" << G4endl ; } #endif @@ -1988,11 +2050,11 @@ G4double G4Cons::DistanceToOut(const G4ThreeVector& p) const else safe = safeR2 ; if (safeZ < safe) safe = safeZ ; -// Check if phi divided, Calc distances closest phi plane + // Check if phi divided, Calc distances closest phi plane if (fDPhi < 2.0*M_PI) { -// Above/below central phi of G4Cons? + // Above/below central phi of G4Cons? phiC = fSPhi + fDPhi*0.5 ; cosPhiC = cos(phiC) ; @@ -2010,7 +2072,7 @@ G4double G4Cons::DistanceToOut(const G4ThreeVector& p) const if (safePhi < safe) safe = safePhi ; } if ( safe < 0 ) safe = 0 ; - return safe ; + return safe ; } //////////////////////////////////////////////////////////////////////////// @@ -2034,7 +2096,7 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const G4double rMaxX1, rMaxX2, rMaxY1, rMaxY2, rMinX1, rMinX2, rMinY1, rMinY2 ; G4int crossSection, noCrossSections ; -// Compute no of cross-sections necessary to mesh cone + // Compute no of cross-sections necessary to mesh cone noCrossSections = G4int(fDPhi/kMeshAngleDefault) + 1 ; @@ -2048,13 +2110,13 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const } meshAngle = fDPhi/(noCrossSections - 1) ; -// G4double RMax = (fRmax2 >= fRmax1) ? fRmax2 : fRmax1 ; + // G4double RMax = (fRmax2 >= fRmax1) ? fRmax2 : fRmax1 ; meshRMax1 = fRmax1/cos(meshAngle*0.5) ; meshRMax2 = fRmax2/cos(meshAngle*0.5) ; -// If complete in phi, set start angle such that mesh will be at RMax -// on the x axis. Will give better extent calculations when not rotated. + // If complete in phi, set start angle such that mesh will be at RMax + // on the x axis. Will give better extent calculations when not rotated. if (fDPhi == M_PI*2.0 && fSPhi == 0.0 ) { @@ -2071,7 +2133,7 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const { for (crossSection = 0 ; crossSection < noCrossSections ; crossSection++) { -// Compute coordinates of cross section at section crossSection + // Compute coordinates of cross section at section crossSection crossAngle = sAngle + crossSection*meshAngle ; cosCrossAngle = cos(crossAngle) ; @@ -2081,14 +2143,14 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const rMaxY1 = meshRMax1*sinCrossAngle ; rMaxX2 = meshRMax2*cosCrossAngle ; rMaxY2 = meshRMax2*sinCrossAngle ; - -// G4double RMin = (fRmin2 <= fRmin1) ? fRmin2 : fRmin1 ; + + // G4double RMin = (fRmin2 <= fRmin1) ? fRmin2 : fRmin1 ; rMinX1 = fRmin1*cosCrossAngle ; rMinY1 = fRmin1*sinCrossAngle ; rMinX2 = fRmin2*cosCrossAngle ; rMinY2 = fRmin2*sinCrossAngle ; - + vertex0 = G4ThreeVector(rMinX1,rMinY1,-fDz) ; vertex1 = G4ThreeVector(rMaxX1,rMaxY1,-fDz) ; vertex2 = G4ThreeVector(rMaxX2,rMaxY2,+fDz) ; @@ -2102,11 +2164,44 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { - G4Exception("G4Cons::CreateRotatedVertices - Out of memory !"); + DumpInfo(); + G4Exception("G4Cons::CreateRotatedVertices() - Out of memory !"); } return vertices ; } +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType + +G4GeometryType G4Cons::GetEntityType() const +{ + return G4String("G4Cons"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Cons::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Cons\n" + << " Parameters: \n" + << " inside -fDz radius: " << fRmin1/mm << " mm \n" + << " outside -fDz radius: " << fRmax1/mm << " mm \n" + << " inside +fDz radius: " << fRmin2/mm << " mm \n" + << " outside +fDz radius: " << fRmax2/mm << " mm \n" + << " half length in Z : " << fDz/mm << " mm \n" + << " starting angle of segment: " << fSPhi/degree << " degrees \n" + << " delta angle of segment : " << fDPhi/degree << " degrees \n" + << "-----------------------------------------------------------\n"; + + return os; +} + ////////////////////////////////////////////////////////////////////////// // // Methods for visualisation @@ -2118,15 +2213,13 @@ void G4Cons::DescribeYourselfTo (G4VGraphicsScene& scene) const G4Polyhedron* G4Cons::CreatePolyhedron () const { - return new G4PolyhedronCons(fRmin1, fRmax1, fRmin2, fRmax2, fDz, fSPhi, - fDPhi); + return new G4PolyhedronCons(fRmin1,fRmax1,fRmin2,fRmax2,fDz,fSPhi,fDPhi); } G4NURBS* G4Cons::CreateNURBS () const { - G4double RMax = (fRmax2 >= fRmax1) ? fRmax2 : fRmax1 ; - - return new G4NURBSbox (RMax, RMax, fDz); // Box for now!!! + G4double RMax = (fRmax2 >= fRmax1) ? fRmax2 : fRmax1 ; + return new G4NURBSbox (RMax, RMax, fDz); // Box for now!!! } // diff --git a/source/geometry/solids/CSG/src/G4Para.cc b/source/geometry/solids/CSG/src/G4Para.cc index 1ec53c2f8b..18e9463b5d 100644 --- a/source/geometry/solids/CSG/src/G4Para.cc +++ b/source/geometry/solids/CSG/src/G4Para.cc @@ -21,20 +21,22 @@ // ******************************************************************** // // -// $Id: G4Para.cc,v 1.11 2002/05/15 09:37:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Para.cc,v 1.13 2002/10/28 15:18:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 -// 14.02.02 V. Grichine , bug fixed in Inside according to proposal of D. Wright +// 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 +// 14.02.02 V.Grichine: bug fixed in Inside according to proposal of D.Wright +// ******************************************************************** #include "G4Para.hh" + #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" @@ -46,7 +48,7 @@ #include "G4NURBSbox.hh" // Private enum: Not for external use - + enum ESide {kUndef,kPX,kMX,kPY,kMY,kPZ,kMZ}; // used internally for normal routine @@ -57,38 +59,52 @@ enum ENSide {kNZ,kNX,kNY}; // // Constructor - check and set half-widths -void G4Para::SetAllParameters(G4double pDx, G4double pDy, G4double pDz, - G4double pAlpha, G4double pTheta, G4double pPhi) +void G4Para::SetAllParameters( G4double pDx, G4double pDy, G4double pDz, + G4double pAlpha, G4double pTheta, G4double pPhi ) { if (pDx>0&&pDy>0&&pDz>0) { - fDx=pDx; - fDy=pDy; - fDz=pDz; - fTalpha=tan(pAlpha); - fTthetaCphi=tan(pTheta)*cos(pPhi); - fTthetaSphi=tan(pTheta)*sin(pPhi); + fDx=pDx; + fDy=pDy; + fDz=pDz; + fTalpha=tan(pAlpha); + fTthetaCphi=tan(pTheta)*cos(pPhi); + fTthetaSphi=tan(pTheta)*sin(pPhi); } else { - G4Exception("Error in G4Para::SetAllParameters - Invalid Length Parameters"); + G4cout << "ERROR - G4Para()::SetAllParameters(): " << GetName() << G4endl + << " Invalid dimensions ! - " + << pDx << ", " << pDy << ", " << pDz << G4endl; + G4cerr << "ERROR - G4Para()::SetAllParameters(): " << GetName() << G4endl + << " Invalid dimensions ! - " + << pDx << ", " << pDy << ", " << pDz << G4endl; + G4Exception("G4Para::SetAllParameters() - Invalid Length Parameters"); } } /////////////////////////////////////////////////////////////////////////// // -G4Para::G4Para(const G4String& pName,G4double pDx, G4double pDy, G4double pDz, - G4double pAlpha, G4double pTheta,G4double pPhi) : G4CSGSolid(pName) +G4Para::G4Para(const G4String& pName, + G4double pDx, G4double pDy, G4double pDz, + G4double pAlpha, G4double pTheta, G4double pPhi) + : G4CSGSolid(pName) { - if (pDx>0&&pDy>0&&pDz>0) - { - SetAllParameters( pDx, pDy, pDz, pAlpha, pTheta, pPhi); - } - else - { - G4Exception("Error in G4Para::G4Para - Invalid Length Parameters"); - } + if (pDx>0&&pDy>0&&pDz>0) + { + SetAllParameters( pDx, pDy, pDz, pAlpha, pTheta, pPhi); + } + else + { + G4cout << "ERROR - G4Para()::G4Para(): " << GetName() << G4endl + << " Invalid dimensions ! - " + << pDx << ", " << pDy << ", " << pDz << G4endl; + G4cerr << "ERROR - G4Para()::G4Para(): " << GetName() << G4endl + << " Invalid dimensions ! - " + << pDx << ", " << pDy << ", " << pDz << G4endl; + G4Exception("G4Para::G4Para() - Invalid Length Parameters"); + } } //////////////////////////////////////////////////////////////////////// @@ -97,39 +113,41 @@ G4Para::G4Para(const G4String& pName,G4double pDx, G4double pDy, G4double pDz, // which are its vertices. Checking of planarity with preparation of // fPlanes[] and than calculation of other members - G4Para::G4Para( const G4String& pName, - const G4ThreeVector pt[8]) : G4CSGSolid(pName) + const G4ThreeVector pt[8] ) + : G4CSGSolid(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 ) - { - fDz = (pt[7]).z() ; - - fDy = ((pt[2]).y()-(pt[1]).y())*0.5 ; - fDx = ((pt[1]).x()-(pt[0]).x())*0.5 ; - fDx = ((pt[3]).x()-(pt[2]).x())*0.5 ; - fTalpha = ((pt[2]).x()+(pt[3]).x()-(pt[1]).x()-(pt[0]).x())*0.25/fDy ; + 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 ) + { + fDz = (pt[7]).z() ; - // fDy = ((pt[6]).y()-(pt[5]).y())*0.5 ; - // fDx = ((pt[5]).x()-(pt[4]).x())*0.5 ; - // fDx = ((pt[7]).x()-(pt[6]).x())*0.5 ; - // fTalpha = ((pt[6]).x()+(pt[7]).x()-(pt[5]).x()-(pt[4]).x())*0.25/fDy ; + fDy = ((pt[2]).y()-(pt[1]).y())*0.5 ; + fDx = ((pt[1]).x()-(pt[0]).x())*0.5 ; + fDx = ((pt[3]).x()-(pt[2]).x())*0.5 ; + fTalpha = ((pt[2]).x()+(pt[3]).x()-(pt[1]).x()-(pt[0]).x())*0.25/fDy ; - fTthetaCphi = ((pt[4]).x()+fDy*fTalpha+fDx)/fDz ; - fTthetaSphi = ((pt[4]).y()+fDy)/fDz ; + // fDy = ((pt[6]).y()-(pt[5]).y())*0.5 ; + // fDx = ((pt[5]).x()-(pt[4]).x())*0.5 ; + // fDx = ((pt[7]).x()-(pt[6]).x())*0.5 ; + // fTalpha = ((pt[6]).x()+(pt[7]).x()-(pt[5]).x()-(pt[4]).x())*0.25/fDy ; - } - else - { - G4Exception("Error in G4Para::G4Para - Invalid vertice coordinates"); - } - - + fTthetaCphi = ((pt[4]).x()+fDy*fTalpha+fDx)/fDz ; + fTthetaSphi = ((pt[4]).y()+fDy)/fDz ; + } + else + { + G4cout << "ERROR - G4Para()::G4Para(): " << GetName() << G4endl + << " Invalid dimensions !" << G4endl; + G4cerr << "ERROR - G4Para()::G4Para(): " << GetName() << G4endl + << " Invalid dimensions !" << G4endl; + G4Exception("G4Para::G4Para() - Invalid vertice coordinates"); + } } ////////////////////////////////////////////////////////////////////////// @@ -137,7 +155,6 @@ G4Para::G4Para( const G4String& pName, G4Para::~G4Para() { - ; } ////////////////////////////////////////////////////////////////////////// @@ -145,11 +162,11 @@ G4Para::~G4Para() // Dispatch to parameterisation for replication mechanism dimension // computation & modification. - void G4Para::ComputeDimensions(G4VPVParameterisation* p, +void G4Para::ComputeDimensions( G4VPVParameterisation* p, const G4int n, - const G4VPhysicalVolume* pRep) + const G4VPhysicalVolume* pRep ) { - p->ComputeDimensions(*this,n,pRep); + p->ComputeDimensions(*this,n,pRep); } @@ -157,214 +174,227 @@ G4Para::~G4Para() // // Calculate extent under transform and specified limit -G4bool G4Para::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const +G4bool G4Para::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const { - G4bool flag; + G4bool flag; - if (!pTransform.IsRotated()) - { - // Special case handling for unrotated trapezoids - // Compute z/x/y/ mins and maxs respecting limits, with early returns - // if outside limits. Then switch() on pAxis - G4int i ; - G4double xoffset,xMin,xMax; - G4double yoffset,yMin,yMax; - G4double zoffset,zMin,zMax; - G4double temp[8] ; // some points for intersection with zMin/zMax - - xoffset=pTransform.NetTranslation().x(); - yoffset=pTransform.NetTranslation().y(); - zoffset=pTransform.NetTranslation().z(); + if (!pTransform.IsRotated()) + { + // Special case handling for unrotated trapezoids + // Compute z/x/y/ mins and maxs respecting limits, with early returns + // if outside limits. Then switch() on pAxis + + G4int i ; + G4double xoffset,xMin,xMax; + G4double yoffset,yMin,yMax; + G4double zoffset,zMin,zMax; + G4double temp[8] ; // some points for intersection with zMin/zMax + + xoffset=pTransform.NetTranslation().x(); + yoffset=pTransform.NetTranslation().y(); + zoffset=pTransform.NetTranslation().z(); - G4ThreeVector pt[8]; // vertices after translation - pt[0]=G4ThreeVector(xoffset-fDz*fTthetaCphi-fDy*fTalpha-fDx, - yoffset-fDz*fTthetaSphi-fDy,zoffset-fDz); - pt[1]=G4ThreeVector(xoffset-fDz*fTthetaCphi-fDy*fTalpha+fDx, - yoffset-fDz*fTthetaSphi-fDy,zoffset-fDz); - pt[2]=G4ThreeVector(xoffset-fDz*fTthetaCphi+fDy*fTalpha-fDx, - yoffset-fDz*fTthetaSphi+fDy,zoffset-fDz); - pt[3]=G4ThreeVector(xoffset-fDz*fTthetaCphi+fDy*fTalpha+fDx, - yoffset-fDz*fTthetaSphi+fDy,zoffset-fDz); - pt[4]=G4ThreeVector(xoffset+fDz*fTthetaCphi-fDy*fTalpha-fDx, - yoffset+fDz*fTthetaSphi-fDy,zoffset+fDz); - pt[5]=G4ThreeVector(xoffset+fDz*fTthetaCphi-fDy*fTalpha+fDx, - yoffset+fDz*fTthetaSphi-fDy,zoffset+fDz); - pt[6]=G4ThreeVector(xoffset+fDz*fTthetaCphi+fDy*fTalpha-fDx, - yoffset+fDz*fTthetaSphi+fDy,zoffset+fDz); - pt[7]=G4ThreeVector(xoffset+fDz*fTthetaCphi+fDy*fTalpha+fDx, - yoffset+fDz*fTthetaSphi+fDy,zoffset+fDz); - zMin=zoffset-fDz; - zMax=zoffset+fDz; - if (pVoxelLimit.IsZLimited()) - { - if (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance - ||zMaxpVoxelLimit.GetMaxZExtent()) - { - zMax=pVoxelLimit.GetMaxZExtent(); - } - } - } + G4ThreeVector pt[8]; // vertices after translation + pt[0]=G4ThreeVector(xoffset-fDz*fTthetaCphi-fDy*fTalpha-fDx, + yoffset-fDz*fTthetaSphi-fDy,zoffset-fDz); + pt[1]=G4ThreeVector(xoffset-fDz*fTthetaCphi-fDy*fTalpha+fDx, + yoffset-fDz*fTthetaSphi-fDy,zoffset-fDz); + pt[2]=G4ThreeVector(xoffset-fDz*fTthetaCphi+fDy*fTalpha-fDx, + yoffset-fDz*fTthetaSphi+fDy,zoffset-fDz); + pt[3]=G4ThreeVector(xoffset-fDz*fTthetaCphi+fDy*fTalpha+fDx, + yoffset-fDz*fTthetaSphi+fDy,zoffset-fDz); + pt[4]=G4ThreeVector(xoffset+fDz*fTthetaCphi-fDy*fTalpha-fDx, + yoffset+fDz*fTthetaSphi-fDy,zoffset+fDz); + pt[5]=G4ThreeVector(xoffset+fDz*fTthetaCphi-fDy*fTalpha+fDx, + yoffset+fDz*fTthetaSphi-fDy,zoffset+fDz); + pt[6]=G4ThreeVector(xoffset+fDz*fTthetaCphi+fDy*fTalpha-fDx, + yoffset+fDz*fTthetaSphi+fDy,zoffset+fDz); + pt[7]=G4ThreeVector(xoffset+fDz*fTthetaCphi+fDy*fTalpha+fDx, + yoffset+fDz*fTthetaSphi+fDy,zoffset+fDz); + zMin=zoffset-fDz; + zMax=zoffset+fDz; + if ( pVoxelLimit.IsZLimited() ) + { + if ( (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance) + || (zMaxpVoxelLimit.GetMaxZExtent()) + { + zMax=pVoxelLimit.GetMaxZExtent(); + } + } + } - temp[0] = pt[0].y()+(pt[4].y()-pt[0].y())*(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[1] = pt[0].y()+(pt[4].y()-pt[0].y())*(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[2] = pt[2].y()+(pt[6].y()-pt[2].y())*(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; - temp[3] = pt[2].y()+(pt[6].y()-pt[2].y())*(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; - yMax = yoffset - fabs(fDz*fTthetaSphi) - fDy - fDy ; - yMin = -yMax ; - for(i=0;i<4;i++) - { - if(temp[i] > yMax) yMax = temp[i] ; - if(temp[i] < yMin) yMin = temp[i] ; - } - - if (pVoxelLimit.IsYLimited()) - { - if (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance - ||yMaxpVoxelLimit.GetMaxYExtent()) - { - yMax=pVoxelLimit.GetMaxYExtent(); - } - } - } + temp[0] = pt[0].y()+(pt[4].y()-pt[0].y()) + *(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; + temp[1] = pt[0].y()+(pt[4].y()-pt[0].y()) + *(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; + temp[2] = pt[2].y()+(pt[6].y()-pt[2].y()) + *(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; + temp[3] = pt[2].y()+(pt[6].y()-pt[2].y()) + *(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; + yMax = yoffset - fabs(fDz*fTthetaSphi) - fDy - fDy ; + yMin = -yMax ; + for(i=0;i<4;i++) + { + if(temp[i] > yMax) yMax = temp[i] ; + if(temp[i] < yMin) yMin = temp[i] ; + } + + if (pVoxelLimit.IsYLimited()) + { + if ( (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance) + || (yMaxpVoxelLimit.GetMaxYExtent()) + { + yMax=pVoxelLimit.GetMaxYExtent(); + } + } + } - temp[0] = pt[0].x()+(pt[4].x()-pt[0].x())*(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[1] = pt[0].x()+(pt[4].x()-pt[0].x())*(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[2] = pt[2].x()+(pt[6].x()-pt[2].x())*(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; - temp[3] = pt[2].x()+(pt[6].x()-pt[2].x())*(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; - temp[4] = pt[3].x()+(pt[7].x()-pt[3].x())*(zMin-pt[3].z())/(pt[7].z()-pt[3].z()) ; - temp[5] = pt[3].x()+(pt[7].x()-pt[3].x())*(zMax-pt[3].z())/(pt[7].z()-pt[3].z()) ; - temp[6] = pt[1].x()+(pt[5].x()-pt[1].x())*(zMin-pt[1].z())/(pt[5].z()-pt[1].z()) ; - temp[7] = pt[1].x()+(pt[5].x()-pt[1].x())*(zMax-pt[1].z())/(pt[5].z()-pt[1].z()) ; - - xMax = xoffset - fabs(fDz*fTthetaCphi) - fDx - fDx -fDx - fDx; - xMin = -xMax ; - for(i=0;i<8;i++) - { - if(temp[i] > xMax) xMax = temp[i] ; - if(temp[i] < xMin) xMin = temp[i] ; - } - // xMax/Min = f(yMax/Min) ? - if (pVoxelLimit.IsXLimited()) - { - if (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance - ||xMaxpVoxelLimit.GetMaxXExtent()) - { - xMax=pVoxelLimit.GetMaxXExtent(); - } - } - } + temp[0] = pt[0].x()+(pt[4].x()-pt[0].x()) + *(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; + temp[1] = pt[0].x()+(pt[4].x()-pt[0].x()) + *(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; + temp[2] = pt[2].x()+(pt[6].x()-pt[2].x()) + *(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; + temp[3] = pt[2].x()+(pt[6].x()-pt[2].x()) + *(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; + temp[4] = pt[3].x()+(pt[7].x()-pt[3].x()) + *(zMin-pt[3].z())/(pt[7].z()-pt[3].z()) ; + temp[5] = pt[3].x()+(pt[7].x()-pt[3].x()) + *(zMax-pt[3].z())/(pt[7].z()-pt[3].z()) ; + temp[6] = pt[1].x()+(pt[5].x()-pt[1].x()) + *(zMin-pt[1].z())/(pt[5].z()-pt[1].z()) ; + temp[7] = pt[1].x()+(pt[5].x()-pt[1].x()) + *(zMax-pt[1].z())/(pt[5].z()-pt[1].z()) ; - 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; - } + xMax = xoffset - fabs(fDz*fTthetaCphi) - fDx - fDx -fDx - fDx; + xMin = -xMax ; + for(i=0;i<8;i++) + { + if(temp[i] > xMax) xMax = temp[i] ; + if(temp[i] < xMin) xMin = temp[i] ; + } + // xMax/Min = f(yMax/Min) ? + if (pVoxelLimit.IsXLimited()) + { + if ( (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance) + || (xMaxpVoxelLimit.GetMaxXExtent()) + { + xMax=pVoxelLimit.GetMaxXExtent(); + } + } + } - pMin-=kCarTolerance; - pMax+=kCarTolerance; + 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; + } - flag = true; - } + pMin-=kCarTolerance; + pMax+=kCarTolerance; + flag = 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 (pMin!=kInfinity||pMax!=-kInfinity) + { + existsAfterClip=true; + + // Add 2*tolerance to avoid precision troubles + // + pMin-=kCarTolerance; + pMax+=kCarTolerance; + } 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 (pMin!=kInfinity||pMax!=-kInfinity) - { - existsAfterClip=true; - -// Add 2*tolerance to avoid precision troubles - pMin-=kCarTolerance; - pMax+=kCarTolerance; - - } - else - { -// 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. - - G4ThreeVector clipCentre( - (pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, - (pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, - (pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre))!=kOutside) - { - existsAfterClip=true; - pMin=pVoxelLimit.GetMinExtent(pAxis); - pMax=pVoxelLimit.GetMaxExtent(pAxis); - } - } - delete vertices ; // 'new' in the function called - flag = existsAfterClip ; - } - return flag; + { + // 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. + + G4ThreeVector clipCentre( + (pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, + (pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, + (pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); + + if (Inside(pTransform.Inverse().TransformPoint(clipCentre))!=kOutside) + { + existsAfterClip=true; + pMin=pVoxelLimit.GetMinExtent(pAxis); + pMax=pVoxelLimit.GetMaxExtent(pAxis); + } + } + delete vertices ; // 'new' in the function called + flag = existsAfterClip ; + } + return flag; } ///////////////////////////////////////////////////////////////////////////// // // Check in p is inside/on surface/outside solid -EInside G4Para::Inside(const G4ThreeVector& p) const +EInside G4Para::Inside( const G4ThreeVector& p ) const { G4double xt, yt, yt1; EInside in = kOutside; @@ -385,15 +415,14 @@ EInside G4Para::Inside(const G4ThreeVector& p) const } else if ( yt <= fDy + kCarTolerance*0.5) { - if ( xt <= fDx + kCarTolerance*0.5 ) in = kSurface; + if ( xt <= fDx + kCarTolerance*0.5 ) in = kSurface; } } else if ( fabs(p.z()) <= fDz + kCarTolerance*0.5 ) { - if ( yt <= fDy + kCarTolerance*0.5) { - if ( xt <= fDx + kCarTolerance*0.5 ) in = kSurface; + if ( xt <= fDx + kCarTolerance*0.5 ) in = kSurface; } } return in; @@ -404,89 +433,89 @@ EInside G4Para::Inside(const G4ThreeVector& p) const // Calculate side nearest to p, and return normal // If 2+ sides equidistant, first side's normal returned (arbitrarily) -G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p ) const { - ENSide side; - G4ThreeVector norm; - 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; + ENSide side; + G4ThreeVector norm; + 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; - newpx=p.x()-fTthetaCphi*p.z(); - newpy=p.y()-fTthetaSphi*p.z(); + newpx=p.x()-fTthetaCphi*p.z(); + newpy=p.y()-fTthetaSphi*p.z(); - calpha=1/sqrt(1+fTalpha*fTalpha); - if (fTalpha) - { - salpha=-calpha/fTalpha; // NOTE: actually use MINUS sin(alpha) - } - else - { - salpha=0; - } + calpha=1/sqrt(1+fTalpha*fTalpha); + if (fTalpha) + { + salpha=-calpha/fTalpha; // NOTE: actually use MINUS sin(alpha) + } + else + { + salpha=0; + } - xshift=newpx*calpha+newpy*salpha; + xshift=newpx*calpha+newpy*salpha; - distx=fabs(fabs(xshift)-fDx*calpha); - disty=fabs(fabs(newpy)-fDy); - distz=fabs(fabs(p.z())-fDz); + distx=fabs(fabs(xshift)-fDx*calpha); + disty=fabs(fabs(newpy)-fDy); + distz=fabs(fabs(p.z())-fDz); - if (distx=0) - { - norm=G4ThreeVector(0,0,1); - } - else - { - norm=G4ThreeVector(0,0,-1); - } - break; - } - return norm; + switch (side) + { + case kNX: + tntheta=fTthetaCphi*calpha+fTthetaSphi*salpha; + if (xshift<0) + { + cosntheta=-1/sqrt(1+tntheta*tntheta); + } + else + { + cosntheta=1/sqrt(1+tntheta*tntheta); + } + norm=G4ThreeVector(calpha*cosntheta,salpha*cosntheta,-tntheta*cosntheta); + break; + case kNY: + if (newpy<0) + { + ycomp=-1/sqrt(1+fTthetaSphi*fTthetaSphi); + } + else + { + ycomp=1/sqrt(1+fTthetaSphi*fTthetaSphi); + } + norm=G4ThreeVector(0,ycomp,-fTthetaSphi*ycomp); + break; + case kNZ: // Closest to Z + if (p.z()>=0) + { + norm=G4ThreeVector(0,0,1); + } + else + { + norm=G4ThreeVector(0,0,-1); + } + break; + } + return norm; } ////////////////////////////////////////////////////////////////////////////// // -// Calculate distance to shape from outside - return kInfinity if no intersection +// Calculate distance to shape from outside +// - return kInfinity if no intersection // // ALGORITHM: // For each component, calculate pair of minimum and maximum intersection @@ -499,172 +528,175 @@ G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p) const // - Note: XZ and YZ planes each divide space into four regions, // characterised by ss1 ss2 -G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) const +G4double G4Para::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const { - G4double snxt; // snxt = default return value - G4double smin,smax; - G4double tmin,tmax; - G4double yt,vy,xt,vx; - G4double max; -// -// Z Intersection range -// - if (v.z()>0) - { - max=fDz-p.z(); - if (max>kCarTolerance*0.5) - { - smax=max/v.z(); - smin=(-fDz-p.z())/v.z(); - } - else - { - return snxt=kInfinity; - } - } - else if (v.z()<0) - { - max=-fDz-p.z(); - if (max<-kCarTolerance*0.5) - { - smax=max/v.z(); - smin=(fDz-p.z())/v.z(); - } - else - { - return snxt=kInfinity; - } - } + G4double snxt; // snxt = default return value + G4double smin,smax; + G4double tmin,tmax; + G4double yt,vy,xt,vx; + G4double max; + // + // Z Intersection range + // + if (v.z()>0) + { + max=fDz-p.z(); + if (max>kCarTolerance*0.5) + { + smax=max/v.z(); + smin=(-fDz-p.z())/v.z(); + } else - { - if (fabs(p.z())<=fDz) // Inside - { - smin=0; - smax=kInfinity; - } - else - { - return snxt=kInfinity; - } - } + { + return snxt=kInfinity; + } + } + else if (v.z()<0) + { + max=-fDz-p.z(); + if (max<-kCarTolerance*0.5) + { + smax=max/v.z(); + smin=(fDz-p.z())/v.z(); + } + else + { + return snxt=kInfinity; + } + } + else + { + if (fabs(p.z())<=fDz) // Inside + { + smin=0; + smax=kInfinity; + } + else + { + return snxt=kInfinity; + } + } -// -// Y G4Parallel planes intersection -// - yt=p.y()-fTthetaSphi*p.z(); - vy=v.y()-fTthetaSphi*v.z(); + // + // Y G4Parallel planes intersection + // - if (vy>0) - { - max=fDy-yt; - if (max>kCarTolerance*0.5) - { - tmax=max/vy; - tmin=(-fDy-yt)/vy; - } - else - { - return snxt=kInfinity; - } - } - else if (vy<0) - { - max=-fDy-yt; - if (max<-kCarTolerance*0.5) - { - tmax=max/vy; - tmin=(fDy-yt)/vy; - } - else - { - return snxt=kInfinity; - } - } + yt=p.y()-fTthetaSphi*p.z(); + vy=v.y()-fTthetaSphi*v.z(); + + if (vy>0) + { + max=fDy-yt; + if (max>kCarTolerance*0.5) + { + tmax=max/vy; + tmin=(-fDy-yt)/vy; + } else - { - if (fabs(yt)<=fDy) - { - tmin=0; - tmax=kInfinity; - } - else - { - return snxt=kInfinity; - } - } + { + return snxt=kInfinity; + } + } + else if (vy<0) + { + max=-fDy-yt; + if (max<-kCarTolerance*0.5) + { + tmax=max/vy; + tmin=(fDy-yt)/vy; + } + else + { + return snxt=kInfinity; + } + } + else + { + if (fabs(yt)<=fDy) + { + tmin=0; + tmax=kInfinity; + } + else + { + return snxt=kInfinity; + } + } -// Re-Calc valid intersection range + // Re-Calc valid intersection range + // + if (tmin>smin) smin=tmin; + if (tmax0) + { + max=fDx-xt; + if (max>kCarTolerance*0.5) + { + tmax=max/vx; + tmin=(-fDx-xt)/vx; + } + else + { + return snxt=kInfinity; + } + } + else if (vx<0) + { + max=-fDx-xt; + if (max<-kCarTolerance*0.5) + { + tmax=max/vx; + tmin=(fDx-xt)/vx; + } + else + { + return snxt=kInfinity; + } + } + else + { + if (fabs(xt)<=fDx) + { + tmin=0; + tmax=kInfinity; + } + else + { + return snxt=kInfinity; + } + } if (tmin>smin) smin=tmin; if (tmax0&&smin0) + { + snxt=smin; + } else - { -// -// X G4Parallel planes intersection -// - xt=p.x()-fTthetaCphi*p.z()-fTalpha*yt; - vx=v.x()-fTthetaCphi*v.z()-fTalpha*vy; - if (vx>0) - { - max=fDx-xt; - if (max>kCarTolerance*0.5) - { - tmax=max/vx; - tmin=(-fDx-xt)/vx; - } - else - { - return snxt=kInfinity; - } - } - else if (vx<0) - { - max=-fDx-xt; - if (max<-kCarTolerance*0.5) - { - tmax=max/vx; - tmin=(fDx-xt)/vx; - } - else - { - return snxt=kInfinity; - } - } - else - { - if (fabs(xt)<=fDx) - { - tmin=0; - tmax=kInfinity; - } - else - { - return snxt=kInfinity; - } - } - if (tmin>smin) smin=tmin; - if (tmax0&&smin0) - { - snxt=smin; - } - else - { - snxt=0; - } - } - else - { - snxt=kInfinity; - } - return snxt; + { + snxt=0; + } + } + else + { + snxt=kInfinity; + } + return snxt; } //////////////////////////////////////////////////////////////////////////// @@ -672,284 +704,290 @@ G4double G4Para::DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) con // Calculate exact shortest distance to any boundary from outside // - Returns 0 is point inside -G4double G4Para::DistanceToIn(const G4ThreeVector& p) const +G4double G4Para::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe; - G4double distz1,distz2,disty1,disty2,distx1,distx2; - G4double trany,cosy,tranx,cosx; + G4double safe; + G4double distz1,distz2,disty1,disty2,distx1,distx2; + G4double trany,cosy,tranx,cosx; -// Z planes - distz1=p.z()-fDz; - distz2=-fDz-p.z(); - if (distz1>distz2) - { - safe=distz1; - } - else - { - safe=distz2; - } + // Z planes + // + distz1=p.z()-fDz; + distz2=-fDz-p.z(); + if (distz1>distz2) + { + safe=distz1; + } + else + { + safe=distz2; + } - trany=p.y()-fTthetaSphi*p.z(); // Transformed y into `box' system - // Transformed x into `box' system - cosy=1.0/sqrt(1.0+fTthetaSphi*fTthetaSphi); - disty1=(trany-fDy)*cosy; - disty2=(-fDy-trany)*cosy; - - if (disty1>safe) safe=disty1; - if (disty2>safe) safe=disty2; + trany=p.y()-fTthetaSphi*p.z(); // Transformed y into `box' system - tranx=p.x()-fTthetaCphi*p.z()-fTalpha*trany; - cosx=1.0/sqrt(1.0+fTalpha*fTalpha+fTthetaCphi*fTthetaCphi); - distx1=(tranx-fDx)*cosx; - distx2=(-fDx-tranx)*cosx; + // Transformed x into `box' system + // + cosy=1.0/sqrt(1.0+fTthetaSphi*fTthetaSphi); + disty1=(trany-fDy)*cosy; + disty2=(-fDy-trany)*cosy; - if (distx1>safe) safe=distx1; - if (distx2>safe) safe=distx2; + if (disty1>safe) safe=disty1; + if (disty2>safe) safe=disty2; + + tranx=p.x()-fTthetaCphi*p.z()-fTalpha*trany; + cosx=1.0/sqrt(1.0+fTalpha*fTalpha+fTthetaCphi*fTthetaCphi); + distx1=(tranx-fDx)*cosx; + distx2=(-fDx-tranx)*cosx; - if (safe<0) safe=0; - return safe; + if (distx1>safe) safe=distx1; + if (distx2>safe) safe=distx2; + + if (safe<0) safe=0; + return safe; } ////////////////////////////////////////////////////////////////////////// // -// Calcluate distance to surface of shape from inside +// Calculate distance to surface of shape from inside // Calculate distance to x/y/z planes - smallest is exiting distance -G4double G4Para::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm,G4ThreeVector *n) const +G4double G4Para::DistanceToOut(const G4ThreeVector& p, const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, G4ThreeVector *n) const { - ESide side = kUndef; - G4double snxt; // snxt = return value - G4double max,tmax; - G4double yt,vy,xt,vx; + ESide side = kUndef; + G4double snxt; // snxt = return value + G4double max,tmax; + G4double yt,vy,xt,vx; - G4double ycomp,calpha,salpha,tntheta,cosntheta; -// -// Z Intersections -// - if (v.z()>0) - { - max=fDz-p.z(); - if (max>kCarTolerance*0.5) - { - snxt=max/v.z(); - side=kPZ; - } - else - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(0,0,1); - } - return snxt=0; - } - } - else if (v.z()<0) - { - max=-fDz-p.z(); - if (max<-kCarTolerance*0.5) - { - snxt=max/v.z(); - side=kMZ; - } - else - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(0,0,-1); - } - return snxt=0; - } - } + G4double ycomp,calpha,salpha,tntheta,cosntheta; + + // + // Z Intersections + // + + if (v.z()>0) + { + max=fDz-p.z(); + if (max>kCarTolerance*0.5) + { + snxt=max/v.z(); + side=kPZ; + } else - { - snxt=kInfinity; - } - + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(0,0,1); + } + return snxt=0; + } + } + else if (v.z()<0) + { + max=-fDz-p.z(); + if (max<-kCarTolerance*0.5) + { + snxt=max/v.z(); + side=kMZ; + } + else + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(0,0,-1); + } + return snxt=0; + } + } + else + { + snxt=kInfinity; + } -// -// Y plane intersection -// - yt=p.y()-fTthetaSphi*p.z(); - vy=v.y()-fTthetaSphi*v.z(); + // + // Y plane intersection + // - if (vy>0) - { - max=fDy-yt; - if (max>kCarTolerance*0.5) - { - tmax=max/vy; - if (tmax0) - { - max=fDx-xt; - if (max>kCarTolerance*0.5) - { - tmax=max/vx; - if (tmax0) + { + max=fDy-yt; + if (max>kCarTolerance*0.5) + { + tmax=max/vy; + if (tmax0) + { + max=fDx-xt; + if (max>kCarTolerance*0.5) + { + tmax=max/vx; + if (tmaxreserve(8); - if (vertices) - { - G4ThreeVector vertex0(-fDz*fTthetaCphi-fDy*fTalpha-fDx,-fDz*fTthetaSphi-fDy,-fDz); - G4ThreeVector vertex1(-fDz*fTthetaCphi-fDy*fTalpha+fDx,-fDz*fTthetaSphi-fDy,-fDz); - G4ThreeVector vertex2(-fDz*fTthetaCphi+fDy*fTalpha-fDx,-fDz*fTthetaSphi+fDy,-fDz); - G4ThreeVector vertex3(-fDz*fTthetaCphi+fDy*fTalpha+fDx,-fDz*fTthetaSphi+fDy,-fDz); - G4ThreeVector vertex4(+fDz*fTthetaCphi-fDy*fTalpha-fDx,+fDz*fTthetaSphi-fDy,+fDz); - G4ThreeVector vertex5(+fDz*fTthetaCphi-fDy*fTalpha+fDx,+fDz*fTthetaSphi-fDy,+fDz); - G4ThreeVector vertex6(+fDz*fTthetaCphi+fDy*fTalpha-fDx,+fDz*fTthetaSphi+fDy,+fDz); - G4ThreeVector vertex7(+fDz*fTthetaCphi+fDy*fTalpha+fDx,+fDz*fTthetaSphi+fDy,+fDz); + G4ThreeVectorList *vertices; + vertices=new G4ThreeVectorList(); + vertices->reserve(8); + if (vertices) + { + G4ThreeVector vertex0(-fDz*fTthetaCphi-fDy*fTalpha-fDx, + -fDz*fTthetaSphi-fDy, -fDz); + G4ThreeVector vertex1(-fDz*fTthetaCphi-fDy*fTalpha+fDx, + -fDz*fTthetaSphi-fDy, -fDz); + G4ThreeVector vertex2(-fDz*fTthetaCphi+fDy*fTalpha-fDx, + -fDz*fTthetaSphi+fDy, -fDz); + G4ThreeVector vertex3(-fDz*fTthetaCphi+fDy*fTalpha+fDx, + -fDz*fTthetaSphi+fDy, -fDz); + G4ThreeVector vertex4(+fDz*fTthetaCphi-fDy*fTalpha-fDx, + +fDz*fTthetaSphi-fDy, +fDz); + G4ThreeVector vertex5(+fDz*fTthetaCphi-fDy*fTalpha+fDx, + +fDz*fTthetaSphi-fDy, +fDz); + G4ThreeVector vertex6(+fDz*fTthetaCphi+fDy*fTalpha-fDx, + +fDz*fTthetaSphi+fDy, +fDz); + G4ThreeVector vertex7(+fDz*fTthetaCphi+fDy*fTalpha+fDx, + +fDz*fTthetaSphi+fDy, +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 - { - G4Exception("G4Para::CreateRotatedVertices - Out of memory !"); - } - return vertices; + 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("G4Para::CreateRotatedVertices() - Out of memory !"); + } + return vertices; +} + +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType + +G4GeometryType G4Para::GetEntityType() const +{ + return G4String("G4Para"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Para::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Para\n" + << " Parameters: \n" + << " half length X: " << fDx/mm << " mm \n" + << " half length Y: " << fDy/mm << " mm \n" + << " half length Z: " << fDz/mm << " mm \n" + << " tan(alpha) : " << fTalpha/degree << " degrees \n" + << " tan(theta)*cos(phi): " << fTthetaCphi/degree << " degrees \n" + << " tan(theta)*sin(phi): " << fTthetaSphi/degree << " degrees \n" + << "-----------------------------------------------------------\n"; + + return os; } //////////////////////////////////////////////////////////////////////////// // // Methods for visualisation -void G4Para::DescribeYourselfTo (G4VGraphicsScene& scene) const +void G4Para::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddThis (*this); } G4Polyhedron* G4Para::CreatePolyhedron () const { - G4double phi = atan2(fTthetaSphi, fTthetaCphi); - G4double alpha = atan(fTalpha); - G4double theta = atan(sqrt(fTthetaCphi*fTthetaCphi - +fTthetaSphi*fTthetaSphi)); + G4double phi = atan2(fTthetaSphi, fTthetaCphi); + G4double alpha = atan(fTalpha); + G4double theta = atan(sqrt(fTthetaCphi*fTthetaCphi + +fTthetaSphi*fTthetaSphi)); - return new G4PolyhedronPara(fDx, fDy, fDz, alpha, theta, phi); + return new G4PolyhedronPara(fDx, fDy, fDz, alpha, theta, phi); } G4NURBS* G4Para::CreateNURBS () const { - // return new G4NURBSbox (fDx, fDy, fDz); - return 0 ; + // return new G4NURBSbox (fDx, fDy, fDz); + return 0 ; } // diff --git a/source/geometry/solids/CSG/src/G4Sphere.cc b/source/geometry/solids/CSG/src/G4Sphere.cc index 5b8a4be76e..f4ca583bce 100644 --- a/source/geometry/solids/CSG/src/G4Sphere.cc +++ b/source/geometry/solids/CSG/src/G4Sphere.cc @@ -21,28 +21,30 @@ // ******************************************************************** // // -// $Id: G4Sphere.cc,v 1.16 2002/06/19 10:00:23 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Sphere.cc,v 1.18 2002/10/28 15:18:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4Sphere // // Implementation for G4Sphere class // // History: -// 28.3.94 P.Kent Old C++ code converted to tolerant geometry -// 17.9.96 V.Grichine Final modifications to commit -// 09.10.98 V. Grichine modifications in Distance ToOut(p,v,...) -// 12.11.98 V.Grichine bug fixed in DistanceToIn(p,v), theta intersections -// 25.11.98 V.Grichine bug fixed in DistanceToIn(p,v), phi intersections -// 18.11.99 V.Grichine, side = kNull in Distance ToOut(p,v,...) -// 06.03.00 V.Grichine, modifications in Distance ToOut(p,v,...) -// 30.01.02 V.Grichine, bug fixed in Inside(p), && -> || at l.451 -// 19.06.02 V.Grichine, bug fixed in Inside(p), && -> && fDTheta - kAngTolerance +// 28.03.94 P.Kent: old C++ code converted to tolerant geometry +// 17.09.96 V.Grichine: final modifications to commit +// 09.10.98 V.Grichine: modifications in Distance ToOut(p,v,...) +// 12.11.98 V.Grichine: bug fixed in DistanceToIn(p,v), theta intersections +// 25.11.98 V.Grichine: bug fixed in DistanceToIn(p,v), phi intersections +// 18.11.99 V.Grichine: side = kNull in Distance ToOut(p,v,...) +// 06.03.00 V.Grichine: modifications in Distance ToOut(p,v,...) +// 30.01.02 V.Grichine: bug fixed in Inside(p), && -> || at l.451 +// 19.06.02 V.Grichine: bug fixed in Inside(p), && -> && fDTheta - kAngTolerance // +// ******************************************************************** #include #include "G4Sphere.hh" + #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" @@ -69,7 +71,6 @@ enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNSTheta,kNETheta}; G4Sphere::~G4Sphere() { - ; } //////////////////////////////////////////////////////////////////////// @@ -77,70 +78,98 @@ G4Sphere::~G4Sphere() // constructor - check parameters, convert angles so 02PI then reset to 2PI -G4Sphere::G4Sphere(const G4String& pName, - G4double pRmin, G4double pRmax, - G4double pSPhi, G4double pDPhi, - G4double pSTheta, G4double pDTheta) : G4CSGSolid(pName) +G4Sphere::G4Sphere( const G4String& pName, + G4double pRmin, G4double pRmax, + G4double pSPhi, G4double pDPhi, + G4double pSTheta, G4double pDTheta ) + : G4CSGSolid(pName) { -// Check radii - if (pRmin=0) - { - fRmin=pRmin; fRmax=pRmax; - } - else - { - G4Exception("Error in G4Sphere::G4Sphere - invalid radii"); - } + // Check radii -// Check angles - if (pDPhi>=2.0*M_PI) - { - fDPhi=2*M_PI; - } - else if (pDPhi>0) - { - fDPhi=pDPhi; - } - else - { - G4Exception("Error in G4Sphere::G4Sphere - invalid DPhi"); - } -// Convert fSPhi to 0-2PI - if (pSPhi<0) - { - fSPhi=2.0*M_PI-fmod(fabs(pSPhi),2.0*M_PI); - } - else - { - fSPhi=fmod(pSPhi,2.0*M_PI); - } -// Sphere is placed such that fSPhi+fDPhi>2.0*M_PI ! fSPhi could be < 0 !!? P - if (fSPhi+fDPhi>2.0*M_PI) fSPhi-=2.0*M_PI; + if (pRmin=0) + { + fRmin=pRmin; fRmax=pRmax; + } + else + { + G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl + << " Invalid values for radii !" << G4endl + << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; + G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl + << " Invalide values for radii ! - " + << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; + G4Exception("G4Sphere::G4Sphere() - invalid radii"); + } -// Check theta angles - if (pSTheta<0 || pSTheta>M_PI) - { - G4Exception("Error in G4Sphere::G4Sphere - stheta outside 0-PI range"); - } - else - { - fSTheta=pSTheta; - } + // Check angles - if (pDTheta+pSTheta>=M_PI) - { - fDTheta=M_PI-pSTheta; - } - else if (pDTheta>0) - { - fDTheta=pDTheta; - } - else - { - G4Exception("Error in G4Sphere::G4Sphere - invalid pDTheta"); - } + if (pDPhi>=2.0*M_PI) + { + fDPhi=2*M_PI; + } + else if (pDPhi>0) + { + fDPhi=pDPhi; + } + else + { + G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl + << " Negative delta-Phi ! - " + << pDPhi << G4endl; + G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl + << " Negative Z delta-Phi ! - " + << pDPhi << G4endl; + G4Exception("G4Sphere::G4Sphere() - invalid DPhi"); + } + // Convert fSPhi to 0-2PI + + if (pSPhi<0) + { + fSPhi=2.0*M_PI-fmod(fabs(pSPhi),2.0*M_PI); + } + else + { + fSPhi=fmod(pSPhi,2.0*M_PI); + } + + // Sphere is placed such that fSPhi+fDPhi>2.0*M_PI ! + // fSPhi could be < 0 !!? + // + if (fSPhi+fDPhi>2.0*M_PI) fSPhi-=2.0*M_PI; + + // Check theta angles + + if (pSTheta<0 || pSTheta>M_PI) + { + G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl; + G4Exception("G4Sphere::G4Sphere() - stheta outside 0-PI range"); + } + else + { + fSTheta=pSTheta; + } + + if (pDTheta+pSTheta>=M_PI) + { + fDTheta=M_PI-pSTheta; + } + else if (pDTheta>0) + { + fDTheta=pDTheta; + } + else + { + G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl + << " Negative delta-Theta ! - " + << pDTheta << G4endl; + G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl + << " Negative delta-Theta ! - " + << pDTheta << G4endl; + G4Exception("G4Sphere::G4Sphere() - invalid pDTheta"); + } } ////////////////////////////////////////////////////////////////////////// @@ -148,11 +177,11 @@ G4Sphere::G4Sphere(const G4String& pName, // Dispatch to parameterisation for replication mechanism dimension // computation & modification. -void G4Sphere::ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep) +void G4Sphere::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep) { - p->ComputeDimensions(*this,n,pRep); + p->ComputeDimensions(*this,n,pRep); } //////////////////////////////////////////////////////////////////////////// @@ -160,232 +189,238 @@ void G4Sphere::ComputeDimensions(G4VPVParameterisation* p, // Calculate extent under transform and specified limit G4bool G4Sphere::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const { - if ( fDPhi==2.0*M_PI && fDTheta==M_PI) // !pTransform.IsRotated() && - { -// Special case handling for solid spheres-shells (rotation doesn't influence) -// Compute x/y/z mins and maxs for bounding box respecting limits, -// with early returns if outside limits. Then switch() on pAxis, -// and compute exact x and y limit for x/y case - - G4double xoffset,xMin,xMax; - G4double yoffset,yMin,yMax; - G4double zoffset,zMin,zMax; + if ( fDPhi==2.0*M_PI && fDTheta==M_PI) // !pTransform.IsRotated() && + { + // Special case handling for solid spheres-shells + // (rotation doesn't influence). + // Compute x/y/z mins and maxs for bounding box respecting limits, + // with early returns if outside limits. Then switch() on pAxis, + // and compute exact x and y limit for x/y case + + G4double xoffset,xMin,xMax; + G4double yoffset,yMin,yMax; + G4double zoffset,zMin,zMax; - G4double diff1,diff2,maxDiff,newMin,newMax; - G4double xoff1,xoff2,yoff1,yoff2; + G4double diff1,diff2,maxDiff,newMin,newMax; + G4double xoff1,xoff2,yoff1,yoff2; - xoffset=pTransform.NetTranslation().x(); - xMin=xoffset-fRmax; - xMax=xoffset+fRmax; - if (pVoxelLimit.IsXLimited()) - { - if (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance - ||xMaxpVoxelLimit.GetMaxXExtent()) - { - xMax=pVoxelLimit.GetMaxXExtent(); - } - } - } + xoffset=pTransform.NetTranslation().x(); + xMin=xoffset-fRmax; + xMax=xoffset+fRmax; + if (pVoxelLimit.IsXLimited()) + { + if ( (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance) + || (xMaxpVoxelLimit.GetMaxXExtent()) + { + xMax=pVoxelLimit.GetMaxXExtent(); + } + } + } - yoffset=pTransform.NetTranslation().y(); - yMin=yoffset-fRmax; - yMax=yoffset+fRmax; - if (pVoxelLimit.IsYLimited()) - { - if (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance - ||yMaxpVoxelLimit.GetMaxYExtent()) - { - yMax=pVoxelLimit.GetMaxYExtent(); - } - } - } + yoffset=pTransform.NetTranslation().y(); + yMin=yoffset-fRmax; + yMax=yoffset+fRmax; + if (pVoxelLimit.IsYLimited()) + { + if ( (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance) + || (yMaxpVoxelLimit.GetMaxYExtent()) + { + yMax=pVoxelLimit.GetMaxYExtent(); + } + } + } + zoffset=pTransform.NetTranslation().z(); + zMin=zoffset-fRmax; + zMax=zoffset+fRmax; + if (pVoxelLimit.IsZLimited()) + { + if ( (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance) + || (zMaxpVoxelLimit.GetMaxZExtent()) + { + zMax=pVoxelLimit.GetMaxZExtent(); + } + } + } - zoffset=pTransform.NetTranslation().z(); - zMin=zoffset-fRmax; - zMax=zoffset+fRmax; - if (pVoxelLimit.IsZLimited()) - { - if (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance - ||zMaxpVoxelLimit.GetMaxZExtent()) - { - zMax=pVoxelLimit.GetMaxZExtent(); - } - } - } + // Known to cut sphere -// Known to cut sphere - switch (pAxis) - { - case kXAxis: - yoff1=yoffset-yMin; - yoff2=yMax-yoffset; - if (yoff1>=0&&yoff2>=0) - { -// Y limits cross max/min x => no change - pMin=xMin; - pMax=xMax; - } - else - { -// Y limits don't cross max/min x => compute max delta x, hence new mins/maxs - diff1=sqrt(fRmax*fRmax-yoff1*yoff1); - diff2=sqrt(fRmax*fRmax-yoff2*yoff2); - maxDiff=(diff1>diff2) ? diff1:diff2; - newMin=xoffset-maxDiff; - newMax=xoffset+maxDiff; - pMin=(newMinxMax) ? xMax : newMax; - } - - break; - case kYAxis: - xoff1=xoffset-xMin; - xoff2=xMax-xoffset; - if (xoff1>=0&&xoff2>=0) - { -// X limits cross max/min y => no change - pMin=yMin; - pMax=yMax; - } - else - { -// X limits don't cross max/min y => compute max delta y, hence new mins/maxs - diff1=sqrt(fRmax*fRmax-xoff1*xoff1); - diff2=sqrt(fRmax*fRmax-xoff2*xoff2); - maxDiff=(diff1>diff2) ? diff1:diff2; - newMin=yoffset-maxDiff; - newMax=yoffset+maxDiff; - pMin=(newMinyMax) ? yMax : newMax; - } - break; - case kZAxis: - pMin=zMin; - pMax=zMax; - break; - default: - break; - } + switch (pAxis) + { + case kXAxis: + yoff1=yoffset-yMin; + yoff2=yMax-yoffset; + if (yoff1>=0&&yoff2>=0) + { + // Y limits cross max/min x => no change + // + pMin=xMin; + pMax=xMax; + } + else + { + // Y limits don't cross max/min x => compute max delta x, + // hence new mins/maxs + // + diff1=sqrt(fRmax*fRmax-yoff1*yoff1); + diff2=sqrt(fRmax*fRmax-yoff2*yoff2); + maxDiff=(diff1>diff2) ? diff1:diff2; + newMin=xoffset-maxDiff; + newMax=xoffset+maxDiff; + pMin=(newMinxMax) ? xMax : newMax; + } + break; + case kYAxis: + xoff1=xoffset-xMin; + xoff2=xMax-xoffset; + if (xoff1>=0&&xoff2>=0) + { + // X limits cross max/min y => no change + // + pMin=yMin; + pMax=yMax; + } + else + { + // X limits don't cross max/min y => compute max delta y, + // hence new mins/maxs + // + diff1=sqrt(fRmax*fRmax-xoff1*xoff1); + diff2=sqrt(fRmax*fRmax-xoff2*xoff2); + maxDiff=(diff1>diff2) ? diff1:diff2; + newMin=yoffset-maxDiff; + newMax=yoffset+maxDiff; + pMin=(newMinyMax) ? yMax : newMax; + } + break; + case kZAxis: + pMin=zMin; + pMax=zMax; + break; + default: + break; + } + pMin-=kCarTolerance; + pMax+=kCarTolerance; - pMin-=kCarTolerance; - pMax+=kCarTolerance; + return true; + } + else // Transformed cutted sphere + { + G4int i,j,noEntries,noBetweenSections; + G4bool existsAfterClip=false; - return true; - - } - else // Transformed cutted sphere - { - G4int i,j,noEntries,noBetweenSections; - G4bool existsAfterClip=false; + // Calculate rotated vertex coordinates -// Calculate rotated vertex coordinates - G4ThreeVectorList* vertices; - G4int noPolygonVertices ; - vertices=CreateRotatedVertices(pTransform,noPolygonVertices); + G4ThreeVectorList* vertices; + G4int noPolygonVertices ; + vertices=CreateRotatedVertices(pTransform,noPolygonVertices); - pMin=+kInfinity; - pMax=-kInfinity; + pMin=+kInfinity; + pMax=-kInfinity; - noEntries=vertices->size(); // noPolygonVertices*noPhiCrossSections - noBetweenSections=noEntries-noPolygonVertices; - - G4ThreeVectorList ThetaPolygon ; - for (i=0;isize(); // noPolygonVertices*noPhiCrossSections + noBetweenSections=noEntries-noPolygonVertices; - } - else - { -// 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. - G4ThreeVector clipCentre( - (pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, - (pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, - (pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre))!=kOutside) - { - existsAfterClip=true; - pMin=pVoxelLimit.GetMinExtent(pAxis); - pMax=pVoxelLimit.GetMaxExtent(pAxis); - } - } - delete vertices; - return existsAfterClip; - } + G4ThreeVectorList ThetaPolygon ; + for (i=0;i= tolRMin*tolRMin ) in = kInside ; @@ -419,80 +454,100 @@ EInside G4Sphere::Inside(const G4ThreeVector& p) const tolRMin = fRmin - kRadTolerance*0.5 ; if ( tolRMin < 0.0 ) tolRMin = 0.0 ; - + if ( rad2 <= tolRMax*tolRMax && rad2 >= tolRMin*tolRMin ) in = kSurface ; else return in = kOutside ; } -// Phi boundaries : Do not check if it has no phi boundary! -// (in != kOutside) + // Phi boundaries : Do not check if it has no phi boundary! + // (in != kOutside) - if ( ( fDPhi < 2*M_PI - kAngTolerance ) && ( (p.x() != 0.0 ) || (p.y() != 0.0) ) ) + if ( ( fDPhi < 2*M_PI - kAngTolerance ) && + ( (p.x() != 0.0 ) || (p.y() != 0.0) ) ) { pPhi = atan2(p.y(),p.x()) ; - if ( pPhi < 0.0) pPhi += 2*M_PI ; // 0<=pPhi<2pi - if ( fSPhi >= 0.0 ) { if (in == kInside) { - if ( pPhi < fSPhi + kAngTolerance*0.5 || - pPhi > fSPhi + fDPhi - kAngTolerance*0.5 ) - { - // Not `inside' tolerant bounds - - if ( pPhi >= fSPhi - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + kAngTolerance*0.5 ) in = kSurface ; - else return in = kOutside ; - } + if ( (pPhi < fSPhi + kAngTolerance*0.5) + || (pPhi > fSPhi + fDPhi - kAngTolerance*0.5) ) + { + // Not `inside' tolerant bounds + // + if ( (pPhi >= fSPhi - kAngTolerance*0.5) + && (pPhi <= fSPhi + fDPhi + kAngTolerance*0.5) ) + { + in = kSurface ; + } + else + { + return in = kOutside ; + } + } } else // in==kSurface { - if ( pPhi < fSPhi - kAngTolerance*0.5 || // && bug216 - pPhi > fSPhi + fDPhi + kAngTolerance*0.5 ) - { - return in = kOutside ; - } + if ( (pPhi < fSPhi - kAngTolerance*0.5) + || (pPhi > fSPhi + fDPhi + kAngTolerance*0.5) ) // && bug216 + { + return in = kOutside ; + } } } else { if ( pPhi < fSPhi + 2*M_PI ) pPhi += 2*M_PI ; - if ( pPhi < fSPhi + 2*M_PI + kAngTolerance*0.5 || - pPhi > fSPhi + fDPhi + 2*M_PI - kAngTolerance*0.5 ) + if ( (pPhi < fSPhi + 2*M_PI + kAngTolerance*0.5) + || (pPhi > fSPhi + fDPhi + 2*M_PI - kAngTolerance*0.5) ) { - // Not `inside' tolerant bounds - - if ( pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5 && - pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5 ) in = kSurface ; - else return in = kOutside ; + // Not `inside' tolerant bounds + // + if ( (pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5) + && (pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5) ) + { + in = kSurface ; + } + else + { + return in = kOutside ; + } } } } // Theta bondaries // (in!=kOutside) - if ( (rho2 || p.z()) && fDTheta < M_PI - kAngTolerance*0.5) + if ( (rho2 || p.z()) && fDTheta < M_PI - kAngTolerance*0.5 ) { rho = sqrt(rho2); pTheta = atan2(rho,p.z()); if ( in == kInside ) { - if ( pTheta < fSTheta + kAngTolerance*0.5 || - pTheta > fSTheta + fDTheta - kAngTolerance*0.5 ) + if ( (pTheta < fSTheta + kAngTolerance*0.5) + || (pTheta > fSTheta + fDTheta - kAngTolerance*0.5) ) { - if ( pTheta >= fSTheta - kAngTolerance*0.5 && - pTheta <= fSTheta + fDTheta + kAngTolerance*0.5 ) in = kSurface ; - else in = kOutside ; + if ( (pTheta >= fSTheta - kAngTolerance*0.5) + && (pTheta <= fSTheta + fDTheta + kAngTolerance*0.5) ) + { + in = kSurface ; + } + else + { + in = kOutside ; + } } } else { - if ( pTheta < fSTheta - kAngTolerance*0.5 || - pTheta > fSTheta + fDTheta + kAngTolerance*0.5 ) in = kOutside ; + if ( (pTheta < fSTheta - kAngTolerance*0.5) + || (pTheta > fSTheta + fDTheta + kAngTolerance*0.5) ) + { + in = kOutside ; + } } } return in; @@ -504,145 +559,145 @@ EInside G4Sphere::Inside(const G4ThreeVector& p) const // - note if point on z axis, ignore phi divided sides // - unsafe if point close to z axis a rmin=0 - no explicit checks -G4ThreeVector G4Sphere::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4Sphere::SurfaceNormal( const G4ThreeVector& p ) const { - ENorm side; - G4ThreeVector norm; - G4double rho,rho2,rad,pPhi,pTheta; - G4double distRMin,distRMax,distSPhi,distEPhi, - distSTheta,distETheta,distMin; + ENorm side; + G4ThreeVector norm; + G4double rho,rho2,rad,pPhi,pTheta; + G4double distRMin,distRMax,distSPhi,distEPhi, + distSTheta,distETheta,distMin; - rho2=p.x()*p.x()+p.y()*p.y(); - rad=sqrt(rho2+p.z()*p.z()); - rho=sqrt(rho2); + rho2=p.x()*p.x()+p.y()*p.y(); + rad=sqrt(rho2+p.z()*p.z()); + rho=sqrt(rho2); -// -// Distance to r shells -// + // + // Distance to r shells + // - distRMax=fabs(rad-fRmax); - if (fRmin) - { - distRMin=fabs(rad-fRmin); - - if (distRMin kRadTolerance*0.5) - { - tolORMin2=(fRmin-kRadTolerance*0.5)*(fRmin-kRadTolerance*0.5); - } - else - { - tolORMin2 = 0 ; - } - tolIRMin2 = (fRmin+kRadTolerance*0.5)*(fRmin+kRadTolerance*0.5) ; - tolORMax2 = (fRmax+kRadTolerance*0.5)*(fRmax+kRadTolerance*0.5) ; - tolIRMax2 = (fRmax-kRadTolerance*0.5)*(fRmax-kRadTolerance*0.5) ; + if (fRmin > kRadTolerance*0.5) + { + tolORMin2=(fRmin-kRadTolerance*0.5)*(fRmin-kRadTolerance*0.5); + } + else + { + tolORMin2 = 0 ; + } + tolIRMin2 = (fRmin+kRadTolerance*0.5)*(fRmin+kRadTolerance*0.5) ; + tolORMax2 = (fRmax+kRadTolerance*0.5)*(fRmax+kRadTolerance*0.5) ; + tolIRMax2 = (fRmax-kRadTolerance*0.5)*(fRmax-kRadTolerance*0.5) ; -// Set phi divided flag and precalcs + // Set phi divided flag and precalcs - if (fDPhi < 2.0*M_PI) - { - segPhi = true ; + if (fDPhi < 2.0*M_PI) + { + segPhi = true ; + hDPhi = 0.5*fDPhi ; // half delta phi + cPhi = fSPhi + hDPhi ; - hDPhi = 0.5*fDPhi ; // half delta phi - cPhi = fSPhi + hDPhi ; + hDPhiOT = hDPhi+0.5*kAngTolerance; // Outer Tolerant half delta phi + hDPhiIT = hDPhi-0.5*kAngTolerance; - hDPhiOT = hDPhi+0.5*kAngTolerance; // Outer Tolerant half delta phi - hDPhiIT = hDPhi-0.5*kAngTolerance; + sinCPhi = sin(cPhi) ; + cosCPhi = cos(cPhi) ; + cosHDPhiOT = cos(hDPhiOT) ; + cosHDPhiIT = cos(hDPhiIT) ; + } + else + { + segPhi = false ; + } - sinCPhi = sin(cPhi) ; - cosCPhi = cos(cPhi) ; - cosHDPhiOT = cos(hDPhiOT) ; - cosHDPhiIT = cos(hDPhiIT) ; - } - else - { - segPhi = false ; - } - -// Theta precalcs + // Theta precalcs - if (fDTheta < M_PI ) + if (fDTheta < M_PI ) + { + segTheta = true ; + tolSTheta = fSTheta - kAngTolerance*0.5 ; + tolETheta = fSTheta + fDTheta + kAngTolerance*0.5 ; + } + else + { + segTheta = false ; + } + + // Outer spherical shell intersection + // - Only if outside tolerant fRmax + // - Check for if inside and outer G4Sphere heading through solid (-> 0) + // - No intersect -> no intersection with G4Sphere + // + // Shell eqn: x^2+y^2+z^2=RSPH^2 + // + // => (px+svx)^2+(py+svy)^2+(pz+svz)^2=R^2 + // + // => (px^2+py^2+pz^2) +2s(pxvx+pyvy+pzvz)+s^2(vx^2+vy^2+vz^2)=R^2 + // => rad2 +2s(pDotV3d) +s^2 =R^2 + // + // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) + + c = rad2 - fRmax*fRmax ; + + if (c > kRadTolerance*fRmax) + { + // If outside toleranct boundary of outer G4Sphere + // [should be sqrt(rad2)-fRmax > kRadTolerance*0.5] + + d2 = pDotV3d*pDotV3d - c ; + + if ( d2 >= 0 ) { - segTheta = true ; - tolSTheta = fSTheta - kAngTolerance*0.5 ; - tolETheta = fSTheta + fDTheta + kAngTolerance*0.5 ; + s = -pDotV3d - sqrt(d2) ; + + if (s >= 0 ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + rhoi = sqrt(xi*xi + yi*yi) ; + + if (segPhi && rhoi) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/rhoi ; + + if (cosPsi >= cosHDPhiOT) + { + if (segTheta) // Check theta intersection + { + zi = p.z() + s*v.z() ; + + // rhoi & zi can never both be 0 + // (=>intersect at origin =>fRmax=0) + // + iTheta = atan2(rhoi,zi) ; + if ( (iTheta >= tolSTheta) && (iTheta <= tolETheta) ) + { + return snxt = s ; + } + } + else + { + return snxt=s; + } + } + } + else + { + if (segTheta) // Check theta intersection + { + zi = p.z() + s*v.z() ; + + // rhoi & zi can never both be 0 + // (=>intersect at origin => fRmax=0 !) + // + iTheta = atan2(rhoi,zi) ; + if ( (iTheta >= tolSTheta) && (iTheta <= tolETheta) ) + { + return snxt=s; + } + } + else + { + return snxt = s ; + } + } + } } - else + else // No intersection with G4Sphere { - segTheta = false ; + return snxt=kInfinity; } + } + else + { + // Inside outer radius + // check not inside, and heading through G4Sphere (-> 0 to in) -// Outer spherical shell intersection -// - Only if outside tolerant fRmax -// - Check for if inside and outer G4Sphere heading through solid (-> 0) -// - No intersect -> no intersection with G4Sphere -// -// Shell eqn: x^2+y^2+z^2=RSPH^2 -// -// => (px+svx)^2+(py+svy)^2+(pz+svz)^2=R^2 -// -// => (px^2+py^2+pz^2) +2s(pxvx+pyvy+pzvz)+s^2(vx^2+vy^2+vz^2)=R^2 -// => rad2 +2s(pDotV3d) +s^2 =R^2 -// -// => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) - - c = rad2 - fRmax*fRmax ; - - if (c > kRadTolerance*fRmax) + if (rad2 > tolIRMin2 && pDotV3d < 0 ) { + if (segPhi) + { + // Use inner phi tolerant boundary -> if on tolerant + // phi boundaries, phi intersect code handles leaving/entering checks -// If outside toleranct boundary of outer G4Sphere -// [should be sqrt(rad2)-fRmax > kRadTolerance*0.5] + cosPsi = (p.x()*cosCPhi + p.y()*sinCPhi)/sqrt(rho2) ; - d2 = pDotV3d*pDotV3d - c ; + if (cosPsi>=cosHDPhiIT) + { + // inside radii, delta r -ve, inside phi - if ( d2 >= 0 ) - { - s = -pDotV3d - sqrt(d2) ; - - if (s >= 0 ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - rhoi = sqrt(xi*xi + yi*yi) ; - - if (segPhi && rhoi) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/rhoi ; - - if (cosPsi >= cosHDPhiOT) - { - if (segTheta) // Check theta intersection - { - zi = p.z() + s*v.z() ; - -// rhoi & zi can never both be 0 (=>intersect at origin =>fRmax=0) - - iTheta = atan2(rhoi,zi) ; - - if (iTheta >= tolSTheta && iTheta <= tolETheta) - { - return snxt = s ; - } - } - else - { - return snxt=s; - } - } - } - else - { - if (segTheta) // Check theta intersection - { - zi = p.z() + s*v.z() ; - -// rhoi & zi can never both be 0 (=>intersect at origin => fRmax=0 !) - - iTheta = atan2(rhoi,zi) ; - - if (iTheta >= tolSTheta && iTheta <= tolETheta) - { - return snxt=s; - } - } - else - { - return snxt = s ; - } - } - } - } - else // No intersection with G4Sphere - { - return snxt=kInfinity; - } + if (segTheta) + { + if ( (pTheta >= tolSTheta + kAngTolerance) + && (pTheta <= tolETheta - kAngTolerance) ) + { + return snxt=0; + } + } + else // strictly inside Theta in both cases + { + return snxt=0; + } + } } else { - -// Inside outer radius -// check not inside, and heading through G4Sphere (-> 0 to in) - - if (rad2 > tolIRMin2 && pDotV3d < 0 ) - { - if (segPhi) - { - -// Use inner phi tolerant boundary -> if on tolerant -// phi boundaries, phi intersect code handles leaving/entering checks - - cosPsi = (p.x()*cosCPhi + p.y()*sinCPhi)/sqrt(rho2) ; - - if (cosPsi>=cosHDPhiIT) - { - -// inside radii, delta r -ve, inside phi - - if (segTheta) - { - if ( pTheta >= tolSTheta + kAngTolerance && - pTheta <= tolETheta - kAngTolerance ) - { - return snxt=0; - } - } - else // strictly inside Theta in both cases - { - return snxt=0; - } - } - } - else - { - if ( segTheta ) - { - if ( pTheta >= tolSTheta + kAngTolerance && - pTheta <= tolETheta - kAngTolerance ) - { - return snxt=0; - } - } - else // strictly inside Theta in both cases - { - return snxt=0; - } - } - } - } - -// Inner spherical shell intersection -// - Always farthest root, because would have passed through outer -// surface first. -// - Tolerant check for if travelling through solid - - if (fRmin) - { - c = rad2 - fRmin*fRmin ; - -// Within tolerance inner radius of inner G4Sphere -// Check for immediate entry/already inside and travelling outwards - - if (c >- kRadTolerance*0.5 && pDotV3d >= 0 && rad2 < tolIRMax2 ) - { - if (segPhi) - { -// Use inner phi tolerant boundary -> if on tolerant -// phi boundaries, phi intersect code handles leaving/entering checks - - cosPsi = (p.x()*cosCPhi+p.y()*sinCPhi)/sqrt(rho2) ; - - if (cosPsi >= cosHDPhiIT) - { - -// inside radii, delta r -ve, inside phi - - if (segTheta) - { - if ( pTheta >= tolSTheta + kAngTolerance && - pTheta <= tolETheta - kAngTolerance ) - { - return snxt=0; - } - } - else - { - return snxt = 0 ; - } - } - } - else - { - if (segTheta) - { - if ( pTheta >= tolSTheta + kAngTolerance && - pTheta <= tolETheta - kAngTolerance ) - { - return snxt = 0 ; - } - } - else - { - return snxt=0; - } - } - } - else // Not special tolerant case - { - d2 = pDotV3d*pDotV3d - c ; - - if (d2 >= 0) - { - s = -pDotV3d + sqrt(d2) ; - - if ( s >= kRadTolerance*0.5 ) // It was >= 0 ?? - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - rhoi = sqrt(xi*xi+yi*yi) ; - - if ( segPhi && rhoi ) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/rhoi ; - - if (cosPsi >= cosHDPhiOT) - { - if (segTheta) // Check theta intersection - { - zi = p.z() + s*v.z() ; - -// rhoi & zi can never both be 0 (=>intersect at origin =>fRmax=0) - - iTheta = atan2(rhoi,zi) ; - - if (iTheta >= tolSTheta && iTheta<=tolETheta) - { - snxt = s ; - } - } - else - { - snxt=s; - } - } - } - else - { - if (segTheta) // Check theta intersection - { - zi = p.z() + s*v.z() ; - -// rhoi & zi can never both be 0 (=>intersect at origin => fRmax=0 !) - - iTheta = atan2(rhoi,zi) ; - - if (iTheta >= tolSTheta && iTheta <= tolETheta) - { - snxt = s ; - } - } - else - { - snxt=s; - } - } - } - } - } - } - -// Phi segment intersection -// -// o Tolerant of points inside phi planes by up to kCarTolerance*0.5 -// -// o NOTE: Large duplication of code between sphi & ephi checks -// -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane -// intersection check <=0 -> >=0 -// -> Should use some form of loop Construct -// - if ( segPhi ) - { - -// First phi surface (`S'tarting phi) - - sinSPhi = sin(fSPhi) ; - cosSPhi = cos(fSPhi) ; - -// Comp = Component in outwards normal dirn - - Comp = v.x()*sinSPhi - v.y()*cosSPhi ; - - if ( Comp < 0 ) - { - Dist = p.y()*cosSPhi - p.x()*sinSPhi ; - - if (Dist < kCarTolerance*0.5) - { - s = Dist/Comp ; - - if (s < snxt) - { - if ( s > 0 ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; - } - else - { - s = 0 ; - xi = p.x() ; - yi = p.y() ; - zi = p.z() ; - rhoi2 = rho2 ; - radi2 = rad2 ; - } - if ( radi2 <= tolORMax2 && - radi2 >= tolORMin2 && - (yi*cosCPhi-xi*sinCPhi) <= 0 ) - { - -// Check theta intersection -// rhoi & zi can never both be 0 (=>intersect at origin =>fRmax=0) - - if ( segTheta ) - { - iTheta = atan2(sqrt(rhoi2),zi) ; - - if (iTheta >= tolSTheta && iTheta <= tolETheta) - { -// r and theta intersections good - check intersecting with correct half-plane - - if ((yi*cosCPhi-xi*sinCPhi) <= 0) - { - snxt = s ; - } - } - } - else - { - snxt = s ; - } - } - } - } - } - -// Second phi surface (`E'nding phi) - - ePhi = fSPhi + fDPhi ; - sinEPhi = sin(ePhi) ; - cosEPhi = cos(ePhi) ; - -// Compnent in outwards normal dirn - - Comp = -( v.x()*sinEPhi-v.y()*cosEPhi ) ; - - if (Comp < 0) - { - Dist = -(p.y()*cosEPhi-p.x()*sinEPhi) ; - - if ( Dist < kCarTolerance*0.5 ) - { - s = Dist/Comp ; - - if ( s < snxt ) - { - if (s > 0) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; - } - else - { - s = 0 ; - xi = p.x() ; - yi = p.y() ; - zi = p.z() ; - rhoi2 = rho2 ; - radi2 = rad2 ; - } - if ( radi2 <= tolORMax2 && - radi2 >= tolORMin2 && - (yi*cosCPhi-xi*sinCPhi) >= 0 ) - { - -// Check theta intersection -// rhoi & zi can never both be 0 (=>intersect at origin =>fRmax=0) - - if ( segTheta ) - { - iTheta = atan2(sqrt(rhoi2),zi) ; - - if (iTheta >= tolSTheta && iTheta <= tolETheta) - { - -// r and theta intersections good - check intersecting with correct half-plane - - if ((yi*cosCPhi-xi*sinCPhi) >= 0) - { - snxt = s ; - } - } - } - else - { - snxt = s ; - } - } - } - } - } - } - -// Theta segment intersection - - if ( segTheta ) - { - -// Intersection with theta surfaces -// Known failure cases: -// o Inside tolerance of stheta surface, skim -// ~parallel to cone and Hit & enter etheta surface [& visa versa] -// -// To solve: Check 2nd root of etheta surface in addition to stheta -// -// o start/end theta is exactly pi/2 -// Intersections with cones -// -// Cone equation: x^2+y^2=z^2tan^2(t) -// -// => (px+svx)^2+(py+svy)^2=(pz+svz)^2tan^2(t) -// -// => (px^2+py^2-pz^2tan^2(t))+2s(pxvx+pyvy-pzvztan^2(t)) -// + s^2(vx^2+vy^2-vz^2tan^2(t)) = 0 -// -// => s^2(1-vz^2(1+tan^2(t))+2s(pdotv2d-pzvztan^2(t))+(rho2-pz^2tan^2(t))=0 - - tanSTheta = tan(fSTheta) ; - tanSTheta2 = tanSTheta*tanSTheta ; - tanETheta = tan(fSTheta+fDTheta) ; - tanETheta2 = tanETheta*tanETheta ; - - if (fSTheta) - { - dist2STheta = rho2 - p.z()*p.z()*tanSTheta2 ; - } - else + if ( segTheta ) { - dist2STheta = kInfinity ; - } - if ( fSTheta + fDTheta < M_PI ) - { - dist2ETheta=rho2-p.z()*p.z()*tanETheta2; - } - else - { - dist2ETheta=kInfinity; - } - if ( pTheta < tolSTheta) // dist2STheta<-kRadTolerance*0.5 && dist2ETheta>0) - { + if ( (pTheta >= tolSTheta + kAngTolerance) + && (pTheta <= tolETheta - kAngTolerance) ) + { + return snxt=0; + } + } + else // strictly inside Theta in both cases + { + return snxt=0; + } + } + } + } -// Inside (theta= 0 ) - { - d = sqrt(d2) ; - s = -b - d ; // First root + // Within tolerance inner radius of inner G4Sphere + // Check for immediate entry/already inside and travelling outwards - if ( s < 0 ) - { - s=-b+d; // Second root - } - if (s >= 0 && s < snxt) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + if (c >- kRadTolerance*0.5 && pDotV3d >= 0 && rad2 < tolIRMax2 ) + { + if (segPhi) + { + // Use inner phi tolerant boundary -> if on tolerant + // phi boundaries, phi intersect code handles leaving/entering checks - if (radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta - 0.5*pi) <= 0 ) - { - if ( segPhi && rhoi2 ) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + cosPsi = (p.x()*cosCPhi+p.y()*sinCPhi)/sqrt(rho2) ; + if (cosPsi >= cosHDPhiIT) + { + // inside radii, delta r -ve, inside phi + // + if (segTheta) + { + if ( (pTheta >= tolSTheta + kAngTolerance) + && (pTheta <= tolETheta - kAngTolerance) ) + { + return snxt=0; + } + } + else + { + return snxt = 0 ; + } + } + } + else + { + if (segTheta) + { + if ( (pTheta >= tolSTheta + kAngTolerance) + && (pTheta <= tolETheta - kAngTolerance) ) + { + return snxt = 0 ; + } + } + else + { + return snxt=0; + } + } + } + else // Not special tolerant case + { + d2 = pDotV3d*pDotV3d - c ; + if (d2 >= 0) + { + s = -pDotV3d + sqrt(d2) ; + if ( s >= kRadTolerance*0.5 ) // It was >= 0 ?? + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + rhoi = sqrt(xi*xi+yi*yi) ; - if (cosPsi >= cosHDPhiOT) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } + if ( segPhi && rhoi ) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/rhoi ; -// Possible intersection with ETheta cone. -// Second >= 0 root should be considered - - if ( fSTheta + fDTheta < M_PI) - { - t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; - t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; - - b = t2/t1 ; - c = dist2ETheta/t1 ; - d2 = b*b - c ; + if (cosPsi >= cosHDPhiOT) + { + if (segTheta) // Check theta intersection + { + zi = p.z() + s*v.z() ; - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b + d ; // Second root + // rhoi & zi can never both be 0 + // (=>intersect at origin =>fRmax=0) + // + iTheta = atan2(rhoi,zi) ; + if ( (iTheta >= tolSTheta) && (iTheta<=tolETheta) ) + { + snxt = s ; + } + } + else + { + snxt=s; + } + } + } + else + { + if (segTheta) // Check theta intersection + { + zi = p.z() + s*v.z() ; - if (s >= 0 && s < snxt) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + // rhoi & zi can never both be 0 + // (=>intersect at origin => fRmax=0 !) + // + iTheta = atan2(rhoi,zi) ; + if ( (iTheta >= tolSTheta) && (iTheta <= tolETheta) ) + { + snxt = s ; + } + } + else + { + snxt=s; + } + } + } + } + } + } - if ( radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta + fDTheta - 0.5*pi) <= 0 ) - { - if (segPhi && rhoi2) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + // Phi segment intersection + // + // o Tolerant of points inside phi planes by up to kCarTolerance*0.5 + // + // o NOTE: Large duplication of code between sphi & ephi checks + // -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane + // intersection check <=0 -> >=0 + // -> Should use some form of loop Construct + // + if ( segPhi ) + { + // First phi surface (`S'tarting phi) - if (cosPsi >= cosHDPhiOT) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } - } - } - else if (pTheta > tolETheta) + sinSPhi = sin(fSPhi) ; + cosSPhi = cos(fSPhi) ; -// dist2ETheta<-kRadTolerance*0.5 && dist2STheta>0) + // Comp = Component in outwards normal dirn + // + Comp = v.x()*sinSPhi - v.y()*cosSPhi ; + + if ( Comp < 0 ) + { + Dist = p.y()*cosSPhi - p.x()*sinSPhi ; - { -// Inside (theta>etheta+tol) e theta cone -// First root of etheta cone, second if first root `imaginary' + if (Dist < kCarTolerance*0.5) + { + s = Dist/Comp ; - t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; - t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; - - b = t2/t1 ; - c = dist2ETheta/t1 ; - d2 = b*b - c ; + if (s < snxt) + { + if ( s > 0 ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; + } + else + { + s = 0 ; + xi = p.x() ; + yi = p.y() ; + zi = p.z() ; + rhoi2 = rho2 ; + radi2 = rad2 ; + } + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && ((yi*cosCPhi-xi*sinCPhi) <= 0) ) + { + // Check theta intersection + // rhoi & zi can never both be 0 + // (=>intersect at origin =>fRmax=0) + // + if ( segTheta ) + { + iTheta = atan2(sqrt(rhoi2),zi) ; + if ( (iTheta >= tolSTheta) && (iTheta <= tolETheta) ) + { + // r and theta intersections good + // - check intersecting with correct half-plane - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b - d ; // First root + if ((yi*cosCPhi-xi*sinCPhi) <= 0) + { + snxt = s ; + } + } + } + else + { + snxt = s ; + } + } + } + } + } - if (s < 0) - { - s = -b + d ; // second root - } - if (s >= 0 && s < snxt) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + // Second phi surface (`E'nding phi) - if (radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta + fDTheta - 0.5*pi) <= 0 ) - { - if (segPhi && rhoi2) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + ePhi = fSPhi + fDPhi ; + sinEPhi = sin(ePhi) ; + cosEPhi = cos(ePhi) ; - if (cosPsi >= cosHDPhiOT) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } + // Compnent in outwards normal dirn -// Possible intersection with STheta cone. -// Second >= 0 root should be considered - - if ( fSTheta ) - { - t1 = 1 - v.z()*v.z()*(1 + tanSTheta2) ; - t2 = pDotV2d - p.z()*v.z()*tanSTheta2 ; - - b = t2/t1 ; - c = dist2STheta/t1 ; - d2 = b*b - c ; + Comp = -( v.x()*sinEPhi-v.y()*cosEPhi ) ; + + if (Comp < 0) + { + Dist = -(p.y()*cosEPhi-p.x()*sinEPhi) ; + if ( Dist < kCarTolerance*0.5 ) + { + s = Dist/Comp ; - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b + d ; // Second root + if ( s < snxt ) + { + if (s > 0) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; + } + else + { + s = 0 ; + xi = p.x() ; + yi = p.y() ; + zi = p.z() ; + rhoi2 = rho2 ; + radi2 = rad2 ; + } + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && ((yi*cosCPhi-xi*sinCPhi) >= 0) ) + { + // Check theta intersection + // rhoi & zi can never both be 0 + // (=>intersect at origin =>fRmax=0) + // + if ( segTheta ) + { + iTheta = atan2(sqrt(rhoi2),zi) ; + if ( (iTheta >= tolSTheta) && (iTheta <= tolETheta) ) + { + // r and theta intersections good + // - check intersecting with correct half-plane - if (s >= 0 && s < snxt) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + if ((yi*cosCPhi-xi*sinCPhi) >= 0) + { + snxt = s ; + } + } + } + else + { + snxt = s ; + } + } + } + } + } + } - if ( radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta - 0.5*pi) <= 0 ) - { - if (segPhi && rhoi2) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + // Theta segment intersection - if (cosPsi >= cosHDPhiOT) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } - } - } - else if ( pTheta kAngTolerance ) - { + if ( segTheta ) + { -// In tolerance of stheta -// If entering through solid [r,phi] => 0 to in -// else try 2nd root + // Intersection with theta surfaces + // Known failure cases: + // o Inside tolerance of stheta surface, skim + // ~parallel to cone and Hit & enter etheta surface [& visa versa] + // + // To solve: Check 2nd root of etheta surface in addition to stheta + // + // o start/end theta is exactly pi/2 + // Intersections with cones + // + // Cone equation: x^2+y^2=z^2tan^2(t) + // + // => (px+svx)^2+(py+svy)^2=(pz+svz)^2tan^2(t) + // + // => (px^2+py^2-pz^2tan^2(t))+2s(pxvx+pyvy-pzvztan^2(t)) + // + s^2(vx^2+vy^2-vz^2tan^2(t)) = 0 + // + // => s^2(1-vz^2(1+tan^2(t))+2s(pdotv2d-pzvztan^2(t))+(rho2-pz^2tan^2(t))=0 - t2 = pDotV2d - p.z()*v.z()*tanSTheta2 ; + tanSTheta = tan(fSTheta) ; + tanSTheta2 = tanSTheta*tanSTheta ; + tanETheta = tan(fSTheta+fDTheta) ; + tanETheta2 = tanETheta*tanETheta ; + + if (fSTheta) + { + dist2STheta = rho2 - p.z()*p.z()*tanSTheta2 ; + } + else + { + dist2STheta = kInfinity ; + } + if ( fSTheta + fDTheta < M_PI ) + { + dist2ETheta=rho2-p.z()*p.z()*tanETheta2; + } + else + { + dist2ETheta=kInfinity; + } + if ( pTheta < tolSTheta) // dist2STheta<-kRadTolerance*0.5 && dist2ETheta>0) + { + // Inside (theta=0 && tolIRMin2M_PI*0.5) || - (v.z()<0 && tolIRMin2= cosHDPhiIT) - { - return 0 ; - } - } - else - { - return 0 ; - } - } + if ( d2 >= 0 ) + { + d = sqrt(d2) ; + s = -b - d ; // First root -// Not entering immediately/travelling through + if ( s < 0 ) + { + s=-b+d; // Second root + } + if (s >= 0 && s < snxt) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta - 0.5*pi) <= 0) ) + { + if ( segPhi && rhoi2 ) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (cosPsi >= cosHDPhiOT) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } - t1 = 1 - v.z()*v.z()*(1 + tanSTheta2) ; - b = t2/t1 ; - c = dist2STheta/t1 ; - d2 = b*b - c ; + // Possible intersection with ETheta cone. + // Second >= 0 root should be considered + + if ( fSTheta + fDTheta < M_PI ) + { + t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; + t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; + + b = t2/t1 ; + c = dist2ETheta/t1 ; + d2 = b*b - c ; - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b + d ; - - if ( s >= kCarTolerance*0.5 && s < snxt && fSTheta < M_PI*0.5 ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + if (d2 >= 0) + { + d = sqrt(d2) ; + s = -b + d ; // Second root - if ( radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta - 0.5*pi) <= 0 ) - { - if ( segPhi && rhoi2 ) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (s >= 0 && s < snxt) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; - if ( cosPsi >= cosHDPhiOT ) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } - } - else if ( pTheta > tolETheta - kAngTolerance && - (fSTheta + fDTheta) < M_PI-kAngTolerance ) - { + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta + fDTheta - 0.5*pi) <= 0) ) + { + if (segPhi && rhoi2) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (cosPsi >= cosHDPhiOT) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } + } + } + else if (pTheta > tolETheta) + { // dist2ETheta<-kRadTolerance*0.5 && dist2STheta>0) + // Inside (theta>etheta+tol) e theta cone + // First root of etheta cone, second if first root `imaginary' -// In tolerance of etheta -// If entering through solid [r,phi] => 0 to in -// else try 2nd root + t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; + t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; + + b = t2/t1 ; + c = dist2ETheta/t1 ; + d2 = b*b - c ; - t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; + if (d2 >= 0) + { + d = sqrt(d2) ; + s = -b - d ; // First root + if (s < 0) + { + s = -b + d ; // second root + } + if (s >= 0 && s < snxt) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; - if ( + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta + fDTheta - 0.5*pi) <= 0) ) + { + if (segPhi && rhoi2) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (cosPsi >= cosHDPhiOT) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } + + // Possible intersection with STheta cone. + // Second >= 0 root should be considered + + if ( fSTheta ) + { + t1 = 1 - v.z()*v.z()*(1 + tanSTheta2) ; + t2 = pDotV2d - p.z()*v.z()*tanSTheta2 ; + + b = t2/t1 ; + c = dist2STheta/t1 ; + d2 = b*b - c ; + + if (d2 >= 0) + { + d = sqrt(d2) ; + s = -b + d ; // Second root + + if ( (s >= 0) && (s < snxt) ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; + + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta - 0.5*pi) <= 0) ) + { + if (segPhi && rhoi2) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (cosPsi >= cosHDPhiOT) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } + } + } + else if ( (pTheta kAngTolerance) ) + { + // In tolerance of stheta + // If entering through solid [r,phi] => 0 to in + // else try 2nd root + + t2 = pDotV2d - p.z()*v.z()*tanSTheta2 ; + if ( (t2>=0 && tolIRMin2M_PI*.5) + || (v.z()<0 && tolIRMin2= cosHDPhiIT) + { + return 0 ; + } + } + else + { + return 0 ; + } + } + + // Not entering immediately/travelling through + + t1 = 1 - v.z()*v.z()*(1 + tanSTheta2) ; + b = t2/t1 ; + c = dist2STheta/t1 ; + d2 = b*b - c ; + + if (d2 >= 0) + { + d = sqrt(d2) ; + s = -b + d ; + if ( (s >= kCarTolerance*0.5) && (s < snxt) && (fSTheta < M_PI*0.5) ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; + + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta - 0.5*pi) <= 0) ) + { + if ( segPhi && rhoi2 ) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if ( cosPsi >= cosHDPhiOT ) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } + } + else if ( (pTheta > tolETheta - kAngTolerance) + && ((fSTheta + fDTheta) < M_PI-kAngTolerance) ) + { + + // In tolerance of etheta + // If entering through solid [r,phi] => 0 to in + // else try 2nd root + + t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; + + if ( (t2<0 && (fSTheta+fDTheta) =0 && (fSTheta+fDTheta) >M_PI*0.5 && tolIRMin20 && (fSTheta+fDTheta)==M_PI*0.5 && tolIRMin2= cosHDPhiIT) + { + return 0 ; + } + } + else + { + return 0 ; + } + } - if (cosPsi >= cosHDPhiIT) - { - return 0 ; - } - } - else - { - return 0 ; - } - } + // Not entering immediately/travelling through -// Not entering immediately/travelling through + t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; + b = t2/t1 ; + c = dist2ETheta/t1 ; + d2 = b*b - c ; - t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; - b = t2/t1 ; - c = dist2ETheta/t1 ; - d2 = b*b - c ; + if (d2 >= 0) + { + d = sqrt(d2) ; + s = -b + d ; + + if ( (s >= kCarTolerance*0.5) + && (s < snxt) && ((fSTheta + fDTheta) > M_PI*0.5) ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b + d ; - - if ( s >= kCarTolerance*0.5 && - s < snxt && - (fSTheta + fDTheta) > M_PI*0.5 ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta + fDTheta - 0.5*pi) <= 0) ) + { + if (segPhi && rhoi2) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (cosPsi>=cosHDPhiOT) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } + } + else + { + // stheta+tol= tolORMin2 && - zi*(fSTheta + fDTheta - 0.5*pi) <= 0 ) - { - if (segPhi && rhoi2) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + t1 = 1 - v.z()*v.z()*(1 + tanSTheta2) ; + t2 = pDotV2d - p.z()*v.z()*tanSTheta2 ; - if (cosPsi>=cosHDPhiOT) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } - } - else - { + b = t2/t1; + c = dist2STheta/t1 ; + d2 = b*b - c ; -// stheta+tol= 0) + { + d = sqrt(d2) ; + s = -b + d ; // second root - t1 = 1 - v.z()*v.z()*(1 + tanSTheta2) ; - t2 = pDotV2d - p.z()*v.z()*tanSTheta2 ; + if (s >= 0 && s < snxt) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; - b = t2/t1; - c = dist2STheta/t1 ; - d2 = b*b - c ; + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta - 0.5*pi) <= 0) ) + { + if (segPhi && rhoi2) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if (cosPsi >= cosHDPhiOT) + { + snxt = s ; + } + } + else + { + snxt = s ; + } + } + } + } + t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; + t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; + + b = t2/t1 ; + c = dist2ETheta/t1 ; + d2 = b*b - c ; - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b + d ; // second root + if (d2 >= 0) + { + d = sqrt(d2) ; + s = -b + d; // second root - if (s >= 0 && s < snxt) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; + if (s >= 0 && s < snxt) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + zi = p.z() + s*v.z() ; + rhoi2 = xi*xi + yi*yi ; + radi2 = rhoi2 + zi*zi ; - if (radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta - 0.5*pi) <= 0 ) - { - if (segPhi && rhoi2) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; - - if (cosPsi >= cosHDPhiOT) - { - snxt = s ; - } - } - else - { - snxt = s ; - } - } - } - } - t1 = 1 - v.z()*v.z()*(1 + tanETheta2) ; - t2 = pDotV2d - p.z()*v.z()*tanETheta2 ; - - b = t2/t1 ; - c = dist2ETheta/t1 ; - d2 = b*b - c ; - - if (d2 >= 0) - { - d = sqrt(d2) ; - s = -b + d; // second root - - if (s >= 0 && s < snxt) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - zi = p.z() + s*v.z() ; - rhoi2 = xi*xi + yi*yi ; - radi2 = rhoi2 + zi*zi ; - - if (radi2 <= tolORMax2 && radi2 >= tolORMin2 && - zi*(fSTheta + fDTheta - 0.5*pi) <= 0 ) - { - if (segPhi && rhoi2) // Check phi intersection - { - cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; - - if ( cosPsi >= cosHDPhiOT ) - { - snxt=s; - } - } - else - { - snxt = s ; - } - } - } - } - } - } - - return snxt; + if ( (radi2 <= tolORMax2) + && (radi2 >= tolORMin2) + && (zi*(fSTheta + fDTheta - 0.5*pi) <= 0) ) + { + if (segPhi && rhoi2) // Check phi intersection + { + cosPsi = (xi*cosCPhi + yi*sinCPhi)/sqrt(rhoi2) ; + if ( cosPsi >= cosHDPhiOT ) + { + snxt=s; + } + } + else + { + snxt = s ; + } + } + } + } + } + } + return snxt; } ////////////////////////////////////////////////////////////////////// @@ -1651,98 +1679,100 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, // - Only to theta planes if outside theta extent // - Return 0 if point inside -G4double G4Sphere::DistanceToIn(const G4ThreeVector& p) const +G4double G4Sphere::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe,safeRMin,safeRMax,safePhi,safeTheta; - G4double rho2,rad,rho; - G4double phiC,cosPhiC,sinPhiC,cosPsi,ePhi; - G4double pTheta,dTheta1,dTheta2; - rho2=p.x()*p.x()+p.y()*p.y(); - rad=sqrt(rho2+p.z()*p.z()); - rho=sqrt(rho2); + G4double safe,safeRMin,safeRMax,safePhi,safeTheta; + G4double rho2,rad,rho; + G4double phiC,cosPhiC,sinPhiC,cosPsi,ePhi; + G4double pTheta,dTheta1,dTheta2; + rho2=p.x()*p.x()+p.y()*p.y(); + rad=sqrt(rho2+p.z()*p.z()); + rho=sqrt(rho2); -// -// Distance to r shells -// - if (fRmin) - { - safeRMin=fRmin-rad; - safeRMax=rad-fRmax; - if (safeRMin>safeRMax) - { - safe=safeRMin; - } - else - { - safe=safeRMax; - } - } + // + // Distance to r shells + // + if (fRmin) + { + safeRMin=fRmin-rad; + safeRMax=rad-fRmax; + if (safeRMin>safeRMax) + { + safe=safeRMin; + } else - { - safe=rad-fRmax; - } + { + safe=safeRMax; + } + } + else + { + safe=rad-fRmax; + } -// -// Distance to phi extent -// - if (fDPhi<2.0*M_PI&&rho) - { - phiC=fSPhi+fDPhi*0.5; - cosPhiC=cos(phiC); - sinPhiC=sin(phiC); -// Psi=angle from central phi to point - cosPsi=(p.x()*cosPhiC+p.y()*sinPhiC)/rho; - if (cosPsisafe) safe=safePhi; - } - } -// -// Distance to Theta extent -// - if ((rad!=0.0) && (fDThetadTheta2) - { - if (dTheta1>=0) // WHY ??????????? - { - safeTheta=rad*sin(dTheta1); - if (safe<=safeTheta) - { - safe=safeTheta; - } - } - } - else - { - if (dTheta2>=0) - { - safeTheta=rad*sin(dTheta2); - if (safe<=safeTheta) - { - safe=safeTheta; - } - } - - } - } + // + // Distance to phi extent + // + if (fDPhi<2.0*M_PI&&rho) + { + phiC=fSPhi+fDPhi*0.5; + cosPhiC=cos(phiC); + sinPhiC=sin(phiC); - if (safe<0) safe=0; - return safe; + // Psi=angle from central phi to point + // + cosPsi=(p.x()*cosPhiC+p.y()*sinPhiC)/rho; + if (cosPsisafe) safe=safePhi; + } + } + // + // Distance to Theta extent + // + if ((rad!=0.0) && (fDThetadTheta2) + { + if (dTheta1>=0) // WHY ??????????? + { + safeTheta=rad*sin(dTheta1); + if (safe<=safeTheta) + { + safe=safeTheta; + } + } + } + else + { + if (dTheta2>=0) + { + safeTheta=rad*sin(dTheta2); + if (safe<=safeTheta) + { + safe=safeTheta; + } + } + } + } + + if (safe<0) safe=0; + return safe; } ///////////////////////////////////////////////////////////////////// @@ -1750,11 +1780,11 @@ G4double G4Sphere::DistanceToIn(const G4ThreeVector& p) const // Calculate distance to surface of shape from `inside', allowing for tolerance // - Only Calc rmax intersection if no valid rmin intersection -G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const +G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { G4double snxt = kInfinity; // snxt is default return value G4double sphi= kInfinity,stheta= kInfinity; @@ -1772,11 +1802,11 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, G4double rho2,rad2,pDotV2d,pDotV3d,pTheta; G4double tolSTheta=0.,tolETheta=0.; - G4double xi,yi,zi; // Intersection point + G4double xi,yi,zi; // Intersection point // G4double Comp; // Phi intersection - G4bool segPhi; // Phi flag and precalcs + G4bool segPhi; // Phi flag and precalcs G4double hDPhi,hDPhiOT,hDPhiIT; G4double cosHDPhiOT,cosHDPhiIT; @@ -1795,12 +1825,12 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, pDotV2d=p.x()*v.x()+p.y()*v.y(); pDotV3d=pDotV2d+p.z()*v.z(); -// Set phi divided flag and precalcs + // Set phi divided flag and precalcs if(fDPhi<2.0*M_PI) { segPhi=true; - hDPhi=0.5*fDPhi; // half delta phi + hDPhi=0.5*fDPhi; // half delta phi cPhi=fSPhi+hDPhi;; hDPhiOT=hDPhi+0.5*kAngTolerance; // Outer Tolerant half delta phi hDPhiIT=hDPhi-0.5*kAngTolerance; @@ -1814,7 +1844,7 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, segPhi=false; } -// Theta precalcs + // Theta precalcs if (fDTheta < M_PI) { @@ -1827,29 +1857,28 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, segTheta=false; } -// Radial Intersections from G4Sphere::DistanceToIn -// -// Outer spherical shell intersection -// - Only if outside tolerant fRmax -// - Check for if inside and outer G4Sphere heading through solid (-> 0) -// - No intersect -> no intersection with G4Sphere -// -// Shell eqn: x^2+y^2+z^2=RSPH^2 -// -// => (px+svx)^2+(py+svy)^2+(pz+svz)^2=R^2 -// -// => (px^2+py^2+pz^2) +2s(pxvx+pyvy+pzvz)+s^2(vx^2+vy^2+vz^2)=R^2 -// => rad2 +2s(pDotV3d) +s^2 =R^2 -// -// => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) -// + // Radial Intersections from G4Sphere::DistanceToIn + // + // Outer spherical shell intersection + // - Only if outside tolerant fRmax + // - Check for if inside and outer G4Sphere heading through solid (-> 0) + // - No intersect -> no intersection with G4Sphere + // + // Shell eqn: x^2+y^2+z^2=RSPH^2 + // + // => (px+svx)^2+(py+svy)^2+(pz+svz)^2=R^2 + // + // => (px^2+py^2+pz^2) +2s(pxvx+pyvy+pzvz)+s^2(vx^2+vy^2+vz^2)=R^2 + // => rad2 +2s(pDotV3d) +s^2 =R^2 + // + // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) + // const G4double fractionTolerance = 1.0e-14; const G4double flexRadMaxTolerance = G4std::max(kRadTolerance, - fractionTolerance * fRmax); + fractionTolerance * fRmax); const G4double Rmax_plus = fRmax + flexRadMaxTolerance*0.5; - const G4double flexRadMinTolerance = G4std::max(kRadTolerance, - fractionTolerance * fRmin); + fractionTolerance * fRmin); const G4double Rmin_minus= (fRmin>0) ? fRmin-flexRadMinTolerance*0.5 : 0 ; if(rad2 <= Rmax_plus*Rmax_plus && rad2 >= Rmin_minus*Rmin_minus) @@ -1858,37 +1887,38 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, if (c < flexRadMaxTolerance*fRmax) { - // Within tolerant Outer radius - // - // The test is - // rad - fRmax < 0.5*kRadTolerance - // => rad < fRmax + 0.5*kRadTol - // => rad2 < (fRmax + 0.5*kRadTol)^2 - // => rad2 < fRmax^2 + 2.*0.5*fRmax*kRadTol + 0.25*kRadTol*kRadTol - // => rad2 - fRmax^2 <~ fRmax*kRadTol + // Within tolerant Outer radius + // + // The test is + // rad - fRmax < 0.5*kRadTolerance + // => rad < fRmax + 0.5*kRadTol + // => rad2 < (fRmax + 0.5*kRadTol)^2 + // => rad2 < fRmax^2 + 2.*0.5*fRmax*kRadTol + 0.25*kRadTol*kRadTol + // => rad2 - fRmax^2 <~ fRmax*kRadTol d2=pDotV3d*pDotV3d-c ; - if( (c >- flexRadMaxTolerance*fRmax) && // on tolerant surface - ( ( pDotV3d >=0 ) || (d2 < 0)) ) // leaving outside from Rmax - // not re-entering + if( (c >- flexRadMaxTolerance*fRmax) // on tolerant surface + && ((pDotV3d >=0) || (d2 < 0)) ) // leaving outside from Rmax + // not re-entering { - if(calcNorm) - { - *validNorm = true ; - *n = G4ThreeVector(p.x()/fRmax,p.y()/fRmax,p.z()/fRmax) ; - } - return snxt = 0; + if(calcNorm) + { + *validNorm = true ; + *n = G4ThreeVector(p.x()/fRmax,p.y()/fRmax,p.z()/fRmax) ; + } + return snxt = 0; } else { - snxt=-pDotV3d+sqrt(d2); // second root since inside Rmax - side = kRMax ; + snxt=-pDotV3d+sqrt(d2); // second root since inside Rmax + side = kRMax ; } } -// Inner spherical shell intersection: -// Always first >=0 root, because would have passed from outside of Rmin surface . + // Inner spherical shell intersection: + // Always first >=0 root, because would have passed + // from outside of Rmin surface . if (fRmin) { @@ -1896,66 +1926,61 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, if (c >- flexRadMinTolerance*fRmin) // 2.0 * (0.5*kRadTolerance) * fRmin { - if( c < flexRadMinTolerance*fRmin && pDotV3d < 0 ) // leaving from Rmin - { - if(calcNorm) - { - *validNorm = false ; // Rmin surface is concave - } - return snxt = 0 ; + if( c < flexRadMinTolerance*fRmin && pDotV3d < 0 ) // leaving from Rmin + { + if(calcNorm) + { + *validNorm = false ; // Rmin surface is concave + } + return snxt = 0 ; + } + else + { + d2=pDotV3d*pDotV3d-c ; + if (d2 >= 0) + { + s = -pDotV3d-sqrt(d2) ; + if (s>=0) // Always intersect Rmin first + { + snxt = s ; + side = kRMin ; + } + } } - else - { - d2=pDotV3d*pDotV3d-c ; - - if (d2 >= 0) - { - s = -pDotV3d-sqrt(d2) ; - - if (s>=0) // Always intersect Rmin first - { - snxt = s ; - side = kRMin ; - } - } - } } } } -// Theta segment intersection + // Theta segment intersection if (segTheta) { - -// Intersection with theta surfaces -// -// Known failure cases: -// o Inside tolerance of stheta surface, skim -// ~parallel to cone and Hit & enter etheta surface [& visa versa] -// -// To solve: Check 2nd root of etheta surface in addition to stheta -// -// o start/end theta is exactly pi/2 - -// -// Intersections with cones -// -// Cone equation: x^2+y^2=z^2tan^2(t) -// -// => (px+svx)^2+(py+svy)^2=(pz+svz)^2tan^2(t) -// -// => (px^2+py^2-pz^2tan^2(t))+2s(pxvx+pyvy-pzvztan^2(t)) -// + s^2(vx^2+vy^2-vz^2tan^2(t)) = 0 -// -// => s^2(1-vz^2(1+tan^2(t))+2s(pdotv2d-pzvztan^2(t))+(rho2-pz^2tan^2(t))=0 -// - + // Intersection with theta surfaces + // + // Known failure cases: + // o Inside tolerance of stheta surface, skim + // ~parallel to cone and Hit & enter etheta surface [& visa versa] + // + // To solve: Check 2nd root of etheta surface in addition to stheta + // + // o start/end theta is exactly pi/2 + // + // Intersections with cones + // + // Cone equation: x^2+y^2=z^2tan^2(t) + // + // => (px+svx)^2+(py+svy)^2=(pz+svz)^2tan^2(t) + // + // => (px^2+py^2-pz^2tan^2(t))+2s(pxvx+pyvy-pzvztan^2(t)) + // + s^2(vx^2+vy^2-vz^2tan^2(t)) = 0 + // + // => s^2(1-vz^2(1+tan^2(t))+2s(pdotv2d-pzvztan^2(t))+(rho2-pz^2tan^2(t))=0 + // tanSTheta=tan(fSTheta); tanSTheta2=tanSTheta*tanSTheta; tanETheta=tan(fSTheta+fDTheta); tanETheta2=tanETheta*tanETheta; - + if (fSTheta) { dist2STheta=rho2-p.z()*p.z()*tanSTheta2; @@ -1974,125 +1999,126 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, } if (pTheta > tolSTheta && pTheta < tolETheta) // Inside theta { -// In tolerance of STheta and possible leaving out to small thetas N- + // In tolerance of STheta and possible leaving out to small thetas N- if(pTheta < tolSTheta + kAngTolerance && fSTheta > kAngTolerance) { - t2=pDotV2d-p.z()*v.z()*tanSTheta2 ; // =(VdotN+)*rhoSecSTheta + t2=pDotV2d-p.z()*v.z()*tanSTheta2 ; // =(VdotN+)*rhoSecSTheta - if( fSTheta < M_PI*0.5 && t2 < 0) - { - if(calcNorm) *validNorm = false ; - return snxt = 0 ; - } - else if(fSTheta > M_PI*0.5 && t2 >= 0) - { - if(calcNorm) - { - rhoSecTheta = sqrt(rho2*(1+tanSTheta2)) ; + if( fSTheta < M_PI*0.5 && t2 < 0) + { + if(calcNorm) *validNorm = false ; + return snxt = 0 ; + } + else if(fSTheta > M_PI*0.5 && t2 >= 0) + { + if(calcNorm) + { + rhoSecTheta = sqrt(rho2*(1+tanSTheta2)) ; *validNorm = true ; - *n = G4ThreeVector(-p.x()/rhoSecTheta, // N- - -p.y()/rhoSecTheta, - tanSTheta/sqrt(1+tanSTheta2) ) ; - } - return snxt = 0 ; - } - else if( fSTheta == M_PI*0.5 && v.z() > 0) - { - if(calcNorm) - { - *validNorm = true ; - *n = G4ThreeVector(0,0,1) ; - } - return snxt = 0 ; - } + *n = G4ThreeVector(-p.x()/rhoSecTheta, // N- + -p.y()/rhoSecTheta, + tanSTheta/sqrt(1+tanSTheta2) ) ; + } + return snxt = 0 ; + } + else if( fSTheta == M_PI*0.5 && v.z() > 0) + { + if(calcNorm) + { + *validNorm = true ; + *n = G4ThreeVector(0,0,1) ; + } + return snxt = 0 ; + } } -// In tolerance of ETheta and possible leaving out to larger thetas N+ - if( pTheta > tolETheta - kAngTolerance && - ( fSTheta + fDTheta) < M_PI - kAngTolerance ) + // In tolerance of ETheta and possible leaving out to larger thetas N+ + + if ( (pTheta > tolETheta - kAngTolerance) + && (( fSTheta + fDTheta) < M_PI - kAngTolerance) ) { - t2=pDotV2d-p.z()*v.z()*tanETheta2 ; - - if((fSTheta+fDTheta)>M_PI*0.5 && t2<0) - { - if(calcNorm) *validNorm = false ; - return snxt = 0 ; - } - else if( (fSTheta+fDTheta) < M_PI*0.5 && t2 >= 0 ) - { - if(calcNorm) - { - rhoSecTheta = sqrt(rho2*(1+tanETheta2)) ; + t2=pDotV2d-p.z()*v.z()*tanETheta2 ; + if((fSTheta+fDTheta)>M_PI*0.5 && t2<0) + { + if(calcNorm) *validNorm = false ; + return snxt = 0 ; + } + else if( (fSTheta+fDTheta) < M_PI*0.5 && t2 >= 0 ) + { + if(calcNorm) + { + rhoSecTheta = sqrt(rho2*(1+tanETheta2)) ; *validNorm = true ; - *n = G4ThreeVector( p.x()/rhoSecTheta, // N+ - p.y()/rhoSecTheta, - -tanETheta/sqrt(1+tanETheta2) ) ; - } - return snxt = 0 ; - } + *n = G4ThreeVector( p.x()/rhoSecTheta, // N+ + p.y()/rhoSecTheta, + -tanETheta/sqrt(1+tanETheta2) ) ; + } + return snxt = 0 ; + } else if( ( fSTheta+fDTheta) == M_PI*0.5 && v.z() < 0 ) - { - if(calcNorm) - { + { + if(calcNorm) + { *validNorm = true ; - *n = G4ThreeVector(0,0,-1) ; - } - return snxt = 0 ; - } + *n = G4ThreeVector(0,0,-1) ; + } + return snxt = 0 ; + } } if( fSTheta > 0 ) - { -// First root of fSTheta cone, second if first root -ve + { + // First root of fSTheta cone, second if first root -ve - t1 = 1-v.z()*v.z()*(1+tanSTheta2); + t1 = 1-v.z()*v.z()*(1+tanSTheta2); t2 = pDotV2d-p.z()*v.z()*tanSTheta2; - - b = t2/t1; - c = dist2STheta/t1; - d2 = b*b - c ; + + b = t2/t1; + c = dist2STheta/t1; + d2 = b*b - c ; - if ( d2 >= 0 ) - { - d = sqrt(d2) ; - s = -b - d ; // First root + if ( d2 >= 0 ) + { + d = sqrt(d2) ; + s = -b - d ; // First root - if ( s < 0 ) - { - s = -b + d ; // Second root - } - if (s > flexRadMaxTolerance*0.5 ) // && s flexRadMaxTolerance*0.5 ) // && s= 0 ) - { - d = sqrt(d2); - s = -b - d ; // First root + if ( d2 >= 0 ) + { + d = sqrt(d2); + s = -b - d ; // First root - if ( s < 0 ) - { - s=-b+d; // Second root - } - if (s > flexRadMaxTolerance*0.5 && s < stheta ) - { - stheta = s ; - sidetheta = kETheta ; - } - } + if ( s < 0 ) + { + s=-b+d; // Second root + } + if (s > flexRadMaxTolerance*0.5 && s < stheta ) + { + stheta = s ; + sidetheta = kETheta ; + } + } } } } @@ -2110,14 +2136,14 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, sinCPhi=sin(cPhi); cosCPhi=cos(cPhi); - if (p.x()||p.y()) // Check if on z axis (rho not needed later) + if ( p.x()||p.y() ) // Check if on z axis (rho not needed later) { -// pDist -ve when inside + // pDist -ve when inside pDistS=p.x()*sinSPhi-p.y()*cosSPhi; pDistE=-p.x()*sinEPhi+p.y()*cosEPhi; -// Comp -ve when in direction of outwards normal + // Comp -ve when in direction of outwards normal compS = -sinSPhi*v.x()+cosSPhi*v.y() ; compE = sinEPhi*v.x()-cosEPhi*v.y() ; @@ -2125,229 +2151,228 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, if ( pDistS <= 0 && pDistE <= 0 ) { -// Inside both phi *full* planes + // Inside both phi *full* planes - if ( compS < 0 ) - { - sphi = pDistS/compS ; - xi = p.x()+sphi*v.x() ; - yi = p.y()+sphi*v.y() ; + if ( compS < 0 ) + { + sphi = pDistS/compS ; + xi = p.x()+sphi*v.x() ; + yi = p.y()+sphi*v.y() ; -// Check intersecting with correct half-plane (if not -> no intersect) + // Check intersecting with correct half-plane + // (if not -> no intersect) - if ( ( yi*cosCPhi - xi*sinCPhi ) >= 0 ) - { - sphi=kInfinity; - } - else - { - sidephi = kSPhi ; + if ( ( yi*cosCPhi - xi*sinCPhi ) >= 0 ) + { + sphi=kInfinity; + } + else + { + sidephi = kSPhi ; + if ( pDistS > -0.5*kCarTolerance) sphi =0 ; // Leave by sphi + } + } + else sphi = kInfinity ; - if ( pDistS > -0.5*kCarTolerance) sphi =0 ; // Leave by sphi - } - } - else sphi = kInfinity ; - if ( compE < 0 ) - { - sphi2=pDistE/compE ; + { + sphi2=pDistE/compE ; + if (sphi2 < sphi) // Only check further if < starting phi intersection + { + xi = p.x()+sphi2*v.x() ; + yi = p.y()+sphi2*v.y() ; - if (sphi2 < sphi) // Only check further if < starting phi intersection - { - xi = p.x()+sphi2*v.x() ; - yi = p.y()+sphi2*v.y() ; - -// Check intersecting with correct half-plane + // Check intersecting with correct half-plane - if ((yi*cosCPhi-xi*sinCPhi)>=0) // Leaving via ending phi - { - sidephi = kEPhi ; - - if ( pDistE <= -0.5*kCarTolerance ) - { - sphi=sphi2; - } - else - { - sphi = 0 ; - } - } - } - } + if ((yi*cosCPhi-xi*sinCPhi)>=0) // Leaving via ending phi + { + sidephi = kEPhi ; + if ( pDistE <= -0.5*kCarTolerance ) + { + sphi=sphi2; + } + else + { + sphi = 0 ; + } + } + } + } } else if ( pDistS >= 0 && pDistE >= 0 ) // Outside both *full* phi planes { if ( pDistS <= pDistE ) - { + { sidephi = kSPhi ; - } + } else - { + { sidephi = kEPhi ; - } - if ( fDPhi > M_PI ) - { - if ( compS < 0 && compE < 0 ) sphi = 0 ; - else sphi = kInfinity ; - } + } + if ( fDPhi > M_PI ) + { + if ( compS < 0 && compE < 0 ) sphi = 0 ; + else sphi = kInfinity ; + } else - { -// if towards both >=0 then once inside (after error) will remain inside + { + // if towards both >=0 then once inside (after error) + // will remain inside - if ( compS >= 0 && compE >= 0 ) - { - sphi=kInfinity; - } - else - { - sphi=0; - } - } + if ( compS >= 0 && compE >= 0 ) + { + sphi=kInfinity; + } + else + { + sphi=0; + } + } } else if ( pDistS > 0 && pDistE < 0 ) { -// Outside full starting plane, inside full ending plane + // Outside full starting plane, inside full ending plane - if ( fDPhi > M_PI ) - { - if ( compE < 0 ) - { - sphi = pDistE/compE ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + if ( fDPhi > M_PI ) + { + if ( compE < 0 ) + { + sphi = pDistE/compE ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; -// Check intersection in correct half-plane (if not -> not leaving phi extent) - - if ( ( yi*cosCPhi - xi*sinCPhi ) <= 0 ) - { - sphi = kInfinity ; - } - else // Leaving via Ending phi - { + // Check intersection in correct half-plane + // (if not -> not leaving phi extent) + // + if ( ( yi*cosCPhi - xi*sinCPhi ) <= 0 ) + { + sphi = kInfinity ; + } + else // Leaving via Ending phi + { sidephi = kEPhi ; + if ( pDistE > -0.5*kCarTolerance ) sphi = 0. ; + } + } + else + { + sphi = kInfinity ; + } + } + else + { + if ( compS >= 0 ) + { + if ( compE < 0 ) + { + sphi = pDistE/compE ; + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; - if ( pDistE > -0.5*kCarTolerance ) sphi = 0. ; - } - } - else - { - sphi = kInfinity ; - } - } - else - { - if ( compS >= 0 ) - { - if ( compE < 0 ) - { - sphi = pDistE/compE ; - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; - -// Check intersection in correct half-plane (if not -> remain in extent) - - if ( ( yi*cosCPhi - xi*sinCPhi) <= 0 ) - { - sphi=kInfinity; - } - else // otherwise leaving via Ending phi - { - sidephi = kEPhi ; - } - } - else sphi=kInfinity; - } - else // leaving immediately by starting phi - { - sidephi = kSPhi ; - sphi = 0 ; - } - } + // Check intersection in correct half-plane + // (if not -> remain in extent) + // + if ( ( yi*cosCPhi - xi*sinCPhi) <= 0 ) + { + sphi=kInfinity; + } + else // otherwise leaving via Ending phi + { + sidephi = kEPhi ; + } + } + else sphi=kInfinity; + } + else // leaving immediately by starting phi + { + sidephi = kSPhi ; + sphi = 0 ; + } + } } else { -// Must be pDistS < 0 && pDistE > 0 -// Inside full starting plane, outside full ending plane + // Must be pDistS < 0 && pDistE > 0 + // Inside full starting plane, outside full ending plane if ( fDPhi > M_PI ) - { - if ( compS < 0 ) - { - sphi=pDistS/compS; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - -// Check intersection in correct half-plane (if not -> not leaving phi extent) - - if ( ( yi*cosCPhi - xi*sinCPhi ) >= 0 ) - { - sphi = kInfinity ; - } - else // Leaving via Starting phi - { - sidephi = kSPhi ; - - if ( pDistS > -0.5*kCarTolerance ) sphi = 0 ; - } - } - else - { - sphi = kInfinity ; - } - } - else { - if ( compE >= 0 ) - { - if ( compS < 0 ) - { - - sphi = pDistS/compS ; - xi = p.x()+sphi*v.x() ; - yi = p.y()+sphi*v.y() ; + if ( compS < 0 ) + { + sphi=pDistS/compS; + xi=p.x()+sphi*v.x(); + yi=p.y()+sphi*v.y(); -// Check intersection in correct half-plane (if not -> remain in extent) + // Check intersection in correct half-plane + // (if not -> not leaving phi extent) + // + if ( ( yi*cosCPhi - xi*sinCPhi ) >= 0 ) + { + sphi = kInfinity ; + } + else // Leaving via Starting phi + { + sidephi = kSPhi ; + if ( pDistS > -0.5*kCarTolerance ) sphi = 0 ; + } + } + else + { + sphi = kInfinity ; + } + } + else + { + if ( compE >= 0 ) + { + if ( compS < 0 ) + { + sphi = pDistS/compS ; + xi = p.x()+sphi*v.x() ; + yi = p.y()+sphi*v.y() ; - if ( ( yi*cosCPhi - xi*sinCPhi ) >= 0 ) - { - sphi = kInfinity ; - } - else // otherwise leaving via Starting phi - { - sidephi = kSPhi ; - } - } - else - { - sphi = kInfinity ; - } - } - else // leaving immediately by ending - { - sidephi = kEPhi ; - sphi = 0 ; - } - } - } + // Check intersection in correct half-plane + // (if not -> remain in extent) + // + if ( ( yi*cosCPhi - xi*sinCPhi ) >= 0 ) + { + sphi = kInfinity ; + } + else // otherwise leaving via Starting phi + { + sidephi = kSPhi ; + } + } + else + { + sphi = kInfinity ; + } + } + else // leaving immediately by ending + { + sidephi = kEPhi ; + sphi = 0 ; + } + } + } } else { -// On z axis + travel not || to z axis -> if phi of vector direction -// within phi of shape, Step limited by rmax, else Step =0 + // On z axis + travel not || to z axis -> if phi of vector direction + // within phi of shape, Step limited by rmax, else Step =0 if ( v.x() || v.y() ) { - vphi = atan2(v.y(),v.x()) ; - - if ( fSPhi < vphi && vphi < fSPhi + fDPhi ) - { - sphi=kInfinity; - } - else - { + vphi = atan2(v.y(),v.x()) ; + if ( fSPhi < vphi && vphi < fSPhi + fDPhi ) + { + sphi=kInfinity; + } + else + { sidephi = kSPhi ; // arbitrary - sphi = 0 ; - } + sphi = 0 ; + } } else // travel along z - no phi intersaction { @@ -2371,90 +2396,71 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, switch( side ) { case kRMax: - - xi=p.x()+snxt*v.x(); - yi=p.y()+snxt*v.y(); - zi=p.z()+snxt*v.z(); - *n=G4ThreeVector(xi/fRmax,yi/fRmax,zi/fRmax); - *validNorm=true; - break; - + xi=p.x()+snxt*v.x(); + yi=p.y()+snxt*v.y(); + zi=p.z()+snxt*v.z(); + *n=G4ThreeVector(xi/fRmax,yi/fRmax,zi/fRmax); + *validNorm=true; + break; case kRMin: - - *validNorm=false; // Rmin is concave - break; - + *validNorm=false; // Rmin is concave + break; case kSPhi: - - if (fDPhi<=M_PI) // Normal to Phi- - { - *n=G4ThreeVector(sin(fSPhi),-cos(fSPhi),0); - *validNorm=true; - } - else *validNorm=false; - break ; - + if (fDPhi<=M_PI) // Normal to Phi- + { + *n=G4ThreeVector(sin(fSPhi),-cos(fSPhi),0); + *validNorm=true; + } + else *validNorm=false; + break ; case kEPhi: - - if (fDPhi<=M_PI) // Normal to Phi+ - { - *n=G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0); - *validNorm=true; - } - else *validNorm=false; - break; - + if (fDPhi<=M_PI) // Normal to Phi+ + { + *n=G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0); + *validNorm=true; + } + else *validNorm=false; + break; case kSTheta: - if( fSTheta == M_PI*0.5 ) { - *n=G4ThreeVector(0,0,1); - *validNorm=true; - } - else if ( fSTheta > M_PI ) + *n=G4ThreeVector(0,0,1); + *validNorm=true; + } + else if ( fSTheta > M_PI ) { - xi=p.x()+snxt*v.x(); - yi=p.y()+snxt*v.y(); - rhoSecTheta = sqrt((xi*xi+yi*yi)*(1+tanSTheta2)) ; - *n = G4ThreeVector(-xi/rhoSecTheta, // N- - -yi/rhoSecTheta, - tanSTheta/sqrt(1+tanSTheta2)) ; - *validNorm=true; - } - else *validNorm=false; // Concave STheta cone - break; - + xi=p.x()+snxt*v.x(); + yi=p.y()+snxt*v.y(); + rhoSecTheta = sqrt((xi*xi+yi*yi)*(1+tanSTheta2)) ; + *n = G4ThreeVector(-xi/rhoSecTheta, // N- + -yi/rhoSecTheta, + tanSTheta/sqrt(1+tanSTheta2)) ; + *validNorm=true; + } + else *validNorm=false; // Concave STheta cone + break; case kETheta: - if( ( fSTheta + fDTheta ) == M_PI*0.5 ) { - *n = G4ThreeVector(0,0,-1); - *validNorm = true ; - } - else if ( ( fSTheta + fDTheta ) < M_PI ) - { - xi=p.x()+snxt*v.x(); - yi=p.y()+snxt*v.y(); - rhoSecTheta = sqrt((xi*xi+yi*yi)*(1+tanETheta2)) ; - *n = G4ThreeVector( xi/rhoSecTheta, // N+ - yi/rhoSecTheta, - -tanSTheta/sqrt(1+tanSTheta2)) ; - *validNorm=true; - } - else *validNorm=false; // Concave ETheta cone - break; - + *n = G4ThreeVector(0,0,-1); + *validNorm = true ; + } + else if ( ( fSTheta + fDTheta ) < M_PI ) + { + xi=p.x()+snxt*v.x(); + yi=p.y()+snxt*v.y(); + rhoSecTheta = sqrt((xi*xi+yi*yi)*(1+tanETheta2)) ; + *n = G4ThreeVector( xi/rhoSecTheta, // N+ + yi/rhoSecTheta, + -tanSTheta/sqrt(1+tanSTheta2) ) ; + *validNorm=true; + } + else *validNorm=false; // Concave ETheta cone + break; default: - G4cout.precision(16); G4cout << G4endl; - G4cout << "Sphere parameters:" << G4endl << G4endl; - G4cout << "fRmin = " << fRmin/mm << " mm" << G4endl; - G4cout << "fRmax = " << fRmax/mm << " mm" << G4endl; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl; - G4cout << "fSTheta = " << fSTheta/degree << " degree" << G4endl; - G4cout << "fDTheta = " << fDTheta/degree << " degree" << G4endl << G4endl; + DumpInfo(); G4cout << "Position:" << G4endl << G4endl; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; @@ -2465,8 +2471,7 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, G4cout << "v.z() = " << v.z() << G4endl << G4endl; G4cout << "Proposed distance :" << G4endl << G4endl; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; - - G4Exception("Invalid enum in G4Sphere::DistanceToOut"); + G4Exception("G4Sphere::DistanceToOut() - Invalid enum"); break; } } @@ -2477,106 +2482,100 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p, // // Calcluate distance (<=actual) to closest surface of shape from inside -G4double G4Sphere::DistanceToOut(const G4ThreeVector& p) const +G4double G4Sphere::DistanceToOut( const G4ThreeVector& p ) const { - G4double safe,safeRMin,safeRMax,safePhi,safeTheta; - G4double rho2,rad,rho; - G4double phiC,cosPhiC,sinPhiC,ePhi; - G4double pTheta,dTheta1,dTheta2; - rho2=p.x()*p.x()+p.y()*p.y(); - rad=sqrt(rho2+p.z()*p.z()); - rho=sqrt(rho2); + G4double safe,safeRMin,safeRMax,safePhi,safeTheta; + G4double rho2,rad,rho; + G4double phiC,cosPhiC,sinPhiC,ePhi; + G4double pTheta,dTheta1,dTheta2; + rho2=p.x()*p.x()+p.y()*p.y(); + rad=sqrt(rho2+p.z()*p.z()); + rho=sqrt(rho2); #ifdef G4CSGDEBUG if( Inside(p) == kOutside ) { G4cout.precision(16) ; G4cout << G4endl ; - G4cout << "Sphere parameters:" << G4endl << G4endl ; - G4cout << "fRmin = " << fRmin/mm << " mm" << G4endl ; - G4cout << "fRmax = " << fRmax/mm << " mm" << G4endl ; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl; - G4cout << "fSTheta = " << fSTheta/degree << " degree" << G4endl; - G4cout << "fDTheta = " << fDTheta/degree << " degree" << G4endl << G4endl ; + DumpInfo(); G4cout << "Position:" << G4endl << G4endl ; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; G4cout << "G4Sphere::DistanceToOut(p) - point p is outside ?!" << G4endl ; - // G4Exception("Invalid call in G4Sphere::DistanceToOut(p), point p is outside") ; + G4cerr << "G4Sphere::DistanceToOut(p) - point p is outside ?!" << G4endl ; } #endif -// -// Distance to r shells -// - if (fRmin) - { - safeRMin=rad-fRmin; - safeRMax=fRmax-rad; - if (safeRMinsafeTheta) - { - safe=safeTheta; - } - } - else - { - safeTheta=rad*sin(dTheta2); - if (safe>safeTheta) - { - safe=safeTheta; - } - } - } + // + // Distance to Theta extent + // + if (rad) + { + pTheta=acos(p.z()/rad); + if (pTheta<0) pTheta+=M_PI; + dTheta1=pTheta-fSTheta; + dTheta2=(fSTheta+fDTheta)-pTheta; + if (dTheta1safeTheta) + { + safe=safeTheta; + } + } + else + { + safeTheta=rad*sin(dTheta2); + if (safe>safeTheta) + { + safe=safeTheta; + } + } + } - if (safe<0) safe=0; + if (safe<0) safe=0; return safe; } @@ -2592,142 +2591,175 @@ G4double G4Sphere::DistanceToOut(const G4ThreeVector& p) const // to avoid rounding error problems. G4ThreeVectorList* -G4Sphere::CreateRotatedVertices(const G4AffineTransform& pTransform, - G4int& noPolygonVertices) const +G4Sphere::CreateRotatedVertices( const G4AffineTransform& pTransform, + G4int& noPolygonVertices ) const { - G4ThreeVectorList *vertices; - G4ThreeVector vertex; - G4double meshAnglePhi,meshRMax,crossAnglePhi,coscrossAnglePhi,sincrossAnglePhi,sAnglePhi; - G4double meshTheta,crossTheta,startTheta; - G4double rMaxX,rMaxY,rMinX,rMinY,rMinZ,rMaxZ; - G4int crossSectionPhi,noPhiCrossSections,crossSectionTheta,noThetaSections; + G4ThreeVectorList *vertices; + G4ThreeVector vertex; + G4double meshAnglePhi,meshRMax,crossAnglePhi, + coscrossAnglePhi,sincrossAnglePhi,sAnglePhi; + G4double meshTheta,crossTheta,startTheta; + G4double rMaxX,rMaxY,rMinX,rMinY,rMinZ,rMaxZ; + G4int crossSectionPhi,noPhiCrossSections,crossSectionTheta,noThetaSections; -// Phi cross sections + // Phi cross sections - noPhiCrossSections=G4int (fDPhi/kMeshAngleDefault)+1; + noPhiCrossSections=G4int (fDPhi/kMeshAngleDefault)+1; - if (noPhiCrossSectionskMaxMeshSections) - { - noPhiCrossSections=kMaxMeshSections; - } - meshAnglePhi=fDPhi/(noPhiCrossSections-1); + if (noPhiCrossSectionskMaxMeshSections) + { + noPhiCrossSections=kMaxMeshSections; + } + meshAnglePhi=fDPhi/(noPhiCrossSections-1); -// If complete in phi, set start angle such that mesh will be at fRMax -// on the x axis. Will give better extent calculations when not rotated. + // If complete in phi, set start angle such that mesh will be at fRMax + // on the x axis. Will give better extent calculations when not rotated. - if (fDPhi==M_PI*2.0 && fSPhi==0) - { - sAnglePhi = -meshAnglePhi*0.5; - } + if (fDPhi==M_PI*2.0 && fSPhi==0) + { + sAnglePhi = -meshAnglePhi*0.5; + } else - { - sAnglePhi=fSPhi; - } + { + sAnglePhi=fSPhi; + } - // Theta cross sections + // Theta cross sections - noThetaSections = G4int(fDTheta/kMeshAngleDefault)+1; + noThetaSections = G4int(fDTheta/kMeshAngleDefault)+1; - if (noThetaSectionskMaxMeshSections) - { - noThetaSections=kMaxMeshSections; - } - meshTheta=fDTheta/(noThetaSections-1); + if (noThetaSectionskMaxMeshSections) + { + noThetaSections=kMaxMeshSections; + } + meshTheta=fDTheta/(noThetaSections-1); -// If complete in Theta, set start angle such that mesh will be at fRMax -// on the z axis. Will give better extent calculations when not rotated. + // If complete in Theta, set start angle such that mesh will be at fRMax + // on the z axis. Will give better extent calculations when not rotated. - if (fDTheta==M_PI && fSTheta==0) - { - startTheta = -meshTheta*0.5; - } - else - { - startTheta=fSTheta; - } + if (fDTheta==M_PI && fSTheta==0) + { + startTheta = -meshTheta*0.5; + } + else + { + startTheta=fSTheta; + } - meshRMax = (meshAnglePhi >= meshTheta) ? - fRmax/cos(meshAnglePhi*0.5) : fRmax/cos(meshTheta*0.5); - G4double* cosCrossTheta = new G4double[noThetaSections]; - G4double* sinCrossTheta = new G4double[noThetaSections]; - vertices=new G4ThreeVectorList(); - vertices->reserve(noPhiCrossSections*(noThetaSections*2)); - if (vertices && cosCrossTheta && sinCrossTheta) - { - for (crossSectionPhi=0;crossSectionPhi= meshTheta) ? + fRmax/cos(meshAnglePhi*0.5) : fRmax/cos(meshTheta*0.5); + G4double* cosCrossTheta = new G4double[noThetaSections]; + G4double* sinCrossTheta = new G4double[noThetaSections]; + vertices=new G4ThreeVectorList(); + vertices->reserve(noPhiCrossSections*(noThetaSections*2)); + if (vertices && cosCrossTheta && sinCrossTheta) + { + for (crossSectionPhi=0; + crossSectionPhipush_back(pTransform.TransformPoint(vertex)); - - } // Theta forward + rMinX=fRmin*sinCrossTheta[crossSectionTheta]*coscrossAnglePhi; + rMinY=fRmin*sinCrossTheta[crossSectionTheta]*sincrossAnglePhi; + rMinZ=fRmin*cosCrossTheta[crossSectionTheta]; + + vertex=G4ThreeVector(rMinX,rMinY,rMinZ); + vertices->push_back(pTransform.TransformPoint(vertex)); + + } // Theta forward - for (crossSectionTheta=noThetaSections-1;crossSectionTheta>=0;crossSectionTheta--) - { - rMaxX=meshRMax*sinCrossTheta[crossSectionTheta]*coscrossAnglePhi; - rMaxY=meshRMax*sinCrossTheta[crossSectionTheta]*sincrossAnglePhi; - rMaxZ=meshRMax*cosCrossTheta[crossSectionTheta]; - - vertex=G4ThreeVector(rMaxX,rMaxY,rMaxZ); - vertices->push_back(pTransform.TransformPoint(vertex)); + for (crossSectionTheta=noThetaSections-1; + crossSectionTheta>=0; crossSectionTheta--) + { + rMaxX=meshRMax*sinCrossTheta[crossSectionTheta]*coscrossAnglePhi; + rMaxY=meshRMax*sinCrossTheta[crossSectionTheta]*sincrossAnglePhi; + rMaxZ=meshRMax*cosCrossTheta[crossSectionTheta]; + + vertex=G4ThreeVector(rMaxX,rMaxY,rMaxZ); + vertices->push_back(pTransform.TransformPoint(vertex)); - } // Theta back - } // Phi - noPolygonVertices = noThetaSections*2 ; - } - else - { - G4Exception("G4Sphere::CreateRotatedVertices - Out of memory !"); - } + } // Theta back + } // Phi + noPolygonVertices = noThetaSections*2 ; + } + else + { + DumpInfo(); + G4Exception("G4Sphere::CreateRotatedVertices() - Out of memory !"); + } - delete[] cosCrossTheta; - delete[] sinCrossTheta; + delete[] cosCrossTheta; + delete[] sinCrossTheta; - return vertices; + return vertices; +} + +////////////////////////////////////////////////////////////////////////// +// +// G4EntityType + +G4GeometryType G4Sphere::GetEntityType() const +{ + return G4String("G4Sphere"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Sphere::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Sphere\n" + << " Parameters: \n" + << " inner radius: " << fRmin/mm << " mm \n" + << " outer radius: " << fRmax/mm << " mm \n" + << " starting phi of segment : " << fSPhi/degree << " degrees \n" + << " delta phi of segment : " << fDPhi/degree << " degrees \n" + << " starting theta of segment: " << fSTheta/degree << " degrees \n" + << " delta theta of segment : " << fDTheta/degree << " degrees \n" + << "-----------------------------------------------------------\n"; + + return os; } ///////////////////////////////////////////////////////////////////////////// // // Methods for visualisation -void G4Sphere::DescribeYourselfTo (G4VGraphicsScene& scene) const +void G4Sphere::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { scene.AddThis (*this); } G4Polyhedron* G4Sphere::CreatePolyhedron () const { - return new G4PolyhedronSphere (fRmin, fRmax, - fSPhi, fDPhi, - fSTheta, fDTheta); - + return new G4PolyhedronSphere (fRmin, fRmax, fSPhi, fDPhi, fSTheta, fDTheta); } G4NURBS* G4Sphere::CreateNURBS () const { - return new G4NURBSbox (fRmax, fRmax, fRmax); // Box for now!!! + return new G4NURBSbox (fRmax, fRmax, fRmax); // Box for now!!! } diff --git a/source/geometry/solids/CSG/src/G4Torus.cc b/source/geometry/solids/CSG/src/G4Torus.cc index b4728fb832..a25b5ff607 100644 --- a/source/geometry/solids/CSG/src/G4Torus.cc +++ b/source/geometry/solids/CSG/src/G4Torus.cc @@ -21,24 +21,25 @@ // ******************************************************************** // // -// $Id: G4Torus.cc,v 1.26 2002/01/10 15:42:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Torus.cc,v 1.28 2002/10/28 15:18:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Torus // // Implementation // -// 30.10.96 V.Grichine First implementation with G4Tubs elements in Fs -// 09.10.98 V.Grichine modifications in Distance ToOut(p,v,...) -// 19.11.99 V.Grichine side = kNull in Distance ToOut(p,v,...) -// 06.03.00 V.Grichine, modifications in Distance ToOut(p,v,...) -// 26.05.00 V.Grichine, new fuctions developed by O.Cremonesi were added -// 31.08.00 E.Medernach, numerical computation of roots with bounding volume technique -// 03.10.00 E.Medernach, SafeNewton added -// 11.01.01 E.Medernach, Use G4PolynomialSolver to find roots +// 30.10.96 V.Grichine: first implementation with G4Tubs elements in Fs +// 09.10.98 V.Grichine: modifications in Distance ToOut(p,v,...) +// 19.11.99 V.Grichine: side = kNull in Distance ToOut(p,v,...) +// 06.03.00 V.Grichine: modifications in Distance ToOut(p,v,...) +// 26.05.00 V.Grichine: new fuctions developed by O.Cremonesi were added +// 31.08.00 E.Medernach: numerical computation of roots wuth bounding +// volume technique +// 03.10.00 E.Medernach: SafeNewton added +// 11.01.01 E.Medernach: Use G4PolynomialSolver to find roots // - +// ******************************************************************** #include "G4Torus.hh" @@ -64,24 +65,23 @@ // Constructor - check parameters, convert angles so 02PI then reset to 2PI -G4Torus::G4Torus(const G4String &pName, - G4double pRmin, - G4double pRmax, - G4double pRtor, - G4double pSPhi, - G4double pDPhi) - : G4CSGSolid(pName) +G4Torus::G4Torus( const G4String &pName, + G4double pRmin, + G4double pRmax, + G4double pRtor, + G4double pSPhi, + G4double pDPhi) + : G4CSGSolid(pName) { SetAllParameters(pRmin, pRmax, pRtor, pSPhi, pDPhi); } void -G4Torus::SetAllParameters( - G4double pRmin, - G4double pRmax, - G4double pRtor, - G4double pSPhi, - G4double pDPhi) +G4Torus::SetAllParameters( G4double pRmin, + G4double pRmax, + G4double pRtor, + G4double pSPhi, + G4double pDPhi ) { if ( pRtor >= pRmax + kCarTolerance ) // Check swept radius { @@ -89,24 +89,35 @@ G4Torus::SetAllParameters( } else { - G4Exception("Error in G4Torus::SetAllParameters - invalid swept radius"); + G4cout << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl + << " Invalid swept radius !" << G4endl + << "pRtor = " << pRtor << ", pRmax = " << pRmax << G4endl; + G4cerr << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl + << " Invalid swept radius !" << G4endl + << "pRtor = " << pRtor << ", pRmax = " << pRmax << G4endl; + G4Exception("G4Torus::SetAllParameters() - invalid swept radius"); } -// Check radii + // Check radii - if (pRmin < pRmax - 2*kCarTolerance && pRmin >= 0 ) + if ( pRmin < pRmax - 2*kCarTolerance && pRmin >= 0 ) { if (pRmin >= kCarTolerance) fRmin = pRmin ; else fRmin = 0.0 ; - fRmax = pRmax ; } else { - G4Exception("Error in G4Torus::SetAllParameters - invalid radii"); + G4cout << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl + << " Invalid values for radii !" << G4endl + << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; + G4cerr << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl + << " Invalid values for radii !" << G4endl + << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; + G4Exception("G4Torus::SetAllParameters() - invalid radii"); } -// Check angles + // Check angles if ( pDPhi >= 2.0*M_PI ) fDPhi = 2*M_PI ; else @@ -114,19 +125,24 @@ G4Torus::SetAllParameters( if (pDPhi > 0) fDPhi = pDPhi ; else { - G4Exception("Error in G4Torus::SetAllParameters - invalid dphi"); + G4cout << "ERROR - G4Torus::SetAllParameters(): " << GetName() << G4endl + << " Negative delta-Phi ! - " + << pDPhi << G4endl; + G4cerr << "ERROR - G4Torus::SetAllParameters(): " << GetName() << G4endl + << " Negative Z delta-Phi ! - " + << pDPhi << G4endl; + G4Exception("G4Torus::SetAllParameters() - invalid dphi"); } } - -// Ensure psphi in 0-2PI or -2PI-0 range if shape crosses 0 + + // Ensure psphi in 0-2PI or -2PI-0 range if shape crosses 0 fSPhi = pSPhi; - if (fSPhi < 0) fSPhi = 2.0*M_PI - fmod(fabs(fSPhi), 2.0*M_PI) ; + if (fSPhi < 0) fSPhi = 2.0*M_PI-fmod(fabs(fSPhi),2.0*M_PI) ; + else fSPhi = fmod(fSPhi,2.0*M_PI) ; - else fSPhi = fmod(fSPhi, 2.0*M_PI) ; - - if (fSPhi+fDPhi > 2.0*M_PI) fSPhi -= 2.0*M_PI ; + if (fSPhi+fDPhi > 2.0*M_PI) fSPhi-=2.0*M_PI ; } ////////////////////////////////////////////////////////////////////// @@ -134,18 +150,18 @@ G4Torus::SetAllParameters( // Destructor G4Torus::~G4Torus() -{;} +{} ////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension // computation & modification. -void G4Torus::ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep) +void G4Torus::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ) { - p->ComputeDimensions(*this,n,pRep); + p->ComputeDimensions(*this,n,pRep); } /////////////////////////////////////////////////////////////////////////// @@ -154,76 +170,75 @@ void G4Torus::ComputeDimensions(G4VPVParameterisation* p, // v) with the torus G4int G4Torus::TorusRoots( G4double Ri, - const G4ThreeVector& p, - const G4ThreeVector& v) const + const G4ThreeVector& p, + const G4ThreeVector& v ) const { - // Define roots Si (generally real >=0) for intersection with - // torus (Ri = fRmax or fRmin) of ray p +S*v . General equation is : - // c[4]*S^4 + c[3]*S^3 +c[2]*S^2 + c[1]*S + c[0] = 0 . + // Define roots Si (generally real >=0) for intersection with + // torus (Ri = fRmax or fRmin) of ray p +S*v . General equation is : + // c[4]*S^4 + c[3]*S^3 +c[2]*S^2 + c[1]*S + c[0] = 0 . - G4double c[5],s[4] ; - G4int num, i, j ; - G4double pDotV = p.x()*v.x() + p.y()*v.y() + p.z()*v.z() ; - G4double pRad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; - G4double Rtor2 = fRtor*fRtor, Ri2 = Ri*Ri ; - - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Ri2 + 2*Rtor2*v.z()*v.z()) ; - c[1] = 4*(pDotV*(pRad2-Rtor2-Ri2) + 2*Rtor2*p.z()*v.z()) ; - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Ri2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Ri2)*(Rtor2-Ri2) ; - - num = SolveBiQuadratic(c,s) ; - - if(num) - { - for(i=0;i=0 roots - { - if(s[i]<0) - { - for(j=i+1;j=0 roots - { - if(s[i]<0) - { - for(j=i+1;j=0 roots + { + if(s[i]<0) + { + for(j=i+1;j=0 roots + { + if(s[i]<0) + { + for(j=i+1;j=0) - { - if(s[0]==0) // Three roots and one of them == 0 - { - s[2] = sqrt(s[1]) ; - s[1] = s[0] ; - s[0] = -s[2] ; - num++ ; - } - else // Four roots - { - s[2] = sqrt(s[0]) ; - s[3] = 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] = -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] = sqrt(s[0]) ; - s[0] = -s[1] ; - num +=1 ; - } - } - else return num = 0 ; - } - } - else return num ; + if(num==2) + { + if(s[0]>=0) + { + if(s[0]==0) // Three roots and one of them == 0 + { + s[2] = sqrt(s[1]) ; + s[1] = s[0] ; + s[0] = -s[2] ; + num++ ; + } + else // Four roots + { + s[2] = sqrt(s[0]) ; + s[3] = 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] = -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] = sqrt(s[0]) ; + s[0] = -s[1] ; + num +=1 ; + } + } + else return num = 0 ; + } } - else if (r == 0) // no absolute term: y(y^3 + py + q) = 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 ; - } + sub = s[j] ; + i=j-1 ; + while( i >= 0 && s[i] > sub ) + { + i-- ; + s[i+1] = s[i] ; // s[i--] ; + } + s[i+1] = sub ; } - else - { - // solve the resolvent cubic ... + } + 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; + 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); + num = SolveCubic(coeffs, s); - // ... and take the one real solution ... + // ... and take the one real solution ... - z = s[ 0 ]; + z = s[ 0 ]; - // ... to Build two quadratic equations + // ... to Build two quadratic equations - u = z * z - r; - v = 2 * z - p; + u = z * z - r; + v = 2 * z - p; - if (u==0) u = 0 ; - else if (u > 0) u = sqrt(u) ; - else return 0 ; + if (u==0) u = 0 ; + else if (u > 0) u = sqrt(u) ; + else return 0 ; - if (v==0) v = 0 ; - else if (v > 0) v = sqrt(v); - else return 0 ; + if (v==0) v = 0 ; + else if (v > 0) v = sqrt(v); + else return 0 ; - coeffs[ 0 ] = z - u; - coeffs[ 1 ] = q < 0 ? -v : v; - coeffs[ 2 ] = 1; + coeffs[ 0 ] = z - u; + coeffs[ 1 ] = q < 0 ? -v : v; + coeffs[ 2 ] = 1; - num = SolveQuadratic(coeffs, s); + num = SolveQuadratic(coeffs, s); - coeffs[ 0 ]= z + u; - coeffs[ 1 ] = q < 0 ? v : -v; - coeffs[ 2 ] = 1; + coeffs[ 0 ]= z + u; + coeffs[ 1 ] = q < 0 ? v : -v; + coeffs[ 2 ] = 1; - num += SolveQuadratic(coeffs, s + num); - } + num += SolveQuadratic(coeffs, s + num); + } - // resubstitute + // resubstitute - sub = 1.0/4 * A; + sub = 1.0/4 * A; - for (i = 0; i < num; ++i) - s[ i ] -= sub; + for (i = 0; i < num; ++i) + s[ i ] -= sub; - return num; + return num; } ///////////////////////////////////////////////////////////////////////////// @@ -395,365 +410,363 @@ G4int G4Torus::SolveBiQuadratic(double c[], double s[] ) const // Auxiliary method for solving of cubic equation in real numbers // From Graphics Gems I bu Jochen Schwartz -G4int G4Torus::SolveCubic(double c[], double s[] ) const +G4int G4Torus::SolveCubic( G4double c[], G4double s[] ) const { - G4int i, num; - G4double sub; - G4double A, B, C; - G4double A2, p, q; - G4double p3, D; + 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 + // 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 ]; + 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 + // 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); + 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 + // use Cardano's formula - p3 = p*p*p; - D = q*q + p3; + p3 = p*p*p; + D = q*q + p3; - if (D == 0) + if (D == 0) + { + if (q == 0) // one triple solution { - if (q == 0) // one triple solution - { - s[ 0 ] = 0; - num = 1; - } - else // one single and one double solution - { - G4double u = pow(-q,1./3.); - s[ 0 ] = 2 * u; - s[ 1 ] = - u; - num = 2; - } + s[ 0 ] = 0; + num = 1; } - else if (D < 0) // Casus irreducibilis: three real solutions + else // one single and one double solution { - G4double phi = 1.0/3 * acos(-q / sqrt(-p3)); - G4double t = 2 * sqrt(-p); - - s[ 0 ] = t * cos(phi); - s[ 1 ] = - t * cos(phi + M_PI / 3); - s[ 2 ] = - t * cos(phi - M_PI / 3); - num = 3; + G4double u = pow(-q,1./3.); + s[ 0 ] = 2 * u; + s[ 1 ] = - u; + num = 2; } - else // one real solution - { - G4double sqrt_D = sqrt(D); - G4double u = pow(sqrt_D - q,1./3.); - G4double v = - pow(sqrt_D + q,1./3.); + } + else if (D < 0) // Casus irreducibilis: three real solutions + { + G4double phi = 1.0/3 * acos(-q / sqrt(-p3)); + G4double t = 2 * sqrt(-p); - s[ 0 ] = u + v; - num = 1; - } + s[ 0 ] = t * cos(phi); + s[ 1 ] = - t * cos(phi + M_PI / 3); + s[ 2 ] = - t * cos(phi - M_PI / 3); + num = 3; + } + else // one real solution + { + G4double sqrt_D = sqrt(D); + G4double u = pow(sqrt_D - q,1./3.); + G4double v = - pow(sqrt_D + q,1./3.); - // resubstitute + s[ 0 ] = u + v; + num = 1; + } - sub = 1.0/3 * A; + // resubstitute - for (i = 0; i < num; ++i) - s[ i ] -= sub; + sub = 1.0/3 * A; - return num; + for (i = 0; i < num; ++i) + s[ i ] -= sub; + + return num; } // --------------------------------------------------------------------- -G4int G4Torus::SolveBiQuadraticNew(double c[], double s[] ) const +G4int G4Torus::SolveBiQuadraticNew( G4double c[], G4double s[] ) const { -// From drte4 by McLareni; rewritten by O.Cremonesi + // 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; + 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 + // 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 ]; + 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( B==0 && C==0 ) + { + if( D==0 ) { - if( D==0 ) - { - s[0] = -A; - s[1] = s[2] = s[3] = 0; - return 4; - } + s[0] = -A; + s[1] = s[2] = s[3] = 0; + return 4; } - else if( A==0 ) - { - if( D>0 ) return 0; - else - { - s[0] = sqrt( 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] = 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 = sqrt( s[i] ); - w2 = sqrt( s[j] ); - } + } + else if( A==0 ) + { + if( D>0 ) return 0; else { - num = 2; - w1 = w2 = sqrt( s[1] ); + s[0] = sqrt( sqrt( -D ) ); + s[1] = -s[0]; + return 2; } - if( w1*w2 != 0. ) w3 = -q/( 8.0*w1*w2 ) ; - else w3 = 0.0 ; + } - if( num == 4 ) + // 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++ ) { - s[0] = w1 + w2 + w3 - sub ; - s[1] = -w1 - w2 + w3 - sub ; - s[2] = -w1 + w2 - w3 - sub ; - s[3] = w1 - w2 - w3 - sub ; + v[i] = fabs( s[i] ) ; + if( v[i] > vm1 ) vm1 = v[i] ; } - else if( num == 2 ) + if( vm1 == v[0] ) { - s[0] = w1 + w2 + w3 - sub ; - s[1] = -w1 - w2 + w3 - sub ; - } - return num ; + 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 = sqrt( s[i] ); + w2 = sqrt( s[j] ); + } + else + { + num = 2; + w1 = w2 = 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 G4Torus::SolveCubicNew(double c[], double s[], double& cubic_discr ) const +G4int G4Torus::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; + // From drte3 by McLareni; rewritten by O.Cremonesi - // normal form: x^3 + Ax^2 + Bx + C = 0 + 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; - A = c[ 2 ]; // c[ 3 ]; since always c[3]==1 ! - B = c[ 1 ]; // c[ 3 ]; - C = c[ 0 ]; // c[ 3 ]; + // normal form: x^3 + Ax^2 + Bx + C = 0 - 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; + A = c[ 2 ]; // c[ 3 ]; since always c[3]==1 ! + B = c[ 1 ]; // c[ 3 ]; + C = c[ 0 ]; // c[ 3 ]; - if( cubic_discr > delta ) - { - h2 = sqrt( cubic_discr ); - u = -h1+h2; - v = -h1-h2; - if( u < 0 ) u = -pow(-u,1./3.); - else u = pow(u,1./3.); - if( v < 0 ) v = -pow(-v,1./3.); - else v = pow(v,1./3.); - s[0] = u+v-sub; - s[1] = -(u+v)/2.0-sub; - s[2] = fabs(u-v)*sqrt(3.0)/2.0; - if( fabs(u) <= eps || 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( fabs(cubic_discr) <= delta ) - { - cubic_discr = 0.; - - if( h1 < 0 ) u = pow(-h1,1./3.); - else u = -pow(h1,1./3.); - - s[0] = u + u - sub ; - s[1] = -u - sub ; - s[2] = s[1] ; - - if( fabs(h1) <= eps ) - { - y[0] = s[0]; - for( i=0; i<2; i++ ) - { - h1 = (3.0*y[i]+2.*A)*y[i]+B; - - if( 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 =fabs(p/3.); - h3 = sqrt(h3*h3*h3); - h2 = acos(-h1/h3)/3.; - h1 = pow(h3,1./3.); - u = h1*cos(h2); - v = sqrt(3.)*h1*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] ; - } - } - } + 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 = sqrt( cubic_discr ); + u = -h1+h2; + v = -h1-h2; + if( u < 0 ) u = -pow(-u,1./3.); + else u = pow(u,1./3.); + if( v < 0 ) v = -pow(-v,1./3.); + else v = pow(v,1./3.); + s[0] = u+v-sub; + s[1] = -(u+v)/2.0-sub; + s[2] = fabs(u-v)*sqrt(3.0)/2.0; + if( fabs(u) <= eps || 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( fabs(cubic_discr) <= delta ) + { + cubic_discr = 0.; + + if( h1 < 0 ) u = pow(-h1,1./3.); + else u = -pow(h1,1./3.); + + s[0] = u + u - sub ; + s[1] = -u - sub ; + s[2] = s[1] ; + + if( fabs(h1) <= eps ) + { + y[0] = s[0]; + for( i=0; i<2; i++ ) + { + h1 = (3.0*y[i]+2.*A)*y[i]+B; + + if( 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 =fabs(p/3.); + h3 = sqrt(h3*h3*h3); + h2 = acos(-h1/h3)/3.; + h1 = pow(h3,1./3.); + u = h1*cos(h2); + v = sqrt(3.)*h1*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 G4Torus::SolveQuadratic(double c[], double s[] ) const +G4int G4Torus::SolveQuadratic( G4double c[], G4double s[] ) const { - G4double p, q, D; + G4double p, q, D; - // normal form: x^2 + px + q = 0 + // normal form: x^2 + px + q = 0 - p = c[ 1 ]/2 ; // * c[ 2 ]); since always c[2]==1 - q = c[ 0 ] ; // c[ 2 ]; + p = c[ 1 ]/2 ; // * c[ 2 ]); since always c[2]==1 + q = c[ 0 ] ; // c[ 2 ]; - D = p * p - q; + 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 = sqrt(D); + 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 = sqrt(D); - s[ 0 ] = - p - sqrt_D ; // in ascending order ! - s[ 1 ] = - p + sqrt_D ; - return 2; - } - return 0; + s[ 0 ] = - p - sqrt_D ; // in ascending order ! + s[ 1 ] = - p + sqrt_D ; + return 2; + } + return 0; } ///////////////////////////////////////////////////////////////////////////// // // Calculate extent under transform and specified limit -G4bool G4Torus::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const +G4bool G4Torus::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const { if (!pTransform.IsRotated() && fDPhi==2.0*M_PI && fRmin==0) { -// Special case handling for unrotated solid torus -// Compute x/y/z mins and maxs for bounding box respecting limits, -// with early returns if outside limits. Then switch() on pAxis, -// and compute exact x and y limit for x/y case - + // Special case handling for unrotated solid torus + // Compute x/y/z mins and maxs for bounding box respecting limits, + // with early returns if outside limits. Then switch() on pAxis, + // and compute exact x and y limit for x/y case + G4double xoffset,xMin,xMax; G4double yoffset,yMin,yMax; G4double zoffset,zMin,zMax; @@ -767,18 +780,19 @@ G4bool G4Torus::CalculateExtent(const EAxis pAxis, if (pVoxelLimit.IsXLimited()) { - if (xMin > pVoxelLimit.GetMaxXExtent()+kCarTolerance || - xMax < pVoxelLimit.GetMinXExtent()-kCarTolerance) return false ; + 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() ; - } + { + xMin = pVoxelLimit.GetMinXExtent() ; + } + if (xMax > pVoxelLimit.GetMaxXExtent()) + { + xMax = pVoxelLimit.GetMaxXExtent() ; + } } } yoffset = pTransform.NetTranslation().y(); @@ -787,18 +801,19 @@ G4bool G4Torus::CalculateExtent(const EAxis pAxis, if (pVoxelLimit.IsYLimited()) { - if (yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance || - yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance) return false ; + if ( (yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance) + || (yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance) ) + return false ; else { - if (yMin < pVoxelLimit.GetMinYExtent() ) - { - yMin = pVoxelLimit.GetMinYExtent() ; + if (yMin < pVoxelLimit.GetMinYExtent() ) + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if (yMax > pVoxelLimit.GetMaxYExtent() ) + { + yMax = pVoxelLimit.GetMaxYExtent() ; } - if (yMax > pVoxelLimit.GetMaxYExtent() ) - { - yMax = pVoxelLimit.GetMaxYExtent() ; - } } } zoffset = pTransform.NetTranslation().z() ; @@ -807,77 +822,81 @@ G4bool G4Torus::CalculateExtent(const EAxis pAxis, if (pVoxelLimit.IsZLimited()) { - if (zMin > pVoxelLimit.GetMaxZExtent()+kCarTolerance || - zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance ) return false ; + 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() ; - } + if (zMin < pVoxelLimit.GetMinZExtent() ) + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if (zMax > pVoxelLimit.GetMaxZExtent() ) + { + zMax = pVoxelLimit.GetMaxZExtent() ; + } } } -// Known to cut cylinder + // Known to cut cylinder switch (pAxis) { case kXAxis: yoff1=yoffset-yMin; - yoff2=yMax-yoffset; - if ( yoff1 >= 0 && yoff2 >= 0 ) - { -// Y limits cross max/min x => no change - - pMin = xMin ; - pMax = xMax ; - } - else + yoff2=yMax-yoffset; + if ( yoff1 >= 0 && yoff2 >= 0 ) { -// Y limits don't cross max/min x => compute max delta x, hence new mins/maxs - - diff1 = sqrt(fRmax*fRmax - yoff1*yoff1) ; - diff2 = sqrt(fRmax*fRmax - yoff2*yoff2) ; - maxDiff = (diff1 > diff2) ? diff1:diff2 ; - newMin = xoffset - maxDiff ; - newMax = xoffset + maxDiff ; - pMin = (newMin < xMin) ? xMin : newMin ; - pMax = (newMax > xMax) ? xMax : newMax ; - } - break; + // Y limits cross max/min x => no change + // + pMin = xMin ; + pMax = xMax ; + } + else + { + // Y limits don't cross max/min x => compute max delta x, + // hence new mins/maxs + // + diff1 = sqrt(fRmax*fRmax - yoff1*yoff1) ; + diff2 = sqrt(fRmax*fRmax - yoff2*yoff2) ; + maxDiff = (diff1 > diff2) ? diff1:diff2 ; + newMin = xoffset - maxDiff ; + newMax = xoffset + maxDiff ; + pMin = (newMin < xMin) ? xMin : newMin ; + pMax = (newMax > xMax) ? xMax : newMax ; + } + break; case kYAxis: xoff1 = xoffset - xMin ; - xoff2 = xMax - xoffset ; + xoff2 = xMax - xoffset ; if (xoff1 >= 0 && xoff2 >= 0 ) { -// X limits cross max/min y => no change - + // X limits cross max/min y => no change + // pMin = yMin ; - pMax = yMax ; - } - else - { -// X limits don't cross max/min y => compute max delta y, hence new mins/maxs - + pMax = yMax ; + } + else + { + // X limits don't cross max/min y => compute max delta y, + // hence new mins/maxs + // diff1 = sqrt(fRmax*fRmax - xoff1*xoff1) ; - diff2 = sqrt(fRmax*fRmax - xoff2*xoff2) ; - maxDiff = (diff1 > diff2) ? diff1 : diff2 ; - newMin = yoffset - maxDiff ; - newMax = yoffset + maxDiff ; - pMin = (newMin < yMin) ? yMin : newMin ; - pMax = (newMax > yMax) ? yMax : newMax ; - } - break; + diff2 = sqrt(fRmax*fRmax - xoff2*xoff2) ; + maxDiff = (diff1 > diff2) ? diff1 : diff2 ; + newMin = yoffset - maxDiff ; + newMax = yoffset + maxDiff ; + pMin = (newMin < yMin) ? yMin : newMin ; + pMax = (newMax > yMax) ? yMax : newMax ; + } + break; case kZAxis: - pMin=zMin; - pMax=zMax; - break; + pMin=zMin; + pMax=zMax; + break; + default: break; } @@ -891,7 +910,7 @@ G4bool G4Torus::CalculateExtent(const EAxis pAxis, G4int i, noEntries, noBetweenSections4 ; G4bool existsAfterClip = false ; -// Calculate rotated vertex coordinates + // Calculate rotated vertex coordinates G4ThreeVectorList *vertices ; G4int noPolygonVertices ; // will be 4 @@ -902,7 +921,7 @@ G4bool G4Torus::CalculateExtent(const EAxis pAxis, noEntries = vertices->size() ; noBetweenSections4 = noEntries - noPolygonVertices ; - + for (i=0;i= tolRMin*tolRMin && pt2 <= tolRMax*tolRMax ) { if ( fDPhi == 2*M_PI || pt2 == 0 ) // on torus swept axis @@ -967,30 +986,32 @@ EInside G4Torus::Inside(const G4ThreeVector& p) const } else { -// Try inner tolerant phi boundaries (=>inside) -// if not inside, try outer tolerant phi boundaries + // Try inner tolerant phi boundaries (=>inside) + // if not inside, try outer tolerant phi boundaries pPhi = atan2(p.y(),p.x()) ; if ( pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2*M_PI if ( fSPhi >= 0 ) { - if ( pPhi >= fSPhi+kAngTolerance*0.5 && - pPhi <= fSPhi+fDPhi-kAngTolerance*0.5 ) in = kInside ; - - else if ( pPhi >= fSPhi-kAngTolerance*0.5 && - pPhi <= fSPhi+fDPhi+kAngTolerance*0.5 ) in = kSurface ; + if ( (pPhi >= fSPhi+kAngTolerance*0.5) + && (pPhi <= fSPhi+fDPhi-kAngTolerance*0.5) ) + in = kInside ; + else if ( (pPhi >= fSPhi-kAngTolerance*0.5) + && (pPhi <= fSPhi+fDPhi+kAngTolerance*0.5) ) + in = kSurface ; } else { if (pPhi < fSPhi+2*M_PI) pPhi += 2*M_PI ; - if ( pPhi >= fSPhi+2*M_PI+kAngTolerance*0.5 && - pPhi <= fSPhi+fDPhi+2*M_PI-kAngTolerance*0.5 ) in = kInside ; - - else if ( pPhi >= fSPhi+2*M_PI-kAngTolerance*0.5 && - pPhi <= fSPhi+fDPhi+2*M_PI+kAngTolerance*0.5) in = kSurface ; - } + if ( (pPhi >= fSPhi+2*M_PI+kAngTolerance*0.5) + && (pPhi <= fSPhi+fDPhi+2*M_PI-kAngTolerance*0.5) ) + in = kInside ; + else if ( (pPhi >= fSPhi+2*M_PI-kAngTolerance*0.5) + && (pPhi <= fSPhi+fDPhi+2*M_PI+kAngTolerance*0.5) ) + in = kSurface ; + } } } else // Try generous boundaries @@ -1010,20 +1031,22 @@ EInside G4Torus::Inside(const G4ThreeVector& p) const { pPhi = atan2(p.y(),p.x()) ; - if ( pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2*M_PI + if ( pPhi < 0 ) pPhi += 2*M_PI ; // 0<=pPhi<2*M_PI - if (fSPhi >= 0 ) + if (fSPhi >= 0 ) { - if( pPhi >= fSPhi-kAngTolerance*0.5 && - pPhi <= fSPhi+fDPhi+kAngTolerance*0.5) in = kSurface ; - } - else + if ( (pPhi >= fSPhi-kAngTolerance*0.5) + && (pPhi <= fSPhi+fDPhi+kAngTolerance*0.5) ) + in = kSurface ; + } + else { - if (pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; + if (pPhi < fSPhi + 2*M_PI) pPhi += 2*M_PI ; - if ( pPhi >= fSPhi+2*M_PI-kAngTolerance*0.5 && - pPhi <= fSPhi+fDPhi+2*M_PI+kAngTolerance*0.5 ) in = kSurface ; - } + if ( (pPhi >= fSPhi+2*M_PI-kAngTolerance*0.5) + && (pPhi <= fSPhi+fDPhi+2*M_PI+kAngTolerance*0.5) ) + in = kSurface ; + } } } } @@ -1036,7 +1059,7 @@ EInside G4Torus::Inside(const G4ThreeVector& p) const // - note if point on z axis, ignore phi divided sides // - unsafe if point close to z axis a rmin=0 - no explicit checks -G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const { ENorm side ; G4ThreeVector norm; @@ -1090,18 +1113,18 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p) const { if (distEPhi < distMin) side = kNEPhi ; } - } + } switch (side) { - case kNRMin: // Inner radius + case kNRMin: // Inner radius norm = G4ThreeVector( -p.x()*(1-fRtor/rho)/pt, - -p.y()*(1-fRtor/rho)/pt, - -p.z()/pt ) ; + -p.y()*(1-fRtor/rho)/pt, + -p.z()/pt ) ; break ; - case kNRMax: // Outer radius + case kNRMax: // Outer radius norm = G4ThreeVector( p.x()*(1-fRtor/rho)/pt, - p.y()*(1-fRtor/rho)/pt, - p.z()/pt ) ; + p.y()*(1-fRtor/rho)/pt, + p.z()/pt ) ; break; case kNSPhi: norm = G4ThreeVector(sin(fSPhi),-cos(fSPhi),0) ; @@ -1110,7 +1133,8 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p) const norm = G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0) ; break; default: - G4Exception("Logic error in G4Torus::SurfaceNormal"); + DumpInfo(); + G4Exception("G4Torus::SurfaceNormal() - Logic error"); break ; } return norm ; @@ -1138,54 +1162,44 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p) const // - Precalculations for phi trigonometry are Done `just in time' // - `if valid' implies tolerant checking of intersection points -G4double G4Torus::DistanceToIn(const G4ThreeVector& p, - const G4ThreeVector& v) const +G4double G4Torus::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const { - /* - On voudrait arriver a cela: - return SolveNumeric(p, v, true); - Mais des problemes avec la tolerance sur la section Phi - ne le permet pas pour le moment - */ - - /* - Le tore mathematique peut etre vu comme une equation implicite - */ - G4double snxt=kInfinity, sphi=kInfinity;// snxt = default return value + G4double snxt=kInfinity, sphi=kInfinity; // snxt = default return value G4double c[5], s[4] ; -// Precalculated trig for phi intersections - used by r,z intersections to -// check validity + // Precalculated trig for phi intersections - used by r,z intersections to + // check validity - G4bool seg; // true if segmented + G4bool seg; // true if segmented G4double hDPhi,hDPhiOT,hDPhiIT,cosHDPhiOT=0.,cosHDPhiIT=0.; - // half dphi + outer tolerance - G4double cPhi,sinCPhi=0.,cosCPhi=0.; // central phi + // half dphi + outer tolerance + G4double cPhi,sinCPhi=0.,cosCPhi=0.; // central phi - G4double tolORMin2,tolIRMin2; // `generous' radii squared + G4double tolORMin2,tolIRMin2; // `generous' radii squared G4double tolORMax2,tolIRMax2 ; G4double Dist,xi,yi,zi,rhoi2,it2,inum,cosPsi; // Intersection point variables G4double Comp; - G4double cosSPhi,sinSPhi; // Trig for phi start intersect - G4double ePhi,cosEPhi,sinEPhi; // for phi end intersect + G4double cosSPhi,sinSPhi; // Trig for phi start intersect + G4double ePhi,cosEPhi,sinEPhi; // for phi end intersect #if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn " << p << ", " << v << G4endl; + G4cout << "G4Torus::DistanceToIn " << p << ", " << v << G4endl; #endif -// Set phi divided flag and precalcs + // Set phi divided flag and precalcs if ( fDPhi < 2.0*M_PI ) { seg = true ; - hDPhi = 0.5*fDPhi ; // half delta phi + hDPhi = 0.5*fDPhi ; // half delta phi cPhi = fSPhi + hDPhi ; - hDPhiOT = hDPhi+0.5*kAngTolerance ; // outers tol' half delta phi + hDPhiOT = hDPhi+0.5*kAngTolerance ; // outers tol' half delta phi hDPhiIT = hDPhi - 0.5*kAngTolerance ; sinCPhi = sin(cPhi) ; cosCPhi = cos(cPhi) ; @@ -1207,7 +1221,7 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, tolORMax2 = (fRmax + 0.5*kRadTolerance)*(fRmax + 0.5*kRadTolerance) ; tolIRMax2 = (fRmax - kRadTolerance*0.5)*(fRmax - kRadTolerance*0.5) ; -// Intersection with Rmax (possible return) and Rmin (must also check phi) + // Intersection with Rmax (possible return) and Rmin (must also check phi) G4int i, j, num ; G4double Rtor2 = fRtor*fRtor, Rmax2 = fRmax*fRmax, Rmin2 = fRmin*fRmin ; @@ -1219,8 +1233,8 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, G4double pRad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; G4double vDotNmax = pDotV - fRtor*(v.x()*p.x() + v.y()*p.y())/rho ; -// Inside outer radius : -// check not inside, and heading through tubs (-> 0 to in) + // Inside outer radius : + // check not inside, and heading through tubs (-> 0 to in) if( pt2 <= tolORMax2 && pt2 >= tolIRMin2 && vDotNmax < 0 ) { @@ -1229,18 +1243,21 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, inum = p.x()*cosCPhi + p.y()*sinCPhi ; cosPsi = inum/rho ; - if (cosPsi>=cosHDPhiIT) { + if (cosPsi>=cosHDPhiIT) + { #if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (cosPsi>=cosHDPhiIT) "<< __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; + G4cout << "G4Torus::DistanceToIn (cosPsi>=cosHDPhiIT) " + << __LINE__ << G4endl << G4endl; +#endif + return snxt = 0 ; } - } - else { + else + { #if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (seg) "<< __LINE__ << G4endl << G4endl; -#endif + G4cout << "G4Torus::DistanceToIn (seg) " + << __LINE__ << G4endl << G4endl; +#endif return snxt = 0 ; } } @@ -1254,13 +1271,16 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmax2) + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmax2)*(Rtor2-Rmax2) ; - + + // Uncomment the line below for activating the analytical method + // // num = SolveBiQuadratic(c,s) ; - /* Numerical root research */ + // Numerical root research + // s[0] = SolveNumeric(p, v, true); num = 1; // There is only one root: the correct one - + #if DEBUGTORUS G4cout << "G4Torus::DistanceToIn (" << __LINE__ << ") SolveNumeric : " << s[0] << G4endl; @@ -1272,62 +1292,66 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, { if(s[i]= cosHDPhiIT) - { - snxt = s[i] ; - break ; - } - } - else - { - snxt = s[i] ; - break ; - } - } + if (cosPsi >= cosHDPhiIT) + { + snxt = s[i] ; + break ; + } + } + else + { + snxt = s[i] ; + break ; + } + } } } } - if (fRmin) // Possible Rmin intersection + if (fRmin) // Possible Rmin intersection { -// Inside relative to inner radius : -// check not inside, and heading through tubs (-> 0 to in) + // Inside relative to inner radius : + // check not inside, and heading through tubs (-> 0 to in) if( pt2 >= tolORMin2 && pt2 <= tolIRMax2 && vDotNmax > 0 ) { if (seg) { inum = p.x()*cosCPhi + p.y()*sinCPhi; - cosPsi = inum/rho ; + cosPsi = inum/rho ; - if (cosPsi>=cosHDPhiIT) { + if (cosPsi>=cosHDPhiIT) + { #if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (cosPsi>=cosHDPhiIT) "<< __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; - } + G4cout << "G4Torus::DistanceToIn (cosPsi>=cosHDPhiIT) " + << __LINE__ << G4endl << G4endl; +#endif + return snxt = 0 ; + } } - else { + else + { #if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (seg) "<< __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; + G4cout << "G4Torus::DistanceToIn (seg) " + << __LINE__ << G4endl << G4endl; +#endif + return snxt = 0 ; } } else // intersection with Rmin torus @@ -1340,10 +1364,12 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmin2) + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmin2)*(Rtor2-Rmin2) ; - + + // Uncomment the line below to activate the analytical method + // // num = SolveBiQuadratic(c,s) ; - /* Numerical root research */ + // Numerical root research // s[0] = s[0]; // We already take care of Rmin in SolveNumeric ! num = 1; @@ -1351,58 +1377,58 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, { for(i=0;i=kRadTolerance/2 roots P?! { - if(s[i] < kRadTolerance*0.5) + if(s[i] < kRadTolerance*0.5) { - for(j=i+1;j= cosHDPhiIT && s[i] < snxt ) - { - snxt = s[i] ; - break ; - } - } - else if(s[i] < snxt) - { - snxt = s[i] ; - break ; - } - } - } + if ( cosPsi >= cosHDPhiIT && s[i] < snxt ) + { + snxt = s[i] ; + break ; + } + } + else if(s[i] < snxt) + { + snxt = s[i] ; + break ; + } + } + } } } } // if(Rmin) - -// -// Phi segment intersection -// -// o Tolerant of points inside phi planes by up to kCarTolerance*0.5 -// -// o NOTE: Large duplication of code between sphi & ephi checks -// -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane -// intersection check <=0 -> >=0 -// -> use some form of loop Construct ? + + // + // Phi segment intersection + // + // o Tolerant of points inside phi planes by up to kCarTolerance*0.5 + // + // o NOTE: Large duplication of code between sphi & ephi checks + // -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane + // intersection check <=0 -> >=0 + // -> use some form of loop Construct ? if (seg) { sinSPhi = sin(fSPhi) ; // First phi surface (`S'tarting phi) cosSPhi = cos(fSPhi) ; - Comp = v.x()*sinSPhi - v.y()*cosSPhi ; // Compnent in outwards normal dirn - + Comp = v.x()*sinSPhi - v.y()*cosSPhi ; // Component in outwards + // normal direction if (Comp < 0 ) { Dist = (p.y()*cosSPhi - p.x()*sinSPhi) ; @@ -1410,31 +1436,31 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, if (Dist < kCarTolerance*0.5) { sphi = Dist/Comp ; - - if (sphi < snxt) - { - if ( sphi < 0 ) sphi = 0 ; + if (sphi < snxt) + { + if ( sphi < 0 ) sphi = 0 ; xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; - zi = p.z() + sphi*v.z() ; - rhoi2 = xi*xi + yi*yi ; + yi = p.y() + sphi*v.y() ; + zi = p.z() + sphi*v.z() ; + rhoi2 = xi*xi + yi*yi ; it2 = fabs(rhoi2 + zi*zi + Rtor2 - 2*fRtor*sqrt(rhoi2)) ; - if ( it2 >= tolORMin2 && it2 <= tolORMax2 ) - { -// r intersection is good - check intersecting with correct half-plane - - if ((yi*cosCPhi-xi*sinCPhi)<=0) snxt=sphi; - } - } + if ( it2 >= tolORMin2 && it2 <= tolORMax2 ) + { + // r intersection is good - check intersecting + // with correct half-plane + // + if ((yi*cosCPhi-xi*sinCPhi)<=0) snxt=sphi; + } + } } } ePhi=fSPhi+fDPhi; // Second phi surface (`E'nding phi) sinEPhi=sin(ePhi); cosEPhi=cos(ePhi); Comp=-(v.x()*sinEPhi-v.y()*cosEPhi); - + if ( Comp < 0 ) // Component in outwards normal dirn { Dist = -(p.y()*cosEPhi - p.x()*sinEPhi) ; @@ -1442,34 +1468,34 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, if (Dist < kCarTolerance*0.5 ) { sphi = Dist/Comp ; - - if (sphi < snxt ) - { - if (sphi < 0 ) sphi = 0 ; - + if (sphi < snxt ) + { + if (sphi < 0 ) sphi = 0 ; + xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; - zi = p.z() + sphi*v.z() ; - rhoi2 = xi*xi + yi*yi ; + yi = p.y() + sphi*v.y() ; + zi = p.z() + sphi*v.z() ; + rhoi2 = xi*xi + yi*yi ; it2 = fabs(rhoi2 + zi*zi + Rtor2 - 2*fRtor*sqrt(rhoi2)) ; - if (it2 >= tolORMin2 && it2 <= tolORMax2) - { -// z and r intersections good - check intersecting with correct half-plane - - if ((yi*cosCPhi-xi*sinCPhi)>=0) snxt=sphi; - } - } + if (it2 >= tolORMin2 && it2 <= tolORMax2) + { + // z and r intersections good - check intersecting + // with correct half-plane + // + if ((yi*cosCPhi-xi*sinCPhi)>=0) snxt=sphi; + } + } } } } if(snxt < 0.5*kCarTolerance) snxt = 0.0 ; #if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn Final Value is " << snxt << G4endl << G4endl; + G4cout << "G4Torus::DistanceToIn Final Value is " + << snxt << G4endl << G4endl; #endif - return snxt ; } @@ -1480,14 +1506,14 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p, // - Only to phi planes if outside phi extent // - Return 0 if point inside -G4double G4Torus::DistanceToIn(const G4ThreeVector& p) const +G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const { G4double safe, safe1, safe2 ; G4double phiC, cosPhiC, sinPhiC, safePhi, ePhi, cosPsi ; G4double rho2, rho, pt2, pt ; #if DEBUGTORUS - G4cout << G4endl ; + G4cout << G4endl ; #endif rho2 = p.x()*p.x() + p.y()*p.y() ; @@ -1517,7 +1543,7 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p) const else { ePhi = fSPhi + fDPhi ; - safePhi = fabs(p.x()*sin(ePhi) - p.y()*cos(ePhi)) ; + safePhi = fabs(p.x()*sin(ePhi) - p.y()*cos(ePhi)) ; } if (safePhi > safe) safe = safePhi ; } @@ -1530,29 +1556,28 @@ G4double G4Torus::DistanceToIn(const G4ThreeVector& p) const // // Calculate distance to surface of shape from `inside', allowing for tolerance // - Only Calc rmax intersection if no valid rmin intersection +// +// Problem: if the ray exit the torus from the surface, the only solution +// is epsilon (~ 0). +// Then this solution is eliminated by the loop (>= kRadTolerance) we have +// nothing. This results in 'invalid enum' +// solution: apply DistanceToIn() instead DistanceToOut() ? -/* - Problem: if the ray exit the torus from the surface, the only solution is epsilon (~ 0). - Then this solution is eliminated by the loop (>= kRadTolerance) we have nothing. - This results in 'invalid enum' - solution: apply DistanceToIn instead DistanceToOut ? - */ - -G4double G4Torus::DistanceToOut(const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const +G4double G4Torus::DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { ESide side = kNull, sidephi = kNull ; G4double snxt = kInfinity, sphi, c[5], s[4] ; - G4double sinSPhi, cosSPhi, ePhi, sinEPhi, cosEPhi;// Vars for phi intersection + // Vars for phi intersection + // + G4double sinSPhi, cosSPhi, ePhi, sinEPhi, cosEPhi; G4double cPhi, sinCPhi, cosCPhi ; - G4double pDistS, compS, pDistE, compE, sphi2, xi, yi, zi, vphi ; - // Radial Intersections Defenitions & General Precals // Define roots Si (generally real >=0) for intersection with @@ -1582,452 +1607,482 @@ G4double G4Torus::DistanceToOut(const G4ThreeVector& p, #endif if( pt2 > tolRMax*tolRMax && vDotNmax >= 0 ) + { + // On tolerant boundary & heading outwards (or perpendicular to) outer + // radial surface -> leaving immediately with *n for really convex part + // only + + if (calcNorm && pDotxyNmax >= -kRadTolerance) { - // On tolerant boundary & heading outwards (or perpendicular to) outer - // radial surface -> leaving immediately with *n for really convex part only - - if (calcNorm && pDotxyNmax >= -kRadTolerance) - { - *n = G4ThreeVector( p.x()*(1 - fRtor/rho)/pt, - p.y()*(1 - fRtor/rho)/pt, - p.z()/pt ) ; - *validNorm = true ; - } -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Leaving by Rmax immediately" << G4endl ; -#endif - return snxt = 0 ; // Leaving by Rmax immediately + *n = G4ThreeVector( p.x()*(1 - fRtor/rho)/pt, + p.y()*(1 - fRtor/rho)/pt, + p.z()/pt ) ; + *validNorm = true ; } +#if DEBUGTORUS + G4cout << "G4Torus::DistanceToOut Leaving by Rmax immediately" + << G4endl ; +#endif + return snxt = 0 ; // Leaving by Rmax immediately + } else // intersection with Rmax torus - { - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmax2 + 2*Rtor2*v.z()*v.z()) ; + { + c[4] = 1.0 ; + c[3] = 4*pDotV ; + c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmax2 + 2*Rtor2*v.z()*v.z()) ; + c[1] = 4*(pDotV*(pRad2-Rtor2-Rmax2) + 2*Rtor2*p.z()*v.z()) ; + c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmax2) + + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmax2)*(Rtor2-Rmax2) ; - c[1] = 4*(pDotV*(pRad2-Rtor2-Rmax2) + 2*Rtor2*p.z()*v.z()) ; + // Uncomment the line below to activate the analytical method + // + // num = SolveBiQuadratic(c,s) ; - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmax2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmax2)*(Rtor2-Rmax2) ; - - //num = SolveBiQuadratic(c,s) ; - /* Numerical root research */ - s[0] = SolveNumeric( p, v, false); - num = 1; // There is only one root. + // Numerical root research + s[0] = SolveNumeric( p, v, false); + num = 1; // There is only one root. #if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut (" << __LINE__ << ") SolveNumeric : " << s[0] << G4endl ; + G4cout << "G4Torus::DistanceToOut (" << __LINE__ + << ") SolveNumeric : " << s[0] << G4endl ; #endif - if(num) - { - for(i=0;i=kRadTolerance/2 roots - { - if( s[i] < kRadTolerance*0.5 ) - { - for(j=i+1;jkRadTolerance*0.5 - avoid sqrt for efficiency - if (pt2 < tolRMin*tolRMin && vDotNmax < 0 ) - { - if (calcNorm) *validNorm = false ; // Concave surface of the torus -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Leaving by Rmin immediately" << G4endl ; -#endif - return snxt = 0 ; // Leaving by Rmin immediately - } - else // intersection with Rmin torus - { - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmin2 + 2*Rtor2*v.z()*v.z()) ; - - c[1] = 4*(pDotV*(pRad2-Rtor2-Rmin2) + 2*Rtor2*p.z()*v.z()) ; - - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmin2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmin2)*(Rtor2-Rmin2) ; - - // num = SolveBiQuadratic(c,s) ; - // s[0] = s[0]; // We already take care of Rmin in SolveNumeric - num = 1; - - if(num) - { - for(i=0;i=kRadTolerance/2 roots - { - if(s[i] < kRadTolerance*0.5) - { - for(j=i+1;j no intersect) - if ((yi*cosCPhi-xi*sinCPhi)>=0) - sphi=kInfinity; - else - { - sidephi=kSPhi; - if (pDistS>-kCarTolerance*0.5) - sphi=0; - // Leave by sphi immediately - } - } - else sphi=kInfinity; - - if (compE<0) - { - sphi2=pDistE/compE; - // Only check further if < starting phi intersection - if (sphi2=0) - { - // Leaving via ending phi - sidephi=kEPhi; - if (pDistE<=-kCarTolerance*0.5) - { - sphi=sphi2; - } - else - { - sphi=0; - } - } - } - } - - } - else if (pDistS>=0&&pDistE>=0) - { - // Outside both *full* phi planes - if (pDistS <= pDistE) - { - sidephi = kSPhi ; - } - else - { - sidephi = kEPhi ; - } - if (fDPhi>M_PI) - { - if (compS<0&&compE<0) sphi=0; - else sphi=kInfinity; - } - else - { - // if towards both >=0 then once inside (after error) will remain inside - if (compS>=0&&compE>=0) - { - sphi=kInfinity; - } - else - { - sphi=0; - } - } - - } - else if (pDistS>0&&pDistE<0) - { - // Outside full starting plane, inside full ending plane - if (fDPhi>M_PI) - { - if (compE<0) - { - sphi=pDistE/compE; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - // Check intersection in correct half-plane (if not -> not leaving phi extent) - if ((yi*cosCPhi-xi*sinCPhi)<=0) - { - sphi=kInfinity; - } - else - { - // Leaving via Ending phi - sidephi = kEPhi ; - if (pDistE>-kCarTolerance*0.5) - sphi=0; - } - } - else - { - sphi=kInfinity; - } - } - else - { - if (compS>=0) - { - if (compE<0) - { - - sphi=pDistE/compE; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - // Check intersection in correct half-plane (if not -> remain in extent) - if ((yi*cosCPhi-xi*sinCPhi)<=0) - { - sphi=kInfinity; - } - else - { - // otherwise leaving via Ending phi - sidephi=kEPhi; - } - } - else sphi=kInfinity; - } - else - { - // leaving immediately by starting phi - sidephi=kSPhi; - sphi=0; - } - } - } - else - { - // Must be pDistS<0&&pDistE>0 - // Inside full starting plane, outside full ending plane - if (fDPhi>M_PI) - { - if (compS<0) - { - sphi=pDistS/compS; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - // Check intersection in correct half-plane (if not -> not leaving phi extent) - if ((yi*cosCPhi-xi*sinCPhi)>=0) - { - sphi=kInfinity; - } - else - { - // Leaving via Starting phi - sidephi = kSPhi ; - if (pDistS>-kCarTolerance*0.5) - sphi=0; - } - } - else - { - sphi=kInfinity; - } - } - else - { - if (compE>=0) - { - if (compS<0) - { - - sphi=pDistS/compS; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - // Check intersection in correct half-plane (if not -> remain in extent) - if ((yi*cosCPhi-xi*sinCPhi)>=0) - { - sphi=kInfinity; - } - else - { - // otherwise leaving via Starting phi - sidephi=kSPhi; - } - } - else - { - sphi=kInfinity; - } - } - else - { - // leaving immediately by ending - sidephi=kEPhi; - sphi=0; - } - } - } - - } - else - { - // On z axis + travel not || to z axis -> if phi of vector direction - // within phi of shape, Step limited by rmax, else Step =0 - vphi=atan2(v.y(),v.x()); - if (fSPhi=kRadTolerance/2 roots + { + if( s[i] < kRadTolerance*0.5 ) + { + for(j=i+1;jkRadTolerance*0.5 + // - avoid sqrt for efficiency + // + if (pt2 < tolRMin*tolRMin && vDotNmax < 0 ) + { + if (calcNorm) *validNorm = false ; // Concave surface of the torus +#if DEBUGTORUS + G4cout << "G4Torus::DistanceToOut Leaving by Rmin immediately" + << G4endl ; +#endif + return snxt = 0 ; // Leaving by Rmin immediately + } + else // intersection with Rmin torus + { + c[4] = 1.0 ; + c[3] = 4*pDotV ; + c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmin2 + 2*Rtor2*v.z()*v.z()) ; + c[1] = 4*(pDotV*(pRad2-Rtor2-Rmin2) + 2*Rtor2*p.z()*v.z()) ; + c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmin2) + + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmin2)*(Rtor2-Rmin2) ; + + // Uncomment the line below to activate the analytical method + // + // num = SolveBiQuadratic(c,s) ; + // s[0] = s[0]; // We already take care of Rmin in SolveNumeric + num = 1; + + if(num) + { + for(i=0;i=kRadTolerance/2 roots + { + if(s[i] < kRadTolerance*0.5) + { + for(j=i+1;j no intersect) + // + if ((yi*cosCPhi-xi*sinCPhi)>=0) + sphi=kInfinity; + else + { + sidephi=kSPhi; + if (pDistS>-kCarTolerance*0.5) + sphi=0; + // Leave by sphi immediately + } + } + else sphi=kInfinity; + + if (compE<0) + { + sphi2=pDistE/compE; + + // Only check further if < starting phi intersection + // + if (sphi2=0) + { + // Leaving via ending phi + // + sidephi=kEPhi; + if (pDistE<=-kCarTolerance*0.5) + { + sphi=sphi2; + } + else + { + sphi=0; + } + } + } + } + } + else if (pDistS>=0&&pDistE>=0) + { + // Outside both *full* phi planes + + if (pDistS <= pDistE) + { + sidephi = kSPhi ; + } + else + { + sidephi = kEPhi ; + } + if (fDPhi>M_PI) + { + if (compS<0&&compE<0) sphi=0; + else sphi=kInfinity; + } + else + { + // if towards both >=0 then once inside (after error) + // will remain inside + // + if (compS>=0&&compE>=0) + { + sphi=kInfinity; + } + else + { + sphi=0; + } + } + } + else if (pDistS>0&&pDistE<0) + { + // Outside full starting plane, inside full ending plane + + if (fDPhi>M_PI) + { + if (compE<0) + { + sphi=pDistE/compE; + xi=p.x()+sphi*v.x(); + yi=p.y()+sphi*v.y(); + + // Check intersection in correct half-plane (if not -> not leaving phi extent) + // + if ((yi*cosCPhi-xi*sinCPhi)<=0) + { + sphi=kInfinity; + } + else + { + // Leaving via Ending phi + // + sidephi = kEPhi ; + if (pDistE>-kCarTolerance*0.5) + sphi=0; + } + } + else + { + sphi=kInfinity; + } + } + else + { + if (compS>=0) + { + if (compE<0) + { + sphi=pDistE/compE; + xi=p.x()+sphi*v.x(); + yi=p.y()+sphi*v.y(); + + // Check intersection in correct half-plane + // (if not -> remain in extent) + // + if ((yi*cosCPhi-xi*sinCPhi)<=0) + { + sphi=kInfinity; + } + else + { + // otherwise leaving via Ending phi + // + sidephi=kEPhi; + } + } + else sphi=kInfinity; + } + else + { + // leaving immediately by starting phi + // + sidephi=kSPhi; + sphi=0; + } + } + } + else + { + // Must be pDistS<0&&pDistE>0 + // Inside full starting plane, outside full ending plane + + if (fDPhi>M_PI) + { + if (compS<0) + { + sphi=pDistS/compS; + xi=p.x()+sphi*v.x(); + yi=p.y()+sphi*v.y(); + + // Check intersection in correct half-plane + // (if not -> not leaving phi extent) + // + if ((yi*cosCPhi-xi*sinCPhi)>=0) + { + sphi=kInfinity; + } + else + { + // Leaving via Starting phi + // + sidephi = kSPhi ; + if (pDistS>-kCarTolerance*0.5) + sphi=0; + } + } + else + { + sphi=kInfinity; + } + } + else + { + if (compE>=0) + { + if (compS<0) + { + sphi=pDistS/compS; + xi=p.x()+sphi*v.x(); + yi=p.y()+sphi*v.y(); + + // Check intersection in correct half-plane + // (if not -> remain in extent) + // + if ((yi*cosCPhi-xi*sinCPhi)>=0) + { + sphi=kInfinity; + } + else + { + // otherwise leaving via Starting phi + // + sidephi=kSPhi; + } + } + else + { + sphi=kInfinity; + } + } + else + { + // leaving immediately by ending + // + sidephi=kEPhi; + sphi=0; + } + } + } + } + else + { + // On z axis + travel not || to z axis -> if phi of vector direction + // within phi of shape, Step limited by rmax, else Step =0 + + vphi=atan2(v.y(),v.x()); + if (fSPhi= -kRadTolerance) // really convex part of Rmax + { + *n = G4ThreeVector( xi*(1-fRtor/rhoi)/it, + yi*(1-fRtor/rhoi)/it, + zi/it ) ; + *validNorm = true ; + } + else *validNorm = false ; // concave-convex part of Rmax + break ; - if(iDotxyNmax >= -kRadTolerance) // really convex part of Rmax - { - *n = G4ThreeVector( xi*(1-fRtor/rhoi)/it, - yi*(1-fRtor/rhoi)/it, - zi/it ) ; - *validNorm = true ; - } - else *validNorm = false ; // concave-convex part of Rmax - break ; - - case kRMin: + case kRMin: #if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Side is RMin" << G4endl ; + G4cout << "G4Torus::DistanceToOut Side is RMin" << G4endl ; #endif - *validNorm = false ; // Rmin is concave or concave-convex - break; + *validNorm = false ; // Rmin is concave or concave-convex + break; - case kSPhi: + case kSPhi: #if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Side is SPhi" << G4endl ; + G4cout << "G4Torus::DistanceToOut Side is SPhi" << G4endl ; #endif - if (fDPhi <= M_PI ) - { - *n=G4ThreeVector(sin(fSPhi),-cos(fSPhi),0); - *validNorm=true; - } - else *validNorm = false ; - break ; + if (fDPhi <= M_PI ) + { + *n=G4ThreeVector(sin(fSPhi),-cos(fSPhi),0); + *validNorm=true; + } + else *validNorm = false ; + break ; - case kEPhi: + case kEPhi: #if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Side is EPhi" << G4endl ; + G4cout << "G4Torus::DistanceToOut Side is EPhi" << G4endl ; #endif - if (fDPhi <= M_PI) - { - *n=G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0); - *validNorm=true; - } - else *validNorm = false ; - break; + if (fDPhi <= M_PI) + { + *n=G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0); + *validNorm=true; + } + else *validNorm = false ; + break; - default: + default: - /* It seems we go here from time to time .. - G4cout << "Side is " << side << G4endl ; - G4cout << "Valid ESide are :" << kNull << " " << kRMin << " " << kRMax - << " " << kSPhi << " " << kEPhi << G4endl; - */ - G4cout.precision(16); - G4cout << G4endl; - G4cout << "Torus parameters:" << G4endl << G4endl; - G4cout << "fRmin = " << fRmin/mm << " mm" << G4endl; - G4cout << "fRmax = " << fRmax/mm << " mm" << G4endl; - G4cout << "fRtor = " << fRtor/mm << " mm" << G4endl; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl; - G4cout << "Position:" << G4endl << G4endl; - G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; - G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; - G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl; - G4cout << "Direction:" << G4endl << G4endl; - G4cout << "v.x() = " << v.x() << G4endl; - G4cout << "v.y() = " << v.y() << G4endl; - G4cout << "v.z() = " << v.z() << G4endl << G4endl; - G4cout << "Proposed distance :" << G4endl << G4endl; - G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; - - G4Exception("Invalid enum in G4Torus::DistanceToOut"); - break; - } + // It seems we go here from time to time ... + // + // G4cout << "Side is " << side << G4endl ; + // G4cout << "Valid ESide are :" << kNull << " " + // << kRMin << " " << kRMax + // << " " << kSPhi << " " << kEPhi << G4endl; + + G4cout.precision(16); + G4cout << G4endl; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl; + G4cout << "Direction:" << G4endl << G4endl; + G4cout << "v.x() = " << v.x() << G4endl; + G4cout << "v.y() = " << v.y() << G4endl; + G4cout << "v.z() = " << v.z() << G4endl << G4endl; + G4cout << "Proposed distance :" << G4endl << G4endl; + G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; + G4Exception("G4Torus::DistanceToOut() - Invalid enum"); + break; } + } #if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Final Value is " << snxt << G4endl << G4endl; + G4cout << "G4Torus::DistanceToOut Final Value is " + << snxt << G4endl << G4endl; #endif return snxt; @@ -2035,9 +2090,9 @@ G4double G4Torus::DistanceToOut(const G4ThreeVector& p, ///////////////////////////////////////////////////////////////////////// // -// Calcluate distance (<=actual) to closest surface of shape from inside +// Calculate distance (<=actual) to closest surface of shape from inside -G4double G4Torus::DistanceToOut(const G4ThreeVector& p) const +G4double G4Torus::DistanceToOut( const G4ThreeVector& p ) const { G4double safe,safeR1,safeR2; G4double rho2,rho,pt2,pt ; @@ -2052,22 +2107,17 @@ G4double G4Torus::DistanceToOut(const G4ThreeVector& p) const { G4cout.precision(16) ; G4cout << G4endl ; - G4cout << "Torus parameters:" << G4endl << G4endl ; - G4cout << "fRmin = " << fRmin/mm << " mm" << G4endl ; - G4cout << "fRmax = " << fRmax/mm << " mm" << G4endl ; - G4cout << "fRtor = " << fRtor/mm << " mm" << G4endl ; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl << G4endl ; + DumpInfo(); G4cout << "Position:" << G4endl << G4endl ; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; G4cout << "G4Torus::DistanceToOut(p) - point p is outside ?!" << G4endl ; - // G4Exception("Invalid call in G4Torus::DistanceToOut(p), point p is outside") ; + G4cerr << "G4Torus::DistanceToOut(p) - point p is outside ?!" << G4endl ; } #endif #if DEBUGTORUS - G4cout << G4endl ; + G4cout << G4endl ; #endif if (fRmin) @@ -2100,7 +2150,7 @@ G4double G4Torus::DistanceToOut(const G4ThreeVector& p) const if (safePhi < safe) safe = safePhi ; } if (safe < 0) safe = 0 ; - return safe ; + return safe ; } ///////////////////////////////////////////////////////////////////////////// @@ -2115,8 +2165,8 @@ G4double G4Torus::DistanceToOut(const G4ThreeVector& p) const // to avoid rounding error problems. G4ThreeVectorList* - G4Torus::CreateRotatedVertices(const G4AffineTransform& pTransform, - G4int& noPolygonVertices) const +G4Torus::CreateRotatedVertices( const G4AffineTransform& pTransform, + G4int& noPolygonVertices ) const { G4ThreeVectorList *vertices; G4ThreeVector vertex0,vertex1,vertex2,vertex3; @@ -2139,8 +2189,8 @@ G4ThreeVectorList* meshAngle = fDPhi/(noCrossSections - 1) ; meshRMax = (fRtor + fRmax)/cos(meshAngle*0.5) ; -// If complete in phi, set start angle such that mesh will be at fRmax -// on the x axis. Will give better extent calculations when not rotated. + // If complete in phi, set start angle such that mesh will be at fRmax + // on the x axis. Will give better extent calculations when not rotated. if ( fDPhi == M_PI*2.0 && fSPhi == 0 ) { @@ -2157,40 +2207,71 @@ G4ThreeVectorList* { for (crossSection=0;crossSectionpush_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(vertex0)); + vertices->push_back(pTransform.TransformPoint(vertex1)); + vertices->push_back(pTransform.TransformPoint(vertex2)); + vertices->push_back(pTransform.TransformPoint(vertex3)); } noPolygonVertices = 4 ; } else { - G4Exception("G4Torus::CreateRotatedVertices - Out of memory !"); + DumpInfo(); + G4Exception("G4Torus::CreateRotatedVertices() - Out of memory !"); } return vertices; } +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4GeometryType G4Torus::GetEntityType() const +{ + return G4String("G4Torus"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Torus::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Torus\n" + << " Parameters: \n" + << " inner radius: " << fRmin/mm << " mm \n" + << " outer radius: " << fRmax/mm << " mm \n" + << " swept radius: " << fRtor/mm << " mm \n" + << " starting phi: " << fSPhi/degree << " degrees \n" + << " delta phi : " << fDPhi/degree << " degrees \n" + << "-----------------------------------------------------------\n"; + + return os; +} + /////////////////////////////////////////////////////////////////////// // -// No implementation for Visualisation Functions +// Visualisation Functions -void G4Torus::DescribeYourselfTo (G4VGraphicsScene& scene) const +void G4Torus::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { scene.AddThis (*this); } @@ -2207,11 +2288,11 @@ G4NURBS* G4Torus::CreateNURBS () const { if (fDPhi >= 2.0 * M_PI) { - pNURBS = new G4NURBStube (fRmin, fRmax, fRtor); + pNURBS = new G4NURBStube(fRmin, fRmax, fRtor); } else { - pNURBS = new G4NURBStubesector (fRmin, fRmax, fRtor, fSPhi, fSPhi + fDPhi); + pNURBS = new G4NURBStubesector(fRmin, fRmax, fRtor, fSPhi, fSPhi + fDPhi); } } else @@ -2224,307 +2305,363 @@ G4NURBS* G4Torus::CreateNURBS () const { const G4double epsilon = 1.e-4; // Cylinder sector not yet available! pNURBS = new G4NURBStubesector (epsilon, fRmax, fRtor, - fSPhi, fSPhi + fDPhi); + fSPhi, fSPhi + fDPhi); } } return pNURBS; } - -// -// E.Medernach +// -------------------------------------------------------------------- +// Numerical algorithms implementations // - -/** Important : the precision could be tuned by TORUSPRECISION **/ +// Important : the precision could be tuned by TORUSPRECISION #define TORUSPRECISION 1.0 // or whatever you want for precision // (it is TorusEquation related) #define HOLEBVM 0 #define NBPOINT 6 +// -------------------------------------------------------------------- -/* - Torus implementation with Newton Method and Bounding volume - */ +/////////////////////////////////////////////////////////////////////// +// +// Torus implementation with Newton Method and Bounding volume +// +// For speed issue, we lose time *only* when intersecting the BVM +// and SafeNewton when it is called. -/* - For speed issue, we lose time *only* when intersecting the BVM - and SafeNewton when it is called. - */ - -G4double G4Torus::SolveNumeric(const G4ThreeVector& p, - const G4ThreeVector& v, - G4bool IsDistanceToIn) const +G4double G4Torus::SolveNumeric( const G4ThreeVector& p, + const G4ThreeVector& v, + G4bool IsDistanceToIn ) const { - /* This methods is a front-end to the numerical computation of roots */ - /* In fact this computation take care only of a perfect Torus */ - /* So here we add Phi section/Tolerance/Rinterior */ + // This method is a front-end to the numerical computation of roots + // In fact this computation takes care only of a perfect Torus + // So here we add Phi section/Tolerance/Rinterior /*** SolveNumeric ***/ /** Conditions **/ - /** - if original point inside check for interior torus before **/ - /** - on surface it depends on the direction **/ - /** - the intersection point must be between fSPhi and fSPhi+fDPhi **/ - /** - If on the surface it depends on DistanceToOut or DistanceToIn : - a ray from the surface to In called with DistanceToIn return 0.0 - and with DistanceToOut return the second intersection point **/ + // - if original point inside check for interior torus before + // - on surface it depends on the direction + // - the intersection point must be between fSPhi and fSPhi+fDPhi + // - If on the surface it depends on DistanceToOut or DistanceToIn : + // a ray from the surface to In called with DistanceToIn return 0.0 + // and with DistanceToOut return the second intersection point G4double lambda = 0; G4double Value = TorusEquation(p.x(),p.y(),p.z(),GetRtor(),GetRmax()); EInside inside ; - #if DEBUGTORUS G4cout << "G4Torus::SolveNumeric " << p << ", " << v << G4endl ; G4cout << "G4Torus::SolveNumeric Value = " << Value << G4endl; #endif - - if (Value < -TORUSPRECISION) { + if (Value < -TORUSPRECISION) + { inside = kInside ; - } else { - if (Value > TORUSPRECISION) { + } + else + { + if (Value > TORUSPRECISION) + { inside = kOutside; - } else { + } + else + { inside = kSurface; } } - - switch (inside) { - case kInside: -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Inside Rmax Torus " - << " Rtor = " << GetRtor() - << " Rmax = " << GetRmax() << G4endl ; -#endif - if (fabs(GetRmin()) > POLEPSILON) { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Testing interior torus .." << G4endl ; -#endif - lambda = DistanceToTorus(p.x(),p.y(),p.z(),v.x(),v.y(),v.z(), - GetRtor(),GetRmin()); //Interior torus + switch (inside) + { + case kInside: #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric lambda to interior torus =" - << lambda << G4endl ; - G4cout << "G4Torus::SolveNumeric Tolerance is " - << kCarTolerance << G4endl ; -#endif - /** Now check if on surface from interior torus **/ - - /* PROBLEM: This may be a problem of precision - if we are near kCarTolerance ... */ - if (fabs(lambda) < kCarTolerance) { - G4double Lx,Ly,Lz; - G4double scal; -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric In fact on the Surface of Rmin torus" - << G4endl ; + G4cout << "G4Torus::SolveNumeric Point is Inside Rmax Torus " + << " Rtor = " << GetRtor() + << " Rmax = " << GetRmax() << G4endl ; #endif - /* Compute Surface point */ - Lx = p.x() + lambda*v.x(); - Ly = p.y() + lambda*v.y(); - Lz = p.z() + lambda*v.z(); - /* Scalar product */ - scal = v.x()*TorusDerivativeX(Lx,Ly,Lz,GetRtor(),GetRmin()); - scal += v.y()*TorusDerivativeY(Lx,Ly,Lz,GetRtor(),GetRmin()); - scal += v.z()*TorusDerivativeZ(Lx,Ly,Lz,GetRtor(),GetRmin()); - /* if entering and if it is DistToIn it is 0.0, */ - /* but in fact it is the opposite because it is the interior torus */ - /* beware that this could be DistanceToOut */ - if ((IsDistanceToIn == true) && (scal > 0.0)) { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Entering Surface from Rmin Torus Gradient: " - << scal << G4endl ; -#endif - /* DistanceToIn return 0.0 */ - lambda = 0.0; - } else { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Exiting Surface (Recalculating) or DistanceToOut from surface" - << G4endl ; - G4cout << "G4Torus::SolveNumeric Recursive call lambda..." - << lambda << G4endl << G4endl; -#endif - /* else it is not necessary infinity !! - (we could reach the opposite side..) */ - /* To reach the opposite side we remark that from Surface - the sphere of radius min((Rmax - Rmin)/2, Rmin) does not - hit 2 surface of the torus so it is safe to do that way */ - - if ((GetRmax() - GetRmin())/2.0 < GetRmin()) { - lambda = SolveNumeric(p+((GetRmax() - GetRmin())/2.0)*v,v,IsDistanceToIn) + (GetRmax() - GetRmin())/2.0; - } else { - lambda = SolveNumeric(p+GetRmin()*v,v,IsDistanceToIn) + GetRmin(); - } + if (fabs(GetRmin()) > POLEPSILON) + { #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric --> Recursive call: lambda = " - << lambda << G4endl; + G4cout << "G4Torus::SolveNumeric Testing interior torus .." + << G4endl ; #endif - } - } else { - /* PROBLEM : could be better done ? */ - - G4double lambdaToRmax = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - if (lambda >= lambdaToRmax) { + lambda = DistanceToTorus(p.x(),p.y(),p.z(),v.x(),v.y(),v.z(), + GetRtor(),GetRmin()); //Interior torus + #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point does not hit the Rmin torus from here" << G4endl; + G4cout << "G4Torus::SolveNumeric lambda to interior torus =" + << lambda << G4endl ; + G4cout << "G4Torus::SolveNumeric Tolerance is " + << kCarTolerance << G4endl ; #endif - lambda = lambdaToRmax; - } else { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric We hit the Rmin torus with " - << lambda << G4endl; - G4cout << "G4Torus::SolveNumeric Note that this could be small and not in Tolerance resulting in wrong result " - << G4endl ; + + // Now check if on surface from interior torus + // + // PROBLEM: This may be a problem of precision + // if we are near kCarTolerance ... + // + if (fabs(lambda) < kCarTolerance) + { + G4double Lx,Ly,Lz; + G4double scal; +#if DEBUGTORUS + G4cout << "G4Torus::SolveNumeric" + << " In fact on the Surface of Rmin torus" + << G4endl ; #endif - } + + // Compute Surface point + // + Lx = p.x() + lambda*v.x(); + Ly = p.y() + lambda*v.y(); + Lz = p.z() + lambda*v.z(); + + // Scalar product + // + scal = v.x()*TorusDerivativeX(Lx,Ly,Lz,GetRtor(),GetRmin()); + scal += v.y()*TorusDerivativeY(Lx,Ly,Lz,GetRtor(),GetRmin()); + scal += v.z()*TorusDerivativeZ(Lx,Ly,Lz,GetRtor(),GetRmin()); + + // if entering and if it is DistToIn it is 0.0, + // but in fact it is the opposite because it is the interior torus + // beware that this could be DistanceToOut + + if ( (IsDistanceToIn == true) && (scal > 0.0) ) + { +#if DEBUGTORUS + G4cout << "G4Torus::SolveNumeric" + << " Entering Surface from Rmin Torus Gradient: " + << scal << G4endl ; +#endif + + // DistanceToIn returns 0.0 + // + lambda = 0.0; + } + else + { +#if DEBUGTORUS + G4cout << "G4Torus::SolveNumeric" + << " Exiting Surface (Recalculating) or DistanceToOut" + << " from surface" + << G4endl ; + G4cout << "G4Torus::SolveNumeric Recursive call lambda..." + << lambda << G4endl << G4endl; +#endif + // else it is not necessarily infinity !! + // (we could reach the opposite side..) + // To reach the opposite side we remark that from Surface + // the sphere of radius min((Rmax - Rmin)/2, Rmin) does not + // hit 2 surfaces of the torus so it is safe to do that way + + if ((GetRmax() - GetRmin())/2.0 < GetRmin()) + { + lambda = + SolveNumeric(p+((GetRmax()-GetRmin())/2.0)*v,v,IsDistanceToIn) + + (GetRmax() - GetRmin())/2.0; + } + else + { + lambda = + SolveNumeric(p+GetRmin()*v,v,IsDistanceToIn) + GetRmin(); + } + +#if DEBUGTORUS + G4cout << "G4Torus::SolveNumeric --> Recursive call: lambda = " + << lambda << G4endl; +#endif + } + } + else + { + // PROBLEM : could this be better done ? + + G4double lambdaToRmax = DistanceToTorus(p.x(),p.y(),p.z(), + v.x(),v.y(),v.z(), + GetRtor(),GetRmax()); + if (lambda >= lambdaToRmax) + { +#if DEBUGTORUS + G4cout << "G4Torus::SolveNumeric" + << " Point does not hit the Rmin torus from here" + << G4endl; +#endif + lambda = lambdaToRmax; + } + else + { +#if DEBUGTORUS + G4cout << "G4Torus::SolveNumeric We hit the Rmin torus with " + << lambda << G4endl; + G4cout << "G4Torus::SolveNumeric Note that this could be small " + << "and not in Tolerance resulting in wrong result " + << G4endl ; +#endif + } + } } - } else { - /* It is a whole torus */ - - lambda = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - } - break; - case kSurface: - { - G4double Lx,Ly,Lz; - G4double scal; + else + { + // It is a whole torus + // + lambda = DistanceToTorus(p.x(),p.y(),p.z(), + v.x(),v.y(),v.z(), + GetRtor(),GetRmax()); + } + break; + case kSurface: + { + G4double Lx,Ly,Lz; + G4double scal; #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is on the Rmax Surface" - << G4endl ; + G4cout << "G4Torus::SolveNumeric Point is on the Rmax Surface" + << G4endl ; #endif - /* It is possible with Phi that this is not the correct point */ - lambda = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - /* Compute Surface point */ - Lx = p.x() + lambda*v.x(); - Ly = p.y() + lambda*v.y(); - Lz = p.z() + lambda*v.z(); - /* Scalar product */ - scal = v.x()*TorusDerivativeX(Lx,Ly,Lz,GetRtor(),GetRmax()); - scal += v.y()*TorusDerivativeY(Lx,Ly,Lz,GetRtor(),GetRmax()); - scal += v.z()*TorusDerivativeZ(Lx,Ly,Lz,GetRtor(),GetRmax()); - - /* if entering it is < 0.0 */ - if ((IsDistanceToIn) && (scal < 0.0)) { + // It is possible with Phi that this is not the correct point + // + lambda = DistanceToTorus(p.x(),p.y(),p.z(), + v.x(),v.y(),v.z(), + GetRtor(),GetRmax()); + // Compute Surface point + // + Lx = p.x() + lambda*v.x(); + Ly = p.y() + lambda*v.y(); + Lz = p.z() + lambda*v.z(); + + // Scalar product + scal = v.x()*TorusDerivativeX(Lx,Ly,Lz,GetRtor(),GetRmax()); + scal += v.y()*TorusDerivativeY(Lx,Ly,Lz,GetRtor(),GetRmax()); + scal += v.z()*TorusDerivativeZ(Lx,Ly,Lz,GetRtor(),GetRmax()); + + // if entering it is < 0.0 + // + if ( (IsDistanceToIn) && (scal < 0.0) ) + { #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Entering Surface " - << scal << G4endl ; + G4cout << "G4Torus::SolveNumeric Point is Entering Surface " + << scal << G4endl ; #endif - lambda = 0.0; - } else { + lambda = 0.0; + } + else + { #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Exiting Surface or DistanceToOut " - << scal << G4endl ; - G4cout << "Recursive call ..." << G4endl << G4endl ; + G4cout << "G4Torus::SolveNumeric Point is Exiting Surface " + << "or DistanceToOut " << scal << G4endl ; + G4cout << "Recursive call ..." << G4endl << G4endl ; #endif - /* To reach the opposite side we remark that from Surface the sphere of radius (Rmax - Rmin)/2 - does not hit 2 surface of the torus so it is safe to do that way */ - //lambda = SolveNumeric(p+(lambda + kCarTolerance)*v,v,IsDistanceToIn); - lambda = SolveNumeric(p+((GetRmax() - GetRmin())/2.0)*v, - v, IsDistanceToIn) - + (GetRmax() - GetRmin())/2.0; + // To reach the opposite side we remark that from Surface the + // sphere of radius (Rmax - Rmin)/2 does not hit 2 surfaces of + // the torus so it is safe to do that way + // lambda = SolveNumeric(p+(lambda + kCarTolerance)*v, + // v,IsDistanceToIn); + // + lambda = + SolveNumeric(p+((GetRmax()-GetRmin())/2.0)*v, v, IsDistanceToIn) + + (GetRmax() - GetRmin())/2.0; #if DEBUGTORUS - G4cout << "Recursive call ...END" << G4endl ; + G4cout << "Recursive call ...END" << G4endl ; #endif - } - } - break; - case kOutside: + } + } + break; + case kOutside: #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Outside the Rmax torus" - << G4endl ; + G4cout << "G4Torus::SolveNumeric Point is Outside the Rmax torus" + << G4endl ; #endif - - lambda = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - break; + + lambda = DistanceToTorus(p.x(),p.y(),p.z(), + v.x(),v.y(),v.z(), + GetRtor(),GetRmax()); + break; } if (lambda == kInfinity) return lambda; #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Intersection found. Now checking Phi angles" - << G4endl ; + G4cout << "G4Torus::SolveNumeric Intersection found. " + << "Now checking Phi angles" << G4endl ; #endif - /** Ok we have a lambda that is correct without Phi **/ - /** Now check Phi .. **/ + // Ok we have a lambda that is correct without Phi + // Now check Phi .. - /* Eliminate the case of point (0,0,0) */ - // if ((p.x()*p.x() + p.y()*p.y() + p.z()*p.z()) > POLEPSILON) + // Eliminate the case of point (0,0,0) + // if (((p.x()+ lambda*v.x())*(p.x()+ lambda*v.x()) + (p.y()+ lambda*v.y())*(p.y()+ lambda*v.y()) + (p.z()+ lambda*v.z())*(p.z()+ lambda*v.z())) > POLEPSILON) { - G4double theta ; + G4double theta = atan2(p.y() + lambda*v.y(),p.x() + lambda*v.x()); - theta = atan2(p.y() + lambda*v.y(),p.x() + lambda*v.x()); #if DEBUGTORUS G4cout << "G4Torus::SolveNumeric theta = " << theta << G4endl; #endif if (theta < 0) theta += 2*M_PI; - - /*** We have to verify if this root is inside the region between fSPhi and fSPhi + fDPhi ***/ + // We have to verify if this root is inside the region between + // fSPhi and fSPhi + fDPhi + #if DEBUGTORUS G4cout << "G4Torus::SolveNumeric theta = " << theta << " Phi = " << fSPhi - << " Phi + dPhi = " << fSPhi + fDPhi - << " kAngTolerance = " << kAngTolerance << G4endl ; + << " Phi + dPhi = " << fSPhi + fDPhi + << " kAngTolerance = " << kAngTolerance << G4endl ; G4cout << " theta - Phi = " << theta - fSPhi << G4endl ; - #endif - if ((theta - fSPhi >= - kAngTolerance*0.5) && - (theta - (fSPhi + fDPhi) <= kAngTolerance*0.5)) { - /*** If this is the case we return this solution ***/ + if ( (theta - fSPhi >= - kAngTolerance*0.5) + && (theta - (fSPhi + fDPhi) <= kAngTolerance*0.5) ) + { + // If this is the case we return this solution + #if DEBUGTORUS G4cout << "G4Torus::SolveNumeric Correct Phi section" << G4endl ; #endif + return lambda; - } else { - /*** Else we compute the intersection with the 2 half-plane [fSPhi] - and [fSPhi + fDPhi] ***/ + } + else + { + // Else we compute the intersection with the 2 half-plane [fSPhi] + // and [fSPhi + fDPhi] G4double IntersectPlanar ; + IntersectPlanar = -(p.y()-p.x()*tan(fSPhi))/(v.y()-v.x()*tan(fSPhi)); - - IntersectPlanar = - (p.y() - p.x()*tan(fSPhi))/(v.y() - v.x()*tan(fSPhi)); #if DEBUGTORUS G4cout << "G4Torus::SolveNumeric IntersectPlanar = " << IntersectPlanar << G4endl ; #endif - /** If this is below lambda we check for the other plane **/ - if (IntersectPlanar < lambda) { - IntersectPlanar = - (p.y() - p.x()*tan(fSPhi + fDPhi)) - / (v.y() - v.x()*tan(fSPhi + fDPhi)) ; + // If this is below lambda we check for the other plane + // + if (IntersectPlanar < lambda) + { + IntersectPlanar = - (p.y() - p.x()*tan(fSPhi + fDPhi)) + / (v.y() - v.x()*tan(fSPhi + fDPhi)) ; #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric IntersectPlanar (2) = " - << IntersectPlanar << G4endl ; + G4cout << "G4Torus::SolveNumeric IntersectPlanar (2) = " + << IntersectPlanar << G4endl ; #endif } - /* If we does not hit the two plan then we does not hit the torus .. */ - if (IntersectPlanar < lambda) { + // If we does not hit the two plan then we does not hit the torus .. + // + if (IntersectPlanar < lambda) + { #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric No intersection with planar Phi .." - << G4endl ; + G4cout << "G4Torus::SolveNumeric No intersection with planar Phi .." + << G4endl ; #endif - return kInfinity; + return kInfinity; } #if DEBUGTORUS @@ -2535,81 +2672,102 @@ G4double G4Torus::SolveNumeric(const G4ThreeVector& p, << IntersectPlanar << G4endl ; #endif - if ((TorusEquation(p.x() + IntersectPlanar*v.x(), - p.y() + IntersectPlanar*v.y(), - p.z() + IntersectPlanar*v.z(), - GetRtor(),GetRmax()) < 0) - && (TorusEquation(p.x() + IntersectPlanar*v.x(), - p.y() + IntersectPlanar*v.y(), - p.z() + IntersectPlanar*v.z(), - GetRtor(),GetRmin()) > 0)) { - /*** if this point is inside torus Rmax and outside torus Rmin - then it is on the cut planar faces ***/ + if ( (TorusEquation(p.x() + IntersectPlanar*v.x(), + p.y() + IntersectPlanar*v.y(), + p.z() + IntersectPlanar*v.z(), + GetRtor(),GetRmax()) < 0) + && (TorusEquation(p.x() + IntersectPlanar*v.x(), + p.y() + IntersectPlanar*v.y(), + p.z() + IntersectPlanar*v.z(), + GetRtor(),GetRmin()) > 0) ) + { + // if this point is inside torus Rmax and outside torus Rmin + // then it is on the cut planar faces + #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Hit planar section" << G4endl ; + G4cout << "G4Torus::SolveNumeric Hit planar section" << G4endl ; #endif - return IntersectPlanar; - } else { - /*** else we continue from this new point (SolveNumeric) ***/ + return IntersectPlanar; + } + else + { + // else we continue from this new point (SolveNumeric) + #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Recursive Phi call with " - << IntersectPlanar << " .." << G4endl << G4endl; + G4cout << "G4Torus::SolveNumeric Recursive Phi call with " + << IntersectPlanar << " .." << G4endl << G4endl; #endif - return IntersectPlanar + SolveNumeric(p+IntersectPlanar*v, - v,IsDistanceToIn); + return IntersectPlanar + SolveNumeric(p+IntersectPlanar*v, + v,IsDistanceToIn); } } - } else { + } + else + { #if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Phi not checked because point is " << p + lambda*v << G4endl << G4endl; + G4cout << "G4Torus::SolveNumeric Phi not checked because point is " + << p + lambda*v << G4endl << G4endl; #endif } - return lambda; } -void G4Torus::BVMIntersection(G4double x,G4double y,G4double z, - G4double dx,G4double dy,G4double dz, - G4double Rmax, G4double Rmin, - G4double *NewL,G4int *valid) const +/////////////////////////////////////////////////////////////////////// +// +// Utility function + +void G4Torus::BVMIntersection( G4double x,G4double y,G4double z, + G4double dx,G4double dy,G4double dz, + G4double Rmax, G4double Rmin, + G4double *NewL,G4int *valid ) const { - if (dz != 0) { + if (dz != 0) + { G4double DistToZ ; - /* z = + Rmin */ - NewL[0] = (Rmin - z)/dz ; - /* z = - Rmin */ - NewL[1] = (-Rmin - z)/dz ; - /* Test validity here (*** To be optimized ***) */ + + NewL[0] = (Rmin - z)/dz ; // z = + Rmin + NewL[1] = (-Rmin - z)/dz ; // z = - Rmin + + // Test validity here (*** To be optimized ***) + // if (NewL[0] < 0.0) valid[0] = 0; if (NewL[1] < 0.0) valid[1] = 0; DistToZ = (x+NewL[0]*dx)*(x+NewL[0]*dx) + (y+NewL[0]*dy)*(y+NewL[0]*dy); - if (DistToZ - (Rmax + Rmin)*(Rmax + Rmin) > 0) + if (DistToZ - (Rmax + Rmin)*(Rmax + Rmin) > 0) valid[0] = 0; + #if HOLEBVM - if (DistToZ - (Rmax - Rmin)*(Rmax - Rmin) < 0) + if (DistToZ - (Rmax - Rmin)*(Rmax - Rmin) < 0) valid[0] = 0; #endif + DistToZ = (x+NewL[1]*dx)*(x+NewL[1]*dx) + (y+NewL[1]*dy)*(y+NewL[1]*dy); - if (DistToZ - (Rmax + Rmin)*(Rmax + Rmin) > 0) + if (DistToZ - (Rmax + Rmin)*(Rmax + Rmin) > 0) valid[1] = 0; + #if HOLEBVM - if (DistToZ - (Rmax - Rmin)*(Rmax - Rmin) < 0) + if (DistToZ - (Rmax - Rmin)*(Rmax - Rmin) < 0) valid[1] = 0; #endif - } else { - /* if dz == 0 we could know the exact solution */ - /* Well, this is true but we have not expected precision issue from sqrt .. */ + } + else + { + // if dz == 0 we could know the exact solution + // Well, this is true but we have the expected precision + // issue from sqrt ... NewL[0] = -1.0; NewL[1] = -1.0; valid[0] = 0; valid[1] = 0; } - /* x² + y² = (Rmax + Rmin)² */ - if ((dx != 0) || (dy != 0)) { + // x² + y² = (Rmax + Rmin)² + // + if ((dx != 0) || (dy != 0)) + { G4double a,b,c,d; a = dx*dx + dy*dy ; @@ -2617,12 +2775,15 @@ void G4Torus::BVMIntersection(G4double x,G4double y,G4double z, c = x*x + y*y - (Rmax + Rmin)*(Rmax + Rmin) ; d = b*b - 4*a*c ; - if (d < 0) { + if (d < 0) + { valid[2] = 0; valid[3] = 0; NewL[2] = -1.0; NewL[3] = -1.0; - } else{ + } + else + { d = sqrt(d) ; NewL[2] = (d - b)/(2*a); NewL[3] = (-d - b)/(2*a); @@ -2631,57 +2792,75 @@ void G4Torus::BVMIntersection(G4double x,G4double y,G4double z, if (NewL[3] < 0.0) valid[3] = 0; if (fabs(z + NewL[3]*dz) - Rmin > POLEPSILON) valid[3] = 0; } - } else + } + else + { + // only dz != 0 so we could know the exact solution + // this depends only for the distance to Z axis + // BUT big precision problem near the border.. + + NewL[2] = -1.0; + NewL[3] = -1.0; + valid[2] = 0; + valid[3] = 0; + +/* SQRT Test --------------------------------------------------- + + // Try This to see precision issue with sqrt(~ 0) + // + G4double DistToZ ; + G4double result; + G4double guess; + + DistToZ = sqrt(x*x + y*y) ; + + if ((DistToZ < (Rmax - Rmin)) || (DistToZ > (Rmax + Rmin))) { - /* only dz != 0 so we could know the exact solution */ - /* this depends only for the distance to Z axis */ - /* BUT big precision problem near the border.. */ - /* I like so much Newton to increase precision you know.. */ - - NewL[2] = -1.0; - NewL[3] = -1.0; - valid[2] = 0; - valid[3] = 0; - - /*** Try This to see precision issue with sqrt(~ 0) - G4double DistToZ ; - G4double result; - G4double guess; - - DistToZ = sqrt(x*x + y*y) ; - - if ((DistToZ < (Rmax - Rmin)) || (DistToZ > (Rmax + Rmin))) { - return -1.0 ; - } - - result = sqrt((Rmin + Rmax - DistToZ)*(Rmin - Rmax + DistToZ)); - - if (dz < 0) { - if (z > result) { - return (result - z)/dz; - } else { - if (z > -result) { - return (-result - z)/dz; - } else - return -1.0; - } - } else { - if (z < -result) { - return (z + result)/dz; - } else { - if (z < result) { - return (z - result)/dz; - } else - return -1.0; - } - } - */ + return -1.0 ; } + result = sqrt((Rmin + Rmax - DistToZ)*(Rmin - Rmax + DistToZ)); - /* x² + y² = (Rmax - Rmin)² */ + if (dz < 0) + { + if (z > result) + { + return (result - z)/dz; + } + else + { + if (z > -result) + { + return (-result - z)/dz; + } + else + return -1.0; + } + } + else + { + if (z < -result) + { + return (z + result)/dz; + } + else + { + if (z < result) + { + return (z - result)/dz; + } + else + return -1.0; + } + } + --------------------------------------------------- END SQRT test */ + } + + // x² + y² = (Rmax - Rmin)² + // #if HOLEBVM - if ((dx != 0) || (dy != 0)) { + if ((dx != 0) || (dy != 0)) + { G4double a,b,c,d; a = dx*dx + dy*dy ; @@ -2689,12 +2868,15 @@ void G4Torus::BVMIntersection(G4double x,G4double y,G4double z, c = x*x + y*y - (Rmax - Rmin)*(Rmax - Rmin) ; d = b*b - 4*a*c ; - if (d < 0) { + if (d < 0) + { valid[4] = 0; valid[5] = 0; NewL[4] = -1.0; NewL[5] = -1.0; - } else { + } + else + { d = sqrt(d) ; NewL[4] = (d - b)/(2*a); NewL[5] = (-d - b)/(2*a); @@ -2703,70 +2885,89 @@ void G4Torus::BVMIntersection(G4double x,G4double y,G4double z, if (NewL[5] < 0.0) valid[5] = 0; if (fabs(z + NewL[5]*dz) - Rmin > POLEPSILON) valid[5] = 0; } - } else + } + else #endif - { - /* only dz != 0 so we could know the exact solution */ - /* OK but same as above .. */ - valid[4] = 0; - valid[5] = 0; - NewL[4] = -1.0; - NewL[5] = -1.0; - } + { + // only dz != 0 so we could know the exact solution + // OK but same as above .. + // + valid[4] = 0; + valid[5] = 0; + NewL[4] = -1.0; + NewL[5] = -1.0; + } } -void G4Torus::SortIntervals (G4double *SortL, G4double *NewL, - G4int *valid, G4int *NbIntersection) const +/////////////////////////////////////////////////////////////////////// +// +// Utility function + +void G4Torus::SortIntervals ( G4double *SortL, G4double *NewL, + G4int *valid, G4int *NbIntersection ) const { G4int i,j; G4double swap; - + (*NbIntersection) = 0; SortL[0] = -kInfinity; - - for (i=0;i<6;i++) { - if (valid[i] != 0) { + + for (i=0;i<6;i++) + { + if (valid[i] != 0) + { SortL[(*NbIntersection)] = NewL[i] ; - for (j=(*NbIntersection);j>0;j--) { - if (SortL[j] < SortL[j-1]) { - swap = SortL[j-1] ; - SortL[j-1] = SortL[j]; - SortL[j] = swap; - } + for (j=(*NbIntersection);j>0;j--) + { + if (SortL[j] < SortL[j-1]) + { + swap = SortL[j-1] ; + SortL[j-1] = SortL[j]; + SortL[j] = swap; + } } - (*NbIntersection) ++; } } - /* Delete double values */ - /* When the ray hits a corner we have a double value */ - for (i=0;i<(*NbIntersection)-1;i++) { - if (SortL[i+1] - SortL[i] < POLEPSILON) { - if (((*NbIntersection) & (1)) == 1) { - /* If the NbIntersection is odd then we keep one value */ - for (j=i+1;j<(*NbIntersection);j++) { - SortL[j-1] = SortL[j] ; - } - (*NbIntersection) --; - } else { - /* If it is even we delete the 2 values */ - for (j=i+2;j<(*NbIntersection);j++) { - SortL[j-2] = SortL[j] ; - } - (*NbIntersection) -= 2; + + // Delete double values + // When the ray hits a corner we have a double value + // + for (i=0;i<(*NbIntersection)-1;i++) + { + if (SortL[i+1] - SortL[i] < POLEPSILON) + { + if (((*NbIntersection) & (1)) == 1) + { + // If the NbIntersection is odd then we keep one value + // + for (j=i+1;j<(*NbIntersection);j++) + { + SortL[j-1] = SortL[j] ; + } + (*NbIntersection) --; + } + else + { + // If it is even we delete the 2 values + // + for (j=i+2;j<(*NbIntersection);j++) + { + SortL[j-2] = SortL[j] ; + } + (*NbIntersection) -= 2; } } } } +/////////////////////////////////////////////////////////////////////// +// +// Utility function - -/** Now the interesting part .. **/ - - -G4double G4Torus::DistanceToTorus (G4double x,G4double y,G4double z, - G4double dx,G4double dy,G4double dz, - G4double Rmax,G4double Rmin) const +G4double G4Torus::DistanceToTorus ( G4double x, G4double y, G4double z, + G4double dx, G4double dy, G4double dz, + G4double Rmax, G4double Rmin ) const { G4double Lmin=0.; G4double Lmax=0.; @@ -2781,160 +2982,191 @@ G4double G4Torus::DistanceToTorus (G4double x,G4double y,G4double z, j = 0; - - /*** Compute Intervals from Bounding Volume ***/ - + // Compute Intervals from Bounding Volume + // BVMIntersection(x,y,z,dx,dy,dz,Rmax,Rmin,NewL,valid); - /* - We could compute intervals value - Sort all valid NewL to SortL. - There must be 4 values at max and - odd one if point is inside - */ + // We could compute intervals value + // Sort all valid NewL to SortL. + // There must be 4 values at max and + // odd one if point is inside SortIntervals(SortL,NewL,valid,&NbIntersection); - + { - /*** Length check (Torus specific) ***/ + // Length check (Torus specific) + // G4double LengthMin = 0.82842712*Rmin; - - switch(NbIntersection) { - case 1: - if (SortL[0] < POLEPSILON) { - if (fabs(TorusEquation(x,y,z,Rmax,Rmin)) < TORUSPRECISION) { - return 0.0; - } else { - return kInfinity; - } - } - break; - case 2: - if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection = 0; - break; - case 3: - if (SortL[0] < POLEPSILON) { - if (fabs(TorusEquation(x,y,z,Rmax,Rmin)) < TORUSPRECISION) { - return 0.0; - } else { - NbIntersection --; - SortL[0] = SortL[1] ; - SortL[1] = SortL[2] ; - if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection = 0; - } - } else { - if ((SortL[2] - SortL[1]) < LengthMin) NbIntersection -= 2; - } - break; - case 4: - if ((SortL[1] - SortL[0]) < LengthMin) { - NbIntersection -= 2; - SortL[0] = SortL[2]; - SortL[1] = SortL[3]; - if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection -= 2; - } - break; + + switch(NbIntersection) + { + case 1: + if (SortL[0] < POLEPSILON) + { + if (fabs(TorusEquation(x,y,z,Rmax,Rmin)) < TORUSPRECISION) + { + return 0.0; + } + else + { + return kInfinity; + } + } + break; + case 2: + if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection = 0; + break; + case 3: + if (SortL[0] < POLEPSILON) + { + if (fabs(TorusEquation(x,y,z,Rmax,Rmin)) < TORUSPRECISION) + { + return 0.0; + } + else + { + NbIntersection --; + SortL[0] = SortL[1] ; + SortL[1] = SortL[2] ; + if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection = 0; + } + } + else + { + if ((SortL[2] - SortL[1]) < LengthMin) NbIntersection -= 2; + } + break; + case 4: + if ((SortL[1] - SortL[0]) < LengthMin) + { + NbIntersection -= 2; + SortL[0] = SortL[2]; + SortL[1] = SortL[3]; + if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection -= 2; + } + break; } } - + #if DEBUGTORUS { G4int i; G4cout.precision(16); G4cout << "G4Torus::DistanceToTorus INTERVALS" << G4endl ; - for (i=0;i - PolySolver(&torus, - &TorusEquationClass::Function, - &TorusEquationClass::Derivative, - TORUSPRECISION) ; + G4PolynomialSolver + PolySolver(&torus, &G4TorusEquation::Function, + &G4TorusEquation::Derivative, TORUSPRECISION) ; + guess = PolySolver.solve(Lmin,Lmax); + if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) + { + return guess ; + } + else + { + Lmin = SortL[1] ; + Lmax = SortL[2] ; + } + break; + case 4: + Lmin = SortL[0] ; + Lmax = SortL[1] ; - guess = PolySolver.solve(Lmin,Lmax); - - if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) { - return guess ; - } else { - Lmin = SortL[1] ; - Lmax = SortL[2] ; - } - break; - case 4: - Lmin = SortL[0] ; - Lmax = SortL[1] ; - - TorusEquationClass torus (Rmax,Rmin); - torus.setPosition(x,y,z); - torus.setDirection(dx,dy,dz); + G4TorusEquation torus (Rmax,Rmin); + torus.setPosition(x,y,z); + torus.setDirection(dx,dy,dz); - G4PolynomialSolver - PolySolver(&torus, - &TorusEquationClass::Function, - &TorusEquationClass::Derivative, - TORUSPRECISION) ; - - guess = PolySolver.solve(Lmin,Lmax); - - if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) { - return guess ; - } else { - Lmin = SortL[2] ; - Lmax = SortL[3] ; - } - break; + G4PolynomialSolver + PolySolver(&torus, &G4TorusEquation::Function, + &G4TorusEquation::Derivative, TORUSPRECISION) ; + guess = PolySolver.solve(Lmin,Lmax); + if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) + { + return guess ; + } + else + { + Lmin = SortL[2] ; + Lmax = SortL[3] ; + } + break; #endif - default: - G4cerr << "G4Torus::DistanceToTorus NbIntersection = " << NbIntersection << G4endl; - break; + default: + G4cerr << "G4Torus::DistanceToTorus NbIntersection = " + << NbIntersection << G4endl; + break; } - TorusEquationClass torus (Rmax,Rmin); + G4TorusEquation torus (Rmax,Rmin); torus.setPosition(x,y,z); torus.setDirection(dx,dy,dz); - G4PolynomialSolver - PolySolver(&torus, - &TorusEquationClass::Function, - &TorusEquationClass::Derivative, - TORUSPRECISION) ; - + G4PolynomialSolver + PolySolver(&torus, &G4TorusEquation::Function, + &G4TorusEquation::Derivative, TORUSPRECISION) ; guess = PolySolver.solve(Lmin,Lmax); - - if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) { + if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) + { #if DEBUGTORUS G4cout << "G4Torus::DistanceToTorus distance = " << guess << G4endl ; #endif return guess ; - } else { + } + else + { #if DEBUGTORUS G4cout << "G4Torus::DistanceToTorus : kInfinity" << G4endl ; #endif return kInfinity; } } + +/////////////////////////////////////////////////////////////////////// +// +// G4TorusEquation definition + +G4TorusEquation::G4TorusEquation() +{ +} + +G4TorusEquation::G4TorusEquation(G4double Rmax, G4double Rmin) +{ + R0 = Rmax; + R1 = Rmin; +} + +G4TorusEquation::~G4TorusEquation() +{ +} diff --git a/source/geometry/solids/CSG/src/G4Trap.cc b/source/geometry/solids/CSG/src/G4Trap.cc index 508dc69fdc..49a792e313 100644 --- a/source/geometry/solids/CSG/src/G4Trap.cc +++ b/source/geometry/solids/CSG/src/G4Trap.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trap.cc,v 1.14 2002/05/15 09:37:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Trap.cc,v 1.16 2002/10/28 15:18:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4Trap // @@ -30,14 +30,17 @@ // // History: // 21.03.95 P.Kent: Modified for `tolerant' geometry -// 9.09.96 V. Grichine: Final modifications before to commit -// 1.11.96 V.Grichine Costructor for Right Angular Wedge from STEP & G4Trd/Para -// 8.12.97 J.Allison: Added "nominal" constructor and method SetAllParameters. -// 4.06.99 S.Giani: Fixed CalculateExtent in rotated case. -// 19.11.99 V.Grichine, kUndef was added to Eside enum -// 13.12.99 V.Grichine, bug fixed in DistanceToIn(p,v) +// 09.09.96 V. Grichine: Final modifications before to commit +// 01.11.96 V.Grichine: Costructor for Right Angular Wedge from STEP, G4Trd/Para +// 08.12.97 J.Allison: Added "nominal" constructor and method SetAllParameters. +// 04.06.99 S.Giani: Fixed CalculateExtent in rotated case. +// 19.11.99 V.Grichine: kUndef was added to Eside enum +// 13.12.99 V.Grichine: bug fixed in DistanceToIn(p,v) +// +// ******************************************************************** #include "G4Trap.hh" + #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" @@ -57,7 +60,7 @@ const G4double kCoplanar_Tolerance = 1E-4 ; ////////////////////////////////////////////////////////////////////////// // // Private enum: Not for external use - + enum Eside {kUndef,ks0,ks1,ks2,ks3,kPZ,kMZ}; //////////////////////////////////////////////////////////////////////// @@ -66,7 +69,6 @@ enum Eside {kUndef,ks0,ks1,ks2,ks3,kPZ,kMZ}; G4Trap::~G4Trap() { - ; } ////////////////////////////////////////////////////////////////////////// @@ -75,12 +77,13 @@ G4Trap::~G4Trap() // final check of coplanarity G4Trap::G4Trap( const G4String& pName, - G4double pDz, - G4double pTheta, G4double pPhi, - G4double pDy1, G4double pDx1, G4double pDx2, - G4double pAlp1, - G4double pDy2, G4double pDx3, G4double pDx4, - G4double pAlp2) : G4CSGSolid(pName) + G4double pDz, + G4double pTheta, G4double pPhi, + G4double pDy1, G4double pDx1, G4double pDx2, + G4double pAlp1, + G4double pDy2, G4double pDx3, G4double pDx4, + G4double pAlp2) + : G4CSGSolid(pName) { if ( pDz > 0 && pDy1 > 0 && pDx1 > 0 && pDx2 > 0 && pDy2 > 0 && pDx3 > 0 && pDx4 > 0 ) @@ -88,12 +91,12 @@ G4Trap::G4Trap( const G4String& pName, fDz=pDz; fTthetaCphi=tan(pTheta)*cos(pPhi); fTthetaSphi=tan(pTheta)*sin(pPhi); - + fDy1=pDy1; fDx1=pDx1; fDx2=pDx2; fTalpha1=tan(pAlp1); - + fDy2=pDy2; fDx3=pDx3; fDx4=pDx4; @@ -101,7 +104,22 @@ G4Trap::G4Trap( const G4String& pName, MakePlanes(); } - else G4Exception("Error in G4Trap::G4Trap - Invalid Length G4Trap parameters"); + else + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl + << " Invalid dimensions !" << G4endl + << " X - " + << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl + << " Y - " << pDy1 << ", " << pDy2 << G4endl + << " Z - " << pDz << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl + << " Invalid dimensions !" << G4endl + << " X - " + << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl + << " Y - " << pDy1 << ", " << pDy2 << G4endl + << " Z - " << pDz << G4endl; + G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + } } //////////////////////////////////////////////////////////////////////////// @@ -111,65 +129,80 @@ G4Trap::G4Trap( const G4String& pName, // fPlanes[] and than calculation of other members G4Trap::G4Trap( const G4String& pName, - const G4ThreeVector pt[8]) : G4CSGSolid(pName) + const G4ThreeVector pt[8] ) + : G4CSGSolid(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 ) - { - G4bool good; + 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 ) + { + G4bool good; -// Bottom side with normal approx. -Y - good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-Y not planar"); + // Bottom side with normal approx. -Y + // + good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); + if (!good) + { + DumpInfo(); + G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + } - } -// Top side with normal approx. +Y - good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+Y not planar"); - } -// Front side with normal approx. -X - good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-X not planar"); - } -// Back side iwth normal approx. +X - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+X not planar"); - } + // Top side with normal approx. +Y + // + good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + } - fDz = (pt[7]).z() ; - - fDy1 = ((pt[2]).y()-(pt[1]).y())*0.5 ; - fDx1 = ((pt[1]).x()-(pt[0]).x())*0.5 ; - fDx2 = ((pt[3]).x()-(pt[2]).x())*0.5 ; - fTalpha1 = ((pt[2]).x()+(pt[3]).x()-(pt[1]).x()-(pt[0]).x())*0.25/fDy1 ; + // Front side with normal approx. -X + // + good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + } - fDy2 = ((pt[6]).y()-(pt[5]).y())*0.5 ; - fDx3 = ((pt[5]).x()-(pt[4]).x())*0.5 ; - fDx4 = ((pt[7]).x()-(pt[6]).x())*0.5 ; - fTalpha2 = ((pt[6]).x()+(pt[7]).x()-(pt[5]).x()-(pt[4]).x())*0.25/fDy2 ; + // Back side iwth normal approx. +X + // + good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + } - fTthetaCphi = ((pt[4]).x()+fDy2*fTalpha2+fDx3)/fDz ; - fTthetaSphi = ((pt[4]).y()+fDy2)/fDz ; + fDz = (pt[7]).z() ; + + fDy1 = ((pt[2]).y()-(pt[1]).y())*0.5 ; + fDx1 = ((pt[1]).x()-(pt[0]).x())*0.5 ; + fDx2 = ((pt[3]).x()-(pt[2]).x())*0.5 ; + fTalpha1 = ((pt[2]).x()+(pt[3]).x()-(pt[1]).x()-(pt[0]).x())*0.25/fDy1 ; - } - else - { - G4Exception("Error in G4Trap::G4Trap - Invalid vertice coordinates"); - } + fDy2 = ((pt[6]).y()-(pt[5]).y())*0.5 ; + fDx3 = ((pt[5]).x()-(pt[4]).x())*0.5 ; + fDx4 = ((pt[7]).x()-(pt[6]).x())*0.5 ; + fTalpha2 = ((pt[6]).x()+(pt[7]).x()-(pt[5]).x()-(pt[4]).x())*0.25/fDy2 ; - + fTthetaCphi = ((pt[4]).x()+fDy2*fTalpha2+fDx3)/fDz ; + fTthetaSphi = ((pt[4]).y()+fDy2)/fDz ; + } + else + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - Invalid vertice coordinates"); + } } ////////////////////////////////////////////////////////////////////////////// @@ -177,69 +210,95 @@ G4Trap::G4Trap( const G4String& pName, // Constructor for Right Angular Wedge from STEP G4Trap::G4Trap( const G4String& pName, - G4double pZ, - G4double pY, - G4double pX, G4double pLTX) : G4CSGSolid(pName) - + G4double pZ, + G4double pY, + G4double pX, G4double pLTX ) + : G4CSGSolid(pName) + { - G4bool good; + G4bool good; - if (pZ>0 && pY>0 && pX>0 && pLTX>0 && pLTX<=pX) - { - fDz = 0.5*pZ ; - fTthetaCphi = 0 ; - fTthetaSphi = 0 ; - - fDy1 = 0.5*pY; - fDx1 = 0.5*pX ; - fDx2 = 0.5*pLTX; - fTalpha1 = 0.5*(pLTX - pX)/pY; - - fDy2 = fDy1 ; - fDx3 = fDx1; - fDx4 = fDx2 ; - fTalpha2 = fTalpha1 ; + if ( pZ>0 && pY>0 && pX>0 && pLTX>0 && pLTX<=pX ) + { + fDz = 0.5*pZ ; + fTthetaCphi = 0 ; + fTthetaSphi = 0 ; - G4ThreeVector pt[8] ; - - pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); -// Bottom side with normal approx. -Y - good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-Y not planar"); + fDy1 = 0.5*pY; + fDx1 = 0.5*pX ; + fDx2 = 0.5*pLTX; + fTalpha1 = 0.5*(pLTX - pX)/pY; - } -// Top side with normal approx. +Y - good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+Y not planar"); - } -// Front side with normal approx. -X - good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-X not planar"); - } -// Back side iwth normal approx. +X - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+X not planar"); - } - } + fDy2 = fDy1 ; + fDx3 = fDx1; + fDx4 = fDx2 ; + fTalpha2 = fTalpha1 ; + + G4ThreeVector pt[8] ; + + pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + + // Bottom side with normal approx. -Y + // + good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + } + + // Top side with normal approx. +Y + // + good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + } + + // Front side with normal approx. -X + // + good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + } + + // Back side iwth normal approx. +X + // + good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + } + } else - { - G4Exception("Error in G4Trap::G4Trap - Invalid Length Trapmeters"); - } + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + } } /////////////////////////////////////////////////////////////////////////////// @@ -247,68 +306,94 @@ G4Trap::G4Trap( const G4String& pName, // Constructor for G4Trd G4Trap::G4Trap( const G4String& pName, - G4double pDx1, G4double pDx2, - G4double pDy1, G4double pDy2, - G4double pDz) : G4CSGSolid(pName) + G4double pDx1, G4double pDx2, + G4double pDy1, G4double pDy2, + G4double pDz ) + : G4CSGSolid(pName) { - G4bool good; + G4bool good; - if (pDz>0 && pDy1>0 && pDx1>0 && pDx2>0 && pDy2>0 ) - { - fDz = pDz; - fTthetaCphi = 0 ; - fTthetaSphi = 0 ; - - fDy1 = pDy1 ; - fDx1 = pDx1 ; - fDx2 = pDx1 ; - fTalpha1 = 0 ; - - fDy2 = pDy2 ; - fDx3 = pDx2 ; - fDx4 = pDx2 ; - fTalpha2 = 0 ; + if ( pDz>0 && pDy1>0 && pDx1>0 && pDx2>0 && pDy2>0 ) + { + fDz = pDz; + fTthetaCphi = 0 ; + fTthetaSphi = 0 ; + + fDy1 = pDy1 ; + fDx1 = pDx1 ; + fDx2 = pDx1 ; + fTalpha1 = 0 ; + + fDy2 = pDy2 ; + fDx3 = pDx2 ; + fDx4 = pDx2 ; + fTalpha2 = 0 ; - G4ThreeVector pt[8] ; - - pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); -// Bottom side with normal approx. -Y - good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-Y not planar"); + G4ThreeVector pt[8] ; + + pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); - } -// Top side with normal approx. +Y - good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+Y not planar"); - } -// Front side with normal approx. -X - good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-X not planar"); - } -// Back side iwth normal approx. +X - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+X not planar"); - } - } - else - { - G4Exception("Error in G4Trap::G4Trap - Invalid Length G4Trapmeters"); - } + // Bottom side with normal approx. -Y + // + good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + } + + // Top side with normal approx. +Y + // + good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + } + + // Front side with normal approx. -X + // + good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + } + + // Back side iwth normal approx. +X + // + good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + } + } + else + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + } } //////////////////////////////////////////////////////////////////////////// @@ -316,70 +401,95 @@ G4Trap::G4Trap( const G4String& pName, // Constructor for G4Para G4Trap::G4Trap( const G4String& pName, - G4double pDx, G4double pDy, - G4double pDz, - G4double pAlpha, - G4double pTheta, G4double pPhi) : G4CSGSolid(pName) - + G4double pDx, G4double pDy, + G4double pDz, + G4double pAlpha, + G4double pTheta, G4double pPhi) + : G4CSGSolid(pName) { - G4bool good; + G4bool good; - if (pDz>0 && pDy>0 && pDx>0 ) - { - fDz = pDz ; - fTthetaCphi = tan(pTheta)*cos(pPhi) ; - fTthetaSphi = tan(pTheta)*sin(pPhi) ; - - fDy1 = pDy ; - fDx1 = pDx ; - fDx2 = pDx ; - fTalpha1 = tan(pAlpha) ; - - fDy2 = pDy ; - fDx3 = pDx ; - fDx4 = pDx ; - fTalpha2 = fTalpha1 ; + if ( pDz>0 && pDy>0 && pDx>0 ) + { + fDz = pDz ; + fTthetaCphi = tan(pTheta)*cos(pPhi) ; + fTthetaSphi = tan(pTheta)*sin(pPhi) ; + + fDy1 = pDy ; + fDx1 = pDx ; + fDx2 = pDx ; + fTalpha1 = tan(pAlpha) ; + + fDy2 = pDy ; + fDx3 = pDx ; + fDx4 = pDx ; + fTalpha2 = fTalpha1 ; - G4ThreeVector pt[8] ; - - pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); -// Bottom side with normal approx. -Y - good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-Y not planar"); + G4ThreeVector pt[8] ; + + pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); - } -// Top side with normal approx. +Y - good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+Y not planar"); - } -// Front side with normal approx. -X - good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~-X not planar"); - } -// Back side iwth normal approx. +X - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) - { - G4Exception("G4Trap::G4Trap - face at ~+X not planar"); - } - } - else - { - G4Exception("Error in G4Trap::G4Trap - Invalid Length G4Trapmeters"); - } + // Bottom side with normal approx. -Y + // + good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + } + + // Top side with normal approx. +Y + // + good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + } + + // Front side with normal approx. -X + // + good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + } + + // Back side iwth normal approx. +X + // + good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + } + } + else + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + } } /////////////////////////////////////////////////////////////////////////// @@ -388,21 +498,20 @@ G4Trap::G4Trap( const G4String& pName, // a G4VParamaterisation later. Check and set half-widths as well as // angles: final check of coplanarity -G4Trap::G4Trap( const G4String& pName) : - G4CSGSolid (pName), - fDz (1.), - fTthetaCphi (0.), - fTthetaSphi (0.), - fDy1 (1.), - fDx1 (1.), - fDx2 (1.), - fTalpha1 (0.), - fDy2 (1.), - fDx3 (1.), - fDx4 (1.), - fTalpha2 (0.) +G4Trap::G4Trap( const G4String& pName ) + : G4CSGSolid (pName), + fDz (1.), + fTthetaCphi (0.), + fTthetaSphi (0.), + fDy1 (1.), + fDx1 (1.), + fDx2 (1.), + fTalpha1 (0.), + fDy2 (1.), + fDx3 (1.), + fDx4 (1.), + fTalpha2 (0.) { - ; } /////////////////////////////////////////////////////////////////////// @@ -411,39 +520,51 @@ G4Trap::G4Trap( const G4String& pName) : // as well as angles: final check of coplanarity void G4Trap::SetAllParameters ( G4double pDz, - G4double pTheta, - G4double pPhi, - G4double pDy1, - G4double pDx1, - G4double pDx2, - G4double pAlp1, - G4double pDy2, - G4double pDx3, - G4double pDx4, - G4double pAlp2) + G4double pTheta, + G4double pPhi, + G4double pDy1, + G4double pDx1, + G4double pDx2, + G4double pAlp1, + G4double pDy2, + G4double pDx3, + G4double pDx4, + G4double pAlp2 ) { - if (pDz>0 && pDy1>0 && pDx1>0 && pDx2>0 && pDy2>0 && pDx3>0 && pDx4>0) - { - fDz=pDz; - fTthetaCphi=tan(pTheta)*cos(pPhi); - fTthetaSphi=tan(pTheta)*sin(pPhi); - - fDy1=pDy1; - fDx1=pDx1; - fDx2=pDx2; - fTalpha1=tan(pAlp1); - - fDy2=pDy2; - fDx3=pDx3; - fDx4=pDx4; - fTalpha2=tan(pAlp2); + if ( pDz>0 && pDy1>0 && pDx1>0 && pDx2>0 && pDy2>0 && pDx3>0 && pDx4>0 ) + { + fDz=pDz; + fTthetaCphi=tan(pTheta)*cos(pPhi); + fTthetaSphi=tan(pTheta)*sin(pPhi); + + fDy1=pDy1; + fDx1=pDx1; + fDx2=pDx2; + fTalpha1=tan(pAlp1); + + fDy2=pDy2; + fDx3=pDx3; + fDx4=pDx4; + fTalpha2=tan(pAlp2); - MakePlanes(); - } - else - { - G4Exception("Error in G4Trap::SetAll - Invalid Length G4Trap parameters"); - } + MakePlanes(); + } + else + { + G4cout << "ERROR - G4Trap()::SetAllParameters(): " << GetName() << G4endl + << " Invalid dimensions !" << G4endl + << " X - " + << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl + << " Y - " << pDy1 << ", " << pDy2 << G4endl + << " Z - " << pDz << G4endl; + G4cerr << "ERROR - G4Trap()::SetAllParameters(): " << GetName() << G4endl + << " Invalid dimensions !" << G4endl + << " X - " + << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl + << " Y - " << pDy1 << ", " << pDy2 << G4endl + << " Z - " << pDz << G4endl; + G4Exception("G4Trap::SetAllParameters() - Invalid Length Parameters"); + } } ////////////////////////////////////////////////////////////////////////// @@ -455,39 +576,64 @@ G4bool G4Trap::MakePlanes() G4bool good = true; G4ThreeVector pt[8] ; - - pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); + + pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + // Bottom side with normal approx. -Y - + // good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]) ; - - if (!good) G4Exception("G4Trap::G4Trap - face at ~-Y not planar"); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + } // Top side with normal approx. +Y - + // good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - - if (!good) G4Exception("G4Trap::G4Trap - face at ~+Y not planar"); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + } // Front side with normal approx. -X - + // good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - - if (!good) G4Exception("G4Trap::G4Trap - face at ~-X not planar"); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + } // Back side iwth normal approx. +X - + // good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); + if (!good) + { + G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; + G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + } - if (!good) G4Exception("G4Trap::G4Trap - face at ~+X not planar"); - return good; } @@ -501,60 +647,72 @@ G4bool G4Trap::MakePlanes() // false if ThreeVectors are not coplanar G4bool G4Trap::MakePlane( const G4ThreeVector& p1, - const G4ThreeVector& p2, - const G4ThreeVector& p3, - const G4ThreeVector& p4, - TrapSidePlane& plane ) + const G4ThreeVector& p2, + const G4ThreeVector& p3, + 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; + 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 (fabs(Vcross.dot(v14)/(Vcross.mag()*v14.mag())) > kCoplanar_Tolerance) + if (fabs(Vcross.dot(v14)/(Vcross.mag()*v14.mag())) > kCoplanar_Tolerance) + { + 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()); // ? + + // 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) + + // 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()) ; + + s=sqrt(a*a+b*b+c*c); // so now vector plane.(a,b,c) is unit + + if( s > 0 ) { - good=false; + plane.a=a/s; + plane.b=b/s; + plane.c=c/s; } 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()); // may be delete ? - - 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) - //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()) ; - s=sqrt(a*a+b*b+c*c); // so now vector plane.(a,b,c) is unit + G4cout << "ERROR - G4Trap()::MakePlane(): " << GetName() << G4endl; + G4cerr << "ERROR - G4Trap()::MakePlane(): " << GetName() << G4endl; + G4Exception("G4Trap::MakePlane() - Invalid parameters") ; + } - if( s > 0 ) - { - plane.a=a/s; - plane.b=b/s; - plane.c=c/s; - } - else - G4Exception("Invalid parameters in G4Trap::MakePlane") ; + // 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()); -// 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()); - good=true; - } - return good; + good=true; + } + return good; } ////////////////////////////////////////////////////////////////////////////// @@ -562,11 +720,11 @@ G4bool G4Trap::MakePlane( const G4ThreeVector& p1, // Dispatch to parameterisation for replication mechanism dimension // computation & modification. - void G4Trap::ComputeDimensions(G4VPVParameterisation* p, +void G4Trap::ComputeDimensions( G4VPVParameterisation* p, const G4int n, - const G4VPhysicalVolume* pRep) + const G4VPhysicalVolume* pRep ) { - p->ComputeDimensions(*this,n,pRep); + p->ComputeDimensions(*this,n,pRep); } @@ -594,53 +752,57 @@ G4bool G4Trap::CalculateExtent( const EAxis pAxis, G4double zoffset; G4double temp[8] ; // some points for intersection with zMin/zMax G4ThreeVector pt[8]; // vertices after translation - - xoffset=pTransform.NetTranslation().x(); + + xoffset=pTransform.NetTranslation().x(); yoffset=pTransform.NetTranslation().y(); zoffset=pTransform.NetTranslation().z(); pt[0]=G4ThreeVector(xoffset-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, - yoffset-fDz*fTthetaSphi-fDy1,zoffset-fDz); + yoffset-fDz*fTthetaSphi-fDy1,zoffset-fDz); pt[1]=G4ThreeVector(xoffset-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, - yoffset-fDz*fTthetaSphi-fDy1,zoffset-fDz); + yoffset-fDz*fTthetaSphi-fDy1,zoffset-fDz); pt[2]=G4ThreeVector(xoffset-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, - yoffset-fDz*fTthetaSphi+fDy1,zoffset-fDz); + yoffset-fDz*fTthetaSphi+fDy1,zoffset-fDz); pt[3]=G4ThreeVector(xoffset-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, - yoffset-fDz*fTthetaSphi+fDy1,zoffset-fDz); + yoffset-fDz*fTthetaSphi+fDy1,zoffset-fDz); pt[4]=G4ThreeVector(xoffset+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, - yoffset+fDz*fTthetaSphi-fDy2,zoffset+fDz); + yoffset+fDz*fTthetaSphi-fDy2,zoffset+fDz); pt[5]=G4ThreeVector(xoffset+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, - yoffset+fDz*fTthetaSphi-fDy2,zoffset+fDz); + yoffset+fDz*fTthetaSphi-fDy2,zoffset+fDz); pt[6]=G4ThreeVector(xoffset+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, - yoffset+fDz*fTthetaSphi+fDy2,zoffset+fDz); + yoffset+fDz*fTthetaSphi+fDy2,zoffset+fDz); pt[7]=G4ThreeVector(xoffset+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, - yoffset+fDz*fTthetaSphi+fDy2,zoffset+fDz); + yoffset+fDz*fTthetaSphi+fDy2,zoffset+fDz); zMin=zoffset-fDz; zMax=zoffset+fDz; if ( pVoxelLimit.IsZLimited() ) { - if ( zMin > pVoxelLimit.GetMaxZExtent() + kCarTolerance || - zMax < pVoxelLimit.GetMinZExtent() - kCarTolerance ) + 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() ; - } + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if ( zMax > pVoxelLimit.GetMaxZExtent() ) + { + zMax = pVoxelLimit.GetMaxZExtent() ; + } } } - temp[0] = pt[0].y()+(pt[4].y()-pt[0].y())*(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[1] = pt[0].y()+(pt[4].y()-pt[0].y())*(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[2] = pt[2].y()+(pt[6].y()-pt[2].y())*(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; - temp[3] = pt[2].y()+(pt[6].y()-pt[2].y())*(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; + temp[0] = pt[0].y()+(pt[4].y()-pt[0].y())*(zMin-pt[0].z()) + /(pt[4].z()-pt[0].z()) ; + temp[1] = pt[0].y()+(pt[4].y()-pt[0].y())*(zMax-pt[0].z()) + /(pt[4].z()-pt[0].z()) ; + temp[2] = pt[2].y()+(pt[6].y()-pt[2].y())*(zMin-pt[2].z()) + /(pt[6].z()-pt[2].z()) ; + temp[3] = pt[2].y()+(pt[6].y()-pt[2].y())*(zMax-pt[2].z()) + /(pt[6].z()-pt[2].z()) ; yMax = yoffset - fabs(fDz*fTthetaSphi) - fDy1 - fDy2 ; yMin = -yMax ; @@ -652,32 +814,40 @@ G4bool G4Trap::CalculateExtent( const EAxis pAxis, } if ( pVoxelLimit.IsYLimited() ) { - if ( yMin > pVoxelLimit.GetMaxYExtent() + kCarTolerance || - yMax < pVoxelLimit.GetMinYExtent() - kCarTolerance ) + 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() ; - } + if ( yMin < pVoxelLimit.GetMinYExtent() ) + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if ( yMax > pVoxelLimit.GetMaxYExtent() ) + { + yMax = pVoxelLimit.GetMaxYExtent() ; + } } } - temp[0] = pt[0].x()+(pt[4].x()-pt[0].x())*(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[1] = pt[0].x()+(pt[4].x()-pt[0].x())*(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; - temp[2] = pt[2].x()+(pt[6].x()-pt[2].x())*(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; - temp[3] = pt[2].x()+(pt[6].x()-pt[2].x())*(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; - temp[4] = pt[3].x()+(pt[7].x()-pt[3].x())*(zMin-pt[3].z())/(pt[7].z()-pt[3].z()) ; - temp[5] = pt[3].x()+(pt[7].x()-pt[3].x())*(zMax-pt[3].z())/(pt[7].z()-pt[3].z()) ; - temp[6] = pt[1].x()+(pt[5].x()-pt[1].x())*(zMin-pt[1].z())/(pt[5].z()-pt[1].z()) ; - temp[7] = pt[1].x()+(pt[5].x()-pt[1].x())*(zMax-pt[1].z())/(pt[5].z()-pt[1].z()) ; - + temp[0] = pt[0].x()+(pt[4].x()-pt[0].x()) + *(zMin-pt[0].z())/(pt[4].z()-pt[0].z()) ; + temp[1] = pt[0].x()+(pt[4].x()-pt[0].x()) + *(zMax-pt[0].z())/(pt[4].z()-pt[0].z()) ; + temp[2] = pt[2].x()+(pt[6].x()-pt[2].x()) + *(zMin-pt[2].z())/(pt[6].z()-pt[2].z()) ; + temp[3] = pt[2].x()+(pt[6].x()-pt[2].x()) + *(zMax-pt[2].z())/(pt[6].z()-pt[2].z()) ; + temp[4] = pt[3].x()+(pt[7].x()-pt[3].x()) + *(zMin-pt[3].z())/(pt[7].z()-pt[3].z()) ; + temp[5] = pt[3].x()+(pt[7].x()-pt[3].x()) + *(zMax-pt[3].z())/(pt[7].z()-pt[3].z()) ; + temp[6] = pt[1].x()+(pt[5].x()-pt[1].x()) + *(zMin-pt[1].z())/(pt[5].z()-pt[1].z()) ; + temp[7] = pt[1].x()+(pt[5].x()-pt[1].x()) + *(zMax-pt[1].z())/(pt[5].z()-pt[1].z()) ; + xMax = xoffset - fabs(fDz*fTthetaCphi) - fDx1 - fDx2 -fDx3 - fDx4 ; xMin = -xMax ; @@ -685,162 +855,163 @@ G4bool G4Trap::CalculateExtent( const EAxis pAxis, { if( temp[i] > xMax) xMax = temp[i] ; if( temp[i] < xMin) xMin = temp[i] ; - } + } if (pVoxelLimit.IsXLimited()) // xMax/Min = f(yMax/Min) ? { - if ( xMin > pVoxelLimit.GetMaxXExtent() + kCarTolerance || - xMax < pVoxelLimit.GetMinXExtent() - kCarTolerance ) + if ( (xMin > pVoxelLimit.GetMaxXExtent() + kCarTolerance) + || (xMax < pVoxelLimit.GetMinXExtent() - kCarTolerance) ) { - return false; + return false; } else { if ( xMin < pVoxelLimit.GetMinXExtent() ) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if ( xMax > pVoxelLimit.GetMaxXExtent() ) - { - xMax = pVoxelLimit.GetMaxXExtent() ; - } - } - } - 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; - - flag = true; - } - else // General rotated case - - { - G4bool existsAfterClip = false ; - G4ThreeVectorList* vertices; - pMin = +kInfinity; - pMax = -kInfinity; - - // Calculate rotated vertex coordinates. Operator 'new' is called - - vertices = CreateRotatedVertices(pTransform); - - xMin = +kInfinity; yMin = +kInfinity; zMin = +kInfinity; - xMax = -kInfinity; yMax = -kInfinity; zMax = -kInfinity; - - for( G4int nv = 0 ; nv < 8 ; nv++ ) - { - if( (*vertices)[nv].x() > xMax ) xMax = (*vertices)[nv].x(); - if( (*vertices)[nv].y() > yMax ) yMax = (*vertices)[nv].y(); - if( (*vertices)[nv].z() > zMax ) zMax = (*vertices)[nv].z(); - - if( (*vertices)[nv].x() < xMin ) xMin = (*vertices)[nv].x(); - if( (*vertices)[nv].y() < yMin ) yMin = (*vertices)[nv].y(); - if( (*vertices)[nv].z() < zMin ) zMin = (*vertices)[nv].z(); - } - if ( pVoxelLimit.IsZLimited() ) - { - if ( zMin > pVoxelLimit.GetMaxZExtent() + kCarTolerance || - zMax < pVoxelLimit.GetMinZExtent() - kCarTolerance ) - { - delete vertices ; // 'new' in the function called - return false; - } - else - { - if ( zMin < pVoxelLimit.GetMinZExtent() ) - { - zMin = pVoxelLimit.GetMinZExtent() ; - } - if ( zMax > pVoxelLimit.GetMaxZExtent() ) - { - zMax = pVoxelLimit.GetMaxZExtent() ; - } - } - } - if ( pVoxelLimit.IsYLimited() ) - { - if ( yMin > pVoxelLimit.GetMaxYExtent() + kCarTolerance || - yMax < pVoxelLimit.GetMinYExtent() - kCarTolerance ) - { - delete vertices ; // 'new' in the function called - return false; - } - else - { - if ( yMin < pVoxelLimit.GetMinYExtent() ) - { - yMin = pVoxelLimit.GetMinYExtent() ; - } - if ( yMax > pVoxelLimit.GetMaxYExtent() ) { - yMax = pVoxelLimit.GetMaxYExtent() ; - } - } - } - if ( pVoxelLimit.IsXLimited() ) - { - if ( xMin > pVoxelLimit.GetMaxXExtent() + kCarTolerance || - xMax < pVoxelLimit.GetMinXExtent() - kCarTolerance ) - { - delete vertices ; // 'new' in the function called - return false ; - } - else - { - if ( xMin < pVoxelLimit.GetMinXExtent() ) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if ( xMax > pVoxelLimit.GetMaxXExtent() ) - { - xMax = pVoxelLimit.GetMaxXExtent() ; + xMin = pVoxelLimit.GetMinXExtent() ; + } + if ( xMax > pVoxelLimit.GetMaxXExtent() ) + { + xMax = pVoxelLimit.GetMaxXExtent() ; } } } switch (pAxis) { case kXAxis: - pMin=xMin; - pMax=xMax; - break; + pMin=xMin; + pMax=xMax; + break; case kYAxis: - pMin=yMin; - pMax=yMax; - break; + pMin=yMin; + pMax=yMax; + break; case kZAxis: - pMin=zMin; - pMax=zMax; - break; + pMin=zMin; + pMax=zMax; + break; default: - break; + break; } - if ( pMin != kInfinity || pMax != -kInfinity ) + pMin -= kCarTolerance; + pMax += kCarTolerance; + + flag = true; + } + else // General rotated case - + { + G4bool existsAfterClip = false ; + G4ThreeVectorList* vertices; + pMin = +kInfinity; + pMax = -kInfinity; + + // Calculate rotated vertex coordinates. Operator 'new' is called + + vertices = CreateRotatedVertices(pTransform); + + xMin = +kInfinity; yMin = +kInfinity; zMin = +kInfinity; + xMax = -kInfinity; yMax = -kInfinity; zMax = -kInfinity; + + for( G4int nv = 0 ; nv < 8 ; nv++ ) + { + if( (*vertices)[nv].x() > xMax ) xMax = (*vertices)[nv].x(); + if( (*vertices)[nv].y() > yMax ) yMax = (*vertices)[nv].y(); + if( (*vertices)[nv].z() > zMax ) zMax = (*vertices)[nv].z(); + + if( (*vertices)[nv].x() < xMin ) xMin = (*vertices)[nv].x(); + if( (*vertices)[nv].y() < yMin ) yMin = (*vertices)[nv].y(); + if( (*vertices)[nv].z() < zMin ) zMin = (*vertices)[nv].z(); + } + if ( pVoxelLimit.IsZLimited() ) + { + if ( (zMin > pVoxelLimit.GetMaxZExtent() + kCarTolerance) + || (zMax < pVoxelLimit.GetMinZExtent() - kCarTolerance) ) + { + delete vertices ; // 'new' in the function called + return false; + } + else + { + if ( zMin < pVoxelLimit.GetMinZExtent() ) + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if ( zMax > pVoxelLimit.GetMaxZExtent() ) + { + zMax = pVoxelLimit.GetMaxZExtent() ; + } + } + } + if ( pVoxelLimit.IsYLimited() ) + { + if ( (yMin > pVoxelLimit.GetMaxYExtent() + kCarTolerance) + || (yMax < pVoxelLimit.GetMinYExtent() - kCarTolerance) ) + { + delete vertices ; // 'new' in the function called + return false; + } + else + { + if ( yMin < pVoxelLimit.GetMinYExtent() ) + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if ( yMax > pVoxelLimit.GetMaxYExtent() ) + { + yMax = pVoxelLimit.GetMaxYExtent() ; + } + } + } + if ( pVoxelLimit.IsXLimited() ) + { + if ( (xMin > pVoxelLimit.GetMaxXExtent() + kCarTolerance) + || (xMax < pVoxelLimit.GetMinXExtent() - kCarTolerance) ) + { + delete vertices ; // 'new' in the function called + return false ; + } + else + { + if ( xMin < pVoxelLimit.GetMinXExtent() ) + { + xMin = pVoxelLimit.GetMinXExtent() ; + } + if ( xMax > pVoxelLimit.GetMaxXExtent() ) + { + xMax = pVoxelLimit.GetMaxXExtent() ; + } + } + } + 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; + } + if ( (pMin != kInfinity) || (pMax != -kInfinity) ) { existsAfterClip=true; - + // Add tolerance to avoid precision troubles - + // pMin -= kCarTolerance ; - pMax += kCarTolerance ; + pMax += kCarTolerance ; } delete vertices ; // 'new' in the function called flag = existsAfterClip ; @@ -853,45 +1024,46 @@ G4bool G4Trap::CalculateExtent( const EAxis pAxis, // // Return whether point inside/outside/on surface, using tolerance -EInside G4Trap::Inside(const G4ThreeVector& p) const +EInside G4Trap::Inside( const G4ThreeVector& p ) const { - EInside in; - G4double Dist; - G4int i; - if (fabs(p.z())<=fDz-kCarTolerance/2) - { - 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; - } - } - } - else if (fabs(p.z())<=fDz+kCarTolerance/2) - { - 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; - } - } - - } - else - { - in=kOutside; - } - return in; + EInside in; + G4double Dist; + G4int i; + if (fabs(p.z())<=fDz-kCarTolerance/2) + { + 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; + } + } + } + else if (fabs(p.z())<=fDz+kCarTolerance/2) + { + 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; + } + } + } + else + { + in=kOutside; + } + return in; } ///////////////////////////////////////////////////////////////////////////// @@ -899,36 +1071,36 @@ EInside G4Trap::Inside(const G4ThreeVector& p) const // Calculate side nearest to p, and return normal // If 2+ sides equidistant, first side's normal returned (arbitrarily) -G4ThreeVector G4Trap::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4Trap::SurfaceNormal( const G4ThreeVector& p ) const { - G4double safe=kInfinity,Dist,safez; - G4int i,imin=0; - for (i=0;i<4;i++) - { - Dist=fabs(fPlanes[i].a*p.x()+fPlanes[i].b*p.y()+fPlanes[i].c*p.z()+fPlanes[i].d); - if (Dist0) + { + return G4ThreeVector(0,0,1); + } else - { - if (p.z()>0) - { - return G4ThreeVector(0,0,1); - } - else - { - return G4ThreeVector(0,0,-1); - } - } + { + return G4ThreeVector(0,0,-1); + } + } } //////////////////////////////////////////////////////////////////////////// @@ -940,125 +1112,120 @@ G4ThreeVector G4Trap::SurfaceNormal( const G4ThreeVector& p) const // values for which the particle is in the extent of the shape // - The smallest (MAX minimum) allowed distance of the pairs is intersect -G4double G4Trap::DistanceToIn(const G4ThreeVector& p, - const G4ThreeVector& v) const +G4double G4Trap::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const { - G4double snxt; // snxt = default return value - G4double max,smax,smin; - G4double pdist,Comp,vdist; - G4int i; -// -// Z Intersection range -// - if (v.z() > 0 ) + G4double snxt; // snxt = default return value + G4double max,smax,smin; + G4double pdist,Comp,vdist; + G4int i; + // + // Z Intersection range + // + if ( v.z() > 0 ) + { + max = fDz - p.z() ; + if (max > 0.5*kCarTolerance) { - max = fDz - p.z() ; - - if (max > 0.5*kCarTolerance) - { - smax = max/v.z(); - smin = (-fDz-p.z())/v.z(); - } - else - { - return snxt=kInfinity; - } - } - else if (v.z() < 0 ) - { - max = - fDz - p.z() ; - - if (max < -0.5*kCarTolerance ) - { - smax=max/v.z(); - smin=(fDz-p.z())/v.z(); - } - else - { - return snxt=kInfinity; - } + smax = max/v.z(); + smin = (-fDz-p.z())/v.z(); } else { - if (fabs(p.z())= -0.5*kCarTolerance ) // was >0 - { -// -// Outside the plane -> this is an extent entry distance -// - if (Comp >= 0) // was >0 - { - return snxt=kInfinity ; - } - else - { - vdist=-pdist/Comp; - - if (vdist>smin) - { - if (vdist couble be an extent exit distance (smax) -// - if (Comp>0) // Will leave extent - { - vdist=-pdist/Comp; - - if (vdistsmin) - { - smax=vdist; - } - else - { - return snxt=kInfinity; - } - } - } - } - } -// -// Checks in non z plane intersections ensure smin=0 ) - { - snxt = smin ; + smax=max/v.z(); + smin=(fDz-p.z())/v.z(); } else { - snxt = 0 ; + return snxt=kInfinity; } - return snxt; + } + else + { + if (fabs(p.z())= -0.5*kCarTolerance ) // was >0 + { + // + // Outside the plane -> this is an extent entry distance + // + if (Comp >= 0) // was >0 + { + return snxt=kInfinity ; + } + else + { + vdist=-pdist/Comp; + if (vdist>smin) + { + if (vdist couble be an extent exit distance (smax) + // + if (Comp>0) // Will leave extent + { + vdist=-pdist/Comp; + if (vdistsmin) + { + smax=vdist; + } + else + { + return snxt=kInfinity; + } + } + } + } + } + // + // Checks in non z plane intersections ensure smin=0 ) + { + snxt = smin ; + } + else + { + snxt = 0 ; + } + return snxt; } /////////////////////////////////////////////////////////////////////////// @@ -1067,295 +1234,294 @@ G4double G4Trap::DistanceToIn(const G4ThreeVector& p, // This is the best fast estimation of the shortest distance to trap // - Returns 0 is ThreeVector inside -G4double G4Trap::DistanceToIn(const G4ThreeVector& p) const +G4double G4Trap::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe,Dist; - G4int i; - safe=fabs(p.z())-fDz; - 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 > safe) safe=Dist; - } - if (safe<0) safe=0; - return safe; + G4double safe,Dist; + G4int i; + safe=fabs(p.z())-fDz; + 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 > safe) safe=Dist; + } + if (safe<0) safe=0; + return safe; } ///////////////////////////////////////////////////////////////////////////////// // -// Calcluate distance to surface of shape from inside +// Calculate distance to surface of shape from inside // Calculate distance to x/y/z planes - smallest is exiting distance -G4double G4Trap::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm,G4ThreeVector *n) const +G4double G4Trap::DistanceToOut(const G4ThreeVector& p, const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, G4ThreeVector *n) const { - Eside side = kUndef; - G4double snxt; // snxt = return value - G4double pdist,Comp,vdist,max; -// -// Z Intersections -// - if (v.z()>0) - { - max=fDz-p.z(); - if (max>kCarTolerance/2) - { - snxt=max/v.z(); - side=kPZ; - } - else - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(0,0,1); - } - return snxt=0; - } - } - else if (v.z()<0) - { - max=-fDz-p.z(); - if (max<-kCarTolerance/2) - { - snxt=max/v.z(); - side=kMZ; - } - else - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(0,0,-1); - } - return snxt=0; - } - } + Eside side = kUndef; + G4double snxt; // snxt = return value + G4double pdist,Comp,vdist,max; + // + // Z Intersections + // + if (v.z()>0) + { + max=fDz-p.z(); + if (max>kCarTolerance/2) + { + snxt=max/v.z(); + side=kPZ; + } else { - snxt=kInfinity; + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(0,0,1); + } + return snxt=0; + } + } + else if (v.z()<0) + { + max=-fDz-p.z(); + if (max<-kCarTolerance/2) + { + snxt=max/v.z(); + side=kMZ; } - -// -// Intersections with planes[0] (expanded because of setting enum) -// - pdist=fPlanes[0].a*p.x()+fPlanes[0].b*p.y()+fPlanes[0].c*p.z()+fPlanes[0].d; - Comp=fPlanes[0].a*v.x()+fPlanes[0].b*v.y()+fPlanes[0].c*v.z(); - if (pdist>0) - { -// Outside the plane - if (Comp>0) - { -// Leaving immediately - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); - } - return snxt=0; - } - } - else if (pdist<-kCarTolerance/2) - { -// Inside the plane - if (Comp>0) - { -// Will leave extent - vdist=-pdist/Comp; - if (vdist0) - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); - } - return snxt=0; - } - } + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(0,0,-1); + } + return snxt=0; + } + } + else + { + snxt=kInfinity; + } + // + // Intersections with planes[0] (expanded because of setting enum) + // + pdist=fPlanes[0].a*p.x()+fPlanes[0].b*p.y()+fPlanes[0].c*p.z()+fPlanes[0].d; + Comp=fPlanes[0].a*v.x()+fPlanes[0].b*v.y()+fPlanes[0].c*v.z(); + if (pdist>0) + { + // Outside the plane + if (Comp>0) + { + // Leaving immediately + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); + } + return snxt=0; + } + } + else if (pdist<-kCarTolerance/2) + { + // Inside the plane + if (Comp>0) + { + // Will leave extent + vdist=-pdist/Comp; + if (vdist0) + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); + } + return snxt=0; + } + } -// -// Intersections with planes[1] (expanded because of setting enum) -// - pdist=fPlanes[1].a*p.x()+fPlanes[1].b*p.y()+fPlanes[1].c*p.z()+fPlanes[1].d; - Comp=fPlanes[1].a*v.x()+fPlanes[1].b*v.y()+fPlanes[1].c*v.z(); - if (pdist>0) - { -// Outside the plane - if (Comp>0) - { -// Leaving immediately - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); - } - return snxt=0; - } - } - else if (pdist<-kCarTolerance/2) - { -// Inside the plane - if (Comp>0) - { -// Will leave extent - vdist=-pdist/Comp; - if (vdist0) - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); - } - return snxt=0; - } - } + // + // Intersections with planes[1] (expanded because of setting enum) + // + pdist=fPlanes[1].a*p.x()+fPlanes[1].b*p.y()+fPlanes[1].c*p.z()+fPlanes[1].d; + Comp=fPlanes[1].a*v.x()+fPlanes[1].b*v.y()+fPlanes[1].c*v.z(); + if (pdist>0) + { + // Outside the plane + if (Comp>0) + { + // Leaving immediately + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); + } + return snxt=0; + } + } + else if (pdist<-kCarTolerance/2) + { + // Inside the plane + if (Comp>0) + { + // Will leave extent + vdist=-pdist/Comp; + if (vdist0) + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); + } + return snxt=0; + } + } -// -// Intersections with planes[2] (expanded because of setting enum) -// - pdist=fPlanes[2].a*p.x()+fPlanes[2].b*p.y()+fPlanes[2].c*p.z()+fPlanes[2].d; - Comp=fPlanes[2].a*v.x()+fPlanes[2].b*v.y()+fPlanes[2].c*v.z(); - if (pdist>0) - { -// Outside the plane - if (Comp>0) - { -// Leaving immediately - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); - } - return snxt=0; - } - } - else if (pdist<-kCarTolerance/2) - { -// Inside the plane - if (Comp>0) - { -// Will leave extent - vdist=-pdist/Comp; - if (vdist0) - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); - } - return snxt=0; - } - } + // + // Intersections with planes[2] (expanded because of setting enum) + // + pdist=fPlanes[2].a*p.x()+fPlanes[2].b*p.y()+fPlanes[2].c*p.z()+fPlanes[2].d; + Comp=fPlanes[2].a*v.x()+fPlanes[2].b*v.y()+fPlanes[2].c*v.z(); + if (pdist>0) + { + // Outside the plane + if (Comp>0) + { + // Leaving immediately + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); + } + return snxt=0; + } + } + else if (pdist<-kCarTolerance/2) + { + // Inside the plane + if (Comp>0) + { + // Will leave extent + vdist=-pdist/Comp; + if (vdist0) + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); + } + return snxt=0; + } + } -// -// Intersections with planes[3] (expanded because of setting enum) -// - pdist=fPlanes[3].a*p.x()+fPlanes[3].b*p.y()+fPlanes[3].c*p.z()+fPlanes[3].d; - Comp=fPlanes[3].a*v.x()+fPlanes[3].b*v.y()+fPlanes[3].c*v.z(); - if (pdist>0) - { -// Outside the plane - if (Comp>0) - { -// Leaving immediately - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); - } - return snxt=0; - } - } - else if (pdist<-kCarTolerance/2) - { -// Inside the plane - if (Comp>0) - { -// Will leave extent - vdist=-pdist/Comp; - if (vdist0) - { - if (calcNorm) - { - *validNorm=true; - *n=G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); - } - return snxt=0; - } - } + // + // Intersections with planes[3] (expanded because of setting enum) + // + pdist=fPlanes[3].a*p.x()+fPlanes[3].b*p.y()+fPlanes[3].c*p.z()+fPlanes[3].d; + Comp=fPlanes[3].a*v.x()+fPlanes[3].b*v.y()+fPlanes[3].c*v.z(); + if (pdist>0) + { + // Outside the plane + if (Comp>0) + { + // Leaving immediately + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); + } + return snxt=0; + } + } + else if (pdist<-kCarTolerance/2) + { + // Inside the plane + if (Comp>0) + { + // Will leave extent + vdist=-pdist/Comp; + if (vdist0) + { + if (calcNorm) + { + *validNorm=true; + *n=G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); + } + return snxt=0; + } + } -// set normal - if (calcNorm) - { - *validNorm=true; - switch(side) - { - case ks0: - *n=G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); - break; - case ks1: - *n=G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); - break; - case ks2: - *n=G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); - break; - case ks3: - *n=G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); - break; - case kMZ: - *n=G4ThreeVector(0,0,-1); - break; - case kPZ: - *n=G4ThreeVector(0,0,1); - break; - default: - break; - } - } - return snxt; + // set normal + if (calcNorm) + { + *validNorm=true; + switch(side) + { + case ks0: + *n=G4ThreeVector(fPlanes[0].a,fPlanes[0].b,fPlanes[0].c); + break; + case ks1: + *n=G4ThreeVector(fPlanes[1].a,fPlanes[1].b,fPlanes[1].c); + break; + case ks2: + *n=G4ThreeVector(fPlanes[2].a,fPlanes[2].b,fPlanes[2].c); + break; + case ks3: + *n=G4ThreeVector(fPlanes[3].a,fPlanes[3].b,fPlanes[3].c); + break; + case kMZ: + *n=G4ThreeVector(0,0,-1); + break; + case kPZ: + *n=G4ThreeVector(0,0,1); + break; + default: + break; + } + } + return snxt; } ////////////////////////////////////////////////////////////////////////////// @@ -1363,7 +1529,7 @@ G4double G4Trap::DistanceToOut(const G4ThreeVector& p,const G4ThreeVector& v, // Calculate exact shortest distance to any boundary from inside // - Returns 0 is ThreeVector outside -G4double G4Trap::DistanceToOut(const G4ThreeVector& p) const +G4double G4Trap::DistanceToOut( const G4ThreeVector& p ) const { G4double safe,Dist; G4int i; @@ -1373,24 +1539,13 @@ G4double G4Trap::DistanceToOut(const G4ThreeVector& p) const { G4cout.precision(16) ; G4cout << G4endl ; - G4cout << "Trapezoid parameters:" << G4endl << G4endl ; - G4cout << "fDz = " << fDz/mm << " mm" << G4endl ; - G4cout << "fTthetaCphi = " << fTthetaCphi/degree << " degree" << G4endl ; - G4cout << "fTthetaSphi = " << fTthetaSphi/degree << " degree" << G4endl ; - G4cout << "fDy1 = " << fDy1/mm << " mm" << G4endl ; - G4cout << "fDx1 = " << fDx1/mm << " mm" << G4endl ; - G4cout << "fDx2 = " << fDx2/mm << " mm" << G4endl ; - G4cout << "fTalpha1 = " << fTalpha1/degree << " degree" << G4endl; - G4cout << "fDy2 = " << fDy2/mm << " mm" << G4endl ; - G4cout << "fDx3 = " << fDx3/mm << " mm" << G4endl ; - G4cout << "fDx4 = " << fDx4/mm << " mm" << G4endl ; - G4cout << "fTalpha2 = " << fTalpha2/degree << " degree" << G4endl << G4endl; + DumpInfo(); G4cout << "Position:" << G4endl << G4endl ; G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; G4cout << "G4Trap::DistanceToOut(p) - point p is outside ?!" << G4endl ; - // G4Exception("Invalid call in G4Trap::DistanceToOut(p), point p is outside") ; + G4cerr << "G4Trap::DistanceToOut(p) - point p is outside ?!" << G4endl ; } #endif @@ -1400,13 +1555,13 @@ G4double G4Trap::DistanceToOut(const G4ThreeVector& p) const { 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); - + Dist=-(fPlanes[i].a*p.x()+fPlanes[i].b*p.y() + +fPlanes[i].c*p.z()+fPlanes[i].d); if (Distreserve(8); - if (vertices) - { - G4ThreeVector vertex0(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - G4ThreeVector vertex1(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - G4ThreeVector vertex2(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - G4ThreeVector vertex3(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - G4ThreeVector vertex4(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - G4ThreeVector vertex5(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - G4ThreeVector vertex6(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - G4ThreeVector vertex7(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); + G4ThreeVectorList *vertices; + vertices=new G4ThreeVectorList(); + vertices->reserve(8); + if (vertices) + { + G4ThreeVector vertex0(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + G4ThreeVector vertex1(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + G4ThreeVector vertex2(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + G4ThreeVector vertex3(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + G4ThreeVector vertex4(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + G4ThreeVector vertex5(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + G4ThreeVector vertex6(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + G4ThreeVector vertex7(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, + +fDz*fTthetaSphi+fDy2,+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 - { - G4Exception("G4Trap::CreateRotatedVertices - Out of memory !"); - } - return vertices; + 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("G4Trap::CreateRotatedVertices() - Out of memory !"); + } + return vertices; +} + +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType + +G4GeometryType G4Trap::GetEntityType() const +{ + return G4String("G4Trap"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Trap::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Trap\n" + << " Parameters: \n" + << " half length Z: " << fDz/mm << " mm \n" + << " half length Y of face -fDz: " << fDy1/mm << " mm \n" + << " half length X of side -fDy1, face -fDz: " << fDx1/mm << " mm \n" + << " half length X of side +fDy1, face -fDz: " << fDx2/mm << " mm \n" + << " half length Y of face +fDz: " << fDy2/mm << " mm \n" + << " half length X of side -fDy2, face +fDz: " << fDx3/mm << " mm \n" + << " half length X of side +fDy2, face +fDz: " << fDx4/mm << " mm \n" + << " tan(theta)*cos(phi): " << fTthetaCphi/degree << " degrees \n" + << " tan(theta)*sin(phi): " << fTthetaSphi/degree << " degrees \n" + << " tan(alpha), -fDz: " << fTalpha1/degree << " degrees \n" + << " tan(alpha), +fDz: " << fTalpha2/degree << " degrees \n" + << " trap side plane equations:\n" + << " " << fPlanes[0].a << " X + " << fPlanes[0].b << " Y + " + << fPlanes[0].c << " Z + " << fPlanes[0].d << " = 0\n" + << " " << fPlanes[1].a << " X + " << fPlanes[1].b << " Y + " + << fPlanes[1].c << " Z + " << fPlanes[1].d << " = 0\n" + << " " << fPlanes[2].a << " X + " << fPlanes[2].b << " Y + " + << fPlanes[2].c << " Z + " << fPlanes[2].d << " = 0\n" + << " " << fPlanes[3].a << " X + " << fPlanes[3].b << " Y + " + << fPlanes[3].c << " Z + " << fPlanes[3].d << " = 0\n" + << "-----------------------------------------------------------\n"; + + return os; } /////////////////////////////////////////////////////////////////////////////// // // Methods for visualisation -void G4Trap::DescribeYourselfTo (G4VGraphicsScene& scene) const +void G4Trap::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { scene.AddThis (*this); } G4Polyhedron* G4Trap::CreatePolyhedron () const { - G4double phi = atan2(fTthetaSphi, fTthetaCphi); - G4double alpha1 = atan(fTalpha1); - G4double alpha2 = atan(fTalpha2); - G4double theta = atan(sqrt - (fTthetaCphi*fTthetaCphi+fTthetaSphi*fTthetaSphi)); - return new G4PolyhedronTrap(fDz, theta, phi, fDy1, fDx1, fDx2, alpha1, - fDy2, fDx3, fDx4, alpha2); + G4double phi = atan2(fTthetaSphi, fTthetaCphi); + G4double alpha1 = atan(fTalpha1); + G4double alpha2 = atan(fTalpha2); + G4double theta = atan(sqrt(fTthetaCphi*fTthetaCphi+fTthetaSphi*fTthetaSphi)); + + return new G4PolyhedronTrap(fDz, theta, phi, + fDy1, fDx1, fDx2, alpha1, + fDy2, fDx3, fDx4, alpha2); } G4NURBS* G4Trap::CreateNURBS () const @@ -1479,8 +1689,3 @@ G4NURBS* G4Trap::CreateNURBS () const // ******************************** End of G4Trap.cc ******************************** - - - - - diff --git a/source/geometry/solids/CSG/src/G4Trd.cc b/source/geometry/solids/CSG/src/G4Trd.cc index f5574a6e0c..b527c14632 100644 --- a/source/geometry/solids/CSG/src/G4Trd.cc +++ b/source/geometry/solids/CSG/src/G4Trd.cc @@ -21,15 +21,17 @@ // ******************************************************************** // // -// $Id: G4Trd.cc,v 1.10 2002/01/10 15:42:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Trd.cc,v 1.12 2002/10/28 15:18:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Implementation for G4Trd class // // History: -// ~1996, V. Grichine, 1st implementation based on old code of P. Kent -// 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 +// 07.05.00, V.Grichine, in d = DistanceToIn(p,v), if d<0.5*kCarTolerance, d=0 +// +// ******************************************************************** #include "G4Trd.hh" @@ -46,10 +48,11 @@ // // Constructor - check & set half widths -G4Trd::G4Trd(const G4String& pName, - G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz) : G4CSGSolid(pName) +G4Trd::G4Trd( const G4String& pName, + G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, + G4double pdz ) + : G4CSGSolid(pName) { CheckAndSetAllParameters (pdx1, pdx2, pdy1, pdy2, pdz); } @@ -58,32 +61,47 @@ G4Trd::G4Trd(const G4String& pName, // // Set and check (coplanarity) of trd parameters -void -G4Trd::CheckAndSetAllParameters (G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz) +void G4Trd::CheckAndSetAllParameters ( G4double pdx1, G4double pdx2, + G4double pdy1, G4double pdy2, + G4double pdz ) { - if (pdx1>0&&pdx2>0&&pdy1>0&&pdy2>0&&pdz>0) - { - fDx1=pdx1; fDx2=pdx2; - fDy1=pdy1; fDy2=pdy2; - fDz=pdz; - } + if ( pdx1>0&&pdx2>0&&pdy1>0&&pdy2>0&&pdz>0 ) + { + fDx1=pdx1; fDx2=pdx2; + fDy1=pdy1; fDy2=pdy2; + fDz=pdz; + } else + { + if ( pdx1>=0 && pdx2>=0 && pdy1>=0 && pdy2>=0 && pdz>=0 ) { - if (pdx1>=0 && pdx2>=0 && pdy1>=0 && pdy2>=0 && pdz>=0) - { - // G4double Minimum_length= (1+per_thousand) * kCarTolerance/2.; - // FIX-ME : temporary solution for ZERO or very-small parameters. - G4double Minimum_length= kCarTolerance/2.; - fDx1=G4std::max(pdx1,Minimum_length); - fDx2=G4std::max(pdx2,Minimum_length); - fDy1=G4std::max(pdy1,Minimum_length); - fDy2=G4std::max(pdy2,Minimum_length); - fDz=G4std::max(pdz,Minimum_length); - } - else G4Exception("Error in G4Trd::G4Trd - One or more parameters are < 0"); + // G4double Minimum_length= (1+per_thousand) * kCarTolerance/2.; + // FIX-ME : temporary solution for ZERO or very-small parameters + // + G4double Minimum_length= kCarTolerance/2.; + fDx1=G4std::max(pdx1,Minimum_length); + fDx2=G4std::max(pdx2,Minimum_length); + fDy1=G4std::max(pdy1,Minimum_length); + fDy2=G4std::max(pdy2,Minimum_length); + fDz=G4std::max(pdz,Minimum_length); } + else + { + G4cout << "ERROR - G4Trd()::CheckAndSetAllParameters(): " << GetName() + << G4endl + << " Invalid dimensions, some are < 0 !" << G4endl + << " X - " << pdx1 << ", " << pdx2 << G4endl + << " Y - " << pdy1 << ", " << pdy2 << G4endl + << " Z - " << pdz << G4endl; + G4cerr << "ERROR - G4Trd()::CheckAndSetAllParameters(): " << GetName() + << G4endl + << " Invalid dimensions, some are < 0 !" << G4endl + << " X - " << pdx1 << ", " << pdx2 << G4endl + << " Y - " << pdy1 << ", " << pdy2 << G4endl + << " Z - " << pdz << G4endl; + G4Exception("G4Trd::CheckAndSetAllParameters() - Invalid parameters"); + } + } } ////////////////////////////////////////////////////////////////////////// @@ -91,14 +109,15 @@ G4Trd::CheckAndSetAllParameters (G4double pdx1, G4double pdx2, // Destructor G4Trd::~G4Trd() -{} +{ +} //////////////////////////////////////////////////////////////////////////// // // -void G4Trd::SetAllParameters (G4double pdx1, G4double pdx2, G4double pdy1, - G4double pdy2, G4double pdz) +void G4Trd::SetAllParameters ( G4double pdx1, G4double pdx2, G4double pdy1, + G4double pdy2, G4double pdz ) { CheckAndSetAllParameters (pdx1, pdx2, pdy1, pdy2, pdz); } @@ -109,11 +128,11 @@ void G4Trd::SetAllParameters (G4double pdx1, G4double pdx2, G4double pdy1, // Dispatch to parameterisation for replication mechanism dimension // computation & modification. - void G4Trd::ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep) +void G4Trd::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ) { - p->ComputeDimensions(*this,n,pRep); + p->ComputeDimensions(*this,n,pRep); } @@ -121,240 +140,239 @@ void G4Trd::SetAllParameters (G4double pdx1, G4double pdx2, G4double pdy1, // // Calculate extent under transform and specified limit -G4bool G4Trd::CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const +G4bool G4Trd::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const { - if (!pTransform.IsRotated()) - { -// Special case handling for unrotated solids -// 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; + if (!pTransform.IsRotated()) + { + // Special case handling for unrotated solids + // Compute x/y/z mins and maxs respecting limits, with early returns + // if outside limits. Then switch() on pAxis - zoffset=pTransform.NetTranslation().z(); - zMin=zoffset-fDz; - zMax=zoffset+fDz; - if (pVoxelLimit.IsZLimited()) - { - if (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance - ||zMaxpVoxelLimit.GetMaxZExtent()) - { - zMax=pVoxelLimit.GetMaxZExtent(); - } - } - } + G4double xoffset,xMin,xMax; + G4double yoffset,yMin,yMax; + G4double zoffset,zMin,zMax; - - xoffset=pTransform.NetTranslation().x(); - if (fDx2 >= fDx1) - { - xMax = xoffset+(fDx1+fDx2)/2+(zMax-zoffset)*(fDx2-fDx1)/(2*fDz) ; - xMin = 2*xoffset - xMax ; - } - else - { - xMax = xoffset+(fDx1+fDx2)/2+(zMin-zoffset)*(fDx2-fDx1)/(2*fDz) ; - xMin = 2*xoffset - xMax ; - } - if (pVoxelLimit.IsXLimited()) - { - if (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance - ||xMaxpVoxelLimit.GetMaxXExtent()) - { - xMax=pVoxelLimit.GetMaxXExtent(); - } - } - } - - - yoffset= pTransform.NetTranslation().y() ; - if(fDy2 >= fDy1) + zoffset=pTransform.NetTranslation().z(); + zMin=zoffset-fDz; + zMax=zoffset+fDz; + if (pVoxelLimit.IsZLimited()) + { + if ( (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance) + || (zMaxpVoxelLimit.GetMaxZExtent()) { - yMax = yoffset+(fDy2+fDy1)/2+(zMin-zoffset)*(fDy2-fDy1)/(2*fDz) ; - yMin = 2*yoffset - yMax ; - } - if (pVoxelLimit.IsYLimited()) - { - if (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance - ||yMaxpVoxelLimit.GetMaxYExtent()) - { - yMax=pVoxelLimit.GetMaxYExtent(); - } - } - } - - - - - 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; - } -// Add 2*Tolerance to avoid precision troubles ? - pMin-=kCarTolerance; - pMax+=kCarTolerance; - - return true; - } + zMax=pVoxelLimit.GetMaxZExtent(); + } + } + } + xoffset=pTransform.NetTranslation().x(); + if (fDx2 >= fDx1) + { + xMax = xoffset+(fDx1+fDx2)/2+(zMax-zoffset)*(fDx2-fDx1)/(2*fDz) ; + xMin = 2*xoffset - xMax ; + } else - { -// General rotated case - create and clip mesh to boundaries + { + xMax = xoffset+(fDx1+fDx2)/2+(zMin-zoffset)*(fDx2-fDx1)/(2*fDz) ; + xMin = 2*xoffset - xMax ; + } + if (pVoxelLimit.IsXLimited()) + { + if ( (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance) + || (xMaxpVoxelLimit.GetMaxXExtent()) + { + xMax=pVoxelLimit.GetMaxXExtent(); + } + } + } + yoffset= pTransform.NetTranslation().y() ; + if(fDy2 >= fDy1) + { + yMax = yoffset+(fDy2+fDy1)/2+(zMax-zoffset)*(fDy2-fDy1)/(2*fDz) ; + yMin = 2*yoffset - yMax ; + } + else + { + yMax = yoffset+(fDy2+fDy1)/2+(zMin-zoffset)*(fDy2-fDy1)/(2*fDz) ; + yMin = 2*yoffset - yMax ; + } + if (pVoxelLimit.IsYLimited()) + { + if ( (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance) + || (yMaxpVoxelLimit.GetMaxYExtent()) + { + yMax=pVoxelLimit.GetMaxYExtent(); + } + } + } - G4bool existsAfterClip=false; - G4ThreeVectorList *vertices; + 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=+kInfinity; - pMax=-kInfinity; -// Calculate rotated vertex coordinates + // Add 2*Tolerance to avoid precision troubles ? + // + pMin-=kCarTolerance; + pMax+=kCarTolerance; - 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 (pMin!=kInfinity||pMax!=-kInfinity) - { - existsAfterClip=true; - -// Add 2*tolerance to avoid precision troubles - pMin-=kCarTolerance; - pMax+=kCarTolerance; - - } - else - { -// 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. - G4ThreeVector clipCentre( - (pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, - (pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, - (pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); - - if (Inside(pTransform.Inverse().TransformPoint(clipCentre))!=kOutside) - { - existsAfterClip=true; - pMin=pVoxelLimit.GetMinExtent(pAxis); - pMax=pVoxelLimit.GetMaxExtent(pAxis); - } - } - delete vertices; - return existsAfterClip; - } + 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 (pMin!=kInfinity||pMax!=-kInfinity) + { + existsAfterClip=true; + + // Add 2*tolerance to avoid precision troubles + // + pMin-=kCarTolerance; + pMax+=kCarTolerance; + + } + else + { + // 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. + + G4ThreeVector clipCentre( + (pVoxelLimit.GetMinXExtent()+pVoxelLimit.GetMaxXExtent())*0.5, + (pVoxelLimit.GetMinYExtent()+pVoxelLimit.GetMaxYExtent())*0.5, + (pVoxelLimit.GetMinZExtent()+pVoxelLimit.GetMaxZExtent())*0.5); + + if (Inside(pTransform.Inverse().TransformPoint(clipCentre))!=kOutside) + { + existsAfterClip=true; + pMin=pVoxelLimit.GetMinExtent(pAxis); + pMax=pVoxelLimit.GetMaxExtent(pAxis); + } + } + delete vertices; + return existsAfterClip; + } } /////////////////////////////////////////////////////////////////// // // Return whether point inside/outside/on surface, using tolerance -EInside G4Trd::Inside(const G4ThreeVector& p) const +EInside G4Trd::Inside( const G4ThreeVector& p ) const { - EInside in=kOutside; - double x,y,zbase1,zbase2; + EInside in=kOutside; + G4double x,y,zbase1,zbase2; - if (fabs(p.z())<=fDz-kCarTolerance/2) - { - zbase1=p.z()+fDz; // Dist from -ve z plane - zbase2=fDz-p.z(); // Dist from +ve z plane -// Check whether inside x tolerance - x=0.5*(fDx2*zbase1+fDx1*zbase2)/fDz - kCarTolerance/2; - if (fabs(p.x())<=x) - { - y=0.5*((fDy2*zbase1+fDy1*zbase2))/fDz - - kCarTolerance/2; - if (fabs(p.y())<=y) - { - in=kInside; - } - else if (fabs(p.y())<=y+kCarTolerance) - { - in=kSurface; - } - } - else if (fabs(p.x())<=x+kCarTolerance) - { -// y = y half width of shape at z of point + tolerant boundary - y=0.5*((fDy2*zbase1+fDy1*zbase2))/fDz - + kCarTolerance/2; - if (fabs(p.y())<=y) - { - in=kSurface; - } - } - } - else if (fabs(p.z())<=fDz+kCarTolerance/2) - { -// Only need to check outer tolerant boundaries - zbase1=p.z()+fDz; // Dist from -ve z plane - zbase2=fDz-p.z(); // Dist from +ve z plane + if (fabs(p.z())<=fDz-kCarTolerance/2) + { + zbase1=p.z()+fDz; // Dist from -ve z plane + zbase2=fDz-p.z(); // Dist from +ve z plane -// x = x half width of shape at z of point plus tolerance - x=0.5*(fDx2*zbase1+fDx1*zbase2)/fDz + kCarTolerance/2; - if (fabs(p.x())<=x) - { -// y = y half width of shape at z of point - y=0.5*((fDy2*zbase1+fDy1*zbase2))/fDz - + kCarTolerance/2; - if (fabs(p.y())<=y) in=kSurface; - } + // Check whether inside x tolerance + // + x=0.5*(fDx2*zbase1+fDx1*zbase2)/fDz - kCarTolerance/2; + if (fabs(p.x())<=x) + { + y=0.5*((fDy2*zbase1+fDy1*zbase2))/fDz - kCarTolerance/2; + if (fabs(p.y())<=y) + { + in=kInside; + } + else if (fabs(p.y())<=y+kCarTolerance) + { + in=kSurface; + } + } + else if (fabs(p.x())<=x+kCarTolerance) + { + // y = y half width of shape at z of point + tolerant boundary + // + y=0.5*((fDy2*zbase1+fDy1*zbase2))/fDz + kCarTolerance/2; + if (fabs(p.y())<=y) + { + in=kSurface; + } + } + } + else if (fabs(p.z())<=fDz+kCarTolerance/2) + { + // Only need to check outer tolerant boundaries + // + zbase1=p.z()+fDz; // Dist from -ve z plane + zbase2=fDz-p.z(); // Dist from +ve z plane - } - - return in; + // x = x half width of shape at z of point plus tolerance + // + x=0.5*(fDx2*zbase1+fDx1*zbase2)/fDz + kCarTolerance/2; + if (fabs(p.x())<=x) + { + // y = y half width of shape at z of point + // + y=0.5*((fDy2*zbase1+fDy1*zbase2))/fDz + kCarTolerance/2; + if (fabs(p.y())<=y) in=kSurface; + } + } + return in; } ////////////////////////////////////////////////////////////////////////// @@ -363,79 +381,83 @@ EInside G4Trd::Inside(const G4ThreeVector& p) const // If two sides are equidistant, normal of first side (x/y/z) // encountered returned -G4ThreeVector G4Trd::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4Trd::SurfaceNormal( const G4ThreeVector& p ) const { - G4ThreeVector norm; - G4double z,tanx,secx,newpx,widx; - G4double tany,secy,newpy,widy; - G4double distx,disty,distz,fcos; + G4ThreeVector norm; + G4double z,tanx,secx,newpx,widx; + G4double tany,secy,newpy,widy; + G4double distx,disty,distz,fcos; - z=2.0*fDz; + z=2.0*fDz; - tanx=(fDx2-fDx1)/z; - secx=sqrt(1.0+tanx*tanx); - newpx=fabs(p.x())-p.z()*tanx; - widx=fDx2-fDz*tanx; + tanx=(fDx2-fDx1)/z; + secx=sqrt(1.0+tanx*tanx); + newpx=fabs(p.x())-p.z()*tanx; + widx=fDx2-fDz*tanx; - tany=(fDy2-fDy1)/z; - secy=sqrt(1.0+tany*tany); - newpy=fabs(p.y())-p.z()*tany; - widy=fDy2-fDz*tany; + tany=(fDy2-fDy1)/z; + secy=sqrt(1.0+tany*tany); + newpy=fabs(p.y())-p.z()*tany; + widy=fDy2-fDz*tany; - distx=fabs(newpx-widx)/secx; // perpendicular distance to x side - disty=fabs(newpy-widy)/secy; // to y side - distz=fabs(fabs(p.z())-fDz); // to z side + distx=fabs(newpx-widx)/secx; // perpendicular distance to x side + disty=fabs(newpy-widy)/secy; // to y side + distz=fabs(fabs(p.z())-fDz); // to z side -// find closest side - if (distx<=disty) - { - if (distx<=distz) - { -// Closest to X - fcos=1.0/secx; -//normal=(+/-cos(ang),0,-sin(ang)) - if (p.x()>=0) - norm=G4ThreeVector(fcos,0,-tanx*fcos); - else - norm=G4ThreeVector(-fcos,0,-tanx*fcos); - } - else - { -// Closest to Z - if (p.z()>=0) - norm=G4ThreeVector(0,0,1); - else - norm=G4ThreeVector(0,0,-1); - } - } + // find closest side + // + if (distx<=disty) + { + if (distx<=distz) + { + // Closest to X + // + fcos=1.0/secx; + // normal=(+/-cos(ang),0,-sin(ang)) + if (p.x()>=0) + norm=G4ThreeVector(fcos,0,-tanx*fcos); + else + norm=G4ThreeVector(-fcos,0,-tanx*fcos); + } else - { - if (disty<=distz) - { -// Closest to Y - fcos=1.0/secy; - if (p.y()>=0) - norm=G4ThreeVector(0,fcos,-tany*fcos); - else - norm=G4ThreeVector(0,-fcos,-tany*fcos); - } - else - { -// Closest to Z - if (p.z()>=0) - norm=G4ThreeVector(0,0,1); - else - norm=G4ThreeVector(0,0,-1); - } - } - - - return norm; + { + // Closest to Z + // + if (p.z()>=0) + norm=G4ThreeVector(0,0,1); + else + norm=G4ThreeVector(0,0,-1); + } + } + else + { + if (disty<=distz) + { + // Closest to Y + // + fcos=1.0/secy; + if (p.y()>=0) + norm=G4ThreeVector(0,fcos,-tany*fcos); + else + norm=G4ThreeVector(0,-fcos,-tany*fcos); + } + else + { + // Closest to Z + // + if (p.z()>=0) + norm=G4ThreeVector(0,0,1); + else + norm=G4ThreeVector(0,0,-1); + } + } + return norm; } //////////////////////////////////////////////////////////////////////////// // -// Calculate distance to shape from outside - return kInfinity if no intersection +// Calculate distance to shape from outside +// - return kInfinity if no intersection // // ALGORITHM: // For each component, calculate pair of minimum and maximum intersection @@ -452,10 +474,10 @@ G4ThreeVector G4Trd::SurfaceNormal( const G4ThreeVector& p) const // `Inside' safe - meaningful answers given if point is inside the exact // shape. -G4double G4Trd::DistanceToIn(const G4ThreeVector& p, - const G4ThreeVector& v) const +G4double G4Trd::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const { - G4double snxt = kInfinity ; // snxt = default return value + G4double snxt = kInfinity ; // snxt = default return value G4double smin,smax; G4double s1,s2,tanxz,tanyz,ds1,ds2; G4double ss1,ss2,sn1=0.,sn2=0.,Dist; @@ -464,23 +486,23 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, { if ( v.z() > 0 ) // Calculate smax: must be +ve or no intersection. { - Dist = fDz - p.z() ; // to plane at +dz + Dist = fDz - p.z() ; // to plane at +dz if (Dist >= 0.5*kCarTolerance) { smax = Dist/v.z() ; - smin = -(fDz + p.z())/v.z() ; + smin = -(fDz + p.z())/v.z() ; } else return snxt ; } else // v.z <0 { - Dist=fDz+p.z(); // plane at -dz + Dist=fDz+p.z(); // plane at -dz if ( Dist >= 0.5*kCarTolerance ) { smax = -Dist/v.z() ; - smin = (fDz - p.z())/v.z() ; + smin = (fDz - p.z())/v.z() ; } else return snxt ; } @@ -491,23 +513,23 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, if (fabs(p.z()) >= fDz ) return snxt ; // Outside & no intersect else { - smin = 0 ; // Always inside z range + smin = 0 ; // Always inside z range smax = kInfinity; } } -// Calculate x intersection range -// -// Calc half width at p.z, and components towards planes + // Calculate x intersection range + // + // Calc half width at p.z, and components towards planes tanxz = (fDx2 - fDx1)*0.5/fDz ; s1 = 0.5*(fDx1+fDx2) + tanxz*p.z() ; // x half width at p.z - ds1 = v.x() - tanxz*v.z() ; // Components of v towards faces at +-x + ds1 = v.x() - tanxz*v.z() ; // Components of v towards faces at +-x ds2 = v.x() + tanxz*v.z() ; - ss1 = s1 - p.x() ; // -delta x to +ve plane - // -ve when outside - ss2 = -s1 - p.x() ; // -delta x to -ve plane - // +ve when outside + ss1 = s1 - p.x() ; // -delta x to +ve plane + // -ve when outside + ss2 = -s1 - p.x() ; // -delta x to -ve plane + // +ve when outside if (ss1 < 0 && ss2 <= 0 ) { @@ -515,7 +537,7 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, { sn1 = ss1/ds1 ; - if ( ds2 < 0 ) sn2 = ss2/ds2 ; + if ( ds2 < 0 ) sn2 = ss2/ds2 ; else sn2 = kInfinity ; } else return snxt ; @@ -526,18 +548,18 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, { sn1 = ss2/ds2 ; - if (ds1 > 0) sn2 = ss1/ds1 ; - else sn2 = kInfinity; - + if (ds1 > 0) sn2 = ss1/ds1 ; + else sn2 = kInfinity; + } else return snxt ; } else if (ss1 >= 0 && ss2 <= 0 ) { - -// Inside Area - calculate leaving distance -// *Don't* use exact distance to side for tolerance = ss1*cos(ang xz) -// = ss1/sqrt(1.0+tanxz*tanxz) + // Inside Area - calculate leaving distance + // *Don't* use exact distance to side for tolerance + // = ss1*cos(ang xz) + // = ss1/sqrt(1.0+tanxz*tanxz) sn1 = 0 ; if ( ds1 > 0 ) @@ -546,7 +568,7 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, else return snxt ; // Leave immediately by +ve } else sn2 = kInfinity ; - + if ( ds2 < 0 ) { if ( ss2 < -0.5*kCarTolerance ) @@ -559,8 +581,7 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, } else if (ss1 < 0 && ss2 > 0 ) { - -// Within +/- plane cross-over areas (not on boundaries ss1||ss2==0) + // Within +/- plane cross-over areas (not on boundaries ss1||ss2==0) if ( ds1 >= 0 || ds2 <= 0 ) { @@ -575,32 +596,31 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, } } -// Reduce allowed range of distances as appropriate + // Reduce allowed range of distances as appropriate if ( sn1 > smin ) smin = sn1 ; if ( sn2 < smax ) smax = sn2 ; -// Check for incompatible ranges (eg z intersects between 50 ->100 and x -// only 10-40 -> no intersection) + // Check for incompatible ranges (eg z intersects between 50 ->100 and x + // only 10-40 -> no intersection) if ( smax < smin ) return snxt ; -// Calculate valid y intersection range -// (repeat of x intersection code) + // Calculate valid y intersection range + // (repeat of x intersection code) tanyz = (fDy2-fDy1)*0.5/fDz ; s2 = 0.5*(fDy1+fDy2) + tanyz*p.z() ; // y half width at p.z - ds1 = v.y() - tanyz*v.z() ; // Components of v towards faces at +-y + ds1 = v.y() - tanyz*v.z() ; // Components of v towards faces at +-y ds2 = v.y() + tanyz*v.z() ; - ss1 = s2 - p.y() ; // -delta y to +ve plane - ss2 = -s2 - p.y() ; // -delta y to -ve plane + ss1 = s2 - p.y() ; // -delta y to +ve plane + ss2 = -s2 - p.y() ; // -delta y to -ve plane if ( ss1 < 0 && ss2 <= 0 ) { if (ds1 < 0 ) // In +ve coord Area { sn1 = ss1/ds1 ; - if ( ds2 < 0 ) sn2 = ss2/ds2 ; else sn2 = kInfinity ; } @@ -611,18 +631,17 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, if ( ds2 > 0 ) // In -ve coord Area { sn1 = ss2/ds2 ; - if ( ds1 > 0 ) sn2 = ss1/ds1 ; - else sn2 = kInfinity ; + else sn2 = kInfinity ; } else return snxt ; } else if (ss1 >= 0 && ss2 <= 0 ) { - -// Inside Area - calculate leaving distance -// *Don't* use exact distance to side for tolerance = ss1*cos(ang yz) -// = ss1/sqrt(1.0+tanyz*tanyz) + // Inside Area - calculate leaving distance + // *Don't* use exact distance to side for tolerance + // = ss1*cos(ang yz) + // = ss1/sqrt(1.0+tanyz*tanyz) sn1 = 0 ; if ( ds1 > 0 ) @@ -631,22 +650,20 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, else return snxt ; // Leave immediately by +ve } else sn2 = kInfinity ; - + if ( ds2 < 0 ) { if ( ss2 < -0.5*kCarTolerance ) { Dist = ss2/ds2 ; // Leave -ve side extent - - if (Dist < sn2) sn2=Dist; + if (Dist < sn2) sn2=Dist; } else return snxt ; } } else if (ss1 < 0 && ss2 > 0 ) { - -// Within +/- plane cross-over areas (not on boundaries ss1||ss2==0) + // Within +/- plane cross-over areas (not on boundaries ss1||ss2==0) if (ds1 >= 0 || ds2 <= 0 ) { @@ -660,14 +677,14 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, sn2 = kInfinity ; } } - -// Reduce allowed range of distances as appropriate + + // Reduce allowed range of distances as appropriate if ( sn1 > smin) smin = sn1 ; if ( sn2 < smax) smax = sn2 ; -// Check for incompatible ranges (eg x intersects between 50 ->100 and y -// only 10-40 -> no intersection). Set snxt if ok + // Check for incompatible ranges (eg x intersects between 50 ->100 and y + // only 10-40 -> no intersection). Set snxt if ok if ( smax > smin ) snxt = smin ; if (snxt < 0.5*kCarTolerance ) snxt = 0.0 ; @@ -683,41 +700,42 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p, // - Safe underestimate // - If point within exact shape, return 0 -G4double G4Trd::DistanceToIn(const G4ThreeVector& p) const +G4double G4Trd::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe; - G4double tanxz,distx,safx; - G4double tanyz,disty,safy; - G4double zbase; + G4double safe; + G4double tanxz,distx,safx; + G4double tanyz,disty,safy; + G4double zbase; - safe=fabs(p.z())-fDz; - if (safe<0) safe=0; // Also used to ensure x/y distances - // POSITIVE + safe=fabs(p.z())-fDz; + if (safe<0) safe=0; // Also used to ensure x/y distances + // POSITIVE - zbase=fDz+p.z(); -// Find distance along x direction to closest x plane - tanxz=(fDx2-fDx1)*0.5/fDz; -// widx=fDx1+tanxz*(fDz+p.z()); // x width at p.z -// distx=fabs(p.x())-widx; // distance to plane - distx=fabs(p.x())-(fDx1+tanxz*zbase); - if (distx>safe) - { - safx=distx/sqrt(1.0+tanxz*tanxz); // vector Dist=Dist*cos(ang) - if (safx>safe) safe=safx; - } + zbase=fDz+p.z(); -// Find distance along y direction to slanted wall - tanyz=(fDy2-fDy1)*0.5/fDz; -// widy=fDy1+tanyz*(fDz+p.z()); // y width at p.z -// disty=fabs(p.y())-widy; // distance to plane - disty=fabs(p.y())-(fDy1+tanyz*zbase); - if (disty>safe) - { - safy=disty/sqrt(1.0+tanyz*tanyz); // distance along vector - if (safy>safe) safe=safy; - } + // Find distance along x direction to closest x plane + // + tanxz=(fDx2-fDx1)*0.5/fDz; + // widx=fDx1+tanxz*(fDz+p.z()); // x width at p.z + // distx=fabs(p.x())-widx; // distance to plane + distx=fabs(p.x())-(fDx1+tanxz*zbase); + if (distx>safe) + { + safx=distx/sqrt(1.0+tanxz*tanxz); // vector Dist=Dist*cos(ang) + if (safx>safe) safe=safx; + } - return safe; + // Find distance along y direction to slanted wall + tanyz=(fDy2-fDy1)*0.5/fDz; + // widy=fDy1+tanyz*(fDz+p.z()); // y width at p.z + // disty=fabs(p.y())-widy; // distance to plane + disty=fabs(p.y())-(fDy1+tanyz*zbase); + if (disty>safe) + { + safy=disty/sqrt(1.0+tanyz*tanyz); // distance along vector + if (safy>safe) safe=safy; + } + return safe; } //////////////////////////////////////////////////////////////////////// @@ -729,382 +747,389 @@ G4double G4Trd::DistanceToIn(const G4ThreeVector& p) const // (not corrected for slope of planes) // ?BUG? If v.z==0 are there cases when snside not set???? -G4double G4Trd::DistanceToOut(const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n) const +G4double G4Trd::DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { - ESide side = kUndefined, snside = kUndefined; - G4double snxt,pdist; - G4double central,ss1,ss2,ds1,ds2,sn=0.,sn2=0.; - G4double tanxz=0.,cosxz=0.,tanyz=0.,cosyz=0.; + ESide side = kUndefined, snside = kUndefined; + G4double snxt,pdist; + G4double central,ss1,ss2,ds1,ds2,sn=0.,sn2=0.; + G4double tanxz=0.,cosxz=0.,tanyz=0.,cosyz=0.; - if (calcNorm) *validNorm=true; // All normals are valid + if (calcNorm) *validNorm=true; // All normals are valid -// Calculate z plane intersection - if (v.z()>0) - { - pdist=fDz-p.z(); - if (pdist>kCarTolerance/2) - { - snxt=pdist/v.z(); - side=kPZ; - } - else - { - if (calcNorm) - { - *n=G4ThreeVector(0,0,1); - } - return snxt=0; - } - } - else if (v.z()<0) - { - pdist=fDz+p.z(); - if (pdist>kCarTolerance/2) - { - snxt=-pdist/v.z(); - side=kMZ; - } - else - { - if (calcNorm) - { - *n=G4ThreeVector(0,0,-1); - } - return snxt=0; - } - } + // Calculate z plane intersection + if (v.z()>0) + { + pdist=fDz-p.z(); + if (pdist>kCarTolerance/2) + { + snxt=pdist/v.z(); + side=kPZ; + } else - { - snxt=kInfinity; - } + { + if (calcNorm) + { + *n=G4ThreeVector(0,0,1); + } + return snxt=0; + } + } + else if (v.z()<0) + { + pdist=fDz+p.z(); + if (pdist>kCarTolerance/2) + { + snxt=-pdist/v.z(); + side=kMZ; + } + else + { + if (calcNorm) + { + *n=G4ThreeVector(0,0,-1); + } + return snxt=0; + } + } + else + { + snxt=kInfinity; + } + // + // Calculate x intersection + // + tanxz=(fDx2-fDx1)*0.5/fDz; + central=0.5*(fDx1+fDx2); -// -// Calculate x intersection -// - tanxz=(fDx2-fDx1)*0.5/fDz; - central=0.5*(fDx1+fDx2); -// +ve plane (1) - ss1=central+tanxz*p.z()-p.x(); // distance || x axis to plane - // (+ve if point inside) - ds1=v.x()-tanxz*v.z(); // component towards plane at +x - // (-ve if +ve -> -ve direction) -// -ve plane (2) - ss2=-tanxz*p.z()-p.x()-central; //distance || x axis to plane - // (-ve if point inside) - ds2=tanxz*v.z()+v.x(); // component towards plane at -x + // +ve plane (1) + // + ss1=central+tanxz*p.z()-p.x(); // distance || x axis to plane + // (+ve if point inside) + ds1=v.x()-tanxz*v.z(); // component towards plane at +x + // (-ve if +ve -> -ve direction) + // -ve plane (2) + // + ss2=-tanxz*p.z()-p.x()-central; //distance || x axis to plane + // (-ve if point inside) + ds2=tanxz*v.z()+v.x(); // component towards plane at -x + if (ss1>0&&ss2<0) + { + // Normal case - entirely inside region + if (ds1<=0&&ds2<0) + { + if (ss2<-kCarTolerance/2) + { + sn=ss2/ds2; // Leave by -ve side + snside=kMX; + } + else + { + sn=0; // Leave immediately by -ve side + snside=kMX; + } + } + else if (ds1>0&&ds2>=0) + { + if (ss1>kCarTolerance/2) + { + sn=ss1/ds1; // Leave by +ve side + snside=kPX; + } + else + { + sn=0; // Leave immediately by +ve side + snside=kPX; + } + } + else if (ds1>0&&ds2<0) + { + if (ss1>kCarTolerance/2) + { + // sn=ss1/ds1; // Leave by +ve side + if (ss2<-kCarTolerance/2) + { + sn=ss1/ds1; // Leave by +ve side + sn2=ss2/ds2; + if (sn20) + { + sn=0; // Away from shape + // Left by +ve side + snside=kPX; + } + else + { + if (ds2<0) + { + // Ignore +ve plane and use -ve plane intersect + // + sn=ss2/ds2; // Leave by -ve side + snside=kMX; + } + else + { + // Must be || to both -> exit determined by other axes + // + sn=kInfinity; // Don't leave by either side + } + } + } + else if (ss1>0&&ss2>=0) + { + // Outside, in -ve Area + + if (ds2<0) + { + sn=0; // away from shape + // Left by -ve side + snside=kMX; + } + else + { + if (ds1>0) + { + // Ignore +ve plane and use -ve plane intersect + // + sn=ss1/ds1; // Leave by +ve side + snside=kPX; + } + else + { + // Must be || to both -> exit determined by other axes + // + sn=kInfinity; // Don't leave by either side + } + } + } + + // Update minimum exit distance + + if (sn0) + { + // Calculate y intersection + + tanyz=(fDy2-fDy1)*0.5/fDz; + central=0.5*(fDy1+fDy2); + + // +ve plane (1) + // + ss1=central+tanyz*p.z()-p.y(); // distance || y axis to plane + // (+ve if point inside) + ds1=v.y()-tanyz*v.z(); // component towards +ve plane + // (-ve if +ve -> -ve direction) + // -ve plane (2) + // + ss2=-tanyz*p.z()-p.y()-central; // distance || y axis to plane + // (-ve if point inside) + ds2=tanyz*v.z()+v.y(); // component towards -ve plane if (ss1>0&&ss2<0) - { -// Normal case - entirely inside region - if (ds1<=0&&ds2<0) - { - if (ss2<-kCarTolerance/2) - { - sn=ss2/ds2; // Leave by -ve side - snside=kMX; - } - else - { - sn=0; // Leave immediately by -ve side - snside=kMX; - } - } - else if (ds1>0&&ds2>=0) - { - if (ss1>kCarTolerance/2) - { - sn=ss1/ds1; // Leave by +ve side - snside=kPX; - } - else - { - sn=0; // Leave immediately by +ve side - snside=kPX; - } - } - else if (ds1>0&&ds2<0) - { - if (ss1>kCarTolerance/2) - { -// sn=ss1/ds1; // Leave by +ve side - - if (ss2<-kCarTolerance/2) - { - sn=ss1/ds1; // Leave by +ve side - sn2=ss2/ds2; - if (sn20&&ds2>=0) + { + if (ss1>kCarTolerance/2) + { + sn=ss1/ds1; // Leave by +ve side + snside=kPY; + } + else + { + sn=0; // Leave immediately by +ve side + snside=kPY; + } + } + else if (ds1>0&&ds2<0) + { + if (ss1>kCarTolerance/2) + { + // sn=ss1/ds1; // Leave by +ve side + if (ss2<-kCarTolerance/2) + { + sn=ss1/ds1; // Leave by +ve side + sn2=ss2/ds2; + if (sn20) - { - sn=0; // Away from shape - // Left by +ve side - snside=kPX; - } - else - { - if (ds2<0) - { -// Ignore +ve plane and use -ve plane intersect - sn=ss2/ds2; // Leave by -ve side - snside=kMX; - } - else - { -// Must be || to both -> exit determined by other axes - sn=kInfinity; // Don't leave by either side - } - - } - } + { + // Outside, in +ve Area + + if (ds1>0) + { + sn=0; // Away from shape + // Left by +ve side + snside=kPY; + } + else + { + if (ds2<0) + { + // Ignore +ve plane and use -ve plane intersect + // + sn=ss2/ds2; // Leave by -ve side + snside=kMY; + } + else + { + // Must be || to both -> exit determined by other axes + // + sn=kInfinity; // Don't leave by either side + } + } + } else if (ss1>0&&ss2>=0) - { -// Outside, in -ve Area - if (ds2<0) - { - sn=0; // away from shape - // Left by -ve side - snside=kMX; - } - else - { - if (ds1>0) - { -// Ignore +ve plane and use -ve plane intersect - sn=ss1/ds1; // Leave by +ve side - snside=kPX; - } - else - { -// Must be || to both -> exit determined by other axes - sn=kInfinity; // Don't leave by either side - } - } - } - -// Update minimum exit distance + { + // Outside, in -ve Area + if (ds2<0) + { + sn=0; // away from shape + // Left by -ve side + snside=kMY; + } + else + { + if (ds1>0) + { + // Ignore +ve plane and use -ve plane intersect + // + sn=ss1/ds1; // Leave by +ve side + snside=kPY; + } + else + { + // Must be || to both -> exit determined by other axes + // + sn=kInfinity; // Don't leave by either side + } + } + } + + // Update minimum exit distance + if (sn0) - { - -// -// Calculate y intersection -// - - tanyz=(fDy2-fDy1)*0.5/fDz; - central=0.5*(fDy1+fDy2); -// +ve plane (1) - ss1=central+tanyz*p.z()-p.y(); // distance || y axis to plane - // (+ve if point inside) - ds1=v.y()-tanyz*v.z(); // component towards +ve plane - // (-ve if +ve -> -ve direction) -// -ve plane (2) - ss2=-tanyz*p.z()-p.y()-central; // distance || y axis to plane - // (-ve if point inside) - ds2=tanyz*v.z()+v.y(); // component towards -ve plane - - if (ss1>0&&ss2<0) - { -// Normal case - entirely inside region - if (ds1<=0&&ds2<0) - { - if (ss2<-kCarTolerance/2) - { - sn=ss2/ds2; // Leave by -ve side - snside=kMY; - } - else - { - sn=0; // Leave immediately by -ve side - snside=kMY; - } - } - else if (ds1>0&&ds2>=0) - { - if (ss1>kCarTolerance/2) - { - sn=ss1/ds1; // Leave by +ve side - snside=kPY; - } - else - { - sn=0; // Leave immediately by +ve side - snside=kPY; - } - } - else if (ds1>0&&ds2<0) - { - if (ss1>kCarTolerance/2) - { -// sn=ss1/ds1; // Leave by +ve side - - if (ss2<-kCarTolerance/2) - { - sn=ss1/ds1; // Leave by +ve side - sn2=ss2/ds2; - if (sn20) - { - sn=0; // Away from shape - // Left by +ve side - snside=kPY; - } - else - { - if (ds2<0) - { -// Ignore +ve plane and use -ve plane intersect - sn=ss2/ds2; // Leave by -ve side - snside=kMY; - } - else - { -// Must be || to both -> exit determined by other axes - sn=kInfinity; // Don't leave by either side - } - - } - } - else if (ss1>0&&ss2>=0) - { -// Outside, in -ve Area - if (ds2<0) - { - sn=0; // away from shape - // Left by -ve side - snside=kMY; - } - else - { - if (ds1>0) - { -// Ignore +ve plane and use -ve plane intersect - sn=ss1/ds1; // Leave by +ve side - snside=kPY; - } - else - { -// Must be || to both -> exit determined by other axes - sn=kInfinity; // Don't leave by either side - } - } - } - -// Update minimum exit distance - if (snsaf1) safe=saf1; - if (safe>saf2) safe=saf2; + // xdist = distance perpendicular to z axis to closest x plane from p + // = (x half width of shape at p.z) - fabs(p.x) + // + tanxz=(fDx2-fDx1)*0.5/fDz; + xdist=fDx1+tanxz*zbase-fabs(p.x()); + saf1=xdist/sqrt(1.0+tanxz*tanxz); // x*cos(ang_xz) = + // shortest (perpendicular) + // distance to plane + tanyz=(fDy2-fDy1)*0.5/fDz; + ydist=fDy1+tanyz*zbase-fabs(p.y()); + saf2=ydist/sqrt(1.0+tanyz*tanyz); - if (safe<0) safe=0; - return safe; + // Return minimum x/y/z distance + // + if (safe>saf1) safe=saf1; + if (safe>saf2) safe=saf2; + + if (safe<0) safe=0; + return safe; } //////////////////////////////////////////////////////////////////////////// @@ -1171,43 +1194,74 @@ G4double G4Trd::DistanceToOut(const G4ThreeVector& p) const // Caller has deletion resposibility G4ThreeVectorList* -G4Trd::CreateRotatedVertices(const G4AffineTransform& pTransform) const +G4Trd::CreateRotatedVertices( const G4AffineTransform& pTransform ) const { - G4ThreeVectorList *vertices; - vertices=new G4ThreeVectorList(); - vertices->reserve(8); - if (vertices) - { - G4ThreeVector vertex0(-fDx1,-fDy1,-fDz); - G4ThreeVector vertex1(fDx1,-fDy1,-fDz); - G4ThreeVector vertex2(fDx1,fDy1,-fDz); - G4ThreeVector vertex3(-fDx1,fDy1,-fDz); - G4ThreeVector vertex4(-fDx2,-fDy2,fDz); - G4ThreeVector vertex5(fDx2,-fDy2,fDz); - G4ThreeVector vertex6(fDx2,fDy2,fDz); - G4ThreeVector vertex7(-fDx2,fDy2,fDz); + G4ThreeVectorList *vertices; + vertices=new G4ThreeVectorList(); + vertices->reserve(8); + if (vertices) + { + G4ThreeVector vertex0(-fDx1,-fDy1,-fDz); + G4ThreeVector vertex1(fDx1,-fDy1,-fDz); + G4ThreeVector vertex2(fDx1,fDy1,-fDz); + G4ThreeVector vertex3(-fDx1,fDy1,-fDz); + G4ThreeVector vertex4(-fDx2,-fDy2,fDz); + G4ThreeVector vertex5(fDx2,-fDy2,fDz); + G4ThreeVector vertex6(fDx2,fDy2,fDz); + G4ThreeVector vertex7(-fDx2,fDy2,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 - { - G4Exception("G4Trd::CreateRotatedVertices - Out of memory"); - } - return vertices; + 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("G4Trd::CreateRotatedVertices() - Out of memory"); + } + return vertices; +} + +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType + +G4GeometryType G4Trd::GetEntityType() const +{ + return G4String("G4Trd"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +G4std::ostream& G4Trd::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Trd\n" + << " Parameters: \n" + << " half length X, surface -dZ: " << fDx1/mm << " mm \n" + << " half length X, surface +dZ: " << fDx2/mm << " mm \n" + << " half length Y, surface -dZ: " << fDy1/mm << " mm \n" + << " half length Y, surface +dZ: " << fDy2/mm << " mm \n" + << " half length Z : " << fDz/mm << " mm \n" + << "-----------------------------------------------------------\n"; + + return os; } /////////////////////////////////////////////////////////////////////// // // Methods for visualisation -void G4Trd::DescribeYourselfTo (G4VGraphicsScene& scene) const +void G4Trd::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { scene.AddThis (*this); } @@ -1226,7 +1280,3 @@ G4NURBS* G4Trd::CreateNURBS () const // // /////////////////////////////////////////////////////////////////////////// - - - - diff --git a/source/geometry/solids/CSG/src/G4Tubs.cc b/source/geometry/solids/CSG/src/G4Tubs.cc index 45f5abef5c..165fed0a73 100644 --- a/source/geometry/solids/CSG/src/G4Tubs.cc +++ b/source/geometry/solids/CSG/src/G4Tubs.cc @@ -21,35 +21,35 @@ // ******************************************************************** // // -// $Id: G4Tubs.cc,v 1.33 2002/04/16 08:24:18 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Tubs.cc,v 1.35 2002/10/28 15:18:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Tubs // // History: // -// 1994-95 P.Kent, implementation +// 1994-95 P.Kent: implementation // -// 18.06.98 V.Grichine, n-normalisation in DistanceToOut(p.v) -// 09.10.98 V.Grichine, modifications in Distance ToOut(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 Distance ToOut(p,v,...) -// 13.10.99 V.Grichine, bugs fixed in DistanceToIn(p,v) -// 19.11.99 V. Grichine, side = kNull in Distance ToOut(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, poin is outside check in Distance ToOut(p) -// 08.08.00 V.Grichine, more stable roots of 2-equation in Distance ToOut(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) -// 20.02.01 V.Grichine, bug fixed in Inside(p) and CalculateExtent was +// 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) +// 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) -// +// 20.07.01 V.Grichine: bug fixed in Inside(p) // +// ******************************************************************** #include "G4Tubs.hh" @@ -66,7 +66,6 @@ #include "G4NURBStube.hh" #include "G4NURBScylinder.hh" #include "G4NURBStubesector.hh" -#include "G4Box.hh" ///////////////////////////////////////////////////////////////////////// // @@ -74,10 +73,10 @@ // - note if pdphi>2PI then reset to 2PI G4Tubs::G4Tubs( const G4String &pName, - G4double pRMin, G4double pRMax, - G4double pDz, - G4double pSPhi, G4double pDPhi) -: G4CSGSolid(pName) + G4double pRMin, G4double pRMax, + G4double pDz, + G4double pSPhi, G4double pDPhi ) + : G4CSGSolid(pName) { if (pDz>0) // Check z-len @@ -86,7 +85,13 @@ G4Tubs::G4Tubs( const G4String &pName, } else { - G4Exception("Error in G4Tubs::G4Tubs - invalid z half-length"); + G4cout << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl + << " Negative Z half-length ! - " + << pDz << G4endl; + G4cerr << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl + << " Negative Z half-length ! - " + << pDz << G4endl; + G4Exception("G4Tubs::G4Tubs() - invalid Z half-length"); } if ( pRMin < pRMax && pRMin >= 0 ) // Check radii { @@ -95,7 +100,13 @@ G4Tubs::G4Tubs( const G4String &pName, } else { - G4Exception("Error in G4Tubs::G4Tubs - invalid radii"); + G4cout << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl + << " Invalid values for radii !" << G4endl + << " pRMin = " << pRMin << ", pRMax = " << pRMax << G4endl; + G4cerr << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl + << " Invalid values for radii !" << G4endl + << " pRMin = " << pRMin << ", pRMax = " << pRMax << G4endl; + G4Exception("G4Tubs::G4Tubs() - invalid radii"); } if ( pDPhi >= 2.0*M_PI ) // Check angles { @@ -109,11 +120,17 @@ G4Tubs::G4Tubs( const G4String &pName, } else { - G4Exception("Error in G4Tubs::G4Tubs - invalid dphi"); + G4cout << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl + << " Negative delta-Phi ! - " + << pDPhi << G4endl; + G4cerr << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl + << " Negative delta-Phi ! - " + << pDPhi << G4endl; + G4Exception("G4Tubs::G4Tubs() - invalid dphi"); } } - -// Ensure fSphi in 0-2PI or -2PI-0 range if shape crosses 0 + + // Ensure fSphi in 0-2PI or -2PI-0 range if shape crosses 0 fSPhi = pSPhi; @@ -137,7 +154,6 @@ G4Tubs::G4Tubs( const G4String &pName, G4Tubs::~G4Tubs() { - ; } ///////////////////////////////////////////////////////////////////////// @@ -147,9 +163,9 @@ G4Tubs::~G4Tubs() void G4Tubs::ComputeDimensions( G4VPVParameterisation* p, const G4int n, - const G4VPhysicalVolume* pRep ) + const G4VPhysicalVolume* pRep ) { - p->ComputeDimensions(*this,n,pRep) ; + p->ComputeDimensions(*this,n,pRep) ; } //////////////////////////////////////////////////////////////////////// @@ -157,23 +173,19 @@ void G4Tubs::ComputeDimensions( G4VPVParameterisation* p, // Calculate extent under transform and specified limit G4bool G4Tubs::CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const { - /* - G4Box box("box",fRMax,fRMax,fDz) ; - return box.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax) ; - */ if ( !pTransform.IsRotated() && fDPhi == 2.0*M_PI && fRMin == 0 ) { -// Special case handling for unrotated solid tubes -// Compute x/y/z mins and maxs fro bounding box respecting limits, -// with early returns if outside limits. Then switch() on pAxis, -// and compute exact x and y limit for x/y case - + // Special case handling for unrotated solid tubes + // Compute x/y/z mins and maxs fro bounding box respecting limits, + // with early returns if outside limits. Then switch() on pAxis, + // and compute exact x and y limit for x/y case + G4double xoffset, xMin, xMax ; G4double yoffset, yMin, yMax ; G4double zoffset, zMin, zMax ; @@ -187,18 +199,21 @@ G4bool G4Tubs::CalculateExtent( const EAxis pAxis, if (pVoxelLimit.IsXLimited()) { - if ( xMin > pVoxelLimit.GetMaxXExtent() || - xMax < pVoxelLimit.GetMinXExtent() ) return false; + if ( (xMin > pVoxelLimit.GetMaxXExtent()) + || (xMax < pVoxelLimit.GetMinXExtent()) ) + { + return false; + } else { - if ( xMin < pVoxelLimit.GetMinXExtent() ) - { - xMin = pVoxelLimit.GetMinXExtent() ; - } - if (xMax > pVoxelLimit.GetMaxXExtent() ) - { - xMax = pVoxelLimit.GetMaxXExtent() ; - } + if ( xMin < pVoxelLimit.GetMinXExtent() ) + { + xMin = pVoxelLimit.GetMinXExtent() ; + } + if (xMax > pVoxelLimit.GetMaxXExtent() ) + { + xMax = pVoxelLimit.GetMaxXExtent() ; + } } } yoffset = pTransform.NetTranslation().y() ; @@ -207,18 +222,21 @@ G4bool G4Tubs::CalculateExtent( const EAxis pAxis, if ( pVoxelLimit.IsYLimited() ) { - if ( yMin > pVoxelLimit.GetMaxYExtent() || - yMax < pVoxelLimit.GetMinYExtent() ) return false ; + if ( (yMin > pVoxelLimit.GetMaxYExtent()) + || (yMax < pVoxelLimit.GetMinYExtent()) ) + { + return false ; + } else { - if ( yMin < pVoxelLimit.GetMinYExtent() ) - { - yMin = pVoxelLimit.GetMinYExtent() ; - } - if ( yMax > pVoxelLimit.GetMaxYExtent() ) - { - yMax=pVoxelLimit.GetMaxYExtent(); - } + if ( yMin < pVoxelLimit.GetMinYExtent() ) + { + yMin = pVoxelLimit.GetMinYExtent() ; + } + if ( yMax > pVoxelLimit.GetMaxYExtent() ) + { + yMax=pVoxelLimit.GetMaxYExtent(); + } } } zoffset = pTransform.NetTranslation().z() ; @@ -227,75 +245,80 @@ G4bool G4Tubs::CalculateExtent( const EAxis pAxis, if ( pVoxelLimit.IsZLimited() ) { - if ( zMin > pVoxelLimit.GetMaxZExtent() || - zMax < pVoxelLimit.GetMinZExtent() ) return false ; + if ( (zMin > pVoxelLimit.GetMaxZExtent()) + || (zMax < pVoxelLimit.GetMinZExtent()) ) + { + return false ; + } else { - if ( zMin < pVoxelLimit.GetMinZExtent() ) - { - zMin = pVoxelLimit.GetMinZExtent() ; - } - if ( zMax > pVoxelLimit.GetMaxZExtent() ) - { - zMax = pVoxelLimit.GetMaxZExtent(); - } + if ( zMin < pVoxelLimit.GetMinZExtent() ) + { + zMin = pVoxelLimit.GetMinZExtent() ; + } + if ( zMax > pVoxelLimit.GetMaxZExtent() ) + { + zMax = pVoxelLimit.GetMaxZExtent(); + } } } switch ( pAxis ) // Known to cut cylinder { case kXAxis : { - yoff1 = yoffset - yMin ; - yoff2 = yMax - yoffset ; + yoff1 = yoffset - yMin ; + yoff2 = yMax - yoffset ; - if ( yoff1 >= 0 && yoff2 >= 0 ) // Y limits cross max/min x => no change - { - pMin = xMin ; - pMax = xMax ; - } - else + if ( yoff1 >= 0 && yoff2 >= 0 ) // Y limits cross max/min x => no change { -// Y limits don't cross max/min x => compute max delta x, hence new mins/maxs + pMin = xMin ; + pMax = xMax ; + } + else + { + // Y limits don't cross max/min x => compute max delta x, + // hence new mins/maxs - diff1 = sqrt(fRMax*fRMax - yoff1*yoff1); - diff2 = sqrt(fRMax*fRMax - yoff2*yoff2); - maxDiff = (diff1 > diff2) ? diff1:diff2; - newMin = xoffset - maxDiff; - newMax = xoffset + maxDiff; - pMin = (newMin < xMin) ? xMin : newMin; - pMax = (newMax > xMax) ? xMax : newMax; - } - break; + diff1 = sqrt(fRMax*fRMax - yoff1*yoff1); + diff2 = sqrt(fRMax*fRMax - yoff2*yoff2); + maxDiff = (diff1 > diff2) ? diff1:diff2; + newMin = xoffset - maxDiff; + newMax = xoffset + maxDiff; + pMin = (newMin < xMin) ? xMin : newMin; + pMax = (newMax > xMax) ? xMax : newMax; + } + break; } case kYAxis : { - xoff1 = xoffset - xMin ; - xoff2 = xMax - xoffset ; + xoff1 = xoffset - xMin ; + xoff2 = xMax - xoffset ; - if ( xoff1 >= 0 && xoff2 >= 0 ) // X limits cross max/min y => no change - { - pMin = yMin ; - pMax = yMax ; - } - else - { -// X limits don't cross max/min y => compute max delta y, hence new mins/maxs - - diff1 = sqrt(fRMax*fRMax - xoff1*xoff1) ; - diff2 = sqrt(fRMax*fRMax - xoff2*xoff2) ; - maxDiff = (diff1 > diff2) ? diff1 : diff2 ; - newMin = yoffset - maxDiff ; - newMax = yoffset + maxDiff ; - pMin = (newMin < yMin) ? yMin : newMin ; - pMax =(newMax > yMax) ? yMax : newMax ; + if ( xoff1 >= 0 && xoff2 >= 0 ) // X limits cross max/min y => no change + { + pMin = yMin ; + pMax = yMax ; } - break ; + else + { + // X limits don't cross max/min y => compute max delta y, + // hence new mins/maxs + + diff1 = sqrt(fRMax*fRMax - xoff1*xoff1) ; + diff2 = sqrt(fRMax*fRMax - xoff2*xoff2) ; + maxDiff = (diff1 > diff2) ? diff1 : diff2 ; + newMin = yoffset - maxDiff ; + newMax = yoffset + maxDiff ; + pMin = (newMin < yMin) ? yMin : newMin ; + pMax =(newMax > yMax) ? yMax : newMax ; + } + break ; } case kZAxis: { - pMin = zMin ; - pMax = zMax ; - break ; + pMin = zMin ; + pMax = zMax ; + break ; } default: break; @@ -316,28 +339,28 @@ G4bool G4Tubs::CalculateExtent( const EAxis pAxis, noEntries = vertices->size() ; noBetweenSections4 = noEntries - 4 ; /* - G4cout<<"vertices = "< kRadTolerance) { @@ -703,274 +744,269 @@ G4double G4Tubs::DistanceToIn(const G4ThreeVector& p, } else { - tolORMin2 = 0.0 ; - tolIRMin2 = 0.0 ; + tolORMin2 = 0.0 ; + tolIRMin2 = 0.0 ; } tolORMax2 = (fRMax + 0.5*kRadTolerance)*(fRMax + 0.5*kRadTolerance) ; tolIRMax2 = (fRMax - 0.5*kRadTolerance)*(fRMax - 0.5*kRadTolerance) ; -// Intersection with Z surfaces + // Intersection with Z surfaces tolIDz = fDz - kCarTolerance*0.5 ; tolODz = fDz + kCarTolerance*0.5 ; if (fabs(p.z()) >= tolIDz) { - if ( p.z()*v.z() < 0 ) // at +Z going in -Z or visa versa - { - s = (fabs(p.z()) - fDz)/fabs(v.z()) ; // Z intersect distance + if ( p.z()*v.z() < 0 ) // at +Z going in -Z or visa versa + { + s = (fabs(p.z()) - fDz)/fabs(v.z()) ; // Z intersect distance - if(s < 0.0) s = 0.0 ; + if(s < 0.0) s = 0.0 ; - xi = p.x() + s*v.x() ; // Intersection coords - yi = p.y() + s*v.y() ; - rho2 = xi*xi + yi*yi ; + xi = p.x() + s*v.x() ; // Intersection coords + yi = p.y() + s*v.y() ; + rho2 = xi*xi + yi*yi ; -// Check validity of intersection + // Check validity of intersection - if (tolIRMin2 <= rho2 && rho2 <= tolIRMax2) - { - if (seg && rho2) - { -// Psi = angle made with central (average) phi of shape - - inum = xi*cosCPhi + yi*sinCPhi ; - iden = sqrt(rho2) ; - cosPsi = inum/iden ; - - if (cosPsi >= cosHDPhiIT) return s ; - } - else return s ; + if (tolIRMin2 <= rho2 && rho2 <= tolIRMax2) + { + if (seg && rho2) + { + // Psi = angle made with central (average) phi of shape + // + inum = xi*cosCPhi + yi*sinCPhi ; + iden = sqrt(rho2) ; + cosPsi = inum/iden ; + if (cosPsi >= cosHDPhiIT) return s ; } - } - else - { - if ( snxt cannot intersect - } + else return s ; + } + } + else + { + if ( snxt cannot intersect + } } -// -> Can not intersect z surfaces -// -// Intersection with rmax (possible return) and rmin (must also check phi) -// -// Intersection point (xi,yi,zi) on line x=p.x+t*v.x etc. -// -// Intersects with x^2+y^2=R^2 -// -// Hence (v.x^2+v.y^2)t^2+ 2t(p.x*v.x+p.y*v.y)+p.x^2+p.y^2-R^2=0 -// t1 t2 t3 + // -> Can not intersect z surfaces + // + // Intersection with rmax (possible return) and rmin (must also check phi) + // + // Intersection point (xi,yi,zi) on line x=p.x+t*v.x etc. + // + // Intersects with x^2+y^2=R^2 + // + // Hence (v.x^2+v.y^2)t^2+ 2t(p.x*v.x+p.y*v.y)+p.x^2+p.y^2-R^2=0 + // t1 t2 t3 t1 = 1.0 - v.z()*v.z() ; t2 = p.x()*v.x() + p.y()*v.y() ; t3 = p.x()*p.x() + p.y()*p.y() ; - if ( t1 > 0 ) // Check not || to z axis + if ( t1 > 0 ) // Check not || to z axis { - b = t2/t1 ; - c = t3 - fRMax*fRMax ; - - if (t3 >= tolORMax2 && t2<0) // This also handles the tangent case - { -// Try outer cylinder intersection -// c=(t3-fRMax*fRMax)/t1; - - c /= t1 ; - d = b*b - c ; - - if (d >= 0) // If real root - { - s = -b - sqrt(d) ; - - if (s >= 0) // If 'forwards' - { -// Check z intersection - zi = p.z() + s*v.z() ; - - if (fabs(zi)<=tolODz) - { -// Z ok. Check phi intersection if reqd - - if (!seg) return s ; - else - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/fRMax ; - - if (cosPsi >= cosHDPhiIT) return s ; - } - } // end if fabs(zi) - } // end if (s>=0) - } // end if (d>=0) - } // end if (r>=fRMax) - else - { - // Inside outer radius : - // check not inside, and heading through tubs (-> 0 to in) - - if (t3 > tolIRMin2 && t2 < 0 && fabs(p.z()) <= tolIDz) - { -// Inside both radii, delta r -ve, inside z extent - - if (seg) - { - inum = p.x()*cosCPhi + p.y()*sinCPhi ; - iden = sqrt(t3) ; - cosPsi = inum/iden ; - - if (cosPsi >= cosHDPhiIT) return 0.0 ; - } - else return 0.0 ; - } - } - if ( fRMin ) // Try inner cylinder intersection - { - c = (t3 - fRMin*fRMin)/t1 ; - d = b*b - c ; - - if ( d >= 0.0 ) // If real root - { -// Always want 2nd root - we are outside and know rmax Hit was bad -// - If on surface of rmin also need farthest root - - s = -b + sqrt(d) ; - - if (s >= -0.5*kCarTolerance) // check forwards - { -// Check z intersection - if(s < 0.0) s = 0.0 ; - - zi = p.z() + s*v.z() ; - - if (fabs(zi) <= tolODz) - { -// Z ok. Check phi - if ( !seg ) return s ; - else - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - cosPsi = (xi*cosCPhi + yi*sinCPhi)/fRMin ; - - if (cosPsi >= cosHDPhiIT) - { -// Good inner radius isect - but earlier phi isect still possible - - snxt = s ; - } - } - } // end if fabs(zi) - } // end if (s>=0) - } // end if (d>=0) - } // end if (fRMin) - } - -// Phi segment intersection -// -// o Tolerant of points inside phi planes by up to kCarTolerance*0.5 -// -// o NOTE: Large duplication of code between sphi & ephi checks -// -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane -// intersection check <=0 -> >=0 -// -> use some form of loop Construct ? -// - if ( seg ) + b = t2/t1 ; + c = t3 - fRMax*fRMax ; + if (t3 >= tolORMax2 && t2<0) // This also handles the tangent case { -// First phi surface (`S'tarting phi) + // Try outer cylinder intersection + // c=(t3-fRMax*fRMax)/t1; - sinSPhi = sin(fSPhi) ; - cosSPhi = cos(fSPhi) ; - Comp = v.x()*sinSPhi - v.y()*cosSPhi ; - - if ( Comp < 0 ) // Component in outwards normal dirn - { - Dist = (p.y()*cosSPhi - p.x()*sinSPhi) ; + c /= t1 ; + d = b*b - c ; - if ( Dist < kCarTolerance*0.5 ) - { - s = Dist/Comp ; + if (d >= 0) // If real root + { + s = -b - sqrt(d) ; + if (s >= 0) // If 'forwards' + { + // Check z intersection + // + zi = p.z() + s*v.z() ; + if (fabs(zi)<=tolODz) + { + // Z ok. Check phi intersection if reqd + // + if (!seg) + { + return s ; + } + else + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/fRMax ; + if (cosPsi >= cosHDPhiIT) return s ; + } + } // end if fabs(zi) + } // end if (s>=0) + } // end if (d>=0) + } // end if (r>=fRMax) + else + { + // Inside outer radius : + // check not inside, and heading through tubs (-> 0 to in) - if (s < snxt) - { - if ( s < 0 ) s = 0.0 ; + if (t3 > tolIRMin2 && t2 < 0 && fabs(p.z()) <= tolIDz) + { + // Inside both radii, delta r -ve, inside z extent - zi = p.z() + s*v.z() ; + if (seg) + { + inum = p.x()*cosCPhi + p.y()*sinCPhi ; + iden = sqrt(t3) ; + cosPsi = inum/iden ; + if (cosPsi >= cosHDPhiIT) return 0.0 ; + } + else + { + return 0.0 ; + } + } + } + if ( fRMin ) // Try inner cylinder intersection + { + c = (t3 - fRMin*fRMin)/t1 ; + d = b*b - c ; + if ( d >= 0.0 ) // If real root + { + // Always want 2nd root - we are outside and know rmax Hit was bad + // - If on surface of rmin also need farthest root - if ( fabs(zi) <= tolODz ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - rho2 = xi*xi + yi*yi ; + s = -b + sqrt(d) ; + if (s >= -0.5*kCarTolerance) // check forwards + { + // Check z intersection + // + if(s < 0.0) s = 0.0 ; + zi = p.z() + s*v.z() ; + if (fabs(zi) <= tolODz) + { + // Z ok. Check phi + // + if ( !seg ) + { + return s ; + } + else + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + cosPsi = (xi*cosCPhi + yi*sinCPhi)/fRMin ; + if (cosPsi >= cosHDPhiIT) + { + // Good inner radius isect + // - but earlier phi isect still possible - if ( ( rho2 >= tolIRMin2 && rho2 <= tolIRMax2 ) + snxt = s ; + } + } + } // end if fabs(zi) + } // end if (s>=0) + } // end if (d>=0) + } // end if (fRMin) + } - || ( rho2 > tolORMin2 && rho2 < tolIRMin2 && - ( v.y()*cosSPhi - v.x()*sinSPhi > 0 ) && - ( v.x()*cosSPhi + v.y()*sinSPhi >= 0 ) ) + // Phi segment intersection + // + // o Tolerant of points inside phi planes by up to kCarTolerance*0.5 + // + // o NOTE: Large duplication of code between sphi & ephi checks + // -> only diffs: sphi -> ephi, Comp -> -Comp and half-plane + // intersection check <=0 -> >=0 + // -> use some form of loop Construct ? + // + if ( seg ) + { + // First phi surface (`S'tarting phi) - || ( rho2 > tolIRMax2 && rho2 < tolORMax2 && - ( v.y()*cosSPhi - v.x()*sinSPhi > 0 ) && - ( v.x()*cosSPhi + v.y()*sinSPhi < 0 ) ) ) - { -// z and r intersections good - check intersecting with correct half-plane + sinSPhi = sin(fSPhi) ; + cosSPhi = cos(fSPhi) ; + Comp = v.x()*sinSPhi - v.y()*cosSPhi ; + + if ( Comp < 0 ) // Component in outwards normal dirn + { + Dist = (p.y()*cosSPhi - p.x()*sinSPhi) ; - if ((yi*cosCPhi-xi*sinCPhi) <= 0) snxt = s ; - } - } - } - } - } - -// Second phi surface (`E'nding phi) + if ( Dist < kCarTolerance*0.5 ) + { + s = Dist/Comp ; - ePhi = fSPhi + fDPhi ; - sinEPhi = sin(ePhi) ; - cosEPhi = cos(ePhi) ; - Comp = -(v.x()*sinEPhi - v.y()*cosEPhi) ; - - if (Comp < 0 ) // Component in outwards normal dirn - { - Dist = -(p.y()*cosEPhi - p.x()*sinEPhi) ; + if (s < snxt) + { + if ( s < 0 ) s = 0.0 ; + zi = p.z() + s*v.z() ; + if ( fabs(zi) <= tolODz ) + { + xi = p.x() + s*v.x() ; + yi = p.y() + s*v.y() ; + rho2 = xi*xi + yi*yi ; - if ( Dist < kCarTolerance*0.5 ) - { - s = Dist/Comp ; + if ( ( (rho2 >= tolIRMin2) && (rho2 <= tolIRMax2) ) + || ( (rho2 > tolORMin2) && (rho2 < tolIRMin2) + && ( v.y()*cosSPhi - v.x()*sinSPhi > 0 ) + && ( v.x()*cosSPhi + v.y()*sinSPhi >= 0 ) ) + || ( (rho2 > tolIRMax2) && (rho2 < tolORMax2) + && (v.y()*cosSPhi - v.x()*sinSPhi > 0) + && (v.x()*cosSPhi + v.y()*sinSPhi < 0) ) ) + { + // z and r intersections good + // - check intersecting with correct half-plane + // + if ((yi*cosCPhi-xi*sinCPhi) <= 0) snxt = s ; + } + } + } + } + } + + // Second phi surface (`E'nding phi) - if (s < snxt) - { - if ( s < 0 ) s = 0 ; + ePhi = fSPhi + fDPhi ; + sinEPhi = sin(ePhi) ; + cosEPhi = cos(ePhi) ; + Comp = -(v.x()*sinEPhi - v.y()*cosEPhi) ; + + if (Comp < 0 ) // Component in outwards normal dirn + { + Dist = -(p.y()*cosEPhi - p.x()*sinEPhi) ; - zi = p.z() + s*v.z() ; + if ( Dist < kCarTolerance*0.5 ) + { + s = Dist/Comp ; - if ( fabs(zi) <= tolODz ) - { - xi = p.x() + s*v.x() ; - yi = p.y() + s*v.y() ; - rho2 = xi*xi + yi*yi ; - - if ( ( rho2 >= tolIRMin2 && rho2 <= tolIRMax2 ) - - || ( rho2 > tolORMin2 && rho2 < tolIRMin2 && - ( v.x()*sinEPhi - v.y()*cosEPhi > 0 ) && - ( v.x()*cosEPhi + v.y()*sinEPhi >= 0 ) ) - - || ( rho2 > tolIRMax2 && rho2 < tolORMax2 && - ( v.x()*sinEPhi - v.y()*cosEPhi > 0 ) && - ( v.x()*cosEPhi + v.y()*sinEPhi < 0 ) ) ) - { -// z and r intersections good - check intersecting with correct half-plane - - if ( (yi*cosCPhi-xi*sinCPhi) >= 0 ) snxt = s ; - } - } - } - } - } // Comp < 0 - } // seg != 0 - if ( snxt= tolIRMin2) && (rho2 <= tolIRMax2) ) + || ( (rho2 > tolORMin2) && (rho2 < tolIRMin2) + && (v.x()*sinEPhi - v.y()*cosEPhi > 0) + && (v.x()*cosEPhi + v.y()*sinEPhi >= 0) ) + || ( (rho2 > tolIRMax2) && (rho2 < tolORMax2) + && (v.x()*sinEPhi - v.y()*cosEPhi > 0) + && (v.x()*cosEPhi + v.y()*sinEPhi < 0) ) ) + { + // z and r intersections good + // - check intersecting with correct half-plane + // + if ( (yi*cosCPhi-xi*sinCPhi) >= 0 ) snxt = s ; + } + } + } + } + } // Comp < 0 + } // seg != 0 + if ( snxt safe ) safe = safePhi ; } @@ -1047,28 +1086,25 @@ G4double G4Tubs::DistanceToIn(const G4ThreeVector& p) const G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, - G4ThreeVector *n ) const + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { ESide side = kNull , sider = kNull, sidephi = kNull ; - G4double snxt, sr = kInfinity, sphi = kInfinity, pdist ; - G4double deltaR, t1, t2, t3, b, c, d2, roMin2 ; -// Vars for phi intersection: + // Vars for phi intersection: G4double sinSPhi, cosSPhi, ePhi, sinEPhi, cosEPhi ; G4double cPhi, sinCPhi, cosCPhi ; G4double pDistS, compS, pDistE, compE, sphi2, xi, yi, vphi, roi2 ; -// Z plane intersection + // Z plane intersection if (v.z() > 0 ) { pdist = fDz - p.z() ; - if ( pdist > kCarTolerance*0.5 ) { snxt = pdist/v.z() ; @@ -1078,8 +1114,8 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, { if (calcNorm) { - *n = G4ThreeVector(0,0,1) ; - *validNorm = true ; + *n = G4ThreeVector(0,0,1) ; + *validNorm = true ; } return snxt = 0 ; } @@ -1090,37 +1126,37 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, if ( pdist > kCarTolerance*0.5 ) { - snxt = -pdist/v.z() ; - side = kMZ ; + snxt = -pdist/v.z() ; + side = kMZ ; } else { - if (calcNorm) - { - *n = G4ThreeVector(0,0,-1) ; - *validNorm = true ; - } - return snxt = 0.0 ; + if (calcNorm) + { + *n = G4ThreeVector(0,0,-1) ; + *validNorm = true ; + } + return snxt = 0.0 ; } } else { - snxt = kInfinity ; // Travel perpendicular to z axis - side = kNull; + snxt = kInfinity ; // Travel perpendicular to z axis + side = kNull; } -// Radial Intersections -// -// Find intersction with cylinders at rmax/rmin -// Intersection point (xi,yi,zi) on line x=p.x+t*v.x etc. -// -// Intersects with x^2+y^2=R^2 -// -// Hence (v.x^2+v.y^2)t^2+ 2t(p.x*v.x+p.y*v.y)+p.x^2+p.y^2-R^2=0 -// -// t1 t2 t3 + // Radial Intersections + // + // Find intersction with cylinders at rmax/rmin + // Intersection point (xi,yi,zi) on line x=p.x+t*v.x etc. + // + // Intersects with x^2+y^2=R^2 + // + // Hence (v.x^2+v.y^2)t^2+ 2t(p.x*v.x+p.y*v.y)+p.x^2+p.y^2-R^2=0 + // + // t1 t2 t3 - t1 = 1.0 - v.z()*v.z() ; // since v normalised + t1 = 1.0 - v.z()*v.z() ; // since v normalised t2 = p.x()*v.x() + p.y()*v.y() ; t3 = p.x()*p.x() + p.y()*p.y() ; @@ -1129,94 +1165,93 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, if ( t1 > 0 ) // Check not parallel { -// Calculate sr, r exit distance - - if ( (t2 >= 0.0) - && (roi2 > fRMax*(fRMax + kRadTolerance)) ) + // Calculate sr, r exit distance + + if ( (t2 >= 0.0) && (roi2 > fRMax*(fRMax + kRadTolerance)) ) { -// Delta r not negative => leaving via rmax + // Delta r not negative => leaving via rmax deltaR = t3 - fRMax*fRMax ; -// NOTE: Should use rho-fRMax<-kRadTolerance*0.5 - avoid sqrt for efficiency + // NOTE: Should use rho-fRMax<-kRadTolerance*0.5 + // - avoid sqrt for efficiency if ( deltaR < -kRadTolerance*fRMax ) { - b = t2/t1 ; - c = deltaR/t1 ; - sr = -b + sqrt(b*b - c); + b = t2/t1 ; + c = deltaR/t1 ; + sr = -b + sqrt(b*b - c); sider = kRMax ; } else { -// On tolerant boundary & heading outwards (or perpendicular to) outer -// radial surface -> leaving immediately + // On tolerant boundary & heading outwards (or perpendicular to) + // outer radial surface -> leaving immediately - if ( calcNorm ) - { - // if ( p.x() || p.y() ) - // { - // *n=G4ThreeVector(p.x(),p.y(),0); - // } - // else - // { - // *n=v; - // } - *n = G4ThreeVector(p.x()/fRMax,p.y()/fRMax,0) ; - *validNorm = true ; - } - return snxt = 0 ; // Leaving by rmax immediately + if ( calcNorm ) + { + // if ( p.x() || p.y() ) + // { + // *n=G4ThreeVector(p.x(),p.y(),0); + // } + // else + // { + // *n=v; + // } + *n = G4ThreeVector(p.x()/fRMax,p.y()/fRMax,0) ; + *validNorm = true ; + } + return snxt = 0 ; // Leaving by rmax immediately } } else if ( t2 < 0. ) // i.e. t2 < 0; Possible rmin intersection { roMin2 = t3 - t2*t2/t1 ; // min ro2 of the plane of movement - if ( fRMin - && (roMin2 < fRMin*(fRMin - kRadTolerance)) ) + if ( fRMin && (roMin2 < fRMin*(fRMin - kRadTolerance)) ) { - deltaR = t3 - fRMin*fRMin ; - b = t2/t1 ; - c = deltaR/t1 ; - d2 = b*b - c ; + deltaR = t3 - fRMin*fRMin ; + b = t2/t1 ; + c = deltaR/t1 ; + d2 = b*b - c ; - if ( d2 >= 0 ) // Leaving via rmin - { -// NOTE: SHould use rho-rmin>kRadTolerance*0.5 - avoid sqrt for efficiency + if ( d2 >= 0 ) // Leaving via rmin + { + // NOTE: SHould use rho-rmin>kRadTolerance*0.5 + // - avoid sqrt for efficiency - if (deltaR > kRadTolerance*fRMin) - { - sr = -b-sqrt(d2) ; - sider = kRMin ; - } - else - { - if ( calcNorm ) *validNorm = false ; // Concave side - return snxt = 0.0 ; - } - } - else // No rmin intersect -> must be rmax intersect - { - deltaR = t3 - fRMax*fRMax ; - c = deltaR/t1 ; - sr = -b + sqrt(b*b - c) ; - sider = kRMax ; - } + if (deltaR > kRadTolerance*fRMin) + { + sr = -b-sqrt(d2) ; + sider = kRMin ; + } + else + { + if ( calcNorm ) *validNorm = false ; // Concave side + return snxt = 0.0 ; + } + } + else // No rmin intersect -> must be rmax intersect + { + deltaR = t3 - fRMax*fRMax ; + c = deltaR/t1 ; + sr = -b + sqrt(b*b - c) ; + sider = kRMax ; + } } else if ( roi2 > fRMax*(fRMax + kRadTolerance) ) // No rmin intersect -> must be rmax intersect { - deltaR = t3 - fRMax*fRMax ; - b = t2/t1 ; - c = deltaR/t1; - sr = -b + sqrt(b*b - c) ; - sider = kRMax ; + deltaR = t3 - fRMax*fRMax ; + b = t2/t1 ; + c = deltaR/t1; + sr = -b + sqrt(b*b - c) ; + sider = kRMax ; } } - -// Phi Intersection + + // Phi Intersection - if ( fDPhi < 2.0*M_PI ) { sinSPhi = sin(fSPhi) ; @@ -1228,338 +1263,174 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, sinCPhi = sin(cPhi) ; cosCPhi = cos(cPhi) ; - if ( p.x() || p.y() ) // Check if on z axis (rho not needed later) { -// pDist -ve when inside + // pDist -ve when inside - pDistS = p.x()*sinSPhi - p.y()*cosSPhi ; - pDistE = -p.x()*sinEPhi + p.y()*cosEPhi ; + pDistS = p.x()*sinSPhi - p.y()*cosSPhi ; + pDistE = -p.x()*sinEPhi + p.y()*cosEPhi ; -// Comp -ve when in direction of outwards normal + // Comp -ve when in direction of outwards normal - compS = -sinSPhi*v.x() + cosSPhi*v.y() ; - compE = sinEPhi*v.x() - cosEPhi*v.y() ; - sidephi = kNull; + compS = -sinSPhi*v.x() + cosSPhi*v.y() ; + compE = sinEPhi*v.x() - cosEPhi*v.y() ; + sidephi = kNull; - // if ( pDistS <= 0 && pDistE <= 0 ) + // if ( pDistS <= 0 && pDistE <= 0 ) - if( ( fDPhi <= pi && ( pDistS <= 0.5*kCarTolerance && - pDistE <= 0.5*kCarTolerance ) ) || - ( fDPhi > pi && !( pDistS > 0.5*kCarTolerance && - pDistE > 0.5*kCarTolerance ) ) ) - { -// Inside both phi *full* planes + if( ( (fDPhi <= pi) && ( (pDistS <= 0.5*kCarTolerance) + && (pDistE <= 0.5*kCarTolerance) ) ) + || ( (fDPhi > pi) && !((pDistS > 0.5*kCarTolerance) + && (pDistE > 0.5*kCarTolerance) ) ) ) + { + // Inside both phi *full* planes + if ( compS < 0 ) + { + sphi = pDistS/compS ; + if (sphi >= -0.5*kCarTolerance) + { + xi = p.x() + sphi*v.x() ; + yi = p.y() + sphi*v.y() ; - if ( compS < 0 ) - { - sphi = pDistS/compS ; + // Check intersecting with correct half-plane + // (if not -> no intersect) + // + if ((yi*cosCPhi-xi*sinCPhi)>=0) + { + sphi = kInfinity ; + } + else + { + sidephi = kSPhi ; + if ( pDistS > -kCarTolerance*0.5 ) + { + sphi = 0.0 ; // Leave by sphi immediately + } + } + } + else + { + sphi = kInfinity ; + } + } + else + { + sphi = kInfinity ; + } - if (sphi >= -0.5*kCarTolerance) - { - xi = p.x() + sphi*v.x() ; - yi = p.y() + sphi*v.y() ; + if ( compE < 0 ) + { + sphi2 = pDistE/compE ; -// Check intersecting with correct half-plane (if not -> no intersect) + // Only check further if < starting phi intersection + // + if ( (sphi2 > -0.5*kCarTolerance) && (sphi2 < sphi) ) + { + xi = p.x() + sphi2*v.x() ; + yi = p.y() + sphi2*v.y() ; - if ((yi*cosCPhi-xi*sinCPhi)>=0) - { - sphi = kInfinity ; - } - else - { - sidephi = kSPhi ; + // Check intersecting with correct half-plane - if ( pDistS > -kCarTolerance*0.5 ) - { - sphi = 0.0 ; // Leave by sphi immediately - } - } - } - else sphi = kInfinity ; - } - else sphi = kInfinity ; + if ( (yi*cosCPhi-xi*sinCPhi) >= 0) + { + // Leaving via ending phi - if ( compE < 0 ) - { - sphi2 = pDistE/compE ; + sidephi = kEPhi ; + if ( pDistE <= -kCarTolerance*0.5 ) sphi = sphi2 ; + else sphi = 0.0 ; + } + } + } + } + else + { + sphi = kInfinity ; + } + } + else + { + // On z axis + travel not || to z axis -> if phi of vector direction + // within phi of shape, Step limited by rmax, else Step =0 -// Only check further if < starting phi intersection - - if (sphi2 > -0.5*kCarTolerance && sphi2 < sphi ) - { - xi = p.x() + sphi2*v.x() ; - yi = p.y() + sphi2*v.y() ; - -// Check intersecting with correct half-plane - - if ( (yi*cosCPhi-xi*sinCPhi) >= 0) - { -// Leaving via ending phi - sidephi = kEPhi ; - - if ( pDistE <= -kCarTolerance*0.5 ) sphi = sphi2 ; - else sphi = 0.0 ; - } - } - } - } - else sphi = kInfinity ; - - /* ******************************************* - - else if ( pDistS >= 0 && pDistE >= 0 ) - { -// Outside both *full* phi planes - if (pDistS <= pDistE) - { - sidephi = kSPhi ; - } - else - { - sidephi = kEPhi ; - } - - if (fDPhi>M_PI) - { - if (compS<0&&compE<0) - { - sphi=0; - } - else - { - sphi=kInfinity; - } - } - else - { -// if towards both >=0 then once inside (after error) will remain inside - - if (compS>=0&&compE>=0) - { - sphi=kInfinity; - } - else - { - sphi=0; - } - } - } - else if ( pDistS > 0 && pDistE < 0 ) - { -// Outside full starting plane, inside full ending plane - - if (fDPhi>M_PI) - { - if (compE<0) - { - sphi=pDistE/compE; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - -// Check intersection in correct half-plane (if not -> not leaving phi extent) - - if ( (yi*cosCPhi-xi*sinCPhi) <= 0 ) - { - sphi=kInfinity; - } - else // Leaving via Ending phi - { - sidephi = kEPhi ; - if (pDistE>-kCarTolerance*0.5) - { - sphi=0; - } - } - } - else - { - sphi=kInfinity; - } - } - else - { - if (compS>=0) - { - if (compE<0) - { - sphi=pDistE/compE; - xi=p.x()+sphi*v.x(); - yi=p.y()+sphi*v.y(); - -// Check intersection in correct half-plane (if not -> remain in extent) - - if ( (yi*cosCPhi-xi*sinCPhi) <= 0 ) - { - sphi=kInfinity; - } - else // otherwise leaving via Ending phi - { - sidephi=kEPhi ; - } - } - else - { - sphi=kInfinity ; - } - } - else // leaving immediately by starting phi - { - sidephi=kSPhi ; - sphi=0 ; - } - } - } - else - { -// Must be pDistS < 0 && pDistE > 0 -// Inside full starting plane, outside full ending plane - - if (fDPhi>M_PI) - { - if (compS<0) - { - sphi=pDistS/compS ; - xi=p.x()+sphi*v.x() ; - yi=p.y()+sphi*v.y() ; - -// Check intersection in correct half-plane (if not -> not leaving phi extent) - - if ((yi*cosCPhi-xi*sinCPhi)>=0) - { - sphi=kInfinity ; - } - else // Leaving via Starting phi - { - sidephi = kSPhi ; - if ( pDistS >- kCarTolerance*0.5 ) - { - sphi=0 ; - } - } - } - else - { - sphi=kInfinity ; - } - } - else - { - if (compE>=0) - { - if (compS<0) - { - sphi=pDistS/compS ; - xi=p.x()+sphi*v.x() ; - yi=p.y()+sphi*v.y() ; - -// Check intersection in correct half-plane (if not -> remain in extent) - - if ((yi*cosCPhi-xi*sinCPhi)>=0) - { - sphi=kInfinity ; - } - else // otherwise leaving via Starting phi - { - sidephi=kSPhi ; - } - } - else - { - sphi=kInfinity ; - } - } - else // leaving immediately by ending - { - sidephi=kEPhi ; - sphi=0 ; - } - } - } - - ****************************** */ - - } - else - { -// On z axis + travel not || to z axis -> if phi of vector direction -// within phi of shape, Step limited by rmax, else Step =0 - - vphi = atan2(v.y(),v.x()) ; - - if ( fSPhi < vphi && vphi < fSPhi + fDPhi ) sphi = kInfinity ; - else - { - sidephi = kSPhi ; // arbitrary - sphi = 0.0 ; - } - } - if (sphi < snxt) // Order intersecttions - { - snxt = sphi ; - side = sidephi ; - } - } - if (sr < snxt) // Order intersections - { - snxt = sr ; - side = sider ; - } + vphi = atan2(v.y(),v.x()) ; + if ( (fSPhi < vphi) && (vphi < fSPhi + fDPhi) ) + { + sphi = kInfinity ; + } + else + { + sidephi = kSPhi ; // arbitrary + sphi = 0.0 ; + } + } + if (sphi < snxt) // Order intersecttions + { + snxt = sphi ; + side = sidephi ; + } + } + if (sr < snxt) // Order intersections + { + snxt = sr ; + side = sider ; + } } if (calcNorm) { switch(side) { case kRMax: - // Note: returned vector not normalised - // (divide by fRMax for unit vector) - xi = p.x() + snxt*v.x() ; - yi = p.y() + snxt*v.y() ; - *n = G4ThreeVector(xi/fRMax,yi/fRMax,0) ; - *validNorm = true ; - break ; + // Note: returned vector not normalised + // (divide by fRMax for unit vector) + // + xi = p.x() + snxt*v.x() ; + yi = p.y() + snxt*v.y() ; + *n = G4ThreeVector(xi/fRMax,yi/fRMax,0) ; + *validNorm = true ; + break ; case kRMin: - *validNorm = false ; // Rmin is inconvex - break ; + *validNorm = false ; // Rmin is inconvex + break ; case kSPhi: - if ( fDPhi <= M_PI ) - { - *n = G4ThreeVector(sin(fSPhi),-cos(fSPhi),0) ; - *validNorm = true ; - } - else *validNorm = false ; - break ; + if ( fDPhi <= M_PI ) + { + *n = G4ThreeVector(sin(fSPhi),-cos(fSPhi),0) ; + *validNorm = true ; + } + else + { + *validNorm = false ; + } + break ; case kEPhi: - if (fDPhi <= M_PI) - { - *n = G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0) ; - *validNorm = true ; - } - else *validNorm = false ; - break ; + if (fDPhi <= M_PI) + { + *n = G4ThreeVector(-sin(fSPhi+fDPhi),cos(fSPhi+fDPhi),0) ; + *validNorm = true ; + } + else + { + *validNorm = false ; + } + break ; case kPZ: - *n=G4ThreeVector(0,0,1) ; - *validNorm=true ; - break ; + *n=G4ThreeVector(0,0,1) ; + *validNorm=true ; + break ; case kMZ: - *n = G4ThreeVector(0,0,-1) ; - *validNorm = true ; - break ; + *n = G4ThreeVector(0,0,-1) ; + *validNorm = true ; + break ; default: G4cout.precision(16) ; G4cout << G4endl ; - G4cout << "Tubs parameters:" << G4endl << G4endl ; - G4cout << "fRMin = " << fRMin/mm << " mm" << G4endl ; - G4cout << "fRMax = " << fRMax/mm << " mm" << G4endl ; - G4cout << "fDz = " << fDz/mm << " mm" << G4endl ; - G4cout << "fSPhi = " << fSPhi/degree << " degree" << G4endl ; - G4cout << "fDPhi = " << fDPhi/degree << " degree" << G4endl<= 2.0 * M_PI) { - pNURBS = new G4NURBStube (fRMin, fRMax, fDz) ; + pNURBS = new G4NURBStube (fRMin,fRMax,fDz) ; } else { - pNURBS = new G4NURBStubesector (fRMin, fRMax, fDz, fSPhi, fSPhi + fDPhi) ; + pNURBS = new G4NURBStubesector (fRMin,fRMax,fDz,fSPhi,fSPhi+fDPhi) ; } } else { if (fDPhi >= 2.0 * M_PI) { - pNURBS = new G4NURBScylinder (fRMax, fDz) ; + pNURBS = new G4NURBScylinder (fRMax,fDz) ; } else { const G4double epsilon = 1.e-4 ; // Cylinder sector not yet available! - pNURBS = new G4NURBStubesector (epsilon, fRMax, fDz, - fSPhi, fSPhi + fDPhi) ; + pNURBS = new G4NURBStubesector (epsilon,fRMax,fDz,fSPhi,fSPhi+fDPhi) ; } } return pNURBS ; @@ -1785,4 +1686,3 @@ G4NURBS* G4Tubs::CreateNURBS () const // // /////////////////////////////////// End of G4Tubs.cc //////////////////////// - diff --git a/source/geometry/solids/History b/source/geometry/solids/History index 356ea541ec..c1c62a28aa 100644 --- a/source/geometry/solids/History +++ b/source/geometry/solids/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2001/04/20 20:02:08 gcosmo Exp $ +$Id: History,v 1.10 2002/10/28 11:54:10 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,13 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Oct 28th, 2002 G. Cosmo - geomsolids-V04-01-00 +- Collects tags breps-V04-01-01, geom-bool-V04-01-00, geom-csg-V04-01-01, + geom-specific-V04-01-00. +- Coworks with tag geommng-V04-01-03 of geometry/management, and based + on reference tag "geant4-04-01-ref-03". Includes streaming mechanism + for solids. + Apr 20th, 2001 G. Cosmo - geomsolids-V03-01-00 - Collects tags breps-V03-01-00, geom-solids-csg-V03-01-01, stepinterface-V03-01-00, geom-solids-specific-V03-01-00, diff --git a/source/geometry/solids/STEP/GNUmakefile b/source/geometry/solids/STEP/GNUmakefile index 4a528ed212..43785d00bc 100644 --- a/source/geometry/solids/STEP/GNUmakefile +++ b/source/geometry/solids/STEP/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2001/11/29 16:46:51 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2002/07/04 16:17:48 gcosmo Exp $ # ------------------------------------------------------------- # GNUmakefile for STEP library. Gabriele Cosmo, 15/11/96. # ------------------------------------------------------------- @@ -23,7 +23,7 @@ CPPFLAGS += \ # To avoid incompatibilities with ANSI standard treatment of strings, the # NIST STEP reader on gcc-2.95.X and later must be compiled in non-ANSI mode. # -ifneq (,$(findstring Linux-g++,$(G4SYSTEM))) +ifneq (,$(findstring g++,$(G4SYSTEM))) ansi_options = -Wall -ansi -pedantic NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) NCPP = $(CPPFLAGS) diff --git a/source/geometry/solids/STEP/History b/source/geometry/solids/STEP/History index f5d43e9f25..efe6b91d1e 100644 --- a/source/geometry/solids/STEP/History +++ b/source/geometry/solids/STEP/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2001/11/29 16:50:01 gcosmo Exp $ +$Id: History,v 1.10 2002/07/04 16:17:48 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -19,6 +19,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +July 4, 2002 Gabriele Cosmo (STEP-V04-01-00) +- GNUmakefile: parse 'g++' string in G4SYSTEM to detect non-ISO setup for + gcc-2.95 and higher. + November 29, 2001 Gabriele Cosmo (STEP-V03-02-01) - Fixes for compilation on gcc-2.96.98 and gcc-3.0.2 compilers to overcome warnings produced and fix std namespace problems in sdaiString.cc. diff --git a/source/geometry/solids/STEP/include/classes.h b/source/geometry/solids/STEP/include/classes.h index 606fa1bd8c..98e37d55b9 100644 --- a/source/geometry/solids/STEP/include/classes.h +++ b/source/geometry/solids/STEP/include/classes.h @@ -6,7 +6,7 @@ // // $Id: classes.h,v 1.3 2000/01/21 13:42:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /* ** Fed-x parser output module for generating C++ class definitions diff --git a/source/geometry/solids/STEPinterface/GNUmakefile b/source/geometry/solids/STEPinterface/GNUmakefile index 05cc288382..e288e8aa81 100644 --- a/source/geometry/solids/STEPinterface/GNUmakefile +++ b/source/geometry/solids/STEPinterface/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2001/11/30 10:25:58 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2002/07/04 16:15:28 gcosmo Exp $ # ------------------------------------------------------------- # GNUmakefile for STEP library. Gabriele Cosmo, 15/11/96. # ------------------------------------------------------------- @@ -24,7 +24,7 @@ CPPFLAGS += \ # To avoid incompatibilities with ANSI standard treatment of strings, the # NIST STEP reader on gcc-2.95.X and later must be compiled in non-ANSI mode. # -ifneq (,$(findstring Linux-g++,$(G4SYSTEM))) +ifneq (,$(findstring g++,$(G4SYSTEM))) ansi_options = -Wall -ansi -pedantic NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) NCPP = $(CPPFLAGS) diff --git a/source/geometry/solids/STEPinterface/History b/source/geometry/solids/STEPinterface/History index 1cd87e6795..2cb3caa701 100644 --- a/source/geometry/solids/STEPinterface/History +++ b/source/geometry/solids/STEPinterface/History @@ -1,4 +1,4 @@ -$Id: History,v 1.12 2002/02/26 13:21:03 gcosmo Exp $ +$Id: History,v 1.14 2002/11/21 16:50:13 gcosmo Exp $ ---------------------------------------------------------------------------- ========================================================= @@ -17,6 +17,14 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +21st November 2002 Gabriele Cosmo (stepinterface-V04-01-01) +- Made all static inline methods not inlined, to allow porting on + Windows DLLs. + +4th July 2002 Gabriele Cosmo (stepinterface-V04-01-00) +- GNUmakefile: parse 'g++' string in G4SYSTEM to detect non-ISO setup for + gcc-2.95 and higher. + 26th February 2002 Gabriele Cosmo (stepinterface-V04-00-00) - G4RepresentationRelationshipCreator.cc: fixed unsafe usage of '<' operator. diff --git a/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh index 735c8018ed..3406319ee6 100644 --- a/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AdvancedBrepShapeRepresentationCreator.hh,v 1.4 2001/07/11 10:00:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AdvancedBrepShapeRepresentationCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4AdvancedBrepShapeRepresentationCreator @@ -56,7 +56,7 @@ class G4AdvancedBrepShapeRepresentationCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Advanced_Brep_Shape_Representation"; } - static G4AdvancedBrepShapeRepresentationCreator GetInstance() { return csc; } + static G4AdvancedBrepShapeRepresentationCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh index b8f747aa10..30eeadd729 100644 --- a/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AdvancedFaceCreator.hh,v 1.4 2001/07/11 10:00:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AdvancedFaceCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4AdvancedFaceCreator @@ -56,7 +56,7 @@ class G4AdvancedFaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Advanced_Face"; } - static G4AdvancedFaceCreator GetInstance() { return csc; } + static G4AdvancedFaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh b/source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh index bde9e96648..48270be707 100644 --- a/source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AssemblyCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4AssemblyCreator @@ -65,7 +65,7 @@ class G4AssemblyCreator: public G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Assembly"; } - static G4AssemblyCreator GetInstance() { return ci; } + static G4AssemblyCreator GetInstance(); private: diff --git a/source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh index b31e7b23ff..c12b5822f3 100644 --- a/source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis1PlacementCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis1PlacementCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis1PlacementCreator @@ -56,7 +56,7 @@ class G4Axis1PlacementCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Axis1_Placement"; } - static G4Axis1PlacementCreator GetInstance() { return csc; } + static G4Axis1PlacementCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh index 31049ad533..78290fbc41 100644 --- a/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement2dCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2Placement2dCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement2dCreator @@ -55,7 +55,7 @@ class G4Axis2Placement2dCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Axis2_Placement_2d"; } - static G4Axis2Placement2dCreator GetInstance() { return csc; } + static G4Axis2Placement2dCreator GetInstance(); //Members diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh index d230c08505..5b499a3cfc 100644 --- a/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement3dCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2Placement3dCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3dCreator @@ -56,7 +56,7 @@ class G4Axis2Placement3dCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Axis2_Placement_3d"; } - static G4Axis2Placement3dCreator GetInstance() { return csc; } + static G4Axis2Placement3dCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh index 1935c50bdb..824ab21919 100644 --- a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2PlacementCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2PlacementCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2PlacementCreator @@ -56,7 +56,7 @@ class G4Axis2PlacementCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Axis2_Placement"; } - static G4Axis2PlacementCreator GetInstance() { return csc; } + static G4Axis2PlacementCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh index ca92335a03..ee0783d006 100644 --- a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2PlacementsCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2PlacementsCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2PlacementsCreator @@ -56,7 +56,7 @@ class G4Axis2PlacementsCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Axis2_Placements"; } - static G4Axis2PlacementsCreator GetInstance() { return csc; } + static G4Axis2PlacementsCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh b/source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh index d6c32e6ea6..63b31d1f64 100644 --- a/source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineCurveWithKnotsCreator.hh,v 1.4 2001/07/11 10:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BSplineCurveWithKnotsCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnotsCreator @@ -56,7 +56,7 @@ class G4BSplineCurveWithKnotsCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "B_Spline_Curve_With_Knots"; } - static G4BSplineCurveWithKnotsCreator GetInstance() { return csc; } + static G4BSplineCurveWithKnotsCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh index 20477dad82..dcfad27890 100644 --- a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineSurfaceCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BSplineSurfaceCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceCreator @@ -56,7 +56,7 @@ class G4BSplineSurfaceCreator: public G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "B_Spline_Surface"; } - static G4BSplineSurfaceCreator GetInstance() { return csc; } + static G4BSplineSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh b/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh index d7ce0b5a62..16de11b661 100644 --- a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineSurfaceWithKnotsCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BSplineSurfaceWithKnotsCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnotsCreator @@ -56,7 +56,7 @@ class G4BSplineSurfaceWithKnotsCreator: public G4BSplineSurfaceCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "B_Spline_Surface_With_Knots"; } - static G4BSplineSurfaceWithKnotsCreator GetInstance() { return csc; } + static G4BSplineSurfaceWithKnotsCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh index 57ac3f6bf6..d129138c08 100644 --- a/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BoundedSurfaceCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BoundedSurfaceCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BoundedSurfaceCreator @@ -56,7 +56,7 @@ class G4BoundedSurfaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Bounded_Surface"; } - static G4BoundedSurfaceCreator GetInstance() { return csc; } + static G4BoundedSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh b/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh index 1c6c72bdd6..5d6b79f731 100644 --- a/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CartesianPointCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CartesianPointCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CartesianPointCreator @@ -56,7 +56,7 @@ class G4CartesianPointCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Cartesian_Point"; } - static G4CartesianPointCreator GetInstance() { return csc; } + static G4CartesianPointCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4CircleCreator.hh b/source/geometry/solids/STEPinterface/include/G4CircleCreator.hh index 040a28cc0d..5746c8f41d 100644 --- a/source/geometry/solids/STEPinterface/include/G4CircleCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4CircleCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CircleCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CircleCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CircleCreator @@ -56,7 +56,7 @@ class G4CircleCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Circle"; } - static G4CircleCreator GetInstance() { return csc; } + static G4CircleCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh b/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh index 325ce6465f..0cda8f1a44 100644 --- a/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClosedShellCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ClosedShellCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ClosedShellCreator @@ -56,7 +56,7 @@ class G4ClosedShellCreator: public G4ConnectedFaceSetCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Closed_Shell"; } - static G4ClosedShellCreator GetInstance() { return csc; } + static G4ClosedShellCreator GetInstance(); //Members diff --git a/source/geometry/solids/STEPinterface/include/G4ConicCreator.hh b/source/geometry/solids/STEPinterface/include/G4ConicCreator.hh index 24f0f7a4d0..1bc6b8f501 100644 --- a/source/geometry/solids/STEPinterface/include/G4ConicCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ConicCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConicCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConicCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConicCreator @@ -56,7 +56,7 @@ class G4ConicCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Conic"; } - static G4ConicCreator GetInstance() { return csc; } + static G4ConicCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh index 26fcab7a23..921b3db535 100644 --- a/source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConicalSurfaceCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConicalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurfaceCreator @@ -56,7 +56,7 @@ class G4ConicalSurfaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Conical_Surface"; } - static G4ConicalSurfaceCreator GetInstance() { return csc; } + static G4ConicalSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ConnectedFaceSetCreator.hh b/source/geometry/solids/STEPinterface/include/G4ConnectedFaceSetCreator.hh index 34b85ebac1..ed3ac002af 100644 --- a/source/geometry/solids/STEPinterface/include/G4ConnectedFaceSetCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ConnectedFaceSetCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConnectedFaceSetCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConnectedFaceSetCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConnectedFaceSetCreator @@ -56,7 +56,7 @@ class G4ConnectedFaceSetCreator: public G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Connected_Face_Set"; } - static G4ConnectedFaceSetCreator GetInstance() { return csc; } + static G4ConnectedFaceSetCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh index 514d5c360c..b91a4f785f 100644 --- a/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ContextDependentShapeRepresentationCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ContextDependentShapeRepresentationCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ContextDependentShapeRepresentationCreator @@ -56,8 +56,7 @@ class G4ContextDependentShapeRepresentationCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Context_Dependent_Shape_Representation"; } - static G4ContextDependentShapeRepresentationCreator GetInstance() - { return csc; } + static G4ContextDependentShapeRepresentationCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4CurveCreator.hh b/source/geometry/solids/STEPinterface/include/G4CurveCreator.hh index c0d2f4a645..107383fbcc 100644 --- a/source/geometry/solids/STEPinterface/include/G4CurveCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4CurveCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CurveCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CurveCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CurveCreator @@ -56,7 +56,7 @@ class G4CurveCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Curve"; } - static G4CurveCreator GetInstance() { return csc; } + static G4CurveCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh index e0ca85cb0e..065e2cda4a 100644 --- a/source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CylindricalSurfaceCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CylindricalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurfaceCreator @@ -56,7 +56,7 @@ class G4CylindricalSurfaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Cylindrical_Surface"; } - static G4CylindricalSurfaceCreator GetInstance() { return csc; } + static G4CylindricalSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh b/source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh index a2859cceb1..390817cfcd 100644 --- a/source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DirectionCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DirectionCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4DirectionCreator @@ -56,7 +56,7 @@ class G4DirectionCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Direction"; } - static G4DirectionCreator GetInstance() { return csc; } + static G4DirectionCreator GetInstance(); //Members diff --git a/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh b/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh index 786b47cbca..57de0ee9d2 100644 --- a/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EdgeCurveCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EdgeCurveCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4EdgeCurveCreator @@ -56,7 +56,7 @@ class G4EdgeCurveCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Edge_Curve"; } - static G4EdgeCurveCreator GetInstance() { return csc; } + static G4EdgeCurveCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh b/source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh index ce0384af88..3b9a050d0c 100644 --- a/source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EdgeLoopCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EdgeLoopCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4EdgeLoopCreator @@ -56,7 +56,7 @@ class G4EdgeLoopCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Edge_Loop"; } - static G4EdgeLoopCreator GetInstance() { return csc; } + static G4EdgeLoopCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh b/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh index 44f827912f..c6555c03ea 100644 --- a/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EllipseCreator.hh,v 1.4 2001/07/11 10:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EllipseCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4EllipseCreator @@ -56,7 +56,7 @@ class G4EllipseCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Ellipse"; } - static G4EllipseCreator GetInstance() { return csc; } + static G4EllipseCreator GetInstance(); //Members diff --git a/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh b/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh index 20cace771e..5bb0627806 100644 --- a/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FaceBoundCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FaceBoundCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FaceBoundCreator @@ -56,7 +56,7 @@ class G4FaceBoundCreator: public G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Face_Bound"; } - static G4FaceBoundCreator GetInstance() { return csc; } + static G4FaceBoundCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh b/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh index 60c03047da..7f4d466388 100644 --- a/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FaceOuterBoundCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FaceOuterBoundCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FaceOuterBoundCreator @@ -55,7 +55,7 @@ class G4FaceOuterBoundCreator: public G4FaceBoundCreator void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Face_Outer_Bound"; } - static G4FaceOuterBoundCreator GetInstance() { return csc; } + static G4FaceOuterBoundCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh index 74ca3d946b..22c123151d 100644 --- a/source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FaceSurfaceCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FaceSurfaceCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FaceSurfaceCreator @@ -56,7 +56,7 @@ class G4FaceSurfaceCreator: public G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Face_Surface"; } - static G4FaceSurfaceCreator GetInstance() { return csc; } + static G4FaceSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh b/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh index c0d7ee8df7..7c97510361 100644 --- a/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometricRepresentationContextCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometricRepresentationContextCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4GeometricRepresentationContextCreator @@ -56,7 +56,7 @@ class G4GeometricRepresentationContextCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Geometric_Representation_Context"; } - static G4GeometricRepresentationContextCreator GetInstance() { return csc; } + static G4GeometricRepresentationContextCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4GeometryCreator.hh b/source/geometry/solids/STEPinterface/include/G4GeometryCreator.hh index 394f75cbab..6ab9d1c75e 100644 --- a/source/geometry/solids/STEPinterface/include/G4GeometryCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4GeometryCreator.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCreator.hh,v 1.7 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCreator diff --git a/source/geometry/solids/STEPinterface/include/G4GeometryTable.hh b/source/geometry/solids/STEPinterface/include/G4GeometryTable.hh index 077e021418..f9c7a679c7 100644 --- a/source/geometry/solids/STEPinterface/include/G4GeometryTable.hh +++ b/source/geometry/solids/STEPinterface/include/G4GeometryTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryTable.hh,v 1.6 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryTable.hh,v 1.7 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryTable @@ -62,7 +62,7 @@ class G4GeometryTable static void* CreateObject(STEPentity&); static void* CreateSTEPObject(void*, G4String&); static void PrintObjectNames(); - static const G4GeometryTable& GetInstance() { return gt; } + static const G4GeometryTable& GetInstance(); public: diff --git a/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh b/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh index 28368ec73f..e991823f6f 100644 --- a/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HyperbolaCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HyperbolaCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4HyperbolaCreator @@ -56,7 +56,7 @@ class G4HyperbolaCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Hyperbola"; } - static G4HyperbolaCreator GetInstance() { return csc; } + static G4HyperbolaCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh index 482140b961..e466411742 100644 --- a/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ItemDefinedTransformationCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ItemDefinedTransformationCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ItemDefinedTransformationCreator @@ -56,7 +56,7 @@ class G4ItemDefinedTransformationCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Item_Defined_Transformation"; } - static G4ItemDefinedTransformationCreator GetInstance() { return csc; } + static G4ItemDefinedTransformationCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4LineCreator.hh b/source/geometry/solids/STEPinterface/include/G4LineCreator.hh index 7fe0a621eb..b594663311 100644 --- a/source/geometry/solids/STEPinterface/include/G4LineCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4LineCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LineCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LineCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4LineCreator @@ -56,7 +56,7 @@ class G4LineCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Line"; } - static G4LineCreator GetInstance() { return csc; } + static G4LineCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh b/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh index 2a8868f93e..21171acea4 100644 --- a/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ManifoldSolidBrepCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ManifoldSolidBrepCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ManifoldSolidBrepCreator @@ -56,7 +56,7 @@ class G4ManifoldSolidBrepCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Manifold_Solid_Brep"; } - static G4ManifoldSolidBrepCreator GetInstance() { return csc; } + static G4ManifoldSolidBrepCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh b/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh index 57885736a7..5109592313 100644 --- a/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh +++ b/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh @@ -22,7 +22,7 @@ // // // $Id: G4NISTStepReader.hh,v 1.5 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4NISTStepReader diff --git a/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh b/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh index 3f7a1ee54e..1596258ae4 100644 --- a/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenShellCreator.hh,v 1.4 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenShellCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4OpenShellCreator @@ -56,7 +56,7 @@ class G4OpenShellCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Open_Shell"; } - static G4OpenShellCreator GetInstance() { return csc; } + static G4OpenShellCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh b/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh index 437811abe6..cd76a3118c 100644 --- a/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OrientedEdgeCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OrientedEdgeCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4OrientedEdgeCreator @@ -56,7 +56,7 @@ class G4OrientedEdgeCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Oriented_Edge"; } - static G4OrientedEdgeCreator GetInstance() { return csc; } + static G4OrientedEdgeCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh b/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh index c6801efdc1..f63b141f16 100644 --- a/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParabolaCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParabolaCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ParabolaCreator @@ -56,7 +56,7 @@ class G4ParabolaCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Parabola"; } - static G4ParabolaCreator GetInstance() { return csc; } + static G4ParabolaCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh b/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh index 134665a705..5426b6618a 100644 --- a/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PlaneCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PlaneCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PlaneCreator @@ -56,7 +56,7 @@ class G4PlaneCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Plane"; } - static G4PlaneCreator GetInstance() { return csc; } + static G4PlaneCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4PointCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointCreator.hh index dd6c67fc97..1c989291d6 100644 --- a/source/geometry/solids/STEPinterface/include/G4PointCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4PointCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PointCreator @@ -56,7 +56,7 @@ class G4PointCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Point"; } - static G4PointCreator GetInstance() { return csc; } + static G4PointCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh index 80cca6fa91..ca1e42ac64 100644 --- a/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointOnCurveCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointOnCurveCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PointOnCurveCreator @@ -56,7 +56,7 @@ class G4PointOnCurveCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Point_On_Curve"; } - static G4PointOnCurveCreator GetInstance() { return csc; } + static G4PointOnCurveCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh index 481fa472ba..1906378411 100644 --- a/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointOnSurfaceCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointOnSurfaceCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PointOnSurfaceCreator @@ -56,7 +56,7 @@ class G4PointOnSurfaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Point_On_Surface"; } - static G4PointOnSurfaceCreator GetInstance() { return csc; } + static G4PointOnSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh index 270052de80..bc042a99bf 100644 --- a/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointReplicaCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointReplicaCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PointReplicaCreator @@ -56,7 +56,7 @@ class G4PointReplicaCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Point_Replica"; } - static G4PointReplicaCreator GetInstance() { return csc; } + static G4PointReplicaCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh b/source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh index 6d7979970f..728e756f2b 100644 --- a/source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProductDefinitionShapeCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProductDefinitionShapeCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ProductDefinitionShapeCreator @@ -57,7 +57,7 @@ class G4ProductDefinitionShapeCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Product_Definition_Shape"; } - static G4ProductDefinitionShapeCreator GetInstance() { return csc; } + static G4ProductDefinitionShapeCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.hh index 6eb3f0378c..152cca2dd5 100644 --- a/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RationalBSplineSurfaceCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RationalBSplineSurfaceCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4RationalBSplineSurfaceCreator @@ -57,7 +57,7 @@ class G4RationalBSplineSurfaceCreator: public G4BSplineSurfaceCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Rational_B_Spline_Surface"; } - static G4RationalBSplineSurfaceCreator GetInstance() { return csc; } + static G4RationalBSplineSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh b/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh index ed49698a8a..c9ca74c4aa 100644 --- a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RepresentationRelationshipCreator.hh,v 1.5 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RepresentationRelationshipCreator.hh,v 1.6 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4RepresentationRelationshipCreator @@ -56,7 +56,7 @@ class G4RepresentationRelationshipCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Representation_Relationship"; } - static G4RepresentationRelationshipCreator GetInstance() { return csc; } + static G4RepresentationRelationshipCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh b/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh index 938eb705ca..dae5067dbf 100644 --- a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RepresentationRelationshipWithTransformationCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RepresentationRelationshipWithTransformationCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4RepresentationRelationshipWithTransformationCreator @@ -58,8 +58,7 @@ class G4RepresentationRelationshipWithTransformationCreator void CreateSTEPGeometry(void*); const char* Name() const { return "Representation_Relationship_With_Transformation"; } - static G4RepresentationRelationshipWithTransformationCreator GetInstance() - { return csc; } + static G4RepresentationRelationshipWithTransformationCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh index de709653f9..476322eee5 100644 --- a/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShapeDefinitionRepresentationCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShapeDefinitionRepresentationCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ShapeDefinitionRepresentationCreator @@ -56,7 +56,7 @@ class G4ShapeDefinitionRepresentationCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Shape_Definition_Representation"; } - static G4ShapeDefinitionRepresentationCreator GetInstance() { return csc; } + static G4ShapeDefinitionRepresentationCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh index 1382a1559e..b796c69782 100644 --- a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShapeRepresentationCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShapeRepresentationCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ShapeRepresentationCreator @@ -56,7 +56,7 @@ class G4ShapeRepresentationCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Shape_Representation"; } - static G4ShapeRepresentationCreator GetInstance() { return csc; } + static G4ShapeRepresentationCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh b/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh index 76b6cb9871..f498f8a7ee 100644 --- a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShapeRepresentationRelationshipCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShapeRepresentationRelationshipCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ShapeRepresentationRelationshipCreator @@ -56,7 +56,7 @@ class G4ShapeRepresentationRelationshipCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Shape_Representation_Relationship"; } - static G4ShapeRepresentationRelationshipCreator GetInstance() { return csc; } + static G4ShapeRepresentationRelationshipCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh index 177f1195be..b3dafd9b26 100644 --- a/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SphericalSurfaceCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SphericalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4SphericalSurfaceCreator @@ -56,7 +56,7 @@ class G4SphericalSurfaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void*); const char* Name() const { return "Spherical_Surface"; } - static G4SphericalSurfaceCreator GetInstance() { return csc; } + static G4SphericalSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4StepFileReader.hh b/source/geometry/solids/STEPinterface/include/G4StepFileReader.hh index b375e5e3fb..72fd889c6b 100644 --- a/source/geometry/solids/STEPinterface/include/G4StepFileReader.hh +++ b/source/geometry/solids/STEPinterface/include/G4StepFileReader.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepFileReader.hh,v 1.5 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4StepFileReader diff --git a/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh index 19f8ed5f98..f6930d07bc 100644 --- a/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ToroidalSurfaceCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ToroidalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ToroidalSurfaceCreator @@ -56,7 +56,7 @@ class G4ToroidalSurfaceCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Toroidal_Surface"; } - static G4ToroidalSurfaceCreator GetInstance() { return csc; } + static G4ToroidalSurfaceCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4VectorCreator.hh b/source/geometry/solids/STEPinterface/include/G4VectorCreator.hh index 0884967339..a2e859104c 100644 --- a/source/geometry/solids/STEPinterface/include/G4VectorCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4VectorCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VectorCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VectorCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VectorCreator @@ -56,7 +56,7 @@ class G4VectorCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Vector"; } - static G4VectorCreator GetInstance() { return csc; } + static G4VectorCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh b/source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh index c3c789dac4..f6071ea83d 100644 --- a/source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh +++ b/source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VertexPointCreator.hh,v 1.4 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VertexPointCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VertexPointCreator @@ -56,7 +56,7 @@ class G4VertexPointCreator: private G4GeometryCreator void CreateG4Geometry(STEPentity&); void CreateSTEPGeometry(void* G4obj); const char* Name() const { return "Vertex_Point"; } - static G4VertexPointCreator GetInstance() { return csc; } + static G4VertexPointCreator GetInstance(); // Members diff --git a/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc index f5bed7a3fe..f1f34b3c42 100644 --- a/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AdvancedBrepShapeRepresentationCreator.cc,v 1.6 2001/07/11 10:00:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AdvancedBrepShapeRepresentationCreator.cc,v 1.7 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4AdvancedBrepShapeRepresentationCreator @@ -35,6 +35,7 @@ // ---------------------------------------------------------------------- #include + #include "G4AdvancedBrepShapeRepresentationCreator.hh" #include "G4GeometryTable.hh" @@ -52,6 +53,11 @@ G4AdvancedBrepShapeRepresentationCreator:: G4AdvancedBrepShapeRepresentationCreator:: ~G4AdvancedBrepShapeRepresentationCreator(){} +G4AdvancedBrepShapeRepresentationCreator +G4AdvancedBrepShapeRepresentationCreator::GetInstance() +{ + return csc; +} void G4AdvancedBrepShapeRepresentationCreator::CreateG4Geometry(STEPentity& sEnt) { diff --git a/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc index 2d3f140db5..bc4d894beb 100644 --- a/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AdvancedFaceCreator.cc,v 1.5 2001/07/11 10:00:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AdvancedFaceCreator.cc,v 1.6 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4AdvancedFaceCreator @@ -49,6 +49,11 @@ G4AdvancedFaceCreator::G4AdvancedFaceCreator() G4AdvancedFaceCreator::~G4AdvancedFaceCreator(){} +G4AdvancedFaceCreator G4AdvancedFaceCreator::GetInstance() +{ + return csc; +} + void G4AdvancedFaceCreator::CreateG4Geometry(STEPentity& Ent) { G4Surface* srf=0; diff --git a/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc b/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc index 796841c524..d3a6d13fd2 100644 --- a/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyCreator.cc,v 1.10 2001/09/21 16:12:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AssemblyCreator.cc,v 1.11 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4AssemblyCreator @@ -51,6 +51,11 @@ G4AssemblyCreator::G4AssemblyCreator() G4GeometryTable::RegisterObject(this); } +G4AssemblyCreator G4AssemblyCreator::GetInstance() +{ + return ci; +} + G4AssemblyCreator::G4AssemblyCreator(const G4AssemblyCreator& c) { index = c.index; diff --git a/source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc index bc12422b03..b443e4de59 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis1PlacementCreator.cc,v 1.3 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis1PlacementCreator.cc,v 1.4 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis1PlacementCreator @@ -46,6 +46,11 @@ G4Axis1PlacementCreator::G4Axis1PlacementCreator() G4Axis1PlacementCreator::~G4Axis1PlacementCreator() {} +G4Axis1PlacementCreator G4Axis1PlacementCreator::GetInstance() +{ + return csc; +} + void G4Axis1PlacementCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc index b873025ca4..938cd486ab 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement2dCreator.cc,v 1.3 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2Placement2dCreator.cc,v 1.4 2002/11/21 16:49:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement2dCreator @@ -46,6 +46,11 @@ G4Axis2Placement2dCreator::G4Axis2Placement2dCreator() G4Axis2Placement2dCreator::~G4Axis2Placement2dCreator() {} +G4Axis2Placement2dCreator G4Axis2Placement2dCreator::GetInstance() +{ + return csc; +} + void G4Axis2Placement2dCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc index 0cb27d3cfd..0519745715 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement3dCreator.cc,v 1.6 2001/09/21 16:11:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2Placement3dCreator.cc,v 1.7 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3dCreator @@ -46,6 +46,11 @@ G4Axis2Placement3dCreator::G4Axis2Placement3dCreator() G4Axis2Placement3dCreator::~G4Axis2Placement3dCreator() {} +G4Axis2Placement3dCreator G4Axis2Placement3dCreator::GetInstance() +{ + return csc; +} + void G4Axis2Placement3dCreator::CreateG4Geometry(STEPentity& Ent) { G4Axis2Placement3D place; diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc index 4caee4b70d..ac0c0cda6d 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2PlacementCreator.cc,v 1.3 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2PlacementCreator.cc,v 1.4 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2PlacementCreator @@ -46,6 +46,11 @@ G4Axis2PlacementCreator::G4Axis2PlacementCreator() G4Axis2PlacementCreator::~G4Axis2PlacementCreator() {} +G4Axis2PlacementCreator G4Axis2PlacementCreator::GetInstance() +{ + return csc; +} + void G4Axis2PlacementCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc index 9c654973f5..576243c7bd 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2PlacementsCreator.cc,v 1.4 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Axis2PlacementsCreator.cc,v 1.5 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2PlacementsCreator @@ -48,6 +48,11 @@ G4Axis2PlacementsCreator::G4Axis2PlacementsCreator() G4Axis2PlacementsCreator::~G4Axis2PlacementsCreator() {} +G4Axis2PlacementsCreator G4Axis2PlacementsCreator::GetInstance() +{ + return csc; +} + void G4Axis2PlacementsCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc b/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc index 5ae57925a5..248ccb8a30 100644 --- a/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineCurveWithKnotsCreator.cc,v 1.7 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BSplineCurveWithKnotsCreator.cc,v 1.8 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnotsCreator @@ -52,6 +52,12 @@ G4BSplineCurveWithKnotsCreator::G4BSplineCurveWithKnotsCreator() G4BSplineCurveWithKnotsCreator::~G4BSplineCurveWithKnotsCreator() {} +G4BSplineCurveWithKnotsCreator G4BSplineCurveWithKnotsCreator::GetInstance() +{ + return csc; +} + + void G4BSplineCurveWithKnotsCreator::CreateG4Geometry(STEPentity& Ent) { // Created by L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc index 58dd066e8d..38c81dd0b8 100644 --- a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineSurfaceCreator.cc,v 1.5 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BSplineSurfaceCreator.cc,v 1.6 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceCreator @@ -45,6 +45,11 @@ G4BSplineSurfaceCreator::G4BSplineSurfaceCreator(){G4GeometryTable::RegisterObje G4BSplineSurfaceCreator::~G4BSplineSurfaceCreator(){} +G4BSplineSurfaceCreator G4BSplineSurfaceCreator::GetInstance() +{ + return csc; +} + void G4BSplineSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { SdaiB_spline_surface* bSpline = new SdaiB_spline_surface(&Ent); diff --git a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc b/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc index 9c78e9277d..68be602643 100644 --- a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineSurfaceWithKnotsCreator.cc,v 1.5 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BSplineSurfaceWithKnotsCreator.cc,v 1.6 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnotsCreator @@ -51,6 +51,11 @@ G4BSplineSurfaceWithKnotsCreator::G4BSplineSurfaceWithKnotsCreator() G4BSplineSurfaceWithKnotsCreator::~G4BSplineSurfaceWithKnotsCreator() {} +G4BSplineSurfaceWithKnotsCreator G4BSplineSurfaceWithKnotsCreator::GetInstance() +{ + return csc; +} + void G4BSplineSurfaceWithKnotsCreator::CreateG4Geometry(STEPentity& Ent) { G4int rows=0, cols=0; diff --git a/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc index bdea9cd2ab..dcdbbfad82 100644 --- a/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BoundedSurfaceCreator.cc,v 1.6 2001/07/11 10:00:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BoundedSurfaceCreator.cc,v 1.7 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4BoundedSurfaceCreator @@ -51,6 +51,11 @@ G4BoundedSurfaceCreator::G4BoundedSurfaceCreator() G4BoundedSurfaceCreator::~G4BoundedSurfaceCreator() {} +G4BoundedSurfaceCreator G4BoundedSurfaceCreator::GetInstance() +{ + return csc; +} + void G4BoundedSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { STEPcomplex* complexEnt = (STEPcomplex*)&Ent; diff --git a/source/geometry/solids/STEPinterface/src/G4CartesianPointCreator.cc b/source/geometry/solids/STEPinterface/src/G4CartesianPointCreator.cc index b242c53779..89480f0aa3 100644 --- a/source/geometry/solids/STEPinterface/src/G4CartesianPointCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4CartesianPointCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CartesianPointCreator.cc,v 1.3 2001/07/11 10:00:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CartesianPointCreator.cc,v 1.4 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CartesianPointCreator @@ -46,6 +46,11 @@ G4CartesianPointCreator::G4CartesianPointCreator() G4CartesianPointCreator::~G4CartesianPointCreator() {} +G4CartesianPointCreator G4CartesianPointCreator::GetInstance() +{ + return csc; +} + void G4CartesianPointCreator::CreateG4Geometry(STEPentity& Ent) { G4double x,y,z; diff --git a/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc b/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc index b5bfc3fa59..8923609877 100644 --- a/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CircleCreator.cc,v 1.4 2001/07/11 10:00:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CircleCreator.cc,v 1.5 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CircleCreator @@ -48,6 +48,11 @@ G4CircleCreator::G4CircleCreator() G4CircleCreator::~G4CircleCreator() {} +G4CircleCreator G4CircleCreator::GetInstance() +{ + return csc; +} + void G4CircleCreator::CreateG4Geometry(STEPentity& Ent) { G4Axis2Placement3D place; diff --git a/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc b/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc index 9b7dc002b3..dd30398358 100644 --- a/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClosedShellCreator.cc,v 1.7 2001/07/11 10:00:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ClosedShellCreator.cc,v 1.8 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ClosedShellCreator @@ -47,6 +47,11 @@ G4ClosedShellCreator::G4ClosedShellCreator() G4ClosedShellCreator::~G4ClosedShellCreator() {} +G4ClosedShellCreator G4ClosedShellCreator::GetInstance() +{ + return csc; +} + void G4ClosedShellCreator::CreateG4Geometry(STEPentity& Ent) { G4String attrName("cfs_faces"); diff --git a/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc b/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc index ec17a9069e..e8c3e72165 100644 --- a/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConicCreator.cc,v 1.4 2001/07/11 10:00:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConicCreator.cc,v 1.5 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConicCreator @@ -46,6 +46,11 @@ G4ConicCreator::G4ConicCreator() G4ConicCreator::~G4ConicCreator() {} +G4ConicCreator G4ConicCreator::GetInstance() +{ + return csc; +} + void G4ConicCreator::CreateG4Geometry(STEPentity& Ent) { // G4Placement *place; diff --git a/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc index a7d965c57d..f612fb21ba 100644 --- a/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConicalSurfaceCreator.cc,v 1.4 2001/07/11 10:00:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConicalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurfaceCreator @@ -48,6 +48,11 @@ G4ConicalSurfaceCreator::G4ConicalSurfaceCreator() G4ConicalSurfaceCreator::~G4ConicalSurfaceCreator() {} +G4ConicalSurfaceCreator G4ConicalSurfaceCreator::GetInstance() +{ + return csc; +} + void G4ConicalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { // Made by L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc b/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc index 6bc070851d..3baf783988 100644 --- a/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConnectedFaceSetCreator.cc,v 1.3 2001/07/11 10:00:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConnectedFaceSetCreator.cc,v 1.4 2002/11/21 16:49:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ConnectedFaceSetCreator @@ -46,6 +46,11 @@ G4ConnectedFaceSetCreator::G4ConnectedFaceSetCreator() G4ConnectedFaceSetCreator::~G4ConnectedFaceSetCreator() {} +G4ConnectedFaceSetCreator G4ConnectedFaceSetCreator::GetInstance() +{ + return csc; +} + void G4ConnectedFaceSetCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc index 589f5a632f..2904a55f3b 100644 --- a/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ContextDependentShapeRepresentationCreator.cc,v 1.4 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ContextDependentShapeRepresentationCreator.cc,v 1.5 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ContextDependentShapeRepresentationCreator @@ -49,6 +49,12 @@ G4ContextDependentShapeRepresentationCreator:: G4ContextDependentShapeRepresentationCreator:: ~G4ContextDependentShapeRepresentationCreator() {} +G4ContextDependentShapeRepresentationCreator +G4ContextDependentShapeRepresentationCreator::GetInstance() +{ + return csc; +} + void G4ContextDependentShapeRepresentationCreator:: CreateG4Geometry(STEPentity& Ent) { diff --git a/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc b/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc index 3b9022ba65..b6e8d3f546 100644 --- a/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CurveCreator.cc,v 1.3 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CurveCreator.cc,v 1.4 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CurveCreator @@ -46,6 +46,11 @@ G4CurveCreator::G4CurveCreator() G4CurveCreator::~G4CurveCreator() {} +G4CurveCreator G4CurveCreator::GetInstance() +{ + return csc; +} + void G4CurveCreator::CreateG4Geometry(STEPentity& Ent) {} void G4CurveCreator::CreateSTEPGeometry(void* G4obj) {} diff --git a/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc index 0cfab7544f..9fdb36fa67 100644 --- a/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CylindricalSurfaceCreator.cc,v 1.4 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CylindricalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurfaceCreator @@ -48,6 +48,11 @@ G4CylindricalSurfaceCreator::G4CylindricalSurfaceCreator() G4CylindricalSurfaceCreator::~G4CylindricalSurfaceCreator() {} +G4CylindricalSurfaceCreator G4CylindricalSurfaceCreator::GetInstance() +{ + return csc; +} + void G4CylindricalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { // Made by L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc b/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc index 4f6358bf6c..657f6d4da6 100644 --- a/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DirectionCreator.cc,v 1.3 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DirectionCreator.cc,v 1.4 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4DirectionCreator @@ -46,6 +46,11 @@ G4DirectionCreator::G4DirectionCreator() G4DirectionCreator::~G4DirectionCreator() {} +G4DirectionCreator G4DirectionCreator::GetInstance() +{ + return csc; +} + void G4DirectionCreator::CreateG4Geometry(STEPentity& Ent) { G4double x,y,z; diff --git a/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc b/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc index 40000aa638..8e5ab92c3a 100644 --- a/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EdgeCurveCreator.cc,v 1.5 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EdgeCurveCreator.cc,v 1.6 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4EdgeCurveCreator @@ -46,6 +46,11 @@ G4EdgeCurveCreator::G4EdgeCurveCreator() G4EdgeCurveCreator::~G4EdgeCurveCreator() {} +G4EdgeCurveCreator G4EdgeCurveCreator::GetInstance() +{ + return csc; +} + void G4EdgeCurveCreator::CreateG4Geometry(STEPentity& Ent) { G4Point3D *pt1,*pt2; diff --git a/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc b/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc index 2d4a6dc39f..e97a86b7a5 100644 --- a/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EdgeLoopCreator.cc,v 1.5 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EdgeLoopCreator.cc,v 1.6 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4EdgeLoopCreator @@ -46,6 +46,11 @@ G4EdgeLoopCreator::G4EdgeLoopCreator() G4EdgeLoopCreator::~G4EdgeLoopCreator() {} +G4EdgeLoopCreator G4EdgeLoopCreator::GetInstance() +{ + return csc; +} + void G4EdgeLoopCreator::CreateG4Geometry(STEPentity& Ent) { G4String attrName("edge_list"); diff --git a/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc b/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc index 6c0b938055..2fef4a259b 100644 --- a/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EllipseCreator.cc,v 1.4 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EllipseCreator.cc,v 1.5 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4EllipseCreator @@ -46,6 +46,11 @@ G4EllipseCreator::G4EllipseCreator() G4EllipseCreator::~G4EllipseCreator() {} +G4EllipseCreator G4EllipseCreator::GetInstance() +{ + return csc; +} + void G4EllipseCreator::CreateG4Geometry(STEPentity& Ent) { G4double semi1,semi2; diff --git a/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc b/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc index b340c56bf0..405f75a996 100644 --- a/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FaceBoundCreator.cc,v 1.5 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FaceBoundCreator.cc,v 1.6 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FaceBoundCreator @@ -46,6 +46,11 @@ G4FaceBoundCreator::G4FaceBoundCreator() G4FaceBoundCreator::~G4FaceBoundCreator() {} +G4FaceBoundCreator G4FaceBoundCreator::GetInstance() +{ + return csc; +} + void G4FaceBoundCreator::CreateG4Geometry(STEPentity& Ent) { G4String attrName("bound"); diff --git a/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc b/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc index 6db77ca98d..aefed88166 100644 --- a/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FaceOuterBoundCreator.cc,v 1.3 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FaceOuterBoundCreator.cc,v 1.4 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FaceOuterBoundCreator @@ -39,6 +39,11 @@ G4FaceOuterBoundCreator G4FaceOuterBoundCreator::csc; +G4FaceOuterBoundCreator G4FaceOuterBoundCreator::GetInstance() +{ + return csc; +} + G4FaceOuterBoundCreator::G4FaceOuterBoundCreator() { G4GeometryTable::RegisterObject(this); diff --git a/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.cc index 6289d5cb68..ac6c2db852 100644 --- a/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FaceSurfaceCreator.cc,v 1.5 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FaceSurfaceCreator.cc,v 1.6 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4FaceSurfaceCreator @@ -46,6 +46,11 @@ G4FaceSurfaceCreator::G4FaceSurfaceCreator() G4FaceSurfaceCreator::~G4FaceSurfaceCreator() {} +G4FaceSurfaceCreator G4FaceSurfaceCreator::GetInstance() +{ + return csc; +} + void G4FaceSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { G4Surface* srf=0; diff --git a/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.cc b/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.cc index 961ed0237c..b94b82ec2c 100644 --- a/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometricRepresentationContextCreator.cc,v 1.5 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometricRepresentationContextCreator.cc,v 1.6 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4GeometricRepresentationContextCreator @@ -49,6 +49,12 @@ G4GeometricRepresentationContextCreator:: G4GeometricRepresentationContextCreator:: ~G4GeometricRepresentationContextCreator() {} +G4GeometricRepresentationContextCreator +G4GeometricRepresentationContextCreator::GetInstance() +{ + return csc; +} + void G4GeometricRepresentationContextCreator::CreateG4Geometry(STEPentity& Ent) { // Made by L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc b/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc index 8c07f28d5d..dd8058f99d 100644 --- a/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCreator.cc,v 1.6 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc b/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc index 902f7b8244..6f7aed8535 100644 --- a/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc +++ b/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryTable.cc,v 1.9 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryTable.cc,v 1.10 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -50,6 +50,11 @@ G4GeometryTable::~G4GeometryTable() { } +const G4GeometryTable& G4GeometryTable::GetInstance() +{ + return gt; +} + G4bool G4GeometryTable::ExistsInTable(G4String& objectName) { G4bool existsInTable = false; diff --git a/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.cc b/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.cc index c56b51dfaa..5cc7c9459d 100644 --- a/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HyperbolaCreator.cc,v 1.3 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HyperbolaCreator.cc,v 1.4 2002/11/21 16:49:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4HyperbolaCreator::G4HyperbolaCreator() G4HyperbolaCreator::~G4HyperbolaCreator() {} +G4HyperbolaCreator G4HyperbolaCreator::GetInstance() +{ + return csc; +} + void G4HyperbolaCreator::CreateG4Geometry(STEPentity& Ent) { G4double semi1,semi_imag; diff --git a/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc index da8bfccecc..ca59e926e6 100644 --- a/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ItemDefinedTransformationCreator.cc,v 1.5 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ItemDefinedTransformationCreator.cc,v 1.6 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,12 @@ G4ItemDefinedTransformationCreator::G4ItemDefinedTransformationCreator() G4ItemDefinedTransformationCreator::~G4ItemDefinedTransformationCreator() {} +G4ItemDefinedTransformationCreator +G4ItemDefinedTransformationCreator::GetInstance() +{ + return csc; +} + void G4ItemDefinedTransformationCreator::CreateG4Geometry(STEPentity& Ent) { G4PlacementVector* places = new G4PlacementVector(); diff --git a/source/geometry/solids/STEPinterface/src/G4LineCreator.cc b/source/geometry/solids/STEPinterface/src/G4LineCreator.cc index 0e42d1f4ed..1df60006d0 100644 --- a/source/geometry/solids/STEPinterface/src/G4LineCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4LineCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LineCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LineCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,11 @@ G4LineCreator::G4LineCreator() G4LineCreator::~G4LineCreator() {} +G4LineCreator G4LineCreator::GetInstance() +{ + return csc; +} + void G4LineCreator::CreateG4Geometry(STEPentity& Ent) { G4ThreeVector origin; diff --git a/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc b/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc index e390b5127e..575aad359c 100644 --- a/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ManifoldSolidBrepCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ManifoldSolidBrepCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,11 @@ G4ManifoldSolidBrepCreator::G4ManifoldSolidBrepCreator() G4ManifoldSolidBrepCreator::~G4ManifoldSolidBrepCreator() {} +G4ManifoldSolidBrepCreator G4ManifoldSolidBrepCreator::GetInstance() +{ + return csc; +} + void G4ManifoldSolidBrepCreator::CreateG4Geometry(STEPentity& Ent) { G4BREPSolid* sld; diff --git a/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc b/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc index 831a5eb8cc..a8ca29b4ac 100644 --- a/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc +++ b/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc @@ -22,7 +22,7 @@ // // // $Id: G4NISTStepReader.cc,v 1.5 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc b/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc index 2a7a250260..a844beb66a 100644 --- a/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenShellCreator.cc,v 1.3 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenShellCreator.cc,v 1.4 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4OpenShellCreator::G4OpenShellCreator() G4OpenShellCreator::~G4OpenShellCreator() {} +G4OpenShellCreator G4OpenShellCreator::GetInstance() +{ + return csc; +} + void G4OpenShellCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc b/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc index 47da13316c..3d204ab70a 100644 --- a/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OrientedEdgeCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OrientedEdgeCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4OrientedEdgeCreator::G4OrientedEdgeCreator() G4OrientedEdgeCreator::~G4OrientedEdgeCreator() {} +G4OrientedEdgeCreator G4OrientedEdgeCreator::GetInstance() +{ + return csc; +} + void G4OrientedEdgeCreator::CreateG4Geometry(STEPentity& Ent) { G4int orientation; diff --git a/source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc b/source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc index 92234a3664..31a408482d 100644 --- a/source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParabolaCreator.cc,v 1.3 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParabolaCreator.cc,v 1.4 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4ParabolaCreator::G4ParabolaCreator() G4ParabolaCreator::~G4ParabolaCreator() {} +G4ParabolaCreator G4ParabolaCreator::GetInstance() +{ + return csc; +} + void G4ParabolaCreator::CreateG4Geometry(STEPentity& Ent) { G4double focal_dist; diff --git a/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc b/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc index 659759f341..03e5e62a55 100644 --- a/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PlaneCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PlaneCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,11 @@ G4PlaneCreator::G4PlaneCreator() G4PlaneCreator::~G4PlaneCreator() {} +G4PlaneCreator G4PlaneCreator::GetInstance() +{ + return csc; +} + void G4PlaneCreator::CreateG4Geometry(STEPentity& Ent) { // L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4PointCreator.cc b/source/geometry/solids/STEPinterface/src/G4PointCreator.cc index 98d1531d9a..a1273de954 100644 --- a/source/geometry/solids/STEPinterface/src/G4PointCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4PointCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointCreator.cc,v 1.3 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointCreator.cc,v 1.4 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4PointCreator::G4PointCreator() G4PointCreator::~G4PointCreator() {} +G4PointCreator G4PointCreator::GetInstance() +{ + return csc; +} + void G4PointCreator::CreateG4Geometry(STEPentity& Ent) {} void G4PointCreator::CreateSTEPGeometry(void* G4obj) {} diff --git a/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.cc b/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.cc index 330278dc2d..f46a81e655 100644 --- a/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointOnCurveCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointOnCurveCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4PointOnCurveCreator::G4PointOnCurveCreator() G4PointOnCurveCreator::~G4PointOnCurveCreator() {} +G4PointOnCurveCreator G4PointOnCurveCreator::GetInstance() +{ + return csc; +} + void G4PointOnCurveCreator::CreateG4Geometry(STEPentity& Ent) { G4Curve* crv=0; diff --git a/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc index 7cfec5d34d..547d5c7b7a 100644 --- a/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointOnSurfaceCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointOnSurfaceCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4PointOnSurfaceCreator::G4PointOnSurfaceCreator() G4PointOnSurfaceCreator::~G4PointOnSurfaceCreator() {} +G4PointOnSurfaceCreator G4PointOnSurfaceCreator::GetInstance() +{ + return csc; +} + void G4PointOnSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { G4Surface* srf=0; diff --git a/source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc b/source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc index e29292e5bc..ee137b80bb 100644 --- a/source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PointReplicaCreator.cc,v 1.3 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PointReplicaCreator.cc,v 1.4 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4PointReplicaCreator::G4PointReplicaCreator() G4PointReplicaCreator::~G4PointReplicaCreator() {} +G4PointReplicaCreator G4PointReplicaCreator::GetInstance() +{ + return csc; +} + void G4PointReplicaCreator::CreateG4Geometry(STEPentity& Ent) {} void G4PointReplicaCreator::CreateSTEPGeometry(void* G4obj) {} diff --git a/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc b/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc index ca8b84451d..ce45557788 100644 --- a/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProductDefinitionShapeCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProductDefinitionShapeCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4ProductDefinitionShapeCreator::G4ProductDefinitionShapeCreator() G4ProductDefinitionShapeCreator::~G4ProductDefinitionShapeCreator() {} +G4ProductDefinitionShapeCreator G4ProductDefinitionShapeCreator::GetInstance() +{ + return csc; +} + void G4ProductDefinitionShapeCreator::CreateG4Geometry(STEPentity& Ent) { // Made by L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc index 347e366e3a..89414ae3d9 100644 --- a/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RationalBSplineSurfaceCreator.cc,v 1.4 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RationalBSplineSurfaceCreator.cc,v 1.5 2002/11/21 16:49:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,12 @@ G4RationalBSplineSurfaceCreator::G4RationalBSplineSurfaceCreator() G4RationalBSplineSurfaceCreator::~G4RationalBSplineSurfaceCreator() {} +G4RationalBSplineSurfaceCreator +G4RationalBSplineSurfaceCreator::GetInstance() +{ + return csc; +} + void G4RationalBSplineSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { G4String attrName("weights_data"); diff --git a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc index 9fa674dadf..53a5ea24ca 100644 --- a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RepresentationRelationshipCreator.cc,v 1.8 2002/02/07 10:12:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RepresentationRelationshipCreator.cc,v 1.9 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -50,6 +50,12 @@ G4RepresentationRelationshipCreator::G4RepresentationRelationshipCreator() G4RepresentationRelationshipCreator::~G4RepresentationRelationshipCreator() {} +G4RepresentationRelationshipCreator +G4RepresentationRelationshipCreator::GetInstance() +{ + return csc; +} + void G4RepresentationRelationshipCreator::CreateG4Geometry(STEPentity& Ent) { diff --git a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc index 29cb583d9c..05a89bde45 100644 --- a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RepresentationRelationshipWithTransformationCreator.cc,v 1.3 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RepresentationRelationshipWithTransformationCreator.cc,v 1.4 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -50,6 +50,12 @@ G4RepresentationRelationshipWithTransformationCreator:: G4RepresentationRelationshipWithTransformationCreator:: ~G4RepresentationRelationshipWithTransformationCreator() {} +G4RepresentationRelationshipWithTransformationCreator +G4RepresentationRelationshipWithTransformationCreator::GetInstance() +{ + return csc; +} + void G4RepresentationRelationshipWithTransformationCreator:: CreateG4Geometry(STEPentity& Ent) { diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc index 441073cf82..f1002e9c2f 100644 --- a/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShapeDefinitionRepresentationCreator.cc,v 1.6 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShapeDefinitionRepresentationCreator.cc,v 1.7 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -50,6 +50,12 @@ G4ShapeDefinitionRepresentationCreator:: G4ShapeDefinitionRepresentationCreator:: ~G4ShapeDefinitionRepresentationCreator() {} +G4ShapeDefinitionRepresentationCreator +G4ShapeDefinitionRepresentationCreator::GetInstance() +{ + return csc; +} + void G4ShapeDefinitionRepresentationCreator::CreateG4Geometry(STEPentity& Ent) { G4String attrName("used_representation"); diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc index 50ae5eb84a..26921de9d4 100644 --- a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShapeRepresentationCreator.cc,v 1.5 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShapeRepresentationCreator.cc,v 1.6 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,12 @@ G4ShapeRepresentationCreator::G4ShapeRepresentationCreator() G4ShapeRepresentationCreator::~G4ShapeRepresentationCreator() {} +G4ShapeRepresentationCreator +G4ShapeRepresentationCreator::GetInstance() +{ + return csc; +} + void G4ShapeRepresentationCreator::CreateG4Geometry(STEPentity& Ent) { STEPentity* TmpEnt = 0; diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc index dde3483d5b..6a3a072a1f 100644 --- a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShapeRepresentationRelationshipCreator.cc,v 1.3 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShapeRepresentationRelationshipCreator.cc,v 1.4 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -50,6 +50,12 @@ G4ShapeRepresentationRelationshipCreator:: G4ShapeRepresentationRelationshipCreator:: ~G4ShapeRepresentationRelationshipCreator() {} +G4ShapeRepresentationRelationshipCreator +G4ShapeRepresentationRelationshipCreator::GetInstance() +{ + return csc; +} + void G4ShapeRepresentationRelationshipCreator::CreateG4Geometry(STEPentity& Ent) { } diff --git a/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc index 850bb8c918..a4b5171d93 100644 --- a/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SphericalSurfaceCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SphericalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,12 @@ G4SphericalSurfaceCreator::G4SphericalSurfaceCreator() G4SphericalSurfaceCreator::~G4SphericalSurfaceCreator() {} +G4SphericalSurfaceCreator +G4SphericalSurfaceCreator::GetInstance() +{ + return csc; +} + void G4SphericalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { // Made by L. Broglia diff --git a/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc index b4c5eb09b4..3bc1f7cf10 100644 --- a/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ToroidalSurfaceCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ToroidalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -48,6 +48,11 @@ G4ToroidalSurfaceCreator::G4ToroidalSurfaceCreator() G4ToroidalSurfaceCreator::~G4ToroidalSurfaceCreator() {} +G4ToroidalSurfaceCreator G4ToroidalSurfaceCreator::GetInstance() +{ + return csc; +} + void G4ToroidalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) { G4Axis2Placement3D* place; diff --git a/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc b/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc index 6b3ac0a17f..23b8ec216b 100644 --- a/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VectorCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VectorCreator.cc,v 1.5 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4VectorCreator::G4VectorCreator() G4VectorCreator::~G4VectorCreator() {} +G4VectorCreator G4VectorCreator::GetInstance() +{ + return csc; +} + void G4VectorCreator::CreateG4Geometry(STEPentity& Ent) { G4double Magnitude; diff --git a/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc b/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc index 6731525766..5f9b643a16 100644 --- a/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc +++ b/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VertexPointCreator.cc,v 1.4 2001/07/11 10:00:12 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VertexPointCreator.cc,v 1.5 2002/11/21 16:49:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -47,6 +47,11 @@ G4VertexPointCreator::G4VertexPointCreator() G4VertexPointCreator::~G4VertexPointCreator() {} +G4VertexPointCreator G4VertexPointCreator::GetInstance() +{ + return csc; +} + void G4VertexPointCreator::CreateG4Geometry(STEPentity& Ent) { G4Point3D *point; diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index 1eeaa933fd..ec92a5999a 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,4 +1,4 @@ -$Id: History,v 1.21 2002/05/08 13:51:26 johna Exp $ +$Id: History,v 1.23 2002/10/30 13:53:19 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,18 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +30-Oct-2002, G.Cosmo (geom-specific-V04-01-01) +- Fixed un-initialised data members in constructors of classes: + G4ClippablePolygon, G4EnclosingCylinder, G4PolyconeSide, + G4ReduciblePolygon, G4VCSGfaceted. + +28-Oct-2002, G.Cosmo (geom-specific-V04-01-00) +- Added implementation of StreamInfo() to comply with new interface for + G4VSolid in "geommng-V04-01-03". +- Created .icc files for G4EllipticalTube, G4Polyhedra and G4Polycone. +- Some cosmetic changes to code formatting: removed characters and adopt + uniform code indentation. + 08-May-2002, J.Allison (geom-solids-specific-V04-00-01) - Implemented G4EllipticalTube::CreatePolyhedron. diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.hh b/source/geometry/solids/specific/include/G4ClippablePolygon.hh index 54b05cb037..3da7c4e8ba 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.hh +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClippablePolygon.hh,v 1.6 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ClippablePolygon.hh,v 1.7 2002/10/28 11:47:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -60,68 +60,68 @@ class G4ClippablePolygon public: // with description - G4ClippablePolygon(); - virtual ~G4ClippablePolygon(); - // Constructor & virtual destructor. - - virtual void AddVertexInOrder( const G4ThreeVector vertex ); - virtual void ClearAllVertices(); - - inline void SetNormal( const G4ThreeVector &newNormal ); - inline const G4ThreeVector GetNormal() const; - - virtual G4bool Clip( const G4VoxelLimits &voxelLimit ); + G4ClippablePolygon(); + virtual ~G4ClippablePolygon(); + // Constructor & virtual destructor. + + virtual void AddVertexInOrder( const G4ThreeVector vertex ); + virtual void ClearAllVertices(); + + inline void SetNormal( const G4ThreeVector &newNormal ); + inline const G4ThreeVector GetNormal() const; + + virtual G4bool Clip( const G4VoxelLimits &voxelLimit ); - virtual G4bool PartialClip( const G4VoxelLimits &voxelLimit, - const EAxis IgnoreMe ); - // Clip, while ignoring the indicated axis. + virtual G4bool PartialClip( const G4VoxelLimits &voxelLimit, + const EAxis IgnoreMe ); + // Clip, while ignoring the indicated axis. - virtual void ClipAlongOneAxis( const G4VoxelLimits &voxelLimit, - const EAxis axis ); - // Clip along just one axis, as specified in voxelLimit. + virtual void ClipAlongOneAxis( const G4VoxelLimits &voxelLimit, + const EAxis axis ); + // Clip along just one axis, as specified in voxelLimit. - virtual G4bool GetExtent( const EAxis axis, - G4double &min, G4double &max ) const; + virtual G4bool GetExtent( const EAxis axis, + G4double &min, G4double &max ) const; - virtual const G4ThreeVector *GetMinPoint( const EAxis axis ) const; - // Returns pointer to minimum point along the specified axis. - // Take care! Do not use pointer after destroying parent polygon. + virtual const G4ThreeVector *GetMinPoint( const EAxis axis ) const; + // Returns pointer to minimum point along the specified axis. + // Take care! Do not use pointer after destroying parent polygon. - virtual const G4ThreeVector *GetMaxPoint( const EAxis axis ) const; - // Returns pointer to maximum point along the specified axis. - // Take care! Do not use pointer after destroying parent polygon. + virtual const G4ThreeVector *GetMaxPoint( const EAxis axis ) const; + // Returns pointer to maximum point along the specified axis. + // Take care! Do not use pointer after destroying parent polygon. - inline G4int GetNumVertices() const; - inline G4bool Empty() const; - - virtual G4bool InFrontOf( const G4ClippablePolygon &other, EAxis axis ) const; - // Decide if the polygon is in "front" of another when - // viewed along the specified axis. For our purposes here, - // it is sufficient to use the minimum extent of the - // polygon along the axis to determine this. + inline G4int GetNumVertices() const; + inline G4bool Empty() const; + + virtual G4bool InFrontOf( const G4ClippablePolygon &other, EAxis axis ) const; + // Decide if the polygon is in "front" of another when + // viewed along the specified axis. For our purposes here, + // it is sufficient to use the minimum extent of the + // polygon along the axis to determine this. - virtual G4bool BehindOf( const G4ClippablePolygon &other, EAxis axis ) const; - // Decide if this polygon is behind another. - // Remarks in method "InFrontOf" are valid here too. + virtual G4bool BehindOf( const G4ClippablePolygon &other, EAxis axis ) const; + // Decide if this polygon is behind another. + // Remarks in method "InFrontOf" are valid here too. - virtual G4bool GetPlanerExtent( const G4ThreeVector &pointOnPlane, - const G4ThreeVector &planeNormal, - G4double &min, G4double &max ) const; - // Get min/max distance in or out of a plane. + virtual G4bool GetPlanerExtent( const G4ThreeVector &pointOnPlane, + const G4ThreeVector &planeNormal, + G4double &min, G4double &max ) const; + // Get min/max distance in or out of a plane. protected: // with description - void ClipToSimpleLimits( G4ThreeVectorList& pPolygon, - G4ThreeVectorList& outputPolygon, - const G4VoxelLimits& pVoxelLimit ); - // pVoxelLimits must be only limited along one axis, and either - // the maximum along the axis must be +kInfinity, or the minimum - // -kInfinity + void ClipToSimpleLimits( G4ThreeVectorList& pPolygon, + G4ThreeVectorList& outputPolygon, + const G4VoxelLimits& pVoxelLimit ); + // pVoxelLimits must be only limited along one axis, and either + // the maximum along the axis must be +kInfinity, or the minimum + // -kInfinity protected: - G4ThreeVectorList vertices; - G4ThreeVector normal; + G4ThreeVectorList vertices; + G4ThreeVector normal; }; #include "G4ClippablePolygon.icc" diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.icc b/source/geometry/solids/specific/include/G4ClippablePolygon.icc index 1c5a39663d..fa979b2001 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.hh b/source/geometry/solids/specific/include/G4EllipticalTube.hh index a481c434b3..f6c46c83e8 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.hh +++ b/source/geometry/solids/specific/include/G4EllipticalTube.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EllipticalTube.hh,v 1.9 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EllipticalTube.hh,v 1.10 2002/10/28 11:47:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -52,70 +52,71 @@ class G4EllipticalTube : public G4VSolid { - public: + public: // with description - G4EllipticalTube( const G4String &name, - G4double theDx, G4double theDy, G4double theDz ); - virtual ~G4EllipticalTube(); - - // - // Standard CSG methods - // - virtual G4bool CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; - - virtual EInside Inside( const G4ThreeVector& p) const; + G4EllipticalTube( const G4String &name, + G4double theDx, + G4double theDy, + G4double theDz ); - virtual G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + virtual ~G4EllipticalTube(); + + // Standard solid methods - 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 G4bool CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax ) const; + + virtual EInside Inside( const G4ThreeVector& p ) const; - G4GeometryType GetEntityType() const { return G4String("G4EllipticalTube"); } + virtual G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; - // - // Visualisation methods - // - virtual G4Polyhedron* CreatePolyhedron() const; - virtual void DescribeYourselfTo( G4VGraphicsScene& scene ) const; - virtual G4VisExtent GetExtent() 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; + G4GeometryType GetEntityType() const; - // - // Parameter access - // - G4double GetDx() const { return dx; } - G4double GetDy() const { return dy; } - G4double GetDz() const { return dz; } - - void SetDx( const G4double newDx ) { dx = newDx; } - void SetDy( const G4double newDy ) { dy = newDy; } - void SetDz( const G4double newDz ) { dz = newDz; } - - protected: + G4std::ostream& StreamInfo(G4std::ostream& os) const; - G4double dx, dy, dz; - - // - // Utility - // - inline G4double CheckXY( const G4double x, const G4double y, const G4double toler ) const { - G4double rx = x/(dx+toler), ry = y/(dy+toler); - return rx*rx + ry*ry; - } - inline G4double CheckXY( const G4double x, const G4double y ) const { - G4double rx = x/dx, ry = y/dy; - return rx*rx + ry*ry; - } + // Visualisation methods - G4int IntersectXY( const G4ThreeVector &p, - const G4ThreeVector &v, G4double s[2] ) const; + virtual G4Polyhedron* CreatePolyhedron() const; + virtual void DescribeYourselfTo( G4VGraphicsScene& scene ) const; + virtual G4VisExtent GetExtent() const; + + // Accessors + + inline G4double GetDx() const; + inline G4double GetDy() const; + inline G4double GetDz() const; + + inline void SetDx( const G4double newDx ); + inline void SetDy( const G4double newDy ); + inline void SetDz( const G4double newDz ); + + protected: // without description + + G4double dx, dy, dz; + + // Utility + + inline G4double CheckXY( const G4double x, + const G4double y, + const G4double toler ) const; + inline G4double CheckXY( const G4double x, const G4double y ) const; + + G4int IntersectXY( const G4ThreeVector &p, + const G4ThreeVector &v, G4double s[2] ) const; }; +#include "G4EllipticalTube.icc" + #endif diff --git a/source/processes/transportation/src/G4MassImportanceScoreSampler.cc b/source/geometry/solids/specific/include/G4EllipticalTube.icc similarity index 59% rename from source/processes/transportation/src/G4MassImportanceScoreSampler.cc rename to source/geometry/solids/specific/include/G4EllipticalTube.icc index 1b75d93dc3..708c02000e 100644 --- a/source/processes/transportation/src/G4MassImportanceScoreSampler.cc +++ b/source/geometry/solids/specific/include/G4EllipticalTube.icc @@ -21,40 +21,65 @@ // ******************************************************************** // // -// $Id: G4MassImportanceScoreSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EllipticalTube.icc,v 1.1 2002/10/28 11:47:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// ---------------------------------------------------------------------- -// GEANT 4 class source file +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file // -// G4MassImportanceScoreSampler.cc +// G4EllipticalTube.icc // -// ---------------------------------------------------------------------- +// Implementation of inline methods of G4EllipticalTube +// -------------------------------------------------------------------- -#include "G4MassImportanceScoreSampler.hh" -#include "G4MassImportanceSampler.hh" -#include "G4MassScoreSampler.hh" - - -G4MassImportanceScoreSampler:: -G4MassImportanceScoreSampler(G4VIStore &aIstore, - G4VPScorer &ascorer, - const G4String &particlename, - const G4VImportanceAlgorithm *algorithm) - : fMassImportanceSampler(new G4MassImportanceSampler(aIstore, - particlename, - algorithm)), - fMassScoreSampler(new G4MassScoreSampler(ascorer, particlename)) -{} - -G4MassImportanceScoreSampler::~G4MassImportanceScoreSampler() +inline +G4double G4EllipticalTube::GetDx() const { - delete fMassScoreSampler; - delete fMassImportanceSampler; + return dx; } -void G4MassImportanceScoreSampler::Initialize() +inline +G4double G4EllipticalTube::GetDy() const { - fMassScoreSampler->Initialize(); - fMassImportanceSampler->Initialize(); + return dy; +} + +inline +G4double G4EllipticalTube::GetDz() const +{ + return dz; +} + +inline +void G4EllipticalTube::SetDx( const G4double newDx ) +{ + dx = newDx; +} + +inline +void G4EllipticalTube::SetDy( const G4double newDy ) +{ + dy = newDy; +} + +inline +void G4EllipticalTube::SetDz( const G4double newDz ) +{ + dz = newDz; +} + +inline +G4double G4EllipticalTube::CheckXY( const G4double x, + const G4double y, + const G4double toler ) const +{ + G4double rx = x/(dx+toler), ry = y/(dy+toler); + return rx*rx + ry*ry; +} + +inline +G4double G4EllipticalTube::CheckXY( const G4double x, const G4double y ) const +{ + G4double rx = x/dx, ry = y/dy; + return rx*rx + ry*ry; } diff --git a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh index e34b520fd7..f2ca33414f 100644 --- a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh +++ b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnclosingCylinder.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EnclosingCylinder.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -53,35 +53,35 @@ class G4EnclosingCylinder { public: // with description - G4EnclosingCylinder( const G4ReduciblePolygon *rz, - G4bool phiIsOpen, - G4double startPhi, G4double totalPhi ); - ~G4EnclosingCylinder(); - - G4bool MustBeOutside( const G4ThreeVector &p ) const; - // Decide very rapidly if the point is outside the cylinder. - // If one is not certain, return false. + G4EnclosingCylinder( const G4ReduciblePolygon *rz, + G4bool phiIsOpen, + G4double startPhi, G4double totalPhi ); + ~G4EnclosingCylinder(); + + G4bool MustBeOutside( const G4ThreeVector &p ) const; + // Decide very rapidly if the point is outside the cylinder. + // If one is not certain, return false. - G4bool ShouldMiss( const G4ThreeVector &p, const G4ThreeVector &v ) const; - // Decide very rapidly if the trajectory is going to miss the cylinder. - // If one is not sure, return false. + G4bool ShouldMiss( const G4ThreeVector &p, const G4ThreeVector &v ) const; + // Decide very rapidly if the trajectory is going to miss the cylinder. + // If one is not sure, return false. protected: - G4double radius; // radius of our cylinder - G4double zLo, zHi; // z extent - - G4bool phiIsOpen; // true if there is a phi segment - G4double startPhi, // for isPhiOpen==true, starting of phi segment - totalPhi; // for isPhiOpen==true, size of phi segment + G4double radius; // radius of our cylinder + G4double zLo, zHi; // z extent + + G4bool phiIsOpen; // true if there is a phi segment + G4double startPhi, // for isPhiOpen==true, starting of phi segment + totalPhi; // for isPhiOpen==true, size of phi segment - G4double rx1, ry1, - dx1, dy1; - G4double rx2, ry2, - dx2, dy2; - - G4bool concave; // True, if x/y cross section is concave - + G4double rx1, ry1, + dx1, dy1; + G4double rx2, ry2, + dx2, dy2; + + G4bool concave; // true, if x/y cross section is concave + }; #endif diff --git a/source/geometry/solids/specific/include/G4Hype.hh b/source/geometry/solids/specific/include/G4Hype.hh index 4ab113fee1..f928cb00d0 100644 --- a/source/geometry/solids/specific/include/G4Hype.hh +++ b/source/geometry/solids/specific/include/G4Hype.hh @@ -21,9 +21,9 @@ // ******************************************************************** // // -// $Id: G4Hype.hh,v 1.5 2001/07/11 10:00:14 gunter Exp $ +// $Id: G4Hype.hh,v 1.6 2002/10/28 11:47:50 gcosmo Exp $ // $Original: G4Hype.hh,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -93,25 +93,25 @@ class G4ClippablePolygon; class G4Hype : public G4VSolid { - public: + public: // with description G4Hype(const G4String &pName, - G4double newInnerRadius, - G4double newOuterRadius, - G4double newInnerStereo, - G4double newOuterStereo, - G4double newHalfLenZ); + G4double newInnerRadius, + G4double newOuterRadius, + G4double newInnerStereo, + G4double newOuterStereo, + G4double newHalfLenZ); virtual ~G4Hype(); void ComputeDimensions(G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); + const G4int n, + const G4VPhysicalVolume* pRep); G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; inline G4double GetInnerRadius () const; inline G4double GetOuterRadius () const; @@ -129,29 +129,31 @@ class G4Hype : public G4VSolid G4ThreeVector SurfaceNormal(const G4ThreeVector& p) const; - G4double DistanceToIn(const G4ThreeVector& p,const G4ThreeVector& v) 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; + const G4bool calcNorm=G4bool(false), + G4bool *validNorm=0, G4ThreeVector *n=0) const; G4double DistanceToOut(const G4ThreeVector& p) const; - inline G4GeometryType GetEntityType() const; + G4GeometryType GetEntityType() const; + + G4std::ostream& StreamInfo(G4std::ostream& os) const; void DescribeYourselfTo (G4VGraphicsScene& scene) const; G4VisExtent GetExtent () const; G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; - protected: + protected: // without description inline G4bool InnerSurfaceExists() const; // whether we have an inner surface or not static G4double ApproxDistOutside( G4double pr, G4double pz, - G4double r0, G4double tanPhi ); + G4double r0, G4double tanPhi ); static G4double ApproxDistInside( G4double pr, G4double pz, - G4double r0, G4double tan2Phi ); + G4double r0, G4double tan2Phi ); // approximate isotropic distance to hyperbolic surface inline G4double HypeInnerRadius2(G4double zVal) const; @@ -163,12 +165,12 @@ class G4Hype : public G4VSolid // intersection with hyperbolic surface static void AddPolyToExtent( const G4ThreeVector &v0, - const G4ThreeVector &v1, - const G4ThreeVector &w1, - const G4ThreeVector &w0, - const G4VoxelLimits &voxelLimit, - const EAxis axis, - G4SolidExtentList &extentList ); + const G4ThreeVector &v1, + const G4ThreeVector &w1, + const G4ThreeVector &w0, + const G4VoxelLimits &voxelLimit, + const EAxis axis, + G4SolidExtentList &extentList ); protected: diff --git a/source/geometry/solids/specific/include/G4Hype.icc b/source/geometry/solids/specific/include/G4Hype.icc index 0144015001..46b223ae7b 100644 --- a/source/geometry/solids/specific/include/G4Hype.icc +++ b/source/geometry/solids/specific/include/G4Hype.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Hype.icc,v 1.2 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Hype.icc,v 1.3 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -106,12 +106,6 @@ void G4Hype::SetOuterStereo (G4double newOSte) endOuterRadius=sqrt(endOuterRadius2); } -inline -G4GeometryType G4Hype::GetEntityType() const - { - return G4String("G4Hype"); - } - inline G4bool G4Hype::InnerSurfaceExists() const { diff --git a/source/geometry/solids/specific/include/G4IntersectingCone.hh b/source/geometry/solids/specific/include/G4IntersectingCone.hh index a05c8bc50c..899c4f8f1a 100644 --- a/source/geometry/solids/specific/include/G4IntersectingCone.hh +++ b/source/geometry/solids/specific/include/G4IntersectingCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectingCone.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IntersectingCone.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -51,33 +51,33 @@ class G4IntersectingCone { public: - G4IntersectingCone( const G4double r[2], const G4double z[2] ); - virtual ~G4IntersectingCone(); - - G4int LineHitsCone( const G4ThreeVector &p, const G4ThreeVector &v, + G4IntersectingCone( const G4double r[2], const G4double z[2] ); + virtual ~G4IntersectingCone(); + + G4int LineHitsCone( const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2 ); - - G4bool HitOn( const G4double r, const G4double z ); - - inline G4double RLo() const { return rLo; } - inline G4double RHi() const { return rHi; } - inline G4double ZLo() const { return zLo; } - inline G4double ZHi() const { return zHi; } - - + + G4bool HitOn( const G4double r, const G4double z ); + + inline G4double RLo() const { return rLo; } + inline G4double RHi() const { return rHi; } + inline G4double ZLo() const { return zLo; } + inline G4double ZHi() const { return zHi; } + + protected: - G4double zLo, zHi, // Z bounds of side - rLo, rHi; // R bounds of side + G4double zLo, zHi, // Z bounds of side + rLo, rHi; // R bounds of side - G4bool type1; // True if cone is type 1 (abs(z1-z2)>abs(r1-r2)) - G4double A, B; // Cone radius parameter: - // type 1: r = A + B*z - // type 2: z = A + B*r + G4bool type1; // True if cone is type 1 (abs(z1-z2)>abs(r1-r2)) + G4double A, B; // Cone radius parameter: + // type 1: r = A + B*z + // type 2: z = A + B*r - G4int LineHitsCone1( const G4ThreeVector &p, const G4ThreeVector &v, + G4int LineHitsCone1( const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2 ); - G4int LineHitsCone2( const G4ThreeVector &p, const G4ThreeVector &v, + G4int LineHitsCone2( const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2 ); }; diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.hh b/source/geometry/solids/specific/include/G4PolyPhiFace.hh index fb53a1c006..22e1f70d59 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.hh +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyPhiFace.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyPhiFace.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -57,18 +57,20 @@ class G4ReduciblePolygon; -typedef struct { - G4double x, y, r, z; // position - G4double rNorm, - zNorm; // r/z normal - G4ThreeVector norm3D; // 3D normal +typedef struct +{ + G4double x, y, r, z; // position + G4double rNorm, + zNorm; // r/z normal + G4ThreeVector norm3D; // 3D normal } G4PolyPhiFaceVertex; -typedef struct { - G4PolyPhiFaceVertex *v0, *v1; // Corners - G4double tr, tz, // Unit vector along edge - length; // Length of edge - G4ThreeVector norm3D; // 3D edge normal vector +typedef struct +{ + G4PolyPhiFaceVertex *v0, *v1; // Corners + G4double tr, tz, // Unit vector along edge + length; // Length of edge + G4ThreeVector norm3D; // 3D edge normal vector } G4PolyPhiFaceEdge; class G4PolyPhiFace : public G4VCSGface @@ -76,85 +78,85 @@ class G4PolyPhiFace : public G4VCSGface public: // with description - G4PolyPhiFace( const G4ReduciblePolygon *rz, + G4PolyPhiFace( const G4ReduciblePolygon *rz, G4double phi, G4double deltaPhi, G4double phiOther ); - // Constructor. - // Points r,z should be supplied in clockwise order in r,z. - // For example: - // [1]---------[2] ^ R - // | | | - // | | +--> z - // [0]---------[3] + // Constructor. + // Points r,z should be supplied in clockwise order in r,z. + // For example: + // [1]---------[2] ^ R + // | | | + // | | +--> z + // [0]---------[3] - virtual ~G4PolyPhiFace(); - // Destructor. Removes edges and corners. + virtual ~G4PolyPhiFace(); + // Destructor. Removes edges and corners. - G4PolyPhiFace( const G4PolyPhiFace &source ); - G4PolyPhiFace& operator=( const G4PolyPhiFace &source ); - // Copy constructor and assgnment operator. + G4PolyPhiFace( const G4PolyPhiFace &source ); + G4PolyPhiFace& operator=( const G4PolyPhiFace &source ); + // Copy constructor and assgnment operator. - G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &allBehind ); + G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &allBehind ); - G4double Distance( const G4ThreeVector &p, G4bool outgoing ); - - EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ); - - G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); + G4double Distance( const G4ThreeVector &p, G4bool outgoing ); + + EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ); + + G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); - G4double Extent( const G4ThreeVector axis ); - - void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ); + G4double Extent( const G4ThreeVector axis ); + + void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ); - inline G4VCSGface *Clone(); - // Allocates on the heap a clone of this face. + inline G4VCSGface *Clone(); + // Allocates on the heap a clone of this face. public: // without description - void Diagnose( G4VSolid *solid ); - // Throw an exception if something is found inconsistent with - // the solid. For debugging purposes only + void Diagnose( G4VSolid *solid ); + // Throw an exception if something is found inconsistent with + // the solid. For debugging purposes only protected: - G4PolyPhiFaceEdge *edges; // The edges of the face - G4PolyPhiFaceVertex *corners; // And the corners - G4int numEdges; // Number of edges - G4ThreeVector normal; // Normal unit vector - G4ThreeVector radial; // Unit vector along radial direction - G4ThreeVector surface; // Point on surface - G4double rMin, rMax, // Extent in r - zMin, zMax; // Extent in z - G4bool allBehind; // True if the polycone/polyhedra - // is behind the place of this face + G4PolyPhiFaceEdge *edges; // The edges of the face + G4PolyPhiFaceVertex *corners; // And the corners + G4int numEdges; // Number of edges + G4ThreeVector normal; // Normal unit vector + G4ThreeVector radial; // Unit vector along radial direction + G4ThreeVector surface; // Point on surface + G4double rMin, rMax, // Extent in r + zMin, zMax; // Extent in z + G4bool allBehind; // True if the polycone/polyhedra + // is behind the place of this face - G4bool InsideEdgesExact( G4double r, G4double z, G4double normSign, - const G4ThreeVector &p, const G4ThreeVector &v ); - // Decide if the point in r,z is inside the edges of our face, - // **but** do so consistently with other faces. + G4bool InsideEdgesExact( G4double r, G4double z, G4double normSign, + const G4ThreeVector &p, const G4ThreeVector &v ); + // Decide if the point in r,z is inside the edges of our face, + // **but** do so consistently with other faces. - G4bool InsideEdges( G4double r, G4double z ); - G4bool InsideEdges( G4double r, G4double z, G4double *distRZ2, - G4PolyPhiFaceVertex **base3Dnorm=0, - G4ThreeVector **head3Dnorm=0 ); - // Decide if the point in r,z is inside the edges of our face. + G4bool InsideEdges( G4double r, G4double z ); + G4bool InsideEdges( G4double r, G4double z, G4double *distRZ2, + G4PolyPhiFaceVertex **base3Dnorm=0, + G4ThreeVector **head3Dnorm=0 ); + // Decide if the point in r,z is inside the edges of our face. - inline G4double ExactZOrder( G4double z, - G4double qx, G4double qy, G4double qz, - const G4ThreeVector &v, - G4double normSign, - const G4PolyPhiFaceVertex *vert ) const; - // Decide precisely whether a trajectory passes to the left, right, - // or exactly passes through the z position of a vertex point in face. + inline G4double ExactZOrder( G4double z, + G4double qx, G4double qy, G4double qz, + const G4ThreeVector &v, + G4double normSign, + const G4PolyPhiFaceVertex *vert ) const; + // Decide precisely whether a trajectory passes to the left, right, + // or exactly passes through the z position of a vertex point in face. - void CopyStuff( const G4PolyPhiFace &source ); + void CopyStuff( const G4PolyPhiFace &source ); }; #include "G4PolyPhiFace.icc" diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.icc b/source/geometry/solids/specific/include/G4PolyPhiFace.icc index 30042fe225..37043772d3 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.icc +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyPhiFace.icc,v 1.3 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyPhiFace.icc,v 1.4 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -36,7 +36,7 @@ inline G4VCSGface* G4PolyPhiFace::Clone() { - return new G4PolyPhiFace(*this); + return new G4PolyPhiFace(*this); } // ExactZOrder @@ -54,19 +54,20 @@ G4VCSGface* G4PolyPhiFace::Clone() inline G4double G4PolyPhiFace::ExactZOrder( G4double z, G4double qx, G4double qy, G4double qz, - const G4ThreeVector &v, + const G4ThreeVector &v, G4double normSign, - const G4PolyPhiFaceVertex *vert ) const + const G4PolyPhiFaceVertex *vert ) const { - G4double answer = vert->z - z; - if (fabs(answer) < kCarTolerance) { - G4ThreeVector qa( qx - vert->x + radial.x(), - qy - vert->y + radial.y(), qz - vert->z ), - qb( qx - vert->x, qy - vert->y, qz - vert->z ); - G4ThreeVector qacb = qa.cross(qb); + G4double answer = vert->z - z; + if (fabs(answer) < kCarTolerance) + { + G4ThreeVector qa( qx - vert->x + radial.x(), + qy - vert->y + radial.y(), qz - vert->z ), + qb( qx - vert->x, qy - vert->y, qz - vert->z ); + G4ThreeVector qacb = qa.cross(qb); - answer = normSign*qacb.dot(v)*(normal.y()*radial.x()-normal.x()*radial.y()); - } - - return answer; + answer = normSign*qacb.dot(v)*(normal.y()*radial.x()-normal.x()*radial.y()); + } + + return answer; } diff --git a/source/geometry/solids/specific/include/G4Polycone.hh b/source/geometry/solids/specific/include/G4Polycone.hh index a55a97f312..bedffc8d8a 100644 --- a/source/geometry/solids/specific/include/G4Polycone.hh +++ b/source/geometry/solids/specific/include/G4Polycone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polycone.hh,v 1.6 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Polycone.hh,v 1.7 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -33,13 +33,13 @@ // // Class description: // -// Class implementing a CSG type "PCON" Geant 3.21 volume, -// inherited from class G4VCSGSolid: +// Class implementing a CSG-like type "PCON" Geant 3.21 volume, +// inherited from class G4VCSGfaceted: // // G4Polycone( const G4String& name, -// G4double phiStart, // initial phi starting angle -// G4double phiTotal, // total phi angle -// G4int numZPlanes, // number of z planes +// G4double phiStart, // initial phi starting angle +// G4double phiTotal, // total phi angle +// G4int numZPlanes, // number of z planes // const G4double zPlane[], // position of z planes // const G4double rInner[], // tangent distance to inner surface // const G4double rOuter[]) // tangent distance to outer surface @@ -68,99 +68,95 @@ class G4VCSGface; class G4Polycone : public G4VCSGfaceted { - public: + public: // with description - G4Polycone( const G4String& name, - G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4int numZPlanes, // number of z planes - const G4double zPlane[], // position of z planes - const G4double rInner[], // tangent distance to inner surface - const G4double rOuter[] ); // tangent distance to outer surface + G4Polycone( const G4String& name, + G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4int numZPlanes, // number of z planes + const G4double zPlane[], // position of z planes + const G4double rInner[], // tangent distance to inner surface + const G4double rOuter[] ); // tangent distance to outer surface - G4Polycone( const G4String& name, - G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4int numRZ, // number corners in r,z space - const G4double r[], // r coordinate of these corners - const G4double z[] ); // z coordinate of these corners + G4Polycone( const G4String& name, + G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4int numRZ, // number corners in r,z space + const G4double r[], // r coordinate of these corners + const G4double z[] ); // z coordinate of these corners - virtual ~G4Polycone(); - - G4Polycone( const G4Polycone &source ); - const G4Polycone &operator=( const G4Polycone &source ); + virtual ~G4Polycone(); + + G4Polycone( const G4Polycone &source ); + const G4Polycone &operator=( const G4Polycone &source ); - // - // A couple overrides to speed things up - // - EInside Inside( const G4ThreeVector &p ) const; - G4double DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const; - G4double DistanceToIn( const G4ThreeVector &p ) const { return G4VCSGfaceted::DistanceToIn(p); } - - // - // The usual G4VCSGface stuff - // - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); + // Methods for solid - G4GeometryType GetEntityType() const { return G4String("G4Polycone"); } + EInside Inside( const G4ThreeVector &p ) const; + G4double DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const; + G4double DistanceToIn( const G4ThreeVector &p ) const; + + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ); - G4Polyhedron* CreatePolyhedron() const; - G4NURBS* CreateNURBS() const; - - // - // Access routines - // - inline G4double GetStartPhi() const { return startPhi; } - inline G4double GetEndPhi() const { return endPhi; } - inline G4bool IsOpen() const { return phiIsOpen; } - inline G4int GetNumRZCorner() const { return numCorner;} - inline G4PolyconeSideRZ GetCorner(G4int index) const { return corners[index]; } - - protected: + G4GeometryType GetEntityType() const; - // - // Here are our parameters - // - G4double startPhi; // Starting phi value (0 < phiStart < 2pi) - G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) - G4bool phiIsOpen; // true if there is a phi segment - G4int numCorner; // number RZ points - G4PolyconeSideRZ *corners; // corner r,z points - - // - // The following is temporary until graphics_reps is brought up to this design - // - class G4PolyconeHistorical - { - public: - G4PolyconeHistorical() {;} - ~G4PolyconeHistorical(); - G4PolyconeHistorical( const G4PolyconeHistorical &source ); - G4double Start_angle; - G4double Opening_angle; - G4int Num_z_planes; - G4double *Z_values; - G4double *Rmin; - G4double *Rmax; - }; - - G4PolyconeHistorical *original_parameters; + G4std::ostream& StreamInfo(G4std::ostream& os) const; - // - // Our quick test - // - G4EnclosingCylinder *enclosingCylinder; + G4Polyhedron* CreatePolyhedron() const; + G4NURBS* CreateNURBS() const; - // - // Generic initializer, called by all constructors - // - void Create( G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4ReduciblePolygon *rz); // r/z coordinate of these corners + // Accessors - void CopyStuff( const G4Polycone &source ); + inline G4double GetStartPhi() const; + inline G4double GetEndPhi() const; + inline G4bool IsOpen() const; + inline G4int GetNumRZCorner() const; + inline G4PolyconeSideRZ GetCorner(G4int index) const; + + protected: // without description + + // Here are our parameters + + G4double startPhi; // Starting phi value (0 < phiStart < 2pi) + G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) + G4bool phiIsOpen; // true if there is a phi segment + G4int numCorner; // number RZ points + G4PolyconeSideRZ *corners; // corner r,z points + + // The following is temporary until graphics_reps is brought up + // to this design + + class G4PolyconeHistorical + { + public: + G4PolyconeHistorical(); + ~G4PolyconeHistorical(); + G4PolyconeHistorical( const G4PolyconeHistorical &source ); + G4double Start_angle; + G4double Opening_angle; + G4int Num_z_planes; + G4double *Z_values; + G4double *Rmin; + G4double *Rmax; + }; + + G4PolyconeHistorical *original_parameters; + + // Our quick test + + G4EnclosingCylinder *enclosingCylinder; + + // Generic initializer, called by all constructors + + void Create( G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4ReduciblePolygon *rz ); // r/z coordinate of these corners + + void CopyStuff( const G4Polycone &source ); }; +#include "G4Polycone.icc" + #endif diff --git a/source/geometry/solids/specific/include/G4Polycone.icc b/source/geometry/solids/specific/include/G4Polycone.icc new file mode 100644 index 0000000000..8c8b92248a --- /dev/null +++ b/source/geometry/solids/specific/include/G4Polycone.icc @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: G4Polycone.icc,v 1.1 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Polycone.icc +// +// Implementation of inline methods of G4Polycone +// -------------------------------------------------------------------- + +inline +G4double G4Polycone::GetStartPhi() const +{ + return startPhi; +} + +inline +G4double G4Polycone::GetEndPhi() const +{ + return endPhi; +} + +inline G4bool G4Polycone::IsOpen() const +{ + return phiIsOpen; +} + +inline +G4int G4Polycone::GetNumRZCorner() const +{ + return numCorner; +} + +inline +G4PolyconeSideRZ G4Polycone::GetCorner(G4int index) const +{ + return corners[index]; +} diff --git a/source/geometry/solids/specific/include/G4PolyconeSide.hh b/source/geometry/solids/specific/include/G4PolyconeSide.hh index cada2bf5bc..de86e619f3 100644 --- a/source/geometry/solids/specific/include/G4PolyconeSide.hh +++ b/source/geometry/solids/specific/include/G4PolyconeSide.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyconeSide.hh,v 1.4 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyconeSide.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -40,8 +40,8 @@ // const G4PolyconeSideRZ *tail, // const G4PolyconeSideRZ *head, // const G4PolyconeSideRZ *nextRZ, -// G4double phiStart, G4double deltaPhi, -// G4bool phiIsOpen, G4bool isAllBehind=false ) +// G4double phiStart, G4double deltaPhi, +// G4bool phiIsOpen, G4bool isAllBehind=false ) // // Values for r1,z1 and r2,z2 should be specified in clockwise // order in (r,z). @@ -57,83 +57,84 @@ class G4IntersectingCone; -typedef struct { - G4double r, z; // start of vector +typedef struct +{ + G4double r, z; // start of vector } G4PolyconeSideRZ; class G4PolyconeSide : public G4VCSGface { public: - G4PolyconeSide( const G4PolyconeSideRZ *prevRZ, - const G4PolyconeSideRZ *tail, - const G4PolyconeSideRZ *head, - const G4PolyconeSideRZ *nextRZ, - G4double phiStart, G4double deltaPhi, - G4bool phiIsOpen, G4bool isAllBehind=false ); - virtual ~G4PolyconeSide(); - - G4PolyconeSide( const G4PolyconeSide &source ); - G4PolyconeSide& operator=( const G4PolyconeSide &source ); - - G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &isAllBehind ); + G4PolyconeSide( const G4PolyconeSideRZ *prevRZ, + const G4PolyconeSideRZ *tail, + const G4PolyconeSideRZ *head, + const G4PolyconeSideRZ *nextRZ, + G4double phiStart, G4double deltaPhi, + G4bool phiIsOpen, G4bool isAllBehind=false ); + virtual ~G4PolyconeSide(); + + G4PolyconeSide( const G4PolyconeSide &source ); + G4PolyconeSide& operator=( const G4PolyconeSide &source ); + + G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &isAllBehind ); - G4double Distance( const G4ThreeVector &p, G4bool outgoing ); - - EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ); - - G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); + G4double Distance( const G4ThreeVector &p, G4bool outgoing ); + + EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ); + + G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); - G4double Extent( const G4ThreeVector axis ); + G4double Extent( const G4ThreeVector axis ); - void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ); + void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ); - G4VCSGface *Clone() { return new G4PolyconeSide( *this ); } - + G4VCSGface *Clone() { return new G4PolyconeSide( *this ); } + protected: - G4double r[2], z[2]; // r, z parameters, in specified order - G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen - deltaPhi; // Delta phi (0 to 2pi), if phiIsOpen - G4bool phiIsOpen; // True if there is a phi slice - G4bool allBehind; // True if the entire solid is "behind" this face - - G4IntersectingCone *cone; // Our intersecting utility class - - G4double rNorm, zNorm; // Normal to surface in r,z space - G4double rS, zS; // Unit vector along surface in r,z space - G4double length; // Length of face in r,z space - G4double prevRS, - prevZS; // Unit vector along previous polyconeSide - G4double nextRS, - nextZS; // Unit vector along next polyconeSide - - G4double rNormEdge[2], - zNormEdge[2]; // Normal to edges + G4double r[2], z[2]; // r, z parameters, in specified order + G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen + deltaPhi; // Delta phi (0 to 2pi), if phiIsOpen + G4bool phiIsOpen; // True if there is a phi slice + G4bool allBehind; // True if the entire solid is "behind" this face + + G4IntersectingCone *cone; // Our intersecting utility class + + G4double rNorm, zNorm; // Normal to surface in r,z space + G4double rS, zS; // Unit vector along surface in r,z space + G4double length; // Length of face in r,z space + G4double prevRS, + prevZS; // Unit vector along previous polyconeSide + G4double nextRS, + nextZS; // Unit vector along next polyconeSide + + G4double rNormEdge[2], + zNormEdge[2]; // Normal to edges - G4ThreeVector *corners; // The coordinates of the corners (if phiIsOpen) - - G4double DistanceAway( const G4ThreeVector &p, G4bool opposite, - G4double &distOutside2, G4double *rzNorm=0 ); - - G4bool PointOnCone( const G4ThreeVector &hit, G4double normSign, - const G4ThreeVector &p, const G4ThreeVector &v, G4ThreeVector &normal ); + G4ThreeVector *corners; // The coordinates of the corners (if phiIsOpen) + + G4double DistanceAway( const G4ThreeVector &p, G4bool opposite, + G4double &distOutside2, G4double *rzNorm=0 ); + + G4bool PointOnCone( const G4ThreeVector &hit, G4double normSign, + const G4ThreeVector &p, + const G4ThreeVector &v, G4ThreeVector &normal ); - void CopyStuff( const G4PolyconeSide &source ); - - static void FindLineIntersect( G4double x1, G4double y1, - G4double tx1, G4double ty1, - G4double x2, G4double y2, - G4double tx2, G4double ty2, - G4double &x, G4double &y ); + void CopyStuff( const G4PolyconeSide &source ); + + static void FindLineIntersect( G4double x1, G4double y1, + G4double tx1, G4double ty1, + G4double x2, G4double y2, + G4double tx2, G4double ty2, + G4double &x, G4double &y ); }; - #endif diff --git a/source/geometry/solids/specific/include/G4Polyhedra.hh b/source/geometry/solids/specific/include/G4Polyhedra.hh index 6641845744..740c6a2916 100644 --- a/source/geometry/solids/specific/include/G4Polyhedra.hh +++ b/source/geometry/solids/specific/include/G4Polyhedra.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedra.hh,v 1.5 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Polyhedra.hh,v 1.6 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -33,8 +33,8 @@ // // Class description: // -// Class implementing a CSG type "PGON" Geant 3.21 volume, -// inherited from class G4CSGSolid: +// Class implementing a CSG-like type "PGON" Geant 3.21 volume, +// inherited from class G4VCSGfaceted: // // G4Polyhedra( const G4String& name, // G4double phiStart, - initial phi starting angle @@ -68,98 +68,103 @@ class G4ReduciblePolygon; class G4Polyhedra : public G4VCSGfaceted { - public: + public: // with description - G4Polyhedra( const G4String& name, - G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4int numSide, // number sides - G4int numZPlanes, // number of z planes - const G4double zPlane[], // position of z planes - const G4double rInner[], // tangent distance to inner surface - const G4double rOuter[] ); // tangent distance to outer surface + G4Polyhedra( const G4String& name, + G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4int numSide, // number sides + G4int numZPlanes, // number of z planes + const G4double zPlane[], // position of z planes + const G4double rInner[], // tangent distance to inner surface + const G4double rOuter[] ); // tangent distance to outer surface - G4Polyhedra( const G4String& name, - G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4int numSide, // number sides - G4int numRZ, // number corners in r,z space - const G4double r[], // r coordinate of these corners - const G4double z[] ); // z coordinate of these corners + G4Polyhedra( const G4String& name, + G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4int numSide, // number sides + G4int numRZ, // number corners in r,z space + const G4double r[], // r coordinate of these corners + const G4double z[] ); // z coordinate of these corners - virtual ~G4Polyhedra(); - - G4Polyhedra( const G4Polyhedra &source ); - const G4Polyhedra &operator=( const G4Polyhedra &source ); + virtual ~G4Polyhedra(); + + G4Polyhedra( const G4Polyhedra &source ); + const G4Polyhedra &operator=( const G4Polyhedra &source ); - // - // A couple overrides to speed things up - // - EInside Inside( const G4ThreeVector &p ) const; - G4double DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const; - G4double DistanceToIn( const G4ThreeVector &p ) const { return G4VCSGfaceted::DistanceToIn(p); } - - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep); + // Methods for solid - virtual G4GeometryType GetEntityType() const { return G4String("G4Polyhedra"); } + EInside Inside( const G4ThreeVector &p ) const; + G4double DistanceToIn( const G4ThreeVector &p, + const G4ThreeVector &v ) const; + G4double DistanceToIn( const G4ThreeVector &p ) const; + + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep); - G4Polyhedron* CreatePolyhedron() const; - G4NURBS* CreateNURBS() const; - - inline G4int GetNumSide() const { return numSide; } - inline G4double GetStartPhi() const { return startPhi; } - inline G4double GetEndPhi() const { return endPhi; } - inline G4bool IsOpen() const { return phiIsOpen; } - inline G4int GetNumRZCorner() const { return numCorner;} - inline G4PolyhedraSideRZ GetCorner( const G4int index ) const { return corners[index]; } - - protected: - // - // Here are our parameters - // - G4int numSide; // Number of sides - G4double startPhi; // Starting phi value (0 < phiStart < 2pi) - G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) - G4bool phiIsOpen; // true if there is a phi segment - G4int numCorner; // number RZ points - G4PolyhedraSideRZ *corners; // our corners - - // - // The following is temporary until graphics_reps is brought up to this design - // - struct G4PolyhedraHistorical { - G4PolyhedraHistorical() {;} - ~G4PolyhedraHistorical(); - G4PolyhedraHistorical( const G4PolyhedraHistorical &source ); - - G4double Start_angle; - G4double Opening_angle; - G4int numSide; - G4int Num_z_planes; - G4double *Z_values; - G4double *Rmin; - G4double *Rmax; - }; - - G4PolyhedraHistorical *original_parameters; - - // - // Our quick test - // - G4EnclosingCylinder *enclosingCylinder; + G4GeometryType GetEntityType() const; - // - // Generic initializer, call by all constructors - // - void Create( G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4int numSide, // number sides - G4ReduciblePolygon *rz ); // rz coordinates + G4std::ostream& StreamInfo( G4std::ostream& os ) const; - void CopyStuff( const G4Polyhedra &source ); - void DeleteStuff(); + G4Polyhedron* CreatePolyhedron() const; + G4NURBS* CreateNURBS() const; + + // Accessors + + inline G4int GetNumSide() const; + inline G4double GetStartPhi() const; + inline G4double GetEndPhi() const; + inline G4bool IsOpen() const; + inline G4int GetNumRZCorner() const; + inline G4PolyhedraSideRZ GetCorner( const G4int index ) const; + + protected: // without description + + // Here are our parameters + + G4int numSide; // Number of sides + G4double startPhi; // Starting phi value (0 < phiStart < 2pi) + G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) + G4bool phiIsOpen; // true if there is a phi segment + G4int numCorner; // number RZ points + G4PolyhedraSideRZ *corners; // our corners + + // The following is temporary until graphics_reps is brought up + // to this design + + struct G4PolyhedraHistorical + { + G4PolyhedraHistorical(); + ~G4PolyhedraHistorical(); + G4PolyhedraHistorical( const G4PolyhedraHistorical &source ); + + G4double Start_angle; + G4double Opening_angle; + G4int numSide; + G4int Num_z_planes; + G4double *Z_values; + G4double *Rmin; + G4double *Rmax; + }; + + G4PolyhedraHistorical *original_parameters; + + // Our quick test + + G4EnclosingCylinder *enclosingCylinder; + + // Generic initializer, call by all constructors + + void Create( G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4int numSide, // number sides + G4ReduciblePolygon *rz ); // rz coordinates + + void CopyStuff( const G4Polyhedra &source ); + void DeleteStuff(); }; +#include "G4Polyhedra.icc" + #endif diff --git a/source/geometry/solids/specific/include/G4Polyhedra.icc b/source/geometry/solids/specific/include/G4Polyhedra.icc new file mode 100644 index 0000000000..11d67426e7 --- /dev/null +++ b/source/geometry/solids/specific/include/G4Polyhedra.icc @@ -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: G4Polyhedra.icc,v 1.1 2002/10/28 11:47:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Polyhedra.icc +// +// Implementation of inline methods of G4Polyhedra +// -------------------------------------------------------------------- + +inline +G4int G4Polyhedra::GetNumSide() const +{ + return numSide; +} + +inline +G4double G4Polyhedra::GetStartPhi() const +{ + return startPhi; +} + +inline +G4double G4Polyhedra::GetEndPhi() const +{ + return endPhi; +} + +inline +G4bool G4Polyhedra::IsOpen() const +{ + return phiIsOpen; +} + +inline +G4int G4Polyhedra::GetNumRZCorner() const +{ + return numCorner; +} + +inline +G4PolyhedraSideRZ G4Polyhedra::GetCorner( const G4int index ) const +{ + return corners[index]; +} diff --git a/source/geometry/solids/specific/include/G4PolyhedraSide.hh b/source/geometry/solids/specific/include/G4PolyhedraSide.hh index 0e0f01247d..44753b6d80 100644 --- a/source/geometry/solids/specific/include/G4PolyhedraSide.hh +++ b/source/geometry/solids/specific/include/G4PolyhedraSide.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyhedraSide.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyhedraSide.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -58,8 +58,9 @@ class G4IntersectingCone; -typedef struct { - G4double r, z; // start of vector +typedef struct +{ + G4double r, z; // start of vector } G4PolyhedraSideRZ; class G4PolyhedraSide : public G4VCSGface @@ -67,102 +68,105 @@ class G4PolyhedraSide : public G4VCSGface public: - G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, - const G4PolyhedraSideRZ *tail, - const G4PolyhedraSideRZ *head, - const G4PolyhedraSideRZ *nextRZ, - G4int numSide, - G4double phiStart, G4double phiTotal, - G4bool phiIsOpen, G4bool isAllBehind=false ); - virtual ~G4PolyhedraSide(); - - G4PolyhedraSide( const G4PolyhedraSide &source ); - G4PolyhedraSide& operator=( const G4PolyhedraSide &source ); - - G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &allBehind ); + G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, + const G4PolyhedraSideRZ *tail, + const G4PolyhedraSideRZ *head, + const G4PolyhedraSideRZ *nextRZ, + G4int numSide, + G4double phiStart, G4double phiTotal, + G4bool phiIsOpen, G4bool isAllBehind=false ); + virtual ~G4PolyhedraSide(); + + G4PolyhedraSide( const G4PolyhedraSide &source ); + G4PolyhedraSide& operator=( const G4PolyhedraSide &source ); + + G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &allBehind ); - G4double Distance( const G4ThreeVector &p, G4bool outgoing ); - - EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ); - - G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); + G4double Distance( const G4ThreeVector &p, G4bool outgoing ); + + EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ); + + G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); - G4double Extent( const G4ThreeVector axis ); - - void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ); + G4double Extent( const G4ThreeVector axis ); + + void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ); - G4VCSGface *Clone() { return new G4PolyhedraSide( *this ); } - + G4VCSGface *Clone() { return new G4PolyhedraSide( *this ); } + protected: - // - // A couple internal data structures - // - struct sG4PolyhedraSideVec; // Secret recipe for allowing - friend struct sG4PolyhedraSideVec; // protected nested structures + // + // A couple internal data structures + // + struct sG4PolyhedraSideVec; // Secret recipe for allowing + friend struct sG4PolyhedraSideVec; // protected nested structures - typedef struct sG4PolyhedraSideEdge { - G4ThreeVector normal; // Unit normal to this edge - G4ThreeVector corner[2]; // The two corners of this phi edge - G4ThreeVector cornNorm[2]; // The normals of these corners - } G4PolyhedraSideEdge; - - typedef struct sG4PolyhedraSideVec { - G4ThreeVector normal, // Normal (point out of the shape) - center, // Point in center of side - surfPhi, // Unit vector on surface pointing along phi - surfRZ; // Unit vector on surface pointing along R/Z - G4PolyhedraSideEdge *edges[2]; // The phi boundary edges to this side - // [0]=low phi [1]=high phi - G4ThreeVector edgeNorm[2]; // RZ edge normals [i] at {r[i],z[i]} - } G4PolyhedraSideVec; + typedef struct sG4PolyhedraSideEdge + { + G4ThreeVector normal; // Unit normal to this edge + G4ThreeVector corner[2]; // The two corners of this phi edge + G4ThreeVector cornNorm[2]; // The normals of these corners + } G4PolyhedraSideEdge; + + typedef struct sG4PolyhedraSideVec + { + G4ThreeVector normal, // Normal (point out of the shape) + center, // Point in center of side + surfPhi, // Unit vector on surface pointing along phi + surfRZ; // Unit vector on surface pointing along R/Z + G4PolyhedraSideEdge *edges[2]; // The phi boundary edges to this side + // [0]=low phi [1]=high phi + G4ThreeVector edgeNorm[2]; // RZ edge normals [i] at {r[i],z[i]} + } G4PolyhedraSideVec; - G4int numSide; // Number sides - G4double r[2], z[2]; // r, z parameters, in specified order - G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen - deltaPhi, // Delta phi (0 to 2pi), if phiIsOpen - endPhi; // End phi (>startPhi), if phiIsOpen - G4bool phiIsOpen; // True if there is a phi slice - G4bool allBehind; // True if the entire solid is "behind" this face - - G4IntersectingCone *cone; // Our intersecting cone - - G4PolyhedraSideVec *vecs; // Vector set for each facet of our face - G4PolyhedraSideEdge *edges; // The edges belong to vecs - G4double lenRZ, // RZ length of each side - lenPhi[2]; // Phi dimensions of each side - G4double edgeNorm; // Normal in RZ/Phi space to each side - - G4bool IntersectSidePlane( const G4ThreeVector &p, const G4ThreeVector &v, - const G4PolyhedraSideVec vec, - G4double normSign, - G4double surfTolerance, - G4double &distance, G4double &distFromSurface ); + G4int numSide; // Number sides + G4double r[2], z[2]; // r, z parameters, in specified order + G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen + deltaPhi, // Delta phi (0 to 2pi), if phiIsOpen + endPhi; // End phi (>startPhi), if phiIsOpen + G4bool phiIsOpen; // True if there is a phi slice + G4bool allBehind; // True if the entire solid is "behind" this face + + G4IntersectingCone *cone; // Our intersecting cone + + G4PolyhedraSideVec *vecs; // Vector set for each facet of our face + G4PolyhedraSideEdge *edges; // The edges belong to vecs + G4double lenRZ, // RZ length of each side + lenPhi[2]; // Phi dimensions of each side + G4double edgeNorm; // Normal in RZ/Phi space to each side + + G4bool IntersectSidePlane( const G4ThreeVector &p, const G4ThreeVector &v, + const G4PolyhedraSideVec vec, + G4double normSign, + G4double surfTolerance, + G4double &distance, + G4double &distFromSurface ); - G4int LineHitsSegments( const G4ThreeVector &p, const G4ThreeVector &v, - G4int *i1, G4int *i2 ); + G4int LineHitsSegments( const G4ThreeVector &p, + const G4ThreeVector &v, + G4int *i1, G4int *i2 ); - G4int ClosestPhiSegment( G4double phi ); - - G4int PhiSegment( G4double phi ); - - G4double DistanceToOneSide( const G4ThreeVector &p, - const G4PolyhedraSideVec &vec, - G4double *normDist ); + G4int ClosestPhiSegment( G4double phi ); + + G4int PhiSegment( G4double phi ); + + G4double DistanceToOneSide( const G4ThreeVector &p, + const G4PolyhedraSideVec &vec, + G4double *normDist ); - G4double DistanceAway( const G4ThreeVector &p, - const G4PolyhedraSideVec &vec, - G4double *normDist ); - - void CopyStuff( const G4PolyhedraSide &source ); + G4double DistanceAway( const G4ThreeVector &p, + const G4PolyhedraSideVec &vec, + G4double *normDist ); + + void CopyStuff( const G4PolyhedraSide &source ); }; - #endif diff --git a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh index c13be8605c..90f1b88a5f 100644 --- a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh +++ b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReduciblePolygon.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReduciblePolygon.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -62,86 +62,87 @@ class G4ReduciblePolygon friend class G4ReduciblePolygonIterator; public: - // - // Creator: via simple a/b arrays - // - G4ReduciblePolygon( const G4double a[], const G4double b[], G4int n ); - - // - // Creator: a special version for G4Polygon and G4Polycone - // that takes two a points at planes of b - // (where a==r and b==z for the GEANT3 classic PCON and PGON) - // - G4ReduciblePolygon( const G4double rmin[], const G4double rmax[], - const G4double z[], G4int n ); - - virtual ~G4ReduciblePolygon(); - - // - // Queries - // - inline G4int NumVertices() const { return numVertices; } - - inline G4double Amin() const { return aMin; } - inline G4double Amax() const { return aMax; } - inline G4double Bmin() const { return bMin; } - inline G4double Bmax() const { return bMax; } - - void CopyVertices( G4double a[], G4double b[] ) const; + // + // Creator: via simple a/b arrays + // + G4ReduciblePolygon( const G4double a[], const G4double b[], G4int n ); + + // + // Creator: a special version for G4Polygon and G4Polycone + // that takes two a points at planes of b + // (where a==r and b==z for the GEANT3 classic PCON and PGON) + // + G4ReduciblePolygon( const G4double rmin[], const G4double rmax[], + const G4double z[], G4int n ); + + virtual ~G4ReduciblePolygon(); + + // + // Queries + // + inline G4int NumVertices() const { return numVertices; } + + inline G4double Amin() const { return aMin; } + inline G4double Amax() const { return aMax; } + inline G4double Bmin() const { return bMin; } + inline G4double Bmax() const { return bMax; } + + void CopyVertices( G4double a[], G4double b[] ) const; - // - // Manipulations - // - void ScaleA( G4double scale ); - void ScaleB( G4double scale ); - - G4bool RemoveDuplicateVertices( G4double tolerance ); - G4bool RemoveRedundantVertices( G4double tolerance ); - - void ReverseOrder(); + // + // Manipulations + // + void ScaleA( G4double scale ); + void ScaleB( G4double scale ); + + G4bool RemoveDuplicateVertices( G4double tolerance ); + G4bool RemoveRedundantVertices( G4double tolerance ); + + void ReverseOrder(); - // - // Tests - // - G4double Area(); - G4bool CrossesItself( G4double tolerance ); - G4bool BisectedBy( G4double a1, G4double b1, - G4double a2, G4double b2, G4double tolerance ); - - void Print(); // Debugging only - + // + // Tests + // + G4double Area(); + G4bool CrossesItself( G4double tolerance ); + G4bool BisectedBy( G4double a1, G4double b1, + G4double a2, G4double b2, G4double tolerance ); + + void Print(); // Debugging only + protected: - - void Create( const G4double a[], const G4double b[], G4int n ); - - void CalculateMaxMin(); - - // - // Below are member values that are *always* kept up to date (please!) - // - G4double aMin, aMax, bMin, bMax; - G4int numVertices; - - // - // A subclass which holds the vertices in a single-linked list - // - // Yeah, call me an old-fashioned c hacker, but I cannot make - // myself use the rogue tools for this trivial list. - // - struct ABVertex; - friend struct ABVertex; - struct ABVertex { - G4double a, b; - ABVertex *next; - }; - - ABVertex *vertexHead; + + void Create( const G4double a[], const G4double b[], G4int n ); + + void CalculateMaxMin(); + + // + // Below are member values that are *always* kept up to date (please!) + // + G4double aMin, aMax, bMin, bMax; + G4int numVertices; + + // + // A subclass which holds the vertices in a single-linked list + // + // Yeah, call me an old-fashioned c hacker, but I cannot make + // myself use the rogue tools for this trivial list. + // + struct ABVertex; + friend struct ABVertex; + struct ABVertex + { + G4double a, b; + ABVertex *next; + }; + + ABVertex *vertexHead; private: - G4ReduciblePolygon(const G4ReduciblePolygon&); - G4ReduciblePolygon& operator=(const G4ReduciblePolygon&); - // Private copy constructor and assignment operator. + G4ReduciblePolygon(const G4ReduciblePolygon&); + G4ReduciblePolygon& operator=(const G4ReduciblePolygon&); + // Private copy constructor and assignment operator. }; @@ -153,21 +154,21 @@ class G4ReduciblePolygonIterator { public: - G4ReduciblePolygonIterator( const G4ReduciblePolygon *theSubject ) - { subject = theSubject; current=0; } - - void Begin() { current = subject->vertexHead; } - G4bool Next() { if (current) current=current->next; return Valid(); } - - G4bool Valid() const { return current!=0; } - - G4double GetA() const { return current->a; } - G4double GetB() const { return current->b; } - + G4ReduciblePolygonIterator( const G4ReduciblePolygon *theSubject ) + { subject = theSubject; current=0; } + + void Begin() { current = subject->vertexHead; } + G4bool Next() { if (current) current=current->next; return Valid(); } + + G4bool Valid() const { return current!=0; } + + G4double GetA() const { return current->a; } + G4double GetB() const { return current->b; } + protected: - const G4ReduciblePolygon *subject; // Who are we iterating over - G4ReduciblePolygon::ABVertex *current; // Current vertex + const G4ReduciblePolygon *subject; // Who are we iterating over + G4ReduciblePolygon::ABVertex *current; // Current vertex }; #endif diff --git a/source/geometry/solids/specific/include/G4SolidExtentList.hh b/source/geometry/solids/specific/include/G4SolidExtentList.hh index 0fbb2ef2e7..4885705dff 100644 --- a/source/geometry/solids/specific/include/G4SolidExtentList.hh +++ b/source/geometry/solids/specific/include/G4SolidExtentList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SolidExtentList.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SolidExtentList.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -36,7 +36,7 @@ // Defines a list of (voxel) extents along one axis. // // This utility class is designed for one specific purpose: -// to calculate the extent of a CSG solid for a voxel +// to calculate the extent of a CSG-like solid for a voxel // (G4VSolid::CalculateExtent). // Author: @@ -53,28 +53,28 @@ class G4SolidExtentList { public: - - G4SolidExtentList(); - G4SolidExtentList( const EAxis targetAxis, const G4VoxelLimits &voxelLimits ); - ~G4SolidExtentList(); + + G4SolidExtentList(); + G4SolidExtentList( const EAxis targetAxis, + const G4VoxelLimits &voxelLimits ); + ~G4SolidExtentList(); - void AddSurface( const G4ClippablePolygon &surface ); + void AddSurface( const G4ClippablePolygon &surface ); - G4bool GetExtent( G4double &min, G4double &max ) const; + G4bool GetExtent( G4double &min, G4double &max ) const; - protected: - - EAxis axis; // Target axis - G4bool limited; // True if limited - G4double minLimit; // ... min limit - G4double maxLimit; // ... max limit + protected: + + EAxis axis; // Target axis + G4bool limited; // True if limited + G4double minLimit; // ... min limit + G4double maxLimit; // ... max limit - G4ClippablePolygon minSurface, // Minimum surface within limits - maxSurface, // Maximum - minAbove, // Minimum surface totally above max limit - maxBelow; // Maximum surface totally below min limit + G4ClippablePolygon minSurface, // Minimum surface within limits + maxSurface, // Maximum + minAbove, // Minimum surface totally above max limit + maxBelow; // Maximum surface totally below min limit }; - #endif diff --git a/source/geometry/solids/specific/include/G4VCSGface.hh b/source/geometry/solids/specific/include/G4VCSGface.hh index 5ee70728da..bcdb451da8 100644 --- a/source/geometry/solids/specific/include/G4VCSGface.hh +++ b/source/geometry/solids/specific/include/G4VCSGface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCSGface.hh,v 1.4 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCSGface.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -34,7 +34,7 @@ // Class description: // // Definition of the virtual base class G4VCSGface, one side (or face) -// of a CSG solid. It should be possible to build a CSG entirely out of +// of a CSG-like solid. It should be possible to build a CSG entirely out of // connecting CSG faces. // // Each face has an inside and outside surface, the former represents @@ -42,15 +42,15 @@ // // Virtual members: // -// ------------------------------------------------------------------- +// ------------------------------------------------------------------- // Intersect( const G4ThreeVector &p, const G4ThreeVector &v, -// G4bool outGoing, G4double surfTolerance, -// G4double &distance, G4double &distFromSurface, -// G4ThreeVector &normal, G4bool &allBehind ); +// G4bool outGoing, G4double surfTolerance, +// G4double &distance, G4double &distFromSurface, +// G4ThreeVector &normal, G4bool &allBehind ); // // p - (in) position // v - (in) direction (assumed to be a unit vector) -// outgoing - (in) true, to consider only inside surfaces +// outgoing - (in) true, to consider only inside surfaces // false, to consider only outside surfaces // distance - (out) distance to intersection // distFromSurface - (out) distance from surface (along surface normal), @@ -62,56 +62,56 @@ // false if there is no intersection // (all output arguments undefined) // -// Determine the distance along a line to the face. +// Determine the distance along a line to the face. // -// ------------------------------------------------------------------- -// Distance( const G4ThreeVector &p, const G4bool outgoing ); +// ------------------------------------------------------------------- +// Distance( const G4ThreeVector &p, const G4bool outgoing ); // -// p - (in) position -// outgoing - (in) true, to consider only inside surfaces +// p - (in) position +// outgoing - (in) true, to consider only inside surfaces // false, to consider only outside surfaces // -// return value = distance to closest surface satisifying requirements +// return value = distance to closest surface satisifying requirements // or kInfinity if no such surface exists // -// Determine the distance of a point from either the inside or outside -// surfaces of the face. +// Determine the distance of a point from either the inside or outside +// surfaces of the face. // -// ------------------------------------------------------------------- +// ------------------------------------------------------------------- // Inside( const G4ThreeVector &p, const G4double tolerance, -// G4double *bestDistance ); +// G4double *bestDistance ); // -// p - (in) position -// tolerance - (in) tolerance defining the bounds of the "kSurface", -// nominally equal to kCarTolerance/2 -// bestDistance - (out) distance to closest surface (in or out) +// p - (in) position +// tolerance - (in) tolerance defining the bounds of the "kSurface", +// nominally equal to kCarTolerance/2 +// bestDistance - (out) distance to closest surface (in or out) // -// return value = kInside if the point is closest to the inside surface -// kOutside if the point is closest to the outside surface -// kSurface if the point is withing tolerance of the surface +// return value = kInside if the point is closest to the inside surface +// kOutside if the point is closest to the outside surface +// kSurface if the point is withing tolerance of the surface // -// Determine whether a point is inside, outside, or on the surface of -// the face. +// Determine whether a point is inside, outside, or on the surface of +// the face. // -// ------------------------------------------------------------------- +// ------------------------------------------------------------------- // Normal( const G4ThreeVector &p, G4double *bestDistance ); // -// p - (in) position -// bestDistance - (out) distance to closest surface (in or out) +// p - (in) position +// bestDistance - (out) distance to closest surface (in or out) // -// return value = the normal of the surface nearest the point +// return value = the normal of the surface nearest the point // -// Return normal of surface closest to the point. +// Return normal of surface closest to the point. // -// ------------------------------------------------------------------- -// Extent( const G4ThreeVector axis ); +// ------------------------------------------------------------------- +// Extent( const G4ThreeVector axis ); // -// axis - (in) unit vector defining direction +// axis - (in) unit vector defining direction // -// return value = the largest point along the given axis of the -// the face's extent. +// return value = the largest point along the given axis of the +// the face's extent. // -// ------------------------------------------------------------------- +// ------------------------------------------------------------------- // CalculateExtent( const EAxis pAxis, // const G4VoxelLimit &pVoxelLimit, // const G4AffineTransform &pTransform, @@ -126,16 +126,16 @@ // surface after tranformation and limits // along pAxis that is smaller than the value // of min, than it is used to replace min. -// Undefined if the return value is false. +// Undefined if the return value is false. // max - (out) Same as min, except for the largest // point. -// Undefined if the return value is false. +// Undefined if the return value is false. // // return value = true if anything remains of the face // -// Calculate the extent of the face for the voxel navigator. -// In analogy with CalculateExtent for G4VCSGfaceted, this is -// done in the following steps: +// Calculate the extent of the face for the voxel navigator. +// In analogy with CalculateExtent for G4VCSGfaceted, this is +// done in the following steps: // // 1. Transform the face using pTranform, an arbitrary 3D // rotation/offset/reflection @@ -153,32 +153,32 @@ // limits) along the direction pAxis. // 6. If min/max were updated, return true // -// ------------------------------------------------------------------- +// ------------------------------------------------------------------- // G3VCSGface *Clone() // -// This method is invoked by G4CSGfaceted during the copy constructor -// or the assignment operator. Its purpose is to return a pointer -// (of type G4VCSGface) to a duplicate copy of the face. -// The implementation is straight forward for inherited classes. Example: +// This method is invoked by G4CSGfaceted during the copy constructor +// or the assignment operator. Its purpose is to return a pointer +// (of type G4VCSGface) to a duplicate copy of the face. +// The implementation is straight forward for inherited classes. Example: // -// G4VCSGface G4PolySideFace::Clone() { return new G4PolySideFace(*this); } +// G4VCSGface G4PolySideFace::Clone() { return new G4PolySideFace(*this); } // -// Of course, this assumes the copy constructor of G4PolySideFace is -// correctly implemented. +// Of course, this assumes the copy constructor of G4PolySideFace is +// correctly implemented. // // Implementation notes: -// * distance. +// * distance. // The meaning of distance includes the boundaries of the face. // For example, for a rectangular, planer face: // -// A | B | C -// | | -// -------+--------------+----- -// D | I | E -// | | -// -------+--------------+----- -// F | G | H -// | | +// A | B | C +// | | +// -------+--------------+----- +// D | I | E +// | | +// -------+--------------+----- +// F | G | H +// | | // // A, C, F, and H: closest distance is the distance to // the adjacent corner. @@ -212,20 +212,20 @@ // a value of "bestDistance" smaller than any other. While looping, if any // face->Inside returns kSurface, this value can be returned immediately. // -// EInside answer; -// G4VCSGface *face = faces; -// G4double best = kInfinity; -// do { -// G4double distance; -// EInside result = (*face)->Inside( p, kCarTolerance/2, distance ); -// if (result == kSurface) return kSurface; -// if (distance < best) { -// best = distance; -// answer = result; -// } -// } while( ++face < faces + numFaces ); +// EInside answer; +// G4VCSGface *face = faces; +// G4double best = kInfinity; +// do { +// G4double distance; +// EInside result = (*face)->Inside( p, kCarTolerance/2, distance ); +// if (result == kSurface) return kSurface; +// if (distance < best) { +// best = distance; +// answer = result; +// } +// } while( ++face < faces + numFaces ); // -// return(answer); +// return(answer); // // G4VSolid::SurfaceNormal // @@ -272,32 +272,32 @@ class G4SolidExtentList; class G4VCSGface { - public: + public: // with description - G4VCSGface() {;} - virtual ~G4VCSGface() {;} - - virtual G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &allBehind ) = 0; + G4VCSGface() {} + virtual ~G4VCSGface() {} + + virtual G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &allBehind ) = 0; - virtual G4double Distance( const G4ThreeVector &p, G4bool outgoing ) = 0; - - virtual EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ) = 0; - - virtual G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ) = 0; + virtual G4double Distance( const G4ThreeVector &p, G4bool outgoing ) = 0; + + virtual EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ) = 0; + + virtual G4ThreeVector Normal( const G4ThreeVector &p, + G4double *bestDistance ) = 0; - virtual G4double Extent( const G4ThreeVector axis ) = 0; - - virtual void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ) = 0; + virtual G4double Extent( const G4ThreeVector axis ) = 0; + + virtual void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ) = 0; - virtual G4VCSGface* Clone() = 0; + virtual G4VCSGface* Clone() = 0; }; #endif - diff --git a/source/geometry/solids/specific/include/G4VCSGfaceted.hh b/source/geometry/solids/specific/include/G4VCSGfaceted.hh index 7463eef090..afb2753985 100644 --- a/source/geometry/solids/specific/include/G4VCSGfaceted.hh +++ b/source/geometry/solids/specific/include/G4VCSGfaceted.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCSGfaceted.hh,v 1.6 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCSGfaceted.hh,v 1.7 2002/10/28 11:47:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -33,7 +33,7 @@ // // Class description: // -// Virtual class defining CSG type shape that is built entire +// Virtual class defining CSG-like type shape that is built entire // of G4CSGface faces. // Author: @@ -50,46 +50,53 @@ class G4VisExtent; class G4VCSGfaceted : public G4VSolid { - public: + public: // with description - G4VCSGfaceted( G4String name) : G4VSolid(name) {;} - virtual ~G4VCSGfaceted(); - - G4VCSGfaceted( const G4VCSGfaceted &source ); - const G4VCSGfaceted &operator=( const G4VCSGfaceted &source ); - - virtual G4bool CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; - - virtual EInside Inside( const G4ThreeVector& p) const; + G4VCSGfaceted( G4String name ); + virtual ~G4VCSGfaceted(); + + G4VCSGfaceted( const G4VCSGfaceted &source ); + const G4VCSGfaceted &operator=( const G4VCSGfaceted &source ); + + virtual G4bool CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax ) const; + + virtual EInside Inside( const G4ThreeVector& p ) const; - virtual G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + virtual G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) 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 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; - G4GeometryType GetEntityType() const { return G4String("G4CSGfaceted"); } + virtual G4GeometryType GetEntityType() const; - virtual G4Polyhedron* CreatePolyhedron() const = 0; + virtual G4std::ostream& StreamInfo(G4std::ostream& os) const; - virtual void DescribeYourselfTo( G4VGraphicsScene& scene ) const; + virtual G4Polyhedron* CreatePolyhedron() const = 0; - virtual G4VisExtent GetExtent() const; + virtual void DescribeYourselfTo( G4VGraphicsScene& scene ) const; - protected: - G4int numFace; - G4VCSGface **faces; + virtual G4VisExtent GetExtent() const; - virtual G4double DistanceTo( const G4ThreeVector &p, const G4bool outgoing ) const; + protected: // without description - void CopyStuff( const G4VCSGfaceted &source ); - void DeleteStuff(); + G4int numFace; + G4VCSGface **faces; + + virtual G4double DistanceTo( const G4ThreeVector &p, + const G4bool outgoing ) const; + + void CopyStuff( const G4VCSGfaceted &source ); + void DeleteStuff(); }; #endif diff --git a/source/geometry/solids/specific/src/G4ClippablePolygon.cc b/source/geometry/solids/specific/src/G4ClippablePolygon.cc index 3186148d35..a742f7a4a3 100644 --- a/source/geometry/solids/specific/src/G4ClippablePolygon.cc +++ b/source/geometry/solids/specific/src/G4ClippablePolygon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClippablePolygon.cc,v 1.6 2001/07/11 10:00:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ClippablePolygon.cc,v 1.8 2002/10/30 13:52:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -31,7 +31,7 @@ // // G4ClippablePolygon.cc // -// Includes code from G4VSolid (P. Kent, V. Grichine, J. Allison) +// Includes code from G4VSolid (P.Kent, V.Grichine, J.Allison) // // -------------------------------------------------------------------- @@ -43,6 +43,7 @@ // Constructor // G4ClippablePolygon::G4ClippablePolygon() + : normal(0.,0.,0.) { } @@ -58,7 +59,7 @@ G4ClippablePolygon::~G4ClippablePolygon() // void G4ClippablePolygon::AddVertexInOrder( const G4ThreeVector vertex ) { - vertices.push_back( vertex ); + vertices.push_back( vertex ); } @@ -67,7 +68,7 @@ void G4ClippablePolygon::AddVertexInOrder( const G4ThreeVector vertex ) // void G4ClippablePolygon::ClearAllVertices() { - vertices.clear(); + vertices.clear(); } @@ -77,13 +78,13 @@ void G4ClippablePolygon::ClearAllVertices() // G4bool G4ClippablePolygon::Clip( const G4VoxelLimits &voxelLimit ) { - if (voxelLimit.IsLimited()) { - ClipAlongOneAxis( voxelLimit, kXAxis ); - ClipAlongOneAxis( voxelLimit, kYAxis ); - ClipAlongOneAxis( voxelLimit, kZAxis ); - } - - return (vertices.size() > 0); + if (voxelLimit.IsLimited()) { + ClipAlongOneAxis( voxelLimit, kXAxis ); + ClipAlongOneAxis( voxelLimit, kYAxis ); + ClipAlongOneAxis( voxelLimit, kZAxis ); + } + + return (vertices.size() > 0); } @@ -92,15 +93,16 @@ G4bool G4ClippablePolygon::Clip( const G4VoxelLimits &voxelLimit ) // // Clip, while ignoring the indicated axis // -G4bool G4ClippablePolygon::PartialClip( const G4VoxelLimits &voxelLimit, const EAxis IgnoreMe ) +G4bool G4ClippablePolygon::PartialClip( const G4VoxelLimits &voxelLimit, + const EAxis IgnoreMe ) { - if (voxelLimit.IsLimited()) { - if (IgnoreMe != kXAxis) ClipAlongOneAxis( voxelLimit, kXAxis ); - if (IgnoreMe != kYAxis) ClipAlongOneAxis( voxelLimit, kYAxis ); - if (IgnoreMe != kZAxis) ClipAlongOneAxis( voxelLimit, kZAxis ); - } - - return (vertices.size() > 0); + if (voxelLimit.IsLimited()) { + if (IgnoreMe != kXAxis) ClipAlongOneAxis( voxelLimit, kXAxis ); + if (IgnoreMe != kYAxis) ClipAlongOneAxis( voxelLimit, kYAxis ); + if (IgnoreMe != kZAxis) ClipAlongOneAxis( voxelLimit, kZAxis ); + } + + return (vertices.size() > 0); } @@ -108,36 +110,38 @@ G4bool G4ClippablePolygon::PartialClip( const G4VoxelLimits &voxelLimit, const E // GetExtent // G4bool G4ClippablePolygon::GetExtent( const EAxis axis, - G4double &min, G4double &max ) const + G4double &min, + G4double &max ) const { - // - // Okay, how many entries do we have? - // - G4int noLeft = vertices.size(); - - // - // Return false if nothing is left - // - if (noLeft == 0) return false; - - // - // Initialize min and max to our first vertex - // - min = max = vertices[0].operator()( axis ); - - // - // Compare to the rest - // - G4int i; - for( i=1; i max ) - max = component; - } - - return true; + // + // Okay, how many entries do we have? + // + G4int noLeft = vertices.size(); + + // + // Return false if nothing is left + // + if (noLeft == 0) return false; + + // + // Initialize min and max to our first vertex + // + min = max = vertices[0].operator()( axis ); + + // + // Compare to the rest + // + G4int i; + for( i=1; i max ) + max = component; + } + + return true; } @@ -149,22 +153,25 @@ G4bool G4ClippablePolygon::GetExtent( const EAxis axis, // const G4ThreeVector *G4ClippablePolygon::GetMinPoint( const EAxis axis ) const { - G4int noLeft = vertices.size(); - if (noLeft==0) G4Exception( "G4ClippablePolygon::GetMinPoint -- empty polygon" ); - - const G4ThreeVector *answer = &(vertices[0]); - G4double min = answer->operator()(axis); + G4int noLeft = vertices.size(); + if (noLeft==0) + G4Exception("G4ClippablePolygon::GetMinPoint() - empty polygon"); + + const G4ThreeVector *answer = &(vertices[0]); + G4double min = answer->operator()(axis); - G4int i; - for( i=1; ioperator()(axis); + G4int noLeft = vertices.size(); + if (noLeft==0) + G4Exception("G4ClippablePolygon::GetMaxPoint() - empty polygon"); + + const G4ThreeVector *answer = &(vertices[0]); + G4double max = answer->operator()(axis); - G4int i; - for( i=1; i max) { - answer = &(vertices[i]); - max = component; - } - } - - return answer; + G4int i; + for( i=1; i max) + { + answer = &(vertices[i]); + max = component; + } + } + + return answer; } - + // // InFrontOf @@ -211,58 +221,63 @@ const G4ThreeVector *G4ClippablePolygon::GetMaxPoint( const EAxis axis ) const // polygon1.InFrontOf(polygon2) // polygon2.BehindOf(polygon1) // -G4bool G4ClippablePolygon::InFrontOf( const G4ClippablePolygon &other, EAxis axis ) const +G4bool G4ClippablePolygon::InFrontOf( const G4ClippablePolygon &other, + EAxis axis ) const { - // - // If things are empty, do something semi-sensible - // - G4int noLeft = vertices.size(); - if (noLeft==0) return false; - - if (other.Empty()) return true; + // + // If things are empty, do something semi-sensible + // + G4int noLeft = vertices.size(); + if (noLeft==0) return false; + + if (other.Empty()) return true; - // - // Get minimum of other polygon - // - const G4ThreeVector *minPointOther = other.GetMinPoint( axis ); - const G4double minOther = minPointOther->operator()(axis); - - // - // Get minimum of this polygon - // - const G4ThreeVector *minPoint = GetMinPoint( axis ); - const G4double min = minPoint->operator()(axis); - - // - // Easy decision - // - if (min < minOther-kCarTolerance) return true; // Clear winner - - if (minOther < min-kCarTolerance) return false; // Clear loser - - // - // We have a tie (this will not be all that rare since our - // polygons are connected) - // - // Check to see if there is a vertex in the other polygon - // that is behind this one (or vice versa) - // - G4bool answer; - G4ThreeVector normalOther = other.GetNormal(); - - if (fabs(normalOther(axis)) > fabs(normal(axis))) { - G4double minP, maxP; - GetPlanerExtent( *minPointOther, normalOther, minP, maxP ); - - answer = (normalOther(axis) > 0) ? (minP < -kCarTolerance) : (maxP > +kCarTolerance); - } - else { - G4double minP, maxP; - other.GetPlanerExtent( *minPoint, normal, minP, maxP ); - - answer = (normal(axis) > 0) ? (maxP > +kCarTolerance) : (minP < -kCarTolerance); - } - return answer; + // + // Get minimum of other polygon + // + const G4ThreeVector *minPointOther = other.GetMinPoint( axis ); + const G4double minOther = minPointOther->operator()(axis); + + // + // Get minimum of this polygon + // + const G4ThreeVector *minPoint = GetMinPoint( axis ); + const G4double min = minPoint->operator()(axis); + + // + // Easy decision + // + if (min < minOther-kCarTolerance) return true; // Clear winner + + if (minOther < min-kCarTolerance) return false; // Clear loser + + // + // We have a tie (this will not be all that rare since our + // polygons are connected) + // + // Check to see if there is a vertex in the other polygon + // that is behind this one (or vice versa) + // + G4bool answer; + G4ThreeVector normalOther = other.GetNormal(); + + if (fabs(normalOther(axis)) > fabs(normal(axis))) + { + G4double minP, maxP; + GetPlanerExtent( *minPointOther, normalOther, minP, maxP ); + + answer = (normalOther(axis) > 0) ? (minP < -kCarTolerance) + : (maxP > +kCarTolerance); + } + else + { + G4double minP, maxP; + other.GetPlanerExtent( *minPoint, normal, minP, maxP ); + + answer = (normal(axis) > 0) ? (maxP > +kCarTolerance) + : (minP < -kCarTolerance); + } + return answer; } // @@ -271,58 +286,63 @@ G4bool G4ClippablePolygon::InFrontOf( const G4ClippablePolygon &other, EAxis axi // Decide if this polygon is behind another. // See notes in method "InFrontOf" // -G4bool G4ClippablePolygon::BehindOf( const G4ClippablePolygon &other, EAxis axis ) const +G4bool G4ClippablePolygon::BehindOf( const G4ClippablePolygon &other, + EAxis axis ) const { - // - // If things are empty, do something semi-sensible - // - G4int noLeft = vertices.size(); - if (noLeft==0) return false; - - if (other.Empty()) return true; + // + // If things are empty, do something semi-sensible + // + G4int noLeft = vertices.size(); + if (noLeft==0) return false; + + if (other.Empty()) return true; - // - // Get minimum of other polygon - // - const G4ThreeVector *maxPointOther = other.GetMaxPoint( axis ); - const G4double maxOther = maxPointOther->operator()(axis); - - // - // Get minimum of this polygon - // - const G4ThreeVector *maxPoint = GetMaxPoint( axis ); - const G4double max = maxPoint->operator()(axis); - - // - // Easy decision - // - if (max > maxOther+kCarTolerance) return true; // Clear winner - - if (maxOther > max+kCarTolerance) return false; // Clear loser - - // - // We have a tie (this will not be all that rare since our - // polygons are connected) - // - // Check to see if there is a vertex in the other polygon - // that is in front of this one (or vice versa) - // - G4bool answer; - G4ThreeVector normalOther = other.GetNormal(); - - if (fabs(normalOther(axis)) > fabs(normal(axis))) { - G4double minP, maxP; - GetPlanerExtent( *maxPointOther, normalOther, minP, maxP ); - - answer = (normalOther(axis) > 0) ? (maxP > +kCarTolerance) : (minP < -kCarTolerance); - } - else { - G4double minP, maxP; - other.GetPlanerExtent( *maxPoint, normal, minP, maxP ); - - answer = (normal(axis) > 0) ? (minP < -kCarTolerance) : (maxP > +kCarTolerance); - } - return answer; + // + // Get minimum of other polygon + // + const G4ThreeVector *maxPointOther = other.GetMaxPoint( axis ); + const G4double maxOther = maxPointOther->operator()(axis); + + // + // Get minimum of this polygon + // + const G4ThreeVector *maxPoint = GetMaxPoint( axis ); + const G4double max = maxPoint->operator()(axis); + + // + // Easy decision + // + if (max > maxOther+kCarTolerance) return true; // Clear winner + + if (maxOther > max+kCarTolerance) return false; // Clear loser + + // + // We have a tie (this will not be all that rare since our + // polygons are connected) + // + // Check to see if there is a vertex in the other polygon + // that is in front of this one (or vice versa) + // + G4bool answer; + G4ThreeVector normalOther = other.GetNormal(); + + if (fabs(normalOther(axis)) > fabs(normal(axis))) + { + G4double minP, maxP; + GetPlanerExtent( *maxPointOther, normalOther, minP, maxP ); + + answer = (normalOther(axis) > 0) ? (maxP > +kCarTolerance) + : (minP < -kCarTolerance); + } + else + { + G4double minP, maxP; + other.GetPlanerExtent( *maxPoint, normal, minP, maxP ); + + answer = (normal(axis) > 0) ? (minP < -kCarTolerance) + : (maxP > +kCarTolerance); + } + return answer; } @@ -332,140 +352,140 @@ G4bool G4ClippablePolygon::BehindOf( const G4ClippablePolygon &other, EAxis axis // Get min/max distance in or out of a plane // G4bool G4ClippablePolygon::GetPlanerExtent( const G4ThreeVector &pointOnPlane, - const G4ThreeVector &planeNormal, - G4double &min, G4double &max ) const + const G4ThreeVector &planeNormal, + G4double &min, + G4double &max ) const { - // - // Okay, how many entries do we have? - // - G4int noLeft = vertices.size(); - - // - // Return false if nothing is left - // - if (noLeft == 0) return false; - - // - // Initialize min and max to our first vertex - // - min = max = planeNormal.dot(vertices[0]-pointOnPlane); - - // - // Compare to the rest - // - G4int i; - for( i=1; i max ) - max = component; - } - - return true; + // + // Okay, how many entries do we have? + // + G4int noLeft = vertices.size(); + + // + // Return false if nothing is left + // + if (noLeft == 0) return false; + + // + // Initialize min and max to our first vertex + // + min = max = planeNormal.dot(vertices[0]-pointOnPlane); + + // + // Compare to the rest + // + G4int i; + for( i=1; i max ) + max = component; + } + + return true; } - // // Clip along just one axis, as specified in voxelLimit // -void G4ClippablePolygon::ClipAlongOneAxis( const G4VoxelLimits &voxelLimit, const EAxis axis ) +void G4ClippablePolygon::ClipAlongOneAxis( const G4VoxelLimits &voxelLimit, + const EAxis axis ) { - if (!voxelLimit.IsLimited(axis)) return; - - G4ThreeVectorList tempPolygon; + if (!voxelLimit.IsLimited(axis)) return; + + G4ThreeVectorList tempPolygon; - // - // Build a "simple" voxelLimit that includes only the min extent - // and apply this to our vertices, producing result in tempPolygon - // - G4VoxelLimits simpleLimit1; - simpleLimit1.AddLimit( axis, voxelLimit.GetMinExtent(axis), kInfinity ); - ClipToSimpleLimits( vertices, tempPolygon, simpleLimit1 ); + // + // Build a "simple" voxelLimit that includes only the min extent + // and apply this to our vertices, producing result in tempPolygon + // + G4VoxelLimits simpleLimit1; + simpleLimit1.AddLimit( axis, voxelLimit.GetMinExtent(axis), kInfinity ); + ClipToSimpleLimits( vertices, tempPolygon, simpleLimit1 ); - // - // If nothing is left from the above clip, we might as well return now - // (but with an empty vertices) - // - if (tempPolygon.size() == 0) { - vertices.clear(); - return; - } + // + // If nothing is left from the above clip, we might as well return now + // (but with an empty vertices) + // + if (tempPolygon.size() == 0) + { + vertices.clear(); + return; + } - // - // Now do the same, but using a "simple" limit that includes only the max extent. - // Apply this to out tempPolygon, producing result in vertices. - // - G4VoxelLimits simpleLimit2; - simpleLimit2.AddLimit( axis, -kInfinity, voxelLimit.GetMaxExtent(axis) ); - ClipToSimpleLimits( tempPolygon, vertices, simpleLimit2 ); + // + // Now do the same, but using a "simple" limit that includes only the max + // extent. Apply this to out tempPolygon, producing result in vertices. + // + G4VoxelLimits simpleLimit2; + simpleLimit2.AddLimit( axis, -kInfinity, voxelLimit.GetMaxExtent(axis) ); + ClipToSimpleLimits( tempPolygon, vertices, simpleLimit2 ); - // - // If nothing is left, return now - // - if (vertices.size() == 0) return; + // + // If nothing is left, return now + // + if (vertices.size() == 0) return; } - - - - +// // pVoxelLimits must be only limited along one axis, and either the maximum // along the axis must be +kInfinity, or the minimum -kInfinity +// void G4ClippablePolygon::ClipToSimpleLimits( G4ThreeVectorList& pPolygon, - G4ThreeVectorList& outputPolygon, - const G4VoxelLimits& pVoxelLimit ) + G4ThreeVectorList& outputPolygon, + const G4VoxelLimits& pVoxelLimit ) { - G4int i; - G4int noVertices=pPolygon.size(); - G4ThreeVector vEnd,vStart; + G4int i; + G4int noVertices=pPolygon.size(); + G4ThreeVector vEnd,vStart; + + outputPolygon.clear(); - outputPolygon.clear(); - - for (i=0;i output end point - outputPolygon.push_back(vEnd); - } - else - { -// vStart inside, vEnd outside -> output crossing point - pVoxelLimit.ClipToLimits(vStart,vEnd); - outputPolygon.push_back(vEnd); - } - - } - else - { - if (pVoxelLimit.Inside(vEnd)) - { -// vStart outside, vEnd inside -> output inside section - pVoxelLimit.ClipToLimits(vStart,vEnd); - outputPolygon.push_back(vStart); - outputPolygon.push_back(vEnd); - } - else -// Both point outside -> no output - { - } - - } - } + for (i=0;i output end point + // + outputPolygon.push_back(vEnd); + } + else + { + // vStart inside, vEnd outside -> output crossing point + // + pVoxelLimit.ClipToLimits(vStart,vEnd); + outputPolygon.push_back(vEnd); + } + } + else + { + if (pVoxelLimit.Inside(vEnd)) + { + // vStart outside, vEnd inside -> output inside section + // + pVoxelLimit.ClipToLimits(vStart,vEnd); + outputPolygon.push_back(vStart); + outputPolygon.push_back(vEnd); + } + else // Both point outside -> no output + { + } + } + } } diff --git a/source/geometry/solids/specific/src/G4EllipticalTube.cc b/source/geometry/solids/specific/src/G4EllipticalTube.cc index 919761e2c7..974474de98 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.11 2002/05/08 13:51:26 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EllipticalTube.cc,v 1.13 2002/10/28 15:18:40 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -37,6 +37,7 @@ // -------------------------------------------------------------------- #include "G4EllipticalTube.hh" + #include "G4ClippablePolygon.hh" #include "G4AffineTransform.hh" #include "G4SolidExtentList.hh" @@ -51,12 +52,14 @@ // Constructor // G4EllipticalTube::G4EllipticalTube( const G4String &name, - G4double theDx, G4double theDy, G4double theDz ) - : G4VSolid( name ) + G4double theDx, + G4double theDy, + G4double theDz ) + : G4VSolid( name ) { - dx = theDx; - dy = theDy; - dz = theDz; + dx = theDx; + dy = theDy; + dz = theDz; } @@ -69,112 +72,117 @@ G4EllipticalTube::~G4EllipticalTube() {;} // // CalculateExtent // -G4bool G4EllipticalTube::CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &transform, - G4double &min, G4double &max ) const +G4bool +G4EllipticalTube::CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4double &min, G4double &max ) const { - G4SolidExtentList extentList( axis, voxelLimit ); - - // - // We are going to divide up our elliptical face into small - // pieces - // - - // - // Choose phi size of our segment(s) based on constants as - // defined in meshdefs.hh - // - G4int numPhi = kMaxMeshSections; - G4double sigPhi = 2*M_PI/numPhi; - - // - // We have to be careful to keep our segments completely outside - // of the elliptical surface. To do so we imagine we have - // a simple (unit radius) circular cross section (as in G4Tubs) - // and then "stretch" the dimensions as necessary to fit the ellipse. - // - G4double rFudge = 1.0/cos(0.5*sigPhi); - G4double dxFudge = dx*rFudge, - dyFudge = dy*rFudge; - - // - // As we work around the elliptical surface, we build - // a "phi" segment on the way, and keep track of two - // additional polygons for the two ends. - // - G4ClippablePolygon endPoly1, endPoly2, phiPoly; - - G4double phi = 0, - cosPhi = cos(phi), - sinPhi = sin(phi); - G4ThreeVector v0( dxFudge*cosPhi, dyFudge*sinPhi, +dz ), - v1( dxFudge*cosPhi, dyFudge*sinPhi, -dz ), - w0, w1; - transform.ApplyPointTransform( v0 ); - transform.ApplyPointTransform( v1 ); - do { - phi += sigPhi; - if (numPhi == 1) phi = 0; // Try to avoid roundoff - cosPhi = cos(phi), - sinPhi = sin(phi); - - w0 = G4ThreeVector( dxFudge*cosPhi, dyFudge*sinPhi, +dz ); - w1 = G4ThreeVector( dxFudge*cosPhi, dyFudge*sinPhi, -dz ); - transform.ApplyPointTransform( w0 ); - transform.ApplyPointTransform( w1 ); - - // - // Add a point to our z ends - // - endPoly1.AddVertexInOrder( v0 ); - endPoly2.AddVertexInOrder( v1 ); - - // - // Build phi polygon - // - phiPoly.ClearAllVertices(); - - phiPoly.AddVertexInOrder( v0 ); - phiPoly.AddVertexInOrder( v1 ); - phiPoly.AddVertexInOrder( w1 ); - phiPoly.AddVertexInOrder( w0 ); - - if (phiPoly.PartialClip( voxelLimit, axis )) { - // - // Get unit normal - // - phiPoly.SetNormal( (v1-v0).cross(w0-v0).unit() ); - - extentList.AddSurface( phiPoly ); - } + G4SolidExtentList extentList( axis, voxelLimit ); + + // + // We are going to divide up our elliptical face into small + // pieces + // + + // + // Choose phi size of our segment(s) based on constants as + // defined in meshdefs.hh + // + G4int numPhi = kMaxMeshSections; + G4double sigPhi = 2*M_PI/numPhi; + + // + // We have to be careful to keep our segments completely outside + // of the elliptical surface. To do so we imagine we have + // a simple (unit radius) circular cross section (as in G4Tubs) + // and then "stretch" the dimensions as necessary to fit the ellipse. + // + G4double rFudge = 1.0/cos(0.5*sigPhi); + G4double dxFudge = dx*rFudge, + dyFudge = dy*rFudge; + + // + // As we work around the elliptical surface, we build + // a "phi" segment on the way, and keep track of two + // additional polygons for the two ends. + // + G4ClippablePolygon endPoly1, endPoly2, phiPoly; + + G4double phi = 0, + cosPhi = cos(phi), + sinPhi = sin(phi); + G4ThreeVector v0( dxFudge*cosPhi, dyFudge*sinPhi, +dz ), + v1( dxFudge*cosPhi, dyFudge*sinPhi, -dz ), + w0, w1; + transform.ApplyPointTransform( v0 ); + transform.ApplyPointTransform( v1 ); + do + { + phi += sigPhi; + if (numPhi == 1) phi = 0; // Try to avoid roundoff + cosPhi = cos(phi), + sinPhi = sin(phi); + + w0 = G4ThreeVector( dxFudge*cosPhi, dyFudge*sinPhi, +dz ); + w1 = G4ThreeVector( dxFudge*cosPhi, dyFudge*sinPhi, -dz ); + transform.ApplyPointTransform( w0 ); + transform.ApplyPointTransform( w1 ); + + // + // Add a point to our z ends + // + endPoly1.AddVertexInOrder( v0 ); + endPoly2.AddVertexInOrder( v1 ); + + // + // Build phi polygon + // + phiPoly.ClearAllVertices(); + + phiPoly.AddVertexInOrder( v0 ); + phiPoly.AddVertexInOrder( v1 ); + phiPoly.AddVertexInOrder( w1 ); + phiPoly.AddVertexInOrder( w0 ); + + if (phiPoly.PartialClip( voxelLimit, axis )) + { + // + // Get unit normal + // + phiPoly.SetNormal( (v1-v0).cross(w0-v0).unit() ); + + extentList.AddSurface( phiPoly ); + } - // - // Next vertex - // - v0 = w0; - v1 = w1; - } while( --numPhi > 0 ); + // + // Next vertex + // + v0 = w0; + v1 = w1; + } while( --numPhi > 0 ); - // - // Process the end pieces - // - if (endPoly1.PartialClip( voxelLimit, axis )) { - static const G4ThreeVector normal(0,0,+1); - endPoly1.SetNormal( transform.TransformAxis(normal) ); - extentList.AddSurface( endPoly1 ); - } - - if (endPoly2.PartialClip( voxelLimit, axis )) { - static const G4ThreeVector normal(0,0,-1); - endPoly2.SetNormal( transform.TransformAxis(normal) ); - extentList.AddSurface( endPoly2 ); - } - - // - // Return min/max value - // - return extentList.GetExtent( min, max ); + // + // Process the end pieces + // + if (endPoly1.PartialClip( voxelLimit, axis )) + { + static const G4ThreeVector normal(0,0,+1); + endPoly1.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( endPoly1 ); + } + + if (endPoly2.PartialClip( voxelLimit, axis )) + { + static const G4ThreeVector normal(0,0,-1); + endPoly2.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( endPoly2 ); + } + + // + // Return min/max value + // + return extentList.GetExtent( min, max ); } @@ -185,60 +193,60 @@ G4bool G4EllipticalTube::CalculateExtent( const EAxis axis, // surface as that which is bounded by ellipses with axes // at +/- 0.5*kCarTolerance. // -EInside G4EllipticalTube::Inside( const G4ThreeVector& p) const +EInside G4EllipticalTube::Inside( const G4ThreeVector& p ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - // - // Check z extents: are we outside? - // - G4double absZ = fabs(p.z()); - if (absZ > dz+halfTol) return kOutside; - - // - // Check x,y: are we outside? - // - // G4double x = p.x(), y = p.y(); - - if (CheckXY(p.x(), p.y(), +halfTol) > 1.0) return kOutside; - - // - // We are either inside or on the surface: recheck z extents - // - if (absZ > dz-halfTol) return kSurface; - - // - // Recheck x,y - // - if (CheckXY(p.x(), p.y(), -halfTol) > 1.0) return kSurface; - - return kInside; + static const G4double halfTol = 0.5*kCarTolerance; + + // + // Check z extents: are we outside? + // + G4double absZ = fabs(p.z()); + if (absZ > dz+halfTol) return kOutside; + + // + // Check x,y: are we outside? + // + // G4double x = p.x(), y = p.y(); + + if (CheckXY(p.x(), p.y(), +halfTol) > 1.0) return kOutside; + + // + // We are either inside or on the surface: recheck z extents + // + if (absZ > dz-halfTol) return kSurface; + + // + // Recheck x,y + // + if (CheckXY(p.x(), p.y(), -halfTol) > 1.0) return kSurface; + + return kInside; } // // SurfaceNormal // -G4ThreeVector G4EllipticalTube::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4EllipticalTube::SurfaceNormal( const G4ThreeVector& p ) const { - // - // Which of the three surfaces are we closest to (approximately)? - // - G4double distZ = fabs(p.z()) - dz; - - G4double rxy = CheckXY( p.x(), p.y() ); - G4double distR2 = (rxy < DBL_MIN) ? DBL_MAX : 1.0/rxy; + // + // Which of the three surfaces are we closest to (approximately)? + // + G4double distZ = fabs(p.z()) - dz; + + G4double rxy = CheckXY( p.x(), p.y() ); + G4double distR2 = (rxy < DBL_MIN) ? DBL_MAX : 1.0/rxy; - // - // Closer to z? - // - if (distZ*distZ < distR2) - return G4ThreeVector( 0.0, 0.0, p.z() < 0 ? -1.0 : 1.0 ); + // + // Closer to z? + // + if (distZ*distZ < distR2) + return G4ThreeVector( 0.0, 0.0, p.z() < 0 ? -1.0 : 1.0 ); - // - // Closer to x/y - // - return G4ThreeVector( p.x()*dy*dy, p.y()*dx*dx, 0.0 ).unit(); + // + // Closer to x/y + // + return G4ThreeVector( p.x()*dy*dy, p.y()*dx*dx, 0.0 ).unit(); } @@ -255,131 +263,143 @@ G4ThreeVector G4EllipticalTube::SurfaceNormal( const G4ThreeVector& p) const // negative if the point is currently on the surface. For oblique // angles, it can be very negative. // -G4double G4EllipticalTube::DistanceToIn( const G4ThreeVector& p,const G4ThreeVector& v ) const +G4double G4EllipticalTube::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - // - // Check z = -dz planer surface - // - G4double sigz = p.z()+dz; + static const G4double halfTol = 0.5*kCarTolerance; + + // + // Check z = -dz planer surface + // + G4double sigz = p.z()+dz; - if (sigz < halfTol) { - // - // We are "behind" the shape in z, and so can - // potentially hit the rear face. Correct direction? - // - if (v.z() <= 0) { - // - // As long as we are far enough away, we know we - // can't intersect - // - if (sigz < 0) return kInfinity; - - // - // Otherwise, we don't intersect unless we are - // on the surface of the ellipse - // - if (CheckXY(p.x(),p.y(),-halfTol) <= 1.0) return kInfinity; - } - else { + if (sigz < halfTol) + { + // + // We are "behind" the shape in z, and so can + // potentially hit the rear face. Correct direction? + // + if (v.z() <= 0) + { + // + // As long as we are far enough away, we know we + // can't intersect + // + if (sigz < 0) return kInfinity; + + // + // Otherwise, we don't intersect unless we are + // on the surface of the ellipse + // + if (CheckXY(p.x(),p.y(),-halfTol) <= 1.0) return kInfinity; + } + else + { + // + // How far? + // + G4double s = -sigz/v.z(); + + // + // Where does that place us? + // + G4double xi = p.x() + s*v.x(), + yi = p.y() + s*v.y(); + + // + // Is this on the surface (within ellipse)? + // + if (CheckXY(xi,yi) <= 1.0) + { + // + // Yup. Return s, unless we are on the surface + // + return (sigz < -halfTol) ? s : 0; + } + else if (xi*dy*dy*v.x() + yi*dx*dx*v.y() >= 0) + { + // + // Else, if we are traveling outwards, we know + // we must miss + // + return kInfinity; + } + } + } - // - // How far? - // - G4double s = -sigz/v.z(); - - // - // Where does that place us? - // - G4double xi = p.x() + s*v.x(), - yi = p.y() + s*v.y(); - - // - // Is this on the surface (within ellipse)? - // - if (CheckXY(xi,yi) <= 1.0) { - // - // Yup. Return s, unless we are on the surface - // - return (sigz < -halfTol) ? s : 0; - } - else if (xi*dy*dy*v.x() + yi*dx*dx*v.y() >= 0) { - // - // Else, if we are traveling outwards, we know - // we must miss - // - return kInfinity; - } - } - } + // + // Check z = +dz planer surface + // + sigz = p.z() - dz; + + if (sigz > -halfTol) + { + if (v.z() >= 0) + { + if (sigz > 0) return kInfinity; + if (CheckXY(p.x(),p.y(),-halfTol) <= 1.0) return kInfinity; + } + else { + G4double s = -sigz/v.z(); - // - // Check z = +dz planer surface - // - sigz = p.z() - dz; - - if (sigz > -halfTol) { - if (v.z() >= 0) { - if (sigz > 0) return kInfinity; - if (CheckXY(p.x(),p.y(),-halfTol) <= 1.0) return kInfinity; - } - else { - G4double s = -sigz/v.z(); + G4double xi = p.x() + s*v.x(), + yi = p.y() + s*v.y(); + + if (CheckXY(xi,yi) <= 1.0) + { + return (sigz > -halfTol) ? s : 0; + } + else if (xi*dy*dy*v.x() + yi*dx*dx*v.y() >= 0) + { + return kInfinity; + } + } + } + + // + // Check intersection with the elliptical tube + // + G4double s[2]; + G4int n = IntersectXY( p, v, s ); + + if (n==0) return kInfinity; + + // + // Is the original point on the surface? + // + if (fabs(p.z()) < dz+halfTol) { + if (CheckXY( p.x(), p.y(), halfTol ) < 1.0) + { + // + // Well, yes, but are we traveling inwards at this point? + // + if (p.x()*dy*dy*v.x() + p.y()*dx*dx*v.y() < 0) return 0; + } + } + + // + // We are now certain that point p is not on the surface of + // the solid (and thus fabs(s[0]) > halfTol). + // Return kInfinity if the intersection is "behind" the point. + // + if (s[0] < 0) return kInfinity; + + // + // Check to see if we intersect the tube within + // dz, but only when we know it might miss + // + G4double zi = p.z() + s[0]*v.z(); - G4double xi = p.x() + s*v.x(), - yi = p.y() + s*v.y(); - - if (CheckXY(xi,yi) <= 1.0) { - return (sigz > -halfTol) ? s : 0; - } - else if (xi*dy*dy*v.x() + yi*dx*dx*v.y() >= 0) { - return kInfinity; - } - } - } - - // - // Check intersection with the elliptical tube - // - G4double s[2]; - G4int n = IntersectXY( p, v, s ); - - if (n==0) return kInfinity; - - // - // Is the original point on the surface? - // - if (fabs(p.z()) < dz+halfTol) { - if (CheckXY( p.x(), p.y(), halfTol ) < 1.0) { - // - // Well, yes, but are we traveling inwards at this point? - // - if (p.x()*dy*dy*v.x() + p.y()*dx*dx*v.y() < 0) return 0; - } - } - - // - // We are now certain that point p is not on the surface of - // the solid (and thus fabs(s[0]) > halfTol). - // Return kInfinity if the intersection is "behind" the point. - // - if (s[0] < 0) return kInfinity; - - // - // Check to see if we intersect the tube within - // dz, but only when we know it might miss - // - G4double zi = p.z() + s[0]*v.z(); + if (v.z() < 0) + { + if (zi < -dz) return kInfinity; + } + else if (v.z() > 0) + { + if (zi > +dz) return kInfinity; + } - if (v.z() < 0) { - if (zi < -dz) return kInfinity; - } - else if (v.z() > 0) { - if (zi > +dz) return kInfinity; - } - - return s[0]; + return s[0]; } @@ -403,55 +423,56 @@ G4double G4EllipticalTube::DistanceToIn( const G4ThreeVector& p,const G4ThreeVec // G4double G4EllipticalTube::DistanceToIn( const G4ThreeVector& p ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - if (CheckXY( p.x(), p.y(), +halfTol ) < 1.0) { - // - // We are inside or on the surface of the - // elliptical cross section in x/y. Check z - // - if (p.z() < -dz-halfTol) - return -p.z()-dz; - else if (p.z() > dz+halfTol) - return p.z()-dz; - else - return 0; // On any surface here (or inside) - } - - // - // Find point on ellipse - // - G4double qnorm = CheckXY( p.x(), p.y() ); - if (qnorm < DBL_MIN) return 0; // This should never happen - - G4double q = 1.0/sqrt(qnorm); - - G4double xe = q*p.x(), ye = q*p.y(); - - // - // Get tangent to ellipse - // - G4double tx = -ye*dx*dx, ty = +xe*dy*dy; - G4double tnorm = sqrt( tx*tx + ty*ty ); - - // - // Calculate distance - // - G4double distR = ( (p.x()-xe)*ty - (p.y()-ye)*tx )/tnorm; - - // - // Add the result in quadrature if we are, in addition, - // outside the z bounds of the shape - // - // We could save some time by returning the maximum rather - // than the quadrature sum - // - if (p.z() < -dz) - return sqrt( (p.z()+dz)*(p.z()+dz) + distR*distR ); - else if (p.z() > dz) - return sqrt( (p.z()-dz)*(p.z()-dz) + distR*distR ); + static const G4double halfTol = 0.5*kCarTolerance; + + if (CheckXY( p.x(), p.y(), +halfTol ) < 1.0) + { + // + // We are inside or on the surface of the + // elliptical cross section in x/y. Check z + // + if (p.z() < -dz-halfTol) + return -p.z()-dz; + else if (p.z() > dz+halfTol) + return p.z()-dz; + else + return 0; // On any surface here (or inside) + } + + // + // Find point on ellipse + // + G4double qnorm = CheckXY( p.x(), p.y() ); + if (qnorm < DBL_MIN) return 0; // This should never happen + + G4double q = 1.0/sqrt(qnorm); + + G4double xe = q*p.x(), ye = q*p.y(); + + // + // Get tangent to ellipse + // + G4double tx = -ye*dx*dx, ty = +xe*dy*dy; + G4double tnorm = sqrt( tx*tx + ty*ty ); + + // + // Calculate distance + // + G4double distR = ( (p.x()-xe)*ty - (p.y()-ye)*tx )/tnorm; + + // + // Add the result in quadrature if we are, in addition, + // outside the z bounds of the shape + // + // We could save some time by returning the maximum rather + // than the quadrature sum + // + if (p.z() < -dz) + return sqrt( (p.z()+dz)*(p.z()+dz) + distR*distR ); + else if (p.z() > dz) + return sqrt( (p.z()-dz)*(p.z()-dz) + distR*distR ); - return distR; + return distR; } @@ -463,103 +484,125 @@ G4double G4EllipticalTube::DistanceToIn( const G4ThreeVector& p ) const // the most important of which is that one can treat the surfaces // as infinite in extent when deciding if the p is on the surface. // -G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm,G4ThreeVector *norm ) const +G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *norm ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - // - // Our normal is always valid - // - if (calcNorm) *validNorm = true; - - G4double sBest = kInfinity; - const G4ThreeVector *nBest=0; - - // - // Might we intersect the -dz surface? - // - if (v.z() < 0) { - static const G4ThreeVector normHere(0.0,0.0,-1.0); - // - // Yup. What distance? - // - sBest = -(p.z()+dz)/v.z(); - - // - // Are we on the surface? If so, return zero - // - if (p.z() < -dz+halfTol) { - if (calcNorm) *norm = normHere; - return 0; - } - else - nBest = &normHere; - } - - // - // How about the +dz surface? - // - if (v.z() > 0) { - static const G4ThreeVector normHere(0.0,0.0,+1.0); - // - // Yup. What distance? - // - G4double s = (dz-p.z())/v.z(); - - // - // Are we on the surface? If so, return zero - // - if (p.z() > +dz-halfTol) { - if (calcNorm) *norm = normHere; - return 0; - } - - // - // Best so far? - // - if (s < sBest) { sBest = s; nBest = &normHere; } - } - - // - // Check furthest intersection with ellipse - // - G4double s[2]; - G4int n = IntersectXY( p, v, s ); + static const G4double halfTol = 0.5*kCarTolerance; + + // + // Our normal is always valid + // + if (calcNorm) *validNorm = true; + + G4double sBest = kInfinity; + const G4ThreeVector *nBest=0; + + // + // Might we intersect the -dz surface? + // + if (v.z() < 0) + { + static const G4ThreeVector normHere(0.0,0.0,-1.0); + // + // Yup. What distance? + // + sBest = -(p.z()+dz)/v.z(); + + // + // Are we on the surface? If so, return zero + // + if (p.z() < -dz+halfTol) { + if (calcNorm) *norm = normHere; + return 0; + } + else + nBest = &normHere; + } + + // + // How about the +dz surface? + // + if (v.z() > 0) + { + static const G4ThreeVector normHere(0.0,0.0,+1.0); + // + // Yup. What distance? + // + G4double s = (dz-p.z())/v.z(); + + // + // Are we on the surface? If so, return zero + // + if (p.z() > +dz-halfTol) { + if (calcNorm) *norm = normHere; + return 0; + } + + // + // Best so far? + // + if (s < sBest) { sBest = s; nBest = &normHere; } + } + + // + // Check furthest intersection with ellipse + // + G4double s[2]; + G4int n = IntersectXY( p, v, s ); - if (n == 0) { - if (sBest == kInfinity) - G4Exception( "G4EllipticalTube::DistanceToOut - Point is outside" ); - - if (calcNorm) *norm = *nBest; - return sBest; - } - else if (s[n-1] > sBest) { - if (calcNorm) *norm = *nBest; - return sBest; - } - sBest = s[n-1]; - - // - // Intersection with ellipse. Get normal at intersection point. - // - if (calcNorm) { - G4ThreeVector ip = p + sBest*v; - *norm = G4ThreeVector( ip.x()*dy*dy, ip.y()*dx*dx, 0.0 ).unit(); - } - - // - // Do we start on the surface? - // - if (CheckXY( p.x(), p.y(), -halfTol ) > 1.0) { - // - // Well, yes, but are we traveling outwards at this point? - // - if (p.x()*dy*dy*v.x() + p.y()*dx*dx*v.y() > 0) return 0; - } - - return sBest; + if (n == 0) + { + if (sBest == kInfinity) + { + G4cout.precision(16) ; + G4cout << G4endl ; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl ; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; + G4cout << "Direction:" << G4endl << G4endl; + G4cout << "v.x() = " << v.x() << G4endl; + G4cout << "v.y() = " << v.y() << G4endl; + G4cout << "v.z() = " << v.z() << G4endl << G4endl; + G4cout << "Proposed distance :" << G4endl << G4endl; + G4cout << "snxt = " << sBest/mm << " mm" << G4endl << G4endl; + G4Exception( "G4EllipticalTube::DistanceToOut() - Point p is outside" ); + } + if (calcNorm) *norm = *nBest; + return sBest; + } + else if (s[n-1] > sBest) + { + if (calcNorm) *norm = *nBest; + return sBest; + } + sBest = s[n-1]; + + // + // Intersection with ellipse. Get normal at intersection point. + // + if (calcNorm) + { + G4ThreeVector ip = p + sBest*v; + *norm = G4ThreeVector( ip.x()*dy*dy, ip.y()*dx*dx, 0.0 ).unit(); + } + + // + // Do we start on the surface? + // + if (CheckXY( p.x(), p.y(), -halfTol ) > 1.0) + { + // + // Well, yes, but are we traveling outwards at this point? + // + if (p.x()*dy*dy*v.x() + p.y()*dx*dx*v.y() > 0) return 0; + } + + return sBest; } @@ -577,57 +620,57 @@ G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p,const G4ThreeVe // G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - // - // We need to calculate the distances to all surfaces, - // and then return the smallest - // - // Check -dz and +dz surface - // - G4double sBest = dz - fabs(p.z()); - if (sBest < halfTol) return 0; - - // - // Check elliptical surface: find intersection of - // line through p and parallel to x axis - // - G4double radical = 1.0 - p.y()*p.y()/dy/dy; - if (radical < +DBL_MIN) return 0; - - G4double xi = dx*sqrt( radical ); - if (p.x() < 0) xi = -xi; - - // - // Do the same with y axis - // - radical = 1.0 - p.x()*p.x()/dx/dx; - if (radical < +DBL_MIN) return 0; - - G4double yi = dy*sqrt( radical ); - if (p.y() < 0) yi = -yi; - - // - // Get distance from p to the line connecting - // these two points - // - G4double xdi = p.x() - xi, - ydi = yi - p.y(); + static const G4double halfTol = 0.5*kCarTolerance; + + // + // We need to calculate the distances to all surfaces, + // and then return the smallest + // + // Check -dz and +dz surface + // + G4double sBest = dz - fabs(p.z()); + if (sBest < halfTol) return 0; + + // + // Check elliptical surface: find intersection of + // line through p and parallel to x axis + // + G4double radical = 1.0 - p.y()*p.y()/dy/dy; + if (radical < +DBL_MIN) return 0; + + G4double xi = dx*sqrt( radical ); + if (p.x() < 0) xi = -xi; + + // + // Do the same with y axis + // + radical = 1.0 - p.x()*p.x()/dx/dx; + if (radical < +DBL_MIN) return 0; + + G4double yi = dy*sqrt( radical ); + if (p.y() < 0) yi = -yi; + + // + // Get distance from p to the line connecting + // these two points + // + G4double xdi = p.x() - xi, + ydi = yi - p.y(); - G4double normi = sqrt( xdi*xdi + ydi*ydi ); - if (normi < halfTol) return 0; - xdi /= normi; - ydi /= normi; - - G4double s = 0.5*(xdi*(p.y()-yi) - ydi*(p.x()-xi)); - if (xi*yi < 0) s = -s; - - if (s < sBest) sBest = s; - - // - // Return best answer - // - return sBest < halfTol ? 0 : sBest; + G4double normi = sqrt( xdi*xdi + ydi*ydi ); + if (normi < halfTol) return 0; + xdi /= normi; + ydi /= normi; + + G4double s = 0.5*(xdi*(p.y()-yi) - ydi*(p.x()-xi)); + if (xi*yi < 0) s = -s; + + if (s < sBest) sBest = s; + + // + // Return best answer + // + return sBest < halfTol ? 0 : sBest; } @@ -636,11 +679,42 @@ G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p ) const // G4Polyhedron* G4EllipticalTube::CreatePolyhedron() const { - // create cylinder with radius=1... - G4Polyhedron* eTube = new G4PolyhedronTube(0.,1.,dz); - // apply non-uniform scaling... - eTube->Transform(G4Scale3D(dx,dy,1.)); - return eTube; + // create cylinder with radius=1... + // + G4Polyhedron* eTube = new G4PolyhedronTube(0.,1.,dz); + + // apply non-uniform scaling... + // + eTube->Transform(G4Scale3D(dx,dy,1.)); + return eTube; +} + + +// +// GetEntityType +// +G4GeometryType G4EllipticalTube::GetEntityType() const +{ + return G4String("G4EllipticalTube"); +} + + +// +// Stream object contents to an output stream +// +G4std::ostream& G4EllipticalTube::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4EllipticalTube\n" + << " Parameters: \n" + << " length Z: " << dz/mm << " mm \n" + << " surface equation in X and Y: \n" + << " (X / " << dx << ")^2 + (Y / " << dy << ")^2 = 1 \n" + << "-----------------------------------------------------------\n"; + + return os; } @@ -649,7 +723,7 @@ G4Polyhedron* G4EllipticalTube::CreatePolyhedron() const // void G4EllipticalTube::DescribeYourselfTo( G4VGraphicsScene& scene ) const { - scene.AddThis (*this); + scene.AddThis (*this); } @@ -658,7 +732,7 @@ void G4EllipticalTube::DescribeYourselfTo( G4VGraphicsScene& scene ) const // G4VisExtent G4EllipticalTube::GetExtent() const { - return G4VisExtent( -dx, dx, -dy, dy, -dz, dz ); + return G4VisExtent( -dx, dx, -dy, dy, -dz, dz ); } @@ -688,34 +762,36 @@ G4VisExtent G4EllipticalTube::GetExtent() const // c = (p.x/dx)**2 + (p.y/dy)**2 - 1 // G4int G4EllipticalTube::IntersectXY( const G4ThreeVector &p, - const G4ThreeVector &v, G4double s[2] ) const + const G4ThreeVector &v, + G4double s[2] ) const { - G4double px = p.x(), py = p.y(); - G4double vx = v.x(), vy = v.y(); - - G4double a = (vx/dx)*(vx/dx) + (vy/dy)*(vy/dy); - G4double b = 2.0*( px*vx/dx/dx + py*vy/dy/dy ); - G4double c = (px/dx)*(px/dx) + (py/dy)*(py/dy) - 1.0; - - if (a < DBL_MIN) return 0; // Trajectory parallel to z axis - - G4double radical = b*b - 4*a*c; - - if (radical < -DBL_MIN) return 0; // No solution - - if (radical < DBL_MIN) { - // - // Grazes surface - // - s[0] = -b/a/2.0; - return 1; - } - - radical = sqrt(radical); - - G4double q = -0.5*( b + (b < 0 ? -radical : +radical) ); - G4double sa = q/a; - G4double sb = c/q; - if (sa < sb) { s[0] = sa; s[1] = sb; } else { s[0] = sb; s[1] = sa; } - return 2; + G4double px = p.x(), py = p.y(); + G4double vx = v.x(), vy = v.y(); + + G4double a = (vx/dx)*(vx/dx) + (vy/dy)*(vy/dy); + G4double b = 2.0*( px*vx/dx/dx + py*vy/dy/dy ); + G4double c = (px/dx)*(px/dx) + (py/dy)*(py/dy) - 1.0; + + if (a < DBL_MIN) return 0; // Trajectory parallel to z axis + + G4double radical = b*b - 4*a*c; + + if (radical < -DBL_MIN) return 0; // No solution + + if (radical < DBL_MIN) + { + // + // Grazes surface + // + s[0] = -b/a/2.0; + return 1; + } + + radical = sqrt(radical); + + G4double q = -0.5*( b + (b < 0 ? -radical : +radical) ); + G4double sa = q/a; + G4double sb = c/q; + if (sa < sb) { s[0] = sa; s[1] = sb; } else { s[0] = sb; s[1] = sa; } + return 2; } diff --git a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc index 647006ec39..065c8a1dad 100644 --- a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc +++ b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnclosingCylinder.cc,v 1.3 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EnclosingCylinder.cc,v 1.5 2002/10/30 13:52:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -42,51 +42,52 @@ // Constructor // G4EnclosingCylinder::G4EnclosingCylinder( const G4ReduciblePolygon *rz, - G4bool thePhiIsOpen, - G4double theStartPhi, - G4double theTotalPhi ) + G4bool thePhiIsOpen, + G4double theStartPhi, + G4double theTotalPhi ) + : startPhi(theStartPhi), totalPhi(theTotalPhi), + rx1(0.), ry1(0.), dx1(0.), dy1(0.), + rx2(0.), ry2(0.), dx2(0.), dy2(0.), + concave(theTotalPhi > M_PI) { - // - // Obtain largest r and smallest and largest z - // - radius = rz->Amax(); - zHi = rz->Bmax(); - zLo = rz->Bmin(); - - // - // Save phi info - // - phiIsOpen = thePhiIsOpen; - if ( phiIsOpen ) - { - startPhi = theStartPhi; - totalPhi = theTotalPhi; - - rx1 = cos(startPhi); - ry1 = sin(startPhi); - dx1 = +ry1*10*kCarTolerance; - dy1 = -rx1*10*kCarTolerance; - - rx2 = cos(startPhi+totalPhi); - ry2 = sin(startPhi+totalPhi); - dx2 = -ry2*10*kCarTolerance; - dy2 = +rx2*10*kCarTolerance; - - concave = totalPhi > M_PI; - } - - // - // Add safety - // - radius += 10*kCarTolerance; - zLo -= 10*kCarTolerance; - zHi += 10*kCarTolerance; + // + // Obtain largest r and smallest and largest z + // + radius = rz->Amax(); + zHi = rz->Bmax(); + zLo = rz->Bmin(); + + // + // Save phi info + // + phiIsOpen = thePhiIsOpen; + if ( phiIsOpen ) + { + rx1 = cos(startPhi); + ry1 = sin(startPhi); + dx1 = +ry1*10*kCarTolerance; + dy1 = -rx1*10*kCarTolerance; + + rx2 = cos(startPhi+totalPhi); + ry2 = sin(startPhi+totalPhi); + dx2 = -ry2*10*kCarTolerance; + dy2 = +rx2*10*kCarTolerance; + } + + // + // Add safety + // + radius += 10*kCarTolerance; + zLo -= 10*kCarTolerance; + zHi += 10*kCarTolerance; } // // Destructor // -G4EnclosingCylinder::~G4EnclosingCylinder() {;} +G4EnclosingCylinder::~G4EnclosingCylinder() +{ +} // @@ -98,25 +99,28 @@ G4EnclosingCylinder::~G4EnclosingCylinder() {;} // G4bool G4EnclosingCylinder::MustBeOutside( const G4ThreeVector &p ) const { - if (p.perp() > radius) return true; - if (p.z() < zLo) return true; - if (p.z() > zHi) return true; + if (p.perp() > radius) return true; + if (p.z() < zLo) return true; + if (p.z() > zHi) return true; - if (phiIsOpen) { - if (concave) { - if ( ((p.x()-dx1)*ry1 - (p.y()-dy1)*rx1) < 0) return false; - if ( ((p.x()-dx2)*ry2 - (p.y()-dy2)*rx2) > 0) return false; - } - else { - if ( ((p.x()-dx1)*ry1 - (p.y()-dy1)*rx1) > 0) return true; - if ( ((p.x()-dx2)*ry2 - (p.y()-dy2)*rx2) < 0) return true; - } - } - - return false; + if (phiIsOpen) + { + if (concave) + { + if ( ((p.x()-dx1)*ry1 - (p.y()-dy1)*rx1) < 0) return false; + if ( ((p.x()-dx2)*ry2 - (p.y()-dy2)*rx2) > 0) return false; + } + else + { + if ( ((p.x()-dx1)*ry1 - (p.y()-dy1)*rx1) > 0) return true; + if ( ((p.x()-dx2)*ry2 - (p.y()-dy2)*rx2) < 0) return true; + } + } + + return false; } - - + + // // Misses // @@ -124,17 +128,19 @@ G4bool G4EnclosingCylinder::MustBeOutside( const G4ThreeVector &p ) const // // If one is not sure, return false // -G4bool G4EnclosingCylinder::ShouldMiss( const G4ThreeVector &p, const G4ThreeVector &v ) const +G4bool G4EnclosingCylinder::ShouldMiss( const G4ThreeVector &p, + const G4ThreeVector &v ) const { - if (!MustBeOutside(p)) return false; - - G4double cross = p.x()*v.y() - p.y()*v.x(); - if (cross > radius) return true; - - if (p.perp() > radius) { - G4double dot = p.x()*v.x() + p.y()*v.y(); - if (dot > 0) return true; - } + if (!MustBeOutside(p)) return false; + + G4double cross = p.x()*v.y() - p.y()*v.x(); + if (cross > radius) return true; + + if (p.perp() > radius) + { + G4double dot = p.x()*v.x() + p.y()*v.y(); + if (dot > 0) return true; + } - return false; -} + return false; +} diff --git a/source/geometry/solids/specific/src/G4Hype.cc b/source/geometry/solids/specific/src/G4Hype.cc index 0e3b3d80f8..eadd2c6786 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.7 2001/07/11 10:00:16 gunter Exp $ +// $Id: G4Hype.cc,v 1.9 2002/10/28 15:18:40 gcosmo Exp $ // $Original: G4Hype.cc,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -70,58 +70,98 @@ // Constructor - check parameters, and fills protected data members G4Hype::G4Hype(const G4String& pName, - G4double newInnerRadius, - G4double newOuterRadius, - G4double newInnerStereo, - G4double newOuterStereo, - G4double newHalfLenZ) : G4VSolid(pName) + G4double newInnerRadius, + G4double newOuterRadius, + G4double newInnerStereo, + G4double newOuterStereo, + G4double newHalfLenZ) + : G4VSolid(pName) { -// Check z-len - if (newHalfLenZ>0) - { - halfLenZ=newHalfLenZ; - } - else - { - G4Exception("Error in G4Hype::G4Hype - invalid z half-length"); - } + // Check z-len + // + if (newHalfLenZ>0) + { + halfLenZ=newHalfLenZ; + } + else + { + G4cout << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl + << " Invalid Z half-length: " + << newHalfLenZ/mm << " mm" << G4endl; + G4cerr << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl + << " Invalid Z half-length: " + << newHalfLenZ/mm << " mm" << G4endl; + G4Exception("G4Hype::G4Hype() - invalid Z half-length"); + } -// Check radii - if (newInnerRadius>=0 && newOuterRadius>=0) - if (newInnerRadius < newOuterRadius) { - innerRadius=newInnerRadius; - outerRadius=newOuterRadius; - } - else { // swapping radii (:-) -// innerRadius=newOuterRadius; -// outerRadius=newInnerRadius; -// DCW: swapping is fine, but what about the stereo angles??? - G4Exception( "Error in G4Hype::G4Hype outer > inner radius" ); - } + // Check radii + // + if (newInnerRadius>=0 && newOuterRadius>=0) + { + if (newInnerRadius < newOuterRadius) + { + innerRadius=newInnerRadius; + outerRadius=newOuterRadius; + } else - { - G4Exception("Error in G4Hype::G4Hype - invalid radii"); - } - + { // swapping radii (:-) + // innerRadius=newOuterRadius; + // outerRadius=newInnerRadius; + // DCW: swapping is fine, but what about the stereo angles??? - innerRadius2=innerRadius*innerRadius; - outerRadius2=outerRadius*outerRadius; + G4cout << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl + << " Invalid radii ! Inner radius: " + << newInnerRadius/mm << " mm" << G4endl + << " Outer radius: " + << newOuterRadius/mm << " mm" << G4endl; + G4cerr << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl + << " Invalid radii ! Inner radius: " + << newInnerRadius/mm << " mm" << G4endl + << " Outer radius: " + << newOuterRadius/mm << " mm" << G4endl; + G4Exception("G4Hype::G4Hype() - outer > inner radius"); + } + } + else + { + G4cout << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl + << " Invalid radii ! Inner radius: " + << newInnerRadius/mm << " mm" << G4endl + << " Outer radius: " + << newOuterRadius/mm << " mm" << G4endl; + G4cerr << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl + << " Invalid radii ! Inner radius: " + << newInnerRadius/mm << " mm" << G4endl + << " Outer radius: " + << newOuterRadius/mm << " mm" << G4endl; + G4Exception("G4Hype::G4Hype() - invalid radii"); + } + + innerRadius2=innerRadius*innerRadius; + outerRadius2=outerRadius*outerRadius; - SetInnerStereo( newInnerStereo ); - SetOuterStereo( newOuterStereo ); + SetInnerStereo( newInnerStereo ); + SetOuterStereo( newOuterStereo ); } -// Destructor -G4Hype::~G4Hype() -{;} +// +// Destructor +// +G4Hype::~G4Hype() +{ +} + + +// // Dispatch to parameterisation for replication mechanism dimension // computation & modification. - void G4Hype::ComputeDimensions(G4VPVParameterisation* p, +// +void G4Hype::ComputeDimensions(G4VPVParameterisation* p, const G4int n, const G4VPhysicalVolume* pRep) { - p->ComputeDimensions(*this,n,pRep); + p->ComputeDimensions(*this,n,pRep); } @@ -129,229 +169,261 @@ G4Hype::~G4Hype() // CalculateExtent // G4bool G4Hype::CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &transform, - G4double &min, G4double &max ) const + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4double &min, G4double &max ) const { - G4SolidExtentList extentList( axis, voxelLimit ); - - // - // Choose phi size of our segment(s) based on constants as - // defined in meshdefs.hh - // - G4int numPhi = kMaxMeshSections; - G4double sigPhi = 2*M_PI/numPhi; - G4double rFudge = 1.0/cos(0.5*sigPhi); - - // - // We work around in phi building polygons along the way. - // As a reasonable compromise between accuracy and - // complexity (=cpu time), the following facets are chosen: - // - // 1. If outerRadius/endOuterRadius > 0.95, approximate - // the outer surface as a cylinder, and use one - // rectangular polygon (0-1) to build its mesh. - // - // Otherwise, use two trapazoidal polygons that - // meet at z = 0 (0-4-1) - // - // 2. If there is no inner surface, then use one - // polygon for each entire endcap. (0) and (1) - // - // Otherwise, use a trapazoidal polygon for each - // phi segment of each endcap. (0-2) and (1-3) - // - // 3. For the inner surface, if innerRadius/endInnerRadius > 0.95, - // approximate the inner surface as a cylinder of - // radius innerRadius and use one rectangular polygon - // to build each phi segment of its mesh. (2-3) - // - // Otherwise, use one rectangular polygon centered - // at z = 0 (5-6) and two connecting trapazoidal polygons - // for each phi segment (2-5) and (3-6). - // - - G4bool splitOuter = (outerRadius/endOuterRadius < 0.95); - G4bool splitInner = 0; - if (InnerSurfaceExists()) { - splitInner = (innerRadius/endInnerRadius < 0.95); - } - - // - // Vertex assignments (v and w arrays) - // [0] and [1] are mandatory - // the rest are optional - // - // + - - // [0]------[4]------[1] <--- outer radius - // | | - // | | - // [2]---[5]---[6]---[3] <--- inner radius - // + G4SolidExtentList extentList( axis, voxelLimit ); + + // + // Choose phi size of our segment(s) based on constants as + // defined in meshdefs.hh + // + G4int numPhi = kMaxMeshSections; + G4double sigPhi = 2*M_PI/numPhi; + G4double rFudge = 1.0/cos(0.5*sigPhi); + + // + // We work around in phi building polygons along the way. + // As a reasonable compromise between accuracy and + // complexity (=cpu time), the following facets are chosen: + // + // 1. If outerRadius/endOuterRadius > 0.95, approximate + // the outer surface as a cylinder, and use one + // rectangular polygon (0-1) to build its mesh. + // + // Otherwise, use two trapazoidal polygons that + // meet at z = 0 (0-4-1) + // + // 2. If there is no inner surface, then use one + // polygon for each entire endcap. (0) and (1) + // + // Otherwise, use a trapazoidal polygon for each + // phi segment of each endcap. (0-2) and (1-3) + // + // 3. For the inner surface, if innerRadius/endInnerRadius > 0.95, + // approximate the inner surface as a cylinder of + // radius innerRadius and use one rectangular polygon + // to build each phi segment of its mesh. (2-3) + // + // Otherwise, use one rectangular polygon centered + // at z = 0 (5-6) and two connecting trapazoidal polygons + // for each phi segment (2-5) and (3-6). + // + + G4bool splitOuter = (outerRadius/endOuterRadius < 0.95); + G4bool splitInner = 0; + if (InnerSurfaceExists()) + { + splitInner = (innerRadius/endInnerRadius < 0.95); + } + + // + // Vertex assignments (v and w arrays) + // [0] and [1] are mandatory + // the rest are optional + // + // + - + // [0]------[4]------[1] <--- outer radius + // | | + // | | + // [2]---[5]---[6]---[3] <--- inner radius + // - G4ClippablePolygon endPoly1, endPoly2; - - G4double phi = 0, - cosPhi = cos(phi), - sinPhi = sin(phi); - G4ThreeVector v0( rFudge*endOuterRadius*cosPhi, rFudge*endOuterRadius*sinPhi, +halfLenZ ), - v1( rFudge*endOuterRadius*cosPhi, rFudge*endOuterRadius*sinPhi, -halfLenZ ), - v2, v3, v4, v5, v6, - w0, w1, w2, w3, w4, w5, w6; - transform.ApplyPointTransform( v0 ); - transform.ApplyPointTransform( v1 ); - - G4double zInnerSplit=0.; - if (InnerSurfaceExists()) { - if (splitInner) { - v2 = transform.TransformPoint( - G4ThreeVector( endInnerRadius*cosPhi, endInnerRadius*sinPhi, +halfLenZ ) ); - v3 = transform.TransformPoint( - G4ThreeVector( endInnerRadius*cosPhi, endInnerRadius*sinPhi, -halfLenZ ) ); + G4ClippablePolygon endPoly1, endPoly2; + + G4double phi = 0, + cosPhi = cos(phi), + sinPhi = sin(phi); + G4ThreeVector v0( rFudge*endOuterRadius*cosPhi, + rFudge*endOuterRadius*sinPhi, + +halfLenZ ), + v1( rFudge*endOuterRadius*cosPhi, + rFudge*endOuterRadius*sinPhi, + -halfLenZ ), + v2, v3, v4, v5, v6, + w0, w1, w2, w3, w4, w5, w6; + transform.ApplyPointTransform( v0 ); + transform.ApplyPointTransform( v1 ); + + G4double zInnerSplit=0.; + if (InnerSurfaceExists()) + { + if (splitInner) + { + v2 = transform.TransformPoint( + G4ThreeVector( endInnerRadius*cosPhi, + endInnerRadius*sinPhi, +halfLenZ ) ); + v3 = transform.TransformPoint( + G4ThreeVector( endInnerRadius*cosPhi, + endInnerRadius*sinPhi, -halfLenZ ) ); + // + // Find intersection of line normal to inner + // surface at z = halfLenZ and line r=innerRadius + // + G4double rn = halfLenZ*tanInnerStereo2; + G4double zn = endInnerRadius; - // - // Find intersection of line normal to inner - // surface at z = halfLenZ and line r=innerRadius - // - G4double rn = halfLenZ*tanInnerStereo2; - G4double zn = endInnerRadius; + zInnerSplit = halfLenZ + (innerRadius - endInnerRadius)*zn/rn; - zInnerSplit = halfLenZ + (innerRadius - endInnerRadius)*zn/rn; + // + // Build associated vertices + // + v5 = transform.TransformPoint( + G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, +zInnerSplit ) ); + v6 = transform.TransformPoint( + G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, -zInnerSplit ) ); + } + else + { + v2 = transform.TransformPoint( + G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, +halfLenZ ) ); + v3 = transform.TransformPoint( + G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, -halfLenZ ) ); + } + } + + if (splitOuter) + { + v4 = transform.TransformPoint( + G4ThreeVector( rFudge*outerRadius*cosPhi, + rFudge*outerRadius*sinPhi, 0 ) ); + } + + // + // Loop over phi segments + // + do + { + phi += sigPhi; + if (numPhi == 1) phi = 0; // Try to avoid roundoff + cosPhi = cos(phi), + sinPhi = sin(phi); + + G4double r(rFudge*endOuterRadius); + w0 = G4ThreeVector( r*cosPhi, r*sinPhi, +halfLenZ ); + w1 = G4ThreeVector( r*cosPhi, r*sinPhi, -halfLenZ ); + transform.ApplyPointTransform( w0 ); + transform.ApplyPointTransform( w1 ); + + // + // Outer hyperbolic surface + // + if (splitOuter) + { + r = rFudge*outerRadius; + w4 = G4ThreeVector( r*cosPhi, r*sinPhi, 0 ); + transform.ApplyPointTransform( w4 ); + + AddPolyToExtent( v0, v4, w4, w0, voxelLimit, axis, extentList ); + AddPolyToExtent( v4, v1, w1, w4, voxelLimit, axis, extentList ); + } + else + { + AddPolyToExtent( v0, v1, w1, w0, voxelLimit, axis, extentList ); + } + + if (InnerSurfaceExists()) + { + // + // Inner hyperbolic surface + // + if (splitInner) + { + w2 = G4ThreeVector( endInnerRadius*cosPhi, + endInnerRadius*sinPhi, +halfLenZ ); + w3 = G4ThreeVector( endInnerRadius*cosPhi, + endInnerRadius*sinPhi, -halfLenZ ); + transform.ApplyPointTransform( w2 ); + transform.ApplyPointTransform( w3 ); - // - // Build associated vertices - // - v5 = transform.TransformPoint( - G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, +zInnerSplit ) ); - v6 = transform.TransformPoint( - G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, -zInnerSplit ) ); - } - else { - v2 = transform.TransformPoint( - G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, +halfLenZ ) ); - v3 = transform.TransformPoint( - G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, -halfLenZ ) ); - } - } - - if (splitOuter) { - v4 = transform.TransformPoint( - G4ThreeVector( rFudge*outerRadius*cosPhi, rFudge*outerRadius*sinPhi, 0 ) ); - } - - // - // Loop over phi segments - // - do { - phi += sigPhi; - if (numPhi == 1) phi = 0; // Try to avoid roundoff - cosPhi = cos(phi), - sinPhi = sin(phi); - - G4double r(rFudge*endOuterRadius); - w0 = G4ThreeVector( r*cosPhi, r*sinPhi, +halfLenZ ); - w1 = G4ThreeVector( r*cosPhi, r*sinPhi, -halfLenZ ); - transform.ApplyPointTransform( w0 ); - transform.ApplyPointTransform( w1 ); - - // - // Outer hyperbolic surface - // - if (splitOuter) { - r = rFudge*outerRadius; - w4 = G4ThreeVector( r*cosPhi, r*sinPhi, 0 ); - transform.ApplyPointTransform( w4 ); - - AddPolyToExtent( v0, v4, w4, w0, voxelLimit, axis, extentList ); - AddPolyToExtent( v4, v1, w1, w4, voxelLimit, axis, extentList ); - } - else { - AddPolyToExtent( v0, v1, w1, w0, voxelLimit, axis, extentList ); - } - - if (InnerSurfaceExists()) { - - // - // Inner hyperbolic surface - // - if (splitInner) { - w2 = G4ThreeVector( endInnerRadius*cosPhi, endInnerRadius*sinPhi, +halfLenZ ); - w3 = G4ThreeVector( endInnerRadius*cosPhi, endInnerRadius*sinPhi, -halfLenZ ); - transform.ApplyPointTransform( w2 ); - transform.ApplyPointTransform( w3 ); + w5 = G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, +zInnerSplit ); + w6 = G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, -zInnerSplit ); + transform.ApplyPointTransform( w5 ); + transform.ApplyPointTransform( w6 ); + AddPolyToExtent( v3, v6, w6, w3, voxelLimit, axis, extentList ); + AddPolyToExtent( v6, v5, w5, w6, voxelLimit, axis, extentList ); + AddPolyToExtent( v5, v2, w2, w5, voxelLimit, axis, extentList ); + } + else + { + w2 = G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, +halfLenZ ); + w3 = G4ThreeVector( innerRadius*cosPhi, + innerRadius*sinPhi, -halfLenZ ); + transform.ApplyPointTransform( w2 ); + transform.ApplyPointTransform( w3 ); - w5 = G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, +zInnerSplit ); - w6 = G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, -zInnerSplit ); - transform.ApplyPointTransform( w5 ); - transform.ApplyPointTransform( w6 ); - AddPolyToExtent( v3, v6, w6, w3, voxelLimit, axis, extentList ); - AddPolyToExtent( v6, v5, w5, w6, voxelLimit, axis, extentList ); - AddPolyToExtent( v5, v2, w2, w5, voxelLimit, axis, extentList ); - } - else { - w2 = G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, +halfLenZ ); - w3 = G4ThreeVector( innerRadius*cosPhi, innerRadius*sinPhi, -halfLenZ ); - transform.ApplyPointTransform( w2 ); - transform.ApplyPointTransform( w3 ); + AddPolyToExtent( v3, v2, w2, w3, voxelLimit, axis, extentList ); + } - AddPolyToExtent( v3, v2, w2, w3, voxelLimit, axis, extentList ); - } + // + // Endplate segments + // + AddPolyToExtent( v1, v3, w3, w1, voxelLimit, axis, extentList ); + AddPolyToExtent( v2, v0, w0, w2, voxelLimit, axis, extentList ); + } + else + { + // + // Continue building endplate polygons + // + endPoly1.AddVertexInOrder( v0 ); + endPoly2.AddVertexInOrder( v1 ); + } - // - // Endplate segments - // - AddPolyToExtent( v1, v3, w3, w1, voxelLimit, axis, extentList ); - AddPolyToExtent( v2, v0, w0, w2, voxelLimit, axis, extentList ); - } - else { - // - // Continue building endplate polygons - // - endPoly1.AddVertexInOrder( v0 ); - endPoly2.AddVertexInOrder( v1 ); - } + // + // Next phi segments + // + v0 = w0; + v1 = w1; + if (InnerSurfaceExists()) + { + v2 = w2; + v3 = w3; + if (splitInner) + { + v5 = w5; + v6 = w6; + } + } + if (splitOuter) v4 = w4; + + } while( --numPhi > 0 ); + + + // + // Don't forget about the endplate polygons, if + // we use them + // + if (!InnerSurfaceExists()) + { + if (endPoly1.PartialClip( voxelLimit, axis )) + { + static const G4ThreeVector normal(0,0,+1); + endPoly1.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( endPoly1 ); + } - // - // Next phi segments - // - v0 = w0; - v1 = w1; - if (InnerSurfaceExists()) { - v2 = w2; - v3 = w3; - if (splitInner) { - v5 = w5; - v6 = w6; - } - } - if (splitOuter) v4 = w4; - - } while( --numPhi > 0 ); - - - // - // Don't forget about the endplate polygons, if - // we use them - // - if (!InnerSurfaceExists()) { - if (endPoly1.PartialClip( voxelLimit, axis )) { - static const G4ThreeVector normal(0,0,+1); - endPoly1.SetNormal( transform.TransformAxis(normal) ); - extentList.AddSurface( endPoly1 ); - } - - if (endPoly2.PartialClip( voxelLimit, axis )) { - static const G4ThreeVector normal(0,0,-1); - endPoly2.SetNormal( transform.TransformAxis(normal) ); - extentList.AddSurface( endPoly2 ); - } - } - - // - // Return min/max value - // - return extentList.GetExtent( min, max ); + if (endPoly2.PartialClip( voxelLimit, axis )) + { + static const G4ThreeVector normal(0,0,-1); + endPoly2.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( endPoly2 ); + } + } + + // + // Return min/max value + // + return extentList.GetExtent( min, max ); } @@ -361,24 +433,25 @@ G4bool G4Hype::CalculateExtent( const EAxis axis, // Utility function for CalculateExtent // void G4Hype::AddPolyToExtent( const G4ThreeVector &v0, - const G4ThreeVector &v1, - const G4ThreeVector &w1, - const G4ThreeVector &w0, - const G4VoxelLimits &voxelLimit, - const EAxis axis, - G4SolidExtentList &extentList ) + const G4ThreeVector &v1, + const G4ThreeVector &w1, + const G4ThreeVector &w0, + const G4VoxelLimits &voxelLimit, + const EAxis axis, + G4SolidExtentList &extentList ) { - G4ClippablePolygon phiPoly; + G4ClippablePolygon phiPoly; - phiPoly.AddVertexInOrder( v0 ); - phiPoly.AddVertexInOrder( v1 ); - phiPoly.AddVertexInOrder( w1 ); - phiPoly.AddVertexInOrder( w0 ); + phiPoly.AddVertexInOrder( v0 ); + phiPoly.AddVertexInOrder( v1 ); + phiPoly.AddVertexInOrder( w1 ); + phiPoly.AddVertexInOrder( w0 ); - if (phiPoly.PartialClip( voxelLimit, axis )) { - phiPoly.SetNormal( (v1-v0).cross(w0-v0).unit() ); - extentList.AddSurface( phiPoly ); - } + if (phiPoly.PartialClip( voxelLimit, axis )) + { + phiPoly.SetNormal( (v1-v0).cross(w0-v0).unit() ); + extentList.AddSurface( phiPoly ); + } } @@ -387,41 +460,42 @@ void G4Hype::AddPolyToExtent( const G4ThreeVector &v0, // EInside G4Hype::Inside(const G4ThreeVector& p) const { - static const G4double halfTol = 0.5*kCarTolerance; - - // - // Check z extents: are we outside? - // - const G4double absZ(fabs(p.z())); - if (absZ > halfLenZ + halfTol) return kOutside; - - // - // Check outer radius - // - const G4double oRad2(HypeOuterRadius2(absZ)); - const G4double xR2( p.x()*p.x()+p.y()*p.y() ); - - if (xR2 > oRad2 + kCarTolerance*endOuterRadius) return kOutside; - - if (xR2 > oRad2 - kCarTolerance*endOuterRadius) return kSurface; - - if (InnerSurfaceExists()) { - // - // Check inner radius - // - const G4double iRad2(HypeInnerRadius2(absZ)); - - if (xR2 < iRad2 - kCarTolerance*endInnerRadius) return kOutside; - - if (xR2 < iRad2 + kCarTolerance*endInnerRadius) return kSurface; - } - - // - // We are inside in radius, now check endplate surface - // - if (absZ > halfLenZ - halfTol) return kSurface; - - return kInside; + static const G4double halfTol = 0.5*kCarTolerance; + + // + // Check z extents: are we outside? + // + const G4double absZ(fabs(p.z())); + if (absZ > halfLenZ + halfTol) return kOutside; + + // + // Check outer radius + // + const G4double oRad2(HypeOuterRadius2(absZ)); + const G4double xR2( p.x()*p.x()+p.y()*p.y() ); + + if (xR2 > oRad2 + kCarTolerance*endOuterRadius) return kOutside; + + if (xR2 > oRad2 - kCarTolerance*endOuterRadius) return kSurface; + + if (InnerSurfaceExists()) + { + // + // Check inner radius + // + const G4double iRad2(HypeInnerRadius2(absZ)); + + if (xR2 < iRad2 - kCarTolerance*endInnerRadius) return kOutside; + + if (xR2 < iRad2 + kCarTolerance*endInnerRadius) return kSurface; + } + + // + // We are inside in radius, now check endplate surface + // + if (absZ > halfLenZ - halfTol) return kSurface; + + return kInside; } @@ -430,297 +504,327 @@ EInside G4Hype::Inside(const G4ThreeVector& p) const // return the normal unit vector to the Hyperbolical Surface at a point // p on (or nearly on) the surface // -G4ThreeVector G4Hype::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4Hype::SurfaceNormal( const G4ThreeVector& p ) const { - // - // Which of the three or four surfaces are we closest to? - // - const G4double absZ(fabs(p.z())); - const G4double distZ(absZ - halfLenZ); - const G4double dist2Z(distZ*distZ); - - const G4double xR2( p.x()*p.x()+p.y()*p.y() ); - const G4double dist2Outer( fabs(xR2 - HypeOuterRadius2(absZ)) ); - - if (InnerSurfaceExists()) { - // - // Has inner surface: is this closest? - // - const G4double dist2Inner( fabs(xR2 - HypeInnerRadius2(absZ)) ); - if (dist2Inner < dist2Z && dist2Inner < dist2Outer) - return G4ThreeVector( -p.x(), -p.y(), p.z()*tanInnerStereo2 ).unit(); - } + // + // Which of the three or four surfaces are we closest to? + // + const G4double absZ(fabs(p.z())); + const G4double distZ(absZ - halfLenZ); + const G4double dist2Z(distZ*distZ); + + const G4double xR2( p.x()*p.x()+p.y()*p.y() ); + const G4double dist2Outer( fabs(xR2 - HypeOuterRadius2(absZ)) ); + + if (InnerSurfaceExists()) + { + // + // Has inner surface: is this closest? + // + const G4double dist2Inner( fabs(xR2 - HypeInnerRadius2(absZ)) ); + if (dist2Inner < dist2Z && dist2Inner < dist2Outer) + return G4ThreeVector( -p.x(), -p.y(), p.z()*tanInnerStereo2 ).unit(); + } - // - // Do the "endcaps" win? - // - if (dist2Z < dist2Outer) - return G4ThreeVector( 0.0, 0.0, p.z() < 0 ? -1.0 : 1.0 ); - - - // - // Outer surface wins - // - return G4ThreeVector( p.x(), p.y(), -p.z()*tanOuterStereo2 ).unit(); + // + // Do the "endcaps" win? + // + if (dist2Z < dist2Outer) + return G4ThreeVector( 0.0, 0.0, p.z() < 0 ? -1.0 : 1.0 ); + + + // + // Outer surface wins + // + return G4ThreeVector( p.x(), p.y(), -p.z()*tanOuterStereo2 ).unit(); } // // Calculate distance to shape from outside, along normalised vector -// - return kInfinity if no intersection, or intersection distance <= tolerance +// - return kInfinity if no intersection, +// or intersection distance <= tolerance // // Calculating the intersection of a line with the surfaces // is fairly straight forward. The difficult problem is dealing // with the intersections of the surfaces in a consistent manner, // and this accounts for the complicated logic. // -G4double G4Hype::DistanceToIn(const G4ThreeVector& p, - const G4ThreeVector& v ) const +G4double G4Hype::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - // - // Quick test. Beware! This assumes v is a unit vector! - // - if (fabs(p.x()*v.y() - p.y()*v.x()) > endOuterRadius+kCarTolerance) return kInfinity; - - // - // Take advantage of z symmetry, and reflect throught the - // z=0 plane so that pz is always positive - // - G4double pz(p.z()), vz(v.z()); - if (pz < 0) { - pz = -pz; - vz = -vz; - } + static const G4double halfTol = 0.5*kCarTolerance; + + // + // Quick test. Beware! This assumes v is a unit vector! + // + if (fabs(p.x()*v.y() - p.y()*v.x()) > endOuterRadius+kCarTolerance) + return kInfinity; + + // + // Take advantage of z symmetry, and reflect throught the + // z=0 plane so that pz is always positive + // + G4double pz(p.z()), vz(v.z()); + if (pz < 0) + { + pz = -pz; + vz = -vz; + } - // - // We must be very careful if we don't want to - // create subtle leaks at the edges where the - // hyperbolic surfaces connect to the endplate. - // The only reliable way to do so is to make sure - // that the decision as to when a track passes - // over the edge of one surface is exactly the - // same decision as to when a track passes into the - // other surface. By "exact", we don't mean algebraicly - // exact, but we mean the same machine instructions - // should be used. - // - G4bool couldMissOuter(true), - couldMissInner(true), - cantMissInnerCylinder(false); - - // - // Check endplate intersection - // - G4double sigz = pz-halfLenZ; - - if (sigz > -halfTol) { // equivalent to: if (pz > halfLenZ - halfTol) - // - // We start in front of the endplate (within roundoff) - // Correct direction to intersect endplate? - // - if (vz >= 0) { - // - // Nope. As long as we are far enough away, we - // can't intersect anything - // - if (sigz > 0) return kInfinity; - - // - // Otherwise, we may still hit a hyperbolic surface - // if the point is on the hyperbolic surface (within tolerance) - // - G4double pr2 = p.x()*p.x() + p.y()*p.y(); - if (pr2 > endOuterRadius2 + kCarTolerance*endOuterRadius) return kInfinity; - - if (InnerSurfaceExists()) { - if (pr2 < endInnerRadius2 - kCarTolerance*endInnerRadius) return kInfinity; - if (pr2 < endOuterRadius2 - kCarTolerance*endOuterRadius && - pr2 > endInnerRadius2 + kCarTolerance*endInnerRadius ) return kInfinity; - } - else { - if (pr2 < endOuterRadius2 - kCarTolerance*endOuterRadius) return kInfinity; - } - } - else { - // - // Where do we intersect at z = halfLenZ? - // - G4double s = -sigz/vz; - G4double xi = p.x() + s*v.x(), - yi = p.y() + s*v.y(); - - // - // Is this on the endplate? If so, return s, unless - // we are on the tolerant surface, in which case return 0 - // - G4double pr2 = xi*xi + yi*yi; - if (pr2 <= endOuterRadius2) { - if (InnerSurfaceExists()) { - if (pr2 >= endInnerRadius2) return (sigz < halfTol) ? 0 : s; - // - // This test is sufficient to ensure that the - // trajectory cannot miss the inner hyperbolic surface - // for z > 0, if the normal is correct. - // - G4double dot1 = (xi*v.x() + yi*v.y())*endInnerRadius/sqrt(pr2); - couldMissInner = (dot1 - halfLenZ*tanInnerStereo2*vz <= 0); - - if (pr2 > endInnerRadius2*(1 - 2*DBL_EPSILON) ) { - // - // There is a potential leak if the inner - // surface is a cylinder - // - if (innerStereo < DBL_MIN && - (fabs(v.x()) > DBL_MIN || fabs(v.y()) > DBL_MIN)) - cantMissInnerCylinder = true; - } - } - else { - return (sigz < halfTol) ? 0 : s; - } - } - else { - G4double dotR( xi*v.x() + yi*v.y() ); - if (dotR >= 0) { - // - // Otherwise, if we are traveling outwards, we know - // we must miss the hyperbolic surfaces also, so - // we need not bother checking - // - return kInfinity; - } - else { - // - // This test is sufficient to ensure that the - // trajectory cannot miss the outer hyperbolic surface - // for z > 0, if the normal is correct. - // - G4double dot1 = dotR*endOuterRadius/sqrt(pr2); - couldMissOuter = (dot1 - halfLenZ*tanOuterStereo2*vz>= 0); - } - } - } - } - - // - // Check intersection with outer hyperbolic surface, save - // distance to valid intersection into "best". - // - G4double best = kInfinity; - - G4double s[2]; - G4int n = IntersectHype( p, v, outerRadius2, tanOuterStereo2, s ); - - if (n > 0) { - // - // Potential intersection: is p on this surface? - // - if (pz < halfLenZ+halfTol) { - G4double dr2 = p.x()*p.x() + p.y()*p.y() - HypeOuterRadius2(pz); - if (fabs(dr2) < kCarTolerance*endOuterRadius) { - // - // Sure, but make sure we're traveling inwards at - // this point - // - if (p.x()*v.x() + p.y()*v.y() - pz*tanOuterStereo2*vz < 0) return 0; - } - } - - // - // We are now certain that p is not on the tolerant surface. - // Accept only position distance s - // - G4int i; - for( i=0; i= 0) { - // - // Check to make sure this intersection point is - // on the surface, but only do so if we haven't - // checked the endplate intersection already - // - G4double zi = pz + s[i]*vz; - - if (zi < -halfLenZ) continue; - if (zi > +halfLenZ && couldMissOuter) continue; - - // - // Check normal - // - G4double xi = p.x() + s[i]*v.x(), - yi = p.y() + s[i]*v.y(); - - if (xi*v.x() + yi*v.y() - zi*tanOuterStereo2*vz > 0) continue; + // + // We must be very careful if we don't want to + // create subtle leaks at the edges where the + // hyperbolic surfaces connect to the endplate. + // The only reliable way to do so is to make sure + // that the decision as to when a track passes + // over the edge of one surface is exactly the + // same decision as to when a track passes into the + // other surface. By "exact", we don't mean algebraicly + // exact, but we mean the same machine instructions + // should be used. + // + G4bool couldMissOuter(true), + couldMissInner(true), + cantMissInnerCylinder(false); + + // + // Check endplate intersection + // + G4double sigz = pz-halfLenZ; + + if (sigz > -halfTol) // equivalent to: if (pz > halfLenZ - halfTol) + { + // + // We start in front of the endplate (within roundoff) + // Correct direction to intersect endplate? + // + if (vz >= 0) + { + // + // Nope. As long as we are far enough away, we + // can't intersect anything + // + if (sigz > 0) return kInfinity; + + // + // Otherwise, we may still hit a hyperbolic surface + // if the point is on the hyperbolic surface (within tolerance) + // + G4double pr2 = p.x()*p.x() + p.y()*p.y(); + if (pr2 > endOuterRadius2 + kCarTolerance*endOuterRadius) + return kInfinity; + + if (InnerSurfaceExists()) + { + if (pr2 < endInnerRadius2 - kCarTolerance*endInnerRadius) + return kInfinity; + if ( (pr2 < endOuterRadius2 - kCarTolerance*endOuterRadius) + && (pr2 > endInnerRadius2 + kCarTolerance*endInnerRadius) ) + return kInfinity; + } + else + { + if (pr2 < endOuterRadius2 - kCarTolerance*endOuterRadius) + return kInfinity; + } + } + else + { + // + // Where do we intersect at z = halfLenZ? + // + G4double s = -sigz/vz; + G4double xi = p.x() + s*v.x(), + yi = p.y() + s*v.y(); + + // + // Is this on the endplate? If so, return s, unless + // we are on the tolerant surface, in which case return 0 + // + G4double pr2 = xi*xi + yi*yi; + if (pr2 <= endOuterRadius2) + { + if (InnerSurfaceExists()) + { + if (pr2 >= endInnerRadius2) return (sigz < halfTol) ? 0 : s; + // + // This test is sufficient to ensure that the + // trajectory cannot miss the inner hyperbolic surface + // for z > 0, if the normal is correct. + // + G4double dot1 = (xi*v.x() + yi*v.y())*endInnerRadius/sqrt(pr2); + couldMissInner = (dot1 - halfLenZ*tanInnerStereo2*vz <= 0); + + if (pr2 > endInnerRadius2*(1 - 2*DBL_EPSILON) ) + { + // + // There is a potential leak if the inner + // surface is a cylinder + // + if ( (innerStereo < DBL_MIN) + && ((fabs(v.x()) > DBL_MIN) || (fabs(v.y()) > DBL_MIN)) ) + cantMissInnerCylinder = true; + } + } + else + { + return (sigz < halfTol) ? 0 : s; + } + } + else + { + G4double dotR( xi*v.x() + yi*v.y() ); + if (dotR >= 0) + { + // + // Otherwise, if we are traveling outwards, we know + // we must miss the hyperbolic surfaces also, so + // we need not bother checking + // + return kInfinity; + } + else + { + // + // This test is sufficient to ensure that the + // trajectory cannot miss the outer hyperbolic surface + // for z > 0, if the normal is correct. + // + G4double dot1 = dotR*endOuterRadius/sqrt(pr2); + couldMissOuter = (dot1 - halfLenZ*tanOuterStereo2*vz>= 0); + } + } + } + } + + // + // Check intersection with outer hyperbolic surface, save + // distance to valid intersection into "best". + // + G4double best = kInfinity; + + G4double s[2]; + G4int n = IntersectHype( p, v, outerRadius2, tanOuterStereo2, s ); + + if (n > 0) + { + // + // Potential intersection: is p on this surface? + // + if (pz < halfLenZ+halfTol) + { + G4double dr2 = p.x()*p.x() + p.y()*p.y() - HypeOuterRadius2(pz); + if (fabs(dr2) < kCarTolerance*endOuterRadius) + { + // + // Sure, but make sure we're traveling inwards at + // this point + // + if (p.x()*v.x() + p.y()*v.y() - pz*tanOuterStereo2*vz < 0) + return 0; + } + } + + // + // We are now certain that p is not on the tolerant surface. + // Accept only position distance s + // + G4int i; + for( i=0; i= 0) + { + // + // Check to make sure this intersection point is + // on the surface, but only do so if we haven't + // checked the endplate intersection already + // + G4double zi = pz + s[i]*vz; + + if (zi < -halfLenZ) continue; + if (zi > +halfLenZ && couldMissOuter) continue; + + // + // Check normal + // + G4double xi = p.x() + s[i]*v.x(), + yi = p.y() + s[i]*v.y(); + + if (xi*v.x() + yi*v.y() - zi*tanOuterStereo2*vz > 0) continue; - best = s[i]; - break; - } - } - } - - if (!InnerSurfaceExists()) return best; - - // - // Check intersection with inner hyperbolic surface - // - n = IntersectHype( p, v, innerRadius2, tanInnerStereo2, s ); - if (n == 0) { - if (cantMissInnerCylinder) return (sigz < halfTol) ? 0 : -sigz/vz; - - return best; - } - - // - // P on this surface? - // - if (pz < halfLenZ+halfTol) { - G4double dr2 = p.x()*p.x() + p.y()*p.y() - HypeInnerRadius2(pz); - if (fabs(dr2) < kCarTolerance*endInnerRadius) { - // - // Sure, but make sure we're traveling outwards at - // this point - // - if (p.x()*v.x() + p.y()*v.y() - pz*tanInnerStereo2*vz > 0) return 0; - } - } - - // - // No, so only positive s is valid. Search for a valid intersection - // that is closer than the outer intersection (if it exists) - // - G4int i; - for( i=0; i best) break; - if (s[i] >= 0) { - // - // Check to make sure this intersection point is - // on the surface, but only do so if we haven't - // checked the endplate intersection already - // - G4double zi = pz + s[i]*vz; + best = s[i]; + break; + } + } + } + + if (!InnerSurfaceExists()) return best; + + // + // Check intersection with inner hyperbolic surface + // + n = IntersectHype( p, v, innerRadius2, tanInnerStereo2, s ); + if (n == 0) + { + if (cantMissInnerCylinder) return (sigz < halfTol) ? 0 : -sigz/vz; + + return best; + } + + // + // P on this surface? + // + if (pz < halfLenZ+halfTol) + { + G4double dr2 = p.x()*p.x() + p.y()*p.y() - HypeInnerRadius2(pz); + if (fabs(dr2) < kCarTolerance*endInnerRadius) + { + // + // Sure, but make sure we're traveling outwards at + // this point + // + if (p.x()*v.x() + p.y()*v.y() - pz*tanInnerStereo2*vz > 0) return 0; + } + } + + // + // No, so only positive s is valid. Search for a valid intersection + // that is closer than the outer intersection (if it exists) + // + G4int i; + for( i=0; i best) break; + if (s[i] >= 0) + { + // + // Check to make sure this intersection point is + // on the surface, but only do so if we haven't + // checked the endplate intersection already + // + G4double zi = pz + s[i]*vz; - if (zi < -halfLenZ) continue; - if (zi > +halfLenZ && couldMissInner) continue; - + if (zi < -halfLenZ) continue; + if (zi > +halfLenZ && couldMissInner) continue; - // - // Check normal - // - G4double xi = p.x() + s[i]*v.x(), - yi = p.y() + s[i]*v.y(); + // + // Check normal + // + G4double xi = p.x() + s[i]*v.x(), + yi = p.y() + s[i]*v.y(); - if (xi*v.x() + yi*v.y() - zi*tanOuterStereo2*vz < 0) continue; + if (xi*v.x() + yi*v.y() - zi*tanOuterStereo2*vz < 0) continue; - best = s[i]; - break; - } - } - - // - // Done - // - return best; + best = s[i]; + break; + } + } + + // + // Done + // + return best; } @@ -745,67 +849,76 @@ G4double G4Hype::DistanceToIn(const G4ThreeVector& p, // G4double G4Hype::DistanceToIn(const G4ThreeVector& p) const { - static const G4double halfTol(0.5*kCarTolerance); - - G4double absZ(fabs(p.z())); - - // - // Check region - // - G4double r2 = p.x()*p.x() + p.y()*p.y(); - G4double r = sqrt(r2); - - G4double sigz = absZ - halfLenZ; - - if (r < endOuterRadius) { - if (sigz > -halfTol) { - if (InnerSurfaceExists()) { - if (r > endInnerRadius) - return sigz < halfTol ? 0 : sigz; // Region 1 - - G4double dr = endInnerRadius - r; - if (sigz > dr*tanInnerStereo2) { - // - // In region 5 - // - G4double answer = sqrt( dr*dr + sigz*sigz ); - return answer < halfTol ? 0 : answer; - } - } - else { - // - // In region 1 (no inner surface) - // - return sigz < halfTol ? 0 : sigz; - } - } - } - else { - G4double dr = r - endOuterRadius; - if (sigz > -dr*tanOuterStereo2) { - // - // In region 2 - // - G4double answer = sqrt( dr*dr + sigz*sigz ); - return answer < halfTol ? 0 : answer; - } - } - - if (InnerSurfaceExists()) { - if (r2 < HypeInnerRadius2(absZ)+kCarTolerance*endInnerRadius) { - // - // In region 4 - // - G4double answer = ApproxDistInside( r, absZ, innerRadius, tanInnerStereo2 ); - return answer < halfTol ? 0 : answer; - } - } - - // - // We are left by elimination with region 3 - // - G4double answer = ApproxDistOutside( r, absZ, outerRadius, tanOuterStereo ); - return answer < halfTol ? 0 : answer; + static const G4double halfTol(0.5*kCarTolerance); + + G4double absZ(fabs(p.z())); + + // + // Check region + // + G4double r2 = p.x()*p.x() + p.y()*p.y(); + G4double r = sqrt(r2); + + G4double sigz = absZ - halfLenZ; + + if (r < endOuterRadius) + { + if (sigz > -halfTol) + { + if (InnerSurfaceExists()) + { + if (r > endInnerRadius) + return sigz < halfTol ? 0 : sigz; // Region 1 + + G4double dr = endInnerRadius - r; + if (sigz > dr*tanInnerStereo2) + { + // + // In region 5 + // + G4double answer = sqrt( dr*dr + sigz*sigz ); + return answer < halfTol ? 0 : answer; + } + } + else + { + // + // In region 1 (no inner surface) + // + return sigz < halfTol ? 0 : sigz; + } + } + } + else + { + G4double dr = r - endOuterRadius; + if (sigz > -dr*tanOuterStereo2) + { + // + // In region 2 + // + G4double answer = sqrt( dr*dr + sigz*sigz ); + return answer < halfTol ? 0 : answer; + } + } + + if (InnerSurfaceExists()) + { + if (r2 < HypeInnerRadius2(absZ)+kCarTolerance*endInnerRadius) + { + // + // In region 4 + // + G4double answer = ApproxDistInside( r,absZ,innerRadius,tanInnerStereo2 ); + return answer < halfTol ? 0 : answer; + } + } + + // + // We are left by elimination with region 3 + // + G4double answer = ApproxDistOutside( r, absZ, outerRadius, tanOuterStereo ); + return answer < halfTol ? 0 : answer; } @@ -817,152 +930,172 @@ G4double G4Hype::DistanceToIn(const G4ThreeVector& p) const // point is inside the boundary of a surface, as long as all surfaces // are checked and the smallest distance is used. // -G4double G4Hype::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, - const G4bool calcNorm, - G4bool *validNorm, G4ThreeVector *norm ) const +G4double G4Hype::DistanceToOut( const G4ThreeVector& p, const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, G4ThreeVector *norm ) const { - static const G4double halfTol = 0.5*kCarTolerance; - - - static const G4ThreeVector normEnd1(0.0,0.0,+1.0); - static const G4ThreeVector normEnd2(0.0,0.0,-1.0); - - // - // Keep track of closest surface - // - G4double sBest; // distance to - const G4ThreeVector *nBest; // normal vector - G4bool vBest; // whether "valid" + static const G4double halfTol = 0.5*kCarTolerance; + + + static const G4ThreeVector normEnd1(0.0,0.0,+1.0); + static const G4ThreeVector normEnd2(0.0,0.0,-1.0); + + // + // Keep track of closest surface + // + G4double sBest; // distance to + const G4ThreeVector *nBest; // normal vector + G4bool vBest; // whether "valid" - // - // Check endplate, taking advantage of symmetry. - // Note that the endcap is the only surface which - // has a "valid" normal, i.e. is a surface of which - // the entire solid is behind. - // - G4double pz(p.z()), vz(v.z()); - if (vz < 0) { - pz = -pz; - vz = -vz; - nBest = &normEnd2; - } - else - nBest = &normEnd1; + // + // Check endplate, taking advantage of symmetry. + // Note that the endcap is the only surface which + // has a "valid" normal, i.e. is a surface of which + // the entire solid is behind. + // + G4double pz(p.z()), vz(v.z()); + if (vz < 0) + { + pz = -pz; + vz = -vz; + nBest = &normEnd2; + } + else + nBest = &normEnd1; - // - // Possible intercept. Are we on the surface? - // - if (pz > halfLenZ-halfTol) { - if (calcNorm) { *norm = *nBest; *validNorm = true; } - return 0; - } + // + // Possible intercept. Are we on the surface? + // + if (pz > halfLenZ-halfTol) + { + if (calcNorm) { *norm = *nBest; *validNorm = true; } + return 0; + } - // - // Nope. Get distance. Beware of zero vz. - // - sBest = (vz > DBL_MIN) ? (halfLenZ - pz)/vz : kInfinity; - vBest = true; - - // - // Check outer surface - // - G4double r2 = p.x()*p.x() + p.y()*p.y(); - - G4double s[2]; - G4int n = IntersectHype( p, v, outerRadius2, tanOuterStereo2, s ); - - G4ThreeVector norm1, norm2; + // + // Nope. Get distance. Beware of zero vz. + // + sBest = (vz > DBL_MIN) ? (halfLenZ - pz)/vz : kInfinity; + vBest = true; + + // + // Check outer surface + // + G4double r2 = p.x()*p.x() + p.y()*p.y(); + + G4double s[2]; + G4int n = IntersectHype( p, v, outerRadius2, tanOuterStereo2, s ); + + G4ThreeVector norm1, norm2; - if (n > 0) { - // - // We hit somewhere. Are we on the surface? - // - G4double dr2 = r2 - HypeOuterRadius2(pz); - if (fabs(dr2) < endOuterRadius*kCarTolerance) { - G4ThreeVector normHere( p.x(), p.y(), -p.z()*tanOuterStereo2 ); - // - // Sure. But are we going the right way? - // - if (normHere.dot(v) > 0) { - if (calcNorm) { *norm = normHere.unit(); *validNorm = false; } - return 0; - } - } - - // - // Nope. Check closest positive intercept. - // - G4int i; - for( i=0; i sBest) break; - if (s[i] > 0) { - // - // Make sure normal is correct (that this - // solution is an outgoing solution) - // - G4ThreeVector pi(p+s[i]*v); - norm1 = G4ThreeVector( pi.x(), pi.y(), -pi.z()*tanOuterStereo2 ); - if (norm1.dot(v) > 0) { - sBest = s[i]; - nBest = &norm1; - vBest = false; - break; - } - } - } - } - - if (InnerSurfaceExists()) { - // - // Check inner surface - // - n = IntersectHype( p, v, innerRadius2, tanInnerStereo2, s ); - if (n > 0) { - // - // On surface? - // - G4double dr2 = r2 - HypeInnerRadius2(pz); - if (fabs(dr2) < endInnerRadius*kCarTolerance) { - G4ThreeVector normHere( -p.x(), -p.y(), p.z()*tanInnerStereo2 ); - if (normHere.dot(v) > 0) { - if (calcNorm) {*norm = normHere.unit(); *validNorm = false;} - return 0; - } - } - - // - // Check closest positive - // - G4int i; - for( i=0; i sBest) break; - if (s[i] > 0) { - G4ThreeVector pi(p+s[i]*v); - norm2 = G4ThreeVector( -pi.x(), -pi.y(), pi.z()*tanInnerStereo2 ); - if (norm2.dot(v) > 0) { - sBest = s[i]; - nBest = &norm2; - vBest = false; - break; - } - } - } - } - } - - // - // Done! - // - if (calcNorm) { - *validNorm = vBest; - - if (nBest == &norm1 || nBest == &norm2) - *norm = nBest->unit(); - else - *norm = *nBest; - } - - return sBest; + if (n > 0) + { + // + // We hit somewhere. Are we on the surface? + // + G4double dr2 = r2 - HypeOuterRadius2(pz); + if (fabs(dr2) < endOuterRadius*kCarTolerance) + { + G4ThreeVector normHere( p.x(), p.y(), -p.z()*tanOuterStereo2 ); + // + // Sure. But are we going the right way? + // + if (normHere.dot(v) > 0) + { + if (calcNorm) { *norm = normHere.unit(); *validNorm = false; } + return 0; + } + } + + // + // Nope. Check closest positive intercept. + // + G4int i; + for( i=0; i sBest) break; + if (s[i] > 0) + { + // + // Make sure normal is correct (that this + // solution is an outgoing solution) + // + G4ThreeVector pi(p+s[i]*v); + norm1 = G4ThreeVector( pi.x(), pi.y(), -pi.z()*tanOuterStereo2 ); + if (norm1.dot(v) > 0) + { + sBest = s[i]; + nBest = &norm1; + vBest = false; + break; + } + } + } + } + + if (InnerSurfaceExists()) + { + // + // Check inner surface + // + n = IntersectHype( p, v, innerRadius2, tanInnerStereo2, s ); + if (n > 0) + { + // + // On surface? + // + G4double dr2 = r2 - HypeInnerRadius2(pz); + if (fabs(dr2) < endInnerRadius*kCarTolerance) + { + G4ThreeVector normHere( -p.x(), -p.y(), p.z()*tanInnerStereo2 ); + if (normHere.dot(v) > 0) + { + if (calcNorm) + { + *norm = normHere.unit(); + *validNorm = false; + } + return 0; + } + } + + // + // Check closest positive + // + G4int i; + for( i=0; i sBest) break; + if (s[i] > 0) + { + G4ThreeVector pi(p+s[i]*v); + norm2 = G4ThreeVector( -pi.x(), -pi.y(), pi.z()*tanInnerStereo2 ); + if (norm2.dot(v) > 0) + { + sBest = s[i]; + nBest = &norm2; + vBest = false; + break; + } + } + } + } + } + + // + // Done! + // + if (calcNorm) + { + *validNorm = vBest; + + if (nBest == &norm1 || nBest == &norm2) + *norm = nBest->unit(); + else + *norm = *nBest; + } + + return sBest; } @@ -974,26 +1107,56 @@ G4double G4Hype::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, // G4double G4Hype::DistanceToOut(const G4ThreeVector& p) const { - // - // Try each surface and remember the closest - // - G4double absZ(fabs(p.z())); - G4double r(p.perp()); - - G4double sBest = halfLenZ - absZ; - - G4double tryOuter = ApproxDistInside( r, absZ, outerRadius, tanOuterStereo2 ); - if (tryOuter < sBest) sBest = tryOuter; - - if (InnerSurfaceExists()) { - G4double tryInner = ApproxDistOutside( r, absZ, innerRadius, tanInnerStereo ); - if (tryInner < sBest) sBest = tryInner; - } - - return sBest < 0.5*kCarTolerance ? 0 : sBest; + // + // Try each surface and remember the closest + // + G4double absZ(fabs(p.z())); + G4double r(p.perp()); + + G4double sBest = halfLenZ - absZ; + + G4double tryOuter = ApproxDistInside( r, absZ, outerRadius, tanOuterStereo2 ); + if (tryOuter < sBest) + sBest = tryOuter; + + if (InnerSurfaceExists()) + { + G4double tryInner = ApproxDistOutside( r,absZ,innerRadius,tanInnerStereo ); + if (tryInner < sBest) sBest = tryInner; + } + + return sBest < 0.5*kCarTolerance ? 0 : sBest; } +// +// GetEntityType +// +G4GeometryType G4Hype::GetEntityType() const +{ + return G4String("G4Hype"); +} + + +// +// Stream object contents to an output stream +// +G4std::ostream& G4Hype::StreamInfo(G4std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Hype\n" + << " Parameters: \n" + << " half length Z: " << halfLenZ/mm << " mm \n" + << " inner radius : " << innerRadius/mm << " mm \n" + << " outer radius : " << outerRadius/mm << " mm \n" + << " inner stereo angle : " << innerStereo/degree << " degrees \n" + << " outer stereo angle : " << outerStereo/degree << " degrees \n" + << "-----------------------------------------------------------\n"; + + return os; +} void G4Hype::DescribeYourselfTo (G4VGraphicsScene& scene) const @@ -1004,9 +1167,10 @@ void G4Hype::DescribeYourselfTo (G4VGraphicsScene& scene) const G4VisExtent G4Hype::GetExtent() const { // Define the sides of the box into which the G4Tubs instance would fit. + // return G4VisExtent( -endOuterRadius, endOuterRadius, - -endOuterRadius, endOuterRadius, - -halfLenZ, halfLenZ ); + -endOuterRadius, endOuterRadius, + -halfLenZ, halfLenZ ); } G4Polyhedron* G4Hype::CreatePolyhedron () const @@ -1017,7 +1181,9 @@ G4Polyhedron* G4Hype::CreatePolyhedron () const G4NURBS* G4Hype::CreateNURBS () const { - return new G4NURBStube(endInnerRadius, endOuterRadius, halfLenZ); // Tube for now!!! + // Tube for now!!! + // + return new G4NURBStube(endInnerRadius, endOuterRadius, halfLenZ); } @@ -1050,61 +1216,63 @@ G4NURBS* G4Hype::CreateNURBS () const // // Solution is quadratic: // -// a*s**2 + b*s + c = 0 +// a*s**2 + b*s + c = 0 // // where: // -// a = tx**2 + ty**2 - (tz*tanPhi)**2 +// a = tx**2 + ty**2 - (tz*tanPhi)**2 // -// b = 2*( x0*tx + y0*ty - z0*tz*tanPhi**2 ) +// b = 2*( x0*tx + y0*ty - z0*tz*tanPhi**2 ) // -// c = x0**2 + y0**2 - r**2 - (z0*tanPhi)**2 +// c = x0**2 + y0**2 - r**2 - (z0*tanPhi)**2 // // G4int G4Hype::IntersectHype( const G4ThreeVector &p, const G4ThreeVector &v, G4double r2, G4double tan2Phi, G4double s[2] ) { - G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); - G4double tx = v.x(), ty = v.y(), tz = v.z(); + G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); + G4double tx = v.x(), ty = v.y(), tz = v.z(); - G4double a = tx*tx + ty*ty - tz*tz*tan2Phi; - G4double b = 2*( x0*tx + y0*ty - z0*tz*tan2Phi ); - G4double c = x0*x0 + y0*y0 - r2 - z0*z0*tan2Phi; - - if (fabs(a) < DBL_MIN) { - // - // The trajectory is parallel to the asympotic limit of - // the surface: single solution - // - if (fabs(b) < DBL_MIN) return 0; // Unless we travel through exact center - - s[0] = c/b; - return 1; - } - - - G4double radical = b*b - 4*a*c; - - if (radical < -DBL_MIN) return 0; // No solution - - if (radical < DBL_MIN) { - // - // Grazes surface - // - s[0] = -b/a/2.0; - return 1; - } - - radical = sqrt(radical); - - G4double q = -0.5*( b + (b < 0 ? -radical : +radical) ); - G4double sa = q/a; - G4double sb = c/q; - if (sa < sb) { s[0] = sa; s[1] = sb; } else { s[0] = sb; s[1] = sa; } - return 2; + G4double a = tx*tx + ty*ty - tz*tz*tan2Phi; + G4double b = 2*( x0*tx + y0*ty - z0*tz*tan2Phi ); + G4double c = x0*x0 + y0*y0 - r2 - z0*z0*tan2Phi; + + if (fabs(a) < DBL_MIN) + { + // + // The trajectory is parallel to the asympotic limit of + // the surface: single solution + // + if (fabs(b) < DBL_MIN) return 0; // Unless we travel through exact center + + s[0] = c/b; + return 1; + } + + + G4double radical = b*b - 4*a*c; + + if (radical < -DBL_MIN) return 0; // No solution + + if (radical < DBL_MIN) + { + // + // Grazes surface + // + s[0] = -b/a/2.0; + return 1; + } + + radical = sqrt(radical); + + G4double q = -0.5*( b + (b < 0 ? -radical : +radical) ); + G4double sa = q/a; + G4double sb = c/q; + if (sa < sb) { s[0] = sa; s[1] = sb; } else { s[0] = sb; s[1] = sa; } + return 2; } - - + + // // ApproxDistOutside (static) // @@ -1127,45 +1295,46 @@ G4int G4Hype::IntersectHype( const G4ThreeVector &p, const G4ThreeVector &v, // contains the normal on the line through the point p. // G4double G4Hype::ApproxDistOutside( G4double pr, G4double pz, - G4double r0, G4double tanPhi ) + G4double r0, G4double tanPhi ) { - if (tanPhi < DBL_MIN) return pr-r0; + if (tanPhi < DBL_MIN) return pr-r0; - G4double tan2Phi = tanPhi*tanPhi; + G4double tan2Phi = tanPhi*tanPhi; - // - // First point - // - G4double z1 = pz; - G4double r1 = sqrt( r0*r0 + z1*z1*tan2Phi ); - - // - // Second point - // - G4double z2 = (pr*tanPhi + pz)/(1 + tan2Phi); - G4double r2 = sqrt( r0*r0 + z2*z2*tan2Phi ); - - // - // Line between them - // - G4double dr = r2-r1; - G4double dz = z2-z1; - - G4double len = sqrt(dr*dr + dz*dz); - if (len < DBL_MIN) { - // - // The two points are the same?? I guess we - // must have really bracketed the normal - // - dr = pr-r1; - dz = pz-z1; - return sqrt( dr*dr + dz*dz ); - } - - // - // Distance - // - return fabs((pr-r1)*dz - (pz-z1)*dr)/len; + // + // First point + // + G4double z1 = pz; + G4double r1 = sqrt( r0*r0 + z1*z1*tan2Phi ); + + // + // Second point + // + G4double z2 = (pr*tanPhi + pz)/(1 + tan2Phi); + G4double r2 = sqrt( r0*r0 + z2*z2*tan2Phi ); + + // + // Line between them + // + G4double dr = r2-r1; + G4double dz = z2-z1; + + G4double len = sqrt(dr*dr + dz*dz); + if (len < DBL_MIN) + { + // + // The two points are the same?? I guess we + // must have really bracketed the normal + // + dr = pr-r1; + dz = pz-z1; + return sqrt( dr*dr + dz*dz ); + } + + // + // Distance + // + return fabs((pr-r1)*dz - (pz-z1)*dr)/len; } // @@ -1184,21 +1353,21 @@ G4double G4Hype::ApproxDistOutside( G4double pr, G4double pz, // Assumes pr and pz are positive // G4double G4Hype::ApproxDistInside( G4double pr, G4double pz, - G4double r0, G4double tan2Phi ) + G4double r0, G4double tan2Phi ) { - if (tan2Phi < DBL_MIN) return r0 - pr; + if (tan2Phi < DBL_MIN) return r0 - pr; - // - // Corresponding position and normal on hyperbolic - // - G4double rh = sqrt( r0*r0 + pz*pz*tan2Phi ); - - G4double dr = -rh; - G4double dz = pz*tan2Phi; - G4double len = sqrt(dr*dr + dz*dz); - - // - // Answer - // - return fabs((pr-rh)*dr)/len; + // + // Corresponding position and normal on hyperbolic + // + G4double rh = sqrt( r0*r0 + pz*pz*tan2Phi ); + + G4double dr = -rh; + G4double dz = pz*tan2Phi; + G4double len = sqrt(dr*dr + dz*dz); + + // + // Answer + // + return fabs((pr-rh)*dr)/len; } diff --git a/source/geometry/solids/specific/src/G4IntersectingCone.cc b/source/geometry/solids/specific/src/G4IntersectingCone.cc index cc61e7edd3..ef65ca37a3 100644 --- a/source/geometry/solids/specific/src/G4IntersectingCone.cc +++ b/source/geometry/solids/specific/src/G4IntersectingCone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectingCone.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IntersectingCone.cc,v 1.5 2002/10/28 11:47:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -40,45 +40,53 @@ // // Constructor // -G4IntersectingCone::G4IntersectingCone( const G4double r[2], const G4double z[2] ) -{ - // - // What type of cone are we? - // - type1 = (fabs(z[1]-z[0]) > fabs(r[1]-r[0])); - - if (type1) { - B = (r[1]-r[0])/(z[1]-z[0]); // tube like - A = 0.5*( r[1]+r[0] - B*(z[1]+z[0]) ); - } - else { - B = (z[1]-z[0])/(r[1]-r[0]); // disk like - A = 0.5*( z[1]+z[0] - B*(r[1]+r[0]) ); - } +G4IntersectingCone::G4IntersectingCone( const G4double r[2], + const G4double z[2] ) +{ + // + // What type of cone are we? + // + type1 = (fabs(z[1]-z[0]) > fabs(r[1]-r[0])); + + if (type1) + { + B = (r[1]-r[0])/(z[1]-z[0]); // tube like + A = 0.5*( r[1]+r[0] - B*(z[1]+z[0]) ); + } + else + { + B = (z[1]-z[0])/(r[1]-r[0]); // disk like + A = 0.5*( z[1]+z[0] - B*(r[1]+r[0]) ); + } - // - // Calculate extent - // - if (r[0] < r[1]) { - rLo = r[0]; rHi = r[1]; - } - else { - rLo = r[1]; rHi = r[0]; - } - - if (z[0] < z[1]) { - zLo = z[0]; zHi = z[1]; - } - else { - zLo = z[1]; zHi = z[0]; - } + // + // Calculate extent + // + if (r[0] < r[1]) + { + rLo = r[0]; rHi = r[1]; + } + else + { + rLo = r[1]; rHi = r[0]; + } + + if (z[0] < z[1]) + { + zLo = z[0]; zHi = z[1]; + } + else + { + zLo = z[1]; zHi = z[0]; + } } // // Destructor // G4IntersectingCone::~G4IntersectingCone() -{;} +{ +} // @@ -87,20 +95,23 @@ G4IntersectingCone::~G4IntersectingCone() // Check r or z extent, as appropriate, to see if the point is possibly // on the cone. // -G4bool G4IntersectingCone::HitOn( const G4double r, const G4double z ) +G4bool G4IntersectingCone::HitOn( const G4double r, + const G4double z ) { - // - // Be careful! The inequalities cannot be "<=" and ">=" here without - // punching a tiny hole in our shape! - // - if (type1) { - if (z < zLo || z > zHi) return false; - } - else { - if (r < rLo || r > rHi) return false; - } + // + // Be careful! The inequalities cannot be "<=" and ">=" here without + // punching a tiny hole in our shape! + // + if (type1) + { + if (z < zLo || z > zHi) return false; + } + else + { + if (r < rLo || r > rHi) return false; + } - return true; + return true; } @@ -110,15 +121,18 @@ G4bool G4IntersectingCone::HitOn( const G4double r, const G4double z ) // Calculate the intersection of a line with our conical surface, ignoring // any phi division // -G4int G4IntersectingCone::LineHitsCone( const G4ThreeVector &p, const G4ThreeVector &v, - G4double *s1, G4double *s2 ) +G4int G4IntersectingCone::LineHitsCone( const G4ThreeVector &p, + const G4ThreeVector &v, + G4double *s1, G4double *s2 ) { - if (type1) { - return LineHitsCone1( p, v, s1, s2 ); - } - else { - return LineHitsCone2( p, v, s1, s2 ); - } + if (type1) + { + return LineHitsCone1( p, v, s1, s2 ); + } + else + { + return LineHitsCone2( p, v, s1, s2 ); + } } @@ -138,15 +152,15 @@ G4int G4IntersectingCone::LineHitsCone( const G4ThreeVector &p, const G4ThreeVec // // Solution is quadratic: // -// a*s**2 + b*s + c = 0 +// a*s**2 + b*s + c = 0 // // where: // -// a = x0**2 + y0**2 - (A + B*z0)**2 +// a = x0**2 + y0**2 - (A + B*z0)**2 // -// b = 2*( x0*tx + y0*ty - (A*B - B*B*z0)*tz) +// b = 2*( x0*tx + y0*ty - (A*B - B*B*z0)*tz) // -// c = tx**2 + ty**2 - (B*tz)**2 +// c = tx**2 + ty**2 - (B*tz)**2 // // Notice, that if a < 0, this indicates that the two solutions (assuming // they exist) are in opposite cones (that is, given z0 = -A/B, one z < z0 @@ -181,76 +195,85 @@ G4int G4IntersectingCone::LineHitsCone( const G4ThreeVector &p, const G4ThreeVec // where epsilon is small, then: // Delta = epsilon/2/B // -G4int G4IntersectingCone::LineHitsCone1( const G4ThreeVector &p, const G4ThreeVector &v, - G4double *s1, G4double *s2 ) +G4int G4IntersectingCone::LineHitsCone1( const G4ThreeVector &p, + const G4ThreeVector &v, + G4double *s1, G4double *s2 ) { - G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); - G4double tx = v.x(), ty = v.y(), tz = v.z(); + G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); + G4double tx = v.x(), ty = v.y(), tz = v.z(); - G4double a = tx*tx + ty*ty - sqr(B*tz); - G4double b = 2*( x0*tx + y0*ty - (A*B + B*B*z0)*tz); - G4double c = x0*x0 + y0*y0 - sqr(A + B*z0); - - G4double radical = b*b - 4*a*c; - - if (radical < -1E-6*fabs(b)) return 0; // No solution - - if (radical < 1E-6*fabs(b)) { - // - // The radical is roughly zero: check for special, very rare, cases - // - if (fabs(a) > 1/kInfinity) { - if ( fabs(x0*ty - y0*tx) < fabs(1E-6/B)) { - *s1 = -0.5*b/a; - return 1; - } - return 0; - } - } - else { - radical = sqrt(radical); - } - - if (a > 1/kInfinity) { - G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); - sa = q/a; - sb = c/q; - if (sa < sb) { *s1 = sa; *s2 = sb; } else { *s1 = sb; *s2 = sa; } - if (A + B*(z0+(*s1)*tz) < 0) return 0; - return 2; - } - else if (a < -1/kInfinity) { - G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); - sa = q/a; - sb = c/q; - *s1 = (B*tz > 0)^(sa > sb) ? sb : sa; - return 1; - } - else if (fabs(b) < 1/kInfinity) { - return 0; - } - else { - *s1 = -c/b; - if (A + B*(z0+(*s1)*tz) < 0) return 0; - return 1; - } + G4double a = tx*tx + ty*ty - sqr(B*tz); + G4double b = 2*( x0*tx + y0*ty - (A*B + B*B*z0)*tz); + G4double c = x0*x0 + y0*y0 - sqr(A + B*z0); + + G4double radical = b*b - 4*a*c; + + if (radical < -1E-6*fabs(b)) return 0; // No solution + + if (radical < 1E-6*fabs(b)) + { + // + // The radical is roughly zero: check for special, very rare, cases + // + if (fabs(a) > 1/kInfinity) + { + if ( fabs(x0*ty - y0*tx) < fabs(1E-6/B)) + { + *s1 = -0.5*b/a; + return 1; + } + return 0; + } + } + else + { + radical = sqrt(radical); + } + + if (a > 1/kInfinity) + { + G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); + sa = q/a; + sb = c/q; + if (sa < sb) { *s1 = sa; *s2 = sb; } else { *s1 = sb; *s2 = sa; } + if (A + B*(z0+(*s1)*tz) < 0) return 0; + return 2; + } + else if (a < -1/kInfinity) + { + G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); + sa = q/a; + sb = c/q; + *s1 = (B*tz > 0)^(sa > sb) ? sb : sa; + return 1; + } + else if (fabs(b) < 1/kInfinity) + { + return 0; + } + else + { + *s1 = -c/b; + if (A + B*(z0+(*s1)*tz) < 0) return 0; + return 1; + } } - + // // LineHitsCone2 // // See comments under LineHitsCone1. In this routine, case2, we have: // -// Z = A + B*R +// Z = A + B*R // // The solution is still quadratic: // -// a = tz**2 - B*B*(tx**2 + ty**2) +// a = tz**2 - B*B*(tx**2 + ty**2) // -// b = 2*( (z0-A)*tz - B*B*(x0*tx+y0*ty) ) +// b = 2*( (z0-A)*tz - B*B*(x0*tx+y0*ty) ) // -// c = ( (z0-A)**2 - B*B*(x0**2 + y0**2) ) +// c = ( (z0-A)**2 - B*B*(x0**2 + y0**2) ) // // The rest is much the same, except some details. // @@ -258,73 +281,82 @@ G4int G4IntersectingCone::LineHitsCone1( const G4ThreeVector &p, const G4ThreeVe // // a > 0 ? We only want solution which produces R > 0. // since R = (z0+s*tz-A)/B, for tz/B > 0, this is the largest s -// for tz/B < 0, this is the smallest s +// for tz/B < 0, this is the smallest s // thus, same as in case 1 ( since sign(tz/B) = sign(tz*B) ) // -G4int G4IntersectingCone::LineHitsCone2( const G4ThreeVector &p, const G4ThreeVector &v, - G4double *s1, G4double *s2 ) +G4int G4IntersectingCone::LineHitsCone2( const G4ThreeVector &p, + const G4ThreeVector &v, + G4double *s1, G4double *s2 ) { - G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); - G4double tx = v.x(), ty = v.y(), tz = v.z(); - - // - // Special case which might not be so rare: B = 0 (precisely) - // - if (B==0) { - if (fabs(tz) < 1/kInfinity) return 0; - - *s1 = (A-z0)/tz; - return 1; - } + G4double x0 = p.x(), y0 = p.y(), z0 = p.z(); + G4double tx = v.x(), ty = v.y(), tz = v.z(); + + // + // Special case which might not be so rare: B = 0 (precisely) + // + if (B==0) + { + if (fabs(tz) < 1/kInfinity) return 0; + + *s1 = (A-z0)/tz; + return 1; + } - G4double B2 = B*B; + G4double B2 = B*B; - G4double a = tz*tz - B2*(tx*tx + ty*ty); - G4double b = 2*( (z0-A)*tz - B2*(x0*tx + y0*ty) ); - G4double c = sqr(z0-A) - B2*( x0*x0 + y0*y0 ); - - G4double radical = b*b - 4*a*c; - - if (radical < -1E-6*fabs(b)) return 0; // No solution - - if (radical < 1E-6*fabs(b)) { - // - // The radical is roughly zero: check for special, very rare, cases - // - if (fabs(a) > 1/kInfinity) { - if ( fabs(x0*ty - y0*tx) < fabs(1E-6/B)) { - *s1 = -0.5*b/a; - return 1; - } - return 0; - } - } - else { - radical = sqrt(radical); - } - - if (a < -1/kInfinity) { - G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); - sa = q/a; - sb = c/q; - if (sa < sb) { *s1 = sa; *s2 = sb; } else { *s1 = sb; *s2 = sa; } - if ((z0 + (*s1)*tz - A)/B < 0) return 0; - return 2; - } - else if (a > 1/kInfinity) { - G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); - sa = q/a; - sb = c/q; - *s1 = (tz*B > 0)^(sa > sb) ? sb : sa; - return 1; - } - else if (fabs(b) < 1/kInfinity) { - return 0; - } - else { - *s1 = -c/b; - if ((z0 + (*s1)*tz - A)/B < 0) return 0; - return 1; - } + G4double a = tz*tz - B2*(tx*tx + ty*ty); + G4double b = 2*( (z0-A)*tz - B2*(x0*tx + y0*ty) ); + G4double c = sqr(z0-A) - B2*( x0*x0 + y0*y0 ); + + G4double radical = b*b - 4*a*c; + + if (radical < -1E-6*fabs(b)) return 0; // No solution + + if (radical < 1E-6*fabs(b)) + { + // + // The radical is roughly zero: check for special, very rare, cases + // + if (fabs(a) > 1/kInfinity) + { + if ( fabs(x0*ty - y0*tx) < fabs(1E-6/B)) + { + *s1 = -0.5*b/a; + return 1; + } + return 0; + } + } + else + { + radical = sqrt(radical); + } + + if (a < -1/kInfinity) + { + G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); + sa = q/a; + sb = c/q; + if (sa < sb) { *s1 = sa; *s2 = sb; } else { *s1 = sb; *s2 = sa; } + if ((z0 + (*s1)*tz - A)/B < 0) return 0; + return 2; + } + else if (a > 1/kInfinity) + { + G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) ); + sa = q/a; + sb = c/q; + *s1 = (tz*B > 0)^(sa > sb) ? sb : sa; + return 1; + } + else if (fabs(b) < 1/kInfinity) + { + return 0; + } + else + { + *s1 = -c/b; + if ((z0 + (*s1)*tz - A)/B < 0) return 0; + return 1; + } } - diff --git a/source/geometry/solids/specific/src/G4PolyPhiFace.cc b/source/geometry/solids/specific/src/G4PolyPhiFace.cc index e833d749a9..325c85c02d 100644 --- a/source/geometry/solids/specific/src/G4PolyPhiFace.cc +++ b/source/geometry/solids/specific/src/G4PolyPhiFace.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyPhiFace.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyPhiFace.cc,v 1.5 2002/10/28 11:47:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -52,175 +52,186 @@ // | | +--> z // [0]---------[3] // -G4PolyPhiFace::G4PolyPhiFace( const G4ReduciblePolygon *rz, G4double phi, - G4double deltaPhi, G4double phiOther ) +G4PolyPhiFace::G4PolyPhiFace( const G4ReduciblePolygon *rz, + G4double phi, + G4double deltaPhi, + G4double phiOther ) { - numEdges = rz->NumVertices(); - - rMin = rz->Amin(); - rMax = rz->Amax(); - zMin = rz->Bmin(); - zMax = rz->Bmax(); + numEdges = rz->NumVertices(); + + rMin = rz->Amin(); + rMax = rz->Amax(); + zMin = rz->Bmin(); + zMax = rz->Bmax(); - // - // Is this the "starting" phi edge of the two? - // - G4bool start = (phiOther > phi); - - // - // Build radial vector - // - radial = G4ThreeVector( cos(phi), sin(phi), 0.0 ); - - // - // Build normal - // - G4double zSign = start ? 1 : -1; - normal = G4ThreeVector( zSign*radial.y(), -zSign*radial.x(), 0 ); - - // - // Is allBehind? - // - allBehind = (zSign*(cos(phiOther)*radial.y() - sin(phiOther)*radial.x()) < 0); - - // - // Adjacent edges - // - G4double midPhi = phi + (start ? +0.5 : -0.5)*deltaPhi; - G4double cosMid = cos(midPhi), + // + // Is this the "starting" phi edge of the two? + // + G4bool start = (phiOther > phi); + + // + // Build radial vector + // + radial = G4ThreeVector( cos(phi), sin(phi), 0.0 ); + + // + // Build normal + // + G4double zSign = start ? 1 : -1; + normal = G4ThreeVector( zSign*radial.y(), -zSign*radial.x(), 0 ); + + // + // Is allBehind? + // + allBehind = (zSign*(cos(phiOther)*radial.y() - sin(phiOther)*radial.x()) < 0); + + // + // Adjacent edges + // + G4double midPhi = phi + (start ? +0.5 : -0.5)*deltaPhi; + G4double cosMid = cos(midPhi), sinMid = sin(midPhi); - // - // Allocate corners - // - corners = new G4PolyPhiFaceVertex[numEdges]; + // + // Allocate corners + // + corners = new G4PolyPhiFaceVertex[numEdges]; - // - // Fill them - // - G4ReduciblePolygonIterator iterRZ(rz); - - G4PolyPhiFaceVertex *corn = corners; - iterRZ.Begin(); - do { - corn->r = iterRZ.GetA(); - corn->z = iterRZ.GetB(); - corn->x = corn->r*radial.x(); - corn->y = corn->r*radial.y(); - } while( ++corn, iterRZ.Next() ); + // + // Fill them + // + G4ReduciblePolygonIterator iterRZ(rz); + + G4PolyPhiFaceVertex *corn = corners; + iterRZ.Begin(); + do + { + corn->r = iterRZ.GetA(); + corn->z = iterRZ.GetB(); + corn->x = corn->r*radial.x(); + corn->y = corn->r*radial.y(); + } while( ++corn, iterRZ.Next() ); - // - // Allocate edges - // - edges = new G4PolyPhiFaceEdge[numEdges]; + // + // Allocate edges + // + edges = new G4PolyPhiFaceEdge[numEdges]; - // - // Fill them - // - G4double rFact = cos(0.5*deltaPhi); - G4double rFactNormalize = 1.0/sqrt(1.0+rFact*rFact); + // + // Fill them + // + G4double rFact = cos(0.5*deltaPhi); + G4double rFactNormalize = 1.0/sqrt(1.0+rFact*rFact); - G4PolyPhiFaceVertex *prev = corners+numEdges-1, - *here = corners; - G4PolyPhiFaceEdge *edge = edges; - do { - G4ThreeVector sideNorm; - - edge->v0 = prev; - edge->v1 = here; + G4PolyPhiFaceVertex *prev = corners+numEdges-1, + *here = corners; + G4PolyPhiFaceEdge *edge = edges; + do + { + G4ThreeVector sideNorm; + + edge->v0 = prev; + edge->v1 = here; - G4double dr = here->r - prev->r, - dz = here->z - prev->z; + G4double dr = here->r - prev->r, + dz = here->z - prev->z; - edge->length = sqrt( dr*dr + dz*dz ); + edge->length = sqrt( dr*dr + dz*dz ); - edge->tr = dr/edge->length; - edge->tz = dz/edge->length; - - if ((here->r < DBL_MIN) && (prev->r < DBL_MIN)) { - // - // Sigh! Always exceptions! - // This edge runs at r==0, so its adjoing surface is not a - // PolyconeSide or PolyhedraSide, but the opposite PolyPhiFace. - // - G4double zSignOther = start ? -1 : 1; - sideNorm = G4ThreeVector( zSignOther*sin(phiOther), - -zSignOther*cos(phiOther), 0 ); - } - else { - sideNorm = G4ThreeVector( edge->tz*cosMid, edge->tz*sinMid, -edge->tr*rFact ); - sideNorm *= rFactNormalize; - } - sideNorm += normal; - - edge->norm3D = sideNorm.unit(); - } while( edge++, prev=here, ++here < corners+numEdges ); + edge->tr = dr/edge->length; + edge->tz = dz/edge->length; + + if ((here->r < DBL_MIN) && (prev->r < DBL_MIN)) + { + // + // Sigh! Always exceptions! + // This edge runs at r==0, so its adjoing surface is not a + // PolyconeSide or PolyhedraSide, but the opposite PolyPhiFace. + // + G4double zSignOther = start ? -1 : 1; + sideNorm = G4ThreeVector( zSignOther*sin(phiOther), + -zSignOther*cos(phiOther), 0 ); + } + else + { + sideNorm = G4ThreeVector( edge->tz*cosMid, + edge->tz*sinMid, + -edge->tr*rFact ); + sideNorm *= rFactNormalize; + } + sideNorm += normal; + + edge->norm3D = sideNorm.unit(); + } while( edge++, prev=here, ++here < corners+numEdges ); - // - // Go back and fill in corner "normals" - // - G4PolyPhiFaceEdge *prevEdge = edges+numEdges-1; - edge = edges; - do { - // - // Calculate vertex 2D normals (on the phi surface) - // - G4double rPart = prevEdge->tr + edge->tr; - G4double zPart = prevEdge->tz + edge->tz; - G4double norm = sqrt( rPart*rPart + zPart*zPart ); - G4double rNorm = +zPart/norm; - G4double zNorm = -rPart/norm; - - edge->v0->rNorm = rNorm; - edge->v0->zNorm = zNorm; - - // - // Calculate the 3D normals. - // - // Find the vector perpendicular to the z axis - // that defines the plane that contains the vertex normal - // - G4ThreeVector xyVector; - - if (edge->v0->r < DBL_MIN) { - // - // This is a vertex at r==0, which is a special - // case. The normal we will construct lays in the - // plane at the center of the phi opening. - // - // We also know that rNorm < 0 - // - G4double zSignOther = start ? -1 : 1; - G4ThreeVector normalOther( zSignOther*sin(phiOther), - -zSignOther*cos(phiOther), 0 ); - - xyVector = - normal - normalOther; - } - else { - // - // This is a vertex at r > 0. The plane - // is the average of the normal and the - // normal of the adjacent phi face - // - xyVector = G4ThreeVector( cosMid, sinMid, 0 ); - if (rNorm < 0) - xyVector -= normal; - else - xyVector += normal; - } - - // - // Combine it with the r/z direction from the face - // - edge->v0->norm3D = rNorm*xyVector.unit() + G4ThreeVector( 0, 0, zNorm ); - } while( prevEdge=edge, ++edge < edges+numEdges ); - - // - // Build point on surface - // - G4double rAve = 0.5*(rMax-rMin), - zAve = 0.5*(zMax-zMin); - surface = G4ThreeVector( rAve*radial.x(), rAve*radial.y(), zAve ); + // + // Go back and fill in corner "normals" + // + G4PolyPhiFaceEdge *prevEdge = edges+numEdges-1; + edge = edges; + do + { + // + // Calculate vertex 2D normals (on the phi surface) + // + G4double rPart = prevEdge->tr + edge->tr; + G4double zPart = prevEdge->tz + edge->tz; + G4double norm = sqrt( rPart*rPart + zPart*zPart ); + G4double rNorm = +zPart/norm; + G4double zNorm = -rPart/norm; + + edge->v0->rNorm = rNorm; + edge->v0->zNorm = zNorm; + + // + // Calculate the 3D normals. + // + // Find the vector perpendicular to the z axis + // that defines the plane that contains the vertex normal + // + G4ThreeVector xyVector; + + if (edge->v0->r < DBL_MIN) + { + // + // This is a vertex at r==0, which is a special + // case. The normal we will construct lays in the + // plane at the center of the phi opening. + // + // We also know that rNorm < 0 + // + G4double zSignOther = start ? -1 : 1; + G4ThreeVector normalOther( zSignOther*sin(phiOther), + -zSignOther*cos(phiOther), 0 ); + + xyVector = - normal - normalOther; + } + else + { + // + // This is a vertex at r > 0. The plane + // is the average of the normal and the + // normal of the adjacent phi face + // + xyVector = G4ThreeVector( cosMid, sinMid, 0 ); + if (rNorm < 0) + xyVector -= normal; + else + xyVector += normal; + } + + // + // Combine it with the r/z direction from the face + // + edge->v0->norm3D = rNorm*xyVector.unit() + G4ThreeVector( 0, 0, zNorm ); + } while( prevEdge=edge, ++edge < edges+numEdges ); + + // + // Build point on surface + // + G4double rAve = 0.5*(rMax-rMin), + zAve = 0.5*(zMax-zMin); + surface = G4ThreeVector( rAve*radial.x(), rAve*radial.y(), zAve ); } @@ -234,14 +245,15 @@ G4PolyPhiFace::G4PolyPhiFace( const G4ReduciblePolygon *rz, G4double phi, // void G4PolyPhiFace::Diagnose( G4VSolid *owner ) { - G4PolyPhiFaceVertex *corner = corners; - do { - G4ThreeVector test(corner->x, corner->y, corner->z); - test -= 1E-6*corner->norm3D; - - if (owner->Inside(test) != kInside) - G4Exception( "G4PolyPhiFace::Diagnose -- Bad vertex normal found" ); - } while( ++corner < corners+numEdges ); + G4PolyPhiFaceVertex *corner = corners; + do + { + G4ThreeVector test(corner->x, corner->y, corner->z); + test -= 1E-6*corner->norm3D; + + if (owner->Inside(test) != kInside) + G4Exception( "G4PolyPhiFace::Diagnose() - Bad vertex normal found" ); + } while( ++corner < corners+numEdges ); } @@ -250,8 +262,8 @@ void G4PolyPhiFace::Diagnose( G4VSolid *owner ) // G4PolyPhiFace::~G4PolyPhiFace() { - delete [] edges; - delete [] corners; + delete [] edges; + delete [] corners; } @@ -260,7 +272,7 @@ G4PolyPhiFace::~G4PolyPhiFace() // G4PolyPhiFace::G4PolyPhiFace( const G4PolyPhiFace &source ) { - CopyStuff( source ); + CopyStuff( source ); } @@ -269,14 +281,14 @@ G4PolyPhiFace::G4PolyPhiFace( const G4PolyPhiFace &source ) // G4PolyPhiFace& G4PolyPhiFace::operator=( const G4PolyPhiFace &source ) { - if (this == &source) return *this; + if (this == &source) return *this; - delete [] edges; - delete [] corners; - - CopyStuff( source ); - - return *this; + delete [] edges; + delete [] corners; + + CopyStuff( source ); + + return *this; } @@ -285,96 +297,102 @@ G4PolyPhiFace& G4PolyPhiFace::operator=( const G4PolyPhiFace &source ) // void G4PolyPhiFace::CopyStuff( const G4PolyPhiFace &source ) { - // - // The simple stuff - // - numEdges = source.numEdges; - normal = source.normal; - radial = source.radial; - surface = source.surface; - rMin = source.rMin; - rMax = source.rMax; - zMin = source.zMin; - zMax = source.zMax; - allBehind = source.allBehind; - - // - // Corner dynamic array - // - corners = new G4PolyPhiFaceVertex[numEdges]; - G4PolyPhiFaceVertex *corn = corners, - *sourceCorn = source.corners; - do { - *corn = *sourceCorn; - } while( ++sourceCorn, ++corn < corners+numEdges ); - - // - // Edge dynamic array - // - edges = new G4PolyPhiFaceEdge[numEdges]; + // + // The simple stuff + // + numEdges = source.numEdges; + normal = source.normal; + radial = source.radial; + surface = source.surface; + rMin = source.rMin; + rMax = source.rMax; + zMin = source.zMin; + zMax = source.zMax; + allBehind = source.allBehind; + + // + // Corner dynamic array + // + corners = new G4PolyPhiFaceVertex[numEdges]; + G4PolyPhiFaceVertex *corn = corners, + *sourceCorn = source.corners; + do + { + *corn = *sourceCorn; + } while( ++sourceCorn, ++corn < corners+numEdges ); + + // + // Edge dynamic array + // + edges = new G4PolyPhiFaceEdge[numEdges]; - G4PolyPhiFaceVertex *prev = corners+numEdges-1, - *here = corners; - G4PolyPhiFaceEdge *edge = edges, - *sourceEdge = source.edges; - do { - *edge = *sourceEdge; - edge->v0 = prev; - edge->v1 = here; - } while( ++sourceEdge, ++edge, prev=here, ++here < corners+numEdges ); + G4PolyPhiFaceVertex *prev = corners+numEdges-1, + *here = corners; + G4PolyPhiFaceEdge *edge = edges, + *sourceEdge = source.edges; + do + { + *edge = *sourceEdge; + edge->v0 = prev; + edge->v1 = here; + } while( ++sourceEdge, ++edge, prev=here, ++here < corners+numEdges ); } // // Intersect // -G4bool G4PolyPhiFace::Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &aNormal, G4bool &isAllBehind ) +G4bool G4PolyPhiFace::Intersect( const G4ThreeVector &p, + const G4ThreeVector &v, + G4bool outgoing, + G4double surfTolerance, + G4double &distance, + G4double &distFromSurface, + G4ThreeVector &aNormal, + G4bool &isAllBehind ) { - G4double normSign = outgoing ? +1 : -1; - - // - // These don't change - // - isAllBehind = allBehind; - aNormal = normal; + G4double normSign = outgoing ? +1 : -1; + + // + // These don't change + // + isAllBehind = allBehind; + aNormal = normal; - // - // Correct normal? Here we have straight sides, and can safely ignore - // intersections where the dot product with the normal is zero. - // - G4double dotProd = normSign*normal.dot(v); - - if (dotProd <= 0) return false; + // + // Correct normal? Here we have straight sides, and can safely ignore + // intersections where the dot product with the normal is zero. + // + G4double dotProd = normSign*normal.dot(v); + + if (dotProd <= 0) return false; - // - // Calculate distance to surface. If the side is too far - // behind the point, we must reject it. - // - G4ThreeVector ps = p - surface; - distFromSurface = -normSign*ps.dot(normal); - - if (distFromSurface < -surfTolerance) return false; + // + // Calculate distance to surface. If the side is too far + // behind the point, we must reject it. + // + G4ThreeVector ps = p - surface; + distFromSurface = -normSign*ps.dot(normal); + + if (distFromSurface < -surfTolerance) return false; - // - // Calculate precise distance to intersection with the side - // (along the trajectory, not normal to the surface) - // - distance = distFromSurface/dotProd; + // + // Calculate precise distance to intersection with the side + // (along the trajectory, not normal to the surface) + // + distance = distFromSurface/dotProd; - // - // Calculate intersection point in r,z - // - G4ThreeVector ip = p + distance*v; - - G4double r = radial.dot(ip); - - // - // And is it inside the r/z extent? - // - return InsideEdgesExact( r, ip.z(), normSign, p, v ); + // + // Calculate intersection point in r,z + // + G4ThreeVector ip = p + distance*v; + + G4double r = radial.dot(ip); + + // + // And is it inside the r/z extent? + // + return InsideEdgesExact( r, ip.z(), normSign, p, v ); } @@ -383,147 +401,157 @@ G4bool G4PolyPhiFace::Intersect( const G4ThreeVector &p, const G4ThreeVector &v, // G4double G4PolyPhiFace::Distance( const G4ThreeVector &p, G4bool outgoing ) { - G4double normSign = outgoing ? +1 : -1; - // - // Correct normal? - // - G4ThreeVector ps = p - surface; - G4double distPhi = -normSign*normal.dot(ps); - - if (distPhi < -0.5*kCarTolerance) - return kInfinity; - else if (distPhi < 0) - distPhi = 0.0; - - // - // Calculate projected point in r,z - // - G4double r = radial.dot(p); - - // - // Are we inside the face? - // - G4double distRZ2; - - if (InsideEdges( r, p.z(), &distRZ2, 0 )) { - // - // Yup, answer is just distPhi - // - return distPhi; - } - else { - // - // Nope. Penalize by distance out - // - return sqrt( distPhi*distPhi + distRZ2 ); - } -} - + G4double normSign = outgoing ? +1 : -1; + // + // Correct normal? + // + G4ThreeVector ps = p - surface; + G4double distPhi = -normSign*normal.dot(ps); + + if (distPhi < -0.5*kCarTolerance) + return kInfinity; + else if (distPhi < 0) + distPhi = 0.0; + + // + // Calculate projected point in r,z + // + G4double r = radial.dot(p); + + // + // Are we inside the face? + // + G4double distRZ2; + + if (InsideEdges( r, p.z(), &distRZ2, 0 )) + { + // + // Yup, answer is just distPhi + // + return distPhi; + } + else + { + // + // Nope. Penalize by distance out + // + return sqrt( distPhi*distPhi + distRZ2 ); + } +} + // // Inside // -EInside G4PolyPhiFace::Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ) +EInside G4PolyPhiFace::Inside( const G4ThreeVector &p, + G4double tolerance, + G4double *bestDistance ) { - // - // Get distance along phi, which if negative means the point - // is nominally inside the shape. - // - G4ThreeVector ps = p - surface; - G4double distPhi = normal.dot(ps); - - // - // Calculate projected point in r,z - // - G4double r = radial.dot(p); - - // - // Are we inside the face? - // - G4double distRZ2; - G4PolyPhiFaceVertex *base3Dnorm; - G4ThreeVector *head3Dnorm; - - if (InsideEdges( r, p.z(), &distRZ2, &base3Dnorm, &head3Dnorm )) { - // - // Looks like we're inside. Distance is distance in phi. - // - *bestDistance = fabs(distPhi); - - // - // Use distPhi to decide fate - // - if (distPhi < -tolerance) return kInside; - if (distPhi < tolerance) return kSurface; - return kOutside; - } - else { - // - // We're outside the extent of the face, - // so the distance is penalized by distance from edges in RZ - // - *bestDistance = sqrt( distPhi*distPhi + distRZ2 ); - - // - // Use edge normal to decide fate - // - G4ThreeVector cc( base3Dnorm->r*radial.x(), - base3Dnorm->r*radial.y(), - base3Dnorm->z ); - cc = p - cc; - G4double normDist = head3Dnorm->dot(cc); - if ( distRZ2 > tolerance*tolerance ) { - // - // We're far enough away that kSurface is not possible - // - return normDist < 0 ? kInside : kOutside; - } - - if (normDist < -tolerance) return kInside; - if (normDist < tolerance) return kSurface; - return kOutside; - } -} + // + // Get distance along phi, which if negative means the point + // is nominally inside the shape. + // + G4ThreeVector ps = p - surface; + G4double distPhi = normal.dot(ps); + + // + // Calculate projected point in r,z + // + G4double r = radial.dot(p); + + // + // Are we inside the face? + // + G4double distRZ2; + G4PolyPhiFaceVertex *base3Dnorm; + G4ThreeVector *head3Dnorm; + + if (InsideEdges( r, p.z(), &distRZ2, &base3Dnorm, &head3Dnorm )) + { + // + // Looks like we're inside. Distance is distance in phi. + // + *bestDistance = fabs(distPhi); + + // + // Use distPhi to decide fate + // + if (distPhi < -tolerance) return kInside; + if (distPhi < tolerance) return kSurface; + return kOutside; + } + else + { + // + // We're outside the extent of the face, + // so the distance is penalized by distance from edges in RZ + // + *bestDistance = sqrt( distPhi*distPhi + distRZ2 ); + + // + // Use edge normal to decide fate + // + G4ThreeVector cc( base3Dnorm->r*radial.x(), + base3Dnorm->r*radial.y(), + base3Dnorm->z ); + cc = p - cc; + G4double normDist = head3Dnorm->dot(cc); + if ( distRZ2 > tolerance*tolerance ) + { + // + // We're far enough away that kSurface is not possible + // + return normDist < 0 ? kInside : kOutside; + } + + if (normDist < -tolerance) return kInside; + if (normDist < tolerance) return kSurface; + return kOutside; + } +} // // Normal // -// This virtual member is simple for our planer shape, which has only one normal +// This virtual member is simple for our planer shape, +// which has only one normal // -G4ThreeVector G4PolyPhiFace::Normal( const G4ThreeVector &p, G4double *bestDistance ) +G4ThreeVector G4PolyPhiFace::Normal( const G4ThreeVector &p, + G4double *bestDistance ) { - // - // Get distance along phi, which if negative means the point - // is nominally inside the shape. - // - G4double distPhi = normal.dot(p); + // + // Get distance along phi, which if negative means the point + // is nominally inside the shape. + // + G4double distPhi = normal.dot(p); - // - // Calculate projected point in r,z - // - G4double r = radial.dot(p); - - // - // Are we inside the face? - // - G4double distRZ2; - - if (InsideEdges( r, p.z(), &distRZ2, 0 )) { - // - // Yup, answer is just distPhi - // - *bestDistance = fabs(distPhi); - } - else { - // - // Nope. Penalize by distance out - // - *bestDistance = sqrt( distPhi*distPhi + distRZ2 ); - } - - return normal; + // + // Calculate projected point in r,z + // + G4double r = radial.dot(p); + + // + // Are we inside the face? + // + G4double distRZ2; + + if (InsideEdges( r, p.z(), &distRZ2, 0 )) + { + // + // Yup, answer is just distPhi + // + *bestDistance = fabs(distPhi); + } + else + { + // + // Nope. Penalize by distance out + // + *bestDistance = sqrt( distPhi*distPhi + distRZ2 ); + } + + return normal; } @@ -534,18 +562,19 @@ G4ThreeVector G4PolyPhiFace::Normal( const G4ThreeVector &p, G4double *bestDist // G4double G4PolyPhiFace::Extent( const G4ThreeVector axis ) { - G4double max = -kInfinity; - - G4PolyPhiFaceVertex *corner = corners; - do { - G4double here = axis.x()*corner->r*radial.x() - + axis.y()*corner->r*radial.y() - + axis.z()*corner->z; - if (here > max) max = here; - } while( ++corner < corners + numEdges ); - - return max; -} + G4double max = -kInfinity; + + G4PolyPhiFaceVertex *corner = corners; + do + { + G4double here = axis.x()*corner->r*radial.x() + + axis.y()*corner->r*radial.y() + + axis.z()*corner->z; + if (here > max) max = here; + } while( ++corner < corners + numEdges ); + + return max; +} // @@ -554,42 +583,44 @@ G4double G4PolyPhiFace::Extent( const G4ThreeVector axis ) // See notes in G4VCSGface // void G4PolyPhiFace::CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &transform, - G4SolidExtentList &extentList ) + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4SolidExtentList &extentList ) { - // - // Construct a (sometimes big) clippable polygon, - // - // Perform the necessary transformations while doing so - // - G4ClippablePolygon polygon; - - G4PolyPhiFaceVertex *corner = corners; - do { - G4ThreeVector point( 0, 0, corner->z ); - point += radial*corner->r; - - polygon.AddVertexInOrder( transform.TransformPoint( point ) ); - } while( ++corner < corners + numEdges ); - - // - // Clip away - // - if (polygon.PartialClip( voxelLimit, axis )) { - // - // Add it to the list - // - polygon.SetNormal( transform.TransformAxis(normal) ); - extentList.AddSurface( polygon ); - } + // + // Construct a (sometimes big) clippable polygon, + // + // Perform the necessary transformations while doing so + // + G4ClippablePolygon polygon; + + G4PolyPhiFaceVertex *corner = corners; + do + { + G4ThreeVector point( 0, 0, corner->z ); + point += radial*corner->r; + + polygon.AddVertexInOrder( transform.TransformPoint( point ) ); + } while( ++corner < corners + numEdges ); + + // + // Clip away + // + if (polygon.PartialClip( voxelLimit, axis )) + { + // + // Add it to the list + // + polygon.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( polygon ); + } } // //------------------------------------------------------- - - + + // // InsideEdgesExact // @@ -606,109 +637,118 @@ void G4PolyPhiFace::CalculateExtent( const EAxis axis, // See: "Computational Geometry in C (Second Edition)" // http://cs.smith.edu/~orourke/ // -G4bool G4PolyPhiFace::InsideEdgesExact( G4double r, G4double z, G4double normSign, - const G4ThreeVector &p, const G4ThreeVector &v ) +G4bool G4PolyPhiFace::InsideEdgesExact( G4double r, G4double z, + G4double normSign, + const G4ThreeVector &p, + const G4ThreeVector &v ) { - // - // Quick check of extent - // - if ( r < rMin-kCarTolerance || - r > rMax+kCarTolerance ) return false; - - if ( z < zMin-kCarTolerance || - z > zMax+kCarTolerance ) return false; - - // - // Exact check: loop over all vertices - // - G4double qx = p.x() + v.x(), - qy = p.y() + v.y(), - qz = p.z() + v.z(); + // + // Quick check of extent + // + if ( (r < rMin-kCarTolerance) + || (r > rMax+kCarTolerance) ) return false; + + if ( (z < zMin-kCarTolerance) + || (z > zMax+kCarTolerance) ) return false; + + // + // Exact check: loop over all vertices + // + G4double qx = p.x() + v.x(), + qy = p.y() + v.y(), + qz = p.z() + v.z(); - int answer = 0; - G4PolyPhiFaceVertex *corn = corners, - *prev = corners+numEdges-1; + G4int answer = 0; + G4PolyPhiFaceVertex *corn = corners, + *prev = corners+numEdges-1; - G4double cornZ, prevZ; - - prevZ = ExactZOrder( z, qx, qy, qz, v, normSign, prev ); - do { - // - // Get z order of this vertex, and compare to previous vertex - // - cornZ = ExactZOrder( z, qx, qy, qz, v, normSign, corn ); - - if (cornZ < 0) { - if (prevZ < 0) continue; - } - else if (cornZ > 0) { - if (prevZ > 0) continue; - } - else { - // - // By chance, we overlap exactly (within precision) with - // the current vertex. Continue if the same happened previously - // (e.g. the previous vertex had the same z value) - // - if (prevZ == 0) continue; - - // - // Otherwise, to decide what to do, we need to know what is - // coming up next. Specifically, we need to find the next vertex - // with a non-zero z order. - // - // One might worry about infinite loops, but the above conditional - // should prevent it - // - G4PolyPhiFaceVertex *next = corn; - G4double nextZ; - do { - next++; - if (next == corners+numEdges) next = corners; + G4double cornZ, prevZ; + + prevZ = ExactZOrder( z, qx, qy, qz, v, normSign, prev ); + do + { + // + // Get z order of this vertex, and compare to previous vertex + // + cornZ = ExactZOrder( z, qx, qy, qz, v, normSign, corn ); + + if (cornZ < 0) + { + if (prevZ < 0) continue; + } + else if (cornZ > 0) + { + if (prevZ > 0) continue; + } + else + { + // + // By chance, we overlap exactly (within precision) with + // the current vertex. Continue if the same happened previously + // (e.g. the previous vertex had the same z value) + // + if (prevZ == 0) continue; + + // + // Otherwise, to decide what to do, we need to know what is + // coming up next. Specifically, we need to find the next vertex + // with a non-zero z order. + // + // One might worry about infinite loops, but the above conditional + // should prevent it + // + G4PolyPhiFaceVertex *next = corn; + G4double nextZ; + do + { + next++; + if (next == corners+numEdges) next = corners; - nextZ = ExactZOrder( z, qx, qy, qz, v, normSign, next ); - } while( nextZ == 0 ); - - // - // If we won't be changing direction, go to the next vertex - // - if (nextZ*prevZ < 0) continue; - } - - - // - // We overlap in z with the side of the face that stretches from - // vertex "prev" to "corn". On which side (left or right) do - // we lay with respect to this segment? - // - G4ThreeVector qa( qx - prev->x, qy - prev->y, qz - prev->z ), - qb( qx - corn->x, qy - corn->y, qz - corn->z ); + nextZ = ExactZOrder( z, qx, qy, qz, v, normSign, next ); + } while( nextZ == 0 ); + + // + // If we won't be changing direction, go to the next vertex + // + if (nextZ*prevZ < 0) continue; + } + + + // + // We overlap in z with the side of the face that stretches from + // vertex "prev" to "corn". On which side (left or right) do + // we lay with respect to this segment? + // + G4ThreeVector qa( qx - prev->x, qy - prev->y, qz - prev->z ), + qb( qx - corn->x, qy - corn->y, qz - corn->z ); - G4double aboveOrBelow = normSign*qa.cross(qb).dot(v); - - if (aboveOrBelow > 0) - answer++; - else if (aboveOrBelow < 0) - answer--; - else { - // - // A precisely zero answer here means we exactly - // intersect (within roundoff) the edge of the face. - // Return true in this case. - // - return true; - } - } while( prevZ = cornZ, prev=corn, ++corn < corners+numEdges ); - -// G4int fanswer = abs(answer); -// if (fanswer==1 || fanswer>2) { -// G4cerr << "G4PolyPhiFace::InsideEdgesExact: answer is " << answer << G4endl; -// } + G4double aboveOrBelow = normSign*qa.cross(qb).dot(v); + + if (aboveOrBelow > 0) + answer++; + else if (aboveOrBelow < 0) + answer--; + else + { + // + // A precisely zero answer here means we exactly + // intersect (within roundoff) the edge of the face. + // Return true in this case. + // + return true; + } + } while( prevZ = cornZ, prev=corn, ++corn < corners+numEdges ); + +// G4int fanswer = abs(answer); +// if (fanswer==1 || fanswer>2) { +// G4cerr << "G4PolyPhiFace::InsideEdgesExact: answer is " +// << answer << G4endl; +// } - return answer!=0; + return answer!=0; } - - + + // // InsideEdges (don't care aboud distance) // @@ -738,18 +778,18 @@ G4bool G4PolyPhiFace::InsideEdgesExact( G4double r, G4double z, G4double normSig // G4bool G4PolyPhiFace::InsideEdges( G4double r, G4double z ) { - // - // Quick check of extent - // - if ( r < rMin || r > rMax ) return false; - if ( z < zMin || z > zMax ) return false; - - // - // More thorough check - // - G4double notUsed; - - return InsideEdges( r, z, ¬Used, 0 ); + // + // Quick check of extent + // + if ( r < rMin || r > rMax ) return false; + if ( z < zMin || z > zMax ) return false; + + // + // More thorough check + // + G4double notUsed; + + return InsideEdges( r, z, ¬Used, 0 ); } @@ -759,71 +799,78 @@ G4bool G4PolyPhiFace::InsideEdges( G4double r, G4double z ) // Decide if the point in r,z is inside the edges of our face // G4bool G4PolyPhiFace::InsideEdges( G4double r, G4double z, - G4double *bestDist2, - G4PolyPhiFaceVertex **base3Dnorm, - G4ThreeVector **head3Dnorm ) + G4double *bestDist2, + G4PolyPhiFaceVertex **base3Dnorm, + G4ThreeVector **head3Dnorm ) { - G4double bestDistance2 = kInfinity; - G4bool answer = 0; - - G4PolyPhiFaceEdge *edge = edges; - do { - G4PolyPhiFaceVertex *testMe; - // - // Get distance perpendicular to the edge - // - G4double dr = (r-edge->v0->r), dz = (z-edge->v0->z); + G4double bestDistance2 = kInfinity; + G4bool answer = 0; + + G4PolyPhiFaceEdge *edge = edges; + do + { + G4PolyPhiFaceVertex *testMe; + // + // Get distance perpendicular to the edge + // + G4double dr = (r-edge->v0->r), dz = (z-edge->v0->z); - G4double distOut = dr*edge->tz - dz*edge->tr; - G4double distance2 = distOut*distOut; - if (distance2 > bestDistance2) continue; // No hope! + G4double distOut = dr*edge->tz - dz*edge->tr; + G4double distance2 = distOut*distOut; + if (distance2 > bestDistance2) continue; // No hope! - // - // Check to see if normal intersects edge within the edge's boundary - // - G4double s = dr*edge->tr + dz*edge->tz; + // + // Check to see if normal intersects edge within the edge's boundary + // + G4double s = dr*edge->tr + dz*edge->tz; - // - // If it doesn't, penalize distance2 appropriately - // - if (s < 0) { - distance2 += s*s; - testMe = edge->v0; - } - else if (s > edge->length) { - G4double s2 = s-edge->length; - distance2 += s2*s2; - testMe = edge->v1; - } - else { - testMe = 0; - } - - // - // Closest edge so far? - // - if (distance2 < bestDistance2) { - bestDistance2 = distance2; - if (testMe) { - G4double distNorm = dr*testMe->rNorm + dz*testMe->zNorm; - answer = (distNorm <= 0); - if (base3Dnorm) { - *base3Dnorm = testMe; - *head3Dnorm = &testMe->norm3D; - } - } - else { - answer = (distOut <= 0); - if (base3Dnorm) { - *base3Dnorm = edge->v0; - *head3Dnorm = &edge->norm3D; - } - } - } - } while( ++edge < edges + numEdges ); - - *bestDist2 = bestDistance2; - return answer; + // + // If it doesn't, penalize distance2 appropriately + // + if (s < 0) + { + distance2 += s*s; + testMe = edge->v0; + } + else if (s > edge->length) + { + G4double s2 = s-edge->length; + distance2 += s2*s2; + testMe = edge->v1; + } + else + { + testMe = 0; + } + + // + // Closest edge so far? + // + if (distance2 < bestDistance2) + { + bestDistance2 = distance2; + if (testMe) + { + G4double distNorm = dr*testMe->rNorm + dz*testMe->zNorm; + answer = (distNorm <= 0); + if (base3Dnorm) + { + *base3Dnorm = testMe; + *head3Dnorm = &testMe->norm3D; + } + } + else + { + answer = (distOut <= 0); + if (base3Dnorm) + { + *base3Dnorm = edge->v0; + *head3Dnorm = &edge->norm3D; + } + } + } + } while( ++edge < edges + numEdges ); + + *bestDist2 = bestDistance2; + return answer; } - - diff --git a/source/geometry/solids/specific/src/G4Polycone.cc b/source/geometry/solids/specific/src/G4Polycone.cc index 8c3e9ff07e..a6701e5219 100644 --- a/source/geometry/solids/specific/src/G4Polycone.cc +++ b/source/geometry/solids/specific/src/G4Polycone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polycone.cc,v 1.5 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Polycone.cc,v 1.7 2002/10/28 15:18:40 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -36,6 +36,7 @@ // -------------------------------------------------------------------- #include "G4Polycone.hh" + #include "G4PolyconeSide.hh" #include "G4PolyPhiFace.hh" @@ -46,44 +47,48 @@ // // Constructor (GEANT3 style parameters) -// +// G4Polycone::G4Polycone( const G4String& name, - G4double phiStart, - G4double phiTotal, - G4int numZPlanes, + G4double phiStart, + G4double phiTotal, + G4int numZPlanes, const G4double zPlane[], const G4double rInner[], - const G4double rOuter[] ) : G4VCSGfaceted( name ) + const G4double rOuter[] ) + : G4VCSGfaceted( name ) { - // - // Some historical ugliness - // - original_parameters = new G4PolyconeHistorical(); - - original_parameters->Start_angle = phiStart; - original_parameters->Opening_angle = phiTotal; - original_parameters->Num_z_planes = numZPlanes; - original_parameters->Z_values = new G4double[numZPlanes]; - original_parameters->Rmin = new G4double[numZPlanes]; - original_parameters->Rmax = new G4double[numZPlanes]; - G4int i; - for (i=0; iZ_values[i] = zPlane[i]; - original_parameters->Rmin[i] = rInner[i]; - original_parameters->Rmax[i] = rOuter[i]; - } - - // - // Build RZ polygon using special PCON/PGON GEANT3 constructor - // - G4ReduciblePolygon *rz = new G4ReduciblePolygon( rInner, rOuter, zPlane, numZPlanes ); - - // - // Do the real work - // - Create( phiStart, phiTotal, rz ); - - delete rz; + // + // Some historical ugliness + // + original_parameters = new G4PolyconeHistorical(); + + original_parameters->Start_angle = phiStart; + original_parameters->Opening_angle = phiTotal; + original_parameters->Num_z_planes = numZPlanes; + original_parameters->Z_values = new G4double[numZPlanes]; + original_parameters->Rmin = new G4double[numZPlanes]; + original_parameters->Rmax = new G4double[numZPlanes]; + + G4int i; + for (i=0; iZ_values[i] = zPlane[i]; + original_parameters->Rmin[i] = rInner[i]; + original_parameters->Rmax[i] = rOuter[i]; + } + + // + // Build RZ polygon using special PCON/PGON GEANT3 constructor + // + G4ReduciblePolygon *rz = + new G4ReduciblePolygon( rInner, rOuter, zPlane, numZPlanes ); + + // + // Do the real work + // + Create( phiStart, phiTotal, rz ); + + delete rz; } @@ -91,154 +96,197 @@ G4Polycone::G4Polycone( const G4String& name, // Constructor (generic parameters) // G4Polycone::G4Polycone( const G4String& name, - G4double phiStart, - G4double phiTotal, - G4int numRZ, - const G4double r[], - const G4double z[] ) : G4VCSGfaceted( name ) + G4double phiStart, + G4double phiTotal, + G4int numRZ, + const G4double r[], + const G4double z[] ) + : G4VCSGfaceted( name ) { - original_parameters = 0; + original_parameters = 0; - G4ReduciblePolygon *rz = new G4ReduciblePolygon( r, z, numRZ ); - - Create( phiStart, phiTotal, rz ); - - delete rz; + G4ReduciblePolygon *rz = new G4ReduciblePolygon( r, z, numRZ ); + + Create( phiStart, phiTotal, rz ); + + delete rz; } // // Create // -// Generic create routine, called by each constructor after conversion of arguments +// Generic create routine, called by each constructor after +// conversion of arguments // void G4Polycone::Create( G4double phiStart, - G4double phiTotal, - G4ReduciblePolygon *rz ) + G4double phiTotal, + G4ReduciblePolygon *rz ) { - // - // Perform checks of rz values - // - if (rz->Amin() < 0.0) - G4Exception( "G4Polycone: Illegal input parameters: All R values must be >= 0" ); - - G4double rzArea = rz->Area(); - if (rzArea < -kCarTolerance) rz->ReverseOrder(); + // + // Perform checks of rz values + // + if (rz->Amin() < 0.0) + { + G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " All R values must be >= 0 !" + << G4endl; + G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " All R values must be >= 0 !" + << G4endl; + G4Exception("G4Polycone::Create() - Illegal input parameters"); + } + + G4double rzArea = rz->Area(); + if (rzArea < -kCarTolerance) + rz->ReverseOrder(); - else if (rzArea < -kCarTolerance) - G4Exception( "G4Polycone: Illegal input parameters: R/Z cross section is zero or near zero" ); - - if ((!rz->RemoveDuplicateVertices( kCarTolerance )) || - (!rz->RemoveRedundantVertices( kCarTolerance )) ) - G4Exception( "G4Polycone: Illegal input parameters: Too few unique R/Z values" ); + else if (rzArea < -kCarTolerance) + { + G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " R/Z cross section is zero or near zero: " + << rzArea << G4endl; + G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " R/Z cross section is zero or near zero: " + << rzArea << G4endl; + G4Exception("G4Polycone::Create() - Illegal input parameters"); + } + + if ( (!rz->RemoveDuplicateVertices( kCarTolerance )) + || (!rz->RemoveRedundantVertices( kCarTolerance )) ) + { + G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " Too few unique R/Z values !" + << G4endl; + G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " Too few unique R/Z values !" + << G4endl; + G4Exception("G4Polycone::Create() - Illegal input parameters"); + } - if (rz->CrossesItself(1/kInfinity)) - G4Exception( "G4Polycone: Illegal input parameters: R/Z segments cross" ); + if (rz->CrossesItself(1/kInfinity)) + { + G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " R/Z segments cross !" + << G4endl; + G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl + << " R/Z segments cross !" + << G4endl; + G4Exception("G4Polycone::Create() - Illegal input parameters"); + } - numCorner = rz->NumVertices(); + numCorner = rz->NumVertices(); - // - // Phi opening? Account for some possible roundoff, and interpret - // nonsense value as representing no phi opening - // - if (phiTotal <= 0 || phiTotal > 2.0*M_PI-1E-10) { - phiIsOpen = false; - startPhi = 0; - endPhi = 2*M_PI; - } - else { - phiIsOpen = true; - - // - // Convert phi into our convention - // - startPhi = phiStart; - while( startPhi < 0 ) startPhi += 2*M_PI; - - endPhi = phiStart+phiTotal; - while( endPhi < startPhi ) endPhi += 2*M_PI; - } - - // - // Allocate corner array. - // - corners = new G4PolyconeSideRZ[numCorner]; + // + // Phi opening? Account for some possible roundoff, and interpret + // nonsense value as representing no phi opening + // + if (phiTotal <= 0 || phiTotal > 2.0*M_PI-1E-10) + { + phiIsOpen = false; + startPhi = 0; + endPhi = 2*M_PI; + } + else + { + phiIsOpen = true; + + // + // Convert phi into our convention + // + startPhi = phiStart; + while( startPhi < 0 ) startPhi += 2*M_PI; + + endPhi = phiStart+phiTotal; + while( endPhi < startPhi ) endPhi += 2*M_PI; + } + + // + // Allocate corner array. + // + corners = new G4PolyconeSideRZ[numCorner]; - // - // Copy corners - // - G4ReduciblePolygonIterator iterRZ(rz); - - G4PolyconeSideRZ *next = corners; - iterRZ.Begin(); - do { - next->r = iterRZ.GetA(); - next->z = iterRZ.GetB(); - } while( ++next, iterRZ.Next() ); - - // - // Allocate face pointer array - // - numFace = phiIsOpen ? numCorner+2 : numCorner; - faces = new G4VCSGface*[numFace]; - - // - // Construct conical faces - // - // But! Don't construct a face if both points are at zero radius! - // - G4PolyconeSideRZ *corner = corners, - *prev = corners + numCorner-1, - *nextNext; - G4VCSGface **face = faces; - do { - next = corner+1; - if (next >= corners+numCorner) next = corners; - nextNext = next+1; - if (nextNext >= corners+numCorner) nextNext = corners; - - if (corner->r < 1/kInfinity && next->r < 1/kInfinity) continue; - - // - // We must decide here if we can dare declare one of our faces - // as having a "valid" normal (i.e. allBehind = true). This - // is never possible if the face faces "inward" in r. - // - G4bool allBehind; - if (corner->z > next->z) { - allBehind = false; - } - else { - // - // Otherwise, it is only true if the line passing - // through the two points of the segment do not - // split the r/z cross section - // - allBehind = !rz->BisectedBy( corner->r, corner->z, - next->r, next->z, kCarTolerance ); - } - - *face++ = new G4PolyconeSide( prev, corner, next, nextNext, - startPhi, endPhi-startPhi, phiIsOpen, allBehind ); - } while( prev=corner, corner=next, corner > corners ); - - if (phiIsOpen) { - // - // Construct phi open edges - // - *face++ = new G4PolyPhiFace( rz, startPhi, 0, endPhi ); - *face++ = new G4PolyPhiFace( rz, endPhi, 0, startPhi ); - } - - // - // We might have dropped a face or two: recalculate numFace - // - numFace = face-faces; - - // - // Make enclosingCylinder - // - enclosingCylinder = new G4EnclosingCylinder( rz, phiIsOpen, phiStart, phiTotal ); + // + // Copy corners + // + G4ReduciblePolygonIterator iterRZ(rz); + + G4PolyconeSideRZ *next = corners; + iterRZ.Begin(); + do + { + next->r = iterRZ.GetA(); + next->z = iterRZ.GetB(); + } while( ++next, iterRZ.Next() ); + + // + // Allocate face pointer array + // + numFace = phiIsOpen ? numCorner+2 : numCorner; + faces = new G4VCSGface*[numFace]; + + // + // Construct conical faces + // + // But! Don't construct a face if both points are at zero radius! + // + G4PolyconeSideRZ *corner = corners, + *prev = corners + numCorner-1, + *nextNext; + G4VCSGface **face = faces; + do + { + next = corner+1; + if (next >= corners+numCorner) next = corners; + nextNext = next+1; + if (nextNext >= corners+numCorner) nextNext = corners; + + if (corner->r < 1/kInfinity && next->r < 1/kInfinity) continue; + + // + // We must decide here if we can dare declare one of our faces + // as having a "valid" normal (i.e. allBehind = true). This + // is never possible if the face faces "inward" in r. + // + G4bool allBehind; + if (corner->z > next->z) + { + allBehind = false; + } + else + { + // + // Otherwise, it is only true if the line passing + // through the two points of the segment do not + // split the r/z cross section + // + allBehind = !rz->BisectedBy( corner->r, corner->z, + next->r, next->z, kCarTolerance ); + } + + *face++ = new G4PolyconeSide( prev, corner, next, nextNext, + startPhi, endPhi-startPhi, phiIsOpen, allBehind ); + } while( prev=corner, corner=next, corner > corners ); + + if (phiIsOpen) + { + // + // Construct phi open edges + // + *face++ = new G4PolyPhiFace( rz, startPhi, 0, endPhi ); + *face++ = new G4PolyPhiFace( rz, endPhi, 0, startPhi ); + } + + // + // We might have dropped a face or two: recalculate numFace + // + numFace = face-faces; + + // + // Make enclosingCylinder + // + enclosingCylinder = + new G4EnclosingCylinder( rz, phiIsOpen, phiStart, phiTotal ); } @@ -247,21 +295,20 @@ void G4Polycone::Create( G4double phiStart, // G4Polycone::~G4Polycone() { - delete [] corners; - - if (original_parameters) delete original_parameters; - if (enclosingCylinder) delete enclosingCylinder; + delete [] corners; + + if (original_parameters) delete original_parameters; + if (enclosingCylinder) delete enclosingCylinder; } - - // // Copy constructor // -G4Polycone::G4Polycone( const G4Polycone &source ) : G4VCSGfaceted( source ) +G4Polycone::G4Polycone( const G4Polycone &source ) + : G4VCSGfaceted( source ) { - CopyStuff( source ); + CopyStuff( source ); } @@ -270,18 +317,18 @@ G4Polycone::G4Polycone( const G4Polycone &source ) : G4VCSGfaceted( source ) // const G4Polycone &G4Polycone::operator=( const G4Polycone &source ) { - if (this == &source) return *this; - - G4VCSGfaceted::operator=( source ); - - delete [] corners; - if (original_parameters) delete original_parameters; - - delete enclosingCylinder; - - CopyStuff( source ); - - return *this; + if (this == &source) return *this; + + G4VCSGfaceted::operator=( source ); + + delete [] corners; + if (original_parameters) delete original_parameters; + + delete enclosingCylinder; + + CopyStuff( source ); + + return *this; } @@ -290,111 +337,184 @@ const G4Polycone &G4Polycone::operator=( const G4Polycone &source ) // void G4Polycone::CopyStuff( const G4Polycone &source ) { - // - // Simple stuff - // - startPhi = source.startPhi; - endPhi = source.endPhi; - phiIsOpen = source.phiIsOpen; - numCorner = source.numCorner; + // + // Simple stuff + // + startPhi = source.startPhi; + endPhi = source.endPhi; + phiIsOpen = source.phiIsOpen; + numCorner = source.numCorner; - // - // The corner array - // - corners = new G4PolyconeSideRZ[numCorner]; - - G4PolyconeSideRZ *corn = corners, - *sourceCorn = source.corners; - do { - *corn = *sourceCorn; - } while( ++sourceCorn, ++corn < corners+numCorner ); - - // - // Original parameters - // - if (source.original_parameters) { - original_parameters = new G4PolyconeHistorical( *source.original_parameters ); - } - - // - // Enclosing cylinder - // - enclosingCylinder = new G4EnclosingCylinder( *source.enclosingCylinder ); + // + // The corner array + // + corners = new G4PolyconeSideRZ[numCorner]; + + G4PolyconeSideRZ *corn = corners, + *sourceCorn = source.corners; + do + { + *corn = *sourceCorn; + } while( ++sourceCorn, ++corn < corners+numCorner ); + + // + // Original parameters + // + if (source.original_parameters) + { + original_parameters = + new G4PolyconeHistorical( *source.original_parameters ); + } + + // + // Enclosing cylinder + // + enclosingCylinder = new G4EnclosingCylinder( *source.enclosingCylinder ); } // // Inside // -// This is an override of G4VCSGfaceted::Inside, created in order to speed things -// up by first checking with G4EnclosingCylinder. +// This is an override of G4VCSGfaceted::Inside, created in order +// to speed things up by first checking with G4EnclosingCylinder. // EInside G4Polycone::Inside( const G4ThreeVector &p ) const { - // - // Quick test - // - if (enclosingCylinder->MustBeOutside(p)) return kOutside; + // + // Quick test + // + if (enclosingCylinder->MustBeOutside(p)) return kOutside; - // - // Long answer - // - return G4VCSGfaceted::Inside(p); + // + // Long answer + // + return G4VCSGfaceted::Inside(p); } // // DistanceToIn // -// This is an override of G4VCSGfaceted::Inside, created in order to speed things -// up by first checking with G4EnclosingCylinder. +// This is an override of G4VCSGfaceted::Inside, created in order +// to speed things up by first checking with G4EnclosingCylinder. // -G4double G4Polycone::DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const +G4double G4Polycone::DistanceToIn( const G4ThreeVector &p, + const G4ThreeVector &v ) const { - // - // Quick test - // - if (enclosingCylinder->ShouldMiss(p,v)) return kInfinity; - - // - // Long answer - // - return G4VCSGfaceted::DistanceToIn( p, v ); + // + // Quick test + // + if (enclosingCylinder->ShouldMiss(p,v)) + return kInfinity; + + // + // Long answer + // + return G4VCSGfaceted::DistanceToIn( p, v ); +} + + +// +// DistanceToIn +// +G4double G4Polycone::DistanceToIn( const G4ThreeVector &p ) const +{ + return G4VCSGfaceted::DistanceToIn(p); } // // ComputeDimensions // -void G4Polycone::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep) +void G4Polycone::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep) { } +// +// GetEntityType +// +G4GeometryType G4Polycone::GetEntityType() const +{ + return G4String("G4Polycone"); +} + +// +// Stream object contents to an output stream +// +G4std::ostream& G4Polycone::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Polycone\n" + << " Parameters: \n" + << " starting phi angle : " << startPhi/degree << " degrees \n" + << " ending phi angle : " << endPhi/degree << " degrees \n"; + G4int i=0; + if (original_parameters) + { + G4int numPlanes = original_parameters->Num_z_planes; + os << " number of Z planes: " << numPlanes << "\n" + << " Z values: \n"; + for (i=0; iZ_values[i] << "\n"; + } + os << " Tangent distances to inner surface: \n"; + for (i=0; iRmin[i] << "\n"; + } + os << " Tangent distances to outer surface: \n"; + for (i=0; iRmax[i] << "\n"; + } + } + os << " number of RZ points: " << numCorner << "\n" + << " RZ values: \n"; + for (i=0; iStart_angle, - original_parameters->Opening_angle, - original_parameters->Num_z_planes, - original_parameters->Z_values, - original_parameters->Rmin, - original_parameters->Rmax); - } - else { - G4cerr << "G4Polycone: visualization of this type of G4Polycone is not supported at this time" << G4endl; - return 0; - } -} + // + // This has to be fixed in visualization. Fake it for the moment. + // + if (original_parameters) + { + return new G4PolyhedronPcon( original_parameters->Start_angle, + original_parameters->Opening_angle, + original_parameters->Num_z_planes, + original_parameters->Z_values, + original_parameters->Rmin, + original_parameters->Rmax ); + } + else + { + G4cerr << "ERROR - G4Polycone::CreatePolyhedron(): " << GetName() << G4endl + << " Visualization of this type of G4Polycone" << G4endl + << " is not supported at this time !" << G4endl; + return 0; + } +} // @@ -402,35 +522,43 @@ G4Polyhedron *G4Polycone::CreatePolyhedron() const // G4NURBS *G4Polycone::CreateNURBS() const { - return 0; + return 0; } // // G4Polycone:G4PolyconeHistorical stuff // -G4Polycone::G4PolyconeHistorical::~G4PolyconeHistorical() + +G4Polycone:: +G4PolyconeHistorical::G4PolyconeHistorical() { - delete [] Z_values; - delete [] Rmin; - delete [] Rmax; } -G4Polycone::G4PolyconeHistorical::G4PolyconeHistorical( const G4PolyconeHistorical &source ) +G4Polycone:: +G4PolyconeHistorical::~G4PolyconeHistorical() { - Start_angle = source.Start_angle; - Opening_angle = source.Opening_angle; - Num_z_planes = source.Num_z_planes; - - Z_values = new G4double[Num_z_planes]; - Rmin = new G4double[Num_z_planes]; - Rmax = new G4double[Num_z_planes]; - - G4int i; - for( i = 0; i < Num_z_planes; i++) { - Z_values[i] = source.Z_values[i]; - Rmin[i] = source.Rmin[i]; - Rmax[i] = source.Rmax[i]; - } + delete [] Z_values; + delete [] Rmin; + delete [] Rmax; } +G4Polycone:: +G4PolyconeHistorical::G4PolyconeHistorical( const G4PolyconeHistorical &source ) +{ + Start_angle = source.Start_angle; + Opening_angle = source.Opening_angle; + Num_z_planes = source.Num_z_planes; + + Z_values = new G4double[Num_z_planes]; + Rmin = new G4double[Num_z_planes]; + Rmax = new G4double[Num_z_planes]; + + G4int i; + for( i = 0; i < Num_z_planes; i++) + { + Z_values[i] = source.Z_values[i]; + Rmin[i] = source.Rmin[i]; + Rmax[i] = source.Rmax[i]; + } +} diff --git a/source/geometry/solids/specific/src/G4PolyconeSide.cc b/source/geometry/solids/specific/src/G4PolyconeSide.cc index c13963755a..f95fe8f68a 100644 --- a/source/geometry/solids/specific/src/G4PolyconeSide.cc +++ b/source/geometry/solids/specific/src/G4PolyconeSide.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyconeSide.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyconeSide.cc,v 1.6 2002/10/30 13:52:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -49,98 +49,105 @@ // order in (r,z). // G4PolyconeSide::G4PolyconeSide( const G4PolyconeSideRZ *prevRZ, - const G4PolyconeSideRZ *tail, - const G4PolyconeSideRZ *head, - const G4PolyconeSideRZ *nextRZ, - G4double thePhiStart, - G4double theDeltaPhi, - G4bool thePhiIsOpen, - G4bool isAllBehind ) + const G4PolyconeSideRZ *tail, + const G4PolyconeSideRZ *head, + const G4PolyconeSideRZ *nextRZ, + G4double thePhiStart, + G4double theDeltaPhi, + G4bool thePhiIsOpen, + G4bool isAllBehind ) + : corners(0) { - // - // Record values - // - r[0] = tail->r; z[0] = tail->z; - r[1] = head->r; z[1] = head->z; - - phiIsOpen = thePhiIsOpen; - if (phiIsOpen) { - deltaPhi = theDeltaPhi; - startPhi = thePhiStart; + // + // Record values + // + r[0] = tail->r; z[0] = tail->z; + r[1] = head->r; z[1] = head->z; + + phiIsOpen = thePhiIsOpen; + if (phiIsOpen) + { + deltaPhi = theDeltaPhi; + startPhi = thePhiStart; - // - // Set phi values to our conventions - // - while (deltaPhi < 0.0) deltaPhi += 2.0*M_PI; - while (startPhi < 0.0) startPhi += 2.0*M_PI; - - // - // Calculate corner coordinates - // - corners = new G4ThreeVector[4]; - - corners[0] = G4ThreeVector( tail->r*cos(startPhi), tail->r*sin(startPhi), tail->z ); - corners[1] = G4ThreeVector( head->r*cos(startPhi), head->r*sin(startPhi), head->z ); - corners[2] = G4ThreeVector( tail->r*cos(startPhi+deltaPhi), tail->r*sin(startPhi+deltaPhi), tail->z ); - corners[3] = G4ThreeVector( head->r*cos(startPhi+deltaPhi), head->r*sin(startPhi+deltaPhi), head->z ); - } - else { - deltaPhi = 2*M_PI; - startPhi = 0.0; - } - - allBehind = isAllBehind; - - // - // Make our intersecting cone - // - cone = new G4IntersectingCone( r, z ); - - // - // Calculate vectors in r,z space - // - rS = r[1]-r[0]; zS = z[1]-z[0]; - length = sqrt( rS*rS + zS*zS); - rS /= length; zS /= length; - - rNorm = +zS; - zNorm = -rS; - - G4double lAdj; - - prevRS = r[0]-prevRZ->r; - prevZS = z[0]-prevRZ->z; - lAdj = sqrt( prevRS*prevRS + prevZS*prevZS ); - prevRS /= lAdj; - prevZS /= lAdj; + // + // Set phi values to our conventions + // + while (deltaPhi < 0.0) deltaPhi += 2.0*M_PI; + while (startPhi < 0.0) startPhi += 2.0*M_PI; + + // + // Calculate corner coordinates + // + corners = new G4ThreeVector[4]; + + corners[0] = G4ThreeVector( tail->r*cos(startPhi), + tail->r*sin(startPhi), tail->z ); + corners[1] = G4ThreeVector( head->r*cos(startPhi), + head->r*sin(startPhi), head->z ); + corners[2] = G4ThreeVector( tail->r*cos(startPhi+deltaPhi), + tail->r*sin(startPhi+deltaPhi), tail->z ); + corners[3] = G4ThreeVector( head->r*cos(startPhi+deltaPhi), + head->r*sin(startPhi+deltaPhi), head->z ); + } + else + { + deltaPhi = 2*M_PI; + startPhi = 0.0; + } + + allBehind = isAllBehind; + + // + // Make our intersecting cone + // + cone = new G4IntersectingCone( r, z ); + + // + // Calculate vectors in r,z space + // + rS = r[1]-r[0]; zS = z[1]-z[0]; + length = sqrt( rS*rS + zS*zS); + rS /= length; zS /= length; + + rNorm = +zS; + zNorm = -rS; + + G4double lAdj; + + prevRS = r[0]-prevRZ->r; + prevZS = z[0]-prevRZ->z; + lAdj = sqrt( prevRS*prevRS + prevZS*prevZS ); + prevRS /= lAdj; + prevZS /= lAdj; - rNormEdge[0] = rNorm + prevZS; - zNormEdge[0] = zNorm - prevRS; - lAdj = sqrt( rNormEdge[0]*rNormEdge[0] + zNormEdge[0]*zNormEdge[0] ); - rNormEdge[0] /= lAdj; - zNormEdge[0] /= lAdj; + rNormEdge[0] = rNorm + prevZS; + zNormEdge[0] = zNorm - prevRS; + lAdj = sqrt( rNormEdge[0]*rNormEdge[0] + zNormEdge[0]*zNormEdge[0] ); + rNormEdge[0] /= lAdj; + zNormEdge[0] /= lAdj; - nextRS = nextRZ->r-r[1]; - nextZS = nextRZ->z-z[1]; - lAdj = sqrt( nextRS*nextRS + nextZS*nextZS ); - nextRS /= lAdj; - nextZS /= lAdj; + nextRS = nextRZ->r-r[1]; + nextZS = nextRZ->z-z[1]; + lAdj = sqrt( nextRS*nextRS + nextZS*nextZS ); + nextRS /= lAdj; + nextZS /= lAdj; - rNormEdge[1] = rNorm + nextZS; - zNormEdge[1] = zNorm - nextRS; - lAdj = sqrt( rNormEdge[1]*rNormEdge[1] + zNormEdge[1]*zNormEdge[1] ); - rNormEdge[1] /= lAdj; - zNormEdge[1] /= lAdj; + rNormEdge[1] = rNorm + nextZS; + zNormEdge[1] = zNorm - nextRS; + lAdj = sqrt( rNormEdge[1]*rNormEdge[1] + zNormEdge[1]*zNormEdge[1] ); + rNormEdge[1] /= lAdj; + zNormEdge[1] /= lAdj; } // // Destructor -// +// G4PolyconeSide::~G4PolyconeSide() { - delete cone; - if (phiIsOpen) delete [] corners; + delete cone; + if (phiIsOpen) delete [] corners; } @@ -149,7 +156,7 @@ G4PolyconeSide::~G4PolyconeSide() // G4PolyconeSide::G4PolyconeSide( const G4PolyconeSide &source ) { - CopyStuff( source ); + CopyStuff( source ); } @@ -158,14 +165,14 @@ G4PolyconeSide::G4PolyconeSide( const G4PolyconeSide &source ) // G4PolyconeSide& G4PolyconeSide::operator=( const G4PolyconeSide &source ) { - if (this == &source) return *this; + if (this == &source) return *this; - delete cone; - if (phiIsOpen) delete [] corners; - - CopyStuff( source ); - - return *this; + delete cone; + if (phiIsOpen) delete [] corners; + + CopyStuff( source ); + + return *this; } @@ -174,246 +181,268 @@ G4PolyconeSide& G4PolyconeSide::operator=( const G4PolyconeSide &source ) // void G4PolyconeSide::CopyStuff( const G4PolyconeSide &source ) { - r[0] = source.r[0]; - r[1] = source.r[1]; - z[0] = source.z[0]; - z[1] = source.z[1]; - - startPhi = source.startPhi; - deltaPhi = source.deltaPhi; - phiIsOpen = source.phiIsOpen; - allBehind = source.allBehind; - - cone = new G4IntersectingCone( *source.cone ); - - rNorm = source.rNorm; - zNorm = source.zNorm; - rS = source.rS; - zS = source.zS; - length = source.length; - prevRS = source.prevRS; - prevZS = source.prevZS; - nextRS = source.nextRS; - nextZS = source.nextZS; - - rNormEdge[0] = source.rNormEdge[0]; - rNormEdge[1] = source.rNormEdge[1]; - zNormEdge[0] = source.zNormEdge[0]; - zNormEdge[1] = source.zNormEdge[1]; - - if (phiIsOpen) { - corners = new G4ThreeVector[4]; - - corners[0] = source.corners[0]; - corners[1] = source.corners[1]; - corners[2] = source.corners[2]; - corners[3] = source.corners[3]; - } + r[0] = source.r[0]; + r[1] = source.r[1]; + z[0] = source.z[0]; + z[1] = source.z[1]; + + startPhi = source.startPhi; + deltaPhi = source.deltaPhi; + phiIsOpen = source.phiIsOpen; + allBehind = source.allBehind; + + cone = new G4IntersectingCone( *source.cone ); + + rNorm = source.rNorm; + zNorm = source.zNorm; + rS = source.rS; + zS = source.zS; + length = source.length; + prevRS = source.prevRS; + prevZS = source.prevZS; + nextRS = source.nextRS; + nextZS = source.nextZS; + + rNormEdge[0] = source.rNormEdge[0]; + rNormEdge[1] = source.rNormEdge[1]; + zNormEdge[0] = source.zNormEdge[0]; + zNormEdge[1] = source.zNormEdge[1]; + + if (phiIsOpen) + { + corners = new G4ThreeVector[4]; + + corners[0] = source.corners[0]; + corners[1] = source.corners[1]; + corners[2] = source.corners[2]; + corners[3] = source.corners[3]; + } } // // Intersect // -G4bool G4PolyconeSide::Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &isAllBehind ) +G4bool G4PolyconeSide::Intersect( const G4ThreeVector &p, + const G4ThreeVector &v, + G4bool outgoing, + G4double surfTolerance, + G4double &distance, + G4double &distFromSurface, + G4ThreeVector &normal, + G4bool &isAllBehind ) { - G4double s1, s2; - G4double normSign = outgoing ? +1 : -1; - - isAllBehind = allBehind; + G4double s1, s2; + G4double normSign = outgoing ? +1 : -1; + + isAllBehind = allBehind; - // - // Check for two possible intersections - // - G4int nside = cone->LineHitsCone( p, v, &s1, &s2 ); - if (nside == 0) return false; - - // - // Check the first side first, since it is (supposed to be) closest - // - G4ThreeVector hit = p + s1*v; - - if (PointOnCone( hit, normSign, p, v, normal )) { - // - // Good intersection! What about the normal? - // - if (normSign*v.dot(normal) > 0) { - // - // We have a valid intersection, but it could very easily - // be behind the point. To decide if we tolerate this, - // we have to see if the point p is on the surface near - // the intersecting point. - // - // What does it mean exactly for the point p to be "near" - // the intersection? It means that if we draw a line from - // p to the hit, the line remains entirely within the - // tolerance bounds of the cone. To test this, we can - // ask if the normal is correct near p. - // - G4double pr = p.perp(); - if (pr < DBL_MIN) pr = DBL_MIN; - G4ThreeVector pNormal( rNorm*p.x()/pr, rNorm*p.y()/pr, zNorm ); - if (normSign*v.dot(pNormal) > 0) { - // - // p and intersection in same hemisphere - // - G4double distOutside2; - distFromSurface = -normSign*DistanceAway( p, false, distOutside2 ); - if (distOutside2 < surfTolerance*surfTolerance) { - if (distFromSurface > -surfTolerance) { - // - // We are just inside or away from the - // surface. Accept *any* value of distance. - // - distance = s1; - return true; - } - } - } - else - distFromSurface = s1; - - // - // Accept positive distances - // - if (s1 > 0) { - distance = s1; - return true; - } - } - } - - if (nside==1) return false; - - // - // Well, try the second hit - // - hit = p + s2*v; - - if (PointOnCone( hit, normSign, p, v, normal )) { - // - // Good intersection! What about the normal? - // - if (normSign*v.dot(normal) > 0) { - G4double pr = p.perp(); - if (pr < DBL_MIN) pr = DBL_MIN; - G4ThreeVector pNormal( rNorm*p.x()/pr, rNorm*p.y()/pr, zNorm ); - if (normSign*v.dot(pNormal) > 0) { - G4double distOutside2; - distFromSurface = -normSign*DistanceAway( p, false, distOutside2 ); - if (distOutside2 < surfTolerance*surfTolerance) { - if (distFromSurface > -surfTolerance) { - distance = s2; - return true; - } - } - } - else - distFromSurface = s2; - - if (s2 > 0) { - distance = s2; - return true; - } - } - } + // + // Check for two possible intersections + // + G4int nside = cone->LineHitsCone( p, v, &s1, &s2 ); + if (nside == 0) return false; + + // + // Check the first side first, since it is (supposed to be) closest + // + G4ThreeVector hit = p + s1*v; + + if (PointOnCone( hit, normSign, p, v, normal )) + { + // + // Good intersection! What about the normal? + // + if (normSign*v.dot(normal) > 0) + { + // + // We have a valid intersection, but it could very easily + // be behind the point. To decide if we tolerate this, + // we have to see if the point p is on the surface near + // the intersecting point. + // + // What does it mean exactly for the point p to be "near" + // the intersection? It means that if we draw a line from + // p to the hit, the line remains entirely within the + // tolerance bounds of the cone. To test this, we can + // ask if the normal is correct near p. + // + G4double pr = p.perp(); + if (pr < DBL_MIN) pr = DBL_MIN; + G4ThreeVector pNormal( rNorm*p.x()/pr, rNorm*p.y()/pr, zNorm ); + if (normSign*v.dot(pNormal) > 0) + { + // + // p and intersection in same hemisphere + // + G4double distOutside2; + distFromSurface = -normSign*DistanceAway( p, false, distOutside2 ); + if (distOutside2 < surfTolerance*surfTolerance) + { + if (distFromSurface > -surfTolerance) + { + // + // We are just inside or away from the + // surface. Accept *any* value of distance. + // + distance = s1; + return true; + } + } + } + else + distFromSurface = s1; + + // + // Accept positive distances + // + if (s1 > 0) + { + distance = s1; + return true; + } + } + } + + if (nside==1) return false; + + // + // Well, try the second hit + // + hit = p + s2*v; + + if (PointOnCone( hit, normSign, p, v, normal )) + { + // + // Good intersection! What about the normal? + // + if (normSign*v.dot(normal) > 0) + { + G4double pr = p.perp(); + if (pr < DBL_MIN) pr = DBL_MIN; + G4ThreeVector pNormal( rNorm*p.x()/pr, rNorm*p.y()/pr, zNorm ); + if (normSign*v.dot(pNormal) > 0) + { + G4double distOutside2; + distFromSurface = -normSign*DistanceAway( p, false, distOutside2 ); + if (distOutside2 < surfTolerance*surfTolerance) + { + if (distFromSurface > -surfTolerance) + { + distance = s2; + return true; + } + } + } + else + distFromSurface = s2; + + if (s2 > 0) + { + distance = s2; + return true; + } + } + } - // - // Better luck next time - // - return false; + // + // Better luck next time + // + return false; } G4double G4PolyconeSide::Distance( const G4ThreeVector &p, G4bool outgoing ) { - G4double normSign = outgoing ? -1 : +1; - G4double distFrom, distOut2; - - // - // We have two tries for each hemisphere. Try the closest first. - // - distFrom = normSign*DistanceAway( p, false, distOut2 ); - if (distFrom > -0.5*kCarTolerance ) { - // - // Good answer - // - if (distOut2 > 0) - return sqrt( distFrom*distFrom + distOut2 ); - else - return fabs(distFrom); - } - - // - // Try second side. - // - distFrom = normSign*DistanceAway( p, true, distOut2 ); - if (distFrom > -0.5*kCarTolerance) { + G4double normSign = outgoing ? -1 : +1; + G4double distFrom, distOut2; + + // + // We have two tries for each hemisphere. Try the closest first. + // + distFrom = normSign*DistanceAway( p, false, distOut2 ); + if (distFrom > -0.5*kCarTolerance ) + { + // + // Good answer + // + if (distOut2 > 0) + return sqrt( distFrom*distFrom + distOut2 ); + else + return fabs(distFrom); + } + + // + // Try second side. + // + distFrom = normSign*DistanceAway( p, true, distOut2 ); + if (distFrom > -0.5*kCarTolerance) + { - if (distOut2 > 0) - return sqrt( distFrom*distFrom + distOut2 ); - else - return fabs(distFrom); - } - - return kInfinity; + if (distOut2 > 0) + return sqrt( distFrom*distFrom + distOut2 ); + else + return fabs(distFrom); + } + + return kInfinity; } // // Inside // -EInside G4PolyconeSide::Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ) +EInside G4PolyconeSide::Inside( const G4ThreeVector &p, + G4double tolerance, + G4double *bestDistance ) { - // - // Check both sides - // - G4double distFrom[2], distOut2[2], dist2[2]; - G4double edgeRZnorm[2]; - - distFrom[0] = DistanceAway( p, false, distOut2[0], edgeRZnorm ); - distFrom[1] = DistanceAway( p, true, distOut2[1], edgeRZnorm+1 ); - - dist2[0] = distFrom[0]*distFrom[0] + distOut2[0]; - dist2[1] = distFrom[1]*distFrom[1] + distOut2[1]; - - // - // Who's closest? - // - G4int i = fabs(dist2[0]) < fabs(dist2[1]) ? 0 : 1; - - *bestDistance = sqrt( dist2[i] ); - - // - // Okay then, inside or out? - // - if ( (fabs(edgeRZnorm[i]) < tolerance) && (distOut2[i] < tolerance*tolerance) ) - return kSurface; - else if (edgeRZnorm[i] < 0) - return kInside; - else - return kOutside; + // + // Check both sides + // + G4double distFrom[2], distOut2[2], dist2[2]; + G4double edgeRZnorm[2]; + + distFrom[0] = DistanceAway( p, false, distOut2[0], edgeRZnorm ); + distFrom[1] = DistanceAway( p, true, distOut2[1], edgeRZnorm+1 ); + + dist2[0] = distFrom[0]*distFrom[0] + distOut2[0]; + dist2[1] = distFrom[1]*distFrom[1] + distOut2[1]; + + // + // Who's closest? + // + G4int i = fabs(dist2[0]) < fabs(dist2[1]) ? 0 : 1; + + *bestDistance = sqrt( dist2[i] ); + + // + // Okay then, inside or out? + // + if ( (fabs(edgeRZnorm[i]) < tolerance) + && (distOut2[i] < tolerance*tolerance) ) + return kSurface; + else if (edgeRZnorm[i] < 0) + return kInside; + else + return kOutside; } // // Normal // -G4ThreeVector G4PolyconeSide::Normal( const G4ThreeVector &p, G4double *bestDistance ) +G4ThreeVector G4PolyconeSide::Normal( const G4ThreeVector &p, + G4double *bestDistance ) { - G4ThreeVector dFrom; - G4double dOut2; - - dFrom = DistanceAway( p, false, dOut2 ); - - *bestDistance = sqrt( dFrom*dFrom + dOut2 ); - - G4double rad = p.perp(); - return G4ThreeVector( rNorm*p.x()/rad, rNorm*p.y()/rad, zNorm ); + G4ThreeVector dFrom; + G4double dOut2; + + dFrom = DistanceAway( p, false, dOut2 ); + + *bestDistance = sqrt( dFrom*dFrom + dOut2 ); + + G4double rad = p.perp(); + return G4ThreeVector( rNorm*p.x()/rad, rNorm*p.y()/rad, zNorm ); } @@ -422,56 +451,59 @@ G4ThreeVector G4PolyconeSide::Normal( const G4ThreeVector &p, G4double *bestDis // G4double G4PolyconeSide::Extent( const G4ThreeVector axis ) { - if (axis.perp2() < DBL_MIN) { - // - // Special case - // - return axis.z() < 0 ? -cone->ZLo() : cone->ZHi(); - } + if (axis.perp2() < DBL_MIN) + { + // + // Special case + // + return axis.z() < 0 ? -cone->ZLo() : cone->ZHi(); + } - // - // Is the axis pointing inside our phi gap? - // - if (phiIsOpen) { - G4double phi = axis.phi(); - while( phi < startPhi ) phi += 2*M_PI; - - if (phi > deltaPhi+startPhi) { - // - // Yeah, looks so. Make four three vectors defining the phi - // opening - // - G4double cosP = cos(startPhi), sinP = sin(startPhi); - G4ThreeVector a( r[0]*cosP, r[0]*sinP, z[0] ); - G4ThreeVector b( r[1]*cosP, r[1]*sinP, z[1] ); - cosP = cos(startPhi+deltaPhi); sinP = sin(startPhi+deltaPhi); - G4ThreeVector c( r[0]*cosP, r[0]*sinP, z[0] ); - G4ThreeVector d( r[1]*cosP, r[1]*sinP, z[1] ); - - G4double ad = axis.dot(a), - bd = axis.dot(b), - cd = axis.dot(c), - dd = axis.dot(d); - - if (bd > ad) ad = bd; - if (cd > ad) ad = cd; - if (dd > ad) ad = dd; - - return ad; - } - } + // + // Is the axis pointing inside our phi gap? + // + if (phiIsOpen) + { + G4double phi = axis.phi(); + while( phi < startPhi ) phi += 2*M_PI; + + if (phi > deltaPhi+startPhi) + { + // + // Yeah, looks so. Make four three vectors defining the phi + // opening + // + G4double cosP = cos(startPhi), sinP = sin(startPhi); + G4ThreeVector a( r[0]*cosP, r[0]*sinP, z[0] ); + G4ThreeVector b( r[1]*cosP, r[1]*sinP, z[1] ); + cosP = cos(startPhi+deltaPhi); sinP = sin(startPhi+deltaPhi); + G4ThreeVector c( r[0]*cosP, r[0]*sinP, z[0] ); + G4ThreeVector d( r[1]*cosP, r[1]*sinP, z[1] ); + + G4double ad = axis.dot(a), + bd = axis.dot(b), + cd = axis.dot(c), + dd = axis.dot(d); + + if (bd > ad) ad = bd; + if (cd > ad) ad = cd; + if (dd > ad) ad = dd; + + return ad; + } + } - // - // Check either end - // - G4double aPerp = axis.perp(); - - G4double a = aPerp*r[0] + axis.z()*z[0]; - G4double b = aPerp*r[1] + axis.z()*z[1]; - - if (b > a) a = b; - - return a; + // + // Check either end + // + G4double aPerp = axis.perp(); + + G4double a = aPerp*r[0] + axis.z()*z[0]; + G4double b = aPerp*r[1] + axis.z()*z[1]; + + if (b > a) a = b; + + return a; } @@ -482,304 +514,318 @@ G4double G4PolyconeSide::Extent( const G4ThreeVector axis ) // See notes in G4VCSGface // void G4PolyconeSide::CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &transform, - G4SolidExtentList &extentList ) + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4SolidExtentList &extentList ) { - G4ClippablePolygon polygon; - - // - // Here we will approximate (ala G4Cons) and divide our conical section - // into segments, like G4Polyhedra. When doing so, the radius - // is extented far enough such that the segments always lie - // just outside the surface of the conical section we are - // approximating. - // - - // - // Choose phi size of our segment(s) based on constants as - // defined in meshdefs.hh - // - G4int numPhi = (G4int)(deltaPhi/kMeshAngleDefault) + 1; - if (numPhi < kMinMeshSections) - numPhi = kMinMeshSections; - else if (numPhi > kMaxMeshSections) - numPhi = kMaxMeshSections; - - G4double sigPhi = deltaPhi/numPhi; - - // - // Determine radius factor to keep segments outside - // - G4double rFudge = 1.0/cos(0.5*sigPhi); - - // - // Decide which radius to use on each end of the side, - // and whether a transition mesh is required - // - // {r0,z0} - Beginning of this side - // {r1,z1} - Ending of this side - // {r2,z0} - Beginning of transition piece connecting previous - // side (and ends at beginning of this side) - // - // So, order is 2 --> 0 --> 1. - // ------- - // - // r2 < 0 indicates that no transition piece is required - // - G4double r0, r1, r2, z0, z1; - - r2 = -1; // By default: no transition piece - - if (rNorm < -DBL_MIN) { - // - // This side faces *inward*, and so our mesh has - // the same radius - // - r1 = r[1]; - z1 = z[1]; - z0 = z[0]; - r0 = r[0]; - - r2 = -1; - - if (prevZS > DBL_MIN) { - // - // The previous side is facing outwards - // - if ( prevRS*zS - prevZS*rS > 0 ) { - // - // Transition was convex: build transition piece - // - if (r[0] > DBL_MIN) r2 = r[0]*rFudge; - } - else { - // - // Transition was concave: short this side - // - FindLineIntersect( z0, r0, zS, rS, - z0, r0*rFudge, prevZS, prevRS*rFudge, z0, r0 ); - } - } - - if ( nextZS > DBL_MIN && (rS*nextZS - zS*nextRS < 0) ) { - // - // The next side is facing outwards, forming a - // concave transition: short this side - // - FindLineIntersect( z1, r1, zS, rS, - z1, r1*rFudge, nextZS, nextRS*rFudge, z1, r1 ); - } - } - else if (rNorm > DBL_MIN) { - // - // This side faces *outward* and is given a boost to - // it radius - // - r0 = r[0]*rFudge; - z0 = z[0]; - r1 = r[1]*rFudge; - z1 = z[1]; - - if (prevZS < -DBL_MIN) { - // - // The previous side is facing inwards - // - if ( prevRS*zS - prevZS*rS > 0 ) { - // - // Transition was convex: build transition piece - // - if (r[0] > DBL_MIN) r2 = r[0]; - } - else { - // - // Transition was concave: short this side - // - FindLineIntersect( z0, r0, zS, rS*rFudge, - z0, r[0], prevZS, prevRS, z0, r0 ); - } - } - - if ( nextZS < -DBL_MIN && (rS*nextZS - zS*nextRS < 0) ) { - // - // The next side is facing inwards, forming a - // concave transition: short this side - // - FindLineIntersect( z1, r1, zS, rS*rFudge, - z1, r[1], nextZS, nextRS, z1, r1 ); - } - } - else { - // - // This side is perpendicular to the z axis (is a disk) - // - // Whether or not r0 needs a rFudge factor depends - // on the normal of the previous edge. Similar with r1 - // and the next edge. No transition piece is required. - // - r0 = r[0]; - r1 = r[1]; - z0 = z[0]; - z1 = z[1]; - - if (prevZS > DBL_MIN) r0 *= rFudge; - if (nextZS > DBL_MIN) r1 *= rFudge; - } - - // - // Loop - // - G4double phi = startPhi, - cosPhi = cos(phi), - sinPhi = sin(phi); - - G4ThreeVector v0( r0*cosPhi, r0*sinPhi, z0 ), - v1( r1*cosPhi, r1*sinPhi, z1 ), - v2, w0, w1, w2; - transform.ApplyPointTransform( v0 ); - transform.ApplyPointTransform( v1 ); - - if (r2 >= 0) { - v2 = G4ThreeVector( r2*cosPhi, r2*sinPhi, z0 ); - transform.ApplyPointTransform( v2 ); - } + G4ClippablePolygon polygon; + + // + // Here we will approximate (ala G4Cons) and divide our conical section + // into segments, like G4Polyhedra. When doing so, the radius + // is extented far enough such that the segments always lie + // just outside the surface of the conical section we are + // approximating. + // + + // + // Choose phi size of our segment(s) based on constants as + // defined in meshdefs.hh + // + G4int numPhi = (G4int)(deltaPhi/kMeshAngleDefault) + 1; + if (numPhi < kMinMeshSections) + numPhi = kMinMeshSections; + else if (numPhi > kMaxMeshSections) + numPhi = kMaxMeshSections; + + G4double sigPhi = deltaPhi/numPhi; + + // + // Determine radius factor to keep segments outside + // + G4double rFudge = 1.0/cos(0.5*sigPhi); + + // + // Decide which radius to use on each end of the side, + // and whether a transition mesh is required + // + // {r0,z0} - Beginning of this side + // {r1,z1} - Ending of this side + // {r2,z0} - Beginning of transition piece connecting previous + // side (and ends at beginning of this side) + // + // So, order is 2 --> 0 --> 1. + // ------- + // + // r2 < 0 indicates that no transition piece is required + // + G4double r0, r1, r2, z0, z1; + + r2 = -1; // By default: no transition piece + + if (rNorm < -DBL_MIN) + { + // + // This side faces *inward*, and so our mesh has + // the same radius + // + r1 = r[1]; + z1 = z[1]; + z0 = z[0]; + r0 = r[0]; + + r2 = -1; + + if (prevZS > DBL_MIN) + { + // + // The previous side is facing outwards + // + if ( prevRS*zS - prevZS*rS > 0 ) + { + // + // Transition was convex: build transition piece + // + if (r[0] > DBL_MIN) r2 = r[0]*rFudge; + } + else + { + // + // Transition was concave: short this side + // + FindLineIntersect( z0, r0, zS, rS, + z0, r0*rFudge, prevZS, prevRS*rFudge, z0, r0 ); + } + } + + if ( nextZS > DBL_MIN && (rS*nextZS - zS*nextRS < 0) ) + { + // + // The next side is facing outwards, forming a + // concave transition: short this side + // + FindLineIntersect( z1, r1, zS, rS, + z1, r1*rFudge, nextZS, nextRS*rFudge, z1, r1 ); + } + } + else if (rNorm > DBL_MIN) + { + // + // This side faces *outward* and is given a boost to + // it radius + // + r0 = r[0]*rFudge; + z0 = z[0]; + r1 = r[1]*rFudge; + z1 = z[1]; + + if (prevZS < -DBL_MIN) + { + // + // The previous side is facing inwards + // + if ( prevRS*zS - prevZS*rS > 0 ) + { + // + // Transition was convex: build transition piece + // + if (r[0] > DBL_MIN) r2 = r[0]; + } + else + { + // + // Transition was concave: short this side + // + FindLineIntersect( z0, r0, zS, rS*rFudge, + z0, r[0], prevZS, prevRS, z0, r0 ); + } + } + + if ( nextZS < -DBL_MIN && (rS*nextZS - zS*nextRS < 0) ) + { + // + // The next side is facing inwards, forming a + // concave transition: short this side + // + FindLineIntersect( z1, r1, zS, rS*rFudge, + z1, r[1], nextZS, nextRS, z1, r1 ); + } + } + else + { + // + // This side is perpendicular to the z axis (is a disk) + // + // Whether or not r0 needs a rFudge factor depends + // on the normal of the previous edge. Similar with r1 + // and the next edge. No transition piece is required. + // + r0 = r[0]; + r1 = r[1]; + z0 = z[0]; + z1 = z[1]; + + if (prevZS > DBL_MIN) r0 *= rFudge; + if (nextZS > DBL_MIN) r1 *= rFudge; + } + + // + // Loop + // + G4double phi = startPhi, + cosPhi = cos(phi), + sinPhi = sin(phi); + + G4ThreeVector v0( r0*cosPhi, r0*sinPhi, z0 ), + v1( r1*cosPhi, r1*sinPhi, z1 ), + v2, w0, w1, w2; + transform.ApplyPointTransform( v0 ); + transform.ApplyPointTransform( v1 ); + + if (r2 >= 0) + { + v2 = G4ThreeVector( r2*cosPhi, r2*sinPhi, z0 ); + transform.ApplyPointTransform( v2 ); + } - do { - - phi += sigPhi; - if (numPhi == 1) phi = startPhi+deltaPhi; // Try to avoid roundoff - cosPhi = cos(phi), - sinPhi = sin(phi); - - w0 = G4ThreeVector( r0*cosPhi, r0*sinPhi, z0 ); - w1 = G4ThreeVector( r1*cosPhi, r1*sinPhi, z1 ); - transform.ApplyPointTransform( w0 ); - transform.ApplyPointTransform( w1 ); - - G4ThreeVector deltaV = r0 > r1 ? w0-v0 : w1-v1; - - // - // Build polygon, taking special care to keep the vertices - // in order - // - polygon.ClearAllVertices(); + do + { + phi += sigPhi; + if (numPhi == 1) phi = startPhi+deltaPhi; // Try to avoid roundoff + cosPhi = cos(phi), + sinPhi = sin(phi); + + w0 = G4ThreeVector( r0*cosPhi, r0*sinPhi, z0 ); + w1 = G4ThreeVector( r1*cosPhi, r1*sinPhi, z1 ); + transform.ApplyPointTransform( w0 ); + transform.ApplyPointTransform( w1 ); + + G4ThreeVector deltaV = r0 > r1 ? w0-v0 : w1-v1; + + // + // Build polygon, taking special care to keep the vertices + // in order + // + polygon.ClearAllVertices(); - polygon.AddVertexInOrder( v0 ); - polygon.AddVertexInOrder( v1 ); - polygon.AddVertexInOrder( w1 ); - polygon.AddVertexInOrder( w0 ); + polygon.AddVertexInOrder( v0 ); + polygon.AddVertexInOrder( v1 ); + polygon.AddVertexInOrder( w1 ); + polygon.AddVertexInOrder( w0 ); - // - // Get extent - // - if (polygon.PartialClip( voxelLimit, axis )) { - // - // Get dot product of normal with target axis - // - polygon.SetNormal( deltaV.cross(v1-v0).unit() ); - - extentList.AddSurface( polygon ); - } - - if (r2 >= 0) { - // - // Repeat, for transition piece - // - w2 = G4ThreeVector( r2*cosPhi, r2*sinPhi, z0 ); - transform.ApplyPointTransform( w2 ); + // + // Get extent + // + if (polygon.PartialClip( voxelLimit, axis )) + { + // + // Get dot product of normal with target axis + // + polygon.SetNormal( deltaV.cross(v1-v0).unit() ); + + extentList.AddSurface( polygon ); + } + + if (r2 >= 0) + { + // + // Repeat, for transition piece + // + w2 = G4ThreeVector( r2*cosPhi, r2*sinPhi, z0 ); + transform.ApplyPointTransform( w2 ); - polygon.ClearAllVertices(); + polygon.ClearAllVertices(); - polygon.AddVertexInOrder( v2 ); - polygon.AddVertexInOrder( v0 ); - polygon.AddVertexInOrder( w0 ); - polygon.AddVertexInOrder( w2 ); + polygon.AddVertexInOrder( v2 ); + polygon.AddVertexInOrder( v0 ); + polygon.AddVertexInOrder( w0 ); + polygon.AddVertexInOrder( w2 ); - if (polygon.PartialClip( voxelLimit, axis )) { - polygon.SetNormal( deltaV.cross(v0-v2).unit() ); - - extentList.AddSurface( polygon ); - } - - v2 = w2; - } - - // - // Next vertex - // - v0 = w0; - v1 = w1; - } while( --numPhi > 0 ); - - // - // We are almost done. But, it is important that we leave no - // gaps in the surface of our solid. By using rFudge, however, - // we've done exactly that, if we have a phi segment. - // Add two additional faces if necessary - // - if (phiIsOpen && rNorm > DBL_MIN) { - - G4double cosPhi = cos(startPhi), - sinPhi = sin(startPhi); + if (polygon.PartialClip( voxelLimit, axis )) + { + polygon.SetNormal( deltaV.cross(v0-v2).unit() ); + + extentList.AddSurface( polygon ); + } + + v2 = w2; + } + + // + // Next vertex + // + v0 = w0; + v1 = w1; + } while( --numPhi > 0 ); + + // + // We are almost done. But, it is important that we leave no + // gaps in the surface of our solid. By using rFudge, however, + // we've done exactly that, if we have a phi segment. + // Add two additional faces if necessary + // + if (phiIsOpen && rNorm > DBL_MIN) + { + G4double cosPhi = cos(startPhi), + sinPhi = sin(startPhi); - G4ThreeVector a0( r[0]*cosPhi, r[0]*sinPhi, z[0] ), - a1( r[1]*cosPhi, r[1]*sinPhi, z[1] ), - b0( r0*cosPhi, r0*sinPhi, z[0] ), - b1( r1*cosPhi, r1*sinPhi, z[1] ); - - transform.ApplyPointTransform( a0 ); - transform.ApplyPointTransform( a1 ); - transform.ApplyPointTransform( b0 ); - transform.ApplyPointTransform( b1 ); + G4ThreeVector a0( r[0]*cosPhi, r[0]*sinPhi, z[0] ), + a1( r[1]*cosPhi, r[1]*sinPhi, z[1] ), + b0( r0*cosPhi, r0*sinPhi, z[0] ), + b1( r1*cosPhi, r1*sinPhi, z[1] ); + + transform.ApplyPointTransform( a0 ); + transform.ApplyPointTransform( a1 ); + transform.ApplyPointTransform( b0 ); + transform.ApplyPointTransform( b1 ); - polygon.ClearAllVertices(); + polygon.ClearAllVertices(); - polygon.AddVertexInOrder( a0 ); - polygon.AddVertexInOrder( a1 ); - polygon.AddVertexInOrder( b0 ); - polygon.AddVertexInOrder( b1 ); - - if (polygon.PartialClip( voxelLimit , axis)) { - G4ThreeVector normal( sinPhi, -cosPhi, 0 ); - polygon.SetNormal( transform.TransformAxis( normal ) ); - - extentList.AddSurface( polygon ); - } - - cosPhi = cos(startPhi+deltaPhi); - sinPhi = sin(startPhi+deltaPhi); - - a0 = G4ThreeVector( r[0]*cosPhi, r[0]*sinPhi, z[0] ), - a1 = G4ThreeVector( r[1]*cosPhi, r[1]*sinPhi, z[1] ), - b0 = G4ThreeVector( r0*cosPhi, r0*sinPhi, z[0] ), - b1 = G4ThreeVector( r1*cosPhi, r1*sinPhi, z[1] ); - transform.ApplyPointTransform( a0 ); - transform.ApplyPointTransform( a1 ); - transform.ApplyPointTransform( b0 ); - transform.ApplyPointTransform( b1 ); + polygon.AddVertexInOrder( a0 ); + polygon.AddVertexInOrder( a1 ); + polygon.AddVertexInOrder( b0 ); + polygon.AddVertexInOrder( b1 ); + + if (polygon.PartialClip( voxelLimit , axis)) + { + G4ThreeVector normal( sinPhi, -cosPhi, 0 ); + polygon.SetNormal( transform.TransformAxis( normal ) ); + + extentList.AddSurface( polygon ); + } + + cosPhi = cos(startPhi+deltaPhi); + sinPhi = sin(startPhi+deltaPhi); + + a0 = G4ThreeVector( r[0]*cosPhi, r[0]*sinPhi, z[0] ), + a1 = G4ThreeVector( r[1]*cosPhi, r[1]*sinPhi, z[1] ), + b0 = G4ThreeVector( r0*cosPhi, r0*sinPhi, z[0] ), + b1 = G4ThreeVector( r1*cosPhi, r1*sinPhi, z[1] ); + transform.ApplyPointTransform( a0 ); + transform.ApplyPointTransform( a1 ); + transform.ApplyPointTransform( b0 ); + transform.ApplyPointTransform( b1 ); - polygon.ClearAllVertices(); + polygon.ClearAllVertices(); - polygon.AddVertexInOrder( a0 ); - polygon.AddVertexInOrder( a1 ); - polygon.AddVertexInOrder( b0 ); - polygon.AddVertexInOrder( b1 ); - - if (polygon.PartialClip( voxelLimit, axis )) { - G4ThreeVector normal( -sinPhi, cosPhi, 0 ); - polygon.SetNormal( transform.TransformAxis( normal ) ); - - extentList.AddSurface( polygon ); - } - } - - return; + polygon.AddVertexInOrder( a0 ); + polygon.AddVertexInOrder( a1 ); + polygon.AddVertexInOrder( b0 ); + polygon.AddVertexInOrder( b1 ); + + if (polygon.PartialClip( voxelLimit, axis )) + { + G4ThreeVector normal( -sinPhi, cosPhi, 0 ); + polygon.SetNormal( transform.TransformAxis( normal ) ); + + extentList.AddSurface( polygon ); + } + } + + return; } -// -// ------------------------------------------------------- - // // DistanceAway // @@ -787,84 +833,92 @@ void G4PolyconeSide::CalculateExtent( const EAxis axis, // of any phi segmentation // // Arguments: -// p - (in) Point to check -// opposite - (in) If true, check opposite hemisphere (see below) -// distOutside - (out) Additional distance outside the edges of the -// surface -// edgeRZnorm - (out) if negative, point is inside -// return value = distance from the conical plane, if extrapolated beyond edges, -// signed by whether the point is in inside or outside the shape +// p - (in) Point to check +// opposite - (in) If true, check opposite hemisphere (see below) +// distOutside - (out) Additional distance outside the edges of the +// surface +// edgeRZnorm - (out) if negative, point is inside +// return value = distance from the conical plane, if extrapolated beyond edges, +// signed by whether the point is in inside or outside the shape // // Notes: -// * There are two answers, depending on which hemisphere is considered. +// * There are two answers, depending on which hemisphere is considered. // -G4double G4PolyconeSide::DistanceAway( const G4ThreeVector &p, G4bool opposite, - G4double &distOutside2, G4double *edgeRZnorm ) +G4double G4PolyconeSide::DistanceAway( const G4ThreeVector &p, + G4bool opposite, + G4double &distOutside2, + G4double *edgeRZnorm ) { - // - // Convert our point to r and z - // - G4double rx = p.perp(), zx = p.z(); - - // - // Change sign of r if opposite says we should - // - if (opposite) rx = -rx; - - // - // Calculate return value - // - G4double deltaR = rx - r[0], deltaZ = zx - z[0]; - G4double answer = deltaR*rNorm + deltaZ*zNorm; - - // - // Are we off the surface in r,z space? - // - G4double s = deltaR*rS + deltaZ*zS; - if (s < 0) { - distOutside2 = s*s; - if (edgeRZnorm) *edgeRZnorm = deltaR*rNormEdge[0] + deltaZ*zNormEdge[0]; - } - else if (s > length) { - distOutside2 = sqr( s-length ); - if (edgeRZnorm) { - G4double deltaR = rx - r[1], deltaZ = zx - z[1]; - *edgeRZnorm = deltaR*rNormEdge[1] + deltaZ*zNormEdge[1]; - } - } - else { - distOutside2 = 0; - if (edgeRZnorm) *edgeRZnorm = answer; - } + // + // Convert our point to r and z + // + G4double rx = p.perp(), zx = p.z(); + + // + // Change sign of r if opposite says we should + // + if (opposite) rx = -rx; + + // + // Calculate return value + // + G4double deltaR = rx - r[0], deltaZ = zx - z[0]; + G4double answer = deltaR*rNorm + deltaZ*zNorm; + + // + // Are we off the surface in r,z space? + // + G4double s = deltaR*rS + deltaZ*zS; + if (s < 0) + { + distOutside2 = s*s; + if (edgeRZnorm) *edgeRZnorm = deltaR*rNormEdge[0] + deltaZ*zNormEdge[0]; + } + else if (s > length) + { + distOutside2 = sqr( s-length ); + if (edgeRZnorm) + { + G4double deltaR = rx - r[1], deltaZ = zx - z[1]; + *edgeRZnorm = deltaR*rNormEdge[1] + deltaZ*zNormEdge[1]; + } + } + else + { + distOutside2 = 0; + if (edgeRZnorm) *edgeRZnorm = answer; + } - if (phiIsOpen) { - // - // Finally, check phi - // - G4double phi = p.phi(); - while( phi < startPhi ) phi += 2*M_PI; - - if (phi > startPhi+deltaPhi) { - // - // Oops. Are we closer to the start phi or end phi? - // - G4double d1 = phi-startPhi-deltaPhi; - while( phi > startPhi ) phi -= 2*M_PI; - G4double d2 = startPhi-phi; - - if (d2 < d1) d1 = d2; - - // - // Add result to our distance - // - G4double dist = d1*rx; - - distOutside2 += dist*dist; - if (edgeRZnorm) *edgeRZnorm = fabs(dist); - } - } + if (phiIsOpen) + { + // + // Finally, check phi + // + G4double phi = p.phi(); + while( phi < startPhi ) phi += 2*M_PI; + + if (phi > startPhi+deltaPhi) + { + // + // Oops. Are we closer to the start phi or end phi? + // + G4double d1 = phi-startPhi-deltaPhi; + while( phi > startPhi ) phi -= 2*M_PI; + G4double d2 = startPhi-phi; + + if (d2 < d1) d1 = d2; + + // + // Add result to our distance + // + G4double dist = d1*rx; + + distOutside2 += dist*dist; + if (edgeRZnorm) *edgeRZnorm = fabs(dist); + } + } - return answer; + return answer; } @@ -873,57 +927,62 @@ G4double G4PolyconeSide::DistanceAway( const G4ThreeVector &p, G4bool opposite, // // Decide if a point is on a cone and return normal if it is // -G4bool G4PolyconeSide::PointOnCone( const G4ThreeVector &hit, G4double normSign, - const G4ThreeVector &p, const G4ThreeVector &v, - G4ThreeVector &normal ) +G4bool G4PolyconeSide::PointOnCone( const G4ThreeVector &hit, + G4double normSign, + const G4ThreeVector &p, + const G4ThreeVector &v, + G4ThreeVector &normal ) { - G4double rx = hit.perp(); - // - // Check radial/z extent, as appropriate - // - if (!cone->HitOn( rx, hit.z() )) return false; - - if (phiIsOpen) { - G4double phiTolerant = 2.0*kCarTolerance/(rx+kCarTolerance); - // - // Check phi segment. Here we have to be careful - // to use the standard method consistent with - // PolyPhiFace. See PolyPhiFace::InsideEdgesExact - // - G4double phi = hit.phi(); - while( phi < startPhi-phiTolerant ) phi += 2*M_PI; - - if (phi > startPhi+deltaPhi+phiTolerant) return false; - - if (phi > startPhi+deltaPhi-phiTolerant) { - // - // Exact treatment - // - G4ThreeVector qx = p + v; - G4ThreeVector qa = qx - corners[2], - qb = qx - corners[3]; - G4ThreeVector qacb = qa.cross(qb); - - if (normSign*qacb.dot(v) < 0) return false; - } - else if (phi < phiTolerant) { - G4ThreeVector qx = p + v; - G4ThreeVector qa = qx - corners[1], - qb = qx - corners[0]; - G4ThreeVector qacb = qa.cross(qb); - - if (normSign*qacb.dot(v) < 0) return false; - } - } - - // - // We have a good hit! Calculate normal - // - if (rx < DBL_MIN) - normal = G4ThreeVector( 0, 0, zNorm < 0 ? -1 : 1 ); - else - normal = G4ThreeVector( rNorm*hit.x()/rx, rNorm*hit.y()/rx, zNorm ); - return true; + G4double rx = hit.perp(); + // + // Check radial/z extent, as appropriate + // + if (!cone->HitOn( rx, hit.z() )) return false; + + if (phiIsOpen) + { + G4double phiTolerant = 2.0*kCarTolerance/(rx+kCarTolerance); + // + // Check phi segment. Here we have to be careful + // to use the standard method consistent with + // PolyPhiFace. See PolyPhiFace::InsideEdgesExact + // + G4double phi = hit.phi(); + while( phi < startPhi-phiTolerant ) phi += 2*M_PI; + + if (phi > startPhi+deltaPhi+phiTolerant) return false; + + if (phi > startPhi+deltaPhi-phiTolerant) + { + // + // Exact treatment + // + G4ThreeVector qx = p + v; + G4ThreeVector qa = qx - corners[2], + qb = qx - corners[3]; + G4ThreeVector qacb = qa.cross(qb); + + if (normSign*qacb.dot(v) < 0) return false; + } + else if (phi < phiTolerant) + { + G4ThreeVector qx = p + v; + G4ThreeVector qa = qx - corners[1], + qb = qx - corners[0]; + G4ThreeVector qacb = qa.cross(qb); + + if (normSign*qacb.dot(v) < 0) return false; + } + } + + // + // We have a good hit! Calculate normal + // + if (rx < DBL_MIN) + normal = G4ThreeVector( 0, 0, zNorm < 0 ? -1 : 1 ); + else + normal = G4ThreeVector( rNorm*hit.x()/rx, rNorm*hit.y()/rx, zNorm ); + return true; } @@ -938,23 +997,23 @@ G4bool G4PolyconeSide::PointOnCone( const G4ThreeVector &hit, G4double normSign, // It is assumed that the lines are *not* parallel // void G4PolyconeSide::FindLineIntersect( G4double x1, G4double y1, - G4double tx1, G4double ty1, - G4double x2, G4double y2, - G4double tx2, G4double ty2, - G4double &x, G4double &y ) + G4double tx1, G4double ty1, + G4double x2, G4double y2, + G4double tx2, G4double ty2, + G4double &x, G4double &y ) { - // - // The solution is a simple linear equation - // - G4double deter = tx1*ty2 - tx2*ty1; - - G4double s1 = ((x2-x1)*ty2 - tx2*(y2-y1))/deter; - G4double s2 = ((x2-x1)*ty1 - tx1*(y2-y1))/deter; + // + // The solution is a simple linear equation + // + G4double deter = tx1*ty2 - tx2*ty1; + + G4double s1 = ((x2-x1)*ty2 - tx2*(y2-y1))/deter; + G4double s2 = ((x2-x1)*ty1 - tx1*(y2-y1))/deter; - // - // We want the answer to not depend on which order the - // lines were specified. Take average. - // - x = 0.5*( x1+s1*tx1 + x2+s2*tx2 ); - y = 0.5*( y1+s1*ty1 + y2+s2*ty2 ); + // + // We want the answer to not depend on which order the + // lines were specified. Take average. + // + x = 0.5*( x1+s1*tx1 + x2+s2*tx2 ); + y = 0.5*( y1+s1*ty1 + y2+s2*ty2 ); } diff --git a/source/geometry/solids/specific/src/G4Polyhedra.cc b/source/geometry/solids/specific/src/G4Polyhedra.cc index 2073df2d3d..4764a075f8 100644 --- a/source/geometry/solids/specific/src/G4Polyhedra.cc +++ b/source/geometry/solids/specific/src/G4Polyhedra.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedra.cc,v 1.3 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Polyhedra.cc,v 1.5 2002/10/28 15:18:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -53,6 +53,7 @@ // -------------------------------------------------------------------- #include "G4Polyhedra.hh" + #include "G4PolyhedraSide.hh" #include "G4PolyPhiFace.hh" @@ -64,58 +65,71 @@ // Constructor (GEANT3 style parameters) // // GEANT3 PGON radii are specified in the distance to the norm of each face. -// +// G4Polyhedra::G4Polyhedra( const G4String& name, G4double phiStart, G4double thePhiTotal, - G4int theNumSide, + G4int theNumSide, G4int numZPlanes, const G4double zPlane[], const G4double rInner[], - const G4double rOuter[] ) : G4VCSGfaceted( name ) + const G4double rOuter[] ) + : G4VCSGfaceted( name ) { - if (theNumSide <= 0) G4Exception( "G4Polyhedra:: must have at least one side" ); + if (theNumSide <= 0) + { + G4cout << "ERROR - G4Polyhedra::G4Polyhedra(): " << GetName() << G4endl + << " No sides specified !" + << G4endl; + G4cerr << "ERROR - G4Polyhedra::G4Polyhedra(): " << GetName() << G4endl + << " No sides specified !" + << G4endl; + G4Exception("G4Polyhedra::G4Polyhedra() - must have at least one side"); + } - // - // Calculate conversion factor from G3 radius to G4 radius - // - G4double phiTotal = thePhiTotal; - if (phiTotal <=0 || phiTotal >= 2*M_PI*(1-DBL_EPSILON)) phiTotal = 2*M_PI; - G4double convertRad = cos(0.5*phiTotal/theNumSide); + // + // Calculate conversion factor from G3 radius to G4 radius + // + G4double phiTotal = thePhiTotal; + if ( (phiTotal <=0) || (phiTotal >= 2*M_PI*(1-DBL_EPSILON)) ) + phiTotal = 2*M_PI; + G4double convertRad = cos(0.5*phiTotal/theNumSide); - // - // Some historical stuff - // - original_parameters = new G4PolyhedraHistorical; - - original_parameters->numSide = theNumSide; - original_parameters->Start_angle = phiStart; - original_parameters->Opening_angle = phiTotal; - original_parameters->Num_z_planes = numZPlanes; - original_parameters->Z_values = new G4double[numZPlanes]; - original_parameters->Rmin = new G4double[numZPlanes]; - original_parameters->Rmax = new G4double[numZPlanes]; + // + // Some historical stuff + // + original_parameters = new G4PolyhedraHistorical; + + original_parameters->numSide = theNumSide; + original_parameters->Start_angle = phiStart; + original_parameters->Opening_angle = phiTotal; + original_parameters->Num_z_planes = numZPlanes; + original_parameters->Z_values = new G4double[numZPlanes]; + original_parameters->Rmin = new G4double[numZPlanes]; + original_parameters->Rmax = new G4double[numZPlanes]; - G4int i; - for (i=0; iZ_values[i] = zPlane[i]; - original_parameters->Rmin[i] = rInner[i]/convertRad; - original_parameters->Rmax[i] = rOuter[i]/convertRad; - } - - - // - // Build RZ polygon using special PCON/PGON GEANT3 constructor - // - G4ReduciblePolygon *rz = new G4ReduciblePolygon( rInner, rOuter, zPlane, numZPlanes ); - rz->ScaleA( 1/convertRad ); - - // - // Do the real work - // - Create( phiStart, phiTotal, theNumSide, rz ); - - delete rz; + G4int i; + for (i=0; iZ_values[i] = zPlane[i]; + original_parameters->Rmin[i] = rInner[i]/convertRad; + original_parameters->Rmax[i] = rOuter[i]/convertRad; + } + + + // + // Build RZ polygon using special PCON/PGON GEANT3 constructor + // + G4ReduciblePolygon *rz = + new G4ReduciblePolygon( rInner, rOuter, zPlane, numZPlanes ); + rz->ScaleA( 1/convertRad ); + + // + // Do the real work + // + Create( phiStart, phiTotal, theNumSide, rz ); + + delete rz; } @@ -123,164 +137,207 @@ G4Polyhedra::G4Polyhedra( const G4String& name, // Constructor (generic parameters) // G4Polyhedra::G4Polyhedra( const G4String& name, - G4double phiStart, - G4double phiTotal, - G4int theNumSide, - G4int numRZ, - const G4double r[], - const G4double z[] ) : G4VCSGfaceted( name ) + G4double phiStart, + G4double phiTotal, + G4int theNumSide, + G4int numRZ, + const G4double r[], + const G4double z[] ) + : G4VCSGfaceted( name ) { - original_parameters = 0; - - G4ReduciblePolygon *rz = new G4ReduciblePolygon( r, z, numRZ ); - - Create( phiStart, phiTotal, theNumSide, rz ); - - delete rz; + original_parameters = 0; + + G4ReduciblePolygon *rz = new G4ReduciblePolygon( r, z, numRZ ); + + Create( phiStart, phiTotal, theNumSide, rz ); + + delete rz; } // // Create // -// Generic create routine, called by each constructor after conversion of arguments +// Generic create routine, called by each constructor +// after conversion of arguments // void G4Polyhedra::Create( G4double phiStart, - G4double phiTotal, - G4int theNumSide, - G4ReduciblePolygon *rz ) + G4double phiTotal, + G4int theNumSide, + G4ReduciblePolygon *rz ) { - // - // Perform checks of rz values - // - if (rz->Amin() < 0.0) - G4Exception( "G4Polyhedra: Illegal input parameters: All R values must be >= 0" ); - - G4double rzArea = rz->Area(); - if (rzArea < -kCarTolerance) rz->ReverseOrder(); + // + // Perform checks of rz values + // + if (rz->Amin() < 0.0) + { + G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " All R values must be >= 0 !" + << G4endl; + G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " All R values must be >= 0 !" + << G4endl; + G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + } - else if (rzArea < -kCarTolerance) - G4Exception( "G4Polyhedra: Illegal input parameters: R/Z cross section is zero or near zero" ); - - if ((!rz->RemoveDuplicateVertices( kCarTolerance )) || - (!rz->RemoveRedundantVertices( kCarTolerance )) ) - G4Exception( "G4Polyhedra: Illegal input parameters: Too few unique R/Z values" ); + G4double rzArea = rz->Area(); + if (rzArea < -kCarTolerance) + rz->ReverseOrder(); - if (rz->CrossesItself( 1/kInfinity )) - G4Exception( "G4Polyhedra: Illegal input parameters: R/Z segments cross" ); + else if (rzArea < -kCarTolerance) + { + G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " R/Z cross section is zero or near zero: " + << rzArea << G4endl; + G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " R/Z cross section is zero or near zero: " + << rzArea << G4endl; + G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + } + + if ( (!rz->RemoveDuplicateVertices( kCarTolerance )) + || (!rz->RemoveRedundantVertices( kCarTolerance )) ) + { + G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " Too few unique R/Z values !" + << G4endl; + G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " Too few unique R/Z values !" + << G4endl; + G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + } - numCorner = rz->NumVertices(); + if (rz->CrossesItself( 1/kInfinity )) + { + G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " R/Z segments cross !" + << G4endl; + G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl + << " R/Z segments cross !" + << G4endl; + G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + } + + numCorner = rz->NumVertices(); - startPhi = phiStart; - while( startPhi < 0 ) startPhi += 2*M_PI; - // - // Phi opening? Account for some possible roundoff, and interpret - // nonsense value as representing no phi opening - // - if (phiTotal <= 0 || phiTotal > 2.0*M_PI*(1-DBL_EPSILON)) { - phiIsOpen = false; - endPhi = phiStart+2*M_PI; - } - else { - phiIsOpen = true; - - // - // Convert phi into our convention - // - endPhi = phiStart+phiTotal; - while( endPhi < startPhi ) endPhi += 2*M_PI; - } - - // - // Save number sides - // - numSide = theNumSide; - - // - // Allocate corner array. - // - corners = new G4PolyhedraSideRZ[numCorner]; + startPhi = phiStart; + while( startPhi < 0 ) startPhi += 2*M_PI; + // + // Phi opening? Account for some possible roundoff, and interpret + // nonsense value as representing no phi opening + // + if ( (phiTotal <= 0) || (phiTotal > 2.0*M_PI*(1-DBL_EPSILON)) ) + { + phiIsOpen = false; + endPhi = phiStart+2*M_PI; + } + else + { + phiIsOpen = true; + + // + // Convert phi into our convention + // + endPhi = phiStart+phiTotal; + while( endPhi < startPhi ) endPhi += 2*M_PI; + } + + // + // Save number sides + // + numSide = theNumSide; + + // + // Allocate corner array. + // + corners = new G4PolyhedraSideRZ[numCorner]; - // - // Copy corners - // - G4ReduciblePolygonIterator iterRZ(rz); - - G4PolyhedraSideRZ *next = corners; - iterRZ.Begin(); - do { - next->r = iterRZ.GetA(); - next->z = iterRZ.GetB(); - } while( ++next, iterRZ.Next() ); - - // - // Allocate face pointer array - // - numFace = phiIsOpen ? numCorner+2 : numCorner; - faces = new G4VCSGface*[numFace]; - - // - // Construct side faces - // - // To do so properly, we need to keep track of four successive RZ - // corners. - // - // But! Don't construct a face if both points are at zero radius! - // - G4PolyhedraSideRZ *corner = corners, - *prev = corners + numCorner-1, - *nextNext; - G4VCSGface **face = faces; - do { - next = corner+1; - if (next >= corners+numCorner) next = corners; - nextNext = next+1; - if (nextNext >= corners+numCorner) nextNext = corners; - - if (corner->r < 1/kInfinity && next->r < 1/kInfinity) continue; + // + // Copy corners + // + G4ReduciblePolygonIterator iterRZ(rz); + + G4PolyhedraSideRZ *next = corners; + iterRZ.Begin(); + do + { + next->r = iterRZ.GetA(); + next->z = iterRZ.GetB(); + } while( ++next, iterRZ.Next() ); + + // + // Allocate face pointer array + // + numFace = phiIsOpen ? numCorner+2 : numCorner; + faces = new G4VCSGface*[numFace]; + + // + // Construct side faces + // + // To do so properly, we need to keep track of four successive RZ + // corners. + // + // But! Don't construct a face if both points are at zero radius! + // + G4PolyhedraSideRZ *corner = corners, + *prev = corners + numCorner-1, + *nextNext; + G4VCSGface **face = faces; + do + { + next = corner+1; + if (next >= corners+numCorner) next = corners; + nextNext = next+1; + if (nextNext >= corners+numCorner) nextNext = corners; + + if (corner->r < 1/kInfinity && next->r < 1/kInfinity) continue; - // - // We must decide here if we can dare declare one of our faces - // as having a "valid" normal (i.e. allBehind = true). This - // is never possible if the face faces "inward" in r *unless* - // we have only one side - // - G4bool allBehind; - if ((corner->z > next->z) && (numSide > 1)) { - allBehind = false; - } - else { - // - // Otherwise, it is only true if the line passing - // through the two points of the segment do not - // split the r/z cross section - // - allBehind = !rz->BisectedBy( corner->r, corner->z, - next->r, next->z, kCarTolerance ); - } - - *face++ = new G4PolyhedraSide( prev, corner, next, nextNext, - numSide, startPhi, endPhi-startPhi, phiIsOpen ); - } while( prev=corner, corner=next, corner > corners ); - - if (phiIsOpen) { - // - // Construct phi open edges - // - *face++ = new G4PolyPhiFace( rz, startPhi, phiTotal/numSide, endPhi ); - *face++ = new G4PolyPhiFace( rz, endPhi, phiTotal/numSide, startPhi ); - } - - // - // We might have dropped a face or two: recalculate numFace - // - numFace = face-faces; - - // - // Make enclosingCylinder - // - enclosingCylinder = new G4EnclosingCylinder( rz, phiIsOpen, phiStart, phiTotal ); + // + // We must decide here if we can dare declare one of our faces + // as having a "valid" normal (i.e. allBehind = true). This + // is never possible if the face faces "inward" in r *unless* + // we have only one side + // + G4bool allBehind; + if ((corner->z > next->z) && (numSide > 1)) + { + allBehind = false; + } + else + { + // + // Otherwise, it is only true if the line passing + // through the two points of the segment do not + // split the r/z cross section + // + allBehind = !rz->BisectedBy( corner->r, corner->z, + next->r, next->z, kCarTolerance ); + } + + *face++ = new G4PolyhedraSide( prev, corner, next, nextNext, + numSide, startPhi, endPhi-startPhi, phiIsOpen ); + } while( prev=corner, corner=next, corner > corners ); + + if (phiIsOpen) + { + // + // Construct phi open edges + // + *face++ = new G4PolyPhiFace( rz, startPhi, phiTotal/numSide, endPhi ); + *face++ = new G4PolyPhiFace( rz, endPhi, phiTotal/numSide, startPhi ); + } + + // + // We might have dropped a face or two: recalculate numFace + // + numFace = face-faces; + + // + // Make enclosingCylinder + // + enclosingCylinder = + new G4EnclosingCylinder( rz, phiIsOpen, phiStart, phiTotal ); } @@ -289,19 +346,20 @@ void G4Polyhedra::Create( G4double phiStart, // G4Polyhedra::~G4Polyhedra() { - delete [] corners; - if (original_parameters) delete original_parameters; - - delete enclosingCylinder; + delete [] corners; + if (original_parameters) delete original_parameters; + + delete enclosingCylinder; } // // Copy constructor // -G4Polyhedra::G4Polyhedra( const G4Polyhedra &source ) : G4VCSGfaceted( source ) +G4Polyhedra::G4Polyhedra( const G4Polyhedra &source ) + : G4VCSGfaceted( source ) { - CopyStuff( source ); + CopyStuff( source ); } @@ -310,18 +368,18 @@ G4Polyhedra::G4Polyhedra( const G4Polyhedra &source ) : G4VCSGfaceted( source ) // const G4Polyhedra &G4Polyhedra::operator=( const G4Polyhedra &source ) { - if (this == &source) return *this; + if (this == &source) return *this; - G4VCSGfaceted::operator=( source ); - - delete [] corners; - if (original_parameters) delete original_parameters; - - delete enclosingCylinder; - - CopyStuff( source ); - - return *this; + G4VCSGfaceted::operator=( source ); + + delete [] corners; + if (original_parameters) delete original_parameters; + + delete enclosingCylinder; + + CopyStuff( source ); + + return *this; } @@ -330,114 +388,188 @@ const G4Polyhedra &G4Polyhedra::operator=( const G4Polyhedra &source ) // void G4Polyhedra::CopyStuff( const G4Polyhedra &source ) { - // - // Simple stuff - // - numSide = source.numSide; - startPhi = source.startPhi; - endPhi = source.endPhi; - phiIsOpen = source.phiIsOpen; - numCorner = source.numCorner; + // + // Simple stuff + // + numSide = source.numSide; + startPhi = source.startPhi; + endPhi = source.endPhi; + phiIsOpen = source.phiIsOpen; + numCorner = source.numCorner; - // - // The corner array - // - corners = new G4PolyhedraSideRZ[numCorner]; - - G4PolyhedraSideRZ *corn = corners, - *sourceCorn = source.corners; - do { - *corn = *sourceCorn; - } while( ++sourceCorn, ++corn < corners+numCorner ); - - // - // Original parameters - // - if (source.original_parameters) { - original_parameters = new G4PolyhedraHistorical( *source.original_parameters ); - } - - // - // Enclosing cylinder - // - enclosingCylinder = new G4EnclosingCylinder( *source.enclosingCylinder ); + // + // The corner array + // + corners = new G4PolyhedraSideRZ[numCorner]; + + G4PolyhedraSideRZ *corn = corners, + *sourceCorn = source.corners; + do + { + *corn = *sourceCorn; + } while( ++sourceCorn, ++corn < corners+numCorner ); + + // + // Original parameters + // + if (source.original_parameters) + { + original_parameters = + new G4PolyhedraHistorical( *source.original_parameters ); + } + + // + // Enclosing cylinder + // + enclosingCylinder = new G4EnclosingCylinder( *source.enclosingCylinder ); } // // Inside // -// This is an override of G4VCSGfaceted::Inside, created in order to speed things -// up by first checking with G4EnclosingCylinder. +// This is an override of G4VCSGfaceted::Inside, created in order +// to speed things up by first checking with G4EnclosingCylinder. // EInside G4Polyhedra::Inside( const G4ThreeVector &p ) const { - // - // Quick test - // - if (enclosingCylinder->MustBeOutside(p)) return kOutside; + // + // Quick test + // + if (enclosingCylinder->MustBeOutside(p)) return kOutside; - // - // Long answer - // - return G4VCSGfaceted::Inside(p); + // + // Long answer + // + return G4VCSGfaceted::Inside(p); } // // DistanceToIn // -// This is an override of G4VCSGfaceted::Inside, created in order to speed things -// up by first checking with G4EnclosingCylinder. +// This is an override of G4VCSGfaceted::Inside, created in order +// to speed things up by first checking with G4EnclosingCylinder. // -G4double G4Polyhedra::DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const +G4double G4Polyhedra::DistanceToIn( const G4ThreeVector &p, + const G4ThreeVector &v ) const { - // - // Quick test - // - if (enclosingCylinder->ShouldMiss(p,v)) return kInfinity; - - // - // Long answer - // - return G4VCSGfaceted::DistanceToIn( p, v ); + // + // Quick test + // + if (enclosingCylinder->ShouldMiss(p,v)) + return kInfinity; + + // + // Long answer + // + return G4VCSGfaceted::DistanceToIn( p, v ); +} + + +// +// DistanceToIn +// +G4double G4Polyhedra::DistanceToIn( const G4ThreeVector &p ) const +{ + return G4VCSGfaceted::DistanceToIn(p); } // // ComputeDimensions // -void G4Polyhedra::ComputeDimensions( G4VPVParameterisation* p, - const G4int n, - const G4VPhysicalVolume* pRep) +void G4Polyhedra::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep) { } +// +// GetEntityType +// +G4GeometryType G4Polyhedra::GetEntityType() const +{ + return G4String("G4Polyhedra"); +} + + +// +// Stream object contents to an output stream +// +G4std::ostream& G4Polyhedra::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Polyhedra\n" + << " Parameters: \n" + << " starting phi angle : " << startPhi/degree << " degrees \n" + << " ending phi angle : " << endPhi/degree << " degrees \n"; + G4int i=0; + if (original_parameters) + { + G4int numPlanes = original_parameters->Num_z_planes; + os << " number of Z planes: " << numPlanes << "\n" + << " Z values: \n"; + for (i=0; iZ_values[i] << "\n"; + } + os << " Tangent distances to inner surface: \n"; + for (i=0; iRmin[i] << "\n"; + } + os << " Tangent distances to outer surface: \n"; + for (i=0; iRmax[i] << "\n"; + } + } + os << " number of RZ points: " << numCorner << "\n" + << " RZ values: \n"; + for (i=0; iStart_angle, - original_parameters->Opening_angle, - original_parameters->numSide, - original_parameters->Num_z_planes, - original_parameters->Z_values, - original_parameters->Rmin, - original_parameters->Rmax); - } - else { - G4cerr << "G4Polyhedra: visualization of this type of G4Polyhedra is not supported at this time" << G4endl; - return 0; - } - -} + // + // This has to be fixed in visualization. Fake it for the moment. + // + if (original_parameters) + { + return new G4PolyhedronPgon( original_parameters->Start_angle, + original_parameters->Opening_angle, + original_parameters->numSide, + original_parameters->Num_z_planes, + original_parameters->Z_values, + original_parameters->Rmin, + original_parameters->Rmax); + } + else + { + G4cerr << "ERROR - G4Polyhedra::CreatePolyhedron() " << GetName() << G4endl + << " Visualization of this type of G4Polycone" << G4endl + << " is not supported at this time !" << G4endl; + return 0; + } +} // @@ -445,38 +577,44 @@ G4Polyhedron *G4Polyhedra::CreatePolyhedron() const // G4NURBS *G4Polyhedra::CreateNURBS() const { - return 0; + return 0; } - - // // G4Polyhedra::G4PolyhedraHistorical stuff // -G4Polyhedra::G4PolyhedraHistorical::~G4PolyhedraHistorical() +G4Polyhedra:: +G4PolyhedraHistorical::G4PolyhedraHistorical() { - delete [] Z_values; - delete [] Rmin; - delete [] Rmax; } -G4Polyhedra::G4PolyhedraHistorical::G4PolyhedraHistorical( const G4PolyhedraHistorical &source ) +G4Polyhedra:: +G4PolyhedraHistorical::~G4PolyhedraHistorical() { - Start_angle = source.Start_angle; - Opening_angle = source.Opening_angle; - numSide = source.numSide; - Num_z_planes = source.Num_z_planes; - - Z_values = new G4double[Num_z_planes]; - Rmin = new G4double[Num_z_planes]; - Rmax = new G4double[Num_z_planes]; - - G4int i; - for( i = 0; i < Num_z_planes; i++) { - Z_values[i] = source.Z_values[i]; - Rmin[i] = source.Rmin[i]; - Rmax[i] = source.Rmax[i]; - } + delete [] Z_values; + delete [] Rmin; + delete [] Rmax; } +G4Polyhedra:: +G4PolyhedraHistorical:: +G4PolyhedraHistorical( const G4PolyhedraHistorical &source ) +{ + Start_angle = source.Start_angle; + Opening_angle = source.Opening_angle; + numSide = source.numSide; + Num_z_planes = source.Num_z_planes; + + Z_values = new G4double[Num_z_planes]; + Rmin = new G4double[Num_z_planes]; + Rmax = new G4double[Num_z_planes]; + + G4int i; + for( i = 0; i < Num_z_planes; i++) + { + Z_values[i] = source.Z_values[i]; + Rmin[i] = source.Rmin[i]; + Rmax[i] = source.Rmax[i]; + } +} diff --git a/source/geometry/solids/specific/src/G4PolyhedraSide.cc b/source/geometry/solids/specific/src/G4PolyhedraSide.cc index 376dcd8d55..e0b528c73d 100644 --- a/source/geometry/solids/specific/src/G4PolyhedraSide.cc +++ b/source/geometry/solids/specific/src/G4PolyhedraSide.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyhedraSide.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PolyhedraSide.cc,v 1.5 2002/10/28 11:47:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -48,233 +48,244 @@ // order in (r,z). // G4PolyhedraSide::G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, - const G4PolyhedraSideRZ *tail, - const G4PolyhedraSideRZ *head, - const G4PolyhedraSideRZ *nextRZ, - G4int theNumSide, - G4double thePhiStart, - G4double thePhiTotal, - G4bool thePhiIsOpen, - G4bool isAllBehind ) + const G4PolyhedraSideRZ *tail, + const G4PolyhedraSideRZ *head, + const G4PolyhedraSideRZ *nextRZ, + G4int theNumSide, + G4double thePhiStart, + G4double thePhiTotal, + G4bool thePhiIsOpen, + G4bool isAllBehind ) { - // - // Record values - // - r[0] = tail->r; z[0] = tail->z; - r[1] = head->r; z[1] = head->z; - - G4double phiTotal; - - // - // Set phi to our convention - // - startPhi = thePhiStart; - while (startPhi < 0.0) startPhi += 2.0*M_PI; - - phiIsOpen = thePhiIsOpen; - phiTotal = (phiIsOpen) ? thePhiTotal : 2*M_PI; - - allBehind = isAllBehind; - - // - // Make our intersecting cone - // - cone = new G4IntersectingCone( r, z ); - - // - // Construct side plane vector set - // - numSide = theNumSide; - deltaPhi = phiTotal/theNumSide; - endPhi = startPhi+phiTotal; - - vecs = new G4PolyhedraSideVec[numSide]; - - edges = new G4PolyhedraSideEdge[phiIsOpen ? numSide+1 : numSide]; - - // - // ...this is where we start - // - G4double phi = startPhi; - G4ThreeVector a1( r[0]*cos(phi), r[0]*sin(phi), z[0] ), - b1( r[1]*cos(phi), r[1]*sin(phi), z[1] ), - c1( prevRZ->r*cos(phi), prevRZ->r*sin(phi), prevRZ->z ), - d1( nextRZ->r*cos(phi), nextRZ->r*sin(phi), nextRZ->z ), - a2, b2, c2, d2; - G4PolyhedraSideEdge *edge = edges; - - G4PolyhedraSideVec *vec = vecs; - do { - // - // ...this is where we are going - // - phi += deltaPhi; - a2 = G4ThreeVector( r[0]*cos(phi), r[0]*sin(phi), z[0] ); - b2 = G4ThreeVector( r[1]*cos(phi), r[1]*sin(phi), z[1] ); - c2 = G4ThreeVector( prevRZ->r*cos(phi), prevRZ->r*sin(phi), prevRZ->z ); - d2 = G4ThreeVector( nextRZ->r*cos(phi), nextRZ->r*sin(phi), nextRZ->z ); - - G4ThreeVector tt; - - // - // ...build some relevant vectors. - // the point is to sacrifice a little memory with precalcs - // to gain speed - // - vec->center = 0.25*( a1 + a2 + b1 + b2 ); - - tt = b2 + b1 - a2 - a1; - vec->surfRZ = tt.unit(); - if (vec==vecs) lenRZ = 0.25*tt.mag(); - - tt = b2 - b1 + a2 - a1; - vec->surfPhi = tt.unit(); - if (vec==vecs) { - lenPhi[0] = 0.25*tt.mag(); - tt = b2 - b1; - lenPhi[1] = (0.5*tt.mag()-lenPhi[0])/lenRZ; - } - - tt = vec->surfPhi.cross(vec->surfRZ); - vec->normal = tt.unit(); - - // - // ...edge normals are the average of the normals of - // the two faces they connect. - // - // ...edge normals are necessary if we are to accurately - // decide if a point is "inside" a face. For non-convex - // shapes, it is absolutely necessary to know information - // on adjacent faces to accurate determine this. - // - // ...we don't need them for the phi edges, since that - // information is taken care of internally. The r/z edges, - // however, depend on the adjacent G4PolyhedraSide. - // - G4ThreeVector a12, adj; - - a12 = a2-a1; + // + // Record values + // + r[0] = tail->r; z[0] = tail->z; + r[1] = head->r; z[1] = head->z; + + G4double phiTotal; + + // + // Set phi to our convention + // + startPhi = thePhiStart; + while (startPhi < 0.0) startPhi += 2.0*M_PI; + + phiIsOpen = thePhiIsOpen; + phiTotal = (phiIsOpen) ? thePhiTotal : 2*M_PI; + + allBehind = isAllBehind; + + // + // Make our intersecting cone + // + cone = new G4IntersectingCone( r, z ); + + // + // Construct side plane vector set + // + numSide = theNumSide; + deltaPhi = phiTotal/theNumSide; + endPhi = startPhi+phiTotal; + + vecs = new G4PolyhedraSideVec[numSide]; + + edges = new G4PolyhedraSideEdge[phiIsOpen ? numSide+1 : numSide]; + + // + // ...this is where we start + // + G4double phi = startPhi; + G4ThreeVector a1( r[0]*cos(phi), r[0]*sin(phi), z[0] ), + b1( r[1]*cos(phi), r[1]*sin(phi), z[1] ), + c1( prevRZ->r*cos(phi), prevRZ->r*sin(phi), prevRZ->z ), + d1( nextRZ->r*cos(phi), nextRZ->r*sin(phi), nextRZ->z ), + a2, b2, c2, d2; + G4PolyhedraSideEdge *edge = edges; + + G4PolyhedraSideVec *vec = vecs; + do + { + // + // ...this is where we are going + // + phi += deltaPhi; + a2 = G4ThreeVector( r[0]*cos(phi), r[0]*sin(phi), z[0] ); + b2 = G4ThreeVector( r[1]*cos(phi), r[1]*sin(phi), z[1] ); + c2 = G4ThreeVector( prevRZ->r*cos(phi), prevRZ->r*sin(phi), prevRZ->z ); + d2 = G4ThreeVector( nextRZ->r*cos(phi), nextRZ->r*sin(phi), nextRZ->z ); + + G4ThreeVector tt; + + // + // ...build some relevant vectors. + // the point is to sacrifice a little memory with precalcs + // to gain speed + // + vec->center = 0.25*( a1 + a2 + b1 + b2 ); + + tt = b2 + b1 - a2 - a1; + vec->surfRZ = tt.unit(); + if (vec==vecs) lenRZ = 0.25*tt.mag(); + + tt = b2 - b1 + a2 - a1; + vec->surfPhi = tt.unit(); + if (vec==vecs) + { + lenPhi[0] = 0.25*tt.mag(); + tt = b2 - b1; + lenPhi[1] = (0.5*tt.mag()-lenPhi[0])/lenRZ; + } + + tt = vec->surfPhi.cross(vec->surfRZ); + vec->normal = tt.unit(); + + // + // ...edge normals are the average of the normals of + // the two faces they connect. + // + // ...edge normals are necessary if we are to accurately + // decide if a point is "inside" a face. For non-convex + // shapes, it is absolutely necessary to know information + // on adjacent faces to accurate determine this. + // + // ...we don't need them for the phi edges, since that + // information is taken care of internally. The r/z edges, + // however, depend on the adjacent G4PolyhedraSide. + // + G4ThreeVector a12, adj; + + a12 = a2-a1; - adj = 0.5*(c1+c2-a1-a2); - adj = adj.cross(a12); - adj = adj.unit() + vec->normal; - vec->edgeNorm[0] = adj.unit(); - - a12 = b1-b2; - adj = 0.5*(d1+d2-b1-b2); - adj = adj.cross(a12); - adj = adj.unit() + vec->normal; - vec->edgeNorm[1] = adj.unit(); - - // - // ...the corners are crucial. It is important that - // they are calculated consistently for adjacent - // G4PolyhedraSides, to avoid gaps caused by roundoff. - // - vec->edges[0] = edge; - edge->corner[0] = a1; - edge->corner[1] = b1; - edge++; - vec->edges[1] = edge; + adj = 0.5*(c1+c2-a1-a2); + adj = adj.cross(a12); + adj = adj.unit() + vec->normal; + vec->edgeNorm[0] = adj.unit(); + + a12 = b1-b2; + adj = 0.5*(d1+d2-b1-b2); + adj = adj.cross(a12); + adj = adj.unit() + vec->normal; + vec->edgeNorm[1] = adj.unit(); + + // + // ...the corners are crucial. It is important that + // they are calculated consistently for adjacent + // G4PolyhedraSides, to avoid gaps caused by roundoff. + // + vec->edges[0] = edge; + edge->corner[0] = a1; + edge->corner[1] = b1; + edge++; + vec->edges[1] = edge; - a1 = a2; - b1 = b2; - c1 = c2; - d1 = d2; - } while( ++vec < vecs+numSide ); - - // - // Clean up hanging edge - // - if (phiIsOpen) { - edge->corner[0] = a2; - edge->corner[1] = b2; - } - else { - vecs[numSide-1].edges[1] = edges; - } - - // - // Go back and fill in remaining fields in edges - // - vec = vecs; - G4PolyhedraSideVec *prev = vecs+numSide-1; - do { - edge = vec->edges[0]; // The edge between prev and vec - - // - // Okay: edge normal is average of normals of adjacent faces - // - G4ThreeVector eNorm = vec->normal + prev->normal; - edge->normal = eNorm.unit(); - - // - // Vertex normal is average of norms of adjacent surfaces (all four) - // However, vec->edgeNorm is unit vector in some direction - // as the sum of normals of adjacent PolyhedraSide with vec. - // The normalization used for this vector should be the same - // for vec and prev. - // - eNorm = vec->edgeNorm[0] + prev->edgeNorm[0]; - edge->cornNorm[0] = eNorm.unit(); - - eNorm = vec->edgeNorm[1] + prev->edgeNorm[1]; - edge->cornNorm[1] = eNorm.unit(); - } while( prev=vec, ++vec < vecs + numSide ); - - if (phiIsOpen) { - // G4double rFact = cos(0.5*deltaPhi); - // - // If phi is open, we need to patch up normals of the - // first and last edges and their corresponding - // vertices. - // - // We use vectors that are in the plane of the - // face. This should be safe. - // - vec = vecs; - - G4ThreeVector normvec = vec->edges[0]->corner[0] - vec->edges[0]->corner[1]; - normvec = normvec.cross(vec->normal); - if (normvec.dot(vec->surfPhi) > 0) normvec = -normvec; + a1 = a2; + b1 = b2; + c1 = c2; + d1 = d2; + } while( ++vec < vecs+numSide ); + + // + // Clean up hanging edge + // + if (phiIsOpen) + { + edge->corner[0] = a2; + edge->corner[1] = b2; + } + else + { + vecs[numSide-1].edges[1] = edges; + } + + // + // Go back and fill in remaining fields in edges + // + vec = vecs; + G4PolyhedraSideVec *prev = vecs+numSide-1; + do + { + edge = vec->edges[0]; // The edge between prev and vec + + // + // Okay: edge normal is average of normals of adjacent faces + // + G4ThreeVector eNorm = vec->normal + prev->normal; + edge->normal = eNorm.unit(); + + // + // Vertex normal is average of norms of adjacent surfaces (all four) + // However, vec->edgeNorm is unit vector in some direction + // as the sum of normals of adjacent PolyhedraSide with vec. + // The normalization used for this vector should be the same + // for vec and prev. + // + eNorm = vec->edgeNorm[0] + prev->edgeNorm[0]; + edge->cornNorm[0] = eNorm.unit(); + + eNorm = vec->edgeNorm[1] + prev->edgeNorm[1]; + edge->cornNorm[1] = eNorm.unit(); + } while( prev=vec, ++vec < vecs + numSide ); + + if (phiIsOpen) + { + // G4double rFact = cos(0.5*deltaPhi); + // + // If phi is open, we need to patch up normals of the + // first and last edges and their corresponding + // vertices. + // + // We use vectors that are in the plane of the + // face. This should be safe. + // + vec = vecs; + + G4ThreeVector normvec = vec->edges[0]->corner[0] + - vec->edges[0]->corner[1]; + normvec = normvec.cross(vec->normal); + if (normvec.dot(vec->surfPhi) > 0) normvec = -normvec; - vec->edges[0]->normal = normvec.unit(); - - vec->edges[0]->cornNorm[0] = (vec->edges[0]->corner[0] - vec->center).unit(); - vec->edges[0]->cornNorm[1] = (vec->edges[0]->corner[1] - vec->center).unit(); - - // - // Repeat for ending phi - // - vec = vecs + numSide - 1; - - normvec = vec->edges[1]->corner[0] - vec->edges[1]->corner[1]; - normvec = normvec.cross(vec->normal); - if (normvec.dot(vec->surfPhi) < 0) normvec = -normvec; + vec->edges[0]->normal = normvec.unit(); + + vec->edges[0]->cornNorm[0] = (vec->edges[0]->corner[0] + - vec->center).unit(); + vec->edges[0]->cornNorm[1] = (vec->edges[0]->corner[1] + - vec->center).unit(); + + // + // Repeat for ending phi + // + vec = vecs + numSide - 1; + + normvec = vec->edges[1]->corner[0] - vec->edges[1]->corner[1]; + normvec = normvec.cross(vec->normal); + if (normvec.dot(vec->surfPhi) < 0) normvec = -normvec; - vec->edges[1]->normal = normvec.unit(); - - vec->edges[1]->cornNorm[0] = (vec->edges[1]->corner[0] - vec->center).unit(); - vec->edges[1]->cornNorm[1] = (vec->edges[1]->corner[1] - vec->center).unit(); - } - - // - // edgeNorm is the factor one multiplies the distance along vector phi - // on the surface of one of our sides in order to calculate the distance - // from the edge. (see routine DistanceAway) - // - edgeNorm = 1.0/sqrt( 1.0 + lenPhi[1]*lenPhi[1] ); + vec->edges[1]->normal = normvec.unit(); + + vec->edges[1]->cornNorm[0] = (vec->edges[1]->corner[0] + - vec->center).unit(); + vec->edges[1]->cornNorm[1] = (vec->edges[1]->corner[1] + - vec->center).unit(); + } + + // + // edgeNorm is the factor one multiplies the distance along vector phi + // on the surface of one of our sides in order to calculate the distance + // from the edge. (see routine DistanceAway) + // + edgeNorm = 1.0/sqrt( 1.0 + lenPhi[1]*lenPhi[1] ); } // // Destructor -// +// G4PolyhedraSide::~G4PolyhedraSide() { - delete cone; - delete [] vecs; - delete [] edges; + delete cone; + delete [] vecs; + delete [] edges; } @@ -283,7 +294,7 @@ G4PolyhedraSide::~G4PolyhedraSide() // G4PolyhedraSide::G4PolyhedraSide( const G4PolyhedraSide &source ) { - CopyStuff( source ); + CopyStuff( source ); } @@ -292,15 +303,15 @@ G4PolyhedraSide::G4PolyhedraSide( const G4PolyhedraSide &source ) // G4PolyhedraSide& G4PolyhedraSide::operator=( const G4PolyhedraSide &source ) { - if (this == &source) return *this; - - delete cone; - delete [] vecs; - delete [] edges; - - CopyStuff( source ); + if (this == &source) return *this; + + delete cone; + delete [] vecs; + delete [] edges; + + CopyStuff( source ); - return *this; + return *this; } @@ -309,53 +320,55 @@ G4PolyhedraSide& G4PolyhedraSide::operator=( const G4PolyhedraSide &source ) // void G4PolyhedraSide::CopyStuff( const G4PolyhedraSide &source ) { - // - // The simple stuff - // - numSide = source.numSide; - r[0] = source.r[0]; - r[1] = source.r[1]; - z[0] = source.z[0]; - z[1] = source.z[1]; - startPhi = source.startPhi; - deltaPhi = source.deltaPhi; - endPhi = source.endPhi; - phiIsOpen = source.phiIsOpen; - allBehind = source.allBehind; - - lenRZ = source.lenRZ; - lenPhi[0] = source.lenPhi[0]; - lenPhi[1] = source.lenPhi[1]; - edgeNorm = source.edgeNorm; - - cone = new G4IntersectingCone( *source.cone ); + // + // The simple stuff + // + numSide = source.numSide; + r[0] = source.r[0]; + r[1] = source.r[1]; + z[0] = source.z[0]; + z[1] = source.z[1]; + startPhi = source.startPhi; + deltaPhi = source.deltaPhi; + endPhi = source.endPhi; + phiIsOpen = source.phiIsOpen; + allBehind = source.allBehind; + + lenRZ = source.lenRZ; + lenPhi[0] = source.lenPhi[0]; + lenPhi[1] = source.lenPhi[1]; + edgeNorm = source.edgeNorm; + + cone = new G4IntersectingCone( *source.cone ); - // - // Duplicate edges - // - G4int numEdges = phiIsOpen ? numSide+1 : numSide; - edges = new G4PolyhedraSideEdge[numEdges]; - - G4PolyhedraSideEdge *edge = edges, - *sourceEdge = source.edges; - do { - *edge = *sourceEdge; - } while( ++sourceEdge, ++edge < edges + numEdges); + // + // Duplicate edges + // + G4int numEdges = phiIsOpen ? numSide+1 : numSide; + edges = new G4PolyhedraSideEdge[numEdges]; + + G4PolyhedraSideEdge *edge = edges, + *sourceEdge = source.edges; + do + { + *edge = *sourceEdge; + } while( ++sourceEdge, ++edge < edges + numEdges); - // - // Duplicate vecs - // - vecs = new G4PolyhedraSideVec[numSide]; - - G4PolyhedraSideVec *vec = vecs, - *sourceVec = source.vecs; - do { - *vec = *sourceVec; - vec->edges[0] = edges + (sourceVec->edges[0] - source.edges); - vec->edges[1] = edges + (sourceVec->edges[1] - source.edges); - } while( ++sourceVec, ++vec < vecs + numSide ); + // + // Duplicate vecs + // + vecs = new G4PolyhedraSideVec[numSide]; + + G4PolyhedraSideVec *vec = vecs, + *sourceVec = source.vecs; + do + { + *vec = *sourceVec; + vec->edges[0] = edges + (sourceVec->edges[0] - source.edges); + vec->edges[1] = edges + (sourceVec->edges[1] - source.edges); + } while( ++sourceVec, ++vec < vecs + numSide ); } - + // // Intersect @@ -363,227 +376,239 @@ void G4PolyhedraSide::CopyStuff( const G4PolyhedraSide &source ) // Decide if a line intersects the face. // // Arguments: -// p = (in) starting point of line segment -// v = (in) direction of line segment (assumed a unit vector) -// A, B = (in) 2d transform variables (see note top of file) -// normSign = (in) desired sign for dot product with normal (see below) -// surfTolerance = (in) minimum distance from the surface -// vecs = (in) Vector set array -// distance = (out) distance to surface furfilling all requirements -// distFromSurface = (out) distance from the surface -// thisNormal = (out) normal vector of the intersecting surface +// p = (in) starting point of line segment +// v = (in) direction of line segment (assumed a unit vector) +// A, B = (in) 2d transform variables (see note top of file) +// normSign = (in) desired sign for dot product with normal (see below) +// surfTolerance = (in) minimum distance from the surface +// vecs = (in) Vector set array +// distance = (out) distance to surface furfilling all requirements +// distFromSurface = (out) distance from the surface +// thisNormal = (out) normal vector of the intersecting surface // // Return value: -// true if an intersection is found. Otherwise, output parameters are undefined. +// true if an intersection is found. Otherwise, output parameters are +// undefined. // // Notes: -// * normSign: if we are "inside" the shape and only want to find out how far -// to leave the shape, we only want to consider intersections with surfaces in -// which the trajectory is leaving the shape. Since the normal vectors to the -// surface always point outwards from the inside, this means we want the dot -// product of the trajectory direction v and the normal of the side normals[i] -// to be positive. Thus, we should specify normSign as +1.0. Otherwise, if -// we are outside and want to go in, normSign should be set to -1.0. -// Don't set normSign to zero, or you will get no intersections! +// * normSign: if we are "inside" the shape and only want to find out how far +// to leave the shape, we only want to consider intersections with surfaces in +// which the trajectory is leaving the shape. Since the normal vectors to the +// surface always point outwards from the inside, this means we want the dot +// product of the trajectory direction v and the normal of the side normals[i] +// to be positive. Thus, we should specify normSign as +1.0. Otherwise, if +// we are outside and want to go in, normSign should be set to -1.0. +// Don't set normSign to zero, or you will get no intersections! // -// * surfTolerance: see notes on argument "surfTolerance" in routine "IntersectSidePlane". -// ----HOWEVER---- We should *not* apply this surface tolerance if the starting -// point is not within phi or z of the surface. Specifically, if the starting -// point p angle in x/y places it on a separate side from the intersection or -// if the starting point p is outside the z bounds of the segment, surfTolerance -// must be ignored or we should *always* accept the intersection! -// This is simply because the sides do not have infinite extent. +// * surfTolerance: see notes on argument "surfTolerance" in routine +// "IntersectSidePlane". +// ----HOWEVER---- We should *not* apply this surface tolerance if the +// starting point is not within phi or z of the surface. Specifically, +// if the starting point p angle in x/y places it on a separate side from the +// intersection or if the starting point p is outside the z bounds of the +// segment, surfTolerance must be ignored or we should *always* accept the +// intersection! +// This is simply because the sides do not have infinite extent. // // -G4bool G4PolyhedraSide::Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &isAllBehind ) +G4bool G4PolyhedraSide::Intersect( const G4ThreeVector &p, + const G4ThreeVector &v, + G4bool outgoing, + G4double surfTolerance, + G4double &distance, + G4double &distFromSurface, + G4ThreeVector &normal, + G4bool &isAllBehind ) { - G4double normSign = outgoing ? +1 : -1; - - // - // ------------------TO BE IMPLEMENTED--------------------- - // Testing the intersection of individual phi faces is - // pretty straight forward. The simple thing therefore is to - // form a loop and check them all in sequence. - // - // But, I worry about one day someone making - // a polygon with a thousands sides. A linear search - // would not be ideal in such a case. - // - // So, it would be nice to be able to quickly decide - // which face would be intersected. One can make a very - // good guess by using the intersection with a cone. - // However, this is only reliable in 99% of the cases. - // - // My solution: make a decent guess as to the one or - // two potential faces might get intersected, and then - // test them. If we have the wrong face, use the test - // to make a better guess. - // - // Since we might have two guesses, form a queue of - // potential intersecting faces. Keep an array of - // already tested faces to avoid doing one more than - // once. - // - // Result: at worst, an iterative search. On average, - // a little more than two tests would be required. - // - G4ThreeVector q = p + v; - - G4int face = 0; - G4PolyhedraSideVec *vec = vecs; - do { - // - // Correct normal? - // - G4double dotProd = normSign*v.dot(vec->normal); - if (dotProd <= 0) continue; - - // - // Is this face in front of the point along the trajectory? - // - G4ThreeVector delta = p - vec->center; - distFromSurface = -normSign*delta.dot(vec->normal); - - if (distFromSurface < -surfTolerance) continue; - - // - // phi - // c -------- d ^ - // | | | - // a -------- b +---> r/z - // - // - // Do we remain on this particular segment? - // - G4ThreeVector qc = q - vec->edges[1]->corner[0]; - G4ThreeVector qd = q - vec->edges[1]->corner[1]; - - if (normSign*qc.cross(qd).dot(v) < 0) continue; - - G4ThreeVector qa = q - vec->edges[0]->corner[0]; - G4ThreeVector qb = q - vec->edges[0]->corner[1]; - - if (normSign*qa.cross(qb).dot(v) > 0) continue; - - // - // We found the one and only segment we might be intersecting. - // Do we remain within r/z bounds? - // - - if (normSign*qa.cross(qc).dot(v) < 0) return false; - if (normSign*qb.cross(qd).dot(v) > 0) return false; - - // - // We allow the face to be slightly behind the trajectory - // (surface tolerance) only if the point p is within - // the vicinity of the face - // - if (distFromSurface < 0) { - G4ThreeVector ps = p - vec->center; - - G4double rz = ps.dot(vec->surfRZ); - if (fabs(rz) > lenRZ+surfTolerance) return false; + G4double normSign = outgoing ? +1 : -1; + + // + // ------------------TO BE IMPLEMENTED--------------------- + // Testing the intersection of individual phi faces is + // pretty straight forward. The simple thing therefore is to + // form a loop and check them all in sequence. + // + // But, I worry about one day someone making + // a polygon with a thousands sides. A linear search + // would not be ideal in such a case. + // + // So, it would be nice to be able to quickly decide + // which face would be intersected. One can make a very + // good guess by using the intersection with a cone. + // However, this is only reliable in 99% of the cases. + // + // My solution: make a decent guess as to the one or + // two potential faces might get intersected, and then + // test them. If we have the wrong face, use the test + // to make a better guess. + // + // Since we might have two guesses, form a queue of + // potential intersecting faces. Keep an array of + // already tested faces to avoid doing one more than + // once. + // + // Result: at worst, an iterative search. On average, + // a little more than two tests would be required. + // + G4ThreeVector q = p + v; + + G4int face = 0; + G4PolyhedraSideVec *vec = vecs; + do + { + // + // Correct normal? + // + G4double dotProd = normSign*v.dot(vec->normal); + if (dotProd <= 0) continue; + + // + // Is this face in front of the point along the trajectory? + // + G4ThreeVector delta = p - vec->center; + distFromSurface = -normSign*delta.dot(vec->normal); + + if (distFromSurface < -surfTolerance) continue; + + // + // phi + // c -------- d ^ + // | | | + // a -------- b +---> r/z + // + // + // Do we remain on this particular segment? + // + G4ThreeVector qc = q - vec->edges[1]->corner[0]; + G4ThreeVector qd = q - vec->edges[1]->corner[1]; + + if (normSign*qc.cross(qd).dot(v) < 0) continue; + + G4ThreeVector qa = q - vec->edges[0]->corner[0]; + G4ThreeVector qb = q - vec->edges[0]->corner[1]; + + if (normSign*qa.cross(qb).dot(v) > 0) continue; + + // + // We found the one and only segment we might be intersecting. + // Do we remain within r/z bounds? + // + + if (normSign*qa.cross(qc).dot(v) < 0) return false; + if (normSign*qb.cross(qd).dot(v) > 0) return false; + + // + // We allow the face to be slightly behind the trajectory + // (surface tolerance) only if the point p is within + // the vicinity of the face + // + if (distFromSurface < 0) + { + G4ThreeVector ps = p - vec->center; + + G4double rz = ps.dot(vec->surfRZ); + if (fabs(rz) > lenRZ+surfTolerance) return false; - G4double pp = ps.dot(vec->surfPhi); - if (fabs(pp) > lenPhi[0] + lenPhi[1]*rz + surfTolerance) return false; - } - + G4double pp = ps.dot(vec->surfPhi); + if (fabs(pp) > lenPhi[0] + lenPhi[1]*rz + surfTolerance) return false; + } + - // - // Intersection found. Return answer. - // - distance = distFromSurface/dotProd; - normal = vec->normal; - isAllBehind = allBehind; - return true; - } while( ++vec, ++face < numSide ); + // + // Intersection found. Return answer. + // + distance = distFromSurface/dotProd; + normal = vec->normal; + isAllBehind = allBehind; + return true; + } while( ++vec, ++face < numSide ); - // - // Oh well. Better luck next time. - // - return false; + // + // Oh well. Better luck next time. + // + return false; } G4double G4PolyhedraSide::Distance( const G4ThreeVector &p, G4bool outgoing ) { - G4double normSign = outgoing ? -1 : +1; - - // - // Try the closest phi segment first - // - G4int iPhi = ClosestPhiSegment( p.phi() ); - - G4ThreeVector pdotc = p - vecs[iPhi].center; - G4double normDist = pdotc.dot(vecs[iPhi].normal); - - if (normSign*normDist > -0.5*kCarTolerance) { - return DistanceAway( p, vecs[iPhi], &normDist ); - } + G4double normSign = outgoing ? -1 : +1; + + // + // Try the closest phi segment first + // + G4int iPhi = ClosestPhiSegment( p.phi() ); + + G4ThreeVector pdotc = p - vecs[iPhi].center; + G4double normDist = pdotc.dot(vecs[iPhi].normal); + + if (normSign*normDist > -0.5*kCarTolerance) + { + return DistanceAway( p, vecs[iPhi], &normDist ); + } - // - // Now we have an interesting problem... do we try to find the - // closest facing side?? - // - // Considered carefully, the answer is no. We know that if we - // are asking for the distance out, we are supposed to be inside, - // and vice versa. - // - - return kInfinity; + // + // Now we have an interesting problem... do we try to find the + // closest facing side?? + // + // Considered carefully, the answer is no. We know that if we + // are asking for the distance out, we are supposed to be inside, + // and vice versa. + // + + return kInfinity; } // // Inside // -EInside G4PolyhedraSide::Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ) +EInside G4PolyhedraSide::Inside( const G4ThreeVector &p, + G4double tolerance, + G4double *bestDistance ) { - // - // Which phi segment is closest to this point? - // - G4int iPhi = ClosestPhiSegment( p.phi() ); - - G4double norm; - - // - // Get distance to this segment - // - *bestDistance = DistanceToOneSide( p, vecs[iPhi], &norm ); - - // - // Use distance along normal to decide return value - // - if ((fabs(norm) < tolerance) && (*bestDistance < 2.0*tolerance) ) - return kSurface; - else if (norm < 0) - return kInside; - else - return kOutside; + // + // Which phi segment is closest to this point? + // + G4int iPhi = ClosestPhiSegment( p.phi() ); + + G4double norm; + + // + // Get distance to this segment + // + *bestDistance = DistanceToOneSide( p, vecs[iPhi], &norm ); + + // + // Use distance along normal to decide return value + // + if ( (fabs(norm) < tolerance) && (*bestDistance < 2.0*tolerance) ) + return kSurface; + else if (norm < 0) + return kInside; + else + return kOutside; } // // Normal // -G4ThreeVector G4PolyhedraSide::Normal( const G4ThreeVector &p, G4double *bestDistance ) +G4ThreeVector G4PolyhedraSide::Normal( const G4ThreeVector &p, + G4double *bestDistance ) { - // - // Which phi segment is closest to this point? - // - G4int iPhi = ClosestPhiSegment( p.phi() ); + // + // Which phi segment is closest to this point? + // + G4int iPhi = ClosestPhiSegment( p.phi() ); - // - // Get distance to this segment - // - G4double norm; - *bestDistance = DistanceToOneSide( p, vecs[iPhi], &norm ); + // + // Get distance to this segment + // + G4double norm; + *bestDistance = DistanceToOneSide( p, vecs[iPhi], &norm ); - return vecs[iPhi].normal; + return vecs[iPhi].normal; } @@ -592,52 +617,56 @@ G4ThreeVector G4PolyhedraSide::Normal( const G4ThreeVector &p, G4double *bestDi // G4double G4PolyhedraSide::Extent( const G4ThreeVector axis ) { - if (axis.perp2() < DBL_MIN) { - // - // Special case - // - return axis.z() < 0 ? -cone->ZLo() : cone->ZHi(); - } + if (axis.perp2() < DBL_MIN) + { + // + // Special case + // + return axis.z() < 0 ? -cone->ZLo() : cone->ZHi(); + } - G4int iPhi, i1, i2; - G4double best; - G4ThreeVector *list[4]; - - // - // Which phi segment, if any, does the axis belong to - // - iPhi = PhiSegment( axis.phi() ); - - if (iPhi < 0) { - // - // No phi segment? Check front edge of first side and - // last edge of second side - // - i1 = 0; i2 = numSide-1; - } - else { - // - // Check all corners of matching phi side - // - i1 = iPhi; i2 = iPhi; - } - - list[0] = vecs[i1].edges[0]->corner; - list[1] = vecs[i1].edges[0]->corner+1; - list[2] = vecs[i2].edges[1]->corner; - list[3] = vecs[i2].edges[1]->corner+1; - - // - // Who's biggest? - // - best = -kInfinity; - G4ThreeVector **vec = list; - do { - G4double answer = (*vec)->dot(axis); - if (answer > best) best = answer; - } while( ++vec < list+4 ); - - return best; + G4int iPhi, i1, i2; + G4double best; + G4ThreeVector *list[4]; + + // + // Which phi segment, if any, does the axis belong to + // + iPhi = PhiSegment( axis.phi() ); + + if (iPhi < 0) + { + // + // No phi segment? Check front edge of first side and + // last edge of second side + // + i1 = 0; i2 = numSide-1; + } + else + { + // + // Check all corners of matching phi side + // + i1 = iPhi; i2 = iPhi; + } + + list[0] = vecs[i1].edges[0]->corner; + list[1] = vecs[i1].edges[0]->corner+1; + list[2] = vecs[i2].edges[1]->corner; + list[3] = vecs[i2].edges[1]->corner+1; + + // + // Who's biggest? + // + best = -kInfinity; + G4ThreeVector **vec = list; + do + { + G4double answer = (*vec)->dot(axis); + if (answer > best) best = answer; + } while( ++vec < list+4 ); + + return best; } @@ -647,46 +676,49 @@ G4double G4PolyhedraSide::Extent( const G4ThreeVector axis ) // See notes in G4VCSGface // void G4PolyhedraSide::CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &transform, - G4SolidExtentList &extentList ) + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4SolidExtentList &extentList ) { - // - // Loop over all sides - // - G4PolyhedraSideVec *vec = vecs; - do { - // - // Fill our polygon with the four corners of - // this side, after the specified transformation - // - G4ClippablePolygon polygon; - - polygon.AddVertexInOrder( transform.TransformPoint( vec->edges[0]->corner[0] ) ); - polygon.AddVertexInOrder( transform.TransformPoint( vec->edges[0]->corner[1] ) ); - polygon.AddVertexInOrder( transform.TransformPoint( vec->edges[1]->corner[1] ) ); - polygon.AddVertexInOrder( transform.TransformPoint( vec->edges[1]->corner[0] ) ); - - // - // Get extent - // - if (polygon.PartialClip( voxelLimit, axis )) { - // - // Get dot product of normal along target axis - // - polygon.SetNormal( transform.TransformAxis(vec->normal) ); + // + // Loop over all sides + // + G4PolyhedraSideVec *vec = vecs; + do + { + // + // Fill our polygon with the four corners of + // this side, after the specified transformation + // + G4ClippablePolygon polygon; + + polygon.AddVertexInOrder(transform. + TransformPoint(vec->edges[0]->corner[0])); + polygon.AddVertexInOrder(transform. + TransformPoint(vec->edges[0]->corner[1])); + polygon.AddVertexInOrder(transform. + TransformPoint(vec->edges[1]->corner[1])); + polygon.AddVertexInOrder(transform. + TransformPoint(vec->edges[1]->corner[0])); + + // + // Get extent + // + if (polygon.PartialClip( voxelLimit, axis )) + { + // + // Get dot product of normal along target axis + // + polygon.SetNormal( transform.TransformAxis(vec->normal) ); - extentList.AddSurface( polygon ); - } - } while( ++vec < vecs+numSide ); - - return; + extentList.AddSurface( polygon ); + } + } while( ++vec < vecs+numSide ); + + return; } -// -// ------------------------------------------------------- - // // IntersectSidePlane // @@ -699,100 +731,106 @@ void G4PolyhedraSide::CalculateExtent( const EAxis axis, // = -1.0 normal is reversed (now points inward) // // Arguments: -// p - (in) Point -// v - (in) Direction -// vec - (in) Description record of the side plane -// normSign - (in) Sign (+/- 1) to apply to normal -// surfTolerance - (in) Surface tolerance (generally > 0, see below) -// distance - (out) Distance along v to intersection -// distFromSurface - (out) Distance from surface normal +// p - (in) Point +// v - (in) Direction +// vec - (in) Description record of the side plane +// normSign - (in) Sign (+/- 1) to apply to normal +// surfTolerance - (in) Surface tolerance (generally > 0, see below) +// distance - (out) Distance along v to intersection +// distFromSurface - (out) Distance from surface normal // // Notes: -// surfTolerance - Used to decide if a point is behind the surface, -// a point is allow to be -surfTolerance behind the -// surface (as measured along the normal), but *only* -// if the point is within the r/z bounds + surfTolerance -// of the segment. +// surfTolerance - Used to decide if a point is behind the surface, +// a point is allow to be -surfTolerance behind the +// surface (as measured along the normal), but *only* +// if the point is within the r/z bounds + surfTolerance +// of the segment. // -G4bool G4PolyhedraSide::IntersectSidePlane( const G4ThreeVector &p, const G4ThreeVector &v, - const G4PolyhedraSideVec vec, - G4double normSign, - G4double surfTolerance, - G4double &distance, G4double &distFromSurface ) +G4bool G4PolyhedraSide::IntersectSidePlane( const G4ThreeVector &p, + const G4ThreeVector &v, + const G4PolyhedraSideVec vec, + G4double normSign, + G4double surfTolerance, + G4double &distance, + G4double &distFromSurface ) { - // - // Correct normal? Here we have straight sides, and can safely ignore - // intersections where the dot product with the normal is zero. - // - G4double dotProd = normSign*v.dot(vec.normal); - - if (dotProd <= 0) return false; - - // - // Calculate distance to surface. If the side is too far - // behind the point, we must reject it. - // - G4ThreeVector delta = p - vec.center; - distFromSurface = -normSign*delta.dot(vec.normal); - - if (distFromSurface < -surfTolerance) return false; + // + // Correct normal? Here we have straight sides, and can safely ignore + // intersections where the dot product with the normal is zero. + // + G4double dotProd = normSign*v.dot(vec.normal); + + if (dotProd <= 0) return false; + + // + // Calculate distance to surface. If the side is too far + // behind the point, we must reject it. + // + G4ThreeVector delta = p - vec.center; + distFromSurface = -normSign*delta.dot(vec.normal); + + if (distFromSurface < -surfTolerance) return false; - // - // Calculate precise distance to intersection with the side - // (along the trajectory, not normal to the surface) - // - distance = distFromSurface/dotProd; - - // - // Do we fall off the r/z extent of the segment? - // - // Calculate this very, very carefully! Why? - // 1. If a RZ end is at R=0, you can't miss! - // 2. If you just fall off in RZ, the answer must - // be consistent with adjacent G4PolyhedraSide faces. - // (2) implies that only variables used by other G4PolyhedraSide - // faces may be used, which includes only: p, v, and the edge corners. - // It also means that one side is a ">" or "<", which the other - // must be ">=" or "<=". Fortunately, this isn't a new problem. - // The solution below I borrowed from Joseph O'Rourke, - // "Computational Geometry in C (Second Edition)" - // See: http://cs.smith.edu/~orourke/ - // - G4ThreeVector ic = p + distance*v - vec.center; - G4double atRZ = vec.surfRZ.dot(ic); - - if (atRZ < 0) { - if (r[0]==0) return true; // Can't miss! - - if (atRZ < -lenRZ*1.2) return false; // Forget it! Missed by a mile. - - G4ThreeVector q = p + v; - G4ThreeVector qa = q - vec.edges[0]->corner[0], - qb = q - vec.edges[1]->corner[0]; - G4ThreeVector qacb = qa.cross(qb); - if (normSign*qacb.dot(v) < 0) return false; - - if (distFromSurface < 0) { - if (atRZ < -lenRZ-surfTolerance) return false; - } - } - else if (atRZ > 0) { - if (r[1]==0) return true; // Can't miss! - - if (atRZ > lenRZ*1.2) return false; // Missed by a mile - - G4ThreeVector q = p + v; - G4ThreeVector qa = q - vec.edges[0]->corner[1], - qb = q - vec.edges[1]->corner[1]; - G4ThreeVector qacb = qa.cross(qb); - if (normSign*qacb.dot(v) >= 0) return false; - - if (distFromSurface < 0) { - if (atRZ > lenRZ+surfTolerance) return false; - } - } + // + // Calculate precise distance to intersection with the side + // (along the trajectory, not normal to the surface) + // + distance = distFromSurface/dotProd; + + // + // Do we fall off the r/z extent of the segment? + // + // Calculate this very, very carefully! Why? + // 1. If a RZ end is at R=0, you can't miss! + // 2. If you just fall off in RZ, the answer must + // be consistent with adjacent G4PolyhedraSide faces. + // (2) implies that only variables used by other G4PolyhedraSide + // faces may be used, which includes only: p, v, and the edge corners. + // It also means that one side is a ">" or "<", which the other + // must be ">=" or "<=". Fortunately, this isn't a new problem. + // The solution below I borrowed from Joseph O'Rourke, + // "Computational Geometry in C (Second Edition)" + // See: http://cs.smith.edu/~orourke/ + // + G4ThreeVector ic = p + distance*v - vec.center; + G4double atRZ = vec.surfRZ.dot(ic); + + if (atRZ < 0) + { + if (r[0]==0) return true; // Can't miss! + + if (atRZ < -lenRZ*1.2) return false; // Forget it! Missed by a mile. + + G4ThreeVector q = p + v; + G4ThreeVector qa = q - vec.edges[0]->corner[0], + qb = q - vec.edges[1]->corner[0]; + G4ThreeVector qacb = qa.cross(qb); + if (normSign*qacb.dot(v) < 0) return false; + + if (distFromSurface < 0) + { + if (atRZ < -lenRZ-surfTolerance) return false; + } + } + else if (atRZ > 0) + { + if (r[1]==0) return true; // Can't miss! + + if (atRZ > lenRZ*1.2) return false; // Missed by a mile + + G4ThreeVector q = p + v; + G4ThreeVector qa = q - vec.edges[0]->corner[1], + qb = q - vec.edges[1]->corner[1]; + G4ThreeVector qacb = qa.cross(qb); + if (normSign*qacb.dot(v) >= 0) return false; + + if (distFromSurface < 0) + { + if (atRZ > lenRZ+surfTolerance) return false; + } + } - return true; + return true; } @@ -803,40 +841,43 @@ G4bool G4PolyhedraSide::IntersectSidePlane( const G4ThreeVector &p, const G4Thre // No check is made as to whether the intersections are within the z bounds of // the segment. // -G4int G4PolyhedraSide::LineHitsSegments( const G4ThreeVector &p, const G4ThreeVector &v, - G4int *i1, G4int *i2 ) +G4int G4PolyhedraSide::LineHitsSegments( const G4ThreeVector &p, + const G4ThreeVector &v, + G4int *i1, G4int *i2 ) { - G4double s1, s2; - // - // First, decide if and where the line intersects the cone - // - G4int n = cone->LineHitsCone( p, v, &s1, &s2 ); - - if (n==0) return 0; - - // - // Try first intersection. - // - *i1 = PhiSegment( atan2( p.y() + s1*v.y(), p.x() + s1*v.x() ) ); - if (n==1) { - return (*i1 < 0) ? 0 : 1; - } - - // - // Try second intersection - // - *i2 = PhiSegment( atan2( p.y() + s2*v.y(), p.x() + s2*v.x() ) ); - if (*i1 == *i2) return 0; - - if (*i1 < 0) { - if (*i2 < 0) return 0; - *i1 = *i2; - return 1; - } + G4double s1, s2; + // + // First, decide if and where the line intersects the cone + // + G4int n = cone->LineHitsCone( p, v, &s1, &s2 ); + + if (n==0) return 0; + + // + // Try first intersection. + // + *i1 = PhiSegment( atan2( p.y() + s1*v.y(), p.x() + s1*v.x() ) ); + if (n==1) + { + return (*i1 < 0) ? 0 : 1; + } + + // + // Try second intersection + // + *i2 = PhiSegment( atan2( p.y() + s2*v.y(), p.x() + s2*v.x() ) ); + if (*i1 == *i2) return 0; + + if (*i1 < 0) + { + if (*i2 < 0) return 0; + *i1 = *i2; + return 1; + } - if (*i2 < 0) return 1; - - return 2; + if (*i2 < 0) return 1; + + return 2; } @@ -848,22 +889,22 @@ G4int G4PolyhedraSide::LineHitsSegments( const G4ThreeVector &p, const G4ThreeVe // G4int G4PolyhedraSide::ClosestPhiSegment( G4double phi0 ) { - G4int iPhi = PhiSegment( phi0 ); - if (iPhi >= 0) return iPhi; - - // - // Boogers! The points falls inside the phi segment. - // Look for the closest point: the start, or end - // - G4double phi = phi0; - - while( phi < startPhi ) phi += 2*M_PI; - G4double d1 = phi-endPhi; + G4int iPhi = PhiSegment( phi0 ); + if (iPhi >= 0) return iPhi; + + // + // Boogers! The points falls inside the phi segment. + // Look for the closest point: the start, or end + // + G4double phi = phi0; + + while( phi < startPhi ) phi += 2*M_PI; + G4double d1 = phi-endPhi; - while( phi > startPhi ) phi -= 2*M_PI; - G4double d2 = startPhi-phi; - - return (d2 < d1) ? 0 : numSide-1; + while( phi > startPhi ) phi -= 2*M_PI; + G4double d2 = startPhi-phi; + + return (d2 < d1) ? 0 : numSide-1; } @@ -876,29 +917,32 @@ G4int G4PolyhedraSide::ClosestPhiSegment( G4double phi0 ) // G4int G4PolyhedraSide::PhiSegment( G4double phi0 ) { - // - // How far are we from phiStart? Come up with a positive answer - // that is less than 2*PI - // - G4double phi = phi0 - startPhi; - while( phi < 0 ) phi += 2*M_PI; - while( phi > 2*M_PI ) phi -= 2*M_PI; + // + // How far are we from phiStart? Come up with a positive answer + // that is less than 2*PI + // + G4double phi = phi0 - startPhi; + while( phi < 0 ) phi += 2*M_PI; + while( phi > 2*M_PI ) phi -= 2*M_PI; - // - // Divide - // - G4int answer = (G4int)(phi/deltaPhi); - - if (answer >= numSide) { - if (phiIsOpen) { - return -1; // Looks like we missed - } - else { - answer = numSide-1; // Probably just roundoff - } - } - - return answer; + // + // Divide + // + G4int answer = (G4int)(phi/deltaPhi); + + if (answer >= numSide) + { + if (phiIsOpen) + { + return -1; // Looks like we missed + } + else + { + answer = numSide-1; // Probably just roundoff + } + } + + return answer; } @@ -906,26 +950,26 @@ G4int G4PolyhedraSide::PhiSegment( G4double phi0 ) // DistanceToOneSide // // Arguments: -// p - (in) Point to check -// vec - (in) vector set of this side -// normDist - (out) distance normal to the side or edge, as appropriate, signed +// p - (in) Point to check +// vec - (in) vector set of this side +// normDist - (out) distance normal to the side or edge, as appropriate, signed // Return value = total distance from the side // G4double G4PolyhedraSide::DistanceToOneSide( const G4ThreeVector &p, - const G4PolyhedraSideVec &vec, - G4double *normDist ) + const G4PolyhedraSideVec &vec, + G4double *normDist ) { - G4ThreeVector pc = p - vec.center; - - // - // Get normal distance - // - *normDist = vec.normal.dot(pc); + G4ThreeVector pc = p - vec.center; + + // + // Get normal distance + // + *normDist = vec.normal.dot(pc); - // - // Add edge penalty - // - return DistanceAway( p, vec, normDist ); + // + // Add edge penalty + // + return DistanceAway( p, vec, normDist ); } @@ -936,130 +980,142 @@ G4double G4PolyhedraSide::DistanceToOneSide( const G4ThreeVector &p, // and updates normDist appropriate depending on edge normals. // G4double G4PolyhedraSide::DistanceAway( const G4ThreeVector &p, - const G4PolyhedraSideVec &vec, - G4double *normDist ) + const G4PolyhedraSideVec &vec, + G4double *normDist ) { - G4double distOut2; - G4ThreeVector pc = p - vec.center; - G4double distFaceNorm = *normDist; - - // - // Okay, are we inside bounds? - // - G4double pcDotRZ = pc.dot(vec.surfRZ); - G4double pcDotPhi = pc.dot(vec.surfPhi); - - // - // Go through all permutations. - // Phi - // | | ^ - // B | H | E | - // ------[1]------------[3]----- | - // |XXXXXXXXXXXXXX| +----> RZ - // C |XXXXXXXXXXXXXX| F - // |XXXXXXXXXXXXXX| - // ------[0]------------[2]---- - // A | G | D - // | | - // - // It's real messy, but at least it's quick - // - - if (pcDotRZ < -lenRZ) { - G4double lenPhiZ = lenPhi[0] - lenRZ*lenPhi[1]; - G4double distOutZ = pcDotRZ+lenRZ; - // - // Below in RZ - // - if (pcDotPhi < -lenPhiZ) { - // - // ...and below in phi. Find distance to point (A) - // - G4double distOutPhi = pcDotPhi+lenPhiZ; - distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; - G4ThreeVector pa = p - vec.edges[0]->corner[0]; - *normDist = pa.dot(vec.edges[0]->cornNorm[0]); - } - else if (pcDotPhi > lenPhiZ) { - // - // ...and above in phi. Find distance to point (B) - // - G4double distOutPhi = pcDotPhi-lenPhiZ; - distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; - G4ThreeVector pb = p - vec.edges[1]->corner[0]; - *normDist = pb.dot(vec.edges[1]->cornNorm[0]); - } - else { - // - // ...and inside in phi. Find distance to line (C) - // - G4ThreeVector pa = p - vec.edges[0]->corner[0]; - distOut2 = distOutZ*distOutZ; - *normDist = pa.dot(vec.edgeNorm[0]); - } - } - else if (pcDotRZ > lenRZ) { - G4double lenPhiZ = lenPhi[0] + lenRZ*lenPhi[1]; - G4double distOutZ = pcDotRZ-lenRZ; - // - // Above in RZ - // - if (pcDotPhi < -lenPhiZ) { - // - // ...and below in phi. Find distance to point (D) - // - G4double distOutPhi = pcDotPhi+lenPhiZ; - distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; - G4ThreeVector pd = p - vec.edges[0]->corner[1]; - *normDist = pd.dot(vec.edges[0]->cornNorm[1]); - } - else if (pcDotPhi > lenPhiZ) { - // - // ...and above in phi. Find distance to point (E) - // - G4double distOutPhi = pcDotPhi-lenPhiZ; - distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; - G4ThreeVector pe = p - vec.edges[1]->corner[1]; - *normDist = pe.dot(vec.edges[1]->cornNorm[1]); - } - else { - // - // ...and inside in phi. Find distance to line (F) - // - distOut2 = distOutZ*distOutZ; - G4ThreeVector pd = p - vec.edges[0]->corner[1]; - *normDist = pd.dot(vec.edgeNorm[1]); - } - } - else { - G4double lenPhiZ = lenPhi[0] + pcDotRZ*lenPhi[1]; - // - // We are inside RZ bounds - // - if (pcDotPhi < -lenPhiZ) { - // - // ...and below in phi. Find distance to line (G) - // - G4double distOut = edgeNorm*(pcDotPhi+lenPhiZ); - distOut2 = distOut*distOut; - G4ThreeVector pd = p - vec.edges[0]->corner[1]; - *normDist = pd.dot(vec.edges[0]->normal); - } - else if (pcDotPhi > lenPhiZ) { - // - // ...and above in phi. Find distance to line (H) - // - G4double distOut = edgeNorm*(pcDotPhi-lenPhiZ); - distOut2 = distOut*distOut; - G4ThreeVector pe = p - vec.edges[1]->corner[1]; - *normDist = pe.dot(vec.edges[1]->normal); - } - else { - // - // Inside bounds! No penalty. - // - return fabs(distFaceNorm); - } - } - return sqrt( distFaceNorm*distFaceNorm + distOut2 ); + G4double distOut2; + G4ThreeVector pc = p - vec.center; + G4double distFaceNorm = *normDist; + + // + // Okay, are we inside bounds? + // + G4double pcDotRZ = pc.dot(vec.surfRZ); + G4double pcDotPhi = pc.dot(vec.surfPhi); + + // + // Go through all permutations. + // Phi + // | | ^ + // B | H | E | + // ------[1]------------[3]----- | + // |XXXXXXXXXXXXXX| +----> RZ + // C |XXXXXXXXXXXXXX| F + // |XXXXXXXXXXXXXX| + // ------[0]------------[2]---- + // A | G | D + // | | + // + // It's real messy, but at least it's quick + // + + if (pcDotRZ < -lenRZ) + { + G4double lenPhiZ = lenPhi[0] - lenRZ*lenPhi[1]; + G4double distOutZ = pcDotRZ+lenRZ; + // + // Below in RZ + // + if (pcDotPhi < -lenPhiZ) + { + // + // ...and below in phi. Find distance to point (A) + // + G4double distOutPhi = pcDotPhi+lenPhiZ; + distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; + G4ThreeVector pa = p - vec.edges[0]->corner[0]; + *normDist = pa.dot(vec.edges[0]->cornNorm[0]); + } + else if (pcDotPhi > lenPhiZ) + { + // + // ...and above in phi. Find distance to point (B) + // + G4double distOutPhi = pcDotPhi-lenPhiZ; + distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; + G4ThreeVector pb = p - vec.edges[1]->corner[0]; + *normDist = pb.dot(vec.edges[1]->cornNorm[0]); + } + else + { + // + // ...and inside in phi. Find distance to line (C) + // + G4ThreeVector pa = p - vec.edges[0]->corner[0]; + distOut2 = distOutZ*distOutZ; + *normDist = pa.dot(vec.edgeNorm[0]); + } + } + else if (pcDotRZ > lenRZ) + { + G4double lenPhiZ = lenPhi[0] + lenRZ*lenPhi[1]; + G4double distOutZ = pcDotRZ-lenRZ; + // + // Above in RZ + // + if (pcDotPhi < -lenPhiZ) + { + // + // ...and below in phi. Find distance to point (D) + // + G4double distOutPhi = pcDotPhi+lenPhiZ; + distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; + G4ThreeVector pd = p - vec.edges[0]->corner[1]; + *normDist = pd.dot(vec.edges[0]->cornNorm[1]); + } + else if (pcDotPhi > lenPhiZ) + { + // + // ...and above in phi. Find distance to point (E) + // + G4double distOutPhi = pcDotPhi-lenPhiZ; + distOut2 = distOutPhi*distOutPhi + distOutZ*distOutZ; + G4ThreeVector pe = p - vec.edges[1]->corner[1]; + *normDist = pe.dot(vec.edges[1]->cornNorm[1]); + } + else + { + // + // ...and inside in phi. Find distance to line (F) + // + distOut2 = distOutZ*distOutZ; + G4ThreeVector pd = p - vec.edges[0]->corner[1]; + *normDist = pd.dot(vec.edgeNorm[1]); + } + } + else + { + G4double lenPhiZ = lenPhi[0] + pcDotRZ*lenPhi[1]; + // + // We are inside RZ bounds + // + if (pcDotPhi < -lenPhiZ) + { + // + // ...and below in phi. Find distance to line (G) + // + G4double distOut = edgeNorm*(pcDotPhi+lenPhiZ); + distOut2 = distOut*distOut; + G4ThreeVector pd = p - vec.edges[0]->corner[1]; + *normDist = pd.dot(vec.edges[0]->normal); + } + else if (pcDotPhi > lenPhiZ) + { + // + // ...and above in phi. Find distance to line (H) + // + G4double distOut = edgeNorm*(pcDotPhi-lenPhiZ); + distOut2 = distOut*distOut; + G4ThreeVector pe = p - vec.edges[1]->corner[1]; + *normDist = pe.dot(vec.edges[1]->normal); + } + else + { + // + // Inside bounds! No penalty. + // + return fabs(distFaceNorm); + } + } + return sqrt( distFaceNorm*distFaceNorm + distOut2 ); } diff --git a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc index f86f594fcc..15c5afae02 100644 --- a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc +++ b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReduciblePolygon.cc,v 1.4 2001/07/11 10:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReduciblePolygon.cc,v 1.6 2002/10/30 13:52:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -44,44 +44,51 @@ // // Constructor: with simple arrays // -G4ReduciblePolygon::G4ReduciblePolygon( const G4double a[], const G4double b[], +G4ReduciblePolygon::G4ReduciblePolygon( const G4double a[], + const G4double b[], G4int n ) + : aMin(0.), aMax(0.), bMin(0.), bMax(0.), + vertexHead(0) { - // - // Do all of the real work in Create - // - Create( a, b, n ); + // + // Do all of the real work in Create + // + Create( a, b, n ); } // // Constructor: special PGON/PCON case // -G4ReduciblePolygon::G4ReduciblePolygon( const G4double rmin[], const G4double rmax[], - const G4double z[], G4int n ) +G4ReduciblePolygon::G4ReduciblePolygon( const G4double rmin[], + const G4double rmax[], + const G4double z[], G4int n ) + : aMin(0.), aMax(0.), bMin(0.), bMax(0.), + vertexHead(0) { - // - // Translate - // - G4double *a = new G4double[n*2]; - G4double *b = new G4double[n*2]; - - G4double *rOut = a + n, - *zOut = b + n, - *rIn = rOut-1, - *zIn = zOut-1; - - G4int i; - for( i=0; i < n; i++, rOut++, zOut++, rIn--, zIn-- ) { - *rOut = rmax[i]; - *rIn = rmin[i]; - *zOut = *zIn = z[i]; - } - - Create( a, b, n*2 ); - - delete [] a; - delete [] b; + // + // Translate + // + G4double *a = new G4double[n*2]; + G4double *b = new G4double[n*2]; + + G4double *rOut = a + n, + *zOut = b + n, + *rIn = rOut-1, + *zIn = zOut-1; + + G4int i; + for( i=0; i < n; i++, rOut++, zOut++, rIn--, zIn-- ) + { + *rOut = rmax[i]; + *rIn = rmin[i]; + *zOut = *zIn = z[i]; + } + + Create( a, b, n*2 ); + + delete [] a; + delete [] b; } @@ -91,30 +98,35 @@ G4ReduciblePolygon::G4ReduciblePolygon( const G4double rmin[], const G4double rm // To be called by constructors, fill in the list and statistics for a new // polygon // -void G4ReduciblePolygon::Create( const G4double a[], const G4double b[], G4int n ) +void G4ReduciblePolygon::Create( const G4double a[], + const G4double b[], G4int n ) { - if (n<3) G4Exception( "G4ReduciblePolygon: less than 3 vertices specified" ); - - const G4double *anext = a, *bnext = b; - ABVertex *prev = 0; - do { - ABVertex *newVertex = new ABVertex; - newVertex->a = *anext; - newVertex->b = *bnext; - newVertex->next = 0; - if (prev==0) { - vertexHead = newVertex; - } - else { - prev->next = newVertex; - } - - prev = newVertex; - } while( ++anext, ++bnext < b+n ); + if (n<3) + G4Exception("G4ReduciblePolygon::Create() - less than 3 vertices specified"); + + const G4double *anext = a, *bnext = b; + ABVertex *prev = 0; + do + { + ABVertex *newVertex = new ABVertex; + newVertex->a = *anext; + newVertex->b = *bnext; + newVertex->next = 0; + if (prev==0) + { + vertexHead = newVertex; + } + else + { + prev->next = newVertex; + } + + prev = newVertex; + } while( ++anext, ++bnext < b+n ); - numVertices = n; - - CalculateMaxMin(); + numVertices = n; + + CalculateMaxMin(); } @@ -123,12 +135,13 @@ void G4ReduciblePolygon::Create( const G4double a[], const G4double b[], G4int n // G4ReduciblePolygon::~G4ReduciblePolygon() { - ABVertex *curr = vertexHead; - while( curr ) { - ABVertex *toDelete = curr; - curr = curr->next; - delete toDelete; - } + ABVertex *curr = vertexHead; + while( curr ) + { + ABVertex *toDelete = curr; + curr = curr->next; + delete toDelete; + } } @@ -141,13 +154,14 @@ G4ReduciblePolygon::~G4ReduciblePolygon() // void G4ReduciblePolygon::CopyVertices( G4double a[], G4double b[] ) const { - G4double *anext = a, *bnext = b; - ABVertex *curr = vertexHead; - while( curr ) { - *anext++ = curr->a; - *bnext++ = curr->b; - curr = curr->next; - } + G4double *anext = a, *bnext = b; + ABVertex *curr = vertexHead; + while( curr ) + { + *anext++ = curr->a; + *bnext++ = curr->b; + curr = curr->next; + } } @@ -158,12 +172,13 @@ void G4ReduciblePolygon::CopyVertices( G4double a[], G4double b[] ) const // void G4ReduciblePolygon::ScaleA( G4double scale ) { - ABVertex *curr = vertexHead; - while( curr ) { - curr->a *= scale; - curr = curr->next; - } -} + ABVertex *curr = vertexHead; + while( curr ) + { + curr->a *= scale; + curr = curr->next; + } +} // @@ -173,12 +188,13 @@ void G4ReduciblePolygon::ScaleA( G4double scale ) // void G4ReduciblePolygon::ScaleB( G4double scale ) { - ABVertex *curr = vertexHead; - while( curr ) { - curr->b *= scale; - curr = curr->next; - } -} + ABVertex *curr = vertexHead; + while( curr ) + { + curr->b *= scale; + curr = curr->next; + } +} // @@ -189,46 +205,50 @@ void G4ReduciblePolygon::ScaleB( G4double scale ) // G4bool G4ReduciblePolygon::RemoveDuplicateVertices( G4double tolerance ) { - ABVertex *curr = vertexHead, - *prev = 0, - *next = curr->next; // A little dangerous - while( curr ) { - next = curr->next; - if (next == 0) next = vertexHead; - - if (fabs(curr->a-next->a) < tolerance && - fabs(curr->b-next->b) < tolerance ) { - // - // Duplicate found: do we have > 3 vertices? - // - if (numVertices <= 3) { - CalculateMaxMin(); - return false; - } - - // - // Delete - // - ABVertex *toDelete = curr; - curr = curr->next; - delete toDelete; - - numVertices--; - - if (prev) prev->next = curr; else vertexHead = curr; - } - else { - prev = curr; - curr = curr->next; - } - } - - // - // In principle, this is not needed, but why not just play it safe? - // - CalculateMaxMin(); - - return true; + ABVertex *curr = vertexHead, + *prev = 0, + *next = curr->next; // A little dangerous + while( curr ) + { + next = curr->next; + if (next == 0) next = vertexHead; + + if (fabs(curr->a-next->a) < tolerance && + fabs(curr->b-next->b) < tolerance ) + { + // + // Duplicate found: do we have > 3 vertices? + // + if (numVertices <= 3) + { + CalculateMaxMin(); + return false; + } + + // + // Delete + // + ABVertex *toDelete = curr; + curr = curr->next; + delete toDelete; + + numVertices--; + + if (prev) prev->next = curr; else vertexHead = curr; + } + else + { + prev = curr; + curr = curr->next; + } + } + + // + // In principle, this is not needed, but why not just play it safe? + // + CalculateMaxMin(); + + return true; } @@ -240,88 +260,92 @@ G4bool G4ReduciblePolygon::RemoveDuplicateVertices( G4double tolerance ) // G4bool G4ReduciblePolygon::RemoveRedundantVertices( G4double tolerance ) { - // - // Under these circumstances, we can quit now! - // - if (numVertices <= 2) return false; - - G4double tolerance2 = tolerance*tolerance; + // + // Under these circumstances, we can quit now! + // + if (numVertices <= 2) return false; + + G4double tolerance2 = tolerance*tolerance; - // - // Loop over all vertices - // - ABVertex *curr = vertexHead, - *next = curr->next; // A little dangerous - while( curr ) { - next = curr->next; - if (next == 0) next = vertexHead; - - G4double da = next->a - curr->a, - db = next->b - curr->b; - - // - // Loop over all subsequent vertices, up to curr - // - for(;;) { - // - // Get vertex after next - // - ABVertex *test = next->next; - if (test == 0) test = vertexHead; - - // - // If we are back to the original vertex, stop - // - if (test==curr) break; - - // - // Test for parallel line segments - // - G4double dat = test->a - curr->a, - dbt = test->b - curr->b; - - if (fabs(dat*db-dbt*da)>tolerance2) break; - - // - // Redundant vertex found: do we have > 3 vertices? - // - if (numVertices <= 3) { - CalculateMaxMin(); - return false; - } + // + // Loop over all vertices + // + ABVertex *curr = vertexHead, + *next = curr->next; // A little dangerous + while( curr ) + { + next = curr->next; + if (next == 0) next = vertexHead; + + G4double da = next->a - curr->a, + db = next->b - curr->b; + + // + // Loop over all subsequent vertices, up to curr + // + for(;;) + { + // + // Get vertex after next + // + ABVertex *test = next->next; + if (test == 0) test = vertexHead; + + // + // If we are back to the original vertex, stop + // + if (test==curr) break; + + // + // Test for parallel line segments + // + G4double dat = test->a - curr->a, + dbt = test->b - curr->b; + + if (fabs(dat*db-dbt*da)>tolerance2) break; + + // + // Redundant vertex found: do we have > 3 vertices? + // + if (numVertices <= 3) + { + CalculateMaxMin(); + return false; + } - // - // Delete vertex pointed to by next. Carefully! - // - if (curr->next) { // next is not head - if (next->next) - curr->next = test; // next is not tail - else - curr->next = 0; // New tail - } - else - vertexHead = test; // New head - - delete next; - - numVertices--; - - // - // Replace next by the vertex we just tested, - // and keep on going... - // - next = test; - da = dat; db = dbt; - } - curr = curr->next; - } - - // - // In principle, this is not needed, but why not just play it safe? - // - CalculateMaxMin(); - - return true; + // + // Delete vertex pointed to by next. Carefully! + // + if (curr->next) + { // next is not head + if (next->next) + curr->next = test; // next is not tail + else + curr->next = 0; // New tail + } + else + vertexHead = test; // New head + + delete next; + + numVertices--; + + // + // Replace next by the vertex we just tested, + // and keep on going... + // + next = test; + da = dat; db = dbt; + } + curr = curr->next; + } + + // + // In principle, this is not needed, but why not just play it safe? + // + CalculateMaxMin(); + + return true; } @@ -332,48 +356,49 @@ G4bool G4ReduciblePolygon::RemoveRedundantVertices( G4double tolerance ) // void G4ReduciblePolygon::ReverseOrder() { - // - // Loop over all vertices - // - ABVertex *prev = vertexHead; - if (prev==0) return; // No vertices - - ABVertex *curr = prev->next; - if (curr==0) return; // Just one vertex - - // - // Our new tail - // - vertexHead->next = 0; - - for(;;) { - // - // Save pointer to next vertex (in original order) - // - ABVertex *save = curr->next; - - // - // Replace it with a pointer to the previous one - // (in original order) - // - curr->next = prev; - - // - // Last vertex? - // - if (save == 0) break; - - // - // Next vertex - // - prev = curr; - curr = save; - } - - // - // Our new head - // - vertexHead = curr; + // + // Loop over all vertices + // + ABVertex *prev = vertexHead; + if (prev==0) return; // No vertices + + ABVertex *curr = prev->next; + if (curr==0) return; // Just one vertex + + // + // Our new tail + // + vertexHead->next = 0; + + for(;;) + { + // + // Save pointer to next vertex (in original order) + // + ABVertex *save = curr->next; + + // + // Replace it with a pointer to the previous one + // (in original order) + // + curr->next = prev; + + // + // Last vertex? + // + if (save == 0) break; + + // + // Next vertex + // + prev = curr; + curr = save; + } + + // + // Our new head + // + vertexHead = curr; } @@ -386,53 +411,49 @@ void G4ReduciblePolygon::ReverseOrder() // G4bool G4ReduciblePolygon::CrossesItself( G4double tolerance ) { - G4double tolerance2 = tolerance*tolerance; - G4double one = 1.0-tolerance, - zero = tolerance; - // - // Top loop over line segments. By the time we finish - // with the second to last segment, we're done. - // - ABVertex *curr1 = vertexHead, *next1=0; - while (curr1->next) { - next1 = curr1->next; - G4double da1 = next1->a-curr1->a, - db1 = next1->b-curr1->b; - - // - // Inner loop over subsequent line segments - // - ABVertex *curr2 = next1->next; - while( curr2 ) { - ABVertex *next2 = curr2->next; - if (next2==0) next2 = vertexHead; - G4double da2 = next2->a-curr2->a, - db2 = next2->b-curr2->b; - G4double a12 = curr2->a-curr1->a, - b12 = curr2->b-curr1->b; - - // - // Calculate intersection of the two lines - // - G4double deter = da1*db2 - db1*da2; - if (fabs(deter) > tolerance2) { - G4double s1, s2; - s1 = (a12*db2-b12*da2)/deter; - - if (s1 >= zero && s1 < one) { - s2 = -(da1*b12-db1*a12)/deter; - if (s2 >= zero && s2 < one) return true; - } - } - - curr2 = curr2->next; - } - - curr1 = next1; - } - - - return false; + G4double tolerance2 = tolerance*tolerance; + G4double one = 1.0-tolerance, + zero = tolerance; + // + // Top loop over line segments. By the time we finish + // with the second to last segment, we're done. + // + ABVertex *curr1 = vertexHead, *next1=0; + while (curr1->next) { + next1 = curr1->next; + G4double da1 = next1->a-curr1->a, + db1 = next1->b-curr1->b; + + // + // Inner loop over subsequent line segments + // + ABVertex *curr2 = next1->next; + while( curr2 ) { + ABVertex *next2 = curr2->next; + if (next2==0) next2 = vertexHead; + G4double da2 = next2->a-curr2->a, + db2 = next2->b-curr2->b; + G4double a12 = curr2->a-curr1->a, + b12 = curr2->b-curr1->b; + + // + // Calculate intersection of the two lines + // + G4double deter = da1*db2 - db1*da2; + if (fabs(deter) > tolerance2) { + G4double s1, s2; + s1 = (a12*db2-b12*da2)/deter; + + if (s1 >= zero && s1 < one) { + s2 = -(da1*b12-db1*a12)/deter; + if (s2 >= zero && s2 < one) return true; + } + } + curr2 = curr2->next; + } + curr1 = next1; + } + return false; } @@ -443,33 +464,37 @@ G4bool G4ReduciblePolygon::CrossesItself( G4double tolerance ) // Decide if a line through two points crosses the polygon, within tolerance // G4bool G4ReduciblePolygon::BisectedBy( G4double a1, G4double b1, - G4double a2, G4double b2, G4double tolerance ) + G4double a2, G4double b2, + G4double tolerance ) { - G4int nNeg = 0, nPos = 0; - - G4double a12 = a2-a1, b12 = b2-b1; - G4double len12 = sqrt( a12*a12 + b12*b12 ); - a12 /= len12; b12 /= len12; - - ABVertex *curr = vertexHead; - do { - G4double av = curr->a - a1, - bv = curr->b - b1; - - G4double cross = av*b12 - bv*a12; - - if (cross < -tolerance) { - if (nPos) return true; - nNeg++; - } - else if (cross > tolerance) { - if (nNeg) return true; - nPos++; - } - curr = curr->next; - } while( curr ); - - return false; + G4int nNeg = 0, nPos = 0; + + G4double a12 = a2-a1, b12 = b2-b1; + G4double len12 = sqrt( a12*a12 + b12*b12 ); + a12 /= len12; b12 /= len12; + + ABVertex *curr = vertexHead; + do + { + G4double av = curr->a - a1, + bv = curr->b - b1; + + G4double cross = av*b12 - bv*a12; + + if (cross < -tolerance) + { + if (nPos) return true; + nNeg++; + } + else if (cross > tolerance) + { + if (nNeg) return true; + nPos++; + } + curr = curr->next; + } while( curr ); + + return false; } @@ -477,26 +502,27 @@ G4bool G4ReduciblePolygon::BisectedBy( G4double a1, G4double b1, // // Area // -// Calculated signed polygon area, where polygons specified in a clockwise manner -// (where x==a, y==b) have negative area +// Calculated signed polygon area, where polygons specified in a +// clockwise manner (where x==a, y==b) have negative area // // References: [O' Rourke (C)] pp. 18-27; [Gems II] pp. 5-6: // "The Area of a Simple Polygon", Jon Rokne. // G4double G4ReduciblePolygon::Area() { - G4double answer = 0; - - ABVertex *curr = vertexHead, *next; - do { - next = curr->next; - if (next==0) next = vertexHead; - - answer += curr->a*next->b - curr->b*next->a; - curr = curr->next; - } while( curr ); - - return 0.5*answer; + G4double answer = 0; + + ABVertex *curr = vertexHead, *next; + do + { + next = curr->next; + if (next==0) next = vertexHead; + + answer += curr->a*next->b - curr->b*next->a; + curr = curr->next; + } while( curr ); + + return 0.5*answer; } @@ -505,11 +531,12 @@ G4double G4ReduciblePolygon::Area() // void G4ReduciblePolygon::Print() { - ABVertex *curr = vertexHead; - do { - G4cerr << curr->a << " " << curr->b << G4endl; - curr = curr->next; - } while( curr ); + ABVertex *curr = vertexHead; + do + { + G4cerr << curr->a << " " << curr->b << G4endl; + curr = curr->next; + } while( curr ); } @@ -521,21 +548,22 @@ void G4ReduciblePolygon::Print() // void G4ReduciblePolygon::CalculateMaxMin() { - ABVertex *curr = vertexHead; - aMin = aMax = curr->a; - bMin = bMax = curr->b; - curr = curr->next; - while( curr ) { - if (curr->a < aMin) - aMin = curr->a; - else if (curr->a > aMax) - aMax = curr->a; + ABVertex *curr = vertexHead; + aMin = aMax = curr->a; + bMin = bMax = curr->b; + curr = curr->next; + while( curr ) + { + if (curr->a < aMin) + aMin = curr->a; + else if (curr->a > aMax) + aMax = curr->a; - if (curr->b < bMin) - bMin = curr->b; - else if (curr->b > bMax) - bMax = curr->b; - - curr = curr->next; - } + if (curr->b < bMin) + bMin = curr->b; + else if (curr->b > bMax) + bMax = curr->b; + + curr = curr->next; + } } diff --git a/source/geometry/solids/specific/src/G4SolidExtentList.cc b/source/geometry/solids/specific/src/G4SolidExtentList.cc index 6790fe8d00..6b7f37a030 100644 --- a/source/geometry/solids/specific/src/G4SolidExtentList.cc +++ b/source/geometry/solids/specific/src/G4SolidExtentList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SolidExtentList.cc,v 1.2 2001/07/11 10:00:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SolidExtentList.cc,v 1.3 2002/10/28 11:47:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -38,42 +38,47 @@ #include "G4SolidExtentList.hh" #include "G4VoxelLimits.hh" + // // Constructor (default) // G4SolidExtentList::G4SolidExtentList() { - axis = kZAxis; - limited = false; - minLimit = -DBL_MAX; - maxLimit = +DBL_MAX; + axis = kZAxis; + limited = false; + minLimit = -DBL_MAX; + maxLimit = +DBL_MAX; } // // Constructor (limited case) // -G4SolidExtentList::G4SolidExtentList( const EAxis targetAxis, const G4VoxelLimits &voxelLimits ) +G4SolidExtentList::G4SolidExtentList( const EAxis targetAxis, + const G4VoxelLimits &voxelLimits ) { - axis = targetAxis; - - limited = voxelLimits.IsLimited( axis ); - if (limited) { - minLimit = voxelLimits.GetMinExtent( axis ); - maxLimit = voxelLimits.GetMaxExtent( axis ); - } - else { - minLimit = -DBL_MAX; - maxLimit = +DBL_MAX; - } + axis = targetAxis; + + limited = voxelLimits.IsLimited( axis ); + if (limited) + { + minLimit = voxelLimits.GetMinExtent( axis ); + maxLimit = voxelLimits.GetMaxExtent( axis ); + } + else + { + minLimit = -DBL_MAX; + maxLimit = +DBL_MAX; + } } // // Destructor // -G4SolidExtentList::~G4SolidExtentList() {;} - +G4SolidExtentList::~G4SolidExtentList() +{ +} // @@ -82,32 +87,35 @@ G4SolidExtentList::~G4SolidExtentList() {;} // void G4SolidExtentList::AddSurface( const G4ClippablePolygon &surface ) { - // - // Keep track of four surfaces - // - G4double min, max; - - surface.GetExtent( axis, min, max ); - - if (min > maxLimit) { - // - // Nearest surface beyond maximum limit - // - if (surface.InFrontOf(minAbove,axis)) minAbove = surface; - } - else if (max < minLimit) { - // - // Nearest surface below minimum limit - // - if (surface.BehindOf(maxBelow,axis)) maxBelow = surface; - } - else { - // - // Max and min surfaces inside - // - if (surface.BehindOf(maxSurface,axis)) maxSurface = surface; - if (surface.InFrontOf(minSurface,axis)) minSurface = surface; - } + // + // Keep track of four surfaces + // + G4double min, max; + + surface.GetExtent( axis, min, max ); + + if (min > maxLimit) + { + // + // Nearest surface beyond maximum limit + // + if (surface.InFrontOf(minAbove,axis)) minAbove = surface; + } + else if (max < minLimit) + { + // + // Nearest surface below minimum limit + // + if (surface.BehindOf(maxBelow,axis)) maxBelow = surface; + } + else + { + // + // Max and min surfaces inside + // + if (surface.BehindOf(maxSurface,axis)) maxSurface = surface; + if (surface.InFrontOf(minSurface,axis)) minSurface = surface; + } } @@ -119,61 +127,63 @@ void G4SolidExtentList::AddSurface( const G4ClippablePolygon &surface ) // G4bool G4SolidExtentList::GetExtent( G4double &min, G4double &max ) const { - // - // Did we have any surfaces within the limits? - // - if (minSurface.Empty()) { - // - // Nothing! Do we have anything above? - // - if (minAbove.Empty()) return false; - - // - // Yup. Is it facing inwards? - // - if (minAbove.GetNormal().operator()(axis) < 0) return false; - - // - // No. We must be entirely within the solid - // - max = maxLimit + kCarTolerance; - min = minLimit - kCarTolerance; - return true; - } - - // - // Check max surface - // - if (maxSurface.GetNormal().operator()(axis) < 0) { - // - // Inward facing: max limit must be embedded within solid - // - max = maxLimit + kCarTolerance; - } - else { - G4double sMin, sMax; - maxSurface.GetExtent( axis, sMin, sMax ); - max = ( (sMax > maxLimit) ? maxLimit : sMax ) + kCarTolerance; - } - - // - // Check min surface - // - if (minSurface.GetNormal().operator()(axis) > 0) { - // - // Inward facing: max limit must be embedded within solid - // - min = minLimit - kCarTolerance; - } - else { - G4double sMin, sMax; - minSurface.GetExtent( axis, sMin, sMax ); - min = ( (sMin < minLimit) ? minLimit : sMin ) - kCarTolerance; - } - - return true; + // + // Did we have any surfaces within the limits? + // + if (minSurface.Empty()) + { + // + // Nothing! Do we have anything above? + // + if (minAbove.Empty()) return false; + + // + // Yup. Is it facing inwards? + // + if (minAbove.GetNormal().operator()(axis) < 0) return false; + + // + // No. We must be entirely within the solid + // + max = maxLimit + kCarTolerance; + min = minLimit - kCarTolerance; + return true; + } + + // + // Check max surface + // + if (maxSurface.GetNormal().operator()(axis) < 0) + { + // + // Inward facing: max limit must be embedded within solid + // + max = maxLimit + kCarTolerance; + } + else + { + G4double sMin, sMax; + maxSurface.GetExtent( axis, sMin, sMax ); + max = ( (sMax > maxLimit) ? maxLimit : sMax ) + kCarTolerance; + } + + // + // Check min surface + // + if (minSurface.GetNormal().operator()(axis) > 0) + { + // + // Inward facing: max limit must be embedded within solid + // + min = minLimit - kCarTolerance; + } + else + { + G4double sMin, sMax; + minSurface.GetExtent( axis, sMin, sMax ); + min = ( (sMin < minLimit) ? minLimit : sMin ) - kCarTolerance; + } + + return true; } - - - diff --git a/source/geometry/solids/specific/src/G4VCSGfaceted.cc b/source/geometry/solids/specific/src/G4VCSGfaceted.cc index 0098fd90b1..9db2ccd136 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.7 2001/07/11 10:00:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCSGfaceted.cc,v 1.9 2002/10/30 13:52:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- @@ -54,21 +54,32 @@ #include "G4NURBSbox.hh" #include "G4VisExtent.hh" +// +// Constructor +// +G4VCSGfaceted::G4VCSGfaceted( G4String name ) + : G4VSolid(name), + numFace(0), faces(0) +{ +} + + // // Destructor // G4VCSGfaceted::~G4VCSGfaceted() { - DeleteStuff(); + DeleteStuff(); } // // Copy constructor // -G4VCSGfaceted::G4VCSGfaceted( const G4VCSGfaceted &source ) : G4VSolid( source ) +G4VCSGfaceted::G4VCSGfaceted( const G4VCSGfaceted &source ) + : G4VSolid( source ) { - CopyStuff( source ); + CopyStuff( source ); } @@ -77,12 +88,12 @@ G4VCSGfaceted::G4VCSGfaceted( const G4VCSGfaceted &source ) : G4VSolid( source ) // const G4VCSGfaceted &G4VCSGfaceted::operator=( const G4VCSGfaceted &source ) { - if (&source == this) return *this; - - DeleteStuff(); - CopyStuff( source ); - - return *this; + if (&source == this) return *this; + + DeleteStuff(); + CopyStuff( source ); + + return *this; } @@ -93,16 +104,16 @@ const G4VCSGfaceted &G4VCSGfaceted::operator=( const G4VCSGfaceted &source ) // void G4VCSGfaceted::CopyStuff( const G4VCSGfaceted &source ) { - numFace = source.numFace; - if (numFace == 0) return; // odd, but permissable? - - faces = new G4VCSGface*[numFace]; - - G4VCSGface **face = faces, - **sourceFace = source.faces; - do { - *face = (*sourceFace)->Clone(); - } while( ++sourceFace, ++face < faces+numFace ); + numFace = source.numFace; + if (numFace == 0) return; // odd, but permissable? + + faces = new G4VCSGface*[numFace]; + + G4VCSGface **face = faces, + **sourceFace = source.faces; + do { + *face = (*sourceFace)->Clone(); + } while( ++sourceFace, ++face < faces+numFace ); } @@ -113,14 +124,15 @@ void G4VCSGfaceted::CopyStuff( const G4VCSGfaceted &source ) // void G4VCSGfaceted::DeleteStuff() { - if (numFace) { - G4VCSGface **face = faces; - do { - delete *face; - } while( ++face < faces + numFace ); + if (numFace) + { + G4VCSGface **face = faces; + do { + delete *face; + } while( ++face < faces + numFace ); - delete [] faces; - } + delete [] faces; + } } @@ -128,24 +140,25 @@ void G4VCSGfaceted::DeleteStuff() // CalculateExtent // G4bool G4VCSGfaceted::CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &transform, - G4double &min, G4double &max ) const + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4double &min, + G4double &max ) const { - G4SolidExtentList extentList( axis, voxelLimit ); + G4SolidExtentList extentList( axis, voxelLimit ); - // - // Loop over all faces, checking min/max extent as we go. - // - G4VCSGface **face = faces; - do { - (*face)->CalculateExtent( axis, voxelLimit, transform, extentList ); - } while( ++face < faces + numFace ); - - // - // Return min/max value - // - return extentList.GetExtent( min, max ); + // + // Loop over all faces, checking min/max extent as we go. + // + G4VCSGface **face = faces; + do { + (*face)->CalculateExtent( axis, voxelLimit, transform, extentList ); + } while( ++face < faces + numFace ); + + // + // Return min/max value + // + return extentList.GetExtent( min, max ); } @@ -159,78 +172,84 @@ G4bool G4VCSGfaceted::CalculateExtent( const EAxis axis, // EInside G4VCSGfaceted::Inside( const G4ThreeVector &p ) const { - EInside answer=kOutside; - G4VCSGface **face = faces; - G4double best = kInfinity; - do { - G4double distance; - EInside result = (*face)->Inside( p, kCarTolerance/2, &distance ); - if (result == kSurface) return kSurface; - if (distance < best) { - best = distance; - answer = result; - } - } while( ++face < faces + numFace ); + EInside answer=kOutside; + G4VCSGface **face = faces; + G4double best = kInfinity; + do { + G4double distance; + EInside result = (*face)->Inside( p, kCarTolerance/2, &distance ); + if (result == kSurface) return kSurface; + if (distance < best) + { + best = distance; + answer = result; + } + } while( ++face < faces + numFace ); - return answer; + return answer; } // // SurfaceNormal // -G4ThreeVector G4VCSGfaceted::SurfaceNormal( const G4ThreeVector& p) const +G4ThreeVector G4VCSGfaceted::SurfaceNormal( const G4ThreeVector& p ) const { - G4ThreeVector answer; - G4VCSGface **face = faces; - G4double best = kInfinity; - do { - G4double distance; - G4ThreeVector normal = (*face)->Normal( p, &distance ); - if (distance < best) { - best = distance; - answer = normal; - } - } while( ++face < faces + numFace ); + G4ThreeVector answer; + G4VCSGface **face = faces; + G4double best = kInfinity; + do { + G4double distance; + G4ThreeVector normal = (*face)->Normal( p, &distance ); + if (distance < best) + { + best = distance; + answer = normal; + } + } while( ++face < faces + numFace ); - return answer; + return answer; } // // DistanceToIn(p,v) // -G4double G4VCSGfaceted::DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const +G4double G4VCSGfaceted::DistanceToIn( const G4ThreeVector &p, + const G4ThreeVector &v ) const { - G4double distance = kInfinity; - G4double distFromSurface = kInfinity; - G4VCSGface *bestFace=0; - G4VCSGface **face = faces; - do { - G4double faceDistance, - faceDistFromSurface; - G4ThreeVector faceNormal; - G4bool faceAllBehind; - if ((*face)->Intersect( p, v, false, kCarTolerance/2, - faceDistance, faceDistFromSurface, - faceNormal, faceAllBehind ) ) { - // - // Intersecting face - // - if (faceDistance < distance) { - distance = faceDistance; - distFromSurface = faceDistFromSurface; - bestFace = *face; - if (distFromSurface <= 0) return 0; - } - } - } while( ++face < faces + numFace ); - - if (distance < kInfinity && distFromSurfaceDistance(p,false) < kCarTolerance/2) distance = 0; - } + G4double distance = kInfinity; + G4double distFromSurface = kInfinity; + G4VCSGface *bestFace=0; + G4VCSGface **face = faces; + do { + G4double faceDistance, + faceDistFromSurface; + G4ThreeVector faceNormal; + G4bool faceAllBehind; + if ((*face)->Intersect( p, v, false, kCarTolerance/2, + faceDistance, faceDistFromSurface, + faceNormal, faceAllBehind ) ) + { + // + // Intersecting face + // + if (faceDistance < distance) + { + distance = faceDistance; + distFromSurface = faceDistFromSurface; + bestFace = *face; + if (distFromSurface <= 0) return 0; + } + } + } while( ++face < faces + numFace ); + + if (distance < kInfinity && distFromSurfaceDistance(p,false) < kCarTolerance/2) distance = 0; + } - return distance; + return distance; } @@ -239,63 +258,71 @@ G4double G4VCSGfaceted::DistanceToIn( const G4ThreeVector &p, const G4ThreeVecto // G4double G4VCSGfaceted::DistanceToIn( const G4ThreeVector &p ) const { - return DistanceTo( p, false ); + return DistanceTo( p, false ); } // // DistanceToOut(p,v) // -G4double G4VCSGfaceted::DistanceToOut( const G4ThreeVector &p, const G4ThreeVector &v, - const G4bool calcNorm, - G4bool *validNorm, G4ThreeVector *n ) const +G4double G4VCSGfaceted::DistanceToOut( const G4ThreeVector &p, + const G4ThreeVector &v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const { - G4bool allBehind = true; - G4double distance = kInfinity; - G4double distFromSurface = kInfinity; - G4ThreeVector normal; - G4VCSGface *bestFace=0; - - G4VCSGface **face = faces; - do { - G4double faceDistance, - faceDistFromSurface; - G4ThreeVector faceNormal; - G4bool faceAllBehind; - if ((*face)->Intersect( p, v, true, kCarTolerance/2, - faceDistance, faceDistFromSurface, - faceNormal, faceAllBehind ) ) { - // - // Intersecting face - // - if ( (distance < kInfinity) || (!faceAllBehind) ) allBehind = false; - if (faceDistance < distance) { - distance = faceDistance; - distFromSurface = faceDistFromSurface; - normal = faceNormal; - bestFace = *face; - if (distFromSurface <= 0) break; - } - } - } while( ++face < faces + numFace ); - - if (distance < kInfinity) { - if (distFromSurface <= 0) - distance = 0; - else if (distFromSurfaceDistance(p,true) < kCarTolerance/2) distance = 0; - } + G4bool allBehind = true; + G4double distance = kInfinity; + G4double distFromSurface = kInfinity; + G4ThreeVector normal; + G4VCSGface *bestFace=0; + + G4VCSGface **face = faces; + do { + G4double faceDistance, + faceDistFromSurface; + G4ThreeVector faceNormal; + G4bool faceAllBehind; + if ((*face)->Intersect( p, v, true, kCarTolerance/2, + faceDistance, faceDistFromSurface, + faceNormal, faceAllBehind ) ) + { + // + // Intersecting face + // + if ( (distance < kInfinity) || (!faceAllBehind) ) allBehind = false; + if (faceDistance < distance) + { + distance = faceDistance; + distFromSurface = faceDistFromSurface; + normal = faceNormal; + bestFace = *face; + if (distFromSurface <= 0) break; + } + } + } while( ++face < faces + numFace ); + + if (distance < kInfinity) + { + if (distFromSurface <= 0) + distance = 0; + else if (distFromSurfaceDistance(p,true) < kCarTolerance/2) distance = 0; + } - if (calcNorm) { - *validNorm = allBehind; - *n = normal; - } - } - else { - if (calcNorm) *validNorm = false; - } + if (calcNorm) + { + *validNorm = allBehind; + *n = normal; + } + } + else + { + if (calcNorm) *validNorm = false; + } - return distance; + return distance; } @@ -304,7 +331,7 @@ G4double G4VCSGfaceted::DistanceToOut( const G4ThreeVector &p, const G4ThreeVect // G4double G4VCSGfaceted::DistanceToOut( const G4ThreeVector &p ) const { - return DistanceTo( p, true ); + return DistanceTo( p, true ); } @@ -313,16 +340,17 @@ G4double G4VCSGfaceted::DistanceToOut( const G4ThreeVector &p ) const // // Protected routine called by DistanceToIn and DistanceToOut // -G4double G4VCSGfaceted::DistanceTo( const G4ThreeVector &p, const G4bool outgoing ) const +G4double G4VCSGfaceted::DistanceTo( const G4ThreeVector &p, + const G4bool outgoing ) const { - G4VCSGface **face = faces; - G4double best = kInfinity; - do { - G4double distance = (*face)->Distance( p, outgoing ); - if (distance < best) best = distance; - } while( ++face < faces + numFace ); + G4VCSGface **face = faces; + G4double best = kInfinity; + do { + G4double distance = (*face)->Distance( p, outgoing ); + if (distance < best) best = distance; + } while( ++face < faces + numFace ); - return (best < 0.5*kCarTolerance) ? 0 : best; + return (best < 0.5*kCarTolerance) ? 0 : best; } @@ -342,26 +370,54 @@ void G4VCSGfaceted::DescribeYourselfTo( G4VGraphicsScene& scene ) const // G4VisExtent G4VCSGfaceted::GetExtent() const { - static const G4ThreeVector xMax(1,0,0), xMin(-1,0,0), - yMax(0,1,0), yMin(0,-1,0), - zMax(0,0,1), zMin(0,0,-1); - static const G4ThreeVector *axes[6] = { &xMin, &xMax, &yMin, &yMax, &zMin, &zMax }; - - G4double answers[6] = {-kInfinity, -kInfinity, -kInfinity, -kInfinity, -kInfinity, -kInfinity}; - - G4VCSGface **face = faces; - do { - const G4ThreeVector **axis = axes+5 ; - G4double *answer = answers+5; - do { - G4double testFace = (*face)->Extent( **axis ); - if (testFace > *answer) *answer = testFace; - } - while( --axis, --answer >= answers ); - - } while( ++face < faces + numFace ); + static const G4ThreeVector xMax(1,0,0), xMin(-1,0,0), + yMax(0,1,0), yMin(0,-1,0), + zMax(0,0,1), zMin(0,0,-1); + static const G4ThreeVector *axes[6] = + { &xMin, &xMax, &yMin, &yMax, &zMin, &zMax }; - return G4VisExtent( -answers[0], answers[1], - -answers[2], answers[3], - -answers[4], answers[5] ); + G4double answers[6] = + {-kInfinity, -kInfinity, -kInfinity, -kInfinity, -kInfinity, -kInfinity}; + + G4VCSGface **face = faces; + do { + const G4ThreeVector **axis = axes+5 ; + G4double *answer = answers+5; + do { + G4double testFace = (*face)->Extent( **axis ); + if (testFace > *answer) *answer = testFace; + } + while( --axis, --answer >= answers ); + + } while( ++face < faces + numFace ); + + return G4VisExtent( -answers[0], answers[1], + -answers[2], answers[3], + -answers[4], answers[5] ); +} + + +// +// GetEntityType +// +G4GeometryType G4VCSGfaceted::GetEntityType() const +{ + return G4String("G4CSGfaceted"); +} + + +// +// Stream object contents to an output stream +// +G4std::ostream& G4VCSGfaceted::StreamInfo( G4std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4VCSGfaceted\n" + << " Parameters: \n" + << " number of faces: " << numFace << "\n" + << "-----------------------------------------------------------\n"; + + return os; } diff --git a/source/geometry/verification/History b/source/geometry/verification/History index 96afaf5762..4d87ecb0df 100644 --- a/source/geometry/verification/History +++ b/source/geometry/verification/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2002/04/19 08:22:38 gcosmo Exp $ +$Id: History,v 1.8 2002/07/30 07:26:33 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jul 30th, 2002 G.Cosmo (geomver-V04-01-00) +- G4GeomTestVolume.cc: fixed recursive call to G4GeomTestVolume passing also + 'tolerance' as argument in the recursive test algorithm. + Apr 19th, 2002 G.Cosmo (geomver-V04-00-00) - Moved inline constructors and destructors to no inline. Affected files: G4GeomTestStreamLogger[.hh.cc]. diff --git a/source/geometry/verification/include/G4GeomTestErrorList.hh b/source/geometry/verification/include/G4GeomTestErrorList.hh index 6dd6f7ec08..846a975c00 100644 --- a/source/geometry/verification/include/G4GeomTestErrorList.hh +++ b/source/geometry/verification/include/G4GeomTestErrorList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestErrorList.hh,v 1.1 2001/10/17 12:59:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestLogger.hh b/source/geometry/verification/include/G4GeomTestLogger.hh index 1ba1bed8e5..5430f63f7b 100644 --- a/source/geometry/verification/include/G4GeomTestLogger.hh +++ b/source/geometry/verification/include/G4GeomTestLogger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestLogger.hh,v 1.2 2001/10/22 13:04:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestOverlapList.hh b/source/geometry/verification/include/G4GeomTestOverlapList.hh index d6c857a849..8ee849028b 100644 --- a/source/geometry/verification/include/G4GeomTestOverlapList.hh +++ b/source/geometry/verification/include/G4GeomTestOverlapList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOverlapList.hh,v 1.1 2001/10/17 12:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestOvershootList.hh b/source/geometry/verification/include/G4GeomTestOvershootList.hh index ed921482f1..56117e4610 100644 --- a/source/geometry/verification/include/G4GeomTestOvershootList.hh +++ b/source/geometry/verification/include/G4GeomTestOvershootList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOvershootList.hh,v 1.1 2001/10/17 12:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestPoint.hh b/source/geometry/verification/include/G4GeomTestPoint.hh index 95a7685669..950e05a1ab 100644 --- a/source/geometry/verification/include/G4GeomTestPoint.hh +++ b/source/geometry/verification/include/G4GeomTestPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestPoint.hh,v 1.1 2001/10/17 12:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestSegment.hh b/source/geometry/verification/include/G4GeomTestSegment.hh index 7a2537e2c1..5a6308c630 100644 --- a/source/geometry/verification/include/G4GeomTestSegment.hh +++ b/source/geometry/verification/include/G4GeomTestSegment.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestSegment.hh,v 1.1 2001/10/17 12:59:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestStreamLogger.hh b/source/geometry/verification/include/G4GeomTestStreamLogger.hh index c462723b70..41a50a04ca 100644 --- a/source/geometry/verification/include/G4GeomTestStreamLogger.hh +++ b/source/geometry/verification/include/G4GeomTestStreamLogger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestStreamLogger.hh,v 1.3 2002/04/19 08:23:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestVolPoint.hh b/source/geometry/verification/include/G4GeomTestVolPoint.hh index 68c0886242..e4bc211038 100644 --- a/source/geometry/verification/include/G4GeomTestVolPoint.hh +++ b/source/geometry/verification/include/G4GeomTestVolPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolPoint.hh,v 1.1 2001/10/17 12:59:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/include/G4GeomTestVolume.hh b/source/geometry/verification/include/G4GeomTestVolume.hh index c280c230d7..a9823df847 100644 --- a/source/geometry/verification/include/G4GeomTestVolume.hh +++ b/source/geometry/verification/include/G4GeomTestVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolume.hh,v 1.2 2001/10/22 10:41:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/verification/src/G4GeomTestErrorList.cc b/source/geometry/verification/src/G4GeomTestErrorList.cc index 741913e6e6..b4bf617e27 100644 --- a/source/geometry/verification/src/G4GeomTestErrorList.cc +++ b/source/geometry/verification/src/G4GeomTestErrorList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestErrorList.cc,v 1.1 2001/10/17 12:59:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestOverlapList.cc b/source/geometry/verification/src/G4GeomTestOverlapList.cc index 2a4b809d39..b85d12b304 100644 --- a/source/geometry/verification/src/G4GeomTestOverlapList.cc +++ b/source/geometry/verification/src/G4GeomTestOverlapList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOverlapList.cc,v 1.1 2001/10/17 12:59:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestOvershootList.cc b/source/geometry/verification/src/G4GeomTestOvershootList.cc index 49656c2bf4..51b550bca7 100644 --- a/source/geometry/verification/src/G4GeomTestOvershootList.cc +++ b/source/geometry/verification/src/G4GeomTestOvershootList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOvershootList.cc,v 1.1 2001/10/17 12:59:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestPoint.cc b/source/geometry/verification/src/G4GeomTestPoint.cc index fd34241ece..31c9dc4535 100644 --- a/source/geometry/verification/src/G4GeomTestPoint.cc +++ b/source/geometry/verification/src/G4GeomTestPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestPoint.cc,v 1.1 2001/10/17 12:59:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestSegment.cc b/source/geometry/verification/src/G4GeomTestSegment.cc index a6e2df023e..ebb0a8af84 100644 --- a/source/geometry/verification/src/G4GeomTestSegment.cc +++ b/source/geometry/verification/src/G4GeomTestSegment.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestSegment.cc,v 1.1 2001/10/17 12:59:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestStreamLogger.cc b/source/geometry/verification/src/G4GeomTestStreamLogger.cc index 7c9c6c5391..88ff4d7499 100644 --- a/source/geometry/verification/src/G4GeomTestStreamLogger.cc +++ b/source/geometry/verification/src/G4GeomTestStreamLogger.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestStreamLogger.cc,v 1.5 2002/04/19 08:23:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestVolPoint.cc b/source/geometry/verification/src/G4GeomTestVolPoint.cc index a7284cc501..e2a709819b 100644 --- a/source/geometry/verification/src/G4GeomTestVolPoint.cc +++ b/source/geometry/verification/src/G4GeomTestVolPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolPoint.cc,v 1.1 2001/10/17 13:00:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/verification/src/G4GeomTestVolume.cc b/source/geometry/verification/src/G4GeomTestVolume.cc index ccd51a9633..1a45d2f4eb 100644 --- a/source/geometry/verification/src/G4GeomTestVolume.cc +++ b/source/geometry/verification/src/G4GeomTestVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestVolume.cc,v 1.4 2001/10/24 22:09:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeomTestVolume.cc,v 1.5 2002/07/30 07:26:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -163,7 +163,7 @@ void G4GeomTestVolume::TestRecursiveCartGrid( G4int nx, G4int ny, G4int nz ) // // Recurse // - G4GeomTestVolume vTest( daughter, logger ); + G4GeomTestVolume vTest( daughter, logger, tolerance ); vTest.TestRecursiveCartGrid(nx,ny,nz); } } diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History index 666f050684..155328aeb3 100644 --- a/source/geometry/volumes/History +++ b/source/geometry/volumes/History @@ -1,4 +1,4 @@ -$Id: History,v 1.78 2002/06/13 08:57:37 japost Exp $ +$Id: History,v 1.92 2002/12/02 11:45:13 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,70 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Nov 29th, 2002 J. Apostolakis - geomvol-V04-01-08 +- G4PropagatorInField: Use safety in G4PropagatorInField. + (Adds to the state of this class). + +Nov 29th, 2002 S. Sadilov - geomvol-V04-01-07a +- Minor corrections (cout/G4cout, endl/G4endl) to files + G4IdentityTrajectoryFilter.cc G4VCurvedTrajectoryFilter.cc + +Nov 27th, 2002 G. Cosmo - geomvol-V04-01-07 +- G4BlockingList.cc: fixed initialisation of fBlockTagNo to 1. + Fixes warnings reported by Valgrind to G4BlockingList, G4VoxelNavigation + and G4ParameterisedNavigation. + +Nov 19th, 2002 J. Generowicz - geomvol-V04-01-06 +- Created G4IdentityTrajectoryFilter, making G4VCurvedTrajectoryFliter + truly abstract. + +Nov 8th, 2002 J. Generowicz +- Introduced G4VCurvedTrajectoryFilter, and gave PIF means of + manipulating and communicating with it. + +Oct 29th, 2002 J. Apostolakis - geomvol-V04-01-05 +- G4PropagatorInField + Re-introduced memory of Charge Mass and Momentum into PropagatorInField, + in order for it to message the correct ChordFinder at each step with this + information. It now does this task. + +Aug 6th, 2002 G. Cosmo - geomvol-V04-01-04 +- Formatting cleanup in source implementation files. + +Jul 29th, 2002 G. Cosmo - geomvol-V04-01-03 +- G4PropagatorInField[.hh.icc.cc]: + Restored call to GetChordFinder()->SetChargeMomentumMass() in method + SetChargeMomentumMass(), as was originally in release 4.1. + All modifications introduced in tag "geomvol-V04-00-11" have now been removed. + +Jul 29th, 2002 G. Cosmo - geomvol-V04-01-02 +- G4PropagatorInField.cc: (J.Apostolakis) + o Restored ComputeStep() as it was before tag "geomvol-V04-00-11", by + removing call to GetChordFinder()->SetChargeMomentumMass(). + This call was responsible for failure of unit tests, where no field strength + was observed in some cases. + o Set 'fNoZeroStep' to zero if (fNoZeroStep > fAbandonThreshold_NoZeroSteps) + at the end of ComputeStep(). Fixes problem report from P.M.DeFreitas + occurring in Mokka (Tesla), when reading primaries from their Pythia files. +- G4PropagatorInField[.hh.cc]: + o Removed not-implemented constructor taking G4Navigator* as argument. + o Get rid of static const data for default epsilonStep size. + o Initialise all data members in constructor ! + o Code cleanup. + +Jul 24th, 2002 G. Cosmo - geomvol-V04-01-01 +- Removed static initialisations of data of G4FieldManager. + Coworks with tag "field-V04-01-01". + +Jul 23rd, 2002 G. Cosmo - geomvol-V04-01-00 +- Some code cleanup and cosmetics... + +Jun 18th, 2002 J. Apostolakis - geomvol-V04-00-11 +- G4PropagatorInField.cc + o Fix for messaging incorrect ChordFinder with Mass, Charge, Momentum. + ( Problem seen for multiple FieldManagers - reported by Grahame Blair ) + Jun 13th, 2002 J. Apostolakis - geomvol-V04-00-10 - G4Navigator.cc o Fix for navigation problem (dereference null volume pointer) in exampleN05 diff --git a/source/geometry/volumes/include/G4AuxiliaryNavServices.hh b/source/geometry/volumes/include/G4AuxiliaryNavServices.hh index e6259a75dd..7e0c9d350a 100644 --- a/source/geometry/volumes/include/G4AuxiliaryNavServices.hh +++ b/source/geometry/volumes/include/G4AuxiliaryNavServices.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AuxiliaryNavServices.hh,v 1.4 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AuxiliaryNavServices.hh,v 1.5 2002/07/23 08:50:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4NormalNavigation @@ -34,6 +34,7 @@ // History: // - Created: Paul Kent, Aug 96 +// ******************************************************************** #ifndef G4AuxiliaryNavServices_hh #define G4AuxiliaryNavServices_hh @@ -50,17 +51,18 @@ class G4AuxiliaryNavServices public: // with description static G4bool CheckPointOnSurface( const G4VSolid* sampleSolid, - const G4ThreeVector& localPoint, - const G4ThreeVector* globalDirection, - const G4AffineTransform& sampleTransform, - const G4bool locatedOnEdge); + const G4ThreeVector& localPoint, + const G4ThreeVector* globalDirection, + const G4AffineTransform& sampleTransform, + const G4bool locatedOnEdge); // - // Is the track (Point, direction) inside the solid sampleSolid ? - // Returns true if we are going to enter the volume, which is the case if: - // - The point is inside - // - The point is on the surface and the direction points inside + // Is the track (point, direction) inside the solid 'sampleSolid' ? + // Returns true if we are going to enter the volume, + // which is the case if: + // - the point is inside + // - the point is on the surface and the direction points inside // or along it. - // Else returns false + // Else returns false. private: diff --git a/source/geometry/volumes/include/G4AuxiliaryNavServices.icc b/source/geometry/volumes/include/G4AuxiliaryNavServices.icc index 9b2029863b..88d308652e 100644 --- a/source/geometry/volumes/include/G4AuxiliaryNavServices.icc +++ b/source/geometry/volumes/include/G4AuxiliaryNavServices.icc @@ -21,61 +21,65 @@ // ******************************************************************** // // -// $Id: G4AuxiliaryNavServices.icc,v 1.5 2002/01/08 14:20:31 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AuxiliaryNavServices.icc,v 1.6 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4AuxiliaryNavServices Inline implementation // +// ******************************************************************** -inline G4bool G4AuxiliaryNavServices::CheckPointOnSurface( const G4VSolid* sampleSolid, - const G4ThreeVector& localPoint, - const G4ThreeVector* globalDirection, - const G4AffineTransform& sampleTransform, - const G4bool locatedOnEdge) +inline G4bool +G4AuxiliaryNavServices:: +CheckPointOnSurface( const G4VSolid* sampleSolid, + const G4ThreeVector& localPoint, + const G4ThreeVector* globalDirection, + const G4AffineTransform& sampleTransform, + const G4bool locatedOnEdge) { G4ThreeVector localDirection, sampleNormal; - G4bool enter=false; + G4bool enter = false; - EInside insideSolid=sampleSolid->Inside(localPoint); - if (insideSolid!=kOutside) + EInside insideSolid = sampleSolid->Inside(localPoint); + if ( insideSolid!=kOutside ) { - G4bool checkDirection= locatedOnEdge && (globalDirection!=0); - if( (insideSolid==kSurface) && checkDirection) - { - // We are probably located on an edge. - localDirection= sampleTransform.TransformAxis(*globalDirection); + G4bool checkDirection= locatedOnEdge && (globalDirection!=0); + if( (insideSolid==kSurface) && checkDirection) + { + // We are probably located on an edge. + // + localDirection= sampleTransform.TransformAxis(*globalDirection); - // Check whether we enter the volume - // - sampleNormal= sampleSolid->SurfaceNormal(localPoint); - if ( sampleNormal.dot(localDirection) <= 0 ) + // Check whether we enter the volume + // + sampleNormal = sampleSolid->SurfaceNormal(localPoint); + if ( sampleNormal.dot(localDirection) <= 0 ) + { + if( sampleNormal.dot(localDirection) == 0 ) { - if( sampleNormal.dot(localDirection) == 0 ) - { - // We can't decide yet, let's make sure we're entering the solid - // - // If by a confusion we entered the next solid we find out now that - // whether to leave or to enter. - // This happens when we're no the surface or edge shared by two solids - // - G4double distanceToIn = sampleSolid->DistanceToIn( localPoint, localDirection ); - if( distanceToIn != kInfinity ) - { - enter = true; - } - } - else - { - enter= true; - } + // We can't decide yet, let's make sure we're entering the solid. + // If by a confusion we entered the next solid we find out now + // whether to leave or to enter. + // This happens when we're on the surface or edge shared by two + // solids + // + G4double distanceToIn = + sampleSolid->DistanceToIn( localPoint, localDirection ); + if( distanceToIn != kInfinity ) + { + enter = true; + } } - } - else - { - enter= true; - } + else + { + enter = true; + } + } + } + else + { + enter = true; + } } return enter; } - diff --git a/source/geometry/volumes/include/G4BlockingList.hh b/source/geometry/volumes/include/G4BlockingList.hh index 5f0c41feaa..3529395f7b 100644 --- a/source/geometry/volumes/include/G4BlockingList.hh +++ b/source/geometry/volumes/include/G4BlockingList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BlockingList.hh,v 1.6 2001/07/11 10:00:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BlockingList.hh,v 1.7 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4BlockingList // @@ -41,6 +41,7 @@ // History: // // 24.7.96 P.Kent Separated from G4Navigator +// ******************************************************************** #ifndef G4BLOCKINGLIST_HH #define G4BLOCKINGLIST_HH @@ -49,7 +50,7 @@ #include "g4std/vector" const G4int kBlockingListMaxDefault = 500; // Block up to 511 daughters - // initially + // initially const G4int kBlockingListStride = 128; const G4int kBlockTagNoMax = 2147483647; // 2^31-1 maximum tag no may reach @@ -90,7 +91,7 @@ class G4BlockingList private: - G4int fBlockTagNo, fStride; + G4int fBlockTagNo, fStride; // Current blocked volume tag number. G4std::vector fBlockingList; diff --git a/source/geometry/volumes/include/G4BlockingList.icc b/source/geometry/volumes/include/G4BlockingList.icc index fdbadaef9a..ceb8720613 100644 --- a/source/geometry/volumes/include/G4BlockingList.icc +++ b/source/geometry/volumes/include/G4BlockingList.icc @@ -21,51 +21,51 @@ // ******************************************************************** // // -// $Id: G4BlockingList.icc,v 1.6 2002/04/19 08:21:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BlockingList.icc,v 1.7 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4BlockingList Inlined Implementation // +// ******************************************************************** inline G4int G4BlockingList::Length() const { - return fBlockingList.size(); + return fBlockingList.size(); } inline void G4BlockingList::BlockVolume(const G4int v) { - fBlockingList[v]=fBlockTagNo; + fBlockingList[v] = fBlockTagNo; } inline G4bool G4BlockingList::IsBlocked(const G4int v) const { - return (fBlockingList[v]==fBlockTagNo) ? true:false; + return ( fBlockingList[v]==fBlockTagNo ) ? true : false; } - inline void G4BlockingList::Reset() { - if (fBlockTagNo!=kBlockTagNoMax) - { - fBlockTagNo+=1; - } - else - { - FullyReset(); - } -} + if ( fBlockTagNo!=kBlockTagNoMax ) + { + fBlockTagNo += 1; + } + else + { + FullyReset(); + } +} inline void G4BlockingList::Enlarge(const G4int nv) { - G4int len=fBlockingList.size(); - if (lenGetLogicalVolume()->GetSolid(); } -inline const G4ThreeVector& G4GRSVolume::GetTranslation(G4int depth) const +inline +const G4ThreeVector& G4GRSVolume::GetTranslation( G4int depth ) const { - if( depth != 0 ) { - G4Exception("G4GRSVolume::GetTranslation: has no meaning for depth!=0"); + if( depth != 0 ) + { + G4Exception("G4GRSVolume::GetTranslation: has no meaning for depth!=0"); } return ftlate; } -inline const G4RotationMatrix* G4GRSVolume::GetRotation(G4int depth) const +inline +const G4RotationMatrix* G4GRSVolume::GetRotation( G4int depth ) const { - if( depth != 0 ) { - G4Exception("G4GRSVolume::GetRotation: has no meaning for depth!=0"); + if( depth != 0 ) + { + G4Exception("G4GRSVolume::GetRotation: has no meaning for depth!=0"); } return frot; } diff --git a/source/geometry/volumes/include/G4GRSVolumeHandle.hh b/source/geometry/volumes/include/G4GRSVolumeHandle.hh index e5f3b9a3cc..bcfffb31c8 100644 --- a/source/geometry/volumes/include/G4GRSVolumeHandle.hh +++ b/source/geometry/volumes/include/G4GRSVolumeHandle.hh @@ -21,25 +21,24 @@ // ******************************************************************** // // -// $Id: G4GRSVolumeHandle.hh,v 1.3 2001/11/06 17:08:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GRSVolumeHandle.hh,v 1.4 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// Class G4TouchableHandle +// Class G4GRSVolumeHandle // // Class description: // -// Type providing reference counting mechanism for any kind of touchable -// objects. +// Type providing reference counting mechanism for volume touchables. // The basic rule for the use of this type is that this handle must always // be exchanged by reference never dinamically allocated (i.e. never // instantiated using 'new'). // // For more details see G4ReferenceCountedHandle. -// Author: Radovan Chytracek, CERN (Radovan.Chytracek@cern.ch) -// Version: 1.0 -// Date: March 2001 -// ---------------------------------------------------------------------- +// Author: Radovan Chytracek (Radovan.Chytracek@cern.ch), March 2001 +// +// ******************************************************************** + #ifndef _G4GRSVOLUMEHANDLE_H_ #define _G4GRSVOLUMEHANDLE_H_ 1 diff --git a/source/geometry/volumes/include/G4GeometryMessenger.hh b/source/geometry/volumes/include/G4GeometryMessenger.hh index 886e731b80..35f42fef05 100644 --- a/source/geometry/volumes/include/G4GeometryMessenger.hh +++ b/source/geometry/volumes/include/G4GeometryMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryMessenger.hh,v 1.3 2002/04/03 11:51:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryMessenger.hh,v 1.4 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -35,6 +35,7 @@ // and controlling the detector geometry and navigation. // Author: G.Cosmo, CERN. +// -------------------------------------------------------------------- #ifndef G4GeometryMessenger_hh #define G4GeometryMessenger_hh @@ -64,7 +65,7 @@ class G4GeometryMessenger : public G4UImessenger void SetNewValue( G4UIcommand* command, G4String newValues ); G4String GetCurrentValue( G4UIcommand* command ); - protected: + private: void Init(); void ResetNavigator(); @@ -79,15 +80,11 @@ class G4GeometryMessenger : public G4UImessenger *cylCmd, *runCmd, *resCmd; G4UIcmdWithADoubleAndUnit *tolCmd; - private: - G4bool geometryOpened; G4ThreeVector x, p; G4bool newtol; G4double tol; - private: - G4TransportationManager* tmanager; G4GeomTestStreamLogger* tlogger; G4GeomTestVolume* tvolume; diff --git a/source/geometry/volumes/include/G4IdentityTrajectoryFilter.hh b/source/geometry/volumes/include/G4IdentityTrajectoryFilter.hh new file mode 100644 index 0000000000..aafdff7c2c --- /dev/null +++ b/source/geometry/volumes/include/G4IdentityTrajectoryFilter.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: G4IdentityTrajectoryFilter.hh,v 1.1 2002/11/19 15:23:24 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// class GIdentityTrajectoryFilter +// +// Class description: +// +// Implements a trajectory point filter which accepts all points submitted to it. +// +// IMPORTANT: The base class heap allocates vectors of auxiliary +// points, which it does not delete. The vectors must find their way +// to a subclass of G4VTrajectoryPoint, which must take responsibility +// for deleting them. + +// History +// - Modified: +// - First version: Nov 19, 2002 Jacek Generowicz + +#ifndef G4IdentityTrajectoryFilter_hh +#define G4IdentityTrajectoryFilter_hh + +//#include "g4std/vector" +#include "G4VCurvedTrajectoryFilter.hh" + +class G4IdentityTrajectoryFilter : public G4VCurvedTrajectoryFilter { +public: + + G4IdentityTrajectoryFilter(){}; + virtual ~G4IdentityTrajectoryFilter(){}; + + // Probably do not want these objects to be copied, so make the copy + // constructor prvate (jacek 30/10/2002) + + // Submit intermediate points for the filter to consider keeping or + // rejecting. + void TakeIntermediatePoint( G4ThreeVector newPoint ); +}; + +#endif /* End of ifndef G4IdentityTrajectoryFilter_hh */ diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.hh b/source/geometry/volumes/include/G4LogicalBorderSurface.hh index 5308857ead..2484c35edf 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.hh +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.hh @@ -21,12 +21,10 @@ // ******************************************************************** // // -// $Id: G4LogicalBorderSurface.hh,v 1.7 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LogicalBorderSurface.hh,v 1.8 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -//////////////////////////////////////////////////////////////////////// // class G4LogicalBorderSurface -//////////////////////////////////////////////////////////////////////// // // Class description: // @@ -36,100 +34,73 @@ // History: // ------- // Created: 1997-06-17 -// Author: John Apostolakis -// mail: John.Apostolakis@cern.ch -// Modified: 1997-06-16 John Apostolakis +// Author: John Apostolakis (John.Apostolakis@cern.ch) // -//////////////////////////////////////////////////////////////////////// +// ******************************************************************** #ifndef G4LogicalBorderSurface_h #define G4LogicalBorderSurface_h 1 -///////////// -// Includes -///////////// - #include "G4LogicalSurface.hh" #include "G4VPhysicalVolume.hh" #include "g4std/vector" class G4Event; - class G4VPhysicalVolume; -///////////////////// -// Class Definition -///////////////////// - -class G4LogicalBorderSurface: public G4LogicalSurface +class G4LogicalBorderSurface : public G4LogicalSurface { - //////////////////////////////// - // Constructors and Destructor - //////////////////////////////// - public: - G4LogicalBorderSurface(const G4String& name, - G4VPhysicalVolume* vol1, - G4VPhysicalVolume* vol2, - G4OpticalSurface* opticsSurface); + public: // with description - ~G4LogicalBorderSurface(); + G4LogicalBorderSurface( const G4String& name, + G4VPhysicalVolume* vol1, + G4VPhysicalVolume* vol2, + G4OpticalSurface* opticsSurface ); + ~G4LogicalBorderSurface(); + // Constructor and destructor - //////////// - // Methods - //////////// + static G4LogicalBorderSurface* GetSurface( const G4VPhysicalVolume* vol1, + const G4VPhysicalVolume* vol2 ); + inline void SetPhysicalVolumes( G4VPhysicalVolume* vol1, + G4VPhysicalVolume* vol2 ); + inline const G4VPhysicalVolume* GetVolume1() const; + inline const G4VPhysicalVolume* GetVolume2() const; + // Generic accessors. - public: + inline void SetVolume1( G4VPhysicalVolume* vol1 ); + inline void SetVolume2( G4VPhysicalVolume* vol2 ); + // To use with care! - static G4LogicalBorderSurface* GetSurface(const G4VPhysicalVolume* vol1, - const G4VPhysicalVolume* vol2); + static const G4std::vector * GetSurfaceTable(); + static size_t GetNumberOfBorderSurfaces(); + static void DumpInfo(); + // To handle the table of surfaces. - inline void SetPhysicalVolumes(G4VPhysicalVolume* vol1, - G4VPhysicalVolume* vol2); - - inline const G4VPhysicalVolume* GetVolume1() const; - inline const G4VPhysicalVolume* GetVolume2() const; - - inline void SetVolume1(G4VPhysicalVolume* vol1); - inline void SetVolume2(G4VPhysicalVolume* vol2); - // These are potentially dangerous. - - static const G4std::vector *GetSurfaceTable(); - static size_t GetNumberOfBorderSurfaces(); - static void DumpInfo(); - // Methods dealing with the table of surfaces. - - ////////////// - // Operators - ////////////// - - G4int operator==(const G4LogicalBorderSurface &right) const; - G4int operator!=(const G4LogicalBorderSurface &right) const; + G4int operator==( const G4LogicalBorderSurface &right ) const; + G4int operator!=( const G4LogicalBorderSurface &right ) const; + // Operators. private: - G4LogicalBorderSurface(const G4LogicalBorderSurface &right); - const G4LogicalBorderSurface & operator=(const G4LogicalBorderSurface &right); - - // ------------------ - // Basic data members ( To define a 'logical' surface) - // ------------------ + G4LogicalBorderSurface(const G4LogicalBorderSurface &right); + const G4LogicalBorderSurface& operator=(const G4LogicalBorderSurface &right); private: - G4VPhysicalVolume* Volume1; // Physical Volume pointer on side 1 - G4VPhysicalVolume* Volume2; // Physical Volume pointer on side 2 + G4VPhysicalVolume* Volume1; // Physical Volume pointer on side 1 + G4VPhysicalVolume* Volume2; // Physical Volume pointer on side 2 - static G4std::vector theBorderSurfaceTable; - // The static Table of Surfaces + static G4std::vector theBorderSurfaceTable; + // The static Table of Surfaces. }; typedef G4std::vector G4LogicalBorderSurfaceTable; -//////////////////// +// ******************************************************************** // Inline methods -//////////////////// +// ******************************************************************** #include "G4LogicalBorderSurface.icc" diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.icc b/source/geometry/volumes/include/G4LogicalBorderSurface.icc index 5fb02c1b9d..5a23c3606f 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.icc +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.icc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: G4LogicalBorderSurface.icc,v 1.4 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LogicalBorderSurface.icc,v 1.5 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4LogicalBorderSurface inline implementation +// +// ******************************************************************** inline -void G4LogicalBorderSurface::SetPhysicalVolumes(G4VPhysicalVolume* vol1, - G4VPhysicalVolume* vol2) +void G4LogicalBorderSurface::SetPhysicalVolumes( G4VPhysicalVolume* vol1, + G4VPhysicalVolume* vol2 ) { Volume1 = vol1; Volume2 = vol2; } inline -const G4VPhysicalVolume* -G4LogicalBorderSurface::GetVolume1() const +const G4VPhysicalVolume* G4LogicalBorderSurface::GetVolume1() const { return Volume1; } inline -const G4VPhysicalVolume* -G4LogicalBorderSurface::GetVolume2() const +const G4VPhysicalVolume* G4LogicalBorderSurface::GetVolume2() const { return Volume2; } diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.hh b/source/geometry/volumes/include/G4LogicalSkinSurface.hh index a32d88988d..ee7ee557a0 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.hh +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.hh @@ -21,12 +21,10 @@ // ******************************************************************** // // -// $Id: G4LogicalSkinSurface.hh,v 1.7 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LogicalSkinSurface.hh,v 1.8 2002/07/23 08:50:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -//////////////////////////////////////////////////////////////////////// // class G4LogicalSkinSurface -//////////////////////////////////////////////////////////////////////// // // Class description: // @@ -36,89 +34,63 @@ // History: // ------- // Created: 1997-06-16 -// Author: John Apostolakis -// mail: John.Apostolakis@cern.ch -// Modified: 1997-06-16 John Apostolakis +// Author: John Apostolakis (John.Apostolakis@cern.ch) // -//////////////////////////////////////////////////////////////////////// +// ******************************************************************** #ifndef G4LogicalSkinSurface_h #define G4LogicalSkinSurface_h 1 -///////////// -// Includes -///////////// - #include "G4LogicalSurface.hh" #include "G4LogicalVolume.hh" #include "g4std/vector" -///////////////////// -// Class Definition -///////////////////// - class G4LogicalSkinSurface : public G4LogicalSurface { - public: + public: // with description - //////////////////////////////// - // Constructors and Destructor - //////////////////////////////// + G4LogicalSkinSurface( const G4String& name, + G4LogicalVolume* vol, + G4OpticalSurface* opticalSurface ); + ~G4LogicalSkinSurface(); + // Constructor and destructor. - // Is the name meaningful for the logical skin surface ? + static G4LogicalSkinSurface* GetSurface(const G4LogicalVolume* vol); + inline const G4LogicalVolume* GetLogicalVolume() const; + inline void SetLogicalVolume(G4LogicalVolume* vol); + // Accessors. - G4LogicalSkinSurface(const G4String& name, G4LogicalVolume* vol, - G4OpticalSurface* opticalSurface); + static size_t GetNumberOfSkinSurfaces(); + static void DumpInfo(); // const + // To handle with the table of surfaces. - ~G4LogicalSkinSurface(); + G4int operator==(const G4LogicalSkinSurface &right) const; + G4int operator!=(const G4LogicalSkinSurface &right) const; + // Operators. - //////////// - // Methods - //////////// - public: - - static G4LogicalSkinSurface* GetSurface(const G4LogicalVolume* vol); + private: - inline const G4LogicalVolume* GetLogicalVolume() const; - inline void SetLogicalVolume(G4LogicalVolume* vol); + G4LogicalSkinSurface(const G4LogicalSkinSurface &right); + const G4LogicalSkinSurface& operator=(const G4LogicalSkinSurface &right); + // Assignment and copying must be denied. - static size_t GetNumberOfSkinSurfaces(); - static void DumpInfo(); // const - // Methods dealing with the table of surfaces. + private: - ////////////// - // Operators - ////////////// + G4LogicalVolume* LogVolume; + // Logical Volume pointer on side 1. - G4int operator==(const G4LogicalSkinSurface &right) const; - G4int operator!=(const G4LogicalSkinSurface &right) const; - -private: - - G4LogicalSkinSurface(const G4LogicalSkinSurface &right); - const G4LogicalSkinSurface & operator=(const G4LogicalSkinSurface &right); - // Assignment and copying must be denied. - - // ------------------ - // Basic data members ( To define a 'logical' surface) - // ------------------ - -private: - G4LogicalVolume* LogVolume; - // Logical Volume pointer on side 1 - - static G4std::vector theSurfaceTable; - // The static Table of Surfaces + static G4std::vector theSurfaceTable; + // The static Table of Surfaces. }; typedef G4std::vector G4LogicalSkinSurfaceTable; -//////////////////// +// ******************************************************************** // Inline methods -//////////////////// +// ******************************************************************** #include "G4LogicalSkinSurface.icc" diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.icc b/source/geometry/volumes/include/G4LogicalSkinSurface.icc index b8c6c6e9f7..60ff2383f0 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.icc +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.icc @@ -21,15 +21,16 @@ // ******************************************************************** // // -// $Id: G4LogicalSkinSurface.icc,v 1.4 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LogicalSkinSurface.icc,v 1.5 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4LogicalSkinSurface inline implementation +// +// ******************************************************************** inline -const G4LogicalVolume* -G4LogicalSkinSurface::GetLogicalVolume() const +const G4LogicalVolume* G4LogicalSkinSurface::GetLogicalVolume() const { return LogVolume; } diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh index fe5d8d11d3..65ea8ceb04 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.hh +++ b/source/geometry/volumes/include/G4NavigationHistory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.hh,v 1.9 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationHistory.hh,v 1.10 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4NavigationHistory // @@ -36,6 +36,7 @@ // // 25.07.96 P.Kent Initial version. Services derived from // requirements of G4Navigator. +// ******************************************************************** #ifndef G4NAVIGATIONHISTORY_HH #define G4NAVIGATIONHISTORY_HH @@ -117,8 +118,8 @@ class G4NavigationHistory // Returns specified physical volume pointer. inline void NewLevel(G4VPhysicalVolume *pNewMother, - EVolume vType=kNormal, - G4int nReplica=-1); + EVolume vType=kNormal, + G4int nReplica=-1); // Changes navigation level to that of the new mother. inline void BackLevel(); diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc index 43b95521af..ece005a295 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.icc +++ b/source/geometry/volumes/include/G4NavigationHistory.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.icc,v 1.6 2002/04/19 08:22:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationHistory.icc,v 1.7 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4NavigationHistory Inline implementation // +// ******************************************************************** inline G4NavigationHistory& @@ -35,14 +36,15 @@ G4NavigationHistory::operator=(const G4NavigationHistory &h) if (&h == this) return *this; // fNavHistory=h.fNavHistory; // This works, but is very slow. - if( this->GetMaxDepth() < h.fStackDepth ){ - fNavHistory.resize( h.fStackDepth ); - } - register G4int ilev= h.fStackDepth; - for ( ; ilev>=0; ilev--) { - fNavHistory[ilev] = h.fNavHistory[ilev]; - } + if( this->GetMaxDepth() < h.fStackDepth ) + { + fNavHistory.resize( h.fStackDepth ); + } + for ( register G4int ilev=h.fStackDepth; ilev>=0; ilev-- ) + { + fNavHistory[ilev] = h.fNavHistory[ilev]; + } fStackDepth=h.fStackDepth; return *this; @@ -51,150 +53,153 @@ G4NavigationHistory::operator=(const G4NavigationHistory &h) inline void G4NavigationHistory::Reset() { - fStackDepth=0; + fStackDepth=0; } inline void G4NavigationHistory::Clear() { - G4AffineTransform dummyTransform(G4ThreeVector(0.)); + G4AffineTransform dummyTransform(G4ThreeVector(0.)); - G4NavigationLevel tmpNavLevel; - tmpNavLevel=G4NavigationLevel(0, dummyTransform, kParameterised, -1) ; + G4NavigationLevel tmpNavLevel; + tmpNavLevel=G4NavigationLevel(0, dummyTransform, kParameterised, -1) ; - Reset(); - for (G4int ilev=fNavHistory.size()-1; ilev>=0; ilev--) - { - // fNavHistory(ilev)= 0; - fNavHistory[ilev]= tmpNavLevel; - } + Reset(); + for (register G4int ilev=fNavHistory.size()-1; ilev>=0; ilev--) + { + // fNavHistory(ilev)= 0; + fNavHistory[ilev]= tmpNavLevel; + } } inline void G4NavigationHistory::SetFirstEntry(G4VPhysicalVolume* pVol) { - G4ThreeVector translation(0.,0.,0.); + G4ThreeVector translation(0.,0.,0.); - // Protection needed in case pVol=null - // so that a touchable-history can signal OutOfWorld - // - if(pVol !=0) { - translation=pVol->GetTranslation(); - } - fNavHistory[0]= G4NavigationLevel( pVol, - G4AffineTransform(translation), - kNormal ); + // Protection needed in case pVol=null + // so that a touchable-history can signal OutOfWorld + // + if( pVol!=0 ) + { + translation=pVol->GetTranslation(); + } + fNavHistory[0] = + G4NavigationLevel( pVol, G4AffineTransform(translation), kNormal ); } inline const G4AffineTransform* G4NavigationHistory::GetPtrTopTransform() const { - return fNavHistory[fStackDepth].GetPtrTransform(); + return fNavHistory[fStackDepth].GetPtrTransform(); } inline const G4AffineTransform& G4NavigationHistory::GetTopTransform() const { - return fNavHistory[fStackDepth].GetTransform(); + return fNavHistory[fStackDepth].GetTransform(); } inline G4int G4NavigationHistory::GetTopReplicaNo() const { - return fNavHistory[fStackDepth].GetReplicaNo(); + return fNavHistory[fStackDepth].GetReplicaNo(); } inline EVolume G4NavigationHistory::GetTopVolumeType() const { - return fNavHistory[fStackDepth].GetVolumeType(); + return fNavHistory[fStackDepth].GetVolumeType(); } inline G4VPhysicalVolume* G4NavigationHistory::GetTopVolume() const { - return fNavHistory[fStackDepth].GetPhysicalVolume(); + return fNavHistory[fStackDepth].GetPhysicalVolume(); } inline G4int G4NavigationHistory::GetDepth() const { - return fStackDepth; + return fStackDepth; } inline const G4AffineTransform& G4NavigationHistory::GetTransform(G4int n) const { - return fNavHistory[n].GetTransform(); + return fNavHistory[n].GetTransform(); } inline G4int G4NavigationHistory::GetReplicaNo(G4int n) const { - return fNavHistory[n].GetReplicaNo(); + return fNavHistory[n].GetReplicaNo(); } inline EVolume G4NavigationHistory::GetVolumeType(G4int n) const { - return fNavHistory[n].GetVolumeType(); + return fNavHistory[n].GetVolumeType(); } inline G4VPhysicalVolume* G4NavigationHistory::GetVolume(G4int n) const { - return fNavHistory[n].GetPhysicalVolume(); + return fNavHistory[n].GetPhysicalVolume(); } inline G4int G4NavigationHistory::GetMaxDepth() const { - return fNavHistory.size(); + return fNavHistory.size(); } inline void G4NavigationHistory::BackLevel() { - assert(fStackDepth>0); + assert( fStackDepth>0 ); - // Tell the level that I am forgetting it - // delete fNavHistory(fStackDepth); - fStackDepth--; + // Tell the level that I am forgetting it + // delete fNavHistory(fStackDepth); + // + fStackDepth--; } inline void G4NavigationHistory::BackLevel(G4int n) { - assert(n<=fStackDepth); - fStackDepth-=n; + assert( n<=fStackDepth ); + fStackDepth-=n; } inline void G4NavigationHistory::EnlargeHistory() { - G4int len=fNavHistory.size(); - if (len==fStackDepth) - { // Note: Resize operation clears additional entries - G4int nlen=len+kHistoryStride; - fNavHistory.resize(nlen); - } + G4int len = fNavHistory.size(); + if ( len==fStackDepth ) + { + // Note: Resize operation clears additional entries + // + G4int nlen = len+kHistoryStride; + fNavHistory.resize(nlen); + } } inline -void G4NavigationHistory::NewLevel(G4VPhysicalVolume *pNewMother, - EVolume vType, - G4int nReplica) +void G4NavigationHistory::NewLevel( G4VPhysicalVolume *pNewMother, + EVolume vType, + G4int nReplica ) { - EnlargeHistory(); // Enlarge if required - fStackDepth++; - fNavHistory[fStackDepth] = - G4NavigationLevel(pNewMother, - fNavHistory[fStackDepth-1].GetTransform(), - G4AffineTransform(pNewMother->GetRotation(), - pNewMother->GetTranslation()), - vType, - nReplica); - // The constructor computes the new global->local transform + EnlargeHistory(); // Enlarge if required + fStackDepth++; + fNavHistory[fStackDepth] = + G4NavigationLevel( pNewMother, + fNavHistory[fStackDepth-1].GetTransform(), + G4AffineTransform(pNewMother->GetRotation(), + pNewMother->GetTranslation()), + vType, + nReplica ); + // The constructor computes the new global->local transform } diff --git a/source/geometry/volumes/include/G4NavigationLevel.hh b/source/geometry/volumes/include/G4NavigationLevel.hh index d93f16ebb2..be47f3c209 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.hh +++ b/source/geometry/volumes/include/G4NavigationLevel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationLevel.hh,v 1.13 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationLevel.hh,v 1.14 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4NavigationLevel // @@ -35,6 +35,7 @@ // // 30.09.97 J.Apostolakis Initial version. Services derived from // requirements of touchables & G4NavigatorHistory. +// ******************************************************************** #ifndef G4NAVIGATIONLEVEL_HH #define G4NAVIGATIONLEVEL_HH @@ -53,15 +54,15 @@ class G4NavigationLevel public: // with description G4NavigationLevel(G4VPhysicalVolume* newPtrPhysVol, - const G4AffineTransform& newT, - EVolume newVolTp, - G4int newRepNo= -1); + const G4AffineTransform& newT, + EVolume newVolTp, + G4int newRepNo= -1); G4NavigationLevel(G4VPhysicalVolume* newPtrPhysVol, - const G4AffineTransform& levelAbove, - const G4AffineTransform& relativeCurrent, - EVolume newVolTp, - G4int newRepNo= -1); + const G4AffineTransform& levelAbove, + const G4AffineTransform& relativeCurrent, + EVolume newVolTp, + G4int newRepNo= -1); // As the previous constructor, but instead of giving Transform, give // the AffineTransform to the level above and the current level's // Transform relative to that. @@ -82,8 +83,6 @@ class G4NavigationLevel public: // without description - // inline G4AffineTransform& GetTransform(); - inline const G4AffineTransform* GetPtrTransform() const; // To try to resolve the possible problem with returning a reference. @@ -96,15 +95,13 @@ class G4NavigationLevel inline void operator delete(void *ptr, void*); // Not accepted Sun/HP #endif // Pre-allocated 'new' and 'delete' for use with STL - // Do not (directly) use Allocator - F.Behner/J.Apostolakis + // Do not (directly) use Allocator private: G4NavigationLevelRep* fLevelRep; }; -// extern G4Allocator aNavigationLevelAllocator; - #include "G4NavigationLevel.icc" #endif diff --git a/source/geometry/volumes/include/G4NavigationLevel.icc b/source/geometry/volumes/include/G4NavigationLevel.icc index c5afef9ab1..8ad71296b8 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.icc +++ b/source/geometry/volumes/include/G4NavigationLevel.icc @@ -21,124 +21,113 @@ // ******************************************************************** // // -// $Id: G4NavigationLevel.icc,v 1.11 2001/07/11 10:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationLevel.icc,v 1.12 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // 30.09.97 J.Apostolakis Initial version. // +// ******************************************************************** + +extern G4Allocator aNavigationLevelAllocator; inline -G4NavigationLevel::G4NavigationLevel(G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& afTransform, - EVolume volTp, - G4int repNo) +G4NavigationLevel::G4NavigationLevel( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& afTransform, + EVolume volTp, + G4int repNo ) { - fLevelRep=new G4NavigationLevelRep( pPhysVol, - afTransform, - volTp, - repNo ); + fLevelRep = new G4NavigationLevelRep( pPhysVol, afTransform, volTp, repNo ); } inline -G4NavigationLevel::G4NavigationLevel(G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& levelAbove, - const G4AffineTransform& relativeCurrent, - EVolume volTp, - G4int repNo) +G4NavigationLevel::G4NavigationLevel( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& levelAbove, + const G4AffineTransform& relativeCurrent, + EVolume volTp, + G4int repNo ) { - fLevelRep=new G4NavigationLevelRep( pPhysVol, - levelAbove, - relativeCurrent, - volTp, - repNo ); + fLevelRep = new G4NavigationLevelRep( pPhysVol, + levelAbove, + relativeCurrent, + volTp, + repNo ); } inline G4NavigationLevel::G4NavigationLevel() { - fLevelRep= new G4NavigationLevelRep(); + fLevelRep = new G4NavigationLevelRep(); } inline G4NavigationLevel::G4NavigationLevel(const G4NavigationLevel& right) - : fLevelRep( right.fLevelRep ) + : fLevelRep( right.fLevelRep ) { - fLevelRep->AddAReference(); + fLevelRep->AddAReference(); } inline G4NavigationLevel::~G4NavigationLevel() { - if( fLevelRep->RemoveAReference() ) delete fLevelRep; + if( fLevelRep->RemoveAReference() ) + delete fLevelRep; } inline -G4NavigationLevel& -G4NavigationLevel::operator=(const G4NavigationLevel &right) +G4NavigationLevel& G4NavigationLevel::operator=(const G4NavigationLevel &right) { - if (&right == this) return *this; + if ( &right == this ) return *this; - // The order of these two lines is needed to handle "a=a" - right.fLevelRep->AddAReference(); - if( fLevelRep->RemoveAReference() ) delete fLevelRep; + // The order of these two statements is needed to handle "a=a" + // + right.fLevelRep->AddAReference(); + if( fLevelRep->RemoveAReference() ) + delete fLevelRep; - fLevelRep= right.fLevelRep; - return *this; + fLevelRep = right.fLevelRep; + return *this; } inline G4VPhysicalVolume* G4NavigationLevel::GetPhysicalVolume() const { - return fLevelRep->GetPhysicalVolume(); + return fLevelRep->GetPhysicalVolume(); } -#if 0 -inline -G4AffineTransform& G4NavigationLevel::GetTransform() -{ - return fLevelRep->GetTransform() ; -} -#endif - inline const G4AffineTransform& G4NavigationLevel::GetTransform() const { - return fLevelRep->GetTransform() ; + return fLevelRep->GetTransform() ; } inline const G4AffineTransform* G4NavigationLevel::GetPtrTransform() const { - return fLevelRep->GetTransformPtr() ; + return fLevelRep->GetTransformPtr() ; } inline -EVolume G4NavigationLevel::GetVolumeType() const +EVolume G4NavigationLevel::GetVolumeType() const { - return fLevelRep->GetVolumeType() ; + return fLevelRep->GetVolumeType() ; } inline -G4int G4NavigationLevel::GetReplicaNo() const +G4int G4NavigationLevel::GetReplicaNo() const { - return fLevelRep->GetReplicaNo() ; + return fLevelRep->GetReplicaNo() ; } -extern G4Allocator aNavigationLevelAllocator; - -// I believe that there is no provision in case this class is subclassed. +// There is no provision in case this class is subclassed. // If it is subclassed, this will fail and may not give errors! // inline void* G4NavigationLevel::operator new(size_t) { - // void *aNavigationLevel; - // aNavigationLevel= (void *) aNavigationLevelAllocator.MallocSingle(); - // return aNavigationLevel; return (void *) aNavigationLevelAllocator.MallocSingle(); } -// Added for use by STL. F.Behner (used for pre-allocation) +// Added for use by STL (used for pre-allocation). // inline void* G4NavigationLevel::operator new(size_t,void *a) @@ -152,12 +141,11 @@ void G4NavigationLevel::operator delete(void *aLevel) aNavigationLevelAllocator.FreeSingle((G4NavigationLevel *) aLevel); } -// Added for use by STL. J. Apostolakis (used for free-ing pre-allocated?) - +// Added for use by STL (used for free-ing pre-allocated?). +// #ifndef G4NOT_ISO_DELETES inline void G4NavigationLevel::operator delete(void *ptr, void *p) { - ; } #endif diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.hh b/source/geometry/volumes/include/G4NavigationLevelRep.hh index e0e8ab6d5c..38fa5e8cf1 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.hh +++ b/source/geometry/volumes/include/G4NavigationLevelRep.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationLevelRep.hh,v 1.6 2001/07/11 10:00:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationLevelRep.hh,v 1.7 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4NavigationLevelRep // @@ -38,6 +38,7 @@ // History: // // - 1 October 1997, J.Apostolakis: initial version. +// ******************************************************************** #ifndef G4NAVIGATIONLEVELREP_HH #define G4NAVIGATIONLEVELREP_HH @@ -53,16 +54,16 @@ class G4NavigationLevelRep public: // with description - G4NavigationLevelRep(G4VPhysicalVolume* newPtrPhysVol, - const G4AffineTransform& newT, - EVolume newVolTp, - G4int newRepNo= -1); + G4NavigationLevelRep( G4VPhysicalVolume* newPtrPhysVol, + const G4AffineTransform& newT, + EVolume newVolTp, + G4int newRepNo= -1 ); - G4NavigationLevelRep(G4VPhysicalVolume* newPtrPhysVol, - const G4AffineTransform& levelAbove, - const G4AffineTransform& relativeCurrent, - EVolume newVolTp, - G4int newRepNo= -1); + G4NavigationLevelRep( G4VPhysicalVolume* newPtrPhysVol, + const G4AffineTransform& levelAbove, + const G4AffineTransform& relativeCurrent, + EVolume newVolTp, + G4int newRepNo= -1 ); // As the previous constructor, but instead of giving Transform, give // the AffineTransform to the level above and the current level's // Transform relative to that. @@ -91,12 +92,6 @@ class G4NavigationLevelRep inline void operator delete(void *aTrack); // Override "delete" to use "G4Allocator". - public: // without description - - // G4AffineTransform& GetTransform(); - // const G4AffineTransform* GetPtrTransform() const; - // G4AffineTransform& accessTransform(); - private: G4AffineTransform sTransform; @@ -116,6 +111,4 @@ class G4NavigationLevelRep #include "G4NavigationLevelRep.icc" -// extern G4Allocator aNavigLevelRepAllocator; - #endif diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.icc b/source/geometry/volumes/include/G4NavigationLevelRep.icc index 64c837e493..f60105ba9a 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.icc +++ b/source/geometry/volumes/include/G4NavigationLevelRep.icc @@ -21,20 +21,23 @@ // ******************************************************************** // // -// $Id: G4NavigationLevelRep.icc,v 1.5 2001/07/11 10:00:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationLevelRep.icc,v 1.6 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // 1 October 1997 J.Apostolakis Initial version. // +// ******************************************************************** + +extern G4Allocator aNavigLevelRepAllocator; // Constructors //-------------- inline -G4NavigationLevelRep::G4NavigationLevelRep(G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& afTransform, - EVolume volTp, - G4int repNo) +G4NavigationLevelRep::G4NavigationLevelRep( G4VPhysicalVolume* pPhysVol, + const G4AffineTransform& afTransform, + EVolume volTp, + G4int repNo ) : sTransform(afTransform), sPhysicalVolumePtr(pPhysVol), sReplicaNo(repNo), @@ -54,21 +57,21 @@ G4NavigationLevelRep::G4NavigationLevelRep() } inline -G4NavigationLevelRep::G4NavigationLevelRep(G4VPhysicalVolume* pPhysVol, - const G4AffineTransform& levelAbove, - const G4AffineTransform& relativeCurrent, - EVolume volTp, - G4int repNo ) +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 ); + sTransform.InverseProduct( levelAbove, relativeCurrent ); } inline -G4NavigationLevelRep::G4NavigationLevelRep(G4NavigationLevelRep& right) +G4NavigationLevelRep::G4NavigationLevelRep( G4NavigationLevelRep& right ) : sTransform(right.sTransform), sPhysicalVolumePtr(right.sPhysicalVolumePtr), sReplicaNo(right.sReplicaNo), @@ -84,9 +87,13 @@ inline G4NavigationLevelRep::~G4NavigationLevelRep() { #ifdef DEBUG_NAVIG_LEVEL - if(fCountRef>0){ - G4Exception( " A G4NavigationLevelRep is being deleted that has a positive of reference counts (fCountRef > 0) " ); - } + if(fCountRef>0) + { + G4cout << "ERROR! - A G4NavigationLevelRep is being deleted that has" + << G4endl << " positive reference count (fCountRef > 0) !" + << G4endl; + G4Exception( "ERROR - G4NavigationLevelRep::~G4NavigationLevelRep()" ); + } #endif } @@ -95,9 +102,9 @@ G4NavigationLevelRep::~G4NavigationLevelRep() inline G4NavigationLevelRep& -G4NavigationLevelRep::operator=(const G4NavigationLevelRep &right) +G4NavigationLevelRep::operator=( const G4NavigationLevelRep &right ) { - if (&right == this) return *this; + if ( &right == this ) return *this; if (&right) { @@ -111,33 +118,28 @@ G4NavigationLevelRep::operator=(const G4NavigationLevelRep &right) return *this; } +// Accessors +// -------------- + inline G4VPhysicalVolume* G4NavigationLevelRep::GetPhysicalVolume() { - return sPhysicalVolumePtr; + return sPhysicalVolumePtr; } inline const G4AffineTransform& G4NavigationLevelRep::GetTransform() const { - return sTransform; + return sTransform; } -#if 0 -inline -G4AffineTransform& G4NavigationLevelRep::GetTransform() -{ - return sTransform; -} -#endif - inline const G4AffineTransform* G4NavigationLevelRep::GetTransformPtr() const { - return &sTransform; + return &sTransform; } inline @@ -155,17 +157,15 @@ G4int G4NavigationLevelRep::GetReplicaNo() const inline void G4NavigationLevelRep::AddAReference() { - fCountRef++; + fCountRef++; } inline G4bool G4NavigationLevelRep::RemoveAReference() { - return( --fCountRef <= 0); + return( --fCountRef <= 0 ); } -extern G4Allocator aNavigLevelRepAllocator; - // There is no provision that this class is subclassed. // If it is subclassed & new data members are added then the // following "new" & "delete" will fail and give errors. diff --git a/source/geometry/volumes/include/G4Navigator.hh b/source/geometry/volumes/include/G4Navigator.hh index 6b82db676a..0d2bad680b 100644 --- a/source/geometry/volumes/include/G4Navigator.hh +++ b/source/geometry/volumes/include/G4Navigator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Navigator.hh,v 1.18 2002/06/03 10:17:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Navigator.hh,v 1.19 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Navigator @@ -83,6 +83,7 @@ // History: // - Created. Paul Kent, July 95/96 +// ******************************************************************** #ifndef G4NAVIGATOR_HH #define G4NAVIGATOR_HH diff --git a/source/geometry/volumes/include/G4Navigator.icc b/source/geometry/volumes/include/G4Navigator.icc index d1ab9ec3f5..b858286601 100644 --- a/source/geometry/volumes/include/G4Navigator.icc +++ b/source/geometry/volumes/include/G4Navigator.icc @@ -22,7 +22,7 @@ // // // $Id: G4Navigator.icc,v 1.9 2002/06/03 10:17:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4Navigator Inline implementation diff --git a/source/geometry/volumes/include/G4NormalNavigation.hh b/source/geometry/volumes/include/G4NormalNavigation.hh index ffc9c3ed8e..7b8f500cfd 100644 --- a/source/geometry/volumes/include/G4NormalNavigation.hh +++ b/source/geometry/volumes/include/G4NormalNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.hh,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NormalNavigation.hh,v 1.5 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4NormalNavigation @@ -34,6 +34,7 @@ // History: // - Created. Paul Kent, Aug 96 +// ******************************************************************** #ifndef G4NORMALNAVIGATION_HH #define G4NORMALNAVIGATION_HH @@ -50,13 +51,13 @@ class G4NormalNavigation { public: // with description - G4bool LevelLocate(G4NavigationHistory &history, - const G4VPhysicalVolume *blockedVol, - const G4int blockedNum, - const G4ThreeVector &globalPoint, - const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector &localPoint); + G4bool LevelLocate( G4NavigationHistory &history, + const G4VPhysicalVolume *blockedVol, + const G4int blockedNum, + const G4ThreeVector &globalPoint, + const G4ThreeVector* globalDirection, + const G4bool pLocatedOnEdge, + G4ThreeVector &localPoint); // Search positioned volumes in mother at current top level of history // for volume containing globalPoint. Do not test the blocked volume. // If a containing volume is found, `stack' the new volume and return @@ -64,21 +65,21 @@ class G4NormalNavigation // of the daughters). localPoint = global point in local system on entry, // point in new system on exit. - G4double ComputeStep(const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double currentProposedStepLength, - G4double &newSafety, - G4NavigationHistory &history, - G4bool &validExitNormal, - G4ThreeVector &exitNormal, - G4bool &exiting, - G4bool &entering, - G4VPhysicalVolume *(*pBlockedPhysical), - G4int &blockedReplicaNo); + G4double ComputeStep( const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection, + const G4double currentProposedStepLength, + G4double &newSafety, + G4NavigationHistory &history, + G4bool &validExitNormal, + G4ThreeVector &exitNormal, + G4bool &exiting, + G4bool &entering, + G4VPhysicalVolume *(*pBlockedPhysical), + G4int &blockedReplicaNo ); - G4double ComputeSafety(const G4ThreeVector &globalpoint, - const G4NavigationHistory &history, - const G4double pMaxLength=DBL_MAX ); + G4double ComputeSafety( const G4ThreeVector &globalpoint, + const G4NavigationHistory &history, + const G4double pMaxLength=DBL_MAX ); }; #include "G4AuxiliaryNavServices.hh" // Needed for inline methods diff --git a/source/geometry/volumes/include/G4NormalNavigation.icc b/source/geometry/volumes/include/G4NormalNavigation.icc index cbcb1dd825..f3775b7583 100644 --- a/source/geometry/volumes/include/G4NormalNavigation.icc +++ b/source/geometry/volumes/include/G4NormalNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.icc,v 1.5 2002/05/15 10:21:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4NormalNavigation Inline Implementation diff --git a/source/geometry/volumes/include/G4ParameterisedNavigation.hh b/source/geometry/volumes/include/G4ParameterisedNavigation.hh index d31465e9f8..6be05e30a9 100644 --- a/source/geometry/volumes/include/G4ParameterisedNavigation.hh +++ b/source/geometry/volumes/include/G4ParameterisedNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.hh,v 1.5 2002/05/15 10:23:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParameterisedNavigation.hh,v 1.6 2002/07/23 08:50:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ParameterisedNavigation @@ -35,6 +35,7 @@ // History: // - Created. Paul Kent, Aug 96 +// ******************************************************************** #ifndef G4PARAMETERISEDNAVIGATION_HH #define G4PARAMETERISEDNAVIGATION_HH @@ -51,7 +52,6 @@ #include "G4LogicalVolume.hh" #include "G4VSolid.hh" #include "G4ThreeVector.hh" - #include "G4BlockingList.hh" class G4ParameterisedNavigation : public G4VoxelNavigation @@ -103,7 +103,7 @@ class G4ParameterisedNavigation : public G4VoxelNavigation EAxis fVoxelAxis; G4int fVoxelNoSlices; G4double fVoxelSliceWidth; - G4int fVoxelNodeNo; + G4int fVoxelNodeNo; G4SmartVoxelHeader* fVoxelHeader; }; diff --git a/source/geometry/volumes/include/G4ParameterisedNavigation.icc b/source/geometry/volumes/include/G4ParameterisedNavigation.icc index 881970b587..64d514e12f 100644 --- a/source/geometry/volumes/include/G4ParameterisedNavigation.icc +++ b/source/geometry/volumes/include/G4ParameterisedNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisedNavigation.icc,v 1.7 2002/05/15 10:23:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ParameterisedNavigation Inline implementation diff --git a/source/geometry/volumes/include/G4PropagatorInField.hh b/source/geometry/volumes/include/G4PropagatorInField.hh index 9964491a1b..bd06407f6a 100644 --- a/source/geometry/volumes/include/G4PropagatorInField.hh +++ b/source/geometry/volumes/include/G4PropagatorInField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.hh,v 1.22 2002/04/19 08:22:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PropagatorInField.hh,v 1.28 2002/11/09 00:25:08 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4PropagatorInField @@ -51,15 +51,11 @@ #include "globals.hh" #include "G4FieldTrack.hh" -// #include "G4VPhysicalVolume.hh" -// class G4VPhysicalVolume; - #include "G4Navigator.hh" #include "G4ChordFinder.hh" - #include "G4FieldManager.hh" -// #include "G4MagIntegratorDriver.hh" +class G4VCurvedTrajectoryFilter; class G4PropagatorInField { @@ -67,21 +63,13 @@ class G4PropagatorInField public: // with description G4PropagatorInField( G4Navigator *theNavigator, - G4FieldManager *detectorFieldMgr); - - G4PropagatorInField( G4Navigator *theNavigator ); + G4FieldManager *detectorFieldMgr ); ~G4PropagatorInField(); - G4double ComputeStep(G4FieldTrack &pFieldTrack, - G4double pCurrentProposedStepLength, - G4double &pNewSafety, - G4VPhysicalVolume *pPhysVol=0 ); - - // G4double ComputeStep(const G4ThreeVector &pGlobalPoint, - // const G4ThreeVector &pCurveTangent, // Unit vector - // G4double pCurrentProposedStepLength, - // G4double &pNewSafety, - // G4VPhysicalVolume *pPhysVol=0 ); + G4double ComputeStep( G4FieldTrack &pFieldTrack, + G4double pCurrentProposedStepLength, + G4double &pNewSafety, + G4VPhysicalVolume *pPhysVol=0 ); // Compute the next geometric Step inline G4ThreeVector EndPosition() const; @@ -94,14 +82,13 @@ class G4PropagatorInField inline void SetEpsilonStep(G4double newEps); // The ratio DeltaOneStep()/h_current_step - inline void SetChargeMomentumMass(G4double Charge, // in e+ units - G4double Momentum, // in Geant4 units - G4double pMass); + inline void SetChargeMomentumMass( G4double charge, // in e+ units + G4double momentum, // in Geant4 units + G4double pMass ); inline G4ChordFinder* GetChordFinder(); - // void SetChordFinder(G4ChordFinder* newCF); // Not yet relevant - inline G4int SetVerboseLevel( G4int Verbose ); + inline G4int SetVerboseLevel( G4int verbose ); inline G4int Verbose() const; inline G4double GetDeltaIntersection() const; @@ -109,76 +96,74 @@ class G4PropagatorInField inline G4double GetDeltaOneStep() const; // Accuracy for one tracking/physics step. - inline void SetAccuraciesWithDeltaOneStep(G4double deltaOneStep); + inline void SetAccuraciesWithDeltaOneStep( G4double deltaOneStep ); // Sets both accuracies for the Global (Detector) field, // maintaining a particular ratio for accuracties // of volume Intersection and Integration (in One Step). - inline void SetDeltaIntersection(G4double deltaIntersection); + inline void SetDeltaIntersection( G4double deltaIntersection ); // Set accuracy of intersection of a volume. (only) - inline void SetDeltaOneStep(G4double deltaOneStep); + inline void SetDeltaOneStep( G4double deltaOneStep ); // Set accuracy for integration of one step. (only) inline G4int GetMaxLoopCount() const; - inline void SetMaxLoopCount(G4int new_max); + inline void SetMaxLoopCount( G4int new_max ); // A maximum for the number of steps that a (looping) particle can take. - void printStatus( - const G4FieldTrack& StartFT, - const G4FieldTrack& CurrentFT, - G4double requestStep, - G4double safety, - G4int Step, - G4VPhysicalVolume* startVolume); + void printStatus( const G4FieldTrack& startFT, + const G4FieldTrack& currentFT, + G4double requestStep, + G4double safety, + G4int step, + G4VPhysicalVolume* startVolume); // Print Method - useful mostly for debugging. inline G4FieldTrack GetEndState() const; - // Minimum for Relative accuracy of any Step inline G4double GetMinimumEpsilonStep() const; - inline void SetMinimumEpsilonStep(G4double newEpsMin); + inline void SetMinimumEpsilonStep( G4double newEpsMin ); + // Minimum for Relative accuracy of any Step inline G4double GetMaximumEpsilonStep() const; - inline void SetMaximumEpsilonStep(G4double newEpsMax); + inline void SetMaximumEpsilonStep( G4double newEpsMax ); - inline void SetLargestAcceptableStep(G4double newBigDist); + inline void SetLargestAcceptableStep( G4double newBigDist ); inline G4double GetLargestAcceptableStep(); public: // without description - // void SetGlobalFieldMgr( G4FieldManager *detectorFieldMgr ); - // The Field Manager of the Detector. - inline G4FieldManager* GetCurrentFieldManager(); public: // no description - inline void SetThresholdNoZeroStep(G4int noAct, G4int noHarsh, G4int noAbandon); - inline G4int GetThresholdNoZeroSteps(G4int i); + inline void SetThresholdNoZeroStep( G4int noAct, + G4int noHarsh, + G4int noAbandon ); + inline G4int GetThresholdNoZeroSteps( G4int i ); - protected: + protected: // with description G4bool LocateIntersectionPoint( - const G4FieldTrack& CurveStartPointTangent, // A - const G4FieldTrack& CurveEndPointTangent, // B - const G4ThreeVector& TrialPoint, // E - G4FieldTrack& IntersectPointTangent); // Output + const G4FieldTrack& curveStartPointTangent, // A + const G4FieldTrack& curveEndPointTangent, // B + const G4ThreeVector& trialPoint, // E + G4FieldTrack& intersectPointTangent); // Output // If such an intersection exists, this function // calculate the intersection point of the true path of the particle // with the surface of the current volume (or of one of its daughters). - // (Should use lateral displacement as measure of convergence). + // (Should use lateral displacement as measure of convergence). - void PrintStepLengthDiagnostic(G4double CurrentProposedStepLength, - G4double decreaseFactor, - G4double stepTrial, - const G4FieldTrack& aFieldTrack); + void PrintStepLengthDiagnostic( G4double currentProposedStepLength, + G4double decreaseFactor, + G4double stepTrial, + const G4FieldTrack& aFieldTrack); + + private: // ---------------------------------------------------------------------- // DATA Members // ---------------------------------------------------------------------- - private: - G4FieldManager *fDetectorFieldMgr; // The Field Manager of the whole Detector. (default) @@ -188,7 +173,7 @@ class G4PropagatorInField G4Navigator *fNavigator; // STATE information - // ------------------ + // ----------------- G4double fEpsilonStep; // Relative accuracy for current Step (Calc.) @@ -202,32 +187,58 @@ class G4PropagatorInField // For debuging purposes // Values for the small possible relative accuracy of a step - // (corresponding to the greatest possible integration accuracy) + // (corresponding to the greatest possible integration accuracy) - // Limits for the Relative accuracy of any Step + G4double fEpsilonMinDefault; // Can be 1.0e-5 to 1.0e-10 ... + G4double fEpsilonMaxDefault; // Can be 1.0e-1 to 1.0e-3 ... G4double fEpsilonMin; G4double fEpsilonMax; - static const G4double fEpsilonMinDefault; // Can be 1.0e-5 to 1.0e-10 ... - static const G4double fEpsilonMaxDefault; // Can be 1.0e-1 to 1.0e-3 ... + // Limits for the Relative accuracy of any Step G4int fmax_loop_count; // Variables to keep track of "abnormal" case - which causes loop // - G4int fNoZeroStep; // Counter of zeroStep + G4int fNoZeroStep; // Counter of zeroStep G4int fActionThreshold_NoZeroSteps; // Threshold: above this - act G4int fSevereActionThreshold_NoZeroSteps; // Threshold to act harshly G4int fAbandonThreshold_NoZeroSteps; // Threshold to abandon - // G4double fMidPoint_CurveLen_of_LastAttempt= -1; + G4double fFull_CurveLen_of_LastAttempt; G4double fLast_ProposedStepLength; G4double fLargestAcceptableStep; + + G4double fCharge, fInitialMomentumModulus, fMass; + + // Introducing smooth curved trajectory display (jacek 30/10/2002) +public: + // + void SetTrajectoryFilter(G4VCurvedTrajectoryFilter* filter); + + // Access the points which have passed through the filter. The + // points are stored as ThreeVectors for the initial impelmentation + // only (jacek 30/10/2002) + // Responsibility for deleting the points lies with + // SmoothTrajectoryPoint, which is the points' final + // destination. The points pointer is set to NULL, to ensure that + // the points are not re-used in subsequent steps, therefore THIS + // METHOD MUST BE CALLED EXACTLY ONCE PER STEP. (jacek 08/11/2002) + G4std::vector* GimmeTrajectoryVectorAndForgetIt() const; +private: + // The filter encapsulates the algorithm which selects which + // intermediate points should be stored in a trajectory. If the + // pointer is not NULL, then PIF should submit all the intermediate + // points it calculates, to the filter. The pointer should be set to + // NULL when no intermediate points need to be stored. This + // (jacek 04/11/2002) + G4VCurvedTrajectoryFilter* fpTrajectoryFilter; }; -// Defines the constructor. -// +// ******************************************************************** +// Inline methods. +// ******************************************************************** + #include "G4PropagatorInField.icc" #endif - diff --git a/source/geometry/volumes/include/G4PropagatorInField.icc b/source/geometry/volumes/include/G4PropagatorInField.icc index 60fa753300..9fffe0d912 100644 --- a/source/geometry/volumes/include/G4PropagatorInField.icc +++ b/source/geometry/volumes/include/G4PropagatorInField.icc @@ -21,39 +21,43 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.icc,v 1.27 2002/04/19 08:22:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PropagatorInField.icc,v 1.31 2002/10/29 18:36:57 japost Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------------------ -// GEANT 4 include file implementation +// GEANT 4 inline implementation // // ------------------------------------------------------------------------ // // 25.10.96 John Apostolakis, design and implementation // 25.03.97 John Apostolakis, adaptation for G4Transportation and cleanup // -// To create an object, must have -// an object that calculates the Curved paths -// the navigator to find (linear) intersections -// and ?? also must know the value of the maximum displacement allowed -// +// To create an object of this type, must have: +// - an object that calculates the Curved paths +// - the navigator to find (linear) intersections +// - and ?? also must know the value of the maximum displacement allowed +// ******************************************************************** inline G4ChordFinder* G4PropagatorInField::GetChordFinder() { - // Now only the "Chord Finder" of the global Field Mgr is used - // ... - return fCurrentFieldMgr->GetChordFinder(); + // The "Chord Finder" of the current Field Mgr is used + // -- this could be of the global field manager + // or that of another, from the current volume + return fCurrentFieldMgr->GetChordFinder(); } inline void G4PropagatorInField::SetChargeMomentumMass( - G4double Charge, // in e+ units - G4double Momentum, // in GeV/c - G4double Mass) // in ? units + G4double Charge, // in e+ units + G4double Momentum, // in GeV/c + G4double Mass) // in ? units { - GetChordFinder()->SetChargeMomentumMass(Charge, Momentum, Mass); + GetChordFinder()->SetChargeMomentumMass(Charge, Momentum, Mass); + fCharge = Charge; + fInitialMomentumModulus = Momentum; + fMass = Mass; } // Obtain the final space-point and velocity (normal) at the end of the Step @@ -61,84 +65,80 @@ void G4PropagatorInField::SetChargeMomentumMass( inline G4ThreeVector G4PropagatorInField::EndPosition() const { - return End_PointAndTangent.GetPosition(); + return End_PointAndTangent.GetPosition(); } inline G4ThreeVector G4PropagatorInField::EndMomentumDir() const { - return End_PointAndTangent.GetMomentumDir(); + return End_PointAndTangent.GetMomentumDir(); } inline G4double G4PropagatorInField::GetEpsilonStep() const { - return fEpsilonStep; + return fEpsilonStep; } inline -void G4PropagatorInField::SetEpsilonStep(G4double newEps) +void G4PropagatorInField::SetEpsilonStep( G4double newEps ) { - fEpsilonStep=newEps; + fEpsilonStep=newEps; } inline G4bool G4PropagatorInField::IsParticleLooping() const { - return fParticleIsLooping; + return fParticleIsLooping; } inline G4int G4PropagatorInField::GetMaxLoopCount() const { - return fmax_loop_count; + return fmax_loop_count; } inline -void G4PropagatorInField::SetMaxLoopCount(G4int new_max) +void G4PropagatorInField::SetMaxLoopCount( G4int new_max ) { - fmax_loop_count= new_max; + fmax_loop_count = new_max; } inline G4double G4PropagatorInField::GetDeltaIntersection() const { - return fCurrentFieldMgr->GetDeltaIntersection(); + return fCurrentFieldMgr->GetDeltaIntersection(); } inline G4double G4PropagatorInField::GetDeltaOneStep() const { - return fCurrentFieldMgr->GetDeltaOneStep(); + return fCurrentFieldMgr->GetDeltaOneStep(); } inline void -G4PropagatorInField::SetAccuraciesWithDeltaOneStep(G4double valDeltaOneStep) +G4PropagatorInField::SetAccuraciesWithDeltaOneStep( G4double valDeltaOneStep ) { - fDetectorFieldMgr->SetAccuraciesWithDeltaOneStep(valDeltaOneStep); - // this->SetDeltaOneStep(valDeltaOneStep); - // this->SetDeltaIntersection( 0.4 * fDelta_One_Step_Value); + fDetectorFieldMgr->SetAccuraciesWithDeltaOneStep(valDeltaOneStep); } inline -void G4PropagatorInField::SetDeltaOneStep(G4double valDeltaOneStep) +void G4PropagatorInField::SetDeltaOneStep( G4double valDeltaOneStep ) { - fDetectorFieldMgr->SetDeltaOneStep( valDeltaOneStep); - // fCurrentFieldMgr->SetDeltaOneStep( valDeltaOneStep); + fDetectorFieldMgr->SetDeltaOneStep(valDeltaOneStep); } inline -void G4PropagatorInField::SetDeltaIntersection(G4double valDeltaIntersection) +void G4PropagatorInField::SetDeltaIntersection( G4double valDeltaIntersection ) { fDetectorFieldMgr->SetDeltaIntersection(valDeltaIntersection); - // fCurrentFieldMgr->SetDeltaOneStep( valDeltaOneStep); } inline G4int G4PropagatorInField::SetVerboseLevel( G4int Verbose ) { - return fVerboseLevel=Verbose; + return fVerboseLevel = Verbose; } inline @@ -161,11 +161,12 @@ G4double G4PropagatorInField::GetMinimumEpsilonStep() const } inline -void G4PropagatorInField::SetMinimumEpsilonStep(G4double newEpsMin) +void G4PropagatorInField::SetMinimumEpsilonStep( G4double newEpsMin ) { - if( (newEpsMin > 0.0) - && (fabs(1.0+newEpsMin)>1.0) ) - fEpsilonMin= newEpsMin; + if( (newEpsMin > 0.0) && (fabs(1.0+newEpsMin) > 1.0) ) + { + fEpsilonMin = newEpsMin; + } } // Maximum for Relative accuracy of any Step @@ -176,40 +177,58 @@ G4double G4PropagatorInField::GetMaximumEpsilonStep() const } inline -void G4PropagatorInField::SetMaximumEpsilonStep(G4double newEpsMax) +void G4PropagatorInField::SetMaximumEpsilonStep( G4double newEpsMax ) { if( (newEpsMax > 0.0) && (newEpsMax >= fEpsilonMin ) && (fabs(1.0+newEpsMax)>1.0) ) - fEpsilonMax= newEpsMax; + { + fEpsilonMax = newEpsMax; + } } -inline void G4PropagatorInField::SetLargestAcceptableStep(G4double newBigDist) -{if(fLargestAcceptableStep>0.0) fLargestAcceptableStep= newBigDist; } - -inline G4double G4PropagatorInField::GetLargestAcceptableStep() -{return fLargestAcceptableStep;} - -inline G4FieldManager* G4PropagatorInField::GetCurrentFieldManager() -{ return fCurrentFieldMgr; } - -inline void G4PropagatorInField::SetThresholdNoZeroStep( G4int noAct, G4int noHarsh, G4int noAbandon) +inline +void G4PropagatorInField::SetLargestAcceptableStep( G4double newBigDist ) { - if(noAct>0) - fActionThreshold_NoZeroSteps= noAct; - - if( noHarsh > fActionThreshold_NoZeroSteps) - fSevereActionThreshold_NoZeroSteps= noHarsh; - else - fSevereActionThreshold_NoZeroSteps= 2*(fActionThreshold_NoZeroSteps+1); - - if( noAbandon > fSevereActionThreshold_NoZeroSteps+5) - fAbandonThreshold_NoZeroSteps= noAbandon; - else - fAbandonThreshold_NoZeroSteps= 2*(fSevereActionThreshold_NoZeroSteps+3); + if( fLargestAcceptableStep>0.0 ) + { + fLargestAcceptableStep = newBigDist; + } } -inline G4int G4PropagatorInField::GetThresholdNoZeroSteps(G4int i) +inline +G4double G4PropagatorInField::GetLargestAcceptableStep() +{ + return fLargestAcceptableStep; +} + +inline +G4FieldManager* G4PropagatorInField::GetCurrentFieldManager() +{ + return fCurrentFieldMgr; +} + +inline +void G4PropagatorInField::SetThresholdNoZeroStep( G4int noAct, + G4int noHarsh, + G4int noAbandon ) +{ + if( noAct>0 ) + fActionThreshold_NoZeroSteps = noAct; + + if( noHarsh > fActionThreshold_NoZeroSteps ) + fSevereActionThreshold_NoZeroSteps = noHarsh; + else + fSevereActionThreshold_NoZeroSteps = 2*(fActionThreshold_NoZeroSteps+1); + + if( noAbandon > fSevereActionThreshold_NoZeroSteps+5 ) + fAbandonThreshold_NoZeroSteps = noAbandon; + else + fAbandonThreshold_NoZeroSteps = 2*(fSevereActionThreshold_NoZeroSteps+3); +} + +inline +G4int G4PropagatorInField::GetThresholdNoZeroSteps( G4int i ) { G4int t=0; if( i==0 ) { t = 3; } // No of parameters @@ -218,4 +237,5 @@ inline G4int G4PropagatorInField::GetThresholdNoZeroSteps(G4int i) else if (i==3) { t = fAbandonThreshold_NoZeroSteps; } return t; -} +} + diff --git a/source/geometry/volumes/include/G4ReplicaNavigation.hh b/source/geometry/volumes/include/G4ReplicaNavigation.hh index bafed5ed3b..e44ce2b0ae 100644 --- a/source/geometry/volumes/include/G4ReplicaNavigation.hh +++ b/source/geometry/volumes/include/G4ReplicaNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.hh,v 1.4 2001/07/11 10:00:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReplicaNavigation.hh,v 1.5 2002/07/23 08:50:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ReplicaNavigation @@ -35,6 +35,7 @@ // History: // - Created. Paul Kent, Aug 96 +// ******************************************************************** #ifndef G4REPLICANAVIGATION_HH #define G4REPLICANAVIGATION_HH @@ -47,89 +48,88 @@ #include "G4LogicalVolume.hh" #include "G4VSolid.hh" #include "G4ThreeVector.hh" - #include "G4BlockingList.hh" // Required for voxel handling +// #include "G4SmartVoxelProxy.hh" #include "G4SmartVoxelNode.hh" #include "G4SmartVoxelHeader.hh" class G4ReplicaNavigation { - friend class G4ReplicaNavigationTester; + friend class G4ReplicaNavigationTester; public: // with description - G4ReplicaNavigation(); - G4bool LevelLocate(G4NavigationHistory& history, - const G4VPhysicalVolume *blockedVol, - const G4int blockedNum, - const G4ThreeVector &globalPoint, - const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector &localPoint); + G4ReplicaNavigation(); + G4bool LevelLocate( G4NavigationHistory& history, + const G4VPhysicalVolume *blockedVol, + const G4int blockedNum, + const G4ThreeVector &globalPoint, + const G4ThreeVector* globalDirection, + const G4bool pLocatedOnEdge, + G4ThreeVector &localPoint ); - G4double ComputeStep(const G4ThreeVector &globalPoint, - const G4ThreeVector &globalDirection, - const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double currentProposedStepLength, - G4double &newSafety, - G4NavigationHistory &history, - G4bool &validExitNormal, - G4ThreeVector &exitNormal, - G4bool &exiting, - G4bool &entering, - G4VPhysicalVolume *(*pBlockedPhysical), - G4int &blockedReplicaNo); + G4double ComputeStep( const G4ThreeVector &globalPoint, + const G4ThreeVector &globalDirection, + const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection, + const G4double currentProposedStepLength, + G4double &newSafety, + G4NavigationHistory &history, + G4bool &validExitNormal, + G4ThreeVector &exitNormal, + G4bool &exiting, + G4bool &entering, + G4VPhysicalVolume *(*pBlockedPhysical), + G4int &blockedReplicaNo ); - G4double ComputeSafety(const G4ThreeVector &globalPoint, - const G4ThreeVector &localPoint, - G4NavigationHistory &history, // -> NON-CONST - // const G4NavigationHistory &history, // -> NON-CONST - const G4double pProposedMaxLength=DBL_MAX ); + G4double ComputeSafety( const G4ThreeVector &globalPoint, + const G4ThreeVector &localPoint, + G4NavigationHistory &history, + const G4double pProposedMaxLength=DBL_MAX ); - EInside BackLocate(G4NavigationHistory &history, - const G4ThreeVector &globalPoint, - G4ThreeVector &localPoint, - const G4bool &exiting, - G4bool ¬KnownInside) const; + EInside BackLocate( G4NavigationHistory &history, + const G4ThreeVector &globalPoint, + G4ThreeVector &localPoint, + const G4bool &exiting, + G4bool ¬KnownInside ) const; - void ComputeTransformation(const G4int replicaNo, - G4VPhysicalVolume *pVol, - G4ThreeVector &point) const; - void ComputeTransformation(const G4int replicaNo, - G4VPhysicalVolume *pVol) const; + void ComputeTransformation( const G4int replicaNo, + G4VPhysicalVolume *pVol, + G4ThreeVector &point ) const; + void ComputeTransformation( const G4int replicaNo, + G4VPhysicalVolume *pVol ) const; - EInside Inside(const G4VPhysicalVolume *pVol, - const G4int replicaNo, - const G4ThreeVector &localPoint) const; - G4double DistanceToOut(const G4VPhysicalVolume *pVol, - const G4int replicaNo, - const G4ThreeVector &localPoint) const; - G4double DistanceToOut(const G4VPhysicalVolume *pVol, - const G4int replicaNo, - const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection) const; + EInside Inside( const G4VPhysicalVolume *pVol, + const G4int replicaNo, + const G4ThreeVector &localPoint ) const; + G4double DistanceToOut( const G4VPhysicalVolume *pVol, + const G4int replicaNo, + const G4ThreeVector &localPoint ) const; + G4double DistanceToOut( const G4VPhysicalVolume *pVol, + const G4int replicaNo, + const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection ) const; private: - G4int VoxelLocate(const G4SmartVoxelHeader *pHead, - const G4ThreeVector &localPoint, - const G4int blocked=-1) const; + G4int VoxelLocate( const G4SmartVoxelHeader *pHead, + const G4ThreeVector &localPoint, + const G4int blocked=-1 ) const; - G4double DistanceToOutPhi(const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double width) const; + G4double DistanceToOutPhi( const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection, + const G4double width ) const; - G4double DistanceToOutRad(const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double width, - const G4double offset, - const G4int replicaNo) const; - void SetPhiTransformation(const G4double ang, - G4VPhysicalVolume *pVol=0) const; + G4double DistanceToOutRad( const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection, + const G4double width, + const G4double offset, + const G4int replicaNo ) const; + void SetPhiTransformation( const G4double ang, + G4VPhysicalVolume *pVol=0 ) const; }; #include "G4ReplicaNavigation.icc" diff --git a/source/geometry/volumes/include/G4ReplicaNavigation.icc b/source/geometry/volumes/include/G4ReplicaNavigation.icc index b36d573e7e..982646d1b9 100644 --- a/source/geometry/volumes/include/G4ReplicaNavigation.icc +++ b/source/geometry/volumes/include/G4ReplicaNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.icc,v 1.6 2002/05/15 10:21:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ReplicaNavigation Inline implementation diff --git a/source/geometry/volumes/include/G4TouchableHistory.hh b/source/geometry/volumes/include/G4TouchableHistory.hh index 1d169ae027..9556563ca4 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.hh +++ b/source/geometry/volumes/include/G4TouchableHistory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TouchableHistory.hh,v 1.5 2001/07/11 10:00:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TouchableHistory.hh,v 1.6 2002/07/23 08:50:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4TouchableHistory @@ -34,6 +34,7 @@ // History: // - Created. Paul Kent, August 1996 +// ******************************************************************** #ifndef G4TOUCHABLEHISTORY_HH #define G4TOUCHABLEHISTORY_HH @@ -49,7 +50,7 @@ class G4TouchableHistory : public G4VTouchable public: // with description - G4TouchableHistory(const G4NavigationHistory& history); + G4TouchableHistory( const G4NavigationHistory& history ); G4TouchableHistory(); // The default constructor produces a touchable-history of // 'zero-depth', ie an "unphysical" and not very unusable one. @@ -57,18 +58,18 @@ class G4TouchableHistory : public G4VTouchable virtual ~G4TouchableHistory(); - inline G4VPhysicalVolume* GetVolume(G4int depth=0) const; - inline G4VSolid* GetSolid(G4int depth=0) const; - const G4ThreeVector& GetTranslation(G4int depth=0) const; - const G4RotationMatrix* GetRotation(G4int depth=0) const; + inline G4VPhysicalVolume* GetVolume( G4int depth=0 ) const; + inline G4VSolid* GetSolid( G4int depth=0 ) const; + const G4ThreeVector& GetTranslation( G4int depth=0 ) const; + const G4RotationMatrix* GetRotation( G4int depth=0 ) const; - inline G4int GetReplicaNumber(G4int depth=0) const; + inline G4int GetReplicaNumber( G4int depth=0 ) const; inline G4int GetHistoryDepth() const; G4int MoveUpHistory( G4int num_levels = 1 ); // Access methods for touchables with history - virtual void UpdateYourself(G4VPhysicalVolume* pPhysVol, - const G4NavigationHistory* history=0); + virtual void UpdateYourself( G4VPhysicalVolume* pPhysVol, + const G4NavigationHistory* history=0 ); // Update methods for touchables with history public: // without description @@ -77,12 +78,9 @@ class G4TouchableHistory : public G4VTouchable // Should this method be "deprecated" ? // it is used now in G4Navigator::LocateGlobalPointAndSetup - // void ResetLevel(); - // Set the level to the top level. - private: - inline G4int CalculateHistoryIndex(G4int stackDepth) const; + inline G4int CalculateHistoryIndex( G4int stackDepth ) const; G4RotationMatrix frot; G4ThreeVector ftlate; diff --git a/source/geometry/volumes/include/G4TouchableHistory.icc b/source/geometry/volumes/include/G4TouchableHistory.icc index c6861ccd1c..e025f0c17c 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.icc +++ b/source/geometry/volumes/include/G4TouchableHistory.icc @@ -21,66 +21,70 @@ // ******************************************************************** // // -// $Id: G4TouchableHistory.icc,v 1.6 2001/07/11 10:00:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TouchableHistory.icc,v 1.7 2002/07/23 08:50:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4TouchableHistory inline implementation +// ******************************************************************** inline G4TouchableHistory::G4TouchableHistory() - : frot(G4RotationMatrix()), ftlate(G4ThreeVector(0.,0.,0.)), fhistory() + : frot(G4RotationMatrix()), + ftlate(G4ThreeVector(0.,0.,0.)), + fhistory() { } inline -G4TouchableHistory::G4TouchableHistory(const G4NavigationHistory &history) +G4TouchableHistory::G4TouchableHistory( const G4NavigationHistory &history ) : fhistory(history) { G4AffineTransform tf(fhistory.GetTopTransform().Inverse()); - ftlate=tf.NetTranslation(); - frot=tf.NetRotation(); + ftlate = tf.NetTranslation(); + frot = tf.NetRotation(); } inline -void G4TouchableHistory::UpdateYourself(G4VPhysicalVolume* pPhysVol, - const G4NavigationHistory* pHistory) +void G4TouchableHistory::UpdateYourself( G4VPhysicalVolume* pPhysVol, + const G4NavigationHistory* pHistory ) { - fhistory= *pHistory; + fhistory = *pHistory; G4AffineTransform tf(fhistory.GetTopTransform().Inverse()); - if( pPhysVol == 0 ){ + if( pPhysVol == 0 ) + { // This means that the track has left the World Volume. // Since the Navigation History does not already reflect this, - // we must correct this problem here. John A. (--> K. Amako) + // we must correct this problem here. + // fhistory.SetFirstEntry(pPhysVol); } - ftlate=tf.NetTranslation(); - frot=tf.NetRotation(); + ftlate = tf.NetTranslation(); + frot = tf.NetRotation(); } inline -G4int G4TouchableHistory::CalculateHistoryIndex(G4int stackDepth) const +G4int G4TouchableHistory::CalculateHistoryIndex( G4int stackDepth ) const { return (fhistory.GetDepth()-stackDepth); // was -1 } inline -G4VPhysicalVolume* G4TouchableHistory::GetVolume(G4int depth) const +G4VPhysicalVolume* G4TouchableHistory::GetVolume( G4int depth ) const { return fhistory.GetVolume(CalculateHistoryIndex(depth)); } inline -G4VSolid* G4TouchableHistory::GetSolid(G4int depth) const +G4VSolid* G4TouchableHistory::GetSolid( G4int depth ) const { return fhistory.GetVolume(CalculateHistoryIndex(depth)) ->GetLogicalVolume()->GetSolid(); } inline -G4int G4TouchableHistory::GetReplicaNumber(G4int depth) const +G4int G4TouchableHistory::GetReplicaNumber( G4int depth ) const { - // return this->GetHistory()->GetTopReplicaNo(); return fhistory.GetReplicaNo(CalculateHistoryIndex(depth)); } @@ -94,19 +98,19 @@ inline G4int G4TouchableHistory::MoveUpHistory( G4int num_levels ) { G4NavigationHistory* nHistory= &fhistory; - G4int maxLevelsMove= nHistory->GetDepth(); - G4int minLevelsMove= 0; // Cannot redescend today! - // Soon it will be possible - // by adding a data member here - // fCurrentDepth; - - if( num_levels > maxLevelsMove ){ - num_levels = maxLevelsMove; + G4int maxLevelsMove = nHistory->GetDepth(); + G4int minLevelsMove = 0; // Cannot redescend today! + // Soon it will be possible + // by adding a data member here + // fCurrentDepth; + if( num_levels > maxLevelsMove ) + { + num_levels = maxLevelsMove; } - else if( num_levels < minLevelsMove ){ - num_levels = minLevelsMove; + else if( num_levels < minLevelsMove ) + { + num_levels = minLevelsMove; } - nHistory->BackLevel( num_levels ); return num_levels; diff --git a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh index dc81d9eed0..4d65937447 100644 --- a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh +++ b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh @@ -21,25 +21,24 @@ // ******************************************************************** // // -// $Id: G4TouchableHistoryHandle.hh,v 1.3 2001/11/06 17:08:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TouchableHistoryHandle.hh,v 1.4 2002/07/23 08:50:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// Class G4TouchableHandle +// Class G4TouchableHistoryHandle // // Class description: // -// A type providing reference counting mechanism for any kind of touchable -// history objects. +// A type providing reference counting mechanism for a G4TouchableHistory +// object. // The basic rule for the use of this type is that this handle must always // be exchanged by reference never dinamically allocated (i.e. never // instantiated using 'new'). // // For more details see G4ReferenceCountedHandle. -// Author: Radovan Chytracek, CERN (Radovan.Chytracek@cern.ch) -// Version: 1.0 -// Date: March 2001 +// Author: Radovan Chytracek (Radovan.Chytracek@cern.ch), March 2001 // ---------------------------------------------------------------------- + #ifndef _G4TOUCHABLEHISTORYHANDLE_H_ #define _G4TOUCHABLEHISTORYHANDLE_H_ 1 diff --git a/source/geometry/volumes/include/G4TransportationManager.hh b/source/geometry/volumes/include/G4TransportationManager.hh index 40cda390ee..85a853c1d8 100644 --- a/source/geometry/volumes/include/G4TransportationManager.hh +++ b/source/geometry/volumes/include/G4TransportationManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TransportationManager.hh,v 1.7 2001/10/24 15:33:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TransportationManager.hh,v 1.8 2002/07/23 08:50:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4TransportationManager // @@ -58,9 +58,9 @@ class G4TransportationManager inline G4PropagatorInField* GetPropagatorInField() const; inline G4FieldManager* GetFieldManager() const; - inline void SetNavigatorForTracking( G4Navigator* newNavigator); - inline void SetPropagatorInField( G4PropagatorInField* newFieldPropagator); - inline void SetFieldManager( G4FieldManager* newFieldManager); + inline void SetNavigatorForTracking( G4Navigator* newNavigator ); + inline void SetPropagatorInField( G4PropagatorInField* newFieldPropagator ); + inline void SetFieldManager( G4FieldManager* newFieldManager ); ~G4TransportationManager(); diff --git a/source/geometry/volumes/include/G4TransportationManager.icc b/source/geometry/volumes/include/G4TransportationManager.icc index 09264e0329..c50699ff77 100644 --- a/source/geometry/volumes/include/G4TransportationManager.icc +++ b/source/geometry/volumes/include/G4TransportationManager.icc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4TransportationManager.icc,v 1.5 2001/07/11 10:00:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TransportationManager.icc,v 1.6 2002/07/23 08:50:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ -// GEANT 4 inlined function members implementation +// GEANT 4 inlined function members implementation // ------------------------------------------------------------ // // Created: 10 March 1997, J. Apostolakis // +// ******************************************************************** inline G4Navigator* G4TransportationManager::GetNavigatorForTracking() const @@ -51,19 +52,18 @@ G4FieldManager* G4TransportationManager::GetFieldManager() const inline void G4TransportationManager::SetNavigatorForTracking(G4Navigator* newNavigator) { - fNavigatorForTracking= newNavigator; - // fPropagatorInField->setNavigator(newNavigator); + fNavigatorForTracking = newNavigator; } inline -void G4TransportationManager::SetPropagatorInField( - G4PropagatorInField* newFieldPropagator ) +void G4TransportationManager::SetPropagatorInField( + G4PropagatorInField* newFieldPropagator ) { - fPropagatorInField= newFieldPropagator; + fPropagatorInField = newFieldPropagator; } inline void G4TransportationManager::SetFieldManager(G4FieldManager* newFieldManager) { - fFieldManager= newFieldManager; + fFieldManager = newFieldManager; } diff --git a/source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh b/source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh new file mode 100644 index 0000000000..57b4e5d429 --- /dev/null +++ b/source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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: G4VCurvedTrajectoryFilter.hh,v 1.3 2002/11/19 16:40:09 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// class G4VCurevedTrajectoryFilter +// +// Class description: +// +// Decides which intermediate points on a curved trajectory merit +// being stored. Defines the compromise between accuracy of +// representation of the curved trajectory and memory use. +// +// Derived classes should implement the filetring algorithm in the +// method TakeIntermediatePoint. +// +// IMPORTANT: This class heap allocates vectors of auxiliary points, +// which it does not delete. The vectors must find their way to a +// subclass of G4VTrajectoryPoint, which must take responsibility for +// deleting them. + +// History + +// - Modified: +// +// (jacek 19/11/2002) - Moved identity filter implementation out into +// separate concrete class +// +// - First version: Oct 30, 2002 Jacek Generowicz + + +#ifndef G4VCurvedTrajectoryFilter_hh +#define G4VCurvedTrajectoryFilter_hh + +#include "G4ThreeVector.hh" +#include "g4std/vector" +#include "G4TransportationManager.hh" + +class G4VCurvedTrajectoryFilter { +public: + + G4VCurvedTrajectoryFilter(){}; + virtual ~G4VCurvedTrajectoryFilter(){}; + + // Probably do not want these objects to be copied, so make the copy + // constructor prvate (jacek 30/10/2002) + + // Each segment stores the auxiliary points of a single step. + void CreateNewTrajectorySegment( ); + + // Submit intermediate points for the filter to consider keeping or + // rejecting. + // Derived classes should implement the filtering algorithm in this + // method. + virtual void TakeIntermediatePoint( G4ThreeVector newPoint ) = 0; + + G4std::vector* GimmeThePointsAndForgetThem(); + +protected: + G4std::vector* fpFilteredPoints; +}; + +#endif /* End of ifndef G4VCurvedTrajectoryFilter_hh */ diff --git a/source/geometry/volumes/include/G4VoxelNavigation.hh b/source/geometry/volumes/include/G4VoxelNavigation.hh index a77272bf27..44b5fdb7eb 100644 --- a/source/geometry/volumes/include/G4VoxelNavigation.hh +++ b/source/geometry/volumes/include/G4VoxelNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.hh,v 1.10 2002/05/15 10:22:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VoxelNavigation.hh,v 1.11 2002/07/23 08:50:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VoxelNavigation @@ -34,6 +34,7 @@ // History: // - Created. Paul Kent, Aug 96 +// ******************************************************************** #ifndef G4VOXELNAVIGATION_HH #define G4VOXELNAVIGATION_HH diff --git a/source/geometry/volumes/include/G4VoxelNavigation.icc b/source/geometry/volumes/include/G4VoxelNavigation.icc index 9a1db02ec6..5a91dc2c54 100644 --- a/source/geometry/volumes/include/G4VoxelNavigation.icc +++ b/source/geometry/volumes/include/G4VoxelNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.icc,v 1.10 2002/05/15 10:21:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VoxelNavigation Inline implementation diff --git a/source/geometry/volumes/src/G4AuxiliaryNavServices.cc b/source/geometry/volumes/src/G4AuxiliaryNavServices.cc index 4409a67d84..09e58326e9 100644 --- a/source/geometry/volumes/src/G4AuxiliaryNavServices.cc +++ b/source/geometry/volumes/src/G4AuxiliaryNavServices.cc @@ -20,12 +20,17 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4AuxiliaryNavServices.cc,v 1.3 2002/08/06 08:23:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ******************************************************************** + #include "G4AuxiliaryNavServices.hh" #include "globals.hh" // This method currently exists only to allow compilers to find -// the inline method (which are the core of this class) - +// the inline method (which are the core of this class) +// G4bool G4AuxiliaryNavServices::testOne() { return true; diff --git a/source/geometry/volumes/src/G4BlockingList.cc b/source/geometry/volumes/src/G4BlockingList.cc index fafc3b0f66..f883b0aaca 100644 --- a/source/geometry/volumes/src/G4BlockingList.cc +++ b/source/geometry/volumes/src/G4BlockingList.cc @@ -21,33 +21,34 @@ // ******************************************************************** // // -// $Id: G4BlockingList.cc,v 1.5 2002/04/19 08:22:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BlockingList.cc,v 1.7 2002/11/27 17:50:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4BlockingList Implementation // +// ******************************************************************** #include "G4BlockingList.hh" -G4BlockingList::G4BlockingList(G4int maxDefault,G4int stride) - : fStride(stride), fBlockingList(maxDefault,0) +G4BlockingList::G4BlockingList(G4int maxDefault, G4int stride) + : fBlockTagNo(1), fStride(stride), fBlockingList(maxDefault,0) { } // Do nothing destructor +// G4BlockingList::~G4BlockingList() { } // Clear List and reset tag -// Fix: Out of line for HP-CC +// void G4BlockingList::FullyReset() { - fBlockTagNo=1; - for (G4int i=fBlockingList.size()-1;i>=0;i--) - { - fBlockingList[i]=0; - } - + fBlockTagNo = 1; + for ( G4int i=fBlockingList.size()-1; i>=0; i-- ) + { + fBlockingList[i] = 0; + } } diff --git a/source/geometry/volumes/src/G4GRSSolid.cc b/source/geometry/volumes/src/G4GRSSolid.cc index 3b9432bca4..ad250955bb 100644 --- a/source/geometry/volumes/src/G4GRSSolid.cc +++ b/source/geometry/volumes/src/G4GRSSolid.cc @@ -21,11 +21,13 @@ // ******************************************************************** // // -// $Id: G4GRSSolid.cc,v 1.4 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GRSSolid.cc,v 1.5 2002/08/06 08:23:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4GRSSolid Implementation +// +// ******************************************************************** #include "G4GRSSolid.hh" diff --git a/source/geometry/volumes/src/G4GRSVolume.cc b/source/geometry/volumes/src/G4GRSVolume.cc index bfec7cdedc..34b26c76b1 100644 --- a/source/geometry/volumes/src/G4GRSVolume.cc +++ b/source/geometry/volumes/src/G4GRSVolume.cc @@ -21,11 +21,13 @@ // ******************************************************************** // // -// $Id: G4GRSVolume.cc,v 1.4 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GRSVolume.cc,v 1.5 2002/08/06 08:23:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4GRSVolume Implementation +// +// ******************************************************************** #include "G4GRSVolume.hh" diff --git a/source/geometry/volumes/src/G4GeometryMessenger.cc b/source/geometry/volumes/src/G4GeometryMessenger.cc index 4bd9a25c98..f8cf70fe85 100644 --- a/source/geometry/volumes/src/G4GeometryMessenger.cc +++ b/source/geometry/volumes/src/G4GeometryMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryMessenger.cc,v 1.6 2002/04/03 11:51:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeometryMessenger.cc,v 1.7 2002/08/06 08:23:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,8 @@ // G4GeometryMessenger // // Author: G.Cosmo, CERN. +// +// ******************************************************************** #include "g4std/iomanip" #include "G4GeometryMessenger.hh" @@ -120,7 +122,6 @@ G4GeometryMessenger::G4GeometryMessenger(G4TransportationManager* tman) runCmd->SetGuidance( "Same as the grid_test command." ); } - // // Destructor // @@ -142,7 +143,6 @@ G4GeometryMessenger::~G4GeometryMessenger() delete tlogger; } - // // Init // @@ -209,7 +209,6 @@ G4GeometryMessenger::SetNewValue( G4UIcommand* command, G4String newValues ) } } - // // GetCurrentValue // @@ -362,4 +361,3 @@ G4GeometryMessenger::CylinderTest() // tvolume->ReportErrors(); } - diff --git a/source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc b/source/geometry/volumes/src/G4IdentityTrajectoryFilter.cc similarity index 68% rename from source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc rename to source/geometry/volumes/src/G4IdentityTrajectoryFilter.cc index 466c390d5e..b067250972 100644 --- a/source/persistency/digits+hits/digits/src/G4PVDigitsCollection.cc +++ b/source/geometry/volumes/src/G4IdentityTrajectoryFilter.cc @@ -21,27 +21,18 @@ // ******************************************************************** // // -// $Id: G4PVDigitsCollection.cc,v 1.4 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// $Id: G4IdentityTrajectoryFilter.cc,v 1.3 2002/11/30 17:22:37 stesting Exp $ +// GEANT4 tag $Name: geant4-05-00 $ -// G4PVDigitsCollection +#include "G4IdentityTrajectoryFilter.hh" -#include -#include "G4PVDigitsCollection.hh" -#include "G4PersistentDigitMan.hh" -#include "G4PDCofThisEvent.hh" - -G4PVDigitsCollection::G4PVDigitsCollection(G4String detName,G4String colNam) - : pcollectionName(colNam), pDMname(detName) -{;} - -G4PVDigitsCollection::~G4PVDigitsCollection() -{;} - -int G4PVDigitsCollection::operator==(const G4PVDigitsCollection &right) const -{ - return ((pcollectionName==right.pcollectionName) - &&(pDMname==right.pDMname)); +void +G4IdentityTrajectoryFilter::TakeIntermediatePoint( G4ThreeVector newPoint ) { + // Just store every single point, initially. (jacek 30/10/2002) + // Implement more sophisticated filters later. Copy by value into + // the vector; the vector will never be copied by value itself. In + // the final version, will probably want to create the intermediate + // points at this stage. + fpFilteredPoints->push_back( newPoint ); + G4cout << "spong: G4IdentityTrajectoryFilter::TakeIntermediatePoint" << G4endl; } - diff --git a/source/geometry/volumes/src/G4LogicalBorderSurface.cc b/source/geometry/volumes/src/G4LogicalBorderSurface.cc index 9e96124ab0..0fd007ad62 100644 --- a/source/geometry/volumes/src/G4LogicalBorderSurface.cc +++ b/source/geometry/volumes/src/G4LogicalBorderSurface.cc @@ -21,46 +21,38 @@ // ******************************************************************** // // -// $Id: G4LogicalBorderSurface.cc,v 1.7 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LogicalBorderSurface.cc,v 1.8 2002/08/06 08:23:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -//////////////////////////////////////////////////////////////////////// +// -------------------------------------------------------------------- // G4LogicalBorderSurface Implementation -//////////////////////////////////////////////////////////////////////// +// -------------------------------------------------------------------- +// +// A Logical Surface class for surfaces defined by the boundary +// of two physical volumes. // -// File: G4LogicalBorderSurface.cc -// Description: A Logical Surface class for surfaces defined by the -// boundary of two physical volumes. -// Version: 1.0 // Created: 1997-06-26 -// Author: John Apostolakis -// mail: John.Apostolakis@cern.ch -// Modified: 1997-06-26 John Apostolakis +// Author: John Apostolakis (John.Apostolakis@cern.ch) // -// Id tag: -//////////////////////////////////////////////////////////////////////// +// ******************************************************************** #include "G4LogicalBorderSurface.hh" - G4LogicalBorderSurfaceTable G4LogicalBorderSurface::theBorderSurfaceTable; -///////////////////////// -// Class Implementation -///////////////////////// - - ///////////////// - // Constructors - ///////////////// +// +// Constructor & destructor +// G4LogicalBorderSurface::G4LogicalBorderSurface(const G4String& name, - G4VPhysicalVolume* vol1, - G4VPhysicalVolume* vol2, - G4OpticalSurface* opticsSurface) + G4VPhysicalVolume* vol1, + G4VPhysicalVolume* vol2, + G4OpticalSurface* opticsSurface) : G4LogicalSurface(name, opticsSurface), Volume1(vol1), Volume2(vol2) { // Store in the table of Surfaces + // theBorderSurfaceTable.push_back(this); } @@ -74,11 +66,13 @@ G4LogicalBorderSurface(const G4LogicalBorderSurface& right) theBorderSurfaceTable = right.theBorderSurfaceTable; } -G4LogicalBorderSurface::~G4LogicalBorderSurface(){} +G4LogicalBorderSurface::~G4LogicalBorderSurface() +{ +} - ////////////// - // Operators - ////////////// +// +// Operators +// const G4LogicalBorderSurface& G4LogicalBorderSurface::operator=(const G4LogicalBorderSurface &right) @@ -107,49 +101,47 @@ G4LogicalBorderSurface::operator!=(const G4LogicalBorderSurface &right) const { return (this != (G4LogicalBorderSurface *) &right); } - //////////// - // Methods - //////////// + +// +// Methods +// const G4std::vector * G4LogicalBorderSurface::GetSurfaceTable() { - return &theBorderSurfaceTable; + return &theBorderSurfaceTable; } size_t G4LogicalBorderSurface::GetNumberOfBorderSurfaces() { - return theBorderSurfaceTable.size(); + return theBorderSurfaceTable.size(); } G4LogicalBorderSurface* G4LogicalBorderSurface::GetSurface(const G4VPhysicalVolume* vol1, - const G4VPhysicalVolume* vol2) + const G4VPhysicalVolume* vol2) { - for (size_t i=0; iGetVolume1() == vol1 && - theBorderSurfaceTable[i]->GetVolume2() == vol2 ) - return theBorderSurfaceTable[i]; - } - return NULL; + for (size_t i=0; iGetVolume1() == vol1) && + (theBorderSurfaceTable[i]->GetVolume2() == vol2) ) + return theBorderSurfaceTable[i]; + } + return NULL; } -void G4LogicalBorderSurface::DumpInfo() // Class method (it is really const) +// Dump info for known surfaces +// +void G4LogicalBorderSurface::DumpInfo() { + G4cout << "***** Surface Table : Nb of Surfaces = " + << GetNumberOfBorderSurfaces() << " *****" << G4endl; - // Dump info for known surfaces - - G4cout << "***** Surface Table : Nb of Surfaces = " << - GetNumberOfBorderSurfaces() << " *****" << G4endl; - - for (size_t i=0; iGetName() << " : " << G4endl << - " Surface type = " << theBorderSurfaceTable[i]->GetName() << G4endl; -#ifdef PRINT_INFO - " Surface type = " << theBorderSurfaceTable[i]->GetOpticalSurface()->GetType() << G4endl; - " Surface finish = " << theBorderSurfaceTable[i]->GetFinish() << G4endl << - " Surface model = " << theBorderSurfaceTable[i]->GetModel() << G4endl; -#endif - } - G4cout << G4endl; + for (size_t i=0; iGetName() << " : " << G4endl + << " Surface type = " << theBorderSurfaceTable[i]->GetName() + << G4endl; + } + G4cout << G4endl; } diff --git a/source/geometry/volumes/src/G4LogicalSkinSurface.cc b/source/geometry/volumes/src/G4LogicalSkinSurface.cc index d5c26a3bdf..7ed50e40ea 100644 --- a/source/geometry/volumes/src/G4LogicalSkinSurface.cc +++ b/source/geometry/volumes/src/G4LogicalSkinSurface.cc @@ -21,65 +21,60 @@ // ******************************************************************** // // -// $Id: G4LogicalSkinSurface.cc,v 1.7 2001/07/11 10:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LogicalSkinSurface.cc,v 1.8 2002/08/06 08:23:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -//////////////////////////////////////////////////////////////////////// +// -------------------------------------------------------------------- // G4LogicalSkinSurface Implementation -//////////////////////////////////////////////////////////////////////// +// -------------------------------------------------------------------- +// +// A Logical Surface class for the surface surrounding a single +// logical volume. // -// File: G4LogicalSkinSurface.cc -// Description: A Logical Surface class for the surface -// surrounding a single logical volume. -// Version: 1.0 // Created: 1997-06-26 -// Author: John Apostolakis -// mail: John.Apostolakis@cern.ch +// Author: John Apostolakis (John.Apostolakis@cern.ch) // Modified: 1997-06-26 John Apostolakis // -// CVS Id tag: -//////////////////////////////////////////////////////////////////////// +// ******************************************************************** #include "G4LogicalSkinSurface.hh" #include "G4ios.hh" -// #include "G4OpticalSurface.hh" G4LogicalSkinSurfaceTable G4LogicalSkinSurface::theSurfaceTable; -///////////////////////// -// Class Implementation -///////////////////////// - - ///////////////// - // Constructors - ///////////////// +// +// Constructors & destructor +// G4LogicalSkinSurface::G4LogicalSkinSurface(const G4String& name, - G4LogicalVolume* logicalVolume, - G4OpticalSurface* opticalSurface) + G4LogicalVolume* logicalVolume, + G4OpticalSurface* opticalSurface) : G4LogicalSurface(name, opticalSurface), LogVolume(logicalVolume) { // Store in the table of Surfaces + // theSurfaceTable.push_back(this); } -G4LogicalSkinSurface::G4LogicalSkinSurface(const G4LogicalSkinSurface &right) +G4LogicalSkinSurface::G4LogicalSkinSurface(const G4LogicalSkinSurface& right) : G4LogicalSurface(right.GetName(), right.GetOpticalSurface()) { - SetTransitionRadiationSurface(right.GetTransitionRadiationSurface()); - LogVolume = right.LogVolume; - theSurfaceTable = right.theSurfaceTable; + SetTransitionRadiationSurface(right.GetTransitionRadiationSurface()); + LogVolume = right.LogVolume; + theSurfaceTable = right.theSurfaceTable; } -G4LogicalSkinSurface::~G4LogicalSkinSurface(){} +G4LogicalSkinSurface::~G4LogicalSkinSurface() +{ +} - ////////////// - // Operators - ////////////// +// +// Operators +// const G4LogicalSkinSurface& -G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface &right) +G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface& right) { if (&right == this) return *this; if (&right) @@ -94,70 +89,51 @@ G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface &right) } G4int -G4LogicalSkinSurface::operator==(const G4LogicalSkinSurface &right) const +G4LogicalSkinSurface::operator==(const G4LogicalSkinSurface& right) const { - return (this == (G4LogicalSkinSurface *) &right); + return (this == (G4LogicalSkinSurface *) &right); } G4int -G4LogicalSkinSurface::operator!=(const G4LogicalSkinSurface &right) const +G4LogicalSkinSurface::operator!=(const G4LogicalSkinSurface& right) const { - return (this != (G4LogicalSkinSurface *) &right); + return (this != (G4LogicalSkinSurface *) &right); } - //////////// - // Methods - //////////// + +// +// Methods +// size_t G4LogicalSkinSurface::GetNumberOfSkinSurfaces() { - return theSurfaceTable.size(); + return theSurfaceTable.size(); } G4LogicalSkinSurface* G4LogicalSkinSurface::GetSurface(const G4LogicalVolume* vol) { - for (size_t i=0; iGetLogicalVolume() == vol) - return theSurfaceTable[i]; - } - return NULL; + for (size_t i=0; iGetLogicalVolume() == vol) + return theSurfaceTable[i]; + } + return NULL; } +// Dump info for known surfaces +// void G4LogicalSkinSurface::DumpInfo() { - - // Dump info for known surfaces - G4cout << "***** Surface Table : Nb of Surfaces = " << GetNumberOfSkinSurfaces() << " *****" << G4endl; - for (size_t i=0; iGetName() << " : " << G4endl << - " Skin of logical volume " << pSkinSurface->GetLogicalVolume()->GetName () -// << G4endl << -// " Optical Surface Ptr = " << (long)(pSkinSurface->GetOpticalSurface() ) - << G4endl; - -#ifdef PRINT_INFO - // DOES NOT COMPILE without including "G4OpticalSurface.hh" - - // G4cout << pSkinSurface->GetOpticalSurface() << G4endl ; - G4pticalSurface opticalSurface= pSkinSurface->GetOpticalSurface(); - G4cout << - " Surface type = " << opticalSurface->GetType() << G4endl << - " Surface finish = " << opticalSurface->GetFinish() << G4endl << - " Surface model = " << opticalSurface->GetModel() << G4endl; - -/* - operator << ( G4OpticalSurface opticalSurface ) should exist - and do something like: - " Surface type = " << opticalSurface->GetType() << G4endl << - " Surface finish = " << opticalSurface->GetFinish() << G4endl << - " Surface model = " << opticalSurface->GetModel() << G4endl; - */ -#endif - + for (size_t i=0; iGetName() << " : " << G4endl + << " Skin of logical volume " + << pSkinSurface->GetLogicalVolume()->GetName() + << G4endl; } G4cout << G4endl; } diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index fbaff7c4fa..c136ed5d4a 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -21,11 +21,15 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.cc,v 1.5 2002/04/19 08:22:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NavigationHistory.cc,v 1.6 2002/08/06 10:35:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -// G4NavigationHistory Implementation P.Kent August 96 +// G4NavigationHistory Implementation +// +// Author: P.Kent, August 96 +// +// ******************************************************************** #include "G4NavigationHistory.hh" #include "G4ios.hh" @@ -33,7 +37,7 @@ G4NavigationHistory::G4NavigationHistory() : fNavHistory(kHistoryMax), fStackDepth(0) { - Reset(); // Reset depth + Reset(); // Reset depth Clear(); } @@ -44,38 +48,40 @@ G4NavigationHistory::G4NavigationHistory(const G4NavigationHistory &h) G4NavigationHistory::~G4NavigationHistory() { - Reset(); // To delete all but one current entries! + Reset(); // To delete all but one current entries! // delete fNavHistory(0); } G4std::ostream& operator << (G4std::ostream& os, const G4NavigationHistory& nav) { - G4cout << "History depth="<GetName() - << "] Type=["; - switch(nav.GetVolumeType(i)) - { - case kNormal: - os <<"N"; - break; - case kReplica: - os <<"R" << nav.GetReplicaNo(i); - break; - case kParameterised: - os <<"P" << nav.GetReplicaNo(i); - break; - } - os << "]"; - }else{ - os << "Phys = "; + os << "Level=["<GetName() + << "] Type=["; + switch(nav.GetVolumeType(i)) + { + case kNormal: + os << "N"; + break; + case kReplica: + os << "R" << nav.GetReplicaNo(i); + break; + case kParameterised: + os << "P" << nav.GetReplicaNo(i); + break; } - os << G4endl; + os << "]"; + } + else + { + os << "Phys = "; + } + os << G4endl; } return os; } - diff --git a/source/geometry/volumes/src/G4Navigator.cc b/source/geometry/volumes/src/G4Navigator.cc index 8f6ed5e3c9..4fe6140b2a 100644 --- a/source/geometry/volumes/src/G4Navigator.cc +++ b/source/geometry/volumes/src/G4Navigator.cc @@ -21,10 +21,12 @@ // ******************************************************************** // // -// $Id: G4Navigator.cc,v 1.32 2002/06/12 09:22:02 japost Exp $ +// $Id: G4Navigator.cc,v 1.34 2002/11/04 18:54:06 jacek Exp $ // GEANT4 tag $ Name: $ // -// class G4Navigator Implementation Paul Kent July 95/96 +// class G4Navigator Implementation +// +// Author: Paul Kent, July 95/96 // // ******************************************************************** @@ -124,6 +126,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, } else { + fLastLocatedPointLocal = localPoint; return 0; // Have exited world volume } // A fix for the case where a volume is "entered" at an edge @@ -231,6 +234,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, } else { + fLastLocatedPointLocal = localPoint; return 0; // Have exited world volume } } @@ -267,6 +271,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, } else { + fLastLocatedPointLocal = localPoint; return 0; // Have exited world volume } } @@ -354,8 +359,10 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, // fBlockedPhysicalVolume = 0; fBlockedReplicaNo = -1; + // fEntering should be false -- else blockedVolume is assumed good. - // fEnteredDaughter is used for ExitNormal -- + // fEnteredDaughter is used for ExitNormal + // fEntering = false; fEnteredDaughter = true; } @@ -432,7 +439,7 @@ G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint) break; case kReplica: - G4Exception("ERROR in G4Navigator::LocateGlobalPointWithinVolume()"); + G4Exception("ERROR - G4Navigator::LocateGlobalPointWithinVolume()"); break; } } @@ -688,7 +695,7 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, fBlockedReplicaNo); break; case kReplica: - G4Exception("Logic Error in G4Navigator::ComputeStep()"); + G4Exception("ERROR - G4Navigator::ComputeStep()"); break; } } @@ -937,7 +944,7 @@ G4double G4Navigator::ComputeSafety( const G4ThreeVector &pGlobalpoint, newSafety = fparamNav.ComputeSafety(localPoint,fHistory,pMaxLength); break; case kReplica: - G4Exception("Logic Error in G4Navigator::ComputeSafety()"); + G4Exception("ERROR - G4Navigator::ComputeSafety()"); break; } } diff --git a/source/geometry/volumes/src/G4NormalNavigation.cc b/source/geometry/volumes/src/G4NormalNavigation.cc index 77e00e42a4..cc2d1acf86 100644 --- a/source/geometry/volumes/src/G4NormalNavigation.cc +++ b/source/geometry/volumes/src/G4NormalNavigation.cc @@ -21,191 +21,193 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.cc,v 1.4 2001/07/11 10:00:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NormalNavigation.cc,v 1.5 2002/08/06 10:35:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4NormalNavigation Implementation // +// Author: P.Kent, 1996 +// +// ******************************************************************** #include "G4NormalNavigation.hh" -G4double G4NormalNavigation::ComputeStep(const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double currentProposedStepLength, - G4double &newSafety, - G4NavigationHistory &history, - G4bool &validExitNormal, - G4ThreeVector &exitNormal, - G4bool &exiting, - G4bool &entering, - G4VPhysicalVolume *(*pBlockedPhysical), - G4int &blockedReplicaNo) +// ******************************************************************** +// ComputeStep +// ******************************************************************** +// +G4double +G4NormalNavigation::ComputeStep(const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection, + const G4double currentProposedStepLength, + G4double &newSafety, + G4NavigationHistory &history, + G4bool &validExitNormal, + G4ThreeVector &exitNormal, + G4bool &exiting, + G4bool &entering, + G4VPhysicalVolume *(*pBlockedPhysical), + G4int &blockedReplicaNo) { + G4VPhysicalVolume *motherPhysical, *samplePhysical, *blockedExitedVol=0; + G4LogicalVolume *motherLogical; + G4VSolid *motherSolid; + G4ThreeVector sampleDirection; + G4double ourStep=currentProposedStepLength, motherSafety, ourSafety; + G4int localNoDaughters, sampleNo; - G4VPhysicalVolume *motherPhysical,*samplePhysical,*blockedExitedVol=0; - G4LogicalVolume *motherLogical; - G4VSolid *motherSolid; - G4ThreeVector sampleDirection; - G4double ourStep=currentProposedStepLength,motherSafety,ourSafety; - G4int localNoDaughters,sampleNo; + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherSolid = motherLogical->GetSolid(); - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); + // Compute mother safety + // + motherSafety = motherSolid->DistanceToOut(localPoint); + ourSafety = motherSafety; // Working isotropic safety + + // + // Compute daughter safeties & intersections + // - motherSolid=motherLogical->GetSolid(); + // Exiting normal optimisation + // + if ( exiting&&validExitNormal ) + { + if ( localDirection.dot(exitNormal)>=kMinExitingNormalCosine ) + { + // Block exited daughter volume + // + blockedExitedVol =* pBlockedPhysical; + ourSafety = 0; + } + } + exiting = false; + entering = false; -// -// Compute mother safety -// - motherSafety=motherSolid->DistanceToOut(localPoint); - ourSafety=motherSafety; // Working isotropic safety - -// -// Compute daughter safeties & intersections -// - -// Exiting normal optimisation - if (exiting&&validExitNormal) - { - if (localDirection.dot(exitNormal)>=kMinExitingNormalCosine) - { -// Block exited daughter volume - blockedExitedVol=*pBlockedPhysical; - ourSafety=0; - } - } - - exiting=false; - entering=false; - - localNoDaughters=motherLogical->GetNoDaughters(); - for (sampleNo=localNoDaughters-1;sampleNo>=0;sampleNo--) - { - samplePhysical=motherLogical->GetDaughter(sampleNo); - if (samplePhysical!=blockedExitedVol) - { - samplePhysical->Setup(motherPhysical); - G4AffineTransform sampleTf(samplePhysical->GetRotation(), - samplePhysical->GetTranslation()); - sampleTf.Invert(); - const G4ThreeVector samplePoint=sampleTf.TransformPoint(localPoint); - const G4VSolid *sampleSolid=samplePhysical - ->GetLogicalVolume() - ->GetSolid(); - const G4double sampleSafety=sampleSolid - ->DistanceToIn(samplePoint); - if (sampleSafetyDistanceToIn(samplePoint, - sampleDirection); - if (sampleStep<=ourStep) - { - ourStep=sampleStep; - entering=true; - exiting=false; - *pBlockedPhysical=samplePhysical; - blockedReplicaNo=-1; - } - } - } - } - if (currentProposedStepLengthDistanceToOut(localPoint, - localDirection, - true, - &validExitNormal, - &exitNormal); - if (motherStep<=ourStep) - { - ourStep=motherStep; - exiting=true; - entering=false; - if (validExitNormal) - { - const G4RotationMatrix *rot=motherPhysical->GetRotation(); - if (rot) - { - exitNormal*=rot->inverse(); - } - } - } - else - { - validExitNormal=false; - } - } - } - newSafety=ourSafety; - return ourStep; + localNoDaughters = motherLogical->GetNoDaughters(); + for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo--) + { + samplePhysical = motherLogical->GetDaughter(sampleNo); + if ( samplePhysical!=blockedExitedVol ) + { + samplePhysical->Setup(motherPhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), + samplePhysical->GetTranslation()); + sampleTf.Invert(); + const G4ThreeVector samplePoint = + sampleTf.TransformPoint(localPoint); + const G4VSolid *sampleSolid = + samplePhysical->GetLogicalVolume()->GetSolid(); + const G4double sampleSafety = + sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafetyDistanceToIn(samplePoint,sampleDirection); + if ( sampleStep<=ourStep ) + { + ourStep = sampleStep; + entering = true; + exiting = false; + *pBlockedPhysical = samplePhysical; + blockedReplicaNo = -1; + } + } + } + } + if ( currentProposedStepLengthDistanceToOut(localPoint, + localDirection, + true, + &validExitNormal, + &exitNormal); + if ( motherStep<=ourStep ) + { + ourStep = motherStep; + exiting = true; + entering = false; + if ( validExitNormal ) + { + const G4RotationMatrix *rot = motherPhysical->GetRotation(); + if (rot) + { + exitNormal *= rot->inverse(); + } + } + } + else + { + validExitNormal = false; + } + } + } + newSafety = ourSafety; + return ourStep; } +// ******************************************************************** +// ComputeSafety +// ******************************************************************** +// G4double G4NormalNavigation::ComputeSafety(const G4ThreeVector &localPoint, - const G4NavigationHistory &history, - const G4double) + const G4NavigationHistory &history, + const G4double) { - G4VPhysicalVolume *motherPhysical,*samplePhysical; - G4LogicalVolume *motherLogical; - G4VSolid *motherSolid; - G4double motherSafety,ourSafety; - G4int localNoDaughters,sampleNo; + G4VPhysicalVolume *motherPhysical, *samplePhysical; + G4LogicalVolume *motherLogical; + G4VSolid *motherSolid; + G4double motherSafety, ourSafety; + G4int localNoDaughters, sampleNo; - motherPhysical=history.GetTopVolume(); - motherLogical=motherPhysical->GetLogicalVolume(); - motherSolid=motherLogical->GetSolid(); + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherSolid = motherLogical->GetSolid(); - // - // Compute mother safety - // - motherSafety=motherSolid->DistanceToOut(localPoint); - ourSafety=motherSafety; // Working isotropic safety + // Compute mother safety + // + motherSafety = motherSolid->DistanceToOut(localPoint); + ourSafety = motherSafety; // Working isotropic safety - // - // Compute daughter safeties - // - localNoDaughters=motherLogical->GetNoDaughters(); - for (sampleNo=localNoDaughters-1;sampleNo>=0;sampleNo--) - { - samplePhysical=motherLogical->GetDaughter(sampleNo); - - samplePhysical->Setup(motherPhysical); - G4AffineTransform sampleTf(samplePhysical->GetRotation(), - samplePhysical->GetTranslation()); - sampleTf.Invert(); - const G4ThreeVector samplePoint=sampleTf.TransformPoint(localPoint); - const G4VSolid *sampleSolid=samplePhysical - ->GetLogicalVolume() - ->GetSolid(); - const G4double sampleSafety=sampleSolid - ->DistanceToIn(samplePoint); - if (sampleSafetyGetNoDaughters(); + for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + samplePhysical = motherLogical->GetDaughter(sampleNo); + samplePhysical->Setup(motherPhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), + samplePhysical->GetTranslation()); + sampleTf.Invert(); + const G4ThreeVector samplePoint = + sampleTf.TransformPoint(localPoint); + const G4VSolid *sampleSolid = + samplePhysical->GetLogicalVolume()->GetSolid(); + const G4double sampleSafety = + sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafetyfChordFinder = new G4ChordFinder( (G4MagneticField*)0, 1e-6 ); - - fActionThreshold_NoZeroSteps= 2; - fSevereActionThreshold_NoZeroSteps= 10; - fAbandonThreshold_NoZeroSteps= 50; - // fMidPoint_CurveLen_of_LastAttempt= -1; - fFull_CurveLen_of_LastAttempt= -1; - fLast_ProposedStepLength= -1; - - fLargestAcceptableStep= 1000.0 * meter; + fEpsilonMin = fEpsilonMinDefault; + fEpsilonMax = fEpsilonMaxDefault; + fEpsilonStep = fEpsilonMaxDefault; + fActionThreshold_NoZeroSteps = 2; + fSevereActionThreshold_NoZeroSteps = 10; + fAbandonThreshold_NoZeroSteps = 50; + fFull_CurveLen_of_LastAttempt = -1; + fLast_ProposedStepLength = -1; + fLargestAcceptableStep = 1000.0 * meter; } G4PropagatorInField::~G4PropagatorInField() @@ -90,342 +81,346 @@ G4PropagatorInField::~G4PropagatorInField() // // Compute the next geometric Step - -G4double G4PropagatorInField:: - ComputeStep( G4FieldTrack& pFieldTrack, - G4double CurrentProposedStepLength, - G4double& currentSafety, // IN/OUT - G4VPhysicalVolume* pPhysVol) +G4double +G4PropagatorInField::ComputeStep( + G4FieldTrack& pFieldTrack, + G4double CurrentProposedStepLength, + G4double& currentSafety, // IN/OUT + G4VPhysicalVolume* pPhysVol) { + // Introducing smooth trajectory display (jacek 01/11/2002) + if (fpTrajectoryFilter) { + fpTrajectoryFilter->CreateNewTrajectorySegment(); + } + // Parameters for adaptive Runge-Kutta integration G4double h_TrialStepSize; // 1st Step Size - G4double TruePathLength= CurrentProposedStepLength; - G4double StepTaken= 0.0; + G4double TruePathLength = CurrentProposedStepLength; + G4double StepTaken = 0.0; G4double s_length_taken, epsilon ; G4bool intersects; - G4bool first_substep= true; + G4bool first_substep = true; - G4double NewSafety; - fParticleIsLooping= false; + G4double NewSafety; + fParticleIsLooping = false; // Set the field manager if the volume has one, else use the global one - fCurrentFieldMgr = fDetectorFieldMgr; - if( pPhysVol) { - G4FieldManager *newFieldMgr=0; - newFieldMgr= pPhysVol->GetLogicalVolume()->GetFieldManager(); - if ( newFieldMgr ) - fCurrentFieldMgr = newFieldMgr; - } - - G4FieldTrack CurrentState(pFieldTrack); - - G4FieldTrack OriginalState= CurrentState; - - // If the Step length is "infinite", then an approximate-maximum Step lenght - // (used to calculate the relative accuracy) must be guessed. // - + fCurrentFieldMgr = fDetectorFieldMgr; + if( pPhysVol) + { + G4FieldManager *newFieldMgr = 0; + newFieldMgr= pPhysVol->GetLogicalVolume()->GetFieldManager(); + if ( newFieldMgr ) + fCurrentFieldMgr = newFieldMgr; + } + GetChordFinder()->SetChargeMomentumMass(fCharge, fInitialMomentumModulus, fMass); + + G4FieldTrack CurrentState(pFieldTrack); + G4FieldTrack OriginalState = CurrentState; + + // If the Step length is "infinite", then an approximate-maximum Step + // length (used to calculate the relative accuracy) must be guessed. + // if( CurrentProposedStepLength >= fLargestAcceptableStep ) { - G4ThreeVector StartPointA, VelocityUnit; - StartPointA = pFieldTrack.GetPosition(); - VelocityUnit= pFieldTrack.GetMomentumDir(); + G4ThreeVector StartPointA, VelocityUnit; + StartPointA = pFieldTrack.GetPosition(); + VelocityUnit = pFieldTrack.GetMomentumDir(); - G4double trialProposedStep= 1.e2 * ( 10.0 * cm + - fNavigator->GetWorldVolume()->GetLogicalVolume()-> - GetSolid()->DistanceToOut(StartPointA, VelocityUnit) ) ; - CurrentProposedStepLength= G4std::min( trialProposedStep, fLargestAcceptableStep); + G4double trialProposedStep = 1.e2 * ( 10.0 * cm + + fNavigator->GetWorldVolume()->GetLogicalVolume()-> + GetSolid()->DistanceToOut(StartPointA, VelocityUnit) ); + CurrentProposedStepLength= G4std::min( trialProposedStep, + fLargestAcceptableStep ); } - epsilon = GetDeltaOneStep() / CurrentProposedStepLength ; - - if( epsilon < fEpsilonMin ) epsilon = fEpsilonMin ; - if( epsilon > fEpsilonMax ) epsilon = fEpsilonMax ; - - this->SetEpsilonStep( epsilon ); + epsilon = GetDeltaOneStep() / CurrentProposedStepLength; + if( epsilon < fEpsilonMin ) epsilon = fEpsilonMin; + if( epsilon > fEpsilonMax ) epsilon = fEpsilonMax; + SetEpsilonStep( epsilon ); // Shorten the proposed step in case of earlier problems (zero steps) // - if( fNoZeroStep > fActionThreshold_NoZeroSteps ) { - G4double stepTrial; // = fMidPoint_CurveLen_of_LastAttempt; + if( fNoZeroStep > fActionThreshold_NoZeroSteps ) + { + G4double stepTrial; - stepTrial= fFull_CurveLen_of_LastAttempt; - if( (stepTrial <= 0.0) && (fLast_ProposedStepLength>0.0) ) - stepTrial= fLast_ProposedStepLength; + stepTrial= fFull_CurveLen_of_LastAttempt; + if( (stepTrial <= 0.0) && (fLast_ProposedStepLength > 0.0) ) + stepTrial= fLast_ProposedStepLength; - G4double decreaseFactor=0.9; // Unused default - // G4double thisTolerance= kCarTolerance; - if( (fNoZeroStep < fSevereActionThreshold_NoZeroSteps) - && (stepTrial > 1000.0*kCarTolerance) ){ - // Ensure quicker convergence. - decreaseFactor= 0.1; - } else { - // We are in significant difficulties, probably at a boundary - // that is either geometrically sharp - // or between very different materials. - // - // Careful decreases to cope with tolerance are required. - if(stepTrial > 1000.0*kCarTolerance) - decreaseFactor= 0.25; // Try slow decreases - else if(stepTrial > 100.0*kCarTolerance) - decreaseFactor= 0.5; // Try slower decreases - else if(stepTrial > 10.0*kCarTolerance) - decreaseFactor= 0.75; // Try even slower decreases - else - decreaseFactor= 0.9; // Try very slow decreases + G4double decreaseFactor = 0.9; // Unused default + if( (fNoZeroStep < fSevereActionThreshold_NoZeroSteps) + && (stepTrial > 1000.0*kCarTolerance) ) + { + // Ensure quicker convergence + // + decreaseFactor= 0.1; + } + else + { + // We are in significant difficulties, probably at a boundary that + // is either geometrically sharp or between very different materials. + // Careful decreases to cope with tolerance are required. + // + if( stepTrial > 1000.0*kCarTolerance ) + decreaseFactor = 0.25; // Try slow decreases + else if( stepTrial > 100.0*kCarTolerance ) + decreaseFactor= 0.5; // Try slower decreases + else if( stepTrial > 10.0*kCarTolerance ) + decreaseFactor= 0.75; // Try even slower decreases + else + decreaseFactor= 0.9; // Try very slow decreases } stepTrial *= decreaseFactor; #ifdef G4DEBUG_FIELD PrintStepLengthDiagnostic(CurrentProposedStepLength, decreaseFactor, - stepTrial, pFieldTrack); + stepTrial, pFieldTrack); #endif - if( (stepTrial == 0.0) ) { - // || ( fNoZeroStep > fAbandonThresholdNo_ZeroSteps ) ) { - G4cout << " G4PropagatorInField::ComputeStep " + if( stepTrial == 0.0 ) + { + G4cout << " G4PropagatorInField::ComputeStep " << " Particle abandoned due to lack of progress in field." - << G4endl + << G4endl << " Properties : " << pFieldTrack << " " << G4endl; - G4cerr << " G4PropagatorInField::ComputeStep " + G4cerr << " G4PropagatorInField::ComputeStep " << " ERROR : attempting a zero step= " << stepTrial << G4endl - << " while attempting to progress after " << fNoZeroStep + << " while attempting to progress after " << fNoZeroStep << " trial steps. Will abandon step." << G4endl; - // G4Exception("G4PropagatorInField::ComputeStep No progress - Looping with zero steps"); fParticleIsLooping= true; return 0; // = stepTrial; } - - if( stepTrial < CurrentProposedStepLength) - CurrentProposedStepLength = stepTrial; + if( stepTrial < CurrentProposedStepLength ) + CurrentProposedStepLength = stepTrial; } - fLast_ProposedStepLength= CurrentProposedStepLength; + fLast_ProposedStepLength = CurrentProposedStepLength; - G4int do_loop_count=0; + G4int do_loop_count = 0; do { - G4FieldTrack SubStepStartState= CurrentState; - G4ThreeVector SubStartPoint= CurrentState.GetPosition(); - // WAS = G4Navigator::Locate... + G4FieldTrack SubStepStartState = CurrentState; + G4ThreeVector SubStartPoint = CurrentState.GetPosition(); + // WAS = G4Navigator::Locate... - if( !first_substep) - { - fNavigator->LocateGlobalPointWithinVolume( SubStartPoint ); - } + if( !first_substep) + { + fNavigator->LocateGlobalPointWithinVolume( SubStartPoint ); + } - // First figure out how far to evolve the particle ! - // ------------------------------------------------- - // and (later) with what accuracy to calculate this path. - // - h_TrialStepSize= CurrentProposedStepLength - StepTaken ; + // First figure out how far to evolve the particle ! + // ------------------------------------------------- + // and (later) with what accuracy to calculate this path. + // + h_TrialStepSize = CurrentProposedStepLength - StepTaken; - // Next evolve it as far as this allows. - // --------------------------------------- - // - // B <- Integrator - limited by the "chord miss" rule. - // + // Next evolve it as far as this allows. + // --------------------------------------- + // + // B <- Integrator - limited by the "chord miss" rule. + // + s_length_taken = GetChordFinder()->AdvanceChordLimited( + CurrentState, // Position & velocity + h_TrialStepSize, + fEpsilonStep); - s_length_taken= GetChordFinder()->AdvanceChordLimited( - CurrentState, // Position & velocity - h_TrialStepSize, - GetEpsilonStep() ); + fFull_CurveLen_of_LastAttempt = s_length_taken; - fFull_CurveLen_of_LastAttempt= s_length_taken; - // On Exit: - // CurrentState is updated with the final position and velocity. + // On Exit: + // CurrentState is updated with the final position and velocity. + // + G4ThreeVector EndPointB = CurrentState.GetPosition(); - G4ThreeVector EndPointB= CurrentState.GetPosition(); - - // Calculate the direction and length of the chord AB + // Calculate the direction and length of the chord AB - G4ThreeVector ChordAB_Vector= EndPointB - SubStartPoint; - G4double ChordAB_Length= ChordAB_Vector.mag(); // Magnitude (norm) - G4ThreeVector ChordAB_Dir= ChordAB_Vector.unit(); + G4ThreeVector ChordAB_Vector = EndPointB - SubStartPoint; + G4double ChordAB_Length = ChordAB_Vector.mag(); // Magnitude (norm) + G4ThreeVector ChordAB_Dir = ChordAB_Vector.unit(); - // Check whether any volumes are encountered by the chord AB + // Check whether any volumes are encountered by the chord AB - G4double LinearStepLength = - fNavigator->ComputeStep( SubStartPoint, ChordAB_Dir, - ChordAB_Length, NewSafety); - if( first_substep ) - { - currentSafety= NewSafety; - } - // It might also be possible to update safety in other steps, but - // it must be Done with care. J.Apostolakis August 5th, 1997 + G4double LinearStepLength = + fNavigator->ComputeStep( SubStartPoint, ChordAB_Dir, + ChordAB_Length, NewSafety ); + if( first_substep ) + { + currentSafety = NewSafety; + } + // It might also be possible to update safety in other steps, but + // it must be done with care. J.Apostolakis August 5th, 1997 - intersects= (LinearStepLength <= ChordAB_Length); - // G4Navigator contracts to return k_infinity if len==asked - // and it did not find a surface boundary at that length - LinearStepLength = G4std::min( LinearStepLength, ChordAB_Length); + intersects = (LinearStepLength <= ChordAB_Length); + // G4Navigator contracts to return k_infinity if len==asked + // and it did not find a surface boundary at that length + LinearStepLength = G4std::min( LinearStepLength, ChordAB_Length); - if( intersects ) - { - // E <- Intersection Point of chord AB and either volume A's surface - // or a daughter volume's surface .. + if( intersects ) + { + // E <- Intersection Point of chord AB and either volume A's surface + // or a daughter volume's surface .. - G4ThreeVector pointE= SubStartPoint + LinearStepLength * ChordAB_Dir; + G4ThreeVector pointE = SubStartPoint + LinearStepLength * ChordAB_Dir; - G4FieldTrack IntersectPointVelct_G(CurrentState); // FT-Def-Construct + G4FieldTrack IntersectPointVelct_G(CurrentState); // FT-Def-Construct - // Find the intersection point of AB true path with the surface - // of vol(A) given our current "estimate" point E. - - G4bool found_intersection= - LocateIntersectionPoint( SubStepStartState, CurrentState, - pointE, IntersectPointVelct_G ); - - if( found_intersection ) - { - // G is our EndPoint ... - End_PointAndTangent= IntersectPointVelct_G; - StepTaken = - TruePathLength= IntersectPointVelct_G.GetCurveLength() - - OriginalState.GetCurveLength(); // which is Zero now. + // Find the intersection point of AB true path with the surface + // of vol(A) given our current "estimate" point E. + + G4bool found_intersection = + LocateIntersectionPoint( SubStepStartState, CurrentState, + pointE, IntersectPointVelct_G ); + if( found_intersection ) + { + End_PointAndTangent= IntersectPointVelct_G; // G is our EndPoint ... + StepTaken = TruePathLength = IntersectPointVelct_G.GetCurveLength() + - OriginalState.GetCurveLength(); + // which is Zero now. #ifdef G4DEBUG_FIELD - if( Verbose() > 0 ) - G4cout << " Found intersection after Step of length " << - StepTaken << G4endl; + if( Verbose() > 0 ) + G4cout << " Found intersection after Step of length " + << StepTaken << G4endl; #endif - } - else - { - // "Minor" chords do not intersect - intersects= false; - } - } - if( ! intersects ) - { - StepTaken += s_length_taken; - } - first_substep= false; + } + else + { + intersects= false; // "Minor" chords do not intersect + } + } + if( !intersects ) + { + StepTaken += s_length_taken; + // Introducing smooth trajectory display (jacek 01/11/2002) + // The filter pointer holds a valid filter if and only if + // intermediate points should be stored. + if (fpTrajectoryFilter) { + fpTrajectoryFilter->TakeIntermediatePoint(CurrentState.GetPosition()); + } + } + first_substep = false; #ifdef G4DEBUG_FIELD - // if( fNoZeroStep ) - if( fNoZeroStep > fActionThreshold_NoZeroSteps ) - { - // if( Verbose() > 0 ) - //if(do_loop_count==0) - // G4cout << "G4PiF: End of Step " << do_loop_count; - printStatus( SubStepStartState, // or OriginalState, - CurrentState, - CurrentProposedStepLength, - NewSafety, - do_loop_count, - pPhysVol); - // G4cout << " Step accepted taken =" << StepTaken << G4endl; - } + if( fNoZeroStep > fActionThreshold_NoZeroSteps ) + { + printStatus( SubStepStartState, // or OriginalState, + CurrentState, + CurrentProposedStepLength, + NewSafety, + do_loop_count, + pPhysVol ); + } #endif - do_loop_count++; - } - while( (!intersects ) && (StepTaken + kCarTolerance < CurrentProposedStepLength) - && ( do_loop_count < GetMaxLoopCount() ) ); + do_loop_count++; - if( do_loop_count >= GetMaxLoopCount() ){ - G4cout << "G4PropagateInField: Warning: Particle is looping - " - << " tracking in field will be stopped. " << G4endl; -#ifdef G4VERBOSE - G4cout << " It has performed " << do_loop_count << " steps in Field " - << " while a maximum of " << GetMaxLoopCount() << " are allowed. " - << G4endl; -#endif - G4cerr << "G4PropagateInField: Warning: Looping particle. " << G4endl; - //G4cerr << " In future this will be treated better/quicker. " << G4endl; - fParticleIsLooping= true; - } + } while( (!intersects ) + && (StepTaken + kCarTolerance < CurrentProposedStepLength) + && ( do_loop_count < GetMaxLoopCount() ) ); - if( ! intersects ) + if( do_loop_count >= GetMaxLoopCount() ) { - // Chord AB or "minor chords" do not intersect + G4cout << "G4PropagateInField: Warning: Particle is looping - " + << " tracking in field will be stopped. " << G4endl; +#ifdef G4VERBOSE + G4cout << " It has performed " << do_loop_count << " steps in Field " + << " while a maximum of " << GetMaxLoopCount() << " are allowed. " + << G4endl; +#endif + G4cerr << "G4PropagateInField: Warning: Looping particle. " << G4endl; + fParticleIsLooping = true; + } - // B is the endpoint Step of the current Step. - // [ But if we were angle limited we could use B - // as a new starting point ? ] - - // On return we specify the endpoint, point B - End_PointAndTangent= CurrentState; - // LinearStepLength= ChordAB_Length; - TruePathLength= StepTaken; - - } // end if(!intersects) + if( !intersects ) + { + // Chord AB or "minor chords" do not intersect + // B is the endpoint Step of the current Step. + // [ But if we were angle limited we could use B + // as a new starting point ? ] + // On return we specify the endpoint, point B + // + End_PointAndTangent = CurrentState; + TruePathLength = StepTaken; + } // Set pFieldTrack to the return value - pFieldTrack =End_PointAndTangent; + // + pFieldTrack = End_PointAndTangent; #ifdef G4VERBOSE - // Check that "s" is correct + // Check that "s" is correct + // if( fabs(OriginalState.GetCurveLength() + TruePathLength - - End_PointAndTangent.GetCurveLength()) > 3.e-4 * TruePathLength ) + - End_PointAndTangent.GetCurveLength()) > 3.e-4 * TruePathLength ) { - G4cerr << " Error in G4PropagatorInField: Curve lenght mis-match, is advancement wrong ? "; - G4cerr << " The curve length of the endpoint should be " - << OriginalState.GetCurveLength() + TruePathLength - << " and is " << End_PointAndTangent.GetCurveLength() - << " a difference of " - << OriginalState.GetCurveLength() + TruePathLength + G4cerr << " ERROR - G4PropagatorInField::ComputeStep():" << G4endl + << " Curve length mis-match, is advancement wrong ? " << G4endl; + G4cerr << " The curve length of the endpoint should be: " + << OriginalState.GetCurveLength() + TruePathLength << G4endl + << " and it is instead: " + << End_PointAndTangent.GetCurveLength() << "." << G4endl + << " A difference of: " + << OriginalState.GetCurveLength() + TruePathLength - End_PointAndTangent.GetCurveLength() << G4endl; } #endif #ifdef G4DEBUG_FIELD - if( fNoZeroStep ){ - G4cout << " PiF: Step returning=" << StepTaken << G4endl; - G4cout << " ------------------------------------------------------- " - << G4endl; + if( fNoZeroStep ) + { + G4cout << " PiF: Step returning= " << StepTaken << G4endl; + G4cout << " ------------------------------------------------------- " + << G4endl; } #endif // In particular anomalous cases, we can get repeated zero steps - // In order to correct this efficiently, we identify these cases - // and only take corrective action when they occur. + // In order to correct this efficiently, we identify these cases + // and only take corrective action when they occur. // if( TruePathLength < 0.5*kCarTolerance ) fNoZeroStep++; else - fNoZeroStep= 0; + fNoZeroStep = 0; if( fNoZeroStep > fAbandonThreshold_NoZeroSteps ) { #ifdef G4VERBOSE - G4cout << " G4PropagatorInField::ComputeStep : Warning :" - << " no progress after " << fNoZeroStep << " trial steps. " - << G4endl; - G4cout << " Particle will be killed." << G4endl ; + G4cout << " WARNING - G4PropagatorInField::ComputeStep():" << G4endl + << " No progress after " << fNoZeroStep << " trial steps. " + << G4endl; + G4cout << " Particle will be killed." << G4endl; #else - G4cout << " G4PropagatorInField: Particle that is stuck will be killed." << G4endl; + G4cout << " WARNING - G4PropagatorInField::ComputeStep():" << G4endl + << " Particle that is stuck will be killed." << G4endl; #endif - fParticleIsLooping= true; - } - + fNoZeroStep = 0; + fParticleIsLooping = true; + } return TruePathLength; - } // -------------------------------------------------------------------------- // G4bool // G4PropagatorInField::LocateIntersectionPoint( -// const G4FieldTrack& CurveStartPointVelocity, // A -// const G4FieldTrack& CurveEndPointVelocity, // B -// const G4ThreeVector& TrialPoint, // E -// G4FieldTrack& IntersectPointVelocity) // Output +// const G4FieldTrack& CurveStartPointVelocity, // A +// const G4FieldTrack& CurveEndPointVelocity, // B +// const G4ThreeVector& TrialPoint, // E +// G4FieldTrack& IntersectPointVelocity) // Output // -------------------------------------------------------------------------- // -// Function that returns the intersection of the true path with the surface -// of the current volume (either the external one or the inner one with one -// of the daughters +// Function that returns the intersection of the true path with the surface +// of the current volume (either the external one or the inner one with one +// of the daughters // // A = Initial point // B = another point // -// Both A and B are assumed to be on the true path. +// Both A and B are assumed to be on the true path. // // E is the first point of intersection of the chord AB with -// a volume other than A (on the surface of A or of a daughter) +// a volume other than A (on the surface of A or of a daughter) // -// First Version: October 16th, 1996 John Apostolakis, CERN CN/ASD -// Modified: January 22nd, 1997 J.A. IT/ASD -// -// Convention of Use : +// Convention of Use : // i) If it returns "true", then IntersectionPointVelocity is set // to the approximate intersection point. // ii) If it returns "false", no intersection was found and @@ -434,325 +429,347 @@ G4double G4PropagatorInField:: G4bool G4PropagatorInField::LocateIntersectionPoint( - const G4FieldTrack& CurveStartPointVelocity, // A - const G4FieldTrack& CurveEndPointVelocity, // B - const G4ThreeVector& TrialPoint, // E - G4FieldTrack& IntersectPointVelocity) // Output + const G4FieldTrack& CurveStartPointVelocity, // A + const G4FieldTrack& CurveEndPointVelocity, // B + const G4ThreeVector& TrialPoint, // E + G4FieldTrack& IntersectPointVelocity) // Output { // Find Intersection Point ( A, B, E ) of true path AB - start at E. G4bool found_approximate_intersection = false; G4bool there_is_no_intersection = false; - G4FieldTrack CurrentA_PointVelocity= CurveStartPointVelocity; - G4FieldTrack CurrentB_PointVelocity= CurveEndPointVelocity; - G4ThreeVector CurrentE_Point= TrialPoint; + G4FieldTrack CurrentA_PointVelocity = CurveStartPointVelocity; + G4FieldTrack CurrentB_PointVelocity = CurveEndPointVelocity; + G4ThreeVector CurrentE_Point = TrialPoint; G4FieldTrack ApproxIntersecPointV(CurveEndPointVelocity); // FT-Def-Construct G4double NewSafety; - G4bool first_step= true; - G4int substep_no= 0; + G4bool first_step = true; + G4int substep_no = 0; - do{ // REPEAT + do{ // REPEAT - G4ThreeVector Point_A= CurrentA_PointVelocity.GetPosition(); - G4ThreeVector Point_B= CurrentB_PointVelocity.GetPosition(); + G4ThreeVector Point_A = CurrentA_PointVelocity.GetPosition(); + G4ThreeVector Point_B = CurrentB_PointVelocity.GetPosition(); // F = a point on true AB path close to point E (the closest if possible) // - ApproxIntersecPointV= GetChordFinder()->ApproxCurvePointV( - CurrentA_PointVelocity, - CurrentB_PointVelocity, - CurrentE_Point, - this->GetEpsilonStep() ); + ApproxIntersecPointV = + GetChordFinder()->ApproxCurvePointV( CurrentA_PointVelocity, + CurrentB_PointVelocity, + CurrentE_Point, + fEpsilonStep ); // The above function is the most difficult part ... // G4ThreeVector CurrentF_Point= ApproxIntersecPointV.GetPosition(); - // fMidPoint_CurveLen_of_LastAttempt = - // ApproxIntersecPointV. GetCurveLength() - - // CurrentA_PointVelocity.GetCurveLength(); // First check whether EF is small - then F is a good approx. point - // // Calculate the length and direction of the chord AF - - // ChordEF_Vector= Chord_Vector(CurrentE_Point, CurrentF_Point); - // ------------ + // G4ThreeVector ChordEF_Vector = CurrentF_Point - CurrentE_Point; - if ( ChordEF_Vector.mag2() <= sqr(GetDeltaIntersection()) ){ + if ( ChordEF_Vector.mag2() <= sqr(GetDeltaIntersection()) ) + { + found_approximate_intersection = true; - found_approximate_intersection = true; + // Create the "point" return value + // + IntersectPointVelocity = ApproxIntersecPointV; + IntersectPointVelocity.SetPosition( CurrentE_Point ); - // Create the "point" return value - // IntersectPointVelocity.SetCurvePnt( - // CurrentE_Point, - // ApproxIntersecPointV.GetVelocity(), - // ApproxIntersecPointV.GetCurveLength() ); - IntersectPointVelocity = ApproxIntersecPointV; - IntersectPointVelocity.SetPosition( CurrentE_Point ); + // Note: in order to return a point on the boundary, + // we must return E. But it is F on the curve. + // So we must "cheat": we are using the position at point E + // and the velocity at point F !!! + // + // This must limit the length we can allow for displacement! - // Note: in order to return a point on the boundary, - // we must return E. But it is F on the curve. - // So we must "cheat": we are using the position at point E and - // the velocity at point F !!! - // - // This must limit the length we can allow for displacement! - - }else{ // E is NOT close enough to the curve (ie point F). - - // Check whether any volumes are encountered by the chord AF - //---------------------------------------------------------- - - // First restore any Voxel etc information in the Navigator - // before calling ComputeStep -- not just if( !first_step) + } + else // E is NOT close enough to the curve (ie point F) + { + // Check whether any volumes are encountered by the chord AF + // --------------------------------------------------------- + // First restore any Voxel etc information in the Navigator + // before calling ComputeStep -- not just if (!first_step) - fNavigator->LocateGlobalPointWithinVolume( Point_A ); - // This locate is needed in all cases except for the - // original point A, because - presumably - that was - // called at the start of the physical Step + fNavigator->LocateGlobalPointWithinVolume( Point_A ); + // This locate is needed in all cases except for the + // original point A, because - presumably - that was + // called at the start of the physical Step - first_step= false; + first_step = false; - // Calculate the length and direction of the chord AF - G4ThreeVector ChordAF_Vector= CurrentF_Point - Point_A; - G4double ChordAF_Length= ChordAF_Vector.mag(); - G4ThreeVector ChordAF_Dir= ChordAF_Vector.unit(); + // Calculate the length and direction of the chord AF + // + G4ThreeVector ChordAF_Vector = CurrentF_Point - Point_A; + G4double ChordAF_Length = ChordAF_Vector.mag(); + G4ThreeVector ChordAF_Dir = ChordAF_Vector.unit(); - G4double stepLength = - fNavigator->ComputeStep( Point_A, ChordAF_Dir, - ChordAF_Length, NewSafety); + G4double stepLength = fNavigator->ComputeStep( Point_A, ChordAF_Dir, + ChordAF_Length, NewSafety); - G4bool Intersects_AF = (stepLength <= ChordAF_Length); - stepLength = G4std::min(stepLength, ChordAF_Length); - if( Intersects_AF ){ - // There is an intersection of AF with a volume boundary - - // G <- First Intersection of Chord AF - // - G4ThreeVector PointG= Point_A + stepLength * ChordAF_Dir; + G4bool Intersects_AF = (stepLength <= ChordAF_Length); + stepLength = G4std::min(stepLength, ChordAF_Length); + if( Intersects_AF ) + { + // There is an intersection of AF with a volume boundary + // G <- First Intersection of Chord AF + // + G4ThreeVector PointG = Point_A + stepLength * ChordAF_Dir; - // G is our new Candidate for the intersection point. - // It replaces "E" and we will repeat the test to see if - // it is a good enough approximate point for us. - // B <- F - // E <- G - CurrentB_PointVelocity= ApproxIntersecPointV; - CurrentE_Point= PointG; + // G is our new Candidate for the intersection point. + // It replaces "E" and we will repeat the test to see if + // it is a good enough approximate point for us. + // B <- F + // E <- G + // + CurrentB_PointVelocity = ApproxIntersecPointV; + CurrentE_Point = PointG; + } + else // not Intersects_AF + { + // In this case: + // There is NO intersection of AF with a volume boundary. + // We must continue the search in the segment FB! - // Else (not Intersects_AF) - }else{ - // In this case: - // There is NO intersection of AF with a volume boundary. - // We must continue the search in the segment FB! + // Check whether any volumes are encountered by the chord FB + // --------------------------------------------------------- + // Calculate the length and direction of the chord AF + // + G4ThreeVector ChordFB_Vector = Point_B - CurrentF_Point; + G4double ChordFB_Length = ChordFB_Vector.mag(); + G4ThreeVector ChordFB_Dir = ChordFB_Vector.unit(); - // Check whether any volumes are encountered by the chord FB - //---------------------------------------------------------- - // Calculate the length and direction of the chord AF - G4ThreeVector ChordFB_Vector= Point_B - CurrentF_Point; - G4double ChordFB_Length= ChordFB_Vector.mag(); - G4ThreeVector ChordFB_Dir= ChordFB_Vector.unit(); + fNavigator->LocateGlobalPointWithinVolume( CurrentF_Point ); + G4double stepLength = + fNavigator->ComputeStep( CurrentF_Point, ChordFB_Dir, + ChordFB_Length, NewSafety); - fNavigator->LocateGlobalPointWithinVolume( CurrentF_Point ); - G4double stepLength = - fNavigator->ComputeStep( CurrentF_Point, ChordFB_Dir, - ChordFB_Length, NewSafety); + G4bool Intersects_FB = stepLength <= ChordFB_Length; + stepLength = G4std::min(stepLength, ChordFB_Length); - G4bool Intersects_FB = stepLength <= ChordFB_Length; - stepLength = G4std::min(stepLength, ChordFB_Length); - if( Intersects_FB ) { - // There is an intersection of FB with a volume boundary - // H <- First Intersection of Chord FB - // - G4ThreeVector PointH= CurrentF_Point + stepLength * ChordFB_Dir; + if( Intersects_FB ) + { + // There is an intersection of FB with a volume boundary + // H <- First Intersection of Chord FB + // + G4ThreeVector PointH = CurrentF_Point + stepLength * ChordFB_Dir; - // H is our new Candidate for the intersection point. - // It replaces "E" and we will repeat the test to see if - // it is a good enough approximate point for us. + // H is our new Candidate for the intersection point. + // It replaces "E" and we will repeat the test to see if + // it is a good enough approximate point for us. - // Note that F must be in volume volA (the same as A) - // (otherwise AF would meet a volume boundary!) - // A <- F - // E <- H - CurrentA_PointVelocity= ApproxIntersecPointV; - CurrentE_Point= PointH; - - }else{ // (not Intersects_FB) - // - // There is NO intersection of FB with a volume boundary - // This means that somehow a volume intersected the original - // chord but misses the chord (or series of chords) - // we have used. - // - there_is_no_intersection= true; - // - // the value of IntersectPointVelocity returned is not valid - - } // Endif (Intersects_FB) + // Note that F must be in volume volA (the same as A) + // (otherwise AF would meet a volume boundary!) + // A <- F + // E <- H + CurrentA_PointVelocity = ApproxIntersecPointV; + CurrentE_Point = PointH; + } + else // not Intersects_FB + { + // There is NO intersection of FB with a volume boundary + // This means that somehow a volume intersected the original + // chord but misses the chord (or series of chords) + // we have used. + // The value of IntersectPointVelocity returned is not valid + // + there_is_no_intersection = true; + } // Endif (Intersects_FB) } // Endif (Intersects_AF) - // Ensure that the new endpoints are not further apart in space than on the curve - // due to different errors in the integration + // Ensure that the new endpoints are not further apart in space + // than on the curve due to different errors in the integration + // G4double linDistSq, curveDist; - linDistSq= ( CurrentB_PointVelocity.GetPosition() - - CurrentA_PointVelocity.GetPosition() ).mag2(); - curveDist= CurrentB_PointVelocity.GetCurveLength() - - CurrentA_PointVelocity.GetCurveLength(); - if( curveDist*(curveDist+2*perMillion ) < linDistSq ){ - // Re-integrate to obtain a new B - G4FieldTrack newEndpoint= CurrentA_PointVelocity; - GetChordFinder()->GetIntegrationDriver() - ->AccurateAdvance(newEndpoint, curveDist, GetEpsilonStep() ); - CurrentB_PointVelocity= newEndpoint; + linDistSq = ( CurrentB_PointVelocity.GetPosition() + - CurrentA_PointVelocity.GetPosition() ).mag2(); + curveDist = CurrentB_PointVelocity.GetCurveLength() + - CurrentA_PointVelocity.GetCurveLength(); + if( curveDist*(curveDist+2*perMillion ) < linDistSq ) + { + // Re-integrate to obtain a new B + // + G4FieldTrack newEndpoint = CurrentA_PointVelocity; + GetChordFinder()->GetIntegrationDriver() + ->AccurateAdvance(newEndpoint, curveDist, fEpsilonStep); + CurrentB_PointVelocity = newEndpoint; + #ifdef G4DEBUG_FIELD - static int noInaccuracyWarnings = 0; - const int maxNoWarnings = 10; - if( (noInaccuracyWarnings < maxNoWarnings ) - || (Verbose() > 1) ){ - G4cerr << "G4PropagatorInField::LocateIntersectionPoint: " - << " Warning: Integration inaccuracy requires " << G4endl - << " an adjustment in the step's endpoint " << G4endl - << " Two mid-points are further apart than their " - << "curve length difference" << G4endl - << " Dist = " << sqrt(linDistSq) - << " curve length = " << curveDist << G4endl; - } + static G4int noInaccuracyWarnings = 0; + G4int maxNoWarnings = 10; + if ( (noInaccuracyWarnings < maxNoWarnings ) + || (Verbose() > 1) ) + { + G4cerr << "G4PropagatorInField::LocateIntersectionPoint():" + << G4endl + << " Warning: Integration inaccuracy requires " << G4endl + << " an adjustment in the step's endpoint " << G4endl + << " Two mid-points are further apart than their " + << "curve length difference" << G4endl + << " Dist = " << sqrt(linDistSq) + << " curve length = " << curveDist << G4endl; + } #endif } - if( curveDist < 0.0 ) { - G4cerr << "G4PropagatorInField::LocateIntersectionPoint: " - << "Error in advancing " << G4endl; - printStatus( CurrentA_PointVelocity, CurrentB_PointVelocity, - -1.0, NewSafety, substep_no, 0); // startVolume); - G4Exception("G4PropagatorInField::LocateIntersectionPoint : the final curve point is not further along than the original."); + if( curveDist < 0.0 ) + { + G4cerr << "G4PropagatorInField::LocateIntersectionPoint():" << G4endl + << "Error in advancing propagation." << G4endl; + printStatus( CurrentA_PointVelocity, CurrentB_PointVelocity, + -1.0, NewSafety, substep_no, 0); + G4cout << G4endl + << "The final curve point is not further along" + << " than the original!" << G4endl; + G4Exception("ERROR - G4PropagatorInField::LocateIntersectionPoint()"); } - - } // EndIf ( E is close enough to the curve, ie point F. ) - // tests ChordAF_Vector.mag() <= maximum_lateral_displacement + } // EndIf ( E is close enough to the curve, ie point F. ) + // tests ChordAF_Vector.mag() <= maximum_lateral_displacement #ifdef G4VERBOSE - if( Verbose() > 1 ) - // printStatus( CurveStartPointVelocity, CurveEndPointVelocity, + if( Verbose() > 1 ) printStatus( CurrentA_PointVelocity, CurrentB_PointVelocity, - -1.0, NewSafety, substep_no, 0); // startVolume); + -1.0, NewSafety, substep_no, 0); #endif - substep_no++; + substep_no++; - } while ( ( ! found_approximate_intersection ) && - ( ! there_is_no_intersection ) ); // UNTIL found or failed - - return !there_is_no_intersection ; // Success or failure + } while ( ( ! found_approximate_intersection ) + && ( ! there_is_no_intersection ) ); // UNTIL found or failed + return !there_is_no_intersection; // Success or failure } -void G4PropagatorInField::printStatus( - const G4FieldTrack& StartFT, - const G4FieldTrack& CurrentFT, - G4double requestStep, - G4double safety, - G4int stepNo, - G4VPhysicalVolume* startVolume) - // G4VPhysicalVolume* endVolume) +/////////////////////////////////////////////////////////////////////////// +// +// Dumps status of propagator. + +void +G4PropagatorInField::printStatus( const G4FieldTrack& StartFT, + const G4FieldTrack& CurrentFT, + G4double requestStep, + G4double safety, + G4int stepNo, + G4VPhysicalVolume* startVolume) { - const G4int verboseLevel=1; - const G4ThreeVector StartPosition= StartFT.GetPosition(); - const G4ThreeVector StartUnitVelocity= StartFT.GetMomentumDir(); - const G4ThreeVector CurrentPosition= CurrentFT.GetPosition(); - const G4ThreeVector CurrentUnitVelocity= CurrentFT.GetMomentumDir(); + const G4int verboseLevel=1; + const G4ThreeVector StartPosition = StartFT.GetPosition(); + const G4ThreeVector StartUnitVelocity = StartFT.GetMomentumDir(); + const G4ThreeVector CurrentPosition = CurrentFT.GetPosition(); + const G4ThreeVector CurrentUnitVelocity = CurrentFT.GetMomentumDir(); - G4double step_len= CurrentFT.GetCurveLength() - - StartFT.GetCurveLength(); + G4double step_len = CurrentFT.GetCurveLength() - StartFT.GetCurveLength(); - if( (stepNo == 0) && (verboseLevel <= 3) ) - { - static G4int noPrecision= 4; - G4cout.precision(noPrecision); - // G4cout.setf(ios_base::fixed,ios_base::floatfield); - G4cout << G4std::setw( 6) << " " - << G4std::setw( 25) << " Current Position and Direction" << " " - << G4endl; - G4cout << G4std::setw( 5) << "Step#" << " " - << G4std::setw( 9) << "X(mm)" << " " - << G4std::setw( 9) << "Y(mm)" << " " - << G4std::setw( 9) << "Z(mm)" << " " - << G4std::setw( 7) << " N_x " << " " - << G4std::setw( 7) << " N_y " << " " - << G4std::setw( 7) << " N_z " << " " - << G4std::setw( 9) << "StepLen" << " " - << G4std::setw(12) << "PhsStep" << " " - << G4std::setw(12) << "StartSafety" << " " - << G4std::setw(18) << "NextVolume" << " " - << G4endl; - // Recurse to print the start values - printStatus( StartFT, StartFT, // - -1.0, safety, -1, startVolume); - } + if( (stepNo == 0) && (verboseLevel <= 3) ) + { + static G4int noPrecision= 4; + G4cout.precision(noPrecision); + // G4cout.setf(ios_base::fixed,ios_base::floatfield); + G4cout << G4std::setw( 6) << " " + << G4std::setw( 25) << " Current Position and Direction" << " " + << G4endl; + G4cout << G4std::setw( 5) << "Step#" << " " + << G4std::setw( 9) << "X(mm)" << " " + << G4std::setw( 9) << "Y(mm)" << " " + << G4std::setw( 9) << "Z(mm)" << " " + << G4std::setw( 7) << " N_x " << " " + << G4std::setw( 7) << " N_y " << " " + << G4std::setw( 7) << " N_z " << " " + << G4std::setw( 9) << "StepLen" << " " + << G4std::setw(12) << "PhsStep" << " " + << G4std::setw(12) << "StartSafety" << " " + << G4std::setw(18) << "NextVolume" << " " + << G4endl; - if( verboseLevel <= 3 ) - { - G4cout.precision(3); - if( stepNo >= 0) - G4cout << G4std::setw( 5) << stepNo << " "; + // Recurse to print the start values + // + printStatus( StartFT, StartFT, -1.0, safety, -1, startVolume); + } + if( verboseLevel <= 3 ) + { + G4cout.precision(3); + if( stepNo >= 0) + G4cout << G4std::setw( 5) << stepNo << " "; + else + G4cout << G4std::setw( 5) << "Start" << " "; + G4cout << G4std::setw( 9) << CurrentPosition.x() << " " + << G4std::setw( 9) << CurrentPosition.y() << " " + << G4std::setw( 9) << CurrentPosition.z() << " " + << G4std::setw( 7) << CurrentUnitVelocity.x() << " " + << G4std::setw( 7) << CurrentUnitVelocity.y() << " " + << G4std::setw( 7) << CurrentUnitVelocity.z() << " "; + G4cout << G4std::setw( 9) << step_len << " "; + if( requestStep != -1.0 ) + G4cout << G4std::setw( 12) << requestStep << " "; + else + G4cout << G4std::setw( 12) << "InitialStep" << " "; + G4cout << G4std::setw(12) << safety << " "; + + if( startVolume != 0) + { + G4cout << G4std::setw(12) << startVolume->GetName() << " "; + } + else + { + if( step_len != -1 ) + G4cout << G4std::setw(12) << "OutOfWorld" << " "; else - G4cout << G4std::setw( 5) << "Start" << " "; - G4cout << G4std::setw( 9) << CurrentPosition.x() << " " - << G4std::setw( 9) << CurrentPosition.y() << " " - << G4std::setw( 9) << CurrentPosition.z() << " " - << G4std::setw( 7) << CurrentUnitVelocity.x() << " " - << G4std::setw( 7) << CurrentUnitVelocity.y() << " " - << G4std::setw( 7) << CurrentUnitVelocity.z() << " "; - G4cout << G4std::setw( 9) << step_len << " "; - if( requestStep != -1.0 ) - G4cout << G4std::setw( 12) << requestStep << " "; - else - G4cout << G4std::setw( 12) << "InitialStep" << " "; - G4cout << G4std::setw(12) << safety << " "; + G4cout << G4std::setw(12) << "NotGiven" << " "; + } - if( startVolume != 0) { - G4cout << G4std::setw(12) << startVolume->GetName() << " "; - } else { - if( step_len != -1 ) - G4cout << G4std::setw(12) << "OutOfWorld" << " "; - else - G4cout << G4std::setw(12) << "NotGiven" << " "; - } - - G4cout << G4endl; - } - - else // if( verboseLevel > 3 ) - { - // Multi-line output + G4cout << G4endl; + } + else // if( verboseLevel > 3 ) + { + // Multi-line output - // G4cout << "Current Position is " << CurrentPosition << G4endl - // << " and UnitVelocity is " << CurrentUnitVelocity << G4endl; - G4cout << "Step taken was " << step_len - << " out of PhysicalStep= " << requestStep << G4endl; - G4cout << "Final safety is: " << safety << G4endl; + G4cout << "Step taken was " << step_len + << " out of PhysicalStep= " << requestStep << G4endl; + G4cout << "Final safety is: " << safety << G4endl; - G4cout << "Chord length = " << (CurrentPosition-StartPosition).mag() << G4endl; - G4cout << G4endl; - } + G4cout << "Chord length = " << (CurrentPosition-StartPosition).mag() + << G4endl; + G4cout << G4endl; + } +} + +/////////////////////////////////////////////////////////////////////////// +// +// Prints Step diagnostics + +void +G4PropagatorInField::PrintStepLengthDiagnostic( + G4double CurrentProposedStepLength, + G4double decreaseFactor, + G4double stepTrial, + const G4FieldTrack& aFieldTrack) +{ + G4cout << " PiF: NoZeroStep= " << fNoZeroStep + << " CurrentProposedStepLength= " << CurrentProposedStepLength + << " Full_curvelen_last=" << fFull_CurveLen_of_LastAttempt + << " last proposed step-length= " << fLast_ProposedStepLength + << " decreate factor = " << decreaseFactor + << " step trial = " << stepTrial + << G4endl; +} + + +G4std::vector* +G4PropagatorInField::GimmeTrajectoryVectorAndForgetIt() const { + // NB, GimmeThePointsAndForgetThem really forgets them, so it can + // only be called (exactly) once for each step. + if (fpTrajectoryFilter) { + return fpTrajectoryFilter->GimmeThePointsAndForgetThem(); + } else { + return NULL; + } } void -G4PropagatorInField::PrintStepLengthDiagnostic(G4double CurrentProposedStepLength, - G4double decreaseFactor, - G4double stepTrial, - const G4FieldTrack& aFieldTrack) -{ - G4cout << " PiF: NoZeroStep= " << fNoZeroStep - << " CurrentProposedStepLength= " << CurrentProposedStepLength - << " Full_curvelen_last=" << fFull_CurveLen_of_LastAttempt - << " last proposed step-length= " << fLast_ProposedStepLength - << " decreate factor = " << decreaseFactor - << " step trial = " << stepTrial - << G4endl; - // printStatus( pFieldTrack, pFieldTrack, CurrentProposedStepLength, - // -1.0, 0, pPhysVol); - +G4PropagatorInField::SetTrajectoryFilter(G4VCurvedTrajectoryFilter* filter) { + fpTrajectoryFilter = filter; } diff --git a/source/geometry/volumes/src/G4ReplicaNavigation.cc b/source/geometry/volumes/src/G4ReplicaNavigation.cc index 11dd03d23b..5cc41f525d 100644 --- a/source/geometry/volumes/src/G4ReplicaNavigation.cc +++ b/source/geometry/volumes/src/G4ReplicaNavigation.cc @@ -21,127 +21,145 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.cc,v 1.10 2001/07/11 10:00:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReplicaNavigation.cc,v 1.11 2002/08/06 10:35:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4ReplicaNavigation Implementation // -// ------------------------------------------------------------------- +// Author: P.Kent, 1996 +// +// ******************************************************************** #include "G4ReplicaNavigation.hh" #include +// ******************************************************************** +// Constructor +// ******************************************************************** +// G4ReplicaNavigation::G4ReplicaNavigation() { } +// ******************************************************************** +// Inside +// ******************************************************************** +// EInside G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, - const G4int replicaNo, - const G4ThreeVector &localPoint) const + const G4int replicaNo, + const G4ThreeVector &localPoint) const { - EInside in=kOutside; + EInside in = kOutside; + // Replication data + // EAxis axis; G4int nReplicas; - G4double width,offset; + G4double width, offset; G4bool consuming; - G4double coord,rad2,rmin,tolRMax2,rmax,tolRMin2; + G4double coord, rad2, rmin, tolRMax2, rmax, tolRMin2; - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + pVol->GetReplicationData(axis, nReplicas, width, offset, consuming); assert(consuming); switch (axis) - { + { case kXAxis: case kYAxis: case kZAxis: - coord=fabs(localPoint(axis))-width*0.5; - if (coord<=-kCarTolerance*0.5) - { - in=kInside; - } - else if (coord<=kCarTolerance*0.5) - { - in=kSurface; - } + coord = fabs(localPoint(axis))-width*0.5; + if ( coord<=-kCarTolerance*0.5 ) + { + in = kInside; + } + else if ( coord<=kCarTolerance*0.5 ) + { + in = kSurface; + } break; case kPhi: - if (localPoint.y()||localPoint.x()) - { - coord=fabs(atan2(localPoint.y(),localPoint.x()))-width*0.5; - if (coord<=-kAngTolerance*0.5) - { - in=kInside; - } - else if (coord<=kAngTolerance*0.5) - { - in=kSurface; - } - } + if ( localPoint.y()||localPoint.x() ) + { + coord = fabs(atan2(localPoint.y(),localPoint.x()))-width*0.5; + if ( coord<=-kAngTolerance*0.5 ) + { + in = kInside; + } + else if ( coord<=kAngTolerance*0.5 ) + { + in = kSurface; + } + } else - { - in=kSurface; - } + { + in = kSurface; + } break; case kRho: - rad2=localPoint.perp2(); - rmax=(replicaNo+1)*width+offset; - tolRMax2=rmax-kRadTolerance*0.5; - tolRMax2*=tolRMax2; - if (rad2>tolRMax2) - { - tolRMax2=rmax+kRadTolerance*0.5; - tolRMax2*=tolRMax2; - if (rad2<=tolRMax2) - { - in=kSurface; - } - } + rad2 = localPoint.perp2(); + rmax = (replicaNo+1)*width+offset; + tolRMax2 = rmax-kRadTolerance*0.5; + tolRMax2 *= tolRMax2; + if ( rad2>tolRMax2 ) + { + tolRMax2 = rmax+kRadTolerance*0.5; + tolRMax2 *= tolRMax2; + if ( rad2<=tolRMax2 ) + { + in = kSurface; + } + } else - { - // Known to be inside outer radius - if (replicaNo||offset) - { - rmin=rmax-width; - tolRMin2=rmin-kRadTolerance*0.5; - tolRMin2*=tolRMin2; - if (rad2>tolRMin2) - { - tolRMin2=rmin+kRadTolerance*0.5; - tolRMin2*=tolRMin2; - if (rad2>=tolRMin2) - { - in=kInside; - } - else - { - in=kSurface; - } - } - } - else - { - in=kInside; - } - } + { + // Known to be inside outer radius + // + if ( replicaNo||offset ) + { + rmin = rmax-width; + tolRMin2 = rmin-kRadTolerance*0.5; + tolRMin2 *= tolRMin2; + if ( rad2>tolRMin2 ) + { + tolRMin2 = rmin+kRadTolerance*0.5; + tolRMin2 *= tolRMin2; + if ( rad2>=tolRMin2 ) + { + in = kInside; + } + else + { + in = kSurface; + } + } + } + else + { + in = kInside; + } + } break; default: - G4Exception("Unknown axis in G4ReplicaNavigation::Inside"); + G4Exception("ERROR - G4ReplicaNavigation::Inside(). Unknown axis!"); break; - } + } return in; } +// ******************************************************************** +// DistanceToOut +// ******************************************************************** +// G4double G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol, - const G4int replicaNo, - const G4ThreeVector &localPoint) const + const G4int replicaNo, + const G4ThreeVector &localPoint) const { // Replication data + // EAxis axis; G4int nReplicas; G4double width,offset; @@ -149,359 +167,376 @@ G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol, G4double safety=0.; G4double safe1,safe2; - G4double coord,rho,rmin,rmax; + G4double coord, rho, rmin, rmax; - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + pVol->GetReplicationData(axis, nReplicas, width, offset, consuming); assert(consuming); switch(axis) - { + { case kXAxis: case kYAxis: case kZAxis: - coord=localPoint(axis); - safe1=width*0.5-coord; - safe2=width*0.5+coord; - safety=(safe1<=safe2) ? safe1 : safe2; + coord = localPoint(axis); + safe1 = width*0.5-coord; + safe2 = width*0.5+coord; + safety = (safe1<=safe2) ? safe1 : safe2; break; case kPhi: - if (localPoint.y()<=0) - { - safety=localPoint.x()*sin(width*0.5)+localPoint.y()*cos(width*0.5); - } + if ( localPoint.y()<=0 ) + { + safety = localPoint.x()*sin(width*0.5)+localPoint.y()*cos(width*0.5); + } else - { - safety=localPoint.x()*sin(width*0.5)-localPoint.y()*cos(width*0.5); - } + { + safety = localPoint.x()*sin(width*0.5)-localPoint.y()*cos(width*0.5); + } break; case kRho: - rho=localPoint.perp(); - rmax=width*(replicaNo+1)+offset; - if (replicaNo||offset) - { - rmin=rmax-width; - safe1=rho-rmin; - safe2=rmax-rho; - safety=(safe1<=safe2) ? safe1 : safe2; - } + rho = localPoint.perp(); + rmax = width*(replicaNo+1)+offset; + if ( replicaNo||offset ) + { + rmin = rmax-width; + safe1 = rho-rmin; + safe2 = rmax-rho; + safety = (safe1<=safe2) ? safe1 : safe2; + } else - { - safety=rmax-rho; - } + { + safety = rmax-rho; + } break; default: - G4Exception("Unknown axis in G4ReplicaNavigation::DistanceToOut"); - break; - } + G4Exception("ERROR - G4ReplicaNavigation::DistanceToOut(). Unknown axis!"); + break; + } return (safety >= kCarTolerance) ? safety : 0; } +// ******************************************************************** +// DistanceToOut +// ******************************************************************** +// G4double G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol, - const G4int replicaNo, - const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection) const + const G4int replicaNo, + const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection) const { // Replication data + // EAxis axis; G4int nReplicas; - G4double width,offset; + G4double width, offset; G4bool consuming; G4double Dist=kInfinity; - G4double coord,Comp,lindist; + G4double coord, Comp, lindist; - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + pVol->GetReplicationData(axis, nReplicas, width, offset, consuming); assert(consuming); switch(axis) - { + { case kXAxis: case kYAxis: case kZAxis: - coord=localPoint(axis); - Comp=localDirection(axis); - if (Comp>0) - { - lindist=width*0.5-coord; - Dist= (lindist>kCarTolerance*0.5) ? lindist/Comp : 0; - } - else if (Comp<0) - { - lindist=width*0.5+coord; - Dist= (lindist>kCarTolerance*0.5) ? -lindist/Comp : 0; - } + coord = localPoint(axis); + Comp = localDirection(axis); + if ( Comp>0 ) + { + lindist = width*0.5-coord; + Dist = (lindist>kCarTolerance*0.5) ? lindist/Comp : 0; + } + else if ( Comp<0 ) + { + lindist = width*0.5+coord; + Dist = (lindist>kCarTolerance*0.5) ? -lindist/Comp : 0; + } else - { - Dist=kInfinity; - } + { + Dist = kInfinity; + } break; case kPhi: - Dist=DistanceToOutPhi(localPoint,localDirection,width); + Dist = DistanceToOutPhi(localPoint, localDirection, width); break; case kRho: Dist=DistanceToOutRad(localPoint,localDirection,width,offset,replicaNo); break; default: - G4Exception("Unknown axis in G4ReplicaNavigation::DistanceToOut"); - break; - } + G4Exception("ERROR - G4ReplicaNavigation::DistanceToOut(). Unknown axis!"); + break; + } return Dist; } - +// ******************************************************************** +// DistanceToOutPhi +// ******************************************************************** +// G4double G4ReplicaNavigation::DistanceToOutPhi(const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double width) const + const G4ThreeVector &localDirection, + const G4double width) const { // Phi Intersection // NOTE: width<=M_PI by definition - - G4double sinSPhi,cosSPhi; - G4double pDistS,pDistE,compS,compE,Dist,dist2,yi; - if (localPoint.x()||localPoint.y()) + // + G4double sinSPhi, cosSPhi; + G4double pDistS, pDistE, compS, compE, Dist, dist2, yi; + if ( localPoint.x()||localPoint.y() ) + { + sinSPhi = sin(-width*0.5); // SIN of starting phi plane + cosSPhi = cos(width*0.5); // COS of starting phi plane + + // pDist -ve when inside + // + pDistS = localPoint.x()*sinSPhi-localPoint.y()*cosSPhi; + pDistE = localPoint.x()*sinSPhi+localPoint.y()*cosSPhi; + + // Comp -ve when in direction of outwards normal + // + compS = -sinSPhi*localDirection.x()+cosSPhi*localDirection.y(); + compE = -sinSPhi*localDirection.x()-cosSPhi*localDirection.y(); + + if ( (pDistS<=0)&&(pDistE<=0) ) { - sinSPhi=sin(-width*0.5); // SIN of starting phi plane - cosSPhi=cos(width*0.5); // COS of starting phi plane - - // pDist -ve when inside + // Inside both phi *full* planes // - pDistS=localPoint.x()*sinSPhi-localPoint.y()*cosSPhi; - pDistE=localPoint.x()*sinSPhi+localPoint.y()*cosSPhi; + if ( compS<0 ) + { + dist2 = pDistS/compS; + yi = localPoint.y()+dist2*localDirection.y(); - // Comp -ve when in direction of outwards normal - // - compS=-sinSPhi*localDirection.x()+cosSPhi*localDirection.y(); - compE=-sinSPhi*localDirection.x()-cosSPhi*localDirection.y(); - - if (pDistS<=0&&pDistE<=0) - { - // Inside both phi *full* planes - // - if (compS<0) - { - dist2=pDistS/compS; - yi=localPoint.y()+dist2*localDirection.y(); - - // Check intersecting with correct half-plane (no -> no intersect) - // - if (yi<=0) - { - Dist=(pDistS<=-kCarTolerance*0.5) ? dist2 : 0; - } - else - { - Dist=kInfinity; - } - } - else - { - Dist=kInfinity; - } - if (compE<0) - { - dist2=pDistE/compE; - - // Only check further if < starting phi intersection - // - if (dist2=0) - { - // Leaving via ending phi - // - Dist=(pDistE<=-kCarTolerance*0.5) ? dist2 : 0; - } - } - } - } - else if (pDistS>=0&&pDistE>=0) - { - // Outside both *full* phi planes - // if towards both >=0 then once inside will remain inside - // - Dist= (compS>=0&&compE>=0) ? kInfinity : 0; - } - else if (pDistS>0&&pDistE<0) - { - // Outside full starting plane, inside full ending plane - // - if (compS>=0) - { - if (compE<0) - { - dist2=pDistE/compE; - yi=localPoint.y()+dist2*localDirection.y(); - - // Check intersection in correct half-plane - // (if not -> remain in extent) - // - Dist=(yi>0) ? dist2 : kInfinity; - } - else Dist=kInfinity; - } - else - { - // Leaving immediately by starting phi - // - Dist=(compE<0) ? 0 : kInfinity; - } - } + // Check intersecting with correct half-plane (no -> no intersect) + // + if ( yi<=0 ) + { + Dist = (pDistS<=-kCarTolerance*0.5) ? dist2 : 0; + } + else + { + Dist = kInfinity; + } + } else - { - // Must be pDistS<0&&pDistE>0 - // Inside full starting plane, outside full ending plane - // - if (compE>=0) - { - if (compS<0) - { - - dist2=pDistS/compS; - yi=localPoint.y()+dist2*localDirection.y(); + { + Dist = kInfinity; + } + if ( compE<0 ) + { + dist2 = pDistE/compE; + + // Only check further if < starting phi intersection + // + if ( dist2 remain in extent) - // - Dist=(yi<0) ? dist2 : kInfinity; - } - else - { - Dist=kInfinity; - } - } - else - { - // Leaving immediately by ending phi - // - Dist=0; - } - } + // Check intersecting with correct half-plane + // + if ( yi>=0 ) + { + // Leaving via ending phi + // + Dist = (pDistE<=-kCarTolerance*0.5) ? dist2 : 0; + } + } + } } - else + else if ( (pDistS>=0)&&(pDistE>=0) ) { - // On z axis + travel not || to z axis -> use direction vector + // Outside both *full* phi planes + // if towards both >=0 then once inside will remain inside // - Dist = (fabs(localDirection.phi())<=width*0.5) ? kInfinity : 0; + Dist = ((compS>=0)&&(compE>=0)) ? kInfinity : 0; } + else if ( (pDistS>0)&&(pDistE<0) ) + { + // Outside full starting plane, inside full ending plane + // + if ( compS>=0 ) + { + if ( compE<0 ) + { + dist2 = pDistE/compE; + yi = localPoint.y()+dist2*localDirection.y(); + + // Check intersection in correct half-plane + // (if not -> remain in extent) + // + Dist = (yi>0) ? dist2 : kInfinity; + } + else + { + Dist = kInfinity; + } + } + else + { + // Leaving immediately by starting phi + // + Dist = (compE<0) ? 0 : kInfinity; + } + } + else + { + // Must be (pDistS<0)&&(pDistE>0) + // Inside full starting plane, outside full ending plane + // + if ( compE>=0 ) + { + if ( compS<0 ) + { + dist2 = pDistS/compS; + yi = localPoint.y()+dist2*localDirection.y(); + + // Check intersection in correct half-plane + // (if not -> remain in extent) + // + Dist = (yi<0) ? dist2 : kInfinity; + } + else + { + Dist = kInfinity; + } + } + else + { + // Leaving immediately by ending phi + // + Dist = 0; + } + } + } + else + { + // On z axis + travel not || to z axis -> use direction vector + // + Dist = (fabs(localDirection.phi())<=width*0.5) ? kInfinity : 0; + } return Dist; } +// ******************************************************************** +// DistanceToOutRad +// ******************************************************************** +// G4double G4ReplicaNavigation::DistanceToOutRad(const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double width, - const G4double offset, - const G4int replicaNo) const + const G4ThreeVector &localDirection, + const G4double width, + const G4double offset, + const G4int replicaNo) const { + G4double rmin, rmax, t1, t2, t3, deltaR; + G4double b, c, d2, sr; - G4double rmin,rmax,t1,t2,t3,deltaR; - G4double b,c,d2,sr; - -// -// Radial Intersections -// - -// Find intersction with cylinders at rmax/rmin -// Intersection point (xi,yi,zi) on line -// x=localPoint.x+t*localDirection.x etc. -// -// Intersects with x^2+y^2=R^2 -// -// Hence (localDirection.x^2+localDirection.y^2)t^2+ -// 2t(localPoint.x*localDirection.x+localPoint.y*localDirection.y)+ -// localPoint.x^2+localPoint.y^2-R^2=0 -// -// t1 t2 t3 - - rmin=replicaNo*width+offset; - rmax=(replicaNo+1)*width+offset; - - t1=1.0-localDirection.z()*localDirection.z(); // since v normalised - t2=localPoint.x()*localDirection.x()+localPoint.y()*localDirection.y(); - t3=localPoint.x()*localPoint.x()+localPoint.y()*localPoint.y(); + // + // Radial Intersections + // - if (t1>0) // Check not parallel + // Find intersction with cylinders at rmax/rmin + // Intersection point (xi,yi,zi) on line + // x=localPoint.x+t*localDirection.x etc. + // + // Intersects with x^2+y^2=R^2 + // + // Hence (localDirection.x^2+localDirection.y^2)t^2+ + // 2t(localPoint.x*localDirection.x+localPoint.y*localDirection.y)+ + // localPoint.x^2+localPoint.y^2-R^2=0 + // + // t1 t2 t3 + + rmin = replicaNo*width+offset; + rmax = (replicaNo+1)*width+offset; + + t1 = 1.0-localDirection.z()*localDirection.z(); // since v normalised + t2 = localPoint.x()*localDirection.x()+localPoint.y()*localDirection.y(); + t3 = localPoint.x()*localPoint.x()+localPoint.y()*localPoint.y(); + + if ( t1>0 ) // Check not parallel + { + // Calculate sr, r exit distance + // + if ( t2>=0 ) { - // Calculate sr, r exit distance + // Delta r not negative => leaving via rmax // - if (t2>=0) - { - // Delta r not negative => leaving via rmax - // - deltaR=t3-rmax*rmax; - - // NOTE: Should use - // rho-rmax<-kRadTolerance*0.5 - [no sqrts for efficiency] - // - if (deltaR<-kRadTolerance*0.5) - { - b=t2/t1; - c=deltaR/t1; - sr=-b+sqrt(b*b-c); - } - else - { - // On tolerant boundary & heading outwards (or locally - // perpendicular to) outer radial surface -> leaving immediately - // - sr=0; - } - } + deltaR = t3-rmax*rmax; + + // NOTE: Should use + // rho-rmax<-kRadTolerance*0.5 - [no sqrts for efficiency] + // + if ( deltaR<-kRadTolerance*0.5 ) + { + b = t2/t1; + c = deltaR/t1; + sr = -b+sqrt(b*b-c); + } else - { - // Possible rmin intersection - // - if (rmin) - { - deltaR=t3-rmin*rmin; - b=t2/t1; - c=deltaR/t1; - d2=b*b-c; - if (d2>=0) - { - // Leaving via rmin - // NOTE: Should use - // rho-rmin>kRadTolerance*0.5 - [no sqrts for efficiency] - // - sr= (deltaR>kRadTolerance*0.5) ? -b-sqrt(d2) : 0; - } - else - { - // No rmin intersect -> must be rmax intersect - // - deltaR=t3-rmax*rmax; - c=deltaR/t1; - sr=-b+sqrt(b*b-c); - } - } - else - { - // No rmin intersect -> must be rmax intersect - // - deltaR=t3-rmax*rmax; - b=t2/t1; - c=deltaR/t1; - sr=-b+sqrt(b*b-c); - } - } + { + // On tolerant boundary & heading outwards (or locally + // perpendicular to) outer radial surface -> leaving immediately + // + sr = 0; + } } - else + else { - sr=kInfinity; + // Possible rmin intersection + // + if (rmin) + { + deltaR = t3-rmin*rmin; + b = t2/t1; + c = deltaR/t1; + d2 = b*b-c; + if ( d2>=0 ) + { + // Leaving via rmin + // NOTE: Should use + // rho-rmin>kRadTolerance*0.5 - [no sqrts for efficiency] + // + sr = (deltaR>kRadTolerance*0.5) ? -b-sqrt(d2) : 0; + } + else + { + // No rmin intersect -> must be rmax intersect + // + deltaR = t3-rmax*rmax; + c = deltaR/t1; + sr = -b+sqrt(b*b-c); + } + } + else + { + // No rmin intersect -> must be rmax intersect + // + deltaR = t3-rmax*rmax; + b = t2/t1; + c = deltaR/t1; + sr = -b+sqrt(b*b-c); + } } + } + else + { + sr=kInfinity; + } return sr; } +// ******************************************************************** +// ComputeTransformation +// +// Setup transformation and transform point into local system +// ******************************************************************** +// void G4ReplicaNavigation::ComputeTransformation(const G4int replicaNo, - G4VPhysicalVolume *pVol, - G4ThreeVector& point) const - // - // Setup transformation and transform point into local system + G4VPhysicalVolume* pVol, + G4ThreeVector& point) const { G4double val,cosv,sinv,tmpx,tmpy; @@ -512,33 +547,33 @@ G4ReplicaNavigation::ComputeTransformation(const G4int replicaNo, G4double width,offset; G4bool consuming; - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + pVol->GetReplicationData(axis, nReplicas, width, offset, consuming); assert(consuming); switch (axis) - { + { case kXAxis: - val=-width*0.5*(nReplicas-1)+width*replicaNo; + val = -width*0.5*(nReplicas-1)+width*replicaNo; pVol->SetTranslation(G4ThreeVector(val,0,0)); point.setX(point.x()-val); break; case kYAxis: - val=-width*0.5*(nReplicas-1)+width*replicaNo; + val = -width*0.5*(nReplicas-1)+width*replicaNo; pVol->SetTranslation(G4ThreeVector(0,val,0)); point.setY(point.y()-val); break; case kZAxis: - val=-width*0.5*(nReplicas-1)+width*replicaNo; + val = -width*0.5*(nReplicas-1)+width*replicaNo; pVol->SetTranslation(G4ThreeVector(0,0,val)); point.setZ(point.z()-val); break; case kPhi: - val=-(offset+width*(replicaNo+0.5)); + val = -(offset+width*(replicaNo+0.5)); SetPhiTransformation(val,pVol); - cosv=cos(val); - sinv=sin(val); - tmpx=point.x()*cosv-point.y()*sinv; - tmpy=point.x()*sinv+point.y()*cosv; + cosv = cos(val); + sinv = sin(val); + tmpx = point.x()*cosv-point.y()*sinv; + tmpy = point.x()*sinv+point.y()*cosv; point.setY(tmpy); point.setX(tmpx); break; @@ -546,13 +581,18 @@ G4ReplicaNavigation::ComputeTransformation(const G4int replicaNo, // No setup required for radial case default: break; - } + } } +// ******************************************************************** +// ComputeTransformation +// +// Setup transformation into local system +// ******************************************************************** +// void G4ReplicaNavigation::ComputeTransformation(const G4int replicaNo, - G4VPhysicalVolume *pVol) const - // Setup transformation. + G4VPhysicalVolume* pVol) const { G4double val; @@ -560,389 +600,399 @@ G4ReplicaNavigation::ComputeTransformation(const G4int replicaNo, // EAxis axis; G4int nReplicas; - G4double width,offset; + G4double width, offset; G4bool consuming; - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); + pVol->GetReplicationData(axis, nReplicas, width, offset, consuming); assert(consuming); switch (axis) - { + { case kXAxis: - val=-width*0.5*(nReplicas-1)+width*replicaNo; + val = -width*0.5*(nReplicas-1)+width*replicaNo; pVol->SetTranslation(G4ThreeVector(val,0,0)); break; case kYAxis: - val=-width*0.5*(nReplicas-1)+width*replicaNo; + val = -width*0.5*(nReplicas-1)+width*replicaNo; pVol->SetTranslation(G4ThreeVector(0,val,0)); break; case kZAxis: - val=-width*0.5*(nReplicas-1)+width*replicaNo; + val = -width*0.5*(nReplicas-1)+width*replicaNo; pVol->SetTranslation(G4ThreeVector(0,0,val)); break; case kPhi: - val=-(offset+width*(replicaNo+0.5)); + val = -(offset+width*(replicaNo+0.5)); SetPhiTransformation(val,pVol); break; case kRho: // No setup required for radial case default: break; - } + } } +// ******************************************************************** +// ComputeStep +// ******************************************************************** +// G4double G4ReplicaNavigation::ComputeStep(const G4ThreeVector &globalPoint, - const G4ThreeVector &globalDirection, - const G4ThreeVector &localPoint, - const G4ThreeVector &localDirection, - const G4double currentProposedStepLength, - G4double &newSafety, - G4NavigationHistory &history, - G4bool &validExitNormal, - G4ThreeVector &exitNormal, - G4bool &exiting, - G4bool &entering, - G4VPhysicalVolume *(*pBlockedPhysical), - G4int &blockedReplicaNo) + const G4ThreeVector &globalDirection, + const G4ThreeVector &localPoint, + const G4ThreeVector &localDirection, + const G4double currentProposedStepLength, + G4double &newSafety, + G4NavigationHistory &history, + G4bool &validExitNormal, + G4ThreeVector &exitNormal, + G4bool &exiting, + G4bool &entering, + G4VPhysicalVolume *(*pBlockedPhysical), + G4int &blockedReplicaNo ) { - G4VPhysicalVolume *repPhysical,*motherPhysical; - G4VPhysicalVolume *samplePhysical,*blockedExitedVol=0; + G4VPhysicalVolume *repPhysical, *motherPhysical; + G4VPhysicalVolume *samplePhysical, *blockedExitedVol=0; G4LogicalVolume *repLogical; G4VSolid *motherSolid; - G4ThreeVector repPoint,repDirection,sampleDirection; + G4ThreeVector repPoint, repDirection, sampleDirection; G4double ourStep=currentProposedStepLength; G4double ourSafety=kInfinity; - G4double sampleStep,sampleSafety; - G4int localNoDaughters,sampleNo; + G4double sampleStep, sampleSafety; + G4int localNoDaughters, sampleNo; G4int depth; // Exiting normal optimisation // - if (exiting&&validExitNormal) + if ( exiting&&validExitNormal ) + { + if ( localDirection.dot(exitNormal)>=kMinExitingNormalCosine ) { - if (localDirection.dot(exitNormal)>=kMinExitingNormalCosine) - { - // Block exited daughter volume - // - blockedExitedVol=*pBlockedPhysical; - ourSafety=0; - } + // Block exited daughter volume + // + blockedExitedVol = *pBlockedPhysical; + ourSafety = 0; } - exiting=false; - entering=false; - - repPhysical=history.GetTopVolume(); - repLogical=repPhysical->GetLogicalVolume(); + } + exiting = false; + entering = false; + + repPhysical = history.GetTopVolume(); + repLogical = repPhysical->GetLogicalVolume(); // // Compute intersection with replica boundaries & replica safety // - sampleSafety=DistanceToOut(history.GetTopVolume(), - history.GetTopReplicaNo(), - localPoint); + sampleSafety = DistanceToOut(history.GetTopVolume(), + history.GetTopReplicaNo(), + localPoint); - if (sampleSafetyGetLogicalVolume()->GetSolid(); - sampleSafety=motherSolid->DistanceToOut(repPoint); + repPoint = history.GetTransform(depth).TransformPoint(globalPoint); + motherPhysical = history.GetVolume(depth); + motherSolid = motherPhysical->GetLogicalVolume()->GetSolid(); + sampleSafety = motherSolid->DistanceToOut(repPoint); - if (sampleSafetyDistanceToOut(repPoint,repDirection,true, + &validExitNormal,&exitNormal); + if ( sampleStep<=ourStep ) { - repDirection=history.GetTransform(depth).TransformAxis(globalDirection); - sampleStep=motherSolid - ->DistanceToOut(repPoint,repDirection,true, - &validExitNormal,&exitNormal); - if (sampleStep<=ourStep) - { - ourStep=sampleStep; - exiting=true; - if (validExitNormal) - { - const G4RotationMatrix *rot=motherPhysical->GetRotation(); - if (rot) - { - exitNormal*=rot->inverse(); - } - } - } - else - { - validExitNormal=false; - } + ourStep = sampleStep; + exiting = true; + if ( validExitNormal ) + { + const G4RotationMatrix* rot = motherPhysical->GetRotation(); + if ( rot ) + { + exitNormal *= rot->inverse(); + } + } } + else + { + validExitNormal = false; + } + } // // Compute daughter safeties & intersections // - localNoDaughters=repLogical->GetNoDaughters(); - for (sampleNo=localNoDaughters-1;sampleNo>=0;sampleNo--) + localNoDaughters = repLogical->GetNoDaughters(); + for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + samplePhysical = repLogical->GetDaughter(sampleNo); + if ( samplePhysical!=blockedExitedVol ) { - samplePhysical=repLogical->GetDaughter(sampleNo); - if (samplePhysical!=blockedExitedVol) - { - samplePhysical->Setup(repPhysical); - G4AffineTransform sampleTf(samplePhysical->GetRotation(), - samplePhysical->GetTranslation()); - sampleTf.Invert(); - const G4ThreeVector samplePoint=sampleTf.TransformPoint(localPoint); - const G4VSolid *sampleSolid= - samplePhysical->GetLogicalVolume()->GetSolid(); - const G4double sampleSafety= - sampleSolid->DistanceToIn(samplePoint); - if (sampleSafetyDistanceToIn(samplePoint,sampleDirection); - if (sampleStep<=ourStep) - { - ourStep=sampleStep; - entering=true; - exiting=false; - *pBlockedPhysical=samplePhysical; - blockedReplicaNo=-1; - } - } - } + samplePhysical->Setup(repPhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), + samplePhysical->GetTranslation()); + sampleTf.Invert(); + const G4ThreeVector samplePoint = + sampleTf.TransformPoint(localPoint); + const G4VSolid* sampleSolid = + samplePhysical->GetLogicalVolume()->GetSolid(); + const G4double sampleSafety = + sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafetyDistanceToIn(samplePoint,sampleDirection); + if ( sampleStep<=ourStep ) + { + ourStep = sampleStep; + entering = true; + exiting = false; + *pBlockedPhysical = samplePhysical; + blockedReplicaNo = -1; + } + } } - newSafety=ourSafety; + } + newSafety = ourSafety; return ourStep; } +// ******************************************************************** +// ComputeTransformation +// +// Compute the isotropic distance to current volume's boundaries +// and to daughter volumes. +// ******************************************************************** +// G4double G4ReplicaNavigation::ComputeSafety(const G4ThreeVector &globalPoint, - const G4ThreeVector &localPoint, - G4NavigationHistory &history, - const G4double pProposedMaxLength ) -// -// Compute the isotropic distance to current volume's boundaries and -// to daughter volumes. - + const G4ThreeVector &localPoint, + G4NavigationHistory &history, + const G4double pProposedMaxLength ) { - G4VPhysicalVolume *repPhysical,*motherPhysical; - G4VPhysicalVolume *samplePhysical,*blockedExitedVol=0; + G4VPhysicalVolume *repPhysical, *motherPhysical; + G4VPhysicalVolume *samplePhysical, *blockedExitedVol=0; G4LogicalVolume *repLogical; G4VSolid *motherSolid; G4ThreeVector repPoint; G4double ourSafety=kInfinity; G4double sampleSafety; - G4int localNoDaughters,sampleNo; + G4int localNoDaughters, sampleNo; G4int depth; - repPhysical=history.GetTopVolume(); - repLogical=repPhysical->GetLogicalVolume(); + repPhysical = history.GetTopVolume(); + repLogical = repPhysical->GetLogicalVolume(); // // Compute intersection with replica boundaries & replica safety // - sampleSafety=DistanceToOut(history.GetTopVolume(), - history.GetTopReplicaNo(), - localPoint); - if (sampleSafetyGetLogicalVolume()->GetSolid(); - sampleSafety=motherSolid->DistanceToOut(repPoint); + repPoint = history.GetTransform(depth).TransformPoint(globalPoint); + motherPhysical = history.GetVolume(depth); + motherSolid = motherPhysical->GetLogicalVolume()->GetSolid(); + sampleSafety = motherSolid->DistanceToOut(repPoint); - if (sampleSafetyGetNoDaughters(); - for (sampleNo=localNoDaughters-1;sampleNo>=0;sampleNo--) + localNoDaughters = repLogical->GetNoDaughters(); + for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + samplePhysical = repLogical->GetDaughter(sampleNo); + if ( samplePhysical!=blockedExitedVol ) { - samplePhysical=repLogical->GetDaughter(sampleNo); - if (samplePhysical!=blockedExitedVol) - { - samplePhysical->Setup(repPhysical); - G4AffineTransform sampleTf(samplePhysical->GetRotation(), - samplePhysical->GetTranslation()); - sampleTf.Invert(); - const G4ThreeVector samplePoint=sampleTf.TransformPoint(localPoint); - const G4VSolid *sampleSolid=samplePhysical - ->GetLogicalVolume() - ->GetSolid(); - const G4double sampleSafety=sampleSolid - ->DistanceToIn(samplePoint); - if (sampleSafetySetup(repPhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), + samplePhysical->GetTranslation()); + sampleTf.Invert(); + const G4ThreeVector samplePoint = + sampleTf.TransformPoint(localPoint); + const G4VSolid *sampleSolid = + samplePhysical->GetLogicalVolume()->GetSolid(); + const G4double sampleSafety = + sampleSolid->DistanceToIn(samplePoint); + if ( sampleSafety=0;mdepth--) + for ( mdepth=cdepth-1; mdepth>=0; mdepth-- ) + { + if ( history.GetVolumeType(mdepth)!=kReplica ) { - if (history.GetVolumeType(mdepth)!=kReplica) - { - pNRMother=history.GetVolume(mdepth); - break; - } - } - - if( pNRMother == 0 ) - { - // All the tree of mother volumes were Replicas. - // This is an error, as the World volume must be a Placement - // - G4Exception( "G4ReplicaNavigation::BackLocate - World volume must be a Placement" ); + pNRMother = history.GetVolume(mdepth); + break; } + } + if( pNRMother==0 ) + { + // All the tree of mother volumes were Replicas. + // This is an error, as the World volume must be a Placement + // + G4cerr << "The World volume must be a Placement!" << G4endl; + G4Exception("ERROR - G4ReplicaNavigation::BackLocate()"); + } - motherSolid=pNRMother->GetLogicalVolume()->GetSolid(); - goodPoint=history.GetTransform(mdepth).TransformPoint(globalPoint); - insideCode=motherSolid->Inside(goodPoint); - if (insideCode==kOutside||insideCode==kSurface&&exiting) - { - // Outside mother -> back up to mother level - // Locate.. in Navigator will back up one more level - // localPoint not required - // - history.BackLevel(cdepth-mdepth); - // localPoint=goodPoint; - } + motherSolid = pNRMother->GetLogicalVolume()->GetSolid(); + goodPoint = history.GetTransform(mdepth).TransformPoint(globalPoint); + insideCode = motherSolid->Inside(goodPoint); + if ( (insideCode==kOutside)||(insideCode==kSurface)&&exiting ) + { + // Outside mother -> back up to mother level + // Locate.. in Navigator will back up one more level + // localPoint not required + // + history.BackLevel(cdepth-mdepth); + // localPoint = goodPoint; + } else + { + notKnownInside = false; + + // Still within replications + // Check down: if on outside stop at this level + // + for ( depth=mdepth+1; depth aNavigationLevelAllocator; G4Allocator aNavigLevelRepAllocator; -// Ditto: correct order initialisation of class (class) data members -const G4double G4FieldManager::fDefault_Delta_Intersection_Val= 0.1 * mm; -const G4double G4FieldManager::fDefault_Delta_One_Step_Value = 0.25 * mm; - -// const G4double G4PropagatorInField::fDefault_Delta_Intersection_Val= 0.1 * mm; -// const G4double G4PropagatorInField::fDefault_Delta_One_Step_Value = 0.25 * mm; -// const G4double G4PropagatorInField::fEpsilonMin = 1.0e-10 ; - G4TransportationManager* G4TransportationManager::fTransportationManager=0; G4TransportationManager::G4TransportationManager() @@ -65,11 +58,12 @@ G4TransportationManager::G4TransportationManager() } else { - G4Exception("Only ONE instance of G4TransportationManager is allowed!"); + G4cerr << "Only ONE instance of G4TransportationManager is allowed!" + << G4endl; + G4Exception("ERROR - G4TransportationManager::G4TransportationManager()"); } } - G4TransportationManager::~G4TransportationManager() { delete fGeomMessenger; @@ -78,7 +72,6 @@ G4TransportationManager::~G4TransportationManager() delete fFieldManager; } - G4TransportationManager* G4TransportationManager::GetTransportationManager() { static G4TransportationManager theInstance; diff --git a/source/persistency/global/include/G4VMaterialMap.hh b/source/geometry/volumes/src/G4VCurvedTrajectoryFilter.cc similarity index 56% rename from source/persistency/global/include/G4VMaterialMap.hh rename to source/geometry/volumes/src/G4VCurvedTrajectoryFilter.cc index 55b499a05b..7f8a510c30 100644 --- a/source/persistency/global/include/G4VMaterialMap.hh +++ b/source/geometry/volumes/src/G4VCurvedTrajectoryFilter.cc @@ -21,46 +21,33 @@ // ******************************************************************** // // -// $Id: G4VMaterialMap.hh,v 1.2 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// $Id: G4VCurvedTrajectoryFilter.cc,v 1.3 2002/11/30 17:22:37 stesting Exp $ +// GEANT4 tag $Name: geant4-05-00 $ -#ifndef G4VMaterialMap_hh -#define G4VMaterialMap_hh 1 +#include "G4VCurvedTrajectoryFilter.hh" -// class description: -// -// This is an abstract base class for bookkeeping the material name -// for retrieving persistent geometry. -// User must provide the appropriate class for constructing material -// objects from material name when retrieving a stored persistent -// geometry. -// The virtual method LookUp() will be invoked from G4PersistentGeomMan. -// +G4std::vector* +G4VCurvedTrajectoryFilter::GimmeThePointsAndForgetThem() { + G4std::vector* tmp = fpFilteredPoints; + // ParticleChangeForTransport invokes this method (via + // PropagatorInField) at every Step, even if the step did not + // involve PropagatorInField. Must, therefore, ensure that points + // submitted by previous invocations of PIF are not + // copied. Therefore the points must be cleared. (Note that the + // responsibility for deleting the vector lies with the + // SmoothTrajctoryPoint, which is the vector's final destination.) + // (jacek 08/11/2002) + fpFilteredPoints = NULL; + return tmp; +} -#include "globals.hh" -#include "G4Material.hh" - -class G4VMaterialMap -{ - public: - static G4VMaterialMap* GetMaterialMap(); - // Static method to return the pointer to the singleton object. - // Note that this method does NOT create the singleton object. - - protected: - G4VMaterialMap(); - - public: - virtual ~G4VMaterialMap(); - - private: - static G4VMaterialMap * fMaterialMap; - - public: // with description - virtual G4Material* LookUp(const G4String aName)=0; - // Returns a pointer to the material - -}; - -#endif +void +G4VCurvedTrajectoryFilter::CreateNewTrajectorySegment( ) { + if (fpFilteredPoints) { + // GimmePoints has not been called (it would have set the + // pointer to NULL), therefore nobody has taken charge of the + // points and they will never be deleted! + G4cout << "!!!!!!!! Filter: auxliary points are being memory leaked !!!!!" << G4endl; + } + fpFilteredPoints = new G4std::vector; +} diff --git a/source/geometry/volumes/src/G4VoxelNavigation.cc b/source/geometry/volumes/src/G4VoxelNavigation.cc index d81cfa1f3c..944cee9823 100644 --- a/source/geometry/volumes/src/G4VoxelNavigation.cc +++ b/source/geometry/volumes/src/G4VoxelNavigation.cc @@ -21,16 +21,14 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.cc,v 1.10 2002/05/15 10:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VoxelNavigation.cc,v 1.11 2002/08/06 10:35:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4VoxelNavigation Implementation // +// Author: P.Kent, 1996 // -// Modified by: -// J. Apostolakis, 29 Apr 98 Fixed error in LocateNextVoxel that -// ignored voxels at lower levels // ******************************************************************** #include "G4VoxelNavigation.hh" diff --git a/source/global/HEPGeometry/include/G4LorentzRotation.hh b/source/global/HEPGeometry/include/G4LorentzRotation.hh index a66b74d3ce..6fa31c7914 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4LorentzRotation_hh #define G4LorentzRotation_hh diff --git a/source/global/HEPGeometry/include/G4LorentzVector.hh b/source/global/HEPGeometry/include/G4LorentzVector.hh index 1b10789b9e..27549b105a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4LorentzVector_hh #define G4LorentzVector_hh diff --git a/source/global/HEPGeometry/include/G4Normal3D.hh b/source/global/HEPGeometry/include/G4Normal3D.hh index 9d78f70747..f3e658afcb 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NORMAL3D_HH #define G4NORMAL3D_HH diff --git a/source/global/HEPGeometry/include/G4Plane3D.hh b/source/global/HEPGeometry/include/G4Plane3D.hh index 3eb7adb902..de7d97c623 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4PLANE3D_HH #define G4PLANE3D_HH diff --git a/source/global/HEPGeometry/include/G4Point3D.hh b/source/global/HEPGeometry/include/G4Point3D.hh index 9a5242b6bc..8fd624ce2a 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4POINT3D_HH #define G4POINT3D_HH diff --git a/source/global/HEPGeometry/include/G4Transform3D.hh b/source/global/HEPGeometry/include/G4Transform3D.hh index 579bbe3f06..4b924aa68c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4TRANSFORM3D_HH #define G4TRANSFORM3D_HH diff --git a/source/global/HEPGeometry/include/G4Vector3D.hh b/source/global/HEPGeometry/include/G4Vector3D.hh index 3a7479346a..d5d88b8f60 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VECTOR3D_HH #define G4VECTOR3D_HH diff --git a/source/global/HEPGeometry/include/geomdefs.hh b/source/global/HEPGeometry/include/geomdefs.hh index 75a28ee3dd..498c30fdb1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh index daf631a69b..59137f167e 100644 --- a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh +++ b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChebyshevApproximation.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4DataInterpolation.hh b/source/global/HEPNumerics/include/G4DataInterpolation.hh index 250be7cfc1..1088dddf21 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh index 29a8b8e0ec..754e2969eb 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh index ac912132f6..c0eb4e1808 100644 --- a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh +++ b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh index 5d9d1c6f9d..5d77caccda 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh index 8390ffcc9e..c8be537371 100644 --- a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh index f2f79afcdc..4c137024bf 100644 --- a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLegendreQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.hh b/source/global/HEPNumerics/include/G4Integrator.hh index 03616e6529..4b03184a59 100644 --- a/source/global/HEPNumerics/include/G4Integrator.hh +++ b/source/global/HEPNumerics/include/G4Integrator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.hh,v 1.5 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.icc b/source/global/HEPNumerics/include/G4Integrator.icc index d2802319f6..f6d3498da6 100644 --- a/source/global/HEPNumerics/include/G4Integrator.icc +++ b/source/global/HEPNumerics/include/G4Integrator.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Integrator.icc,v 1.7 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Integrator.icc,v 1.9 2002/12/05 15:39:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation of G4Integrator methods. // @@ -372,6 +372,8 @@ G4Integrator::Legendre( T& typeT, F f, G4double a, G4double b, G4int nLegen integral += fWeight[i]*( (typeT.*f)(xMean + dx) + (typeT.*f)(xMean - dx) ) ; } + delete[] fAbscissa; + delete[] fWeight; return integral *= xDiff ; } @@ -443,6 +445,9 @@ Legendre( G4double (*f)(G4double), G4double a, G4double b, G4int nLegendre) dx = xDiff*fAbscissa[i] ; integral += fWeight[i]*( (*f)(xMean + dx) + (*f)(xMean - dx) ) ; } + delete[] fAbscissa; + delete[] fWeight; + return integral *= xDiff ; } @@ -756,6 +761,8 @@ G4Integrator::Chebyshev( T& typeT, F f, G4double a, dx = xDiff*fAbscissa[i] ; integral += fWeight[i]*(typeT.*f)(xMean + dx) ; } + delete[] fAbscissa; + delete[] fWeight; return integral *= xDiff ; } @@ -799,6 +806,8 @@ G4Integrator::Chebyshev( G4double (*f)(G4double), dx = xDiff*fAbscissa[i] ; integral += fWeight[i]*(*f)(xMean + dx) ; } + delete[] fAbscissa; + delete[] fWeight; return integral *= xDiff ; } @@ -821,7 +830,7 @@ G4Integrator::Laguerre( T& typeT, F f, G4double alpha, G4int nLaguerre ) const G4double tolerance = 1.0e-10 ; const G4int maxNumber = 12 ; G4int i, j, k ; - G4double newton, newton1, temp1, temp2, temp3, temp, cofi ; + G4double newton=0., newton1, temp1, temp2, temp3, temp, cofi ; G4double integral = 0.0 ; G4int fNumber = nLaguerre ; @@ -832,7 +841,7 @@ 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) { @@ -841,7 +850,7 @@ newton = (1.0 + alpha)*(3.0 + 0.92*alpha)/(1.0 + 2.4*fNumber + 1.8*alpha) ; else { cofi = i - 2 ; -newton += ((1.0+2.55*cofi)/(1.9*cofi) + 1.26*cofi*alpha/(1.0+3.5*cofi))* + 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++) @@ -880,6 +889,8 @@ newton += ((1.0+2.55*cofi)/(1.9*cofi) + 1.26*cofi*alpha/(1.0+3.5*cofi))* { integral += fWeight[i]*(typeT.*f)(fAbscissa[i]) ; } + delete[] fAbscissa; + delete[] fWeight; return integral ; } @@ -906,7 +917,7 @@ G4Integrator::Laguerre( G4double (*f)(G4double), const G4double tolerance = 1.0e-10 ; const G4int maxNumber = 12 ; G4int i, j, k ; - G4double newton, newton1, temp1, temp2, temp3, temp, cofi ; + G4double newton=0., newton1, temp1, temp2, temp3, temp, cofi ; G4double integral = 0.0 ; G4int fNumber = nLaguerre ; @@ -965,6 +976,8 @@ newton += ((1.0+2.55*cofi)/(1.9*cofi) + 1.26*cofi*alpha/(1.0+3.5*cofi))* { integral += fWeight[i]*(*f)(fAbscissa[i]) ; } + delete[] fAbscissa; + delete[] fWeight; return integral ; } @@ -1015,7 +1028,7 @@ G4double G4Integrator::Hermite( T& typeT, F f, G4int nHermite) G4int i, j, k ; G4double integral = 0.0 ; - G4double newton, newton1, temp1, temp2, temp3, temp ; + G4double newton=0., newton1, temp1, temp2, temp3, temp ; G4double piInMinusQ = pow(pi,-0.25) ; // 1.0/sqrt(sqrt(pi)) ?? @@ -1082,6 +1095,8 @@ G4double G4Integrator::Hermite( T& typeT, F f, G4int nHermite) integral += fWeight[i]*( (typeT.*f)(fAbscissa[i]) + (typeT.*f)(-fAbscissa[i]) ) ; } + delete[] fAbscissa; + delete[] fWeight; return integral ; } @@ -1108,7 +1123,7 @@ G4double G4Integrator::Hermite( G4double (*f)(G4double), G4int nHermite) G4int i, j, k ; G4double integral = 0.0 ; - G4double newton, newton1, temp1, temp2, temp3, temp ; + G4double newton=0., newton1, temp1, temp2, temp3, temp ; G4double piInMinusQ = pow(pi,-0.25) ; // 1.0/sqrt(sqrt(pi)) ?? @@ -1174,6 +1189,8 @@ G4double G4Integrator::Hermite( G4double (*f)(G4double), G4int nHermite) { integral += fWeight[i]*( (*f)(fAbscissa[i]) + (*f)(-fAbscissa[i]) ) ; } + delete[] fAbscissa; + delete[] fWeight; return integral ; } @@ -1194,8 +1211,8 @@ G4double G4Integrator::Jacobi( T& typeT, F f, G4double alpha, const G4double tolerance = 1.0e-12 ; const G4double maxNumber = 12 ; G4int i, k, j ; - G4double alphaBeta, alphaReduced, betaReduced, root1, root2, root3 ; - G4double a, b, c, newton1, newton2, newton3, newton, temp, root, rootTemp ; + G4double alphaBeta, alphaReduced, betaReduced, root1=0., root2=0., root3=0. ; + G4double a, b, c, newton1, newton2, newton3, newton, temp, root=0., rootTemp ; G4int fNumber = nJacobi ; G4double* fAbscissa = new G4double[fNumber] ; @@ -1291,6 +1308,8 @@ G4double G4Integrator::Jacobi( T& typeT, F f, G4double alpha, { integral += fWeight[i]*(typeT.*f)(fAbscissa[i]) ; } + delete[] fAbscissa; + delete[] fWeight; return integral ; } @@ -1317,8 +1336,8 @@ G4double G4Integrator::Jacobi( G4double (*f)(G4double), G4double alpha, const G4double tolerance = 1.0e-12 ; const G4double maxNumber = 12 ; G4int i, k, j ; - G4double alphaBeta, alphaReduced, betaReduced, root1, root2, root3 ; - G4double a, b, c, newton1, newton2, newton3, newton, temp, root, rootTemp ; + G4double alphaBeta, alphaReduced, betaReduced, root1=0., root2=0., root3=0. ; + G4double a, b, c, newton1, newton2, newton3, newton, temp, root=0., rootTemp ; G4int fNumber = nJacobi ; G4double* fAbscissa = new G4double[fNumber] ; @@ -1414,6 +1433,8 @@ G4double G4Integrator::Jacobi( G4double (*f)(G4double), G4double alpha, { integral += fWeight[i]*(*f)(fAbscissa[i]) ; } + delete[] fAbscissa; + delete[] fWeight; return integral ; } diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.hh b/source/global/HEPNumerics/include/G4PolynomialSolver.hh index 216f288ff4..80ee85f673 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.icc b/source/global/HEPNumerics/include/G4PolynomialSolver.icc index 55e57d5488..1368cef1e6 100644 --- a/source/global/HEPNumerics/include/G4PolynomialSolver.icc +++ b/source/global/HEPNumerics/include/G4PolynomialSolver.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolynomialSolver.icc,v 1.6 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4SimpleIntegration.hh b/source/global/HEPNumerics/include/G4SimpleIntegration.hh index 01ac4cf699..c85647ea45 100644 --- a/source/global/HEPNumerics/include/G4SimpleIntegration.hh +++ b/source/global/HEPNumerics/include/G4SimpleIntegration.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleIntegration.hh,v 1.3 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh index 1b24ab8f6e..bf2762e97c 100644 --- a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh +++ b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGaussianQuadrature.hh,v 1.4 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc index 60810fc214..009c5dcc31 100644 --- a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc +++ b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChebyshevApproximation.cc,v 1.3 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4ChebyshevApproximation.hh" diff --git a/source/global/HEPNumerics/src/G4DataInterpolation.cc b/source/global/HEPNumerics/src/G4DataInterpolation.cc index 19de2fdb51..fc9ad0c83d 100644 --- a/source/global/HEPNumerics/src/G4DataInterpolation.cc +++ b/source/global/HEPNumerics/src/G4DataInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4DataInterpolation.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4DataInterpolation.hh" diff --git a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc index d81c2d7b1a..eda65eec58 100644 --- a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc +++ b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussChebyshevQ.cc,v 1.3 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4GaussChebyshevQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc index 73a8b562d1..8169becec1 100644 --- a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc +++ b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4GaussHermiteQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc index 38b73b40d8..13fb5edae3 100644 --- a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc +++ b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussJacobiQ.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4GaussJacobiQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc index b6c9da205b..56040c6d0b 100644 --- a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc +++ b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4GaussLaguerreQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc index e951bfb449..2913674fad 100644 --- a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc +++ b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussLegendreQ.cc,v 1.3 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4GaussLegendreQ.hh" diff --git a/source/global/HEPNumerics/src/G4SimpleIntegration.cc b/source/global/HEPNumerics/src/G4SimpleIntegration.cc index 8a76188b17..0380707c92 100644 --- a/source/global/HEPNumerics/src/G4SimpleIntegration.cc +++ b/source/global/HEPNumerics/src/G4SimpleIntegration.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleIntegration.cc,v 1.3 2001/07/11 10:00:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation file for simple integration methods // diff --git a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc index 4bb5c73062..876d4b135c 100644 --- a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc +++ b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGaussianQuadrature.cc,v 1.3 2001/07/11 10:00:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Implementation file for G4VGaussianQuadrature virtual base class // diff --git a/source/global/HEPRandom/include/G4Poisson.hh b/source/global/HEPRandom/include/G4Poisson.hh index 7c078fa73b..cb3acd6e26 100644 --- a/source/global/HEPRandom/include/G4Poisson.hh +++ b/source/global/HEPRandom/include/G4Poisson.hh @@ -22,7 +22,7 @@ // // // $Id: G4Poisson.hh,v 1.6 2001/07/11 10:00:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/HEPRandom/include/Randomize.hh b/source/global/HEPRandom/include/Randomize.hh index b4606c2fc9..c99276a8cf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef randomize_h #define randomize_h 1 diff --git a/source/global/History b/source/global/History index 9aacb19ec6..b28bae4533 100644 --- a/source/global/History +++ b/source/global/History @@ -1,4 +1,4 @@ -$Id: History,v 1.101 2002/05/30 11:58:14 gcosmo Exp $ +$Id: History,v 1.107 2002/12/06 19:26:42 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,29 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +December 6, 2002 G.Cosmo (global-V04-01-05) +- G4Integrator.icc: fixed some uninitialised variables. +- Fixed unit test for G4Integrator. + +December 4, 2002 M.Asai (global-V04-01-03, global-V04-01-04) +- Migration to new G4ApplicationState. + +November 20, 2002 G.Cosmo (global-V04-01-02) +- G4UnitsTable[.hh.cc]: made GetUnitsTable static method non inlined. +- G4Integrator[.icc]: plugged minor memory leak. + +August 19, 2002 M.Asai (global-V04-01-01) +- Introducing a new G4Exception scheme. + Added : G4VStateDependent.hh G4VStateDependent.cc G4ExceptionSeverity.hh + Modified : G4Exception.cc G4StateManager.hh globals.hh + +June 21, 2002 G.Cosmo (global-V04-01-00) +- G4Allocator.hh: changed definition of page size to become data-member of + G4Allocator. fPageSize is now computed according to the size of the object + to be allocated. The default size is 1024 bytes for objects whose size is + less than 512 bytes, 10 times the size of the object otherwise. + To be benchmarked before put it in production. + May 30, 2002 G.Cosmo (global-V04-00-08) - G4DataVector.cc: initialise to zero values in collection for contructor taking capacity. diff --git a/source/global/management/include/G4Allocator.hh b/source/global/management/include/G4Allocator.hh index 7bbf8e10f1..1ae6fe5cf3 100644 --- a/source/global/management/include/G4Allocator.hh +++ b/source/global/management/include/G4Allocator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Allocator.hh,v 1.10 2002/05/24 10:58:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Allocator.hh,v 1.11 2002/06/21 16:59:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -72,14 +72,14 @@ class G4Allocator G4AllocatorPage * fPages; G4AllocatorUnit * fFreeList; + + size_t fUnitSize, fPageSize; }; // ------------------------------------------------------------ // Inline implementation // ------------------------------------------------------------ -static const G4int G4AllocatorPageSize = 1024; - // ************************************************************ // G4Allocator constructor // ************************************************************ @@ -89,6 +89,8 @@ G4Allocator::G4Allocator() { fPages = 0; fFreeList = 0; + fUnitSize = sizeof(G4AllocatorUnit); + fPageSize = ( (fUnitSize < 512) ? 1024 : (fUnitSize*10) ); AddNewPage(); return; } @@ -179,11 +181,11 @@ void G4Allocator::AddNewPage() aPage = new G4AllocatorPage; aPage->fNext = fPages; aPage->fUnits = (G4AllocatorUnit *) - malloc(G4AllocatorPageSize); + malloc(fPageSize); fPages = aPage; for (unit_no = 0; - unit_no < (G4AllocatorPageSize / G4int(sizeof(G4AllocatorUnit))-1); + unit_no < G4int(fPageSize/fUnitSize - 1); ++unit_no) { aPage->fUnits[unit_no].fNext = &aPage->fUnits[unit_no + 1]; diff --git a/source/global/management/include/G4AllocatorPage.hh b/source/global/management/include/G4AllocatorPage.hh index 806a71292f..b396decf88 100644 --- a/source/global/management/include/G4AllocatorPage.hh +++ b/source/global/management/include/G4AllocatorPage.hh @@ -22,7 +22,7 @@ // // // $Id: G4AllocatorPage.hh,v 1.4 2002/05/21 10:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4AllocatorUnit.hh b/source/global/management/include/G4AllocatorUnit.hh index 7fb52bc170..ea862ad095 100644 --- a/source/global/management/include/G4AllocatorUnit.hh +++ b/source/global/management/include/G4AllocatorUnit.hh @@ -22,7 +22,7 @@ // // // $Id: G4AllocatorUnit.hh,v 1.4 2002/05/21 10:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4ApplicationState.hh b/source/global/management/include/G4ApplicationState.hh index 125bfeb12d..1e62c36128 100644 --- a/source/global/management/include/G4ApplicationState.hh +++ b/source/global/management/include/G4ApplicationState.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ApplicationState.hh,v 1.2 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ApplicationState.hh,v 1.3 2002/12/04 17:39:50 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4APPLICATIONSTATE_H @@ -33,34 +33,34 @@ // Specifies the state of the G4 application // // States: -// PreInit +// G4State_PreInit // At the very begining of the Application. G4StateManager starts // with this state. G4Initializer changes this state to Init when // G4Initializer::Initialize() method starts. At the moment of // the state change of PreInit->Init, no material, geometrical, // particle or physics process has been initialized. -// Init +// G4State_Init // During the G4Initializer::Initialize() method. G4Initializer // changes this state to Idle when all initialization procedures // are successfully Done. -// Idle +// G4State_Idle // Ready to start "BeamOn". G4RunManager changes this state to // GeomClosed when G4RunManager::BeamOn() method starts and // G4GeometryManager::CloseGeometry() is Done. At the end of // BeamOn() method, G4RunManager will reset the application state // to Idle after G4GeometryManager::OpenGeometry() is Done. -// GeomClosed +// G4State_GeomClosed // G4 is in this state between G4GeometryManager::CloseGeometry() // and G4GeometryManager::OpenGeometry(), but no event is in // progress. At the begining of each event (construction of a // G4Event object and primary particle generation), G4RunManager // changes this state to EventProc and resets to GeomClosed state // when G4EventManager::ProcessOneEvent() is over. -// EventProc +// G4State_EventProc // Processing an event. -// Quit +// G4State_Quit // G4 is in this state when the destructor of G4RunManager is invoked. -// Abort +// G4State_Abort // G4 is in this state when G4Exception is invoked. // // @@ -80,7 +80,8 @@ // enum G4ApplicationState - {PreInit, Init, Idle, GeomClosed, EventProc, Quit, Abort}; + {G4State_PreInit, G4State_Init, G4State_Idle, G4State_GeomClosed, + G4State_EventProc, G4State_Quit, G4State_Abort}; #endif diff --git a/source/global/management/include/G4DataVector.hh b/source/global/management/include/G4DataVector.hh index d4d693c275..4a66efaf98 100644 --- a/source/global/management/include/G4DataVector.hh +++ b/source/global/management/include/G4DataVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.hh,v 1.11 2002/04/19 07:10:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4ExceptionSeverity.hh b/source/global/management/include/G4ExceptionSeverity.hh new file mode 100644 index 0000000000..218d29bb52 --- /dev/null +++ b/source/global/management/include/G4ExceptionSeverity.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: G4ExceptionSeverity.hh,v 1.2 2002/08/26 14:56:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// Class Description: +// +// Specifies the severity of G4Exception +// +// FatalException +// Error is severe or it happens at the initialization time. +// Program should be aborted and core dump will be generated. +// +// FatalErrorInArgument +// Fatal error caused by most likely the mis-use of interfaces +// by the user's code. Program should be aborted and core dump +// will be generated. +// +// RunMustBeAborted +// Error happens at initialization of a run (ex. at the +// moment of closing geometry), or some unpleasant situation +// occurs during the event loop. Current run will be aborted +// and the application returns to "Idle" state. +// +// EventMustBeAborted +// Error happens during tracking a particle. The event currently +// being processed should be aborted, run will not be aborted. +// +// JustWarning +// Just display messages. +// + +#ifndef G4ExceptionSeverity_H +#define G4ExceptionSeverity_H 1 + +enum G4ExceptionSeverity + { FatalException, + FatalErrorInArgument, + RunMustBeAborted, + EventMustBeAborted, + JustWarning }; + +#endif + diff --git a/source/global/management/include/G4FastVector.hh b/source/global/management/include/G4FastVector.hh index 136aaccf7f..efe4497928 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.hh b/source/global/management/include/G4LPhysicsFreeVector.hh index df989cd262..e22f6680af 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.icc b/source/global/management/include/G4LPhysicsFreeVector.icc index ae4c2230ec..41bc6ffdf5 100644 --- a/source/global/management/include/G4LPhysicsFreeVector.icc +++ b/source/global/management/include/G4LPhysicsFreeVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.icc,v 1.5 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4OrderedTable.hh b/source/global/management/include/G4OrderedTable.hh index a3b7f480b4..c62ea60861 100644 --- a/source/global/management/include/G4OrderedTable.hh +++ b/source/global/management/include/G4OrderedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4OrderedTable.hh,v 1.10 2002/04/19 07:10:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsFreeVector.hh b/source/global/management/include/G4PhysicsFreeVector.hh index 3d548658e9..eedfd72012 100644 --- a/source/global/management/include/G4PhysicsFreeVector.hh +++ b/source/global/management/include/G4PhysicsFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsFreeVector.hh,v 1.8 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLinearVector.hh b/source/global/management/include/G4PhysicsLinearVector.hh index 45c06c1968..fbe8dcf1d0 100644 --- a/source/global/management/include/G4PhysicsLinearVector.hh +++ b/source/global/management/include/G4PhysicsLinearVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLinearVector.hh,v 1.7 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLnVector.hh b/source/global/management/include/G4PhysicsLnVector.hh index 9495826db2..7b67c3f11d 100644 --- a/source/global/management/include/G4PhysicsLnVector.hh +++ b/source/global/management/include/G4PhysicsLnVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLnVector.hh,v 1.8 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLogVector.hh b/source/global/management/include/G4PhysicsLogVector.hh index bba47a4351..f014074b1b 100644 --- a/source/global/management/include/G4PhysicsLogVector.hh +++ b/source/global/management/include/G4PhysicsLogVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLogVector.hh,v 1.7 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.hh b/source/global/management/include/G4PhysicsOrderedFreeVector.hh index 43ce239e57..70058b64ca 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Definition diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.icc b/source/global/management/include/G4PhysicsOrderedFreeVector.icc index 81cef83176..8e55689c13 100644 --- a/source/global/management/include/G4PhysicsOrderedFreeVector.icc +++ b/source/global/management/include/G4PhysicsOrderedFreeVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.icc,v 1.6 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Inline Functions Definitions diff --git a/source/global/management/include/G4PhysicsTable.hh b/source/global/management/include/G4PhysicsTable.hh index a68a374ce7..95ccc74248 100644 --- a/source/global/management/include/G4PhysicsTable.hh +++ b/source/global/management/include/G4PhysicsTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.hh,v 1.11 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsTable.icc b/source/global/management/include/G4PhysicsTable.icc index 572a009995..a560f2e1e0 100644 --- a/source/global/management/include/G4PhysicsTable.icc +++ b/source/global/management/include/G4PhysicsTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.icc,v 1.4 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsVector.hh b/source/global/management/include/G4PhysicsVector.hh index 36dd08ba71..d7e149f952 100644 --- a/source/global/management/include/G4PhysicsVector.hh +++ b/source/global/management/include/G4PhysicsVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.hh,v 1.10 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVector.icc b/source/global/management/include/G4PhysicsVector.icc index b399d4116d..75544c8f23 100644 --- a/source/global/management/include/G4PhysicsVector.icc +++ b/source/global/management/include/G4PhysicsVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.icc,v 1.7 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVectorType.hh b/source/global/management/include/G4PhysicsVectorType.hh index 152e2ce9f4..96f37d35f1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // diff --git a/source/global/management/include/G4ReferenceCountedHandle.hh b/source/global/management/include/G4ReferenceCountedHandle.hh index 050e8bda7c..230a753058 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4ReferenceCountedHandle diff --git a/source/global/management/include/G4RotationMatrix.hh b/source/global/management/include/G4RotationMatrix.hh index bbb2e0e8e9..0427522f74 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4SIunits.hh b/source/global/management/include/G4SIunits.hh index 63d9c72982..2fb279baea 100644 --- a/source/global/management/include/G4SIunits.hh +++ b/source/global/management/include/G4SIunits.hh @@ -22,7 +22,7 @@ // // // $Id: G4SIunits.hh,v 1.2 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/G4StateManager.hh b/source/global/management/include/G4StateManager.hh index fa80899b18..db561d7344 100644 --- a/source/global/management/include/G4StateManager.hh +++ b/source/global/management/include/G4StateManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StateManager.hh,v 1.6 2002/04/16 18:19:13 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StateManager.hh,v 1.7 2002/08/19 18:20:11 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -53,6 +53,7 @@ #include "globals.hh" #include "G4ApplicationState.hh" #include "G4VStateDependent.hh" +#include "G4VExceptionHandler.hh" class G4StateManager { @@ -127,12 +128,14 @@ private: G4VStateDependent* theBottomDependent; G4int suppressAbortion; 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; } }; #endif diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh index 827692d96a..1fe7b43543 100644 --- a/source/global/management/include/G4String.hh +++ b/source/global/management/include/G4String.hh @@ -22,7 +22,7 @@ // // // $Id: G4String.hh,v 1.3 2002/03/25 15:32:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc index 7deda0dba0..2cb1b62215 100644 --- a/source/global/management/include/G4String.icc +++ b/source/global/management/include/G4String.icc @@ -22,7 +22,7 @@ // // // $Id: G4String.icc,v 1.3 2002/03/25 15:32:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4ThreeVector.hh b/source/global/management/include/G4ThreeVector.hh index a04bba3dae..e8b315e4c7 100644 --- a/source/global/management/include/G4ThreeVector.hh +++ b/source/global/management/include/G4ThreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ThreeVector.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Timer.hh b/source/global/management/include/G4Timer.hh index e833d43f83..8a2ecb7e77 100644 --- a/source/global/management/include/G4Timer.hh +++ b/source/global/management/include/G4Timer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Timer.hh,v 1.11 2001/07/11 10:00:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Tokenizer.hh b/source/global/management/include/G4Tokenizer.hh index 383da9d108..ca40452742 100644 --- a/source/global/management/include/G4Tokenizer.hh +++ b/source/global/management/include/G4Tokenizer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Tokenizer.hh,v 1.1 2001/10/11 14:04:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4Types.hh b/source/global/management/include/G4Types.hh index 727b2b3c81..88e65d18ed 100644 --- a/source/global/management/include/G4Types.hh +++ b/source/global/management/include/G4Types.hh @@ -22,7 +22,7 @@ // // // $Id: G4Types.hh,v 1.5 2001/07/11 10:00:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 native types diff --git a/source/global/management/include/G4UnitsTable.hh b/source/global/management/include/G4UnitsTable.hh index eb4c51a33e..530b1badb2 100644 --- a/source/global/management/include/G4UnitsTable.hh +++ b/source/global/management/include/G4UnitsTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.hh,v 1.11 2001/07/11 10:00:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnitsTable.hh,v 1.12 2002/11/20 11:25:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ----------------------------------------------------------------- @@ -89,7 +89,7 @@ public: // with description static void BuildUnitsTable(); static void PrintUnitsTable(); - static G4UnitsTable& GetUnitsTable() {return theUnitsTable;} + static G4UnitsTable& GetUnitsTable(); static G4double GetValueOf (G4String); static G4String GetCategory(G4String); diff --git a/source/global/management/include/G4UserLimits.hh b/source/global/management/include/G4UserLimits.hh index 8318f44c46..3db9d792af 100644 --- a/source/global/management/include/G4UserLimits.hh +++ b/source/global/management/include/G4UserLimits.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserLimits.hh,v 1.7 2001/07/11 10:00:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // class G4UserLimits diff --git a/source/global/management/include/G4UserLimits.icc b/source/global/management/include/G4UserLimits.icc index c23f5dd58b..f2a4c641a6 100644 --- a/source/global/management/include/G4UserLimits.icc +++ b/source/global/management/include/G4UserLimits.icc @@ -22,7 +22,7 @@ // // // $Id: G4UserLimits.icc,v 1.6 2001/07/11 10:00:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/global/management/include/G4VExceptionHandler.hh b/source/global/management/include/G4VExceptionHandler.hh new file mode 100644 index 0000000000..10bae97661 --- /dev/null +++ b/source/global/management/include/G4VExceptionHandler.hh @@ -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: G4VExceptionHandler.hh,v 1.1 2002/08/19 18:20:11 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// +// ---------------- G4VExceptionHandler ---------------- +// +// Authors: M.Asai - August 2002 +// +// ------------------------------------------------------------ +// +// Class description: +// +// Abstract base class which need to be notified when G4Exception occurs. +// The concrete class object derived from this base class will be automatically +// registered to G4StateManager and the virtual method Notify() will be invoked +// when G4Exception occurs. + +// ------------------------------------------------------------ + +#ifndef G4VExceptionHandler_h +#define G4VExceptionHandler_h 1 + +#include "globals.hh" +#include "G4ExceptionSeverity.hh" + +class G4VExceptionHandler +{ + +public: + + G4VExceptionHandler(); + virtual ~G4VExceptionHandler(); + G4int operator==(const G4VExceptionHandler &right) const; + G4int operator!=(const G4VExceptionHandler &right) const; + +public: // with description + + virtual G4bool Notify(const char* originOfException, + const char* exceptionCode, + G4ExceptionSeverity severity, + const char* description) = 0; + // Pure virtual method which will be invoked by G4StateManager when + // G4Exception occurs. + // If TRUE returned, core dump will be generated, while FALSE returned, + // program execution continues. + +private: + + G4VExceptionHandler(const G4VExceptionHandler &right); + G4VExceptionHandler& operator=(const G4VExceptionHandler &right); + +}; + +#endif diff --git a/source/global/management/include/G4VStateDependent.hh b/source/global/management/include/G4VStateDependent.hh index 0680eceb36..fd3f1b7692 100644 --- a/source/global/management/include/G4VStateDependent.hh +++ b/source/global/management/include/G4VStateDependent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStateDependent.hh,v 1.3 2001/07/11 10:00:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4coutDestination.hh b/source/global/management/include/G4coutDestination.hh index 1c5a7241e2..2b7ae1e3dd 100644 --- a/source/global/management/include/G4coutDestination.hh +++ b/source/global/management/include/G4coutDestination.hh @@ -22,7 +22,7 @@ // // // $Id: G4coutDestination.hh,v 1.4 2001/07/11 10:00:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4ios.hh b/source/global/management/include/G4ios.hh index 9a726dbc11..3e271c836e 100644 --- a/source/global/management/include/G4ios.hh +++ b/source/global/management/include/G4ios.hh @@ -22,7 +22,7 @@ // // // $Id: G4ios.hh,v 1.6 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.hh b/source/global/management/include/G4strstreambuf.hh index 258cf78f05..85127badee 100644 --- a/source/global/management/include/G4strstreambuf.hh +++ b/source/global/management/include/G4strstreambuf.hh @@ -22,7 +22,7 @@ // // // $Id: G4strstreambuf.hh,v 1.8 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.icc b/source/global/management/include/G4strstreambuf.icc index 0064cb82cb..e447c35b6c 100644 --- a/source/global/management/include/G4strstreambuf.icc +++ b/source/global/management/include/G4strstreambuf.icc @@ -22,7 +22,7 @@ // // // $Id: G4strstreambuf.icc,v 1.6 2002/05/24 15:01:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/PhysicalConstants.h b/source/global/management/include/PhysicalConstants.h index be998e3951..cd79648d3e 100644 --- a/source/global/management/include/PhysicalConstants.h +++ b/source/global/management/include/PhysicalConstants.h @@ -22,7 +22,7 @@ // // // $Id: PhysicalConstants.h,v 1.6 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/SystemOfUnits.h b/source/global/management/include/SystemOfUnits.h index dbfb3c471a..2cf0c50ea0 100644 --- a/source/global/management/include/SystemOfUnits.h +++ b/source/global/management/include/SystemOfUnits.h @@ -22,7 +22,7 @@ // // // $Id: SystemOfUnits.h,v 1.7 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/g4std/algorithm b/source/global/management/include/g4std/algorithm index fc9376d66b..355d732c94 100644 --- a/source/global/management/include/g4std/algorithm +++ b/source/global/management/include/g4std/algorithm @@ -6,7 +6,7 @@ // and all its terms. // // $Id: algorithm,v 1.3 1999/11/16 17:42:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- algorithm ---------------- // diff --git a/source/global/management/include/g4std/complex b/source/global/management/include/g4std/complex index 288d61b8f9..a84ca6c4cf 100644 --- a/source/global/management/include/g4std/complex +++ b/source/global/management/include/g4std/complex @@ -7,7 +7,7 @@ // // // $Id: complex,v 1.3 2000/06/15 17:32:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- complex ---------------- // diff --git a/source/global/management/include/g4std/deque b/source/global/management/include/g4std/deque index 5b034e0d62..2c6507cfd5 100644 --- a/source/global/management/include/g4std/deque +++ b/source/global/management/include/g4std/deque @@ -6,7 +6,7 @@ // and all its terms. // // $Id: deque,v 1.2 2001/10/22 14:33:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- deque ---------------- // diff --git a/source/global/management/include/g4std/fstream b/source/global/management/include/g4std/fstream index 11c6abec4d..b564e31194 100644 --- a/source/global/management/include/g4std/fstream +++ b/source/global/management/include/g4std/fstream @@ -6,7 +6,7 @@ // and all its terms. // // $Id: fstream,v 1.3 1999/11/16 17:43:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- fstream ---------------- // diff --git a/source/global/management/include/g4std/functional b/source/global/management/include/g4std/functional index 12036c3500..58415ee7b5 100644 --- a/source/global/management/include/g4std/functional +++ b/source/global/management/include/g4std/functional @@ -6,7 +6,7 @@ // and all its terms. // // $Id: functional,v 1.3 1999/11/16 17:43:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- functional ---------------- // diff --git a/source/global/management/include/g4std/iomanip b/source/global/management/include/g4std/iomanip index ba8e72c785..6a97a1ac0c 100644 --- a/source/global/management/include/g4std/iomanip +++ b/source/global/management/include/g4std/iomanip @@ -6,7 +6,7 @@ // and all its terms. // // $Id: iomanip,v 1.3 1999/11/16 17:43:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- iomanip ---------------- // diff --git a/source/global/management/include/g4std/iostream b/source/global/management/include/g4std/iostream index 9c6d919026..1734b1cf34 100644 --- a/source/global/management/include/g4std/iostream +++ b/source/global/management/include/g4std/iostream @@ -6,7 +6,7 @@ // and all its terms. // // $Id: iostream,v 1.3 1999/11/16 17:43:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- iostream ---------------- // diff --git a/source/global/management/include/g4std/list b/source/global/management/include/g4std/list index a74ff67339..0c0f3c5da8 100644 --- a/source/global/management/include/g4std/list +++ b/source/global/management/include/g4std/list @@ -6,7 +6,7 @@ // and all its terms. // // $Id: list,v 1.1 2000/08/22 07:54:26 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- list ---------------- // diff --git a/source/global/management/include/g4std/map b/source/global/management/include/g4std/map index 531753ba29..14103df757 100644 --- a/source/global/management/include/g4std/map +++ b/source/global/management/include/g4std/map @@ -6,7 +6,7 @@ // and all its terms. // // $Id: map,v 1.3 1999/11/16 17:43:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- map ---------------- // diff --git a/source/global/management/include/g4std/queue b/source/global/management/include/g4std/queue index bfbc362517..ac80c1f18f 100644 --- a/source/global/management/include/g4std/queue +++ b/source/global/management/include/g4std/queue @@ -6,7 +6,7 @@ // and all its terms. // // $Id: queue,v 1.1 2000/08/02 09:49:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- queue ---------------- // diff --git a/source/global/management/include/g4std/set b/source/global/management/include/g4std/set index 6fa768532a..5e80c3cfc4 100644 --- a/source/global/management/include/g4std/set +++ b/source/global/management/include/g4std/set @@ -6,7 +6,7 @@ // and all its terms. // // $Id: set,v 1.3 1999/11/16 17:43:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- set ---------------- // diff --git a/source/global/management/include/g4std/streambuf b/source/global/management/include/g4std/streambuf index 4598d99390..2145a47bd5 100644 --- a/source/global/management/include/g4std/streambuf +++ b/source/global/management/include/g4std/streambuf @@ -6,7 +6,7 @@ // and all its terms. // // $Id: streambuf,v 1.3 1999/11/16 17:43:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- streambuf ---------------- // diff --git a/source/global/management/include/g4std/strstream b/source/global/management/include/g4std/strstream index 651d79bd53..a1c5b1c605 100644 --- a/source/global/management/include/g4std/strstream +++ b/source/global/management/include/g4std/strstream @@ -6,7 +6,7 @@ // and all its terms. // // $Id: strstream,v 1.4 2002/05/24 15:01:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- strstream ---------------- // diff --git a/source/global/management/include/g4std/vector b/source/global/management/include/g4std/vector index 37dccaf170..864446c0c8 100644 --- a/source/global/management/include/g4std/vector +++ b/source/global/management/include/g4std/vector @@ -6,7 +6,7 @@ // and all its terms. // // $Id: vector,v 1.3 1999/11/16 17:43:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- vector ---------------- // diff --git a/source/global/management/include/globals.hh b/source/global/management/include/globals.hh index 95bd4ee34c..5135e94467 100644 --- a/source/global/management/include/globals.hh +++ b/source/global/management/include/globals.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: globals.hh,v 1.19 2001/10/12 12:18:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: globals.hh,v 1.20 2002/08/19 18:20:11 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Global Constants and typedefs @@ -99,6 +99,8 @@ #include "PhysicalConstants.h" // Global error function +#include "G4ExceptionSeverity.hh" +void G4Exception(const char* issure,const char* errorCode,G4ExceptionSeverity severity,const char* comments); void G4Exception(const char* s=0); void G4Exception(G4std::string s); void G4Exception(G4String s); diff --git a/source/global/management/include/templates.hh b/source/global/management/include/templates.hh index 73225e4699..20fc1bca0c 100644 --- a/source/global/management/include/templates.hh +++ b/source/global/management/include/templates.hh @@ -22,7 +22,7 @@ // // // $Id: templates.hh,v 1.6 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -*- C++ -*- diff --git a/source/global/management/src/G4DataVector.cc b/source/global/management/src/G4DataVector.cc index c1e500517a..1b75b13346 100644 --- a/source/global/management/src/G4DataVector.cc +++ b/source/global/management/src/G4DataVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.cc,v 1.5 2002/05/30 11:56:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4Exception.cc b/source/global/management/src/G4Exception.cc index 1d2917f8b7..824eb1a89a 100644 --- a/source/global/management/src/G4Exception.cc +++ b/source/global/management/src/G4Exception.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Exception.cc,v 1.13 2002/04/16 18:19:14 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Exception.cc,v 1.15 2002/12/05 02:32:21 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -45,7 +45,7 @@ void G4Exception(const char* s) { G4cerr << s << G4endl; } - if(G4StateManager::GetStateManager()->SetNewState(Abort,s)) { + if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort,s)) { G4cerr << G4endl << "*** G4Exception: Aborting execution ***" << G4endl; abort(); } else { @@ -54,6 +54,26 @@ void G4Exception(const char* s) } } +void G4Exception(const char* originOfException, + const char* exceptionCode, + G4ExceptionSeverity severity, + const char* description) +{ + G4bool toBeAborted = + G4StateManager::GetStateManager()->GetExceptionHandler() + ->Notify(originOfException,exceptionCode,severity,description); + if(toBeAborted) + { + if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort)) { + G4cerr << G4endl << "*** G4Exception: Aborting execution ***" << G4endl; + abort(); + } else { + G4cerr << G4endl << "*** G4Exception: Abortion suppressed ***" + << G4endl << "*** No guarantee for further execution ***" << G4endl; + } + } +} + void G4Exception(G4std::string s) { G4Exception(s.c_str()); diff --git a/source/global/management/src/G4LPhysicsFreeVector.cc b/source/global/management/src/G4LPhysicsFreeVector.cc index d88fe764ef..b879c74855 100644 --- a/source/global/management/src/G4LPhysicsFreeVector.cc +++ b/source/global/management/src/G4LPhysicsFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.cc,v 1.8 2001/07/11 10:00:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------------- diff --git a/source/global/management/src/G4OrderedTable.cc b/source/global/management/src/G4OrderedTable.cc index ebbf48f485..efd55a05b8 100644 --- a/source/global/management/src/G4OrderedTable.cc +++ b/source/global/management/src/G4OrderedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4OrderedTable.cc,v 1.2 2002/04/19 07:10:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4PhysicsFreeVector.cc b/source/global/management/src/G4PhysicsFreeVector.cc index e7f4418acb..d54827abb6 100644 --- a/source/global/management/src/G4PhysicsFreeVector.cc +++ b/source/global/management/src/G4PhysicsFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsFreeVector.cc,v 1.8 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLinearVector.cc b/source/global/management/src/G4PhysicsLinearVector.cc index d04dcd8f9b..8e5997ec33 100644 --- a/source/global/management/src/G4PhysicsLinearVector.cc +++ b/source/global/management/src/G4PhysicsLinearVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLinearVector.cc,v 1.9 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLnVector.cc b/source/global/management/src/G4PhysicsLnVector.cc index 56039961be..2d711e0bf9 100644 --- a/source/global/management/src/G4PhysicsLnVector.cc +++ b/source/global/management/src/G4PhysicsLnVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLnVector.cc,v 1.11 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLogVector.cc b/source/global/management/src/G4PhysicsLogVector.cc index 7ad43eb7ed..11bd0dbfd8 100644 --- a/source/global/management/src/G4PhysicsLogVector.cc +++ b/source/global/management/src/G4PhysicsLogVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLogVector.cc,v 1.9 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsOrderedFreeVector.cc b/source/global/management/src/G4PhysicsOrderedFreeVector.cc index 035f449193..da08eac76b 100644 --- a/source/global/management/src/G4PhysicsOrderedFreeVector.cc +++ b/source/global/management/src/G4PhysicsOrderedFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.cc,v 1.8 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Implementation diff --git a/source/global/management/src/G4PhysicsTable.cc b/source/global/management/src/G4PhysicsTable.cc index f4e45ee629..3abfb59369 100644 --- a/source/global/management/src/G4PhysicsTable.cc +++ b/source/global/management/src/G4PhysicsTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.cc,v 1.6 2001/07/11 10:00:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4PhysicsVector.cc b/source/global/management/src/G4PhysicsVector.cc index a5812c2800..21890908f6 100644 --- a/source/global/management/src/G4PhysicsVector.cc +++ b/source/global/management/src/G4PhysicsVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.cc,v 1.14 2001/11/29 18:59:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4StateManager.cc b/source/global/management/src/G4StateManager.cc index bf1896e0d8..66611b0ac2 100644 --- a/source/global/management/src/G4StateManager.cc +++ b/source/global/management/src/G4StateManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StateManager.cc,v 1.6 2002/04/16 18:19:14 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StateManager.cc,v 1.8 2002/12/05 02:32:21 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -38,8 +38,8 @@ G4StateManager* G4StateManager::theStateManager = 0; G4StateManager::G4StateManager() - : theCurrentState(PreInit), - thePreviousState(PreInit), + : theCurrentState(G4State_PreInit), + thePreviousState(G4State_PreInit), theBottomDependent(0), suppressAbortion(0), msgptr(0) @@ -165,9 +165,9 @@ G4StateManager::SetNewState(G4ApplicationState requestedState) G4bool G4StateManager::SetNewState(G4ApplicationState requestedState, const char* msg) { - if(requestedState==Abort && suppressAbortion>0) { + if(requestedState==G4State_Abort && suppressAbortion>0) { if(suppressAbortion==2) return false; - if(theCurrentState==EventProc) return false; + if(theCurrentState==G4State_EventProc) return false; } msgptr = msg; size_t i=0; @@ -216,19 +216,19 @@ G4StateManager::GetStateString(G4ApplicationState aState) const G4String stateName; switch(aState) { - case PreInit: + case G4State_PreInit: stateName = "PreInit"; break; - case Init: + case G4State_Init: stateName = "Init"; break; - case Idle: + case G4State_Idle: stateName = "Idle"; break; - case GeomClosed: + case G4State_GeomClosed: stateName = "GeomClosed"; break; - case EventProc: + case G4State_EventProc: stateName = "EventProc"; break; - case Quit: + case G4State_Quit: stateName = "Quit"; break; - case Abort: + case G4State_Abort: stateName = "Abort"; break; default: stateName = "Unknown"; diff --git a/source/global/management/src/G4Timer.cc b/source/global/management/src/G4Timer.cc index f03dfc8fc3..9e9264d604 100644 --- a/source/global/management/src/G4Timer.cc +++ b/source/global/management/src/G4Timer.cc @@ -22,7 +22,7 @@ // // // $Id: G4Timer.cc,v 1.10 2002/01/17 10:49:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/src/G4UnitsTable.cc b/source/global/management/src/G4UnitsTable.cc index 54e8c1bd3b..4eeee43975 100644 --- a/source/global/management/src/G4UnitsTable.cc +++ b/source/global/management/src/G4UnitsTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.cc,v 1.16 2002/05/06 12:06:48 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnitsTable.cc,v 1.17 2002/11/20 11:25:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... // @@ -108,6 +108,13 @@ G4int G4UnitDefinition::operator!=(const G4UnitDefinition &right) const //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +G4UnitsTable& G4UnitDefinition::GetUnitsTable() +{ + return theUnitsTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + G4double G4UnitDefinition::GetValueOf(G4String string) { if(theUnitsTable.size()==0) BuildUnitsTable(); diff --git a/source/persistency/geometry/management/src/G4PPVParameterised.cc b/source/global/management/src/G4VExceptionHandler.cc similarity index 56% rename from source/persistency/geometry/management/src/G4PPVParameterised.cc rename to source/global/management/src/G4VExceptionHandler.cc index b056bb96da..0a0249e8be 100644 --- a/source/persistency/geometry/management/src/G4PPVParameterised.cc +++ b/source/global/management/src/G4VExceptionHandler.cc @@ -21,48 +21,48 @@ // ******************************************************************** // // -// $Id: G4PPVParameterised.cc,v 1.4 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// $Id: G4VExceptionHandler.cc,v 1.1 2002/08/19 18:20:12 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // +// +// ------------------------------------------------------------ +// GEANT 4 class implementation file // +// ---------------- G4VExceptionHandler ---------------- +// by Makoto Asai (August 2002) +// ------------------------------------------------------------ -#include "G4PPVParameterised.hh" +#include "G4VExceptionHandler.hh" +#include "G4StateManager.hh" -#include "HepODBMS/clustering/HepClustering.h" - -#include "globals.hh" - -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" - -#include "G4PVParameterised.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4PLogicalVolume.hh" - -G4PPVParameterised::G4PPVParameterised( G4VPhysicalVolume* PhysVol, - HepRef(G4PLogicalVolume) persLogVol) - : G4PPVReplica(PhysVol, persLogVol) +G4VExceptionHandler::G4VExceptionHandler() { - // G4VPVParameterisation class has no data member - // fparam = 0; + G4StateManager * stateManager = G4StateManager::GetStateManager(); + stateManager->SetExceptionHandler(this); } -G4PPVParameterised::~G4PPVParameterised() +G4VExceptionHandler::~G4VExceptionHandler() { } -G4VPhysicalVolume* G4PPVParameterised::MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother) +G4VExceptionHandler::G4VExceptionHandler(const G4VExceptionHandler &right) { - const G4String pName = (const char *) GetName(); - EAxis pAxis = faxis; - G4int nReplicas = fnReplicas; - - G4VPhysicalVolume* aPhysVol = new G4PVParameterised( - pName, aLogical, aMother, pAxis, nReplicas, 0); - - return aPhysVol; + *this = right; +} + +G4VExceptionHandler& G4VExceptionHandler::operator=(const G4VExceptionHandler &right) +{ + if (&right == this) return *this; + *this = right; + return *this; +} + +G4int G4VExceptionHandler::operator==(const G4VExceptionHandler &right) const +{ + return (this == &right); +} + +G4int G4VExceptionHandler::operator!=(const G4VExceptionHandler &right) const +{ + return (this != &right); } diff --git a/source/global/management/src/G4VStateDependent.cc b/source/global/management/src/G4VStateDependent.cc index d9b092638e..686ba632a1 100644 --- a/source/global/management/src/G4VStateDependent.cc +++ b/source/global/management/src/G4VStateDependent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStateDependent.cc,v 1.3 2001/07/11 10:00:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4ios.cc b/source/global/management/src/G4ios.cc index b57798ff46..ec9d3a5925 100644 --- a/source/global/management/src/G4ios.cc +++ b/source/global/management/src/G4ios.cc @@ -22,7 +22,7 @@ // // // $Id: G4ios.cc,v 1.5 2001/07/11 10:00:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/graphics_reps/History b/source/graphics_reps/History index 8e3f8d101e..8b66d49753 100644 --- a/source/graphics_reps/History +++ b/source/graphics_reps/History @@ -1,4 +1,4 @@ -$Id: History,v 1.37 2001/09/10 10:27:18 johna Exp $ +cvs log $Id: History,v 1.45 2002/11/27 12:24:19 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,38 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +27th November 2002 John Allison (greps-V04-01-05) +- Small revison of G4Scale and improvements in G4VMarker class description. + +Nov 20, 2002, G.Cosmo (greps-V04-01-04) +- Patched access to public static data in G4Scale and G4VisAttributes. + Added static accessors to be used in the kernel to allow porting on + Windows DLLs. +- HepPolyhedron[.hh.cc]: changed inline static methods to not inlined. + +Nov 11, 2002, E.Chernaev (greps-V04-01-03) +- Minor bug fix in HepPolyhedron::GetFacet(). +- HepDouble, HepBoolean --> double, bool in HepPolyhedron + +Nov 7, 2002, E.Chernaev (greps-V04-01-02) +- Added createTwistedTrap() and createPolyhedron() to HepPolyhedron. + +Oct 28, 2002, J.Allison (greps-V04-01-01) +- Changed AttDefStore to return a map. + +24th October 2002 John Allison (greps-V04-01-00) +- Added G4AttDefStore. +- Further improved G4AttDef/Value. +- Added const G4std::vector* fAttValues/Defs to G4VisAttributes. + +23rd October 2002 John Allison +- G4Colour class description corrected. +- G4VisAttributes comments slightly improved. +- G4AttDef and G4AttValue headers changed to follow G4 conventions. + +27th September 2002 Joseph Perl +- Added first versions of headers for G4AttDef and G4AttValue. + 10th September 2001 John Allison (greps-V03-02-04) - Added G4Scale::GuidanceString. diff --git a/source/graphics_reps/include/G4AttDef.hh b/source/graphics_reps/include/G4AttDef.hh new file mode 100644 index 0000000000..511c26a04f --- /dev/null +++ b/source/graphics_reps/include/G4AttDef.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: G4AttDef.hh,v 1.3 2002/10/24 14:35:14 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ + +#ifndef G4ATTDEF_HH +#define G4ATTDEF_HH + +#include "globals.hh" + +// Class Description: +// +// @class G4AttDef +// +// @brief This class represents a HepRep-style Attribute Definition. +// The G4AttDef is used to define new kinds of attributes that can +// then have values set for a Trajectory, Trajectory Point or Sensitive +// Detector Hit. These attributes are then made available to the end user +// in an interactive visualization system (such as WIRED). +// Values are set by creating G4AttValue objects and attaching them to the +// relevant Trajectory, Trajectory Point or Sensitive Detector Hit. +// The association between the G4AttValue and the G4AttDef object is +// made through the data member "name". +// For details, see the HepRep home page at http://heprep.freehep.org +// +// @author M.Frailis +// @author R.Giannitrapani +// @author J.Perl +// Class Description - End: + + + class G4AttDef{ + + public: + G4AttDef(const G4String& name, + const G4String& desc, + const G4String& category, + const G4String& extra, + const G4String& valueType): + m_name(name),m_desc(desc), + m_category(category), + m_extra(extra),m_valueType(valueType){}; + + G4AttDef(){}; + + const G4String& GetName()const{return m_name;}; + const G4String& GetDesc()const{return m_desc;}; + const G4String& GetCategory()const{return m_category;}; + const G4String& GetExtra()const{return m_extra;}; + const G4String& GetValueType()const{return m_valueType;}; + + void SetName(const G4String& name){m_name = name;}; + void SetDesc(const G4String& desc){m_desc = desc;}; + void SetCategory(const G4String& cat){m_category = cat;}; + void SetExtra(const G4String& extra){m_extra = extra;}; + void SetValueType(const G4String& type){m_valueType = type;}; + + private: + /// The name of the attribute + G4String m_name; + /// A short description of the attribute + G4String m_desc; + /// The category (Draw, Physics, PickAction, Association) + G4String m_category; + /// Some extra property of the attribute (units etc) + G4String m_extra; + /// The type of the value of the attribute (int, double, string) + G4String m_valueType; + }; +#endif //G4ATTDEF_H diff --git a/examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh b/source/graphics_reps/include/G4AttDefStore.hh similarity index 71% rename from examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh rename to source/graphics_reps/include/G4AttDefStore.hh index 5f0c28957b..e80d8e8f0b 100644 --- a/examples/extended/biasing/B04/include/B04ImportanceDetectorConstruction.hh +++ b/source/graphics_reps/include/G4AttDefStore.hh @@ -21,31 +21,29 @@ // ******************************************************************** // // -// $Id: B04ImportanceDetectorConstruction.hh,v 1.2 2002/04/19 10:54:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// $Id: G4AttDefStore.hh,v 1.3 2002/11/20 14:18:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ -#ifndef B04ImportanceDetectorConstruction_hh -#define B04ImportanceDetectorConstruction_hh B04ImportanceDetectorConstruction_hh +#ifndef G4ATTDEFSTORE_HH +#define G4ATTDEFSTORE_HH #include "globals.hh" -#include "G4VUserDetectorConstruction.hh" +#include "g4std/map" -class G4VPhysicalVolume; -class G4VIStore; +class G4AttDef; -class B04ImportanceDetectorConstruction : public G4VUserDetectorConstruction -{ +class G4AttDefStore{ public: - B04ImportanceDetectorConstruction(); - ~B04ImportanceDetectorConstruction(); - - G4VPhysicalVolume* Construct(); - G4VIStore* GetIStore(); - + static G4std::map* + GetInstance(G4String storeName,bool& isNew); + // Returns a pointer to the named store and isNew is true if store is new. +protected: + G4AttDefStore(); + ~G4AttDefStore(); private: - G4VIStore *fIStore; - + G4AttDefStore(const G4AttDefStore&); + G4AttDefStore& operator=(const G4AttDefStore&); + static G4std::map*> m_stores; }; -#endif +#endif //G4ATTDEFSTORE_H diff --git a/source/graphics_reps/include/G4AttValue.hh b/source/graphics_reps/include/G4AttValue.hh new file mode 100644 index 0000000000..7d200a86f4 --- /dev/null +++ b/source/graphics_reps/include/G4AttValue.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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: G4AttValue.hh,v 1.3 2002/10/24 14:35:20 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ + +#ifndef G4ATTVALUE_HH +#define G4ATTVALUE_HH + +#include "globals.hh" + +// Class Description: +// +// @class G4AttValue +// +// @brief This class represents a HepRep-style Attribute Value. +// G4AttValues can be attached to a Trajectory, Trajectory Point or Sensitive +// Detector Hit. These attributes are then made available to the end user +// in interactive visualization systems (such as WIRED). +// The G4AttValue is further defined in a G4AttDef object. +// The association between the G4AttValue and the G4AttDef object is +// made through the data member "name". +// For details, see the HepRep home page at http://heprep.freehep.org +// +// @author M.Frailis +// @author R.Giannitrapani +// @author J.Perl +// Class Description - End: + + + class G4AttValue { + + public: + G4AttValue(const G4String& name, + const G4String& value, + const G4String& showLabel): + m_name(name),m_value(value), + m_showLabel(showLabel){}; + G4AttValue(){}; + + const G4String& GetName()const{return m_name;}; + const G4String& GetValue()const{return m_value;}; + const G4String& GetShowLabel()const{return m_showLabel;}; + + void SetName(const G4String& name){m_name = name;}; + void SetValue(const G4String& val){m_value = val;}; + void SetShowLabel(const G4String& lab){m_showLabel = lab;}; + + private: + /// The name of the attribute + G4String m_name; + /// The value of the attribute + G4String m_value; + /// The bitmap for the label display + G4String m_showLabel; + }; +#endif //G4ATTVALUE_H diff --git a/source/graphics_reps/include/G4Circle.hh b/source/graphics_reps/include/G4Circle.hh index e0b68b401b..601db61bba 100644 --- a/source/graphics_reps/include/G4Circle.hh +++ b/source/graphics_reps/include/G4Circle.hh @@ -22,7 +22,7 @@ // // // $Id: G4Circle.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Color.hh b/source/graphics_reps/include/G4Color.hh index 04789e09fb..fe426a7169 100644 --- a/source/graphics_reps/include/G4Color.hh +++ b/source/graphics_reps/include/G4Color.hh @@ -22,7 +22,7 @@ // // // $Id: G4Color.hh,v 1.4 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/include/G4Colour.hh b/source/graphics_reps/include/G4Colour.hh index 3c2e0d554d..6f9311d8ce 100644 --- a/source/graphics_reps/include/G4Colour.hh +++ b/source/graphics_reps/include/G4Colour.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Colour.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Colour.hh,v 1.7 2002/10/23 12:03:38 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 20th October 1996 @@ -32,9 +32,7 @@ // and alpha) components of colour. Each component takes a value between // 0 and 1. If an irrelevant value, i.e., a value less than 0 or greater // than 1, is given as an argument of the constructor, such a value is -// automatically clipped to 0 or 1. Alpha is opacity, which is not used -// at present. You can use its default value 1, which means "opaque" -// in instantiation of G4Colour. +// automatically clipped to 0 or 1. Alpha is opacity (1 = opaque). // // A G4Colour object is instantiated by giving red, green, and blue // components to its constructor, i.e., diff --git a/source/graphics_reps/include/G4NURBS.hh b/source/graphics_reps/include/G4NURBS.hh index 62bdd97922..aa79b0176f 100644 --- a/source/graphics_reps/include/G4NURBS.hh +++ b/source/graphics_reps/include/G4NURBS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBS.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBSbox.hh b/source/graphics_reps/include/G4NURBSbox.hh index 2799e67d62..1b4cc2ef0e 100644 --- a/source/graphics_reps/include/G4NURBSbox.hh +++ b/source/graphics_reps/include/G4NURBSbox.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBSbox.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBScylinder.hh b/source/graphics_reps/include/G4NURBScylinder.hh index ba021787d8..13511a6bf4 100644 --- a/source/graphics_reps/include/G4NURBScylinder.hh +++ b/source/graphics_reps/include/G4NURBScylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBScylinder.hh,v 1.6 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBShexahedron.hh b/source/graphics_reps/include/G4NURBShexahedron.hh index a6c744d947..2b4f241350 100644 --- a/source/graphics_reps/include/G4NURBShexahedron.hh +++ b/source/graphics_reps/include/G4NURBShexahedron.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBShexahedron.hh,v 1.6 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hexa hedron builder prototype // OC 17 9 96 diff --git a/source/graphics_reps/include/G4NURBStube.hh b/source/graphics_reps/include/G4NURBStube.hh index 07e4603a7c..493bdd5bcc 100644 --- a/source/graphics_reps/include/G4NURBStube.hh +++ b/source/graphics_reps/include/G4NURBStube.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBStube.hh,v 1.6 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBStubesector.hh b/source/graphics_reps/include/G4NURBStubesector.hh index d94fcbc577..811241a3cd 100644 --- a/source/graphics_reps/include/G4NURBStubesector.hh +++ b/source/graphics_reps/include/G4NURBStubesector.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBStubesector.hh,v 1.5 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4PlacedPolyhedron.hh b/source/graphics_reps/include/G4PlacedPolyhedron.hh index a39f77f962..4252bfc1c4 100644 --- a/source/graphics_reps/include/G4PlacedPolyhedron.hh +++ b/source/graphics_reps/include/G4PlacedPolyhedron.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacedPolyhedron.hh,v 1.9 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // Class Description: diff --git a/source/graphics_reps/include/G4Point3DList.hh b/source/graphics_reps/include/G4Point3DList.hh index 690b943e57..a7ac2f00e7 100644 --- a/source/graphics_reps/include/G4Point3DList.hh +++ b/source/graphics_reps/include/G4Point3DList.hh @@ -22,7 +22,7 @@ // // // $Id: G4Point3DList.hh,v 1.10 2001/08/20 23:28:42 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polyhedron.hh b/source/graphics_reps/include/G4Polyhedron.hh index d7307220a4..5962662e75 100644 --- a/source/graphics_reps/include/G4Polyhedron.hh +++ b/source/graphics_reps/include/G4Polyhedron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedron.hh,v 1.10 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #ifndef G4POLYHEDRON_HH #define G4POLYHEDRON_HH diff --git a/source/graphics_reps/include/G4Polyline.hh b/source/graphics_reps/include/G4Polyline.hh index ee0886da4c..92d30b9dea 100644 --- a/source/graphics_reps/include/G4Polyline.hh +++ b/source/graphics_reps/include/G4Polyline.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polyline.hh,v 1.9 2001/08/20 23:28:43 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polymarker.hh b/source/graphics_reps/include/G4Polymarker.hh index 7149f1fa63..b8a70b9f8f 100644 --- a/source/graphics_reps/include/G4Polymarker.hh +++ b/source/graphics_reps/include/G4Polymarker.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polymarker.hh,v 1.7 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Polymarker.icc b/source/graphics_reps/include/G4Polymarker.icc index 385d6c5a8a..e9a5168aab 100644 --- a/source/graphics_reps/include/G4Polymarker.icc +++ b/source/graphics_reps/include/G4Polymarker.icc @@ -22,7 +22,7 @@ // // // $Id: G4Polymarker.icc,v 1.3 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Scale.hh b/source/graphics_reps/include/G4Scale.hh index 00c47903af..7cc27b6244 100644 --- a/source/graphics_reps/include/G4Scale.hh +++ b/source/graphics_reps/include/G4Scale.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scale.hh,v 1.3 2001/09/10 10:28:24 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Scale.hh,v 1.5 2002/11/27 12:24:01 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 21st July 2001. @@ -75,14 +75,16 @@ public: // With description G4double GetYmid() const; G4double GetZmid() const; - static G4String GuidanceString; + static const G4String& GetGuidanceString(); private: + G4double fLength; G4String fAnnotation; Direction fDirection; G4bool fAutoPlacing; G4double fXmid, fYmid, fZmid; + static const G4String GuidanceString; }; #include "G4Scale.icc" diff --git a/source/graphics_reps/include/G4Scale.icc b/source/graphics_reps/include/G4Scale.icc index 1a7902ed7a..342a5b935a 100644 --- a/source/graphics_reps/include/G4Scale.icc +++ b/source/graphics_reps/include/G4Scale.icc @@ -22,7 +22,7 @@ // // // $Id: G4Scale.icc,v 1.2 2001/07/24 21:41:42 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 21st July 2001. diff --git a/source/graphics_reps/include/G4Square.hh b/source/graphics_reps/include/G4Square.hh index f4bf52d0f0..cb494bd705 100644 --- a/source/graphics_reps/include/G4Square.hh +++ b/source/graphics_reps/include/G4Square.hh @@ -22,7 +22,7 @@ // // // $Id: G4Square.hh,v 1.5 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Square.icc b/source/graphics_reps/include/G4Square.icc index 46ef7c74cd..29529a20ca 100644 --- a/source/graphics_reps/include/G4Square.icc +++ b/source/graphics_reps/include/G4Square.icc @@ -22,7 +22,7 @@ // // // $Id: G4Square.icc,v 1.3 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.hh b/source/graphics_reps/include/G4Text.hh index faec937984..d63f55630b 100644 --- a/source/graphics_reps/include/G4Text.hh +++ b/source/graphics_reps/include/G4Text.hh @@ -22,7 +22,7 @@ // // // $Id: G4Text.hh,v 1.7 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.icc b/source/graphics_reps/include/G4Text.icc index 1fbf60dfc9..e56429c423 100644 --- a/source/graphics_reps/include/G4Text.icc +++ b/source/graphics_reps/include/G4Text.icc @@ -22,7 +22,7 @@ // // // $Id: G4Text.icc,v 1.3 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4VMarker.hh b/source/graphics_reps/include/G4VMarker.hh index 44909adc9f..f24c3ca3e9 100644 --- a/source/graphics_reps/include/G4VMarker.hh +++ b/source/graphics_reps/include/G4VMarker.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VMarker.hh,v 1.7 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VMarker.hh,v 1.8 2002/11/27 12:23:20 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4VMarker - base class for markers - circles, squares, etc. @@ -31,9 +31,10 @@ // Class Description: // G4VMarkers are 2-dimensional G4VVisPrims with the special // properties (a) of always facing the camera and (b) of having the -// possibility of a size defined in screen units. The convention is +// possibility of a size defined in screen units (pixels) or paper +// units (points - there are 72 points per inch). The convention is // that if a world size is not specified, then the marker will be -// drawn to the given screen size or paper size regardless of the +// drawn to the given screen size or paper size independent of the // viewing transformation in effect. // // "Size" means "overall size", e.g., diameter of circle, side of @@ -135,7 +136,7 @@ public: // With description void SetScreenRadius (G4double); void SetFillStyle (FillStyle); - // Access functions to the string for user custimizable information + // Access functions to the string for user customizable information virtual const G4String& GetInfo() const; virtual void SetInfo( const G4String& info ); diff --git a/source/graphics_reps/include/G4VMarker.icc b/source/graphics_reps/include/G4VMarker.icc index df010f32b5..348a2284a5 100644 --- a/source/graphics_reps/include/G4VMarker.icc +++ b/source/graphics_reps/include/G4VMarker.icc @@ -22,7 +22,7 @@ // // // $Id: G4VMarker.icc,v 1.6 2001/07/11 10:01:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/graphics_reps/include/G4VVisPrim.hh b/source/graphics_reps/include/G4VVisPrim.hh index 61d9176b4d..dd0cc206bd 100644 --- a/source/graphics_reps/include/G4VVisPrim.hh +++ b/source/graphics_reps/include/G4VVisPrim.hh @@ -22,7 +22,7 @@ // // // $Id: G4VVisPrim.hh,v 1.8 2001/07/11 10:01:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison August 1995 diff --git a/source/graphics_reps/include/G4VisAttributes.hh b/source/graphics_reps/include/G4VisAttributes.hh index 5006c9728e..07c6b0d215 100644 --- a/source/graphics_reps/include/G4VisAttributes.hh +++ b/source/graphics_reps/include/G4VisAttributes.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisAttributes.hh,v 1.7 2001/07/11 10:01:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisAttributes.hh,v 1.10 2002/11/20 14:18:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 23rd October 1996 @@ -48,11 +48,15 @@ #ifndef __G4VISATTRIBUTES_HH__ #define __G4VISATTRIBUTES_HH__ -#include "G4ios.hh" #include "globals.hh" +#include "g4std/vector" + #include "G4Colour.hh" #include "G4Color.hh" +class G4AttValue; +class G4AttDef; + class G4VisAttributes { friend G4std::ostream& operator << (G4std::ostream& os, const G4VisAttributes& a); @@ -69,6 +73,8 @@ public: // With description static const G4VisAttributes Invisible; + static const G4VisAttributes& GetInvisible(); + G4bool operator != (const G4VisAttributes& a) const; G4bool operator == (const G4VisAttributes& a) const; @@ -79,7 +85,9 @@ public: // With description LineStyle GetLineStyle () const; G4double GetLineWidth () const; G4bool IsForceDrawingStyle () const; - ForcedDrawingStyle GetForcedDrawingStyle () const; + ForcedDrawingStyle GetForcedDrawingStyle () const; + const G4std::vector* GetAttValues () const; + const G4std::vector* GetAttDefs () const; void SetVisibility (G4bool); void SetDaughtersInvisible (G4bool); @@ -93,6 +101,8 @@ public: // With description void SetLineWidth (G4double); void SetForceWireframe (G4bool); void SetForceSolid (G4bool); + void SetAttValues (const G4std::vector*); + void SetAttDefs (const G4std::vector*); private: @@ -102,8 +112,10 @@ private: LineStyle fLineStyle; G4double fLineWidth; // Units of "normal" device linewidth, e.g., // pixels for screen, 0.1 mm for paper. - G4bool fForceDrawingStyle; // To override view parameters. - ForcedDrawingStyle fForcedStyle; + G4bool fForceDrawingStyle; // To switch on forced drawing style. + ForcedDrawingStyle fForcedStyle; // Value of forced drawing style. + const G4std::vector* fAttValues; // For picking, etc. + const G4std::vector* fAttDefs; // Corresponding definitions. }; #include "G4VisAttributes.icc" diff --git a/source/graphics_reps/include/G4VisAttributes.icc b/source/graphics_reps/include/G4VisAttributes.icc index ec1747dd8a..b758e72d7b 100644 --- a/source/graphics_reps/include/G4VisAttributes.icc +++ b/source/graphics_reps/include/G4VisAttributes.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisAttributes.icc,v 1.4 2001/07/11 10:01:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisAttributes.icc,v 1.5 2002/10/24 14:36:40 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 18th November 1996 @@ -53,6 +53,15 @@ G4VisAttributes::GetForcedDrawingStyle () const { return fForcedStyle; } +inline const G4std::vector* +G4VisAttributes::GetAttValues () const { + return fAttValues; +} + +inline const G4std::vector* G4VisAttributes::GetAttDefs () const { + return fAttDefs; +} + inline void G4VisAttributes::SetVisibility (G4bool v) {fVisible = v;} inline void G4VisAttributes::SetDaughtersInvisible (G4bool v) { @@ -94,3 +103,13 @@ inline void G4VisAttributes::SetForceSolid (G4bool force) { fForceDrawingStyle = force; fForcedStyle = G4VisAttributes::solid; } + +inline void G4VisAttributes::SetAttValues + (const G4std::vector* attValues){ + fAttValues = attValues; +} + +inline void G4VisAttributes::SetAttDefs + (const G4std::vector* attDefs) { + fAttDefs = attDefs; +} diff --git a/source/graphics_reps/include/G4VisExtent.hh b/source/graphics_reps/include/G4VisExtent.hh index c837b9ad91..3f7e81b2c4 100644 --- a/source/graphics_reps/include/G4VisExtent.hh +++ b/source/graphics_reps/include/G4VisExtent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisExtent.hh,v 1.6 2001/07/24 21:39:43 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/include/G4Visible.hh b/source/graphics_reps/include/G4Visible.hh index 2c9214346e..663afafc12 100644 --- a/source/graphics_reps/include/G4Visible.hh +++ b/source/graphics_reps/include/G4Visible.hh @@ -22,7 +22,7 @@ // // // $Id: G4Visible.hh,v 1.7 2001/07/11 10:01:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/include/G4Visible.icc b/source/graphics_reps/include/G4Visible.icc index 28cefeef75..f9316e098e 100644 --- a/source/graphics_reps/include/G4Visible.icc +++ b/source/graphics_reps/include/G4Visible.icc @@ -22,7 +22,7 @@ // // // $Id: G4Visible.icc,v 1.4 2001/07/11 10:01:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/include/HepPolyhedron.h b/source/graphics_reps/include/HepPolyhedron.h index a719808b47..945dc084b3 100644 --- a/source/graphics_reps/include/HepPolyhedron.h +++ b/source/graphics_reps/include/HepPolyhedron.h @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: HepPolyhedron.h,v 1.9 2001/07/11 10:01:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: HepPolyhedron.h,v 1.12 2002/11/20 14:18:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class Description: @@ -148,20 +148,15 @@ // 25.05.01 E.Chernyaev // - added GetSurfaceArea() and GetVolume(); // +// 05.11.02 E.Chernyaev +// - added createTwistedTrap() and createPolyhedron(); +// #ifndef HEP_POLYHEDRON_HH #define HEP_POLYHEDRON_HH #include -#ifndef HepStd -#ifndef HEP_USE_STD -#define HepStd -#else -#define HepStd std -#endif -#endif - #ifndef DEFAULT_NUMBER_OF_STEPS #define DEFAULT_NUMBER_OF_STEPS 24 #endif @@ -192,7 +187,7 @@ class HepPolyhedron { HepPoint3D *pV; G4Facet *pF; - // Allocate memory for HepPolyhedron + // Re-allocate memory for HepPolyhedron void AllocateMemory(int Nvert, int Nface); // Find neighbouring facet @@ -205,19 +200,19 @@ class HepPolyhedron { void CreatePrism(); // Generate facets by revolving an edge around Z-axis - void RotateEdge(int k1, int k2, HepDouble r1, HepDouble r2, + void RotateEdge(int k1, int k2, double r1, double r2, int v1, int v2, int vEdge, - HepBoolean ifWholeCircle, int ns, int &kface); + bool ifWholeCircle, int ns, int &kface); // Set side facets for the case of incomplete rotation void SetSideFacets(int ii[4], int vv[4], - int *kk, HepDouble *r, - HepDouble dphi, int ns, int &kface); + int *kk, double *r, + double dphi, int ns, int &kface); // Create HepPolyhedron for body of revolution around Z-axis - void RotateAroundZ(int nstep, HepDouble phi, HepDouble dphi, + void RotateAroundZ(int nstep, double phi, double dphi, int np1, int np2, - const HepDouble *z, HepDouble *r, + const double *z, double *r, int nodeVis, int edgeVis); // For each edge set reference to neighbouring facet @@ -228,10 +223,7 @@ class HepPolyhedron { public: // Constructor - HepPolyhedron(int Nvert=0, int Nface=0) - : nvert(Nvert), nface(Nface), - pV(Nvert ? new HepPoint3D[Nvert+1] : 0), - pF(Nface ? new G4Facet[Nface+1] : 0) {} + HepPolyhedron() : nvert(0), nface(0), pV(0), pF(0) {} // Copy constructor HepPolyhedron(const HepPolyhedron & from); @@ -252,30 +244,30 @@ class HepPolyhedron { HepPolyhedron & Transform(const HepTransform3D & t); // Get next vertex index of the quadrilateral - HepBoolean GetNextVertexIndex(int & index, int & edgeFlag) const; + bool GetNextVertexIndex(int & index, int & edgeFlag) const; // Get vertex by index HepPoint3D GetVertex(int index) const; // Get next vertex + edge visibility of the quadrilateral - HepBoolean GetNextVertex(HepPoint3D & vertex, int & edgeFlag) const; + bool GetNextVertex(HepPoint3D & vertex, int & edgeFlag) const; // Get next vertex + edge visibility + normal of the quadrilateral - HepBoolean GetNextVertex(HepPoint3D & vertex, int & edgeFlag, + bool GetNextVertex(HepPoint3D & vertex, int & edgeFlag, HepNormal3D & normal) const; // Get indeces of the next edge with indeces of the faces - HepBoolean GetNextEdgeIndeces(int & i1, int & i2, int & edgeFlag, + bool GetNextEdgeIndeces(int & i1, int & i2, int & edgeFlag, int & iface1, int & iface2) const; // Get indeces of the next edge - HepBoolean GetNextEdgeIndeces(int & i1, int & i2, int & edgeFlag) const; + bool GetNextEdgeIndeces(int & i1, int & i2, int & edgeFlag) const; // Get next edge - HepBoolean GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, int &edgeFlag) const; + bool GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, int &edgeFlag) const; // Get next edge - HepBoolean GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, int &edgeFlag, + bool GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, int &edgeFlag, int &iface1, int &iface2) const; // Get face by index @@ -287,7 +279,7 @@ class HepPolyhedron { int *edgeFlags = 0, HepNormal3D *normals = 0) const; // Get next face with normals at the nodes - HepBoolean GetNextFacet(int &n, HepPoint3D *nodes, + bool GetNextFacet(int &n, HepPoint3D *nodes, int *edgeFlags=0, HepNormal3D *normals=0) const; // Get normal of the face given by index @@ -297,10 +289,10 @@ class HepPolyhedron { HepNormal3D GetUnitNormal(int iFace) const; // Get normal of the next face - HepBoolean GetNextNormal(HepNormal3D &normal) const; + bool GetNextNormal(HepNormal3D &normal) const; // Get normal of unit length of the next face - HepBoolean GetNextUnitNormal(HepNormal3D &normal) const; + bool GetNextUnitNormal(HepNormal3D &normal) const; // Boolean operations HepPolyhedron add(const HepPolyhedron &p) const; @@ -314,21 +306,51 @@ class HepPolyhedron { double GetVolume() const; // Get number of steps for whole circle - static int GetNumberOfRotationSteps() { return fNumberOfRotationSteps; } + static int GetNumberOfRotationSteps(); // Set number of steps for whole circle static void SetNumberOfRotationSteps(int n); // Reset number of steps for whole circle to default value - static void ResetNumberOfRotationSteps() { - fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS; - } + static void ResetNumberOfRotationSteps(); + + /** + * Creates polyhedron for twisted trapezoid. + * The trapezoid is given by two bases perpendicular to the z-axis. + * + * @param Dz half length in z + * @param xy1 1st base (at z = -Dz) + * @param xy2 2nd base (at z = +Dz) + * @return status of the operation - is non-zero in case of problem + */ + int createTwistedTrap(double Dz, + const double xy1[][2], const double xy2[][2]); + + /** + * Creates user defined polyhedron. + * This function allows to the user to define arbitrary polyhedron. + * The faces of the polyhedron should be either triangles or planar + * quadrilateral. Nodes of a face are defined by indexes pointing to + * the elements in the xyz array. Numeration of the elements in the + * array starts from 1 (like in fortran). The indexes can be positive + * or negative. Negative sign means that the corresponding edge is + * invisible. The normal of the face should be directed to exterior + * of the polyhedron. + * + * @param Nnodes number of nodes + * @param Nfaces number of faces + * @param xyz nodes + * @param faces faces (quadrilaterals or triangles) + * @return status of the operation - is non-zero in case of problem + */ + int createPolyhedron(int Nnodes, int Nfaces, + const double xyz[][3], const int faces[][4]); }; class HepPolyhedronTrd2 : public HepPolyhedron { public: - HepPolyhedronTrd2(HepDouble Dx1, HepDouble Dx2, - HepDouble Dy1, HepDouble Dy2, HepDouble Dz); + HepPolyhedronTrd2(double Dx1, double Dx2, + double Dy1, double Dy2, double Dz); virtual ~HepPolyhedronTrd2(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -337,8 +359,8 @@ class HepPolyhedronTrd2 : public HepPolyhedron { class HepPolyhedronTrd1 : public HepPolyhedronTrd2 { public: - HepPolyhedronTrd1(HepDouble Dx1, HepDouble Dx2, - HepDouble Dy, HepDouble Dz); + HepPolyhedronTrd1(double Dx1, double Dx2, + double Dy, double Dz); virtual ~HepPolyhedronTrd1(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -347,7 +369,7 @@ class HepPolyhedronTrd1 : public HepPolyhedronTrd2 { class HepPolyhedronBox : public HepPolyhedronTrd2 { public: - HepPolyhedronBox(HepDouble Dx, HepDouble Dy, HepDouble Dz); + HepPolyhedronBox(double Dx, double Dy, double Dz); virtual ~HepPolyhedronBox(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -356,11 +378,11 @@ class HepPolyhedronBox : public HepPolyhedronTrd2 { class HepPolyhedronTrap : public HepPolyhedron { public: - HepPolyhedronTrap(HepDouble Dz, HepDouble Theta, HepDouble Phi, - HepDouble Dy1, - HepDouble Dx1, HepDouble Dx2, HepDouble Alp1, - HepDouble Dy2, - HepDouble Dx3, HepDouble Dx4, HepDouble Alp2); + HepPolyhedronTrap(double Dz, double Theta, double Phi, + double Dy1, + double Dx1, double Dx2, double Alp1, + double Dy2, + double Dx3, double Dx4, double Alp2); virtual ~HepPolyhedronTrap(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -369,8 +391,8 @@ public: class HepPolyhedronPara : public HepPolyhedronTrap { public: - HepPolyhedronPara(HepDouble Dx, HepDouble Dy, HepDouble Dz, - HepDouble Alpha, HepDouble Theta, HepDouble Phi); + HepPolyhedronPara(double Dx, double Dy, double Dz, + double Alpha, double Theta, double Phi); virtual ~HepPolyhedronPara(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -379,9 +401,9 @@ public: class HepPolyhedronCons : public HepPolyhedron { public: - HepPolyhedronCons(HepDouble Rmn1, HepDouble Rmx1, - HepDouble Rmn2, HepDouble Rmx2, HepDouble Dz, - HepDouble Phi1, HepDouble Dphi); + HepPolyhedronCons(double Rmn1, double Rmx1, + double Rmn2, double Rmx2, double Dz, + double Phi1, double Dphi); virtual ~HepPolyhedronCons(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -390,8 +412,8 @@ public: class HepPolyhedronCone : public HepPolyhedronCons { public: - HepPolyhedronCone(HepDouble Rmn1, HepDouble Rmx1, - HepDouble Rmn2, HepDouble Rmx2, HepDouble Dz); + HepPolyhedronCone(double Rmn1, double Rmx1, + double Rmn2, double Rmx2, double Dz); virtual ~HepPolyhedronCone(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -400,8 +422,8 @@ public: class HepPolyhedronTubs : public HepPolyhedronCons { public: - HepPolyhedronTubs(HepDouble Rmin, HepDouble Rmax, HepDouble Dz, - HepDouble Phi1, HepDouble Dphi); + HepPolyhedronTubs(double Rmin, double Rmax, double Dz, + double Phi1, double Dphi); virtual ~HepPolyhedronTubs(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -410,7 +432,7 @@ public: class HepPolyhedronTube : public HepPolyhedronCons { public: - HepPolyhedronTube (HepDouble Rmin, HepDouble Rmax, HepDouble Dz); + HepPolyhedronTube (double Rmin, double Rmax, double Dz); virtual ~HepPolyhedronTube(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -419,10 +441,10 @@ public: class HepPolyhedronPgon : public HepPolyhedron { public: - HepPolyhedronPgon(HepDouble phi, HepDouble dphi, int npdv, int nz, - const HepDouble *z, - const HepDouble *rmin, - const HepDouble *rmax); + HepPolyhedronPgon(double phi, double dphi, int npdv, int nz, + const double *z, + const double *rmin, + const double *rmax); virtual ~HepPolyhedronPgon(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -431,10 +453,10 @@ public: class HepPolyhedronPcon : public HepPolyhedronPgon { public: - HepPolyhedronPcon(HepDouble phi, HepDouble dphi, int nz, - const HepDouble *z, - const HepDouble *rmin, - const HepDouble *rmax); + HepPolyhedronPcon(double phi, double dphi, int nz, + const double *z, + const double *rmin, + const double *rmax); virtual ~HepPolyhedronPcon(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -443,9 +465,9 @@ public: class HepPolyhedronSphere : public HepPolyhedron { public: - HepPolyhedronSphere(HepDouble rmin, HepDouble rmax, - HepDouble phi, HepDouble dphi, - HepDouble the, HepDouble dthe); + HepPolyhedronSphere(double rmin, double rmax, + double phi, double dphi, + double the, double dthe); virtual ~HepPolyhedronSphere(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); @@ -454,8 +476,8 @@ public: class HepPolyhedronTorus : public HepPolyhedron { public: - HepPolyhedronTorus(HepDouble rmin, HepDouble rmax, HepDouble rtor, - HepDouble phi, HepDouble dphi); + HepPolyhedronTorus(double rmin, double rmax, double rtor, + double phi, double dphi); virtual ~HepPolyhedronTorus(); virtual HepPolyhedron& operator = (const HepPolyhedron& from) { return HepPolyhedron::operator = (from); diff --git a/source/graphics_reps/src/G4AttDefStore.cc b/source/graphics_reps/src/G4AttDefStore.cc new file mode 100644 index 0000000000..5a59651f91 --- /dev/null +++ b/source/graphics_reps/src/G4AttDefStore.cc @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * 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: G4AttDefStore.cc,v 1.2 2002/10/28 11:13:08 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ + +#include "G4AttDefStore.hh" + +#include "G4AttDef.hh" + +G4std::map*> G4AttDefStore::m_stores; + +G4std::map* +G4AttDefStore::GetInstance(G4String storeName,bool& isNew) { + G4std::map* store; + G4std::map*>::iterator iStore = + m_stores.find(storeName); + if (iStore == m_stores.end()) { + isNew = true; + store = new G4std::map; + m_stores[storeName] = store; + } + else { + isNew = false; + store = iStore->second; + } + return store; +} diff --git a/source/graphics_reps/src/G4Circle.cc b/source/graphics_reps/src/G4Circle.cc index 46e0dcc435..eb6552f0aa 100644 --- a/source/graphics_reps/src/G4Circle.cc +++ b/source/graphics_reps/src/G4Circle.cc @@ -22,7 +22,7 @@ // // // $Id: G4Circle.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/graphics_reps/src/G4Colour.cc b/source/graphics_reps/src/G4Colour.cc index e806c7f944..739b4ac414 100644 --- a/source/graphics_reps/src/G4Colour.cc +++ b/source/graphics_reps/src/G4Colour.cc @@ -22,7 +22,7 @@ // // // $Id: G4Colour.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/src/G4NURBS.cc b/source/graphics_reps/src/G4NURBS.cc index 249ec7aec2..be939304b0 100644 --- a/source/graphics_reps/src/G4NURBS.cc +++ b/source/graphics_reps/src/G4NURBS.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBS.cc,v 1.5 2001/08/14 18:24:29 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBSbox.cc b/source/graphics_reps/src/G4NURBSbox.cc index e7f88e8168..1056572b6d 100644 --- a/source/graphics_reps/src/G4NURBSbox.cc +++ b/source/graphics_reps/src/G4NURBSbox.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBSbox.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBScylinder.cc b/source/graphics_reps/src/G4NURBScylinder.cc index e2f28e77ef..ea1b0789f6 100644 --- a/source/graphics_reps/src/G4NURBScylinder.cc +++ b/source/graphics_reps/src/G4NURBScylinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBScylinder.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBShexahedron.cc b/source/graphics_reps/src/G4NURBShexahedron.cc index f7d703a6e5..e0dc8ea377 100644 --- a/source/graphics_reps/src/G4NURBShexahedron.cc +++ b/source/graphics_reps/src/G4NURBShexahedron.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBShexahedron.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // hexahedron implementation // OC 17 9 96 diff --git a/source/graphics_reps/src/G4NURBStube.cc b/source/graphics_reps/src/G4NURBStube.cc index 502ac4a294..d15e70611f 100644 --- a/source/graphics_reps/src/G4NURBStube.cc +++ b/source/graphics_reps/src/G4NURBStube.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBStube.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBStubesector.cc b/source/graphics_reps/src/G4NURBStubesector.cc index 5aad11450e..8140262622 100644 --- a/source/graphics_reps/src/G4NURBStubesector.cc +++ b/source/graphics_reps/src/G4NURBStubesector.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBStubesector.cc,v 1.5 2001/07/11 10:01:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4PlacedPolyhedron.cc b/source/graphics_reps/src/G4PlacedPolyhedron.cc index ef6fd26e85..6e6fe50b56 100644 --- a/source/graphics_reps/src/G4PlacedPolyhedron.cc +++ b/source/graphics_reps/src/G4PlacedPolyhedron.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedPolyhedron.cc,v 1.3 2001/07/11 10:01:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4PlacedPolyhedron.hh" diff --git a/source/graphics_reps/src/G4Point3DList.cc b/source/graphics_reps/src/G4Point3DList.cc index b952113124..49112f5969 100644 --- a/source/graphics_reps/src/G4Point3DList.cc +++ b/source/graphics_reps/src/G4Point3DList.cc @@ -22,7 +22,7 @@ // // // $Id: G4Point3DList.cc,v 1.5 2001/07/11 10:01:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polyhedron.cc b/source/graphics_reps/src/G4Polyhedron.cc index 3b5446b2c8..a8a556b806 100644 --- a/source/graphics_reps/src/G4Polyhedron.cc +++ b/source/graphics_reps/src/G4Polyhedron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedron.cc,v 1.11 2001/07/11 10:01:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4Polyhedron.hh" diff --git a/source/graphics_reps/src/G4Polyline.cc b/source/graphics_reps/src/G4Polyline.cc index 99d9e5ed55..5f94c749ad 100644 --- a/source/graphics_reps/src/G4Polyline.cc +++ b/source/graphics_reps/src/G4Polyline.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polyline.cc,v 1.7 2001/08/14 18:24:58 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polymarker.cc b/source/graphics_reps/src/G4Polymarker.cc index 4626558ee8..408d58b778 100644 --- a/source/graphics_reps/src/G4Polymarker.cc +++ b/source/graphics_reps/src/G4Polymarker.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polymarker.cc,v 1.7 2001/07/11 10:01:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/src/G4Scale.cc b/source/graphics_reps/src/G4Scale.cc index 5dc464db97..57f4c12732 100644 --- a/source/graphics_reps/src/G4Scale.cc +++ b/source/graphics_reps/src/G4Scale.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scale.cc,v 1.4 2001/09/10 10:28:56 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Scale.cc,v 1.6 2002/11/27 12:24:01 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 21st July 2001 @@ -66,7 +66,7 @@ G4Scale & G4Scale::operator = (const G4Scale &from) { return *this; } -G4String G4Scale::GuidanceString +const G4String G4Scale::GuidanceString ( "An annotated line in the specified direction with tick marks at the" "\nend. If autoPlacing is true it is required to be centred at the" @@ -83,3 +83,8 @@ G4String G4Scale::GuidanceString "\n if direction == y then (x,y,z) to (x,y + length,z)" "\n if direction == z then (x,y,z - length) to (x,y,z)" ); + +const G4String& G4Scale::GetGuidanceString() +{ + return GuidanceString; +} diff --git a/source/graphics_reps/src/G4Square.cc b/source/graphics_reps/src/G4Square.cc index c6cc4e2806..7b3235ba7b 100644 --- a/source/graphics_reps/src/G4Square.cc +++ b/source/graphics_reps/src/G4Square.cc @@ -22,7 +22,7 @@ // // // $Id: G4Square.cc,v 1.3 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/graphics_reps/src/G4Text.cc b/source/graphics_reps/src/G4Text.cc index c2ebd65f15..2ef9d752a8 100644 --- a/source/graphics_reps/src/G4Text.cc +++ b/source/graphics_reps/src/G4Text.cc @@ -22,7 +22,7 @@ // // // $Id: G4Text.cc,v 1.6 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/src/G4VMarker.cc b/source/graphics_reps/src/G4VMarker.cc index 1834ec03c0..4796714bdc 100644 --- a/source/graphics_reps/src/G4VMarker.cc +++ b/source/graphics_reps/src/G4VMarker.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMarker.cc,v 1.7 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/graphics_reps/src/G4VVisPrim.cc b/source/graphics_reps/src/G4VVisPrim.cc index aa03815e7d..8c7e02f193 100644 --- a/source/graphics_reps/src/G4VVisPrim.cc +++ b/source/graphics_reps/src/G4VVisPrim.cc @@ -22,7 +22,7 @@ // // // $Id: G4VVisPrim.cc,v 1.7 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison August 1995 diff --git a/source/graphics_reps/src/G4VisAttributes.cc b/source/graphics_reps/src/G4VisAttributes.cc index 6c1da683e8..acb0b431ad 100644 --- a/source/graphics_reps/src/G4VisAttributes.cc +++ b/source/graphics_reps/src/G4VisAttributes.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisAttributes.cc,v 1.6 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisAttributes.cc,v 1.8 2002/11/20 14:18:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 23rd October 1996 @@ -35,7 +35,9 @@ fDaughtersInvisible (false), fColour (G4Colour ()), fLineStyle (unbroken), fLineWidth (1.), -fForceDrawingStyle (false) +fForceDrawingStyle (false), +fAttValues (0), +fAttDefs (0) {} G4VisAttributes::G4VisAttributes (G4bool visibility): @@ -44,7 +46,9 @@ fDaughtersInvisible (false), fColour (G4Colour ()), fLineStyle (unbroken), fLineWidth (1.), -fForceDrawingStyle (false) +fForceDrawingStyle (false), +fAttValues (0), +fAttDefs (0) {} G4VisAttributes::G4VisAttributes (const G4Colour& colour): @@ -53,7 +57,9 @@ fDaughtersInvisible (false), fColour (colour), fLineStyle (unbroken), fLineWidth (1.), -fForceDrawingStyle ( false) +fForceDrawingStyle (false), +fAttValues (0), +fAttDefs (0) {} G4VisAttributes::G4VisAttributes (G4bool visibility, @@ -63,11 +69,17 @@ fDaughtersInvisible (false), fColour (colour), fLineStyle (unbroken), fLineWidth (1.), -fForceDrawingStyle (false) +fForceDrawingStyle (false), +fAttValues (0), +fAttDefs (0) {} const G4VisAttributes G4VisAttributes::Invisible = G4VisAttributes (false); +const G4VisAttributes& G4VisAttributes::GetInvisible() { + return Invisible; +} + G4std::ostream& operator << (G4std::ostream& os, const G4VisAttributes& a) { os << "G4VisAttributes: "; @@ -100,10 +112,19 @@ G4std::ostream& operator << (G4std::ostream& os, const G4VisAttributes& a) { else { os << "unforced"; } + os << "\n vector pointer is "; + if (a.fAttValues) { + os << "non-"; + } + os << "zero"; + os << "\n vector pointer is "; + if (a.fAttDefs) { + os << "non-"; + } + os << "zero"; } - else os << " The pointer is zero "; + else os << " zero G4VisAttributes pointer"; return os; - } G4bool G4VisAttributes::operator != (const G4VisAttributes& a) const { @@ -114,7 +135,9 @@ G4bool G4VisAttributes::operator != (const G4VisAttributes& a) const { (fColour != a.fColour) || (fLineStyle != a.fLineStyle) || (fLineWidth != a.fLineWidth) || - (fForceDrawingStyle != a.fForceDrawingStyle) + (fForceDrawingStyle != a.fForceDrawingStyle) || + (fAttValues != a.fAttValues) || + (fAttDefs != a.fAttDefs) ) return true; diff --git a/source/graphics_reps/src/G4VisExtent.cc b/source/graphics_reps/src/G4VisExtent.cc index de167e4e29..a2c77468cd 100644 --- a/source/graphics_reps/src/G4VisExtent.cc +++ b/source/graphics_reps/src/G4VisExtent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisExtent.cc,v 1.6 2001/07/24 21:39:50 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/src/G4Visible.cc b/source/graphics_reps/src/G4Visible.cc index 97bf37c120..a4fb281ae3 100644 --- a/source/graphics_reps/src/G4Visible.cc +++ b/source/graphics_reps/src/G4Visible.cc @@ -22,7 +22,7 @@ // // // $Id: G4Visible.cc,v 1.4 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/src/HepPolyhedron.cc b/source/graphics_reps/src/HepPolyhedron.cc index 7d93df0462..3a59adc144 100644 --- a/source/graphics_reps/src/HepPolyhedron.cc +++ b/source/graphics_reps/src/HepPolyhedron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: HepPolyhedron.cc,v 1.9 2001/07/11 10:01:10 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: HepPolyhedron.cc,v 1.12 2002/11/20 14:18:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // @@ -49,6 +49,9 @@ // 25.05.01 E.Chernyaev // - added GetSurfaceArea() and GetVolume(); // +// 05.11.02 E.Chernyaev +// - added createTwistedTrap() and createPolyhedron(); +// #include "HepPolyhedron.h" #include @@ -91,18 +94,11 @@ HepPolyhedron::HepPolyhedron(const HepPolyhedron &from) * Author: E.Chernyaev (IHEP/Protvino) Revised: * * * ***********************************************************************/ +: nvert(0), nface(0), pV(0), pF(0) { - if (from.nvert > 0 && from.nface > 0) { - nvert = from.nvert; - nface = from.nface; - pV = new HepPoint3D[nvert + 1]; - pF = new G4Facet[nface + 1]; - int i; - for (i=1; i<=nvert; i++) pV[i] = from.pV[i]; - for (i=1; i<=nface; i++) pF[i] = from.pF[i]; - }else{ - nvert = 0; nface = 0; pV = 0; pF = 0; - } + AllocateMemory(from.nvert, from.nface); + for (int i=1; i<=nvert; i++) pV[i] = from.pV[i]; + for (int k=1; k<=nface; k++) pF[k] = from.pF[k]; } HepPolyhedron & HepPolyhedron::operator=(const HepPolyhedron &from) @@ -111,23 +107,14 @@ HepPolyhedron & HepPolyhedron::operator=(const HepPolyhedron &from) * Name: HepPolyhedron operator = Date: 23.07.96 * * Author: E.Chernyaev (IHEP/Protvino) Revised: * * * - * Function: Copy contents of one GEANT4 polyhedron to another * + * Function: Copy contents of one polyhedron to another * * * ***********************************************************************/ { - if (this == &from) return *this; - delete [] pV; - delete [] pF; - if (from.nvert > 0 && from.nface > 0) { - nvert = from.nvert; - nface = from.nface; - pV = new HepPoint3D[nvert + 1]; - pF = new G4Facet[nface + 1]; - int i; - for (i=1; i<=nvert; i++) pV[i] = from.pV[i]; - for (i=1; i<=nface; i++) pF[i] = from.pF[i]; - }else{ - nvert = 0; nface = 0; pV = 0; pF = 0; + if (this != &from) { + AllocateMemory(from.nvert, from.nface); + for (int i=1; i<=nvert; i++) pV[i] = from.pV[i]; + for (int k=1; k<=nface; k++) pF[k] = from.pF[k]; } return *this; } @@ -189,6 +176,19 @@ HepNormal3D HepPolyhedron::FindNodeNormal(int iFace, int iNode) const return normal.unit(); } +int HepPolyhedron::GetNumberOfRotationSteps() +/*********************************************************************** + * * + * Name: HepPolyhedron::GetNumberOfRotationSteps Date: 24.06.97 * + * Author: J.Allison (Manchester University) Revised: * + * * + * Function: Get number of steps for whole circle * + * * + ***********************************************************************/ +{ + return fNumberOfRotationSteps; +} + void HepPolyhedron::SetNumberOfRotationSteps(int n) /*********************************************************************** * * @@ -211,11 +211,24 @@ void HepPolyhedron::SetNumberOfRotationSteps(int n) } } +void HepPolyhedron::ResetNumberOfRotationSteps() +/*********************************************************************** + * * + * Name: HepPolyhedron::GetNumberOfRotationSteps Date: 24.06.97 * + * Author: J.Allison (Manchester University) Revised: * + * * + * Function: Reset number of steps for whole circle to default value * + * * + ***********************************************************************/ +{ + fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS; +} + void HepPolyhedron::AllocateMemory(int Nvert, int Nface) /*********************************************************************** * * * Name: HepPolyhedron::AllocateMemory Date: 19.06.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * + * Author: E.Chernyaev (IHEP/Protvino) Revised: 05.11.02 * * * * Function: Allocate memory for GEANT4 polyhedron * * * @@ -224,10 +237,17 @@ void HepPolyhedron::AllocateMemory(int Nvert, int Nface) * * ***********************************************************************/ { - nvert = Nvert; - nface = Nface; - pV = new HepPoint3D[nvert+1]; - pF = new G4Facet[nface+1]; + if (nvert == Nvert && nface == Nface) return; + if (pV != 0) delete [] pV; + if (pF != 0) delete [] pF; + if (Nvert > 0 && Nface > 0) { + nvert = Nvert; + nface = Nface; + pV = new HepPoint3D[nvert+1]; + pF = new G4Facet[nface+1]; + }else{ + nvert = 0; nface = 0; pV = 0; pF = 0; + } } void HepPolyhedron::CreatePrism() @@ -250,9 +270,9 @@ void HepPolyhedron::CreatePrism() pF[6] = G4Facet(5,FRONT, 6,RIGHT, 7,BACK, 8,LEFT); } -void HepPolyhedron::RotateEdge(int k1, int k2, HepDouble r1, HepDouble r2, +void HepPolyhedron::RotateEdge(int k1, int k2, double r1, double r2, int v1, int v2, int vEdge, - HepBoolean ifWholeCircle, int ns, int &kface) + bool ifWholeCircle, int ns, int &kface) /*********************************************************************** * * * Name: HepPolyhedron::RotateEdge Date: 05.12.96 * @@ -313,8 +333,8 @@ void HepPolyhedron::RotateEdge(int k1, int k2, HepDouble r1, HepDouble r2, } void HepPolyhedron::SetSideFacets(int ii[4], int vv[4], - int *kk, HepDouble *r, - HepDouble dphi, int ns, int &kface) + int *kk, double *r, + double dphi, int ns, int &kface) /*********************************************************************** * * * Name: HepPolyhedron::SetSideFacets Date: 20.05.97 * @@ -334,7 +354,7 @@ void HepPolyhedron::SetSideFacets(int ii[4], int vv[4], { int k1, k2, k3, k4; - if (abs((HepDouble)(dphi-M_PI)) < perMillion) { // half a circle + if (abs((double)(dphi-M_PI)) < perMillion) { // half a circle for (int i=0; i<4; i++) { k1 = ii[i]; k2 = (i == 3) ? ii[0] : ii[i+1]; @@ -383,9 +403,9 @@ void HepPolyhedron::SetSideFacets(int ii[4], int vv[4], } } -void HepPolyhedron::RotateAroundZ(int nstep, HepDouble phi, HepDouble dphi, +void HepPolyhedron::RotateAroundZ(int nstep, double phi, double dphi, int np1, int np2, - const HepDouble *z, HepDouble *r, + const double *z, double *r, int nodeVis, int edgeVis) /*********************************************************************** * * @@ -409,18 +429,17 @@ void HepPolyhedron::RotateAroundZ(int nstep, HepDouble phi, HepDouble dphi, * * ***********************************************************************/ { - static HepDouble wholeCircle = 2*M_PI; + static double wholeCircle = 2*M_PI; // S E T R O T A T I O N P A R A M E T E R S - HepBoolean ifWholeCircle = (abs(dphi-wholeCircle) < perMillion) ? - true : false; - HepDouble delPhi = ifWholeCircle ? wholeCircle : dphi; + bool ifWholeCircle = (abs(dphi-wholeCircle) < perMillion) ? true : false; + double delPhi = ifWholeCircle ? wholeCircle : dphi; int nSphi = (nstep > 0) ? nstep : int(delPhi*GetNumberOfRotationSteps()/wholeCircle+.5); if (nSphi == 0) nSphi = 1; int nVphi = ifWholeCircle ? nSphi : nSphi+1; - HepBoolean ifClosed = np1 > 0 ? false : true; + bool ifClosed = np1 > 0 ? false : true; // C O U N T V E R T E C E S @@ -441,8 +460,8 @@ void HepPolyhedron::RotateAroundZ(int nstep, HepDouble phi, HepDouble dphi, j += (r[i] == 0.) ? 1 : nVphi; } - HepBoolean ifSide1 = false; // internal nodes - HepBoolean ifSide2 = false; + bool ifSide1 = false; // internal nodes + bool ifSide2 = false; if (r[i2beg] != r[i1beg] || z[i2beg] != z[i1beg]) { j += (r[i2beg] == 0.) ? 1 : nVphi; @@ -519,7 +538,7 @@ void HepPolyhedron::RotateAroundZ(int nstep, HepDouble phi, HepDouble dphi, } } - HepDouble cosPhi, sinPhi; + double cosPhi, sinPhi; for(j=0; j z[nz-1]) { for (i=0; i diff --git a/source/intercoms/src/G4UIdirectory.cc b/source/intercoms/src/G4UIdirectory.cc index e8ef889839..9bad447c26 100644 --- a/source/intercoms/src/G4UIdirectory.cc +++ b/source/intercoms/src/G4UIdirectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIdirectory.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/intercoms/src/G4UImanager.cc b/source/intercoms/src/G4UImanager.cc index 8be60105a3..97f625d297 100644 --- a/source/intercoms/src/G4UImanager.cc +++ b/source/intercoms/src/G4UImanager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UImanager.cc,v 1.26 2002/05/15 06:51:32 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UImanager.cc,v 1.27 2002/12/04 18:30:43 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------------- @@ -457,14 +457,14 @@ G4bool G4UImanager::Notify(G4ApplicationState requestedState) //G4cout << G4StateManager::GetStateManager()->GetStateString(requestedState) << " <--- " << G4StateManager::GetStateManager()->GetStateString(G4StateManager::GetStateManager()->GetPreviousState()) << G4endl; if(pauseAtBeginOfEvent) { - if(requestedState==EventProc && - G4StateManager::GetStateManager()->GetPreviousState()==GeomClosed) + if(requestedState==G4State_EventProc && + G4StateManager::GetStateManager()->GetPreviousState()==G4State_GeomClosed) { PauseSession("BeginOfEvent"); } } if(pauseAtEndOfEvent) { - if(requestedState==GeomClosed && - G4StateManager::GetStateManager()->GetPreviousState()==EventProc) + if(requestedState==G4State_GeomClosed && + G4StateManager::GetStateManager()->GetPreviousState()==G4State_EventProc) { PauseSession("EndOfEvent"); } } return true; diff --git a/source/intercoms/src/G4UImessenger.cc b/source/intercoms/src/G4UImessenger.cc index 1995331454..2a4b2e41de 100644 --- a/source/intercoms/src/G4UImessenger.cc +++ b/source/intercoms/src/G4UImessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UImessenger.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UImessenger.hh" diff --git a/source/intercoms/src/G4UIparameter.cc b/source/intercoms/src/G4UIparameter.cc index 04c1ea958d..acc6226c84 100644 --- a/source/intercoms/src/G4UIparameter.cc +++ b/source/intercoms/src/G4UIparameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIparameter.cc,v 1.11 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UIparameter.hh" diff --git a/source/intercoms/src/G4UIsession.cc b/source/intercoms/src/G4UIsession.cc index 5f33c5d728..d1bdd0ac58 100644 --- a/source/intercoms/src/G4UIsession.cc +++ b/source/intercoms/src/G4UIsession.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIsession.cc,v 1.4 2001/07/11 10:01:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------------- diff --git a/source/intercoms/src/G4UnitsMessenger.cc b/source/intercoms/src/G4UnitsMessenger.cc index a3d1ba8af3..88c3845ab2 100644 --- a/source/intercoms/src/G4UnitsMessenger.cc +++ b/source/intercoms/src/G4UnitsMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsMessenger.cc,v 1.3 2001/07/11 10:01:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnitsMessenger.cc,v 1.4 2002/12/04 18:30:43 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -44,7 +44,7 @@ G4UnitsMessenger::G4UnitsMessenger() ListCmd = new G4UIcmdWithoutParameter("/units/list",this); ListCmd->SetGuidance("full list of available units."); - ListCmd->AvailableForStates(Idle); + ListCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/intercoms/src/G4VGlobalFastSimulationManager.cc b/source/intercoms/src/G4VGlobalFastSimulationManager.cc index 4c9ab6d996..222e3f3b3f 100644 --- a/source/intercoms/src/G4VGlobalFastSimulationManager.cc +++ b/source/intercoms/src/G4VGlobalFastSimulationManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VGlobalFastSimulationManager.cc,v 1.3 2001/07/11 10:01:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VGlobalFastSimulationManager.cc,v 1.4 2002/11/20 14:46:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Abstract interface for GEANT4 Global Fast Simulation Manager. @@ -32,3 +32,16 @@ G4VGlobalFastSimulationManager* G4VGlobalFastSimulationManager::fpConcreteInstance = 0; + +G4VGlobalFastSimulationManager* +G4VGlobalFastSimulationManager::GetConcreteInstance () +{ + return fpConcreteInstance; +} + +void +G4VGlobalFastSimulationManager:: +SetConcreteInstance (G4VGlobalFastSimulationManager* m) +{ + fpConcreteInstance = m; +} diff --git a/source/intercoms/src/G4VVisManager.cc b/source/intercoms/src/G4VVisManager.cc index bcf1df6cf6..3eee2d4a69 100644 --- a/source/intercoms/src/G4VVisManager.cc +++ b/source/intercoms/src/G4VVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisManager.cc,v 1.4 2001/07/11 10:01:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VVisManager.cc,v 1.5 2002/11/20 14:46:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Abstract interface for GEANT4 Visualization Manager. @@ -33,3 +33,13 @@ G4VVisManager::~G4VVisManager () {} G4VVisManager* G4VVisManager::fpConcreteInstance = 0; + +G4VVisManager* G4VVisManager::GetConcreteInstance () +{ + return fpConcreteInstance; +} + +void G4VVisManager::SetConcreteInstance (G4VVisManager* m) +{ + fpConcreteInstance = m; +} diff --git a/source/interfaces/GAG/include/G4UIGAG.hh b/source/interfaces/GAG/include/G4UIGAG.hh index fef9096fd7..63dfd6d912 100644 --- a/source/interfaces/GAG/include/G4UIGAG.hh +++ b/source/interfaces/GAG/include/G4UIGAG.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIGAG.hh,v 1.5 2001/07/11 10:01:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4UIGAG.hh // GAG(Geant4 adaptive GUI) interface class diff --git a/source/interfaces/GAG/include/G4UIGainServer.hh b/source/interfaces/GAG/include/G4UIGainServer.hh index 1450bec4a6..e64532ec50 100644 --- a/source/interfaces/GAG/include/G4UIGainServer.hh +++ b/source/interfaces/GAG/include/G4UIGainServer.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIGainServer.hh,v 1.3 2002/06/14 02:17:58 yhajime Exp $ -// $Name: geant4-04-01 $ +// $Name: geant4-05-00 $ // diff --git a/source/interfaces/GAG/src/G4UIGAG.cc b/source/interfaces/GAG/src/G4UIGAG.cc index fb085813b4..9c0ac12ef6 100644 --- a/source/interfaces/GAG/src/G4UIGAG.cc +++ b/source/interfaces/GAG/src/G4UIGAG.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIGAG.cc,v 1.14 2002/04/26 21:28:25 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UIGAG.cc,v 1.15 2002/12/05 16:33:41 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4UIGAG.cc // 18.Feb.98 M.Nagamatu and T.Kodama created G4UIGAG from G4UIterminal @@ -814,7 +814,7 @@ void G4UIGAG::NotifyParameterUpdate(G4UIcommand* com) //####### update check routines #################################### void G4UIGAG::UpdateState(void) { - static G4ApplicationState previousState= PreInit; + static G4ApplicationState previousState= G4State_PreInit; G4ApplicationState newState; G4StateManager *statM = G4StateManager::GetStateManager(); newState = statM->GetCurrentState(); diff --git a/source/interfaces/GAG/src/G4UIGainServer.cc b/source/interfaces/GAG/src/G4UIGainServer.cc index 515ce10a89..b36e599137 100644 --- a/source/interfaces/GAG/src/G4UIGainServer.cc +++ b/source/interfaces/GAG/src/G4UIGainServer.cc @@ -22,8 +22,8 @@ // // // 12/06/2002 G4UIGainServer H. MInamimoto and H. Yoshida created -// $Id: G4UIGainServer.cc,v 1.3 2002/06/14 02:18:00 yhajime Exp $ -// $Name: geant4-04-01 $ +// $Id: G4UIGainServer.cc,v 1.5 2002/12/05 16:33:42 asaim Exp $ +// $Name: geant4-05-00 $ // #ifndef WIN32 @@ -404,7 +404,8 @@ void G4UIGainServer::WaitingConnection(){ len = sizeof(caddr); for(int i=1;i<=2;i++){ - if((socketD[i] = accept(socketD[0], (struct sockaddr *)&caddr,(int *)&len))<0){ + // if((socketD[i] = accept(socketD[0], (struct sockaddr *)&caddr,(int *)&len))<0){ + if((socketD[i] = accept(socketD[0], (struct sockaddr *)&caddr,(socklen_t *)&len))<0){ G4cerr<<"accept:"<GetCurrentState(); diff --git a/source/interfaces/History b/source/interfaces/History index 4d4e827573..186cdbd252 100644 --- a/source/interfaces/History +++ b/source/interfaces/History @@ -1,4 +1,4 @@ -$Id: History,v 1.54 2002/06/14 09:16:24 gcosmo Exp $ +$Id: History,v 1.60 2002/12/05 16:33:41 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,24 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +04 December 2002, Makoto Asai (interfaces-V04-01-01, interfaces-V04-01-02) +- Migration to new G4ApplicationState. + +15 November 2002, Hajime Yoshida (interfaces-V04-01-00) +- basic/src/G4UIArrayStrings.cc is now working for "konsole" type termcap. + by Koichi Murakami + +09 November 2002, Hajime Yoshida (interfaces-V04-00-05) +- G4UIGainServer.cc uses socklen_t as before. It must work for Solaris CC and HP. +- test/G4cout_test01 updated. An example of setCoutDestination(UI) by a user. + +06 November 2002, Guy Barrand +- G4Xt.cc, G4UIXm.cc, G4UIXaw.cc : fix some warings. + +14 June 2002, Hajime Yoshida (interfaces-V04-00-04) +- G4UIGainServer.cc/hh have a protection: #ifndef WIN32 ~ #endif not to compile + on WIndows. + 14 June 2002, Hajime Yoshida (interfaces-V04-00-04) - Added protection #ifndef WIN32 to new class G4UIGainServer in definition and body, to prevent compilation on Windows platforms. @@ -28,6 +46,9 @@ committal in the CVS repository ! 12 June 2002, Hajime Yoshida (interfaces-V04-00-02) - Introduced new class G4UIGainServer, socket extension for G4UIGAG. +- added GAG/src/G4UIGainSErver.cc and GAG/include/G4UIGainServer.hh +- G4UIGainServer is the new member of libG4UIGAG.so(a) + (no modification to GNUmakefiles) 26 April 2002, Makoto Asai (interfaces-V04-00-01) - Corresponds to interfaces change in intercoms category (intercoms-V04-00-00) diff --git a/source/interfaces/OPACS/include/G4UIWo.hh b/source/interfaces/OPACS/include/G4UIWo.hh index 58d0d63773..cdb9cae0e7 100644 --- a/source/interfaces/OPACS/include/G4UIWo.hh +++ b/source/interfaces/OPACS/include/G4UIWo.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIWo.hh,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIWo_h #define G4UIWo_h diff --git a/source/interfaces/OPACS/include/G4WoMessenger.hh b/source/interfaces/OPACS/include/G4WoMessenger.hh index 38c2f62858..a8bcd303b7 100644 --- a/source/interfaces/OPACS/include/G4WoMessenger.hh +++ b/source/interfaces/OPACS/include/G4WoMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4WoMessenger.hh,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4WoMessenger_h #define G4WoMessenger_h 1 diff --git a/source/interfaces/OPACS/include/G4oCommon.hh b/source/interfaces/OPACS/include/G4oCommon.hh index ee4e2b795c..c2e58bc867 100644 --- a/source/interfaces/OPACS/include/G4oCommon.hh +++ b/source/interfaces/OPACS/include/G4oCommon.hh @@ -22,7 +22,7 @@ // // // $Id: G4oCommon.hh,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /* Included by G4o.h. diff --git a/source/interfaces/OPACS/include/G4oCommon.icc b/source/interfaces/OPACS/include/G4oCommon.icc index 68cdcc0c7a..fa1a357b8f 100644 --- a/source/interfaces/OPACS/include/G4oCommon.icc +++ b/source/interfaces/OPACS/include/G4oCommon.icc @@ -22,7 +22,7 @@ // // // $Id: G4oCommon.icc,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /* Included by G4o.cc. diff --git a/source/interfaces/OPACS/src/G4UIWo.cc b/source/interfaces/OPACS/src/G4UIWo.cc index 2b1876d7ad..4df30d17c3 100644 --- a/source/interfaces/OPACS/src/G4UIWo.cc +++ b/source/interfaces/OPACS/src/G4UIWo.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIWo.cc,v 1.5 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //G4UIWo.cc -- copied from G4UIterminal.cc diff --git a/source/interfaces/OPACS/src/G4WoMessenger.cc b/source/interfaces/OPACS/src/G4WoMessenger.cc index 8bf5b6a690..2733ece786 100644 --- a/source/interfaces/OPACS/src/G4WoMessenger.cc +++ b/source/interfaces/OPACS/src/G4WoMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4WoMessenger.cc,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifdef G4UI_BUILD_WO_SESSION diff --git a/source/interfaces/XVT/include/G4UIxvt.hh b/source/interfaces/XVT/include/G4UIxvt.hh index 2513e7ab76..12369b7423 100644 --- a/source/interfaces/XVT/include/G4UIxvt.hh +++ b/source/interfaces/XVT/include/G4UIxvt.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIxvt.hh,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // XVT driver class header // diff --git a/source/interfaces/XVT/include/G4UIxvtMessenger.hh b/source/interfaces/XVT/include/G4UIxvtMessenger.hh index f5b313ee40..b261d9d856 100644 --- a/source/interfaces/XVT/include/G4UIxvtMessenger.hh +++ b/source/interfaces/XVT/include/G4UIxvtMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIxvtMessenger.hh,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ////////////////////////////////////////////////////////////////////////////// // // diff --git a/source/interfaces/XVT/src/G4UIxvt.cc b/source/interfaces/XVT/src/G4UIxvt.cc index 84937af0bc..b1c650b755 100644 --- a/source/interfaces/XVT/src/G4UIxvt.cc +++ b/source/interfaces/XVT/src/G4UIxvt.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIxvt.cc,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UIxvt.cc,v 1.5 2002/12/04 22:03:09 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifdef G4UI_BUILD_XVT_SESSION @@ -126,7 +126,7 @@ G4bool G4UIxvt::breakRequested(G4ApplicationState previousState, G4bool ans = false; - if(previousState==Idle && requestedState==GeomClosed && brktbl[0]) + if(previousState==G4State_Idle && requestedState==G4State_GeomClosed && brktbl[0]) { writeGeantToXvt("====== BREAKPOINT NOTIFICATION ======"); writeGeantToXvt("BreakPoint at: BEGIN OF RUN"); @@ -136,7 +136,7 @@ G4bool G4UIxvt::breakRequested(G4ApplicationState previousState, ans = true; } - if(previousState==GeomClosed && requestedState==EventProc && brktbl[1]) + if(previousState==G4State_GeomClosed && requestedState==G4State_EventProc && brktbl[1]) { writeGeantToXvt("====== BREAKPOINT NOTIFICATION ======"); writeGeantToXvt("BreakPoint at: BEGIN OF EVENT"); @@ -146,7 +146,7 @@ G4bool G4UIxvt::breakRequested(G4ApplicationState previousState, ans = true; } - if(previousState==EventProc && requestedState==GeomClosed && brktbl[2]) + if(previousState==G4State_EventProc && requestedState==G4State_GeomClosed && brktbl[2]) { writeGeantToXvt("====== BREAKPOINT NOTIFICATION ======"); writeGeantToXvt("BreakPoint at: END OF EVENT"); @@ -156,7 +156,7 @@ G4bool G4UIxvt::breakRequested(G4ApplicationState previousState, ans = true; } - if(previousState==GeomClosed && requestedState==Idle && brktbl[3]) + if(previousState==G4State_GeomClosed && requestedState==G4State_Idle && brktbl[3]) { writeGeantToXvt("====== BREAKPOINT NOTIFICATION ======"); writeGeantToXvt("BreakPoint at: END OF RUN"); diff --git a/source/interfaces/XVT/src/G4UIxvtMessenger.cc b/source/interfaces/XVT/src/G4UIxvtMessenger.cc index b7faa108fe..5fb3395176 100644 --- a/source/interfaces/XVT/src/G4UIxvtMessenger.cc +++ b/source/interfaces/XVT/src/G4UIxvtMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIxvtMessenger.cc,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifdef G4UI_BUILD_XVT_SESSION diff --git a/source/interfaces/basic/include/G4UIArrayString.hh b/source/interfaces/basic/include/G4UIArrayString.hh index 57150cbb23..0867a79a6e 100644 --- a/source/interfaces/basic/include/G4UIArrayString.hh +++ b/source/interfaces/basic/include/G4UIArrayString.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIArrayString.hh,v 1.2 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIArrayString_h diff --git a/source/interfaces/basic/include/G4UIWin32.hh b/source/interfaces/basic/include/G4UIWin32.hh index 250ce97b81..d5bd3fa400 100644 --- a/source/interfaces/basic/include/G4UIWin32.hh +++ b/source/interfaces/basic/include/G4UIWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIWin32.hh,v 1.10 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIWin32_h #define G4UIWin32_h diff --git a/source/interfaces/basic/include/G4UIXaw.hh b/source/interfaces/basic/include/G4UIXaw.hh index 6d3c1b62ee..37eeccedbc 100644 --- a/source/interfaces/basic/include/G4UIXaw.hh +++ b/source/interfaces/basic/include/G4UIXaw.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIXaw.hh,v 1.5 2001/07/11 10:01:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIXaw_h #define G4UIXaw_h diff --git a/source/interfaces/basic/include/G4UIXm.hh b/source/interfaces/basic/include/G4UIXm.hh index d02fe3dd52..daced2ff48 100644 --- a/source/interfaces/basic/include/G4UIXm.hh +++ b/source/interfaces/basic/include/G4UIXm.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIXm.hh,v 1.11 2001/07/11 10:01:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIXm_h #define G4UIXm_h diff --git a/source/interfaces/basic/include/G4UIcsh.hh b/source/interfaces/basic/include/G4UIcsh.hh index aee0e7fa63..d08cc253c5 100644 --- a/source/interfaces/basic/include/G4UIcsh.hh +++ b/source/interfaces/basic/include/G4UIcsh.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcsh.hh,v 1.3 2001/07/11 10:01:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIcsh_h diff --git a/source/interfaces/basic/include/G4UItcsh.hh b/source/interfaces/basic/include/G4UItcsh.hh index ee42c7e7ba..2305f8e58f 100644 --- a/source/interfaces/basic/include/G4UItcsh.hh +++ b/source/interfaces/basic/include/G4UItcsh.hh @@ -22,7 +22,7 @@ // // // $Id: G4UItcsh.hh,v 1.5 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UItcsh_h diff --git a/source/interfaces/basic/include/G4UIterminal.hh b/source/interfaces/basic/include/G4UIterminal.hh index 48afafdfdb..a6dbbb9bb8 100644 --- a/source/interfaces/basic/include/G4UIterminal.hh +++ b/source/interfaces/basic/include/G4UIterminal.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIterminal.hh,v 1.7 2001/07/11 10:01:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UIterminal_h diff --git a/source/interfaces/basic/include/G4VUIshell.hh b/source/interfaces/basic/include/G4VUIshell.hh index 19b3794867..e7d7397d78 100644 --- a/source/interfaces/basic/include/G4VUIshell.hh +++ b/source/interfaces/basic/include/G4VUIshell.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUIshell.hh,v 1.5 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VUIshell_h diff --git a/source/interfaces/basic/src/G4UIArrayString.cc b/source/interfaces/basic/src/G4UIArrayString.cc index 4d07de1b24..9e8e756bd1 100644 --- a/source/interfaces/basic/src/G4UIArrayString.cc +++ b/source/interfaces/basic/src/G4UIArrayString.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIArrayString.cc,v 1.5 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UIArrayString.cc,v 1.6 2002/10/17 02:40:24 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/iomanip" @@ -46,11 +46,12 @@ G4UIArrayString::G4UIArrayString(const G4String& stream) G4int jc= astream.index(" ", indx); nElement++; if(jc == G4int(G4String::npos)) break; - for(G4int i=1; jc+i< G4int(astream.length()); i++ ) { // skip continuing spaces - if(astream[(size_t)(jc+i)]==' ') jc++; + jc++; // fix a tiny mistake... + for(; jc< G4int(astream.length()); ) { // skip continuing spaces + if(astream[(size_t)(jc)]==' ') jc++; else break; } - indx= jc+1; + indx= jc; } // allocate string array @@ -181,7 +182,8 @@ void G4UIArrayString::Show(G4int ncol) if(!colorWord.empty()) G4cout << colorWord << G4std::flush; G4cout << G4std::setiosflags(G4std::ios::left) << G4std::setw(GetNField(ix)) - << word << G4std::flush; + << word.c_str() << G4std::flush; + // against problem w/ g++ iostream if(ix != nc) G4cout << " " << G4std::flush; else G4cout << G4endl; } diff --git a/source/interfaces/basic/src/G4UIWin32.cc b/source/interfaces/basic/src/G4UIWin32.cc index 4245866d27..4df7e0d2a9 100644 --- a/source/interfaces/basic/src/G4UIWin32.cc +++ b/source/interfaces/basic/src/G4UIWin32.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIWin32.cc,v 1.7 2001/07/11 10:01:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXaw.cc b/source/interfaces/basic/src/G4UIXaw.cc index 43c5595837..58dfa0f85e 100644 --- a/source/interfaces/basic/src/G4UIXaw.cc +++ b/source/interfaces/basic/src/G4UIXaw.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIXaw.cc,v 1.4 2001/07/11 10:01:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UIXaw.cc,v 1.5 2002/11/06 08:12:37 barrand Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand @@ -62,7 +62,7 @@ G4UIXaw::G4UIXaw ( G4UImanager* UI = G4UImanager::GetUIpointer(); if(UI!=NULL) UI->SetSession(this); - G4Xt* interactorManager = G4Xt::getInstance (argc,argv,"Xaw"); + G4Xt* interactorManager = G4Xt::getInstance (argc,argv,(char*)"Xaw"); Widget top = (Widget)interactorManager->GetMainInteractor(); shell = XtAppCreateShell ("G4UIXaw","G4UIXaw",topLevelShellWidgetClass,XtDisplay(top),NULL,0); diff --git a/source/interfaces/basic/src/G4UIXm.cc b/source/interfaces/basic/src/G4UIXm.cc index 789756011e..bba1481ccd 100644 --- a/source/interfaces/basic/src/G4UIXm.cc +++ b/source/interfaces/basic/src/G4UIXm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIXm.cc,v 1.7 2001/07/11 10:01:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UIXm.cc,v 1.8 2002/11/06 08:12:37 barrand Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand @@ -81,7 +81,7 @@ G4UIXm::G4UIXm ( G4UImanager* UI = G4UImanager::GetUIpointer(); if(UI!=NULL) UI->SetSession(this); - G4Xt* interactorManager = G4Xt::getInstance (argc,argv,"Xm"); + G4Xt* interactorManager = G4Xt::getInstance (argc,argv,(char*)"Xm"); Widget top = (Widget)interactorManager->GetMainInteractor(); @@ -90,19 +90,19 @@ G4UIXm::G4UIXm ( shell = XtAppCreateShell ("G4UIXm","G4UIXm", topLevelShellWidgetClass,XtDisplay(top), args,1); - form = XmCreateForm (shell,"form",NULL,0); + form = XmCreateForm (shell,(char*)"form",NULL,0); XtManageChild (form); XtSetArg(args[0],XmNtopAttachment ,XmATTACH_FORM); XtSetArg(args[1],XmNleftAttachment ,XmATTACH_FORM); XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); - menuBar = XmCreateMenuBar (form,"menuBar",args,3); + menuBar = XmCreateMenuBar (form,(char*)"menuBar",args,3); XtSetArg(args[0],XmNtopAttachment ,XmATTACH_NONE); XtSetArg(args[1],XmNleftAttachment ,XmATTACH_FORM); XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); XtSetArg(args[3],XmNbottomAttachment ,XmATTACH_FORM); - command = XmCreateCommand (form,"command",args,4); + command = XmCreateCommand (form,(char*)"command",args,4); XtManageChild (command); XtSetArg(args[0],XmNtopAttachment ,XmATTACH_NONE); @@ -110,9 +110,9 @@ G4UIXm::G4UIXm ( XtSetArg(args[2],XmNrightAttachment ,XmATTACH_FORM); XtSetArg(args[3],XmNbottomAttachment,XmATTACH_WIDGET); XtSetArg(args[4],XmNbottomWidget ,command); - XmString cps = XmStringLtoRCreate("Clear",XmSTRING_DEFAULT_CHARSET); + XmString cps = XmStringLtoRCreate((char*)"Clear",XmSTRING_DEFAULT_CHARSET); XtSetArg (args[5],XmNlabelString,cps); - Widget clearButton = XmCreatePushButton(form,"clearButton",args,6); + Widget clearButton = XmCreatePushButton(form,(char*)"clearButton",args,6); XmStringFree (cps); XtManageChild (clearButton); @@ -125,7 +125,7 @@ G4UIXm::G4UIXm ( XtSetArg(args[6],XmNeditMode ,XmMULTI_LINE_EDIT); XtSetArg(args[7],XmNrows ,12); XtSetArg(args[8],XmNcolumns ,80); - text = XmCreateScrolledText (form,"text",args,9); + text = XmCreateScrolledText (form,(char*)"text",args,9); XtManageChild (text); XtAddCallback(clearButton,XmNactivateCallback, @@ -389,7 +389,7 @@ void clearButtonCallback ( /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { - XmTextSetString((Widget)a_tag,""); + XmTextSetString((Widget)a_tag,(char*)""); } /***************************************************************************/ void G4UIXm::ButtonCallback ( diff --git a/source/interfaces/basic/src/G4UIcsh.cc b/source/interfaces/basic/src/G4UIcsh.cc index d8c96ea848..cd6bb77be3 100644 --- a/source/interfaces/basic/src/G4UIcsh.cc +++ b/source/interfaces/basic/src/G4UIcsh.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcsh.cc,v 1.6 2002/02/26 02:09:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UIcsh.hh" diff --git a/source/interfaces/basic/src/G4UItcsh.cc b/source/interfaces/basic/src/G4UItcsh.cc index f5073d5f24..d2cba2f990 100644 --- a/source/interfaces/basic/src/G4UItcsh.cc +++ b/source/interfaces/basic/src/G4UItcsh.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UItcsh.cc,v 1.7 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UItcsh.cc,v 1.8 2002/10/17 02:41:22 murakami Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef WIN32 @@ -554,7 +554,7 @@ G4String G4UItcsh::ReadLine() // treatment for ESC. character if( cc == AsciiESC) { // ESC G4cin.get(cc); - if (cc == '[') { + if (cc == '[' || 'O') { // care for another termcap, such as konsole G4cin.get(cc); switch(cc) { case 'A': // [UP] diff --git a/source/interfaces/basic/src/G4UIterminal.cc b/source/interfaces/basic/src/G4UIterminal.cc index af8f1c8fe9..101dd4040d 100644 --- a/source/interfaces/basic/src/G4UIterminal.cc +++ b/source/interfaces/basic/src/G4UIterminal.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIterminal.cc,v 1.17 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/strstream" diff --git a/source/interfaces/basic/src/G4VUIshell.cc b/source/interfaces/basic/src/G4VUIshell.cc index cc6e7ef8d2..c9a9a9ebca 100644 --- a/source/interfaces/basic/src/G4VUIshell.cc +++ b/source/interfaces/basic/src/G4VUIshell.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUIshell.cc,v 1.7 2002/04/26 21:28:26 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UImanager.hh" diff --git a/source/interfaces/common/include/G4VBasicShell.hh b/source/interfaces/common/include/G4VBasicShell.hh index 1a283fa052..122da49c2e 100644 --- a/source/interfaces/common/include/G4VBasicShell.hh +++ b/source/interfaces/common/include/G4VBasicShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4VBasicShell.hh,v 1.6 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VBasicShell_H diff --git a/source/interfaces/common/include/G4VInteractorManager.hh b/source/interfaces/common/include/G4VInteractorManager.hh index b58f51fd47..2cae84c765 100644 --- a/source/interfaces/common/include/G4VInteractorManager.hh +++ b/source/interfaces/common/include/G4VInteractorManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VInteractorManager.hh,v 1.7 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand diff --git a/source/interfaces/common/include/G4Win32.hh b/source/interfaces/common/include/G4Win32.hh index 989ea370d7..df61739d50 100644 --- a/source/interfaces/common/include/G4Win32.hh +++ b/source/interfaces/common/include/G4Win32.hh @@ -22,7 +22,7 @@ // // // $Id: G4Win32.hh,v 1.6 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // To unify Windows message treatment between // G4/interfaces Windows sessions and G4/visualizations Windows drivers. diff --git a/source/interfaces/common/include/G4Xt.hh b/source/interfaces/common/include/G4Xt.hh index c9de1cc91e..f104588f46 100644 --- a/source/interfaces/common/include/G4Xt.hh +++ b/source/interfaces/common/include/G4Xt.hh @@ -22,7 +22,7 @@ // // // $Id: G4Xt.hh,v 1.5 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // To unify X11 event treatment between // G4/interfaces Xt sessions and G4/visualizations Xt drivers. diff --git a/source/interfaces/common/src/G4VBasicShell.cc b/source/interfaces/common/src/G4VBasicShell.cc index cfa83182b5..d68b3478db 100644 --- a/source/interfaces/common/src/G4VBasicShell.cc +++ b/source/interfaces/common/src/G4VBasicShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4VBasicShell.cc,v 1.9 2002/04/26 21:28:26 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/vector" diff --git a/source/interfaces/common/src/G4VInteractorManager.cc b/source/interfaces/common/src/G4VInteractorManager.cc index 49c1a490fb..098dc7145c 100644 --- a/source/interfaces/common/src/G4VInteractorManager.cc +++ b/source/interfaces/common/src/G4VInteractorManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4VInteractorManager.cc,v 1.11 2001/12/03 08:07:45 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand diff --git a/source/interfaces/common/src/G4Win32.cc b/source/interfaces/common/src/G4Win32.cc index f7c1a2b6fa..f357b67234 100644 --- a/source/interfaces/common/src/G4Win32.cc +++ b/source/interfaces/common/src/G4Win32.cc @@ -22,7 +22,7 @@ // // // $Id: G4Win32.cc,v 1.6 2001/07/11 10:01:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand diff --git a/source/interfaces/common/src/G4Xt.cc b/source/interfaces/common/src/G4Xt.cc index f690331829..c8e1f539f7 100644 --- a/source/interfaces/common/src/G4Xt.cc +++ b/source/interfaces/common/src/G4Xt.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Xt.cc,v 1.8 2001/12/03 08:01:47 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Xt.cc,v 1.9 2002/11/06 08:12:58 barrand Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G.Barrand @@ -58,7 +58,7 @@ G4Xt* G4Xt::getInstance ( /***************************************************************************/ /*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ { - return G4Xt::getInstance (0,NULL,"Geant4"); + return G4Xt::getInstance (0,NULL,(char*)"Geant4"); } /***************************************************************************/ G4Xt* G4Xt::getInstance ( diff --git a/source/materials/History b/source/materials/History index 947f64ae0b..a9f93fa8e3 100644 --- a/source/materials/History +++ b/source/materials/History @@ -1,4 +1,4 @@ -$Id: History,v 1.36 2002/05/06 15:37:54 maire Exp $ +$Id: History,v 1.42 2002/11/12 13:01:23 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,18 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +05.11.02 P.Gumplinger - materials-V04-01-03 + Add constant material properties to the G4MaterialPropertiesTable + +29.10.02 V.Ivanchenko - materials-V04-01-02 + G4IonisParamMat: Add Set and Find MeanExcitation energy methods. + +17.10.02 V.Ivanchenko - materials-V04-01-01 + G4IonisParamElm.cc: Fix excitation energy interpolation. + +06.08.02 M.Maire - materials-V04-01-00 + Remove constructors with chemical formula + 06.05.02 M.Maire - materials-V04-00-03 Remove the check of the ideal gas state equation diff --git a/source/materials/include/G4AtomicShells.hh b/source/materials/include/G4AtomicShells.hh index 07342950d0..28e9ad12be 100644 --- a/source/materials/include/G4AtomicShells.hh +++ b/source/materials/include/G4AtomicShells.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShells.hh,v 1.4 2001/07/11 10:01:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // class description // diff --git a/source/materials/include/G4Element.hh b/source/materials/include/G4Element.hh index b605c59b1f..e8577c75c7 100644 --- a/source/materials/include/G4Element.hh +++ b/source/materials/include/G4Element.hh @@ -22,7 +22,7 @@ // // // $Id: G4Element.hh,v 1.16 2002/02/26 17:34:34 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class description diff --git a/source/materials/include/G4ElementTable.hh b/source/materials/include/G4ElementTable.hh index 362c39fe37..09e7a2d721 100644 --- a/source/materials/include/G4ElementTable.hh +++ b/source/materials/include/G4ElementTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElementTable.hh,v 1.4 2001/10/17 14:02:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4ElementVector.hh b/source/materials/include/G4ElementVector.hh index 5d9d94e69c..61a8bf9f39 100644 --- a/source/materials/include/G4ElementVector.hh +++ b/source/materials/include/G4ElementVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElementVector.hh,v 1.4 2001/10/17 07:59:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4IonisParamElm.hh b/source/materials/include/G4IonisParamElm.hh index 7a8f4d859f..c4e5f1adc0 100644 --- a/source/materials/include/G4IonisParamElm.hh +++ b/source/materials/include/G4IonisParamElm.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamElm.hh,v 1.6 2001/07/11 10:01:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class description diff --git a/source/materials/include/G4IonisParamMat.hh b/source/materials/include/G4IonisParamMat.hh index a3ddbe2946..b5ede9fe05 100644 --- a/source/materials/include/G4IonisParamMat.hh +++ b/source/materials/include/G4IonisParamMat.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonisParamMat.hh,v 1.6 2001/07/11 10:01:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IonisParamMat.hh,v 1.7 2002/10/29 16:17:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class description @@ -33,7 +33,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... -// 09.03.01: copy constructor and assignement operator in public (mma) +// 28-10-02: add setMeanExcitationEnergy (V.Ivanchenko) +// 09-03-01: copy constructor and assignement operator in public (mma) // 09-07-98: data moved from G4Material (mma) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -61,6 +62,8 @@ public: // parameters for mean energy loss calculation: G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;}; + void SetMeanExcitationEnergy(G4double value); + G4double FindMeanExcitationEnergy(const G4String& chFormula); G4double GetLogMeanExcEnergy() const {return fLogMeanExcEnergy;}; G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;}; G4double GetTaul() const {return fTaul;}; diff --git a/source/materials/include/G4Isotope.hh b/source/materials/include/G4Isotope.hh index 70b4d17867..b7f93976aa 100644 --- a/source/materials/include/G4Isotope.hh +++ b/source/materials/include/G4Isotope.hh @@ -22,7 +22,7 @@ // // // $Id: G4Isotope.hh,v 1.14 2002/02/26 17:34:34 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/include/G4IsotopeVector.hh b/source/materials/include/G4IsotopeVector.hh index cbf5924c10..dd623d236d 100644 --- a/source/materials/include/G4IsotopeVector.hh +++ b/source/materials/include/G4IsotopeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4IsotopeVector.hh,v 1.4 2001/10/17 07:59:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4MPVEntry.hh b/source/materials/include/G4MPVEntry.hh index 31a7b4fd8a..fd5c6f81f7 100644 --- a/source/materials/include/G4MPVEntry.hh +++ b/source/materials/include/G4MPVEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G4MPVEntry.hh,v 1.5 2001/07/11 10:01:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4Material.hh b/source/materials/include/G4Material.hh index 1150174c80..e9d44a4927 100644 --- a/source/materials/include/G4Material.hh +++ b/source/materials/include/G4Material.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Material.hh,v 1.20 2002/02/26 17:34:34 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Material.hh,v 1.21 2002/08/06 15:14:29 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // class description @@ -75,6 +75,7 @@ // 14-09-01, Suppression of the data member fIndexInTable // 31-10-01, new function SetChemicalFormula() (mma) // 26-02-02, fIndexInTable renewed +// 06-08-02, remove constructors with ChemicalFormula (mma) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -121,31 +122,6 @@ public: // with description G4double temp = STP_Temperature, //temperature G4double pressure = STP_Pressure); //pressure - // - // Constructor to create a material with chemical formula from scratch. - // - G4Material(const G4String& name, //its name - const G4String& chFormula, //chemicalFormul - G4double z, //atomic number - G4double a, //mass of mole - G4double density, //density - G4State state = kStateUndefined, //solid,gas - G4double temp = STP_Temperature, //temperature - G4double pressure = STP_Pressure); //pressure - - // - // Constructor to create a material with chemical formula from a - // combination of elements and/or materials subsequently added via - // AddElement and/or AddMaterial - // - G4Material(const G4String& name, //its name - const G4String& chFormula, //chemicalFormul - G4double density, //density - G4int nComponents, //nbOfComponents - G4State state = kStateUndefined, //solid,gas - G4double temp = STP_Temperature, //temperature - G4double pressure = STP_Pressure); //pressure - // // Add an element, giving number of atoms // diff --git a/source/materials/include/G4MaterialPropertiesTable.hh b/source/materials/include/G4MaterialPropertiesTable.hh index cd60e5eea1..00d98a1d13 100644 --- a/source/materials/include/G4MaterialPropertiesTable.hh +++ b/source/materials/include/G4MaterialPropertiesTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MaterialPropertiesTable.hh,v 1.10 2001/07/11 10:01:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MaterialPropertiesTable.hh,v 1.11 2002/11/07 02:29:58 gum Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -31,11 +31,13 @@ // // File: G4MaterialPropertiesTable.hh // Description: An Material properties table is a hash table, with -// key = property name, and value = G4MaterialPropertyVector +// key = property name, and value either G4double or +// G4MaterialPropertyVector // Version: 1.0 // Created: 1996-02-08 // Author: Juliet Armstrong -// Updated: 1999-11-05 Migration from G4RWTPtrHashDictionary to STL +// Updated: 2002-11-05 add named material constants by P. Gumplinger +// 1999-11-05 Migration from G4RWTPtrHashDictionary to STL // by John Allison // 1999-10-29 add method and class descriptors // 1997-03-25 by Peter Gumplinger @@ -58,44 +60,29 @@ // Class Description: // An Material properties table is a hash table, with key = property -// name, and value = G4MaterialPropertyVector. +// name, and value either G4double or G4MaterialPropertyVector. // Class Description - End: -#define RefractionIndex "RINDEX" - ///////////////////// // Class Definition ///////////////////// class G4MaterialPropertiesTable { - ////////////// - // Operators - ////////////// - -private: - - G4MaterialPropertiesTable& - operator =(const G4MaterialPropertiesTable &right); - - //////////////// - // Constructor - //////////////// + //////////////// + // Constructor + //////////////// public: // Without description G4MaterialPropertiesTable(); -private: - - G4MaterialPropertiesTable(const G4MaterialPropertiesTable &right); - -public: // Without description - /////////////// // Destructor /////////////// +public: // Without description + ~G4MaterialPropertiesTable(); //////////// @@ -104,6 +91,10 @@ public: // Without description public: // With description + void AddConstProperty(const char *key, + G4double PropertyValue); + // Add a new property to the table by giving a key-name and value + void AddProperty(const char *key, G4double *PhotonMomenta, G4double *PropertyValues, @@ -115,9 +106,15 @@ public: // With description // Add a new property to the table by giving a key-name and an // already constructed G4MaterialPropertyVector. + void RemoveConstProperty(const char *key); + // Remove a constant property from the table. + void RemoveProperty(const char *key); // Remove a property from the table. + G4double GetConstProperty(const char *key); + // Get the constant property from the table corresponding to the key-name + G4MaterialPropertyVector* GetProperty(const char *key); // Get the property from the table corresponding to the key-name. @@ -139,6 +136,11 @@ private: G4std::map > MPT; typedef G4std::map >::iterator MPTiterator; + + G4std::map< G4String, G4double, G4std::less > MPTC; + typedef G4std::map< G4String, G4double, + G4std::less >::iterator MPTCiterator; + }; #endif /* G4MaterialPropertiesTable_h */ diff --git a/source/materials/include/G4MaterialPropertyVector.hh b/source/materials/include/G4MaterialPropertyVector.hh index d3c8622821..3788f3ef42 100644 --- a/source/materials/include/G4MaterialPropertyVector.hh +++ b/source/materials/include/G4MaterialPropertyVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertyVector.hh,v 1.8 2002/01/22 15:23:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4MaterialTable.hh b/source/materials/include/G4MaterialTable.hh index 5a90844bcd..6397b667b5 100644 --- a/source/materials/include/G4MaterialTable.hh +++ b/source/materials/include/G4MaterialTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialTable.hh,v 1.4 2001/10/17 14:02:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4OpticalSurface.hh b/source/materials/include/G4OpticalSurface.hh index 31592e442f..5be272b325 100644 --- a/source/materials/include/G4OpticalSurface.hh +++ b/source/materials/include/G4OpticalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpticalSurface.hh,v 1.5 2001/07/11 10:01:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4SandiaTable.hh b/source/materials/include/G4SandiaTable.hh index 73f8006b39..99fdeace75 100644 --- a/source/materials/include/G4SandiaTable.hh +++ b/source/materials/include/G4SandiaTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4SandiaTable.hh,v 1.10 2001/10/17 07:59:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // class description // diff --git a/source/materials/include/G4StaticSandiaData.hh b/source/materials/include/G4StaticSandiaData.hh index ff6c6c8f59..5f8a98d4e2 100644 --- a/source/materials/include/G4StaticSandiaData.hh +++ b/source/materials/include/G4StaticSandiaData.hh @@ -22,7 +22,7 @@ // // // $Id: G4StaticSandiaData.hh,v 1.6 2002/04/15 16:50:36 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4AtomicShells.cc b/source/materials/src/G4AtomicShells.cc index 8300453334..5dfc4b031c 100644 --- a/source/materials/src/G4AtomicShells.cc +++ b/source/materials/src/G4AtomicShells.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShells.cc,v 1.3 2001/07/11 10:01:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4Element.cc b/source/materials/src/G4Element.cc index 873d9a02fe..a2b127f680 100644 --- a/source/materials/src/G4Element.cc +++ b/source/materials/src/G4Element.cc @@ -22,7 +22,7 @@ // // // $Id: G4Element.cc,v 1.15 2002/02/26 17:34:34 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4IonisParamElm.cc b/source/materials/src/G4IonisParamElm.cc index 23a57468d0..23ad80e883 100644 --- a/source/materials/src/G4IonisParamElm.cc +++ b/source/materials/src/G4IonisParamElm.cc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4IonisParamElm.cc,v 1.7 2001/07/11 10:01:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IonisParamElm.cc,v 1.8 2002/10/17 09:00:29 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... // +// 17-10-02, Fix excitation energy interpolation. V.Ivanchenko // 08-03-01, correct handling of fShellCorrectionVector. M.Maire // 22-11-00, tabulation of ionisation potential from // the ICRU Report N#37. V.Ivanchenko @@ -66,11 +67,10 @@ G4IonisParamElm::G4IonisParamElm(G4double Z) 10.0, 10.0, 9.9, 9.9, 9.7, 9.2, 9.5, 9.4, 9.4, 9.4, 9.6, 9.7, 9.7, 9.8, 9.8, 9.8, 9.8, 9.9, 9.9, 9.9 }; - G4int iz = (G4int)Z - 1 ; - if(0 > iz) iz = 0; - if(98 < iz) iz = 98 ; - fMeanExcitationEnergy = - fZ * (exc[iz] + (fZ - (G4double)(iz))*(exc[iz+1] - exc[iz])) * eV ; + G4int iz = (G4int)Z - 1 ; + if(0 > iz) iz = 0; + else if(99 < iz) iz = 99 ; + fMeanExcitationEnergy = fZ * exc[iz] * eV ; fTau0 = 0.1*fZ3*MeV/proton_mass_c2; diff --git a/source/materials/src/G4IonisParamMat.cc b/source/materials/src/G4IonisParamMat.cc index 2aa12607b4..e348e4d124 100644 --- a/source/materials/src/G4IonisParamMat.cc +++ b/source/materials/src/G4IonisParamMat.cc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4IonisParamMat.cc,v 1.9 2001/09/13 08:57:46 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4IonisParamMat.cc,v 1.10 2002/10/29 16:17:05 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... +// 28-10-02, add setMeanExcitationEnergy (V.Ivanchenko) // 08-02-01, fShellCorrectionVector correctly handled (mma) // 16-01-01, bug corrected in ComputeDensityEffect() E100eV (L.Urban) // 18-07-98, bug corrected in ComputeDensityEffect() for gas @@ -54,16 +55,21 @@ void G4IonisParamMat::ComputeMeanParameters() // compute mean excitation energy and shell correction vector fTaul = (*(fMaterial->GetElementVector()))[0]->GetIonisation()->GetTaul(); + + fMeanExcitationEnergy = 0.; fLogMeanExcEnergy = 0.; - for (size_t i=0; i < fMaterial->GetNumberOfElements(); i++) + + for (size_t i=0; i < fMaterial->GetNumberOfElements(); i++) { fLogMeanExcEnergy += (fMaterial->GetVecNbOfAtomsPerVolume())[i] - *((*(fMaterial->GetElementVector()))[i]->GetZ()) - *log((*(fMaterial->GetElementVector()))[i]->GetIonisation() - ->GetMeanExcitationEnergy()); + *((*(fMaterial->GetElementVector()))[i]->GetZ()) + *log((*(fMaterial->GetElementVector()))[i]->GetIonisation() + ->GetMeanExcitationEnergy()); + } fLogMeanExcEnergy /= fMaterial->GetTotNbOfElectPerVolume(); fMeanExcitationEnergy = exp(fLogMeanExcEnergy); + fShellCorrectionVector = new G4double[3]; for (G4int j=0; j<=2; j++) @@ -192,6 +198,89 @@ void G4IonisParamMat::ComputeFluctModel() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... +void G4IonisParamMat::SetMeanExcitationEnergy(G4double value) +{ + if(value == fMeanExcitationEnergy || value <= 0.0) return; + + if(fMeanExcitationEnergy > 0.0) { + + G4cout << "G4Material: Mean excitation energy is changed for " << fMaterial->GetName() + << " Iold= " << fMeanExcitationEnergy/eV + << "eV; Inew= " << value/eV << " eV;" + << G4endl; + } + + fMeanExcitationEnergy = value; + fLogMeanExcEnergy = log(value); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + +G4double G4IonisParamMat::FindMeanExcitationEnergy(const G4String& chFormula) +{ + + // The data on mean excitation energy for compaunds + // from "Stopping Powers for Electrons and Positrons" + // ICRU Report N#37, 1984 (energy in eV) + + const size_t numberOfMolecula = 79 ; + + static G4String name[numberOfMolecula] = { + + // gas + "NH_3", "C_4H_10", "CO_2", "C_2H_6", "C_7H_16", + "C_6H_14", "CH_4", "NO", "N_2O", "C_8H_18", + "C_5H_12", "C_3H_8", "H_2O-Gas", + + // liquid + "C_3H_6O", "C_6H_5NH_2", "C_6H_6", "C_4H_9OH", "CCl_4", + "C_6H_5Cl", "CHCl_3", "C_6H_12", "C_6H_4Cl_2", "C_4Cl_2H_8O", + "C_2Cl_2H_4", "(C_2H_5)_2O", "C_2H_5OH", "C_3H_5(OH)_3","C_7H_16", + "C_6H_14", "CH_3OH", "C_6H_5NO_2","C_5H_12", "C_3H_7OH", + "C_5H_5N", "C_8H_8", "C_2Cl_4", "C_7H_8", "C_2Cl_3H", + "H_2O", "C_8H_10" + + //solid + "C_5H_5N_5", "C_5H_5N_5O", "(C_6H_11NO)-nylon", "C_25H_52", + "(C_2H_4)-Polyethylene", "(C_5H_8O-2)-Polymethil_Methacrylate", + "(C_8H_8)-Polystyrene", "A-150-tissue", "Al_2O_3", "CaF_2", + "LiF", "Photo_Emulsion", "(C_2F_4)-Teflon", "SiO_2" + + } ; + + static G4double meanExcitation[numberOfMolecula] = { + + 53.7, 48.3, 85.0, 45.4, 49.2, + 49.1, 41.7, 87.8, 84.9, 49.5, + 48.2, 47.1, 71.6, + + 64.2, 66.2, 63.4, 59.9, 166.3, + 89.1, 156.0, 56.4, 106.5, 103.3, + 111.9, 60.0, 62.9, 72.6, 54.4, + 54.0, 67.6, 75.8, 53.6, 61.1, + 66.2, 64.0, 159.2, 62.5, 148.1, + 75.0, 61.8, + + 71.4, 75.0, 63.9, 48.3, 57.4, + 74.0, 68.7, 65.1, 145.2, 166., + 94.0, 331.0, 99.1, 139.2 + + } ; + + G4double x = fMeanExcitationEnergy; + + for(size_t i=0; i from G4Material constructor with chemical formula." - " This constructor is depreciated.\n" - " Use material->SetChemicalFormula(const G4String&)"); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// Constructor to create a material with chemical formula from a List -// of constituents (elements and/or materials) added with AddElement -// or AddMaterial - -G4Material::G4Material(const G4String& name, const G4String& chFormula, - G4double density, G4int nComponents, - G4State state, G4double temp, G4double pressure) -:fName(name),fChemicalFormula(chFormula) -{ - G4Exception - ("---> from G4Material constructor with chemical formula." - " This constructor is depreciated.\n" - " Use material->SetChemicalFormula(const G4String&)"); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - // AddElement -- composition by atom count void G4Material::AddElement(G4Element* element, G4int nAtoms) @@ -371,31 +340,6 @@ void G4Material::ComputeDerivedQuantities() TotNbOfAtomsPerVolume += VecNbOfAtomsPerVolume[i]; TotNbOfElectPerVolume += VecNbOfAtomsPerVolume[i]*Zi; } - -/// //for gas, check coherence of the state conditions -/// if (fState == kStateGas) { -/// G4int nbAtomsPerMolecule = 1; -/// if (fAtomsVector) { -/// nbAtomsPerMolecule = 0; -/// for (size_t j=0;j10.)) { -/// G4cerr << "--warning from G4Material-- The state conditions of the gas: " -/// << fName << " are not consistent." -/// << "\n density = " << fDensity/(mg/cm3) << " mg/cm3" -/// << "\t pressure = " << fPressure/atmosphere << " atmosphere" -/// << "\t temperature = " << fTemp/kelvin << " kelvin" -/// << "\n rho*(T/P) would be of the order of: " -/// << (fDensity/(NbOfMoleculesPerVolume*k_Boltzmann)) -/// /((mg/cm3)*(kelvin/atmosphere)) -/// << " (mg/cm3)*(kelvin/atmosphere)." -/// " The energy loss calculation maybe be affected \n"; -/// } -/// } ComputeRadiationLength(); ComputeNuclearInterLength(); diff --git a/source/materials/src/G4MaterialPropertiesTable.cc b/source/materials/src/G4MaterialPropertiesTable.cc index 192c1a9eef..d9a3156bae 100644 --- a/source/materials/src/G4MaterialPropertiesTable.cc +++ b/source/materials/src/G4MaterialPropertiesTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MaterialPropertiesTable.cc,v 1.12 2001/10/17 07:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MaterialPropertiesTable.cc,v 1.13 2002/11/07 02:30:29 gum Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -33,7 +33,8 @@ // Version: 1.0 // Created: 1996-02-08 // Author: Juliet Armstrong -// Updated: 1999-11-05 Migration from G4RWTPtrHashDictionary to STL +// Updated: 2002-11-05 add named material constants by P. Gumplinger +// 1999-11-05 Migration from G4RWTPtrHashDictionary to STL // by John Allison // 1997-03-26 by Peter Gumplinger // > cosmetics (only) @@ -44,93 +45,47 @@ #include "globals.hh" #include "G4MaterialPropertiesTable.hh" - ////////////// - // Operators - ////////////// - -/************** -G4MaterialPropertiesTable& -G4MaterialPropertiesTable::operator =(const G4MaterialPropertiesTable& right) -{ - if (this == &right) return *this; - - // clear any current contents of MPT - - MPT.clearAndDestroy(); - - // want to make an actual copy -- not a shallow copy which is - // the default for RWTPrtHashDictionary's assignment operator - - G4RWTPtrHashDictionary - rightMPT(right.MPT); - G4RWTPtrHashDictionaryIterator - rightIterator(rightMPT); - rightIterator.reset(); - while (++rightIterator) { - G4MaterialPropertyVector *newProp = - new G4MaterialPropertyVector(*(rightIterator.value())); - G4String *newKey = - new G4String(*(rightIterator.key())); - MPT.insertKeyAndValue(newKey, newProp); - } - return *this; -} -**********/ - ///////////////// // Constructors ///////////////// G4MaterialPropertiesTable::G4MaterialPropertiesTable() {} -/********* -G4MaterialPropertiesTable::G4MaterialPropertiesTable - (const G4MaterialPropertiesTable &right) : - MPT(hashString), MPTiterator(MPT) -{ - // want to make an actual copy -- not a shallow copy which is - // the default for RWTPrtHashDictionary's assignment operator - - G4RWTPtrHashDictionary - rightMPT(right.MPT); - G4RWTPtrHashDictionaryIterator - rightIterator(rightMPT); - - rightIterator.reset(); - - while (++rightIterator) { - G4MaterialPropertyVector *newProp = - new G4MaterialPropertyVector(*(rightIterator.value())); - G4String *newKey = - new G4String(*(rightIterator.key())); - MPT.insertKeyAndValue(newKey, newProp); - } -} -*******/ - //////////////// // Destructors //////////////// G4MaterialPropertiesTable::~G4MaterialPropertiesTable() { - // MPT.clearAndDestroy(); - MPTiterator i; - for (i = MPT.begin(); i != MPT.end(); ++i) { - delete (*i).second; - } - MPT.clear(); + MPTiterator i; + for (i = MPT.begin(); i != MPT.end(); ++i) { + delete (*i).second; + } + MPT.clear(); + MPTC.clear(); } //////////// // Methods //////////// +void G4MaterialPropertiesTable::AddConstProperty(const char *key, + G4double PropertyValue) +{ +// Provides a way of adding a constant property to the Mataerial Properties +// Table given a key + + MPTC [G4String(key)] = PropertyValue; +} + void G4MaterialPropertiesTable::AddProperty(const char *key, G4double *PhotonMomenta, G4double *PropertyValues, G4int NumEntries) { +// Privides a way of adding a property to the Material Properties +// Table given a pair of numbers and a key + G4MaterialPropertyVector *mpv = new G4MaterialPropertyVector(PhotonMomenta, PropertyValues, @@ -147,19 +102,46 @@ void G4MaterialPropertiesTable::AddProperty(const char *key, MPT [G4String(key)] = mpv; } +void G4MaterialPropertiesTable::RemoveConstProperty(const char *key) +{ + MPTC.erase(G4String(key)); +} + void G4MaterialPropertiesTable::RemoveProperty(const char *key) { MPT.erase(G4String(key)); } +G4double G4MaterialPropertiesTable::GetConstProperty(const char *key) +{ +// Returns the constant material property corresponding to a key + + MPTCiterator j; + j = MPTC.find(G4String(key)); + if ( j != MPTC.end() ) { + return j->second; + } + else { + G4Exception("G4MaterialPropertiesTable::GetConstProperty ==> " + "Constant Material Property not found."); + return G4double(0.0); + } +} + G4MaterialPropertyVector* G4MaterialPropertiesTable::GetProperty(const char *key) { - return MPT [G4String(key)]; +// Returns a Material Property Vector corresponding to a key + + return MPT [G4String(key)]; } void G4MaterialPropertiesTable::AddEntry(const char *key, G4double aPhotonMomentum, G4double aPropertyValue) + +// Allows to add an entry pair directly to the Material Property Vector +// given a key + { G4MaterialPropertyVector *targetVector=MPT [G4String(key)]; if (targetVector != 0) { @@ -174,6 +156,9 @@ void G4MaterialPropertiesTable::AddEntry(const char *key, void G4MaterialPropertiesTable::RemoveEntry(const char *key, G4double aPhotonMomentum) { +// Allows to remove an entry pair directly from the Material Property Vector +// given a key + G4MaterialPropertyVector *targetVector=MPT [G4String(key)]; if (targetVector) { targetVector->RemoveElement(aPhotonMomentum); @@ -195,4 +180,15 @@ void G4MaterialPropertiesTable::DumpTable() G4cout << "NULL Material Property Vector Pointer." << G4endl; } } + MPTCiterator j; + for (j = MPTC.begin(); j != MPTC.end(); ++j) { + G4cout << j->first << G4endl; + if ( j->second != 0 ) { + G4cout << j->second << G4endl; + } + else { + G4cout << "No Material Constant Property." << G4endl; + } + } + } diff --git a/source/materials/src/G4MaterialPropertyVector.cc b/source/materials/src/G4MaterialPropertyVector.cc index 6b80af7278..382babab4e 100644 --- a/source/materials/src/G4MaterialPropertyVector.cc +++ b/source/materials/src/G4MaterialPropertyVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertyVector.cc,v 1.13 2002/01/22 15:23:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4OpticalSurface.cc b/source/materials/src/G4OpticalSurface.cc index 1999023239..c537d97f89 100644 --- a/source/materials/src/G4OpticalSurface.cc +++ b/source/materials/src/G4OpticalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpticalSurface.cc,v 1.7 2001/10/17 07:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4SandiaTable.cc b/source/materials/src/G4SandiaTable.cc index 310ac0e0c3..24dab09fbd 100644 --- a/source/materials/src/G4SandiaTable.cc +++ b/source/materials/src/G4SandiaTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4SandiaTable.cc,v 1.14 2001/10/17 07:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... // diff --git a/source/parameterisations/include/G4FoamXTRdEdx.hh b/source/parameterisations/include/G4FoamXTRdEdx.hh index 590e19d906..03830baa7c 100644 --- a/source/parameterisations/include/G4FoamXTRdEdx.hh +++ b/source/parameterisations/include/G4FoamXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4FoamXTRdEdx.hh,v 1.2 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4FoamXrayTRmodel.hh b/source/parameterisations/include/G4FoamXrayTRmodel.hh index 291452ad2a..8970a21c70 100644 --- a/source/parameterisations/include/G4FoamXrayTRmodel.hh +++ b/source/parameterisations/include/G4FoamXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4FoamXrayTRmodel.hh,v 1.3 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4GamDistrXTRdEdx.hh b/source/parameterisations/include/G4GamDistrXTRdEdx.hh index fa3c21e7a3..f602cdf4c3 100644 --- a/source/parameterisations/include/G4GamDistrXTRdEdx.hh +++ b/source/parameterisations/include/G4GamDistrXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXTRdEdx.hh,v 1.2 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4GamDistrXrayTRmodel.hh b/source/parameterisations/include/G4GamDistrXrayTRmodel.hh index b5f0a689cd..758d45de9d 100644 --- a/source/parameterisations/include/G4GamDistrXrayTRmodel.hh +++ b/source/parameterisations/include/G4GamDistrXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXrayTRmodel.hh,v 1.3 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4IrregularXTRdEdx.hh b/source/parameterisations/include/G4IrregularXTRdEdx.hh index 0952262b4f..ec78dfce59 100644 --- a/source/parameterisations/include/G4IrregularXTRdEdx.hh +++ b/source/parameterisations/include/G4IrregularXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXTRdEdx.hh,v 1.2 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4IrregularXrayTRmodel.hh b/source/parameterisations/include/G4IrregularXrayTRmodel.hh index 524a3d6318..c15e2bdebc 100644 --- a/source/parameterisations/include/G4IrregularXrayTRmodel.hh +++ b/source/parameterisations/include/G4IrregularXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXrayTRmodel.hh,v 1.3 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PAIclusterModel.hh b/source/parameterisations/include/G4PAIclusterModel.hh index 42daadb3ad..b1aaef514f 100644 --- a/source/parameterisations/include/G4PAIclusterModel.hh +++ b/source/parameterisations/include/G4PAIclusterModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PAIclusterModel.hh,v 1.3 2001/09/18 09:30:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PhotoClusterModel.hh b/source/parameterisations/include/G4PhotoClusterModel.hh index 12f644aa06..8d0830bab9 100644 --- a/source/parameterisations/include/G4PhotoClusterModel.hh +++ b/source/parameterisations/include/G4PhotoClusterModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhotoClusterModel.hh,v 1.3 2001/09/18 09:30:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh b/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh index e95e6c9288..9508ab9b66 100644 --- a/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh +++ b/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXTRdEdx.hh,v 1.2 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh b/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh index bb26f82bdf..9deaa3a019 100644 --- a/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh +++ b/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXrayTRmodel.hh,v 1.3 2001/07/11 10:01:29 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4RegularXTRdEdx.hh b/source/parameterisations/include/G4RegularXTRdEdx.hh index 2408e532cc..854a75a88d 100644 --- a/source/parameterisations/include/G4RegularXTRdEdx.hh +++ b/source/parameterisations/include/G4RegularXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRdEdx.hh,v 1.2 2001/07/11 10:01:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4RegularXrayTRmodel.hh b/source/parameterisations/include/G4RegularXrayTRmodel.hh index aec5c3692e..240b34e537 100644 --- a/source/parameterisations/include/G4RegularXrayTRmodel.hh +++ b/source/parameterisations/include/G4RegularXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegularXrayTRmodel.hh,v 1.3 2001/07/11 10:01:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VClusterModel.hh b/source/parameterisations/include/G4VClusterModel.hh index 88cbe9f33d..5c44a852ee 100644 --- a/source/parameterisations/include/G4VClusterModel.hh +++ b/source/parameterisations/include/G4VClusterModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VClusterModel.hh,v 1.4 2001/11/07 10:27:21 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXTRdEdx.hh b/source/parameterisations/include/G4VXTRdEdx.hh index e4ef763edb..2d65dd0390 100644 --- a/source/parameterisations/include/G4VXTRdEdx.hh +++ b/source/parameterisations/include/G4VXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXTRdEdx.hh,v 1.5 2001/09/18 09:02:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXrayTRadModel.hh b/source/parameterisations/include/G4VXrayTRadModel.hh index 46488d8024..ee6bb74446 100644 --- a/source/parameterisations/include/G4VXrayTRadModel.hh +++ b/source/parameterisations/include/G4VXrayTRadModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRadModel.hh,v 1.2 2001/07/11 10:01:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXrayTRmodel.hh b/source/parameterisations/include/G4VXrayTRmodel.hh index c10f30dec5..0c0335229e 100644 --- a/source/parameterisations/include/G4VXrayTRmodel.hh +++ b/source/parameterisations/include/G4VXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRmodel.hh,v 1.3 2001/07/11 10:01:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/src/G4FoamXTRdEdx.cc b/source/parameterisations/src/G4FoamXTRdEdx.cc index d4c9126104..e40a2aaaec 100644 --- a/source/parameterisations/src/G4FoamXTRdEdx.cc +++ b/source/parameterisations/src/G4FoamXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4FoamXTRdEdx.cc,v 1.3 2001/09/18 09:02:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4FoamXrayTRmodel.cc b/source/parameterisations/src/G4FoamXrayTRmodel.cc index a9143f5772..5cfecefe39 100644 --- a/source/parameterisations/src/G4FoamXrayTRmodel.cc +++ b/source/parameterisations/src/G4FoamXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FoamXrayTRmodel.cc,v 1.3 2001/07/11 10:01:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4GamDistrXTRdEdx.cc b/source/parameterisations/src/G4GamDistrXTRdEdx.cc index 1071be2967..43a93b0341 100644 --- a/source/parameterisations/src/G4GamDistrXTRdEdx.cc +++ b/source/parameterisations/src/G4GamDistrXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXTRdEdx.cc,v 1.3 2001/09/18 09:02:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4GamDistrXrayTRmodel.cc b/source/parameterisations/src/G4GamDistrXrayTRmodel.cc index fc9ecce111..a8477f61f6 100644 --- a/source/parameterisations/src/G4GamDistrXrayTRmodel.cc +++ b/source/parameterisations/src/G4GamDistrXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXrayTRmodel.cc,v 1.3 2001/07/11 10:01:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4IrregularXTRdEdx.cc b/source/parameterisations/src/G4IrregularXTRdEdx.cc index d285a01119..e3685a142a 100644 --- a/source/parameterisations/src/G4IrregularXTRdEdx.cc +++ b/source/parameterisations/src/G4IrregularXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXTRdEdx.cc,v 1.3 2001/09/18 09:02:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // diff --git a/source/parameterisations/src/G4IrregularXrayTRmodel.cc b/source/parameterisations/src/G4IrregularXrayTRmodel.cc index 62d201f03c..5dac253be0 100644 --- a/source/parameterisations/src/G4IrregularXrayTRmodel.cc +++ b/source/parameterisations/src/G4IrregularXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXrayTRmodel.cc,v 1.4 2001/09/18 09:02:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // diff --git a/source/parameterisations/src/G4PAIclusterModel.cc b/source/parameterisations/src/G4PAIclusterModel.cc index d1914396bd..bb247654a4 100644 --- a/source/parameterisations/src/G4PAIclusterModel.cc +++ b/source/parameterisations/src/G4PAIclusterModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PAIclusterModel.cc,v 1.6 2001/09/18 09:30:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4PhotoClusterModel.cc b/source/parameterisations/src/G4PhotoClusterModel.cc index 70087f6f29..bbb0b1c891 100644 --- a/source/parameterisations/src/G4PhotoClusterModel.cc +++ b/source/parameterisations/src/G4PhotoClusterModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoClusterModel.cc,v 1.3 2001/09/18 09:30:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc b/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc index 401c0169d4..df476ee785 100644 --- a/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc +++ b/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXTRdEdx.cc,v 1.3 2001/09/18 09:02:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc b/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc index b13e201aea..c6f49329e6 100644 --- a/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc +++ b/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXrayTRmodel.cc,v 1.4 2001/09/18 09:02:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4RegularXTRdEdx.cc b/source/parameterisations/src/G4RegularXTRdEdx.cc index 0604e2f3f3..305a11f456 100644 --- a/source/parameterisations/src/G4RegularXTRdEdx.cc +++ b/source/parameterisations/src/G4RegularXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRdEdx.cc,v 1.3 2001/09/18 09:02:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4RegularXrayTRmodel.cc b/source/parameterisations/src/G4RegularXrayTRmodel.cc index 4798e660ba..88241053e2 100644 --- a/source/parameterisations/src/G4RegularXrayTRmodel.cc +++ b/source/parameterisations/src/G4RegularXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegularXrayTRmodel.cc,v 1.3 2001/07/11 10:01:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/parameterisations/src/G4VClusterModel.cc b/source/parameterisations/src/G4VClusterModel.cc index 1a48f99f00..5b65f61482 100644 --- a/source/parameterisations/src/G4VClusterModel.cc +++ b/source/parameterisations/src/G4VClusterModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VClusterModel.cc,v 1.6 2001/11/08 13:53:51 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXTRdEdx.cc b/source/parameterisations/src/G4VXTRdEdx.cc index d2606ed626..b0a1d439de 100644 --- a/source/parameterisations/src/G4VXTRdEdx.cc +++ b/source/parameterisations/src/G4VXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXTRdEdx.cc,v 1.7 2001/09/18 09:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXrayTRadModel.cc b/source/parameterisations/src/G4VXrayTRadModel.cc index b5ccf1dbd5..5a66e38126 100644 --- a/source/parameterisations/src/G4VXrayTRadModel.cc +++ b/source/parameterisations/src/G4VXrayTRadModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRadModel.cc,v 1.3 2001/09/18 09:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXrayTRmodel.cc b/source/parameterisations/src/G4VXrayTRmodel.cc index cfb846608c..57e921d6db 100644 --- a/source/parameterisations/src/G4VXrayTRmodel.cc +++ b/source/parameterisations/src/G4VXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRmodel.cc,v 1.5 2001/09/18 09:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/particles/History b/source/particles/History index 8f115f3583..85a88a4aa1 100644 --- a/source/particles/History +++ b/source/particles/History @@ -1,4 +1,4 @@ -$Id: History,v 1.70 2002/05/30 02:20:18 kurasige Exp $ +$Id: History,v 1.74 2002/12/04 18:36:44 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,20 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- Dec 4, 2002 (particles-V04-01-03) +- Migration to new G4ApplicationState + +- Nov 21, 2002 (particles-V04-01-02) +- Fixed G4VDecayChannel::GetNoName() for porting WIndows DLL lib. + +- Nov 20, 2002 (particles-V04-01-01) +- Fixed Warning in G4VDecayChannel::FillDaughters (partman-V04-01-01) +- Update Mass Width for resonace particles (shortlived-V04-01-01) + +- May 30, 2002 (particles-V04-01-00) +- Fixed PDG codes for k0_star(1430), a0(1450) and f0(1370) (shortlived-04-01-00) +- + - May 30, 2002 (particles-V04-00-03) - Fixed a bug in G4NeutronBetaDecayChannel - Fixed warnings in G4NucleiProperties diff --git a/source/particles/bosons/include/G4BosonConstructor.hh b/source/particles/bosons/include/G4BosonConstructor.hh index 99d78f7362..e01ef30361 100644 --- a/source/particles/bosons/include/G4BosonConstructor.hh +++ b/source/particles/bosons/include/G4BosonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4BosonConstructor.hh,v 1.3 2001/07/11 10:01:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/include/G4ChargedGeantino.hh b/source/particles/bosons/include/G4ChargedGeantino.hh index d5e877b506..b4cba3cab7 100644 --- a/source/particles/bosons/include/G4ChargedGeantino.hh +++ b/source/particles/bosons/include/G4ChargedGeantino.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChargedGeantino.hh,v 1.8 2001/10/28 05:03:48 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4Gamma.hh b/source/particles/bosons/include/G4Gamma.hh index 42a5fd93f3..8bc8443239 100644 --- a/source/particles/bosons/include/G4Gamma.hh +++ b/source/particles/bosons/include/G4Gamma.hh @@ -21,7 +21,7 @@ // ******************************************************************** // //// $Id: G4Gamma.hh,v 1.11 2001/12/13 12:04:11 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4Geantino.hh b/source/particles/bosons/include/G4Geantino.hh index 2b45e07da1..01423695f5 100644 --- a/source/particles/bosons/include/G4Geantino.hh +++ b/source/particles/bosons/include/G4Geantino.hh @@ -22,7 +22,7 @@ // // // $Id: G4Geantino.hh,v 1.8 2001/10/28 05:03:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4OpticalPhoton.hh b/source/particles/bosons/include/G4OpticalPhoton.hh index e178da4762..aa7a31cb11 100644 --- a/source/particles/bosons/include/G4OpticalPhoton.hh +++ b/source/particles/bosons/include/G4OpticalPhoton.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpticalPhoton.hh,v 1.7 2001/10/16 08:15:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4VBoson.hh b/source/particles/bosons/include/G4VBoson.hh index 8b12955afc..bfcfb61df0 100644 --- a/source/particles/bosons/include/G4VBoson.hh +++ b/source/particles/bosons/include/G4VBoson.hh @@ -22,7 +22,7 @@ // // // $Id: G4VBoson.hh,v 1.3 2001/07/11 10:01:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/src/G4BosonConstructor.cc b/source/particles/bosons/src/G4BosonConstructor.cc index 6228e20797..09f6b65f4a 100644 --- a/source/particles/bosons/src/G4BosonConstructor.cc +++ b/source/particles/bosons/src/G4BosonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4BosonConstructor.cc,v 1.3 2001/07/11 10:01:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4ChargedGeantino.cc b/source/particles/bosons/src/G4ChargedGeantino.cc index 2a17adb2aa..5657d037be 100644 --- a/source/particles/bosons/src/G4ChargedGeantino.cc +++ b/source/particles/bosons/src/G4ChargedGeantino.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChargedGeantino.cc,v 1.10 2001/10/28 05:03:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4Gamma.cc b/source/particles/bosons/src/G4Gamma.cc index a8e4c115f5..8fc77e2f76 100644 --- a/source/particles/bosons/src/G4Gamma.cc +++ b/source/particles/bosons/src/G4Gamma.cc @@ -22,7 +22,7 @@ // // // $Id: G4Gamma.cc,v 1.8 2001/10/20 01:36:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4Geantino.cc b/source/particles/bosons/src/G4Geantino.cc index aa1e1034ca..ed1f1a49fd 100644 --- a/source/particles/bosons/src/G4Geantino.cc +++ b/source/particles/bosons/src/G4Geantino.cc @@ -22,7 +22,7 @@ // // // $Id: G4Geantino.cc,v 1.10 2001/10/28 05:03:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4OpticalPhoton.cc b/source/particles/bosons/src/G4OpticalPhoton.cc index 99374968e5..28ea576c1c 100644 --- a/source/particles/bosons/src/G4OpticalPhoton.cc +++ b/source/particles/bosons/src/G4OpticalPhoton.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpticalPhoton.cc,v 1.8 2001/10/16 08:15:43 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4VBoson.cc b/source/particles/bosons/src/G4VBoson.cc index 48e50b7e30..8cf2d113bb 100644 --- a/source/particles/bosons/src/G4VBoson.cc +++ b/source/particles/bosons/src/G4VBoson.cc @@ -22,7 +22,7 @@ // // // $Id: G4VBoson.cc,v 1.3 2001/07/11 10:01:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4AntiLambda.hh b/source/particles/hadrons/barions/include/G4AntiLambda.hh index fd29570dab..d7467be425 100644 --- a/source/particles/hadrons/barions/include/G4AntiLambda.hh +++ b/source/particles/hadrons/barions/include/G4AntiLambda.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambda.hh,v 1.9 2001/10/28 05:06:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh index 836f9ae55f..35725ce1ec 100644 --- a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambdacPlus.hh,v 1.6 2001/10/15 10:09:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiNeutron.hh b/source/particles/hadrons/barions/include/G4AntiNeutron.hh index 40d7dff88c..fa8ca98ab6 100644 --- a/source/particles/hadrons/barions/include/G4AntiNeutron.hh +++ b/source/particles/hadrons/barions/include/G4AntiNeutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutron.hh,v 1.10 2001/10/28 05:06:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh index 50757b8d5c..8e50586fc5 100644 --- a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegaMinus.hh,v 1.7 2001/10/16 08:15:45 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh index 5698f69a1b..1981c71950 100644 --- a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegacZero.hh,v 1.8 2001/10/28 05:06:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiProton.hh b/source/particles/hadrons/barions/include/G4AntiProton.hh index 8e1a6a27b7..0f8099beda 100644 --- a/source/particles/hadrons/barions/include/G4AntiProton.hh +++ b/source/particles/hadrons/barions/include/G4AntiProton.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiProton.hh,v 1.8 2001/10/16 08:15:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh index 907d2728ac..d762182916 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaMinus.hh,v 1.7 2001/10/16 08:15:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh index 3dc40d9c32..029ec280dd 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaPlus.hh,v 1.7 2001/10/16 08:15:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh index e2c315bf6d..7e87174378 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaZero.hh,v 1.9 2001/10/28 05:08:20 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh index 96a8594321..9b89af348c 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlus.hh,v 1.6 2001/10/15 10:09:25 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh index 8e88191b38..e533086973 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlusPlus.hh,v 1.6 2001/10/15 10:09:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh index 840dd722f2..82effb1f67 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacZero.hh,v 1.8 2001/10/28 05:08:20 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh index 72f5a9bbf3..20c3d2a612 100644 --- a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiMinus.hh,v 1.7 2001/10/16 08:15:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXiZero.hh b/source/particles/hadrons/barions/include/G4AntiXiZero.hh index 50e9c021fa..a690dc29c4 100644 --- a/source/particles/hadrons/barions/include/G4AntiXiZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiXiZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiZero.hh,v 1.9 2001/10/28 05:08:20 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh index d33b122809..fe4d489d2d 100644 --- a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicPlus.hh,v 1.6 2001/10/15 10:09:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXicZero.hh b/source/particles/hadrons/barions/include/G4AntiXicZero.hh index 445734b42d..df78895973 100644 --- a/source/particles/hadrons/barions/include/G4AntiXicZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiXicZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicZero.hh,v 1.8 2001/10/28 05:08:20 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh index 9197337ebe..88ba3c26d9 100644 --- a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh +++ b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4BaryonConstructor.hh,v 1.3 2001/07/11 10:01:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4Lambda.hh b/source/particles/hadrons/barions/include/G4Lambda.hh index 521ae95bde..fbaa9ebf12 100644 --- a/source/particles/hadrons/barions/include/G4Lambda.hh +++ b/source/particles/hadrons/barions/include/G4Lambda.hh @@ -22,7 +22,7 @@ // // // $Id: G4Lambda.hh,v 1.9 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4LambdacPlus.hh b/source/particles/hadrons/barions/include/G4LambdacPlus.hh index 644573209c..7f0e8fd5db 100644 --- a/source/particles/hadrons/barions/include/G4LambdacPlus.hh +++ b/source/particles/hadrons/barions/include/G4LambdacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4LambdacPlus.hh,v 1.6 2001/10/15 10:09:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4Neutron.hh b/source/particles/hadrons/barions/include/G4Neutron.hh index 3632fbd36a..c2ebece05f 100644 --- a/source/particles/hadrons/barions/include/G4Neutron.hh +++ b/source/particles/hadrons/barions/include/G4Neutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Neutron.hh,v 1.11 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4OmegaMinus.hh b/source/particles/hadrons/barions/include/G4OmegaMinus.hh index 4c4ad717db..ef53afcb15 100644 --- a/source/particles/hadrons/barions/include/G4OmegaMinus.hh +++ b/source/particles/hadrons/barions/include/G4OmegaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4OmegaMinus.hh,v 1.7 2001/10/16 08:15:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4OmegacZero.hh b/source/particles/hadrons/barions/include/G4OmegacZero.hh index de8b39b43d..744b0d71a9 100644 --- a/source/particles/hadrons/barions/include/G4OmegacZero.hh +++ b/source/particles/hadrons/barions/include/G4OmegacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4OmegacZero.hh,v 1.8 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4Proton.hh b/source/particles/hadrons/barions/include/G4Proton.hh index c1a4f5d175..948b17de61 100644 --- a/source/particles/hadrons/barions/include/G4Proton.hh +++ b/source/particles/hadrons/barions/include/G4Proton.hh @@ -22,7 +22,7 @@ // // // $Id: G4Proton.hh,v 1.9 2001/10/16 08:15:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaMinus.hh b/source/particles/hadrons/barions/include/G4SigmaMinus.hh index 8c25bd9e34..f6ab44003b 100644 --- a/source/particles/hadrons/barions/include/G4SigmaMinus.hh +++ b/source/particles/hadrons/barions/include/G4SigmaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaMinus.hh,v 1.7 2001/10/16 08:15:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaPlus.hh b/source/particles/hadrons/barions/include/G4SigmaPlus.hh index 9ba6ac4a4c..e7e2d43f09 100644 --- a/source/particles/hadrons/barions/include/G4SigmaPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmaPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaPlus.hh,v 1.7 2001/10/16 08:15:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaZero.hh b/source/particles/hadrons/barions/include/G4SigmaZero.hh index fc03bfea53..62cc5b1aad 100644 --- a/source/particles/hadrons/barions/include/G4SigmaZero.hh +++ b/source/particles/hadrons/barions/include/G4SigmaZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaZero.hh,v 1.9 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlus.hh index 67911ea972..61a9141320 100644 --- a/source/particles/hadrons/barions/include/G4SigmacPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlus.hh,v 1.6 2001/10/15 10:09:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh index 6a85f21a7c..e3e649c15a 100644 --- a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlusPlus.hh,v 1.6 2001/10/15 10:09:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacZero.hh b/source/particles/hadrons/barions/include/G4SigmacZero.hh index fd9c7fc842..977b329b3c 100644 --- a/source/particles/hadrons/barions/include/G4SigmacZero.hh +++ b/source/particles/hadrons/barions/include/G4SigmacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmacZero.hh,v 1.8 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4VBaryon.hh b/source/particles/hadrons/barions/include/G4VBaryon.hh index eb8f35c5a8..e9248f32b0 100644 --- a/source/particles/hadrons/barions/include/G4VBaryon.hh +++ b/source/particles/hadrons/barions/include/G4VBaryon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VBaryon.hh,v 1.3 2001/07/11 10:01:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XiMinus.hh b/source/particles/hadrons/barions/include/G4XiMinus.hh index 3a4cc5f859..3e4020f531 100644 --- a/source/particles/hadrons/barions/include/G4XiMinus.hh +++ b/source/particles/hadrons/barions/include/G4XiMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4XiMinus.hh,v 1.7 2001/10/16 08:15:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XiZero.hh b/source/particles/hadrons/barions/include/G4XiZero.hh index c8a61889d8..2cf686423b 100644 --- a/source/particles/hadrons/barions/include/G4XiZero.hh +++ b/source/particles/hadrons/barions/include/G4XiZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4XiZero.hh,v 1.9 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XicPlus.hh b/source/particles/hadrons/barions/include/G4XicPlus.hh index 0c260cdd3c..bbad18df46 100644 --- a/source/particles/hadrons/barions/include/G4XicPlus.hh +++ b/source/particles/hadrons/barions/include/G4XicPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4XicPlus.hh,v 1.6 2001/10/15 10:09:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XicZero.hh b/source/particles/hadrons/barions/include/G4XicZero.hh index b159e8f2b4..2207b6c753 100644 --- a/source/particles/hadrons/barions/include/G4XicZero.hh +++ b/source/particles/hadrons/barions/include/G4XicZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4XicZero.hh,v 1.8 2001/10/28 05:08:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/src/G4AntiLambda.cc b/source/particles/hadrons/barions/src/G4AntiLambda.cc index af43a81d1a..8f547b7dd9 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambda.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambda.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambda.cc,v 1.12 2001/10/28 05:08:22 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc index 3018f6198a..a3cd57f90e 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambdacPlus.cc,v 1.7 2001/10/15 10:10:52 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiNeutron.cc b/source/particles/hadrons/barions/src/G4AntiNeutron.cc index 88b40a5b3a..fc593ef819 100644 --- a/source/particles/hadrons/barions/src/G4AntiNeutron.cc +++ b/source/particles/hadrons/barions/src/G4AntiNeutron.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutron.cc,v 1.11 2001/10/28 05:08:22 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc index 01d60a95de..454beced3a 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegaMinus.cc,v 1.8 2001/10/16 08:15:55 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc index 5671e84cac..75e70e0670 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegacZero.cc,v 1.11 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiProton.cc b/source/particles/hadrons/barions/src/G4AntiProton.cc index d60236cd0b..c2c15405e8 100644 --- a/source/particles/hadrons/barions/src/G4AntiProton.cc +++ b/source/particles/hadrons/barions/src/G4AntiProton.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiProton.cc,v 1.7 2001/10/16 08:15:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc index c5dc1aea36..c586f20c3f 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaMinus.cc,v 1.8 2001/10/16 08:15:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiSigmaMinus.cc,v 1.9 2002/06/14 05:55:42 kurasige Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- @@ -76,7 +76,7 @@ G4AntiSigmaMinus::G4AntiSigmaMinus( SetDecayTable(table); -}; +} // ...................................................................... // ... static member definitions ... diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc index 715874eb06..c86f8e169d 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaPlus.cc,v 1.8 2001/10/16 08:15:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc index 24734354f6..fbecaa1e29 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaZero.cc,v 1.12 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc index 07a091d138..5620062f64 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlus.cc,v 1.6 2001/10/15 10:10:54 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc index 6b117a20af..598608f430 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlusPlus.cc,v 1.6 2001/10/15 10:10:54 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc index ae66c7e40a..f9045b0b68 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacZero.cc,v 1.10 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc index 2cab910f44..b365ed6620 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiMinus.cc,v 1.8 2001/10/16 08:15:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXiZero.cc b/source/particles/hadrons/barions/src/G4AntiXiZero.cc index da9c218ec7..fdb89a765b 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiZero.cc,v 1.12 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc index 6a6e71627d..a9d1a3a620 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicPlus.cc,v 1.7 2001/10/15 10:10:54 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXicZero.cc b/source/particles/hadrons/barions/src/G4AntiXicZero.cc index 69abe1ee64..db9f82fa5a 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicZero.cc,v 1.11 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4BaryonConstructor.cc b/source/particles/hadrons/barions/src/G4BaryonConstructor.cc index 55a7ba525e..de0079adae 100644 --- a/source/particles/hadrons/barions/src/G4BaryonConstructor.cc +++ b/source/particles/hadrons/barions/src/G4BaryonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4BaryonConstructor.cc,v 1.3 2001/07/11 10:01:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Lambda.cc b/source/particles/hadrons/barions/src/G4Lambda.cc index 6b100c1866..a87df768b7 100644 --- a/source/particles/hadrons/barions/src/G4Lambda.cc +++ b/source/particles/hadrons/barions/src/G4Lambda.cc @@ -22,7 +22,7 @@ // // // $Id: G4Lambda.cc,v 1.12 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4LambdacPlus.cc b/source/particles/hadrons/barions/src/G4LambdacPlus.cc index 52df60a84d..9320e6762f 100644 --- a/source/particles/hadrons/barions/src/G4LambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4LambdacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4LambdacPlus.cc,v 1.7 2001/10/15 10:10:55 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Neutron.cc b/source/particles/hadrons/barions/src/G4Neutron.cc index 3d8004ff9c..3a1e770a86 100644 --- a/source/particles/hadrons/barions/src/G4Neutron.cc +++ b/source/particles/hadrons/barions/src/G4Neutron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Neutron.cc,v 1.13 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4OmegaMinus.cc b/source/particles/hadrons/barions/src/G4OmegaMinus.cc index cb6add0011..cc7429e8b9 100644 --- a/source/particles/hadrons/barions/src/G4OmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4OmegaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4OmegaMinus.cc,v 1.8 2001/10/16 08:15:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4OmegacZero.cc b/source/particles/hadrons/barions/src/G4OmegacZero.cc index 31ae94da34..1373c9076f 100644 --- a/source/particles/hadrons/barions/src/G4OmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4OmegacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4OmegacZero.cc,v 1.11 2001/10/28 05:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Proton.cc b/source/particles/hadrons/barions/src/G4Proton.cc index f3a23d0797..7387d56f3b 100644 --- a/source/particles/hadrons/barions/src/G4Proton.cc +++ b/source/particles/hadrons/barions/src/G4Proton.cc @@ -22,7 +22,7 @@ // // // $Id: G4Proton.cc,v 1.7 2001/10/16 08:15:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaMinus.cc b/source/particles/hadrons/barions/src/G4SigmaMinus.cc index c80f5e503b..1c585704ea 100644 --- a/source/particles/hadrons/barions/src/G4SigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmaMinus.cc,v 1.8 2001/10/16 08:15:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaPlus.cc b/source/particles/hadrons/barions/src/G4SigmaPlus.cc index 7b60f8d6a8..129c1dbc6e 100644 --- a/source/particles/hadrons/barions/src/G4SigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmaPlus.cc,v 1.8 2001/10/16 08:16:00 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaZero.cc b/source/particles/hadrons/barions/src/G4SigmaZero.cc index 58241c39a5..3ec9f2e558 100644 --- a/source/particles/hadrons/barions/src/G4SigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmaZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmaZero.cc,v 1.12 2001/10/28 05:08:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlus.cc index b29c948758..3803f0409c 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlus.cc,v 1.6 2001/10/15 10:10:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc index 1396613f12..24b8f8a44f 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlusPlus.cc,v 1.6 2001/10/15 10:10:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacZero.cc b/source/particles/hadrons/barions/src/G4SigmacZero.cc index 39c3bf4d6f..cb498cc85c 100644 --- a/source/particles/hadrons/barions/src/G4SigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmacZero.cc,v 1.10 2001/10/28 05:08:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4VBaryon.cc b/source/particles/hadrons/barions/src/G4VBaryon.cc index ef0c3bfa3d..9ddea66b90 100644 --- a/source/particles/hadrons/barions/src/G4VBaryon.cc +++ b/source/particles/hadrons/barions/src/G4VBaryon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VBaryon.cc,v 1.3 2001/07/11 10:01:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XiMinus.cc b/source/particles/hadrons/barions/src/G4XiMinus.cc index 389905c622..31c2a0ccf2 100644 --- a/source/particles/hadrons/barions/src/G4XiMinus.cc +++ b/source/particles/hadrons/barions/src/G4XiMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4XiMinus.cc,v 1.8 2001/10/16 08:16:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XiZero.cc b/source/particles/hadrons/barions/src/G4XiZero.cc index 887f7bec50..86a3539175 100644 --- a/source/particles/hadrons/barions/src/G4XiZero.cc +++ b/source/particles/hadrons/barions/src/G4XiZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4XiZero.cc,v 1.12 2001/10/28 05:08:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XicPlus.cc b/source/particles/hadrons/barions/src/G4XicPlus.cc index 222442a201..8cb4a374b6 100644 --- a/source/particles/hadrons/barions/src/G4XicPlus.cc +++ b/source/particles/hadrons/barions/src/G4XicPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4XicPlus.cc,v 1.7 2001/10/15 10:10:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XicZero.cc b/source/particles/hadrons/barions/src/G4XicZero.cc index 2035527a3b..1cc6e543a1 100644 --- a/source/particles/hadrons/barions/src/G4XicZero.cc +++ b/source/particles/hadrons/barions/src/G4XicZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4XicZero.cc,v 1.11 2001/10/28 05:08:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/include/G4Alpha.hh b/source/particles/hadrons/ions/include/G4Alpha.hh index b556b8cfb0..3c3d74d3b0 100644 --- a/source/particles/hadrons/ions/include/G4Alpha.hh +++ b/source/particles/hadrons/ions/include/G4Alpha.hh @@ -22,7 +22,7 @@ // // // $Id: G4Alpha.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4Deuteron.hh b/source/particles/hadrons/ions/include/G4Deuteron.hh index 99aedd0b43..97fddb664a 100644 --- a/source/particles/hadrons/ions/include/G4Deuteron.hh +++ b/source/particles/hadrons/ions/include/G4Deuteron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Deuteron.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4GenericIon.hh b/source/particles/hadrons/ions/include/G4GenericIon.hh index c9509571de..59627cdbc3 100644 --- a/source/particles/hadrons/ions/include/G4GenericIon.hh +++ b/source/particles/hadrons/ions/include/G4GenericIon.hh @@ -22,7 +22,7 @@ // // // $Id: G4GenericIon.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4He3.hh b/source/particles/hadrons/ions/include/G4He3.hh index 1a6b9bdd15..afee301dec 100644 --- a/source/particles/hadrons/ions/include/G4He3.hh +++ b/source/particles/hadrons/ions/include/G4He3.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3.hh,v 1.7 2001/10/16 08:16:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4IonConstructor.hh b/source/particles/hadrons/ions/include/G4IonConstructor.hh index 96fbef515e..efb2460ff7 100644 --- a/source/particles/hadrons/ions/include/G4IonConstructor.hh +++ b/source/particles/hadrons/ions/include/G4IonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonConstructor.hh,v 1.3 2001/07/11 10:01:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/include/G4Triton.hh b/source/particles/hadrons/ions/include/G4Triton.hh index 586ee49626..7b449493b7 100644 --- a/source/particles/hadrons/ions/include/G4Triton.hh +++ b/source/particles/hadrons/ions/include/G4Triton.hh @@ -22,7 +22,7 @@ // // // $Id: G4Triton.hh,v 1.7 2001/10/16 08:16:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4VIon.hh b/source/particles/hadrons/ions/include/G4VIon.hh index a9e016ac43..e4b5701cd2 100644 --- a/source/particles/hadrons/ions/include/G4VIon.hh +++ b/source/particles/hadrons/ions/include/G4VIon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIon.hh,v 1.4 2001/07/11 10:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/src/G4Alpha.cc b/source/particles/hadrons/ions/src/G4Alpha.cc index 8370237c14..adae50e4e9 100644 --- a/source/particles/hadrons/ions/src/G4Alpha.cc +++ b/source/particles/hadrons/ions/src/G4Alpha.cc @@ -22,7 +22,7 @@ // // // $Id: G4Alpha.cc,v 1.6 2001/10/16 08:16:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Deuteron.cc b/source/particles/hadrons/ions/src/G4Deuteron.cc index 1023cb2db4..9f5879d4d0 100644 --- a/source/particles/hadrons/ions/src/G4Deuteron.cc +++ b/source/particles/hadrons/ions/src/G4Deuteron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Deuteron.cc,v 1.6 2001/10/16 08:16:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4GenericIon.cc b/source/particles/hadrons/ions/src/G4GenericIon.cc index 79395bb832..d336715631 100644 --- a/source/particles/hadrons/ions/src/G4GenericIon.cc +++ b/source/particles/hadrons/ions/src/G4GenericIon.cc @@ -22,7 +22,7 @@ // // // $Id: G4GenericIon.cc,v 1.6 2001/10/16 08:16:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4He3.cc b/source/particles/hadrons/ions/src/G4He3.cc index 8783a1cdef..35a6fd3e2d 100644 --- a/source/particles/hadrons/ions/src/G4He3.cc +++ b/source/particles/hadrons/ions/src/G4He3.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3.cc,v 1.6 2001/10/16 08:16:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4IonConstructor.cc b/source/particles/hadrons/ions/src/G4IonConstructor.cc index 7e01587069..3067ad09f5 100644 --- a/source/particles/hadrons/ions/src/G4IonConstructor.cc +++ b/source/particles/hadrons/ions/src/G4IonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonConstructor.cc,v 1.3 2001/07/11 10:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Triton.cc b/source/particles/hadrons/ions/src/G4Triton.cc index e61dff56ad..0a31b8fce8 100644 --- a/source/particles/hadrons/ions/src/G4Triton.cc +++ b/source/particles/hadrons/ions/src/G4Triton.cc @@ -22,7 +22,7 @@ // // // $Id: G4Triton.cc,v 1.6 2001/10/16 08:16:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4VIon.cc b/source/particles/hadrons/ions/src/G4VIon.cc index 357edde60f..30ee64b1a0 100644 --- a/source/particles/hadrons/ions/src/G4VIon.cc +++ b/source/particles/hadrons/ions/src/G4VIon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VIon.cc,v 1.3 2001/07/11 10:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh index f010e888d7..1481f0b4fc 100644 --- a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiBMesonZero.hh,v 1.7 2001/10/28 05:01:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh index 4547f6e365..825e159850 100644 --- a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiBsMesonZero.hh,v 1.7 2001/10/28 05:01:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh index 3feda5c376..dec7021b21 100644 --- a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiDMesonZero.hh,v 1.7 2001/10/28 05:01:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh index ec3a404663..5fe5018fc3 100644 --- a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiKaonZero.hh,v 1.9 2001/10/28 05:01:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh index 4a48f1a9a6..2a17d7caf6 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BMesonMinus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh index dc0026581b..d8eebacfbd 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BMesonPlus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonZero.hh b/source/particles/hadrons/mesons/include/G4BMesonZero.hh index 43b31a2557..4926cd7dee 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4BMesonZero.hh,v 1.7 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh index e1e3855390..2a41bc6d59 100644 --- a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4BsMesonZero.hh,v 1.7 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh index cd7f3a766e..9b78b456e9 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMesonMinus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh index 057388a0ee..ba3f80c4b3 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMesonPlus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonZero.hh b/source/particles/hadrons/mesons/include/G4DMesonZero.hh index ed0c5c6d7f..3f60aedadd 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMesonZero.hh,v 1.7 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh index 929cae2c52..069f55d71e 100644 --- a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonMinus.hh,v 1.5 2001/10/15 10:06:13 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh index 51218c03cf..6340766f85 100644 --- a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonPlus.hh,v 1.5 2001/10/15 10:06:13 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4Eta.hh b/source/particles/hadrons/mesons/include/G4Eta.hh index 35e0fe75ae..38f19be053 100644 --- a/source/particles/hadrons/mesons/include/G4Eta.hh +++ b/source/particles/hadrons/mesons/include/G4Eta.hh @@ -22,7 +22,7 @@ // // // $Id: G4Eta.hh,v 1.8 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4EtaPrime.hh b/source/particles/hadrons/mesons/include/G4EtaPrime.hh index 65ed762b27..ce8e4a0f81 100644 --- a/source/particles/hadrons/mesons/include/G4EtaPrime.hh +++ b/source/particles/hadrons/mesons/include/G4EtaPrime.hh @@ -22,7 +22,7 @@ // // // $Id: G4EtaPrime.hh,v 1.8 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4JPsi.hh b/source/particles/hadrons/mesons/include/G4JPsi.hh index 93f12a065f..dc66601aab 100644 --- a/source/particles/hadrons/mesons/include/G4JPsi.hh +++ b/source/particles/hadrons/mesons/include/G4JPsi.hh @@ -22,7 +22,7 @@ // // // $Id: G4JPsi.hh,v 1.7 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonMinus.hh b/source/particles/hadrons/mesons/include/G4KaonMinus.hh index b3659c56ed..6fae0a9520 100644 --- a/source/particles/hadrons/mesons/include/G4KaonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4KaonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinus.hh,v 1.7 2001/10/16 08:16:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonPlus.hh b/source/particles/hadrons/mesons/include/G4KaonPlus.hh index 48772bc29e..0247bfb4cd 100644 --- a/source/particles/hadrons/mesons/include/G4KaonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4KaonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonPlus.hh,v 1.7 2001/10/16 08:16:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZero.hh b/source/particles/hadrons/mesons/include/G4KaonZero.hh index 6ea8114cef..6ec2964a33 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZero.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZero.hh,v 1.9 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh index 51df62a71c..50cb80e5d9 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroLong.hh,v 1.8 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh index e5fab1f0fa..2bd0fd1af7 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroShort.hh,v 1.8 2001/10/28 05:01:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh index 3ea30388d5..bd67565b44 100644 --- a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh +++ b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4MesonConstructor.hh,v 1.3 2001/07/11 10:01:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/include/G4PionMinus.hh b/source/particles/hadrons/mesons/include/G4PionMinus.hh index 048afada71..587259ff5f 100644 --- a/source/particles/hadrons/mesons/include/G4PionMinus.hh +++ b/source/particles/hadrons/mesons/include/G4PionMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionMinus.hh,v 1.7 2001/10/16 08:16:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4PionPlus.hh b/source/particles/hadrons/mesons/include/G4PionPlus.hh index 1b2c49d964..de404de3e1 100644 --- a/source/particles/hadrons/mesons/include/G4PionPlus.hh +++ b/source/particles/hadrons/mesons/include/G4PionPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionPlus.hh,v 1.7 2001/10/16 08:16:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4PionZero.hh b/source/particles/hadrons/mesons/include/G4PionZero.hh index f02033efc8..49c4141121 100644 --- a/source/particles/hadrons/mesons/include/G4PionZero.hh +++ b/source/particles/hadrons/mesons/include/G4PionZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionZero.hh,v 1.9 2001/10/28 05:01:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4VMeson.hh b/source/particles/hadrons/mesons/include/G4VMeson.hh index 20144044af..1ed13488af 100644 --- a/source/particles/hadrons/mesons/include/G4VMeson.hh +++ b/source/particles/hadrons/mesons/include/G4VMeson.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMeson.hh,v 1.3 2001/07/11 10:01:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc index 565d6658e0..fae4796ac5 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiBMesonZero.cc,v 1.10 2001/10/28 05:01:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc index f92fad45c6..4cb05f40f3 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiBsMesonZero.cc,v 1.10 2001/10/28 05:01:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc index f7c9c52b36..d7cc0f513d 100644 --- a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiDMesonZero.cc,v 1.10 2001/10/28 05:01:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc index aceca9d8e4..0a30bd9234 100644 --- a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiKaonZero.cc,v 1.10 2001/10/28 05:01:32 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc index b02241adca..9836b19d14 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BMesonMinus.cc,v 1.6 2001/10/15 10:08:22 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc index d4f3715b7d..8d69c82f3e 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BMesonPlus.cc,v 1.6 2001/10/15 10:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonZero.cc b/source/particles/hadrons/mesons/src/G4BMesonZero.cc index 02f9979cba..5e6563dcf3 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4BMesonZero.cc,v 1.10 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc index c19bf0e3c8..50ea52f969 100644 --- a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4BsMesonZero.cc,v 1.10 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc index bee1e9dc15..46cb23a376 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMesonMinus.cc,v 1.6 2001/10/15 10:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc index 6dfdeb5606..6d0e1ecad0 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMesonPlus.cc,v 1.6 2001/10/15 10:08:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonZero.cc b/source/particles/hadrons/mesons/src/G4DMesonZero.cc index 147a5dd01f..34f803a416 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMesonZero.cc,v 1.10 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc index 3751e02327..7f8ac627f9 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonMinus.cc,v 1.6 2001/10/15 10:08:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc index 4f4c660150..101e42a2c3 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonPlus.cc,v 1.6 2001/10/15 10:08:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4Eta.cc b/source/particles/hadrons/mesons/src/G4Eta.cc index bcb0751d94..2f119dade6 100644 --- a/source/particles/hadrons/mesons/src/G4Eta.cc +++ b/source/particles/hadrons/mesons/src/G4Eta.cc @@ -22,7 +22,7 @@ // // // $Id: G4Eta.cc,v 1.11 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4EtaPrime.cc b/source/particles/hadrons/mesons/src/G4EtaPrime.cc index c8d57cf1e9..b326e635a3 100644 --- a/source/particles/hadrons/mesons/src/G4EtaPrime.cc +++ b/source/particles/hadrons/mesons/src/G4EtaPrime.cc @@ -22,7 +22,7 @@ // // // $Id: G4EtaPrime.cc,v 1.11 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4JPsi.cc b/source/particles/hadrons/mesons/src/G4JPsi.cc index 67a69968d4..2c4476942a 100644 --- a/source/particles/hadrons/mesons/src/G4JPsi.cc +++ b/source/particles/hadrons/mesons/src/G4JPsi.cc @@ -22,7 +22,7 @@ // // // $Id: G4JPsi.cc,v 1.10 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonMinus.cc b/source/particles/hadrons/mesons/src/G4KaonMinus.cc index 2b41ce978d..b8ff3f1185 100644 --- a/source/particles/hadrons/mesons/src/G4KaonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinus.cc,v 1.8 2002/02/12 01:07:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonPlus.cc b/source/particles/hadrons/mesons/src/G4KaonPlus.cc index 5d47273516..0c91a14606 100644 --- a/source/particles/hadrons/mesons/src/G4KaonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonPlus.cc,v 1.7 2001/10/16 08:16:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZero.cc b/source/particles/hadrons/mesons/src/G4KaonZero.cc index 4a1ea330f5..26af7531fb 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonZero.cc,v 1.10 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc index da2927d3b0..27ec531046 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroLong.cc,v 1.11 2001/10/28 05:01:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc index 8a614fe4d6..57f9dc89fe 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroShort.cc,v 1.11 2001/10/28 05:01:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4MesonConstructor.cc b/source/particles/hadrons/mesons/src/G4MesonConstructor.cc index 465ef65d19..c3c2c20f63 100644 --- a/source/particles/hadrons/mesons/src/G4MesonConstructor.cc +++ b/source/particles/hadrons/mesons/src/G4MesonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4MesonConstructor.cc,v 1.4 2001/07/11 10:01:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionMinus.cc b/source/particles/hadrons/mesons/src/G4PionMinus.cc index 524096ed60..d2024e59b7 100644 --- a/source/particles/hadrons/mesons/src/G4PionMinus.cc +++ b/source/particles/hadrons/mesons/src/G4PionMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionMinus.cc,v 1.7 2001/10/16 08:16:14 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionPlus.cc b/source/particles/hadrons/mesons/src/G4PionPlus.cc index 1a97e67910..6112ca1ca7 100644 --- a/source/particles/hadrons/mesons/src/G4PionPlus.cc +++ b/source/particles/hadrons/mesons/src/G4PionPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionPlus.cc,v 1.8 2001/10/16 08:16:14 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionZero.cc b/source/particles/hadrons/mesons/src/G4PionZero.cc index 28547b3292..20de5a86ec 100644 --- a/source/particles/hadrons/mesons/src/G4PionZero.cc +++ b/source/particles/hadrons/mesons/src/G4PionZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionZero.cc,v 1.11 2001/10/28 05:01:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4VMeson.cc b/source/particles/hadrons/mesons/src/G4VMeson.cc index b954897103..be02206413 100644 --- a/source/particles/hadrons/mesons/src/G4VMeson.cc +++ b/source/particles/hadrons/mesons/src/G4VMeson.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMeson.cc,v 1.3 2001/07/11 10:01:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/include/G4AntiNeutrinoE.hh b/source/particles/leptons/include/G4AntiNeutrinoE.hh index 2cdb09992e..b7e93f541e 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoE.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoE.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoE.hh,v 1.8 2001/10/28 05:05:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4AntiNeutrinoMu.hh b/source/particles/leptons/include/G4AntiNeutrinoMu.hh index 5ddf8d68f4..95cc71213a 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoMu.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoMu.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoMu.hh,v 1.8 2001/10/28 05:05:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4AntiNeutrinoTau.hh b/source/particles/leptons/include/G4AntiNeutrinoTau.hh index af3d27d259..0ae3d7cdbc 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoTau.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoTau.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoTau.hh,v 1.8 2001/10/28 05:05:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4Electron.hh b/source/particles/leptons/include/G4Electron.hh index ae698cd4a7..a6d915a295 100644 --- a/source/particles/leptons/include/G4Electron.hh +++ b/source/particles/leptons/include/G4Electron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Electron.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4LeptonConstructor.hh b/source/particles/leptons/include/G4LeptonConstructor.hh index 6a17f61ef7..aaaeb99378 100644 --- a/source/particles/leptons/include/G4LeptonConstructor.hh +++ b/source/particles/leptons/include/G4LeptonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4LeptonConstructor.hh,v 1.3 2001/07/11 10:01:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/include/G4MuonMinus.hh b/source/particles/leptons/include/G4MuonMinus.hh index 3ddb31d8f6..908c70ac1e 100644 --- a/source/particles/leptons/include/G4MuonMinus.hh +++ b/source/particles/leptons/include/G4MuonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonMinus.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4MuonPlus.hh b/source/particles/leptons/include/G4MuonPlus.hh index 690f28f44b..32bab6ac8d 100644 --- a/source/particles/leptons/include/G4MuonPlus.hh +++ b/source/particles/leptons/include/G4MuonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonPlus.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoE.hh b/source/particles/leptons/include/G4NeutrinoE.hh index 975e94873c..5982988671 100644 --- a/source/particles/leptons/include/G4NeutrinoE.hh +++ b/source/particles/leptons/include/G4NeutrinoE.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoE.hh,v 1.8 2001/10/28 05:05:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoMu.hh b/source/particles/leptons/include/G4NeutrinoMu.hh index d8a162ca6c..6d4f066441 100644 --- a/source/particles/leptons/include/G4NeutrinoMu.hh +++ b/source/particles/leptons/include/G4NeutrinoMu.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoMu.hh,v 1.8 2001/10/28 05:05:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoTau.hh b/source/particles/leptons/include/G4NeutrinoTau.hh index 6cdc67b206..8677a07cde 100644 --- a/source/particles/leptons/include/G4NeutrinoTau.hh +++ b/source/particles/leptons/include/G4NeutrinoTau.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoTau.hh,v 1.8 2001/10/28 05:05:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4Positron.hh b/source/particles/leptons/include/G4Positron.hh index 2790a83e73..25fd226e23 100644 --- a/source/particles/leptons/include/G4Positron.hh +++ b/source/particles/leptons/include/G4Positron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Positron.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4TauMinus.hh b/source/particles/leptons/include/G4TauMinus.hh index 02351bd72e..9ebb63fccb 100644 --- a/source/particles/leptons/include/G4TauMinus.hh +++ b/source/particles/leptons/include/G4TauMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4TauMinus.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4TauPlus.hh b/source/particles/leptons/include/G4TauPlus.hh index 9e9f7da659..89cfdca2c9 100644 --- a/source/particles/leptons/include/G4TauPlus.hh +++ b/source/particles/leptons/include/G4TauPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4TauPlus.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4VLepton.hh b/source/particles/leptons/include/G4VLepton.hh index 01d17365f9..4097fd0de5 100644 --- a/source/particles/leptons/include/G4VLepton.hh +++ b/source/particles/leptons/include/G4VLepton.hh @@ -22,7 +22,7 @@ // // // $Id: G4VLepton.hh,v 1.3 2001/07/11 10:01:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/src/G4AntiNeutrinoE.cc b/source/particles/leptons/src/G4AntiNeutrinoE.cc index 744d927f34..6aabe8ef8d 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoE.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoE.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoE.cc,v 1.10 2001/10/28 05:05:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4AntiNeutrinoMu.cc b/source/particles/leptons/src/G4AntiNeutrinoMu.cc index e08641fe86..a5d43186fe 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoMu.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoMu.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoMu.cc,v 1.10 2001/10/28 05:05:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4AntiNeutrinoTau.cc b/source/particles/leptons/src/G4AntiNeutrinoTau.cc index 9307bac2bd..b7af6aeb8d 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoTau.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoTau.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoTau.cc,v 1.10 2001/10/28 05:05:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4Electron.cc b/source/particles/leptons/src/G4Electron.cc index 0f9525647d..522ae5d2e0 100644 --- a/source/particles/leptons/src/G4Electron.cc +++ b/source/particles/leptons/src/G4Electron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Electron.cc,v 1.7 2001/10/16 08:16:17 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4LeptonConstructor.cc b/source/particles/leptons/src/G4LeptonConstructor.cc index a76420cdf8..d36c9baa5b 100644 --- a/source/particles/leptons/src/G4LeptonConstructor.cc +++ b/source/particles/leptons/src/G4LeptonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4LeptonConstructor.cc,v 1.3 2001/07/11 10:01:53 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonMinus.cc b/source/particles/leptons/src/G4MuonMinus.cc index 27dc7dc611..d312a369e1 100644 --- a/source/particles/leptons/src/G4MuonMinus.cc +++ b/source/particles/leptons/src/G4MuonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonMinus.cc,v 1.7 2001/10/16 08:16:17 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonPlus.cc b/source/particles/leptons/src/G4MuonPlus.cc index 6dbf9a73fa..165dd77956 100644 --- a/source/particles/leptons/src/G4MuonPlus.cc +++ b/source/particles/leptons/src/G4MuonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonPlus.cc,v 1.7 2001/10/16 08:16:18 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoE.cc b/source/particles/leptons/src/G4NeutrinoE.cc index 0ea5c32f19..a209feb081 100644 --- a/source/particles/leptons/src/G4NeutrinoE.cc +++ b/source/particles/leptons/src/G4NeutrinoE.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoE.cc,v 1.10 2001/10/28 05:05:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoMu.cc b/source/particles/leptons/src/G4NeutrinoMu.cc index 3f16fbc378..ac0227dfc9 100644 --- a/source/particles/leptons/src/G4NeutrinoMu.cc +++ b/source/particles/leptons/src/G4NeutrinoMu.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoMu.cc,v 1.10 2001/10/28 05:05:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoTau.cc b/source/particles/leptons/src/G4NeutrinoTau.cc index 17d4a5a444..e2c1b1aec9 100644 --- a/source/particles/leptons/src/G4NeutrinoTau.cc +++ b/source/particles/leptons/src/G4NeutrinoTau.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoTau.cc,v 1.10 2001/10/28 05:05:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4Positron.cc b/source/particles/leptons/src/G4Positron.cc index 0d093efdbd..9cdf55b3af 100644 --- a/source/particles/leptons/src/G4Positron.cc +++ b/source/particles/leptons/src/G4Positron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Positron.cc,v 1.6 2001/10/16 08:16:18 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4TauMinus.cc b/source/particles/leptons/src/G4TauMinus.cc index a2be0da543..506f0c2865 100644 --- a/source/particles/leptons/src/G4TauMinus.cc +++ b/source/particles/leptons/src/G4TauMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauMinus.cc,v 1.8 2002/03/08 08:48:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4TauPlus.cc b/source/particles/leptons/src/G4TauPlus.cc index bc0526cc31..78b668821f 100644 --- a/source/particles/leptons/src/G4TauPlus.cc +++ b/source/particles/leptons/src/G4TauPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauPlus.cc,v 1.8 2002/03/08 08:48:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4VLepton.cc b/source/particles/leptons/src/G4VLepton.cc index 7f727d6b40..09dd81c29e 100644 --- a/source/particles/leptons/src/G4VLepton.cc +++ b/source/particles/leptons/src/G4VLepton.cc @@ -22,7 +22,7 @@ // // // $Id: G4VLepton.cc,v 1.3 2001/07/11 10:01:54 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/include/G4DalitzDecayChannel.hh b/source/particles/management/include/G4DalitzDecayChannel.hh index 128dc262ab..fc57a59e72 100644 --- a/source/particles/management/include/G4DalitzDecayChannel.hh +++ b/source/particles/management/include/G4DalitzDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4DalitzDecayChannel.hh,v 1.4 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayProducts.hh b/source/particles/management/include/G4DecayProducts.hh index 7bbe83b63a..834fb53950 100644 --- a/source/particles/management/include/G4DecayProducts.hh +++ b/source/particles/management/include/G4DecayProducts.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayProducts.hh,v 1.8 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTable.hh b/source/particles/management/include/G4DecayTable.hh index 7867e28dcb..2916fca85a 100644 --- a/source/particles/management/include/G4DecayTable.hh +++ b/source/particles/management/include/G4DecayTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayTable.hh,v 1.7 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTableMessenger.hh b/source/particles/management/include/G4DecayTableMessenger.hh index becea59fc5..8eae34538a 100644 --- a/source/particles/management/include/G4DecayTableMessenger.hh +++ b/source/particles/management/include/G4DecayTableMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayTableMessenger.hh,v 1.6 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4DynamicParticle.hh b/source/particles/management/include/G4DynamicParticle.hh index 45db08357e..3812045305 100644 --- a/source/particles/management/include/G4DynamicParticle.hh +++ b/source/particles/management/include/G4DynamicParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticle.hh,v 1.11 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticle.icc b/source/particles/management/include/G4DynamicParticle.icc index 93a8ba7de7..11a3f0a954 100644 --- a/source/particles/management/include/G4DynamicParticle.icc +++ b/source/particles/management/include/G4DynamicParticle.icc @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticle.icc,v 1.8 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticleFastVector.hh b/source/particles/management/include/G4DynamicParticleFastVector.hh index 4d440d3869..bff9770c8a 100644 --- a/source/particles/management/include/G4DynamicParticleFastVector.hh +++ b/source/particles/management/include/G4DynamicParticleFastVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticleFastVector.hh,v 1.3 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ElectronOccupancy.hh b/source/particles/management/include/G4ElectronOccupancy.hh index a038eb59fc..ba7366e8b3 100644 --- a/source/particles/management/include/G4ElectronOccupancy.hh +++ b/source/particles/management/include/G4ElectronOccupancy.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectronOccupancy.hh,v 1.5 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IonTable.hh b/source/particles/management/include/G4IonTable.hh index 2a0082faf9..b99d8a89a1 100644 --- a/source/particles/management/include/G4IonTable.hh +++ b/source/particles/management/include/G4IonTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonTable.hh,v 1.18 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4Ions.hh b/source/particles/management/include/G4Ions.hh index 20014bc464..54060f4bf8 100644 --- a/source/particles/management/include/G4Ions.hh +++ b/source/particles/management/include/G4Ions.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ions.hh,v 1.9 2001/10/15 09:58:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IsotopeProperty.hh b/source/particles/management/include/G4IsotopeProperty.hh index 6cca4bfbdc..ad5b82b66a 100644 --- a/source/particles/management/include/G4IsotopeProperty.hh +++ b/source/particles/management/include/G4IsotopeProperty.hh @@ -22,7 +22,7 @@ // // // $Id: G4IsotopeProperty.hh,v 1.3 2001/07/11 10:01:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4KL3DecayChannel.hh b/source/particles/management/include/G4KL3DecayChannel.hh index bff9c049ad..172ebc0da9 100644 --- a/source/particles/management/include/G4KL3DecayChannel.hh +++ b/source/particles/management/include/G4KL3DecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4KL3DecayChannel.hh,v 1.4 2001/07/11 10:01:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4MuonDecayChannel.hh b/source/particles/management/include/G4MuonDecayChannel.hh index cff46651f6..1e6852dfea 100644 --- a/source/particles/management/include/G4MuonDecayChannel.hh +++ b/source/particles/management/include/G4MuonDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonDecayChannel.hh,v 1.5 2001/07/11 10:01:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NeutronBetaDecayChannel.hh b/source/particles/management/include/G4NeutronBetaDecayChannel.hh index d9de997ca8..67b9975331 100644 --- a/source/particles/management/include/G4NeutronBetaDecayChannel.hh +++ b/source/particles/management/include/G4NeutronBetaDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronBetaDecayChannel.hh,v 1.1 2001/09/18 02:15:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiProperties.hh b/source/particles/management/include/G4NucleiProperties.hh index 04812bc7ca..0cc29d6a1a 100644 --- a/source/particles/management/include/G4NucleiProperties.hh +++ b/source/particles/management/include/G4NucleiProperties.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiProperties.hh,v 1.13 2001/10/16 08:16:19 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiPropertiesTable.hh b/source/particles/management/include/G4NucleiPropertiesTable.hh index 3f589ea862..4e41c45bf6 100644 --- a/source/particles/management/include/G4NucleiPropertiesTable.hh +++ b/source/particles/management/include/G4NucleiPropertiesTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTable.hh,v 1.10 2001/10/15 09:58:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh b/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh index 628ae08787..6068415c48 100644 --- a/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh +++ b/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.5 2001/10/15 09:58:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PDGCodeChecker.hh b/source/particles/management/include/G4PDGCodeChecker.hh index c941ba7ff3..3c7b39513c 100644 --- a/source/particles/management/include/G4PDGCodeChecker.hh +++ b/source/particles/management/include/G4PDGCodeChecker.hh @@ -22,7 +22,7 @@ // // // $Id: G4PDGCodeChecker.hh,v 1.6 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.hh b/source/particles/management/include/G4ParticleDefinition.hh index 3e3623b4ac..f5035c735b 100644 --- a/source/particles/management/include/G4ParticleDefinition.hh +++ b/source/particles/management/include/G4ParticleDefinition.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleDefinition.hh,v 1.12 2001/10/15 09:58:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.icc b/source/particles/management/include/G4ParticleDefinition.icc index 9e066f63d9..865e05028d 100644 --- a/source/particles/management/include/G4ParticleDefinition.icc +++ b/source/particles/management/include/G4ParticleDefinition.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleDefinition.icc,v 1.1 2001/10/15 09:58:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // inline diff --git a/source/particles/management/include/G4ParticleMessenger.hh b/source/particles/management/include/G4ParticleMessenger.hh index 97c542f43b..a8c3afd849 100644 --- a/source/particles/management/include/G4ParticleMessenger.hh +++ b/source/particles/management/include/G4ParticleMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleMessenger.hh,v 1.5 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticleMomentum.hh b/source/particles/management/include/G4ParticleMomentum.hh index cb413da18a..d07ee2dc30 100644 --- a/source/particles/management/include/G4ParticleMomentum.hh +++ b/source/particles/management/include/G4ParticleMomentum.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleMomentum.hh,v 1.5 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticlePropertyMessenger.hh b/source/particles/management/include/G4ParticlePropertyMessenger.hh index fd7f2eb1d6..06201dc3cf 100644 --- a/source/particles/management/include/G4ParticlePropertyMessenger.hh +++ b/source/particles/management/include/G4ParticlePropertyMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticlePropertyMessenger.hh,v 1.5 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticleTable.hh b/source/particles/management/include/G4ParticleTable.hh index 2425675205..96445d8e50 100644 --- a/source/particles/management/include/G4ParticleTable.hh +++ b/source/particles/management/include/G4ParticleTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.hh,v 1.15 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTable.icc b/source/particles/management/include/G4ParticleTable.icc index e9e6ceae0d..816d723d2b 100644 --- a/source/particles/management/include/G4ParticleTable.icc +++ b/source/particles/management/include/G4ParticleTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.icc,v 1.8 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTableIterator.hh b/source/particles/management/include/G4ParticleTableIterator.hh index a3771de027..6ac8da10a7 100644 --- a/source/particles/management/include/G4ParticleTableIterator.hh +++ b/source/particles/management/include/G4ParticleTableIterator.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTableIterator.hh,v 1.5 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleWithCuts.hh b/source/particles/management/include/G4ParticleWithCuts.hh index 91f2e8dcbc..a92b0a0004 100644 --- a/source/particles/management/include/G4ParticleWithCuts.hh +++ b/source/particles/management/include/G4ParticleWithCuts.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleWithCuts.hh,v 1.14 2001/10/30 20:08:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh index 3a9f1738ba..05f05ba977 100644 --- a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh +++ b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhaseSpaceDecayChannel.hh,v 1.5 2001/10/15 09:58:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ShortLivedTable.hh b/source/particles/management/include/G4ShortLivedTable.hh index 0bdcf5dbb7..d2139fee6e 100644 --- a/source/particles/management/include/G4ShortLivedTable.hh +++ b/source/particles/management/include/G4ShortLivedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedTable.hh,v 1.10 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4TauLeptonicDecayChannel.hh b/source/particles/management/include/G4TauLeptonicDecayChannel.hh index edff3a631e..85362c4d9e 100644 --- a/source/particles/management/include/G4TauLeptonicDecayChannel.hh +++ b/source/particles/management/include/G4TauLeptonicDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TauLeptonicDecayChannel.hh,v 1.1 2002/03/08 08:47:52 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VDecayChannel.hh b/source/particles/management/include/G4VDecayChannel.hh index 4231b11ecb..e078fece2c 100644 --- a/source/particles/management/include/G4VDecayChannel.hh +++ b/source/particles/management/include/G4VDecayChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDecayChannel.hh,v 1.9 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VDecayChannel.hh,v 1.10 2002/11/20 15:05:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -156,6 +156,9 @@ class G4VDecayChannel G4int GetVerboseLevel() const; void DumpInfo(); + private: + const G4String& GetNoName() const; + private: // controle flag for output message G4int verboseLevel; @@ -198,7 +201,7 @@ inline G4cout << "G4VDecayChannel::GetDaughterName "; G4cout << "index out of range " << anIndex << G4endl; } - return noName; + return GetNoName(); } } diff --git a/source/particles/management/include/G4VIsotopeTable.hh b/source/particles/management/include/G4VIsotopeTable.hh index e20993ce9b..98a92d258e 100644 --- a/source/particles/management/include/G4VIsotopeTable.hh +++ b/source/particles/management/include/G4VIsotopeTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIsotopeTable.hh,v 1.5 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DalitzDecayChannel.cc b/source/particles/management/src/G4DalitzDecayChannel.cc index b91a7e512a..a350849cfb 100644 --- a/source/particles/management/src/G4DalitzDecayChannel.cc +++ b/source/particles/management/src/G4DalitzDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DalitzDecayChannel.cc,v 1.5 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayProducts.cc b/source/particles/management/src/G4DecayProducts.cc index f72b66b316..0837cb3dd3 100644 --- a/source/particles/management/src/G4DecayProducts.cc +++ b/source/particles/management/src/G4DecayProducts.cc @@ -22,7 +22,7 @@ // // // $Id: G4DecayProducts.cc,v 1.9 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTable.cc b/source/particles/management/src/G4DecayTable.cc index 3598821f74..45af9e5aec 100644 --- a/source/particles/management/src/G4DecayTable.cc +++ b/source/particles/management/src/G4DecayTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4DecayTable.cc,v 1.7 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTableMessenger.cc b/source/particles/management/src/G4DecayTableMessenger.cc index 6496bc198f..a39530c6a8 100644 --- a/source/particles/management/src/G4DecayTableMessenger.cc +++ b/source/particles/management/src/G4DecayTableMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4DecayTableMessenger.cc,v 1.4 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4DynamicParticle.cc b/source/particles/management/src/G4DynamicParticle.cc index ca3521c139..0b7bdd62b6 100644 --- a/source/particles/management/src/G4DynamicParticle.cc +++ b/source/particles/management/src/G4DynamicParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticle.cc,v 1.11 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4ElectronOccupancy.cc b/source/particles/management/src/G4ElectronOccupancy.cc index 6dbb676953..1fdf697652 100644 --- a/source/particles/management/src/G4ElectronOccupancy.cc +++ b/source/particles/management/src/G4ElectronOccupancy.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectronOccupancy.cc,v 1.6 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc index 1c253d1ae9..db74805955 100644 --- a/source/particles/management/src/G4IonTable.cc +++ b/source/particles/management/src/G4IonTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonTable.cc,v 1.30 2001/10/15 09:58:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4Ions.cc b/source/particles/management/src/G4Ions.cc index 33dd9d8cde..c0a1fb0b91 100644 --- a/source/particles/management/src/G4Ions.cc +++ b/source/particles/management/src/G4Ions.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ions.cc,v 1.6 2001/07/11 10:02:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IsotopeProperty.cc b/source/particles/management/src/G4IsotopeProperty.cc index 7268d8b780..4c204cbc64 100644 --- a/source/particles/management/src/G4IsotopeProperty.cc +++ b/source/particles/management/src/G4IsotopeProperty.cc @@ -22,7 +22,7 @@ // // // $Id: G4IsotopeProperty.cc,v 1.3 2001/07/11 10:02:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4KL3DecayChannel.cc b/source/particles/management/src/G4KL3DecayChannel.cc index f616628118..5d45a33206 100644 --- a/source/particles/management/src/G4KL3DecayChannel.cc +++ b/source/particles/management/src/G4KL3DecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4KL3DecayChannel.cc,v 1.5 2001/07/11 10:02:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4MuonDecayChannel.cc b/source/particles/management/src/G4MuonDecayChannel.cc index 41aa3d0004..989a2837ff 100644 --- a/source/particles/management/src/G4MuonDecayChannel.cc +++ b/source/particles/management/src/G4MuonDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonDecayChannel.cc,v 1.9 2001/07/11 10:02:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NeutronBetaDecayChannel.cc b/source/particles/management/src/G4NeutronBetaDecayChannel.cc index f2125ca08b..e948516a04 100644 --- a/source/particles/management/src/G4NeutronBetaDecayChannel.cc +++ b/source/particles/management/src/G4NeutronBetaDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronBetaDecayChannel.cc,v 1.4 2002/04/03 09:05:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NucleiProperties.cc b/source/particles/management/src/G4NucleiProperties.cc index a8b0112263..13cde59032 100644 --- a/source/particles/management/src/G4NucleiProperties.cc +++ b/source/particles/management/src/G4NucleiProperties.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiProperties.cc,v 1.10 2002/05/30 02:13:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NucleiPropertiesTableA.cc b/source/particles/management/src/G4NucleiPropertiesTableA.cc index 2504c7e962..0edf2febd2 100644 --- a/source/particles/management/src/G4NucleiPropertiesTableA.cc +++ b/source/particles/management/src/G4NucleiPropertiesTableA.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTableA.cc,v 1.7 2001/10/15 09:58:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/particles/management/src/G4NucleiPropertiesTableB.cc b/source/particles/management/src/G4NucleiPropertiesTableB.cc index 8bc9cbe271..0942581a47 100644 --- a/source/particles/management/src/G4NucleiPropertiesTableB.cc +++ b/source/particles/management/src/G4NucleiPropertiesTableB.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTableB.cc,v 1.7 2001/10/15 09:58:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc b/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc index b7474ef98b..c22dc261b2 100644 --- a/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc +++ b/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTheoreticalTableA.cc,v 1.4 2001/10/15 09:58:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4PDGCodeChecker.cc b/source/particles/management/src/G4PDGCodeChecker.cc index ab47b2aa49..98da63b2e6 100644 --- a/source/particles/management/src/G4PDGCodeChecker.cc +++ b/source/particles/management/src/G4PDGCodeChecker.cc @@ -22,7 +22,7 @@ // // // $Id: G4PDGCodeChecker.cc,v 1.5 2001/07/11 10:02:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticleDefinition.cc b/source/particles/management/src/G4ParticleDefinition.cc index ff3cb4f118..189a7f1e32 100644 --- a/source/particles/management/src/G4ParticleDefinition.cc +++ b/source/particles/management/src/G4ParticleDefinition.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleDefinition.cc,v 1.12 2001/07/11 10:02:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticleMessenger.cc b/source/particles/management/src/G4ParticleMessenger.cc index 025995a188..8906d036eb 100644 --- a/source/particles/management/src/G4ParticleMessenger.cc +++ b/source/particles/management/src/G4ParticleMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleMessenger.cc,v 1.6 2001/10/24 18:42:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticlePropertyMessenger.cc b/source/particles/management/src/G4ParticlePropertyMessenger.cc index 3cdfeed597..7e1bc97dbc 100644 --- a/source/particles/management/src/G4ParticlePropertyMessenger.cc +++ b/source/particles/management/src/G4ParticlePropertyMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticlePropertyMessenger.cc,v 1.4 2001/07/11 10:02:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParticlePropertyMessenger.cc,v 1.5 2002/12/04 18:36:45 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -73,7 +73,7 @@ G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(G4ParticleTable* pTable stableCmd->SetGuidance("Set stable flag."); stableCmd->SetGuidance(" false: Unstable true: Stable"); stableCmd->SetParameterName("stable",false); - stableCmd->AvailableForStates(PreInit,Idle,GeomClosed); + stableCmd->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); //particle/property/lifetime lifetimeCmd = new G4UIcmdWithADoubleAndUnit("/particle/property/lifetime",this); @@ -86,7 +86,7 @@ G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(G4ParticleTable* pTable //lifetimeCmd->SetUnitCategory("Time"); //lifetimeCmd->SetUnitCandidates("s ms ns"); lifetimeCmd->SetDefaultUnit("ns"); - lifetimeCmd->AvailableForStates(PreInit,Idle,GeomClosed); + lifetimeCmd->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); // -- particle/property/Verbose --- verboseCmd = new G4UIcmdWithAnInteger("/particle/property/verbose",this); diff --git a/source/particles/management/src/G4ParticleTable.cc b/source/particles/management/src/G4ParticleTable.cc index 6eb7e8961e..de6be671c8 100644 --- a/source/particles/management/src/G4ParticleTable.cc +++ b/source/particles/management/src/G4ParticleTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.cc,v 1.18 2001/07/11 10:02:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class G4ParticleTable // diff --git a/source/particles/management/src/G4ParticleWithCuts.cc b/source/particles/management/src/G4ParticleWithCuts.cc index 66ee6879f1..4667c9f057 100644 --- a/source/particles/management/src/G4ParticleWithCuts.cc +++ b/source/particles/management/src/G4ParticleWithCuts.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleWithCuts.cc,v 1.17 2001/10/28 05:08:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc index 5f1b8407a8..1dc4a8e350 100644 --- a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc +++ b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhaseSpaceDecayChannel.cc,v 1.7 2001/10/15 09:58:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4ShortLivedTable.cc b/source/particles/management/src/G4ShortLivedTable.cc index af41a1322e..2466bcd7dd 100644 --- a/source/particles/management/src/G4ShortLivedTable.cc +++ b/source/particles/management/src/G4ShortLivedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedTable.cc,v 1.10 2001/07/11 10:02:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4TauLeptonicDecayChannel.cc b/source/particles/management/src/G4TauLeptonicDecayChannel.cc index 027dbcc732..6b0436876e 100644 --- a/source/particles/management/src/G4TauLeptonicDecayChannel.cc +++ b/source/particles/management/src/G4TauLeptonicDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauLeptonicDecayChannel.cc,v 1.2 2002/03/28 10:56:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4VDecayChannel.cc b/source/particles/management/src/G4VDecayChannel.cc index 7ce41d0687..82e4b85d99 100644 --- a/source/particles/management/src/G4VDecayChannel.cc +++ b/source/particles/management/src/G4VDecayChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDecayChannel.cc,v 1.12 2001/08/17 00:14:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VDecayChannel.cc,v 1.15 2002/11/20 15:05:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -275,7 +275,8 @@ void G4VDecayChannel::FillDaughters() if ((numberOfDaughters <=0) || (daughters_name == 0) ){ #ifdef G4VERBOSE if (verboseLevel>0) { - G4cout << "G4VDecayChannel::FillDaughters "; + G4cout << "G4VDecayChannel::FillDaughters "; + G4cout << "[ " << parent->GetParticleName() << " ]"; G4cout << "numberOfDaughters is not defined yet"; } #endif @@ -294,6 +295,7 @@ void G4VDecayChannel::FillDaughters() #ifdef G4VERBOSE if (verboseLevel>0) { G4cout << "G4VDecayChannel::FillDaughters "; + G4cout << "[ " << parent->GetParticleName() << " ]"; G4cout << index << "-th daughter is not defined yet" << G4endl; } #endif @@ -307,6 +309,7 @@ void G4VDecayChannel::FillDaughters() #ifdef G4VERBOSE if (verboseLevel>0) { G4cout << "G4VDecayChannel::FillDaughters "; + G4cout << "[ " << parent->GetParticleName() << " ]"; G4cout << index << ":" << *daughters_name[index]; G4cout << " is not defined !!" << G4endl; G4cout << " The BR of this decay mode is set to zero " << G4endl; @@ -326,14 +329,14 @@ void G4VDecayChannel::FillDaughters() } // end loop over all daughters // check sum of daghter mass - const G4double AllowanceOfMassDifference = 1.0 * MeV; - if ( (sumofdaughtermass > parentmass + AllowanceOfMassDifference) || - ( (parent->GetParticleType() != "nucleus") && - (sumofdaughtermass > parentmass ) ) ){ + G4double widthMass = parent->GetPDGWidth(); + if ( (parent->GetParticleType() != "nucleus") && + (sumofdaughtermass > parentmass + 5*widthMass) ){ // !!! illegal mass !!! #ifdef G4VERBOSE if (GetVerboseLevel()>0) { G4cout << "G4VDecayChannel::FillDaughters "; + G4cout << "[ " << parent->GetParticleName() << " ]"; G4cout << " Energy/Momentum conserevation breaks " <1) { G4cout << " parent:" << *parent_name; @@ -344,12 +347,9 @@ void G4VDecayChannel::FillDaughters() G4cout << "[GeV/c/c]" < $(G4TMP)/$(G4SYSTEM)/*.hh -> $(G4SCHEMA_INCLUDE)/*.hh -# $(G4TMP)/$(G4SYSTEM)/*_ref.hh -> $(G4SCHEMA_INCLUDE)/*.hh -# $(G4TMP)/$(G4SYSTEM)/*_ddl.cc -> $(G4TMP)/$(G4SYSTEM)/*_ddl.o -# (schema) ------> $(G4SCHEMA_BOOT) --------------> $(G4SCHEMA_BOOT) -# src/*.cc --------------------------------------> $(G4TMP)/$(G4SYSTEM)/*.o -# -# You must have unique G4SCHEMA_FDID assigned by your local -# manager of Objectivity/DB lock server. -# +# $Id: GNUmakefile,v 1.22 2002/12/04 13:00:03 gcosmo Exp $ +# ----------------------------------------------------------------------- +# GNUmakefile for persistency library. Gabriele Cosmo, 16/11/96. +# ----------------------------------------------------------------------- name := G4persistency -G4ODBMS := true -G4ODBMS_INSTALLATION := true - -SUBDIRS = global \ - digits+hits/digits digits+hits/hits events run geometry/global \ - geometry/solids/CSG geometry/solids/specific \ - geometry/solids/Boolean geometry/management \ - management -SUBLIBS = G4pglobal G4pdigits G4phits G4pevents G4prun G4pgeomGlobal \ - G4pcsg G4pspecsolids G4pgeomBoolean G4pgeomn \ - G4pmanagement ifndef G4INSTALL G4INSTALL = ../.. endif -include $(G4INSTALL)/config/globlib.gmk -# -------------------------------------------------------------- +include $(G4INSTALL)/config/architecture.gmk -.PHONY : all global clean clean_libs cleandb test +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/particles/management/include \ + -I$(G4INSTALL)/source/run/include \ + -I$(G4INSTALL)/source/event/include \ + -I$(G4INSTALL)/source/track/include \ + -I$(G4INSTALL)/source/tracking/include \ + -I$(G4INSTALL)/source/intercoms/include \ + -I$(G4INSTALL)/source/geometry/management/include -# if G4ODBMS flag is not defined, override the target "all" then exit -ifndef G4ODBMS -all: - @echo Error - Persistency requires G4ODBMS and related database setup. - exit 1 -endif +include $(G4INSTALL)/config/common.gmk -cleandb: cleanall newdb - -cleanall: - @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE) clean); done - -newdb: - @rm -f $(G4SCHEMA_BOOT_DIR)/G4SCHEMA - @rm -f $(G4SCHEMA_BOOT_DIR)/G4SCHEMA.FDDB - @rm -f $(G4SCHEMA_BOOT_DIR)/*.G4SCHEMA.DB - @$(HEP_ODBMS_DIR)/etc/getdb $(HEP_ODBMS_DIR)/schema/HEP_BASE \ - $(G4SCHEMA_BOOT) $(G4SCHEMA_FDID) - -test: - @echo "G4DDLX_FLAGS = $(G4DDLX_FLAGS)" +.PHONY: global + +global: lib diff --git a/source/persistency/History b/source/persistency/History index 3404c00392..3399bcb9ed 100644 --- a/source/persistency/History +++ b/source/persistency/History @@ -15,6 +15,29 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +04 December, 02 Y.Morita (persistency-V04-01-02) +- G4PersistencyManager.cc: protect for default persistency manager +- G4PersistencyCenter.cc: bug fixes, disable HepMC/MCTruth printout +- GetG4->Get, CurrentG4->Current +- SetG4->Set, RegisterG4->Register, DeleteG4->Delete + +04 December, 02 G.Cosmo (persistency-V04-01-01) +- Corrections to comply to G4 coding rules: + o use of g4std/ headers for STL classes; + o use G4std:: instead of std:: + o use of G4 types (limited to G4bool, G4cout, G4endl, G4cerr) +- Fixes for porting on Windows platform: + o HepMC is not currently supported by CLHEP on Windows, so must be + excluded from compilation on Windows systems. + +29 November, 02 Y.Morita (persistency-V04-01-00) +- tools for developers + +23 November, 02 Y.Morita +- new abstract interface for persistency for release 5.0. +- for actual implementation of HepODBMS and ROOT I/O, see + $G4INSTALL/examples/extended/persistency/README. + 7 December, 01 Y.Morita (persistency-V03-02-02) - added G4Pglobals.hh to G4PVHits and G4PVDigits for g++ 2.95.2 headers diff --git a/source/persistency/digits+hits/digits/GNUmakefile b/source/persistency/digits+hits/digits/GNUmakefile deleted file mode 100644 index 0d853d5250..0000000000 --- a/source/persistency/digits+hits/digits/GNUmakefile +++ /dev/null @@ -1,35 +0,0 @@ -# $Id: GNUmakefile,v 1.4 2001/03/15 22:58:53 morita Exp $ - -name := G4pdigits -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../.. -endif -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/graphics_reps/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit header file dependencies: - -$(G4SCHEMA_HEADER_DIR)/G4PDCofThisEvent.hh: $(G4SCHEMA_HEADER_DIR)/G4PVDigitsCollection.hh -$(G4SCHEMA_HEADER_DIR)/G4PVDigitsCollection.hh: $(G4SCHEMA_HEADER_DIR)/G4PVDigit.hh -#-------------------------------------------------------------------- - diff --git a/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl b/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl deleted file mode 100644 index a9f6d85e96..0000000000 --- a/source/persistency/digits+hits/digits/include/G4PDCofThisEvent.ddl +++ /dev/null @@ -1,86 +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: G4PDCofThisEvent.ddl,v 1.7 2001/07/11 10:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// This is a persistent version of container class which stores -// the associations to the digi collection in one event. -// User should check the existence of the instance of this class -// in his/her sensitive detector class with GetCurrentPDCofThisEvent() -// method of a singleton class G4PersistentDigitMan. If it does -// not exist, use should create a new instance and register the smart -// pointer with SetCurrentPDCofThisEvent() method of G4PersistentDigitMan. -// As user creates a new collection of digit, its smart pointer should -// be registered to this class via AddDigitsCollection(). -// To obtain a smart pointer of the i-th collection, use GetDC() method. -// - -#ifndef G4PDCofThisEvent_h -#define G4PDCofThisEvent_h 1 - -#include "G4PersistentSchema.hh" - -#include "G4PVDigitsCollection.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -class G4PDCofThisEvent - : public HepPersObj -{ - public: // with description - G4PDCofThisEvent(); - // Constructor. - ~G4PDCofThisEvent(); - // Destructor. - void AddDigitsCollection(G4int DCID, HepRef(G4PVDigitsCollection) aDC); - // Store a smart pointer of the collection aDC as DCID-th entry. - - private: - d_Varray< d_Ref > DC; - - public: // with description - inline HepRef(G4PVDigitsCollection) GetDC(G4int i) - { return DC[i]; } - // Returns a smart pointer of a digit collection at the index i. - // Null will be returned if the particular collection is not stored - // in the current event. - - public: - inline G4int GetCapacity() - { return DC.size(); } - inline G4int GetNumberOfCollections() - { - G4int n = 0; - for(int i=0;i > HC; - - public: // with description - inline HepRef(G4PVHitsCollection) GetHC(G4int i) - { return HC[i]; } - // Returns a smart pointer of a hit collection at the index i. - // Null will be returned if the particular collection is not stored - // in the current event. - - public: - inline G4int GetCapacity() - { return HC.size(); } - inline G4int GetNumberOfCollections() - { - G4int n = 0; - for(int i=0;i -#include "G4PVHitsCollection.hh" -#include "G4PersistentHitMan.hh" -#include "G4PHCofThisEvent.hh" - -G4PVHitsCollection::G4PVHitsCollection(G4String detName,G4String colNam) - : pcollectionName(colNam), pSDname(detName) -{;} - -G4PVHitsCollection::~G4PVHitsCollection() -{;} - -int G4PVHitsCollection::operator==(const G4PVHitsCollection &right) const -{ - return ((pcollectionName==right.pcollectionName) - &&(pSDname==right.pSDname)); -} - diff --git a/source/persistency/events/GNUmakefile b/source/persistency/events/GNUmakefile deleted file mode 100644 index c27caf3f1a..0000000000 --- a/source/persistency/events/GNUmakefile +++ /dev/null @@ -1,46 +0,0 @@ -# $Id: GNUmakefile,v 1.10 2001/03/15 22:58:54 morita Exp $ - -name := G4pevents -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4TMP)/$(G4SYSTEM)/G4phits \ - -I$(G4TMP)/$(G4SYSTEM)/G4pdigits \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/digits/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/hits/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/tracking/include \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/graphics_reps/include \ - -I$(G4INSTALL)/source/digits+hits/detector/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: -# G4PEvent.ddl includes G4PPrimaryVertex.hh, so G4PPrimaryVertex.hh -# should be created before G4PEvent.hh. - -$(G4SCHEMA_HEADER_DIR)/G4PEvent.hh: $(G4SCHEMA_HEADER_DIR)/G4PPrimaryVertex.hh -#-------------------------------------------------------------------- - diff --git a/source/persistency/events/include/G4PEvent.ddl b/source/persistency/events/include/G4PEvent.ddl deleted file mode 100644 index 2a9d8f01e0..0000000000 --- a/source/persistency/events/include/G4PEvent.ddl +++ /dev/null @@ -1,154 +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: G4PEvent.ddl,v 1.12 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// -// This is a class which represent a persistent event in Geant4. -// A persistent event object is constructed by -// G4PersistentEventMan::Store() or read back from a database -// by G4PersistentEventMan::Retrieve(). -// G4PersistentEventMan::Store() passes a pointer of a transient -// G4Event object. The G4PEvent object construct itself by copying -// the data member of G4Event, and by creating corresponting -// persistent objects of primary vertex, particles, hits and digits. -// - -#ifndef G4PEvent_h -#define G4PEvent_h 1 - -#include "G4Pglobals.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -#include "G4PPrimaryVertex.hh" -#include "G4PHCofThisEvent.hh" -#include "G4PDCofThisEvent.hh" - -class G4Event; - -#include "HepODBMS/odbms/HepODBMS.h" - - -class G4PEvent - : public HepPersObj - -{ - public: // with description - G4PEvent(); - G4PEvent(const G4Event *evt); - G4PEvent(const G4Event *evt, - HepRef(G4PHCofThisEvent) pHC, - HepRef(G4PDCofThisEvent) pDC); - // Constructors. - void InitPEvent(const G4Event *evt, - HepRef(G4PHCofThisEvent) pHC, - HepRef(G4PDCofThisEvent) pDC); - // Actual constructor to be called by the above. - ~G4PEvent(); - // Destructor. - - private: - // event ID - G4Pint eventID; - - // PrimaryVertex - d_Ref thePrimaryVertex; - G4Pint numberOfPrimaryVertex; - - // HitsCollection - d_Ref HC; - - // DigiCollection - d_Ref DC; - - // TrajectoryContainer (not supported yet) -// d_Ref trajectoryContainer; - - public: // with description - void SetEventID(const G4Event *evt); - inline G4int GetEventID() const - { return eventID; } - // Set and get event ID. - - inline void AddPrimaryVertex( HepRef(G4PPrimaryVertex) aPrimaryVertex) - { - if( thePrimaryVertex == 0 ) - { thePrimaryVertex = aPrimaryVertex; } - else - { thePrimaryVertex->SetNext( aPrimaryVertex ); } - numberOfPrimaryVertex++; - } - // Adds another primary vertex to the vertex chain. - - inline G4int GetNumberOfPrimaryVertex() const - { return numberOfPrimaryVertex; } - // Get the number of primary vertecies in the chain. - - inline HepRef(G4PPrimaryVertex) GetPrimaryVertex(G4int i=0) const - { - if( i == 0 ) - { return thePrimaryVertex; } - else if( i > 0 && i < numberOfPrimaryVertex ) - { - HepRef(G4PPrimaryVertex) primaryVertex = thePrimaryVertex; - for( int j=0; jGetNext(); - } - return primaryVertex; - } - else - { return 0; } - } - // returns a smart pointer of the i-th primary vertex. - - inline void SetHCofThisEvent( HepRef(G4PHCofThisEvent) value) - { HC = value; } - inline HepRef(G4PHCofThisEvent) GetHCofThisEvent() const - { return HC; } - // Sets and gets a smart pointer of the hits collections of this event. - - inline void SetDCofThisEvent( HepRef(G4PDCofThisEvent) value) - { DC = value; } - inline HepRef(G4PDCofThisEvent) GetDCofThisEvent() const - { return DC; } - // Sets and gets a smart pointer of the digits collections of this event. - - // inline void SetTrajectoryContainer(G4TrajectoryContainer*value) - // { trajectoryContainer = value; } - // inline G4TrajectoryContainer* GetTrajectoryContainer() const - // { return trajectoryContainer; } - - G4Event* MakeTransientObject(); - // Construct a transient G4Event object from the data members of - // G4PEvent. - -}; - -#endif - diff --git a/source/persistency/events/include/G4PPrimaryParticle.ddl b/source/persistency/events/include/G4PPrimaryParticle.ddl deleted file mode 100644 index e4642c4a32..0000000000 --- a/source/persistency/events/include/G4PPrimaryParticle.ddl +++ /dev/null @@ -1,110 +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: G4PPrimaryParticle.ddl,v 1.3 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#ifndef G4PPrimaryParticle_h -#define G4PPrimaryParticle_h 1 - -#include "G4Pglobals.hh" -#include "G4ThreeVector.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -class G4PrimaryParticle; - -// class description: -// -// This is the persistent version of a class G4PrimaryParticle. -// - -class G4PPrimaryParticle - : public HepPersObj -{ - public: - G4PPrimaryParticle( G4PrimaryParticle* particle ); - ~G4PPrimaryParticle(); - - G4PrimaryParticle* MakeTransientObject(); - - private: - G4Pint PDGcode; - // G4ParticleDefinition * G4code; - G4Pdouble Px; - G4Pdouble Py; - G4Pdouble Pz; - - d_Ref nextParticle; - d_Ref daughterParticle; - - G4Pint trackID; // This will be set if this particle is - // sent to G4EventManager and converted to - // G4Track. Otherwise = -1. - G4Pdouble mass; // This is just for book keeping. - // This will not be used but the mass in - // G4ParticleDefinition will be used. - - G4Pdouble polX; - G4Pdouble polY; - G4Pdouble polZ; - - public: // with description - // followings are get methods available. - // "trackID" will be set if this particle is sent to G4EventManager and converted to - // G4Track. Otherwise = -1. - // "mass" is just for book keeping. This will not be used but the mass in - // G4ParticleDefinition will be used. - inline G4int GetPDGcode() const - { return PDGcode; } - // inline G4ParticleDefinition * GetG4code() const - // { return G4code; } - inline G4ThreeVector GetMomentum() const - { return G4ThreeVector(Px,Py,Pz); } - inline G4double GetPx() const - { return Px; } - inline G4double GetPy() const - { return Py; } - inline G4double GetPz() const - { return Pz; } - inline HepRef(G4PPrimaryParticle) GetNext() const - { return nextParticle; } - inline HepRef(G4PPrimaryParticle) GetDaughter() const - { return daughterParticle; } - inline G4int GetTrackID() const - { return trackID; } - inline G4double GetMass() const - { return mass; } - inline G4ThreeVector GetPolarization() const - { return G4ThreeVector(polX,polY,polZ); } - inline G4double GetPolX() const { return polX; } - inline G4double GetPolY() const { return polY; } - inline G4double GetPolZ() const { return polZ; } - -}; - -#endif - diff --git a/source/persistency/events/include/G4PPrimaryVertex.ddl b/source/persistency/events/include/G4PPrimaryVertex.ddl deleted file mode 100644 index efbdb37a0f..0000000000 --- a/source/persistency/events/include/G4PPrimaryVertex.ddl +++ /dev/null @@ -1,101 +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: G4PPrimaryVertex.ddl,v 1.11 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// This is a class which represent a persistent primary vertex -// in Geant4. It is constructed by a G4PEvent object with a pointer -// of transient G4PrimaryVertex object. -// - - -#ifndef G4PPrimaryVertex_h -#define G4PPrimaryVertex_h 1 - -#include "G4Pglobals.hh" -#include "G4ThreeVector.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -class G4PrimaryVertex; -class G4PPrimaryParticle; -#pragma ooclassref G4PPrimaryParticle "G4PPrimaryParticle_ref.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -class G4PPrimaryVertex -: public HepPersObj -{ - public: // with description - G4PPrimaryVertex(); - G4PPrimaryVertex(const G4PrimaryVertex* vertex); - ~G4PPrimaryVertex(); - // Constructors and destructor. - - G4PrimaryVertex* MakeTransientObject(); - // Creates a transient primary vertex object and returns the pointer. - - private: - G4Pdouble X0; - G4Pdouble Y0; - G4Pdouble Z0; - G4Pdouble T0; - d_Ref theParticle; - d_Ref theTail; - d_Ref nextVertex; - G4Pint numberOfParticle; - - public: // with description - inline G4ThreeVector GetPosition() const - { return G4ThreeVector(X0,Y0,Z0); } - inline G4double GetX0() const - { return X0; } - inline G4double GetY0() const - { return Y0; } - inline G4double GetZ0() const - { return Z0; } - inline G4double GetT0() const - { return T0; } - inline G4int GetNumberOfParticle() const - { return numberOfParticle; } - // Get methods to read the vertex values. - - HepRef(G4PPrimaryParticle) GetPrimary(G4int i) const; - inline void SetNext(HepRef(G4PPrimaryVertex) nv) - { - if(nextVertex == 0) - { nextVertex = nv; } - else - { nextVertex->SetNext(nv); } - } - inline HepRef(G4PPrimaryVertex) GetNext() const - { return nextVertex; } - // Set and Get methods to navigate thru the vertex chain. - -}; - -#endif - diff --git a/source/persistency/events/include/G4PersistentEventMan.hh b/source/persistency/events/include/G4PersistentEventMan.hh deleted file mode 100644 index 83adfae883..0000000000 --- a/source/persistency/events/include/G4PersistentEventMan.hh +++ /dev/null @@ -1,95 +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: G4PersistentEventMan.hh,v 1.13 2001/07/11 10:02:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// A Utility class to be used by G4PersistencyManager. -// Average users do not need to use this class. -// -// This class is not persistent-capable. -// - -// Member functions: -// ================= -// G4bool Store(HepDbApplication* dbApp, -// const G4Event* anEvent); -// Store anEvent and associated objects into database. -// G4bool Retrieve(HepDbApplication* dbApp, -// G4Event*& anEvent); -// Retrieve anEvent and associated objects from database. -// -// History: -// 98.10.30 Y.Morita Splited from G4PersistencyManager - -#ifndef G4PERSISTENTEVENTMAN_HH -#define G4PERSISTENTEVENTMAN_HH 1 - -#include "globals.hh" -#include "HepODBMS/odbms/HepODBMS.h" - -#include "G4VPersistentSubMan.hh" -#include "G4VPersistentSubDbMan.hh" - -#include "G4PEvent.hh" - -class HepDbApplication; -class G4Event; -class G4PersistentHitMan; -class G4PersistentDigitMan; - -class G4PersistentEventMan - : public G4VPersistentSubMan, public G4VPersistentSubDbMan -{ - friend class G4PersistencyManager; - - private: - // to be used by G4PersistencyManager only - G4PersistentEventMan(); - G4PersistentEventMan( G4PersistentHitMan* aPHCMan, - G4PersistentDigitMan* aPDCMan ); - ~G4PersistentEventMan(); - - private: - G4PersistentHitMan* f_PHCMan; - G4PersistentDigitMan* f_PDCMan; - G4int f_currentEventID; - HepRef(G4PEvent) f_currentPEvent; - - public: // With description - inline G4int CurrentEventID() - { return f_currentEventID; } - // Returns the current event id - - private: - G4bool Store( HepDbApplication* dbApp, - const G4Event* anEvent ); - G4bool Retrieve( HepDbApplication* dbApp, - G4Event*& anEvent ); - -}; - -#endif - diff --git a/source/persistency/events/src/G4PEvent.cc b/source/persistency/events/src/G4PEvent.cc deleted file mode 100644 index 19523d6a40..0000000000 --- a/source/persistency/events/src/G4PEvent.cc +++ /dev/null @@ -1,131 +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: G4PEvent.cc,v 1.13 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// G4PEvent - -#include "G4PEvent.hh" - -#include "G4Event.hh" - -G4PEvent::G4PEvent() -:eventID(0), - thePrimaryVertex(0),numberOfPrimaryVertex(0),HC(0),DC(0) -{;} - -G4PEvent::G4PEvent(const G4Event *evt) -:eventID(0), - thePrimaryVertex(0),numberOfPrimaryVertex(0),HC(0),DC(0) -{ - InitPEvent(evt, 0, 0); -} - -G4PEvent::G4PEvent(const G4Event *evt, - HepRef(G4PHCofThisEvent) pHC, - HepRef(G4PDCofThisEvent) pDC) -:eventID(0), - thePrimaryVertex(0),numberOfPrimaryVertex(0),HC(0),DC(0) -{ - InitPEvent(evt, pHC, pDC); -} - -void G4PEvent::InitPEvent(const G4Event *evt, - HepRef(G4PHCofThisEvent) pHC, - HepRef(G4PDCofThisEvent) pDC) -{ - eventID = evt->GetEventID(); - - const G4PrimaryVertex* PV = evt->GetPrimaryVertex(); - if(PV) thePrimaryVertex = new(ooThis()) G4PPrimaryVertex(PV); - numberOfPrimaryVertex = evt->GetNumberOfPrimaryVertex(); - - if(pHC!=0) HC = pHC; - - if(pDC!=0) DC = pDC; - -// const G4TrajectoryContainer* TC = evt->GetTrajectoryContainer(); -// if(TC) trajectoryContainer = new G4PTrajectoryContainer(TC); - -} - -G4PEvent::~G4PEvent() -{ - if(thePrimaryVertex != 0) - { - G4PPrimaryVertex* aPPV = (HepRef(G4PPrimaryVertex)) thePrimaryVertex; - HepDelete(aPPV); - } - - if(HC != 0) - { - G4PHCofThisEvent* aHC = (HepRef(G4PHCofThisEvent)) HC; - HepDelete(aHC); - } - - if(DC != 0) - { - G4PDCofThisEvent* aDC = (HepRef(G4PDCofThisEvent)) DC; - HepDelete(aDC); - } - -// if(trajectoryContainer) -// HepDelete(trajectoryContainer); -} - -G4Event* G4PEvent::MakeTransientObject() -{ - G4Event* anEvt = new G4Event(eventID); - - if(thePrimaryVertex != 0) - { - G4PrimaryVertex* aPV = thePrimaryVertex->MakeTransientObject(); - for( G4int i = 0; iAddPrimaryVertex(aPV); - aPV = aPV->GetNext(); - } - } - } - - // Associate persistent Hits Collctions and Digits Collections - // to transient G4Event ... this requires an introduction of - // G4VHCofThisEvent and G4VDCofThisEvent in G4Event - // (will be implemented in next release) - // if(HC != 0) - // anEvt->SetHCofThisEvent( HC ); - // if(DC != 0) - // anEvt->SetDCofThisEvent( DC ); - - return anEvt; -} - -void G4PEvent::SetEventID(const G4Event *evt) -{ - eventID = evt->GetEventID(); -} - diff --git a/source/persistency/events/src/G4PPrimaryParticle.cc b/source/persistency/events/src/G4PPrimaryParticle.cc deleted file mode 100644 index ea89d63895..0000000000 --- a/source/persistency/events/src/G4PPrimaryParticle.cc +++ /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: G4PPrimaryParticle.cc,v 1.3 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "G4PPrimaryParticle.hh" - -#include "G4PrimaryParticle.hh" - -G4PPrimaryParticle::G4PPrimaryParticle(G4PrimaryParticle* aParticle) -{ - PDGcode = aParticle->GetPDGcode(); - - G4ParticleDefinition* ag4code = aParticle->GetG4code(); - // if( ag4code != 0 ) - // { ...will look up G4PParticleDefinition and set the G4code...; } - - Px = aParticle->GetPx(); - Py = aParticle->GetPy(); - Pz = aParticle->GetPz(); - - G4PrimaryParticle* aNext = aParticle->GetNext(); - if( aNext != 0 ) - { nextParticle = new(ooThis()) G4PPrimaryParticle( aNext ); } - - G4PrimaryParticle* aDaughter = aParticle->GetDaughter(); - if( aDaughter != 0 ) - { daughterParticle = new(ooThis()) G4PPrimaryParticle( aDaughter ); } - - trackID = aParticle->GetTrackID(); - mass = aParticle->GetMass(); - polX = aParticle->GetPolX(); - polY = aParticle->GetPolY(); - polZ = aParticle->GetPolZ(); -} - -G4PPrimaryParticle::~G4PPrimaryParticle() -{ - if(nextParticle != 0) - { HepDelete(nextParticle); } - if(daughterParticle != 0) - { HepDelete(daughterParticle); } -} - -G4PrimaryParticle* G4PPrimaryParticle::MakeTransientObject() -{ - G4PrimaryParticle* aParticle = new G4PrimaryParticle(PDGcode, Px, Py, Pz); - - // aParticle->SetG4Code(...will lookup G4ParticleDefinition and set it...;) - - if(nextParticle != 0) - { aParticle->SetNext( nextParticle->MakeTransientObject() ); } - if(daughterParticle != 0) - { aParticle->SetDaughter( daughterParticle->MakeTransientObject() ); } - - aParticle->SetTrackID( trackID ); - aParticle->SetMass( mass ); - aParticle->SetPolarization( polX, polY, polZ ); - - return aParticle; -} - diff --git a/source/persistency/events/src/G4PPrimaryVertex.cc b/source/persistency/events/src/G4PPrimaryVertex.cc deleted file mode 100644 index 23de78c94f..0000000000 --- a/source/persistency/events/src/G4PPrimaryVertex.cc +++ /dev/null @@ -1,128 +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: G4PPrimaryVertex.cc,v 1.9 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "G4PPrimaryVertex.hh" -#include -#include "G4ios.hh" - -#include "G4PrimaryVertex.hh" -#include "G4PPrimaryParticle.hh" - -G4PPrimaryVertex::G4PPrimaryVertex() -:X0(0.),Y0(0.),Z0(0.),T0(0.),numberOfParticle(0),nextVertex(0) -// ,theParticle(0) -{;} - -G4PPrimaryVertex::G4PPrimaryVertex(const G4PrimaryVertex* vertex) -{ - X0 = vertex->GetX0(); - Y0 = vertex->GetY0(); - Z0 = vertex->GetZ0(); - T0 = vertex->GetT0(); - numberOfParticle = vertex->GetNumberOfParticle(); - - theParticle = - new(ooThis()) G4PPrimaryParticle( vertex->GetPrimary(0) ); - - HepRef(G4PPrimaryParticle) particle = theParticle; - for (G4int i=0; iGetNext(); - } - theTail = particle; - - const G4PrimaryVertex* nextVX = vertex->GetNext(); - if(nextVX) - { nextVertex = new(ooThis()) G4PPrimaryVertex(nextVX); } - else - { nextVertex = 0; } -} - -G4PPrimaryVertex::~G4PPrimaryVertex() -{ - if(theParticle != 0) - { - G4PPrimaryParticle* pp = (HepRef(G4PPrimaryParticle)) theParticle; - HepDelete(pp); - } - { HepDelete(theParticle); } - - if(theTail != 0) - { - G4PPrimaryParticle* pt = (HepRef(G4PPrimaryParticle)) theTail; - HepDelete(pt); - } - { HepDelete(theParticle); } - - if(nextVertex != 0) - { - G4PPrimaryVertex* nv = (HepRef(G4PPrimaryVertex)) nextVertex; - HepDelete(nv); - } -} - -G4PrimaryVertex* G4PPrimaryVertex::MakeTransientObject() -{ - G4PrimaryVertex* aPV = new G4PrimaryVertex(X0,Y0,Z0,T0); - - if(theParticle != 0) - { - G4PrimaryParticle* particle = theParticle->MakeTransientObject(); - - for( G4int i = 0; iSetPrimary( particle ); - particle = particle->GetNext(); - } - } - - if( nextVertex != 0 ) - aPV->SetNext( nextVertex->MakeTransientObject() ); - - return aPV; -} - -HepRef(G4PPrimaryParticle) G4PPrimaryVertex::GetPrimary(G4int i=0) const -{ - if( i == 0 ) - { return theParticle; } - else if( i > 0 && i < numberOfParticle ) - { - HepRef(G4PPrimaryParticle) particle = theParticle; - for( int j=0; jGetNext(); - } - return particle; - } - else - { return 0; } -} - diff --git a/source/persistency/events/src/G4PersistentEventMan.cc b/source/persistency/events/src/G4PersistentEventMan.cc deleted file mode 100644 index 8cc63a9643..0000000000 --- a/source/persistency/events/src/G4PersistentEventMan.cc +++ /dev/null @@ -1,119 +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: G4PersistentEventMan.cc,v 1.17 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PersistentEventMan -// -// Implementation for concrete G4PersistentEventMan. -// -// History: -// 98.01.08 Y.Morita Initial version -// 98.10.30 Y.Morita Splitted from G4PersistencyManager - -#include "G4PersistentEventMan.hh" - -#include "G4PersistentHitMan.hh" -#include "G4PersistentDigitMan.hh" - -#include "HepODBMS/clustering/HepDbApplication.h" - -#include "G4PersistentHitMan.hh" -#include "G4PersistentDigitMan.hh" -#include "G4Event.hh" -#include "G4ios.hh" - -G4PersistentEventMan::G4PersistentEventMan() - : f_PHCMan(0), f_PDCMan(0), f_currentEventID(0) -{;} - -G4PersistentEventMan::G4PersistentEventMan( - G4PersistentHitMan* aPHCMan, - G4PersistentDigitMan* aPDCMan ) - : f_PHCMan(aPHCMan), f_PDCMan(aPDCMan) -{;} - -G4PersistentEventMan::~G4PersistentEventMan() -{;} - -//---------------------------------------------------------------------------- - -G4bool G4PersistentEventMan::Store( HepDbApplication* dbApp, - const G4Event* anEvent ) -{ - HepRef(G4PHCofThisEvent) aPHC = f_PHCMan->GetCurrentPHCofThisEvent(); - HepRef(G4PDCofThisEvent) aPDC = f_PDCMan->GetCurrentPDCofThisEvent(); - - // Create persistent event - f_currentPEvent = new(f_container) G4PEvent(anEvent, aPHC, aPDC); - - if( aPHC != 0 ) - { f_PHCMan->SetCurrentPHCofThisEvent(0); } - - if( aPDC != 0 ) - { f_PDCMan->SetCurrentPDCofThisEvent(0); } - - if( f_currentPEvent != 0 ) - { - f_currentEventID = anEvent->GetEventID(); - return true; - } - else - { - f_currentEventID = -1; - return false; - } -} - -G4bool G4PersistentEventMan::Retrieve( HepDbApplication* dbApp, - G4Event*& anEvent ) -{ - G4bool theStatus = false; - anEvent = 0; - - ooItr(G4PEvent) pevt_iterator; - - // set the new scan scope if the DB/Container has been changed by - // G4PersistencyManager - if( f_container != f_currentContainer ) - { - f_currentContainer = f_container; - pevt_iterator.scan(f_currentContainer); - } - - // Retrieve "next" G4PEvent in this scope and make a G4Event - if( pevt_iterator.next() ) - { - G4Event* anEvt = pevt_iterator->MakeTransientObject(); - if( anEvt != 0 ) - { - anEvent = anEvt; - theStatus = true; - f_currentEventID = anEvent->GetEventID(); - } - } - - return theStatus; -} - diff --git a/source/persistency/geometry/GNUmakefile b/source/persistency/geometry/GNUmakefile deleted file mode 100644 index 5b87786ff4..0000000000 --- a/source/persistency/geometry/GNUmakefile +++ /dev/null @@ -1,21 +0,0 @@ -# -------------------------------------------------------------- -# GNUmakefile for persistency geometry subcaterogy. -# Youhei Morita, 09/07/98. -# -------------------------------------------------------------- - -# order of SUBDIRS are important for creating header files. -# don't mess it up! -SUBDIRS = global solids/CSG solids/specific solids/Boolean management -SUBLIBS = G4pgeomGlobal G4pcsg G4pspecsolids G4pgeomBoolean G4pgeomn - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif -include $(G4INSTALL)/config/globlib.gmk - -# -------------------------------------------------------------- - -glob global: - @echo Error - gmake global is not supported at this directory. - exit 1 - diff --git a/source/persistency/geometry/global/GNUmakefile b/source/persistency/geometry/global/GNUmakefile deleted file mode 100644 index f96f8f8fe2..0000000000 --- a/source/persistency/geometry/global/GNUmakefile +++ /dev/null @@ -1,34 +0,0 @@ -# $Id: GNUmakefile,v 1.6 2001/03/15 22:58:54 morita Exp $ - -name := G4pgeomGlobal -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4TMPDIR) \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/geometry/management/include \ - -I$(G4INSTALL)/source/global/HEPGeometry/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit header file dependencies: - -#-------------------------------------------------------------------- - diff --git a/source/persistency/geometry/global/src/G4PAffineTransform.cc b/source/persistency/geometry/global/src/G4PAffineTransform.cc deleted file mode 100644 index d50f9ee425..0000000000 --- a/source/persistency/geometry/global/src/G4PAffineTransform.cc +++ /dev/null @@ -1,57 +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: G4PAffineTransform.cc,v 1.3 2001/07/11 10:02:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PAffineTransform -// -// History: -// 10.11.99 Y.Morita Initial version - -#include "G4PAffineTransform.hh" -#include "G4AffineTransform.hh" - -G4PAffineTransform::G4PAffineTransform( const G4AffineTransform aTrans ) -: rxx(aTrans[0]), rxy(aTrans[1]), rxz(aTrans[2]), - ryx(aTrans[4]), ryy(aTrans[5]), ryz(aTrans[6]), - rzx(aTrans[8]), rzy(aTrans[9]), rzz(aTrans[10]), - tx(aTrans[12]), ty(aTrans[13]), tz(aTrans[14]) -{;} - -G4PAffineTransform::~G4PAffineTransform() -{;} - -G4AffineTransform G4PAffineTransform::MakeTransientObject() -{ - G4RotationMatrix aRot; - G4AffineTransform* aTrans = new G4AffineTransform - ( aRot.rotateAxes(G4ThreeVector(rxx, ryx, rzx), - G4ThreeVector(rxy, ryy, rzy), - G4ThreeVector(rxz, ryz, rzz)), - G4ThreeVector( tx, ty, tz) ); - G4AffineTransform trans = *aTrans; - delete aTrans; - return trans; -} - diff --git a/source/persistency/geometry/management/GNUmakefile b/source/persistency/geometry/management/GNUmakefile deleted file mode 100644 index 80b8331de9..0000000000 --- a/source/persistency/geometry/management/GNUmakefile +++ /dev/null @@ -1,59 +0,0 @@ -# $Id: GNUmakefile,v 1.13 2001/03/15 22:58:54 morita Exp $ - -name := G4pgeomn -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomGlobal \ - -I$(G4TMP)/$(G4SYSTEM)/G4pcsg \ - -I$(G4TMP)/$(G4SYSTEM)/G4pspecsolids \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomBoolean \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/geometry/global/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/global/HEPRandom/include \ - -I$(G4INSTALL)/source/global/HEPGeometry/include \ - -I$(G4INSTALL)/source/geometry/management/include \ - -I$(G4INSTALL)/source/geometry/magneticfield/include \ - -I$(G4INSTALL)/source/geometry/volumes/include \ - -I$(G4INSTALL)/source/geometry/solids/CSG/include \ - -I$(G4INSTALL)/source/geometry/solids/Boolean/include \ - -I$(G4INSTALL)/source/geometry/solids/specific/include \ - -I$(G4INSTALL)/source/materials/include \ - -I$(G4INSTALL)/source/graphics_reps/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit header file dependencies: - -$(G4SCHEMA_HEADER_DIR)/G4PGeometryObjectMap.hh: \ - $(G4SCHEMA_HEADER_DIR)/G4PVPhysicalVolume.hh \ - $(G4SCHEMA_HEADER_DIR)/G4PLogicalVolume.hh -$(G4SCHEMA_HEADER_DIR)/G4PPVParameterised.hh: \ - $(G4SCHEMA_HEADER_DIR)/G4PPVReplica.hh -$(G4SCHEMA_HEADER_DIR)/G4PPVReplica.hh: \ - $(G4SCHEMA_HEADER_DIR)/G4PVPhysicalVolume.hh -$(G4SCHEMA_HEADER_DIR)/G4PPVPlacement.hh: \ - $(G4SCHEMA_HEADER_DIR)/G4PVPhysicalVolume.hh -$(G4SCHEMA_HEADER_DIR)/G4PLogicalVolume.hh: \ - $(G4SCHEMA_HEADER_DIR)/G4PVPhysicalVolume.hh -#-------------------------------------------------------------------- - diff --git a/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl b/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl deleted file mode 100644 index 97116c67ec..0000000000 --- a/source/persistency/geometry/management/include/G4PGeometryObjectMap.ddl +++ /dev/null @@ -1,165 +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: G4PGeometryObjectMap.ddl,v 1.9 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// class description: -// -// This is a class which is responsible for keeping track of the -// persistent geometry object in storing and retrieving geometry. -// This class inherits HepPersObj and is persistent-capable. -// - -// Note: -// ===== -// This class contains pointers of some transient classes. -// As a result, ooddlx compiler will issue warnings as follows. -// The value of the pointers are used only in transient case -// in this class, and you can safely ignore these warnings. -// ---- -// "include/G4PGeometryObjectMap.ddl", line 136: warning: persistent-capable -// class member type is pointer -// G4VPhysVolRefArray* transPhysVolPtrs; -// ^ -// ---- -// -// History: -// 98.06.20 Y.Morita Initial version - -#ifndef G4PGeometryObjectMap_h -#define G4PGeometryObjectMap_h 1 - -#include "G4Pglobals.hh" - -#include "g4std/vector" - -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4VSolid.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" -#include "HepODBMS/odbms/HepODBMS.h" - -class G4PVPhysicalVolume; -#pragma ooclassref G4PVPhysicalVolume "G4PVPhysicalVolume_ref.hh" -class G4PLogicalVolume; -#pragma ooclassref G4PLogicalVolume "G4PLogicalVolume_ref.hh" -class G4PVSolid; -#pragma ooclassref G4PVSolid "G4PVSolid_ref.hh" - -typedef G4std::vector G4LogVolRefArray; -typedef G4std::vector G4VPhysVolRefArray; -typedef G4std::vector G4VSolidRefArray; - -typedef G4std::vector::iterator G4LogVolRefArrayItr; -typedef G4std::vector::iterator G4VPhysVolRefArrayItr; -typedef G4std::vector::iterator G4VSolidRefArrayItr; - -typedef d_Varray< d_Ref > G4PVPhysVolRefVArray; -typedef d_Varray< d_Ref > G4PLogVolRefVArray; -typedef d_Varray< d_Ref > G4PVSolidRefVArray; - -class G4PGeometryObjectMap - : public HepPersObj -{ - public: - G4PGeometryObjectMap(); - public: // with description - G4PGeometryObjectMap( const G4String theGeometryName ); - ~G4PGeometryObjectMap(); - // The constructor and the destructor. - - public: // with description - HepRef(G4PVPhysicalVolume) LookUp( G4VPhysicalVolume* aPhysVol ); - G4VPhysicalVolume* LookUp( HepRef(G4PVPhysicalVolume) aPhysVol ); - HepRef(G4PLogicalVolume) LookUp( G4LogicalVolume* aLogVol); - G4LogicalVolume* LookUp( HepRef(G4PLogicalVolume) aLogVol); - HepRef(G4PVSolid) LookUp( G4VSolid* aSolid); - G4VSolid* LookUp( HepRef(G4PVSolid) persSolid); - // Method LookUp() will check if the pair of transient/persistent - // geometry objects is already registered in the geometry map. - // It returns the pointer of the pairing object if the pair exists. - - public: // with description - void Add( G4VPhysicalVolume* aPhysVol, - HepRef(G4PVPhysicalVolume) persPhysVol ); - void Add( HepRef(G4PVPhysicalVolume) persPhysVol, - G4VPhysicalVolume* aPhysVol ); - void Add( G4LogicalVolume* aLogVol, - HepRef(G4PLogicalVolume) persLogVol ); - void Add( HepRef(G4PLogicalVolume) persLogVol, - G4LogicalVolume* aLogVol ); - void Add( G4VSolid* aSolid, - HepRef(G4PVSolid) persSolid ); - void Add( HepRef(G4PVSolid) persSolid, - G4VSolid* aSolid ); - // Method Add() will register the transient and persistent geometry - // objects into the geometry map. - - public: // with description - inline void SetWorldVolume( const HepRef(G4PVPhysicalVolume) aWorld ) - { thePersistentWorldVolume = aWorld; } - inline HepRef(G4PVPhysicalVolume) GetWorldVolume() - { return thePersistentWorldVolume; } - // Set and Get methods for setting and getting a smart pointer - // for the persistent world volume of the geometry. - - public: // with description - inline G4int GetNoPhysVol() const { return noPhysVol; } - inline G4int GetNoLogVol() const { return noLogVol; } - inline G4int GetNoSolids() const { return noSolids; } - // returns the number of the registered transient/persistent pairs - // in the geometry map. - - public: // with description - G4VSolid* GetSolid(G4int n); - HepRef(G4PVSolid) GetPSolid(G4int n); - // returns the pointer of n-th transient/persistent solid. - - public: - void InitTransientMap(); - - private: - // World Volume of this Geometry object tree - d_Ref thePersistentWorldVolume; - - // Physics Volume Pointer Array - G4Pint noPhysVol; - G4VPhysVolRefArray* transPhysVolPtrs; - G4PVPhysVolRefVArray persPhysVolPtrs; - - // Logical Volume Pointer Array - G4Pint noLogVol; - G4LogVolRefArray* transLogVolPtrs; - G4PLogVolRefVArray persLogVolPtrs; - - // Solid Pointer Array - G4Pint noSolids; - G4VSolidRefArray* transSolidPtrs; - G4PVSolidRefVArray persSolidPtrs; - -}; - -#endif diff --git a/source/persistency/geometry/management/include/G4PLogicalVolume.ddl b/source/persistency/geometry/management/include/G4PLogicalVolume.ddl deleted file mode 100644 index 554299813d..0000000000 --- a/source/persistency/geometry/management/include/G4PLogicalVolume.ddl +++ /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: G4PLogicalVolume.ddl,v 1.11 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Persistent version of the class G4LogicalVolume. - -#ifndef G4PLOGICALVOLUME_DDL -#define G4PLOGICALVOLUME_DDL 1 - -#include "G4Pglobals.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" -#include "G4VMaterialMap.hh" -#include "HepODBMS/odbms/HepODBMS.h" - -#include "G4PVSolid.hh" - -// Forward declarations -class G4VPhysicalVolume; -class G4LogicalVolume; -class G4VSolid; - -#include "G4PVPhysicalVolume.hh" - -typedef d_Varray< d_Ref > G4PVPhysVolRefVArray; - - -class G4PLogicalVolume: public HepPersObj -{ - public: // With description - G4PLogicalVolume( const G4LogicalVolume* aLogicalVolume, - HepRef(G4PVSolid) persSolid); - ~G4PLogicalVolume(); - // Constructor and Destructor - - G4LogicalVolume* MakeTransientObject(G4VSolid* aSolid, - G4Material* aMaterial); - // Creates a transient G4LogicalVolume object. - - HepRef(G4PVSolid) GetSolid(); - void SetSolid( HepRef(G4PVSolid) pSolid ); - // Get or set the pointer of persistent solid object. - - public: // With description - G4int GetNoDaughters() const; - HepRef(G4PVPhysicalVolume) GetDaughter(const G4int i) const; - void AddDaughter(HepRef(G4PVPhysicalVolume) p); - G4bool IsDaughter(const HepRef(G4PVPhysicalVolume) p) const; - void RemoveDaughter(const HepRef(G4PVPhysicalVolume) p); - // Methods to handle association of persistent physical volume. - - private: - G4PVPhysVolRefVArray fDaughters; -// G4MagneticField* fMagneticField; -// G4Material* fMaterial; - G4PString fMaterialName; - G4PString fName; -// G4VSensitiveDetector *fSensitiveDetector; - d_Ref fSolid; -// G4UserLimits* fUserLimits; -// G4SmartVoxelHeader* fVoxel; -// const G4VisAttributes* fVisAttributes; -// G4FastSimulationManager* fFastSimulationManager; -// G4bool fIsEnvelope; - - G4Pint NoOfDaughters; - - public: // With description - inline void SetMaterialName(G4String aName) - { fMaterialName = aName; } - inline G4String GetMaterialName() - { return (G4String) fMaterialName; } - // Set and Get methods for the associated material name. - -}; - -#endif diff --git a/source/persistency/geometry/management/include/G4PPVPlacement.ddl b/source/persistency/geometry/management/include/G4PPVPlacement.ddl deleted file mode 100644 index 85554701a1..0000000000 --- a/source/persistency/geometry/management/include/G4PPVPlacement.ddl +++ /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: G4PPVPlacement.ddl,v 1.6 2001/07/11 10:02:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Persistent version of G4PVPlacement. - -#ifndef G4PPVPLACEMENT_DDL -#define G4PPVPLACEMENT_DDL 1 - -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -class G4VPhysicalVolume; -class G4LogicalVolume; -class G4PLogicalVolume; - -#include "G4PVPhysicalVolume.hh" - -class G4PPVPlacement : public G4PVPhysicalVolume -{ -public: // With description - G4PPVPlacement( G4VPhysicalVolume *PhysVol, - HepRef(G4PLogicalVolume) persLogVol); - ~G4PPVPlacement(); - // Constructor and Destructor - - G4VPhysicalVolume* MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother ); - // Make a transient G4PVPlacement object. - - virtual G4bool IsMany() const; - virtual G4int GetCopyNo() const; - // Returns the multiplicity of the volume. - -protected: - virtual void SetCopyNo(G4int CopyNo); - -private: - G4bool fmany; // flag for booleans -// G4bool fallocatedRotM; // flag for allocation of Rotation Matrix - G4Pint fcopyNo; // for identification -}; - -#endif diff --git a/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl b/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl deleted file mode 100644 index f81acfb294..0000000000 --- a/source/persistency/geometry/management/include/G4PVPhysicalVolume.ddl +++ /dev/null @@ -1,106 +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: G4PVPhysicalVolume.ddl,v 1.7 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Persistent version of G4VPhysicalVolume. - -#ifndef G4PVPHYSICALVOLUME_DDL -#define G4PVPHYSICALVOLUME_DDL 1 - -#include "G4Pglobals.hh" -#include "geomdefs.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -class G4VPhysicalVolume; -class G4LogicalVolume; - -//class G4VPVParameterisation; - -// forward declaration and #pragma ooclassref is necessary in solving -// the circular dependency between G4PLogicalVolume and G4PVPhysicalVolume -class G4PLogicalVolume; -#pragma ooclassref G4PLogicalVolume "G4PLogicalVolume_ref.hh" - -class G4PVPhysicalVolume: public HepPersObj -{ -public: // With description - G4PVPhysicalVolume(); - G4PVPhysicalVolume( const G4VPhysicalVolume *PhysVol, - const HepRef(G4PLogicalVolume) persLogVol); - ~G4PVPhysicalVolume(); - // Constructor and Destructor - - void SetMother(const HepRef(G4PVPhysicalVolume) persMother); - // Set the persistent mother volume. - - G4VPhysicalVolume* MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother ); - // Creates a transient G4VPhysicalVolume object. - - G4PString GetName(); - void SetName(const G4PString aName); - // Get and set the name of the volume. - - G4RotationMatrix* GetRotation(); - void SetRotation(const G4RotationMatrix* aRot); - // Get and set the rotation matrix. - - G4ThreeVector& GetTranslation(); - void SetTranslation(G4ThreeVector atrans); - // Get and set the translation vector. - - HepRef(G4PLogicalVolume) GetLogicalVolume(); - // Returns the pointer to the persistent logical volume. - - G4bool operator == (const G4PVPhysicalVolume& p) const; - // Define equality by equal addresses only. - - virtual G4bool IsMany() const = 0; - virtual G4int GetCopyNo() const = 0; - virtual void SetCopyNo(G4int CopyNo) = 0; - // Functions required of subclasses - -protected: - d_Varray frot; - d_Varray ftrans; - - G4ThreeVector ftransvector; - - d_Ref flogical; - G4PString fname; // name of the volume - d_Ref fmother; // The current moher volume - -}; - -#endif - diff --git a/source/persistency/geometry/management/include/G4PersistentGeomMan.hh b/source/persistency/geometry/management/include/G4PersistentGeomMan.hh deleted file mode 100644 index 707beb7754..0000000000 --- a/source/persistency/geometry/management/include/G4PersistentGeomMan.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: G4PersistentGeomMan.hh,v 1.11 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// A Utility class to be used by G4PersistencyManager. -// Average users do not need to use this class. -// -// This class is not persistent-capable. -// - -// History: -// 98.10.30 Y.Morita Splited from G4PersistencyManager - -#ifndef G4PERSISTENTGEOMMAN_H -#define G4PERSISTENTGEOMMAN_H 1 - -#include "globals.hh" -#include "geomdefs.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -#include "G4VPersistentSubMan.hh" -#include "G4VPersistentSubDbMan.hh" -#include "G4PGeometryObjectMap.hh" -#include "G4VMaterialMap.hh" - -#define G4_PHYS_VOLUME_DEPTH_MAX 1000000 - -// forward declarations -class HepDbApplication; -class G4VSolid; -class G4VPhysicalVolume; -class G4LogicalVolume; -class G4PVPhysicalVolume; -class G4PLogicalVolume; -class G4PVSolid; - - -class G4PersistentGeomMan - : public G4VPersistentSubMan, public G4VPersistentSubDbMan -{ - friend class G4PersistencyManager; - friend class G4TransactionManager; - - private: - // to be used by G4PersistencyManager only - G4PersistentGeomMan(); - ~G4PersistentGeomMan(); - - private: - HepRef(G4PGeometryObjectMap) f_GeomMap; - G4VMaterialMap* f_MaterialMap; - - private: - // interface with G4PersistencyManager - G4bool Store( HepDbApplication* dbApp, - const G4VPhysicalVolume* aWorld ); - G4bool Retrieve( HepDbApplication* dbApp, - G4VPhysicalVolume*& aWorld ); - - private: - // Characterise `type' of volume - normal/replicated/parameterised - EVolume VolumeType(const G4VPhysicalVolume *pVol) const; - - HepRef(G4PVPhysicalVolume) MakePersistentObject ( - G4VPhysicalVolume* aPhysVol ); - HepRef(G4PLogicalVolume) MakePersistentObject ( - G4LogicalVolume* aLogVol ); - HepRef(G4PVSolid) MakePersistentObject ( G4VSolid* aSolid ); - - G4VPhysicalVolume* MakeTransientObject ( - HepRef(G4PVPhysicalVolume) aPhysVol, - HepRef(G4PVPhysicalVolume) theMotherVol ); - G4LogicalVolume* MakeTransientObject ( - HepRef(G4PLogicalVolume) aLogVol, - HepRef(G4PVPhysicalVolume) theMotherVol ); - G4VSolid* MakeTransientObject ( HepRef(G4PVSolid) aSolid ); - - private: - G4int f_nRecursive; - G4int f_tRecursive; - G4String f_GeomMapScopeName; -}; - -inline EVolume G4PersistentGeomMan::VolumeType(const G4VPhysicalVolume *pVol) const -{ - EVolume type; - EAxis axis; - G4int nReplicas; - G4double width,offset; - G4bool consuming; - if (pVol->IsReplicated()) - { - pVol->GetReplicationData(axis,nReplicas,width,offset,consuming); - type=(consuming) ? kReplica : kParameterised; - } - else - { - type=kNormal; - } - return type; -} - -#endif - diff --git a/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc b/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc deleted file mode 100644 index 560cb0adf6..0000000000 --- a/source/persistency/geometry/management/src/G4PGeometryObjectMap.cc +++ /dev/null @@ -1,337 +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: G4PGeometryObjectMap.cc,v 1.9 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PGeometryObjectMap -// -// Implementation of a class responsible for keeping track of -// the geometry object map. -// -// History: -// 98.06.20 Y.Morita Initial version - -#include -#include "G4PGeometryObjectMap.hh" - -// forward declarations -#include "G4PVPhysicalVolume.hh" -#include "G4PLogicalVolume.hh" -#include "G4PVSolid.hh" - -G4PGeometryObjectMap::G4PGeometryObjectMap() - : noPhysVol(0),noLogVol(0),noSolids(0) -{ - transPhysVolPtrs = new G4VPhysVolRefArray; - transLogVolPtrs = new G4LogVolRefArray; - transSolidPtrs = new G4VSolidRefArray; -} - -G4PGeometryObjectMap::G4PGeometryObjectMap( const G4String theGeometryName ) - : noPhysVol(0),noLogVol(0),noSolids(0) -{ - transPhysVolPtrs = new G4VPhysVolRefArray; - transLogVolPtrs = new G4LogVolRefArray; - transSolidPtrs = new G4VSolidRefArray; -} - -G4PGeometryObjectMap::~G4PGeometryObjectMap() -{ - delete transPhysVolPtrs; - delete transLogVolPtrs; - delete transSolidPtrs; -} - -// -------- LookUp() and Add() functions for each class -------- // - -HepRef(G4PVPhysicalVolume) G4PGeometryObjectMap::LookUp( - G4VPhysicalVolume* inGeomObj ) -{ - assert(inGeomObj != 0); - for(G4int i=0;ipush_back(inGeomObj); - persPhysVolPtrs.insert_element(outGeomObj); - } -} - -// ------------------------------------------------------------- // - -G4VPhysicalVolume* G4PGeometryObjectMap::LookUp( - HepRef(G4PVPhysicalVolume) inGeomObj ) -{ - assert(inGeomObj != 0); - for(G4int i=0;ipush_back(inGeomObj); - persLogVolPtrs.insert_element(outGeomObj); - } -} - -// ------------------------------------------------------------- // - -G4LogicalVolume* G4PGeometryObjectMap::LookUp( - HepRef(G4PLogicalVolume) inGeomObj ) -{ - assert(inGeomObj != 0); - for(G4int i=0;i= 0 && i < noSolids) - { - return (*transSolidPtrs)[i]; - } - else - { - return 0; - } -} - -HepRef(G4PVSolid) G4PGeometryObjectMap::GetPSolid(G4int i) -{ - if( i >= 0 && i < noSolids) - { - return persSolidPtrs[i]; - } - else - { - return 0; - } -} - -void G4PGeometryObjectMap::InitTransientMap() -{ - transPhysVolPtrs->resize(noPhysVol); - transLogVolPtrs->resize(noLogVol); - transSolidPtrs->resize(noSolids); - -#ifdef G4PERSISTENCY_DEBUG - cout << "G4PGeometryObjectMap::InitTransientMap()" << G4endl; - cout << " -- noPhysVol: " << noPhysVol << G4endl; - cout << " -- transPhysVolPtrs.length: " << transPhysVolPtrs->size() << G4endl; - cout << " -- transLogVolPtrs.length: " << transLogVolPtrs->size() << G4endl; - cout << " -- transSolidPtrs.length: " << transSolidPtrs->size() << G4endl; -#endif - - G4int i; - for(i=0;ipush_back(0); - } - for(i=0;ipush_back(0); - } - for(i=0;ipush_back(0); - } - -} diff --git a/source/persistency/geometry/management/src/G4PLogicalVolume.cc b/source/persistency/geometry/management/src/G4PLogicalVolume.cc deleted file mode 100644 index ac83ce18a8..0000000000 --- a/source/persistency/geometry/management/src/G4PLogicalVolume.cc +++ /dev/null @@ -1,164 +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: G4PLogicalVolume.cc,v 1.7 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// Takashi.Sasaki@kek.jp - -#include "G4VSolid.hh" -#include "G4PVSolid.hh" -#include "G4LogicalVolume.hh" -#include "G4PLogicalVolume.hh" -#include "G4PVPhysicalVolume.hh" - -#include "G4Material.hh" - -#include "HepODBMS/clustering/HepClustering.h" - - -G4PLogicalVolume::G4PLogicalVolume( - const G4LogicalVolume* aLogicalVolume, - HepRef(G4PVSolid) persSolid) - : NoOfDaughters(0) -{ - // Construct persistent logical volume based on the information of - // the transient logical volume aLogicalVolume. - // It assumes a persistent persSolid has already been created. - // Note that daughter volumes will be set by G4PersistencyManager. - - fName = aLogicalVolume->GetName(); - // *fSensitiveDetector = LogicalVolume->GetSensitiveDetector(); - fSolid = persSolid; - // *fUserLimits = LogicalVolume->GetUserLimits(); - // *fVoxel = LogicalVolume->GetVoxelHeader(); - // *fVisAttributes = LogivalVolume->GetVisAttributes(); - // *fFastSimulationManager = LogicalVolume->GetFastSimulationManager(); - // *fIsEnvelops = LogicalVolume->GetIsEnvelope(); - fMaterialName = aLogicalVolume->GetMaterial()->GetName(); - -} - -G4PLogicalVolume::~G4PLogicalVolume() -{ - // ~G4PLogicalVolume() deletes the persistent Logical Volume permanently - // from the database (as well as from the memory). - - // need to de-reference HepRef's in persistent Physics Volume here. - // .... - - HepRef(G4PLogicalVolume) aVol = ooThis(); - - HepDelete(aVol); -} - - -//#include "G4MagneticField.hh" -//#include "G4Material.hh" -//#include "G4VSensitiveDetector.hh" -//#include "G4VSolid.hh" -//#include "G4UserLimits.hh" -//#include "G4SmartVoxelHeader.hh" -//#include "G4VisAttributes.hh" -//#include "G4FastSimulationManager.hh" - -class G4MagneticField; -class G4Material; -class G4VSensitiveDetector; -class G4VSolid; -class G4UserLimits; -class G4SmartVoxelHeader; -class G4VisAttributes; -class G4FastSimulationManager; - -G4LogicalVolume* G4PLogicalVolume::MakeTransientObject( - G4VSolid* theSolid, - G4Material* theMaterial) -{ - // These are null poineters temporaly - G4SmartVoxelHeader* fVoxel = 0; - const G4VisAttributes* fVisAttributes = 0; - -// G4LogicalVolume(G4VSolid *pSolid, G4Material *pMaterial, -// const G4String& name, -// G4MagneticField *pField=0, -// G4VSensitiveDetector *pSDetector=0, -// G4UserLimits *pULimits=0); - - G4String name; - G4LogicalVolume* aLogicalVolume = new G4LogicalVolume( - theSolid, theMaterial, name=fName, 0, 0, 0); - - // if ( aLogicalVolume ) - // aLogicalVume->SetVisAttributes(*fVisAttributes); - - return aLogicalVolume; -} -////////////////////////// - -G4int G4PLogicalVolume::GetNoDaughters() const -{ -// return fDaughters.entries(); - return NoOfDaughters; -} - -HepRef(G4PVPhysicalVolume) G4PLogicalVolume::GetDaughter(const G4int i) const -{ - return fDaughters[i]; -} - -void G4PLogicalVolume::AddDaughter(HepRef(G4PVPhysicalVolume) p) -{ - fDaughters.insert_element(p); - NoOfDaughters++; -} - -G4bool G4PLogicalVolume::IsDaughter(const HepRef(G4PVPhysicalVolume) p) const -{ - for ( G4int i=0; iGetReplicationData(axis, nReplicas, width, offset, consuming); - faxis = axis; - fnReplicas = nReplicas; - fwidth = width; - foffset = offset; - fcopyNo = PhysVol->GetCopyNo(); -} - -G4PPVReplica::~G4PPVReplica() -{ -} - -G4VPhysicalVolume* G4PPVReplica::MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother) -{ - const G4String pName = (const char *) GetName(); - EAxis pAxis = faxis; - G4int nReplicas = fnReplicas; - G4double width = fwidth; - G4double offset = foffset; - - G4VPhysicalVolume* aPhysVol = new G4PVReplica( - pName, aLogical, aMother, pAxis, nReplicas, width, offset); - - return aPhysVol; -} - -G4bool G4PPVReplica::IsMany() const -{ - return false; -} - -G4int G4PPVReplica::GetCopyNo() const -{ - return fcopyNo; -} - -void G4PPVReplica::SetCopyNo(G4int newCopyNo) -{ - fcopyNo= newCopyNo; -} diff --git a/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc b/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc deleted file mode 100644 index 45cfb02f53..0000000000 --- a/source/persistency/geometry/management/src/G4PVPhysicalVolume.cc +++ /dev/null @@ -1,154 +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: G4PVPhysicalVolume.cc,v 1.5 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// Takashi.Sasaki@kek.jp - -#include "G4PVPhysicalVolume.hh" - -#include "globals.hh" - -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" - -#include "G4PVPlacement.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4PLogicalVolume.hh" - -G4PVPhysicalVolume::G4PVPhysicalVolume() -: flogical(0), fname(0), fmother(0) -{ - frot.resize(9); - ftrans.resize(3); -} - -G4PVPhysicalVolume::G4PVPhysicalVolume( - const G4VPhysicalVolume *PhysVol, - const HepRef(G4PLogicalVolume) persLogVol) -{ - const G4RotationMatrix* aRot = PhysVol->GetRotation(); - if ( aRot ) - SetRotation( PhysVol->GetRotation() ); - - const G4ThreeVector atrans = PhysVol->GetTranslation(); - SetTranslation( atrans ); - - flogical = persLogVol; - fname = PhysVol->GetName(); -// fmother = LookUp(PhysVol->GetMother()); -} - -G4PVPhysicalVolume::~G4PVPhysicalVolume() -{ -} - -void G4PVPhysicalVolume::SetMother(const HepRef(G4PVPhysicalVolume) persMother) -{ - fmother = persMother; -} - -G4VPhysicalVolume* G4PVPhysicalVolume::MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother ) -{ - G4RotationMatrix* pRot = GetRotation(); - G4ThreeVector tlate = GetTranslation(); - G4String pName; - - // Need to call concrete Phys Vol class according to the physics - // volume type. For now, a simple physical volume is assumed for - // quick solution. - - G4VPhysicalVolume* aPhysVol = new G4PVPlacement( - pRot, tlate, pName = fname, aLogical, 0, false, 0); - aPhysVol->SetMother(aMother); - - return aPhysVol; -} - -G4PString G4PVPhysicalVolume::GetName() -{ - return fname; -} - -void G4PVPhysicalVolume::SetName(const G4PString aName) -{ - fname = aName; -} - -HepRef(G4PLogicalVolume) G4PVPhysicalVolume::GetLogicalVolume() -{ - return flogical; -} - -G4RotationMatrix* G4PVPhysicalVolume::GetRotation() -{ - // create unit matrix with default constructor - G4RotationMatrix* aRot = new G4RotationMatrix(); - - // setup the transient rotation matrix - aRot->rotateAxes( Hep3Vector(frot[0],frot[3],frot[6]), - Hep3Vector(frot[1],frot[4],frot[7]), - Hep3Vector(frot[2],frot[5],frot[8]) ); - return aRot; -} - -G4ThreeVector& G4PVPhysicalVolume::GetTranslation() -{ - G4ThreeVector atrans(ftrans[0],ftrans[1],ftrans[2]); // local variable - ftransvector = G4ThreeVector(atrans); // cast by copy constructor - return ftransvector; -} - -void G4PVPhysicalVolume::SetRotation(const G4RotationMatrix* aRot) -{ - frot.resize(9); - - frot[0] = aRot->xx(); - frot[1] = aRot->xy(); - frot[2] = aRot->xz(); - frot[3] = aRot->yx(); - frot[4] = aRot->yy(); - frot[5] = aRot->yz(); - frot[6] = aRot->zx(); - frot[7] = aRot->zy(); - frot[8] = aRot->zz(); - - frot.update(); -} - -void G4PVPhysicalVolume::SetTranslation(G4ThreeVector atrans) -{ - ftrans.resize(3); - - ftrans[0] = atrans.x(); - ftrans[1] = atrans.y(); - ftrans[2] = atrans.z(); - - ftrans.update(); -} - diff --git a/source/persistency/geometry/management/src/G4PersistentGeomMan.cc b/source/persistency/geometry/management/src/G4PersistentGeomMan.cc deleted file mode 100644 index 697675440c..0000000000 --- a/source/persistency/geometry/management/src/G4PersistentGeomMan.cc +++ /dev/null @@ -1,622 +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: G4PersistentGeomMan.cc,v 1.16 2001/07/11 10:02:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PersistentGeomMan -// -// Implementation for concrete G4PersistentGeomMan. -// -// History: -// 98.10.30 Y.Morita Splited from G4PersistencyManager - -#include -#include "G4PersistentGeomMan.hh" - -// include files for forward declarations -#include "HepODBMS/clustering/HepDbApplication.h" -#include "G4VSolid.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPhysicalVolume.hh" -#include "G4PLogicalVolume.hh" -#include "G4PVSolid.hh" -#include "G4PGeometryObjectMap.hh" - -// other used classes -#include "G4PBox.hh" -#include "G4PCons.hh" -#include "G4PPara.hh" -#include "G4PSphere.hh" -#include "G4PTorus.hh" -#include "G4PTrap.hh" -#include "G4PTrd.hh" -#include "G4PTubs.hh" - -//#include "G4PEllipticalTube.hh" -#include "G4PHype.hh" -//#include "G4PPolycone.hh" -//#include "G4PPolyhedra.hh" - -#include "G4PDisplacedSolid.hh" -#include "G4PIntersectionSolid.hh" -#include "G4PSubtractionSolid.hh" -#include "G4PUnionSolid.hh" - -#include "G4BooleanSolid.hh" -#include "G4DisplacedSolid.hh" - -#include "G4PPVPlacement.hh" -#include "G4PPVReplica.hh" -#include "G4PPVParameterised.hh" - -#include "G4ios.hh" - -G4PersistentGeomMan::G4PersistentGeomMan() - : f_GeomMap(0), f_GeomMapScopeName("Geant4 Geometry Object Map") -{;} - -G4PersistentGeomMan::~G4PersistentGeomMan() -{;} - -//---------------------------------------------------------------------------- - -G4bool G4PersistentGeomMan::Store( HepDbApplication* dbApp, - const G4VPhysicalVolume* theWorld) -{ - void* aWorld = (void*) theWorld; - - const G4String theGeometryName = "Geant4 geometry"; - - // clear the recursive call counter - f_nRecursive = 0; - f_tRecursive = 0; - - // ----------------------- Objectivity Feature ----------------------- // - // Look for the geometry object map in the database and create it - // if it does not exist - if ( ! f_GeomMap.lookupObj( f_DB, f_GeomMapScopeName, oocUpdate ) ) - { - - // Prepare lookup table for the geometry object tree - f_GeomMap = - new(f_container) G4PGeometryObjectMap( theGeometryName ); - - // Add ScopeName to f_GeomMap for future reference (*Objy feature) - if ( ! f_GeomMap.nameObj( f_DB, f_GeomMapScopeName ) ) - { - G4cerr << "G4PersistentGeomMan::Store" - << " -- error in naming the geometry object map: " - << f_GeomMapScopeName << G4endl; - return false; - } - - } - else - { - G4cerr << "G4PersistentGeomMan: Geometry alreday stored in the" - << "geometry database." << G4endl - << " Geometry not stored." << G4endl; - return false; - } - // ----------------------- Objectivity Feature ----------------------- // - - // make the persistent world volume object from "theWorld" - HepRef(G4PVPhysicalVolume) persWorld = - MakePersistentObject( (G4VPhysicalVolume*)aWorld ); - - if ( persWorld != 0 ) - { - // set the persistent World Volume to f_GeomMap - f_GeomMap->SetWorldVolume( persWorld ); - return true; - } - else - { - G4cerr << "G4PersistentGeomMan: Error in storing geometry." << G4endl; - return false; - } - -} - -G4bool G4PersistentGeomMan::Retrieve( HepDbApplication* dbApp, - G4VPhysicalVolume*& theWorld) -{ - theWorld = 0; - - G4VMaterialMap* f_Materialmap = G4VMaterialMap::GetMaterialMap(); - if(f_verboseLevel>0) - { - if(!f_MaterialMap) - G4cout << "G4PersistentGeomMan::Retrieve" - << " -- Material Map not provided by user code." << G4endl; - } - - // ----------------------- Objectivity Feature ----------------------- // - // Load the geometry object map from the database with read-only mode - if ( ! f_GeomMap.lookupObj( f_DB, f_GeomMapScopeName, oocRead ) ) - { - G4cerr << "G4PersistentGeomMan::Retrieve" - << " -- error in looking up the geometry object map: " - << f_GeomMapScopeName << G4endl; - return false; - } - // ----------------------- Objectivity Feature ----------------------- // - - if ( f_GeomMap == 0 ) - { - G4cerr << "G4PersistentGeomMan::Retrieve()" - << " -- error in searching the geometry object map: " - << f_GeomMapScopeName << G4endl; - return false; - } - - if(f_verboseLevel>2) - G4cout << "G4PersistentGeomMan::Retrieve()" - << " -- f_GeomMap is loaded." << G4endl; - - // initialize the transient part of the geometry object map - f_GeomMap->InitTransientMap(); - - if(f_verboseLevel>2) - G4cout << "G4PersistentGeomMan::Retrieve(G4VPhysicalVolume*)" - << " -- f_GeomMap is initialized." << G4endl; - - // loop through the number of solids in the database - G4int nSolids = f_GeomMap->GetNoSolids(); - for(G4int i=0;iGetPSolid(i); - - // make transient version of G4VSolid from the persistent solid - G4VSolid* theSolid = MakeTransientObject(persSolid); - } - - if(f_verboseLevel>2) - G4cout << "G4PersistentGeomMan::Retrieve(G4VPhysicalVolume*)" - << " -- Transient Solid is created for nSolids:" - << nSolids << G4endl; - - // Locate the persistent world physics volume - HepRef(G4PVPhysicalVolume) persWorld = f_GeomMap->GetWorldVolume(); - - if ( persWorld == 0 ) - { - G4cerr << "G4PersistentGeomMan::Retrieve" - << " -- geometry object map does not have world volume." - << G4endl; - return false; - } - - // start the recursive data member copy - // to create the transient geometry object tree - - HepRef(G4PVPhysicalVolume) persMother = 0; - theWorld = MakeTransientObject( persWorld, persMother ); - - if ( theWorld == 0 ) - { - G4cerr << "G4PersistentGeomMan::Retrieve" - << " -- transient world volume is empty." - << G4endl; - return false; - } - - return true; -} - -//---------------------------------------------------------------------------- -HepRef(G4PVPhysicalVolume) G4PersistentGeomMan::MakePersistentObject ( - G4VPhysicalVolume* thePhysVol ) -{ - // check the depth of the recursive call to this method - if ( ++f_nRecursive > G4_PHYS_VOLUME_DEPTH_MAX ) - { - G4cerr << "G4PersistentGeomMan::MakePersistentObject" << - " -- Physical Volume recursive depth reached to G4_PHYS_VOLUME_DEPTH_MAX." - << G4endl; - return 0; - } - - if( f_verboseLevel>2 && f_nRecursive % 1000 == 0 ) - G4cout << "G4PersistentGeomMan: " - << "Physical Volume recursive depth is " - << f_nRecursive << G4endl; - - // check if the persistent version of thePhysVol exists - HepRef(G4PVPhysicalVolume) persPhysVol = f_GeomMap->LookUp(thePhysVol); - if ( persPhysVol == 0 ) - { - // Get the Logical Volume in thePhysVol - G4LogicalVolume* theLogVol = thePhysVol->GetLogicalVolume(); - - // make the persistent logical volume object from "theLogVol" - HepRef(G4PLogicalVolume) persLogVol = - MakePersistentObject( theLogVol ); -#ifdef G4DEBUG - assert( persLogVol != 0 ); -#endif - - // Construct the persistent version of thePhysVol for each type of volume - switch (VolumeType(thePhysVol)) - { - case kNormal: - persPhysVol = new(f_container) - G4PPVPlacement( thePhysVol, persLogVol); - break; - case kReplica: - persPhysVol = new(f_container) - G4PPVReplica( thePhysVol, persLogVol); - break; - case kParameterised: - persPhysVol = new(f_container) - G4PPVReplica( thePhysVol, persLogVol); -// G4PPVParameterized( thePhysVol, persLogVol); - break; - } -#ifdef G4DEBUG - assert( persPhysVol != 0 ); -#endif - - // register persPhysVol to the geometry object lookup table - f_GeomMap->Add( thePhysVol, persPhysVol ); - - } // end of if f_GeomMap->LookUp(thePhysVol) - - return persPhysVol; -} - -HepRef(G4PLogicalVolume) G4PersistentGeomMan::MakePersistentObject ( - G4LogicalVolume* theLogVol ) - -{ - // check if the persistent version of theLogVol exists - HepRef(G4PLogicalVolume) persLogVol = f_GeomMap->LookUp(theLogVol); - if ( persLogVol == 0 ) - { - // get the solid of the transient logical volume - G4VSolid* theSolid = theLogVol->GetSolid(); - - // make the persistent solid object from "theSolid" - HepRef(G4PVSolid) persSolid = MakePersistentObject(theSolid); - - // Construct the persistent version of theLogVol - persLogVol = new(f_container) G4PLogicalVolume(theLogVol, persSolid); -#ifdef G4DEBUG - assert( persLogVol != 0 ); -#endif - - // register persLogVol to the geometry object lookup table - f_GeomMap->Add( theLogVol, persLogVol ); - - // loop through the daughter physical volumes in theLogVol - G4int nDaughters = theLogVol->GetNoDaughters(); - for(G4int i=0;iGetDaughter(i); - - // make the persistent physics volume object from "dPhysVol" - HepRef(G4PVPhysicalVolume) persDaughterPhysVol = - MakePersistentObject( dPhysVol ); - - // add persistent daughter volume to the persistent logical volume - if ( persDaughterPhysVol != 0 ) - persLogVol->AddDaughter( persDaughterPhysVol ); - - } // end of for(G4int i=0;iLookUp(theLogVol) - - return persLogVol; -} - -HepRef(G4PVSolid) G4PersistentGeomMan::MakePersistentObject ( - G4VSolid* theSolid ) -{ - // check if the persistent version of theSolid exists - HepRef(G4PVSolid) persSolid = f_GeomMap->LookUp(theSolid); - if ( persSolid == 0 ) - { - G4GeometryType theSolidType = theSolid->GetEntityType(); - - if(f_verboseLevel>3) - G4cout << "G4PersistentGeomMan::MakePersistentObject (G4VSolid) " - << "-- theSolidType is " << theSolidType << G4endl; - - // Construct persistent and concrete solid object - // according to the entity type of theSolid - - // Pure CSG - if ( theSolidType == "G4Box") - persSolid = new(f_container) G4PBox ( (G4Box*)theSolid ); - else if ( theSolidType == "G4Cons") - persSolid = new(f_container) G4PCons ( (G4Cons*)theSolid ); - else if ( theSolidType == "G4Para") - persSolid = new(f_container) G4PPara ( (G4Para*)theSolid ); - else if ( theSolidType == "G4Sphere") - persSolid = new(f_container) G4PSphere( (G4Sphere*)theSolid ); - else if ( theSolidType == "G4Torus") - persSolid = new(f_container) G4PTorus ( (G4Torus*)theSolid ); - else if ( theSolidType == "G4Trap") - persSolid = new(f_container) G4PTrap ( (G4Trap*)theSolid ); - else if ( theSolidType == "G4Trd") - persSolid = new(f_container) G4PTrd ( (G4Trd*)theSolid ); - else if ( theSolidType == "G4Tubs") - persSolid = new(f_container) G4PTubs ( (G4Tubs*)theSolid ); - - // Specific CSG - // else if ( theSolidType == "G4EllipticalTube") - // persSolid = new(f_container) G4PEllipticalTube - // ( (G4EllipticalTube*)theSolid ); - else if ( theSolidType == "G4Hype") - persSolid = new(f_container) G4PHype - ( (G4Hype*)theSolid ); - // else if ( theSolidType == "G4Polycone") - // persSolid = new(f_container) G4PPolycone - // ( (G4Polycone*)theSolid ); - // else if ( theSolidType == "G4Polyhedra") - // persSolid = new(f_container) G4PPolyhedra - // ( (G4Polyhedra*)theSolid ); - - // Boolian Solids - else if ( theSolidType == "G4UnionSolid" || - theSolidType == "G4SubtractionSolid" || - theSolidType == "G4IntersectionSolid" ) - { - // This is Boolean solid, so get the constituent solids - G4BooleanSolid* boolSolid = (G4BooleanSolid*) theSolid; - G4VSolid* aSolidA = boolSolid->GetConstituentSolid(0); - G4VSolid* aSolidB = boolSolid->GetConstituentSolid(1); -#ifdef G4DEBUG - assert(aSolidA!=0); - assert(aSolidB!=0); -#endif - HepRef(G4PVSolid) persSolidA = MakePersistentObject(aSolidA); - HepRef(G4PVSolid) persSolidB = MakePersistentObject(aSolidB); - - const G4String solidName = theSolid->GetName(); - - // Create persistent boolean solid according to its type - if ( theSolidType == "G4UnionSolid") - { - persSolid = new(f_container) - G4PUnionSolid( solidName, persSolidA, persSolidB); - } - else if ( theSolidType == "G4SubtractionSolid") - { - persSolid = new(f_container) - G4PSubtractionSolid( solidName, persSolidA, persSolidB); - } - else if ( theSolidType == "G4IntersectionSolid") - { - persSolid = new(f_container) - G4PIntersectionSolid( solidName, persSolidA, persSolidB); - } - - } - else if ( theSolidType == "G4DisplacedSolid") - { - // This is a displaced solid, so get the constituent solid and transform - G4DisplacedSolid* dispSolid = (G4DisplacedSolid*) theSolid; - G4VSolid* movedSolid = dispSolid->GetConstituentMovedSolid(); -#ifdef G4DEBUG - assert(movedSolid!=0); -#endif - HepRef(G4PVSolid) persMovedSolid = MakePersistentObject(movedSolid); - - HepRef(G4PAffineTransform) pTransform = new(f_container) - G4PAffineTransform( dispSolid->GetDirectTransform() ); - - persSolid = new(f_container) - G4PDisplacedSolid( persMovedSolid, pTransform ); - } -#ifdef G4DEBUG - else - { - G4cerr << " Warning (G4PersistentGeomMan): The solid type (" - << theSolidType << ") is not supported yet." << G4endl; - } -#endif - - // register persSolid to the geometry object lookup table - if ( persSolid != 0 ) - f_GeomMap->Add( theSolid, persSolid ); - - } // end of if f_GeomMap->LookUp(theSolid) - - return persSolid; -} - -//---------------------------------------------------------------------------- - -G4VPhysicalVolume* G4PersistentGeomMan::MakeTransientObject ( - HepRef(G4PVPhysicalVolume) persPhysVol, - HepRef(G4PVPhysicalVolume) persMotherVol ) -{ - // check the depth of the recursive call to this method - if ( ++f_tRecursive > G4_PHYS_VOLUME_DEPTH_MAX ) - { - G4cerr << "G4PersistentGeomMan::MakeTransientObject" << - " -- Physical Volume recursive depth reached to G4_PHYS_VOLUME_DEPTH_MAX." - << G4endl; - return 0; - } - - if( f_verboseLevel>2 && f_tRecursive % 1000 == 0 ) - G4cout << "G4PersistentGeomMan: " - << "Physical Volume recursive depth is " - << f_tRecursive << G4endl; - - // check if the transient version of persPhysVol exists - G4VPhysicalVolume* thePhysVol = f_GeomMap->LookUp(persPhysVol); - if ( thePhysVol == 0 ) - { - // Get the Logical Volume in persPhysVol - HepRef(G4PLogicalVolume) persLogVol = persPhysVol->GetLogicalVolume(); - - // make the transient logical volume object from "persPhysVol" - G4LogicalVolume* theLogVol = - MakeTransientObject( persLogVol, persPhysVol ); -#ifdef G4DEBUG - assert( theLogVol != 0 ); -#endif - - // Construct the transient version of persPhysVol - G4VPhysicalVolume* - thePhysVol = persPhysVol->MakeTransientObject( - theLogVol, f_GeomMap->LookUp(persMotherVol) ); -#ifdef G4DEBUG - assert( thePhysVol != 0 ); -#endif - - // register thePhysVol to the geometry object lookup table - f_GeomMap->Add( persPhysVol, thePhysVol ); - - } // end of if f_GeomMap->LookUp(persPhysVol) - - return thePhysVol; -} - -G4LogicalVolume* G4PersistentGeomMan::MakeTransientObject ( - HepRef(G4PLogicalVolume) persLogVol, - HepRef(G4PVPhysicalVolume) persMotherVol ) -{ - // check if the transient version of persLogVol exists - G4LogicalVolume* theLogVol = f_GeomMap->LookUp(persLogVol); - if ( theLogVol == 0 ) - { - // get the solid of the persistent logical volume - HepRef(G4PVSolid) persSolid = persLogVol->GetSolid(); -#ifdef G4DEBUG - assert( persSolid != 0 ); -#endif - - // check if the transient version of persSolid exists - G4VSolid* theSolid = f_GeomMap->LookUp(persSolid); - -#ifdef G4DEBUG - if ( theSolid == 0 ) - { - G4cerr << "G4PersistentGeomMan::MakeTransientObject" << - " -- transient Solid not found for the persistent Solid" << G4endl; - } -#endif - - // Lookup the material from name - G4Material* theMaterial = 0; - if( f_MaterialMap ) - { - theMaterial = f_MaterialMap->LookUp(persLogVol->GetMaterialName()); - } - - // Construct the persistent version of theLogVol with theSolid - theLogVol = persLogVol->MakeTransientObject(theSolid, theMaterial); -#ifdef G4DEBUG - assert( theLogVol != 0 ); -#endif - - // register theLogVol to the geometry object lookup table - f_GeomMap->Add( persLogVol, theLogVol ); - - // loop through the daughter physical volumes in persLogVol - G4int nDaughters = persLogVol->GetNoDaughters(); - for(G4int i=0;iGetDaughter(i); - - // make the transient physics volume object from "persDaughterPhysVol" - G4VPhysicalVolume* theDaughterPhysVol = - MakeTransientObject( persDaughterPhysVol, persMotherVol ); - - // add transient daughter volume to the transient logical volume - if ( theDaughterPhysVol != 0 ) - theLogVol->AddDaughter( theDaughterPhysVol ); - - } // end of for(G4int i=0;iLookUp(persLogVol) - - return theLogVol; -} - -G4VSolid* G4PersistentGeomMan::MakeTransientObject ( - HepRef(G4PVSolid) persSolid ) -{ - // check if the persistent version of theSolid exists - G4VSolid* transSolid = f_GeomMap->LookUp(persSolid); - if ( transSolid == 0 ) - { - G4GeometryType theSolidType = persSolid->GetEntityType(); - - // Construct transient and concrete solid object - // according to the entity type of theSolid - if ( theSolidType == "G4UnionSolid" || - theSolidType == "G4SubtractionSolid" || - theSolidType == "G4IntersectionSolid" ) - { - // This is Boolean solid, so get the constituent solids - HepRef(G4PBooleanSolid) boolSolid = (HepRef(G4PBooleanSolid)) persSolid; - HepRef(G4PVSolid) aSolidA = boolSolid->GetConstituentSolid(0); - HepRef(G4PVSolid) aSolidB = boolSolid->GetConstituentSolid(1); -#ifdef G4DEBUG - assert(aSolidA!=0); - assert(aSolidB!=0); -#endif - G4VSolid* transSolidA = MakeTransientObject(aSolidA); - G4VSolid* transSolidB = MakeTransientObject(aSolidB); - transSolid = boolSolid->MakeTransientBooleanSolid - (transSolidA, transSolidB); - } - else if ( theSolidType == "G4DisplacedSolid") - { - // This is a displaced solid, so get the constituent solid and - // its transform - HepRef(G4PDisplacedSolid) dispSolid = - (HepRef(G4PDisplacedSolid)) persSolid; - HepRef(G4PVSolid) movedSolid = dispSolid->GetConstituentMovedSolid(); -#ifdef G4DEBUG - assert(movedSolid!=0); -#endif - G4VSolid* transMovedSolid = MakeTransientObject(movedSolid); - transSolid = dispSolid->MakeTransientDisplacedSolid( transMovedSolid ); - } - else - { - // This is a simple solid - transSolid = persSolid->MakeTransientObject(); - } -#ifdef G4DEBUG - assert( transSolid != 0 ); -#endif - f_GeomMap->Add( persSolid, transSolid ); - } - - return transSolid; -} - -//---------------------------------------------------------------------------- diff --git a/source/persistency/geometry/solids/Boolean/GNUmakefile b/source/persistency/geometry/solids/Boolean/GNUmakefile deleted file mode 100644 index f61480a492..0000000000 --- a/source/persistency/geometry/solids/Boolean/GNUmakefile +++ /dev/null @@ -1,40 +0,0 @@ -# $Id: GNUmakefile,v 1.8 2001/03/15 22:58:54 morita Exp $ - -name := G4pgeomBoolean -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomGlobal \ - -I$(G4BASE)/persistency/global/include \ - -I$(G4BASE)/persistency/geometry/global/include \ - -I$(G4BASE)/persistency/management/include \ - -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPGeometry/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/magneticfield/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/solids/Boolean/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: - -#-------------------------------------------------------------------- - diff --git a/source/persistency/geometry/solids/Boolean/src/G4PBooleanSolid.cc b/source/persistency/geometry/solids/Boolean/src/G4PBooleanSolid.cc deleted file mode 100644 index 18d4d1304c..0000000000 --- a/source/persistency/geometry/solids/Boolean/src/G4PBooleanSolid.cc +++ /dev/null @@ -1,75 +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. * -// ******************************************************************** -// -// Persistent base class for solids created by boolean operations -// between other solids -// -// History: -// 10.11.99 Y.Morita, Initial Creation - -#include "G4PBooleanSolid.hh" - -G4PBooleanSolid::G4PBooleanSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ) - : G4PVSolid(pName), - createdDisplacedSolid(false) -{ - fPtrSolidA = persSolidA; - fPtrSolidB = persSolidB; -} - -G4PBooleanSolid::~G4PBooleanSolid() -{;} - -/////////////////////////////////////////////////////////////// -// -// If Solid is made up from a Boolean operation of two solids, -// return the corresponding solid (for no=0 and 1) -// If the solid is not a "Boolean", return 0 -const HepRef(G4PVSolid) G4PBooleanSolid::GetConstituentSolid(G4int no) const -{ - HepRef(G4PVSolid) subSolid; - if( no == 0 ) - subSolid = fPtrSolidA; - else if( no == 1 ) - subSolid = fPtrSolidB; - else - G4Exception("G4PBooleanSolid::GetConstituentSolid()const invalid subsolid index"); - - const HepRef(G4PVSolid) theSolid = subSolid; - return theSolid; -} - - HepRef(G4PVSolid) G4PBooleanSolid::GetConstituentSolid(G4int no) -{ - HepRef(G4PVSolid) subSolid; - if( no == 0 ) - subSolid = fPtrSolidA; - else if( no == 1 ) - subSolid = fPtrSolidB; - else - G4Exception("G4PBooleanSolid::GetConstituentSolid invalid subsolid index"); - - return subSolid; -} - diff --git a/source/persistency/geometry/solids/Boolean/src/G4PIntersectionSolid.cc b/source/persistency/geometry/solids/Boolean/src/G4PIntersectionSolid.cc deleted file mode 100644 index 07abd9c647..0000000000 --- a/source/persistency/geometry/solids/Boolean/src/G4PIntersectionSolid.cc +++ /dev/null @@ -1,52 +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. * -// ******************************************************************** -// -// Persistent class for description of intersection of two CSG solids -// -// History: -// 10.11.99 Y.Morita, Initial creation - -#include "G4PIntersectionSolid.hh" -#include "G4IntersectionSolid.hh" - - -G4PIntersectionSolid::G4PIntersectionSolid - ( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ) - : G4PBooleanSolid(pName, persSolidA, persSolidB) -{;} - -G4PIntersectionSolid::~G4PIntersectionSolid() -{;} - -G4VSolid* G4PIntersectionSolid::MakeTransientObject() const -{ return 0; } - -G4VSolid* G4PIntersectionSolid::MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const -{ - return new G4IntersectionSolid( GetName(), aSolidA, aSolidB ); -} - - diff --git a/source/persistency/geometry/solids/Boolean/src/G4PUnionSolid.cc b/source/persistency/geometry/solids/Boolean/src/G4PUnionSolid.cc deleted file mode 100644 index c7c80e3fae..0000000000 --- a/source/persistency/geometry/solids/Boolean/src/G4PUnionSolid.cc +++ /dev/null @@ -1,50 +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. * -// ******************************************************************** -// -// Persistent class for description of intersection of two CSG solids -// -// History: -// 10.11.99 Y.Morita, Initial creation -// - -#include "G4PUnionSolid.hh" -#include "G4UnionSolid.hh" - -G4PUnionSolid::G4PUnionSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ) - : G4PBooleanSolid(pName, persSolidA, persSolidB) -{;} - -G4PUnionSolid::~G4PUnionSolid() -{;} - -G4VSolid* G4PUnionSolid::MakeTransientObject() const -{ return 0; } - -G4VSolid* G4PUnionSolid::MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const -{ - return new G4UnionSolid( GetName(), aSolidA, aSolidB ); -} - diff --git a/source/persistency/geometry/solids/CSG/GNUmakefile b/source/persistency/geometry/solids/CSG/GNUmakefile deleted file mode 100644 index cc370a65ee..0000000000 --- a/source/persistency/geometry/solids/CSG/GNUmakefile +++ /dev/null @@ -1,50 +0,0 @@ -# $Id: GNUmakefile,v 1.9 2001/03/15 22:58:54 morita Exp $ - -name := G4pcsg -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomGlobal \ - -I$(G4BASE)/persistency/global/include \ - -I$(G4BASE)/persistency/geometry/global/include \ - -I$(G4BASE)/graphics_reps/include \ - -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPGeometry/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/magneticfield/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/solids/CSG/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: - -$(G4SCHEMA_HEADER_DIR)/G4PBox.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PCons.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PPara.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PSphere.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PTorus.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PTrap.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PTrd.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh -$(G4SCHEMA_HEADER_DIR)/G4PTubs.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh - -#-------------------------------------------------------------------- - diff --git a/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl b/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl deleted file mode 100644 index 20264c47c7..0000000000 --- a/source/persistency/geometry/solids/CSG/include/G4PTrap.ddl +++ /dev/null @@ -1,98 +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: G4PTrap.ddl,v 1.7 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Persistent version of G4PTrap solid. - -// History: -// 19.06.98 A.Kimura Converted G4Trap.hh - -#ifndef G4PTrap_DDL -#define G4PTrap_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4VSolid; -class G4Trap; - -#include "G4ThreeVector.hh" - -struct PTrapSidePlane -{ - G4double a,b,c,d; // Normal unit vector (a,b,c) and offset (d) - // => Ax+By+Cz+D=0 -}; - -class G4PTrap - : public G4PCSGSolid -{ -public: // With description - G4PTrap(const G4Trap* theTrap); - virtual ~G4PTrap() ; - // Constructor and Destructor - - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. - -public: - void SetAllParameters ( G4double pDz, - G4double pTheta, - G4double pPhi, - G4double pDy1, - G4double pDx1, - G4double pDx2, - G4double pAlp1, - G4double pDy2, - G4double pDx3, - G4double pDx4, - G4double pAlp2); - -public: // With description - virtual G4GeometryType GetEntityType() const { return G4String("G4Trap"); } - // Returns the G4GeometryType of this solid. - -protected: - - G4bool MakePlanes(); - G4bool MakePlane( const G4ThreeVector& p1, - const G4ThreeVector& p2, - const G4ThreeVector& p3, - const G4ThreeVector& p4, - PTrapSidePlane& plane ) ; - -private: - - G4double fDz,fTthetaCphi,fTthetaSphi; - G4double fDy1,fDx1,fDx2,fTalpha1; - G4double fDy2,fDx3,fDx4,fTalpha2; - PTrapSidePlane fPlanes[4]; -}; - -#endif - - -// **************************** End of G4Trap.hh ***************************************** diff --git a/source/persistency/geometry/solids/CSG/src/G4PCons.cc b/source/persistency/geometry/solids/CSG/src/G4PCons.cc deleted file mode 100644 index 7968cff762..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PCons.cc +++ /dev/null @@ -1,104 +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: G4PCons.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PCons -// -// Implementation for G4PCons class -// -// History: -// 19.06.98 A.Kimura Converted G4Cons.cc - -#include "G4VSolid.hh" -#include "G4PCons.hh" -#include "G4Cons.hh" - -#include "G4VoxelLimits.hh" -#include "G4AffineTransform.hh" - -G4PCons::~G4PCons() -{;} - -// make a transient object -G4VSolid* G4PCons::MakeTransientObject() const { - G4VSolid* transientObject = new G4Cons(GetName(), - fRmin1, fRmax1, - fRmin2, fRmax2, - fDz, - fSPhi, fDPhi); - return transientObject; -} - -// constructor - check parameters, convert angles so 02PI then reset to 2PI - -G4PCons::G4PCons(const G4Cons* theCons) : G4PCSGSolid(theCons->GetName()) { - - G4double pRmin1 = theCons->GetInnerRadiusMinusZ(); - G4double pRmax1 = theCons->GetOuterRadiusMinusZ(); - G4double pRmin2 = theCons->GetInnerRadiusPlusZ(); - G4double pRmax2 = theCons->GetOuterRadiusPlusZ(); - G4double pDz = theCons->GetZHalfLength(); - G4double pSPhi = theCons->GetStartPhiAngle(); - G4double pDPhi = theCons->GetDeltaPhiAngle(); - -// Check z-len - if (pDz>0) { - fDz=pDz; - } else { - G4Exception("Error in G4PCons::G4PCons - invalid z half-length"); - } - -// Check radii - if (pRmin1=0 && pRmin2>=0) { - fRmin1=pRmin1; fRmax1=pRmax1; - fRmin2=pRmin2; fRmax2=pRmax2; - } else { - G4Exception("Error in G4PCons::G4PCons - invalid radii"); - } - -// Check angles - if (pDPhi>=2.0*M_PI) { - fDPhi=2*M_PI; - fSPhi=0; - } else { - if (pDPhi>0) { - fDPhi=pDPhi; - } else { - G4Exception("Error in G4PCons::G4PCons - invalid pDPhi"); - } - -// Ensure pSPhi in 0-2PI or -2PI-0 range if shape crosses 0 - if (pSPhi<0) { - fSPhi=2.0*M_PI-fmod(fabs(pSPhi),2.0*M_PI); - } else { - fSPhi=fmod(pSPhi,2.0*M_PI); - } - - if (fSPhi+fDPhi>2.0*M_PI) fSPhi-=2.0*M_PI; - } -} - -// ******************************* End of G4PCons.cc file ********************************** diff --git a/source/persistency/geometry/solids/CSG/src/G4PPara.cc b/source/persistency/geometry/solids/CSG/src/G4PPara.cc deleted file mode 100644 index 5db851f405..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PPara.cc +++ /dev/null @@ -1,81 +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: G4PPara.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PPara -// -// Implementation for G4PPara class -// -// History: -// 19.06.98 A.Kimura Converted G4Para.cc - -#include - -#include "G4VSolid.hh" -#include "G4PPara.hh" -#include "G4Para.hh" - -// Constructor - check and set half-widths - -G4PPara::G4PPara(const G4Para* thePara) - : G4PCSGSolid(thePara->GetName()) -{ - G4double pDx = thePara->GetXHalfLength(); - G4double pDy = thePara->GetYHalfLength(); - G4double pDz = thePara->GetZHalfLength(); - - if(pDx>0&&pDy>0&&pDz>0) { - fDx = pDx; - fDy = pDy; - fDz = pDz; - fTalpha = thePara->GetTanAlpha(); - G4ThreeVector symAxis = thePara->GetSymAxis(); - fTthetaCphi = symAxis.x()/symAxis.z(); - fTthetaSphi = symAxis.y()/symAxis.z(); - } else { - G4Exception("Error in G4PPara::G4PPara - Invalid Length Parameters"); - } -} -// ---------------------------------------------------------------------------- - -G4PPara::~G4PPara() -{;} - -// ---------------------------------------------------------------------------- - -// make a transient object -G4VSolid* G4PPara::MakeTransientObject() const { - G4ThreeVector symaxis = GetSymAxis(); - G4double alpha = atan(fTalpha); - G4double theta = acos(symaxis.z()); - G4double phi = acos(fTthetaCphi/tan(theta)); - - G4VSolid* transientObject = new G4Para(GetName(), - fDx, fDy, fDz, - alpha, theta, phi); - return transientObject; -} - -// ******************************** End of G4PPara.cc ******************************** diff --git a/source/persistency/geometry/solids/CSG/src/G4PSphere.cc b/source/persistency/geometry/solids/CSG/src/G4PSphere.cc deleted file mode 100644 index 548e6878c0..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PSphere.cc +++ /dev/null @@ -1,128 +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: G4PSphere.cc,v 1.4 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// class G4PSphere -// -// Implementation for G4PSphere class -// -// History: -// 19.06.98 A.Kimura Converted G4Sphere.cc - -#include "G4VSolid.hh" -#include "G4PSphere.hh" -#include "G4Sphere.hh" - -// Destructor -G4PSphere::~G4PSphere() -{;} - -// make a transient object -G4VSolid* G4PSphere::MakeTransientObject() const { - G4VSolid* transientObject = new G4Sphere(GetName(), - fRmin, - fRmax, - fSPhi, - fDPhi, - fSTheta, - fDTheta); - return transientObject; -} - -// constructor - check parameters, convert angles so 02PI then reset to 2PI - -G4PSphere::G4PSphere(const G4Sphere* theSphere) - : G4PCSGSolid(theSphere->GetName()) -{ - G4double pRmin = fRmin; - G4double pRmax = fRmax; - G4double pSPhi = fSPhi; - G4double pDPhi = fDPhi; - G4double pSTheta = fSTheta; - G4double pDTheta = fDTheta; - - // Check radii - if (pRmin=0) - { - fRmin=pRmin; fRmax=pRmax; - } - else - { - G4Exception("Error in G4PSphere::G4PSphere - invalid radii"); - } - -// Check angles - if (pDPhi>=2.0*M_PI) - { - fDPhi=2*M_PI; - } - else if (pDPhi>0) - { - fDPhi=pDPhi; - } - else - { - G4Exception("Error in G4PSphere::G4PSphere - invalid DPhi"); - } -// Convert fSPhi to 0-2PI - if (pSPhi<0) - { - fSPhi=2.0*M_PI-fmod(fabs(pSPhi),2.0*M_PI); - } - else - { - fSPhi=fmod(pSPhi,2.0*M_PI); - } -// Sphere is placed such that fSPhi+fDPhi>2.0*M_PI ! fSPhi could be < 0 !!? P - if (fSPhi+fDPhi>2.0*M_PI) fSPhi-=2.0*M_PI; - -// Check theta angles - if (pSTheta<0 || pSTheta>M_PI) - { - G4Exception("Error in G4PSphere::G4PSphere - stheta outside 0-PI range"); - } - else - { - fSTheta=pSTheta; - } - - if (pDTheta+pSTheta>=M_PI) - { - fDTheta=M_PI-pSTheta; - } - else if (pDTheta>0) - { - fDTheta=pDTheta; - } - else - { - G4Exception("Error in G4PSphere::G4PSphere - invalid pDTheta"); - } - -} - -// ****************************** End of G4PSphere.cc **************************************** diff --git a/source/persistency/geometry/solids/CSG/src/G4PTorus.cc b/source/persistency/geometry/solids/CSG/src/G4PTorus.cc deleted file mode 100644 index 1663a19749..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PTorus.cc +++ /dev/null @@ -1,127 +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: G4PTorus.cc,v 1.4 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// class G4PTorus -// -// Implementation -// -// History: -// 19.06.98 A.Kimura Converted G4Torus.cc - -#include "G4VSolid.hh" -#include "G4PTorus.hh" -#include "G4Torus.hh" - -// Constructor - check parameters, convert angles so 02PI then reset to 2PI -G4PTorus::G4PTorus(const G4Torus* theTorus) - : G4PCSGSolid(theTorus->GetName()) -{ - SetAllParameters(theTorus->GetRmin(), - theTorus->GetRmax(), - theTorus->GetRtor(), - theTorus->GetSPhi(), - theTorus->GetDPhi()); -} - -void -G4PTorus::SetAllParameters( - G4double pRmin, - G4double pRmax, - G4double pRtor, - G4double pSPhi, - G4double pDPhi) -{ -// Check swept radius - if (pRtor>=pRmax) - { - fRtor=pRtor; - } - else - { - G4Exception("Error in G4PTorus::SetAllParameters - invalid swept radius"); - } - -// Check radii - if (pRmin=0) - { - fRmin=pRmin; fRmax=pRmax; - } - else - { - G4Exception("Error in G4PTorus::SetAllParameters - invalid radii"); - } - -// Check angles - if (pDPhi>=2.0*M_PI) - { - fDPhi=2*M_PI; - } - else - { - if (pDPhi>0) - { - fDPhi = pDPhi; - } - else - { - G4Exception("Error in G4PTorus::SetAllParameters - invalid dphi"); - } - } - -// Ensure psphi in 0-2PI or -2PI-0 range if shape crosses 0 - fSPhi = pSPhi; - - if (fSPhi<0) - { - fSPhi=2.0*M_PI-fmod(fabs(fSPhi),2.0*M_PI); - } - else - { - fSPhi=fmod(fSPhi,2.0*M_PI); - } - - if (fSPhi+fDPhi>2.0*M_PI) - { - fSPhi-=2.0*M_PI; - } -} - -// Destructor -G4PTorus::~G4PTorus() -{;} - -// -------------------------------------------------------------------------- - -// make a transient object -G4VSolid* G4PTorus::MakeTransientObject() const { - G4VSolid* transientObject = new G4Torus(GetName(), - fRmin, fRmax, - fRtor, - fSPhi, fDPhi); - return transientObject; -} diff --git a/source/persistency/geometry/solids/CSG/src/G4PTrap.cc b/source/persistency/geometry/solids/CSG/src/G4PTrap.cc deleted file mode 100644 index 078b2281c1..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PTrap.cc +++ /dev/null @@ -1,273 +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: G4PTrap.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PTrap -// -// Implementation for G4PTrap class -// -// History: -// 19.06.98 A.Kimura Converted G4Trap.cc - -#include - -#include "G4VSolid.hh" -#include "G4PTrap.hh" -#include "G4Trap.hh" - -const G4double kCoplanar_Tolerance=1E-4; - -// Destructor - -G4PTrap::~G4PTrap() -{;} - -// make a transient object -G4VSolid* G4PTrap::MakeTransientObject() const { - G4VSolid* transientObject = new G4Trap(GetName(), - fDx1, fDx2, - fDy1, fDy2, - fDz); - return transientObject; -} - -// Constructor for G4Trd - -G4PTrap::G4PTrap(const G4Trap* theTrap) - : G4PCSGSolid(theTrap->GetName()) -{ - - G4double pDx1 = theTrap->GetXHalfLength1(); - G4double pDx2 = theTrap->GetXHalfLength2(); - G4double pDy1 = theTrap->GetYHalfLength1(); - G4double pDy2 = theTrap->GetYHalfLength2(); - G4double pDz = theTrap->GetZHalfLength(); - - G4bool good; - - if (pDz>0 && pDy1>0 && pDx1>0 && pDx2>0 && pDy2>0 ) - { - fDz = pDz; - fTthetaCphi = 0 ; - fTthetaSphi = 0 ; - - fDy1 = pDy1 ; - fDx1 = pDx1 ; - fDx2 = pDx1 ; - fTalpha1 = 0 ; - - fDy2 = pDy2 ; - fDx3 = pDx2 ; - fDx4 = pDx2 ; - fTalpha2 = 0 ; - - G4ThreeVector pt[8] ; - - pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); -// Bottom side with normal approx. -Y - good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~-Y not planar"); - - } -// Top side with normal approx. +Y - good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~+Y not planar"); - } -// Front side with normal approx. -X - good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~-X not planar"); - } -// Back side iwth normal approx. +X - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~+X not planar"); - } - } - else - { - G4Exception("Error in G4PTrap::G4PTrap - Invalid Length G4PTrapmeters"); - } -} - -// Set all parameters, as for constructor - check and set half-widths -// as well as angles: final check of coplanarity - -void G4PTrap::SetAllParameters ( G4double pDz, - G4double pTheta, - G4double pPhi, - G4double pDy1, - G4double pDx1, - G4double pDx2, - G4double pAlp1, - G4double pDy2, - G4double pDx3, - G4double pDx4, - G4double pAlp2) -{ - if (pDz>0 && pDy1>0 && pDx1>0 && pDx2>0 && pDy2>0 && pDx3>0 && pDx4>0) - { - fDz=pDz; - fTthetaCphi=tan(pTheta)*cos(pPhi); - fTthetaSphi=tan(pTheta)*sin(pPhi); - - fDy1=pDy1; - fDx1=pDx1; - fDx2=pDx2; - fTalpha1=tan(pAlp1); - - fDy2=pDy2; - fDx3=pDx3; - fDx4=pDx4; - fTalpha2=tan(pAlp2); - - MakePlanes(); - } - else - { - G4Exception("Error in G4PTrap::SetAll - Invalid Length G4PTrapmeters"); - } -} - -G4bool G4PTrap::MakePlanes() -{ - G4bool good = true; - - G4ThreeVector pt[8] ; - - pt[0]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[1]=G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1,-fDz*fTthetaSphi-fDy1,-fDz); - pt[2]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[3]=G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2,-fDz*fTthetaSphi+fDy1,-fDz); - pt[4]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[5]=G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3,+fDz*fTthetaSphi-fDy2,+fDz); - pt[6]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - pt[7]=G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4,+fDz*fTthetaSphi+fDy2,+fDz); - // Bottom side with normal approx. -Y - good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~-Y not planar"); - } - // Top side with normal approx. +Y - good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~+Y not planar"); - } - // Front side with normal approx. -X - good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~-X not planar"); - } - // Back side iwth normal approx. +X - good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); - if (!good) - { - G4Exception("G4PTrap::G4PTrap - face at ~+X not planar"); - } - return good; -} - -// -------------------------------------------------------------------------- - -// 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. -// -// Return true if the ThreeVectors are coplanar + set coef;s -// false if ThreeVectors are not coplanar - -G4bool G4PTrap::MakePlane( const G4ThreeVector& p1, - const G4ThreeVector& p2, - const G4ThreeVector& p3, - const G4ThreeVector& p4, - PTrapSidePlane& plane ) -{ - 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); - - if (fabs(Vcross.dot(v14)/(Vcross.mag()*v14.mag()))>kCoplanar_Tolerance) - { - 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()); // may be delete ? - - // 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) - 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()) ; - s=sqrt(a*a+b*b+c*c); // so now vector plane.(a,b,c) is unit - plane.a=a/s; - plane.b=b/s; - plane.c=c/s; - // 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()); - good=true; - } - return good; -} - - -// ******************************** End of G4PTrap.cc ******************************** - - - - - diff --git a/source/persistency/geometry/solids/CSG/src/G4PTrd.cc b/source/persistency/geometry/solids/CSG/src/G4PTrd.cc deleted file mode 100644 index c6ffe7ab87..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PTrd.cc +++ /dev/null @@ -1,102 +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: G4PTrd.cc,v 1.4 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// Implementation for G4Trd class -// -// -// History: -// 19.06.98 A.Kimura Converted G4Trd.cc - - -#include "G4VSolid.hh" -#include "G4PTrd.hh" -#include "G4Trd.hh" - -#include - - -// Constructor - check & set half widths - -G4PTrd::G4PTrd(const G4Trd* theTrd) - : G4PCSGSolid(theTrd->GetName()) -{ - G4double pdx1 = theTrd->GetXHalfLength1(); - G4double pdx2 = theTrd->GetXHalfLength2(); - G4double pdy1 = theTrd->GetYHalfLength1(); - G4double pdy2 = theTrd->GetYHalfLength2(); - G4double pdz = theTrd->GetZHalfLength(); - CheckAndSetAllParameters (pdx1, pdx2, pdy1, pdy2, pdz); -} - -void -G4PTrd::CheckAndSetAllParameters (G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz) -{ - if (pdx1>0&&pdx2>0&&pdy1>0&&pdy2>0&&pdz>0) - { - fDx1=pdx1; fDx2=pdx2; - fDy1=pdy1; fDy2=pdy2; - fDz=pdz; - } - else - { - if (pdx1>=0 && pdx2>=0 && pdy1>=0 && pdy2>=0 && pdz>=0) - { - // G4double Minimum_length= (1+per_thousand) * kCarTolerance/2.; - // FIX-ME : temporary solution for ZERO or very-small parameters. - G4double Minimum_length= kCarTolerance/2.; - fDx1=G4std::max(pdx1,Minimum_length); - fDx2=G4std::max(pdx2,Minimum_length); - fDy1=G4std::max(pdy1,Minimum_length); - fDy2=G4std::max(pdy2,Minimum_length); - fDz=G4std::max(pdz,Minimum_length); - } - else - G4Exception("Error in G4PTrd::G4PTrd - One or more parameters are < 0"); - } -} - -// ------------------------------------------------------------- - -// Destructor - -G4PTrd::~G4PTrd() -{;} - -// ----------------------------------------------------------------------- - -// make a transient object -G4VSolid* G4PTrd::MakeTransientObject() const -{ - G4VSolid* transientObject = new G4Trd(GetName(), - fDx1, fDx2, - fDy1, fDy2, - fDz); - return transientObject; -} - diff --git a/source/persistency/geometry/solids/CSG/src/G4PTubs.cc b/source/persistency/geometry/solids/CSG/src/G4PTubs.cc deleted file mode 100644 index 44019d8987..0000000000 --- a/source/persistency/geometry/solids/CSG/src/G4PTubs.cc +++ /dev/null @@ -1,117 +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: G4PTubs.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// -// class G4PTubs -// -// History: -// 19.06.98 A.Kimura Converted G4Tubs.cc - - -#include "G4VSolid.hh" -#include "G4PTubs.hh" -#include "G4Tubs.hh" - -// Constructor - check parameters, convert angles so 02PI then reset to 2PI -G4PTubs::G4PTubs(const G4Tubs* theTubs) - : G4PCSGSolid(theTubs->GetName()) -{ - - G4double pRMin = theTubs->GetInnerRadius(); - G4double pRMax = theTubs->GetOuterRadius(); - G4double pDz = theTubs->GetZHalfLength(); - G4double pSPhi = theTubs->GetStartPhiAngle(); - G4double pDPhi = theTubs->GetDeltaPhiAngle(); - -// Check z-len - if (pDz>0) - { - fDz=pDz; - } - else - { - G4Exception("Error in G4PTubs::G4PTubs - invalid z half-length"); - } - -// Check radii - if (pRMin=0) - { - fRMin=pRMin; fRMax=pRMax; - } - else - { - G4Exception("Error in G4PTubs::G4PTubs - invalid radii"); - } - -// Check angles - if (pDPhi>=2.0*M_PI) - { - fDPhi=2*M_PI; - } - else - { - if (pDPhi>0) - { - fDPhi = pDPhi; - } - else - { - G4Exception("Error in G4PTubs::G4PTubs - invalid dphi"); - } - } - -// Ensure psphi in 0-2PI or -2PI-0 range if shape crosses 0 - fSPhi = pSPhi; - - if (fSPhi<0) - { - fSPhi=2.0*M_PI-fmod(fabs(fSPhi),2.0*M_PI); - } - else - { - fSPhi=fmod(fSPhi,2.0*M_PI); - } - - if (fSPhi+fDPhi>2.0*M_PI) - { - fSPhi-=2.0*M_PI; - } -} - -// Destructor -G4PTubs::~G4PTubs() -{;} - -// make a transient object -G4VSolid* G4PTubs::MakeTransientObject() const -{ - G4VSolid* transientObject = new G4Tubs(GetName(), - fRMin, fRMax, - fDz, - fSPhi, fDPhi); - return transientObject; -} diff --git a/source/persistency/geometry/solids/specific/GNUmakefile b/source/persistency/geometry/solids/specific/GNUmakefile deleted file mode 100644 index 22bc029243..0000000000 --- a/source/persistency/geometry/solids/specific/GNUmakefile +++ /dev/null @@ -1,45 +0,0 @@ -# $Id: GNUmakefile,v 1.2 2001/03/15 22:58:54 morita Exp $ - -name := G4pspecsolids -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomGlobal \ - -I$(G4TMP)/$(G4SYSTEM)/G4pcsg \ - -I$(G4BASE)/persistency/global/include \ - -I$(G4BASE)/persistency/geometry/global/include \ - -I$(G4BASE)/graphics_reps/include \ - -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPGeometry/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/magneticfield/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/solids/CSG/include \ - -I$(G4BASE)/geometry/solids/specific/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: - -##$(G4SCHEMA_HEADER_DIR)/G4PBox.hh: $(G4SCHEMA_HEADER_DIR)/G4PCSGSolid.hh - -#-------------------------------------------------------------------- - diff --git a/source/persistency/geometry/solids/specific/include/G4PHype.ddl b/source/persistency/geometry/solids/specific/include/G4PHype.ddl deleted file mode 100644 index 9cf96b54e0..0000000000 --- a/source/persistency/geometry/solids/specific/include/G4PHype.ddl +++ /dev/null @@ -1,83 +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: G4PHype.ddl,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Persistent version of G4Hype specific solid. - -// History: -// 19.06.98 A.Kimura Converted G4Hype.hh - -#ifndef G4PHYPE_DDL -#define G4PHYPE_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4VSolid; -class G4Hype; - -class G4PHype - : public G4PCSGSolid -{ -public: // With description - G4PHype(const G4Hype* theHype); - virtual ~G4PHype(); - // Constructor and Destructor - - G4VSolid* MakeTransientObject() const; - // Creates a transient G4Hype object. - - virtual G4GeometryType GetEntityType() const {return G4String("G4Hype");} - // Returns the G4GeometryType of this solid. - -protected: - // values of hype radius at a given Z - G4double HypeInnerRadius2(double zVal) const { - return (tanInnerStereo2*zVal*zVal+innerRadius2); - } - G4double HypeOuterRadius2(double zVal) const { - return (tanOuterStereo2*zVal*zVal+outerRadius2); - } - - G4double innerRadius; // variable names are quite self explanative - G4double outerRadius; - G4double halfLenZ; - G4double innerStereo; - G4double outerStereo; - - // precalculated parameters, squared quantities - G4double tanInnerStereo2; // squared tan of Inner Stereo angle - G4double tanOuterStereo2; // squared tan of Outer Stereo angle - G4double innerRadius2; // squared Inner Radius - G4double outerRadius2; // squared Outer Radius - G4double endInnerRadius2; // squared endcap Inner Radius - G4double endOuterRadius2; // squared endcap Outer Radius - G4double endInnerRadius; // endcap Inner Radius - G4double endOuterRadius; // endcap Outer Radius -}; - -#endif - diff --git a/source/persistency/geometry/solids/specific/src/G4PHype.cc b/source/persistency/geometry/solids/specific/src/G4PHype.cc deleted file mode 100644 index c2bd5003c4..0000000000 --- a/source/persistency/geometry/solids/specific/src/G4PHype.cc +++ /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: G4PHype.cc,v 1.2 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PHype -// -// History: -// 19.06.98 A.Kimura Converted G4PHype.cc - -#include "G4VSolid.hh" -#include "G4PHype.hh" -#include "G4Hype.hh" - -// Constructor - check parameters, and fills protected data members -G4PHype::G4PHype(const G4Hype* theHype) - : G4PCSGSolid(theHype->GetName()) -{ - - const G4double newInnerRadius = theHype->GetInnerRadius(); - const G4double newOuterRadius = theHype->GetOuterRadius(); - const G4double newInnerStereo = theHype->GetOuterStereo(); - const G4double newOuterStereo = theHype->GetInnerStereo(); - const G4double newHalfLenZ = theHype->GetZHalfLength(); - -// Check z-len - if (newHalfLenZ>0) { - halfLenZ=newHalfLenZ; - } else { - G4Exception("Error in G4PHype::G4PHype - invalid z half-length"); - } - -// Check radii - if (newInnerRadius>=0 && newOuterRadius>=0) { - if (newInnerRadius < newOuterRadius) { - innerRadius=newInnerRadius; - outerRadius=newOuterRadius; - } else { // swapping radii (:-) - innerRadius=newOuterRadius; - outerRadius=newInnerRadius; - } - } else { - G4Exception("Error in G4PHype::G4PHype - invalid radii"); - } - - innerStereo=newInnerStereo; - outerStereo=newOuterStereo; - - // init of precalculated quantities - tanInnerStereo2 = tan(innerStereo)*tan(innerStereo); - tanOuterStereo2 = tan(outerStereo)*tan(outerStereo); - innerRadius2 = innerRadius*innerRadius; - outerRadius2 = outerRadius*outerRadius; - endInnerRadius2 = HypeInnerRadius2(halfLenZ); - endOuterRadius2 = HypeOuterRadius2(halfLenZ); - endInnerRadius = sqrt(endInnerRadius2); - endOuterRadius = sqrt(endOuterRadius2); -} - -// Destructor -G4PHype::~G4PHype() -{;} - -// make a transient object -G4VSolid* G4PHype::MakeTransientObject() const { - G4VSolid* transientObject = new G4Hype(GetName(), - innerRadius, - outerRadius, - innerStereo, - outerStereo, - halfLenZ); - return transientObject; -} diff --git a/source/persistency/global/GNUmakefile b/source/persistency/global/GNUmakefile deleted file mode 100644 index 300e829518..0000000000 --- a/source/persistency/global/GNUmakefile +++ /dev/null @@ -1,33 +0,0 @@ -# $Id: GNUmakefile,v 1.6 2001/03/15 22:58:55 morita Exp $ - -name := G4pglobal -G4ODBMS := true - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -# $(G4TMPDIR) will be overrided in common.gmk later. -G4TMPDIR := $(G4TMP)/$(G4SYSTEM)/$(name) - -CPPFLAGS += \ - -Iinclude \ - -I$(G4TMPDIR) \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/materials/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: - -#-------------------------------------------------------------------- - diff --git a/source/persistency/global/include/G4PersistentSchema.hh b/source/persistency/global/include/G4PersistentSchema.hh deleted file mode 100644 index a89a8a8f31..0000000000 --- a/source/persistency/global/include/G4PersistentSchema.hh +++ /dev/null @@ -1,86 +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: G4PersistentSchema.hh,v 1.7 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// file description: -// Persistent-capable schema definitions required for ooddlx processor - -// History: -// 19.11.99 Y.Morita - Created - -#ifndef G4_PERSISTENTSCHEMA_HH -#define G4_PERSISTENTSCHEMA_HH - -#ifdef OO_DDL_TRANSLATION - -// make forward declaration of persistent classes -// in the name space "Geant4" -#pragma ooschema Geant4 - -class G4PDCofThisEvent; -class G4PVDigit; -// G4VDigi is embedded in G4PVDigit -class G4VDigi; -class G4PVDigitsCollection; -class G4PHCofThisEvent; -class G4PVHit; -// G4VHit is embedded in G4PVHit -class G4VHit; -class G4PVHitsCollection; -class G4PEvent; -class G4PPrimaryVertex; -class G4PPrimaryParticle; -class G4PAffineTransform; -class G4PVSolid; -class G4PGeometryObjectMap; -class G4PLogicalVolume; -class G4PPVParameterised; -class G4PPVPlacement; -class G4PPVReplica; -class G4PVPhysicalVolume; -class G4PBooleanSolid; -class G4PDisplacedSolid; -class G4PIntersectionSolid; -class G4PSubtractionSolid; -class G4PUnionSolid; -class G4PBox; -class G4PCSGSolid; -class G4PCons; -class G4PHype; -class G4PPara; -class G4PSphere; -class G4PTorus; -class G4PTrap; -class G4PTrd; -class G4PTubs; -class G4PRun; - -// back to the default name space -#pragma ooschema - -#endif - -#endif /* G4_PERSISTENTSCHEMA_HH */ diff --git a/source/persistency/global/include/G4Pglobals.hh b/source/persistency/global/include/G4Pglobals.hh deleted file mode 100644 index 4e3ef1af66..0000000000 --- a/source/persistency/global/include/G4Pglobals.hh +++ /dev/null @@ -1,99 +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: G4Pglobals.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// file description: -// Wrapper header file to protect globals.hh from ooddlx - -// History: -// 26.10.00 Y.Morita - Created - -#ifndef G4_P_GLOBALS_HH -#define G4_P_GLOBALS_HH 1 - -#ifndef OO_DDL_TRANSLATION - -// use G4 globals if this is not in ooddlx pre-processing -#include "globals.hh" - -#else - -// substitute G4 globals definitions for ooddlx pre-processing -#define GLOBALS_HH -#define G4TYPES_HH -#define included_G4ios -#define GeomDefs_hh -typedef int G4GeometryType; -#define __tpvector -#define __tvvector -#define __tpordvec -#define __tvordvec - -#ifndef G4ROTATIONMATRIX_HH -#define G4ROTATIONMATRIX_HH -class G4RotationMatrix {}; -#endif - -#ifndef G4Para_HH -#define G4Para_HH -class G4Para {}; -#endif - -#ifndef G4VMaterialMap_hh -#define G4VMaterialMap_hh 1 -class G4VMaterialMap {}; -class G4Material {}; -#endif - -#ifndef G4VPHYSICALVOLUME_HH -#define G4VPHYSICALVOLUME_HH -class G4VPhysicalVolume {}; -#endif - -#ifndef G4LOGICALVOLUME_HH -#define G4LOGICALVOLUME_HH -class G4LogicalVolume {}; -#endif - -#ifndef G4VSOLID_HH -#define G4VSOLID_HH -class G4VSolid {}; -#endif - -#ifndef G4UNITSTEST_HH -#define G4UNITSTEST_HH -#include "G4SIunits.hh" -#endif - -typedef int EAxis; -typedef char* G4String; -typedef int G4int; -typedef double G4double; -typedef bool G4bool; - -#endif - -#endif diff --git a/source/persistency/global/include/G4VPersistentSubDbMan.hh b/source/persistency/global/include/G4VPersistentSubDbMan.hh deleted file mode 100644 index 1cc6dcc4a8..0000000000 --- a/source/persistency/global/include/G4VPersistentSubDbMan.hh +++ /dev/null @@ -1,112 +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: G4VPersistentSubDbMan.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Abstract class to be used by G4PersistencyManager -// and G4TransactionManager -// -// Member functions: -// ================= -// void SetDB(HepDatabaseRef aDB); -// Set DB reference. -// HepDatabaseRef GetDB(); -// Get DB reference. -// void SetContainer(HepContainerRef container); -// Set Container reference. -// HepContainerRef GetContainer(); -// Get Container reference. -// -// Note: inherited concrete class should implement Store() and Retrieve() -// and also should set f_currentContainer in Retieve() -// Store(HepDbApplication* dbApp, const object_type* object); -// Retrieve(HepDbApplication* dbApp, object_type*& object); -// -// Member data: -// ============ -// HepContainerRef f_DB; -// Reference to the database. -// HepContainerRef f_container; -// Reference to the container in the database. -// HepContainerRef f_currentContainer; -// Reference to the current scan scope in Retrieve(). -// -// example in a piece of Retrive(): -// if( f_container != f_currentContainer ) -// { -// f_currentContainer = f_container; -// pRun_iterator.scan(f_currentContainer); -// } - -// History: -// 99.11.25 Y.Morita Initial creation - -#ifndef G4VPersistentSubDbMan_hh -#define G4VPersistentSubDbMan_hh 1 - -#include "globals.hh" -#include "HepODBMS/odbms/HepODBMS.h" - -#include "G4PersistentTypes.hh" -#include "G4DatabaseTypes.hh" - -class G4VPersistentSubDbMan -{ - friend class G4PersistencyManager; - friend class G4TransactionManager; - - protected: - // to be constructed by G4PersistencyManager only - G4VPersistentSubDbMan(); - virtual ~G4VPersistentSubDbMan(); - - protected: - // interface with G4PersistencyManager - // Store(HepDbApplication* dbApp, const object_type* object); - // Retrieve(HepDbApplication* dbApp, object_type*& object); - - protected: - // interface with G4TransactionManager - inline void SetDB(HepDatabaseRef aDB) - { f_DB = aDB; } - inline void SetContainer(HepContainerRef container) - { f_container = container; } - - public: // With description - inline HepDatabaseRef GetDB() - { return f_DB; } - // Returns the reference pointer of the database - inline HepContainerRef GetContainer() - { return f_container; } - // Returns the reference pointer of the container - - protected: - HepDatabaseRef f_DB; - HepContainerRef f_container; - HepContainerRef f_currentContainer; -}; - -#endif - diff --git a/source/persistency/include/G4DCIOcatalog.hh b/source/persistency/include/G4DCIOcatalog.hh new file mode 100644 index 0000000000..7aa063ef9d --- /dev/null +++ b/source/persistency/include/G4DCIOcatalog.hh @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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: G4DCIOcatalog.hh +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#ifndef DCIO_CATALOG_HH +#define DCIO_CATALOG_HH 1 + +#include "g4std/map" +#include "G4Types.hh" +#include "G4VPDigitsCollectionIO.hh" + +class G4VDCIOentry; + +typedef G4std::map > DCIOmap; + +typedef G4std::map > DCIOstore; + +// Class Description: +// Catalog for the I/O manager of digits collection for each detector. + +class G4DCIOcatalog +{ + public: // With description + G4DCIOcatalog(); + // Constructor + + virtual ~G4DCIOcatalog() {}; + // Destructor + + public: // With description + static G4DCIOcatalog* GetDCIOcatalog(); + // Construct G4DCIOcatalog and returns the pointer + + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. + + void RegisterEntry(G4VDCIOentry* d); + // Register I/O manager entry + + void RegisterDCIOmanager(G4VPDigitsCollectionIO* d); + // Register I/O manager + + G4VDCIOentry* GetEntry(G4std::string name); + // Returns the I/O manager entry + + G4VPDigitsCollectionIO* GetDCIOmanager(G4std::string name); + // Returns the registered I/O manager entry + + void PrintEntries(); + // Prints the list of I/O manager entries + + G4std::string CurrentDCIOmanager(); + // Returns the list of I/O managers + + void PrintDCIOmanager(); + // Prints the list of I/O managers + + size_t NumberOfDCIOmanager() { return theStore.size(); }; + // Returns the number of registered I/O managers. + + G4VPDigitsCollectionIO* GetDCIOmanager(int n); + // Returns the n-th registered I/O manager entry + + private: + int m_verbose; + static G4DCIOcatalog* f_thePointer; + DCIOmap theCatalog; + DCIOstore theStore; + +}; // End of class G4DCIOcatalog + +#endif + diff --git a/source/persistency/include/G4DCIOentryT.hh b/source/persistency/include/G4DCIOentryT.hh new file mode 100644 index 0000000000..8e2d9b2cb9 --- /dev/null +++ b/source/persistency/include/G4DCIOentryT.hh @@ -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. * +// ******************************************************************** +// File: G4DCIOentryT.hh +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#ifndef DCIO_ENTRY_T_HH +#define DCIO_ENTRY_T_HH 1 + +#include +#include "G4Types.hh" +#include "G4VPDigitsCollectionIO.hh" + +// Class inherited: +#include "G4VDCIOentry.hh" + +// Class Description: +// Template class of DigitsCollection I/O Manager for late binding + +template class G4DCIOentryT + : public G4VDCIOentry +{ + public: // With description + G4DCIOentryT(G4std::string n) + : G4VDCIOentry(n), f_manager(0) + { + if ( m_verbose > 2 ) { + G4cout << "G4DCIOentryT: Registering DigitsCollection IO manager" + << " for \"" << n << "\"" << G4endl; + } + } + // Constructor + + ~G4DCIOentryT() {}; + // Destructor + + public: // With description + void CreateDCIOmanager(G4std::string detName, G4std::string colName) + { + if ( f_manager == 0 ) { + f_manager = new T( detName, colName ); + if ( m_verbose > 2 ) { + G4cout << "G4DCIOentryT: Constructing DigitsCollection IO manager" + << " for \"" << detName << "\" " << f_manager << G4endl; + } + G4DCIOcatalog::GetDCIOcatalog()->RegisterDCIOmanager(f_manager); + if ( m_verbose > 2 ) { + G4DCIOcatalog::GetDCIOcatalog()->PrintDCIOmanager(); + } + } + } + // Create a new digits collection I/O manager + + void DeleteDCIOmanager() { if (f_manager!=0) delete f_manager; }; + // Delete a digits collection I/O manager + + private: + G4VPDigitsCollectionIO* f_manager; + +}; // End of class G4DCIOentryT + +#endif + diff --git a/source/persistency/include/G4FileUtilities.hh b/source/persistency/include/G4FileUtilities.hh new file mode 100644 index 0000000000..498ccca754 --- /dev/null +++ b/source/persistency/include/G4FileUtilities.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. * +// ******************************************************************** +// File: G4FileUtilities.hh +// +// History: +// 01.08.24 Youhei Morita Initial creation + +#ifndef FILE_UTILITIES_HH +#define FILE_UTILITIES_HH 1 + +#include "G4Types.hh" + +#include +#include +#include +#include +#include +#include +#include +#include "g4std/iostream" + + +// Class Description: +// File utilities to access files with POSIX interface. + +class G4FileUtilities +{ + public: // With description + G4FileUtilities(); + // Constructor + + ~G4FileUtilities(); + // Destructor + + public: // With description + G4bool FileExists(const G4std::string file); + // checks if the "file" exists. returns true if it does. + + G4std::string StrErrNo() const { return ::strerror(errno); }; + // returns the error message of the last system call as string. + + int Shell(G4std::string s) { return ::system(s.c_str()); }; + // execute the shell command. returns zero if success. + + int CopyFile(const G4std::string srcFile, const G4std::string dstFile); + // copies the "srcFile" to "dstFile". returns zero if success. + + int DeleteFile(const G4std::string file, const G4std::string option); + // deletes the "file" with the "option". returns zero if success. + + G4std::string GetEnv(const G4std::string env) { return ::getenv(env.c_str()); }; + // retuns the value of environment variable as string. + +}; // End of class G4FileUtilities + +#endif + diff --git a/source/persistency/include/G4HCIOcatalog.hh b/source/persistency/include/G4HCIOcatalog.hh new file mode 100644 index 0000000000..009a979f4d --- /dev/null +++ b/source/persistency/include/G4HCIOcatalog.hh @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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: G4HCIOcatalog.hh +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#ifndef HCIO_CATALOG_HH +#define HCIO_CATALOG_HH 1 + +#include "g4std/map" +#include "G4Types.hh" +#include "G4VPHitsCollectionIO.hh" + +class G4VHCIOentry; + +typedef G4std::map > HCIOmap; + +typedef G4std::map > HCIOstore; + +// Class Description: +// Catalog for the I/O manager of hits collection for each detector. + +class G4HCIOcatalog +{ + public: // With description + G4HCIOcatalog(); + // Constructor + + virtual ~G4HCIOcatalog() {}; + // Destructor + + public: // With description + static G4HCIOcatalog* GetHCIOcatalog(); + // Construct G4HCIOcatalog and returns the pointer + + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. + + void RegisterEntry(G4VHCIOentry* d); + // Register I/O manager entry + + void RegisterHCIOmanager(G4VPHitsCollectionIO* d); + // Register I/O manager + + G4VHCIOentry* GetEntry(G4std::string name); + // Returns the I/O manager entry + + G4VPHitsCollectionIO* GetHCIOmanager(G4std::string name); + // Returns the registered I/O manager entry + + void PrintEntries(); + // Prints the list of I/O manager entries + + G4std::string CurrentHCIOmanager(); + // Returns the list of I/O managers + + void PrintHCIOmanager(); + // Prints the list of I/O managers + + size_t NumberOfHCIOmanager() { return theStore.size(); }; + // Returns the number of registered I/O managers. + + G4VPHitsCollectionIO* GetHCIOmanager(int n); + // Returns the n-th registered I/O manager entry + + private: + int m_verbose; + static G4HCIOcatalog* f_thePointer; + HCIOmap theCatalog; + HCIOstore theStore; + +}; // End of class G4HCIOcatalog + +#endif + diff --git a/source/persistency/include/G4HCIOentryT.hh b/source/persistency/include/G4HCIOentryT.hh new file mode 100644 index 0000000000..93ab0b6f71 --- /dev/null +++ b/source/persistency/include/G4HCIOentryT.hh @@ -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. * +// ******************************************************************** +// File: G4HCIOentryT.hh +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#ifndef HCIO_ENTRY_T_HH +#define HCIO_ENTRY_T_HH 1 + +#include +#include "G4Types.hh" +#include "G4VPHitsCollectionIO.hh" + +// Class inherited: +#include "G4VHCIOentry.hh" + +// Class Description: +// Template class of HitsCollection I/O Manager for late binding + +template class G4HCIOentryT + : public G4VHCIOentry +{ + public: // With description + G4HCIOentryT(G4std::string n) + : G4VHCIOentry(n), f_manager(0) + { + if ( m_verbose > 2 ) { + G4cout << "G4HCIOentryT: Registering HitsCollection IO manager" + << " for \"" << n << "\"" << G4endl; + } + } + // Constructor + + ~G4HCIOentryT() {}; + // Destructor + + public: // With description + void CreateHCIOmanager(G4std::string detName, G4std::string colName) + { + if ( f_manager == 0 ) { + f_manager = new T( detName, colName ); + if ( m_verbose > 2 ) { + G4cout << "G4HCIOentryT: Constructing HitsCollection IO manager" + << " for \"" << detName << "\" " << f_manager << G4endl; + } + G4HCIOcatalog::GetHCIOcatalog()->RegisterHCIOmanager(f_manager); + if ( m_verbose > 2 ) { + G4HCIOcatalog::GetHCIOcatalog()->PrintHCIOmanager(); + } + } + } + // Create a new hits collection I/O manager + + void DeleteHCIOmanager() { if (f_manager!=0) delete f_manager; }; + // Delete a hits collection I/O manager + + private: + G4VPHitsCollectionIO* f_manager; + +}; // End of class G4HCIOentryT + +#endif + diff --git a/source/persistency/include/G4MCTEvent.hh b/source/persistency/include/G4MCTEvent.hh new file mode 100644 index 0000000000..74bcdd29dd --- /dev/null +++ b/source/persistency/include/G4MCTEvent.hh @@ -0,0 +1,134 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTEvent.hh +// +// ==================================================================== +#ifndef MCT_EVENT_H +#define MCT_EVENT_H + +#include "G4Types.hh" +#include "g4std/iostream" +#include "g4std/map" +#include "G4MCTGenParticle.hh" + +// ==================================================================== +// +// class definition +// +// ==================================================================== +class G4MCTGenEvent; +class G4MCTSimEvent; +class G4MCTSimParticle; +class HepMC::GenEvent; +class HepMC::GenParticle; + +typedef G4std::map MCTGen2SimParticleMap; +typedef G4std::map MCTSim2GenParticleMap; + +class G4MCTEvent { +protected: + int eventNumber; + G4MCTGenEvent* genEvent; + G4MCTSimEvent* simEvent; + + // primary table (bidirectional) + MCTGen2SimParticleMap gen2simParticleMap; + MCTSim2GenParticleMap sim2genParticleMap; + +public: + G4MCTEvent(); + virtual ~G4MCTEvent(); + + // copy constructor and assignment operator + G4MCTEvent(const G4MCTEvent& right); + const G4MCTEvent& operator=(const G4MCTEvent& right); + + // set/get functions + void SetEventNumber(int n); + int GetEventNumber() const; + + G4MCTGenEvent* GetGenEvent() const; + G4MCTSimEvent* GetSimEvent() const; + + // methods... + int GetNofPrimaries() const; + G4MCTSimParticle* GetSimParticle(const G4MCTGenParticle& genpart) const; + G4MCTGenParticle GetGenParticle(const G4MCTSimParticle* simpart) const; + int AddPrimaryPair(const G4MCTGenParticle& genp, + const G4MCTSimParticle* simp); + void ClearEvent(); + void Print(G4std::ostream& ostr= G4std::cout) const; + + // iterators + typedef MCTGen2SimParticleMap::const_iterator genprimary_const_iterator; + genprimary_const_iterator genprimaries_begin() const; + genprimary_const_iterator genprimaries_end() const; + + typedef MCTSim2GenParticleMap::const_iterator simprimary_const_iterator; + simprimary_const_iterator simprimaries_begin() const; + simprimary_const_iterator simprimaries_end() const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline G4MCTEvent::G4MCTEvent(const G4MCTEvent& right) +{ + *this= right; +} + +inline const G4MCTEvent& G4MCTEvent::operator=(const G4MCTEvent& right) +{ + eventNumber= right.eventNumber; + + simEvent= right.simEvent; // shallow copy... + genEvent= right.genEvent; + + gen2simParticleMap= right.gen2simParticleMap; + sim2genParticleMap= right.sim2genParticleMap; + + return *this; +} + +inline void G4MCTEvent::SetEventNumber(int n) { eventNumber= n; } +inline int G4MCTEvent::GetEventNumber() const { return eventNumber; } + +inline int G4MCTEvent::GetNofPrimaries() const + { return gen2simParticleMap.size(); } +inline G4MCTSimEvent* G4MCTEvent::GetSimEvent() const { return simEvent; } +inline G4MCTGenEvent* G4MCTEvent::GetGenEvent() const { return genEvent; } + +// iterators +inline G4MCTEvent::genprimary_const_iterator G4MCTEvent::genprimaries_begin() const +{ return gen2simParticleMap.begin(); } + +inline G4MCTEvent::genprimary_const_iterator G4MCTEvent::genprimaries_end() const +{ return gen2simParticleMap.end(); } + +inline G4MCTEvent::simprimary_const_iterator G4MCTEvent::simprimaries_begin() const +{ return sim2genParticleMap.begin(); } + +inline G4MCTEvent::simprimary_const_iterator G4MCTEvent::simprimaries_end() const +{ return sim2genParticleMap.end(); } + +#endif diff --git a/source/persistency/include/G4MCTGenEvent.hh b/source/persistency/include/G4MCTGenEvent.hh new file mode 100644 index 0000000000..61ebaa6320 --- /dev/null +++ b/source/persistency/include/G4MCTGenEvent.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTGenEvent.hh +// +// ==================================================================== +#ifndef MCT_GEN_EVENT_H +#define MCT_GEN_EVENT_H + +#include "G4Types.hh" +#include "g4std/iostream" +#include "g4std/vector" +#include "CLHEP/HepMC/GenEvent.h" + +// ==================================================================== +// +// class definition +// +// ==================================================================== + +class G4MCTGenEvent { +protected: + G4std::vector eventList; + +public: + G4MCTGenEvent(); + virtual ~G4MCTGenEvent(); + + // copy constructor and assignment operator + G4MCTGenEvent(const G4MCTGenEvent& right); + const G4MCTGenEvent& operator=(const G4MCTGenEvent& right); + + // methods... + int AddGenEvent(const HepMC::GenEvent* genevent); + int GetNofEvents() const; + const HepMC::GenEvent* GetGenEvent(int i); + + void ClearEvent(); + + void Print(G4std::ostream& ostr= G4std::cout) const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline G4MCTGenEvent::G4MCTGenEvent(const G4MCTGenEvent& right) +{ + *this= right; +} + +inline const G4MCTGenEvent& G4MCTGenEvent::operator=(const G4MCTGenEvent& right) +{ + eventList= right.eventList; // shallow copy + + return *this; +} + +#endif diff --git a/source/persistency/include/G4MCTGenParticle.hh b/source/persistency/include/G4MCTGenParticle.hh new file mode 100644 index 0000000000..081565f17b --- /dev/null +++ b/source/persistency/include/G4MCTGenParticle.hh @@ -0,0 +1,39 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTGenParticle.hh +// +// ==================================================================== +#ifndef MCT_GEN_PARTICLE_H +#define MCT_GEN_PARTICLE_H + +#include "G4Types.hh" +#include "g4std/algorithm" +#include "CLHEP/HepMC/GenEvent.h" +#include "CLHEP/HepMC/GenParticle.h" + +class HepMC::GenEvent; +class HepMC::GenParticle; + +typedef G4std::pair G4MCTGenParticle; + +#endif + diff --git a/source/persistency/include/G4MCTSimEvent.hh b/source/persistency/include/G4MCTSimEvent.hh new file mode 100644 index 0000000000..4bc98627ae --- /dev/null +++ b/source/persistency/include/G4MCTSimEvent.hh @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTSimEvent.hh +// +// ==================================================================== +#ifndef MCT_SIM_EVENT_H +#define MCT_SIM_EVENT_H + +#include "G4Types.hh" +#include "g4std/iostream" +#include "g4std/vector" +#include "g4std/map" + +// ==================================================================== +// +// class definition +// +// ==================================================================== +class G4MCTSimParticle; +class G4MCTSimVertex; + +typedef G4std::map G4MCTSimParticleContainer; +typedef G4std::vector G4MCTSimVertexContainer; + +class G4MCTSimEvent { +protected: +G4MCTSimParticleContainer particleMap; +G4MCTSimVertexContainer vertexVec; + +public: + G4MCTSimEvent(); + ~G4MCTSimEvent(); + + // copy constructor and assignment operator + G4MCTSimEvent(const G4MCTSimEvent& right); + const G4MCTSimEvent& operator=(const G4MCTSimEvent& right); + + // methods... + G4bool AddParticle(const G4MCTSimParticle* aparticle); + int GetNofParticles() const; + int GetNofVertices() const; + int GetNofStoredParticles() const; + int GetNofStoredVertices() const; + G4MCTSimParticle* FindParticle(int tid) const; + G4MCTSimVertex* GetVertex(int vid) const; + + void BuildVertexContainer(); + void ClearEvent(); + void Print(G4std::ostream& ostr= G4std::cout) const; + + // iterators + typedef G4MCTSimParticleContainer::iterator particle_iterator; + typedef G4MCTSimParticleContainer::const_iterator particle_const_iterator; + particle_iterator particles_begin(); + particle_iterator particles_end(); + particle_const_iterator particles_begin() const; + particle_const_iterator particles_end() const; + + typedef G4MCTSimVertexContainer::iterator vertex_iterator; + typedef G4MCTSimVertexContainer::const_iterator vertex_const_iterator; + vertex_iterator vertices_begin(); + vertex_iterator vertices_end(); + vertex_const_iterator vertices_begin() const; + vertex_const_iterator vertices_end() const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline G4MCTSimEvent::G4MCTSimEvent(const G4MCTSimEvent& right) +{ + *this= right; +} + +inline const G4MCTSimEvent& G4MCTSimEvent::operator=(const G4MCTSimEvent& right) +{ + particleMap= right.particleMap; // shallow copy + + return *this; +} + +inline int G4MCTSimEvent::GetNofParticles() const +{ + return particleMap.size(); +} + +inline int G4MCTSimEvent::GetNofVertices() const +{ + return vertexVec.size(); +} + +// iterators +inline G4MCTSimEvent::particle_iterator G4MCTSimEvent::particles_begin() +{ return particleMap.begin(); } + +inline G4MCTSimEvent::particle_iterator G4MCTSimEvent::particles_end() +{ return particleMap.end(); } + +inline G4MCTSimEvent::particle_const_iterator + G4MCTSimEvent::particles_begin() const +{ return particleMap.begin(); } + +inline G4MCTSimEvent::particle_const_iterator G4MCTSimEvent::particles_end() const +{ return particleMap.end(); } + +inline G4MCTSimEvent::vertex_iterator G4MCTSimEvent::vertices_begin() +{ return vertexVec.begin(); } + +inline G4MCTSimEvent::vertex_iterator G4MCTSimEvent::vertices_end() +{ return vertexVec.end(); } + +inline G4MCTSimEvent::vertex_const_iterator G4MCTSimEvent::vertices_begin() const +{ return vertexVec.begin(); } + +inline G4MCTSimEvent::vertex_const_iterator G4MCTSimEvent::vertices_end() const +{ return vertexVec.end(); } + +#endif diff --git a/source/persistency/include/G4MCTSimParticle.hh b/source/persistency/include/G4MCTSimParticle.hh new file mode 100644 index 0000000000..fa899283a0 --- /dev/null +++ b/source/persistency/include/G4MCTSimParticle.hh @@ -0,0 +1,180 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTSimParticle.hh +// +// ==================================================================== +#ifndef MCT_SIM_PARTICLE_H +#define MCT_SIM_PARTICLE_H + +#include "G4Types.hh" +#include "g4std/vector" +#include +#include "g4std/iostream" +#include "CLHEP/Vector/LorentzVector.h" + +// ==================================================================== +// +// class definition +// +// ==================================================================== +class G4MCTSimVertex; +class G4MCTSimParticle; + +typedef G4std::vector SimParticleList; + +class G4MCTSimParticle { +protected: + G4MCTSimParticle* parentParticle; + G4std::vector associatedParticleList; + + G4std::string name; + int pdgID; + int trackID; + int parentTrackID; + G4bool primaryFlag; + HepLorentzVector momentumAtVertex; + G4MCTSimVertex* vertex; + G4bool storeFlag; + +public: + G4MCTSimParticle(); + G4MCTSimParticle(G4std::string aname, int apcode, int atid, int ptid, + const HepLorentzVector& p); + G4MCTSimParticle(G4std::string aname, int apcode, int atid, int ptid, + const HepLorentzVector& p, const G4MCTSimVertex* v); + virtual ~G4MCTSimParticle(); + + // copy constructor and assignment operator + G4MCTSimParticle(const G4MCTSimParticle& right); + const G4MCTSimParticle& operator=(const G4MCTSimParticle& right); + + // set/get functions + void SetParentParticle(const G4MCTSimParticle* p); + G4MCTSimParticle* GetParentParticle() const; + + void SetParticleName(G4std::string aname); + const G4std::string& GetParticleName() const; + + void SetPdgID(int id); + int GetPdgID() const; + + void SetTrackID(int id); + int GetTrackID() const; + + void SetParentTrackID(int id); + int GetParentTrackID() const; + + void SetPrimaryFlag(G4bool q); + G4bool GetPrimaryFlag() const; + + void SetMomentumAtVertex(const HepLorentzVector& p); + const HepLorentzVector& GetMomentumAtVertex() const; + + void SetVertex(const G4MCTSimVertex* v); + G4MCTSimVertex* GetVertex() const; + + void SetStoreFlag(G4bool q); + G4bool GetStoreFlag() const; + + // methods... + int AssociateParticle(G4MCTSimParticle* p); + int GetNofAssociatedParticles() const; + G4MCTSimParticle* GetAssociatedParticle(int i) const; + int GetTreeLevel() const; + void SetStoreFlagToParentTree(G4bool q=true); + + void Print(G4std::ostream& ostr= G4std::cout, G4bool qrevorder=false) const; + void PrintSingle(G4std::ostream& ostr= G4std::cout) const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== +inline G4MCTSimParticle::G4MCTSimParticle(const G4MCTSimParticle& right) +{ + *this= right; +} + +inline const G4MCTSimParticle& + G4MCTSimParticle::operator=(const G4MCTSimParticle& right) +{ + parentParticle= right.parentParticle; + associatedParticleList= right.associatedParticleList; // shallow copy + + name= right.name; + pdgID= right.pdgID; + trackID= right.trackID; + parentTrackID= right.parentTrackID; + primaryFlag= right.primaryFlag; + momentumAtVertex= right.momentumAtVertex; + vertex= right.vertex; + + return *this; +} + +inline void G4MCTSimParticle::SetParentParticle(const G4MCTSimParticle* p) +{ parentParticle= const_cast(p); } + +inline G4MCTSimParticle* G4MCTSimParticle::GetParentParticle() const +{ return parentParticle; } + +inline void G4MCTSimParticle::SetParticleName(G4std::string aname) +{ name= aname; } + +inline const G4std::string& G4MCTSimParticle::GetParticleName() const +{ return name; } + +inline void G4MCTSimParticle::SetPdgID(int id) { pdgID= id; } + +inline int G4MCTSimParticle::GetPdgID() const { return pdgID; } + +inline void G4MCTSimParticle::SetTrackID(int id) { trackID= id; } + +inline int G4MCTSimParticle::GetTrackID() const { return trackID; } + +inline void G4MCTSimParticle::SetPrimaryFlag(G4bool q) { primaryFlag= q; } + +inline G4bool G4MCTSimParticle::GetPrimaryFlag() const { return primaryFlag; } + +inline void G4MCTSimParticle::SetParentTrackID(int id) +{ parentTrackID= id; } + +inline int G4MCTSimParticle::GetParentTrackID() const +{ return parentTrackID; } + +inline void G4MCTSimParticle::SetMomentumAtVertex(const HepLorentzVector& p) +{ momentumAtVertex= p; } + +inline const HepLorentzVector& G4MCTSimParticle::GetMomentumAtVertex() const +{ return momentumAtVertex; } + +inline void G4MCTSimParticle::SetVertex(const G4MCTSimVertex* v) +{ vertex= const_cast(v); } + +inline G4MCTSimVertex* G4MCTSimParticle::GetVertex() const +{ return vertex; } + +inline void G4MCTSimParticle::SetStoreFlag(G4bool q) { storeFlag= q; } + +inline G4bool G4MCTSimParticle::GetStoreFlag() const { return storeFlag; } + +#endif diff --git a/source/persistency/include/G4MCTSimVertex.hh b/source/persistency/include/G4MCTSimVertex.hh new file mode 100644 index 0000000000..0be483d179 --- /dev/null +++ b/source/persistency/include/G4MCTSimVertex.hh @@ -0,0 +1,192 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTSimVertex.hh +// +// ==================================================================== +#ifndef MCT_SIM_VERTEX_H +#define MCT_SIM_VERTEX_H + +#include "G4Types.hh" +#include "g4std/iostream" +#include "g4std/vector" +#include +#include "CLHEP/Vector/ThreeVector.h" +#include "G4MCTSimParticle.hh" + +// ==================================================================== +// +// class definition +// +// ==================================================================== + +class G4MCTSimVertex { +private: + int inParticleTrackID; + G4std::vector outParticleTrackIDList; + + int id; // assigned independently from G4 + Hep3Vector position; + double time; + G4std::string volumeName; + int volumeNumber; + G4std::string creatorProcessName; + G4bool storeFlag; + +public: + G4MCTSimVertex(); + G4MCTSimVertex(const Hep3Vector& x, double t); + G4MCTSimVertex(const Hep3Vector& x, double t, + G4std::string vname, int ncopy, G4std::string pname); + ~G4MCTSimVertex(); + + // copy constructor and assignment operator + G4MCTSimVertex(const G4MCTSimVertex& right); + const G4MCTSimVertex& operator=(const G4MCTSimVertex& right); + + // set/get functions + void SetID(int i); + int GetID() const; + + void SetPosition(const Hep3Vector& x); + const Hep3Vector& GetPosition() const; + + void SetTime(double t); + double GetTime() const; + + void SetVolumeName(G4std::string vname); + const G4std::string& GetVolumeName() const; + + void SetVolumeNumber(int n); + int GetVolumeNumber() const; + + void SetCreatorProcessName(G4std::string pname); + const G4std::string& GetCreatorProcessName() const; + + void SetStoreFlag(G4bool q); + G4bool GetStoreFlag() const; + + // methods... + void SetInParticle(const G4MCTSimParticle* in); + void SetInParticle(int in); + int GetInParticleTrackID() const; + + int GetNofOutParticles() const; + int AddOutParticle(const G4MCTSimParticle* out); + int AddOutParticle(int out); + int GetOutParticleTrackID(int i) const; + + void Print(G4std::ostream& ostr= G4std::cout) const; +}; + +// ==================================================================== +// inline functions +// ==================================================================== +inline G4MCTSimVertex::G4MCTSimVertex(const G4MCTSimVertex& right) +{ + *this= right; +} + +inline const G4MCTSimVertex& + G4MCTSimVertex::operator=(const G4MCTSimVertex& right) +{ + inParticleTrackID= right.inParticleTrackID; + outParticleTrackIDList= right.outParticleTrackIDList; + + id= right.id; + position= right.position; + time= right.time; + volumeName= right.volumeName; + volumeNumber= right.volumeNumber; + creatorProcessName= right.creatorProcessName; + + return *this; +} + +inline void G4MCTSimVertex::SetID(int i) { id= i; } +inline int G4MCTSimVertex::GetID() const { return id; } + +inline void G4MCTSimVertex::SetPosition(const Hep3Vector& x) +{ position= x; } + +inline const Hep3Vector& G4MCTSimVertex::GetPosition() const +{ return position; } + +inline void G4MCTSimVertex::SetTime(double t) +{ time= t; } + +inline double G4MCTSimVertex::GetTime() const +{ return time; } + +inline void G4MCTSimVertex::SetVolumeName(G4std::string vname) +{ volumeName= vname; } + +inline const G4std::string& G4MCTSimVertex::GetVolumeName() const +{ return volumeName; } + +inline void G4MCTSimVertex::SetVolumeNumber(int n) +{ volumeNumber= n; } + +inline int G4MCTSimVertex::GetVolumeNumber() const +{ return volumeNumber; } + +inline void G4MCTSimVertex::SetCreatorProcessName(G4std::string pname) +{ creatorProcessName= pname; } + +inline const G4std::string& G4MCTSimVertex::GetCreatorProcessName() const +{ return creatorProcessName; } + +inline void G4MCTSimVertex::SetStoreFlag(G4bool q) { storeFlag= q; } + +inline G4bool G4MCTSimVertex::GetStoreFlag() const { return storeFlag; } + +inline void G4MCTSimVertex::SetInParticle(const G4MCTSimParticle* in) +{ inParticleTrackID= in-> GetTrackID(); } + +inline void G4MCTSimVertex::SetInParticle(int in) +{ inParticleTrackID= in; } + +inline int G4MCTSimVertex::GetInParticleTrackID() const +{ return inParticleTrackID; } + +inline int G4MCTSimVertex::GetNofOutParticles() const +{ return outParticleTrackIDList.size(); } + +inline int G4MCTSimVertex::AddOutParticle(const G4MCTSimParticle* out) +{ + outParticleTrackIDList.push_back(out->GetTrackID()); + return outParticleTrackIDList.size(); +} + +inline int G4MCTSimVertex::AddOutParticle(int out) +{ + outParticleTrackIDList.push_back(out); + return outParticleTrackIDList.size(); +} + +inline int G4MCTSimVertex::GetOutParticleTrackID(int i) const +{ + int size= outParticleTrackIDList.size(); + if(i>=0 && i< size) return outParticleTrackIDList[i]; + else return 0; +} + +#endif diff --git a/source/persistency/include/G4PersistencyCenter.hh b/source/persistency/include/G4PersistencyCenter.hh new file mode 100644 index 0000000000..72b794aa71 --- /dev/null +++ b/source/persistency/include/G4PersistencyCenter.hh @@ -0,0 +1,176 @@ +// +// ******************************************************************** +// * 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: G4PersistencyCenter.hh +// +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") + +#ifndef PERSISTENCY_CENTER_HH +#define PERSISTENCY_CENTER_HH 1 + +#include "G4Types.hh" +#include +#include "g4std/vector" +#include "g4std/map" +#include "G4HCIOcatalog.hh" +#include "G4VHCIOentry.hh" +#include "G4DCIOcatalog.hh" +#include "G4VDCIOentry.hh" + +#ifndef WIN32 + #include "G4FileUtilities.hh" +#endif + +// Forward Declaration to avoid circular dependencies. +class G4PersistencyManager; + +typedef G4std::map > PMap; +typedef G4std::map > ObjMap; +typedef G4std::map > FileMap; + +enum StoreMode { kOn, kOff, kRecycle }; + +typedef G4std::map > StoreMap; +typedef G4std::map > BoolMap; + +// Forward Declarations: +class G4PersistencyCenterMessenger; + +// Class Description: +// Class to handle loading of the G4PersistencyManager. + +class G4PersistencyCenter +{ + public: // With description + G4PersistencyCenter(); + G4PersistencyCenter(const G4PersistencyCenter&); + // Constructor + + ~G4PersistencyCenter(); + // Destructor + + public: // With description + static G4PersistencyCenter* GetPersistencyCenter(); + // returns the pointer of singleton G4PersistencyCenter + + void SelectSystem(G4std::string systemName); + // Select the persistency package + + const G4std::string CurrentSystem() { return f_currentSystemName; }; + // returns the current persistent package name + + void SetHepMCObjyReaderFile(G4std::string file); + // Sets the name of HepMCObjyReader file name. To be called by generator. + + G4std::string CurrentHepMCObjyReaderFile(); + // Sets the name of HepMCObjyReader file name. To be called by generator. + + void SetStoreMode(G4std::string objName, StoreMode mode); + // Sets the object store mode. Modes are kOn, kOff or kRecycle. + + void SetRetrieveMode(G4std::string objName, G4bool mode); + // Sets the object retrieve mode. Modes are true or false. + + StoreMode CurrentStoreMode(G4std::string objName); + // returns the current object store mode. + + G4bool CurrentRetrieveMode(G4std::string objName); + // returns the current object store mode. + + G4bool SetWriteFile(G4std::string objName, G4std::string writeFileName); + // Sets the output filename. + + G4bool SetReadFile(G4std::string objName, G4std::string readFileName); + // Sets the input filename. + + G4std::string CurrentWriteFile(G4std::string objName); + // returns the current output filename. + + G4std::string CurrentReadFile(G4std::string objName); + // returns the current input filename. + + G4std::string CurrentObject(G4std::string file); + // returns the current object type + + void AddHCIOmanager(G4std::string detName, G4std::string colName); + // add a hits colleciton I/O manager to the catalog + + G4std::string CurrentHCIOmanager(); + // Returns a list of registered hits colleciton I/O managers + + void AddDCIOmanager(G4std::string detName); + // add a digits colleciton I/O manager to the catalog + + G4std::string CurrentDCIOmanager(); + // Returns a list of registered digits colleciton I/O managers + + void PrintAll(); + // prints the current G4PersistencyCenter settings. + + G4PersistencyManager* CurrentPersistencyManager() { return f_currentManager; }; + // returns the pointer of the currnet G4PersistencyManager. + + void SetPersistencyManager(G4PersistencyManager* pm, G4std::string name); + // returns the pointer of the currnet G4PersistencyManager. + + G4PersistencyManager* GetPersistencyManager(G4std::string nam); + // returns the pointer of the currnet G4PersistencyManager with name. + + void RegisterPersistencyManager(G4PersistencyManager* pm); + // registers the persistency manager to the runtime catalog. + + void DeletePersistencyManager(); + // deletes the current G4PersistencyManager. + + void SetVerboseLevel(int v); + // Set verbose level. + + int VerboseLevel() { return m_verbose; }; + // Return verbose level. + + private: + G4std::string PadString(G4std::string name, unsigned int width); + // truncate or pad a string up to the width. + + private: + G4PersistencyCenterMessenger* f_G4PersistencyCenterMessenger; + + private: + G4PersistencyCenterMessenger* f_theMessenger; + static G4PersistencyCenter* f_thePointer; + G4PersistencyManager* f_currentManager; + G4std::string f_currentSystemName; + PMap f_theCatalog; + ObjMap f_wrObj; + ObjMap f_rdObj; + FileMap f_writeFileName; + FileMap f_readFileName; + StoreMap f_writeFileMode; + BoolMap f_readFileMode; + G4int m_verbose; +#ifndef WIN32 + G4FileUtilities f_ut; +#endif +}; // End of class G4PersistencyCenter + +#endif + diff --git a/source/persistency/include/G4PersistencyCenterMessenger.hh b/source/persistency/include/G4PersistencyCenterMessenger.hh new file mode 100644 index 0000000000..ccf3c6c232 --- /dev/null +++ b/source/persistency/include/G4PersistencyCenterMessenger.hh @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * 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: G4PersistencyCenterMessenger.hh +// +// History: +// 01.07.18 Youhei Morita Initial creation (with "fadsclass") + +#ifndef PERSISTENCY_CENTER_MESSENGER_HH +#define PERSISTENCY_CENTER_MESSENGER_HH 1 + +#include "G4UIcommand.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4PersistencyCenter.hh" + +// Class inherited: +#include "G4UImessenger.hh" + +// Class Description: +// User interface messenger class to interface G4PersistencyCenter + +class G4PersistencyCenterMessenger + : public G4UImessenger +{ + public: // With description + G4PersistencyCenterMessenger(G4PersistencyCenter* p); + // Constructor + + ~G4PersistencyCenterMessenger(); + // Destructor + + public: // With description + void SetNewValue(G4UIcommand* command, G4String newValues); + // User interface for setting a new value + + G4String GetCurrentValue(G4UIcommand* command); + // User interface for getting a value + + private: + std::string PopWord(std::string text, int n, std::string delim); + // Parse text and returns the n-th words separated by delim + + private: + G4PersistencyCenter* pc; + G4UIdirectory* directory; + G4UIcmdWithAnInteger* verboseCmd; + G4UIcmdWithAString* select; + G4UIcmdWithAString* regHitIO; + std::vector wrObj; + std::vector rdObj; + std::vector storeObj; + std::vector setWrFile; + std::vector setRdFile; + G4UIcmdWithoutParameter* printAll; + +}; // End of class G4PersistencyCenterMessenger + +#endif + diff --git a/source/persistency/include/G4PersistencyManager.hh b/source/persistency/include/G4PersistencyManager.hh new file mode 100644 index 0000000000..0367ddbd28 --- /dev/null +++ b/source/persistency/include/G4PersistencyManager.hh @@ -0,0 +1,206 @@ +// +// ******************************************************************** +// * 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: G4PersistencyManager.hh +// +// History: +// 01.07.17 Youhei Morita Initial creation (with "fadsclass") + +#ifndef PERSISTENCY_MANAGER_HH +#define PERSISTENCY_MANAGER_HH 1 + +#include "G4Event.hh" +#ifndef WIN32 + #include "CLHEP/HepMC/GenEvent.h" + #include "G4VHepMCIO.hh" + #include "G4VMCTruthIO.hh" +#endif +#include "G4HCIOcatalog.hh" +#include "G4DCIOcatalog.hh" +#include "G4VPEventIO.hh" +#include "G4VPHitIO.hh" +#include "G4VPDigitIO.hh" +#include "G4VTransactionManager.hh" +#include + +class G4PersistencyCenter; + +// Class inherited: +#include "G4VPersistencyManager.hh" + +// Class Description: +// Manager base class to handle event store and retrieve operation. +// Actual persistency implementation should be handled with +// derived classes. +// +// Each persistency package should implement derived classes of +// G4VHepMCIO, G4VMCTruthIO, G4VPHitIO, G4VPDigitIO, G4VPEventIO. +// Concreate G4PersistencyManager should implement the methods +// HepMCIO(), MCTruthIO(), HitIO(), DigitIO() and EventIO() to +// return the pointers of the above classes. +// G4PersistencyManager handles the sequence of the storing and +// retrieving of the persistent object of each type, along with +// the transaction handling. +// +// Retrieving a HepMC event: +// +// G4PersistencyManager::Retrieve( HepMC::GenEvent*& ) +// | +// | ... StartRead() ... +// | +// | ... HepMCIO()->Retrieve() ... +// | +// | ... Commit() ... +// V +// +// Storing a Geant4 event: +// +// G4PersistencyManager::Store( G4Pevent* ) +// | +// | ... StartUpdate() ... +// | +// | ... HepMCIO()->Store( HepMC event ) ... +// | +// | ... MCTruthIO()->Store( MCTruth event ) ... +// | +// | ... HitIO()->Store( hit_collection_of_event ) ... +// | +// | ... DigitIO()->Store( digit_collection_of_event ) ... +// | +// | ... EventIO()->Store( event with hits and digits ) ... +// | +// | ... Commit() ... +// V +// +// Retrieving a Geant event: +// +// G4PersistencyManager::Retrieve( event ) +// | +// | ... StartRead() ... +// | +// | ... EventIO()->Retrieve( event ) ... +// | +// | ... Commit() ... +// V +// +// Hit collection and digit collection of each detector component +// should be handled by detector specific I/O manager, which +// should be registered to the G4PersistencyCenter with +// AddHCIOmanager() and AddDCIOmanager(). Usually this is done +// through a command +// +// /Persistency/Store/Using/HitIO +// +// which is handled by G4PersistencyCenterMessenger. +// +// A static template declaration of G4HCIOentryT must be +// implementated for each I/O manager. + +class G4PersistencyManager + : public G4VPersistencyManager +{ + friend class G4PersistencyCenter; + + public: // With description + G4PersistencyManager(G4PersistencyCenter* pc, std::string n); + // Constructor + + virtual ~G4PersistencyManager(); + // Destructor + + public: // With description + virtual G4PersistencyManager* Create() {return 0;}; + // Create a new persistency manager. To be used by G4PersistencyManagerT<>. + + std::string GetName() {return nameMgr;}; + // Get the name of persistency manager + + virtual G4VPEventIO* EventIO() { return 0; }; + // Returns the current event I/O handling manager + // Each derived class should return the pointer of actual manager. + + virtual G4VPHitIO* HitIO() { return 0; }; + // Returns the current hit I/O handling manager + // Each derived class should return the pointer of actual manager. + + virtual G4VPDigitIO* DigitIO() { return 0; }; + // Returns the current digit I/O handling manager + // Each derived class should return the pointer of actual manager. +#ifndef WIN32 + virtual G4VHepMCIO* HepMCIO() { return 0; }; + // Returns the current HepMC I/O handling manager + // Each derived class should return the pointer of actual manager. + + virtual G4VMCTruthIO* MCTruthIO() { return 0; }; + // Returns the current MCTruth I/O handling manager + // Each derived class should return the pointer of actual manager. +#endif + virtual G4VTransactionManager* TransactionManager() { return 0; }; + // Returns the current transaction manager + // Each derived class should return the pointer of actual manager. + + virtual void Initialize() {}; + // Initialize the persistency package. + // Each derived class should implement the acutal initialization sequence. + + void SetVerboseLevel(int v); + // Set verbose level. + + G4bool Store(const G4Event* evt); + // Store the G4Event and its associated objects + + G4bool Retrieve(G4Event*& evt); + // Retrieve the G4Event and its associated objects +#ifndef WIN32 + G4bool Retrieve(HepMC::GenEvent*& evt, int id=-1); + // retrieves HepMC GenEvent and its associated object. + // To be used by generator/HepMCObjyReader. +#endif + G4bool Store(const G4Run*) {return false;}; + // not used + + G4bool Retrieve(G4Run*&) {return false;}; + // not used + + G4bool Store(const G4VPhysicalVolume*) {return false;}; + // not used + + G4bool Retrieve(G4VPhysicalVolume*&) {return false;}; + // not used + + protected: + static G4PersistencyManager* GetPersistencyManager(); + // Get the instance of persistency manager + + protected: + G4PersistencyCenter* f_pc; + int m_verbose; + + private: + std::string nameMgr; + // GeneratorCenter* f_GenCenter; + // G4MCTManager* f_MCTman; + G4bool f_is_initialized; + +}; // End of class G4PersistencyManager + +#endif + diff --git a/source/persistency/include/G4PersistencyManagerT.hh b/source/persistency/include/G4PersistencyManagerT.hh new file mode 100644 index 0000000000..64eb131269 --- /dev/null +++ b/source/persistency/include/G4PersistencyManagerT.hh @@ -0,0 +1,126 @@ +// +// ******************************************************************** +// * 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: G4PersistencyManagerT.hh +// +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") + +#ifndef PERSISTENCY_MANAGER_T_HH +#define PERSISTENCY_MANAGER_T_HH 1 + +#include "G4PersistencyCenter.hh" + +// Class inherited: +#include "G4PersistencyManager.hh" + +// Class Description: +// Template class of G4PersistencyManager for late binding + +template class G4PersistencyManagerT + : public G4PersistencyManager +{ + public: // With description + G4PersistencyManagerT(G4PersistencyCenter* pc, G4std::string n) + : G4PersistencyManager(pc, n), pm(0) + { + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManagerT: Registering G4PersistencyManager \"" + << n << "\"" << G4endl; + } + G4PersistencyCenter::GetPersistencyCenter()-> + RegisterPersistencyManager(this); + } + // Constructor + + ~G4PersistencyManagerT() {}; + // Destructor + + public: // With description + G4PersistencyManager* Create() + { + pm = new T(f_pc, GetName()); + return pm; + } + // Create a new persistency manager + + void Delete() { if (pm!=0) delete pm; }; + // Delete a persistency mamanger + + G4VPEventIO* EventIO() + { + if (pm) return pm->EventIO(); + else return 0; + }; + // Returns the current event I/O handling manager + + G4VPHitIO* HitIO() + { + if (pm) return pm->HitIO(); + else return 0; + }; + // Returns the current hit I/O handling manager + + G4VPDigitIO* DigitIO() + { + if (pm) return pm->DigitIO(); + else return 0; + }; + // Returns the current digit I/O handling manager + + G4VHepMCIO* HepMCIO() + { + if (pm) return pm->HepMCIO(); + else return 0; + }; + // Returns the current digit I/O handling manager + + G4VMCTruthIO* MCTruthIO() + { + if (pm) return pm->MCTruthIO(); + else return 0; + }; + // Returns the current digit I/O handling manager + + G4VTransactionManager* TransactionManager() + { + if (pm) return pm->TransactionManager(); + else return 0; + }; + // Returns the current transaction manager + + void Initialize() {}; + // Initialize the persistency package. + + void SetVerboseLevel(int v) + { + if (pm) return pm->SetVerboseLevel(); + else return 0; + }; + // Sets the verbose level to the persistency manager + + private: + G4PersistencyManager* pm; + +}; // End of class G4PersistencyManagerT + +#endif + diff --git a/source/persistency/include/G4Pevent.hh b/source/persistency/include/G4Pevent.hh new file mode 100644 index 0000000000..1fe4a6600b --- /dev/null +++ b/source/persistency/include/G4Pevent.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. * +// ******************************************************************** +// File: G4Pevent.hh +// +// History: +// '01.11.18 Youhei Morita Initial creation + +#ifndef G4PEVENT_HH +#define G4PEVENT_HH 1 + +#include "G4Event.hh" +// not yet // #include "G4MCTEvent.hh" +#include "CLHEP/HepMC/GenEvent.h" + +// Class Description: +// Geant4 event object for store. +// +// This class has pointers to HepMC::GenEvent, MCTruth and G4Event. +// +// In the event store operation, this object will be created in the concrete +// class of G4VPEventIO::Store() method, and will be deleted immediately after +// creating persistent Geant4 event. +// +// In the event retrieve operation, this object will be created in the +// concrete Persistency::Retrieve() method. The retrieved G4Pevent +// has to be deleted by the user method which called the Retrieve(). + +class G4Pevent +{ + public: // With description + // G4Pevent( HepMC::GenEvent* hepevt, G4MCTEvent* mctevt, G4Event* g4evt ); + G4Pevent( HepMC::GenEvent* hepevt, G4Event* g4evt ); + // Constructor + + ~G4Pevent(); + // Destructor + + public: // With description + int GetEventID() { return m_id; }; + // returns the event ID. + + G4Event* GetEvent() { return f_g4evt; }; + // returns the G4Event. + + HepMC::GenEvent* GetHepMCGenEvent() { return f_hepevt; }; + // returns the HepMC GenEvent. + + // G4MCTEvent* GetMCTEvent() { return f_mctevt; }; + // returns the MCTruth event. + + int GetGenEventID() const { return genEventID; }; + // returns the GenEvent ID. + + void SetGenEventID(int id) { genEventID=id; }; + // set the GenEvent ID. + + private: + HepMC::GenEvent* f_hepevt; + int genEventID; + // G4MCTEvent* f_mctevt; + G4Event* f_g4evt; + int m_id; + +}; // End of class G4Pevent + +#endif + diff --git a/source/persistency/geometry/solids/CSG/include/G4PTubs.ddl b/source/persistency/include/G4VDCIOentry.hh similarity index 62% rename from source/persistency/geometry/solids/CSG/include/G4PTubs.ddl rename to source/persistency/include/G4VDCIOentry.hh index f900fbe6cf..46ef0346b1 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTubs.ddl +++ b/source/persistency/include/G4VDCIOentry.hh @@ -19,45 +19,47 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VDCIOentry.hh // -// -// $Id: G4PTubs.ddl,v 1.5 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// History: +// '01.09.12 Youhei Morita Initial creation + +#ifndef VDCIO_ENTRY_T_HH +#define VDCIO_ENTRY_T_HH 1 + +#include "G4Types.hh" +#include +#include "G4PersistencyCenter.hh" // Class Description: -// Persistent version of G4PTubs solid. +// Abstract base class for digits collection I/O manager entry -// History: -// 19.06.98 A.Kimura Converted G4Tubs.hh - -#ifndef G4PTUBS_DDL -#define G4PTUBS_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4VSolid; -class G4Tubs; - -class G4PTubs - : public G4PCSGSolid +class G4VDCIOentry { -public: // With description - G4PTubs(const G4Tubs* theTubs); - virtual ~G4PTubs(); - // Constructor and Destructor + public: // With description + G4VDCIOentry(G4std::string n); + // Constructor - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. + virtual ~G4VDCIOentry() {}; + // Destructor - virtual G4GeometryType GetEntityType() const { return G4String("G4Tubs"); } - // Returns the G4GeometryType of this solid. + public: // With description + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. -protected: + G4std::string GetName() { return m_name; }; + // Returns the name of the DC I/O manager entry - G4double fRMin,fRMax,fDz,fSPhi,fDPhi; + virtual void CreateDCIOmanager(G4std::string detName, G4std::string colName) {}; + // virtual method for creating DC I/O manager for the detector + + protected: + int m_verbose; + + private: + G4std::string m_name; + +}; // End of class G4VDCIOentry -}; - #endif diff --git a/source/persistency/geometry/solids/CSG/include/G4PTrd.ddl b/source/persistency/include/G4VHCIOentry.hh similarity index 62% rename from source/persistency/geometry/solids/CSG/include/G4PTrd.ddl rename to source/persistency/include/G4VHCIOentry.hh index 7c8a5f70e5..dd49ed8e3b 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PTrd.ddl +++ b/source/persistency/include/G4VHCIOentry.hh @@ -19,51 +19,47 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VHCIOentry.hh // -// -// $Id: G4PTrd.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// History: +// '01.09.12 Youhei Morita Initial creation + +#ifndef VHCIO_ENTRY_T_HH +#define VHCIO_ENTRY_T_HH 1 + +#include "G4Types.hh" +#include +#include "G4PersistencyCenter.hh" // Class Description: -// Persistent version of G4PTrd solid. +// Abstract base class for hits collection I/O manager entry -// History: -// 19.06.98 A.Kimura Converted G4Trd.hh - -#ifndef G4PTRD_DDL -#define G4PTRD_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4Trd; -class G4VSolid; - -class G4PTrd - : public G4PCSGSolid +class G4VHCIOentry { -public: // With description - G4PTrd(const G4Trd* theTrd); - virtual ~G4PTrd(); - // Constructor and Destructor + public: // With description + G4VHCIOentry(G4std::string n); + // Constructor - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. + virtual ~G4VHCIOentry() {}; + // Destructor - virtual G4GeometryType GetEntityType() const {return G4String("G4Trd");} - // Returns the G4GeometryType of this solid. + public: // With description + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. -public: - void CheckAndSetAllParameters (G4double pdx1, G4double pdx2, - G4double pdy1, G4double pdy2, - G4double pdz); + G4std::string GetName() { return m_name; }; + // Returns the name of the HC I/O manager entry -protected: + virtual void CreateHCIOmanager(G4std::string detName, G4std::string colName) {}; + // virtual method for creating HC I/O manager for the detector - G4double fDx1,fDx2,fDy1,fDy2,fDz; + protected: + int m_verbose; -}; + private: + G4std::string m_name; + +}; // End of class G4VHCIOentry #endif - diff --git a/source/persistency/geometry/management/include/G4PPVReplica.ddl b/source/persistency/include/G4VHepMCIO.hh similarity index 56% rename from source/persistency/geometry/management/include/G4PPVReplica.ddl rename to source/persistency/include/G4VHepMCIO.hh index b1c890a3fc..59085eeabf 100644 --- a/source/persistency/geometry/management/include/G4PPVReplica.ddl +++ b/source/persistency/include/G4VHepMCIO.hh @@ -19,59 +19,50 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VHepMCIO.hh // -// -// $Id: G4PPVReplica.ddl,v 1.7 2001/07/11 10:02:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// History: +// '01.11.18 Youhei Morita Initial creation + +#ifndef G4V_HEPMC_IO_HH +#define G4V_HEPMC_IO_HH 1 + +#include "G4Types.hh" +#include "CLHEP/HepMC/GenEvent.h" // Class Description: -// Persistent-capable class of G4PVReplica +// Abstract base class for storing and retrieving HepMC events. -// History: -// 05.11.99 Y.Morita First non-stub version - -#ifndef G4PPVREPLICA_DDL -#define G4PPVREPLICA_DDL - -#include "G4Pglobals.hh" - -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" -#include "G4VPhysicalVolume.hh" -// #include "G4RotationMatrix.hh" - -#include "G4PVPhysicalVolume.hh" - -class G4PPVReplica - : public G4PVPhysicalVolume +class G4VHepMCIO { -public: // With description - G4PPVReplica( G4VPhysicalVolume *PhysVol, - HepRef(G4PLogicalVolume) persLogVol); - ~G4PPVReplica(); - // Constructor and Destructor + public: // With description + G4VHepMCIO(); + // Constructor - G4VPhysicalVolume* MakeTransientObject( - G4LogicalVolume* aLogical, - G4VPhysicalVolume* aMother ); - // Creates a transient G4PVReplica object. + virtual ~G4VHepMCIO() {}; + // Destructor - virtual G4bool IsMany() const; - virtual G4int GetCopyNo() const; - // Returns the multiplicity of the volume. + public: // With description + virtual G4bool Store(HepMC::GenEvent*) =0; + // Pure virtual method for storing HepMC GenEvent. + // Each persistency package should implement a concrete method + // of storing the HepMC::GenEvent with this signature. -protected: - virtual void SetCopyNo(G4int CopyNo); + virtual G4bool Retrieve(HepMC::GenEvent*&, int id=-1) =0; + // Pure virtual method for retrieving HepMC GenEvent. + // Each persistency package should implement a concrete method + // of storing the HepMC::GenEvent with this signature. -protected: - EAxis faxis; - G4Pint fnReplicas; - G4Pdouble fwidth,foffset; - - G4Pint fcopyNo; -}; + virtual int LastEventID() =0; + // Pure virtual method for the event ID + + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. + + protected: + G4int m_verbose; + +}; // End of class G4VHepMCIO #endif - - diff --git a/source/persistency/include/G4VMCTruthIO.hh b/source/persistency/include/G4VMCTruthIO.hh new file mode 100644 index 0000000000..95581613c3 --- /dev/null +++ b/source/persistency/include/G4VMCTruthIO.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. * +// ******************************************************************** +// File: G4VMCTruthIO.hh +// +// History: +// '01.11.18 Youhei Morita Initial creation + +#ifndef V_M_C_TRUTH_I_O_HH +#define V_M_C_TRUTH_I_O_HH 1 + +#include "G4MCTEvent.hh" + +// Class Description: +// Abstract base class for storing and retrieving MCTruth events. + +class G4VMCTruthIO +{ + public: // With description + G4VMCTruthIO(); + // Constructor + + virtual ~G4VMCTruthIO() {}; + // Destructor + + public: // With description + virtual G4bool Store(G4MCTEvent*) =0; + // Pure virtual method for storing MCTruth Event. + // Each persistency package should implement a concrete method + // of storing the G4MCTEvent with this signature. + + virtual G4bool Retrieve(G4MCTEvent*&) =0; + // Pure virtual method for retrieving MCTruth Event. + // Each persistency package should implement a concrete method + // of storing the G4MCTEvent with this signature. + + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. + + protected: + G4int m_verbose; + +}; // End of class G4VMCTruthIO + +#endif + diff --git a/source/persistency/include/G4VPDigitIO.hh b/source/persistency/include/G4VPDigitIO.hh new file mode 100644 index 0000000000..cdc4d83038 --- /dev/null +++ b/source/persistency/include/G4VPDigitIO.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. * +// ******************************************************************** +// File: G4VPDigitIO.hh +// +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") + +#ifndef V_P_DIGIT_I_O_HH +#define V_P_DIGIT_I_O_HH 1 + +#include "G4DCofThisEvent.hh" +#include "G4DCIOcatalog.hh" +#include "G4VPDigitsCollectionIO.hh" + +// Class Description: +// Abstract base class for storing and retrieving digit collections + +class G4VPDigitIO +{ + public: // With description + G4VPDigitIO(); + // Constructor + + virtual ~G4VPDigitIO() {}; + // Destructor + + public: // With description + G4VPDigitIO* GetVPDigitIO() { return f_G4VPDigitIO; }; + // Returns the pointer of the digit collection I/O manager. + + virtual G4bool Store(const G4DCofThisEvent*) =0; + // Pure virtual method for storing digit collections of this event. + // Each persistency package should implement a concrete method + // of storing the digit collection of this event with this signature. + + virtual G4bool Retrieve(G4DCofThisEvent*&) =0; + // Pure virtual method for retrieving digit collections of this event. + // Each persistency package should implement a concrete method + // of storing the digit collection of this event with this signature. + + void SetVerboseLevel(int v); + // Set verbose level. + + protected: + void SetG4VPDigitIO(G4VPDigitIO* digitMan) { f_G4VPDigitIO = digitMan; }; + // Registers the digit collection I/O manager. + + protected: + G4int m_verbose; + static G4VPDigitIO* f_G4VPDigitIO; + G4DCIOcatalog* f_catalog; + +}; // End of class G4VPDigitIO + +#endif + diff --git a/source/persistency/include/G4VPDigitsCollectionIO.hh b/source/persistency/include/G4VPDigitsCollectionIO.hh new file mode 100644 index 0000000000..47e85b8348 --- /dev/null +++ b/source/persistency/include/G4VPDigitsCollectionIO.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. * +// ******************************************************************** +// File: G4VPDigitsCollectionIO.hh +// +// History: +// '01.08.16 Youhei Morita Initial creation + +#ifndef V_P_DIGITS_COLLECTION_I_O_HH +#define V_P_DIGITS_COLLECTION_I_O_HH 1 + +#include "G4VDigiCollection.hh" + +// Class Description: +// Abstract base class for storing and retrieving digit collections + +class G4VPDigitsCollectionIO +{ + public: // With description + G4VPDigitsCollectionIO( G4std::string detName, G4std::string colName ); + // Constructor + + virtual ~G4VPDigitsCollectionIO() {}; + // Destructor + + public: // With description + virtual G4bool Store(const G4VDigiCollection*) =0; + // Pure virtual method for storing the digit collection. + // Each persistency package should implement a concrete method + // with this signature. + + virtual G4bool Retrieve(G4VDigiCollection*&) =0; + // Pure virtual method for retrieving the digit collection. + // Each persistency package should implement a concrete method + // with this signature. + + G4bool operator== (const G4VPDigitsCollectionIO& right) const; + // virtual operator for comparing digit collections with names. + + G4std::string DMname() { return f_detName; }; + // Returns the digitizer module name. + + G4std::string CollectionName() { return f_colName; }; + // Returns the digit collection name. + + void SetVerboseLevel(int v) { m_verbose = v; }; + // Sets the verbose level + + protected: + G4int m_verbose; + G4std::string f_detName; + G4std::string f_colName; + +}; // End of class G4VPDigitsCollectionIO + +#endif + diff --git a/source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl b/source/persistency/include/G4VPEventIO.hh similarity index 53% rename from source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl rename to source/persistency/include/G4VPEventIO.hh index 6ad91d215e..d372ecb08b 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PDisplacedSolid.ddl +++ b/source/persistency/include/G4VPEventIO.hh @@ -19,53 +19,59 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VPEventIO.hh // -// -// $Id: G4PDisplacedSolid.ddl,v 1.5 2001/07/11 10:02:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") + +#ifndef V_P_EVENT_I_O_HH +#define V_P_EVENT_I_O_HH 1 + +#include "G4Event.hh" + +#ifndef WIN32 + #include "CLHEP/HepMC/GenEvent.h" + // not yet // #include "G4MCTEvent.hh" +#include "G4Pevent.hh" +#endif // Class Description: -// Persistent class describing solid placements for boolean operations +// Abstract base class for storing and retrieving an event object -// History: -// 10.11.99 Y.Morita, Initial creation - -#ifndef G4PDisplacedSolid_DDL -#define G4PDisplacedSolid_DDL - -#include "G4PersistentSchema.hh" -#include "G4PVSolid.hh" -#include "G4PAffineTransform.hh" - -class G4VSolid; - -class G4PDisplacedSolid - : public G4PVSolid +class G4VPEventIO { -public: // With description - G4PDisplacedSolid ( HepRef(G4PVSolid) persCostituentSolid, - HepRef(G4PAffineTransform) pDirectTransform ); - virtual ~G4PDisplacedSolid(); - // Constructor and destructor. + public: // With description + G4VPEventIO(); + // Constructor - G4VSolid* MakeTransientObject() const; - G4VSolid* MakeTransientDisplacedSolid(G4VSolid* aSolid) const; - // Creates a transient G4VSolid object. + virtual ~G4VPEventIO() {}; + // Destructor - virtual G4GeometryType GetEntityType() const - { return G4String("G4DisplacedSolid"); } - // Returns the G4GeometryType of the solid. + public: // With description + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. - HepRef(G4PVSolid) GetConstituentMovedSolid(); - // Returns the pointer of persistent GetConstituentMovedSolid object. + inline G4int CurrentEventID() { return m_currentEvtID; }; + // Returns the current event id. -protected: - d_Ref fPtrSolid; -// fPtrTransform can be created by fDirectTransform.Inverse() - d_Ref fDirectTransform; + virtual G4bool Store( const G4Event* anEvent ) =0; + // Store a Geant4 event. +#ifndef WIN32 + // virtual G4bool Store( HepMC::GenEvent* hepevt, G4MCTEvent* mctevt, const G4Event* anEvent ) =0; + virtual G4bool Store( HepMC::GenEvent* hepevt, const G4Event* anEvent ) =0; + // Store a Geant4 event. -private: + virtual G4bool Retrieve( G4Pevent*& anEvent ) =0; + // Retrieve a Geant4 event. +#endif + virtual G4bool Retrieve( G4Event*& anEvent ) =0; + // Retrieve a Geant4 event. -}; + protected: + G4int m_verbose; + G4int m_currentEvtID; + +}; // End of class G4VPEventIO #endif + diff --git a/source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl b/source/persistency/include/G4VPHitIO.hh similarity index 50% rename from source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl rename to source/persistency/include/G4VPHitIO.hh index 3f8bca9a0e..d6d8ff8d8a 100644 --- a/source/persistency/geometry/solids/Boolean/include/G4PBooleanSolid.ddl +++ b/source/persistency/include/G4VPHitIO.hh @@ -19,53 +19,57 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VPHitIO.hh // -// -// $Id: G4PBooleanSolid.ddl,v 1.6 2001/07/11 10:02:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") + +#ifndef V_P_HIT_I_O_HH +#define V_P_HIT_I_O_HH 1 + +#include "G4HCofThisEvent.hh" +#include "G4HCIOcatalog.hh" +#include "G4VPHitsCollectionIO.hh" // Class Description: -// Persistent base class for solids created by boolean operations -// between other solids +// Abstract base class for storing and retrieving hit collections -// History: -// 10.11.99 Y.Morita, Initial Creation - -#ifndef G4PBOOLEANSOLID_DDL -#define G4PBOOLEANSOLID_DDL - -#include "G4PVSolid.hh" -#include "G4PersistentSchema.hh" - -class G4PBooleanSolid - : public G4PVSolid +class G4VPHitIO { -public: // With description - G4PBooleanSolid( const G4String& pName, - HepRef(G4PVSolid) persSolidA, - HepRef(G4PVSolid) persSolidB ); - virtual ~G4PBooleanSolid(); - // Constructor and Destructor + public: // With description + G4VPHitIO(); + // Constructor - virtual G4VSolid* MakeTransientBooleanSolid( - G4VSolid* aSolidA, - G4VSolid* aSolidB ) const = 0; - // Creates a transient boolean solid object. + virtual ~G4VPHitIO() {}; + // Destructor -public: // With Description - // If Solid is made up from a Boolean operation of two solids, - // return the corresponding solid (for no=0 and 1) - // If the solid is not a "Boolean", return 0 - virtual const HepRef(G4PVSolid) GetConstituentSolid(G4int no) const; - virtual HepRef(G4PVSolid) GetConstituentSolid(G4int no); + public: // With description + G4VPHitIO* GetVPHitIO() { return f_G4VPHitIO; }; + // Returns the pointer of the hit collection I/O manager. -protected: - d_Ref fPtrSolidA; - d_Ref fPtrSolidB; + virtual G4bool Store(const G4HCofThisEvent*) =0; + // Pure virtual method for storing hit collections of this event. + // Each persistency package should implement a concrete method + // of storing the hit collection of this event with this signature. -private: - G4bool createdDisplacedSolid; -}; + virtual G4bool Retrieve(G4HCofThisEvent*&) =0; + // Pure virtual method for retrieving hit collections of this event. + // Each persistency package should implement a concrete method + // of storing the hit collection of this event with this signature. + + void SetVerboseLevel(int v); + // Set verbose level. + + protected: + void SetG4VPHitIO(G4VPHitIO* hitMan) { f_G4VPHitIO = hitMan; }; + // Registers the hit collection I/O manager. + + protected: + G4int m_verbose; + static G4VPHitIO* f_G4VPHitIO; + G4HCIOcatalog* f_catalog; + +}; // End of class G4VPHitIO #endif diff --git a/source/persistency/include/G4VPHitsCollectionIO.hh b/source/persistency/include/G4VPHitsCollectionIO.hh new file mode 100644 index 0000000000..c4bcc363c6 --- /dev/null +++ b/source/persistency/include/G4VPHitsCollectionIO.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. * +// ******************************************************************** +// File: G4VPHitsCollectionIO.hh +// +// History: +// '01.08.16 Youhei Morita Initial creation + +#ifndef V_P_HITS_COLLECTION_I_O_HH +#define V_P_HITS_COLLECTION_I_O_HH 1 + +#include "G4VHitsCollection.hh" + +// Class Description: +// Abstract base class for storing and retrieving hit collections + +class G4VPHitsCollectionIO +{ + public: // With description + G4VPHitsCollectionIO( G4std::string detName, G4std::string colName ); + // Constructor + + virtual ~G4VPHitsCollectionIO() {}; + // Destructor + + public: // With description + virtual G4bool Store(const G4VHitsCollection*) =0; + // Pure virtual method for storing the hit collection. + // Each persistency package should implement a concrete method + // with this signature. + + virtual G4bool Retrieve(G4VHitsCollection*&) =0; + // Pure virtual method for retrieving the hit collection. + // Each persistency package should implement a concrete method + // with this signature. + + G4bool operator== (const G4VPHitsCollectionIO& right) const; + // virtual operator for comparing hit collections with names. + + G4std::string SDname() { return f_detName; }; + // Returns the sensitive detector name. + + G4std::string CollectionName() { return f_colName; }; + // Returns the hit collection name. + + void SetVerboseLevel(int v) { m_verbose = v; }; + // Sets the verbose level + + protected: + G4int m_verbose; + G4std::string f_detName; + G4std::string f_colName; + +}; // End of class G4VPHitsCollectionIO + +#endif + diff --git a/source/persistency/geometry/global/include/G4PVSolid.ddl b/source/persistency/include/G4VTransactionManager.hh similarity index 52% rename from source/persistency/geometry/global/include/G4PVSolid.ddl rename to source/persistency/include/G4VTransactionManager.hh index c25536647f..da9accc5e8 100644 --- a/source/persistency/geometry/global/include/G4PVSolid.ddl +++ b/source/persistency/include/G4VTransactionManager.hh @@ -19,63 +19,55 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VTransactionManager.hh // -// -// $Id: G4PVSolid.ddl,v 1.6 2001/07/11 10:02:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// History: +// 01.07.18 Youhei Morita Initial creation (with "fadsclass") + +#ifndef V_TRANSACTION_MANAGER_HH +#define V_TRANSACTION_MANAGER_HH 1 + +#include "G4Types.hh" +#include // Class Description: -// Persistent version of the abstract base class for G4VSolid. +// Abstract base class for starting and commiting or aborting data transaction -// History: -// 19.06.98 A.Kimura Converted from G4VSolid.hh -// 20.06.98 A.Kimura Clean up - -#ifndef G4PVSOLID_DDL -#define G4PVSOLID_DDL - -#include "G4Pglobals.hh" -#include "geomdefs.hh" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -#include "G4VSolid.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -class G4PVSolid; - -class G4PVSolid - : public HepPersObj +class G4VTransactionManager { - public: // With description - G4PVSolid(); - G4PVSolid(const G4String& name); - virtual ~G4PVSolid(); - // Constructor and Destructor + public: // With description + G4VTransactionManager() : m_verbose(0) {}; + // Constructor - virtual G4VSolid* MakeTransientObject() const = 0; - // Creates a transient G4VSolid object. Must be implemented in - // user class which inherits which class. + virtual ~G4VTransactionManager() {}; + // Destructor - G4bool operator==( const G4PVSolid& s) const - { - return (this==&s) ? true : false; - } - // Comparison operator. + public: // With description + void SetVerboseLevel(int v) { m_verbose = v; }; + // Set verbose level. - G4String GetName() const; - void SetName(const G4String& name); - // Get and set the name of the solid. - - virtual G4GeometryType GetEntityType() const = 0; - // Returns the geometry entity type of the solid. Must be - // implemented in user class which inherits which class. + virtual G4bool SelectReadFile(G4std::string obj, G4std::string file)=0; + // Set the input file name and open it for the object type "obj". -private: + virtual G4bool SelectWriteFile(G4std::string obj, G4std::string file)=0; + // Set the output file name and open it for the object type "obj". - G4PString fshapeName; // Name -}; + virtual G4bool StartUpdate()=0; + // Start an update transaction for event store and retrieve + + virtual G4bool StartRead()=0; + // Start a read-only transaction for event store and retrieve + + virtual void Commit()=0; + // commit the transaction for event store and retrieve + + virtual void Abort()=0; + // abort the transaction for event store and retrieve + + protected: + G4int m_verbose; + +}; // End of class G4VTransactionManager #endif + diff --git a/source/persistency/management/GNUmakefile b/source/persistency/management/GNUmakefile deleted file mode 100644 index 232fa5d7b1..0000000000 --- a/source/persistency/management/GNUmakefile +++ /dev/null @@ -1,56 +0,0 @@ -# $Id: GNUmakefile,v 1.18 2001/03/15 22:58:55 morita Exp $ - -name := G4pmanagement -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4TMP)/$(G4SYSTEM)/G4pdigits \ - -I$(G4TMP)/$(G4SYSTEM)/G4phits \ - -I$(G4TMP)/$(G4SYSTEM)/G4pevents \ - -I$(G4TMP)/$(G4SYSTEM)/G4prun \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomGlobal \ - -I$(G4TMP)/$(G4SYSTEM)/G4pcsg \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomBoolean \ - -I$(G4TMP)/$(G4SYSTEM)/G4pgeomn \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/hits/include \ - -I$(G4INSTALL)/source/persistency/digits+hits/digits/include \ - -I$(G4INSTALL)/source/persistency/events/include \ - -I$(G4INSTALL)/source/persistency/geometry/global/include \ - -I$(G4INSTALL)/source/persistency/geometry/management/include \ - -I$(G4INSTALL)/source/persistency/run/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include \ - -I$(G4INSTALL)/source/run/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/global/HEPGeometry/include \ - -I$(G4INSTALL)/source/geometry/management/include \ - -I$(G4INSTALL)/source/geometry/volumes/include \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/materials/include \ - -I$(G4INSTALL)/source/intercoms/include - - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: - -#-------------------------------------------------------------------- - diff --git a/source/persistency/management/include/G4PersistencyManager.hh b/source/persistency/management/include/G4PersistencyManager.hh deleted file mode 100644 index 14fd46e342..0000000000 --- a/source/persistency/management/include/G4PersistencyManager.hh +++ /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: G4PersistencyManager.hh,v 1.16 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// History: -// 98.01.08 Y.Morita Initial version -// 98.06.20 Y.Morita Implement geometry Store and Retrieve -// 98.10.30 Y.Morita Splitted into event/run/geometry utility classes -// 99.10.22 Y.Morita Allow constructor with the name of Boot file -// 99.11.12 Y.Morita Splitted classes into separate objects - -#ifndef G4PERSISTENCYMANAGER_HH -#define G4PERSISTENCYMANAGER_HH 1 - -#include "globals.hh" -#include "G4VPersistencyManager.hh" -#include "G4DatabaseTypes.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -// forward declarations -class G4PersistentHitMan; -class G4PersistentDigitMan; -class G4PersistentEventMan; -class G4PersistentRunMan; -class G4PersistentGeomMan; -class G4PersistencyMessenger; -class G4TransactionManager; -class HepDbApplication; - -// Class Description: -// A Class responsible for storing and retrieving the run, event, -// Hit and geometry objects into ODBMS using HepODBMS interface. -// -// The class is `singleton', with access via -// G4PersistencyManager::GetPersistencyManager(). -// -// This class itself is not persistent-capable. - -class G4PersistencyManager - : public G4VPersistencyManager -{ - friend class G4PersistencyMessenger; - - public: // With description - static G4PersistencyManager* GetPersistencyManager(); - // Return pointer to singleton instance of the class. - // An instance is created if it does not exist. - static G4PersistencyManager* get_PersistencyManagerIfExist(); - // Return pointer to singleton instance of the class. - - protected: - // use GetPersistencyManager() instead - G4PersistencyManager(); - - public: - ~G4PersistencyManager(); - - private: - static G4PersistencyManager* f_PersistencyManager; - G4int f_verboseLevel; - - public: // With description - G4bool Store(const G4Event* anEvent); - // stores anEvent and the associated objects into database. - G4bool Store(const G4Run* aRun); - // stores aRun and the associated objects into database. - G4bool Store(const G4VPhysicalVolume* aWorld); - // stores the world volume and the entire geometry informaion. - - G4bool Retrieve(G4Event*& anEvent); - // retrieves anEvent and the associated objects from database. - G4bool Retrieve(G4Run*& aRun); - // retrieves aRun and the associated objects from database. - G4bool Retrieve(G4VPhysicalVolume*& aWorld); - // retrieves the world volume and the entire geometry informaion. - - protected: - // protected interface (delegated to TransactionManager) - HepDbApplication* DbApp(); - - protected: - // interface with PersistencyMessenger (delegated to TransactionManager) - G4bool SelectDB(ETypeOfDB dbtype, G4String dbname, G4bool updateMode); - - G4String DBName(ETypeOfDB dbtype); - G4String ContainerName(ETypeOfDB dbtype); - HepDatabaseRef DBref(ETypeOfDB dbtype); - HepContainerRef ContainerRef(ETypeOfDB dbtype); - - G4String DBContainerName(ETypeOfDB dbtype); - - public: // With description - G4bool StartTransaction( ETypeOfDB dbtype, - ETransactionMode dbmode, - G4bool isSustained); - // start an database transaction. - // ETypeOfDB: kEventDB, kRunDB, kGeomDB - // ETransactionMode: kUpdate, kRead - // isSustained = true : transaction is sustained - // false : transaction is atomic - // See G4DatabaseTypes.hh for the definition. - G4bool Commit(ETypeOfDB dbtype, G4bool isSustained); - // commit the database transaction. - G4bool Abort(ETypeOfDB dbtype, G4bool isSustained); - // abort the database transaction. - - private: - // interface with PersistencyMessenger - void SetVerboseLevel(G4int vl); - inline G4int GetVerboseLevel() - { return f_verboseLevel; }; - inline G4TransactionManager* GetTransactionManager() - { return f_transactionMan; }; - -// Utility Classes - private: - G4PersistentHitMan* f_pHitMan; - G4PersistentDigitMan* f_pDigitMan; - G4PersistentEventMan* f_pEventMan; - G4PersistentRunMan* f_pRunMan; - G4PersistentGeomMan* f_pGeomMan; - G4PersistencyMessenger* f_persMessenger; - G4TransactionManager* f_transactionMan; -}; - -#endif - diff --git a/source/persistency/management/include/G4TransactionManager.hh b/source/persistency/management/include/G4TransactionManager.hh deleted file mode 100644 index 8a009f7d48..0000000000 --- a/source/persistency/management/include/G4TransactionManager.hh +++ /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: G4TransactionManager.hh,v 1.8 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// class description: -// -// This is a class for handling database transaction -// for G4PersistencyManager. -// To be used by G4PersistencyManager only. -// - -// History: -// 99.11.25 Y.Morita Initial version - -#ifndef G4TransactionManager_HH -#define G4TransactionManager_HH 1 - -#include "globals.hh" -#include "G4VPersistentSubMan.hh" - -// forward declarations -class G4PersistentRunMan; -class G4PersistentEventMan; -class G4PersistentHitMan; -class G4PersistentDigitMan; -class G4PersistentGeomMan; - -#include "HepODBMS/clustering/HepDbApplication.h" - -#include "G4DatabaseTypes.hh" - -class G4TransactionManager - : public G4VPersistentSubMan -{ - friend class G4PersistencyManager; - - protected: // with description - G4TransactionManager(G4PersistentRunMan* runMan, - G4PersistentEventMan* eventMan, - G4PersistentHitMan* hitMan, - G4PersistentDigitMan* digitMan, - G4PersistentGeomMan* geomMan); - ~G4TransactionManager(); - // Contructor and Destructor. - - private: - HepDbApplication* f_dbApp; - - G4bool f_isSustained; - ETypeOfDB f_whichDB; - ETransactionMode f_transactionMode; - ETypeOfDB f_currentDB; - - HepDatabaseRef f_RunDB; - HepDatabaseRef f_EventDB; - HepDatabaseRef f_HitDB; - HepDatabaseRef f_DigitDB; - HepDatabaseRef f_GeomDB; - - G4String f_RunDBName; - G4String f_EventDBName; - G4String f_HitDBName; - G4String f_DigitDBName; - G4String f_GeomDBName; - - HepContainerRef f_RunContainer; - HepContainerRef f_EventContainer; - HepContainerRef f_HitContainer; - HepContainerRef f_DigitContainer; - HepContainerRef f_GeomContainer; - - const G4String f_RunContainerName; - const G4String f_EventContainerName; - const G4String f_HitContainerName; - const G4String f_DigitContainerName; - const G4String f_GeomContainerName; - - private: - // interface with PersistencyManager - inline HepDbApplication* DbApp() - { return f_dbApp; } - G4bool StartTransaction( ETypeOfDB dbtype, - ETransactionMode dbmode, - G4bool isSustained); - G4bool Commit(ETypeOfDB dbtype, G4bool isSustained); - G4bool Abort(ETypeOfDB dbtype, G4bool isSustained); - inline G4bool SustainedMode() - { return f_isSustained; } - - private: - // interface with PersistencyManager - G4bool SelectDB(ETypeOfDB dbtype, G4String dbname, G4bool updateMode); - - G4String DBName(ETypeOfDB dbtype); - G4String ContainerName(ETypeOfDB dbtype); - HepDatabaseRef DBref(ETypeOfDB dbtype); - HepContainerRef ContainerRef(ETypeOfDB dbtype); - - G4String DBContainerName(ETypeOfDB dbtype); - - private: - // for internal use - ESustainedState CheckState(ETypeOfDB dbtype, G4bool isSustained); - G4bool DoStart(ETypeOfDB dbtype, - ETransactionMode dbmode, - G4bool isSustained); - void SetDBName(ETypeOfDB dbtype, G4String dbname); - void SetDB(ETypeOfDB dbtype, HepDatabaseRef aDB); - void SetContainer(ETypeOfDB dbtype, HepContainerRef aCont); - void SendDB(ETypeOfDB dbtype); - void SendContainer(ETypeOfDB dbtype); - -// Utility Classes - private: - G4PersistentRunMan* f_pRunMan; - G4PersistentEventMan* f_pEventMan; - G4PersistentHitMan* f_pHitMan; - G4PersistentDigitMan* f_pDigitMan; - G4PersistentGeomMan* f_pGeomMan; -}; - - -#endif - diff --git a/source/persistency/management/src/G4PersistencyManager.cc b/source/persistency/management/src/G4PersistencyManager.cc deleted file mode 100644 index 57b605ed89..0000000000 --- a/source/persistency/management/src/G4PersistencyManager.cc +++ /dev/null @@ -1,306 +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: G4PersistencyManager.cc,v 1.18 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PersistencyManager -// -// Implementation for concrete G4PersistencyManager. -// -// History: -// 98.01.08 Y.Morita Initial version -// 98.06.20 Y.Morita Implement geometry Store and Retrieve - -#include "G4PersistencyManager.hh" - -#include "G4ios.hh" - -// forward declarations -#include "G4PersistentHitMan.hh" -#include "G4PersistentDigitMan.hh" -#include "G4PersistentEventMan.hh" -#include "G4PersistentRunMan.hh" -#include "G4PersistentGeomMan.hh" -#include "G4PersistencyMessenger.hh" -#include "G4TransactionManager.hh" -#include "HepODBMS/clustering/HepDbApplication.h" - -G4PersistencyManager* G4PersistencyManager::f_PersistencyManager = 0; - -G4PersistencyManager* G4PersistencyManager::GetPersistencyManager() -{ - if(!f_PersistencyManager) - { - f_PersistencyManager = new G4PersistencyManager; - } - return f_PersistencyManager; -} - -G4PersistencyManager* G4PersistencyManager::get_PersistencyManagerIfExist() -{ return f_PersistencyManager; } - -G4PersistencyManager::G4PersistencyManager() - : f_verboseLevel(0) -{ - f_pHitMan = G4PersistentHitMan::GetPersistentHitMan(); - f_pDigitMan = G4PersistentDigitMan::GetPersistentDigitMan(); - f_pEventMan = new G4PersistentEventMan(f_pHitMan, f_pDigitMan); - f_pRunMan = new G4PersistentRunMan; - f_pGeomMan = new G4PersistentGeomMan; - - f_persMessenger = new G4PersistencyMessenger(this); - f_transactionMan = new G4TransactionManager - (f_pRunMan, f_pEventMan, f_pHitMan, f_pDigitMan, - f_pGeomMan); -} - -G4PersistencyManager::~G4PersistencyManager() -{ - // delete utility classes - - delete f_pHitMan; - delete f_pDigitMan; - delete f_pEventMan; - delete f_pRunMan; - delete f_pGeomMan; - delete f_persMessenger; - delete f_transactionMan; - - // Any persistent objects which are created during Store() - // should not be deleted in ~G4PersistencyManager(), because - // they are "persistent"! - - if(f_verboseLevel>0) - G4cout << "PersistencyManager is deleting." << G4endl; -} - -//---------------------------------------------------------------------------- - -G4bool G4PersistencyManager::Store(const G4Event* anEvent) -{ - f_transactionMan->StartTransaction(kEventDB, kUpdate, false); - - if( f_pEventMan->Store(f_transactionMan->DbApp(), anEvent) ) - { - if( f_verboseLevel>1 ) - { - G4cout << " -- G4PEvent " << f_pEventMan->CurrentEventID() << " stored in " - << DBContainerName(kEventDB); - if( f_transactionMan->SustainedMode() ) - G4cout << " (sustained)" << G4endl; - else - G4cout << G4endl; - } - f_transactionMan->Commit(kEventDB, false); - return true; - } - else - { - f_transactionMan->Abort(kEventDB, false); - G4cerr << "G4PersistencyManager: Failed to store G4PEvent in " - << DBContainerName(kEventDB) << G4endl; - return false; - } -} - -G4bool G4PersistencyManager::Store(const G4Run* aRun) -{ - f_transactionMan->StartTransaction(kRunDB, kUpdate, false); - - if( f_pRunMan->Store(f_transactionMan->DbApp(), aRun) ) - { - if( f_verboseLevel>0 ) - G4cout << " -- G4PRun " << f_pRunMan->CurrentRunID() << " stored in " - << DBContainerName(kRunDB) << G4endl; - f_transactionMan->Commit(kRunDB, false); - return true; - } - else - { - f_transactionMan->Abort(kRunDB, false); - G4cerr << "G4PersistencyManager: Failed to store G4PRun in " - << DBContainerName(kRunDB) << G4endl; - return false; - } -} - -G4bool G4PersistencyManager::Store(const G4VPhysicalVolume* aWorld) -{ - f_transactionMan->StartTransaction(kGeomDB, kUpdate, false); - - if( f_pGeomMan->Store(f_transactionMan->DbApp(), aWorld) ) - { - if( f_verboseLevel>0 ) - G4cout << " -- Geometry stored in " - << DBContainerName(kGeomDB) << G4endl; - f_transactionMan->Commit(kGeomDB, false); - return true; - } - else - { - f_transactionMan->Abort(kGeomDB, false); - G4cerr << "G4PersistencyManager: Failed to store Geometry in " - << DBContainerName(kGeomDB) << G4endl; - return false; - } -} - -G4bool G4PersistencyManager::Retrieve(G4Event*& anEvent) -{ - f_transactionMan->StartTransaction(kEventDB, kRead, false); - - if( f_pEventMan->Retrieve(f_transactionMan->DbApp(), anEvent) ) - { - if( f_verboseLevel>1 ) - { - if( anEvent ) - G4cout << " -- G4Event " << f_pEventMan->CurrentEventID() - << " retrieved from " - << DBContainerName(kEventDB) << G4endl; - else - G4cout << " -- scan of G4Event from " - << DBContainerName(kEventDB) - << " is completed." << G4endl; - } - f_transactionMan->Commit(kEventDB, false); - return true; - } - else - { - f_transactionMan->Abort(kEventDB, false); - G4cerr << "G4PersistencyManager: Failed to retrieve G4Event from " - << DBContainerName(kEventDB) << G4endl; - return false; - } -} - -G4bool G4PersistencyManager::Retrieve(G4Run*& aRun) -{ - f_transactionMan->StartTransaction(kRunDB, kRead, false); - - if( f_pRunMan->Retrieve(f_transactionMan->DbApp(), aRun) ) - { - if( f_verboseLevel>0 ) - { - if( aRun ) - G4cout << " -- G4Run " << f_pRunMan->CurrentRunID() - << " retrieved from " - << DBContainerName(kRunDB) << "." << G4endl; - else - G4cout << " -- scan of G4Run from " - << DBContainerName(kRunDB) - << " is completed." << G4endl; - } - f_transactionMan->Commit(kRunDB, false); - return true; - } - else - { - f_transactionMan->Abort(kRunDB, false); - G4cerr << "G4PersistencyManager: Failed to retrieve G4Run from " - << DBContainerName(kRunDB) << G4endl; - return false; - } -} - -G4bool G4PersistencyManager::Retrieve(G4VPhysicalVolume*& theWorld) -{ - f_transactionMan->StartTransaction(kGeomDB, kRead, false); - - if( f_pGeomMan->Retrieve(f_transactionMan->DbApp(), theWorld) ) - { - if( f_verboseLevel>0 ) - { - if( theWorld ) - G4cout << " -- Geometry retrieved from " - << DBContainerName(kGeomDB) << G4endl; - } - f_transactionMan->Commit(kGeomDB, false); - return true; - } - else - { - f_transactionMan->Abort(kGeomDB, false); - G4cerr << "G4PersistencyManager: Failed to retrieve Geometry from " - << DBContainerName(kGeomDB) << G4endl; - return false; - } -} - - -//---------------------------------------------------------------------------- - -HepDbApplication* G4PersistencyManager::DbApp() -{ return f_transactionMan->DbApp(); } - -//---------------------------------------------------------------------------- - -G4bool G4PersistencyManager::SelectDB(ETypeOfDB dbtype, - G4String dbname, G4bool updateMode) -{ return f_transactionMan->SelectDB(dbtype, dbname, updateMode); } - -G4String G4PersistencyManager::DBName(ETypeOfDB dbtype) -{ return f_transactionMan->DBName(dbtype); } - -G4String G4PersistencyManager::ContainerName(ETypeOfDB dbtype) -{ return f_transactionMan->ContainerName(dbtype); } - -HepDatabaseRef G4PersistencyManager::DBref(ETypeOfDB dbtype) -{ return f_transactionMan->DBref(dbtype); } - -HepContainerRef G4PersistencyManager::ContainerRef(ETypeOfDB dbtype) -{ return f_transactionMan->ContainerRef(dbtype); } - -G4String G4PersistencyManager::DBContainerName(ETypeOfDB dbtype) -{ return f_transactionMan->DBContainerName(dbtype); } - -//---------------------------------------------------------------------------- - -G4bool G4PersistencyManager::StartTransaction( ETypeOfDB dbtype, - ETransactionMode dbmode, - G4bool isSustained) -{ - return f_transactionMan->StartTransaction( - dbtype, dbmode, isSustained ); -} - -G4bool G4PersistencyManager::Commit(ETypeOfDB dbtype, G4bool isSustained) -{ return f_transactionMan->Commit(dbtype, isSustained); } - -G4bool G4PersistencyManager::Abort(ETypeOfDB dbtype, G4bool isSustained) -{ return f_transactionMan->Abort(dbtype, isSustained); } - -//---------------------------------------------------------------------------- - -void G4PersistencyManager::SetVerboseLevel(G4int vl) -{ - f_verboseLevel = vl; - f_pHitMan->SetVerboseLevel(vl); - f_pDigitMan->SetVerboseLevel(vl); - f_pRunMan->SetVerboseLevel(vl); - f_pEventMan->SetVerboseLevel(vl); - f_pGeomMan->SetVerboseLevel(vl); - f_transactionMan->SetVerboseLevel(vl); -} - diff --git a/source/persistency/management/src/G4PersistencyMessenger.cc b/source/persistency/management/src/G4PersistencyMessenger.cc deleted file mode 100644 index d1e7445585..0000000000 --- a/source/persistency/management/src/G4PersistencyMessenger.cc +++ /dev/null @@ -1,110 +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: G4PersistencyMessenger.cc,v 1.8 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#include "G4PersistencyMessenger.hh" -#include "G4PersistencyManager.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithoutParameter.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithABool.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" -#include "G4ios.hh" - -G4PersistencyMessenger::G4PersistencyMessenger(G4PersistencyManager* persistencyMgr) -: persistencyManager(persistencyMgr) -{ - persistencyDirectory = new G4UIdirectory("/db/"); - persistencyDirectory->SetGuidance("Database control commands."); - - verboseCmd = new G4UIcmdWithAnInteger("/db/verbose",this); - verboseCmd->SetGuidance("Set the verbose level of G4PersistencyManager."); - verboseCmd->SetGuidance(" 0 : Silent (default)"); - verboseCmd->SetGuidance(" 1 : Display main topics"); - verboseCmd->SetGuidance(" 2 : Display event-level topics"); - verboseCmd->SetGuidance(" 3 : Display debug information"); - verboseCmd->SetParameterName("level",true); - verboseCmd->SetDefaultValue(0); - verboseCmd->SetRange("level >=0 && level <=3"); - - runDbCmd = new G4UIcmdWithAString("/db/run",this); - runDbCmd->SetGuidance("Set the name of Run Database."); - runDbCmd->SetParameterName("fileName",true); - runDbCmd->SetDefaultValue("Runs"); - runDbCmd->AvailableForStates(PreInit,Idle); - - eventDbCmd = new G4UIcmdWithAString("/db/event",this); - eventDbCmd->SetGuidance("Set the name of Event Database."); - eventDbCmd->SetParameterName("fileName",true); - eventDbCmd->SetDefaultValue("Events"); - eventDbCmd->AvailableForStates(PreInit,Idle); - - geomDbCmd = new G4UIcmdWithAString("/db/geometry",this); - geomDbCmd->SetGuidance("Set the name of Geometry Database."); - geomDbCmd->SetParameterName("fileName",true); - geomDbCmd->SetDefaultValue("Geometry"); - geomDbCmd->AvailableForStates(PreInit,Idle); -} - -G4PersistencyMessenger::~G4PersistencyMessenger() -{ - delete verboseCmd; - delete runDbCmd; - delete eventDbCmd; - delete geomDbCmd; - delete persistencyDirectory; -} - -void G4PersistencyMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command==verboseCmd ) - { persistencyManager->SetVerboseLevel(verboseCmd->GetNewIntValue(newValue)); } - else if( command==runDbCmd ) - { persistencyManager->SelectDB(kRunDB, newValue, true); } - else if( command==eventDbCmd ) - { persistencyManager->SelectDB(kEventDB, newValue, true); } - else if( command==geomDbCmd ) - { persistencyManager->SelectDB(kGeomDB, newValue, true); } -} - -G4String G4PersistencyMessenger::GetCurrentValue(G4UIcommand * command) -{ - G4String cv; - - if( command==verboseCmd ) - { cv = verboseCmd->ConvertToString(persistencyManager->GetVerboseLevel()); } - else if( command==runDbCmd ) - { cv = persistencyManager->DBName(kRunDB); } - else if( command==eventDbCmd ) - { cv = persistencyManager->DBName(kEventDB); } - else if( command==geomDbCmd ) - { cv = persistencyManager->DBName(kGeomDB); } - - return cv; -} - diff --git a/source/persistency/management/src/G4TransactionManager.cc b/source/persistency/management/src/G4TransactionManager.cc deleted file mode 100644 index b96c4d27d7..0000000000 --- a/source/persistency/management/src/G4TransactionManager.cc +++ /dev/null @@ -1,454 +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: G4TransactionManager.cc,v 1.8 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4TransactionManager -// -// Implementation for concrete G4TransactionManager. -// -// History: -// 99.11.25 Y.Morita Initial version - -#include "G4TransactionManager.hh" - -#include "G4ios.hh" - -// forward declarations -#include "G4PersistentRunMan.hh" -#include "G4PersistentEventMan.hh" -#include "G4PersistentHitMan.hh" -#include "G4PersistentDigitMan.hh" -#include "G4PersistentGeomMan.hh" - -G4TransactionManager::G4TransactionManager( - G4PersistentRunMan* runMan, - G4PersistentEventMan* eventMan, - G4PersistentHitMan* hitMan, - G4PersistentDigitMan* digitMan, - G4PersistentGeomMan* geomMan) - : f_RunDBName("Runs"), f_EventDBName("Events"), f_HitDBName("Events"), - f_DigitDBName("Events"), f_GeomDBName("Geometry"), - f_RunContainerName("RunContainer"), f_EventContainerName("EventContainer"), - f_HitContainerName("EventContainer"), f_DigitContainerName("EventContainer"), - f_GeomContainerName("GeomContainer"), - f_pRunMan(runMan), f_pEventMan(eventMan), f_pHitMan(hitMan), - f_pDigitMan(digitMan), f_pGeomMan(geomMan) -{ - const G4String applicationName = "g4example"; - f_dbApp = new HepDbApplication(applicationName); - - // Open and Initialize a database - G4cout << "Opening federated database OO_FD_BOOT." << G4endl; - f_dbApp->init(); - - // Locate or create run,event,geometry databases and containers - SelectDB( kRunDB, f_RunDBName, kUpdate); - SelectDB( kEventDB, f_EventDBName, kUpdate); - SelectDB( kGeomDB, f_GeomDBName, kUpdate); -} - -G4TransactionManager::~G4TransactionManager() -{ - delete f_dbApp; -} - -//---------------------------------------------------------------------------- - -G4bool G4TransactionManager::StartTransaction( - ETypeOfDB dbtype, - ETransactionMode dbmode, - G4bool isSustained) -{ - ESustainedState f_sustainedState = CheckState(dbtype, isSustained); - - switch(f_sustainedState) - { - case kAlreadySelected: - if(f_verboseLevel>2) - G4cout << "G4TransactionManager: Sustained transaction for /" - << DBName(f_whichDB) << "/ already in progress." << G4endl; - break; - case kCannotOverride: - G4cerr << "G4TransactionManager: Cannot override the existing " - << "transaction for /" << DBName(f_whichDB) << "/" << G4endl; - return false; - break; - case kStartNewSustained: - f_isSustained = isSustained; - f_whichDB = dbtype; - f_transactionMode = dbmode; - DoStart(dbtype, dbmode, true); - break; - case kCommitAndStartNonSustained: - f_dbApp->commit(); - if(f_verboseLevel>1) - G4cout << "Sustained transaction for /" << DBName(f_whichDB) - << "/ is paused." << G4endl; - DoStart(dbtype, dbmode, false); - break; - case kStartNonSustained: - DoStart(dbtype, dbmode, false); - break; - } - - return true; -} - -ESustainedState G4TransactionManager::CheckState( - ETypeOfDB dbtype, G4bool isSustained) -{ - if( isSustained ) - if( f_isSustained ) - if( f_whichDB == dbtype ) - return kAlreadySelected; - else - return kCannotOverride; - else - return kStartNewSustained; - else - if( f_isSustained ) - if( f_whichDB == dbtype ) - return kAlreadySelected; - else - return kCommitAndStartNonSustained; - else - return kStartNonSustained; -} - -G4bool G4TransactionManager::DoStart(ETypeOfDB dbtype, - ETransactionMode dbmode, - G4bool isSustained) -{ - switch(dbmode) - { - case kUpdate: - f_dbApp->startUpdate(); - break; - case kRead: - f_dbApp->startRead(); - break; - } - - HepDatabaseRef aDBref = f_dbApp->db( DBName(dbtype) ); - if( aDBref == 0 ) - { - G4cerr << "G4TransactionManager: Could not create or find /" - << DBName(dbtype) << "/ database." << G4endl; - return false; - } - SetDB( dbtype, aDBref ); - - HepContainerRef aContRef = f_dbApp->container(ContainerName(dbtype)); - if( aContRef == 0 ) - { - G4cerr << "G4TransactionManager: Could not create or find /" - << ContainerName(dbtype) << "/ container." << G4endl; - return false; - } - SetContainer( dbtype, aContRef ); - - f_currentDB = dbtype; - - if(f_verboseLevel>1) - { - G4cout << "Transaction started for /" << DBName(dbtype) << "/" - << ContainerName(dbtype) << "/ with "; - if(isSustained) - G4cout << "sustained mode." << G4endl; - else - G4cout << "non-sustained mode." << G4endl; - } - - return true; -} - -G4bool G4TransactionManager::Commit(ETypeOfDB dbtype, G4bool isSustained) -{ - if( dbtype == f_currentDB ) - { - if( ! f_isSustained || isSustained ) - { - f_dbApp->commit(); - - if(f_verboseLevel>1) - G4cout << "Transaction is committed on /" << DBName(dbtype) - << "/" << ContainerName(dbtype) << "/" << G4endl; - - if( f_isSustained && dbtype != f_whichDB ) - { - StartTransaction( f_whichDB, f_transactionMode, true ); - if(f_verboseLevel>1) - G4cout << "Resumeing transaction on /" << DBName(f_whichDB) - << "/" << ContainerName(f_whichDB) << "/" << G4endl; - } - else - { - f_isSustained = false; - } - - return true; - } - } - else - { - G4cerr << "Error: Commit() received on /" << DBName(dbtype) - << "/" << ContainerName(dbtype) << "/" << G4endl - << " Current transaction is on /" << DBName(f_currentDB) - << "/" << ContainerName(f_currentDB) << "/" << G4endl; - return false; - } -} - -G4bool G4TransactionManager::Abort(ETypeOfDB dbtype, G4bool isSustained) -{ - if( dbtype == f_currentDB ) - { - if( ! f_isSustained || isSustained ) - { - f_dbApp->abort(); - - if(f_verboseLevel>1) - G4cout << "Transaction is aborted on /" << DBName(dbtype) - << "/" << ContainerName(dbtype) << "/" << G4endl; - - if( f_isSustained && dbtype != f_whichDB ) - { - StartTransaction( f_whichDB, f_transactionMode, true ); - if(f_verboseLevel>1) - G4cout << "Resumeing transaction on /" << DBName(f_whichDB) - << "/" << ContainerName(f_whichDB) << "/" << G4endl; - } - else - { - f_isSustained = false; - } - - return true; - } - } - else - { - G4cerr << "Error: Abort() received on /" << DBName(dbtype) - << "/" << ContainerName(dbtype) << "/" << G4endl - << " Current transaction is on /" << DBName(f_currentDB) - << "/" << ContainerName(f_currentDB) << "/" << G4endl; - return false; - } -} - -G4bool G4TransactionManager::SelectDB( ETypeOfDB dbtype, - G4String dbname, - G4bool updateMode) -{ - G4bool theStatus = false; - - G4String oldDBname = DBName(dbtype); - SetDBName(dbtype, dbname); - - // start a non-sustained transaction for this database type - if( StartTransaction( dbtype, kUpdate, false ) ) - { - Commit( dbtype, false ); - // update database ref and container ref in SubDbManagers - SendDB(dbtype); - SendContainer(dbtype); - theStatus = true; - - if(f_verboseLevel>0) - G4cout << "Set database to /" - << DBName(dbtype) << "/." << G4endl; - } - else - { - Abort( dbtype, false ); - SetDBName(dbtype, oldDBname); - G4cerr << "G4TransactionManager: Failed to set database /" - << DBName(dbtype) << "/." << G4endl; - theStatus = false; - } - - return theStatus; -} - -G4String G4TransactionManager::DBName(ETypeOfDB dbtype) -{ - switch(dbtype) - { - case kRunDB: - return f_RunDBName; - break; - case kEventDB: - return f_EventDBName; - break; - case kGeomDB: - return f_GeomDBName; - break; - } -} - -G4String G4TransactionManager::ContainerName(ETypeOfDB dbtype) -{ - switch(dbtype) - { - case kRunDB: - return f_RunContainerName; - break; - case kEventDB: - return f_EventContainerName; - break; - case kGeomDB: - return f_GeomContainerName; - break; - } -} - -HepDatabaseRef G4TransactionManager::DBref(ETypeOfDB dbtype) -{ - switch(dbtype) - { - case kRunDB: - return f_RunDB; - break; - case kEventDB: - return f_EventDB; - break; - case kGeomDB: - return f_GeomDB; - break; - } -} - -HepContainerRef G4TransactionManager::ContainerRef(ETypeOfDB dbtype) -{ - switch(dbtype) - { - case kRunDB: - return f_RunContainer; - break; - case kEventDB: - return f_EventContainer; - break; - case kGeomDB: - return f_GeomContainer; - break; - } -} - -void G4TransactionManager::SetDBName(ETypeOfDB dbtype, G4String dbname) -{ - switch(dbtype) - { - case kRunDB: - f_RunDBName = dbname; - break; - case kEventDB: - f_EventDBName = dbname; - f_HitDBName = dbname; - f_DigitDBName = dbname; - break; - case kGeomDB: - f_GeomDBName = dbname; - break; - } -} - -void G4TransactionManager::SetDB(ETypeOfDB dbtype, HepDatabaseRef aDB) -{ - switch(dbtype) - { - case kRunDB: - f_RunDB = aDB; - break; - case kEventDB: - f_EventDB = aDB; - f_HitDB = aDB; - f_DigitDB = aDB; - break; - case kGeomDB: - f_GeomDB = aDB; - break; - } -} - -void G4TransactionManager::SetContainer(ETypeOfDB dbtype, HepContainerRef aCont) -{ - switch(dbtype) - { - case kRunDB: - f_RunContainer = aCont; - break; - case kEventDB: - f_EventContainer = aCont; - f_HitContainer = aCont; - f_DigitContainer = aCont; - break; - case kGeomDB: - f_GeomContainer = aCont; - break; - } -} - -void G4TransactionManager::SendDB(ETypeOfDB dbtype) -{ - switch(dbtype) - { - case kRunDB: - f_pRunMan->SetDB(f_RunDB); - break; - case kEventDB: - f_pEventMan->SetDB(f_EventDB); - f_pHitMan ->SetDB(f_EventDB); - f_pDigitMan->SetDB(f_EventDB); - break; - case kGeomDB: - f_pGeomMan->SetDB(f_GeomDB); - break; - } -} - -void G4TransactionManager::SendContainer(ETypeOfDB dbtype) -{ - switch(dbtype) - { - case kRunDB: - f_pRunMan->SetContainer(f_RunContainer); - break; - case kEventDB: - f_pEventMan->SetContainer(f_EventContainer); - f_pHitMan ->SetContainer(f_EventContainer); - f_pDigitMan->SetContainer(f_EventContainer); - break; - case kGeomDB: - f_pGeomMan->SetContainer(f_GeomContainer); - break; - } -} - -G4String G4TransactionManager::DBContainerName(ETypeOfDB dbtype) -{ - G4String aString = "/" + DBName(dbtype) + "/" + ContainerName(dbtype) + "/"; - return aString; -} - diff --git a/source/persistency/run/GNUmakefile b/source/persistency/run/GNUmakefile deleted file mode 100644 index cd01f7f784..0000000000 --- a/source/persistency/run/GNUmakefile +++ /dev/null @@ -1,41 +0,0 @@ -# $Id: GNUmakefile,v 1.8 2001/03/15 22:58:55 morita Exp $ - -name := G4prun -G4ODBMS := true -G4ODBMS_INSTALLATION := true -PWD := $(shell (dirname `pwd`/dummy | sed -e 's/ //g')) - -ifndef G4INSTALL - G4INSTALL = $(PWD)/../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -G4OODDLX_BOOT := $(G4SCHEMA_BOOT) - -CPPFLAGS += \ - -I$(PWD)/include \ - -I$(G4SCHEMA_HEADER_DIR) \ - -I$(G4INSTALL)/source/persistency/global/include \ - -I$(G4INSTALL)/source/persistency/management/include \ - -I$(G4INSTALL)/source/run/include \ - -I$(G4INSTALL)/source/event/include \ - -I$(G4INSTALL)/source/tracking/include \ - -I$(G4INSTALL)/source/digits+hits/digits/include \ - -I$(G4INSTALL)/source/digits+hits/hits/include \ - -I$(G4INSTALL)/source/global/management/include \ - -I$(G4INSTALL)/source/graphics_reps/include - -#-------------------------------------------------------------------- - -include $(G4INSTALL)/config/G4ODBMS_BUILD.gmk - -include $(G4INSTALL)/config/common.gmk - -#-------------------------------------------------------------------- -# Explicit DDL dependencies: -# G4PEvent.ddl includes G4PPrimaryVertex.hh, so G4PPrimaryVertex.hh -# should be created before G4PEvent.hh. - -#-------------------------------------------------------------------- - diff --git a/source/persistency/run/include/G4PRun.ddl b/source/persistency/run/include/G4PRun.ddl deleted file mode 100644 index 48cb8fc15e..0000000000 --- a/source/persistency/run/include/G4PRun.ddl +++ /dev/null @@ -1,95 +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: G4PRun.ddl,v 1.9 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// -// This is a class which represent a persistent run in Geant4. -// A persistent run object is constructed by -// G4PersistentRunMan::Store() or read back from a database -// by G4PersistentRunMan::Retrieve(). -// G4PersistentRunMan::Store() passes a pointer of a transient -// G4Run object. The G4PRun object construct itself by copying -// the data member of G4Run. -// - -#ifndef G4PRun_h -#define G4PRun_h 1 - -#include "G4Pglobals.hh" -#include "G4Allocator.hh" - -#include "HepODBMS/odbms/HepODBMS.h" - -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" - -class G4Run; - -class G4PRun - : public HepPersObj -{ - public: // with description - G4PRun(); - G4PRun(const G4Run* aRun); - // Constructors. - virtual ~G4PRun(); - // Destructor. - G4Run* MakeTransientObject(); - // Construct a transient G4Run object from the data members of - // G4PRun. - - protected: - G4Pint runID; - G4Pint numberOfEvent; -// G4HCtable* HCtable; -// G4DCtable* DCtable; - - public: // with description - inline void SetRunID(G4int id) - { runID = id; } - inline G4int GetRunID() const - { return runID; } - // set and get Run ID. - inline G4int GetNumberOfEvent() const - { return numberOfEvent; } - // get number of events in this run. - -// inline virtual void RecordEvent(G4Event*) -// { numberOfEvent++; } -// inline void SetHCtable(G4HCtable* HCtbl) -// { HCtable = HCtbl; } -// inline const G4HCtable* GetHCtable() const -// { return HCtable; } -// inline void SetDCtable(G4DCtable* DCtbl) -// { DCtable = DCtbl; } -// inline const G4DCtable* GetDCtable() const -// { return DCtable; } -}; - - -#endif - diff --git a/source/persistency/run/include/G4PersistentRunMan.hh b/source/persistency/run/include/G4PersistentRunMan.hh deleted file mode 100644 index c0d73327e8..0000000000 --- a/source/persistency/run/include/G4PersistentRunMan.hh +++ /dev/null @@ -1,95 +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: G4PersistentRunMan.hh,v 1.10 2001/07/11 10:02:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// Class Description: -// A Utility class to be used by G4PersistencyManager. -// Average users do not need to use this class. -// -// This class is not persistent-capable. -// - -// Member functions: -// ================= -// G4bool Store(HepDbApplication* dbApp, const G4Run* aRun); -// Store aRun and associated objects into database. -// G4bool Retrieve(HepDbApplication* dbApp, G4Run*& aRun); -// Retrieve aRun and associated objects into database. -// void SetContainer(HepContainerRef container); -// Set Run Container reference. -// -// Member data: -// ============ -// HepContainerRef f_container; -// Reference to the event container in the database. -// HepContainerRef f_currentContainer; -// Reference to the current scan scope in Retrieve(). -// -// History: -// 98.10.30 Y.Morita Splited from G4PersistencyManager - -#ifndef G4PERSISTENTRUNMAN_H -#define G4PERSISTENTRUNMAN_H 1 - -#include "globals.hh" - -#include "G4VPersistentSubMan.hh" -#include "G4VPersistentSubDbMan.hh" -#include "G4PRun.hh" - -class HepDbApplication; -class G4Run; - -class G4PersistentRunMan - : public G4VPersistentSubMan, public G4VPersistentSubDbMan -{ - friend class G4PersistencyManager; - friend class G4TransactionManager; - - private: - G4PersistentRunMan(); - ~G4PersistentRunMan(); - - private: - G4int f_currentRunID; - HepRef(G4PRun) f_currentPRun; - - public: - inline G4int CurrentRunID() - { return f_currentRunID; } - - protected: - // interface with G4TransactionManager - - private: - // interface with G4PersistencyManager - G4bool Store( HepDbApplication* dbApp, const G4Run* aRun); - G4bool Retrieve( HepDbApplication* dbApp, G4Run*& aRun ); -}; - - -#endif - diff --git a/source/persistency/run/src/G4PersistentRunMan.cc b/source/persistency/run/src/G4PersistentRunMan.cc deleted file mode 100644 index 451d95a428..0000000000 --- a/source/persistency/run/src/G4PersistentRunMan.cc +++ /dev/null @@ -1,95 +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: G4PersistentRunMan.cc,v 1.10 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4PersistentRunMan -// -// Implementation for concrete G4PersistentRunMan. -// -// History: -// 98.01.08 Y.Morita Initial version -// 98.10.30 Y.Morita Splitted from G4PersistencyManager - -#include "G4PersistentRunMan.hh" - -#include "HepODBMS/clustering/HepDbApplication.h" - -#include "G4Run.hh" -#include "G4ios.hh" - -G4PersistentRunMan::G4PersistentRunMan() -: f_currentRunID(0) -{;} - -G4PersistentRunMan::~G4PersistentRunMan() -{;} - -//---------------------------------------------------------------------------- - -G4bool G4PersistentRunMan::Store( HepDbApplication* dbApp, - const G4Run* aRun) -{ - // Create persistent run - f_currentPRun = new(f_container) G4PRun(aRun); - - if( f_currentPRun == 0 ) - return false; - - f_currentRunID = aRun->GetRunID(); - - return true; -} - -G4bool G4PersistentRunMan::Retrieve( HepDbApplication* dbApp, - G4Run*& aRun) -{ - G4bool theStatus = false; - aRun = 0; - - ooItr(G4PRun) pRun_iterator; - - // set the new scan scope if the DB/Container has been changed by - // G4PersistencyManager - if( f_container != f_currentContainer ) - { - f_currentContainer = f_container; - pRun_iterator.scan(f_currentContainer); - } - - // Retrieve "next" G4PRun in this scope and make a G4Run object - if( pRun_iterator.next() ) - { - G4Run* run = pRun_iterator->MakeTransientObject(); - if( run != 0 ) - { - aRun = run; - theStatus = true; - f_currentRunID = aRun->GetRunID(); - } - } - - return theStatus; -} - diff --git a/source/persistency/src/G4DCIOcatalog.cc b/source/persistency/src/G4DCIOcatalog.cc new file mode 100644 index 0000000000..8c392e0b3c --- /dev/null +++ b/source/persistency/src/G4DCIOcatalog.cc @@ -0,0 +1,146 @@ +// +// ******************************************************************** +// * 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: G4DCIOcatalog.cc +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#include "G4DCIOcatalog.hh" + +// Addtional Include: +#include "G4VDCIOentry.hh" + +G4DCIOcatalog* G4DCIOcatalog::f_thePointer = 0; + +// Implementation of Constructor #1 +G4DCIOcatalog::G4DCIOcatalog() + : m_verbose(0) +{} + +// Implementation of GetDCIOcatalog +G4DCIOcatalog* G4DCIOcatalog::GetDCIOcatalog() +{ + if ( f_thePointer == 0 ) f_thePointer = new G4DCIOcatalog; + return f_thePointer; +} + +// Implementation of RegisterEntry +void G4DCIOcatalog::RegisterEntry(G4VDCIOentry* d) +{ + if ( m_verbose > 0 ) { + G4cout << "registering I/O manager entry \"" << d->GetName() + << "\" " << d << "." << G4endl; + } + if ( theCatalog.find(d->GetName()) != theCatalog.end() ) { + G4cout << "Redefining I/O Managers list " << d->GetName() << G4endl; + } else { + theCatalog[d->GetName()] = d; + } +} + +// Implementation of RegisterDCIOmanager +void G4DCIOcatalog::RegisterDCIOmanager(G4VPDigitsCollectionIO* d) +{ + if ( m_verbose > 0 ) { + G4cout << "registering I/O manager \"" << d->DMname() + << "\" " << d << "." << G4endl; + } + if ( theStore.find(d->DMname()) != theStore.end() ) { + G4cout << "Redefining I/O Manager " << d->DMname() << G4endl; + } else { + theStore[d->DMname()] = d; + } +} + +// Implementation of GetEntry +G4VDCIOentry* G4DCIOcatalog::GetEntry(G4std::string name) +{ + if ( theCatalog.find(name) == theCatalog.end() ) { + G4cout << "Digit Collection I/O manager entry \"" << name + << "\" not found!" << G4endl; + return 0; + } else { + G4VDCIOentry* ds = theCatalog[name]; + return ds; + } +} + +// Implementation of GetDCIOmanager +G4VPDigitsCollectionIO* G4DCIOcatalog::GetDCIOmanager(G4std::string name) +{ + if ( theStore.find(name) == theStore.end() ) { + G4cout << "Digit Collection I/O manager \"" << name + << "\" not found!" << G4endl; + return 0; + } else { + G4VPDigitsCollectionIO* ds = theStore[name]; + return ds; + } +} + +// Implementation of PrintEntries +void G4DCIOcatalog::PrintEntries() +{ + G4cout << "I/O manager entries: "; + G4cout << theCatalog.size() << G4endl; + DCIOmap::const_iterator it; + for ( it=theCatalog.begin(); it != theCatalog.end(); it++ ) { + G4cout << " --- " << (*it).first << G4endl; + } +} + +// Implementation of CurrentDCIOmanager +G4std::string G4DCIOcatalog::CurrentDCIOmanager() +{ + G4std::string list = ""; + DCIOstore::const_iterator it; + for ( it=theStore.begin(); it != theStore.end(); it++ ) { + list += (*it).first + " "; + } + return list; +} + +// Implementation of PrintDCIOmanager +void G4DCIOcatalog::PrintDCIOmanager() +{ + G4cout << "I/O managers: "; + G4cout << theStore.size() << G4endl; + DCIOstore::const_iterator it; + for ( it=theStore.begin(); it != theStore.end(); it++ ) { + G4cout << " --- " << (*it).first + << ", " << (*it).second << "." << G4endl; + } +} + +// Implementation of GetDCIOmanager +G4VPDigitsCollectionIO* G4DCIOcatalog::GetDCIOmanager(int n) +{ + int i = 0; + DCIOstore::const_iterator it; + for ( it=theStore.begin(); it != theStore.end(); it++ ) { + if (i++ == n) return (*it).second; + } + return 0; +} + +// End of G4DCIOcatalog.cc + diff --git a/source/persistency/geometry/global/include/G4PAffineTransform.ddl b/source/persistency/src/G4FileUtilities.cc similarity index 60% rename from source/persistency/geometry/global/include/G4PAffineTransform.ddl rename to source/persistency/src/G4FileUtilities.cc index 3bb92ae83b..49c0270f58 100644 --- a/source/persistency/geometry/global/include/G4PAffineTransform.ddl +++ b/source/persistency/src/G4FileUtilities.cc @@ -19,44 +19,52 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4FileUtilities.cc // -// -// $Id: G4PAffineTransform.ddl,v 1.6 2001/07/11 10:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// persistenet class of G4AffineTransform - // History: -// 10.11.99 Y.Morita, initial creation +// 01.08.24 Youhei Morita Initial creation -#ifndef G4PAFFINETRANSFORM_DDL -#define G4PAFFINETRANSFORM_DDL +#ifndef WIN32 -#include "HepODBMS/odbms/HepODBMS.h" -#include "G4PersistentTypes.hh" -#include "G4PersistentSchema.hh" +#include "G4FileUtilities.hh" -class G4AffineTransform; - -class G4PAffineTransform - : public HepPersObj +// Implementation of Default Constructor +G4FileUtilities::G4FileUtilities() { - public: // With description - G4PAffineTransform( const G4AffineTransform aTrans ); - ~G4PAffineTransform(); - // Constructor and Destructor +} - G4AffineTransform MakeTransientObject(); - // Creates a transient G4AffineTransform object +// Implementation of Default Destructor +G4FileUtilities::~G4FileUtilities() +{ +} - private: - G4Pdouble rxx,rxy,rxz; - G4Pdouble ryx,ryy,ryz; - G4Pdouble rzx,rzy,rzz; - - G4Pdouble tx,ty,tz; -}; +// Implementation of FileExists +G4bool G4FileUtilities::FileExists(const G4std::string file) +{ + char* c = (char *) file.c_str(); + + int fd = ::open( c, O_RDONLY ); + // int error = errno; + if ( fd != -1 ) { + ::close( fd ); + return true; + } else { + return false; + } +} + +// Implementation of CopyFile +int G4FileUtilities::CopyFile(const G4std::string srcFile, const G4std::string dstFile) +{ + G4std::string cmd = "cp " + srcFile + " " + dstFile; + return Shell( cmd ); +} + +// Implementation of DeleteFile +int G4FileUtilities::DeleteFile(const G4std::string file, const G4std::string option) +{ + G4std::string cmd = "rm " + option + " " + file; + return Shell( cmd ); +} #endif - diff --git a/source/persistency/src/G4HCIOcatalog.cc b/source/persistency/src/G4HCIOcatalog.cc new file mode 100644 index 0000000000..8f996cebc7 --- /dev/null +++ b/source/persistency/src/G4HCIOcatalog.cc @@ -0,0 +1,146 @@ +// +// ******************************************************************** +// * 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: G4HCIOcatalog.cc +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#include "G4HCIOcatalog.hh" + +// Addtional Include: +#include "G4VHCIOentry.hh" + +G4HCIOcatalog* G4HCIOcatalog::f_thePointer = 0; + +// Implementation of Constructor #1 +G4HCIOcatalog::G4HCIOcatalog() + : m_verbose(0) +{} + +// Implementation of GetHCIOcatalog +G4HCIOcatalog* G4HCIOcatalog::GetHCIOcatalog() +{ + if ( f_thePointer == 0 ) f_thePointer = new G4HCIOcatalog; + return f_thePointer; +} + +// Implementation of RegisterEntry +void G4HCIOcatalog::RegisterEntry(G4VHCIOentry* d) +{ + if ( m_verbose > 0 ) { + G4cout << "registering I/O manager entry \"" << d->GetName() + << "\" " << d << "." << G4endl; + } + if ( theCatalog.find(d->GetName()) != theCatalog.end() ) { + G4cout << "Redefining I/O Managers list " << d->GetName() << G4endl; + } else { + theCatalog[d->GetName()] = d; + } +} + +// Implementation of RegisterHCIOmanager +void G4HCIOcatalog::RegisterHCIOmanager(G4VPHitsCollectionIO* d) +{ + if ( m_verbose > 0 ) { + G4cout << "registering I/O manager \"" << d->SDname() + << "\" " << d << "." << G4endl; + } + if ( theStore.find(d->SDname()) != theStore.end() ) { + G4cout << "Redefining I/O Manager " << d->SDname() << G4endl; + } else { + theStore[d->SDname()] = d; + } +} + +// Implementation of GetEntry +G4VHCIOentry* G4HCIOcatalog::GetEntry(G4std::string name) +{ + if ( theCatalog.find(name) == theCatalog.end() ) { + G4cout << "Hit Collection I/O manager entry \"" << name + << "\" not found!" << G4std::endl; + return 0; + } else { + G4VHCIOentry* ds = theCatalog[name]; + return ds; + } +} + +// Implementation of GetHCIOmanager +G4VPHitsCollectionIO* G4HCIOcatalog::GetHCIOmanager(G4std::string name) +{ + if ( theStore.find(name) == theStore.end() ) { + G4cout << "Hit Collection I/O manager \"" << name + << "\" not found!" << G4endl; + return 0; + } else { + G4VPHitsCollectionIO* ds = theStore[name]; + return ds; + } +} + +// Implementation of PrintEntries +void G4HCIOcatalog::PrintEntries() +{ + G4cout << "I/O manager entries: "; + G4cout << theCatalog.size() << G4endl; + HCIOmap::const_iterator it; + for ( it=theCatalog.begin(); it != theCatalog.end(); it++ ) { + G4cout << " --- " << (*it).first << G4endl; + } +} + +// Implementation of CurrentHCIOmanager +G4std::string G4HCIOcatalog::CurrentHCIOmanager() +{ + G4std::string list = ""; + HCIOstore::const_iterator it; + for ( it=theStore.begin(); it != theStore.end(); it++ ) { + list += (*it).first + " "; + } + return list; +} + +// Implementation of PrintHCIOmanager +void G4HCIOcatalog::PrintHCIOmanager() +{ + G4cout << "I/O managers: "; + G4cout << theStore.size() << G4endl; + HCIOstore::const_iterator it; + for ( it=theStore.begin(); it != theStore.end(); it++ ) { + G4cout << " --- " << (*it).first + << ", " << (*it).second << "." << G4endl; + } +} + +// Implementation of GetHCIOmanager +G4VPHitsCollectionIO* G4HCIOcatalog::GetHCIOmanager(int n) +{ + int i = 0; + HCIOstore::const_iterator it; + for ( it=theStore.begin(); it != theStore.end(); it++ ) { + if (i++ == n) return (*it).second; + } + return 0; +} + +// End of G4HCIOcatalog.cc + diff --git a/source/persistency/src/G4MCTEvent.cc b/source/persistency/src/G4MCTEvent.cc new file mode 100644 index 0000000000..9bba9173e8 --- /dev/null +++ b/source/persistency/src/G4MCTEvent.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. * +// ******************************************************************** +// G4MCTEvent.cc +// +// ==================================================================== + +#ifndef WIN32 + +#include "G4ios.hh" +#include "G4MCTEvent.hh" +#include "G4MCTGenEvent.hh" +#include "G4MCTSimEvent.hh" +#include "G4MCTSimParticle.hh" + +// ==================================================================== +// +// class description +// +// ==================================================================== + +//////////////////// +G4MCTEvent::G4MCTEvent() + : eventNumber(0) +//////////////////// +{ + genEvent= new G4MCTGenEvent(); // will be reused. + simEvent= new G4MCTSimEvent(); +} + +///////////////////// +G4MCTEvent::~G4MCTEvent() +///////////////////// +{ + delete genEvent; + delete simEvent; +} + +///////////////////////////////////////////////////// +G4MCTSimParticle* G4MCTEvent::GetSimParticle + (const G4MCTGenParticle& genpart) const +///////////////////////////////////////////////////// +{ + MCTGen2SimParticleMap::const_iterator pos= gen2simParticleMap.find(genpart); + if(pos != gen2simParticleMap.end()) { + return pos-> second; + } else { + return 0; + } +} + +//////////////////////////////////////////////////// +G4MCTGenParticle G4MCTEvent::GetGenParticle + (const G4MCTSimParticle* simpart) const +//////////////////////////////////////////////////// +{ + MCTSim2GenParticleMap::const_iterator + pos= sim2genParticleMap.find(const_cast(simpart)); + if(pos != sim2genParticleMap.end()) { + return pos-> second; + } else { + return G4MCTGenParticle(0,0); + } +} + +//////////////////////////////////////////////////////// +int G4MCTEvent::AddPrimaryPair(const G4MCTGenParticle& genp, + const G4MCTSimParticle* simp) +//////////////////////////////////////////////////////// +{ + gen2simParticleMap.insert(G4std::make_pair(const_cast(genp), + const_cast(simp))); + sim2genParticleMap.insert(G4std::make_pair(const_cast(simp), + const_cast(genp))); + + return gen2simParticleMap.size(); +} + +/////////////////////////// +void G4MCTEvent::ClearEvent() +/////////////////////////// +{ + gen2simParticleMap.clear(); + sim2genParticleMap.clear(); + + genEvent-> ClearEvent(); + simEvent-> ClearEvent(); +} + + +////////////////////////////////////////////// +void G4MCTEvent::Print(G4std::ostream& ostr) const +////////////////////////////////////////////// +{ + ostr << "Event#:" << eventNumber << G4endl; + genEvent-> Print(ostr); + simEvent-> Print(ostr); +} + +#endif diff --git a/source/persistency/src/G4MCTGenEvent.cc b/source/persistency/src/G4MCTGenEvent.cc new file mode 100644 index 0000000000..5de28a9481 --- /dev/null +++ b/source/persistency/src/G4MCTGenEvent.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTGenEvent.cc +// +// ==================================================================== + +#ifndef WIN32 + +#include "G4MCTGenEvent.hh" + +#include "CLHEP/HepMC/GenParticle.h" +#include "CLHEP/HepMC/GenVertex.h" + +// ==================================================================== +// +// class description +// +// ==================================================================== + +////////////////////////// +G4MCTGenEvent::G4MCTGenEvent() +////////////////////////// +{ +} + +/////////////////////////// +G4MCTGenEvent::~G4MCTGenEvent() +/////////////////////////// +{ + eventList.clear(); +} + +///////////////////////////////////////////////////////////// +int G4MCTGenEvent::AddGenEvent(const HepMC::GenEvent* genevent) +///////////////////////////////////////////////////////////// +{ + eventList.push_back(const_cast(genevent)); + return eventList.size(); +} + +///////////////////////////////////// +int G4MCTGenEvent::GetNofEvents() const +///////////////////////////////////// +{ + return eventList.size(); +} + +////////////////////////////////////////////////////// +const HepMC::GenEvent* G4MCTGenEvent::GetGenEvent(int i) +////////////////////////////////////////////////////// +{ + int size= eventList.size(); + if(i>=0 && i< size) return eventList[i]; + else return 0; +} + + +////////////////////////////// +void G4MCTGenEvent::ClearEvent() +////////////////////////////// +{ + eventList.clear(); +} + +//////////////////////////////////////////////////////////// +void G4MCTGenEvent::Print(G4std::ostream& ostr) const +//////////////////////////////////////////////////////////// +{ + int nev= eventList.size(); + for(int iev=0; iev print(ostr); + } +} + +#endif diff --git a/source/persistency/src/G4MCTSimEvent.cc b/source/persistency/src/G4MCTSimEvent.cc new file mode 100644 index 0000000000..0b85d60e32 --- /dev/null +++ b/source/persistency/src/G4MCTSimEvent.cc @@ -0,0 +1,173 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTSimEvent.cc +// +// ==================================================================== +#include "G4ios.hh" +#include "G4MCTSimEvent.hh" +#include "G4MCTSimParticle.hh" +#include "G4MCTSimVertex.hh" + +// ==================================================================== +// +// class description +// +// ==================================================================== + +////////////////////////// +G4MCTSimEvent::G4MCTSimEvent() +////////////////////////// +{ +} + +/////////////////////////// +G4MCTSimEvent::~G4MCTSimEvent() +/////////////////////////// +{ + ClearEvent(); +} + +////////////////////////////////////////////////////////////// +G4bool G4MCTSimEvent::AddParticle(const G4MCTSimParticle* aparticle) +////////////////////////////////////////////////////////////// +{ + G4MCTSimParticle* qpart= const_cast(aparticle); + int trackID= aparticle-> GetTrackID(); + int nc= particleMap.count(trackID); + if(nc==0) { + particleMap.insert(G4std::make_pair(trackID, qpart)); + return true; + } else { + return false; + } + +} + +//////////////////////////////////////////////////////// +G4MCTSimParticle* G4MCTSimEvent::FindParticle(int tid) const +//////////////////////////////////////////////////////// +{ + G4MCTSimParticleContainer::const_iterator pos= particleMap.find(tid); + if(pos != particleMap.end()) { + return pos-> second; + } else { + return 0; + } +} + +/////////////////////////////////////////////////// +G4MCTSimVertex* G4MCTSimEvent::GetVertex(int vid) const +/////////////////////////////////////////////////// +{ + int nv= vertexVec.size(); + if(vid>=1 && vid<=nv) { + return vertexVec[vid-1]; + } else { + return 0; + } +} + +//////////////////////////////////////// +void G4MCTSimEvent::BuildVertexContainer() +//////////////////////////////////////// +{ + G4MCTSimParticleContainer::iterator itr; + int vid=1; + for(itr= particleMap.begin(); itr!= particleMap.end(); ++itr) { + G4MCTSimVertex* vertex= itr->second-> GetVertex(); + if(vertex) { + if (vertex-> GetID()<0) { // ID not yet assigned + vertex-> SetID(vid); + vid++; + if (vertex) vertexVec.push_back(vertex); + } + } + } +} + +////////////////////////////// +void G4MCTSimEvent::ClearEvent() +////////////////////////////// +{ + G4MCTSimParticleContainer::iterator itr; + for(itr= particleMap.begin(); itr!= particleMap.end(); ++itr) { + delete itr->second; + } + particleMap.clear(); + + G4MCTSimVertexContainer::iterator itrv; + for(itrv= vertexVec.begin(); itrv!= vertexVec.end(); ++itrv) { + delete (*itrv); + } + vertexVec.clear(); +} + + +////////////////////////////////////////////// +int G4MCTSimEvent::GetNofStoredParticles() const +////////////////////////////////////////////// +{ + int n=0; + G4MCTSimParticleContainer::const_iterator itr; + for(itr= particleMap.begin(); itr!= particleMap.end(); ++itr) { + if(itr-> second-> GetStoreFlag()) n++; + } + return n; +} + +///////////////////////////////////////////// +int G4MCTSimEvent::GetNofStoredVertices() const +///////////////////////////////////////////// +{ + int n=0; + G4MCTSimVertexContainer::const_iterator itr; + for(itr= vertexVec.begin(); itr!= vertexVec.end(); ++itr) { + if((*itr)->GetStoreFlag()) n++; + } + return n; +} + + +///////////////////////////////////////////////// +void G4MCTSimEvent::Print(G4std::ostream& ostr) const +///////////////////////////////////////////////// +{ + ostr << "____________________________________________________" + "____________________________" << G4endl; + ostr << "SimEvent:" << G4endl << G4endl; + ostr << "Current Memory Usage: " + << particleMap.size() << " particles, " + << vertexVec.size() << " vertices." + << G4endl; + ostr << "trk# second-> PrintSingle(ostr); + } + ostr << "____________________________________________________" + "____________________________" << G4endl; +} diff --git a/source/persistency/src/G4MCTSimParticle.cc b/source/persistency/src/G4MCTSimParticle.cc new file mode 100644 index 0000000000..cd94e06ef1 --- /dev/null +++ b/source/persistency/src/G4MCTSimParticle.cc @@ -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. * +// ******************************************************************** +// G4MCTSimParticle.cc +// +// ==================================================================== +#include "g4std/strstream" +#include "g4std/iomanip" +#include "G4ios.hh" +#include "CLHEP/Units/SystemOfUnits.h" +#include "G4MCTSimParticle.hh" +#include "G4MCTSimVertex.hh" + +// ==================================================================== +// +// class description +// +// ==================================================================== + +///////////////////////////////// +G4MCTSimParticle::G4MCTSimParticle() + : parentParticle(0), + trackID(0), parentTrackID(0), + primaryFlag(false), + vertex(0), storeFlag(false) +///////////////////////////////// +{ +} + +///////////////////////////////////////////////////////////// +G4MCTSimParticle::G4MCTSimParticle(G4std::string aname, int apcode, + int atid, int ptid, + const HepLorentzVector& p) + : parentParticle(0), + name(aname), pdgID(apcode), + trackID(atid), parentTrackID(ptid), + primaryFlag(false),momentumAtVertex(p), + vertex(0), storeFlag(false) +/////////////////////////////////////////////////////////////// +{ +} + +///////////////////////////////////////////////////////////// +G4MCTSimParticle::G4MCTSimParticle(G4std::string aname, int apcode, + int atid, int ptid, + const HepLorentzVector& p, + const G4MCTSimVertex* v ) + : parentParticle(0), + name(aname), pdgID(apcode), + trackID(atid), parentTrackID(ptid), + primaryFlag(false),momentumAtVertex(p), + vertex(const_cast(v)), storeFlag(false) +/////////////////////////////////////////////////////////////// +{ +} + +///////////////////////////////// +G4MCTSimParticle::~G4MCTSimParticle() +///////////////////////////////// +{ + associatedParticleList.clear(); +} + +//////////////////////////////////////////////////////// +int G4MCTSimParticle::AssociateParticle(G4MCTSimParticle* p) +//////////////////////////////////////////////////////// +{ + associatedParticleList.push_back(p); + p-> SetParentParticle(this); + return associatedParticleList.size(); +} + +///////////////////////////////////////////////////// +int G4MCTSimParticle::GetNofAssociatedParticles() const +///////////////////////////////////////////////////// +{ + return associatedParticleList.size(); +} + +////////////////////////////////////////////////////////////////// +G4MCTSimParticle* G4MCTSimParticle::GetAssociatedParticle(int i) const +////////////////////////////////////////////////////////////////// +{ + int size= associatedParticleList.size(); + if(i>=0 && i< size) return associatedParticleList[i]; + else return 0; +} + +//////////////////////////////////////// +int G4MCTSimParticle::GetTreeLevel() const +//////////////////////////////////////// +{ + const G4MCTSimParticle* p= this; + int nlevel; + for(nlevel=1;;nlevel++) { + p= p-> GetParentParticle(); + if(p==0) return nlevel; + } +} + +///////////////////////////////////////////////////// +void G4MCTSimParticle::SetStoreFlagToParentTree(G4bool q) +///////////////////////////////////////////////////// +{ + storeFlag=q; + if(vertex) vertex-> SetStoreFlag(q); + if(primaryFlag) return; + if(parentParticle) parentParticle-> SetStoreFlagToParentTree(q); +} + + +////////////////////////////////////////////////////////// +void G4MCTSimParticle::PrintSingle(G4std::ostream& ostr) const +////////////////////////////////////////////////////////// +{ + char stp[20]; + G4std::ostrstream os(stp,20); + char cqp=' '; + if(storeFlag) cqp='+'; + os << cqp << trackID << '\0'; + G4std::string stid(stp); + ostr << G4std::setw(6) << stid; + //ostr << G4std::setw(4) << trackID; + + if(primaryFlag) ostr << "*"; + else ostr << " "; + ostr << "<" << G4std::setw(5) << parentTrackID; + ostr.setf(G4std::ios::fixed); + ostr << ": P(" + << G4std::setw(7) << G4std::setprecision(3) << momentumAtVertex.x()/GeV + << "," << G4std::setw(7) << G4std::setprecision(3) + << momentumAtVertex.y()/GeV + << "," << G4std::setw(7) << G4std::setprecision(3) + << momentumAtVertex.z()/GeV + << "," << G4std::setw(7) << G4std::setprecision(3) + << momentumAtVertex.e()/GeV << ") @"; + ostr << name << "(" << pdgID << ")"; + + if(vertex) { + ostr << " %" << vertex-> GetCreatorProcessName() << G4endl; + + char stv[20]; + G4std::ostrstream osv(stv,20); + char cqv=' '; + if(vertex->GetStoreFlag()) cqv='+'; + osv << cqv << vertex-> GetID() << '\0'; + G4std::string svid(stv); + ostr << " " << G4std::setw(6) << svid; + //ostr << " " << G4std::setw(4) << vertex-> GetID(); + ostr.unsetf(G4std::ios::fixed); + ostr.setf(G4std::ios::scientific|G4std::ios::right|G4std::ios::showpoint); + ostr << "- X(" << G4std::setw(9) << G4std::setprecision(2) + << vertex-> GetPosition().x()/mm + << "," << G4std::setw(9) << G4std::setprecision(2) + << vertex-> GetPosition().y()/mm + << "," << G4std::setw(9) << G4std::setprecision(2) + << vertex-> GetPosition().z()/mm + << "," << G4std::setw(9) << G4std::setprecision(2) + << vertex-> GetTime()/ns << ")"; + ostr.unsetf(G4std::ios::scientific); + + ostr << " @" << vertex-> GetVolumeName() + << "-" << vertex-> GetVolumeNumber(); + } + ostr << G4endl; + +} + +//////////////////////////////////////////////////////////////////// +void G4MCTSimParticle::Print(G4std::ostream& ostr, G4bool qrevorder) const +//////////////////////////////////////////////////////////////////// +{ + PrintSingle(ostr); + + // recursively print associated particles + if (!qrevorder) { // parent -> child + SimParticleList::const_iterator itr; + for(itr= associatedParticleList.begin(); + itr!= associatedParticleList.end(); ++itr) { + (*itr)-> Print(ostr); + } + } else { // child -> parent + if(parentParticle) parentParticle-> Print(ostr, true); + } +} diff --git a/source/persistency/src/G4MCTSimVertex.cc b/source/persistency/src/G4MCTSimVertex.cc new file mode 100644 index 0000000000..19d4590766 --- /dev/null +++ b/source/persistency/src/G4MCTSimVertex.cc @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// G4MCTSimVertex.cc +// +// ==================================================================== +#include "g4std/strstream" +#include "g4std/iomanip" +#include "G4ios.hh" +#include "CLHEP/Units/SystemOfUnits.h" +#include "G4MCTSimParticle.hh" +#include "G4MCTSimVertex.hh" + +// ==================================================================== +// +// class description +// +// ==================================================================== + +///////////////////////////////////// +G4MCTSimVertex::G4MCTSimVertex() + : inParticleTrackID(0),id(-1), + volumeName(""), volumeNumber(-1), + creatorProcessName("none"), + storeFlag(false) +///////////////////////////////////// +{ +} + +///////////////////////////////////////////////////////// +G4MCTSimVertex::G4MCTSimVertex(const Hep3Vector& x, double t) + : inParticleTrackID(0), id(-1), position(x), time(t), + volumeName(""), volumeNumber(-1), + creatorProcessName("none"), storeFlag(false) +///////////////////////////////////////////////////////// +{ +} + +/////////////////////////////////////////////////////////////// +G4MCTSimVertex::G4MCTSimVertex(const Hep3Vector& x, double t, + G4std::string vname, int ncopy, G4std::string pname) + : inParticleTrackID(0), id(-1), position(x), time(t), + volumeName(vname), volumeNumber(ncopy), + creatorProcessName(pname), storeFlag(false) +/////////////////////////////////////////////////////////////// +{ +} + +///////////////////////////// +G4MCTSimVertex::~G4MCTSimVertex() +///////////////////////////// +{ + outParticleTrackIDList.clear(); +} + +////////////////////////////////////////////////// +void G4MCTSimVertex::Print(G4std::ostream& ostr) const +////////////////////////////////////////////////// +{ + char st[20]; + G4std::ostrstream os(st,20); + char cq=' '; + if(storeFlag) cq='+'; + os << cq << id << '\0'; + G4std::string sid(st); + + ostr.unsetf(G4std::ios::fixed); + ostr.setf(G4std::ios::scientific|G4std::ios::right|G4std::ios::showpoint); + //ostr << G4std::setw(4) << id; + ostr << G4std::setw(6) << sid; + ostr << " : X(" << G4std::setw(9) << G4std::setprecision(2) + << position.x()/mm + << "," << G4std::setw(9) << G4std::setprecision(2) + << position.y()/mm + << "," << G4std::setw(9) << G4std::setprecision(2) + << position.z()/mm + << "," << G4std::setw(9) << G4std::setprecision(2) + << time/ns << ")"; + ostr.unsetf(G4std::ios::scientific); + ostr << "@" << volumeName + << "-" << volumeNumber + << "%" << creatorProcessName + << G4endl; + + ostr << " " << G4std::setw(4) << inParticleTrackID << "-> "; + size_t np= outParticleTrackIDList.size(); + for (size_t i=0; iApplyCommand("/load "+libs); + if ( st == 0 ) { + pm = GetPersistencyManager("ROOT"); + } + } + else if (systemName=="ODBMS") + { + G4cout<<" G4PersistencyCenter: \"ODBMS\" package is selected."<ApplyCommand("/load "+libs); + if ( st == 0 ) { + pm = GetPersistencyManager("ODBMS"); + } + } + if ( st == 0 ) { + f_currentManager = pm->Create(); + if (f_currentManager!=0) f_currentManager->SetVerboseLevel(m_verbose); + f_currentSystemName = systemName; + } +} + +// Implementation of SetHepMCObjyReaderFile +void G4PersistencyCenter::SetHepMCObjyReaderFile(G4std::string file) +{ + if ( SetReadFile("HepMC", file) ) { + SetRetrieveMode("HepMC", true); + } +} + +// Implementation of CurrentHepMCObjyReaderFile +G4std::string G4PersistencyCenter::CurrentHepMCObjyReaderFile() +{ + if ( CurrentRetrieveMode("HepMC") ) { + return CurrentReadFile("HepMC"); + } else { + return ""; + } +} + +// Implementation of SetStoreMode +void G4PersistencyCenter::SetStoreMode(G4std::string objName, StoreMode mode) +{ + if ( (*(f_writeFileName.find(objName))).second != "" ) { + f_writeFileMode[objName] = mode; + } else { + G4cerr << "!! unknown object type " << objName << " for output." + << G4endl; + } +} + +// Implementation of SetRetrieveMode +void G4PersistencyCenter::SetRetrieveMode(G4std::string objName, G4bool mode) +{ + if ( (*(f_readFileName.find(objName))).second != "" ) { + f_readFileMode[objName] = mode; + } else { + G4cerr << "!! unknown object type " << objName << " for input." + << G4endl; + } +} + +// Implementation of CurrentStoreMode +StoreMode G4PersistencyCenter::CurrentStoreMode(G4std::string objName) +{ + + + if ( (*(f_writeFileName.find(objName))).second != "" ) { + return f_writeFileMode[objName]; + } else { + return kOff; + } +} + +// Implementation of CurrentRetrieveMode +G4bool G4PersistencyCenter::CurrentRetrieveMode(G4std::string objName) +{ + if ( (*(f_readFileName.find(objName))).second != "" ) { + return f_readFileMode[objName]; + } else { + return false; + } +} + +// Implementation of SetWriteFile +G4bool G4PersistencyCenter::SetWriteFile(G4std::string objName, G4std::string writeFileName) +{ + if ( (*(f_writeFileName.find(objName))).second != "" ) { + f_writeFileName[objName] = writeFileName; + } else { + G4cerr << "!! unknown object type " << objName << " for output." + << G4endl; + return false; + } + return true; +} + +// Implementation of SetReadFile +G4bool G4PersistencyCenter::SetReadFile(G4std::string objName, G4std::string readFileName) +{ +#ifndef WIN32 + if ( f_ut.FileExists(readFileName) ) + { + f_readFileName[objName] = readFileName; + } + else + { + G4cerr << "!! File \"" << objName << "\" does not exist." + << G4endl; + return false; + } +#endif + return true; +} + +// Implementation of CurrentWriteFile +G4std::string G4PersistencyCenter::CurrentWriteFile(G4std::string objName) +{ + if ( (*(f_writeFileName.find(objName))).second != "" ) { + return f_writeFileName[objName]; + } else { + return "?????"; + } +} + +// Implementation of CurrentReadFile +G4std::string G4PersistencyCenter::CurrentReadFile(G4std::string objName) +{ + if ( (*(f_readFileName.find(objName))).second != "" ) { + return f_readFileName[objName]; + } else { + return "?????"; + } +} + +// Implementation of CurrentObject +G4std::string G4PersistencyCenter::CurrentObject(G4std::string file) +{ + FileMap::iterator itr; + for ( itr = f_readFileName.begin(); itr != f_readFileName.end(); itr++ ) { + if ( file == (*itr).second ) return (*itr).first; + } + for ( itr = f_writeFileName.begin(); itr != f_writeFileName.end(); itr++ ) { + if ( file == (*itr).second ) return (*itr).first; + } + return "?????"; +} + +// Implementation of AddHCIOmanager +void G4PersistencyCenter::AddHCIOmanager(G4std::string detName, G4std::string colName) +{ + G4HCIOcatalog* ioc = G4HCIOcatalog::GetHCIOcatalog(); + + G4VHCIOentry* ioe = ioc->GetEntry(detName); + if ( ioe != 0 ) { + ioe->CreateHCIOmanager(detName, colName); + } else { + G4cerr << "Error! -- HCIO assignment failed for detector " << detName + << ", collection " << colName << G4endl; + } +} + +// Implementation of CurrentHCIOmanager +G4std::string G4PersistencyCenter::CurrentHCIOmanager() +{ + G4HCIOcatalog* ioc = G4HCIOcatalog::GetHCIOcatalog(); + return ioc->CurrentHCIOmanager(); +} + +// Implementation of AddDCIOmanager +void G4PersistencyCenter::AddDCIOmanager(G4std::string detName) +{ + G4DCIOcatalog* ioc = G4DCIOcatalog::GetDCIOcatalog(); + + G4std::string colName = ""; + G4VDCIOentry* ioe = ioc->GetEntry(detName); + if ( ioe != 0 ) { + ioe->CreateDCIOmanager(detName, colName); + } else { + G4cerr << "Error! -- DCIO assignment failed for detector " << detName + << ", collection " << colName << G4endl; + } +} + +// Implementation of CurrentDCIOmanager +G4std::string G4PersistencyCenter::CurrentDCIOmanager() +{ + G4DCIOcatalog* ioc = G4DCIOcatalog::GetDCIOcatalog(); + return ioc->CurrentDCIOmanager(); +} + +// Implementation of PrintAll +void G4PersistencyCenter::PrintAll() +{ + G4cout << "Persistency Package: " << CurrentSystem() << G4endl; + G4cout << G4endl; + + ObjMap::iterator itr; + G4std::string name; + G4std::string file; + StoreMode mode; + + G4cout << "Output object types and file names:" << G4endl; + for ( itr = f_wrObj.begin(); itr != f_wrObj.end(); itr++ ) { + name = (*itr).second; + // disabled HepMC and MCTruth for now + if ( name != "HepMC" && name != "MCTruth" ) { + G4cout << " Object: " << PadString(name, 9); + mode = CurrentStoreMode(name); + if ( mode == kOn ) { + G4cout << " "; + } else if ( mode == kOff ) { + G4cout << " "; + } else if ( mode == kRecycle ) { + G4cout << ""; + } + file = CurrentWriteFile(name); + if ( file == "" ) file = " "; + G4cout << " File: " << file << G4endl; + } + } + G4cout << G4endl; + + G4cout << "Input object types and file names:" << G4endl; + for ( itr = f_rdObj.begin(); itr != f_rdObj.end(); itr++ ) { + name = (*itr).second; + // disabled HepMC and MCTruth for now + if ( name != "HepMC" && name != "MCTruth" ) { + G4cout << " Object: " << PadString(name, 9); + if ( CurrentRetrieveMode(name) ) { + G4cout << " "; + } else { + G4cout << " "; + } + file = CurrentReadFile(name); + if ( file == "" ) file = " "; + G4cout << " File: " << CurrentReadFile(name) << G4endl; + } + } + G4cout << G4endl; + + G4HCIOcatalog* hioc = G4HCIOcatalog::GetHCIOcatalog(); + if ( hioc != 0 ) { + G4cout << "Hit IO Managers:" << G4endl; + hioc->PrintEntries(); + hioc->PrintHCIOmanager(); + G4cout << G4endl; + } else { + G4cout << "Hit IO Manager catalog is not registered." << G4endl; + } + + G4DCIOcatalog* dioc = G4DCIOcatalog::GetDCIOcatalog(); + if ( dioc != 0 ) { + G4cout << "Digit IO Managers:" << G4endl; + dioc->PrintEntries(); + dioc->PrintDCIOmanager(); + G4cout << G4endl; + } else { + G4cout << "Digit IO Manager catalog is not registered." << G4endl; + } +} + +// Implementation of SetPersistencyManager +void G4PersistencyCenter::SetPersistencyManager(G4PersistencyManager* pm, + G4std::string name) +{ + f_currentManager=pm; + f_currentSystemName=name; +} + +// Implementation of GetPersistencyManager +G4PersistencyManager* G4PersistencyCenter::GetPersistencyManager(G4std::string nam) +{ + if (f_theCatalog.find(nam)!=f_theCatalog.end()) + return f_theCatalog[nam]; + return 0; +} + +// Implementation of RegisterPersistencyManager +void G4PersistencyCenter::RegisterPersistencyManager(G4PersistencyManager* pm) +{ + f_theCatalog[pm->GetName()]=pm; +} + +// Implementation of DeletePersistencyManager +void G4PersistencyCenter::DeletePersistencyManager() +{ + if (f_currentManager!=0) delete f_currentManager; + f_currentManager=0; +} + +// Implementation of SetVerboseLevel +void G4PersistencyCenter::SetVerboseLevel(int v) +{ + m_verbose = v; + if ( f_currentManager != 0 ) f_currentManager->SetVerboseLevel(m_verbose); +} + +// Implementation of PadString +G4std::string G4PersistencyCenter::PadString(G4std::string name, unsigned int width) +{ + if ( name.length() > width ) { + return name.substr(0,width-1) + "#"; + } else { + G4std::string wname = name; + for ( unsigned int i=0; i < width-name.length(); i++) wname = wname + " "; + return wname; + } +} + +// End of G4PersistencyCenter.cc + diff --git a/source/persistency/src/G4PersistencyCenterMessenger.cc b/source/persistency/src/G4PersistencyCenterMessenger.cc new file mode 100644 index 0000000000..ee7c82d15e --- /dev/null +++ b/source/persistency/src/G4PersistencyCenterMessenger.cc @@ -0,0 +1,271 @@ +// +// ******************************************************************** +// * 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: G4PersistencyCenterMessenger.cc +// +// History: +// 01.07.18 Youhei Morita Initial creation (with "fadsclass") + +#include "G4PersistencyCenterMessenger.hh" + +// Implementation of Constructor #1 +G4PersistencyCenterMessenger::G4PersistencyCenterMessenger(G4PersistencyCenter* p) + : pc(p) +{ + G4std::string name = "/persistency/"; + directory=new G4UIdirectory(name.c_str()); + directory->SetGuidance("Control commands for Persistency package"); + + G4std::string cmd = name + "verbose"; + + verboseCmd = new G4UIcmdWithAnInteger(cmd.c_str(),this); + verboseCmd->SetGuidance("Set the verbose level of G4PersistencyManager."); + verboseCmd->SetGuidance(" 0 : Silent (default)"); + verboseCmd->SetGuidance(" 1 : Display main topics"); + verboseCmd->SetGuidance(" 2 : Display event-level topics"); + verboseCmd->SetGuidance(" 3 : Display debug information"); + verboseCmd->SetParameterName("level",true); + verboseCmd->SetDefaultValue(0); + verboseCmd->SetRange("level >=0 && level <=3"); + + G4std::string vname = name + "select"; + + cmd = vname; + select = new G4UIcmdWithAString(cmd.c_str(),this); + select->SetGuidance("Selection of a persistency package"); + select->SetParameterName("Persistency package name", true, true); + select->SetCandidates("ODBMS ROOT None"); + + vname = name + "store/"; + + G4UIcommand* directory; + + directory = new G4UIdirectory(vname.c_str()); + directory->SetGuidance("Specifiy object types for store"); + + wrObj.push_back("HepMC"); + wrObj.push_back("MCTruth"); + wrObj.push_back("Hits"); + + G4std::string guidance; + int i; + + for ( i = 0; i < 3; i++ ) + { + cmd = vname + wrObj[i]; + guidance = "Store " + wrObj[i] + " objects for output"; + storeObj.push_back(new G4UIcmdWithAString(cmd.c_str(),this)); + storeObj[i]->SetGuidance(guidance.c_str()); + if ( wrObj[i] == "HepMC" ) { + storeObj[i]->SetCandidates("on off recycle"); + } else { + storeObj[i]->SetCandidates("on off"); + } + } + + vname += "using/"; + directory = new G4UIdirectory(vname.c_str()); + directory->SetGuidance("Select I/O manager for store"); + + cmd = vname + "hitIO"; + regHitIO = new G4UIcmdWithAString(cmd.c_str(),this); + regHitIO->SetGuidance("Resiter Hits I/O Manager"); + regHitIO->SetParameterName("Name of Hits I/O Manager", true, true); + + vname = name + "set/"; + directory = new G4UIdirectory(vname.c_str()); + directory->SetGuidance("Set various parameters"); + + vname += "writeFile/"; + directory = new G4UIdirectory(vname.c_str()); + directory->SetGuidance("Set output file names for object types"); + + for ( i = 0; i < 3; i++ ) + { + cmd = vname + wrObj[i]; + guidance = "Set an output file name for " + wrObj[i] + "."; + setWrFile.push_back(new G4UIcmdWithAString(cmd.c_str(),this)); + setWrFile[i]->SetGuidance(guidance.c_str()); + setWrFile[i]->SetParameterName("file name", true, true); + } + + vname = name + "set/ReadFile/"; + directory = new G4UIdirectory(vname.c_str()); + directory->SetGuidance("Set input file names for object types"); + + rdObj.push_back("Hits"); + + cmd = vname + rdObj[0]; + guidance = "Set an input file name for " + rdObj[0] + "."; + setRdFile.push_back(new G4UIcmdWithAString(cmd.c_str(),this)); + setRdFile[0]->SetGuidance(guidance.c_str()); + setRdFile[0]->SetParameterName("file name", true, true); + + cmd = name + "printall"; + printAll = new G4UIcmdWithoutParameter(cmd.c_str(),this); + printAll->SetGuidance("Print all parameters."); + +} + +// Implementation of Destructor #1 +G4PersistencyCenterMessenger::~G4PersistencyCenterMessenger() +{ + delete directory; + delete verboseCmd; + delete select; + delete regHitIO; + for ( int i = 0; i < 3; i++ ) + { + delete storeObj[i]; + delete setWrFile[i]; + } + delete setRdFile[0]; + delete printAll; +} + +// Implementation of SetNewValue +void G4PersistencyCenterMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + if (command==verboseCmd) + { + pc->SetVerboseLevel(verboseCmd->GetNewIntValue(newValues)); + } + else if (command==select) + { + pc->SelectSystem(newValues); + } + else if (command==regHitIO) + { + pc->AddHCIOmanager(PopWord(newValues,1," "),PopWord(newValues,2," ")); + } + else if (command==setRdFile[0]) + { + pc -> SetReadFile ( rdObj[0],newValues); + } + else if (command==printAll) + { + pc->PrintAll(); + } + else + { + for( int i=0; i<3; i++ ) { + if( command==storeObj[i] ) + { + StoreMode mode = kOff; + if( newValues == "on" ) { + mode = kOn; + } else if ( newValues == "off" ) { + mode = kOff; + } else if ( newValues == "recycle" ) { + mode = kRecycle; + } else { + G4cerr << "Unrecognized keyword - \"" << newValues << "\"." + << G4endl; + } + pc->SetStoreMode(wrObj[i],mode); + break; + } + else if( command==setWrFile[i] ) + { + pc->SetWriteFile(wrObj[i],newValues); + break; + } + } + } +} + +// Implementation of GetCurrentValue +G4String G4PersistencyCenterMessenger::GetCurrentValue(G4UIcommand* command) +{ + G4String s="Undefined"; + + if (command==select) + { + return pc->VerboseLevel(); + } + else if (command==select) + { + return pc->CurrentSystem(); + } + else if (command==regHitIO) + { + return pc->CurrentHCIOmanager(); + } + else if (command==setRdFile[0]) + { + return pc->CurrentReadFile(rdObj[0]); + } + else + { + for( int i=0; i<3; i++ ) { + if( command==storeObj[i] ) + { + switch (pc->CurrentStoreMode(wrObj[i])) { + case kOn: + return "on"; + break; + case kOff: + return "off"; + break; + case kRecycle: + return "recycle"; + break; + default: + return "?????"; + break; + }; + } + else if( command==setWrFile[i] ) + { + return pc->CurrentWriteFile(wrObj[i]); + } + } + } + + return s; +} + +// Implementation of PopWord +G4std::string G4PersistencyCenterMessenger::PopWord(G4std::string text, int n, G4std::string delim) +{ + if ( text.length() <= 0 ) return ""; + int p = 0, p0 = 0; + int p1 = 0; + for ( int i = 0; i < n; i++ ) { + p1 = text.find_first_of(delim,p0+1); + while( p1 == p0+1 ) { + p0 = p1; + p1 = text.find_first_of(delim,p0+1); + } + p = p0; + if ( p1 < 0 ) { + if ( i+1 < n ) return ""; + p1 = text.length(); + break; + } + p0 = p1; + } + if (p > 0) p++; + return text.substr(p,p1-p); +} + +// End of G4PersistencyCenterMessenger.cc + diff --git a/source/persistency/src/G4PersistencyManager.cc b/source/persistency/src/G4PersistencyManager.cc new file mode 100644 index 0000000000..549cf40942 --- /dev/null +++ b/source/persistency/src/G4PersistencyManager.cc @@ -0,0 +1,415 @@ +// +// ******************************************************************** +// * 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: G4PersistencyManager.cc +// +// History: +// 01.07.17 Youhei Morita Initial creation (with "fadsclass") + +#include "G4PersistencyManager.hh" + +// Addtional Include: +#include "g4std/iomanip" +#include "G4PersistencyCenter.hh" + +// Implementation of Constructor #1 +G4PersistencyManager::G4PersistencyManager(G4PersistencyCenter* pc, G4std::string n) + : f_pc(pc), nameMgr(n), f_is_initialized(false) +{ + m_verbose = f_pc->VerboseLevel(); + + // G4cout << "G4PersistencyManager is constructed with name \"" << nameMgr + // << "\", " << this << ", verbose = " << m_verbose << G4endl; + + // f_GenCenter = GeneratorCenter::GetGeneratorCenter(); + // f_MCTman = G4MCTManager::GetPointer(); +} + +// Implementation of Destructor #1 +G4PersistencyManager::~G4PersistencyManager() +{} + +// Implementation of GetPersistencyManager +G4PersistencyManager* G4PersistencyManager::GetPersistencyManager() +{ + return G4PersistencyCenter::GetPersistencyCenter()->CurrentPersistencyManager(); +} + +// Implementation of SetVerboseLevel +void G4PersistencyManager::SetVerboseLevel(int v) +{ + m_verbose = v; + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager[\"" << nameMgr << "\"," << this + << "]: verbose level is set to " << m_verbose << "." + << G4endl; + } + if ( EventIO() != 0 ) EventIO()->SetVerboseLevel(m_verbose); +#ifndef WIN32 + if ( HepMCIO() != 0 ) HepMCIO()->SetVerboseLevel(m_verbose); + if ( MCTruthIO() != 0 ) MCTruthIO()->SetVerboseLevel(m_verbose); +#endif + if ( HitIO() != 0 ) HitIO()->SetVerboseLevel(m_verbose); + if ( DigitIO() != 0 ) DigitIO()->SetVerboseLevel(m_verbose); + if (TransactionManager() != 0) TransactionManager()->SetVerboseLevel(m_verbose); + + size_t i; + + G4HCIOcatalog* hcio = G4HCIOcatalog::GetHCIOcatalog(); + if ( hcio != 0 ) { + hcio->SetVerboseLevel(m_verbose); + for ( i = 0; i < hcio->NumberOfHCIOmanager(); i++ ) { + hcio->GetHCIOmanager(i)->SetVerboseLevel(m_verbose); + } + } + G4DCIOcatalog* dcio = G4DCIOcatalog::GetDCIOcatalog(); + if ( dcio != 0 ) { + dcio->SetVerboseLevel(m_verbose); + for ( i = 0; i < dcio->NumberOfDCIOmanager(); i++ ) { + dcio->GetDCIOmanager(i)->SetVerboseLevel(m_verbose); + } + } +} + +// Implementation of Store +G4bool G4PersistencyManager::Store(const G4Event* evt) +{ + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager::Store() is called for event# " + << evt->GetEventID() << "." << G4endl; + } + + if ( TransactionManager() == 0 ) return true; + + G4bool is_store = f_pc->CurrentStoreMode("HepMC") != kOff || + f_pc->CurrentStoreMode("MCTruth") != kOff || + f_pc->CurrentStoreMode("Hits") != kOff || + f_pc->CurrentStoreMode("Digits") != kOff; + + if ( ! is_store ) return true; + + // Call package dependent Initialize() + // + if ( ! f_is_initialized ) { + f_is_initialized = true; + if ( m_verbose > 1 ) { + G4cout << "G4PersistencyManager:: Initializing Transaction ... " + << G4endl; + } + Initialize(); + } + + G4bool sthep = true, stmct = true; + G4bool st1 = true, st2 = true, st3 = true; + + // Start event IO transaction + // + if ( TransactionManager()->StartUpdate() ) { + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager: Update transaction started for event#" + << evt->GetEventID() << "." << G4endl; + } + } else { + G4cerr << "TransactionManager::Store(G4Event) - StartUpdate() failed." + << G4endl; + return false; + } + + G4std::string file; + G4std::string obj; + +#ifndef WIN32 + + // Store HepMC event + // + obj = "HepMC"; + HepMC::GenEvent* hepevt = 0; + if ( f_pc->CurrentStoreMode(obj) == kOn ) { + + // Note: This part of code will not be activated until a method + // to obtain the current pointer of HepMC::GenEvent* become available. + + // if ( (hepevt = f_GenCenter->GetGenEvent()) !=0 ) { + if ( hepevt !=0 ) { + + file = f_pc->CurrentWriteFile(obj); + if ( TransactionManager()->SelectWriteFile(obj, file) ) { + sthep = HepMCIO()->Store(hepevt); + if ( sthep && m_verbose > 1 ) { + G4cout << " -- File : " << file << " -- Event# " + << evt->GetEventID() << " -- HepMC Stored." << G4endl; + } + } else { + sthep = false; + } + } // end of if ( hepevt != 0 ) + } else { // recycle or off + // hepevt= f_GenCenter-> GetGenEvent(); + } + + // Store MCTruth event + // + obj = "MCTruth"; + G4MCTEvent* mctevt = 0; + if ( f_pc->CurrentStoreMode(obj) == kOn ) { + + // Note: This part of code will not be activated until a method + // to obtain the current pointer of G4MCTEvent* become available. + + // if ( (mctevt = f_MCTman->GetCurrentEvent()) != 0 ) { + if ( mctevt != 0 ) { + file = f_pc->CurrentWriteFile(obj); + if ( TransactionManager()->SelectWriteFile(obj, file) ) { + stmct = MCTruthIO()->Store(mctevt); + if ( stmct && m_verbose > 1 ) { + G4cout << " -- File : " << file << " -- Event# " + << evt->GetEventID() << " -- G4MCTEvent Stored." << G4endl; + } + } else { + stmct = false; + } + } // end of if ( mctevt != 0 ) + } + +#endif + + // Store hits collection + // + obj = "Hits"; + if ( f_pc->CurrentStoreMode(obj) == kOn ) { + if ( G4HCofThisEvent* hc = evt->GetHCofThisEvent() ) { + file = f_pc->CurrentWriteFile(obj); + if ( TransactionManager()->SelectWriteFile(obj, file) ) { + st1 = HitIO()->Store(hc); + if ( st1 && m_verbose > 1 ) { + G4cout << " -- File : " << file << " -- Event# " + << evt->GetEventID() + << " -- Hit Collections Stored." << G4endl; + } + } else { + st1 = false; + } + } + } + + // Store digits collection + // + obj = "Digits"; + if ( f_pc->CurrentStoreMode(obj) == kOn ) { + if ( G4DCofThisEvent* dc = evt->GetDCofThisEvent() ) { + file = f_pc->CurrentWriteFile(obj); + if ( TransactionManager()->SelectWriteFile(obj, file) ) { + st2 = DigitIO()->Store(dc); + if ( st2 && m_verbose > 1 ) { + G4cout << " -- File : " << file << " -- Event# " + << evt->GetEventID() + << " -- Digit Collections Stored." << G4endl; + } + } else { + st2 = false; + } + } + } + +#ifndef WIN32 + + // Store this G4EVENT + // + if ( hepevt!=0 || mctevt!=0 || evt!=0 ) { + obj = "Hits"; + file = f_pc->CurrentWriteFile(obj); + if ( TransactionManager()->SelectWriteFile(obj, file) ) { + // st3 = EventIO()->Store(hepevt, mctevt, evt); + st3 = EventIO()->Store(hepevt, evt); + if ( st3 && m_verbose > 1 ) { + G4cout << " -- File name: " << f_pc->CurrentWriteFile("Hits") + << " -- Event# " << evt->GetEventID() + << " -- G4Pevent is Stored." << G4endl; + } + } else { + st3 = false; + } + } + + G4bool st = sthep && stmct && st1 && st2 && st3; + +#else + + G4bool st = st1 && st2; + +#endif + + if ( st ) { + TransactionManager()->Commit(); + if ( m_verbose > 0 ) + G4cout << "G4PersistencyManager: event# " + << evt->GetEventID() << " is stored." << G4endl; + } else { + G4cerr << "G4PersistencyManager::Store(G4Event) - Transaction aborted." + << G4endl; + TransactionManager()->Abort(); + } + + return st; +} + +// Implementation of Retrieve +G4bool G4PersistencyManager::Retrieve(G4Event*& evt) +{ + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager::Retrieve(G4Event*&) is called." + << G4endl; + } + + if ( TransactionManager() == 0 ) return true; + + if ( f_pc->CurrentRetrieveMode("HepMC") == false && + f_pc->CurrentRetrieveMode("MCTruth") == false && + f_pc->CurrentRetrieveMode("Hits") == false && + f_pc->CurrentRetrieveMode("Digits") == false ) { + return true; + } + + // Call package dependent Initialize() + // + if ( ! f_is_initialized ) { + f_is_initialized = true; + if ( m_verbose > 1 ) { + G4cout << "G4PersistencyManager:: Initializing Transaction ... " + << G4endl; + } + Initialize(); + } + + // Start event IO transaction + // + if ( TransactionManager()->StartRead() ) { + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager: Read transaction started." + << G4endl; + } + } else { + G4cerr << "TransactionManager::Retrieve(G4Event) - StartRead() failed." + << G4endl; + return false; + } + + G4bool st = false; + G4std::string file; + + // Retrieve a G4EVENT + // + G4std::string obj = "Hits"; + if ( f_pc->CurrentRetrieveMode(obj) == true ) { + file = f_pc->CurrentReadFile(obj); + if ( TransactionManager()->SelectReadFile(obj, file) ) { + st = EventIO()->Retrieve(evt); + if ( st && m_verbose > 1 ) { + G4cout << " -- File : " << file << " -- Event# " + << evt->GetEventID() + << " -- G4Event is Retrieved." << G4endl; + } + } else { + st = false; + } + } + + if ( st ) { + TransactionManager()->Commit(); + } else { + G4cerr << "G4PersistencyManager::Retrieve() - Transaction aborted." + << G4endl; + TransactionManager()->Abort(); + } + + return st; +} + +#ifndef WIN32 + +// Implementation of Retrieve +G4bool G4PersistencyManager::Retrieve(HepMC::GenEvent*& evt, int id) +{ + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager::Retrieve(HepMC::GenEvent*&) is called." + << G4endl; + } + + if ( TransactionManager() == 0 ) return true; + + // Call package dependent Initialize() + // + if ( ! f_is_initialized ) { + f_is_initialized = true; + if ( m_verbose > 1 ) { + G4cout << "G4PersistencyManager:: Initializing Transaction ... " + << G4endl; + } + Initialize(); + } + + // Start event IO transaction + // + if ( TransactionManager()->StartRead() ) { + if ( m_verbose > 2 ) { + G4cout << "G4PersistencyManager: Read transaction started." + << G4endl; + } + } else { + G4cerr << "TransactionManager::Retrieve(HepMC) - StartRead() failed." + << G4endl; + return false; + } + + G4bool st = false; + G4std::string file; + + // Retrieve a HepMC GenEvent + // + G4std::string obj = "HepMC"; + if ( f_pc->CurrentRetrieveMode(obj) == true ) { + file = f_pc->CurrentReadFile(obj); + if ( TransactionManager()->SelectReadFile(obj, file) ) { + st = HepMCIO()->Retrieve(evt, id); + if ( st && m_verbose > 1 ) { + G4cout << " -- File: " << file + << " - Event# " << HepMCIO()->LastEventID() + << " - HepMC event is Retrieved." << G4endl; + } + } else { + st = false; + } + } + + if ( st ) { + TransactionManager()->Commit(); + } else { + G4cerr << "G4PersistencyManager::Retrieve(HepMC) - Transaction aborted." + << G4endl; + TransactionManager()->Abort(); + } + + return st; +} +#endif + +// End of G4PersistencyManager.cc + diff --git a/source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl b/source/persistency/src/G4Pevent.cc similarity index 74% rename from source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl rename to source/persistency/src/G4Pevent.cc index 6235f4a5f2..c7ae3bc026 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PCSGSolid.ddl +++ b/source/persistency/src/G4Pevent.cc @@ -19,30 +19,28 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4Pevent.cc // -// -// $Id: G4PCSGSolid.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ - -// Class Description: -// Persistent version of G4CSGSolid - // History: -// 19.06.98 A.Kimura Converted G4CSGSolid.hh +// '01.11.18 Youhei Morita Initial creation -#ifndef G4PCSGSOLID_DDL -#define G4PCSGSOLID_DDL +#ifndef WIN32 -#include "G4PersistentSchema.hh" -#include "G4PVSolid.hh" +#include "G4Pevent.hh" -class G4PCSGSolid - : public G4PVSolid +//G4Pevent::G4Pevent( HepMC::GenEvent* hepevt, G4MCTEvent* mctevt, G4Event* g4evt ) +// : f_hepevt(hepevt), genEventID(-1), f_mctevt(mctevt), f_g4evt(g4evt) + +G4Pevent::G4Pevent( HepMC::GenEvent* hepevt, G4Event* g4evt ) + : f_hepevt(hepevt), genEventID(-1), f_g4evt(g4evt) { -public: // With description - G4PCSGSolid(const G4String& pName); - virtual ~G4PCSGSolid(); - // Constructor and Destructor -}; + m_id = g4evt->GetEventID(); + if (hepevt) genEventID= hepevt->event_number(); +} + +G4Pevent::~G4Pevent() +{ + delete f_g4evt; +} #endif diff --git a/source/persistency/src/G4VDCIOentry.cc b/source/persistency/src/G4VDCIOentry.cc new file mode 100644 index 0000000000..2c825bdcec --- /dev/null +++ b/source/persistency/src/G4VDCIOentry.cc @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * 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: G4VDCIOentry.cc +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#include "G4VDCIOentry.hh" + +// Addtional Include: +#include "G4DCIOcatalog.hh" + +// Implementation of Constructor #1 +G4VDCIOentry::G4VDCIOentry(G4std::string n) + : m_name(n) +{ + G4DCIOcatalog* c = G4DCIOcatalog::GetDCIOcatalog(); + c->RegisterEntry(this); + + m_verbose = G4PersistencyCenter::GetPersistencyCenter()->VerboseLevel(); +} + +// End of G4VDCIOentry.cc + diff --git a/source/persistency/src/G4VHCIOentry.cc b/source/persistency/src/G4VHCIOentry.cc new file mode 100644 index 0000000000..4f76b0d3db --- /dev/null +++ b/source/persistency/src/G4VHCIOentry.cc @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * 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: G4VHCIOentry.cc +// +// History: +// '01.09.12 Youhei Morita Initial creation + +#include "G4VHCIOentry.hh" + +// Addtional Include: +#include "G4HCIOcatalog.hh" + +// Implementation of Constructor #1 +G4VHCIOentry::G4VHCIOentry(G4std::string n) + : m_name(n) +{ + G4HCIOcatalog* c = G4HCIOcatalog::GetHCIOcatalog(); + c->RegisterEntry(this); + + m_verbose = G4PersistencyCenter::GetPersistencyCenter()->VerboseLevel(); +} + +// End of G4VHCIOentry.cc + diff --git a/source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc b/source/persistency/src/G4VHepMCIO.cc similarity index 81% rename from source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc rename to source/persistency/src/G4VHepMCIO.cc index 480cd75224..ac85148ab5 100644 --- a/source/persistency/geometry/solids/CSG/src/G4PCSGSolid.cc +++ b/source/persistency/src/G4VHepMCIO.cc @@ -19,23 +19,20 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: G4PCSGSolid.cc,v 1.3 2001/07/11 10:02:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// File: G4VHepMCIO.cc // // History: -// 19.06.98 A.Kimura Converted G4CSGSolid.cc +// '01.11.18 Youhei Morita Initial creation -#include "G4PCSGSolid.hh" +#ifndef WIN32 -// Constructor -// - Base class constructor +#include "G4VHepMCIO.hh" -G4PCSGSolid::G4PCSGSolid(const G4String& name) : - G4PVSolid(name) -{;} +// Implementation of Constructor #1 +G4VHepMCIO::G4VHepMCIO() + : m_verbose(0) +{} -G4PCSGSolid::~G4PCSGSolid() -{;} +// End of G4VHepMCIO.cc + +#endif diff --git a/source/persistency/global/src/G4VPersistentSubMan.cc b/source/persistency/src/G4VMCTruthIO.cc similarity index 81% rename from source/persistency/global/src/G4VPersistentSubMan.cc rename to source/persistency/src/G4VMCTruthIO.cc index 3a6b01ff0c..0b4ecd521c 100644 --- a/source/persistency/global/src/G4VPersistentSubMan.cc +++ b/source/persistency/src/G4VMCTruthIO.cc @@ -19,22 +19,18 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: G4VPersistentSubMan.cc,v 1.3 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// class G4VPersistentSubMan +// File: G4VMCTruthIO.cc // // History: -// 99.11.24 Y.Morita Initial version +// '01.11.18 Youhei Morita Initial creation -#include "G4VPersistentSubMan.hh" +#ifndef WIN32 -G4VPersistentSubMan::G4VPersistentSubMan() - : f_verboseLevel(0) -{;} +#include "G4VMCTruthIO.hh" -G4VPersistentSubMan::~G4VPersistentSubMan() -{;} +// Implementation of Constructor #1 +G4VMCTruthIO::G4VMCTruthIO() + : m_verbose(0) +{} +#endif diff --git a/source/persistency/global/include/G4DatabaseTypes.hh b/source/persistency/src/G4VPDigitIO.cc similarity index 69% rename from source/persistency/global/include/G4DatabaseTypes.hh rename to source/persistency/src/G4VPDigitIO.cc index 9610034902..b57fdc92cc 100644 --- a/source/persistency/global/include/G4DatabaseTypes.hh +++ b/source/persistency/src/G4VPDigitIO.cc @@ -19,31 +19,33 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VPDigitIO.cc // -// -// $Id: G4DatabaseTypes.hh,v 1.5 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// file description: -// -// This file defines types of database and transaction mode -// supported by G4TransactionManager. - // History: -// 99.11.26 Y.Morita Initial version +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") -#ifndef G4DatabaseTypes_HH -#define G4DatabaseTypes_HH 1 +#include "G4VPDigitIO.hh" -enum ETypeOfDB { kRunDB, kEventDB, kGeomDB }; -enum ETransactionMode { kUpdate, kRead }; -enum ESustainedState { - kAlreadySelected, - kCannotOverride, - kStartNewSustained, - kCommitAndStartNonSustained, - kStartNonSustained }; +G4VPDigitIO* G4VPDigitIO::f_G4VPDigitIO = 0; -#endif +// Implementation of Constructor #1 +G4VPDigitIO::G4VPDigitIO() + : m_verbose(0) +{ + f_catalog = G4DCIOcatalog::GetDCIOcatalog(); +} + +// Implementation of SetVerboseLevel +void G4VPDigitIO::SetVerboseLevel(int v) +{ + m_verbose = v; + + // Loop through the registered Digit I/O managers + for ( size_t i=0; i < f_catalog->NumberOfDCIOmanager(); i++ ) { + G4VPDigitsCollectionIO* digitIOman = f_catalog->GetDCIOmanager(i); + digitIOman->SetVerboseLevel(v); + } +} + +// End of G4VPDigitIO.cc diff --git a/source/persistency/src/G4VPDigitsCollectionIO.cc b/source/persistency/src/G4VPDigitsCollectionIO.cc new file mode 100644 index 0000000000..188d02c559 --- /dev/null +++ b/source/persistency/src/G4VPDigitsCollectionIO.cc @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * 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: G4VPDigitsCollectionIO.cc +// +// History: +// '01.08.16 Youhei Morita Initial creation + +#include "G4VPDigitsCollectionIO.hh" + +// Implementation of Constructor #1 +G4VPDigitsCollectionIO::G4VPDigitsCollectionIO( G4std::string detName, + G4std::string colName ) + : m_verbose(0), f_detName(detName), f_colName(colName) +{} + +// Implementation of operator== +G4bool G4VPDigitsCollectionIO::operator== (const G4VPDigitsCollectionIO& right) const +{ + return ( (f_detName == right.f_detName) && + (f_colName == right.f_colName) ); +} + +// End of G4VPDigitsCollectionIO.cc + diff --git a/source/persistency/src/G4VPEventIO.cc b/source/persistency/src/G4VPEventIO.cc new file mode 100644 index 0000000000..8c13a38c75 --- /dev/null +++ b/source/persistency/src/G4VPEventIO.cc @@ -0,0 +1,35 @@ +// +// ******************************************************************** +// * 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: G4VPEventIO.cc +// +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") + +#include "G4VPEventIO.hh" + +// Implementation of Default Constructor +G4VPEventIO::G4VPEventIO() + : m_verbose(0), m_currentEvtID(0) +{ +} + +// End of G4VPEventIO.cc diff --git a/source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc b/source/persistency/src/G4VPHitIO.cc similarity index 70% rename from source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc rename to source/persistency/src/G4VPHitIO.cc index d5c9bb00b0..5e841b3b07 100644 --- a/source/persistency/digits+hits/hits/src/G4PHCofThisEvent.cc +++ b/source/persistency/src/G4VPHitIO.cc @@ -19,29 +19,33 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VPHitIO.cc // -// -// $Id: G4PHCofThisEvent.cc,v 1.7 2001/07/11 10:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +// History: +// '01.08.10 Youhei Morita Initial creation (with "fadsclass3") -#include "G4PHCofThisEvent.hh" +#include "G4VPHitIO.hh" -G4PHCofThisEvent::G4PHCofThisEvent() +G4VPHitIO* G4VPHitIO::f_G4VPHitIO = 0; + +// Implementation of Constructor #1 +G4VPHitIO::G4VPHitIO() + : m_verbose(0) { - HC.resize(10); + f_catalog = G4HCIOcatalog::GetHCIOcatalog(); } -G4PHCofThisEvent::~G4PHCofThisEvent() -{;} - -void G4PHCofThisEvent::AddHitsCollection(G4int HCID, - HepRef(G4PVHitsCollection) aHC) +// Implementation of SetVerboseLevel +void G4VPHitIO::SetVerboseLevel(int v) { - if(HCID>=0) - { - if(HCID>=HC.size()) HC.resize(HCID+1); - HC[HCID] = aHC; + m_verbose = v; + + // Loop through the registered Hit I/O managers + for ( size_t i=0; i < f_catalog->NumberOfHCIOmanager(); i++ ) { + G4VPHitsCollectionIO* hitIOman = f_catalog->GetHCIOmanager(i); + hitIOman->SetVerboseLevel(v); } } +// End of G4VPHitIO.cc + diff --git a/source/persistency/global/include/G4PersistentTypes.hh b/source/persistency/src/G4VPHitsCollectionIO.cc similarity index 71% rename from source/persistency/global/include/G4PersistentTypes.hh rename to source/persistency/src/G4VPHitsCollectionIO.cc index 350b3be52f..e746c9623f 100644 --- a/source/persistency/global/include/G4PersistentTypes.hh +++ b/source/persistency/src/G4VPHitsCollectionIO.cc @@ -19,28 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// File: G4VPHitsCollectionIO.cc // -// -// $Id: G4PersistentTypes.hh,v 1.4 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -// file description: -// Persistent-capable typedefs for Geant4/Persistency category - // History: -// 15.06.98 Y.Morita - Created +// '01.08.16 Youhei Morita Initial creation -#ifndef G4_PERSISTENT_TYPES_HH -#define G4_PERSISTENT_TYPES_HH +#include "G4VPHitsCollectionIO.hh" -// Typedefs to decouple from library classes -#include +// Implementation of Constructor #1 +G4VPHitsCollectionIO::G4VPHitsCollectionIO( G4std::string detName, + G4std::string colName ) + : m_verbose(0), f_detName(detName), f_colName(colName) +{} -typedef d_String G4PString; -typedef d_Double G4Pdouble; -typedef d_Float G4Pfloat; -typedef d_Long G4Pint; -typedef d_Long G4Plong; +// Implementation of operator== +G4bool G4VPHitsCollectionIO::operator== (const G4VPHitsCollectionIO& right) const +{ + return ( (f_detName == right.f_detName) && + (f_colName == right.f_colName) ); +} + +// End of G4VPHitsCollectionIO.cc -#endif /* G4_PERSISTENT_TYPES_HH */ diff --git a/source/persistency/tools/README b/source/persistency/tools/README new file mode 100644 index 0000000000..cf16dbf4ca --- /dev/null +++ b/source/persistency/tools/README @@ -0,0 +1,3 @@ + +The files in this directory are intended for developpers' use. + diff --git a/source/persistency/tools/g4pmv.sh b/source/persistency/tools/g4pmv.sh new file mode 100755 index 0000000000..ede7d62741 --- /dev/null +++ b/source/persistency/tools/g4pmv.sh @@ -0,0 +1,56 @@ +#!/bin/csh -f +set file = $1 +set tmpfile = fadsmv.tmp.$$ +#if ( ! -f $file ) then +# echo "File $file does not exist. Stop." +# exit 1 +#endif + +set filename = `basename $file` +set filepath = `dirname $file` + +echo $filename | sed \ +-e 's/DCIOcatalog/G4DCIOcatalog/g' \ +-e 's/DCIOentryT/G4DCIOentryT/g' \ +-e 's/FADSevent/G4Pevent/g' \ +-e 's/FileUtilities/G4FileUtilities/g' \ +-e 's/HCIOcatalog/G4HCIOcatalog/g' \ +-e 's/HCIOentryT/G4HCIOentryT/g' \ +-e 's/PersistencyCenter/G4PersistencyCenter/g' \ +-e 's/PersistencyCenterMessenger/G4PersistencyCenterMessenger/g' \ +-e 's/PersistencyManager/G4PersistencyManager/g' \ +-e 's/PersistencyManagerT/G4PersistencyManagerT/g' \ +-e 's/VDCIOentry/G4VDCIOentry/g' \ +-e 's/VHCIOentry/G4VHCIOentry/g' \ +-e 's/VHepMCIO/G4VHepMCIO/g' \ +-e 's/VMCTruthIO/G4VMCTruthIO/g' \ +-e 's/VPDigitIO/G4VPDigitIO/g' \ +-e 's/VPDigitsCollectionIO/G4VPDigitsCollectionIO/g' \ +-e 's/VPEventIO/G4VPEventIO/g' \ +-e 's/VPHitIO/G4VPHitIO/g' \ +-e 's/VPHitsCollectionIO/G4VPHitsCollectionIO/g' \ +-e 's/VTransactionManager/G4VTransactionManager/g' \ + -e 's/MCTEvent/G4MCTEvent/g' \ + -e 's/MCTEventAction/G4MCTEventAction/g' \ + -e 's/MCTGenEvent/G4MCTGenEvent/g' \ + -e 's/MCTGenParticle/G4MCTGenParticle/g' \ + -e 's/MCTManager/G4MCTManager/g' \ + -e 's/MCTMessenger/G4MCTMessenger/g' \ + -e 's/MCTSimEvent/G4MCTSimEvent/g' \ + -e 's/MCTSimParticle/G4MCTSimParticle/g' \ + -e 's/MCTSimVertex/G4MCTSimVertex/g' \ + -e 's/MCTSteppingAction/G4MCTSteppingAction/g' \ + -e 's/MCTVStoreSelection/G4MCTVStoreSelection/g' \ + -e 's/MCTVUserFilter/G4MCTVUserFilter/g' \ +-e 's/G4G4/G4/g' \ + > $tmpfile + +set filename2 = `cat $tmpfile` + +if ( $filename != $filename2 ) then + echo "mv -f $filepath/$filename $filepath/$filename2" + mv -f $filepath/$filename $filepath/$filename2 +endif + +rm -f $tmpfile + diff --git a/source/persistency/tools/g4psed.sh b/source/persistency/tools/g4psed.sh new file mode 100755 index 0000000000..0aa7618954 --- /dev/null +++ b/source/persistency/tools/g4psed.sh @@ -0,0 +1,56 @@ +#!/bin/csh -f +set file = $1 +set tmpfile = $1.tmp.$$ +if ( ! -f $file ) then + echo "File $file does not exist. Stop." + exit 1 +endif + +cat $file | sed \ +-e 's/DCIOcatalog/G4DCIOcatalog/g' \ +-e 's/DCIOentryT/G4DCIOentryT/g' \ +-e 's/FADSevent/G4Pevent/g' \ +-e 's/FileUtilities/G4FileUtilities/g' \ +-e 's/HCIOcatalog/G4HCIOcatalog/g' \ +-e 's/HCIOentryT/G4HCIOentryT/g' \ +-e 's/PersistencyCenter/G4PersistencyCenter/g' \ +-e 's/PersistencyCenterMessenger/G4PersistencyCenterMessenger/g' \ +-e 's/PersistencyManager/G4PersistencyManager/g' \ +-e 's/PersistencyManagerT/G4PersistencyManagerT/g' \ +-e 's/VDCIOentry/G4VDCIOentry/g' \ +-e 's/VHCIOentry/G4VHCIOentry/g' \ +-e 's/VHepMCIO/G4VHepMCIO/g' \ +-e 's/VMCTruthIO/G4VMCTruthIO/g' \ +-e 's/VPDigitIO/G4VPDigitIO/g' \ +-e 's/VPDigitsCollectionIO/G4VPDigitsCollectionIO/g' \ +-e 's/VPEventIO/G4VPEventIO/g' \ +-e 's/VPHitIO/G4VPHitIO/g' \ +-e 's/VPHitsCollectionIO/G4VPHitsCollectionIO/g' \ +-e 's/VTransactionManager/G4VTransactionManager/g' \ + -e 's/MCTEvent/G4MCTEvent/g' \ + -e 's/MCTEventAction/G4MCTEventAction/g' \ + -e 's/MCTGenEvent/G4MCTGenEvent/g' \ + -e 's/MCTGenParticle/G4MCTGenParticle/g' \ + -e 's/MCTManager/G4MCTManager/g' \ + -e 's/MCTMessenger/G4MCTMessenger/g' \ + -e 's/MCTSimEvent/G4MCTSimEvent/g' \ + -e 's/MCTSimParticle/G4MCTSimParticle/g' \ + -e 's/MCTSimVertex/G4MCTSimVertex/g' \ + -e 's/MCTSteppingAction/G4MCTSteppingAction/g' \ + -e 's/MCTVStoreSelection/G4MCTVStoreSelection/g' \ + -e 's/MCTVUserFilter/G4MCTVUserFilter/g' \ +-e 's/G4G4/G4/g' \ +-e 's/G4VG4/G4V/g' \ +-e 's/GetG4/Get/g' \ +-e 's/CurrentG4/Current/g' \ +-e 's/SetG4PersistencyManager/SetPersistencyManager/g' \ +-e 's/RegisterG4PersistencyManager/RegisterPersistencyManager/g' \ +-e 's/DeleteG4PersistencyManager/DeletePersistencyManager/g' \ +-e 's/FADS\/Goofy tag/GEANT4 tag/g' \ + > $tmpfile + +diff $file $tmpfile + +mv -f $file ${file}.org +mv -f $tmpfile $file + diff --git a/source/persistency/tools/rename.sh b/source/persistency/tools/rename.sh new file mode 100755 index 0000000000..187fe3eed3 --- /dev/null +++ b/source/persistency/tools/rename.sh @@ -0,0 +1,3 @@ +#!/bin/sh +find . -name '*.hh' -exec $HOME/bin/g4pmv.sh "{}" \; +find . -name '*.cc' -exec $HOME/bin/g4pmv.sh "{}" \; diff --git a/source/persistency/tools/setup.csh b/source/persistency/tools/setup.csh new file mode 100644 index 0000000000..ec2876a1b1 --- /dev/null +++ b/source/persistency/tools/setup.csh @@ -0,0 +1,8 @@ +setenv G4INSTALL $HOME/geant4/cvsco/geant4 +setenv G4SYSTEM Linux-g++ +setenv G4LIB_BUILD_SHARED 1 + +# CLHEP (1.80) +set clhep_vers = 1.8.0.0 +setenv CLHEP_BASE_DIR /usr/local/CLHEP/$clhep_vers + diff --git a/source/processes/GNUmakefile b/source/processes/GNUmakefile index c55928e8eb..1994221513 100644 --- a/source/processes/GNUmakefile +++ b/source/processes/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.18 2002/06/13 17:49:26 jwellisc Exp $ +# $Id: GNUmakefile,v 1.20 2002/11/18 10:31:54 hpw Exp $ # ---------------------------------------------------------------------- # GNUmakefile for processes library, Gabriele Cosmo 27-Jun-1998 # ---------------------------------------------------------------------- @@ -15,6 +15,7 @@ SUBDIRS += hadronic/cross_sections hadronic/stopping SUBDIRS += hadronic/models/low_energy hadronic/models/high_energy SUBDIRS += hadronic/models/neutron_hp SUBDIRS += hadronic/models/isotope_production +SUBDIRS += hadronic/models/cascade/cascade SUBDIRS += hadronic/models/cascade/evaporation SUBDIRS += hadronic/models/cascade/utils SUBDIRS += hadronic/models/chiral_inv_phase_space/body @@ -23,6 +24,7 @@ SUBDIRS += hadronic/models/coherent_elastic SUBDIRS += hadronic/models/generator/de_excitation SUBDIRS += hadronic/models/generator/diffractive_string SUBDIRS += hadronic/models/generator/high_energy +SUBDIRS += hadronic/models/generator/scattering SUBDIRS += hadronic/models/generator/kinetic_model SUBDIRS += hadronic/models/generator/management SUBDIRS += hadronic/models/generator/pre_equilibrium @@ -42,7 +44,8 @@ SUBLIBS += G4hadronic_xsect G4hadronic_stop G4hadronic_LE G4hadronic_HE SUBLIBS += G4hadronic_neu G4hadronic_iso SUBLIBS += G4hadronic_hetcpp_evaporation G4hadronic_hetcpp_utils SUBLIBS += G4hadronic_body_ci G4hadronic_interface_ci G4hadronic_coherent_elastic -SUBLIBS += G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen G4hadronic_kinetic +SUBLIBS += G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen +SUBLIBS += G4hadronic_kinetic G4hadronic_scattering SUBLIBS += G4hadronic_qgstring SUBLIBS += G4hadronic_man_gen G4hadronic_preequ G4hadronic_string_common SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen diff --git a/source/processes/History b/source/processes/History index 8102d43eaf..5d3d2bd504 100644 --- a/source/processes/History +++ b/source/processes/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 1999/05/31 17:38:37 stesting Exp $ +$Id: History,v 1.6 2002/12/06 19:52:06 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,13 +17,16 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 06, 2002: Gabriele Cosmo (process-V04-01-01) +- Merged development with latest migration to G4ApplicationState. + +Dec 4, 2002: Makoto Asai (process-V04-01-00) +- Tagged for migration to new G4ApplicationState + May 29, 1999: John Allison - Added electromagnetic/lowenergy to GNUmakefile and electromagnetic/GNUmakefile.. -Dec 09: J.P.Wellisch --hadronics tagged. - Sep 25: H.Kurashige. - procman-00-02-05 has tagged Added deleteion of all processes in the destructor of G4ProcessTable diff --git a/source/processes/decay/include/G4Decay.hh b/source/processes/decay/include/G4Decay.hh index 598db49de5..b92929d9e8 100644 --- a/source/processes/decay/include/G4Decay.hh +++ b/source/processes/decay/include/G4Decay.hh @@ -22,7 +22,7 @@ // // // $Id: G4Decay.hh,v 1.8 2002/02/12 02:14:03 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/decay/include/G4VExtDecayer.hh b/source/processes/decay/include/G4VExtDecayer.hh index d2a38048ae..b8f98a2b75 100644 --- a/source/processes/decay/include/G4VExtDecayer.hh +++ b/source/processes/decay/include/G4VExtDecayer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VExtDecayer.hh,v 1.3 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/decay/src/G4Decay.cc b/source/processes/decay/src/G4Decay.cc index e35979af01..3b876d90b7 100644 --- a/source/processes/decay/src/G4Decay.cc +++ b/source/processes/decay/src/G4Decay.cc @@ -22,7 +22,7 @@ // // // $Id: G4Decay.cc,v 1.15 2002/02/12 08:57:20 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/History b/source/processes/electromagnetic/lowenergy/History index 7963f9ac5f..0f992ba605 100644 --- a/source/processes/electromagnetic/lowenergy/History +++ b/source/processes/electromagnetic/lowenergy/History @@ -1,4 +1,4 @@ -$Id: History,v 1.148 2002/06/15 17:22:23 pia Exp $ +$Id: History,v 1.163 2002/12/11 15:57:24 pia Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,9 +17,57 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10.12-2002 MGP, tag emlowen-V04-01-09 + VI G4hLowEnergyIonisation.cc - antiprotons: free electron gas + model replaces constant extension of quantum oscillator model + at low energies (< 25 keV), as for protons + +28.11-2002 MGP, tag emlowen-V04-01-08 + Update of G4ComptonTest and test/GNUmakefile by A. Pfeiffer + for AIDA3/Anaphe5 + +18.11-2002 MGP, tag emlowen-V04-01-07 + Bug fix in G4BremsstrahlungParameters, to load EEDL correctly + (correction for PRS 430) + +08.11-2002 MGP, tag emlowen-V04-01-06 + New model for angular distribution in Rayleigh by Gerardo + Depaola and Francesco Longo; corrects PRS problem 406 + +08.11-2002 MGP, tag emlowen-V04-01-05 + VI optimisation of tables in G4LowEnergyIonisation, + G4eLowEnergyLoss, G4hLowEnergyLoss, G4hLowEnergyIonisation + +08.10-2002 MGP, tag emlowen-V04-01-04 + VI G4hLowEnergyIonisation.cc - clean up fluo flag definition and init + VI G4hIonEffChargeSquare.cc - fix in charge definition + VI G4hShellCrossSection.cc - fix in shell cross section for hadrons + VI G4hLowEnergyLoss.cc - clean up inverse range table build + VI G4VeLowEnergyLoss.cc - clean up inverse range table build + VI G4hLowEnergyIonisation.cc - clean up energy ranges for models + VI G4LowEnergyIonisation.cc - remove ActivateFluorescence from + SetCut.. methods + +27.08-2002 CG,VI, tag emlowen-V04-01-03 + A. Mantero fix leakage in G4AtomicTransition.cc + +30.07-2002 CG,VI, tag emlowen-V04-01-02 + VI fix to G4LowEnergyIonisation.cc, for restricted energy loss + +30.07-2002 CG,VI, tag emlowen-V04-01-01 + CG fix to G4VCrossSectionHandler.cc, to fix compilation problems + on DEC-cxx non-ISO. + VI fix to G4AugerData.cc, to clean warnings on gcc-3.1 and optimise + load of data in memory. + +15.06-2002 MGP, tag emlowen-V04-01-00 + VI Bug fix in G4eEnergySpectrum + VI Bug fix in G4VCrossSectionHandler, connected modifications in + other handlers + 15.06-2002 MGP, tag emlowen-V04-00-17 - Bug fix in fluctuations in G4hLowEnergyIonisation - Removed duplicate member function to activate fluorescence + VI Bug fix in fluctuations in G4hLowEnergyIonisation + VI Removed duplicate member function to activate fluorescence 10.06-2002 MGP, tag emlowen-V04-00-16 fStopAndKill moved to fStopAndAlive in G4hLowEnergyIonisation @@ -41,11 +89,11 @@ committal in the CVS repository ! local energy deposit) 02.06-2002 MGP, tag emlowen-V04-00-11 - VNI Fixes in Bremsstrahlung - interpolation above 10 MeV - VNI Change parametrisation of e- ionisation - 24-parameters + VI Fixes in Bremsstrahlung - interpolation above 10 MeV + VI Change parametrisation of e- ionisation - 24-parameters for each shell are used. Corresponding change is sampling and integration - VNI Add excitation cross sections and energy + VI Add excitation cross sections and energy New interpolation algorithm Goes with new version of G4LEDATA G4EMLOW1.0 diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh index b1696fe779..552ffb4070 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh index 93cc0c002a..d6e81412e1 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShell.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransition.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransition.hh index d30d3c0686..8a1a456ffc 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransition.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransition.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransition.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh index 5955d09e61..69b27f5f58 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh index 4505fb8229..53a4983ddc 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh @@ -23,7 +23,7 @@ // // // $Id: G4AugerData.hh -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh index 36d6c9bf96..3aaeb35733 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4BremsstrahlungParameters.hh,v 1.6 2001/11/29 19:01:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V. Ivanchenko (Vladimir.Ivantchenko@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh index db13bbe491..3d62fade70 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4CompositeEMDataSet.hh,v 1.4 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh index 4249e12b28..d63800da74 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4CrossSectionHandler.hh,v 1.7 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4CutsPerMaterialWarning.hh b/source/processes/electromagnetic/lowenergy/include/G4CutsPerMaterialWarning.hh index c29c698011..82ff9b9330 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CutsPerMaterialWarning.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CutsPerMaterialWarning.hh @@ -22,7 +22,7 @@ // // // $Id: G4CutsPerMaterialWarning.hh,v 1.1 2001/11/07 22:38:47 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh index 3692b30437..5a592e55a7 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4EMDataSet.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh b/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh index fed836a45e..afbf27ea0c 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh @@ -22,7 +22,7 @@ // // // $Id: G4FluoTransition.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh index d1d9e01e31..3a2847a538 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LinInterpolation.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh index 42d499147e..7d27c392a3 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh index 3fa45f6e36..4c19ecac90 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh @@ -22,8 +22,8 @@ // // // ------------------------------------------------------------------- -// $Id: G4LowEnergyBremsstrahlung.hh,v 1.28 2001/11/29 22:47:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LowEnergyBremsstrahlung.hh,v 1.30 2002/07/19 17:44:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh index a5c559aebd..0728142bc7 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh @@ -21,7 +21,7 @@ // ******************************************************************** // $Id: G4LowEnergyCompton.hh,v 1.19 2001/12/13 12:04:13 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh index d1b4c74a41..dc02b717bf 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyGammaConversion.hh,v 1.14 2001/10/08 07:45:33 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh index c1ee5087ea..0e36532dbf 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // ------------------------------------------------------------------- -// $Id: G4LowEnergyIonisation.hh,v 1.36 2002/06/01 03:14:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LowEnergyIonisation.hh,v 1.38 2002/07/19 17:44:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // @@ -93,6 +93,8 @@ protected: G4double previousStepSize, G4ForceCondition* condition ); +protected: + virtual G4std::vector* DeexciteAtom(const G4Material* material, G4double incidentEnergy, G4double eLoss); diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh index 8d9d59c2e1..a59058a8f1 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPhotoElectric.hh,v 1.25 2002/06/01 03:14:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh index eaeab1eaab..d0f88304f3 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPolarizedCompton.hh,v 1.8 2002/05/31 18:11:45 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh index 4ea949fb54..454683b86b 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyRayleigh.hh,v 1.15 2001/10/08 07:45:35 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh b/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh index 457d749133..962db6620a 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh @@ -22,7 +22,7 @@ // // // $Id: G4RangeNoTest.hh,v 1.1 2001/10/08 07:51:41 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh b/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh index b73d04a118..178984eb74 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh @@ -22,7 +22,7 @@ // // // $Id: G4RangeTest.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh index fba2af379e..ab6a5dedc7 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4SemiLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh index 0a4807a7cf..2de9f29d7a 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShellData.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh index e4c5b9a677..8fd202b2ab 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShellEMDataSet.hh,v 1.4 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh index 748ea23404..a763b4e059 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCrossSectionHandler.hh,v 1.11 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh b/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh index 73b4a2a92d..5ed03903cb 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDataSetAlgorithm.hh,v 1.6 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh index 80f11a48a0..80499b1ee9 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEMDataSet.hh,v 1.6 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh b/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh index b37874ee8a..939a3f4d5d 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRangeTest.hh,v 1.1 2001/10/08 07:51:42 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh index 9c6c33cfeb..fa0a05677c 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VeLowEnergyLoss.hh,v 1.7 2001/11/23 11:45:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 3.4.2000 Veronique Lefebure: // Move utils/include/G4VEnergyLoss.hh to diff --git a/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh b/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh index 59225c4d4b..be584149ec 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlungSpectrum.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh index f6433f0628..4bab51d992 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisationCrossSectionHandler.hh,v 1.4 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh index 87fff2ef3e..9074751a78 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4eIonisationParameters.hh,v 1.6 2001/11/29 19:01:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V. Ivanchenko diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh index 7cde126bdd..da06f1b24b 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisationSpectrum.hh,v 1.4 2002/05/30 19:52:23 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh index 7e4dfd695d..6214bed606 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4eLowEnergyLoss.hh,v 1.8 2002/03/28 11:48:56 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc index 59235eb24f..2cef6656f7 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc +++ b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4eLowEnergyLoss.icc,v 1.4 2002/03/28 11:48:58 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // --------------------------------------------------------------- // GEANT 4 class inlined methods file diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh index c196ffe3f7..78942a94b8 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4hLowEnergyLoss.hh,v 1.13 2001/11/23 11:45:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc index 7a9d45b55e..43b03f4844 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc +++ b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4hLowEnergyLoss.icc,v 1.2 2001/07/11 10:02:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // --------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc index 890d6276e5..e2b2e5e798 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc index e34f17c838..d5a1a25680 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShell.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransition.cc index 5fb8bc63e1..ba350373fa 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransition.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransition.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransition.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc index 48f5e04fba..42107b1e7e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc index af5e1f6267..8f42c3444f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc @@ -29,11 +29,16 @@ // History: // ----------- // Based on G4FluoData by Elena Guardincerri +// +// Modified: 30.07.02 VI Add select active Z + clean up against pedantic compiler // // ------------------------------------------------------------------- #include "G4AugerData.hh" #include "G4DataVector.hh" +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4ElementVector.hh" #include "g4std/fstream" #include "g4std/strstream" @@ -386,7 +391,7 @@ G4std::vector G4AugerData::LoadData(G4int Z) // if this is the first data of the shell, alla the colums are equal // to the shell Id; so we skip the next colums ang go to the next row - initIds->push_back(a); + initIds->push_back((G4int)a); file >> a; file >> a; file >> a; @@ -399,11 +404,11 @@ G4std::vector G4AugerData::LoadData(G4int Z) if((initIds->size()) == 1) { - initIds->push_back(a); + initIds->push_back((G4int)a); } else { - initIds->push_back(a); + initIds->push_back((G4int)a); G4int augerShellId = *vectorIndex; @@ -446,14 +451,37 @@ void G4AugerData::BuildAugerTransitionTable() // trans_Table::iterator pos = augerTransitionTable.begin(); + const G4MaterialTable* materialTable = G4Material::GetMaterialTable(); + + G4int nMaterials = G4Material::GetNumberOfMaterials(); + + G4DataVector activeZ; + activeZ.clear(); + + for (G4int m=0; mGetElementVector(); + const size_t nElements = material->GetNumberOfElements(); + + for (size_t iEl=0; iElGetZ(); + if (!(activeZ.contains(Z))) { + activeZ.push_back(Z); + } + } + } + for (G4int element = 6; element < 99; element++) { - augerTransitionTable.insert(trans_Table::value_type(element,LoadData(element))); - - //G4cout << "G4AugerData for Element no. " << element << " are loaded" << G4endl; - + if(nMaterials == 0 || activeZ.contains(element)) { + augerTransitionTable.insert(trans_Table::value_type(element,LoadData(element))); + G4cout << "G4AugerData for Element no. " << element << " are loaded" << G4endl; + // PrintData(element); + } } G4cout << "AugerTransitionTable complete"<< G4endl; diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc index d9e15d49b1..05466d91a7 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc @@ -145,10 +145,10 @@ G4double G4AugerTransition::AugerTransitionProbability(G4int index, G4int startS const G4DataVector *probabilities = AugerTransitionProbabilities(startShellId); G4DataVector::const_iterator pos = probabilities->begin(); - G4double* probability = new G4double; - *probability = *(pos+index); - return *probability; - delete probability; + G4double probability; // = new G4double; + probability = *(pos+index); + return probability; + //delete probability; } G4int G4AugerTransition::TransitionOriginatingShellId(G4int index) const diff --git a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc index f82c11247f..bc33d9dd4b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BremsstrahlungCrossSectionHandler.cc,v 1.5 2001/10/25 14:31:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc index d2ed3645d6..e617e1d7b2 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BremsstrahlungParameters.cc,v 1.13 2002/05/30 17:53:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BremsstrahlungParameters.cc,v 1.14 2002/11/18 18:08:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V.Ivanchenko (Vladimir.Ivantchenko@cern.ch) @@ -33,6 +33,7 @@ // 12.09.01 V.Ivanchenko Add activeZ and paramA // 25.09.01 V.Ivanchenko Add parameter C and change interface to B // 29.11.01 V.Ivanchenko Update parametrisation +// 18.11.02 V.Ivanchenko Fix problem of load // // ------------------------------------------------------------------- @@ -166,7 +167,6 @@ void G4BremsstrahlungParameters::LoadData() data = new G4DataVector(); G4int z = 0; - G4bool used = false; G4std::vector a; for (size_t j=0; jclear(); - used = false; } } e.clear(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc index 9cab330137..f755fab1ea 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc @@ -22,7 +22,7 @@ // // // $Id: G4CompositeEMDataSet.cc,v 1.6 2002/05/28 09:20:18 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc index e2330b6ac4..6ac4a8f926 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4CrossSectionHandler.cc,v 1.13 2002/05/28 09:20:18 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CrossSectionHandler.cc,v 1.14 2002/07/19 17:32:48 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // // History: // ----------- -// 1 Aug 2001 MGP Created +// 1 Aug 2001 MGP Created +// 19 Jul 2002 VI Create composite data set for material // // ------------------------------------------------------------------- @@ -57,7 +58,7 @@ G4CrossSectionHandler::~G4CrossSectionHandler() G4std::vector* G4CrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& energyVector, - const G4DataVector* energyCuts) + const G4DataVector*) { G4DataVector* energies; G4DataVector* data; @@ -68,22 +69,42 @@ G4CrossSectionHandler::BuildCrossSectionsForMaterials(const G4DataVector& energy G4int nMaterials = G4Material::GetNumberOfMaterials(); size_t nOfBins = energyVector.size(); + const G4VDataSetAlgorithm* interpolationAlgo = CreateInterpolation(); for (G4int m=0; mpush_back(e); - G4double materialCrossSection = ValueForMaterial(material,e); - data->push_back(materialCrossSection); - } - G4VEMDataSet* dataSet = new G4EMDataSet(m,energies,data,interpolationAlgo,1.,1.); - matCrossSections->push_back(dataSet); + G4int nElements = material->GetNumberOfElements(); + const G4ElementVector* elementVector = material->GetElementVector(); + const G4double* nAtomsPerVolume = material->GetAtomicNumDensityVector(); + + G4VDataSetAlgorithm* algo = interpolationAlgo->Clone(); + + G4VEMDataSet* setForMat = new G4CompositeEMDataSet(algo,1.,1.); + + for (G4int i=0; iGetZ(); + G4double density = nAtomsPerVolume[i]; + + energies = new G4DataVector; + data = new G4DataVector; + + + for (size_t bin=0; binpush_back(e); + G4double cross = density*FindValue(Z,e); + data->push_back(cross); + } + + G4VDataSetAlgorithm* algo1 = interpolationAlgo->Clone(); + G4VEMDataSet* elSet = new G4EMDataSet(i,energies,data,algo1,1.,1.); + setForMat->AddComponent(elSet); + } + + matCrossSections->push_back(setForMat); } return matCrossSections; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4CutsPerMaterialWarning.cc b/source/processes/electromagnetic/lowenergy/src/G4CutsPerMaterialWarning.cc index 8cb31464c8..8c248195c7 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CutsPerMaterialWarning.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CutsPerMaterialWarning.cc @@ -22,7 +22,7 @@ // // // $Id: G4CutsPerMaterialWarning.cc,v 1.1 2001/11/07 22:39:02 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc index 13dcd1336f..9a463e0432 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc @@ -22,7 +22,7 @@ // // // $Id: G4EMDataSet.cc,v 1.6 2002/05/28 09:20:19 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc index a6df60c2f8..fb9b6cc79f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc @@ -22,7 +22,7 @@ // // // $Id: G4FluoTransition.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc index e336d2b88c..a20f519341 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4LinInterpolation.cc,v 1.2 2002/05/28 09:20:19 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc index cd20c6c6da..2304c006d4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogLogInterpolation.cc,v 1.4 2002/05/28 09:20:19 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc index fd8bdc8e15..87d531b83b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4LowEnergyBremsstrahlung.cc,v 1.54 2001/11/29 19:01:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LowEnergyBremsstrahlung.cc,v 1.55 2002/07/30 18:14:36 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // @@ -50,6 +50,7 @@ // 18.10.2001 MGP Revision to improve code quality // 28.10.2001 VI Update printout // 29.11.2001 VI New parametrisation +// 30.07.2002 VI Fix in restricted energy loss // // -------------------------------------------------------------- @@ -208,7 +209,6 @@ void G4LowEnergyBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aPart // the cut cannot be below lowest limit G4double tCut = G4std::min(highKineticEnergy, ((G4Gamma::Gamma())->GetEnergyThreshold(material))); - // ((G4Gamma::Gamma())->GetCutsInEnergy())[j]); cutForSecondaryPhotons.push_back(tCut); const G4ElementVector* theElementVector = material->GetElementVector(); @@ -231,15 +231,13 @@ void G4LowEnergyBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aPart for (size_t iel=0; ielGetZ()); G4double e = energySpectrum->AverageEnergy(Z, 0.0, tCut, lowEdgeEnergy); - G4double pro = energySpectrum->Probability(Z, 0.0, tCut, lowEdgeEnergy); G4double cs= crossSectionHandler->FindValue(Z, lowEdgeEnergy); - ionloss += e * cs * pro * theAtomicNumDensityVector[iel]; + ionloss += e * cs * theAtomicNumDensityVector[iel]; if(verboseLevel > 1) { G4cout << "Z= " << Z << "; tCut(keV)= " << tCut/keV << "; E(keV)= " << lowEdgeEnergy/keV << "; Eav(keV)= " << e/keV - << "; pro= " << pro << "; cs= " << cs << "; loss= " << ionloss << G4endl; diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc index 0d0e2a4c3e..48b18eaa28 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyCompton.cc,v 1.33 2001/11/07 20:47:29 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc index 4c2d24c16b..c59d0a0e85 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc @@ -23,7 +23,7 @@ // -------------------------------------------------------------------- /// // $Id: G4LowEnergyGammaConversion.cc,v 1.27 2002/05/31 18:48:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc index e3cf19209f..b055bb1387 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4LowEnergyIonisation.cc,v 1.85 2002/06/03 00:07:17 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LowEnergyIonisation.cc,v 1.90 2002/10/28 09:43:49 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // @@ -89,6 +89,9 @@ // 31.05.02 V.Ivanchenko Add path of Fluo + Auger cuts to // AtomicDeexcitation // 03.06.02 MGP Restore fStopAndKill +// 19.06.02 VI Additional printout +// 30.07.02 VI Fix in restricted energy loss +// 20.09.02 VI Remove ActivateFlurescence from SetCut... // // -------------------------------------------------------------- @@ -208,7 +211,8 @@ void G4LowEnergyIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParti if(verboseLevel > 0) { G4cout << "The MeanFreePath table is built" << G4endl; - } + if(verboseLevel > 1) theMeanFreePath->PrintData(); + } // Build common DEDX table for all ionisation processes @@ -217,7 +221,7 @@ void G4LowEnergyIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParti if (verboseLevel > 0) { G4cout << "G4LowEnergyIonisation::BuildPhysicsTable end" << G4endl; - } + } } @@ -270,7 +274,6 @@ void G4LowEnergyIonisation::BuildLossTable( // the cut cannot be below lowest limit G4double tCut = G4Electron::Electron()->GetEnergyThreshold(material); - //GetCutsInEnergy())[m]; if(tCut > highKineticEnergy) tCut = highKineticEnergy; cutForDelta.push_back(tCut); @@ -301,24 +304,28 @@ void G4LowEnergyIonisation::BuildLossTable( G4double e = energySpectrum->AverageEnergy(Z, 0.0, tCut, lowEdgeEnergy, n); - G4double pro = energySpectrum->Probability(Z, 0.0, tCut, - lowEdgeEnergy, n); G4double cs= crossSectionHandler->FindValue(Z, lowEdgeEnergy, n); - ionloss += e * cs * pro * theAtomicNumDensityVector[iel]; - if(verboseLevel > 1) { + ionloss += e * cs * theAtomicNumDensityVector[iel]; + if(verboseLevel > 1 || (Z == 14 && lowEdgeEnergy>1. && lowEdgeEnergy<0.)) { G4cout << "Z= " << Z << " shell= " << n << " E(keV)= " << lowEdgeEnergy/keV << " Eav(keV)= " << e/keV - << " pro= " << pro << " cs= " << cs << " loss= " << ionloss + << " rho= " << theAtomicNumDensityVector[iel] << G4endl; } } G4double esp = energySpectrum->Excitation(Z, lowEdgeEnergy); ionloss += esp * theAtomicNumDensityVector[iel]; } + if(verboseLevel > 1 || (m == 0 && lowEdgeEnergy>=1. && lowEdgeEnergy<=0.)) { + G4cout << "Sum: " + << " E(keV)= " << lowEdgeEnergy/keV + << " loss(MeV/mm)= " << ionloss*mm/MeV + << G4endl; + } aVector->PutValue(i,ionloss); } theLossTable->insert(aVector); @@ -347,7 +354,7 @@ void G4LowEnergyIonisation::BuildLossTable( G4double pro = energySpectrum->Probability(Z, 0.0, tCut, lowEdgeEnergy, n); G4double cs= crossSectionHandler->FindValue(Z, lowEdgeEnergy, n); - eAverage += e * cs * pro * theAtomicNumDensityVector[iel]; + eAverage += e * cs * theAtomicNumDensityVector[iel]; cross += cs * pro * theAtomicNumDensityVector[iel]; if(verboseLevel > 1) { G4cout << "Z= " << Z @@ -687,14 +694,12 @@ void G4LowEnergyIonisation::SetCutForLowEnSecPhotons(G4double cut) { cutForPhotons = cut; deexcitationManager.SetCutForSecondaryPhotons(cut); - ActivateFluorescence(true); } void G4LowEnergyIonisation::SetCutForLowEnSecElectrons(G4double cut) { cutForElectrons = cut; deexcitationManager.SetCutForAugerElectrons(cut); - ActivateFluorescence(true); } void G4LowEnergyIonisation::ActivateAuger(G4bool val) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc index 9fab21a2eb..7eea0c1073 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPhotoElectric.cc,v 1.48 2002/06/14 17:39:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc index cbe59409ab..0c4b9c9755 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPolarizedCompton.cc,v 1.13 2002/06/02 21:27:52 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc index a6a43ea28a..101ce09185 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc @@ -22,8 +22,8 @@ // // -------------------------------------------------------------------- // -// $Id: G4LowEnergyRayleigh.cc,v 1.29 2002/06/07 10:25:02 flongo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LowEnergyRayleigh.cc,v 1.30 2002/11/08 07:59:05 flongo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) @@ -39,6 +39,7 @@ // 11.08.2001 MGP - Major revision according to a design iteration // 06.10.2001 MGP - Added strategy to test range for secondary generation // 05.06.2002 F.Longo and G.Depaola - bug fixed in angular distribution +// 20.10.2002 G. Depaola - Change sampling method of theta // // -------------------------------------------------------------------- @@ -117,15 +118,6 @@ void G4LowEnergyRayleigh::BuildPhysicsTable(const G4ParticleDefinition& photon) G4VParticleChange* G4LowEnergyRayleigh::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { - // The scattered gamma energy is sampled according to Form Factors - // multiplied by the Rayleigh distribution with a pure rejection technique. - // EGS4 W.R. Nelson et al. The EGS4 Code System. SLAC-Report-265 , December 1985 - // Expression of the angular distribution as Rayleigh distribution and - // Form factors is taken from D. E. Cullen "A simple model of photon transport" - // NIM B Phys. 101 (1995). Method of sampling with form factors is different. - // Reference to the article is from J. Stepanek New Photon, Positron - // and Electron Interaction Data for GEANT in Energy Range from 1 eV to 10 TeV - // (draft). aParticleChange.Initialize(aTrack); @@ -147,30 +139,36 @@ G4VParticleChange* G4LowEnergyRayleigh::PostStepDoIt(const G4Track& aTrack, G4Material* material = aTrack.GetMaterial(); G4int Z = crossSectionHandler->SelectRandomAtom(material,photonEnergy0); - // Sample the energy of the scattered photon + // Sample the angle of the scattered photon G4double wlPhoton = h_Planck*c_light/photonEnergy0; - G4double gReject; + G4double gReject,x,dataFormFactor; G4double randomFormFactor; G4double cosTheta; G4double sinTheta; + G4double fcostheta; do { - G4double thetaHalf = G4UniformRand() * pi / 2.; - G4double sinThetaHalf = sin(thetaHalf); - G4double x = sinThetaHalf / (wlPhoton/cm); - G4double dataFormFactor = formFactorData->FindValue(x,Z-1); + do + { + cosTheta = 2. * G4UniformRand() - 1.; + fcostheta = ( 1. + cosTheta*cosTheta)/2.; + } while (fcostheta < G4UniformRand()); + + G4double sinThetaHalf = sqrt((1. - cosTheta) / 2.); + x = sinThetaHalf / (wlPhoton/cm); + if (x > 1.e+005) + dataFormFactor = formFactorData->FindValue(x,Z-1); + else + dataFormFactor = formFactorData->FindValue(0.,Z-1); randomFormFactor = G4UniformRand() * Z * Z; - G4double theta = thetaHalf*2; - cosTheta = cos(theta); - sinTheta = sin(theta); - G4double sqrRayl = sqrt(27./32.)*(1 + cosTheta * cosTheta)*sinTheta; - gReject = sqrRayl * dataFormFactor * dataFormFactor; + sinTheta = sqrt(1. - cosTheta*cosTheta); + gReject = dataFormFactor * dataFormFactor; } while( gReject < randomFormFactor); - + // Scattered photon angles. ( Z - axis along the parent photon) G4double phi = twopi * G4UniformRand() ; G4double dirX = sinTheta*cos(phi); diff --git a/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc b/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc index 6ec01fd505..0d8676fa43 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc @@ -22,7 +22,7 @@ // // // $Id: G4RangeTest.cc,v 1.5 2002/05/28 09:20:21 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc index ff96279661..2c82463e30 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4SemiLogInterpolation.cc,v 1.4 2002/05/28 09:20:21 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc index d955d71fd9..aab9f0f17e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShellData.cc,v 1.5 2002/05/28 09:20:21 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc index b5a836b4e4..7e15121798 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShellEMDataSet.cc,v 1.8 2002/05/28 09:20:21 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc index b2bd025545..461cc34382 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc @@ -21,16 +21,17 @@ // ******************************************************************** // // -// $Id: G4VCrossSectionHandler.cc,v 1.9 2002/05/28 09:20:21 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCrossSectionHandler.cc,v 1.11 2002/07/30 10:06:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // // History: // ----------- -// 1 Aug 2001 MGP Created -// 09.10.01 V.Ivanchenko Add FindValue with 3 parameters -// + NumberOfComponents +// 1 Aug 2001 MGP Created +// 09 Oct 2001 VI Add FindValue with 3 parameters +// + NumberOfComponents +// 19 Jul 2002 VI Create composite data set for material // // ------------------------------------------------------------------- @@ -453,15 +454,19 @@ G4VEMDataSet* G4VCrossSectionHandler::BuildMeanFreePathForMaterials(const G4Data for (size_t m=0; mpush_back(energy); G4VEMDataSet* matCrossSet = (*crossSections)[m]; - G4double materialCrossSection = matCrossSet->FindValue(energy); - + G4double materialCrossSection = 0.0; + G4int nElm = matCrossSet->NumberOfComponents(); + for(G4int j=0; jGetComponent(j)->FindValue(energy); + } + if (materialCrossSection > 0.) { data->push_back(1./materialCrossSection); @@ -474,7 +479,7 @@ G4VEMDataSet* G4VCrossSectionHandler::BuildMeanFreePathForMaterials(const G4Data G4VDataSetAlgorithm* algo = CreateInterpolation(); G4VEMDataSet* dataSet = new G4EMDataSet(m,energies,data,algo,1.,1.); materialSet->AddComponent(dataSet); - } + } return materialSet; } @@ -485,33 +490,35 @@ G4int G4VCrossSectionHandler::SelectRandomAtom(const G4Material* material, G4dou // determined by the cross sections in the data set G4int nElements = material->GetNumberOfElements(); - const G4ElementVector* elementVector = material->GetElementVector(); // Special case: the material consists of one element if (nElements == 1) { - G4int Z = (G4int) (*elementVector)[0]->GetZ(); + G4int Z = (G4int) material->GetZ(); return Z; } // Composite material - G4double materialCrossSection0 = ValueForMaterial(material,e); - // size_t materialIndex = material->GetIndex(); + const G4ElementVector* elementVector = material->GetElementVector(); + size_t materialIndex = material->GetIndex(); - // G4VEMDataSet* materialSet = crossSections[materialIndex]; - // G4double materialCrossSection = materialSet->FindValue(e); + G4VEMDataSet* materialSet = (*crossSections)[materialIndex]; + G4double materialCrossSection0 = 0.0; + G4DataVector cross; + cross.clear(); + for ( G4int i=0; i < nElements; i++ ) + { + G4double cr = materialSet->GetComponent(i)->FindValue(e); + materialCrossSection0 += cr; + cross.push_back(materialCrossSection0); + } G4double random = G4UniformRand() * materialCrossSection0; - const G4double* nAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4double partialSumSigma = 0.; - for ( G4int i=0 ; i < nElements ; i++ ) + for (G4int k=0 ; k < nElements ; k++ ) { - G4int Z = (G4int) (*elementVector)[i]->GetZ(); - G4double crossSection = FindValue(Z,e); - partialSumSigma += nAtomsPerVolume[i] * crossSection; - if (random <= partialSumSigma) return Z; + if (random <= cross[k]) return (G4int) (*elementVector)[k]->GetZ(); } // It should never get here return 0; @@ -536,27 +543,30 @@ const G4Element* G4VCrossSectionHandler::SelectRandomElement(const G4Material* m else { // Composite material - G4double materialCrossSection0 = ValueForMaterial(material,e); - // size_t materialIndex = material->GetIndex(); - // G4VEMDataSet* materialSet = crossSections[materialIndex]; - // G4double materialCrossSection = materialSet->FindValue(e); - + + size_t materialIndex = material->GetIndex(); + + G4VEMDataSet* materialSet = (*crossSections)[materialIndex]; + G4double materialCrossSection0 = 0.0; + G4DataVector cross; + cross.clear(); + for (G4int i=0; iGetComponent(i)->FindValue(e); + materialCrossSection0 += cr; + cross.push_back(materialCrossSection0); + } + G4double random = G4UniformRand() * materialCrossSection0; - const G4double* nAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4double partialSumSigma = 0.; - - for ( G4int i=0 ; i < nElements ; i++ ) - { - G4Element* element = (*elementVector)[i]; - G4int Z = (G4int) element->GetZ(); - G4double crossSection = FindValue(Z,e); - partialSumSigma += nAtomsPerVolume[i] * crossSection; - if (random <= partialSumSigma) return element; - } - } + + for (G4int k=0 ; k < nElements ; k++ ) + { + if (random <= cross[k]) return (*elementVector)[k]; + } // It should never end up here G4cout << "G4VCrossSectionHandler::SelectRandomElement - no element found" << G4endl; return nullElement; + } } G4int G4VCrossSectionHandler::SelectRandomShell(G4int Z, G4double e) const diff --git a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc index dc407d09f3..9398442321 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VeLowEnergyLoss.cc,v 1.17 2001/11/23 11:45:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VeLowEnergyLoss.cc,v 1.18 2002/09/09 08:54:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -503,16 +503,15 @@ G4double G4VeLowEnergyLoss::ProperTimeIntLog(G4PhysicsVector* physicsVector, // G4PhysicsTable* G4VeLowEnergyLoss::BuildInverseRangeTable(G4PhysicsTable* theRangeTable, - G4PhysicsTable* theRangeCoeffATable, - G4PhysicsTable* theRangeCoeffBTable, - G4PhysicsTable* theRangeCoeffCTable, + G4PhysicsTable*, + G4PhysicsTable*, + G4PhysicsTable*, G4PhysicsTable* theInverseRangeTable, G4double lowestKineticEnergy, - G4double highestKineticEnergy,G4int TotBin) + G4double highestKineticEnergy,G4int nbins) // Build inverse table of the range table { - G4double SmallestRange,BiggestRange ; - G4bool isOut ; + G4bool b; G4int numOfMaterials = G4Material::GetNumberOfMaterials(); @@ -522,23 +521,49 @@ G4PhysicsTable* G4VeLowEnergyLoss::BuildInverseRangeTable(G4PhysicsTable* theRan theInverseRangeTable = new G4PhysicsTable(numOfMaterials); // loop for materials - for (G4int J=0; J - GetValue(lowestKineticEnergy,isOut) ; - BiggestRange = (*theRangeTable)(J)-> - GetValue(highestKineticEnergy,isOut) ; - G4PhysicsLogVector* aVector; - aVector = new G4PhysicsLogVector(SmallestRange, - BiggestRange,TotBin); - InvertRangeVector(theRangeTable, - theRangeCoeffATable, - theRangeCoeffBTable, - theRangeCoeffCTable, - lowestKineticEnergy,highestKineticEnergy,TotBin,J, aVector); + G4PhysicsVector* pv = (*theRangeTable)[i]; + size_t nbins = pv->GetVectorLength(); + G4double elow = pv->GetLowEdgeEnergy(0); + G4double ehigh = pv->GetLowEdgeEnergy(nbins-1); + G4double rlow = pv->GetValue(elow, b); + G4double rhigh = pv->GetValue(ehigh, b); + + rhigh *= exp(log(rhigh/rlow)/((G4double)(nbins-1))); + + G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins); + + v->PutValue(0,elow); + G4double energy1 = elow; + G4double range1 = rlow; + G4double energy2 = elow; + G4double range2 = rlow; + size_t ilow = 0; + size_t ihigh; + + for (size_t j=1; jGetLowEdgeEnergy(j); + + for (ihigh=ilow+1; ihighGetLowEdgeEnergy(ihigh); + range2 = pv->GetValue(energy2, b); + if(range2 >= range || ihigh == nbins-1) { + ilow = ihigh - 1; + energy1 = pv->GetLowEdgeEnergy(ilow); + range1 = pv->GetValue(energy1, b); + break; + } + } + + G4double e = log(energy1) + log(energy2/energy1)*log(range/range1)/log(range2/range1); + + v->PutValue(j,exp(e)); + } + theInverseRangeTable->insert(v); - theInverseRangeTable->insert(aVector); } return theInverseRangeTable ; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc index 4ec0444d3b..42fec84d94 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlungSpectrum.cc,v 1.7 2002/05/30 17:53:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc index 6c17fd8aff..0e876a68ef 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eIonisationCrossSectionHandler.cc,v 1.7 2002/05/30 17:53:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4eIonisationCrossSectionHandler.cc,v 1.8 2002/07/19 17:32:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // @@ -35,7 +35,8 @@ // Creation date: 25 Sept 2001 // // Modifications: -// 10 Oct 2001 M.G. Pia Revision to improve code quality and consistency with design +// 10 Oct 2001 M.G. Pia Revision to improve code quality and consistency with design +// 19 Jul 2002 VI Create composite data set for material // // ------------------------------------------------------------------- @@ -73,7 +74,7 @@ G4std::vector* G4eIonisationCrossSectionHandler::BuildCrossSectio const G4DataVector& energyVector, const G4DataVector* energyCuts) { - + G4int verbose = 0; G4std::vector* set = new G4std::vector; G4DataVector* energies; @@ -94,6 +95,12 @@ G4std::vector* G4eIonisationCrossSectionHandler::BuildCrossSectio const G4double* nAtomsPerVolume = material->GetAtomicNumDensityVector(); G4int nElements = material->GetNumberOfElements(); + if(verbose > 0) { + G4cout << "eIonisation CS for " << m << "th material " + << material->GetName() + << " eEl= " << nElements << G4endl; + } + G4double tcut = (*energyCuts)[m]; G4VDataSetAlgorithm* algo = interp->Clone(); @@ -118,14 +125,19 @@ G4std::vector* G4eIonisationCrossSectionHandler::BuildCrossSectio G4double cross = FindValue(Z, e, n); G4double p = theParam->Probability(Z, tcut, e, e, n); value += cross * p * density; - /* - G4cout << "G4eIonisationCrossSectionHandler: e= " << e - << " n= " << n - << " cross= " << cross - << " p= " << p - << " value= " << value - << G4endl; - */ + + if(verbose>0 && m == 0 && e>=1. && e<=0.) { + G4cout << "G4eIonCrossSH: e(MeV)= " << e/MeV + << " n= " << n + << " cross= " << cross + << " p= " << p + << " value= " << value + << " tcut(MeV)= " << tcut/MeV + << " rho= " << density + << " Z= " << Z + << G4endl; + } + } } cs->push_back(value); @@ -139,3 +151,5 @@ G4std::vector* G4eIonisationCrossSectionHandler::BuildCrossSectio return set; } + + diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc index 175455e928..296d43510d 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4eIonisationParameters.cc,v 1.19 2002/05/30 17:53:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc index 533125dfba..5d4f1976d5 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eIonisationSpectrum.cc,v 1.19 2002/06/03 17:52:12 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4eIonisationSpectrum.cc,v 1.20 2002/07/19 17:32:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // @@ -41,6 +41,7 @@ // 29.11.2001 VI New parametrisation // 19.04.2002 VI Add protection in case of energy below binding // 30.05.2002 VI Update to 24-parameters data +// 11.07.2002 VI Fix in integration over spectrum // // ------------------------------------------------------------------- // @@ -94,13 +95,15 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, G4double x1 = G4std::min(0.5,(t0 + bindingEnergy)/energy); G4double x2 = G4std::min(0.5,(tm + bindingEnergy)/energy); - if(verbose > 1) { + if(verbose > 1 || (Z==4 && e>= 1.0 && e<= 0.0)) { G4cout << "G4eIonisationSpectrum::Probability: Z= " << Z << "; shell= " << shell << "; E(keV)= " << e/keV + << "; Eb(keV)= " << bindingEnergy/keV << "; x1= " << x1 << "; x2= " << x2 << G4endl; + } G4DataVector p; @@ -119,12 +122,15 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, p.push_back((2.0*g - 1.0)/(g*g)); p[iMax-1] = Function(p[3], p); + + if(e >= 1. && e <= 0. && Z == 4) p.push_back(0.0); + G4double val = IntSpectrum(x1, x2, p); G4double x0 = (lowestE + bindingEnergy)/energy; G4double nor = IntSpectrum(x0, 0.5, p); - if(verbose > 1) { + if(verbose > 1 || (Z==4 && e>= 1.0 && e<= 0.0)) { G4cout << "tcut= " << tMin << "; tMax= " << tMax << "; x0= " << x0 @@ -137,13 +143,13 @@ G4double G4eIonisationSpectrum::Probability(G4int Z, << "; b= " << p[2] << "; c= " << p[3] << G4endl; + if(shell == 1) G4cout << "============" << G4endl; } p.clear(); if(nor > 0.0) val /= nor; else val = 0.0; - // if(val < 0.0) val = 0.0; return val; } @@ -226,7 +232,6 @@ G4double G4eIonisationSpectrum::AverageEnergy(G4int Z, if(nor > 0.0) val /= nor; else val = 0.0; - // if(val < 0.0) val = 0.0; return val; } @@ -298,14 +303,14 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, if(aria <= aria1) { amaj = p[4]; - for (size_t j=5; j<24; j++) { + for (G4int j=5; j amaj) amaj = p[j]; } a1 = 1./a1; a2 = 1./a2; - size_t i; + G4int i; do { x = 1./(a2 + G4UniformRand()*(a1 - a2)); @@ -313,17 +318,17 @@ G4double G4eIonisationSpectrum::SampleEnergy(G4int Z, z2 = p[3]; dx = (p[2] - p[1]) / 3.0; dx1= exp(log(p[3]/p[2]) / 16.0); - for (i=5; i<23; i++) { + for (i=4; i= z1 && x <= z2) break; z1 = z2; } fun = p[i] + (x - z1) * (p[i+1] - p[i])/(z2 - z1); @@ -398,7 +403,7 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, G4double sum = 0.0; if(xMin >= xMax) return sum; - G4double x1, x2, xs1, xs2, y1, y2, ys1, ys2; + G4double x1, x2, xs1, xs2, y1, y2, ys1, ys2, q; // Integral over interpolation aria if(xMin < p[3]) { @@ -411,39 +416,45 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, for (size_t i=0; i<19; i++) { - if (i <= 3) { + q = 0.0; + if (i < 3) { x2 = x1 + dx; + } else if(18 == i) { + x2 = p[3]; } else { x2 = x1*dx1; } y2 = p[5 + i]; - if (xMin >= x2 || xMax <= x1) { - continue; - } else { + if (xMax <= x1) { + break; + } else if (xMin < x2) { xs1 = x1; xs2 = x2; ys1 = y1; ys2 = y2; - if (xMin > x1) { - xs1 = xMin; - ys1 += (xs1 - x1)*(y2 - y1)/(x2 - x1); - } - if (xMax < x2) { - xs2 = xMax; - ys2 += (xs2 - x2)*(y1 - y2)/(x1 - x2); - } - if (xs2 > xs1) { - sum += (ys1*xs2 - ys2*xs1)/(xs1*xs2) + if (x2 > x1) { + if (xMin > x1) { + xs1 = xMin; + ys1 += (xs1 - x1)*(y2 - y1)/(x2 - x1); + } + if (xMax < x2) { + xs2 = xMax; + ys2 += (xs2 - x2)*(y1 - y2)/(x1 - x2); + } + if (xs2 > xs1) { + q = (ys1*xs2 - ys2*xs1)/(xs1*xs2) + log(xs2/xs1)*(ys2 - ys1)/(xs2 - xs1); + sum += q; + if(p.size() == 26) G4cout << "i= " << i << " q= " << q << " sum= " << sum << G4endl; + } } } x1 = x2; y1 = y2; - } } @@ -455,14 +466,15 @@ G4double G4eIonisationSpectrum::IntSpectrum(G4double xMin, xs1 = 1./x1; xs2 = 1./x2; - sum += (xs1 - xs2)*(1.0 - p[0]) + q = (xs1 - xs2)*(1.0 - p[0]) - p[iMax]*log(x2/x1) + (1. - p[iMax])*(x2 - x1) + 1./(1. - x2) - 1./(1. - x1) + p[iMax]*log((1. - x2)/(1. - x1)) + 0.25*p[0]*(xs1*xs1 - xs2*xs2); + sum += q; + if(p.size() == 26) G4cout << "param... q= " << q << " sum= " << sum << G4endl; - // if(sum < 0.0) sum = 0.0; return sum; } @@ -487,34 +499,38 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, for (size_t i=0; i<19; i++) { - if (i <= 3) { + if (i < 3) { x2 = x1 + dx; + } else if(18 == i) { + x2 = p[3]; } else { x2 = x1*dx1; } y2 = p[5 + i]; - if (xMin >= x2 || xMax <= x1) { - continue; - } else { + if (xMax <= x1) { + break; + } else if (xMin < x2) { xs1 = x1; xs2 = x2; ys1 = y1; ys2 = y2; - if (xMin > x1) { - xs1 = xMin; - ys1 += (xs1 - x1)*(y2 - y1)/(x2 - x1); - } - if (xMax < x2) { - xs2 = xMax; - ys2 += (xs2 - x2)*(y1 - y2)/(x1 - x2); - } - if (xs2 > xs1) { - sum += log(xs2/xs1)*(ys1*xs2 - ys2*xs1)/(xs2 - xs1) - + ys2 - ys1; + if (x2 > x1) { + if (xMin > x1) { + xs1 = xMin; + ys1 += (xs1 - x1)*(y2 - y1)/(x2 - x1); + } + if (xMax < x2) { + xs2 = xMax; + ys2 += (xs2 - x2)*(y1 - y2)/(x1 - x2); + } + if (xs2 > xs1) { + sum += log(xs2/xs1)*(ys1*xs2 - ys2*xs1)/(xs2 - xs1) + + ys2 - ys1; + } } } x1 = x2; @@ -538,7 +554,6 @@ G4double G4eIonisationSpectrum::AverageValue(G4double xMin, + (1. + p[iMax])*log((1. - x2)/(1. - x1)) + 0.5*p[0]*(xs1 - xs2); - // if(sum < 0.0) sum = 0.0; return sum; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc index edee1775c1..0c316fc86d 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eLowEnergyLoss.cc,v 1.28 2002/06/03 00:07:18 pia Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4eLowEnergyLoss.cc,v 1.29 2002/10/28 09:43:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file @@ -56,6 +56,7 @@ // 23/11/01 VI Move static member-functions from header to source // 28/05/02 VI Remove flag fStopAndKill // 03/06/02 MGP - Restore fStopAndKill +// 28/10/02 VI Optimal binning for dE/dx // // -------------------------------------------------------------- @@ -103,9 +104,9 @@ G4PhysicsTable* G4eLowEnergyLoss::thepRangeCoeffATable = 0; G4PhysicsTable* G4eLowEnergyLoss::thepRangeCoeffBTable = 0; G4PhysicsTable* G4eLowEnergyLoss::thepRangeCoeffCTable = 0; -G4double G4eLowEnergyLoss::LowerBoundEloss = 250.*eV ; +G4double G4eLowEnergyLoss::LowerBoundEloss = 10.*eV ; G4double G4eLowEnergyLoss::UpperBoundEloss = 100.*GeV ; -G4int G4eLowEnergyLoss::NbinEloss = 1000 ; +G4int G4eLowEnergyLoss::NbinEloss = 360 ; G4double G4eLowEnergyLoss::RTable ; G4double G4eLowEnergyLoss::LOGRTable ; @@ -120,9 +121,9 @@ G4eLowEnergyLoss::G4eLowEnergyLoss(const G4String& processName) : G4VeLowEnergyLoss (processName), theLossTable(0), MinKineticEnergy(1.*eV), - Charge(-1.),lastCharge(0.), + Charge(-1.), + lastCharge(0.), theDEDXTable(0), - //linLossLimit(0.02) CounterOfProcess(0), RecorderOfProcess(0), fdEdx(0), @@ -363,6 +364,11 @@ void G4eLowEnergyLoss::BuildDEDXTable( LowerBoundEloss,UpperBoundEloss,NbinEloss); } + if(verboseLevel > 1) { + G4cout << (*theDEDXElectronTable) << G4endl; + } + + // make the energy loss and the range table available G4EnergyLossTables::Register(&aParticleType, (&aParticleType==G4Electron::Electron())? diff --git a/source/processes/electromagnetic/lowenergy/src/G4hBetheBlochModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hBetheBlochModel.cc index 7eb81ed9a9..01c5e379b8 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hBetheBlochModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hBetheBlochModel.cc @@ -56,6 +56,8 @@ G4hBetheBlochModel::G4hBetheBlochModel(const G4String& name) : G4VLowEnergyModel(name), + lowEnergyLimit(1.*MeV), + highEnergyLimit(100.*GeV), twoln10(2.*log(10.)), bg2lim(0.0169), taulim(8.4146e-3) diff --git a/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc b/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc index d79d2dd023..de37bf40f2 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hIonEffChargeSquare.cc @@ -35,6 +35,8 @@ // Modifications: // 20/07/2000 V.Ivanchenko First implementation // 18/06/2001 V.Ivanchenko Continuation for eff.charge (small change of y) +// 08/10/2002 V.Ivanchenko The charge of the nucleus is used not charge of +// DynamicParticle // // Class Description: // @@ -73,7 +75,7 @@ G4double G4hIonEffChargeSquare::TheValue(const G4DynamicParticle* particle, { G4double energy = particle->GetKineticEnergy() ; G4double particleMass = particle->GetMass() ; - G4double charge = (particle->GetCharge())/eplus ; + G4double charge = (particle->GetDefinition()->GetPDGCharge())/eplus ; G4double q = IonEffChargeSquare(material,energy,particleMass,charge) ; diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc index b688e5bec6..7128f58f5f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc @@ -80,6 +80,10 @@ // 10 Jun 2002 V.Ivanchenko Restore fStopButAlive // 12 Jun 2002 V.Ivanchenko Fix in fluctuations - if tmax<2*Ipot Gaussian // fluctuations enables +// 20 Sept 2002 V.Ivanchenko Clean up energy ranges for models +// 07 Oct 2002 V.Ivanchenko Clean up initialisation of fluorescence +// 28 Oct 2002 V.Ivanchenko Optimal binning for dE/dx +// 10 Dec 2002 V.Ivanchenko antiProtonLowEnergy -> 25 keV, QEG model below // ----------------------------------------------------------------------- @@ -138,12 +142,12 @@ G4hLowEnergyIonisation::G4hLowEnergyIonisation(const G4String& processName) void G4hLowEnergyIonisation::InitializeMe() { LowestKineticEnergy = 10.0*eV ; - HighestKineticEnergy = 100.0*TeV ; + HighestKineticEnergy = 100.0*GeV ; MinKineticEnergy = 10.0*eV ; - TotBin = 200 ; + TotBin = 360 ; protonLowEnergy = 1.*keV ; protonHighEnergy = 2.*MeV ; - antiProtonLowEnergy = 1.*keV ; + antiProtonLowEnergy = 25.*keV ; antiProtonHighEnergy = 2.*MeV ; minGammaEnergy = 25.*keV; minElectronEnergy = 25.*keV; @@ -197,9 +201,6 @@ void G4hLowEnergyIonisation::SetElectronicStoppingPowerModel( void G4hLowEnergyIonisation::InitializeParametrisation() { - G4Proton* theProton = G4Proton::Proton(); - G4AntiProton* theAntiProton = G4AntiProton::AntiProton(); - // Define models for parametrisation of electronic energy losses theBetheBlochModel = new G4hBetheBlochModel("Bethe-Bloch") ; theProtonModel = new G4hParametrisedLossModel(theProtonTable) ; @@ -208,22 +209,6 @@ void G4hLowEnergyIonisation::InitializeParametrisation() theIonEffChargeModel = new G4hIonEffChargeSquare("Ziegler1988") ; theIonChuFluctuationModel = new G4IonChuFluctuationModel("Chu") ; theIonYangFluctuationModel = new G4IonYangFluctuationModel("Yang") ; - - // Energy limits for parametrisation of electronic energy losses - protonLowEnergy = G4std::max(protonLowEnergy, - theProtonModel->LowEnergyLimit(theProton)) ; - - G4double x1 = theBetheBlochModel->LowEnergyLimit(theProton) ; - G4double x2 = theProtonModel->HighEnergyLimit(theProton) ; - if(protonHighEnergy < x1) protonHighEnergy = x1 ; - if(protonHighEnergy > x2) protonHighEnergy = x2 ; - - antiProtonLowEnergy = G4std::max(antiProtonLowEnergy, - theAntiProtonModel->LowEnergyLimit(theAntiProton)) ; - - x2 = theAntiProtonModel->HighEnergyLimit(theAntiProton) ; - if(antiProtonHighEnergy < x1) antiProtonHighEnergy = x1 ; - if(antiProtonHighEnergy > x2) antiProtonHighEnergy = x2 ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -349,6 +334,9 @@ void G4hLowEnergyIonisation::BuildPhysicsTable( BuildLambdaTable(aParticleType) ; BuildDataForFluorescence(aParticleType); + if(verboseLevel > 1) { + G4cout << (*theMeanFreePathTable) << G4endl; + } if(verboseLevel > 0) { G4cout << "G4hLowEnergyIonisation::BuildPhysicsTable: " @@ -356,6 +344,9 @@ void G4hLowEnergyIonisation::BuildPhysicsTable( } BuildDEDXTable(aParticleType) ; + if(verboseLevel > 1) { + G4cout << (*theDEDXpTable) << G4endl; + } if((&aParticleType == theProton) ) PrintInfoDefinition() ; @@ -410,25 +401,15 @@ void G4hLowEnergyIonisation::BuildLossTable( // get material parameters needed for the energy loss calculation const G4Material* material= (*theMaterialTable)[j]; - // low energy of Bethe-Bloch formula for this material - G4double highE = G4std::max(highEnergy,theBetheBlochModel-> - LowEnergyLimit(&aParticleType,material)) ; - if ( charge > 0.0 ) { - ionloss = ProtonParametrisedDEDX(material,highE) ; + ionloss = ProtonParametrisedDEDX(material,highEnergy) ; } else { - ionloss = AntiProtonParametrisedDEDX(material,highE) ; + ionloss = AntiProtonParametrisedDEDX(material,highEnergy) ; } - ionlossBB = theBetheBlochModel->TheValue(&aParticleType,material,highE) ; - ionlossBB -= DeltaRaysEnergy(material,highE,proton_mass_c2) ; + ionlossBB = theBetheBlochModel->TheValue(&aParticleType,material,highEnergy) ; + ionlossBB -= DeltaRaysEnergy(material,highEnergy,proton_mass_c2) ; - /* - if(theBarkas) { - ionlossBB += BarkasTerm(material,highE)*charge ; - ionlossBB += BlochTerm(material,highE,1.0) ; - } - */ paramB = ionloss/ionlossBB - 1.0 ; @@ -437,7 +418,7 @@ void G4hLowEnergyIonisation::BuildLossTable( lowEdgeEnergy = aVector->GetLowEdgeEnergy(i) ; // low energy part for this material, parametrised energy loss formulae - if ( lowEdgeEnergy < highE ) { + if ( lowEdgeEnergy < highEnergy ) { if ( charge > 0.0 ) { ionloss = ProtonParametrisedDEDX(material,lowEdgeEnergy) ; @@ -453,12 +434,6 @@ void G4hLowEnergyIonisation::BuildLossTable( ionloss -= DeltaRaysEnergy(material,lowEdgeEnergy,proton_mass_c2) ; - /* - if(theBarkas) { - ionloss += BarkasTerm(material,lowEdgeEnergy)*charge ; - ionloss += BlochTerm(material,lowEdgeEnergy,1.0) ; - } - */ ionloss *= (1.0 + paramB*highEnergy/lowEdgeEnergy) ; } @@ -488,6 +463,9 @@ void G4hLowEnergyIonisation::BuildDataForFluorescence( // fill data for fluorescence + deexcitationManager.SetCutForSecondaryPhotons(minGammaEnergy); + deexcitationManager.SetCutForAugerElectrons(minElectronEnergy); + G4double mass = aParticleType.GetPDGMass(); const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); @@ -1061,8 +1039,8 @@ G4double G4hLowEnergyIonisation::AntiProtonParametrisedDEDX( // Antiproton model is used if(theAntiProtonModel->IsInCharge(theAntiProton,material)) { if(kineticEnergy < antiProtonLowEnergy) { - eloss = theAntiProtonModel->TheValue(theAntiProton,material, - antiProtonLowEnergy); + eloss = theAntiProtonModel->TheValue(theAntiProton,material,antiProtonLowEnergy) + * sqrt(kineticEnergy/antiProtonLowEnergy) ; // Parametrisation } else { @@ -1072,9 +1050,8 @@ G4double G4hLowEnergyIonisation::AntiProtonParametrisedDEDX( // The proton model is used + Barkas correction } else { - if(kineticEnergy < antiProtonLowEnergy) { - eloss = theProtonModel->TheValue(G4Proton::Proton(),material, - antiProtonLowEnergy); + if(kineticEnergy < protonLowEnergy) { + eloss = theProtonModel->TheValue(G4Proton::Proton(),material,protonLowEnergy); // Parametrisation } else { @@ -1942,8 +1919,6 @@ G4double G4hLowEnergyIonisation::ElectronicLossFluctuation( void G4hLowEnergyIonisation::SetCutForSecondaryPhotons(G4double cut) { minGammaEnergy = cut; - deexcitationManager.SetCutForSecondaryPhotons(cut); - theFluo = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -1951,8 +1926,6 @@ void G4hLowEnergyIonisation::SetCutForSecondaryPhotons(G4double cut) void G4hLowEnergyIonisation::SetCutForAugerElectrons(G4double cut) { minElectronEnergy = cut; - deexcitationManager.SetCutForAugerElectrons(cut); - theFluo = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc index 6dc696e97d..1096ad7928 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4hLowEnergyLoss.cc,v 1.15 2002/02/27 14:38:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4hLowEnergyLoss.cc,v 1.17 2002/10/28 09:43:52 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file @@ -45,6 +45,7 @@ // 05/11/00 new method to calculate particle ranges // 10/05/01 V.Ivanchenko Clean up againist Linux compilation with -Wall // 23/11/01 V.Ivanchenko Move static member-functions from header to source +// 28/10/02 V.Ivanchenko Optimal binning for dE/dx // -------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -131,8 +132,9 @@ G4double G4hLowEnergyLoss::Charge ; G4bool G4hLowEnergyLoss::rndmStepFlag = false ; G4bool G4hLowEnergyLoss::EnlossFlucFlag = true ; -G4double G4hLowEnergyLoss::LowestKineticEnergy,G4hLowEnergyLoss::HighestKineticEnergy; -G4int G4hLowEnergyLoss::TotBin ; +G4double G4hLowEnergyLoss::LowestKineticEnergy = 10.*eV; +G4double G4hLowEnergyLoss::HighestKineticEnergy= 100.*GeV; +G4int G4hLowEnergyLoss::TotBin = 360; G4double G4hLowEnergyLoss::RTable,G4hLowEnergyLoss::LOGRTable; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -228,14 +230,14 @@ void G4hLowEnergyLoss::BuildDEDXTable( const G4ParticleDefinition& aParticleType) { // calculate data members TotBin,LOGRTable,RTable first - + /* G4double binning = dRoverRange; G4double lrate = log(HighestKineticEnergy/LowestKineticEnergy); G4int nbin = G4int(lrate/log(1.+binning) + 0.5 ); nbin = (nbin+25)/50; LOGRTable=lrate/TotBin; RTable =exp(LOGRTable); - + */ // create table if there is no table or there is a new cut value G4bool MakeTable = false ; @@ -974,8 +976,7 @@ void G4hLowEnergyLoss::BuildInverseRangeTable( const G4ParticleDefinition& aParticleType) // Build inverse table of the range table { - G4double SmallestRange,BiggestRange ; - G4bool isOut ; + G4bool b; G4int numOfMaterials = G4Material::GetNumberOfMaterials(); if(&aParticleType == G4Proton::Proton()) @@ -1007,19 +1008,49 @@ void G4hLowEnergyLoss::BuildInverseRangeTable( } // loop for materials - for (G4int J=0; J - GetValue(LowestKineticEnergy,isOut) ; - BiggestRange = (*theRangeTable)(J)-> - GetValue(HighestKineticEnergy,isOut) ; - G4PhysicsLogVector* aVector; - aVector = new G4PhysicsLogVector(SmallestRange, - BiggestRange,TotBin); - InvertRangeVector(J, aVector); + G4PhysicsVector* pv = (*theRangeTable)[i]; + size_t nbins = pv->GetVectorLength(); + G4double elow = pv->GetLowEdgeEnergy(0); + G4double ehigh = pv->GetLowEdgeEnergy(nbins-1); + G4double rlow = pv->GetValue(elow, b); + G4double rhigh = pv->GetValue(ehigh, b); + + rhigh *= exp(log(rhigh/rlow)/((G4double)(nbins-1))); + + G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins); + + v->PutValue(0,elow); + G4double energy1 = elow; + G4double range1 = rlow; + G4double energy2 = elow; + G4double range2 = rlow; + size_t ilow = 0; + size_t ihigh; + + for (size_t j=1; jGetLowEdgeEnergy(j); + + for (ihigh=ilow+1; ihighGetLowEdgeEnergy(ihigh); + range2 = pv->GetValue(energy2, b); + if(range2 >= range || ihigh == nbins-1) { + ilow = ihigh - 1; + energy1 = pv->GetLowEdgeEnergy(ilow); + range1 = pv->GetValue(energy1, b); + break; + } + } + + G4double e = log(energy1) + log(energy2/energy1)*log(range/range1)/log(range2/range1); + + v->PutValue(j,exp(e)); + } + theInverseRangeTable->insert(v); - theInverseRangeTable->insert(aVector); } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc index 6cecf70b51..d0fab0d92a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hParametrisedLossModel.cc @@ -114,7 +114,7 @@ void G4hParametrisedLossModel::InitializeMe() << modelName << ">" << "for electronic stopping, is applied" << G4endl; eStopingPowerTable = new G4hICRU49p(); - highEnergyLimit = 2.0*MeV; + highEnergyLimit = 1.0*MeV; lowEnergyLimit = 1.0*keV; } //G4cout << "G4hParametrisedLossModel: the model <" << modelName diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc index 96322b37a7..fbead228f3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc @@ -34,6 +34,7 @@ // 23 Oct 2001 A. Mantero 1st implementation // 24 Oct 2001 MGP Cleaned up // 30 Oct 2001 V.Ivanchenko Include formula (53) +// 07 Oct 2002 V.Ivanchenko Fix in formula (53) // // ------------------------------------------------------------------- @@ -73,19 +74,19 @@ G4std::vector G4hShellCrossSection::Probabilities( G4std::vector crossSections; // Partial and total cross-section used for normalization of crossSections: - G4double aCrossSection = 0.; G4double totalCrossSection = 0.; // In this loop we calculate cross-section for every shell in the atom for (size_t k=0; kShell(Z,k)->BindingEnergy(); - G4double xDelta = deltaEnergy/bindingEnergy; - G4double y = incidentEnergy*electron_mass_c2/(bindingEnergy*hMass); - G4double x = 1.0 + xDelta; + G4double xEnergy = 0.5*bindingEnergy; + G4double y = incidentEnergy*electron_mass_c2/(xEnergy*hMass); + G4double dele = deltaEnergy + xEnergy; + G4double x = electron_mass_c2/dele; - aCrossSection = (x/(xDelta*(1. + 1./y)) - + 4.*log(2.7 + sqrt(y))/3.)/ (x*x*x); + G4double aCrossSection = (dele/(xEnergy*(1. + 1./y)) + + 4.*log(2.7 + sqrt(y))/3.) * x*x*x; // Calculation of total cross-section totalCrossSection += aCrossSection; diff --git a/source/processes/electromagnetic/muons/History b/source/processes/electromagnetic/muons/History index 6a002aa77c..b95b3419d3 100644 --- a/source/processes/electromagnetic/muons/History +++ b/source/processes/electromagnetic/muons/History @@ -1,4 +1,4 @@ -$Id: History,v 1.30 2002/05/29 16:30:32 maire Exp $ +$Id: History,v 1.34 2002/12/09 10:26:20 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,18 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +09 dec 02: V.Ivant (muons-V04-01-03) +-fix warning in G4MuIonisationSTD + +04 dec 02: V.Ivant (muons-V04-01-02) +-fix problems in delta-electrons spectrum + +28 oct 02: V.Ivant (muons-V04-01-01) +-fix compilation warnings for STD classes + +16 oct 02: V.Ivant (muons-V04-01-00) +-redesign for a Model approach: files processNameSTD and processNameModel 29 may 02: mma (muons-V04-00-02) - V.Ivanchenko G4VMuEnergyLoss - bug fixed in N of subcutoff delta diff --git a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh new file mode 100644 index 0000000000..d6a08cf4ab --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh @@ -0,0 +1,159 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuBetheBlochModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 09.08.2002 +// +// Modifications: + +// +// Class Description: +// +// Implementation of Bethe-Bloch model of energy loss and +// delta-electron production by heavy charged particles + +// ------------------------------------------------------------------- +// + +#ifndef G4MuBetheBlochModel_h +#define G4MuBetheBlochModel_h 1 + +#include "G4VEmModel.hh" + +class G4MuBetheBlochModel : public G4VEmModel +{ + +public: + + G4MuBetheBlochModel(const G4ParticleDefinition* p = 0); + + ~G4MuBetheBlochModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + virtual G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + virtual G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + virtual G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + G4double MaxSecondaryEnergy(const G4DynamicParticle*); + +protected: + + G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy); + +private: + + void SetParticle(const G4ParticleDefinition* p); + + G4double CrossSectionPerAtom(G4double Z, + G4double kineticEnergy, + G4double tmin, + G4double tmax, + G4double tmaxSecondary); + + G4double DifCrossSectionPerAtom(G4double kineticEnergy, + G4double knockonEnergy, + G4double tmaxSecondary); + + // hide assignment operator + G4MuBetheBlochModel & operator=(const G4MuBetheBlochModel &right); + G4MuBetheBlochModel(const G4MuBetheBlochModel&); + + const G4ParticleDefinition* particle; + G4double mass; + G4double chargeSquare; + G4double ratio; + G4double highKinEnergy; + G4double lowKinEnergy; + G4double twoln10; + G4double bg2lim; + G4double taulim; + G4double qc; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuBetheBlochModel::MaxSecondaryEnergy( + const G4ParticleDefinition* p, + G4double kinEnergy) +{ + + G4double gamma= kinEnergy/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuBetheBlochModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double gamma= kineticEnergy/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh index 8fb3680f3f..ddf41ec885 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuBremsstrahlung.hh,v 1.12 2001/10/29 13:53:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4MuBremsstrahlung physics process ------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc index 06365b215b..7d6aeb7ac8 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuBremsstrahlung.icc,v 1.8 2001/10/24 16:36:40 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4MuBremsstrahlung physics process ------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh new file mode 100644 index 0000000000..3a94ce1575 --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh @@ -0,0 +1,163 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuBremsstrahlungModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 18.05.2002 +// +// Modifications: + +// +// Class Description: +// +// Implementation of energy loss for gamma emission by muons + +// ------------------------------------------------------------------- +// + +#ifndef G4MuBremsstrahlungModel_h +#define G4MuBremsstrahlungModel_h 1 + +#include "G4VEmModel.hh" + +class G4MuBremsstrahlungModel : public G4VEmModel +{ + +public: + + G4MuBremsstrahlungModel(const G4ParticleDefinition* p = 0); + + ~G4MuBremsstrahlungModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + virtual G4double MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle); +protected: + + virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kineticEnergy); + +private: + + G4double ComputMuBremLoss(G4double Z, G4double A, G4double tkin, G4double cut); + + G4double ComputeMicroscopicCrossSection(G4double tkin, + G4double Z, + G4double A, + G4double cut); + + G4double ComputeDMicroscopicCrossSection(G4double tkin, + G4double Z, + G4double A, + G4double gammaEnergy); + + void ComputePartialSumSigma(const G4Material* material, G4double tkin, + G4double cut); + + const G4Element* SelectRandomAtom(const G4Material* material) const; + + void MakeSamplingTables(); + + + // hide assignment operator + G4MuBremsstrahlungModel & operator=(const G4MuBremsstrahlungModel &right); + G4MuBremsstrahlungModel(const G4MuBremsstrahlungModel&); + + G4double highKinEnergy; + G4double lowKinEnergy; + G4double minThreshold; + + // tables for sampling + G4int nzdat,ntdat,NBIN; + static G4double zdat[5],adat[5],tdat[8]; + G4double ya[1001], proba[5][8][1001]; + G4double cutFixed; + + const G4Material* oldMaterial; + G4std::vector partialSumSigma; + G4bool samplingTablesAreFilled; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4MuBremsstrahlungModel::MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle) +{ + return dynParticle->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4MuBremsstrahlungModel::MaxSecondaryEnergy( + const G4ParticleDefinition*, + G4double kineticEnergy) +{ + return kineticEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh new file mode 100644 index 0000000000..d32f8ea1ca --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuBremsstrahlungSTD +// +// Author: Laszlo Urban +// +// Creation date: 30.09.1997 +// +// Modifications: +// +// 10/02/00 modifications , new e.m. structure, L.Urban +// 10-08-01: new methods Store/Retrieve PhysicsTable (mma) +// 29-10-01 all static functions no more inlined (mma) +// 10-05-02 V.Ivanchenko update to new design +// +// Class Description: +// +// This class manages the Bremsstrahlung process for muons. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossSTD. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4MuBremsstrahlungSTD_h +#define G4MuBremsstrahlungSTD_h 1 + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "globals.hh" +#include "G4VEnergyLossSTD.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MuBremsstrahlungSTD : public G4VEnergyLossSTD + +{ +public: + + G4MuBremsstrahlungSTD(const G4String& processName = "MuBrems"); + + ~G4MuBremsstrahlungSTD(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); + +private: + + void InitialiseProcess(); + + + G4MuBremsstrahlungSTD & operator=(const G4MuBremsstrahlungSTD &right); + G4MuBremsstrahlungSTD(const G4MuBremsstrahlungSTD&); + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuBremsstrahlungSTD::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + return cut; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuBremsstrahlungSTD::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + return dynParticle->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh index 6d1dea8490..8e306b099b 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuIonisation.hh,v 1.13 2001/10/29 13:53:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // --------------- G4MuIonisation physics process ------------------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.icc b/source/processes/electromagnetic/muons/include/G4MuIonisation.icc index 1234efe297..2b8e88ae4d 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation.icc +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuIonisation.icc,v 1.4 2001/08/29 16:38:05 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT 4 class inlined methods file diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh b/source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh new file mode 100644 index 0000000000..5cecb3244c --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh @@ -0,0 +1,130 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuIonisationSTD +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1997 +// +// Modifications: +// +// corrected by L.Urban on 24/09/97 +// corrected by L.Urban on 13/01/98 +// bugs fixed by L.Urban on 02/02/99 +// 10/02/00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 19-09-01 come back to previous process name "hIoni" +// 29-10-01 all static functions no more inlined +// 10-05-02 V.Ivanchenko update to new design +// 09-12-02 V.Ivanchenko remove warning +// +// Class Description: +// +// This class manages the ionisation process for muons. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossSTD. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4MuIonisationSTD_h +#define G4MuIonisationSTD_h 1 + +#include "G4VEnergyLossSTD.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "globals.hh" + +class G4Material; + +class G4MuIonisationSTD : public G4VEnergyLossSTD +{ + +public: + + G4MuIonisationSTD(const G4String& name = "muIoni"); + + ~G4MuIonisationSTD(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); + +private: + + void InitialiseProcess(); + + // hide assignment operator + G4MuIonisationSTD & operator=(const G4MuIonisationSTD &right); + G4MuIonisationSTD(const G4MuIonisationSTD&); + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + G4double mass; + G4double ratio; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuIonisationSTD::MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, + G4double cut) +{ + G4double x = 0.5*cut/electron_mass_c2; + G4double y = electron_mass_c2/mass; + G4double g = x*y + sqrt((1. + x)*(1. + x*y*y)); + return mass*(g - 1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + G4double gamma= dynParticle->GetKineticEnergy()/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh index b42cb6fcc8..c434114e8c 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuPairProduction.hh,v 1.12 2001/10/29 13:53:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4MuPairProduction physics process ------------------ // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.icc b/source/processes/electromagnetic/muons/include/G4MuPairProduction.icc index 151b0ba2b8..2b7429b862 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction.icc +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuPairProduction.icc,v 1.8 2001/10/24 16:36:40 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4MuPairProduction physics process ------------------ // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh new file mode 100644 index 0000000000..8146a3928f --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh @@ -0,0 +1,164 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuPairProductionModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 18.05.2002 +// +// Modifications: + +// +// Class Description: +// +// Implementation of e+e- pair production by muons +// + +// ------------------------------------------------------------------- +// + +#ifndef G4MuPairProductionModel_h +#define G4MuPairProductionModel_h 1 + +#include "G4VEmModel.hh" + +class G4MuPairProductionModel : public G4VEmModel +{ + +public: + + G4MuPairProductionModel(const G4ParticleDefinition* p = 0); + + ~G4MuPairProductionModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + virtual G4double MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle); +protected: + + virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kineticEnergy); + +private: + + G4double ComputMuPairLoss(G4double Z, G4double tkin, G4double cut); + + G4double ComputeMicroscopicCrossSection(G4double tkin, + G4double Z, + G4double A, + G4double cut); + + G4double ComputeDMicroscopicCrossSection(G4double tkin, + G4double Z, + G4double pairEnergy); + + G4double ComputeDDMicroscopicCrossSection(G4double tkin, + G4double Z, + G4double pairEnergy, + G4double asymmetry); + + void ComputePartialSumSigma(const G4Material* material, G4double tkin, G4double cut); + + const G4Element* SelectRandomAtom(const G4Material* material) const; + + void MakeSamplingTables(); + + // hide assignment operator + G4MuPairProductionModel & operator=(const G4MuPairProductionModel &right); + G4MuPairProductionModel(const G4MuPairProductionModel&); + + G4double minPairEnergy; + G4double highKinEnergy; + G4double lowKinEnergy; + G4double minThreshold; + + // tables for sampling + G4int nzdat,ntdat,NBIN; + static G4double zdat[5],adat[5],tdat[8]; + G4double ya[1001],proba[5][8][1001]; + + const G4Material* oldMaterial; + G4std::vector partialSumSigma; + G4bool samplingTablesAreFilled; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4MuPairProductionModel::MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle) +{ + return dynParticle->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4MuPairProductionModel::MaxSecondaryEnergy( + const G4ParticleDefinition*, + G4double kineticEnergy) +{ + return kineticEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh b/source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh new file mode 100644 index 0000000000..a9237f3ab7 --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuPairProductionSTD +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1998 +// +// Modifications: + +// 10-02-00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 29-10-01 all static functions no more inlined (mma) +// 10-05-02 V.Ivanchenko update to new design +// +// Class Description: +// +// This class manages the PairProduction process for muons. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossSTD. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4MuPairProductionSTD_h +#define G4MuPairProductionSTD_h 1 + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "globals.hh" +#include "G4VEnergyLossSTD.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MuPairProductionSTD : public G4VEnergyLossSTD + +{ +public: + + G4MuPairProductionSTD(const G4String& processName = "MuPairProd"); + + ~G4MuPairProductionSTD(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp); + +private: + + void InitialiseProcess(); + + + G4MuPairProductionSTD & operator=(const G4MuPairProductionSTD &right); + G4MuPairProductionSTD(const G4MuPairProductionSTD&); + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuPairProductionSTD::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + return G4std::max(cut, 2.0*electron_mass_c2); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuPairProductionSTD::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + return dp->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh index 150cdeb573..a8dcd1b189 100644 --- a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh +++ b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMuEnergyLoss.hh,v 1.7 2001/10/29 13:53:18 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------------- // GEANT 4 class header file // diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc index 144d61aa80..19d658406a 100644 --- a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc +++ b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4VMuEnergyLoss.icc,v 1.3 2001/09/28 15:44:20 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // --------------------------------------------------------------- // GEANT 4 class inlined methods file // diff --git a/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc new file mode 100644 index 0000000000..f28da30842 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc @@ -0,0 +1,362 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MuBetheBlochModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 09.08.2002 +// +// Modifications: 04.12.2002 VI Fix problem of G4DynamicParticle constructor +// +// ------------------------------------------------------------------- +// + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MuBetheBlochModel.hh" +#include "Randomize.hh" +#include "G4Electron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuBetheBlochModel::G4MuBetheBlochModel(const G4ParticleDefinition* p) + : G4VEmModel(), + particle(0), + highKinEnergy(100.*TeV), + lowKinEnergy(2.0*MeV), + twoln10(2.0*log(10.0)), + bg2lim(0.0169), + taulim(8.4146e-3) +{ + if(p) SetParticle(p); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuBetheBlochModel::~G4MuBetheBlochModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuBetheBlochModel::SetParticle(const G4ParticleDefinition* p) +{ + particle = p; + mass = particle->GetPDGMass(); + G4double q = particle->GetPDGCharge()/eplus; + chargeSquare = q*q; + lowKinEnergy *= mass/proton_mass_c2; + ratio = electron_mass_c2/mass; + qc = mass/ratio; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuBetheBlochModel::HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + if(!particle) SetParticle(p); + return highKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuBetheBlochModel::LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + if(!particle) SetParticle(p); + return lowKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuBetheBlochModel::MinEnergyCut(const G4ParticleDefinition* p, + const G4Material* material) +{ + return material->GetIonisation()->GetMeanExcitationEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4MuBetheBlochModel::IsInCharge(const G4ParticleDefinition* p, + const G4Material*) +{ + return (p->GetPDGCharge() != 0.0 && p->GetPDGMass() > 10.*MeV + && p->GetPDGSpin() == 0.5); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuBetheBlochModel::ComputeDEDX(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy) +{ + if(!particle) SetParticle(p); + G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); + G4double tau = kineticEnergy/mass; + G4double x = 1.0; + if(cutEnergy < tmax) x = cutEnergy/tmax; + G4double gam = tau + 1.0; + G4double beta2 = 1. - 1./(gam*gam); + G4double bg2 = tau * (tau+2.0); + + G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + G4double eexc2 = eexc*eexc; + G4double taul = material->GetIonisation()->GetTaul(); + G4double cden = material->GetIonisation()->GetCdensity(); + G4double mden = material->GetIonisation()->GetMdensity(); + G4double aden = material->GetIonisation()->GetAdensity(); + G4double x0den = material->GetIonisation()->GetX0density(); + G4double x1den = material->GetIonisation()->GetX1density(); + G4double* shellCorrectionVector = + material->GetIonisation()->GetShellCorrectionVector(); + G4double eDensity = material->GetElectronDensity(); + + G4double dedx = log(2.0*electron_mass_c2*bg2*tmax*x/eexc2)-(1.0 + x)*beta2; + + G4double totEnergy = kineticEnergy + mass; + G4double del = 0.5*x*tmax/totEnergy; + dedx += del*del; + + // density correction + x = log(bg2)/twoln10; + if ( x >= x0den ) { + dedx -= twoln10*x - cden ; + if ( x < x1den ) dedx -= aden*pow((x1den-x),mden) ; + } + + // shell correction + G4double sh = 0.0; + x = 1.0; + + if ( bg2 > bg2lim ) { + for (G4int k=0; k<3; k++) { + x *= bg2 ; + sh += shellCorrectionVector[k]/x; + } + + } else { + for (G4int k=0; k<3; k++) { + x *= bg2lim ; + sh += shellCorrectionVector[k]/x; + } + sh *= log(tau/taul)/log(taulim/taul); + } + dedx -= sh; + + // now compute the total ionization loss + + if (dedx < 0.0) dedx = 0.0 ; + + // correction of R. Kokoulin // has been taken out *************** + // G4double apar = log(2.*(tmax/electron_mass_c2 + 1.0)); + // dedx += fine_structure_const*(log(2.*totEnergy/mass)-apar/3.)*apar*apar/twopi; + + + dedx *= twopi_mc2_rcl2*chargeSquare*eDensity/beta2; + + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuBetheBlochModel::CrossSection(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy) +{ + if(!particle) SetParticle(p); + G4double cross = 0.0; + G4double tmaxSecondary = MaxSecondaryEnergy(p, kineticEnergy); + G4double tmax = G4std::min(tmaxSecondary, maxEnergy); + if(cutEnergy < tmax) { + + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + for (G4int iel=0; ielGetZ(), + kineticEnergy, cutEnergy, tmax, tmaxSecondary); + + } + + } + // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax + // << " cross= " << cross << G4endl; + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuBetheBlochModel::CrossSectionPerAtom( + G4double Z, + G4double kineticEnergy, + G4double tmin, + G4double tmax, + G4double tmaxSecondary) +{ + + G4double cross = 0.; + + const G4double xgi[] = {0.06943,0.33001,0.66999,0.93057}; + const G4double wgi[] = {0.17393,0.32607,0.32607,0.17393}; + const G4double ak1 = 4.6; + const G4int k2 = 2; + + G4double aaa = log(tmin); + G4double bbb = log(tmax); + G4int kkk = int((bbb-aaa)/ak1)+k2; + G4double hhh = (bbb-aaa)/(float)kkk; + G4double step = exp(hhh); + G4double ymax = 1./tmax; + + + for (G4int k=0; k* G4MuBetheBlochModel::SampleSecondary( + const G4Material* material, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + G4double tmax = MaxSecondaryEnergy(dp); + G4double xmin = tmin/tmax; + G4double xmax = G4std::min(tmax, maxEnergy)/tmax; + if(xmin >= xmax) return 0; + + G4ThreeVector momentum = dp->GetMomentumDirection(); + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double totEnergy = kineticEnergy + mass; + G4double beta2 = 1. - mass*mass/(totEnergy*totEnergy); + G4double x = 0.5*tmax*tmax/(totEnergy*totEnergy); + + const G4double alphaprime = fine_structure_const/twopi; + G4double a0=log(2.*totEnergy/mass); + + G4double grej = (1.0 - beta2*xmin + xmax*xmax*x)*(1. + alphaprime*a0*a0); + + G4double z, f, a1, twoep; + + // sampling follows ... + do { + G4double q = G4UniformRand(); + z = xmin*xmax/(xmin*(1.0 - q) + xmax*q); + + twoep = 2.0*z*tmax; + a1= log(1.0 + twoep/electron_mass_c2); + + f = (1.0 - beta2 * z + z*z*x) + * (1. + alphaprime*a1*(a0 + log((2.0*totEnergy-twoep)/mass) - a1)); + + if(f > grej) { + G4cout << "G4MuBetheBlochModel::SampleSecondary Warning! " + << "Majorant " << grej << " < " + << f << " for x= " << z + << G4endl; + } + + } while( grej*G4UniformRand() >= f ); + + G4double deltaKinEnergy = z * tmax; + + G4double deltaMomentum = + sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2)); + G4double totMomentum = sqrt(totEnergy*totEnergy - mass*mass); + G4double cost = deltaKinEnergy * (totEnergy + electron_mass_c2) / + (deltaMomentum * totMomentum); + + + G4double sint = sqrt(1.0 - cost*cost); + + G4double phi = twopi * G4UniformRand() ; + + G4ThreeVector deltaDirection(sint*cos(phi),sint*sin(phi), cost) ; + deltaDirection.rotateUz(momentum); + + // create G4DynamicParticle object for delta ray + G4DynamicParticle* delta = new G4DynamicParticle(); + delta->SetDefinition(G4Electron::Electron()); + delta->SetKineticEnergy(deltaKinEnergy); + delta->SetMomentumDirection(deltaDirection); + + G4std::vector* vdp = new G4std::vector; + vdp->push_back(delta); + + return vdp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc index 6c81394b72..a567ede3ff 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuBremsstrahlung.cc,v 1.22 2001/11/09 13:52:31 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------- G4MuBremsstrahlung physics process --------------------------- diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc new file mode 100644 index 0000000000..c4e6d447cf --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc @@ -0,0 +1,578 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MuBremsstrahlungModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 24.06.2002 +// +// Modifications: 04.12.02 (VI) Change G4DynamicParticle constructor in PostStepDoIt +// +// Class Description: +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MuBremsstrahlungModel.hh" +#include "G4Gamma.hh" +#include "G4MuonMinus.hh" +#include "G4MuonPlus.hh" +#include "Randomize.hh" +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4ElementVector.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// static members +// +G4double G4MuBremsstrahlungModel::zdat[]={1.,4.,13.,29.,92.}; +G4double G4MuBremsstrahlungModel::adat[]={1.01,9.01,26.98,63.55,238.03}; +G4double G4MuBremsstrahlungModel::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(const G4ParticleDefinition* p) + : G4VEmModel(), + highKinEnergy(100.*TeV), + lowKinEnergy(1.0*keV), + minThreshold(1.0*keV), + nzdat(5), + ntdat(8), + NBIN(1000), + cutFixed(0.98*keV), + oldMaterial(0), + samplingTablesAreFilled(false) +{ + partialSumSigma.clear(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuBremsstrahlungModel::~G4MuBremsstrahlungModel() +{ + size_t n = partialSumSigma.size(); + if(n > 0) { + for(size_t i=0; iGetElementVector(); + const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); + + G4double dedx = 0.0; + + // loop for elements in the material + for (size_t i=0; iGetNumberOfElements(); i++) { + + G4double Z = (*theElementVector)[i]->GetZ(); + G4double A = (*theElementVector)[i]->GetA()/(g/mole) ; + + G4double loss = ComputMuBremLoss(Z, A, kineticEnergy, cut); + + dedx += loss*theAtomicNumDensityVector[i]; + } + if(dedx < 0.) dedx = 0.; + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuBremsstrahlungModel::ComputMuBremLoss(G4double Z, G4double A, + G4double tkin, G4double cut) +{ + G4double totalEnergy = (G4MuonPlus::MuonPlus())->GetPDGMass() + tkin; + G4double ak1 = 0.05; + G4int k2=5; + G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; + G4double wgi[]={0.08566,0.18038,0.23396,0.23396,0.18038,0.08566}; + G4double loss = 0.; + + G4double vcut = cut/totalEnergy; + G4double vmax = tkin/totalEnergy; + + G4double aaa = 0.; + G4double bbb = vcut; + if(vcut>vmax) bbb=vmax ; + G4int kkk = (G4int)((bbb-aaa)/ak1)+k2 ; + G4double hhh=(bbb-aaa)/float(kkk) ; + + G4double aa = aaa; + for(G4int l=0; lGetPDGMass() + tkin; + G4double ak1 = 2.3; + G4int k2 = 4; + G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; + G4double wgi[]={0.08566,0.18038,0.23396,0.23396,0.18038,0.08566}; + G4double cross = 0.; + + if(cut >= tkin) return cross; + + G4double vcut = cut/totalEnergy; + G4double vmax = tkin/totalEnergy; + + G4double aaa = log(vcut); + G4double bbb = log(vmax); + G4int kkk = (G4int)((bbb-aaa)/ak1)+k2 ; + G4double hhh = (bbb-aaa)/float(kkk); + + G4double aa = aaa; + + for(G4int l=0; lGetPDGMass(); + + static const G4double sqrte=sqrt(exp(1.)) ; + static const G4double bh=202.4,bh1=446.,btf=183.,btf1=1429. ; + static const G4double rmass=particleMass/electron_mass_c2 ; + static const G4double cc=classic_electr_radius/rmass ; + static const G4double coeff= 16.*fine_structure_const*cc*cc/3. ; + + G4double dxsection = 0.; + + if( gammaEnergy > tkin) return dxsection ; + + G4double E = tkin + particleMass ; + G4double v = gammaEnergy/E ; + G4double delta = 0.5*particleMass*particleMass*v/(E-gammaEnergy) ; + G4double rab0=delta*sqrte ; + + G4double z13 = exp(-log(Z)/3.) ; + G4double dn = 1.54*exp(0.27*log(A)) ; + + G4double b,b1,dnstar ; + + if(Z<1.5) + { + b=bh; + b1=bh1; + dnstar=dn ; + } + else + { + b=btf; + b1=btf1; + dnstar = exp((1.-1./Z)*log(dn)) ; + } + + // nucleus contribution logarithm + G4double rab1=b*z13; + G4double fn=log(rab1/(dnstar*(electron_mass_c2+rab0*rab1))* + (particleMass+delta*(dnstar*sqrte-2.))) ; + if(fn <0.) fn = 0. ; + // electron contribution logarithm + G4double epmax1=E/(1.+0.5*particleMass*rmass/E) ; + G4double fe=0.; + if(gammaEnergy= tmax) return cross; + if(!samplingTablesAreFilled) MakeSamplingTables(); + + const G4ElementVector* theElementVector = material->GetElementVector() ; + const G4double* theAtomNumDensityVector = material->GetAtomicNumDensityVector(); + + if(material != oldMaterial) { + oldMaterial = material; + G4double fixedEnergy = sqrt(lowKinEnergy*highKinEnergy); + ComputePartialSumSigma(material, fixedEnergy, cutEnergy); + } + + for (size_t i=0; iGetNumberOfElements(); i++) { + + G4double Z = (*theElementVector)[i]->GetZ(); + G4double A = (*theElementVector)[i]->GetA()/(g/mole) ; + + G4double cr = ComputeMicroscopicCrossSection(kineticEnergy, Z, A, cut); + + if(tmax < kineticEnergy) { + cr -= ComputeMicroscopicCrossSection(kineticEnergy, Z, A, tmax); + } + cross += theAtomNumDensityVector[i] * cr; + } + + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuBremsstrahlungModel::ComputePartialSumSigma(const G4Material* material, + G4double kineticEnergy, + G4double cut) + +// Build the table of cross section per element. The table is built for MATERIALS. +// This table is used by DoIt to select randomly an element in the material. +{ + size_t index = material->GetIndex(); + G4int nElements = material->GetNumberOfElements(); + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* theAtomNumDensityVector = material->GetAtomicNumDensityVector(); + + G4DataVector* dv; + + if (index >= partialSumSigma.size()) { + + dv = new G4DataVector(); + partialSumSigma.push_back(dv); + + } else { + + dv = partialSumSigma[index]; + dv->clear(); + if(0 == index) samplingTablesAreFilled = false; + } + + G4double cross = 0.0; + + for (G4int i=0; iGetZ(); + G4double A = (*theElementVector)[i]->GetA()/(g/mole) ; + cross += theAtomNumDensityVector[i] * ComputeMicroscopicCrossSection(kineticEnergy, + Z, A, cut); + dv->push_back(cross); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuBremsstrahlungModel::MakeSamplingTables() +{ + + G4double AtomicNumber,AtomicWeight,KineticEnergy, + TotalEnergy,Maxep ; + G4double particleMass = (G4MuonPlus::MuonPlus())->GetPDGMass(); + + for (G4int iz=0; iz 0.) + { + for(G4int ib=0; ib<=NBIN; ib++) + { + proba[iz][it][ib] /= CrossSection ; + } + } + } + } + samplingTablesAreFilled = true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4std::vector* G4MuBremsstrahlungModel::SampleSecondary( + const G4Material* material, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + // check against insufficient energy + if(tmin >= maxEnergy) return 0; + + static G4double ysmall = -100. ; + static G4double ytablelow = -5. ; + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4ParticleMomentum ParticleDirection = dp->GetMomentumDirection(); + + + // select randomly one element constituing the material + const G4Element* anElement = SelectRandomAtom(material); + + G4double totalEnergy = kineticEnergy + dp->GetMass(); + + G4double dy = 5./G4float(NBIN); + + // This sampling should be checked!!! VI + G4double ymin=log(log(tmin/cutFixed)/log(maxEnergy/cutFixed)); + + if(ymin < ysmall) return 0; + + // sampling using tables + + G4double v,x,y ; + G4int iy; + // select sampling table ; + G4double lnZ = log(anElement->GetZ()) ; + G4double delmin = 1.e10 ; + G4double del ; + G4int izz = 0; + G4int itt = 0; + G4int NBINminus1; + NBINminus1 = NBIN-1 ; + for (G4int iz=0; iz (proba[izz][itt][iy]-proba[izz][itt][iymin])/delmin) + &&(iy < NBINminus1)) ; + + //sampling is Done uniformly in y in the bin + y = ya[iy] + G4UniformRand() * ( ya[iy+1] - ya[iy] ) ; + } + + x = exp(y) ; + + v = cutFixed*exp(x*log(maxEnergy/cutFixed)) ; + if( v <= 0.) return 0; + + // create G4DynamicParticle object for the Gamma + G4double GammaEnergy = v; + + // angles of the emitted gamma. ( Z - axis along the parent particle) + // Teta = electron_mass_c2/TotalEnergy for the moment ..... + + G4double Teta = electron_mass_c2/totalEnergy ; + G4double Phi = twopi * G4UniformRand() ; + G4double dirx = sin(Teta)*cos(Phi) , diry = sin(Teta)*sin(Phi) , + dirz = cos(Teta) ; + + G4ThreeVector GammaDirection ( dirx, diry, dirz); + GammaDirection.rotateUz(ParticleDirection); + + G4DynamicParticle* aGamma = new G4DynamicParticle(); + aGamma->SetDefinition(G4Gamma::Gamma()); + aGamma->SetKineticEnergy(GammaEnergy); + aGamma->SetMomentumDirection(GammaDirection); + + G4std::vector* vdp = new G4std::vector; + vdp->push_back(aGamma); + + return vdp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4Element* G4MuBremsstrahlungModel::SelectRandomAtom( + const G4Material* material) const +{ + // select randomly 1 element within the material + + G4int nElements = material->GetNumberOfElements(); + const G4ElementVector* theElementVector = material->GetElementVector(); + if(1 == nElements) return (*theElementVector)[0]; + else if(1 > nElements) return 0; + + G4DataVector* dv = partialSumSigma[material->GetIndex()]; + G4double rval = G4UniformRand()*((*dv)[nElements-1]); + for (G4int i=0; iSetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em, 0); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4ParticleDefinition* G4MuBremsstrahlungSTD::DefineBaseParticle( + const G4ParticleDefinition* p) +{ + if(!theParticle) theParticle = p; + return theBaseParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuBremsstrahlungSTD::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + + G4cout << " Parametrised model " + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc index 8ff2025bca..d0a66ad837 100644 --- a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MuIonisation.cc,v 1.24 2001/11/09 13:52:32 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MuIonisation.cc,v 1.26 2002/12/04 15:45:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // --------------- G4MuIonisation physics process ------------------------------ // by Laszlo Urban, September 1997 @@ -40,6 +40,7 @@ // 29-10-01 all static functions no more inlined (mma) // 07-11-01 correction(Tmax+xsection computation) L.Urban // 08-11-01 particleMass becomes a local variable (mma) +// 04-12-02 fix misprint in majorant in PostStep (VI) // ----------------------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -477,7 +478,7 @@ G4VParticleChange* G4MuIonisation::PostStepDoIt(const G4Track& trackData, G4double x,twoep,a1,grej; const G4double alphaprime = fine_structure_const/twopi; G4double a0=log(2.*TotalEnergy/particleMass); - G4double grejc=(1.-xc*(betasquare*xc-xc*te2))*(1.+ alphaprime*a0*a0); + G4double grejc=(1.-xc*betasquare+te2)*(1.+ alphaprime*a0*a0); do { x=xc/(1.-(1.-xc)*G4UniformRand()); twoep = 2.*x*MaxKineticEnergyTransfer; a1 = log(1.+twoep/electron_mass_c2); diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc b/source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc new file mode 100644 index 0000000000..7808d74058 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MuIonisationSTD +// +// Author: Laszlo Urban +// +// Creation date: 30.09.1997 +// +// Modifications: +// +// 08-04-98 remove 'tracking cut' of the ionizing particle (mma) +// 26-10-98 new stuff from R.Kokoulin + cleanup , L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 23-03-01 R.Kokoulin's correction is commented out, L.Urban +// 29-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 28-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 26-09-01 completion of RetrievePhysicsTable (mma) +// 29-10-01 all static functions no more inlined (mma) +// 07-11-01 correction(Tmax+xsection computation) L.Urban +// 08-11-01 particleMass becomes a local variable (mma) +// 10-05-02 V.Ivanchenko update to new design +// 04-12-02 V.Ivanchenko the low energy limit for Kokoulin model to 10 GeV +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MuIonisationSTD.hh" +#include "G4Electron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4BraggModel.hh" +#include "G4BetheBlochModel.hh" +#include "G4MuBetheBlochModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuIonisationSTD::G4MuIonisationSTD(const G4String& name) + : G4VEnergyLossSTD(name), + theParticle(0), + theBaseParticle(0) +{ + InitialiseProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuIonisationSTD::~G4MuIonisationSTD() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuIonisationSTD::InitialiseProcess() +{ + SetSecondaryParticle(G4Electron::Electron()); + SetSubCutoffIsDesired(true); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4BraggModel(); + em->SetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 2.*MeV); + AddEmModel(em, 0); + G4VEmModel* em1 = new G4BetheBlochModel(); + em1->SetLowEnergyLimit(0, 2.*MeV); + em1->SetHighEnergyLimit(0, 10.0*GeV); + AddEmModel(em1, 1); + G4VEmModel* em2 = new G4MuBetheBlochModel(); + em2->SetLowEnergyLimit(0, 10.0*GeV); + em2->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em2, 2); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); + + mass = (G4MuonPlus::MuonPlus())->GetPDGMass(); + ratio = electron_mass_c2/mass; + SetVerboseLevel(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4ParticleDefinition* G4MuIonisationSTD::DefineBaseParticle( + const G4ParticleDefinition* p) +{ + if(!theParticle) theParticle = p; + return theBaseParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuIonisationSTD::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + + G4cout << " Bether-Bloch model for E > 0.2 MeV " + << "parametrisation of Bragg peak below." + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc index dc08768fea..13d9cbe5cb 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuPairProduction.cc,v 1.26 2001/11/09 13:52:32 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4MuPairProduction physics process --------------------------- // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc new file mode 100644 index 0000000000..c3bf100de6 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc @@ -0,0 +1,775 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MuPairProductionModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 24.06.2002 +// +// Modifications: 04.12.2002 Change G4DynamicParticle constructor in PostStep (VI) +// +// Class Description: +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MuPairProductionModel.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonMinus.hh" +#include "G4MuonPlus.hh" +#include "Randomize.hh" +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4ElementVector.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// static members +// +G4double G4MuPairProductionModel::zdat[]={1.,4.,13.,29.,92.}; +G4double G4MuPairProductionModel::adat[]={1.01,9.01,26.98,63.55,238.03}; +G4double G4MuPairProductionModel::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition* p) + : G4VEmModel(), + minPairEnergy(4.*electron_mass_c2), + highKinEnergy(1000000.*TeV), + lowKinEnergy(minPairEnergy), + minThreshold(minPairEnergy), + nzdat(5), + ntdat(8), + NBIN(1000), + oldMaterial(0), + samplingTablesAreFilled(false) +{ + partialSumSigma.clear(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MuPairProductionModel::~G4MuPairProductionModel() +{ + size_t n = partialSumSigma.size(); + if(n > 0) { + for(size_t i=0; iGetEnergyThreshold(material); + G4double pCut = (G4Positron::Positron())->GetEnergyThreshold(material); + G4double x = minPairEnergy; + if(eCut < highKinEnergy && pCut < highKinEnergy) { + x += eCut + pCut; + } else { + x = 0.5*highKinEnergy; + } + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4MuPairProductionModel::IsInCharge(const G4ParticleDefinition* p, + const G4Material*) +{ + return (p == G4MuonMinus::MuonMinus() || p == G4MuonPlus::MuonPlus()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuPairProductionModel::ComputeDEDX(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy) +{ + G4double dedx = 0.0; + if(!samplingTablesAreFilled) { + minThreshold = MinEnergyCut(p, material); + MakeSamplingTables(); + } + if(kineticEnergy < minPairEnergy) return dedx; + + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); + + // loop for elements in the material + for (size_t i=0; iGetNumberOfElements(); i++) { + + G4double Z = (*theElementVector)[i]->GetZ(); + + G4double loss = ComputMuPairLoss(Z, kineticEnergy, cutEnergy); + + dedx += loss*theAtomicNumDensityVector[i]; + } + if(dedx < 0.) dedx = 0.; + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MuPairProductionModel::ComputMuPairLoss(G4double Z, + G4double tkin, G4double cutEnergy) +{ + static const + G4double xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801}; + static const + G4double wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506}; + static const G4double ak1=6.9; + static const G4double ak2=1.0; + static const G4double sqrte = sqrt(exp(1.)); + static const G4double aaa = log(minPairEnergy); + G4double z13 = pow(Z,0.333333333); + + G4double loss = 0.0 ; + + if (Z < 1. || cutEnergy < minPairEnergy) return loss; + + G4double particleMass = (G4MuonPlus::MuonPlus())->GetPDGMass(); + G4double tmax = tkin + particleMass*(1.-0.75*sqrte*z13); + + // G4cout << "###DEDX tkin= " << tkin << " tmax= " << tmax << " tmin= " << minPairEnergy << G4endl; + + if(tmax < minPairEnergy) tmax = minPairEnergy; + + G4double cut = cutEnergy; + if(cut >= tmax) cut = tmax; + if(cut <= minPairEnergy) return loss; + + // calculate the rectricted loss + // numerical integration in log(PairEnergy) + G4double bbb = log(cut) ; + G4int kkk = (G4int)((bbb-aaa)/ak1+ak2); + if(kkk > 8) kkk = 8; + G4double hhh = (bbb-aaa)/(G4double)kkk ; + G4double x = aaa; + + // G4cout << "###DEDX tkin= " << tkin << " cut= " << cut << " kkk= " << kkk << G4endl; + + for (G4int l=0 ; lSetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em, 0); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4ParticleDefinition* G4MuPairProductionSTD::DefineBaseParticle( + const G4ParticleDefinition* p) +{ + if(!theParticle) theParticle = p; + return theBaseParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuPairProductionSTD::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + + G4cout << " Parametrised model " + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc index c382b73546..e596a4868d 100644 --- a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc +++ b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMuEnergyLoss.cc,v 1.22 2002/05/29 12:26:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // -------------------------------------------------------------- // GEANT 4 class implementation file // diff --git a/source/processes/electromagnetic/standard/History b/source/processes/electromagnetic/standard/History index 5162d8a6cf..c62edaa764 100644 --- a/source/processes/electromagnetic/standard/History +++ b/source/processes/electromagnetic/standard/History @@ -1,4 +1,4 @@ -$Id: History,v 1.60 2002/06/10 16:10:32 maire Exp $ +$Id: History,v 1.70 2002/12/04 14:58:27 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,10 +17,41 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -10 june 02: mma (stand-V04-00-13) +04 dec 02: V.Ivant (stand-V04-01-07) +- fix d-electron spectra for STD + +20 nov 02: G.Cosmo (stand-V04-01-06) +- G4PAIonisation[.hh.icc.cc]: patched access to public static data. + Added static accessor to be used in the kernel for inline functions + to allow porting on Windows DLLs. + +12 nov 02: V.Ivant (stand-V04-01-05) +- eBremsstrahlung::BuiltLossTable: fix of division by 0 (G4int nn) + +28 oct 02: V.Ivant (stand-V04-01-04) +- fix compilation warnings for STD classes + +17 oct 02: V.Ivant (stand-V04-01-03) +- few changes in all xSTD processes in connection with LossTableBuilder + +15 oct 02: V.Ivant (stand-V04-01-02) +- redesign for a Model approach: files processNameSTD and processNameModel + +14 oct 02: mma (stand-V04-01-01) +- G4PAIxSection and G4PAIonisation : put back on the HEAD the versions as they + are in Geant4-04-01-ref-03, namely: + G4PAIxSection hh:1.7 cc:1.10 + G4PAIonisation hh:1.12 icc:1.10 cc:1.23 + + G4PAIxSectionTest.cc:1.7 G4PAIdNdxTest.cc:1.1 GNUmakefile:1.1 + +07 aug 02: mma (stand-V04-01-00) +- GammaConversionToMuons::DoIt : missprint in OR conditions | instead of || + +10 jun 02: mma (stand-V04-00-13) - bug fixed for stopping hadrons, V.Ivanchenko -04 june 02: mma (stand-V04-00-12) +04 jun 02: mma (stand-V04-00-12) - suppress the G4PAIonisation stuff which crash in TestEm8 (back to stand-V04-00-10) @@ -73,7 +104,6 @@ committal in the CVS repository ! - gammaConversion::ComputeCrossSection(): correction of extrapolation below EnergyLimit ->>>>>>> 1.49 10 jan 02: mma - photoEffect: rearrangement in the inlined functions diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh index 56c88844d8..5e7627466f 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering.hh,v 1.9 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //------------------ G4ComptonScattering physics process ----------------------- // by Michel Maire, April 1996 diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc b/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc index 32da5194f3..387231f7bd 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering.icc,v 1.8 2001/09/21 09:50:53 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //------------------ G4ComptonScattering physics process ----------------------- // by Michel Maire, April 1996 diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh index f7b8fe64e1..7df39ad5d2 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion.hh,v 1.10 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //------------------ G4GammaConversion physics process ------------------------- // by Michel Maire, 24 May 1996 diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversion.icc b/source/processes/electromagnetic/standard/include/G4GammaConversion.icc index ec5b3c5766..36c1e71259 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion.icc +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion.icc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion.icc,v 1.7 2001/09/17 17:07:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------ G4GammaConversion physics process ------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh index ddcd058ba2..a6cc3701c0 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.hh,v 1.2 2002/05/06 09:32:41 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc index 1b04f51386..7703e19f92 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc +++ b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.icc,v 1.1 2002/04/19 14:44:33 hbu Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh new file mode 100644 index 0000000000..a9a9576bb6 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh @@ -0,0 +1,139 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4MollerBhabhaModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 07.01.2002 +// +// Modifications: + +// +// Class Description: +// +// Implementation of energy loss process and delta-electrons production +// of electrons and positrons + +// ------------------------------------------------------------------- +// + +#ifndef G4MollerBhabhaModel_h +#define G4MollerBhabhaModel_h 1 + +#include "G4VEmModel.hh" + +class G4MollerBhabhaModel : public G4VEmModel +{ + +public: + + G4MollerBhabhaModel(const G4ParticleDefinition* p = 0); + + ~G4MollerBhabhaModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + G4double MaxSecondaryEnergy(const G4DynamicParticle*); + +protected: + + G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy); + +private: + + void SetParticle(const G4ParticleDefinition* p); + + // hide assignment operator + G4MollerBhabhaModel & operator=(const G4MollerBhabhaModel &right); + G4MollerBhabhaModel(const G4MollerBhabhaModel&); + + const G4ParticleDefinition* particle; + G4ParticleDefinition* theElectron; + G4double highKinEnergy; + G4double lowKinEnergy; + G4double twoln10; + G4double lowLimit; + G4bool isElectron; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MollerBhabhaModel::MaxSecondaryEnergy( + const G4ParticleDefinition* p, + G4double kinEnergy) +{ + G4double tmax = kinEnergy; + if(isElectron) tmax *= 0.5; + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MollerBhabhaModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + G4double tmax = dp->GetKineticEnergy(); + if(isElectron) tmax *= 0.5; + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/standard/include/G4PAIonisation.hh b/source/processes/electromagnetic/standard/include/G4PAIonisation.hh index 617011edbc..dde77f9255 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIonisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PAIonisation.hh,v 1.12 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PAIonisation.hh,v 1.16 2002/11/20 15:41:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -144,7 +144,10 @@ class G4PAIonisation : public G4VPAIenergyLoss // Compute Sandia photoabsorption coefficient matrix void ComputeSandiaPhotoAbsCof() ; - + + private: + + G4PhysicsLogVector* GetProtonEnergyVector(); private: @@ -192,11 +195,3 @@ class G4PAIonisation : public G4VPAIenergyLoss #include "G4PAIonisation.icc" #endif - - - - - - - - diff --git a/source/processes/electromagnetic/standard/include/G4PAIonisation.icc b/source/processes/electromagnetic/standard/include/G4PAIonisation.icc index 8207194565..b91aeef40e 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIonisation.icc +++ b/source/processes/electromagnetic/standard/include/G4PAIonisation.icc @@ -124,7 +124,7 @@ GetMeanFreePath( const G4Track& trackData, for(iTkin=0;iTkinGetLowEdgeEnergy(iTkin)) // <= ? + if(scaledE < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) // <= ? { break ; } @@ -143,8 +143,8 @@ GetMeanFreePath( const G4Track& trackData, } else { - E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; - E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; + E1 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin - 1) ; + E2 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin) ; W = 1.0/(E2 - E1) ; W1 = (E2 - scaledE)*W ; W2 = (scaledE - E1)*W ; @@ -173,7 +173,7 @@ GetFreePath( G4double scaledTkin, G4double charge2 ) for( iTkin = 0 ; iTkin < G4PAIonisation::GetBinNumber() ; iTkin++ ) { - if(scaledTkin < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break ; + if(scaledTkin < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) break ; } iPlace = iTkin - 1 ; @@ -189,8 +189,8 @@ GetFreePath( G4double scaledTkin, G4double charge2 ) } else { - E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; - E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; + E1 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin - 1) ; + E2 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin) ; W = 1.0/(E2 - E1) ; W1 = (E2 - scaledTkin)*W ; W2 = (scaledTkin - E1)*W ; @@ -219,7 +219,7 @@ GetdEdx( G4double scaledTkin, G4double charge2 ) for( iTkin = 0 ; iTkin < G4PAIonisation::GetBinNumber() ; iTkin++ ) { - if(scaledTkin < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break ; + if(scaledTkin < GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin)) break ; } iPlace = iTkin - 1 ; @@ -235,8 +235,8 @@ GetdEdx( G4double scaledTkin, G4double charge2 ) } else { - E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; - E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; + E1 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin - 1) ; + E2 = GetProtonEnergyVector()->GetLowEdgeEnergy(iTkin) ; W = 1.0/(E2 - E1) ; W1 = (E2 - scaledTkin)*W ; W2 = (scaledTkin - E1)*W ; diff --git a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh index eeffb22527..343b3116ec 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PAIxSection.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PAIxSection.hh,v 1.9 2002/10/14 17:30:10 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4PAIxSection.hh -- header file diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh index 7faf5f7b84..feec2cb023 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect.hh,v 1.15 2002/05/02 11:37:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc index 488566de00..95f5a8454c 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect.icc,v 1.10 2002/04/18 10:12:01 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh index cef1918541..1aa25eb6e4 100644 --- a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolarizedComptonScattering.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // --------- G4PolarizedComptonScattering physics process ---------------------- // by Vicente Lara, March 1998 diff --git a/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh b/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh index 477147c779..bdd6905dfd 100644 --- a/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh +++ b/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh @@ -22,7 +22,7 @@ // // // $Id: G4SynchrotronRadiation.hh,v 1.7 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh index 8a0835417f..ca2f3ba474 100644 --- a/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPAIenergyLoss.hh,v 1.8 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh index c0fc5e8e91..9fcf0b4fc8 100644 --- a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VeEnergyLoss.hh,v 1.11 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc index 5e9f20b18d..42bbe413da 100644 --- a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc +++ b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4VeEnergyLoss.icc,v 1.7 2001/11/09 13:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh index d3eb688edd..4652f43c73 100644 --- a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VhEnergyLoss.hh,v 1.15 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------- G4VhEnergyLoss physics process -------------------------------- // by Laszlo Urban, 30 May 1997 diff --git a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc index c3ee7792a3..811a439530 100644 --- a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc +++ b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4VhEnergyLoss.icc,v 1.5 2002/02/26 18:11:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ---------------- G4VhEnergyLoss physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh index 33087a8379..d0d8c1959c 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh @@ -22,7 +22,7 @@ // // // $Id: G4eBremsstrahlung.hh,v 1.14 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------ G4eBremsstrahlung physics process ------ diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc index a3e6395761..6016f27fc2 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc @@ -22,7 +22,7 @@ // // // $Id: G4eBremsstrahlung.icc,v 1.6 2001/08/09 17:24:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------ G4eBremsstrahlung physics process --------- // by Michel Maire, 27 July 1996 diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh new file mode 100644 index 0000000000..28977060a4 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh @@ -0,0 +1,201 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4eBremsstrahlungModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 07.01.2002 +// +// Modifications: + +// +// Class Description: +// +// Implementation of energy loss for gamma emission by electrons and +// positrons + +// ------------------------------------------------------------------- +// + +#ifndef G4eBremsstrahlungModel_h +#define G4eBremsstrahlungModel_h 1 + +#include "G4VEmModel.hh" + +class G4eBremsstrahlungModel : public G4VEmModel +{ + +public: + + G4eBremsstrahlungModel(const G4ParticleDefinition* p = 0); + + ~G4eBremsstrahlungModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + void SetLPMflag(G4bool val) {theLPMflag = val;}; + G4bool LPMflag() const {return theLPMflag;}; + + virtual G4double MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle); +protected: + + virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kineticEnergy); + +private: + + void SetParticle(const G4ParticleDefinition* p); + + G4double ComputeBremLoss(G4double Z, G4double tkin, G4double cut, G4double x); + + G4double PositronCorrFactorLoss(G4double Z, G4double tkin, G4double cut); + + G4double PositronCorrFactorSigma(G4double Z, G4double tkin, G4double cut); + + G4double CrossSectionPerAtom(G4double tkin, G4double Z, G4double cut); + + void ComputePartialSumSigma(const G4Material* material, G4double tkin, + G4double cut); + + const G4Element* SelectRandomAtom(const G4Material* material) const; + + G4double SupressionFunction(const G4Material* material, G4double tkin, + G4double gammaEnergy); + + G4double ScreenFunction1(G4double ScreenVariable); + + G4double ScreenFunction2(G4double ScreenVariable); + + // hide assignment operator + G4eBremsstrahlungModel & operator=(const G4eBremsstrahlungModel &right); + G4eBremsstrahlungModel(const G4eBremsstrahlungModel&); + + const G4ParticleDefinition* particle; + G4double highKinEnergy; + G4double lowKinEnergy; + G4double minThreshold; + G4double probsup; + G4double MigdalConstant; + G4double LPMconstant; + G4bool isElectron; + G4bool theLPMflag; + const G4Material* oldMaterial; + G4std::vector partialSumSigma; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4eBremsstrahlungModel::ScreenFunction1(G4double ScreenVariable) + +// compute the value of the screening function 3*PHI1 - PHI2 + +{ + G4double screenVal; + + if (ScreenVariable > 1.) + screenVal = 42.24 - 8.368*log(ScreenVariable+0.952); + else + screenVal = 42.392 - ScreenVariable* (7.796 - 1.961*ScreenVariable); + + return screenVal; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4eBremsstrahlungModel::ScreenFunction2(G4double ScreenVariable) + +// compute the value of the screening function 1.5*PHI1 - 0.5*PHI2 + +{ + G4double screenVal; + + if (ScreenVariable > 1.) + screenVal = 42.24 - 8.368*log(ScreenVariable+0.952); + else + screenVal = 41.734 - ScreenVariable* (6.484 - 1.250*ScreenVariable); + + return screenVal; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4eBremsstrahlungModel::MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle) +{ + return dynParticle->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline +G4double G4eBremsstrahlungModel::MaxSecondaryEnergy( + const G4ParticleDefinition*, + G4double kineticEnergy) +{ + return kineticEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh new file mode 100644 index 0000000000..d549a10fa3 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4eBremsstrahlungSTD +// +// Author: Laszlo Urban +// +// Creation date: 24.06.1996 +// +// Modifications: +// +// 01-10-96 new type G4OrderedTable; ComputePartialSumSigma() +// 20-03-97 new energy loss+ionisation+brems scheme, L.Urban +// 01-09-98 new method PrintInfo() +// 10-02-00 modifications , new e.m. structure, L.Urban +// 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 19-09-01 come back to previous process name "eBrem" +// 29-10-01 all static functions no more inlined (mma) +// 07-01-02 new design of em processes (V.Ivanchenko) +// +// +// Class Description: +// +// This class manages the bremsstrahlung for e-/e+ +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4eBremsstrahlungSTD_h +#define G4eBremsstrahlungSTD_h 1 + +#include "G4VEnergyLossSTD.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +class G4Material; + +class G4eBremsstrahlungSTD : public G4VEnergyLossSTD +{ + +public: + + G4eBremsstrahlungSTD(const G4String& name = "eBrem"); + + ~G4eBremsstrahlungSTD(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (&p == G4Electron::Electron() || &p == G4Positron::Positron());}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, G4double cut) + {return cut;}; + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) + {return dynParticle->GetKineticEnergy();}; + +private: + + void InitialiseProcess(); + + // hide assignment operator + G4eBremsstrahlungSTD & operator=(const G4eBremsstrahlungSTD &right); + G4eBremsstrahlungSTD(const G4eBremsstrahlungSTD&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.hh b/source/processes/electromagnetic/standard/include/G4eIonisation.hh index a2e7d1e4af..d096e3b8d6 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4eIonisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4eIonisation.hh,v 1.16 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4eIonisation physics process -------------------------------- // by Laszlo Urban, 20 March 1997 diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.icc b/source/processes/electromagnetic/standard/include/G4eIonisation.icc index ed5c4684e3..9e3f6c526d 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.icc +++ b/source/processes/electromagnetic/standard/include/G4eIonisation.icc @@ -22,7 +22,7 @@ // // // $Id: G4eIonisation.icc,v 1.10 2001/11/09 13:56:28 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //----------------- G4eIonisation physics process ------------------------------ diff --git a/source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh b/source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh new file mode 100644 index 0000000000..a1e97e332a --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh @@ -0,0 +1,130 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4eIonisationSTD +// +// Author: Laszlo Urban +// +// Creation date: 20.03.1997 +// +// Modifications: +// +// 10-02-00 modifications , new e.m. structure, L.Urban +// 03-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 13-08-01 new function ComputeRestrictedMeandEdx() (mma) +// 19-09-01 come back to previous ProcessName "eIoni" +// 29-10-01 all static functions no more inlined (mma) +// 07-01-02 new design of em processes (V.Ivanchenko) +// +// +// Class Description: +// +// This class manages the ionisation process for e-/e+ +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4eIonisationSTD_h +#define G4eIonisationSTD_h 1 + +#include "G4VEnergyLossSTD.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +class G4Material; +class G4ParticleDefinition; + +class G4eIonisationSTD : public G4VEnergyLossSTD +{ + +public: + + G4eIonisationSTD(const G4String& name = "eIoni"); + + ~G4eIonisationSTD(); + + G4bool IsApplicable(const G4ParticleDefinition& p); + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, G4double cut); + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp); + +private: + + void InitialiseProcess(); + + // hide assignment operator + G4eIonisationSTD & operator=(const G4eIonisationSTD &right); + G4eIonisationSTD(const G4eIonisationSTD&); + + const G4ParticleDefinition* theElectron; + G4bool isElectron; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4eIonisationSTD::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + G4double x = cut; + if(isElectron) x += cut; + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4bool G4eIonisationSTD::IsApplicable(const G4ParticleDefinition& p) +{ + return (&p == G4Electron::Electron() || &p == G4Positron::Positron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4eIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + G4double tmax = dp->GetKineticEnergy(); + if(isElectron) tmax *= 0.5; + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh index 2bb6658ee9..d3aef3b330 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation.hh,v 1.10 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc index 605e5715f3..c8675a7e64 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation.icc,v 1.8 2001/09/17 17:07:11 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.hh b/source/processes/electromagnetic/standard/include/G4hIonisation.hh index df6faa6208..b5f196f7da 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4hIonisation.hh,v 1.20 2002/03/27 21:43:55 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // --------------- G4hIonisation physics process ------------------------------- // by Laszlo Urban, 30 May 1997 diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.icc b/source/processes/electromagnetic/standard/include/G4hIonisation.icc index 4003f0aae0..a55a0e2313 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.icc +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.icc @@ -22,7 +22,7 @@ // // // $Id: G4hIonisation.icc,v 1.11 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //------------------ G4hIonisation physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh b/source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh new file mode 100644 index 0000000000..5f00710a2f --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh @@ -0,0 +1,129 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4hIonisationSTD +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1997 +// +// Modifications: +// +// corrected by L.Urban on 24/09/97 +// corrected by L.Urban on 13/01/98 +// bugs fixed by L.Urban on 02/02/99 +// 10/02/00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 19-09-01 come back to previous process name "hIoni" +// 29-10-01 all static functions no more inlined +// +// Class Description: +// +// This class manages the ionisation process for hadrons. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4hIonisationSTD_h +#define G4hIonisationSTD_h 1 + +#include "G4VEnergyLossSTD.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "globals.hh" + +class G4Material; + +class G4hIonisationSTD : public G4VEnergyLossSTD +{ + +public: + + G4hIonisationSTD(const G4String& name = "hIoni"); + + ~G4hIonisationSTD(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + virtual const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); + +private: + + void InitialiseProcess(); + + // hide assignment operator + G4hIonisationSTD & operator=(const G4hIonisationSTD &right); + G4hIonisationSTD(const G4hIonisationSTD&); + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + G4double mass; + G4double ratio; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4hIonisationSTD::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + G4double x = 0.5*cut/electron_mass_c2; + G4double y = electron_mass_c2/mass; + G4double g = x*y + sqrt((1. + x)*(1. + x*y*y)); + return mass*(g - 1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4hIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + G4double gamma= dynParticle->GetKineticEnergy()/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh new file mode 100644 index 0000000000..84ede5f83b --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh @@ -0,0 +1,146 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4ionIonisation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 07.05.2002 +// +// Modifications: +// +// +// Class Description: +// +// This class manages the ionisation process for ions. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. +// + +// ------------------------------------------------------------------- +// + +#ifndef G4ionIonisation_h +#define G4ionIonisation_h 1 + +#include "G4VEnergyLossSTD.hh" + +class G4ParticleDefinition; +class G4Track; +class G4Step; +class G4Material; +class G4VEffectiveChargeModel; + +class G4ionIonisation : public G4VEnergyLossSTD +{ + +public: + + G4ionIonisation(const G4String& name = "ionIoni"); + + ~G4ionIonisation(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); + + void PrintInfoDefinition() const; + // Print out of the class parameters + +protected: + + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + + virtual G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); + +private: + + void InitialiseProcess(); + + // hide assignment operator + G4ionIonisation & operator=(const G4ionIonisation &right); + G4ionIonisation(const G4ionIonisation&); + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4ionIonisation::MinPrimaryEnergy( + const G4ParticleDefinition* p, const G4Material*, G4double cut) +{ + G4double mass = p->GetPDGMass(); + G4double x = 0.5*cut/electron_mass_c2; + // G4double y = electron_mass_c2/mass; + // G4double g = x*y + sqrt((1. + x)*(1. + x*y*y)); + G4double g = sqrt(1. + x); + return mass*(g - 1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4ionIonisation::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + G4double mass = dynParticle->GetMass(); + G4double gamma = dynParticle->GetKineticEnergy()/mass + 1.0; + G4double ratio = electron_mass_c2/mass; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +inline G4double G4ionIonisation::GetMeanFreePath(const G4Track& track, + G4double step, + G4ForceCondition* cond) +{ + const G4DynamicParticle* dp = track.GetDynamicParticle(); + G4double mRatio = proton_mass_c2/dp->GetMass(); + G4double q = dp->GetCharge()/eplus; + G4double q_2 = q*q; + SetMassRatio(mRatio); + SetReduceFactor(1.0/(q_2*mRatio)); + SetChargeSquare(q_2); + SetChargeSquareRatio(q_2); + + return G4VEnergyLossSTD::GetMeanFreePath(track, step, cond); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc index f21df6423e..b4ce9c87d0 100644 --- a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering.cc,v 1.16 2002/04/18 10:12:01 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //------------ G4ComptonScattering physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc index 82ac96264b..6e4fe087f8 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion.cc,v 1.17 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //------------------ G4GammaConversion physics process ------------------------- // by Michel Maire, 24 May 1996 diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc b/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc index cb462462b9..c3adf2e5e2 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc @@ -21,11 +21,14 @@ // ******************************************************************** // // -// $Id: G4GammaConversionToMuons.cc,v 1.3 2002/05/06 09:32:41 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GammaConversionToMuons.cc,v 1.4 2002/08/07 10:53:25 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 +// +// +// 07-08-02: missprint in OR condition in DoIt : f1<0 || f1>f1_max ..etc ... // --------------------------------------------------------------------------- #include "G4GammaConversionToMuons.hh" @@ -78,7 +81,6 @@ G4double G4GammaConversionToMuons::ComputeCrossSectionPerAtom( // It gives a good description at any energy (from 0 to 10**21 eV) { static const G4double Mmuon=G4MuonPlus::MuonPlus()->GetPDGMass(); static const G4double Mele=electron_mass_c2; - static const G4double GammaEnergyLimit=4* Mmuon; static const G4double Rc=elm_coupling/Mmuon; // classical particle radius static const G4double sqrte=sqrt(exp(1.)); static const G4double PowSat=-0.88; @@ -209,7 +211,7 @@ G4VParticleChange* G4GammaConversionToMuons::PostStepDoIt( do { t=G4UniformRand(); f1=(1.-2.*xPM+4.*xPM*t*(1.-t)) / (1.+C1/(t*t)); - if(f1<0 | f1> f1_max) // should never happend + if(f1<0 || f1> f1_max) // should never happend { G4cout << "outside allowed range f1=" << f1 << G4endl; exit(1); } @@ -223,7 +225,7 @@ G4VParticleChange* G4GammaConversionToMuons::PostStepDoIt( do { psi=2.*pi*G4UniformRand(); f2=1.-2.*xPM+4.*xPM*t*(1.-t)*(1.+cos(2.*psi)); - if(f2<0 | f2> f2_max) // should never happend + if(f2<0 || f2> f2_max) // should never happend { G4cout << "outside allowed range f2=" << f2 << G4endl; exit(1); } @@ -245,7 +247,7 @@ G4VParticleChange* G4GammaConversionToMuons::PostStepDoIt( thetaPlus =GammaMuonInv*(u+xiHalf)/xPlus; thetaMinus=GammaMuonInv*(u-xiHalf)/xMinus; - } while ( abs(thetaPlus)>pi | abs(thetaMinus) >pi); + } while ( abs(thetaPlus)>pi || abs(thetaMinus) >pi); // now construct the vectors // azimuthal symmetry, take phi0 at random between 0 and 2 pi diff --git a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc new file mode 100644 index 0000000000..4f98d8708b --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc @@ -0,0 +1,352 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MollerBhabhaModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 03.01.2002 +// +// Modifications: 13.11.2002 Minor fix - use normalised direction (VI) +// 04.12.2002 Change G4DynamicParticle constructor in PostStepDoIt (VI) +// +// +// Class Description: +// +// Implementation of energy loss and delta-electron production by e+/e- +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MollerBhabhaModel.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MollerBhabhaModel::G4MollerBhabhaModel(const G4ParticleDefinition* p) + : G4VEmModel(), + particle(0), + highKinEnergy(100.*TeV), + lowKinEnergy(0.1*keV), + twoln10(2.0*log(10.0)), + lowLimit(0.2*keV), + isElectron(true) +{ + if(p) SetParticle(p); + theElectron = G4Electron::Electron(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MollerBhabhaModel::~G4MollerBhabhaModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MollerBhabhaModel::SetParticle(const G4ParticleDefinition* p) +{ + particle = p; + if(p != theElectron) isElectron = false; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MollerBhabhaModel::HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + return highKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MollerBhabhaModel::LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + return lowKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MollerBhabhaModel::MinEnergyCut(const G4ParticleDefinition* p, + const G4Material* material) +{ + return material->GetIonisation()->GetMeanExcitationEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4MollerBhabhaModel::IsInCharge(const G4ParticleDefinition* p, + const G4Material*) +{ + return (p == theElectron || p == G4Positron::Positron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MollerBhabhaModel::ComputeDEDX(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy) +{ + if(!particle) SetParticle(p); + // calculate the dE/dx due to the ionization by Seltzer-Berger formula + + G4double electronDensity = material->GetElectronDensity(); + G4double Zeff = electronDensity/material->GetTotNbOfAtomsPerVolume(); + G4double th = 0.25*sqrt(Zeff)*keV; + G4double tkin = kineticEnergy; + if (kineticEnergy < th) tkin = th; + + G4double tau = tkin/electron_mass_c2; + G4double gam = tau + 1.0; + G4double gamma2= gam*gam; + G4double beta2 = 1. - 1./gamma2; + G4double bg2 = beta2*gamma2; + + G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + eexc /= electron_mass_c2; + G4double eexc2 = eexc*eexc; + + G4double dedx; + G4double d = G4std::min(cutEnergy, MaxSecondaryEnergy(p, tkin))/electron_mass_c2; + + // electron + if (isElectron) { + + dedx = log(2.0*(tau + 2.0)/eexc2) - 1.0 - beta2 + + log((tau-d)*d) + tau/(tau-d) + + (0.5*d*d + (2.0*tau + 1.)*log(1. - d/tau))/gamma2; + + //positron + } else { + + G4double d2 = d*d*0.5; + G4double d3 = d2*d/1.5; + G4double d4 = d3*d*3.75; + G4double y = 1.0/(1.0 + gam); + dedx = log(2.0*(tau + 2.0)/eexc2) + log(tau*d) + - beta2*(tau + 2.0*d - y*(3.0*d2 + + y*(d - d3 + y*(d2 - tau*d3 + d4))))/tau; + } + + //density correction + G4double cden = material->GetIonisation()->GetCdensity(); + G4double mden = material->GetIonisation()->GetMdensity(); + G4double aden = material->GetIonisation()->GetAdensity(); + G4double x0den = material->GetIonisation()->GetX0density(); + G4double x1den = material->GetIonisation()->GetX1density(); + G4double x = log(bg2)/twoln10; + + if (x >= x0den) { + dedx -= twoln10*x - cden; + if (x < x1den) dedx -= aden*pow(x1den-x, mden); + } + + // now you can compute the total ionization loss + dedx *= twopi_mc2_rcl2*electronDensity/beta2; + if (dedx < 0.0) dedx = 0.0; + + // lowenergy extrapolation + + if (kineticEnergy < tkin) { + + if (kineticEnergy >= lowLimit) dedx *= sqrt(kineticEnergy/tkin); + else dedx *= sqrt(kineticEnergy*tkin)/lowLimit; + + } + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MollerBhabhaModel::CrossSection(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy) +{ + if(!particle) SetParticle(p); + G4double cross = 0.0; + G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); + tmax = G4std::min(maxEnergy, tmax); + + if(cutEnergy < tmax) { + + G4double xmin = cutEnergy/kineticEnergy; + G4double xmax = tmax/kineticEnergy; + G4double gam = kineticEnergy/electron_mass_c2 + 1.0; + G4double gamma2= gam*gam; + G4double beta2 = 1.0 - 1.0/gamma2; + + //Moller (e-e-) scattering + if (isElectron) { + + G4double g = (2.0*gam - 1.0)/gamma2; + cross = ((xmax - xmin)*(1.0 - g + 1.0/(xmin*xmax) + + 1.0/((1.0-xmin)*(1.0 - xmax))) + - g*log( xmax*(1.0 - xmin)/(xmin*(1.0 - xmax)) ) ) / beta2; + + //Bhabha (e+e-) scattering + } else { + + G4double y = 1.0/(1.0 + gam); + G4double y2 = y*y; + G4double y12 = 1.0 - 2.0*y; + G4double b1 = 2.0 - y2; + G4double b2 = y12*(3.0 + y2); + G4double y122= y12*y12; + G4double b4 = y122*y12; + G4double b3 = b4 + y122; + + cross = (xmax - xmin)*(1.0/(beta2*xmin*xmax) + b2 + - 0.5*b3*(xmin + xmax) + + b4*(xmin*xmin + xmin*xmax + xmax*xmax)/3.0) + - b1*log(xmax/xmin); + } + + cross *= twopi_mc2_rcl2*(material->GetElectronDensity())/kineticEnergy; + } + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4std::vector* G4MollerBhabhaModel::SampleSecondary( + const G4Material* material, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + G4double tmax = G4std::min(maxEnergy, MaxSecondaryEnergy(dp)); + if(tmin >= tmax) return 0; + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double energy = kineticEnergy + electron_mass_c2; + G4double totalMomentum = sqrt(kineticEnergy*(energy + electron_mass_c2)); + G4double xmin = tmin/kineticEnergy; + G4double xmax = tmax/kineticEnergy; + G4double gam = energy/electron_mass_c2; + G4double gamma2 = gam*gam; + G4double beta2 = 1.0 - 1.0/gamma2; + G4double x, z, q, grej; + + G4ThreeVector momentum = dp->GetMomentumDirection(); + + //Moller (e-e-) scattering + if (isElectron) { + + G4double g = (2.0*gam - 1.0)/gamma2; + G4double y = 1.0 - xmax; + grej = 1.0 - g*xmax + xmax*xmax*(1.0 - g + (1.0 - g*y)/(y*y)); + + do { + q = G4UniformRand(); + x = xmin*xmax/(xmin*(1.0 - q) + xmax*q); + y = 1.0 - x; + z = 1.0 - g*x + x*x*(1.0 - g + (1.0 - g*y)/(y*y)); + if(z > grej) { + G4cout << "G4MollerBhabhaModel::SampleSecondary Warning! " + << "Majorant " << grej << " < " + << z << " for x= " << x + << " e-e- scattering" + << G4endl; + } + } while(grej * G4UniformRand() > z); + + //Bhabha (e+e-) scattering + } else { + + G4double y = 1.0/(1.0 + gam); + G4double y2 = y*y; + G4double y12 = 1.0 - 2.0*y; + G4double b1 = 2.0 - y2; + G4double b2 = y12*(3.0 + y2); + G4double y122= y12*y12; + G4double b4 = y122*y12; + G4double b3 = b4 + y122; + + y = xmax*xmax; + grej = -xmin*b1; + grej += y*b2; + grej -= xmin*xmin*xmin*b3; + grej += y*y*b4; + grej *= beta2; + grej += 1.0; + do { + q = G4UniformRand(); + x = xmin*xmax/(xmin*(1.0 - q) + xmax*q); + z = -x*b1; + y = x*x; + z += y*b2; + y *= x; + z -= y*b3; + y *= x; + z += y*b4; + z *= beta2; + z += 1.0; + if(z > grej) { + G4cout << "G4MollerBhabhaModel::SampleSecondary Warning! " + << "Majorant " << grej << " < " + << z << " for x= " << x + << " e+e- scattering" + << G4endl; + } + } while(grej * G4UniformRand() > z); + } + + G4double deltaKinEnergy = x * kineticEnergy; + + G4double deltaMomentum = + sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2)); + G4double cost = deltaKinEnergy * (energy + electron_mass_c2) / + (deltaMomentum * totalMomentum); + G4double sint = sqrt(1.0 - cost*cost); + + G4double phi = twopi * G4UniformRand() ; + + G4ThreeVector deltaDirection(sint*cos(phi),sint*sin(phi), cost) ; + deltaDirection.rotateUz(momentum); + + // create G4DynamicParticle object for delta ray + G4DynamicParticle* delta = new G4DynamicParticle(); + delta->SetDefinition(theElectron); + delta->SetKineticEnergy(deltaKinEnergy); + delta->SetMomentumDirection(deltaDirection); + + + G4std::vector* vdp = new G4std::vector; + vdp->push_back(delta); + + return vdp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4PAIonisation.cc b/source/processes/electromagnetic/standard/src/G4PAIonisation.cc index 42fb14d43e..3501dd6f95 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIonisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PAIonisation.cc,v 1.23 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PAIonisation.cc,v 1.31 2002/11/20 15:41:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ************************************************************** @@ -112,8 +112,6 @@ G4PAIonisation::~G4PAIonisation() delete[] fSandiaPhotoAbsCof[i] ; } delete[] fSandiaPhotoAbsCof ; - - // if(fProtonEnergyVector) delete fProtonEnergyVector ; } ///////////////////////////////////////////////////////////////////////// @@ -816,17 +814,15 @@ G4PAIonisation::GetEnergyTransfer( G4int iPlace, G4double position, G4int iTrans return result ; } +/////////////////////////////////////////////////////////////////////// +// +// Returns the proton energy vector + +G4PhysicsLogVector* G4PAIonisation::GetProtonEnergyVector() +{ + return fProtonEnergyVector; +} + // // ///////////////////////////////////////////////////////////////////////// - - - - - - - - - - - diff --git a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc index 032d6e0dc0..8f1d9ad93d 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PAIxSection.cc,v 1.10 2002/04/09 17:34:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PAIxSection.cc,v 1.13 2002/10/14 17:34:12 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4PAIxSection.cc -- class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc index 12f50baa09..80933b5a7c 100644 --- a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc +++ b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect.cc,v 1.27 2002/05/02 11:37:22 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc index f153a6f9e6..2e126fb6d4 100644 --- a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolarizedComptonScattering.cc,v 1.9 2002/04/09 17:34:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //---------- G4PolarizedComptonScattering physics process ---------------------- diff --git a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc index 97b273af5f..dfc15aab7d 100644 --- a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc +++ b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc @@ -22,7 +22,7 @@ // // // $Id: G4SynchrotronRadiation.cc,v 1.7 2002/04/09 17:34:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc index 237956c53c..a77f87e716 100644 --- a/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPAIenergyLoss.cc,v 1.6 2002/04/09 17:34:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc index 3445b9d7f4..db75636ae1 100644 --- a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VeEnergyLoss.cc,v 1.25 2002/04/09 17:34:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc index f87b87e401..5af719d39f 100644 --- a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VhEnergyLoss.cc,v 1.35 2002/06/10 15:38:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc index c3ce332d9f..e20ba7ed45 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eBremsstrahlung.cc,v 1.25 2002/04/09 17:34:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4eBremsstrahlung.cc,v 1.27 2002/11/12 17:04:38 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------ G4eBremsstrahlung physics process -------- @@ -46,6 +46,8 @@ // 21-09-01 completion of RetrievePhysicsTable() (mma) // 29-10-01 all static functions no more inlined (mma) // 08-11-01 particleMass becomes a local variable +// 11-11-02 fix of division by 0 (VI) +// // -------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -275,15 +277,15 @@ void G4eBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParticleType G4double floss = 0. ; G4int nmax = 100 ; - G4int nn ; + G4double vmin=log(kmin); G4double vmax=log(kmax) ; - nn = int(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)) ; + G4int nn = (G4int)(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)) ; G4double u,fac,c,v,dv ; - dv = (vmax-vmin)/nn ; - v = vmin-dv ; if(nn > 0) { + dv = (vmax-vmin)/nn ; + v = vmin-dv ; for(G4int n=0; n<=nn; n++) { v += dv; u = exp(v); @@ -496,6 +498,7 @@ G4double G4eBremsstrahlung::ComputeMeanFreePath( (*theElementVector)[i]->GetZ(), GammaEnergyCut ); } + // now compute the correction due to the supression(s) G4double kmax = KineticEnergy ; @@ -512,15 +515,15 @@ G4double G4eBremsstrahlung::ComputeMeanFreePath( { G4double fsig = 0.; G4int nmax = 100 ; - G4int nn ; G4double vmin=log(kmin); G4double vmax=log(kmax) ; - nn = int(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)); + G4int nn = (G4int)(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)); G4double u,fac,c,v,dv,y ; - dv = (vmax-vmin)/nn ; - v = vmin-dv ; if(nn > 0) { + dv = (vmax-vmin)/nn ; + v = vmin-dv ; + for(G4int n=0; n<=nn; n++) { v += dv; u = exp(v); @@ -989,7 +992,6 @@ G4double G4eBremsstrahlung::SupressionFunction(const G4Material* aMaterial, splim = LPMGammaEnergyLimit2/(LPMGammaEnergyLimit2+MigdalConstant*TotalEnergySquare* (aMaterial->GetElectronDensity())) ; w = 1.+1./splim ; - Cnorm = 2./(sqrt(w*w+4.)-w) ; sp = GammaEnergySquare/(GammaEnergySquare+MigdalConstant*TotalEnergySquare* (aMaterial->GetElectronDensity())) ; @@ -1000,6 +1002,8 @@ G4double G4eBremsstrahlung::SupressionFunction(const G4Material* aMaterial, { if ((1.-sp) < 1.e-6) w = s2lpm*(3.-sp); else w = s2lpm*(1.+1./sp); + + Cnorm = 2./(sqrt(w*w+4.)-w) ; supr = Cnorm*(sqrt(w*w+4.*s2lpm)-w)/2. ; } else supr = sp; diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc new file mode 100644 index 0000000000..314c7e6f8d --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc @@ -0,0 +1,871 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4eBremsstrahlungModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// 11-11-02 Fix division by 0 (VI) +// 04-12-02 Change G4DynamicParticle constructor in PostStep (VI) +// +// Class Description: +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4eBremsstrahlungModel.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4Gamma.hh" +#include "Randomize.hh" +#include "G4Material.hh" +#include "G4Element.hh" +#include "G4ElementVector.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4eBremsstrahlungModel::G4eBremsstrahlungModel(const G4ParticleDefinition* p) + : G4VEmModel(), + particle(0), + highKinEnergy(100.*TeV), + lowKinEnergy(1.0*keV), + minThreshold(1.0*keV), + probsup(1.0), + MigdalConstant(classic_electr_radius*electron_Compton_length*electron_Compton_length/pi), + LPMconstant(fine_structure_const*electron_mass_c2*electron_mass_c2/(8.*pi*hbarc)), + isElectron(true), + theLPMflag(true), + oldMaterial(0) +{ + if(p) SetParticle(p); + partialSumSigma.clear(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4eBremsstrahlungModel::~G4eBremsstrahlungModel() +{ + size_t n = partialSumSigma.size(); + if(n > 0) { + for(size_t i=0; iGetElementVector(); + const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); + + G4double totalEnergy = kineticEnergy + electron_mass_c2; + G4double dedx = 0.0; + + // loop for elements in the material + for (size_t i=0; iGetNumberOfElements(); i++) { + + G4double Z = (*theElementVector)[i]->GetZ(); + G4double natom = theAtomicNumDensityVector[i]; + + // loss for MinKinEnergy100 GeV + } else if(cut < thigh) { + + loss = ComputeBremLoss(Z, thigh, cut, xhigh) ; + if (!isElectron) loss *= PositronCorrFactorLoss(Z, thigh, cut) ; + rate = cut/kineticEnergy; + loss *= (1. + coef1*rate + coef2*rate*rate); + rate = cut/thigh; + loss /= (1.+coef1*rate+coef2*rate*rate); + + } else { + + loss = ComputeBremLoss(Z, thigh, 0.5*thigh, xhigh) ; + if (!isElectron) loss *= PositronCorrFactorLoss(Z, thigh, 0.5*thigh) ; + rate = cut/kineticEnergy; + loss *= (1. + coef1*rate + coef2*rate*rate); + loss *= cut*factorHigh; + } + loss *= natom; + + G4double kp2 = MigdalConstant*totalEnergy*totalEnergy + * (material->GetElectronDensity()) ; + + // now compute the correction due to the supression(s) + G4double kmin = 1.*eV; + G4double kmax = cut; + + if (kmax > kmin) { + + G4double floss = 0.; + G4int nmax = 100; + + G4double vmin=log(kmin); + G4double vmax=log(kmax) ; + G4int nn = (G4int)(nmax*(vmax-vmin)/(log(highKinEnergy)-vmin)) ; + G4double u,fac,c,v,dv ; + if(nn > 0) { + + dv = (vmax-vmin)/nn ; + v = vmin-dv ; + + for(G4int n=0; n<=nn; n++) { + + v += dv; + u = exp(v); + fac = u*SupressionFunction(material,kineticEnergy,u); + fac *= probsup*(u*u/(u*u+kp2))+1.-probsup; + if ((n==0)||(n==nn)) c=0.5; + else c=1. ; + fac *= c ; + floss += fac ; + } + floss *=dv/(kmax-kmin); + + } else { + floss = 1.; + } + if(floss > 1.) floss = 1.; + // correct the loss + loss *= floss; + } + dedx += loss; + } + if(dedx < 0.) dedx = 0.; + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlungModel::ComputeBremLoss(G4double Z, G4double T, + G4double Cut, G4double x) + +// compute loss due to soft brems +{ + static const G4double beta=1.0, ksi=2.0; + static const G4double clossh = 0.254 , closslow = 1./3. , alosslow = 1. ; + static const G4double Tlim= 10.*MeV ; + + static const G4double xlim = 1.2 ; + static const G4int NZ = 8 ; + static const G4int Nloss = 11 ; + static const G4double ZZ[NZ] = + {2.,4.,6.,14.,26.,50.,82.,92.}; + static const G4double coefloss[NZ][Nloss] = { + // Z=2 + { 0.98916, 0.47564, -0.2505, -0.45186, 0.14462, + 0.21307, -0.013738, -0.045689, -0.0042914, 0.0034429, + 0.00064189}, + + // Z=4 + { 1.0626, 0.37662, -0.23646, -0.45188, 0.14295, + 0.22906, -0.011041, -0.051398, -0.0055123, 0.0039919, + 0.00078003}, + // Z=6 + { 1.0954, 0.315, -0.24011, -0.43849, 0.15017, + 0.23001, -0.012846, -0.052555, -0.0055114, 0.0041283, + 0.00080318}, + + // Z=14 + { 1.1649, 0.18976, -0.24972, -0.30124, 0.1555, + 0.13565, -0.024765, -0.027047, -0.00059821, 0.0019373, + 0.00027647}, + + // Z=26 + { 1.2261, 0.14272, -0.25672, -0.28407, 0.13874, + 0.13586, -0.020562, -0.026722, -0.00089557, 0.0018665, + 0.00026981}, + + // Z=50 + { 1.3147, 0.020049, -0.35543, -0.13927, 0.17666, + 0.073746, -0.036076, -0.013407, 0.0025727, 0.00084005, + -1.4082e-05}, + + // Z=82 + { 1.3986, -0.10586, -0.49187, -0.0048846, 0.23621, + 0.031652, -0.052938, -0.0076639, 0.0048181, 0.00056486, + -0.00011995}, + + // Z=92 + { 1.4217, -0.116, -0.55497, -0.044075, 0.27506, + 0.081364, -0.058143, -0.023402, 0.0031322, 0.0020201, + 0.00017519} + + } ; + static G4double aaa = 0.414; + static G4double bbb = 0.345; + static G4double ccc = 0.460; + + G4int iz = 0; + G4double delz = 1.e6; + for (G4int ii=0; ii=0; j--) fl = fl*xx+coefloss[iz][j]; + if (fl < 0.) fl = 0.; + } + + G4double loss; + G4double E = T+electron_mass_c2 ; + + loss = Z*(Z+ksi)*E*E/(T+E)*exp(beta*log(Cut/T))*(2.-clossh*exp(log(Z)/4.)); + if (T <= Tlim) loss /= exp(closslow*log(Tlim/T)); + if( T <= Cut) loss *= exp(alosslow*log(T/Cut)); + + // correction + loss *= (aaa+bbb*T/Tlim)/(1.+ccc*T/Tlim); + loss *= fl; + loss /= Avogadro; + + return loss; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlungModel::PositronCorrFactorLoss(G4double Z, + G4double kineticEnergy, G4double cut) + +//calculates the correction factor for the energy loss due to bremsstrahlung for positrons +//the same correction is in the (discrete) bremsstrahlung + +{ + static const G4double K = 132.9416*eV ; + static const G4double a1=4.15e-1, a3=2.10e-3, a5=54.0e-5 ; + + G4double x = log(kineticEnergy/(K*Z*Z)), x2 = x*x, x3 = x2*x; + G4double eta = 0.5+atan(a1*x+a3*x3+a5*x3*x2)/pi; + G4double e0 = cut/kineticEnergy; + + G4double factor = 0.0; + if (e0 < 1.0) { + factor=log(1.-e0)/eta; + factor=exp(factor); + } + factor = eta*(1.-factor)/e0; + + return factor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlungModel::CrossSection(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy) +{ + if(!particle) SetParticle(p); + G4double cross = 0.0; + G4double tmax = G4std::min(maxEnergy, kineticEnergy); + G4double cut = G4std::max(cutEnergy, minThreshold); + if(cut >= tmax) return cross; + + const G4ElementVector* theElementVector = material->GetElementVector() ; + const G4double* theAtomNumDensityVector = material->GetAtomicNumDensityVector(); + + if(material != oldMaterial) { + oldMaterial = material; + ComputePartialSumSigma(material, 0.5*highKinEnergy, + G4std::min(cutEnergy, 0.25*highKinEnergy)); + } + + for (size_t i=0; iGetNumberOfElements(); i++) { + + cross += theAtomNumDensityVector[i] * CrossSectionPerAtom(kineticEnergy, + (*theElementVector)[i]->GetZ(), cut); + if(tmax < kineticEnergy) { + cross -= theAtomNumDensityVector[i] * CrossSectionPerAtom(kineticEnergy, + (*theElementVector)[i]->GetZ(), tmax); + } + } + + // now compute the correction due to the supression(s) + + G4double kmax = tmax; + G4double kmin = cut; + + G4double totalEnergy = kineticEnergy+electron_mass_c2 ; + G4double kp2 = MigdalConstant*totalEnergy*totalEnergy*(material->GetElectronDensity()); + + G4double fsig = 0.; + G4int nmax = 100; + G4double vmin=log(kmin); + G4double vmax=log(kmax) ; + G4int nn = (G4int)(nmax*(vmax-vmin)/(log(highKinEnergy)-vmin)); + G4double u,fac,c,v,dv,y ; + if(nn > 0) { + + dv = (vmax-vmin)/nn ; + v = vmin-dv ; + for(G4int n=0; n<=nn; n++) { + + v += dv; + u = exp(v); + fac = SupressionFunction(material, kineticEnergy, u); + y = u/kmax; + fac *= (4.-4.*y+3.*y*y)/3.; + fac *= probsup*(u*u/(u*u+kp2))+1.-probsup; + + if ((n==0)||(n==nn)) c=0.5; + else c=1. ; + + fac *= c; + fsig += fac; + } + y = kmin/kmax ; + fsig *=dv/(-4.*log(y)/3.-4.*(1.-y)/3.+0.5*(1.-y*y)); + + } else { + + fsig = 1.; + } + if (fsig > 1.) fsig = 1.; + + // correct the cross section + cross *= fsig; + + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlungModel::CrossSectionPerAtom(G4double kineticEnergy, + G4double Z, G4double cut) + +// Calculates the cross section per atom in GEANT4 internal units. +// + +{ + G4double cross = 0.0 ; + if ( kineticEnergy < 1*keV || kineticEnergy < cut) return cross; + + static const G4double ksi=2.0, alfa=1.00; + static const G4double csigh = 0.127, csiglow = 0.25, asiglow = 0.020*MeV ; + static const G4double Tlim = 10.*MeV ; + + static const G4double xlim = 1.2 ; + static const G4int NZ = 8 ; + static const G4int Nsig = 11 ; + static const G4double ZZ[NZ] = + {2.,4.,6.,14.,26.,50.,82.,92.} ; + static const G4double coefsig[NZ][Nsig] = { + // Z=2 + { 0.4638, 0.37748, 0.32249, -0.060362, -0.065004, + -0.033457, -0.004583, 0.011954, 0.0030404, -0.0010077, + -0.00028131}, + + // Z=4 + { 0.50008, 0.33483, 0.34364, -0.086262, -0.055361, + -0.028168, -0.0056172, 0.011129, 0.0027528, -0.00092265, + -0.00024348}, + + // Z=6 + { 0.51587, 0.31095, 0.34996, -0.11623, -0.056167, + -0.0087154, 0.00053943, 0.0054092, 0.00077685, -0.00039635, + -6.7818e-05}, + + // Z=14 + { 0.55058, 0.25629, 0.35854, -0.080656, -0.054308, + -0.049933, -0.00064246, 0.016597, 0.0021789, -0.001327, + -0.00025983}, + + // Z=26 + { 0.5791, 0.26152, 0.38953, -0.17104, -0.099172, + 0.024596, 0.023718, -0.0039205, -0.0036658, 0.00041749, + 0.00023408}, + + // Z=50 + { 0.62085, 0.27045, 0.39073, -0.37916, -0.18878, + 0.23905, 0.095028, -0.068744, -0.023809, 0.0062408, + 0.0020407}, + + // Z=82 + { 0.66053, 0.24513, 0.35404, -0.47275, -0.22837, + 0.35647, 0.13203, -0.1049, -0.034851, 0.0095046, + 0.0030535}, + + // Z=92 + { 0.67143, 0.23079, 0.32256, -0.46248, -0.20013, + 0.3506, 0.11779, -0.1024, -0.032013, 0.0092279, + 0.0028592} + + } ; + + G4int iz = 0 ; + G4double delz = 1.e6 ; + for (G4int ii=0; ii=0; j--) { + + fs = fs*xx+coefsig[iz][j] ; + } + if(fs < 0.) fs = 0.; + } + + cross = Z*(Z+ksi)*(1.-csigh*exp(log(Z)/4.))*pow(log(kineticEnergy/cut),alfa); + + if (kineticEnergy <= Tlim) + cross *= exp(csiglow*log(Tlim/kineticEnergy))*(1.+asiglow/(sqrt(Z)*kineticEnergy)); + + if (!isElectron) + cross *= PositronCorrFactorSigma(Z, kineticEnergy, cut); + + cross *= fs/Avogadro ; + + if (cross < 0.) cross = 0.; + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlungModel::PositronCorrFactorSigma( G4double Z, + G4double kineticEnergy, G4double cut) + +//Calculates the correction factor for the total cross section of the positron bremsstrahl. +// Eta is the ratio of positron to electron energy loss by bremstrahlung. +// A parametrized formula from L. Urban is used to estimate eta. It is a fit to the results +// of L. Kim & al: Phys Rev. A33,3002 (1986) + +{ + static const G4double K = 132.9416*eV; + static const G4double a1 = 4.15e-1, a3 = 2.10e-3, a5 = 54.0e-5; + + G4double x = log(kineticEnergy/(K*Z*Z)); + G4double x2 = x*x; + G4double x3 = x2*x; + G4double eta = 0.5 + atan(a1*x + a3*x3 + a5*x3*x2)/pi ; + G4double alfa = (1. - eta)/eta; + return eta*pow((1. - cut/kineticEnergy), alfa); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlungModel::ComputePartialSumSigma(const G4Material* material, + G4double kineticEnergy, + G4double cut) + +// Build the table of cross section per element. The table is built for MATERIALS. +// This table is used by DoIt to select randomly an element in the material. +{ + size_t index = material->GetIndex(); + G4int nElements = material->GetNumberOfElements(); + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* theAtomNumDensityVector = material->GetAtomicNumDensityVector(); + + G4DataVector* dv; + + if (index >= partialSumSigma.size()) { + + dv = new G4DataVector(); + partialSumSigma.push_back(dv); + + } else { + + dv = partialSumSigma[index]; + dv->clear(); + } + + G4double cross = 0.0; + + for (G4int i=0; iGetZ(), cut); + dv->push_back(cross); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4std::vector* G4eBremsstrahlungModel::SampleSecondary( + const G4Material* material, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +// The emitted gamma energy is sampled using a parametrized formula from L. Urban. +// This parametrization is derived from : +// cross-section values of Seltzer and Berger for electron energies 1 keV - 10 GeV, +// screened Bethe Heilter differential cross section above 10 GeV, +// Migdal corrections in both case. +// Seltzer & Berger: Nim B 12:95 (1985) +// Nelson, Hirayama & Rogers: Technical report 265 SLAC (1985) +// Migdal: Phys Rev 103:1811 (1956); Messel & Crawford: Pergamon Press (1970) +// +// A modified version of the random number techniques of Butcher & Messel is used +// (Nuc Phys 20(1960),15). +{ + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double tmax = G4std::min(maxEnergy, kineticEnergy); + if(tmin >= tmax) return 0; + +// +// GEANT4 internal units. +// + static const G4double + ah10 = 4.67733E+00, ah11 =-6.19012E-01, ah12 = 2.02225E-02, + ah20 =-7.34101E+00, ah21 = 1.00462E+00, ah22 =-3.20985E-02, + ah30 = 2.93119E+00, ah31 =-4.03761E-01, ah32 = 1.25153E-02; + + static const G4double + bh10 = 4.23071E+00, bh11 =-6.10995E-01, bh12 = 1.95531E-02, + bh20 =-7.12527E+00, bh21 = 9.69160E-01, bh22 =-2.74255E-02, + bh30 = 2.69925E+00, bh31 =-3.63283E-01, bh32 = 9.55316E-03; + + static const G4double + al00 =-2.05398E+00, al01 = 2.38815E-02, al02 = 5.25483E-04, + al10 =-7.69748E-02, al11 =-6.91499E-02, al12 = 2.22453E-03, + al20 = 4.06463E-02, al21 =-1.01281E-02, al22 = 3.40919E-04; + + static const G4double + bl00 = 1.04133E+00, bl01 =-9.43291E-03, bl02 =-4.54758E-04, + bl10 = 1.19253E-01, bl11 = 4.07467E-02, bl12 =-1.30718E-03, + bl20 =-1.59391E-02, bl21 = 7.27752E-03, bl22 =-1.94405E-04; + + G4double gammaEnergy; + G4bool LPMOK = false; + + // select randomly one element constituing the material + const G4Element* anElement = SelectRandomAtom(material); + + // Extract Z factors for this Element + G4double lnZ = 3.*(anElement->GetIonisation()->GetlogZ3()); + G4double FZ = lnZ* (4.- 0.55*lnZ); + G4double ZZ = anElement->GetIonisation()->GetZZ3(); + + // limits of the energy sampling + G4double totalEnergy = kineticEnergy + electron_mass_c2; + G4ThreeVector momentum = dp->GetMomentumDirection(); + G4double xmin = tmin/kineticEnergy; + G4double xmax = tmax/kineticEnergy; + G4double kappa = log(xmax)/log(xmin); + G4double epsilmin = tmin/totalEnergy; + G4double epsilmax = tmax/totalEnergy; + + // Migdal factor + G4double MigdalFactor = (material->GetElectronDensity())*MigdalConstant + / (epsilmax*epsilmax); + + G4double x, epsil, greject, migdal, grejmax, q; + G4double U = log(kineticEnergy/electron_mass_c2); + G4double U2 = U*U; + + // + // sample the energy rate of the emitted gamma for electron kinetic energy > 1 MeV + // + + do { + if (kineticEnergy > 1.*MeV) + { + // parameters + G4double ah1 = ah10 + ZZ* (ah11 + ZZ* ah12), + ah2 = ah20 + ZZ* (ah21 + ZZ* ah22), + ah3 = ah30 + ZZ* (ah31 + ZZ* ah32); + + G4double bh1 = bh10 + ZZ* (bh11 + ZZ* bh12), + bh2 = bh20 + ZZ* (bh21 + ZZ* bh22), + bh3 = bh30 + ZZ* (bh31 + ZZ* bh32); + + G4double ah = 1. + (ah1*U2 + ah2*U + ah3) / (U2*U); + G4double bh = 0.75 + (bh1*U2 + bh2*U + bh3) / (U2*U); + + // limit of the screening variable + G4double screenfac = + 136.*electron_mass_c2/((anElement->GetIonisation()->GetZ3())*totalEnergy); + G4double screenmin = screenfac*epsilmin/(1.-epsilmin); + + // Compute the maximum of the rejection function + G4double F1 = G4std::max(ScreenFunction1(screenmin) - FZ ,0.); + G4double F2 = G4std::max(ScreenFunction2(screenmin) - FZ ,0.); + grejmax = (F1 - epsilmin* (F1*ah - bh*epsilmin*F2))/(42.392 - FZ); + + // sample the energy rate of the emitted Gamma + G4double screenvar; + + do { + q = G4UniformRand(); + x = pow(xmin, q + kappa*(1.0 - q)); + epsil = x*kineticEnergy/totalEnergy; + screenvar = screenfac*epsil/(1-epsil); + F1 = G4std::max(ScreenFunction1(screenvar) - FZ ,0.); + F2 = G4std::max(ScreenFunction2(screenvar) - FZ ,0.); + migdal = (1. + MigdalFactor)/(1. + MigdalFactor/(x*x)); + greject = migdal*(F1 - epsil* (ah*F1 - bh*epsil*F2))/(42.392 - FZ); + + } while( greject < G4UniformRand()*grejmax ); + + } + + else + { + // sample the energy rate of the emitted gamma for electron kinetic energy < 1 MeV + // + // parameters + G4double al0 = al00 + ZZ* (al01 + ZZ* al02), + al1 = al10 + ZZ* (al11 + ZZ* al12), + al2 = al20 + ZZ* (al21 + ZZ* al22); + + G4double bl0 = bl00 + ZZ* (bl01 + ZZ* bl02), + bl1 = bl10 + ZZ* (bl11 + ZZ* bl12), + bl2 = bl20 + ZZ* (bl21 + ZZ* bl22); + + G4double al = al0 + al1*U + al2*U2; + G4double bl = bl0 + bl1*U + bl2*U2; + + // Compute the maximum of the rejection function + grejmax = G4std::max(1. + xmin* (al + bl*xmin), 1.+al+bl); + G4double xm = -al/(2.*bl); + if ((xmin < xm)&&(xm < 1.)) grejmax = G4std::max(grejmax, 1.+ xm* (al + bl*xm)); + + // sample the energy rate of the emitted Gamma + + do { + q = G4UniformRand(); + x = pow(xmin, q + kappa*(1.0 - q)); + migdal = (1. + MigdalFactor)/(1. + MigdalFactor/(x*x)); + greject = migdal*(1. + x* (al + bl*x)); + } while( greject < G4UniformRand()*grejmax ); + } + + gammaEnergy = x*kineticEnergy; + + if(theLPMflag) + { + // take into account the supression due to the LPM effect + if (G4UniformRand() <= SupressionFunction(material,kineticEnergy,gammaEnergy)) + LPMOK = true ; + } + else LPMOK = true ; + + } while (!LPMOK) ; + + + //protection: DO NOT PRODUCE a gamma with energy 0. ! + if (gammaEnergy <= 0.) return 0; + + // + // angles of the emitted gamma. ( Z - axis along the parent particle) + // + // universal distribution suggested by L. Urban (Geant3 manual (1993) Phys211), + // derived from Tsai distribution (Rev Mod Phys 49,421(1977)) + + G4double u; + const G4double a1 = 0.625 , a2 = 3.*a1 , d = 27. ; + + if (9./(9.+d) > G4UniformRand()) u = - log(G4UniformRand()*G4UniformRand())/a1 ; + else u = - log(G4UniformRand()*G4UniformRand())/a2 ; + + G4double theta = u*electron_mass_c2/totalEnergy; + + G4double sint = sin(theta); + + G4double phi = twopi * G4UniformRand() ; + + G4ThreeVector gammaDirection(sint*cos(phi),sint*sin(phi), cos(theta)); + gammaDirection.rotateUz(momentum); + + // create G4DynamicParticle object for the Gamma + G4DynamicParticle* g = new G4DynamicParticle(); + g->SetDefinition(G4Gamma::Gamma()); + g->SetKineticEnergy(gammaEnergy); + g->SetMomentumDirection(gammaDirection); + + + G4std::vector* vdp = new G4std::vector; + vdp->push_back(g); + + return vdp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4Element* G4eBremsstrahlungModel::SelectRandomAtom( + const G4Material* material) const +{ + // select randomly 1 element within the material + + G4int nElements = material->GetNumberOfElements(); + const G4ElementVector* theElementVector = material->GetElementVector(); + if(1 == nElements) return (*theElementVector)[0]; + else if(1 > nElements) return 0; + + G4DataVector* dv = partialSumSigma[material->GetIndex()]; + G4double rval = G4UniformRand()*((*dv)[nElements-1]); + for (G4int i=0; iGetRadlen()) ; + + G4double gammaEnergySquare = gammaEnergy*gammaEnergy ; + + G4double electronDensity = material->GetElectronDensity(); + + G4double sp = gammaEnergySquare/ + (gammaEnergySquare+MigdalConstant*totEnergySquare*electronDensity); + + G4double supr = 1.0; + + if (theLPMflag) { + + G4double s2lpm = LPMEnergy*gammaEnergy/totEnergySquare; + + if (s2lpm < 1.) { + + G4double LPMgEnergyLimit = totEnergySquare/LPMEnergy ; + G4double LPMgEnergyLimit2 = LPMgEnergyLimit*LPMgEnergyLimit; + G4double splim = LPMgEnergyLimit2/ + (LPMgEnergyLimit2+MigdalConstant*totEnergySquare* + electronDensity) ; + G4double w = 1.+1./splim ; + G4double cnorm = 2./(sqrt(w*w+4.)-w) ; + + if ((1.-sp) < 1.e-6) w = s2lpm*(3.-sp); + else w = s2lpm*(1.+1./sp); + + supr = 0.5*cnorm*(sqrt(w*w+4.*s2lpm)-w)/sp ; + + } + + } + return supr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc new file mode 100644 index 0000000000..28b7767b43 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc @@ -0,0 +1,115 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4eBremsstrahlungSTD +// +// Author: Michel Maire +// +// Creation date: 26.06.1996 +// +// Modifications: +// +// 26-09-96 extension of the total crosssection above 100 GeV, M.Maire +// 1-10-96 new type G4OrderedTable; ComputePartialSumSigma(), M.Maire +// 16-10-96 DoIt() call to the non static GetEnergyCuts(), L.Urban +// 13-12-96 Sign corrected in grejmax and greject +// error definition of screenvar, L.Urban +// 20-03-97 new energy loss+ionisation+brems scheme, L.Urban +// 07-04-98 remove 'tracking cut' of the diffracted particle, MMa +// 13-08-98 new methods SetBining() PrintInfo() +// 03-03-99 Bug fixed in LPM effect, L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban +// 21-09-00 corrections in the LPM implementation, L.Urban +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 21-09-01 completion of RetrievePhysicsTable() (mma) +// 29-10-01 all static functions no more inlined (mma) +// 08-11-01 particleMass becomes a local variable +// 30-04-02 V.Ivanchenko update to new design +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4eBremsstrahlungSTD.hh" +#include "G4Gamma.hh" +#include "G4eBremsstrahlungModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4eBremsstrahlungSTD::G4eBremsstrahlungSTD(const G4String& name) + : G4VEnergyLossSTD(name) +{ + InitialiseProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4eBremsstrahlungSTD::~G4eBremsstrahlungSTD() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlungSTD::InitialiseProcess() +{ + SetSecondaryParticle(G4Gamma::Gamma()); + SetSubCutoffIsDesired(false); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4eBremsstrahlungModel(); + em->SetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em, 0); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlungSTD::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + + G4cout << " Total cross sections from a parametrisation" + << " based on the EEDL data library. " + << G4endl + << " Good description from 1 KeV to 100 GeV, " + << "log scale extrapolation above 100 GeV." + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation.cc b/source/processes/electromagnetic/standard/src/G4eIonisation.cc index 524392c7d3..61fbe9fa6b 100644 --- a/source/processes/electromagnetic/standard/src/G4eIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4eIonisation.cc @@ -22,7 +22,7 @@ // // // $Id: G4eIonisation.cc,v 1.25 2002/04/09 17:34:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------- G4eIonisation physics process -------------------------------- // by Laszlo Urban, 20 March 1997 diff --git a/source/processes/electromagnetic/standard/src/G4eIonisationSTD.cc b/source/processes/electromagnetic/standard/src/G4eIonisationSTD.cc new file mode 100644 index 0000000000..aff0f1d57b --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4eIonisationSTD.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4eIonisationSTD +// +// Author: Laszlo Urban +// +// Creation date: 20.03.1997 +// +// Modifications: +// +// 07-04-98 remove 'tracking cut' of the ionizing particle, mma +// 04-09-98 new methods SetBining() PrintInfo() +// 07-09-98 Cleanup +// 02-02-99 correction inDoIt , L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 13-08-01 new function ComputeRestrictedMeandEdx() (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 21-09-01 completion of RetrievePhysicsTable() (mma) +// 29-10-01 all static functions no more inlined (mma) +// 07-11-01 particleMass and Charge become local variables +// 26-03-02 change access to cuts in BuildLossTables (V.Ivanchenko) +// 30-04-02 V.Ivanchenko update to new design +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4eIonisationSTD.hh" +#include "G4Electron.hh" +#include "G4MollerBhabhaModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4eIonisationSTD::G4eIonisationSTD(const G4String& name) + : G4VEnergyLossSTD(name), + theElectron(G4Electron::Electron()), + isElectron(true) +{ + InitialiseProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4eIonisationSTD::~G4eIonisationSTD() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eIonisationSTD::InitialiseProcess() +{ + SetSecondaryParticle(theElectron); + SetSubCutoffIsDesired(true); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4MollerBhabhaModel(); + em->SetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em, 0); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4ParticleDefinition* G4eIonisationSTD::DefineBaseParticle(const G4ParticleDefinition* p) +{ + if(p == G4Positron::Positron()) isElectron = false; + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eIonisationSTD::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + G4cout << " Delta cross sections from Moller+Bhabha, " + << "good description from 1 KeV to 100 GeV." + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc index dc1bb71ae7..484150d875 100644 --- a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc +++ b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation.cc,v 1.14 2002/04/09 17:34:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation.cc b/source/processes/electromagnetic/standard/src/G4hIonisation.cc index 30ae7a5899..8624204e54 100644 --- a/source/processes/electromagnetic/standard/src/G4hIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4hIonisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4hIonisation.cc,v 1.30 2002/06/10 15:50:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4hIonisation.cc,v 1.31 2002/10/11 16:39:09 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //---------------- G4hIonisation physics process ------------------------------- // by Laszlo Urban, 30 May 1997 @@ -127,11 +127,6 @@ void G4hIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) << G4endl; if(verboseLevel > 1) { - G4ProcessVector* pv = aParticleType.GetProcessManager()->GetProcessList(); - G4cout << " 0: " << (*pv)[0]->GetProcessName() << " " << (*pv)[0] - << " 1: " << (*pv)[1]->GetProcessName() << " " << (*pv)[1] - // << " 2: " << (*pv)[2]->GetProcessName() << " " << (*pv)[2] - << G4endl; G4cout << " MFPtable= " << theMeanFreePathTable << " DEDXtable= " << theDEDXpTable << " iniMass= " << initialMass diff --git a/source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc b/source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc new file mode 100644 index 0000000000..6fb27a5427 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4hIonisationSTD +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1997 +// +// Modifications: +// +// corrected by L.Urban on 24/09/97 +// several bugs corrected by L.Urban on 13/01/98 +// 07-04-98 remove 'tracking cut' of the ionizing particle, mma +// 22-10-98 cleanup L.Urban +// 02-02-99 bugs fixed , L.Urban +// 29-07-99 correction in BuildLossTable for low energy, L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 10-08-00 V.Ivanchenko change BuildLambdaTable, in order to +// simulate energy losses of ions; correction to +// cross section for particles with spin 1 is inserted as well +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 29-08-01 PostStepDoIt: correction for spin 1/2 (instead of 1) (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 25-09-01 completion of RetrievePhysicsTable() (mma) +// 29-10-01 all static functions no more inlined +// 08-11-01 Charge renamed zparticle; added to the dedx +// 27-03-02 Bug fix in scaling of lambda table (V.Ivanchenko) +// 09-04-02 Update calculation of tables for GenericIons (V.Ivanchenko) +// 30-04-02 V.Ivanchenko update to new design +// 04-12-02 Add verbose level definition (VI) +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4hIonisationSTD.hh" +#include "G4Electron.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4BraggModel.hh" +#include "G4BetheBlochModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4hIonisationSTD::G4hIonisationSTD(const G4String& name) + : G4VEnergyLossSTD(name), + theParticle(0), + theBaseParticle(0) +{ + InitialiseProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4hIonisationSTD::~G4hIonisationSTD() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hIonisationSTD::InitialiseProcess() +{ + SetSecondaryParticle(G4Electron::Electron()); + SetSubCutoffIsDesired(true); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4BraggModel(); + em->SetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 2.0*MeV); + AddEmModel(em, 0); + G4VEmModel* em1 = new G4BetheBlochModel(); + em1->SetLowEnergyLimit(0, 2.0*MeV); + em1->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em1, 1); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); + + mass = 0.0; + ratio = 0.0; + SetVerboseLevel(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4ParticleDefinition* G4hIonisationSTD::DefineBaseParticle( + const G4ParticleDefinition* p) +{ + if(!theParticle) theParticle = p; + if(!theBaseParticle && p != G4Proton::Proton()) theBaseParticle = G4Proton::Proton(); + mass = p->GetPDGMass(); + ratio = electron_mass_c2/mass; + return theBaseParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hIonisationSTD::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + + G4cout << " Bether-Bloch model for Escaled > 2 MeV, " + << "parametrisation of Bragg peak below." + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc new file mode 100644 index 0000000000..47767c5af8 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4ionIonisation.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4ionIonisation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 07.05.2002 +// +// Modifications: +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4ionIonisation.hh" +#include "G4LossTableManager.hh" +#include "G4Electron.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4BraggModel.hh" +#include "G4BetheBlochModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ionIonisation::G4ionIonisation(const G4String& name) + : G4VEnergyLossSTD(name), + theParticle(0), + theBaseParticle(G4Proton::Proton()) +{ + InitialiseProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4ionIonisation::~G4ionIonisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4ionIonisation::InitialiseProcess() +{ + SetSecondaryParticle(G4Electron::Electron()); + SetSubCutoffIsDesired(true); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4BraggModel(); + em->SetLowEnergyLimit(0, 0.1*keV); + em->SetHighEnergyLimit(0, 2.0*MeV); + AddEmModel(em, 0); + G4VEmModel* em1 = new G4BetheBlochModel(); + em1->SetLowEnergyLimit(0, 2.0*MeV); + em1->SetHighEnergyLimit(0, 100.0*TeV); + AddEmModel(em1, 1); + + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + AddEmFluctuationModel(fm); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +const G4ParticleDefinition* G4ionIonisation::DefineBaseParticle( + const G4ParticleDefinition* p) +{ + if(!theParticle) theParticle = p; + return theBaseParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4ionIonisation::PrintInfoDefinition() const +{ + G4VEnergyLossSTD::PrintInfoDefinition(); + + G4cout << " Scaling relation is used to proton dE/dx and range" + << G4endl + << " Bether-Bloch model for Escaled > 2 MeV, " + << "parametrisation of Bragg peak below." + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/source/processes/electromagnetic/utils/History b/source/processes/electromagnetic/utils/History index 39c46a5dca..f0f3929891 100644 --- a/source/processes/electromagnetic/utils/History +++ b/source/processes/electromagnetic/utils/History @@ -1,4 +1,4 @@ -$Id: History,v 1.52 2002/06/11 12:57:55 maire Exp $ +$Id: History,v 1.67 2002/12/13 11:15:01 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,52 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +12 dec 02: V.Ivant (utils-V04-01-12) +- Fix in multiple scattering for 1 MeV protons in both implementations. + +09 dec 02: V.Ivant (utils-V04-01-11) +- Removed warnings in G4SCProcessorStand and G4UniversalFluctuation. + +06 dec 02: G.Cosmo (utils-V04-01-10) +- Merged changes for new G4ApplicationState in messengers. + +04 dec 02: V.Ivant (utils-V04-01-09) +- STD processes: fix model selection + delta-electron spectra + +11 nov 02: V.Ivant (utils-V04-01-08) +- G4VEnergyLoss: return back previous fluctuation model + +30 oct 02: mma (utils-V04-01-07) +- G4MultipleScattering: modified angle distribution, mods in boundary + algorithm, changes in data members, rename variable cm -> Ecm + This new parametrisation improves the ~100 MeV proton scattering. +- propagated to G4MultipleScatteringSTD +- G4VEnergyLoss: minor changes in fluctuations + +28 oct 02: V.Ivanchenko (utils-V04-01-06) +- fix in G4MultipleScattringSTD + cleanup warnings in STD classes + +17 oct 02: V.Ivant (utils-V04-01-05) +- temporary fix for proton scattering propagated in MultipleScatteringSTD +- Few changes in LossTableBuilder + +16 oct 02: Laszlo (utils-V04-01-04) +- temporary fix for proton scattering + +15 oct 02: V.Ivant (utils-V04-01-03) +- redesign for a Model approach: files processNameSTD and processNameModel + +26 sep 02: Laszlo (utils-V04-01-02) +- angle distribution modified +- minor changes in boundary algorithm + +12 aug 02: Laszlo (utils-V04-01-01) +- bug fixed in PostStepDoIt (lateral displacement) + +06 aug 02: V.Ivanchenko (utils-V04-01-00) +G4VEnergyLoss: Fix at low energies - if tmax below ionisation potential + then only Gaussian fluctuations are sampled. + 11 jun 02: Laszlo (utils-V04-00-08) - important bug fixed in G4MultipleScattering.cc ComputeTransportCrossSection. The bug affected the scattering diff --git a/source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh b/source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh new file mode 100644 index 0000000000..7af30d70b1 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4BetheBlochModel.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4BetheBlochModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 03.01.2002 +// +// Modifications: + +// +// Class Description: +// +// Implementation of Bethe-Bloch model of energy loss and +// delta-electron production by heavy charged particles + +// ------------------------------------------------------------------- +// + +#ifndef G4BetheBlochModel_h +#define G4BetheBlochModel_h 1 + +#include "G4VEmModel.hh" + +class G4BetheBlochModel : public G4VEmModel +{ + +public: + + G4BetheBlochModel(const G4ParticleDefinition* p = 0); + + ~G4BetheBlochModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + G4double MaxSecondaryEnergy(const G4DynamicParticle*); + +protected: + + G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy); + +private: + + void SetParticle(const G4ParticleDefinition* p); + + // hide assignment operator + G4BetheBlochModel & operator=(const G4BetheBlochModel &right); + G4BetheBlochModel(const G4BetheBlochModel&); + + const G4ParticleDefinition* particle; + G4double mass; + G4double spin; + G4double chargeSquare; + G4double ratio; + G4double highKinEnergy; + G4double lowKinEnergy; + G4double twoln10; + G4double bg2lim; + G4double taulim; + G4double qc; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4BetheBlochModel::MaxSecondaryEnergy( + const G4ParticleDefinition* p, + G4double kinEnergy) +{ + + G4double gamma= kinEnergy/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4BetheBlochModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double gamma= kineticEnergy/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/utils/include/G4BraggModel.hh b/source/processes/electromagnetic/utils/include/G4BraggModel.hh new file mode 100644 index 0000000000..98f74f935d --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4BraggModel.hh @@ -0,0 +1,168 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4BraggModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// +// Class Description: +// +// Implementation of energy loss and delta-electron production +// by heavy slow charged particles using eveluated data + +// ------------------------------------------------------------------- +// + +#ifndef G4BraggModel_h +#define G4BraggModel_h 1 + +#include "G4VEmModel.hh" + +class G4BraggModel : public G4VEmModel +{ + +public: + + G4BraggModel(const G4ParticleDefinition* p = 0); + + ~G4BraggModel(); + + G4double HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + G4double LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*); + + void SetHighEnergyLimit(const G4Material*, G4double e) {highKinEnergy = e;}; + + void SetLowEnergyLimit(const G4Material*, G4double e) {lowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*); + + G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*); + + G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + G4double MaxSecondaryEnergy(const G4DynamicParticle*); + +protected: + + G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy); + +private: + + void SetParticle(const G4ParticleDefinition* p); + + // hide assignment operator + G4BraggModel & operator=(const G4BraggModel &right); + G4BraggModel(const G4BraggModel&); + + G4bool HasMaterial(const G4Material* material); + + G4double StoppingPower(const G4Material* material, + G4double kineticEnergy); + + G4double ElectronicStoppingPower(G4double z, + G4double kineticEnergy) const; + + void SetMoleculaNumber(G4int number) {iMolecula = number;}; + + G4double DEDX(const G4Material* material, G4double kineticEnergy); + + G4bool MolecIsInZiegler1988(const G4Material* material); + + G4double ChemicalFactor(G4double kineticEnergy, G4double eloss125) const; + + void SetExpStopPower125(G4double value) {expStopPower125 = value;}; + + const G4ParticleDefinition* particle; + G4double mass; + G4double spin; + G4double chargeSquare; + G4double massRate; + G4double ratio; + G4double highKinEnergy; + G4double lowKinEnergy; + G4int iMolecula; // index in the molecula's table + G4double protonMassAMU; + G4double theZieglerFactor; + G4double expStopPower125; // Experimental Stopping power at 125keV + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4BraggModel::MaxSecondaryEnergy( + const G4ParticleDefinition* p, + G4double kinEnergy) +{ + + G4double gamma= kinEnergy/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4BraggModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + G4double gamma= dp->GetKineticEnergy()/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh new file mode 100644 index 0000000000..3425ee48d3 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh @@ -0,0 +1,164 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4EmModelManager +// +// Author: Vladimir Ivanchenko +// +// Creation date: 07.05.2002 +// +// Modifications: 03.12.2002 V.Ivanchenko fix a bug in model selection +// +// Class Description: +// +// It is the unified energy loss process it calculates the continuous +// energy loss for charged particles using a set of Energy Loss +// models valid for different energy regions. There are a possibility +// to create and access to dE/dx and range tables, or to calculate +// that information on fly. + +// ------------------------------------------------------------------- +// + + +#ifndef G4EmModelManager_h +#define G4EmModelManager_h 1 + +#include "globals.hh" +#include "G4Material.hh" +#include "G4Track.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsVector.hh" + +class G4Step; +class G4ParticleDefinition; +class G4VEmModel; +class G4DataVector; +class G4VParticleChange; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4EmModelManager +{ +public: + + G4EmModelManager(); + + ~G4EmModelManager(); + + void Clear(); + + const G4DataVector* Initialise(const G4ParticleDefinition*, + const G4ParticleDefinition*, + G4double, + G4int); + + const G4DataVector* Cuts() const; + + const G4DataVector* SubCutoff() const; + + void FillDEDXVector(G4PhysicsVector*, const G4Material*); + + void FillLambdaVector(G4PhysicsVector*, const G4Material*); + + void FillSubLambdaVector(G4PhysicsVector*, const G4Material*); + + G4VEmModel* SelectModel(G4double energy); + + void AddEmModel(G4VEmModel*, G4int); + +private: + + // hide assignment operator + + G4EmModelManager(G4EmModelManager &); + G4EmModelManager & operator=(const G4EmModelManager &right); + +// ===================================================================== + +private: + + G4DataVector theCuts; + G4DataVector theSubCuts; + + G4VEmModel* emModels[5]; + G4int nEmModels; + G4int nmax; + + G4int order[5]; + G4double upperEkin[5]; + G4bool orderIsChanged; + + G4double minSubRange; + + const G4ParticleDefinition* particle; + const G4ParticleDefinition* secondaryParticle; + + G4int verboseLevel; + + // cash + G4VEmModel* currentModel; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4VEmModel* G4EmModelManager::SelectModel(G4double energy) +{ + if(nEmModels == 4 && energy > upperEkin[2]) { + currentModel = emModels[3]; + } else if(nEmModels >= 3 && energy > upperEkin[1]) { + currentModel = emModels[2]; + } else if(nEmModels >= 2 && energy > upperEkin[0]) { + currentModel = emModels[1]; + } else { + currentModel = emModels[0]; + } + return currentModel; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4DataVector* G4EmModelManager::Cuts() const +{ + return &theCuts; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4DataVector* G4EmModelManager::SubCutoff() const +{ + return &theSubCuts; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + + + diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh index 61b866c5cf..c1c1f58544 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossMessenger.hh,v 1.4 2001/07/11 10:03:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class Description: diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossMessengerSTD.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossMessengerSTD.hh new file mode 100644 index 0000000000..89aadb1d63 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossMessengerSTD.hh @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4EnergyLossMessengerSTD +// +// Author: +// +// Creation date: +// +// Modifications: 03.01.2002 V.Ivanchenko update to new design +// +// +// Class Description: +// This is a messenger class to interface to exchange information +// between G4VEnergyLoss and UI. +// +// /process/eLoss/ directory +// +// Commands : +// +// rndmStep * Randomize the proposed step by eLoss (false/true) +// fluct * Switch true/false the energy loss fluctuations +// subsec * Switch true/false the subcutoff generation +// minsubsec * Set the min. cut for subcutoff delta in range +// StepFunction * Set the energy loss step limitation parameters +// + +// ------------------------------------------------------------------- +// + +#ifndef G4EnergyLossMessengerSTD_h +#define G4EnergyLossMessengerSTD_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithABool; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4EnergyLossMessengerSTD: public G4UImessenger +{ +public: // with description + + G4EnergyLossMessengerSTD(); + ~G4EnergyLossMessengerSTD(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + + G4EnergyLossMessengerSTD & operator=(const G4EnergyLossMessengerSTD &right); + G4EnergyLossMessengerSTD(const G4EnergyLossMessengerSTD&); + + G4UIdirectory* eLossDirectory; + G4UIcmdWithABool* RndmStepCmd; + G4UIcmdWithABool* EnlossFlucCmd; + G4UIcmdWithABool* SubSecCmd; + G4UIcmdWithABool* IntegCmd; + G4UIcmdWithADoubleAndUnit* MinSubSecCmd; + G4UIcmdWithADoubleAndUnit* MinEnCmd; + G4UIcmdWithADoubleAndUnit* MaxEnCmd; + G4UIcommand* StepFuncCmd; + +}; + +#endif diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh index 4a7f43d5a7..684261f4dd 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossTables.hh,v 1.12 2001/10/29 09:40:51 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // diff --git a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh new file mode 100644 index 0000000000..8383037510 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.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. * +// ******************************************************************** +// +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4LossTableBuilder +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// +// Class Description: +// +// Provide building of dE/dx, range, and inverse range tables. + +// ------------------------------------------------------------------- +// + +#ifndef G4LossTableBuilder_h +#define G4LossTableBuilder_h 1 + +#include "g4std/vector" +#include "globals.hh" +#include "G4PhysicsTable.hh" + + +class G4LossTableBuilder +{ + +public: + + G4LossTableBuilder() {}; + + ~G4LossTableBuilder() {}; + + G4PhysicsTable* BuildDEDXTable(const G4std::vector&); + + G4PhysicsTable* BuildRangeTable(const G4PhysicsTable* dedxTable); + + G4PhysicsTable* BuildInverseRangeTable(const G4PhysicsTable* dedxTable, + const G4PhysicsTable* rangeTable); + +private: + + G4LossTableBuilder & operator=(const G4LossTableBuilder &right); + G4LossTableBuilder(const G4LossTableBuilder&); + +}; + +//....oooOO0OOooo.......oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh new file mode 100644 index 0000000000..4da92ec2b5 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh @@ -0,0 +1,230 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4LossTableManager +// +// Author: Vladimir Ivanchenko on base of G4LossTables class +// and Maria Grazia Pia ideas +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// +// Class Description: +// +// A utility static class, responsable for the energy loss tables +// for each particle +// +// Energy loss processes have to register their tables with this +// class. The responsibility of creating and deleting the tables +// remains with the energy loss classes. + +// ------------------------------------------------------------------- +// + +#ifndef G4LossTableManager_h +#define G4LossTableManager_h 1 + + +#include "g4std/map" +#include "g4std/vector" +#include "globals.hh" +#include "G4LossTableBuilder.hh" +#include "G4VEnergyLossSTD.hh" + +class G4PhysicsTable; +class G4Material; +class G4EnergyLossMessengerSTD; +class G4ParticleDefinition; + +class G4LossTableManager +{ + +public: + + static G4LossTableManager* Instance(); + + ~G4LossTableManager(); + + void Clear(); + + // get the DEDX or the range for a given particle/energy/material + G4double GetDEDX( + const G4ParticleDefinition *aParticle, + G4double kineticEnergy, + const G4Material *aMaterial); + + G4double GetRange( + const G4ParticleDefinition *aParticle, + G4double kineticEnergy, + const G4Material *aMaterial); + + G4double GetEnergy( + const G4ParticleDefinition *aParticle, + G4double range, + const G4Material *aMaterial); + + // to be called only by energy loss processes + void Register(G4VEnergyLossSTD* p); + + void BuildDEDXTable(const G4ParticleDefinition* aParticle); + + void RetrieveDEDXTable(const G4ParticleDefinition* aParticle, + G4VEnergyLossSTD*); + + void SetLossFluctuations(G4bool val); + + void SetSubCutoff(G4bool val); + + void SetIntegral(G4bool val); + + void SetRandomStep(G4bool val); + + void SetMinSubRange(G4double val); + + void SetMinEnergy(G4double val); + + void SetMaxEnergy(G4double val); + + void SetStepLimits(G4double v1, G4double v2); + + G4bool StorePhysicsTable(G4VEnergyLossSTD* el, + const G4String& dedx_file, + const G4String& range_file, + const G4String& inv_range_file, + G4bool ascii); + +private: + + G4LossTableManager(); + + void Initialise(); + + G4VEnergyLossSTD* BuildTables(const G4ParticleDefinition* aParticle); + + // G4LossTableManager(const G4LossTableManager&); + // const G4LossTableManager& operator=(const G4LossTableManager& right); + +private: + + static G4LossTableManager* theInstance; + + typedef const G4ParticleDefinition* PD; + G4std::map > loss_map; + + G4std::vector loss_vector; + G4std::vector part_vector; + G4std::vector base_part_vector; + G4std::vector tables_are_built; + G4std::vector dedx_vector; + G4std::vector range_vector; + G4std::vector inv_range_vector; + + // cash + G4VEnergyLossSTD* currentLoss; + PD currentParticle; + PD theElectron; + + G4int n_loss; + + G4bool all_tables_are_built; + G4bool all_particles_are_mapped; + G4bool electron_table_are_built; + G4bool lossFluctuationFlag; + G4bool subCutoffFlag; + G4bool rndmStepFlag; + G4bool integral; + + G4double minSubRange; + G4double maxRangeVariation; + G4double maxFinalStep; + G4double minKinEnergy; + G4double maxKinEnergy; + + G4VEnergyLossSTD* eIonisation; + G4LossTableBuilder* tableBuilder; + G4EnergyLossMessengerSTD* theMessenger; + G4int verbose; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +inline G4double G4LossTableManager::GetDEDX( + const G4ParticleDefinition *aParticle, + G4double kineticEnergy, + const G4Material *aMaterial) +{ + if(aParticle != currentParticle) { + G4std::map >::const_iterator pos; + if((pos = loss_map.find(aParticle)) == loss_map.end()) return 0.0; + currentParticle = aParticle; + currentLoss = (*pos).second; + } + return currentLoss->GetDEDX(kineticEnergy, aMaterial); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +inline G4double G4LossTableManager::GetRange( + const G4ParticleDefinition *aParticle, + G4double kineticEnergy, + const G4Material *aMaterial) +{ + if(aParticle != currentParticle) { + G4std::map >::const_iterator pos; + if((pos = loss_map.find(aParticle)) == loss_map.end()) return 0.0; + currentParticle = aParticle; + currentLoss = (*pos).second; + } + return currentLoss->GetRange(kineticEnergy, aMaterial); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double G4LossTableManager::GetEnergy( + const G4ParticleDefinition *aParticle, + G4double range, + const G4Material *aMaterial) +{ + if(aParticle != currentParticle) { + G4std::map >::const_iterator pos; + if((pos = loss_map.find(aParticle)) == loss_map.end()) return 0.0; + currentParticle = aParticle; + currentLoss = (*pos).second; + } + return currentLoss->GetKineticEnergy(range, aMaterial); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh index a201cc6c63..82fd1ba856 100644 --- a/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MultipleScattering.hh,v 1.9 2002/05/24 06:11:24 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MultipleScattering.hh,v 1.11 2002/10/30 11:30:47 urban Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //------------- G4MultipleScattering physics process -------------------------- // by Laszlo Urban, March 2001 @@ -39,7 +39,7 @@ // (L.Urban) // 24-04-02 some minor changes in boundary algorithm, L.Urban // 24-05-02 changes in data members, L.Urban -// +// 30-10-02 changes in data members, L.Urban //------------------------------------------------------------------------------ // class description @@ -150,26 +150,21 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess // to reduce the energy/step dependence void SetBoundary(G4bool value) {boundary = value;}; + void Setfacxsi(G4double value) {facxsi = value; + G4cout << " facxsi=" << facxsi << G4endl;}; void SetFacrange(G4double val) {facrange=val; - nsmallstep = G4int(1./facrange) ; - G4cout << " f=" << facrange - << " n=" << nsmallstep << G4endl ;}; + nsmallstep = G4int(log((cf+facrange-1.)/ + facrange)/log(cf))+1 ; + G4cout << " fr=" << facrange + << " nsmall=" << nsmallstep << G4endl ;}; // Steplimit after boundary crossing = facrange*range // estimated nb of steps at boundary nsmallstep = 1/facrange - // parameters needed near to boundary - - void SetTuning(G4double value) {tuning = value;}; - void SetCparm (G4double value) {cparm = value;}; - void SetTlim (G4double value) {Tlim = value;}; - // tuning of the transport mean free path - void SetLateralDisplacementFlag(G4bool flag) {fLatDisplFlag = flag;}; // lateral displacement to be/not to be computed void SetNuclCorrPar(G4double val) {NuclCorrPar = val;}; void SetFactPar(G4double val) {FactPar = val;}; - // corrs to transport cross section for high energy protected: // with description @@ -206,8 +201,9 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess // model parameters G4bool boundary; // spec. handling near boundaries - G4double facrange,tlimit; + G4double facrange,tlimit,tlimitmin,cf; G4int stepno,stepnolastmsc,nsmallstep ; + G4double laststep ; G4GPILSelection valueGPILSelectionMSC; G4double pcz,zmean; // z(geom.step length) @@ -216,10 +212,6 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess G4double range,T1,lambda1,cth1,z1,t1,dtrl; // used to reduce the energy // (or step length) dependence - G4double tuning; // param. for lambda tuning - G4double cparm; // " - G4double Tlim ; // " - // with/without lateral displacement G4bool fLatDisplFlag; @@ -228,6 +220,11 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess G4double FactPar; G4ParticleChangeForMSC fParticleChange; + + G4double alfa1,alfa2,alfa3,xsi,c0,facxsi ; // angle distr. parameters + // facxsi : some tuning + // possibility in the tail + }; #include "G4MultipleScattering.icc" diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc b/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc index fa27dbef56..3b008f633e 100644 --- a/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MultipleScattering.icc,v 1.7 2002/05/24 06:11:24 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //------------ G4MultipleScattering physics process --------------------------- // by Laszlo Urban, March 2001 diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh b/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh new file mode 100644 index 0000000000..a73ffa22f2 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh @@ -0,0 +1,236 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// +//------------- G4MultipleScattering physics process -------------------------- +// by Laszlo Urban, March 2001 +// +// 07-08-01 new methods Store/Retrieve PhysicsTable +// 23-08-01 new angle and z distribution,energy dependence reduced, +// Store,Retrieve methods commented out temporarily, L.Urban +// 11-09-01 G4MultipleScatteringx put as default: G4MultipleScattering +// Store,Retrieve methods reactived (mma) +// 13-09-01 Unused TrueToGeomTransformation method deleted, +// class description (L.Urban) +// 19-09-01 come back to previous process name msc +// 17-04-02 NEW angle distribution + boundary algorithm modified, L.Urban +// 22-04-02 boundary algorithm modified -> important improvement in timing !!!! +// (L.Urban) +// 24-05-02 changes in data members, L.Urban +// 30-10-02 changes in data members, L.Urban +// +//------------------------------------------------------------------------------ + +// class description +// +// The class simulates the multiple scattering for any kind +// of charged particle. +// +// class description - end + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4MultipleScatteringSTD_h +#define G4MultipleScatteringSTD_h 1 + +#include "G4VContinuousDiscreteProcess.hh" +#include "G4GPILSelection.hh" +#include "G4PhysicsLogVector.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ParticleChangeForMSC.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MultipleScatteringSTD : public G4VContinuousDiscreteProcess + +{ + public: // with description + + G4MultipleScatteringSTD(const G4String& processName="msc"); + + ~G4MultipleScatteringSTD(); + + G4bool IsApplicable ( const G4ParticleDefinition& ); + // returns true for charged particles, false otherwise + + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + // This function overloads the corresponding virtual function + // of the base class G4VContinuousDiscreteProcess. + // It is invoked by the G4ParticleWithCuts()::SetCut() method. + // It prepares the table of the transport mean free paths + // for every material. + + void PrintInfoDefinition(); + // Print few lines of informations about the process: validity range, + // origine ..etc.. + // Invoked by BuildPhysicsTable(). + + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store TransportMeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve TransportMeanFreePath tables from an external file + // specified by 'directory' + + + G4double AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety, + G4GPILSelection* selection); + // The function overloads the corresponding function of the base + // class.It limits the step near to boundaries only + // and invokes the method GetContinuousStepLimit at every step. + + G4double GetContinuousStepLimit(const G4Track& aTrack, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety); + // It performs the true step length --> geometrical step length + // transformation. It is invoked by the + // AlongStepGetPhysicalInteractionLength method. + + G4double GetMeanFreePath(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // It sets the force condition to true only + // in order to have the PostStepDoIt called at every step. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + + G4double GetTransportMeanFreePath( + G4double KineticEnergy,G4Material* material); + // Just a utility method to get the values of the transport + // mean free path . (It is not used inside the class.) + + G4VParticleChange* AlongStepDoIt(const G4Track& aTrack,const G4Step& aStep); + // The geometrical step length --> true path length transformation + // is performed here (the inverse of the transformation done + // by GetContinuousStepLimit). + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack,const G4Step& aStep); + // It computes the final state of the particle: samples the + // ScatteringSTD angle and computes the lateral displacement. + // The final state is returned as a ParticleChange object. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + void Setpcz(G4double value) {pcz = value;}; + // geom. step length distribution + + void Setdtrl(G4double value) {dtrl = value;}; + // to reduce the energy/step dependence + + void SetBoundary(G4bool value) {boundary = value;}; + void Setfacxsi(G4double value) {facxsi = value; + G4cout << " facxsi=" << facxsi << G4endl;}; + void SetFacrange(G4double val) {facrange=val; + nsmallstep = G4int(log((cf+facrange-1.)/ + facrange)/log(cf))+1 ; + G4cout << " fr=" << facrange + << " nsmall=" << nsmallstep << G4endl ;}; + // Steplimit after boundary crossing = facrange*range + // estimated nb of steps at boundary nsmallstep = 1/facrange + + void SetLateralDisplacementFlag(G4bool flag) {fLatDisplFlag = flag;}; + // lateral displacement to be/not to be computed + + void SetNuclCorrPar(G4double val) {NuclCorrPar = val;}; + void SetFactPar(G4double val) {FactPar = val;}; + // corrs to transport cross section for high energy + + protected: // with description + + virtual G4double ComputeTransportCrossSection( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicWeight); + // It computes the transport cross section. + // The transport mean free path is 1/(transport cross section). + + private: + + // hide assignment operator as private + G4MultipleScatteringSTD & operator = (const G4MultipleScatteringSTD &right); + G4MultipleScatteringSTD ( const G4MultipleScatteringSTD &); + + private: // data members + + G4PhysicsTable* theTransportMeanFreePathTable; + + G4double fTransportMeanFreePath,kappa; + + G4double taubig,tausmall,taulim; + + G4double LowestKineticEnergy; + G4double HighestKineticEnergy; + G4int TotBin; + + G4int materialIndex; + + G4double tLast; + G4double zLast; + + // model parameters + G4bool boundary; // spec. handling near boundaries + G4double facrange,tlimit,tlimitmin,cf; + G4int stepno, stepnolastmsc, nsmallstep; + G4double laststep ; + G4GPILSelection valueGPILSelectionMSC; + + G4double pcz,zmean; // z(geom.step length) + // distribution + + G4double range,T1,lambda1,cth1,z1,t1,dtrl; // used to reduce the energy + // (or step length) dependence + + + // with/without lateral displacement + G4bool fLatDisplFlag; + + // nuclear size effect correction + G4double NuclCorrPar; + G4double FactPar; + + G4ParticleChangeForMSC fParticleChange; + + G4double alfa1,alfa2,alfa3,xsi,c0,facxsi ; // angle distr. parameters + // facxsi : some tuning + // possibility in the tail + +}; + +#include "G4MultipleScatteringSTD.icc" + +#endif + + + diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.icc b/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.icc new file mode 100644 index 0000000000..43b398acd0 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.icc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: G4MultipleScatteringSTD.icc,v 1.1 2002/10/11 16:41:12 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +//------------ G4MultipleScattering physics process --------------------------- +// by Laszlo Urban, March 2001 +// +// Modified: +// +// 18-05-01 V.Ivanchenko Clean up against Linux ANSI compilation +// 23-08-01 new angle and z distribution,energy dependence reduced, +// Store,Retrieve methods commented out temporarily, L.Urban +// 27-08-01 bugfix in AlongStepDoIt, L.Urban +// 28-08-01 GetContinuousStepLimit and AlongStepDoIt moved to .cc file (mma) +// 11-09-01 G4MultipleScatteringx put as default: G4MultipleScattering (mma) +// +//------------------------------------------------------------------------------ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline +G4bool G4MultipleScatteringSTD::IsApplicable(const G4ParticleDefinition& particle) +{ + return(particle.GetPDGCharge() != 0.); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double G4MultipleScatteringSTD::AlongStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety, + G4GPILSelection* selection) +{ + // get Step limit proposed by the process + G4double steplength = GetContinuousStepLimit(track,previousStepSize, + currentMinimumStep,currentSafety); + // set return value for G4GPILSelection + *selection = valueGPILSelectionMSC; + return steplength; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double G4MultipleScatteringSTD::GetMeanFreePath( + const G4Track& track, + G4double, + G4ForceCondition* condition) + + // it does not limit the Step size , but it sets condition to + // Forced , because the PostStepDoIt always has to be called + +{ + *condition = Forced; + return DBL_MAX; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline +G4double G4MultipleScatteringSTD::GetTransportMeanFreePath(G4double KineticEnergy, + G4Material* material) +{ + G4bool isOut; + + return (*theTransportMeanFreePathTable) + (material->GetIndex())->GetValue(KineticEnergy,isOut); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh b/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh new file mode 100644 index 0000000000..fcc9072204 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh @@ -0,0 +1,122 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4SCProcessorStand +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// Class for simualtion of subCutoff + +// ------------------------------------------------------------------- +// + +#ifndef G4SCProcessorStand_h +#define G4SCProcessorStand_h 1 + + +#include "G4VSubCutoffProcessor.hh" +#include "G4PhysicsTable.hh" +#include "G4DataVector.hh" + +class G4Navigator; +class G4Material; + +class G4SCProcessorStand : public G4VSubCutoffProcessor +{ + +public: + + G4SCProcessorStand(); + + ~G4SCProcessorStand(); + + virtual G4std::vector* SampleSecondary(const G4Step& step, + const G4DynamicParticle*, + G4double meanLoss); + + virtual void Initialise(const G4ParticleDefinition*, + const G4ParticleDefinition*, + G4EmModelManager* ); + + virtual void SetLambdaSubTable(G4PhysicsTable*); + + virtual G4PhysicsTable* LambdaSubTable(); + +protected: + +private: + + // hide assignment operator + G4SCProcessorStand & operator=(const G4SCProcessorStand &right); + G4SCProcessorStand(const G4SCProcessorStand&); + + G4PhysicsTable* theLambdaSubTable; + const G4ParticleDefinition* particle; + const G4ParticleDefinition* secondaryParticle; + const G4ParticleDefinition* thePositron; + G4EmModelManager* modelManager; + G4Navigator* navigator; + const G4DataVector* theCuts; + const G4DataVector* theSubCuts; + G4DataVector rangeCuts; + + // cash + const G4Material* material; + G4int materialIndex; + G4double cut; + G4double subcut; + G4double rcut; + G4double initialMass; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4SCProcessorStand::SetLambdaSubTable(G4PhysicsTable* table) +{ + if(theLambdaSubTable) theLambdaSubTable->clearAndDestroy(); + theLambdaSubTable = table; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4PhysicsTable* G4SCProcessorStand::LambdaSubTable() +{ + return theLambdaSubTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + diff --git a/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh b/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh new file mode 100644 index 0000000000..610136bd26 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh @@ -0,0 +1,107 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4UniversalFluctuation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: 09.12.2002 VI remove warnings +// +// Class Description: +// +// Implementation of energy loss fluctuations + +// ------------------------------------------------------------------- +// + +#ifndef G4UniversalFluctuation_h +#define G4UniversalFluctuation_h 1 + + +#include "G4VEmFluctuationModel.hh" + +class G4UniversalFluctuation : public G4VEmFluctuationModel +{ + +public: + + G4UniversalFluctuation(); + + ~G4UniversalFluctuation(); + + virtual void SampleFluctuations(const G4Material*, const G4DynamicParticle*, + G4double&, G4double&, G4double); + + virtual void Initialise(const G4ParticleDefinition*); + +protected: + +private: + + // hide assignment operator + G4UniversalFluctuation & operator=(const G4UniversalFluctuation &right); + G4UniversalFluctuation(const G4UniversalFluctuation&); + + const G4ParticleDefinition* particle; + G4double particleMass; + G4double chargeSquare; + + const G4Material* lastMaterial; + G4int materialIndex; + + // data members to speed up the fluctuation calculation + G4double ipotFluct; + G4double electronDensity; + G4double zeff; + + G4double f1Fluct; + G4double f2Fluct; + G4double e1Fluct; + G4double e2Fluct; + G4double rateFluct; + G4double e1LogFluct; + G4double e2LogFluct; + G4double ipotLogFluct; + + G4double minNumberInteractionsBohr; + G4double theBohrBeta2; + G4double minLoss; + G4double problim; + G4double sumalim; + G4double alim; + G4int nmaxCont1; + G4int nmaxCont2; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + diff --git a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh new file mode 100644 index 0000000000..1fcc7728ca --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4VEmFluctuationModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// Abstract class for interface to simualtion of energy loss fluctuations + +// ------------------------------------------------------------------- +// + +#ifndef G4VEmFluctuationModel_h +#define G4VEmFluctuationModel_h 1 + + +#include "globals.hh" + +class G4ParticleDefinition; +class G4DynamicParticle; +class G4Material; + +class G4VEmFluctuationModel +{ + +public: + + G4VEmFluctuationModel() {}; + + virtual ~G4VEmFluctuationModel() {}; + + virtual void SampleFluctuations(const G4Material*, const G4DynamicParticle*, + G4double& tmax, G4double& length, G4double meanLoss) = 0; + + virtual void Initialise(const G4ParticleDefinition*) = 0; + +protected: + +private: + + // hide assignment operator + G4VEmFluctuationModel & operator=(const G4VEmFluctuationModel &right); + G4VEmFluctuationModel(const G4VEmFluctuationModel&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + diff --git a/source/processes/electromagnetic/utils/include/G4VEmModel.hh b/source/processes/electromagnetic/utils/include/G4VEmModel.hh new file mode 100644 index 0000000000..27525a5b1d --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4VEmModel.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4VEmModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: + +// +// Class Description: +// +// Abstract interface to energy loss models + +// ------------------------------------------------------------------- +// + +#ifndef G4VEmModel_h +#define G4VEmModel_h 1 + +#include "globals.hh" +#include "g4std/vector" +#include "G4DynamicParticle.hh" +#include "G4ParticleDefinition.hh" +#include "G4Material.hh" +#include "G4ThreeVector.hh" + +class G4VEmModel +{ + +public: + + G4VEmModel() {}; + + virtual ~G4VEmModel() {}; + + virtual G4double HighEnergyLimit(const G4ParticleDefinition*, + const G4Material*) = 0; + + virtual G4double LowEnergyLimit(const G4ParticleDefinition*, + const G4Material*) = 0; + + virtual void SetHighEnergyLimit(const G4Material*, G4double) = 0; + + virtual void SetLowEnergyLimit(const G4Material*, G4double) = 0; + + virtual G4double MinEnergyCut(const G4ParticleDefinition*, + const G4Material*) = 0; + + virtual G4bool IsInCharge(const G4ParticleDefinition*, + const G4Material*) = 0; + + virtual G4double ComputeDEDX(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy) = 0; + + virtual G4double CrossSection(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy) = 0; + + virtual G4std::vector* SampleSecondary( + const G4Material*, + const G4DynamicParticle*, + G4double tmin, + G4double tmax) = 0; + + virtual G4double MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle) = 0; + +protected: + + virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kineticEnergy) = 0; + +private: + + // hide assignment operator + // G4VEmModel & operator=(const G4VEmModel &right); + // G4VEmModel(const G4VEmModel&); + +}; + +#endif + + + + diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh index dd0952ee08..716f9f2777 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEnergyLoss.hh,v 1.13 2001/11/08 08:09:57 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEnergyLoss.hh,v 1.14 2002/09/02 15:46:55 maire Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -203,7 +203,7 @@ class G4VEnergyLoss : public G4VContinuousDiscreteProcess static void SetSubSec(G4bool value); // switch on/off the generation of the subcutoff secondaries - // ( default = subcutoff secondary generation ) + // ( default = no subcutoff secondary generation ) static void SetMinDeltaCutInRange(G4double value); // sets minimal cut value for the subcutoff secondaries diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh new file mode 100644 index 0000000000..9349bf9971 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh @@ -0,0 +1,539 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4BetheBlochModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// It is the unified energy loss process it calculates the continuous +// energy loss for charged particles using a set of Energy Loss +// models valid for different energy regions. There are a possibility +// to create and access to dE/dx and range tables, or to calculate +// that information on fly. + +// ------------------------------------------------------------------- +// + +#ifndef G4VEnergyLossSTD_h +#define G4VEnergyLossSTD_h 1 + +#include "G4VContinuousDiscreteProcess.hh" +#include "globals.hh" +#include "G4Material.hh" +#include "G4Track.hh" +#include "G4EmModelManager.hh" + +class G4Step; +class G4ParticleDefinition; +class G4VEmModel; +class G4VEffectiveChargeModel; +class G4VEmFluctuationModel; +class G4DataVector; +class G4VParticleChange; +class G4PhysicsTable; +class G4PhysicsVector; +class G4VSubCutoffProcessor; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4VEnergyLossSTD : public G4VContinuousDiscreteProcess +{ +public: + + G4VEnergyLossSTD(const G4String& name = "EnergyLoss", + G4ProcessType type = fElectromagnetic); + + ~G4VEnergyLossSTD(); + + void Initialise(); + + virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); + + virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + + virtual G4bool IsApplicable(const G4ParticleDefinition& p); + // True for all charged particles + + virtual void BuildPhysicsTable(const G4ParticleDefinition&); + // Build physics table during initialisation + + virtual void PrintInfoDefinition() const; + // Print out of the class parameters + + G4PhysicsTable* BuildDEDXTable(); + + void SetParticles(const G4ParticleDefinition*, + const G4ParticleDefinition*, + const G4ParticleDefinition*); + + void SetParticle(const G4ParticleDefinition* p); + void SetBaseParticle(const G4ParticleDefinition* p); + void SetSecondaryParticle(const G4ParticleDefinition* p); + + const G4ParticleDefinition* Particle() const; + const G4ParticleDefinition* BaseParticle() const; + const G4ParticleDefinition* SecondaryParticle() const; + // Print out of the class parameters + + void SetDEDXBinning(G4int nbins); + G4int DEDXBinning() const; + // Print out of the class parameters + + void SetLambdaBinning(G4int nbins); + G4int LambdaBinning() const; + // Print out of the class parameters + + void SetMinKinEnergy(G4double e); + G4double MinKinEnergy() const; + // Print out of the class parameters + + void SetMaxKinEnergy(G4double e); + G4double MaxKinEnergy() const; + // Print out of the class parameters + + G4bool StorePhysicsTable(G4ParticleDefinition*, + const G4String& directory, + G4bool ascii = false); + // Store PhysicsTable in a file. + // Return false in case of failure at I/O + + G4bool RetrievePhysicsTable(G4ParticleDefinition*, + const G4String& directory, + G4bool ascii); + // Retrieve Physics from a file. + // (return true if the Physics Table can be build by using file) + // (return false if the process has no functionality or in case of failure) + // File name should is constructed as processName+particleName and the + // should be placed under the directory specifed by the argument. + + void AddEmModel(G4VEmModel*, G4int); + + void AddEmFluctuationModel(G4VEmFluctuationModel*); + + void SetSubCutoffProcessor(G4VSubCutoffProcessor*); + + void SetDEDXTable(G4PhysicsTable* p); + G4PhysicsTable* DEDXTable() const {return theDEDXTable;}; + + void SetRangeTable(G4PhysicsTable* p); + G4PhysicsTable* RangeTable() const {return theRangeTable;}; + + void SetInverseRangeTable(G4PhysicsTable* p); + G4PhysicsTable* InverseRangeTable() const {return theInverseRangeTable;}; + + void SetSecondaryRangeTable(G4PhysicsTable* p); + + const G4PhysicsTable* LambdaTable() {return theLambdaTable;}; + + G4double GetDEDX(G4double kineticEnergy, const G4Material* material); + + G4double GetRange(G4double kineticEnergy, const G4Material* material); + + G4double GetKineticEnergy(G4double range, const G4Material* material); + + G4double GetLambda(G4double kineticEnergy, const G4Material* material); + // It returns the MeanFreePath of the process for a (energy, material) + + G4double MicroscopicCrossSection(G4double kineticEnergy, const G4Material* material); + // It returns the MeanFreePath of the process for a (energy, material) + + void SetLinearLossLimit(G4double val) {linLossLimit = val;}; + + void SetLossFluctuations(G4bool val) {lossFluctuationFlag = val;}; + + void SetSubCutoff(G4bool val) {if(subCutoffIsDesired) subCutoffFlag = val;}; + + void SetIntegral(G4bool val) {integral = val;}; + + void SetRandomStep(G4bool val) {rndmStepFlag = val;}; + + void SetMinSubRange(G4double val) {minSubRange = val;}; + + void SetStepLimits(G4double v1, G4double v2); + + G4bool TablesAreBuilt() {return tablesAreBuilt;}; + + G4double MeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + G4double ContinuousStepLimit(const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety); + +protected: + + virtual G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + virtual G4double GetContinuousStepLimit(const G4Track& track, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety); + + virtual const G4ParticleDefinition* DefineBaseParticle( + const G4ParticleDefinition*) {return 0;}; + + virtual G4PhysicsVector* DEDXPhysicsVector(const G4Material*); + + virtual G4PhysicsVector* LambdaPhysicsVector(const G4Material*); + + virtual G4PhysicsVector* SubLambdaPhysicsVector(const G4Material*); + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, G4double cut) = 0; + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp) = 0; + + void SetMassRatio(G4double val) {massRatio = val;}; + + void SetReduceFactor(G4double val) {reduceFactor = val;}; + + void SetChargeSquare(G4double val) {chargeSquare = val;}; + + void SetChargeSquareRatio(G4double val) {chargeSqRatio = val;}; + + void SetSubCutoffIsDesired(G4bool val); + +private: + + void Clear(); + + void DefineMaterial(const G4Material* material); + + G4PhysicsTable* BuildLambdaTable(); + + G4PhysicsTable* BuildLambdaSubTable(); + + // hide assignment operator + + G4VEnergyLossSTD(G4VEnergyLossSTD &); + G4VEnergyLossSTD & operator=(const G4VEnergyLossSTD &right); + +// ===================================================================== + +private: + + G4EmModelManager* modelManager; + G4VSubCutoffProcessor* subCutoffProcessor; + G4VEmFluctuationModel* emFluctModel; + + // tables and vectors + G4PhysicsTable* theDEDXTable; + G4PhysicsTable* theRangeTable; + G4PhysicsTable* theSecondaryRangeTable; + G4PhysicsTable* theInverseRangeTable; + G4PhysicsTable* theLambdaTable; + + const G4DataVector* theCuts; + + G4double minKinEnergy; + G4double maxKinEnergy; + G4int nDEDXBins; + G4int nLambdaBins; + + const G4ParticleDefinition* particle; + const G4ParticleDefinition* baseParticle; + const G4ParticleDefinition* secondaryParticle; + const G4ParticleDefinition* theGamma; + const G4ParticleDefinition* theElectron; + + G4double massRatio; + G4double reduceFactor; + G4double chargeSquare; + G4double chargeSqRatio; + + G4bool lossFluctuationFlag; + G4bool subCutoffFlag; + G4bool subCutoffIsDesired; + G4bool rndmStepFlag; + G4bool hasRestProcess; + G4bool tablesAreBuilt; + G4bool integral; + + G4double preStepLambda; + G4double fRange; + G4double preStepKinEnergy; + G4double preStepScaledEnergy; + G4double linLossLimit; + G4double minSubRange; + G4double dRoverRange; + //G4double maxFinalStep; + G4double finalRange; + G4double c1lim; + G4double c2lim; + G4double c3lim; + + // cash + const G4Material* currentMaterial; + G4int currentMaterialIndex; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4bool G4VEnergyLossSTD::IsApplicable(const G4ParticleDefinition& p) +{ + return (p.GetPDGCharge() != 0.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::DefineMaterial(const G4Material* material) +{ + if(material != currentMaterial) { + currentMaterial = material; + currentMaterialIndex = material->GetIndex(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::GetDEDX(G4double kineticEnergy, + const G4Material* material) +{ + DefineMaterial(material); + G4bool b; + return ((*theDEDXTable)[currentMaterialIndex]-> + GetValue(kineticEnergy*massRatio, b))*chargeSqRatio; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::GetRange(G4double kineticEnergy, + const G4Material* material) +{ + DefineMaterial(material); + G4bool b; + return ((*theRangeTable)[currentMaterialIndex]-> + GetValue(kineticEnergy*massRatio, b))*reduceFactor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::GetKineticEnergy(G4double range, + const G4Material* material) +{ + DefineMaterial(material); + G4bool b; + return ((*theInverseRangeTable)[currentMaterialIndex]-> + GetValue(range/reduceFactor, b))/massRatio; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetSubCutoffIsDesired(G4bool val) +{ + subCutoffIsDesired = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::GetMeanFreePath(const G4Track& track, + G4double, + G4ForceCondition* cond) +{ + G4bool b; + *cond = NotForced; + + DefineMaterial(track.GetMaterial()); + preStepKinEnergy = track.GetKineticEnergy(); + preStepLambda = (((*theLambdaTable)[currentMaterialIndex])-> + GetValue(preStepKinEnergy, b)) * chargeSqRatio; + G4double x = DBL_MAX; + if(0.0 < preStepLambda) x = 1.0/preStepLambda; + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::GetContinuousStepLimit(const G4Track&, + G4double, G4double, G4double&) +{ + G4double x = DBL_MAX; + preStepScaledEnergy = preStepKinEnergy*massRatio; + + if(theRangeTable) { + G4bool b; + fRange = ((*theRangeTable)[currentMaterialIndex])-> + GetValue(preStepScaledEnergy, b)*reduceFactor; + + if(integral || fRange <= finalRange) { + x = fRange; + + } else { + x = c1lim*fRange+c2lim+c3lim/fRange; + if(rndmStepFlag) x = finalRange + (x-finalRange)*G4UniformRand(); + if(x > fRange) x = fRange; + } + + } + + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetParticle(const G4ParticleDefinition* p) +{ + particle = p; + if(!baseParticle) baseParticle = DefineBaseParticle(particle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetBaseParticle(const G4ParticleDefinition* p) +{ + baseParticle = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetSecondaryParticle(const G4ParticleDefinition* p) +{ + secondaryParticle = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4ParticleDefinition* G4VEnergyLossSTD::Particle() const +{ + return particle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4ParticleDefinition* G4VEnergyLossSTD::BaseParticle() const +{ + return baseParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4ParticleDefinition* G4VEnergyLossSTD::SecondaryParticle() const +{ + return secondaryParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetDEDXBinning(G4int nbins) +{ + nDEDXBins = nbins; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4int G4VEnergyLossSTD::DEDXBinning() const +{ + return nDEDXBins; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetLambdaBinning(G4int nbins) +{ + nLambdaBins = nbins; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4int G4VEnergyLossSTD::LambdaBinning() const +{ + return nLambdaBins; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetMinKinEnergy(G4double e) +{ + minKinEnergy = e; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::MinKinEnergy() const +{ + return minKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetMaxKinEnergy(G4double e) +{ + maxKinEnergy = e; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::MaxKinEnergy() const +{ + return maxKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEnergyLossSTD::GetLambda(G4double kineticEnergy, + const G4Material* material) +{ + DefineMaterial(material); + G4double x = DBL_MAX; + G4bool b; + if(theLambdaTable) { + G4double y = (((*theLambdaTable)[currentMaterialIndex])-> + GetValue(kineticEnergy, b)); + if(y > 0.0) x = 1.0/y; + } + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossSTD::SetStepLimits(G4double v1, G4double v2) +{ + dRoverRange = v1; + finalRange = v2; + c1lim=dRoverRange; + c2lim=2.*(1-dRoverRange)*finalRange; + c3lim=-(1.-dRoverRange)*finalRange*finalRange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + + + diff --git a/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh b/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh new file mode 100644 index 0000000000..2bd189d934 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4VSubCutoffProcessor +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// Abstract class for interface to simualtion of subCutoff + +// ------------------------------------------------------------------- +// + +#ifndef G4VSubCutoffProcessor_h +#define G4VSubCutoffProcessor_h 1 + + +#include "globals.hh" +#include "g4std/vector" + +class G4Step; +class G4Track; +class G4ParticleDefinition; +class G4DynamicParticle; +class G4EmModelManager; +class G4PhysicsTable; + +class G4VSubCutoffProcessor +{ + +public: + + G4VSubCutoffProcessor() {}; + + virtual ~G4VSubCutoffProcessor() {}; + + virtual G4std::vector* SampleSecondary(const G4Step& step, + const G4DynamicParticle*, + G4double meanLoss) {return 0;}; + + virtual void Initialise(const G4ParticleDefinition*, + const G4ParticleDefinition*, + G4EmModelManager* ) {}; + + virtual void SetLambdaSubTable(G4PhysicsTable*) {}; + + virtual G4PhysicsTable* LambdaSubTable() {return 0;}; + +protected: + +private: + + // hide assignment operator + G4VSubCutoffProcessor & operator=(const G4VSubCutoffProcessor &right); + G4VSubCutoffProcessor(const G4VSubCutoffProcessor&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + diff --git a/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc b/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc new file mode 100644 index 0000000000..30281d6bc3 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc @@ -0,0 +1,300 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4BetheBlochModel +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 03.01.2002 +// +// Modifications: 04.12.2002 VI Fix problem of G4DynamicParticle constructor +// +// ------------------------------------------------------------------- +// + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4BetheBlochModel.hh" +#include "Randomize.hh" +#include "G4Electron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4BetheBlochModel::G4BetheBlochModel(const G4ParticleDefinition* p) + : G4VEmModel(), + particle(0), + highKinEnergy(100.*TeV), + lowKinEnergy(2.0*MeV), + twoln10(2.0*log(10.0)), + bg2lim(0.0169), + taulim(8.4146e-3) +{ + if(p) SetParticle(p); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4BetheBlochModel::~G4BetheBlochModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4BetheBlochModel::SetParticle(const G4ParticleDefinition* p) +{ + particle = p; + mass = particle->GetPDGMass(); + spin = particle->GetPDGSpin(); + G4double q = particle->GetPDGCharge()/eplus; + chargeSquare = q*q; + lowKinEnergy *= mass/proton_mass_c2; + ratio = electron_mass_c2/mass; + qc = mass/ratio; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BetheBlochModel::HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + if(!particle) SetParticle(p); + return highKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BetheBlochModel::LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + if(!particle) SetParticle(p); + return lowKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BetheBlochModel::MinEnergyCut(const G4ParticleDefinition* p, + const G4Material* material) +{ + return material->GetIonisation()->GetMeanExcitationEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4BetheBlochModel::IsInCharge(const G4ParticleDefinition* p, + const G4Material*) +{ + return (p->GetPDGCharge() != 0.0 && p->GetPDGMass() > 10.*MeV); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BetheBlochModel::ComputeDEDX(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy) +{ + if(!particle) SetParticle(p); + G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); + G4double tau = kineticEnergy/mass; + G4double x = 1.0; + if(cutEnergy < tmax) x = cutEnergy/tmax; + G4double gam = tau + 1.0; + G4double beta2 = 1. - 1./(gam*gam); + G4double bg2 = tau * (tau+2.0); + + G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + G4double eexc2 = eexc*eexc; + G4double taul = material->GetIonisation()->GetTaul(); + G4double cden = material->GetIonisation()->GetCdensity(); + G4double mden = material->GetIonisation()->GetMdensity(); + G4double aden = material->GetIonisation()->GetAdensity(); + G4double x0den = material->GetIonisation()->GetX0density(); + G4double x1den = material->GetIonisation()->GetX1density(); + G4double* shellCorrectionVector = + material->GetIonisation()->GetShellCorrectionVector(); + G4double eDensity = material->GetElectronDensity(); + + G4double dedx = log(2.0*electron_mass_c2*bg2*tmax*x/eexc2)-(1.0 + x)*beta2; + + if(0.5 == spin) { + G4double del = 0.5*x*tmax/(kineticEnergy + mass); + dedx += del*del; + } + + // density correction + x = log(bg2)/twoln10; + if ( x >= x0den ) { + dedx -= twoln10*x - cden ; + if ( x < x1den ) dedx -= aden*pow((x1den-x),mden) ; + } + + // shell correction + G4double sh = 0.0; + x = 1.0; + + if ( bg2 > bg2lim ) { + for (G4int k=0; k<3; k++) { + x *= bg2 ; + sh += shellCorrectionVector[k]/x; + } + + } else { + for (G4int k=0; k<3; k++) { + x *= bg2lim ; + sh += shellCorrectionVector[k]/x; + } + sh *= log(tau/taul)/log(taulim/taul); + } + dedx -= sh; + + // now compute the total ionization loss + + if (dedx < 0.0) dedx = 0.0 ; + + dedx *= twopi_mc2_rcl2*chargeSquare*eDensity/beta2; + + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BetheBlochModel::CrossSection(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy) +{ + if(!particle) SetParticle(p); + G4double cross = 0.0; + G4double tmax = G4std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); + if(cutEnergy < tmax) { + + G4double x = cutEnergy/tmax; + G4double energy = kineticEnergy + mass; + G4double gam = energy/mass; + G4double beta2 = 1. - 1./(gam*gam); + cross = (1.0 - x*(1.0 - beta2*log(x)))/cutEnergy; + + // +term for spin=1/2 particle + if( 0.5 == spin ) { + cross += 0.5 * (tmax - cutEnergy) / (energy*energy); + + // +term for spin=1 particle + } else if( 0.9 < spin ) { + + cross += -log(x)/(3.0*qc) + + (tmax - cutEnergy) * ((1.0+ 0.25*tmax*(1.0 + x)/qc)/(energy*energy) + - beta2 / (tmax * qc) )/3.0; + } + + cross *= twopi_mc2_rcl2*chargeSquare*material->GetElectronDensity()/beta2; + } + // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax + // << " cross= " << cross << G4endl; + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4std::vector* G4BetheBlochModel::SampleSecondary( + const G4Material* material, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + G4double tmax = MaxSecondaryEnergy(dp); + G4double xmin = tmin/tmax; + G4double xmax = G4std::min(tmax, maxEnergy)/tmax; + if(xmin >= xmax) return 0; + + G4ThreeVector momentum = dp->GetMomentumDirection(); + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double energy = kineticEnergy + mass; + G4double beta2 = 1. - mass*mass/(energy*energy); + G4double totMomentum = sqrt(energy*energy - mass*mass); + G4double x = 0.0; + G4double y = 0.0; + G4double grej = 1.0 - beta2*xmin; + if(spin > 0.0) { + x = 0.5*tmax*tmax/(energy*energy); + if(spin < 0.9) { + grej += xmax*xmax*x; + } else { + y = tmax/(3.0*qc); + grej += (1.0 - beta2*xmin)*xmin*y + x*xmin*xmin*(2.0/3.0 + xmin*y); + } + } + G4double z, f; + + // sampling follows ... + do { + G4double q = G4UniformRand(); + z = xmin*xmax/(xmin*(1.0 - q) + xmax*q); + + f = 1.0 - z * (beta2 - z*x); + + if (spin > 0.9) { + f += (1.0 - beta2*z)*z*y + x*z*z*(2.0/3.0 + z*y); + } + if(f > grej) { + G4cout << "G4BetheBlochModel::SampleSecondary Warning! " + << "Majorant " << grej << " < " + << f << " for x= " << z + << G4endl; + } + + } while( grej*G4UniformRand() > f ); + + G4double deltaKinEnergy = z * tmax; + + G4double deltaMomentum = + sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2)); + G4double cost = deltaKinEnergy * (energy + electron_mass_c2) / + (deltaMomentum * totMomentum); + G4double sint = sqrt(1.0 - cost*cost); + + G4double phi = twopi * G4UniformRand() ; + + + G4ThreeVector deltaDirection(sint*cos(phi),sint*sin(phi), cost) ; + deltaDirection.rotateUz(momentum); + + // create G4DynamicParticle object for delta ray + G4DynamicParticle* delta = new G4DynamicParticle(); + delta->SetDefinition(G4Electron::Electron()); + delta->SetKineticEnergy(deltaKinEnergy); + delta->SetMomentumDirection(deltaDirection); + G4std::vector* vdp = new G4std::vector; + vdp->push_back(delta); + + return vdp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4BraggModel.cc b/source/processes/electromagnetic/utils/src/G4BraggModel.cc new file mode 100644 index 0000000000..5d81728738 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4BraggModel.cc @@ -0,0 +1,663 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4BraggModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: 04.12.2002 VI Fix problem of G4DynamicParticle constructor +// +// Class Description: +// +// Implementation of energy loss and delta-electron production by +// slow charged heavy particles + +// ------------------------------------------------------------------- +// + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4BraggModel.hh" +#include "Randomize.hh" +#include "G4Electron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4BraggModel::G4BraggModel(const G4ParticleDefinition* p) + : G4VEmModel(), + particle(0), + highKinEnergy(2.0*MeV), + lowKinEnergy(0.0*MeV), + iMolecula(0), + protonMassAMU(1.007276), + theZieglerFactor(eV*cm2*1.0e-15) +{ + if(p) SetParticle(p); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4BraggModel::~G4BraggModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4BraggModel::SetParticle(const G4ParticleDefinition* p) +{ + particle = p; + mass = particle->GetPDGMass(); + spin = particle->GetPDGSpin(); + G4double q = particle->GetPDGCharge()/eplus; + chargeSquare = q*q; + massRate = mass/proton_mass_c2; + highKinEnergy *= massRate; + ratio = electron_mass_c2/mass; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::HighEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + if(!particle) SetParticle(p); + return highKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::LowEnergyLimit(const G4ParticleDefinition* p, + const G4Material*) +{ + if(!particle) SetParticle(p); + return lowKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::MinEnergyCut(const G4ParticleDefinition* p, + const G4Material* material) +{ + return material->GetIonisation()->GetMeanExcitationEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4BraggModel::IsInCharge(const G4ParticleDefinition* p, + const G4Material*) +{ + return (p->GetPDGCharge() != 0.0 && p->GetPDGMass() > 10.*MeV); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::ComputeDEDX(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy) +{ + if(!particle) SetParticle(p); + + G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); + G4double dedx = DEDX(material, kineticEnergy/massRate); + + if (cutEnergy < tmax) { + + G4double x = cutEnergy/tmax; + G4double tau = kineticEnergy/mass; + G4double gam = tau + 1.0; + G4double beta2 = 1. - 1./(gam*gam); + // G4double bg2 = tau * (tau+2.0); + dedx += (log(x) + (1.0 - x)*beta2) * twopi_mc2_rcl2 + * (material->GetElectronDensity())/beta2; + } + + // now compute the total ionization loss + + if (dedx < 0.0) dedx = 0.0 ; + + dedx *= chargeSquare; + + return dedx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::CrossSection(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy) +{ + if(!particle) SetParticle(p); + G4double cross = 0.0; + G4double tmax = G4std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); + if(cutEnergy < tmax) { + + G4double x = cutEnergy/tmax; + G4double energy = kineticEnergy + mass; + G4double gam = energy/mass; + G4double beta2 = 1. - 1./(gam*gam); + cross = (1.0 - x*(1.0 - beta2*log(x)))/cutEnergy; + + cross *= twopi_mc2_rcl2*chargeSquare*material->GetElectronDensity()/beta2; + } + // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax + // << " cross= " << cross << G4endl; + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4std::vector* G4BraggModel::SampleSecondary( + const G4Material* material, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + G4double tmax = MaxSecondaryEnergy(dp); + G4double xmin = tmin/tmax; + G4double xmax = G4std::min(tmax, maxEnergy)/tmax; + if(xmin >= xmax) return 0; + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double energy = kineticEnergy + mass; + G4double beta2 = 1. - mass*mass/(energy*energy); + G4double grej = 1.0 - beta2*xmin; + G4double z, f; + + G4ThreeVector momentum = dp->GetMomentumDirection(); + + // sampling follows ... + do { + G4double q = G4UniformRand(); + z = xmin*xmax/(xmin*(1.0 - q) + xmax*q); + + f = 1.0 - beta2 * z; + + if(f > grej) { + G4cout << "G4BraggModel::SampleSecondary Warning! " + << "Majorant " << grej << " < " + << f << " for x= " << z + << G4endl; + } + + } while( grej*G4UniformRand() >= f ); + + G4double deltaKinEnergy = z * tmax; + + G4double deltaMomentum = + sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2)); + G4double totMomentum = sqrt(energy*energy - mass*mass); + G4double cost = deltaKinEnergy * (energy + electron_mass_c2) / + (deltaMomentum * totMomentum); + G4double sint = sqrt(1.0 - cost*cost); + + G4double phi = twopi * G4UniformRand() ; + + G4ThreeVector deltaDirection(sint*cos(phi),sint*sin(phi), cost) ; + deltaDirection.rotateUz(momentum); + + // create G4DynamicParticle object for delta ray + G4DynamicParticle* delta = new G4DynamicParticle(); + delta->SetDefinition(G4Electron::Electron()); + delta->SetKineticEnergy(deltaKinEnergy); + delta->SetMomentumDirection(deltaDirection); + + G4std::vector* vdp = new G4std::vector; + vdp->push_back(delta); + + return vdp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4BraggModel::HasMaterial(const G4Material* material) +{ + G4String chFormula = material->GetChemicalFormula() ; + G4String myFormula = G4String(" ") ; + + if (myFormula == chFormula ) { + if(1 == (material->GetNumberOfElements())) return true; + return false ; + } + + // ICRU Report N49, 1993. Power's model for He. + const size_t numberOfMolecula = 11 ; + static G4String name[numberOfMolecula] = { + "Al_2O_3", "CO_2", "CH_4", + "(C_2H_4)_N-Polyethylene", "(C_2H_4)_N-Polypropylene", "(C_8H_8)_N", + "C_3H_8", "SiO_2", "H_2O", + "H_2O-Gas", "Graphite" } ; + + // Special treatment for water in gas state + const G4State theState = material->GetState() ; + + myFormula = G4String("H_2O"); + if( theState == kStateGas && myFormula == chFormula) { + chFormula = G4String("H_2O-Gas"); + } + + // Search for the material in the table + for (size_t i=0; iGetNumberOfElements())) { + G4double z = material->GetZ() ; + ionloss = ElectronicStoppingPower( z, kineticEnergy ) ; + + } else if (iMolecula < 11) { + + // The data and the fit from: + // ICRU Report N49, 1993. Ziegler's model for protons. + // Proton kinetic energy for parametrisation (keV/amu) + + G4double T = kineticEnergy/(keV*protonMassAMU) ; + + static G4double a[11][5] = { + {1.187E+1, 1.343E+1, 1.069E+4, 7.723E+2, 2.153E-2}, + {7.802E+0, 8.814E+0, 8.303E+3, 7.446E+2, 7.966E-3}, + {7.294E+0, 8.284E+0, 5.010E+3, 4.544E+2, 8.153E-3}, + {8.646E+0, 9.800E+0, 7.066E+3, 4.581E+2, 9.383E-3}, + {1.286E+1, 1.462E+1, 5.625E+3, 2.621E+3, 3.512E-2}, + {3.229E+1, 3.696E+1, 8.918E+3, 3.244E+3, 1.273E-1}, + {1.604E+1, 1.825E+1, 6.967E+3, 2.307E+3, 3.775E-2}, + {8.049E+0, 9.099E+0, 9.257E+3, 3.846E+2, 1.007E-2}, + {4.015E+0, 4.542E+0, 3.955E+3, 4.847E+2, 7.904E-3}, + {4.571E+0, 5.173E+0, 4.346E+3, 4.779E+2, 8.572E-3}, + {2.631E+0, 2.601E+0, 1.701E+3, 1.279E+3, 1.638E-2} }; + + + if ( T < 10.0 ) { + ionloss = a[iMolecula][0] * sqrt(T) ; + + } else if ( T < 10000.0 ) { + G4double slow = a[iMolecula][1] * pow(T, 0.45) ; + G4double shigh = log( 1.0 + a[iMolecula][3]/T + + a[iMolecula][4]*T ) * a[iMolecula][2]/T ; + ionloss = slow*shigh / (slow + shigh) ; + } + + if ( ionloss < 0.0) ionloss = 0.0 ; + if ( 10 == iMolecula ) { + if (T < 100.0) { + ionloss *= (1.0+0.023+0.0066*log10(T)); + } + else if (T < 700.0) { + ionloss *=(1.0+0.089-0.0248*log10(T-99.)); + } + else if (T < 10000.0) { + ionloss *=(1.0+0.089-0.0248*log10(700.-99.)); + } + } + } + + return ionloss; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::ElectronicStoppingPower(G4double z, + G4double kineticEnergy) const +{ + G4double ionloss ; + G4int i = G4int(z)-1 ; // index of atom + if(i < 0) i = 0 ; + if(i > 91) i = 91 ; + + // The data and the fit from: + // ICRU Report 49, 1993. Ziegler's type of parametrisations. + // Proton kinetic energy for parametrisation (keV/amu) + + G4double T = kineticEnergy/(keV*protonMassAMU) ; + + static G4double a[92][5] = { + {1.254E+0, 1.440E+0, 2.426E+2, 1.200E+4, 1.159E-1}, + {1.229E+0, 1.397E+0, 4.845E+2, 5.873E+3, 5.225E-2}, + {1.411E+0, 1.600E+0, 7.256E+2, 3.013E+3, 4.578E-2}, + {2.248E+0, 2.590E+0, 9.660E+2, 1.538E+2, 3.475E-2}, + {2.474E+0, 2.815E+0, 1.206E+3, 1.060E+3, 2.855E-2}, + {2.631E+0, 2.601E+0, 1.701E+3, 1.279E+3, 1.638E-2}, + {2.954E+0, 3.350E+0, 1.683E+3, 1.900E+3, 2.513E-2}, + {2.652E+0, 3.000E+0, 1.920E+3, 2.000E+3, 2.230E-2}, + {2.085E+0, 2.352E+0, 2.157E+3, 2.634E+3, 1.816E-2}, + {1.951E+0, 2.199E+0, 2.393E+3, 2.699E+3, 1.568E-2}, + {2.542E+0, 2.869E+0, 2.628E+3, 1.854E+3, 1.472E-2}, + {3.791E+0, 4.293E+0, 2.862E+3, 1.009E+3, 1.397E-2}, + {4.154E+0, 4.739E+0, 2.766E+3, 1.645E+2, 2.023E-2}, + {4.914E+0, 5.598E+0, 3.193E+3, 2.327E+2, 1.419E-2}, + {3.232E+0, 3.647E+0, 3.561E+3, 1.560E+3, 1.267E-2}, + {3.447E+0, 3.891E+0, 3.792E+3, 1.219E+3, 1.211E-2}, + {5.301E+0, 6.008E+0, 3.969E+3, 6.451E+2, 1.183E-2}, + {5.731E+0, 6.500E+0, 4.253E+3, 5.300E+2, 1.123E-2}, + {5.152E+0, 5.833E+0, 4.482E+3, 5.457E+2, 1.129E-2}, + {5.521E+0, 6.252E+0, 4.710E+3, 5.533E+2, 1.112E-2}, + {5.201E+0, 5.884E+0, 4.938E+3, 5.609E+2, 9.995E-3}, + {4.858E+0, 5.489E+0, 5.260E+3, 6.511E+2, 8.930E-3}, + {4.479E+0, 5.055E+0, 5.391E+3, 9.523E+2, 9.117E-3}, + {3.983E+0, 4.489E+0, 5.616E+3, 1.336E+3, 8.413E-3}, + {3.469E+0, 3.907E+0, 5.725E+3, 1.461E+3, 8.829E-3}, + {3.519E+0, 3.963E+0, 6.065E+3, 1.243E+3, 7.782E-3}, + {3.140E+0, 3.535E+0, 6.288E+3, 1.372E+3, 7.361E-3}, + {3.553E+0, 4.004E+0, 6.205E+3, 5.551E+2, 8.763E-3}, + {3.696E+0, 4.194E+0, 4.649E+3, 8.113E+1, 2.242E-2}, + {4.210E+0, 4.750E+0, 6.953E+3, 2.952E+2, 6.809E-3}, + {5.041E+0, 5.697E+0, 7.173E+3, 2.026E+2, 6.725E-3}, + {5.554E+0, 6.300E+0, 6.496E+3, 1.100E+2, 9.689E-3}, + {5.323E+0, 6.012E+0, 7.611E+3, 2.925E+2, 6.447E-3}, + {5.874E+0, 6.656E+0, 7.395E+3, 1.175E+2, 7.684E-3}, + {6.658E+0, 7.536E+0, 7.694E+3, 2.223E+2, 6.509E-3}, + {6.413E+0, 7.240E+0, 1.185E+4, 1.537E+2, 2.880E-3}, + {5.694E+0, 6.429E+0, 8.478E+3, 2.929E+2, 6.087E-3}, + {6.339E+0, 7.159E+0, 8.693E+3, 3.303E+2, 6.003E-3}, + {6.407E+0, 7.234E+0, 8.907E+3, 3.678E+2, 5.889E-3}, + {6.734E+0, 7.603E+0, 9.120E+3, 4.052E+2, 5.765E-3}, + {6.901E+0, 7.791E+0, 9.333E+3, 4.427E+2, 5.587E-3}, + {6.424E+0, 7.248E+0, 9.545E+3, 4.802E+2, 5.376E-3}, + {6.799E+0, 7.671E+0, 9.756E+3, 5.176E+2, 5.315E-3}, + {6.109E+0, 6.887E+0, 9.966E+3, 5.551E+2, 5.151E-3}, + {5.924E+0, 6.677E+0, 1.018E+4, 5.925E+2, 4.919E-3}, + {5.238E+0, 5.900E+0, 1.038E+4, 6.300E+2, 4.758E-3}, + {5.345E+0, 6.038E+0, 6.790E+3, 3.978E+2, 1.676E-2}, + {5.814E+0, 6.554E+0, 1.080E+4, 3.555E+2, 4.626E-3}, + {6.229E+0, 7.024E+0, 1.101E+4, 3.709E+2, 4.540E-3}, + {6.409E+0, 7.227E+0, 1.121E+4, 3.864E+2, 4.474E-3}, + {7.500E+0, 8.480E+0, 8.608E+3, 3.480E+2, 9.074E-3}, + {6.979E+0, 7.871E+0, 1.162E+4, 3.924E+2, 4.402E-3}, + {7.725E+0, 8.716E+0, 1.183E+4, 3.948E+2, 4.376E-3}, + {8.337E+0, 9.425E+0, 1.051E+4, 2.696E+2, 6.206E-3}, + {7.287E+0, 8.218E+0, 1.223E+4, 3.997E+2, 4.447E-3}, + {7.899E+0, 8.911E+0, 1.243E+4, 4.021E+2, 4.511E-3}, + {8.041E+0, 9.071E+0, 1.263E+4, 4.045E+2, 4.540E-3}, + {7.488E+0, 8.444E+0, 1.283E+4, 4.069E+2, 4.420E-3}, + {7.291E+0, 8.219E+0, 1.303E+4, 4.093E+2, 4.298E-3}, + {7.098E+0, 8.000E+0, 1.323E+4, 4.118E+2, 4.182E-3}, + {6.909E+0, 7.786E+0, 1.343E+4, 4.142E+2, 4.058E-3}, + {6.728E+0, 7.580E+0, 1.362E+4, 4.166E+2, 3.976E-3}, + {6.551E+0, 7.380E+0, 1.382E+4, 4.190E+2, 3.877E-3}, + {6.739E+0, 7.592E+0, 1.402E+4, 4.214E+2, 3.863E-3}, + {6.212E+0, 6.996E+0, 1.421E+4, 4.239E+2, 3.725E-3}, + {5.517E+0, 6.210E+0, 1.440E+4, 4.263E+2, 3.632E-3}, + {5.220E+0, 5.874E+0, 1.460E+4, 4.287E+2, 3.498E-3}, + {5.071E+0, 5.706E+0, 1.479E+4, 4.330E+2, 3.405E-3}, + {4.926E+0, 5.542E+0, 1.498E+4, 4.335E+2, 3.342E-3}, + {4.788E+0, 5.386E+0, 1.517E+4, 4.359E+2, 3.292E-3}, + {4.893E+0, 5.505E+0, 1.536E+4, 4.384E+2, 3.243E-3}, + {5.028E+0, 5.657E+0, 1.555E+4, 4.408E+2, 3.195E-3}, + {4.738E+0, 5.329E+0, 1.574E+4, 4.432E+2, 3.186E-3}, + {4.587E+0, 5.160E+0, 1.541E+4, 4.153E+2, 3.406E-3}, + {5.201E+0, 5.851E+0, 1.612E+4, 4.416E+2, 3.122E-3}, + {5.071E+0, 5.704E+0, 1.630E+4, 4.409E+2, 3.082E-3}, + {4.946E+0, 5.563E+0, 1.649E+4, 4.401E+2, 2.965E-3}, + {4.477E+0, 5.034E+0, 1.667E+4, 4.393E+2, 2.871E-3}, + {4.844E+0, 5.458E+0, 7.852E+3, 9.758E+2, 2.077E-2}, + {4.307E+0, 4.843E+0, 1.704E+4, 4.878E+2, 2.882E-3}, + {4.723E+0, 5.311E+0, 1.722E+4, 5.370E+2, 2.913E-3}, + {5.319E+0, 5.982E+0, 1.740E+4, 5.863E+2, 2.871E-3}, + {5.956E+0, 6.700E+0, 1.780E+4, 6.770E+2, 2.660E-3}, + {6.158E+0, 6.928E+0, 1.777E+4, 5.863E+2, 2.812E-3}, + {6.203E+0, 6.979E+0, 1.795E+4, 5.863E+2, 2.776E-3}, + {6.181E+0, 6.954E+0, 1.812E+4, 5.863E+2, 2.748E-3}, + {6.949E+0, 7.820E+0, 1.830E+4, 5.863E+2, 2.737E-3}, + {7.506E+0, 8.448E+0, 1.848E+4, 5.863E+2, 2.727E-3}, + {7.648E+0, 8.609E+0, 1.866E+4, 5.863E+2, 2.697E-3}, + {7.711E+0, 8.679E+0, 1.883E+4, 5.863E+2, 2.641E-3}, + {7.407E+0, 8.336E+0, 1.901E+4, 5.863E+2, 2.603E-3}, + {7.290E+0, 8.204E+0, 1.918E+4, 5.863E+2, 2.673E-3} + }; + + G4double fac = 1.0 ; + + // Carbon specific case for E < 40 keV + if ( T < 40.0 && 5 == i) { + fac = sqrt(T/40.0) ; + T = 40.0 ; + + // Free electron gas model + } else if ( T < 10.0 ) { + fac = sqrt(T*0.1) ; + T =10.0 ; + } + + // Main parametrisation + G4double slow = a[i][1] * pow(T, 0.45) ; + G4double shigh = log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ; + ionloss = slow*shigh*fac / (slow + shigh) ; + + if ( ionloss < 0.0) ionloss = 0.0 ; + + return ionloss; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::DEDX(const G4Material* material, + G4double kineticEnergy) +{ + G4double eloss = 0.0; + const G4int numberOfElements = material->GetNumberOfElements(); + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector(); + + // pure material + if(1 == numberOfElements) { + + G4double z = material->GetZ(); + eloss = ElectronicStoppingPower(z, kineticEnergy) + * (material->GetTotNbOfAtomsPerVolume()); + + // compaund material with parametrisation + } else if( HasMaterial(material) ) { + + eloss = StoppingPower(material, kineticEnergy) + * (material->GetTotNbOfAtomsPerVolume()); + G4int nAtoms = 0; + + const G4int* theAtomsVector = material->GetAtomsVector(); + for (G4int iel=0; ielGetElementVector(); + + // loop for the elements in the material + for (G4int i=0; iGetZ() ; + eloss += ElectronicStoppingPower(z,kineticEnergy) + * theAtomicNumDensityVector[i] ; + eloss125 += ElectronicStoppingPower(z,125.0*keV) + * theAtomicNumDensityVector[i] ; + } + + // Chemical factor is taken into account + eloss *= ChemicalFactor(kineticEnergy, eloss125) ; + + // Brugg's rule calculation + } else { + const G4ElementVector* theElementVector = + material->GetElementVector() ; + + // loop for the elements in the material + for (G4int i=0; iGetZ(), kineticEnergy) + * theAtomicNumDensityVector[i]; + } + } + return eloss*theZieglerFactor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4BraggModel::MolecIsInZiegler1988(const G4Material* material) +{ + // The list of molecules from + // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, + // Nucl. Inst. & Meth. in Phys. Res. B35 (1988) 215-228. + + G4String myFormula = G4String(" ") ; + const G4String chFormula = material->GetChemicalFormula() ; + if (myFormula == chFormula ) return false ; + + // There are no evidence for difference of stopping power depended on + // phase of the compound except for water. The stopping power of the + // water in gas phase can be predicted using Bragg's rule. + // + // No chemical factor for water-gas + + myFormula = G4String("H_2O") ; + const G4State theState = material->GetState() ; + if( theState == kStateGas && myFormula == chFormula) return false ; + + const size_t numberOfMolecula = 53 ; + + // The coffecient from Table.4 of Ziegler & Manoyan + const G4double HeEff = 2.8735 ; + + static G4String name[numberOfMolecula] = { + "H_2O", "C_2H_4O", "C_3H_6O", "C_2H_2", "C_H_3OH", + "C_2H_5OH", "C_3H_7OH", "C_3H_4", "NH_3", "C_14H_10", + "C_6H_6", "C_4H_10", "C_4H_6", "C_4H_8O", "CCl_4", + "CF_4", "C_6H_8", "C_6H_12", "C_6H_10O", "C_6H_10", + "C_8H_16", "C_5H_10", "C_5H_8", "C_3H_6-Cyclopropane","C_2H_4F_2", + "C_2H_2F_2", "C_4H_8O_2", "C_2H_6", "C_2F_6", "C_2H_6O", + "C_3H_6O", "C_4H_10O", "C_2H_4", "C_2H_4O", "C_2H_4S", + "SH_2", "CH_4", "CCLF_3", "CCl_2F_2", "CHCl_2F", + "(CH_3)_2S", "N_2O", "C_5H_10O", "C_8H_6", "(CH_2)_N", + "(C_3H_6)_N","(C_8H_8)_N", "C_3H_8", "C_3H_6-Propylene", "C_3H_6O", + "C_3H_6S", "C_4H_4S", "C_7H_8" + } ; + + static G4double expStopping[numberOfMolecula] = { + 66.1, 190.4, 258.7, 42.2, 141.5, + 210.9, 279.6, 198.8, 31.0, 267.5, + 122.8, 311.4, 260.3, 328.9, 391.3, + 206.6, 374.0, 422.0, 432.0, 398.0, + 554.0, 353.0, 326.0, 74.6, 220.5, + 197.4, 362.0, 170.0, 330.5, 211.3, + 262.3, 349.6, 51.3, 187.0, 236.9, + 121.9, 35.8, 247.0, 292.6, 268.0, + 262.3, 49.0, 398.9, 444.0, 22.91, + 68.0, 155.0, 84.0, 74.2, 254.7, + 306.8, 324.4, 420.0 + } ; + + static G4double expCharge[numberOfMolecula] = { + HeEff, HeEff, HeEff, 1.0, HeEff, + HeEff, HeEff, HeEff, 1.0, 1.0, + 1.0, HeEff, HeEff, HeEff, HeEff, + HeEff, HeEff, HeEff, HeEff, HeEff, + HeEff, HeEff, HeEff, 1.0, HeEff, + HeEff, HeEff, HeEff, HeEff, HeEff, + HeEff, HeEff, 1.0, HeEff, HeEff, + HeEff, 1.0, HeEff, HeEff, HeEff, + HeEff, 1.0, HeEff, HeEff, 1.0, + 1.0, 1.0, 1.0, 1.0, HeEff, + HeEff, HeEff, HeEff + } ; + + static G4double numberOfAtomsPerMolecula[numberOfMolecula] = { + 3.0, 7.0, 10.0, 4.0, 6.0, + 9.0, 12.0, 7.0, 4.0, 24.0, + 12.0, 14.0, 10.0, 13.0, 5.0, + 5.0, 14.0, 18.0, 17.0, 17.0, + 24.0, 15.0, 13.0, 9.0, 8.0, + 6.0, 14.0, 8.0, 8.0, 9.0, + 10.0, 15.0, 6.0, 7.0, 7.0, + 3.0, 5.0, 5.0, 5.0, 5.0, + 9.0, 3.0, 16.0, 14.0, 3.0, + 9.0, 16.0, 11.0, 9.0, 10.0, + 10.0, 9.0, 15.0 + } ; + + // Search for the compaund in the table + for (size_t i=0; iGetTotNbOfAtomsPerVolume()) / + (expCharge[i] * numberOfAtomsPerMolecula[i]) ; + SetExpStopPower125(exp125); + return true; + } + } + + return false; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4BraggModel::ChemicalFactor(G4double kineticEnergy, + G4double eloss125) const +{ + // Approximation of Chemical Factor according to + // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, + // Nucl. Inst. & Meth. in Phys. Res. B35 (1988) 215-228. + + G4double gamma = 1.0 + kineticEnergy/proton_mass_c2 ; + G4double gamma25 = 1.0 + 25.0*keV /proton_mass_c2 ; + G4double gamma125 = 1.0 + 125.0*keV/proton_mass_c2 ; + G4double beta = sqrt(1.0 - 1.0/(gamma*gamma)) ; + G4double beta25 = sqrt(1.0 - 1.0/(gamma25*gamma25)) ; + G4double beta125 = sqrt(1.0 - 1.0/(gamma125*gamma125)) ; + + G4double factor = 1.0 + (expStopPower125/eloss125 - 1.0) * + (1.0 + exp( 1.48 * ( beta125/beta25 - 7.0 ) ) ) / + (1.0 + exp( 1.48 * ( beta/beta25 - 7.0 ) ) ) ; + + return factor ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc new file mode 100644 index 0000000000..6b1d763a08 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc @@ -0,0 +1,585 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4EmModelManager +// +// Author: Vladimir Ivanchenko +// +// Creation date: 07.05.2002 +// +// Modifications: +// +// Class Description: +// +// It is the unified energy loss process it calculates the continuous +// energy loss for charged particles using a set of Energy Loss +// models valid for different energy regions. There are a possibility +// to create and access to dE/dx and range tables, or to calculate +// that information on fly. +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4EmModelManager.hh" +#include "G4LossTableManager.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4VEmModel.hh" +#include "G4DataVector.hh" +#include "G4PhysicsVector.hh" +#include "G4VParticleChange.hh" +#include "G4Positron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4EmModelManager::G4EmModelManager(): + nEmModels(0), + nmax(4), + orderIsChanged(false), + minSubRange(0.1), + particle(0) +{ + verboseLevel = 0; + for(G4int i = 0; iGetParticleName() + << G4endl; + } + + // Ordering + if(orderIsChanged) { + G4int oldOrder[5]; + G4VEmModel* oldEmModels[5]; + for(G4int k = 0; kIsInCharge(particle, 0)) { + + G4double tmin = model->LowEnergyLimit(particle, 0); + G4double tmax = model->HighEnergyLimit(particle, 0); + + if(1 < verboseLevel) { + G4cout << "New model for tmin(MeV)= " << tmin/MeV + << "; tmax(MeV)= " << tmax/MeV + << "; tlast(MeV)= " << ep/MeV + << G4endl; + } + + if(tmax > tmin) { + + if(n == 0 || tmax > upperEkin[n-1]) { + + // First model or next model for more high energy range; + upperEkin[n] = (tmax); + if(0 < n) tmin = G4std::max(tmin, upperEkin[n-1]); + eLow.push_back(tmin); + n++; + accepted = true; + + } else { + + G4cout << "The model number #" << j + << " has no active range " + << "; tmax(MeV)= " << tmax/MeV + << "; tlast(MeV)= " << ep/MeV + << G4endl; + } + + } else { + + G4cout << "The model number #" << j + << " has no active range " + << "; tmin(MeV)= " << tmin/MeV + << "; tmax(MeV)= " << tmax/MeV + << G4endl; + } + } + if(!accepted) { + upperEkin[n] = ep; + eLow.push_back(ep); + n++; + } + } + + // Access to materials and build cuts + + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + size_t nMaterials = G4Material::GetNumberOfMaterials(); + + for(size_t i=0; iGetName() << G4endl; + } + + G4double cut = 0.0; + G4double subcut = 0.0; + if(secondaryParticle) { + cut = secondaryParticle->GetEnergyThreshold(material); + subcut = minSubRange*cut; + } + + for(G4int j=0; j eLow[j]) { + + G4double tcutmin = model->MinEnergyCut(particle, material); + + if(1 < verboseLevel) { + G4cout << "The model # " << j + << "; tcutmin(MeV)= " << tcutmin/MeV + << G4endl; + } + + cut = G4std::max(cut, tcutmin); + subcut = G4std::max(subcut, tcutmin); + } + } + theCuts.push_back(cut); + theSubCuts.push_back(subcut); + } + if(1 < verboseLevel) { + G4cout << "G4EmModelManager is initialised " + << G4endl; + } + + return &theCuts; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4EmModelManager::AddEmModel(G4VEmModel* p, G4int num) +{ + if(nEmModels) { + for(G4int i=0; iGetName() + << G4endl; + } + + // vectors to provide continues dE/dx + G4DataVector factor; + G4DataVector dedxLow; + G4DataVector dedxHigh; + + G4double e; + + G4int i = material->GetIndex(); + G4double cut = theCuts[i]; + factor.resize(nEmModels); + dedxLow.resize(nEmModels); + dedxHigh.resize(nEmModels); + + if(0 < verboseLevel) { + G4cout << "There are " << nEmModels << " models for " + << material->GetName() << G4endl; + } + + // calculate factors to provide continuity of energy loss + factor[0] = 1.0; + G4int j; + G4int totBinsLoss = aVector->GetVectorLength(); + + dedxLow[0] = 0.0; + + e = upperEkin[0]; + dedxHigh[0] = emModels[0]->ComputeDEDX(material,particle,e,cut); + + if(nEmModels > 1) { + for(j=1; jComputeDEDX(material,particle,e,cut); + e = upperEkin[j]; + dedxHigh[j] = emModels[j]->ComputeDEDX(material,particle,e,cut); + } + + for(j=1; j 0.0) factor[j] = (dedxHigh[j-1]/dedxLow[j] - 1.0); + else factor[j] = 0.0; + } + + if(0 < verboseLevel) { + G4cout << "Loop over " << totBinsLoss << " bins start " << G4endl; + } + } + + // Calculate energy losses vector + for(j=0; jGetLowEdgeEnergy(j); + G4double fac = 1.0; + + // Choose a model of energy losses + G4int k = 0; + if(nEmModels > 1) { + if (e >= upperEkin[0]) { + for(k=1; kComputeDEDX(material,particle,e,cut)*fac; + + if(dedx < 0.0) dedx = 0.0; + if(0 < verboseLevel) { + G4cout << "Material= " << material->GetName() + << " E(MeV)= " << e/MeV + << " dEdx(MeV/mm)= " << dedx*mm/MeV + << G4endl; + } + aVector->PutValue(j, dedx); + } +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, + const G4Material* material) +{ + + if(0 < verboseLevel) { + G4cout << "G4EmModelManager::FillLambdaVector() for particle " + << particle->GetParticleName() << G4endl; + } + + + // vectors to provide continues dE/dx + G4DataVector factor; + G4DataVector sigmaLow; + G4DataVector sigmaHigh; + + G4double e; + + G4int i = material->GetIndex(); + G4double cut = theCuts[i]; + factor.resize(nEmModels); + sigmaLow.resize(nEmModels); + sigmaHigh.resize(nEmModels); + + if(0 < verboseLevel) { + G4cout << "There are " << nEmModels << " models for " + << material->GetName() << G4endl; + } + + // calculate factors to provide continuity of energy loss + factor[0] = 1.0; + G4int j; + G4int totBinsLambda = aVector->GetVectorLength(); + + sigmaLow[0] = 0.0; + + e = upperEkin[0]; + + if(1 < verboseLevel) { + G4cout << "### For material " << material->GetName() + << " " << nEmModels + << " models" + << " Ecut(MeV)= " << cut/MeV + << " Emax(MeV)= " << e/MeV + << " nbins= " << totBinsLambda + << G4endl; + } + + sigmaHigh[0] = emModels[0]->CrossSection(material,particle,e,cut,e); + + if(nEmModels > 1) { + + for(j=1; jCrossSection(material,particle,e,cut,e); + e = upperEkin[j]; + sigmaHigh[j] = emModels[j]->CrossSection(material,particle,e,cut,e); + } + for(j=1; j 0.0) factor[j] = (sigmaHigh[j-1]/sigmaLow[j] - 1.0); + else factor[j] = 0.0; + } + } + + // Calculate lambda vector + for(j=0; jGetLowEdgeEnergy(j); + + // Choose a model of energy losses + G4int k = 0; + G4double fac = 1.0; + if(nEmModels > 1) { + if(e >= upperEkin[0]) { + for(k=1; k 0) { + cross = emModels[k]->CrossSection(material,particle,e,cut,e)*fac; + } + + if(1 < verboseLevel) { + G4cout << "BuildLambdaTable: e(MeV)= " << e/MeV + << " cross(1/mm)= " << cross*mm + << " fac= " << fac + << G4endl; + } + if(cross <= 0.0) cross = 0.0; + // if(cross <= 0.0) cross = DBL_MAX; + // else cross = 1.0/cross; + + aVector->PutValue(j, cross); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, + const G4Material* material) +{ + if(0 < verboseLevel) { + G4cout << "G4EmModelManager::BuildLambdaSubTable() for particle " + << particle->GetParticleName() << G4endl; + } + + + // vectors to provide continues dE/dx + G4DataVector factor; + G4DataVector sigmaLow; + G4DataVector sigmaHigh; + + G4double e; + + G4int i = material->GetIndex(); + G4double cut = theCuts[i]; + G4double subcut = theSubCuts[i]; + factor.resize(nEmModels); + sigmaLow.resize(nEmModels); + sigmaHigh.resize(nEmModels); + + if(0 < verboseLevel) { + G4cout << "There are " << nEmModels << " models for " + << material->GetName() << G4endl; + } + + // calculate factors to provide continuity of energy loss + factor[0] = 1.0; + G4int j; + G4int totBinsLambda = aVector->GetVectorLength(); + + sigmaLow[0] = 0.0; + + e = upperEkin[0]; + + + if(1 < verboseLevel) { + G4cout << "### For material " << material->GetName() + << " are available " << nEmModels + << " models" + << " Ecut(MeV)= " << cut/MeV + << " nbins= " << totBinsLambda + << G4endl; + } + + sigmaHigh[0] = emModels[0]->CrossSection(material,particle,e,subcut,cut); + + if(nEmModels > 1) { + + for(j=1; jCrossSection(material,particle,e,subcut,cut); + e = upperEkin[j]; + sigmaHigh[j] = emModels[j]->CrossSection(material,particle,e,subcut,cut); + } + for(j=1; j 0.0) factor[j] = (sigmaHigh[j-1]/sigmaLow[j] - 1.0); + else factor[j] = 0.0; + } + } + + // Calculate energy losses vector + for(j=0; jGetLowEdgeEnergy(j); + + // Choose a model of energy losses + G4int k = 0; + G4double fac = 1.0; + if(nEmModels > 1) { + if(e >= upperEkin[0]) { + for(k=1; k 0) { + cross = emModels[k]->CrossSection(material,particle,e,subcut,cut)*fac; + } + + if(1 < verboseLevel) { + G4cout << "BuildLambdaTable: e(MeV)= " << e/MeV + << " cross(1/mm)= " << cross*mm + << " fac= " << fac + << G4endl; + } + if(cross <= 0.0) cross = 0.0; + + aVector->PutValue(j, cross); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + + diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc index c8fdc175f6..6832b7f047 100644 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyLossMessenger.cc,v 1.4 2001/07/11 10:03:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EnergyLossMessenger.cc,v 1.5 2002/12/04 21:07:43 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -52,24 +52,24 @@ G4EnergyLossMessenger::G4EnergyLossMessenger() RndmStepCmd->SetGuidance("Randomize the proposed step by eLoss."); RndmStepCmd->SetParameterName("choice",true); RndmStepCmd->SetDefaultValue(false); - RndmStepCmd->AvailableForStates(Idle); + RndmStepCmd->AvailableForStates(G4State_Idle); EnlossFlucCmd = new G4UIcmdWithABool("/process/eLoss/fluct",this); EnlossFlucCmd->SetGuidance("Switch true/false the energy loss fluctuations."); EnlossFlucCmd->SetParameterName("choice",true); EnlossFlucCmd->SetDefaultValue(true); - EnlossFlucCmd->AvailableForStates(Idle); + EnlossFlucCmd->AvailableForStates(G4State_Idle); SubSecCmd = new G4UIcmdWithABool("/process/eLoss/subsec",this); SubSecCmd->SetGuidance("Switch true/false the subcutoff generation."); SubSecCmd->SetParameterName("choice",true); SubSecCmd->SetDefaultValue(true); - SubSecCmd->AvailableForStates(Idle); + SubSecCmd->AvailableForStates(G4State_Idle); MinSubSecCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/minsubsec",this); MinSubSecCmd->SetGuidance("Set the min. cut for subcutoff delta in range."); MinSubSecCmd->SetParameterName("rcmin",true); - MinSubSecCmd->AvailableForStates(Idle); + MinSubSecCmd->AvailableForStates(G4State_Idle); StepFuncCmd = new G4UIcommand("/process/eLoss/StepFunction",this); StepFuncCmd->SetGuidance("Set the energy loss step limitation parameters."); @@ -93,7 +93,7 @@ G4EnergyLossMessenger::G4EnergyLossMessenger() unitPrm->SetParameterCandidates(unitCandidates); StepFuncCmd->SetParameter(unitPrm); - StepFuncCmd->AvailableForStates(Idle); + StepFuncCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossMessengerSTD.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossMessengerSTD.cc new file mode 100644 index 0000000000..e5ff980784 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossMessengerSTD.cc @@ -0,0 +1,190 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4EnergyLossMessengerSTD +// +// Author: +// +// Creation date: +// +// Modifications: +// +// 03.01.2002 V.Ivanchenko update to new design +// +// Class Description: +// + +// ------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4EnergyLossMessengerSTD.hh" + +#include "G4LossTableManager.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +#include "g4std/strstream" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4EnergyLossMessengerSTD::G4EnergyLossMessengerSTD() +{ + eLossDirectory = new G4UIdirectory("/process/eLoss/"); + eLossDirectory->SetGuidance("Commands for G4VEnergyLoss."); + + RndmStepCmd = new G4UIcmdWithABool("/process/eLoss/rndmStep",this); + RndmStepCmd->SetGuidance("Randomize the proposed step by eLoss."); + RndmStepCmd->SetParameterName("rndmStep",true); + RndmStepCmd->SetDefaultValue(false); + RndmStepCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + EnlossFlucCmd = new G4UIcmdWithABool("/process/eLoss/fluct",this); + EnlossFlucCmd->SetGuidance("Switch true/false the energy loss fluctuations."); + EnlossFlucCmd->SetParameterName("fluct",true); + EnlossFlucCmd->SetDefaultValue(true); + EnlossFlucCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SubSecCmd = new G4UIcmdWithABool("/process/eLoss/subsec",this); + SubSecCmd->SetGuidance("Switch true/false the subcutoff generation."); + SubSecCmd->SetParameterName("subsec",true); + SubSecCmd->SetDefaultValue(true); + SubSecCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + IntegCmd = new G4UIcmdWithABool("/process/eLoss/integral",this); + IntegCmd->SetGuidance("Switch true/false the integration of cross section over step."); + IntegCmd->SetParameterName("integ",true); + IntegCmd->SetDefaultValue(true); + IntegCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + MinSubSecCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/minsubsec",this); + MinSubSecCmd->SetGuidance("Set the min. cut for subcutoff delta in range."); + MinSubSecCmd->SetParameterName("minsubsec",true); + MinSubSecCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + MinEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/minKinEnergy",this); + MinEnCmd->SetGuidance("Set the min kinetic energy"); + MinEnCmd->SetParameterName("emin",true); + MinEnCmd->SetUnitCategory("Energy"); + MinEnCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + MaxEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/maxKinEnergy",this); + MaxEnCmd->SetGuidance("Set the max kinetic energy"); + MaxEnCmd->SetParameterName("emax",true); + MaxEnCmd->SetUnitCategory("Energy"); + MaxEnCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + StepFuncCmd = new G4UIcommand("/process/eLoss/StepFunction",this); + StepFuncCmd->SetGuidance("Set the energy loss step limitation parameters."); + StepFuncCmd->SetGuidance(" dRoverR : max Range variation per step"); + StepFuncCmd->SetGuidance(" finalRange: range for final step"); + + G4UIparameter* dRoverRPrm = new G4UIparameter("dRoverR",'d',false); + dRoverRPrm->SetGuidance("max Range variation per step (fractional number)"); + dRoverRPrm->SetParameterRange("dRoverR>0. && dRoverR<=1."); + StepFuncCmd->SetParameter(dRoverRPrm); + + G4UIparameter* finalRangePrm = new G4UIparameter("finalRange",'d',false); + finalRangePrm->SetGuidance("range for final step"); + finalRangePrm->SetParameterRange("finalRange>0."); + StepFuncCmd->SetParameter(finalRangePrm); + + G4UIparameter* unitPrm = new G4UIparameter("unit",'s',true); + unitPrm->SetGuidance("unit of finalRange"); + unitPrm->SetDefaultValue("mm"); + G4String unitCandidates = G4UIcommand::UnitsList(G4UIcommand::CategoryOf("mm")); + unitPrm->SetParameterCandidates(unitCandidates); + + StepFuncCmd->SetParameter(unitPrm); + StepFuncCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4EnergyLossMessengerSTD::~G4EnergyLossMessengerSTD() +{ + delete RndmStepCmd; + delete EnlossFlucCmd; + delete SubSecCmd; + delete MinSubSecCmd; + delete MinEnCmd; + delete MaxEnCmd; + delete StepFuncCmd; + delete IntegCmd; + delete eLossDirectory; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4EnergyLossMessengerSTD::SetNewValue(G4UIcommand* command,G4String newValue) +{ + G4LossTableManager* lossTables = G4LossTableManager::Instance(); + + if (command == RndmStepCmd) { + lossTables->SetRandomStep(RndmStepCmd->GetNewBoolValue(newValue)); + } + + if (command == IntegCmd) { + lossTables->SetIntegral(IntegCmd->GetNewBoolValue(newValue)); + } + + if (command == EnlossFlucCmd) { + lossTables->SetLossFluctuations(EnlossFlucCmd->GetNewBoolValue(newValue)); + } + + if (command == SubSecCmd) { + lossTables->SetSubCutoff(SubSecCmd->GetNewBoolValue(newValue)); + } + + if (command == MinEnCmd) { + lossTables->SetMinEnergy(MinEnCmd->GetNewDoubleValue(newValue)); + } + + if (command == MaxEnCmd) { + lossTables->SetMaxEnergy(MaxEnCmd->GetNewDoubleValue(newValue)); + } + + if (command == StepFuncCmd) { + G4double v1,v2; + char unts[30]; + const char* t = newValue; + G4std::istrstream is((char*)t); + is >> v1 >> v2 >> unts; + G4String unt = unts; + v2 *= G4UIcommand::ValueOf(unt); + lossTables->SetStepLimits(v1,v2); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc index 67742e934f..157f2c10a9 100644 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossTables.cc,v 1.17 2001/10/29 09:40:52 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // first version created by P.Urban , 06/04/1998 diff --git a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc new file mode 100644 index 0000000000..7da0c9099b --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4LossTableBuilder +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4LossTableBuilder.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4LossTableBuilder::BuildDEDXTable( + const G4std::vector& list) +{ + size_t n_processes = list.size(); + + if (0 == n_processes) return 0; + else if (1 == n_processes) return list[0]; + + size_t n_vectors = list[0]->length(); + + if(!n_vectors) return 0; + + G4PhysicsVector* pv = (*(list[0]))[0]; + size_t nbins = pv->GetVectorLength(); + + G4double elow = pv->GetLowEdgeEnergy(0); + G4double ehigh = pv->GetLowEdgeEnergy(nbins); + G4PhysicsTable* theTable = new G4PhysicsTable(); + G4bool b; + + for (size_t i=0; iGetLowEdgeEnergy(j); + + for (size_t k=0; kGetValue(energy, b); + + } + v->PutValue(j, dedx); + } + theTable->insert(v); + } + return theTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4LossTableBuilder::BuildRangeTable( + const G4PhysicsTable* dedxTable) +// Build range table from the energy loss table +{ + size_t n_vectors = dedxTable->length(); + if(!n_vectors) return 0; + + G4bool b; + size_t n = 100; + G4double del = 1.0/(G4double)n; + G4PhysicsVector* pv = (*dedxTable)[0]; + size_t nbins = pv->GetVectorLength(); + G4double elow = pv->GetLowEdgeEnergy(0); + G4double ehigh = pv->GetLowEdgeEnergy(nbins); + G4PhysicsTable* theTable = new G4PhysicsTable(); + + for (size_t i=0; iGetValue(elow, b); + G4double range = 0.5*elow/dedx1; + v->PutValue(0,range); + G4double energy1 = elow; + + for (size_t j=1; jGetLowEdgeEnergy(j); + G4double dedx2 = pv->GetValue(energy2, b); + G4double de = (energy2 - energy1) * del; + G4double energy = energy1 - de*0.5; + G4double fac = log(dedx2/dedx1)/log(energy2/energy1); + + for (size_t k=0; kPutValue(j,range); + energy1 = energy2; + dedx1 = dedx2; + } + theTable->insert(v); + } + + return theTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4LossTableBuilder::BuildInverseRangeTable( + const G4PhysicsTable* dedxTable, + const G4PhysicsTable* rangeTable) +// Build inverse range table from the energy loss table +{ + size_t n_vectors = rangeTable->length(); + if(!n_vectors) return 0; + + G4bool b; + G4PhysicsTable* theTable = new G4PhysicsTable(); + + for (size_t i=0; iGetVectorLength(); + G4double elow = pv->GetLowEdgeEnergy(0); + G4double ehigh = pv->GetLowEdgeEnergy(nbins-1); + G4double rlow = pv->GetValue(elow, b); + G4double rhigh = pv->GetValue(ehigh, b); + + rhigh *= exp(log(rhigh/rlow)/((G4double)(nbins-1))); + + G4PhysicsLogVector* v = new G4PhysicsLogVector(rlow, rhigh, nbins); + + v->PutValue(0,elow); + G4double energy1 = elow; + G4double range1 = rlow; + G4double energy2 = elow; + G4double range2 = rlow; + size_t ilow = 0; + size_t ihigh; + + for (size_t j=1; jGetLowEdgeEnergy(j); + + for (ihigh=ilow+1; ihighGetLowEdgeEnergy(ihigh); + range2 = pv->GetValue(energy2, b); + if(range2 >= range || ihigh == nbins-1) { + ilow = ihigh - 1; + energy1 = pv->GetLowEdgeEnergy(ilow); + range1 = pv->GetValue(energy1, b); + break; + } + } + + G4double e = log(energy1) + log(energy2/energy1)*log(range/range1)/log(range2/range1); + + v->PutValue(j,exp(e)); + } + theTable->insert(v); + } + + return theTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc new file mode 100644 index 0000000000..2579ac8d63 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc @@ -0,0 +1,557 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4LossTableManager +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4LossTableManager.hh" +#include "G4EnergyLossMessengerSTD.hh" +#include "G4PhysicsTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4Material.hh" +#include "G4ProcessManager.hh" +#include "G4Electron.hh" + +G4LossTableManager* G4LossTableManager::theInstance = 0; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +G4LossTableManager* G4LossTableManager::Instance() +{ + if(0 == theInstance) { + theInstance = new G4LossTableManager(); + } + return theInstance; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +G4LossTableManager::~G4LossTableManager() +{ + delete theMessenger; + delete tableBuilder; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +G4LossTableManager::G4LossTableManager() +{ + n_loss = 0; + all_tables_are_built = false; + all_particles_are_mapped = false; + electron_table_are_built = false; + currentLoss = 0; + currentParticle = 0; + lossFluctuationFlag = true; + subCutoffFlag = false; + rndmStepFlag = false; + minSubRange = 0.0; + maxRangeVariation = 1.0; + maxFinalStep = 0.0; + eIonisation = 0; + minKinEnergy = 0.1*eV; + maxKinEnergy = 100.0*GeV; + theMessenger = new G4EnergyLossMessengerSTD(); + theElectron = G4Electron::Electron(); + tableBuilder = new G4LossTableBuilder(); + integral = true; + verbose = 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +void G4LossTableManager::Clear() +{ + all_tables_are_built = false; + all_particles_are_mapped = false; + electron_table_are_built = false; + eIonisation = 0; + currentLoss = 0; + currentParticle = 0; + if(n_loss) + { + for(G4int i=0; iclearAndDestroy(); + if(range_vector[i]) range_vector[i]->clearAndDestroy(); + if(inv_range_vector[i]) inv_range_vector[i]->clearAndDestroy(); + } + + dedx_vector.clear(); + range_vector.clear(); + inv_range_vector.clear(); + loss_map.clear(); + loss_vector.clear(); + part_vector.clear(); + base_part_vector.clear(); + tables_are_built.clear(); + n_loss = 0; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +void G4LossTableManager::Register(G4VEnergyLossSTD* p) +{ + n_loss++; + loss_vector.push_back(p); + part_vector.push_back(0); + base_part_vector.push_back(0); + dedx_vector.push_back(0); + range_vector.push_back(0); + inv_range_vector.push_back(0); + tables_are_built.push_back(false); + all_particles_are_mapped = false; + all_tables_are_built = false; + /* + p->SetLossFluctuations(lossFluctuationFlag); + p->SetSubCutoff(subCutoffFlag); + p->SetRandomStep(rndmStepFlag); + p->SetMinSubRange(minSubRange); + p->SetMinKinEnergy(minKinEnergy); + p->SetMaxKinEnergy(maxKinEnergy); + p->SetStepLimits(maxRangeVariation, maxFinalStep); + p->SetIntegral(integral); + */ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::Initialise() +{ + all_tables_are_built = true; + for(G4int j=0; jParticle(); + if(pd) nm = pd->GetParticleName(); + G4cout << "For " << loss_vector[j]->GetProcessName() + << " for " << nm + << " tables_are_built= " << tables_are_built[j] + << G4endl; + } + if(!loss_vector[j]->TablesAreBuilt()) { + all_tables_are_built = false; + break; + } + } + + // All tables have to be rebuilt + if(all_particles_are_mapped && all_tables_are_built) { + for(G4int i=0; iParticle(); + if(!pd) { + pd = loss_vector[i]->GetProcessManager()->GetParticleType(); + loss_vector[i]->SetParticle(pd); + } + if(pd == theElectron) eIonisation = loss_vector[i]; + part_vector[i] = pd; + pd = loss_vector[i]->BaseParticle(); + base_part_vector[i] = pd; + } + } + all_particles_are_mapped = true; + } + if(1 < verbose) { + G4cout << "electron_table_are_built= " << electron_table_are_built + << " all_tables_are_built= " << all_tables_are_built + << " all_particles_are_mapped= " << all_particles_are_mapped + << G4endl; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::BuildDEDXTable(const G4ParticleDefinition* aParticle) +{ + + if(1 < verbose) { + G4cout << "G4LossTableManager::BuildDEDXTable() for " + << aParticle->GetParticleName() + << G4endl; + } + + Initialise(); + + // identify all particles and built electron table + if(!electron_table_are_built) { + eIonisation = BuildTables(theElectron); + electron_table_are_built = true; + } + + // If particle is not an electron + if(aParticle != theElectron) { + for(G4int i=0; iParticle(); + const G4ParticleDefinition* bpd = loss_vector[i]->BaseParticle(); + if(pd) nm = pd->GetParticleName(); + if(bpd) nm2 = bpd->GetParticleName(); + if(part_vector[i]) nm1 = part_vector[i]->GetParticleName(); + G4cout << "For " << loss_vector[i]->GetProcessName() + << " for " << nm + << " (" << nm1 << ") " + << " base_part= " << nm2 + << " tables_are_built= " << tables_are_built[i] + << G4endl; + } + if(aParticle == part_vector[i]) { + if(tables_are_built[i]) break; + base_part_vector[i] = loss_vector[i]->BaseParticle(); + if(!base_part_vector[i]) { + G4VEnergyLossSTD* hIonisation = BuildTables(aParticle); + for(G4int j=0; jInitialise(); + em->SetDEDXTable(hIonisation->DEDXTable()); + em->SetRangeTable(hIonisation->RangeTable()); + em->SetInverseRangeTable(hIonisation->InverseRangeTable()); + loss_map[part_vector[j]] = hIonisation; + if(em->SecondaryParticle() == theElectron) { + em->SetSecondaryRangeTable(eIonisation->RangeTable()); + } + } + } + } else { + G4VEnergyLossSTD* em = loss_vector[i]; + for(G4int j=0; jDEDXTable()) { + tables_are_built[i] = true; + em->Initialise(); + em->SetDEDXTable(hIonisation->DEDXTable()); + em->SetRangeTable(hIonisation->RangeTable()); + em->SetInverseRangeTable(hIonisation->InverseRangeTable()); + loss_map[part_vector[i]] = hIonisation; + if(em->SecondaryParticle() == theElectron) { + em->SetSecondaryRangeTable(eIonisation->RangeTable()); + } + break; + } + } + } + } + break; + } + } + } + if(1 < verbose) { + G4cout << "G4LossTableManager::BuildDEDXTable: end; " + << "all_tables_are_built= " << all_tables_are_built + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::RetrieveDEDXTable(const G4ParticleDefinition* aParticle, + G4VEnergyLossSTD* theModel) +{ + for(G4int i=0; iDEDXTable()) { + for(G4int j=0; jSetDEDXTable(theModel->DEDXTable()); + em->SetRangeTable(theModel->RangeTable()); + em->SetInverseRangeTable(theModel->InverseRangeTable()); + loss_map[part_vector[j]] = theModel; + } + } + } + } else { + const G4ParticleDefinition* bp = theModel->BaseParticle(); + for(G4int j=0; jDEDXTable()) { + G4VEnergyLossSTD* hIonisation = loss_vector[j]; + theModel->SetDEDXTable(hIonisation->DEDXTable()); + theModel->SetRangeTable(hIonisation->RangeTable()); + theModel->SetInverseRangeTable(hIonisation->InverseRangeTable()); + loss_map[part_vector[j]] = hIonisation; + break; + } + } + } + } + break; + } + } + + // identify all particles and built electron table + if(aParticle == theElectron) { + electron_table_are_built = true; + for(G4int i=0; iSecondaryParticle() == theElectron) { + loss_vector[i]->SetSecondaryRangeTable(theModel->RangeTable()); + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VEnergyLossSTD* G4LossTableManager::BuildTables(const G4ParticleDefinition* aParticle) +{ + if(1 < verbose) { + G4cout << "G4LossTableManager::BuildTables() for " + << aParticle->GetParticleName() << G4endl; + } + + // Check is it new particle or all tables have to be rebuilt + G4std::vector list; + list.clear(); + G4std::vector loss_list; + loss_list.clear(); + G4VEnergyLossSTD* em = 0; + G4int iem = 0; + G4bool no_el = true; + + for(G4int i=0; iBaseParticle(); + loss_vector[i]->Initialise(); + if(no_el && loss_vector[i]->SecondaryParticle() == theElectron) { + em = loss_vector[i]; + iem= i; + no_el = false; + } + if(!em) { + em = loss_vector[i]; + iem= i; + } + tables_are_built[i] = true; + list.push_back(loss_vector[i]->BuildDEDXTable()); + loss_list.push_back(loss_vector[i]); + } + } + + G4int n_dedx = list.size(); + if(!n_dedx) return 0; + + if(aParticle == theElectron) eIonisation = em; + + if(0 < verbose) { + G4cout << "G4LossTableManager::BuildTables() start to build range tables" + << " and the sum of " << n_dedx << " processes" + << G4endl; + } + + G4PhysicsTable* dedx = list[0]; + if(1 < n_dedx) { + dedx = tableBuilder->BuildDEDXTable(list); + for(G4int i=0; iclearAndDestroy(); + } + } + em->SetDEDXTable(dedx); + dedx_vector[iem] = dedx; + G4PhysicsTable* range = tableBuilder->BuildRangeTable(dedx); + em->SetRangeTable(range); + range_vector[iem] = range; + G4PhysicsTable* invrange = tableBuilder->BuildInverseRangeTable(dedx, range); + em->SetInverseRangeTable(invrange); + inv_range_vector[iem] = invrange; + + loss_map[aParticle] = em; + for(G4int j=0; jSecondaryParticle() == theElectron) { + loss_list[j]->SetSecondaryRangeTable(eIonisation->RangeTable()); + } + } + if(1 < verbose) { + G4cout << "G4LossTableManager::BuildTables: Tables are built" + << " for " << em->GetProcessName() + << G4endl; + } + return em; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetLossFluctuations(G4bool val) +{ + lossFluctuationFlag = val; + for(G4int i=0; iSetLossFluctuations(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetSubCutoff(G4bool val) +{ + subCutoffFlag = val; + for(G4int i=0; iSetSubCutoff(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetIntegral(G4bool val) +{ + integral = val; + for(G4int i=0; iSetIntegral(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetMinSubRange(G4double val) +{ + minSubRange = val; + for(G4int i=0; iSetMinSubRange(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetRandomStep(G4bool val) +{ + rndmStepFlag = val; + for(G4int i=0; iSetRandomStep(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetMinEnergy(G4double val) +{ + minKinEnergy = val; + for(G4int i=0; iSetMinKinEnergy(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetMaxEnergy(G4double val) +{ + maxKinEnergy = val; + for(G4int i=0; iSetMaxKinEnergy(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetStepLimits(G4double v1, G4double v2) +{ + maxRangeVariation = v1; + maxFinalStep = v2; + for(G4int i=0; iSetStepLimits(v1, v2); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4LossTableManager::StorePhysicsTable(G4VEnergyLossSTD* el, + const G4String& dedx_file, + const G4String& range_file, + const G4String& inv_range_file, + G4bool ascii) +{ + G4int i=0; + for(i=0; iStorePhysicsTable(dedx_file, ascii) ){ + G4cout << "Fatal error theDEDXTable->StorePhysicsTable in <" + << dedx_file << ">" + << G4endl; + return false; + } + } + + if (range_vector[i]) { + if ( !range_vector[i]->StorePhysicsTable(range_file, ascii) ){ + G4cout << "Fatal error theRangeTable->StorePhysicsTable in <" + << range_file << ">" + << G4endl; + return false; + } + } + + if (inv_range_vector[i]) { + if ( !inv_range_vector[i]->StorePhysicsTable(inv_range_file, ascii) ){ + G4cout << "Fatal error theInverseRangeTable->StorePhysicsTable in <" + << inv_range_file << ">" + << G4endl; + return false; + } + } + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc index 05adf23b25..0ee9994438 100644 --- a/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc @@ -20,13 +20,14 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MultipleScattering.cc,v 1.22 2002/06/11 08:06:47 urban Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// +// $Id: G4MultipleScattering.cc,v 1.30 2002/12/11 12:05:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // 16/05/01 value of cparm changed , L.Urban // 18/05/01 V.Ivanchenko Clean up against Linux ANSI compilation -// 07/08/01 new methods Store/Retrieve PhysicsTable (mma) +// 07/08/01 new methods Store/Retrieve PhysicsTable (mma) // 23-08-01 new angle and z distribution,energy dependence reduced, // Store,Retrieve methods commented out temporarily, L.Urban // 27-08-01 in BuildPhysicsTable:aParticleType.GetParticleName()=="mu+" (mma) @@ -40,14 +41,19 @@ // 17-09-01 migration of Materials to pure STL (mma) // 27-09-01 value of data member factlim changed, L.Urban // 31-10-01 big fixed in PostStepDoIt,L.Urban -// 17-04-02 NEW angle distribution + boundary algorithm modified, L.Urban -// 22-04-02 boundary algorithm modified -> important improvement in timing !!!! -// (L.Urban) // 24-04-02 some minor changes in boundary algorithm, L.Urban // 06-05-02 bug fixed in GetContinuousStepLimit, L.Urban // 24-05-02 changes in angle distribution and boundary algorithm, L.Urban -// 11-06-06 bug fixed in ComputeTransportCrossSection, L.Urban -// +// 11-06-02 bug fixed in ComputeTransportCrossSection, L.Urban +// 12-08-02 bug fixed in PostStepDoIt (lateral displacement), L.Urban +// 15-08-02 new angle distribution, L.Urban +// 26-09-02 angle distribution + boundary algorithm modified, L.Urban +// 15-10-02 temporary fix for proton scattering +// 30-10-02 modified angle distribution,mods in boundary algorithm, +// changes in data members, L.Urban +// 30-10-02 rename variable cm - Ecm, V.Ivanchenko +// 11-12-02 precision problem in ComputeTransportCrossSection +// for small Tkin/for heavy particles cured, L.Urban // ----------------------------------------------------------------------------- // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -65,7 +71,7 @@ G4MultipleScattering::G4MultipleScattering(const G4String& processName) : G4VContinuousDiscreteProcess(processName), theTransportMeanFreePathTable(0), fTransportMeanFreePath (1.e12),kappa(2.5), - taubig(10.),tausmall(1.e-12),taulim(1.e-6), + taubig(8.0),tausmall(1.e-14),taulim(1.e-5), LowestKineticEnergy(0.1*keV), HighestKineticEnergy(100.*TeV), TotBin(100), @@ -73,17 +79,17 @@ G4MultipleScattering::G4MultipleScattering(const G4String& processName) tLast (0.0), zLast (0.0), boundary(true), - facrange(0.199),tlimit(1.e10), + facrange(0.199),tlimit(1.e10*mm),tlimitmin(1.e-7*mm), + cf(1.001), stepno(0),stepnolastmsc(-1000000),nsmallstep(5), + laststep(0.), valueGPILSelectionMSC(NotCandidateForSelection), pcz(0.17),zmean(0.), range(1.0),T1(1.0),lambda1(-1.),cth1(1.),z1(1.e10),dtrl(0.15), - tuning (1.00), - cparm (0.0), - Tlim(1.e6*MeV), fLatDisplFlag(true), NuclCorrPar (0.0615), - FactPar(0.40) + FactPar(0.40), + facxsi(1.) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -102,6 +108,27 @@ G4MultipleScattering::~G4MultipleScattering() void G4MultipleScattering::BuildPhysicsTable( const G4ParticleDefinition& aParticleType) { + // set values of some data members + if((aParticleType.GetParticleName() == "e-") || + (aParticleType.GetParticleName() == "e+")) + { + // parameters for e+/e- + alfa1 = 1.45 ; + alfa2 = 0.60 ; + alfa3 = 1.80 ; + xsi = facxsi*2.22 ; + c0 = 2.30 ; + } + else + { + // parameters for heavy particles + alfa1 = 1.10 ; + alfa2 = 0.14 ; + alfa3 = 0.42 ; + xsi = facxsi*2.70 ; + c0 = 1.40 ; + } + // tables are built for MATERIALS const G4double sigmafactor = twopi*classic_electr_radius* classic_electr_radius; @@ -167,7 +194,6 @@ void G4MultipleScattering::BuildPhysicsTable( } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4double G4MultipleScattering::ComputeTransportCrossSection( const G4ParticleDefinition& aParticleType, G4double KineticEnergy, @@ -188,7 +214,6 @@ G4double G4MultipleScattering::ComputeTransportCrossSection( 10000.0*MeV}; // corr. factors for e-/e+ lambda - G4double celectron[15][23] = {{1.125,1.072,1.051,1.047,1.047,1.050,1.052,1.054, 1.054,1.057,1.062,1.069,1.075,1.090,1.105,1.111, @@ -284,29 +309,44 @@ G4double G4MultipleScattering::ComputeTransportCrossSection( 1.456,1.412,1.364,1.328,1.307,1.282,1.2026 }}; G4double sigma; - G4double Z23 = 2.*log(AtomicNumber)/3.; Z23 = exp(Z23); G4double ParticleMass = aParticleType.GetPDGMass(); - G4double rat2 = ParticleMass/electron_mass_c2; rat2 = rat2*rat2; + // correction if particle .ne. e-/e+ + // compute equivalent kinetic energy + // lambda depends on p*beta .... + G4double Mass = ParticleMass ; + if((aParticleType.GetParticleName() != "e-") && + (aParticleType.GetParticleName() != "e+") ) + { + // TAU = Tkin/ParticleMass , tau = Tkin_scaled/electronmass + // p*beta = Mass*TAU*(TAU+2.)/(TAU+1.) = + // electron_mass_c2*tau*(tau+2.)/(tau+1.) + G4double TAU = KineticEnergy/Mass ; + G4double c = Mass*TAU*(TAU+2.)/(electron_mass_c2*(TAU+1.)) ; + G4double w = c-2. ; + G4double tau = 0.5*(w+sqrt(w*w+4.*c)) ; + KineticEnergy = electron_mass_c2*tau ; + Mass = electron_mass_c2 ; + } G4double Charge = aParticleType.GetPDGCharge(); G4double ChargeSquare = Charge*Charge/(eplus*eplus); - G4double TotalEnergy = KineticEnergy + ParticleMass ; - G4double beta2 = KineticEnergy*(TotalEnergy+ParticleMass) + G4double TotalEnergy = KineticEnergy + Mass ; + G4double beta2 = KineticEnergy*(TotalEnergy+Mass) /(TotalEnergy*TotalEnergy); - G4double bg2 = KineticEnergy*(TotalEnergy+ParticleMass) - /(ParticleMass*ParticleMass); + G4double bg2 = KineticEnergy*(TotalEnergy+Mass) + /(Mass*Mass); - G4double eps = rat2*epsfactor*bg2/Z23; + G4double eps = epsfactor*bg2/Z23; if (epsGetPreStepPoint()->GetStepStatus() == fGeomBoundary) { stepnolastmsc = stepno ; - tlimit = facrange*range ; + // if : diff.treatment for small/not small Z + if(range > fTransportMeanFreePath) + tlimit = facrange*range ; + else + tlimit = facrange*fTransportMeanFreePath ; + if(tlimit < tlimitmin) tlimit = tlimitmin ; + laststep = tlimit ; if(tPathLength > tlimit) { tPathLength = tlimit ; valueGPILSelectionMSC = CandidateForSelection; } } - else if(stepno >= stepnolastmsc) + else if(stepno > stepnolastmsc) { if((stepno - stepnolastmsc) < nsmallstep) { if(tPathLength > tlimit) { - tPathLength = tlimit ; + laststep *= cf ; + tPathLength = laststep ; valueGPILSelectionMSC = CandidateForSelection; } } @@ -479,7 +511,7 @@ G4double G4MultipleScattering::GetContinuousStepLimit( z1 = 1.e10 ; tau = tPathLength/fTransportMeanFreePath ; - + if(tau < tausmall) zPathLength = tPathLength; else @@ -580,11 +612,11 @@ G4VParticleChange* G4MultipleScattering::PostStepDoIt( (materialIndex)->GetValue(KineticEnergy,isOut); // change direction first ( scattering ) - G4double cth,tau; - tau = truestep/fTransportMeanFreePath; + G4double cth =1 ; + G4double tau = truestep/fTransportMeanFreePath; if(KineticEnergy <= 0.) - cth = -1.+2.*G4UniformRand() ; + ; else { if (tau < tausmall) cth = 1.; @@ -596,71 +628,80 @@ G4VParticleChange* G4MultipleScattering::PostStepDoIt( if(tau > taubig) cth = -1.+2.*G4UniformRand(); else { - const G4double alfa = 0.385 ; - const G4double beta = 0.0626 ; - const G4double c = 2.500 ; - const G4double x2mean3 = 1./3. ; + const G4double amax=25. ; + const G4double tau0 = 0.02 ; + const G4double b = 1. ; - G4double a,b,c1,bp1,bm1,bbp1,bbm1, - xmean1,x2mean1,xmean2,x2mean2, - x2mean,xmeanth,x2meanth,pp,qq ; + G4double a,x0,c,xmean1,xmean2, + xmeanth,prob,qprob ; + G4double ea,eaa,b1,bx,eb1,ebx,cnorm1,cnorm2,f1x0,f2x0,w ; - a = 2.*exp(-alfa*tau)/(1.-exp(-alfa*tau)) ; + w = log(tau/tau0) ; + if(tau < tau0) + a = (alfa1-alfa2*w)/tau ; + else + a = (alfa1+alfa3*w)/tau ; - xmean1 = a/(a+2.) ; - x2mean1= (a*a+a+2.)/((a+2.)*(a+3.)) ; + x0 = 1.-xsi/a ; + if(x0 < 0.) x0 = 0. ; - b = exp((1.+beta)*tau) ; + // from continuity of the 1st derivatives + c = a*(b-x0) ; + if(a*tau < c0) + c = c0*(b-x0)/tau ; - c1 = 1.-c ; - bp1=b+1. ; - bm1=b-1. ; - bbp1=exp(log(bp1)*c1) ; - bbm1=exp(log(bm1)*c1) ; + if(c == 1.) c=1.000001 ; + if(c == 2.) c=2.000001 ; + if(c == 3.) c=3.000001 ; - xmean2 = -(bbp1+bbm1)/(bbp1-bbm1)+(bp1*bbp1-bm1*bbm1)/ - ((2.-c)*(bbp1-bbm1)) ; - x2mean2= 1.-2.*(bp1*bbp1+bm1*bbm1)/((2.-c)*(bbp1-bbm1))+ - 2.*(bp1*bp1*bbp1-bm1*bm1*bbm1)/((2.-c)*(3.-c)*(bbp1-bbm1)) ; + if(a*(1.-x0) < amax) + ea = exp(-a*(1.-x0)) ; + else + ea = 0. ; + eaa = 1.-ea ; + xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; - xmeanth = exp(-tau) ; - x2meanth = (1.+2.*exp(-kappa*tau))/3. ; + b1 = b+1. ; + bx=b-x0 ; + eb1=exp((c-1.)*log(b1)) ; + ebx=exp((c-1.)*log(bx)) ; + xmean2 = (x0*eb1+ebx+(eb1*bx-b1*ebx)/(2.-c))/(eb1-ebx) ; - pp = (xmeanth-xmean2)/(xmean1-xmean2) ; - x2mean = pp*x2mean1+(1.-pp)*x2mean2 ; - if(x2mean >= x2meanth) - { - qq = 1. ; - } - else - { - pp = (x2meanth*xmean1-x2mean1*xmeanth+x2mean3*xmeanth - +x2mean1*xmean2-x2mean3*xmean2-x2mean2*xmean1)/ - (xmean2*x2mean1-xmean2*x2mean3-xmean1*x2mean2+xmean1*x2mean3) ; + xmeanth = exp(-tau) ; - qq = (xmeanth-(1.-pp)*xmean2)/(pp*xmean1) ; - } + cnorm1 = a/eaa ; + cnorm2 = (c-1.)*eb1*ebx/(eb1-ebx) ; + f1x0 = cnorm1*exp(-a*(1.-x0)) ; + f2x0 = cnorm2/exp(c*log(b-x0)) ; - if(G4UniformRand() < pp) - { - if(G4UniformRand() < qq) - { - cth = -1.+2.*exp(log(G4UniformRand())/(1.+a)) ; - } - else - { - cth = -1.+2.*G4UniformRand() ; - } - } - else - { - cth = b- exp(log(bbp1-G4UniformRand()*(bbp1-bbm1))/c1) ; - } + // from continuity at x=x0 + prob = f2x0/(f1x0+f2x0) ; + // from xmean = xmeanth + qprob = (f1x0+f2x0)*xmeanth/(f2x0*xmean1+f1x0*xmean2) ; + // protection against qprob > 1 + // ******************************************* + if(qprob > 1.) + { + qprob = 1. ; + prob = (xmeanth-xmean2)/(xmean1-xmean2) ; + } + // ******************************************* + + // sampling of costheta + if(G4UniformRand() < qprob) + { + if(G4UniformRand() < prob) + cth = 1.+log(ea+G4UniformRand()*eaa)/a ; + else + cth = b-b1*bx/exp(log(ebx-G4UniformRand()*(ebx-eb1))/(c-1.)) ; + } + else + cth = -1.+2.*G4UniformRand() ; } } } - + G4double sth = sqrt(1.-cth*cth); G4double phi = twopi*G4UniformRand(); G4double dirx = sth*cos(phi), diry = sth*sin(phi), dirz = cth; @@ -682,7 +723,7 @@ G4VParticleChange* G4MultipleScattering::PostStepDoIt( if (safetyminustolerance > 0.) { if (tau < tausmall) rmean = 0.; - else if(tau < taulim) rmean = 5.*tau*tau*tau/12.; + else if(tau < taulim) rmean = kappa*tau*tau*tau*(1.-kappapl1*tau/4.)/6. ; else { if(tau important improvement in timing (L.Urban) +// 24-04-02 some minor changes in boundary algorithm, L.Urban +// 06-05-02 bug fixed in GetContinuousStepLimit, L.Urban +// 24-05-02 changes in angle distribution and boundary algorithm, L.Urban +// 11-06-02 bug fixed in ComputeTransportCrossSection, L.Urban +// 12-08-02 bug fixed in PostStepDoIt (lateral displacement), L.Urban +// 15-08-02 new angle distribution, L.Urban +// 26-09-02 angle distribution + boundary algorithm modified, L.Urban +// 15-10-02 temporary fix for proton scattering +// 30-10-02 modified angle distribution,mods in boundary algorithm, +// changes in data members, L.Urban +// 11-12-02 precision problem in ComputeTransportCrossSection +// for small Tkin/for heavy particles cured from L.Urban +// +// ----------------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MultipleScatteringSTD.hh" +#include "G4LossTableManager.hh" +#include "G4Navigator.hh" +#include "G4TransportationManager.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MultipleScatteringSTD::G4MultipleScatteringSTD(const G4String& processName) + : G4VContinuousDiscreteProcess(processName), + theTransportMeanFreePathTable(0), + fTransportMeanFreePath (1.e12),kappa(2.5), + taubig(8.0),tausmall(1.e-14),taulim(1.e-5), + LowestKineticEnergy(0.1*keV), + HighestKineticEnergy(100.*TeV), + TotBin(100), + materialIndex(0), + tLast (0.0), + zLast (0.0), + boundary(true), + facrange(0.199),tlimit(1.e10*mm),tlimitmin(1.e-7*mm), + cf(1.001), + stepno(0),stepnolastmsc(-1000000),nsmallstep(5), + laststep(0.), + valueGPILSelectionMSC(NotCandidateForSelection), + pcz(0.17),zmean(0.), + range(1.0),T1(1.0),lambda1(-1.),cth1(1.),z1(1.e10),dtrl(0.15), + fLatDisplFlag(true), + NuclCorrPar (0.0615), + FactPar(0.40), + facxsi(1.) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MultipleScatteringSTD::~G4MultipleScatteringSTD() +{ + if(theTransportMeanFreePathTable) + { + theTransportMeanFreePathTable->clearAndDestroy(); + delete theTransportMeanFreePathTable; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScatteringSTD::BuildPhysicsTable( + const G4ParticleDefinition& aParticleType) +{ + // set values of some data members + if((aParticleType.GetParticleName() == "e-") || + (aParticleType.GetParticleName() == "e+")) + { + // parameters for e+/e- + alfa1 = 1.45 ; + alfa2 = 0.60 ; + alfa3 = 1.80 ; + xsi = facxsi*2.22 ; + c0 = 2.30 ; + } + else + { + // parameters for heavy particles + alfa1 = 1.10 ; + alfa2 = 0.14 ; + alfa3 = 0.42 ; + xsi = facxsi*2.70 ; + c0 = 1.40 ; + } + + // tables are built for MATERIALS + const G4double sigmafactor = twopi*classic_electr_radius* + classic_electr_radius; + G4double KineticEnergy,AtomicNumber,AtomicWeight,sigma,lambda; + G4double density; + + // destroy old tables if any + if (theTransportMeanFreePathTable) + { + theTransportMeanFreePathTable->clearAndDestroy(); + delete theTransportMeanFreePathTable; + } + + // create table + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + G4int numOfMaterials = G4Material::GetNumberOfMaterials(); + + theTransportMeanFreePathTable = new G4PhysicsTable(numOfMaterials); + + // loop for materials + for (G4int J=0; JGetElementVector(); + const G4double* NbOfAtomsPerVolume = + material->GetVecNbOfAtomsPerVolume(); + const G4int NumberOfElements = material->GetNumberOfElements(); + density = material->GetDensity(); + + // loop for kinetic energy values + for (G4int i=0; iGetLowEdgeEnergy(i); + sigma = 0.; + + // loop for element in the material + for (G4int iel=0; ielGetZ(); + AtomicWeight = (*theElementVector)[iel]->GetA(); + sigma += NbOfAtomsPerVolume[iel]* + ComputeTransportCrossSection(aParticleType,KineticEnergy, + AtomicNumber,AtomicWeight); + } + sigma *= sigmafactor; + lambda = 1./sigma; + aVector->PutValue(i,lambda); + } + + theTransportMeanFreePathTable->insert(aVector); + + } + + if((aParticleType.GetParticleName() == "e-" ) || + (aParticleType.GetParticleName() == "mu+" ) || + (aParticleType.GetParticleName() == "proton") ) PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MultipleScatteringSTD::ComputeTransportCrossSection( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber,G4double AtomicWeight) +{ + const G4double epsfactor = 2.*electron_mass_c2*electron_mass_c2* + Bohr_radius*Bohr_radius/(hbarc*hbarc); + const G4double epsmin = 1.e-4 , epsmax = 1.e10; + + const G4double Zdat[15] = { 4., 6.,13.,20.,26.,29.,32.,38.,47., + 50.,56.,64.,74.,79.,82. }; + + const G4double Tdat[23] = {0.0001*MeV,0.0002*MeV,0.0004*MeV,0.0007*MeV, + 0.001*MeV,0.002*MeV,0.004*MeV,0.007*MeV, + 0.01*MeV,0.02*MeV,0.04*MeV,0.07*MeV, + 0.1*MeV,0.2*MeV,0.4*MeV,0.7*MeV, + 1.*MeV,2.*MeV,4.*MeV,7.*MeV,10.*MeV,20.*MeV, + 10000.0*MeV}; + + // corr. factors for e-/e+ lambda + + G4double celectron[15][23] = + {{1.125,1.072,1.051,1.047,1.047,1.050,1.052,1.054, + 1.054,1.057,1.062,1.069,1.075,1.090,1.105,1.111, + 1.112,1.108,1.100,1.093,1.089,1.087,0.7235 }, + {1.408,1.246,1.143,1.096,1.077,1.059,1.053,1.051, + 1.052,1.053,1.058,1.065,1.072,1.087,1.101,1.108, + 1.109,1.105,1.097,1.090,1.086,1.082,0.7925 }, + {2.833,2.268,1.861,1.612,1.486,1.309,1.204,1.156, + 1.136,1.114,1.106,1.106,1.109,1.119,1.129,1.132, + 1.131,1.124,1.113,1.104,1.099,1.098,0.9147 }, + {3.879,3.016,2.380,2.007,1.818,1.535,1.340,1.236, + 1.190,1.133,1.107,1.099,1.098,1.103,1.110,1.113, + 1.112,1.105,1.096,1.089,1.085,1.098,0.9700 }, + {6.937,4.330,2.886,2.256,1.987,1.628,1.395,1.265, + 1.203,1.122,1.080,1.065,1.061,1.063,1.070,1.073, + 1.073,1.070,1.064,1.059,1.056,1.056,1.0022 }, + {9.616,5.708,3.424,2.551,2.204,1.762,1.485,1.330, + 1.256,1.155,1.099,1.077,1.070,1.068,1.072,1.074, + 1.074,1.070,1.063,1.059,1.056,1.052,1.0158 }, + {11.72,6.364,3.811,2.806,2.401,1.884,1.564,1.386, + 1.300,1.180,1.112,1.082,1.073,1.066,1.068,1.069, + 1.068,1.064,1.059,1.054,1.051,1.050,1.0284 }, + {18.08,8.601,4.569,3.183,2.662,2.025,1.646,1.439, + 1.339,1.195,1.108,1.068,1.053,1.040,1.039,1.039, + 1.039,1.037,1.034,1.031,1.030,1.036,1.0515 }, + {18.22,10.48,5.333,3.713,3.115,2.367,1.898,1.631, + 1.498,1.301,1.171,1.105,1.077,1.048,1.036,1.033, + 1.031,1.028,1.024,1.022,1.021,1.024,1.0834 }, + {14.14,10.65,5.710,3.929,3.266,2.453,1.951,1.669, + 1.528,1.319,1.178,1.106,1.075,1.040,1.027,1.022, + 1.020,1.017,1.015,1.013,1.013,1.020,1.0937 }, + {14.11,11.73,6.312,4.240,3.478,2.566,2.022,1.720, + 1.569,1.342,1.186,1.102,1.065,1.022,1.003,0.997, + 0.995,0.993,0.993,0.993,0.993,1.011,1.1140 }, + {22.76,20.01,8.835,5.287,4.144,2.901,2.219,1.855, + 1.677,1.410,1.224,1.121,1.073,1.014,0.986,0.976, + 0.974,0.972,0.973,0.974,0.975,0.987,1.1410 }, + {50.77,40.85,14.13,7.184,5.284,3.435,2.520,2.059, + 1.837,1.512,1.283,1.153,1.091,1.010,0.969,0.954, + 0.950,0.947,0.949,0.952,0.954,0.963,1.1750 }, + {65.87,59.06,15.87,7.570,5.567,3.650,2.682,2.182, + 1.939,1.579,1.325,1.178,1.108,1.014,0.965,0.947, + 0.941,0.938,0.940,0.944,0.946,0.954,1.1922 }, + // {45.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, // paper..... + {55.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, + 1.985,1.609,1.343,1.188,1.113,1.013,0.960,0.939, + 0.933,0.930,0.933,0.936,0.939,0.949,1.2026 }}; + G4double cpositron[15][23] = { + {2.589,2.044,1.658,1.446,1.347,1.217,1.144,1.110, + 1.097,1.083,1.080,1.086,1.092,1.108,1.123,1.131, + 1.131,1.126,1.117,1.108,1.103,1.100,0.7235 }, + {3.904,2.794,2.079,1.710,1.543,1.325,1.202,1.145, + 1.122,1.096,1.089,1.092,1.098,1.114,1.130,1.137, + 1.138,1.132,1.122,1.113,1.108,1.102,0.7925 }, + {7.970,6.080,4.442,3.398,2.872,2.127,1.672,1.451, + 1.357,1.246,1.194,1.179,1.178,1.188,1.201,1.205, + 1.203,1.190,1.173,1.159,1.151,1.145,0.9147 }, + {9.714,7.607,5.747,4.493,3.815,2.777,2.079,1.715, + 1.553,1.353,1.253,1.219,1.211,1.214,1.225,1.228, + 1.225,1.210,1.191,1.175,1.166,1.174,0.9700 }, + {17.97,12.95,8.628,6.065,4.849,3.222,2.275,1.820, + 1.624,1.382,1.259,1.214,1.202,1.202,1.214,1.219, + 1.217,1.203,1.184,1.169,1.160,1.151,1.0022 }, + {24.83,17.06,10.84,7.355,5.767,3.707,2.546,1.996, + 1.759,1.465,1.311,1.252,1.234,1.228,1.238,1.241, + 1.237,1.222,1.201,1.184,1.174,1.159,1.0158 }, + {23.26,17.15,11.52,8.049,6.375,4.114,2.792,2.155, + 1.880,1.535,1.353,1.281,1.258,1.247,1.254,1.256, + 1.252,1.234,1.212,1.194,1.183,1.170,1.0284 }, + {22.33,18.01,12.86,9.212,7.336,4.702,3.117,2.348, + 2.015,1.602,1.385,1.297,1.268,1.251,1.256,1.258, + 1.254,1.237,1.214,1.195,1.185,1.179,1.0515 }, + {33.91,24.13,15.71,10.80,8.507,5.467,3.692,2.808, + 2.407,1.873,1.564,1.425,1.374,1.330,1.324,1.320, + 1.312,1.288,1.258,1.235,1.221,1.205,1.0834 }, + {32.14,24.11,16.30,11.40,9.015,5.782,3.868,2.917, + 2.490,1.925,1.596,1.447,1.391,1.342,1.332,1.327, + 1.320,1.294,1.264,1.240,1.226,1.214,1.0937 }, + {29.51,24.07,17.19,12.28,9.766,6.238,4.112,3.066, + 2.602,1.995,1.641,1.477,1.414,1.356,1.342,1.336, + 1.328,1.302,1.270,1.245,1.231,1.233,1.1140 }, + {38.19,30.85,21.76,15.35,12.07,7.521,4.812,3.498, + 2.926,2.188,1.763,1.563,1.484,1.405,1.382,1.371, + 1.361,1.330,1.294,1.267,1.251,1.239,1.1410 }, + {49.71,39.80,27.96,19.63,15.36,9.407,5.863,4.155, + 3.417,2.478,1.944,1.692,1.589,1.480,1.441,1.423, + 1.409,1.372,1.330,1.298,1.280,1.258,1.1750 }, + {59.25,45.08,30.36,20.83,16.15,9.834,6.166,4.407, + 3.641,2.648,2.064,1.779,1.661,1.531,1.482,1.459, + 1.442,1.400,1.354,1.319,1.299,1.272,1.1922 }, + {56.38,44.29,30.50,21.18,16.51,10.11,6.354,4.542, + 3.752,2.724,2.116,1.817,1.692,1.554,1.499,1.474, + 1.456,1.412,1.364,1.328,1.307,1.282,1.2026 }}; + + G4double sigma; + + G4double Z23 = 2.*log(AtomicNumber)/3.; Z23 = exp(Z23); + + G4double ParticleMass = aParticleType.GetPDGMass(); + + // correction if particle .ne. e-/e+ + // compute equivalent kinetic energy + // lambda depends on p*beta .... + + if((aParticleType.GetParticleName() != "e-") && + (aParticleType.GetParticleName() != "e+") ) + { + G4double TAU = KineticEnergy/ParticleMass ; + G4double c = ParticleMass*TAU*(TAU+2.)/(electron_mass_c2*(TAU+1.)) ; + G4double w = c-2. ; + G4double tau = 0.5*(w+sqrt(w*w+4.*c)) ; + KineticEnergy = electron_mass_c2*tau ; + } + + G4double Charge = aParticleType.GetPDGCharge(); + G4double ChargeSquare = Charge*Charge/(eplus*eplus); + + G4double TotalEnergy = KineticEnergy + electron_mass_c2 ; + G4double beta2 = KineticEnergy*(TotalEnergy+electron_mass_c2) + /(TotalEnergy*TotalEnergy); + G4double bg2 = KineticEnergy*(TotalEnergy+electron_mass_c2) + /(electron_mass_c2*electron_mass_c2); + + G4double eps = epsfactor*bg2/Z23; + + if (eps epsmax) w1=log(2.*eps)+1./eps-3./(8.*eps*eps); + else w1=log((a+1.)/(a-1.))-2./(a+1.); + w = 1./((1.-x0)*eps); + if (w < epsmin) w2=-log(w)-1.+2.*w-1.5*w*w; + else w2 = log((a-x0)/(a-1.))-(1.-x0)/(a-x0); + corrnuclsize = w1/w2; + corrnuclsize = exp(-FactPar*ParticleMass/KineticEnergy)* + (corrnuclsize-1.)+1.; + } + + // interpolate in AtomicNumber and beta2 + // get bin number in Z + G4int iZ = 14; + while ((iZ>=0)&&(Zdat[iZ]>=AtomicNumber)) iZ -= 1; + if (iZ==14) iZ = 13; + if (iZ==-1) iZ = 0 ; + + G4double Z1 = Zdat[iZ]; + G4double Z2 = Zdat[iZ+1]; + G4double ratZ = (AtomicNumber-Z1)/(Z2-Z1); + + // get bin number in T (beta2) + G4int iT = 22; + while ((iT>=0)&&(Tdat[iT]>=KineticEnergy)) iT -= 1; + if(iT==22) iT = 21; + if(iT==-1) iT = 0 ; + + // calculate betasquare values + G4double T = Tdat[iT], E = T + electron_mass_c2; + G4double b2small = T*(E+electron_mass_c2)/(E*E); + T = Tdat[iT+1]; E = T + electron_mass_c2; + G4double b2big = T*(E+electron_mass_c2)/(E*E); + G4double ratb2 = (beta2-b2small)/(b2big-b2small); + + G4double c1,c2,cc1,cc2,corr; + if (Charge < 0.) + { + c1 = celectron[iZ][iT]; + c2 = celectron[iZ+1][iT]; + cc1 = c1+ratZ*(c2-c1); + + c1 = celectron[iZ][iT+1]; + c2 = celectron[iZ+1][iT+1]; + cc2 = c1+ratZ*(c2-c1); + + corr = cc1+ratb2*(cc2-cc1); + sigma /= corr; + } + + if (Charge > 0.) + { + c1 = cpositron[iZ][iT]; + c2 = cpositron[iZ+1][iT]; + cc1 = c1+ratZ*(c2-c1); + + c1 = cpositron[iZ][iT+1]; + c2 = cpositron[iZ+1][iT+1]; + cc2 = c1+ratZ*(c2-c1); + + corr = cc1+ratb2*(cc2-cc1); + sigma /= corr; + } + + + // nucl. size correction for particles other than e+/e- only at present !!!! + if((aParticleType.GetParticleName() != "e-") && + (aParticleType.GetParticleName() != "e+") ) + sigma /= corrnuclsize; + + return sigma; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MultipleScatteringSTD::GetContinuousStepLimit( + const G4Track& track, + G4double, + G4double currentMinimumStep, + G4double&) +{ + G4double zPathLength,tPathLength; + const G4DynamicParticle* aParticle; + G4Material* aMaterial; + G4double KineticEnergy,tau,z0,kz; + G4bool isOut; + + G4LossTableManager* theManager = G4LossTableManager::Instance(); + + // this process is not a candidate for selection by default + valueGPILSelectionMSC = NotCandidateForSelection; + + tPathLength = currentMinimumStep; + + aMaterial = track.GetMaterial(); + materialIndex = aMaterial->GetIndex(); + + aParticle = track.GetDynamicParticle(); + KineticEnergy = aParticle->GetKineticEnergy(); + + fTransportMeanFreePath = (*theTransportMeanFreePathTable) + (materialIndex)->GetValue(KineticEnergy,isOut); + + range = theManager->GetRange(aParticle->GetDefinition(), + KineticEnergy,aMaterial); + + // special treatment near boundaries ? + if (boundary) + { + // step limitation at boundary ? + stepno = track.GetCurrentStepNumber() ; + if(stepno == 1) + { + stepnolastmsc = -1000000 ; + tlimit = 1.e10 ; + } + + if(stepno > 1) + { + if(track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) + { + stepnolastmsc = stepno ; + // if : diff.treatment for small/not small Z + if(range > fTransportMeanFreePath) + tlimit = facrange*range ; + else + tlimit = facrange*fTransportMeanFreePath ; + + if(tlimit < tlimitmin) tlimit = tlimitmin ; + laststep = tlimit ; + if(tPathLength > tlimit) + { + tPathLength = tlimit ; + valueGPILSelectionMSC = CandidateForSelection; + } + } + else if(stepno > stepnolastmsc) + { + if((stepno - stepnolastmsc) < nsmallstep) + { + if(tPathLength > tlimit) + { + laststep *= cf ; + tPathLength = laststep ; + valueGPILSelectionMSC = CandidateForSelection; + } + } + } + } + } + + // do the true -> geom transformation + lambda1 = -1.; + z1 = 1.e10 ; + + tau = tPathLength/fTransportMeanFreePath ; + + if(tau < tausmall) zPathLength = tPathLength; + + else + { + if(tPathLength/range < dtrl) zmean = fTransportMeanFreePath*(1.-exp(-tau)); + else + { + T1 = theManager->GetEnergy( + aParticle->GetDefinition(),range-0.5*tPathLength,aMaterial); + lambda1 = (*theTransportMeanFreePathTable) + (materialIndex)->GetValue(T1,isOut); + z1 = fTransportMeanFreePath*(1.-exp(-0.5*tau)); + cth1 = exp(-0.5*tau); + zmean = z1 + lambda1*(1.-exp(-0.5*tPathLength/lambda1))*cth1; + } + + // sample z + if ((pcz > 0.) && (2.*zmean > tPathLength)) + { + z0 = zmean+pcz*(tPathLength-zmean); + kz = (2.*zmean-tPathLength)/(z0-zmean)+1.; + if (G4UniformRand() < z0/tPathLength) + zPathLength = z0*exp(log(G4UniformRand())/kz); + else zPathLength = tPathLength-(tPathLength-z0) + *exp(log(1.-G4UniformRand())/kz); + } + else + { + zPathLength = zmean; + } + } + + tLast = tPathLength; + zLast = zPathLength; + + return zPathLength; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4MultipleScatteringSTD::AlongStepDoIt( + const G4Track& track,const G4Step& Step) +{ + // only a geom path->true path transformation is performed + + fParticleChange.Initialize(track); + + G4double geomPathLength = track.GetStepLength(); + + G4double truePathLength; + + if (geomPathLength/fTransportMeanFreePath < tausmall) + truePathLength = geomPathLength; + else if(geomPathLength == zLast) truePathLength = tLast; + else + { + if (geomPathLength <= z1) + { + if (geomPathLength < fTransportMeanFreePath) + truePathLength = -fTransportMeanFreePath + *log(1.-geomPathLength/fTransportMeanFreePath); + else truePathLength = range; + + lambda1 = -1.; + } + else + { + if ((geomPathLength-z1)/(cth1*lambda1) < 1.) + truePathLength = 0.5*tLast-lambda1 + *log(1.-(geomPathLength-z1)/(cth1*lambda1)); + else truePathLength = range; + } + } + + fParticleChange.SetTrueStepLength(truePathLength); + + return &fParticleChange; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4MultipleScatteringSTD::PostStepDoIt( + const G4Track& trackData, + const G4Step& stepData) +{ + // angle distribution parameters + const G4double kappapl1 = kappa+1., kappami1 = kappa-1. ; + G4bool isOut; + + fParticleChange.Initialize(trackData); + G4double truestep = stepData.GetStepLength(); + + const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); + G4double KineticEnergy = aParticle->GetKineticEnergy(); + + fTransportMeanFreePath = (*theTransportMeanFreePathTable) + (materialIndex)->GetValue(KineticEnergy,isOut); + + // change direction first ( scattering ) + G4double cth =1 ; + G4double tau = truestep/fTransportMeanFreePath; + + if(KineticEnergy <= 0.) + ; + else + { + if (tau < tausmall) cth = 1.; + else if(tau > taubig) cth = -1.+2.*G4UniformRand(); + else + { + if(lambda1 > 0.) tau = 0.5*tLast/lambda1 + +(truestep-0.5*tLast)/fTransportMeanFreePath; + if(tau > taubig) cth = -1.+2.*G4UniformRand(); + else + { + const G4double amax=25. ; + const G4double tau0 = 0.02 ; + const G4double b = 1. ; + + G4double a,x0,c,xmean1,xmean2, + xmeanth,prob,qprob ; + G4double ea,eaa,b1,bx,eb1,ebx,cnorm1,cnorm2,f1x0,f2x0,w ; + + w = log(tau/tau0) ; + if(tau < tau0) + a = (alfa1-alfa2*w)/tau ; + else + a = (alfa1+alfa3*w)/tau ; + + x0 = 1.-xsi/a ; + if(x0 < 0.) x0 = 0. ; + + // from continuity of the 1st derivatives + c = a*(b-x0) ; + if(a*tau < c0) + c = c0*(b-x0)/tau ; + + if(c == 1.) c=1.000001 ; + if(c == 2.) c=2.000001 ; + if(c == 3.) c=3.000001 ; + + if(a*(1.-x0) < amax) + ea = exp(-a*(1.-x0)) ; + else + ea = 0. ; + eaa = 1.-ea ; + + xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; + + b1 = b+1. ; + bx=b-x0 ; + eb1=exp((c-1.)*log(b1)) ; + ebx=exp((c-1.)*log(bx)) ; + xmean2 = (x0*eb1+ebx+(eb1*bx-b1*ebx)/(2.-c))/(eb1-ebx) ; + + xmeanth = exp(-tau) ; + + cnorm1 = a/eaa ; + cnorm2 = (c-1.)*eb1*ebx/(eb1-ebx) ; + f1x0 = cnorm1*exp(-a*(1.-x0)) ; + f2x0 = cnorm2/exp(c*log(b-x0)) ; + + // from continuity at x=x0 + prob = f2x0/(f1x0+f2x0) ; + // from xmean = xmeanth + qprob = (f1x0+f2x0)*xmeanth/(f2x0*xmean1+f1x0*xmean2) ; + + // protection against qprob > 1 + // ******************************************* + if(qprob > 1.) + { + qprob = 1. ; + prob = (xmeanth-xmean2)/(xmean1-xmean2) ; + } + // ******************************************* + + // sampling of costheta + if(G4UniformRand() < qprob) + { + if(G4UniformRand() < prob) + cth = 1.+log(ea+G4UniformRand()*eaa)/a ; + else + cth = b-b1*bx/exp(log(ebx-G4UniformRand()*(ebx-eb1))/(c-1.)) ; + } + else + cth = -1.+2.*G4UniformRand() ; + } + } + } + + G4double sth = sqrt(1.-cth*cth); + G4double phi = twopi*G4UniformRand(); + G4double dirx = sth*cos(phi), diry = sth*sin(phi), dirz = cth; + + G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); + + G4ThreeVector newDirection(dirx,diry,dirz); + newDirection.rotateUz(ParticleDirection); + fParticleChange.SetMomentumChange(newDirection.x(), + newDirection.y(), + newDirection.z()); + + if (fLatDisplFlag) + { + // compute mean lateral displacement, only for safety > tolerance ! + G4double safetyminustolerance = stepData.GetPostStepPoint()->GetSafety(); + G4double rmean, etau; + + if (safetyminustolerance > 0.) + { + if (tau < tausmall) rmean = 0.; + else if(tau < taulim) rmean = kappa*tau*tau*tau*(1.-kappapl1*tau/4.)/6. ; + else + { + if(tau0.) rmean = 2.*fTransportMeanFreePath*sqrt(rmean/3.); + else rmean = 0.; + + // for rmean > 0) only + if (rmean > 0.) + { + if (rmean>safetyminustolerance) rmean = safetyminustolerance; + + // sample direction of lateral displacement + phi = twopi*G4UniformRand(); + dirx = cos(phi); diry = sin(phi); dirz = 0.; + + G4ThreeVector latDirection(dirx,diry,dirz); + latDirection.rotateUz(ParticleDirection); + + // compute new endpoint of the Step + G4ThreeVector newPosition = stepData.GetPostStepPoint()->GetPosition() + + rmean*latDirection; + + G4Navigator* navigator = + G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking(); + navigator->LocateGlobalPointWithinVolume(newPosition); + + fParticleChange.SetPositionChange(newPosition); + } + } + } + + return &fParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + G4bool G4MultipleScatteringSTD::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + // store mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + if (!theTransportMeanFreePathTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->StorePhysicsTable in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to store the PhysicsTables in " + << directory << G4endl; + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4MultipleScatteringSTD::RetrievePhysicsTable( + G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theTransportMeanFreePathTable + if (theTransportMeanFreePathTable != 0) { + theTransportMeanFreePathTable->clearAndDestroy(); + delete theTransportMeanFreePathTable; + } + + G4String filename; + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theTransportMeanFreePathTable = + new G4PhysicsTable(G4Material::GetNumberOfMaterials()); + if (!theTransportMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to retrieve the PhysicsTables from " + << directory << G4endl; + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScatteringSTD::PrintInfoDefinition() +{ + G4String comments = " Tables of transport mean free paths."; + comments += "\n New model of MSC , computes the lateral \n"; + comments += " displacement of the particle , too."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " + << G4BestUnit(LowestKineticEnergy ,"Energy") + << " to " << G4BestUnit(HighestKineticEnergy,"Energy") + << " in " << TotBin << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc b/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc new file mode 100644 index 0000000000..1fe0247c0f --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc @@ -0,0 +1,190 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4SCProcessorStand +// +// Author: Vladimir Ivanchenko +// +// Creation date: 10.05.2002 +// +// Modifications: 09.12.2002 VI remove warning +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4SCProcessorStand.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4Navigator.hh" +#include "G4TransportationManager.hh" +#include "G4EmModelManager.hh" +#include "G4MaterialTable.hh" +#include "G4VEmModel.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4SCProcessorStand::G4SCProcessorStand() + : G4VSubCutoffProcessor(), + theLambdaSubTable(0), + thePositron(G4Positron::Positron()), + modelManager(0) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4SCProcessorStand::~G4SCProcessorStand() +{ + if(theLambdaSubTable) theLambdaSubTable->clearAndDestroy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4SCProcessorStand::Initialise(const G4ParticleDefinition* p, + const G4ParticleDefinition* sp, + G4EmModelManager* m) +{ + particle = p; + secondaryParticle = sp; + modelManager = m; + navigator = (G4TransportationManager::GetTransportationManager()) + ->GetNavigatorForTracking(); + theCuts = modelManager->Cuts(); + theSubCuts = modelManager->Cuts(); + initialMass= particle->GetPDGMass(); + + // Access to materials + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + size_t nMaterials = G4Material::GetNumberOfMaterials(); + + rangeCuts.clear(); + + for(size_t i=0; iGetRangeThreshold(aMaterial)); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4std::vector* G4SCProcessorStand::SampleSecondary(const G4Step& step, + const G4DynamicParticle* dp, + G4double meanLoss) +{ + G4bool b; + const G4Material* mat = (step.GetTrack())->GetMaterial(); + + if(mat != material) { + material = mat; + materialIndex = material->GetIndex(); + cut = (*theCuts)[materialIndex]; + subcut = (*theSubCuts)[materialIndex]; + rcut = rangeCuts[materialIndex]; + } + + if(subcut >= cut) return 0; + + G4double ekin = dp->GetKineticEnergy(); + G4double effChargeFactor = 1.0; + G4double massRatio = 1.0; + G4double mass = initialMass; + + if(dp->GetDefinition() != particle) { + mass = dp->GetMass(); + massRatio = initialMass/mass; + G4double q = particle->GetPDGCharge()/dp->GetCharge(); + effChargeFactor = q*q; + } + + G4double cross = (*theLambdaSubTable)[materialIndex]->GetValue(ekin*massRatio, b); + + if(0.0 >= cross) return 0; + + G4StepPoint* pre = step.GetPreStepPoint(); + G4double presafety = pre->GetSafety(); + G4ThreeVector postpoint = step.GetPostStepPoint()->GetPosition(); + G4double postsafety = navigator->ComputeSafety(postpoint); + G4double safety = G4std::min(presafety,postsafety); + if(safety >= rcut) return 0; + + + G4ThreeVector prepoint = pre->GetPosition(); + G4ThreeVector dr = postpoint - prepoint; + G4double pretime = step.GetPreStepPoint()->GetGlobalTime(); + G4double fragment = 0.0; + G4double dt = 0.0; + G4double length = step.GetStepLength(); + G4double inv_v = (ekin + mass)/(c_light*dp->GetTotalMomentum()); + + G4VEmModel* currentModel = modelManager->SelectModel(ekin); + G4std::vector* vtr = new G4std::vector; + + do { + + G4double del = G4UniformRand()*effChargeFactor / cross; + fragment += del/length; + if (fragment > 1.0) break; + + dt += del * inv_v; + G4std::vector* newp = + currentModel->SampleSecondary(material, dp, subcut, cut); + if (newp) { + + G4DynamicParticle* p; + G4int nNew = newp->size(); + for (G4int i=0; iGetKineticEnergy(); + if (p->GetDefinition() == thePositron) e += electron_mass_c2; + + if (e <= meanLoss) { + meanLoss -= e; + G4Track* t = new G4Track(p, pretime + dt, prepoint + fragment*dr); + vtr->push_back(t); + + } else { + + delete p; + } + } + } + } while (fragment < 1.0); + + return vtr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc b/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc new file mode 100644 index 0000000000..861a91ad1d --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc @@ -0,0 +1,321 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4UniversalFluctuation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: +// +// Class Description: +// +// ------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4UniversalFluctuation.hh" +#include "Randomize.hh" +#include "G4Poisson.hh" +#include "G4Step.hh" +#include "G4Material.hh" +#include "G4DynamicParticle.hh" +#include "G4ParticleDefinition.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4UniversalFluctuation::G4UniversalFluctuation() + :G4VEmFluctuationModel(), + minNumberInteractionsBohr(10.0), + theBohrBeta2(50.0*keV/proton_mass_c2), + minLoss(0.000001*eV), + problim(0.01), + alim(10.), + nmaxCont1(4), + nmaxCont2(16) +{ + lastMaterial = 0; + sumalim = -log(problim); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4UniversalFluctuation::~G4UniversalFluctuation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4UniversalFluctuation::Initialise(const G4ParticleDefinition* part) +{ + particle = part; + particleMass = part->GetPDGMass(); + G4double q = part->GetPDGCharge()/eplus; + chargeSquare = q*q; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4UniversalFluctuation::SampleFluctuations(const G4Material* material, + const G4DynamicParticle* dp, + G4double& tmax, + G4double& length, + G4double meanLoss) +{ +// calculate actual loss from the mean loss +// The model used to get the fluctuation is essentially the same +// as in Glandz in Geant3. + + // shortcut for very very small loss + if(meanLoss < minLoss) return; + + G4double preStepKinEnergy = dp->GetKineticEnergy(); + + if(dp->GetDefinition() != particle) { + particleMass = dp->GetMass(); + G4double q = dp->GetCharge(); + chargeSquare = q*q; + } + + // data members for a given material + + if(material != lastMaterial) { + ipotFluct = material->GetIonisation()->GetMeanExcitationEnergy(); + electronDensity = material->GetElectronDensity(); + // zeff = electronDensity/(material->GetTotNbOfAtomsPerVolume()); + } + + // get particle data + + G4double tau = preStepKinEnergy/particleMass; + G4double tau1 = tau + 1.0; + G4double tau2 = tau * (tau+2.0); + G4double beta2 = tau2/(tau1*tau1); + + + // Validity range for delta electron cross section + G4double loss, siga; + + // Gaussian fluctuation + if(meanLoss >= minNumberInteractionsBohr*tmax || tmax <= ipotFluct*minNumberInteractionsBohr) + { + siga = tmax * (1.0-0.5*beta2) * length * twopi_mc2_rcl2 + * electronDensity / beta2; + siga = sqrt(siga * chargeSquare); +/* + // High velocity or negatively charged particle + if( beta2 > 3.0*theBohrBeta2*zeff || charge < 0.0) { + siga = sqrt( siga * chargeSquare ) ; + + // Low velocity - additional ion charge fluctuations according to + // Q.Yang et al., NIM B61(1991)149-155. + } else { + G4double chu = theIonChuFluctuationModel->TheValue(particle, material); + G4double yang = theIonYangFluctuationModel->TheValue(particle, material); + siga = sqrt( siga * (chargeSquare * chu + yang)) ; + } +*/ + do { + loss = G4RandGauss::shoot(meanLoss,siga); + } while (loss < 0.); + + meanLoss = loss; + if(lastMaterial != material) lastMaterial = material; + return; + } + + // Non Gaussian fluctuation + + if(material != lastMaterial) { + zeff = electronDensity/(material->GetTotNbOfAtomsPerVolume()); + f1Fluct = material->GetIonisation()->GetF1fluct(); + f2Fluct = material->GetIonisation()->GetF2fluct(); + e1Fluct = material->GetIonisation()->GetEnergy1fluct(); + e2Fluct = material->GetIonisation()->GetEnergy2fluct(); + e1LogFluct = material->GetIonisation()->GetLogEnergy1fluct(); + e2LogFluct = material->GetIonisation()->GetLogEnergy2fluct(); + rateFluct = material->GetIonisation()->GetRateionexcfluct(); + ipotLogFluct= material->GetIonisation()->GetLogMeanExcEnergy(); + lastMaterial = material; + } + + G4double suma,w1,w2,C,e0,lossc,w; + G4double a1,a2,a3; + G4int p1,p2,p3; + G4int nb; + G4double corrfac, na,alfa,rfac,namean,sa,alfa1,ea,sea; + G4double dp3; + + w1 = tmax/ipotFluct; + w2 = log(2.*electron_mass_c2*tau2); + + C = meanLoss*(1.-rateFluct)/(w2-ipotLogFluct-beta2); + + a1 = C*f1Fluct*(w2-e1LogFluct-beta2)/e1Fluct; + a2 = C*f2Fluct*(w2-e2LogFluct-beta2)/e2Fluct; + a3 = rateFluct*meanLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); + if(a1 < 0.) a1 = 0.; + if(a2 < 0.) a2 = 0.; + if(a3 < 0.) a3 = 0.; + + suma = a1+a2+a3; + + loss = 0. ; + + if(suma < sumalim) // very small Step + { + e0 = material->GetIonisation()->GetEnergy0fluct(); + + if(tmax == ipotFluct) + { + a3 = meanLoss/e0; + + if(a3>alim) + { + siga=sqrt(a3) ; + p3 = G4std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); + } + else + p3 = G4Poisson(a3); + + loss = p3*e0 ; + + if(p3 > 0) + loss += (1.-2.*G4UniformRand())*e0 ; + + } + else + { + tmax = tmax-ipotFluct+e0 ; + a3 = meanLoss*(tmax-e0)/(tmax*e0*log(tmax/e0)); + + if(a3>alim) + { + siga=sqrt(a3) ; + p3 = G4std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); + } + else + p3 = G4Poisson(a3); + + if(p3 > 0) + { + w = (tmax-e0)/tmax ; + if(p3 > nmaxCont2) + { + dp3 = G4float(p3) ; + corrfac = dp3/G4float(nmaxCont2) ; + p3 = nmaxCont2 ; + } + else + corrfac = 1. ; + + for(G4int i=0; ialim) + { + siga=sqrt(a1) ; + p1 = G4std::max(0,int(G4RandGauss::shoot(a1,siga)+0.5)); + } + else + p1 = G4Poisson(a1); + + // excitation type 2 + if(a2>alim) + { + siga=sqrt(a2) ; + p2 = G4std::max(0,int(G4RandGauss::shoot(a2,siga)+0.5)); + } + else + p2 = G4Poisson(a2); + + loss = p1*e1Fluct+p2*e2Fluct; + + // smearing to avoid unphysical peaks + if(p2 > 0) + loss += (1.-2.*G4UniformRand())*e2Fluct; + else if (loss>0.) + loss += (1.-2.*G4UniformRand())*e1Fluct; + + // ionisation ....................................... + if(a3 > 0.) + { + if(a3>alim) + { + siga=sqrt(a3) ; + p3 = G4std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); + } + else + p3 = G4Poisson(a3); + + lossc = 0.; + if(p3 > 0) + { + na = 0.; + alfa = 1.; + if (p3 > nmaxCont2) + { + dp3 = G4float(p3); + rfac = dp3/(G4float(nmaxCont2)+dp3); + namean = G4float(p3)*rfac; + sa = G4float(nmaxCont1)*rfac; + na = G4RandGauss::shoot(namean,sa); + if (na > 0.) + { + alfa = w1*G4float(nmaxCont2+p3)/ + (w1*G4float(nmaxCont2)+G4float(p3)); + alfa1 = alfa*log(alfa)/(alfa-1.); + ea = na*ipotFluct*alfa1; + sea = ipotFluct*sqrt(na*(alfa-alfa1*alfa1)); + lossc += G4RandGauss::shoot(ea,sea); + } + } + + nb = G4int(G4float(p3)-na); + if (nb > 0) + { + w2 = alfa*ipotFluct; + w = (tmax-w2)/tmax; + for (G4int k=0; k No sucutoff generation (mma) // 14.02.02 initial value of data member finalRange has been changed L.Urban // 26.02.02 initial value of data member finalRange = 1 mm (mma) +// 21.07.02 V.Ivanchenko Fix at low energies - if tmax below ionisation +// potential then only Gaussian fluctuations are sampled. // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -948,22 +950,22 @@ G4double G4VEnergyLoss::GetLossWithFluct(const G4DynamicParticle* aParticle, G4double tau = Tkin/ParticleMass, tau1 = tau+1., tau2 = tau*(tau+2.); G4double Tm = 2.*electron_mass_c2*tau2/(1.+2.*tau1*rmass+rmass*rmass); + if(Tm > threshold) Tm = threshold; + beta2 = tau2/(tau1*tau1); // Gaussian fluctuation ? - if(MeanLoss >= kappa*Tm) + if(MeanLoss >= kappa*Tm || Tm < kappa*ipotFluct) { electronDensity = aMaterial->GetElectronDensity() ; siga = sqrt(Tm*(1.0-0.5*beta2)*step* factor*electronDensity*ChargeSquare/beta2) ; - loss = G4RandGauss::shoot(MeanLoss,siga) ; - if(loss < 0.) loss = 0. ; - return loss ; + do { + loss = G4RandGauss::shoot(MeanLoss,siga) ; + } while (loss < 0. || loss > 2.*MeanLoss); + return loss; } - if (Tm <= ipotFluct) Tm = ipotFluct ; - if(Tm > threshold) Tm = threshold; - w1 = Tm/ipotFluct; w2 = log(2.*electron_mass_c2*tau2); @@ -971,14 +973,10 @@ G4double G4VEnergyLoss::GetLossWithFluct(const G4DynamicParticle* aParticle, a1 = C*f1Fluct*(w2-e1LogFluct-beta2)/e1Fluct; a2 = C*f2Fluct*(w2-e2LogFluct-beta2)/e2Fluct; - if(Tm > ipotFluct) - a3 = rateFluct*MeanLoss*(Tm-ipotFluct)/(ipotFluct*Tm*log(w1)); - else - { - a1 /= 1.-rateFluct ; - a2 /= 1.-rateFluct ; - a3 = 0. ; - } + a3 = rateFluct*MeanLoss*(Tm-ipotFluct)/(ipotFluct*Tm*log(w1)); + if(a1 < 0.) a1 = 0.; + if(a2 < 0.) a2 = 0.; + if(a3 < 0.) a3 = 0.; suma = a1+a2+a3; diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc new file mode 100644 index 0000000000..90eff43822 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc @@ -0,0 +1,915 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4VEnergyLossSTD +// +// Author: Vladimir Ivanchenko +// +// Creation date: 03.01.2002 +// +// Modifications: 13.11.2002 Minor fix - use normalised direction (VI) +// 04.12.2002 Minor change in PostStepDoIt (VI) +// +// Class Description: +// +// It is the unified energy loss process it calculates the continuous +// energy loss for charged particles using a set of Energy Loss +// models valid for different energy regions. There are a possibility +// to create and access to dE/dx and range tables, or to calculate +// that information on fly. +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VEnergyLossSTD.hh" +#include "G4LossTableManager.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4VEmModel.hh" +#include "G4VEmFluctuationModel.hh" +#include "G4DataVector.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsVector.hh" +#include "G4PhysicsLogVector.hh" +#include "G4VParticleChange.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4VSubCutoffProcessor.hh" +#include "G4ProcessManager.hh" +#include "G4UnitsTable.hh" +#include "G4Proton.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VEnergyLossSTD::G4VEnergyLossSTD(const G4String& name, G4ProcessType type): + G4VContinuousDiscreteProcess(name, type), + subCutoffProcessor(0), + emFluctModel(0), + theDEDXTable(0), + theRangeTable(0), + theSecondaryRangeTable(0), + theInverseRangeTable(0), + theLambdaTable(0), + minKinEnergy(1.0*eV), + maxKinEnergy(100.0*GeV), + particle(0), + baseParticle(0), + secondaryParticle(0), + theGamma(G4Gamma::Gamma()), + theElectron(G4Electron::Electron()), + lossFluctuationFlag(false), + subCutoffFlag(false), + subCutoffIsDesired(false), + rndmStepFlag(false), + hasRestProcess(true), + tablesAreBuilt(false), + integral(true), + linLossLimit(0.05), + minSubRange(0.1) +{ + modelManager = new G4EmModelManager(); + (G4LossTableManager::Instance())->Register(this); + + // default dRoverRange and finalRange + SetStepLimits(0.2, 200.0*micrometer); + + verboseLevel = 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VEnergyLossSTD::~G4VEnergyLossSTD() +{ + Clear(); + if(theLambdaTable) theLambdaTable->clearAndDestroy(); + if(subCutoffProcessor) delete subCutoffProcessor; + delete modelManager; + + if(emFluctModel) delete emFluctModel; + (G4LossTableManager::Instance())->Clear(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::Clear() +{ + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::Clear() for " << GetProcessName() << G4endl; + } + theDEDXTable = 0; + theRangeTable = 0; + theInverseRangeTable = 0; + theSecondaryRangeTable = 0; + modelManager->Clear(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::Initialise() +{ + + Clear(); + + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::Initialise() for " + << GetProcessName() << G4endl; + } + + G4double initialCharge = particle->GetPDGCharge(); + G4double initialMass = particle->GetPDGMass(); + chargeSquare = initialCharge*initialCharge/(eplus*eplus); + chargeSqRatio = 1.0; + massRatio = 1.0; + reduceFactor = 1.0; + + if(particle->GetProcessManager()->GetAtRestProcessVector()->size()) + hasRestProcess = true; + else hasRestProcess = false; + + if (baseParticle) { + massRatio = (baseParticle->GetPDGMass())/initialMass; + G4double q = initialCharge/baseParticle->GetPDGCharge(); + chargeSqRatio = q*q; + reduceFactor = 1.0/(chargeSqRatio*massRatio); + } + + theCuts = modelManager->Initialise(particle, secondaryParticle, minSubRange, verboseLevel); + + if(1 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::Initialise(): emFluctModel= " << emFluctModel + << " subCutoffFlag= " << subCutoffFlag + << G4endl; + } + + if(emFluctModel) emFluctModel->Initialise(particle); + + if (subCutoffFlag) { + subCutoffProcessor->Initialise(particle, secondaryParticle, modelManager); + } + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::Initialise() is done " + << " chargeSqRatio= " << chargeSqRatio + << " massRatio= " << massRatio + << " reduceFactor= " << reduceFactor + << G4endl; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::BuildPhysicsTable(const G4ParticleDefinition& part) +{ + + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::BuildPhysicsTable() for " + << GetProcessName() << G4endl; + } + + tablesAreBuilt = false; + + // Are particle defined? + if(!particle || particle->GetParticleType() == "nucleus") { + particle = ∂ + } + if(particle != &part) { + G4cout << "G4VEnergyLossSTD::BuildPhysicsTable: " + << particle->GetParticleName() + << " != " << part.GetParticleName() + << G4endl; + G4Exception("G4VEnergyLossSTD::BuildPhysicsTable with wrong G4ParticleDefinition"); + } + + if(!baseParticle) baseParticle = DefineBaseParticle(particle); + + if(particle->GetParticleType() == "nucleus" && + particle->GetParticleName() != "GenericIon" && + theLambdaTable) return; + + + // It is responsability of the G4LossTables to build DEDX and range tables + (G4LossTableManager::Instance())->BuildDEDXTable(particle); + + // Access to materials + //const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + size_t nMaterials = G4Material::GetNumberOfMaterials(); + + //!!!! To be checked because finalRange is changed here !!!! + for (size_t i=0; iGetLengthCuts())[i]; + if (finalRange > lengthCut) finalRange = lengthCut; + } + + if(theLambdaTable) theLambdaTable->clearAndDestroy(); + + theLambdaTable = BuildLambdaTable(); + + if (subCutoffFlag) { + subCutoffProcessor->SetLambdaSubTable(BuildLambdaSubTable()); + } + tablesAreBuilt = true; + + // if(particle == G4Electron::Electron() || particle == G4Proton::Proton() + // || particle == G4GenericIon::GenericIon()) + if(!baseParticle) PrintInfoDefinition(); + + if(0 < verboseLevel) { + G4cout << "Tables are built for " << particle->GetParticleName() + << " Integral= " << integral + << G4endl; + if(2 < verboseLevel) { + G4cout << "DEDXTable address= " << theDEDXTable << G4endl; + if(theDEDXTable) G4cout << (*theDEDXTable) << G4endl; + G4cout << "RangeTable address= " << theRangeTable << G4endl; + if(theRangeTable) G4cout << (*theRangeTable) << G4endl; + G4cout << "InverseRangeTable address= " << theInverseRangeTable << G4endl; + if(theInverseRangeTable) G4cout << (*theInverseRangeTable) << G4endl; + } + } + + if(2 < verboseLevel) { + G4cout << "LambdaTable address= " << theLambdaTable << G4endl; + if(theLambdaTable) G4cout << (*theLambdaTable) << G4endl; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4VEnergyLossSTD::StorePhysicsTable(G4ParticleDefinition* part, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + if (!baseParticle) { + + G4String f1 = GetPhysicsTableFileName(part,directory,"DEDX",ascii); + G4String f2 = GetPhysicsTableFileName(part,directory,"Range",ascii); + G4String f3 = GetPhysicsTableFileName(part,directory,"InverseRange",ascii); + + if(!((G4LossTableManager::Instance())->StorePhysicsTable(this,f1,f2,f3,ascii))) + { + return false; + } + } + + if (theLambdaTable) { + filename = GetPhysicsTableFileName(part,directory,"Lambda",ascii); + if ( !theLambdaTable->StorePhysicsTable(filename, ascii) ){ + G4cout << "Fatal error theLambdaTable->StorePhysicsTable in <" + << filename << ">" + << G4endl; + return false; + } + } + + G4PhysicsTable* theLambdaSubTable = 0; + if(subCutoffProcessor) theLambdaSubTable = subCutoffProcessor->LambdaSubTable(); + + if (theLambdaSubTable) { + filename = GetPhysicsTableFileName(part,directory,"LambdaSub",ascii); + if ( !theLambdaSubTable->StorePhysicsTable(filename, ascii) ){ + G4cout << "Fatal error theLambdaSubTable->StorePhysicsTable in <" + << filename << ">" + << G4endl; + return false; + } + } + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to store the PhysicsTables in " + << directory << G4endl; + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4VEnergyLossSTD::RetrievePhysicsTable(G4ParticleDefinition* part, + const G4String& directory, + G4bool ascii) +{ + + // Are particle defined? + if(!particle) { + particle = part; + } + if(particle != part) { + G4cout << "G4VEnergyLossSTD::RetrievePhysicsTable: " + << particle->GetParticleName() + << " != " << part->GetParticleName() + << G4endl; + G4Exception("G4VEnergyLossSTD::RetrievePhysicsTable with wrong G4ParticleDefinition"); + } + + Initialise(); + + G4PhysicsTable* theTable; + G4String filename; + G4String particleName = particle->GetParticleName(); + G4int nMaterials = G4Material::GetNumberOfMaterials(); + + filename = GetPhysicsTableFileName(part,directory,"DEDX",ascii); + theTable = new G4PhysicsTable(nMaterials); + if (theTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << "DEDX table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } else { + G4cout << "DEDX table for " << particleName << " in file <" + << filename << "> is not exist" + << G4endl; + } + theDEDXTable = theTable; + + filename = GetPhysicsTableFileName(part,directory,"Range",ascii); + theTable = new G4PhysicsTable(nMaterials); + if (theTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << "Range table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } else { + G4cout << "Range table for " << particleName << " in file <" + << filename << "> is not exist" + << G4endl; + } + theRangeTable = theTable; + + filename = GetPhysicsTableFileName(part,directory,"InverseRange",ascii); + theTable = new G4PhysicsTable(nMaterials); + if (theTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << "Inverse table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + return false; + } + theInverseRangeTable = theTable; + + filename = GetPhysicsTableFileName(part,directory,"Lambda",ascii); + theLambdaTable = new G4PhysicsTable(nMaterials); + if (theLambdaTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << "Lambda table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } else { + G4cout << "Lambda table for " << particleName << " in file <" + << filename << "> is not exist" + << G4endl; + } + + G4PhysicsTable* theLambdaSubTable = 0; + filename = GetPhysicsTableFileName(part,directory,"LambdaSub",ascii); + theLambdaSubTable = new G4PhysicsTable(nMaterials); + if (theLambdaSubTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << "LambdaSub table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + if(subCutoffProcessor) subCutoffProcessor->SetLambdaSubTable(theLambdaSubTable); + } else { + G4cout << "LambdaSub table for " << particleName << " in file <" + << filename << "> is not exist" + << G4endl; + } + + // G4LossTableManager manages DEDX and range tables + + (G4LossTableManager::Instance())->RetrieveDEDXTable(particle, this); + + + G4cout << GetProcessName() << " for " << particleName + << ": end of retrieving PhysicsTables from directory <" + << directory << ">" << G4endl; + + return true; +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::SetParticles(const G4ParticleDefinition* p1, + const G4ParticleDefinition* p2, + const G4ParticleDefinition* p3) +{ + particle = p1; + baseParticle = p2; + secondaryParticle = p3; + G4bool yes = false; + if(particle) yes = particle->GetPDGCharge(); + if(baseParticle) { + if(!baseParticle->GetPDGCharge()) yes = false; + else { + if((particle->GetPDGMass() < MeV && + baseParticle->GetPDGMass() > MeV) || + (particle->GetPDGMass() > MeV && + baseParticle->GetPDGMass() < MeV)) yes = false; + } + } + if(!yes) { + G4cout << "Warning in G4VEnergyLossSTD::SetParticle: " + << particle->GetParticleName() + << " losses cannot be obtained from " + << baseParticle->GetParticleName() + << " losses" << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::AddEmModel(G4VEmModel* p, G4int order) +{ + modelManager->AddEmModel(p, order); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::AddEmFluctuationModel(G4VEmFluctuationModel* p) +{ + if(emFluctModel) delete emFluctModel; + emFluctModel = p; + if(p) lossFluctuationFlag = true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTable() +{ + + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::BuildDEDXTable() for " + << GetProcessName() + << " and particle " << particle->GetParticleName() + << G4endl; + } + + // vectors to provide continues dE/dx + G4DataVector factor; + G4DataVector dedxLow; + G4DataVector dedxHigh; + + // Access to materials + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + size_t nMaterials = G4Material::GetNumberOfMaterials(); + G4PhysicsTable* theTable = new G4PhysicsTable(nMaterials); + + if(0 < verboseLevel) { + G4cout << nMaterials << " materials" + << " minKinEnergy= " << minKinEnergy + << " maxKinEnergy= " << maxKinEnergy + << G4endl; + } + + for(size_t i=0; iFillDEDXVector(aVector, material); + + // Insert vector for this material into the table + theTable->insert(aVector) ; + } + + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::BuildDEDXTable(): table is built" << G4endl; + } + + return theTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4VEnergyLossSTD::BuildLambdaTable() +{ + + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::BuildLambdaTable() for process " + << GetProcessName() << " and particle " + << particle->GetParticleName() + << G4endl; + } + + // Access to materials + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + G4int nMaterials = G4Material::GetNumberOfMaterials(); + G4PhysicsTable* theTable = new G4PhysicsTable(nMaterials); + + for(G4int i=0; iFillLambdaVector(aVector, material); + + // Insert vector for this material into the table + theTable->insert(aVector) ; + } + + if(1 < verboseLevel) { + G4cout << "Lambda table is built" << G4endl; + } + + return theTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4VEnergyLossSTD::BuildLambdaSubTable() +{ + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::BuildLambdaSubTable() for process " + << GetProcessName() << " and particle " + << particle->GetParticleName() << G4endl; + } + + // Access to materials + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + size_t nMaterials = G4Material::GetNumberOfMaterials(); + G4PhysicsTable* theTable = new G4PhysicsTable(nMaterials); + + for(size_t i=0; iFillSubLambdaVector(aVector, material); + + // Insert vector for this material into the table + theTable->insert(aVector) ; + } + + if(1 < verboseLevel) { + G4cout << "Table is built" << G4endl; + } + + return theTable; +} + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, + const G4Step& step) +{ + aParticleChange.Initialize(track); + // The process has range table - calculate energy loss + if(!theRangeTable) return &aParticleChange; + + // Get the actual (true) Step length + G4double length = step.GetStepLength(); + G4double eloss = 0.0; + G4bool b; + G4double finalT = preStepKinEnergy; + + /* + if(-1 < verboseLevel) { + G4cout << "AlongStepDoIt for " + << GetProcessName() << " and particle " + << particle->GetParticleName() + << " eScaled(MeV)= " << finalT/MeV + << " slim(mm)= " << fRange/mm + << " s(mm)= " << length/mm + << G4endl; + } + */ + + static const G4double faclow = 1.5; + + // low energy deposit case + if (finalT < minKinEnergy || length >= fRange) { + eloss = finalT; + + } else if(finalT < faclow*minKinEnergy) { + + eloss = finalT*sqrt(length/fRange); + + // Short step + } else if( length <= linLossLimit * fRange ) { + eloss = (((*theDEDXTable)[currentMaterialIndex])-> + GetValue(preStepScaledEnergy, b))*length*chargeSqRatio; + + // Long step + } else { + G4double x = (fRange-length)/reduceFactor; + G4PhysicsVector* v = (*theInverseRangeTable)[currentMaterialIndex]; + G4double postStepScaledEnergy = v->GetValue(x, b); + eloss = (preStepScaledEnergy - postStepScaledEnergy)/massRatio; + + /* + if(-1 < verboseLevel) { + G4cout << "fRange(mm)= " << fRange/mm + << " xPost(mm)= " << x/mm + << " ePre(MeV)= " << preStepScaledEnergy/MeV + << " ePost(MeV)= " << postStepScaledEnergy/MeV + << " eloss(MeV)= " << eloss/MeV + << " eloss0(MeV)= " << (((*theDEDXTable)[currentMaterialIndex])-> + GetValue(preStepScaledEnergy, b))*length*chargeSqRatio + << G4endl; + } + */ + + if(eloss < 0.0) eloss = 0.0; + } + + // + if(eloss > finalT) eloss = finalT; + + const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); + + // Sub cutoff generation + if(subCutoffFlag) { + + G4std::vector* newp = subCutoffProcessor-> + SampleSecondary(step, dynParticle, eloss); + + if(newp) { + + G4ThreeVector finalP = dynParticle->GetMomentum(); + G4int n = newp->size(); + if(n > 0) { + aParticleChange.SetNumberOfSecondaries(n); + G4Track* t; + G4double e; + for (G4int i=0; iGetKineticEnergy(); + const G4ParticleDefinition* pd = t->GetDefinition(); + if (pd != theGamma && pd != theElectron ) e += pd->GetPDGMass(); + + finalT -= e; + finalP -= t->GetMomentum(); + aParticleChange.AddSecondary(t); + } + finalP = finalP.unit(); + aParticleChange.SetMomentumChange(finalP); + } + delete newp; + } + } + + // Sample fluctuations + + if (lossFluctuationFlag && eloss + minKinEnergy > finalT) { + + G4double tmax = MaxSecondaryEnergy(dynParticle); + tmax = G4std::min(tmax,(*theCuts)[currentMaterialIndex]); + + emFluctModel->SampleFluctuations(currentMaterial, dynParticle, + tmax, length, eloss); + } + + /* + if(1 < verboseLevel) { + G4cout << "eloss(MeV)= " << eloss/MeV + << " currentChargeSquare= " << chargeSquare + << G4endl; + } + */ + finalT -= eloss; + + // G4cout << "finalT= " << finalT << G4endl; + + if (finalT < minKinEnergy) { + + eloss += finalT; + finalT = 0.0; + + // !!!! to be checked - problem of Forced processes + + if (hasRestProcess) aParticleChange.SetStatusChange(fStopButAlive); + else aParticleChange.SetStatusChange(fStopAndKill); + } + + aParticleChange.SetEnergyChange(finalT); + aParticleChange.SetLocalEnergyDeposit(eloss); + + return &aParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VParticleChange* G4VEnergyLossSTD::PostStepDoIt(const G4Track& track, + const G4Step& step) +{ + aParticleChange.Initialize(track); + G4double finalT = track.GetKineticEnergy(); + + // Integral approach + if(integral) { + G4bool b; + G4double postStepLambda = + (((*theLambdaTable)[currentMaterialIndex])->GetValue(finalT,b))*chargeSqRatio; + + if(preStepLambda*G4UniformRand() > postStepLambda) + return G4VContinuousDiscreteProcess::PostStepDoIt(track,step); + } + + G4VEmModel* currentModel = modelManager->SelectModel(finalT); + G4double tcut = (*theCuts)[currentMaterialIndex]; + const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); + + if(0 < verboseLevel) { + const G4ParticleDefinition* pd = dynParticle->GetDefinition(); + G4cout << "G4VEnergyLossSTD::PostStepDoIt: Sample secondary; E= " << finalT/MeV + << " MeV; model= (" << currentModel->LowEnergyLimit(pd, currentMaterial) + << ", " << currentModel->HighEnergyLimit(pd, currentMaterial) << ")" + << G4endl; + } + + G4std::vector* newp = + currentModel->SampleSecondary(currentMaterial, dynParticle, tcut, finalT); + + if (newp) { + G4int n = newp->size(); + + G4ThreeVector finalP = dynParticle->GetMomentum(); + G4DynamicParticle* dp; + G4double e; + aParticleChange.SetNumberOfSecondaries(n); + for (G4int i=0; iGetKineticEnergy(); + if (dp->GetDefinition() != theElectron ) e += dp->GetMass(); + finalT -= e; + finalP -= dp->GetMomentum(); + aParticleChange.AddSecondary(dp); + } + + if (finalT < minKinEnergy) { + aParticleChange.SetLocalEnergyDeposit(finalT); + finalT = 0.0; + + // !!!! to be checked - problem of Forced processes + + if (hasRestProcess) aParticleChange.SetStatusChange(fStopButAlive); + else aParticleChange.SetStatusChange(fStopAndKill); + } + + aParticleChange.SetEnergyChange(finalT); + finalP = finalP.unit(); + aParticleChange.SetMomentumChange(finalP); + + delete newp; + } + + return G4VContinuousDiscreteProcess::PostStepDoIt(track,step); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::PrintInfoDefinition() const +{ + G4cout << G4endl << GetProcessName() << ": " << G4endl + << " dE/dx and range tables from " + << G4BestUnit(MinKinEnergy(),"Energy") + << " to " << G4BestUnit(MaxKinEnergy(),"Energy") + << " in " << DEDXBinning() << " bins." << G4endl + << " Lambda tables from threshold to " + << G4BestUnit(MaxKinEnergy(),"Energy") + << " in " << LambdaBinning() << " bins." + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::SetDEDXTable(G4PhysicsTable* p) +{ + if(theDEDXTable) delete theDEDXTable; + theDEDXTable = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::SetRangeTable(G4PhysicsTable* p) +{ + if(theRangeTable) delete theRangeTable; + theRangeTable = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::SetSecondaryRangeTable(G4PhysicsTable* p) +{ + if(theSecondaryRangeTable) delete theSecondaryRangeTable; + theSecondaryRangeTable = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::SetInverseRangeTable(G4PhysicsTable* p) +{ + if(theInverseRangeTable) delete theInverseRangeTable; + theInverseRangeTable = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsVector* G4VEnergyLossSTD::DEDXPhysicsVector(const G4Material*) +{ + return new G4PhysicsLogVector(minKinEnergy, maxKinEnergy, nDEDXBins); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsVector* G4VEnergyLossSTD::LambdaPhysicsVector(const G4Material* material) +{ + G4PhysicsVector* v = 0; + G4double cut = (*theCuts)[material->GetIndex()]; + if(cut > maxKinEnergy) { + v = new G4PhysicsLogVector(maxKinEnergy*0.5, maxKinEnergy, 2); + } else { + G4double tmin = G4std::max(MinPrimaryEnergy(particle, material, cut), minKinEnergy); + if(tmin >= maxKinEnergy) tmin = 0.5*maxKinEnergy; + v = new G4PhysicsLogVector(tmin, maxKinEnergy, nLambdaBins); + } + return v; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsVector* G4VEnergyLossSTD::SubLambdaPhysicsVector(const G4Material* material) +{ + G4PhysicsVector* v = 0; + G4double cut = (*theCuts)[material->GetIndex()]; + if(cut > maxKinEnergy) { + v = new G4PhysicsLogVector(maxKinEnergy*0.5, maxKinEnergy, 2); + } else { + G4double tmin = G4std::max(MinPrimaryEnergy(particle, material, cut), minKinEnergy); + if(tmin >= maxKinEnergy) tmin = 0.5*maxKinEnergy; + v = new G4PhysicsLogVector(tmin, maxKinEnergy, nLambdaBins); + } + return v; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossSTD::SetSubCutoffProcessor(G4VSubCutoffProcessor* p) +{ + if(subCutoffProcessor) delete subCutoffProcessor; + subCutoffProcessor = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4VEnergyLossSTD::MicroscopicCrossSection(G4double kineticEnergy, + const G4Material* material) +{ + // Cross section per atom is calculated + DefineMaterial(material); + G4double cross = 0.0; + G4bool b; + if(theLambdaTable) { + cross = (((*theLambdaTable)[currentMaterialIndex])-> + GetValue(kineticEnergy, b)); + + cross /= material->GetTotNbOfAtomsPerVolume(); + } + + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4VEnergyLossSTD::MeanFreePath(const G4Track& track, + G4double s, + G4ForceCondition* cond) +{ + return GetMeanFreePath(track, s, cond); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4VEnergyLossSTD::ContinuousStepLimit(const G4Track& track, + G4double x, G4double y, G4double& z) +{ + return GetContinuousStepLimit(track, x, y, z); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/source/processes/electromagnetic/xrays/History b/source/processes/electromagnetic/xrays/History index e044fd433b..05f7e648f8 100644 --- a/source/processes/electromagnetic/xrays/History +++ b/source/processes/electromagnetic/xrays/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2002/05/16 21:22:10 gum Exp $ +$Id: History,v 1.18 2002/11/25 18:50:19 gum Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,19 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +25 November 02: P. Gumplinger (xrays-V04-01-03) +- G4Scintillation now allows for particle dependent excitation levels + +21 November 02: P. Gumplinger (xrays-V04-01-02) +- G4Scintillation now uses G4Poisson for small MeanNumPhotons in a step + +14 November 02: P. Gumplinger (xrays-V04-01-01) +- G4Scintillation now uses the nearest integer to calculate the number of photons in DoIt + +07 November 02: P. Gumplinger (xrays-V04-01-00) +- G4Scintillation now allows for fast and slow components. Scintillation properties are stored + with the material and retrieved with GetConstProperty. + 16 may 02: P. Gumplinger (xrays-V04-00-04) - G4Scintillation now inherits from G4VRestDiscreteProcess changes made accordingly G4Scintillation/G4Cerenkov now only suspend the track when it is still 'fAlive' diff --git a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh index 3c0cc7a48a..1c3ee220ed 100644 --- a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh +++ b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh @@ -22,7 +22,7 @@ // // // $Id: G4Cerenkov.hh,v 1.5 2001/07/11 10:03:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh index 27fe70a10d..5b1d1c714b 100644 --- a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh +++ b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh @@ -22,7 +22,7 @@ // // // $Id: G4ForwardXrayTR.hh,v 1.7 2001/07/11 10:03:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4ForwardXrayTR -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh index be2bee7fb0..e94841a14b 100644 --- a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaXTRadiator.hh,v 1.1 2002/01/22 15:22:53 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh index 0b748a6df0..d733bceab3 100644 --- a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRadiator.hh,v 1.2 2002/01/18 17:26:20 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh index 865cf4fb30..9d3bd7e86f 100644 --- a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh +++ b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scintillation.hh,v 1.8 2002/05/16 21:19:39 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Scintillation.hh,v 1.11 2002/11/25 18:48:51 gum Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -34,7 +34,10 @@ // Version: 1.0 // Created: 1998-11-07 // Author: Peter Gumplinger -// Updated: 2002-05-16 changed to inherit from VRestDiscreteProcess +// Updated: 2002-11-21 change to user G4Poisson for small MeanNumPotons +// 2002-11-07 allow for fast and slow scintillation +// 2002-11-05 make use of constant material properties +// 2002-05-16 changed to inherit from VRestDiscreteProcess // 2002-05-09 changed IsApplicable method // 1999-10-29 add method and class descriptors // @@ -52,6 +55,7 @@ #include "globals.hh" #include "templates.hh" #include "Randomize.hh" +#include "G4Poisson.hh" #include "G4ThreeVector.hh" #include "G4ParticleMomentum.hh" #include "G4Step.hh" @@ -113,14 +117,14 @@ public: // With description G4double , G4ForceCondition* ); // Returns infinity; i. e. the process does not limit the step, - // but sets the 'Forced' condition for the DoIt to be invoked at - // every step. + // but sets the 'StronglyForced' condition for the DoIt to be + // invoked at every step. G4double GetMeanLifeTime(const G4Track& aTrack, G4ForceCondition* ); // Returns infinity; i. e. the process does not limit the time, - // but sets the 'Forced' condition for the DoIt to be invoked at - // every step. + // but sets the 'StronglyForced' condition for the DoIt to be + // invoked at every step. G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep); @@ -137,34 +141,37 @@ public: // With description G4bool GetTrackSecondariesFirst() const; // Returns the boolean flag for tracking secondaries first. - void SetScintillationYield(const G4double yield); - // Called to set the scintillation photon yield per unit of - // energy deposition. IMPORTANT: 'yield' has units of 1/energy - // and is not a simple number! - G4double GetScintillationYield() const; - // Returns the photon yield per energy unit. + void SetScintillationYieldFactor(const G4double yieldfactor); + // Called to set the scintillation photon yield factor, needed when + // the yield is different for different types of particles. This + // scales the yield obtained from the G4MaterialPropertiesTable. - void SetResolutionScale(const G4double scale); - // Called to set sigma of the Gaussian photon yield distribution. - G4double GetResolutionScale() const; - // Returns the sigma of the Gaussian photon yield distribution. + G4double GetScintillationYieldFactor() const; + // Returns the photon yield factor. - void SetScintillationTime(const G4double time); - // Called to set the exponential time constant for the delayed - // scintillation photon emission. - G4double GetScintillationTime() const; - // Returns the exponential time constant for the delayed - // scintillation photon emission. + void SetScintillationExcitationRatio(const G4double excitationratio); + // Called to set the scintillation exciation ratio, needed when + // the scintillation level excitation is different for different + // types of particles. This overwrites the YieldRatio obtained + // from the G4MaterialPropertiesTable. - G4PhysicsTable* GetPhysicsTable() const; - // Returns the address of the physics table. + G4double GetScintillationExcitationRatio() const; + // Returns the scintillation level excitation ratio. + + G4PhysicsTable* GetFastIntegralTable() const; + // Returns the address of the fast scintillation integral table. + + G4PhysicsTable* GetSlowIntegralTable() const; + // Returns the address of the slow scintillation integral table. void DumpPhysicsTable() const; - // Prints the physics table. + // Prints the fast and slow scintillation integral tables. private: void BuildThePhysicsTable(); + // It builds either the fast or slow scintillation integral table; + // or both. /////////////////////// // Class Data Members @@ -172,18 +179,16 @@ private: protected: - G4PhysicsTable* thePhysicsTable; - // A Physics Table can be either a cross-sections table or - // an energy table (or can be used for other specific - // purposes). + G4PhysicsTable* theSlowIntegralTable; + G4PhysicsTable* theFastIntegralTable; private: G4bool fTrackSecondariesFirst; - G4double ScintillationYield; - G4double ScintillationTime; - G4double ResolutionScale; + G4double YieldFactor; + + G4double ExcitationRatio; }; @@ -214,58 +219,65 @@ G4bool G4Scintillation::GetTrackSecondariesFirst() const } inline -void G4Scintillation::SetScintillationYield(const G4double yield) +void G4Scintillation::SetScintillationYieldFactor(const G4double yieldfactor) { - ScintillationYield = yield; + YieldFactor = yieldfactor; } inline -G4double G4Scintillation::GetScintillationYield() const +G4double G4Scintillation::GetScintillationYieldFactor() const { - return ScintillationYield; + return YieldFactor; } inline -void G4Scintillation::SetResolutionScale(const G4double scale) +void G4Scintillation::SetScintillationExcitationRatio(const G4double excitationratio) { - ResolutionScale = scale; + ExcitationRatio = excitationratio; } inline -G4double G4Scintillation::GetResolutionScale() const +G4double G4Scintillation::GetScintillationExcitationRatio() const { - return ResolutionScale; + return ExcitationRatio; } inline -void G4Scintillation::SetScintillationTime(const G4double time) +G4PhysicsTable* G4Scintillation::GetSlowIntegralTable() const { - ScintillationTime = time; + return theSlowIntegralTable; } inline -G4double G4Scintillation::GetScintillationTime() const +G4PhysicsTable* G4Scintillation::GetFastIntegralTable() const { - return ScintillationTime; -} - -inline -G4PhysicsTable* G4Scintillation::GetPhysicsTable() const -{ - return thePhysicsTable; + return theFastIntegralTable; } inline void G4Scintillation::DumpPhysicsTable() const { - G4int PhysicsTableSize = thePhysicsTable->entries(); - G4PhysicsOrderedFreeVector *v; + if (theFastIntegralTable) { + G4int PhysicsTableSize = theFastIntegralTable->entries(); + G4PhysicsOrderedFreeVector *v; - for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) - { - v = (G4PhysicsOrderedFreeVector*)(*thePhysicsTable)[i]; + for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) + { + v = (G4PhysicsOrderedFreeVector*)(*theFastIntegralTable)[i]; v->DumpValues(); - } + } + } + + if (theSlowIntegralTable) { + G4int PhysicsTableSize = theSlowIntegralTable->entries(); + G4PhysicsOrderedFreeVector *v; + + for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) + { + v = (G4PhysicsOrderedFreeVector*)(*theSlowIntegralTable)[i]; + v->DumpValues(); + } + } } #endif /* G4Scintillation_h */ diff --git a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh index 618a3eb7bc..6cd20d6ffb 100644 --- a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh @@ -22,7 +22,7 @@ // // // $Id: G4TransitionRadiation.hh,v 1.6 2001/07/11 10:03:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4TransitionRadiation -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh index 96d7da8731..91dd610960 100644 --- a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh +++ b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXTRenergyLoss.hh,v 1.3 2002/01/18 17:26:21 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc index c5fa790bd8..62faf07791 100644 --- a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc +++ b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc @@ -22,7 +22,7 @@ // // // $Id: G4Cerenkov.cc,v 1.13 2002/05/16 21:21:14 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // Cerenkov Radiation Class Implementation diff --git a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc index ae8ce179e0..5920f5112a 100644 --- a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc +++ b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc @@ -22,7 +22,7 @@ // // // $Id: G4ForwardXrayTR.cc,v 1.7 2001/10/24 16:40:54 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4ForwardXrayTR class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc index f657688f74..940dee8a0b 100644 --- a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc @@ -22,7 +22,7 @@ // // // $Id: G4GammaXTRadiator.cc,v 1.1 2002/01/22 15:22:53 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc index a5cd81df6a..21b82aa758 100644 --- a/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRadiator.cc,v 1.2 2002/01/18 17:26:21 grichine Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "g4std/complex" diff --git a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc index a1d44b6f5c..13e0e7baff 100644 --- a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc +++ b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scintillation.cc,v 1.10 2002/05/16 21:20:11 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Scintillation.cc,v 1.16 2002/11/26 00:52:13 gum Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // Scintillation Light Class Implementation @@ -33,7 +33,13 @@ // Version: 1.0 // Created: 1998-11-07 // Author: Peter Gumplinger -// Updated: 2002-05-09 by Peter Gumplinger +// Updated: 2002-11-21 by Peter Gumplinger +// > change to use G4Poisson for small MeanNumPhotons +// 2002-11-07 by Peter Gumplinger +// > now allow for fast and slow scintillation component +// 2002-11-05 by Peter Gumplinger +// > now use scintillation constants from G4Material +// 2002-05-09 by Peter Gumplinger // > use only the PostStepPoint location for the origin of // scintillation photons when energy is lost to the medium // by a neutral particle @@ -70,11 +76,11 @@ G4Scintillation::G4Scintillation(const G4String& processName) { fTrackSecondariesFirst = false; - ScintillationYield = 0.0; - ScintillationTime = 0.0; - ResolutionScale = 1.0; + YieldFactor = 1.0; + ExcitationRatio = 1.0; - thePhysicsTable = NULL; + theFastIntegralTable = NULL; + theSlowIntegralTable = NULL; if (verboseLevel>0) { G4cout << GetProcessName() << " is created " << G4endl; @@ -83,20 +89,20 @@ G4Scintillation::G4Scintillation(const G4String& processName) BuildThePhysicsTable(); } -// G4Scintillation::G4Scintillation(const G4Scintillation &right) -// { -// } - //////////////// // Destructors //////////////// G4Scintillation::~G4Scintillation() { - if (thePhysicsTable != NULL) { - thePhysicsTable->clearAndDestroy(); - delete thePhysicsTable; + if (theFastIntegralTable != NULL) { + theFastIntegralTable->clearAndDestroy(); + delete theFastIntegralTable; } + if (theSlowIntegralTable != NULL) { + theSlowIntegralTable->clearAndDestroy(); + delete theSlowIntegralTable; + } } //////////// @@ -123,9 +129,9 @@ G4VParticleChange* G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) // This routine is called for each tracking step of a charged particle -// in a scintillator. A Gaussian-distributed number of photons is generated -// according to the scintillation yield formula, distributed evenly along -// the track segment and uniformly into 4pi. +// in a scintillator. A Poisson/Gauss-distributed number of photons is +// generated according to the scintillation yield formula, distributed +// evenly along the track segment and uniformly into 4pi. { aParticleChange.Initialize(aTrack); @@ -147,23 +153,42 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) if (!aMaterialPropertiesTable) return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); - const G4MaterialPropertyVector* Intensity = - aMaterialPropertiesTable->GetProperty("SCINTILLATION"); - if (!Intensity) - return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); + const G4MaterialPropertyVector* Fast_Intensity = + aMaterialPropertiesTable->GetProperty("FASTCOMPONENT"); + const G4MaterialPropertyVector* Slow_Intensity = + aMaterialPropertiesTable->GetProperty("SLOWCOMPONENT"); + + if (!Fast_Intensity && !Slow_Intensity ) + return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); + + G4int nscnt = 1; + if (Fast_Intensity && Slow_Intensity) nscnt = 2; + + G4double ScintillationYield = aMaterialPropertiesTable-> + GetConstProperty("SCINTILLATIONYIELD"); + G4double ResolutionScale = aMaterialPropertiesTable-> + GetConstProperty("RESOLUTIONSCALE"); + + ScintillationYield = YieldFactor * ScintillationYield; G4double MeanNumPhotons = ScintillationYield * TotalEnergyDeposit; - G4int NumPhotons = (G4int) MeanNumPhotons + - int( ResolutionScale * G4RandGauss::shoot(0.0,sqrt(MeanNumPhotons))); + G4int NumPhotons; + if (MeanNumPhotons > 10.) { + G4double sigma = ResolutionScale * sqrt(MeanNumPhotons); + NumPhotons = G4int(G4RandGauss::shoot(MeanNumPhotons,sigma)+0.5); + } + else { + NumPhotons = G4int(G4Poisson(MeanNumPhotons)); + } if (NumPhotons <= 0) { - // return unchanged particle and no secondaries + // return unchanged particle and no secondaries - aParticleChange.SetNumberOfSecondaries(0); - - return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); + aParticleChange.SetNumberOfSecondaries(0); + + return G4VRestDiscreteProcess::PostStepDoIt(aTrack, aStep); } //////////////////////////////////////////////////////////////// @@ -182,14 +207,58 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) // Retrieve the Scintillation Integral for this material // new G4PhysicsOrderedFreeVector allocated to hold CII's - G4PhysicsOrderedFreeVector* ScintillationIntegral = - (G4PhysicsOrderedFreeVector*)((*thePhysicsTable)(materialIndex)); + G4int Num = NumPhotons; + + for (G4int scnt = 1; scnt <= nscnt; scnt++) { + + G4double ScintillationTime = 0.*ns; + G4PhysicsOrderedFreeVector* ScintillationIntegral = NULL; + + if (scnt == 1) { + if (nscnt == 1) { + if(Fast_Intensity){ + ScintillationTime = aMaterialPropertiesTable-> + GetConstProperty("FASTTIMECONSTANT"); + ScintillationIntegral = + (G4PhysicsOrderedFreeVector*)((*theFastIntegralTable)(materialIndex)); + } + if(Slow_Intensity){ + ScintillationTime = aMaterialPropertiesTable-> + GetConstProperty("SLOWTIMECONSTANT"); + ScintillationIntegral = + (G4PhysicsOrderedFreeVector*)((*theSlowIntegralTable)(materialIndex)); + } + } + else { + G4double YieldRatio = aMaterialPropertiesTable-> + GetConstProperty("YIELDRATIO"); + if ( ExcitationRatio == 1.0 ) { + Num = G4int (G4std::min(YieldRatio,1.0) * NumPhotons); + } + else { + Num = G4int (G4std::min(ExcitationRatio,1.0) * NumPhotons); + } + ScintillationTime = aMaterialPropertiesTable-> + GetConstProperty("FASTTIMECONSTANT"); + ScintillationIntegral = + (G4PhysicsOrderedFreeVector*)((*theFastIntegralTable)(materialIndex)); + } + } + else { + Num = NumPhotons - Num; + ScintillationTime = aMaterialPropertiesTable-> + GetConstProperty("SLOWTIMECONSTANT"); + ScintillationIntegral = + (G4PhysicsOrderedFreeVector*)((*theSlowIntegralTable)(materialIndex)); + } + + if (!ScintillationIntegral) continue; - // Max Scintillation Integral + // Max Scintillation Integral - G4double CIImax = ScintillationIntegral->GetMaxValue(); + G4double CIImax = ScintillationIntegral->GetMaxValue(); - for (G4int i = 0; i < NumPhotons; i++) { + for (G4int i = 0; i < Num; i++) { // Determine photon momentum @@ -281,7 +350,8 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) aParticleChange.AddSecondary(aSecondaryTrack); - } + } + } if (verboseLevel>0) { G4cout << "\n Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = " @@ -297,7 +367,7 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) void G4Scintillation::BuildThePhysicsTable() { - if (thePhysicsTable) return; + if (theFastIntegralTable && theSlowIntegralTable) return; const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); @@ -305,7 +375,8 @@ void G4Scintillation::BuildThePhysicsTable() // create new physics table - thePhysicsTable = new G4PhysicsTable(numOfMaterials); + if(!theFastIntegralTable)theFastIntegralTable = new G4PhysicsTable(numOfMaterials); + if(!theSlowIntegralTable)theSlowIntegralTable = new G4PhysicsTable(numOfMaterials); // loop for materials @@ -313,10 +384,11 @@ void G4Scintillation::BuildThePhysicsTable() { G4PhysicsOrderedFreeVector* aPhysicsOrderedFreeVector = new G4PhysicsOrderedFreeVector(); + G4PhysicsOrderedFreeVector* bPhysicsOrderedFreeVector = + new G4PhysicsOrderedFreeVector(); - // Retrieve vector of scintillation wavelength intensity - // for the material from the material's optical - // properties table + // Retrieve vector of scintillation wavelength intensity for + // the material from the material's optical properties table. G4Material* aMaterial = (*theMaterialTable)[i]; @@ -325,18 +397,18 @@ void G4Scintillation::BuildThePhysicsTable() if (aMaterialPropertiesTable) { - G4MaterialPropertyVector* theScintillationLightVector = - aMaterialPropertiesTable->GetProperty("SCINTILLATION"); + G4MaterialPropertyVector* theFastLightVector = + aMaterialPropertiesTable->GetProperty("FASTCOMPONENT"); - if (theScintillationLightVector) { + if (theFastLightVector) { // Retrieve the first intensity point in vector // of (photon momentum, intensity) pairs - theScintillationLightVector->ResetIterator(); - ++(*theScintillationLightVector); // advance to 1st entry + theFastLightVector->ResetIterator(); + ++(*theFastLightVector); // advance to 1st entry - G4double currentIN = theScintillationLightVector-> + G4double currentIN = theFastLightVector-> GetProperty(); if (currentIN >= 0.0) { @@ -344,7 +416,7 @@ void G4Scintillation::BuildThePhysicsTable() // Create first (photon momentum, Scintillation // Integral pair - G4double currentPM = theScintillationLightVector-> + G4double currentPM = theFastLightVector-> GetPhotonMomentum(); G4double currentCII = 0.0; @@ -361,12 +433,12 @@ void G4Scintillation::BuildThePhysicsTable() // loop over all (photon momentum, intensity) // pairs stored for this material - while(++(*theScintillationLightVector)) + while(++(*theFastLightVector)) { - currentPM = theScintillationLightVector-> + currentPM = theFastLightVector-> GetPhotonMomentum(); - currentIN=theScintillationLightVector-> + currentIN=theFastLightVector-> GetProperty(); currentCII = 0.5 * (prevIN + currentIN); @@ -384,14 +456,74 @@ void G4Scintillation::BuildThePhysicsTable() } } + + G4MaterialPropertyVector* theSlowLightVector = + aMaterialPropertiesTable->GetProperty("SLOWCOMPONENT"); + + if (theSlowLightVector) { + + // Retrieve the first intensity point in vector + // of (photon momentum, intensity) pairs + + theSlowLightVector->ResetIterator(); + ++(*theSlowLightVector); // advance to 1st entry + + G4double currentIN = theSlowLightVector-> + GetProperty(); + + if (currentIN >= 0.0) { + + // Create first (photon momentum, Scintillation + // Integral pair + + G4double currentPM = theSlowLightVector-> + GetPhotonMomentum(); + + G4double currentCII = 0.0; + + bPhysicsOrderedFreeVector-> + InsertValues(currentPM , currentCII); + + // Set previous values to current ones prior to loop + + G4double prevPM = currentPM; + G4double prevCII = currentCII; + G4double prevIN = currentIN; + + // loop over all (photon momentum, intensity) + // pairs stored for this material + + while(++(*theSlowLightVector)) + { + currentPM = theSlowLightVector-> + GetPhotonMomentum(); + + currentIN=theSlowLightVector-> + GetProperty(); + + currentCII = 0.5 * (prevIN + currentIN); + + currentCII = prevCII + + (currentPM - prevPM) * currentCII; + + bPhysicsOrderedFreeVector-> + InsertValues(currentPM, currentCII); + + prevPM = currentPM; + prevCII = currentCII; + prevIN = currentIN; + } + + } + } } - // The scintillation integral for a given material - // will be inserted in thePhysicsTable - // according to the position of the material in - // the material table. + // The scintillation integral(s) for a given material + // will be inserted in the table(s) according to the + // position of the material in the material table. - thePhysicsTable->insertAt(i,aPhysicsOrderedFreeVector); + theFastIntegralTable->insertAt(i,aPhysicsOrderedFreeVector); + theSlowIntegralTable->insertAt(i,bPhysicsOrderedFreeVector); } } @@ -404,7 +536,7 @@ G4double G4Scintillation::GetMeanFreePath(const G4Track& aTrack, G4double , G4ForceCondition* condition) { - *condition = Forced; + *condition = StronglyForced; return DBL_MAX; @@ -417,7 +549,7 @@ G4double G4Scintillation::GetMeanFreePath(const G4Track& aTrack, G4double G4Scintillation::GetMeanLifeTime(const G4Track& aTrack, G4ForceCondition* condition) { - *condition = Forced; + *condition = StronglyForced; return DBL_MAX; diff --git a/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc b/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc index 4b27c87b6b..90c2b120b1 100644 --- a/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc +++ b/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc @@ -22,7 +22,7 @@ // // // $Id: G4TransitionRadiation.cc,v 1.3 2001/07/11 10:03:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4TransitionRadiation class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc index 9984f5d69e..c093aa5cee 100644 --- a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc +++ b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXTRenergyLoss.cc,v 1.5 2002/03/28 07:58:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Timer.hh" diff --git a/source/processes/hadronic/GNUmakefile b/source/processes/hadronic/GNUmakefile index 45d108aa61..4b03c700da 100644 --- a/source/processes/hadronic/GNUmakefile +++ b/source/processes/hadronic/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.9 2002/06/13 18:01:48 jwellisc Exp $ +# $Id: GNUmakefile,v 1.12 2002/12/13 12:57:24 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic processes library. G.Folger 10-Dec-97. # ---------------------------------------------------------------- @@ -18,10 +18,11 @@ SUBDIRS += models/radiative_decay SUBDIRS += models/generator/de_excitation SUBDIRS += models/generator/diffractive_string SUBDIRS += models/generator/high_energy -SUBDIRS += models/generator/kinetic_model +SUBDIRS += models/generator/kinetic_model SUBDIRS += models/generator/management SUBDIRS += models/generator/pre_equilibrium SUBDIRS += models/generator/quark_gluon_string +SUBDIRS += models/generator/scattering SUBDIRS += models/generator/string_common SUBDIRS += models/generator/string_fragmentation SUBDIRS += models/generator/util @@ -30,20 +31,36 @@ SUBDIRS += models/chiral_inv_phase_space/interface SUBDIRS += models/coherent_elastic SUBDIRS += models/cascade/evaporation SUBDIRS += models/cascade/utils +SUBDIRS += models/cascade/cascade SUBDIRS += models/leading_particle -SUBLIBS = G4hadronic_mgt G4hadronic_util G4hadronic_proc -SUBLIBS += G4hadronic_xsect G4hadronic_stop -SUBLIBS += G4hadronic_neu G4hadronic_iso G4hadronic_HE G4hadronic_LE -SUBLIBS += G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen G4hadronic_kinetic -SUBLIBS += G4hadronic_man_gen G4hadronic_preequ G4hadronic_radioactivedecay -SUBLIBS += G4hadronic_qgstring G4hadronic_string_common -SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen +SUBLIBS = G4hadronic_mgt +SUBLIBS += G4hadronic_util +SUBLIBS += G4hadronic_proc +SUBLIBS += G4hadronic_xsect +SUBLIBS += G4hadronic_stop +SUBLIBS += G4hadronic_neu +SUBLIBS += G4hadronic_iso +SUBLIBS += G4hadronic_HE +SUBLIBS += G4hadronic_LE +SUBLIBS += G4hadronic_deex +SUBLIBS += G4hadronic_diffstring +SUBLIBS += G4hadronic_HE_gen +SUBLIBS += G4hadronic_kinetic +SUBLIBS += G4hadronic_man_gen +SUBLIBS += G4hadronic_preequ +SUBLIBS += G4hadronic_radioactivedecay +SUBLIBS += G4hadronic_qgstring +SUBLIBS += G4hadronic_scattering +SUBLIBS += G4hadronic_string_common +SUBLIBS += G4hadronic_stringfrag +SUBLIBS += G4hadronic_util_gen SUBLIBS += G4hadronic_body_ci SUBLIBS += G4hadronic_interface_ci SUBLIBS += G4hadronic_coherent_elastic SUBLIBS += G4hadronic_hetcpp_evaporation SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_bert_cascade SUBLIBS += G4hadronic_leading_particle ifndef G4INSTALL diff --git a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh index 32a4242b78..1ed675f1fd 100644 --- a/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh +++ b/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh index 5329fa0291..6cee8ea1bc 100644 --- a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ElectroNuclearCrossSection.hh,v 1.7 2002/05/22 11:48:44 mkossov Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ElectroNuclearCrossSection.hh,v 1.8 2002/12/12 19:16:49 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 physics class: G4ElectroNuclearCrossSection -- header file diff --git a/source/processes/hadronic/cross_sections/include/G4HadronCaptureDataSet.hh b/source/processes/hadronic/cross_sections/include/G4HadronCaptureDataSet.hh index ba1dbc5371..efebd1360f 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronCaptureDataSet.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronCaptureDataSet.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh index 3b8ba5460c..e19b6e7df6 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HadronCrossSections.hh,v 1.7 2001/10/04 20:00:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HadronCrossSections.hh,v 1.8 2002/12/12 19:16:49 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 Hadron physics class -- header file diff --git a/source/processes/hadronic/cross_sections/include/G4HadronElasticDataSet.hh b/source/processes/hadronic/cross_sections/include/G4HadronElasticDataSet.hh index c53a57c174..fe50e01873 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronElasticDataSet.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronElasticDataSet.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4HadronFissionDataSet.hh b/source/processes/hadronic/cross_sections/include/G4HadronFissionDataSet.hh index 97dc4a658f..60330da4d4 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronFissionDataSet.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronFissionDataSet.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4HadronInelasticDataSet.hh b/source/processes/hadronic/cross_sections/include/G4HadronInelasticDataSet.hh index 083d072c8c..d4acb3fc54 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronInelasticDataSet.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronInelasticDataSet.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4IonProtonCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4IonProtonCrossSection.hh index 70f68bda46..ef4173956e 100644 --- a/source/processes/hadronic/cross_sections/include/G4IonProtonCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4IonProtonCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4NeutronInelasticCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4NeutronInelasticCrossSection.hh index 53c2e17fe8..0288395bad 100644 --- a/source/processes/hadronic/cross_sections/include/G4NeutronInelasticCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4NeutronInelasticCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -41,12 +41,13 @@ class G4NeutronInelasticCrossSection : public G4VCrossSectionDataSet public: virtual - G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element*) + G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element* aEle) { G4bool result = false; if(( aPart->GetDefinition()==G4Neutron::Neutron()) && ( aPart->GetKineticEnergy()<20*GeV) && aPart->GetKineticEnergy()>19.9*MeV) result = true; + if(aEle->GetZ()<2) result = false; return result; } diff --git a/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh index 1bb3210da2..1fdb8e1e03 100644 --- a/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PhotoNuclearCrossSection.hh,v 1.6 2002/05/22 11:48:45 mkossov Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PhotoNuclearCrossSection.hh,v 1.7 2002/12/12 19:16:49 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 physics class: G4PhotoNuclearCrossSection -- header file diff --git a/source/processes/hadronic/cross_sections/include/G4PiData.hh b/source/processes/hadronic/cross_sections/include/G4PiData.hh new file mode 100644 index 0000000000..375fae4138 --- /dev/null +++ b/source/processes/hadronic/cross_sections/include/G4PiData.hh @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// by J.P Wellisch, Sun Sep 15 2002. + +#ifndef G4PiData_h +#define G4PiData_h + +#include "g4std/vector" +#include "g4std/algorithm" +#include "globals.hh" + +class G4PiData : public G4std::vector > > +{ + public: + G4PiData(const G4double * aTotal, const G4double * aInelastic, const G4double * anEnergy, G4int nPoints); + struct Delete{void operator()(G4PiData * aP){delete aP;} }; + G4bool AppliesTo(G4double kineticEnergy); + G4double ReactionXSection(G4double kineticEnergy); + G4double ElasticXSection(G4double kineticEnergy); + + private: + +}; + +#endif diff --git a/source/processes/hadronic/cross_sections/include/G4PiNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4PiNuclearCrossSection.hh new file mode 100644 index 0000000000..e9df4ea576 --- /dev/null +++ b/source/processes/hadronic/cross_sections/include/G4PiNuclearCrossSection.hh @@ -0,0 +1,135 @@ +// +// ******************************************************************** +// * 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 G4PiNuclearCrossSection_h +#define G4PiNuclearCrossSection_h + +#include "G4VCrossSectionDataSet.hh" + +#include "globals.hh" +#include "G4PionMinus.hh" +#include "G4PionPlus.hh" +#include "G4PiData.hh" + +class G4PiNuclearCrossSection : public G4VCrossSectionDataSet +{ + public: + + G4PiNuclearCrossSection(); + virtual ~G4PiNuclearCrossSection(); + G4bool IsApplicable(const G4DynamicParticle* aParticle, const G4Element* anElement) + { + G4bool result = false; + if(aParticle->GetDefinition() == G4PionMinus::PionMinus()) result=true; + if(aParticle->GetDefinition() == G4PionPlus::PionPlus()) result=true; + if(anElement->GetZ() == 1) result = false; + return result; + } + G4double GetCrossSection(const G4DynamicParticle* aParticle, + const G4Element* anElement, + G4double T=0.); + void BuildPhysicsTable(const G4ParticleDefinition&) {} + void DumpPhysicsTable(const G4ParticleDefinition&) {} + + private: + G4double Interpolate(G4int Z1, G4int Z2, G4int Z, G4double x1, G4double x2); + +// add Hydrogen from PDG group. + +static const G4double e1[38]; +static const G4double he_t[38]; +static const G4double he_in[38]; +static const G4double be_m_t[38]; +static const G4double be_m_in[38]; +static const G4double be_p_t[24]; +static const G4double be_p_in[24]; +static const G4double e2[39]; +static const G4double c_m_t[39]; +static const G4double c_m_in[39]; +static const G4double c_p_t[24]; +static const G4double c_p_in[24]; +static const G4double n_m_t[39]; +static const G4double n_m_in[39]; +static const G4double n_p_t[27]; +static const G4double n_p_in[27]; +static const G4double e3[31]; +static const G4double o_m_t[31]; +static const G4double o_m_in[31]; +static const G4double o_p_t[20]; +static const G4double o_p_in[20]; +static const G4double na_m_t[31]; +static const G4double na_m_in[31]; +static const G4double na_p_t[22]; +static const G4double na_p_in[22]; +static const G4double e3_1[31]; +static const G4double al_m_t[31]; +static const G4double al_m_in[31]; +static const G4double al_p_t[21]; +static const G4double al_p_in[21]; +static const G4double ca_m_t[31]; +static const G4double ca_m_in[31]; +static const G4double ca_p_t[23]; +static const G4double ca_p_in[23]; + +static const G4double e4[32]; +static const G4double fe_m_t[32]; +static const G4double fe_m_in[32]; +static const G4double fe_p_t[25]; +static const G4double fe_p_in[25]; +static const G4double cu_m_t[32]; +static const G4double cu_m_in[32]; +static const G4double cu_p_t[25]; +static const G4double cu_p_in[25]; +static const G4double e5[34]; +static const G4double mo_m_t[34]; +static const G4double mo_m_in[34]; +static const G4double mo_p_t[27]; +static const G4double mo_p_in[27]; +static const G4double cd_m_t[34]; +static const G4double cd_m_in[34]; +static const G4double cd_p_t[28]; +static const G4double cd_p_in[28]; +static const G4double e6[35]; +static const G4double sn_m_t[35]; +static const G4double sn_m_in[35]; +static const G4double sn_p_t[29]; +static const G4double sn_p_in[29]; +static const G4double w_m_t[35]; +static const G4double w_m_in[35]; +static const G4double w_p_t[30]; +static const G4double w_p_in[30]; +static const G4double e7[35]; +static const G4double pb_m_t[35]; +static const G4double pb_m_in[35]; +static const G4double pb_p_t[30]; +static const G4double pb_p_in[30]; +static const G4double u_m_t[35]; +static const G4double u_m_in[35]; +static const G4double u_p_t[30]; +static const G4double u_p_in[30]; + +G4std::vector theZ; +G4std::vector thePipData; +G4std::vector thePimData; + +}; + +#endif diff --git a/source/processes/hadronic/cross_sections/include/G4ProtonInelasticCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4ProtonInelasticCrossSection.hh index bf112efae2..4044ad46a8 100644 --- a/source/processes/hadronic/cross_sections/include/G4ProtonInelasticCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4ProtonInelasticCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -41,11 +41,12 @@ class G4ProtonInelasticCrossSection : public G4VCrossSectionDataSet public: virtual - G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element*) + G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element* aEle) { G4bool result = false; if(( aPart->GetDefinition()==G4Proton::Proton()) && ( aPart->GetKineticEnergy()<20*GeV) ) result = true; + if(aEle->GetZ()<3) result = false; return result; } diff --git a/source/processes/hadronic/cross_sections/include/G4TripathiCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4TripathiCrossSection.hh index 352d40162b..cb8975eb90 100644 --- a/source/processes/hadronic/cross_sections/include/G4TripathiCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4TripathiCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh b/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh index 4ea223aea5..e40cf0c550 100644 --- a/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh +++ b/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc index 87ccb13649..6493b5c1ac 100644 --- a/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc +++ b/source/processes/hadronic/cross_sections/src/G4CrossSectionDataStore.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc index 006eeefc75..74567583f9 100644 --- a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ElectroNuclearCrossSection.cc,v 1.9 2002/05/28 13:37:03 mkossov Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ElectroNuclearCrossSection.cc,v 1.15 2002/12/12 19:16:50 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Physics class: G4ElectroNuclearCrossSection for gamma+A cross sections @@ -41,9 +41,9 @@ #include "G4ElectroNuclearCrossSection.hh" // Initialization of the -G4double G4ElectroNuclearCrossSection::lastE=0; // Last used in the cross section TheEnergy +G4double G4ElectroNuclearCrossSection::lastE=0.; // Last used in the cross section TheEnergy G4int G4ElectroNuclearCrossSection::lastF=0; // Last used in the cross section TheFirstBin -G4double G4ElectroNuclearCrossSection::lastG=0; // Last used in the cross section TheGamma +G4double G4ElectroNuclearCrossSection::lastG=0.; // Last used in the cross section TheGamma G4double G4ElectroNuclearCrossSection::lastH=0.; // Last value of the High Energy A-dependence G4double* G4ElectroNuclearCrossSection::lastJ1=0; // Pointer to the last array of the J1 function G4double* G4ElectroNuclearCrossSection::lastJ2=0; // Pointer to the last array of the J2 function @@ -118,7 +118,7 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle* #endif colN.push_back(targN); colZ.push_back(targZ); - colF.push_back(targN); + colF.push_back(lastF); J1.push_back(lastJ1); J2.push_back(lastJ2); J3.push_back(lastJ3); @@ -2321,8 +2321,12 @@ G4double G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy() G4double dlg1=lastG+lastG-1.; G4double lgoe=lastG/lastE; for(G4int i=lastF;i<=lastL;i++) Y[i]=dlg1*lastJ1[i]-lgoe*(lastJ2[i]+lastJ2[i]-lastJ3[i]/lastE); - if(lastSig>Y[lastL]&&lastL"<0.99*Y[lastL] && lastL"<"< Y[lastL=mL], then it is in the func. region #ifdef debug G4cout<<"G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy: "< x; + x.first=aT[i]*millibarn; + x.second=aIn[i]*millibarn; + G4std::pair > aP; + aP.first=anE[i]*GeV; + aP.second=x; + push_back(aP); + } +} + +G4bool G4PiData:: +AppliesTo(G4double kineticEnergy) +{ + G4bool result = true; + if(kineticEnergy>back().first) result = false; + return result; +} + +G4double G4PiData:: +ReactionXSection(G4double kineticEnergy) +{ + G4double result = 0; + G4PiData::iterator it=begin(); + while(it!=end()&&kineticEnergy>(*it).first) {it++;} + if(it==end()) G4Exception("G4PiData used outside validity range"); + if(it==begin()) it++; + G4double x1,x2,e1,e2; + e1=(*(it-1)).first; + x1=(*(it-1)).second.second; + e2=(*(it)).first; + x2=(*(it)).second.second; + result = G4std::max(0., x1 + (kineticEnergy-e1)*(x2-x1)/(e2-e1)); + return result; +} + +G4double G4PiData:: +ElasticXSection(G4double kineticEnergy) +{ + G4double result = 0; + G4PiData::iterator it=begin(); + while(it!=end()&&kineticEnergy>(*it).first) {it++;} + if(it==end()) G4Exception("G4PiData used outside validity range"); + if(it==begin()) it++; + G4double x1,x2,e1,e2; + e1=(*(it-1)).first; + x1=(*(it-1)).second.first - (*(it-1)).second.second; + e2=(*(it)).first; + x2=(*(it)).second.first - (*(it)).second.second; + result = G4std::max(0., x1 + (kineticEnergy-e1)*(x2-x1)/(e2-e1)); + return result; +} diff --git a/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc new file mode 100644 index 0000000000..5b5b6507ce --- /dev/null +++ b/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc @@ -0,0 +1,244 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include "G4PiNuclearCrossSection.hh" + +// by J.P Wellisch, Sun Sep 15 2002. +// Implements P2-90-158; + + const G4double G4PiNuclearCrossSection::e1[38] = {0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::he_t[38] = {40, 70, 108, 152, 208, 276, 300, 320, 329, 333, 332, 328, 322, 310, 288, 260, 240, 216, 196, 144, 125, 112, 108.5, 109, 110.5, 117, 123, 128.5, 135, 110, 96, 87, 85, 83.5, 83.5, 83.5, 83.5, 83.5}; + const G4double G4PiNuclearCrossSection::he_in[38] = {18, 38, 62, 98, 136, 176, 190, 200, 209, 212, 212, 208, 204, 196, 176, 164, 150, 134, 124, 97.5, 90, 85, 82.5, 83.5, 86.5, 93, 97.5, 100, 102, 83, 77, 75, 74, 72.5, 72.5, 72.5, 72.5, 72.5}; + const G4double G4PiNuclearCrossSection::be_m_t[38] = {150, 210, 294, 396, 520, 600, 623, 635, 642, 640, 630, 615, 600, 576, 540, 504, 470, 435, 400, 340, 294, 258, 236, 230, 233, 244, 257, 270, 276, 250, 230, 215, 205, 194, 188, 186, 186, 186}; + const G4double G4PiNuclearCrossSection::be_m_in[38] = {90, 126, 177, 240, 320, 380, 400, 410, 414, 410, 400, 387, 371, 360, 333, 312, 285, 260, 237, 216, 198, 187, 182, 180, 182, 187, 193, 203, 207, 179, 172, 165, 159, 155, 144, 144, 144, 144}; + const G4double G4PiNuclearCrossSection::be_p_t[24] = {96, 150, 222, 320, 430, 514, 545, 565, 574, 574, 564, 552, 535, 522, 490, 462, 432, 398, 367, 314, 276, 248, 232, 230}; + const G4double G4PiNuclearCrossSection::be_p_in[24] = {60, 95, 142, 194, 262, 319, 345, 361, 364, 364, 354, 350, 330, 319, 298, 280, 258, 237, 216, 200, 189, 183, 182, 180}; + const G4double G4PiNuclearCrossSection::e2[39] = {0.02, 0.04, 0.06, 0.08, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.22, 0.24, 0.26, 0.28, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.575, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::c_m_t[39] = {204, 260, 366, 517, 630, 673, 694, 704, 710, 711, 706, 694, 676, 648, 616, 584, 548, 518, 489, 426, 376, 342, 323, 310, 312, 313, 319, 333, 342, 348, 310, 290, 268, 250, 245, 237, 234, 234, 234}; + const G4double G4PiNuclearCrossSection::c_m_in[39] = {128, 160, 224, 315, 388, 416, 430, 438, 444, 445, 440, 432, 416, 400, 380, 354, 320, 304, 288, 264, 246, 240, 233, 232, 233, 234, 238, 246, 252, 256, 220, 210, 198, 187, 183, 176, 174, 174, 174}; + const G4double G4PiNuclearCrossSection::c_p_t[24] = {140, 192, 294, 428, 594, 642, 662, 687, 685, 688, 684, 672, 656, 630, 598, 567, 533, 504, 474, 416, 369, 336, 319, 310}; + const G4double G4PiNuclearCrossSection::c_p_in[24] = {94, 132, 184, 260, 370, 398, 408, 420, 426, 428, 424, 416, 400, 386, 366, 340, 308, 294, 280, 257, 241, 236, 231, 232}; + const G4double G4PiNuclearCrossSection::n_m_t[39] = {246, 308, 424, 590, 729, 776, 800, 821, 822, 817, 800, 778, 768, 728, 690, 654, 615, 584, 556, 480, 430, 393, 373, 367, 368, 370, 375, 388, 390, 397, 364, 337, 310, 291, 275, 268, 268, 268, 268}; + const G4double G4PiNuclearCrossSection::n_m_in[39] = {155, 188, 256, 360, 456, 492, 512, 526, 526, 520, 504, 491, 475, 450, 425, 396, 376, 360, 340, 300, 282, 270, 265, 265, 266, 268, 273, 280, 288, 288, 256, 237, 226, 218, 208, 202, 202, 202, 202}; + const G4double G4PiNuclearCrossSection::n_p_t[27] = {150, 212, 328, 500, 680, 735, 762, 781, 782, 779, 770, 748, 740, 706, 672, 633, 600, 569, 541, 467, 419, 385, 368, 364, 366, 368, 375}; + const G4double G4PiNuclearCrossSection::n_p_in[27] = {90, 140, 208, 300, 426, 467, 490, 504, 504, 500, 484, 474, 460, 437, 413, 381, 365, 350, 330, 292, 276, 267, 263, 264, 265, 267, 273}; + const G4double G4PiNuclearCrossSection::e3[31] = {0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::o_m_t[31] = {280, 360, 500, 685, 812, 861, 870, 865, 835, 800, 755, 700, 600, 537, 493, 468, 441, 436, 443, 449, 460, 463, 432, 385, 350, 325, 312, 307, 303, 303, 303}; + const G4double G4PiNuclearCrossSection::o_m_in[31] = {190, 207, 300, 420, 500, 540, 550, 542, 520, 490, 460, 423, 360, 339, 321, 314, 312, 314, 319, 324, 328, 330, 300, 275, 250, 240, 229, 225, 222, 222, 222}; + const G4double G4PiNuclearCrossSection::o_p_t[20] = {170, 240, 390, 570, 740, 818, 830, 822, 800, 765, 725, 675, 585, 525, 483, 458, 444, 447, 453, 449}; + const G4double G4PiNuclearCrossSection::o_p_in[20] = {100, 145, 240, 340, 470, 518, 530, 522, 505, 477, 448, 412, 350, 330, 316, 310, 308, 311, 317, 324}; + const G4double G4PiNuclearCrossSection::na_m_t[31] = {450, 545, 705, 910, 1020, 1075, 1087, 1080, 1042, 987, 943, 885, 790, 700, 650, 610, 585, 575, 585, 595, 600, 610, 556, 524, 494, 458, 445, 429, 427, 427, 427}; + const G4double G4PiNuclearCrossSection::na_m_in[31] = {275, 315, 413, 545, 620, 660, 670, 662, 630, 593, 570, 520, 465, 420, 410, 395, 390, 400, 410, 418, 420, 422, 372, 348, 330, 320, 310, 294, 292, 292, 292}; + const G4double G4PiNuclearCrossSection::na_p_t[22] = {210, 320, 530, 795, 960, 1035, 1050, 1040, 1007, 957, 918, 865, 773, 685, 636, 598, 575, 565, 578, 590, 598, 610}; + const G4double G4PiNuclearCrossSection::na_p_in[22] = {115, 210, 340, 495, 585, 630, 645, 637, 605, 572, 550, 505, 455, 410, 401, 388, 383, 393, 405, 414, 418, 422}; + + const G4double G4PiNuclearCrossSection::e3_1[31] = {.02, .04, .06, .08, .1, .12, .14, .16, .18, .2, .22, .25, .3, .35, .4, .45, .5, .6, .7, .8, .9, 1., 2., 3., 5., 10., 20., 50., 100., 500., 1000.}; + const G4double G4PiNuclearCrossSection::al_m_t[31] = {532, 637, 832, 1057, 1207, 1230, 1210, 1174, 1133, 1095, 1038, 970, 890, 807, 750, 710, 675, 665, 670, 673, 678, 682, 618, 574, 546, 520, 507, 495, 488, 488, 488}; + const G4double G4PiNuclearCrossSection::al_m_in[31] = {300, 360, 495, 665, 750, 765, 750, 730, 700, 660, 615, 570, 520, 490, 470, 450, 448, 450, 450, 452, 456, 460, 408, 392, 376, 356, 347, 338, 332, 332, 332}; + const G4double G4PiNuclearCrossSection::al_p_t[21] = {225, 350, 616, 945, 1122, 1175, 1157, 1128, 1088, 1045, 988, 935, 870, 787, 730, 690, 660, 652, 660, 668, 678}; + const G4double G4PiNuclearCrossSection::al_p_in[21] = {120, 238, 390, 610, 712, 735, 720, 703, 655, 635, 590, 550, 505, 475, 455, 438, 440, 445, 445, 450, 456}; + const G4double G4PiNuclearCrossSection::ca_m_t[31] = {800, 980, 1240, 1460, 1570, 1600, 1580, 1535, 1475, 1425, 1375, 1295, 1200, 1083, 1000, 948, 915, 895, 900, 908, 915, 922, 856, 795, 740, 705, 682, 660, 660, 660, 660}; + const G4double G4PiNuclearCrossSection::ca_m_in[31] = {470, 550, 620, 860, 955, 960, 920, 860, 820, 780, 740, 665, 637, 615, 600, 590, 600, 608, 610, 615, 550, 525, 510, 488, 470, 450, 450, 450, 450}; + const G4double G4PiNuclearCrossSection::ca_p_t[23] = {275, 445, 790, 1195, 1440, 1485, 1475, 1435, 1385, 1335, 1295, 1245, 1160, 1050, 970, 923, 895, 877, 887, 897, 904, 913, 855}; + const G4double G4PiNuclearCrossSection::ca_p_in[23] = {160, 315, 500, 745, 870, 905, 900, 860, 810, 770, 740, 710, 640, 617, 595, 585, 575, 575, 590, 600, 602, 608, 550}; + + const G4double G4PiNuclearCrossSection::e4[32] = {0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::fe_m_t[32] = {1175, 1363, 1670, 1950, 2050, 2040, 1975, 1886, 1834, 1773, 1720, 1635, 1474, 1380, 1269, 1225, 1182, 1162, 1159, 1162, 1178, 1190, 1197, 1102, 1035, 975, 945, 925, 905, 905, 905, 905}; + const G4double G4PiNuclearCrossSection::fe_m_in[32] = {625, 725, 910, 1180, 1275, 1250, 1200, 1150, 1100, 1040, 995, 925, 825, 810, 780, 760, 745, 740, 740, 740, 750, 760, 765, 690, 660, 635, 615, 600, 585, 585, 585, 585}; + const G4double G4PiNuclearCrossSection::fe_p_t[25] = {330, 575, 1010, 1500, 1837, 1875, 1820, 1751, 1691, 1636, 1690, 1450, 1396, 1305, 1219, 1190, 1148, 1138, 1134, 1144, 1163, 1175, 1183, 1198, 1135}; + const G4double G4PiNuclearCrossSection::fe_p_in[25] = {210, 410, 707, 1010, 1125, 1150, 1100, 1070, 1010, 960, 920, 776, 780, 760, 750, 740, 720, 725, 725, 730, 740, 750, 755, 690, 660}; + const G4double G4PiNuclearCrossSection::cu_m_t[32] = {1400, 1600, 1875, 2088, 2200, 2220, 2175, 2125, 2075, 2012, 1950, 1855, 1670, 1530, 1430, 1370, 1315, 1315, 1315, 1330, 1345, 1360, 1365, 1250, 1185, 1128, 1070, 1035, 1010, 1010, 1010, 1010}; + const G4double G4PiNuclearCrossSection::cu_m_in[32] = {725, 840, 1020, 1200, 1295, 1300, 1267, 1240, 1213, 1175, 1125, 1042, 950, 900, 860, 840, 830, 832, 835, 840, 850, 860, 865, 785, 735, 705, 680, 650, 630, 630, 630, 630}; + const G4double G4PiNuclearCrossSection::cu_p_t[25] = {355, 605, 1120, 1630, 1940, 2010, 2010, 1980, 1925, 1895, 1830, 1730, 1585, 1490, 1400, 1340, 1290, 1290, 1290, 1310, 1330, 1345, 1350, 1240, 1185}; + const G4double G4PiNuclearCrossSection::cu_p_in[25] = {230, 425, 780, 1025, 1155, 1190, 1190, 1180, 1125, 1100, 1050, 1000, 900, 870, 835, 815, 810, 812, 815, 825, 840, 850, 855, 780, 735}; + const G4double G4PiNuclearCrossSection::e5[34] = {0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::mo_m_t[34] = {2430, 2610, 2710, 2790, 2880, 2940, 2965, 2970, 2970, 2920, 2840, 2720, 2570, 2500, 2365, 2200, 2050, 1926, 1825, 1768, 1749, 1750, 1778, 1789, 1808, 1690, 1645, 1530, 1492, 1450, 1425, 1425, 1425, 1425}; + const G4double G4PiNuclearCrossSection::mo_m_in[34] = {925, 1125, 1250, 1375, 1500, 1600, 1680, 1750, 1770, 1730, 1660, 1580, 1500, 1450, 1330, 1250, 1190, 1140, 1100, 1075, 1075, 1070, 1088, 1095, 1110, 1035, 1005, 940, 917, 880, 860, 860, 860, 860}; + const G4double G4PiNuclearCrossSection::mo_p_t[27] = {410, 730, 1110, 1530, 1920, 2200, 2385, 2520, 2600, 2630, 2575, 2470, 2320, 2285, 2185, 2053, 1945, 1852, 1776, 1719, 1710, 1716, 1746, 1759, 1778, 1675, 1645}; + const G4double G4PiNuclearCrossSection::mo_p_in[27] = {270, 540, 825, 975, 1140, 1285, 1400, 1480, 1555, 1580, 1525, 1470, 1360, 1340, 1255, 1160, 1120, 1085, 1060, 1045, 1045, 1045, 1065, 1075, 1090, 1025, 1005}; + const G4double G4PiNuclearCrossSection::cd_m_t[34] = {3060, 3125, 3170, 3220, 3255, 3280, 3290, 3260, 3270, 3200, 3120, 3080, 3090, 2920, 2810, 2640, 2362, 2230, 2115, 2050, 2020, 2025, 2040, 2070, 2100, 1900, 1795, 1740, 1675, 1645, 1625, 1620, 1620, 1620}; + const G4double G4PiNuclearCrossSection::cd_m_in[34] = {1025, 1275, 1440, 1625, 1740, 1800, 1880, 1920, 1980, 1920, 1850, 1810, 1720, 1650, 1560, 1450, 1330, 1290, 1245, 1210, 1200, 1200, 1205, 1205, 1230, 1130, 1085, 1060, 1000, 985, 975, 970, 970, 970}; + const G4double G4PiNuclearCrossSection::cd_p_t[28] = {455, 780, 1170, 1700, 2120, 2400, 2600, 2720, 2820, 2840, 2800, 2760, 2720, 2640, 2560, 2450, 2252, 2130, 2035, 1985, 1970, 1975, 2005, 2035, 2070, 1880, 1785, 1740}; + const G4double G4PiNuclearCrossSection::cd_p_in[28] = {310, 580, 880, 1060, 1270, 1400, 1530, 1610, 1660, 1680, 1640, 1600, 1560, 1500, 1430, 1330, 1280, 1230, 1200, 1180, 1170, 1175, 1180, 1180, 1210, 1120, 1080, 1060}; + const G4double G4PiNuclearCrossSection::e6[35] = {0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.12, 0.14, 0.16, 0.8, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::sn_m_t[35] = {3000, 3180, 3250, 3300, 3300, 3410, 3470, 3450, 3410, 3350, 3280, 3200, 3120, 3050, 2900, 2630, 2500, 2325, 2190, 2100, 2060, 2055, 2055, 2055, 2067, 2085, 2000, 1900, 1835, 1770, 1720, 1700, 1695, 1695, 1695}; + const G4double G4PiNuclearCrossSection::sn_m_in[35] = {1050, 1350, 1520, 1650, 1800, 1980, 2070, 2120, 2090, 2050, 1980, 1920, 1830, 1770, 1670, 1500, 1435, 1350, 1300, 1230, 1220, 1235, 1235, 1235, 1237, 1240, 1160, 1120, 1090, 1065, 1040, 1020, 1015, 1015, 1015}; + const G4double G4PiNuclearCrossSection::sn_p_t[29] = {465, 800, 1200, 1760, 2170, 2480, 2730, 2885, 2970, 2980, 2970, 2890, 2840, 2790, 2620, 2450, 2335, 2205, 2080, 2020, 2010, 1990, 1990, 2015, 2030, 2045, 1980, 1890, 1835}; + const G4double G4PiNuclearCrossSection::sn_p_in[29] = {315, 590, 880, 1220, 1460, 1580, 1700, 1770, 1810, 1810, 1800, 1730, 1680, 1630, 1530, 1400, 1335, 1270, 1210, 1180, 1190, 1190, 1190, 1205, 1210, 1210, 1150, 1115, 1090}; + const G4double G4PiNuclearCrossSection::w_m_t[35] = {5200, 5115, 5025, 4975, 4900, 4850, 4780, 4725, 4600, 4490, 4355, 4255, 4125, 4040, 3830, 3580, 3330, 3110, 2955, 2860, 2852, 2845, 2885, 2900, 2915, 2940, 2800, 2660, 2580, 2490, 2460, 2425, 2420, 2420, 2420}; + const G4double G4PiNuclearCrossSection::w_m_in[35] = {1450, 1850, 2100, 2350, 2550, 2700, 2825, 2900, 2850, 2750, 2630, 2525, 2400, 2300, 2200, 2070, 1880, 1770, 1715, 1680, 1680, 1680, 1685, 1690, 1700, 1720, 1635, 1560, 1530, 1460, 1440, 1410, 1410, 1410, 1410}; + const G4double G4PiNuclearCrossSection::w_p_t[30] = {480, 900, 1500, 2350, 3020, 3420, 3650, 3775, 3875, 3830, 3750, 3700, 3630, 3550, 3550, 3290, 3070, 2890, 2840, 2730, 2725, 2720, 2770, 2805, 2828, 2865, 2770, 2640, 2570, 2490}; + const G4double G4PiNuclearCrossSection::w_p_in[30] = {325, 680, 990, 1500, 1850, 2150, 2250, 2300, 2350, 233, 2280, 2230, 2200, 2120, 2130, 900, 1780, 1670, 1635, 1600, 1602, 1605, 1610, 1615, 1630, 1660, 1620, 1550, 1525, 1460}; + const G4double G4PiNuclearCrossSection::e7[35] = {0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2, 0.22, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 5, 10, 20, 50, 100, 500, 1000}; + const G4double G4PiNuclearCrossSection::pb_m_t[35] = {5890, 5700, 5610, 5580, 5550, 5480, 5400, 5300, 5100, 4930, 4750, 4600, 4400, 4280, 4170, 3915, 3650, 3470, 3260, 3150, 3120, 3070, 3085, 3100, 3120, 3160, 3070, 2930, 2820, 2750, 2710, 2655, 2640, 2640, 2640}; + const G4double G4PiNuclearCrossSection::pb_m_in[35] = {1575, 2025, 2300, 2575, 2850, 3000, 3115, 3180, 3080, 2940, 2800, 2670, 2550, 2450, 2370, 2220, 2110, 2000, 1920, 1880, 1850, 1800, 1805, 1810, 1820, 1840, 1800, 1720, 1640, 1620, 1570, 1530, 1530, 1530, 1530}; + const G4double G4PiNuclearCrossSection::pb_p_t[30] = {515, 940, 1500, 2400, 3270, 3750, 4050, 4140, 4260, 4200, 4080, 3990, 3990, 3810, 3730, 3520, 3370, 3186, 3110, 3010, 2990, 2985, 3005, 3020, 3040, 3080, 3020, 2905, 2790, 2790}; + const G4double G4PiNuclearCrossSection::pb_p_in[30] = {348, 707, 1040, 1650, 2100, 2400, 2580, 2640, 2650, 2520, 2410, 230, 2250, 2190, 2130, 2000, 1930, 1870, 1830, 1790, 1770, 1765, 1775, 1780, 1790, 1800, 1775, 1710, 1620, 1620}; + const G4double G4PiNuclearCrossSection::u_m_t[35] = {7080, 6830, 6650, 6530, 6400, 6280, 6100, 5840, 5660, 5520, 5330, 5160, 4990, 4810, 4630, 4323, 4130, 3870, 3700, 3550, 3490, 3465, 3467, 3475, 3495, 3515, 3440, 3360, 3150, 3040, 2985, 2955, 2940, 2940, 2940}; + const G4double G4PiNuclearCrossSection::u_m_in[35] = {1740, 2220, 2500, 2820, 3080, 3300, 3420, 3500, 3420, 3330, 3200, 3060, 2940, 2850, 2710, 2470, 2380, 2250, 2160, 2080, 2040, 2045, 2047, 2050, 2055, 2060, 2010, 1980, 1830, 1780, 1735, 1710, 1700, 1700, 1700}; + const G4double G4PiNuclearCrossSection::u_p_t[30] = {485, 960, 1580, 2700, 3550, 4050, 4320, 4420, 4620, 4660, 4580, 4470, 4350, 4295, 4187, 3938, 3755, 3573, 3450, 3342, 3310, 3295, 3310, 3330, 3375, 3405, 3350, 3338, 3135, 3040}; + const G4double G4PiNuclearCrossSection::u_p_in[30] = {334, 720, 1020, 1560, 2100, 2300, 2550, 2700, 2880, 2880, 2760, 2660, 2550, 2510, 2430, 2270, 2130, 2060, 2000, 1970, 1950, 1950, 1960, 1960, 1970, 1980, 1950, 1978, 1830, 1780}; + +G4PiNuclearCrossSection:: +G4PiNuclearCrossSection() +{ + thePimData.push_back(new G4PiData(he_t, he_in, e1, 38)); + thePipData.push_back(new G4PiData(he_t, he_in, e1, 38)); + thePimData.push_back(new G4PiData(be_m_t, be_m_in, e1, 38)); + thePipData.push_back(new G4PiData(be_p_t, be_p_in, e1, 24)); + thePimData.push_back(new G4PiData(c_m_t, c_m_in, e2, 39)); + thePipData.push_back(new G4PiData(c_p_t, c_p_in, e2, 24)); + thePimData.push_back(new G4PiData(n_m_t, n_m_in, e2, 39)); + thePipData.push_back(new G4PiData(n_p_t, n_p_in, e2, 27)); + thePimData.push_back(new G4PiData(o_m_t, o_m_in, e3, 31)); + thePipData.push_back(new G4PiData(o_p_t, o_p_in, e3, 20)); + thePimData.push_back(new G4PiData(na_m_t, na_m_in, e3, 31)); + thePipData.push_back(new G4PiData(na_p_t, na_p_in, e3, 22)); + thePimData.push_back(new G4PiData(al_m_t, al_m_in, e3_1, 31)); + thePipData.push_back(new G4PiData(al_p_t, al_p_in, e3_1, 21)); + thePimData.push_back(new G4PiData(ca_m_t, ca_m_in, e3_1, 31)); + thePipData.push_back(new G4PiData(ca_p_t, ca_p_in, e3_1, 23)); + thePimData.push_back(new G4PiData(fe_m_t, fe_m_in, e4, 32)); + thePipData.push_back(new G4PiData(fe_p_t, fe_p_in, e4, 25)); + thePimData.push_back(new G4PiData(cu_m_t, cu_m_in, e4, 32)); + thePipData.push_back(new G4PiData(cu_p_t, cu_p_in, e4, 25)); + thePimData.push_back(new G4PiData(mo_m_t, mo_m_in, e5, 34)); + thePipData.push_back(new G4PiData(mo_p_t, mo_p_in, e5, 27)); + thePimData.push_back(new G4PiData(cd_m_t, cd_m_in, e5, 34)); + thePipData.push_back(new G4PiData(cd_p_t, cd_p_in, e5, 28)); + thePimData.push_back(new G4PiData(sn_m_t, sn_m_in, e6, 35)); + thePipData.push_back(new G4PiData(sn_p_t, sn_p_in, e6, 29)); + thePimData.push_back(new G4PiData(w_m_t, w_m_in, e6, 35)); + thePipData.push_back(new G4PiData(w_p_t, w_p_in, e6, 30)); + thePimData.push_back(new G4PiData(pb_m_t, pb_m_in, e7, 35)); + thePipData.push_back(new G4PiData(pb_p_t, pb_p_in, e7, 30)); + thePimData.push_back(new G4PiData(u_m_t, u_m_in, e7, 35)); + thePipData.push_back(new G4PiData(u_p_t, u_p_in, e7, 30)); + + theZ.push_back(2); // He + theZ.push_back(4); // Be + theZ.push_back(6); // C + theZ.push_back(7); // N + theZ.push_back(8); // O + theZ.push_back(11); // Na + theZ.push_back(13); // Al + theZ.push_back(20); // Ca + theZ.push_back(26); // Fe + theZ.push_back(29); // Cu + theZ.push_back(42); // Mo + theZ.push_back(48); // Cd + theZ.push_back(50); // Sn + theZ.push_back(74); // W + theZ.push_back(82); // Pb + theZ.push_back(92); // U + +} + +G4PiNuclearCrossSection:: +~G4PiNuclearCrossSection() +{ + G4std::for_each(thePimData.begin(), thePimData.end(), G4PiData::Delete()); + G4std::for_each(thePipData.begin(), thePipData.end(), G4PiData::Delete()); +} + +G4double G4PiNuclearCrossSection:: +GetCrossSection(const G4DynamicParticle* aParticle, + const G4Element* anElement, + G4double T) +{ + // precondition + G4bool ok = false; + if(aParticle->GetDefinition() == G4PionMinus::PionMinus()) ok=true; + if(aParticle->GetDefinition() == G4PionPlus::PionPlus()) ok=true; + if(!ok) G4Exception("Call to G4PiNuclearCrossSection failed."); + G4double charge = aParticle->GetDefinition()->GetPDGCharge(); + G4double kineticEnergy = aParticle->GetKineticEnergy(); + + // body + G4double result = 0; + G4int Z=static_cast(anElement->GetZ()+.001); + size_t it=0; + while(ittheZ[it]) it++; + if(Z > theZ[it]) + { + G4Exception("Error: Calling G4PiNuclearCrossSection outside parametrization"); + } + G4int Z1, Z2; + G4double x1, x2; + if(charge<0) + { + if(theZ[it]==Z) + { + result = thePimData[it]->ReactionXSection(kineticEnergy); + } + else + { + x1 = thePimData[it-1]->ReactionXSection(kineticEnergy); + Z1 = theZ[it-1]; + x2 = thePimData[it]->ReactionXSection(kineticEnergy); + Z2 = theZ[it]; + result = Interpolate(Z1, Z2, Z, x1, x2); + } + } + else + { + if(theZ[it]==Z) + { + G4std::vector * theData = &thePimData; + if(thePipData[it]->AppliesTo(kineticEnergy)) + { + theData = &thePipData; + } + result = theData->operator[](it)->ReactionXSection(kineticEnergy); + } + else + { + G4std::vector * theLData = &thePimData; + if(thePipData[it-1]->AppliesTo(kineticEnergy)) + { + theLData = &thePipData; + } + G4std::vector * theHData = &thePimData; + if(thePipData[it]->AppliesTo(kineticEnergy)) + { + theHData = &thePipData; + } + x1 = theLData->operator[](it-1)->ReactionXSection(kineticEnergy); + Z1 = theZ[it-1]; + x2 = theHData->operator[](it)->ReactionXSection(kineticEnergy); + Z2 = theZ[it]; + result = Interpolate(Z1, Z2, Z, x1, x2); + } + } + + return result; +} + +G4double G4PiNuclearCrossSection:: +Interpolate(G4int Z1, G4int Z2, G4int Z, G4double x1, G4double x2) +{ + G4double result = 0; + G4double r1 = x1/pow(Z1, 2./3.)*pow(Z, 2./3.); + G4double r2 = x2/pow(Z2, 2./3.)*pow(Z, 2./3.); + result = (r1+r2)/2.; + return result; +} + diff --git a/source/processes/hadronic/cross_sections/src/G4ProtonInelasticCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4ProtonInelasticCrossSection.cc index 4c84ef7ca9..b1c4314ecc 100644 --- a/source/processes/hadronic/cross_sections/src/G4ProtonInelasticCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4ProtonInelasticCrossSection.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc index 714626a4d3..91f37e45eb 100644 --- a/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc b/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc index 5f1579f7c5..beea566db7 100644 --- a/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc +++ b/source/processes/hadronic/cross_sections/src/G4VCrossSectionDataSet.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VCrossSectionDataSet.cc,v 1.4 2001/08/01 17:03:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCrossSectionDataSet.cc,v 1.5 2002/12/12 19:16:52 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 physics abstract class: G4VCrossSectionDataSet diff --git a/source/processes/hadronic/management/include/G4EnergyRangeManager.hh b/source/processes/hadronic/management/include/G4EnergyRangeManager.hh index 157afbccf6..1521373b9e 100644 --- a/source/processes/hadronic/management/include/G4EnergyRangeManager.hh +++ b/source/processes/hadronic/management/include/G4EnergyRangeManager.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EnergyRangeManager.hh,v 1.4 2001/08/01 17:03:23 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EnergyRangeManager.hh,v 1.5 2002/12/12 19:16:52 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Energy Range Manager // original by H.P. Wellisch diff --git a/source/processes/hadronic/management/include/G4HadLeadBias.hh b/source/processes/hadronic/management/include/G4HadLeadBias.hh new file mode 100644 index 0000000000..e36e360b5e --- /dev/null +++ b/source/processes/hadronic/management/include/G4HadLeadBias.hh @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * 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: G4HadLeadBias.hh,v 1.3 2002/12/13 09:06:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +#ifndef G4HadLeadBias_h +#define G4HadLeadBias_h + +#include "G4VLeadingParticleBiasing.hh" +#include "g4std/vector" +#include "G4VParticleChange.hh" + +class G4HadLeadBias : public G4VLeadingParticleBiasing +{ + public: + virtual G4VParticleChange * Bias(G4VParticleChange * result); + virtual ~G4HadLeadBias() {}; +}; + +#endif diff --git a/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh b/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh index c8e35c583b..5af0e58483 100644 --- a/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh +++ b/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -82,7 +82,7 @@ G4VParticleChange *PostStepDoIt( const G4Track &aTrack, const G4Step &aStep ) { - if(0==theLastCrossSection) + if(0==theLastCrossSection&&!getenv("DebugNeutronHP")) { G4cerr << "G4HadronInelasticProcess: called for final state, while cross-section was zero"<RegisterMe( a ); } @@ -155,6 +162,8 @@ G4IsoParticleChange theIsoPC; G4std::vector theProductionModels; + + G4VLeadingParticleBiasing * theBias; static G4IsoParticleChange * theIsoResult; static G4IsoParticleChange * theOldIsoResult; diff --git a/source/processes/hadronic/management/include/G4InelasticInteraction.hh b/source/processes/hadronic/management/include/G4InelasticInteraction.hh index 67233875cb..ab8fddf42e 100644 --- a/source/processes/hadronic/management/include/G4InelasticInteraction.hh +++ b/source/processes/hadronic/management/include/G4InelasticInteraction.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InelasticInteraction.hh,v 1.6 2001/12/07 11:18:38 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InelasticInteraction.hh,v 1.7 2002/12/12 19:16:53 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Inelastic Interaction // This class is an abstract base class, since the pure virtual diff --git a/source/processes/hadronic/management/include/G4IsoParticleChange.hh b/source/processes/hadronic/management/include/G4IsoParticleChange.hh index 06833865db..d0fab79eb7 100644 --- a/source/processes/hadronic/management/include/G4IsoParticleChange.hh +++ b/source/processes/hadronic/management/include/G4IsoParticleChange.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/management/include/G4VIsotopeProduction.hh b/source/processes/hadronic/management/include/G4VIsotopeProduction.hh index 2f7170f3ba..72663f5954 100644 --- a/source/processes/hadronic/management/include/G4VIsotopeProduction.hh +++ b/source/processes/hadronic/management/include/G4VIsotopeProduction.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh b/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh new file mode 100644 index 0000000000..09ebc7a3ae --- /dev/null +++ b/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh @@ -0,0 +1,39 @@ +// +// ******************************************************************** +// * 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: G4VLeadingParticleBiasing.hh,v 1.3 2002/12/13 09:06:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// -------------------------------------------------------------------- +#ifndef G4VLeadingParticleBiasing_h +#define G4VLeadingParticleBiasing_h + +class G4VParticleChange; + +class G4VLeadingParticleBiasing +{ + public: + + virtual G4VParticleChange * Bias(G4VParticleChange * result) = 0; +}; + +#endif diff --git a/source/processes/hadronic/management/src/G4EnergyRangeManager.cc b/source/processes/hadronic/management/src/G4EnergyRangeManager.cc index 1f0f1a981c..e64b21e32c 100644 --- a/source/processes/hadronic/management/src/G4EnergyRangeManager.cc +++ b/source/processes/hadronic/management/src/G4EnergyRangeManager.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EnergyRangeManager.cc,v 1.6 2002/06/07 15:30:53 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EnergyRangeManager.cc,v 1.7 2002/12/12 19:16:53 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Energy Range Manager // original by H.P. Wellisch diff --git a/source/processes/hadronic/management/src/G4HadLeadBias.cc b/source/processes/hadronic/management/src/G4HadLeadBias.cc new file mode 100644 index 0000000000..560588fcc1 --- /dev/null +++ b/source/processes/hadronic/management/src/G4HadLeadBias.cc @@ -0,0 +1,164 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4HadLeadBias.hh" +#include "G4Gamma.hh" +#include "G4PionZero.hh" +#include "Randomize.hh" +#include "G4ParticleChange.hh" + + G4VParticleChange * G4HadLeadBias::Bias(G4VParticleChange * result) + { + G4cerr << "bias enter"<GetStatusChange()==fAlive) + { + temp = dynamic_cast(result); + if(temp) emax = temp->GetEnergyChange(); + } + G4cout << "max energy "<GetNumberOfSecondaries();i++) + { + if(result->GetSecondary(i)->GetKineticEnergy()>emax) + { + maxE = i; + emax = result->GetSecondary(i)->GetKineticEnergy(); + } + } + G4cout <<"loop1"<GetNumberOfSecondaries(); i++) + { + G4Track* aSecTrack = result->GetSecondary(i); + if(i==maxE) + { + } + else if(aSecTrack->GetDefinition()->GetBaryonNumber()!=0) + { + nBaryon++; + } + else if(aSecTrack->GetDefinition()->GetLeptonNumber()!=0) + { + nLepton++; + } + else if(aSecTrack->GetDefinition()==G4Gamma::Gamma()) + { + ngamma++; + } + else if(aSecTrack->GetDefinition()==G4PionZero::PionZero()) + { + npi0++; + } + else + { + nMeson++; + } + } + G4cout << "BiasDebug 1 = "<GetNumberOfSecondaries()<<" " + <((nMeson+1)*G4UniformRand()); + G4int randomBaryon = static_cast((nBaryon+1)*G4UniformRand()); + G4int randomGamma = static_cast((ngamma+1)*G4UniformRand()); + G4int randomPi0 = static_cast((npi0+1)*G4UniformRand()); + G4int randomLepton = static_cast((nLepton+1)*G4UniformRand()); + + G4std::vector buffer; + G4int cMeson(0), cBaryon(0), cpi0(0), cgamma(0), cLepton(0); + for(i=0; iGetNumberOfSecondaries(); i++) + { + G4bool aCatch = false; + G4double weight = 1; + G4Track* aSecTrack = result->GetSecondary(i); + if(i==maxE) + { + aCatch = true; + weight = 1; + } + else if(aSecTrack->GetDefinition()->GetBaryonNumber()!=0) + { + if(++cBaryon==randomBaryon) + { + aCatch = true; + weight = baryonWeight; + } + } + else if(aSecTrack->GetDefinition()->GetLeptonNumber()!=0) + { + if(++cLepton==randomLepton) + { + aCatch = true; + weight = leptonWeight; + } + } + else if(aSecTrack->GetDefinition()==G4Gamma::Gamma()) + { + if(++cgamma==randomGamma) + { + aCatch = true; + weight = gammaWeight; + } + } + else if(aSecTrack->GetDefinition()==G4PionZero::PionZero()) + { + if(++cpi0==randomPi0) + { + aCatch = true; + weight = npi0Weight; + } + } + else + { + if(++cMeson==randomMeson) + { + aCatch = true; + weight = mesonWeight; + } + } + if(aCatch) + { + buffer.push_back(aSecTrack); + aSecTrack->SetWeight(aSecTrack->GetWeight()*weight); + } + else + { + delete aSecTrack; + } + } + result->Clear(); + result->SetNumberOfSecondaries(buffer.size()); + // G4cerr << "pre"<(buffer.size());i++) + { + result->AddSecondary(buffer[i]); + } + G4cerr << "bias exit"<Bias(result); return result; } diff --git a/source/processes/hadronic/management/src/G4InelasticInteraction.cc b/source/processes/hadronic/management/src/G4InelasticInteraction.cc index 0c1bfe040d..775bcbb275 100644 --- a/source/processes/hadronic/management/src/G4InelasticInteraction.cc +++ b/source/processes/hadronic/management/src/G4InelasticInteraction.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -207,30 +207,37 @@ // original was an anti-particle and annihilation has taken place annihilation = true; G4double ekcor = 1.0; - G4double ek = originalIncident->GetKineticEnergy()/GeV; - const G4double tarmas = originalTarget->GetDefinition()->GetPDGMass()/GeV; - if( ek > 1.0 )ekcor = 1./ek; + G4double ek = originalIncident->GetKineticEnergy(); + G4double ekOrg = ek; + + const G4double tarmas = originalTarget->GetDefinition()->GetPDGMass(); + if( ek > 1.0*GeV )ekcor = 1./(ek/GeV); const G4double atomicWeight = targetNucleus.GetN(); -// ek = 2*tarmas + ek*(1.+ekcor/atomicWeight); - modifiedOriginal.SetKineticEnergy( ek*GeV ); + ek = 2*tarmas + ek*(1.+ekcor/atomicWeight); + + G4double tkin = targetNucleus.Cinema( ek ); + ek += tkin; + ekOrg += tkin; + modifiedOriginal.SetKineticEnergy( ekOrg ); + // // evaporation -- re-calculate black track energies // this was Done already just before the cascade // - G4double tkin = targetNucleus.EvaporationEffects( ek*GeV )/GeV; - ek -= tkin; - ek = G4std::max( 0.0001, ek ); - modifiedOriginal.SetKineticEnergy( ek*GeV ); - G4double amas = originalIncident->GetDefinition()->GetPDGMass()/GeV; - G4double et = ek + amas; + tkin = targetNucleus.EvaporationEffects( ek ); + ekOrg -= tkin; + ekOrg = G4std::max( 0.0001*GeV, ekOrg ); + modifiedOriginal.SetKineticEnergy( ekOrg ); + G4double amas = originalIncident->GetDefinition()->GetPDGMass(); + G4double et = ekOrg + amas; G4double p = sqrt( abs(et*et-amas*amas) ); - G4double pp = modifiedOriginal.GetMomentum().mag()/GeV; + G4double pp = modifiedOriginal.GetMomentum().mag(); if( pp > 0.0 ) { G4ThreeVector momentum = modifiedOriginal.GetMomentum(); modifiedOriginal.SetMomentum( momentum * (p/pp) ); } - if( ek <= 0.0001 ) + if( ekOrg <= 0.0001 ) { modifiedOriginal.SetKineticEnergy( 0.0 ); modifiedOriginal.SetMomentum( 0.0, 0.0, 0.0 ); diff --git a/source/processes/hadronic/models/GNUmakefile b/source/processes/hadronic/models/GNUmakefile index 6f4861b587..37c8afd5e1 100644 --- a/source/processes/hadronic/models/GNUmakefile +++ b/source/processes/hadronic/models/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.9 2002/06/13 18:02:03 jwellisc Exp $ +# $Id: GNUmakefile,v 1.10 2002/11/16 17:07:21 hpw Exp $ # -------------------------------------------------------------- # GNUmakefile for hadronic models library. G.Folger 10-Dec-97 # -------------------------------------------------------------- @@ -16,6 +16,7 @@ SUBDIRS += generator/kinetic_model SUBDIRS += generator/management SUBDIRS += generator/pre_equilibrium SUBDIRS += generator/quark_gluon_string +SUBDIRS += generator/scattering SUBDIRS += generator/string_common SUBDIRS += generator/string_fragmentation SUBDIRS += generator/util @@ -25,18 +26,31 @@ SUBDIRS += chiral_inv_phase_space/interface SUBDIRS += coherent_elastic SUBDIRS += cascade/evaporation SUBDIRS += cascade/utils +SUBDIRS += cascade/cascade SUBDIRS += leading_particle -SUBLIBS = G4hadronic_HE G4hadronic_LE G4hadronic_neu G4hadronic_iso -SUBLIBS += G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen G4hadronic_kinetic -SUBLIBS += G4hadronic_man_gen G4hadronic_preequ G4hadronic_radioactivedecay -SUBLIBS += G4hadronic_qgstring G4hadronic_string_common -SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen +SUBLIBS = G4hadronic_HE +SUBLIBS += G4hadronic_LE +SUBLIBS += G4hadronic_neu +SUBLIBS += G4hadronic_iso +SUBLIBS += G4hadronic_deex +SUBLIBS += G4hadronic_diffstring +SUBLIBS += G4hadronic_HE_gen +SUBLIBS += G4hadronic_kinetic +SUBLIBS += G4hadronic_man_gen +SUBLIBS += G4hadronic_preequ +SUBLIBS += G4hadronic_radioactivedecay +SUBLIBS += G4hadronic_qgstring +SUBLIBS += G4hadronic_scattering +SUBLIBS += G4hadronic_string_common +SUBLIBS += G4hadronic_stringfrag +SUBLIBS += G4hadronic_util_gen SUBLIBS += G4hadronic_body_ci SUBLIBS += G4hadronic_interface_ci SUBLIBS += G4hadronic_coherent_elastic SUBLIBS += G4hadronic_hetcpp_evaporation SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_bert_cascade SUBLIBS += G4hadronic_leading_particle ifndef G4INSTALL diff --git a/source/processes/hadronic/models/cascade/GNUmakefile b/source/processes/hadronic/models/cascade/GNUmakefile index e15152fa3f..c62baaabe6 100644 --- a/source/processes/hadronic/models/cascade/GNUmakefile +++ b/source/processes/hadronic/models/cascade/GNUmakefile @@ -6,9 +6,11 @@ name := G4hadronic_hetcpp SUBDIRS = evaporation SUBDIRS += utils +SUBDIRS += cascade SUBLIBS = G4hadronic_hetcpp_evaporation SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_bert_cascade ifndef G4INSTALL G4INSTALL = ../../../../.. diff --git a/source/processes/hadronic/models/cascade/README b/source/processes/hadronic/models/cascade/README deleted file mode 100644 index 6d1bedd982..0000000000 --- a/source/processes/hadronic/models/cascade/README +++ /dev/null @@ -1,6 +0,0 @@ -The code below will be a prototype for a high energy transport code (HETC++). -For more detailed documentation see doc-directory and the HETC home page at -http://cmsdoc.cern.ch/~miheikki/hetc/. - -If you have any questions please simply send mail to -Aatos.Heikkinen@cern.ch. \ No newline at end of file diff --git a/source/processes/hadronic/models/cascade/cascade/GNUmakefile b/source/processes/hadronic/models/cascade/cascade/GNUmakefile new file mode 100644 index 0000000000..6a6f4faacd --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/GNUmakefile @@ -0,0 +1,43 @@ +# $Id: GNUmakefile,v 1.7 2002/12/03 11:33:52 gcosmo Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_bert_cascade + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ + -I$(G4BASE)/processes/hadronic/models/generator/management/include \ + -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ + -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh b/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh new file mode 100644 index 0000000000..8217409f9a --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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 G4ANALYSER_HH +#define G4ANALYSER_HH + +#define WITH_NUCLEI + +#include "G4CollisionOutput.hh" +//#include "G4InuclParticle.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4InuclNuclei.hh" +#include "G4NuclWatcher.hh" +//#include "G4ExitonConfiguration.hh" + +#include "g4std/vector" + +class G4Analyser { + +public: + + G4Analyser(); + void setInelCsec(G4double csec, + G4bool withn); + void setWatchers(const G4std::vector& watchers); + void try_watchers(G4double a, + G4double z, + G4bool if_nucl); + void analyse(const G4CollisionOutput& output); + void printResults(); + void printResultsSimple(); + void handleWatcherStatistics(); + void printResultsNtuple(); + +private: + + G4int verboseLevel; + G4double eventNumber; + G4double averageMultiplicity; + G4double averageProtonNumber; + G4double averageNeutronNumber; + G4double averagePionNumber; + G4double averageNucleonKinEnergy; + G4double averageProtonKinEnergy; + G4double averageNeutronKinEnergy; + G4double averagePionKinEnergy; + G4double averageExitationEnergy; + G4double averageNucleiFragments; + G4double fissy_prob; + G4double averagePionPl; + G4double averagePionMin; + G4double averagePion0; + G4double averageA; + G4double averageZ; + G4std::vector ana_watchers; + G4double inel_csec; + G4bool withNuclei; +}; + +#endif // G4ANALYSER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh new file mode 100644 index 0000000000..cf518eec2f --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.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. * +// ******************************************************************** +#ifndef G4BertiniData_h +#define G4BertiniData_h 1 + +#include "globals.hh" + +class G4BertiniData //: public G4VIntraNuclearTransportModel +{ + public: + G4BertiniData(){ + G4cout << " G4BertiniData constructor" << G4endl; +} + ~G4BertiniData(){ + G4cout << " G4BertiniData destructor" << G4endl; +} + + static G4BertiniData* Instance() + { + if (!theInstance) theInstance = new G4BertiniData(); + else G4cout << "singleton instance already created" << G4endl; + return theInstance; + } + + private: + static G4BertiniData* theInstance; +}; + +#endif + + + + + + + + + + diff --git a/examples/extended/biasing/B06/include/B06DetectorConstruction.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh similarity index 76% rename from examples/extended/biasing/B06/include/B06DetectorConstruction.hh rename to source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh index d6f1abdd74..1a33fd6cf4 100644 --- a/examples/extended/biasing/B06/include/B06DetectorConstruction.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh @@ -19,26 +19,36 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B06DetectorConstruction.hh,v 1.2 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef B06DetectorConstruction_hh -#define B06DetectorConstruction_hh B06DetectorConstruction_hh +#ifndef G4BertiniElasticCollision_h +#define G4BertiniElasticCollision_h 1 -class G4VPhysicalVolume; +#include "G4BertiniModel.hh" -#include "G4VUserDetectorConstruction.hh" - -class B06DetectorConstruction : public G4VUserDetectorConstruction -{ +class G4BertiniElasticCollision : public G4BertiniModel { public: - B06DetectorConstruction(); - ~B06DetectorConstruction(); - - G4VPhysicalVolume* Construct(); + G4BertiniElasticCollision(); + ~G4BertiniElasticCollision(); + void interpolateElasticNeutronData(G4int medium, G4int kdd, G4double e); + void geti(G4double es, G4int npts, G4double e, G4int i); + void scatteringWithHydrogen(); +private: + G4double pt[16]; + G4double col[23]; }; #endif + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh new file mode 100644 index 0000000000..7d30d4143a --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh @@ -0,0 +1,36 @@ +// +// ******************************************************************** +// * 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 G4BertiniHydrogenCollision_h +#define G4BertiniHydrogenCollision_h 1 + +#include "globals.hh" +#include "G4BertiniModel.hh" + +class G4BertiniHydrogenCollision : public G4BertiniModel { +public: + G4BertiniHydrogenCollision(); + ~G4BertiniHydrogenCollision(); +private: +}; + +#endif + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh new file mode 100644 index 0000000000..6d4e6113f9 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh @@ -0,0 +1,230 @@ +// +// ******************************************************************** +// * 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 G4BERTININUCLEI_MODEL_HH +#define G4BERTININUCLEI_MODEL_HH + +#ifndef G4INUCL_ELEMENTARY_PARTICLE_HH +#include "G4InuclElementaryParticle.hh" +#endif +#include "G4CascadParticle.hh" +#include "G4InuclSpecialFunctions.hh" +#include "G4CascadSpecialFunctions.hh" +#include "G4ElementaryParticleCollider.hh" + +#include "g4std/vector" + +class G4InuclNuclei; + +using namespace G4InuclSpecialFunctions; +using namespace G4CascadSpecialFunctions; + +typedef G4std::pair partner; +typedef G4std::vector partners; + +class G4BertiniNucleiModel { + + /// 7 MeV potential + + /// Testing Doxygen properties (http://www.stack.nl/~dimitri/doxygen/) + + /// The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$. + + /*! \class G4BertiniNucleiModel + * \brief Implements HETC nuclei model + * \author Aatos Heikkinen + * \author Original HETC authors + * \version 0.0 + * \date 16.11.2002 + * \bug None know + * \warning Wery preliminary + */ + +public: + + G4BertiniNucleiModel(); /// Initialize + + /** + * a normal member taking two arguments and returning an integer value. + * @param a an integer argument. + * @param s a constant character pointer. + * @see Test() + * @see ~Test() + * @see testMeToo() + * @see publicVar() + * @return The test results + */ + + + /// a normal member taking two arguments and returning an integer value. + /// @param a an integer argument. + /// @param s a constant character pointer. + /// @see Test() + /// @see ~Test() + /// @see testMeToo() + /// @see publicVar() + /// @return The test results + + + G4BertiniNucleiModel(G4InuclNuclei* nuclei) { + + generateModel(nuclei->getA(), nuclei->getZ()); + }; + + void generateModel(G4double a, + G4double z); //!< a member function. + + void reset() { + + neutronNumberCurrent = neutronNumber; + protonNumberCurrent = protonNumber; + }; + + void printModel() const; /// a member function. + + G4double getDensity(G4int ip, + G4int izone) const { + + return nucleon_densities[ip - 1][izone]; + }; + + G4double getFermiMomentum(G4int ip, + G4int izone) const { + + return fermi_momenta[ip - 1][izone]; + }; + + G4double getFermiKinetic(G4int ip, + G4int izone) const { + + G4double ekin = 0.0; + + if(ip < 3 && izone < number_of_zones) { + G4double pf = fermi_momenta[ip - 1][izone]; + G4double mass = ip == 1 ? 0.93827 : 0.93957; + + ekin = sqrt(pf * pf + mass * mass) - mass; + }; + + return ekin; + }; + + G4double getPotential(G4int ip, + G4int izone) const { + + G4int ip0 = ip < 3 ? ip - 1 : 2; + + return izone < number_of_zones ? zone_potentials[ip0][izone] : 0.0; + }; + + G4std::vector + generateParticleFate(G4CascadParticle& cparticle, + G4ElementaryParticleCollider* theElementaryParticleCollider); + + G4double getNumberOfNeutrons() const { + + return neutronNumberCurrent; + }; + + G4double getNumberOfProtons() const { + + return protonNumberCurrent; + }; + + G4bool empty() const { + + return neutronNumberCurrent < 1.0 && protonNumberCurrent < 1.0; + }; + + G4bool stillInside(const G4CascadParticle& cparticle) { + + return cparticle.getCurrentZone() < number_of_zones; + }; + + G4CascadParticle initializeCascad(G4InuclElementaryParticle* particle); + + G4std::pair, G4std::vector > initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target); + + G4std::pair getTypesOfNucleonsInvolved() const { + return G4std::pair(current_nucl1, current_nucl2); + }; + G4bool worthToPropagate(const G4CascadParticle& cparticle) const; + +private: + G4int verboseLevel; /*!< Each class has a verbosity level of its own. */ + G4bool passFermi(const G4std::vector& particles, + G4int zone); + + void boundaryTransition(G4CascadParticle& cparticle); + + G4InuclElementaryParticle generateNucleon(G4int type, + G4int zone) const; + + G4InuclElementaryParticle generateQuasiDeutron(G4int type1, + G4int type2, + G4int zone) const; + + partners generateInteractionPartners(G4CascadParticle& cparticle) const; + + G4double volNumInt(G4double r1, + G4double r2, + G4double cu, + G4double d1) const; + + G4double volNumInt1(G4double r1, + G4double r2, + G4double cu2) const; + + G4double getRatio(G4int ip) const; + + G4std::vector > nucleon_densities; + + G4std::vector > zone_potentials; + + G4std::vector > fermi_momenta; + + G4std::vector zone_radii; + + G4std::vector binding_energies; + + G4double nuclei_radius; + + G4int number_of_zones; + + G4double A; + + G4double Z; + + G4double neutronNumber; + + G4double protonNumber; + + G4double neutronNumberCurrent; + + G4double protonNumberCurrent; + + G4int current_nucl1; + + G4int current_nucl2; + +}; + +#endif // G4NUCLEI_MODEL_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh new file mode 100644 index 0000000000..fa4e906cac --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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 G4BERTINIREGIONMODEL +#define G4BERTINIREGIONMODEL + +#include "G4ios.hh" +#include "g4std/vector" +#include +#include "globals.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + + +typedef G4std::vector::const_iterator iterator; + +class G4BertiniRegionModel /// :public G4VRegionModel +{ +public: + G4BertiniRegionModel(const G4int numberOfLayers, const G4int A, const G4int Z); + ~G4BertiniRegionModel(); + + /// instead of A and Z outer radius of the nucleus? + /// void Init(const G4int numberOfLayers, const G4int A, const G4int Z); + G4double GetDensity(G4double radius); + G4double GetPotentialEnergy(G4double r, G4int particle); + G4double GetMaximumNucleonMomentum(G4double radius, G4int nucleon); + /// G4double NumberOfRegions(); + +private: + + G4int massNumber; + G4int protonNumber; + G4std::vector radius; /// contains the outer radiuses of the shells + G4std::vector density; + G4std::vector protonFermiEnergy; + G4std::vector neutronFermiEnergy; + G4std::vector protonFermiMomentum; + G4std::vector neutronFermiMomentum; + + G4std::vector protonPotentialEnergy; + G4std::vector neutronPotentialEnergy; + + static const G4double radius0; + static const G4double BE; + /// static const G4double pi = 3.141592; + + G4double GetFermiMomentum(G4double density, G4double mass); + G4double GetFermiEnergy(G4double density, G4double mass); +}; +#endif + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh new file mode 100644 index 0000000000..1f0f2fa3aa --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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 G4BIG_BANGER_HH +#define G4BIG_BANGER_HH + +#include "G4Collider.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4InuclSpecialFunctions.hh" + + +using namespace G4InuclSpecialFunctions; + +class G4BigBanger : public G4Collider { + +public: + + G4BigBanger(); + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + +private: + +G4int verboseLevel; + G4std::vector generateBangInSCM(G4double etot, + G4double a, + G4double z, + G4double mp, + G4double mn) const; + + G4std::vector generateMomentumModules(G4double etot, + G4double a, + G4double z, + G4double mp, + G4double mn) const; + + G4double xProbability(G4double x, + G4int ia) const; + + G4double maxProbability(G4double a) const; + + G4double generateX(G4int ia, + G4double a, + G4double promax) const; + +}; + +#endif // G4BIG_BANGER_HH + + + + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh new file mode 100644 index 0000000000..1f16110071 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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 G4CASCAD_PARTICLE_HH +#define G4CASCAD_PARTICLE_HH + +#include "G4InuclElementaryParticle.hh" + +class G4CascadParticle { + +public: + + G4CascadParticle(); + + G4CascadParticle(const G4InuclElementaryParticle& particle, + const G4std::vector& pos, + G4int izone, + G4double cpath) + + : theParticle(particle), + position(pos), + current_zone(izone), + current_path(cpath) { + current_path = cpath; + movingIn = true; + reflectionCounter = 0; + }; + + void updateParticleMomentum(const G4std::vector& mom) { + theParticle.setMomentum(mom); + }; + + void updatePosition(const G4std::vector& pos) { + position = pos; + }; + + void incrementReflectionCounter() { + reflectionCounter++; + reflected = true; + }; + + void resetReflection() { + reflected = false; + }; + + void incrementCurrentPath(G4double npath) { + current_path += npath; + }; + + void updateZone(G4int izone) { + current_zone = izone; + }; + + G4bool movingInsideNuclei() const { + return movingIn; + }; + + G4double getPathToTheNextZone(G4double rz_in, + G4double rz_out); + + G4std::vector getMomentum() const { + return theParticle.getMomentum(); + }; + + G4InuclElementaryParticle getParticle() const { + return theParticle; + }; + + G4std::vector getPosition() const { + return position; + }; + + G4int getCurrentZone() const { + return current_zone; + }; + + G4int getNumberOfReflections() const { + return reflectionCounter; + }; + + G4bool young(G4double young_path_cut, + G4double cpath) const { + + if(current_path < 1000.0) { + return cpath < young_path_cut; + } + else { + return false; + }; + // return current_path + cpath < young_path_cut; + }; + + G4bool reflectedNow() const { + return reflected; + }; + + void propagateAlongThePath(G4double path); + + void print() const { + theParticle.printParticle(); + G4cout << " zone " << current_zone << " current_path " << current_path + << " reflectionCounter " << reflectionCounter << G4endl + << " x " << position[0] << " y " << position[1] + << " z " << position[2] << G4endl; + }; + +private: + + G4int verboseLevel; + G4InuclElementaryParticle theParticle; + G4std::vector position; + G4int current_zone; + G4double current_path; + G4bool movingIn; + G4int reflectionCounter; + G4bool reflected; + +}; + +#endif // G4CASCAD_PARTICLE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh new file mode 100644 index 0000000000..1807839ac3 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh @@ -0,0 +1,46 @@ +// +// ******************************************************************** +// * 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 G4CASCAD_SPECIAL_FUNC_HH +#define G4CASCAD_SPECIAL_FUNC_HH + +#include "globals.hh" + +#include +#include "g4std/algorithm" +#include "g4std/vector" + +namespace G4CascadSpecialFunctions { + + G4std::pair getPositionInEnergyScale2(G4double e); + + G4std::pair getPositionInEnergyScale1(G4double e); + + G4double absorptionCrosSection(G4double e, + G4int type); + + G4double crossSection(G4double e, + G4int is); + + G4std::pair getPositionInEnergyScaleEMS(G4double e); + +} +#endif diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh new file mode 100644 index 0000000000..a89be54577 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh @@ -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. * +// ******************************************************************** +// CLASS DESCRIPTION +// G4CascadeInterface defines an interface to HETC and INUCL +// models of an medium energy (~ 0.5 - 5 GeV) intra-nuclear transport. +// If you have any questions, please contact +// package writer aatos.heikkinen@cern.ch. +// -------------------------------------------------------------------- +#ifndef G4CASCADEINTERFACE_H +#define G4CASCADEINTERFACE_H 1 + +#include "G4Nucleon.hh" +#include "G4Nucleus.hh" +#include "G4VIntraNuclearTransportModel.hh" +#include "G4KineticTrackVector.hh" +#include "G4FragmentVector.hh" +#include "G4ParticleChange.hh" +#include "G4ReactionProductVector.hh" +#include "G4ReactionProduct.hh" + +class G4CascadeInterface : public G4VIntraNuclearTransportModel { + +public: + + G4CascadeInterface(); + + ~G4CascadeInterface(){ + } + + G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus); + + G4VParticleChange* ApplyYourself(const G4Track& aTrack, + G4Nucleus& theNucleus); + +private: + + G4int operator==(G4CascadeInterface& right) { + return (this == &right); + } + + G4int operator!=(G4CascadeInterface& right) { + return (this != &right); + } + + G4int verboseLevel; +private: + G4ParticleChange theResult; + +}; + +#endif // G4CASCADEINTERFACE_H diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh b/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh new file mode 100644 index 0000000000..4b6b60a2ff --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * 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 G4COLLIDER_HH +#define G4COLLIDER_HH + +//#ifndef G4INUCL_PARTICLE_HH +#include "G4InuclParticle.hh" +//#endif + +#include "G4CollisionOutput.hh" + +class G4Collider { + +public: + + G4Collider() {}; + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target) = 0; + +}; + +#endif // G4COLLIDER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh new file mode 100644 index 0000000000..b351802984 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh @@ -0,0 +1,158 @@ +// +// ******************************************************************** +// * 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 G4COLLISION_OUTPUT_HH +#define G4COLLISION_OUTPUT_HH + +#include "g4std/iostream" + +#include "G4InuclElementaryParticle.hh" +#include "G4InuclNuclei.hh" + +#include "g4std/algorithm" +#include "g4std/vector" + +class G4CollisionOutput { + +public: + + G4CollisionOutput(); + + void reset() { + nucleiFragments.resize(0); + outgoingParticles.resize(0); + + }; + + void addOutgoingParticle(const G4InuclElementaryParticle& particle) { + outgoingParticles.push_back(particle); + }; + + void addOutgoingParticles(const G4std::vector& particles) { + for(G4int i = 0; i < G4int(particles.size()); i++) + outgoingParticles.push_back(particles[i]); + }; + + void addTargetFragment(const G4InuclNuclei& nuclei) { + nucleiFragments.push_back(nuclei); + }; + + void addTargetFragments(const G4std::vector& nuclea) { + for(G4int i = 0; i < G4int(nuclea.size()); i++) + nucleiFragments.push_back(nuclea[i]); + }; + + G4std::vector getOutgoingParticles() const { + return outgoingParticles; + }; + + G4int numberOfNucleiFragments() const { + return nucleiFragments.size(); + }; + + G4std::vector getNucleiFragments() const { + return nucleiFragments; + }; + + G4std::vector getTotalOutputMomentum() const { + G4std::vector tot_mom(4, 0.0); + double eex_r = 0.0; + G4int i(0); + for(i = 0; i < G4int(outgoingParticles.size()); i++) { + G4std::vector mom = outgoingParticles[i].getMomentum(); + for(G4int j = 0; j < 4; j++) tot_mom[j] += mom[j]; + }; + for(i = 0; i < G4int(nucleiFragments.size()); i++) { + G4std::vector mom = nucleiFragments[i].getMomentum(); + for(G4int j = 0; j < 4; j++) tot_mom[j] += mom[j]; + eex_r += 0.001 * nucleiFragments[i].getExitationEnergy(); + }; + tot_mom[0] += eex_r; + return tot_mom; + }; + + void printCollisionOutput() const { + G4cout << " Output: " << G4endl + << " Outgoing Particles: " << outgoingParticles.size() << G4endl; + G4int i(0); + for(i = 0; i < G4int(outgoingParticles.size()); i++) { + outgoingParticles[i].printParticle(); + }; + G4cout << " Nuclei fragments: " << nucleiFragments.size() << G4endl; + for(i = 0; i < G4int(nucleiFragments.size()); i++) { + nucleiFragments[i].printParticle(); + }; + }; + + void trivialise(G4InuclParticle* bullet, + G4InuclParticle* target) { + if(G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + nucleiFragments.push_back(*nuclei_target); + } + else { + G4InuclElementaryParticle* particle = + dynamic_cast(target); + outgoingParticles.push_back(*particle); + }; + if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { + nucleiFragments.push_back(*nuclei_bullet); + } + else { + G4InuclElementaryParticle* particle = + dynamic_cast(bullet); + outgoingParticles.push_back(*particle); + }; + }; + + void setOnShell(G4InuclParticle* bullet, + G4InuclParticle* target); + + void setRemainingExitationEnergy() { + eex_rest = 0.0; + for(G4int i = 0; i < G4int(nucleiFragments.size()); i++) + eex_rest += 0.001 * nucleiFragments[i].getExitationEnergy(); + }; + + double getRemainingExitationEnergy() const { + return eex_rest; + }; + + G4bool acceptable() const { + return on_shell; + }; + +private: + +G4int verboseLevel; + G4std::vector outgoingParticles; + + G4std::vector nucleiFragments; + + G4double eex_rest; + + G4std::pair, G4int> selectPairToTune(G4double de) const; + + G4bool on_shell; + +}; + +#endif // G4COLLISION_OUTPUT_HH + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh b/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh new file mode 100644 index 0000000000..ce397ef4c5 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * 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 G4ELEMENTARY_PARTICLE_COLLIDER_HH +#define G4ELEMENTARY_PARTICLE_COLLIDER_HH + +#include "G4Collider.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4InuclSpecialFunctions.hh" +#include "G4CascadSpecialFunctions.hh" +#include "G4LorentzConvertor.hh" + +using namespace G4InuclSpecialFunctions; +using namespace G4CascadSpecialFunctions; + +class G4ElementaryParticleCollider : public G4Collider { + +public: + + G4ElementaryParticleCollider(); + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + +private: + G4int verboseLevel; + G4int generateMultiplicity(G4int is, + G4double ekin) const; + + G4std::vector generateSCMfinalState(G4double ekin, + G4double etot_scm, G4double pscm, + G4InuclElementaryParticle* particle1, + G4InuclElementaryParticle* particle2, + G4LorentzConvertor* toSCM) const; + + G4std::vector generateMomModules(const G4std::vector& kinds, + G4int mult, + G4int is, + G4double ekin, + G4double etot_cm) const; + + G4bool reChargering(G4double ekin, + G4int is) const; + + G4std::vector particleSCMmomentumFor2to2(G4int is, + G4int kw, + G4double ekin, + G4double pscm) const; + + G4int getElasticCase(G4int is, + G4int kw, + G4double ekin) const; + + G4std::vector generateOutgoingKindsFor2toMany(G4int is, + G4int mult, + G4double ekin) const; + + G4double getMomModuleFor2toMany(G4int is, + G4int mult, + G4int knd, + G4double ekin) const; + + G4bool satisfyTriangle(const G4std::vector& modules) const; + + G4std::vector particleSCMmomentumFor2to3(G4int is, + G4int knd, + G4double ekin, + G4double pmod) const; + + G4int getIL(G4int is, + G4int mult) const; + + G4std::pair adjustIntervalForElastic(G4double ekin, + G4double ak, + G4double ae, + G4int k, + G4int l, + const G4std::vector& ssv, + G4double st) const; + + G4std::vector + generateSCMpionAbsorption(G4double etot_scm, + G4InuclElementaryParticle* particle1, + G4InuclElementaryParticle* particle2) const; + +}; + +#endif // G4ELEMENTARY_PARTICLE_COLLIDER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh b/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh new file mode 100644 index 0000000000..533dbe01c6 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh @@ -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. * +// ******************************************************************** +#ifndef G4EQUILIBRIUM_EVAPORATOR_HH +#define G4EQUILIBRIUM_EVAPORATOR_HH + +#include "G4Collider.hh" +#include "G4Fissioner.hh" +#include "G4BigBanger.hh" +#include "G4InuclSpecialFunctions.hh" + +using namespace G4InuclSpecialFunctions; + +class G4EquilibriumEvaporator : public G4Collider { + +public: + + G4EquilibriumEvaporator(); + + void setFissioner(G4Fissioner* fissioner) { + theFissioner = fissioner; + }; + + void setBigBanger(G4BigBanger* banger) { + theBigBanger = banger; + }; + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + +private: +G4int verboseLevel; + G4double getE0(G4double A) const; + + G4double getPARLEVDEN(G4double A, + G4double Z) const; + + G4bool timeToBigBang(G4double a, + G4double z, + G4double e) const; + + G4bool goodRemnant(G4double a, + G4double z) const; + + G4double getQF(G4double x, + G4double x2, + G4double a, + G4double z, + G4double e) const; + + G4double getAF(G4double x, + G4double a, + G4double z, + G4double e) const; + + G4Fissioner* theFissioner; + G4BigBanger* theBigBanger; + +}; + +#endif // G4EQUILIBRIUM_EVAPORATOR_HH + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh b/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh new file mode 100644 index 0000000000..5473f33457 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh @@ -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. * +// ******************************************************************** +#ifndef G4EXITON_CONFIGURATION_HH +#define G4EXITON_CONFIGURATION_HH + +class G4ExitonConfiguration { + +public: + + G4ExitonConfiguration() { + protonQuasiParticles = 0.0; + neutronQuasiParticles = 0.0; + protonHoles = 0.0; + neutronHoles = 0.0; + }; + + G4ExitonConfiguration(G4double qpp, + G4double qnp, + G4double qph, + G4double qnh) + : protonQuasiParticles(qpp), + neutronQuasiParticles(qnp), + protonHoles(qph), + neutronHoles(qnh) { + }; + + void incrementQP(G4int ip) { + if(ip < 3) { + if(ip == 1) { + protonQuasiParticles += 1.0; + } + else if(ip == 2) { + neutronQuasiParticles += 1.0; + }; + }; + }; + + void incrementHoles(G4int ip) { + if(ip < 3) { + if(ip == 1) { + protonHoles += 1.0; + } + else if(ip == 2) { + neutronHoles += 1.0; + }; + }; + }; + + void print() const { + G4cout << " Exiton configuration " << G4endl + << " proton particles " << protonQuasiParticles << " holes " + << protonHoles << G4endl + << " neutron particles " << neutronQuasiParticles << " holes " + << neutronHoles << G4endl; + }; + + G4double protonQuasiParticles; + G4double neutronQuasiParticles; + G4double protonHoles; + G4double neutronHoles; + +}; + +#endif // G4EXITON_CONFIGURATION_HH diff --git a/examples/extended/biasing/B08/include/B08ScorePrinter.hh b/source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh similarity index 69% rename from examples/extended/biasing/B08/include/B08ScorePrinter.hh rename to source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh index d3414e6105..69fcedc1e9 100644 --- a/examples/extended/biasing/B08/include/B08ScorePrinter.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh @@ -19,38 +19,44 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B08ScorePrinter.hh,v 1.1 2002/06/04 11:14:52 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// - -#ifndef B08ScorePrinter_hh -#define B08ScorePrinter_hh B08ScorePrinter_hh - -#include "g4std/iostream" -#include "g4std/iomanip" +#ifndef G4FISSION_CONFIGURATION_HH +#define G4FISSION_CONFIGURATION_HH #include "globals.hh" -#include "G4PMapPtkTallys.hh" +#include "g4std/iostream" -class G4VIStore; +class G4FissionConfiguration { -class B08ScorePrinter -{ public: - B08ScorePrinter(const G4VIStore *aIStore = 0); - ~B08ScorePrinter(){} - void PrintHeader(G4std::ostream *out); - void PrintTable(const G4PMapPtkTallys &aMapPtkTallys, - G4std::ostream *out); - G4std::string FillString(const G4std::string &name, - char c, G4int n, G4bool back = true); -private: - const G4VIStore *fIStore; - G4int FieldName; - G4int FieldValue; + G4FissionConfiguration() { + }; + + G4FissionConfiguration(G4double a, + G4double z, + G4double ez, + G4double ek, + G4double ep) + : afirst(a), + zfirst(z), + ezet(ez), + ekin(ek), + epot(ep) { }; -#endif + void print() { + G4cout << " new configuration " << G4endl + << " a1 " << afirst << " z1 " << zfirst << " ez " << ezet << + " ekin " << ekin << " epot " << epot << G4endl; + }; + + G4double afirst; + G4double zfirst; + G4double ezet; + G4double ekin; + G4double epot; + +}; + +#endif // G4FISSION_CONFIGURATION_HH + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh b/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh new file mode 100644 index 0000000000..c142afa1ea --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4FISSION_STORE_HH +#define G4FISSION_STORE_HH + +#include "G4FissionConfiguration.hh" + +#include "g4std/vector" + +class G4FissionStore { + +public: + + G4FissionStore(); + + void addConfig(G4double a, + G4double z, + G4double ez, + G4double ek, + G4double ev) { + G4FissionConfiguration config(a, z, ez, ek, ev); + configurations.push_back(config); + // config.print(); + }; + + G4int size() const { + return configurations.size(); + }; + + G4FissionConfiguration generateConfiguration(G4double amax, + G4double rand) const; + +private: + G4int verboseLevel; + + G4std::vector configurations; + +}; + +#endif // G4FISSION_STORE_HH + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh b/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh new file mode 100644 index 0000000000..ca12f5013a --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.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. * +// ******************************************************************** +#ifndef G4FISSIONER_HH +#define G4FISSIONER_HH + +#include "G4Collider.hh" +#include "G4InuclSpecialFunctions.hh" + +using namespace G4InuclSpecialFunctions; + +class G4Fissioner : public G4Collider { + +public: + + G4Fissioner(); + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + +private: +G4int verboseLevel; + G4double getC2(G4double A1, + G4double A2, + G4double X3, + G4double X4, + G4double R12) const; + + G4double getZopt(G4double A1, + G4double A2, + G4double ZT, + G4double X3, + G4double X4, + G4double R12) const; + + void potentialMinimization(G4double& VP, + G4std::vector& ED, + G4double& VC, + G4double AF, + G4double AS, + G4double ZF, + G4double ZS, + G4std::vector& AL1, + G4std::vector& BET1, + G4double& R12) const; + +}; + +#endif // G4FISSIONER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh new file mode 100644 index 0000000000..7645e9e6dc --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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 G4INTERACTION_CASE_HH +#define G4INTERACTION_CASE_HH + +//#ifndef G4INUCL_PARTICLE_HH +#include "G4InuclParticle.hh" +//#endif + +#include "g4std/algorithm" + +class G4InteractionCase { + +public: + + G4InteractionCase() { + bultag = G4std::pair(0, 0); + inter_case = 0; + }; + + G4InteractionCase(G4InuclParticle* part1, + G4InuclParticle* part2, + G4int ic) { + setBulletTarget(part1, part2); + setInterCase(ic); + }; + + void setBulletTarget(G4InuclParticle* part1, + G4InuclParticle* part2) { + bultag = G4std::pair(part1, part2); + }; + + void setInterCase(G4int ic) { + inter_case = ic; + }; + + G4InuclParticle* getBullet() const { + return bultag.first; + }; + + G4InuclParticle* getTarget() const { + return bultag.second; + }; + + G4int getInterCase() const { + return inter_case; + }; + +private: + + G4std::pair bultag; + + G4int inter_case; + +}; + +#endif // G4INTERACTION_CASE_HH + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh b/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh new file mode 100644 index 0000000000..83b8bd1ae1 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * 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 G4INTRA_NUCLEI_CASCADER_HH +#define G4INTRA_NUCLEI_CASCADER_HH + +#include "G4Collider.hh" +#include "G4ElementaryParticleCollider.hh" +#include "G4InuclSpecialFunctions.hh" +#include "G4CascadSpecialFunctions.hh" +#include "G4InuclElementaryParticle.hh" + +using namespace G4InuclSpecialFunctions; +using namespace G4CascadSpecialFunctions; + +class G4IntraNucleiCascader : public G4Collider { + +public: + + G4IntraNucleiCascader(); + + void setElementaryParticleCollider(G4ElementaryParticleCollider* ecollider) { + theElementaryParticleCollider = ecollider; + }; + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + + void setInteractionCase(G4int intcase) { + inter_case = intcase; + }; + +private: +G4int verboseLevel; + G4ElementaryParticleCollider* theElementaryParticleCollider; + + G4int inter_case; + + G4bool goodCase(G4double a, G4double z, G4double eexs, G4double ein) const; + +}; + +#endif // G4INTRA_NUCLEI_CASCADER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh new file mode 100644 index 0000000000..674cb23f04 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh @@ -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. * +// ******************************************************************** +#ifndef G4INUCL_COLLIDER_HH +#define G4INUCL_COLLIDER_HH + +#include "G4Collider.hh" +#include "G4IntraNucleiCascader.hh" +#include "G4NonEquilibriumEvaporator.hh" +#include "G4EquilibriumEvaporator.hh" +#include "G4Fissioner.hh" +#include "G4BigBanger.hh" +#include "G4ElementaryParticleCollider.hh" +#include "G4InteractionCase.hh" +#include "G4InuclNuclei.hh" +#include "G4InuclSpecialFunctions.hh" +#include "G4Analyser.hh" + +using namespace G4InuclSpecialFunctions; + +class G4InuclCollider : public G4Collider { + +public: + + G4InuclCollider(); + + G4InuclCollider(G4ElementaryParticleCollider* ecollider, + G4IntraNucleiCascader* incascader, + G4NonEquilibriumEvaporator* noeqevaporator, + G4EquilibriumEvaporator* eqevaporator, + G4Fissioner* fissioner, + G4BigBanger* bigbanger) { + + setElementaryParticleCollider(ecollider); + setIntraNucleiCascader(incascader,ecollider); + setNonEquilibriumEvaporator(noeqevaporator); + setEquilibriumEvaporator(eqevaporator, fissioner, bigbanger); + setBigBanger(bigbanger); + + }; + + void setElementaryParticleCollider(G4ElementaryParticleCollider* ecollider) { + + theElementaryParticleCollider = ecollider; + }; + + void setIntraNucleiCascader(G4IntraNucleiCascader* incascader, + G4ElementaryParticleCollider* ecollider) { + + theIntraNucleiCascader = incascader; + theIntraNucleiCascader->setElementaryParticleCollider(ecollider); + }; + + void setNonEquilibriumEvaporator(G4NonEquilibriumEvaporator* noeqevaporator) { + + theNonEquilibriumEvaporator = noeqevaporator; + }; + + void setEquilibriumEvaporator(G4EquilibriumEvaporator* eqevaporator, + G4Fissioner* fissioner, + G4BigBanger* bigbanger) { + + theEquilibriumEvaporator = eqevaporator; + theEquilibriumEvaporator->setFissioner(fissioner); + theEquilibriumEvaporator->setBigBanger(bigbanger); + }; + + void setBigBanger(G4BigBanger* bigbanger) { + + theBigBanger = bigbanger; + }; + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + +private: + + G4int verboseLevel; + + G4bool inelasticInteractionPossible(G4InuclParticle* bullet, + G4InuclParticle* target, + G4double ekin) const; + + G4InteractionCase bulletTargetSetter(G4InuclParticle* bullet, + G4InuclParticle* target) const; + + G4bool explosion(G4InuclNuclei* target) const; + + G4ElementaryParticleCollider* theElementaryParticleCollider; + G4IntraNucleiCascader* theIntraNucleiCascader; + G4NonEquilibriumEvaporator* theNonEquilibriumEvaporator; + G4EquilibriumEvaporator* theEquilibriumEvaporator; + G4BigBanger* theBigBanger; + +}; + +#endif // G4INUCL_COLLIDER_HH + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh new file mode 100644 index 0000000000..ac3fad8e01 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh @@ -0,0 +1,278 @@ +// +// ******************************************************************** +// * 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 G4INUCL_ELEMENTARY_PARTICLE_HH +#define G4INUCL_ELEMENTARY_PARTICLE_HH + +#include "globals.hh" + +#ifndef G4INUCL_PARTICLE_HH +#include "G4InuclParticle.hh" +#endif + +class G4InuclElementaryParticle : public G4InuclParticle { + + // known particle types: + // 1 - proton + // 2 - neutron + // 3 - pi+ + // 5 - pi- + // 7 - pi 0 + // 10 - photon + // 111 - quasideutron PP + // 112 - quasideutron PN + // 122 - quasideutron NN + +public: + + G4InuclElementaryParticle() { + + valid_particle = false; + }; + + G4InuclElementaryParticle(G4int type) + : particleType(type) { + + particleMass = getParticleMass(type); + valid_particle = false; + }; + + G4InuclElementaryParticle(const G4std::vector& mom, + G4int type) + : G4InuclParticle(mom), + particleType(type) { + + particleMass = getParticleMass(type); + momentum[0] = sqrt(momentum[1] * momentum[1] + momentum[2] * momentum[2] + + momentum[3] * momentum[3] + particleMass * particleMass); + valid_particle = true; + }; + + G4InuclElementaryParticle(G4double ekin, + G4int type) + : particleType(type) { + + particleMass = getParticleMass(type); + momentum.resize(4); + momentum[0] = ekin + particleMass; + momentum[3] = sqrt(momentum[0] * momentum[0] - particleMass * particleMass); + momentum[1] = momentum[2] = 0.0; + valid_particle = true; + }; + + void setType(G4int ityp) { + + particleType = ityp; + particleMass = getParticleMass(ityp); + }; + + void setMomentum(const G4std::vector& mom) { + + momentum = mom; + momentum[0] = sqrt(momentum[1] * momentum[1] + momentum[2] * momentum[2] + + momentum[3] * momentum[3] + particleMass * particleMass); + valid_particle = true; + }; + + G4int type() const { + + return particleType; + }; + + G4bool photon() const { + + return particleType == 10; + }; + + G4bool nucleon() const { + + return particleType <= 2; + }; + + G4bool pion() const { + + return particleType == 3 || particleType == 5 || particleType == 7; + }; + + G4bool quasi_deutron() const { + + return particleType > 100; + }; + + G4double getMass() const { + + return particleMass; + }; + + G4double getParticleMass() const { + + G4double mass; + + switch(particleType) { + case 1: // proton + mass = 0.93827; + break; + case 2: // neutron + mass = 0.93957; + break; + case 3: // pi+ + mass = 0.13957; + break; + case 5: // pi- + mass = 0.13957; + break; + case 7: // pi0 + mass = 0.13498; + break; + case 10: // photon + mass = 0.0; + break; + case 111: // PP + mass = 0.93827 + 0.93827; + break; + case 112: // PN + mass = 0.93827 + 0.93957; + break; + case 122: // NN + mass = 0.93957 + 0.93957; + break; + default: + G4cout << " uups, unknown particle type " << particleType << G4endl; + mass = 0.; + }; + + return mass; + }; + + G4double getCharge() const { + + G4double charge; + + switch(particleType) { + case 1: // proton + charge = 1.0; + break; + case 2: // neutron + charge = 0.0; + break; + case 3: // pi+ + charge = 1.0; + break; + case 5: // pi- + charge = -1.0; + break; + case 7: // pi0 + charge = 0.0; + break; + case 10: // photon + charge = 0.0; + break; + case 111: // PP + charge = 2.0; + break; + case 112: // PN + charge = 1.0; + break; + case 122: // NN + charge = 0.0; + break; + default: + G4cout << " uups, unknown particle type " << particleType << G4endl; + charge = 0.0; + }; + + return charge; + }; + + G4double getParticleMass(G4int type) const { + + G4double mass; + + switch(type) { + case 1: // proton + mass = 0.93827; + break; + case 2: // neutron + mass = 0.93957; + break; + case 3: // pi+ + mass = 0.13957; + break; + case 5: // pi- + mass = 0.13957; + break; + case 7: // pi0 + mass = 0.13498; + break; + case 10: // photon + mass = 0.0; + break; + case 111: // PP + mass = 0.93827 + 0.93827; + break; + case 112: // PN + mass = 0.93827 + 0.93957; + break; + case 122: // NN + mass = 0.93957 + 0.93957; + break; + default: + G4cout << " uups, unknown particle type " << type << G4endl; + mass = 0.0; + }; + + return mass; + }; + + G4double getKineticEnergy() const { + + return momentum[0] - particleMass; + }; + + G4double getEnergy() const { + + return momentum[0]; + }; + + G4bool valid() const { + + return valid_particle; + }; + + virtual void printParticle() const { + + G4InuclParticle::printParticle(); + + G4cout << " Particle: type " << particleType << " mass " << particleMass << + " ekin " << getKineticEnergy() << G4endl; + }; + +private: + + G4int particleType; + + G4double particleMass; + + G4bool valid_particle; + +}; + +#endif // G4INUCL_ELEMENTARY_PARTICLE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh new file mode 100644 index 0000000000..c55c9871f3 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh @@ -0,0 +1,171 @@ +// +// ******************************************************************** +// * 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 G4INUCL_NUCLEI_HH +#define G4INUCL_NUCLEI_HH + +#ifndef G4INUCL_PARTICLE_HH +#include "G4InuclParticle.hh" +#endif +#include "G4ExitonConfiguration.hh" +#include "G4InuclSpecialFunctions.hh" + +using namespace G4InuclSpecialFunctions; + +class G4InuclNuclei : public G4InuclParticle { + +public: + + G4InuclNuclei() {}; + + G4InuclNuclei(G4double a, + G4double z) + : A(a), + Z(z) { + + setNucleiMass(); + exitationEnergy = 0.0; + }; + + G4InuclNuclei(const G4std::vector& mom, + G4double a, + G4double z) + : G4InuclParticle(mom), + A(a), + Z(z) { + + setNucleiMass(); + exitationEnergy = 0.0; + }; + + G4InuclNuclei(G4double ekin, + G4double a, + G4double z) + : A(a), + Z(z) { + + setNucleiMass(); + G4std::vector mom(4, 0.0); + mom[0] = ekin + nucleiMass; + mom[3] = sqrt(mom[0] * mom[0] - nucleiMass * nucleiMass); + G4InuclParticle::setMomentum(mom); + exitationEnergy = 0.0; + }; + + void setA(G4double a) { + + A = a; + }; + + void setZ(G4double z) { + + Z = z; + }; + + void setExitationEnergy(G4double e) { + + exitationEnergy = e; + }; + + void setEnergy() { + + momentum[0] = sqrt(momentum[1] * momentum[1] + momentum[2] * momentum[2] + + momentum[3] * momentum[3] + nucleiMass * nucleiMass); + }; + + void setNucleiMass() { + + nucleiMass = 0.93827 * Z + 0.93957 * (A - Z) - 0.001 * bindingEnergy(A, Z); + }; + + void setExitonConfiguration(const G4ExitonConfiguration& config) { + + theExitonConfiguration = config; + }; + + G4double getA() const { + + return A; + }; + + G4double getZ() const { + + return Z; + }; + + G4double getExitationEnergy() const { + + return exitationEnergy; + }; + + G4double getExitationEnergyInGeV() const { + + return 0.001 * exitationEnergy; + }; + + G4ExitonConfiguration getExitonConfiguration() const { + + return theExitonConfiguration; + }; + + G4double getMass() const { + + return nucleiMass; + }; + + G4double getKineticEnergy() const { + + return momentum[0] - nucleiMass; + }; + + G4double getNucleiMass(G4double a, + G4double z) const { + + return 0.93827 * z + 0.93957 * (a - z) - 0.001 * bindingEnergy(a, z); + }; + + virtual void printParticle() const { + + G4cout << " A " << A << " Z " << Z << " mass " << nucleiMass << + " Eex (MeV) " << exitationEnergy << G4endl; + + if(momentum.size() == 4) + G4cout << " Px " << momentum[1] << " Py " << momentum[2] << " Pz " << + momentum[3] << " E " << momentum[0] << G4endl; + }; + +private: + + G4double A; + G4double Z; + G4double exitationEnergy; + G4double nucleiMass; + G4ExitonConfiguration theExitonConfiguration; + +}; + +#endif // G4INUCL_NUCLEI_HH + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh new file mode 100644 index 0000000000..363d586d6c --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.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. * +// ******************************************************************** +#ifndef G4INUCL_PARTICLE_HH +#define G4INUCL_PARTICLE_HH + +#ifndef GLOB +#include "globals.hh" +#endif + +#include "g4std/iostream" +#include "g4std/vector" + +class G4InuclParticle { + +public: + + G4InuclParticle() {}; + + virtual ~G4InuclParticle() { }; + + G4InuclParticle(const G4std::vector& mom) { + + setMomentum(mom); + }; + + void setMomentum(const G4std::vector& mom) { + + momentum = mom; + }; + + G4std::vector getMomentum() const { + + return momentum; + }; + + G4double getMomModule() const { + + return sqrt(momentum[1] * momentum[1] + + momentum[2] * momentum[2] + + momentum[3] * momentum[3]); + }; + + virtual void printParticle() const { + + G4cout << " px " << momentum[1] << " py " << momentum[2] << + " pz " << momentum[3] << + " pmod " << sqrt(momentum[1] * momentum[1] + + momentum[2] * momentum[2] + + momentum[3] * momentum[3]) + << " E " << momentum[0] << G4endl; + }; + +protected: + + G4std::vector momentum; + +}; + +#endif // G4INUCL_PARTICLE_HH + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh new file mode 100644 index 0000000000..7dbcd7984a --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.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. * +// ******************************************************************** +#ifndef G4INUCL_SPECIAL_FUNC_HH +#define G4INUCL_SPECIAL_FUNC_HH + +#include "globals.hh" +#include +#include "g4std/algorithm" +#include "g4std/vector" + + +namespace G4InuclSpecialFunctions { + + G4double bindingEnergyExact(G4double A, + G4double Z); + + G4double bindingEnergyKummel(G4double A, + G4double Z); + + G4double bindingEnergy(G4double A, + G4double Z); + + G4double bindingEnergyAsymptotic(G4double A, + G4double Z); + + G4double FermiEnergy(G4double A, + G4double Z, + G4int ntype); + + G4std::pair, G4std::vector > paraMaker(G4double Z); + + G4std::pair paraMakerTruncated(G4double Z); + + G4double getAL(G4double A); + + G4double csNN(G4double e); + + G4double csPN(G4double e); + + G4double inuclRndm(); + + G4double randomGauss(G4double sigma); + + G4double randomPHI(); + + G4std::pair randomCOS_SIN(); + + G4double nucleiLevelDensity(G4double a); + + G4std::vector generateWithFixedTheta(G4double ct, + G4double p); +} +#endif diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh b/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh new file mode 100644 index 0000000000..ced163d66d --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * 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 G4LORENTZ_CONVERTOR_HH +#define G4LORENTZ_CONVERTOR_HH + +#ifndef GLOB +#include "globals.hh" +#endif + +#include "g4std/vector" + +class G4LorentzConvertor { + +public: + + G4LorentzConvertor(); + + G4LorentzConvertor(const G4std::vector& bmom, + G4double bmass, + const G4std::vector& tmom, + G4double tmass) { + + setBullet(bmom, bmass); + setTarget(tmom, tmass); + degenerated = false; + }; + + void setBullet(const G4std::vector& bmom, + G4double bmass) { + + bullet_mom = bmom; + bullet_mass = bmass; + // G4cout << " bullet: e " << bmom[0] << " mass " << bmass << G4endl; + }; + + void setTarget(const G4std::vector& tmom, + G4double tmass) { + + target_mom = tmom; + target_mass = tmass; + // G4cout << " target: e " << tmom[0] << " mass " << tmass << G4endl; + }; + + void toTheCenterOfMass(); + + void toTheTargetRestFrame(); + + G4std::vector backToTheLab(const G4std::vector& mom) const; + + G4double getKinEnergyInTheTRS() const { + + G4double pv = bullet_mom[1] * target_mom[1] + + bullet_mom[2] * target_mom[2] + + bullet_mom[3] * target_mom[3]; + G4double ekin_trf = (target_mom[0] * + bullet_mom[0] - pv) / target_mass - bullet_mass; + return ekin_trf; + }; + + G4double getTotalSCMEnergy() const { + + return ecm_tot; + }; + + G4double getSCMMomentum() const { + + return pscm; + }; + + G4double getTRSMomentum() const { + + return plab; + }; + + G4std::vector rotate(const G4std::vector mom) const; + + G4std::vector rotate(const G4std::vector mom1, + const G4std::vector mom) const; + + G4bool reflectionNeeded() const; + + G4bool trivial() const { + return degenerated; + }; + +private: +G4int verboseLevel; + G4std::vector bullet_mom; + G4double bullet_mass; + + G4std::vector target_mom; + G4double target_mass; + + G4std::vector velocity; + + G4std::vector scm_momentum; + + G4double ecm_tot; + + G4double pscm; + + G4double plab; + + G4double gamma; + + G4double v2; + + G4double ga; + + G4double gb; + + G4double gbpp; + + G4double gapp; + + G4bool degenerated; +}; + +#endif // G4LORENTZ_CONVERTOR_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh new file mode 100644 index 0000000000..d02914305f --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh @@ -0,0 +1,49 @@ +// +// ******************************************************************** +// * 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 G4NON_EQUILIBRIUM_EVAPORATOR_HH +#define G4NON_EQUILIBRIUM_EVAPORATOR_HH + +#include "G4Collider.hh" +#include "G4InuclSpecialFunctions.hh" + +using namespace G4InuclSpecialFunctions; + +class G4NonEquilibriumEvaporator : public G4Collider { + +public: + + G4NonEquilibriumEvaporator(); + + virtual G4CollisionOutput collide(G4InuclParticle* bullet, + G4InuclParticle* target); + +private: +G4int verboseLevel; + G4double getMatrixElement(G4double A) const; + + G4double getE0(G4double A) const; + + G4double getParLev(G4double A, G4double Z) const; + +}; + +#endif // G4NON_EQUILIBRIUM_EVAPORATOR_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh new file mode 100644 index 0000000000..2ebac488dd --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh @@ -0,0 +1,277 @@ +// +// ******************************************************************** +// * 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 G4NUCL_WATCHER_HH +#define G4NUCL_WATCHER_HH + +#ifndef GLOB +#include "globals.hh" +#endif + +#include "g4std/algorithm" +#include "g4std/vector" +#include + +class G4NuclWatcher { + +public: + + G4NuclWatcher(G4double z, + G4std::vector expa, + G4std::vector expcs, + G4std::vector experr, + G4bool check, + G4bool nucl) + : nuclz(z), + checkable(check), + nucleable(nucl) { + + exper_as = expa; + exper_cs = expcs; + exper_err = experr; + }; + + void watch(G4double a, + G4double z) { + + const G4double small = 0.001; + + if(fabs(z - nuclz) < small) { + G4bool here = false; + G4int simulatedAsSize = simulated_as.size(); + for(G4int i = 0; i < simulatedAsSize; i++) { + + if(fabs(simulated_as[i] - a) < small) { + simulated_cs[i] += 1.0; + here = true; + break; + }; + }; + if(!here) { + simulated_as.push_back(a); + simulated_cs.push_back(1.0); + }; + }; + }; + + void setInuclCs(G4double csec, + G4int nev) { + G4int simulatedAsSize = simulated_as.size(); + for(G4int i = 0; i < simulatedAsSize ; i++) { + double err = sqrt(simulated_cs[i]) / simulated_cs[i]; + + simulated_prob.push_back(simulated_cs[i] / nev); + simulated_cs[i] *= csec / nev; + simulated_errors.push_back(simulated_cs[i] * err); + }; + }; + + G4double getChsq() const { + + return izotop_chsq; + }; + + G4std::pair getAverageRatio() const { + + return G4std::pair(average_ratio, aver_rat_err); + }; + + G4std::pair getExpCs() const { + + G4double cs = 0.0; + G4double err = 0.0; + + G4int experAsSize = exper_as.size(); + for(G4int iz = 0; iz < experAsSize; iz++) { + cs += exper_cs[iz]; + err += exper_err[iz]; + }; + + return G4std::pair(cs, err); + }; + + G4bool to_check() const { + + return checkable; + }; + + G4bool look_forNuclei() const { + + return nucleable; + }; + + G4std::pair getInuclCs() const { + + G4double cs = 0.0; + G4double err = 0.0; + G4int simulatedAsSize = simulated_as.size(); + for(G4int iz = 0; iz < simulatedAsSize; iz++) { + cs += simulated_cs[iz]; + err += simulated_errors[iz]; + }; + + return G4std::pair(cs, err); + }; + + void print() { + + const G4double small = 0.001; + + G4cout << G4endl << " ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " + << G4endl; + G4cout << " **** izotop Z **** " << nuclz << G4endl; + + izotop_chsq = 0.0; + average_ratio = 0.0; + aver_rat_err = 0.0; + G4double exp_cs = 0.0; + G4double exp_cs_err = 0.0; + G4double inucl_cs = 0.0; + G4double inucl_cs_err = 0.0; + G4std::vector not_used(simulated_cs.size(), true); + G4int nmatched = exper_as.size(); + G4int nused = simulated_cs.size(); + G4double lhood = 0.0; + G4int experAsSize = exper_as.size(); + for(G4int iz = 0; iz < experAsSize; iz++) { + G4double a = exper_as[iz]; + + exp_cs += exper_cs[iz]; + exp_cs_err += exper_err[iz]; + + G4bool found = false; + G4int simulatedAsSize = simulated_as.size(); + for(G4int i = 0; i < simulatedAsSize; i++) { + + if(fabs(simulated_as[i] - a) < small) { + G4double rat = simulated_cs[i] / exper_cs[iz]; + + lhood += log10(rat) * log10(rat); + + G4double rat_err = sqrt(simulated_errors[i] * simulated_errors[i] + + exper_err[iz] * exper_err[iz] * rat * rat) / exper_cs[iz]; + average_ratio += rat; + aver_rat_err += rat_err; + + G4cout << " A " << a << " exp.cs " << exper_cs[iz] << " err " << + exper_err[iz] << G4endl << + " sim. cs " << simulated_cs[i] << " err " << simulated_errors[i] << G4endl + << " ratio " << rat << " err " << rat_err << G4endl; + G4cout << " simulated production rate " << simulated_prob[i] << G4endl; + + not_used[i] = false; + izotop_chsq += (rat - 1.0) * (rat - 1.0) / rat_err / rat_err; + found = true; + nused--; + break; + }; + }; + if(!found) { + G4cout << " not found exper.: A " << a << " exp.cs " << exper_cs[iz] + << " err " << exper_err[iz] << G4endl; + } + else { + nmatched--; + }; + }; + + G4cout << " not found in simulations " << nmatched << G4endl; + G4cout << " not found in exper: " << nused << G4endl; + G4int simulatedAsSize = simulated_as.size(); + for(G4int i = 0; i < simulatedAsSize; i++) { + inucl_cs += simulated_cs[i]; + inucl_cs_err += simulated_errors[i]; + + if(not_used[i]) + G4cout << " extra simul.: A " << simulated_as[i] << + " sim. cs " << simulated_cs[i] << " err " << simulated_errors[i] << G4endl; + G4cout << " simulated production rate " << simulated_prob[i] << G4endl; + }; + G4int matched = exper_as.size() - nmatched; + + if(matched > 0) { + aver_lhood = lhood; + aver_matched = matched; + lhood = pow(10.0, sqrt(lhood / matched)); + + G4cout << " matched " << matched << " CHSQ " << sqrt(izotop_chsq) / matched + << G4endl + << " raw chsq " << izotop_chsq << G4endl + << " average ratio " << average_ratio / matched + << " err " << aver_rat_err / matched << G4endl + << " lhood " << lhood << G4endl; + } + else { + izotop_chsq = 0.0; + aver_lhood = 0.0; + }; + + G4cout << " exper. cs " << exp_cs << " err " << exp_cs_err << G4endl + << " inucl. cs " << inucl_cs << " err " << inucl_cs_err << G4endl; + G4cout << " ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " << G4endl; + }; + + G4double getLhood() const { + + return aver_lhood; + }; + + G4double getNmatched() const { + + return aver_matched; + }; + +private: + + G4double nuclz; + + G4double izotop_chsq; + + G4double average_ratio; + + G4double aver_rat_err; + + G4double aver_lhood; + + G4double aver_matched; + + G4std::vector exper_as; + + G4std::vector exper_cs; + + G4std::vector exper_err; + + G4std::vector simulated_as; + + G4std::vector simulated_cs; + + G4std::vector simulated_errors; + + G4std::vector simulated_prob; + + G4bool checkable; + + G4bool nucleable; + +}; + +#endif // G4NUCL_WATCHER_HH + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh new file mode 100644 index 0000000000..2b8dc3b8de --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh @@ -0,0 +1,194 @@ +// +// ******************************************************************** +// * 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 G4NUCLEI_MODEL_HH +#define G4NUCLEI_MODEL_HH + +//#include "G4InuclNuclei.hh" + +#ifndef G4INUCL_ELEMENTARY_PARTICLE_HH +#include "G4InuclElementaryParticle.hh" +#endif +#include "G4CascadParticle.hh" +#include "G4InuclSpecialFunctions.hh" +#include "G4CascadSpecialFunctions.hh" +#include "G4ElementaryParticleCollider.hh" + +#include "g4std/vector" + +class G4InuclNuclei; + +using namespace G4InuclSpecialFunctions; +using namespace G4CascadSpecialFunctions; + +typedef G4std::pair partner; +typedef G4std::vector partners; + +class G4NucleiModel { + +public: + + G4NucleiModel(); + + G4NucleiModel(G4InuclNuclei* nuclei) { + + generateModel(nuclei->getA(), nuclei->getZ()); + }; + + void generateModel(G4double a, + G4double z); + + void reset() { + + neutronNumberCurrent = neutronNumber; + protonNumberCurrent = protonNumber; + }; + + void printModel() const; + + G4double getDensity(G4int ip, + G4int izone) const { + + return nucleon_densities[ip - 1][izone]; + }; + + G4double getFermiMomentum(G4int ip, + G4int izone) const { + + return fermi_momenta[ip - 1][izone]; + }; + + G4double getFermiKinetic(G4int ip, + G4int izone) const { + + G4double ekin = 0.0; + + if(ip < 3 && izone < number_of_zones) { + G4double pf = fermi_momenta[ip - 1][izone]; + G4double mass = ip == 1 ? 0.93827 : 0.93957; + + ekin = sqrt(pf * pf + mass * mass) - mass; + }; + + return ekin; + }; + + G4double getPotential(G4int ip, + G4int izone) const { + + G4int ip0 = ip < 3 ? ip - 1 : 2; + + return izone < number_of_zones ? zone_potentials[ip0][izone] : 0.0; + }; + + G4std::vector + generateParticleFate(G4CascadParticle& cparticle, + G4ElementaryParticleCollider* theElementaryParticleCollider); + + G4double getNumberOfNeutrons() const { + + return neutronNumberCurrent; + }; + + G4double getNumberOfProtons() const { + + return protonNumberCurrent; + }; + + G4bool empty() const { + + return neutronNumberCurrent < 1.0 && protonNumberCurrent < 1.0; + }; + + G4bool stillInside(const G4CascadParticle& cparticle) { + + return cparticle.getCurrentZone() < number_of_zones; + }; + + G4CascadParticle initializeCascad(G4InuclElementaryParticle* particle); + + G4std::pair, G4std::vector > initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target); + + G4std::pair getTypesOfNucleonsInvolved() const { + return G4std::pair(current_nucl1, current_nucl2); + }; + G4bool worthToPropagate(const G4CascadParticle& cparticle) const; + + G4InuclElementaryParticle generateNucleon(G4int type, + G4int zone) const; + +private: +G4int verboseLevel; + G4bool passFermi(const G4std::vector& particles, + G4int zone); + + void boundaryTransition(G4CascadParticle& cparticle); + + G4InuclElementaryParticle generateQuasiDeutron(G4int type1, + G4int type2, + G4int zone) const; + + partners generateInteractionPartners(G4CascadParticle& cparticle) const; + + G4double volNumInt(G4double r1, + G4double r2, + G4double cu, + G4double d1) const; + + G4double volNumInt1(G4double r1, + G4double r2, + G4double cu2) const; + + G4double getRatio(G4int ip) const; + + G4std::vector > nucleon_densities; + + G4std::vector > zone_potentials; + + G4std::vector > fermi_momenta; + + G4std::vector zone_radii; + + G4std::vector binding_energies; + + G4double nuclei_radius; + + G4int number_of_zones; + + G4double A; + + G4double Z; + + G4double neutronNumber; + + G4double protonNumber; + + G4double neutronNumberCurrent; + + G4double protonNumberCurrent; + + G4int current_nucl1; + + G4int current_nucl2; + +}; + +#endif // G4NUCLEI_MODEL_HH diff --git a/examples/extended/biasing/B08/include/B08DetectorConstruction.hh b/source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh similarity index 74% rename from examples/extended/biasing/B08/include/B08DetectorConstruction.hh rename to source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh index 887ada6730..cb76054217 100644 --- a/examples/extended/biasing/B08/include/B08DetectorConstruction.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh @@ -19,26 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B08DetectorConstruction.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#ifndef G4PARTICLE_LARGER_EKIN_HH +#define G4PARTICLE_LARGER_EKIN_HH -#ifndef B08DetectorConstruction_hh -#define B08DetectorConstruction_hh B08DetectorConstruction_hh +#ifndef G4INUCL_ELEMENTARY_PARTICLE_HH +#include "G4InuclElementaryParticle.hh" +#endif -class G4VPhysicalVolume; +class G4ParticleLargerEkin { -#include "G4VUserDetectorConstruction.hh" - -class B08DetectorConstruction : public G4VUserDetectorConstruction -{ public: - B08DetectorConstruction(); - ~B08DetectorConstruction(); - G4VPhysicalVolume* Construct(); + G4bool operator() (const G4InuclElementaryParticle& part1, + const G4InuclElementaryParticle& part2) { + + return part1.getKineticEnergy() >= part2.getKineticEnergy(); + // return part1.getEnergy() >= part2.getEnergy(); + // return part1.getMomModule() >= part2.getMomModule(); + }; + }; -#endif +#endif // G4PARTICLE_LARGER_EKIN_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh new file mode 100644 index 0000000000..d2401b42fd --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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 G4REGIONMODEL +#define G4REGIONMODEL + +#include "G4ios.hh" +#include "g4std/vector" +#include +#include "globals.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +//#include "G4NucleusModel.hh" + + +typedef G4std::vector::const_iterator iterator; + +class G4RegionModel //:public G4VRegionModel +{ +public: + G4RegionModel(const G4int numberOfLayers, const G4int A, const G4int Z); + ~G4RegionModel(); + + //instead of A and Z outer radius of the nucleus? + //void Init(const G4int numberOfLayers, const G4int A, const G4int Z); + G4double GetDensity(G4double radius); + G4double GetPotentialEnergy(G4double r, G4int particle); + G4double GetMaximumNucleonMomentum(G4double radius, G4int nucleon); + // G4double NumberOfRegions(); + +private: + + G4int massNumber; + G4int protonNumber; + G4std::vector radius; //contains the outer radiuses of the shells + G4std::vector density; + G4std::vector protonFermiEnergy; + G4std::vector neutronFermiEnergy; + G4std::vector protonFermiMomentum; + G4std::vector neutronFermiMomentum; + + G4std::vector protonPotentialEnergy; + G4std::vector neutronPotentialEnergy; + + static const G4double radius0; + static const G4double BE; + //static const G4double pi = 3.141592; + + G4double GetFermiMomentum(G4double density, G4double mass); + G4double GetFermiEnergy(G4double density, G4double mass); +}; +#endif + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh b/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh new file mode 100644 index 0000000000..2e3ef81fb7 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh @@ -0,0 +1,46 @@ +// +// ******************************************************************** +// * 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 G4WATCHER_GUN_HH +#define G4WATCHER_GUN_HH + +#include "G4NuclWatcher.hh" +#include "g4std/vector" + +class G4WatcherGun { + +public: + + G4WatcherGun(); + void setWatchers(); + + G4std::vector getWatchers() const { + return watchers; + }; + +private: + + G4int verboseLevel; + G4std::vector watchers; + +}; + +#endif // G4WATCHER_GUN_HH diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc b/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc new file mode 100644 index 0000000000..cc3370c34e --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc @@ -0,0 +1,351 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include "G4Analyser.hh" +#include + +G4Analyser::G4Analyser() + :verboseLevel(1) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::G4Analyser" << G4endl; + } + + eventNumber = 0.0; + averageMultiplicity = 0.0; + averageNucleonKinEnergy = 0.0; + averageProtonKinEnergy = 0.0; + averageNeutronKinEnergy = 0.0; + averagePionKinEnergy = 0.0; + averageProtonNumber = 0.0; + averageNeutronNumber = 0.0; + averagePionNumber = 0.0; + averageExitationEnergy = 0.0; + averageNucleiFragments = 0.0; + averagePionPl = 0.0; + averagePionMin = 0.0; + averagePion0 = 0.0; + averageA = 0.0; + averageZ = 0.0; + + withNuclei = false; + fissy_prob = 0.0; +}; + +void G4Analyser::setInelCsec(G4double csec, + G4bool withn) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::setInelCsec" << G4endl; + } + + inel_csec = csec; // mb + withNuclei = withn; + + if (verboseLevel > 3) { + G4cout << " total inelastic " << inel_csec << G4endl; + } +} + +void G4Analyser::setWatchers(const G4std::vector& watchers) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::setWatchers" << G4endl; + } + + ana_watchers = watchers; + if (verboseLevel > 3) { + G4cout << " watchers set " << watchers.size() << G4endl; + } +}; + +void G4Analyser::try_watchers(G4double a, + G4double z, + G4bool if_nucl) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::try_watchers" << G4endl; + } + + for (G4int iw = 0; iw < G4int(ana_watchers.size()); iw++) { + + if (if_nucl) { + + if (ana_watchers[iw].look_forNuclei()) ana_watchers[iw].watch(a, z); + + } else { + + if (!ana_watchers[iw].look_forNuclei()) ana_watchers[iw].watch(a, z); + }; + }; +}; + + +void G4Analyser::analyse(const G4CollisionOutput& output) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::analyse" << G4endl; + } + + if (withNuclei) { + G4std::vector nucleus = output.getNucleiFragments(); + + if (nucleus.size() >= 0) { + G4int nbig = 0; + averageNucleiFragments += nucleus.size(); + + for (G4int in = 0; in < G4int(nucleus.size()); in++) { + averageExitationEnergy += nucleus[in].getExitationEnergy(); + + G4double a = nucleus[in].getA(); + G4double z = nucleus[in].getZ(); + + if (in == 0) { + averageA += a; + averageZ += z; + }; + + if (a > 10.0) nbig++; + try_watchers(a, z, true); + }; + + if (nbig > 1) fissy_prob += 1.0; + eventNumber += 1.0; + G4std::vector particles = output.getOutgoingParticles(); + averageMultiplicity += particles.size(); + + for (G4int i = 0; i < G4int(particles.size()); i++) { + G4double ap = 0.0; + G4double zp = 0.0; + + if (particles[i].nucleon()) { + averageNucleonKinEnergy += particles[i].getKineticEnergy(); + + if (particles[i].type() == 1) { + zp = 1.0; + ap = 1.0; + averageProtonNumber += 1.0; + averageProtonKinEnergy += particles[i].getKineticEnergy(); + + } else { + ap = 1.0; + zp = 0.0; + averageNeutronNumber += 1.0; + averageNeutronKinEnergy += particles[i].getKineticEnergy(); + }; + + } else if (particles[i].pion()) { + averagePionKinEnergy += particles[i].getKineticEnergy(); + averagePionNumber += 1.0; + ap = 0.0; + + if (particles[i].type() == 3) { + zp = 1.0; + averagePionPl += 1.0; + + } else if (particles[i].type() == 5) { + zp = -1.0; + averagePionMin += 1.0; + + } else if (particles[i].type() == 7) { + zp = 0.0; + averagePion0 += 1.0; + }; + }; + try_watchers(ap, zp, false); + }; + }; + + } else { + eventNumber += 1.0; + G4std::vector particles = output.getOutgoingParticles(); + averageMultiplicity += particles.size(); + + for (G4int i = 0; i < G4int(particles.size()); i++) { + + if (particles[i].nucleon()) { + averageNucleonKinEnergy += particles[i].getKineticEnergy(); + + if (particles[i].type() == 1) { + averageProtonNumber += 1.0; + averageProtonKinEnergy += particles[i].getKineticEnergy(); + + } else { + averageNeutronNumber += 1.0; + averageNeutronKinEnergy += particles[i].getKineticEnergy(); + }; + + } else if (particles[i].pion()) { + averagePionKinEnergy += particles[i].getKineticEnergy(); + averagePionNumber += 1.0; + }; + }; + }; +}; + +void G4Analyser::printResultsSimple() { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::printResultsSimple" << G4endl; + } + + G4cout << " Number of events " << int(eventNumber + 0.1) << G4endl + << " average multiplicity " << averageMultiplicity / eventNumber << G4endl + << " average proton number " << averageProtonNumber / eventNumber << G4endl + << " average neutron number " << averageNeutronNumber / eventNumber << G4endl + << " average nucleon Ekin " << averageNucleonKinEnergy / + (averageProtonNumber + averageNeutronNumber) << G4endl + << " average proton Ekin " << averageProtonKinEnergy / (averageProtonNumber + + 1.0e-10) << G4endl + << " average neutron Ekin " << averageNeutronKinEnergy / (averageNeutronNumber + + 1.0e-10) << G4endl + << " average pion number " << averagePionNumber / eventNumber << G4endl + << " average pion Ekin " << averagePionKinEnergy / (averagePionNumber + + 1.0e-10) << G4endl; + if (withNuclei) { + G4cout + << " average Exitation Energy " << + averageExitationEnergy / averageNucleiFragments << G4endl + << " average num of fragments " << averageNucleiFragments / eventNumber << G4endl; + G4cout << " fission prob. " << fissy_prob / eventNumber << " c.sec " << + inel_csec * fissy_prob / eventNumber << G4endl; + }; +}; + +void G4Analyser::printResults() { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::printResults" << G4endl; + } + + G4cout << " Number of events " << int(eventNumber + 0.1) << G4endl + << " average multiplicity " << averageMultiplicity / eventNumber << G4endl + << " average proton number " << averageProtonNumber / eventNumber << G4endl + << " average neutron number " << averageNeutronNumber / eventNumber << G4endl + << " average nucleon Ekin " << averageNucleonKinEnergy / + (averageProtonNumber + averageNeutronNumber) << G4endl + << " average proton Ekin " << averageProtonKinEnergy / (averageProtonNumber + + 1.0e-10) << G4endl + << " average neutron Ekin " << averageNeutronKinEnergy / (averageNeutronNumber + + 1.0e-10) << G4endl + << " average pion number " << averagePionNumber / eventNumber << G4endl + << " average pion Ekin " << averagePionKinEnergy / (averagePionNumber + + 1.0e-10) << G4endl + << " average pi+ " << averagePionPl / eventNumber << G4endl + << " average pi- " << averagePionMin / eventNumber << G4endl + << " average pi0 " << averagePion0 / eventNumber << G4endl; + + if (withNuclei) { + + G4cout + << " average A " << averageA / eventNumber << G4endl + << " average Z " << averageZ / eventNumber << G4endl + << " average Exitation Energy " << + averageExitationEnergy / averageNucleiFragments << G4endl + << " average num of fragments " << averageNucleiFragments / eventNumber << G4endl; + G4cout << " fission prob. " << fissy_prob / eventNumber << " c.sec " << + inel_csec * fissy_prob / eventNumber << G4endl; + handleWatcherStatistics(); + }; +}; + +void G4Analyser::handleWatcherStatistics() { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::handleWatcherStatistics" << G4endl; + } + + // const G4double small = 1.0e-10; + + if (verboseLevel > 3) { + G4cout << " >>>Izotop analysis:" << G4endl; + }; + + G4double fgr = 0.0; + G4double averat = 0.0; + G4double ave_err = 0.0; + G4double gl_chsq = 0.0; + G4double tot_exper = 0.0; + G4double tot_exper_err = 0.0; + G4double tot_inucl = 0.0; + G4double tot_inucl_err = 0.0; + G4double checked = 0.0; + + for (G4int iw = 0; iw < G4int(ana_watchers.size()); iw++) { + ana_watchers[iw].setInuclCs(inel_csec, eventNumber); + ana_watchers[iw].print(); + + if (ana_watchers[iw].to_check()) { + G4std::pair rat_err = ana_watchers[iw].getAverageRatio(); + averat += rat_err.first; + ave_err += rat_err.second; + gl_chsq += ana_watchers[iw].getChsq(); + G4std::pair cs_err = ana_watchers[iw].getExpCs(); + tot_exper += cs_err.first; + tot_exper_err += cs_err.second; + G4std::pair inucl_cs_err = ana_watchers[iw].getInuclCs(); + tot_inucl += inucl_cs_err.first; + tot_inucl_err += inucl_cs_err.second; + G4double iz_checked = ana_watchers[iw].getNmatched(); + + if (iz_checked > 0.0) { + fgr += ana_watchers[iw].getLhood(); + checked += iz_checked; + }; + }; + }; + + if (checked > 0.0) { + gl_chsq = sqrt(gl_chsq) / checked; + averat /= checked; + ave_err /= checked; + fgr = pow(10.0, sqrt(fgr / checked)); + }; + + if (verboseLevel > 3) { + G4cout << " total exper c.s. " << tot_exper << " err " << tot_exper_err << + " tot inucl c.s. " << tot_inucl << " err " << tot_inucl_err << G4endl; + G4cout << " checked total " << checked << " lhood " << fgr << G4endl + << " average ratio " << averat << " err " << ave_err << G4endl + << " global chsq " << gl_chsq << G4endl; + } +} + +void G4Analyser::printResultsNtuple() { + + if (verboseLevel > 3) { + G4cout << " >>> G4Analyser::printResultsNtuple" << G4endl; + } + + // Create one line of ACII data. + // Several runs should create ntuple for data-analysis + G4cout << int(eventNumber + 0.1) << " " << + averageMultiplicity / eventNumber << " " << + averageProtonNumber / eventNumber << " " << + averageNeutronNumber / eventNumber << " " << + averageNucleonKinEnergy / (averageProtonNumber + averageNeutronNumber) << " " << + averageProtonKinEnergy / (averageProtonNumber + 1.0e-10) << " " << + averageNeutronKinEnergy / (averageNeutronNumber + 1.0e-10) << " " << + averagePionNumber / eventNumber << " " << + averagePionKinEnergy / (averagePionNumber + 1.0e-10) << G4endl; +}; + + diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc new file mode 100644 index 0000000000..9804ba7898 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc @@ -0,0 +1,29 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include "globals.hh" +#include "G4BertiniData.hh" + +//#include "G4Cascade.hh" + +// Initialize static pointer for singleton instance +G4BertiniData* G4BertiniData::theInstance = 0; + diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc new file mode 100644 index 0000000000..810252b0fc --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc @@ -0,0 +1,1412 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4BertiniNucleiModel.hh" +#include "G4LorentzConvertor.hh" +#include "G4CollisionOutput.hh" + +typedef G4std::vector::iterator particleIterator; + +G4BertiniNucleiModel::G4BertiniNucleiModel() + : verboseLevel(2) { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::G4BertiniNucleiModel" << G4endl; + } +}; + +void G4BertiniNucleiModel::generateModel(G4double a, + G4double z) { + verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::generateModel" << G4endl; + } + + const G4double AU = 1.7234; + const G4double cuu = 3.3836; + const G4double one_third = 1.0 / 3.0; + const G4double oneBypiTimes4 = 0.0795775; /// 1 / 4 Pi + const G4double pf_coeff = 1.932; + const G4double pion_vp = 0.007; + const G4double pion_vp_small = 0.007; + const G4double radForSmall = 8.0; /// fermi + const G4double piTimes4thirds = 4.189; /// 4 Pi/3 + const G4double mproton = 0.93827; + const G4double mneutron = 0.93957; + const G4double alfa3[3] = { 0.7, 0.3, 0.01 }; + /// const G4double alfa6[6] = { 0.9, 0.6, 0.4, 0.2, 0.1, 0.05 }; /// Case of six layers. + + A = a; + Z = z; + neutronNumber = a - z; + protonNumber = z; + neutronNumberCurrent = neutronNumber; + protonNumberCurrent = protonNumber; + +/// set binding energies + + G4double dm = bindingEnergy(a, z); + binding_energies.push_back(0.001 * fabs(bindingEnergy(a - 1, z - 1) - dm)); /// for P + binding_energies.push_back(0.001 * fabs(bindingEnergy(a - 1, z) - dm)); /// for N + + G4double CU = cuu * pow(a, one_third); + G4double D1 = CU / AU; + G4double D = exp(-D1); + G4double CU2 = 0.0; + + if (a > 3.5) { /// a > 3 + G4std::vector ur; + G4int icase = 0; + + if (a > 11.5) { /// a > 11 + /// number_of_zones = 6; + number_of_zones = 3; + ur.push_back(-D1); + + for (G4int i = 0; i < number_of_zones; i++) { + /// G4double y = log((1.0 + D) / alfa6[i] - 1.0); + G4double y = log((1.0 + D)/alfa3[i] - 1.0); + zone_radii.push_back(CU + AU * y); + ur.push_back(y); + }; + + } else { + + number_of_zones = 3; + icase = 1; + ur.push_back(0.0); + G4double CU1 = CU * CU; + CU2 = sqrt(CU1 * (1.0 - 1.0 / a) + 6.4); + + for (G4int i = 0; i < number_of_zones; i++) { + G4double y = sqrt(-log(alfa3[i])); + zone_radii.push_back(CU2 * y); + ur.push_back(y); + }; + }; + + G4double tot_vol = 0.0; + G4std::vector v; + G4std::vector v1; + G4int i(0); + + for (i = 0; i < number_of_zones; i++) { + G4double v0; + + if (icase == 0) { + v0 = volNumInt(ur[i], ur[i + 1], CU, D1); + + } else { + + v0 = volNumInt1(ur[i], ur[i + 1], CU2); + }; + + v.push_back(v0); + tot_vol += v0; + v0 = (i == 0 ? pow(zone_radii[i], 3) : pow(zone_radii[i], 3) - + pow(zone_radii[i - 1], 3)); + v1.push_back(v0); + }; + + /// proton + G4double dd0 = 3.0 * z * oneBypiTimes4 / tot_vol; + G4std::vector rod; + G4std::vector pf; + G4std::vector vz; + + for (i = 0; i < number_of_zones; i++) { + G4double rd = dd0 * v[i] / v1[i]; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mproton + binding_energies[0]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + + /// neutron + dd0 = 3.0 * (a - z) * oneBypiTimes4 / tot_vol; + rod.resize(0); + pf.resize(0); + vz.resize(0); + + for (i = 0; i < number_of_zones; i++) { + G4double rd = dd0 * v[i] / v1[i]; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mneutron + binding_energies[1]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + /// pion + G4std::vector vp(number_of_zones, pion_vp); + zone_potentials.push_back(vp); + + } else { /// a < 4 + + number_of_zones = 1; + zone_radii.push_back(radForSmall); + G4double vol = 1.0 / piTimes4thirds / pow(zone_radii[0], 3); + G4std::vector rod; + G4std::vector pf; + G4std::vector vz; + G4int i(0); + + for (i = 0; i < number_of_zones; i++) { + G4double rd = vol; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mproton + binding_energies[0]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + + /// neutron + rod.resize(0); + pf.resize(0); + vz.resize(0); + + for (i = 0; i < number_of_zones; i++) { + G4double rd = vol; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mneutron + binding_energies[1]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + + /// pion + G4std::vector vp(number_of_zones, pion_vp_small); + zone_potentials.push_back(vp); + }; + + nuclei_radius = zone_radii[zone_radii.size() - 1]; +} + +G4double G4BertiniNucleiModel::volNumInt(G4double r1, + G4double r2, + G4double cu, + G4double d1) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::volNumInt" << G4endl; + } + + const G4double au3 = 5.11864; + const G4double epsilon = 1.0e-3; + const G4int itry_max = 1000; + G4double d2 = 2.0 * d1; + G4double dr = r2 - r1; + G4double fi = 0.5 * (r1 * (r1 + d2) / (1.0 + exp(r1)) + r2 * (r2 + d2) / (1.0 + exp(r2))); + G4double fun1 = fi * dr; + G4double fun; + G4double jc = 1; + G4double dr1 = dr; + G4int itry = 0; + + while (itry < itry_max) { + dr *= 0.5; + itry++; + G4double r = r1 - dr; + fi = 0.0; + G4int jc1 = G4int(pow(2.0, jc - 1) + 0.1); + + for (G4int i = 0; i < jc1; i++) { + r += dr1; + fi += r * (r + d2) / (1.0 + exp(r)); + }; + + fun = 0.5 * fun1 + fi * dr; + + if (fabs((fun - fun1) / fun) > epsilon) { + jc++; + dr1 = dr; + fun1 = fun; + + } else { + + break; + + }; + }; + + if (verboseLevel > 2){ + + if (itry == itry_max) G4cout << " volNumInt-> n iter " << itry_max << G4endl; + + } + + return au3 * (fun + d1 * d1 * log((1.0 + exp(-r1)) / (1.0 + exp(-r2)))); +} + +G4double G4BertiniNucleiModel::volNumInt1(G4double r1, + G4double r2, + G4double cu2) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::volNumInt1" << G4endl; + } + + const G4double epsilon = 1.0e-3; + const G4int itry_max = 1000; + G4double dr = r2 - r1; + G4double fi = 0.5 * (r1 * r1 * exp(-r1 * r1) + r2 * r2 * exp(-r2 * r2)); + G4double fun1 = fi * dr; + G4double fun; + G4double jc = 1; + G4double dr1 = dr; + G4int itry = 0; + + while (itry < itry_max) { + dr *= 0.5; + itry++; + G4double r = r1 - dr; + fi = 0.0; + G4int jc1 = G4int(pow(2.0, jc - 1) + 0.1); + + for (G4int i = 0; i < jc1; i++) { + r += dr1; + fi += r * r * exp(-r * r); + }; + + fun = 0.5 * fun1 + fi * dr; + + if (fabs((fun - fun1) / fun) > epsilon) { + jc++; + dr1 = dr; + fun1 = fun; + + } else { + + break; + }; + }; + + if (verboseLevel > 2){ + + if (itry == itry_max) G4cout << " volNumInt1-> n iter " << itry_max << G4endl; + + } + + return pow(cu2, 3) * fun; +} + +void G4BertiniNucleiModel::printModel() const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::printModel" << G4endl; + } + + G4cout << " nuclei model for A " << A << " Z " << Z << G4endl + << " proton binding energy " << binding_energies[0] << + " neutron binding energy " << binding_energies[1] << G4endl + << " Nculei radius " << nuclei_radius << " number of zones " << + number_of_zones << G4endl; + + for (G4int i = 0; i < number_of_zones; i++) + + G4cout << " zone " << i+1 << " radius " << zone_radii[i] << G4endl + << " protons: density " << getDensity(1,i) << " PF " << + getFermiMomentum(1,i) << " VP " << getPotential(1,i) << G4endl + << " neutrons: density " << getDensity(2,i) << " PF " << + getFermiMomentum(2,i) << " VP " << getPotential(2,i) << G4endl + << " pions: VP " << getPotential(3,i) << G4endl; + +}; + +G4InuclElementaryParticle G4BertiniNucleiModel::generateNucleon(G4int type, + G4int zone) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::generateNucleon" << G4endl; + } + + const G4double one_third = 1.0 / 3.0; + ///G4double pmod = getFermiMomentum(type, zone) * pow(inuclRndm(), one_third); + G4double pmod = fermi_momenta[type - 1][zone] * pow(inuclRndm(), one_third); + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double pt = pmod * COS_SIN.second; + mom[1] = pt * cos(FI); + mom[2] = pt * sin(FI); + mom[3] = pmod * COS_SIN.first; + + return G4InuclElementaryParticle(mom, type); +} + +G4InuclElementaryParticle G4BertiniNucleiModel::generateQuasiDeutron(G4int type1, + G4int type2, + G4int zone) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::generateQuasiDeutron" << G4endl; + } + + G4std::vector mom = generateNucleon(type1, zone).getMomentum(); + + G4std::vector mom1 = generateNucleon(type2, zone).getMomentum(); + + G4std::vector dmom(4); + + for(G4int i = 1; i < 4; i++) dmom[i] = mom[i] + mom1[i]; + + G4int dtype = 0; + + if (type1 * type2 == 1) { + dtype = 111; + + } else if(type1 * type2 == 2) { + + dtype = 112; + + } else if(type1 * type2 == 4) { + + dtype = 122; + }; + + return G4InuclElementaryParticle(dmom, dtype); +} + +partners G4BertiniNucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::generateInteractionPartners" << G4endl; + } + + const G4double pi4by3 = 4.1887903; /// 4 Pi / 3 + const G4double small = 1.0e-10; + const G4double huge_num = 50.0; + const G4double pn_spec = 1.0; + ///const G4double pn_spec = 0.5; + ///const G4double young_cut = sqrt(10.0) * 0.1; + ///const G4double young_cut = sqrt(10.0) * 0.5; + ///const G4double young_cut = sqrt(10.0) * 0.45; + const G4double young_cut = sqrt(10.0) * 0.25; + ///const G4double young_cut = sqrt(10.0) * 0.2; + ///const G4double young_cut = 0.0; + + partners thePartners; + + G4int ptype = cparticle.getParticle().type(); + G4int zone = cparticle.getCurrentZone(); + G4double pmass = cparticle.getParticle().getMass(); + G4std::vector pmom = cparticle.getParticle().getMomentum(); + G4double r_in; + G4double r_out; + + if (zone == number_of_zones) { /// particle is outside + r_in = nuclei_radius; + r_out = 0.0; + + } else if (zone == 0) { /// particle is outside core + + r_in = 0.0; + r_out = zone_radii[0]; + + } else { + + r_in = zone_radii[zone - 1]; + r_out = zone_radii[zone]; + }; + + G4double path = cparticle.getPathToTheNextZone(r_in, r_out); + + if (verboseLevel > 2){ + G4cout << " r_in " << r_in << " r_out " << r_out << " path " << path << G4endl; + } + + if (path < -small) { /// something wrong + return thePartners; + + } else if(fabs(path) < small) { /// just on the bounday + + path = 0.0; + + G4InuclElementaryParticle particle; + + thePartners.push_back(partner(particle, path)); + + } else { /// normal case + + G4std::vector particles; + G4LorentzConvertor dummy_convertor; + + dummy_convertor.setBullet(pmom, pmass); + + for (G4int ip = 1; ip < 3; ip++) { + G4InuclElementaryParticle particle = generateNucleon(ip, zone); + + dummy_convertor.setTarget(particle.getMomentum(), particle.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + G4double csec = crossSection(ekin, ptype * ip); + + if (verboseLevel > 2){ + G4cout << " ip " << ip << " ekin " << ekin << " csec " << csec << G4endl; + } + + G4double dens = nucleon_densities[ip - 1][zone]; + G4double rat = getRatio(ip); + /// double rat = 1.0; + G4double pw = -path * dens * csec * rat; + + if (pw < -huge_num) pw = -huge_num; + pw = 1.0 - exp(pw); + + if(verboseLevel > 2){ + G4cout << " pw " << pw << " rat " << rat << G4endl; + } + + G4double spath = path; + + if (inuclRndm() < pw) { + spath = -1.0 / dens / csec / rat * log(1.0 - pw * inuclRndm()); + if (cparticle.young(young_cut, spath)) spath = path; + + if (verboseLevel > 2){ + G4cout << " ip " << ip << " spath " << spath << G4endl; + } + + }; + if (spath < path) thePartners.push_back(partner(particle, spath)); + }; + + if (verboseLevel > 2){ + G4cout << " after nucleons " << thePartners.size() << " path " << path << G4endl; + } + + if (cparticle.getParticle().pion()) { /// absorption possible + G4std::vector qdeutrons; + G4std::vector acsecs; + G4double tot_abs_csec = 0.0; + G4double abs_sec; + G4double vol = pow(zone_radii[zone], 3); + + if(zone > 0) vol -= pow(zone_radii[zone - 1], 3); + vol *= pi4by3; + G4double rat = getRatio(1); + G4double rat1 = getRatio(2); + + G4InuclElementaryParticle ppd = generateQuasiDeutron(1, 1, zone); + + if (ptype == 7 || ptype == 5) { + dummy_convertor.setTarget(ppd.getMomentum(), ppd.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + abs_sec = absorptionCrosSection(ekin, ptype); + abs_sec *= nucleon_densities[0][zone] * nucleon_densities[0][zone]* + rat * rat * vol; + + } else { + + abs_sec = 0.0; + }; + + /// abs_sec = 0.0; + tot_abs_csec += abs_sec; + acsecs.push_back(abs_sec); + qdeutrons.push_back(ppd); + + G4InuclElementaryParticle npd = generateQuasiDeutron(1, 2, zone); + + dummy_convertor.setTarget(npd.getMomentum(), npd.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + abs_sec = absorptionCrosSection(ekin, ptype); + abs_sec *= pn_spec * nucleon_densities[0][zone] * nucleon_densities[1][zone] * + rat * rat1 * vol; + tot_abs_csec += abs_sec; + acsecs.push_back(abs_sec); + qdeutrons.push_back(npd); + + G4InuclElementaryParticle nnd = generateQuasiDeutron(2, 2, zone); + + if (ptype == 7 || ptype == 3) { + dummy_convertor.setTarget(nnd.getMomentum(), nnd.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + abs_sec = absorptionCrosSection(ekin, ptype); + abs_sec *= nucleon_densities[1][zone] * nucleon_densities[1][zone] * + rat1 * rat1 * vol; + + } else { + abs_sec = 0.0; + }; + + /// abs_sec = 0.0; + tot_abs_csec += abs_sec; + acsecs.push_back(abs_sec); + qdeutrons.push_back(nnd); + + if (verboseLevel > 2){ + G4cout << " rod1 " << acsecs[0] << " rod2 " << acsecs[1] + << " rod3 " << acsecs[2] << G4endl; + } + + if (tot_abs_csec > small) { + + G4double pw = -path * tot_abs_csec; + + if (pw < -huge_num) pw = -huge_num; + + pw = 1.0 - exp(pw); + + if (verboseLevel > 2){ + G4cout << " pw " << pw << G4endl; + } + + G4double apath = path; + + if (inuclRndm() < pw) apath = -1.0 / tot_abs_csec * log(1.0 - pw * inuclRndm()); + + if (cparticle.young(young_cut, apath)) apath = path; + + if (verboseLevel > 2){ + G4cout << " apath " << apath << " path " << path << G4endl; + } + + if (apath < path) { /// chose the qdeutron + G4double sl = inuclRndm() * tot_abs_csec; + G4double as = 0.0; + + for (G4int i = 0; i < 3; i++) { + as += acsecs[i]; + + if (sl < as) { + + if (verboseLevel > 2){ + G4cout << " deut type " << i << G4endl; + } + + thePartners.push_back(partner(qdeutrons[i], apath)); + + break; + }; + }; + }; + }; + }; + + if (verboseLevel > 2){ + G4cout << " after deutrons " << thePartners.size() << G4endl; + } + + if (thePartners.size() > 1) { /// sort partners + + for (G4int i = 0; i < G4int(thePartners.size()) - 1; i++) { + for(G4int j = i + 1; j < G4int(thePartners.size()); j++) { + + if (thePartners[i].second > thePartners[j].second) { + G4InuclElementaryParticle particle = thePartners[i].first; + G4double pathi = thePartners[i].second; + thePartners[i] = partner(thePartners[j].first, thePartners[j].second); + thePartners[j] = partner(particle, pathi); + }; + }; + }; + }; + + G4InuclElementaryParticle particle; + + thePartners.push_back(partner(particle, path)); + }; + + return thePartners; +} + +G4std::vector G4BertiniNucleiModel::generateParticleFate(G4CascadParticle& cparticle, + G4ElementaryParticleCollider* theElementaryParticleCollider) { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::generateParticleFate" << G4endl; + } + + G4std::vector outgouing_cparticles; + + partners thePartners = generateInteractionPartners(cparticle); + + if(thePartners.empty()) { /// smth. is wrong -> needs special treatment + + G4cout << " generateParticleFate-> can not be here " << G4endl; + + } else { + + G4int npart = thePartners.size(); + + if (npart == 1) { /// cparticle is on the next zone entry + cparticle.propagateAlongThePath(thePartners[0].second); + cparticle.incrementCurrentPath(thePartners[0].second); + boundaryTransition(cparticle); + outgouing_cparticles.push_back(cparticle); + + if (verboseLevel > 2){ + G4cout << " next zone " << G4endl; + cparticle.print(); + } + + } else { /// there are possible interactions + + G4std::vector old_position = cparticle.getPosition(); + G4InuclElementaryParticle bullet = cparticle.getParticle(); + G4bool no_interaction = true; + G4int zone = cparticle.getCurrentZone(); + + for (G4int i = 0; i < npart - 1; i++) { + + if(i > 0) cparticle.updatePosition(old_position); + + G4InuclElementaryParticle target = thePartners[i].first; + + if (verboseLevel > 2){ + + if (target.quasi_deutron()) + G4cout << " try absorption: target " << target.type() << " bullet " << bullet.type() << G4endl; + } + + G4CollisionOutput output = theElementaryParticleCollider->collide(&bullet, &target); + + if (verboseLevel > 2){ + output.printCollisionOutput(); + } + + G4std::vector outgoing_particles = + + output.getOutgoingParticles(); + if(passFermi(outgoing_particles, zone)) { /// interaction + cparticle.propagateAlongThePath(thePartners[i].second); + + G4std::vector new_position = cparticle.getPosition(); + + for (G4int ip = 0; ip < G4int(outgoing_particles.size()); ip++) + outgouing_cparticles.push_back(G4CascadParticle(outgoing_particles[ip], + new_position, zone, 0.0)); + + no_interaction = false; + current_nucl1 = 0; + current_nucl2 = 0; + +#ifdef CHC_CHECK + G4double out_charge = 0.0; + + for (G4int ip = 0; ip < outgoing_particles.size(); ip++) + out_charge += outgoing_particles[ip].getCharge(); + + G4cout << " multiplicity " << outgoing_particles.size() << + " bul type " << bullet.type() << " targ type " << target.type() << + G4endl << " initial charge " << bullet.getCharge() + target.getCharge() + << " out charge " << out_charge << G4endl; +#endif + + if (verboseLevel > 2){ + G4cout << " partner type " << target.type() << G4endl; + } + + if (target.nucleon()) { + current_nucl1 = target.type(); + + } else { + + if (verboseLevel > 2){ + G4cout << " good absorption " << G4endl; + } + + current_nucl1 = (target.type() - 100) / 10; + current_nucl2 = target.type() - 100 - 10 * current_nucl1; + }; + + if (current_nucl1 == 1) { + protonNumberCurrent -= 1.0; + + } else { + + neutronNumberCurrent -= 1.0; + }; + + if (current_nucl2 == 1) { + protonNumberCurrent -= 1.0; + + } else if(current_nucl2 == 2) { + + neutronNumberCurrent -= 1.0; + }; + + break; + }; + }; + + if (no_interaction) { /// still now interactions + cparticle.updatePosition(old_position); + cparticle.propagateAlongThePath(thePartners[npart - 1].second); + cparticle.incrementCurrentPath(thePartners[npart - 1].second); + boundaryTransition(cparticle); + outgouing_cparticles.push_back(cparticle); + }; + }; + }; + + return outgouing_cparticles; +} + +G4bool G4BertiniNucleiModel::passFermi(const G4std::vector& particles, + G4int zone) { + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::passFermi" << G4endl; + } + + for (G4int i = 0; i < G4int(particles.size()); i++) { + + if (particles[i].nucleon()) { + + if (verboseLevel > 2){ + G4cout << " type " << particles[i].type() << " p " << particles[i].getMomModule() + << " pf " << fermi_momenta[particles[i].type() - 1][zone] << G4endl; + } + + if (particles[i].getMomModule() < fermi_momenta[particles[i].type() - 1][zone]) { + + if (verboseLevel > 2) { + G4cout << " rejected by fermi: type " << particles[i].type() << + " p " << particles[i].getMomModule() << G4endl; + } + + return false; + }; + }; + }; + return true; +} + +void G4BertiniNucleiModel::boundaryTransition(G4CascadParticle& cparticle) { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::boundaryTransition" << G4endl; + } + + G4int zone = cparticle.getCurrentZone(); + + if (cparticle.movingInsideNuclei() && zone == 0) { + G4cout << " boundaryTransition-> in zone 0 " << G4endl; + + } else { + + G4std::vector mom = cparticle.getMomentum(); + G4std::vector pos = cparticle.getPosition(); + G4int type = cparticle.getParticle().type(); + G4double pr = 0.0; + G4double r = 0.0; + G4int i(0); + + for (i = 0; i < 3; i++) { + pr += pos[i] * mom[i + 1]; + r += pos[i] * pos[i]; + }; + + r = sqrt(r); + pr /= r; + + G4int next_zone = cparticle.movingInsideNuclei() ? zone - 1 : zone + 1; + G4double dv = getPotential(type,zone) - getPotential(type, next_zone); + G4double qv = dv * dv - 2.0 * dv * mom[0] + pr * pr; + G4double p1r; + + if (verboseLevel > 2){ + G4cout << " type " << type << " zone " << zone + << " next " << next_zone << " qv " << qv + << " dv " << dv << G4endl; + } + + if (qv <= 0.0) { /// reflection + p1r = -pr; + cparticle.incrementReflectionCounter(); + + } else { /// transition + p1r = sqrt(qv); + if(pr < 0.0) p1r = -p1r; + cparticle.updateZone(next_zone); + cparticle.resetReflection(); + }; + + G4double prr = (p1r - pr) / r; + + for (i = 0; i < 3; i++) mom[i + 1] += pos[i] * prr; + cparticle.updateParticleMomentum(mom); + }; +} + +G4bool G4BertiniNucleiModel::worthToPropagate(const G4CascadParticle& cparticle) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::worthToPropagate" << G4endl; + } + + const G4double cut_coeff = 2.0; + G4bool worth = true; + + if (cparticle.reflectedNow()) { + G4int zone = cparticle.getCurrentZone(); + G4int ip = cparticle.getParticle().type(); + + if (cparticle.getParticle().getKineticEnergy() < cut_coeff * + getFermiKinetic(ip, zone)) worth = false; + }; + + return worth; +} + +G4double G4BertiniNucleiModel::getRatio(G4int ip) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::getRatio" << G4endl; + } + + G4double rat; + + if (ip == 1) { + + if (verboseLevel > 2){ + G4cout << " current " << protonNumberCurrent << " inp " << protonNumber << G4endl; + } + + rat = protonNumberCurrent / protonNumber; + + } else { + + if (verboseLevel > 2){ + G4cout << " current " << neutronNumberCurrent << " inp " << neutronNumber << G4endl; + } + rat = neutronNumberCurrent / neutronNumber; + }; + + return rat; +} + +G4CascadParticle G4BertiniNucleiModel::initializeCascad(G4InuclElementaryParticle* particle) { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::initializeCascad(G4InuclElementaryParticle* particle)" << G4endl; + } + + const G4double large = 1000.0; + G4double s1 = sqrt(inuclRndm()); + G4double phi = randomPHI(); + G4double rz = nuclei_radius * s1; + G4std::vector pos(3); + pos[0] = rz * cos(phi); + pos[1] = rz * sin(phi); + pos[2] = -nuclei_radius * sqrt(1.0 - s1 * s1); + + G4CascadParticle cpart(*particle, pos, number_of_zones, large); + + if (verboseLevel > 2){ + cpart.print(); + } + + return cpart; +} + +G4std::pair, G4std::vector > +G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, + G4InuclNuclei* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target)" << G4endl; + } + + const G4double large = 1000.0; + const G4double max_a_for_cascad = 5.0; + const G4double ekin_cut = 2.0; + const G4double small_ekin = 1.0e-6; + const G4double r_large2for3 = 62.0; + const G4double r0forAeq3 = 3.92; + const G4double s3max = 6.5; + const G4double r_large2for4 = 69.14; + const G4double r0forAeq4 = 4.16; + const G4double s4max = 7.0; + const G4int itry_max = 100; + + G4std::vector casparticles; + G4std::vector particles; + + + G4double ab = bullet->getA(); + G4double zb = bullet->getZ(); + G4double at = target->getA(); + G4double zt = target->getZ(); + + if (ab < max_a_for_cascad) { /// first decide whether it will be cascad or compound final nuclei + G4double benb = 0.001 * bindingEnergy(ab, zb) / ab; + G4double bent = 0.001 * bindingEnergy(at, zt) / at; + G4double ben = benb < bent ? bent : benb; + + if (bullet->getKineticEnergy() / ab > ekin_cut * ben) { + G4int itryg = 0; + + while (casparticles.size() == 0 && itryg < itry_max) { + itryg++; + + if (itryg > 0) particles.resize(0); + + + G4std::vector > coordinates; /// nucleons coordinates in nuclei rest frame + G4std::vector > momentums; + + if (ab < 3.0) { /// deutron, simplest case + G4double r = 2.214 - 3.4208 * log(1.0 - 0.981 * inuclRndm()); + G4double s = 2.0 * inuclRndm() - 1.0; + G4double r1 = r * sqrt(1.0 - s * s); + G4std::vector coord1(3); + G4double phi = randomPHI(); + coord1[0] = r1 * cos(phi); + coord1[1] = r1 * sin(phi); + coord1[2] = r * s; + + coordinates.push_back(coord1); + G4int i(0); + + for (i = 0; i < 3; i++) coord1[i] *= -1; + coordinates.push_back(coord1); + G4double p = 0.0; + G4bool bad = true; + G4int itry = 0; + + while (bad && itry < itry_max) { + itry++; + p = 456.0 * inuclRndm(); + + if (p * p / (p * p + 2079.36) / (p * p + 2079.36) > 1.2023e-4 * inuclRndm() && + p * r > 312.0) bad = false; + }; + + if (itry == itry_max) + + if (verboseLevel > 2){ + G4cout << " deutron bullet generation-> itry = " + << itry_max << G4endl; + } + + p = 0.0005 * p; + + if (verboseLevel > 2){ + G4cout << " p nuc " << p << G4endl; + } + + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double P1 = p * COS_SIN.second; + mom[1] = P1 * cos(FI); + mom[2] = P1 * sin(FI); + mom[3] = p * COS_SIN.first; + + momentums.push_back(mom); + + for (i = 1; i < 4; i++) mom[i] *= -1; + momentums.push_back(mom); + + } else { + G4int ia = G4int(ab + 0.5); + G4std::vector coord1(3); + G4bool badco = true; + G4int itry = 0; + + if (ab < 4.0) { /// a == 3 + + while (badco && itry < itry_max) { + + if (itry > 0) coordinates.resize(0); + itry++; + G4int i(0); + + for (i = 0; i < 2; i++) { + G4int itry1 = 0; + G4double s; + G4double u; + G4double rho; + G4double fmax = exp(-0.5) / sqrt(0.5); + + while (itry1 < itry_max) { + itry1++; + s = -log(inuclRndm()); + u = fmax * inuclRndm(); + rho = sqrt(s) * exp(-s); + + if (sqrt(s) * exp(-s) > u && s < s3max) { + s = r0forAeq3 * sqrt(s); + G4std::pair COS_SIN = randomCOS_SIN(); + u = s * COS_SIN.second; + G4double phi = randomPHI(); + coord1[0] = u * cos(phi); + coord1[1] = u * sin(phi); + coord1[2] = s * COS_SIN.first; + coordinates.push_back(coord1); + + if (verboseLevel > 2){ + G4cout << " i " << i << " r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + break; + }; + }; + + if (itry1 == itry_max) { /// bad case + coord1[0] = coord1[1] = coord1[2] = 10000.; + coordinates.push_back(coord1); + + break; + }; + }; + + for (i = 0; i < 3; i++) coord1[i] = - coordinates[0][i] - + coordinates[1][i]; + + if (verboseLevel > 2) { + G4cout << " 3 r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + coordinates.push_back(coord1); + + G4bool large_dist = false; + + for (i = 0; i < 2; i++) { + + for (G4int j = i+1; j < 3; j++) { + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + + pow(coordinates[i][1] - coordinates[j][1], 2) + + pow(coordinates[i][2] - coordinates[j][2], 2); + + if (verboseLevel > 2) { + G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; + } + + if (r2 > r_large2for3) { + large_dist = true; + + break; + }; + }; + + if (large_dist) break; + }; + + if (!large_dist) badco = false; + }; + + } else { /// a >= 4 + G4double b = 3.0/(ab - 2.0); + G4double b1 = 1.0 - b / 2.0; + G4double u = b1 + sqrt(b1 * b1 + b); + b = 1.0 / b; + G4double fmax = (1.0 + u * b) * u * exp(-u); + + while (badco && itry < itry_max) { + + if (itry > 0) coordinates.resize(0); + itry++; + G4int i(0); + + for (i = 0; i < ia-1; i++) { + G4int itry1 = 0; + G4double s; + G4double u; + + while (itry1 < itry_max) { + itry1++; + s = -log(inuclRndm()); + u = fmax * inuclRndm(); + + if (sqrt(s) * exp(-s) * (1.0 + b * s) > u && s < s4max) { + s = r0forAeq4 * sqrt(s); + G4std::pair COS_SIN = randomCOS_SIN(); + u = s * COS_SIN.second; + G4double phi = randomPHI(); + coord1[0] = u * cos(phi); + coord1[1] = u * sin(phi); + coord1[2] = s * COS_SIN.first; + coordinates.push_back(coord1); + + if (verboseLevel > 2) { + G4cout << " i " << i << " r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + break; + }; + }; + + if (itry1 == itry_max) { /// bad case + coord1[0] = coord1[1] = coord1[2] = 10000.0; + coordinates.push_back(coord1); + + break; + }; + }; + + for (i = 0; i < 3; i++) { + coord1[i] = 0.0; + + for (G4int j = 0; j < ia -1; j++) coord1[i] -= coordinates[j][i]; + }; + + coordinates.push_back(coord1); + + if (verboseLevel > 2){ + G4cout << " last r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + G4bool large_dist = false; + + for (i = 0; i < ia-1; i++) { + + for (G4int j = i+1; j < ia; j++) { + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + + pow(coordinates[i][1]-coordinates[j][1], 2) + + pow(coordinates[i][2] - coordinates[j][2], 2); + + if (verboseLevel > 2){ + G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; + } + + if (r2 > r_large2for4) { + large_dist = true; + + break; + }; + }; + + if (large_dist) break; + }; + + if (!large_dist) badco = false; + }; + }; + + if (badco) { + G4cout << " can not generate the nucleons coordinates for a " << ab << + G4endl; + + return G4std::pair, G4std::vector > + (casparticles, particles); + + } else { /// momentums + G4double p; + G4double u; + G4double x; + G4std::vector mom(4); + /// G4bool badp = True; + G4int i(0); + + for (i = 0; i < ia - 1; i++) { + G4int itry = 0; + + while (itry < itry_max) { + itry++; + u = -log(0.879853 - 0.8798502 * inuclRndm()); + x = u * exp(-u); + + if (x > inuclRndm()) { + p = sqrt(0.01953 * u); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double pt = p * COS_SIN.second; + G4double phi = randomPHI(); + mom[1] = pt * cos(phi); + mom[2] = pt * sin(phi); + mom[3] = p * COS_SIN.first; + momentums.push_back(mom); + + break; + }; + }; + + if (itry == itry_max) { + G4cout << " can not generate proper momentum for a " << ab << G4endl; + + return G4std::pair, G4std::vector > + (casparticles, particles); + }; + }; + + /// last momentum + for (i = 1; i < 4; i++) { + mom[i] = 0.; + + for (G4int j = 0; j < ia -1; j++) mom[i] -= momentums[j][i]; + }; + momentums.push_back(mom); + }; + }; + + /// coordinates and momentums at rest are generated, now back to the lab; + G4double rb = 0.0; + G4int i(0); + + for (i = 0; i < G4int(coordinates.size()); i++) { + G4double rp = sqrt(coordinates[i][0] * coordinates[i][0] + + coordinates[i][1] * coordinates[i][1] + + coordinates[i][2] * coordinates[i][2]); + if (rp > rb) rb = rp; + }; + /// nuclei i.p. as a whole + G4double s1 = sqrt(inuclRndm()); + G4double phi = randomPHI(); + G4double rz = (nuclei_radius + rb) * s1; + G4std::vector global_pos(3); + global_pos[0] = rz * cos(phi); + global_pos[1] = rz * sin(phi); + global_pos[2] = -(nuclei_radius + rb) * sqrt(1.0 - s1 * s1); + + for (i = 0; i < G4int(coordinates.size()); i++) { + coordinates[i][0] += global_pos[0]; + coordinates[i][1] += global_pos[1]; + coordinates[i][2] += global_pos[2]; + }; + + /// all nucleons at rest + G4std::vector raw_particles; + G4int ia = G4int(ab + 0.5); + G4int iz = G4int(zb + 0.5); + + for (G4int ipa = 0; ipa < ia; ipa++) { + G4int knd = ipa < iz ? 1 : 2; + + raw_particles.push_back(G4InuclElementaryParticle(momentums[ipa], knd)); + }; + + G4InuclElementaryParticle dummy(small_ekin, 1); + + G4LorentzConvertor toTheBulletRestFrame; + + toTheBulletRestFrame.setBullet(dummy.getMomentum(), dummy.getMass()); + toTheBulletRestFrame.setTarget(bullet->getMomentum(),bullet->getMass()); + toTheBulletRestFrame.toTheTargetRestFrame(); + + particleIterator ipart; + + for (ipart = raw_particles.begin(); ipart != raw_particles.end(); ipart++) { + G4std::vector mom = + toTheBulletRestFrame.backToTheLab(ipart->getMomentum()); + + ipart->setMomentum(mom); + }; + + /// fill cascad particles and outgoing particles + for (G4int ip = 0; ip < G4int(raw_particles.size()); ip++) { + G4std::vector mom = raw_particles[ip].getMomentum(); + G4double pmod = sqrt(mom[1] * mom[1] + mom[2] * mom[2] + mom[3] * mom[3]); + G4double t0 = -(mom[1] * coordinates[ip][0] + mom[2] * coordinates[ip][1] + + mom[3] * coordinates[ip][2]) / pmod; + G4double det = t0 * t0 + nuclei_radius * nuclei_radius - + coordinates[ip][0] * coordinates[ip][0] - + coordinates[ip][1] * coordinates[ip][1] - + coordinates[ip][2] * coordinates[ip][2]; + G4double tr = -1.0; + + if (det > 0.0) { + G4double t1 = t0 + sqrt(det); + G4double t2 = t0 - sqrt(det); + + if (fabs(t1) <= fabs(t2)) { + + if (t1 > 0.0) { + + if (coordinates[ip][2] + mom[3] * t1 / pmod <= 0.0) tr = t1; + }; + + if (tr < 0.0 && t2 > 0.0) { + + if (coordinates[ip][2] + mom[3] * t2 / pmod <= 0.0) tr = t2; + }; + + } else { + + if (t2 > 0.0) { + + if (coordinates[ip][2] + mom[3] * t2 / pmod <= 0.0) tr = t2; + + }; + + if (tr < 0.0 && t1 > 0.0) { + + if (coordinates[ip][2] + mom[3] * t1 / pmod <= 0.0) tr = t1; + }; + + }; + }; + + if (tr >= 0.0) { /// cascad particle + coordinates[ip][0] += mom[1] * tr / pmod; + coordinates[ip][1] += mom[2] * tr / pmod; + coordinates[ip][2] += mom[3] * tr / pmod; + casparticles.push_back(G4CascadParticle(raw_particles[ip], coordinates[ip], + number_of_zones, large)); + } else { + particles.push_back(raw_particles[ip]); + }; + }; + }; + + if (casparticles.size() == 0) { + particles.resize(0); + + G4cout << " can not generate proper distribution for " << itry_max << " steps " << G4endl; + }; + }; + }; + + if (verboseLevel > 2){ + G4cout << " cascad particles: " << casparticles.size() << G4endl; + G4int ip(0); + + for (ip = 0; ip < G4int(casparticles.size()); ip++) + casparticles[ip].print(); + G4cout << " outgoing particles: " << particles.size() << G4endl; + + for (ip = 0; ip < G4int(particles.size()); ip++) + particles[ip].printParticle(); + } + + return G4std::pair, G4std::vector > + (casparticles, particles); +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc new file mode 100644 index 0000000000..139fa52f9b --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc @@ -0,0 +1,189 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4BertiniRegionModel.hh" + +const G4double G4BertiniRegionModel::radius0 = 1.0E-15; +const G4double G4BertiniRegionModel::BE = 7; + +G4BertiniRegionModel::G4BertiniRegionModel(const G4int numberOfLayers, const G4int A, const G4int Z) +{ + //count the radiuses, densities and fermi momenta with A and Z + G4double r = radius0*pow(A, 1/3); + + if(numberOfLayers==1){ + radius.push_back(r); + + G4double rho = A / (4/3*pi*pow(r,3)); + density.push_back(rho); + + G4double protonMass = G4Proton::Proton()->GetPDGMass(); + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass(); + G4double protonDensity = Z / (4/3*pi*pow(r,3)); + G4double neutronDensity = (A-Z) / (4/3*pi*pow(r,3)); + + protonFermiEnergy.push_back(GetFermiEnergy(protonDensity, protonMass)); + neutronFermiEnergy.push_back(GetFermiEnergy(neutronDensity, neutronMass)); + + protonFermiMomentum.push_back(GetFermiMomentum(protonDensity, protonMass)); + neutronFermiMomentum.push_back(GetFermiMomentum(neutronDensity, neutronMass)); + + G4double fermiEP = *protonFermiEnergy.begin(); + G4double fermiEN = *neutronFermiEnergy.begin(); + protonPotentialEnergy.push_back(-(fermiEP + BE)); + neutronPotentialEnergy.push_back(-(fermiEN + BE)); + } + else{ + if(numberOfLayers==3){ + radius.push_back(0.1*r); + radius.push_back(0.2*r); + radius.push_back(0.9*r); + + } + } +} +G4BertiniRegionModel::~G4BertiniRegionModel(){} + +/* +void G4BertiniRegionModel::Init(const G4int numberOfLayers, const G4int A, const G4int Z){ + //count the radiuses, densities and fermi momenta with A and Z + G4double r = radius0*pow(A, 1/3); + + if(numberOfLayers==1){ + radius.push_back(r); + + G4double rho = A / (4/3*pi*pow(r,3)); + density.push_back(rho); + + G4double protonMass = G4Proton::Proton()->GetPDGMass()/MeV; + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass()/MeV ; + G4double protonDensity = Z / (4/3*pi*pow(r,3)); + G4double neutronDensity = (A-Z) / (4/3*pi*pow(r,3)); + + protonFermiEnergy.push_back(GetFermiEnergy(protonDensity, protonMass)); + neutronFermiEnergy.push_back(GetFermiEnergy(neutronDensity, neutronMass)); + + protonFermiMomentum.push_back(GetFermiMomentum(protonDensity, protonMass)); + neutronFermiMomentum.push_back(GetFermiMomentum(neutronDensity, neutronMass)); + + G4double fermiEP = *protonFermiEnergy.begin(); + G4double fermiEN = *neutronFermiEnergy.begin(); + protonPotentialEnergy.push_back(-(fermiEP + BE)); + neutronPotentialEnergy.push_back(-(fermiEN + BE)); + } + else{ + if(numberOfLayers==3){ + radius.push_back(0.1*r); + radius.push_back(0.2*r); + radius.push_back(0.9*r); + + } + } +} +*/ + +//-------------------------------------------------------------- + +G4double G4BertiniRegionModel::GetDensity(G4double r){ + iterator j=density.begin(); + for(iterator i=radius.begin(); i::iterator particleIterator; + +G4BigBanger::G4BigBanger() + : verboseLevel(1) { + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::G4BigBanger" << G4endl; + } +} + +G4CollisionOutput G4BigBanger::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::collide" << G4endl; + } + + // primitive explosion model A -> nucleons to prevent too exotic evaporation + + const G4double small_ekin = 1.0e-6; + + G4CollisionOutput output; + G4std::vector totscm; + G4std::vector totlab; + + if(G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + + G4double A = nuclei_target->getA(); + G4double Z = nuclei_target->getZ(); + G4std::vector PEX = nuclei_target->getMomentum(); + G4double EEXS = nuclei_target->getExitationEnergy(); + G4InuclElementaryParticle dummy(small_ekin, 1); + G4LorentzConvertor toTheNucleiSystemRestFrame; + + toTheNucleiSystemRestFrame.setBullet(dummy.getMomentum(), dummy.getMass()); + toTheNucleiSystemRestFrame.setTarget(PEX, nuclei_target->getMass()); + toTheNucleiSystemRestFrame.toTheTargetRestFrame(); + + G4double etot = 0.001 * (EEXS - bindingEnergy(A, Z)); + + if (verboseLevel > 2) { + G4cout << " BigBanger: target " << G4endl; + nuclei_target->printParticle(); + G4cout << " BigBanger: a " << A << " z " << Z << " eexs " << EEXS << " etot " << + etot << " nm " << nuclei_target->getMass() << G4endl; + } + + G4std::vector particles = + generateBangInSCM(etot, A, Z, dummy.getParticleMass(1), dummy.getParticleMass(2)); + + if (verboseLevel > 2) { + G4cout << " particles " << particles.size() << G4endl; + for(G4int i = 0; i < G4int(particles.size()); i++) + particles[i].printParticle(); + } + if(!particles.empty()) { // convert back to Lab + if (verboseLevel > 2) { + G4std::vector totscm(4, 0.0); + G4std::vector totlab(4, 0.0); + } + particleIterator ipart; + + for(ipart = particles.begin(); ipart != particles.end(); ipart++) { + if (verboseLevel > 2) { + G4std::vector mom_scm = ipart->getMomentum(); + + for(G4int i = 0; i < 4; i++) totscm[i] += mom_scm[i]; + } + G4std::vector mom = + toTheNucleiSystemRestFrame.backToTheLab(ipart->getMomentum()); + ipart->setMomentum(mom); + + if (verboseLevel > 2) { + mom = ipart->getMomentum(); + for(G4int i = 0; i < 4; i++) totlab[i] += mom[i]; + } + }; + G4std::sort(particles.begin(), particles.end(), G4ParticleLargerEkin()); + if (verboseLevel > 2) { + G4cout << " In SCM: total outgoing momentum " << G4endl + << " E " << totscm[0] << " px " << totscm[1] + << " py " << totscm[2] << " pz " << totscm[3] << G4endl; + G4cout << " In Lab: mom cons " << G4endl + << " E " << PEX[0] + 0.001 * EEXS - totlab[0] + << " px " << PEX[1] - totlab[1] + << " py " << PEX[2] - totlab[2] + << " pz " << PEX[3] - totlab[3] << G4endl; + } + }; + output.addOutgoingParticles(particles); + } + else { + G4cout << " BigBanger -> try to bang not nuclei " << G4endl; + }; + + return output; +} + +G4std::vector +G4BigBanger::generateBangInSCM(G4double etot, + G4double a, + G4double z, + G4double mp, + G4double mn) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::generateBangInSCM" << G4endl; + } + + const G4double ang_cut = 0.9999; + const G4int itry_max = 1000; + + G4int ia = int(a + 0.1); + G4int iz = int(z + 0.1); + + if (verboseLevel > 2) { + G4cout << " ia " << ia << " iz " << iz << G4endl; + } + G4std::vector particles; + + if(ia == 1) { + // abnormal situation + G4double m = iz > 0 ? mp : mn; + G4double pmod = sqrt((etot + 2.0 * m) * etot); + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double Pt = pmod * COS_SIN.second; + + mom[1] = Pt * cos(FI); + mom[2] = Pt * sin(FI); + mom[3] = Pt * COS_SIN.first; + + G4int knd = iz > 0 ? 1 : 2; + + particles.push_back(G4InuclElementaryParticle(mom, knd)); + + return particles; + }; + + G4std::vector pmod = generateMomentumModules(etot, a, z, mp, mn); + G4bool bad = true; + G4int itry = 0; + + while(bad && itry < itry_max) { + itry++; + G4std::vector > scm_momentums; + G4std::vector tot_mom(4); + + if(ia == 2) { + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + double FI = randomPHI(); + double Pt = pmod[0] * COS_SIN.second; + + mom[1] = Pt * cos(FI); + mom[2] = Pt * sin(FI); + mom[3] = Pt * COS_SIN.first; + + for(G4int j = 1; j < 4; j++) tot_mom[j] += mom[j]; + + scm_momentums.push_back(mom); + + G4std::vector mom1(4); + + for(G4int i = 1; i < 4; i++) mom1[i] = - mom[i]; + + scm_momentums.push_back(mom1); + bad = false; + } + else { + for(G4int i = 0; i < ia - 2; i++) { + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double Pt = pmod[i] * COS_SIN.second; + + mom[1] = Pt * cos(FI); + mom[2] = Pt * sin(FI); + mom[3] = Pt * COS_SIN.first; + + for(G4int j = 1; j < 4; j++) tot_mom[j] += mom[j]; + + scm_momentums.push_back(mom); + }; + + // handle last two + G4double tot_mod = sqrt(tot_mom[1] * tot_mom[1] + + tot_mom[2] * tot_mom[2] + + tot_mom[3] * tot_mom[3]); + G4double ct = -0.5 * (tot_mod * tot_mod + pmod[ia - 2] * pmod[ia - 2] - + pmod[ia - 1] * pmod[ia - 1]) / tot_mod / pmod[ia - 2]; + + if (verboseLevel > 2) { + G4cout << " ct last " << ct << G4endl; + } + + if(fabs(ct) < ang_cut) { + G4std::vector mom2 = generateWithFixedTheta(ct, pmod[ia - 2]); + // rotate to the normal system + G4std::vector apr = tot_mom; + G4int i; + for(i = 1; i < 4; i++) apr[i] /= tot_mod; + G4double a_tr = sqrt(apr[1] * apr[1] + apr[2] * apr[2]); + G4std::vector mom(4); + mom[1] = mom2[3] * apr[1] + ( mom2[1] * apr[2] + mom2[2] * apr[3] * apr[1]) / a_tr; // ::: replace with clhep tools? + mom[2] = mom2[3] * apr[2] + (-mom2[1] * apr[1] + mom2[2] * apr[3] * apr[2]) / a_tr; + mom[3] = mom2[3] * apr[3] - mom2[2] * a_tr; + scm_momentums.push_back(mom); + // and the last one + G4std::vector mom1(4); + for(i = 1; i < 4; i++) mom1[i] = - mom[i] - tot_mom[i]; + scm_momentums.push_back(mom1); + bad = false; + }; + }; + if(!bad) { + for(G4int i = 0; i < ia; i++) { + G4int knd = i < iz ? 1 : 2; + + particles.push_back(G4InuclElementaryParticle(scm_momentums[i], knd)); + }; + }; + }; + if (verboseLevel > 2) { + if(itry == itry_max) G4cout << " BigBanger -> can not generate bang " << G4endl; + } + + return particles; + +} + +G4std::vector G4BigBanger::generateMomentumModules(G4double etot, + G4double a, + G4double z, + G4double mp, + G4double mn) const { + + + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::generateMomentumModules" << G4endl; + } + + G4int ia = int(a + 0.1); + G4int iz = int(z + 0.1); + G4std::vector pmod; + G4double xtot = 0.0; + G4double promax = maxProbability(a); + + G4int i; + for(i = 0; i < ia; i++) { + G4double x = generateX(ia, a, promax); + + if (verboseLevel > 2) { + G4cout << " i " << i << " x " << x << G4endl; + } + pmod.push_back(x); + xtot += x; + }; + for(i = 0; i < ia; i++) { + G4double m = i < iz ? mp : mn; + + pmod[i] = pmod[i] * etot / xtot; + pmod[i] = sqrt(pmod[i] * (pmod[i] + 2.0 * m)); + + if (verboseLevel > 2) { + G4cout << " i " << i << " pmod " << pmod[i] << G4endl; + } + }; + + return pmod; +} + +G4double G4BigBanger::xProbability(G4double x, + G4int ia) const { + + + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::xProbability" << G4endl; + } + + G4int ihalf = ia / 2; + G4double ekpr = 0.0; + + if(x < 1.0 || x > 0.0) { + ekpr = x * x; + + if(2 * ihalf == ia) { // even A + ekpr *= sqrt(1.0 - x) * pow((1.0 - x), int((3 * ia - 6) / 2)); + } + else { + ekpr *= pow((1.0 - x), int((3 * ia - 5) / 2)); + }; + }; + + return ekpr; +} + +G4double G4BigBanger::maxProbability(G4double a) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::maxProbability" << G4endl; + } + + return xProbability(1.0 / (a - 1.0) / 1.5, int(a + 0.1)); +} + +G4double G4BigBanger::generateX(G4int ia, + G4double a, + G4double promax) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4BigBanger::generateX" << G4endl; + } + + const G4int itry_max = 1000; + G4int itry = 0; + G4double x; + + while(itry < itry_max) { + itry++; + x = inuclRndm(); + + if(xProbability(x, ia) >= promax * inuclRndm()) return x; + }; + if (verboseLevel > 2) { + G4cout << " BigBanger -> can not generate x " << G4endl; + } + + return maxProbability(a); +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc new file mode 100644 index 0000000000..a372eca036 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4CascadParticle.hh" + +G4CascadParticle::G4CascadParticle() + : verboseLevel(2) { + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadParticle::G4CascadParticle" << G4endl; + } +} + +G4double G4CascadParticle::getPathToTheNextZone(G4double rz_in, + G4double rz_out) { + verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadParticle::getPathToTheNextZone" << G4endl; + } + + G4double path = -1.0; + G4double rp = 0.0; + G4double rr = 0.0; + G4double pp = 0.0; + G4std::vector mom = theParticle.getMomentum(); + + for (G4int i = 1; i < 4; i++) { + rp += mom[i] * position[i - 1]; + rr += position[i - 1] * position[i - 1]; + pp += mom[i] * mom[i]; + }; + + G4double ra = rr - rp * rp / pp; + pp = sqrt(pp); + G4double ds; + G4double d2; + + if (current_zone == 0 || rp > 0.0) { + d2 = rz_out * rz_out - ra; + ds = 1.0; + movingIn = false; + + } else { + + d2 = rz_in * rz_in - ra; + + if (d2 > 0.0) { + ds = -1.0; + movingIn = true; + + } else { + + d2 = rz_out * rz_out - ra; + ds = 1.0; + movingIn = false; + }; + }; + + path = ds * sqrt(d2) - rp / pp; + + return path; +} + +void G4CascadParticle::propagateAlongThePath(G4double path) { + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadParticle::propagateAlongThePath" << G4endl; + } + + G4std::vector mom = theParticle.getMomentum(); + G4double pmod = theParticle.getMomModule(); + + for(G4int i = 0; i < 3; i++) position[i] += mom[i + 1] * path / pmod; + +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc new file mode 100644 index 0000000000..fd23a61e68 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc @@ -0,0 +1,382 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4CascadSpecialFunctions.hh" + + G4std::pair G4CascadSpecialFunctions::getPositionInEnergyScale2(G4double e) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadSpecialFunctions::getPositionInEnergyScale2" << G4endl; + } + + const G4double EMT2[31] = { + 0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, + 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, + 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0, 15.0 + }; + + G4int ik = 30; + G4double sk = 1.0; + + for (G4int i = 1; i < 31; i++) { + + if (e <= EMT2[i]) { + ik = i; + sk = (e - EMT2[ik - 1]) / (EMT2[ik] - EMT2[ik - 1]); + + break; + }; + }; + + return G4std::pair(ik, sk); +} + +G4std::pair G4CascadSpecialFunctions::getPositionInEnergyScale1(G4double e) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadSpecialFunctions::getPositionInEnergyScale1" << G4endl; + } + + const G4double EMT1[20] = { + 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, + 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0 + }; + + G4int ik; + G4double sk; + + if (e < EMT1[0]) { + ik = 1; + sk = 0.0; + + } else if (e <= EMT1[19]) { + + for (G4int i = 1; i < 20; i++) { + + if (e <= EMT1[i]) { + ik = i; + sk = (e - EMT1[ik - 1]) / (EMT1[ik] - EMT1[ik - 1]); + + break; + }; + }; + + } else { + + ik = 19; + sk = 1.0; + }; + + if (verboseLevel > 2) { + G4cout << " e " << e << " ik " << ik << " sk " << sk << G4endl; + } + + return G4std::pair(ik, sk); +} + +G4double G4CascadSpecialFunctions::absorptionCrosSection(G4double e, + G4int type) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadSpecialFunctions::absorptionCrosSection" << G4endl; + } + + const G4double corr_fac = 0.2; + G4double csec = 0.0; + + if (e < 0.3) { + csec = 0.1106 / sqrt(e) - 0.8 + 0.08 / ((e - 0.123) * (e - 0.123) + 0.0056); + + } else if (e < 1.0) { + csec = 3.6735 * (1.0 - e) * (1.0 - e); + }; + + if (csec < 0.0) csec = 0.0; + + if (verboseLevel > 2) { + G4cout << " ekin " << e << " abs. csec " << corr_fac * csec << G4endl; + } + + return corr_fac * csec; +} + +G4std::pair G4CascadSpecialFunctions::getPositionInEnergyScaleEMS(G4double e) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadSpecialFunctions::getPositionInEnergyScaleEMS" << G4endl; + } + + const G4double EMS[46] = { + 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12, 0.13, 0.14, + 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, + 0.25, 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, + 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, + 0.45, 0.46, 0.47, 0.48, 0.49, 0.50 + }; + + G4int ik; + G4double sk; + + if (e < EMS[0]) { + ik = 1; + sk = 0.0; + + } else if (e <= EMS[45]) { + + for (G4int i = 1; i < 46; i++) { + + if (e <= EMS[i]) { + ik = i; + sk = (e - EMS[ik - 1]) / (EMS[ik] - EMS[ik - 1]); + + break; + }; + }; + + } else { + + ik = 45; + sk = 1.0; + }; + + return G4std::pair(ik, sk); +} + +G4double G4CascadSpecialFunctions::crossSection(G4double e, + G4int is) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadSpecialFunctions::crossSection" << G4endl; + } + + const G4double dsig[46][2] = { + {13.7, 15.0}, {15.8, 17.6}, {19.0, 15.0}, {46.0, 15.8}, {52.0, 21.0}, + {55.0, 21.9}, {77.0, 31.0}, {101.0, 38.4}, {124.0, 42.7}, {148.0, 55.4}, + {165.0, 55.3}, {172.0, 67.9}, {205.0, 66.2}, {189.0, 67.2}, {190.0, 67.8}, + {178.0, 63.8}, {148.0, 64.0}, {141.0, 52.1}, {135.0, 58.0}, {127.0, 48.3}, + {107.0, 40.0}, {111.0, 37.8}, {81.3, 37.5}, {78.0, 31.7}, {75.0, 30.0}, + {64.3, 30.0}, {60.3, 27.7}, {58.9, 26.0}, {55.0, 27.0}, {48.0, 26.0}, + {45.2, 26.7}, {40.8, 26.0}, {39.3, 27.0}, {40.7, 27.1}, {31.2, 26.5}, + {34.6, 26.9}, {31.4, 27.6}, {27.1, 28.4}, {26.2, 27.5}, {24.4, 27.2}, + {25.7, 28.8}, {23.8, 29.3}, {21.5, 27.0}, {22.2, 29.5}, {21.5, 31.2}, + {19.0, 30.7} + }; + + const G4double asig[4][6][31] = { + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 24.3, 24.1, 24.0, 26.3, + 28.6, 24.8, 19.9, 19.2, 17.4, 15.3, 13.5, 12.3, 11.9, 10.4, + 11.8, 11.4, 11.0, 10.8, 10.9, 11.7, 11.4, 10.2, 11.0, 11.0, 9.0}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 1.45, 2.90, 4.10, + 5.30, 22.0, 21.2, 19.9, 14.9, 12.6, 12.3, 11.3, 10.8, 9.50, + 8.27, 7.20, 6.70, 6.25, 6.04, 5.89, 5.70, 5.60, 5.05, 4.17, 4.00}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 2.27, 4.28, 7.81, 8.03, 8.11, 7.90, 7.82, 7.61, 7.47, + 7.07, 7.66, 7.05, 6.71, 6.38, 6.36, 6.37, 6.57, 6.01, 5.48, 6.80}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 1.20, 2.85, 3.70, 4.81, 5.33, 7.74, 6.91, 6.94, + 7.57, 7.21, 7.11, 7.10, 6.93, 6.79, 6.71, 6.55, 6.55, 6.15, 8.50}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0. , .005, 0.54, 0.74, 0.86, 0.91, 1.10, 1.16, + 1.36, 1.40, 1.43, 1.47, 1.47, 1.43, 1.38, 1.38, 1.63, 1.36, 2.80}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 34.0, 46.2, 46.9, 45.2, 47.1, 42.3, 41.8, 41.2, 41.6, 41.6, + 41.0, 43.0, 42.4, 40.0, 39.9, 39.8, 42.0, 40.0, 39.8, 39.6, 38.7}}, + + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 33.0, 31.3, 29.5, 27.8, + 14.6, 16.0, 17.5, 18.3, 19.4, 18.7, 15.6, 14.8, 13.6, 12.5, + 12.2, 11.9, 11.4, 11.2, 10.1, 9.62, 8.41, 7.14, 7.09, 5.04, 10.2}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 2.00, 4.00, 6.50, + 19.5, 20.8, 19.8, 18.6, 17.7, 14.4, 13.5, 10.4, 10.1, 12.0, + 8.87, 8.51, 8.49, 9.20, 8.29, 7.43, 8.20, 4.69, 4.57, 4.06, 4.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.68, 2.76, 3.85, 8.35, 12.7, 12.3, 10.8, 12.0, 10.9, 10.2, + 10.6, 12.2, 11.8, 11.0, 10.4, 10.5, 11.0, 10.6, 11.8, 12.5, 13.2}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.22, 0.52, 0.64, 1.19, 1.52, 1.75, 1.51, 2.04, 1.85, 1.70, + 1.92, 1.66, 1.74, 1.50, 1.39, 1.35, 1.41, 1.48, 1.43, 1.35, 3.20}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0.14, 0.24, 0.30, 0.46, 0.85, 1.40, 1.54, 1.52, + 1.47, 1.48, 1.49, 1.42, 1.39, 1.37, 1.22, 1.19, 0.93, 0. , 2.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 35.0, 40.0, 42.4, 42.3, 41.0, 40.9, 40.4, 39.8, 35.0, 33.6, + 41.2, 41.0, 41.1, 41.2, 41.2, 39.6, 36.0, 36.0, 36.2, 0. ,40.2}}, + + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 60.0, 38.0, 30.6, 24.0, + 18.5, 12.8, 13.6, 9.15, 8.20, 7.80, 7.10, 6.40, 5.81, 5.85, + 5.50, 5.33, 5.40, 5.50, 4.90, 5.02, 5.00, 4.98, 4.96, 4.96, 4.50}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.38, 0.75, 1.28, + 2.26, 11.8, 11.1, 7.56, 6.04, 5.68, 4.15, 3.21, 2.12, 1.66, + 1.54, 1.53, 1.47, 1.33, 1.39, 1.35, 1.29, 1.23, 1.13, 1.06, 0.70}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.05, 2.19, 6.02, 7.36, 6.97, 5.83, 6.53, 5.09, 4.24, 3.24, + 3.31, 3.11, 2.91, 2.78, 2.72, 2.68, 2.48, 2.27, 2.02, 1.77, 4.40}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.06, 0.35, 0.55, 0.77, 0.89, 0.80, 0.86, 0.97, 0.90, 0.86, + 0.84, 0.84, 0.83, 0.81, 0.79, 0.82, 0.76, 0.88, 0.89, 0.89, 3.00}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0.02, 0.07, 0.33, 0.92, 1.39, 2.11, 1.81, 2.39, 2.60, + 2.19, 1.70, 1.60, 0.68, 1.43, 1.46, 1.46, 1.37, 1.16, 1.09, 2.60}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 18.9, 27.2, 34.9, 29.1, 30.8, 29.6, 28.2, 27.5, 26.9, 26.3, + 25.9, 25.6, 25.2, 26.1, 25.5, 25.4, 25.3, 25.1, 24.9, 24.8, 24.1}}, + + {{5.90, 9.40, 24.5, 62.6, 65.3, 41.3, 29.3, 24.3, 22.7, 22.9, + 23.2, 28.4, 11.7, 10.1, 8.30, 7.16, 6.49, 6.36, 6.60, 5.84, + 5.30, 4.50, 3.90, 4.40, 4.74, .794, .824, .714, 0.59, 0. ,4.60}, + + {0. , 0. , 0. , 0. , 0.10, 0.40, 2.70, 3.50, 5.30, 6.60, + 9.10, 17.6, 12.2, 9.78, 7.51, 6.91, 6.86, 6.46, 6.19, 5.13, + 3.90, 2.82, 3.10, 3.12, 2.52, 2.22, 2.02, 2.01, 1.98, 2.14, 1.20}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.76, 2.63, 3.72, 6.53, 7.47, 7.94, 7.12, 6.85, 6.09, 5.35, + 4.12, 3.85, 3.68, 4.09, 3.58, 3.29, 3.08, 2.93, 2.80, 2.65, 3.30}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.59, 0.74, 1.47, 4.10, 4.78, 4.90, 5.07, 5.50, 5.48, 5.03, + 4.65, 4.39, 4.06, 3.53, 3.08, 3.05, 2.91, 3.42, 3.93, 3.93, 4.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.01, .007, 0.03, .099, .251, .376, .419, .582, .755, .777, + 1.13, 1.08, 1.13, 1.08, .962, .866, .738, .674, .645, .613, 1.30}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 31.3, 46.0, 30.0, 35.7, 33.4, 31.6, 30.4, 29.6, 28.9, 28.5, + 28.1, 27.5, 31.0, 27.7, 27.8, 26.1, 25.2, 6.92, 6.70, 0. , 25.7}} + }; + + const G4double EMT2_10 = 0.5; + G4double csec = 0.0; + G4int l = is; + + if (l == 4) { + l = 1; + + } else if (l == 10) { + l = 3; + + } else if (l == 5 || l == 6) { + l = 4; + } else if (l == 7 || l == 14) { + l = 5; + }; + + if (e < EMT2_10) { + + if (l == 1) { // pp or nn + + if (e >= 0.4) { + csec = 34.5; + + } else if (e >= 0.04) { + csec = 0.23938 / (e * e) + 1.802 / e + 27.147; + + } else if (e >= 0.001) { + csec = -0.0050574 / (e * e) + 9.0692 / e + 6.9466; + + } else { + csec = 4.0 / e; + }; + + } else if (l == 2) { // np + + if (e >= 0.4) { + csec = 0.88737 / e + 53.37 * e + 3.5475; + + } else if (e >= 0.04) { + csec = 0.093074 / (e * e) - 0.011148 / e + 22.429; + + } else if (e >= 0.001) { + csec = -0.0011748 / (e * e) + 3.0885 / e + 5.3107; + + } else { + csec = 1.92 / e; + }; + + } else { // pi + n, p + + if (e <= 0.05) { + + if (l == 3) { + csec = 3.7 + 204.35 * e; + + } else if (l == 4) { + csec = 6.5 + 170.71 * e; + + } else if (l == 5) { + csec = 5.1 + 187.53 * e; + }; + + } else { + G4std::pair iksk = getPositionInEnergyScaleEMS(e); + G4int ik = iksk.first; + G4double sk = iksk.second; + + if (l < 5) { + int j = l - 3; + csec = dsig[ik - 1][j] + sk * (dsig[ik][j] - dsig[ik - 1][j]); + + } else { + csec = 0.5 * (dsig[ik - 1][0] + dsig[ik - 1][1] + + sk * (dsig[ik][0] - dsig[ik - 1][0] + dsig[ik][1] - dsig[ik - 1][1])); + }; + }; + }; + + } else { + G4std::pair iksk = getPositionInEnergyScale2(e); + G4int ik = iksk.first; + G4double sk = iksk.second; + + if (l < 5) { + csec = asig[l - 1][5][ik - 1] + sk * (asig[l - 1][5][ik] - asig[l - 1][5][ik - 1]); + + } else { + csec = 0.5 * (asig[2][5][ik - 1] + asig[3][5][ik - 1] + + sk * (asig[2][5][ik] - asig[2][5][ik - 1] + + asig[3][5][ik] - asig[3][5][ik - 1])); + }; + }; + + return csec; +} + diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc new file mode 100644 index 0000000000..de635d577f --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadeInterface.cc @@ -0,0 +1,359 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4CascadeInterface.hh" +#include "globals.hh" +#include "G4DynamicParticleVector.hh" +#include "G4IonTable.hh" +#include "G4InuclCollider.hh" +#include "G4IntraNucleiCascader.hh" +#include "G4ElementaryParticleCollider.hh" +#include "G4NonEquilibriumEvaporator.hh" +#include "G4EquilibriumEvaporator.hh" +#include "G4Fissioner.hh" +#include "G4BigBanger.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4InuclNuclei.hh" +#include "G4InuclParticle.hh" +#include "G4CollisionOutput.hh" +#include "G4V3DNucleus.hh" +#include "G4Track.hh" +#include "G4Nucleus.hh" +#include "G4NucleiModel.hh" +#include "G4LorentzRotation.hh" + + +typedef G4std::vector::iterator particleIterator; +typedef G4std::vector::iterator nucleiIterator; + +G4CascadeInterface::G4CascadeInterface() + :verboseLevel(0) { + + if (verboseLevel > 3) { + G4cout << " >>> G4CascadeInterface::G4CascadeInterface" << G4endl; + } +}; + +G4ReactionProductVector* G4CascadeInterface::Propagate(G4KineticTrackVector* theSecondaries, + G4V3DNucleus* theNucleus) { + return NULL; +}; + +// #define debug_G4CascadeInterface + +G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, + G4Nucleus& theNucleus) { +#ifdef debug_G4CascadeInterface + static G4int counter(0); + counter++; + G4cerr << "Reaction number "<< counter << " "<GetDefinition()->GetParticleName()<<" "<< aTrack.GetDynamicParticle()->GetKineticEnergy()< 3) { + G4cout << " >>> G4CascadeInterface::ApplyYourself" << G4endl; + }; + + theResult.Initialize(aTrack); + + G4double eInit = 0.0; + G4double eTot = 0.0; + G4double sumBaryon = 0.0; + G4double sumEnergy = 0.0; + + // Make conversion between native Geant4 and Bertini cascade classes. + // NOTE: Geant4 units are MeV = 1 and GeV = 1000. Cascade code by default use GeV = 1. + + enum particleType { nuclei = 0, proton = 1, neutron = 2, pionPlus = 3, pionMinus = 5, pionZero = 7, photon = 10 }; + + G4int bulletType = 0; + + // Coding particles + if (aTrack.GetDefinition() == G4Proton::Proton() ) bulletType = proton; + if (aTrack.GetDefinition() == G4Neutron::Neutron() ) bulletType = neutron; + if (aTrack.GetDefinition() == G4PionPlus::PionPlus() ) bulletType = pionPlus; + if (aTrack.GetDefinition() == G4PionMinus::PionMinus() ) bulletType = pionMinus; + if (aTrack.GetDefinition() == G4PionZero::PionZero() ) bulletType = pionZero; + if (aTrack.GetDefinition() == G4Gamma::Gamma() ) bulletType = photon; + + // Code momentum and energy. + G4double px,py,pz; + px=aTrack.GetDynamicParticle()->Get4Momentum().px() / GeV; + py=aTrack.GetDynamicParticle()->Get4Momentum().py() / GeV; + pz=aTrack.GetDynamicParticle()->Get4Momentum().pz() / GeV; + + G4LorentzVector projectileMomentum = aTrack.GetDynamicParticle()->Get4Momentum(); + G4LorentzRotation toZ; + toZ.rotateZ(-projectileMomentum.phi()); + toZ.rotateY(-projectileMomentum.theta()); + G4LorentzRotation toLabFrame = toZ.inverse(); + + G4std::vector momentumBullet(4); + momentumBullet[0] =0.; + momentumBullet[1] =0; + momentumBullet[2] =0; + momentumBullet[3] =sqrt(px*px+py*py+pz*pz); + + G4InuclElementaryParticle * bullet = new G4InuclElementaryParticle(momentumBullet, bulletType); + + sumEnergy = bullet->getKineticEnergy(); // In GeV + if (bulletType == proton || bulletType == neutron) { + sumBaryon += 1; + } + + // Set target + G4InuclNuclei* target = NULL; + G4InuclParticle* targetH = NULL; + + G4std::vector targetMomentum(4, 0.0); + + G4double theNucleusA = theNucleus.GetN(); + + + + if ( !(G4int(theNucleusA) == 1) ) { + target = new G4InuclNuclei(targetMomentum, + theNucleusA, + theNucleus.GetZ()); + target->setEnergy(); + + G4std::vector bmom = bullet->getMomentum(); + eInit = sqrt(bmom[0] * bmom[0]); + G4std::vector tmom = target->getMomentum(); + eInit += sqrt(tmom[0] * tmom[0]); + + sumBaryon += theNucleusA; + + if (verboseLevel > 2) { + G4cout << "Bullet: " << G4endl; + bullet->printParticle(); + } + if (verboseLevel > 2) { + G4cout << "Target: " << G4endl; + target->printParticle(); + } + } + + G4CollisionOutput output; + + // Colliders initialisation + G4ElementaryParticleCollider* colep = new G4ElementaryParticleCollider; + G4IntraNucleiCascader* inc = new G4IntraNucleiCascader; // the actual cascade + inc->setInteractionCase(1); // Interaction type is particle with nuclei. + + G4NonEquilibriumEvaporator* noneq = new G4NonEquilibriumEvaporator; + G4EquilibriumEvaporator* eqil = new G4EquilibriumEvaporator; + G4Fissioner* fiss = new G4Fissioner; + G4BigBanger* bigb = new G4BigBanger; + G4InuclCollider* collider = new G4InuclCollider(colep, inc, noneq, eqil, fiss, bigb); + + if (G4int(theNucleusA) == 1) + { + do + { + targetH = new G4InuclElementaryParticle(targetMomentum, 1); + + output = collider->collide(bullet, targetH); + } + while(output.getOutgoingParticles().size()+output.getNucleiFragments().size() < 2.5); + + sumBaryon += 1; + + G4std::vector bmom = bullet->getMomentum(); + eInit = sqrt(bmom[0] * bmom[0]); + G4std::vector tmom = targetH->getMomentum(); + eInit += sqrt(tmom[0] * tmom[0]); + + if (verboseLevel > 2) { + G4cout << "Target: " << G4endl; + targetH->printParticle(); + } + + } + else + { + do + { + output = collider->collide(bullet, target ); + } + while( output.getOutgoingParticles().size()+output.getNucleiFragments().size() < 2.5 + && output.getOutgoingParticles().begin()->type()==bullet->type() ); + } + + if (verboseLevel > 1) + { + G4cout << " Cascade output: " << G4endl; + output.printCollisionOutput(); + } + + // Convert cascade data to use hadronics interface + + G4std::vector nucleiFragments = output.getNucleiFragments(); + G4std::vector particles = output.getOutgoingParticles(); + + G4int numSecondaries = nucleiFragments.size()+particles.size(); + theResult.SetStatusChange(fStopAndKill); + theResult.SetNumberOfSecondaries(numSecondaries); + + if (!particles.empty()) { + particleIterator ipart; + G4int outgoingParticle; + + for (ipart = particles.begin(); ipart != particles.end(); ipart++) { + outgoingParticle = ipart->type(); + G4std::vector mom = ipart->getMomentum(); + eTot += sqrt(mom[0] * mom[0]); + + G4double ekin = ipart->getKineticEnergy() * GeV; + G4ThreeVector aMom(mom[1], mom[2], mom[3]); + aMom = aMom.unit(); + + if (outgoingParticle == proton || outgoingParticle == neutron) { + sumBaryon -= 1; + } + + sumEnergy -= ekin / GeV; + + G4DynamicParticle* cascadeParticle = NULL; + + switch(outgoingParticle) { + + case proton: +#ifdef debug_G4CascadeInterface + G4cerr << "proton " << counter << " " << aMom << " " << ekin << G4endl; +#endif + cascadeParticle = + new G4DynamicParticle(G4Proton::ProtonDefinition(), aMom, ekin); + break; + + case neutron: +#ifdef debug_G4CascadeInterface + G4cerr << "neutron "<< counter<<" "<Set4Momentum(cascadeParticle->Get4Momentum()*=toLabFrame); + theResult.AddSecondary(cascadeParticle); + } + } + + // Get nuclei fragments + G4DynamicParticle * aFragment = 0; + G4ParticleDefinition * aIonDef = 0; + G4ParticleTable *theTableOfParticles = G4ParticleTable::GetParticleTable(); + + if (!nucleiFragments.empty()) { + nucleiIterator ifrag; + + for (ifrag = nucleiFragments.begin(); ifrag != nucleiFragments.end(); ifrag++) + { + G4double eKin = ifrag->getKineticEnergy() * GeV; + G4std::vector mom = ifrag->getMomentum(); + eTot += sqrt(mom[0] * mom[0]); + + G4ThreeVector aMom(mom[1], mom[2], mom[3]); + aMom = aMom.unit(); + + // hpw @@@ ==> Should be zero: G4double fragmentExitation = ifrag->getExitationEnergyInGeV(); + + if (verboseLevel > 2) { + G4cout << " Nuclei fragment: " << G4endl; + ifrag->printParticle(); + } + + G4int A = G4int(ifrag->getA()); + G4int Z = G4int(ifrag->getZ()); + aIonDef = theTableOfParticles->FindIon(Z,A,0,Z); + + aFragment = new G4DynamicParticle(aIonDef, aMom, eKin); + + sumBaryon -= A; + sumEnergy -= eKin / GeV; + + aFragment->Set4Momentum(aFragment->Get4Momentum()*=toLabFrame); + theResult.AddSecondary(aFragment); + } + } + + if (verboseLevel > 2) { + + if (sumBaryon != 0) { + G4cout << "ERROR: no baryon number conservation, sum of baryons = " + << sumBaryon << G4endl; + } + + if (verboseLevel > 2) { + if (sumEnergy > 0.01 ) { + G4cout << "Kinetic energy conservation violated by " + << sumEnergy << " GeV" << G4endl; + } + + G4cout << "Total energy conservation at level ~" + << (eInit - eTot) * GeV << " MeV" << G4endl; + + } + + if (sumEnergy < -5.0e-5 ) { // 0.05 MeV + G4cout << "FATAL ERROR: energy created " + << sumEnergy * GeV << " MeV" << G4endl; + } + } + return &theResult; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc new file mode 100644 index 0000000000..857792ae3b --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc @@ -0,0 +1,312 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4CollisionOutput.hh" +#include "G4ParticleLargerEkin.hh" +#include "g4std/algorithm" + +typedef G4std::vector::iterator particleIterator; + +G4CollisionOutput::G4CollisionOutput() + : verboseLevel(0) { + + if (verboseLevel > 3) { + G4cout << " >>> G4CollisionOutput::G4CollisionOutput" << G4endl; + } +} + +void G4CollisionOutput::setOnShell(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4CollisionOutput::setOnShell" << G4endl; + } + + const G4double accuracy = 0.00001; // momentum concerves at the level of 1 eV + + on_shell = false; + + G4std::vector ini_mom = bullet->getMomentum(); + G4std::vector momt = target->getMomentum(); + + G4int i; + for(i = 0; i < 4; i++) ini_mom[i] += momt[i]; + + G4std::vector out_mom = getTotalOutputMomentum(); + G4std::vector mon_non_cons(4); + if(verboseLevel > 2){ + G4cout << " bullet momentum = " << ini_mom[0]<<", "<< ini_mom[1]<<", "<< ini_mom[2]<<", "<< ini_mom[3]< 2){ + printCollisionOutput(); + G4cout << " momentum non conservation: " << G4endl + << " e " << mon_non_cons[0] + << " p " << pnc << G4endl; + G4cout << " remaining exitation " << eex_rest << G4endl; + } + + if(fabs(mon_non_cons[0]) > accuracy || pnc > accuracy) { // renormalization + G4int npart = outgoingParticles.size(); + + if(npart > 0) { + + G4std::vector last_mom = outgoingParticles[npart - 1].getMomentum(); + + for(G4int i = 1; i < 4; i++) last_mom[i] += mon_non_cons[i]; + outgoingParticles[npart - 1].setMomentum(last_mom); + } + else { + + G4int nnuc = nucleiFragments.size(); + + if(nnuc > 0) { + + G4std::vector last_mom = nucleiFragments[nnuc - 1].getMomentum(); + + for(G4int i = 1; i < 4; i++) last_mom[i] += mon_non_cons[i]; + nucleiFragments[nnuc - 1].setMomentum(last_mom); + nucleiFragments[nnuc - 1].setEnergy(); + }; + }; + out_mom = getTotalOutputMomentum(); + for(G4int i = 0; i < 4; i++) mon_non_cons[i] = ini_mom[i] - out_mom[i]; + pnc = sqrt(mon_non_cons[1] * mon_non_cons[1] + + mon_non_cons[2] * mon_non_cons[2] + + mon_non_cons[3] * mon_non_cons[3]); + + if(verboseLevel > 2){ + printCollisionOutput(); + G4cout << " momentum non conservation after (1): " << G4endl + << " e " << mon_non_cons[0] << " p " << pnc << G4endl; + } + G4bool need_hard_tuning = true; + + if(nucleiFragments.size() > 0) { + for(G4int i = 0; i < G4int(nucleiFragments.size()); i++) { + + G4double eex = nucleiFragments[i].getExitationEnergyInGeV(); + + if(eex > 0.0 && eex + mon_non_cons[0] >= 0.0) { + nucleiFragments[i].setExitationEnergy(1000.0 * (eex + mon_non_cons[0])); + need_hard_tuning = false; + break; + }; + }; + if(need_hard_tuning && mon_non_cons[0] > 0.) { + nucleiFragments[0].setExitationEnergy(1000.0 * mon_non_cons[0]); + need_hard_tuning = false; + }; + }; + + if(need_hard_tuning) { + + G4std::pair, G4int> tune_par = selectPairToTune(mon_non_cons[0]); + G4std::pair tune_particles = tune_par.first; + G4int mom_ind = tune_par.second; + + if(verboseLevel > 2) { + G4cout << " p1 " << tune_particles.first << " p2 " << tune_particles.second + << " ind " << mom_ind << G4endl; + } + if(tune_particles.first >= 0 && tune_particles.second >= 0 && + mom_ind >= 1) { // tunning possible + + G4std::vector mom1 = outgoingParticles[tune_particles.first].getMomentum(); + G4std::vector mom2 = outgoingParticles[tune_particles.second].getMomentum(); + G4double newE12 = mom1[0] + mom2[0] + mon_non_cons[0]; + G4double R = 0.5 * (newE12 * newE12 + mom2[0] * mom2[0] - mom1[0] * mom1[0]) / newE12; + G4double Q = -(mom1[mom_ind] + mom2[mom_ind]) / newE12; + G4double UDQ = 1.0 / (Q * Q - 1.0); + G4double W = (R * Q + mom2[mom_ind]) * UDQ; + G4double V = (mom2[0] * mom2[0] - R * R) * UDQ; + G4double DET = W * W + V; + + if(DET > 0.0) { + + G4double x1 = -(W + sqrt(DET)); + G4double x2 = -(W - sqrt(DET)); + // choose the appropriate solution + G4bool xset = false; + G4double x = 0.0; + + if(mon_non_cons[0] > 0.0) { // x has to be > 0.0 + if(x1 > 0.0) { + if(R + Q * x1 >= 0.0) { + x = x1; + xset = true; + }; + }; + if(!xset && x2 > 0.0) { + if(R + Q * x2 >= 0.0) { + x = x2; + xset = true; + }; + }; + } + else { + if(x1 < 0.0) { + if(R + Q * x1 >= 0.) { + x = x1; + xset = true; + }; + }; + if(!xset && x2 < 0.0) { + if(R + Q * x2 >= 0.0) { + x = x2; + xset = true; + }; + }; + }; + if(xset) { // retune momentums + mom1[mom_ind] += x; + mom2[mom_ind] -= x; + outgoingParticles[tune_particles.first ].setMomentum(mom1); + outgoingParticles[tune_particles.second].setMomentum(mom2); + out_mom = getTotalOutputMomentum(); + G4std::sort(outgoingParticles.begin(), outgoingParticles.end(), G4ParticleLargerEkin()); + for(G4int i = 0; i < 4; i++) mon_non_cons[i] = ini_mom[i] - out_mom[i]; + pnc = sqrt(mon_non_cons[1] * mon_non_cons[1] + + mon_non_cons[2] * mon_non_cons[2] + + mon_non_cons[3] * mon_non_cons[3]); + if(verboseLevel > 2){ + G4cout << " momentum non conservation tuning: " << G4endl + << " e " << mon_non_cons[0] << " p " << pnc << G4endl; + } + if(fabs(mon_non_cons[0]) < accuracy || pnc < accuracy) on_shell = true; + } + else { + if(verboseLevel > 2){ + G4cout << " no appropriate solution found " << G4endl; + } + }; + } + else { + if(verboseLevel > 2){ + G4cout << " DET < 0 " << G4endl; + } + }; + } + else { + if(verboseLevel > 2){ + G4cout << " tuning impossible " << G4endl; + } + }; + } + else { + on_shell = true; + }; + } + else { + on_shell = true; + }; + +} + +G4std::pair, G4int> G4CollisionOutput::selectPairToTune(G4double de) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4CollisionOutput::selectPairToTune" << G4endl; + } + + G4std::pair tup(-1, -1); + G4int i3 = -1; + G4std::pair, G4int> badp(tup, i3); + + if(outgoingParticles.size() < 2) { + + return badp; + } + else { + + G4int ibest1 = -1; + G4int ibest2 = -1; + G4double pbest = 0.0; + G4double pcut = 0.3 * sqrt(1.88 * fabs(de)); + G4double p1 = 0.0; + G4double p2; + + for(G4int i = 0; i < G4int(outgoingParticles.size()) - 1; i++) { + + G4std::vector mom1 = outgoingParticles[i].getMomentum(); + + for(G4int j = i+1; j < G4int(outgoingParticles.size()); j++) { + + G4std::vector mom2 = outgoingParticles[j].getMomentum(); + + for(G4int l = 1; l < 4; l++) { + if(mom1[l] * mom2[l] < 0.0) { + if(fabs(mom1[l]) > pcut && fabs(mom2[l]) > pcut) { + + G4double psum = fabs(mom1[l]) + fabs(mom2[l]); + + if(psum > pbest) { + ibest1 = i; + ibest2 = j; + i3 = l; + p1 = mom1[l]; + p2 = mom2[l]; + pbest = psum; + }; + }; + }; + }; + }; + }; + if(i3 > 0) { + if(de > 0.0) { + if(p1 > 0.0) { + tup.first = ibest1; + tup.second = ibest2; + } + else { + tup.first = ibest2; + tup.second = ibest1; + }; + } + else { + if(p1 < 0.0) { + tup.first = ibest2; + tup.second = ibest1; + } + else { + tup.first = ibest1; + tup.second = ibest2; + }; + }; + + return G4std::pair, G4int>(tup, i3); + }; + }; + + return badp; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc b/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc new file mode 100644 index 0000000000..b879301df6 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc @@ -0,0 +1,1968 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4Collider.hh" +#include "G4ElementaryParticleCollider.hh" +#include "G4ParticleLargerEkin.hh" +#include "g4std/algorithm" + +typedef G4std::vector::iterator particleIterator; + +G4ElementaryParticleCollider::G4ElementaryParticleCollider() + : verboseLevel(1) { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::G4ElementaryParticleCollider" << G4endl; + } + +}; + +G4CollisionOutput G4ElementaryParticleCollider::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::collide" << G4endl; + } + + G4std::vector totscm(4, 0.0); //::: fix + G4std::vector totlab(4, 0.0); + + // generate nucleon or pion collission with NUCLEON + // or pion with quasideutron + + if (verboseLevel > 2){ + G4cout << " here " << G4endl; + } + + G4CollisionOutput output; + G4InuclElementaryParticle* particle1 = + dynamic_cast(bullet); + G4InuclElementaryParticle* particle2 = + dynamic_cast(target); + + if (particle1 && particle2) { // particle / particle + + if (!particle1->photon() && !particle2->photon()) { // ok + + if (particle1->nucleon() || particle2->nucleon()) { // ok + + if (verboseLevel > 2){ + G4cout << " here1 " << G4endl; + particle1->printParticle(); + particle2->printParticle(); + + G4std::vector momb = particle1->getMomentum(); + G4std::vector momt = particle2->getMomentum(); + + for(G4int i = 0; i < 4; i++) momb[i] += momt[i]; + G4cout << " total input: px " << momb[1] << " py " << momb[2] + << " pz " << momb[3] << " e " << momb[0] << G4endl; + + } + + G4LorentzConvertor convertToSCM; + + if(particle2->nucleon()) { + convertToSCM.setBullet(particle1->getMomentum(), particle1->getMass()); + convertToSCM.setTarget(particle2->getMomentum(), particle2->getMass()); + + } else { + + convertToSCM.setBullet(particle2->getMomentum(), particle2->getMass()); + convertToSCM.setTarget(particle1->getMomentum(), particle1->getMass()); + }; + + convertToSCM.toTheCenterOfMass(); + + G4double ekin = convertToSCM.getKinEnergyInTheTRS(); + G4double etot_scm = convertToSCM.getTotalSCMEnergy(); + G4double pscm = convertToSCM.getSCMMomentum(); + + if(verboseLevel > 2){ + G4cout << " ekin " << ekin << " etot_scm " << etot_scm << " pscm " << + pscm << G4endl; + } + + G4std::vector particles = + generateSCMfinalState(ekin, etot_scm, pscm, particle1, particle2, &convertToSCM); + + if(verboseLevel > 2){ + G4cout << " particles " << particles.size() << G4endl; + + for(G4int i = 0; i < G4int(particles.size()); i++) + particles[i].printParticle(); + + } + + if(!particles.empty()) { // convert back to Lab + + particleIterator ipart; + + for(ipart = particles.begin(); ipart != particles.end(); ipart++) { + + if(verboseLevel > 2){ + G4std::vector mom_scm = ipart->getMomentum(); + G4cout << mom_scm[0] << " " << mom_scm[1] << " " + << mom_scm[2] << " " << mom_scm[3] << G4endl; + + for(G4int i = 0; i < 4; i++) { + totscm[i] += mom_scm[i]; + G4cout << "8" << "/" << i << G4endl; + } + + } + + G4std::vector mom = + convertToSCM.backToTheLab(ipart->getMomentum()); + + if(verboseLevel > 2){ + for(G4int i = 0; i < 4; i++) totlab[i] += mom[i]; + } + + ipart->setMomentum(mom); + }; + + G4std::sort(particles.begin(), particles.end(), G4ParticleLargerEkin()); + + if(verboseLevel > 2){ + G4cout << " In SCM: total outgoing momentum " << G4endl + << " E " << totscm[0] << " px " << totscm[1] + << " py " << totscm[2] << " pz " << totscm[3] << G4endl; + G4cout << " In Lab: total outgoing momentum " << G4endl + << " E " << totlab[0] << " px " << totlab[1] + << " py " << totlab[2] << " pz " << totlab[3] << G4endl; + } + }; + + output.addOutgoingParticles(particles); + + } else { + + if(particle1->quasi_deutron() || particle2->quasi_deutron()) { + + if(particle1->pion() || particle2->pion()) { + G4LorentzConvertor convertToSCM; + + if(particle1->pion()) { + convertToSCM.setBullet(particle1->getMomentum(), particle1->getMass()); + convertToSCM.setTarget(particle2->getMomentum(), particle2->getMass()); + + } else { + + convertToSCM.setBullet(particle2->getMomentum(), particle2->getMass()); + convertToSCM.setTarget(particle1->getMomentum(), particle1->getMass()); + }; + + convertToSCM.toTheCenterOfMass(); + + G4double etot_scm = convertToSCM.getTotalSCMEnergy(); + + if(verboseLevel > 2){ + G4cout << " etot_scm " << etot_scm << G4endl; + } + + G4std::vector particles = + generateSCMpionAbsorption(etot_scm, particle1, particle2); + + if(verboseLevel > 2){ + G4cout << " particles " << particles.size() << G4endl; + + for(G4int i = 0; i < G4int(particles.size()); i++) + particles[i].printParticle(); + + } + + if(!particles.empty()) { // convert back to Lab + particleIterator ipart; + + for(ipart = particles.begin(); ipart != particles.end(); ipart++) { + + if(verboseLevel > 2){ + G4std::vector mom_scm = ipart->getMomentum(); + + for(G4int i = 0; i < 4; i++) totscm[i] += mom_scm[i]; + + } + + G4std::vector mom = + convertToSCM.backToTheLab(ipart->getMomentum()); + + ipart->setMomentum(mom); + }; + + G4std::sort(particles.begin(), particles.end(), G4ParticleLargerEkin()); + + if(verboseLevel > 2){ + G4cout << " In SCM: total outgoing momentum " << G4endl + << " E " << totscm[0] << " px " << totscm[1] + << " py " << totscm[2] << " pz " << totscm[2] << G4endl; + } + + output.addOutgoingParticles(particles); + }; + + } else { + + G4cout << " ElementaryParticleCollider -> can collide just pions with deutron at the moment " << G4endl; + }; + + } else { + + G4cout << " ElementaryParticleCollider -> can collide just smth. with nucleon or deutron at the moment " << G4endl; + }; + }; + + } else { + + G4cout << " ElementaryParticleCollider -> can not collide photons at the moment " << G4endl; + }; + + } else { + + G4cout << " ElementaryParticleCollider -> can collide only particle with particle " << G4endl; + }; + + return output; +} + +G4int G4ElementaryParticleCollider::generateMultiplicity(G4int is, + G4double ekin) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::generateMultiplicity" << G4endl; + } + + const G4double asig[4][6][31] = { + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 24.3, 24.1, 24.0, 26.3, + 28.6, 24.8, 19.9, 19.2, 17.4, 15.3, 13.5, 12.3, 11.9, 10.4, + 11.8, 11.4, 11.0, 10.8, 10.9, 11.7, 11.4, 10.2, 11.0, 11.0, 9.0}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 1.45, 2.90, 4.10, + 5.30, 22.0, 21.2, 19.9, 14.9, 12.6, 12.3, 11.3, 10.8, 9.50, + 8.27, 7.20, 6.70, 6.25, 6.04, 5.89, 5.70, 5.60, 5.05, 4.17,4.00}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 2.27, 4.28, 7.81, 8.03, 8.11, 7.90, 7.82, 7.61, 7.47, + 7.07, 7.66, 7.05, 6.71, 6.38, 6.36, 6.37, 6.57, 6.01, 5.48, 6.80}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 1.20, 2.85, 3.70, 4.81, 5.33, 7.74, 6.91, 6.94, + 7.57, 7.21, 7.11, 7.10, 6.93, 6.79, 6.71, 6.55, 6.55, 6.15, 8.50}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0. , .005, 0.54, 0.74, 0.86, 0.91, 1.10, 1.16, + 1.36, 1.40, 1.43, 1.47, 1.47, 1.43, 1.38, 1.38, 1.63, 1.36, 2.80}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 34.0, 46.2, 46.9, 45.2, 47.1, 42.3, 41.8, 41.2, 41.6, 41.6, + 41.0, 43.0, 42.4, 40.0, 39.9, 39.8, 42.0, 40.0, 39.8, 39.6, 38.7}}, + + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 33.0, 31.3, 29.5, 27.8, + 14.6, 16.0, 17.5, 18.3, 19.4, 18.7, 15.6, 14.8, 13.6, 12.5, + 12.2, 11.9, 11.4, 11.2, 10.1, 9.62, 8.41, 7.14, 7.09, 5.04, 10.2}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 2.00, 4.00, 6.50, + 19.5, 20.8, 19.8, 18.6, 17.7, 14.4, 13.5, 10.4, 10.1, 12.0, + 8.87, 8.51, 8.49, 9.20, 8.29, 7.43, 8.20, 4.69, 4.57, 4.06, 4.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.68, 2.76, 3.85, 8.35, 12.7, 12.3, 10.8, 12.0, 10.9, 10.2, + 10.6, 12.2, 11.8, 11.0, 10.4, 10.5, 11.0, 10.6, 11.8, 12.5, 13.2}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.22, 0.52, 0.64, 1.19, 1.52, 1.75, 1.51, 2.04, 1.85, 1.70, + 1.92, 1.66, 1.74, 1.50, 1.39, 1.35, 1.41, 1.48, 1.43, 1.35, 3.20}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0.14, 0.24, 0.30, 0.46, 0.85, 1.40, 1.54, 1.52, + 1.47, 1.48, 1.49, 1.42, 1.39, 1.37, 1.22, 1.19, 0.93, 0. ,2.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 35.0, 40.0, 42.4, 42.3, 41.0, 40.9, 40.4, 39.8, 35.0, 33.6, + 41.2, 41.0, 41.1, 41.2, 41.2, 39.6, 36.0, 36.0, 36.2, 0. ,40.2}}, + + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 60.0, 38.0, 30.6, 24.0, + 18.5, 12.8, 13.6, 9.15, 8.20, 7.80, 7.10, 6.40, 5.81, 5.85, + 5.50, 5.33, 5.40, 5.50, 4.90, 5.02, 5.00, 4.98, 4.96, 4.96, 4.50}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.38, 0.75, 1.28, + 2.26, 11.8, 11.1, 7.56, 6.04, 5.68, 4.15, 3.21, 2.12, 1.66, + 1.54, 1.53, 1.47, 1.33, 1.39, 1.35, 1.29, 1.23, 1.13, 1.06, 0.70}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.05, 2.19, 6.02, 7.36, 6.97, 5.83, 6.53, 5.09, 4.24, 3.24, + 3.31, 3.11, 2.91, 2.78, 2.72, 2.68, 2.48, 2.27, 2.02, 1.77, 4.40}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.06, 0.35, 0.55, 0.77, 0.89, 0.80, 0.86, 0.97, 0.90, 0.86, + 0.84, 0.84, 0.83, 0.81, 0.79, 0.82, 0.76, 0.88, 0.89, 0.89, 3.00}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0.02, 0.07,0.33, 0.92, 1.39, 2.11, 1.81, 2.39, 2.60, + 2.19, 1.70, 1.60,0.68, 1.43, 1.46, 1.46, 1.37, 1.16, 1.09, 2.60}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 18.9,27.2, 34.9, 29.1, 30.8, 29.6, 28.2, 27.5, 26.9, 26.3, + 25.9,25.6, 25.2, 26.1, 25.5, 25.4, 25.3, 25.1, 24.9, 24.8,24.1}}, + + {{5.90,9.40, 24.5, 62.6, 65.3, 41.3, 29.3, 24.3, 22.7, 22.9, + 23.2,28.4, 11.7, 10.1, 8.30, 7.16, 6.49, 6.36, 6.60, 5.84, + 5.30,4.50, 3.90, 4.40, 4.74, .794, .824, .714, 0.59, 0. ,4.60}, + + {0. ,0. , 0. , 0. , 0.10, 0.40, 2.70, 3.50, 5.30, 6.60, + 9.10,17.6, 12.2, 9.78, 7.51, 6.91, 6.86, 6.46, 6.19, 5.13, + 3.90,2.82, 3.10, 3.12, 2.52, 2.22, 2.02, 2.01, 1.98, 2.14, 1.20}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.76,2.63, 3.72, 6.53, 7.47, 7.94, 7.12, 6.85, 6.09, 5.35, + 4.12,3.85, 3.68, 4.09, 3.58, 3.29, 3.08, 2.93, 2.80, 2.65, 3.30}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.59,0.74, 1.47, 4.10, 4.78, 4.90, 5.07, 5.50, 5.48, 5.03, + 4.65,4.39, 4.06, 3.53, 3.08, 3.05, 2.91, 3.42, 3.93, 3.93, 4.10}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.01,.007, 0.03, .099, .251, .376, .419, .582, .755, .777, + 1.13,1.08, 1.13, 1.08, .962, .866, .738, .674, .645, .613, 1.30}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 31.3,46.0, 30.0, 35.7, 33.4, 31.6, 30.4, 29.6, 28.9, 28.5, + 28.1,27.5, 31.0, 27.7, 27.8, 26.1, 25.2, 6.92, 6.70, 0. , 25.7}} + }; + + const G4double large_cut = 4.0; + G4std::pair iksk = getPositionInEnergyScale2(ekin); + G4int ik = iksk.first; + G4double sk = iksk.second; + G4int l = is; + + if (l == 4) l = 1; + if (l == 10) l = 3; + if (l == 5 || l == 6) l = 4; + + G4std::vector sigm(5); + G4double stot = 0.0; + + if (l == 7 || l == 14) { // pi0 P or pi0 N + + for (G4int j = 0; j < 5; j++) { + sigm[j] = fabs(0.5 * (asig[2][j][ik - 1] + asig[3][j][ik - 1] + + sk * (asig[2][j][ik] + asig[3][j][ik] - + asig[2][j][ik - 1] - asig[3][j][ik - 1]))); + stot += sigm[j]; + }; + + } else { + + for (G4int j = 0; j < 5; j++) { + sigm[j] = fabs(asig[l - 1][j][ik - 1] + sk * (asig[l - 1][j][ik] + - asig[l - 1][j][ik - 1])); + stot += sigm[j]; + }; + }; + + G4double sl = inuclRndm(); + G4double ptot = 0.0; + G4int mul = 0; + + for (G4int i = 0; i < 5; i++) { + ptot += sigm[i] / stot; + + if (sl <= ptot) { + mul = i; + + break; + }; + + }; + + if(ekin > large_cut && mul == 1) mul = 2; + + if(verboseLevel > 3){ + G4cout << " multiplicity " << mul + 2 << G4endl; + } + + return mul + 2; +} + +G4std::vector G4ElementaryParticleCollider:: +generateSCMfinalState(G4double ekin, + G4double etot_scm, + G4double pscm, + G4InuclElementaryParticle* particle1, + G4InuclElementaryParticle* particle2, + G4LorentzConvertor* toSCM) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::generateSCMfinalState" << G4endl; + } + + const G4double ang_cut = 0.9999; + const G4double difr_const = 0.3678794; + const G4int itry_max = 10; + G4InuclElementaryParticle dummy; + G4std::vector particles; + G4std::vector particle_kinds; + G4int type1 = particle1->type(); + G4int type2 = particle2->type(); + G4int is = type1 * type2; + + if(verboseLevel > 3){ + G4cout << " is " << is << G4endl; + } + + G4int multiplicity = 0; + G4bool generate = true; + + while (generate) { + + if(multiplicity == 0) { + multiplicity = generateMultiplicity(is, ekin); + + } else { + + multiplicity = generateMultiplicity(is, ekin); + particle_kinds.resize(0); + }; + + if(multiplicity == 2) { // 2 -> 2 + G4int kw; + + if(reChargering(ekin, is)) { // rechargering + kw = 2; + + switch (is) { + + case 6: // pi+ N -> pi0 P + particle_kinds.push_back(7); + particle_kinds.push_back(1); + break; + + case 5: // pi- P -> pi0 N + particle_kinds.push_back(7); + particle_kinds.push_back(2); + break; + + case 7: // pi0 P -> pi+ N + particle_kinds.push_back(3); + particle_kinds.push_back(2); + break; + + case 14: // pi0 N -> pi- P + particle_kinds.push_back(5); + particle_kinds.push_back(1); + break; + + default: + G4cout << " strange recharge: " << is << G4endl; + + particle_kinds.push_back(type1); + particle_kinds.push_back(type2); + kw = 1; + }; + + } else { // just elastic + + kw = 1; + particle_kinds.push_back(type1); + particle_kinds.push_back(type2); + }; + + G4std::vector mom; + + if (kw == 2) { // need to rescale momentum + G4double m1 = dummy.getParticleMass(particle_kinds[0]); + m1 *= m1; + G4double m2 = dummy.getParticleMass(particle_kinds[1]); + m2 *= m2; + G4double a = 0.5 * (etot_scm * etot_scm - m1 - m2); + G4double np = sqrt((a * a - m1 * m2) / (m1 + m2 + 2.0 * a)); + mom = particleSCMmomentumFor2to2(is, kw, ekin, np); + + } else { + + mom = particleSCMmomentumFor2to2(is, kw, ekin, pscm); + }; + + if (verboseLevel > 3){ + G4cout << " before rotation px " << mom[1] << " py " << mom[2] << + " pz " << mom[3] << G4endl; + } + + mom = toSCM->rotate(mom); + + if (verboseLevel > 3){ + G4cout << " after rotation px " << mom[1] << " py " << mom[2] << + " pz " << mom[3] << G4endl; + } + G4std::vector mom1(4); + + for (G4int i = 1; i < 4; i++) mom1[i] = -mom[i]; + + particles.push_back(G4InuclElementaryParticle(mom, particle_kinds[0])); + particles.push_back(G4InuclElementaryParticle(mom1, particle_kinds[1])); + generate = false; + + } else { // 2 -> many + + particle_kinds = generateOutgoingKindsFor2toMany(is, multiplicity, ekin); + + G4int itry = 0; + G4bool bad = true; + G4int knd_last = particle_kinds[multiplicity - 1]; + G4double mass_last = dummy.getParticleMass(knd_last); + + if (verboseLevel > 3){ + G4cout << " knd_last " << knd_last << " mass " << mass_last << G4endl; + } + + while (bad && itry < itry_max) { + itry++; + + if (verboseLevel > 3){ + G4cout << " itry in while " << itry << G4endl; + } + + G4std::vector modules = + generateMomModules(particle_kinds, multiplicity, is, ekin, etot_scm); + + if (G4int(modules.size()) == multiplicity) { + + if (multiplicity == 3) { + G4std::vector mom3 = + particleSCMmomentumFor2to3(is, knd_last, ekin, modules[2]); + + mom3 = toSCM->rotate(mom3); + + // generate the momentum of first + G4double ct = -0.5 * (modules[2] * modules[2] + + modules[0] * modules[0] - + modules[1] * modules[1]) / + modules[2] / modules[0]; + + if(fabs(ct) < ang_cut) { + + if(verboseLevel > 2){ + G4cout << " ok for mult " << multiplicity << G4endl; + } + + G4std::vector mom1 = generateWithFixedTheta(ct, modules[0]); + + mom1 = toSCM->rotate(mom3, mom1); + + G4std::vector mom2(4); + + for(G4int i = 1; i < 4; i++) mom2[i] = - (mom3[i] + mom1[i]); + + bad = false; + generate = false; + + particles.push_back(G4InuclElementaryParticle(mom1, particle_kinds[0])); + particles.push_back(G4InuclElementaryParticle(mom2, particle_kinds[1])); + particles.push_back(G4InuclElementaryParticle(mom3, particle_kinds[2])); + }; + + } else { // multiplicity > 3 + + // generate first mult - 2 momentums + G4std::vector > scm_momentums; + G4std::vector tot_mom(4); + + for (G4int i = 0; i < multiplicity - 2; i++) { + G4double p0 = particle_kinds[i] < 3 ? 0.36 : 0.25; + G4double alf = 1.0 / p0 / (p0 - (modules[i] + p0) * + exp(-modules[i] / p0)); + G4double st = 2.0; + G4int itry1 = 0; + + while (fabs(st) > ang_cut && itry1 < itry_max) { + itry1++; + G4double s1 = modules[i] * inuclRndm(); + G4double s2 = alf * difr_const * p0 * inuclRndm(); + + if(verboseLevel > 3){ + G4cout << " s1 * alf * exp(-s1 / p0) " << s1 * alf * exp(-s1 / p0) + << " s2 " << s2 << G4endl; + } + + if(s1 * alf * exp(-s1 / p0) > s2) st = s1 / modules[i]; + + }; + + if(verboseLevel > 3){ + G4cout << " itry1 " << itry1 << " i " << i << " st " << st << G4endl; + } + + if(itry1 == itry_max) { + + if(verboseLevel > 2){ + G4cout << " high energy angles generation: itry1 " << itry1 << G4endl; + } + + st = 0.5 * inuclRndm(); + }; + + G4double ct = sqrt(1.0 - st * st); + + if(inuclRndm() > 0.5) ct = -ct; + + G4double pt = modules[i]*st; + G4double phi = randomPHI(); + + G4std::vector mom(4); + + mom[1] = pt * cos(phi); + mom[2] = pt * sin(phi); + mom[3] = modules[i] * ct; + + for(G4int i = 1; i < 4; i++) tot_mom[i] += mom[i]; + + scm_momentums.push_back(mom); + }; + + // handle last two + G4double tot_mod = sqrt(tot_mom[1] * tot_mom[1] + + tot_mom[2] * tot_mom[2] + tot_mom[3] * tot_mom[3]); + G4double ct = -0.5 * (tot_mod * tot_mod + + modules[multiplicity - 2] * modules[multiplicity - 2] - + modules[multiplicity - 1] * modules[multiplicity - 1]) / tot_mod / + modules[multiplicity - 2]; + + if (verboseLevel > 2){ + G4cout << " ct last " << ct << G4endl; + } + + if (fabs(ct) < ang_cut) { + + G4int i(0); + for (i = 0; i < multiplicity - 2; i++) + scm_momentums[i] = toSCM->rotate(scm_momentums[i]); + + tot_mom = toSCM->rotate(tot_mom); + + G4std::vector mom = + generateWithFixedTheta(ct, modules[multiplicity - 2]); + + mom = toSCM->rotate(tot_mom, mom); + scm_momentums.push_back(mom); + + // and the last one + G4std::vector mom1(4); + + for (i = 1; i < 4; i++) mom1[i] = -mom[i] - tot_mom[i]; + + scm_momentums.push_back(mom1); + bad = false; + generate = false; + + if (verboseLevel > 2){ + G4cout << " ok for mult " << multiplicity << G4endl; + } + + for (i = 0; i < multiplicity; i++) { + particles.push_back(G4InuclElementaryParticle( + scm_momentums[i], particle_kinds[i])); + }; + }; + }; + }; + }; + + if (itry == itry_max) { + + if (verboseLevel > 2){ + G4cout << " cannot generate the distr. for mult " << multiplicity << + G4endl << " and set it to " << multiplicity - 1 << G4endl; + } + + }; + }; + }; + + if (verboseLevel > 3) { + G4cout << " <<< G4ElementaryParticleCollider::generateSCMfinalState" << G4endl; + } + + return particles; +} + +G4std::vector G4ElementaryParticleCollider:: +generateMomModules( + const G4std::vector& kinds, + G4int mult, + G4int is, + G4double ekin, + G4double etot_cm) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::generateMomModules" << G4endl; + } + + if (verboseLevel > 2){ + G4cout << " mult " << mult << " is " << is << " ekin " << ekin << " etot_cm " << + etot_cm << G4endl; + } + + const G4int itry_max = 10; + const G4double small = 1.e-10; + G4InuclElementaryParticle dummy; + G4int itry = 0; + + G4std::vector modules(mult); + G4std::vector masses2(mult); + + for (G4int i = 0; i < mult; i++) { + G4double mass = dummy.getParticleMass(kinds[i]); + masses2[i] = mass * mass; + }; + + G4double mass_last = sqrt(masses2[mult - 1]); + + if (verboseLevel > 3){ + G4cout << " knd_last " << kinds[mult - 1] << " mlast " << mass_last << G4endl; + } + + while (itry < itry_max) { + itry++; + if(verboseLevel > 3){ + G4cout << " itry in generateMomModules " << itry << G4endl; + } + + G4int ilast = -1; + G4double eleft = etot_cm; + + for (G4int i = 0; i < mult - 1; i++) { + + G4double pmod = + getMomModuleFor2toMany(is, mult, kinds[i], ekin); + + if (pmod < small) break; + eleft -= sqrt(pmod * pmod + masses2[i]); + + if (verboseLevel > 3){ + G4cout << " kp " << kinds[i] << " pmod " << pmod << " mass2 " << masses2[i] << G4endl; + G4cout << " x1 " << eleft - mass_last << G4endl; + } + + if (eleft <= mass_last) break; + ilast++; + modules[i] = pmod; + }; + + if (ilast == mult - 2) { + + G4double plast = eleft * eleft - masses2[mult - 1]; + + if (verboseLevel > 2){ + G4cout << " plast ** 2 " << plast << G4endl; + } + + if (plast > small) { + plast = sqrt(plast); + modules[mult - 1] = plast; + + if (mult == 3) { + + if(satisfyTriangle(modules)) { + + return modules; + } + + } else { + + return modules; + }; + }; + }; + }; + + modules.resize(0); + + return modules; +} + +G4bool G4ElementaryParticleCollider::satisfyTriangle( + const G4std::vector& modules) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::satisfyTriangle" << G4endl; + } + + G4bool good = true; + + if(modules.size() == 3) { + + if(fabs(modules[1] - modules[2]) > modules[0] || + modules[0] > modules[1] + modules[2] || + fabs(modules[0] - modules[2]) > modules[1] || + modules[1] > modules[0] + modules[2] || + fabs(modules[0] - modules[1]) > modules[2] || + modules[2] > modules[1] + modules[0]) good = false; + + }; + + return good; +} + +G4int G4ElementaryParticleCollider::getIL(G4int is, + G4int mult) const { + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::getIL" << G4endl; + } + + const G4int ifdef[4][7] = { + {2, 3, 2, 2, 3, 3, 2}, + {4, 4, 3, 4, 4, 4, 3}, + {5, 6, 4, 5, 5, 5, 4}, + {7, 7, 5, 7, 6, 6, 5} + }; + + G4int l = is; + + if(l == 14) { + l = 5; + + } else if(l == 7) { + l = 6; + + } else if(l == 10) { + + l = 7; + }; + + return ifdef[mult - 3][l - 1]; +} + +G4std::vector G4ElementaryParticleCollider:: +generateOutgoingKindsFor2toMany( + G4int is, + G4int mult, + G4double ekin) const { + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::generateOutgoingKindsFor2toMany" << G4endl; + } + + const G4double bsig[4][20][20] = { + {{1.20,3.70,3.98,3.85,3.51,2.90,2.86,2.81,2.77,2.80, + 2.54,2.00,1.90,1.75,1.68,1.61,1.54,1.40,1.25,1.17}, + {8.00,14.0,13.0,12.0,11.4,9.70,9.41,8.52,8.03,6.70, + 5.73,5.20,4.80,4.54,4.36,4.28,4.16,4.10,3.80,3.00}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0.37,0.41,0.92,1.10,0.98,0.85,0.74,0.74,0.83, + 0.71,0.68,0.53,0.48,0.41,0.41,0.41,0.37,0.37,0.37}, + {0. ,0.30,1.22,2.51,2.67,2.95,2.95,2.95,2.96,2.84, + 2.80,2.70,3.00,2.80,2.46,2.46,2.45,2.40,2.40,2.20}, + {0. ,1.40,2.37,4.07,3.90,3.80,3.70,3.70,3.60,3.40, + 3.20,3.50,3.17,3.00,2.80,2.70,2.60,2.60,2.40,2.20}, + {0. ,0.20,0.28,0.31,0.36,0.38,0.40,0.42,0.43,0.44, + 0.46,0.48,0.50,0.80,0.71,0.80,0.96,1.20,1.00,0.91}, + {0. ,0. ,0.14,0.14,0.14,0.14,0.12,0.11,0.11,0.11, + 0.14,0.17,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.14}, + {0. ,0. ,0.02,0.21,0.74,1.10,1.50,1.76,1.98,2.40, + 2.50,2.60,2.60,2.50,2.50,2.40,2.40,2.30,2.10,2.00}, + {0. ,0. ,0.10,0.40,1.15,1.60,1.80,2.19,2.80,2.30, + 2.90,2.60,2.60,2.60,2.50,2.50,2.50,2.40,2.20,1.85}, + {0. ,0. ,0.80,1.90,1.50,1.80,1.70,1.60,1.80,1.90, + 1.80,1.60,1.50,1.43,1.41,1.30,1.28,1.30,1.60,1.70}, + {0. ,0. ,0.14,0.16,0.17,0.17,0.21,0.21,0.22,0.23, + 0.24,0.25,0.41,0.36,0.40,0.46,0.52,0.50,0.50,0.46}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0. ,0. ,0.04,0.06,0.05,0.04,0.04,0.04, + 0.04,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03}, + {0. ,0. ,0. ,.005,0.02,0.07,0.11,0.15,0.17,0.19, + 0.24,0.25,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.21}, + {0. ,0. ,0. ,0. ,0.05,0.09,0.18,0.20,0.22,0.28, + 0.36,0.41,0.42,0.43,0.44,0.45,0.46,0.46,0.47,0.47}, + {0. ,0. ,0. ,0. ,0.09,0.16,0.18,0.22,0.28,0.23, + 0.29,0.26,0.26,0.26,0.25,0.25,0.25,0.24,0.22,0.18}, + {0. ,0. ,0. ,0. ,0.15,0.18,0.17,0.16,0.18,0.19, + 0.18,0.16,0.15,0.14,0.14,0.13,0.12,0.13,0.16,0.17}, + {0. ,0. ,0. ,0. ,0.02,0.02,0.02,0.02,0.04,0.05, + 0.05,0.06,0.07,0.10,0.11,0.10,0.09,0.09,0.09,0.09}, + {0. ,0. ,0. ,0. ,0.17,0.16,0.15,0.16,0.17,0.18, + 0.20,0.21,0.22,0.23,0.24,0.21,0.18,0.19,0.20,0.21}}, + + {{12.0,14.0,13.1,12.0,11.0,10.0,8.70,6.30,5.20,7.80, + 6.40,6.20,6.20,6.80,5.40,4.80,4.80,2.60,2.50,1.90}, + {1.90,2.50,2.60,1.80,1.70,1.68,1.61,1.50,1.46,1.40, + 1.31,1.17,1.14,1.10,1.09,1.03,1.00,0.99,0.97,0.96}, + {5.60,4.30,4.20,4.80,5.00,2.70,3.20,2.60,3.40,2.80, + 1.16,1.14,1.15,1.30,1.80,1.60,1.20,1.10,1.10,1.20}, + {0.12,1.40,1.30,1.20,2.40,2.00,1.60,3.80,3.40,3.20, + 3.50,3.80,3.70,3.30,3.30,3.40,3.50,3.16,3.80,4.10}, + {0. ,0.77,1.75,5.28,6.30,5.90,5.30,4.90,4.80,4.70, + 4.20,3.72,3.60,3.40,3.20,3.50,3.90,4.10,4.30,4.50}, + {0. ,0.16,0.35,0.91,2.80,3.60,3.20,2.60,1.90,1.14, + 1.15,1.16,1.14,1.11,1.08,0.99,0.94,0.91,0.86,0.83}, + {0.56,0.43,0.42,0.96,1.20,0.80,0.64,0.71,0.84,1.20, + 1.80,3.50,3.40,3.20,2.80,2.60,2.70,2.40,2.80,3.10}, + {0.01,0.02,0.01,0.01,0.02,0.10,0.16,0.38,0.34,0.32, + 0.35,0.38,0.37,0.33,0.35,0.36,0.31,0.42,0.41,0.39}, + {0. ,0.07,0.17,0.53,0.63,0.59,0.53,0.49,0.48,0.47, + 0.42,0.37,0.36,0.34,0.32,0.35,0.39,0.41,0.43,0.45}, + {0.09,0.18,0.21,0.28,0.36,0.37,0.20,0.64,0.68,0.56, + 0.61,0.48,0.34,0.36,0.36,0.32,0.41,0.39,0.39,0.36}, + {0.,0.02,0.04,0.18,0.28,0.36,0.32,0.26,0.19,0.12, + 0.12,0.13,0.14,0.15,0.12,0.11,0.10,0.09,0.07,0.04}, + {0.10,0.12,0.11,0.10,0.12,0.16,0.14,0.13,0.14,0.12, + 0.15,0.18,0.21,0.21,0.14,0.13,0.12,0.11,0.09,0.08}, + {0.02,0.11,0.10,0.09,0.11,0.17,0.16,0.14,0.12,0.11, + 0.13,0.12,0.11,0.11,0.10,0.09,0.08,0.06,0.04,0.03}, + {0. ,0. ,0.04,0.07,0.08,0.11,0.12,0.16,0.15,0.15, + 0.14,0.13,0.12,0.18,0.17,0.16,0.15,0.09,0.09,0.03}, + {0. ,0. ,0.09,0.10,0.11,0.12,0.28,0.49,0.58,0.53, + 0.48,0.46,0.46,0.44,0.43,0.43,0.42,0.39,0.39,0.31}, + {0. ,0. ,0.01,0.05,0.06,0.09,0.11,0.12,0.12,0.14, + 0.15,0.16,0.15,0.14,0.14,0.13,0.18,0.16,0.14,0.13}, + {0. ,0. ,0. ,0.02,0.04,0.09,0.20,0.39,0.41,0.42, + 0.42,0.44,0.45,0.43,0.41,0.43,0.42,0.39,0.39,0.30}, + {0. ,0. ,0. ,0. ,0.01,0.02,0.08,0.04,0.08,0.09, + 0.10,0.11,0.12,0.11,0.09,0.09,0.06,0.06,0.06,0.06}, + {0. ,0. ,0. ,0. ,0. ,0.01,0.02,0.08,0.09,0.09, + 0.09,0.09,0.10,0.11,0.11,0.08,0.07,0.07,0.07,0.06}, + {0. ,0. ,0. ,0. ,0. ,0.02,0.04,0.12,0.11,0.10, + 0.09,0.08,0.08,0.08,0.07,0.07,0.07,0.06,0.05,0.04}}, + + {{1.80,9.19,7.40,5.29,3.64,3.48,2.47,2.21,1.30,0.95, + 0.82,0.79,0.76,0.75,0.74,0.74,0.72,0.70,0.65,0.61}, + {0.46,2.60,3.70,2.27,2.40,2.00,1.68,1.00,0.82,0.71, + 0.72,0.74,0.71,0.68,0.65,0.61,0.57,0.53,0.48,0.45}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0.02,0.15,1.55,2.31,1.98,1.52,1.30,1.10,0.68,0.51, + 0.42,0.39,0.35,0.34,0.33,0.32,0.31,0.30,0.30,0.29}, + {0.01,0.95,1.09,1.63,1.50,1.40,1.38,1.20,1.00,0.81, + 0.63,0.52,0.38,0.34,0.32,0.31,0.24,0.23,0.22,0.21}, + {0.02,1.09,3.38,3.42,3.49,2.91,3.85,2.79,2.56,1.92, + 2.26,2.20,2.18,2.10,2.07,2.05,1.93,1.74,1.50,1.27}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0.08,0.21,0.38,0.68,0.44,0.32,0.29,0.18,0.11,0.09, + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0.10,0.98,2.41,3.29,3.38,4.29,3.70,3.51,2.90, + 1.94,2.00,2.08,2.16,2.15,2.14,2.12,1.95,1.48,1.39}, + {0. ,0.02,0.07,0.28,0.39,0.59,0.76,0.97,0.91,0.85, + 0.82,0.80,0.78,0.76,0.74,0.74,0.63,0.59,0.52,0.4}, + {0.05,0.26,0.37,0.23,0.24,0.20,0.17,0.10,0.08,0.07, + 0.07,0.09,0.20,0.14,0.12,0.11,0.06,0.05,0.05,0.05}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0. ,0.06,0.04,0.03,0.02,0.02,0.11,0.09, + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0. ,0.04,0.10,0.16,0.22,0.24,0.35,0.41, + 0.41,0.40,0.42,0.42,0.43,0.43,0.44,0.44,0.43,0.39}, + {0. ,0. ,0. ,0.07,0.31,0.48,0.64,0.66,0.83,0.98, + 0.74,0.38,0.40,0.41,0.41,0.42,0.43,0.41,0.26,0.24}, + {0. ,0.02,0.07,0.06,0.21,0.34,0.56,0.48,0.59,0.64, + 0.68,0.71,0.54,0.46,0.38,0.38,0.41,0.36,0.32,0.33}, + {0. ,0. ,0. ,0.10,0.26,0.38,0.67,0.41,0.51,0.48, + 0.36,0.21,0.24,0.22,0.21,0.21,0.18,0.17,0.17,0.16}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }}, + + {{2.05,5.30,4.72,3.70,2.60,2.70,2.20,1.88,1.90,1.43, + 1.10,0.74,0.81,0.80,0.62,0.48,0.47,0.47,0.47,0.66}, + {2.12,1.86,0.81,0.68,0.91,0.71,0.96,1.78,1.69,1.70, + 1.30,0.94,1.03,1.04,0.84,0.84,0.67,0.67,0.66,0.65}, + {4.93,10.40,6.67,5.40,4.00,3.50,3.70,2.80,2.60,2.00, + 1.50,1.14,1.26,1.28,1.06,0.90,0.88,0.87,0.85,0.83}, + {0.05,0.18,0.43,0.67,0.92,1.16,1.78,1.71,1.52,1.34, + 1.04,0.97,0.92,1.02,0.89,0.82,0.77,0.73,0.70,0.66}, + {0.08,0.32,0.70,1.60,1.65,1.88,1.68,1.92,1.79,1.64, + 1.49,1.37,1.30,1.70,1.40,1.26,1.19,1.13,1.08,1.02}, + {0.30,0.94,0.70,0.70,0.70,0.70,0.31,0.29,0.27,0.25, + 0.23,0.21,0.18,0.15,0.13,0.11,0.09,0.07,0.05,0.03}, + {0.33,1.19,1.89,3.56,4.20,3.78,3.35,2.93,2.51,2.12, + 1.40,1.34,1.28,1.22,1.16,1.10,1.03,1.00,0.97,0.94}, + {0.20,0.22,0.23,1.16,1.53,1.86,1.91,2.18,2.02,1.83, + 1.65,1.52,1.72,1.55,1.39,1.23,1.11,1.02,1.36,1.69}, + {0.30,0.40,0.70,2.20,2.10,1.80,1.90,2.10,2.20,2.00, + 1.80,1.70,1.40,1.30,1.35,1.30,1.28,1.10,1.17,1.24}, + {0.09,0.12,0.30,0.37,0.67,0.89,0.98,1.08,1.16,1.16, + 1.16,1.17,1.17,1.21,0.79,0.55,0.66,0.79,0.89,1.00}, + {0. ,0. ,0.09,0.11,0.05,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0.15,0.26,0.43,0.35,0.28,0.14,0.10,0.08, + 0.04,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. }, + {0. ,0. ,0.10,0.28,0.44,0.85,1.15,1.87,2.22,1.80, + 2.94,1.98,1.72,1.50,1.16,1.05,0.94,0.95,1.06,1.17}, + {0. ,0.02,0.04,0.12,0.60,1.60,1.30,1.50,2.10,2.40, + 2.65,2.40,2.09,1.94,1.83,1.17,1.06,0.94,0.93,0.98}, + {0. ,.003,.041,0.13,0.40,0.09,0.10,0.38,0.96,1.07, + 2.13,2.14,2.07,2.00,1.95,1.83,1.17,0.86,0.98,0.90}, + {0. ,.001,0.09,0.19,0.52,0.64,0.78,0.85,0.99,1.17, + 1.86,1.93,2.14,1.98,1.83,1.76,1.52,1.43,1.35,1.24}, + {0.10,0.10,0.03,0.16,0.35,0.37,0.52,0.64,0.82,0.95, + 1.09,1.16,1.73,1.80,1.12,1.03,0.95,0.93,0.90,0.84}, + {0. ,.015,.008,0.11,0.20,0.21,0.34,0.58,0.46,0.38, + 0.65,1.17,1.58,1.61,1.73,1.82,1.74,1.63,1.23,1.00}, + {0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. , + 0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0. ,0.}} + }; + + const G4int ifkn[7][7][18] = { + {{1,1,7,1,1,7,7,1,1,7,7,7,1,1,7,7,7,7}, + {3,2,1,1,1,3,5,1,1,7,3,5,1,1,7,7,3,5}, + {0,0,0,1,2,7,3,1,2,3,3,5,1,1,3,5,3,5}, + {0,0,0,2,2,3,3,1,2,7,7,3,1,2,3,5,3,7}, + {0,0,0,0,0,0,0,2,2,7,3,3,1,2,7,7,7,3}, + {0,0,0,0,0,0,0,0,0,0,0,0,2,2,3,3,7,7}, + {0,3,2,1,5,1,7,2,7,0,0,0,2,2,3,3,5,3}}, + + {{1,2,7,1,2,7,7,1,2,7,7,7,1,2,7,7,7,7}, + {1,1,5,1,2,3,5,1,2,3,5,7,1,2,3,5,3,5}, + {2,2,3,1,1,5,7,1,1,5,3,5,1,2,3,5,7,7}, + {0,0,0,2,2,3,7,1,1,5,7,7,1,1,3,5,5,7}, + {0,0,0,0,0,0,0,2,2,3,7,7,1,1,7,7,7,5}, + {0,0,0,0,0,0,0,2,2,3,5,3,2,2,7,7,7,3}, + {0,1,7,2,7,2,3,1,5,0,0,0,2,2,3,5,7,3}}, + + {{3,1,7,3,1,7,7,3,1,7,7,7,3,1,7,7,7,7}, + {3,3,2,3,3,2,7,3,3,5,1,7,3,5,3,5,3,1}, + {0,0,0,3,5,1,3,3,5,3,3,2,3,5,7,7,3,1}, + {0,0,0,0,0,0,0,3,3,2,7,7,3,5,3,3,7,2}, + {0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,7,7,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}, + + {{2,2,7,2,2,7,7,2,2,7,7,7,2,2,7,7,7,7}, + {5,2,1,2,2,3,5,2,2,3,5,7,2,2,3,5,7,7}, + {0,0,0,2,1,7,5,2,1,5,5,3,2,2,3,5,3,5}, + {0,0,0,1,1,5,5,1,2,7,7,5,1,2,3,5,5,7}, + {0,0,0,0,0,0,0,1,1,7,5,5,1,2,7,7,7,5}, + {0,0,0,0,0,0,0,0,0,0,0,0,1,1,5,5,7,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,1,1,5,5,3,5}}, + + {{5,1,7,5,1,7,7,5,1,7,7,7,5,1,3,5,3,5}, + {7,7,2,5,1,3,5,5,1,5,3,7,5,1,7,7,7,7}, + {3,5,2,7,7,7,2,7,7,7,7,2,5,1,5,3,7,7}, + {0,0,0,3,5,2,7,3,5,2,7,7,2,7,7,7,7,7}, + {0,0,0,0,0,0,0,3,5,3,5,2,3,5,2,7,7,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,3,5,3,5,2,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}, + + {{2,3,7,3,2,7,7,3,2,7,7,7,3,2,3,5,3,5}, + {7,7,1,3,2,3,5,3,2,3,5,7,3,2,7,7,7,7}, + {3,5,1,7,7,7,1,1,7,7,7,7,3,2,3,5,7,7}, + {0,0,0,3,5,1,7,3,5,1,7,7,1,7,7,7,7,7}, + {0,0,0,0,0,0,0,1,3,5,3,5,3,5,1,7,7,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,3,5,3,5,1,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}, + + {{5,2,7,5,2,7,7,5,2,7,7,7,7,7,7,7,5,2}, + {5,5,1,5,1,7,5,3,5,7,5,2,3,5,3,5,5,2}, + {0,0,0,5,3,2,5,3,5,5,5,1,3,5,7,7,5,2}, + {0,0,0,0,0,0,0,5,5,1,7,7,3,5,5,5,1,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,5,5,1,7,7,7}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}} + }; + + G4std::vector kinds; + + G4int l = is; + + if(l == 10) { + l = 3; + +} else if(l == 4) { + + l = 1; + + } else if(l == 6 || l == 5) { + + l = 4; + }; + + G4int il = getIL(is, mult); + G4std::pair iksk = getPositionInEnergyScale1(ekin); + G4int ik = iksk.first; + G4double sk = iksk.second; + G4int n; + + switch(mult) { + + case 3: + n = 0; + break; + + case 4: + n = 3; + break; + + case 5: + n = 7; + break; + + case 6: + n = 13; + break; + + default: + G4cout << " generateOutgoingKindsFor2toMany: mult " << mult << G4endl; + n = 13; + }; + + G4std::vector sig; + G4double stot = 0.0; + + if(l == 7 || l == 14) { + + for(G4int j = 0; j < il; j++) { + sig.push_back(0.5 * (bsig[2][n + j][ik - 1] + bsig[3][n + j][ik - 1] + + sk * (bsig[2][n + j][ik] - bsig[2][n + j][ik - 1] + + bsig[3][n + j][ik] - bsig[3][n + j][ik - 1]))); + stot += sig[j]; + }; + + } else { + + for(G4int j = 0; j < il; j++) { + sig.push_back(bsig[l - 1][n + j][ik - 1] + + sk*(bsig[l - 1][n + j][ik] - bsig[l - 1][n + j][ik - 1])); + stot += sig[j]; + }; + + }; + + G4double sl = inuclRndm(); + + sl *= stot; + + G4double ptot = 0.0; + G4int ml = 0; + + G4int i(0); + for(i = 0; i < il; i++) { + ptot += sig[i]; + + if(sl <= ptot) { + ml = i; + + break; + }; + + }; + + l = is; + if(l == 14) { + l = 5; + + } else if(l == 7) { + + l = 6; + + } else if(is == 10) { + l = 7; + + }; + + G4int ks; + + switch(mult) { + + case 3: + ks = 0; + break; + + case 4: + ks = 3; + break; + + case 5: + ks = 7; + break; + + case 6: + ks = 12; + break; + + default: + G4cout << " generateOutgoingKindsFor2toMany: mult " << mult << G4endl; + ks = 12; + }; + + + for(i = 0; i < mult; i++) + kinds.push_back(ifkn[l - 1][ml][i + ks]); + + return kinds; +} + +G4double G4ElementaryParticleCollider::getMomModuleFor2toMany( + G4int is, + G4int mult, + G4int knd, + G4double ekin) const { + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::getMomModuleFor2toMany" << G4endl; + } + + const G4double rmn[14][10][2] = { + {{0.5028, 0.6305}, {3.1442, -3.7333}, {-7.8172, 13.464}, {8.1667, -18.594}, {1.6208, 1.9439}, + {-4.3139, -4.6268}, {12.291, 9.7879}, {-15.288, -9.6074}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{0.9348, 2.1801}, {-10.59, 1.5163}, { 29.227, -16.38}, {-34.55, 27.944}, {-0.2009, -0.3464}, + {1.3641, 1.1093}, {-3.403, -1.9313}, { 3.8559, 1.7064}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{-0.0967, -1.2886}, {4.7335, -2.457}, {-14.298, 15.129}, {17.685, -23.295}, { 0.0126, 0.0271}, + {-0.0835, -0.1164}, { 0.186, 0.2697}, {-0.2004, -0.3185}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{-0.025, 0.2091}, {-0.6248, 0.5228}, { 2.0282, -2.8687}, {-2.5895, 4.2688}, {-0.0002, -0.0007}, + {0.0014, 0.0051}, {-0.0024, -0.015}, { 0.0022, 0.0196}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{1.1965, 0.9336}, {-0.8289,-1.8181}, { 1.0426, 5.5157}, { -1.909,-8.5216}, { 1.2419, 1.8693}, + {-4.3633, -5.5678}, { 13.743, 14.795}, {-18.592, -16.903}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{0.287, 1.7811}, {-4.9065,-8.2927}, { 16.264, 20.607}, {-19.904,-20.827}, {-0.244, -0.4996}, + {1.3158, 1.7874}, {-3.5691, -4.133}, { 4.3867, 3.8393}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{-0.2449, -1.5264}, { 2.9191, 6.8433}, {-9.5776, -16.067}, { 11.938, 16.845}, {0.0157, 0.0462}, + {-0.0826, -0.1854}, { 0.2143, 0.4531}, {-0.2585, -0.4627}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{0.0373, 0.2713}, {-0.422, -1.1944}, { 1.3883, 2.7495}, {-1.7476,-2.9045}, {-0.0003, -0.0013}, + {0.0014, 0.0058}, {-0.0034,-0.0146}, { 0.0039, 0.0156}, { 0.0, 0.0}, { 0.0, 0.0}}, + + {{ 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0},{ 0.0, 0.0}, + { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.1451, 0.0929},{ 0.1538, 0.1303}}, + + {{ 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0},{ 0.0, 0.0}, + { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.4652, 0.5389},{ 0.2744, 0.4071}}, + + {{ 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0},{ 0.0, 0.0}, + { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { -0.033, -0.0545},{-0.0146, -0.0288}}, + + {{ 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0},{ 0.0, 0.0}, + { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.6296, 0.1491},{ 0.8381, 0.1802}}, + + {{ 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0},{ 0.0, 0.0}, + { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.1787, 0.385},{ 0.0086, 0.3302}}, + + {{ 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0},{ 0.0, 0.0}, + { 0.0, 0.0}, { 0.0, 0.0}, { 0.0, 0.0}, {-0.0026, -0.0128},{ 0.0033, -0.0094}} + }; + + G4double S = inuclRndm(); + G4double PS = 0.0; + G4double PR = 0.0; + G4double PQ = 0.0; + G4int KM = 2; + G4int IL = 4; + G4int JK = 4; + G4int JM = 2; + G4int IM = 3; + + if(is == 1 || is == 2 || is == 4) KM = 1; + + if(mult == 3) { IM = 0; IL = 0; }; + + if(knd == 1 || knd == 2) JK = 0; + + for(G4int i = 0; i < 4; i++) { + G4double V = 0.0; + + for(G4int k = 0; k < 4; k++) V += rmn[k + JK][i + IL][KM - 1] * pow(ekin, k); + + PR += V * pow(S, i); + PQ += V; + }; + + if(knd == 1 || knd == 2) JM = 1; + + for(G4int m = 0; m < 3; m++) PS += rmn[8 + IM + m][7 + JM][KM - 1] * pow(ekin, m); + + G4double PRA = PS * sqrt(S) * (PR + (1 - PQ) * pow(S, 4)); + + return fabs(PRA); +} + +G4std::vector G4ElementaryParticleCollider:: +particleSCMmomentumFor2to3( + G4int is, + G4int knd, + G4double ekin, + G4double pmod) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::particleSCMmomentumFor2to3" << G4endl; + } + + const G4double abn[4][4][4] = { + {{0.0856, 0.0716, 0.1729, 0.0376}, {5.0390, 3.0960, 7.1080, 1.4331}, + {-13.782, -11.125, -17.961, -3.1350}, {14.661, 18.130, 16.403, 6.4864}}, + {{0.0543, 0.0926, -0.1450, 0.2383}, {-9.2324, -3.2186, -13.032, 1.8253}, + {36.397, 20.273, 41.781, 1.7648}, {-42.962, -33.245, -40.799, -16.735}}, + {{-0.0511, -0.0515, 0.0454, -0.1541}, {4.6003, 0.8989, 8.3515, -1.5201}, + {-20.534, -7.5084, -30.260, -1.5692}, {27.731, 13.188, 32.882, 17.185}}, + {{0.0075, 0.0058, -0.0048, 0.0250}, {-0.6253, -0.0017, -1.4095, 0.3059}, + {2.9159, 0.7022, 5.3505, 0.3252}, {-4.1101, -1.4854, -6.0946, -3.5277}} + }; + + const G4int itry_max = 100; + G4double ct = 2.0; + G4int K = 3; + G4int J = 1; + + if(is == 1 || is == 2 || is == 4) K = 1; + + if(knd == 1 || knd == 2) J = 0; + + G4int itry = 0; + + while(fabs(ct) > 1.0 && itry < itry_max) { + itry++; + G4double S = inuclRndm(); + G4double U = 0.0; + G4double W = 0.0; + + for(G4int l = 0; l < 4; l++) { + G4double V = 0.0; + + for(G4int m = 0; m < 4; m++) { + V += abn[m][l][K + J - 1] * pow(ekin, m); + }; + + U += V; + W += V * pow(S, l); + }; + ct = 2.0 * sqrt(S) * (W + (1.0 - U) * pow(S, 4)) - 1.0; + }; + + if(itry == itry_max) { + + if(verboseLevel > 2){ + G4cout << " particleSCMmomentumFor2to3 -> itry = itry_max " << itry << G4endl; + } + + ct = 2.0 * inuclRndm() - 1.0; + }; + + G4double pt = pmod * sqrt(1.0 - ct * ct); + G4double phi = randomPHI(); + + G4std::vector mom(4); + + mom[1] = pt * cos(phi); + mom[2] = pt * sin(phi); + mom[3] = pmod * ct; + + return mom; +} + +G4bool G4ElementaryParticleCollider::reChargering(G4double ekin, + G4int is) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::reChargering" << G4endl; + } + + const G4double ali[31] = { + 3.9, 6.6, 13.2, 42.6, 36.6, 26.2, 17.9, 13.5, 11.3, 10.7, + 9.5, 6.4, 1.9, 0.8, 0.56, 0.26, 0.19, 0.19, 0.18, 0.1, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ,0.0 + }; + + const G4double asig[4][6][31] = { + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 24.3, 24.1, 24.0, 26.3, + 28.6, 24.8, 19.9, 19.2, 17.4, 15.3, 13.5, 12.3, 11.9, 10.4, + 11.8, 11.4, 11.0, 10.8, 10.9, 11.7, 11.4, 10.2, 11.0, 11.0, 9.0}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 1.45, 2.90, 4.10, + 5.30, 22.0, 21.2, 19.9, 14.9, 12.6, 12.3, 11.3, 10.8, 9.50, + 8.27, 7.20, 6.70, 6.25, 6.04, 5.89, 5.70, 5.60, 5.05, 4.17,4.00}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 2.27, 4.28, 7.81, 8.03, 8.11, 7.90, 7.82, 7.61, 7.47, + 7.07, 7.66, 7.05, 6.71, 6.38, 6.36, 6.37, 6.57, 6.01, 5.48, 6.80}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 1.20, 2.85, 3.70, 4.81, 5.33, 7.74, 6.91, 6.94, + 7.57, 7.21, 7.11, 7.10, 6.93, 6.79, 6.71, 6.55, 6.55, 6.15, 8.50}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0. , .005, 0.54, 0.74, 0.86, 0.91, 1.10, 1.16, + 1.36, 1.40, 1.43, 1.47, 1.47, 1.43, 1.38, 1.38, 1.63, 1.36, 2.80}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 34.0, 46.2, 46.9, 45.2, 47.1, 42.3, 41.8, 41.2, 41.6, 41.6, + 41.0, 43.0, 42.4, 40.0, 39.9, 39.8, 42.0, 40.0, 39.8, 39.6, 38.7}}, + + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 33.0, 31.3, 29.5, 27.8, + 14.6, 16.0, 17.5, 18.3, 19.4, 18.7, 15.6, 14.8, 13.6, 12.5, + 12.2, 11.9, 11.4, 11.2, 10.1, 9.62, 8.41, 7.14, 7.09, 5.04, 10.2}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 2.00, 4.00, 6.50, + 19.5, 20.8, 19.8, 18.6, 17.7, 14.4, 13.5, 10.4, 10.1, 12.0, + 8.87, 8.51, 8.49, 9.20, 8.29, 7.43, 8.20, 4.69, 4.57, 4.06, 4.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.68, 2.76, 3.85, 8.35, 12.7, 12.3, 10.8, 12.0, 10.9, 10.2, + 10.6, 12.2, 11.8, 11.0, 10.4, 10.5, 11.0, 10.6, 11.8, 12.5, 13.2}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.22, 0.52, 0.64, 1.19, 1.52, 1.75, 1.51, 2.04, 1.85, 1.70, + 1.92, 1.66, 1.74, 1.50, 1.39, 1.35, 1.41, 1.48, 1.43, 1.35, 3.20}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0.14, 0.24, 0.30, 0.46, 0.85, 1.40, 1.54, 1.52, + 1.47, 1.48, 1.49, 1.42, 1.39, 1.37, 1.22, 1.19, 0.93, 0. ,2.10}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 35.0, 40.0, 42.4, 42.3, 41.0, 40.9, 40.4, 39.8, 35.0, 33.6, + 41.2, 41.0, 41.1, 41.2, 41.2, 39.6, 36.0, 36.0, 36.2, 0. ,40.2}}, + + {{1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 60.0, 38.0, 30.6, 24.0, + 18.5, 12.8, 13.6, 9.15, 8.20, 7.80, 7.10, 6.40, 5.81, 5.85, + 5.50, 5.33, 5.40, 5.50, 4.90, 5.02, 5.00, 4.98, 4.96, 4.96, 4.50}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.38, 0.75, 1.28, + 2.26, 11.8, 11.1, 7.56, 6.04, 5.68, 4.15, 3.21, 2.12, 1.66, + 1.54, 1.53, 1.47, 1.33, 1.39, 1.35, 1.29, 1.23, 1.13, 1.06, 0.70}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.05, 2.19, 6.02, 7.36, 6.97, 5.83, 6.53, 5.09, 4.24, 3.24, + 3.31, 3.11, 2.91, 2.78, 2.72, 2.68, 2.48, 2.27, 2.02, 1.77, 4.40}, + + {0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.06, 0.35, 0.55, 0.77, 0.89, 0.80, 0.86, 0.97, 0.90, 0.86, + 0.84, 0.84, 0.83, 0.81, 0.79, 0.82, 0.76, 0.88, 0.89, 0.89, 3.00}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0. , 0.02, 0.07,0.33, 0.92, 1.39, 2.11, 1.81, 2.39, 2.60, + 2.19, 1.70, 1.60,0.68, 1.43, 1.46, 1.46, 1.37, 1.16, 1.09, 2.60}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 18.9,27.2, 34.9, 29.1, 30.8, 29.6, 28.2, 27.5, 26.9, 26.3, + 25.9,25.6, 25.2, 26.1, 25.5, 25.4, 25.3, 25.1, 24.9, 24.8,24.1}}, + + {{5.90,9.40, 24.5, 62.6, 65.3, 41.3, 29.3, 24.3, 22.7, 22.9, + 23.2,28.4, 11.7, 10.1, 8.30, 7.16, 6.49, 6.36, 6.60, 5.84, + 5.30,4.50, 3.90, 4.40, 4.74, .794, .824, .714, 0.59, 0. ,4.60}, + + {0. ,0. , 0. , 0. , 0.10, 0.40, 2.70, 3.50, 5.30, 6.60, + 9.10,17.6, 12.2, 9.78, 7.51, 6.91, 6.86, 6.46, 6.19, 5.13, + 3.90,2.82, 3.10, 3.12, 2.52, 2.22, 2.02, 2.01, 1.98, 2.14, 1.20}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.76,2.63, 3.72, 6.53, 7.47, 7.94, 7.12, 6.85, 6.09, 5.35, + 4.12,3.85, 3.68, 4.09, 3.58, 3.29, 3.08, 2.93, 2.80, 2.65, 3.30}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.59,0.74, 1.47, 4.10, 4.78, 4.90, 5.07, 5.50, 5.48, 5.03, + 4.65,4.39, 4.06, 3.53, 3.08, 3.05, 2.91, 3.42, 3.93, 3.93, 4.10}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 0.01,.007, 0.03, .099, .251, .376, .419, .582, .755, .777, + 1.13,1.08, 1.13, 1.08, .962, .866, .738, .674, .645, .613, 1.30}, + + {0. ,0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , + 31.3,46.0, 30.0, 35.7, 33.4, 31.6, 30.4, 29.6, 28.9, 28.5, + 28.1,27.5, 31.0, 27.7, 27.8, 26.1, 25.2, 6.92, 6.70, 0. , 25.7}} + }; + + G4bool rech = false; + + if (is == 6 || is == 5 || is == 7 || is == 14) { + G4std::pair iksk = getPositionInEnergyScale2(ekin); + G4int ik = iksk.first; + G4double sk = iksk.second; + G4double chrg; + + if(ik == 30 && sk == 1.0) { + chrg = 1.0; + + } else { + + chrg = 1.0 - (ali[ik - 1] + sk * (ali[ik] - ali[ik - 1])) / + (asig[3][0][ik - 1] + sk * (asig[3][0][ik] - asig[3][0][ik - 1])); + }; + rech = inuclRndm() > chrg; + }; + + return rech; +} + +G4std::pair G4ElementaryParticleCollider:: +adjustIntervalForElastic( + G4double ekin, + G4double ak, + G4double ae, + G4int k, + G4int l, + const G4std::vector& ssv, + G4double st) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::adjustIntervalForElastic" << G4endl; + } + + const G4int itry_max = 100; + const G4double small = 1.0e-4; + G4double a = 1.0; + G4double b = 0.0; + G4int adj_type = 0; + G4double s1 = 0.0; + G4double s2 = 0.0; + + if (k == 1) { + adj_type = 1; + s1 = 0.0; + s2 = 0.5; + } else if(k == 2) { + + if(l != 2) { + // adj_type == 0; + + } else { + + adj_type = 1; + s1 = 0.0; + s2 = 0.67; + }; + + } else { + + if(ekin < 0.32) { + // adj_type == 0; + + } else { + + adj_type = 2; + s1 = 0.1813; + s2 = 1.0; + }; + + }; + + if(adj_type > 0) { + G4int itry = 0; + G4double su; + G4double ct; + + if(adj_type == 1) { + G4double s2_old = s2; + G4double s1c = s1; + G4double s2_new; + + while(itry < itry_max) { + itry++; + s2_new = 0.5 * (s2_old + s1c); + su = 0.0; + + for(G4int i = 0; i < 4; i++) su += ssv[i] * pow(s2_new, i); + + ct = ak * sqrt(s2_new) * (su + (1.0 - st) * pow(s2_new, 4)) + ae; + + if(ct > 1.0) { + s2_old = s2_new; + + } else { + + if(1.0 - ct < small) { + + break; + + } else { + + s1c = s2_new; + }; + }; + }; + + a = s2_new - s1; + b = s1; + + } else { + + G4double s1_old = s1; + G4double s2c = s2; + G4double s1_new = 0.0; + + while (itry < itry_max) { + itry++; + s1_new = 0.5 * (s1_old + s2c); + su = 0.0; + + for (G4int i = 0; i < 4; i++) su += ssv[i] * pow(s1_new, i); + ct = ak * sqrt(s1_new) * (su + (1.0 - st) * pow(s1_new, 4)) + ae; + + if(ct < -1.0) { + s1_old = s1_new; + + } else { + + if (1.0 + ct < small) { + + break; + + } else { + + s2c = s1_new; + }; + }; + }; + a = s2 - s1_new; + b = s1_new; + }; + + if (itry == itry_max) { + + if (verboseLevel > 2){ + G4cout << " in adjustIntervalForElastic: " << itry_max << G4endl; + G4cout << " e " << ekin << " ak " << ak << " ae " << ae << G4endl << " k " << k + << " is " << l << " adj_type " << adj_type << G4endl; + } + + a = 1.0; + b = 0.0; + }; + }; + + return G4std::pair(a, b); +} + +G4std::vector G4ElementaryParticleCollider:: +particleSCMmomentumFor2to2( + G4int is, + G4int kw, + G4double ekin, + G4double pscm) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::particleSCMmomentumFor2to2" << G4endl; + } + + const G4double ang[4][4][13] = { + {{ 2.7404, -30.853, 0.1026,-0.3829, 0.2499, 3.9025, 19.402, 0.1579, 0.3153,-17.953, 0.4217, 0.1499, 0.5369}, + {-9.6998, 106.24, -1.0542, 3.7587, 32.028,-91.126,-224.46, 2.9671,-7.4981, 109.72, 147.05, 2.8753, -13.216}, + { 10.400, -129.39, 11.389,-6.5144, -118.82, 323.73, 747.33,-5.5251, 43.295,-239.54,-653.35,-5.3078, 81.011}, + { 2.3882, 54.339, -16.638, 6.7740, 150.99,-400.48,-935.70, 6.8925,-76.460, 228.26, 915.07, 6.2233, -142.85}}, + {{-7.5137, 19.465, -0.4961, 103.81, -2.6994,-20.619,-44.180,-7.0218,-6.5373, 91.968,-3.5198,-5.9558, -10.550}, + { 44.096, -68.102, 11.800,-272.82, -460.45, 491.70, 471.94,-205.34, 193.07,-519.63,-260.19,-162.03, 296.29}, + {-74.379, 96.358, -90.857, 477.59, 1895.9,-1715.5,-1485.6, 569.51,-1018.1, 1126.6, 1225.0, 430.79, -1695.7}, + { 46.038, -56.827, 164.76,-512.22, -2519.0, 2114.3, 1805.5,-898.58, 1742.6,-1074.0,-1748.1,-625.48, 2893.5}}, + {{ 7.5479, -3.4831, 1.5437,-1788.2, 16.268, 33.004, 31.567, 134.96, 46.864,-132.70, 3.6373, 128.75, 69.621}, + {-39.274, 12.341, -33.769, 4305.2, 2138.4,-766.84,-301.76, 4872.2,-1303.0, 741.12, 155.92, 3140.2, -1924.5}, + { 64.835, -18.592, 251.92,-7931.4, -9126.2, 2700.3, 907.63,-14674., 6729.1,-1600.0,-752.01,-7918.9, 10620.0}, + { 41.609, 12.024, -450.71, 9347.1, 12431.0,-3352.5,-1077.3, 23924.,-11075., 1524.9, 1079.6, 10983., -17468.}}, + {{-1.8369, 0.1894, -1.2021, 7147.5, -29.654,-16.367,-6.8648,-821.16,-95.192, 58.598,-0.7804,-851.61, -138.65}, + { 8.6911, -0.6788, 0.2534,-3339.5, -3182.3, 373.94, 60.476,-32586., 2637.3,-318.74,-30.563,-18780., 3928.1}, + {-13.060, 1.0665, -186.58,-4139.2, 13944.,-1320.2,-175.20,100980.,-12857., 677.51, 147.95, 44607., -20293.}, + { 7.1880, -0.7291, 332.54,-4436.4, -19342., 1642.3, 203.81,-165530.,20294.,-640.11,-212.50,-58790., 32058.}} + }; + + const G4int itry_max = 100; + const G4double ct_cut = 0.9999; + const G4double huge_num = 60.0; + G4int k = getElasticCase(is, kw, ekin); + G4double ae = -1.0; + G4double ak = 2.0; + + if(k == 1) { + + if(is != 2) { ak = 1.0; ae = 0.0;}; + + } else if(k == 2) { + + if(is != 2) { ak = 0.5; ae = 0.0; }; + + }; + + G4double ct = 2.0; + G4double ab; + G4double ac; + G4double ad; + G4int itry = 0; + + if(k == 14) { + ab = 7.5; + if(is == 1 || is == 2 || is == 4) ab = 8.7; + ac = -2.0 * ab * pscm * pscm; + ad = 2.0 * ac; + if(ad < -huge_num) { + ad = exp(ad); + + } else { + + ad = exp(-huge_num); + }; + + while(fabs(ct) > ct_cut && itry < itry_max) { + itry++; + ct = 1.0 - log(inuclRndm() * (1.0 - ad) + ad) / ac; + }; + + } else if(k == 0) { + + ct = 2.0 * inuclRndm() - 1; + + } else { + + G4int k1 = k - 1; + // first set all coefficients + G4std::vector ssv(4); + G4double st = 0.0; + + for(G4int i = 0; i < 4; i++) { + G4double ss = 0.0; + + for(G4int m = 0; m < 4; m++) ss += ang[m][i][k1] * pow(ekin, m); + st += ss; + ssv[i] = ss; + }; + + G4double a = 1.0; + G4double b = 0.0; + + if(k <= 3) { + G4std::pair ab = adjustIntervalForElastic(ekin, ak, ae, k, is, ssv, st); + + a = ab.first; + b = ab.second; + }; + + while(fabs(ct) > ct_cut && itry < itry_max) { + itry++; + G4double mrand = a * inuclRndm() + b; + + G4double su = 0.0; + + for(G4int i = 0; i < 4; i++) su += ssv[i] * pow(mrand, i); + + ct = ak * sqrt(mrand) * (su + (1.0 - st) * pow(mrand, 4)) + ae; + }; + }; + + if(itry == itry_max) { + + if(verboseLevel > 2){ + G4cout << " particleSCMmomentumFor2to2 -> itry = itry_max " << itry << G4endl; + } + + ct = 2.0 * inuclRndm() - 1.0; + }; + + G4double pt = pscm * sqrt(1.0 - ct * ct); + G4double phi = randomPHI(); + G4std::vector mom(4); + + mom[1] = pt * cos(phi); + mom[2] = pt * sin(phi); + mom[3] = pscm * ct; + + return mom; +} + +G4int G4ElementaryParticleCollider::getElasticCase(G4int is, + G4int kw, + G4double ekin) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::getElasticCase" << G4endl; + } + + G4int l = is; + G4int k = 0; // isotropic + + if(l == 4) { + l = 1; + + } else if(l == 10 || l == 7 || l == 14) { + + l = 3; + +} else if(l == 5 || l == 6) { + + l = 4; + }; + + if(l < 3) { // nucleon nucleon + + if(ekin > 2.8) { + k = 2; + + if(ekin > 10.0) k = 14; + + } else { + + if(l == 1) { // PP or NN + + if(ekin > 0.46) k = 1; + + } else { + + k = 3; + + if(ekin >= 0.97) k = 1; + + }; + }; + + } else { // pi nucleon + + if(l == 3) { // pi+ P, pi- N, pi0 P, pi0 N + k = 8; + + if(ekin > 0.08) k = 9; + + if(ekin > 0.3) k = 10; + + if(ekin > 1.0) k = 11; + + if(ekin > 2.4) k = 14; + + } else { // pi- P, pi+ N + + if(kw == 1) { + k = 4; + + if(ekin > 0.08) k = 5; + + if(ekin > 0.3) k = 6; + + if(ekin > 1.0) k = 7; + + if (ekin > 2.4) k = 14; + + } else { + + k = 12; + + if (ekin > 0.08) k = 13; + + if (ekin > 0.3) k = 6; + + if (ekin > 1.0) k = 7; + + if (ekin > 2.4) k = 14; + + }; + }; + }; + + return k; +} + +G4std::vector G4ElementaryParticleCollider:: +generateSCMpionAbsorption(G4double etot_scm, + G4InuclElementaryParticle* particle1, + G4InuclElementaryParticle* particle2) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4ElementaryParticleCollider::generateSCMpionAbsorption" << G4endl; + } + + // generate nucleons momenta for pion absorption + // the nucleon distribution assumed to be isotropic in SCM + + G4InuclElementaryParticle dummy; + G4std::vector particles; + G4std::vector particle_kinds; + G4int type1 = particle1->type(); + G4int type2 = particle2->type(); + + // generate kinds + + if (type1 == 3) { + + if (type2 == 111) { // pi+ + PP -> ? + + G4cout << " pion absorption: pi+ + PP -> ? " << G4endl; + + return particles; + } + else if(type2 == 112) { // pi+ + PN -> PP + particle_kinds.push_back(1); + particle_kinds.push_back(1); + } + else if(type2 == 122) { // pi+ + NN -> PN + particle_kinds.push_back(1); + particle_kinds.push_back(2); + }; + } + else if(type1 == 5) { + if(type2 == 111) { // pi- + PP -> PN + particle_kinds.push_back(1); + particle_kinds.push_back(2); + } + else if(type2 == 112) { // pi- + PN -> NN + particle_kinds.push_back(2); + particle_kinds.push_back(2); + } + else if(type2 == 122) { // pi- + NN -> ? + + G4cout << " pion absorption: pi- + NN -> ? " << G4endl; + + return particles; + }; + } + else if(type1 == 7) { + if(type2 == 111) { // pi0 + PP -> PP + particle_kinds.push_back(1); + particle_kinds.push_back(1); + } + else if(type2 == 112) { // pi0 + PN -> PN + particle_kinds.push_back(1); + particle_kinds.push_back(2); + } + else if(type2 == 122) { // pi0 + NN -> ? + particle_kinds.push_back(2); + particle_kinds.push_back(2); + }; + }; + + G4double m1 = dummy.getParticleMass(particle_kinds[0]); + + m1 *= m1; + + G4double m2 = dummy.getParticleMass(particle_kinds[1]); + + m2 *= m2; + + G4double a = 0.5 * (etot_scm * etot_scm - m1 - m2); + + G4double pmod = sqrt((a * a - m1 * m2) / (m1 + m2 + 2.0 * a)); + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double pt = pmod * COS_SIN.second; + + mom[1] = pt * cos(FI); + mom[2] = pt * sin(FI); + mom[3] = pmod * COS_SIN.first; + + G4std::vector mom1 = mom; + + for(G4int i = 1; i < 4; i++) mom1[i] *= -1.0; + particles.push_back(G4InuclElementaryParticle(mom , particle_kinds[0])); + particles.push_back(G4InuclElementaryParticle(mom1, particle_kinds[1])); + + return particles; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc b/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc new file mode 100644 index 0000000000..cd0d9fcdd1 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc @@ -0,0 +1,724 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#define RUN + +#include "G4EquilibriumEvaporator.hh" +#include "G4InuclNuclei.hh" +#include "G4LorentzConvertor.hh" + +G4EquilibriumEvaporator::G4EquilibriumEvaporator() + : verboseLevel(1) { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::G4EquilibriumEvaporator" << G4endl; + } +} + +G4CollisionOutput G4EquilibriumEvaporator::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::collide" << G4endl; + } + + // simple implementation of the equilibium evaporation a la Dostrowski + const G4double huge_num = 50.0; + const G4double small = -50.0; + const G4double one_third = 1.0 / 3.0; + const G4double two_thirds = 2.0 / 3.0; + const G4double prob_cut_off = 1.0e-15; + const G4double Q1[6] = { 0.0, 0.0, 2.23, 8.49, 7.72, 28.3 }; + const G4double AN[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; + const G4double Q[6] = { 0.0, 1.0, 1.0, 1.0, 2.0, 2.0 }; + const G4double G[6] = { 2.0, 2.0, 6.0, 6.0, 6.0, 4.0 }; + const G4double BE = 0.0063; + const G4double fisssion_cut = 1000.0; + +#ifdef RUN + const G4double cut_off_energy = 0.1; +#else + const G4double cut_off_energy = 100000.0; +#endif + + const G4double BF = 0.0242; + const G4int itry_max = 1000; + const G4int itry_global_max = 1000; + const G4double small_ekin = 1.0e-6; + const G4int itry_gam_max = 100; + + G4std::vector W(8); + G4std::vector A1(6); + G4std::vector Z1(6); + G4std::vector u(6); + G4std::vector V(6); + G4std::vector TM(6); + + G4double coul_coeff; + G4CollisionOutput output; + + if (G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + G4double A = nuclei_target->getA(); + G4double Z = nuclei_target->getZ(); + G4std::vector PEX = nuclei_target->getMomentum(); + G4double EEXS = nuclei_target->getExitationEnergy(); + + if (verboseLevel > 3) { + if (EEXS < 0.0) G4cout << " after noeq: eexs " << EEXS << G4endl; + } + + G4InuclElementaryParticle dummy(small_ekin, 1); + G4LorentzConvertor toTheNucleiSystemRestFrame; + toTheNucleiSystemRestFrame.setBullet(dummy.getMomentum(), dummy.getMass()); + G4std::vector ppout(4, 0.0); + + if (timeToBigBang(A, Z, EEXS)) { + + if (verboseLevel > 3) { + G4cout << " big bang in eql start " << G4endl; + } + + return theBigBanger->collide(0, target); + + } else { + + if (A >= 100.0) { + coul_coeff = 1.4; + + } else { + coul_coeff = 1.2; + }; + + G4InuclNuclei dummy_nuc; + G4double EEXS_new; + G4std::vector pin = PEX; + pin[0] += 0.001 * EEXS; + G4bool try_again = true; + G4bool fission_open = true; + G4double nuc_mass; + G4int itry_global = 0; + + while (try_again && itry_global < itry_global_max) { + itry_global++; + + if (verboseLevel > 2){ + G4cout << " A " << A << " Z " << Z << " EEXS " << EEXS << G4endl; + } + + nuc_mass = dummy_nuc.getNucleiMass(A, Z); + PEX[0] = sqrt(PEX[1] * PEX[1] + + PEX[2] * PEX[2] + + PEX[3] * PEX[3] + + nuc_mass * nuc_mass); + toTheNucleiSystemRestFrame.setTarget(PEX, nuc_mass); + toTheNucleiSystemRestFrame.toTheTargetRestFrame(); + + if (timeToBigBang(A, Z, EEXS)) { // big bang + + if (verboseLevel > 2){ + G4cout << " big bang in eql step " << G4endl; + } + + G4InuclNuclei nuclei(PEX, A, Z); + + nuclei.setExitationEnergy(EEXS); + + G4CollisionOutput explosion = theBigBanger->collide(0, &nuclei); + + output.addOutgoingParticles(explosion.getOutgoingParticles()); + + return output; + + } else { // normal chain + + if (EEXS > cut_off_energy) { + + G4double E0 = getE0(A); + G4double parlev = getPARLEVDEN(A, Z); + G4double u1 = parlev * A; + G4std::pair, G4std::vector > parms = paraMaker(Z); + G4std::vector AK = parms.first; + G4std::vector CPA = parms.second; + G4double DM0 = bindingEnergy(A, Z); + G4int i(0); + + for (i = 0; i < 6; i++) { + A1[i] = A - AN[i]; + Z1[i] = Z - Q[i]; + u[i] = parlev * A1[i]; + TM[i] = -0.1; + + if (goodRemnant(A1[i], Z1[i])) { + G4double QB = DM0 - bindingEnergy(A1[i], Z1[i]) - Q1[i]; + V[i] = coul_coeff * Z * Q[i] * AK[i] / (1.0 + EEXS / E0) / + (pow(A1[i], one_third) + pow(AN[i], one_third)); + TM[i] = EEXS - QB - V[i] * A / A1[i]; + }; + }; + + G4double ue = 2.0 * sqrt(u1 * EEXS); + G4double prob_sum = 0.0; + + if (TM[0] > cut_off_energy) { + G4double AL = getAL(A); + W[0] = BE * pow(A1[0], two_thirds) * G[0] * AL; + G4double TM1 = 2.0 * sqrt(u[0] * TM[0]) - ue; + + if (TM1 > huge_num) { + TM1 = huge_num; + + } else if (TM1 < small) { + TM1 = small; + }; + W[0] = W[0] * exp(TM1); + prob_sum += W[0]; + + } else { + W[0] = 0.0; + }; + + for (i = 1; i < 6; i++) { + + if (TM[i] > cut_off_energy) { + W[i] = BE * pow(A1[i], two_thirds) * G[i] * (1.0 + CPA[i]); + G4double TM1 = 2.0 * sqrt(u[i] * TM[i]) - ue; + + if (TM1 > huge_num) { + TM1 = huge_num; + + } else if (TM1 < small) { + TM1 = small; + }; + W[i] = W[i] * exp(TM1); + prob_sum += W[i]; + + } else { + W[i] = 0.0; + }; + }; + // fisson part + W[6] = 0.0; + + if (A >= 100.0 && fission_open) { + G4double X2 = Z * Z / A; + G4double X1 = 1.0 - 2.0 * Z / A; + G4double X = 0.019316 * X2 / (1.0 - 1.79 * X1 * X1); + G4double EF = EEXS - getQF(X, X2, A, Z, EEXS); + + if (EF > 0.0) { + G4double AF = u1 * getAF(X, A, Z, EEXS); + G4double TM1 = 2.0 * sqrt(AF * EF) - ue; + + if (TM1 > huge_num) { + TM1 = huge_num; + + } else if (TM1 < small) { + TM1 = small; + }; + W[6] = BF * exp(TM1); + + if (W[6] > fisssion_cut * W[0]) W[6] = fisssion_cut * W[0]; + prob_sum += W[6]; + }; + }; + // again time to decide what next + + if (verboseLevel > 2){ + G4cout << " wn " << W[0] << " wp " << W[1] << " wd " << W[2] << G4endl + << " wh3 " << W[3] << " wt " << W[4] << " whe4 " << W[5] << G4endl + << " wfi " << W[6] << G4endl; + } + + G4int icase = -1; + + if (prob_sum < prob_cut_off) { // photon emission chain + G4double UCR0 = 2.5 + 150.0 / A; + G4double T00 = 1.0 / (sqrt(u1 / UCR0) - 1.25 / UCR0); + G4int itry_gam = 0; + + while (EEXS > cut_off_energy && try_again) { + itry_gam++; + G4int itry = 0; + G4double T04 = 4.0 * T00; + G4double FMAX; + + if (T04 < EEXS) { + FMAX = pow(T04, 4) * exp((EEXS - T04) / T00); + + } else { + FMAX = pow(EEXS, 4); + }; + + G4double S; + + while (itry < itry_max) { + itry++; + S = EEXS * inuclRndm(); + G4double X1 = pow(S, 4) * exp((EEXS - S) / T00); + + if (X1 > FMAX * inuclRndm()) break; + }; + + if (itry < itry_max) { + // new photon escape + G4InuclElementaryParticle particle(10); + G4double pmod = 0.001 * S; + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double P1 = pmod * COS_SIN.second; + mom[1] = P1 * cos(FI); + mom[2] = P1 * sin(FI); + mom[3] = pmod * COS_SIN.first; + mom[0] = pmod; + G4std::vector mom_at_rest(4); + + for (G4int i = 1; i < 4; i++) mom_at_rest[i] = -mom[i]; + mom_at_rest[0] = sqrt(mom_at_rest[1] * mom_at_rest[1] + + mom_at_rest[2] * mom_at_rest[2] + + mom_at_rest[3] * mom_at_rest[3] + + nuc_mass * nuc_mass); + + G4std::vector part_mom = + toTheNucleiSystemRestFrame.backToTheLab(mom); + + part_mom[0] = sqrt(part_mom[1] * part_mom[1] + + part_mom[2] * part_mom[2] + + part_mom[3] * part_mom[3]); + + G4std::vector ex_mom = + toTheNucleiSystemRestFrame.backToTheLab(mom_at_rest); + + ex_mom[0] = sqrt(ex_mom[1] * ex_mom[1] + + ex_mom[2] * ex_mom[2] + + ex_mom[3] * ex_mom[3] + + nuc_mass * nuc_mass); + EEXS_new = 1000.0 * (PEX[0] + 0.001 * EEXS - + part_mom[0] - ex_mom[0]); + + if (EEXS_new > 0.0) { // everything ok + PEX = ex_mom; + EEXS = EEXS_new; + particle.setMomentum(part_mom); + output.addOutgoingParticle(particle); + + for (G4int i = 0; i < 4; i++) ppout[i] += part_mom[i]; + + } else { + + if (itry_gam == itry_gam_max) try_again = false; + }; + + } else { + try_again = false; + }; + }; + try_again = false; + + } else { + G4double SL = prob_sum * inuclRndm(); + G4double S1 = 0.0; + + for (G4int i = 0; i < 7; i++) { + S1 += W[i]; + + if (SL <= S1) { + icase = i; + + break; + }; + }; + + if (icase < 6) { // particle or light nuclei escape + G4double uc = 2.0 * sqrt(u[icase] * TM[icase]); + G4double ur = (uc > huge_num ? exp(huge_num) : exp(uc)); + G4double d1 = 1.0 / ur; + G4double d2 = 1.0 / (ur - 1.0); + G4int itry1 = 0; + G4bool bad = true; + + while (itry1 < itry_max && bad) { + itry1++; + G4int itry = 0; + G4double EPR = -1.0; + G4double S = 0.0; + + while (itry < itry_max && EPR < 0.0) { + itry++; + G4double uu = uc + log((1.0 - d1) * inuclRndm() + d2); + S = 0.5 * (uc * uc - uu * uu) / u[icase]; + EPR = TM[icase] - S * A / (A - 1.0) + V[icase]; + }; + + if (EPR > 0.0 && S > 0.0) { // real escape + S = 0.001 * S; + + if (icase < 2) { // particle escape + G4int ptype = 2 - icase; + G4InuclElementaryParticle particle(ptype); + G4double mass = particle.getMass(); + // generate particle momentum + G4double pmod = sqrt((2.0 * mass + S) * S); + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double P1 = pmod * COS_SIN.second; + mom[1] = P1 * cos(FI); + mom[2] = P1 * sin(FI); + mom[3] = pmod * COS_SIN.first; + G4std::vector mom_at_rest(4); + + for (G4int i = 1; i < 4; i++) mom_at_rest[i] = -mom[i]; + G4double new_nuc_mass = dummy_nuc.getNucleiMass(A1[icase], + Z1[icase]); + mom_at_rest[0] = sqrt(mom_at_rest[1] * mom_at_rest[1] + + mom_at_rest[2] * mom_at_rest[2] + + mom_at_rest[3] * mom_at_rest[3] + + new_nuc_mass * new_nuc_mass); + mom[0] = sqrt(mom[1] * mom[1] + mom[2] * mom[2] + + mom[3] * mom[3] + mass * mass); + + G4std::vector part_mom = + toTheNucleiSystemRestFrame.backToTheLab(mom); + part_mom[0] = sqrt(part_mom[1] * part_mom[1] + + part_mom[2] * part_mom[2] + + part_mom[3] * part_mom[3] + + mass * mass); + G4std::vector ex_mom = + toTheNucleiSystemRestFrame.backToTheLab(mom_at_rest); + ex_mom[0] = sqrt(ex_mom[1] * ex_mom[1] + + ex_mom[2] * ex_mom[2] + + ex_mom[3] * ex_mom[3] + + new_nuc_mass * new_nuc_mass); + EEXS_new = 1000.0 * (PEX[0] + 0.001 * EEXS - + part_mom[0] - ex_mom[0]); + + if (EEXS_new > 0.0) { // everything ok + PEX = ex_mom; + EEXS = EEXS_new; + A = A1[icase]; + Z = Z1[icase]; + particle.setMomentum(part_mom); + output.addOutgoingParticle(particle); + + for (G4int i = 0; i < 4; i++) ppout[i] += part_mom[i]; + bad = false; + }; + + } else { + G4InuclNuclei nuclei(AN[icase], Q[icase]); + G4double mass = nuclei.getMass(); + // generate particle momentum + G4double pmod = sqrt((2.0 * mass + S) * S); + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double P1 = pmod * COS_SIN.second; + mom[1] = P1 * cos(FI); + mom[2] = P1 * sin(FI); + mom[3] = pmod * COS_SIN.first; + G4std::vector mom_at_rest(4); + + for (G4int i = 1; i < 4; i++) mom_at_rest[i] = -mom[i]; + G4double new_nuc_mass = dummy_nuc.getNucleiMass(A1[icase], + Z1[icase]); + mom_at_rest[0] = sqrt(mom_at_rest[1] * mom_at_rest[1] + + mom_at_rest[2] * mom_at_rest[2] + + mom_at_rest[3] * mom_at_rest[3] + + new_nuc_mass * new_nuc_mass); + mom[0] = sqrt(mom[1] * mom[1] + + mom[2] * mom[2] + + mom[3] * mom[3] + + mass * mass); + G4std::vector part_mom = + toTheNucleiSystemRestFrame.backToTheLab(mom); + part_mom[0] = sqrt(part_mom[1] * part_mom[1] + + part_mom[2] * part_mom[2] + + part_mom[3] * part_mom[3] + + mass * mass); + G4std::vector ex_mom = + toTheNucleiSystemRestFrame.backToTheLab(mom_at_rest); + ex_mom[0] = sqrt(ex_mom[1] * ex_mom[1] + + ex_mom[2] * ex_mom[2] + + ex_mom[3] * ex_mom[3] + + new_nuc_mass * new_nuc_mass); + EEXS_new = 1000.0 * (PEX[0] + 0.001 * EEXS - + part_mom[0] - ex_mom[0]); + + if (EEXS_new > 0.0) { // everything ok + PEX = ex_mom; + EEXS = EEXS_new; + A = A1[icase]; + Z = Z1[icase]; + + for (G4int i = 0; i < 4; i++) ppout[i] += part_mom[i]; + nuclei.setMomentum(part_mom); + nuclei.setExitationEnergy(0.0); + nuclei.setEnergy(); + output.addTargetFragment(nuclei); + bad = false; + }; + }; + }; + }; + + if (itry1 == itry_max || bad) try_again = false; + + } else { // fission + G4InuclNuclei nuclei(A, Z); + nuclei.setExitationEnergy(EEXS); + + if (verboseLevel > 2){ + G4cout << " fission: A " << A << " Z " << Z << " eexs " << EEXS << + " Wn " << W[0] << " Wf " << W[6] << G4endl; + } + + G4CollisionOutput foutput = theFissioner->collide(0, &nuclei); + G4std::vector nuclea = foutput.getNucleiFragments(); + + if (nuclea.size() == 2) { // fission o'k + // convert back to the lab + + for(G4int i = 0; i < 2; i++) { + G4std::vector mom = nuclea[i].getMomentum(); + mom = toTheNucleiSystemRestFrame.backToTheLab(mom); + nuclea[i].setMomentum(mom); + nuclea[i].setEnergy(); + }; + + G4CollisionOutput output1 = this->collide(0, &nuclea[0]); + + output.addOutgoingParticles(output1.getOutgoingParticles()); + output.addTargetFragments(output1.getNucleiFragments()); + + output1 = this->collide(0, &nuclea[1]); + + output.addOutgoingParticles(output1.getOutgoingParticles()); + output.addTargetFragments(output1.getNucleiFragments()); + + return output; + + } else { // fission forbidden now + fission_open = false; + }; + }; + }; + + } else { + try_again = false; + }; + }; + }; + // this time it's final nuclei + + if (itry_global == itry_global_max) { + + if (verboseLevel > 3) { + G4cout << " ! itry_global " << itry_global_max << G4endl; + } + + } + + G4std::vector pnuc(4); + + for (G4int i = 1; i < 4; i++) pnuc[i] = pin[i] - ppout[i]; + + G4InuclNuclei nuclei(pnuc, A, Z); + nuclei.setEnergy(); + pnuc = nuclei.getMomentum(); + G4double eout = pnuc[0] + ppout[0]; + G4double eex_real = 1000.0 * (pin[0] - eout); + + nuclei.setExitationEnergy(eex_real); + + output.addTargetFragment(nuclei); + }; + + } else { + G4cout << " EquilibriumEvaporator -> target is not nuclei " << G4endl; + }; + + return output; +} + +G4bool G4EquilibriumEvaporator::timeToBigBang(G4double a, + G4double z, + G4double e) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::timeToBigBang" << G4endl; + } + + const G4double be_cut = 3.0; + G4bool bigb = true; + + if (a >= 12 && z >= 6.0 && z < 3.0 * (a - z)) { + bigb = false; + + } else { + + if (e < be_cut * bindingEnergy(a, z)) bigb = false; + }; + + return bigb; +} + +G4bool G4EquilibriumEvaporator::goodRemnant(G4double a, + G4double z) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::goodRemnant" << G4endl; + } + + return a > 1.0 && z > 0.0 && a > z; +} + +G4double G4EquilibriumEvaporator::getQF(G4double x, + G4double x2, + G4double a, + G4double z, + G4double e) const { + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::getQF" << G4endl; + } + + const G4double QFREP[72] = { + // TL201 * * * * + // 1 2 3 4 5 + 22.5, 22.0, 21.0, 21.0, 20.0, + // BI209 BI207 PO210 AT213 * TH234 + // 6 7 8 9 10 11 + 20.6, 20.6, 18.6, 15.8, 13.5, 6.5, + // TH233 TH232 TH231 TH230 TX229 PA233 PA232 PA231 PA230 U240 + // 12 13 14 15 16 17 18 19 20 21 + 6.65, 6.22, 6.27, 6.5, 6.7, 6.2, 6.25, 5.9, 6.1, 5.75, + // U239 U238 U237 U236 U235 U234 U233 U232 U231 + // 22 23 24 25 26 27 28 29 30 + 6.46, 5.7, 6.28, 5.8, 6.15, 5.6, 5.8, 5.2, 5.8, + // NP238 NP237 NP236 NP235 PU245 NP234 PU244 NP233 + // 31 32 33 34 35 36 37 38 + 6.2 , 5.9 , 5.9, 6.0, 5.8, 5.7, 5.4, 5.4, + // PU242 PU241 PU240 PU239 PU238 AM247 PU236 AM245 AM244 AM243 + // 39 40 41 42 43 44 45 46 47 48 + 5.6, 6.1, 5.57, 6.3, 5.5, 5.8, 4.7, 6.2, 6.4, 6.2, + // AM242 AM241 AM240 CM250 AM239 CM249 CM248 CM247 CM246 + // 49 50 51 52 53 54 55 56 57 + 6.5, 6.2, 6.5, 5.3, 6.4, 5.7, 5.7, 6.2, 5.7, + // CM245 CM244 CM243 CM242 CM241 BK250 CM240 + // 58 59 60 61 62 63 64 + 6.3, 5.8, 6.7, 5.8, 6.6, 6.1, 4.3, + // BK249 CF252 CF250 CF248 CF246 ES254 ES253 FM254 + // 65 66 67 68 69 70 71 72 + 6.2, 3.8, 5.6, 4.0, 4.0, 4.2, 4.2, 3.5 }; + + const G4double XREP[72] = { + // 1 2 3 4 5 + 0.6761, 0.677, 0.6788, 0.6803, 0.685, + // 6 7 8 9 10 11 + 0.6889, 0.6914, 0.6991, 0.7068, 0.725, 0.7391, + // 12 13 14 15 16 17 18 19 20 21 + 0.74, 0.741, 0.742, 0.743, 0.744, 0.7509, 0.752, 0.7531, 0.7543, 0.7548, + // 22 23 24 + 0.7557, 0.7566, 0.7576, + // 25 26 27 28 29 30 31 32 33 34 + 0.7587, 0.7597, 0.7608, 0.762, 0.7632, 0.7644, 0.7675, 0.7686, 0.7697, 0.7709, + // 35 36 37 38 39 40 41 + 0.7714, 0.7721, 0.7723, 0.7733, 0.7743, 0.7753, 0.7764, + // 42 43 44 45 46 47 48 49 + 0.7775, 0.7786, 0.7801, 0.781, 0.7821, 0.7831, 0.7842, 0.7852, + // 50 51 52 53 54 55 56 57 58 + 0.7864, 0.7875, 0.7880, 0.7887, 0.7889, 0.7899, 0.7909, 0.7919, 0.7930, + // 59 60 61 62 63 64 + 0.7941, 0.7953, 0.7965, 0.7977, 0.7987, 0.7989, + // 65 66 67 68 69 70 71 72 + 0.7997, 0.8075, 0.8097, 0.8119, 0.8143, 0.8164, 0.8174, 0.8274 }; + + const G4double G0 = 20.4; + const G4double XMIN = 0.6761; + const G4double XMAX = 0.8274; + + G4double QFF = 0.0; + + if (x < XMIN || x > XMAX) { + + G4double X1 = 1.0 - 0.02 * x2; + G4double FX = (0.73 + (3.33 * X1 - 0.66) * X1) * pow(X1, 3); + + QFF = G0 * FX * pow(a, 2.0 / 3.0); + + } else { + + for (G4int i = 1; i < 72; i++) { + + if (x <= XREP[i]) { + QFF = QFREP[i - 1] + (QFREP[i] - QFREP[i - 1]) * (x - XREP[i - 1])/ + (XREP[i] - XREP[i - 1]); + + break; + }; + }; + }; + + if (QFF < 0.0) QFF = 0.0; + + return QFF; +} + +G4double G4EquilibriumEvaporator::getAF(G4double x, + G4double a, + G4double z, + G4double e) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::getAF" << G4endl; + } + + // ugly parameterisation to fit the experimental fission cs for Hg - Bi nuclei + G4double AF = 1.285 * (1.0 - e / 1100.0); + + if(AF < 1.06) AF = 1.06; + // if(AF < 1.08) AF = 1.08; + + return AF; +} + +G4double G4EquilibriumEvaporator::getPARLEVDEN(G4double A, + G4double Z) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::getPARLEVDEN" << G4endl; + } + + const G4double par = 0.125; + + return par; +} + +G4double G4EquilibriumEvaporator::getE0(G4double A) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4EquilibriumEvaporator::getE0" << G4endl; + } + + const G4double e0 = 200.0; + + return e0; +} diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc b/source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc similarity index 56% rename from examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc rename to source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc index b48c953128..610409cde7 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02RunAction.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc @@ -19,56 +19,50 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: PersEx02RunAction.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "PersEx02RunAction.hh" +#include "G4FissionStore.hh" +#include -#include "G4Run.hh" -#include "G4PersistencyManager.hh" -#include "G4TransportationManager.hh" -#include "G4VPhysicalVolume.hh" +G4FissionStore::G4FissionStore() + : verboseLevel(2){ -PersEx02RunAction::PersEx02RunAction() -{ -} - -PersEx02RunAction::~PersEx02RunAction() -{ -} - -void PersEx02RunAction::BeginOfRunAction(const G4Run* aRun) -{ - G4PersistencyManager* persM - = G4PersistencyManager::GetPersistencyManager(); - - if(aRun->GetRunID()==0) - { - if(persM) - { - G4VPhysicalVolume* theWorld - = G4TransportationManager::GetTransportationManager() - ->GetNavigatorForTracking()->GetWorldVolume(); - persM->Store(theWorld); - } - } - - // start event DB transaction with sustained mode - persM->StartTransaction(kEventDB, kUpdate, true); - -} - -void PersEx02RunAction::EndOfRunAction(const G4Run* ) -{ - G4PersistencyManager* persM - = G4PersistencyManager::GetPersistencyManager(); - if(persM) - { - // commit the sustained event DB transaction - persM->Commit(kEventDB, true); + if (verboseLevel > 3) { + G4cout << " >>> G4FissionStore::G4FissionStore" << G4endl; } } +G4FissionConfiguration G4FissionStore::generateConfiguration(G4double amax, + G4double rand) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4FissionStore::generateConfiguration" << G4endl; + } + + const G4double small = -30.0; + + G4double totProb = 0.0; + G4std::vector probs(configurations.size()); + +// G4cout << " amax " << amax << " ic " << configurations.size() << G4endl; + + for (G4int i = 0; i < G4int(configurations.size()); i++) { + G4double ez = configurations[i].ezet; + G4double pr = ez - amax; + + if (pr < small) pr = small; + pr = exp(pr); + // configurations[i].print(); + // G4cout << " probability " << pr << G4endl; + totProb += pr; + probs[i] = totProb; + }; + + G4double st = totProb * rand; + G4int igen = 0; + + while (probs[igen] <= st && igen < G4int(configurations.size())) igen++; + +// G4cout << " igen " << igen << G4endl; + + return configurations[igen]; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc b/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc new file mode 100644 index 0000000000..9cfaf9c3ed --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc @@ -0,0 +1,396 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4Fissioner.hh" +#include "G4InuclNuclei.hh" +#include "G4FissionStore.hh" +#include "G4FissionConfiguration.hh" + +G4Fissioner::G4Fissioner() + : verboseLevel(1) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Fissioner::G4Fissioner" << G4endl; + } +} + +G4CollisionOutput G4Fissioner::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4Fissioner::collide" << G4endl; + } + + const G4double one_third = 1.0 / 3.0; + const G4double two_thirds = 2.0 / 3.0; + // const G4int itry_max = 1000; + G4CollisionOutput output; + + if (G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + + if (verboseLevel > 3) { + G4cout << " Fissioner input " << G4endl; + + nuclei_target->printParticle(); + } + + G4double A = nuclei_target->getA(); + G4double Z = nuclei_target->getZ(); + G4double EEXS = nuclei_target->getExitationEnergy(); + G4double mass_in = nuclei_target->getMass(); + G4double e_in = mass_in + 0.001 * EEXS; + G4double PARA = 0.055 * pow(A, two_thirds) * (pow(A - Z, one_third) + pow(Z, one_third)); + G4double TEM = sqrt(EEXS / PARA); + G4double TETA = 0.494 * pow(A, one_third) * TEM; + + TETA = TETA / sinh(TETA); + + if (A < 246.0) PARA += (nucleiLevelDensity(A) - PARA) * TETA; + + G4double A1 = G4int(A / 2.0 + 1.1); + G4double Z1; + G4double A2 = A - A1; + G4double ALMA = -1000.0; + G4double DM1 = bindingEnergy(A, Z); + G4double EVV = EEXS - DM1; + G4double DM2 = bindingEnergyAsymptotic(A, Z); + G4double DTEM = (A < 220.0 ? 0.5 : 1.15); + + TEM += DTEM; + + G4std::vector AL1(2, -0.15); + G4std::vector BET1(2, 0.05); + G4FissionStore fissionStore; + G4double R12 = pow(A1, one_third) + pow(A2, one_third); + + for (G4int i = 0; i < 50 && A1 > 30.0; i++) { + A1 -= 1.0; + A2 = A - A1; + G4double X3 = 1.0 / pow(A1, one_third); + G4double X4 = 1.0 / pow(A2, one_third); + Z1 = G4int(getZopt(A1, A2, Z, X3, X4, R12)) - 1.0; + G4std::vector EDEF1(2); + G4double Z2 = Z - Z1; + G4double VPOT, VCOUL; + + potentialMinimization(VPOT, EDEF1, VCOUL, A1, A2, Z1, Z2, AL1, BET1, R12); + + G4double DM3 = bindingEnergy(A1, Z1); + G4double DM4 = bindingEnergyAsymptotic(A1, Z1); + G4double DM5 = bindingEnergy(A2, Z2); + G4double DM6 = bindingEnergyAsymptotic(A2, Z2); + G4double DMT1 = DM4 + DM6 - DM2; + G4double DMT = DM3 + DM5 - DM1; + G4double EZL = EEXS + DMT - VPOT; + + if(EZL > 0.0) { // generate fluctuations + // faster, using randomGauss + G4double C1 = sqrt(getC2(A1, A2, X3, X4, R12) / TEM); + G4double DZ = randomGauss(C1); + + DZ = DZ > 0.0 ? G4int(DZ + 0.5) : -G4int(fabs(DZ - 0.5)); + Z1 += DZ; + Z2 -= DZ; + + G4double DEfin = randomGauss(TEM); + G4double EZ = (DMT1 + (DMT - DMT1) * TETA - VPOT + DEfin) / TEM; + + if (EZ >= ALMA) ALMA = EZ; + G4double EK = VCOUL + DEfin + 0.5 * TEM; + G4double EV = EVV + bindingEnergy(A1, Z1) + bindingEnergy(A2, Z2) - EK; + + if (EV > 0.0) fissionStore.addConfig(A1, Z1, EZ, EK, EV); + }; + }; + + G4int store_size = fissionStore.size(); + + if (store_size > 0) { + + G4FissionConfiguration config = + fissionStore.generateConfiguration(ALMA, inuclRndm()); + + A1 = config.afirst; + A2 = A - A1; + Z1 = config.zfirst; + + G4double Z2 = Z - Z1; + G4InuclNuclei nuclei1(A1, Z1); + G4InuclNuclei nuclei2(A2, Z2); + G4double mass1 = nuclei1.getMass(); + G4double mass2 = nuclei2.getMass(); + G4double EK = config.ekin; + G4double pmod = sqrt(0.001 * EK * mass1 * mass2 / mass_in); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double Fi = randomPHI(); + G4double P1 = pmod * COS_SIN.second; + G4std::vector mom1(4); + G4std::vector mom2(4); + + mom1[1] = P1 * cos(Fi); + mom1[2] = P1 * sin(Fi); + mom1[3] = pmod * COS_SIN.first; + + for (G4int i = 1; i < 4; i++) mom2[i] = -mom1[i]; + + G4double e_out = sqrt(pmod * pmod + mass1 * mass1) + + sqrt(pmod * pmod + mass2 * mass2); + G4double EV = 1000.0 * (e_in - e_out) / A; + + if (EV > 0.0) { + G4double EEXS1 = EV*A1; + G4double EEXS2 = EV*A2; + G4InuclNuclei nuclei1(mom1, A1, Z1); + + nuclei1.setExitationEnergy(EEXS1); + nuclei1.setEnergy(); + output.addTargetFragment(nuclei1); + + G4InuclNuclei nuclei2(mom2, A2, Z2); + + nuclei2.setExitationEnergy(EEXS2); + nuclei2.setEnergy(); + output.addTargetFragment(nuclei2); + + if (verboseLevel > 3) { + nuclei1.printParticle(); + nuclei2.printParticle(); + } + }; + }; + + } else { + G4cout << " Fissioner -> target is not nuclei " << G4endl; + }; + + return output; +} + +G4double G4Fissioner::getC2(G4double A1, + G4double A2, + G4double X3, + G4double X4, + G4double R12) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4Fissioner::getC2" << G4endl; + } + + G4double C2 = 124.57 * (1.0 / A1 + 1.0 / A2) + 0.78 * (X3 + X4) - 176.9 * + (pow(X3, 4) + pow(X4, 4)) + 219.36 * (1.0 / (A1 * A1) + 1.0 / (A2 * A2)) - 1.108 / R12; + + return C2; +} + +G4double G4Fissioner::getZopt(G4double A1, + G4double A2, + G4double ZT, + G4double X3, + G4double X4, + G4double R12) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4Fissioner::getZopt" << G4endl; + } + + G4double Zopt = (87.7 * (X4 - X3) * (1.0 - 1.25 * (X4 + X3)) + + ZT * ((124.57 / A2 + 0.78 * X4 - 176.9 * pow(X4, 4) + 219.36 / (A2 * A2)) - 0.554 / R12)) / + getC2(A1, A2, X3, X4, R12); + + return Zopt; +} + +void G4Fissioner::potentialMinimization(G4double& VP, + G4std::vector & ED, + G4double& VC, + G4double AF, + G4double AS, + G4double ZF, + G4double ZS, + G4std::vector& AL1, + G4std::vector& BET1, + G4double& R12) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4Fissioner::potentialMinimization" << G4endl; + } + + const G4double huge_num = 2.0e35; + const G4double one_third = 1.0 / 3.0; + // const G4double two_thirds = 2.0 / 3.0; + const G4int itry_max = 2000; + const G4double DSOL1 = 1.0e-6; + const G4double DS1 = 0.3; + const G4double DS2 = 1.0 / DS1 / DS1; + G4double A1[2]; + A1[0] = AF; + A1[1] = AS; + G4double Z1[2]; + Z1[0] = ZF; + Z1[1] = ZS; + G4double D = 1.01844 * ZF * ZS; + G4double D0 = 1.0e-3 * D; + G4double R[2]; + R12 = 0.0; + G4double C[2]; + G4double F[2]; + G4double Y1; + G4double Y2; + G4int i; + + for (i = 0; i < 2; i++) { + R[i] = pow(A1[i], one_third); + Y1 = R[i] * R[i]; + Y2 = Z1[i] * Z1[i] / R[i]; + C[i] = 6.8 * Y1 - 0.142 * Y2; + F[i] = 12.138 * Y1 - 0.145 * Y2; + }; + + G4double SAL[2]; + G4double SBE[2]; + G4double X[2]; + G4double X1[2]; + G4double X2[2]; + G4double RAL[2]; + G4double RBE[2]; + G4double A[4][4]; + G4double B[4]; + G4int itry = 0; + + while (itry < itry_max) { + itry++; + G4double S = 0.0; + + for (G4int i = 0; i < 2; i++) { + S += R[i] * (1.0 + AL1[i] + BET1[i] - 0.257 * AL1[i] * BET1[i]); + }; + R12 = 0.0; + Y1 = 0.0; + Y2 = 0.0; + + for (i = 0; i < 2; i++) { + SAL[i] = R[i] * (1.0-0.257 * BET1[i]); + SBE[i] = R[i] * (1.0-0.257 * AL1[i]); + X[i] = R[i] / S; + X1[i] = X[i] * X[i]; + X2[i] = X[i] * X1[i]; + Y1 += AL1[i] * X1[i]; + Y2 += BET1[i] * X2[i]; + R12 += R[i] * (1.0 - AL1[i] * (1.0 - 0.6 * X[i]) + BET1[i] * (1.0 - 0.429 * X1[i])); + }; + + G4double Y3 = -0.6 * Y1 + 0.857 * Y2; + G4double Y4 = (1.2 * Y1 - 2.571 * Y2) / S; + G4double R2 = D0 / (R12 * R12); + G4double R3 = 2.0 * R2 / R12; + + for (i = 0; i < 2; i++) { + RAL[i] = -R[i] * (1.0 - 0.6 * X[i]) + SAL[i] * Y3; + RBE[i] = R[i] * (1.0 - 0.429 * X1[i]) + SBE[i] * Y3; + }; + + G4double DX1; + G4double DX2; + + for (i = 0; i < 2; i++) { + + for (G4int j = 0; j < 2; j++) { + G4double DEL1 = i == j ? 1.0 : 0.0; + DX1 = 0.0; + DX2 = 0.0; + + if (fabs(AL1[i]) >= DS1) { + G4double XXX = AL1[i] * AL1[i] * DS2; + G4double DEX = XXX > 100.0 ? huge_num : exp(XXX); + DX1 = 2.0 * (1.0 + 2.0 * AL1[i] * AL1[i] * DS2) * DEX * DS2; + }; + + if (fabs(BET1[i]) >= DS1) { + G4double XXX = BET1[i] * BET1[i] * DS2; + G4double DEX = XXX > 100.0 ? huge_num : exp(XXX); + DX2 = 2.0 * (1.+2.0 * BET1[i] * BET1[i] * DS2) * DEX * DS2; + }; + + G4double DEL = 2.0e-3 * DEL1; + A[i][j] = R3 * RBE[i] * RBE[j] - + R2 * (-0.6 * + (X1[i] * SAL[j] + + X1[j] * SAL[i]) + SAL[i] * SAL[j] * Y4) + + DEL * C[i] + DEL1 * DX1; + G4int i1 = i + 2; + G4int j1 = j + 2; + A[i1][j1] = R3 * RBE[i] * RBE[j] + - R2 * (0.857 * + (X2[i] * SBE[j] + + X2[j] * SBE[i]) + SBE[i] * SBE[j] * Y4) + + DEL * F[i] + DEL1 * DX2; + A[i][j1] = R3 * RAL[i] * RBE[j] - + R2 * (0.857 * + (X2[j] * SAL[i] - + 0.6 * X1[i] * SBE[j]) + SBE[j] * SAL[i] * Y4 - + 0.257 * R[i] * Y3 * DEL1); + A[j1][i] = A[i][j1]; + }; + }; + + for (i = 0; i < 2; i++) { + DX1 = 0.0; + DX2 = 0.0; + + if (fabs(AL1[i]) >= DS1) DX1 = 2.0 * AL1[i] * DS2 * exp(AL1[i] * AL1[i] * DS2); + + if (fabs(BET1[i]) >= DS1) DX2 = 2.0 * BET1[i] * DS2 * exp(BET1[i] * BET1[i] * DS2); + B[i] = R2 * RAL[i] - 2.0e-3 * C[i] * AL1[i] + DX1; + B[i + 2] = R2 * RBE[i] - 2.0e-3 * F[i] * BET1[i] + DX2; + }; + + G4double ST = 0.0; + G4double ST1 = 0.0; + + for (i = 0; i < 4; i++) { + ST += B[i] * B[i]; + + for (G4int j = 0; j < 4; j++) ST1 += A[i][j] * B[i] * B[j]; + }; + + G4double STEP = ST / ST1; + G4double DSOL = 0.0; + + for (i = 0; i < 2; i++) { + AL1[i] += B[i] * STEP; + BET1[i] += B[i + 2] * STEP; + DSOL += B[i] * B[i] + B[i + 2] * B[i + 2]; + }; + DSOL = sqrt(DSOL); + + if (DSOL < DSOL1) break; + }; + + if (itry == itry_max) + G4cout << " maximal number of iterations in potentialMinimization " << G4endl + << " A1 " << AF << " Z1 " << ZF << G4endl; + + for (i = 0; i < 2; i++) ED[i] = F[i] * BET1[i] * BET1[i] + C[i] * AL1[i] * AL1[i]; + + VC = D / R12; + VP = VC + ED[0] + ED[1]; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc b/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc new file mode 100644 index 0000000000..0a4d63d1c6 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc @@ -0,0 +1,363 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#define RUN + +#include "G4IntraNucleiCascader.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4InuclNuclei.hh" +#include "G4LorentzConvertor.hh" +#include "G4ParticleLargerEkin.hh" +#include "G4NucleiModel.hh" +#include "G4CascadParticle.hh" +#include "g4std/algorithm" + +typedef G4std::vector::iterator particleIterator; + +G4IntraNucleiCascader::G4IntraNucleiCascader() + : verboseLevel(1) { + + if (verboseLevel > 3) { + G4cout << " >>> G4IntraNucleiCascader::G4IntraNucleiCascader" << G4endl; + } + +} + +G4CollisionOutput G4IntraNucleiCascader::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4IntraNucleiCascader::collide" << G4endl; + } + + const G4int itry_max = 1000; + const G4int reflection_cut = 500; + // const G4double eexs_cut = 0.0001; + + if (verboseLevel > 3) { + bullet->printParticle(); + target->printParticle(); + } + + G4CollisionOutput output; + +#ifdef RUN + G4InuclNuclei* tnuclei = dynamic_cast(target); + G4InuclNuclei* bnuclei = dynamic_cast(bullet); + G4InuclElementaryParticle* bparticle = dynamic_cast(bullet); + G4NucleiModel model(tnuclei); + G4std::vector momentum_in = bullet->getMomentum(); + + momentum_in[0] += tnuclei->getMass(); + + G4double ekin_in; + + if (verboseLevel > 3) { + model.printModel(); + G4cout << " intitial momentum E " << momentum_in[0] << " Px " << momentum_in[1] + << " Py " << momentum_in[2] << " Pz " << momentum_in[3] << G4endl; + } + + G4int itry = 0; + + while (itry < itry_max) { + itry++; + model.reset(); + + G4std::vector cascad_particles; + G4ExitonConfiguration theExitonConfiguration; + G4std::vector output_particles; + G4double afin = tnuclei->getA(); + G4double zfin = tnuclei->getZ(); + + if (inter_case == 1) { // particle with nuclei + ekin_in = bparticle->getKineticEnergy(); + zfin += bparticle->getCharge(); + if (bparticle->nucleon()) afin += 1.0; + cascad_particles.push_back(model.initializeCascad(bparticle)); + + } else { // nuclei with nuclei + + ekin_in = bnuclei->getKineticEnergy(); + + G4double ab = bnuclei->getA(); + G4double zb = bnuclei->getZ(); + + afin += ab; + zfin += zb; + + G4std::pair, G4std::vector > + all_particles = model.initializeCascad(bnuclei, tnuclei); + + cascad_particles = all_particles.first; + + for (G4int ip = 0; ip < G4int(all_particles.second.size()); ip++) + output_particles.push_back(all_particles.second[ip]); + + if (cascad_particles.size() == 0) { // compound nuclei + G4int ia = int(ab + 0.5); + G4int iz = int(zb + 0.5); + G4int i; + + for (i = 0; i < ia; i++) { + G4int knd = i < iz ? 1 : 2; + theExitonConfiguration.incrementQP(knd); + }; + + G4int ihn = int(2.0 * (ab - zb) * inuclRndm() + 0.5); + G4int ihz = int(2.0 * zb * inuclRndm() + 0.5); + + for (i = 0; i < ihn; i++) theExitonConfiguration.incrementHoles(2); + + for (i = 0; i < ihz; i++) theExitonConfiguration.incrementHoles(1); + }; + }; + + G4std::vector new_cascad_particles; + G4int iloop = 0; + + while (!cascad_particles.empty() && !model.empty()) { + iloop++; + + if (verboseLevel > 3) { + G4cout << " Number of cparticles " << cascad_particles.size() << G4endl; + cascad_particles.back().print(); + } + + new_cascad_particles = model.generateParticleFate(cascad_particles.back(), + theElementaryParticleCollider); + if (verboseLevel > 2) { + G4cout << " ew particles " << new_cascad_particles.size() << G4endl; + } + + // handle the result of a new step + + if (new_cascad_particles.size() == 1) { // last particle goes without interaction + cascad_particles.pop_back(); + + if (model.stillInside(new_cascad_particles[0])) { // particle survives + + if (verboseLevel > 3) { + G4cout << " still inside " << G4endl; + } + + if (new_cascad_particles[0].getNumberOfReflections() < reflection_cut && + model.worthToPropagate(new_cascad_particles[0])) { // it's ok + + if (verboseLevel > 3) { + G4cout << " survives " << G4endl; + } + + cascad_particles.push_back(new_cascad_particles[0]); + + } else { // it becomes an exiton + + if (verboseLevel > 3) { + G4cout << " becomes an exiton " << G4endl; + } + + theExitonConfiguration.incrementQP(new_cascad_particles[0].getParticle().type()); + }; + + } else { // goes out + + if (verboseLevel > 3) { + G4cout << " Goes out " << G4endl; + new_cascad_particles[0].print(); + } + + output_particles.push_back(new_cascad_particles[0].getParticle()); + }; + + } else { // interaction + + cascad_particles.pop_back(); + + for (G4int i = 0; i < G4int(new_cascad_particles.size()); i++) + cascad_particles.push_back(new_cascad_particles[i]); + + G4std::pair holes = model.getTypesOfNucleonsInvolved(); + + theExitonConfiguration.incrementHoles(holes.first); + + if (holes.second > 0) theExitonConfiguration.incrementHoles(holes.second); + + }; + }; + + // cascad is finished -> check, whether it's o'k + + if (verboseLevel > 3) { + G4cout << " Cascade finished " << G4endl + << " output_particles " << output_particles.size() << G4endl; + } + + G4std::vector momentum_out(4, 0.0); + particleIterator ipart; + + for (ipart = output_particles.begin(); ipart != output_particles.end(); ipart++) { + + G4std::vector mom = ipart->getMomentum(); + + for (G4int j = 0; j < 4; j++) momentum_out[j] += mom[j]; + + zfin -= ipart->getCharge(); + + if (ipart->nucleon()) afin -= 1.0; + + }; + + if (verboseLevel > 3) { + G4cout << " afin " << afin << " zfin " << zfin << G4endl; + } + + if (afin > 1.0) { + + G4InuclNuclei outgoing_nuclei(afin, zfin); + G4double mass = outgoing_nuclei.getMass(); + momentum_out[0] += mass; + + for (int j = 0; j < 4; j++) momentum_out[j] = momentum_in[j] - momentum_out[j]; + + if (verboseLevel > 3) { + G4cout << " Eex + Ekin " << momentum_out[0] << G4endl; + } + + if (momentum_out[0] > 0.0) { // Eex + Ekin > 0.0 + G4double pnuc = momentum_out[1] * momentum_out[1] + + momentum_out[2] * momentum_out[2] + + momentum_out[3] * momentum_out[3]; + G4double ekin = sqrt(mass * mass + pnuc) - mass; + G4double Eex = 1000.0 * (momentum_out[0] - ekin); + + if (verboseLevel > 3) { + G4cout << " Eex " << Eex << G4endl; + } + + if (goodCase(afin, zfin, Eex, ekin_in)) { // ok, exitation energy > cut + G4std::sort(output_particles.begin(), output_particles.end(), G4ParticleLargerEkin()); + output.addOutgoingParticles(output_particles); + outgoing_nuclei.setMomentum(momentum_out); + outgoing_nuclei.setEnergy(); + outgoing_nuclei.setExitationEnergy(Eex); + outgoing_nuclei.setExitonConfiguration(theExitonConfiguration); + output.addTargetFragment(outgoing_nuclei); + + return output; + }; + }; + + } else { // special case, when one has no nuclei after the cascad + + if (afin == 1.0) { // recoiling nucleon + + for (int j = 0; j < 4; j++) momentum_out[j] = momentum_in[j] - momentum_out[j]; + + G4InuclElementaryParticle last_particle; + + if (zfin == 1.0) { // recoiling proton + last_particle.setType(1); + + } else { // neutron + + last_particle.setType(2); + }; + + last_particle.setMomentum(momentum_out); + output_particles.push_back(last_particle); + }; + + G4std::sort(output_particles.begin(), output_particles.end(), G4ParticleLargerEkin()); + output.addOutgoingParticles(output_particles); + + return output; + }; + }; + +#else + + // special branch to avoid the cascad generation but to get the input for evaporation etc + + G4std::vector momentum_out(4, 0.0); + G4InuclNuclei outgoing_nuclei(169, 69); + + outgoing_nuclei.setMomentum(momentum_out); + outgoing_nuclei.setEnergy(); + outgoing_nuclei.setExitationEnergy(150.0); + + G4ExitonConfiguration theExitonConfiguration(3.0, 3.0, 5.0, 6.0); + + outgoing_nuclei.setExitonConfiguration(theExitonConfiguration); + output.addTargetFragment(outgoing_nuclei); + + return output; + + /* + G4InuclElementaryParticle* bparticle = dynamic_cast + (bullet); + G4InuclNuclei* tnuclei = dynamic_cast(target); + output.addOutgoingParticle(*bparticle); + output.addTargetFragment(*tnuclei); + return output; + */ + +#endif + + if (verboseLevel > 3) { + G4cout << " IntraNucleiCascader-> no inelastic interaction after " << itry_max << " attempts " + << G4endl; + } + + output.trivialise(bullet, target); + + return output; +} + +G4bool G4IntraNucleiCascader::goodCase(G4double a, + G4double z, + G4double eexs, + G4double ein) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4IntraNucleiCascader::goodCase" << G4endl; + } + + const G4double eexs_cut = 0.0001; + const G4double reason_cut = 7.0; + const G4double ediv_cut = 5.0; + + G4bool good = false; + + if (eexs > eexs_cut) { + G4double eexs_max0z = 1000.0 * ein / ediv_cut; + G4double dm = bindingEnergy(a, z); + G4double eexs_max = eexs_max0z > reason_cut*dm ? eexs_max0z : reason_cut * dm; + + if(eexs < eexs_max) good = true; + + if (verboseLevel > 3) { + G4cout << " eexs " << eexs << " max " << eexs_max << " dm " << dm << G4endl; + } + + }; + + return good; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc b/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc new file mode 100644 index 0000000000..6fa4e8d451 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc @@ -0,0 +1,406 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclCollider.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4LorentzConvertor.hh" +#include "G4ParticleLargerEkin.hh" +#include "g4std/algorithm" + +typedef G4std::vector::iterator particleIterator; +typedef G4std::vector::iterator nucleiIterator; + +G4InuclCollider::G4InuclCollider() + : verboseLevel(2) { + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclCollider::G4InuclCollider" << G4endl; + } +} + +G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + verboseLevel = 2; + if (verboseLevel > 3) { + G4cout << " >>> G4InuclCollider::collide" << G4endl; + } + + const G4int itry_max = 1000; + + G4CollisionOutput globalOutput; + G4InuclElementaryParticle* particle1 = + dynamic_cast(bullet); + G4InuclElementaryParticle* particle2 = + dynamic_cast(target); + + if(particle1 && particle2) { // particle + particle + if (verboseLevel > 2) { + particle1->printParticle(); + particle2->printParticle(); + } + globalOutput = theElementaryParticleCollider->collide(bullet, target); + } + else { // needs to call all machinery + + G4LorentzConvertor convertToTargetRestFrame; + G4InteractionCase interCase = bulletTargetSetter(bullet, target); + G4int intcase = interCase.getInterCase(); + + if(intcase > 0) { // ok + + G4InuclNuclei* ntarget = + dynamic_cast(interCase.getTarget()); + + convertToTargetRestFrame.setTarget(ntarget->getMomentum(), + ntarget->getMass()); + + G4int btype = 0; + G4double ab = 0.0; + G4double zb = 0.0; + G4double at = ntarget->getA(); + G4double zt = ntarget->getZ(); + + if(intcase == 1) { // particle with nuclei + + G4InuclElementaryParticle* pbullet = + dynamic_cast(interCase.getBullet()); + + if(pbullet->photon()) { + + G4cout << " InuclCollider -> can not collide with photon " << G4endl; + + globalOutput.trivialise(bullet, target); + + return globalOutput; + } else { + convertToTargetRestFrame.setBullet(pbullet->getMomentum(), + pbullet->getMass()); + btype = pbullet->type(); + }; + } + else { // nuclei with nuclei + + G4InuclNuclei* nbullet = + dynamic_cast(interCase.getBullet()); + + convertToTargetRestFrame.setBullet(nbullet->getMomentum(), + nbullet->getMass()); + ab = nbullet->getA(); + zb = nbullet->getZ(); + }; + + G4double ekin = convertToTargetRestFrame.getKinEnergyInTheTRS(); + + if (verboseLevel > 3) { + G4cout << " ekin in trs " << ekin << G4endl; + } + + if(inelasticInteractionPossible(bullet, target, ekin)) { + convertToTargetRestFrame.toTheTargetRestFrame(); + + if (verboseLevel > 3) { + G4cout << " degenerated? " << convertToTargetRestFrame.trivial() << G4endl; + } + + G4std::vector bmom(4, 0.0); + + bmom[3] = convertToTargetRestFrame.getTRSMomentum(); + + G4InuclNuclei ntarget(at, zt); + G4std::vector tmom(4, 0.0); + + ntarget.setMomentum(tmom); + ntarget.setEnergy(); + theIntraNucleiCascader->setInteractionCase(intcase); + + G4bool bad = true; + G4int itry = 0; + + while (bad && itry < itry_max) { + + G4CollisionOutput TRFoutput; + G4CollisionOutput output; + + itry++; + if(intcase == 1) { + + G4InuclElementaryParticle pbullet(bmom, btype); + + output = theIntraNucleiCascader->collide(&pbullet, &ntarget); + } + else { + + G4InuclNuclei nbullet(ab, zb); + + nbullet.setMomentum(bmom); + nbullet.setEnergy(); + output = theIntraNucleiCascader->collide(&nbullet, &ntarget); + }; + + if (verboseLevel > 3) { + G4cout << " After Cascade " << G4endl; + + output.printCollisionOutput(); + } + + // the rest, if any + TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); + + if(output.numberOfNucleiFragments() == 1) { // there is smth. after + + G4InuclNuclei cascad_rec_nuclei = output.getNucleiFragments()[0]; + + if(explosion(&cascad_rec_nuclei)) { + + if (verboseLevel > 3) { + G4cout << " big bang after cascade " << G4endl; + }; + + output = theBigBanger->collide(0,&cascad_rec_nuclei); + TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); + } + else { + output = theNonEquilibriumEvaporator->collide(0, &cascad_rec_nuclei); + + if (verboseLevel > 3) { + G4cout << " After NonEquilibriumEvaporator " << G4endl; + + output.printCollisionOutput(); + }; + + TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); + + G4InuclNuclei exiton_rec_nuclei = output.getNucleiFragments()[0]; + + output = theEquilibriumEvaporator->collide(0, &exiton_rec_nuclei); + + if (verboseLevel > 3) { + G4cout << " After EquilibriumEvaporator " << G4endl; + + output.printCollisionOutput(); + }; + + TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); + TRFoutput.addTargetFragments(output.getNucleiFragments()); + }; + }; + + + // convert to the LAB + G4bool withReflection = convertToTargetRestFrame.reflectionNeeded(); + G4std::vector particles = + TRFoutput.getOutgoingParticles(); + + if(!particles.empty()) { + particleIterator ipart; + for(ipart = particles.begin(); ipart != particles.end(); ipart++) { + + G4std::vector mom = ipart->getMomentum(); + + if(withReflection) mom[3] = -mom[3]; + mom = convertToTargetRestFrame.rotate(mom); + ipart->setMomentum(mom); + mom = convertToTargetRestFrame.backToTheLab(ipart->getMomentum()); + ipart->setMomentum(mom); + }; + G4std::sort(particles.begin(), particles.end(), G4ParticleLargerEkin()); + }; + + G4std::vector nucleus = TRFoutput.getNucleiFragments(); + + if(!nucleus.empty()) { + nucleiIterator inuc; + for(inuc = nucleus.begin(); inuc != nucleus.end(); inuc++) { + G4std::vector mom = inuc->getMomentum(); + if(withReflection) mom[3] = -mom[3]; + mom = convertToTargetRestFrame.rotate(mom); + inuc->setMomentum(mom); + inuc->setEnergy(); + mom = convertToTargetRestFrame.backToTheLab(inuc->getMomentum()); + inuc->setMomentum(mom); + inuc->setEnergy(); + }; + }; + globalOutput.addOutgoingParticles(particles); + globalOutput.addTargetFragments(nucleus); + globalOutput.setOnShell(bullet, target); + if(globalOutput.acceptable()) { + + return globalOutput; + } + else { + globalOutput.reset(); + }; + }; + + if (verboseLevel > 3) { + G4cout << " InuclCollider -> can not generate acceptable inter. after " + << itry_max << " attempts " << G4endl; + } + + globalOutput.trivialise(bullet, target); + + return globalOutput; + } + else { + + if (verboseLevel > 3) { + G4cout << " InuclCollider -> inelastic interaction is impossible " << G4endl + << " due to the coulomb barirer " << G4endl; + } + + globalOutput.trivialise(bullet, target); + + return globalOutput; + }; + } + else { + + if (verboseLevel > 3) { + G4cout << " InuclCollider -> inter case " << intcase << G4endl; + }; + }; + }; + + return globalOutput; +} + +G4bool G4InuclCollider::inelasticInteractionPossible(G4InuclParticle* bullet, + G4InuclParticle* target, + G4double ekin) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclCollider::inelasticInteractionPossible" << G4endl; + } + + const G4double coeff = 0.001 * 1.2; + const G4double one_third = 1.0 / 3.0; + + G4bool possible = true; + G4double at; + G4double zt; + G4double ab; + G4double zb; + + if(G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + at = nuclei_target->getA(); + zt = nuclei_target->getZ(); + if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { + ab = nuclei_bullet->getA(); + zb = nuclei_bullet->getZ(); + } + else { + + G4InuclElementaryParticle* particle = + dynamic_cast(bullet); + + ab = 1; + zb = particle->getCharge(); + }; + } + else { + if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { + ab = nuclei_bullet->getA(); + zb = nuclei_bullet->getZ(); + + G4InuclElementaryParticle* particle = + dynamic_cast(target); + + at = 1; + zt = particle->getCharge(); + } + else { + + return possible; + }; + }; + + G4double VCOL = coeff * zt * zb / (pow(at, one_third) + pow(ab, one_third)); + + possible = VCOL < ekin; + + return possible; + +} + +G4InteractionCase G4InuclCollider::bulletTargetSetter(G4InuclParticle* bullet, + G4InuclParticle* target) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclCollider::bulletTargetSetter" << G4endl; + } + + G4InteractionCase interCase; + + if(G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { // A + A + interCase.setInterCase(2); + if(nuclei_target->getA() >= nuclei_bullet->getA()) { + interCase.setBulletTarget(bullet, target); + } + else { + interCase.setBulletTarget(target, bullet); + }; + } + else { + interCase.setInterCase(1); + interCase.setBulletTarget(bullet, target); + }; + } + else { + if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { + if(G4InuclElementaryParticle* part = + dynamic_cast(target)) { + interCase.setInterCase(1); + interCase.setBulletTarget(target, bullet); + }; + }; + }; + + return interCase; +} + +G4bool G4InuclCollider::explosion(G4InuclNuclei* target) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclCollider::explosion" << G4endl; + } + + const G4double a_cut = 20.0; + const G4double be_cut = 3.0; + + G4double a = target->getA(); + G4double z = target->getZ(); + G4double eexs = target->getExitationEnergy(); + G4bool explo = true; + + if(a > a_cut) { + explo = false; + } + else { + if(eexs < be_cut * bindingEnergy(a, z)) explo = false; + }; + + return explo; +} + diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc b/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc new file mode 100644 index 0000000000..b3d77c9f3c --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc @@ -0,0 +1,166 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" +#include "Randomize.hh" + +G4double G4InuclSpecialFunctions::getAL(G4double A) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::getAL" << G4endl; + } + + return 0.76 + 2.2 / pow(A, 0.333333); +} + +G4double G4InuclSpecialFunctions::csNN(G4double e) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::csNN" << G4endl; + } + + G4double snn; + + if (e < 40.0) { + snn = -1174.8 / (e * e) + 3088.5 / e + 5.3107; + + } else { + snn = 93074.0 / (e * e) - 11.148 / e + 22.429; + }; + + return snn; +} + +G4double G4InuclSpecialFunctions::csPN(G4double e) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::csPN" << G4endl; + } + + G4double spn; + + if (e < 40.0) { + spn = -5057.4 / (e * e) + 9069.2 / e + 6.9466; + + } else { + spn = 239380.0 / (e * e) + 1802.0 / e + 27.147; + }; + + return spn; +} + +G4double G4InuclSpecialFunctions::FermiEnergy(G4double A, G4double Z, G4int ntype) { + // calculates the nuclei Fermi energy for 0 - neutron and 1 - proton + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::FermiEnergy" << G4endl; + } + + const G4double C = 55.4; + G4double Ef; + + if (ntype == 0) { + Ef = C * pow((A - Z) / A, 0.666667); + + } else { + Ef = C * pow(Z / A, 0.666667); + }; + + return Ef; +} + +G4double G4InuclSpecialFunctions::inuclRndm() { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::inuclRndm" << G4endl; + } + + G4double rnd = G4UniformRand(); + + return rnd; +} + +G4double G4InuclSpecialFunctions::randomGauss(G4double sigma) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::randomGauss" << G4endl; + } + + const G4double eps = 1.0e-6; + const G4double twopi = 6.2831854; + G4double r1 = inuclRndm(); + r1 = r1 > eps ? r1 : eps; + G4double r2 = inuclRndm(); + r2 = r2 > eps ? r2 : eps; + r2 = r2 < 1.0 - eps ? r2 : 1.0 - eps; + + return sigma * sin(twopi * r1) * sqrt(-2.0 * log(r2)); +} + +G4double G4InuclSpecialFunctions::randomPHI() { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::randomPHI" << G4endl; + } + + const G4double twopi = 6.2831853; + + return twopi * inuclRndm(); +} + +G4std::pair G4InuclSpecialFunctions::randomCOS_SIN() { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::randomCOS_SIN" << G4endl; + } + + G4double CT = 1.0 - 2.0 * inuclRndm(); + + return G4std::pair(CT, sqrt(1.0 - CT * CT)); +} + +G4std::vector G4InuclSpecialFunctions::generateWithFixedTheta(G4double ct, + G4double p) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::generateWithFixedTheta" << G4endl; + } + + G4std::vector momr(4); + G4double phi = randomPHI(); + G4double pt = p * sqrt(fabs(1.0 - ct * ct)); + G4std::vector mom1(4); + momr[1] = pt * cos(phi); + momr[2] = pt * sin(phi); + momr[3] = p * ct; + + return momr; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc b/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc new file mode 100644 index 0000000000..750f40f99a --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc @@ -0,0 +1,301 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4LorentzConvertor.hh" + +G4LorentzConvertor::G4LorentzConvertor() + : verboseLevel(2), degenerated(false) { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::G4LorentzConvertor" << G4endl; + } +}; + +void G4LorentzConvertor::toTheCenterOfMass() { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::toTheCenterOfMass" << G4endl; + } + + const G4double small = 1.0e-10; + + v2 = 0.0; + + G4double pv = 0.0; + + G4double e_sum = target_mom[0] + bullet_mom[0]; + + velocity.resize(4); + G4int i(0); + for(i = 1; i < 4; i++) { + velocity[i] = (target_mom[i] + bullet_mom[i]) / e_sum; + v2 += velocity[i] * velocity[i]; + pv += target_mom[i] * velocity[i]; + }; + + gamma = 1.0 / sqrt(fabs(1.0 - v2)); + ecm_tot = e_sum / gamma; + + G4double pa = 0.0; + + G4double pb = 0.0; + + scm_momentum.resize(4); + + G4double xx = pv * (gamma - 1.0) / v2 - target_mom[0] * gamma; + + for(i = 1; i < 4; i++) { + scm_momentum[i] = -target_mom[i] - velocity[i] * xx; + + if (verboseLevel > 3) { + G4cout << " i " << i << " pscm(i) " << scm_momentum[i] << G4endl; + } + + pa += scm_momentum[i] * scm_momentum[i]; + pb += scm_momentum[i] * velocity[i]; + }; + ga = v2 - pb * pb / pa; + if(ga < small) { + ga = small; + degenerated = true; + + if (verboseLevel > 3) { + G4cout << " degenerated case " << G4endl; + } + + } else { + ga = sqrt(ga); + }; + + if (verboseLevel > 3) { + G4cout << " ga " << ga << " v2 " << v2 << " pb " << pb << + " pb * pb / pa " << pb * pb / pa << " pv " << pv << G4endl; + } + + pscm = sqrt(pa); + gb = pb / pscm; + gbpp = gb / pscm; + gapp = ga * pscm; +} + +G4std::vector G4LorentzConvertor::rotate(const G4std::vector mom) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::rotate(G4std::vector)" << G4endl; + } + + G4std::vector mom_rot(4); + + if (verboseLevel > 3) { + G4cout << " ga " << ga << " gbpp " << gbpp << " gapp " << gapp << G4endl; + G4cout << " gegenerated " << degenerated << G4endl; + G4cout << " before rotation: px " << mom[1] << " py " << mom[2] << + " pz " << mom[3] << G4endl; + } + + if(degenerated) { + mom_rot = mom; + } else { + mom_rot[1] = mom[1] * (velocity[1] - gbpp * scm_momentum[1]) / ga + + mom[2] * (scm_momentum[2] * velocity[3] - scm_momentum[3] * velocity[2]) / gapp + + mom[3] * scm_momentum[1] / pscm; + mom_rot[2] = mom[1] * (velocity[2] - gbpp * scm_momentum[2]) / ga + + mom[2] * (scm_momentum[3] * velocity[1] - scm_momentum[1] * velocity[3]) / gapp + + mom[3] * scm_momentum[2] / pscm; + mom_rot[3] = mom[1] * (velocity[3] - gbpp * scm_momentum[3]) / ga + + mom[2] * (scm_momentum[1] * velocity[2] - scm_momentum[2] * velocity[1]) / gapp + + mom[3] * scm_momentum[3] / pscm; + }; + + if (verboseLevel > 3) { + G4cout << " after rotation: px " << mom_rot[1] << " py " << mom_rot[2] << + " pz " << mom_rot[3] << G4endl; + } + + return mom_rot; +} + +G4std::vector G4LorentzConvertor::rotate(const G4std::vector mom1, + const G4std::vector mom) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::rotate(G4std::vector,G4std::vector)" << G4endl; + } + + const G4double small = 1.0e-10; + + G4std::vector mom_rot(4); + + G4double pp = 0.0; + + G4double pv = 0.0; + + for(G4int i = 0; i < 4; i++) { + pp += mom1[i] * mom1[i]; + pv += mom1[i] * velocity[i]; + }; + + G4double ga1 = v2 - pv * pv / pp; + + if(ga1 < small) { + mom_rot = mom; + } else { + ga1 = sqrt(ga1); + + G4double gb1 = pv / pp; + + pp = sqrt(pp); + + G4double ga1pp = ga1 * pp; + + mom_rot[1] = mom[1] * (velocity[1] - gb1 * mom1[1]) / ga1 + + mom[2] * (mom1[2] * velocity[3] - mom1[3] * velocity[2]) / ga1pp + + mom[3] * mom1[1] / pp; + mom_rot[2] = mom[1] * (velocity[2] - gb1 * mom1[2]) / ga1 + + mom[2] * (mom1[3] * velocity[1] - mom1[1] * velocity[3]) / ga1pp + + mom[3] * mom1[2] / pp; + mom_rot[3] = mom[1] * (velocity[3] - gb1 * mom1[3]) / ga1 + + mom[2] * (mom1[1] * velocity[2] - mom1[2] * velocity[1]) / ga1pp + + mom[3] * mom1[3] / pp; + }; + + return mom_rot; +} + +void G4LorentzConvertor::toTheTargetRestFrame() { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::toTheTargetRestFrame" << G4endl; + } + + const G4double small = 1.0e-10; + + gamma = target_mom[0] / target_mass; + v2 = 0.0; + + G4double pv = 0.0; + + // G4double e_sum = target_mom[0] + bullet_mom[0]; + + velocity.resize(4); + G4int i(0); + for(i = 1; i < 4; i++) { + velocity[i] = target_mom[i] / target_mom[0]; + v2 += velocity[i] * velocity[i]; + pv += bullet_mom[i] * velocity[i]; + }; + + G4double pa = 0.0; + + G4double pb = 0.0; + + scm_momentum.resize(4); + + G4double xx = 0.0; + + if(v2 > small) xx = pv * (gamma - 1.0) / v2 - bullet_mom[0] * gamma; + for(i = 1; i < 4; i++) { + scm_momentum[i] = bullet_mom[i] + velocity[i] * xx; + + if (verboseLevel > 3) { + G4cout << " rf: i " << i << " pscm(i) " << scm_momentum[i] << G4endl; + } + pa += scm_momentum[i] * scm_momentum[i]; + pb += scm_momentum[i] * velocity[i]; + }; + + ga = v2 - pb * pb / pa; + if(ga < small) { + ga = small; + degenerated = true; + } else { + ga = sqrt(ga); + }; + pscm = sqrt(pa); + plab = pscm; + gb = pb / pscm; + gbpp = gb / pscm; + gapp = ga * pscm; +} + +G4std::vector G4LorentzConvertor::backToTheLab(const G4std::vector& mom) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::backToTheLab" << G4endl; + } + + const G4double small = 1.0e-10; + + if (verboseLevel > 3) { + G4cout << " at rest: px " << mom[1] << " py " << mom[2] << " pz " << mom[3] << + " e " << mom[0] << G4endl; + G4cout << " v2 " << v2 << G4endl; + } + + G4std::vector mom1(4); + + if(v2 < small) { + mom1 = mom; + } else { + G4double pv = 0.0; + + G4int i(0); + for(i = 1; i < 4; i++) pv += mom[i] * velocity[i]; + + G4double xx = pv * (gamma - 1.0) / v2 + mom[0] * gamma; + + for(i = 1; i < 4; i++) mom1[i] = mom[i] + velocity[i] * xx; + }; + + if (verboseLevel > 3) { + G4cout << " at lab: px " << mom1[1] << " py " << mom1[2] << " pz " << mom1[3] << G4endl; + } + + return mom1; +} + +G4bool G4LorentzConvertor::reflectionNeeded() const { + + if (verboseLevel > 3) { + G4cout << " >>> G4LorentzConvertor::reflectionNeeded" << G4endl; + } + + const G4double small = 1.0e-10; + + if(v2 < small) { + return false; + } else { + if(degenerated) return (scm_momentum[3] < 0.0); + else + { + G4Exception("G4LorentzConvertor::reflectionNeeded - return value undefined"); + return false; + } + }; +} + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc b/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc new file mode 100644 index 0000000000..3861d9f753 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc @@ -0,0 +1,484 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#define RUN + +#include +#include "G4NonEquilibriumEvaporator.hh" +#include "G4InuclElementaryParticle.hh" +#include "G4InuclNuclei.hh" +#include "G4LorentzConvertor.hh" + +G4NonEquilibriumEvaporator::G4NonEquilibriumEvaporator() + : verboseLevel(1) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NonEquilibriumEvaporator::G4NonEquilibriumEvaporator" << G4endl; + } +}; + +G4CollisionOutput G4NonEquilibriumEvaporator::collide(G4InuclParticle* bullet, + G4InuclParticle* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NonEquilibriumEvaporator::collide" << G4endl; + } + + const G4double one_third = 1.0/3.0; + const G4double a_cut = 5.0; + const G4double z_cut = 3.0; + +#ifdef RUN + const G4double eexs_cut = 0.1; +#else + const G4double eexs_cut = 100000.0; +#endif + + const G4double coul_coeff = 1.4; + const G4int itry_max = 1000; + const G4double small_ekin = 1.0e-6; + const G4double width_cut = 0.005; + G4CollisionOutput output; + + if (G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + // initialization + G4double A = nuclei_target->getA(); + G4double Z = nuclei_target->getZ(); + G4std::vector PEX = nuclei_target->getMomentum(); + G4std::vector pin = PEX; + G4double EEXS = nuclei_target->getExitationEnergy(); + pin[0] += 0.001 * EEXS; + G4InuclNuclei dummy_nuc; + G4ExitonConfiguration config = nuclei_target->getExitonConfiguration(); + + G4double QPP = config.protonQuasiParticles; + + G4double QNP = config.neutronQuasiParticles; + + G4double QPH = config.protonHoles; + + G4double QNH = config.neutronHoles; + + G4double QP = QPP + QNP; + G4double QH = QPH + QNH; + G4double QEX = QP + QH; + G4InuclElementaryParticle dummy(small_ekin, 1); + G4LorentzConvertor toTheExitonSystemRestFrame; + + toTheExitonSystemRestFrame.setBullet(dummy.getMomentum(), dummy.getMass()); + + G4double EFN = FermiEnergy(A, Z, 0); + G4double EFP = FermiEnergy(A, Z, 1); + + G4double AR = A - QP; + G4double ZR = Z - QPP; + G4int NEX = G4int(QEX + 0.5); + G4std::vector ppout(4, 0.0); + G4bool try_again = NEX > 0 ? true : false; + + while (try_again) { + + if (A >= a_cut && Z >= z_cut && EEXS > eexs_cut) { // ok + + if (verboseLevel > 2) { + G4cout << " A " << A << " Z " << Z << " EEXS " << EEXS << G4endl; + } + + // update exiton system + G4double nuc_mass = dummy_nuc.getNucleiMass(A, Z); + PEX[0] = sqrt(PEX[1] * PEX[1] + PEX[2] * PEX[2] + PEX[3] * PEX[3] + + nuc_mass * nuc_mass); + toTheExitonSystemRestFrame.setTarget(PEX, nuc_mass); + toTheExitonSystemRestFrame.toTheTargetRestFrame(); + G4double MEL = getMatrixElement(A); + G4double E0 = getE0(A); + G4double PL = getParLev(A, Z); + G4double parlev = PL / A; + G4double EG = PL * EEXS; + + if (QEX < sqrt(2.0 * EG)) { // ok + + G4std::pair parms = paraMakerTruncated(Z); + + G4double AK1 = parms.first; + G4double CPA1 = parms.second; + G4double VP = coul_coeff * Z * AK1 / (pow(A - 1.0, one_third) + 1.0) / + (1.0 + EEXS / E0); + G4double DM1 = bindingEnergy(A, Z); + G4double BN = DM1 - bindingEnergy(A - 1.0, Z); + G4double BP = DM1 - bindingEnergy(A - 1.0, Z - 1.0); + G4double EMN = EEXS - BN; + G4double EMP = EEXS - BP - VP * A / (A - 1.0); + G4double ESP = 0.0; + + if (EMN > eexs_cut) { // ok + G4int icase = 0; + + if (NEX > 1) { + G4double APH = 0.25 * (QP * QP + QH * QH + QP - 3.0 * QH); + G4double APH1 = APH + 0.5 * (QP + QH); + ESP = EEXS / QEX; + G4double MELE = MEL / ESP / pow(A, 3); + + if (ESP > 15.0) { + MELE *= sqrt(15.0 / ESP); + + } else if(ESP < 7.0) { + MELE *= sqrt(ESP / 7.0); + + if (ESP < 2.0) MELE *= sqrt(ESP / 2.0); + }; + + G4double F1 = EG - APH; + G4double F2 = EG - APH1; + + if (F1 > 0.0 && F2 > 0.0) { + G4double F = F2 / F1; + G4double M1 = 2.77 * MELE * PL; + G4std::vector D(3, 0.0); + D[0] = M1 * F2 * F2 * pow(F, NEX - 1) / (QEX + 1.0); + + if (D[0] > 0.0) { + + if (NEX >= 2) { + D[1] = 0.0462 / parlev / pow(A, one_third) * QP * EEXS / QEX; + + if (EMP > eexs_cut) + D[2] = D[1] * pow(EMP / EEXS, NEX) * (1.0 + CPA1); + D[1] *= pow(EMN / EEXS, NEX) * getAL(A); + + if (QNP < 1.0) D[1] = 0.0; + + if (QPP < 1.0) D[2] = 0.0; + + try_again = NEX > 1 && (D[1] > width_cut * D[0] || + D[2] > width_cut * D[0]); + + if (try_again) { + G4double D5 = D[0] + D[1] + D[2]; + G4double SL = D5 * inuclRndm(); + G4double S1 = 0.; + + for (G4int i = 0; i < 3; i++) { + S1 += D[i]; + + if (SL <= S1) { + icase = i; + + break; + }; + }; + }; + }; + + } else { + try_again = false; + }; + + } else { + try_again = false; + }; + }; + + if (try_again) { + + if (icase > 0) { // N -> N - 1 with particle escape + G4double V = 0.0; + G4int ptype = 0; + G4double B = 0.0; + + if (A < 3.0) try_again = false; + + if (try_again) { + + if (icase == 1) { // neutron escape + + if (QNP < 1.0) { + icase = 0; + + } else { + B = BN; + V = 0.0; + ptype = 2; + }; + + } else { // proton esape + if (QPP < 1.0) { + icase = 0; + + } else { + B = BP; + V = VP; + ptype = 1; + + if (Z - 1.0 < 1.0) try_again = false; + }; + }; + + if (try_again && icase != 0) { + G4double EB = EEXS - B; + G4double E = EB - V * A / (A - 1.0); + + if (E < 0.0) { + icase = 0; + + } else { + G4double E1 = EB - V; + G4double EEXS_new = -1.; + G4double EPART = 0.0; + G4int itry1 = 0; + G4bool bad = true; + + while (itry1 < itry_max && icase > 0 && bad) { + itry1++; + G4int itry = 0; + + while (EEXS_new < 0.0 && itry < itry_max) { + itry++; + G4double R = inuclRndm(); + G4double X; + + if (NEX == 2) { + X = 1.0 - sqrt(R); + + } else { + G4double QEX2 = 1.0 / QEX; + G4double QEX1 = 1.0 / (QEX - 1.0); + X = pow(0.5 * R, QEX2); + + for (G4int i = 0; i < 1000; i++) { + G4double DX = X * QEX1 * + (1.0 + QEX2 * X * (1.0 - R / pow(X, NEX)) / (1.0 - X)); + X -= DX; + + if (fabs(DX / X) < 0.01) break; + + }; + }; + EPART = EB - X * E1; + EEXS_new = EB - EPART * A / (A - 1.0); + }; + + if (itry == itry_max || EEXS_new < 0.0) { + icase = 0; + + } else { // real escape + G4InuclElementaryParticle particle(ptype); + G4double mass = particle.getMass(); + EPART *= 0.001; // to the GeV + // generate particle momentum + G4double pmod = sqrt(EPART * (2.0 * mass + EPART)); + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double P1 = pmod * COS_SIN.second; + mom[1] = P1 * cos(FI); + mom[2] = P1 * sin(FI); + mom[3] = pmod * COS_SIN.first; + G4std::vector mom_at_rest(4); + + for (G4int i = 1; i < 4; i++) mom_at_rest[i] = -mom[i]; + + G4double QPP_new = QPP; + G4double Z_new = Z; + + if (ptype == 1) { + QPP_new -= 1.; + Z_new -= 1.0; + }; + + G4double QNP_new = QNP; + + if (ptype == 2) QNP_new -= 1.0; + + G4double A_new = A - 1.0; + G4double new_exiton_mass = + dummy_nuc.getNucleiMass(A_new, Z_new); + mom_at_rest[0] = sqrt(mom_at_rest[1] * mom_at_rest[1] + + mom_at_rest[2] * mom_at_rest[2] + + mom_at_rest[3] * mom_at_rest[3] + + new_exiton_mass * new_exiton_mass); + mom[0] = sqrt(mom[1] * mom[1] + mom[2] * mom[2] + + mom[3] * mom[3] + mass * mass); + + G4std::vector part_mom = + toTheExitonSystemRestFrame.backToTheLab(mom); + + part_mom[0] = sqrt(part_mom[1] * part_mom[1] + + part_mom[2] * part_mom[2] + part_mom[3] * part_mom[3] + + mass * mass); + + G4std::vector ex_mom = + toTheExitonSystemRestFrame.backToTheLab(mom_at_rest); + + ex_mom[0] = sqrt(ex_mom[1] * ex_mom[1] + ex_mom[2] * ex_mom[2] + + ex_mom[3] * ex_mom[3] + new_exiton_mass * new_exiton_mass); + // check energy conservation and set new exitation energy + EEXS_new = 1000.0 * (PEX[0] + 0.001 * EEXS - + part_mom[0] - ex_mom[0]); + + if (EEXS_new > 0.0) { // everything ok + particle.setMomentum(part_mom); + output.addOutgoingParticle(particle); + + for (G4int i = 0; i < 4; i++) ppout[i] += part_mom[i]; + A = A_new; + Z = Z_new; + PEX = ex_mom; + EEXS = EEXS_new; + NEX -= 1; + QEX -= 1; + QP -= 1.0; + QPP = QPP_new; + QNP = QNP_new; + bad = false; + }; + }; + }; + + if (itry1 == itry_max) icase = 0; + }; + }; + }; + }; + + if (icase == 0 && try_again) { // N -> N + 2 + G4double TNN = 1.6 * EFN + ESP; + G4double TNP = 1.6 * EFP + ESP; + G4double XNUN = 1.0 / (1.6 + ESP / EFN); + G4double XNUP = 1.0 / (1.6 + ESP / EFP); + G4double SNN1 = csNN(TNP) * XNUP; + G4double SNN2 = csNN(TNN) * XNUN; + G4double SPN1 = csPN(TNP) * XNUP; + G4double SPN2 = csPN(TNN) * XNUN; + G4double PP = (QPP * SNN1 + QNP * SPN1) * ZR; + G4double PN = (QPP * SPN2 + QNP * SNN2) * (AR - ZR); + G4double PW = PP + PN; + NEX += 2; + QEX += 2.0; + QP += 1.0; + QH += 1.0; + AR -= 1.0; + + if (AR > 1.0) { + G4double SL = PW * inuclRndm(); + + if (SL > PP) { + QNP += 1.0; + QNH += 1.0; + + } else { + QPP += 1.0; + QPH += 1.0; + ZR -= 1.0; + + if (ZR < 2.0) try_again = false; + + }; + + } else { + try_again = false; + }; + }; + }; + + } else { + try_again = false; + }; + + } else { + try_again = false; + }; + + } else { + try_again = false; + }; + }; + // everything finished, set output nuclei + // the exitation energy has to be re-set properly for the energy + // conservation + + G4std::vector pnuc(4); + + for (G4int i = 1; i < 4; i++) pnuc[i] = pin[i] - ppout[i]; + G4InuclNuclei nuclei(pnuc, A, Z); + + nuclei.setEnergy(); + + pnuc = nuclei.getMomentum(); + G4double eout = pnuc[0] + ppout[0]; + G4double eex_real = 1000.0 * (pin[0] - eout); + + nuclei.setExitationEnergy(eex_real); + output.addTargetFragment(nuclei); + + } else { + G4cout << " NonEquilibriumEvaporator -> target is not nuclei " << G4endl; + + }; + + return output; +} + +G4double G4NonEquilibriumEvaporator::getMatrixElement(G4double A) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NonEquilibriumEvaporator::getMatrixElement" << G4endl; + } + + G4double me; + + if (A > 150.0) { + me = 100.0; + + } else if(A > 20.0) { + me = 140.0; + + } else { + me = 70.0; + }; + + return me; +} + +G4double G4NonEquilibriumEvaporator::getE0(G4double A) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NonEquilibriumEvaporator::getEO" << G4endl; + } + + const G4double e0 = 200.0; + + return e0; +} + +G4double G4NonEquilibriumEvaporator::getParLev(G4double A, + G4double Z) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NonEquilibriumEvaporator::getParLev" << G4endl; + } + + // const G4double par = 0.125; + G4double pl = 0.125 * A; + + return pl; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc new file mode 100644 index 0000000000..6bf5a64c84 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc @@ -0,0 +1,1482 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +//#define CHC_CHECK + +#include "G4NucleiModel.hh" +#include "G4LorentzConvertor.hh" +#include "G4CollisionOutput.hh" + +typedef G4std::vector::iterator particleIterator; + +G4NucleiModel::G4NucleiModel() + : verboseLevel(2) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::G4NucleiModel" << G4endl; + } +}; + +void G4NucleiModel::generateModel(G4double a, + G4double z) { + + verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::generateModel" << G4endl; + } + + const G4double AU = 1.7234; + const G4double cuu = 3.3836; + const G4double one_third = 1.0 / 3.0; + const G4double oneBypiTimes4 = 0.0795775; // 1 / 4 Pi + const G4double pf_coeff = 1.932; + const G4double pion_vp = 0.007; // in GeV + const G4double pion_vp_small = 0.007; + const G4double radForSmall = 8.0; // fermi + const G4double piTimes4thirds = 4.189; // 4 Pi/3 + const G4double mproton = 0.93827; + const G4double mneutron = 0.93957; + const G4double alfa3[3] = { 0.7, 0.3, 0.01 }; // listing zone radius + // const G4double alfa6[6] = { 0.9, 0.6, 0.4, 0.2, 0.1, 0.05 }; + + A = a; + Z = z; + neutronNumber = a - z; + protonNumber = z; + neutronNumberCurrent = neutronNumber; + protonNumberCurrent = protonNumber; + +// Set binding energies + G4double dm = bindingEnergy(a, z); + + binding_energies.push_back(0.001 * fabs(bindingEnergy(a - 1, z - 1) - dm)); // for P + binding_energies.push_back(0.001 * fabs(bindingEnergy(a - 1, z ) - dm)); // for N + + G4double CU = cuu * pow(a, one_third); + + G4double D1 = CU / AU; + + G4double D = exp(-D1); + + G4double CU2 = 0.0; + + if (a > 3.5) { // a > 3 + + G4std::vector ur; + + G4int icase = 0; + + if (a > 11.5) { // a > 11 + // number_of_zones = 6; + number_of_zones = 3; + ur.push_back(-D1); + for (G4int i = 0; i < number_of_zones; i++) { + // G4double y = log((1.0 + D) / alfa6[i] - 1.0); + G4double y = log((1.0 + D)/alfa3[i] - 1.0); + + zone_radii.push_back(CU + AU * y); + ur.push_back(y); + }; + } else { + number_of_zones = 3; + icase = 1; + ur.push_back(0.0); + + G4double CU1 = CU * CU; + + CU2 = sqrt(CU1 * (1.0 - 1.0 / a) + 6.4); + + for (G4int i = 0; i < number_of_zones; i++) { + G4double y = sqrt(-log(alfa3[i])); + zone_radii.push_back(CU2 * y); + ur.push_back(y); + }; + }; + + G4double tot_vol = 0.0; + + G4std::vector v; + + G4std::vector v1; + + G4int i(0); + for (i = 0; i < number_of_zones; i++) { + G4double v0; + + if (icase == 0) { + v0 = volNumInt(ur[i], ur[i + 1], CU, D1); + } else { + v0 = volNumInt1(ur[i], ur[i + 1], CU2); + }; + + v.push_back(v0); + tot_vol += v0; + v0 = (i == 0 ? pow(zone_radii[i], 3) : pow(zone_radii[i], 3) - + pow(zone_radii[i - 1], 3)); + v1.push_back(v0); + }; + + // proton + G4double dd0 = 3.0 * z * oneBypiTimes4 / tot_vol; + + G4std::vector rod; + G4std::vector pf; + G4std::vector vz; + + for (i = 0; i < number_of_zones; i++) { + G4double rd = dd0 * v[i] / v1[i]; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mproton + binding_energies[0]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + // neutron stuff + dd0 = 3.0 * (a - z) * oneBypiTimes4 / tot_vol; + rod.resize(0); + pf.resize(0); + vz.resize(0); + + for (i = 0; i < number_of_zones; i++) { + G4double rd = dd0 * v[i] / v1[i]; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mneutron + binding_energies[1]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + + // pion stuff (primitive) + G4std::vector vp(number_of_zones, pion_vp); + zone_potentials.push_back(vp); + + } else { // a < 4 + + number_of_zones = 1; + zone_radii.push_back(radForSmall); + G4double vol = 1.0 / piTimes4thirds / pow(zone_radii[0], 3); + G4std::vector rod; + G4std::vector pf; + G4std::vector vz; + + G4int i(0); + for (i = 0; i < number_of_zones; i++) { + G4double rd = vol; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mproton + binding_energies[0]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + + // neutron + rod.resize(0); + pf.resize(0); + vz.resize(0); + + for (i = 0; i < number_of_zones; i++) { + G4double rd = vol; + rod.push_back(rd); + G4double pff = pf_coeff * pow(rd, one_third); + pf.push_back(pff); + vz.push_back(0.5 * pff * pff / mneutron + binding_energies[1]); + }; + + nucleon_densities.push_back(rod); + zone_potentials.push_back(vz); + fermi_momenta.push_back(pf); + + // pion (primitive) + G4std::vector vp(number_of_zones, pion_vp_small); + zone_potentials.push_back(vp); + }; + + nuclei_radius = zone_radii[zone_radii.size() - 1]; +} + +G4double G4NucleiModel::volNumInt(G4double r1, + G4double r2, + G4double cu, + G4double d1) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::volNumInt" << G4endl; + } + + const G4double au3 = 5.11864; + const G4double epsilon = 1.0e-3; + const G4int itry_max = 1000; + G4double d2 = 2.0 * d1; + G4double dr = r2 - r1; + G4double fi = 0.5 * (r1 * (r1 + d2) / (1.0 + exp(r1)) + r2 * (r2 + d2) / (1.0 + exp(r2))); + G4double fun1 = fi * dr; + G4double fun; + G4double jc = 1; + G4double dr1 = dr; + G4int itry = 0; + + while (itry < itry_max) { + dr *= 0.5; + itry++; + + G4double r = r1 - dr; + fi = 0.0; + G4int jc1 = G4int(pow(2.0, jc - 1) + 0.1); + + for (G4int i = 0; i < jc1; i++) { + r += dr1; + fi += r * (r + d2) / (1.0 + exp(r)); + }; + + fun = 0.5 * fun1 + fi * dr; + if (fabs((fun - fun1) / fun) > epsilon) { + jc++; + dr1 = dr; + fun1 = fun; + + } else { + + break; + + }; + + }; + + if (verboseLevel > 2){ + if(itry == itry_max) G4cout << " volNumInt-> n iter " << itry_max << G4endl; + } + + return au3 * (fun + d1 * d1 * log((1.0 + exp(-r1)) / (1.0 + exp(-r2)))); +} + +G4double G4NucleiModel::volNumInt1(G4double r1, + G4double r2, + G4double cu2) const { + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::volNumInt1" << G4endl; + } + + const G4double epsilon = 1.0e-3; + const G4int itry_max = 1000; + + G4double dr = r2 - r1; + G4double fi = 0.5 * (r1 * r1 * exp(-r1 * r1) + r2 * r2 * exp(-r2 * r2)); + G4double fun1 = fi * dr; + G4double fun; + G4double jc = 1; + G4double dr1 = dr; + G4int itry = 0; + + while (itry < itry_max) { + dr *= 0.5; + itry++; + G4double r = r1 - dr; + fi = 0.0; + G4int jc1 = int(pow(2.0, jc - 1) + 0.1); + + for (G4int i = 0; i < jc1; i++) { + r += dr1; + fi += r * r * exp(-r * r); + }; + + fun = 0.5 * fun1 + fi * dr; + + if (fabs((fun - fun1) / fun) > epsilon) { + jc++; + dr1 = dr; + fun1 = fun; + + } else { + + break; + + }; + + }; + + if (verboseLevel > 2){ + if (itry == itry_max) G4cout << " volNumInt1-> n iter " << itry_max << G4endl; + } + + return pow(cu2, 3) * fun; +} + +void G4NucleiModel::printModel() const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::printModel" << G4endl; + } + + G4cout << " nuclei model for A " << A << " Z " << Z << G4endl + << " proton binding energy " << binding_energies[0] << + " neutron binding energy " << binding_energies[1] << G4endl + << " Nculei radius " << nuclei_radius << " number of zones " << + number_of_zones << G4endl; + + for (G4int i = 0; i < number_of_zones; i++) + + G4cout << " zone " << i+1 << " radius " << zone_radii[i] << G4endl + << " protons: density " << getDensity(1,i) << " PF " << + getFermiMomentum(1,i) << " VP " << getPotential(1,i) << G4endl + << " neutrons: density " << getDensity(2,i) << " PF " << + getFermiMomentum(2,i) << " VP " << getPotential(2,i) << G4endl + << " pions: VP " << getPotential(3,i) << G4endl; + +}; + +G4InuclElementaryParticle G4NucleiModel::generateNucleon(G4int type, + G4int zone) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::generateNucleon" << G4endl; + } + + const G4double one_third = 1.0 / 3.0; + +//G4double pmod = getFermiMomentum(type, zone) * pow(inuclRndm(), one_third); + + G4double pmod = fermi_momenta[type - 1][zone] * pow(inuclRndm(), one_third); + + G4std::vector mom(4); + + G4std::pair COS_SIN = randomCOS_SIN(); + + G4double FI = randomPHI(); + + G4double pt = pmod * COS_SIN.second; + + mom[1] = pt * cos(FI); + mom[2] = pt * sin(FI); + mom[3] = pmod * COS_SIN.first; + + return G4InuclElementaryParticle(mom, type); +} + +G4InuclElementaryParticle G4NucleiModel::generateQuasiDeutron(G4int type1, + G4int type2, + G4int zone) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::generateQuasiDeutron" << G4endl; + } + + G4std::vector mom = generateNucleon(type1, zone).getMomentum(); + G4std::vector mom1 = generateNucleon(type2, zone).getMomentum(); + G4std::vector dmom(4); + + for (G4int i = 1; i < 4; i++) dmom[i] = mom[i] + mom1[i]; + + G4int dtype = 0; + + if (type1 * type2 == 1) { + dtype = 111; + + } else if (type1 * type2 == 2) { + + dtype = 112; + + } else if (type1 * type2 == 4) { + + dtype = 122; + }; + + return G4InuclElementaryParticle(dmom, dtype); +} + +partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::generateInteractionPartners" << G4endl; + } + + const G4double pi4by3 = 4.1887903; // 4 Pi / 3 + const G4double small = 1.0e-10; + const G4double huge_num = 50.0; + const G4double pn_spec = 1.0; + + //const G4double pn_spec = 0.5; + + //const G4double young_cut = sqrt(10.0) * 0.5; + //const G4double young_cut = sqrt(10.0) * 0.45; + const G4double young_cut = sqrt(10.0) * 0.25; + //const G4double young_cut = sqrt(10.0) * 0.2; + //const G4double young_cut = sqrt(10.0) * 0.1; + //const G4double young_cut = 0.0; + + partners thePartners; + + G4int ptype = cparticle.getParticle().type(); + G4int zone = cparticle.getCurrentZone(); + G4double pmass = cparticle.getParticle().getMass(); + G4std::vector pmom = cparticle.getParticle().getMomentum(); + G4double r_in; + G4double r_out; + + if (zone == number_of_zones) { // particle is outside + r_in = nuclei_radius; + r_out = 0.0; + + } else if (zone == 0) { // particle is outside core + + r_in = 0.0; + r_out = zone_radii[0]; + + } else { + + r_in = zone_radii[zone - 1]; + r_out = zone_radii[zone]; + }; + + G4double path = cparticle.getPathToTheNextZone(r_in, r_out); + + if (verboseLevel > 2){ + G4cout << " r_in " << r_in << " r_out " << r_out << " path " << path << G4endl; + } + + if (path < -small) { // something wrong + return thePartners; + + } else if (fabs(path) < small) { // just on the bounday + + path = 0.0; + + G4InuclElementaryParticle particle; + + thePartners.push_back(partner(particle, path)); + + } else { // normal case + + G4std::vector particles; + + G4LorentzConvertor dummy_convertor; + + dummy_convertor.setBullet(pmom, pmass); + + for (G4int ip = 1; ip < 3; ip++) { + + G4InuclElementaryParticle particle = generateNucleon(ip, zone); + dummy_convertor.setTarget(particle.getMomentum(), particle.getMass()); + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + G4double csec = crossSection(ekin, ptype * ip); + + if(verboseLevel > 2){ + G4cout << " ip " << ip << " ekin " << ekin << " csec " << csec << G4endl; + } + + G4double dens = nucleon_densities[ip - 1][zone]; + G4double rat = getRatio(ip); + + // double rat = 1.0; + + G4double pw = -path * dens * csec * rat; + + if (pw < -huge_num) pw = -huge_num; + pw = 1.0 - exp(pw); + + if (verboseLevel > 2){ + G4cout << " pw " << pw << " rat " << rat << G4endl; + } + + G4double spath = path; + + if (inuclRndm() < pw) { + spath = -1.0 / dens / csec / rat * log(1.0 - pw * inuclRndm()); + if (cparticle.young(young_cut, spath)) spath = path; + + if (verboseLevel > 2){ + G4cout << " ip " << ip << " spath " << spath << G4endl; + } + + }; + if (spath < path) thePartners.push_back(partner(particle, spath)); + }; + + if (verboseLevel > 2){ + G4cout << " after nucleons " << thePartners.size() << " path " << path << G4endl; + } + + if (cparticle.getParticle().pion()) { // absorption possible + + G4std::vector qdeutrons; + G4std::vector acsecs; + + G4double tot_abs_csec = 0.0; + G4double abs_sec; + G4double vol = pow(zone_radii[zone], 3); + + if (zone > 0) vol -= pow(zone_radii[zone - 1], 3); + vol *= pi4by3; + + G4double rat = getRatio(1); + G4double rat1 = getRatio(2); + + G4InuclElementaryParticle ppd = generateQuasiDeutron(1, 1, zone); + + if (ptype == 7 || ptype == 5) { + dummy_convertor.setTarget(ppd.getMomentum(), ppd.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + abs_sec = absorptionCrosSection(ekin, ptype); + abs_sec *= nucleon_densities[0][zone] * nucleon_densities[0][zone]* + rat * rat * vol; + + } else { + + abs_sec = 0.0; + }; + + // abs_sec = 0.0; + tot_abs_csec += abs_sec; + acsecs.push_back(abs_sec); + qdeutrons.push_back(ppd); + + G4InuclElementaryParticle npd = generateQuasiDeutron(1, 2, zone); + + dummy_convertor.setTarget(npd.getMomentum(), npd.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + abs_sec = absorptionCrosSection(ekin, ptype); + abs_sec *= pn_spec * nucleon_densities[0][zone] * nucleon_densities[1][zone] * + rat * rat1 * vol; + tot_abs_csec += abs_sec; + acsecs.push_back(abs_sec); + qdeutrons.push_back(npd); + + G4InuclElementaryParticle nnd = generateQuasiDeutron(2, 2, zone); + + if (ptype == 7 || ptype == 3) { + dummy_convertor.setTarget(nnd.getMomentum(), nnd.getMass()); + + G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); + + abs_sec = absorptionCrosSection(ekin, ptype); + abs_sec *= nucleon_densities[1][zone] * nucleon_densities[1][zone] * + rat1 * rat1 * vol; + + } else { + + abs_sec = 0.0; + }; + + // abs_sec = 0.0; + tot_abs_csec += abs_sec; + acsecs.push_back(abs_sec); + qdeutrons.push_back(nnd); + + if (verboseLevel > 2){ + G4cout << " rod1 " << acsecs[0] << " rod2 " << acsecs[1] + << " rod3 " << acsecs[2] << G4endl; + } + + if (tot_abs_csec > small) { + + G4double pw = -path * tot_abs_csec; + + if (pw < -huge_num) pw = -huge_num; + pw = 1.0 - exp(pw); + + if (verboseLevel > 2){ + G4cout << " pw " << pw << G4endl; + } + + G4double apath = path; + + if (inuclRndm() < pw) + apath = -1.0 / tot_abs_csec * log(1.0 - pw * inuclRndm()); + + if (cparticle.young(young_cut, apath)) apath = path; + + if(verboseLevel > 2){ + G4cout << " apath " << apath << " path " << path << G4endl; + } + + if (apath < path) { // chose the qdeutron + + G4double sl = inuclRndm() * tot_abs_csec; + + G4double as = 0.0; + + for (G4int i = 0; i < 3; i++) { + as += acsecs[i]; + + if (sl < as) { + + if (verboseLevel > 2){ + G4cout << " deut type " << i << G4endl; + } + + thePartners.push_back(partner(qdeutrons[i], apath)); + + break; + }; + }; + }; + }; + }; + + if(verboseLevel > 2){ + G4cout << " after deutrons " << thePartners.size() << G4endl; + } + + if (thePartners.size() > 1) { // sort partners + + for (G4int i = 0; i < G4int(thePartners.size()) - 1; i++) { + + for (G4int j = i + 1; j < G4int(thePartners.size()); j++) { + + if (thePartners[i].second > thePartners[j].second) { + + G4InuclElementaryParticle particle = thePartners[i].first; + G4double pathi = thePartners[i].second; + thePartners[i] = partner(thePartners[j].first, thePartners[j].second); + thePartners[j] = partner(particle, pathi); + }; + }; + }; + }; + + G4InuclElementaryParticle particle; + + thePartners.push_back(partner(particle, path)); + }; + + return thePartners; +} + +G4std::vector G4NucleiModel::generateParticleFate(G4CascadParticle& cparticle, + G4ElementaryParticleCollider* theElementaryParticleCollider) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::generateParticleFate" << G4endl; + } + + G4std::vector outgouing_cparticles; + + partners thePartners = generateInteractionPartners(cparticle); + + if(thePartners.empty()) { // smth. is wrong -> needs special treatment + + G4cout << " generateParticleFate-> can not be here " << G4endl; + + } else { + + G4int npart = thePartners.size(); + + if (npart == 1) { // cparticle is on the next zone entry + cparticle.propagateAlongThePath(thePartners[0].second); + cparticle.incrementCurrentPath(thePartners[0].second); + boundaryTransition(cparticle); + outgouing_cparticles.push_back(cparticle); + + if (verboseLevel > 2){ + G4cout << " next zone " << G4endl; + cparticle.print(); + } + + } else { // there are possible interactions + + G4std::vector old_position = cparticle.getPosition(); + + G4InuclElementaryParticle bullet = cparticle.getParticle(); + + G4bool no_interaction = true; + + G4int zone = cparticle.getCurrentZone(); + + for (G4int i = 0; i < npart - 1; i++) { + + if (i > 0) cparticle.updatePosition(old_position); + + G4InuclElementaryParticle target = thePartners[i].first; + + if (verboseLevel > 2){ + if (target.quasi_deutron()) + + G4cout << " try absorption: target " << target.type() << " bullet " << + + bullet.type() << G4endl; + } + + G4CollisionOutput output = theElementaryParticleCollider->collide(&bullet, &target); + + if (verboseLevel > 2){ + output.printCollisionOutput(); + } + + G4std::vector outgoing_particles = + + output.getOutgoingParticles(); + + if (passFermi(outgoing_particles, zone)) { // interaction + cparticle.propagateAlongThePath(thePartners[i].second); + + G4std::vector new_position = cparticle.getPosition(); + + for (G4int ip = 0; ip < G4int(outgoing_particles.size()); ip++) + outgouing_cparticles.push_back(G4CascadParticle(outgoing_particles[ip], + new_position, zone, 0.0)); + no_interaction = false; + current_nucl1 = 0; + current_nucl2 = 0; +#ifdef CHC_CHECK + G4double out_charge = 0.0; + + for (G4int ip = 0; ip < outgoing_particles.size(); ip++) + out_charge += outgoing_particles[ip].getCharge(); + + G4cout << " multiplicity " << outgoing_particles.size() << + " bul type " << bullet.type() << " targ type " << target.type() << + G4endl << " initial charge " << bullet.getCharge() + target.getCharge() + << " out charge " << out_charge << G4endl; +#endif + + if (verboseLevel > 2){ + G4cout << " partner type " << target.type() << G4endl; + } + + if (target.nucleon()) { + current_nucl1 = target.type(); + + } else { + + if (verboseLevel > 2){ + G4cout << " good absorption " << G4endl; + } + + current_nucl1 = (target.type() - 100) / 10; + current_nucl2 = target.type() - 100 - 10 * current_nucl1; + }; + + if (current_nucl1 == 1) { + protonNumberCurrent -= 1.0; + + } else { + + neutronNumberCurrent -= 1.0; + }; + + if (current_nucl2 == 1) { + protonNumberCurrent -= 1.0; + + } else if(current_nucl2 == 2) { + + neutronNumberCurrent -= 1.0; + }; + + break; + }; + }; + if (no_interaction) { // still now interactions + cparticle.updatePosition(old_position); + cparticle.propagateAlongThePath(thePartners[npart - 1].second); + cparticle.incrementCurrentPath(thePartners[npart - 1].second); + boundaryTransition(cparticle); + outgouing_cparticles.push_back(cparticle); + }; + }; + }; + + return outgouing_cparticles; +} + +G4bool G4NucleiModel::passFermi(const G4std::vector& particles, + G4int zone) { + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::passFermi" << G4endl; + } + + for (G4int i = 0; i < G4int(particles.size()); i++) { + + if (particles[i].nucleon()) { + + if (verboseLevel > 2){ + G4cout << " type " << particles[i].type() << " p " << particles[i].getMomModule() + << " pf " << fermi_momenta[particles[i].type() - 1][zone] << G4endl; + } + + if (particles[i].getMomModule() < fermi_momenta[particles[i].type() - 1][zone]) { + + if (verboseLevel > 2) { + G4cout << " rejected by fermi: type " << particles[i].type() << + " p " << particles[i].getMomModule() << G4endl; + } + + return false; + }; + }; + }; + return true; +} + +void G4NucleiModel::boundaryTransition(G4CascadParticle& cparticle) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::boundaryTransition" << G4endl; + } + + G4int zone = cparticle.getCurrentZone(); + + if (cparticle.movingInsideNuclei() && zone == 0) { + G4cout << " boundaryTransition-> in zone 0 " << G4endl; + + } else { + + G4std::vector mom = cparticle.getMomentum(); + + G4std::vector pos = cparticle.getPosition(); + + G4int type = cparticle.getParticle().type(); + + G4double pr = 0.0; + + G4double r = 0.0; + + G4int i(0); + + for (i = 0; i < 3; i++) { + pr += pos[i] * mom[i + 1]; + r += pos[i] * pos[i]; + }; + + r = sqrt(r); + pr /= r; + + G4int next_zone = cparticle.movingInsideNuclei() ? zone - 1 : zone + 1; + + G4double dv = getPotential(type,zone) - getPotential(type, next_zone); + + G4double qv = dv * dv - 2.0 * dv * mom[0] + pr * pr; + + G4double p1r; + + if (verboseLevel > 2){ + G4cout << " type " << type << " zone " << zone + << " next " << next_zone + << " qv " << qv << " dv " << dv << G4endl; + } + + if(qv <= 0.0) { // reflection + p1r = -pr; + cparticle.incrementReflectionCounter(); + + } else { // transition + + p1r = sqrt(qv); + if(pr < 0.0) p1r = -p1r; + cparticle.updateZone(next_zone); + cparticle.resetReflection(); + }; + + G4double prr = (p1r - pr) / r; + + for (i = 0; i < 3; i++) mom[i + 1] += pos[i] * prr; + + cparticle.updateParticleMomentum(mom); + }; +} + +G4bool G4NucleiModel::worthToPropagate(const G4CascadParticle& cparticle) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::worthToPropagate" << G4endl; + } + + const G4double cut_coeff = 2.0; + + G4bool worth = true; + + if (cparticle.reflectedNow()) { + + G4int zone = cparticle.getCurrentZone(); + + G4int ip = cparticle.getParticle().type(); + + if (cparticle.getParticle().getKineticEnergy() < cut_coeff * + getFermiKinetic(ip, zone)) worth = false; + + }; + + return worth; +} + +G4double G4NucleiModel::getRatio(G4int ip) const { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::getRatio" << G4endl; + } + + G4double rat; + + if (ip == 1) { + + if (verboseLevel > 2){ + G4cout << " current " << protonNumberCurrent << " inp " << protonNumber << G4endl; + } + + rat = protonNumberCurrent / protonNumber; + + } else { + + if (verboseLevel > 2){ + G4cout << " current " << neutronNumberCurrent << " inp " << neutronNumber << G4endl; + } + + rat = neutronNumberCurrent / neutronNumber; + }; + + return rat; +} + +G4CascadParticle G4NucleiModel::initializeCascad(G4InuclElementaryParticle* particle) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::initializeCascad(G4InuclElementaryParticle* particle)" << G4endl; + } + + const G4double large = 1000.0; + + G4double s1 = sqrt(inuclRndm()); + + G4double phi = randomPHI(); + + G4double rz = nuclei_radius * s1; + + G4std::vector pos(3); + + pos[0] = rz * cos(phi); + pos[1] = rz * sin(phi); + pos[2] = -nuclei_radius * sqrt(1.0 - s1 * s1); + + G4CascadParticle cpart(*particle, pos, number_of_zones, large); + + if (verboseLevel > 2){ + cpart.print(); + } + + return cpart; +} + +G4std::pair, G4std::vector > +G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, + G4InuclNuclei* target) { + + if (verboseLevel > 3) { + G4cout << " >>> G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target)" << G4endl; + } + + const G4double large = 1000.0; + const G4double max_a_for_cascad = 5.0; + const G4double ekin_cut = 2.0; + const G4double small_ekin = 1.0e-6; + const G4double r_large2for3 = 62.0; + const G4double r0forAeq3 = 3.92; + const G4double s3max = 6.5; + const G4double r_large2for4 = 69.14; + const G4double r0forAeq4 = 4.16; + const G4double s4max = 7.0; + const G4int itry_max = 100; + + G4std::vector casparticles; + G4std::vector particles; + +// first decide whether it will be cascad or compound final nuclei + + G4double ab = bullet->getA(); + G4double zb = bullet->getZ(); + G4double at = target->getA(); + G4double zt = target->getZ(); + + if (ab < max_a_for_cascad) { + + G4double benb = 0.001 * bindingEnergy(ab, zb) / ab; + G4double bent = 0.001 * bindingEnergy(at, zt) / at; + G4double ben = benb < bent ? bent : benb; + + if (bullet->getKineticEnergy()/ab > ekin_cut*ben) { + + int itryg = 0; + + while (casparticles.size() == 0 && itryg < itry_max) { + itryg++; + + if(itryg > 0) particles.resize(0); + + // nucleons coordinates and momenta in nuclei rest frame + G4std::vector > coordinates; + G4std::vector > momentums; + + if (ab < 3.0) { // deutron, simplest case + + G4double r = 2.214 - 3.4208 * log(1.0 - 0.981 * inuclRndm()); + G4double s = 2.0 * inuclRndm() - 1.0; + G4double r1 = r * sqrt(1.0 - s * s); + G4std::vector coord1(3); + G4double phi = randomPHI(); + coord1[0] = r1 * cos(phi); + coord1[1] = r1 * sin(phi); + coord1[2] = r * s; + coordinates.push_back(coord1); + G4int i(0); + + for (i = 0; i < 3; i++) coord1[i] *= -1; + + coordinates.push_back(coord1); + G4double p = 0.0; + G4bool bad = true; + G4int itry = 0; + + while (bad && itry < itry_max) { + itry++; + p = 456.0 * inuclRndm(); + + if (p * p / (p * p + 2079.36) / (p * p + 2079.36) > 1.2023e-4 * inuclRndm() && + p * r > 312.0) bad = false; + + }; + + if (itry == itry_max) + + if (verboseLevel > 2){ + G4cout << " deutron bullet generation-> itry = " << itry_max << G4endl; + } + + p = 0.0005 * p; + + if (verboseLevel > 2){ + G4cout << " p nuc " << p << G4endl; + } + + G4std::vector mom(4); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double FI = randomPHI(); + G4double P1 = p * COS_SIN.second; + mom[1] = P1 * cos(FI); + mom[2] = P1 * sin(FI); + mom[3] = p * COS_SIN.first; + momentums.push_back(mom); + + for (i = 1; i < 4; i++) mom[i] *= -1; + momentums.push_back(mom); + + } else { + + G4int ia = int(ab + 0.5); + + G4std::vector coord1(3); + + G4bool badco = true; + + G4int itry = 0; + + if (ab < 4.0) { // a == 3 + + while (badco && itry < itry_max) { + + if (itry > 0) coordinates.resize(0); + + itry++; + G4int i(0); + + for (i = 0; i < 2; i++) { + G4int itry1 = 0; + G4double s; + G4double u; + G4double rho; + G4double fmax = exp(-0.5) / sqrt(0.5); + + while (itry1 < itry_max) { + itry1++; + s = -log(inuclRndm()); + u = fmax * inuclRndm(); + rho = sqrt(s) * exp(-s); + + if (sqrt(s) * exp(-s) > u && s < s3max) { + s = r0forAeq3 * sqrt(s); + G4std::pair COS_SIN = randomCOS_SIN(); + u = s * COS_SIN.second; + G4double phi = randomPHI(); + coord1[0] = u * cos(phi); + coord1[1] = u * sin(phi); + coord1[2] = s * COS_SIN.first; + coordinates.push_back(coord1); + + if (verboseLevel > 2){ + G4cout << " i " << i << " r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + break; + }; + }; + + if (itry1 == itry_max) { // bad case + coord1[0] = coord1[1] = coord1[2] = 10000.; + coordinates.push_back(coord1); + + break; + }; + }; + + for (i = 0; i < 3; i++) coord1[i] = - coordinates[0][i] - + coordinates[1][i]; + + if (verboseLevel > 2) { + G4cout << " 3 r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + coordinates.push_back(coord1); + + G4bool large_dist = false; + + for (i = 0; i < 2; i++) { + + for (G4int j = i+1; j < 3; j++) { + + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + + pow(coordinates[i][1] - coordinates[j][1], 2) + + pow(coordinates[i][2] - coordinates[j][2], 2); + + if (verboseLevel > 2) { + G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; + } + + if (r2 > r_large2for3) { + large_dist = true; + + break; + }; + }; + + if (large_dist) break; + + }; + + if(!large_dist) badco = false; + + }; + + } else { // a >= 4 + + G4double b = 3./(ab - 2.0); + G4double b1 = 1.0 - b / 2.0; + G4double u = b1 + sqrt(b1 * b1 + b); + b = 1.0 / b; + G4double fmax = (1.0 + u * b) * u * exp(-u); + + while (badco && itry < itry_max) { + + if (itry > 0) coordinates.resize(0); + itry++; + G4int i(0); + + for (i = 0; i < ia-1; i++) { + G4int itry1 = 0; + G4double s; + G4double u; + + while (itry1 < itry_max) { + itry1++; + s = -log(inuclRndm()); + u = fmax * inuclRndm(); + + if (sqrt(s) * exp(-s) * (1.0 + b * s) > u && s < s4max) { + s = r0forAeq4 * sqrt(s); + G4std::pair COS_SIN = randomCOS_SIN(); + u = s * COS_SIN.second; + G4double phi = randomPHI(); + coord1[0] = u*cos(phi); + coord1[1] = u*sin(phi); + coord1[2] = s*COS_SIN.first; + coordinates.push_back(coord1); + + if (verboseLevel > 2) { + G4cout << " i " << i << " r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + break; + }; + }; + + if (itry1 == itry_max) { // bad case + coord1[0] = coord1[1] = coord1[2] = 10000.0; + coordinates.push_back(coord1); + + break; + }; + }; + + for(i = 0; i < 3; i++) { + coord1[i] = 0.0; + + for(G4int j = 0; j < ia -1; j++) coord1[i] -= coordinates[j][i]; + }; + + coordinates.push_back(coord1); + + if (verboseLevel > 2){ + G4cout << " last r " << sqrt(coord1[0] * coord1[0] + + coord1[1] * coord1[1] + + coord1[2] * coord1[2]) << G4endl; + } + + G4bool large_dist = false; + + for (i = 0; i < ia-1; i++) { + + for (G4int j = i+1; j < ia; j++) { + + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + + + pow(coordinates[i][1]-coordinates[j][1], 2) + + pow(coordinates[i][2] - coordinates[j][2], 2); + + if (verboseLevel > 2){ + G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; + } + + if (r2 > r_large2for4) { + large_dist = true; + + break; + }; + + }; + + if (large_dist) break; + + }; + + if (!large_dist) badco = false; + + }; + }; + + if(badco) { + G4cout << " can not generate the nucleons coordinates for a " << ab << + G4endl; + + return G4std::pair, G4std::vector > + (casparticles, particles); + + } else { // momentums + + G4double p; + G4double u; + G4double x; + G4std::vector mom(4); + //G4bool badp = True; + G4int i(0); + + for (i = 0; i < ia - 1; i++) { + G4int itry = 0; + + while(itry < itry_max) { + itry++; + u = -log(0.879853 - 0.8798502 * inuclRndm()); + x = u * exp(-u); + + if(x > inuclRndm()) { + p = sqrt(0.01953 * u); + G4std::pair COS_SIN = randomCOS_SIN(); + G4double pt = p * COS_SIN.second; + G4double phi = randomPHI(); + mom[1] = pt * cos(phi); + mom[2] = pt * sin(phi); + mom[3] = p * COS_SIN.first; + momentums.push_back(mom); + + break; + }; + }; + + if(itry == itry_max) { + G4cout << " can not generate proper momentum for a " << ab << G4endl; + + return G4std::pair, G4std::vector > + (casparticles, particles); + }; + + }; + // last momentum + + for(i = 1; i < 4; i++) { + mom[i] = 0.; + + for(G4int j = 0; j < ia -1; j++) mom[i] -= momentums[j][i]; + }; + + momentums.push_back(mom); + }; + }; + // coordinates and momentums at rest are generated, now back to the lab; + G4double rb = 0.0; + G4int i(0); + + for(i = 0; i < G4int(coordinates.size()); i++) { + G4double rp = sqrt(coordinates[i][0] * coordinates[i][0] + + coordinates[i][1] * coordinates[i][1] + + coordinates[i][2] * coordinates[i][2]); + + if(rp > rb) rb = rp; + }; + + // nuclei i.p. as a whole + G4double s1 = sqrt(inuclRndm()); + G4double phi = randomPHI(); + G4double rz = (nuclei_radius + rb) * s1; + G4std::vector global_pos(3); + global_pos[0] = rz * cos(phi); + global_pos[1] = rz * sin(phi); + global_pos[2] = -(nuclei_radius + rb) * sqrt(1.0 - s1 * s1); + + for (i = 0; i < G4int(coordinates.size()); i++) { + coordinates[i][0] += global_pos[0]; + coordinates[i][1] += global_pos[1]; + coordinates[i][2] += global_pos[2]; + }; + + // all nucleons at rest + G4std::vector raw_particles; + G4int ia = int(ab + 0.5); + G4int iz = int(zb + 0.5); + + for (G4int ipa = 0; ipa < ia; ipa++) { + G4int knd = ipa < iz ? 1 : 2; + raw_particles.push_back(G4InuclElementaryParticle(momentums[ipa], knd)); + }; + + G4InuclElementaryParticle dummy(small_ekin, 1); + G4LorentzConvertor toTheBulletRestFrame; + toTheBulletRestFrame.setBullet(dummy.getMomentum(), dummy.getMass()); + toTheBulletRestFrame.setTarget(bullet->getMomentum(),bullet->getMass()); + toTheBulletRestFrame.toTheTargetRestFrame(); + + particleIterator ipart; + + for (ipart = raw_particles.begin(); ipart != raw_particles.end(); ipart++) { + G4std::vector mom = + toTheBulletRestFrame.backToTheLab(ipart->getMomentum()); + ipart->setMomentum(mom); + }; + + // fill cascad particles and outgoing particles + + for(G4int ip = 0; ip < G4int(raw_particles.size()); ip++) { + G4std::vector mom = raw_particles[ip].getMomentum(); + G4double pmod = sqrt(mom[1] * mom[1] + mom[2] * mom[2] + mom[3] * mom[3]); + G4double t0 = -(mom[1] * coordinates[ip][0] + mom[2] * coordinates[ip][1] + + mom[3] * coordinates[ip][2]) / pmod; + G4double det = t0 * t0 + nuclei_radius * nuclei_radius - + coordinates[ip][0] * coordinates[ip][0] - + coordinates[ip][1] * coordinates[ip][1] - + coordinates[ip][2] * coordinates[ip][2]; + G4double tr = -1.0; + + if(det > 0.0) { + G4double t1 = t0 + sqrt(det); + G4double t2 = t0 - sqrt(det); + + if(fabs(t1) <= fabs(t2)) { + + if(t1 > 0.0) { + + if(coordinates[ip][2] + mom[3] * t1 / pmod <= 0.0) tr = t1; + }; + + if(tr < 0.0 && t2 > 0.0) { + + if(coordinates[ip][2] + mom[3] * t2 / pmod <= 0.0) tr = t2; + }; + + } else { + + if(t2 > 0.0) { + + if(coordinates[ip][2] + mom[3] * t2 / pmod <= 0.0) tr = t2; + + }; + + if(tr < 0.0 && t1 > 0.0) { + + if(coordinates[ip][2] + mom[3] * t1 / pmod <= 0.0) tr = t1; + + }; + + }; + + }; + + if(tr >= 0.0) { // cascad particle + coordinates[ip][0] += mom[1] * tr / pmod; + coordinates[ip][1] += mom[2] * tr / pmod; + coordinates[ip][2] += mom[3] * tr / pmod; + casparticles.push_back( + G4CascadParticle(raw_particles[ip], coordinates[ip], + number_of_zones, large)); + + } else { + + particles.push_back(raw_particles[ip]); + }; + }; + }; + + if(casparticles.size() == 0) { + particles.resize(0); + + G4cout << " can not generate proper distribution for " << itry_max << " steps " << G4endl; + + }; + }; + }; + + if(verboseLevel > 2){ + G4cout << " cascad particles: " << casparticles.size() << G4endl; + G4int ip(0); + + for(ip = 0; ip < G4int(casparticles.size()); ip++) casparticles[ip].print(); + + G4cout << " outgoing particles: " << particles.size() << G4endl; + + for(ip = 0; ip < G4int(particles.size()); ip++) particles[ip].printParticle(); + } + + return G4std::pair, G4std::vector > + (casparticles, particles); +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc new file mode 100644 index 0000000000..cbecb42876 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc @@ -0,0 +1,189 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4RegionModel.hh" + +const G4double G4RegionModel::radius0 = 1.0E-15; +const G4double G4RegionModel::BE = 7; + +G4RegionModel::G4RegionModel(const G4int numberOfLayers, const G4int A, const G4int Z) +{ + //count the radiuses, densities and fermi momenta with A and Z + G4double r = radius0*pow(A, 1/3); + + if(numberOfLayers==1){ + radius.push_back(r); + + G4double rho = A / (4/3*pi*pow(r,3)); + density.push_back(rho); + + G4double protonMass = G4Proton::Proton()->GetPDGMass(); + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass(); + G4double protonDensity = Z / (4/3*pi*pow(r,3)); + G4double neutronDensity = (A-Z) / (4/3*pi*pow(r,3)); + + protonFermiEnergy.push_back(GetFermiEnergy(protonDensity, protonMass)); + neutronFermiEnergy.push_back(GetFermiEnergy(neutronDensity, neutronMass)); + + protonFermiMomentum.push_back(GetFermiMomentum(protonDensity, protonMass)); + neutronFermiMomentum.push_back(GetFermiMomentum(neutronDensity, neutronMass)); + + G4double fermiEP = *protonFermiEnergy.begin(); + G4double fermiEN = *neutronFermiEnergy.begin(); + protonPotentialEnergy.push_back(-(fermiEP + BE)); + neutronPotentialEnergy.push_back(-(fermiEN + BE)); + } + else{ + if(numberOfLayers==3){ + radius.push_back(0.1*r); + radius.push_back(0.2*r); + radius.push_back(0.9*r); + + } + } +} +G4RegionModel::~G4RegionModel(){} + +/* +void G4RegionModel::Init(const G4int numberOfLayers, const G4int A, const G4int Z){ + //count the radiuses, densities and fermi momenta with A and Z + G4double r = radius0*pow(A, 1/3); + + if(numberOfLayers==1){ + radius.push_back(r); + + G4double rho = A / (4/3*pi*pow(r,3)); + density.push_back(rho); + + G4double protonMass = G4Proton::Proton()->GetPDGMass()/MeV; + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass()/MeV ; + G4double protonDensity = Z / (4/3*pi*pow(r,3)); + G4double neutronDensity = (A-Z) / (4/3*pi*pow(r,3)); + + protonFermiEnergy.push_back(GetFermiEnergy(protonDensity, protonMass)); + neutronFermiEnergy.push_back(GetFermiEnergy(neutronDensity, neutronMass)); + + protonFermiMomentum.push_back(GetFermiMomentum(protonDensity, protonMass)); + neutronFermiMomentum.push_back(GetFermiMomentum(neutronDensity, neutronMass)); + + G4double fermiEP = *protonFermiEnergy.begin(); + G4double fermiEN = *neutronFermiEnergy.begin(); + protonPotentialEnergy.push_back(-(fermiEP + BE)); + neutronPotentialEnergy.push_back(-(fermiEN + BE)); + } + else{ + if(numberOfLayers==3){ + radius.push_back(0.1*r); + radius.push_back(0.2*r); + radius.push_back(0.9*r); + + } + } +} +*/ + +//-------------------------------------------------------------- + +G4double G4RegionModel::GetDensity(G4double r){ + iterator j=density.begin(); + for(iterator i=radius.begin(); i 3) { + G4cout << " >>> G4WatcherGun::G4WatcherGun" << G4endl; + } +} + +void G4WatcherGun::setWatchers() { + + if (verboseLevel > 3) { + G4cout << " >>> G4WatcherGun::setWatchers" << G4endl; + } + + G4std::vector as; + G4std::vector cs; + G4std::vector errs; + + // specific stuff to monitor the difference with fortran + // particle type + // Z = 0 + as.push_back(1.0); + cs.push_back(33520.0); + errs.push_back(12.4); + as.push_back(0.0); + cs.push_back(217.4); + errs.push_back(1.22); + watchers.push_back(G4NuclWatcher(0.0, as, cs, errs, false, false)); + + // Z = 1 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(1.0); + cs.push_back(7645.0); + errs.push_back(6.08); + as.push_back(0.0); + cs.push_back(109.4); + errs.push_back(0.96); + as.push_back(2.0); + cs.push_back(658.7); + errs.push_back(4.2); + as.push_back(3.0); + cs.push_back(338.6); + errs.push_back(3.1); + watchers.push_back(G4NuclWatcher(1.0, as, cs, errs, false, false)); + + // Z = 1 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(2.0); + cs.push_back(658.7); + errs.push_back(4.2); + as.push_back(3.0); + cs.push_back(338.6); + errs.push_back(3.1); + watchers.push_back(G4NuclWatcher(1.0, as, cs, errs, false, true)); + + // Z = -1 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(0.0); + cs.push_back(198.3); + errs.push_back(1.0); + watchers.push_back(G4NuclWatcher(-1.0, as, cs, errs, false, false)); + + // Z = 2 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(3.0); + cs.push_back(28.2); + errs.push_back(1.0); + as.push_back(4.0); + cs.push_back(781.0); + errs.push_back(5.0); + watchers.push_back(G4NuclWatcher(2.0, as, cs, errs, false, true)); + +#ifdef PB + // Z = 22 + // watchers for pb208 + 1 GeV p + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(47.0); + cs.push_back(0.2); + errs.push_back(0.029); + as.push_back(48.0); + cs.push_back(0.288); + errs.push_back(0.042); + as.push_back(49.0); + cs.push_back(0.349); + errs.push_back(0.091); + as.push_back(50.0); + cs.push_back(0.277); + errs.push_back(0.061); + as.push_back(51.0); + cs.push_back(0.128); + errs.push_back(0.054); + as.push_back(52.0); + cs.push_back(0.06); + errs.push_back(0.023); + watchers.push_back(G4NuclWatcher(22.0, as, cs, errs, false, true)); + + // Z = 23 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(49.0); + cs.push_back(0.182); + errs.push_back(0.026); + as.push_back(50.0); + cs.push_back(0.303); + errs.push_back(0.038); + as.push_back(51.0); + cs.push_back(0.367); + errs.push_back(0.084); + as.push_back(52.0); + cs.push_back(0.273); + errs.push_back(0.057); + as.push_back(53.0); + cs.push_back(0.239); + errs.push_back(0.051); + as.push_back(54.0); + cs.push_back(0.121); + errs.push_back(0.022); + as.push_back(55.0); + cs.push_back(0.05); + errs.push_back(0.012); + watchers.push_back(G4NuclWatcher(23.0, as, cs, errs, false, true)); + + // Z = 24 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(51.0); + cs.push_back(0.215); + errs.push_back(0.024); + as.push_back(52.0); + cs.push_back(0.366); + errs.push_back(0.039); + as.push_back(53.0); + cs.push_back(0.386); + errs.push_back(0.078); + as.push_back(54.0); + cs.push_back(0.452); + errs.push_back(0.068); + as.push_back(55.0); + cs.push_back(0.25); + errs.push_back(0.048); + as.push_back(56.0); + cs.push_back(0.217); + errs.push_back(0.035); + as.push_back(57.0); + cs.push_back(0.092); + errs.push_back(0.011); + watchers.push_back(G4NuclWatcher(24.0, as, cs, errs, true, true)); + + // Z = 25 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(53.0); + cs.push_back(0.181); + errs.push_back(0.022); + as.push_back(54.0); + cs.push_back(0.335); + errs.push_back(0.035); + as.push_back(55.0); + cs.push_back(0.456); + errs.push_back(0.073); + as.push_back(56.0); + cs.push_back(0.475); + errs.push_back(0.063); + as.push_back(57.0); + cs.push_back(0.449); + errs.push_back(0.046); + as.push_back(58.0); + cs.push_back(0.262); + errs.push_back(0.033); + as.push_back(59.0); + cs.push_back(0.17); + errs.push_back(0.021); + as.push_back(60.0); + cs.push_back(0.051); + errs.push_back(0.015); + watchers.push_back(G4NuclWatcher(25.0, as, cs, errs, false, true)); + + // Z = 26 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(55.0); + cs.push_back(0.129); + errs.push_back(0.014); + as.push_back(56.0); + cs.push_back(0.382); + errs.push_back(0.027); + as.push_back(57.0); + cs.push_back(0.478); + errs.push_back(0.037); + as.push_back(58.0); + cs.push_back(0.649); + errs.push_back(0.057); + as.push_back(59.0); + cs.push_back(0.523); + errs.push_back(0.033); + as.push_back(60.0); + cs.push_back(0.446); + errs.push_back(0.035); + as.push_back(61.0); + cs.push_back(0.263); + errs.push_back(0.046); + as.push_back(62.0); + cs.push_back(0.09); + errs.push_back(0.014); + watchers.push_back(G4NuclWatcher(26.0, as, cs, errs, false, true)); + + // Z = 27 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(57.0); + cs.push_back(0.0866); + errs.push_back(0.011); + as.push_back(58.0); + cs.push_back(0.311); + errs.push_back(0.024); + as.push_back(59.0); + cs.push_back(0.549); + errs.push_back(0.039); + as.push_back(60.0); + cs.push_back(0.665); + errs.push_back(0.057); + as.push_back(61.0); + cs.push_back(0.714); + errs.push_back(0.041); + as.push_back(62.0); + cs.push_back(0.586); + errs.push_back(0.042); + as.push_back(63.0); + cs.push_back(0.429); + errs.push_back(0.048); + as.push_back(64.0); + cs.push_back(0.167); + errs.push_back(0.026); + as.push_back(65.0); + cs.push_back(0.108); + errs.push_back(0.046); + watchers.push_back(G4NuclWatcher(27.0, as, cs, errs, false, true)); + + // Z = 28 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(59.0); + cs.push_back(0.035); + errs.push_back(0.006); + as.push_back(60.0); + cs.push_back(0.299); + errs.push_back(0.02); + as.push_back(61.0); + cs.push_back(0.512); + errs.push_back(0.038); + as.push_back(62.0); + cs.push_back(0.865); + errs.push_back(0.057); + as.push_back(63.0); + cs.push_back(0.813); + errs.push_back(0.045); + as.push_back(64.0); + cs.push_back(0.829); + errs.push_back(0.053); + as.push_back(65.0); + cs.push_back(0.596); + errs.push_back(0.056); + as.push_back(66.0); + cs.push_back(0.318); + errs.push_back(0.072); + as.push_back(67.0); + cs.push_back(0.139); + errs.push_back(0.056); + as.push_back(68.0); + cs.push_back(0.054); + errs.push_back(0.036); + watchers.push_back(G4NuclWatcher(28.0, as, cs, errs, true, true)); + + // Z = 29 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(61.0); + cs.push_back(0.026); + errs.push_back(0.004); + as.push_back(62.0); + cs.push_back(0.179); + errs.push_back(0.016); + as.push_back(63.0); + cs.push_back(0.464); + errs.push_back(0.03); + as.push_back(64.0); + cs.push_back(0.759); + errs.push_back(0.06); + as.push_back(65.0); + cs.push_back(0.973); + errs.push_back(0.044); + as.push_back(66.0); + cs.push_back(0.951); + errs.push_back(0.055); + as.push_back(67.0); + cs.push_back(0.872); + errs.push_back(0.064); + as.push_back(68.0); + cs.push_back(0.485); + errs.push_back(0.071); + as.push_back(69.0); + cs.push_back(0.239); + errs.push_back(0.056); + as.push_back(70.0); + cs.push_back(0.088); + errs.push_back(0.032); + as.push_back(71.0); + cs.push_back(0.041); + errs.push_back(0.024); + watchers.push_back(G4NuclWatcher(29.0, as, cs, errs, false, true)); + + // Z = 30 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(64.0); + cs.push_back(0.149); + errs.push_back(0.013); + as.push_back(65.0); + cs.push_back(0.422); + errs.push_back(0.026); + as.push_back(66.0); + cs.push_back(0.813); + errs.push_back(0.059); + as.push_back(67.0); + cs.push_back(1.05); + errs.push_back(0.046); + as.push_back(68.0); + cs.push_back(1.205); + errs.push_back(0.06); + as.push_back(69.0); + cs.push_back(1.211); + errs.push_back(0.073); + as.push_back(70.0); + cs.push_back(0.754); + errs.push_back(0.082); + as.push_back(71.0); + cs.push_back(0.401); + errs.push_back(0.053); + as.push_back(72.0); + cs.push_back(0.193); + errs.push_back(0.038); + as.push_back(73.0); + cs.push_back(0.082); + errs.push_back(0.034); + watchers.push_back(G4NuclWatcher(30.0, as, cs, errs, false, true)); + + // Z = 31 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(66.0); + cs.push_back(0.082); + errs.push_back(0.008); + as.push_back(67.0); + cs.push_back(0.353); + errs.push_back(0.022); + as.push_back(68.0); + cs.push_back(0.737); + errs.push_back(0.059); + as.push_back(69.0); + cs.push_back(1.215); + errs.push_back(0.049); + as.push_back(70.0); + cs.push_back(1.299); + errs.push_back(0.087); + as.push_back(71.0); + cs.push_back(1.453); + errs.push_back(0.085); + as.push_back(72.0); + cs.push_back(1.135); + errs.push_back(0.096); + as.push_back(73.0); + cs.push_back(0.635); + errs.push_back(0.064); + as.push_back(74.0); + cs.push_back(0.334); + errs.push_back(0.037); + as.push_back(75.0); + cs.push_back(0.179); + errs.push_back(0.047); + as.push_back(76.0); + cs.push_back(0.061); + errs.push_back(0.014); + watchers.push_back(G4NuclWatcher(31.0, as, cs, errs, true, true)); + + // Z = 32 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(68.0); + cs.push_back(0.038); + errs.push_back(0.005); + as.push_back(69.0); + cs.push_back(0.286); + errs.push_back(0.019); + as.push_back(70.0); + cs.push_back(0.719); + errs.push_back(0.057); + as.push_back(71.0); + cs.push_back(1.237); + errs.push_back(0.056); + as.push_back(72.0); + cs.push_back(1.608); + errs.push_back(0.092); + as.push_back(73.0); + cs.push_back(1.626); + errs.push_back(0.089); + as.push_back(74.0); + cs.push_back(1.651); + errs.push_back(0.107); + as.push_back(75.0); + cs.push_back(0.938); + errs.push_back(0.094); + as.push_back(76.0); + cs.push_back(0.61); + errs.push_back(0.046); + as.push_back(77.0); + cs.push_back(0.233); + errs.push_back(0.076); + as.push_back(78.0); + cs.push_back(0.098); + errs.push_back(0.013); + as.push_back(79.0); + cs.push_back(0.04); + errs.push_back(0.018); + watchers.push_back(G4NuclWatcher(32.0, as, cs, errs, false, true)); + + // Z = 33 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(71.0); + cs.push_back(0.176); + errs.push_back(0.014); + as.push_back(72.0); + cs.push_back(0.493); + errs.push_back(0.041); + as.push_back(73.0); + cs.push_back(1.189); + errs.push_back(0.055); + as.push_back(74.0); + cs.push_back(1.659); + errs.push_back(0.09); + as.push_back(75.0); + cs.push_back(2.066); + errs.push_back(0.115); + as.push_back(76.0); + cs.push_back(1.838); + errs.push_back(0.119); + as.push_back(77.0); + cs.push_back(1.48); + errs.push_back(0.132); + as.push_back(78.0); + cs.push_back(0.815); + errs.push_back(0.05); + as.push_back(79.0); + cs.push_back(0.406); + errs.push_back(0.073); + as.push_back(80.0); + cs.push_back(0.201); + errs.push_back(0.013); + as.push_back(81.0); + cs.push_back(0.079); + errs.push_back(0.024); + as.push_back(82.0); + cs.push_back(0.023); + errs.push_back(0.01); + watchers.push_back(G4NuclWatcher(33.0, as, cs, errs, false, true)); + + // Z = 34 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(73.0); + cs.push_back(0.102); + errs.push_back(0.011); + as.push_back(74.0); + cs.push_back(0.523); + errs.push_back(0.041); + as.push_back(75.0); + cs.push_back(1.136); + errs.push_back(0.056); + as.push_back(76.0); + cs.push_back(1.741); + errs.push_back(0.092); + as.push_back(77.0); + cs.push_back(2.144); + errs.push_back(0.115); + as.push_back(78.0); + cs.push_back(2.432); + errs.push_back(0.137); + as.push_back(79.0); + cs.push_back(1.904); + errs.push_back(0.156); + as.push_back(80.0); + cs.push_back(1.205); + errs.push_back(0.056); + as.push_back(81.0); + cs.push_back(0.698); + errs.push_back(0.075); + as.push_back(82.0); + cs.push_back(0.328); + errs.push_back(0.02); + as.push_back(83.0); + cs.push_back(0.147); + errs.push_back(0.045); + as.push_back(84.0); + cs.push_back(0.045); + errs.push_back(0.012); + watchers.push_back(G4NuclWatcher(34.0, as, cs, errs, false, true)); + + // Z = 35 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(75.0); + cs.push_back(0.048); + errs.push_back(0.006); + as.push_back(76.0); + cs.push_back(0.315); + errs.push_back(0.033); + as.push_back(77.0); + cs.push_back(0.973); + errs.push_back(0.052); + as.push_back(78.0); + cs.push_back(1.494); + errs.push_back(0.086); + as.push_back(79.0); + cs.push_back(2.269); + errs.push_back(0.113); + as.push_back(80.0); + cs.push_back(2.566); + errs.push_back(0.153); + as.push_back(81.0); + cs.push_back(2.469); + errs.push_back(0.162); + as.push_back(82.0); + cs.push_back(1.554); + errs.push_back(0.063); + as.push_back(83.0); + cs.push_back(0.991); + errs.push_back(0.094); + as.push_back(84.0); + cs.push_back(0.454); + errs.push_back(0.023); + as.push_back(85.0); + cs.push_back(0.196); + errs.push_back(0.048); + as.push_back(86.0); + cs.push_back(0.095); + errs.push_back(0.012); + as.push_back(87.0); + cs.push_back(0.033); + errs.push_back(0.02); + watchers.push_back(G4NuclWatcher(35.0, as, cs, errs, false, true)); + + // spallation part + // Z = 61 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(132.0); + cs.push_back(0.002); + errs.push_back(0.001); + as.push_back(133.0); + cs.push_back(0.009); + errs.push_back(0.002); + as.push_back(134.0); + cs.push_back(0.033); + errs.push_back(0.003); + as.push_back(135.0); + cs.push_back(0.076); + errs.push_back(0.003); + as.push_back(136.0); + cs.push_back(0.128); + errs.push_back(0.005); + as.push_back(137.0); + cs.push_back(0.175); + errs.push_back(0.006); + as.push_back(138.0); + cs.push_back(0.179); + errs.push_back(0.007); + as.push_back(139.0); + cs.push_back(0.17); + errs.push_back(0.01); + as.push_back(140.0); + cs.push_back(0.158); + errs.push_back(0.009); + as.push_back(141.0); + cs.push_back(0.141); + errs.push_back(0.018); + as.push_back(142.0); + cs.push_back(0.083); + errs.push_back(0.018); + as.push_back(143.0); + cs.push_back(0.065); + errs.push_back(0.022); + as.push_back(144.0); + cs.push_back(0.036); + errs.push_back(0.019); + as.push_back(145.0); + cs.push_back(0.023); + errs.push_back(0.016); + watchers.push_back(G4NuclWatcher(61.0, as, cs, errs, true, true)); + + // Z = 69 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(152.0); + cs.push_back(0.045); + errs.push_back(0.003); + as.push_back(153.0); + cs.push_back(0.18); + errs.push_back(0.007); + as.push_back(154.0); + cs.push_back(0.435); + errs.push_back(0.016); + as.push_back(155.0); + cs.push_back(0.845); + errs.push_back(0.026); + as.push_back(156.0); + cs.push_back(1.283); + errs.push_back(0.041); + as.push_back(157.0); + cs.push_back(1.843); + errs.push_back(0.057); + as.push_back(158.0); + cs.push_back(1.986); + errs.push_back(0.065); + as.push_back(159.0); + cs.push_back(2.078); + errs.push_back(0.066); + as.push_back(160.0); + cs.push_back(1.993); + errs.push_back(0.063); + as.push_back(161.0); + cs.push_back(1.602); + errs.push_back(0.052); + as.push_back(162.0); + cs.push_back(1.241); + errs.push_back(0.041); + as.push_back(163.0); + cs.push_back(0.881); + errs.push_back(0.03); + as.push_back(164.0); + cs.push_back(0.502); + errs.push_back(0.025); + as.push_back(165.0); + cs.push_back(0.299); + errs.push_back(0.017); + as.push_back(166.0); + cs.push_back(0.157); + errs.push_back(0.008); + as.push_back(167.0); + cs.push_back(0.078); + errs.push_back(0.016); + as.push_back(168.0); + cs.push_back(0.033); + errs.push_back(0.006); + as.push_back(169.0); + cs.push_back(0.014); + errs.push_back(0.01); + watchers.push_back(G4NuclWatcher(69.0, as, cs, errs, true, true)); + + // Z = 73 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(160.0); + cs.push_back(0.003); + errs.push_back(0.002); + as.push_back(161.0); + cs.push_back(0.028); + errs.push_back(0.003); + as.push_back(162.0); + cs.push_back(0.136); + errs.push_back(0.008); + as.push_back(163.0); + cs.push_back(0.484); + errs.push_back(0.015); + as.push_back(164.0); + cs.push_back(1.142); + errs.push_back(0.039); + as.push_back(165.0); + cs.push_back(2.406); + errs.push_back(0.074); + as.push_back(166.0); + cs.push_back(4.178); + errs.push_back(0.129); + as.push_back(167.0); + cs.push_back(5.438); + errs.push_back(0.165); + as.push_back(168.0); + cs.push_back(6.645); + errs.push_back(0.2); + as.push_back(169.0); + cs.push_back(7.348); + errs.push_back(0.221); + as.push_back(170.0); + cs.push_back(6.672); + errs.push_back(0.202); + as.push_back(171.0); + cs.push_back(5.834); + errs.push_back(0.177); + as.push_back(172.0); + cs.push_back(4.667); + errs.push_back(0.141); + as.push_back(173.0); + cs.push_back(3.248); + errs.push_back(0.099); + as.push_back(174.0); + cs.push_back(2.19); + errs.push_back(0.068); + as.push_back(175.0); + cs.push_back(1.454); + errs.push_back(0.048); + as.push_back(176.0); + cs.push_back(0.852); + errs.push_back(0.032); + as.push_back(177.0); + cs.push_back(0.478); + errs.push_back(0.03); + as.push_back(178.0); + cs.push_back(0.277); + errs.push_back(0.019); + as.push_back(179.0); + cs.push_back(0.13); + errs.push_back(0.025); + as.push_back(180.0); + cs.push_back(0.06); + errs.push_back(0.012); + as.push_back(181.0); + cs.push_back(0.036); + errs.push_back(0.023); + as.push_back(182.0); + cs.push_back(0.016); + errs.push_back(0.009); + watchers.push_back(G4NuclWatcher(73.0, as, cs, errs, true, true)); + + // Z = 77 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(170.0); + cs.push_back(0.003); + errs.push_back(0.002); + as.push_back(171.0); + cs.push_back(0.024); + errs.push_back(0.005); + as.push_back(172.0); + cs.push_back(0.108); + errs.push_back(0.019); + as.push_back(173.0); + cs.push_back(0.423); + errs.push_back(0.029); + as.push_back(174.0); + cs.push_back(1.203); + errs.push_back(0.051); + as.push_back(175.0); + cs.push_back(2.714); + errs.push_back(0.09); + as.push_back(176.0); + cs.push_back(5.004); + errs.push_back(0.157); + as.push_back(177.0); + cs.push_back(7.545); + errs.push_back(0.233); + as.push_back(178.0); + cs.push_back(9.685); + errs.push_back(0.297); + as.push_back(179.0); + cs.push_back(11.664); + errs.push_back(0.351); + as.push_back(180.0); + cs.push_back(12.576); + errs.push_back(0.378); + as.push_back(181.0); + cs.push_back(11.851); + errs.push_back(0.357); + as.push_back(182.0); + cs.push_back(11.269); + errs.push_back(0.339); + as.push_back(183.0); + cs.push_back(10.266); + errs.push_back(0.308); + as.push_back(184.0); + cs.push_back(7.748); + errs.push_back(0.234); + as.push_back(185.0); + cs.push_back(6.576); + errs.push_back(0.199); + as.push_back(186.0); + cs.push_back(4.567); + errs.push_back(0.138); + as.push_back(187.0); + cs.push_back(3.318); + errs.push_back(0.105); + as.push_back(188.0); + cs.push_back(2.478); + errs.push_back(0.076); + as.push_back(189.0); + cs.push_back(1.703); + errs.push_back(0.055); + as.push_back(190.0); + cs.push_back(1.003); + errs.push_back(0.033); + as.push_back(191.0); + cs.push_back(0.744); + errs.push_back(0.03); + as.push_back(192.0); + cs.push_back(0.468); + errs.push_back(0.019); + as.push_back(193.0); + cs.push_back(0.222); + errs.push_back(0.015); + as.push_back(194.0); + cs.push_back(0.133); + errs.push_back(0.014); + as.push_back(195.0); + cs.push_back(0.05); + errs.push_back(0.019); + as.push_back(196.0); + cs.push_back(0.037); + errs.push_back(0.019); + watchers.push_back(G4NuclWatcher(77.0, as, cs, errs, true, true)); + + // Z = 81 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(184.0); + cs.push_back(0.058); + errs.push_back(0.026); + as.push_back(185.0); + cs.push_back(0.231); + errs.push_back(0.06); + as.push_back(186.0); + cs.push_back(0.723); + errs.push_back(0.1); + as.push_back(187.0); + cs.push_back(1.826); + errs.push_back(0.098); + as.push_back(188.0); + cs.push_back(3.098); + errs.push_back(0.111); + as.push_back(189.0); + cs.push_back(4.293); + errs.push_back(0.157); + as.push_back(190.0); + cs.push_back(7.506); + errs.push_back(0.227); + as.push_back(191.0); + cs.push_back(9.546); + errs.push_back(0.288); + as.push_back(192.0); + cs.push_back(11.259); + errs.push_back(0.339); + as.push_back(193.0); + cs.push_back(13.767); + errs.push_back(0.414); + as.push_back(194.0); + cs.push_back(14.706); + errs.push_back(0.442); + as.push_back(195.0); + cs.push_back(16.069); + errs.push_back(0.483); + as.push_back(196.0); + cs.push_back(18.381); + errs.push_back(0.552); + as.push_back(197.0); + cs.push_back(17.579); + errs.push_back(0.528); + as.push_back(198.0); + cs.push_back(17.002); + errs.push_back(0.51); + as.push_back(199.0); + cs.push_back(18.381); + errs.push_back(0.552); + as.push_back(200.0); + cs.push_back(16.976); + errs.push_back(0.509); + as.push_back(201.0); + cs.push_back(16.913); + errs.push_back(0.508); + as.push_back(202.0); + cs.push_back(17.262); + errs.push_back(0.518); + as.push_back(203.0); + cs.push_back(16.988); + errs.push_back(0.51); + as.push_back(204.0); + cs.push_back(15.681); + errs.push_back(0.471); + as.push_back(205.0); + cs.push_back(12.697); + errs.push_back(0.457); + as.push_back(206.0); + cs.push_back(13.517); + errs.push_back(0.406); + as.push_back(207.0); + cs.push_back(17.525); + errs.push_back(0.526); + watchers.push_back(G4NuclWatcher(81.0, as, cs, errs, true, true)); + + // Z = 82 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(187.0); + cs.push_back(0.01); + errs.push_back(0.006); + as.push_back(188.0); + cs.push_back(0.067); + errs.push_back(0.029); + as.push_back(189.0); + cs.push_back(0.276); + errs.push_back(0.094); + as.push_back(190.0); + cs.push_back(0.697); + errs.push_back(0.077); + as.push_back(191.0); + cs.push_back(1.632); + errs.push_back(0.175); + as.push_back(192.0); + cs.push_back(2.889); + errs.push_back(0.092); + as.push_back(193.0); + cs.push_back(4.243); + errs.push_back(0.132); + as.push_back(194.0); + cs.push_back(6.23); + errs.push_back(0.38); + as.push_back(195.0); + cs.push_back(7.738); + errs.push_back(0.233); + as.push_back(196.0); + cs.push_back(9.31); + errs.push_back(0.28); + as.push_back(197.0); + cs.push_back(12.186); + errs.push_back(0.733); + as.push_back(198.0); + cs.push_back(13.979); + errs.push_back(0.42); + as.push_back(199.0); + cs.push_back(15.954); + errs.push_back(0.479); + as.push_back(200.0); + cs.push_back(18.22); + errs.push_back(1.094); + as.push_back(201.0); + cs.push_back(20.362); + errs.push_back(0.611); + as.push_back(202.0); + cs.push_back(22.731); + errs.push_back(0.682); + as.push_back(203.0); + cs.push_back(28.71); + errs.push_back(1.723); + as.push_back(204.0); + cs.push_back(26.57); + errs.push_back(0.797); + as.push_back(205.0); + cs.push_back(31.451); + errs.push_back(0.944); + as.push_back(206.0); + cs.push_back(65.257); + errs.push_back(19.577); + as.push_back(207.0); + cs.push_back(63.653); + errs.push_back(9.573); + watchers.push_back(G4NuclWatcher(82.0, as, cs, errs, true, true)); + +#else + + // watchers for Au197 + P, 800 MeV + // Z = 80 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(196.0); + cs.push_back(1.54); + errs.push_back(0.2); + as.push_back(195.0); + cs.push_back(2.87); + errs.push_back(0.37); + as.push_back(194.0); + cs.push_back(3.61); + errs.push_back(0.47); + as.push_back(193.0); + cs.push_back(4.44); + errs.push_back(0.38); + as.push_back(192.0); + cs.push_back(4.22); + errs.push_back(0.47); + as.push_back(191.0); + cs.push_back(4.17); + errs.push_back(0.45); + as.push_back(190.0); + cs.push_back(4.05); + errs.push_back(0.43); + as.push_back(189.0); + cs.push_back(2.81); + errs.push_back(0.25); + as.push_back(188.0); + cs.push_back(2.14); + errs.push_back(0.24); + as.push_back(187.0); + cs.push_back(1.68); + errs.push_back(0.15); + as.push_back(186.0); + cs.push_back(1.03); + errs.push_back(0.1); + as.push_back(185.0); + cs.push_back(0.72); + errs.push_back(0.09); + as.push_back(184.0); + cs.push_back(0.47); + errs.push_back(0.05); + as.push_back(183.0); + cs.push_back(0.18); + errs.push_back(0.05); + as.push_back(182.0); + cs.push_back(0.11); + errs.push_back(0.02); + as.push_back(181.0); + cs.push_back(0.04); + errs.push_back(0.01); + as.push_back(179.0); + cs.push_back(0.008); + errs.push_back(0.01); + as.push_back(178.0); + cs.push_back(0.003); + errs.push_back(0.001); + watchers.push_back(G4NuclWatcher(80.0, as, cs, errs, true, true)); + + // Z = 77 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(171.0); + cs.push_back(0.07); + errs.push_back(0.03); + as.push_back(172.0); + cs.push_back(0.29); + errs.push_back(0.19); + as.push_back(173.0); + cs.push_back(0.82); + errs.push_back(0.22); + as.push_back(174.0); + cs.push_back(1.54); + errs.push_back(0.2); + as.push_back(175.0); + cs.push_back(3.16); + errs.push_back(0.4); + as.push_back(176.0); + cs.push_back(6.19); + errs.push_back(0.79); + as.push_back(177.0); + cs.push_back(9.58); + errs.push_back(1.22); + as.push_back(178.0); + cs.push_back(13.35); + errs.push_back(1.26); + as.push_back(179.0); + cs.push_back(17.35); + errs.push_back(1.39); + as.push_back(180.0); + cs.push_back(18.93); + errs.push_back(1.51); + as.push_back(181.0); + cs.push_back(20.13); + errs.push_back(2.59); + as.push_back(182.0); + cs.push_back(19.63); + errs.push_back(1.82); + as.push_back(183.0); + cs.push_back(19.43); + errs.push_back(1.81); + as.push_back(184.0); + cs.push_back(18.09); + errs.push_back(1.68); + as.push_back(185.0); + cs.push_back(15.71); + errs.push_back(1.46); + as.push_back(186.0); + cs.push_back(13.51); + errs.push_back(1.26); + as.push_back(187.0); + cs.push_back(11.52); + errs.push_back(1.08); + as.push_back(188.0); + cs.push_back(8.97); + errs.push_back(1.15); + as.push_back(189.0); + cs.push_back(8.05); + errs.push_back(1.03); + as.push_back(190.0); + cs.push_back(6.02); + errs.push_back(0.77); + as.push_back(191.0); + cs.push_back(5.04); + errs.push_back(0.54); + as.push_back(192.0); + cs.push_back(4.18); + errs.push_back(0.54); + as.push_back(193.0); + cs.push_back(3.54); + errs.push_back(0.45); + watchers.push_back(G4NuclWatcher(77.0, as, cs, errs, true, true)); + + // Z = 73 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(162.0); + cs.push_back(0.31); + errs.push_back(0.04); + as.push_back(163.0); + cs.push_back(1.21); + errs.push_back(0.11); + as.push_back(164.0); + cs.push_back(3.07); + errs.push_back(0.29); + as.push_back(165.0); + cs.push_back(5.32); + errs.push_back(0.5); + as.push_back(166.0); + cs.push_back(8.68); + errs.push_back(0.81); + as.push_back(167.0); + cs.push_back(11.48); + errs.push_back(1.46); + as.push_back(168.0); + cs.push_back(12.19); + errs.push_back(1.43); + as.push_back(169.0); + cs.push_back(13.1); + errs.push_back(1.4); + as.push_back(170.0); + cs.push_back(12.22); + errs.push_back(1.48); + as.push_back(171.0); + cs.push_back(9.34); + errs.push_back(1.15); + as.push_back(172.0); + cs.push_back(7.51); + errs.push_back(0.97); + as.push_back(173.0); + cs.push_back(5.55); + errs.push_back(0.71); + as.push_back(174.0); + cs.push_back(3.36); + errs.push_back(0.43); + as.push_back(175.0); + cs.push_back(2.26); + errs.push_back(0.29); + as.push_back(176.0); + cs.push_back(1.4); + errs.push_back(0.14); + as.push_back(177.0); + cs.push_back(0.76); + errs.push_back(0.08); + as.push_back(178.0); + cs.push_back(0.43); + errs.push_back(0.04); + as.push_back(179.0); + cs.push_back(0.22); + errs.push_back(0.03); + as.push_back(180.0); + cs.push_back(0.12); + errs.push_back(0.03); + as.push_back(181.0); + cs.push_back(0.06); + errs.push_back(0.02); + as.push_back(182.0); + cs.push_back(0.01); + errs.push_back(0.008); + watchers.push_back(G4NuclWatcher(73.0, as, cs, errs, true, true)); + + // Z = 61 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(133.0); + cs.push_back(0.01); + errs.push_back(0.006); + as.push_back(134.0); + cs.push_back(0.04); + errs.push_back(0.01); + as.push_back(135.0); + cs.push_back(0.1); + errs.push_back(0.018); + as.push_back(136.0); + cs.push_back(0.16); + errs.push_back(0.027); + as.push_back(137.0); + cs.push_back(0.21); + errs.push_back(0.034); + as.push_back(138.0); + cs.push_back(0.22); + errs.push_back(0.034); + as.push_back(139.0); + cs.push_back(0.22); + errs.push_back(0.031); + as.push_back(140.0); + cs.push_back(0.16); + errs.push_back(0.023); + as.push_back(141.0); + cs.push_back(0.11); + errs.push_back(0.025); + as.push_back(142.0); + cs.push_back(0.08); + errs.push_back(0.018); + as.push_back(143.0); + cs.push_back(0.04); + errs.push_back(0.005); + as.push_back(144.0); + cs.push_back(0.02); + errs.push_back(0.003); + watchers.push_back(G4NuclWatcher(61.0, as, cs, errs, true, true)); + + // Z = 79 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(178.0); + cs.push_back(0.12); + errs.push_back(0.02); + as.push_back(177.0); + cs.push_back(0.04); + errs.push_back(0.005); + as.push_back(176.0); + cs.push_back(0.01); + errs.push_back(0.002); + as.push_back(196.0); + cs.push_back(57.98); + errs.push_back(5.46); + as.push_back(195.0); + cs.push_back(41.06); + errs.push_back(3.8); + as.push_back(194.0); + cs.push_back(30.99); + errs.push_back(2.87); + as.push_back(193.0); + cs.push_back(29.38); + errs.push_back(2.72); + as.push_back(192.0); + cs.push_back(25.19); + errs.push_back(2.41); + as.push_back(191.0); + cs.push_back(23.38); + errs.push_back(2.25); + as.push_back(190.0); + cs.push_back(21.25); + errs.push_back(1.83); + as.push_back(189.0); + cs.push_back(18.76); + errs.push_back(1.55); + as.push_back(188.0); + cs.push_back(15.47); + errs.push_back(1.36); + as.push_back(187.0); + cs.push_back(13.92); + errs.push_back(1.22); + as.push_back(186.0); + cs.push_back(11.77); + errs.push_back(1.02); + as.push_back(185.0); + cs.push_back(8.61); + errs.push_back(1.09); + as.push_back(184.0); + cs.push_back(6.97); + errs.push_back(0.67); + as.push_back(183.0); + cs.push_back(5.0); + errs.push_back(0.61); + as.push_back(182.); + cs.push_back(3.42); + errs.push_back(0.29); + as.push_back(181.0); + cs.push_back(1.8); + errs.push_back(0.23); + as.push_back(180.0); + cs.push_back(0.91); + errs.push_back(0.12); + as.push_back(179.0); + cs.push_back(0.36); + errs.push_back(0.05); + watchers.push_back(G4NuclWatcher(79.0, as, cs, errs, true, true)); + + // Z = 78 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(178.0); + cs.push_back(3.04); + errs.push_back(0.39); + as.push_back(177.0); + cs.push_back(1.43); + errs.push_back(0.18); + as.push_back(176.0); + cs.push_back(0.57); + errs.push_back(0.07); + as.push_back(175.0); + cs.push_back(0.18); + errs.push_back(0.02); + as.push_back(196.0); + cs.push_back(21.4); + errs.push_back(9.68); + as.push_back(195.0); + cs.push_back(21.34); + errs.push_back(5.86); + as.push_back(194.0); + cs.push_back(21.28); + errs.push_back(2.54); + as.push_back(193.0); + cs.push_back(18.56); + errs.push_back(2.32); + as.push_back(192.0); + cs.push_back(19.99); + errs.push_back(1.87); + as.push_back(191.0); + cs.push_back(19.84); + errs.push_back(1.85); + as.push_back(190.0); + cs.push_back(19.86); + errs.push_back(1.85); + as.push_back(189.0); + cs.push_back(21.86); + errs.push_back(2.04); + as.push_back(188.0); + cs.push_back(22.05); + errs.push_back(2.06); + as.push_back(187.0); + cs.push_back(21.04); + errs.push_back(1.96); + as.push_back(186.0); + cs.push_back(21.88); + errs.push_back(2.8); + as.push_back(185.0); + cs.push_back(19.84); + errs.push_back(2.3); + as.push_back(184.0); + cs.push_back(18.4); + errs.push_back(2.36); + as.push_back(183.0); + cs.push_back(16.04); + errs.push_back(2.06); + as.push_back(182.0); + cs.push_back(15.5); + errs.push_back(1.99); + as.push_back(181.0); + cs.push_back(11.63); + errs.push_back(1.49); + as.push_back(180.0); + cs.push_back(8.16); + errs.push_back(1.05); + as.push_back(179.0); + cs.push_back(5.49); + errs.push_back(0.7); + watchers.push_back(G4NuclWatcher(78.0, as, cs, errs, true, true)); + + // Z = 72 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(176.0); + cs.push_back(0.13); + errs.push_back(0.02); + as.push_back(175.0); + cs.push_back(0.31); + errs.push_back(0.04); + as.push_back(174.0); + cs.push_back(0.56); + errs.push_back(0.07); + as.push_back(173.0); + cs.push_back(0.96); + errs.push_back(0.12); + as.push_back(172.0); + cs.push_back(1.82); + errs.push_back(0.17); + as.push_back(171.0); + cs.push_back(3.05); + errs.push_back(0.31); + as.push_back(170.0); + cs.push_back(4.6); + errs.push_back(0.52); + as.push_back(169.0); + cs.push_back(6.05); + errs.push_back(0.75); + as.push_back(168.0); + cs.push_back(8.49); + errs.push_back(0.84); + as.push_back(167.0); + cs.push_back(9.72); + errs.push_back(1.24); + as.push_back(166.0); + cs.push_back(10.46); + errs.push_back(1.33); + as.push_back(165.0); + cs.push_back(9.98); + errs.push_back(1.18); + as.push_back(164.0); + cs.push_back(8.48); + errs.push_back(0.79); + as.push_back(163.0); + cs.push_back(5.93); + errs.push_back(0.48); + as.push_back(162.0); + cs.push_back(3.83); + errs.push_back(0.36); + as.push_back(161.0); + cs.push_back(1.67); + errs.push_back(0.17); + as.push_back(160.0); + cs.push_back(0.57); + errs.push_back(0.06); + as.push_back(159.0); + cs.push_back(0.14); + errs.push_back(0.02); + watchers.push_back(G4NuclWatcher(72.0, as, cs, errs, true, true)); + + // Z = 66 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(157.0); + cs.push_back(0.14); + errs.push_back(0.02); + as.push_back(156.0); + cs.push_back(0.25); + errs.push_back(0.05); + as.push_back(155.0); + cs.push_back(0.41); + errs.push_back(0.05); + as.push_back(154.0); + cs.push_back(0.69); + errs.push_back(0.06); + as.push_back(153.0); + cs.push_back(0.91); + errs.push_back(0.09); + as.push_back(152.0); + cs.push_back(1.07); + errs.push_back(0.11); + as.push_back(151.0); + cs.push_back(1.23); + errs.push_back(0.15); + as.push_back(150.0); + cs.push_back(1.31); + errs.push_back(0.14); + as.push_back(149.0); + cs.push_back(1.15); + errs.push_back(0.11); + as.push_back(148.0); + cs.push_back(0.91); + errs.push_back(0.09); + as.push_back(147.0); + cs.push_back(0.55); + errs.push_back(0.1); + watchers.push_back(G4NuclWatcher(66.0, as, cs, errs, true, true)); + + // Z = 65 + as.resize(0); + cs.resize(0); + errs.resize(0); + as.push_back(153.0); + cs.push_back(0.21); + errs.push_back(0.03); + as.push_back(152.0); + cs.push_back(0.33); + errs.push_back(0.03); + as.push_back(151.0); + cs.push_back(0.49); + errs.push_back(0.05); + as.push_back(150.0); + cs.push_back(0.62); + errs.push_back(0.08); + as.push_back(149.0); + cs.push_back(0.77); + errs.push_back(0.1); + as.push_back(148.0); + cs.push_back(0.88); + errs.push_back(0.11); + as.push_back(147.0); + cs.push_back(0.93); + errs.push_back(0.09); + as.push_back(146.0); + cs.push_back(0.8); + errs.push_back(0.08); + as.push_back(145.0); + cs.push_back(0.54); + errs.push_back(0.1); + as.push_back(144.0); + cs.push_back(0.28); + errs.push_back(0.1); + + watchers.push_back(G4NuclWatcher(65.0, as, cs, errs, true, true)); +#endif + +} + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/src/bindingEnergy.cc b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergy.cc new file mode 100644 index 0000000000..346b6d0266 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergy.cc @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" + +G4double G4InuclSpecialFunctions::bindingEnergy(G4double A, G4double Z) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::bindingEnergy" << G4endl; + } + + // calculates the nuclei binding energy using Kummel or exact or asymptotic + // high temperature + G4double DM; + G4double AN = A - Z; + + if (AN < 0.1 || Z < 0.1) { + DM = 0.0; + + } else { + + if (A <= 256.0) { + + if (AN >= 20. && Z >= 20) { + + if (Z < 1.7 * AN && Z > 0.3 * AN) { // standard + DM = bindingEnergyKummel(A, Z); + + } else { // bad case + DM = bindingEnergyAsymptotic(A, Z); + }; + + } else { + + if (A > 60.0 || Z > 21) { // bad case + DM = bindingEnergyAsymptotic(A, Z); + + } else { // exact case + DM = bindingEnergyExact(A, Z); + }; + }; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + }; + + // G4cout << " A " << A << " Z " << Z << " DM " << DM << G4endl; + + return DM; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyAsymptotic.cc b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyAsymptotic.cc new file mode 100644 index 0000000000..4bdf6ce77e --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyAsymptotic.cc @@ -0,0 +1,49 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" + +G4double G4InuclSpecialFunctions::bindingEnergyAsymptotic(G4double A, + G4double Z) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::bindingEnergyAsymptotic" << G4endl; + } + + // calculates the nuclei binding energy + // using smooth liquid high energy formula + G4double X = (1.0 - 2.0 * Z / A) * (1.0 - 2.0 * Z / A); + G4double X1 = pow(A, 0.3333333); + G4double X2 = X1 * X1; + G4double X3 = 1.0 / X1; + G4double X4 = 1.0 / X2; + G4double DM = 17.035 * (1.0 - 1.846 * X) * A - + 25.8357 * (1.0 - 1.712 * X) * X2 * + ((1.0 -0.62025 * X4) * (1.0 - 0.62025 * X4)) - + 0.779 * Z * (Z - 1.0) * X3 * + (1.0 - 1.5849 * X4 + 1.2273 / A + 1.5772 * X4 * X4) + + 0.4328 * pow(Z, 1.333333) * X3 * + (1.0 - 0.57811 * X3 - 0.14518 * X4 + 0.496 / A); + + return DM; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyExact.cc b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyExact.cc new file mode 100644 index 0000000000..4d5ffce3f9 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyExact.cc @@ -0,0 +1,321 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" + +#include "g4std/iostream" + +G4double G4InuclSpecialFunctions::bindingEnergyExact(G4double A, + G4double Z) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::bindingEnergyExact" << G4endl; + } + + // calculates the nuclei binding energy using experimental data or + // asymptotic mass formula if it's impossible to use exact + + // data for precise binding energies + const G4double DH[4] = {2.225, 8.482, 5.58, 5.79}; + const G4double DHE[6] = {7.718, 28.297, 27.41, 29.268, 28.826, 31.36}; + const G4double DLI[8] = {4.81, 26.33, 31.995, 39.246, 41.279, + 45.331, 43.03, 43.13}; + const G4double DBE[8] = {26.926, 37.602, 56.502, 58.167, 64.979, + 65.482, 68.78, 66.08}; + const G4double DB[9] = {24.65, 34.739, 56.317, 64.752, 76.208, + 79.578, 84.458, 84.86, 87.76}; + const G4double DC[9] = {39.038, 60.319, 73.444, 92.166, + 97.112, 105.289, 106.507, 110.759, 114.96}; + const G4double DN[9] = {57.86, 74.039, 94.109, 104.663, + 115.496, 117.986, 123.87, 126.539, 131.54}; + const G4double DOX[9] = {75.567, 98.735, 111.954, 127.624, + 131.766, 139.813, 143.77, 151.374, 152.57}; + const G4double DF[8] = {96.37, 111.412, 128.225, 137.375, 147.806, + 154.407, 162.51, 167.707}; + const G4double DNE[8] = {112.92, 132.146, 143.785, 160.65, 167.412, + 177.778, 182.974, 191.844}; + const G4double DNA[9] = {131.78, 145.98, 163.081, 174.152, 186.571, + 193.53, 202.541, 208.77, 215.91}; + const G4double DMG[9] = {134.53, 149.204, 168.571, 181.732, 198.262, 205.594, + 216.688, 223.131, 231.635}; + const G4double DAL[9] = {149.36, 168.71, 183.597, 200.532, + 211.901, 224.959, 232.684, 242.12, 247.87}; + const G4double DSI[9] = {172.0, 187.02, 206.056, 219.366, + 236.544, 245.018, 255.627, 262.216, 271.431}; + const G4double DP[8] = {205.98, 221.424, 239.292, + 250.617, 262.925, 270.861, 280.966, 287.53}; + const G4double DS[10] = {224.71, 243.696, 256.701, + 271.789, 280.432, 291.847, 298.835, 308.727, + 313.04, 321.068}; + const G4double DCL[10] = {244.12, 258.255, 274.066, 285.574, 298.22, + 306.801, 317.112, 323.222, 331.296, 337.1}; + const G4double DAR[10] = {261.68, 278.748, 291.474, 306.727, 315.515, + 327.354, 333.952, 343.822, 349.921, 359.35}; + const G4double DK[13] = {278.89, 293.031, 308.584, 320.649, 333.734, + 341.534, 351.631, 359.165, 368.798, 376.092, + 384.97, 391.857, 400.207}; + + // const G4double DCA[3] = {296.23, 313.098, 326.43}; + const G4double DSC = 326.957; + G4double DM; + G4double AN = A - Z; + G4int IZ = G4int(Z + 0.1); + G4int IN = G4int(AN + 0.1); + + switch (IZ) { + + case 1: // H + + if (IN <= 4) { + DM = DH[IN - 1]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); //::: clean repetitive structure + }; + + break; + + case 2: // He + + if (IN <= 6) { + DM = DHE[IN - 1]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 3: // Li + + if (IN <= 8) { + DM = DLI[IN - 1]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 4: // Be + + if (IN <= 9 && IN >= 2) { + DM = DBE[IN - 2]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 5: // B + + if (IN <= 10 && IN >= 2) { + DM = DB[IN - 2]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 6: // C + if (IN <= 11 && IN >= 3) { + DM = DC[IN - 3]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 7: // N + if (IN <= 12 && IN >= 4) { + DM = DN[IN - 4]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 8: // O + if (IN <= 13 && IN >= 5) { + DM = DOX[IN - 5]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 9: // F + if (IN <= 13 && IN >= 6) { + DM = DF[IN - 6]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 10: // Ne + if (IN <= 14 && IN >= 7) { + DM = DNE[IN - 7]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 11: // Na + if (IN <= 16 && IN >= 8) { + DM = DNA[IN - 8]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 12: // Mg + + if (IN <= 16 && IN >= 8) { + DM = DMG[IN - 8]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 13: // Al + + if (IN <= 17 && IN >= 9) { + DM = DAL[IN - 9]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 14: // Si + + if (IN <= 18 && IN >= 10) { + DM = DSI[IN - 10]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 15: // P + + if (IN <= 19 && IN >= 12) { + DM = DP[IN - 12]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 16: // S + + if (IN <= 22 && IN >= 13) { + DM = DS[IN - 13]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 17: // Cl + + if (IN <= 23 && IN >= 14) { + DM = DCL[IN - 14]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 18: // Ar + + if (IN <= 24 && IN >= 15) { + DM = DAR[IN - 15]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 19: // K + + if (IN <= 28 && IN >= 16) { + DM = DK[IN - 16]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 20: // Ca + + if (IN >= 17) { + DM = DK[IN - 17]; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + case 21: // Sc + + if (IN == 19) { + DM = DSC; + + } else { + DM = bindingEnergyAsymptotic(A, Z); + }; + + break; + + default: + + G4cout << " DM(A, Z): wrong exact case: IN " << IN + << " IZ " << IZ << G4endl; + + DM = bindingEnergyAsymptotic(A, Z); + }; + + return DM; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc new file mode 100644 index 0000000000..e4c3ace0c4 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc @@ -0,0 +1,322 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" + +G4double G4InuclSpecialFunctions::bindingEnergyKummel(G4double A, + G4double Z) { + G4int verboseLevel = 2; + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::bindingEnergyKummel" << G4endl; + } + + // calculates the nuclei binding energy using Kummel mass formula + +// data for Kummel mass formula + const G4double ASH[6] = {20.0, 28.0, 50.0, 82.0, 126.0, 184.0}; + const G4double OMN[3] = {2.511464e0, 7.640294e-2, 2.618317e-2}; + const G4double OMP[3] = {2.511464e0, 7.640294e-2, 6.243892e-3}; + const G4double TMET[5] = {9.477193e0, 7.166809e-1, 1.2169e-1, 4.07179e-2, 2.927847e-2}; + const G4double TMET1[4] = {-4.775384e-2, 5.880883e-5, -1.98964e-3, 3.427961e-6}; + + const G4double BET[5] = {1.535628e4, 1.502538e4, 1.481831e4, 1.459232e4, 1.40664e4}; + + const G4double SHN[5] = {8.0, 22.0, 32.0, 44.0, 58.0}; + + const G4double TNUN[5] = {8.728778e2, 8.45789e1, 9.210738e1, 5.98e1, 3.724e1}; + + const G4double TNUP[5] = {8.728778e2, 8.45789e1, 3.74e1, 5.42e1, 3.724e1}; + + const G4double TKSN[5] = {3.34582e1, 3.858216e0, -1.489218e-1, -9.2e-1, -6.36e-1}; + + const G4double TKSP[5] = {3.34582e1, 3.858216e0, 7.2e-1, -8.2e-1, -6.36e-1}; + + const G4double RON[5] = {-6.441735e3, -5.422058e3, -3.722645e3, -2.437172e4, -2.645867e4}; + + const G4double ROP[5] = {-6.75601e3, -5.877588e3, -3.216382e4, -3.010688e4, -2.645867e4}; + + const G4double SINGM[4] = {-3.578531e0, -2.6911e0, -7.487347e-1, 0.0}; + + const G4double C[2] = {6.1e3, 8.31e3}; + + const G4double AKU = 6.04122e5; + + const G4double US = 1.661835e4; + + const G4double UC = 6.218614e2; + + const G4double UT = 1.983151e4; + + const G4double SIPG = -2.067547e0; + + const G4double TAU = 2.231241e0; + + const G4double AL0 = 0.151; + + const G4double USB = 1.95114e4; + + const G4double UCB = 753.3; + + // const G4double ALD = 15.4941; + // const G4double ALD1 = 17.9439; + + // const G4double C3 = 0.7059; + + //const G4double C4 = 1.21129; + + // const G4double PKLD = 1.7826; + + const G4double DMU = 3.132902e4; + + G4double DM; + + G4double AN = A - Z; + + G4int INS = 0; + G4double ANE = 0.0; + G4double HNE = 0.0; + G4int i(0); + + for (i = 1; i < 6; i++) { + + if (AN <= ASH[i]) { + ANE = AN - ASH[i - 1]; + HNE = ASH[i] - AN; + INS = i - 1; + + break; + }; + }; + + G4int IPS = 0; + + G4double APR = 0.0; + + G4double HPR = 0.0; + + for (i = 1; i < 6; i++) { + + if (Z <= ASH[i]) { + APR = Z - ASH[i - 1]; + HPR = ASH[i] - Z; + IPS = i - 1; + + break; + }; + }; + + G4double PPHN = ANE * HNE; + G4double PPHZ = APR * HPR; + + // omega terms + G4double OMT = 0.0; + + if (INS <= 2) OMT += OMN[INS] * PPHN; + + if (IPS <= 2) OMT += OMP[IPS] * PPHZ; + + if (verboseLevel > 3) { + G4cout << " OMT " << OMT << G4endl; + } + + // theta term 1 + + G4double TET = 0.0; + + if (verboseLevel> 3) { + G4cout << " PPHN " << PPHN << " PPHZ " << PPHZ << G4endl; + G4cout << " INS " << INS << " IPS " << IPS << G4endl; + } + + if (PPHN > 0.5 && PPHZ > 0.5) { + G4int IT = 0; + + if ((INS + 1) * (IPS + 1) > 0) { + + if (INS - IPS == 1) { + + if (INS < 5) { + IT = INS; + + } else { + IT = -1; + }; + + } else { + IT = -1; + }; + }; + + if (verboseLevel > 3){ + G4cout << " IT " << IT << G4endl; + } + + if (IT >= 0) TET = TMET[IT] * PPHN * PPHZ; + }; + + if (verboseLevel> 3) { + G4cout << " TET " << TET << G4endl; + } + + // theta term 2 + G4double TET1 = 0.0; + + if (IPS == 2) { + TET1 += TMET1[0] * PPHZ * PPHZ; + + if (INS == 3) TET1 += TMET1[1] * PPHN * PPHZ * HNE * HPR; + }; + + if (INS == 3) { + + G4double TVSP = PPHN * PPHN * HNE; + TET1 += TMET1[2] * TVSP; + TET1 += TMET1[3] * TVSP * PPHN; + }; + + if (verboseLevel > 3) { + G4cout << " TET1 " << TET1 << G4endl; + } + + // betta, nu, ksy terms + G4double TBET = 0.0; + + if (INS != 0) { + + for (G4int i = 0; i <= INS - 1; i++) TBET += BET[i] * SHN[i]; + }; + TBET += BET[INS] * ANE; + + if (IPS != 0) { + + for (G4int i = 0; i <= IPS - 1; i++) TBET += BET[i] * SHN[i]; + }; + TBET += BET[IPS] * APR; + + if (verboseLevel> 3) { + G4cout << " TBET " << TBET << G4endl; + } + + G4double TBET1 = 0.0; + + if (PPHN > 0.0 || PPHZ > 0.0) + TBET1 = 0.5 * ((TNUN[INS] + TKSN[INS] * ANE) * PPHN + + (TNUP[IPS] + TKSP[IPS] * APR) * PPHZ); + TBET -= TBET1; + + if (verboseLevel > 3) { + G4cout << " TBET1 " << TBET1 << G4endl; + } + + // deformation + G4double TDEF = 0.0; + G4double X = Z * Z / A; + G4double X1 = pow(A, 0.3333333); + G4double X2 = X1 * X1; + + if (IPS != INS && INS >= 3 && IPS >= 2) { + G4double X3 = 2.0 * USB - UCB * X; + G4double DNZ = 0.0; + + if (!(INS < 3 || (INS - IPS) != 1)) DNZ = C[INS - 3]; + DNZ = TBET1 - DNZ; + G4double X4 = 0.2 * X2 * AL0 * AL0 * X3; + + if (DNZ > X4) { + G4double X5 = USB + X * UCB; + G4double X6 = log(DNZ / X4); + G4double X7 = sqrt(X6); + + // G4double ALM = AL0 * (X7 + 0.143 * AL0 * X5 / X3); + TDEF = -X4 * (X6 + 1.0) + DNZ + 0.038 * X2 * pow(AL0 * X7, 3.0) * X5; + }; + }; + + if (verboseLevel > 3) { + G4cout << " TDEF " << TDEF << G4endl; + } + + // pairing + G4double TPE = 0.0; + G4double TPEN = 0.0; + G4double TPEP = 0.0; + G4double DN0 = 0.0; + G4double DZ0 = 0.0; + G4double AV = 2.0 * int(0.5 * AN + 0.1); + + if (AN > AV) DN0 = 1.0; + + AV = 2.0 * int(0.5 * Z + 0.1); + + if (Z > AV) DZ0 = 1.0; + + if (DN0 * DZ0 > 0.0) TPE = DMU / A; + + if (DN0 + DZ0 > 0.0) { + + if (DN0 > 0.0) { + TPEN = RON[INS] / X1; + + if (INS >= 1) { + + if (AN >= 82.0) { + TPEN /= X1; + + if (INS == 3) { + G4double PN = 0.0; + G4double HN = 0.0; + + if (AN > 90.0) PN = AN - 90.0; + + if (AN < 116.0) HN = 116.0 - AN; + TPEN += TAU * PN * HN; + }; + TPEN += SINGM[INS - 1] * PPHN; + }; + }; + }; + + if (DZ0 > 0.0) { + TPEP = ROP[IPS] / X1; + + if (IPS == 1) TPEP += SIPG * PPHZ; + + if (IPS > 1) TPEP = TPEP / X1; + + }; + }; + TPE += TPEN + TPEP; + + if (verboseLevel > 3) { + G4cout << " TPE " << TPE << " TPEN " << TPEN << " TPEP " << TPEP << G4endl; + } + + // collect everything + DM = (AKU - US * X2 + Z * (Z - 1.0) / X1 * (OMT - UC) - UT / A * + (AN - Z) * (AN - Z) + TET + TET1 + TBET + TDEF + TPE) * 0.001; + + if (verboseLevel > 3) { + G4cout << " kummel " << G4endl; + } + + return DM; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc b/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc new file mode 100644 index 0000000000..60f47f21c5 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" + +G4double G4InuclSpecialFunctions::nucleiLevelDensity(G4double a) { + G4int verboseLevel = 2; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::nucleiLevelDensity" << G4endl; + } + + const G4double NLD[226] = { + // 20 - 29 + 3.94, 3.84, 3.74, 3.64, 3.55, 4.35, 4.26, 4.09, 3.96, 4.18, + // 30 - 39 + 4.39, 4.61, 4.82, 4.44, 4.44, 4.43, 4.42, 5.04, 5.66, 5.8, + // 40 - 49 + 5.95, 5.49, 6.18, 7.11, 6.96, 7.2, 7.73, 6.41, 6.85, 6.77, + // 50 - 59 + 6.91, 7.3, 7.2, 6.86, 8.06, 7.8, 7.82, 8.41, 8.13, 7.19, + // 60 - 69 + 8.35, 8.13, 8.02, 8.93, 8.9, 9.7, 9.65, 10.55, 9.38, 9.72, + // 70 - 79 + 10.66, 11.98, 12.76, 12.1, 12.86, 13.0, 12.81, 12.8, 12.65, 12.0, + // 80 - 89 + 12.69, 14.05, 13.33, 13.28, 13.22, 13.17, 8.66, 11.03, 10.4, 13.47, + // 90 - 99 + 10.17, 12.22, 11.62, 12.95, 13.15, 13.57, 12.87, 16.2, 14.71, 15.69, + // 100 - 109 + 14.1, 18.56, 16.22, 16.7, 17.13, 17.0, 16.86, 16.2, 15.61, 16.8, + // 110 - 119 + 17.93, 17.5, 16.97, 17.3, 17.6, 15.78, 16.8, 17.49, 16.03, 15.08, + // 120 - 129 + 16.74, 17.74, 17.43, 18.1, 17.1, 19.01, 17.02, 17.0, 17.02, 18.51, + // 130 - 139 + 17.2, 16.8, 16.97, 16.14, 16.91, 17.69, 15.5, 14.56, 14.35, 16.5, + // 140 - 149 + 18.29, 17.8, 17.05, 21.31, 19.15, 19.5, 19.78, 20.3, 20.9, 21.9, + // 150 - 159 + 22.89, 25.68, 24.6, 24.91, 23.24, 22.9, 22.46, 21.98, 21.64, 21.8, + // 160 - 169 + 21.85, 21.7, 21.69, 23.7, 21.35, 23.03, 20.66, 21.81, 20.77, 22.2, + // 170 - 179 + 22.58, 22.55, 21.45, 21.16, 21.02, 20.87, 22.09, 22.0, 21.28, 23.05, + // 180 - 189 + 21.7, 21.18, 22.28, 23.0, 22.11, 23.56, 22.83, 24.88, 22.6, 23.5, + // 190 - 199 + 23.89, 23.9, 23.94, 21.16, 22.3, 21.7, 21.19, 20.7, 20.29, 21.32, + // 200 - 209 + 19.0, 17.93, 17.85, 15.7, 13.54, 11.9, 10.02, 10.48, 10.28, 11.72, + // 210 - 219 + 13.81, 14.7, 15.5, 16.3, 17.2, 18.0, 18.9, 19.7, 20.6, 21.4, + // 220 - 229 + 22.3, 23.1, 24.0, 24.8, 25.6, 26.5, 27.3, 28.2, 29.0, 29.9, + // 230 - 239 + 30.71, 30.53, 31.45, 29.6, 30.2, 30.65, 30.27, 29.52, 30.08, 29.8, + // 240 - 245 + 29.87, 30.25, 30.5, 29.8, 29.17, 28.67}; + + G4int ia = G4int(a + 0.1) - 20; + + if (ia > 0) { + return NLD[ia]; + + } else { + return 0.1 * a; + }; +} diff --git a/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc b/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc new file mode 100644 index 0000000000..97889eb8cc --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc @@ -0,0 +1,130 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4InuclSpecialFunctions.hh" + +G4std::pair, G4std::vector > G4InuclSpecialFunctions::paraMaker(G4double Z) { + G4int verboseLevel = 1; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::paraMaker" << G4endl; + } + + // calculates the coefficients for the phenomenological formulas for + // coulumb barier, c.s. etc needed for evaporators + + const G4double Z1[5] = {10.0, 20.0, 30.0, 50.0, 70.0}; + const G4double AP[5] = {0.42, 0.58, 0.68, 0.77, 0.80}; + const G4double CP[5] = {0.50, 0.28, 0.20, 0.15, 0.10}; + const G4double AA[5] = {0.68, 0.82, 0.91, 0.97, 0.98}; + const G4double CA[5] = {0.10, 0.10, 0.10, 0.08, 0.06}; + G4std::vector AK(6); + G4std::vector CPA(6); + AK[0] = 0.0; + CPA[0] = 0.0; + G4double AK2 = 0.0; + G4double CP2 = 0.0; + G4double AK6 = 0.0; + G4double CP6 = 0.0; + + if (Z < 10.0) { + AK2=0.42; + CP2=0.5; + AK6=0.68; + CP6=0.1; + + } else if(Z > 70.0) { + AK6=0.98; // normal + CP6=0.06; + AK2=0.8; + CP2=0.1; + // AK6=1.1; // modified + // CP6=0.0; + + } else { + + for (G4int i = 1; i < 5; i++) { + + if (Z <= Z1[i]) { + G4double Z2 = 1.0 / (Z1[i] - Z1[i - 1]); + AK2 = ((AP[i] - AP[i - 1]) * Z + AP[i - 1] * Z1[i] - AP[i] * Z1[i - 1]) * Z2; + CP2 = ((CP[i] - CP[i - 1]) * Z + CP[i - 1] * Z1[i] - CP[i] * Z1[i - 1]) * Z2; + AK6 = ((AA[i] - AA[i - 1]) * Z + AA[i - 1] * Z1[i] - AA[i] * Z1[i - 1]) * Z2; + CP6 = ((CA[i] - CA[i - 1]) * Z + CA[i - 1] * Z1[i] - CA[i] * Z1[i - 1]) * Z2; + + break; + }; + }; + }; + + AK[1] = AK2; + AK[5] = AK6; + CPA[1] = CP2; + CPA[5] = CP6; + AK[2] = AK2 + 0.06; + CPA[2] = CP2 * 0.5; + AK[3] = AK2 + 0.12; + CPA[3] = CP2 / 3.0; + AK[4] = AK6 - 0.06; + CPA[4] = 4.0 * CP6 / 3.0; + + return G4std::pair, G4std::vector >(AK, CPA); +} + +G4std::pair G4InuclSpecialFunctions::paraMakerTruncated(G4double Z) { + G4int verboseLevel = 1; + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclSpecialFunctions::paraMakerTruncated" << G4endl; + } + + // truncated version of the previous one + const G4double Z1[5] = {10.0, 20.0, 30.0, 50.0, 70.0}; + const G4double AP[5] = {0.42, 0.58, 0.68, 0.77, 0.8}; + const G4double CP[5] = {0.5, 0.28, 0.2, 0.15, 0.1}; + G4double AK2; + G4double CP2; + + if (Z < 10.0) { + AK2=0.42; + CP2=0.5; + + } else if (Z > 70.0) { + AK2=0.8; + CP2=0.1; + + } else { + + for (G4int i = 1; i < 5; i++) { + + if (Z < Z1[i]) { + G4double Z2 = 1.0 / (Z1[i] - Z1[i - 1]); + AK2 = ((AP[i] - AP[i - 1]) * Z + AP[i - 1] * Z1[i] - AP[i] * Z1[i - 1]) * Z2; + CP2 = ((CP[i] - CP[i - 1]) * Z + CP[i - 1] * Z1[i] - CP[i] * Z1[i - 1]) * Z2; + + break; + }; + }; + }; + + return G4std::pair(AK2, CP2); +} diff --git a/source/processes/hadronic/models/cascade/doc/GNUmakefile b/source/processes/hadronic/models/cascade/doc/GNUmakefile new file mode 100644 index 0000000000..b1ce498936 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/GNUmakefile @@ -0,0 +1,12 @@ +all: # ::: + grep ":::" GNUmakefile + +man: # ::: Make manual. + make clean; latex manCascade; bibtex manCascade; latex manCascade; latex manCascade; dvips manCascade.dvi -o manCascade.ps; gv manCascade.ps + +pub: # ::: Make publication. + make clean; latex pubCascade; bibtex pubCascade; latex pubCascade; latex pubCascade; dvips pubCascade.dvi -o pubCascade.ps; gv pubCascade.ps + + +clean: # ::: clean directory + rm -f \#*.*\# \#*\# \#* .*~ .#* *.*~ *~ *.o; rm -f core tmp.txt *.blg *.bbl *.toc *.log *.aux *.dvi \ No newline at end of file diff --git a/source/processes/hadronic/models/cascade/doc/README b/source/processes/hadronic/models/cascade/doc/README new file mode 100644 index 0000000000..c4c4732e50 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/README @@ -0,0 +1,4 @@ +Main document is manCascade.tex. +Create documentation with 'gmake' or +full release (ps, html and pdf-versions) +with 'gmake release'. diff --git a/source/processes/hadronic/models/cascade/doc/espcrc2.sty b/source/processes/hadronic/models/cascade/doc/espcrc2.sty new file mode 100644 index 0000000000..0b1b8a2a1d --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/espcrc2.sty @@ -0,0 +1,226 @@ +%%%%%%%%%% espcrc2.sty %%%%%%%%%% +% C(amera) R(eady) C(opy) document-style option. (two-column format). +% Version 2.6: 24 November 1994 +% To be used with LaTeX version 2.09 (14 January 1992 or later), or LaTeX2e. +% +% +% Copyright (C) 1992 by Elsevier Science Publishers. All rights reserved. +% +% IMPORTANT NOTICE: +% +% You are not allowed to change this file. You may however copy this file +% to a file with a different name and then change the copy. +% +% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED +% to take money for the distribution or use of this file (or a changed +% version) except for a nominal charge for copying etc. +% +% You are allowed to distribute this file under the condition that it is +% distributed together with espcrc2.tex. +% +% If you receive only this file from someone, complain! +% +% +% +% Usage: \documentstyle[twoside,espcrc2]{article} +% +\def\fileversion{v2.6} +\def\filedate{24 November 1993} + +\typeout{Document-style option `espcrc2' \fileversion \space\space + <\filedate>} + +% SIDE MARGINS: +\oddsidemargin -4mm % Left margin on odd-numbered pages. +\evensidemargin 4mm % Left margin on even-numbered pages. + +% VERTICAL SPACING: +\topmargin 16mm % Nominal distance from top of page to top + % of box containing running head. +\headheight 13mm % No running headline, and no +\headsep 21pt % space between running headline and text. +\footskip 30pt % Baseline-baseline distance between + % running footline and last line of text. + +% DIMENSION OF TEXT: +\textheight 202mm % Height of text part of page +\textwidth 160mm % Width of text part of page, i.e of line + +\columnsep 10mm % Horizontal space between columns +\columnseprule 0pt % No vertical rule between columns + +% PARAGRAPHING +\parskip 0pt % No extra vertical space between paragraphs. +\parindent 1em % Width of paragraph indentation. + +% SECTIONAL UNITS: +\newdimen\@bls % \@b(ase)l(ine)s(kip) +\@bls=\baselineskip % \@bls ~= \baselineskip for \normalsize +\advance\@bls -1ex % (fudge term) +\newdimen\@eps % +\@eps=0.0001pt % \eps = very small positive quantity + +\def\section{\@startsection{section}{1}{\z@} + {1.5\@bls plus 0.5\@bls}{1\@bls}{\normalsize\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@} + {1\@bls plus 0.25\@bls}{\@eps}{\normalsize\bf}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@} + {1\@bls plus 0.25\@bls}{\@eps}{\normalsize\bf}} +\def\paragraph{\@startsection{paragraph}{4}{\parindent} + {1\@bls plus 0.25\@bls}{0.5em}{\normalsize\bf}} +\def\subparagraph{\@startsection{subparagraph}{4}{\parindent} + {1\@bls plus 0.25\@bls}{0.5em}{\normalsize\bf}} + +\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth + \def\@svsec{}\else + \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname.\hskip0.5em}\fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6\relax + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% + \endgroup + \csname #1mark\endcsname{#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi #7}% + \else + \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname + {#7}\addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi #7}}% + \fi \@xsect{#5}} + +% FIGURES AND TABLES +\long\def\@makefigurecaption#1#2{\vskip 10mm #1. #2\par} + +\long\def\@maketablecaption#1#2{\hbox to \hsize{\parbox[t]{\hsize} + {#1 \\ #2}}\vskip 0.3ex} + +\def\fnum@figure{Figure \thefigure} +\def\figure{\let\@makecaption\@makefigurecaption \@float{figure}} +\@namedef{figure*}{\let\@makecaption\@makefigurecaption \@dblfloat{figure}} + +% \def\fnum@table{Table \thetable} +\def\table{\let\@makecaption\@maketablecaption \@float{table}} +\@namedef{table*}{\let\@makecaption\@maketablecaption \@dblfloat{table}} + +\floatsep 10mm plus 4pt minus 4pt % Space between adjacent floats moved + % to top or bottom of text page. +\textfloatsep=\floatsep % Space between main text and floats + % at top or bottom of page. +\intextsep=\floatsep % Space between in-text figures and + % text. + +% FOOTNOTE +\long\def\@makefntext#1{\parindent 1em\noindent\hbox{${}^{\@thefnmark}$}#1} + +% EQUATION +\mathindent=0em + +% TITLE +\def\maketitle{\begingroup % Initialize generation of front-matter +% \let\thanks\@gobble + \def\thefootnote{\fnsymbol{footnote}}% + \newpage \global\@topnum\z@ + \@maketitle \@thanks + \endgroup + \let\maketitle\relax \let\@maketitle\relax + \gdef\@thanks{}\let\thanks\relax + \gdef\@address{}\gdef\@author{}\gdef\@title{}\let\address\relax} + +\def\justify@on{\let\\=\@normalcr + \leftskip\z@ \@rightskip\z@ \rightskip\@rightskip} + +\newbox\fm@box % Box to capture front-matter in + +\def\@maketitle{% % Actual formatting of \maketitle + \global\setbox\fm@box=\vbox\bgroup + \vskip 8mm % 930715: 8mm white space above title + \raggedright % Front-matter text is ragged right + \hyphenpenalty\@M % and is not hyphenated. + {\Large \@title \par} % Title set in larger font. + \vskip\@bls % One line of vertical space after title. + {\normalsize % each author set in the normal + \@author \par} % typeface size + \vskip\@bls % One line of vertical space after author(s). + \@address % all addresses + \egroup + \twocolumn[% % Front-matter text is over 2 columns. + \unvbox\fm@box % Unwrap contents of front-matter box + \vskip\@bls % add 1 line of vertical space, + \unvbox\abstract@box % unwrap contents of abstract boxes, + \vskip 2pc]} % and add 2pc of vertical space + +\newcounter{address} +\def\theaddress{\alph{address}} +\def\@makeadmark#1{\hbox{$^{\rm #1}$}} + +\def\address#1{\addressmark\begingroup + \xdef\@tempa{\theaddress}\let\\=\relax + \def\protect{\noexpand\protect\noexpand}\xdef\@address{\@address + \protect\addresstext{\@tempa}{#1}}\endgroup} +\def\@address{} + +\def\addressmark{\stepcounter{address}% + \xdef\@tempb{\theaddress}\@makeadmark{\@tempb}} + +\def\addresstext#1#2{\leavevmode \begingroup + \raggedright \hyphenpenalty\@M \@makeadmark{#1}#2\par \endgroup + \vskip\@bls} + +% ABSTRACT: +\newbox\abstract@box % Box to capture abstract in + +\def\abstract{% + \global\setbox\abstract@box=\vbox\bgroup + \small\rm + \ignorespaces} +\def\endabstract{\par \egroup} + +% BIBLIOGRAPHY +\def\thebibliography#1{\section*{REFERENCES}\list{\arabic{enumi}.} + {\settowidth\labelwidth{#1.}\leftmargin=1.67em + \labelsep\leftmargin \advance\labelsep-\labelwidth + \itemsep\z@ \parsep\z@ + \usecounter{enumi}}\def\makelabel##1{\rlap{##1}\hss}% + \def\newblock{\hskip 0.11em plus 0.33em minus -0.07em} + \sloppy \clubpenalty=4000 \widowpenalty=4000 \sfcode`\.=1000\relax} + +% Collapse citation numbers to ranges. +\newcount\@tempcntc +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do + {\@ifundefined + {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea + \def\@citea{,\penalty\@m\ }{\bf ?}\@warning + {Citation `\@citeb' on page \thepage \space undefined}}% + {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% + \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne + \@citea\def\@citea{,\penalty\@m} + \hbox{\csname b@\@citeb\endcsname}% + \else + \advance\@tempcntb\@ne + \ifnum\@tempcntb=\@tempcntc + \else\advance\@tempcntb\m@ne\@citeo + \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} + +\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else\@citea + \def\@citea{,\penalty\@m}% + \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else + {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else +\def\@citea{--}\fi + \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} + +% PAGE STYLES +\def\ps@crcplain{\let\@mkboth\@gobbletwo + \def\@oddhead{\reset@font{\sl\rightmark}\hfil \rm\thepage}% + \def\@evenhead{\reset@font\rm \thepage\hfil\sl\leftmark}% + \let\@oddfoot\@empty + \let\@evenfoot\@oddfoot} + +% INITIALIZATION +% \twocolumn % Formatting is in 2 columns, with +\sloppy % paragraphs that can be loosely set, +\emergencystretch=1pc % (with 1 pc extra for emergencies), +\flushbottom % and pages of equal length +\ps@crcplain % modified 'plain' page style + diff --git a/source/processes/hadronic/models/cascade/doc/evaporationUml.eps b/source/processes/hadronic/models/cascade/doc/evaporationUml.eps new file mode 100644 index 0000000000..d49d0601d6 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/evaporationUml.eps @@ -0,0 +1,852 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 39.0 40.0 564.0 765.0 +%%Creator: miheikki using rose_exe +%%CreationDate: Tue Jul 24 18:31:00 2001 +%%Title: evaporationUml.eps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +[{ +%%BeginFeature: *InputSlot AUTO +6 statusdict /setpapertray get exec +%%EndFeature +} stopped cleartomark +[{ +%%BeginFeature: *PageRegion LETTER +LETTER +%%EndFeature +} stopped cleartomark +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +904 556 1527 723 FillRectangle +904 556 1527 723 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4EquilibriumEvaporator) 602 -0.00 915 602 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +904 616 1527 723 FillRectangle +904 616 1527 723 RectangleOutLine +904 639 1527 723 FillRectangle +904 639 1527 723 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +889 114 1414 269 FillRectangle +889 114 1414 269 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4VExitationHandler) 497 -0.00 903 160 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +889 222 1414 269 FillRectangle +889 222 1414 269 RectangleOutLine +889 245 1414 269 FillRectangle +889 245 1414 269 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 982 211 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 1203 555 +1163 270 LineTo +[0 255 255 255 0 <>] UpdateBrush +1149 332 1193 326 1163 270 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +268 999 974 999 974 791 938 755 268 755 5 Polygon +pop pop 268 755 +938 755 LineTo +974 791 LineTo +974 999 LineTo +268 999 LineTo +268 755 LineTo +pop pop 938 755 +938 791 LineTo +974 791 LineTo +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(evaporation and gamma ) 576 -0.00 280 796 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(de-exitation should be ) 602 -0.00 280 842 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(separated, but can locate ) 680 -0.00 280 888 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(in same folder.) 392 -0.00 280 934 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1566 130 2017 285 FillRectangle +1566 130 2017 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4FragmentVector) 419 -0.00 1582 176 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1566 238 2017 285 FillRectangle +1566 238 2017 285 RectangleOutLine +1566 261 2017 285 FillRectangle +1566 261 2017 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 1622 227 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1894 322 2201 477 FillRectangle +1894 322 2201 477 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4Fragment) 262 -0.00 1917 368 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1894 430 2201 477 FillRectangle +1894 430 2201 477 RectangleOutLine +1894 453 2201 477 FillRectangle +1894 453 2201 477 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 1902 419 TextOut +(\)) 26 -0.00 2143 419 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1591 623 1960 784 FillRectangle +1591 623 1960 784 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4Fissioner) 288 -0.00 1632 669 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1591 731 1960 784 FillRectangle +1591 731 1960 784 RectangleOutLine +1591 754 1960 784 FillRectangle +1591 754 1960 784 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from cascade\)) 366 -0.00 1599 720 TextOut +(\)) 26 -0.00 1902 720 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1657 1077 2145 1077 2145 969 2109 933 1657 933 5 Polygon +pop pop 1657 933 +2109 933 LineTo +2145 969 LineTo +2145 1077 LineTo +1657 1077 LineTo +1657 933 LineTo +pop pop 2109 933 +2109 969 LineTo +2145 969 LineTo +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(here or in ) 288 -0.00 1669 974 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(pre-equilibrium) 392 -0.00 1669 1020 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[1 0 128 128 128] UpdatePen +pop pop 1872 932 +1810 785 LineTo +[0 1 128 128 128] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +(File: /afs/cern.ch/user/m/miheikki/public/html/inucl/doc/inucl.mdl Tue Jul 24 18:31:00 2001 Class ) 2188 -0.00 166 3089 TextOut +(Diagram: evaporation / Main Page 1) 736 -0.00 166 3126 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file diff --git a/source/processes/hadronic/models/cascade/doc/hetc.eps b/source/processes/hadronic/models/cascade/doc/hetc.eps new file mode 100644 index 0000000000..9a615bd307 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/hetc.eps @@ -0,0 +1,670 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 13.0 40.0 575.0 776.0 +%%Creator: miheikki using rose_exe +%%CreationDate: Fri Jun 8 10:08:56 2001 +%%Title: hetc.eps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +[{ +%%BeginFeature: *InputSlot AUTO +6 statusdict /setpapertray get exec +%%EndFeature +} stopped cleartomark +[{ +%%BeginFeature: *PageRegion LETTER +LETTER +%%EndFeature +} stopped cleartomark +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +186 122 485 325 FillRectangle +186 122 485 325 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +186 68 306 122 FillRectangle +[0 255 255 204 0 <>] UpdateBrush +pop pop 186 122 +186 68 LineTo +306 68 LineTo +306 122 LineTo +[0 255 255 204 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(cascade) 183 -0.00 244 163 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +594 178 973 365 FillRectangle +594 178 973 365 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +594 124 746 178 FillRectangle +[0 255 255 204 0 <>] UpdateBrush +pop pop 594 178 +594 124 LineTo +746 124 LineTo +746 178 LineTo +[0 255 255 204 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(preequilibrium) 366 -0.00 601 219 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +1066 250 1365 453 FillRectangle +1066 250 1365 453 RectangleOutLine +[0 255 255 204 0 <>] UpdateBrush +1066 196 1186 250 FillRectangle +[0 255 255 204 0 <>] UpdateBrush +pop pop 1066 250 +1066 196 LineTo +1186 196 LineTo +1186 250 LineTo +[0 255 255 204 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(evaporation) 288 -0.00 1072 291 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 255 255 204 0 <>] UpdateBrush +[0 1 153 0 51] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 204 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +474 629 773 778 FillRectangle +474 629 773 778 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +474 575 594 629 FillRectangle +[0 192 192 192 0 <>] UpdateBrush +pop pop 474 629 +474 575 LineTo +594 575 LineTo +594 629 LineTo +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(utils) 131 -0.00 558 670 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[1 0 128 128 128] UpdatePen +pop pop 396 326 +546 574 LineTo +[0 1 128 128 128] UpdatePen +pop pop 546 574 +540 535 LineTo +pop pop 546 574 +514 551 LineTo +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +58 629 357 778 FillRectangle +58 629 357 778 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +58 575 178 629 FillRectangle +[0 192 192 192 0 <>] UpdateBrush +pop pop 58 629 +58 575 LineTo +178 575 LineTo +178 629 LineTo +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(crossection) 288 -0.00 64 670 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[1 0 128 128 128] UpdatePen +pop pop 308 326 +242 574 LineTo +[0 1 128 128 128] UpdatePen +pop pop 242 574 +265 543 LineTo +pop pop 242 574 +237 535 LineTo +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +(File: /afs/cern.ch/user/m/miheikki/public/html/hetc/doc/hetc.mdl Fri Jun 8 10:08:56 2001 Component ) 2231 -0.00 166 3089 TextOut +(Diagram: Component View / Main Page 1) 800 -0.00 166 3126 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file diff --git a/source/processes/hadronic/models/cascade/doc/hetc.mdl b/source/processes/hadronic/models/cascade/doc/hetc.mdl new file mode 100644 index 0000000000..c7b117eb83 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/hetc.mdl @@ -0,0 +1,9142 @@ + +(object Petal + version 44 + _written "Rational Rose 7.1.9701" + charSet 0) + +(object Design "Logical View" + is_unit TRUE + is_loaded TRUE + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "")) + quid "3B2079B10164" + defaults (object defaults + rightMargin 0.250000 + leftMargin 0.250000 + topMargin 0.250000 + bottomMargin 0.500000 + pageOverlap 1.000000 + clipIconLabels TRUE + autoResize TRUE + snapToGrid TRUE + gridX 16 + gridY 16 + defaultFont (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + showMessageNum 1 + showClassOfObject TRUE + notation "Unified") + root_usecase_package (object Class_Category "Use Case View" + quid "3B2079B10166" + exportControl "Public" + global TRUE + logical_models (list unit_reference_list + (object Class_Category "HETC cascade" + quid "3B207BA40196" + visible_categories (list visibility_relationship_list + (object Visibility_Relationship + quid "3B24D4500388" + supplier "Use Case View::HETC utils" + quidu "3B207C6F013B")) + exportControl "Public" + logical_models (list unit_reference_list + (object Class "G4Track" + quid "3B20849C006E" + stereotype "Actor" + visible_modules (list dependency_list + (object Dependency_Relationship + quid "3B2084D70224" + supplier "Use Case View::HETC cascade::calculate impact point" + quidu "3B2082900060"))) + (object UseCase "calculate impact point" + quid "3B2082900060") + (object UseCase "return vector of utcoming particles" + quid "3B2082CA0181") + (object UseCase "perform Pauli blocking" + quid "3B20832702F9") + (object UseCase "Fermi motion" + quid "3B208356031D") + (object UseCase "pi capture" + quid "3B20837F00AA") + (object UseCase "pseudo collision" + quid "3B2083CC0326") + (object UseCase "use Bertini data" + quid "3B2083EC0065")) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "3B207BBC03D2" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object UseCaseView "Use Case View::HETC cascade::calculate impact point" @1 + location (384, 256) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @1 + location (384, 429) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "calculate impact point") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B2082900060" + width 288 + height 188) + (object UseCaseView "Use Case View::HETC cascade::return vector of utcoming particles" @2 + location (1280, 944) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @2 + location (1280, 1086) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "return vector of utcoming particles") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B2082CA0181" + width 250 + height 125) + (object UseCaseView "Use Case View::HETC cascade::perform Pauli blocking" @3 + location (1248, 240) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @3 + location (1248, 413) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "perform Pauli blocking") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20832702F9" + width 250 + height 187) + (object UseCaseView "Use Case View::HETC cascade::Fermi motion" @4 + location (752, 544) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @4 + location (752, 686) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "Fermi motion") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B208356031D" + width 219 + height 125) + (object UseCaseView "Use Case View::HETC cascade::pi capture" @5 + location (272, 944) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @5 + location (272, 1086) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "pi capture") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20837F00AA" + width 256 + height 125) + (object UseCaseView "Use Case View::HETC cascade::pseudo collision" @6 + location (688, 864) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @6 + location (688, 1006) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "pseudo collision") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B2083CC0326" + width 225 + height 125) + (object UseCaseView "Use Case View::HETC cascade::use Bertini data" @7 + location (1456, 624) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @7 + location (1456, 782) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "use Bertini data") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B2083EC0065" + width 219 + height 157) + (object Label @8 + location (64, 48) + font (object Font + size 12 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + nlines 1 + max_width 1394 + label "Bertini INC as implementd in HETC") + (object ClassView "Class" "Use Case View::HETC cascade::G4Track" @9 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (208, 544) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @9 + location (208, 701) + anchor_loc 1 + nlines 2 + max_width 413 + justify 0 + label "G4Track") + icon "Actor" + icon_style "Icon" + line_color 3342489 + quidu "3B20849C006E" + annotation 8 + autoResize TRUE) + (object DependencyView "" @10 + stereotype TRUE + line_color 3342489 + quidu "3B2084D70224" + client @9 + supplier @1 + line_style 0))))) + (object Class_Category "HETC pre-equilibrium" + quid "3B207BB6010C" + visible_categories (list visibility_relationship_list + (object Visibility_Relationship + quid "3B24D44B03BE" + supplier "Use Case View::HETC utils" + quidu "3B207C6F013B")) + exportControl "Public" + logical_models (list unit_reference_list + (object UseCase "evaporate pre-equilibrium nucleus" + quid "3B20816D006F")) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "3B20802700B9" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object UseCaseView "Use Case View::HETC pre-equilibrium::evaporate pre-equilibrium nucleus" @11 + location (864, 400) + font (object Font + size 8 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @11 + location (864, 573) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "evaporate pre-equilibrium nucleus") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20816D006F" + width 312 + height 188))))) + (object Class_Category "HETC evaporation" + quid "3B207C0101F2" + visible_categories (list visibility_relationship_list + (object Visibility_Relationship + quid "3B24D431019D" + supplier "Use Case View::HETC utils" + quidu "3B207C6F013B")) + exportControl "Public" + logical_models (list unit_reference_list + (object UseCase "evaporate compound nucleus" + quid "3B20822D0003") + (object UseCase "de-exitate gammas" + quid "3B20824C0315")) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "3B2080BC032D" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 19 + origin_y 0 + items (list diagram_item_list + (object UseCaseView "Use Case View::HETC evaporation::evaporate compound nucleus" @12 + location (368, 240) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @12 + location (368, 429) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "evaporate compound nucleus") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20822D0003" + width 350 + height 219) + (object UseCaseView "Use Case View::HETC evaporation::de-exitate gammas" @13 + location (960, 240) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @13 + location (960, 429) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "de-exitate gammas") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20824C0315" + width 350 + height 219))))) + (object Class_Category "HETC utils" + quid "3B207C6F013B" + exportControl "Public" + logical_models (list unit_reference_list + (object UseCase "NewUseCase" + quid "3B207FD7008B") + (object UseCase "provide general functionalities" + quid "3B2080CC0242")) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "3B207FD10283" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object UseCaseView "Use Case View::HETC utils::provide general functionalities" @14 + location (256, 192) + font (object Font + size 8 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @14 + location (256, 388) + anchor_loc 1 + nlines 2 + max_width 630 + justify 0 + label "provide general functionalities") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B2080CC0242" + width 362 + height 234)))))) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "3B2079B10202" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 59 + origin_y 0 + items (list diagram_item_list + (object CategoryView "Use Case View::HETC cascade" @15 + location (272, 176) + font (object Font + size 8 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @15 + location (128, 92) + fill_color 13434879 + nlines 2 + max_width 288 + justify 0 + label "HETC cascade") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B207BA40196" + width 300 + height 180) + (object CategoryView "Use Case View::HETC pre-equilibrium" @16 + location (640, 224) + font (object Font + size 8 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @16 + location (460, 140) + fill_color 13434879 + nlines 2 + max_width 360 + justify 0 + label "HETC pre-equilibrium") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B207BB6010C" + width 372 + height 180) + (object CategoryView "Use Case View::HETC evaporation" @17 + location (1008, 288) + font (object Font + size 8 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @17 + location (864, 204) + fill_color 13434879 + nlines 2 + max_width 288 + justify 0 + label "HETC evaporation") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B207C0101F2" + width 300 + height 180) + (object CategoryView "Use Case View::HETC utils" @18 + location (832, 624) + font (object Font + size 8 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @18 + location (688, 540) + fill_color 13434879 + nlines 2 + max_width 288 + justify 0 + label "HETC utils") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B207C6F013B" + width 300 + height 180) + (object ImportView "" @19 + stereotype TRUE + line_color 8421504 + quidu "3B24D431019D" + client @17 + supplier @18 + line_style 0) + (object ImportView "" @20 + stereotype TRUE + line_color 8421504 + quidu "3B24D44B03BE" + client @16 + supplier @18 + line_style 0) + (object ImportView "" @21 + stereotype TRUE + line_color 8421504 + quidu "3B24D4500388" + client @15 + supplier @18 + line_style 0))))) + root_category (object Class_Category "Logical View" + quid "3B2079B10165" + exportControl "Public" + global TRUE + subsystem "Component View" + quidu "3B2079B10167" + logical_models (list unit_reference_list + (object Class_Category "pre-equilibrium" + quid "3B235C1B0392" + exportControl "Public" + logical_models (list unit_reference_list + (object Class "G4VPreCompoundModel" + quid "3B235C4B0037" + documentation "G4 API for pre-equilibrium models" + language "C++") + (object Class "G4ExitationHandler" + quid "3B235C750243" + language "C++") + (object Class "G4PreEqModel" + quid "3B235CB30246" + documentation "base class for HETC pre-equilibrium model" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235CEB01F8" + supplier "Logical View::Geant4::G4VPreCompoundModel" + quidu "3B2365880145")) + language "C++") + (object Class "G4PreEqTransitions" + quid "3B235D2000B4" + language "C++") + (object Class "G4PreEqFragment" + quid "3B235D970043" + documentation "possible fragment product from pre-equilibrium model" + language "C++") + (object Class "G4VPreEqNucleon" + quid "3B235DE102D6" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235DF60354" + supplier "Logical View::pre-equilibrium::G4PreEqFragment" + quidu "3B235D970043")) + language "C++") + (object Class "G4PreEqNeutron" + quid "3B235DFC03A8" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235E200080" + supplier "Logical View::pre-equilibrium::G4VPreEqNucleon" + quidu "3B235DE102D6")) + language "C++") + (object Class "G4PreEqProton" + quid "3B235E2303DC" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235E350090" + supplier "Logical View::pre-equilibrium::G4VPreEqNucleon" + quidu "3B235DE102D6")) + language "C++") + (object Class "G4PreEqIon" + quid "3B235E450113" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235F3C017C" + supplier "Logical View::pre-equilibrium::G4PreEqFragment" + quidu "3B235D970043")) + language "C++") + (object Class "G4PreEqDeuteron" + quid "3B235E5B014E" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235E6C0089" + supplier "Logical View::pre-equilibrium::G4PreEqIon" + quidu "3B235E450113")) + language "C++") + (object Class "G4PreEqFragmentVector" + quid "3B235E9F0122" + documentation "vector interface to handle all possible evaporation fragments" + language "C++") + (object Class "G4PreEqTriton" + quid "3B235EDE0065" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235F010165" + supplier "Logical View::pre-equilibrium::G4PreEqIon" + quidu "3B235E450113")) + language "C++") + (object Class "G4ReEqAlpha" + quid "3B235F0A008A" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235F23002C" + supplier "Logical View::pre-equilibrium::G4PreEqIon" + quidu "3B235E450113")) + language "C++") + (object Class "G4PreEqHe3" + quid "3B235F2601E2" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B235F380066" + supplier "Logical View::pre-equilibrium::G4PreEqIon" + quidu "3B235E450113")) + language "C++") + (object Class "G4PreEqParameters" + quid "3B2360A40323" + documentation "collection of parameters needed fy HETC pre-equilibrium model" + language "C++") + (object Association "$UNNAMED$0" + quid "3B235CA00135" + roles (list role_list + (object Role "$UNNAMED$1" + quid "3B235CA003DB" + supplier "Logical View::pre-equilibrium::G4ExitationHandler" + quidu "3B235C750243" + is_navigable TRUE) + (object Role "$UNNAMED$2" + quid "3B235CA10009" + supplier "Logical View::Geant4::G4VPreCompoundModel" + quidu "3B2365880145"))) + (object Association "$UNNAMED$3" + quid "3B235D5A01C8" + roles (list role_list + (object Role "$UNNAMED$4" + quid "3B235D5B002D" + supplier "Logical View::Geant4::G4VPreCompoundModel" + quidu "3B2365880145" + is_navigable TRUE) + (object Role "$UNNAMED$5" + quid "3B235D5B0048" + supplier "Logical View::pre-equilibrium::G4PreEqTransitions" + quidu "3B235D2000B4")))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "3B235C430201" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqModel" @22 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1360, 640) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @22 + location (1193, 595) + fill_color 12632256 + nlines 1 + max_width 334 + justify 0 + label "G4PreEqModel") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235CB30246" + width 352 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::pre-equilibrium::G4ExitationHandler" @23 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2016, 112) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @23 + location (1775, 67) + fill_color 12632256 + nlines 1 + max_width 482 + justify 0 + label "G4ExitationHandler") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235C750243" + width 500 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4VPreCompoundModel" @24 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1360, 192) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @24 + location (1104, 125) + fill_color 12632256 + nlines 1 + max_width 512 + justify 0 + label "G4VPreCompoundModel") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2365880145" + width 530 + height 156 + annotation 8 + autoResize TRUE) + (object AssociationViewNew "$UNNAMED$0" @25 + location (1695, 150) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B235CA00135" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$1" @26 + Parent_View @25 + location (831, -106) + stereotype TRUE + line_color 8421504 + quidu "3B235CA003DB" + client @25 + supplier @23 + line_style 0) + (object RoleView "$UNNAMED$2" @27 + Parent_View @25 + location (831, -106) + stereotype TRUE + line_color 8421504 + quidu "3B235CA10009" + client @25 + supplier @24 + line_style 0))) + (object InheritView "" @28 + stereotype TRUE + line_color 8421504 + quidu "3B235CEB01F8" + client @22 + supplier @24 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqTransitions" @29 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2048, 352) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @29 + location (1808, 307) + fill_color 12632256 + nlines 1 + max_width 480 + justify 0 + label "G4PreEqTransitions") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235D2000B4" + width 498 + height 112 + annotation 8 + autoResize TRUE) + (object AssociationViewNew "$UNNAMED$3" @30 + location (1716, 274) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B235D5A01C8" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$4" @31 + Parent_View @30 + location (-108, -302) + stereotype TRUE + line_color 8421504 + quidu "3B235D5B002D" + client @30 + supplier @24 + line_style 0) + (object RoleView "$UNNAMED$5" @32 + Parent_View @30 + location (-108, -302) + stereotype TRUE + line_color 8421504 + quidu "3B235D5B0048" + client @30 + supplier @29 + line_style 0))) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqFragment" @33 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1232, 1232) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @33 + location (1023, 1187) + fill_color 12632256 + nlines 1 + max_width 418 + justify 0 + label "G4PreEqFragment") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235D970043" + width 436 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::pre-equilibrium::G4VPreEqNucleon" @34 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (592, 1488) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @34 + location (388, 1443) + fill_color 12632256 + nlines 1 + max_width 408 + justify 0 + label "G4VPreEqNucleon") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235DE102D6" + width 426 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @35 + stereotype TRUE + line_color 8421504 + quidu "3B235DF60354" + client @34 + supplier @33 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqNeutron" @36 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (224, 1760) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @36 + location (34, 1715) + fill_color 12632256 + nlines 1 + max_width 380 + justify 0 + label "G4PreEqNeutron") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235DFC03A8" + width 398 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @37 + stereotype TRUE + line_color 8421504 + quidu "3B235E200080" + client @36 + supplier @34 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqProton" @38 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (656, 1776) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @38 + location (479, 1731) + fill_color 12632256 + nlines 1 + max_width 354 + justify 0 + label "G4PreEqProton") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235E2303DC" + width 372 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @39 + stereotype TRUE + line_color 8421504 + quidu "3B235E350090" + client @38 + supplier @34 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqIon" @40 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1808, 1488) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @40 + location (1660, 1443) + fill_color 12632256 + nlines 1 + max_width 296 + justify 0 + label "G4PreEqIon") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235E450113" + width 314 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqDeuteron" @41 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1120, 1760) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @41 + location (909, 1715) + fill_color 12632256 + nlines 1 + max_width 422 + justify 0 + label "G4PreEqDeuteron") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235E5B014E" + width 440 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @42 + stereotype TRUE + line_color 8421504 + quidu "3B235E6C0089" + client @41 + supplier @40 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqFragmentVector" @43 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1328, 896) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @43 + location (1051, 851) + fill_color 12632256 + nlines 1 + max_width 554 + justify 0 + label "G4PreEqFragmentVector") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235E9F0122" + width 572 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqTriton" @44 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1536, 1760) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @44 + location (1360, 1715) + fill_color 12632256 + nlines 1 + max_width 352 + justify 0 + label "G4PreEqTriton") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235EDE0065" + width 370 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @45 + stereotype TRUE + line_color 8421504 + quidu "3B235F010165" + client @44 + supplier @40 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4ReEqAlpha" @46 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1920, 1760) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @46 + location (1760, 1715) + fill_color 12632256 + nlines 1 + max_width 320 + justify 0 + label "G4ReEqAlpha") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235F0A008A" + width 338 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @47 + stereotype TRUE + line_color 8421504 + quidu "3B235F23002C" + client @46 + supplier @40 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqHe3" @48 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2288, 1744) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @48 + location (2147, 1699) + fill_color 12632256 + nlines 1 + max_width 282 + justify 0 + label "G4PreEqHe3") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235F2601E2" + width 300 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @49 + stereotype TRUE + line_color 8421504 + quidu "3B235F380066" + client @48 + supplier @40 + line_style 0) + (object InheritView "" @50 + stereotype TRUE + line_color 8421504 + quidu "3B235F3C017C" + client @40 + supplier @33 + line_style 0) + (object ClassView "Class" "Logical View::pre-equilibrium::G4PreEqParameters" @51 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2096, 912) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @51 + location (1867, 867) + fill_color 12632256 + nlines 1 + max_width 458 + justify 0 + label "G4PreEqParameters") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2360A40323" + width 476 + height 112 + annotation 8 + autoResize TRUE))))) + (object Class_Category "cascade" + quid "3B2361EE0133" + exportControl "Public" + logical_models (list unit_reference_list + (object Class "G4BertiniCascade" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4CascadeModel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4CascadeModel.cpp")) + quid "3B2363280122" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B23647A036E" + supplier "Logical View::Geant4::G4IntraNuclearTransportModel" + quidu "3B2364140115")) + class_attributes (list class_attribute_list + (object ClassAttribute "CheckPauliPrinciple" + quid "3B52BC0302D6")) + language "C++") + (object Class "G4BertiniData" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4BertiniData.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4BertiniData.cpp")) + quid "3B4855EC0260" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B4856440188" + supplier "Logical View::Geant4::G4VCrossSectionDataSet" + quidu "3B3764D2010E")) + language "C++") + (object Class "G4NucleusModel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4VNucleusModel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4VNucleusModel.cpp")) + quid "3B48565A02F5" + language "C++") + (object Class "G4RegionModel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4NucleusRegionModel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4NucleusRegionModel.cpp")) + quid "3B4856AA002B" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B4856D00127" + supplier "Logical View::cascade::G4NucleusModel" + quidu "3B48565A02F5") + (object Inheritance_Relationship + quid "3B52C6E00159" + supplier "Logical View::cascade::G4VRegionModel" + quidu "3B52C6C003C3")) + language "C++") + (object Class "G4BertiniElasticCollision" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCElastic.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCElastic.cpp")) + quid "3B4857B9031B" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B529EBD0181" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002")) + language "C++") + (object Class "G4BertiniPseudoCollision" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCPeudoCollision.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCPeudoCollision.cpp")) + quid "3B4857F101D1" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B529EC20104" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002")) + language "C++") + (object Class "G4BertiniModel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCModel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCModel.cpp")) + quid "3B529E3D0002" + language "C++") + (object Class "G4BertiniScalingModel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4ScalingModel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4ScalingModel.cpp")) + quid "3B529E6900A5" + language "C++") + (object Class "G4BertiniInelasticCollision" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCInelastic.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCInelastic.cpp")) + quid "3B529ED300E2" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B529F12032A" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002")) + language "C++") + (object Class "G4BertiniHydrogenCollision" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCHydrogen.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCHydrogen.cpp")) + quid "3B529F5B02E1" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B529F6E02E1" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002")) + language "C++") + (object Class "G4BertiniIsobarModel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCIsobar.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCIsobar.cpp")) + quid "3B529F740017" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B52A03302D9" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002")) + language "C++") + (object Class "G4BertiniPionCapture" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/cascade/G4INCPionCapture.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/cascade/G4INCPionCapture.cpp")) + quid "3B52A03C02C9" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3B52A049031F" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002")) + language "C++") + (object Class "G4VRegionModel" + quid "3B52C6C003C3" + language "C++") + (object Association "$UNNAMED$6" + quid "3B529DAA0339" + roles (list role_list + (object Role "$UNNAMED$7" + quid "3B529DAB0305" + supplier "Logical View::cascade::G4BertiniData" + quidu "3B4855EC0260" + is_navigable TRUE) + (object Role "$UNNAMED$8" + quid "3B529DAB031F" + supplier "Logical View::cascade::G4BertiniCascade" + quidu "3B2363280122"))) + (object Association "$UNNAMED$9" + quid "3B529E76035D" + roles (list role_list + (object Role "$UNNAMED$10" + quid "3B529E770234" + supplier "Logical View::cascade::G4BertiniScalingModel" + quidu "3B529E6900A5" + is_navigable TRUE) + (object Role "$UNNAMED$11" + quid "3B529E770250" + supplier "Logical View::cascade::G4BertiniCascade" + quidu "3B2363280122"))) + (object Association "$UNNAMED$12" + quid "3B52A754006D" + roles (list role_list + (object Role "$UNNAMED$13" + quid "3B52A7540356" + supplier "Logical View::cascade::G4BertiniModel" + quidu "3B529E3D0002" + is_navigable TRUE) + (object Role "$UNNAMED$14" + quid "3B52A754037C" + supplier "Logical View::cascade::G4BertiniCascade" + quidu "3B2363280122"))) + (object Association "$UNNAMED$15" + quid "3B52A7F002B9" + roles (list role_list + (object Role "$UNNAMED$16" + quid "3B52A7F100FA" + supplier "Logical View::Geant4::G4KineticTrackVector" + quidu "3B52A78302D9" + is_navigable TRUE) + (object Role "$UNNAMED$17" + quid "3B52A7F10132" + supplier "Logical View::cascade::G4BertiniCascade" + quidu "3B2363280122"))) + (object Association "$UNNAMED$18" + quid "3B52A80501EA" + roles (list role_list + (object Role "$UNNAMED$19" + quid "3B52A80503BF" + supplier "Logical View::Geant4::G4KineticTrack" + quidu "3B52A7950265" + is_navigable TRUE) + (object Role "$UNNAMED$20" + quid "3B52A8060011" + supplier "Logical View::Geant4::G4KineticTrackVector" + quidu "3B52A78302D9"))) + (object Association "$UNNAMED$21" + quid "3B52A9CA030F" + roles (list role_list + (object Role "$UNNAMED$22" + quid "3B52A9CB01C1" + supplier "Logical View::cascade::G4RegionModel" + quidu "3B4856AA002B" + is_navigable TRUE) + (object Role "$UNNAMED$23" + quid "3B52A9CB01EA" + supplier "Logical View::cascade::G4NucleusModel" + quidu "3B48565A02F5"))) + (object Association "$UNNAMED$24" + quid "3B52C6EC01C5" + roles (list role_list + (object Role "$UNNAMED$25" + quid "3B52C6EC0346" + supplier "Logical View::cascade::G4RegionModel" + quidu "3B4856AA002B" + is_navigable TRUE) + (object Role "$UNNAMED$26" + quid "3B52C6EC0365" + supplier "Logical View::cascade::G4NucleusModel" + quidu "3B48565A02F5"))) + (object Association "$UNNAMED$27" + quid "3B52C7080253" + roles (list role_list + (object Role "$UNNAMED$28" + quid "3B52C709020F" + supplier "Logical View::cascade::G4NucleusModel" + quidu "3B48565A02F5" + is_navigable TRUE) + (object Role "$UNNAMED$29" + quid "3B52C7090231" + supplier "Logical View::cascade::G4BertiniCascade" + quidu "3B2363280122")))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "3B2362B3019F" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 156 + items (list diagram_item_list + (object ClassView "Class" "Logical View::Geant4::G4IntraNuclearTransportModel" @52 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (992, 128) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @52 + location (624, 61) + nlines 1 + max_width 736 + justify 0 + label "G4IntraNuclearTransportModel") + icon_style "Icon" + line_color 8421504 + quidu "3B2364140115" + width 754 + height 156 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4VCrossSectionDataSet" @53 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (336, 384) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @53 + location (44, 266) + nlines 1 + max_width 584 + justify 0 + label "G4VCrossSectionDataSet") + icon_style "Icon" + line_color 8421504 + quidu "3B3764D2010E" + compartment (object Compartment + Parent_View @53 + location (44, 369) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + icon_style "Icon" + anchor 2 + nlines 3 + max_width 485) + width 602 + height 258 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniElasticCollision" @54 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (288, 1232) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @54 + location (104, 1166) + nlines 2 + max_width 368 + justify 0 + label "G4BertiniElasticCollision") + icon_style "Icon" + line_color 8421504 + quidu "3B4857B9031B" + width 386 + height 154 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniPseudoCollision" @55 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (272, 992) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @55 + location (106, 925) + nlines 2 + max_width 332 + justify 0 + label "G4BertiniPseudoCollision") + icon_style "Icon" + line_color 8421504 + quidu "3B4857F101D1" + width 350 + height 156 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniInelasticCollision" @56 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (288, 1456) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @56 + location (96, 1389) + nlines 2 + max_width 384 + justify 0 + label "G4BertiniInelasticCollision") + icon_style "Icon" + line_color 8421504 + quidu "3B529ED300E2" + width 402 + height 156 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniHydrogenCollision" @57 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (784, 1568) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @57 + location (568, 1498) + nlines 2 + max_width 432 + justify 0 + label "G4BertiniHydrogenCollision") + icon_style "Icon" + line_color 8421504 + quidu "3B529F5B02E1" + width 450 + height 163 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniIsobarModel" @58 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1376, 1200) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @58 + location (1126, 1133) + nlines 2 + max_width 501 + justify 0 + label "G4BertiniIsobarModel") + icon_style "Icon" + line_color 8421504 + quidu "3B529F740017" + width 519 + height 157 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniPionCapture" @59 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1296, 1440) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @59 + location (1151, 1373) + nlines 2 + max_width 290 + justify 0 + label "G4BertiniPionCapture") + icon_style "Icon" + line_color 8421504 + quidu "3B52A03C02C9" + width 308 + height 156 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4VRegionModel" @60 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2160, 192) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @60 + location (1991, 130) + nlines 2 + max_width 339 + justify 0 + label "G4VRegionModel") + icon_style "Decoration" + line_color 8421504 + quidu "3B52C6C003C3" + width 357 + height 143 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4KineticTrack" @61 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2144, 752) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @61 + location (1970, 690) + nlines 1 + max_width 348 + justify 0 + label "G4KineticTrack") + icon_style "Decoration" + line_color 8421504 + quidu "3B52A7950265" + width 366 + height 142 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4RegionModel" @62 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1952, 416) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @62 + location (1790, 349) + nlines 2 + max_width 325 + justify 0 + label "G4RegionModel") + icon_style "Icon" + line_color 8421504 + quidu "3B4856AA002B" + width 343 + height 156 + annotation 8 + autoResize TRUE) + (object InheritView "" @63 + stereotype TRUE + line_color 8421504 + quidu "3B52C6E00159" + client @62 + supplier @60 + line_style 0) + (object ClassView "Class" "Logical View::cascade::G4BertiniData" @64 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (336, 704) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @64 + location (158, 659) + nlines 1 + max_width 356 + justify 0 + label "G4BertiniData") + icon_style "Icon" + line_color 8421504 + quidu "3B4855EC0260" + width 374 + height 112 + annotation 8 + autoResize TRUE) + (object InheritView "" @65 + stereotype TRUE + line_color 8421504 + quidu "3B4856440188" + client @64 + supplier @53 + line_style 0) + (object ClassView "Class" "Logical View::cascade::G4BertiniScalingModel" @66 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1376, 928) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @66 + location (1225, 861) + nlines 2 + max_width 302 + justify 0 + label "G4BertiniScalingModel") + icon_style "Icon" + line_color 8421504 + quidu "3B529E6900A5" + width 320 + height 156 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::cascade::G4BertiniModel" @67 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (784, 928) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @67 + location (600, 855) + nlines 2 + max_width 369 + justify 0 + label "G4BertiniModel") + icon_style "Icon" + line_color 8421504 + quidu "3B529E3D0002" + width 387 + height 169 + annotation 8 + autoResize TRUE) + (object InheritView "" @68 + stereotype TRUE + line_color 8421504 + quidu "3B529EBD0181" + client @54 + supplier @67 + line_style 0) + (object InheritView "" @69 + stereotype TRUE + line_color 8421504 + quidu "3B529F12032A" + client @56 + supplier @67 + line_style 0) + (object InheritView "" @70 + stereotype TRUE + line_color 8421504 + quidu "3B529F6E02E1" + client @57 + supplier @67 + line_style 0) + (object InheritView "" @71 + stereotype TRUE + line_color 8421504 + quidu "3B52A03302D9" + client @58 + supplier @67 + line_style 0) + (object InheritView "" @72 + stereotype TRUE + line_color 8421504 + quidu "3B529EC20104" + client @55 + supplier @67 + line_style 0) + (object InheritView "" @73 + stereotype TRUE + line_color 8421504 + quidu "3B52A049031F" + client @59 + supplier @67 + line_style 0) + (object ClassView "Class" "Logical View::Geant4::G4KineticTrackVector" @74 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1616, 656) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @74 + location (1380, 594) + nlines 1 + max_width 472 + justify 0 + label "G4KineticTrackVector") + icon_style "Decoration" + line_color 8421504 + quidu "3B52A78302D9" + width 490 + height 142 + annotation 8 + autoResize TRUE) + (object AssociationViewNew "$UNNAMED$18" @75 + location (1910, 709) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B52A80501EA" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$19" @76 + Parent_View @75 + location (246, 373) + stereotype TRUE + line_color 8421504 + quidu "3B52A80503BF" + client @75 + supplier @61 + line_style 0) + (object RoleView "$UNNAMED$20" @77 + Parent_View @75 + location (246, 373) + stereotype TRUE + line_color 8421504 + quidu "3B52A8060011" + client @75 + supplier @74 + line_style 0))) + (object ClassView "Class" "Logical View::cascade::G4NucleusModel" @78 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1680, 192) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @78 + location (1502, 125) + nlines 2 + max_width 357 + justify 0 + label "G4NucleusModel") + icon_style "Icon" + line_color 8421504 + quidu "3B48565A02F5" + width 375 + height 156 + annotation 8 + autoResize TRUE) + (object AssociationViewNew "$UNNAMED$24" @79 + location (1815, 303) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B52C6EC01C5" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$25" @80 + Parent_View @79 + location (71, -529) + stereotype TRUE + line_color 8421504 + quidu "3B52C6EC0346" + client @79 + supplier @62 + line_style 0) + (object RoleView "$UNNAMED$26" @81 + Parent_View @79 + location (71, -529) + stereotype TRUE + line_color 8421504 + quidu "3B52C6EC0365" + client @79 + supplier @78 + line_style 0))) + (object ClassView "Class" "Logical View::cascade::G4BertiniCascade" @82 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (992, 624) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @82 + location (728, 531) + nlines 2 + max_width 528 + justify 0 + label "G4BertiniCascade") + icon_style "Icon" + line_color 8421504 + quidu "3B2363280122" + compartment (object Compartment + Parent_View @82 + location (728, 586) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + icon_style "Decoration" + anchor 2 + nlines 2 + max_width 535) + width 546 + height 208 + annotation 8 + autoResize TRUE) + (object InheritView "" @83 + stereotype TRUE + line_color 8421504 + quidu "3B23647A036E" + client @82 + supplier @52 + line_style 0) + (object AssociationViewNew "$UNNAMED$6" @84 + location (620, 668) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B529DAA0339" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$7" @85 + Parent_View @84 + location (-372, 156) + stereotype TRUE + line_color 8421504 + quidu "3B529DAB0305" + client @84 + supplier @64 + line_style 0) + (object RoleView "$UNNAMED$8" @86 + Parent_View @84 + location (-372, 156) + stereotype TRUE + line_color 8421504 + quidu "3B529DAB031F" + client @84 + supplier @82 + line_style 0))) + (object AssociationViewNew "$UNNAMED$9" @87 + location (1200, 788) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B529E76035D" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$10" @88 + Parent_View @87 + location (144, 308) + stereotype TRUE + line_color 8421504 + quidu "3B529E770234" + client @87 + supplier @66 + line_style 0) + (object RoleView "$UNNAMED$11" @89 + Parent_View @87 + location (144, 308) + stereotype TRUE + line_color 8421504 + quidu "3B529E770250" + client @87 + supplier @82 + line_style 0))) + (object AssociationViewNew "$UNNAMED$12" @90 + location (880, 785) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B52A754006D" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$13" @91 + Parent_View @90 + location (-176, 289) + stereotype TRUE + line_color 8421504 + quidu "3B52A7540356" + client @90 + supplier @67 + line_style 0) + (object RoleView "$UNNAMED$14" @92 + Parent_View @90 + location (-176, 289) + stereotype TRUE + line_color 8421504 + quidu "3B52A754037C" + client @90 + supplier @82 + line_style 0))) + (object AssociationViewNew "$UNNAMED$15" @93 + location (1317, 640) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B52A7F002B9" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$16" @94 + Parent_View @93 + location (261, 144) + stereotype TRUE + line_color 8421504 + quidu "3B52A7F100FA" + client @93 + supplier @74 + line_style 0) + (object RoleView "$UNNAMED$17" @95 + Parent_View @93 + location (261, 144) + stereotype TRUE + line_color 8421504 + quidu "3B52A7F10132" + client @93 + supplier @82 + line_style 0))) + (object AssociationViewNew "$UNNAMED$27" @96 + location (1355, 394) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + stereotype TRUE + line_color 8421504 + quidu "3B52C7080253" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$28" @97 + Parent_View @96 + location (427, -198) + stereotype TRUE + line_color 8421504 + quidu "3B52C709020F" + client @96 + supplier @78 + line_style 0) + (object RoleView "$UNNAMED$29" @98 + Parent_View @96 + location (427, -198) + stereotype TRUE + line_color 8421504 + quidu "3B52C7090231" + client @96 + supplier @82 + line_style 0))))))) + (object Class_Category "evaporation" + quid "3B2362CE001F" + exportControl "Public" + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list)) + (object Class_Category "utils" + quid "3B2362D802BE" + exportControl "Public" + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "3B24D67601E3" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 247 + origin_y 0 + items (list diagram_item_list)))) + (object Class_Category "Geant4" + quid "3B23636002D1" + exportControl "Public" + logical_models (list unit_reference_list + (object Class "G4IntraNuclearTransportModel" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/Geant4/G4IntraNuclearTransportModel.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/Geant4/G4IntraNuclearTransportModel.cpp")) + quid "3B2364140115" + language "C++") + (object Class "G4VPreCompoundModel" + quid "3B2365880145" + language "C++") + (object Class "G4int" + quid "3B23665303A7" + language "C++") + (object Class "G4double" + quid "3B23665B03B1" + language "C++") + (object Class "G4UniformRand" + quid "3B23666103DD" + language "C++") + (object Class "G4bool" + quid "3B23667801FA" + language "C++") + (object Class "G4VExitationHandler" + quid "3B3764D200B7" + language "C++") + (object Class "G4FragmentVector" + quid "3B3764D200D4" + language "C++") + (object Class "G4Fragment" + quid "3B3764D200F1" + language "C++") + (object Class "G4VCrossSectionDataSet" + attributes (list Attribute_Set + (object Attribute + tool "Traversal" + name "CodeFile" + value "$ROSEADA83_SOURCE/Geant4/G4VCrossSectionDataSet.h") + (object Attribute + tool "Traversal" + name "BodyFile" + value "$ROSEADA83_SOURCE/Geant4/G4VCrossSectionDataSet.cpp")) + quid "3B3764D2010E" + operations (list Operations + (object Operation "IsApplicable" + quid "3B3768F801CE" + result "virtual G4Bool" + concurrency "Sequential" + opExportControl "Public" + uid 993487375) + (object Operation "GetCrossSection" + quid "3B3769400326" + parameters (list Parameters + (object Parameter "dynamicParticle" + quid "3B37699A03D7" + type "const G4DynamicParticle*") + (object Parameter "element" + quid "3B376B6B03BE" + type "const G4Element*")) + result "virtual G4double" + concurrency "Sequential" + opExportControl "Public" + uid 993487376)) + language "C++") + (object Class "G4HadronicIntercation" + quid "3B3764D20134" + language "C++") + (object Class "G4Proton" + quid "3B3764D20158" + language "C++") + (object Class "G4Neutron" + quid "3B3764D20175" + language "C++") + (object Class "G4AntiProton" + quid "3B3764D20192" + language "C++") + (object Class "G4AntiNeutron" + quid "3B3764D201B1" + language "C++") + (object Class "G4PionZero" + quid "3B3764D201CF" + language "C++") + (object Class "G4PionPlus" + quid "3B3764D201EB" + language "C++") + (object Class "G4PionMinus" + quid "3B3764D20208" + language "C++") + (object Class "G4ParticleDefinition" + quid "3B3AFDF903BA" + language "C++") + (object Class "G4DynamicParticle" + quid "3B3AFDF903DD" + language "C++") + (object Class "G4Element" + quid "3B3AFDFA0012" + language "C++") + (object Class "G4KineticTrackVector" + quid "3B52A78302D9" + language "ANSI C++") + (object Class "G4KineticTrack" + quid "3B52A7950265" + language "ANSI C++")) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "3B2363FE0052" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 6 + items (list diagram_item_list + (object ClassView "Class" "Logical View::Geant4::G4IntraNuclearTransportModel" @99 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (688, 448) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @99 + location (322, 403) + fill_color 12632256 + nlines 1 + max_width 732 + justify 0 + label "G4IntraNuclearTransportModel") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2364140115" + width 750 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4VPreCompoundModel" @100 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1552, 464) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @100 + location (1298, 419) + fill_color 12632256 + nlines 1 + max_width 508 + justify 0 + label "G4VPreCompoundModel") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2365880145" + width 526 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4double" @101 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (816, 2128) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @101 + location (699, 2083) + fill_color 12632256 + nlines 1 + max_width 234 + justify 0 + label "G4double") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B23665B03B1" + width 252 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4UniformRand" @102 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1328, 1168) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @102 + location (1122, 1101) + fill_color 12632256 + nlines 2 + max_width 413 + justify 0 + label "G4UniformRand") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B23666103DD" + width 431 + height 156 + annotation 8 + autoResize TRUE) + (object Label @103 + location (64, 80) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + nlines 2 + max_width 1631 + label "flat list of Geant4 classes needed by HETC module") + (object ClassView "Class" "Logical View::Geant4::G4VPreCompoundModel" @104 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2000, 688) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @104 + location (1746, 643) + fill_color 12632256 + nlines 1 + max_width 508 + justify 0 + label "G4VPreCompoundModel") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2365880145" + width 526 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4int" @105 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (224, 2128) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @105 + location (142, 2083) + fill_color 12632256 + nlines 1 + max_width 164 + justify 0 + label "G4int") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B23665303A7" + width 182 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4UniformRand" @106 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1408, 1808) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @106 + location (1227, 1763) + fill_color 12632256 + nlines 1 + max_width 362 + justify 0 + label "G4UniformRand") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B23666103DD" + width 380 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4bool" @107 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (528, 2128) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @107 + location (434, 2083) + fill_color 12632256 + nlines 1 + max_width 188 + justify 0 + label "G4bool") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B23667801FA" + width 206 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4VExitationHandler" @108 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (384, 1232) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @108 + location (132, 1187) + fill_color 12632256 + nlines 1 + max_width 504 + justify 0 + label "G4VExitationHandler") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D200B7" + width 522 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4FragmentVector" @109 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1952, 1184) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @109 + location (1738, 1139) + fill_color 12632256 + nlines 1 + max_width 428 + justify 0 + label "G4FragmentVector") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D200D4" + width 446 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4Fragment" @110 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1888, 1424) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @110 + location (1744, 1379) + fill_color 12632256 + nlines 1 + max_width 288 + justify 0 + label "G4Fragment") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D200F1" + width 306 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4VCrossSectionDataSet" @111 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1312, 656) + font (object Font + size 9 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @111 + location (1057, 574) + fill_color 12632256 + nlines 1 + max_width 510 + justify 0 + label "G4VCrossSectionDataSet") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D2010E" + width 528 + height 182 + annotation 8 + autoResize TRUE) + (object NoteView @112 + location (1344, 896) + font (object Font + size 9 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @112 + location (1050, 834) + fill_color 12632256 + nlines 2 + max_width 552 + label "inherit cross-sections data from this class") + line_color 8421504 + fill_color 12632256 + width 612 + height 137) + (object ClassView "Class" "Logical View::Geant4::G4HadronicIntercation" @113 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (400, 832) + font (object Font + size 9 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @113 + location (154, 792) + fill_color 12632256 + nlines 1 + max_width 492 + justify 0 + label "G4HadronicIntercation") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D20134" + width 510 + height 98 + annotation 8 + autoResize TRUE) + (object NoteView @114 + location (560, 1072) + font (object Font + size 9 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @114 + location (119, 1006) + fill_color 12632256 + nlines 3 + max_width 846 + label "inherit from this class to form concrete model (arbitrary combination of processes leading to final states)") + line_color 8421504 + fill_color 12632256 + width 906 + height 144) + (object ClassView "Class" "Logical View::Geant4::G4Proton" @115 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (304, 1616) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @115 + location (190, 1571) + fill_color 12632256 + nlines 1 + max_width 228 + justify 0 + label "G4Proton") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D20158" + width 246 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4Neutron" @116 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (176, 1488) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @116 + location (41, 1443) + fill_color 12632256 + nlines 1 + max_width 270 + justify 0 + label "G4Neutron") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D20175" + width 288 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4AntiProton" @117 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (704, 1632) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @117 + location (534, 1587) + fill_color 12632256 + nlines 1 + max_width 340 + justify 0 + label "G4AntiProton") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D20192" + width 358 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4AntiNeutron" @118 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (544, 1472) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @118 + location (360, 1427) + fill_color 12632256 + nlines 1 + max_width 368 + justify 0 + label "G4AntiNeutron") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D201B1" + width 386 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4PionZero" @119 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1216, 1616) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @119 + location (1070, 1571) + fill_color 12632256 + nlines 1 + max_width 292 + justify 0 + label "G4PionZero") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D201CF" + width 310 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4PionPlus" @120 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1552, 1600) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @120 + location (1409, 1555) + fill_color 12632256 + nlines 1 + max_width 286 + justify 0 + label "G4PionPlus") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D201EB" + width 304 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4PionMinus" @121 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1904, 1600) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @121 + location (1748, 1555) + fill_color 12632256 + nlines 1 + max_width 312 + justify 0 + label "G4PionMinus") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3764D20208" + width 330 + height 112 + annotation 8 + autoResize TRUE) + (object AttachView "" @122 + stereotype TRUE + line_color 8421504 + client @114 + supplier @113 + line_style 0) + (object AttachView "" @123 + stereotype TRUE + line_color 8421504 + client @112 + supplier @111 + line_style 0) + (object ClassView "Class" "Logical View::Geant4::G4ParticleDefinition" @124 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1312, 1408) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @124 + location (1039, 1363) + fill_color 12632256 + nlines 1 + max_width 546 + justify 0 + label "G4ParticleDefinition") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3AFDF903BA" + width 564 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4DynamicParticle" @125 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (800, 1360) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @125 + location (566, 1315) + fill_color 12632256 + nlines 1 + max_width 468 + justify 0 + label "G4DynamicParticle") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3AFDF903DD" + width 486 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4Element" @126 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (2000, 1008) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @126 + location (1868, 963) + fill_color 12632256 + nlines 1 + max_width 264 + justify 0 + label "G4Element") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B3AFDFA0012" + width 282 + height 112 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4KineticTrackVector" @127 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1616, 192) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @127 + location (1487, 134) + nlines 2 + max_width 258 + justify 0 + label "G4KineticTrackVector") + icon_style "Decoration" + line_color 8421504 + quidu "3B52A78302D9" + width 276 + height 134 + annotation 8 + autoResize TRUE) + (object ClassView "Class" "Logical View::Geant4::G4KineticTrack" @128 + ShowCompartmentStereotypes TRUE + IncludeAttribute TRUE + IncludeOperation TRUE + location (1856, 240) + font (object Font + size 8 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @128 + location (1759, 182) + nlines 2 + max_width 194 + justify 0 + label "G4KineticTrack") + icon_style "Decoration" + line_color 8421504 + quidu "3B52A7950265" + width 212 + height 134 + annotation 8 + autoResize TRUE)))))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "3B2079B10193" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object CategoryView "Logical View::pre-equilibrium" @129 + location (736, 608) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @129 + location (533, 523) + fill_color 12632256 + nlines 2 + max_width 406 + justify 0 + label "pre-equilibrium") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B235C1B0392" + width 419 + height 182) + (object CategoryView "Logical View::cascade" @130 + location (320, 480) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @130 + location (176, 396) + fill_color 12632256 + nlines 2 + max_width 288 + justify 0 + label "cascade") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2361EE0133" + width 300 + height 180) + (object CategoryView "Logical View::evaporation" @131 + location (1168, 720) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @131 + location (1024, 636) + fill_color 12632256 + nlines 2 + max_width 288 + justify 0 + label "evaporation") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2362CE001F" + width 300 + height 180) + (object CategoryView "Logical View::utils" @132 + location (1616, 928) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @132 + location (1472, 844) + fill_color 12632256 + nlines 2 + max_width 288 + justify 0 + label "utils") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2362D802BE" + width 300 + height 180) + (object CategoryView "Logical View::Geant4" @133 + location (208, 176) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @133 + location (64, 92) + fill_color 12632256 + nlines 2 + max_width 288 + justify 0 + label "Geant4") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B23636002D1" + width 300 + height 180))))) + root_subsystem (object SubSystem "Component View" + quid "3B2079B10167" + physical_models (list unit_reference_list + (object SubSystem "cascade" + quid "3B20851603B5" + visible_modules (list dependency_list + (object Module_Visibility_Relationship + quid "3B2086FB01C3" + supplier "Component View::utils" + quidu "3B2086F50059" + supplier_is_subsystem TRUE)) + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "3B24D4C70174" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + (object SubSystem "preequilibrium" + quid "3B20854300C7" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list)) + (object SubSystem "evaporation" + quid "3B208554018F" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "3B20876003D0" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + (object SubSystem "utils" + quid "3B2086F50059" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list))) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "3B2079B10201" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object SubSysView "Component View::cascade" @134 + location (320, 208) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @134 + location (176, 112) + fill_color 13434879 + nlines 2 + max_width 288 + justify 0 + label "cascade") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20851603B5" + width 300 + height 204) + (object SubSysView "Component View::preequilibrium" @135 + location (768, 256) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @135 + location (584, 168) + fill_color 13434879 + nlines 2 + max_width 368 + justify 0 + label "preequilibrium") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B20854300C7" + width 381 + height 188) + (object SubSysView "Component View::evaporation" @136 + location (1200, 336) + font (object Font + size 10 + face "courier" + charSet 162 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @136 + location (1056, 240) + fill_color 13434879 + nlines 2 + max_width 288 + justify 0 + label "evaporation") + icon_style "Icon" + line_color 3342489 + fill_color 13434879 + quidu "3B208554018F" + width 300 + height 204) + (object SubSysView "Component View::utils" @137 + location (608, 688) + font (object Font + size 10 + face "courier" + charSet 238 + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + label (object ItemLabel + Parent_View @137 + location (464, 619) + fill_color 12632256 + nlines 2 + max_width 288 + justify 0 + label "utils") + icon_style "Icon" + line_color 8421504 + fill_color 12632256 + quidu "3B2086F50059" + width 300 + height 150) + (object ModVisView "" @138 + stereotype TRUE + line_color 8421504 + quidu "3B2086FB01C3" + client @134 + supplier @137 + line_style 0))))) + process_structure (object Processes + quid "3B2079B10168" + ProcsNDevs (list + (object Process_Diagram "Deployment View" + quid "3B2079B1016A" + title "Deployment View" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + properties (object Properties + attributes (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "propertyId" + value "809135966") + (object Attribute + tool "Cplusplus" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "Synchronize" + value TRUE) + (object Attribute + tool "Cplusplus" + name "CodeName" + value "") + (object Attribute + tool "Cplusplus" + name "Const" + value FALSE) + (object Attribute + tool "Cplusplus" + name "InitialValue" + value ""))) + (object Attribute + tool "Cplusplus" + name "default__Inherit" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "Synchronize" + value TRUE))) + (object Attribute + tool "Cplusplus" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "Synchronize" + value TRUE) + (object Attribute + tool "Cplusplus" + name "Copyright" + value (value Text "")) + (object Attribute + tool "Cplusplus" + name "RootPackage" + value "C++ Reverse Engineered") + (object Attribute + tool "Cplusplus" + name "InitialHeaderIncludes" + value (value Text "")) + (object Attribute + tool "Cplusplus" + name "InitialBodyIncludes" + value (value Text "")))) + (object Attribute + tool "Cplusplus" + name "default__Param" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "CodeName" + value ""))) + (object Attribute + tool "Cplusplus" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "Synchronize" + value TRUE) + (object Attribute + tool "Cplusplus" + name "CodeName" + value ""))) + (object Attribute + tool "Cplusplus" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "Synchronize" + value TRUE) + (object Attribute + tool "Cplusplus" + name "CodeName" + value "") + (object Attribute + tool "Cplusplus" + name "InitialCodeBody" + value "") + (object Attribute + tool "Cplusplus" + name "Inline" + value FALSE))) + (object Attribute + tool "Cplusplus" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "Synchronize" + value TRUE) + (object Attribute + tool "Cplusplus" + name "CodeName" + value "") + (object Attribute + tool "Cplusplus" + name "ImplementationType" + value "") + (object Attribute + tool "Cplusplus" + name "HeaderSourceFile" + value "") + (object Attribute + tool "Cplusplus" + name "BodySourceFile" + value ""))) + (object Attribute + tool "Cplusplus" + name "default__Category" + value (list Attribute_Set + (object Attribute + tool "Cplusplus" + name "CodeName" + value "") + (object Attribute + tool "Cplusplus" + name "IsNamespace" + value FALSE))) + (object Attribute + tool "Cplusplus" + name "HiddenTool" + value FALSE) + (object Attribute + tool "ANSI C++ Event Watcher" + name "HiddenTool" + value FALSE) + (object Attribute + tool "ANSIConvert" + name "HiddenTool" + value FALSE) + (object Attribute + tool "Ada83" + name "propertyId" + value "838326200") + (object Attribute + tool "Ada83" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "SpecFileExtension" + value "1.ada") + (object Attribute + tool "Ada83" + name "SpecFileBackupExtension" + value "1.ad~") + (object Attribute + tool "Ada83" + name "SpecFileTemporaryExtension" + value "1.ad#") + (object Attribute + tool "Ada83" + name "BodyFileExtension" + value "2.ada") + (object Attribute + tool "Ada83" + name "BodyFileBackupExtension" + value "2.ad~") + (object Attribute + tool "Ada83" + name "BodyFileTemporaryExtension" + value "2.ad#") + (object Attribute + tool "Ada83" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "Ada83" + name "GenerateBodies" + value TRUE) + (object Attribute + tool "Ada83" + name "GenerateAccessorOperations" + value TRUE) + (object Attribute + tool "Ada83" + name "GenerateStandardOperations" + value TRUE) + (object Attribute + tool "Ada83" + name "ImplicitParameter" + value TRUE) + (object Attribute + tool "Ada83" + name "CommentWidth" + value 60) + (object Attribute + tool "Ada83" + name "StopOnError" + value FALSE) + (object Attribute + tool "Ada83" + name "ErrorLimit" + value 30) + (object Attribute + tool "Ada83" + name "UseFileName" + value FALSE) + (object Attribute + tool "Ada83" + name "Directory" + value "$ROSEADA83_SOURCE"))) + (object Attribute + tool "Ada83" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "CodeName" + value "") + (object Attribute + tool "Ada83" + name "ClassName" + value "Object") + (object Attribute + tool "Ada83" + name "ClassAccess" + value ("ImplementationSet" 43)) + (object Attribute + tool "Ada83" + name "ImplementationType" + value (value Text "")) + (object Attribute + tool "Ada83" + name "IsSubtype" + value FALSE) + (object Attribute + tool "Ada83" + name "PolymorphicUnit" + value FALSE) + (object Attribute + tool "Ada83" + name "HandleName" + value "Handle") + (object Attribute + tool "Ada83" + name "HandleAccess" + value ("ImplementationSet" 45)) + (object Attribute + tool "Ada83" + name "Discriminant" + value "") + (object Attribute + tool "Ada83" + name "Variant" + value "") + (object Attribute + tool "Ada83" + name "EnumerationLiteralPrefix" + value "A_") + (object Attribute + tool "Ada83" + name "RecordFieldPrefix" + value "The_") + (object Attribute + tool "Ada83" + name "GenerateAccessorOperations" + value TRUE) + (object Attribute + tool "Ada83" + name "GenerateStandardOperations" + value TRUE) + (object Attribute + tool "Ada83" + name "ImplicitParameter" + value TRUE) + (object Attribute + tool "Ada83" + name "ClassParameterName" + value "This") + (object Attribute + tool "Ada83" + name "DefaultConstructorKind" + value ("ConstructorKindSet" 199)) + (object Attribute + tool "Ada83" + name "DefaultConstructorName" + value "Create") + (object Attribute + tool "Ada83" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "Ada83" + name "CopyConstructorKind" + value ("ConstructorKindSet" 199)) + (object Attribute + tool "Ada83" + name "CopyConstructorName" + value "Copy") + (object Attribute + tool "Ada83" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "Ada83" + name "DestructorName" + value "Free") + (object Attribute + tool "Ada83" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "Ada83" + name "ClassEqualityOperation" + value "") + (object Attribute + tool "Ada83" + name "HandleEqualityOperation" + value "") + (object Attribute + tool "Ada83" + name "InlineEquality" + value FALSE) + (object Attribute + tool "Ada83" + name "IsTask" + value FALSE) + (object Attribute + tool "Ada83" + name "Representation" + value (value Text "")) + (object Attribute + tool "Ada83" + name "ImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Public" + value 45) + (object Attribute + tool "Ada83" + name "Private" + value 43) + (object Attribute + tool "Ada83" + name "LimitedPrivate" + value 200) + (object Attribute + tool "Ada83" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada83" + name "ConstructorKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Procedure" + value 202) + (object Attribute + tool "Ada83" + name "Function" + value 199) + (object Attribute + tool "Ada83" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada83" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Generate" + value TRUE) + (object Attribute + tool "Ada83" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "Ada83" + name "FileName" + value "") + (object Attribute + tool "Ada83" + name "ReturnType" + value "") + (object Attribute + tool "Ada83" + name "GenericFormalParameters" + value (value Text "")) + (object Attribute + tool "Ada83" + name "AdditionalWiths" + value (value Text "")))) + (object Attribute + tool "Ada83" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Generate" + value TRUE) + (object Attribute + tool "Ada83" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "Ada83" + name "FileName" + value "") + (object Attribute + tool "Ada83" + name "ReturnType" + value "") + (object Attribute + tool "Ada83" + name "AdditionalWiths" + value (value Text "")) + (object Attribute + tool "Ada83" + name "IsSubunit" + value FALSE))) + (object Attribute + tool "Ada83" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "CodeName" + value "") + (object Attribute + tool "Ada83" + name "SubprogramImplementation" + value ("SubprogramImplementationSet" 2)) + (object Attribute + tool "Ada83" + name "ClassParameterMode" + value ("ParameterModeSet" 203)) + (object Attribute + tool "Ada83" + name "Inline" + value FALSE) + (object Attribute + tool "Ada83" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "Ada83" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "Ada83" + name "Representation" + value (value Text "")) + (object Attribute + tool "Ada83" + name "SubprogramImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Body" + value 2) + (object Attribute + tool "Ada83" + name "Separate" + value 223) + (object Attribute + tool "Ada83" + name "Spec" + value 224))) + (object Attribute + tool "Ada83" + name "ParameterModeSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "In" + value 204) + (object Attribute + tool "Ada83" + name "Out" + value 205) + (object Attribute + tool "Ada83" + name "InOut" + value 203) + (object Attribute + tool "Ada83" + name "FunctionReturn" + value 206) + (object Attribute + tool "Ada83" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada83" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "CodeName" + value "") + (object Attribute + tool "Ada83" + name "NameIfUnlabeled" + value "The_${supplier}") + (object Attribute + tool "Ada83" + name "DataMemberName" + value "${relationship}") + (object Attribute + tool "Ada83" + name "GetName" + value "Get_${relationship}") + (object Attribute + tool "Ada83" + name "InlineGet" + value TRUE) + (object Attribute + tool "Ada83" + name "SetName" + value "Set_${relationship}") + (object Attribute + tool "Ada83" + name "InlineSet" + value TRUE) + (object Attribute + tool "Ada83" + name "IsConstant" + value FALSE) + (object Attribute + tool "Ada83" + name "InitialValue" + value "") + (object Attribute + tool "Ada83" + name "Variant" + value "") + (object Attribute + tool "Ada83" + name "ContainerGeneric" + value "List") + (object Attribute + tool "Ada83" + name "ContainerType" + value "") + (object Attribute + tool "Ada83" + name "ContainerDeclarations" + value (value Text "")) + (object Attribute + tool "Ada83" + name "SelectorName" + value "") + (object Attribute + tool "Ada83" + name "SelectorType" + value ""))) + (object Attribute + tool "Ada83" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "CodeName" + value "") + (object Attribute + tool "Ada83" + name "DataMemberName" + value "${attribute}") + (object Attribute + tool "Ada83" + name "GetName" + value "Get_${attribute}") + (object Attribute + tool "Ada83" + name "InlineGet" + value TRUE) + (object Attribute + tool "Ada83" + name "SetName" + value "Set_${attribute}") + (object Attribute + tool "Ada83" + name "InlineSet" + value TRUE) + (object Attribute + tool "Ada83" + name "IsConstant" + value FALSE) + (object Attribute + tool "Ada83" + name "InitialValue" + value "") + (object Attribute + tool "Ada83" + name "Variant" + value "") + (object Attribute + tool "Ada83" + name "Representation" + value (value Text "")))) + (object Attribute + tool "Ada83" + name "default__Association" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "NameIfUnlabeled" + value "The_${targetClass}") + (object Attribute + tool "Ada83" + name "GetName" + value "Get_${association}") + (object Attribute + tool "Ada83" + name "InlineGet" + value FALSE) + (object Attribute + tool "Ada83" + name "SetName" + value "Set_${association}") + (object Attribute + tool "Ada83" + name "InlineSet" + value FALSE) + (object Attribute + tool "Ada83" + name "GenerateAssociate" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada83" + name "AssociateName" + value "Associate") + (object Attribute + tool "Ada83" + name "InlineAssociate" + value FALSE) + (object Attribute + tool "Ada83" + name "GenerateDissociate" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada83" + name "DissociateName" + value "Dissociate") + (object Attribute + tool "Ada83" + name "InlineDissociate" + value FALSE) + (object Attribute + tool "Ada83" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Procedure" + value 202) + (object Attribute + tool "Ada83" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada83" + name "FunctionKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Function" + value 199) + (object Attribute + tool "Ada83" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada83" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "CodeName" + value "") + (object Attribute + tool "Ada83" + name "NameIfUnlabeled" + value "The_${targetClass}") + (object Attribute + tool "Ada83" + name "DataMemberName" + value "${target}") + (object Attribute + tool "Ada83" + name "GetName" + value "Get_${target}") + (object Attribute + tool "Ada83" + name "InlineGet" + value TRUE) + (object Attribute + tool "Ada83" + name "SetName" + value "Set_${target}") + (object Attribute + tool "Ada83" + name "InlineSet" + value TRUE) + (object Attribute + tool "Ada83" + name "IsConstant" + value FALSE) + (object Attribute + tool "Ada83" + name "InitialValue" + value "") + (object Attribute + tool "Ada83" + name "ContainerGeneric" + value "List") + (object Attribute + tool "Ada83" + name "ContainerType" + value "") + (object Attribute + tool "Ada83" + name "ContainerDeclarations" + value (value Text "")) + (object Attribute + tool "Ada83" + name "SelectorName" + value "") + (object Attribute + tool "Ada83" + name "SelectorType" + value "") + (object Attribute + tool "Ada83" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Procedure" + value 202) + (object Attribute + tool "Ada83" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada83" + name "default__Subsystem" + value (list Attribute_Set + (object Attribute + tool "Ada83" + name "Directory" + value "AUTO GENERATE"))) + (object Attribute + tool "Ada83" + name "HiddenTool" + value FALSE) + (object Attribute + tool "Ada95" + name "propertyId" + value "838326200") + (object Attribute + tool "Ada95" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "SpecFileExtension" + value "1.ada") + (object Attribute + tool "Ada95" + name "SpecFileBackupExtension" + value "1.ad~") + (object Attribute + tool "Ada95" + name "SpecFileTemporaryExtension" + value "1.ad#") + (object Attribute + tool "Ada95" + name "BodyFileExtension" + value "2.ada") + (object Attribute + tool "Ada95" + name "BodyFileBackupExtension" + value "2.ad~") + (object Attribute + tool "Ada95" + name "BodyFileTemporaryExtension" + value "2.ad#") + (object Attribute + tool "Ada95" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "Ada95" + name "UseColonNotation" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateBodies" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateAccessorOperations" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateStandardOperations" + value TRUE) + (object Attribute + tool "Ada95" + name "ImplicitParameter" + value TRUE) + (object Attribute + tool "Ada95" + name "CommentWidth" + value 60) + (object Attribute + tool "Ada95" + name "StopOnError" + value FALSE) + (object Attribute + tool "Ada95" + name "ErrorLimit" + value 30) + (object Attribute + tool "Ada95" + name "UseFileName" + value FALSE) + (object Attribute + tool "Ada95" + name "Directory" + value "$ROSEADA95_SOURCE"))) + (object Attribute + tool "Ada95" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "CodeName" + value "") + (object Attribute + tool "Ada95" + name "TypeName" + value "Object") + (object Attribute + tool "Ada95" + name "TypeVisibility" + value ("TypeVisibilitySet" 43)) + (object Attribute + tool "Ada95" + name "TypeImplementation" + value ("TypeImplementationSet" 208)) + (object Attribute + tool "Ada95" + name "TypeControl" + value ("TypeControlSet" 225)) + (object Attribute + tool "Ada95" + name "TypeControlName" + value "Controlled_${type}") + (object Attribute + tool "Ada95" + name "TypeDefinition" + value (value Text "")) + (object Attribute + tool "Ada95" + name "RecordImplementation" + value ("RecordImplementationSet" 209)) + (object Attribute + tool "Ada95" + name "RecordKindPackageName" + value "${class}_Record_Kinds") + (object Attribute + tool "Ada95" + name "IsLimited" + value FALSE) + (object Attribute + tool "Ada95" + name "IsSubtype" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateAccessType" + value ("GenerateAccessTypeSet" 230)) + (object Attribute + tool "Ada95" + name "AccessTypeName" + value "Handle") + (object Attribute + tool "Ada95" + name "AccessTypeVisibility" + value ("TypeVisibilitySet" 45)) + (object Attribute + tool "Ada95" + name "AccessTypeDefinition" + value (value Text "")) + (object Attribute + tool "Ada95" + name "AccessClassWide" + value TRUE) + (object Attribute + tool "Ada95" + name "MaybeAliased" + value FALSE) + (object Attribute + tool "Ada95" + name "ParameterizedImplementation" + value ("ParameterizedImplementationSet" 11)) + (object Attribute + tool "Ada95" + name "ParentClassName" + value "Superclass") + (object Attribute + tool "Ada95" + name "EnumerationLiteralPrefix" + value "A_") + (object Attribute + tool "Ada95" + name "RecordFieldPrefix" + value "The_") + (object Attribute + tool "Ada95" + name "ArrayOfTypeName" + value "Array_Of_${type}") + (object Attribute + tool "Ada95" + name "AccessArrayOfTypeName" + value "Access_Array_Of_${type}") + (object Attribute + tool "Ada95" + name "ArrayOfAccessTypeName" + value "Array_Of_${access_type}") + (object Attribute + tool "Ada95" + name "AccessArrayOfAccessTypeName" + value "Access_Array_Of_${access_type}") + (object Attribute + tool "Ada95" + name "ArrayIndexDefinition" + value "Positive range <>") + (object Attribute + tool "Ada95" + name "GenerateAccessorOperations" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateStandardOperations" + value TRUE) + (object Attribute + tool "Ada95" + name "ImplicitParameter" + value TRUE) + (object Attribute + tool "Ada95" + name "ImplicitParameterName" + value "This") + (object Attribute + tool "Ada95" + name "GenerateDefaultConstructor" + value ("SubprogramKindSet" 199)) + (object Attribute + tool "Ada95" + name "DefaultConstructorName" + value "Create") + (object Attribute + tool "Ada95" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateCopyConstructor" + value ("SubprogramKindSet" 199)) + (object Attribute + tool "Ada95" + name "CopyConstructorName" + value "Copy") + (object Attribute + tool "Ada95" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateDestructor" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "DestructorName" + value "Free") + (object Attribute + tool "Ada95" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateTypeEquality" + value ("FunctionKindSet" 201)) + (object Attribute + tool "Ada95" + name "TypeEqualityName" + value "${quote}=${quote}") + (object Attribute + tool "Ada95" + name "InlineEquality" + value FALSE) + (object Attribute + tool "Ada95" + name "Representation" + value (value Text "")) + (object Attribute + tool "Ada95" + name "TypeImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Tagged" + value 208) + (object Attribute + tool "Ada95" + name "Record" + value 210) + (object Attribute + tool "Ada95" + name "Mixin" + value 211) + (object Attribute + tool "Ada95" + name "Protected" + value 44) + (object Attribute + tool "Ada95" + name "Task" + value 212))) + (object Attribute + tool "Ada95" + name "RecordImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "SingleType" + value 209) + (object Attribute + tool "Ada95" + name "MultipleTypes" + value 213))) + (object Attribute + tool "Ada95" + name "ParameterizedImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Generic" + value 11) + (object Attribute + tool "Ada95" + name "Unconstrained" + value 214))) + (object Attribute + tool "Ada95" + name "TypeVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Public" + value 45) + (object Attribute + tool "Ada95" + name "Private" + value 43))) + (object Attribute + tool "Ada95" + name "SubprogramKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Procedure" + value 202) + (object Attribute + tool "Ada95" + name "Function" + value 199) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Procedure" + value 202) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "FunctionKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Function" + value 199) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "TypeControlSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "None" + value 225) + (object Attribute + tool "Ada95" + name "InitializationOnly" + value 226) + (object Attribute + tool "Ada95" + name "AssignmentFinalizationOnly" + value 227) + (object Attribute + tool "Ada95" + name "All" + value 228))) + (object Attribute + tool "Ada95" + name "GenerateAccessTypeSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Always" + value 229) + (object Attribute + tool "Ada95" + name "Auto" + value 230))))) + (object Attribute + tool "Ada95" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Generate" + value TRUE) + (object Attribute + tool "Ada95" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "Ada95" + name "FileName" + value "") + (object Attribute + tool "Ada95" + name "ReturnType" + value "") + (object Attribute + tool "Ada95" + name "GenericFormalParameters" + value (value Text "")) + (object Attribute + tool "Ada95" + name "AdditionalWiths" + value (value Text "")) + (object Attribute + tool "Ada95" + name "IsPrivate" + value FALSE))) + (object Attribute + tool "Ada95" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Generate" + value TRUE) + (object Attribute + tool "Ada95" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "Ada95" + name "FileName" + value "") + (object Attribute + tool "Ada95" + name "ReturnType" + value "") + (object Attribute + tool "Ada95" + name "AdditionalWiths" + value (value Text "")) + (object Attribute + tool "Ada95" + name "IsSubunit" + value FALSE))) + (object Attribute + tool "Ada95" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "CodeName" + value "") + (object Attribute + tool "Ada95" + name "SubprogramImplementation" + value ("SubprogramImplementationSet" 2)) + (object Attribute + tool "Ada95" + name "Renames" + value "") + (object Attribute + tool "Ada95" + name "GenerateOverriding" + value TRUE) + (object Attribute + tool "Ada95" + name "ImplicitParameterMode" + value ("ParameterModeSet" 203)) + (object Attribute + tool "Ada95" + name "ImplicitParameterClassWide" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateAccessOperation" + value FALSE) + (object Attribute + tool "Ada95" + name "Inline" + value FALSE) + (object Attribute + tool "Ada95" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "Ada95" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "Ada95" + name "EntryBarrierCondition" + value "True") + (object Attribute + tool "Ada95" + name "Representation" + value (value Text "")) + (object Attribute + tool "Ada95" + name "SubprogramImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Abstract" + value 221) + (object Attribute + tool "Ada95" + name "Body" + value 2) + (object Attribute + tool "Ada95" + name "Renaming" + value 222) + (object Attribute + tool "Ada95" + name "Separate" + value 223) + (object Attribute + tool "Ada95" + name "Spec" + value 224))) + (object Attribute + tool "Ada95" + name "ParameterModeSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "In" + value 204) + (object Attribute + tool "Ada95" + name "Out" + value 205) + (object Attribute + tool "Ada95" + name "InOut" + value 203) + (object Attribute + tool "Ada95" + name "Access" + value 220) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada95" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "CodeName" + value "") + (object Attribute + tool "Ada95" + name "NameIfUnlabeled" + value "The_${supplier}") + (object Attribute + tool "Ada95" + name "RecordFieldImplementation" + value ("RecordFieldImplementationSet" 216)) + (object Attribute + tool "Ada95" + name "RecordFieldName" + value "${relationship}") + (object Attribute + tool "Ada95" + name "GenerateGet" + value ("FunctionKindSet" 199)) + (object Attribute + tool "Ada95" + name "GenerateAccessGet" + value ("FunctionKindSet" 201)) + (object Attribute + tool "Ada95" + name "GetName" + value "Get_${relationship}") + (object Attribute + tool "Ada95" + name "InlineGet" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateSet" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "GenerateAccessSet" + value ("ProcedureKindSet" 201)) + (object Attribute + tool "Ada95" + name "SetName" + value "Set_${relationship}") + (object Attribute + tool "Ada95" + name "InlineSet" + value TRUE) + (object Attribute + tool "Ada95" + name "IsAliased" + value FALSE) + (object Attribute + tool "Ada95" + name "IsConstant" + value FALSE) + (object Attribute + tool "Ada95" + name "InitialValue" + value "") + (object Attribute + tool "Ada95" + name "ContainerImplementation" + value ("ContainerImplementationSet" 217)) + (object Attribute + tool "Ada95" + name "ContainerGeneric" + value "List") + (object Attribute + tool "Ada95" + name "ContainerType" + value "") + (object Attribute + tool "Ada95" + name "ContainerDeclarations" + value (value Text "")) + (object Attribute + tool "Ada95" + name "SelectorName" + value "") + (object Attribute + tool "Ada95" + name "SelectorType" + value "") + (object Attribute + tool "Ada95" + name "RecordFieldImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Component" + value 216) + (object Attribute + tool "Ada95" + name "Discriminant" + value 218) + (object Attribute + tool "Ada95" + name "AccessDiscriminant" + value 219))) + (object Attribute + tool "Ada95" + name "ContainerImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Array" + value 217) + (object Attribute + tool "Ada95" + name "Generic" + value 11))) + (object Attribute + tool "Ada95" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Procedure" + value 202) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "FunctionKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Function" + value 199) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada95" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "CodeName" + value "") + (object Attribute + tool "Ada95" + name "RecordFieldImplementation" + value ("RecordFieldImplementationSet" 216)) + (object Attribute + tool "Ada95" + name "RecordFieldName" + value "${attribute}") + (object Attribute + tool "Ada95" + name "GenerateGet" + value ("FunctionKindSet" 199)) + (object Attribute + tool "Ada95" + name "GenerateAccessGet" + value ("FunctionKindSet" 201)) + (object Attribute + tool "Ada95" + name "GetName" + value "Get_${attribute}") + (object Attribute + tool "Ada95" + name "InlineGet" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateSet" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "GenerateAccessSet" + value ("ProcedureKindSet" 201)) + (object Attribute + tool "Ada95" + name "SetName" + value "Set_${attribute}") + (object Attribute + tool "Ada95" + name "InlineSet" + value TRUE) + (object Attribute + tool "Ada95" + name "IsAliased" + value FALSE) + (object Attribute + tool "Ada95" + name "IsConstant" + value FALSE) + (object Attribute + tool "Ada95" + name "InitialValue" + value "") + (object Attribute + tool "Ada95" + name "Representation" + value (value Text "")) + (object Attribute + tool "Ada95" + name "RecordFieldImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Component" + value 216) + (object Attribute + tool "Ada95" + name "Discriminant" + value 218) + (object Attribute + tool "Ada95" + name "AccessDiscriminant" + value 219))) + (object Attribute + tool "Ada95" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Procedure" + value 202) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "FunctionKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Function" + value 199) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada95" + name "default__Association" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "NameIfUnlabeled" + value "The_${targetClass}") + (object Attribute + tool "Ada95" + name "GenerateGet" + value ("FunctionKindSet" 199)) + (object Attribute + tool "Ada95" + name "GetName" + value "Get_${association}") + (object Attribute + tool "Ada95" + name "InlineGet" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateSet" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "SetName" + value "Set_${association}") + (object Attribute + tool "Ada95" + name "InlineSet" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateAssociate" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "AssociateName" + value "Associate") + (object Attribute + tool "Ada95" + name "InlineAssociate" + value FALSE) + (object Attribute + tool "Ada95" + name "GenerateDissociate" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "DissociateName" + value "Dissociate") + (object Attribute + tool "Ada95" + name "InlineDissociate" + value FALSE) + (object Attribute + tool "Ada95" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Procedure" + value 202) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "FunctionKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Function" + value 199) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada95" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "CodeName" + value "") + (object Attribute + tool "Ada95" + name "NameIfUnlabeled" + value "The_${targetClass}") + (object Attribute + tool "Ada95" + name "RecordFieldImplementation" + value ("RecordFieldImplementationSet" 216)) + (object Attribute + tool "Ada95" + name "RecordFieldName" + value "${target}") + (object Attribute + tool "Ada95" + name "GenerateGet" + value ("FunctionKindSet" 199)) + (object Attribute + tool "Ada95" + name "GenerateAccessGet" + value ("FunctionKindSet" 201)) + (object Attribute + tool "Ada95" + name "GetName" + value "Get_${target}") + (object Attribute + tool "Ada95" + name "InlineGet" + value TRUE) + (object Attribute + tool "Ada95" + name "GenerateSet" + value ("ProcedureKindSet" 202)) + (object Attribute + tool "Ada95" + name "GenerateAccessSet" + value ("ProcedureKindSet" 201)) + (object Attribute + tool "Ada95" + name "SetName" + value "Set_${target}") + (object Attribute + tool "Ada95" + name "InlineSet" + value TRUE) + (object Attribute + tool "Ada95" + name "IsAliased" + value FALSE) + (object Attribute + tool "Ada95" + name "IsConstant" + value FALSE) + (object Attribute + tool "Ada95" + name "InitialValue" + value "") + (object Attribute + tool "Ada95" + name "ContainerImplementation" + value ("ContainerImplementationSet" 217)) + (object Attribute + tool "Ada95" + name "ContainerGeneric" + value "List") + (object Attribute + tool "Ada95" + name "ContainerType" + value "") + (object Attribute + tool "Ada95" + name "ContainerDeclarations" + value (value Text "")) + (object Attribute + tool "Ada95" + name "SelectorName" + value "") + (object Attribute + tool "Ada95" + name "SelectorType" + value "") + (object Attribute + tool "Ada95" + name "ProcedureKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Procedure" + value 202) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))) + (object Attribute + tool "Ada95" + name "RecordFieldImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Component" + value 216) + (object Attribute + tool "Ada95" + name "Discriminant" + value 218) + (object Attribute + tool "Ada95" + name "AccessDiscriminant" + value 219))) + (object Attribute + tool "Ada95" + name "ContainerImplementationSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Array" + value 217) + (object Attribute + tool "Ada95" + name "Generic" + value 11))) + (object Attribute + tool "Ada95" + name "FunctionKindSet" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Function" + value 199) + (object Attribute + tool "Ada95" + name "DoNotCreate" + value 201))))) + (object Attribute + tool "Ada95" + name "default__Subsystem" + value (list Attribute_Set + (object Attribute + tool "Ada95" + name "Directory" + value "AUTO GENERATE"))) + (object Attribute + tool "Ada95" + name "HiddenTool" + value FALSE) + (object Attribute + tool "CORBA" + name "propertyId" + value "809135966") + (object Attribute + tool "CORBA" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "CORBA" + name "Editor" + value ("EditorType" 100)) + (object Attribute + tool "CORBA" + name "IncludePath" + value "") + (object Attribute + tool "CORBA" + name "StopOnError" + value TRUE) + (object Attribute + tool "CORBA" + name "EditorType" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "BuiltIn" + value 100) + (object Attribute + tool "CORBA" + name "WindowsShell" + value 101))))) + (object Attribute + tool "CORBA" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "ArrayDimensions" + value "") + (object Attribute + tool "CORBA" + name "ConstValue" + value "") + (object Attribute + tool "CORBA" + name "ImplementationType" + value ""))) + (object Attribute + tool "CORBA" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "CORBA" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "CORBA" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "CORBA" + name "InclusionProtectionSymbol" + value "AUTO GENERATE"))) + (object Attribute + tool "CORBA" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "CORBA" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "CORBA" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "CORBA" + name "InclusionProtectionSymbol" + value "AUTO GENERATE"))) + (object Attribute + tool "CORBA" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "Context" + value "") + (object Attribute + tool "CORBA" + name "OperationIsOneWay" + value FALSE))) + (object Attribute + tool "CORBA" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "ArrayDimensions" + value "") + (object Attribute + tool "CORBA" + name "CaseSpecifier" + value "") + (object Attribute + tool "CORBA" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "CORBA" + name "Order" + value ""))) + (object Attribute + tool "CORBA" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "ArrayDimensions" + value "") + (object Attribute + tool "CORBA" + name "CaseSpecifier" + value "") + (object Attribute + tool "CORBA" + name "GenerateForwardReference" + value FALSE) + (object Attribute + tool "CORBA" + name "IsReadOnly" + value FALSE) + (object Attribute + tool "CORBA" + name "Order" + value "") + (object Attribute + tool "CORBA" + name "BoundedRoleType" + value ("AssocTypeSet" 47)) + (object Attribute + tool "CORBA" + name "AssocTypeSet" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "Array" + value 24) + (object Attribute + tool "CORBA" + name "Sequence" + value 47))))) + (object Attribute + tool "CORBA" + name "default__Uses" + value (list Attribute_Set + (object Attribute + tool "CORBA" + name "GenerateForwardReference" + value FALSE))) + (object Attribute + tool "CORBA" + name "HiddenTool" + value FALSE) + (object Attribute + tool "DDL" + name "propertyId" + value "809135966") + (object Attribute + tool "DDL" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "DDL" + name "DataBase" + value ("DataBaseSet" 800)) + (object Attribute + tool "DDL" + name "DataBaseSet" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ANSI" + value 800) + (object Attribute + tool "DDL" + name "Oracle" + value 801) + (object Attribute + tool "DDL" + name "SQLServer" + value 802) + (object Attribute + tool "DDL" + name "Sybase" + value 803) + (object Attribute + tool "DDL" + name "Watcom" + value 804))) + (object Attribute + tool "DDL" + name "PrimaryKeyColumnName" + value "Id") + (object Attribute + tool "DDL" + name "PrimaryKeyColumnType" + value "NUMBER(5)") + (object Attribute + tool "DDL" + name "ViewName" + value "V_") + (object Attribute + tool "DDL" + name "TableName" + value "T_") + (object Attribute + tool "DDL" + name "InheritSuffix" + value "_V") + (object Attribute + tool "DDL" + name "DropClause" + value FALSE) + (object Attribute + tool "DDL" + name "BaseViews" + value FALSE) + (object Attribute + tool "DDL" + name "DDLScriptFilename" + value "DDL1.SQL"))) + (object Attribute + tool "DDL" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "DDL" + name "ColumnType" + value "VARCHAR") + (object Attribute + tool "DDL" + name "Length" + value "") + (object Attribute + tool "DDL" + name "NullsOK" + value TRUE) + (object Attribute + tool "DDL" + name "PrimaryKey" + value FALSE) + (object Attribute + tool "DDL" + name "Unique" + value FALSE) + (object Attribute + tool "DDL" + name "CompositeUnique" + value FALSE) + (object Attribute + tool "DDL" + name "CheckConstraint" + value ""))) + (object Attribute + tool "DDL" + name "HiddenTool" + value FALSE) + (object Attribute + tool "Java" + name "propertyId" + value "809135966") + (object Attribute + tool "Java" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "Java" + name "RootDir" + value "") + (object Attribute + tool "Java" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "Java" + name "StopOnError" + value FALSE) + (object Attribute + tool "Java" + name "UsePrefixes" + value FALSE) + (object Attribute + tool "Java" + name "AutoSync" + value FALSE) + (object Attribute + tool "Java" + name "ShowCodegenDlg" + value FALSE) + (object Attribute + tool "Java" + name "JavadocDefaultAuthor" + value "") + (object Attribute + tool "Java" + name "JavadocDefaultVersion" + value "") + (object Attribute + tool "Java" + name "JavadocDefaultSince" + value "") + (object Attribute + tool "Java" + name "JavadocNumAsterisks" + value 0) + (object Attribute + tool "Java" + name "MaxNumChars" + value 80) + (object Attribute + tool "Java" + name "Editor" + value ("EditorType" 100)) + (object Attribute + tool "Java" + name "VM" + value ("VMType" 200)) + (object Attribute + tool "Java" + name "ClassPath" + value "") + (object Attribute + tool "Java" + name "EditorType" + value (list Attribute_Set + (object Attribute + tool "Java" + name "BuiltIn" + value 100) + (object Attribute + tool "Java" + name "WindowsShell" + value 101))) + (object Attribute + tool "Java" + name "VMType" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Sun" + value 200) + (object Attribute + tool "Java" + name "Microsoft" + value 201) + (object Attribute + tool "Java" + name "IBM" + value 202))) + (object Attribute + tool "Java" + name "InstanceVariablePrefix" + value "m_") + (object Attribute + tool "Java" + name "ClassVariablePrefix" + value "s_") + (object Attribute + tool "Java" + name "DefaultAttributeDataType" + value "int") + (object Attribute + tool "Java" + name "DefaultOperationReturnType" + value "void") + (object Attribute + tool "Java" + name "NoClassCustomDlg" + value FALSE) + (object Attribute + tool "Java" + name "GlobalImports" + value (value Text "")) + (object Attribute + tool "Java" + name "OpenBraceClassStyle" + value TRUE) + (object Attribute + tool "Java" + name "OpenBraceMethodStyle" + value TRUE) + (object Attribute + tool "Java" + name "UseTabs" + value FALSE) + (object Attribute + tool "Java" + name "UseSpaces" + value TRUE) + (object Attribute + tool "Java" + name "SpacingItems" + value 3) + (object Attribute + tool "Java" + name "RoseDefaultCommentStyle" + value TRUE) + (object Attribute + tool "Java" + name "AsteriskCommentStyle" + value FALSE) + (object Attribute + tool "Java" + name "JavaCommentStyle" + value FALSE) + (object Attribute + tool "Java" + name "JavadocAuthor" + value FALSE) + (object Attribute + tool "Java" + name "JavadocSince" + value FALSE) + (object Attribute + tool "Java" + name "JavadocVersion" + value FALSE))) + (object Attribute + tool "Java" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Final" + value FALSE) + (object Attribute + tool "Java" + name "Static" + value FALSE) + (object Attribute + tool "Java" + name "GenerateDefaultConstructor" + value TRUE) + (object Attribute + tool "Java" + name "ConstructorIs" + value ("Ctor_Set" 62)) + (object Attribute + tool "Java" + name "Ctor_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "public" + value 62) + (object Attribute + tool "Java" + name "protected" + value 63) + (object Attribute + tool "Java" + name "private" + value 64) + (object Attribute + tool "Java" + name "package" + value 65))) + (object Attribute + tool "Java" + name "GenerateFinalizer" + value FALSE) + (object Attribute + tool "Java" + name "GenerateStaticInitializer" + value FALSE) + (object Attribute + tool "Java" + name "GenerateInstanceInitializer" + value FALSE) + (object Attribute + tool "Java" + name "GenerateCode" + value TRUE) + (object Attribute + tool "Java" + name "DisableAutoSync" + value FALSE))) + (object Attribute + tool "Java" + name "Default_Servlet__Class" + value (list Attribute_Set + (object Attribute + tool "Java" + name "ServletName" + value "") + (object Attribute + tool "Java" + name "ServletContextRef" + value FALSE) + (object Attribute + tool "Java" + name "IsSingleThread" + value FALSE) + (object Attribute + tool "Java" + name "ServletInitParameter" + value "") + (object Attribute + tool "Java" + name "ServletInitParameterNames" + value FALSE) + (object Attribute + tool "Java" + name "ServletIsSecure" + value FALSE) + (object Attribute + tool "Java" + name "ServletRequestDispatcher" + value FALSE) + (object Attribute + tool "Java" + name "ServletRequestDispatcherPath" + value "") + (object Attribute + tool "Java" + name "DispatcherInclude" + value FALSE) + (object Attribute + tool "Java" + name "DispatcherForward" + value FALSE) + (object Attribute + tool "Java" + name "ServletSecurityRoles" + value "") + (object Attribute + tool "Java" + name "ServletgetInfo" + value ""))) + (object Attribute + tool "Java" + name "Http_Servlet__Class" + value (list Attribute_Set + (object Attribute + tool "Java" + name "ServletRequestAttribute" + value "") + (object Attribute + tool "Java" + name "ServletRequestAttributesNames" + value FALSE) + (object Attribute + tool "Java" + name "MethodForRequestAttributes" + value "") + (object Attribute + tool "Java" + name "ServletRequestParameter" + value "") + (object Attribute + tool "Java" + name "ServletRequestParameterNames" + value FALSE) + (object Attribute + tool "Java" + name "MethodForRequestParameters" + value "") + (object Attribute + tool "Java" + name "ServletHeader" + value "") + (object Attribute + tool "Java" + name "ServletHeaderNames" + value FALSE) + (object Attribute + tool "Java" + name "MethodForHeaders" + value "") + (object Attribute + tool "Java" + name "ServletIntHeader" + value FALSE) + (object Attribute + tool "Java" + name "ServletDateHeader" + value FALSE) + (object Attribute + tool "Java" + name "ServletCookie" + value FALSE) + (object Attribute + tool "Java" + name "MethodForCookie" + value "") + (object Attribute + tool "Java" + name "ServletContentType" + value "") + (object Attribute + tool "Java" + name "GenerateHTML" + value FALSE))) + (object Attribute + tool "Java" + name "Default_EJB__Class" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Generate_XML_DD" + value TRUE) + (object Attribute + tool "Java" + name "EJBCmpField" + value "") + (object Attribute + tool "Java" + name "EJBEnvironmentProperties" + value "") + (object Attribute + tool "Java" + name "EJBCnxFactory" + value "") + (object Attribute + tool "Java" + name "EJBReferences" + value "") + (object Attribute + tool "Java" + name "EJBSecurityRoles" + value "") + (object Attribute + tool "Java" + name "EJBNameInJAR" + value "") + (object Attribute + tool "Java" + name "EJBSessionType" + value ("EJBSessionType_Set" 200)) + (object Attribute + tool "Java" + name "EJBSessionType_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "" + value 200) + (object Attribute + tool "Java" + name "Stateless" + value 201) + (object Attribute + tool "Java" + name "Stateful" + value 202))) + (object Attribute + tool "Java" + name "EJBTransactionType" + value ("EJBTransactionType_Set" 211)) + (object Attribute + tool "Java" + name "EJBTransactionType_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Container" + value 211) + (object Attribute + tool "Java" + name "Bean" + value 212))) + (object Attribute + tool "Java" + name "EJBPersistenceType" + value ("EJBPersistenceType_Set" 220)) + (object Attribute + tool "Java" + name "EJBPersistenceType_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "" + value 220) + (object Attribute + tool "Java" + name "Bean" + value 221) + (object Attribute + tool "Java" + name "Container" + value 222))) + (object Attribute + tool "Java" + name "EJBReentrant" + value FALSE) + (object Attribute + tool "Java" + name "BMP_Extend_CMP" + value FALSE))) + (object Attribute + tool "Java" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "Java" + name "CmIdentification" + value (value Text "")) + (object Attribute + tool "Java" + name "CopyrightNotice" + value (value Text "")))) + (object Attribute + tool "Java" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "Java" + name "CmIdentification" + value (value Text "")) + (object Attribute + tool "Java" + name "CopyrightNotice" + value (value Text "")))) + (object Attribute + tool "Java" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Abstract" + value FALSE) + (object Attribute + tool "Java" + name "Static" + value FALSE) + (object Attribute + tool "Java" + name "Final" + value FALSE) + (object Attribute + tool "Java" + name "Native" + value FALSE) + (object Attribute + tool "Java" + name "Synchronized" + value FALSE))) + (object Attribute + tool "Java" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Final" + value FALSE) + (object Attribute + tool "Java" + name "Transient" + value FALSE) + (object Attribute + tool "Java" + name "Volatile" + value FALSE) + (object Attribute + tool "Java" + name "PropertyType" + value ("BeanProperty_Set" 71)) + (object Attribute + tool "Java" + name "BeanProperty_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Not A Property" + value 71) + (object Attribute + tool "Java" + name "Simple" + value 72) + (object Attribute + tool "Java" + name "Bound" + value 73) + (object Attribute + tool "Java" + name "Constrained" + value 74))) + (object Attribute + tool "Java" + name "IndividualChangeMgt" + value FALSE) + (object Attribute + tool "Java" + name "Read/Write" + value ("Read/Write_Set" 81)) + (object Attribute + tool "Java" + name "Read/Write_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Read & Write" + value 81) + (object Attribute + tool "Java" + name "Read Only" + value 82) + (object Attribute + tool "Java" + name "Write Only" + value 83))) + (object Attribute + tool "Java" + name "GenerateFullyQualifiedTypes" + value FALSE))) + (object Attribute + tool "Java" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "Java" + name "ContainerClass" + value "") + (object Attribute + tool "Java" + name "InitialValue" + value "") + (object Attribute + tool "Java" + name "Final" + value FALSE) + (object Attribute + tool "Java" + name "Transient" + value FALSE) + (object Attribute + tool "Java" + name "Volatile" + value FALSE) + (object Attribute + tool "Java" + name "PropertyType" + value ("BeanProperty_Set" 71)) + (object Attribute + tool "Java" + name "BeanProperty_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Not A Property" + value 71) + (object Attribute + tool "Java" + name "Simple" + value 72) + (object Attribute + tool "Java" + name "Bound" + value 73) + (object Attribute + tool "Java" + name "Constrained" + value 74))) + (object Attribute + tool "Java" + name "IndividualChangeMgt" + value FALSE) + (object Attribute + tool "Java" + name "Read/Write" + value ("Read/Write_Set" 81)) + (object Attribute + tool "Java" + name "Read/Write_Set" + value (list Attribute_Set + (object Attribute + tool "Java" + name "Read & Write" + value 81) + (object Attribute + tool "Java" + name "Read Only" + value 82) + (object Attribute + tool "Java" + name "Write Only" + value 83))) + (object Attribute + tool "Java" + name "GenerateFullyQualifiedTypes" + value FALSE) + (object Attribute + tool "Java" + name "IsNavigable" + value TRUE))) + (object Attribute + tool "Java" + name "HiddenTool" + value FALSE) + (object Attribute + tool "R2Editor" + name "HiddenTool" + value FALSE) + (object Attribute + tool "cg" + name "propertyId" + value "809135966") + (object Attribute + tool "cg" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "AllowGenerateOverNewerAnnotations" + value FALSE) + (object Attribute + tool "cg" + name "AllowGenerateOverNewerVersion" + value FALSE) + (object Attribute + tool "cg" + name "UseMSVC" + value FALSE) + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "$ROSECPP_SOURCE") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "128vx_b") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowExplicitInstantiations" + value FALSE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "CommentWidth" + value 60) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "AlwaysKeepOrphanedCode" + value FALSE))) + (object Attribute + tool "cg" + name "compiler2.1__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "AllowGenerateOverNewerAnnotations" + value FALSE) + (object Attribute + tool "cg" + name "AllowGenerateOverNewerVersion" + value FALSE) + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "$ROSECPP_SOURCE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value FALSE) + (object Attribute + tool "cg" + name "AllowExplicitInstantiations" + value FALSE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value FALSE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue(sizeof($targetClass),$limit)") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference($limit)") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference($limit)") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue(sizeof($targetClass))") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference(sizeof($qualtype), sizeof($qualcont))") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "128vx_b") + (object Attribute + tool "cg" + name "AlwaysKeepOrphanedCode" + value FALSE))) + (object Attribute + tool "cg" + name "compiler3.0__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "AllowGenerateOverNewerAnnotations" + value FALSE) + (object Attribute + tool "cg" + name "AllowGenerateOverNewerVersion" + value FALSE) + (object Attribute + tool "cg" + name "HeaderFileExtension" + value "h") + (object Attribute + tool "cg" + name "HeaderFileBackupExtension" + value "h~") + (object Attribute + tool "cg" + name "HeaderFileTemporaryExtension" + value "h#") + (object Attribute + tool "cg" + name "CodeFileExtension" + value "cpp") + (object Attribute + tool "cg" + name "CodeFileBackupExtension" + value "cp~") + (object Attribute + tool "cg" + name "CodeFileTemporaryExtension" + value "cp#") + (object Attribute + tool "cg" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "cg" + name "StopOnError" + value FALSE) + (object Attribute + tool "cg" + name "ErrorLimit" + value 30) + (object Attribute + tool "cg" + name "Directory" + value "$ROSECPP_SOURCE") + (object Attribute + tool "cg" + name "BooleanType" + value "int") + (object Attribute + tool "cg" + name "AllowTemplates" + value TRUE) + (object Attribute + tool "cg" + name "AllowExplicitInstantiations" + value FALSE) + (object Attribute + tool "cg" + name "AllowProtectedInheritance" + value TRUE) + (object Attribute + tool "cg" + name "OneByValueContainer" + value "$targetClass") + (object Attribute + tool "cg" + name "OneByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "OptionalByValueContainer" + value "OptionalByValue<$targetClass>") + (object Attribute + tool "cg" + name "OptionalByReferenceContainer" + value "$targetClass *") + (object Attribute + tool "cg" + name "FixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByValueContainer" + value "$targetClass[$limit]") + (object Attribute + tool "cg" + name "FixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "UnorderedFixedByReferenceContainer" + value "$targetClass *[$limit]") + (object Attribute + tool "cg" + name "BoundedByValueContainer" + value "BoundedListByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByValueContainer" + value "BoundedSetByValue<$targetClass,$limit>") + (object Attribute + tool "cg" + name "BoundedByReferenceContainer" + value "BoundedListByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnorderedBoundedByReferenceContainer" + value "BoundedSetByReference<$targetClass,$limit>") + (object Attribute + tool "cg" + name "UnboundedByValueContainer" + value "UnboundedListByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByValueContainer" + value "UnboundedSetByValue<$targetClass>") + (object Attribute + tool "cg" + name "UnboundedByReferenceContainer" + value "UnboundedListByReference<$targetClass>") + (object Attribute + tool "cg" + name "UnorderedUnboundedByReferenceContainer" + value "UnboundedSetByReference<$targetClass>") + (object Attribute + tool "cg" + name "QualifiedByValueContainer" + value "AssociationByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByValueContainer" + value "DictionaryByValue<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "QualifiedByReferenceContainer" + value "AssociationByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "UnorderedQualifiedByReferenceContainer" + value "DictionaryByReference<$qualtype, $qualcont>") + (object Attribute + tool "cg" + name "PathSeparator" + value "") + (object Attribute + tool "cg" + name "FileNameFormat" + value "128vx_b") + (object Attribute + tool "cg" + name "AlwaysKeepOrphanedCode" + value FALSE))) + (object Attribute + tool "cg" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ImplementationType" + value "") + (object Attribute + tool "cg" + name "ClassKey" + value "class") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "PutBodiesInSpec" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDefaultConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "DefaultConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitDefaultConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateCopyConstructor" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "CopyConstructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "ExplicitCopyConstructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDestructor" + value TRUE) + (object Attribute + tool "cg" + name "DestructorVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DestructorKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineDestructor" + value FALSE) + (object Attribute + tool "cg" + name "GenerateAssignmentOperation" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "AssignmentVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "AssignmentKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "InlineAssignmentOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateEqualityOperations" + value ("GenerateSet" 199)) + (object Attribute + tool "cg" + name "EqualityVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "EqualityKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineEqualityOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "RelationalVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "RelationalKind" + value ("FriendKindSet" 200)) + (object Attribute + tool "cg" + name "InlineRelationalOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "StorageMgmtVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStorageMgmtOperations" + value FALSE) + (object Attribute + tool "cg" + name "GenerateSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "SubscriptVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "SubscriptKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "SubscriptResultType" + value "") + (object Attribute + tool "cg" + name "InlineSubscriptOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "DereferenceVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "DereferenceKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "DereferenceResultType" + value "") + (object Attribute + tool "cg" + name "InlineDereferenceOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "IndirectionVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "IndirectionKind" + value ("ThreeKindSet" 200)) + (object Attribute + tool "cg" + name "IndirectionResultType" + value "") + (object Attribute + tool "cg" + name "InlineIndirectionOperation" + value FALSE) + (object Attribute + tool "cg" + name "GenerateStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "StreamVisibility" + value ("VisibilitySet" 45)) + (object Attribute + tool "cg" + name "InlineStreamOperations" + value FALSE) + (object Attribute + tool "cg" + name "ThreeKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202))) + (object Attribute + tool "cg" + name "KindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203))) + (object Attribute + tool "cg" + name "FriendKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "DeclareAndDefine" + value 199) + (object Attribute + tool "cg" + name "DeclareOnly" + value 205) + (object Attribute + tool "cg" + name "DoNotDeclare" + value 206))) + (object Attribute + tool "cg" + name "VisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14))))) + (object Attribute + tool "cg" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "InclusionProtectionSymbol" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value FALSE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")))) + (object Attribute + tool "cg" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Generate" + value TRUE) + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "CmIdentification" + value (value Text " %X% %Q% %Z% %W%")) + (object Attribute + tool "cg" + name "CopyrightNotice" + value (value Text "")) + (object Attribute + tool "cg" + name "FileName" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "AllowExtensionlessFileName" + value FALSE) + (object Attribute + tool "cg" + name "IncludeFormat" + value (value Text +|// $package +|#include "$file" +| + )) + (object Attribute + tool "cg" + name "IncludeBySimpleName" + value FALSE) + (object Attribute + tool "cg" + name "IncludePrecompiledHeader" + value TRUE) + (object Attribute + tool "cg" + name "IncludeOrder" + value "AMIR") + (object Attribute + tool "cg" + name "AdditionalIncludes" + value (value Text "")) + (object Attribute + tool "cg" + name "InliningStyle" + value ("InliningStyleSet" 207)) + (object Attribute + tool "cg" + name "InliningStyleSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InClassDeclaration" + value 208) + (object Attribute + tool "cg" + name "FollowingClassDeclaration" + value 207))) + (object Attribute + tool "cg" + name "TypesDefined" + value (value Text "")) + (object Attribute + tool "cg" + name "IncludeClosure" + value (value Text "")))) + (object Attribute + tool "cg" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "OperationKind" + value ("OperationKindSet" 200)) + (object Attribute + tool "cg" + name "OperationKindSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GenerateAbstractBody" + value FALSE) + (object Attribute + tool "cg" + name "SpecialDeclReturnType" + value "") + (object Attribute + tool "cg" + name "OperationIsConst" + value FALSE) + (object Attribute + tool "cg" + name "OperationIsExplicit" + value FALSE) + (object Attribute + tool "cg" + name "Inline" + value FALSE) + (object Attribute + tool "cg" + name "EntryCode" + value (value Text "")) + (object Attribute + tool "cg" + name "ExitCode" + value (value Text "")) + (object Attribute + tool "cg" + name "CCRegion" + value "") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))) + (object Attribute + tool "cg" + name "BodyAnnotations" + value ""))) + (object Attribute + tool "cg" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "Ordered" + value TRUE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$supplier") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$relationship") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$relationship") + (object Attribute + tool "cg" + name "SetName" + value "set_$relationship") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "SelectorName" + value "") + (object Attribute + tool "cg" + name "SelectorType" + value "") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "HasRelTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Association" + value (list Attribute_Set + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass"))) + (object Attribute + tool "cg" + name "default__Inherit" + value (list Attribute_Set + (object Attribute + tool "cg" + name "InstanceArguments" + value ""))) + (object Attribute + tool "cg" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "NameIfUnlabeled" + value "the_$targetClass") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$target") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "InitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "ContainerClass" + value "") + (object Attribute + tool "cg" + name "ContainerGet" + value "$data.get($keys)") + (object Attribute + tool "cg" + name "ContainerSet" + value "$data.set($keys,$value)") + (object Attribute + tool "cg" + name "QualifiedContainer" + value "") + (object Attribute + tool "cg" + name "AssocClassContainer" + value "$supplier *") + (object Attribute + tool "cg" + name "AssocClassInitialValue" + value (value Text "")) + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$target") + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "SetName" + value "set_$target") + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetSetByReference" + value ("QualifiedGetSetByReferenceSet" 2)) + (object Attribute + tool "cg" + name "QualifiedGetSetByReferenceSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_GetSetByReference" + value 2))) + (object Attribute + tool "cg" + name "GenerateQualifiedGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetName" + value "get_$target") + (object Attribute + tool "cg" + name "QualifiedGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineQualifiedGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateQualifiedSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "QualifiedSetName" + value "set_$target") + (object Attribute + tool "cg" + name "QualifiedSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineQualifiedSet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassDataMember" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassDataMemberName" + value "$target") + (object Attribute + tool "cg" + name "AssocClassDataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtRelationshipVisibility" + value 210))) + (object Attribute + tool "cg" + name "AssocClassDataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "AssocClassDataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "AssocClassGetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GenerateAssocClassGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetName" + value "get_$target") + (object Attribute + tool "cg" + name "AssocClassGetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassGetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "InlineAssocClassGet" + value TRUE) + (object Attribute + tool "cg" + name "GenerateAssocClassSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassSetName" + value "set_$target") + (object Attribute + tool "cg" + name "AssocClassSetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineAssocClassSet" + value TRUE) + (object Attribute + tool "cg" + name "AssocClassForwardReferenceOnly" + value TRUE) + (object Attribute + tool "cg" + name "AssocTypeSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Array" + value 24) + (object Attribute + tool "cg" + name "Sequence" + value 47))))) + (object Attribute + tool "cg" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateDataMember" + value TRUE) + (object Attribute + tool "cg" + name "DataMemberName" + value "$attribute") + (object Attribute + tool "cg" + name "DataMemberVisibility" + value ("DataMemberVisibilitySet" 14)) + (object Attribute + tool "cg" + name "DataMemberVisibilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Public" + value 45) + (object Attribute + tool "cg" + name "Protected" + value 44) + (object Attribute + tool "cg" + name "Private" + value 43) + (object Attribute + tool "cg" + name "Implementation" + value 14) + (object Attribute + tool "cg" + name "AtAttributeVisibility" + value 211))) + (object Attribute + tool "cg" + name "DataMemberMutability" + value ("DataMemberMutabilitySet" 0)) + (object Attribute + tool "cg" + name "DataMemberMutabilitySet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Unrestricted" + value 0) + (object Attribute + tool "cg" + name "Mutable" + value 1) + (object Attribute + tool "cg" + name "Const" + value 2))) + (object Attribute + tool "cg" + name "DataMemberIsVolatile" + value FALSE) + (object Attribute + tool "cg" + name "DataMemberFieldSize" + value "") + (object Attribute + tool "cg" + name "GenerateGetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GenerateSetOperation" + value TRUE) + (object Attribute + tool "cg" + name "GetName" + value "get_$attribute") + (object Attribute + tool "cg" + name "SetName" + value "set_$attribute") + (object Attribute + tool "cg" + name "GetSetKinds" + value ("GetSetKindsSet" 200)) + (object Attribute + tool "cg" + name "GetSetKindsSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Common" + value 200) + (object Attribute + tool "cg" + name "Virtual" + value 201) + (object Attribute + tool "cg" + name "Abstract" + value 202) + (object Attribute + tool "cg" + name "Static" + value 203) + (object Attribute + tool "cg" + name "Friend" + value 204))) + (object Attribute + tool "cg" + name "GetIsConst" + value TRUE) + (object Attribute + tool "cg" + name "GetResultIsConst" + value ("GetResultIsConstSet" 2)) + (object Attribute + tool "cg" + name "GetResultIsConstSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "False" + value 0) + (object Attribute + tool "cg" + name "True" + value 1) + (object Attribute + tool "cg" + name "Same_As_Function" + value 2))) + (object Attribute + tool "cg" + name "GetSetByReference" + value FALSE) + (object Attribute + tool "cg" + name "InlineGet" + value TRUE) + (object Attribute + tool "cg" + name "SetReturnsValue" + value FALSE) + (object Attribute + tool "cg" + name "InlineSet" + value TRUE) + (object Attribute + tool "cg" + name "CCRegion" + value ""))) + (object Attribute + tool "cg" + name "default__Uses" + value (list Attribute_Set + (object Attribute + tool "cg" + name "ForwardReferenceOnly" + value FALSE) + (object Attribute + tool "cg" + name "BodyReferenceOnly" + value FALSE))) + (object Attribute + tool "cg" + name "default__Subsystem" + value (list Attribute_Set + (object Attribute + tool "cg" + name "Directory" + value "AUTO GENERATE") + (object Attribute + tool "cg" + name "DirectoryIsOnSearchList" + value FALSE) + (object Attribute + tool "cg" + name "PrecompiledHeader" + value ""))) + (object Attribute + tool "cg" + name "default__Category" + value (list Attribute_Set + (object Attribute + tool "cg" + name "IsNamespace" + value FALSE) + (object Attribute + tool "cg" + name "Indent" + value 2) + (object Attribute + tool "cg" + name "CodeName" + value "") + (object Attribute + tool "cg" + name "GenerateEmptyRegions" + value ("GenerateEmptyRegionSet" 3)) + (object Attribute + tool "cg" + name "GenerateEmptyRegionSet" + value (list Attribute_Set + (object Attribute + tool "cg" + name "None" + value 0) + (object Attribute + tool "cg" + name "Preserved" + value 1) + (object Attribute + tool "cg" + name "Unpreserved" + value 2) + (object Attribute + tool "cg" + name "All" + value 3))))) + (object Attribute + tool "MSVC" + name "propertyId" + value "809135966") + (object Attribute + tool "MSVC" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Version" + value "5.0"))) + (object Attribute + tool "MSVC" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Type" + value ("MSVCClassTypeSet" 0)) + (object Attribute + tool "MSVC" + name "MSVCClassTypeSet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Normal" + value 0) + (object Attribute + tool "MSVC" + name "Interface_Part" + value 1) + (object Attribute + tool "MSVC" + name "Connection_Part" + value 2) + (object Attribute + tool "MSVC" + name "Class_Factory" + value 3))) + (object Attribute + tool "MSVC" + name "CObjectFunctionality" + value ("CObjectFunctionalitySet" 0)) + (object Attribute + tool "MSVC" + name "CObjectFunctionalitySet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "None" + value 0) + (object Attribute + tool "MSVC" + name "Dynamic" + value 1) + (object Attribute + tool "MSVC" + name "Dyncreate" + value 2) + (object Attribute + tool "MSVC" + name "Serial" + value 3))) + (object Attribute + tool "MSVC" + name "GenerateOverrideGroup" + value FALSE) + (object Attribute + tool "MSVC" + name "GenerateDataGroup" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_DATA_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateFieldGroup" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_FIELD_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateMessageGroup" + value FALSE) + (object Attribute + tool "MSVC" + name "GenerateMessageMap" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_MSG_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "MESSAGE_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "OLEFactory" + value ("OLEFactorySet" 0)) + (object Attribute + tool "MSVC" + name "OLEFactorySet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "None" + value 0) + (object Attribute + tool "MSVC" + name "Built_in" + value 1) + (object Attribute + tool "MSVC" + name "Simple" + value 2) + (object Attribute + tool "MSVC" + name "Licensed" + value 3))) + (object Attribute + tool "MSVC" + name "OLEName" + value "") + (object Attribute + tool "MSVC" + name "OLEClassID" + value "") + (object Attribute + tool "MSVC" + name "GenerateOLECtlType" + value FALSE) + (object Attribute + tool "MSVC" + name "OLECtlType" + value "") + (object Attribute + tool "MSVC" + name "GenerateOLETypeLib" + value FALSE) + (object Attribute + tool "MSVC" + name "OLETypeLibID" + value "") + (object Attribute + tool "MSVC" + name "OLETypeLibMajor" + value "") + (object Attribute + tool "MSVC" + name "OLETypeLibMinor" + value "") + (object Attribute + tool "MSVC" + name "GeneratePropPageIDs" + value FALSE) + (object Attribute + tool "MSVC" + name "OLEPropPageIDs" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateDispatchMap" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_DISPATCH_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "AFX_DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "StockProperties" + value (value Text "")) + (object Attribute + tool "MSVC" + name "StockFunctions" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DispatchDefValue" + value "") + (object Attribute + tool "MSVC" + name "GenerateDispIdEnum" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_DISP_ID_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateInterfaceMap" + value FALSE) + (object Attribute + tool "MSVC" + name "INTERFACE_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "InitInterface" + value "") + (object Attribute + tool "MSVC" + name "GenerateEventMap" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_EVENT_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "AFX_EVENT_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "EVENT_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "StockEvents" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateEventSinkMap" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_EVENTSINK_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "AFX_EVENTSINK_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "EVENTSINK_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "PropNotifySinks" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateConnectionMap" + value FALSE) + (object Attribute + tool "MSVC" + name "CONNECTION_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "ConnectionPointIID" + value "") + (object Attribute + tool "MSVC" + name "InheritanceType" + value "") + (object Attribute + tool "MSVC" + name "DeclSpec" + value "") + (object Attribute + tool "MSVC" + name "OLECommands" + value (value Text "")) + (object Attribute + tool "MSVC" + name "MFCDeclares" + value (value Text "")) + (object Attribute + tool "MSVC" + name "MFCImplements" + value (value Text "")) + (object Attribute + tool "MSVC" + name "ATL_Declares" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateCOMMap" + value FALSE) + (object Attribute + tool "MSVC" + name "COM_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateConnectionPointMap" + value FALSE) + (object Attribute + tool "MSVC" + name "CONNECTION_POINT_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateMsgMap" + value FALSE) + (object Attribute + tool "MSVC" + name "MSG_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GeneratePropertyMap" + value FALSE) + (object Attribute + tool "MSVC" + name "PROPERTY_MAP_Entries" + value (value Text "")))) + (object Attribute + tool "MSVC" + name "default__Operation" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Type" + value ("MSVCOperationTypeSet" 0)) + (object Attribute + tool "MSVC" + name "MSVCOperationTypeSet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Normal" + value 0) + (object Attribute + tool "MSVC" + name "Virtual_Override" + value 1) + (object Attribute + tool "MSVC" + name "Message_Handler" + value 2) + (object Attribute + tool "MSVC" + name "Dispatch_Handler" + value 3) + (object Attribute + tool "MSVC" + name "Event_Firing_Function" + value 4) + (object Attribute + tool "MSVC" + name "Event_Sink_Handler" + value 5) + (object Attribute + tool "MSVC" + name "Std_OLE_Method" + value 6) + (object Attribute + tool "MSVC" + name "Command_Parser" + value 7) + (object Attribute + tool "MSVC" + name "Property_Get_Function" + value 8) + (object Attribute + tool "MSVC" + name "Property_Set_Function" + value 9) + (object Attribute + tool "MSVC" + name "Property_Notify_Function" + value 10) + (object Attribute + tool "MSVC" + name "Macro_Generated_Function" + value 11))) + (object Attribute + tool "MSVC" + name "AFX_MSG_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "MESSAGE_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "AFX_DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "AFX_EVENT_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "EVENT_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "AFX_EVENTSINK_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "EVENTSINK_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "CallType" + value "") + (object Attribute + tool "MSVC" + name "DeclSpec" + value "") + (object Attribute + tool "MSVC" + name "BodyImage" + value (value Text "")))) + (object Attribute + tool "MSVC" + name "default__Role" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Type" + value ("MSVCAttributeTypeSet" 0)) + (object Attribute + tool "MSVC" + name "MSVCAttributeTypeSet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Normal" + value 0) + (object Attribute + tool "MSVC" + name "Member_Property" + value 1) + (object Attribute + tool "MSVC" + name "Get_Set_Property" + value 2) + (object Attribute + tool "MSVC" + name "Dialog_Data" + value 3) + (object Attribute + tool "MSVC" + name "Field_Data" + value 4) + (object Attribute + tool "MSVC" + name "Stock_Property" + value 5))) + (object Attribute + tool "MSVC" + name "AFX_DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DeclSpec" + value "") + (object Attribute + tool "MSVC" + name "PointerBase" + value "") + (object Attribute + tool "MSVC" + name "CallType" + value "") + (object Attribute + tool "MSVC" + name "StockPropertyImplementation" + value ""))) + (object Attribute + tool "MSVC" + name "default__Has" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Type" + value ("MSVCAttributeTypeSet" 0)) + (object Attribute + tool "MSVC" + name "MSVCAttributeTypeSet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Normal" + value 0) + (object Attribute + tool "MSVC" + name "Member_Property" + value 1) + (object Attribute + tool "MSVC" + name "Get_Set_Property" + value 2) + (object Attribute + tool "MSVC" + name "Dialog_Data" + value 3) + (object Attribute + tool "MSVC" + name "Field_Data" + value 4) + (object Attribute + tool "MSVC" + name "Stock_Property" + value 5))) + (object Attribute + tool "MSVC" + name "AFX_DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DeclSpec" + value "") + (object Attribute + tool "MSVC" + name "PointerBase" + value "") + (object Attribute + tool "MSVC" + name "CallType" + value "") + (object Attribute + tool "MSVC" + name "StockPropertyImplementation" + value ""))) + (object Attribute + tool "MSVC" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Type" + value ("MSVCAttributeTypeSet" 0)) + (object Attribute + tool "MSVC" + name "MSVCAttributeTypeSet" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "Normal" + value 0) + (object Attribute + tool "MSVC" + name "Member_Property" + value 1) + (object Attribute + tool "MSVC" + name "Get_Set_Property" + value 2) + (object Attribute + tool "MSVC" + name "Dialog_Data" + value 3) + (object Attribute + tool "MSVC" + name "Field_Data" + value 4) + (object Attribute + tool "MSVC" + name "Stock_Property" + value 5))) + (object Attribute + tool "MSVC" + name "AFX_DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DISPATCH_MAP_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "DeclSpec" + value "") + (object Attribute + tool "MSVC" + name "PointerBase" + value "") + (object Attribute + tool "MSVC" + name "CallType" + value "") + (object Attribute + tool "MSVC" + name "StockPropertyImplementation" + value ""))) + (object Attribute + tool "MSVC" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "GenerateIncludesGroup" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_INCLUDES_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateInsertLocation" + value FALSE))) + (object Attribute + tool "MSVC" + name "default__Module-Body" + value (list Attribute_Set + (object Attribute + tool "MSVC" + name "GenerateIncludesGroup" + value FALSE) + (object Attribute + tool "MSVC" + name "AFX_INCLUDES_Entries" + value (value Text "")) + (object Attribute + tool "MSVC" + name "GenerateInsertLocation" + value FALSE))) + (object Attribute + tool "cg" + name "HiddenTool" + value FALSE) + (object Attribute + tool "Rose Model Integrator" + name "HiddenTool" + value FALSE) + (object Attribute + tool "Rose Web Publisher" + name "HiddenTool" + value FALSE) + (object Attribute + tool "XML_DTD" + name "propertyId" + value "809135966") + (object Attribute + tool "XML_DTD" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "XML_DTD" + name "CreateMissingDirectories" + value TRUE) + (object Attribute + tool "XML_DTD" + name "Editor" + value ("EditorType" 100)) + (object Attribute + tool "XML_DTD" + name "StopOnError" + value TRUE) + (object Attribute + tool "XML_DTD" + name "EditorType" + value (list Attribute_Set + (object Attribute + tool "XML_DTD" + name "BuiltIn" + value 100) + (object Attribute + tool "XML_DTD" + name "WindowsShell" + value 101))))) + (object Attribute + tool "XML_DTD" + name "default__Class" + value (list Attribute_Set + (object Attribute + tool "XML_DTD" + name "Entity_SystemID" + value "") + (object Attribute + tool "XML_DTD" + name "Entity_PublicID" + value "") + (object Attribute + tool "XML_DTD" + name "NotationValue" + value "") + (object Attribute + tool "XML_DTD" + name "InternalValue" + value "") + (object Attribute + tool "XML_DTD" + name "ParameterEntity" + value FALSE) + (object Attribute + tool "XML_DTD" + name "ExternalEntity" + value FALSE) + (object Attribute + tool "XML_DTD" + name "Notation_SystemID" + value "") + (object Attribute + tool "XML_DTD" + name "Notation_PublicID" + value ""))) + (object Attribute + tool "XML_DTD" + name "default__Attribute" + value (list Attribute_Set + (object Attribute + tool "XML_DTD" + name "DefaultDeclType" + value ""))) + (object Attribute + tool "XML_DTD" + name "default__Module-Spec" + value (list Attribute_Set + (object Attribute + tool "XML_DTD" + name "Assign All" + value FALSE) + (object Attribute + tool "XML_DTD" + name "ComponentPath" + value ""))) + (object Attribute + tool "XML_DTD" + name "HiddenTool" + value FALSE)) + quid "3B2079B10169")) diff --git a/source/processes/hadronic/models/cascade/doc/manCascade.ps b/source/processes/hadronic/models/cascade/doc/manCascade.ps new file mode 100644 index 0000000000..9e36dd87c3 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/manCascade.ps @@ -0,0 +1,7067 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software +%%Title: manCascade.dvi +%%Pages: 12 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips manCascade.dvi -o manCascade.ps +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 2002.07.11:1337 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: special.pro +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict +begin/SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ +CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N +/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} +repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N +/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX +currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY +moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X +/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 +1 startangle endangle arc savematrix setmatrix}N end + +%%EndProcSet +TeXDict begin 39158280 55380996 1000 600 600 (manCascade.dvi) +@start +%DVIPSBitmapFont: Fa cmtt8 7 50 +/Fa 50 123 df<1378A2137C1378A20070133800F8137C38FE79FCEAFF7B387FFFF8001F +13E0000713803801FE003807FF80001F13E0007F13F838FF7BFCEAFE7938F8787C007013 +3800001300A2137C1378A216197C9D1F>42 D<130E131FAA007FB51280B612C0A36C1480 +D8001FC7FCAA130E1A1B7E9E1F>I<387FFFFEB6FCA36C13FE18057D931F>45 +D<123C127E12FFA4127E123C080875871F>I<133FEBFFC0487F000713F813E1380F807C +48487EA2003E7FA248EB0F80A30078130700F814C0AA007CEB0F80A3007E131F003E1400 +A26C133EEB807E6C6C5A3807E1F813FF000113E06C5B013FC7FC1A267EA41F>48 +D<1330137813F81201A212031207127F12FF12FE127C1200B3A4387FFFF0B512F8A26C13 +F015257BA41F>II<48 +B4FC000713C0001F13F04813F8EB83FCEA7E00147E143EA2123C1218C7127EA214FC1301 +EB03F8EBFFF04813E0A26C13F8EB03FCEB00FE147E143FA2141F123012FCA2143FA2147E +6C13FE387F83FC383FFFF86C13E0000713C00001130018267DA41F>II<383F +FFF814FCA214F8003EC7FCA913FF003F13C014F014F8EB81FCEA3E00003C137E0038133E +C7123FA2141F1230127812FC143FA2147EA2007E13FC387F83F8383FFFF0000F13E06C13 +803801FE0018257DA31F>II<1270B512FE14FFA338F800FE14FC387001F8380003F0130714 +E0EB0FC0A2EB1F8014005B133E137EA2137C13FC5BA21201A25BA31203A25BA76C5A1826 +7DA41F>I<13FF000313C0000F13F04813F8383F81FC387E007E007C133E00FC133F4813 +1FA4007C133E007E137E6C13FC381FE7F8380FFFF0000313C04813E04813F0381F81F838 +3E007C48133EA248131FA56C133F007C133E007E137E6C13FC1381381FFFF86C13F00003 +13C0C6130018267DA41F>I<13FF000313804813E0001F13F0383FC3F81301387E00FC00 +7C137C00FC137E143E5A143FA2141F143F7E127C007E137F6C13FF13836CB5FC7E000313 +9F3800FE3F1300143E147EA2003C137C007E13FCEB01F81303EB07F0EB0FE0383FFFC014 +80380FFE00EA03F818267DA41F>I<123C127E12FFA4127E123C1200A9123C127E12FFA4 +127E123C081975981F>I<007FB51280B612C0A36C1480C9FCA5007FB51280B612C0A36C +14801A0F7E981F>61 D<133FA2497EA41373EBF3C0A400017FA413E100037FA53807C0F8 +A313FFA2487FA2EB807CA2001F137EEB003EA239FFC0FFC013E1A213C01A257EA41F>65 +D<90381FC38090387FF7C048B5FC5AEA07F0380FC03F381F801FA2383F000F123E007E13 +07127CA200FCEB038091C7FC5AA87EA2007CEB0380EC07C0127E123E003F130FEA1F80EC +1F80380FC03F3907F07F003803FFFE6C5B38007FF0EB1FC01A267EA41F>67 +D<007FB51280B612C0A27E380F8007A4EC038091C7FCA314E0EB81F0A213FFA41381A2EB +80E091C7FCA415E0EC01F0A5007FB5FCB6FCA26C14E01C247FA31F>69 +D<397FF0FFE0D8FFF913F0A2D87FF013E0390F801F00AB90B5FCA4EB801FAD397FF0FFE0 +D8FFF913F0A2D87FF013E01C247FA31F>72 DI<397FC07FE000FFEBFFF07F007FEB7FE0000FEB0F001370A31338A3133C131CA2 +131EA2130E130FA21307148FA21303A214CF1301A3EB00EFA3147FEA7FE0EAFFF080387F +E03E1C247FA31F>78 D<3803FFC0001F13F84813FCA2387F00FE007E137E007C133EA200 +FC133F48131FB2133EA238FC1F3F007C13BEA2387E0FFE127F383FFFFCA26C13F8000313 +F0380001F8A2EB00FCA2147EA2143E182D7DA41F>81 D<3801FE1C3807FFBE4813FE123F +1303EA7E01EAFC00147E5A143EA26C131C14007E127F13E06CB4FC6C13C0000713F00001 +13F838003FFCEB03FEEB007E147F143FA20070131F12F8A36C133F143E6C137E38FFC0FC +EBFFF814F014E00070138018267DA41F>83 D<387FFFFEB6FCA338F8007EA25C13010070 +5BC6485AA2495A130F5C495A133F91C7FC137EA25B12015B485A12075B380FC007EC0F80 +EA1F80123F1300127EA2B6FCA36C140019247DA31F>90 D97 DIII<137F38 +01FFC0000713E04813F8EA1FC1383F00FC007E137C147E5A143EB512FEA314FC00F8C7FC +7EA2007E131C007F133E383F807E381FE0FE380FFFFC6C13F8000113F038007F8017197D +981F>IIII<1370EA01FCA5EA007090C7FCA5 +EA7FF8487EA2127FEA007CB1387FFFFCB5FCA27E16257CA41F>I<127F487EA2127F1207 +A7903883FFC0018713E0A2018313C0903880FC00EB81F8EB83F0EB87E0EB8FC0EB9F8001 +BFC7FCEBFF80808013F3EBE1F0EBC1F8EB80FC147C80143F397FF87FE039FFFCFFF0A239 +7FF87FE01C247FA31F>107 DI<387C7C1F39FFFE7F8090B512C06C14E0381FCFF3EB87E1EB07C1A200 +1E1381AD397F87E1F839FFCFF3FCA2397F87E1F81E1980981F>I<387F83F838FFCFFC90 +B5FC7E3907FE1F8013F8EBF00F13E0A213C0AC397FFC3FF839FFFE7FFCA2397FFC3FF81E +1980981F>I<137E3803FFC04813E04813F0381FC3F8383F00FC007E137E007C133EA248 +131FA66C133F007C133EA2007E137E6C13FC381FC3F8380FFFF06C13E06C13C038007E00 +18197D981F>I<387F87F038FFDFFCEBFFFE6CEBFF803907FC1FC0EBF00F9038E007E0A2 +9038C003F0A21401A5140313E0EC07E013F09038F80FC09038FC3F8090B512005CEBDFFC +EBC7E001C0C7FCA9EA7FFC487EA26C5A1C2680981F>II<387FE03F39FFF0FFC001F313E0 +EA7FF73801FFE714879038FE03C091C7FC5B5BA35BA9387FFFF0B5FCA27E1B197F981F> +I<3803FFE0001F13F05A5AEAFE03EAF80112F038F800E06C1300EAFFC06CB4FC001F13C0 +6C13E0C613F8EB07FCEA700000F8137C6C133CA26C137C38FF01FCEBFFF814F014C00071 +130016197C981F>I<13E0487EA6387FFFFCB57EA26C5BD801F0C7FCAB1407EC0F80A214 +1F13F89038FC3F006CB5FC6D5AEB3FF8EB0FE019207F9F1F>I<387F80FFD8FFC11380A2 +EA7FC00007130FAE141F143FEBE07F90B512F86C14FCC6FC90387FC7F81E1980981F>I< +397FF0FFE0D8FFF913F0A2D87FF013E03907801E00A2EBC03E0003133CA36C6C5AA36C6C +5AA3EB79E0A3137F6D5AA36D5A6DC7FC1C197F981F>I<397FE07FE039FFF0FFF0A2397F +E07FE0391E000780A4001F130F6C1400130FEB1F8FEB3FCFA3000713CE1339A2EBB9DEA2 +EBF0FE00035BA33801E0781C197F981F>I<397FE1FF80EAFFF3A2EA7FE13907C0F000EA +03E13801E3E0EBF3C06CB45A137F6DC7FC133E131E133F497E13F7EBF3C03801E1E00003 +7F13C038078078397FE1FF80D8FFF313C0A2D87FE113801A197E981F>I<39FFE1FFC001 +F313E0A201E113C0390F003C00138012075C13C012035CEA01E0A2EBE1E0EA00F1A25C13 +7BA2133BEB3F80A2131F91C7FCA3131EA2133E133C1278EAFC7C5BEAF9F012FF6C5A5B00 +1FC8FC1B267E981F>I<003FB5FC481480A3397C007F0014FE495A383803F8C6485A495A +495A495A49C7FC13FE485A485A3807F007390FE00F80EA1FC0EA3F80EA7F00B6FCA36C14 +0019197E981F>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb cmtt10 10 68 +/Fb 68 123 df37 +DI<143814 +FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F5B485AA2 +123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F12037F6C +7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438164272B92C>40 +D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB07E0 +A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714E0A2EB0FC0131F +1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270164279B92C>I< +EB0380497EA60020140800F8143E00FE14FE00FF13C1EBC7C7EBE7CF003FB512F8000F14 +E0000314806C140038007FFCA248B5FC481480000F14E0003F14F839FFE7CFFEEBC7C7EB +07C100FE13C000F8143E0020140800001400A66D5A1F247AAA2C>I<147814FCAF007FB6 +12F0B712F8A46C15F0C700FCC7FCAF147825267DAB2C>II<007FB6FCB71280A46C150021067B9B2C>I<121FEA3F80EA7FC0EAFFE0 +A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80151FA2153F16005D157E15FE5D14 +015D14035DA214075D140F5D141F5D143F92C7FC5C147E14FE5CA213015C13035C13075C +130F5C131F5CA2133F91C8FC5B137E13FE5B12015B12035B12075BA2120F5B121F5B123F +90C9FC5A127E12FE5AA25A127821417BB92C>II<1307497EA2131FA2133F137F13FF5A1207127FB5FC13DF139FEA7C1F1200B3 +AE007FB512E0B612F0A36C14E01C3477B32C>IIII<000FB512FE4880A35D0180C8FCADEB83FE90389FFF8090B512E015 +F8819038FE03FE9038F000FF01C07F49EB3F8090C7121F6C15C0C8120FA2ED07E0A4123C +127EB4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80FFC6CB55A +6C5C000114C06C6C90C7FCEB0FF823347CB22C>I56 DI< +121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5 +EA7FC0EA3F80EA1F000B2470A32C>II<1507ED1F80153F15FF14034A1300EC1F +FC4A5AECFFE0491380010790C7FCEB0FFCEB3FF8EB7FE048485A4890C8FCEA0FFEEA1FF8 +EA7FF0EAFFC05BA27FEA7FF0EA1FF8EA0FFEEA03FF6C13C06C6C7EEB3FF8EB0FFC6DB4FC +01017F6D13E0EC3FF86E7EEC07FF6E13801400153F151FED0700212A7BAD2C>I<007FB6 +12F0B712F8A4003F15F0CAFCA8003FB612F0B712F8A46C15F025147DA22C>I<127012FC +7E6C7E13E06C7EEA1FFC6C7E3803FF80C67FEB7FF0EB1FF8EB0FFEEB03FF6D13C06D6C7E +EC3FF8EC0FFC6EB4FC0201138080A25C02071300EC0FFCEC3FF8EC7FE049485A4990C7FC +EB0FFEEB1FF8EB7FF0EBFFC000035BD80FFEC8FC485AEA7FF0485A138048C9FC5A127021 +2A7BAD2C>I<14FE497EA4497FA214EFA2130781A214C7A2010F7FA314C390381F83F0A5 +90383F01F8A490387E00FCA549137E90B512FEA34880A29038F8003FA34848EB1F80A400 +0715C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>65 +D<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE007F4848131FD807F013 +0F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE5AAB7E127EA3007F15 +F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F6C6CEB3FC03A00FF81 +FF806DB512006D5B010F5B6D13F00100138025357DB32C>67 D<007FB5FCB612C015F081 +6C803907E003FEEC00FFED7F80153FED1FC0ED0FE0A2150716F0150316F81501A4ED00FC +ACED01F8A3150316F0A2150716E0150FED1FC0153FED7F80EDFF00EC03FE007FB55AB65A +5D15C06C91C7FC26337EB22C>I<007FB612F0B712F8A37E3903F00001A7ED00F01600A4 +EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C167EA8007FB612FEB7FCA36C15FC +27337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC01 +497E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5A +A8913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D13 +7F6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357D +B32C>71 DI<007FB512F8B612FCA36C14 +F839000FC000B3B3A5007FB512F8B612FCA36C14F81E3379B22C>I75 D<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0 +ED01F8A8007FB6FCB7FCA36C15F025337DB22C>III<007FB512C0B612F88115FF6C15802603F000 +13C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90B612 +80160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>80 +D<387FFFFCB67E15E015F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F +4BC7FCEC01FE140790B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5 +D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB22C>82 +D<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7FC007E147F +00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFF +C06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A200781407 +12FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F83F +13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078153CC7 +1400B3AF90383FFFFCA2497F6D5BA227337EB22C>I<3B7FFF803FFFC0B56C4813E0A36C +496C13C03B03F00001F800B3AF6D130300015DA26D130700005D6D130F017F495A6D6C48 +5AECE0FF6DB5C7FC6D5B010313F86D5B9038003F802B3480B22C>II89 D<003FB612C04815E0A4007EC7EA1FC0 +ED3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A4A5AA24A5A4AC7FCA214FE49 +5AA2495A495AA2495A495AA2495A49C8FCA213FE485AA24848EB03C049EB07E01207485A +5B121F485AA248C7FCB7FCA46C15C023337CB22C>I<127812F87EA27E127E127F7E7F12 +1F7F120F7F1207A27F12037F12017F12007F137E137F7F80131FA280130F801307801303 +801301801300A280147E147F8081141F81140F811407811403A281140181140081157E15 +7F811680151FA2150FED070021417BB92C>92 D<3801FFF0000713FE001F6D7E15E04880 +9038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F48EB +807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15FE6C +14BF0001EBFE1F3A003FF007FC27247CA32C>97 DI<903803FFE0011F13F8017F13 +FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2127F +6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E00103 +90C7FC21247AA32C>IIIIII<1307EB1FC0A2497EA36D5AA20107C7FC90C8 +FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>I +107 D<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I< +3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF8 +3F496C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8 +D87FFC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6C +B6FC00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C +01E0140029247FA32C>II<397FF01FE039FFF8FFF801FB13FE90B6FC6C15800001 +9038F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14 +FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813 +F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC078090391FFF0FC0 +017F13CF48B512EF4814FF3807FE07380FF00148487E49137F4848133F90C7FC48141F12 +7E150F5AA87E007E141FA26C143F7F6C6C137F6D13FF380FF0033807FC0F6CB6FC6C14EF +6C6C138F6D130FEB07F890C7FCAD0203B5FC4A1480A36E140029367DA32C>II<90387FF8700003B512F8 +120F5A5A387FC00F387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEB +FF80000314E0C66C13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D +133E6D13FE9038F007FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E13 +3FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE0 +7F6DB51280160001035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3 +007F7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603 +FE07130029247FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D13 +1F00011500A26D5B0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA2 +1483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>I< +D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495AA3143E147FA2D801 +F0495AECFF87A214F7A201F113C700005D9038F9E3CFA201FB13EFA3D97BC190C7FC017F +13FFA21480A2013F5B90381F007C29247FA32C>I<3A3FFF03FFF048018713F8A36C0103 +13F03A00FC007E005D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF +6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F001 +3F7FEB7E00017C137C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C +>I<3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012 +005D6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB +03E3ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F +5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003F +B612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A +5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A48 +5A485A485A485AB7FCA46C15E024247DA32C>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmmi7 7 14 +/Fc 14 121 df23 D61 D<4B7E1503150782150F151FA2153FA2156F15CF82EC0187 +140315071406140E140C02187FA2EC30031460A214C013011480D903007F91B5FC5B9038 +0C0001A25B13380130805B01E013005B12011203000F4A7ED8FFF890381FFFE0A22B2A7D +A932>65 D97 D99 D101 D +I<130E131F5BA2133E131C90C7FCA7EA03E0487EEA0C78EA187C1230A212605B12C0A2EA +01F0A3485AA2485AA2EBC180EA0F81A2381F0300A213066C5A131CEA07F06C5A11287DA6 +17>105 D<3907801FC0390FE07FF03918F0E0F83930F1807CEBFB00D860FE133C5B5B00 +C1147C5B1201A248485BA34A5AEA07C01660EC03E0A23A0F8007C0C0A2EDC180913803C3 +00D81F0013C7EC01FE000EEB00F8231B7D9929>110 DI115 D<131C133EA25BA45BA4485AB512E0A23801F000485AA4485AA4485AA4 +48C7FC1460A214C0123EEB0180EB0300EA1E06EA1F1CEA0FF8EA03E013267EA419>II<90387C03C03901FF0FF03907079C30390E03B078000CEBF0F80018 +13E1123015F0396007C0E015001200A2495AA449C7FC15301238007C1460EAFC3E15C0EA +F87E39F06F03803970C70700383F83FE381F01F81D1B7D9926>120 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmsy5 5 1 +/Fd 1 49 df48 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmsy7 7 2 +/Fe 2 4 df0 D<1338A50060130C00F8133E00FC137E00FE13FE +383FBBF83807FFC000011300EA007C48B4FC000713C0383FBBF838FE38FE00FC137E00F8 +133E0060130C00001300A517197B9A22>3 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmmi10 10 21 +/Ff 21 113 df<013FB612E090B712F05A120717E0270F807006C7FC391E00600E48140C +003813E04813C048141CEAC0011200148001035BA213071400A25B1578011E137CA3133E +133C137C157E13FC5B1201157F1203497FA3D801C0131C2C257EA32F>25 +D<121C127FEAFF80A5EA7F00121C0909798817>58 D<121C127FEAFF80A213C0A3127F12 +1C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>II<126012FCB4FCEA7FC0EA1FF0EA07 +FCEA01FF38007FC0EB1FF0EB07FCEB01FF9038007FC0EC1FF0EC07FCEC01FF9138007FC0 +ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE01FF9338007F80EF1FC0A2EF7F8093 +3801FF00EE07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0 +EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA3FF0EA7FC048CBFC12FC1270 +323279AD41>62 D<1760177017F01601A21603A21607160FA24C7EA216331673166316C3 +A2ED0183A2ED0303150683150C160115181530A21560A215C014011580DA03007FA20206 +1300140E140C5C021FB5FC5CA20260C7FC5C83495A8349C8FC1306A25BA25B13385B01F0 +1680487E000716FFB56C013F13FF5EA2383C7DBB3E>65 D<0103B77E4916F018FC903B00 +07F80003FE4BEB00FFF07F80020FED3FC0181F4B15E0A2141FA25DA2143F19C04B143F19 +80027F157F190092C812FE4D5A4A4A5AEF0FF04AEC1FC005FFC7FC49B612FC5F02FCC7B4 +FCEF3FC00103ED0FE0717E5C717E1307844A1401A2130F17035CA2131F4D5A5C4D5A133F +4D5A4A4A5A4D5A017F4BC7FC4C5A91C7EA07FC49EC3FF0B812C094C8FC16F83B397DB83F +>I<0103B812F05BA290260007F8C7123F4B1407F003E0020F150118005DA2141FA25D19 +C0143FA24B1330A2027F1470190092C7126017E05C16014A495A160F49B6FCA25F9138FC +000F01031407A24A6DC8FCA201075C18034A130660010F160693C7FC4A150E180C011F16 +1C18184A1538A2013F5E18F04A4A5AA2017F15074D5A91C8123F49913803FF80B9FCA295 +C7FC3C397DB83D>69 D<0103B812E05BA290260007F8C7123F4B140FF003C0140F18015D +A2141FA25D1980143FA25D1760027F14E095C7FC92C75AA24A1301A24A495A1607010114 +1F91B6FC94C8FCA2903903FC001F824A130EA21307A24A130CA2010F141CA24A90C9FCA2 +131FA25CA2133FA25CA2137FA291CBFC497EB612C0A33B397DB835>II<0103B6FC5B5E90260007FCC8FC5D5D140FA25DA2141FA25DA2143F +A25DA2147FA292C9FCA25CA25CA21301A25CA21303A25CA2130718404A15C0A2010F1501 +18804A1403A2011F16005F4A1406170E013F151E171C4A143C177C017F5D160391C7120F +49EC7FF0B8FCA25F32397DB839>76 D<902603FFF893383FFF80496081D900079438FF80 +000206DC01BFC7FCA2020E4C5A1A7E020C1606190CDA1C7E16FE4F5A02181630A2023816 +6162023016C1F00181DA703F158395380303F002601506A202E0ED0C076202C015181830 +01016D6C140F06605B028015C0A20103923801801FDD03005B140092380FC00649173F4D +91C8FC01065DA2010E4B5B4D137E130C6F6C5A011C17FEDCE1805B011802E3C7FCA20138 +02E6130104EC5C1330ED03F8017016034C5C01F05CD807FC4C7EB500E0D9C007B512F016 +80150151397CB851>I<0103B7FC4916E018F8903B0007F80007FC4BEB00FE187F020FED +3F80F01FC05DA2021F16E0A25DA2143FF03FC05DA2027FED7F80A292C8130018FE4A4A5A +604AEC07F04D5A0101ED3FC04CB4C7FC91B612FC17E0D903FCCAFCA25CA21307A25CA213 +0FA25CA2131FA25CA2133FA25CA2137FA291CBFC497EB6FCA33B397DB835>80 +D<267FFFFC91383FFFC0B55DA2000390C83807FC006C48ED03E06060000094C7FC5F1706 +5FA25F6D5DA26D5D17E05F4C5AA24CC8FC6E1306A2013F5C161C16185EA25E6E5BA2011F +495A150393C9FC1506A25D6E5AA2010F5B157015605DA2ECE18002E3CAFC14F3EB07F614 +FE5C5CA25C5CA26D5AA25C91CBFC3A3B7CB830>86 D<91B712FCA25B9239E00007F84AC7 +EA0FF0D903F8EC1FE04AEC3FC04AEC7F804A150049485C91C7485A4C5A010E4A5A4C5A01 +0C4A5A011C4A5A01185D167F4CC7FC90C7485A4B5A4B5A4B5A5E151F4B5A4B5A4BC8FC4A +5A4A5A4A5A5D140F4A5A4A5A4A48130C4AC7FC495A4A141C01031518495A494814384948 +143049481470495A49C812F0495D000115014848140348484A5A4848140F4848141F4848 +EC7F804848EB07FF90B7FCB8FC94C7FC36397BB839>90 D<147E903803FF8090390FC1C3 +8090391F00EFC0017E137F49133F485A4848EB1F8012075B000F143F48481400A2485A5D +007F147E90C7FCA215FE485C5AA214015D48150CA21403EDF01C16181407007C1538007E +010F1330003E131F027B13706C01E113E03A0F83C0F9C03A03FF007F80D800FCEB1F0026 +267DA42C>97 D<133FEA1FFFA3C67E137EA313FE5BA312015BA312035BA31207EBE0FCEB +E3FF9038E707C0390FFE03E09038F801F001F013F8EBE000485A15FC5BA2123F90C7FCA2 +14015A127EA2140312FE4814F8A2140715F05AEC0FE0A215C0EC1F80143F00781400007C +137E5C383C01F86C485A380F07C06CB4C7FCEA01FC1E3B7CB924>I101 +D<14E0EB03F8A21307A314F0EB01C090C7FCAB13F8EA03FEEA070F000E1380121C121812 +381230EA701F1260133F00E0130012C05BEA007EA213FE5B1201A25B12035BA200071318 +13E01438000F133013C01470EB806014E014C01381EB838038078700EA03FEEA00F81539 +7EB71D>105 D108 D<90390F8003F090391FE00FFC903939F03C1F903A70F8700F80903AE0FDE007C0 +9038C0FF80030013E00001491303018015F05CEA038113015CA2D800031407A25CA20107 +140FA24A14E0A2010F141F17C05CEE3F80131FEE7F004A137E16FE013F5C6E485A4B5A6E +485A90397F700F80DA383FC7FC90387E1FFCEC07E001FEC9FCA25BA21201A25BA21203A2 +5B1207B512C0A32C3583A42A>112 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmti10 10 20 +/Fg 20 119 df<387FFFF8A2B5FCA214F0150579941E>45 D<902603FFF891B512E0A281 +D90007923807F8006F6E5A61020F5E81DA0E7F5DA2021E6D1307033F92C7FC141C82DA3C +1F5C70130EEC380FA202786D131E0307141C147082DAF003143C70133814E0150101016E +1378030014705C8201036E13F0604A1480163F010715C1041F5B91C7FC17E149EC0FE360 +010E15F31607011E15FF95C8FC011C80A2013C805F1338160013785F01F8157CEA03FC26 +7FFFE0143CB51538A243397CB83E>78 D<0103B612F017FEEFFF80903B0007F8003FC04B +EB0FF01707020FEC03F8EF01FC5DA2021F15FEA25DA2143FEF03FC5DA2027FEC07F818F0 +92C7120F18E04AEC1FC0EF3F004A14FEEE01F80101EC0FE091B6128004FCC7FC9138FC00 +3F0103EC0F80834A6D7E8301071403A25C83010F14075F5CA2011F140FA25CA2133F161F +4AECE007A2017F160F180E91C7FC49020F131C007F01FE153CB5913807F078040313F0CA +EAFFE0EF3F80383B7CB83D>82 D<92383FC00E913901FFF01C020713FC91391FC07E3C91 +393F001F7C027CEB0FF84A130749481303495A4948EB01F0A2495AA2011F15E091C7FCA3 +4915C0A36E90C7FCA2806D7E14FCECFF806D13F015FE6D6D7E6D14E0010080023F7F1407 +9138007FFC150F15031501A21500A2167C120EA3001E15FC5EA3003E4A5AA24B5AA2007F +4A5A4B5A6D49C7FC6D133ED8F9F013FC39F8FC03F839F07FFFE0D8E01F138026C003FCC8 +FC2F3D7ABA2F>I<0007B812E0A25AD9F800EB001F01C049EB07C0485AD900011403121E +001C5C003C17801403123800785C00701607140700F01700485CA2140FC792C7FC5DA214 +1FA25DA2143FA25DA2147FA292C9FCA25CA25CA21301A25CA21303A25CA21307A25CA213 +0FA25CEB3FF0007FB512F8B6FCA2333971B83B>I<14F8EB07FE90381F871C90383E03FE +137CEBF801120148486C5A485A120FEBC001001F5CA2EA3F801403007F5C1300A2140748 +5C5AA2140F5D48ECC1C0A2141F15831680143F1587007C017F1300ECFF076C485B903803 +8F8E391F0F079E3907FE03FC3901F000F0222677A42A>97 D<147F903803FFC090380FC1 +E090381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091C7FC +485AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0EC0F +806CEB3E00380F81F83803FFE0C690C7FC1D2677A426>99 DI<147F903803FFC090 +380FC1E090383F00F0017E13785B485A485A485A120F4913F8001F14F0383F8001EC07E0 +EC1F80397F81FF00EBFFF891C7FC90C8FC5A5AA55AA21530007C14381578007E14F0003E +EB01E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690C7FC1D2677A426>I105 +D108 +DII<147F903803FFC090380FC1F090381F00F8 +017E137C5B4848137E4848133E0007143F5B120F485AA2485A157F127F90C7FCA215FF5A +4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C14C0007EEB1F80003EEB3F00147E +6C13F8380F83F03803FFC0C648C7FC202677A42A>I113 D<3903C003F0390FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0 +EB7F800078150000701300151CD8F07E90C7FCEAE0FE5BA2120012015BA312035BA31207 +5BA3120F5BA3121F5BA3123F90C9FC120E212679A423>I<14FE903807FF8090380F83C0 +90383E00E04913F00178137001F813F00001130313F0A215E00003EB01C06DC7FC7FEBFF +C06C13F814FE6C7F6D13807F010F13C01300143F141F140F123E127E00FE1480A348EB1F +0012E06C133E00705B6C5B381E03E06CB45AD801FEC7FC1C267AA422>II<13F8D803FEEB01C0D8078FEB03E0390E +0F8007121E121C0038140F131F007815C01270013F131F00F0130000E015805BD8007E13 +3FA201FE14005B5D120149137EA215FE120349EBFC0EA20201131E161C15F813E0163CD9 +F003133814070001ECF07091381EF8F03A00F83C78E090393FF03FC090390FC00F002726 +79A42D>I<01F0130ED803FC133FD8071EEB7F80EA0E1F121C123C0038143F49131F0070 +140FA25BD8F07E140000E08013FEC6485B150E12015B151E0003141C5BA2153C00071438 +5B5DA35DA24A5A140300035C6D48C7FC0001130E3800F83CEB7FF8EB0FC0212679A426> +I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh cmsy10 10 3 +/Fh 3 26 df<007FB81280B912C0A26C17803204799641>0 D15 D25 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmbx10 10 65 +/Fi 65 123 df<913A03FF8007FE027F9039F07FFF800103B500FDB512E0010F903A00FF +FE0FF0D93FF8ECF81F90267FE0019038F03FF849485A4816E014804816C00200ED1FF081 +F007C06F91C7FCA8B912E0A4000390C701C0C7FCB3ABB5D8FC3FEBFF80A43D3A7EB938> +11 D<913803FFC0027F13F00103B512FC010FEB00FED93FF8133FD97FE0EBFF8049485A +5A1480484A13C04A6C1380A36F1300167E93C7FCA592383FFFC0B8FCA4000390C7FCB3AB +B5D8FC3F13FFA4303A7EB935>I43 D45 DI<49B4FC010F13E0017F13FC9038FF +83FE4848C67E4848EB7F804848EB3FC04848EB1FE0A2001F15F0A24848EB0FF8A3007F15 +FCA500FF15FEB3007F15FCA4003F15F8A26D131F001F15F0A2000F15E06D133F000715C0 +6C6CEB7F806C6CEBFF003900FF83FE6DB45A011F13F0010190C7FC27387CB630>48 +D<141E143E14FE1307133FB5FCA313CFEA000FB3B3A6007FB61280A4213779B630>IIII<001C15C0D81F801307 +01F8137F90B61280A216005D5D15F05D15804AC7FC14F090C9FCA8EB07FE90383FFFE090 +B512F89038FC07FC9038E003FFD98001138090C713C0120EC813E0157F16F0A216F8A212 +06EA3F80EA7FE012FF7FA44914F0A26C4813FF90C713E0007C15C06C5B6C491380D9C007 +1300390FF01FFE6CB512F8000114E06C6C1380D90FF8C7FC25387BB630>II<123C123EEA3FE090B71280A41700485D5E5E5EA2 +5E007CC7EA0FC000784A5A4BC7FC00F8147E48147C15FC4A5A4A5AC7485A5D140F4A5A14 +3F92C8FC5C147E14FE1301A2495AA31307A2130F5CA2131FA5133FA96D5A6D5A6D5A293A +7BB830>I<49B47E010F13F0013F13FC9038FE01FF3A01F8007F804848EB3FC04848EB1F +E0150F485AED07F0121FA27FA27F7F01FEEB0FE0EBFF809138E01FC06CEBF03F02FC1380 +9138FF7F006C14FC6C5C7E6C14FE6D7F6D14C04914E048B612F0EA07F848486C13F8261F +E01F13FC383FC007EB8001007F6D13FE90C7123F48140F48140715031501A21500A216FC +7E6C14016D14F86C6CEB03F06D13076C6CEB0FE0D80FFEEB7FC00003B61200C614FC013F +13F00103138027387CB630>II63 D65 DIIIIIIII<010FB612C0A4D90001EB +E000B3B3EA0F80EA3FE0EA7FF0A2EAFFF8A35E5C13F0007F495BD83FE091C7FC391F800F +FE390FF03FFC6CB512F0000114C026003FFCC8FC2A3A7FB831>IIIIIIIIII<003FB91280A4D9F800EBF003 +D87FC09238007FC049161F007EC7150FA2007C1707A200781703A400F818E0481701A4C8 +92C7FCB3AE010FB7FCA43B387DB742>IIII89 D97 +D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF00013804AEB7FC002 +80EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F06E133F6EEB7FE0 +6E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9C00390C7FC2F3A +7EB935>I<903801FFC0010F13FC017F13FFD9FF8013802603FE0013C048485AEA0FF812 +1F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01E06C7E15036C6C +EB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023257DA42A>II<903803FF8001 +1F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C0001FEC1FE05B003FEC0F +F0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F6C6C14F86D14F0 +00071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025257DA42C>II<161FD907FE +EBFFC090387FFFE348B6EAEFE02607FE07138F260FF801131F48486C138F003F15CF4990 +387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C6C4890C7FC3907FE07FE48B512F8 +6D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B512F8EDFF8016E06C15F86C816C81 +5A001F81393FC0000F48C8138048157F5A163FA36C157F6C16006D5C6C6C495AD81FF0EB +07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<13FFB5FCA41207 +7EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A14C05CA25CA291 +C7FCB3A3B5D8FC3F13FFA4303A7DB935>II<141FEC7FC0ECFFE0A249 +13F0A56D13E0A2EC7FC0EC1F0091C7FCA9EC0FF0EB0FFFA4EB007F143FB3B0121FEA3F80 +EA7FC0EAFFE0EC7FE0A215C014FF6C481380903883FE006CB45A000F13F0000113801C4B +86BA1D>I<13FFB5FCA412077EAF92380FFFE0A4923803FC0016F0ED0FE0ED1F804BC7FC +157E5DEC03F8EC07E04A5A141FEC7FE04A7E8181A2ECCFFEEC0FFF496C7F806E7F6E7F82 +157F6F7E6F7E82150F82B5D8F83F13F8A42D3A7EB932>I<13FFB5FCA412077EB3B3ACB5 +12FCA4163A7DB91B>I<01FED97FE0EB0FFC00FF902601FFFC90383FFF80020701FF90B5 +12E0DA1F81903983F03FF0DA3C00903887801F000749DACF007F00034914DE6D48D97FFC +6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C257DA451>I<01FEEB7FC0 +00FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D4814C05CA25C +A291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0010F13F8017F13FFD9FF80 +7F3A03FE003FE048486D7E48486D7E48486D7EA2003F81491303007F81A300FF1680A900 +7F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C6CB5C7FC +011F13FC010113C029257DA430>I<9039FF01FF80B5000F13F0023F13FC9138FE07FFDA +F00113800007496C13C06C0180EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17FC161F +A217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8020F13 +E0020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F000FFEB0FFEEC3FFF9138 +7C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C92C7FC91C8FCB3A2B512 +FEA422257EA427>114 D<90383FF0383903FFFEF8000F13FF381FC00F383F0003007E13 +01007C130012FC15787E7E6D130013FCEBFFE06C13FCECFF806C14C06C14F06C14F81203 +C614FC131F9038007FFE140700F0130114007E157E7E157C6C14FC6C14F8EB80019038F0 +07F090B512C000F8140038E01FF81F257DA426>I<130FA55BA45BA25B5BA25A1207001F +EBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3E090383FFFC06D138090 +3803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C6E +4813E06CD9C03E13FF90387FFFFC011F13F00103138030257DA435>IIIII<003FB612C0A3D9F0031380EB8007494813 +00003E5C003C495A007C133F5D0078495A14FF5D495B5BC6485B92C7FC495A131F5C495A +017FEB03C0EBFFF014E04813C05AEC80074813005A49EB0F80485A003F141F4848133F90 +38F001FFB7FCA322257DA42A>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmbx9 9 1 +/Fj 1 64 df +63 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fk cmr9 9 43 +/Fk 43 122 df12 D<156015F0B3A4007FB812C0B912E0A26C17C0C800F0C8FCB3A4 +156033327CAB3C>43 D<123C127EB4FCA21380A2127F123D1201A412031300A25A120612 +0E120C121C5A5A126009177A8715>II<123C127E12FFA4127E12 +3C08087A8715>I<1530157815F8A215F01401A215E01403A215C01407A21580140FA215 +005CA2143EA2143C147CA2147814F8A25C1301A25C1303A25C1307A2495AA291C7FC5BA2 +131E133EA2133C137CA2137813F8A25B1201A25B1203A2485AA25B120FA290C8FC5AA212 +1E123EA2123C127CA2127812F8A25A12601D4B7CB726>I52 D67 D69 D71 +DII76 D +78 D<007FB712FEA390398007F001D87C00EC003E0078161E0070160EA20060160600E0 +1607A3481603A6C71500B3AB4A7E011FB512FCA330337DB237>84 +DI87 +D91 D93 D97 DII<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003 +BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B +6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>III<151F90391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F +83809039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C +380EFFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F00 +01003EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC001F83903F007 +E0C6B51280D91FFCC7FC22337EA126>IIIIII<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F +03E0903BF3803E1C01F02807F7003F387FD803FE1470496D486C7EA2495CA2495CB3486C +496C487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC90 +38F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B> +II<3903F03F8000FFEBFFE0 +9038F3C0F89038F7007ED807FE7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A915 +0716F0A216E0150F16C06D131F6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07F +C7FC91C8FCAA487EB512C0A325307EA02B>I<903807F00390383FFC07EBFC0F3901F803 +8F3807E001000F14DF48486CB4FC497F123F90C77E5AA25A5AA9127FA36C6C5B121F6D5B +000F5B3907E003BF3903F0073F3800F81EEB3FF8EB0FE090C7FCAAED7F8091380FFFFCA3 +26307DA029>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F +8049C7FCA35BB2487EB512E0A31A217FA01E>II<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000AF +1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>III +I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E13 +18A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01 +FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA78 +38EA1FF0EA0FC025307F9F29>121 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fl cmr7 7 8 +/Fl 8 98 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 +D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15 +005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003 +0012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C00 +30137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC3800 +01E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F01 +F03807FFC0C690C7FC19277DA521>I<0018130C001F137CEBFFF85C5C1480D819FCC7FC +0018C8FCA7137F3819FFE0381F81F0381E0078001C7F0018133EC7FC80A21580A2123012 +7C12FCA3150012F00060133E127000305B001C5B380F03E03803FFC0C648C7FC19277DA5 +21>53 DI< +1230123C003FB512E0A215C0481480A239700007000060130E140C48131C5C5CC75A5C13 +01495AA249C7FC5B130E131EA3133E133CA2137CA413FCA813781B287DA621>I<137F38 +03FFE0380781F8380E007C48131E5A801278A3127C007E131EEA3F80EBE03C6C6C5A380F +FCF03807FFC06C5BC613E0487F38079FFC380F07FEEA1E0348C67E48133FEC1F8048130F +A21407A315001278140E6C5B6C5B380F80F03803FFE0C66CC7FC19277DA521>I<13FE38 +07FFC0380F03E0381C00F0003E1378003F137C143C143E121EC7FCA3EB3FFEEA01FF3807 +F03EEA1FC0EA3F00127EA2481418A3147E127EECDF38393F838FF0390FFE0FE03903F807 +C01D1C7E9A21>97 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fm cmr12 14.4 30 +/Fm 30 122 df43 D45 D<1738177CA217FC17F8A2160117F0A216 +0317E0A2160717C0A2160F1780161F1700A25E163EA2167E167CA216FC5EA215015E1503 +5EA215075EA2150F5EA2151F93C7FCA25D153E157E157CA215FC5DA214015DA214035DA2 +14075D140F5DA2141F92C8FCA25C143EA2147E147CA214FC5CA213015C13035CA213075C +A2130F5CA2131F91C9FCA25B133E137E137CA213FC5BA212015BA212035BA212075B120F +5BA2121F90CAFCA25A123EA2127E127CA212FC5AA212702E787AD93B>47 +D67 D69 +D72 DI76 DII80 D +83 D<003FBB12C0A449C79038F0000701F06E48130001C0183F48C8EE0FE0007E190700 +7C1903A200781901A400701900A500F01AF0481A70A6C91700B3B3AC4C7E030313FC027F +B712E0A44C517CD055>II97 D99 D<17FF4BB5FCA4ED0007160182B3A6EC +0FF8EC7FFF49B512E0903907FC03F090391FE0007C49487F49C7120F01FE80484880485A +000781484880A2485AA2485AA2127FA35B12FFAB127FA27FA2123FA27F121FA26C6C5C00 +075D7F6C6C5C6C6C5C6C6C021E7F6D6C017C13E0D91FC049EBFF8090390FF807E00103B5 +12800100495ADA1FF091C7FC39547CD241>II<157F +913803FFE0020F13F091383FC0F891387F01FC903901FE03FE903803FC0714F81307EB0F +F0A290391FE003FCED01F892C7FC495AB3B612FEA426003FC0C7FCB3B3A580EBFFF0007F +EBFFF8A427547DD324>II<1378EA01FE487E487FA66C90C7FC +6C5AEA007890C8FCB0EB7F80B5FCA41203C6FC137FB3B3A43801FFE0B61280A419507CCF +21>105 D108 +D<01FFD907FEEC03FFB590261FFFC0010F13E0037F01F0013F13F8912701F80FFC9038FC +07FE913D03C003FE01E001FF000390260700019038038000C6010E6D6C48C76C7E6D48DA +7F8E6E7E4A159CA24ADA3FF86E7E02605D14E04A5DA34A5DB3AD2601FFE0DAFFF0EC7FF8 +B6D8C07F9026FFE03FB512F0A45C347CB363>I<01FFEB07FCB590383FFF8092B512E091 +3901F00FF8913903C007FC000349C66C7EC6010E13016D486D7E5C143002706E7E146014 +E05CA35CB3AD2601FFE0903801FFE0B600C0B612C0A43A347CB341>II<01FFEB1F80B5EB7FF0913801FFF8913803E1FC91380783FE0003EB0F07C6 +131EEB7F1C1438143091387003FC91386000F0160014E05CA45CB3AA8048487EB612F0A4 +27347DB32E>114 D +III121 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fn cmr10 10 79 +/Fn 79 128 df<1506150FA24B7EA24B7EA24B7EA2EDDFF0A29138018FF8A291380307FC +A291380603FEA291380E01FF140CDA1C007F141802386D7E143002706D7E146002E06D7E +5C01016E7E5C01036E7E91C7FC496E7E1306010E6E7E130C011C6E7F131801386F7E1330 +01706F7E136001E06F7E5B170F484882170748C97F17030006831701488383481880001F +B9FC4818C0A24818E0A2BA12F0A23C3C7CBB45>1 D11 DII<121C127FEAFF80A213C0A3127F121C1200A412011380A212 +0313005A1206120E5A5A5A12600A1979B917>39 D<146014E0EB01C0EB0380EB0700130E +131E5B5BA25B485AA2485AA212075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67E +A3121EA2121F7EA27F12077F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00 +E01460135278BD20>I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C13 +3C133E131EA2131F7FA21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2 +133E133C137C1378A25BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<15 +301578B3A6007FB812F8B912FCA26C17F8C80078C8FCB3A6153036367BAF41>43 +D<121C127FEAFF80A213C0A3127F121C1200A412011380A2120313005A1206120E5A5A5A +12600A19798817>II<121C127FEAFF80A5EA7F00121C09097988 +17>I<150C151E153EA2153C157CA2157815F8A215F01401A215E01403A215C01407A215 +80140FA215005CA2141E143EA2143C147CA2147814F8A25C1301A25C1303A2495AA25C13 +0FA291C7FC5BA2131E133EA2133C137CA2137813F8A25B1201A25B1203A25B1207A25B12 +0FA290C8FC5AA2121E123EA2123C127CA2127812F8A25A12601F537BBD2A>IIIII<1538A2157815F8A2140114 +031407A2140F141F141B14331473146314C313011483EB030313071306130C131C131813 +301370136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800 +AB4A7E0103B512F8A325397EB82A>I<0006140CD80780133C9038F003F890B5FC5D5D15 +8092C7FC14FC38067FE090C9FCABEB07F8EB3FFE9038780F803907E007E090388003F049 +6C7E12066E7EC87EA28181A21680A4123E127F487EA490C71300485C12E000605C127000 +30495A00385C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE0213A +7CB72A>II<12301238123E003FB612E0A316C05A16 +8016000070C712060060140E5D151800E01438485C5D5DC712014A5A92C7FC5C140E140C +141C5CA25CA214F0495AA21303A25C1307A2130FA3495AA3133FA5137FA96DC8FC131E23 +3B7BB82A>III<121C127FEAFF80 +A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A317>I<121C127FEAFF80 +A5EA7F00121CC7FCB2121C127F5A1380A4127F121D1201A412031300A25A1206A2120E5A +121812385A1260093479A317>I<007FB812F8B912FCA26C17F8CCFCAE007FB812F8B912 +FCA26C17F836167B9F41>61 D<1538A3157CA315FEA34A7EA34A6C7EA202077FEC063FA2 +020E7FEC0C1FA2021C7FEC180FA202387FEC3007A202707FEC6003A202C07F1501A2D901 +807F81A249C77F167FA20106810107B6FCA24981010CC7121FA2496E7EA3496E7EA3496E +7EA213E0707E1201486C81D80FFC02071380B56C90B512FEA3373C7DBB3E>65 +DI<913A01FF800180020FEBE003027F13F8903A01FF807E07903A03 +FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE153F12014848151F48 +48150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED0180A312 +3F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5CD91FE0 +5C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F13F002011380313D +7BBA3C>III< +B812F8A30001903880001F6C90C71201EE00FC177C173C171CA2170CA4170E1706A2ED01 +80A21700A41503A21507151F91B5FCA3EC001F15071503A21501A692C8FCAD4813C0B612 +C0A32F397DB836>III +I<013FB512E0A39039001FFC00EC07F8B3B3A3123FEA7F80EAFFC0A44A5A1380D87F005B +0070131F6C5C6C495A6C49C7FC380781FC3801FFF038007F80233B7DB82B>III< +B5933807FFF86E5DA20001F0FC002600DFC0ED1BF8A2D9CFE01533A3D9C7F01563A3D9C3 +F815C3A2D9C1FCEC0183A3D9C0FEEC0303A2027F1406A36E6C130CA36E6C1318A26E6C13 +30A36E6C1360A26E6C13C0A3913901FC0180A3913900FE0300A2ED7F06A3ED3F8CA2ED1F +D8A3ED0FF0A3486C6D5A487ED80FFC6D48497EB500C00203B512F8A2ED018045397DB84C +>I +III82 +D +I<003FB812E0A3D9C003EB001F273E0001FE130348EE01F00078160000701770A3006017 +30A400E01738481718A4C71600B3B0913807FF80011FB612E0A335397DB83C>IIII<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C +5F6D6C5C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E0 +6E6C5A91380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138 +038FF8150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E4948 +6D7E130391C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80010713E0 +B500E0013FEBFF80A339397EB83E>I +I<003FB7FCA39039FC0001FE01C0130349495A003EC7FC003C4A5A5E0038141F00784A5A +12704B5A5E006014FF4A90C7FCA24A5A5DC712074A5AA24A5A5D143F4A5AA24A5A92C8FC +5B495AA2495A5C130F4948EB0180A2495A5C137F495A16034890C7FC5B1203485AEE0700 +485A495C001F5D48485C5E4848495A49130FB8FCA329397BB833>II +93 D97 DIIII<147E903803FF8090380FC1E0EB1F +8790383F0FF0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387F +FFF8A31C3B7FBA19>IIIIIII<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F +01E07E903BF1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0F +C0A2495CA3495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00F +F000FFEB3FFCECF03F9039F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3 +486C497EB500C1B51280A329257EA42E>II<3903F01FE000FFEB7FF8 +9038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB03F04914F849130116FC15 +0016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB0FE001F614C09039F7803F +009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328357EA42E>II<3807E0 +1F00FFEB7FC09038E1E3E09038E387F0380FE707EA03E613EE9038EC03E09038FC008049 +1300A45BB3A2487EB512F0A31C257EA421>II<1318A51338A31378A313F8120112031207001FB5FC +B6FCA2D801F8C7FCB215C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347F +B220>II< +B538803FFEA33A0FF8000FF06C48EB07E00003EC03C06D148000011500A26C6C1306A26D +130E017E130CA26D5BA2EC8038011F1330A26D6C5AA214E001075BA2903803F180A3D901 +FBC7FCA214FF6D5AA2147CA31438A227257EA32C>IIII<003FB512FCA2EB8003D83E0013F8003CEB07F00038EB0FE012300070EB +1FC0EC3F800060137F150014FE495AA2C6485A495AA2495A495A495AA290387F000613FE +A2485A485A0007140E5B4848130C4848131CA24848133C48C7127C48EB03FC90B5FCA21F +247EA325>I<001C131C007F137F39FF80FF80A5397F007F00001C131C190978B72A>127 +D E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: A4 + +%%EndSetup +%%Page: 1 1 +1 0 bop 3644 685 a Fn(1)-94 1138 y Fm(HETC/INUCL++)36 +b(man)m(ual)g(-)j(System)e(for)h(Mo)s(delling)f(Hadronic)g(In)m(tran)m +(uclear)-94 1287 y(Pro)s(cesses)-94 1451 y Fn(Aatos)27 +b(Heikkinen,)g(Nikita)h(Stepano)n(v)1170 1421 y Fl(a)-94 +1584 y(a)-30 1614 y Fn(Helsinki)g(Institute)h(of)e(Ph)n(ysics,)f(P)-7 +b(.O.Bo)n(x)26 b(9,)-94 1714 y(FIN-00014)f(Univ)n(ersit)n(y)i(of)g +(Helsinki,)h(Finland)-11 1914 y Fk(HETC/INUCL)d(is)h(a)f(sim)n(ulation) +h(pac)n(k)l(age)f(and)g(a)g(mo)r(del)g(of)h(in)n(termediate)e(energy)h +(n)n(uclear)h(reactions.)35 b(INUCL)25 b(consists)-94 +2005 y(of)c(cascade,)i(\014ssion)f(mo)r(dels,)g(pre-equilibrium,)f(and) +f(ev)l(ap)r(oration)i(This)f(man)n(ual)f(describ)r(es)i(the)f(mo)r +(dels)f(used)h(in)g(INUCL++.)-94 2097 y(This)26 b(do)r(cumet)f(w)n +(orks)i(as)f(an)g(man)n(ual,)g(status)g(rep)r(ort)g(and)g(w)n(orking)h +(do)r(cumen)n(t)d(for)j(INUCL)e(pro)t(ject.)36 b(In)26 +b(accordance)h(with)-94 2188 y(this,)i(w)n(e)g(represen)n(t)f(results)h +(aciev)n(ed)f(with)h(INUCL.)f(Comparison)h(with)f(measuremen)n(t)f(is)h +(made.)42 b(W)-6 b(e)28 b(also)i(descrip)r(e)f(staus)-94 +2279 y(of)d(Gean)n(t4)g(installation)i(on)d(INUCL)g(soft)n(w)n(are)j([) +p Fj(?)p Fk(].)-94 2580 y Fi(1.)47 b(V)m(OCABULAR)-8 +b(Y)30 2744 y Fh(\017)41 b Fg(NR)27 b Fn(Nuclear)g(reaction)30 +2898 y Fh(\017)41 b Fg(quasi-elastic)24 b(r)l(e)l(action)c +Fn(NR)g(where)f(n)n(ucleon)g(can)113 2998 y(b)r(e)28 +b(kno)r(c)n(k)n(ed)f(out)g(of)h(its)g(n)n(uclear.)30 +3152 y Fh(\017)41 b Fg(T-nucleus)27 b Fn(T)-7 b(arget)27 +b(n)n(ucleus)-94 3348 y Fi(2.)47 b(INTR)m(ODUCTION)28 +3447 y(TO)57 b(INTERMEDIA)-8 b(TE-ENER)m(GY)57 b(NU-)28 +3547 y(CLEAR)31 b(PHYSICS)-11 3710 y Fn(Fig)d(:::.)40 +b(Sc)n(hematic)28 b(n)n(ucleon)h(structure.)39 b(The)29 +b(cen-)-94 3810 y(tral)j(n)n(ucleon)h(is)h(sho)n(wn)f(as)f(collection)h +(of)h(three)f(con-)-94 3910 y(stituen)n(t)44 b(quarks)f(in)n(teracting) +h(via)f(the)i(color)e(force.)-94 4009 y(Closer)26 b(views)h(sho)n(w)g +(a)g(more)g(complex)g(picture.)-11 4109 y(A)n(t)k(higher)f(energies)g +(\()h(200)f Ff(M)9 b(eV)18 b Fn(\))32 b(energy)d(is)i(high)-94 +4208 y(enough)i(to)h(momen)n(tarily)e(exite)i(a)g(n)n(ucleon)f(in)n(to) +h(the)-94 4308 y(exited)27 b(dalta-resonan)n(t)f(state)h +(\(\001-resonance\).)-94 4472 y Fi(2.1.)46 b(Classi\014cation)88 +b(of)h(Cross-Sections)e(of)102 4571 y(NRS)-11 4671 y +Fn(Let)20 b(us)f(denote)h(an)g(inciden)n(t)g(particle)f(and)h(a)f(n)n +(ucleus)-94 4770 y(under)31 b(in)n(v)n(estigation)f(b)n(y)h(the)g(sym)n +(b)r(ols)g Ff(a)g Fn(and)g Ff(A)p Fn(,)i(re-)-94 4870 +y(sp)r(ectiv)n(ely)-7 b(.)58 b(F)-7 b(ollo)n(wing)34 +b(\014nal)g(states)h(follo)n(wing)f(from)-94 4970 y Ff(a)18 +b Fn(+)g Ff(A)28 b Fn(are)e(p)r(ossible)i([)p Fi(?)p +Fn(]:)30 5123 y Fh(\017)41 b Ff(a)18 b Fn(+)g Ff(A)28 +b Fn(:)37 b(elastic)27 b(scattering)30 5277 y Fh(\017)41 +b Ff(a)157 5247 y Fe(\003)211 5277 y Fn(+)15 b Ff(A)26 +b Fn(:)36 b(scattering)26 b(with)g(an)g(exitation)g(of)g(the)113 +5377 y Ff(a)i Fn(particle)30 5531 y Fh(\017)41 b Ff(a)15 +b Fn(+)h Ff(A)315 5501 y Fe(\003)379 5531 y Fn(:)36 b(scattering)26 +b(with)g(an)g(exitation)g(of)g(the)113 5631 y(n)n(ucleus)2038 +2580 y Fh(\017)41 b Ff(a)2165 2550 y Fe(\003)2219 2580 +y Fn(+)16 b Ff(A)2362 2550 y Fe(\003)2427 2580 y Fn(:)36 +b(scattering)25 b(in)i(whic)n(h)g(b)r(oth)f(the)h(par-)2121 +2680 y(ticle)h(and)f(the)h(n)n(ucleus)g(are)e(exited)2038 +2844 y Fh(\017)41 b Ff(a)2165 2788 y Fd(0)2210 2844 y +Fn(+)19 b Ff(A)2356 2788 y Fd(0)2411 2844 y Fn(:)38 b(reaction)27 +b(in)n(v)n(olving)g(the)h(pro)r(duction)2121 2943 y(of)f(a)h(new)f +(particle)g(and)h(a)f(new)h(n)n(ucleus)2038 3107 y Fh(\017)41 +b Ff(a)2165 3052 y Fd(0)2199 3107 y Fn(+)7 b Ff(a)2315 +3052 y Fd(00)2366 3107 y Fn(+)g Ff(A)2500 3052 y Fd(0)2549 +3107 y Fn(:)34 b(reaction)21 b(in)n(v)n(olving)f(the)j(pro)r(duc-)2121 +3206 y(tion)h(of)g(t)n(w)n(o)f(new)h(particles)g(and)g(a)f(new)h(n)n +(ucleus)1913 3383 y Fi(2.2.)47 b(Quan)m(tum)79 b(F)-8 +b(orm)m(ulation)78 b(of)i(Collision)2110 3483 y(Problem)1913 +3582 y(2.2.1.)46 b(Reaction)31 b(Channels)1996 3682 y +Fn(Consider)k(a)h(collision)f(of)g(t)n(w)n(o)g(complex)h(particles.) +1913 3781 y(:::)h([)p Fi(?)p Fn(])1913 3945 y Fi(2.2.2.)46 +b(T)-8 b(ransition)196 b(Probabilities)g(and)2184 4045 +y(S-Matrix)1996 4144 y Fn(In)38 b(accordance)d(with)i(general)f +(priciples)h(of)g(quan-)1913 4244 y(tum)29 b(theory)-7 +b(,)27 b(the)h(probabilit)n(y)e(:::)37 b([)p Fi(?)p Fn(])1913 +4407 y Fi(2.2.3.)46 b(S-Matrix)974 b(and)2184 4507 y +(Cross-SectionsScattering)24 b(Amplitude)1996 4607 y +Fn(:::)37 b([)p Fi(?)p Fn(])1913 4770 y Fi(2.3.)47 b(Nuclear)32 +b(Structure)h(Phase)f(Diagram)1996 4870 y Fn(THe)25 b(atomic)e(n)n +(ucleus)h(with)g(its)g Ff(A)h Fn(n)n(ucleons)e(is)h(go)n(v-)1913 +4969 y(erned)k(b)n(y)f(a)g(large)f(n)n(um)n(b)r(er)i(of)f(degrees)f(of) +i(freedom.)1913 5133 y Fi(2.4.)47 b(Nuclear)32 b(densit)m(y)1996 +5233 y Fn(Nuclear)41 b(c)n(harge)e(densities)j(are)e(usually)g(w)n(ell) +h(de-)1913 5332 y(scrib)r(ed)69 b(using)f(presen)n(t-da)n(y)f +(e\013ectiv)n(e)i(t)n(w)n(o-b)r(o)r(dy)1913 5432 y(forces;)22 +b(it)f(is)f(also)f(clear)g(that)h(saturation)f(of)h(the)h(c)n(harge) +1913 5531 y(dencit)n(y)i(indeed)g(o)r(ccurs.)34 b(The)23 +b(cen)n(tral)f(densit)n(y)g(barely)1913 5631 y(v)-5 b(aries)27 +b(when)h(the)g(n)n(ucleon)f(n)n(um)n(b)r(er)g(c)n(hanges.)p +eop +%%Page: 2 2 +2 1 bop 94 685 a Fn(2)94 942 y Fi(2.5.)47 b(Nuclear)32 +b(radius)94 1042 y(2.6.)47 b(Mass)31 b(form)m(ula)178 +1142 y Fn(A)37 b(parametrization)e(of)i(the)h(n)n(uclear)e(binding)h +(en-)94 1241 y(ergy)j(in)h(the)g(groud)e(state,)44 b(w)n(as)c(\014rst)g +(discussed)h(b)n(y)94 1341 y(Bethe,)34 b(Bac)n(her)d(and)i(W)-7 +b(eizs\177)-42 b(ac)n(k)n(er.)49 b(P)n(arametrization)94 +1441 y(conatains)26 b(v)n(olume,)h(surface,)f(Coulom)n(b)g(and)h +(symme-)94 1540 y(try)22 b(correction)f(terms)h(\(w)n(e)g(neglegt)f +(here)h(t)n(ypical)f(shell)94 1640 y(mo)r(del)28 b(correction)e +(terms\))i(and)f(reads)132 1888 y Ff(B)t Fn(\()p Ff(E)5 +b(;)14 b(A)p Fn(\))24 b(=)e Ff(a)583 1900 y Fc(\027)624 +1888 y Ff(A)d Fh(\000)f Ff(a)832 1900 y Fc(s)867 1888 +y Ff(A)929 1854 y Fl(2)p Fc(=)p Fl(3)1053 1888 y Fh(\000)g +Ff(a)1180 1900 y Fc(c)1213 1888 y Ff(Z)6 b Fn(\()p Ff(Z)24 +b Fh(\000)18 b Fn(1\))p Ff(A)1608 1854 y Fe(\000)p Fl(1)p +Fc(=)p Fl(3)1765 1888 y Fh(\000)94 2089 y Ff(a)138 2101 +y Fc(A)202 2033 y Fn(\()p Ff(A)h Fh(\000)f Fn(2)p Ff(Z)6 +b Fn(\))535 2003 y Fl(2)p 202 2070 370 4 v 356 2146 a +Ff(A)1760 2089 y Fn(\(1\))178 2251 y(Nuclear)27 b(c)n(harge)e(radius)i +(turns)h(out)f(to)h(b)r(e)g(a)f(rather)94 2351 y(w)n(ell-de\014ned)h +(quan)n(tit)n(y)-7 b(.)94 2514 y Fi(2.7.)47 b(Symmetry)126 +b(consepts)h(in)h(Nuclear)291 2614 y(Ph)m(ysics)178 2714 +y Fn(The)24 b(n)n(uclear)f(t)n(w)n(o-b)r(o)r(dy)g(force)h(ob)r(eys)f +(quite)i(a)f(large)94 2813 y(n)n(um)n(b)r(er)32 b(of)h(basic)e(in)n(v) +-5 b(ariances.)49 b(F)-7 b(orexample)31 b(in)n(v)-5 b(ari-)94 +2913 y(ance)21 b(under)g(in)n(terc)n(hange)f(of)h(the)h(spatial)f(co)r +(ordinates,)94 3013 y(translation)26 b(in)n(v)-5 b(ariance,)26 +b(Galilean)h(in)n(v)-5 b(ariance,)26 b(space)94 3112 +y(re\015ection)h(symmetry)-7 b(,)26 b(time)h(rev)n(ersal)e(in)n(v)-5 +b(ariance,)25 b(ro-)94 3212 y(tation)c(in)n(v)-5 b(ariance)18 +b(in)j(co)r(ordinate)e(space)g(and)h(rotation)94 3311 +y(in)n(v)-5 b(ariance)27 b(in)h(c)n(harge)d(space)i(\(isospin\).)178 +3411 y(The)32 b(symmetry)g(consept)h(\(1932\))e(of)i(isospin)f(sym-)94 +3511 y(metry)-7 b(,)27 b(describing)e(the)i(c)n(harge)e(indep)r +(endence)i(of)f(the)94 3610 y(n)n(uclear)41 b(forces)f(b)n(y)h(means)g +(of)h(the)g(isospin)f(consept)94 3710 y(with)36 b(the)f(SU\(2\))g +(group)f(as)g(the)h(underlying)f(mathe-)94 3810 y(matical)23 +b(group)f(w)n(as)f(suggested)h(b)n(y)h(Heisen)n(b)r(erg.)34 +b(This)94 3909 y(\(simplest)c(of)f(all)f(dynamical)g(symmetries\))h +(expresses)94 4009 y(the)k(in)n(v)-5 b(ariance)32 b(of)g(the)h +(Hamiltonian)f(under)h(the)g(ex-)94 4109 y(c)n(hange)26 +b(of)h(all)f(proton)g(and)g(neutron)h(co)r(ordinates)e([)p +Fi(?)p Fn(].)94 4272 y Fi(2.8.)47 b(Quan)m(tum)31 b(e\013ects)178 +4372 y Fn(On)23 b(the)i(lev)n(el)e(of)h(the)h(n)n(ucleons)e(themselv)n +(es,)h(in)n(v)-5 b(ari-)94 4471 y(ance)21 b(of)g(the)g(total)g(n)n +(uclear)f(w)n(a)n(v)n(e)f(functions)i(under)g(the)94 +4571 y(exc)n(hange)g(of)i(iden)n(tical)f(n)n(ucleons)g(a\013ects)g(the) +h(p)r(ossible)94 4671 y(mo)r(dels)32 b(realized.)47 b(The)31 +b(P)n(auli)g(principle)g(implies)h(an-)94 4770 y(tisymmetry)27 +b(for)g(the)h(total)e(fermionic)h(w)n(a)n(v)n(e)f(function)94 +4870 y(and)39 b(this)g(has)g(v)n(ery)e(de\014nite)j(consequences)d(for) +i(the)94 4969 y(t)n(yp)r(es)31 b(of)f(collectiv)n(e)g(motion)g(that)g +(can)g(b)r(e)h(set)g(up)f(in-)94 5069 y(side)e(the)g(n)n(ucleus.)94 +5233 y Fi(2.9.)47 b(INC-Mo)s(del)178 5332 y Fn(Widely)20 +b(used)g(semiclassical)e(miscroscopic)g(descrip-)94 5432 +y(tion)37 b(of)g(a)f(collision)f(b)r(et)n(w)n(een)i(a)f(particle)g(and) +g(a)h(n)n(u-)94 5531 y(cleus,)23 b(w)n(as)d(prop)r(osed)h(b)n(y)g(Serb) +r(er)f([)p Fi(?)p Fn(])35 b(and)22 b(Goldb)r(erger)94 +5631 y([)p Fi(?)p Fn(].)2102 942 y Fi(3.)47 b(INTR)m(ODUCTION)33 +b(TO)f(INUCL)2102 1106 y(3.1.)47 b(BA)m(CK)m(GR)m(OUND)2185 +1206 y Fn(Originally)38 b(the)h(INUCL)g(co)r(de)g(w)n(as)f(published)h +(in)2102 1305 y(1983)g([)p Fi(?)p Fn(].)77 b(This)40 +b(co)r(de,)k(written)d(with)g(F)-7 b(ortran)40 b(has)2102 +1405 y(b)r(een)28 b(used)g(in)g([:::])37 b([)p Fi(?)p +Fn(].)2185 1504 y(Comprison)25 b(of)i(results)e(b)r(et)n(w)n(een)h +(INCUL)h(and)f(LA-)2102 1604 y(HET,)19 b(CEM95,)g(HETC,)f(CASCADE,)i +(YIELD)n(X,)e(and)2102 1704 y(ALICE)28 b(co)r(de)f(are)g(presen)n(ted)g +(in)g(Refs.)38 b([)p Fi(?)p Fn(].)2185 1803 y(Y)-7 b(ear)28 +b(2000)f(a)i(aro)5 b(ject)27 b(to)i(implemen)n(t)g(INUCL)g(in)n(to)2102 +1903 y(Gean)n(t4)34 b(hadronic)e(ph)n(ysic)i(mo)r(dule)g(using)g(C++)f +(w)n(al)2102 2003 y(launc)n(hed.)2185 2102 y(New)j(no)n(w)f(w)n(orks)f +(also)g(as)h(standalone)g(c++)f(soft-)2102 2202 y(w)n(are)27 +b(called)g(INUCL++.)2102 2365 y Fi(3.2.)47 b(SUMMAR)-8 +b(Y)87 b(OF)f(INUCL)i(MODEL)2299 2465 y(FEA)-8 b(TURES)2227 +2565 y Fh(\017)41 b Fn(Originally)c(INUCL)h(w)n(as)g(designed)g(as)f(a) +h(par-)2310 2664 y(ticle)32 b(-)g(n)n(ucleus)g(in)n(teraction)f(sim)n +(ulation)h(blo)r(c)n(k)2310 2764 y(for)e(the)g(particle)g(-)g(target)f +(in)n(teraction)g(sim)n(ula-)2310 2863 y(tion)20 b(program)e(PHOENIX.)h +(It)h(pro)r(duces)f(an)h(ex-)2310 2963 y(clusiv)n(e)31 +b(approac)n(h)e(to)j(sim)n(ulating)f(ev)n(en)n(ts)g(with)2310 +3063 y(reasonable)25 b(p)r(erformance.)2227 3221 y Fh(\017)41 +b Fn(INUCL)26 b(is)f(based)g(on)g(N.)h(Stepano)n(v)e(Ph.D.)i(the-)2310 +3320 y(sis,)39 b(ITEP)-7 b(,)37 b(Mosco)n(w,)h(1990.)64 +b(Also,)39 b(con)n(tribu-)2310 3420 y(tion)28 b(Vladimir)f(D.)h +(Kazaritsky)-7 b(.)2227 3578 y Fh(\017)41 b Fn(No)n(w)24 +b(w)n(e)h(ha)n(v)n(e)e(standalone)h(F77)g(based)h(INUCL)2310 +3678 y(co)r(de)31 b(and)h(INUCL++)f(written)g(in)h(C++.)48 +b(IN-)2310 3777 y(UCL++)31 b(is)h(no)n(w)f(written)h(using)f(Gean)n(t4) +h(co)r(d-)2310 3877 y(ing)19 b(st)n(yle)h(and)f(in)n(tegration)g(to)g +(hadronic)g(mo)r(dels)2310 3976 y(in)26 b(in)g(progress.)34 +b(Problem:)h(sp)r(eed)26 b(is)f(\014v)n(e)h(times)2310 +4076 y(slo)n(w)n(er.)2102 4239 y Fi(3.2.1.)46 b(INUCL)32 +b(mo)s(dels)2227 4338 y Fh(\017)41 b Fn(In)n(tran)n(uclear)26 +b(cascade)2227 4496 y Fh(\017)41 b Fn(Precomp)r(ound)e(deca)n(y)h +(\(exiton)g(master)g(equa-)2310 4596 y(tion\))2227 4754 +y Fh(\017)h Fn(Ev)-5 b(ap)r(oration)26 b(\(W)-7 b(eissk)n(opf)27 +b(-)g(Ewing\))2227 4912 y Fh(\017)41 b Fn(Fission)31 +b(\(phenomenological)g(mo)r(del,)i(incorp)r(o-)2310 5012 +y(rating)20 b(some)g(features)h(of)g(the)g(\014ssion)g(statistical)2310 +5111 y(mo)r(del\))2102 5274 y Fi(3.2.2.)46 b(P)m(articles)32 +b(treated)2227 5373 y Fh(\017)41 b Fn(Range)27 b(of)g(targets)g(allo)n +(w)n(ed)f(arbitrary)-7 b(.)2227 5531 y Fh(\017)41 b Fn(Range)e(of)i +(pro)5 b(jectiles)39 b(allo)n(w)n(ed)g(p,)44 b(n,)g(pi)c(and)2310 +5631 y(n)n(uclei.)p eop +%%Page: 3 3 +3 2 bop 3644 685 a Fn(3)30 942 y Fh(\017)41 b Fn(F)-7 +b(rom)26 b(a)g(few)h(Mev)f(to)g(10)g(GeV)g(for)g(n,)h(p,)g(pi)f(and)113 +1042 y(up)i(to)f(ab)r(out)h(100)e(MeV)i(/)f(n)n(ucleon)g(for)h(n)n +(uclei.)-94 1242 y Fi(3.2.3.)45 b(Cross)31 b(sections)30 +1342 y Fh(\017)41 b Fn(T)-7 b(otal)24 b(inelastic)h(cross)e(section)h +(has)g(to)h(b)r(e)g(tak)n(en)113 1441 y(from)i(outside)h(to)f +(normalize)g(all)g(data.)30 1630 y Fh(\017)41 b Fn(T)-7 +b(otal)38 b(reaction)e(cross-sections)g([m)n(barn])h(w)n(ere)113 +1730 y(calculated)27 b(b)n(y)g(J.R.)h(Leta)n(w's)f(form)n(ulae)30 +1919 y Fh(\017)41 b Fn(Ref.:)34 b(S.)21 b(P)n(earlstein,)f(The)h +(Astroph)n(ysical)e(Jour-)113 2019 y(nal,)27 b(346:)36 +b(1049-1060,)23 b(1989)j(No)n(v)n(em)n(b)r(er)g(15)30 +2208 y Fh(\017)41 b Fn(F)-7 b(ermi)36 b(energy)f(calculated)g(in)h(a)f +(lo)r(cal)g(densit)n(y)113 2308 y(appro)n(ximation.)-11 +2508 y(Nuclear)g(densit)n(y)i(distribution)f(are)g(deriv)n(ed)g(from) +-94 2607 y(the)h(Re\(V)-7 b(opt\()37 b(r\)\))g(distribution.)65 +b(In)37 b(cascade)f(part,)-94 2707 y(n)n(ucleus)f(is)g(divided)g(in)n +(to)g(a)g(\014nite)h(n)n(um)n(b)r(er)f(of)g(zones)-94 +2806 y(with)28 b(constan)n(t)e(densit)n(y)-7 b(.)-94 +2981 y Fi(3.2.4.)45 b(Nucleon)31 b(n)m(ucleon)h(cross-sections)30 +3081 y Fh(\017)41 b Fn(P)n(arametrizations)31 b(based)k(on)f(the)h(exp) +r(erimen-)113 3180 y(tal)28 b(data)f(\(ED\))h(are)e(used.)30 +3369 y Fh(\017)41 b Fn(They)28 b(are)e(energy)h(and)g(isospin)g(dep)r +(enden)n(t.)30 3559 y Fh(\017)41 b Fn(The)61 b(parameterizations)f +(describ)r(ed)h(in)g(\([1])113 3658 y(Barashenk)n(o)n(v)35 +b(V.S.,)41 b(T)-7 b(oneev)37 b(V.D.)i(High)f(En-)113 +3758 y(ergy)53 b(in)n(teractions)g(of)h(particles)f(and)h(n)n(uclei)113 +3857 y(with)28 b(n)n(uclei.)37 b(Mosco)n(w,)26 b(1972)30 +4047 y Fh(\017)41 b Fn(P)n(auli)64 b(exclusion)g(in)h(the)g(INC:)g(Sim) +n(ulated)113 4146 y(particle-particle)18 b(in)n(teraction)g(is)i +(accepted)f(only)113 4246 y(for)41 b(secondary)f(n)n(ucleons)h(whic)n +(h)g(ha)n(v)n(e)g Ff(E)1521 4258 y Fc(n)1613 4246 y Ff(>)113 +4345 y(E)174 4357 y Fc(f)217 4345 y Fn(.)30 4535 y Fh(\017)g +Fn(Nuclear)32 b(densit)n(y)g(e\013ects)h(are)e(recalculated)h(af-)113 +4634 y(ter)27 b(eac)n(h)g(step)30 4823 y Fh(\017)41 b +Fn(Cascade)33 b(is)i(stopp)r(ed)g(when)g(all)f(the)h(particles,)113 +4923 y(whic)n(h)c(can)g(escap)r(e)g(the)h(n)n(ucleus,)g(do)f(it.)48 +b(Then)113 5023 y(conformit)n(y)35 b(with)i(the)g(energy)e(-)h(conserv) +-5 b(ation)113 5122 y(la)n(w)39 b(is)h(c)n(hec)n(k)n(ed)e(and)i(the)g +(giv)n(en)e(ev)n(en)n(t)i(is)f(ac-)113 5222 y(cepted,)28 +b(if)g Ff(E)536 5234 y Fc(exitation)840 5222 y Ff(>)22 +b(E)988 5234 y Fc(cut)1110 5222 y Fh(\031)p Fn(a)27 b(few)h +Ff(M)9 b(eV)18 b Fn(.)30 5411 y Fh(\017)41 b Fn(F)-7 +b(or)20 b(n)n(ucleons)f(binding)i(energies)e(are)g(calculated)113 +5511 y(using)h(mass)g(form)n(ula.)34 b(F)-7 b(or)19 b(pions)i(V)-7 +b(opt)20 b(is)h(tak)n(en)113 5610 y(to)28 b(b)r(e)g(constan)n(t)e(\(ab) +r(out)i(7)f(MeV\).)1913 942 y Fi(3.2.5.)46 b(Precomp)s(ound)30 +b(phase)2038 1042 y Fh(\017)41 b Fn(Main)25 b(parameters)f(are)g(tak)n +(en)h(from)f(\(Ribansky)2121 1142 y(I.)h(et)h(al,)f(Nucl.Ph)n +(ys.,1973,)f(A205,)g(p.545)g(\(lev)n(el)2121 1241 y(densities\);)i +(Kolbac)n(h.C.,)e(Z.Ph)n(ys.,1978,)e(A287,)2121 1341 +y(p.319)k(\(matrix)i(elemen)n(ts\)\).)2038 1694 y Fh(\017)41 +b Fn(The)29 b(angular)e(distribution)i(is)g(isotropic)f(in)h(the)2121 +1794 y(frame)e(of)h(rest)f(of)g(the)h(exiton)g(system.)1913 +2116 y Fb(particles)40 b(p,)j(n,)g(pi,)f(D,)h(T,)g(He3,)f(He4,\\gamma) +1913 2216 y(\(INUCLN)f(with)h(neutrino)e(31.3.98\))1913 +2316 y(pion)i(aborption)1913 2415 y(interaction)d(crosssections)1913 +2515 y(\(all)j(data)g(for)h(\(N,)f(N\))h(and)f(\(pi,)g(N\))h +(interactions)38 b(\(dn/dsigma,)h(d3sigma/d3p,)2436 2615 +y(partial)i(multiplicity)e(for)j(npi<=5)85 b(error)41 +b(10-20\\\045\))1913 2714 y(pre-equilibrium)d(exiton)j(model)1913 +3089 y Fi(4.)47 b(INUCL)33 b(MANUAL)f(P)-8 b(A)m(GES)1913 +3253 y(4.1.)47 b(Reaction)31 b(initial)g(state)h(sim)m(ulation)1913 +3353 y(4.1.1.)46 b(Pro)5 b(jectiles)22 b(and)h(enery)g(range)g(of)g(mo) +s(del)1996 3452 y Fn(The)30 b(GEANT4)g(INCUL)g(mo)r(del)g(is)g(cpable)f +(to)h(pre-)1913 3552 y(dict)e(\014nal)g(states)f(:::)1996 +3651 y(The)h(allo)n(w)n(ed)e(allo)n(w)n(ed)g(b)r(om)n(barding)h +(kinetic)h(enery)1913 3751 y(is)g(recommended)f(to)h(b)r(e)g(more)e +(than)i(20)f Ff(M)9 b(eV)46 b Fn(in)28 b(the)1913 3851 +y(lab)r(oratory)33 b(frame.)58 b(The)34 b(upp)r(er)h(limit)h(of)f +(initial)f(ki-)1913 3950 y(netic)28 b(energy)f(is)g(appro)n(ximately)f +(10)h Ff(GeV)19 b Fn(.)1913 4204 y Fi(4.1.2.)46 b(Nucleus)31 +b(initialization)2038 4303 y Fh(\017)41 b Fi(Nucleon)31 +b(radii)p Fn(:)2038 4656 y Fh(\017)41 b Fi(The)32 b(initial)e(momen)m +(ta)g(of)i(the)f(n)m(ucleons)p Fn(:)2038 5009 y Fh(\017)41 +b Fi(Nucleon)31 b(binding)g(energy)p Fn(:)1913 5332 y +Fi(4.2.)47 b(Random)34 b(c)m(hoice)i(of)f(the)h(impact)e(param-)2110 +5432 y(eter)1996 5531 y Fn(The)h(impact)g(parameter)f +Ff(b)h Fn(is)f(randomly)g(selected)1913 5631 y(according)26 +b(to)p eop +%%Page: 4 4 +4 3 bop 94 685 a Fn(4)94 942 y Fi(4.3.)47 b(Hadron)32 +b(propagation)94 1042 y(4.4.)47 b(Selection)21 b(of)i(particle)g +(collisions)d(and)k(par-)291 1142 y(ticle)31 b(deca)m(ys)94 +1241 y(4.5.)47 b(Hadron)32 b(in)m(teration)g(cross)f(sections)94 +1341 y(4.6.)47 b(Hadron)32 b(collision)d(sim)m(ulation)94 +1441 y(4.6.1.)46 b(Tw)m(o-b)s(o)s(dy)32 b(hadron)g(scattering)94 +1540 y(4.6.2.)46 b(Angular)69 b(distribution)e(of)h(t)m(w)m(o-b)s(o)s +(dy)365 1640 y(hadron)32 b(scatterings)94 1739 y(4.6.3.)46 +b Ff(\031)s Fi(-absorption)32 b(sim)m(ulation)94 1839 +y(4.7.)47 b(Resonance)31 b(deca)m(y)i(sim)m(ulation)94 +1939 y(4.8.)47 b(Phenomenological)28 b(p)s(oten)m(tials)94 +2038 y(4.8.1.)46 b(The)32 b(n)m(ucleon)g(p)s(oten)m(tial)94 +2138 y(4.9.)47 b(P)m(auli)32 b(blo)s(c)m(king)f(sim)m(ulation)94 +2238 y(4.10.)46 b(Residual)f(n)m(ucleus)g(parameters)g(in)g(the)338 +2337 y(hadron-n)m(ucleus)33 b(collision)94 2437 y(4.11.)46 +b(Calculation)34 b(of)g(a)h(residual)e(n)m(ucleus)h(ex-)338 +2536 y(itation)e(energy)94 2636 y(4.12.)46 b(Staus)33 +b(of)e(this)g(do)s(cumen)m(t)178 2736 y Fn(8.6.02)25 +b(created)i(b)n(y)g(A.)h(Heikkinen)94 3193 y Fi(5.)47 +b(INTRANUCLEAR)377 b(CASCADE)216 3292 y(MODEL)94 3456 +y(5.1.)47 b(NUCLEON)107 b(DENCITY)h(IN)f(THE)291 3556 +y(A)-8 b(TOM)178 3655 y Fn(Halo)27 b(n)n(ucleus)g(suc)n(h)g(as)956 +3625 y Fl(11)1026 3655 y Ff(Li)g Fn(are)g(not)g(mo)r(delled.)94 +3950 y Fi(5.2.)47 b(IMPULSE)32 b(DISTRIBUTION)94 4049 +y(5.3.)47 b(DISTRIBUTION)73 b(OF)e(POTENTIAL)291 4149 +y(ENER)m(GY)94 4248 y(5.4.)47 b(QUANTUM)32 b(EFFECTS)178 +4348 y Fn(P)n(auli)26 b(exclusion)h(principle)94 4642 +y Fi(5.5.)47 b(DESCRIPTION)32 b(OF)f(INC)94 4742 y(6.)47 +b(FISSION)94 4906 y(7.)g(PRE-EQUILIBRIUM)94 5069 y(8.)g(EV)-11 +b(APORA)j(TION)178 5233 y Fn(Exited)24 b(n)n(uclei)h(co)r(ols)f +(further)h(trough)f(the)h(emission)94 5332 y(of)f(gamma)f(radiation.)34 +b(If)24 b(sim)n(ulation)g(is)f(detailed,)i(the)94 5432 +y(emitted)39 b(gamma)d(ra)n(ys)f(con)n(tain)i(information)f(ab)r(out)94 +5531 y(the)20 b(co)r(oling)f(route)f(and)h(region)f(the)i(n)n(ucleus)f +(is)g(passing)94 5631 y(trough.)2102 942 y Fi(9.)47 b(FR)m(OM)32 +b(INUCL)g(TO)g(INUCL++)2102 1106 y(9.1.)47 b(DESIGN)31 +b(AND)h(ANAL)-8 b(YSIS)2185 1206 y Fn(W)h(e)38 b(desided)g(to)g(mak)n +(e)f(separate)f(INUCL++)h(im-)2102 1305 y(plemen)n(tations)k(one)f(as)g +(an)g(stand)g(alone)g(with)h(sp)r(e-)2102 1405 y(si\014c)50 +b(cross-section)d(data)i(and)g(particle)g(de\014nition,)2102 +1504 y(and)41 b(another)g(iplemen)n(tation)g(that)g(re-uses)f(Gean)n +(t4)2102 1604 y(classes.)34 b(So,)21 b(requiremen)n(ts)f(for)g(the)h +(INUCL++)g(came)2102 1704 y(mainly)28 b(from)g(Gean)n(t4.)37 +b(Co)r(ding)28 b(st)n(yle)g(and)g(organiza-)2102 1803 +y(tion)g(should)f(follo)n(w)g(those)g(used)h(in)g(Gean)n(t4.)2185 +1903 y(In)n(terace-classes)56 b(to)i(Gean)n(t4)f(hadronic)g(mo)r(dels) +2102 2003 y(de\014ne)52 b(the)f(separation)f(of)h(cascade,)k +(\014ssion,)i(pre-)2102 2102 y(equilibrium,)39 b(and)e(ev)-5 +b(ap)r(oration.)62 b(Th)n(us)37 b(INUCL++)2102 2202 y(implemen)n +(tation)d(in)f(Gean)n(t4)g(consists)g(of)g(four)g(sepa-)2102 +2301 y(rate)27 b(mo)r(dules.)2102 2469 y Fi(9.2.)47 b(IMPLEMENT)-8 +b(A)g(TION)2102 2568 y(9.3.)47 b(TESTING)2185 2668 y +Fn(Extensiv)n(e)27 b(testing)g(:::)2185 2768 y(Sp)r(eed)i(comparison)c +(:::)2102 2971 y Fi(10.)47 b(INUCL++)94 b(AS)f(A)f(ST)-8 +b(AND)m(ALONE)2272 3070 y(PR)m(OGRAM)2102 3234 y(11.)47 +b(INUCL++)33 b(IN)f(GEANT4)2102 3397 y(12.)47 b(RESUL)-8 +b(TS)2185 3561 y Fn(W)h(e)19 b(ha)n(v)n(e)f(rewritten)g(INUCL)h(in)n +(to)f(C++)f(and)i(tested)2102 3660 y(the)28 b(p)r(erformance.)35 +b(Here)27 b(w)n(e)f(com)n(bine)h(INUCL)g(mo)r(d-)2102 +3760 y(els)h(and)f(HETC)h(INC.)2185 3860 y(W)-7 b(e)28 +b(giv)n(e)d(here)i(summary)f(of)g(results.)37 b(Eac)n(h)25 +b(con\014g-)2102 3959 y(uration)d(consists)g(of)h(N=1000)d(ev)n(en)n +(ts)i(sim)n(ulated)h(with)2102 4059 y(same)k(energy)g(etc.)37 +b(parameters.)2102 4226 y Fi(12.1.)46 b(P)m(article)33 +b(m)m(ultiplicities)2185 4326 y Fn(Multiplities)j(for)e(collisions)g(b) +r(et)n(w)n(een)g Ff(p)h Fn(pro)5 b(jectile)2102 4425 +y(\()34 b(0)p Ff(:)p Fn(5)e Ff(GeV)50 b(<)32 b(E)37 b(<)31 +b Fn(5)p Ff(:)p Fn(0)h Ff(GeV)19 b Fn(\))33 b(and)g(aluminium)g +Ff(Al)r Fn(,)2102 4525 y(iron)24 b Ff(F)12 b(e)24 b Fn(and)h(lead)f +Ff(P)12 b(b)24 b Fn(tragets)f(\(at)i(rest\))f(are)g(listed)h(in)2102 +4625 y(Figs.)37 b(1)27 b(-)g(4.)2102 4792 y Fi(12.2.)46 +b(P)m(article)33 b(energies)2185 4891 y Fn(Figs.)h(5)18 +b(-)g(9)g(giv)n(e)f(an)h(summary)g(of)g(cascade)f(pro)r(ducts)2102 +4991 y(energy-lev)n(els.)2102 5194 y Fi(A.)48 b(PR)m(OJECT)32 +b(plan)2227 5358 y Fh(\017)41 b Fn(w)n(e)27 b(will)g(con)n(tin)n(ue)g +(testing)g(INUCL++)g(against)2310 5457 y(previous)f(v)n(erison.)2227 +5631 y Fh(\017)41 b Fn(w)n(e)21 b(reorganize)d(the)k(co)r(de)f(is)g +(sutc)n(h)g(mannet)h(that)p eop +%%Page: 5 5 +5 4 bop 3644 685 a Fn(5)-94 2496 y @beginspecial 0 @llx +0 @lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pAlMultiplicity.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Sun Jun 9 16:17:40 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1812 1221 216 170 bf 0.647667 0.183667 0.164333 c 216 170 m 1 1 d 1219 Y 1810 X 1 1 d -1812 X -1221 Y f 1 0 0 c 216 170 m 1 1 d 1810 X + 1219 Y 1 1 d -1221 Y -1812 X f [] 0 sd 3 lw black 216 170 m 1812 X s [] 0 sd 3 lw 2028 170 m 1221 Y s [] 0 sd 3 lw 2028 1391 m -1812 X s [] 0 sd 3 lw 216 1391 m -1221 Y s [] 0 sd 3 lw 1 1 1 c 1812 1221 216 170 bf 0.647667 0.183667 0.164333 c 216 170 + m 1 1 d 1219 Y 1810 X 1 1 d -1812 X -1221 Y f 1 0 0 c 216 170 m 1 1 d 1810 X 1219 Y 1 1 d -1221 Y -1812 X f [] 0 sd 3 lw black 216 170 m 1812 X s [] 0 sd 3 lw 2028 170 m 1221 Y s [] 0 sd 3 lw 2028 1391 m -1812 X s [] 0 sd 3 lw 216 1391 m -1221 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 216 170 m 1812 X s [] 0 sd 3 lw [] 0 sd 3 lw 216 170 m 1812 X s s [] 0 sd 3 lw [] 0 sd 3 lw 535 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 602 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 669 188 m -18 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 736 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 804 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 871 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 938 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1005 188 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1072 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1139 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1206 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1273 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1340 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw + 1407 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1475 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1542 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1609 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1676 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1743 188 m -18 + Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1810 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1877 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 535 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 468 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 401 188 m -18 Y s s [] 0 sd 3 + lw [] 0 sd 3 lw 334 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 267 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1877 206 m -36 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1944 188 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2011 188 m -18 Y s s + /xs 0 def (1) /Helvetica-Bold 56 stwn gsave 535 101 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 871 101 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (3) /Helvetica-Bold 56 stwn gsave 1206 101 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 1542 101 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (5) /Helvetica-Bold 56 stwn gsave 1877 101 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 216 170 m 1221 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 271 310 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 345 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 + 381 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 416 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 451 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 487 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 522 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 557 m -28 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 244 593 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 628 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 663 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 698 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 734 m -28 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 244 769 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 804 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 840 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 875 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 910 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 + 946 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 981 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 1016 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 1052 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 1087 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 1122 m -28 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 244 1158 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 1193 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 1228 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 1264 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 1299 m -28 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 244 1334 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 1370 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 310 m -55 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 275 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 239 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 244 + 204 m -28 X s s [] 0 sd 3 lw [] 0 sd 3 lw 271 1370 m -55 X s s + /xs 0 def (8) /Helvetica-Bold 56 stwn gsave 205 287 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (8) show gr + /xs 0 def (9) /Helvetica-Bold 56 stwn gsave 205 463 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (9) show gr + /xs 0 def (10) /Helvetica-Bold 56 stwn gsave 205 640 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show gr + /xs 0 def (11) /Helvetica-Bold 56 stwn gsave 205 817 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (11) show gr + /xs 0 def (12) /Helvetica-Bold 56 stwn gsave 205 993 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (12) show gr + /xs 0 def (13) /Helvetica-Bold 56 stwn gsave 205 1170 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (13) show gr + /xs 0 def (14) /Helvetica-Bold 56 stwn gsave 205 1347 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (14) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 367 272 m 56 66 d 47 53 d 50 53 d 15 16 d 48 46 d 52 48 d 57 49 d 11 9 d 168 124 d 71 57 d 62 50 d 34 25 d 56 38 d 46 28 d 45 25 d 21 + 11 d 54 26 d 40 16 d 36 12 d 38 10 d 19 3 d 23 -1 d 69 -9 d 19 1 d 15 4 d 14 6 d 9 5 d 12 10 d 14 14 d 16 20 d 19 28 d 52 80 d 18 25 d 13 16 d 13 14 d 10 8 d 22 14 d 23 12 d 19 7 d 24 6 d 22 2 d 21 -1 d 21 -4 d 16 -5 d s [] 0 sd 3 lw 1 0 0 c /w 26 + def /w2 {w 2 div} def /w3 {w 3 div} def 367 272 535 460 703 612 871 736 1038 868 1206 970 1374 1034 1542 1043 1709 1258 1877 1289 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 638 177 244 820 bf black + gsave 618 858 + t 0 r 0 0 m /Helvetica-Bold findfont 116 sf 0 0 m (Al\)) show gr + gsave 529 927 + t 0 r 0 0 m /Helvetica-Bold findfont 76 sf 0 0 m (27) show gr + gsave 352 858 + t 0 r 0 0 m /Helvetica-Bold findfont 116 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 739 176 647 1173 bf black + gsave 734 1240 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (Particle multiplicity) show gr [] 0 sd 3 lw [] 0 sd 3 lw 1758 1163 m -174 Y s [] 0 sd 3 lw 1735 1163 m 23 46 d 27 -46 d f [] 0 sd 3 lw 1735 1163 m 23 46 d 27 -46 d -50 X cl s [] 0 sd 3 lw [] 0 sd 3 + lw 703 518 m -151 Y s [] 0 sd 3 lw 680 518 m 23 46 d 27 -46 d f [] 0 sd 3 lw 680 518 m 23 46 d 27 -46 d -50 X cl s + gsave 657 297 + t 0 r 0 0 m /Helvetica-Bold findfont 52 sf 0 0 m (N=1000 events) show gr + gsave 1418 919 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (explosion model after cascade) show gr + gsave 1410 54 + t 0 r 0 0 m /Helvetica-Bold findfont 52 sf 0 0 m (Projectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 336 x(Figure)26 b(1.)37 b(P)n(article)26 +b(m)n(ultiplicities)i(for)f(\()p Ff(p;)1297 2802 y Fl(27)1382 +2832 y Ff(Al)r Fn(\).)-94 4915 y @beginspecial 0 @llx +0 @lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pFeMultiplicity.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Sun Jun 9 16:37:55 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X + 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 + m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 613 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 680 170 m -18 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 748 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 815 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 882 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 949 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1016 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1083 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1151 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1218 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1352 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw + 1419 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1487 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1554 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1621 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1688 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1755 170 m -18 + Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1823 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 479 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 412 170 m -18 Y s s [] 0 sd 3 + lw [] 0 sd 3 lw 344 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 277 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1957 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2024 170 m -18 Y s s + /xs 0 def (1) /Helvetica-Bold 56 stwn gsave 546 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 882 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (3) /Helvetica-Bold 56 stwn gsave 1218 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 1554 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (5) /Helvetica-Bold 56 stwn gsave 1890 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 261 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 308 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 355 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 402 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 449 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 496 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 542 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 589 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 636 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 683 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 730 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 777 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 824 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 870 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 917 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 964 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1011 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1058 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 1105 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1152 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1199 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 261 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 214 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 167 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 1199 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1245 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1292 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1339 m -27 X s s + /xs 0 def (10) /Helvetica-Bold 56 stwn gsave 215 238 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show gr + /xs 0 def (12) /Helvetica-Bold 56 stwn gsave 215 425 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (12) show gr + /xs 0 def (14) /Helvetica-Bold 56 stwn gsave 215 613 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (14) show gr + /xs 0 def (16) /Helvetica-Bold 56 stwn gsave 215 800 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (16) show gr + /xs 0 def (18) /Helvetica-Bold 56 stwn gsave 215 988 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (18) show gr + /xs 0 def (20) /Helvetica-Bold 56 stwn gsave 215 1175 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 378 254 m 42 57 d 43 56 d 40 48 d 43 49 d 41 43 d 45 45 d 44 40 d 38 33 d 35 27 d 133 90 d 141 101 d 27 19 d 61 38 d 94 58 d 13 8 d + 45 32 d 74 56 d 33 22 d 16 10 d 53 29 d 40 19 d 34 14 d 35 11 d 6 1 d 23 5 d 31 1 d 77 1 d 21 3 d 16 4 d 33 12 d 33 15 d 34 20 d 31 20 d 37 27 d s [] 0 sd 3 lw 1 0 0 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 378 254 546 464 714 625 882 742 + 1050 862 1218 966 1386 1086 1554 1160 1722 1174 1890 1268 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 638 93 244 824 bf black + gsave 595 831 + t 0 r 0 0 m /Helvetica-Bold findfont 84 sf 0 0 m (Fe\)) show gr + gsave 533 885 + t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (56) show gr + gsave 406 831 + t 0 r 0 0 m /Helvetica-Bold findfont 84 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 739 93 647 1199 bf black + gsave 734 1225 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (Particle multiplicity) show gr [] 0 sd 3 lw 1 1 1 c 672 77 1395 0 bf black + gsave 1429 23 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (Porojectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 336 x(Figure)f(2.)37 b(P)n(article)26 b(m)n(ultiplicities) +i(for)f(\()p Ff(p;)1297 5221 y Fl(56)1382 5251 y Ff(F)12 +b(e)p Fn(\).)1913 2498 y @beginspecial 0 @llx 0 @lly +567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pPbMultiplicity.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Sun Jun 9 16:51:17 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X + 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 + m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 613 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 680 170 m -18 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 748 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 815 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 882 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 949 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1016 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1083 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1151 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1218 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1352 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw + 1419 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1487 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1554 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1621 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1688 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1755 170 m -18 + Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1823 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 479 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 412 170 m -18 Y s s [] 0 sd 3 + lw [] 0 sd 3 lw 344 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 277 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1957 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2024 170 m -18 Y s s + /xs 0 def (1) /Helvetica-Bold 56 stwn gsave 546 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 882 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (3) /Helvetica-Bold 56 stwn gsave 1218 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 1554 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (5) /Helvetica-Bold 56 stwn gsave 1890 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 163 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 192 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 221 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 250 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 279 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 308 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 337 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 366 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 254 395 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 424 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 454 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 483 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 512 m -27 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 541 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 570 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 599 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 628 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 657 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 686 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 715 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 744 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 773 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 802 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 831 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 254 860 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 889 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 918 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 948 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 977 m -27 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 1006 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1035 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1064 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1093 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1122 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw + 254 1151 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1180 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1209 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1238 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1267 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1296 m -27 + X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1325 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 163 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1325 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1354 m -27 X s s + /xs 0 def (15) /Helvetica-Bold 56 stwn gsave 215 140 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (15) show gr + /xs 0 def (20) /Helvetica-Bold 56 stwn gsave 215 285 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show gr + /xs 0 def (25) /Helvetica-Bold 56 stwn gsave 215 430 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (25) show gr + /xs 0 def (30) /Helvetica-Bold 56 stwn gsave 215 576 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (30) show gr + /xs 0 def (35) /Helvetica-Bold 56 stwn gsave 215 721 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (35) show gr + /xs 0 def (40) /Helvetica-Bold 56 stwn gsave 215 866 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (40) show gr + /xs 0 def (45) /Helvetica-Bold 56 stwn gsave 215 1012 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (45) show gr + /xs 0 def (50) /Helvetica-Bold 56 stwn gsave 215 1157 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (50) show gr + /xs 0 def (55) /Helvetica-Bold 56 stwn gsave 215 1302 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (55) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 378 254 m 39 54 d 34 44 d 35 41 d 33 37 d 27 28 d 26 23 d 34 28 d 108 79 d 57 49 d 111 95 d 103 88 d 36 29 d 29 21 d 40 26 d 52 29 d + 63 32 d 13 6 d 168 64 d 20 14 d 23 19 d 39 36 d 36 32 d 19 14 d 18 11 d 13 7 d 17 5 d 20 3 d 26 X 70 -5 d 19 2 d 16 4 d 31 11 d 31 15 d 35 20 d 29 20 d 31 24 d 11 9 d s [] 0 sd 3 lw 1 0 0 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 378 254 546 + 458 714 588 882 732 1050 870 1218 963 1386 1027 1554 1160 1722 1169 1890 1268 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 637 93 255 950 bf black + gsave 618 958 + t 0 r 0 0 m /Helvetica-Bold findfont 88 sf 0 0 m (Pb\)) show gr + gsave 522 1012 + t 0 r 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (208) show gr + gsave 390 958 + t 0 r 0 0 m /Helvetica-Bold findfont 88 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 742 89 699 1217 bf black + gsave 788 1244 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (Particle multiplicity) show gr [] 0 sd 3 lw 1 1 1 c 673 58 1402 19 bf black + gsave 1437 31 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (Porojectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 335 x(Figure)27 b(3.)37 b(P)n(article)26 +b(m)n(ultiplicities)i(for)f(\()p Ff(p;)3305 2803 y Fl(82)3390 +2833 y Ff(P)12 b(b)p Fn(\).)1913 4919 y @beginspecial +0 @llx 0 @lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pPbPionMultiplicity.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Mon Jun 10 00:02:25 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X + 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 + m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 714 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 882 189 m -37 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 1050 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1218 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1386 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1554 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1722 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 378 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s + /xs 0 def (0.1) /Helvetica-Bold 56 stwn gsave 546 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.1) show gr + /xs 0 def (0.2) /Helvetica-Bold 56 stwn gsave 882 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.2) show gr + /xs 0 def (0.3) /Helvetica-Bold 56 stwn gsave 1218 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.3) show gr + /xs 0 def (0.4) /Helvetica-Bold 56 stwn gsave 1554 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.4) show gr + /xs 0 def (0.5) /Helvetica-Bold 56 stwn gsave 1890 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 152 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 182 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw + 254 212 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 241 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 271 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 301 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 331 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 361 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 390 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 420 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 450 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 480 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 509 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 539 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 569 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 599 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 628 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 658 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 688 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 718 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 747 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 777 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 807 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 837 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 866 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 896 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 926 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 956 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 985 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 1015 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1045 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1075 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1104 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1134 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw + 254 1164 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1194 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1223 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1253 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1283 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1313 m -27 + X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1343 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1343 m -54 X s s + /xs 0 def (0) /Helvetica-Bold 56 stwn gsave 215 129 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show gr + /xs 0 def (0.02) /Helvetica-Bold 56 stwn gsave 215 248 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.02) show gr + /xs 0 def (0.04) /Helvetica-Bold 56 stwn gsave 215 367 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.04) show gr + /xs 0 def (0.06) /Helvetica-Bold 56 stwn gsave 215 486 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.06) show gr + /xs 0 def (0.08) /Helvetica-Bold 56 stwn gsave 215 605 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.08) show gr + /xs 0 def (0.1) /Helvetica-Bold 56 stwn gsave 215 724 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.1) show gr + /xs 0 def (0.12) /Helvetica-Bold 56 stwn gsave 215 843 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.12) show gr + /xs 0 def (0.14) /Helvetica-Bold 56 stwn gsave 215 962 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.14) show gr + /xs 0 def (0.16) /Helvetica-Bold 56 stwn gsave 215 1081 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.16) show gr + /xs 0 def (0.18) /Helvetica-Bold 56 stwn gsave 215 1200 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.18) show gr + /xs 0 def (0.2) /Helvetica-Bold 56 stwn gsave 215 1319 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.2) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 378 152 m 168 X s [] 0 sd 6 lw 714 152 m cl s [] 0 sd 6 lw 714 152 m 40 6 d 77 15 d 51 9 d 32 2 d 83 -2 d 21 3 d 21 5 d 11 4 d 23 11 + d 23 15 d 30 23 d 46 40 d 46 42 d 48 44 d 58 58 d 62 64 d 91 97 d 38 44 d 30 38 d 9 12 d 34 47 d 36 55 d 41 65 d 46 77 d 11 18 d 42 74 d 44 80 d 40 77 d 42 84 d s [] 0 sd 3 lw 1 0 0 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 378 152 546 152 714 + 152 882 182 1050 194 1218 325 1386 491 1554 682 1722 944 1890 1259 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 638 119 297 974 bf black + gsave 664 993 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (Pb\)) show gr + gsave 556 1051 + t 0 r 0 0 m /Helvetica-Bold findfont 64 sf 0 0 m (208) show gr + gsave 410 993 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 742 120 788 1213 bf black + gsave 881 1248 + t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (Pion multiplicity) show gr [] 0 sd 3 lw 1 1 1 c 673 77 1375 0 bf black + gsave 1410 23 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (Porojectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 336 x(Figure)27 b(4.)37 b(Pion)27 b(m)n(ultiplicities.)p +eop +%%Page: 6 6 +6 5 bop 94 685 a Fn(6)94 2499 y @beginspecial 0 @llx +0 @lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pPbProtonEnergy.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Sun Jun 9 23:47:38 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X + 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 + m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 613 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 680 170 m -18 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 748 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 815 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 882 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 949 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1016 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1083 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1151 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1218 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1352 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw + 1419 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1487 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1554 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1621 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1688 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1755 170 m -18 + Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1823 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 479 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 412 170 m -18 Y s s [] 0 sd 3 + lw [] 0 sd 3 lw 344 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 277 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1957 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2024 170 m -18 Y s s + /xs 0 def (1) /Helvetica-Bold 56 stwn gsave 546 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 882 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (3) /Helvetica-Bold 56 stwn gsave 1218 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 1554 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (5) /Helvetica-Bold 56 stwn gsave 1890 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 364 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 407 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 449 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 492 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 534 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 576 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 619 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 661 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 254 704 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 746 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 789 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 831 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 873 m -27 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 916 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 958 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1001 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1043 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1086 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 1128 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1171 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1213 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 364 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 322 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 279 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 254 237 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 195 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1213 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1255 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1298 m -27 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 1340 m -27 X s s + /xs 0 def (0.09) /Helvetica-Bold 56 stwn gsave 215 341 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.09) show gr + /xs 0 def (0.1) /Helvetica-Bold 56 stwn gsave 215 553 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.1) show gr + /xs 0 def (0.11) /Helvetica-Bold 56 stwn gsave 215 765 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.11) show gr + /xs 0 def (0.12) /Helvetica-Bold 56 stwn gsave 215 978 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.12) show gr + /xs 0 def (0.13) /Helvetica-Bold 56 stwn gsave 215 1190 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.13) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 378 254 m 22 5 d 22 8 d 19 10 d 25 16 d 21 17 d 22 21 d 21 23 d 16 19 d 12 17 d 14 23 d 16 29 d 19 40 d 45 95 d 19 38 d 15 25 d 11 + 18 d 12 16 d 5 5 d 14 14 d 16 12 d 17 10 d 19 8 d 102 15 d 33 5 d 104 4 d 31 2 d 26 1 d 74 -4 d 22 2 d 16 5 d 14 7 d 16 11 d 12 11 d 12 15 d 15 21 d 20 32 d 33 60 d 24 41 d 17 26 d 12 18 d 12 14 d 11 10 d 12 8 d 13 6 d 143 13 d 13 11 d 14 15 d 17 21 + d 19 28 d 47 72 d 18 26 d 14 17 d 13 13 d 13 10 d 20 12 d 23 10 d 19 5 d 21 3 d 21 X 22 -4 d 19 -6 d 23 -11 d s [] 0 sd 3 lw 1 0 0 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 378 254 546 373 714 679 882 738 1050 749 1218 771 1386 1019 1554 1046 + 1722 1259 1890 1268 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 637 425 255 800 bf black + gsave 622 970 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (Pb\)) show gr + gsave 514 1028 + t 0 r 0 0 m /Helvetica-Bold findfont 64 sf 0 0 m (208) show gr + gsave 367 970 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 742 108 641 1225 bf black + gsave 695 1259 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (average proton energy) show gr [] 0 sd 3 lw 1 1 1 c 673 77 1398 0 bf black + gsave 1433 23 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (Porojectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 336 x(Figure)27 b(5.)37 b(Av)n(erage)26 +b(proton)g(energies.)94 4918 y @beginspecial 0 @llx 0 +@lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pPbNeutronEnergy.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Sun Jun 9 23:43:13 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X + 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 + m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 613 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 680 170 m -18 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 748 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 815 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 882 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 949 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1016 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1083 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1151 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1218 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1352 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw + 1419 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1487 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1554 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1621 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1688 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1755 170 m -18 + Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1823 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 479 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 412 170 m -18 Y s s [] 0 sd 3 + lw [] 0 sd 3 lw 344 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 277 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1957 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2024 170 m -18 Y s s + /xs 0 def (1) /Helvetica-Bold 56 stwn gsave 546 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 882 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (3) /Helvetica-Bold 56 stwn gsave 1218 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 1554 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (5) /Helvetica-Bold 56 stwn gsave 1890 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 294 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 372 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 + 450 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 527 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 605 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 683 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 760 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 838 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 916 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 994 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1071 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1149 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1227 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 281 294 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 217 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1227 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1304 m -27 X s s + /xs 0 def (0.015) /Helvetica-Bold 56 stwn gsave 215 271 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.015) show gr + /xs 0 def (0.02) /Helvetica-Bold 56 stwn gsave 215 426 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.02) show gr + /xs 0 def (0.025) /Helvetica-Bold 56 stwn gsave 215 582 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.025) show gr + /xs 0 def (0.03) /Helvetica-Bold 56 stwn gsave 215 737 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.03) show gr + /xs 0 def (0.035) /Helvetica-Bold 56 stwn gsave 215 893 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.035) show gr + /xs 0 def (0.04) /Helvetica-Bold 56 stwn gsave 215 1048 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.04) show gr + /xs 0 def (0.045) /Helvetica-Bold 56 stwn gsave 215 1204 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.045) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 378 254 m 39 59 d 43 62 d 37 51 d 40 50 d 9 11 d 39 47 d 43 47 d 37 38 d 40 37 d 9 9 d 30 25 d 43 31 d 95 64 d 168 112 d 27 21 d + 45 39 d 42 36 d 28 21 d 22 14 d 4 2 d 26 12 d 35 13 d 35 9 d 49 9 d 23 3 d 130 -10 d 19 1 d 19 5 d 20 7 d 25 14 d 31 20 d 68 50 d 24 15 d 69 39 d 72 38 d 27 13 d s [] 0 sd 3 lw 1 0 0 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 378 254 546 487 + 714 665 882 785 1050 897 1218 1030 1386 1076 1554 1072 1722 1178 1890 1268 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 638 156 244 1071 bf black + gsave 610 1105 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (Pb\)) show gr + gsave 502 1163 + t 0 r 0 0 m /Helvetica-Bold findfont 64 sf 0 0 m (208) show gr + gsave 355 1105 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 742 61 769 1256 bf black + gsave 792 1267 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (average neutron energy) show gr [] 0 sd 3 lw 1 1 1 c 673 62 1375 8 bf black + gsave 1410 23 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (Porojectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 336 x(Figure)h(6.)37 b(Av)n(erage)26 b(neutron)h +(energies.)2102 2473 y @beginspecial 0 @llx 0 @lly 567 +@urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/pPbNucleonExitation.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Sun Jun 9 23:36:48 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 1 1 1 c 2268 1522 0 0 bf black [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X + 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 1 1 1 c 1814 1218 227 152 bf 0.647667 0.183667 0.164333 c 227 152 + m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 1 0 0 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s + [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 1814 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 613 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 680 170 m -18 Y s s + [] 0 sd 3 lw [] 0 sd 3 lw 748 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 815 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 882 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 949 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1016 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 1083 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1151 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1218 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1352 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw + 1419 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1487 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1554 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1621 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1688 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1755 170 m -18 + Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1823 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 546 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 479 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 412 170 m -18 Y s s [] 0 sd 3 + lw [] 0 sd 3 lw 344 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 277 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1957 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2024 170 m -18 Y s s + /xs 0 def (1) /Helvetica-Bold 56 stwn gsave 546 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (1) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 882 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (3) /Helvetica-Bold 56 stwn gsave 1218 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (3) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 1554 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (5) /Helvetica-Bold 56 stwn gsave 1890 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 372 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 486 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 + 601 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 715 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 829 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 944 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1058 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1173 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 1287 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 372 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 257 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1287 m -54 X s s + /xs 0 def (0.03) /Helvetica-Bold 56 stwn gsave 215 349 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.03) show gr + /xs 0 def (0.04) /Helvetica-Bold 56 stwn gsave 215 577 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.04) show gr + /xs 0 def (0.05) /Helvetica-Bold 56 stwn gsave 215 806 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.05) show gr + /xs 0 def (0.06) /Helvetica-Bold 56 stwn gsave 215 1035 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.06) show gr + /xs 0 def (0.07) /Helvetica-Bold 56 stwn gsave 215 1264 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.07) show gr [] 0 sd 6 lw 1 0 0 c [] 0 sd 6 lw black 378 254 m 168 201 d 44 54 d 55 70 d 31 37 d 24 25 d 14 13 d 27 23 d 29 21 d 112 65 d 168 92 d 143 80 d 25 15 d 27 17 d 81 59 d 29 + 18 d 22 11 d 9 3 d 19 6 d 149 12 d 19 10 d 23 15 d 32 25 d 54 46 d 22 17 d 18 11 d 40 21 d 43 19 d 38 15 d 39 12 d 8 1 d s [] 0 sd 3 lw 1 0 0 c /w 26 def /w2 {w 2 div} def /w3 {w 3 div} def 378 254 546 455 714 654 882 763 1050 855 1218 950 1386 1058 + 1554 1076 1722 1200 1890 1268 10 { m20} R black [] 0 sd 3 lw 1 1 1 c 638 229 244 1058 bf black + gsave 610 1132 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (Pb\)) show gr + gsave 502 1190 + t 0 r 0 0 m /Helvetica-Bold findfont 64 sf 0 0 m (208) show gr + gsave 355 1132 + t 0 r 0 0 m /Helvetica-Bold findfont 96 sf 0 0 m (\(p,\040) show gr [] 0 sd 3 lw 1 1 1 c 741 78 858 1259 bf black + gsave 742 1279 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (average nucleon exitation energy) show gr [] 0 sd 3 lw 1 1 1 c 672 69 1379 12 bf black + gsave 1414 31 + t 0 r 0 0 m /Helvetica-Bold findfont 44 sf 0 0 m (Porojectile momentum [GeV]) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 336 x(Figure)g(7.)37 b(Av)n(erage)26 b(n)n(ucleon)h +(exitation)g(energy)-7 b(.)2102 4840 y @beginspecial +0 @llx 0 @lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/p50MeVPbProtonEnergy.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Mon Jun 10 00:46:34 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 0.95 0.95 0.95 c 2268 1522 0 0 bf black [] 0 sd 3 lw 0.95 0.95 0.95 c 1814 1218 227 152 bf 1 1 1 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 0.665 0.665 0.665 c 227 152 m 1 1 d + 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 0.95 0.95 0.95 c 1814 1218 227 152 bf 1 1 1 c 227 152 m 1 + 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 0.665 0.665 0.665 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m + -1218 Y s [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 308 X 89 Y 36 X 625 Y 19 X -179 Y 18 X 90 Y 36 X -90 Y 18 X 90 Y 18 X 89 Y 18 X -179 Y 37 X 447 Y 18 X -90 Y 18 X 179 Y 18 X -446 Y 18 X 535 Y 18 X -89 Y 19 X -446 Y 18 X 178 Y 36 X 179 Y + 18 X -536 Y 18 X 625 Y 18 X -268 Y 19 X 179 Y 18 X 178 Y 18 X -268 Y 18 X 90 Y 18 X 89 Y 18 X -89 Y 18 X -90 Y 37 X -624 Y 18 X 535 Y 18 X -178 Y 18 X 267 Y 18 X -446 Y 18 X 89 Y 19 X 536 Y 36 X -89 Y 18 X -179 Y 18 X -357 Y 18 X 268 Y 18 X -89 Y 19 + X 267 Y 36 X -89 Y 54 X -446 Y 18 X 268 Y 19 X 89 Y 18 X -357 Y 18 X -89 Y 18 X 89 Y 18 X 357 Y 18 X -357 Y 18 X 178 Y 19 X -89 Y 18 X 536 Y 18 X -447 Y 18 X -267 Y 18 X 267 Y 18 X -89 Y 18 X -178 Y 19 X -89 Y 18 X 89 Y 18 X 89 Y 36 X 178 Y 18 X + -178 Y 55 X -89 Y 36 X -179 Y 18 X 179 Y 18 X -179 Y 18 X -89 Y 19 X 89 Y 18 X -89 Y 36 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 227 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 378 170 m -18 Y s s [] 0 sd 3 lw + [] 0 sd 3 lw 529 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 680 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 831 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 983 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1134 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1285 + 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1436 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1587 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1739 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1890 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2041 189 m -37 Y s + s [] 0 sd 3 lw [] 0 sd 3 lw 2041 189 m -37 Y s s + /xs 0 def (-0.01) /Helvetica-Bold 56 stwn gsave 227 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (-0.01) show gr + /xs 0 def (-0) /Helvetica-Bold 56 stwn gsave 529 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (-0) show gr + /xs 0 def (0.01) /Helvetica-Bold 56 stwn gsave 831 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.01) show gr + /xs 0 def (0.02) /Helvetica-Bold 56 stwn gsave 1134 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.02) show gr + /xs 0 def (0.03) /Helvetica-Bold 56 stwn gsave 1436 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.03) show gr + /xs 0 def (0.04) /Helvetica-Bold 56 stwn gsave 1739 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.04) show gr + /xs 0 def (0.05) /Helvetica-Bold 56 stwn gsave 2041 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.05) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 152 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 197 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw + 254 241 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 286 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 331 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 375 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 420 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 464 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 509 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 554 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 598 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 643 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 687 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 732 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 777 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 821 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 866 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 910 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 955 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1000 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1044 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1089 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1134 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1178 m -27 X s + s [] 0 sd 3 lw [] 0 sd 3 lw 281 1223 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1223 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1267 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1312 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1357 m -27 X s s + /xs 0 def (0) /Helvetica-Bold 56 stwn gsave 215 129 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show gr + /xs 0 def (2) /Helvetica-Bold 56 stwn gsave 215 307 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (2) show gr + /xs 0 def (4) /Helvetica-Bold 56 stwn gsave 215 486 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (4) show gr + /xs 0 def (6) /Helvetica-Bold 56 stwn gsave 215 664 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (6) show gr + /xs 0 def (8) /Helvetica-Bold 56 stwn gsave 215 843 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (8) show gr + /xs 0 def (10) /Helvetica-Bold 56 stwn gsave 215 1021 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (10) show gr + /xs 0 def (12) /Helvetica-Bold 56 stwn gsave 215 1200 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (12) show gr [] 0 sd 3 lw 0.95 0.95 0.95 c 453 244 1769 1248 bf black [] 0 sd 3 lw 1780 1248 m -8 Y 450 X 240 Y -8 X -232 Y f [] 0 sd 3 lw 1769 1248 m 244 Y 453 X -244 Y -453 X cl s 1 1 + 1 c black + gsave 1793 1441 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (h1) show gr + gsave 1793 1379 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Nent = 559 \040) show gr + gsave 1793 1321 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Mean = 0.02104) show gr + gsave 1793 1259 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (RMS = 0.0118) show gr [] 0 sd 3 lw 0.95 0.95 0.95 c 1360 97 162 1398 bf black [] 0 sd 3 lw 174 1398 m -7 Y 1356 X 92 Y -8 X -85 Y f [] 0 sd 3 lw 162 1398 m 97 Y 1360 X -97 Y -1360 X cl s 1 1 1 c + black + gsave 1120 1426 + t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (= 0.05 GeV\)) show gr + gsave 1089 1402 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (p) show gr + gsave 174 1426 + t 0 r 0 0 m /Helvetica-Bold findfont 72 sf 0 0 m (Proton energy \(projectile E) show gr [] 0 sd 3 lw 0.95 0.95 0.95 c 453 244 1769 1248 bf black [] 0 sd 3 lw 1780 1248 m -8 Y 450 X 240 Y -8 X -232 Y f [] 0 sd 3 lw 1769 1248 m 244 Y 453 X -244 Y + -453 X cl s 1 1 1 c black + gsave 1793 1441 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (h1) show gr + gsave 1793 1379 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Nent = 559 \040) show gr + gsave 1793 1321 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Mean = 0.02104) show gr + gsave 1793 1259 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (RMS = 0.0118) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 335 x(Figure)29 b(8.)40 b(Proton)27 b(energy)h(sp)r +(ectrum,)h(when)g(pro)5 b(jec-)2102 5275 y(tile)28 b(particle)f(\(p\))i +(had)e(an)g(energy)g(of)g(0)p Ff(:)p Fn(05)g Ff(GeV)19 +b Fn(.)p eop +%%Page: 7 7 +7 6 bop 3644 685 a Fn(7)-94 2221 y @beginspecial 0 @llx +0 @lly 567 @urx 381 @ury 2267 @rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/p500MeVPbProtonEnergy.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%BoundingBox: 0 0 567 381 +%%Title: +%%Creator: ROOT Version3.01/05 +%%CreationDate:Mon Jun 10 00:44:47 2002 +%%EndComments +%%BeginProlog +80 dict begin +/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def +/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def +/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def +/c {setrgbcolor} def /lw {setlinewidth} def /sd {setdash} def +/cl {closepath} def /sf {scalefont setfont} def /black {0 setgray} def +/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def +/NC{systemdict begin initclip end}def/C{NC box clip newpath}def +/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def +/mp {newpath /y exch def /x exch def} def +/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def +/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def +/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def +/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def +/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def +/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def +/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def +/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d + 0 w3 neg d w3 neg 0 d cl s } def +/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl fill gr} def +/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t + 4 {side} repeat cl s gr} def +/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 + sub m w w d s} def +/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def +/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def +/reencdict 24 dict def /ReEncode {reencdict begin /nco&na exch def +/nfnam exch def /basefontname exch def /basefontdict basefontname findfont def +/newfont basefontdict maxlength dict def basefontdict {exch dup /FID ne +{dup /Encoding eq {exch dup length array copy newfont 3 1 roll put} {exch +newfont 3 1 roll put} ifelse} {pop pop} ifelse } forall newfont +/FontName nfnam put nco&na aload pop nco&na length 2 idiv {newfont +/Encoding get 3 1 roll put} repeat nfnam newfont definefont pop end } def +/accvec [ 176 /agrave 181 /Agrave 190 /acircumflex 192 /Acircumflex +201 /adieresis 204 /Adieresis 209 /ccedilla 210 /Ccedilla 211 /eacute +212 /Eacute 213 /egrave 214 /Egrave 215 /ecircumflex 216 /Ecircumflex +217 /edieresis 218 /Edieresis 219 /icircumflex 220 /Icircumflex +221 /idieresis 222 /Idieresis 223 /ntilde 224 /Ntilde 226 /ocircumflex +228 /Ocircumflex 229 /odieresis 230 /Odieresis 231 /ucircumflex 236 /Ucircumflex +237 /udieresis 238 /Udieresis 239 /aring 242 /Aring 243 /ydieresis +244 /Ydieresis 246 /aacute 247 /Aacute 252 /ugrave 253 /Ugrave] def +/Times-Roman /Times-Roman accvec ReEncode +/Times-Italic /Times-Italic accvec ReEncode +/Times-Bold /Times-Bold accvec ReEncode +/Times-BoldItalic /Times-BoldItalic accvec ReEncode +/Helvetica /Helvetica accvec ReEncode +/Helvetica-Oblique /Helvetica-Oblique accvec ReEncode +/Helvetica-Bold /Helvetica-Bold accvec ReEncode +/Helvetica-BoldOblique /Helvetica-BoldOblique accvec ReEncode +/Courier /Courier accvec ReEncode +/Courier-Oblique /Courier-Oblique accvec ReEncode +/Courier-Bold /Courier-Bold accvec ReEncode +/Courier-BoldOblique /Courier-BoldOblique accvec ReEncode +/oshow {gsave [] 0 sd true charpath stroke gr} def +/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf + text sw pop xs add /xs exch def} def +/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw +pop neg xs add /xs exch def} def +/accspe [ 65 /plusminus 66 /bar 67 /existential 68 /universal +69 /exclam 70 /numbersign 71 /greater 72 /question 73 /integral +74 /colon 75 /semicolon 76 /less 77 /bracketleft 78 /bracketright +79 /greaterequal 80 /braceleft 81 /braceright 82 /radical +83 /spade 84 /heart 85 /diamond 86 /club 87 /lessequal +88 /multiply 89 /percent 90 /infinity 48 /circlemultiply 49 /circleplus +50 /emptyset 51 /lozenge 52 /bullet 53 /arrowright 54 /arrowup +55 /arrowleft 56 /arrowdown 57 /arrowboth 48 /degree 44 /comma 43 /plus 45 /angle 42 /angleleft 47 /divide 61 /notequal 40 /equivalence 41 /second 97 /approxequal 98 /congruent 99 /perpendicular 100 /partialdiff 101 /florin 102 /intersection + 103 /union 104 /propersuperset 105 /reflexsuperset 106 /notsubset 107 /propersubset 108 /reflexsubset 109 /element 110 /notelement 111 /gradient 112 /logicaland 113 /logicalor 114 /arrowdblboth 115 /arrowdblleft 116 /arrowdblup 117 /arrowdblright + 118 /arrowdbldown 119 /ampersand 120 /omega1 121 /similar 122 /aleph ] def +/Symbol /Special accspe ReEncode +%%EndProlog +newpath gsave .25 .25 scale gsave 0 0 black [] 0 sd 3 lw 0.95 0.95 0.95 c 2268 1522 0 0 bf black [] 0 sd 3 lw 0.95 0.95 0.95 c 1814 1218 227 152 bf 1 1 1 c 227 152 m 1 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 0.665 0.665 0.665 c 227 152 m 1 1 d + 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m -1218 Y s [] 0 sd 3 lw 0.95 0.95 0.95 c 1814 1218 227 152 bf 1 1 1 c 227 152 m 1 + 1 d 1216 Y 1812 X 1 1 d -1814 X -1218 Y f 0.665 0.665 0.665 c 227 152 m 1 1 d 1812 X 1216 Y 1 1 d -1218 Y -1814 X f [] 0 sd 3 lw black 227 152 m 1814 X s [] 0 sd 3 lw 2041 152 m 1218 Y s [] 0 sd 3 lw 2041 1370 m -1814 X s [] 0 sd 3 lw 227 1370 m + -1218 Y s [] 0 sd 0 lw 1 1 1 c black [] 0 sd 0 lw 227 152 m 18 X 59 Y 18 X 1101 Y 18 X -199 Y 18 X -53 Y 18 X -221 Y 19 X -134 Y 18 X -11 Y 18 X -193 Y 36 X 11 Y 18 X -54 Y 18 X -53 Y 19 X -38 Y 18 X 70 Y 18 X -54 Y 18 X -21 Y 18 X -65 Y 18 X 27 Y + 18 X -70 Y 19 X 59 Y 18 X -37 Y 18 X -22 Y 18 X 54 Y 18 X -70 Y 18 X 59 Y 18 X -27 Y 19 X 6 Y 18 X -59 Y 18 X 48 Y 18 X -70 Y 18 X 38 Y 18 X -54 Y 18 X 54 Y 19 X -16 Y 18 X 26 Y 18 X -16 Y 18 X -16 Y 18 X 11 Y 18 X 5 Y 18 X 11 Y 19 X -32 Y 18 X -5 Y + 18 X 5 Y 18 X 5 Y 18 X -27 Y 18 X 17 Y 18 X 10 Y 19 X -21 Y 18 X 11 Y 18 X -6 Y 18 X 11 Y 18 X -27 Y 36 X 11 Y 19 X -22 Y 18 X 27 Y 18 X -11 Y 18 X 17 Y 18 X -33 Y 18 X 6 Y 18 X 16 Y 19 X -6 Y 18 X 11 Y 18 X -27 Y 18 X 11 Y 18 X -5 Y 91 X -11 Y 18 X + 5 Y 18 X 11 Y 18 X -21 Y 18 X 10 Y 37 X 11 Y 18 X -21 Y 18 X 5 Y 18 X 11 Y 18 X -6 Y 18 X 16 Y 19 X -10 Y 18 X -11 Y 36 X 5 Y 18 X -16 Y 18 X 11 Y 37 X -11 Y 181 X s [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1814 X s s [] 0 sd 3 lw [] 0 sd 3 lw 262 189 m + -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 440 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 618 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 796 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 974 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1152 170 m -18 Y s s [] 0 sd + 3 lw [] 0 sd 3 lw 1330 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1507 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1685 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 1863 170 m -18 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2041 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 + lw 262 189 m -37 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 2041 189 m -37 Y s s + /xs 0 def (0) /Helvetica-Bold 56 stwn gsave 262 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show gr + /xs 0 def (0.1) /Helvetica-Bold 56 stwn gsave 618 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.1) show gr + /xs 0 def (0.2) /Helvetica-Bold 56 stwn gsave 974 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.2) show gr + /xs 0 def (0.3) /Helvetica-Bold 56 stwn gsave 1330 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.3) show gr + /xs 0 def (0.4) /Helvetica-Bold 56 stwn gsave 1685 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.4) show gr + /xs 0 def (0.5) /Helvetica-Bold 56 stwn gsave 2041 84 + t 0 r xs 2 div neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0.5) show gr [] 0 sd 3 lw [] 0 sd 3 lw 227 152 m 1218 Y s s [] 0 sd 3 lw [] 0 sd 3 lw 281 152 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 179 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw + 254 206 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 233 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 260 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 286 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 313 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 340 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 367 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 394 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 421 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 448 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 474 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 501 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 528 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 555 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 582 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 609 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 635 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 662 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 689 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 716 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 743 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 770 m -27 X s s + [] 0 sd 3 lw [] 0 sd 3 lw 281 796 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 823 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 850 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 877 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 904 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 254 931 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 958 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 984 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1011 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1038 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 + 1065 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1092 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1119 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1145 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1172 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1199 m -27 X s + s [] 0 sd 3 lw [] 0 sd 3 lw 281 1226 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1253 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1280 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1307 m -27 X s s [] 0 sd 3 lw [] 0 sd 3 lw 281 1333 m -54 X s s [] 0 sd 3 lw + [] 0 sd 3 lw 281 1333 m -54 X s s [] 0 sd 3 lw [] 0 sd 3 lw 254 1360 m -27 X s s + /xs 0 def (0) /Helvetica-Bold 56 stwn gsave 215 129 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (0) show gr + /xs 0 def (20) /Helvetica-Bold 56 stwn gsave 215 236 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (20) show gr + /xs 0 def (40) /Helvetica-Bold 56 stwn gsave 215 344 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (40) show gr + /xs 0 def (60) /Helvetica-Bold 56 stwn gsave 215 451 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (60) show gr + /xs 0 def (80) /Helvetica-Bold 56 stwn gsave 215 559 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (80) show gr + /xs 0 def (100) /Helvetica-Bold 56 stwn gsave 215 666 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (100) show gr + /xs 0 def (120) /Helvetica-Bold 56 stwn gsave 215 773 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (120) show gr + /xs 0 def (140) /Helvetica-Bold 56 stwn gsave 215 881 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (140) show gr + /xs 0 def (160) /Helvetica-Bold 56 stwn gsave 215 988 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (160) show gr + /xs 0 def (180) /Helvetica-Bold 56 stwn gsave 215 1095 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (180) show gr + /xs 0 def (200) /Helvetica-Bold 56 stwn gsave 215 1203 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (200) show gr + /xs 0 def (220) /Helvetica-Bold 56 stwn gsave 215 1310 + t 0 r xs neg 0 t 0 0 m /Helvetica-Bold findfont 56 sf 0 0 m (220) show gr [] 0 sd 3 lw 0.95 0.95 0.95 c 453 244 1769 1248 bf black [] 0 sd 3 lw 1780 1248 m -8 Y 450 X 240 Y -8 X -232 Y f [] 0 sd 3 lw 1769 1248 m 244 Y 453 X -244 Y -453 X cl s 1 1 + 1 c black + gsave 1793 1441 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (h1) show gr + gsave 1793 1379 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Nent = 2075 \040) show gr + gsave 1793 1321 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Mean = 0.08) show gr + gsave 1793 1259 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (RMS = 0.09478) show gr [] 0 sd 3 lw 0.95 0.95 0.95 c 1359 77 325 1240 bf black [] 0 sd 3 lw 336 1240 m -8 Y 1356 X 74 Y -8 X -66 Y f [] 0 sd 3 lw 325 1240 m 77 Y 1359 X -77 Y -1359 X cl s 1 1 1 c + black + gsave 1259 1263 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (= 0.5 GeV\)) show gr + gsave 1232 1244 + t 0 r 0 0 m /Helvetica-Bold findfont 40 sf 0 0 m (p) show gr + gsave 452 1263 + t 0 r 0 0 m /Helvetica-Bold findfont 60 sf 0 0 m (Proton energy \(projectile E) show gr [] 0 sd 3 lw 0.95 0.95 0.95 c 453 244 1769 1248 bf black [] 0 sd 3 lw 1780 1248 m -8 Y 450 X 240 Y -8 X -232 Y f [] 0 sd 3 lw 1769 1248 m 244 Y 453 X -244 Y + -453 X cl s 1 1 1 c black + gsave 1793 1441 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (h1) show gr + gsave 1793 1379 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Nent = 2075 \040) show gr + gsave 1793 1321 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (Mean = 0.08) show gr + gsave 1793 1259 + t 0 r 0 0 m /Helvetica-Bold findfont 48 sf 0 0 m (RMS = 0.09478) show gr + gr gr +showpage +end +%%EOF + +%%EndDocument + @endspecial 335 x(Figure)28 b(9.)40 b(Proton)27 b(energy)h(sp)r +(ectrum,)i(when)f(pro)5 b(jec-)-94 2656 y(tile)27 b(particle)h(\(p\))g +(had)f(an)h(energy)e(of)i(0)p Ff(:)p Fn(5)e Ff(GeV)19 +b Fn(.)113 3090 y(in)n(tegratin)27 b(to)g(Gean)n(t4)g(is)h(smo)r(oth)30 +3268 y Fh(\017)41 b Fn(b)r(efore)26 b(y)n(ear)f(2002)f(will)i(pro)n +(vide)f(INUCL++)h(as)113 3367 y(a)d(stanalone)f(program,)g(or)h(as)f +(an)h(hadronic)f(cas-)113 3467 y(caded)d(mo)r(dules)h(\(INC,)g +(pre-equilibrium,)h(ev)-5 b(ap-)113 3567 y(oration,)26 +b(\014ssion\))i(in)f(Gean)n(t4.)-94 3773 y Fi(B.)47 b(UML)32 +b(DIA)m(GRAMS)-11 3936 y Fn(Preliminary)24 b(suggestion)g(for)i(In)n +(ucl)g(class)f(in)n(terface)-94 4036 y(to)j(Gean)n(t4)f(cascade,)g +(pre-equilibrium)h(and)g(ev)-5 b(ap)r(ora-)-94 4136 y(tion)27 +b(mo)r(dules.)-94 4342 y Fi(C.)47 b(DO)m(WNLO)m(ADING)32 +b(INUCL++)-11 4506 y Fn(INUCL++)-94 4605 y(is)71 b(do)n(wnloadable)e +(from)i(INUCL)g(homepage)f(at)-94 4705 y(h)n(ttp://cern.c)n +(h/aatos.heikkinen/in)n(ucl)-94 5069 y Fi(D.)47 b(O)m(VER)-11 +b(VIEW)82 b(OF)h(GEANT4)f(INUCL)53 5169 y(A)m(CTIVITIES)34 +b(2001-2002)-94 5332 y(D.1.)46 b(General)-11 5432 y Fn(Inside)32 +b(LHC)h(Programme)d(Soft)n(w)n(are)h(and)i(Ph)n(ysics)-94 +5531 y(pro)5 b(ject)22 b(Gean)n(t4)g(activities)g(are)g(under)h +(catecory)e Fg(Sim-)-94 5631 y(ulation)41 b(and)h(event)f(r)l(e)l(c)l +(osntruction)p Fn(.)73 b(In)40 b(2001)e(HIP)1913 4289 +y @beginspecial 7 @llx 40 @lly 564 @urx 781 @ury 2267 +@rwi @setspecial +%%BeginDocument: /home/miheikki/public/html/inucl/doc/cascadeUml.eps +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 7.0 40.0 564.0 781.0 +%%Creator: miheikki using rose_exe +%%CreationDate: Tue Jul 24 18:25:44 2001 +%%Title: inucl.eps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +[{ +%%BeginFeature: *InputSlot AUTO +6 statusdict /setpapertray get exec +%%EndFeature +} stopped cleartomark +[{ +%%BeginFeature: *PageRegion LETTER +LETTER +%%EndFeature +} stopped cleartomark +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +618 143 1365 304 FillRectangle +618 143 1365 304 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4IntraNuclearTransportModel) 733 -0.00 626 189 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +618 251 1365 304 FillRectangle +618 251 1365 304 RectangleOutLine +618 274 1365 304 FillRectangle +618 274 1365 304 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 822 240 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +67 335 668 496 FillRectangle +67 335 668 496 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4VCrossSectionDataSet) 576 -0.00 80 381 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +67 443 668 496 FillRectangle +67 443 668 496 RectangleOutLine +67 466 668 496 FillRectangle +67 466 668 496 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 198 432 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +276 1256 907 1367 FillRectangle +276 1256 907 1367 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4InuclElasticCollision) 602 -0.00 291 1302 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +276 1316 907 1367 FillRectangle +276 1316 907 1367 RectangleOutLine +276 1339 907 1367 FillRectangle +276 1339 907 1367 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1070 1256 1745 1367 FillRectangle +1070 1256 1745 1367 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4InuclInelasticCollision) 654 -0.00 1081 1302 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1070 1316 1745 1367 FillRectangle +1070 1316 1745 1367 RectangleOutLine +1070 1339 1745 1367 FillRectangle +1070 1339 1745 1367 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +205 584 530 695 FillRectangle +205 584 530 695 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4InuclData) 288 -0.00 224 630 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +205 644 530 695 FillRectangle +205 644 530 695 RectangleOutLine +205 667 530 695 FillRectangle +205 667 530 695 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +812 824 1171 935 FillRectangle +812 824 1171 935 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4InuclModel) 314 -0.00 835 870 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +812 884 1171 935 FillRectangle +812 884 1171 935 RectangleOutLine +812 907 1171 935 FillRectangle +812 907 1171 935 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1464 584 1991 695 FillRectangle +1464 584 1991 695 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4InuclNucleusModel) 497 -0.00 1479 630 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1464 644 1991 695 FillRectangle +1464 644 1991 695 RectangleOutLine +1464 667 1991 695 FillRectangle +1464 667 1991 695 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 368 583 +368 497 LineTo +[0 255 255 255 0 <>] UpdateBrush +346 557 390 557 368 497 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 644 1255 +939 936 LineTo +[0 255 255 255 0 <>] UpdateBrush +882 965 914 995 939 936 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 1353 1255 +1046 936 LineTo +[0 255 255 255 0 <>] UpdateBrush +1072 994 1104 964 1046 936 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +719 557 1264 722 FillRectangle +719 557 1264 722 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4InuclCascade) 366 -0.00 809 603 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +719 617 1264 722 FillRectangle +719 617 1264 722 RectangleOutLine +719 686 1264 722 FillRectangle +719 686 1264 722 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +Mwgstate setgstate newpath +728 623 1258 669 RectanglePath +clip newpath +/Courier 43 0 MwSetFont +(- CheckPauliPrinc...) 523 -0.00 728 658 TextOut +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 43 0 MwSetFont +[0 0 0 0 0 <>] UpdateBrush +[255 255 255] UpdateBkColor +1 UpdateBkMode +pop pop 1046 936 +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 43 0 MwSetFont +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[0 0 0 0 0 <>] UpdateBrush +[255 255 255] UpdateBkColor +1 UpdateBkMode +pop pop 1046 936 +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 43 0 MwSetFont +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 992 556 +992 305 LineTo +[0 255 255 255 0 <>] UpdateBrush +970 365 1014 365 992 305 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 624 640 +531 640 LineTo +pop pop 531 640 +567 655 LineTo +pop pop 531 640 +567 625 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 624 640 +718 640 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 992 773 +992 823 LineTo +pop pop 992 823 +1007 787 LineTo +pop pop 992 823 +977 787 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 992 773 +992 723 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1364 640 +1463 640 LineTo +pop pop 1463 640 +1427 655 LineTo +pop pop 1463 640 +1427 625 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1364 640 +1265 640 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1480 362 1975 501 FillRectangle +1480 362 1975 501 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4KineticTrackVector) 421 -0.00 1517 399 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1480 456 1975 501 FillRectangle +1480 456 1975 501 RectangleOutLine +1480 474 1975 501 FillRectangle +1480 474 1975 501 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 274 -0.00 1591 441 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1372 531 +1479 501 LineTo +pop pop 1479 501 +1448 525 LineTo +pop pop 1479 501 +1440 497 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1372 531 +1265 562 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1547 154 1908 293 FillRectangle +1547 154 1908 293 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4KineticTrack) 295 -0.00 1580 191 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1547 248 1908 293 FillRectangle +1547 248 1908 293 RectangleOutLine +1547 266 1908 293 FillRectangle +1547 266 1908 293 RectangleOutLine +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 274 -0.00 1591 233 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1728 327 +1728 294 LineTo +pop pop 1728 294 +1743 330 LineTo +pop pop 1728 294 +1713 330 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1728 327 +1728 361 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 746 1045 +1228 1045 LineTo +1264 1081 LineTo +1264 1189 LineTo +746 1189 LineTo +746 1045 LineTo +pop pop 1228 1045 +1228 1081 LineTo +1264 1081 LineTo +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(Spesific models ) 419 -0.00 758 1086 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(are derived from ) 445 -0.00 758 1132 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(G4InuclModel) 314 -0.00 758 1178 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(Preliminary suggestion for Inucl++ cascade classes) 1308 -0.00 32 83 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 1349 784 +1713 784 LineTo +1749 820 LineTo +1749 970 LineTo +1349 970 LineTo +1349 784 LineTo +pop pop 1713 784 +1713 820 LineTo +1749 820 LineTo +[1 0 0 0 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(manages ) 209 -0.00 1361 825 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(cascade ) 209 -0.00 1361 871 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(process) 183 -0.00 1361 917 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[1 0 128 128 128] UpdatePen +pop pop 1348 792 +1186 723 LineTo +[0 1 128 128 128] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +(File: /afs/cern.ch/user/m/miheikki/public/html/inucl/doc/inucl.mdl Tue Jul 24 18:25:44 2001 Class ) 2188 -0.00 166 3089 TextOut +(Diagram: cascade / Main Page 1) 652 -0.00 166 3126 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file + +%%EndDocument + @endspecial 336 x(Figure)30 b(10.)42 b(General)29 b(class)g(structure) +g(for)g(In)n(ucl)h(INC)1913 4724 y(mo)r(del.)p eop +%%Page: 8 8 +8 7 bop 94 685 a Fn(8)94 4346 y @beginspecial 39 @llx +40 @lly 564 @urx 775 @ury 2267 @rwi @setspecial +%%BeginDocument: preEquilibriumUml.eps +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 39.0 40.0 564.0 775.0 +%%Creator: miheikki using rose_exe +%%CreationDate: Tue Jul 24 18:30:01 2001 +%%Title: preEquilibriumUml.eps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +[{ +%%BeginFeature: *InputSlot AUTO +6 statusdict /setpapertray get exec +%%EndFeature +} stopped cleartomark +[{ +%%BeginFeature: *PageRegion LETTER +LETTER +%%EndFeature +} stopped cleartomark +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1054 536 1761 647 FillRectangle +1054 536 1761 647 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4NonEquilibriumEvaporator) 680 -0.00 1068 582 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1054 596 1761 647 FillRectangle +1054 596 1761 647 RectangleOutLine +1054 619 1761 647 FillRectangle +1054 619 1761 647 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1782 72 2281 183 FillRectangle +1782 72 2281 183 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4ExitationHandler) 471 -0.00 1796 118 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1782 132 2281 183 FillRectangle +1782 132 2281 183 RectangleOutLine +1782 155 2281 183 FillRectangle +1782 155 2281 183 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1127 130 1656 285 FillRectangle +1127 130 1656 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4VPreCompoundModel) 497 -0.00 1143 176 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1127 238 1656 285 FillRectangle +1127 238 1656 285 RectangleOutLine +1127 261 1656 285 FillRectangle +1127 261 1656 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 1222 227 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1719 166 +1781 159 LineTo +pop pop 1781 159 +1747 178 LineTo +pop pop 1781 159 +1743 148 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1719 166 +1657 174 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 1405 535 +1395 286 LineTo +[0 255 255 255 0 <>] UpdateBrush +1375 347 1419 345 1395 286 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1815 312 2312 423 FillRectangle +1815 312 2312 423 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4PreEqTransitions) 471 -0.00 1828 358 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1815 372 2312 423 FillRectangle +1815 372 2312 423 RectangleOutLine +1815 395 2312 423 FillRectangle +1815 395 2312 423 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1743 290 +1657 270 LineTo +pop pop 1657 270 +1695 263 LineTo +pop pop 1657 270 +1689 293 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1743 290 +1829 311 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +(File: /afs/cern.ch/user/m/miheikki/public/html/inucl/doc/inucl.mdl Tue Jul 24 18:30:01 2001 Class ) 2188 -0.00 166 3089 TextOut +(Diagram: pre-equilibrium / Main Page 1) 821 -0.00 166 3126 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file + +%%EndDocument + @endspecial 336 x(Figure)31 b(11.)45 b(General)30 b(class)g(structure) +g(for)g(In)n(ucl)h(pre-)94 4782 y(equilibrium)d(mo)r(del.)2102 +4326 y @beginspecial 39 @llx 40 @lly 564 @urx 765 @ury +2267 @rwi @setspecial +%%BeginDocument: evaporationUml.eps +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 39.0 40.0 564.0 765.0 +%%Creator: miheikki using rose_exe +%%CreationDate: Tue Jul 24 18:31:00 2001 +%%Title: evaporationUml.eps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +[{ +%%BeginFeature: *InputSlot AUTO +6 statusdict /setpapertray get exec +%%EndFeature +} stopped cleartomark +[{ +%%BeginFeature: *PageRegion LETTER +LETTER +%%EndFeature +} stopped cleartomark +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +904 556 1527 723 FillRectangle +904 556 1527 723 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4EquilibriumEvaporator) 602 -0.00 915 602 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +904 616 1527 723 FillRectangle +904 616 1527 723 RectangleOutLine +904 639 1527 723 FillRectangle +904 639 1527 723 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +889 114 1414 269 FillRectangle +889 114 1414 269 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4VExitationHandler) 497 -0.00 903 160 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +889 222 1414 269 FillRectangle +889 222 1414 269 RectangleOutLine +889 245 1414 269 FillRectangle +889 245 1414 269 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 982 211 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 1203 555 +1163 270 LineTo +[0 255 255 255 0 <>] UpdateBrush +1149 332 1193 326 1163 270 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +268 999 974 999 974 791 938 755 268 755 5 Polygon +pop pop 268 755 +938 755 LineTo +974 791 LineTo +974 999 LineTo +268 999 LineTo +268 755 LineTo +pop pop 938 755 +938 791 LineTo +974 791 LineTo +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(evaporation and gamma ) 576 -0.00 280 796 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(de-exitation should be ) 602 -0.00 280 842 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(separated, but can locate ) 680 -0.00 280 888 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(in same folder.) 392 -0.00 280 934 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1566 130 2017 285 FillRectangle +1566 130 2017 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4FragmentVector) 419 -0.00 1582 176 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1566 238 2017 285 FillRectangle +1566 238 2017 285 RectangleOutLine +1566 261 2017 285 FillRectangle +1566 261 2017 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 1622 227 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1894 322 2201 477 FillRectangle +1894 322 2201 477 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4Fragment) 262 -0.00 1917 368 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1894 430 2201 477 FillRectangle +1894 430 2201 477 RectangleOutLine +1894 453 2201 477 FillRectangle +1894 453 2201 477 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 1902 419 TextOut +(\)) 26 -0.00 2143 419 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1591 623 1960 784 FillRectangle +1591 623 1960 784 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4Fissioner) 288 -0.00 1632 669 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1591 731 1960 784 FillRectangle +1591 731 1960 784 RectangleOutLine +1591 754 1960 784 FillRectangle +1591 754 1960 784 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from cascade\)) 366 -0.00 1599 720 TextOut +(\)) 26 -0.00 1902 720 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1657 1077 2145 1077 2145 969 2109 933 1657 933 5 Polygon +pop pop 1657 933 +2109 933 LineTo +2145 969 LineTo +2145 1077 LineTo +1657 1077 LineTo +1657 933 LineTo +pop pop 2109 933 +2109 969 LineTo +2145 969 LineTo +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(here or in ) 288 -0.00 1669 974 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +(pre-equilibrium) 392 -0.00 1669 1020 TextOut +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[1 0 128 128 128] UpdatePen +pop pop 1872 932 +1810 785 LineTo +[0 1 128 128 128] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +(File: /afs/cern.ch/user/m/miheikki/public/html/inucl/doc/inucl.mdl Tue Jul 24 18:31:00 2001 Class ) 2188 -0.00 166 3089 TextOut +(Diagram: evaporation / Main Page 1) 736 -0.00 166 3126 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file + +%%EndDocument + @endspecial 336 x(Figure)c(12.)35 b(General)24 b(class)f(structure)h +(for)g(In)n(ucl)h(ev)-5 b(ap-)2102 4762 y(oration/\014ssion)25 +b(mo)r(del.)p eop +%%Page: 9 9 +9 8 bop 3644 685 a Fn(9)-94 942 y(joined)45 b(as)f(participating)h +(institute)h(the)f(w)n(orl)f(wide)-94 1042 y(Gean)n(t4)25 +b(collab)r(oration)g(with)h(the)h(ma)5 b(jor)25 b(resp)r(onsibil-)-94 +1142 y(it)n(y)33 b(for)f(dev)n(elopmen)n(t)h(and)g(main)n(tenance)g(of) +g(the)h(n)n(u-)-94 1241 y(clear)c(ev)-5 b(ap)r(oration)31 +b(and)h(in)n(tra-n)n(uclear)e(cascade)g(pro-)-94 1341 +y(cesses.)94 b(Tw)n(o)46 b(ma)5 b(jor)46 b(co)r(des)g(HETC)h(and)g +(INUCL)-94 1441 y(are)25 b(to)h(b)r(e)h(implemen)n(ted)h(and)e(dev)n +(elop)r(ed)g(for)g(Gean)n(t4)-94 1540 y(hadronic)g(pro)r(cesses.)-11 +1640 y(The)49 b(con)n(v)n(ersion)e(of)j(the)g(hadronic)f(ev)-5 +b(ap)r(oration)-94 1739 y(pro)r(cesses)45 b(of)i(HETC)f(co)r(de)h(to)g +(Gean)n(t4)f(w)n(as)g(com-)-94 1839 y(pleted)39 b(in)h(2001)d(and)i(go) +r(o)r(d)g(progress)e(w)n(as)h(made)h(in)-94 1939 y(the)23 +b(Ob)5 b(ject-Orien)n(ted)22 b(implemen)n(tation)i(of)f(the)h(in)n +(tra-)-94 2038 y(n)n(uclear)i(cascade)g(pro)r(cesses.)-11 +2138 y(F)-7 b(or)38 b(another)g(imp)r(ortan)n(t)g(n)n(uclear)g(Maon)n +(te)g(Carlo)-94 2238 y(co)r(de,)28 b(INUCL,)g(an)g(ob)5 +b(ject)28 b(orien)n(ted)f(mo)r(del)h(w)n(as)f(pre-)-94 +2337 y(pared,)45 b(con)n(taining)d(mo)r(dels)h(for)f(in)n(tra-n)n +(uclear)e(cas-)-94 2437 y(cade,)33 b(pre-equilibrium)f(state,)i +(\014ssion)e(and)h(ev)-5 b(ap)r(ora-)-94 2536 y(tion.)-11 +2636 y(Y)e(ear)30 b(2002)g(started)h(with)g(implemen)n(tation)h(of)f +(IN-)-94 2736 y(UCL++)24 b(as)h(a)g(standalone)f(soft)n(w)n(are.)35 +b(A)25 b(preliminary)-94 2835 y(v)n(ersion)44 b(of)j(arc)n(hitecture)e +(using)h(INUCL++)g(in)n(tra-)-94 2935 y(n)n(uclear)25 +b(mo)r(del.)37 b(It)27 b(also)e(in)n(tegrates)g(HETC)i(cascades)-94 +3035 y(and)d(utilites)i(Gean)n(t4)e(hadronic)g(mo)r(dels)g(framew)n +(orks.)-94 3203 y Fi(D.2.)46 b(ABOUT)33 b(GEANT4)-11 +3302 y Fn(Gean)n(t4)28 b(represen)n(ts)g(one)i(of)f(the)h(largest)e +(and)h(most)-94 3402 y(am)n(bitious)38 b(pro)5 b(jects)39 +b(of)g(geographically-distributed)-94 3502 y(soft)n(w)n(are)63 +b(dev)n(elopmen)n(t)h(and)h(large-scale)d(ob)5 b(ject-)-94 +3601 y(orien)n(ted)26 b(systems.)-94 3769 y Fi(D.3.)46 +b(COLLABORA)-8 b(TION)52 b(TSB)f(AND)g(CB)127 3869 y(W)m(ORK)-11 +3969 y Fn(In)39 b(2001)d(HIP)j(joined)g(as)f(participating)g(institute) +-94 4068 y(the)54 b(w)n(orl)f(wide)h(Gean)n(t4)f(collab)r(oration)f +(with)j(the)-94 4168 y(ma)5 b(jor)34 b(resp)r(onsibilit)n(y)h(for)g +(dev)n(elopmen)n(t)g(and)h(main-)-94 4267 y(tenance)48 +b(of)h(the)g(n)n(uclear)e(ev)-5 b(ap)r(oration)48 b(and)g(in)n(tra-)-94 +4367 y(n)n(uclear)26 b(cascade)g(pro)r(cesses.)-11 4467 +y(Our)37 b(con)n(tribution)g(in)h(TSB)g(and)g(CB)g(will)g(b)r(e)h(fo-) +-94 4566 y(cused)31 b(in)i(near)e(future)h(to)g(initiativ)n(es)g(and)g +(co)r(ordina-)-94 4666 y(tion)20 b(of)h(hadronic)f(cascade)f(framew)n +(ork)g(inside)i(Gean)n(t4)-94 4766 y(hadronic)26 b(framew)n(ork.)-94 +4934 y Fi(D.4.)46 b(INCUL)-94 5033 y(D.4.1.)g(INTOR)m(ODUCTION)32 +b(TO)g(INUCL)-11 5133 y Fn(INUCL++)k(is)g(an)g(ob)5 b(ject)37 +b(orien)n(ted)e(implemen)n(ta-)-94 5233 y(tion)i(of)h(Mon)n(te)f(Carlo) +f(transp)r(ort)g(co)r(de)i(INUCL)g(for)-94 5332 y(computing)21 +b(the)h(prop)r(erties)e(of)i(high-energy)d(hadronic)-94 +5432 y(cascades)46 b(in)j(matter.)98 b(The)49 b(functionalit)n(y)f(of)g +(IN-)-94 5531 y(UCL++)21 b(is)h(divided)g(in)n(to)g(in)n(tran)n(uclear) +e(cascade,)i(pre-)-94 5631 y(equilibrium,)27 b(\014ssion,)g(and)h(ev)-5 +b(ap)r(oration)26 b(parts.)1996 942 y(The)33 b(stand-alone)e(v)n +(ersion)f(INUCL++)i(is)g(compa-)1913 1042 y(rable)27 +b(to)h(co)r(des)f(suc)n(h)g(as)g(HETC)g(and)h(LAHET)f([)p +Fi(?)p Fn(].)1913 1212 y Fi(D.4.2.)46 b(INUCL++)1996 +1312 y Fn(W)-7 b(e)25 b(ha)n(v)n(e)f(made)g(indep)r(enden)n(t)i(v)n +(ersion)d(INUCL++)1913 1411 y(using)28 b(OO)e(metho)r(ds.)1996 +1511 y(Arc)n(hitecture)d(of)g(INUCL++)g(in)n(tra-n)n(uclear)e(mo)r(del) +1913 1610 y(pla)n(ys)g(an)h(imp)r(ortan)n(t)f(role)g(in)h(our)f(Gean)n +(t4)g(w)n(ork,)g(since)1913 1710 y(w)n(e)30 b(use)f(it)h(also)e(for)h +(HETC)h(cascades)e(mo)r(delling)h(and)1913 1810 y(as)34 +b(an)g(platform)g(to)g(form)g(a)g(general)f(framew)n(ork)g(for)1913 +1909 y(cascading)26 b(mo)r(del.)1913 2079 y Fi(D.5.)47 +b(PLANS)33 b(F)m(OR)e(YEAR)h(2002)2038 2179 y Fh(\017)41 +b Fn(INUCL)86 b(cascade)f(mo)r(del)h(in)n(tro)r(duced)g(to)2121 +2279 y(Gean)n(t4)2038 2458 y Fh(\017)41 b Fn(W)-7 b(e)27 +b(also)f(aim)g(to)h(ha)n(v)n(e)e(signi\014can)n(t)h(progress)e(on)2121 +2558 y(pre-equilibrium,)j(\014ssion)g(mo)r(dels.)1913 +2821 y Fi(D.6.)47 b(HIP)32 b(Gean)m(t4)g(activities)g(2001-2002)1996 +2920 y Fn(General:)2038 3093 y Fh(\017)41 b Fn(In)d(2001)e(HIP)i +(joined)g(as)g(participating)f(insti-)2121 3193 y(tute)28 +b(the)g(w)n(orld)f(wide)g(Gean)n(t4)g(collab)r(oration)2038 +3372 y Fh(\017)41 b Fn(Resp)r(onsibilit)n(y)22 b(for)g(dev)n(elopmen)n +(t)g(and)h(main)n(te-)2121 3472 y(nance)i(of)h(the)g(n)n(uclear)e(ev)-5 +b(ap)r(oration)25 b(and)g(in)n(tra-)2121 3571 y(n)n(uclear)h(cascade)h +(pro)r(cesses.)2038 3751 y Fh(\017)41 b Fn(Tw)n(o)23 +b(ma)5 b(jor)23 b(co)r(des)h(HETC)g(and)g(INUCL)h(are)e(to)2121 +3851 y(b)r(e)33 b(implemen)n(ted)g(and)g(dev)n(elop)r(ed)f(for)g(Gean)n +(t4)2121 3950 y(hadronic)26 b(pro)r(cesses.)1996 4123 +y(Researc)n(h)g(activities:)2038 4296 y Fh(\017)41 b +Fn(P)n(articipation)21 b(to)h(Gean)n(t4)f(TSB)i(and)f(CB)g(meet-)2121 +4395 y(ings)2038 4575 y Fh(\017)41 b Fn(The)48 b(con)n(v)n(ersion)d(of) +j(the)g(hadronic)f(ev)-5 b(ap)r(ora-)2121 4674 y(tion)22 +b(pro)r(cesses)e(of)i(HETC)g(co)r(de)f(to)h(Gean)n(t4)f(w)n(as)2121 +4774 y(completed)28 b(in)f(2001)2038 4953 y Fh(\017)41 +b Fn(Go)r(o)r(d)47 b(progress)e(w)n(as)h(made)h(in)h(the)g(Ob)5 +b(ject-)2121 5053 y(Orien)n(ted)74 b(implemen)n(tation)h(of)g(the)g(in) +n(tra-)2121 5153 y(n)n(uclear)26 b(cascade)h(pro)r(cesses)2038 +5332 y Fh(\017)41 b Fn(An)i(ob)5 b(ject)42 b(orien)n(ted)f(mo)r(del)i +(of)f(INUCL)h(w)n(as)2121 5432 y(prepared,)80 b(con)n(taining)70 +b(mo)r(dels)h(for)f(in)n(tra-)2121 5531 y(n)n(uclear)34 +b(cascade,)i(pre-equilibrium)f(state,)i(\014s-)2121 5631 +y(sion)27 b(and)g(ev)-5 b(ap)r(oration)p eop +%%Page: 10 10 +10 9 bop 94 685 a Fn(10)94 4297 y @beginspecial 0 @llx +0 @lly 611 @urx 791 @ury 2267 @rwi @setspecial +%%BeginDocument: massPb.eps2 +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%Title: (massPb.eps2) +%%CreationDate: (Fri Jun 7 19:35:28 2002) +%%BoundingBox: 0 0 611 791 +%%LanguageLevel: 2 +%%Pages: 0 +%%EndComments + +%%BeginDefaults +%%PageOrientation: Portrait +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/buffer 512 string def +/pixel_stream currentfile /ASCII85Decode filter def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + colorspace 0 eq + { + /DeviceRGB setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 8 + /Decode [0 1 0 1 0 1] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { /DataSource pixel_stream /RunLengthDecode filter } ifelse + >> image + } + { + /DeviceCMYK setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 8 + /Decode [0 1 0 1 0 1 0 1] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { /DataSource pixel_stream /RunLengthDecode filter } ifelse + >> image + } ifelse +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % colors: number of colors in the colormap. + % + currentfile buffer readline pop + token pop /colors exch def pop + colors 0 eq + { + % + % Image is grayscale. + % + /DeviceGray setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 1 + /Decode [0 1] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { + /DataSource pixel_stream + << + /K -1 + /Columns columns + /Rows rows + >> /CCITTFaxDecode filter + } ifelse + >> image + } + { + % + % Parameters: + % colormap: red, green, blue color packets. + % + /colormap colors 3 mul string def + currentfile colormap readhexstring pop pop + [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 8 + /Decode [0 255] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { /DataSource pixel_stream /RunLengthDecode filter } ifelse + >> image + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % colorspace: 0-RGB or 1-CMYK. + % compression: 0-RunlengthEncodedCompression or 1-NoCompression. + % hex color packets. + % + gsave + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Helvetica findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /colorspace exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 611 791 +userdict begin +%%BeginData: +DisplayImage +0 0 +612 792 +12 +612 792 +1 +0 +0 +144 +ffffff +787878 +4b4b4b +585858 +393939 +474747 +484848 +666666 +bbbbbb +8a8a8a +414141 +eeeeee +999999 +333333 +000000 +222222 +555555 +888888 +777777 +444444 +cccccc +aaaaaa +111111 +dddddd +303030 +3b3b3b +171717 +2e2e2e +202020 +707070 +292929 +535353 +7b7b7b +252525 +595959 +2d2d2d +131313 +080808 +282828 +383838 +686868 +dfdfdf +afafaf +767676 +323232 +505050 +cfcfcf +050505 +101010 +0d0d0d +858585 +7f7f7f +5b5b5b +5a5a5a +181818 +8f8f8f +1e1e1e +0e0e0e +646464 +626262 +404040 +3e3e3e +969696 +262626 +7d7d7d +0c0c0c +949494 +2a2a2a +bfbfbf +828282 +141414 +434343 +717171 +040404 +b1b1b1 +4a4a4a +161616 +3f3f3f +464646 +191919 +272727 +525252 +606060 +070707 +1f1f1f +313131 +0a0a0a +232323 +0b0b0b +1b1b1b +0f0f0f +010101 +020202 +1c1c1c +373737 +6f6f6f +6e6e6e +4d4d4d +848484 +030303 +2f2f2f +060606 +151515 +6d6d6d +9f9f9f +747474 +3c3c3c +121212 +242424 +b3b3b3 +2c2c2c +616161 +818181 +090909 +a7a7a7 +545454 +a3a3a3 +5c5c5c +515151 +353535 +3a3a3a +1a1a1a +424242 +1d1d1d +4e4e4e +696969 +a6a6a6 +363636 +3d3d3d +8e8e8e +d1d1d1 +959595 +494949 +797979 +343434 +4f4f4f +989898 +838383 +2b2b2b +727272 +7c7c7c +c0c0c0 +a4a4a4 +212121 +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLo5!s!!!;q!!!;r!!!;q!!!;r!!!; +q!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!! +!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!>r!!!;r!!!;q +!!!B$!!EoJ&I8dD!!EuN&e>T7!!*B3o)Jas_uKcC_uKcC_uKcC_uKcC_uKcC_uKcC_uKcC_uK +cDdf9@Mp](:"p&G(,irB)d#kJ#r$,cfD#fH]C#fH]C#fH]C#fH]C#fH]C#fH]C#fH]C$.AkS" +8)Wt$O7FW%hdb"!=9&'!!!>D!!!;C!!!;C!!!;C!!!;C!!!;C!!!;C!!!;C!!!>S!!!,o!!WZ +;(B>6b'&W`j#mc+_JcLB&JcO-t!!Dlo!=fqF!!*H;huEca#_E&.!.k3&!9jI`$g@Wk"8)Wp%L +`79!=KCq!!*B3JcLB&JcLB&l2Ui$&*X&o"8)Wu&dK3Q(C(W3!!*B3JcLB&JcLB&l2Ukj&e+%* +!!Durp^R9;huEca#_E&.!.k3&!:'Ue(C'pRl2Uedbl@bN#_E&.!.k3&!:'Uf#8[aV%-mln"3g +fH#mc+_JcLB&JcP-;"UbkS(_R)>!!!,G!!*B3JcLB&JcLB&lMq)&&JbWX$g[in"8)Wo#Q#"h! +!*B3JcLB&JcLB&lMq%m((qAqlMpneo`,"&'\`Tg#mc+_JcLB&JcP'9!Yu:Xl2Uedo`+t-g&M- +[#_E&.!.k3&!:'Ue'F+mTl2Uedo`,")'&*Be#mc+_JcLB&JcP*:!"8c+!"8)m!!Dlo!"\r:hu +Eca#_E&.!.k3&!71]G"8)Wp%M[Xt!=9$`!.k3&!.k3t!!!,o!!!eg!!*B3JcLB&JcLB&ci=%J +o`,")'&*Be#mc+_JcLB&JcO-t!!Dlo!#,5>huEca#_E&.!.k3&!71]G"3gfH#mc+_JcLB&JcO +-t!!Dur!='G9!!*?JcP'9"9 +TYQ*YI] +!!`lF'EAaG#7U5)"V;+N!"fb@!!3cB%K6>9%gW.O%2&XP%1<.J&,lP1&e,M!!! +N*!!WZ.%KHJ='E.t6%KHJ=rW!$4%fd)k!9X=c(C^``'b]d3!!Dlo"qh@N!#H(Wo`,=8&e4mA# +8."E#8$V0!=9$`!;ZZq')E(<'(l5)%f?;X&I/:A'*&"G&e5H\!"9VY$ig8@&ePcW!##tT&eYZ +e!!!EC((:0C'+tcf!<*J=!!N`D'G:WZo)Je$'`J(F&dn[>%hocq!!!K:!!!95!"K_B!"'>H!! +!ND()HrN%fQG2'Fb$B%f659'bp]Y!!!KA&c_nA!!!N-!!3W1%Y=]D!!EiA&f25G!!!,o!!*Q8 +rVus8&+]c'%KHJErVus8%efr(#mc+_q>^L.q@3K\!%/6V!#HC`&c +_nE&c`CA!"Ju/%KHJ=!!!K/&eY0E&eY0S!!!K/!"QO>#Rh=Y((Llg&f:3@!"Si*":#P>'bC9D +"r%X\((:0Qq>^a*&c`XW!!!N-!!<]2!"Sl+%2&X@%KHJ=!!j5<%KHM-%Kd=D!"OS\k5YPg$kh +q-!"8]1!$Ck6!=onD!!*?@o)K%+!!!cK!!!fGpAb4##_E'Q!!!Z.%KI.7!!!N+!!3rI&cMb1% +fQG/%MJ^M&/"sQ!!!K/!"Ju/%KHJ=!##5?#SI+I!!!K/!"QI<":#>J',:$ZLN!!^L.q@3K7!"Ju/%_)KC#7LSF$PO6H!!j,I$NL +GC!#6%D!"oML'b(NN!#,kB&.f3L#S-nM&,lP:#8."H!!!B9&c_nAqu?^0rW!<9!!!K/!"0;I! +!!N+!!!L\!6P9A"7uQr&J#?^'(Q#-%KHJ:&.THgp&G+"#_E'Q!!!Z.%KI.7!;m<\'+toX#SR1 +<%LimZ$NLeL%MAaA%KHJ=!!!K/!"Ju/%KHJA%Ls*O!"Ju/%KHJE%CuNF#7LS4&c`:Q'_MG3'F +tZ`',1EO&cMbC#S-nJ((Lff'EAgX%Ls-d!!a,8!!3E:!'S6>=!!!L\!.k3&!;um"(C19gbl@bN#_E'/!!!L\!.k3&!;ZZq"3gfH#mc+_q +>g:'o`,4)#7_4W'EA.2%Kd=D%Li=:!>Q+?!!!M&!!E]A'+u,R!!*]DrW!*:%0-k!<*H8((pTI#S.:C!!a-g!2TYq"8)Wu$O71P'G:f3!!*B3JcPWI!##,.!#"r)#S7FQ!"f_A!" +Sl+!=fA6!"'>K!#H(T%MfWV%\`q-&eP*D(D%;R!"0/M#QOi8'EAUC!"Sl+!"So,%1W@<$P3mM +!"onE#S.;p!2TYq"8)Wu#7VCX$P3s/!!*B3JcPWI!##,.!#"r)!=fhC!!pW0(&S%4'+=I5$4IFF&eY0E%KHJ=qZ$U+qu?^,rW!3<%0-A9%i#T\J +cMSH!!Dlo"qDFL%KHkPhuEca#_E'Q!!!Z.!!!Z)!!!N*!;m<4#QP>C$ih"N%f?;2&dJCH$PNo +F!!!T-!!*fCoDf.+&e,3K!"Ju/r!ic6!"So,!"Sr-!"Su.!XKPSJcNOc!"7oh!!Dlo"qCV5%K +HJ=huEic#m_5s!;lfs')DS.'(l5)%f-/*%f651%LWgJ#8[mL!!a5L&c_nA%2G]>!#,50!=0>1 +!!3E9#lXf+%KHJ=qZ$U+qu?^,r;Zg-rW!!7((u3!^]4BC%I!ip(C19go`,10&HE:@$k;+p!=9 +$`!;ZZq')DS.'(l5*()QrM!ttq?%f656%KI.M'*&LB!!a&OrW!!0$kK07!"f#-!>Q%7!!!N-! +!<]2!"Sl+!"So,!"Su.#S[dL!"0;R%2FHp_#ONL#7Tbq!!Dlo"r%g^%MKTlhuEca#_E'Q!!!Z +.!!!Z)!!j,I$NLGC!!!N+!!s,8&J,QT%KHnKqu?g/!!a.6!!*]u%fHA0%KHJ=qZ +$U+qu@09!!!B9&c_nF&HEL\$\AAr!!"TT#4$PjPV!!`lF'`\4A&.J+0!"Sr-!Y,21r!i`@!5rq!5edA&dSI[+W;O4lMpnebl@bN#_E'Q!;I1Y!;-?,'dr;I!!Dur!='"b!!g;%i,o5!!*B3JcPNF!Z)Ugnc/Y"qZ$[3%MA[?!"Sr-!Y,21r!i`? +'Dr=?&u,F-#RBl""UbPF%MKQU!!3iE&cMb=#S.C\&c_n>#7_4W'`J(6'Fk`S!<*H/()$THr!i +]>O8oFs%20Bf$gI]q&e-9$$P;=u"<@sb!#"St!!Drq!t5qV(Y\oj#mc+_pAb7"'GBs:!"Sl+! +YPqOrVup.r;Zp0!!!N)!!!M%!!3]E'_25-&.K!I&J+j@!YPqOrW!?;#QPYM&c`IP$NLbLrW!! +4%1W::#S$h7$P3mM!"One":GtV'+=.,%LWj_&-sZq!##_J!!!Q!!!N+!!WrJ()HrN%fHA0%KHJ=q#CC)UAtB/$k`gC'(l5* +%M\mB&eYQP!"TbZ(B=FF$NL/4$igbOrW!9<$NL/;'G_Jb!"Su.";D:F!"One!uDI\'C,W+&/, +Wf$P3pa'bh/drY#21!Yc:\oDen+')hk4#S%.)!!!,n!!!Z0%c@Ti$NL/:q>^a +7%fchI!!!N-!!3W1!;m<,#`o#h'Gg``$iU,+(&S%3(&S%4'FXm?()7Gi'*f'b!"o8C'cdqf&e +k!>64@!!!N,!!``A!#6"E +!"Sr-!tG;2%f$))%\Wk*'*f3^(%VD*%f-/.#8."O&,lP5'G1ll$ige6!!``A!#6"E!"Sr-!tG +;2%YF`^((:'@!>?:K!"0/J&c`XZ(C(We$Om"7%1!RH'+bE\!"]hU'G))T!!jAQ&HEIE&eY]u'()QrM!ttq?(B"^E'F5-H!!EuO!#?CM!!K`Dl##7^tN$O +@@T&/#?N&dT+"&.fNf'+=[;$P3p_$P+$g&eGE]&bc84'b(Na&M"8#/.NK\!!!,r!!3oH#h]1Y +#mc+_q>^O4#Q+Q&&f:3@!"Sr-!>Q.E!!3!"P_'!>-.I!!*ZJoDf.2%h9'_'E +A@MrW!Q:%fd4X%Ls-d!#,qR%MKNV#8-q8!XK;:r=/f?rW)j+!#(:k'akQQ%hK6O&HE%R()Ibe +$Q^K.!X8r$!!'Fbd5%hT'['`\:k#TF`t#k@rr'+"R;'+tQ_1_C95&dJCJ#6P5F+>'c.Jq#80*V%LsT +E!!!,G!!*B3JcPKE!#L4eh>e&o#8RdY'`\4>%h9?f!!!N)!!!N)!!!:V!;c`u$PjKhrW!NC'+ +[2**<\MV-Ti/.%MfHf%IO30$PO'f#7qL_(C'p?!X9Z0*^:,?kPtSbbl@bN#_E'N!!3rI(\.P/ +%KHJ=#lXf+%KHJ=r;[07!!!B3%Ls-d!"One&.9-[$NLGJ#QPA@!#H(W!"Sf)!"Sf)!"OS\qZ% +QM$k![U!!!H?%6t.0.mXY-&J,-T'fca;(*,4#!"ot^!"9PL'+bNO!!`K(-9`de"6]^b"3gfH# +mc+_pAb7+#S?P,":bD3%MSgA!tG;2%fHA7%KHJ?%1<.J%fd)t!!*]@r;[01#QP>B!!!95!"Sr +-$O[1L#7^_6&e5Zh!<*H2!"obW&Wctm'^Yl7'EA+I&dp$&6:2+\6i[3>%Lj$Z'C>c)'c-iU'` +\4mr=T/H&e=()!!CIG!=9$`!;HNs&J5!T&b>u1%KHJ=&eY0E%KHJ=r;Zs1!!!KCrW!!4$P&'p +!#GA1#8.O['ak!A%fHA@#6tVB%KI+N$O[FE!"JuA%1c`r;[*/'+m5?/.N +:,qu?^5p&G+,#Q4W($k3UC!!*`Ck5YJabl@bN#_E'P!!*lIrVus1(\@\8%KHJ=!"B_E%KHJ=r +;Zp0!!!N+!!!M6!!!;b&c`@;!!Ec>!!!Z2%L<%7'G1ll$ige9!!F&F!!!N.!!NW:%KHJ=rW!! +*$kA[*!#5;1"VVP3',)#I!!+Jar;Zp2&c`49!"K\C'L`L$""Fra$O?_4#kn<$$k*@WrW!!)#S +R(9!>>q*!!!,G!!*B3JcPTH!>Q7H!!*]IoDf7/!!!K/#SR1J!!!N-!!<]2!"Sl+!"Q76!#"<% +!#,50!=]\?!!%ho!D&J"jA&.f3L#S-nFM?".m&.T0`'b^Q[((L +ff'EAXA!#-+\%Lj'O&f(rd%1iLT%2'Ed%1Nl>!!!<&%Kd=D!#5>@#87(;$O6Y?'Dqh1#l+r1' +E/"0%KI1A!!!]1%Kd/6/PZ-Q#8."E%2&X@'`J@H#q.`'#RF0V0HNCf''B5p"3gfH#mc+_pAb7 +0%i+X8!tG;2%fQG@&Ind@'FbN^&/5*E'FtZ`',1HF%KI/o!:Bgh(B=FLqu?^5SH&Wqr!ifA!! +!<&%LG5t#SInI:D43MrVup(q$mB3!#,8?!ru.k7f3`$&c`OM&.90[rW!-6$NLh? +'L2L*!#=Ys!!CIG!=9$`!;6Bm%"\J2!71]G#lG/7&c_n;r!iu`!"oeI3&qK^r;Zg'q$mK?'GL +rQ%KmFF$O[XG%KfR+;cNZ)(KEC*!!j31&c`V2%2'9e#8Re'(-OVe#j20f"3gfH#mc+_JcLB&_ +uKcCr!j;O!!!91&h48#!!!fN%P8;%&H)S/#l+r4'+5Hcr!j0#&JGie&e\)?5Sj3//LGG%Mi8R>q$0j&IB3_%h;nX8O5pQ%Lt,t#l>)A0G5'6%lRBG&HEIb&eYH5 +!!!,G!!*B3JcLB&JcNUe!!rQ(r!j,h;EeGq#RChO&lK>Tr;\2W'K]_X,82d@&n3CH,7ZA:>@S +.&%8eM`().Gm2?5^80+LPn%Nc)V%LY6+8eVYE%RCp?'GCBF!#"Jq!!CIG!=9$`!.k3&!5SX;( +B=FMr!ia53W'?e1&MLh!"oYJ+?2>=57V7:r!ioa8Ie=)BK?#$%iT-^5!KMi:(@a\+&i_9CA\P +P+V"\l(2FBi&d8LQ'GVDskPtSbbl@bN#_E&.!.k3d!!3cG2Z+$b0Dc4Z0`2D/&l;%;=B>tAAn +=8"AQfTHCh4)M2Jig89I37D-r1LR7Rdjt:C.OXC\\GN3"@Z@&JbjL+ZM.d4=UmEkPtSbbl@bN +#_E&.!.k3d!!3?;&,Zn<9NM'$!,h]E-iaGs%ODSp@r$!9%S.Te!$)>a.KT\b3"cL')AYO^%Lm +.i)&*'9,@1*T%khp.(Df(d5Qi_f8NROt-KkF0"3gfH#mc+_JcLB&`W5uN$jJ'l-P$h"5tj:AC +a&]d!%e$X#81?I%V%j.>5f!C'*&XX!"oPD#RLb:&eYI.8bro#&-s'm;cET(&fG^m%T'J!#$^m-W1I'&c`RX&fi;rHs-W#-"LO+IQ&o+G@b"h8K7p^%.jN"(]>! +G#QXo@TAt:Hps>&d[Ou!!CIG!=9$`!.k3&!7CiI#Q=uU&c`OE#S +IaM-OqI5,TT!s%96=]0iNB?8S/r6CIq`6%RFAc3!U,d!!`c!sfMe/Gfne6VnkM +Gs")s%S9k7%58FS!!!,G!!*B3JcLB&JcO4!%h\jJ#:C-(-Nb_$!!"nf&,lPE(ar[?H9XG,!!j +&E=:PfX,ro!Q"""]Y!!*Z>pAba9'*&"<&I:p56#K^?'Kf8ar!irlIX=:5^U1#S7C>!"BJI!##>K +&/>I%4p_8mrXoY?&c`1;&c`OV%j_Pb2Z+$c!#OSo!!CIG!=9$`!.k3&!8.>V#SIaP!uCt9!s& +Z?r!jYO!##>G#SI[K'GV5^%LsjA#64`Q&J>b/$ka^p0%2'9e8/W$?!#H7RqZ +%$;!!iQ;!"onP$T\P,r!qTa!!CIG!=9$`!.k3&!8.>\&c_n;#m^M:#S[ma-i=G[#Rh+A$k4X6 +!rWT<>u_@M*<6'I$NLkO>q>dP#7M7M&dSaP$haQ*&01fP!!j2FqZ$g/&d&aO!##82!XK&Fr!q +Ta!!CIG!=9$`!.k3&!8.>X&c_n;#m^M:#lXf("8iWI#nIX]"#)*+%M1Z5!!!3`,!6ST'1rfN& +Jl#U!!3f6?Mt-0$hjW+#SILl&ePcbp](:"rVup(r=T;N'F6s!#RK;f!!CIG!=9$`!8RVW(B=F +OJcLB&#nd4<#Qb)@#7)"=%KLJI!#@YA%OGXX&ek<\?3:RA0GY6P&ePZ\')V_4$k*+E%.aH&&. +8IN4p^ER!>c$t!!!,G!!*B3JcOX-":GkC$O;7`K`DAa&eZPoF9iHarVup3r!j__!#I0d!#.-t +-SR\=IX*Dq)[cXZ()@-6!"BPM$iBu)&,m1A&,lP3'`\4K(]476(D-NX_Z0Z=bl@bN#_E'6!!i +u<%QkR<$kb"@!/ggb$ka1#&c`^S#m^eErVup3oaV]P/IruO]!%L`G;3BnR5#RF`B'b^uL!!< +T@&e+R9#ndLD$lfNY'1*)@!!=#C#Tq:k!=9$`!9!nY'GC6B!YZ%SJcL`0":#PP-nP?'!=KS=% +L*UI#9b&s-Mn8UCE*fn)"7M0#7(;AB+YsX!!s5M&lJgR#RDXf])Vg5bl@bN#_E':!!NW:',D2 +mr;Zs:&/Plo_#OQM&.fP-!6>-?'Dr=P'.t+3,n(2g?!(AX9GTJu$pF@c!>H7F!!a/;!"rTD&. +%t0!t5SL$bQH>"3gfH#mc+_j8]B#&ePWZ'+=a=!"8c+!"6XD";(n>$Oq[fe,TI^rXo29rVup7 +rVup3r!j<$AI]AH$NOK_5m)0@Kin]p/bf;H'+k$@#87(;9+V(2&G?)+'*&:N]Dqp6bl@bN#_E +'M!<*T7-P?CZ&chh>&j-dE**QSW-PCM5+:fGj@q-$"o`,.1$P2td4T# +8[se(DQNB!!iK'!!f_.!!CIG!=9$`!20Aq$kO!^'^u))$kj0bqu?j4&Jl&lJcP'9!##82!##5 +1r!j?<%OHmdH#["i;bpMP$rSGQ!#P>/!tkkP#kJ$!#S7CU(%M>+&J>ep!!!,G!!*B3JcOs6!> +cI)!!3rB(Zk]#&-)\<#Oqct'F+U<&Jb3D!Xo\VJcP$8!!iK9!!iH&q$mcl.mH$(>$;@[#7qO= +!!3N;'(Gr'(C1iJ!!EiJ(C(5`!!!,G!!*B3JcOs6!>,t"!!E]A'bD)B!!!T0!!NT-!#6+Tp&G7 +%'`\4>&qU,:!!%l#=N%O`.^!!*cAhuEog&c_n>#K$NA"3gfH#mc+_kl:l'&e +>Kb#i5Oa'*&"?&G#l(&-ijWrW!HC#R^V4&ePBS'`\gY$P=$G!!N`D$NLDJJcOI(!sfSH.f9b^ +3=m/Q-O)[t;T\tB#64`?'#O\L"3gfH#mc+_kPt\t%hKBD!!!Dp!!!T0!!!T+!#PtS&ISRI$ig +84(B>'\'b_A`!!j2C!"0&2!!!T(!! +c$X!!!,G!!*B3JcP!7!t5PF%.aH&(DIAm#Scb.$O@@Z!!!6>`j!7_&W& +c_nE&dSIX:E:'Vr!j5W(D72g;A0KJ!!!Q=#SS$G!!N%#T!!!,G!!*B +3JcP'9!>6.6!!ro>%M06e!!!]Lmf3=mrW!-8(B>-^&f9^2"VM(@!"9-b!8db\$kj::+WMa(%L +6'<%V@g'!"eJs!tZ.X$gI]s&JP3V#64`:[K$:0bl@hP#m_5s!:Bgj'G;/p$jc8$#8[g^%M\sO +'E/XD!!3QA(\Rh3&JP3F#N5Xd'bLEG&eoothZ*Whr!i]/r!j);%r)Oj2ZNg^9bS--!!!!!Z0%MEji3"@*25n8,F'g)jl)uosO'^u)(#S7X1!!&IZ#I!!CIG!=9$ +`!:'Ue&e>Hgm/R_+&c`US!"p(J!"otR&c_n>')V_2$k`ht!4W"/(]=sI#X&"p&dU#u?As.a57 +n/$&J>a@!!!9:mf3A#$^Lbm"3gfH#mc+_lMq#"!#,k*!#65@',Lp*&1mq`!0&<:$ig8?&JPHb +huEif&.fZU!!OA!%'*&HS,:2'`\gE!!!Sh!!F#L!"0J=!"&u:!"0GJ!!!TD' +S6>P!!*?2rVus=./XPe8.H74$jRE*-PI%('EACM&/F^8!!q?[#RD%C/fG)t#8b/U!!CIG!=9$ +`!71]^FBoOj)EnEA!!!:;4rjV'$PEFQ!!!B3i;`ijrVus3'`J(?&ek>$jH\:(C1!K;d'P/(Fg%RG7R_sli7(p%2.Is#SIgO#V?;^#SFiP!!CIG!=9$`!8dbZ +'GD)m$iBuE&dJt##Z:a6(-2O0#64`:'EA[E!"9G>$jR@X']B#p&I8@:&H)S:$kWI>&/P]e!!! +B3JcP<@)\N,N#W`7t56D0"#7(\c%S[?E#8e8"2@UEr([V2)&/5ZihuF*!#7W]o'FtQO&er+]! +!CIG!=9$`!8dbu'*&"K#64`?#Vltl6mNKOM?b[s*Y;1T&/"sC'bD#krW!!9#RfMi!s]JQ(&S% +=&eG]b!!!Q1!#H9"!:^$p&c_n>#mi'fFT)OVF9N.M%PTjX(B>(c!"2X0m/R5%$PEa(!"&u:!" +1,H'6Os"'#+DH"3gfH#mc+_m/R.m$hXK"'E.tG&-*FV#S.XM#9=0[9G/@A&.]KU$c;rI$jRCY +(P2YW!!!Z2!!*?2rW!Q:!!l@A%QRfX%N[5&#[IE<'+=1-!Yc(VhuEon#QOi5#eC!9"3gfH#mc ++_m/R/"%.sT;&ek#rWiQ;#SR%F%OMZ=% +V6V+C-O*X#7q+VlMpqo$fD!g#S@%:&/VnX!!CIG!=9$`!:Kmm#S7FS/-Z^pq#CU,&ebZR!!iK +'&1.r_'*o0_!!!W3(J#)N'F99jYQ+Y>rr;Zs6$NLGFo)Jk#!!!C +Y!3uS@#R:tT#7(qU'71uY8Rm$D'2f)H$ig8?kl:br(D)Z.!!CIG!=9$`!:^$k#7VFVrVup7r; +Zs3!!!9:r;Zg&rVup3mf3@r&qU+j!!W]7!!!92)>amN+:SenF;7Xe!#,\'!!F)L!"]s/!!!,G +!!*B3JcP<@!t>YP'_q_<$kO$_2\?i+!"]M<'bTm7!>Q'W!!Eu@'+t\)!;um%#RCD1#YeV&%LX +9b#7Un3!"a_^$31\=!#,M;&gg!ar!if[$Od;m!:0[c"3gfH#mc+_irB6!&c_n;'']H!#R +:bL^&S9I(B>0_JcGfO')hn1#QbPCDYstH6W8CHJcP-;!!CIG!=9$`!9*t]#8.FY$gI]o(B=FO +^&S6C#8.Z$!!3-#')hk4#RD7F#RM@Y94JH1//AX+kPt\j!!!:`!!!,G!!*B3JcP<@!Xf8JqZ$ +^+&eZ#[!!3i?$\AAK!!!H+&c`XE!"&uA!eqa!Ae$1>$g@Wp'b(rk%i:3*!!CIG!=9$`!;HO$' +G(K_'EAg\'aG?L!!N`A'GM2ghZ*WaJcN"T$9/eR="+P*@j;g*l2V"r&.;,B(D)Q+!!CIG!=9$ +`!;HO$#7CM>#64u:!!!]2!!O)P!!!95huEco&qU+n!!*<1qu@*`%T3oeB*_cT!"ok.!!X,K$X +Oh]&<-Yi"3gfH#mc+_p](:,rW!L(&fW8"!"T;J&HE(K!!!EBqZ$U(kPtc#&e,*P$crAO$kO$_ +$\ABS!!3rJ&H)S;$PjX#((iJ<'*&"K''TB"&ebN`',6E+!!CIG!=9$`!;HO)&etBQ(dn[W#Z1 +d+!!a;?rXo29qZ$['%h%V%";;:N%2Hqa":"o,#SDXgr;cd/"!2Os#lXf4*=bUR%M9'K$kO$b( +[(i$&HDe>MuWh[bl@bN#_E'N!"feV?2tNQ-k\*G!!!W;!!!fLqZ$jA4@g>%(B>9=!!=#Q()"[ +g!>cCJ!!!X`!;um4&c_nJ!XK/F!!"2Q>pg=!',1EH$OD=ali7"fbl@bN#_E'P!!!E+!"/mA%M +0rm'F,!^&.A44%uqV@,r[C\$l8mD'`\4H$hXK%$k`gW`rH5U(B=[TJcP`L&J>'D#6Fu?%1!P> +%R=;l(CM%2!9aC_"3gfH#mc+_qZ%3:&/#N^'J:XYAT[tQ#R:tY$i9o;(Dd&f2dHo"CIqB_%ho +fh&dS^Rr;Zg*q>^U*!!!DI!!$"E!!*?=JcNI +a";D,*#m:/>$PrdC'-%Jl0MF&'''0)o&eg!"!!CIG!=9$`!<)s-'bD!`(B=jj%L5*K'b(!?-l +!@.$NL/N/HZt2%Ql0K"cj[>AeGOt(D9U['+4d?'bV/f!!!B?&eY'B!"4AY_uKcCr!i]>r;[05 +1(J:d,<,Z2&Idh&!u):]&r-Ge"3gfH#mc+_%2BNf)uot:!WWQ4D8duC@%2JjB#n6kC&HDe>$igt?!!3rG$blZB#RcLi!!rK4!##51$53XSC.a%/N +=cs>k5YSm$k!`(!!!,Z!!!]0!!!E#!!*B3MZho!!EuL&eGe9!!!<&%K +I.@!"0'0%NG]U2\7nZ&f'U1";ChI#8`-q!!D3\$4@FU!!!B;%Ls6gpAb4##`Ja"#R:>G'*&"D +&d'K]!$VUT&etB\$ig\Pq>_!5!"oQ*%hDMm4F].>/IVLW":P\O$kiI<"UbtT!"oS9!!*cFrW! +'8&dSpS_>j]M$NL/?MZ<__r!i]>r;[0<%ZUc)**PoR,SB8@";2.O(CZ#u!!D3\$5X&el&h!!"/l!"q+$(&%\?#8[@?'aG@D*"EH1(DdGm&/Y6E!"8c+!#PP +5!s]MP&bQ,*;B$7b!!!9'!!!Rg!!!<&%KI.@!"',E&c`LQ%qcXg&a98t'G(N_KE(uShuEih!! +!f6!!*lGpAb4#$2k,0(Qe\,&I\X>&.8mP!!!T4#8-V/!Yl=ZrW!<7(-H=N)]9"`!#H(6!! +&f(*?"UlDP&ePMh!!ElH$P=#0!#-+\',_Gs$ig88(*l!U4:i/2#7M70!!\\j*>7oC#7(qP2?jQt')V_3&el,nrW!-.&dSaC$k*%7!>>k>!!*Z>JcO +'r$kWI>$PG6*65W)u#8_sliW&r\huEul!!!B<%Mf]N!!*B3QiIF*&Jl#l!!!f@'`7q7$PO3g' ++=O7%1'Uf"%&H2Y6&-*CU'aG?L!!O)P!!!`Bp] +(g;$PNLO$NLkS&g2F@.#SK$!!`cD#REO&%1N+6!>6%E!!%2]!D!XfMNJcO7"&/"sC#6kG`0GR&K&e +nVL#7'Gm!>#O$!!3E8%.+#p"3gfH#mcgs!!rQ(#7(kH&LJ+q&cMb2(DliH!t,SP&H2Y8'*'k3 +&ekub(Zk]$'GD2n'+=F4!uDG$?2=O$(P2Y;!<*TC-P?Cb!sftaC(=eb3/\Rh'c6-8!u2F[$^C +\n&.90=!!!,G!!*B3OT5V&&SDgY!!a>4!!9F!!>P). +N7mY"V_4J#m^fg!9!nh&c_nE&c_n['iG_Y%OV_s($5K"%fd"H$O`=%":,V?$k2P(!!CIG!=9$ +m!!NuO!!!W;o`,.3'FOmT$iU,,',9@)#R_4[3?&SF'+=O7"UbnO6jj_%!!!]1%Y=]>!"onE!" +pXl!t>M`2&75Q;A9dX($GW$'bV&c&.k3/!#,>E!"\Jt!!CIG!so8>'Ti@u'F,!^'D)8,#64`3 +f`26k',<;H%M'cFI%Y=]>!"]>^!uM[\&.8IM%L*1='GM>^%fd%$!!'F03i!<<5H!!*B3JcPcM%2'Eg('G% +D'*gX+&-iX#!!?IN%Y=]>!!!9'!"TnO+:p^H>mgW4&f28u() +>s3!t,bU$\A?Z!!CIG!=9$s!!!##nD!"4,R',M/hNX-=N0G"Fd&JF1*!=0El!!3-#"3gfH#mcdr":#24'b^ +!9"r.aY&1nMNrY#B3%20H1!!!]1%efr.'FXsM9b\-Qqu?s8(Nfop-k[/E!9!nk'bCWt5QD48% +Pnb02]`2>B)hoJJcOa0!!CIG!=9%-!!o`+str;[35'+b-P(B=gZ! +#5rp!8IP](CgZM$k3kJ!#,in!8[\U"3gfJ#mgkO`;fuV&eYT8!#,hI!!!E5!"],1#SmXV$NLk +S#87pH!!*lDr;[$5'g)I%'G8jq#T"-hBO*A+',:*>!"Af+!s]MT')hk7&.f3_'bZ)uhZ*ul&i +:(5#Rh+L'+9BlhZ*`p#RDNs!!*B3_uKrW',1]c$g7R#'at'B&dSIN!!!i@!#-(7!!*Z?rW!0/ +&cc5N&/,H$!!a)O(-F8\&.%q/!=]eC!"9JT&dSI;'bV6Y&HE>n!9!n]&eYcm0I25MeGoRObl@ +bN#fH]H&I8@:$jc"r!"f,B#ljr6&.olr!!!T#!"KAB%20Hj!"pjcH6Eb2#h/hY'c%Qu4;JA!! +!sAR%hAm]!!!ZFrW!-8'aPE`&f#uuiW'/g%o!$<%N'cteGoRObl@bN#fH]H$k*+9&esI.$ksB +a'*f'b#Wre$&e+:1%13F!>Gq?!!ErK$P +s'H!!*H@JcOs6"qVSt!"obTJcO=$!!CIG!=9%W!!!E$!!$PF*]mf3e* +0Feg3&e#E`*\%R4("E9i$PWsV/dhXZ$haQ&%2'*bp](=/#l4NM5s!:0^b#R:Z6!%gnk3>@ +&FeGoRObl@bN#g`PS(D%2j#l"B#'God0"UG_@!#H:5!"'>P;?f6h;BZSb$bcTH#QP5H'`\4B( +\Ib2'F+UO$\ABG!!rl9#V7P5'oEJ5i;`li(P2Y\!!!,G!!*B3ci=1R(B=FKf)Ppe(B=[Gl2V/ ++&eY9^-@%3P'G8Oh"Uc%F#S[R;!!E`F!"]b7!!3]?&qU,M!"KVA(C1*K#QbKL$O?_@$g.Kk&I +]5&!;6Bm"3gfH#melX!#,>3!#+/g#mV(U#64`?&dJ^,!!WZB#WrSW(rlUZ#7M.W$hjW,$kNqT +)BK>'%/'Z&(C^b(!:9at/cu@c#QkGB((_/n&dJgW'^,N#%0."U$l"9nq#CBsbl@hP#m_6n!!E +]C!!ihd!!NW?!!!T:j8]Al'+b4C6k@<<";2I[&f:6A"qV"LB+l$doDet$!"0Ek!:^$j$kOfa% +L`UO%L`US%N%_G#8@m;!!NuD',LlbOoYFn!!i#o!uD4K+3acd#meiW!t5DH$f_3o#S7Ub!"9, +5!!j"n!!O)C!"]eO`rH>Y',Cc[$ks?M!!`rE%jDSj&Jt6C!=0A;!!3cG'nQGV!!6F=-i=G_#S +7IR!!`s>(^CK]([1o'%29?]'bQW0!##82!#"]"!!CIG!=9%7!"0&;!#HUd/M%8G'+$RuVt!"o +\Q'H7Ml(Zk]"&J5QgP5kRqrVup2mJm4hbl@bN#g!&K&eG]^l2V/((B=k+#QRL1&f9a3!"8W'" +:P\M'+;bZ#7M7U*_6nK%/0`*'G:ig$jce3#n.4B%0-A9'*o/$!:g*k-3t7^%K]02%/^)-&/5] +gjT#;m&s<4p')hk2'(,`""3gfH#meZR";)@K!"eMt$O[R\)^#+n&.8IN#j)*f',CBE";2.R&f +8Le#8@g_?5OF_(\[n4$PE[R&c;V2$PO-frW!!*%h!sho`,.1&.g3$-i=GU9b%R1!!N`1$NL/7 +jT#8gOT5@drXo2EmJm4hbl@bN#i#C^$O7=Ro)Jb'rVus3'^br.&eka(FTr7f%h]Qi!!!W3'G9j8!"4AYp](a/&c_nG&c_n:!XK#@(& +\+5'*s0if)PdQbl@c`#i#C[')hk2'Cu2+&I/j]m/R8%$ih(ThuF&h(`<].>oa[r'(c/.$O@"E +#RD6p!!!i7!"0t]#6t\O+;PUu!"8c+!Z(hEoDeq#()2?#q#Cg2'+4dQ#QPYG.4,N0rW!*1((q +Ao(P2Y?!!!,G!!*B3g].Hd!!!]Gg&M3f&-iU%!"')>0Lmfd9NjCb%.jN"#lG/4'$gOl#Rq8." +qEjE%MfHQ'G;$H?>VV8'_VM.&-rr$!;HO,'G(fj!!!6?$k>K%$ih(D9b/$'!!*H=JcP?A!!CI +G!so8>'^#Gu&eGTdqu?j6'+b]_n,NP'&.fKF!!3rB(Yo'!4rsb@<`Uq8'GLcgo`+str!i]>cN +"Xf#80oU&5aJ]$jQb?&Jbm/4C/[/pAb=('*&XZJcP]K!tl.Y&cD\>1Cu,J2B;c+#8.7_'aGH; +!!3cF&qU,W!!=#C#Tq:k!=9%o!!O&K!!!WGpAb=(#8.XWpAb@2&c_nE'__S4'GD*#',:`Xn,N +G)rVup7o)K"C%Ls"S@j`)`!!!<&%KI-f!#,\=(DT+>'HItq8/Em@%N.QB%PU6C!<*U_!;lg5' +bLEG#8@.<$kF-c%RL.3$kEgb.KBGbl2Ur$#65;CJcPEC!!CIG!=9%o!!Nr?!!!`>q>^a/&/$< +X!#,\9!"')>#QOi:#QOi1(&%\5#7CM`#64`8n,NRr$k`dRpAbO+$j[Xp%R1pM,=q>)!!rK4!# +!6N#mU\V*YK.j%PJt&!!!i7!!!i7!!*W=JcP]K'+kKM!#5b>!#$/H%M0$R&dLQ1#NYpe&/>b. +!:p0j"3gfH#mgD.!u(tQ'(>lH(C(Q&dJCQ#7CnN(\[ +n7#64`8&c_n:n,NS*%2K0bq>_!A!#GVZ%0o$*-rL`n&f:*=!!rK4!#!9O$l9Nd3#reO>lm8=( +DZoL":#>J#7UA-!#"Gp!sfMO$`3nB$P3p^$ih(T$O[UU!"9894Uql/%1Y:=&e#E8!!3rI$\AB +M!!!,G!!*B3qZ$a4$NLSIqZ$U(r;Zm,'aXdO,!HPC'EApS!!!E9$PEF>#>tOE-3t.g!"otG!" +p(J'F+jWp&G=1'`\Fc#R;+C!!EQ4&doBK!!EuF('bZP!"',>&i(:6)?pTM'(,`((D7?Y&eYJh +!##SB%1E4:.0'>U'GCHH'GLul#8d.8!=oq0!!EQ4$O@EC!#?.P!!!Q1!!j,@'EApY#RCl9(s$NL/!#5JM#;7< +!%0m=*!!!hQ!!NW:'GM/rr;[0O%qZJ;;A9QU#8d7;#SAg&'+Pj/$Q&11"VM1C!"p*G!!NuC!! +!WGqu@-6@0d,g%KZVC$k`s]jo>H!()2?#n,NFjblA.Y#R:tI&c_nF$NLGEr;[oQ!!!BD&GlG5'*B$N&IoNU$iU,+$g%Ej&/Q"3!:Tsg"3gfR#tPI)!"otG'G:W`qu?^1rW!Q9!"p( +J$jILU'*&";&eZT*&d\:5#n.FP&/>0F$OddC!!a/;!$VXJ$O?D+":GkS$jZM,!"8c+$4IIU&. +AOI3@>"4S,aF)p^=&(&S%7',2&f(&%\2$P3p^%&Eq0'aG@1 +&-iUD/GotY%2Rk%";_:C&/TounGiOkbl@qS!sel,$jcV.'aPEX!&H_K,$kur-O0kj!"989!"p +">!!3iC([h>/#64`/&-*(Cq>^m2!!!9=#R`s,$Ps3K!!*H?r;[0;>nR,;(D9a^(DiVB+qZ47% +1WgL#7_@Z$NLDI'-.?O+"nNa(,6I/BKQY&$PNsXoDek-T`>92#64`/'J0+k!!hB]!YGYMJcP9 +?!!CIG#RPSa$Ps@5&I\L:$ks6c'5%p^'EAM=$jcb2"VD"?!"9.l!!``7!%0?(',:9C&etWa$P +NmU'+kfi$O[UU&dK!ZrW!@)+:]Ml$P=?s=qb3TScC#K!"o*d&57UX8=Xt":Gp*n7 +*_%D]'aQ03%M1*&PlM!s#QOi1$uYqP!#=>j!"t(f":PYD!#=o%!!CIG'F>$Z&e[;A#SRRG$PF +*U!!!B3!"f,0!#,2/"W%^X(D$u5!!WfC&eu)q(\dtS$l0Kj!"0MW>)P!L+;n>l('d-'2eNU*% +L*OS(_%6$BG)#L!$MRT$k-5KdM&rZX5(C2W5 ++ZUMX%P8J&,;BiA*L6[/'aFsY!+,R5!"4AYiW')e&.T6[nGiY-#RDNs!#T',!!!9;!!!`G$PE +F>&mbqX&HE1O&eGGi!$Vda&.AdD(D@NM*&/4*"r8Or$rdlM-it1h,7YQ4!!#V<%@[>E&e,<`( +B=gV%8mEI#@0>CNYMNo&eS#>4F].!'+4dX%PV]6(B=a?!!!h'!!Wi6'0Ji>?@i18!!3L$QK-H2cPi*%jI'p!"='_?7Gp`#>td8!! +j)V,81c^!%&*Z&/,EO&/5O3&c`1^%Tif5#R;"R*XF2,$O[X_$trpKn6d((:lb!#-%XU&YB684ZT`%S5FV!=Kj]P'bh2qpAb=1'+t] +^rVup5rW!02'+bTm2\u_u!"ThT&c_nG$k=!X$NLeJ&e(!)!!iK'$5F6\!"o83&eG]krW!!*&J +4pP&dAtT*Y/\r!#67^%L`=C#8\*[UAtK2/1PHG8.5Cs";1\?'G:%M/^B(K)A<$k`O?'+PHO!!`l3!"o[8!!NQ?*"Eknr;[*3#7qOV# +QOi0lMq"m&do8&!:9ad"3gfI$9AR3!!O&L!!!`Gp&GU3%hf!!EuK$PF8:!!3oO +&Fof4'b2!l$NLG4!"p%Y;][=l%/g//$PO-X&Zu*<(C1]e!tZ1F!#-%Y%MT0S!#GV8'H%?d'+Z +'];@aE,!!3`C$\ABG!!!,G!!*B3^An9N'_MG8&J>Tf',1EO'+\^h'+sa7!"t:l!u(tG&GH/*' +bpWI!tkkU#Q+Q,$P*ml%2K0bqZ$X&(Tm`D'G(NfA-j_:'`J(G#UMAA&f1NQ$ka(0$o](;%i?& +ql2UeuJcP-;!!CIG!=9%=!"]\U&iUdC%MSmC&HEV(%1NpA!!Eo7&eGY9!!F)&G +6#.(Cq*!%2K0bXT/>;qZ$[/$NU)7!%e*L!Yl1Wr;[9@%2K0b!!!NC3"Qc5$\AB/!!!,G!!*B3 +ZiC=='+G0[',DD^!!,qZ$[/!!) +p,!'L5\!Y>hLr;[9@%2K0b!#,\=.MMj_$gmup$\ABC!!!,G!!*B3ZiC=>%1Xs\!#,_+!!X5E! +"_d>&:slc&J5Xt&.nL7";_%S!#Ma;!!rH%!XK>Cr!ilD!!"qf&GuM2#7M4M%-@Nk#S.;p!9sO +a"3gfH#mdm<":PMJ',9[2"VV[c'Fu"3!!WE7&eGio&bH&'$`a7-#l4N%(D6QT"VUk9+V#7b!! +Eu9(B>97!!"TF!!!,G!!*B3Q2gn$JcPTH":u1G!"8N$"r%R\'FY +?]^&S?F$o^9`'bgED!!r?"$54(4)&!Vk%Mgu7g].Bg#8Mgjl2Uedbl@hP#m_6U!!O&:(B>-^q +u?a4$\AB>!!EZ0!"fk=!!a&F#;@,L#7J9H%grUW1`Hf&$jZh5$O?_4#kn<+$S2M_;%?N""$\9 +k!!*H?JcP-;!uD4K+3acd#me*B#nRIQFV>Am1(Ock!!*<>JcOd1!uD1T#l"B)((EtC%M0$S^] +4uU'`\Z##QPJC!"9DC)AsD+',:9C$5*XM+q?gn#RD"JJcN[g!!CIG!=9%C!"fnY%8d??(c`-; +&.8aT%20?gJcOj3!tkkU&GZ;4'GD2u#6tnV&f8@a$l'KW$Q_hN#64`8!##2>!!rH%$O[LR+q> +G@#QOi1#ibmc(CPfpirB&]bl@bN#eC!B$k3\E57\3/%hnpB!tl7_#_E':!!N`D&/5*YqZ%!Sl!!O#J&J,3RrW!!)!##2>&dSjM&/"sC&eGli0.odd!!!91p](:%m/R.u&:so +B!!!,G!!*B3\c<9M#7qk6&i(F8&.8I<&dJj\]Dqp;W;m):&c`LQ$haQ*$PNbWFUSWh`rH8N#S +[7E#l=T'&.Bub%MB$['EAj\!!!`D!YPJ=/-#YU#l"B"#OVQo&J5WjJcOj3!!CIG!=9%C!"]bC +#Xf($(CL3N$NL/A!"0(G!!E]@!!!D,!!=#B'G0s<#7LfK*&\6>'Z^7W$PNp]')2G-&L[Jd!=0 +A#m^bD!#H1H&e5?E!"',>&/"sC'+P6 +_'(>l*$PO0]'*eep!9X=^"3gfH#me3E";(V>'G9@*!=KLh!!!i6!!Wi?!##nK$iU,,(D!\L!Y +Q.\p&G=6&e5`u-6`l>!!NuC!!!WJo`,+#!"9J_rX]/>(CgoJ!!s8I%MBQX!"KMPmJmCr'G2&f +'7p5I!!!,G!!*B3]`80L&eG]arVup1k5YPr&.$ed!>>n@!!X):!([;1')hk4#8.HL!!*H9o`, +7*'+c^@0b>]IaT)GX&-r[LoDf%#&eP*U')hk4&.T!>!!s>P%0lk5'bD)kli7+q&.oY/!9X=^" +3gfH#me3E#n.IW&dSI;$Pj-7!!$PV.m#8@OO&eb6F(]G$X-8to;$NLtJ!##>?!!!6?q>^L +'YQ+nC'F5Ko&e>Dk!!3rL%/Bl'$iBu*#RC>/#R:>0#S%(>!#PS>!"8c+$4@IH$k*jN$NL/7lM +pr#&:soE!!!,G!!*B3]`8ES'+bcV!"p%\%M0HB!!!!!ZB(B=FJrWiN:#i#C[$\A +B@!!!,G!!*B3]`86A$Od^a!!*!3kPtZ!%h%%j"pbi9*<6'QpAb4%&H3:H4U2T)(C(cS!!O/M& +-*7Tq#CC/`rH)UoDf%"$Pa'T'#=P\(C'p?$k*+9'L58%&ebrZ(Cg]L!!!Z2!!*?2JcNRd!!CI +G!=9%@!!EZF$l067!!!hh!"')6&.:NH&eYET$hOE''*(['!#GnC!!!,G!!*B3 +])VgIrW!';$NLPN`W,uHqu@';F:\]`%1<.9$ki45#Rh+A3[YOQ&1RSY#8[UF$[W6]'E%n6$NL +D?'$:1V(D$ibnc/h%%i,lm'uL"Y',M#f(B=[?#R^n:!!3rH'E%n2')i.;&I@Cs!>?,u!8mhW" +3gfH#me-C!"e/j!#OGk!=]G9!!3E2,5hcN$NL/?&.A=7!"Ai,!!iK9!"f,0'b_A`!"fhV!u<9 +t'+=j@#R;.N!"]O]!!d#$rMf&f&@c$5X!" +7if!tl=`&qU,B!!!,G!!*B3]`83M&e5T]*TmD('b:]5!!!W0!!3Q6')hk5&.8^Zqu?g-$j[LC +!!3E:(\dt3#R:V,!!WuG+r:4b')2G,$e,.X&.fQH!!WN;;NDA&'#">P&eYKa'EA+@(),@$!tc +7_&V:#A!!!,G!!*B3]`83K((q-C%IF,r'GUNH!t,bY#Oqco$haQ%$kF0R!!s;=&.8mP&c`^Qq +u?j5!!!Q&csBc#O_Wq&-rOM#PnH!&ct^('Dhb3$P7D,rXo2Cp&G1+$ +O7Ke!!NW5'GM/f[K$@<%N"d<"W%ge'b_D_!!!ge!6P9A"3gfH#me3E"q(D2#V?GrnGin4(D.A +o#8%aW$PDn/!s]VT#lXf)#7(5.":YVB$jZ_2":Gb@#Rp2&r!;ur!s]VN%/^).&dSIK$hs]%'` +J(8#SI+R#K-TI#S7Y;$O[XV\c;dE%MJa@!!r#RD +%Uq#CO*()HrNr=T,B$hs]%#l4N%$P:tk#8[UF.1\`W'"S&E(D[JZ!!3N=#l+H.(D72f&c_nG& +J#Q]JcOd1!>>k1!!=#C#Tq:k!=9%0!2"UbkA&dSa4!!*K=q>^R0&.$ti#8.:B(G.?W'" +S&E&e53H!!3cJ&GZ;6$PO*a'+4dQ%MBN_JcOg2!YQ+Wm/R+gbl@bN#c@Y(&dSdB&cr%@'`%e2 +'*&^-7T!,$NL/>&Ic\[#n%:P-5QXu;@O93!!>au!"0DQ?3UZM#;Ztm(D>:!";MOL$PW"0$5F$_!!!WE#QP5Do`,1%&etud&. +='iirB,n#S?A'!!CIG!=9%2!!j/Q!#-+[(C1ZL!!!Q/&c`I9!"T_C!##><%2'9b&c`^\!#*BQ +$5*UE49H3/-O:7kqZ$X2$iU,/'*&"@%/p5-$P34L!#,81!XKDMhuF/n!!!B\'+H*3%M9<]f`2 +0g$NL/>#k7m!#7_OM$k58r&c`=6!!NcE%2'6\JcOa0!XfGRm/R+gbl@bN#c[k3'GD#X!"0D>! +"]P(!!NcE&eYidq>^X2$NLSDaT)>L&,m1G'*&CO!!j57!!EiG!"4eb&c`@3!!^U3%Mf\/!6>-?"3gfH#mdO2!tkkE(R"h!'`A:F$NL +/4(D$r[*=rGln,WD"!>$(,!"'>E!!#Oq!'gr##K6ZP(B=FK((1*O#RD.Y!##82$j[+T$ksBaN +=-@5(D;<"a8c2Bbl@bN#fQcD$g%Ei'+p*%#S7%M!!">q(C0R4!"8#k!#P2+"W%^X(D$tl!!s& +I',_H$%L2t_r!3<'')hk:#RCD=#6tYL'nQG(!!!,G!!*B3`;g2Q#QOi4'`\LR'^l#%([1o"%& +3e0#SIe!&fi;5!!a>5!!*N:lMptl%i>'B!"8W'#7(PT)&3D^#hAtU'_25(')N.?#R_+=!!!Z2 +!"&u;(D76<4?*c_'nQG*!!!,G!!*B3`rHJT'GD#`'EA@H&/,H)!!EN,$P*ZA!!NoA(C'pSr=T +)9p&G.VA'!t,bV&GuM3&e\(T&e+U:!u*^>%+bI^(D@Dm(%_J+')W4B:B2"4%/^)*%/geF' +EAOH;EYR#&ds9k`W,u@bl@bN#fcoF(]=dI'EAa]%MBT3!!Nc?#SICVV#UZ)&-rOT([qD,'*&R +Om/R8*#65DFr;ca*!#,2/"=GK*-5Y;7":tq@!"ec&!##2>#6P>F!##>4'`A=9!!a;K'GODJ() +?-8!=0'b!8RVT"3gfH#meQO$5\U1%Q]Rc&K)>mf`23i$S;ni$k0!5!#PS>!#P/*"q1n?#SI@Y +mJm;$#8R.:r!i]?qZ$d6(^CWo2t-eL&eGTgm/R+trVup3oDek(r!irq&dSIG$igq>#QP,*!!< +iM'G9[3!XfYQJcOU,!!CIG!=9%O!"'PE!ZDYK>mh&G#ho=a$k*+`!sf/AO8o7crXo8a'*nI9! +>c.8!!!Z/!;m<,'Dhb5.L-b+5%jBc";)@K!"eMt":PnN$ki14!##2>!=089&cr:<')hk2'&W` +l#8\!fJcOX-!!CIG!=9%P!!sGS(0Yoc((pTTf`2-c&e\(nrWiK3N;s%n(C(cU!!*<;li?qn!# +,50"UbtL(D@VT!!!Z2!!*]Km/R2&&eXU5!^7),q>^L.rVup2huEil'G:\'!8[\U"3gfH#meTP +$5*^T%1RFh',25pd/X1]$^Lbm#l=T/$PEFU#64`?#7q:1!;m<,'D_\2$PF'gqu?j-&eGZ`q>^ +X,&HE1PfDksn%M\a>!##82!#"2i!XfYSJcOU,!!CIG!=9%Q!"'6'#8B?C8e_ms#P.or&.@Fs! +>#m1!!3E:$iBu3&dK$^%i53N(C1ZN!!*H>o`,.$#RLbB'_)/7#8@.Q&c`:N&/,`X!"fGI'\EB +d%hJI9!"Af=hZ*Zk$\AB7!!!,G!!*B3aoDSM%N[;B'`J(9$OmOV%h/.3!YH%Mq>^O)%-mlq#S +I[VQiI1!'b^3?"W%CD!"]P9!!3cB$i0i'&c;V/([h>)(D-QG"qgn@(B=gSdf9F`%MF?nX8i5& +bl@bN#g!&K(fN([qu?g5%MfZL!!?.4!!7:&eb\,!!ENC!!a>/!!Er?!!!E*#S.UL(C'pOBFbmZ#QPSP'+=C3#T"6l(`!c#&/Y'@# +8IIf";_jf$i'c,$kd[o#R:Y)!!3B8(P2Xf!!!,G!!*B3_uKrT&e>We&bZ2+'+5BK!!&R?"T&-r7A#7D +4Z!"oP;$qLX3*(gSM(]===#64`;&c_nCnGiV!%Lht0":GkS$jV@a]Dqp6bl@bN#f?WE&eb]_p +](L0$oS@s'bgNG!"Af=!#P;.!"=GZp](I+&dSaV(\@\3$PNmZ(D$lF!$Dsh/K@.k-q"%Q(B=F +H!"oY>!"ot[&c_oY-j'YR!!j59!!a&C!$)m^#8Qb/!YZ=WoDf"1&e5ZiJcNF`!!CIG!=9%V!! +O)G$ignJr;Zp3!"052!!F)C$NbGL#QP;#!!3Q>$\ABS!!!`3#QP\4!!3E8&b5o.F^5JhA/5an +!#,>3'+b-U#QOi0$NLSH&eu3N&c_n?%/g/1'GD)jNY*)t!!3rH#P%is$l0KjJcNF`!!CIG!=9 +%U!!bQrW!!-%h.k+!YYhPJcOj3!#>#(',)#jCfk72(B>$[#S77A$P3p^%/Bl*& +dK$Sq>^L3m/R2#%MeR8"UG>G$PNp1!!*ZGJcOL)!!CIG!=9%V!!F)N%M'3@!"0/D$O[RI&dT- +N&f:0?"q)%P$ighHJcO[.!>64D!"9\P%!bY^9kP7B4r"n4!!!i/!!*H8jT#>r((^0?!#,>E!! +hE^!Yc1WJcOL)!!CIG!=9%U!!!!Q'G;/m$l&(/#nn"M#RDn +S$Ps'A!!Eo?!!a!!a2C&lK/L#8bqk"UG).&e5QJ!!!Z2!! +!Z0!!!@"UbhR +&dJYn!:p0m&.8IOrVus)'Cu2)%2JF6":#>J$k1\e":+u5%M8:5!!iH8r;Zs:&e5?`li7/)%i# +'PJcOI(!!CpT!#,#*!=9%Y!!`o@&el](()Q9:!"8`*!XfYQJcOg2$4%(R&ebZR!"]bKoDek-n +GiP*rVup+m/R5)#7qO;!;m<-0,OQe!=KP2!!EZC&-iX1!!'Fa+(!s]VS%/9f'#SM^hkPt\j&do8n!!ErO!"9;+!;m<,+oD&.9$S',U0=!>Q@;!!3E>&qU,8!!!,T!!!N%!!* +B4rf`2!`rW!'8&h".smf3A)#PJ,u',('?!sfMF&qU,K!!*lIr=\o+!Z)LTec5g^!!!9:n +GrIs$PNL?#SIaU!%7mb#P.p!$PX-`#RKl!!"je_g].<^r!39Eg&M*_o`,"!#h]1e$NL/A-k6k +&(C1!Y$OH8&";(V=//S$\!>Gq:!!Ei@!"]Ni!8RVW#8[U]f)Ppf',(udnGrIs$kiU@&1nk7&f +;Jd#8d"4!#PVJ!>#Ng!5ed:"53_T%eTf&#mf2a%MBHg!ZD[^'EACO%L3U\o)K"(5;X3u(_S7c +!!NW;&eY`gJcOX-";_:C(C.eW&K*5J',(uY#SICU!#H.Y&dJ[5!!jQ8F&e>es!"9,H%LE+8#T"$[!"]P*! +!jQU#QOi9!Y#bT&/+@1!t,)/$\AAq!!!,G!!*B3f`2Hd$kb-+#R_%@$PEgU#kJ#t'* +n^<%KZnK#_E'!!!3rP#lO`(%1Lef":PMJ'+=L6#rbsH$O?_<&dK6K!;mI]!4)Y*"3gfJ#mgkO +gAhHm!#H=t&ebuY!!!E#!!!E+!!Jo)JaujT#Dg!!! +]GrVup4q>^g?%LEOX!"]MS#Pe?"')hk2&qU+l!!=#C#Tq:k!=9%_!!s&F%XT<2$ka'epAb4,% +/^)*')W4>#_E'"!"95E(C'pQ#QOi0!"9;/!!*?1jo>Du')hk9#7M7Z)&!YtrW!<2%S[3B!!j, +A#SS$N!!!Z2!!!Z,!!*Z>JcNLb!!CIG!=9%_!!s#H'-.`c#7M4Mp](@'&/4sA"pbhS;A'TYJc +Nso$ka19$j[R]!"9JG#S$G,!Y>t\jo>Pr#QP)E')W4H#QOi4>qmf7#R_II#QP\;!!!Z2!!!Z, +!!*`AJcNLb!!CIG!=9%_!"&rF&g1cr&1ded(\n%5&dSmSq>^L$JcNmm!t,_A/H#hT!#5A;!"8 +N$!sfMI''9/t$P"UG).&e5?L!!*lDo`4n&q>^[)%MKTe'^l#%(P2Y9!!!,G!!*B3d +f9VMAh\4L$Ps'I!!!i7!!EZ@!!!]/!!!ge!6G3D&f1NV%/9f&$hjW(&.8IN(ZGDp')W4B#QOi +>#Q4W'#86G)!"8])!tl+S(\[n0$i0i)#Sn,+!7UuK"3gfH#meu['K6Oq7KO28&.8I<'*nR<'a +G?a#7,n]_>jQ@rXo29p](=-');M.(D-QY!"o21!uCq;([1o"')W4>#l4N'(C(Q\o)Jn+$k`s] +qu?g1$kO0K!!3iF$iU,0$P+["(DDB#e,TINbl@hP#m_6q!!#7^P1!XKDMq>^O%')_e2(C, +Nl]Dr*@&eG`i#kJ#u&c_nEkl:\rr!i]4q>^U&(Dd_T!"9)C!WX#:#QOi=!!!i1!!3]H')hk8# +7)LY!"]Ni!8%8R(C19gbl@bN#h&bV'Gg``(]478&.9*VqZ$m5&.8ID!"]bXJcNIa#S7@L;@jB +I$P`@9#T!m[69lM!'FX.*!!r?""W%CD!"o\3!!`oA%NY]b$k2_-$l'BT'*&"K&-*7l&/Bcse, +TINbl@bN#g*,M#SI+F&GuM7#SICU&J%2?!"XY]]`8tVrW)p1!<<^`!:'Uf$PE[L$gmup"3gfH#meZRr=T/C1(= +-^#nRIE9.^r3'+>M*!5&:;&JZ#n#;-Q##l"B'%h9-U((\Of"q1JJ!([P3nGiS+&H)S1$PNo"! +9jId&etB\#OVQl"3gfH#meKM%20BT!!j#H&ecW#&-r_s!4W"4'/L7,$P<.7#o,$4.Ue&>&ete +r!!Nc>&ekrdJcO4!!##82!#+c#!!CIG!=9%T!!!E*!&.egA$kj6d'+BHmY5eY9$O@C@!"K8I!)XUF'+4dG% +0m=U(WcX\#S..L&/Y6E!>#lq!65'A(C19gbl@bN#h]1^&.]9V(^h#S!!r"Ao-!tY_N&_$d\'E&R>!!A"UGME&/PTH!!3ND(XN-^')hk2'(5f'' +aOdR&V:#'!!!,G!!*B3df9LZ$ignGqZ$U4JcMhO!=0M@!!`lF&1@ea#8d19!YPnHk5YJjqu?a +4$h=8t')hk2''oT"&.fP-!6>-?"3gfH#mf5b!"8Z(!"]&A!#,50!!n/VWrN/3#Q=].&f!#b&e +YESq>^X+&-)qOkl:bj()QoL!=]\4!'\iZg'(>l$ +#_E&X!!roD#8[@?'G(ikp&G4.#QPYGkl:br'F4U;!t5SL$g7Qj'(c/+(C(NaJcNso!uD4K+3a +cd#mfAf":GnD#S6D)!!n/VX8i>6$Ps'I!!*];o`+t(r=\Aq$4%7E#8[@?'*&:Nn,NS('FYZgr +Vus4'_DA+&J0No`rH)Abl@bN#i5Oc#SId\(_78M!!!:V!3H5)#S77I',UWJ!"7H[$PO6\$jQb +@&dSaP$h42s$iUeE$NLSF&e5Hho`+t"JcNgk!!CIG!=9%j!!j;l&eG]h%T=eG!!!<#!!*HAJc +N7[!#PS>!#P/*":+uD!"A,mr!3<''`A:;$hjZ"#R_=H$kNm[$ig8=%i0`s\,ZL2bl@bN#ibml +'GMQH+<1q7*(!s&!;m<,'Dqh2&eKWpT`>30&eYEXe,TIRrWioF!#-(O',1EH&/>EaJcN=]!!C +IG!=9%l!"22#)^I=%%9WrB@4UsMr!i]?r;Zp*&dT,%!29Gr#S7IT%+G7W')hk>&c`LO#R_4E$ +OZq7(P2Xt!!!,G!!*B3irBH'-OsAu$O\X9-='OA!;m<,'E%n5$kX0bJcMJE!XB/Ir;Zj'(YJc +g')hk2&qU+c!!!,G!!*B3iW'<_**+0^!"9MN&d\+0r!i]?qu?d0'+9BlU&YK4$ka6e!!!fK#M +B(W')hk2&qU+c!!!,G!!*B3irBE&!sfV\(B>-_&/+R7r!i]?qu?a6'nQFZ!!!E*!!``7#8[U] +&e+U:!>cF2!^R%#7,n]N;rq\bl@hP#m_7)!!N`D'aP$Mmf3Ls!"0GO$\AAV!!3]C#k\0(#8\3Y- +k\4U$k3%6!uD1M&:snD!!=#C#Tq:k!=9%h!!Ub&f(ri([h>-#QPSP&dX'hVuQo-&/5cN!"0AO&h +$I6/Q#CY#71;/!=KJ;')2G,%"\JH!!!,G!!*B3hZ*ca#8%UWmf3Ir!!!QCJcMYJ";M@R(D?B@ +"UGkK%M0$8!!3rI#k%`r',2&f($5Js$PJ$kbl@_Gbl@bN#jhTl$hXK'$PaI1'GU!9":+u-$O_ +OdV#UW7!"]\Ir;Zg*q>^U1%Lrm:!!!E*!!3BA#O_Wp$PNsXjT#>e#7,n]c2[hHbl@bN#jhTm% +i=j&";2.R&.%G +!!u2FK'7p50!!!,G!!*B3mJm:s&dS%/!YYeTmJm5$r;Zm,'+f`qVZ6f,&-rpJ!!3cG%/U#,$N +L/7nc/t/#7LS4#7LkD&F]Z&$k*a^'^#Gu$PNdYJcO'r!!CIG!=9&"!!Q(C!!t'b:\(!6tQE"3gfH#mf +u"":P\=(C0X6";:b8#8cY*!tl=]'nQF_!!!i7!!EoN!"9;$!!Eo?!"9:r!!*lFkl:]"JcO$q! +!CIG!=9&#!!!9'&c`19!!!i5!!4VU#Q>>9&a98r'+f`qT`>&trXoG@!#61R!"o\;!!!E%!!*l +IrXo29j8]>l'+YNb$\AB'!!!i%!!!,G!!*B3k5YMr#lO`(!Y",i!>Gon!1Nrk$PO'V%/U#*#7 +UG/!=0@r!!EZ=&.K#!!6bEC&F9As"3gfJ#mgkOl2Ukk&eP$B!Z(nOJcLB&qZ$a8&e5?`qu?d7 +#8?q6!Y>tMm/R+orq>^U*%2',%!6kKI(DR\o'FXI3!uD4K+3acd#mf_p#nRIW#QOi0F:8 +S0!/(=P#l4N'#7V=\qu?g((CU`M!!$P;\*!=0;:#QPM6!!F)S!#-6$!6tQI'c%Dl%.4)q" +3gfH#mfbq$4%7E$P3:S#7(;CJcLK)!Yl4[quH^)!=K/2!!F)C!!!]1!!Ei@!"oS*!!*?2rVup +2JcNUe!YZ=bm/R+gbl@bN#jD?f&dJsa4==,V(eB5YLB%Da'+5BC!!!W1&ci4CrVus8&H*70!! +ii9!!!R.$k*c#!6"p@(C(<[(%)&%"3gfH#mfSl!!rK4!#,50!!r/r!>#Ng!1j/o(D$QX/ec\6 +#7(S8!"0bU#D)rW!!!,G!!*B3j8]/kr!i]?qu?a+%J0W&'bV/fJcMAB"VD1L&.B3$!!!i7&d/ +D'%M/nt!3H5$"3gfH#mfVm!=0>9%KI1?!!3f>%.sT&%0-eFJcM>A";M1I!#,),!>H@*!!E]8& +ebt2!3H5$"3gfH#mfYn!Z*15r!i]?r;Zp.$igP*!!Gg'.j%k!#,;2":YVB&e+F5!>#Ng!1Elg(DHWF$OdeJ/I +r@'$ig84&:sn=!!!,G!!*B3jo>[H!tJ?=!=/rFrVup+rA$!.k4F!"B;@&e#Tj'+=j@#8[aZg].?_%J]u)',# +ls])Vg5bl@bN#j)*j(DIZ%'In\7JcPNF%Ld]l%1`mQ$iL&-&dT*aJ +cNF`!!CIG!=9%j!!!:V!.k4=!!!i6#QP[t!!N`@&.]-Vr;Zp2(D.(-!5&:3"3gfH#mfJi!!n/ +VJcNai"q(kF%2TN_rW!!9'+f`q])Vg5bl@hP#m_7*!!!:V!.k3i!!X5R!#/'3&H)S0$l=Kq^& +S6O#RDNs!!*B3k5YJuqu?^&JcLB&_>j]Q&c`RQJcN4Z!!CIG!=9%p!!*<@r;Zg*JcLB&_#XHI +q>^O/'S6>!!!!,G!!*B3kl:l$#Sn$Y(P2X=!58F6$P<.7!XKDMJcNLb!!CIG!=9%r!!EuF&f) ++3!.k3X!!jQ +5cl!.k4!!!3iJ&c)J.',,rt_# +OH;bl@bN#gWJP'bV.2!.k3u!!!<#!!*cJJcNUe!!CIG!=9%X!!q#fH]C#fH]C#fH]C#hT+Z$k*$deqS'D2>*$d&GL$iBu)$^q&%(D[J\$P*^W()5'p$O[LU%M'?`%h9'b'[?[d&e5B_!!! +B;%Ls6gd/X^c&Ind@$P*^W().,e%Ls6ge,U$f&Ind@(C^lb((gob%Ls6ge,TOX&J"a>#o=?e! +"0;I%Mfc.!"]MM%KHJ:&.T0\(CL``%Mfc.!!3N?%fQG8&e5B_!"0;I%Mfc/!"g"V%h9?e$P*^ +W().,e%Ls6gRfEa.&IndG&c`:E&C1=a&eY0E#R^kM!"0#Cc2\4^$Ps9Q!!a,:$O76j!"]qZ%K +HJ6&c`:E&-igJ$O76m!"]qZ%KHJ@&c_n;%L3UH$O76m!!3rL%fHA6'+k]S#8."E#8#Ab&/Prh +!!!WE!!!94#8."E#8#Ab!Z)IZrW!98$Ps9Q#8."E#8#Dc&J5WU!!j&>&c`:E&-igJ$O765!!N +u?!"JuErVus8%aP+Z%h]Wf&.99Q!!*lGc2\%[%Ls$M!#GP6!>c6l!!<]2!#GP6!Z)=^rVus8% +ak=W%f65-&dK3O!!*lGdJs7WrW!*7#6556(B+:7(Cnjn#n?q8%h]Wf&.99Q!!*lGdJs7WrW!* +5%Ls$M(B+:7(Cngm!YP_RrW!!9%Mo$D!>c6:!!W]6!!!K/%fHA-%aP+Z%L3@L#87UG!!!MT!! +a2N$O[R^!"Sr-!"R0%KI"; +!!!MW!!s,8!"K5A$O7=Tr;Zg-dJsR`!!!]G$O[R^%fHA-%atC\'b:oW%fHA.%M&F;!"PP"!#, +;@"qqad!!!fGcN!q\r;[$3()-`K(D"gl$l03N!"0PB()-`K(D"gl%LrI=()-`K(Cq8q!!!fGd +Js7WrW!91&/PJE$O7J()#!p!"Su.#nd^X#7CnN%Mf])!"BDJ((u3!JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcN"Tr!i`@$gmup +%]]R0%Y=\4!.k30!!!N-!!*<9mJm4snGiP!]DqpAJcLB&JcL`0!"Sr-!=KD8!!!E!!!!N!!!! +MA!!!Mu!!!CY!.k3&!1j/j%fHAD$P!.:'+>W^(D@8o&dn[>&J#?]&e4mOrVup.rW!*<'+PKb! +<*K+!!j5N((Lie((LTK!"onT%Ls*O!"9VQ%ho!D$l0<`'`7q:'+>Wd%h&F<%fQG9%KHJB&f(r +f&Jbi]rW!Q@&e5BV$NLkS%Lr^O!!!Z@('oKlJcLB&ScAa#rW!cC#7ge7%L2t6&-i1O%2&XQ%2 +8dJ%1W@JrVup.rW!07&c`1I'EAX?!!j&I!#,nU!#,qB!"oqZ!#H+F!#?@N&J+pB()Hr_&GuM6 +%L3@A&Ind@%fQG9%KHJ=&c`UU&c`UUrW!K>#7D=W#7D:Z!#H(L!!!K6JcLB&JcM;@r!j8K'EA ++C$NL/:$NL/@('"j]rW!$+%KI"$\AA1!.k3 +@!!!N)!!!N.!!!N-!!3W1%f?;.%KI"$NL/C('"jNrW!$:%KI"-Z!"fYJ!#-1K&If*J'GgTH!"Sr-$4[%9%L<%I%KHJ=rVup.rVup.rW!H=#7 +CnQ&doH`!"0>N!!!L\!.k3&!1Nrg%f$))%fQG2$PO!c')hk=&f(rf&eb6X%Ls!^rW!33'+PN] +!!!N>qu?^,rVup.rVup.rW!QD%Ls$`%R^j<%M'9S$P3dX%i,!B!"Sr-$4[%9&e5B^&c_nArVu +p.rVup.rW!HB'+PKb!!!]B%MfZb!!!L\!.k3&!.k4=!!!i$!!*H8JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&T)aB~> + +%%EndData +end +%%PageTrailer +%%Trailer +%%BoundingBox: 0 0 611 791 +%%EOF + +%%EndDocument + @endspecial 335 x(Figure)27 b(13.)36 b(:::)i(Pb)27 b(from)g(1)g(GeV)h +(.)2227 942 y Fh(\017)41 b Fn(Implemen)n(tation)47 b(of)f(INUCL++)g(as) +g(a)h(stan-)2310 1042 y(dalone)27 b(soft)n(w)n(are)f(w)n(as)g +(\014nalized)2227 1210 y Fh(\017)41 b Fn(Protot)n(yp)r(e)18 +b(for)h(cascading)f(framew)n(ork)g(w)n(as)h(pre-)2310 +1310 y(pared)24 b(using)g(exp)r(erience)g(gained)g(from)g(INUCL)2310 +1409 y(OO)j(design)2185 1577 y(F)-7 b(uture)28 b(plans:)2227 +1744 y Fh(\017)41 b Fn(INUCL)86 b(cascade)f(mo)r(del)h(in)n(tro)r +(duced)g(to)2310 1843 y(Gean)n(t4)2227 2011 y Fh(\017)41 +b Fn(F)-7 b(ully)50 b(in)n(tegration)d(of)j(HETC)f(in)n(tra)f(n)n +(uclear)2310 2111 y(cascade)26 b(-mo)r(del)i(and)f(Gean)n(t4.)2227 +2279 y Fh(\017)41 b Fn(Signi\014can)n(t)32 b(progress)d(on)j(HETC)g +(and)g(INUCL)2310 2379 y(pre-equilibrium)27 b(and)g(\014ssion)g(mo)r +(dels.)2227 2547 y Fh(\017)41 b Fn(In)n(tro)r(duction)32 +b(of)h(general)e(cascade)g(framew)n(ork)2310 2647 y(to)c(Gean)n(t4)g +(hadronic)g(mo)r(dels)2102 2844 y Fi(E.)47 b(SAMPLE)32 +b(R)m(UN)g(RESUL)-8 b(T)2102 2974 y Fa(Number)30 b(of)h(events)f +(100000)2133 3041 y(average)g(multiplicity)g(21.5523)2133 +3107 y(average)g(proton)g(number)g(3.53569)2133 3174 +y(average)g(neutron)g(number)g(14.5048)2133 3240 y(average)g(nucleon)g +(Ekin)h(0.0321547)2133 3306 y(average)f(proton)g(Ekin)h(0.0848587)2133 +3373 y(average)f(neutron)g(Ekin)h(0.0193075)2133 3439 +y(average)f(pion)h(number)f(0.3036)2133 3506 y(average)g(pion)h(Ekin)f +(0.132491)2133 3572 y(average)g(pi+)h(0.1165)2133 3639 +y(average)f(pi-)h(0.058)2133 3705 y(average)f(pi0)h(0.1291)2133 +3771 y(average)f(A)h(126.891)2133 3838 y(average)f(Z)h(53.1615)2133 +3904 y(average)f(Exitation)g(Energy)g(0.0258312)2133 +3971 y(average)g(num)h(of)f(fragments)g(1.69988)2133 +4037 y(fission)g(prob.)g(0.0117)h(c.sec)f(20.592)2133 +4103 y(=====================================================)2133 +4170 y(**********)g(Izotop)g(analysis)g(******************)2133 +4303 y(++++++++++++++++++++++++++++++++++++++++++++++++++++++)o(++)2133 +4369 y(****)h(izotop)f(Z)g(****)h(0)2133 4436 y(A)g(1)g(exp.cs)f(33520) +g(err)h(12.4)2133 4502 y(sim.)g(cs)f(30536.4)g(err)h(23.1827)2133 +4568 y(ratio)f(0.910989)g(err)h(0.000769346)2133 4635 +y(simulated)f(production)g(rate)g(17.3502)2133 4701 y(A)h(0)g(exp.cs)f +(217.4)g(err)h(1.22)2133 4768 y(sim.)g(cs)f(256.749)g(err)h(2.12574) +2133 4834 y(ratio)f(1.181)h(err)f(0.0118124)2133 4900 +y(simulated)g(production)g(rate)g(0.14588)2133 4967 y(not)h(found)f(in) +h(simulations)e(0)2133 5033 y(not)i(found)f(in)h(exper:)f(0)2133 +5100 y(simulated)g(production)g(rate)g(17.3502)2133 5166 +y(simulated)g(production)g(rate)g(0.14588)2133 5233 y(matched)g(2)h +(CHSQ)f(58.3536)2133 5299 y(raw)h(chsq)f(13620.6)2133 +5365 y(average)g(ratio)g(1.04599)g(err)h(0.00629088)2133 +5432 y(lhood)f(1.14436)2133 5498 y(exper.)g(cs)h(33737.4)f(err)g(13.62) +2133 5565 y(inucl.)g(cs)h(30793.1)f(err)g(25.3085)2133 +5631 y(++++++++++++++++++++++++++++++++++++++++++++++++++++++)o(++)p +eop +%%Page: 11 11 +11 10 bop 3602 685 a Fn(11)-64 1009 y Fa +(+++++++++++++++++++++++++++++++++++++++++++++++++++++++)o(+)-64 +1075 y(****)31 b(izotop)f(Z)h(****)f(1)-64 1142 y(A)h(1)g(exp.cs)f +(7645)g(err)h(6.08)-64 1208 y(sim.)g(cs)f(6801.24)g(err)h(10.9408)-64 +1274 y(ratio)g(0.889632)e(err)i(0.00159645)-64 1341 y(simulated)f +(production)g(rate)g(3.86434)-64 1407 y(A)h(0)g(exp.cs)f(109.4)g(err)h +(0.96)-64 1474 y(sim.)g(cs)f(226.195)g(err)h(1.99525)-64 +1540 y(ratio)g(2.0676)f(err)g(0.0257258)-64 1607 y(simulated)g +(production)g(rate)g(0.12852)-64 1673 y(not)h(found)f(exper.:)g(A)h(2)g +(exp.cs)f(658.7)g(err)g(4.2)-64 1739 y(not)h(found)f(exper.:)g(A)h(3)g +(exp.cs)f(338.6)g(err)g(3.1)-64 1806 y(not)h(found)f(in)h(simulations)e +(2)-64 1872 y(not)i(found)f(in)h(exper:)f(0)-64 1939 +y(simulated)g(production)g(rate)g(3.86434)-64 2005 y(simulated)g +(production)g(rate)g(0.12852)-64 2072 y(matched)g(2)h(CHSQ)f(40.3162) +-64 2138 y(raw)h(chsq)f(6501.58)-64 2204 y(average)g(ratio)h(1.47862)f +(err)g(0.0136611)-64 2271 y(lhood)h(1.68244)-64 2337 +y(exper.)g(cs)f(8751.7)g(err)h(14.34)-64 2404 y(inucl.)g(cs)f(7027.43)g +(err)h(12.9361)-94 2602 y Fi(F.)47 b(W)m(ORKING)31 b(DOCUMENT)-94 +2765 y(F.1.)46 b(11.7.2002)-11 2865 y Fn(No)n(w)34 b(platform)g(is)h +(ready)-7 b(.)57 b(G4)35 b(and)g(sub)r(co)r(des)f(are)-94 +2965 y(organized)e(and)i(compiles.)56 b(It)35 b(is)f(time)h(to)f(do)g +(actual)-94 3064 y(in)n(terface.)51 b(Plan)32 b(for)g(to)r(da)n(y)f(w)n +(ork)h(13-15)e(and)i(17-20.)-94 3164 y(Build)23 b(solid)g +(understanding)g(of)g(in)n(terface.)35 b(And)24 b(build)-94 +3263 y(it)k(using)f(tests.)30 3431 y Fh(\017)41 b Fn(to)e(do:)59 +b(ApplyY)-7 b(out)40 b(self)f(seciton)g(CascadeIn-)113 +3530 y(terfaceen,)21 b(k)n(oncretic)e(con)n(v)n(ersion)e(b)r(et)n(w)n +(een)j(sys-)113 3630 y(tem)32 b(n)n(ucleust)f(and)g(particles,)g(study) +g(more)f(in-)113 3730 y(terfacing,)d(write)g(to)n(w)n(ards)f(w)n +(orking)g(in)n(terface)30 3899 y Fh(\017)41 b Fn(KineticT)-7 +b(rac)n(k)26 b(is)i(starting)e(p)r(oin)n(t)i(for)f(us.)30 +4067 y Fh(\017)41 b Fn(Study)86 b(G4VIn)n(traNuclearT)-7 +b(ransp)r(ort)83 b(\(base)113 4167 y(class)540 b(G4HadronicIn)n +(teraction,)113 4267 y(G4KineticT)-7 b(rac)n(k,)220 b(G4VP)n +(articleChange,)113 4366 y(G4ReactionPro)r(ductV)-7 b(ector\))35 +b(class.)62 b(And)38 b(ki-)113 4466 y(netic)47 b(mo)r(del.)93 +b(G4TheoFSGenerator)44 b(steers)113 4566 y(the)37 b(collab)r(oration)e +(b)r(et)n(w)n(een)i(hadronic)f(gener-)113 4665 y(ator)27 +b(and)g(in)n(tra-n)n(uclear)e(transp)r(ort)30 4834 y +Fh(\017)41 b Fn(Metho)r(ds)113 4934 y(in)32 b(CascadeIn)n(teface)e(:)45 +b Fb(G4VParticleChan)o(ge*)113 5033 y(ApplyYourself\(co)o(nst)37 +b(G4Track&)113 5133 y(aTrack,)k(G4Nucleus&)e(theNucleus\);)113 +5233 y(G4ReactionProduc)o(tVe)o(ct)o(or*)113 5332 y(Propagate\(G4Kine)o +(tic)o(Tr)o(ack)o(Ve)o(ct)o(or*)113 5432 y(theSecondaries,)e +(G4V3DNucleus*)113 5531 y(theNucleus\);)80 b Fn(G4ReactionPro)r(ductV) +-7 b(ector)113 5631 y(ok)27 b(also)g(for)g(G4VP)n(articleChange)2038 +942 y Fh(\017)41 b Fn(F)-7 b(or)159 b(use)g(of)h(ApplyY)-7 +b(ourself)159 b(see)2121 1042 y(G4PreComp)r(oundMo)r(del)2038 +1231 y Fh(\017)1913 1409 y Fi(F.2.)47 b(10.7.2002)2038 +1508 y Fh(\017)41 b Fn(:)95 b(lo)r(calised)56 b(\014les)h(\(in)n(ucl)g +(cascade)f(co)r(de)g(at)2121 1608 y Fb(html/inucl/inucl)o(++)o(/de)o +(mo)o Fn(,)47 b(hetc)i(co)r(de)e(at)2121 1707 y Fb(html/geant4/gean)o +(t4)o(/so)o(ur)o(ce/)o(pr)o(oce)o(ss)o(es)o(/)2121 1807 +y(hadronic/models/)o(ca)o(sca)o(de)o(/ca)o(sc)o(ade)o +Fn(,)2121 1907 y(do)r(cumen)n(tation)358 b Fb(html/inucl/doc)p +Fn(\).)2121 2006 y(There)77 b(is)h(also)f(another)h(g4)f(v)n(ersion)f +(at)2121 2106 y Fb(html/geant4/gean)o(t4)o(.3.)o(1)37 +b Fn(\))2038 2295 y Fh(\017)k Fn(studied)28 b(g4)f(hadronic)f(cascade)g +(in)n(terface.)2038 2484 y Fh(\017)41 b Fi(all)55 b(co)s(de)g(and)h(do) +s(cumen)m(tation)e(in)i(one)2121 2584 y(place)2121 2683 +y Fb(html/geant4/gean)o(t4)o(/so)o(ur)o(ce/)o(pr)o(oce)o(ss)o(es)o(/) +2121 2783 y(hadronic/models/)o(ca)o(sca)o(de)o(/ca)o(sc)o(ade)2038 +2972 y Fh(\017)41 b Fn(general)35 b(plan:)54 b Fi(th)m(ursda)m(y)38 +b Fn(put)f(cascade)e(co)r(de)2121 3071 y(to)j(g4)f(installation)g +(\(+\),)k(mak)n(e)c(compile)h(\(+\),)2121 3171 y(study)g(in)n(terface)g +(structure)g(\(+\),)j(mak)n(e)c(small)2121 3271 y(testing)47 +b(\(+\),)53 b Fi(frida)m(y)48 b Fn(create)e(real)h(in)n(terface,)2121 +3370 y Fi(sunda)m(y)55 b Fn(create)d(in)n(teface,)60 +b(and)54 b(test)g(basics)2121 3470 y(\(mo)r(dify)66 b(test13)e +(hadronic)g(testing\))h Fi(mon-)2121 3570 y(da)m(y)50 +b(morning)d(at)i(8)42 b Fn(co)g(g4)f(at)h(cern,)k(pac)n(k)2121 +3669 y Fb(hadronic/models/)o(ca)o(sca)o(de)o Fn(,)72 +b(replace)67 b(cas-)2121 3769 y(cade)25 b(\014les,)h(add)f(new)h(ones,) +f(and)h(commit.)36 b(Mail)2121 3868 y(hp)n(w.)h(Start)27 +b(holida)n(y)g(at)g(10)g(am.)2038 4058 y Fh(\017)41 b +Fn(cascading)65 b(basic)i(structure:)115 b Fb(G4Collider)2121 +4157 y(\(base\),)2121 4257 y(G4ElementaryPart)o(ic)o(lCo)o(ll)o(ide)o +(r,)2121 4356 y(G4IntraNucleiCol)o(li)o(der)37 b(\(:G4Collider,)2121 +4456 y(has)42 b(G4ElementaryParti)o(cl)o(Col)o(li)o(der)o(,)37 +b(\),)2121 4556 y(G4NucleiModel)h(\(initializes)2121 +4655 y(cascade,zones,)g(boundary)i(trasitions,)2121 4755 +y(fermi)h(energy,)g(density,)f(potential\),)2121 4855 +y(G4InucleNuclei/G)o(4H)o(ETC)o(Nu)o(cle)o(i)d(\(A,)43 +b(Z,)2121 4954 y(kinetic)e(energy,)f(mass)i(formula,)2121 +5054 y(exiton)f(configuration\))2038 5243 y Fh(\017)g +Fn(c)n(hange)26 b(G4v)n(ector)g(to)i(v)n(ector:)2038 +5432 y Fh(\017)41 b Fb(G4InuclCollider)h Fn(do)r(es)49 +b(the)g(lining)f(of)h(dif-)2121 5531 y(feren)n(t)34 b(mo)r(dels)f +(inside)h(collision)f(with)i(metho)r(d)2121 5631 y(command)27 +b Fb(collide\(bull,)38 b(targ\))p eop +%%Page: 12 12 +12 11 bop 94 685 a Fn(12)219 942 y Fh(\017)41 b Fb(G4IntraNucleiCas)o +(cad)o(er)j Fn(do)r(es)51 b(the)g(actual)302 1042 y(cascading.)71 +b(I)40 b(starts)e(b)n(y)i(setting)f(elemen)n(tary)302 +1142 y(particel)986 b(cascader)302 1241 y Fb(G4IntraNucleiCas)o(cad)o +(er)o(*)38 b(incascader->)302 1341 y(setElementaryPar)o(tic)o(le)o(Col) +o(li)o(de)o(r\()302 1441 y(G4ElementaryPart)o(icl)o(eC)o(oll)o(id)o(er) +o(*\))219 1607 y Fh(\017)j Fn(The)427 b(actual)f(cascading)302 +1706 y(is)31 b(then)h(done:)44 b Fb(theIntraNucleiCa)o(sca)o(de)o(r->) +302 1806 y(collide\(&nbullet)o(,)38 b(&ntarget\);)219 +1972 y Fh(\017)j Fn(\014nally)-7 b(,)32 b(lab)r(oratory)c(frame)j(c)n +(hange,)f(and)h(some)302 2072 y(other)c(organizational)e(things)i(happ) +r(en)219 2238 y Fh(\017)41 b Fn(g4)68 b(inc)g(base)g(class)g(is)h +(de\014ned)f(in)h(mo)r(d-)302 2337 y(els/generator/)243 +b(managemen)n(t/include/)302 2437 y(G4VIn)n(traNuclearT)-7 +b(ransp)r(ortMo)r(del.hh)219 2603 y Fh(\017)41 b Fn(INC)23 +b(mo)r(del)f(is)h(set)f(b)n(y)g(G4TheoFSGenerator)f(\(:)302 +2702 y(public)31 b(G4HadronicIn)n(teraction\))d(b)n(y)j(metho)r(d:)302 +2802 y Fb(void)42 b(SetTransport\()302 2902 y(G4VIntraNuclearT)o(ran)o +(sp)o(ort)o(Mo)o(de)o(l)302 3001 y(*const)f(value\);)94 +3184 y Fi(F.3.)47 b(10.6.2002)219 3284 y Fh(\017)41 b +Fi(compilation)p Fn(:)106 b(made)63 b(compilation)g(faster)302 +3383 y(\(no)n(w)37 b(tak)n(es)g(45)g(seconds\))g(b)n(y)h(tunig)g +(compiler)302 3483 y(setting)28 b(and)f(include-statemen)n(ts)219 +3649 y Fh(\017)41 b Fi(sample)22 b(run)p Fn(:)34 b(result)20 +b(from)h(original)e(C++)h(test)302 3749 y(are)27 b(sa)n(v)n(ed)f(to)h +(this)h(do)r(cumen)n(t)g(as)f(sample)g(run.)219 3915 +y Fh(\017)41 b Fi(compilation)p Fn(:)36 b(\014xed)29 +b(writing)f(errors,)f(so)g(co)r(de)302 4014 y(no)n(w)g(compiles)219 +4180 y Fh(\017)41 b Fi(man)m(ual)25 b(pages)p Fn(:)35 +b(tempalte)22 b(for)g(man)n(ual)g(pages)302 4280 y(copied)50 +b(to)h(this)g(do)r(cumen)n(t)g(from)f(GEANT4)302 4380 +y(ninematic)28 b(mo)r(del)g(man)n(ual)94 4562 y Fi(F.4.)47 +b(7.6.2002)219 4662 y Fh(\017)41 b Fi(do)s(cumen)m(t)51 +b(template)p Fn(:)72 b(Added)46 b(new)g(st)n(yle)302 +4761 y(and)22 b(collected)h(material)e(to)i(this)g(do)r(cumet.)35 +b(Re-)302 4861 y(thinking)28 b(c)n(hapter)f(organization.)219 +5027 y Fh(\017)41 b Fi(picture)32 b(rezise)p Fn(:)37 +b Fb(convert)j(x.ps)i(x.eps2)219 5193 y Fh(\017)f Fi(new)51 +b(references)p Fn(:)72 b(Some)45 b(text)g(added)g(fron)302 +5293 y(new)28 b(sources)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/source/processes/hadronic/models/cascade/doc/manCascade.tex b/source/processes/hadronic/models/cascade/doc/manCascade.tex new file mode 100644 index 0000000000..6d2aea1be3 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/manCascade.tex @@ -0,0 +1,53 @@ +%\documentclass[epsf,twoside,fleqn,espcrc2]{article} +%,a4paper,12pt,twoside +\documentstyle[epsf,twoside,fleqn,espcrc2,epsfig,graphics,html]{article} +%\usepackage[dvips]{epsfig} +%eps-printing when clipping is needed -> use graphics-package +%\usepackage{graphics} +%\usepackage{html} +%\def \AATOS {/afs/cern.ch/user/m/miheikki/public/html/} +\def \AATOS {/home/miheikki/public/html/} +\def \PIC {/afs/cern.ch/user/m/miheikki/public/html/inucl/doc/} +\def \PIC {/home/miheikki/public/html/inucl/doc/} +% put your own definitions here: +% \newcommand{\cZ}{\cal{Z}} +% \newtheorem{def}{Definition}[section] +% ... +\newcommand{\ttbs}{\char'134} +\newcommand{\AmS}{{\protect\the\textfont2 + A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} + + +% declarations for front matter +\title{HETC/INUCL++ manual - System for Modelling Hadronic Intranuclear Processes} + +\author{Aatos Heikkinen, Nikita Stepanov +\address{ Helsinki Institute of Physics, +P.O.Box 9,\\ +FIN-00014 University of Helsinki, Finland } + } + +\begin{document} + +\begin{abstract} +HETC/INUCL is a simulation package and a model of intermediate energy nuclear +reactions. +INUCL consists of cascade, fission models, pre-equilibrium, and evaporation +This manual describes the models used in INUCL++. +This documet works as an manual, status report and working document for INUCL project. In accordance with this, we represent results acieved with INUCL. Comparison with measurement is made. +We also descripe staus of Geant4 installation on INUCL software \cite{titarenko99a}. +\end{abstract} +\maketitle +% uncomment main sections when needed + +%\input{manIntro} % to be done +%\input{manHetc} +\input{manInucl} +%\input{manWorkbook} % to be done +%\input{manStatusReport} % to be done + +\end{document} + +% end of file + + diff --git a/source/processes/hadronic/models/cascade/doc/manHetc.tex b/source/processes/hadronic/models/cascade/doc/manHetc.tex new file mode 100644 index 0000000000..e8de705654 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/manHetc.tex @@ -0,0 +1,2393 @@ +%manual.tex +%\documentclass[a4paper,12pt,twoside]{article} +%:::packages +%\usepackage[dvips]{epsfig} +%eps-printing when clipping is needed -> use graphics-package +%\usepackage{graphics} +%\usepackage{html} +%:::definitions +\def \AATOS {/afs/cern.ch/user/m/miheikki/public/html/} +\def \DATE {12.6.2001} +\def \L{\item \htmladdnormallink} +\def \AATOS {/home/miheikki/public/html/} +\def \WORKTITLE {High Energy Transport Code (HETC) for Geant4} +\def \WORKTITLE {Intranuclear cascades in Geant4} +\def \GEV {\mbox{GeV}} +\def \HET{$^3$He} +\def \HEF{$^4$He} +\def \BEE{$^8$Be} + +%:::margins and page settings +%\oddsidemargin=5mm +%\evensidemargin=-5mm +%\topmargin=0mm +%\headheight=0mm +%\headsep=0mm +%\textheight=252mm +%\textwidth=160mm + +%\begin{document} +%\begin{titlepage} +%\input{epsf.sty} + +%:::HIP logo +%\begin{figure}[h] +%\leavevmode +%\begin{flushleft} +%\mbox{\epsfxsize=10cm\epsfysize=3.286cm\epsffile{\AATOS pictures/hip.eps}} +%\end{flushleft} +%\end{figure} + +%:::titlepage texts +%\vspace{-1.5truecm} +%\begin{center} +%\large +%PREPRINT SERIES + +%\vspace{0.2 cm} +%\large +%:::choose TH, EXP, TECH +%:::change the report number +%HIP - 2001 - XX + +%\vspace{4.0 cm} +%\Large +%:::title +%{\bf \WORKTITLE } +%\vspace{1.0 cm} + + +%\vspace{1.0 cm} + +%\large \DATE +%\large \today + +%\Huge +%\vspace{1.5 cm} +%\large + +%:::authors +%Joe Chuma$^a$, Aatos Heikkinen, Tapio Lampen and Laura Tillikainen + +%\vspace{0.4 cm} +%\normalsize + +%:::address +%$^a$TRIUMF, Vancouver, Canada\\ +%Helsinki Institute of Physics, +%P.O.Box 9, +%FIN-00014 University of Helsinki, Finland \\ + + +\vfill +%------------------------------------------ +%(Submitted to Phys. Rev. Lett.) + +%{HELSINKI INSTITUTE OF PHYSICS}\\ +%\vspace{0.2 cm} +%P.O.Box 9 $\bullet$ FIN-00014 UNIVERSITY OF HELSINKI $\bullet$ FINLAND +%\end{center} +%\end{titlepage} + +%:::one empty page +%\thispagestyle{empty} +%\cleardoublepage + +%\pagebreak[4] + +%:::contents page +%\newpage +%\pagebreak[4] + +%\pagenumbering{roman} +%\tableofcontents + +%::: special first page of article with abstract +%\newpage +%\pagebreak[4] + +%\pagestyle{headings} +%\pagestyle{plain} +%\pagenumbering{arabic} +%\pagestyle{headings} +%\begin{center} +%{\Large{\bf \WORKTITLE}} +%\end{center} + +%\vspace*{0.5cm} + +%\begin{abstract} %::: +%We present Geant4 implementation of Bertini intranuclear cascade model based on High Energy Transport Code (HETC) +We describe here project to implement High Energy Transport Code +(HETC) software into Geant4. +We give on overview of the hadronic Monte Carlo models used and present +first results from evaporation part of HETC. +We also outline project goals and future development. + +%\end{abstract} + + +\section{Outline} %::: + +HIP has requested (Spring 2001) to join Geant4 (G4) collaboration. +HIP Software and Physics Group will contibute Geant4 development with +annual work of two man years. +This year 2001, our commitment is fulfilled with efforts made by Aatos +Heikkinen, Nikita Stepanov, Laura Tillikainen and Tapio Lampen. + +One part of our agreement is that HIP provides C++ translation of Fortran +based High Energy Transport Code (HETC) into G4 before 2002. + +Our work consists of re-engineering, implementing, validating and +documenting the HETC into new module (called HETC++) in G4 hadronic +models framework. + +\section{HETC++ Project} +\subsection{Status June 2001} %::: +\begin{itemize} +\item {\bf general status:} we are slightly behind scedule, but we +still hope to provide HETC++ into Geant4 before 2002 +\item {\bf evaporation:} ready, documentation will be brovided next +\item {\bf pre-quilibrium:} raw translation done, OOD tuning and testing next +\item {\bf inc:} raw ranslation coming up, next we will build OOA\&D +using this raw translation +\item {\bf documentation:} very preliminary, in july we will have +first HETC++ documentation +\item {\bf testing:} evaporation tested, othervise just infividual +routines tested, next we will set up sandard test suite +\item {\bf results:} results from evaporation tests are compared agains +Fortran version. Module works well. +Othevise no results, +Next results coming in august form pre-equilibrium module. +In september first results from inc. +In december integrations tests will give overview of of HETC++ performance. +%\item {\br} +\end{itemize} + +%This effort will continue during spring 2001 and our aim is +%to have full HETC code for beta testing before summer 2001. +%Testing and development of implementation is expected to end before +%year 2002. + + +\subsection{Schedule} %::: + +The future of HETC++ is planned as follows: +\begin{itemize} +\item {\bf June 2001}: major development in inc, and indocumentation +\item {\bf July} intesive development in pre-quilibrium and inc +\item {\bf August} first results and documentation from pre-equilibrium +\item {\bf September} first results from inc, first relese of pre-equilibrium +\item {\bf October} inc development +\item {\bf November} integration of HETC++ modules into G4 +\item {\bf December} testing HETC++ in G4. First release. +\end{itemize} + + +\section{Background} + +\subsection{Basics} +Often when a high energy hadron interacts with matter, +many secondary particles are created. +These particles will also interact and create more secondaries, +until the energy of the incoming primary is all used. +The process is called a hadron cascade. + + +How these cascades develop is of great interest +for the design and analysis of high energy physics experiments +as well as for shielding and dosimetry. + + +Calculation of hadronic cascades involves, +in principle, a solution of the Bolzmann transport equation. +Because different types of secondaries can be created in inelastic interactions +and bacause of many processes, +the equation is impossible to bormulate explitly. +This together with the statistical nature of the transport process involved +make the Monte Carlo methods a natural choice for solving the cascade equations. + +At enegies above $\approx 200 MeV$ the wavelenght assosiated to projectile hadron +is of same order as nulceon in the atom. +From the projectile particle perspective the nucleon seems relatively transparent, +and reminds a gas of independent nucleon particles. +\subsection{Simulation of Hadronic Cascades} + +Hadron nucleus (h-A) interaction can be scematically described as a +sequence of the following steps \cite{ferrari00}: + +\begin{itemize} +\item (Glauber-Gribov) cascade and high energy collisions +\item (Generalized) intra nuclear cascade +\item pre-equilibrium emission +\item evaporation/fragmentation/fission and final de-exitation +\end{itemize} + +\index{hadronic cascades} \label{sec:cascades} + +Although the basic physical processes occurring in + + +\begin{table}[!hbt] +\caption{Characteristic stages of hadronic showers.} + +\hspace{0.5cm} + +\label{taul:hetcCharacteristics} %\cite??? +\centering +\begin{tabular}{lcll} +\hline +\em Reaction & \em Characteristic & \em Characteristic & \em Effects on energy \\ +\em product & \em time (s) & \em properties & \em resolution \\[2.5ex] +\hline + Secondary INC& $\sim 10^{-22}$ & Multiplicity & Fluctuations in $\pi^\pm$ \\ + hadrons & & $\sim A^{0.1} \ln E$[GeV] & versus $\pi^0$ production \\ + & & & \\ + Nuclear & $10^{-18}-10^{-13}$ & Emission if p's and n's & $\sim 15 \%$ of hadronic \\ + excitation & & ($\sim 100 MeV$); & cascade energy \\ + & & evaporation of n's, $\gamma$'s & converted into \\ + & & ($\sim 10~MeV$) & nuclear binding \\ + & & & energy losses; large \\ + & & & fluctuations and \\ + & & & vastly different \\ + & & & detection efficiencies \\ + & & & \\ +Pion and & $10^{-8}-10^{-6}$ & Fractional invisible & Negligble contribution \\ +muon decay & & energy $\sim 0.04/\ln E$[GeVe] & due to small loss of \\ + & & & $\mu$'s and $\nu$'s \\ +\hline +\end{tabular} +\end{table} + +Fast tracks,coming from the projectile primary interactions, show the typical $\sim log$ increase observed for $(h, N)$ interactions. +Gray tracks, mostly due to INC reinteractions tend to saturate just above $10~GeV$. +Black tracks, mostly due to evaporation charged particles saturate as well. + +\subsection{Search of an interaction point} + +For a particle moving in a uniform medium with a dencity $\rho_N$, the probability of undergoing a collision in the segment $[l, l + dl]$ of its way is given by the expression + +\begin{equation} +W(l) dl = e^{l/L} dl/L, +\end{equation} + +where $L= 1/\rho_N \sigma^{tot}$ is the measn free path of the particle. +The distance run by the particle +until it undergoes the act of interaction +is determined by one random number $\beta$ + + +\begin{equation} +l = - L \ln \beta +\end{equation} + +The cross-section $\sigma^{tot}$ of the interaction +between a particle and an intranuclear nucleon +depends on a relative velocity of colliding particles, +i.e., on the Fermi motion of the partner. +To take into account this effect the kinetic energy of the partner +and the direction of its motion are sampled. + + +%
+%electromagnetic showers +% +%are well known, this is not quite so for +% +%hadronic showers. +%The simulation of showers in +% +%calorimeters + +needs to follow all particles to rather small energies; for hadrons, +phenomenological approximations for {\it intra-nuclear cascades} + and intermediate-energy processes have to be made, and also + electromagnetic simulation results can be sensitive to multiple + low-energy cutoff parameters. + +A particle with $E \le E_{cutoff}$ is absorbed by the nucleus. +The calculation is carried out until all secondary particles are absorbed or leave the nucleus. + +The number of particles in a shower + is very large, particularly at high energies, so that even the computing + resources of large laboratories can be challenged by full simulation programs. + +\subsection{Quantum effects in INC} + +\begin{itemize} +\item Pauli blocking +\item formation time (inelastic) +\item coherence length ((quasi)-elastic and charge exchange) +\item nucleon antisymmetrization +\item hard core nucleon correlations +\end{itemize} + +\subsection{Geant4} + +% {\it The exploitation of hadronic final states has played a key role in the +% success of all recent HEP collider experiments. It will also be one of +% the key issues during the LHC era. } + +\subsubsection{Introduction} + +Geant4 is a Monte Carlo particle detector simulation toolkit for +various computing platforms and en\-vi\-ron\-ments\cite{G4UserRequirements}. +In order to match the needs of the LHC in high energy physics +community. Other requirements are also set by medical and space +science applications. Geant4 has been developed by a world-wide collaboration of over 40 +institutions~\cite{wellisch99,MoURD44}. +The objectives of the Geant4 development project are to redesign and +re-engineer the major CERN software tool Geant3.21 for an Object Oriented (OO) environment. + +% {\it +% \begin{itemize} +% %\item general overview of Geant4 and its OO development (G3.21) +% \item uses of hadronic models and their status (quite inaccurate) +% \item requirements from the LHC +% \item abstract interfaces?? +% \item check: HPW article, G4 web page +% \end{itemize} +% } + +\subsubsection{Hadronic Models Framework in Geant4} + +Geant4 exploits advanced Software Engineering techniques and Object +Oriented technology to achieve the transparency of the physics +implementation and to this way provide the possibility of validating the +physics results. The stringent requirements~\cite{wellisch99} of the +LHC and other future experiments require from the hadronic simulation framework a high +level of flexibility, customizability, extendibility and transparency, +which can be attained only by a systematic OO software engineering +approach. Easy maintenance and distributed development are also +important issues for the framework design. + +The hadronic models framework is based on concepts of physics +processes and models. While the process is a general concept, models +are allowed to have restrictions in process type, material, element +and energy range. Several models can be utilized by one model class; for instance, a +process class for inelastic collisions can use distinct models for different energies. +% Geant4 provides a flexible framework for the modular implementation of +% various kinds of hadronic interactions. There are distinct process +% classes for different type of interactions (i.e. elastic and +% inelastic). Process classes utilize model classes to determine the +% secondaries produced in the interaction and to calculate the momenta +% of the particles. Several model classes for different particles and +% energy regimes can be used by the process classes. +A simplified UML +diagram of the hadronic models framework is presented in + +%Fig.~\ref{fig:HadronicModelsFramework}. +%\begin{figure} [h!tb] +%\centering +% \leavevmode +% \epsfig{file=kuvat/kuva_HadronicModelsFramework.ps,bbllx=55pt,bblly=400pt,bburx=565pt,bbury=755pt,width=0.8\textwidth} +% \epsfig{file=kuvat/arti_GENeps.ps,bbllx=55pt,bblly=400pt,bburx=565pt,bbury=755pt,width=\textwidth} +% \caption{Simplified UML diagram describing the hadronic +% processes and models framework. Methods and variables have been +% left out as well as the cross-section classes. +%Specific processes and models can be derived from G4Hadron...Process +%and G4...Interaction classes, respectively. \label{fig:HadronicModelsFramework}} +%\end{figure} + +Geant4 process classes contain two kinds of important methods used in +tracking: {\it GetPhysicalInteractionLength} (GPIL) and {\it + DoIt}. The {\it GPIL} method gives the step length from the current +space-time position to the next space-time point where the {\it DoIt} +method is invoked to describe what happens in the interaction. It +describes the change of energy and momentum direction, change of +position and secondary tracks by returning an instance of the class {\it G4VParticleChange}. + +All physics process classes are derived from the class {\it G4VProcess}. It +has three pure virtual {\it DoIt} methods: {\it PostStepDoIt}, +{\it AlongStepDoIt} and {\it AtRestDoIt}. + +%\scriptsize +%{\it +%\begin{itemize} +%\item G4VParticleChange* PostStepDoIt(const G4Track\& track, const +% G4Step\& stepData) +%\item G4VParticleChange* AlongStepDoIt(const G4Track\& track, const +% G4Step\& stepData){, \rm and } +%\item G4VParticleChange* AtRestDoIt(const G4Track\& track, const +% G4Step\& stepData). +%\end{itemize} +%} +%\normalsize +%\noindent + +%and also three similarly named and +These methods return {\it G4VParticleChange} classes. +{\it G4VProcess} also has corresponding pure virtual GPIL +methods, which return a {\it G4double} for the interaction length. There are +also some other pure virtual methods common for all physics processes. +%like the {\it IsApplicable} method, which tells whether the process +%object is applicable to the particle type or not. + +For simple processes, there are base classes such as {\it + G4VRestProcess}, {\it G4VContinuous\-Process} and {\it G4VDiscrete\-Process} +available. In these classes only one of the above mentioned {\it DoIt} +methods is active. The {\it DoIt} method returns an instance of +``Particle Change'' class (derived from {\it G4VParticleChange}), +which is responsible for updating the step class {\it G4Step} used in +tracking. + +All hadronic process objects are derived from the abstract class {\it + G4Hadronic\.Process} (which itself is derived from {\it + G4VDis\-crete\-Process} and {\it G4VProcess}), and have one or more +cross-section data sets associated with them. These objects +encapsulate methods and data for calculating total cross-sections for +a given process. The default cross-sections can be overridden in whole +or in part (for certain materials and energy regimes) by the user. +Thus the cross-sections and physical models are implemented independently. + +The Geant4 hadronic model framework allows flexible use of several models +without the need for the implementation of a special interface. +This way, highly specialised models can be easily used in the same +application together with more general code. Forexample, models wich +are valid only for one material and particle and applicable only in a restricted energy range. + +%At the end of 1999, there were no properly tested hadronic cascade simulation models in Geant4. +%Several models were implemented, but not yet thoroughly tested. +Geant4 models can be divided into parametrisation driven, data driven and +theory driven models~\cite{privAmelin, wellisch99}. +In parametrisation driven models, the existing data for hadronic +reactions and energies is parametrized for generating the final +state. In Geant4, inelastic scattering models based on this paradigm are +available for low and high particle energies. + +Data driven models are typically used in Geant4 for the simulation of +nuclear low energy neutron scattering. It is also used in the +simulation of the absorption of some particle coming to rest. When the data +coverage is not sufficient other types of models are used. + +Theory driven models are available in Geant4 for inelastic scattering +in a first implementation, covering the full energy range of LHC +experiments (up to $\rm14~TeV$). Theory driven models are used to +extract the missing cross-sections from the measured ones, or at high +energies to predict the cross-sections by using the Regge theory. + + +% The hadronic cascade simulation models can be +% divided~\cite{wellisch99} into the following three categories: +% \begin{itemize} +% \item parametrization driven models \ldots +% \item data driven model \ldots +% \item theory driven models \ldots +% \end{itemize} + +\section{HETC model overview} % jaottelu oli Intro, HETC model, Algorithms + +\subsection{Background} + + +%HETC simulates the hadronic cascade by using Monte +%Carlo techniques to to solve the Boltzman +%transport equation and to compute the trajectories of the primary particle +%( p, n, Pi+, and Mu+ ) and the secondary particles produced in nuclear collisions. +%Each particle is followed until it eventually escapes from the +% geometric boundaries of the system, undergoes nuclear collision or +% absorption, comes to rest due to energy losses from ionization and +% excitation of atomic electrons, or decays. +% +%

Although originally developed in 1972, HETC has continued to undergo +% improvement and has been recently extended to treat the very high +% energies of the Large Hadron Collider (LHC) project. +%Presently, HETC performs the particle transport and generation in a + % three-fold manner: +%

    +%
  1. for energies less than 3 GeV, particles are +% generated by means of an intermediate-energy Intranuclear Cascade +% and Evaporation Model, +%
  2. from 3 GeV to approximately 10 GeV, +% particle generation is done by means of a scaling model, and +%
  3. +% above 10 GeV, particle generation is done by means of a multi-chain fragmentation model. +%
% +% +%

HETC has been benchmarked against numerous accelerator-based and spaced-based experiments with excellent +%success. It has also been adopted by a number of other organizations and tailored to their requirements. +%

+%

Latest development

+%

Latest development in HETC is it's implementation as HETC++ into +% Geant4. +%HETC++ is completely rewritten using object oriented methods and c++ language. +%Code is capsulated into classes according to Geant4 hadronic physics +%processes interface. + + +HETC \footnote{Full name in the original 70's manual read as 'Monte Carlo High-Energy Nucleon-Meson Transport Code System'} is a Monte Carlo transport code for computing the properties of high-energy nucleon-meson cascades in matter. +%HETC simulates the hadronic cascade by using Monte Carlo techniques +%to solve the Boltzman transport equation and to compute the +It computes the trajectories of the primary particle ($p$, $n$, +$\pi^{\pm}$, or $\mu^{\pm}$) and the secondary particles produced in +nuclear collisions. Each particle is followed until it eventually +escapes from the geometric boundaries of the system, undergoes nuclear +collision or absorption, comes to rest due to energy losses from +ionization and excitation of atomic electrons or decays. HETC cannot +handle the low-energy neutron transport or electromagnetic +interactions, which must be handled with other models. + +% HETC simulates the hadronic cascade +% by using Monte Carlo techniques to compute the trajectories of the +% primary particle and the secondary particles produced in nuclear +% collisions. It was developed on the basis of the existing +% Nucleon-Meson Transport Code (NMTC) and the incorporated code for the +% neutron transport. The evolution of HETC code is presented in +% Table~\ref{taul:hetcHistory}.~\cite{bertini63,ornlhetc} + +HETC was originally developed +%by researchers in the Nuclear Analysis +%and Shielding Section of +in Oak Ridge National Laboratory (ORNL), Oak Ridge, Tennessee. +%Computational Physics and Engineering Division +in 1972 using FORTRAN IV nad IBM 360/370. +Basically HETC was written as extension to NMTC code. + + +Major parts of the original Bertini INC code are still present, +making the code extremely difficult to read. +Until nowadays, HETC has undergone several improvements and +has been recently extended to treat the very high energies of the LHC. +Usually the improvements have been related to the update of +experimental cross-sections or to revision of specific collision +models such as the multi-chain fragmentation model~\cite{alsmiller90}. +HETC has been developed by many different groups, but unfortunately +with no coordination. As a result, many different versions of the +code exists. The basic ideas of HETC have, however, not changed. \cite{bertini68} + +HETC has been included in many multi-purpose codes like HERMES, CALOR +and also in the Geant3.21 code, where it was implemented via an +interface called GCALOR. HETC has been benchmarked against numerous +accelerator-based and space-based experiments with excellent success. +It describes energy resolutions in calorimeters with quite good +precision, and in Geant3.21, it was the prime candidate for radiation +studies when combined to the MICAP (the Monte Carlo Ionization Chamber +Analysis Program) transport code~\cite{wellisch}. +%which is used to simulate neutrons of low energy ($<20$~MeV) +HETC has also been adopted by a number of other organizations than +CERN, although it has often been tailored to their specific +requirements. + + +\subsection{Characteristics of HETC98} +%\subsection{Summary of model features} +The version of HETC used in our Geant4 +implementation work is HETC98 from year 1998 as used in BaBar +experiment. +It's characteristics are enumerated in Table~\ref{taul:hetcCharacteristics}. + +% \begin{table}[hbt] +% \caption{Evolution of the HETC code. Different versions and the +% related restrictions. ~\cite{hetc,alsmiller90}} \label{taul:hetcHistory} +% \centering +% \begin{tabular}{|l|l|} +% %\hline +% %\multicolumn{2}{|c|}{HETC (High Energy Transport Code} \\ +% \hline +% Version & Restrictions or improvements\\ +% \hline +% NTC (early 1960's) & $E_0 <\ \sim400$~MeV \\ +% NMTC (1971) & $E_0 <\ \sim3$~GeV \\ +% HETC/RSIC version (1972) & $E_0$ above 3~GeV, incorporates \\ +% & MECC-7 and EVAP IV \cite{armstrong72}\\ +% HETC/ORNL version & Nuclear data updated, \\ +% & multiple scattering updated \\ +% HETC/Science Applications Inc. & Time dependence added,\\ +% version & transport extended to ion beams \\ +% & of deuterons to alpha particles \\ +% HETC88 (1988) & Multi-chain fragmentation model added\\ +% & for $E<5~{\rm GeV}$ \\ +% \hline +% \end{tabular} +% \end{table} + +\begin{table}[!hbt] +\caption{Overview of Characteristics of HETC Code.} + +\label{taul:hetcCharacteristics} %\cite??? +\centering +\begin{tabular}{|l|l|} +%\hline +%\multicolumn{2}{|c|}{Characteristics of HETC} \\ +\hline +Particles transported & Neutrons ($\geq15~\rm MeV$), protons, $\pi^\pm$, $\mu^\pm$ \\ +%Particle energies allowed& At least $200~\rm TeV$ for protons~\cite{alsmiller90} \\ +Particle energies allowed& Up to $20~\rm TeV$ for incident nucleons and pions~\cite{alsmiller90} \\ +Mechanisms included & - Ionization and excitation \\ + & - Multiple coulomb scattering \\ + & - Range straggling, \\ + & - $\pi^\pm$ and $\mu^\pm$ decay \\ + & - Nuclear interactions \\ +Calculational method & Monte Carlo\\ +Nuclear collision model & - Intranuclear-cascade-evaporation ($E<3$~GeV)\\ + & - Sternheimer-Lingenfelter isobar model for $\pi$ production ($E < 3~GeV$) \\ + & - Scaling model ($E > 3~GeV$) \\ + & (Phenomenological fits \\ + & to experimental data) \\ +%Geometry & Three dimensional \\ +Materials allowed & Arbitrary\\ +Restrictions & $\pi^0$, $\gamma$ and heavy particles (d, t,\HET, \HEF \\ + & and residual nuclei products) \\ + & computed but not transported\\ +Examples of applications& - Accelerator and spacecraft shielding,\\ + & - Neutron cosmic ray background in Earth's \\ + & atmosphere \\ + & - Doses for biological cell survival,\\ + & - Transmutation of\\ + & nuclear waste materials~\cite{hetc}\\ +Principal shortages & Low-energy neutron transport ($E<15$~MeV) \\ + & electrons and $\gamma$'s\\ +\hline +\end{tabular} +\end{table} +% & - Scaling model ($3~{\rm GeV} < E < 5~{\rm GeV}$)\\ +% & Multi-chain fragmentation ($E>5$~GeV)\\ + +%\begin{itemize} +%\item history, different versions +%\end{itemize} + + +%\begin{minipage}{\textwidth} +Particle transport and generation is handled in HETC98 with three different approaches: + The code takes into account the dacay of charged pions and muons, +nonelastic nucleon- and charged-pion-nucleus collisions. +Negative-pion capture at rest is treated via the INC evaporation model. + +\begin{enumerate} +\item For energies less than $3~{\rm GeV}$, particles are generated by means + of an intermediate-energy intranuclear cascade and evaporation models. +The maximum allowable source-particle energies is not well defined. +The lower limit for the model is 20~MeV. +\item From $3~{\rm GeV}$ to approximately $10~{\rm GeV}$, +particle generation is done by means of a scaling model, +which combines the two different models. +%\nopagebreak[4] +\item Above $10~{\rm GeV}$, particle generation is done by means of a + multi-chain fragmentation model.% (see chapter~\ref{chap:simuHadrCascs}). +\end{enumerate} +%\end{minipage} + +% Before the implementation of the multi-fragmentation model in HETC88, +% the first approach of an INC and evaporation models was used with an +% extrapolation model for energies greater than 3~GeV. The extrapolation +% model, however, only extrapolated the results from the INC-evaporation +% model at 3~GeV enegies, and gave poor results. + +In our implementation, only the approach 1 is implemented. +%the approaches 2 and 3 are not implemented. +%The multi-fragmentation model has its origin in the transport code +%FLUKA87, and, for copyright reasons, it cannot be used in Geant4. +%is not available for Geant4 hadronic models. + + +The functionality of HETC code in the lowest energy region can easily be +divided into three different parts, which are: the intranuclear +cascade (INC), which treats the interaction of high energy particles +with a nucleon; the de-excitation of the resulting nucleus by +evaporation of nucleons (in contrast to fission); and the transport of +primary and secondary particles in a thick target. In our work, also a +pre-equilibrium model, which usually is not part of the HETC, is +included in the model, whereas the transport part is left out, +since it is handled by Geant4. + +%\begin{itemize} +%\item three different models for different regimes +%\end{itemize} + +% In the Geant4 implementation of HETC, there are three different parts +% that are use sequantially. First, the intranuclear cascade model is +% used. Then, a pre-equilibrium model is used to simulatee the +% transition to a thermodynamic equilibrium. It is followed by the +% evaporation and de-excitation algorithms, which handle the +% de-excitation of the nucleus by via emission f light nuclei and gamma +% particles. + +\section{Intranuclear cascade (INC) model} + +In HETC, different nuclear variables are calculated from models. Only +%$N$-$N$ +nucleon-nucleon cross-sections are taken as external variables. +In the following we review the characteristics of the nuclera model in HETC. +The main variables are listed int Table ::: + + +Short sketch of the model: + +\begin{itemize} +\item If an interaction is supposed to happen, the impact point onto thenucleus is calculated +\item the nucleus is split into three different regions with different potentials, nucleon densities and Fermi energies. + +\item nucleon-projectile interction is chosen according to partial cross-sections +\item the products of the interaction are tracked trough the regions until the energy drops below a cut-off energy. +\end{itemize} + +\section{Cross-sections} +Probabllility for interactions during INC is obtained using free (N, N) cross-sections. +Cross-sections for production of one or two $\pi$ are included. + +Interaction ($\pi$, $N$) is equally +\section{Nuclear model} +We present here the nuclear model used in HETC. + +\subsection{Nucleon dencity in the atom} + +Continuous charge dencity +\begin{equation} +\rho(r) = \frac{\rho_1}{e^{\frac{r-c}{a}}+1} +\end{equation} + +where $a= 0.545~fm$ and $cA^{1/3} = 1.07~fm$. $A$ is mass number and $\rho_1$ mormalization parameter. + +In the code the nucleus is composed of three consentric spheres, +corresponding $0.9$, $0.2$, and $0.01$ of the maximal dencity. +In every reqion the dencity is uniform, +and defined as mean value of continuos charge distribution. +Normalization is set so that when integrating over the reqions, correct number of nucleons is achieved. + +\subsection{Impulse distribution} +Impulse distribution in each region follows Fermi fermi distribution with zero temperature. + +\begin{equation} +f(p) = c p ^2 +\end{equation} + +where + +\begin{equation} +\int_0^{P_f} f(p) dp = n_p or n_n +\end{equation} + +where $n_p$ and $n_n$ are the number of protons or neutrons in region. +$P_f$ is impulse corresponding the Fermi energy + + +\begin{equation} +E_f = \frac{P_f^2}{2m} = \frac{\hbar^2}{2m}(\frac{3\pi^2n}{v})^\frac{2}{3} +\end{equation} + +which depend on the dencity $n/v$ of particles, +and which is different for each particle and each region. +The total distribution as on composite does not follow Fermi distribution with zero temperature. + +\subsection{Distribution of potential energy} +The binding energy is systematically set to be $7~MeV$. +In each region protons and neutrons have different potential energy. +\subsection{Pauli exclusion principle} + +Constrains imposed by the Pauli exclusion principle +are taken into account +by comparing energies of secondary particles. +If among socondary particles +there is a nucleon with the energy lower than the Fermi energy +$E < E_F$, then this interaction is consideres prohibited, +and the trajectori of the particle is traced further from the forbideden point. + + +Energies of particles are compared with the so-called cut-off energy $E_{cutoff}$. +Particles with the energy $E > E_{cutoff}$ participate in the development of the INC. +Typical values are listed in Table~\ref{table:cutoff}. + + +\begin{table}[!hbt] +\caption{Typical cut-off values for HETC particles.} + +\hspace{0.5cm} + +\label{table:cutoff} +\centering +\begin{tabular}{lcll} +\hline +\em Particel & \em cut-off \\ +\em Particel & \em enrgy [MeV] \\[2.5ex] +\hline +$p$ & $15$ \\ +$n$ & $15$ \\ +$\mu$ & $0.2$ \\ +$\pi^\pm$ & $2$ \\ +\hline +\end{tabular} +\end{table} + + +\subsection{Description of INC} + +A key feature of this model is that, at sufficiently high energies, +the initial phase of reaction can be treated int terms of collisions +of the incident particle with individual nucleons inside the nucleus. +The struck nucleons can cause further collisions, giving rise to a +particle ``cascede'' inside the nucleos; hence the term intranuclear +cascade describing this process. + +\begin{figure} + \begin{center} + \leavevmode + \rotatebox{0}{\mbox{\epsfxsize=8cm \epsfysize=6cm \epsffile{\AATOS pictures/mc.eps}}} + \caption{Schematic diagram describing Monte Carlo simulation of INC. 400 MeV proton in colliding withnucleus, +Here. for simplicity only one region is used. Crosses incicate Pauli-plocking} + \label{sibtoo} + \end{center} + +\end{figure} + + +The implementation of the INC model is briefly described in the following steps: +\newcounter{list} +\begin{list}{\upshape \arabic{list}. } + {\usecounter{list} + \setlength{\labelwidth}{2cm}\setlength{\leftmargin}{2.6cm} + \setlength{\labelsep}{0.5cm}\setlength{\rightmargin}{1cm} + \setlength{\parsep}{0.5ex plus0.2ex minus0.1ex} + \setlength{\itemsep}{0ex plus0.2ex}} %slshape +\item The spatial point where the incident particle enters the nucleus is determined by selecting it uniformly from the circle presenting the area of the nucleus projected on a plane. +\item A path length for the distance the particle travels before + collision is selected by using the total particle-particle + cross-sections and region-dependent nucleon densities.% (three +% different regions). +\item If the particle escapes the nucleus without a collision, it will + no longer be tracked in the INC model. Otherwise, the momentum + of the struck nucleon, the type of reaction and the energy and + direction of the reaction products are determined. +\item If the collision is not forbidden by the Pauli exclusion principle and + if the kinetic energy of the product is above a predefined + cutoff energy, the algorithm goes to step 2 to transport all + the products further in the nucleus. +\item When the cascade is completed, the mass $A'$ and charge $Z'$ of + the residual nucleus are determined from their conservation + laws. Also the residual excitation energy $E^*$ is determined + from the energy conservation law. +\end{list} +%\end{minipage} + + +After the INC has been accomplished, $A'$, $Z'$ and $E^*$ are +used as input for the pre-equilibrium and the subsequent evaporation +algorithms to determine the number, type and energy of nucleons and +heavier particles ($d$, $t$, \HET\ and $\alpha$ particles) +emitted. The remaining excitation energy is assumed to dissipate by +photon emission. +%The $A$ and $Z$ of the final nucleus are then determined. +\subsection{Scaling model} +The information (particle types, energies, direction cosines, etc.) +obtained from the INC can be given as input to scaling routines, +that use an extrapolation model to obtain the description of the collision products +corresponding to the actual energy or the particle. +\section{Pre-equilibrium model} +\subsection{Separtion between INC and evaporation} + + +The outline of the pre-equilibrium model is as follows~\cite{ferrari96}: +\begin{list}{\upshape \arabic{list}. } + {\usecounter{list} + \setlength{\labelwidth}{2cm}\setlength{\leftmargin}{2.6cm} + \setlength{\labelsep}{0.5cm}\setlength{\rightmargin}{1cm} + \setlength{\parsep}{0.5ex plus0.2ex minus0.1ex} + \setlength{\itemsep}{0ex plus0.2ex}} %slshape + \item For a given excitation energy $E$, atomic number $A$ and + number of excitons $n$ the equilibrium number of excitons + $n_{eq}=\sqrt{0.5 + 2 g E}$ is calculated ($g$ is the single + particle level density). Now if the current exciton number + $n\geq n_{eq}$ or the excitation energy is below a predefined + level (i.e. 50~MeV), then the pre-equilibrium algorithm is + finished and further emission of fragments is done with an + equilibrium model (here the evaporation model). If $n +%G4BertiniDeexcitationChannel). +% +%Muutin nuo muutamat testini yhteensopiviksi tuon uuden interfacen kanssa. +%Pikaisten kokeilujen jalkeen testit nayttavat antavan samoja tuloksia kuin +%siina raportissa ja dipassani on (en piirtanyt kuvaajia, mutta +%numeerisessa muodossa se oli ihan samankaltaista). +% +%Muuten, jos meilla on utils-luokkia kaytossa, niin mun luokissa olevat +%isotropicCosines-metodit (arpovat isotrooppisesti jakautuneet kosinit) +%voisi laittaa utils-luokkiin. Mutta toimiihan tuo nakojaan nytkin. + +The implementation of the evaporation and de-excitation models in +Geant4 are described in Fig.~\ref{fig:bertiniUML}. The interface to +the {\it G4Cascade} is done with the class {\it G4BertiniEvaporation}. +It has two methods, one for breaking up the nucleus and one for +setting the verbose level, with which Geant4 controls the amount of +details printed on the screen. The method {\it BreakItUp} takes the +excited nucleus {\it G4LayeredNucleus} as its parameter. + +As for the internal structure of the evaporation package, {\it + G4BertiniEvaporation} is an aggregate of six evaporation channels +corresponding to each type of emission particle, and of one +de-excitation channel for photon emission. Chargeless +neutrons have a distinct class for their evaporation +channel, whereas charged particles have a class for their common +properties ({\it G4BEChargedChannel}), from which the distinct +channels are inherited. On the whole, the size of the implementation +of evaporation and de-excitation models was about 1800 lines of code. +%from which 330 were in the header files. + +The implementation was done in two phases. In the first +implementation, the purpose was to reproduce the results of the HETC98 +code by using the same algorithms and constants (i.e.\ particle +masses and algorithms to calculate the Q values) and thus ensure the +same functionality as in the HETC98 code. In the second phase, the +model was modified to use Geant4 constants and utility classes as well +as the kinetic energy sampling algorithm described +in~\cite{dostrovsky59}. When compared to the simulation results of +the original (Fortran-based) HETC98 code, similar results were +expected with the first implementation, whereas some differences were +expected with the second implementation. + + +%\begin{figure} [h!tb] +%\centering +% \epsfig{file=kuvat/kuva_bertiniUML.eps,width=11cm}%12.6cm} +% \caption{ UML Class diagram of the evaporation and de-excitation +% models. For the sake of clarity, the parameters and return +% values have been left out.} +% \label{fig:bertiniUML} +%\end{figure} + +% \begin{itemize} +% \item implementation \& class diagram +% \item differences due to use of G4 utility classes and different +% energy sampling algorithm +% \end{itemize} + +\section{Testing} + +To validate the functionality of the HETC code, several simulations +were carried out. As the other parts of the implementation of HETC +were not yet ready, the evaporation and de-excitation model was run +separately in order to check its functionality. Some elementary tests +were carried out to validate the implementation. +%Also, the results +%were compared with experimental results when available. + +There were no remarkable differences between the results of the first +implementation and the results of the HETC98 code. The differences, which +were of the order of a couple of percent, were thought to arise from +statistical fluctuations. In the comparisons, excitation functions for +all emitted particles as well as for neutrons and protons separately +were considered. Three different elements ($^{16}{\rm O}$, $^{63}{\rm + Cu}$ and $^{208}{\rm Pb}$) were considered. The graphs of these +tests are, however, omitted here. + +When the results of the second implementation were compared to the +results of HETC98, larger differences were found. On the excitation +functions of all emitted particles, seen in +Fig.~\ref{fig:kaikki}, there are differences of the order of 20~\% +with $^{16}{\rm O}$. When the excitation functions of neutrons and +protons are considered (Figs.~\ref{fig:neu} and \ref{fig:pro}), there +are again such differences with $^{16}{\rm O}$. In other excitation +functions, except perhaps that of protons with $^{63}{\rm Cu}$, the +differences are less than 10~\%. There are also large differences in +the proton excitation function of $^{208}{\rm Pb}$, but this can be +explained by the fact that the proton emission is a very rare event +and the related statistical fluctuations are again very large. As to +the comparison of the kinetic energies of the emitted neutrons and +protons (Figs.~\ref{fig:kinEneuts} and \ref{fig:kinEprots}), +differences of less than 20\% were found whenever statistical +fluctuations were small. + +%\begin{figure}[p] +%\centering +%\begin{tabular}{c} +% \epsfig{file=kuvat/kuva_kaikki.ps,bbllx=50pt,bblly=411pt,bburx=554pt,bbury=605pt,width=0.7\textwidth,clip=}\\ +% \epsfig{file=kuvat/kuva_kaikkierror.ps,bbllx=50pt,bblly=323pt,bburx=555pt,bbury=463pt,width=0.7\textwidth,clip=} \\ +%\end{tabular}\\ +% \caption{ Average multiplicity of all evaporated particles +% of $^{16}{\rm O}$, $^{63}{\rm Cu}$ and $^{208}{\rm Pb}$ +% simulated and compared with the HETC98 code. The obtained +% average multiplicities and the relative difference (\%) are +% shown.} +% \label{fig:kaikki} +%\end{figure} + +%\begin{figure}[p] +%\centering +%\begin{tabular}{c} +% \epsfig{file=kuvat/kuva_neu.ps,bbllx=50pt,bblly=411pt,bburx=554pt,bbury=605pt,width=0.7\textwidth,clip=}\\ +% \epsfig{file=kuvat/kuva_neuerror.ps,bbllx=50pt,bblly=323pt,bburx=555pt,bbury=463pt,width=0.7\textwidth,clip=} \\ +%\end{tabular}\\ +% \caption{ Average multiplicity of evaporated neutrons +% of $^{16}{\rm O}$, $^{63}{\rm Cu}$ and $^{208}{\rm Pb}$ +% simulated and compared with the HETC98 code. } +% \label{fig:neu} +%\end{figure} + + +%\begin{figure}[p] +%\centering +%\begin{tabular}{c} +% \epsfig{file=kuvat/kuva_pro.ps,bbllx=50pt,bblly=411pt,bburx=554pt,bbury=605pt,width=0.7\textwidth,clip=}\\ +% \epsfig{file=kuvat/kuva_proerror.ps,bbllx=50pt,bblly=323pt,bburx=555pt,bbury=463pt,width=0.7\textwidth,clip=} \\ +%\end{tabular}\\ +% \caption{ Average multiplicity of evaporated protons +% of $^{16}{\rm O}$, $^{63}{\rm Cu}$ and $^{208}{\rm Pb}$ +% simulated and compared with the HETC98 code. } +% \label{fig:pro} +%\end{figure} + +%\begin{figure}[p] +%\centering +%\begin{tabular}{c} +% \epsfig{file=kuvat/kuva_kinEneut.ps,bbllx=50pt,bblly=411pt,bburx=554pt,bbury=605pt,width=0.7\textwidth,clip=}\\ +% \epsfig{file=kuvat/kuva_kinEneuterror.ps,bbllx=50pt,bblly=511pt,bburx=555pt,bbury=592pt,width=0.7\textwidth,clip=} \\ +%\end{tabular}\\ +% \caption{ Kinetic energies of evaporated neutrons of +% $^{16}{\rm O}$, $^{63}{\rm Cu}$ and $^{208}{\rm Pb}$ +% simulated and compared with the HETC98 code. } +% \label{fig:kinEneuts} +%\end{figure} + +%\begin{figure}[p] +%\centering +%\begin{tabular}{c} +% \epsfig{file=kuvat/kuva_kinEprot.ps,bbllx=50pt,bblly=411pt,bburx=554pt,bbury=605pt,width=0.7\textwidth,clip=}\\ +% \epsfig{file=kuvat/kuva_kinEproterror.ps,bbllx=50pt,bblly=511pt,bburx=555pt,bbury=592pt,width=0.7\textwidth,clip=} \\ +%\end{tabular}\\ +% \caption{ Kinetic energies of evaporated protons of +% $^{16}{\rm O}$, $^{63}{\rm Cu}$ and $^{208}{\rm Pb}$ +% simulated and compared with the HETC98 code. } +% \label{fig:kinEprots} +%\end{figure} +\section{Results}%::: + +%\section{HETC++ documentation}%::: + + +\section{Conclusion}%::: + +Implementation of evaporation and de-excitation has been done according to the +OO principles is now ready and can be integrate to Geant4 hadronic +model framework + +In evaporation model different MC results compared to old Fortan +version come from statistical fluctuations, +but also from changement of constants and energy algorithm, +quite large differences with light $^{16}$O, fission not considered + +INC and pre-equilibrium models are now largely translated to +C++. OOA\&D need to be finished before results are available from +these modules. + + +\section{Acknowledgements} + +We thank Hans-Peter Wellisch, Veikko Karim\"aki, Antti Honkanen, Pertti Aarnio and Mika Huhtinen for useful advice concerning Geant4 and hadronic simulations. + + +\bibliographystyle{unsrt} % Options plain, unsrt, alpha, abbrv + + +%\bibstyle{plain} + +\bibliography{\AATOS texts/references/references.bib} + + +\clearpage +\begin{appendix} %::: +\section{APPENDIX / HETC UML-diagrams} %::: +\begin{figure}[h] +\leavevmode +\begin{flushleft} +%\mbox{\epsfxsize=10cm\epsfysize=3.286cm\epsffile{\AATOS +%pictures/hip.eps}} +\mbox{\epsffile{hetc.eps}} +\end{flushleft} +\end{figure} + +\section{APPENDIX / Working document} %::: + +\subsection{laura} +\subsubsection{testing} +\scriptsize +\begin{verbatim} +25.6 + +20.6 +Most of the methods in class G4Cascade are suitable for testing. +So, prepare test for shorter routines (max 3 windows of code). +18.6 +G4Cascade::exprnf +G4Cascade::gaurn +G4Cascade::gtiso +G4Cascade::getrig +G4Cascade::zfoi +G4Cascade::modify +G4Cascade::energy +G4Cascade::enrg +G4Cascade::xlamb (note: xlamb.cc should work now!) +15.6 +G4Cascade::shxd +G4BertiniCascade::big7 +11.6 +G4BertiniCascade::mud + +\end{verbatim} +\normalsize + +\subsubsection{OO design and implementation of Bertini +data set ({\tt chetc.dat}) into HETC++} + +20.6.\\ +I did some cleaning of your functions and documented few parameters +used there. + +{\bf tools} \\ +Use command {\tt please info {\it keyword}} +to get help on the ugly variable names (example: {\tt please info pion}. +In file {\tt hetc/inc/utils/globals.hh} we keep a list of all strange +names of old and new version of HETC. + +Please, make your own list where all strange names are listend and explained. + +Suggested steps in this coding exercise: +\begin{itemize} +\item pahse 0: study carefully the code and make notes +\item phase 1: use {\tt read.cc} as an help to implement commented read +lines in c++ code +\item phase 2: create new class G4HETCData and implement Bertini data +in good OO manner +\item phase 3: visualize cross section data, also the data in +global.hh, using ROOT (see FittingDemo.C as an example of visualizing +data vectors) +is useful example) +\item phase 4: use G4HETCData with other hetc++ classes +\item phase 5: plan g4 integration +\end{itemize} + +files/methods involved: +\scriptsize +\begin{verbatim} +chetc.dat +read.cc +G4Cascade methods: +gthsig +sgm +xsec +shxd +readh, +original code comes from dres.f +(reads data into vectors +waps, cam2 and cam3, which are +needed in G4Cascade::energy and enrg) +\end{verbatim} +\normalsize + +\subsection{aatos} +Protos for cascade classes: + +\begin{verbatim} + +mother classes +............... + +G4VCrossSectionDataSet + +G4VIntranuclearTransportModel + +G4VPreCompoundModel + +G4VElasticScatterer + +key classes +........... + + +Idea: common block caterogies: COM3, COM and rest + + +G4Cascade(Model) (manager, everything starts from here and is coordinated) + +---------------- + -inherits form VIntranuclearTransportModel + - has Nucleus + -has ParticleVecors (G4KineticTrackVector, G4DynamicParticleVector,G4ParticleChange )? +does: +-manage initialization +-component suncronizations +- +cascad.f: +COMON.F COMON2.F COMON3.F HIE.F PART2.F (all together) +input.f: +COMON.F HIE.F +sprd.f: +COMON.F +main_broom.f: +GMSTOR.F HIE.F (COMON.F COMON3.F COMON2.F PART2.F +datalo_broom.f: +(ECOMON.F PART2.F HIE.F COMON2.F COMON3.F) +analz1_broom.f: +(HIE.F COMON.F) +sors_broom.f: +(COMON.F COMON2.F COMON3.F HIE.F) +datahi.f: +PART2.F COMON.F COMON2.F COMON3.F HIE.F + +G4VBertini(Collision) (inc cascade) +--------- +- like in kinetic model + -subclasseses for different particles +-has G4BeritiniData + + -G4Bertini1.f: +ber1.f +COM3.F COM.F (only once COM.F move to G4Nucleus) + + +B4BertiniCollision (interaction, isobar) SUBCLASSES? +------------------- +hcol.f: +COM1.F COM3.F COM.F COMON2.F COMON3.F (only once com1 and com2 together -> separata tha routine away) + + +G4Nucleus (NucleusWithRegions) +---------- +- material to G4collision or Scatterer + - has nucleons + - layers? +ber2.f: +COM.F + +G4Region (layer, lots of common variables together) +-------- +ber3.f +COM3.F + + +G4BertiniUtils (tools, all) +---------------- +-basic.f: (in order of importance) +-COMON.F COMON2.F COMON3.F COM.F HIE.F PART.F PART2.F COM3.F + +PRE-EQUILIBRIUM MODEL: +-follow closely the G4PreCompoundModel inherited from G4VPreCompoundModel +-add G4Exiton +particles +.......... + ++G4ParticleDefinition *aPiMinus = G4PionMinus::PionMinus(); ++aPiMinus->GetPDGCharge/GetBaryonNumber, Get4Momentum ++G4DynamicParticle *aParticle; ++aParticle->GetKineticEnergy()/GeV; ++G4double protonMass = aProton->GetPDGMass()/MeV; + +G4ParticleDefinition* aParticleType = aParticle->GetDefinition(); +if (aParticleType == G4PionPlus::PionPlus()) ipart = 7; + ++G4DynamicParticle *dp = new G4DynamicParticle(); ++dp->SetDefinition( aNeutron ); ++dp->SetKineticEnergy( energy-neutronMass ); ++dp->SetMomentum( m ); ++dp->SetMomentumDirection(u, v, w); + +G4Element, GetN/Z + +G4double a = anElement->GetA()*mole/g; +if (a < 230.) return 0; + +G4DynamicParticle* resultant = new G4DynamicParticle; +resultant->SetDefinition( aPiZero ); +delete resultant; + + +Vectors +....... + +-G4LorenzVector pTarget(0,0,0,m) +G4LorenzVector pProjectile(aPart->Get4Momentum()), p.m() +E_cm = eCm =(pTarget.mag() -targetMass - pProjectile.m())/MeV + ++G4ThreeVector m; ++m.setX( alc ); m.setY( bec ); m.setZ( gac ); + ++#define G4Vector G4std::vector ++typedef G4Vector< G4DynamicParticle* > DPvector; ++typedef G4Vector< G4double > Dvector; ++Dvector v; ++v.reserve(6); ++v.erase( v.begin(), v.end() ); ++v.push_back( 1.0 ); ++v.push_back( v[0] ); + + +nucleus +........ + +G4V3DNucleus + +Shell +G4Fancy3DNucleus + +G4Nucleus, GetFermiMomentum, AddExitationEnergy, AtomicMass +G4Nucleus *theNucleus; +theNucleus->GetN() +G4double P = theNucleus->GetMomentum().mag()/MeV; +theNucleus->GetEnergyDeposit() +theNucleus->SetParameters( afj[lm], zfj[lm] ); +theNucleus->AddExcitationEnergy(); + +G4FermiMomentum + +Dvector *vtmp = new Dvector( 5 ); +vtmp->insert( vtmp->begin()+3, ep2 ); + +theNucleus->GetMomentum().setX(theNucleus->GetMomentum().x()-pl.x()*GeV); + +pEmittedParticle = pSelectedChannel->emit(); +nucleusTotalMomentum = pEmittedParticle->GetTotalMomentum(); // CMS frame +pEmittedParticle->GetKineticEnergy(); + +G4Nucleon, Boost + +kinematics +........... + +G4NuclearFermiDensity + +G4ReactionDynanics/Kinematics + +G4ReactionProduct , lorenz +G4ReactionDynamics + +G4ReactionKinematics (lorenz boost, lab system) + +G4LorentzVector lorentz1(px, py, pz, energy1); + + +cross-sections +.............. + +// Initialize static pointer for singleton instance +G4HadronCrossSections* +G4HadronCrossSections::theInstance = 0; +static G4HadronCrossSections* Instance() { +if (!theInstance) theInstance = new G4HadronCrossSections(); + return theInstance; +} + +G4float G4HadronCrossSections::plab[TSIZE] = {0.00000E+00, 0.10000, 0.15000} + +enum { TSIZE=41, PSIZE=35, NELAB=17, NCNLW=15, NFISS=21 }; +class G4HadronCrossSections { +public: + G4HadronCrossSections() : verboseLevel(0) + + +G4VCrossSectionDataSet + +// This is the class to which to register data-sets. You can get the instance +// from energy hadronic process, and use its 'AddDataSet(...)' method to tailor +// the cross-sectinos for your application. +G4CrossSectionDataStore, AddDataSet(G4VCrossSectionDataSet*); + + + +utilities +......... +G4double ekx = G4std::max(ek, 1.e-9); + + +const G4double cech[] ={0.33,0.13,0.10,0.09,0.07}; + + + +pre compund +............. + +G4PreCompoundNeutron/Proton/Ion/Fragment + +G4LEPionPlusInelastic (cascade) + +G4Exiton + + +void G4BertiniEvaporation::fillParticleChange( + vector secondaryParticleVector, + G4ParticleChange * pParticleChange ) +{ + // Fill the vector pParticleChange with secondary particles stored in vector. + pParticleChange->SetNumberOfSecondaries( secondaryParticleVector.size() ); + for ( G4int i = 0 ; i < secondaryParticleVector.size() ; i++ ) + pParticleChange->AddSecondary( secondaryParticleVector[i] ); + return; +} + +void G4ReactionKinematics::TwoBodyScattering( + const G4DynamicParticle* pIn1, const G4DynamicParticle* pIn2, + G4DynamicParticle* pOut1, G4DynamicParticle* pOut2) +{ +// initial particles: + +// total invariant mass + G4LorentzVector sumIn(pIn1->Get4Momentum()+pIn2->Get4Momentum()); + G4double invariantMass=sumIn.mag(); + +// beta of center-of-mass system + G4ThreeVector betaCMS=sumIn.boostVector(); + +// final particles: + +// get final particle masses + G4double massOut1=pOut1->GetMass(); + G4double massOut2=pOut2->GetMass(); + +// calculate breakup momentum: + G4double breakupMomentum=BreakupMomentum(invariantMass, massOut1, massOut2); + +// random decay angle + G4double theta=RandFlat::shoot(HepDouble(0.),HepDouble(pi)); // isotropic decay angle theta + G4double phi =RandFlat::shoot(HepDouble(0.),HepDouble(twopi)); // isotropic decay angle phi + +// setup LorentzVectors + G4double pz=cos(theta)*breakupMomentum; + G4double px=sin(theta)*cos(phi)*breakupMomentum; + G4double py=sin(theta)*sin(phi)*breakupMomentum; + + G4double breakupMomentumSquared=breakupMomentum*breakupMomentum; + G4double energy1=sqrt(breakupMomentumSquared+massOut1*massOut1); + G4double energy2=sqrt(breakupMomentumSquared+massOut2*massOut2); + + G4LorentzVector lorentz1(px, py, pz, energy1); + G4LorentzVector lorentz2(px, py, pz, energy2); + +// back into lab system + lorentz1.boost(betaCMS); + lorentz2.boost(betaCMS); + +// fill in new particles: + pOut1->Set4Momentum(lorentz1); + pOut2->Set4Momentum(lorentz2); + + return; +} + +\end{verbatim} + +\begin{itemize} +\item +\item +\item +\item {\bf pre-quilibrium} +Joe Chumas work. + +\end{itemize} + + +\begin{itemize} +\item study pre-equilibrium theory +\item study G4 pre-equilibrium module +\item study G4 +\item browse pre-equilibrium code +\item integrate it with G4 +\item try to compile it +\item document it +\item clean it +\item develop OOA\&D +\item make tests for individual functions (dump data to ASCII files) +\item use ROOT to visualize test results +\item run code and study results using ROOT +\item document your work in special assignment paper +\item {\bf documentation} +\end{itemize} + + + +\begin{itemize} +\item collect all material to this working document +\item modularize manual? +\item do major GNUmakefile to build HETC documentation +\item generate HETC web pages using tex2html + +\end{itemize} + + + +\begin{itemize} +\item {\bf testing} +\item make test for key functions, classe,and modules +\item use ROOT +\item +\end{itemize} + + + +\begin{itemize} +\item {\bf results} +\item collect Tapios results to common results area (?) +\item make use of ROOT scripts to visualize some INC function outputs +\item +\end{itemize} + +\section{APPENDIX / G4 coding style} %::: +\scriptsize +%\begin{verbatim} +include g4Style.hh +%\end{verbatim} +\normalsize + +\section{APPENDIX / stuff} %::: +% random note to be cleaned +\begin{verbatim} + +/* hetc variable (lots of temporary stuff) + + +rewrites to be done: +............................. +basic.f (ppnp reading) +basic.f (input2, ecol) +input.f (input) +mfpd2.f (mdpf2) +datahi.f (datahi) + +do +............................................. +G4out to coherent form (remove format,write) +go trough if (i = 1 > i = 0 , and [i-1] > [i]) +clean translation results for read + + +In original f77 (see make_bert) bertini simulation (no cem or other configurations, just bertini) +is made with following configuration: + +basic.f (basic utility stuff) +ber1.f (core bertini) +ber2.f (core bertini) +ber3.f (core bertini) +cascad.f () +hcol.f () +dum_bert.f (dummy functions listed) +input.f () +analz1_broom.f () +datalo_broom.f () +main_broom.f () +sors_broom.f () +datahi.f () +dres.f () +geom.f () +mfpd2.f () +sprd.f () + +STATUS CODING: +// 0 nothing done 1 raw compilation 2 compiles 3 cleaned +// 4 first draft oo 5 cleaned oo OK done + + lines file status +--------------------------------------- + 2193 basic.f 2 + 1958 hcol.f 3 + 1840 ber1.f 3 + 1037 ber2.f 3 + 1664 ber3.f 3 + 1324 mfpd2.f 0 nor needed + 883 cascad.f 3 + 511 dres.f 3 evaporation + 293 input.f 0 + 164 datahi.f 0 + 822 main_broom.f 0 + 204 analz1_broom.f 0 + 118 datalo_broom.f 0 + 107 sors_broom.f 0 + 171 sprd.f 0 + 65 dum_bert.f OK +-------------------------------------- + +These files include following common definitions: +COMON.F COMON2.F COMON3.F COM.F COM1.F COM3.F PART.F PART2.F GMSTOR.F FINUC.F PAPROP.F HIE.F + lines file status +------------------------------------------ + 28 COM3.F + 22 COM.F + 11 COM1.F + + 14 COMON.F + 1 COMON2.F + 1 COMON3.F + + 3 PAPROP.F + 6 PART.F + 6 PART2.F + + 2 FINUC.F + 1 GMSTOR.F + 1 HIE.F +---------------- + +Detailed usage of common blocks is as follows: + +basic.f: (in order of importance) +COMON.F COMON2.F COMON3.F COM.F HIE.F PART.F PART2.F COM3.F + +ber1.f: +COM3.F COM.F (only once COM.F) + +ber2.f: +COM.F + +ber3.f +COM3.F + +cascad.f: +COMON.F COMON2.F COMON3.F HIE.F PART2.F (all togeteher + +hcol.f: +COM1.F COM3.F COM.F COMON2.F COMON3.F (once com1 and com2 together + +datahi.f: +PART2.F COMON.F COMON2.F COMON3.F HIE.F + +dres.f +COMON.F COMON2.F COMON3.F + +input.f: +COMON.F HIE.F + +mfpd2.f: +PART2.F FINUC.F COMON.F PAPROP.F PART2.F COMON3.F COMON2.F + +sprd.f: +COMON.F + +main_broom.f: +GMSTOR.F COMON.F HIE.F COMON3.F COMON2.F PART2.F + +datalo_broom.f: +COMON.F PART2.F HIE.F COMON2.F COMON3.F + +analz1_broom.f: +HIE.F COMON.F + +sors_broom.f: +COMON.F COMON2.F COMON3.F HIE.F + +------------------------------------------------------ + dummy functions not implemented in bertini version + (see makefile make_bert and dum_bert.f) +------------------------------------------------------- +mashnk not implemented in HETC bertini cascade +qhsigg not implemented in HETC bertini cascade +datar3 not implemented in HETC bertini cascade +hadden not implemented in HETC bertini cascade +rchanw not implemented in HETC bertini cascade +chanwt not implemented in HETC bertini cascade +qheh not implemented in HETC bertini cascade +qevent not implemented in HETC bertini cascade +mcmosc not implemented in HETC bertini cascade +mesage not implemented in HETC bertini cascade +skale not implemented in HETC bertini cascade +inpcm not implemented in HETC bertini cascade +cemgeo not implemented in HETC bertini cascade +user not implemented in HETC bertini cascade +bertcem not implemented in HETC bertini cascade +crsec not implemented in HETC bertini cascade +heh not implemented in HETC bertini cascade +qmain not implemented in HETC bertini cascade +erupcem not implemented in HETC bertini cascade +pcol not implemented in HETC bertini cascade +------------------------------------------------------- + +................... +id decription: +................... +1 single production +2 double production +3 elastic +4 exchange +................... + + + +......................... + ncol +......................... + -4 end of run + -3 end of batch + -2 not used + -1 start run + 0 not used + 1 source particle + 2 nuc interact + 3 particle slowed + 4 particle escape + 5 pseudo collision + 6 nuc absorption + 7 medium bound crossing +......................... + + + + inc type of incident particle +............................... + 0 proton + 1 neutron + 2 pi+ + 3 pi0 + 4 pi- + 5 mu+ + 6 mu- + + Naming conventions + meaning example + ----------------------------------------------- + T templates + V virtual G4VClass + i iterators iList + l length lVector + r reference rData + p pointer pLayers + n number of nParticles + f file fCrosssection + e enumerates eQuarkFamilies + g globals gDetector + k constants kPlancksConstant + ------------------------------------------------- + + + naming conventions +------------------------------------------------------------ +hetc hetc++ decription +------------------------------------------------------------ +eswh() > scatteringWithHydrogen +sigels() > interpolateElasticNeutronData +med > medium +e > theEnergy +kdd > ::: +locf1[] > ::: +datalo() transfers a particle from the cascade prod. bank or the evap. n/p bank to the below cut reac. report bank +datahi() transfers a particle from the cascade prod. bank or the evap. n/p bank to the above cut reac. report bank >>> + reaction direction cosines are (relative to incoming particle) are transformed to coordinate system >>> + direction cosines using the values set by getrig. particle weights (also in datalo) are assigned to >>> + equal to the incoming particle weight unless scaling has occured, in which case this is muultiplied >>> + byt the scaling weight wtfas. this routine also assigns particle names. +getrig() evaporation directions are chosen isotropically in the laboratory system. +maxcas number of source particles to be started in each batch +maxbch the number of batches to be run with the present se of input data +n1col >0 each cascade history willb e computed only trough the history second generation + that is, only trough the immediate descendants of source particles + <0 all generations will be computed (ittelevant for muon transport) + +emax the maximum energy of particles being transported [MeV] +elop cut-off energy for transporting protons [MeV], cutoff for pions (pi/proton mass) 0.1488 *elop + +cfepn(i+3) cutoff energies in each region for neutrons( = space(i+3)+ctofen) +cfepn(i) cutoff energies in each region for protons (= space(i+9)+ctofe) +nhstp nhstp neutron history tape +neutp neutp flag to report neutrons below cut off +sors() sors source-particle data, sors(NCOL=-1): read input required by sors, problem dependent +user() user() may be problem dependent +dres() dres evaporation model +itp itp 1 G4Proton, 2 G4Neutron, 3 G4PionPlus, 4 G4PionMinus +ityp ityp particle numbering ityp = tip + 1 +inc,tip inc, tip type of incident particle, 0 proton, 1 neutron, 2 pi+, 3 pi0, 4 pi-, 5 mu+, 6 mu- +e(1) e[0] source-particle kinetic energy [MeV] +x(1) x[0] source-particle x position coordinates in cm +y(1) y[0] source-particle y position coordinates in cm +z(1) z[0] source-particle z position coordinates in cm +u(1) u[0] source-particle x direction cosine +v(1) v[0] source-particle y direction cosine +w(1) w[0] source-particle z direction cosine +wt(1) wt[0] source-particle statistical weight + +ctofe ctoef INC cutoff energy +xi(1..3) >coordinate[0..2] x, y and z -coordinates of incoming particle +ec >eCurrent energy usef for cross section interpolation +amumev >amu_c2 AMU in MeV (CLHEP constant) +dncms >massNucleon nucleon mass in center of mass (cm) frame +1.0e-24 >millibarn millibarn +e(0) >energy[0] total p1 energy +e[1] >energy[1] total energy sqrt(sqr(momentum struck particle) + sqr(nucleon mass)) +1000.0 >MeV conversion of GeV to MeV units +mp protonMass mass of proton +charge particleCharge vector of particle charges +rmass(7) particleMass vector of particle masses +7.0 >bindingEnergy binding energy +pm() >massParticle particle mass +hcs >hadronCrossSection hadron cross-section, hadronCrossSection[29850] corresponding file i gcalor 'chetc.dat' +pnms >massPionCharged charged pion mass / cm +poms >massPionZero neutral pion mass / cm +bcs >crossSection total (p, p) and (n, p) cross-sections (single and double production + elastic) +eco(1) eco[0] proton energy cut-off (= cfepn[med - 1]) +eco(2) eco[1] neutron energy cut-off (= cfepn[med + 2]) +pppda pppda probability (pi+, d) abs. +ppmda ppmda probability (pi-, d) abs. +it itxxx temporary rename +es() es1[] temporary rename +pt(3) pt[2] momentum of 3 in laboratory (e[3] - pm[3]) / rcpmv +pt(15) pt[14] momentum of 4 in laboratory (e[4] - pm[4]) / rcpmv +adel adel asymptotic density effect corrections +ang1[][1][1] ang1[][0][0] direction angle alpha +ang1[][2][1] ang1[][1][0] direction angle beta +ang1[][3][1] ang1[][2][0] direction angle gam +ex ex distance in sampling routine +sign sign sigma ci region i ::: +plvc(1) plvc[0] number of times entered for storage of velocity less than criterion +pgvc(1) pgvc[0] number of times velocity greater than criterion entered +s.p. s.p. single production ? +rlke rlke relative kinetic energy +pol1 pol1 calculate polar angles cos(theta) and sin(theta) ? +azio azio calculate azimuthal angles cos(phi) and sin(phi) ? +pxyz pxyz momentum vector +pxyz pxyz xyz coordinates of collision point +p2 p2 momentum of particle selected from proper fermi distribution +p1oe1 p1oe1 p1 energy +pxyz(0) pxyz[0] p1 momentum x coordinate +pxyz(1) pxyz[1] p2 sin(theta) cos(phi) +pxyz(4) pxyz[4] p1 momentum y coordinate +pxyz(5) pxyz[5] p2 sin(phi) +pxyz(8) pxyz[8] p1 momentum z coordinate sqrt(sqr(total energy)-sqr(mass)) +pxyz(9) pxyz[9] p2 cos(theta) +col col part of isobar common ::: +col(1) col[1] total energy of particles 1 and 2 (e[0] + e[1]) +col col[21] qx ::: +col col[22] qy ::: +space space well depth (MeV) +space space[13-16] cross section (mb +s s[0-1] cross section +pnidk(1) pnidk[1] p x +pnidk(2) pnidk[2] p y +pnidk(3) pnidk[3] p z +pnidk(4) pnidk[4] ::: +pnidk(5) pnidk[5] m(p1) decay pion mass squared +pnidk(6) pnidk[6] e(pi) prime decay pion energy prime +pnidk(7) pnidk[7] decay pion momentum prime +pnidk(8) pnidk[8] decay pion x momentum component prime +pnidk(9) pnidk[9] decay pion y momentum component prime +pnidk(10) pnidk[10] decay pion z momentum component prime +pnidk(11) pnidk[11] decay pion energy e(pi) +pnidk(12) pnidk[12] ::: +pnidk(13) pnidk[13] ::: +pnidk(13) pnidk[14] ::: +pnidk(14) pnidk[15] ::: +pnidk(15) pnidk[16] ::: +pnidk(16) pnidk[17] ::: +pnidk(17) pnidk[18] ::: +pnidk(18) pnidk[19] ::: +pnidk(19) pnidk[20] ::: +pnidk(20) pnidk[21] ::: +pnidk(21) pnidk[22] ::: +pnidk(22) pnidk[23] ::: +dcintp() dcintp() calculate (n - p) differential cross-section high energy? +ifix static_cast change data to integer +sngl static_cast change data to double (original real*4) +curr(1) dcos[0] current incident particle +curr(4) curr[3] x coordinate of current incident particle +curr(5) dcos[4] y coordinate of current incident particle +curr(6) dcos[5] z coordinate of current incident particle +xi(i) xi[0] x coordinate +xi(2) xi[1] y coordinate +xi(3) xi[2] z coordinate +dcos(7) dcos[6] alpha direction cosine ? +dcos(8) dcos[7] beta direction cosine ? +dcos(9) dcos[8] gamma direction cosine ? +curr(10) curr[9] number of geometry ? +icurr icurr incident partice +inc inc inciden particle +pp0 pp0 highest p0 of bin +cm cm center of mass frame +is is (::sgm) used in cross-section vector to point correct partice data +em em (::sgm) energy used for cross-section calculation +de de (::sgm) difference of discrete energy points i cross-section tables +e e (::sgm) fixed energy position used in cross-section tabulation +s s (::sgm) cross-section at energy position em +it it interaction type (single production, elastic, :::) or Al, Cu, Pb tabulated atom size? +npsg npsg cross-section (n, p) +pipsg pipsg cross-section (pi+, :::) +ginum ginum vector of particle masses +fli fli ::: data vector (globals.hh) +dndpip dndpip cross-section (pi-, N) ? or dn/dpi+ +dndpim dndpim cross-section (pi-, N) ? or dn/dpi- +pm pmxxx (temporary) momentum table ? +pm pm particle mass +ethr ethr threshold kinetic energy in gev for particle prod. +cpnu cpnu cross-section (p, N) ? +cpimnu cpimnu cross-section (pi-, N) ? +cpipnu cpipnu cross-section (pi+, N) ? +cpimk cpimk cross-section (pi-, :::) ? +cpipk cpipk cross-section (pi+, :::) ? +cpk cpk cross-section (p, :::) ? +angle angle vector of angle data (radians) +ppdc ppdc bertini data ::: cross-section +pmdd pmdd bertini data ::: cross-section +pmdx pmdx bertini data ::: cross-section +pndd pndd bertini data: (pi-, p) direct cross-section ::: +ppnp ppnp cross-section data defined (globals.hh) +enrgy enrgy energy vector defined (globals.hh) +nwds nwds total number of words (escaping particles) +nopart nopart number or particles +pnddi pnddi (pi-, p) direct cross-section intermediate energy +pnddl pnddl (pi-, p) direct differential cross-section low energy +ppnda ppnda probability (pi-, D) abs +dpcln(130) dpcln (n, p) double production cross-section low energy (index 3841) +pdpcl(130) pdpcl (p, p) double production cross-section low energy (index 3553) +spcln(158) spcln (n, p) single production cross-section low energy (index 3683) +pspcl(158) pspcl (p, p) single production cross-section low energy (index 3395) +ppscl(117) ppscl (pi+, p) single production cross-section low energy (index 4409) +pmscl(117) pmscl (pi-, p) single production cross-section low energy (index 4643) +pnscl(117) pnscl (pi0, p) single production cross-section low energy (index 4526) +pnnsl(117) pnnsl (pi-, n) single production cross-section low energy (index 4760) +pec(176) pec (p, p) elastic scattering cross-section (index 6494) +ecn(176) ecn (n, p) elastic scattering cross-section (index 6370) +pmec(126) pmec (pi-, p) elastic scattering cross-section (index 5942) +ppec(126) ppec (pi+, p) elastic scattering cross-section (index 6068) +pnec(126) pnec (pi0, p) elastic scattering cross-section (index 5564) +pnnec(126) pnnec (pin, n) elastic scattering cross-section (index 5690) +fripn(117) fripn ::: (index 5112) +fmxsp(117) ::: (index 2925) +pmxc(126) pmxc ::: (index 5816) +ipec(10) ipec[10] number of escaped particles on region 1 +ipec(6) ipec[6] number of escaped particles on region 2 +ipec(1) ipec[1] number of particles incident on region 3 escaping +wkrpn(4) wkrpn[4] kinetic energy for protons and neutrons in region 2 +wkrpn(1) wkrpn[1] kinetic energy with respect to neutrons (protons) region 2 +wkrpn(0) wkrpn[0] kinetic energy with respect to neutrons (protons) region 1 +wkrpn(2) wkrpn[2] kinetic energy with respect to protons region 3 +wkrpn(5) wkrpn[5] kinetic energy with respect to neutrons region 3 +xinc xinc x-coordinate of incoming particle +esps esps escaping particle storage ::: +plvc plvc particle with velocity less than criterion +fcp fcp number of forbidden collisions for protons +fcn fcn number of forbidden collisions for neutrons +sf sf scale factor (subject to change) +rcpmv rcpmv reciprocal cm / MeV +sqnm sqnm nucleon mass squared +nor nor record number +nrt nrt number of files +gam gamma foton +pm pm pion or nucleon mass ::: +efrp efrp ferm energy for protons (MeV) +efrn efrn ferm energy for neutrons (MeV) +clsm clsm collision medium +crs crs cross-section +n n neutron +p p proton +d d deuteron +pi pi pion +pi+ pi+ positive pion +pip pi+ positive pion +pi- pi- negtive pion +pi0 pi0 neutral pion +pizero pi0 neutral pion +pi+- p+- charge pion +pin pi- negtive pion +nu N nucleon (neutron or proton) +N N nucleon (neutron or proton) +h h hadron +ce ce coulomb energy +r r uniform random number +alpfas alpfas x-direction cosine +betfas betfas y-direction cosine +gamfas gamfas z-direction cosine +k.e. kinetic energy kinetic energy +tke tke laboratory kinetic energy of the particle (GeV) +ncas ncas cumulative number of cascades completed +eke1 ek1 kinetic energy of incident particle (MeV) +efas efas kinetic energy of particles (MeV) +p p momentum +pz pz momentum ? +p0 p0 momentum of incident particle (GeV/c) +ncasca ncasca number of real collisions (non-hydrogen) +nevaph nevaph number of pre-equilibrium and evaporation neutrons in datahi +ncoutp(1) ncoutp[1] number of pre-equilibrium and evaporation (erupcem) neutrons +nevapl nevapl number of pre-equilibrium and evaporation o5r neutrons +nerupl nerupl number of evaporation (non-cem) o5r neutrons +cnhist cnhist total no. of histories +no5rca no5rca number of o5r neutrons from sub cascade +cneuav cneuav average number of o5r neutrons per history +wttot wttot total weight of o5r neutrons +wtav wtav average weight of o5r neutrons +edtotn edtotn average energy of o5r neutrons per history [MeV] +edo5r edo5r average energy per o5r neutron +------------------------------------------------------- + +nofas ::: number of as +itype intercation /initial ? type +e benergy or secondary nucleon [GeV/c] +etot total ? energy +et total ? energy +erem remainded ? energy +einc included ? energy +av. average +ang angle angle +wmass mass mass +es > es1 (because name clash) +tpmass tp ? mass +numnuc numberOfNucleus +x x-direction cosine +y y-direction cosine +direction cosine +pinc inc ? momentum +pt +itfas type of particle (same as above) +rands location of random number sequence +ratt[12] +dum[18] +v[161/126/19] +w[101/26/19] +x[161/126] +y[130/126] +z[176/127] +neutp fNeutronp? neutron p? datafile +revth real event +rands integer location of random number sequence +nobch End batch +neutno Neutrons produced in this batch +xtime cpu time [seconds] +num number of qevent or qheh collision number +nhist nhist +dimension itfas(2), efas(2), alpfas(2), betfas(2), gamfas(2) +dimension geosig(240) + +----------------------------------------------------- +// fortran to C++ stuff +//----------------------- + +removing LXX: + +hae return; +lisaa explisiittisesti hakevaan kohtaan, +poista parittaisete linkit + +// for (i = 2; i <= 4; ++i) { +// pnidk[i + 11] = pnidk[i - 1] * (univ + unive) + pnidk[i + 6]; +// pnidk[i + 14] = pnidk[i - 1] - pnidk[i + 11]; +// } + + for (i = 1; i <= 3; ++i) { + pnidk[i + 12] = pnidk[i] * (univ + unive) + pnidk[i + 7]; + pnidk[i + 15] = pnidk[i] - pnidk[i + 12]; + } +[1: add one to each index in loop. 2: reduce index by one in for definition] + +------------------- + +k = 19; +for (i = 3; i <= 11; i += 4) { + pxyz[i - 1] = col[k - 1] * univer + col[k + 2] * unive + col[k - 4] / * univ; + ++k; + } + +k=19 +do10i=3,11,4 +pxyz(i)=col(k)*univer+col(k+3)*unive+col(k-3)*univ +10 k=k+1 + +---------------------- +This: + 135 write(ioo,7125)ne + 7125 format(1h ,5hne = ,i5) + +generates: + io64.ciunit = ioo; + swsfe(&io64); + dofio(c1, (char *)&ne, (ftnlen)sizeof(G4int)); + ewsfe(); + +\end{verbatim} + +This is left from BertiniUtils.hh 29.7: + +\begin{verbatim} +static const G4double rcpmv (0.50613e11); + +G4double crdt[24]; + +//G4double pow(G4double x, G4double y) {return x ;} +//template T max(T x, T y){ if (x > y) return x; else return y;} + +void gomsor(G4int x[], G4double y[], G4double z[], + G4int nmed, G4double blz) {} + +void cole4() {}; +void pinst() {}; +void cangid() {}; +void alpha() {}; +void ecpl() {}; +void idk() {}; +void pstor() {}; +void angid() {}; +void alp19() {}; +void alp28() {}; +void dfmax() {}; +void store() {}; +void pfmax() {}; +void nn() {}; +void ccpes() {}; +void spcn() {}; +void erupcem( + G4double epart, G4int npart, G4double up, + G4double apro, G4double zpro, G4double apr, + G4double zpr, G4double erec, G4double uu, + G4int nopart) {}; +void ersue(){}; +// bertini data +G4double ppdc[6426]; // +G4double pndd[6426]; // +// rou20 data +G4double dcin[115]; +G4double dcln[80]; +G4double dchn[143]; +G4double pdci[60]; +G4double pdch[55]; +G4double locx[4][4]; +\end{verbatim} + + + +\section{Terms} + +\begin{description} +\item [N] nucleon (proton or neutron) +\item [h] hadron +\item [quasi-elastic cross section] The physical interpretation of the +quasi-elastic cross section is the following: besides the true +elastics scattering (often called {\em coherent-elastic} there are +contributions coming from interactions where the nucleus is no longer +left in the ground state, but still no elementary inelastic h-N +interactions accured. +\end{description} + +\section{APPENDIX / testing} %::: + +\def\DIRMANHETC{/home/miheikki/public/html/hetc/doc} +\def\HETCBACKGROUND{\AATOS/manHetcBackground.tex} +\typeout{input stuff} +%\input{\\HETCBACKGROUND} + +\emph{emphasized} + +\texttt{texttt} + +Phys. \ Journal + +space\quad quad + +space\qquad qquad + +A.~Heikkinen Section~1.2 + + +{\scshape hetc} + + +\textbar bar %| + + +\textbackslash backslash + +spelling made possible'Heik\-ki\-nen' + +1-2 1--2 1---2 + +\end{appendix} + +% End of file + +%::: extra material + +%\begin{figure} +% \begin{center} +% \leavevmode +% \mbox{\epsfxsize=12cm \epsfysize=15cm \epsffile{framework.eps} } +% \caption{Scematic diagram describing Helsinki trackfinder.} +% \label{hetc} +% \end{center} +%\end{figure} + +%From Fig. \label{hetc} we can see ... + +%\cite{heikkinenweb99} + + diff --git a/source/processes/hadronic/models/cascade/doc/manInucl.tex b/source/processes/hadronic/models/cascade/doc/manInucl.tex new file mode 100644 index 0000000000..ceb5ceeece --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/manInucl.tex @@ -0,0 +1,702 @@ +%\documentstyle[epsf,twoside,fleqn,espcrc2]{article} +%\def \AATOS {/afs/cern.ch/user/m/miheikki/public/html/} +\def \AATOS {/home/miheikki/public/html/} +\def \PIC {/afs/cern.ch/user/m/miheikki/public/html/inucl/doc/} +\def \PIC {/home/miheikki/public/html/inucl/doc/} +% put your own definitions here: +% \newcommand{\cZ}{\cal{Z}} +% \newtheorem{def}{Definition}[section] +% ... +%\newcommand{\ttbs}{\char'134} +%\newcommand{\AmS}{{\protect\the\textfont2 +% A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} + + +% declarations for front matter +%\title{HETC/INUCL++ manual - System for Modelling Hadronic Intranuclear Processes} + +%\author{Aatos Heikkinen, Nikita Stepanov +%\address{ Helsinki Institute of Physics, +%P.O.Box 9,\\ +%FIN-00014 University of Helsinki, Finland } +% } + +%\begin{document} + +%\begin{abstract} +%HETC/INUCL is a simulation package and a model of intermediate energy nuclear +%reactions. +%INUCL consists of cascade, fission models, pre-equilibrium, and evaporation +%This manual describes the models used in INUCL++. +%This documet works as an manual, status report and working document for INUCL project. In accordance with this, we represent results acieved with INUCL. Comparison with measurement is made. +%We also descripe staus of Geant4 installation on INUCL software \cite{titarenko99a}. +%\end{abstract} +%\maketitle + +\section{VOCABULARY} +\begin{itemize} +\item {\it NR} Nuclear reaction +\item {\it quasi-elastic reaction} NR where nucleon can be knocked out of its nuclear. +\item {\it T-nucleus} Target nucleus +\end{itemize} + +\section{INTRODUCTION TO INTERMEDIATE-ENERGY NUCLEAR PHYSICS} + + +Fig :::. Schematic nucleon structure. +The central nucleon is shown as collection of three constituent quarks interacting via the color force. +Closer views show a more complex picture. + +At higher energies ($~200~MeV$) energy is high enough to momentarily exite a nucleon into the exited dalta-resonant state ($\Delta$-resonance). + +\subsection{Classification of Cross-Sections of NRS} + +Let us denote an incident particle and a nucleus under investigation by the symbols $a$ and $A$, respectively. +Following final states following from $a + A$ are possible \cite{iljinov94}: + +\begin{itemize} +\item $a + A$ : elastic scattering +\item $a^{*} + A$ : scattering with an exitation of the $a$ particle +\item $a + A^{*}$ : scattering with an exitation of the nucleus +\item $a^{*} + A^{*}$ : scattering in which both the particle and the nucleus are exited +\item $a^{'} + A^{'}$ : reaction involving the production of a new particle and a new nucleus +\item $a^{'} + a^{''} + A^{'}$ : reaction involving the production of two new particles and a new nucleus +\end{itemize} + +\subsection{Quantum Formulation of Collision Problem} + +\subsubsection{Reaction Channels} + +Consider a collision of two complex particles. ::: \cite{iljinov94} + +\subsubsection{Transition Probabilities and S-Matrix} + +In accordance with general priciples of quantum theory, the probability + ::: \cite{iljinov94} + +\subsubsection{S-Matrix and Cross-SectionsScattering Amplitude} + + ::: \cite{iljinov94} + + +\subsection{Nuclear Structure Phase Diagram} + +THe atomic nucleus with its $A$ nucleons is governed by a large number of degrees of freedom. + +\subsection{Nuclear density} + +Nuclear charge densities are usually well described using present-day effective two-body forces; it is also clear that saturation of the charge dencity indeed occurs. +The central density barely varies when the nucleon number changes. +\subsection{Nuclear radius} + +\subsection{Mass formula} + +A parametrization of the nuclear binding energy in the groud state, +was first discussed by Bethe, Bacher and Weizs\"{a}cker. +Parametrization conatains volume, surface, Coulomb and symmetry correction terms (we neglegt here typical shell model correction terms) and reads + +$$B(E, A) = a_{\nu} A - a_{s} A^{2/3} - a_{c} Z(Z-1)A^{-1/3} -$$ +\begin{equation} + a_{A}\frac{(A-2Z)^2}{A} +\end{equation} + +Nuclear charge radius turns out to be a rather well-defined quantity. + +\subsection{Symmetry consepts in Nuclear Physics} +The nuclear two-body force obeys quite a large number of basic invariances. +Forexample invariance under interchange of the spatial coordinates, translation invariance, Galilean invariance, space reflection symmetry, time reversal invariance, rotation invariance in coordinate space and rotation invariance in charge space (isospin). + +The symmetry consept (1932) of isospin symmetry, +describing the charge independence of the nuclear forces by means of the isospin consept with the SU(2) group as the underlying mathematical group was suggested by Heisenberg. +This (simplest of all dynamical symmetries) expresses the invariance of the Hamiltonian under the exchange of all proton and neutron coordinates \cite{heyde98}. + +\subsection{Quantum effects} + +On the level of the nucleons themselves, invariance of the total nuclear wave functions under the exchange of identical nucleons affects the possible models realized. +The Pauli principle implies antisymmetry for the total fermionic wave function and this has very definite consequences for the types of collective motion that can be set up inside the nucleus. + + +\subsection{INC-Model} + +Widely used semiclassical miscroscopic description of a collision between a particle and a nucleus, +was proposed by Serber \cite{serber47} and Goldberger \cite{goldberger48}. + +\section{INTRODUCTION TO INUCL} + +\subsection{BACKGROUND} +Originally the INUCL code was published in 1983 \cite{stepanov}. +This code, written with Fortran has been used in [:::] \cite{:::}. + +Comprison of results between INCUL and LAHET, CEM95, HETC, CASCADE, +YIELDX, and ALICE code are presented in Refs. \cite{titarenko99a}. + +Year 2000 a aroject to implement INUCL into Geant4 hadronic physic +module using C++ wal launched. + +New now works also as standalone c++ software called INUCL++. + +\subsection{SUMMARY OF INUCL MODEL FEATURES} +\begin{itemize} +\item Originally INUCL was designed as a particle - nucleus interaction simulation block for the particle - target interaction simulation program PHOENIX. It produces an exclusive approach to simulating events with reasonable performance. +\item INUCL is based on N. Stepanov Ph.D. thesis, ITEP, Moscow, 1990. +Also, contribution Vladimir D. Kazaritsky. +\item Now we have standalone F77 based INUCL code and INUCL++ written in C++. +INUCL++ is now written using Geant4 coding style and integration to hadronic models in in progress. Problem: speed is five times slower. +\end{itemize} + +\subsubsection{INUCL models} +\begin{itemize} +\item Intranuclear cascade +\item Precompound decay (exiton master equation) +\item Evaporation (Weisskopf - Ewing) +\item Fission (phenomenological model, incorporating some features of the fission statistical model) +\end{itemize} + +\subsubsection{Particles treated} +\begin{itemize} +\item Range of targets allowed arbitrary. +\item Range of projectiles allowed p, n, pi and nuclei. +\item From a few Mev to 10 GeV for n, p, pi and up to about 100 MeV / nucleon for nuclei. +\end{itemize} + +\subsubsection{Cross sections} +\begin{itemize} +\item Total inelastic cross section has to be taken from outside to normalize all data. +\item Total reaction cross-sections [mbarn] were calculated by J.R. Letaw's formulae + +%$45 A^0.7 (1+0.016 sin(5.3-2.63 log10(A)))^(1-0.62 exp(-E / 200) sin(10.9 E^(-0.28)))$ + +\item Ref.: S. Pearlstein, The Astrophysical Journal, 346: 1049-1060, 1989 November 15 +\item Fermi energy calculated in a local density approximation. +\end{itemize} + +Nuclear density distribution are derived from the Re(Vopt( r)) distribution. In cascade part, nucleus is divided into a finite number of zones with constant density. + + +%nuclear radius parameterization: By the definition R(A) is derived from eq. Den(R(A)) = 0.01*Den max +\subsubsection{Nucleon nucleon cross-sections} +\begin{itemize} +\item Parametrizations based on the experimental data (ED) are used. +\item They are energy and isospin dependent. +\item The parameterizations described in ([1] Barashenkov V.S., Toneev V.D. High Energy interactions of particles and nuclei with nuclei. Moscow, 1972 +%(in Russian, but there is an English translation)) are used. + +\item Pauli exclusion in the INC: Simulated particle-particle interaction is accepted only for secondary nucleons which have $E_n > E_f$. + +\item Nuclear density effects are recalculated after each step + +\item Cascade is stopped when all the particles, which can escape the nucleus, do it. Then conformity with the energy - conservation law is checked and the given event is accepted, if $E_{exitation} > E_{cut} \approx $a few $MeV$. + +\item For nucleons binding energies are calculated using mass formula. For pions Vopt is taken to be constant (about 7 MeV). +\end{itemize} + +%What criteria for p-h excitation? is the next phase precompound or compound'? Only pions. The next phase is precompound. Initial conditions are defined during the cascad phase: p -number of "particles", i.e. nucleons, which can not escape the nucleus and have too small interaction probability; h - number of "holes" = number of nuclear nucleons involved in the cascade; energy - momentum of the exiton system derived from the conservation law. + +\subsubsection{Precompound phase} +%, describe the PE model used, parameters, i.e., partial state densities, transition rates? +\begin{itemize} + +\item Main parameters are taken from (Ribansky I. et al, Nucl.Phys.,1973, A205, p.545 (level densities); Kolbach.C., Z.Phys.,1978, A287, p.319 (matrix elements)). +%(Only N -> N, N -> N + 2, N -> N -2, N -> N - 1 channels are treated.) +\item The angular distribution is isotropic in the frame of rest of the exiton system. +\end{itemize} + +%Describe parameters used: level densities, inverse cross-sections or transmission coefficient, choice of optical model parameters if relevant (or reference to source), range of excitations allowed, inclusive or exclusive results? Weisskopf-Ewing evaporation in competition with fission. Emissions of n,p,d,t,He3,He4,gamma is allowed. Level densities derived from exp.data are used. Angular momentum and spin dependence are not included. Other parameters are the same as in ([1], see 5a.) Fermi breakup is allowed onlyin some extreme cases, i.e. for light nuclei and E(exitation) > 3.*Eb. Only the total nuleus decay into neutrons and protons is treated. + + +\begin{verbatim} +particles p, n, pi, D, T, He3, He4,\gamma +(INUCLN with neutrino 31.3.98) +pion aborption +interaction crosssections +(all data for (N, N) and (pi, N) interactions (dn/dsigma, d3sigma/d3p, + partial multiplicity for npi<=5 error 10-20\%) +pre-equilibrium exiton model +\end{verbatim} + +\section{INUCL MANUAL PAGES} + +\subsection{Reaction initial state simulation} +\subsubsection{Projectiles and enery range of model} + +The GEANT4 INCUL model is cpable to predict final states ::: + +The allowed allowed bombarding kinetic enery is recommended to be more than +$20~MeV$ in the laboratory frame. +The upper limit of initial kinetic energy is approximately $10~GeV$. + +\subsubsection{Nucleus initialization} + +\begin{itemize} +\item {\bf Nucleon radii}: +\item {\bf The initial momenta of the nucleons}: +\item {\bf Nucleon binding energy}: +\end{itemize} +\subsection{Random choice of the impact parameter} + +The impact parameter $b$ is randomly selected according to +\subsection{Hadron propagation} + +\subsection{Selection of particle collisions and particle decays} + +\subsection{Hadron interation cross sections} + +\subsection{Hadron collision simulation} + +\subsubsection{Two-body hadron scattering} +\subsubsection{Angular distribution of two-body hadron scatterings} +\subsubsection{$\pi$-absorption simulation} + +\subsection{Resonance decay simulation} + +\subsection{Phenomenological potentials} +\subsubsection{The nucleon potential} + +\subsection{Pauli blocking simulation} + +\subsection{Residual nucleus parameters in the hadron-nucleus collision} + +\subsection{Calculation of a residual nucleus exitation energy} + +\subsection{Staus of this document} +8.6.02 created by A. Heikkinen + +\section{INTRANUCLEAR CASCADE MODEL} + +\subsection{NUCLEON DENCITY IN THE ATOM} + +Halo nucleus such as $^{11}Li$ are not modelled. + +\subsection{IMPULSE DISTRIBUTION} + +\subsection{DISTRIBUTION OF POTENTIAL ENERGY} + +\subsection{QUANTUM EFFECTS} +Pauli exclusion principle + +\subsection{DESCRIPTION OF INC} + + +\section{FISSION} + +\section{PRE-EQUILIBRIUM} + +\section{EVAPORATION} +Exited nuclei cools further trough the emission of gamma radiation. +If simulation is detailed, +the emitted gamma rays contain information about the cooling route +and region the nucleus is passing trough. + +\section{FROM INUCL TO INUCL++} + +\subsection{DESIGN AND ANALYSIS} +We desided to make separate INUCL++ implementations one as an stand +alone with spesific cross-section data and particle definition, and +another iplementation that re-uses Geant4 classes. +So, requirements for the INUCL++ came mainly from Geant4. +Coding style and organization should follow those used in Geant4. + + +Interace-classes to Geant4 hadronic models define the separation of +cascade, fission, pre-equilibrium, and evaporation. Thus INUCL++ +implementation in Geant4 consists of four separate modules. + +\subsection{IMPLEMENTATION} + +\subsection{TESTING} +Extensive testing ::: + +Speed comparison ::: + +\section{INUCL++ AS A STANDALONE PROGRAM} + +\section{INUCL++ IN GEANT4} + +\section{RESULTS} +We have rewritten INUCL into C++ and tested the performance. +Here we combine INUCL models and HETC INC. + + +We give here summary of results. Each configuration consists of N=1000 events simulated with same energy etc. parameters. + +\subsection{Particle multiplicities} +Multiplities for collisions between $p$ projectile ( $0.5~GeV< E <5.0~GeV$) and aluminium $Al$, iron $Fe$ and lead $Pb$ tragets (at rest) are listed in Figs. \ref{pAlMultiplicity} - \ref{pPbPionMultiplicity}. + + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pAlMultiplicity.eps} } + \caption{Particle multiplicities for $(p, ^{27}Al$).} + \label{pAlMultiplicity} + \end{center} +\end{figure} + + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pFeMultiplicity.eps} } + \caption{Particle multiplicities for $(p, ^{56}Fe$).} + \label{pFeMultiplicity} + \end{center} +\end{figure} + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pPbMultiplicity.eps} } + \caption{Particle multiplicities for $(p, ^{82}Pb$).} + \label{pPbMultiplicity} + \end{center} +\end{figure} + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pPbPionMultiplicity.eps} } + \caption{Pion multiplicities.} + \label{pPbPionMultiplicity} + \end{center} +\end{figure} + + + +\subsection{Particle energies} + +Figs. \ref{pPbProtonEnergy} - \ref{p500MeVPbProtonEnergy} give an summary of cascade products energy-levels. + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pPbProtonEnergy.eps} } + \caption{Average proton energies.} + \label{pPbProtonEnergy} + \end{center} +\end{figure} + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pPbNeutronEnergy.eps} } + \caption{Average neutron energies.} + \label{pPbNeutronEnergy} + \end{center} +\end{figure} + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC pPbNucleonExitation.eps} } + \caption{Average nucleon exitation energy.} + \label{pPbNucleonExitation} + \end{center} +\end{figure} + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC p50MeVPbProtonEnergy.eps} } + \caption{Proton energy spectrum, when projectile particle (p) had an energy of $0.05~GeV$.} + \label{p50MeVPbProtonEnergy} + \end{center} +\end{figure} + + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC p500MeVPbProtonEnergy.eps} } + \caption{Proton energy spectrum, when projectile particle (p) had an energy of $0.5~GeV$.} + \label{p500MeVPbProtonEnergy} + \end{center} +\end{figure} + + +\bibliographystyle{unsrt} % Options plain, unsrt, alpha, abbrv + +%\bibstyle{plain} + +%\begin{thebibliography}{99} +\bibliography{\AATOS texts/references/references.bib} +%\end{thebibliography} + +\begin{appendix} + +\section{PROJECT plan} +\begin{itemize} +\item we will continue testing INUCL++ against previous verison. +\item we reorganize the code is sutch mannet that integratin to Geant4 + is smooth +\item before year 2002 will provide INUCL++ as a stanalone program, +or as an hadronic cascaded modules +(INC, pre-equilibrium, evaporation, fission) in Geant4. +\end{itemize} + +\section{UML DIAGRAMS} +Preliminary suggestion for Inucl class interface to Geant4 cascade, pre-equilibrium +and evaporation modules. + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{\PIC cascadeUml.eps} } + \caption{General class structure for Inucl INC model.} + \label{massPb} + \end{center} +\end{figure} + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{preEquilibriumUml.eps} } + \caption{General class structure for Inucl pre-equilibrium model.} + \label{massPb} + \end{center} +\end{figure} + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{evaporationUml.eps} } + \caption{General class structure for Inucl evaporation/fission model.} + \label{massPb} + \end{center} +\end{figure} + +\section{DOWNLOADING INUCL++} +INUCL++ is downloadable from INUCL homepage at +http://cern.ch/aatos.heikkinen/inucl + +\scriptsize +\begin{verbatim} + +\end{verbatim} +\normalsize + +\section{OVERVIEW OF GEANT4 INUCL ACTIVITIES 2001-2002 } + +\subsection{General} +Inside LHC Programme Software and Physics project Geant4 activities are under catecory {\it Simulation and event recosntruction}. +In 2001 HIP joined as participating institute the worl wide Geant4 collaboration with the major responsibility for development and maintenance of the nuclear evaporation and intra-nuclear cascade processes. +Two major codes HETC and INUCL are to be implemented and developed for Geant4 hadronic processes. + +The conversion of the hadronic evaporation processes of HETC code to Geant4 was completed in 2001 and good progress was made in the Object-Oriented implementation of the intra-nuclear cascade processes. + +For another important nuclear Maonte Carlo code, INUCL, an object oriented model was prepared, containing models for intra-nuclear cascade, pre-equilibrium state, fission and evaporation. + +Year 2002 started with implementation of INUCL++ as a standalone software. +A preliminary version of architecture using INUCL++ intra-nuclear model. It also integrates HETC cascades and utilites Geant4 hadronic models frameworks. + +\subsection{ABOUT GEANT4} +Geant4 represents one of the largest and most ambitious projects of geographically-distributed software development and large-scale object-oriented systems. + + +\subsection{COLLABORATION TSB AND CB WORK} + +In 2001 HIP joined as participating institute the worl wide Geant4 collaboration with the major responsibility for development and maintenance of the nuclear evaporation and intra-nuclear cascade processes. + +Our contribution in TSB and CB will be focused in near future to initiatives and coordination of hadronic cascade framework inside Geant4 hadronic framework. + +\subsection{INCUL} + +\subsubsection{INTORODUCTION TO INUCL} +INUCL++ is an object oriented implementation of Monte Carlo transport code INUCL for computing the properties of high-energy hadronic cascades in matter. +The functionality of INUCL++ is divided into intranuclear cascade, pre-equilibrium, fission, and evaporation parts. + +The stand-alone version INUCL++ is comparable to codes such as HETC and LAHET \cite{titarenko99}. + +\subsubsection{INUCL++} +We have made independent version INUCL++ using OO methods. + +Architecture of INUCL++ intra-nuclear model plays an important role in our Geant4 work, since we use it also for HETC cascades modelling and as an platform to form a general framework for cascading model. + +\subsection{PLANS FOR YEAR 2002} + +\begin{itemize} +\item INUCL cascade model introduced to Geant4 + +\item We also aim to have significant progress on pre-equilibrium, fission models. +\end{itemize} + +\begin{figure} + \begin{center} + \leavevmode + \mbox{\epsfxsize=8cm \epsffile{massPb.eps2} } + \caption{::: Pb from 1 GeV .} + \label{massPb} + \end{center} +\end{figure} + +\subsection{HIP Geant4 activities 2001-2002} + +General: +\begin{itemize} +\item In 2001 HIP joined as participating institute the world wide Geant4 collaboration +\item Responsibility for development and maintenance of the nuclear evaporation and intra-nuclear cascade processes. +\item Two major codes HETC and INUCL are to be implemented and developed for Geant4 hadronic processes. +\end{itemize} + +Research activities: +\begin{itemize} +\item Participation to Geant4 TSB and CB meetings +\item The conversion of the hadronic evaporation processes of HETC code to Geant4 was completed in 2001 +\item Good progress was made in the Object-Oriented implementation of the intra-nuclear cascade processes + +\item An object oriented model of INUCL was prepared, containing models for intra-nuclear cascade, pre-equilibrium state, fission and evaporation +\item Implementation of INUCL++ as a standalone software was finalized + +\item Prototype for cascading framework was prepared using experience gained from INUCL OO design +\end{itemize} + +Future plans: +\begin{itemize} +\item INUCL cascade model introduced to Geant4 +\item Fully integration of HETC intra nuclear cascade -model and Geant4. +\item Significant progress on HETC and INUCL pre-equilibrium and fission models. +\item Introduction of general cascade framework to Geant4 hadronic models +\end{itemize} + +\section{SAMPLE RUN RESULT} +\scriptsize +\begin{verbatim} +Number of events 100000 + average multiplicity 21.5523 + average proton number 3.53569 + average neutron number 14.5048 + average nucleon Ekin 0.0321547 + average proton Ekin 0.0848587 + average neutron Ekin 0.0193075 + average pion number 0.3036 + average pion Ekin 0.132491 + average pi+ 0.1165 + average pi- 0.058 + average pi0 0.1291 + average A 126.891 + average Z 53.1615 + average Exitation Energy 0.0258312 + average num of fragments 1.69988 + fission prob. 0.0117 c.sec 20.592 + ===================================================== + ********** Izotop analysis ****************** + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + **** izotop Z **** 0 + A 1 exp.cs 33520 err 12.4 + sim. cs 30536.4 err 23.1827 + ratio 0.910989 err 0.000769346 + simulated production rate 17.3502 + A 0 exp.cs 217.4 err 1.22 + sim. cs 256.749 err 2.12574 + ratio 1.181 err 0.0118124 + simulated production rate 0.14588 + not found in simulations 0 + not found in exper: 0 + simulated production rate 17.3502 + simulated production rate 0.14588 + matched 2 CHSQ 58.3536 + raw chsq 13620.6 + average ratio 1.04599 err 0.00629088 + lhood 1.14436 + exper. cs 33737.4 err 13.62 + inucl. cs 30793.1 err 25.3085 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + **** izotop Z **** 1 + A 1 exp.cs 7645 err 6.08 + sim. cs 6801.24 err 10.9408 + ratio 0.889632 err 0.00159645 + simulated production rate 3.86434 + A 0 exp.cs 109.4 err 0.96 + sim. cs 226.195 err 1.99525 + ratio 2.0676 err 0.0257258 + simulated production rate 0.12852 + not found exper.: A 2 exp.cs 658.7 err 4.2 + not found exper.: A 3 exp.cs 338.6 err 3.1 + not found in simulations 2 + not found in exper: 0 + simulated production rate 3.86434 + simulated production rate 0.12852 + matched 2 CHSQ 40.3162 + raw chsq 6501.58 + average ratio 1.47862 err 0.0136611 + lhood 1.68244 + exper. cs 8751.7 err 14.34 + inucl. cs 7027.43 err 12.9361 +\end{verbatim} +\normalsize + +\section{WORKING DOCUMENT} +\subsection{15.7.2002} + +\subsection{11.7.2002} +Now platform is ready. G4 and subcodes are organized and compiles. It is time to do actual interface. +Plan for today work 13-15 and 17-20. Build solid understanding of interface. And build it using tests. +\begin{itemize} +\item to do: ApplyYout self seciton CascadeInterfaceen, koncretic conversion between system nucleust and particles, study more interfacing, write towards working interface +\item KineticTrack is starting point for us. +\item Study G4VIntraNuclearTransport (base class G4HadronicInteraction, G4KineticTrack, G4VParticleChange, G4ReactionProductVector) class. And kinetic model. G4TheoFSGenerator steers the collaboration between hadronic generator and intra-nuclear transport +\item Methods in CascadeInteface : {\tt G4VParticleChange* ApplyYourself(const G4Track\& aTrack, G4Nucleus\& theNucleus); + G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus);} G4ReactionProductVector ok also for G4VParticleChange +\item For use of ApplyYourself see G4PreCompoundModel +\item +\end{itemize} + +\subsection{10.7.2002} +\begin{itemize} +\item {\bf}: localised files (inucl cascade code at {\tt html/inucl/inucl++/demo}, +hetc code at {\tt html/geant4/geant4/source/processes/ hadronic/models/cascade/cascade}, +documentation {\tt html/inucl/doc}). +There is also another g4 version at {\tt html/geant4/geant4.3.1 }) +\item studied g4 hadronic cascade interface. +\item {\bf all code and documentation in one place} {\tt html/geant4/geant4/source/processes/ hadronic/models/cascade/cascade} +\item general plan: {\bf thursday} put cascade code to g4 installation (+), make compile (+), study interface structure (+), make small testing (+), +{\bf friday} create real interface, +{\bf sunday} create inteface, and test basics (modify test13 hadronic testing) +{\bf monday morning at 8} co g4 at cern, pack {\tt hadronic/models/cascade}, replace cascade files, add new ones, and commit. Mail hpw. Start holiday at 10 am. +\item cascading basic structure: {\tt G4Collider (base), +G4ElementaryParticlCollider, +G4IntraNucleiCollider (:G4Collider, has G4ElementaryParticlCollider, ), +G4NucleiModel (initializes cascade,zones, boundary trasitions, fermi energy, density, potential), +G4InucleNuclei/G4HETCNuclei (A, Z, kinetic energy, mass formula, exiton configuration) } +\item change G4vector to vector: +\item {\tt G4InuclCollider} does the lining of different models inside collision with method command {\tt collide(bull, targ)} +\item {\tt G4IntraNucleiCascader} does the actual cascading. I starts by setting elementary particel cascader {\tt G4IntraNucleiCascader* incascader-> setElementaryParticleCollider( G4ElementaryParticleCollider*)} +\item The actual cascading is then done: {\tt theIntraNucleiCascader-> collide(\&nbullet, \&ntarget);} +\item finally, laboratory frame change, and some other organizational things happen +\item g4 inc base class is defined in models/generator/ management/include/ G4VIntraNuclearTransportModel.hh +\item INC model is set by G4TheoFSGenerator (: public G4HadronicInteraction) by method: {\tt void SetTransport( G4VIntraNuclearTransportModel *const value);} + +\end{itemize} + +\subsection{10.6.2002} +\begin{itemize} +\item {\bf compilation}: made compilation faster (now takes 45 seconds) by tunig compiler setting and include-statements +\item {\bf sample run}: result from original C++ test are saved to this document as sample run. +\item {\bf compilation}: fixed writing errors, so code now compiles +\item {\bf manual pages}: tempalte for manual pages copied to this document from GEANT4 ninematic model manual +\end{itemize} + +\subsection{7.6.2002} +\begin{itemize} +\item {\bf document template}: Added new style and collected material to this documet. Rethinking chapter organization. +\item {\bf picture rezise}: {\tt convert x.ps x.eps2} +\item {\bf new references}: Some text added fron new sources +\end{itemize} + +\end{appendix} +%\end{document} + +% end of file + + + + diff --git a/source/processes/hadronic/models/cascade/doc/massPb.eps2 b/source/processes/hadronic/models/cascade/doc/massPb.eps2 new file mode 100644 index 0000000000..1e5a0e00b9 --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/massPb.eps2 @@ -0,0 +1,990 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%Title: (massPb.eps2) +%%CreationDate: (Fri Jun 7 19:35:28 2002) +%%BoundingBox: 0 0 611 791 +%%LanguageLevel: 2 +%%Pages: 0 +%%EndComments + +%%BeginDefaults +%%PageOrientation: Portrait +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/buffer 512 string def +/pixel_stream currentfile /ASCII85Decode filter def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + colorspace 0 eq + { + /DeviceRGB setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 8 + /Decode [0 1 0 1 0 1] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { /DataSource pixel_stream /RunLengthDecode filter } ifelse + >> image + } + { + /DeviceCMYK setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 8 + /Decode [0 1 0 1 0 1 0 1] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { /DataSource pixel_stream /RunLengthDecode filter } ifelse + >> image + } ifelse +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % colors: number of colors in the colormap. + % + currentfile buffer readline pop + token pop /colors exch def pop + colors 0 eq + { + % + % Image is grayscale. + % + /DeviceGray setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 1 + /Decode [0 1] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { + /DataSource pixel_stream + << + /K -1 + /Columns columns + /Rows rows + >> /CCITTFaxDecode filter + } ifelse + >> image + } + { + % + % Parameters: + % colormap: red, green, blue color packets. + % + /colormap colors 3 mul string def + currentfile colormap readhexstring pop pop + [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace + << + /ImageType 1 + /Width columns + /Height rows + /BitsPerComponent 8 + /Decode [0 255] + /ImageMatrix [columns 0 0 rows neg 0 rows] + compression 0 gt + { /DataSource pixel_stream } + { /DataSource pixel_stream /RunLengthDecode filter } ifelse + >> image + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % colorspace: 0-RGB or 1-CMYK. + % compression: 0-RunlengthEncodedCompression or 1-NoCompression. + % hex color packets. + % + gsave + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Helvetica findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /colorspace exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse + grestore +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 611 791 +userdict begin +%%BeginData: +DisplayImage +0 0 +612 792 +12 +612 792 +1 +0 +0 +144 +ffffff +787878 +4b4b4b +585858 +393939 +474747 +484848 +666666 +bbbbbb +8a8a8a +414141 +eeeeee +999999 +333333 +000000 +222222 +555555 +888888 +777777 +444444 +cccccc +aaaaaa +111111 +dddddd +303030 +3b3b3b +171717 +2e2e2e +202020 +707070 +292929 +535353 +7b7b7b +252525 +595959 +2d2d2d +131313 +080808 +282828 +383838 +686868 +dfdfdf +afafaf +767676 +323232 +505050 +cfcfcf +050505 +101010 +0d0d0d +858585 +7f7f7f +5b5b5b +5a5a5a +181818 +8f8f8f +1e1e1e +0e0e0e +646464 +626262 +404040 +3e3e3e +969696 +262626 +7d7d7d +0c0c0c +949494 +2a2a2a +bfbfbf +828282 +141414 +434343 +717171 +040404 +b1b1b1 +4a4a4a +161616 +3f3f3f +464646 +191919 +272727 +525252 +606060 +070707 +1f1f1f +313131 +0a0a0a +232323 +0b0b0b +1b1b1b +0f0f0f +010101 +020202 +1c1c1c +373737 +6f6f6f +6e6e6e +4d4d4d +848484 +030303 +2f2f2f +060606 +151515 +6d6d6d +9f9f9f +747474 +3c3c3c +121212 +242424 +b3b3b3 +2c2c2c +616161 +818181 +090909 +a7a7a7 +545454 +a3a3a3 +5c5c5c +515151 +353535 +3a3a3a +1a1a1a +424242 +1d1d1d +4e4e4e +696969 +a6a6a6 +363636 +3d3d3d +8e8e8e +d1d1d1 +959595 +494949 +797979 +343434 +4f4f4f +989898 +838383 +2b2b2b +727272 +7c7c7c +c0c0c0 +a4a4a4 +212121 +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLo5!s!!!;q!!!;r!!!;q!!!;r!!!; +q!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!! +!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!;q!!!;r!!!>r!!!;r!!!;q +!!!B$!!EoJ&I8dD!!EuN&e>T7!!*B3o)Jas_uKcC_uKcC_uKcC_uKcC_uKcC_uKcC_uKcC_uK +cDdf9@Mp](:"p&G(,irB)d#kJ#r$,cfD#fH]C#fH]C#fH]C#fH]C#fH]C#fH]C#fH]C$.AkS" +8)Wt$O7FW%hdb"!=9&'!!!>D!!!;C!!!;C!!!;C!!!;C!!!;C!!!;C!!!;C!!!>S!!!,o!!WZ +;(B>6b'&W`j#mc+_JcLB&JcO-t!!Dlo!=fqF!!*H;huEca#_E&.!.k3&!9jI`$g@Wk"8)Wp%L +`79!=KCq!!*B3JcLB&JcLB&l2Ui$&*X&o"8)Wu&dK3Q(C(W3!!*B3JcLB&JcLB&l2Ukj&e+%* +!!Durp^R9;huEca#_E&.!.k3&!:'Ue(C'pRl2Uedbl@bN#_E&.!.k3&!:'Uf#8[aV%-mln"3g +fH#mc+_JcLB&JcP-;"UbkS(_R)>!!!,G!!*B3JcLB&JcLB&lMq)&&JbWX$g[in"8)Wo#Q#"h! +!*B3JcLB&JcLB&lMq%m((qAqlMpneo`,"&'\`Tg#mc+_JcLB&JcP'9!Yu:Xl2Uedo`+t-g&M- +[#_E&.!.k3&!:'Ue'F+mTl2Uedo`,")'&*Be#mc+_JcLB&JcP*:!"8c+!"8)m!!Dlo!"\r:hu +Eca#_E&.!.k3&!71]G"8)Wp%M[Xt!=9$`!.k3&!.k3t!!!,o!!!eg!!*B3JcLB&JcLB&ci=%J +o`,")'&*Be#mc+_JcLB&JcO-t!!Dlo!#,5>huEca#_E&.!.k3&!71]G"3gfH#mc+_JcLB&JcO +-t!!Dur!='G9!!*?JcP'9"9 +TYQ*YI] +!!`lF'EAaG#7U5)"V;+N!"fb@!!3cB%K6>9%gW.O%2&XP%1<.J&,lP1&e,M!!! +N*!!WZ.%KHJ='E.t6%KHJ=rW!$4%fd)k!9X=c(C^``'b]d3!!Dlo"qh@N!#H(Wo`,=8&e4mA# +8."E#8$V0!=9$`!;ZZq')E(<'(l5)%f?;X&I/:A'*&"G&e5H\!"9VY$ig8@&ePcW!##tT&eYZ +e!!!EC((:0C'+tcf!<*J=!!N`D'G:WZo)Je$'`J(F&dn[>%hocq!!!K:!!!95!"K_B!"'>H!! +!ND()HrN%fQG2'Fb$B%f659'bp]Y!!!KA&c_nA!!!N-!!3W1%Y=]D!!EiA&f25G!!!,o!!*Q8 +rVus8&+]c'%KHJErVus8%efr(#mc+_q>^L.q@3K\!%/6V!#HC`&c +_nE&c`CA!"Ju/%KHJ=!!!K/&eY0E&eY0S!!!K/!"QO>#Rh=Y((Llg&f:3@!"Si*":#P>'bC9D +"r%X\((:0Qq>^a*&c`XW!!!N-!!<]2!"Sl+%2&X@%KHJ=!!j5<%KHM-%Kd=D!"OS\k5YPg$kh +q-!"8]1!$Ck6!=onD!!*?@o)K%+!!!cK!!!fGpAb4##_E'Q!!!Z.%KI.7!!!N+!!3rI&cMb1% +fQG/%MJ^M&/"sQ!!!K/!"Ju/%KHJ=!##5?#SI+I!!!K/!"QI<":#>J',:$ZLN!!^L.q@3K7!"Ju/%_)KC#7LSF$PO6H!!j,I$NL +GC!#6%D!"oML'b(NN!#,kB&.f3L#S-nM&,lP:#8."H!!!B9&c_nAqu?^0rW!<9!!!K/!"0;I! +!!N+!!!L\!6P9A"7uQr&J#?^'(Q#-%KHJ:&.THgp&G+"#_E'Q!!!Z.%KI.7!;m<\'+toX#SR1 +<%LimZ$NLeL%MAaA%KHJ=!!!K/!"Ju/%KHJA%Ls*O!"Ju/%KHJE%CuNF#7LS4&c`:Q'_MG3'F +tZ`',1EO&cMbC#S-nJ((Lff'EAgX%Ls-d!!a,8!!3E:!'S6>=!!!L\!.k3&!;um"(C19gbl@bN#_E'/!!!L\!.k3&!;ZZq"3gfH#mc+_q +>g:'o`,4)#7_4W'EA.2%Kd=D%Li=:!>Q+?!!!M&!!E]A'+u,R!!*]DrW!*:%0-k!<*H8((pTI#S.:C!!a-g!2TYq"8)Wu$O71P'G:f3!!*B3JcPWI!##,.!#"r)#S7FQ!"f_A!" +Sl+!=fA6!"'>K!#H(T%MfWV%\`q-&eP*D(D%;R!"0/M#QOi8'EAUC!"Sl+!"So,%1W@<$P3mM +!"onE#S.;p!2TYq"8)Wu#7VCX$P3s/!!*B3JcPWI!##,.!#"r)!=fhC!!pW0(&S%4'+=I5$4IFF&eY0E%KHJ=qZ$U+qu?^,rW!3<%0-A9%i#T\J +cMSH!!Dlo"qDFL%KHkPhuEca#_E'Q!!!Z.!!!Z)!!!N*!;m<4#QP>C$ih"N%f?;2&dJCH$PNo +F!!!T-!!*fCoDf.+&e,3K!"Ju/r!ic6!"So,!"Sr-!"Su.!XKPSJcNOc!"7oh!!Dlo"qCV5%K +HJ=huEic#m_5s!;lfs')DS.'(l5)%f-/*%f651%LWgJ#8[mL!!a5L&c_nA%2G]>!#,50!=0>1 +!!3E9#lXf+%KHJ=qZ$U+qu?^,r;Zg-rW!!7((u3!^]4BC%I!ip(C19go`,10&HE:@$k;+p!=9 +$`!;ZZq')DS.'(l5*()QrM!ttq?%f656%KI.M'*&LB!!a&OrW!!0$kK07!"f#-!>Q%7!!!N-! +!<]2!"Sl+!"So,!"Su.#S[dL!"0;R%2FHp_#ONL#7Tbq!!Dlo"r%g^%MKTlhuEca#_E'Q!!!Z +.!!!Z)!!j,I$NLGC!!!N+!!s,8&J,QT%KHnKqu?g/!!a.6!!*]u%fHA0%KHJ=qZ +$U+qu@09!!!B9&c_nF&HEL\$\AAr!!"TT#4$PjPV!!`lF'`\4A&.J+0!"Sr-!Y,21r!i`@!5rq!5edA&dSI[+W;O4lMpnebl@bN#_E'Q!;I1Y!;-?,'dr;I!!Dur!='"b!!g;%i,o5!!*B3JcPNF!Z)Ugnc/Y"qZ$[3%MA[?!"Sr-!Y,21r!i`? +'Dr=?&u,F-#RBl""UbPF%MKQU!!3iE&cMb=#S.C\&c_n>#7_4W'`J(6'Fk`S!<*H/()$THr!i +]>O8oFs%20Bf$gI]q&e-9$$P;=u"<@sb!#"St!!Drq!t5qV(Y\oj#mc+_pAb7"'GBs:!"Sl+! +YPqOrVup.r;Zp0!!!N)!!!M%!!3]E'_25-&.K!I&J+j@!YPqOrW!?;#QPYM&c`IP$NLbLrW!! +4%1W::#S$h7$P3mM!"One":GtV'+=.,%LWj_&-sZq!##_J!!!Q!!!N+!!WrJ()HrN%fHA0%KHJ=q#CC)UAtB/$k`gC'(l5* +%M\mB&eYQP!"TbZ(B=FF$NL/4$igbOrW!9<$NL/;'G_Jb!"Su.";D:F!"One!uDI\'C,W+&/, +Wf$P3pa'bh/drY#21!Yc:\oDen+')hk4#S%.)!!!,n!!!Z0%c@Ti$NL/:q>^a +7%fchI!!!N-!!3W1!;m<,#`o#h'Gg``$iU,+(&S%3(&S%4'FXm?()7Gi'*f'b!"o8C'cdqf&e +k!>64@!!!N,!!``A!#6"E +!"Sr-!tG;2%f$))%\Wk*'*f3^(%VD*%f-/.#8."O&,lP5'G1ll$ige6!!``A!#6"E!"Sr-!tG +;2%YF`^((:'@!>?:K!"0/J&c`XZ(C(We$Om"7%1!RH'+bE\!"]hU'G))T!!jAQ&HEIE&eY]u'()QrM!ttq?(B"^E'F5-H!!EuO!#?CM!!K`Dl##7^tN$O +@@T&/#?N&dT+"&.fNf'+=[;$P3p_$P+$g&eGE]&bc84'b(Na&M"8#/.NK\!!!,r!!3oH#h]1Y +#mc+_q>^O4#Q+Q&&f:3@!"Sr-!>Q.E!!3!"P_'!>-.I!!*ZJoDf.2%h9'_'E +A@MrW!Q:%fd4X%Ls-d!#,qR%MKNV#8-q8!XK;:r=/f?rW)j+!#(:k'akQQ%hK6O&HE%R()Ibe +$Q^K.!X8r$!!'Fbd5%hT'['`\:k#TF`t#k@rr'+"R;'+tQ_1_C95&dJCJ#6P5F+>'c.Jq#80*V%LsT +E!!!,G!!*B3JcPKE!#L4eh>e&o#8RdY'`\4>%h9?f!!!N)!!!N)!!!:V!;c`u$PjKhrW!NC'+ +[2**<\MV-Ti/.%MfHf%IO30$PO'f#7qL_(C'p?!X9Z0*^:,?kPtSbbl@bN#_E'N!!3rI(\.P/ +%KHJ=#lXf+%KHJ=r;[07!!!B3%Ls-d!"One&.9-[$NLGJ#QPA@!#H(W!"Sf)!"Sf)!"OS\qZ% +QM$k![U!!!H?%6t.0.mXY-&J,-T'fca;(*,4#!"ot^!"9PL'+bNO!!`K(-9`de"6]^b"3gfH# +mc+_pAb7+#S?P,":bD3%MSgA!tG;2%fHA7%KHJ?%1<.J%fd)t!!*]@r;[01#QP>B!!!95!"Sr +-$O[1L#7^_6&e5Zh!<*H2!"obW&Wctm'^Yl7'EA+I&dp$&6:2+\6i[3>%Lj$Z'C>c)'c-iU'` +\4mr=T/H&e=()!!CIG!=9$`!;HNs&J5!T&b>u1%KHJ=&eY0E%KHJ=r;Zs1!!!KCrW!!4$P&'p +!#GA1#8.O['ak!A%fHA@#6tVB%KI+N$O[FE!"JuA%1c`r;[*/'+m5?/.N +:,qu?^5p&G+,#Q4W($k3UC!!*`Ck5YJabl@bN#_E'P!!*lIrVus1(\@\8%KHJ=!"B_E%KHJ=r +;Zp0!!!N+!!!M6!!!;b&c`@;!!Ec>!!!Z2%L<%7'G1ll$ige9!!F&F!!!N.!!NW:%KHJ=rW!! +*$kA[*!#5;1"VVP3',)#I!!+Jar;Zp2&c`49!"K\C'L`L$""Fra$O?_4#kn<$$k*@WrW!!)#S +R(9!>>q*!!!,G!!*B3JcPTH!>Q7H!!*]IoDf7/!!!K/#SR1J!!!N-!!<]2!"Sl+!"Q76!#"<% +!#,50!=]\?!!%ho!D&J"jA&.f3L#S-nFM?".m&.T0`'b^Q[((L +ff'EAXA!#-+\%Lj'O&f(rd%1iLT%2'Ed%1Nl>!!!<&%Kd=D!#5>@#87(;$O6Y?'Dqh1#l+r1' +E/"0%KI1A!!!]1%Kd/6/PZ-Q#8."E%2&X@'`J@H#q.`'#RF0V0HNCf''B5p"3gfH#mc+_pAb7 +0%i+X8!tG;2%fQG@&Ind@'FbN^&/5*E'FtZ`',1HF%KI/o!:Bgh(B=FLqu?^5SH&Wqr!ifA!! +!<&%LG5t#SInI:D43MrVup(q$mB3!#,8?!ru.k7f3`$&c`OM&.90[rW!-6$NLh? +'L2L*!#=Ys!!CIG!=9$`!;6Bm%"\J2!71]G#lG/7&c_n;r!iu`!"oeI3&qK^r;Zg'q$mK?'GL +rQ%KmFF$O[XG%KfR+;cNZ)(KEC*!!j31&c`V2%2'9e#8Re'(-OVe#j20f"3gfH#mc+_JcLB&_ +uKcCr!j;O!!!91&h48#!!!fN%P8;%&H)S/#l+r4'+5Hcr!j0#&JGie&e\)?5Sj3//LGG%Mi8R>q$0j&IB3_%h;nX8O5pQ%Lt,t#l>)A0G5'6%lRBG&HEIb&eYH5 +!!!,G!!*B3JcLB&JcNUe!!rQ(r!j,h;EeGq#RChO&lK>Tr;\2W'K]_X,82d@&n3CH,7ZA:>@S +.&%8eM`().Gm2?5^80+LPn%Nc)V%LY6+8eVYE%RCp?'GCBF!#"Jq!!CIG!=9$`!.k3&!5SX;( +B=FMr!ia53W'?e1&MLh!"oYJ+?2>=57V7:r!ioa8Ie=)BK?#$%iT-^5!KMi:(@a\+&i_9CA\P +P+V"\l(2FBi&d8LQ'GVDskPtSbbl@bN#_E&.!.k3d!!3cG2Z+$b0Dc4Z0`2D/&l;%;=B>tAAn +=8"AQfTHCh4)M2Jig89I37D-r1LR7Rdjt:C.OXC\\GN3"@Z@&JbjL+ZM.d4=UmEkPtSbbl@bN +#_E&.!.k3d!!3?;&,Zn<9NM'$!,h]E-iaGs%ODSp@r$!9%S.Te!$)>a.KT\b3"cL')AYO^%Lm +.i)&*'9,@1*T%khp.(Df(d5Qi_f8NROt-KkF0"3gfH#mc+_JcLB&`W5uN$jJ'l-P$h"5tj:AC +a&]d!%e$X#81?I%V%j.>5f!C'*&XX!"oPD#RLb:&eYI.8bro#&-s'm;cET(&fG^m%T'J!#$^m-W1I'&c`RX&fi;rHs-W#-"LO+IQ&o+G@b"h8K7p^%.jN"(]>! +G#QXo@TAt:Hps>&d[Ou!!CIG!=9$`!.k3&!7CiI#Q=uU&c`OE#S +IaM-OqI5,TT!s%96=]0iNB?8S/r6CIq`6%RFAc3!U,d!!`c!sfMe/Gfne6VnkM +Gs")s%S9k7%58FS!!!,G!!*B3JcLB&JcO4!%h\jJ#:C-(-Nb_$!!"nf&,lPE(ar[?H9XG,!!j +&E=:PfX,ro!Q"""]Y!!*Z>pAba9'*&"<&I:p56#K^?'Kf8ar!irlIX=:5^U1#S7C>!"BJI!##>K +&/>I%4p_8mrXoY?&c`1;&c`OV%j_Pb2Z+$c!#OSo!!CIG!=9$`!.k3&!8.>V#SIaP!uCt9!s& +Z?r!jYO!##>G#SI[K'GV5^%LsjA#64`Q&J>b/$ka^p0%2'9e8/W$?!#H7RqZ +%$;!!iQ;!"onP$T\P,r!qTa!!CIG!=9$`!.k3&!8.>\&c_n;#m^M:#S[ma-i=G[#Rh+A$k4X6 +!rWT<>u_@M*<6'I$NLkO>q>dP#7M7M&dSaP$haQ*&01fP!!j2FqZ$g/&d&aO!##82!XK&Fr!q +Ta!!CIG!=9$`!.k3&!8.>X&c_n;#m^M:#lXf("8iWI#nIX]"#)*+%M1Z5!!!3`,!6ST'1rfN& +Jl#U!!3f6?Mt-0$hjW+#SILl&ePcbp](:"rVup(r=T;N'F6s!#RK;f!!CIG!=9$`!8RVW(B=F +OJcLB&#nd4<#Qb)@#7)"=%KLJI!#@YA%OGXX&ek<\?3:RA0GY6P&ePZ\')V_4$k*+E%.aH&&. +8IN4p^ER!>c$t!!!,G!!*B3JcOX-":GkC$O;7`K`DAa&eZPoF9iHarVup3r!j__!#I0d!#.-t +-SR\=IX*Dq)[cXZ()@-6!"BPM$iBu)&,m1A&,lP3'`\4K(]476(D-NX_Z0Z=bl@bN#_E'6!!i +u<%QkR<$kb"@!/ggb$ka1#&c`^S#m^eErVup3oaV]P/IruO]!%L`G;3BnR5#RF`B'b^uL!!< +T@&e+R9#ndLD$lfNY'1*)@!!=#C#Tq:k!=9$`!9!nY'GC6B!YZ%SJcL`0":#PP-nP?'!=KS=% +L*UI#9b&s-Mn8UCE*fn)"7M0#7(;AB+YsX!!s5M&lJgR#RDXf])Vg5bl@bN#_E':!!NW:',D2 +mr;Zs:&/Plo_#OQM&.fP-!6>-?'Dr=P'.t+3,n(2g?!(AX9GTJu$pF@c!>H7F!!a/;!"rTD&. +%t0!t5SL$bQH>"3gfH#mc+_j8]B#&ePWZ'+=a=!"8c+!"6XD";(n>$Oq[fe,TI^rXo29rVup7 +rVup3r!j<$AI]AH$NOK_5m)0@Kin]p/bf;H'+k$@#87(;9+V(2&G?)+'*&:N]Dqp6bl@bN#_E +'M!<*T7-P?CZ&chh>&j-dE**QSW-PCM5+:fGj@q-$"o`,.1$P2td4T# +8[se(DQNB!!iK'!!f_.!!CIG!=9$`!20Aq$kO!^'^u))$kj0bqu?j4&Jl&lJcP'9!##82!##5 +1r!j?<%OHmdH#["i;bpMP$rSGQ!#P>/!tkkP#kJ$!#S7CU(%M>+&J>ep!!!,G!!*B3JcOs6!> +cI)!!3rB(Zk]#&-)\<#Oqct'F+U<&Jb3D!Xo\VJcP$8!!iK9!!iH&q$mcl.mH$(>$;@[#7qO= +!!3N;'(Gr'(C1iJ!!EiJ(C(5`!!!,G!!*B3JcOs6!>,t"!!E]A'bD)B!!!T0!!NT-!#6+Tp&G7 +%'`\4>&qU,:!!%l#=N%O`.^!!*cAhuEog&c_n>#K$NA"3gfH#mc+_kl:l'&e +>Kb#i5Oa'*&"?&G#l(&-ijWrW!HC#R^V4&ePBS'`\gY$P=$G!!N`D$NLDJJcOI(!sfSH.f9b^ +3=m/Q-O)[t;T\tB#64`?'#O\L"3gfH#mc+_kPt\t%hKBD!!!Dp!!!T0!!!T+!#PtS&ISRI$ig +84(B>'\'b_A`!!j2C!"0&2!!!T(!! +c$X!!!,G!!*B3JcP!7!t5PF%.aH&(DIAm#Scb.$O@@Z!!!6>`j!7_&W& +c_nE&dSIX:E:'Vr!j5W(D72g;A0KJ!!!Q=#SS$G!!N%#T!!!,G!!*B +3JcP'9!>6.6!!ro>%M06e!!!]Lmf3=mrW!-8(B>-^&f9^2"VM(@!"9-b!8db\$kj::+WMa(%L +6'<%V@g'!"eJs!tZ.X$gI]s&JP3V#64`:[K$:0bl@hP#m_5s!:Bgj'G;/p$jc8$#8[g^%M\sO +'E/XD!!3QA(\Rh3&JP3F#N5Xd'bLEG&eoothZ*Whr!i]/r!j);%r)Oj2ZNg^9bS--!!!!!Z0%MEji3"@*25n8,F'g)jl)uosO'^u)(#S7X1!!&IZ#I!!CIG!=9$ +`!:'Ue&e>Hgm/R_+&c`US!"p(J!"otR&c_n>')V_2$k`ht!4W"/(]=sI#X&"p&dU#u?As.a57 +n/$&J>a@!!!9:mf3A#$^Lbm"3gfH#mc+_lMq#"!#,k*!#65@',Lp*&1mq`!0&<:$ig8?&JPHb +huEif&.fZU!!OA!%'*&HS,:2'`\gE!!!Sh!!F#L!"0J=!"&u:!"0GJ!!!TD' +S6>P!!*?2rVus=./XPe8.H74$jRE*-PI%('EACM&/F^8!!q?[#RD%C/fG)t#8b/U!!CIG!=9$ +`!71]^FBoOj)EnEA!!!:;4rjV'$PEFQ!!!B3i;`ijrVus3'`J(?&ek>$jH\:(C1!K;d'P/(Fg%RG7R_sli7(p%2.Is#SIgO#V?;^#SFiP!!CIG!=9$`!8dbZ +'GD)m$iBuE&dJt##Z:a6(-2O0#64`:'EA[E!"9G>$jR@X']B#p&I8@:&H)S:$kWI>&/P]e!!! +B3JcP<@)\N,N#W`7t56D0"#7(\c%S[?E#8e8"2@UEr([V2)&/5ZihuF*!#7W]o'FtQO&er+]! +!CIG!=9$`!8dbu'*&"K#64`?#Vltl6mNKOM?b[s*Y;1T&/"sC'bD#krW!!9#RfMi!s]JQ(&S% +=&eG]b!!!Q1!#H9"!:^$p&c_n>#mi'fFT)OVF9N.M%PTjX(B>(c!"2X0m/R5%$PEa(!"&u:!" +1,H'6Os"'#+DH"3gfH#mc+_m/R.m$hXK"'E.tG&-*FV#S.XM#9=0[9G/@A&.]KU$c;rI$jRCY +(P2YW!!!Z2!!*?2rW!Q:!!l@A%QRfX%N[5&#[IE<'+=1-!Yc(VhuEon#QOi5#eC!9"3gfH#mc ++_m/R/"%.sT;&ek#rWiQ;#SR%F%OMZ=% +V6V+C-O*X#7q+VlMpqo$fD!g#S@%:&/VnX!!CIG!=9$`!:Kmm#S7FS/-Z^pq#CU,&ebZR!!iK +'&1.r_'*o0_!!!W3(J#)N'F99jYQ+Y>rr;Zs6$NLGFo)Jk#!!!C +Y!3uS@#R:tT#7(qU'71uY8Rm$D'2f)H$ig8?kl:br(D)Z.!!CIG!=9$`!:^$k#7VFVrVup7r; +Zs3!!!9:r;Zg&rVup3mf3@r&qU+j!!W]7!!!92)>amN+:SenF;7Xe!#,\'!!F)L!"]s/!!!,G +!!*B3JcP<@!t>YP'_q_<$kO$_2\?i+!"]M<'bTm7!>Q'W!!Eu@'+t\)!;um%#RCD1#YeV&%LX +9b#7Un3!"a_^$31\=!#,M;&gg!ar!if[$Od;m!:0[c"3gfH#mc+_irB6!&c_n;'']H!#R +:bL^&S9I(B>0_JcGfO')hn1#QbPCDYstH6W8CHJcP-;!!CIG!=9$`!9*t]#8.FY$gI]o(B=FO +^&S6C#8.Z$!!3-#')hk4#RD7F#RM@Y94JH1//AX+kPt\j!!!:`!!!,G!!*B3JcP<@!Xf8JqZ$ +^+&eZ#[!!3i?$\AAK!!!H+&c`XE!"&uA!eqa!Ae$1>$g@Wp'b(rk%i:3*!!CIG!=9$`!;HO$' +G(K_'EAg\'aG?L!!N`A'GM2ghZ*WaJcN"T$9/eR="+P*@j;g*l2V"r&.;,B(D)Q+!!CIG!=9$ +`!;HO$#7CM>#64u:!!!]2!!O)P!!!95huEco&qU+n!!*<1qu@*`%T3oeB*_cT!"ok.!!X,K$X +Oh]&<-Yi"3gfH#mc+_p](:,rW!L(&fW8"!"T;J&HE(K!!!EBqZ$U(kPtc#&e,*P$crAO$kO$_ +$\ABS!!3rJ&H)S;$PjX#((iJ<'*&"K''TB"&ebN`',6E+!!CIG!=9$`!;HO)&etBQ(dn[W#Z1 +d+!!a;?rXo29qZ$['%h%V%";;:N%2Hqa":"o,#SDXgr;cd/"!2Os#lXf4*=bUR%M9'K$kO$b( +[(i$&HDe>MuWh[bl@bN#_E'N!"feV?2tNQ-k\*G!!!W;!!!fLqZ$jA4@g>%(B>9=!!=#Q()"[ +g!>cCJ!!!X`!;um4&c_nJ!XK/F!!"2Q>pg=!',1EH$OD=ali7"fbl@bN#_E'P!!!E+!"/mA%M +0rm'F,!^&.A44%uqV@,r[C\$l8mD'`\4H$hXK%$k`gW`rH5U(B=[TJcP`L&J>'D#6Fu?%1!P> +%R=;l(CM%2!9aC_"3gfH#mc+_qZ%3:&/#N^'J:XYAT[tQ#R:tY$i9o;(Dd&f2dHo"CIqB_%ho +fh&dS^Rr;Zg*q>^U*!!!DI!!$"E!!*?=JcNI +a";D,*#m:/>$PrdC'-%Jl0MF&'''0)o&eg!"!!CIG!=9$`!<)s-'bD!`(B=jj%L5*K'b(!?-l +!@.$NL/N/HZt2%Ql0K"cj[>AeGOt(D9U['+4d?'bV/f!!!B?&eY'B!"4AY_uKcCr!i]>r;[05 +1(J:d,<,Z2&Idh&!u):]&r-Ge"3gfH#mc+_%2BNf)uot:!WWQ4D8duC@%2JjB#n6kC&HDe>$igt?!!3rG$blZB#RcLi!!rK4!##51$53XSC.a%/N +=cs>k5YSm$k!`(!!!,Z!!!]0!!!E#!!*B3MZho!!EuL&eGe9!!!<&%K +I.@!"0'0%NG]U2\7nZ&f'U1";ChI#8`-q!!D3\$4@FU!!!B;%Ls6gpAb4##`Ja"#R:>G'*&"D +&d'K]!$VUT&etB\$ig\Pq>_!5!"oQ*%hDMm4F].>/IVLW":P\O$kiI<"UbtT!"oS9!!*cFrW! +'8&dSpS_>j]M$NL/?MZ<__r!i]>r;[0<%ZUc)**PoR,SB8@";2.O(CZ#u!!D3\$5X&el&h!!"/l!"q+$(&%\?#8[@?'aG@D*"EH1(DdGm&/Y6E!"8c+!#PP +5!s]MP&bQ,*;B$7b!!!9'!!!Rg!!!<&%KI.@!"',E&c`LQ%qcXg&a98t'G(N_KE(uShuEih!! +!f6!!*lGpAb4#$2k,0(Qe\,&I\X>&.8mP!!!T4#8-V/!Yl=ZrW!<7(-H=N)]9"`!#H(6!! +&f(*?"UlDP&ePMh!!ElH$P=#0!#-+\',_Gs$ig88(*l!U4:i/2#7M70!!\\j*>7oC#7(qP2?jQt')V_3&el,nrW!-.&dSaC$k*%7!>>k>!!*Z>JcO +'r$kWI>$PG6*65W)u#8_sliW&r\huEul!!!B<%Mf]N!!*B3QiIF*&Jl#l!!!f@'`7q7$PO3g' ++=O7%1'Uf"%&H2Y6&-*CU'aG?L!!O)P!!!`Bp] +(g;$PNLO$NLkS&g2F@.#SK$!!`cD#REO&%1N+6!>6%E!!%2]!D!XfMNJcO7"&/"sC#6kG`0GR&K&e +nVL#7'Gm!>#O$!!3E8%.+#p"3gfH#mcgs!!rQ(#7(kH&LJ+q&cMb2(DliH!t,SP&H2Y8'*'k3 +&ekub(Zk]$'GD2n'+=F4!uDG$?2=O$(P2Y;!<*TC-P?Cb!sftaC(=eb3/\Rh'c6-8!u2F[$^C +\n&.90=!!!,G!!*B3OT5V&&SDgY!!a>4!!9F!!>P). +N7mY"V_4J#m^fg!9!nh&c_nE&c_n['iG_Y%OV_s($5K"%fd"H$O`=%":,V?$k2P(!!CIG!=9$ +m!!NuO!!!W;o`,.3'FOmT$iU,,',9@)#R_4[3?&SF'+=O7"UbnO6jj_%!!!]1%Y=]>!"onE!" +pXl!t>M`2&75Q;A9dX($GW$'bV&c&.k3/!#,>E!"\Jt!!CIG!so8>'Ti@u'F,!^'D)8,#64`3 +f`26k',<;H%M'cFI%Y=]>!"]>^!uM[\&.8IM%L*1='GM>^%fd%$!!'F03i!<<5H!!*B3JcPcM%2'Eg('G% +D'*gX+&-iX#!!?IN%Y=]>!!!9'!"TnO+:p^H>mgW4&f28u() +>s3!t,bU$\A?Z!!CIG!=9$s!!!##nD!"4,R',M/hNX-=N0G"Fd&JF1*!=0El!!3-#"3gfH#mcdr":#24'b^ +!9"r.aY&1nMNrY#B3%20H1!!!]1%efr.'FXsM9b\-Qqu?s8(Nfop-k[/E!9!nk'bCWt5QD48% +Pnb02]`2>B)hoJJcOa0!!CIG!=9%-!!o`+str;[35'+b-P(B=gZ! +#5rp!8IP](CgZM$k3kJ!#,in!8[\U"3gfJ#mgkO`;fuV&eYT8!#,hI!!!E5!"],1#SmXV$NLk +S#87pH!!*lDr;[$5'g)I%'G8jq#T"-hBO*A+',:*>!"Af+!s]MT')hk7&.f3_'bZ)uhZ*ul&i +:(5#Rh+L'+9BlhZ*`p#RDNs!!*B3_uKrW',1]c$g7R#'at'B&dSIN!!!i@!#-(7!!*Z?rW!0/ +&cc5N&/,H$!!a)O(-F8\&.%q/!=]eC!"9JT&dSI;'bV6Y&HE>n!9!n]&eYcm0I25MeGoRObl@ +bN#fH]H&I8@:$jc"r!"f,B#ljr6&.olr!!!T#!"KAB%20Hj!"pjcH6Eb2#h/hY'c%Qu4;JA!! +!sAR%hAm]!!!ZFrW!-8'aPE`&f#uuiW'/g%o!$<%N'cteGoRObl@bN#fH]H$k*+9&esI.$ksB +a'*f'b#Wre$&e+:1%13F!>Gq?!!ErK$P +s'H!!*H@JcOs6"qVSt!"obTJcO=$!!CIG!=9%W!!!E$!!$PF*]mf3e* +0Feg3&e#E`*\%R4("E9i$PWsV/dhXZ$haQ&%2'*bp](=/#l4NM5s!:0^b#R:Z6!%gnk3>@ +&FeGoRObl@bN#g`PS(D%2j#l"B#'God0"UG_@!#H:5!"'>P;?f6h;BZSb$bcTH#QP5H'`\4B( +\Ib2'F+UO$\ABG!!rl9#V7P5'oEJ5i;`li(P2Y\!!!,G!!*B3ci=1R(B=FKf)Ppe(B=[Gl2V/ ++&eY9^-@%3P'G8Oh"Uc%F#S[R;!!E`F!"]b7!!3]?&qU,M!"KVA(C1*K#QbKL$O?_@$g.Kk&I +]5&!;6Bm"3gfH#melX!#,>3!#+/g#mV(U#64`?&dJ^,!!WZB#WrSW(rlUZ#7M.W$hjW,$kNqT +)BK>'%/'Z&(C^b(!:9at/cu@c#QkGB((_/n&dJgW'^,N#%0."U$l"9nq#CBsbl@hP#m_6n!!E +]C!!ihd!!NW?!!!T:j8]Al'+b4C6k@<<";2I[&f:6A"qV"LB+l$doDet$!"0Ek!:^$j$kOfa% +L`UO%L`US%N%_G#8@m;!!NuD',LlbOoYFn!!i#o!uD4K+3acd#meiW!t5DH$f_3o#S7Ub!"9, +5!!j"n!!O)C!"]eO`rH>Y',Cc[$ks?M!!`rE%jDSj&Jt6C!=0A;!!3cG'nQGV!!6F=-i=G_#S +7IR!!`s>(^CK]([1o'%29?]'bQW0!##82!#"]"!!CIG!=9%7!"0&;!#HUd/M%8G'+$RuVt!"o +\Q'H7Ml(Zk]"&J5QgP5kRqrVup2mJm4hbl@bN#g!&K&eG]^l2V/((B=k+#QRL1&f9a3!"8W'" +:P\M'+;bZ#7M7U*_6nK%/0`*'G:ig$jce3#n.4B%0-A9'*o/$!:g*k-3t7^%K]02%/^)-&/5] +gjT#;m&s<4p')hk2'(,`""3gfH#meZR";)@K!"eMt$O[R\)^#+n&.8IN#j)*f',CBE";2.R&f +8Le#8@g_?5OF_(\[n4$PE[R&c;V2$PO-frW!!*%h!sho`,.1&.g3$-i=GU9b%R1!!N`1$NL/7 +jT#8gOT5@drXo2EmJm4hbl@bN#i#C^$O7=Ro)Jb'rVus3'^br.&eka(FTr7f%h]Qi!!!W3'G9j8!"4AYp](a/&c_nG&c_n:!XK#@(& +\+5'*s0if)PdQbl@c`#i#C[')hk2'Cu2+&I/j]m/R8%$ih(ThuF&h(`<].>oa[r'(c/.$O@"E +#RD6p!!!i7!"0t]#6t\O+;PUu!"8c+!Z(hEoDeq#()2?#q#Cg2'+4dQ#QPYG.4,N0rW!*1((q +Ao(P2Y?!!!,G!!*B3g].Hd!!!]Gg&M3f&-iU%!"')>0Lmfd9NjCb%.jN"#lG/4'$gOl#Rq8." +qEjE%MfHQ'G;$H?>VV8'_VM.&-rr$!;HO,'G(fj!!!6?$k>K%$ih(D9b/$'!!*H=JcP?A!!CI +G!so8>'^#Gu&eGTdqu?j6'+b]_n,NP'&.fKF!!3rB(Yo'!4rsb@<`Uq8'GLcgo`+str!i]>cN +"Xf#80oU&5aJ]$jQb?&Jbm/4C/[/pAb=('*&XZJcP]K!tl.Y&cD\>1Cu,J2B;c+#8.7_'aGH; +!!3cF&qU,W!!=#C#Tq:k!=9%o!!O&K!!!WGpAb=(#8.XWpAb@2&c_nE'__S4'GD*#',:`Xn,N +G)rVup7o)K"C%Ls"S@j`)`!!!<&%KI-f!#,\=(DT+>'HItq8/Em@%N.QB%PU6C!<*U_!;lg5' +bLEG#8@.<$kF-c%RL.3$kEgb.KBGbl2Ur$#65;CJcPEC!!CIG!=9%o!!Nr?!!!`>q>^a/&/$< +X!#,\9!"')>#QOi:#QOi1(&%\5#7CM`#64`8n,NRr$k`dRpAbO+$j[Xp%R1pM,=q>)!!rK4!# +!6N#mU\V*YK.j%PJt&!!!i7!!!i7!!*W=JcP]K'+kKM!#5b>!#$/H%M0$R&dLQ1#NYpe&/>b. +!:p0j"3gfH#mgD.!u(tQ'(>lH(C(Q&dJCQ#7CnN(\[ +n7#64`8&c_n:n,NS*%2K0bq>_!A!#GVZ%0o$*-rL`n&f:*=!!rK4!#!9O$l9Nd3#reO>lm8=( +DZoL":#>J#7UA-!#"Gp!sfMO$`3nB$P3p^$ih(T$O[UU!"9894Uql/%1Y:=&e#E8!!3rI$\AB +M!!!,G!!*B3qZ$a4$NLSIqZ$U(r;Zm,'aXdO,!HPC'EApS!!!E9$PEF>#>tOE-3t.g!"otG!" +p(J'F+jWp&G=1'`\Fc#R;+C!!EQ4&doBK!!EuF('bZP!"',>&i(:6)?pTM'(,`((D7?Y&eYJh +!##SB%1E4:.0'>U'GCHH'GLul#8d.8!=oq0!!EQ4$O@EC!#?.P!!!Q1!!j,@'EApY#RCl9(s$NL/!#5JM#;7< +!%0m=*!!!hQ!!NW:'GM/rr;[0O%qZJ;;A9QU#8d7;#SAg&'+Pj/$Q&11"VM1C!"p*G!!NuC!! +!WGqu@-6@0d,g%KZVC$k`s]jo>H!()2?#n,NFjblA.Y#R:tI&c_nF$NLGEr;[oQ!!!BD&GlG5'*B$N&IoNU$iU,+$g%Ej&/Q"3!:Tsg"3gfR#tPI)!"otG'G:W`qu?^1rW!Q9!"p( +J$jILU'*&";&eZT*&d\:5#n.FP&/>0F$OddC!!a/;!$VXJ$O?D+":GkS$jZM,!"8c+$4IIU&. +AOI3@>"4S,aF)p^=&(&S%7',2&f(&%\2$P3p^%&Eq0'aG@1 +&-iUD/GotY%2Rk%";_:C&/TounGiOkbl@qS!sel,$jcV.'aPEX!&H_K,$kur-O0kj!"989!"p +">!!3iC([h>/#64`/&-*(Cq>^m2!!!9=#R`s,$Ps3K!!*H?r;[0;>nR,;(D9a^(DiVB+qZ47% +1WgL#7_@Z$NLDI'-.?O+"nNa(,6I/BKQY&$PNsXoDek-T`>92#64`/'J0+k!!hB]!YGYMJcP9 +?!!CIG#RPSa$Ps@5&I\L:$ks6c'5%p^'EAM=$jcb2"VD"?!"9.l!!``7!%0?(',:9C&etWa$P +NmU'+kfi$O[UU&dK!ZrW!@)+:]Ml$P=?s=qb3TScC#K!"o*d&57UX8=Xt":Gp*n7 +*_%D]'aQ03%M1*&PlM!s#QOi1$uYqP!#=>j!"t(f":PYD!#=o%!!CIG'F>$Z&e[;A#SRRG$PF +*U!!!B3!"f,0!#,2/"W%^X(D$u5!!WfC&eu)q(\dtS$l0Kj!"0MW>)P!L+;n>l('d-'2eNU*% +L*OS(_%6$BG)#L!$MRT$k-5KdM&rZX5(C2W5 ++ZUMX%P8J&,;BiA*L6[/'aFsY!+,R5!"4AYiW')e&.T6[nGiY-#RDNs!#T',!!!9;!!!`G$PE +F>&mbqX&HE1O&eGGi!$Vda&.AdD(D@NM*&/4*"r8Or$rdlM-it1h,7YQ4!!#V<%@[>E&e,<`( +B=gV%8mEI#@0>CNYMNo&eS#>4F].!'+4dX%PV]6(B=a?!!!h'!!Wi6'0Ji>?@i18!!3L$QK-H2cPi*%jI'p!"='_?7Gp`#>td8!! +j)V,81c^!%&*Z&/,EO&/5O3&c`1^%Tif5#R;"R*XF2,$O[X_$trpKn6d((:lb!#-%XU&YB684ZT`%S5FV!=Kj]P'bh2qpAb=1'+t] +^rVup5rW!02'+bTm2\u_u!"ThT&c_nG$k=!X$NLeJ&e(!)!!iK'$5F6\!"o83&eG]krW!!*&J +4pP&dAtT*Y/\r!#67^%L`=C#8\*[UAtK2/1PHG8.5Cs";1\?'G:%M/^B(K)A<$k`O?'+PHO!!`l3!"o[8!!NQ?*"Eknr;[*3#7qOV# +QOi0lMq"m&do8&!:9ad"3gfI$9AR3!!O&L!!!`Gp&GU3%hf!!EuK$PF8:!!3oO +&Fof4'b2!l$NLG4!"p%Y;][=l%/g//$PO-X&Zu*<(C1]e!tZ1F!#-%Y%MT0S!#GV8'H%?d'+Z +'];@aE,!!3`C$\ABG!!!,G!!*B3^An9N'_MG8&J>Tf',1EO'+\^h'+sa7!"t:l!u(tG&GH/*' +bpWI!tkkU#Q+Q,$P*ml%2K0bqZ$X&(Tm`D'G(NfA-j_:'`J(G#UMAA&f1NQ$ka(0$o](;%i?& +ql2UeuJcP-;!!CIG!=9%=!"]\U&iUdC%MSmC&HEV(%1NpA!!Eo7&eGY9!!F)&G +6#.(Cq*!%2K0bXT/>;qZ$[/$NU)7!%e*L!Yl1Wr;[9@%2K0b!!!NC3"Qc5$\AB/!!!,G!!*B3 +ZiC=='+G0[',DD^!!,qZ$[/!!) +p,!'L5\!Y>hLr;[9@%2K0b!#,\=.MMj_$gmup$\ABC!!!,G!!*B3ZiC=>%1Xs\!#,_+!!X5E! +"_d>&:slc&J5Xt&.nL7";_%S!#Ma;!!rH%!XK>Cr!ilD!!"qf&GuM2#7M4M%-@Nk#S.;p!9sO +a"3gfH#mdm<":PMJ',9[2"VV[c'Fu"3!!WE7&eGio&bH&'$`a7-#l4N%(D6QT"VUk9+V#7b!! +Eu9(B>97!!"TF!!!,G!!*B3Q2gn$JcPTH":u1G!"8N$"r%R\'FY +?]^&S?F$o^9`'bgED!!r?"$54(4)&!Vk%Mgu7g].Bg#8Mgjl2Uedbl@hP#m_6U!!O&:(B>-^q +u?a4$\AB>!!EZ0!"fk=!!a&F#;@,L#7J9H%grUW1`Hf&$jZh5$O?_4#kn<+$S2M_;%?N""$\9 +k!!*H?JcP-;!uD4K+3acd#me*B#nRIQFV>Am1(Ock!!*<>JcOd1!uD1T#l"B)((EtC%M0$S^] +4uU'`\Z##QPJC!"9DC)AsD+',:9C$5*XM+q?gn#RD"JJcN[g!!CIG!=9%C!"fnY%8d??(c`-; +&.8aT%20?gJcOj3!tkkU&GZ;4'GD2u#6tnV&f8@a$l'KW$Q_hN#64`8!##2>!!rH%$O[LR+q> +G@#QOi1#ibmc(CPfpirB&]bl@bN#eC!B$k3\E57\3/%hnpB!tl7_#_E':!!N`D&/5*YqZ%!Sl!!O#J&J,3RrW!!)!##2>&dSjM&/"sC&eGli0.odd!!!91p](:%m/R.u&:so +B!!!,G!!*B3\c<9M#7qk6&i(F8&.8I<&dJj\]Dqp;W;m):&c`LQ$haQ*$PNbWFUSWh`rH8N#S +[7E#l=T'&.Bub%MB$['EAj\!!!`D!YPJ=/-#YU#l"B"#OVQo&J5WjJcOj3!!CIG!=9%C!"]bC +#Xf($(CL3N$NL/A!"0(G!!E]@!!!D,!!=#B'G0s<#7LfK*&\6>'Z^7W$PNp]')2G-&L[Jd!=0 +A#m^bD!#H1H&e5?E!"',>&/"sC'+P6 +_'(>l*$PO0]'*eep!9X=^"3gfH#me3E";(V>'G9@*!=KLh!!!i6!!Wi?!##nK$iU,,(D!\L!Y +Q.\p&G=6&e5`u-6`l>!!NuC!!!WJo`,+#!"9J_rX]/>(CgoJ!!s8I%MBQX!"KMPmJmCr'G2&f +'7p5I!!!,G!!*B3]`80L&eG]arVup1k5YPr&.$ed!>>n@!!X):!([;1')hk4#8.HL!!*H9o`, +7*'+c^@0b>]IaT)GX&-r[LoDf%#&eP*U')hk4&.T!>!!s>P%0lk5'bD)kli7+q&.oY/!9X=^" +3gfH#me3E#n.IW&dSI;$Pj-7!!$PV.m#8@OO&eb6F(]G$X-8to;$NLtJ!##>?!!!6?q>^L +'YQ+nC'F5Ko&e>Dk!!3rL%/Bl'$iBu*#RC>/#R:>0#S%(>!#PS>!"8c+$4@IH$k*jN$NL/7lM +pr#&:soE!!!,G!!*B3]`8ES'+bcV!"p%\%M0HB!!!!!ZB(B=FJrWiN:#i#C[$\A +B@!!!,G!!*B3]`86A$Od^a!!*!3kPtZ!%h%%j"pbi9*<6'QpAb4%&H3:H4U2T)(C(cS!!O/M& +-*7Tq#CC/`rH)UoDf%"$Pa'T'#=P\(C'p?$k*+9'L58%&ebrZ(Cg]L!!!Z2!!*?2JcNRd!!CI +G!=9%@!!EZF$l067!!!hh!"')6&.:NH&eYET$hOE''*(['!#GnC!!!,G!!*B3 +])VgIrW!';$NLPN`W,uHqu@';F:\]`%1<.9$ki45#Rh+A3[YOQ&1RSY#8[UF$[W6]'E%n6$NL +D?'$:1V(D$ibnc/h%%i,lm'uL"Y',M#f(B=[?#R^n:!!3rH'E%n2')i.;&I@Cs!>?,u!8mhW" +3gfH#me-C!"e/j!#OGk!=]G9!!3E2,5hcN$NL/?&.A=7!"Ai,!!iK9!"f,0'b_A`!"fhV!u<9 +t'+=j@#R;.N!"]O]!!d#$rMf&f&@c$5X!" +7if!tl=`&qU,B!!!,G!!*B3]`83M&e5T]*TmD('b:]5!!!W0!!3Q6')hk5&.8^Zqu?g-$j[LC +!!3E:(\dt3#R:V,!!WuG+r:4b')2G,$e,.X&.fQH!!WN;;NDA&'#">P&eYKa'EA+@(),@$!tc +7_&V:#A!!!,G!!*B3]`83K((q-C%IF,r'GUNH!t,bY#Oqco$haQ%$kF0R!!s;=&.8mP&c`^Qq +u?j5!!!Q&csBc#O_Wq&-rOM#PnH!&ct^('Dhb3$P7D,rXo2Cp&G1+$ +O7Ke!!NW5'GM/f[K$@<%N"d<"W%ge'b_D_!!!ge!6P9A"3gfH#me3E"q(D2#V?GrnGin4(D.A +o#8%aW$PDn/!s]VT#lXf)#7(5.":YVB$jZ_2":Gb@#Rp2&r!;ur!s]VN%/^).&dSIK$hs]%'` +J(8#SI+R#K-TI#S7Y;$O[XV\c;dE%MJa@!!r#RD +%Uq#CO*()HrNr=T,B$hs]%#l4N%$P:tk#8[UF.1\`W'"S&E(D[JZ!!3N=#l+H.(D72f&c_nG& +J#Q]JcOd1!>>k1!!=#C#Tq:k!=9%0!2"UbkA&dSa4!!*K=q>^R0&.$ti#8.:B(G.?W'" +S&E&e53H!!3cJ&GZ;6$PO*a'+4dQ%MBN_JcOg2!YQ+Wm/R+gbl@bN#c@Y(&dSdB&cr%@'`%e2 +'*&^-7T!,$NL/>&Ic\[#n%:P-5QXu;@O93!!>au!"0DQ?3UZM#;Ztm(D>:!";MOL$PW"0$5F$_!!!WE#QP5Do`,1%&etud&. +='iirB,n#S?A'!!CIG!=9%2!!j/Q!#-+[(C1ZL!!!Q/&c`I9!"T_C!##><%2'9b&c`^\!#*BQ +$5*UE49H3/-O:7kqZ$X2$iU,/'*&"@%/p5-$P34L!#,81!XKDMhuF/n!!!B\'+H*3%M9<]f`2 +0g$NL/>#k7m!#7_OM$k58r&c`=6!!NcE%2'6\JcOa0!XfGRm/R+gbl@bN#c[k3'GD#X!"0D>! +"]P(!!NcE&eYidq>^X2$NLSDaT)>L&,m1G'*&CO!!j57!!EiG!"4eb&c`@3!!^U3%Mf\/!6>-?"3gfH#mdO2!tkkE(R"h!'`A:F$NL +/4(D$r[*=rGln,WD"!>$(,!"'>E!!#Oq!'gr##K6ZP(B=FK((1*O#RD.Y!##82$j[+T$ksBaN +=-@5(D;<"a8c2Bbl@bN#fQcD$g%Ei'+p*%#S7%M!!">q(C0R4!"8#k!#P2+"W%^X(D$tl!!s& +I',_H$%L2t_r!3<'')hk:#RCD=#6tYL'nQG(!!!,G!!*B3`;g2Q#QOi4'`\LR'^l#%([1o"%& +3e0#SIe!&fi;5!!a>5!!*N:lMptl%i>'B!"8W'#7(PT)&3D^#hAtU'_25(')N.?#R_+=!!!Z2 +!"&u;(D76<4?*c_'nQG*!!!,G!!*B3`rHJT'GD#`'EA@H&/,H)!!EN,$P*ZA!!NoA(C'pSr=T +)9p&G.VA'!t,bV&GuM3&e\(T&e+U:!u*^>%+bI^(D@Dm(%_J+')W4B:B2"4%/^)*%/geF' +EAOH;EYR#&ds9k`W,u@bl@bN#fcoF(]=dI'EAa]%MBT3!!Nc?#SICVV#UZ)&-rOT([qD,'*&R +Om/R8*#65DFr;ca*!#,2/"=GK*-5Y;7":tq@!"ec&!##2>#6P>F!##>4'`A=9!!a;K'GODJ() +?-8!=0'b!8RVT"3gfH#meQO$5\U1%Q]Rc&K)>mf`23i$S;ni$k0!5!#PS>!#P/*"q1n?#SI@Y +mJm;$#8R.:r!i]?qZ$d6(^CWo2t-eL&eGTgm/R+trVup3oDek(r!irq&dSIG$igq>#QP,*!!< +iM'G9[3!XfYQJcOU,!!CIG!=9%O!"'PE!ZDYK>mh&G#ho=a$k*+`!sf/AO8o7crXo8a'*nI9! +>c.8!!!Z/!;m<,'Dhb5.L-b+5%jBc";)@K!"eMt":PnN$ki14!##2>!=089&cr:<')hk2'&W` +l#8\!fJcOX-!!CIG!=9%P!!sGS(0Yoc((pTTf`2-c&e\(nrWiK3N;s%n(C(cU!!*<;li?qn!# +,50"UbtL(D@VT!!!Z2!!*]Km/R2&&eXU5!^7),q>^L.rVup2huEil'G:\'!8[\U"3gfH#meTP +$5*^T%1RFh',25pd/X1]$^Lbm#l=T/$PEFU#64`?#7q:1!;m<,'D_\2$PF'gqu?j-&eGZ`q>^ +X,&HE1PfDksn%M\a>!##82!#"2i!XfYSJcOU,!!CIG!=9%Q!"'6'#8B?C8e_ms#P.or&.@Fs! +>#m1!!3E:$iBu3&dK$^%i53N(C1ZN!!*H>o`,.$#RLbB'_)/7#8@.Q&c`:N&/,`X!"fGI'\EB +d%hJI9!"Af=hZ*Zk$\AB7!!!,G!!*B3aoDSM%N[;B'`J(9$OmOV%h/.3!YH%Mq>^O)%-mlq#S +I[VQiI1!'b^3?"W%CD!"]P9!!3cB$i0i'&c;V/([h>)(D-QG"qgn@(B=gSdf9F`%MF?nX8i5& +bl@bN#g!&K(fN([qu?g5%MfZL!!?.4!!7:&eb\,!!ENC!!a>/!!Er?!!!E*#S.UL(C'pOBFbmZ#QPSP'+=C3#T"6l(`!c#&/Y'@# +8IIf";_jf$i'c,$kd[o#R:Y)!!3B8(P2Xf!!!,G!!*B3_uKrT&e>We&bZ2+'+5BK!!&R?"T&-r7A#7D +4Z!"oP;$qLX3*(gSM(]===#64`;&c_nCnGiV!%Lht0":GkS$jV@a]Dqp6bl@bN#f?WE&eb]_p +](L0$oS@s'bgNG!"Af=!#P;.!"=GZp](I+&dSaV(\@\3$PNmZ(D$lF!$Dsh/K@.k-q"%Q(B=F +H!"oY>!"ot[&c_oY-j'YR!!j59!!a&C!$)m^#8Qb/!YZ=WoDf"1&e5ZiJcNF`!!CIG!=9%V!! +O)G$ignJr;Zp3!"052!!F)C$NbGL#QP;#!!3Q>$\ABS!!!`3#QP\4!!3E8&b5o.F^5JhA/5an +!#,>3'+b-U#QOi0$NLSH&eu3N&c_n?%/g/1'GD)jNY*)t!!3rH#P%is$l0KjJcNF`!!CIG!=9 +%U!!bQrW!!-%h.k+!YYhPJcOj3!#>#(',)#jCfk72(B>$[#S77A$P3p^%/Bl*& +dK$Sq>^L3m/R2#%MeR8"UG>G$PNp1!!*ZGJcOL)!!CIG!=9%V!!F)N%M'3@!"0/D$O[RI&dT- +N&f:0?"q)%P$ighHJcO[.!>64D!"9\P%!bY^9kP7B4r"n4!!!i/!!*H8jT#>r((^0?!#,>E!! +hE^!Yc1WJcOL)!!CIG!=9%U!!!!Q'G;/m$l&(/#nn"M#RDn +S$Ps'A!!Eo?!!a!!a2C&lK/L#8bqk"UG).&e5QJ!!!Z2!! +!Z0!!!@"UbhR +&dJYn!:p0m&.8IOrVus)'Cu2)%2JF6":#>J$k1\e":+u5%M8:5!!iH8r;Zs:&e5?`li7/)%i# +'PJcOI(!!CpT!#,#*!=9%Y!!`o@&el](()Q9:!"8`*!XfYQJcOg2$4%(R&ebZR!"]bKoDek-n +GiP*rVup+m/R5)#7qO;!;m<-0,OQe!=KP2!!EZC&-iX1!!'Fa+(!s]VS%/9f'#SM^hkPt\j&do8n!!ErO!"9;+!;m<,+oD&.9$S',U0=!>Q@;!!3E>&qU,8!!!,T!!!N%!!* +B4rf`2!`rW!'8&h".smf3A)#PJ,u',('?!sfMF&qU,K!!*lIr=\o+!Z)LTec5g^!!!9:n +GrIs$PNL?#SIaU!%7mb#P.p!$PX-`#RKl!!"je_g].<^r!39Eg&M*_o`,"!#h]1e$NL/A-k6k +&(C1!Y$OH8&";(V=//S$\!>Gq:!!Ei@!"]Ni!8RVW#8[U]f)Ppf',(udnGrIs$kiU@&1nk7&f +;Jd#8d"4!#PVJ!>#Ng!5ed:"53_T%eTf&#mf2a%MBHg!ZD[^'EACO%L3U\o)K"(5;X3u(_S7c +!!NW;&eY`gJcOX-";_:C(C.eW&K*5J',(uY#SICU!#H.Y&dJ[5!!jQ8F&e>es!"9,H%LE+8#T"$[!"]P*! +!jQU#QOi9!Y#bT&/+@1!t,)/$\AAq!!!,G!!*B3f`2Hd$kb-+#R_%@$PEgU#kJ#t'* +n^<%KZnK#_E'!!!3rP#lO`(%1Lef":PMJ'+=L6#rbsH$O?_<&dK6K!;mI]!4)Y*"3gfJ#mgkO +gAhHm!#H=t&ebuY!!!E#!!!E+!!Jo)JaujT#Dg!!! +]GrVup4q>^g?%LEOX!"]MS#Pe?"')hk2&qU+l!!=#C#Tq:k!=9%_!!s&F%XT<2$ka'epAb4,% +/^)*')W4>#_E'"!"95E(C'pQ#QOi0!"9;/!!*?1jo>Du')hk9#7M7Z)&!YtrW!<2%S[3B!!j, +A#SS$N!!!Z2!!!Z,!!*Z>JcNLb!!CIG!=9%_!!s#H'-.`c#7M4Mp](@'&/4sA"pbhS;A'TYJc +Nso$ka19$j[R]!"9JG#S$G,!Y>t\jo>Pr#QP)E')W4H#QOi4>qmf7#R_II#QP\;!!!Z2!!!Z, +!!*`AJcNLb!!CIG!=9%_!"&rF&g1cr&1ded(\n%5&dSmSq>^L$JcNmm!t,_A/H#hT!#5A;!"8 +N$!sfMI''9/t$P"UG).&e5?L!!*lDo`4n&q>^[)%MKTe'^l#%(P2Y9!!!,G!!*B3d +f9VMAh\4L$Ps'I!!!i7!!EZ@!!!]/!!!ge!6G3D&f1NV%/9f&$hjW(&.8IN(ZGDp')W4B#QOi +>#Q4W'#86G)!"8])!tl+S(\[n0$i0i)#Sn,+!7UuK"3gfH#meu['K6Oq7KO28&.8I<'*nR<'a +G?a#7,n]_>jQ@rXo29p](=-');M.(D-QY!"o21!uCq;([1o"')W4>#l4N'(C(Q\o)Jn+$k`s] +qu?g1$kO0K!!3iF$iU,0$P+["(DDB#e,TINbl@hP#m_6q!!#7^P1!XKDMq>^O%')_e2(C, +Nl]Dr*@&eG`i#kJ#u&c_nEkl:\rr!i]4q>^U&(Dd_T!"9)C!WX#:#QOi=!!!i1!!3]H')hk8# +7)LY!"]Ni!8%8R(C19gbl@bN#h&bV'Gg``(]478&.9*VqZ$m5&.8ID!"]bXJcNIa#S7@L;@jB +I$P`@9#T!m[69lM!'FX.*!!r?""W%CD!"o\3!!`oA%NY]b$k2_-$l'BT'*&"K&-*7l&/Bcse, +TINbl@bN#g*,M#SI+F&GuM7#SICU&J%2?!"XY]]`8tVrW)p1!<<^`!:'Uf$PE[L$gmup"3gfH#meZRr=T/C1(= +-^#nRIE9.^r3'+>M*!5&:;&JZ#n#;-Q##l"B'%h9-U((\Of"q1JJ!([P3nGiS+&H)S1$PNo"! +9jId&etB\#OVQl"3gfH#meKM%20BT!!j#H&ecW#&-r_s!4W"4'/L7,$P<.7#o,$4.Ue&>&ete +r!!Nc>&ekrdJcO4!!##82!#+c#!!CIG!=9%T!!!E*!&.egA$kj6d'+BHmY5eY9$O@C@!"K8I!)XUF'+4dG% +0m=U(WcX\#S..L&/Y6E!>#lq!65'A(C19gbl@bN#h]1^&.]9V(^h#S!!r"Ao-!tY_N&_$d\'E&R>!!A"UGME&/PTH!!3ND(XN-^')hk2'(5f'' +aOdR&V:#'!!!,G!!*B3df9LZ$ignGqZ$U4JcMhO!=0M@!!`lF&1@ea#8d19!YPnHk5YJjqu?a +4$h=8t')hk2''oT"&.fP-!6>-?"3gfH#mf5b!"8Z(!"]&A!#,50!!n/VWrN/3#Q=].&f!#b&e +YESq>^X+&-)qOkl:bj()QoL!=]\4!'\iZg'(>l$ +#_E&X!!roD#8[@?'G(ikp&G4.#QPYGkl:br'F4U;!t5SL$g7Qj'(c/+(C(NaJcNso!uD4K+3a +cd#mfAf":GnD#S6D)!!n/VX8i>6$Ps'I!!*];o`+t(r=\Aq$4%7E#8[@?'*&:Nn,NS('FYZgr +Vus4'_DA+&J0No`rH)Abl@bN#i5Oc#SId\(_78M!!!:V!3H5)#S77I',UWJ!"7H[$PO6\$jQb +@&dSaP$h42s$iUeE$NLSF&e5Hho`+t"JcNgk!!CIG!=9%j!!j;l&eG]h%T=eG!!!<#!!*HAJc +N7[!#PS>!#P/*":+uD!"A,mr!3<''`A:;$hjZ"#R_=H$kNm[$ig8=%i0`s\,ZL2bl@bN#ibml +'GMQH+<1q7*(!s&!;m<,'Dqh2&eKWpT`>30&eYEXe,TIRrWioF!#-(O',1EH&/>EaJcN=]!!C +IG!=9%l!"22#)^I=%%9WrB@4UsMr!i]?r;Zp*&dT,%!29Gr#S7IT%+G7W')hk>&c`LO#R_4E$ +OZq7(P2Xt!!!,G!!*B3irBH'-OsAu$O\X9-='OA!;m<,'E%n5$kX0bJcMJE!XB/Ir;Zj'(YJc +g')hk2&qU+c!!!,G!!*B3iW'<_**+0^!"9MN&d\+0r!i]?qu?d0'+9BlU&YK4$ka6e!!!fK#M +B(W')hk2&qU+c!!!,G!!*B3irBE&!sfV\(B>-_&/+R7r!i]?qu?a6'nQFZ!!!E*!!``7#8[U] +&e+U:!>cF2!^R%#7,n]N;rq\bl@hP#m_7)!!N`D'aP$Mmf3Ls!"0GO$\AAV!!3]C#k\0(#8\3Y- +k\4U$k3%6!uD1M&:snD!!=#C#Tq:k!=9%h!!Ub&f(ri([h>-#QPSP&dX'hVuQo-&/5cN!"0AO&h +$I6/Q#CY#71;/!=KJ;')2G,%"\JH!!!,G!!*B3hZ*ca#8%UWmf3Ir!!!QCJcMYJ";M@R(D?B@ +"UGkK%M0$8!!3rI#k%`r',2&f($5Js$PJ$kbl@_Gbl@bN#jhTl$hXK'$PaI1'GU!9":+u-$O_ +OdV#UW7!"]\Ir;Zg*q>^U1%Lrm:!!!E*!!3BA#O_Wp$PNsXjT#>e#7,n]c2[hHbl@bN#jhTm% +i=j&";2.R&.%G +!!u2FK'7p50!!!,G!!*B3mJm:s&dS%/!YYeTmJm5$r;Zm,'+f`qVZ6f,&-rpJ!!3cG%/U#,$N +L/7nc/t/#7LS4#7LkD&F]Z&$k*a^'^#Gu$PNdYJcO'r!!CIG!=9&"!!Q(C!!t'b:\(!6tQE"3gfH#mf +u"":P\=(C0X6";:b8#8cY*!tl=]'nQF_!!!i7!!EoN!"9;$!!Eo?!"9:r!!*lFkl:]"JcO$q! +!CIG!=9&#!!!9'&c`19!!!i5!!4VU#Q>>9&a98r'+f`qT`>&trXoG@!#61R!"o\;!!!E%!!*l +IrXo29j8]>l'+YNb$\AB'!!!i%!!!,G!!*B3k5YMr#lO`(!Y",i!>Gon!1Nrk$PO'V%/U#*#7 +UG/!=0@r!!EZ=&.K#!!6bEC&F9As"3gfJ#mgkOl2Ukk&eP$B!Z(nOJcLB&qZ$a8&e5?`qu?d7 +#8?q6!Y>tMm/R+orq>^U*%2',%!6kKI(DR\o'FXI3!uD4K+3acd#mf_p#nRIW#QOi0F:8 +S0!/(=P#l4N'#7V=\qu?g((CU`M!!$P;\*!=0;:#QPM6!!F)S!#-6$!6tQI'c%Dl%.4)q" +3gfH#mfbq$4%7E$P3:S#7(;CJcLK)!Yl4[quH^)!=K/2!!F)C!!!]1!!Ei@!"oS*!!*?2rVup +2JcNUe!YZ=bm/R+gbl@bN#jD?f&dJsa4==,V(eB5YLB%Da'+5BC!!!W1&ci4CrVus8&H*70!! +ii9!!!R.$k*c#!6"p@(C(<[(%)&%"3gfH#mfSl!!rK4!#,50!!r/r!>#Ng!1j/o(D$QX/ec\6 +#7(S8!"0bU#D)rW!!!,G!!*B3j8]/kr!i]?qu?a+%J0W&'bV/fJcMAB"VD1L&.B3$!!!i7&d/ +D'%M/nt!3H5$"3gfH#mfVm!=0>9%KI1?!!3f>%.sT&%0-eFJcM>A";M1I!#,),!>H@*!!E]8& +ebt2!3H5$"3gfH#mfYn!Z*15r!i]?r;Zp.$igP*!!Gg'.j%k!#,;2":YVB&e+F5!>#Ng!1Elg(DHWF$OdeJ/I +r@'$ig84&:sn=!!!,G!!*B3jo>[H!tJ?=!=/rFrVup+rA$!.k4F!"B;@&e#Tj'+=j@#8[aZg].?_%J]u)',# +ls])Vg5bl@bN#j)*j(DIZ%'In\7JcPNF%Ld]l%1`mQ$iL&-&dT*aJ +cNF`!!CIG!=9%j!!!:V!.k4=!!!i6#QP[t!!N`@&.]-Vr;Zp2(D.(-!5&:3"3gfH#mfJi!!n/ +VJcNai"q(kF%2TN_rW!!9'+f`q])Vg5bl@hP#m_7*!!!:V!.k3i!!X5R!#/'3&H)S0$l=Kq^& +S6O#RDNs!!*B3k5YJuqu?^&JcLB&_>j]Q&c`RQJcN4Z!!CIG!=9%p!!*<@r;Zg*JcLB&_#XHI +q>^O/'S6>!!!!,G!!*B3kl:l$#Sn$Y(P2X=!58F6$P<.7!XKDMJcNLb!!CIG!=9%r!!EuF&f) ++3!.k3X!!jQ +5cl!.k4!!!3iJ&c)J.',,rt_# +OH;bl@bN#gWJP'bV.2!.k3u!!!<#!!*cJJcNUe!!CIG!=9%X!!q#fH]C#fH]C#fH]C#hT+Z$k*$deqS'D2>*$d&GL$iBu)$^q&%(D[J\$P*^W()5'p$O[LU%M'?`%h9'b'[?[d&e5B_!!! +B;%Ls6gd/X^c&Ind@$P*^W().,e%Ls6ge,U$f&Ind@(C^lb((gob%Ls6ge,TOX&J"a>#o=?e! +"0;I%Mfc.!"]MM%KHJ:&.T0\(CL``%Mfc.!!3N?%fQG8&e5B_!"0;I%Mfc/!"g"V%h9?e$P*^ +W().,e%Ls6gRfEa.&IndG&c`:E&C1=a&eY0E#R^kM!"0#Cc2\4^$Ps9Q!!a,:$O76j!"]qZ%K +HJ6&c`:E&-igJ$O76m!"]qZ%KHJ@&c_n;%L3UH$O76m!!3rL%fHA6'+k]S#8."E#8#Ab&/Prh +!!!WE!!!94#8."E#8#Ab!Z)IZrW!98$Ps9Q#8."E#8#Dc&J5WU!!j&>&c`:E&-igJ$O765!!N +u?!"JuErVus8%aP+Z%h]Wf&.99Q!!*lGc2\%[%Ls$M!#GP6!>c6l!!<]2!#GP6!Z)=^rVus8% +ak=W%f65-&dK3O!!*lGdJs7WrW!*7#6556(B+:7(Cnjn#n?q8%h]Wf&.99Q!!*lGdJs7WrW!* +5%Ls$M(B+:7(Cngm!YP_RrW!!9%Mo$D!>c6:!!W]6!!!K/%fHA-%aP+Z%L3@L#87UG!!!MT!! +a2N$O[R^!"Sr-!"R0%KI"; +!!!MW!!s,8!"K5A$O7=Tr;Zg-dJsR`!!!]G$O[R^%fHA-%atC\'b:oW%fHA.%M&F;!"PP"!#, +;@"qqad!!!fGcN!q\r;[$3()-`K(D"gl$l03N!"0PB()-`K(D"gl%LrI=()-`K(Cq8q!!!fGd +Js7WrW!91&/PJE$O7J()#!p!"Su.#nd^X#7CnN%Mf])!"BDJ((u3!JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcN"Tr!i`@$gmup +%]]R0%Y=\4!.k30!!!N-!!*<9mJm4snGiP!]DqpAJcLB&JcL`0!"Sr-!=KD8!!!E!!!!N!!!! +MA!!!Mu!!!CY!.k3&!1j/j%fHAD$P!.:'+>W^(D@8o&dn[>&J#?]&e4mOrVup.rW!*<'+PKb! +<*K+!!j5N((Lie((LTK!"onT%Ls*O!"9VQ%ho!D$l0<`'`7q:'+>Wd%h&F<%fQG9%KHJB&f(r +f&Jbi]rW!Q@&e5BV$NLkS%Lr^O!!!Z@('oKlJcLB&ScAa#rW!cC#7ge7%L2t6&-i1O%2&XQ%2 +8dJ%1W@JrVup.rW!07&c`1I'EAX?!!j&I!#,nU!#,qB!"oqZ!#H+F!#?@N&J+pB()Hr_&GuM6 +%L3@A&Ind@%fQG9%KHJ=&c`UU&c`UUrW!K>#7D=W#7D:Z!#H(L!!!K6JcLB&JcM;@r!j8K'EA ++C$NL/:$NL/@('"j]rW!$+%KI"$\AA1!.k3 +@!!!N)!!!N.!!!N-!!3W1%f?;.%KI"$NL/C('"jNrW!$:%KI"-Z!"fYJ!#-1K&If*J'GgTH!"Sr-$4[%9%L<%I%KHJ=rVup.rVup.rW!H=#7 +CnQ&doH`!"0>N!!!L\!.k3&!1Nrg%f$))%fQG2$PO!c')hk=&f(rf&eb6X%Ls!^rW!33'+PN] +!!!N>qu?^,rVup.rVup.rW!QD%Ls$`%R^j<%M'9S$P3dX%i,!B!"Sr-$4[%9&e5B^&c_nArVu +p.rVup.rW!HB'+PKb!!!]B%MfZb!!!L\!.k3&!.k4=!!!i$!!*H8JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcL +B&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&J +cLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB +&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&Jc +LB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB&JcLB& +JcLB&JcLB&JcLB&T)aB~> + +%%EndData +end +%%PageTrailer +%%Trailer +%%BoundingBox: 0 0 611 791 +%%EOF diff --git a/source/processes/hadronic/models/cascade/doc/preEquilibriumUml.eps b/source/processes/hadronic/models/cascade/doc/preEquilibriumUml.eps new file mode 100644 index 0000000000..53258d130b --- /dev/null +++ b/source/processes/hadronic/models/cascade/doc/preEquilibriumUml.eps @@ -0,0 +1,726 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 39.0 40.0 564.0 775.0 +%%Creator: miheikki using rose_exe +%%CreationDate: Tue Jul 24 18:30:01 2001 +%%Title: preEquilibriumUml.eps +%%EndComments + +%%BeginProlog +200 dict begin +%%BeginResource: Units and resolution +/cm { 300 mul 2.54 div } def +/PageHeight 26.9 cm def + /PageWidth 20.6 cm def +/LineSpace 0.05 cm def +%%EndResource + +%%BeginResource: PenBrush +/TmpPenArray 5 array def +/PenArray 5 array def + /lpStyle 0 def + /lpWidth 1 def + /lpRed 2 def + /lpGreen 3 def + /lpBlue 4 def +/BrushArray 6 array def + /lbStyle 0 def + /lbRed 1 def + /lbGreen 2 def + /lbBlue 3 def + /lbHatchStyle 4 def + /lpPattern 5 def +/BkColorArray 5 array def + /bkRed 0 def + /bkGreen 1 def + /bkBlue 2 def +/TextColorArray 3 array def + /TextRed 0 def + /TextGreen 1 def + /TextBlue 2 def +/PenDashArray [ [] [0.2 cm 0.1 cm] [0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm] [0.3 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm 0.1 cm] [] [] ] def + +/HatchStyleArray [ {HS_HORIZ} {HS_VERT} {HS_BDIAG} {HS_FDIAG} {HS_CROSS} {HS_DIAGCROSS} ] def + +/UpdatePen + {/PenArray exch def /PenWidthMemo PenArray lpWidth get def } def +/UpdateBrush + {/BrushArray exch def} def + +/UpdateBkColor + {/BkColorArray exch def} def + +/UpdateBkMode + {/BkMode exch def} def + +/UpdateTextColor + {/TextColorArray exch def} def + +/HS_HORIZ + {0 LineSpace PageHeight { /i exch def 0 i MyMatrix itransform moveto PageWidth i MyMatrix idtransform lineto } for stroke } def +/HS_VERT + {0 LineSpace PageWidth { /i exch def i 0 MyMatrix itransform moveto i PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_CROSS + { HS_HORIZ HS_VERT } def + +/HS_FDIAG + {0 PageHeight sub LineSpace 3.5 mul PageWidth + { /i exch def i 0 MyMatrix itransform moveto i PageHeight add PageHeight + MyMatrix idtransform lineto } for stroke } def +/HS_BDIAG + {0 LineSpace 3.5 mul PageWidth PageHeight add + { /i exch def i 0 MyMatrix itransform moveto i PageHeight sub + PageHeight MyMatrix idtransform lineto } for stroke } def +/HS_DIAGCROSS + { HS_FDIAG HS_BDIAG } def + +/StrokeWithPen +{/join exch def /Penwidth PenArray lpWidth get def + Penwidth setlinewidth + Penwidth 1 le + { 0 setlinecap } + { Penwidth 5 gt { 1 setlinecap } { 2 setlinecap } ifelse } ifelse + join { Penwidth 5 le {0 setlinejoin 3 setmiterlimit} + { Penwidth 8 gt { 1 setlinejoin } { 2 setlinejoin } ifelse } ifelse } if + join LineJoin -1 ne and {SetLineJoin setlinejoin} if + join MiterLimit -1 ne and {MiterLimit miterlimit} if + PenArray lpRed get 255 div PenArray lpGreen get 255 div PenArray lpBlue get 255 div setrgbcolor + /PenStyle PenArray lpStyle get def + PenStyle 5 lt { PenDashArray PenStyle get 0 setdash stroke } + { PenStyle 6 eq { [] 0 setdash stroke } {newpath} ifelse } ifelse + join {0 setlinejoin 10 setmiterlimit} if } def + +/FillWithBkColor + { gsave BkColorArray bkRed get 255 div +BkColorArray bkGreen get 255 div BkColorArray bkBlue get +255 div setrgbcolor fill grestore } def + +/FillWithBrush + {/BrushStyle BrushArray lbStyle get def + BrushStyle 2 eq dup BrushStyle 0 eq or + { BrushArray lbRed get 255 div BrushArray lbGreen get 255 div BrushArray lbBlue get 255 div setrgbcolor + { gsave BkMode 2 eq {FillWithBkColor} if clip +PenArray lpWidth get PenWidthMemo dup 0 ne {div} {pop} ifelse setlinewidth + HatchStyleArray BrushArray lbHatchStyle get get exec + grestore } + { fill } ifelse } + {BrushStyle 3 eq {BrushArray 5 get p SHR + gsave clip /Tmp save def pfill Tmp restore grestore} {pop}ifelse + } ifelse } def + +/Fill&Stroke + { gsave FillWithBrush grestore StrokeWithPen } def + /patfont 10 dict def patfont begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 16 16] + def/Encoding StandardEncoding def + /BuildChar{pop pop 16 0 0 0 16 16 + setcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bind def + end +/p{/pat 32 string def + {}forall 0 1 7{dup 2 mul pat exch 3 index put dup + 2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index + put 2 mul 17 add pat exch 2 index put pop}for}bind def + +/AU{1 add cvi 15 or}bind def +/AD{1 sub cvi -16 and}bind def +/SHR{pathbbox +AU/Y1 exch def AU/X1 exch def AD/Y0 exch def AD/X0 exch def}bind def + +/M /moveto load def + +/pfill{/PatFont patfont +definefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch +show}for pop}for}bind def +%%EndResource + +%%BeginResource: LineTo +/LineTo + { /y exch def /x exch def + moveto x y lineto currentpoint false StrokeWithPen } def +%%EndResource + +%%BeginResource: RectanglePath +/RectanglePath +{ +3 index 3 index moveto 3 index 1 index lineto +1 index 1 index lineto 1 index 3 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +/RectanglePathBackwards +{ +3 index 3 index moveto 1 index 3 index lineto +1 index 1 index lineto 3 index 1 index lineto +3 index 3 index lineto pop pop pop pop closepath} def +%%EndResource + +%%BeginResource: EllipticPath +/EllipticPath +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 360 0 arcn closepath +setmatrix +pop pop pop pop +}def +/EllipticPathBackwards +{matrix currentmatrix dup 3 index 6 index sub 2 div +3 index 6 index sub 2 div +7 index 2 index add +7 index 2 index add +matrix translate 3 1 roll matrix scale +exch matrix concatmatrix exch matrix concatmatrix setmatrix +1 0 moveto 0 0 1 0 360 arc closepath +setmatrix +pop pop pop pop +}def +%%EndResource + +%%BeginResource: Rectangle +/RectangleOutLine +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + false StrokeWithPen } def + +/FillRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto + closepath + FillWithBrush} def +/FrameRectangle +{/y2 exch def /x2 exch def /y1 exch def /x1 exch def + /MyMatrix matrix def + /x1 x1 0.5 sub def /x2 x2 0.5 add def /y2 y2 0.5 sub def /y1 y1 0.5 add def newpath + x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto x1 y1 lineto + /x1 x1 1 add def /x2 x2 1 sub def /y2 y2 1 add def /y1 y1 1 sub def + x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto x1 y1 lineto + closepath + FillWithBrush} def +%%EndResource + +%%BeginResource: Polygon +/Polygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + true Fill&Stroke } def + +/FillPolygon +{/MyMatrix matrix def + newpath PolylineArray PolylineMode 1 sub get exec closepath + FillWithBrush } def +%%EndResource + +%%BeginResource: Polyline +/PolylineArray [ {DrawPolyline} {Bezier} ] def +/Polyline +{PolylineArray PolylineMode 1 sub get exec pop pop currentpoint true StrokeWithPen } def +/Bezier +{/nbPoint exch def /nbCurves nbPoint 1 sub 3 idiv def /nbLeft nbPoint 1 sub nbCurves 3 mul sub def + moveto 1 1 nbCurves { pop 4 2 roll 6 -2 roll curveto } for + nbLeft 1 eq { lineto } {nbLeft 2 eq { 4 2 roll 2 copy curveto } if } ifelse + } def +/DrawPolyline +{/nbPoint exch def moveto + 1 1 nbPoint 1 sub { pop lineto } for + } def + +%%EndResource + +%%BeginResource: Ellipse +/Ellipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false Fill&Stroke + grestore } def + +/FillEllipse +{gsave + /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 1 0 360 arc closepath + FillWithBrush + grestore } def +%%EndResource + +%%BeginResource: Arc +/Arc +{ gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy + scale 1 -1 scale + newpath + ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + false StrokeWithPen + grestore } def +%%EndResource + +%%BeginResource: Pie +/Pie +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath 0 0 moveto ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: Chord +/Chord +{gsave + /ang1 exch def /ang2 exch def /Dy exch def /Dx exch def /Cy exch def /Cx exch def + Cx Cy translate Dx Dy scale + 1 -1 scale + /MyMatrix Dx Dy matrix scale Cx Cy matrix translate matrix concatmatrix def + newpath ClockWise {0 0 1 ang2 ang1 narc} {0 0 1 ang2 ang1 arc} ifelse closepath + 1 -1 scale 1 Dx div 1 Dy div scale 0 Cx sub 0 Cy sub translate + true Fill&Stroke + grestore } def +%%EndResource + +%%BeginResource: RoundRectangle + /min {1 index 1 index le { pop} {exch pop} ifelse } def +/RoundRectangle +{/r2 exch def /r1 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + y2 2 div r2 min cvi /r2 exch def + x2 2 div r1 min cvi /r1 exch def + /width x2 r1 idiv def /height y2 r2 idiv def + gsave + x1 y1 translate r1 r2 scale + 1 -1 scale + /MyMatrix r1 r2 matrix scale x1 y1 matrix translate matrix concatmatrix def + newpath + 1 1 1 180 270 arc + width 1 sub 0 lineto width 1 sub 1 1 270 0 arc + width height 1 sub lineto width 1 sub height 1 sub 1 0 90 arc + 1 height lineto 1 height 1 sub 1 90 180 arc + closepath + PenArray TmpPenArray copy pop + PenArray lpWidth PenArray lpWidth get r1 abs r2 abs add 2 div div put + false Fill&Stroke + TmpPenArray PenArray copy pop + grestore } def +%%EndResource + +%%BeginResource: TextOut +/TextOut +{TextColorArray 0 get 255 div TextColorArray 1 get 255 div TextColorArray 2 get 255 div setrgbcolor +gsave translate rotate +0 0 moveto /expwidth exch def dup stringwidth pop expwidth exch div -1 scale show pop pop currentpoint grestore} def +%%EndResource + +%%BeginResource: MwSetFont +/EncodingDict 256 dict def +EncodingDict begin +0 [/.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quotesingle + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash /zero /one + /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less + /equal /greater /question /at /A /B /C + /D /E /F /G /H /I /J /K /L /M /N /O /P + /Q /R /S /T /U /V /W /X /Y /Z + /bracketleft /backslash /bracketright + /asciicircum /underscore /grave /a + /b /c /d /e /f /g /h /i /j /k /l /m /n + /o /p /q /r /s /t /u /v /w /x /y /z + /braceleft /bar /braceright /asciitilde + /.notdef /.notdef /.notdef /quotesinglbase + /florin /quotedblbase /ellipsis /dagger + /daggerdbl /circumflex /perthousand /Scaron + /guilsinglleft /OE /.notdef /.notdef + /.notdef /.notdef /quoteleft /quoteright + /quotedblleft /quotedblright /bullet /endash + /emdash /tilde /trademark /scaron + /guilsinglright /oe /.notdef /.notdef + /Ydieresis /.notdef /exclamdown /cent + /sterling /currency /yen /brokenbar + /section /dieresis /copyright + /ordfeminine /guillemotleft /logicalnot + /hyphen /registered /macron /degree + /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine + /guillemotright /onequarter /onehalf + /threequarters /questiondown /Agrave + /Aacute /Acircumflex /Atilde /Adieresis + /Aring /AE /Ccedilla /Egrave /Eacute + /Ecircumflex /Edieresis /Igrave /Iacute + /Icircumflex /Idieresis /Eth /Ntilde + /Ograve /Oacute /Ocircumflex /Otilde + /Odieresis /multiply /Oslash /Ugrave + /Uacute /Ucircumflex /Udieresis /Yacute + /Thorn /germandbls /agrave /aacute + /acircumflex /atilde /adieresis /aring + /ae /ccedilla /egrave /eacute + /ecircumflex /edieresis /igrave /iacute + /icircumflex /idieresis /eth /ntilde + /ograve /oacute /ocircumflex /otilde + /odieresis /divide /oslash /ugrave + /uacute /ucircumflex /udieresis /yacute + /thorn /ydieresis] def +end +/fntdict 100 dict def + +/MwScaleAndSetFont +{ + 2 index findfont dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + dup EncodingDict exch known + {EncodingDict exch get /Encoding exch def} {pop} ifelse + currentdict end /font0 exch definefont + exch scalefont setfont pop +} def + +/MwSetFont +{ + % look in cache of scaled fonts + 1 index /askedsize exch def + 2 index /askedname exch def + fntdict askedname known + { % font name found in cache - what about the size + /fntszdict fntdict askedname get def + fntszdict askedsize known + { + % font size found in cache + fntszdict askedsize get setfont pop pop pop + } + { + MwScaleAndSetFont + fntszdict askedsize currentfont put + } + ifelse + } + { % not found in cache + MwScaleAndSetFont + /fntszdict 200 dict def + fntszdict askedsize currentfont put + fntdict askedname fntszdict put + } + ifelse +} def +%%EndResource + +%%BeginResource: DisplayBB +/DisplayBB {gsave initgraphics 72 300 div 72 300 div scale 0 3300 translate +1 -1 scale 1 setlinewidth 1 0 0 setrgbcolor +/y2 exch def /x2 exch def /y1 exch def /x1 exch def +newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath +stroke grestore } def +%%EndResource + +%%EndProlog + +%%BeginSetup +[{ +%%BeginFeature: *InputSlot AUTO +6 statusdict /setpapertray get exec +%%EndFeature +} stopped cleartomark +[{ +%%BeginFeature: *PageRegion LETTER +LETTER +%%EndFeature +} stopped cleartomark +%%EndSetup + +%%Page: +%%BeginPageSetup +/ClockWise false def /LineJoin -1 def /MiterLimit -1 def /PolylineMode 1 def /LineCap 0 def +[0 0 0 0 0] UpdatePen +[0 255 255 255 0 <>] UpdateBrush +[0 0 0] UpdateTextColor +[255 255 255] UpdateBkColor +2 UpdateBkMode +0 0 + +% All the numbers (for positions, length or font size) given +% in this file are expressed in pixels, but interpreted by +% Postscript as points (1/72 inch)! +% -->so scale accordingly! +72 300 div 72 300 div scale + +% So that (0, 0) is at top-left corner of paper sheet (takes postscript scaling into account too) +0 3300 translate +1 -1 scale + +/Courier 38 0 MwSetFont +gstate /Mwgstate exch def +%%EndPageSetup: +Mwgstate setgstate newpath +16 16 2416 3054 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1054 536 1761 647 FillRectangle +1054 536 1761 647 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4NonEquilibriumEvaporator) 680 -0.00 1068 582 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1054 596 1761 647 FillRectangle +1054 596 1761 647 RectangleOutLine +1054 619 1761 647 FillRectangle +1054 619 1761 647 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1782 72 2281 183 FillRectangle +1782 72 2281 183 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4ExitationHandler) 471 -0.00 1796 118 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1782 132 2281 183 FillRectangle +1782 132 2281 183 RectangleOutLine +1782 155 2281 183 FillRectangle +1782 155 2281 183 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1127 130 1656 285 FillRectangle +1127 130 1656 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4VPreCompoundModel) 497 -0.00 1143 176 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1127 238 1656 285 FillRectangle +1127 238 1656 285 RectangleOutLine +1127 261 1656 285 FillRectangle +1127 261 1656 285 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(\(from Geant4\)) 340 -0.00 1222 227 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1719 166 +1781 159 LineTo +pop pop 1781 159 +1747 178 LineTo +pop pop 1781 159 +1743 148 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1719 166 +1657 174 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +pop pop 1405 535 +1395 286 LineTo +[0 255 255 255 0 <>] UpdateBrush +1375 347 1419 345 1395 286 3 Polygon +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +1815 312 2312 423 FillRectangle +1815 312 2312 423 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +[0 1 0 0 0] UpdatePen +[0 0 0 0 0 <>] UpdateBrush +1 UpdateBkMode +[255 255 255] UpdateBkColor +(G4PreEqTransitions) 471 -0.00 1828 358 TextOut +[255 255 255] UpdateBkColor +2 UpdateBkMode +[0 192 192 192 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[1 0 0 0 0 <>] UpdateBrush +1815 372 2312 423 FillRectangle +1815 372 2312 423 RectangleOutLine +1815 395 2312 423 FillRectangle +1815 395 2312 423 RectangleOutLine +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 43 0 MwSetFont +/Courier 38 0 MwSetFont +[0 192 192 192 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +[1 0 0 0 0 <>] UpdateBrush +[0 1 128 128 128] UpdatePen +[0 128 128 128 0 <>] UpdateBrush +pop pop 1743 290 +1657 270 LineTo +pop pop 1657 270 +1695 263 LineTo +pop pop 1657 270 +1689 293 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 128 128 128 0 <>] UpdateBrush +pop pop 1743 290 +1829 311 LineTo +[1 0 0 0 0 <>] UpdateBrush +[0 255 255 255 0 <>] UpdateBrush +[0 0 0 0 0] UpdatePen +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +pop pop 166 3054 +766 3054 LineTo +/Courier 35 0 MwSetFont +/Courier 38 0 MwSetFont +/Courier 35 0 MwSetFont +(File: /afs/cern.ch/user/m/miheikki/public/html/inucl/doc/inucl.mdl Tue Jul 24 18:30:01 2001 Class ) 2188 -0.00 166 3089 TextOut +(Diagram: pre-equilibrium / Main Page 1) 821 -0.00 166 3126 TextOut +Mwgstate setgstate newpath +0 0 2432 3182 RectanglePath +clip newpath +/Courier 38 0 MwSetFont +/Courier 38 0 MwSetFont + pop pop % pop out coordinates for current pen position + showpage +end +% end of the MainWin EPS file diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BEChargedChannel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BEChargedChannel.hh index 3ea12a1896..75edd398ad 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BEChargedChannel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BEChargedChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BEDeuteronChannel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BEDeuteronChannel.hh index db3d89dd92..8aa483c142 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BEDeuteronChannel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BEDeuteronChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BEGammaDeexcitation.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BEGammaDeexcitation.hh index fd9143e2c3..552b696683 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BEGammaDeexcitation.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BEGammaDeexcitation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe3Channel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe3Channel.hh index 33fc64eae1..e3c2952ebb 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe3Channel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe3Channel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe4Channel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe4Channel.hh index 7e10ddb2d3..91859520a1 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe4Channel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BEHe4Channel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BENeutronChannel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BENeutronChannel.hh index 4af37d3bad..dcefbb587d 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BENeutronChannel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BENeutronChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BEProtonChannel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BEProtonChannel.hh index 17b48f1d52..95983cb516 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BEProtonChannel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BEProtonChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BETritonChannel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BETritonChannel.hh index 3e40eaf46f..c201b5e492 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BETritonChannel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BETritonChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporation.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporation.hh index dce2256476..f4169a183f 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporation.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporationChannel.hh b/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporationChannel.hh index ee668917e1..ce49a10d4b 100644 --- a/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporationChannel.hh +++ b/source/processes/hadronic/models/cascade/evaporation/include/G4BertiniEvaporationChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BEChargedChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BEChargedChannel.cc index d9116b88e4..8d19cab6bc 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BEChargedChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BEChargedChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BEDeuteronChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BEDeuteronChannel.cc index 14319ff2b7..4c6eda60c9 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BEDeuteronChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BEDeuteronChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BEGammaDeexcitation.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BEGammaDeexcitation.cc index 2a14b193ed..f6b0a4113b 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BEGammaDeexcitation.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BEGammaDeexcitation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe3Channel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe3Channel.cc index 62415712af..170a780826 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe3Channel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe3Channel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe4Channel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe4Channel.cc index 913881124a..30c5133d0b 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe4Channel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BEHe4Channel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BENeutronChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BENeutronChannel.cc index 6d3fda106e..2daa6b1b23 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BENeutronChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BENeutronChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BEProtonChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BEProtonChannel.cc index f222668a35..86c86d3343 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BEProtonChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BEProtonChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BETritonChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BETritonChannel.cc index d60e31e88c..f5f4af63c4 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BETritonChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BETritonChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc index 9b472aa8cd..4cdef0137b 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc index 1bf9ff9f28..b595c13f86 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/cascade/hetc.wst b/source/processes/hadronic/models/cascade/hetc.wst deleted file mode 100644 index 694af536c4..0000000000 --- a/source/processes/hadronic/models/cascade/hetc.wst +++ /dev/null @@ -1,85 +0,0 @@ -WORKSET VERSION 1 - -# -# Workshop WorkSet File -# - -%%File - -[FileData - (processDirectory ".") - (currentDirectory ".") - (files - { - "cascade/test/G4Test.cc" - "cascade/src/G4Cascade.cc" - "evaporation/src/G4DeExitation.cc" - }) -] - -%%Build - -[BuildData - (currentDirectory "cascade/test") - (targets - { - [BuildTarget - (makefile "GNUmakefile") - (target "") - (options "") - (command "gmake") - (buildDirectory "cascade/test") - ] - [BuildTarget - (makefile "GNUmakefile") - (target "") - (options "") - (command "gmake") - (buildDirectory ".") - ] - }) -] - -%%Debug - -[DebugData - (currentDirectory ".") - (programs - { - }) -] - -%%Browse - -[BrowseData - (AccuBrowseDirectory ".") - (PatternSearchDirectory ".") - (mode "PatternSearch") - (directories - { - "/tmp/miheikki/geant4/source/processes/hadronic/models/cascade" - "/tmp/miheikki/geant4/source/processes/hadronic/models/cascade/cascade" - "/tmp/miheikki/geant4/source/processes/hadronic/models/cascade/cascade/include" - }) -] - -%%SUNW_Analyzer - - - -%%SUNW_Looptool - - - -%%SUNW_Codemgrtool - - - -%%tha - - - -%%SUNW_Visual - - - diff --git a/source/processes/hadronic/models/cascade/pre_compound/GNUmakefile b/source/processes/hadronic/models/cascade/pre_compound/GNUmakefile new file mode 100644 index 0000000000..fa21792461 --- /dev/null +++ b/source/processes/hadronic/models/cascade/pre_compound/GNUmakefile @@ -0,0 +1,39 @@ +# $Id: GNUmakefile,v 1.2 1999/11/24 14:14:59 miheikki Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_cascade_precompound + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ + -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/generator/management/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh b/source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh new file mode 100644 index 0000000000..85666b06bb --- /dev/null +++ b/source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh @@ -0,0 +1,479 @@ +// +// ******************************************************************** +// * 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: G4PreEquilibrium.hh,v 1.9 2001/07/11 10:03:54 gunter Exp $ + // GEANT4 tag $Name: geant4-05-00 $ + // + // Hadronic Process: Pre-equilibrium HETC + // Joseph L. Chuma, TRIUMF, 24-Mar-2000 + +#ifndef G4PREEQUILIBRIUM +#define G4PREEQUILIBRIUM + +#include "globals.hh" +#include "G4DynamicParticle.hh" +#include "G4Nucleus.hh" +#include "g4std/vector" + + class G4PreEquilibrium + { + private: + struct EXITON + { + G4int protons; + G4int neutrons; + G4int hols; // not sure what these are + }; + + struct MASTRUCT + { + G4ThreeVector momentum; + G4double array[6]; + }; + + struct PARZS + { + G4int particleType; + G4double energy; + G4double angle1; + G4double angle2; + G4double what; + G4double charge; + }; + + struct IPSTRUCT + { + G4int proton; + G4int ip1; + G4int ip2; + G4int nuclearZone; + G4int ip4; // values from 0 to N + }; + +#define G4Vector G4std::vector + typedef G4Vector< G4DynamicParticle* > DPvector; + typedef G4Vector< G4double > Dvector; + typedef G4Vector< G4int > Ivector; + typedef G4Vector< MASTRUCT > MAvector; + typedef G4Vector< PARZS > PARZvector; + typedef G4Vector< IPSTRUCT > IPvector; + + public: + G4PreEquilibrium( G4Nucleus *aNucleus ) + : theNucleus(aNucleus) + {} + + ~G4PreEquilibrium() + {} + + G4PreEquilibrium operator=( const G4PreEquilibrium & ); + + G4PreEquilibrium( const G4PreEquilibrium & ); + + private: + void mashnk( G4int &, const G4double, const G4double, const G4double, + const G4double, const G4double, const G4double, const G4double ); + + G4double cemgeo( const G4int, const G4int ); + + G4double bf( const G4double, const G4double, const G4double ); + + G4double quadraticInterpolation( const G4double, const G4double *, + const G4double *, const G4int ); + + G4double massDefect( const G4double, const G4double ) const; + + G4double gamagu( const G4int ); + + G4double tkin( const G4int, const G4double ); + + void transitionRates( const G4double, const G4double, + G4double &, G4double &, G4double & ); + + G4double tkinm1( const G4int, const G4double, const G4double ); + + G4double barfit( const G4double, const G4double, const G4int ); + + G4bool cascem( G4ThreeVector ); + + void cascem1( G4ThreeVector, MASTRUCT &, IPSTRUCT &, G4int & ); + + G4bool pointe( MASTRUCT &, IPSTRUCT &, G4double *, G4int *, + G4ThreeVector, G4double, G4double, G4double, + G4double, G4double, const G4double ); + + G4double geometricalParticlePath( const MASTRUCT, const IPSTRUCT ); + + G4bool refrac( const G4int, MASTRUCT &, IPSTRUCT & ) const; + + G4double wopt( const G4double, const G4double, const G4int ); + + void typint( MASTRUCT &, IPSTRUCT &, G4double *, G4int *, G4ThreeVector, + G4double, G4double, G4double, G4double, G4double, G4int, G4int & ); + + G4int elasticScattering( const G4ThreeVector, const G4double, const G4double, const MASTRUCT, + const IPSTRUCT, const G4int *, const G4int, const G4int, + const G4int, const G4int, const G4int, const G4int ); + + G4bool inelasticScattering( MASTRUCT &, IPSTRUCT &, G4int *, G4int, G4int, G4int, + G4int, G4int, G4ThreeVector, G4double, G4double, G4int, G4int ); + + G4double wim( const G4int, const MASTRUCT, const IPSTRUCT ); + + void pauliPrinciple( MASTRUCT &, IPSTRUCT &, G4ThreeVector, G4int, G4int, const G4int ); + + void absorption( const MASTRUCT, const IPSTRUCT, G4double *, G4int, G4int &, G4ThreeVector ); + + void chargeInAbsorption( const G4int, const G4int, G4int &, G4int & ); + + void momentaCalc( const MASTRUCT, const G4ThreeVector, const G4double, G4ThreeVector, + G4ThreeVector, const G4double, const G4double, const G4double ); + + void partnerSelection( const MASTRUCT, const IPSTRUCT, G4double *, G4int * ); + + void chinel( IPSTRUCT &, const G4int, const G4int, const G4int, const G4int, + const G4int, const G4int, const G4double, const G4int, G4int * ); + + void direction( G4ThreeVector, const G4double, const G4double, const G4int, + const G4int, const G4int, const MASTRUCT, G4int &, const G4int ); + + G4int coefficientTypeA( const G4int, const G4int, const G4int ); + + G4bool vmnsp( const MASTRUCT, const IPSTRUCT, const G4double, const G4int, + G4int &, const G4int, const G4int, const G4double ); + + G4double secondaryParticleMomentum( const G4int, const G4double ); + + G4int coefficientTypeB( const G4int, const G4int, const G4int ); + + void statisticalModel( const G4double, const G4ThreeVector, const MASTRUCT, + const G4int *, const G4int ); + + void isocem( const G4double, const G4ThreeVector, const G4double, const MASTRUCT, + const G4int *, const G4int ); + + G4ThreeVector cms( const G4ThreeVector, const G4ThreeVector, const G4double ) const; + + void bertcem( const G4int, const G4int ); + + G4double fintfis( const G4double, const G4double, const G4double, const G4double ); + + G4double fints2( G4double, G4double, G4double, G4double ); + + G4double erupcem( DPvector &, DPvector &, DPvector &, DPvector &, DPvector &, DPvector & ); + + void precof(); + + G4double arfaf( G4double * ); + + G4double fam( const G4double, const G4double, const G4double ); + + G4double gameqf( const G4int, const G4double, const G4double, const G4double, const G4double ); + + G4double poten( const G4int, const IPSTRUCT ) const; + + G4double cinema( const G4ThreeVector, const G4ThreeVector, G4ThreeVector &, + G4double &, G4double &, G4double &, G4double &, const G4double ) const; + + G4ThreeVector rotation( const G4ThreeVector, const G4ThreeVector, const G4ThreeVector ) const; + + G4double crossSectionInterp( const G4double, const G4int ); + + G4double sigmat( const G4int, const G4int, const G4int, + const G4int, const G4int, const G4double ); + + void slqek( G4int &, G4int &, G4int &, G4int &, G4int &, + const G4int, const G4int, const G4int, + const G4int, const G4int, const G4int, + const G4int, const G4int ); + + G4double costa( const G4int, const G4double ); + + G4double cosex( const G4int, const G4double, const G4double ); + + G4double cosel( const G4int, const G4int, const G4int, + const G4double, const G4double ); + + void lpoly( const G4double, const G4int, G4double * ); + + inline void SetINDI( const G4bool v ) + { indi = v; } + + inline G4bool GetINDI() const + { return indi; } + + inline void SetING( const G4int i ) + { ing = i; } + + inline G4int GetING() const + { return ing; } + + inline void SetCM0( const G4double v ) + { cm0 = v; } + + inline G4double GetCM0() const + { return cm0; } + + inline void SetT0( const G4double v ) + { t0 = v; } + + inline G4double GetT0() const + { return t0; } + + inline void SetT1( const G4double v ) + { t1 = v; } + + inline G4double GetT1() const + { return t1; } + + inline void SetT2( const G4double v ) + { t2 = v; } + + inline G4double GetT2() const + { return t2; } + + inline void SetME0( const G4double v ) + { me0 = v; } + + inline G4double GetME0() const + { return me0; } + + inline void SetMQ0( const G4double v ) + { mq0 = v; } + + inline G4double GetMQ0() const + { return mq0; } + + inline void SetA( const G4double v ) + { a = v; } + + inline G4double GetA() const + { return a; } + + inline void SetZ( const G4double v ) + { z = v; } + + inline G4double GetZ() const + { return z; } + + inline G4double GetUP() const + { return up; } + + inline void SetUP( const G4double v ) + { up = v; } + + inline void SetU( const G4double v ) + { u = v; } + + inline G4double GetU() const + { return u; } + + inline G4double GetT1Y( const G4int i ) const + { return t1y[i]; } + + inline G4double GetT2XY( const G4int i ) const + { return t2xy[i]; } + + inline G4double shell( const G4double a, const G4double z ) + { + // Cameron (Can.J.Phys.35(1957)1021) shell and pairing corrections + // + return t1y[int(z)-1] + t2xy[int(a-z)-1]; + } + + inline void SetRBIG( const G4int i, const G4double v ) + { rbig[i] = v; } + + inline G4double GetRBIG( const G4int i ) const + { return rbig[i]; } + + inline void SetR0( const G4double v ) + { r0 = v; } + + inline G4double GetR0() const + { return r0; } + + inline G4double SetBN( const G4double v ) + { bn = v; } + + inline G4double GetBN() const + { return bn; } + + inline void SetAC( const G4double v ) + { ac = v; } + + inline G4double GetAC() const + { return ac; } + + inline G4int GetN0() const + { return n0; } + + inline void SetN0( const G4int v ) + { n0 = v; } + + inline G4int GetH0() const + { return h0; } + + inline void SetH0( const G4int v ) + { h0 = v; } + + inline G4int GetP0() const + { return p0; } + + inline void SetP0( const G4int v ) + { p0 = v; } + + inline G4int GetPZ0() const + { return pz0; } + + inline void SetPZ0( const G4int v ) + { pz0 = v; } + + inline G4ThreeVector GetLXYZ() const + { return lxyz; } + + inline void SetLXYZ( const G4ThreeVector v ) + { lxyz = v; } + + inline void SetWF( const G4double v ) + { wf = v; } + + inline G4double GetWF() const + { return wf; } + + inline void SetANG1( const G4int i, const G4int j, const G4int k, const G4double v ) + { ang1[i][j][k] = v; } + + inline G4double GetANG1( const G4int i, const G4int j, const G4int k ) const + { return ang1[i][j][k]; } + + inline void SetANG2( const G4int i, const G4int j, const G4int k, const G4double v ) + { ang2[i][j][k] = v; } + + inline G4double GetANG2( const G4int i, const G4int j, const G4int k ) const + { return ang2[i][j][k]; } + + inline void SetEPART( const G4int i, const G4int j, const G4double v ) + { epart[i][j] = v; } + + inline G4double GetEPART( const G4int i, const G4int j ) const + { return epart[i][j]; } + + inline void SetHEPART( const G4int i, const G4int j, const G4double v ) + { hepart[i][j] = v; } + + inline G4double GetHEPART( const G4int i, const G4int j ) const + { return hepart[i][j]; } + + inline void SetNHIST( const G4int v ) + { nhist = v; } + + inline G4double GetNHIST() const + { return nhist; } + + inline G4double GetZ_FCOMON( const G4int i, const G4int j ) const + { return z_fcomon[i][j]; } + + inline G4double GetA_FCOMON( const G4int i, const G4int j ) const + { return a_fcomon[i][j]; } + + private: + static G4double t1y[130]; + static G4double t2xy[200]; + + static G4double oneThird; + static G4double twoThirds; + static G4double fourThirds; + + EXITON exitons; + + G4ThreeVector lxyz; + + Dvector rbig; + Dvector af; + Dvector ngen; + Dvector gb; + Dvector alj; + Dvector afj; + Dvector zfj; + Dvector rj; + Dvector vj; + Dvector bj; + Dvector r0j; + Dvector rsm; + Dvector rhon; + Dvector rhop; + Dvector tfp; + Dvector tfn; + + G4Vector< Dvector* > spt; + + MAvector pmemo; + PARZvector parz; + IPvector imemo; + + G4Nucleus *theNucleus; + + G4bool indi; + + G4int n0; + G4int nhist; + G4int h0; + G4int p0; + G4int pz0; + G4int KTOT; + G4int ing; + + G4double up; // excitation energy before evaporation + G4double ap; // atomic weight before evaporation + G4double zp; // atomic number before evaporation + G4double u; // excitation energy after evaporation + G4double a; // atomic weight after evaporation + G4double z; // atomic number after evaporation + + G4double wf; + G4double ac; + G4double exn; + G4double r0; + G4double cm0; + G4double t0; + G4double t1; + G4double t2; + G4double mq0; + G4double me0; + G4double bn; + G4double wam; + G4double aNucl; + G4double zNucl; + + G4double a_fcomon[10][17]; + G4double z_fcomon[10][17]; + + G4double epart[100][2]; + G4double hepart[100][4]; + + G4double ang1[100][3][2]; + G4double ang2[100][3][4]; + }; + +#endif diff --git a/source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc b/source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc new file mode 100644 index 0000000000..dfc04650a2 --- /dev/null +++ b/source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc @@ -0,0 +1,3610 @@ +// +// ******************************************************************** +// * 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: G4PreEquilibrium.cc,v 1.9 2001/07/11 10:03:55 gunter Exp $ + // GEANT4 tag $Name: geant4-05-00 $ + // + // Hadronic Process: Pre-equilibrium HETC + // Joseph L. Chuma, TRIUMF, 24-Mar-2000 + +#include "G4PreEquilibrium.hh" +#include "Randomize.hh" + + G4double oneThird = 1./3.; + G4double twoThirds = 2./3.; + G4double fourThirds = 4./3.; + + // S(Z)+P(Z) from Tab. 1 from A.G.W. Cameron, Canad. J. Phys., 35(1957)1021 + // or Delta M(Z) from Tab. 97 of book [1] + G4double G4PreEquilibrium::t1y[130] = + { 20.80, 15.80, 21.00, 16.80, 19.80, + 16.50, 18.80, 16.50, 18.50, 17.20, + 18.26, 15.05, 16.01, 12.04, 13.27, + 11.09, 12.17, 10.26, 11.04, 8.41, + 9.79, 7.36, 8.15, 5.63, 5.88, + 3.17, 3.32, 0.82, 1.83, 0.97, + 2.33, 1.27, 2.92, 1.61, 2.91, + 1.35, 2.40, 0.89, 1.74, 0.36, + 0.95, -0.65, -0.04, -1.73, -0.96, + -2.87, -2.05, -4.05, -3.40, -5.72, + -3.75, -4.13, -2.42, -2.85, -1.01, + -1.33, 0.54, -0.02, 1.74, 0.75, + 2.24, 1.00, 1.98, 0.79, 1.54, + 0.39, 1.08, 0.00, 0.78, -0.35, + 0.58, -0.55, 0.59, -0.61, 0.59, + -0.35, 0.32, -0.96, -0.52, -2.08, + -2.46, -3.64, -1.55, -0.96, 0.97, + 0.88, 2.37, 1.75, 2.72, 1.90, + 2.55, 1.46, 1.93, 0.86, 1.17, + 0.08, 0.39, -0.76, -0.39, -1.51, + -1.17, -2.36, -1.95, -3.06, -2.62, + -3.55, -2.95, -3.75, -3.07, -3.79, + -3.06, -3.77, -3.05, -3.78, -3.12, + -3.90, -3.35, -4.24, -3.86, -4.92, + -5.06, -6.77, -7.41, -9.18, -10.16, + -11.12, -9.76, -9.23, -7.96, -7.65 }; + + // S(N)+P(N) from Tab. 1 from A.G.W. Cameron, Canad. J. Phys., 35(1957)1021 + // or Delta M(N) from Tab. 97 of book [1] + G4double G4PreEquilibrium::t2xy[] = + { -8.40, -12.90, -8.00, 11.90, -9.20, + -12.50, -10.80, -13.60, -11.20, -12.20, + -12.81, -15.40, -13.07, -15.80, -13.81, + -14.98, -12.63, -13.76, -11.37, -12.38, + -9.23, -9.65, -7.64, -9.17, -8.05, + -9.72, -8.87, -10.76, -8.64, -8.89, + -6.60, -7.13, -4.77, -5.33, -3.06, + -3.79, -1.72, -2.79, -0.93, -2.19, + -0.52, -1.90, -0.45, -2.20, -1.22, + -3.07, -2.42, -4.37, -3.94, -6.08, + -4.49, -4.50, -3.14, -2.93, -1.04, + -1.36, 0.69, 0.21, 2.11, 1.33, + 3.29, 2.46, 4.30, 3.32, 4.79, + 3.62, 4.97, 3.64, 4.63, 3.07, + 4.06, 2.49, 3.30, 1.46, 2.06, + 0.51, 0.74, -1.18, -1.26, -3.54, + -3.97, -5.26, -4.18, -3.71, -2.10, + -1.70, -0.08, -0.18, 0.94, 0.27, + 1.13, 0.08, 0.91, -0.31, 0.49, + -0.78, 0.08, -1.15, -0.23, -1.41, + -0.42, -1.55, -0.55, -1.66, -0.66, + -1.73, -0.75, -1.74, -0.78, -1.69, + -0.78, -1.60, -0.75, -1.46, -0.67, + -1.26, -0.51, -1.04, -0.53, -1.84, + -2.42, -4.52, -4.76, -6.33, -6.76, + -7.81, -5.80, -5.37, -3.63, -3.35, + -1.75, -1.88, -0.61, -0.90, 0.09, + -0.32, 0.55, -0.13, 0.70, -0.06, + 0.49, -0.20, 0.40, -0.22, 0.36, + -0.09, 0.58, 0.12, 0.75, 0.15, + 0.70, 0.17, 1.11, 0.89, 1.85, + 1.62, 2.54, 2.29, 3.20, 2.91, + 3.84, 3.53, 4.48, 4.15, 5.12, + 4.78, 5.75, 5.39, 6.31, 5.91, + 6.87, 6.33, 7.13, 6.61, 7.30, + 6.31, 6.27, 4.83, 4.49, 2.85, + 2.32, 0.58, -0.11, -0.98, 0.81, + 1.77, 3.37, 4.13, 5.60, 6.15, + 7.29, 7.35, 7.95, 7.67, 8.16, + 7.83, 8.31, 8.01, 8.53, 8.27 + }; + + G4double G4PreEquilibrium::cemgeo( const G4int nuclideTypeNumber, const G4int mediumNumber ) + { + // this routine was called by input + bertcem( nuclideTypeNumber, mediumNumber ); + return GetA_FCOMON(nuclideTypeNumber,mediumNumber); + } + + G4double G4PreEquilibrium::erupcem( DPvector &neutrons, DPvector &protons, DPvector &deuterons, + DPvector &tritons, DPvector &he3s, DPvector &he4s ) + { + precof(); + + G4ParticleDefinition *aNeutron = G4Neutron::Neutron(); + G4ParticleDefinition *aProton = G4Proton::Proton(); + G4ParticleDefinition *aDeuteron = G4Deuteron::Deuteron(); + G4ParticleDefinition *aTriton = G4Triton::Triton(); + G4ParticleDefinition *aHe3 = G4He3::He3(); + //G4ParticleDefinition *aHe4 = G4He4::He4(); + + G4double protonMass = aProton->GetPDGMass()/MeV; + G4double neutronMass = aNeutron->GetPDGMass()/MeV; + G4double deuteronMass = aDeuteron->GetPDGMass()/MeV; + G4double tritonMass = aTriton->GetPDGMass()/MeV; + G4double he3Mass = aHe3->GetPDGMass()/MeV; + //G4double he4Mass = aHe4->GetPDGMass()/MeV; + + G4int numberOfProtons = G4int(theNucleus->GetZ()+0.5); + G4int numberOfNucleons = G4int(theNucleus->GetN()+0.5); + G4int numberOfNeutrons = numberOfNucleons - numberOfProtons; + G4double nuclearMass = protonMass*numberOfProtons + neutronMass*numberOfNeutrons; + G4double P = theNucleus->GetMomentum().mag()/MeV; + + G4double totalEnergy = sqrt( P*P + nuclearMass*nuclearMass ); + + G4double kineticEnergyAfterEvaporation = totalEnergy - nuclearMass; + + for( G4int k = 0; k < KTOT; ++k ) + { + Dvector sptK( *(spt[k]) ); + G4double sint = sptK[0]; + G4double cost = sptK[1]; + G4double sinf = sin( parz[k].angle2 ); + G4double cosf = cos( parz[k].angle2 ); + G4double alc = sint*cosf; + G4double bec = sint*sinf; + G4double gac = cost; + G4double energy = parz[k].energy*GeV/MeV; + G4DynamicParticle *dp = new G4DynamicParticle(); + G4ThreeVector m; + switch ( parz[k].particleType ) + { + case 1: // neutrons + dp->SetDefinition( aNeutron ); + dp->SetKineticEnergy( energy-neutronMass ); + m.setX( alc ); m.setY( bec ); m.setZ( gac ); + dp->SetMomentum( m ); + neutrons.push_back( dp ); + break; + case 2: // protons + dp->SetDefinition( aProton ); + dp->SetKineticEnergy( energy-protonMass ); + m.setX( alc ); m.setY( bec ); m.setZ( gac ); + dp->SetMomentum( m ); + protons.push_back( dp ); + break; + case 3: // deuterons + dp->SetDefinition( aDeuteron ); + dp->SetKineticEnergy( energy-deuteronMass ); + m.setX( alc ); m.setY( bec ); m.setZ( gac ); + dp->SetMomentum( m ); + deuterons.push_back( dp ); + break; + case 4: // tritons + dp->SetDefinition( aTriton ); + dp->SetKineticEnergy( energy-tritonMass ); + m.setX( alc ); m.setY( bec ); m.setZ( gac ); + dp->SetMomentum( m ); + tritons.push_back( dp ); + break; + case 5: // he-3 + dp->SetDefinition( aHe3 ); + dp->SetKineticEnergy( energy-he3Mass ); + m.setX( alc ); m.setY( bec ); m.setZ( gac ); + dp->SetMomentum( m ); + he3s.push_back( dp ); + break; + //case 6: // he-4 + //dp->SetDefinition( aHe4 ); + //dp->SetKineticEnergy( energy-he4Mass ); + //m.setX( alc ); m.setY( bec ); m.setZ( gac ); + //dp->SetMomentum( m ); + //dp->SetMomentum( alc, bec, gac ); + //he4s.push_back( dp ); + //break; + } + } + return kineticEnergyAfterEvaporation; + } + + void G4PreEquilibrium::precof() + { + const G4double RM = 1.5; + + G4double pevapj[6], gj[7], ami[6]; + G4int i, j; + SetR0( RM ); + G4double wt = 1.0; + + G4double protonMass = G4Proton::Proton()->GetPDGMass()/GeV; + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass()/GeV; + G4int numberOfProtons = G4int(theNucleus->GetZ()+0.5); + G4int numberOfNucleons = G4int(theNucleus->GetN()+0.5); + G4int numberOfNeutrons = numberOfNucleons - numberOfProtons; + G4double nuclearMass = protonMass*numberOfProtons + neutronMass*numberOfNeutrons; + G4double P = theNucleus->GetMomentum().mag()/GeV; + + G4double totalEnergy = sqrt( P*P + nuclearMass*nuclearMass ); + G4double kineticEnergy = (totalEnergy-nuclearMass)*GeV/MeV; + + G4ThreeVector momentum = theNucleus->GetMomentum() * (1/totalEnergy*GeV); + + G4ThreeVector uglmom( GetLXYZ() ); + + KTOT = 0; + G4double pz = GetPZ0(); + G4int n = GetN0(); + G4double p = GetP0(); + G4double h = GetH0(); + theNucleus->AddExcitationEnergy( -kineticEnergy ); + // + if( theNucleus->GetEnergyDeposit() < 3 || + theNucleus->GetN() <= 4 || + theNucleus->GetZ() <= 2 )return; + // + G4double dl = massDefect( theNucleus->GetN(), theNucleus->GetZ() ); + // + // auxiliary code for nuclear data extraction + // + const G4double z1[5] = { 10.00, 20.00, 30.00, 50.00, 70.00 }; // Z:Tab.96 + const G4double a1[5] = { 0.42, 0.58, 0.68, 0.77, 0.80 }; // Kp -//- + const G4double c1[5] = { 0.50, 0.28, 0.20, 0.15, 0.10 }; // Cp -//- + const G4double a2[5] = { 0.68, 0.82, 0.91, 0.97, 0.98 }; // Ka -//- + const G4double c2[5] = { 0.10, 0.10, 0.10, 0.08, 0.06 }; // Ca -//- + // + // particle b: n p d t He-3 He-4 + const G4double aj[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; // A(b) + const G4double zj[6] = { 0.0, 1.0, 1.0, 1.0, 2.0, 2.0 }; // Z(b) + const G4double dlm[6] = { 8.368, 7.569, 13.835, 15.835, 15.817, 3.607 }; // q(b) + // + G4double cc[6], vk[6]; + alj.reserve(6); + gb.reserve(6); + afj.reserve(7); + zfj.reserve(6); + rj.reserve(7); + vj.reserve(6); + bj.reserve(6); + r0j.reserve(6); + for( G4int k = 0; k < 100; ++k ) + { + cc[0] = 0; + cc[1] = quadraticInterpolation( theNucleus->GetZ(), z1, c1, 4 ); + cc[5] = quadraticInterpolation( theNucleus->GetZ(), z1, c2, 4 ); + cc[2] = cc[1]/2; + cc[3] = cc[1]/3; + cc[4] = cc[5]*fourThirds; + // + vk[0] = 0; + vk[1] = quadraticInterpolation( theNucleus->GetZ(), z1, a1, 4 ); + vk[5] = quadraticInterpolation( theNucleus->GetZ(), z1, a2, 4 ); + vk[2] = vk[1] + 0.06; + vk[3] = vk[1] + 0.12; + vk[4] = vk[5] - 0.06; + // + G4double um2 = uglmom.mag2(); + G4double un = theNucleus->GetN() - theNucleus->GetZ(); + G4double ue = theNucleus->GetEnergyDeposit()- + 12*((1-theNucleus->GetZ()+2*(G4int(theNucleus->GetZ()+0.5)/2))+ + (1-un+2*(G4int(un)/2)))/sqrt(theNucleus->GetN()); + if( ue <= 0.1 )return; + G4double am = fam( theNucleus->GetN(), theNucleus->GetZ(), ue ); + afj.erase( afj.begin(), afj.end() ); + zfj.erase( zfj.begin(), zfj.end() ); + rj.erase( rj.begin(), rj.end() ); + bj.erase( bj.begin(), bj.end() ); + vj.erase( vj.begin(), vj.end() ); + for( i = 0; i < 6; ++i ) + { + G4double naj = theNucleus->GetN() - aj[i]; + G4double zzj = theNucleus->GetZ() - zj[i]; + afj.push_back( naj ); + zfj.push_back( zzj ); + G4double pairj = (1-zzj+2*(G4int(zzj)/2)) + (1-(naj-zzj)+2*(G4int(naj-zzj)/2)); + pevapj[i] = 12 * pairj / sqrt(naj); + G4double uej = theNucleus->GetEnergyDeposit() - pevapj[i]; + // + if( uej <= 1 )rj.push_back( 0.0 ); + else + { + ami[i] = fam( naj, zzj, uej ); + // + // calculation of coulomb energy + // + G4double tmp = vk[i]*1.44/RM*zj[i]*zzj/ + (pow(aj[i],oneThird)+pow(naj,oneThird))* + (1-theNucleus->GetEnergyDeposit()/(81*theNucleus->GetN()*am)); + tmp < 0 ? vj.push_back( 0.0 ) : vj.push_back( tmp ); + // + bj.push_back( massDefect(naj,zzj) - (dl-dlm[i]) ); + rj.push_back( uej-bj[i]-vj[i] ); + } + } + afj.push_back( theNucleus->GetN() ); + // + r0j.erase( r0j.begin(), r0j.end() ); + r0j.push_back( 0.76+2.2/pow(afj[1],oneThird) ); + SetBN( (2.12/pow(afj[1],twoThirds)-0.05)/r0j[0] ); + for( i = 1; i < 6; ++i )r0j.push_back( 1+cc[i] ); + G4double ep1, ep2, ep3; + G4bool ind; + G4ThreeVector p12; + G4int lm; + LABEL: + if( n < sqrt(1.19*am*theNucleus->GetN()*theNucleus->GetEnergyDeposit()+0.5) ) + { + // pre-equilibrium emission + // + while ( p < 1 ) + { + ++p; + ++h; + n += 2; + } + exn = p + h; + alj.erase( alj.begin(), alj.end() ); + alj.push_back( p*(exn-1) ); + alj.push_back( alj[0] ); + alj.push_back( alj[1]*(p-1)*(exn-2)/2 ); + alj.push_back( alj[2]*(p-2)*(exn-3)/6 ); + alj.push_back( alj[3] ); + alj.push_back( alj[4]*(p-3)*(exn-4)/12 ); + // + G4double nucleusN = theNucleus->GetN(); + gb.erase( gb.begin(), gb.end() ); + gb.push_back( 1. ); + gb.push_back( 1. ); + gb.push_back( 16/nucleusN ); + gb.push_back( 243/nucleusN/nucleusN ); + gb.push_back( gb[3] ); + gb.push_back( 4096/nucleusN/nucleusN/nucleusN ); + for( i = 0; i < 6; ++i ) + { + if( p <= aj[i] - 0.01 )gj[i] = 0; + else + { + if( p+h <= aj[i] + 0.01 )gj[i] = 0; + else + { + if( pz <= zj[i] - 0.01 )gj[i] = 0; + else + { + if( rj[i] )gj[i] = 0; + else + { + SetAC( 0.585*ami[i] ); + gj[i] = gamagu(i); + } + } + } + } + } + G4double g = 0; + for( i = 0; i < 6; ++i )g += gj[i]; + if( n <= 0 ) + { + // write(16,20) + // 20 format(20x,20hnumber of exitons = 0) + return; + } + SetAC( 0.595*am ); + G4double c1, c2, c3; + transitionRates( p, h, c1, c2, c3 ); + G4double c = c1+c2+c3; + G4double b1 = G4UniformRand(); + G4double p2 = 250*pow(G4UniformRand(),oneThird); + G4double ct2 = 1-2*G4UniformRand(); + G4double st2 = sqrt(1-ct2*ct2); + G4double fi2 = 2*pi*G4UniformRand(); + p12.setX( p2*st2*cos(fi2)+theNucleus->GetMomentum().x()*GeV/p ); + p12.setY( p2*st2*sin(fi2)+theNucleus->GetMomentum().y()*GeV/p ); + p12.setZ( p2*ct2+theNucleus->GetMomentum().z()*GeV/p ); + if( b1 > g/(c+g) ) + { + G4double ran = G4UniformRand(); + if( ran <= c1/c ) + { + ++p; ++h; ++(++n); + if( G4UniformRand() <= theNucleus->GetZ()/theNucleus->GetN() )++pz; + } + else + { + if( ran <= (c2+c1)/c ) + { + --(--n); --p; --h; + if( pz > 0 && G4UniformRand() <= theNucleus->GetZ()/theNucleus->GetN() )--pz; + } + } + goto LABEL; + } + for( j = 1; j < 6; ++j )gj[j] += gj[j-1]; + G4double b = g*G4UniformRand(); + for( j = 0; j < 6; ++j ) + { + if( b <= gj[j] ) + { + lm = j; + break; + } + } + ep1 = tkinm1( lm, p, h ); + ep2 = zj[lm]; + ep3 = 940*aj[lm]; + ind = true; + } + else + { + // equilibrium emission + // + rj.push_back( 0.0 ); + G4double per = arfaf( ami ); + for( i = 0; i < 7; ++i ) + { + rj[i] <= 0 ? gj[i] = 0 : gj[i] = gameqf( i, cc[i], per, ami[i], RM ); + } + G4double gt = 0; + for( i = 0; i < 7; ++i )gt += gj[i]; + if( gt <= 0 )return; + wt *= 1-gj[7]/gt; + SetWF( 1-wt ); + for( j = 1; j < 7; ++j )gj[j] += gj[j-1]; + G4double b = G4UniformRand()*gt; + for( j = 1; j <= 7; ++j ) + { + if( b < gj[j] ) + { + lm = j; + break; + } + } + if( lm == 7 )return; + ep1 = tkin( lm, am ); + ep2 = zj[lm]; + ep3 = 940*aj[lm]; + ind = false; + } + ++KTOT; + p -= aj[lm]; + n -= G4int(aj[lm]); + pz -= ep2; + + parz[k].charge = ep2; + parz[k].particleType = lm; + if( !ind )parz[k].what = 1000.0; + else parz[k].what = 100.0; + + theNucleus->SetParameters( afj[lm], zfj[lm] ); + theNucleus->AddExcitationEnergy( + -theNucleus->GetEnergyDeposit()+rj[lm]-ep1+vj[lm]+pevapj[lm] ); + G4double tl, cot, st, cf, sf; + G4ThreeVector pl; + Dvector *vtmp = new Dvector( 5 ); + vtmp->insert( vtmp->begin()+3, ep2 ); + vtmp->insert( vtmp->begin()+4, ep3/GeV ); + if( ind && (momentum.mag2()/GeV > 0.0000001) ) + { + G4double cx = sqrt(G4UniformRand()); + G4double sx = sqrt(1-cx*cx); + G4double fi = 2*pi*G4UniformRand(); + G4double pm = sqrt(ep1*(ep1+2*ep3)); + pl.setX( pm*sx*cos(fi) ); + pl.setY( pm*sx*sin(fi) ); + pl.setZ( pm*cx ); + G4ThreeVector ps = rotation( p12, momentum, pl ); + tl = cinema( ps, momentum, pl, cot, st, cf, sf, ep3 ); + vtmp->insert( vtmp->begin(), st ); + vtmp->insert( vtmp->begin()+1, cot ); + vtmp->insert( vtmp->begin()+2, tl/GeV ); + } + else + { + G4double angl[4]; + // + // choose isotropic distributed angle for particle emitted + // + angl[0] = 1-2*G4UniformRand(); + angl[3] = sqrt(1-angl[0]*angl[0]); + G4double f = 2*pi*G4UniformRand(); + angl[1] = sin(f); + angl[2] = cos(f); + // + G4double pm = sqrt(ep1*(ep1+2*ep3)); + G4ThreeVector ps( pm*angl[3]*angl[2], pm*angl[3]*angl[1], pm*angl[0] ); + if( momentum.mag2() <= 0.0001 ) + { + vtmp->insert( vtmp->begin(), angl[3] ); + vtmp->insert( vtmp->begin()+1, angl[0] ); + vtmp->insert( vtmp->begin()+2, ep1/GeV ); + cot = angl[0]; + st = angl[2]; + cf = angl[1]; + sf = angl[0]; + pl = ps; + } + else + { + tl = cinema( ps, momentum, pl, cot, st, cf, sf, ep3 ); + vtmp->insert( vtmp->begin(), st ); + vtmp->insert( vtmp->begin()+1, cot ); + vtmp->insert( vtmp->begin()+2, tl/GeV ); + } + } + spt.push_back( vtmp ); + + theNucleus->GetMomentum().setX( theNucleus->GetMomentum().x()-pl.x()*GeV ); + theNucleus->GetMomentum().setY( theNucleus->GetMomentum().y()-pl.y()*GeV ); + theNucleus->GetMomentum().setZ( theNucleus->GetMomentum().z()-pl.z()*GeV ); + + numberOfProtons = G4int(theNucleus->GetZ()+0.5); + numberOfNucleons = G4int(theNucleus->GetN()+0.5); + numberOfNeutrons = numberOfNucleons - numberOfProtons; + nuclearMass = protonMass*numberOfProtons + neutronMass*numberOfNeutrons; + P = theNucleus->GetMomentum().mag()/GeV; + totalEnergy = sqrt( P*P + nuclearMass*nuclearMass ); + momentum = theNucleus->GetMomentum() * (1/totalEnergy/GeV); + + parz[k].angle1 = atan2(st,cot); + G4double fi1 = atan2(sf,cf); + if( fi1 < 0 )fi1 = pi-fi1; + parz[k].angle2 = fi1; + parz[k].energy = (*vtmp)[2]; + G4double almax = 0.219327*RM*(pow(theNucleus->GetN(),oneThird)+pow(aj[lm],oneThird))* + sqrt(theNucleus->GetN()*aj[lm]*(ep1-vj[lm])/(theNucleus->GetN()+aj[lm])); + G4double alp = almax * sqrt(G4UniformRand()); + uglmom.setX( uglmom.x() - alp*st*cf ); + uglmom.setY( uglmom.y() - alp*st*sf ); + uglmom.setZ( uglmom.z() - alp*cot ); + } + // write(16,49)u,a,z + // format('massiv spt exceeded after evaporation',40x,'u=',f10.5,' a=',f5.1,' z=',f4.1) + return; + } + + void G4PreEquilibrium::mashnk( G4int &icem, const G4double anucc, const G4double znucc, + const G4double ecno, const G4double tipno, + const G4double ehipi, const G4double ehin, + const G4double ehicut ) + { + // this routine is called by cascade + // + // ehicem is the value of max energy for which siginb is calculated for ifircl > 0 + // siginb is inelastic cross-section for either bert or bertcem + // + // icem is trigger for use of bertcem of s.mashik cem code. + // if imash == 0, bertcem is not used and icem = 0 + // if imash == 1, ehicem is max energy for which icem = 1 and bertcem is called + // + icem = 0; + G4double ehicem; // ehicem is in common/callcm/ in cascad.f + G4int mat, icm; // mat is in COMON.F, icm is in common/callcm/ in cascad.f + G4double ehic[7]; // ehic is in common/callcm/ in cascad.f + G4int imash = 0, ihecc = 0; + + if( imash == 0 ) // imash is in common/callcm/ in cascad.f + { + if( ihecc == 0 ) // ihecc in in common/hecc1/ in cascad.f + { + icem = 0; + ehicem = ehicut; + icm = icem; + ehic[mat-1] = ehicem; + return; + } + else if( ihecc == 1 ) + { + icem = 0; + ehicem = 10000; + icm = icem; + ehic[mat-1] = ehicem; + return; + } + } + if( anucc < 14 ) ehicem = 0; + else if( anucc < 17 )ehicem = 1000; + else + { + // icem = 0 for oxygen and nitrogen if ecno > ehicem + // ehicem can be set by trial and error for this case + // + // next statement is tentative + // + tipno <= 1 ? ehicem = ehin : ehicem = ehipi; + // + // icem = 0 for energies > ehicem, which can be set at will + // may want to set it lower if ihecc == 1 + // + ecno <= ehicem ? icem = 1 : icem = 0; // if icem == 1, bertcem is called + } + icm = icem; + ehic[mat-1] = ehicem; + return; + } + + G4double G4PreEquilibrium::bf( const G4double a, const G4double z, const G4double e ) + { + const G4double xx1[51] = + { 0.00, 0.02, 0.04, 0.06, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, + 0.20, 0.22, 0.24, 0.26, 0.28, 0.30, 0.32, 0.34, 0.36, 0.38, + 0.40, 0.42, 0.44, 0.46, 0.48, 0.50, 0.52, 0.54, 0.56, 0.58, + 0.60, 0.62, 0.64, 0.66, 0.68, 0.70, 0.72, 0.74, 0.76, 0.78, + 0.80, 0.82, 0.84, 0.86, 0.88, 0.90, 0.92, 0.94, 0.96, 0.98, 1.0 }; + // + // b(x) from Krappe, Nix & Sierk 1979 for a/r0 = 0.5508 + // + const G4double yy2[51] = + { 0.1495, 0.1475, 0.1450, 0.1425, 0.1400, 0.1375, 0.1350, 0.1328, 0.1298, 0.1270, + 0.1245, 0.1215, 0.1185, 0.1150, 0.1118, 0.1083, 0.1040, 0.0997, 0.0949, 0.0900, + 0.0849, 0.0795, 0.0739, 0.0685, 0.0630, 0.0578, 0.0520, 0.0460, 0.0408, 0.0342, + 0.0289, 0.0236, 0.0188, 0.0146, 0.0111, 0.0082, 0.0059, 0.0043, 0.0029, 0.0020, + 0.0017, 0.0012, 0.0010, 0.0007, 0.0004, 0.0002, 0.0001, 0.0000, 0.0000, 0.0000, 0.0 }; + // + const G4double r0m = 1.2; + // + // Yukawa-plus-exponential macroscopic model of Krappe, Nix & Sierk (1979) + // + const G4double gamma = 3; + const G4double a2 = 21.7; + const G4double a3 = 0.7322; + G4double a3rt = pow(a,oneThird); + G4double sufnuc = a2*(1-gamma*(1-2*z/a)*(1-2*z/a))*a3rt*a3rt; + G4double x = 0.5*a3*z*z/a3rt/sufnuc; + if ( x >= 1 )return 0.0; + // + // Cameron (Can.J.Phys.35(1957)1021) shell and pairing corr. for g.s. mass + // calculate saddle-point shell and/or pairing corrections + // + return sufnuc*quadraticInterpolation( x, xx1, yy2, 50 ) - + GetT1Y(G4int(z)-1) - GetT2XY(G4int(a-z)-1); + } + + G4double G4PreEquilibrium::quadraticInterpolation( const G4double u, const G4double *e, + const G4double *f, const G4int n ) + { + G4double x1, x2, x3, y1, y2, y3; + if( u <= e[0] ) + { + x1 = e[0]; + x2 = e[1]; + x3 = e[2]; + y1 = f[0]; + y2 = f[1]; + y3 = f[2]; + } + else + { + if( u >= e[n-1] ) + { + if( u > e[n] )return f[n]; + x1 = e[n-2]; + x2 = e[n-1]; + x3 = e[n]; + y1 = f[n-2]; + y2 = f[n-1]; + y3 = f[n]; + } + else + { + for( G4int j = 0; j < n; ++j ) + { + if( u < e[j] ) + { + x1 = e[j-1]; + x2 = e[j]; + x3 = e[j+1]; + y1 = f[j-1]; + y2 = f[j]; + y3 = f[j+1]; + break; + } + } + } + } + return y1*(u-x2)*(u-x3)/((x1-x2)*(x1-x3)) + y2*(u-x1)*(u-x3)/((x2-x1)*(x2-x3)) + + y3*(u-x1)*(u-x2)/((x3-x1)*(x3-x2)); + } + + G4double G4PreEquilibrium::massDefect( const G4double x, const G4double y ) const + { + // calculation of mass defect + // + G4double c = pow(x,oneThird); + G4double d = pow(x,twoThirds); + G4double e = pow(x,fourThirds); + G4double f = pow(y,fourThirds); + G4double a = 1 - 0.62025/d; + G4double b = (x-2*y)/x; + G4double es = (25.8357-44.2355*b*b)*a*a*d; + G4double ec = 0.779*y*(y-1)/c*( 1 - 1.5849/d + 1.2273/x + 1.5772/e ); + G4double ealfa = -0.4323*f/c*( 1 + 0.49597/x - 0.57811/c - 0.14518/d ); + G4double edob = 8.367*x + 31.4506*x*b*b - 0.783*y - 17.0354*x; + G4int i = G4int(x); + G4int j = G4int(y); + return es + ec + ealfa + edob + GetT1Y(j-1) + GetT2XY(i-j-1); + } + + G4double G4PreEquilibrium::gamagu( const G4int j ) + { + // particle b: n p d t He-3 He-4 + const G4double aj[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; // A(b) + const G4double w[8] = { 0.1012285363, 0.2223810345, 0.3137066459, 0.3626837834, + 0.3626837834, 0.3137066459, 0.2223810345, 0.1012285363 }; + const G4double fiks[8] = { 0.9602898565, 0.7966664774, 0.5255324099, 0.1834346425, + -0.1834346425, -0.5255324099, -0.7966664774, -0.9602898565 }; + // + G4double a = 0; + if( j > 0 )a = vj[j]; + G4double b = theNucleus->GetEnergyDeposit() - bj[j]; + G4double y = 0; + for( G4int k = 0; k < 8; ++k ) + { + G4double e = 0.5*( (b-a)*fiks[k] + b + a ); + G4double result; + if( j > 1 ) + result = gb[j]*r0j[j]*0.104/ + (GetR0()*pow(afj[j],oneThird)*sqrt(aj[j]*theNucleus->GetEnergyDeposit()))* + alj[j]*((e-vj[j])/theNucleus->GetEnergyDeposit())* + pow(abs((e+bj[j])/theNucleus->GetEnergyDeposit()),aj[j]-1.5)* + pow(abs(1-(e+bj[j])/theNucleus->GetEnergyDeposit()),exn-aj[j]-1); + else if( j == 1 ) + result = 0.000234*GetR0()*GetR0()*pow(afj[1],twoThirds)*r0j[1]* + alj[1]/(GetAC()*theNucleus->GetEnergyDeposit()*afj[1])* + pow(1-(e+bj[1])/theNucleus->GetEnergyDeposit(),exn-2)*(e-vj[1]); + else // j must be 0 + result = 0.000234*GetR0()*GetR0()*pow(afj[0],twoThirds)*r0j[0]* + alj[0]/(GetAC()*theNucleus->GetEnergyDeposit()*afj[0])* + pow(1-(e+bj[0])/theNucleus->GetEnergyDeposit(),exn-2)*(e+GetBN()); + y += w[k]*(b-a)*result/2; + } + return y; + } + + G4double G4PreEquilibrium::tkin( const G4int i, const G4double am ) + { + // + // kinetic energy for particles in equilibrium decay + // + G4double rk, frk; + G4double rb = 4*am*afj[i]*rj[i]; + do + { + G4double b1 = G4UniformRand(); + rk = 1 + 1/sqrt(rb)*log(b1+(1-b1)*exp(-sqrt(rb))); + if( i==0 ) + { + G4double q1 = 1 + (2.12/pow(afj[0],twoThirds)-0.05)/ + (0.76+2.2/pow(afj[0],oneThird))/rj[0]; + frk = 3*sqrt(3.)/2/(q1*sqrt(q1))*(q1*rk-rk*rk*rk); + } + else + { + frk = 3*sqrt(3.)/2*(rk-rk*rk*rk); + } + } while( G4UniformRand() > frk ); + return rj[i]*(1-rk*rk) + vj[i]; + } + + void G4PreEquilibrium::transitionRates( const G4double p, const G4double h, + G4double &c1, G4double &c2, G4double &c3 ) + { + // calculation of transition rates (was trncem) + // + G4double est = 1.6*45+theNucleus->GetEnergyDeposit()/(p+h); + G4double b = sqrt(2*est/940); + G4double sf = (10.63/(b*b)-29.93/b+42.9+34.10/(b*b)-82.20/b+82.2)/2; + G4double t; + if( 45/est <= 0.5 ) + t = 1-7*45/est/5; + else + t = 1-7*45/est/5+0.4*45/est*pow(2-1/45*est,2.5); + c1 = 0.00332*sf*t*sqrt(est)/pow(1.2+1/(4.7*b),3); + c2 = (c1*p*h*(p+h+1)*(p+h-2))/(GetAC()*theNucleus->GetN()*theNucleus->GetEnergyDeposit()* + GetAC()*theNucleus->GetN()*theNucleus->GetEnergyDeposit()); + c3 = c1*(p+h+1)*(p*(p+1)+4*p*h+h*(h-1))/((p+h)*GetAC()*theNucleus->GetN()* + theNucleus->GetEnergyDeposit()); + if( c2 < 0 )c2 = 0; + return; + } + + G4double G4PreEquilibrium::tkinm1( const G4int j, const G4double p, const G4double h ) + { + // kinetic energy for particles in pre-equilibrium decay + // + // particle b: n p d t He-3 He-4 + const G4double aj[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; // A(b) + // + G4double e, e1, dj, t3; + j == 0 ? + dj = (2.12/pow(afj[0],twoThirds)-0.05)/(0.76+2.2/pow(afj[0],oneThird)) : + dj = -vj[j]; + G4double t = p + h - aj[j] - 1; + G4double r2 = rj[j]; + G4double r1 = r2 + vj[j]; + if( j < 2 ) + { + if( t <= -0.01 )return r1; + if( t <= 0.1 ) + { + G4double result; + j <= 1 ? + result = -dj+sqrt(dj*dj+(G4UniformRand()*(r2*r2+2*dj*r2))) : + result = sqrt(G4UniformRand())*r2+vj[j]; + return result; + } + e1 = (r1-dj*t)/(t+1); + do + { + e = vj[j] + G4UniformRand()*r2; + t3 = (e+dj)/(e1+dj)*pow(abs((r1-e)/(r1-e1)),t); + } + while ( G4UniformRand() > t3 ); + return e; + } + if( t <= -0.1 )return r1; + if( t <= 0.1 ) + { + do + { + e = vj[j] + G4UniformRand()*r2; + t3 = pow( abs((theNucleus->GetEnergyDeposit()-r1+e)/ + (theNucleus->GetEnergyDeposit()-r1+r1)), aj[j]-1.5 ) * + (e+dj)/(r1+dj); + } + while ( G4UniformRand() > t3 ); + return e; + } + G4double es = theNucleus->GetEnergyDeposit()*(aj[j]-0.5) + + (theNucleus->GetEnergyDeposit()-r2)*(p+h-2.5); + e1 = (es+sqrt(es*es-(theNucleus->GetEnergyDeposit()-r2)*(aj[j]-1.5)* + (p+h-1.5)*4.*theNucleus->GetEnergyDeposit()))/ + ((p+h-1.5)*2)-theNucleus->GetEnergyDeposit()+r1; + do + { + e = vj[j] + G4UniformRand()*r2; + if( e1+0.001 > r1 )break; + t3 = pow( abs((theNucleus->GetEnergyDeposit()-r1+e)/ + (theNucleus->GetEnergyDeposit()-r1+e1)), aj[j]-1.5 ) * + (e+dj)/(e1+dj) * pow( abs((r1-e)/(r1-e1)), t ); + } + while ( G4UniformRand() > t3 ); + return e; + } + + void G4PreEquilibrium::lpoly( const G4double x, const G4int n, G4double *pl ) + { + // This subroutine calculates the ordinary Legendre polynomials of + // order 0 to n-1 of argument x and stores them in the vector pl. + // They are calculated by recursion relation from the first two polynomials. + // + // written by A. J. Sierk LANL T-9 February,1984 + // + pl[0] = 1; + pl[1] = x; + for( G4int i = 2; i < n; ++i )pl[i] = ((2*i-3)*x*pl[i-1]-(i-2)*pl[i-2])/(i-1); + return; + } + + G4double G4PreEquilibrium::barfit( const G4double a, const G4double z, const G4int il ) + { + // This subroutine returns the barrier height, bfis. + // Arguments: z, the atomic number + // a, the atomic mass number + // il, the angular momentum in units of h-bar, + // where h-bar is Plancks constant divided by 2*pi + // + // The fission barrier for il = 0 is calculated from a 7th order + // fit in two variables to 638 calculated fission barriers for z values + // from 20 to 110. These 638 barriers are fit with an rms deviation of + // 0.10 MeV by this 49-parameter function. + // If barfit is called with (z,a) values outside the range of the fit, + // the barrier height is set to 0 + // + // For il values not equal to zero, the values of il at which the barrier + // is 80% and 20% of the il = 0 value are respectively fit to 20-parameter + // functions of z and a, over a more restricted range of a values, than is + // the case for il = 0. The value of il where the barrier disappears, lmax, + // for 61 nuclei, is fit to a 35-parameter function of z and a, with the + // same range of z and a values as il-80 and il-20. + // Once again, if a (z,a) pair is outside of the range of validity of the + // fit, the barrier value is set to 0. These three values + // (bfis(il=0), il-80, and l-20) and the constraints of bfis = 0 and + // d(bfis)/dl = 0 at il = lmax and il = 0 lead to a fifth-order fit to + // bfis(il) for il > l-20. the first three constraints lead to a third-order + // fit for the region il < il-20. + // + // The ground-state energies are calculated from a 175-parameter + // fit in z, a, and il to 329 ground-state energies for 36 different + // z and a values. + // (the range of z and a is the same as for l-80, l-20, and l-max) + // + // The calculated barriers from which the fits were made were calculated + // in 1983-1985 by A. J. Sierk of Los Alamos National Laboratory, group t-9, + // using Yukawa-plus-exponential double folded nuclear energy, exact Couloub + // diffuseness corrections, and diffuse-matter moments of inertia. The + // parameters of the model are those derived by Moller and Nix in 1979: + // r-0 = 1.16 fm, as = 21.13 MeV, kappa-s = 2.3 a = 0.68 fm. + // The diffuseness of the matter and charge distributions used + // corresponds to a surface diffuseness parameter (defined by Myers) + // of 0.99 fm. The calculated barriers for il = 0 are + // accurate to a little less than 0.1 MeV; the output from this + // routine is a little less accurate. Worst errors may be as large + // as 0.5 MeV; characteristic uncertainty is in the range of 0.1-0.2 + // MeV. The values of egs are generally approximated to within + // about 0.1-0.2 MeV; the largest deviation is about 0.5 MeV, + // near il-i for light nuclei. + // + // The rms deviation of lmax from the 61 input values is 0.31 + // h-bar. the approximate value is nearly always within + // 0.5 h-bar of the calculated one. + // + // Below is a table of test values to check implementation of the program + // z, a, l egnd st fiss bar moments of inertia lmax + // + // 28, 58, 0 0.00 33.14 0.816 3.603 3.608 46.1 + // ,25 21.36 19.50 0.778 3.662 3.662 46.1 + // ,40 49.66 2.97 0.724 3.648 3.650 46.1 + // ,46.1 59.14 0.00 0.746 3.160 3.160 46.1 + // 65,153, 0 0.00 28.88 0.621 3.698 3.698 82.3 + // ,50 19.00 16.16 0.615 3.639 3.639 82.3 + // ,80 45.24 0.26 0.616 2.765 2.788 82.3 + // ,82.3 47.04 0.00 0.682 2.231 2.276 82.3 + // 93,229, 0 0.00 3.76 0.715 1.747 1.747 68.1 + // ,45 8.21 1.26 0.765 1.578 1.578 68.1 + // ,68.1 17.96 0.00 1.053 1.053 1.236 68.1 + // + // written by A. J. Sierk, LANL t-9 + // version 1.0 February, 1984 + // version 1.1 January, 1985 improved coefficients in egs and lmax + // version 1.2 September, 1985 improved lmax, egs coefficients + // version 1.21 June, 1986 minor changes made + // + // Copyright, 1986, the regents of the University of California. + // This software was produced under a U. s. government contract + // (w-7405-eng-36) by the Los Alamos National Laboratory, which is + // operated by the University of California for the U. S. Department + // of Energy. The U. S. government is licensed to use, reproduce, + // and distribute this software. Permission is granted to the public + // to copy and use this software without charge, provided that this + // notice and any statement of authorship are reproduced on all + // copies. Neither the government nor the University makes any + // warranty, expressed or implied, or assumes any liability + // or responsibility for the use of this software. + // + G4double pa[7], pz[7], pl[10]; + // + const G4double emncof[4][5] = + { { -901.100, -1408.18, 2770.00, -706.695, 889.867 }, + { 13535.5, -20384.7, 10938.4, -4862.97, -618.603 }, + { -3263.67, 1624.47, 1368.56, 1317.31, 153.372 }, + { 7488.63, -12158.1, 5502.81, -1336.30, 0.0505367 } }; + const G4double elmcof[4][5] = + { { 1845.42, -5640.02, 5667.30, -3151.50, 954.160 }, + { -2245.77, 8561.33, -9673.48, 5817.44, -1869.97 }, + { 2797.72, -8730.73, 9197.06, -4919.00, 1372.83 }, + { -30.1866, 1411.61, -2859.19, 2130.16, -649.072 } }; + const G4double emxcof[5][7] = { + {-4106527.32, 10006494.7,-10953375.1, 7847972.52,-3785749.26, 1122379.45,-177561.170}, + {10876333.0,-26375824.5, 28547240.0,-20110746.7, 9483736.41,-2734385.28, 413247.256}, + {-8765309.03, 21425051.3,-23579959.5, 17016134.7,-8237381.90, 2424479.57,-365427.239}, + {6302589.54,-15299900.4, 16564020.0,-11669577.6, 5473691.53,-1549863.42, 215409.246}, + {-1455398.91, 3649618.35,-4212674.23, 3243125.55,-1679279.04, 523795.062,-76657.6599}}; + const G4double elzcof[7][7] = { + {511819.909,-1303031.86, 1901198.70,-1206282.42, 568208.488, 54834.6483,-24588.3052}, + {-1132694.53, 2977645.90,-4543263.26, 3004648.70,-1449892.74,-102026.610, 62795.9815}, + {1375433.04,-3658089.88, 5477989.99,-3781092.83, 1841317.65, 15366.9695,-69681.7834}, + {-856559.835, 2488722.66,-4073491.28, 3128358.99,-1623940.90, 119797.378, 42573.7058}, + {328723.311,-1098921.75, 2039972.69,-1771857.18, 996051.545,-153305.699,-11298.2954}, + {41585.0238, 72965.3408,-493776.346, 601254.680,-401308.292, 96596.8391,-349960.27}, + {-182751.044, 391386.300,-303639.248, 115782.417,-424992.80,-611772.47, 36682.647}}; + G4double bfis = 0; + if( G4int(z) < 19 || G4int(z) > 111 ) + { + // write(16,1000) + // 1000 format(/10x,'* * * * barfit called with z less than 19 or ', + // ' greater than 111. bfis is set to 0.0. * * * *') + return bfis; + } + if( G4int(z) > 102 && il > 0 ) + { + // write(16,1010) + // 1010 format(/10x,'* * * * barfit called with z greater than 102', + // ' and l not equal to zero. bfis is set to 0.0. * * * *') + return bfis; + } + if( a < 1.2*z+0.01*z*z || a > 5.8*z-0.024*z*z ) + { + // write(16,1020)a + // 1020 format(/10x,'* * * * barfit called with a = ',i3,', outside ', + // 'the allowed values for z = ',i3,' * * * *') + return bfis; + } + lpoly( 0.01*z, 7, pz ); + lpoly( 0.0025*a, 7, pa ); + G4int i, j; + for( i = 0; i < 7; ++i ) + { + for( j = 0; j < 7; ++j )bfis += elzcof[j][i]*pz[j]*pa[i]; + } + if( (a < 1.4*z+0.009*z*z-5 || a > 20+3*z+10) && il > 0 ) + { + // write(16,1030)a,il + // 1030 format(/10x,'* * * * barfit called with a = ',i3,', outside', + // ' the allowed values for z = ',i3/26x,'for nonzero l = ',i3, + // ' * * * *') + bfis = 0; + return bfis; + } + G4double el80 = 0; + G4double el20 = 0; + G4double elmax = 0; + for( i = 0; i < 4; ++i ) + { + for( j = 0; j < 5; ++j ) + { + el80 += elmcof[j][i]*pz[j]*pa[i]; + el20 += emncof[j][i]*pz[j]*pa[i]; + } + } + for( i = 0; i < 5; ++i ) + { + for( j = 0; j < 7; ++j )elmax += emxcof[j][i]*pz[j]*pa[i]; + } + if( il < 1 )return bfis; + G4double x = el20/elmax; + G4double y = el80/elmax; + if( il <= el20 ) + { + G4double q = 0.2/(el20*el20*el80*el80*(el20-el80)); + bfis *= + 1+q*(4*el80*el80*el80-el20*el20*el20)*il*il-q*(4*el80*el80-el20*el20)*il*il*il; + } + else + { + G4double aj = (-20*pow(x,5)+25*pow(x,4)-4)*(y-1)*(y-1)*y*y; + G4double ak = (-20*pow(y,5)+25*pow(y,4)-1)*(x-1)*(x-1)*x*x; + G4double q = 0.2/((y-x)*((1-x)*(1-y)*x*y)*((1-x)*(1-y)*x*y)); + G4double z = il/elmax; + bfis *= 4*pow(z,5)-5*pow(z,4)+1+ + (z-1)*(q*(aj*y-ak*x)*(2*z+1)-q*(aj*(2*y+1)-ak*(2*x+1))*z)*z*z*(z-1); + } + if( bfis <= 0 || il > elmax )bfis = 0; + return bfis; + } + + G4bool G4PreEquilibrium::cascem( G4ThreeVector amnucl ) + { + const G4int N = 7; + const G4double EPS = 0.007; + const G4double VPI = 0.025; + const G4double CM0 = 0.94; + const G4int ME0 = 1; + const G4int MQ0 = 1; + + G4int mv = 0; + G4ThreeVector v; + G4double tin1, sigp, sign, sigabs; + + SetINDI( false ); + SetING( 0 ); + exitons.protons = 0; + exitons.neutrons = 0; + exitons.hols = 0; + // + // calculation of entering point of particle in nucleus + // + SetT1( 0 ); + SetT2( 0 ); + G4double temp1 = G4UniformRand(); + G4double temp2 = 2*pi*G4UniformRand(); + // + G4ThreeVector tmp3vec( rbig[N] * sqrt(temp1) * cos(temp2), + rbig[N] * sqrt(temp1) * sin(temp2), + -rbig[N] * sqrt(1-temp1) ); + MASTRUCT p = { tmp3vec, { 0.0, 1.0, 0.0, 1.0, GetT0(), CM0 } }; + // + IPSTRUCT ip = { ME0, 0, 0, MQ0, N }; + // + // the following appears to be a bug in the original cem.f + // T1 is set to 0 just above + // + if( GetT0() == 0 )p.array[2] = GetT1()*pow(GetT2()/GetT1(),G4UniformRand()); + const G4double p0 = sqrt(p.array[2]*(p.array[2]+2*p.array[5])); // not the data member p0 + // + G4ThreeVector am0( p0*(p.momentum.z()*p.array[0]*p.array[2]-p.momentum.y()*p.array[1]), + p0*(p.momentum.x()*p.array[1]-p.momentum.z()*p.array[0]*p.array[3]), + p0*(p.momentum.y()*p.array[0]*p.array[3]-p.momentum.x()*p.array[0]*p.array[2]) ); + // + const G4double t3 = p.array[4]; + p.array[4] += poten( N, ip ); + theNucleus->AddExcitationEnergy( -theNucleus->GetEnergyDeposit() + t3 + MQ0*EPS ); + G4double atwght = aNucl+MQ0; + G4double charge = zNucl+ME0; + amnucl = am0; + const G4double obr = af[6]/2; + LABEL: + G4double cutof1 = ip.nuclearZone*( poten(ip.ip4,ip) + ip.proton*obr ) + 0.001; + if( p.array[4] <= cutof1 ) + { + exitons.protons += ip.proton; + exitons.neutrons += 1-ip.proton; + cascem1( amnucl, p, ip, mv ); + goto LABEL; + } + G4int ipe[5]; + G4double pe[9]; + if( pointe( p, ip, pe, ipe, v, u, tin1, sigp, sign, sigabs, t3 ) ) + { + G4int np; + if( ip.nuclearZone != 0 ) + { + G4double cutof3 = cutof1-ip.nuclearZone*obr+0.05; + if( p.array[4] <= cutof3 ) + { + G4double r = rsm[N]*p.momentum.mag(); + if( rsm[N] >= r+0.001 ) + { + G4double wm = 0; + for( G4int i = 0; i < 50; ++i ) + wm += wim( 1, p, ip ) + wim( 0, p, ip ); + G4double w3 = wopt( p.array[4]-cutof3+0.05, r, ip.proton ); + if( abs((wm/100-w3)/w3) >= 0.3 ) + { + typint( p, ip, pe, ipe, v, u, tin1, sigp, sign, sigabs, mv, np ); + if( np <= 0 ) + { + exitons.protons += ip.proton; + exitons.neutrons += 1-ip.proton; + cascem1( amnucl, p, ip, mv ); + } + else + { + pauliPrinciple( p, ip, v, mv, np, 0 ); + exitons.protons += ip.proton; + exitons.neutrons += 1-ip.proton; + cascem1( amnucl, p, ip, mv ); + } + goto LABEL; + } + } + } + } + typint( p, ip, pe, ipe, v, u, tin1, sigp, sign, sigabs, mv, np ); + if( np <= 0 ) + { + exitons.protons += ip.proton; + exitons.neutrons += 1-ip.proton; + cascem1( amnucl, p, ip, mv ); + } + else + pauliPrinciple( p, ip, v, mv, np, 1 ); + goto LABEL; + } + ip.proton <= 0 ? temp1 = 0 : temp1 = ip.proton; + G4double cutof2 = poten( ip.ip4, ip ) + temp1*obr + 0.001; + if( p.array[4] <= cutof2 ) + { + exitons.protons += ip.proton; + exitons.neutrons += 1-ip.proton; + cascem1( amnucl, p, ip, mv ); + goto LABEL; + } + theNucleus->AddExcitationEnergy( + -(p.array[4]+ip.nuclearZone*EPS+(1-ip.nuclearZone)*(0.14+VPI)*(1-ip.ip1)) ); + atwght -= ip.nuclearZone; + charge -= ip.proton; + temp1 = sqrt(p.array[4]*(p.array[4]+2*p.array[5])); + amnucl.setX( amnucl.x()-temp1*(p.momentum.z()*p.array[0]*p.array[2]-p.momentum.y()*p.array[1]) ); + amnucl.setY( amnucl.y()-temp1*(p.momentum.x()*p.array[1]-p.momentum.z()*p.array[0]*p.array[3]) ); + amnucl.setZ( + amnucl.z()-temp1*(p.momentum.y()*p.array[0]*p.array[3]-p.momentum.x()*p.array[0]*p.array[2]) ); + if( theNucleus->GetEnergyDeposit() <= 0.0001 && + atwght == aNucl && charge == zNucl )return true; + if( theNucleus->GetEnergyDeposit() < 0 )return true; + if( KTOT > 100 ) + { + //write(16,27) + //27 format (40x,32hmassiv spt exceeded after cascad) + return false; + } + Dvector vtmp( 5 ); + vtmp[0] = p.array[0]; + vtmp[1] = p.array[1]; + vtmp[2] = p.array[4]; + vtmp[3] = ip.proton; + vtmp[4] = p.array[5]; + spt[KTOT]->swap( vtmp ); + + PARZS *pztmp = new PARZS; + pztmp->charge = ip.proton; + pztmp->what = GetING(); + if( p.array[5] <= 0.5 ) + { + if( ip.proton < 0 ) + pztmp->particleType = 7; + else if( ip.proton == 0 ) + pztmp->particleType = 8; + else + pztmp->particleType = 9; + } + else + { + if( ip.proton <= 0.099 )pztmp->particleType = 1; // neutron + else pztmp->particleType = 2; // proton + if( GetINDI() )pztmp->what = -pztmp->what; + } + pztmp->angle1 = atan2( p.array[0], p.array[1] ); + temp1 = atan2( p.array[2], p.array[3] ); + if( temp1 < 0 )temp1 = pi - temp1; + pztmp->angle2 = temp1; + pztmp->energy = p.array[4]; + parz.push_back( *pztmp ); + + ++KTOT; + cascem1( amnucl, p, ip, mv ); + goto LABEL; + } + + void G4PreEquilibrium::cascem1( G4ThreeVector a, MASTRUCT &p, IPSTRUCT &ip, G4int &m ) + { + const G4int N = 7; + if( m <= 0 ) + { + G4double temp = 5.07*rsm[N]; + a *= temp; + } + else + { + G4int i; + p.momentum = pmemo[m].momentum; + for( i = 0; i < 6; ++i )p.array[i] = pmemo[m].array[i]; + ip.proton = imemo[m].proton; + ip.ip1 = imemo[m].ip1; + ip.ip2 = imemo[m].ip2; + ip.nuclearZone = imemo[m].nuclearZone; + ip.ip4 = imemo[m].ip4; + SetING( ngen[m--] ); + } + return; + } + + G4bool G4PreEquilibrium::pointe( MASTRUCT &p, IPSTRUCT &ip, + G4double *pe, G4int *ipe, + G4ThreeVector v, G4double u, + G4double tin1, G4double sigp, + G4double sign, G4double sigabs, const G4double t3 ) + { + // determine interaction point inside nucleus + // + const G4int N = 7; + + G4bool nout; + const G4double sk = 3; + G4double temp1 = log(G4UniformRand()); + do + { + G4double s = geometricalParticlePath( p, ip ); + do + { + partnerSelection( p, ip, pe, ipe ); + // + // calculation of t, v, u + // + G4double pin = sqrt( p.array[4]*(p.array[4]+2*p.array[5]) ); + G4double pn = sqrt( pe[7]*(pe[7]+2*pe[8]) ); + G4double denom = p.array[4]+p.array[5]+pe[7]+pe[8]; + v.setX( (pin*p.array[0]*p.array[3]+pn*pe[3]*pe[6])/denom ); + v.setY( (pin*p.array[0]*p.array[2]+pn*pe[3]*pe[5])/denom ); + v.setZ( (pin*p.array[1]+pn*pe[4])/denom ); + u = sqrt( 1-v.mag2() )*denom; + tin1 = (u*u-(p.array[5]+pe[8])*(p.array[5]+pe[8]))/(2*pe[8]); + // + G4int i, ms, mq, ksin, ksip, me; + slqek( i, ms, mq, ksin, me, ip.ip1, ip.ip2, ip.nuclearZone, + ip.proton, ipe[1], ipe[2], ipe[3], 0 ); + sign = sigmat( i, ms, mq, ksin, 0, tin1 ); + slqek( i, ms, mq, ksip, me, ip.ip1, ip.ip2, ip.nuclearZone, + ip.proton, ipe[1], ipe[2], ipe[3], 1 ); + sigp = sigmat( i, ms, mq, ksip, 0, tin1 ); + sigabs = sigmat( i, ms, mq, ksip, 3, p.array[4] ); + G4double plambi = 10/((rhon[ip.ip4]*sign+rhop[ip.ip4]*sigp+ + rhop[ip.ip4]*sigabs)*rsm[N-1]); + if( -plambi*temp1-6*rhon[0]/rhon[N-1] > 0 ) + { + p.array[4] = t3; + return false; + } + G4double temp2 = sk; + G4double deltsi = plambi/temp2; + G4double temp5 = min( s, deltsi ); + G4double piks = temp1+temp5/plambi; + if( piks > 0 ) + { + G4ThreeVector tmp3vec( plambi*temp1*p.array[0]*p.array[3], + plambi*temp1*p.array[0]*p.array[2], + plambi*temp1*p.array[1] ); + p.momentum -= tmp3vec; + pe[0] = p.momentum.x(); + pe[1] = p.momentum.y(); + pe[2] = p.momentum.z(); + return nout; + } + temp1 = piks; + s -= temp5; + G4ThreeVector tmp3vec( temp5*p.array[0]*p.array[3], + temp5*p.array[0]*p.array[2], + temp5*p.array[1] ); + p.momentum += tmp3vec; + } while ( s != 0 ); + nout = refrac( N, p, ip ); + } while ( ip.ip4 < N+1 ); + G4double temp3 = geometricalParticlePath( p, ip ); + G4ThreeVector tmp3vec( temp3*p.array[0]*p.array[3], + temp3*p.array[0]*p.array[2], + temp3*p.array[1] ); + p.momentum += tmp3vec; + nout = refrac( N, p, ip ); + return false; + } + + G4double G4PreEquilibrium::geometricalParticlePath( const MASTRUCT p, const IPSTRUCT ip ) + { + G4double rin = p.momentum.mag(); + G4double c = (p.momentum.x()*p.array[0]*p.array[3] + + p.momentum.y()*p.array[0]*p.array[2] + + p.momentum.z()*p.array[1])/rin; + G4double g, r; + if( c < 0 ) + { + g = -1; + ip.ip4 < 2 ? r = 0 : r = rbig[ip.ip4-2]; + } + else + { + g = 1; + r = rbig[ip.ip4-1]; + } + G4double d = r*r - rin*rin*(1-c*c); + if( d < 0 ) + { + g = 1; + r = rbig[ip.ip4-1]; + d = r*r - rin*rin*(1-c*c); + } + return g*sqrt(d) - rin*c; + } + + G4bool G4PreEquilibrium::refrac( const G4int N, MASTRUCT &p, IPSTRUCT &ip ) const + { + // calculation of energy and direction change of + // particle while entering another zone of the nucleus + // + G4int j; + G4bool result; + G4double tmp = p.momentum.x()*p.array[0]*p.array[3] + + p.momentum.y()*p.array[0]*p.array[2] + + p.momentum.z()*p.array[1]; + tmp < 0 ? j = ip.ip4-1 : j = ip.ip4+1; + p.array[4] += poten( j, ip ) - poten( ip.ip4, ip ); + ip.ip4 = j; + j >= N+2 ? result = false : result = true; + return result; + } + + G4double G4PreEquilibrium::wopt( const G4double e1, const G4double r, const G4int i ) + { + const G4double a = aNucl; + const G4double z = zNucl; + G4double x = (a-2*z)/a; + G4double e = e1*GeV; + G4double rm, am, wv, wsf; // this rm is not the data member rm + if( i <= 0 ) + { + if( e <= 25 ) + { + rm = 1.26*pow(a,oneThird); + am = 0.58; + wv = 0.22*e - 1.56; + wsf = 13 - 0.25*e - 12*x; + } + else + { + rm = 1.21*pow(a,oneThird); + am = 0.6448; + wv = 0.459 + 0.111*e; + wsf = 4.28 - 0.0414*e; + } + } + else + { + if( e <= 25 ) + { + rm = 1.32*pow(a,oneThird); + am = 0.51 + 0.7*x; + wv = 0.22*e - 2.7; + wsf = 11.8 - 0.25*e + 12*x; + } + else + { + rm = 1.37*pow(a,oneThird); + am = 0.74 - 0.008*e + x; + wv = 1.2 + 0.09*e; + wsf = 4.2 - 0.05*e + 15.5*x; + } + } + if( wv < 0 )wv = 0; + if( wsf < 0 )wsf = 0; + G4double f = 1/(1+exp((r-rm)/am)); + return f*(wv+4*wsf*(1-f)); + } + + void G4PreEquilibrium::typint( MASTRUCT &p, IPSTRUCT &ip, + G4double *pe, G4int *ipe, G4ThreeVector v, + G4double u, G4double tin1, G4double sigp, + G4double sign, G4double sigabs, G4int mv, G4int &np ) + { + // block of determining of interaction type and calculation + // of secondary particles characteristics + // + G4bool nin = true; + while ( nin ) + { + G4int mtemp = ip.ip4-1; + G4double betabs = rhop[mtemp]*sigabs/ + (rhop[mtemp]*sigp+rhon[mtemp]*sign+rhop[mtemp]*sigabs); + if( G4UniformRand() <= betabs ) + { + absorption( p, ip, pe, mv, np, v ); + return; + } + G4int i, ms, mq, ksi, me; + slqek( i, ms, mq, ksi, me, ip.ip1, ip.ip2, ip.nuclearZone, + ip.proton, ipe[1], ipe[2], ipe[3], ipe[0] ); + G4double betael = (sigmat( i, ms, mq, ksi, 1, tin1 )+ + sigmat( i, ms, mq, ksi, 2, tin1 ))/ + sigmat( i, ms, mq, ksi, 0, tin1 ); + if (G4UniformRand() <= betael ) + { + np = elasticScattering( v, u, tin1, p, ip, ipe, mv, i, ms, mq, ksi, me ); + return; + } + nin = inelasticScattering( p, ip, ipe, i, ms, mq, ksi, me, v, u, tin1, mv, np ); + } + return; + } + + G4int G4PreEquilibrium::elasticScattering( const G4ThreeVector v, const G4double u, + const G4double tin, const MASTRUCT p, + const IPSTRUCT ip, const G4int *ipatne, + const G4int mv, const G4int i, + const G4int ms, const G4int mq, + const G4int ksi, const G4int me ) + { + // calculate particle characteristics in elastic and charge exchange scattering + // + G4double cmi, cmn; + if( ip.ip1 != 0 ) + { + cmi = 0.14; + cmn = 0.94; + } + else + { + cmi = p.array[5]; + cmn = 0.94; + } + G4double tmp1 = sigmat( i, ms, mq, ksi, 2, tin ); + G4double tmp2 = sigmat( i, ms, mq, ksi, 1, tin ); + G4int ie, ne; + G4double ctsti; + if( G4UniformRand() >= tmp1/(tmp1+tmp2) ) + { + ie = ip.proton; + ne = ipatne[0]; + ctsti = cosel( i, mq, ksi, tin, p.array[5] ); + } + else + { + if( ip.proton != 0 ) + { + ie = 0; + ne = me; + } + else + { + ne = 1 - ipatne[0]; + ie = me - ne; + } + ctsti = cosex( i, tin, p.array[5] ); + } + G4ThreeVector pist, pnst; + momentaCalc( p, v, u, pist, pnst, ctsti, cmi, cmn ); + // + MASTRUCT p1 = { pist, { 0.0, 0.0, 0.0, 0.0, 0.0, cmi } }; + pmemo[mv+2] = p1; + imemo[mv+2].proton = ie; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = ip.ip2; + imemo[mv+2].nuclearZone = ip.nuclearZone; + MASTRUCT p2 = { pnst, { 0.0, 0.0, 0.0, 0.0, 0.0, cmn } }; + pmemo[mv] = p2; + imemo[mv].proton = ne; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 1; + return 2; + } + + G4bool G4PreEquilibrium::inelasticScattering( MASTRUCT &p, IPSTRUCT &ip, G4int *ipatne, + G4int l, G4int ms, G4int mq, G4int ksi, + G4int me, G4ThreeVector v, G4double u, + G4double tin1, G4int mv, G4int np ) + { + if( ip.ip1 > 0 ) + { + G4double betais = crossSectionInterp(tin1,25)/crossSectionInterp(tin1,26); + // + // there is a bug in the original cem.f routine + // isocem uses TINI as 3rd parameter + // it should be TIN1 + // + if( G4UniformRand() <= betais ) + isocem( u, v, tin1, p, ipatne, mv ); + else + statisticalModel( u, v, p, ipatne, mv ); + return true; + } + G4double betath; + if( tin1 >= 4 ) + betath = 0; + else + betath = sigmat(l,ms,mq,ksi,7,tin1)/ + (sigmat(l,ms,mq,ksi,0,tin1)-sigmat(l,ms,mq,ksi,1,tin1)-sigmat(l,ms,mq,ksi,2,tin1)); + G4int ith; + G4double th; + if( G4UniformRand() < betath ) + { + ith = 1; + th = 1; + } + else + { + ith = 0; + th = 2; + } + if( u > p.array[5]+0.14*th+0.96 ) + { + G4int ik = 0; + G4int kp = 1; + while ( kp != 0 ) + { + G4bool lp = vmnsp( p, ip, u, mv, np, ith, mq, tin1 ); + if( np == 0 )return false; + if( lp )return true; + direction( v, u, tin1, mq, mv, np, p, kp, ith ); + if( ++ik >= 50 )return true; + } + chinel( ip, l, ms, mq, ksi, np, mv, tin1, me, ipatne ); + } + return true; + } + + G4double G4PreEquilibrium::wim( const G4int i, const MASTRUCT p, const IPSTRUCT ip ) + { + const G4double EPS = 0.007; + const G4int N = 7; + + G4double r, r1, a1, fac, tf, rho; + r = rsm[N]*p.momentum.mag(); + if( i <= 0 ) + { + r1 = 1.26*pow(aNucl,oneThird); + a1 = 0.58; + fac = 1/(1+exp((r-r1)/a1)); + tf = tfn[ip.ip4-1]; + rho = rhon[0]*fac; + } + else + { + r1 = 1.32*pow(aNucl,oneThird); + a1 = 0.51+0.7*(aNucl-2*zNucl)/aNucl; + fac = 1/(1+exp((r-r1)/a1)); + tf = tfp[ip.ip4-1]; + rho = rhop[0]*fac; + } + G4double tp = tf*pow(G4UniformRand(),twoThirds); + SetT0( p.array[5] ); + G4double z = abs(GetT0()-tf-EPS); + G4double y = sqrt(z*(z+2*p.array[5])); + G4double ct = 1.0 - 2*G4UniformRand(); + G4double fi = 2*pi*G4UniformRand(); + G4double pp = sqrt(tp*(tp+1.88)); + G4double et = GetT0()+p.array[5]+tp+0.94; + G4double vx = pp*sqrt(1-ct*ct)*cos(fi)/et; + G4double vy = pp*sqrt(1-ct*ct)*sin(fi)/et; + G4double vz = (pp*ct+sqrt(GetT0()*(GetT0()+2*p.array[5])))/et; + G4double t = (et*et*(1-vx*vx-vy*vy-vz*vz)-(p.array[5]+0.94)*(p.array[5]+0.94))/1.88; + G4double b = sqrt(t*(t+2*p.array[5]))/(t+p.array[5]); + G4double s; + ip.proton == i ? s = 10.63/(b*b)-29.92/b+42.9 : s = 34.10/(b*b)-82.20/b+82.2; + G4double bs = tf/GetT0(); + G4double dz = 1 - 1.4*bs; + if( bs > 0.5 )dz += 0.4*bs*pow(2-1/bs,2.5); + return 10*y/(z+p.array[5])*dz*rho*s; + } + + void G4PreEquilibrium::pauliPrinciple( MASTRUCT &p, IPSTRUCT &ip, G4ThreeVector v, + G4int mv, G4int np, const G4int ipa ) + { + G4int mtemp, i, j = ip.ip4, cntr = 1; + L10: + if( np == 2 ) + { + if( cntr == 2 ) + { + ++cntr; + goto L10; + } + else mtemp = mv+cntr-1; + } + else mtemp = mv+cntr-1; + // + G4ThreeVector pstar( pmemo[mtemp].momentum ); + // + G4double ct, st, cfi, sfi, t; + G4ThreeVector ptmp( p.momentum ); + t = cinema( pstar, v, ptmp, ct, st, cfi, sfi, pmemo[mtemp].array[5] ); + + MASTRUCT tmp = { ptmp, { st, ct, sfi, cfi, t, 0.0 } }; + pmemo.insert( pmemo.begin()+mtemp, tmp ); + + imemo[mtemp].ip4 = ip.ip4; + ngen.insert( ngen.begin()+mtemp, GetING()+1 ); + if( imemo[mtemp].nuclearZone == 1 && + imemo[mtemp].ip2 == 0 && + pmemo[mtemp].array[4]-tfp[j]*imemo[mtemp].proton-tfn[j]*(1-imemo[mtemp].proton) <= 0 ) + return; + if( cntr < np ) + { + ++cntr; + goto L10; + } + if( ipa == 0 )return; + if( p.array[5] == 0.140 && np == 2 && + pmemo[mv].array[5] == 0.94 && pmemo[mv+2].array[5] == 0.94 )SetINDI( true ); + for( i = 0; i < 6; ++i )p.array[i] = pmemo[mv+2].array[i]; + ip.proton = imemo[mv+2].proton; + ip.ip1 = imemo[mv+2].ip2; + ip.ip2 = imemo[mv+2].ip2; + ip.nuclearZone = imemo[mv+2].nuclearZone; + SetING( ngen[mv+2] ); + ++(exitons.hols); + if( np > 2 ) + { + G4int ntemp = mv+np; + for( i = 0; i < 6; ++i )pmemo[mv+2].array[i] = pmemo[ntemp].array[i]; + imemo[mv+2].proton = imemo[ntemp].proton; + imemo[mv+2].ip1 = imemo[ntemp].ip1; + imemo[mv+2].ip2 = imemo[ntemp].ip2; + imemo[mv+2].nuclearZone = imemo[ntemp].nuclearZone; + } + mv += np-1; + return; + } + + void G4PreEquilibrium::absorption( const MASTRUCT p, const IPSTRUCT ip, + G4double *pe, G4int mv, G4int &np, G4ThreeVector v ) + { + // calculation of particle characteristics in absorption + // + G4double p1[9]; + G4int ip1[5]; + // + partnerSelection( p, ip, p1, ip1 ); + G4double pn1 = sqrt( p1[7]*(p1[7]+1.88) ); + G4double pn = sqrt( pe[7]*(pe[7]+1.88) ); + G4ThreeVector paf( pn*pe[3]*pe[6]+pn1*p1[3]*p1[6], + pn*pe[3]*pe[5]+pn1*p1[3]*p1[5], + pn*pe[4]+pn1*p1[4] ); + G4double pafm = paf.mag(); + G4double ctn1, stn1, sfn1, cfn1; + if( paf.z()*paf.z() >= pafm*pafm ) + { + ctn1 = 1; + stn1 = 0; + sfn1 = 0; + cfn1 = 1; + } + else + { + ctn1 = paf.z()/pafm; + stn1 = sqrt(1-paf.z()/pafm*paf.z()/pafm); + sfn1 = paf.y()/(pafm*stn1); + cfn1 = paf.x()/(pafm*stn1); + } + G4double taf = sqrt(pafm*pafm+1.88*1.88)-1.88; + // + // calculation of t, v, u + // + G4double pin = sqrt( p.array[4]*(p.array[4]+2*p.array[5]) ); + pn = sqrt( taf*(taf+2*1.88) ); + G4double denom = p.array[4]+p.array[5]+taf+1.88; + v.setX( (pin*p.array[0]*p.array[3]+pn*stn1*cfn1)/denom ); + v.setY( (pin*p.array[0]*p.array[2]+pn*stn1*sfn1)/denom ); + v.setZ( (pin*p.array[1]+pn*ctn1)/denom ); + G4double u = sqrt( 1-v.mag2() )*denom; + G4double tin1 = (u*u-(p.array[5]+1.88)*(p.array[5]+1.88))/(2*1.88); + // + G4int ne, ie; + chargeInAbsorption( ip.ip1, ip.proton, ne, ie ); + G4double ctst; + if( ip.ip1 == 0 ) + ctst = 1-2*G4UniformRand(); + else + tin1 <= 0.455 ? ctst = costa( 18, tin1 ) : ctst = 1-2*G4UniformRand(); + G4ThreeVector pist, pnst; + momentaCalc( p, v, u, pist, pnst, ctst, 0.94, 0.94 ); + if( mv <= 97 ) + { + MASTRUCT pm1 = { pist, { 0.0, 0.0, 0.0, 0.0, 0.0, p1[8] } }; + pmemo.insert( pmemo.begin()+mv+2, pm1 ); + imemo[mv+2].proton = ie; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + MASTRUCT pm2 = { (-1)*pist, { 0.0, 0.0, 0.0, 0.0, 0.0, pe[8] } }; + pmemo.insert( pmemo.begin()+mv, pm2 ); + imemo[mv+2].proton = ne; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + np = 2; + return; + } + np = 0; + //write(16,19) + //19 format(45x,29h memory is exceeded in cascad) + return; + } + + void G4PreEquilibrium::chargeInAbsorption( const G4int m, const G4int ine, + G4int &ne1, G4int &ne2 ) + { + // determine charge in absorption + // + const G4double a = aNucl; + const G4double z = zNucl; + if( ine < 0 ) + { + if( m != 0 ) + { + ne1 = 0; + ne2 = 0; + } + else + { + G4double temp2 = (z*(z-1))/(2*z*(a-z)+z*(z-1)); + if( G4UniformRand() <= temp2 ) + { + ne1 = 0; + ne2 = 1; + } + else + { + ne1 = 0; + ne2 = 0; + } + } + } + else if( ine == 0 ) + { + if( m != 0 ) + { + ne1 = 0; + ne2 = 1; + } + else + { + G4double temp3 = (2*z*(a-z))/(a*(a-1)); + if( G4UniformRand() <= temp3 ) + { + ne1 = 0; + ne2 = 1; + } + else + { + G4double temp4 = (z*(z-1))/(a*(a-1)) + temp3; + if( G4UniformRand() <= temp4 ) + { + ne1 = 1; + ne2 = 1; + } + else + { + ne1 = 0; + ne2 = 0; + } + } + } + } + else + { + if( m != 0 ) + { + ne1 = 1; + ne2 = 1; + } + else + { + G4double temp1 = (z*(a-z))/(z*(a-z)+(a-z)*(a-z-1)/2); + if( G4UniformRand() <= temp1 ) + { + ne1 = 1; + ne2 = 1; + } + else + { + ne1 = 0; + ne2 = 1; + } + } + } + return; + } + + void G4PreEquilibrium::momentaCalc( const MASTRUCT p, const G4ThreeVector v, + const G4double u, G4ThreeVector pist, + G4ThreeVector pnst, const G4double cti, + const G4double cmi, const G4double cmn ) + { + // calculate momenta of secondary particles in centre of mass system + // for absorption and elastic scattering + // + G4double angle = 2*pi*G4UniformRand(); + G4double pim = sqrt((u*u+cmi*cmi-cmn*cmn)/(2*u)*(u*u+cmi*cmi-cmn*cmn)/(2*u)-cmi*cmi); + G4double v2 = v.mag2(); + G4double temp3 = sqrt(p.array[4]*(p.array[4]+2*p.array[5])); + G4double temp1 = (temp3*p.array[0]*p.array[3]*v.x()+temp3*p.array[1]*v.y()+ + temp3*p.array[0]*p.array[2]*v.z())*(1/sqrt(1-v2)-1)/v2; + G4double temp2 = (p.array[4]+p.array[5])/sqrt(1-v2); + + G4ThreeVector pins( temp3*p.array[0]*p.array[3]+v.x()*(temp1-temp2), + temp3*p.array[0]*p.array[2]+v.y()*(temp1-temp2), + temp3*p.array[1]+v.z()*(temp1-temp2) ); + G4ThreeVector pii( pim*sqrt(1-cti*cti)*cos(angle), + pim*sqrt(1-cti*cti)*sin(angle), + pim*cti ); + pist = rotation( pins, v, pii ); + pnst = pist * (-1); + return; + } + + void G4PreEquilibrium::partnerSelection( const MASTRUCT p, const IPSTRUCT ip, + G4double *pe, G4int *ipe ) + { + G4double t = 0; + if( G4UniformRand() >= (aNucl-zNucl)/aNucl ) + { + while( t <= 0 ) + t = tfp[ip.ip4-1]*pow(G4UniformRand(),twoThirds); + ipe[0] = 1; + } + else + { + while( t <= 0 ) + t = tfn[ip.ip4-1]*pow(G4UniformRand(),twoThirds); + ipe[0] = 0; + } + pe[4] = 1-2*G4UniformRand(); + pe[3] = sqrt(1-pe[4]*pe[4]); + G4double phin = 2*pi*G4UniformRand(); + pe[6] = cos(phin); + pe[5] = sin(phin); + pe[0] = p.momentum.x(); + pe[1] = p.momentum.y(); + pe[2] = p.momentum.z(); + pe[8] = 0.940; + pe[7] = t; + ipe[4] = ip.ip4; + ipe[1] = 0; + ipe[2] = 0; + ipe[3] = 1; + return; + } + + void G4PreEquilibrium::chinel( IPSTRUCT &ipatin, const G4int l, const G4int ms, + const G4int mq, const G4int ksi, const G4int np, + const G4int mv, const G4double tin1, const G4int me, + G4int *ipatne ) + { + // determine secondary particles charges in inelastic scattering + // + if( np == 3 ) + { + G4double spi0 = sigmat( l, ms, mq, ksi, 4, tin1 ); + G4double sth = sigmat( l, ms, mq, ksi, 7, tin1 ); + G4double ran = G4UniformRand(); + if( ran >= spi0/sth ) + { + if( ran >= (spi0+sigmat(l,ms,mq,ksi,5,tin1))/sth ) + { + imemo[mv].proton = ipatne[1] - (ipatin.ip4-1)*ipatin.ip1; + imemo[mv+2].proton = (ipatin.ip4-1)*ipatin.ip1*ipatin.ip1 - ipatin.ip4*ipatin.ip1 + 1; + imemo[mv+1].proton = me - imemo[mv].proton - imemo[mv+2].proton; + } + else + { + imemo[mv].proton = 1 - ipatne[1]; + imemo[mv+2].proton = ipatin.ip1; + imemo[mv+1].proton = me - imemo[mv].proton - imemo[mv+2].proton; + } + } + else + { + imemo[mv].proton = ipatne[1]; + imemo[mv+1].proton = 0; + imemo[mv+2].proton = ipatin.ip1; + } + return; + } + G4int migq; + do + { + G4UniformRand() <= 0.5 ? imemo[mv].proton = 1 : imemo[mv].proton = 0; + if( mq >= 1 ) + { + G4UniformRand() <= 0.5 ? imemo[mv+2].proton = 1 : imemo[mv+2].proton = 0; + } + G4int lambda = 0; + do + { + ++lambda; + if( mq <= 1 || lambda != 2 ) + { + G4double ran = G4UniformRand(); + if( ran >= oneThird ) + { + ran < twoThirds ? imemo[mv+lambda].proton = 0 : imemo[mv+lambda].proton = -1; + } + else imemo[mv+lambda].proton = 1; + } + } + while ( lambda < np ); + migq = 0; + for( G4int i = 0; i < np; ++i )migq += imemo[mv+i].proton; + } while( me != migq ); + return; + } + + void G4PreEquilibrium::direction( G4ThreeVector v, const G4double u, const G4double tin1, + const G4int mq, const G4int mv, const G4int np, + const MASTRUCT partin, G4int &kp, const G4int ith ) + { + // determine direction of secondary particle motion + // + G4int nd = 0; + G4int m1, m2; + kp = 0; + if( mq > 1 ) + { + if( G4UniformRand() >= 0.5 ) + { + if( G4UniformRand() >= 0.5 ) + { + m1 = 0; + m2 = 1; + } + else + { + m1 = 1; + m2 = 2; + } + } + else + { + m1 = 0; + m2 = 2; + } + } + else + { + if( G4UniformRand() >= 0.5 ) + { + m1 = 0; + if( G4UniformRand() >= 0.5 )m2 = 1; + else m2 = 2; + } + else + { + m1 = 1; + m2 = 2; + } + } + G4ThreeVector pl, pakv; + G4int lambda, m1temp, m2temp; + LABEL: + pakv.setX( 0.0 ); + pakv.setY( 0.0 ); + pakv.setZ( 0.0 ); + m1temp = mv + m1; + m2temp = mv + m2; + lambda = 0; + do + { + if( lambda != m1 && lambda != m2 ) + { + G4int ja = coefficientTypeA( ith, mq, lambda ); + G4double ctl = costa( ja, tin1 ); + G4double fl = 2*pi*G4UniformRand(); + G4double stl = sqrt(1-ctl*ctl); + G4double temp1 = cos(fl); + G4double temp2 = sin(fl); + G4double temp3 = pmemo[mv+lambda].array[0]; + G4ThreeVector tmp3vec( temp3*stl*temp1, temp3*stl*temp2, temp3*ctl ); + MASTRUCT tmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; + pmemo.insert( pmemo.begin()+mv+lambda, tmp ); + pakv += pmemo[mv+lambda].momentum; + } + } while( lambda++ < np ); + G4double pakvm = pakv.mag(); + if( np != 3 && pmemo[m1temp].momentum.z() >= pakvm+pmemo[m2temp].array[0] && + pmemo[m1temp].momentum.z() <= abs(pakvm-pmemo[m2temp].array[0]) ) + { + if( ++nd >= 100 ) + { + kp = 2; + return; + } + goto LABEL; + } + G4double v2 = v.mag2(); + G4double temp4 = sqrt(partin.array[4]*(partin.array[4]+2*partin.array[5])); + G4double spv = temp4*partin.array[0]*partin.array[3]*v.x() + temp4*partin.array[1]*v.z() + + temp4*partin.array[0]*partin.array[2]*v.y(); + G4double temp5 = spv*(1/sqrt(1-v2)-1)/v2; + G4double temp6 = (partin.array[4]+partin.array[5])/sqrt(1-v2); + G4ThreeVector pin( temp4*partin.array[0]*partin.array[3] + v.x()*temp5 - v.x()*temp6, + temp4*partin.array[0]*partin.array[2] + v.y()*temp5 - v.y()*temp6, + temp4*partin.array[1] + v.z()*temp5 - v.z()*temp6 ); + // + lambda = 1; + if( lambda == m1 && lambda < np )++lambda; + G4int ltemp = mv + lambda; + G4ThreeVector plst; + if( lambda == m1 ) + { + G4ThreeVector pakst; + pakst = rotation( pin, v, pakv ); + G4double ctm1 = (pmemo[m2temp].array[0]*pmemo[m2temp].array[0]- + pmemo[m1temp].array[0]*pmemo[m1temp].array[0]-pakvm*pakvm)/ + (2*pakvm*pmemo[m1temp].array[0]); + G4double ctm2 = (pmemo[m1temp].array[0]*pmemo[m1temp].array[0]- + pmemo[m2temp].array[0]*pmemo[m2temp].array[0]-pakvm*pakvm)/ + (2*pakvm*pmemo[m2temp].array[0]); + G4double fm1 = 2*pi*G4UniformRand(); + G4double fm2 = pi+fm1; + G4double stm1 = sqrt(1-ctm1*ctm1); + G4double stm2 = sqrt(1-ctm2*ctm2); + G4double cfm1 = cos(fm1); + G4double sfm1 = sin(fm1); + G4double cfm2 = cos(fm2); + G4double sfm2 = sin(fm2); + pl.setX( pmemo[m1temp].array[0]*stm1*cfm1 ); + pl.setY( pmemo[m1temp].array[0]*stm1*sfm1 ); + pl.setZ( pmemo[m1temp].array[1]*ctm1 ); + plst = rotation( pakst, v, pl ); + pmemo[m1temp].momentum = plst; + pl.setX( pmemo[m2temp].array[0]*stm2*cfm2 ); + pl.setY( pmemo[m2temp].array[0]*stm2*sfm2 ); + pl.setZ( pmemo[m2temp].array[0]*ctm2 ); + plst = rotation( pakst, v, pl ); + pmemo[m2temp].momentum = plst; + } + else if( lambda != m2 ) + { + pl = pmemo[ltemp].momentum; + plst = rotation( pin, v, pl ); + pmemo[ltemp].momentum = plst; + } + return; + } + + G4int G4PreEquilibrium::coefficientTypeA( const G4int ith, const G4int mq, + const G4int lamb ) + { + // determine type of coefficients a(n,k) + // + G4int result; + if( ith != 0 ) + { + if( mq <= 1 ) + { + lamb > 1 ? result = 25 : result = 24; + } + else + { + if( lamb > 1 ) + { + lamb == 3 ? result = 16 : result = 21; + } + else result = 20; + } + } + else + { + if( mq <= 1 ) + { + lamb <= 1 ? result = 26 : result = 27; + } + else + { + if( lamb > 1 ) + { + lamb == 3 ? result = 22 : result = 23; + } + else result = 22; + } + } + return result; + } + + G4bool G4PreEquilibrium::vmnsp( const MASTRUCT partin, const IPSTRUCT ipatin, const G4double u, + const G4int mv, G4int &np, const G4int ith, + const G4int mq, const G4double tin1 ) + { + // calculate secondary particle number and + // determine absolute values of momenta in inelastic interaction + // + G4int counter = 0; + LABEL1: + G4double u1 = u; + G4int lambda = 0; + LABEL2: + if( mv+lambda >= 100 ) + { + np = 0; + //write(16,39) + //39 format(45x,29h memory is exceeded in cascad) + return false; + } + if( lambda == 0 ) + { + G4ThreeVector tmp3vec( 0.0, 0.0, 0.0 ); + MASTRUCT matmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.94 } }; + pmemo.insert( pmemo.begin()+mv+lambda, matmp ); + IPSTRUCT iptmp = { 0, 0, 0, 1, 0 }; + imemo.insert( imemo.begin()+mv+lambda, iptmp ); + } + else if( lambda == 2 ) + { + G4ThreeVector tmp3vec( 0.0, 0.0, 0.0 ); + MASTRUCT matmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, partin.array[5] } }; + pmemo.insert( pmemo.begin()+mv+lambda, matmp ); + IPSTRUCT iptmp = { 0, 0, ipatin.ip2, ipatin.nuclearZone, 0 }; + imemo.insert( imemo.begin()+mv+lambda, iptmp ); + } + else + { + G4ThreeVector tmp3vec( 0.0, 0.0, 0.0 ); + MASTRUCT matmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.14 } }; + pmemo.insert( pmemo.begin()+mv+lambda, matmp ); + IPSTRUCT iptmp = { 0, 0, 0, 0, 0 }; + imemo.insert( imemo.begin()+mv+lambda, iptmp ); + } + G4int jb = coefficientTypeB( ith, mq, lambda ); + pmemo[mv+lambda].array[0] = secondaryParticleMomentum(jb,tin1); + G4double el = sqrt(pmemo[mv+lambda].array[0]*pmemo[mv+lambda].array[0]+ + pmemo[mv+lambda].array[5]*pmemo[mv+lambda].array[5]); + G4double deltu = u1-el; + if( lambda == 0 ) + { + if( deltu <= partin.array[5] ) + { + if( ++counter == 100 )return true; + goto LABEL1; + } + if( ith == 0 ) + { + u1 = deltu; + ++lambda; + goto LABEL2; + } + pmemo[mv+2].array[0] = sqrt(deltu*deltu-partin.array[5]*partin.array[5]); + pmemo[mv+2].array[5] = partin.array[5]; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = ipatin.ip2; + imemo[mv+2].nuclearZone = ipatin.nuclearZone; + if( pmemo[mv].array[0] > pmemo[mv+1].array[0]+pmemo[mv+2].array[0] || + pmemo[mv].array[0] <= abs(pmemo[mv+1].array[0]-pmemo[mv+2].array[0]) ) + { + if( ++counter == 100 )return true; + goto LABEL1; + } + np = 3; + return true; + } + if( deltu > 0.14 ) + { + u1 = deltu; + ++lambda; + goto LABEL2; + } + if( lambda <= 1 || lambda == 3 ) + { + if( ++counter == 100 )return true; + goto LABEL1; + } + el += deltu; + pmemo[mv+lambda].array[0] = sqrt(el*el-pmemo[mv+lambda].array[5]*pmemo[mv+lambda].array[5]); + np = lambda; + G4double c = pmemo[mv].array[0]; + G4int i; + for( i = 0; i < np; ++i ) + { + if( c < pmemo[mv+i].array[0] )c = pmemo[mv+i].array[0]; + } + G4double pmax = c; + G4double sigma = 0; + for( i = 0; i < np; ++i )sigma += pmemo[mv+i].array[0]; + if( 2*pmax >= sigma ) + { + if( ++counter == 100 )return true; + goto LABEL1; + } + return false; + } + + G4double G4PreEquilibrium::secondaryParticleMomentum( const G4int j, const G4double t ) + { + // calculation of secondary particle momentum + // + const G4double bnkj[8][4][4] = + { { { 0.50278, 3.1442, -7.8172, 8.1667 }, + { 0.93482, -10.590, 29.227, -34.550 }, + {-0.096685, 4.7335, -14.298, 17.685 }, + {-0.025041, -0.62478, 2.0282, -2.5895 } }, + { { 1.1965, -0.82889, 1.0426, -1.9090 }, + { 0.28703, -4.9065, 16.264, -19.904 }, + {-0.24492, 2.9191, -9.5776, 11.938 }, + { 0.037297, -0.42200, 1.3883, -1.7476 } }, + { { 1.3508, -4.3139, 12.291, -15.288 }, + {-0.20086, 1.3641, -3.4030, 3.8559 }, + { 0.012583, -0.083492, 0.18600, -0.20043 }, + {-0.00023628, 0.0013514, -0.0024324, 0.0021906 } }, + { { 1.2419, -4.3633, 13.743, -18.592 }, + {-0.24404, 1.3158, -3.5691, 4.3867 }, + { 0.015693, -0.082579, 0.21427, -0.25846 }, + {-0.00029386, 0.0014060, -0.0033835, 0.0038664 } }, + { { 0.63054, -3.7333, 13.464, -18.594 }, + { 2.1801, 1.5163, -16.380, 27.944 }, + {-1.2886, -2.4570, 15.129, -23.295 }, + { 0.20915, 0.52279, -2.8687, 4.2688 } }, + { { 0.93363, -1.8181, 5.5157, -8.5216 }, + { 1.7811, -8.2927, 20.607, -20.827 }, + {-1.5264, 6.8433, -16.067, 16.845 }, + { 0.27128, -1.1944, 2.7495, -2.9045 } }, + { { 1.9439, -4.6268, 9.7879, -9.6074 }, + {-0.34640, 1.1093, -1.9313, 1.7064 }, + { 0.027054, -0.11638, 0.26969, -0.31853 }, + {-0.00066092, 0.0050728, -0.014995, 0.019605 } }, + { { 1.8693, -5.5678, 14.795, -16.903 }, + {-0.49965, 1.7874, -4.1330, 3.8393 }, + { 0.046194, -0.18536, 0.45315, -0.46273 }, + {-0.0013341, 0.0057710, -0.014554, 0.015554 } } }; + const G4double ckj[8][3] = { + 0.14509, 0.46520, -0.033005, 0.15376, + 0.27436, -0.014604, 0.62959, 0.17866, + -0.0026216, 0.83810, 0.0086137, 0.0032946, + 0.092852, 0.53886, -0.054493, 0.13032, + 0.40709, -0.028782, 0.14909, 0.38502, + -0.012775, 0.18024, 0.33022, -0.0094491 }; + G4double bnk[4][4]; + G4int n, k; + for( k = 0; k < 4; ++k ) + { + for( n = 0; n < 4; ++n )bnk[n][k] = bnkj[n][k][j]; + } + G4double s1 = 0; + G4double r1 = G4UniformRand(); + G4double s2 = 0; + G4double s3 = 0; + for( n = 0; n < 4; ++n ) + { + for( k = 0; k < 4; ++k )s1 += bnk[n][k]*pow(t,k)*pow(r1,n); + } + for( n = 0; n < 4; ++n ) + { + for( k = 0; k < 4; ++k )s2 += bnk[n][k]*pow(t,k); + } + for( k = 0; k < 3; ++k )s3 += ckj[k][j]*pow(t,k); + return s3*sqrt(r1)*(s1+(1-s2)*r1*r1*r1*r1); + } + + G4int G4PreEquilibrium::coefficientTypeB( const G4int i, const G4int mq, + const G4int lamb ) + { + // determine type of coefficients b(n,k) + // + G4int result; + if( i != 0 ) + { + if( mq <= 1 ) + { + lamb > 1 ? result = 5 : result = 4; + } + else + { + if( lamb > 1 ) + { + lamb == 3 ? result = 0 : result = 1; + } + else result = 0; + } + } + else + { + if( mq <= 1 ) + { + lamb <= 1 ? result = 6 : result = 7; + } + else + { + if( lamb > 1 ) + { + lamb == 3 ? result = 2 : result = 3; + } + else result = 2; + } + } + return result; + } + + void G4PreEquilibrium::statisticalModel( const G4double u, const G4ThreeVector v, + const MASTRUCT partin, const G4int *ipatne, + const G4int mv ) + { + // determine secondary particle characteristics for + // gamma-n interaction with statistical model + // + G4double tpim = (u*u+0.0196-1.08*1.08)/(2*u) - 0.14; + LABEL: + G4double t1 = G4UniformRand()*tpim; + G4double t2 = G4UniformRand()*tpim; + G4double e1 = t1 + 0.14; + G4double e2 = t2 + 0.14; + // + if( G4UniformRand() >= 27*e1*e2*(u-e1-e2)/(u*u*u) )goto LABEL; + // + G4double t3 = u - e1 - e2 - 0.94; + if( t3 <= 0 )goto LABEL; + // + G4double p1 = sqrt(t1*(t1+0.28)); + G4double p2 = sqrt(t2*(t2+0.28)); + G4double p3 = sqrt(t3*(t3+1.88)); + // + if( (p1+p2-p3)*(p1-p2+p3)*(p2+p3-p1) <= 0 )goto LABEL; + // + G4double ct3 = 1-2*G4UniformRand(); + G4double fi3 = 2*pi*G4UniformRand(); + G4double temp2 = sqrt(1-ct3*ct3); + // + G4ThreeVector pv3( p3*temp2*cos(fi3), + p3*temp2*sin(fi3), + p3*ct3 ); + G4double temp3 = sqrt(partin.array[4]*(partin.array[4]+2*partin.array[5])); + // + G4ThreeVector pin( temp3*partin.array[0]*partin.array[3], + temp3*partin.array[0]*partin.array[2], + temp3*partin.array[1] ); + // + G4ThreeVector pinst = cms( pin, v, partin.array[4]+partin.array[5] ); + // + G4ThreeVector ps3 = rotation( pinst, v, pv3 ); + G4double ct1 = (p2*p2-p1*p1-p3*p3)/(2*p3*p1); + G4double ct2 = (p1*p1-p2*p2-p3*p3)/(2*p3*p2); + G4double fi1 = 2*pi*G4UniformRand(); + G4double fi2 = pi + fi1; + G4double st1 = sqrt(1-ct1*ct1); + G4double st2 = sqrt(1-ct2*ct2); + // + G4ThreeVector pv1( p1*st1*cos(fi1), + p1*st1*sin(fi1), + p1*ct1 ); + G4ThreeVector ps1 = rotation( ps3, v, pv1 ); + // + G4ThreeVector pv2( p2*st2*cos(fi2), + p2*st2*sin(fi2), + p2*ct2 ); + // + G4ThreeVector ps2 = rotation( ps3, v, pv2 ); + pmemo[mv].momentum = ps1; + pmemo[mv].array[5] = 0.14; + pmemo[mv+1].momentum = ps2; + pmemo[mv+1].array[5] = 0.14; + pmemo[mv+2].momentum = ps3; + pmemo[mv+2].array[5] = 0.94; + if( ipatne[1] <= 0 ) + { + G4double temp4 = G4UniformRand(); + if( temp4 > oneThird) + { + if( temp4 <= twoThirds ) + { + imemo[mv].proton = 0; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = -1; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 1; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + else + { + imemo[mv].proton = -1; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = 1; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 0; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + } + else + { + imemo[mv].proton = 0; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = 0; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 0; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + } + else + { + G4double temp4 = G4UniformRand(); + if( temp4 > oneThird ) + { + if( temp4 <= twoThirds ) + { + imemo[mv].proton = 0; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = 1; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 0; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + else + { + imemo[mv].proton = 1; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = -1; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 1; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + } + else + { + imemo[mv].proton = 0; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = 0; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 1; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + } + return; + } + + void G4PreEquilibrium::isocem( const G4double u, const G4ThreeVector v, + const G4double tin1, const MASTRUCT partin, + const G4int *ipatne, const G4int mv ) + { + // interaction with (3/2,3/2) isobar production + // + // + G4double a1 = (u*u+0.0196-1.08*1.08)/(2*u); + G4double a2 = sqrt(a1*a1-0.0196); + G4double a3 = u-a1; + // + G4double epim, bms, pim, p; + do + { + bms = G4UniformRand()*(u-1.22)+1.08; + epim = (u*u+0.0196-bms*bms)/(2*u); + pim = sqrt(epim*epim-0.0196); + p = ((pim*epim*(u-epim))/u)* + crossSectionInterp((bms*bms-1.08*1.08)/1.88,8)/(200*a1*a2*a3/u); + } + while ( G4UniformRand() >= p ); + // + G4double ctpi; + tin1 < 1 ? ctpi = costa( 27, tin1 ) : ctpi = costa( 28, tin1 ); + G4double fipi = 2*pi*G4UniformRand(); + G4double epit = (bms*bms+0.0196-0.94*0.94)/(2*bms); + G4double temp1 = sqrt(1-ctpi*ctpi); + + G4ThreeVector ppim( pim*temp1*cos(fipi), + pim*temp1*sin(fipi), + pim*ctpi ); + + G4ThreeVector vt = ppim * (1/(epim-u)); + + G4double ctilpi = 1-2*G4UniformRand(); + G4double ftilpi = 2*pi*G4UniformRand(); + temp1 = sqrt(1-ctilpi*ctilpi); + G4double pmt = sqrt(epit*epit-0.0196); + + G4ThreeVector ppit( pmt*temp1*cos(ftilpi), + pmt*temp1*sin(ftilpi), + pmt*ctilpi ); + + vt *= -1.0; + + G4ThreeVector ppi = cms( ppit, vt, epit ); + + G4ThreeVector ppt = ppit * (-1.0); + + G4ThreeVector pp = cms( ppt, vt, bms-epit ); + + G4double temp2 = sqrt(partin.array[4]*(partin.array[4]+2*partin.array[5])); + G4ThreeVector pin( temp2*partin.array[0]*partin.array[3], + temp2*partin.array[0]*partin.array[2], + temp2*partin.array[1] ); + + G4ThreeVector pinst = cms( pin, v, partin.array[4]+partin.array[5] ); + + G4ThreeVector ppimst; + ppimst = rotation( pinst, v, ppim ); + pmemo[mv].momentum = ppimst; + pmemo[mv].array[5] = 0.14; + + G4ThreeVector ppist; + ppist = rotation( pinst, v, ppi ); + pmemo[mv+1].momentum = ppist; + pmemo[mv+1].array[5] = 0.14; + + G4ThreeVector ppst; + ppst = rotation( pinst, v, pp ); + pmemo[mv+2].momentum = ppst; + pmemo[mv+2].array[5] = 0.94; + if( ipatne[1] > 0 ) + { + imemo[mv].proton = -1; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = 1; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 1; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + else + { + imemo[mv].proton = 1; + imemo[mv].ip1 = 0; + imemo[mv].ip2 = 0; + imemo[mv].nuclearZone = 0; + imemo[mv+1].proton = -1; + imemo[mv+1].ip1 = 0; + imemo[mv+1].ip2 = 0; + imemo[mv+1].nuclearZone = 0; + imemo[mv+2].proton = 0; + imemo[mv+2].ip1 = 0; + imemo[mv+2].ip2 = 0; + imemo[mv+2].nuclearZone = 1; + } + return; + } + + G4ThreeVector G4PreEquilibrium::cms( const G4ThreeVector p, const G4ThreeVector v, + const G4double tcm ) const + { + // momentum calculation in system which has velocity v relative to given one + // + G4double temp1 = sqrt( 1 - v.mag2() ); + G4double temp2 = p.dot(v)/v.mag2()*(1/temp1-1); + G4ThreeVector result( p.x() + v.x()*(temp2-tcm/temp1), + p.y() + v.y()*(temp2-tcm/temp1), + p.z() + v.z()*(temp2-tcm/temp1) ); + return result; + } + + void G4PreEquilibrium::bertcem( const G4int nuclideTypeNumber, const G4int mediumNumber ) + { + // this routine was called by cascade and by cemgeo + // + aNucl = GetA_FCOMON(nuclideTypeNumber,mediumNumber); + zNucl = GetZ_FCOMON(nuclideTypeNumber,mediumNumber); + SetT0( 3.4995 ); + // + // neutron density = proton density = nucleon density + // + const G4double a[10] = { 0.95, 0.8, 0.5, 0.2, 0.1, 0.05, 0.01, 0.0, 0.0, 0.0 }; + const G4double r0n = 1.07; + const G4double rmax = 10; + const G4double bnr = 0.545; + // + G4double rn = r0n*pow(aNucl,oneThird); + G4int i; + // + const G4int N = 7; + for( i = 0; i < N; ++i )rsm.push_back( rn+bnr*(log((1-a[i])/a[i])) ); + rsm.push_back( rmax ); + // + G4double hin[10], fi[10]; + fi[0] = fintfis( rsm[0], 0.0, bnr, rn ); + hin[0] = fints2( rsm[0], 0.0, bnr, rn ); + G4double sumhin = hin[0]; + for( i = 1; i < N; ++i ) + { + fi[i] = fintfis( rsm[i], rsm[i-1], bnr, rn ); + hin[i] = fints2( rsm[i], rsm[i-1], bnr, rn ); + sumhin += hin[i]; + } + // + G4double rhon0 = aNucl/(4*pi*sumhin); + G4double fi0 = (4*pi*zNucl*0.00144*rhon0)/aNucl; + rhon.push_back( 3*hin[0]*rhon0/rsm[0]/rsm[0]/rsm[0] ); + af.push_back( fi[0]*fi0*3/rsm[0]/rsm[0]/rsm[0] ); + for( i = 1; i < N; ++i ) + { + rhon.push_back( 3*hin[i]*rhon0/(rsm[i]*rsm[i]*rsm[i]-rsm[i-1]*rsm[i-1]*rsm[i-1]) ); + tfp.push_back( 0.1985*pow( rhon[i]*zNucl/aNucl, twoThirds ) ); + tfn.push_back( 0.1985*pow( rhon[i]*(aNucl-zNucl)/aNucl, twoThirds ) ); + af.push_back( 3*fi0*fi[i]/(rsm[i]*rsm[i]*rsm[i]-rsm[i-1]*rsm[i-1]*rsm[i-1]) ); + rbig.push_back( rsm[i]/rsm[N] ); + } + rbig.push_back( rmax/rsm[N-1] ); + af.push_back( zNucl*0.00144/rmax ); + for( i = 0; i < N; ++i ) + { + rhop.push_back( rhon[i]*zNucl/aNucl ); + rhon[i] *= (aNucl-zNucl)/aNucl; + } + // + af.insert( af.begin(), 10, 0.0 ); + // + G4ThreeVector amnucl; + if( !cascem( amnucl ) ) + { + SetLXYZ( amnucl ); + SetN0( exitons.protons + exitons.neutrons + exitons.hols ); + SetH0( exitons.hols ); + SetPZ0( exitons.protons ); + SetP0( exitons.protons + exitons.neutrons ); + } + return; + } + + G4double G4PreEquilibrium::fintfis( const G4double flim1, const G4double flim2, + const G4double bs, const G4double rs ) + { + const G4int N = 7; + const G4double w[8] = { 0.1012285363, 0.2223810345, 0.3137066459, 0.3626837834, + 0.3626837834, 0.3137066459, 0.2223810345, 0.1012285363 }; + const G4double fiks[8] = { 0.9602898565, 0.7966664774, 0.5255324099, 0.1834346425, + -0.1834346425, -0.5255324099, -0.7966664774, -0.9602898565 }; + // + G4double temp = 0; + for( G4int i = 0; i < 8; ++i ) + { + G4double fy = ((flim1-flim2)*fiks[i]+flim1+flim2)/2; + G4double tmp1 = 0.0; + G4double tmp2 = 0.0; + G4double tmp3 = 0.0; + for( G4int j = 0; j < 8; ++j ) + { + fy = ((flim1-flim2)*fiks[j]+flim1+flim2)/2; + tmp1 += w[j]*(fy*fy)/(1+exp((fy-rs)/bs)); + tmp2 += w[j]*rsm[N]/(1+exp((rsm[N]-rs)/bs)); + tmp3 += w[j]*fy/(1+exp((fy-rs)/bs)); + } + G4double f1 = tmp1*(flim1-flim2)/2; + G4double f2 = tmp2*(flim1-flim2)/2; + G4double f3 = tmp3*(flim1-flim2)/2; + temp += w[i] * (f1/fy + f2 - f3)*fy*fy; + } + return temp*(flim1-flim2)/2; + } + + G4double G4PreEquilibrium::fints2( G4double flim1, G4double flim2, + G4double bs, G4double rs ) + { + const G4double w[8] = { 0.1012285363, 0.2223810345, 0.3137066459, 0.3626837834, + 0.3626837834, 0.3137066459, 0.2223810345, 0.1012285363 }; + const G4double fiks[8] = { 0.9602898565, 0.7966664774, 0.5255324099, 0.1834346425, + -0.1834346425, -0.5255324099, -0.7966664774, -0.9602898565 }; + G4double temp = 0; + for( G4int i = 0; i < 8; ++i ) + { + G4double fy = ((flim1-flim2)*fiks[i]+flim1+flim2)/2; + temp += w[i] * (fy*fy)/(1+exp((fy-rs)/bs)); + } + return temp*(flim1-flim2)/2; + } + + G4double G4PreEquilibrium::arfaf( G4double *ami ) + { + // renormalisation of emission probabilities + // + const G4double AMF = 0.0; + // + G4double sfix = 30; + G4double smx = 0; + for( G4int k = 0; k < 7; ++k ) + { + G4double q8; + if( rj[k] <= 0 )q8 = 0; + else + { + G4double tmp; + k == 6 ? tmp = AMF : tmp = ami[k]; + q8 = 2*sqrt(tmp*afj[k]*rj[k]); + } + smx = max( smx, q8 ); + } + G4double result; + smx <= sfix ? result = 0.0 : result = smx-sfix; + return result; + } + + G4double G4PreEquilibrium::fam( const G4double a, const G4double z, const G4double e ) + { + // + // third set of Iljinov, Mebel et al. parameters: without collective effects + // Truran, Cameron & Hils shell corrections, without a dependence on ga + // + const G4double al = 0.072; + const G4double be = 0.257; + const G4double ga = 0.059; + // shell is an inline function defined in the header + return (al+be/pow(a,oneThird))*(1+(1-exp(-ga*e))*shell(a,z)/e); + } + + G4double G4PreEquilibrium::gameqf( const G4int j, const G4double cc, const G4double per, + const G4double am, const G4double radncl ) + { + // + // a possible bug in the original cem.f + // idel set to 0 in inpcem, and nowhere else + // idel checked in precof, bypassing setting amf + // + const G4double AMF = 0.0; + // + // n p d t He-3 He-4 + const G4int gam[6] = { 1, 1, 3, 3, 3, 2 }; // gammab/2 + + G4double result; + G4double q1, q2; + if( j == 6 ) + { + q1 = 2*sqrt( AMF * afj[6] * rj[6] ); + q2 = 33.4/(pi*radncl*radncl); + result = q2/(AMF*afj[6])*((q1-1)*exp(q1-per)+exp(-per)); + } + else + { + G4double alfa, beta, q3, q4, q5; + if( j == 0 ) + { + alfa = 0.76 + 2.2/pow(afj[0],oneThird); + beta = (2.12/pow(afj[0],twoThirds)-0.05)/alfa; + } + else + { + alfa = 1 + cc; + beta = 0.0; + } + q1 = am*afj[j]; + q2 = q1*rj[j]; + q3 = gam[j]*pow(afj[j],twoThirds)*alfa/(q1*q1); + q4 = (2*beta*q1-3)/2 + q2; + q5 = (2*beta*q1-3)*(sqrt(q2)-0.5) + 2*q2; + result = q3*(q4*exp(-per)+q5*exp(2*sqrt(q2)-per)); + } + return result; + } + + G4double G4PreEquilibrium::poten( const G4int i, const IPSTRUCT ip ) const + { + // calculation of particle potential in i'th nuclear zone + // + const G4int N = 7; + const G4double EPS = 0.007; + const G4double VPI = 0.025; + + G4double result; + if( i >= N+2 ) + result = 0.0; + else if( i == N+1 ) + result = ip.proton*af[N]; + else if( ip.ip2 != 0 ) + result = ip.proton*af[i-1]; + else if( ip.nuclearZone != 0 ) + result = ip.proton*af[i-1] + tfp[i-1]*ip.proton + (1-ip.proton)*tfn[i-1] + ip.nuclearZone*EPS; + else + result = ip.proton*af[i-1] - VPI*(ip.ip1-1); + return result; + } + + G4double G4PreEquilibrium::cinema( const G4ThreeVector pstar, const G4ThreeVector v, + G4ThreeVector &p, G4double &ct, G4double &st, + G4double &cfi, G4double &sfi, const G4double cm ) const + { + // kinematic code + // + G4double spv = pstar.dot(v); + G4double v2 = v.mag2(); + G4double temp1 = sqrt(1-v2); + G4double temp2 = spv*(1/temp1-1)/v2; + G4double pmstar = pstar.mag(); + G4double tstar = sqrt(pmstar*pmstar+cm*cm) - cm; + p.setX( pstar.x() + v.x()*(temp2 + (tstar+cm)/temp1) ); + p.setY( pstar.y() + v.y()*(temp2 + (tstar+cm)/temp1) ); + p.setZ( pstar.z() + v.z()*(temp2 + (tstar+cm)/temp1) ); + G4double pm = p.mag(); + if( p.z()*p.z() >= pm*pm ) + { + ct = 1; + st = 0; + cfi = 1; + sfi = 0; + } + else + { + ct = p.z()/pm; + st = sqrt(1-ct*ct); + cfi = p.x()/(pm*st); + sfi = p.y()/(pm*st); + } + return sqrt(pm*pm+cm*cm)-cm; + } + + G4ThreeVector G4PreEquilibrium::rotation( const G4ThreeVector a, + const G4ThreeVector b, + const G4ThreeVector ps ) const + { + G4double sp = a.dot(b); + // + G4double amod = a.mag(); + G4double alpha1 = sp/amod; + G4double alpha2 = sqrt( b.mag2() - alpha1*alpha1 ); + // + G4ThreeVector an = a.cross(b); + // + G4ThreeVector pr; + pr.setX( ps.x()*b.x()/alpha2 + (ps.z()-alpha1*ps.x()/alpha2)*a.x()/amod + (ps.y()*an.x()) ); + pr.setY( ps.x()*b.y()/alpha2 + (ps.z()-alpha1*ps.x()/alpha2)*a.y()/amod + (ps.y()*an.y()) ); + pr.setZ( ps.x()*b.z()/alpha2 + (ps.z()-alpha1*ps.x()/alpha2)*a.z()/amod + (ps.y()*an.z()) ); + pr *= 1/alpha2/amod; + return pr; + } + + G4double G4PreEquilibrium::crossSectionInterp( const G4double x, const G4int lq ) + { + const G4double sigma[28][30] = + { {17613.000, 330.000, 154.000, 96.000, 70.000, + 51.000, 38.400, 30.000, 23.600, 22.400, + 22.200, 22.600, 23.400, 24.700, 29.500, + 40.500, 48.500, 47.400, 47.000, 46.700, + 46.000, 45.000, 43.000, 41.200, 40.800, + 40.500, 39.800, 39.000, 39.000, 38.500}, + {17613.000, 330.000, 154.000, 96.000, 70.000, + 51.000, 38.400, 30.000, 23.600, 22.400, + 22.200, 22.600, 22.800, 22.900, 25.000, + 25.000, 25.000, 25.000, 25.000, 22.000, + 19.500, 17.500, 15.000, 13.700, 12.000, + 11.000, 9.800, 8.800, 8.500, 6.500}, + {20357.000, 950.000, 480.000, 300.000, 200.000, + 160.000, 108.000, 74.000, 50.000, 41.000, + 36.500, 34.000, 32.500, 32.000, 34.200, + 36.100, 37.800, 38.400, 39.000, 40.000, + 40.000, 40.500, 41.100, 42.300, 42.300, + 42.000, 41.100, 39.600, 39.500, 39.200}, + {20357.000, 950.000, 480.000, 300.000, 200.000, + 160.000, 108.000, 74.000, 50.000, 41.000, + 36.500, 34.000, 32.500, 31.200, 30.800, + 25.100, 19.100, 18.000, 16.500, 16.000, + 15.200, 14.000, 12.100, 10.800, 10.700, + 11.000, 9.600, 8.000, 7.000, 6.200}, + { 6.000, 6.000, 6.500, 7.000, 8.500, + 10.500, 16.500, 25.300, 57.500, 68.500, + 64.500, 52.000, 40.500, 25.700, 29.000, + 32.100, 45.600, 38.000, 44.300, 54.000, + 58.000, 45.700, 35.300, 35.000, 34.300, + 34.000, 32.400, 30.400, 26.500, 25.000}, + { 2.000, 2.000, 2.250, 2.300, 2.400, + 2.500, 4.500, 7.700, 20.000, 25.200, + 23.900, 21.000, 16.000, 10.500, 11.200, + 14.000, 20.300, 16.000, 19.300, 26.000, + 26.500, 18.700, 11.700, 10.500, 9.600, + 9.500, 6.800, 5.900, 5.000, 4.000}, + { 4.000, 4.000, 4.250, 4.700, 6.100, + 8.000, 12.000, 17.600, 37.500, 43.300, + 40.600, 31.000, 24.500, 13.100, 11.000, + 9.500, 8.300, 5.000, 5.500, 6.800, + 7.000, 3.500, 2.000, 1.900, 1.800, + 1.600, 0.220, 0.150, 0.048, 0.009}, + { 1.900, 2.300, 3.500, 5.500, 9.000, + 14.000, 28.000, 60.000, 163.000, 195.000, + 185.000, 145.000, 113.000, 45.000, 25.200, + 21.600, 15.600, 15.200, 19.500, 22.800, + 24.500, 27.600, 36.700, 41.000, 39.000, + 32.300, 28.900, 27.700, 24.900, 23.500}, + { 1.900, 2.300, 3.500, 5.500, 9.000, + 14.000, 28.000, 60.000, 163.000, 195.000, + 184.900, 144.800, 112.800, 44.400, 23.200, + 18.600, 10.800, 7.700, 9.000, 10.200, + 11.300, 13.500, 16.900, 19.000, 16.900, + 12.600, 5.700, 5.600, 4.900, 4.000}, + { 10.000, 12.000, 14.000, 16.000, 17.000, + 20.000, 30.000, 38.000, 42.000, 38.500, + 32.000, 24.000, 18.000, 1.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000}, + { 0.000, 0.000, 0.000, 0.050, 0.100, + 0.300, 0.600, 1.200, 2.200, 3.200, + 3.400, 3.600, 3.700, 3.800, 3.900, + 3.900, 3.900, 4.000, 4.000, 4.000, + 4.000, 4.000, 3.900, 3.800, 3.500, + 3.200, 2.900, 2.700, 2.400, 2.100}, + { 0.000, 0.000, 0.000, 0.400, 0.800, + 1.400, 2.300, 4.400, 8.000, 10.800, + 15.000, 16.100, 16.600, 17.000, 17.300, + 17.500, 17.600, 17.700, 17.800, 17.900, + 17.800, 17.500, 16.800, 16.000, 13.700, + 12.600, 11.600, 10.800, 9.200, 8.000}, + { 0.000, 0.000, 0.000, 0.300, 0.600, + 1.000, 1.600, 2.700, 5.000, 6.300, + 6.900, 7.200, 7.400, 7.500, 7.600, + 7.700, 7.800, 8.000, 8.100, 8.100, + 8.100, 8.000, 7.900, 7.700, 7.000, + 6.600, 6.200, 5.800, 4.600, 3.500}, + { 0.000, 0.000, 0.000, 0.000, 0.100, + 0.200, 0.500, 0.800, 1.800, 2.100, + 2.400, 2.600, 2.800, 3.000, 3.200, + 3.300, 3.400, 3.650, 3.800, 3.850, + 3.900, 4.000, 4.000, 3.900, 3.500, + 3.200, 2.700, 2.100, 1.000, 0.600}, + { 0.000, 0.000, 0.000, 0.000, 0.200, + 0.600, 1.200, 2.100, 3.300, 4.100, + 4.900, 6.000, 7.700, 8.900, 10.000, + 10.200, 10.100, 9.800, 9.800, 10.100, + 10.300, 8.500, 6.900, 5.500, 3.900, + 3.300, 3.000, 2.700, 2.200, 2.100}, + { 0.000, 0.000, 0.000, 0.000, 0.100, + 0.300, 0.500, 0.700, 0.900, 1.100, + 1.300, 1.500, 1.800, 2.200, 2.600, + 2.600, 2.400, 2.400, 3.000, 3.400, + 3.500, 3.100, 2.700, 2.400, 2.100, + 1.900, 1.800, 1.700, 1.500, 1.300}, + { 0.000, 0.000, 0.000, 0.200, 0.700, + 1.400, 3.000, 4.900, 5.100, 5.000, + 4.400, 3.600, 3.100, 2.700, 2.400, + 2.200, 2.000, 1.700, 1.600, 1.400, + 1.300, 1.100, 0.900, 0.800, 0.600, + 0.600, 0.600, 0.500, 0.400, 0.300}, + { 0.000, 0.000, 0.000, 0.200, 0.500, + 0.800, 1.300, 2.100, 3.400, 4.700, + 6.400, 6.800, 6.200, 5.200, 7.100, + 8.000, 8.900, 9.800, 10.300, 10.500, + 10.600, 9.900, 7.700, 5.500, 3.400, + 2.800, 2.700, 2.600, 2.200, 1.900}, + { 0.000, 0.100, 0.500, 1.200, 3.000, + 4.200, 5.000, 5.200, 6.100, 7.900, + 8.900, 9.600, 9.900, 10.000, 10.100, + 10.100, 10.000, 9.800, 9.500, 8.800, + 8.000, 6.800, 5.900, 5.200, 4.200, + 2.900, 2.700, 2.500, 2.200, 1.900}, + { 0.000, 0.011, 0.026, 0.060, 0.120, + 0.180, 0.270, 0.280, 0.240, 0.186, + 0.130, 0.076, 0.052, 0.040, 0.031, + 0.032, 0.040, 0.044, 0.039, 0.033, + 0.028, 0.025, 0.022, 0.019, 0.015, + 0.012, 0.007, 0.004, 0.002, 0.000}, + { 0.000, 0.070, 0.107, 0.143, 0.183, + 0.217, 0.240, 0.214, 0.177, 0.141, + 0.117, 0.089, 0.081, 0.080, 0.083, + 0.093, 0.103, 0.095, 0.061, 0.050, + 0.049, 0.052, 0.056, 0.050, 0.025, + 0.017, 0.008, 0.004, 0.002, 0.000}, + { 5.000, 3.000, 1.125, 0.900, 0.700, + 0.580, 0.500, 0.415, 0.350, 0.280, + 0.260, 0.270, 0.280, 0.295, 0.310, + 0.298, 0.250, 0.200, 0.145, 0.115, + 0.095, 0.065, 0.040, 0.028, 0.018, + 0.010, 0.005, 0.000, 0.000, 0.000}, + { 0.000, 0.011, 0.031, 0.055, 0.067, + 0.078, 0.084, 0.088, 0.088, 0.087, + 0.085, 0.083, 0.080, 0.078, 0.074, + 0.072, 0.069, 0.066, 0.064, 0.060, + 0.057, 0.052, 0.038, 0.031, 0.027, + 0.024, 0.023, 0.022, 0.022, 0.022}, + { 0.000, 0.002, 0.004, 0.006, 0.007, + 0.008, 0.008, 0.009, 0.011, 0.012, + 0.013, 0.014, 0.015, 0.016, 0.016, + 0.016, 0.016, 0.016, 0.016, 0.015, + 0.015, 0.014, 0.012, 0.010, 0.009, + 0.008, 0.007, 0.007, 0.007, 0.007}, + { 0.000, 0.002, 0.004, 0.006, 0.007, + 0.008, 0.008, 0.009, 0.011, 0.012, + 0.013, 0.014, 0.015, 0.016, 0.016, + 0.016, 0.016, 0.016, 0.016, 0.015, + 0.015, 0.014, 0.012, 0.010, 0.009, + 0.008, 0.007, 0.007, 0.007, 0.007}, + { 0.000, 0.010, 0.027, 0.047, 0.057, + 0.065, 0.069, 0.071, 0.069, 0.065, + 0.061, 0.057, 0.052, 0.048, 0.043, + 0.039, 0.035, 0.030, 0.027, 0.023, + 0.019, 0.015, 0.008, 0.004, 0.003, + 0.002, 0.002, 0.001, 0.001, 0.001}, + { 0.000, 0.015, 0.039, 0.067, 0.081, + 0.094, 0.100, 0.106, 0.110, 0.111, + 0.111, 0.111, 0.110, 0.110, 0.106, + 0.104, 0.101, 0.098, 0.096, 0.090, + 0.087, 0.080, 0.062, 0.051, 0.045, + 0.040, 0.037, 0.036, 0.036, 0.036}, + { 0.000, 0.081, 0.133, 0.203, 0.303, + 0.397, 0.510, 0.494, 0.417, 0.327, + 0.247, 0.180, 0.172, 0.187, 0.208, + 0.231, 0.253, 0.250, 0.211, 0.194, + 0.187, 0.187, 0.184, 0.173, 0.138, + 0.119, 0.095, 0.070, 0.049, 0.037} }; + const G4double argus[6][30] = + { {0.000, 0.010, 0.020, 0.030, 0.040, + 0.050, 0.070, 0.100, 0.150, 0.200, + 0.250, 0.300, 0.350, 0.400, 0.500, + 0.650, 0.850, 0.950, 1.100, 1.300, + 1.500, 2.000, 3.000, 4.000, 5.000, + 7.000, 10.000, 16.000, 22.000, 30.000}, + {0.000, 0.010, 0.020, 0.030, 0.040, + 0.050, 0.075, 0.100, 0.150, 0.175, + 0.200, 0.225, 0.250, 0.350, 0.450, + 0.500, 0.600, 0.700, 0.800, 0.850, + 0.900, 1.000, 1.200, 1.300, 1.400, + 1.600, 3.000, 4.000, 10.000, 20.000}, + {0.200, 0.250, 0.300, 0.350, 0.400, + 0.450, 0.500, 0.550, 0.600, 0.650, + 0.700, 0.750, 0.800, 0.850, 0.900, + 0.950, 1.000, 1.100, 1.200, 1.300, + 1.400, 1.600, 1.800, 2.000, 2.400, + 2.600, 2.800, 3.000, 3.500, 4.000}, + {0.150, 0.175, 0.200, 0.225, 0.250, + 0.275, 0.300, 0.325, 0.350, 0.375, + 0.400, 0.450, 0.500, 0.550, 0.600, + 0.650, 0.700, 0.750, 0.800, 0.850, + 0.900, 0.950, 1.000, 1.050, 1.150, + 1.250, 1.500, 2.000, 3.000, 4.000}, + {0.010, 0.020, 0.040, 0.050, 0.060, + 0.070, 0.080, 0.090, 0.100, 0.120, + 0.150, 0.170, 0.190, 0.210, 0.250, + 0.270, 0.300, 0.320, 0.350, 0.370, + 0.400, 0.440, 0.500, 0.600, 0.700, + 0.800, 0.900, 1.000, 2.000, 3.000}, + {0.400, 0.450, 0.500, 0.550, 0.575, + 0.600, 0.625, 0.650, 0.700, 0.750, + 0.800, 0.850, 0.900, 0.950, 1.000, + 1.050, 1.100, 1.150, 1.200, 1.250, + 1.300, 1.500, 2.000, 2.500, 3.000, + 3.500, 4.000, 4.500, 5.000, 5.500} }; + G4int i; + if( lq < 3 )i = 0; + else + { + if( lq < 9 )i = 1; + else + { + if( lq < 18 )i = 2; + else + { + if( lq < 20 )i = 3; + else + { + if( lq < 21 )i = 4; + else + { + if( lq < 26 )i = 5; + else i = 3; + } + } + } + } + } + G4int lpha = 0; + while( x > argus[lpha][i] )++lpha; + if( x == argus[lpha][i] )return sigma[lpha][lq]; + if( lpha == 0 )return 0.0; + G4double phi1, psi1, phi2, psi2, phi3, psi3; + if( lpha >= 28 ) + { + phi1 = sigma[27][lq]; + psi1 = argus[27][i]; + phi2 = sigma[28][lq]; + psi2 = argus[28][i]; + phi3 = sigma[29][lq]; + psi3 = argus[29][i]; + } + else + { + phi1 = sigma[lpha-1][lq]; + psi1 = argus[lpha-1][i]; + phi2 = sigma[lpha][lq]; + psi2 = argus[lpha][i]; + phi3 = sigma[lpha+1][lq]; + psi3 = argus[lpha+1][i]; + } + G4double delta = (psi2-psi3)*psi1*psi1 + (psi3-psi1)*psi2*psi2 + (psi1-psi2)*psi3*psi3; + G4double deltaa = phi1*(psi2-psi3) + phi2*(psi3-psi1) + phi3*(psi1-psi2); + G4double deltab = (phi2-phi3)*psi1*psi1 + (phi3-phi1)*psi2*psi2 + (phi1-phi2)*psi3*psi3; + G4double deltac = (psi2*phi3-psi3*phi2)*psi1*psi1 + (psi3*phi1-psi1*phi3)*psi2*psi2 + + (psi1*phi2-psi2*phi1)*psi3*psi3; + G4double a = deltaa/delta; + G4double b = deltab/delta; + G4double c = deltac/delta; + return a*x*x + b*x + c; + } + + G4double G4PreEquilibrium::sigmat( const G4int i, const G4int ms, const G4int mq, + const G4int ksi, const G4int iks, const G4double t ) + { + // choose cross section type and calculate cross section value for given energy + // + const G4int icst[28] = { + 210, 211, 220, 221, 120, 121, 122, + 110, 111, 123, 214, 215, 224, 225, + 114, 115, 126, 124, 125, 10111, 10112, + 10113, 10115, 10114, 10116, 10118, 10117, 10110 }; + const G4int nsicst[21] = { + 112, 113, 116, 117, 127, 130, 131, + 132, 133, 134, 135, 136, 137, 212, + 213, 216, 217, 222, 223, 226, 227 }; + + G4int ics = 10000*i + 1000*ms + 100*mq + 10*ksi + iks; + G4int js = 0; + do + { + if( ics == icst[js] )return crossSectionInterp( t, js ); + } while ( js++ < 28 ); + G4int nsjs = 0; + while( ics != nsicst[nsjs] )++nsjs; + G4double result = 0; + switch (nsjs) + { + case 2: + result = crossSectionInterp( t, 9 ); + break; + case 4: + result = crossSectionInterp( t, 14 ) + crossSectionInterp( t, 15 ); + break; + case 5: + result = crossSectionInterp( t, 17 ) + crossSectionInterp( t, 18 ) + + crossSectionInterp( t, 16 ); + break; + case 6: + result = (crossSectionInterp( t, 7 ) + crossSectionInterp( t, 4 ))/2; + break; + case 7: + result = (crossSectionInterp( t, 8 ) + crossSectionInterp( t, 5 ) - + crossSectionInterp( t, 6 ))/2; + break; + case 8: + result = crossSectionInterp( t, 6 ); + break; + case 9: + result = crossSectionInterp( t, 9 ); + break; + case 10: + result = (crossSectionInterp( t, 14 ) + crossSectionInterp( t, 17 ))/2; + break; + case 11: + result = (crossSectionInterp( t, 15 ) + crossSectionInterp( t, 18 ))/2; + break; + case 12: + result = crossSectionInterp( t, 16 )/2; + break; + case 13: + result = (crossSectionInterp( t, 14 ) + crossSectionInterp( t, 15 ) + + crossSectionInterp( t, 17 ) + crossSectionInterp( t, 18 ) + + crossSectionInterp( t, 16 ))/2; + break; + case 17: + result = crossSectionInterp( t, 10 ) + crossSectionInterp( t, 11 ); + break; + case 20: + result = crossSectionInterp( t, 12 ); + break; + case 21: + result = 2*crossSectionInterp( t, 12 ) + crossSectionInterp( t, 13 ); + break; + } + return result; + } + + void G4PreEquilibrium::slqek( G4int &i, G4int &ms, G4int &mq, G4int &ksi, G4int &me, + const G4int lin, const G4int msin, const G4int mqin, + const G4int mein, const G4int ln, const G4int msn, + const G4int mqn, const G4int men ) + { + // form cross-sections type + // + ms = msin + msn; + i = lin + ln; // this ln is not the data member ln + mq = mqin + mqn; + me = mein + men; + if( ms != 0 )return; // strange particle + if( i > 0 ) + ksi = 1; + else if( mq > 1 ) + me != 1 ? ksi = 1 : ksi = 2; + else if( me == 2 ) + ksi = 1; + else if( me == -1 ) + ksi = 1; + else if( me != 0 ) + mein == 1 ? ksi = 2 : ksi = 3; + else + mein == -1 ? ksi = 2 : ksi = 3; + return; + } + + G4double G4PreEquilibrium::costa( const G4int j, const G4double t ) + { + // cosinus calculation + // + const G4double ankj[29][4][4] = + { { { 2.7404, -9.6998, 10.400, 2.3882 }, + {-7.5137, 44.096, -74.379, 46.038 }, + { 7.5479, -39.274, 64.835, -41.609 }, + {-1.8369, 8.6911, -13.060, 7.1880 } }, + { {-30.853, 106.24, -129.39, 54.339 }, + { 19.465, -68.102, 96.358, -56.827 }, + {-3.4831, 12.341, -18.592, 12.024 }, + { 0.18941, -0.67880, 1.0665, -0.72910 } }, + { { 0.10258, -1.0542, 11.389, -16.638 }, + {-0.49607, 11.800, -90.857, 164.76 }, + { 1.5437, -33.769, 251.92, -450.71 }, + {-1.2021, 25.336, -186.58, 332.54 } }, + { { 0.15789, 2.9671, -5.5251, 6.8925 }, + {-7.0218, -205.34, 569.51, -898.58 }, + { 134.96, 4872.2, -14674., 23924. }, + {-821.16, -32586., 100980., -165530. } }, + { { 0.31531, -7.4981, 43.295, -76.360 }, + {-6.5373, 193.07, -1018.1, 1742.6 }, + { 46.864, -1303.0, 6729.1, -11075. }, + {-95.192, 2637.3, -12857., 20294. } }, + { {-17.953, 109.72, -239.54, 228.26 }, + { 91.968, -519.63, 1126.6, -1074.0 }, + {-132.70, 741.12, -1600.0, 1524.9 }, + { 58.598, -318.74, 677.51, -640.11 } }, + { { 0.42169, 147.05, -653.35, 915.07 }, + {-3.5198, -260.19, 1225.0, -1748.1 }, + { 3.6373, 155.92, -752.01, 1079.6 }, + {-0.78041, -30.563, 147.95, -212.50 } }, + { {-0.38288, 3.7587, -6.5144, 6.7740 }, + { 103.81, -272.82, 477.59, -512.22 }, + {-1788.2, 4305.2, -7931.4, 9347.1 }, + { 7147.5, -3339.5, -4139.2, -4436.4 } }, + { { 0.24991, 32.028, -118.82, 150.99 }, + {-2.6994, -460.45, 1895.9, -2519.0 }, + { 16.268, 2138.4, -9126.2, 12431. }, + {-29.654, -3182.3, 13944., -19342. } }, + { { 3.9025, -91.126, 323.73, -400.48 }, + {-20.619, 491.70, -1715.5, 2114.3 }, + { 33.004, -766.84, 2700.3, -3352.5 }, + {-16.367, 373.94, -1320.2, 1642.3 } }, + { { 19.402, -224.46, 747.33, -935.70 }, + {-44.180, 471.94, -1485.6, 1805.5 }, + { 31.567, -301.76, 907.63, -1077.3 }, + {-6.8648, 60.476, -175.20, 203.81 } }, + { { 0.40693, -4.1404, 14.044, -17.265 }, + {-3.6799, 59.610, -162.69, 188.73 }, + { 14.556, -175.50, 458.39, -533.90 }, + {-12.621, 149.64, -381.18, 451.41 } }, + { {-0.47554, 2.2641, -12.528, 24.647 }, + { 5.1620, -9.9236, 55.623, -104.62 }, + {-8.1117, 19.315, -84.255, 139.08 }, + { 3.5187, -9.1783, 34.950, -51.243 } }, + { { 0.48173, 5.7726, -13.745, 27.125 }, + {-4.4804, -38.582, 111.59, -243.05 }, + { 16.306, 110.46, -330.45, 722.70 }, + {-15.968, -80.140, 246.16, -607.53 } }, + { {-5.1646, -6.0776, 78.989, -107.05 }, + { 21.871, 56.915, -401.59, 512.15 }, + {-27.993, -94.670, 569.28, -696.21 }, + { 11.587, 45.998, -245.6, 284.52 } }, + { {-53.067, 576.12, -1543.8, 164550. }, + { 147.50, -1638., 4592.3, -4994.9 }, + {-134.36, 1578.0, -4446.3, 4902.2 }, + { 40.253, -488.60, 1400.1, -1560.6 } }, + { { 0.14988, 2.8753, -5.3078, 6.2233 }, + {-5.9558, -162.03, 430.79, -625.48 }, + { 128.75, 3140.2, -7918.9, 10983. }, + {-851.61, -18780., 44607., -58790. } }, + { { 0.53689, -13.216, 81.011, -142.85 }, + {-10.550, 296.29, -1695.7, 2893.5 }, + { 69.621, -1924.5, 10620., -17468. }, + {-138.65, 3928.1, -20293., 32058. } }, + { { 0.65288, 0.38977, 0.84078, 0.18893 }, + {-4.3964, 34.309, -73.692, 84.308 }, + { 14.889, -143.80, 312.27, -350.14 }, + {-15.658, 171.60, -372.12, 412.99 } }, + { { 0.085591, 5.0390, -13.782, 14.661 }, + { 0.054284, -9.2324, 36.397, -42.962 }, + {-0.051111, 4.6003, -20.534, 27.731 }, + { 0.0074514, -0.62529, 2.9159, -4.1101 } }, + { { 0.071622, 3.0960, -11.125, 18.130 }, + { 0.092581, -3.2186, 20.273, -33.245 }, + {-0.051531, 0.89886, -7.5084, 13.188 }, + { 0.0058258, -0.0017288, 0.70224, -1.4854 } }, + { { 0.082300, 0.15854, 3.7716, -4.0562 }, + { 0.010802, -0.33688, 1.1727, -0.67476 }, + {-0.0021798, 0.052166, -0.25816, 0.32048 }, + { 0.000065764, -0.0014711, 0.0078209, -0.010580 } }, + { { 0.11138, 0.60396, 3.0174, -4.4190 }, + {-0.017709, 0.23015, -1.8187, 3.4518 }, + { 0.0020977, -0.025458, 0.21626, -0.40692 }, + {-0.000054799, 0.00059111, -0.0055552, 0.010647 } }, + { { 0.17288, 7.1080, -17.961, 16.403 }, + {-0.14504, -13.032, 41.781, -40.799 }, + { 0.045390, 8.3515, -30.260, 32.882 }, + {-0.0047961, -1.4095, 5.3505, -6.0946 } }, + { { 0.037596, 1.4331, -3.1350, 6.4864 }, + { 0.23827, 1.8253, 1.7648, -16.735 }, + {-0.15410, -1.5201, -1.5692, 17.185 }, + { 0.025037, 0.30588, 0.32520, -3.5277 } }, + { { 0.12489, 1.3573, 0.82338, -1.4595 }, + {-0.051577, -0.35778, -1.1690, 1.8078 }, + { 0.0074864, 0.032888, 0.23744, -0.39802 }, + {-0.00029880, -0.00075117, -0.011402, 0.019505 } }, + { { 0.18470, 1.9269, -3.2979, 3.6843 }, + {-0.073932, 0.27213, 1.0600, -2.3354 }, + { 0.018907, -0.056473, -0.16487, 0.38426 }, + {-0.00092984, 0.0025506, 0.0073052, -0.017220 } }, + { {-1.0306, 32.849, -75.052, 60.255 }, + { 7.9586, -125.72, 256.04, -165.47 }, + {-14.797, 165.90, -279.91, 113.33 }, + { 8.2309, -67.871, 85.762, 5.9727 } }, + { {-237.22, 968.90, -1621.9, 1363.7 }, + { 658.00, -2694.1, 4548.0, -3846.0 }, + {-606.53, 2498.3, -4249.8, 3613.6 }, + { 186.04, -769.33, 1316.6, -1124.2 } } }; + G4double ank[4][4]; + for( G4int k = 0; k < 4; ++k ) + { + for( G4int n = 0; n < 4; ++n )ank[n][k] = ankj[n][k][j]; + } + G4double s1 = 0; + G4double s2 = 0; + G4double r = G4UniformRand(); + for( G4int n = 0; n < 4; ++n ) + { + for( G4int k = 0; k < 4; ++k ) + { + s1 += ank[n][k]*pow(t,k)*pow(r,n); + s2 += ank[n][k]*pow(t,k); + } + } + G4double cta = 2*sqrt(r)*(s1+(1-s2)*pow(r,4)) - 1; + if( cta < -1 )cta = -1; + else if( cta > 1 )cta = 1; + return cta; + } + + G4double G4PreEquilibrium::cosex( const G4int i, const G4double t, const G4double cm ) + { + // cosinus calculation for charge exchange scattering + // + G4double result; + if( i != 0 ) + { + if( t <= 0.51 )result = costa( 13, t ); + else + t <= 1 ? result = costa( 14, t ) : result = costa( 15, t ); + } + else + { + if( t <= 0.08 )result = costa( 16, t ); + else + { + if( t <= 0.3 )result = costa( 17, t ); + else + { + if( t <= 1 )result = costa( 9, t ); + else + { + if( t <= 2.4 )result = costa( 10, t ); + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); + } + } + } + } + } + return result; + } + + G4double G4PreEquilibrium::cosel( const G4int i, const G4int mq, const G4int ksi, + const G4double t, const G4double cm ) + { + // cosinus calculation for elastic scattering + // + G4double result; + if( i != 0 ) + { + t <= 0.45 ? result = costa( 11, t ) : result = costa( 12, t ); + } + else + { + if( mq >= 2 ) + { + if( ksi >= 2 ) + { + if( t <= 0.97 )result = costa( 2, t ); + else + { + if( t <= 2.8 )result = (1+costa( 0, t ))/2; + else + { + if( t <= 10 )result = (3-costa( 1, t ))/4; + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-8.7*tmax)-1)))/(8.7*tmax); + } + } + } + } + else + { + if( t <= 0.46 )result = 1-2*G4UniformRand(); + else + { + if( t <= 2.8 )result = (1+costa( 0, t ))/2; + else + { + if( t <= 10 )result = (3-costa( 1, t ))/4; + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-8.7*tmax)-1)))/(8.7*tmax); + } + } + } + } + } + else + { + if( ksi < 2 ) + { + if( t <= 0.08 )result = costa( 3, t ); + else + { + if( t <= 0.3 )result = costa( 4, t ); + else + { + if( t <= 1 )result = costa( 5, t ); + else + { + if( t <= 2.4 )result = costa( 6, t ); + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); + } + } + } + } + } + else if( ksi == 2 ) + { + if( t <= 0.08 )result = costa( 7, t ); + else + { + if( t <= 0.3 )result = costa( 8, t ); + else + { + if( t <= 1 )result = costa( 9, t ); + else + { + if( t <= 2.4 )result = costa( 10, t ); + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); + } + } + } + } + } + else if( ksi > 2 ) + { + if( G4UniformRand() <= 0.5 ) + { + if( t <= 0.08 )result = costa( 3, t ); + else + { + if( t <= 0.3 )result = costa( 4, t ); + else + { + if( t <= 1 )result = costa( 5, t ); + else + { + if( t <= 2.4 )result = costa( 6, t ); + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); + } + } + } + } + } + else + { + if( t <= 0.08 )result = costa( 7, t ); + else + { + if( t <= 0.3 )result = costa( 8, t ); + else + { + if( t <= 1 )result = costa( 9, t ); + else + { + if( t <= 2.4 )result = costa( 10, t ); + else + { + G4double tmax = sqrt(t*(t+2*cm)); + result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); + } + } + } + } + } + } + } + } + return result; + } + + // end of file diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh index c399a2f1b4..78c9323116 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Chips.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Chips.hh,v 1.11 2002/12/12 19:14:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4Chips ---------------- // by Mikhail Kossov, September 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh index 0fc6aaaa33..e3d55234c0 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QCHIPSWorld.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QCHIPSWorld.hh,v 1.11 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh index c771b2c651..d0266233fe 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QCandidate.hh,v 1.13 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QCandidate.hh,v 1.15 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidate ---------------- // by Mikhail Kossov, Sept 1999. @@ -118,8 +118,7 @@ inline void G4QCandidate::ClearParClustVector() inline void G4QCandidate::FillPClustVec(G4QParentCluster* pCl) { - G4QParentCluster* npCl = new G4QParentCluster(pCl); - thePClusters.push_back(npCl); // Fill new instance of PCl + thePClusters.push_back(pCl); // Fill new instance of PCl } inline void G4QCandidate::SetPossibility(G4bool choice) {possible=choice;} inline void G4QCandidate::SetParPossibility(G4bool choice) {parPossible=choice;} diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh index df5eaf82b6..099e945b3f 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QCandidateVector.hh,v 1.11 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QCandidateVector.hh,v 1.12 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh index 43f1303193..fd99502cc1 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QChipolino.hh,v 1.9 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QChipolino.hh,v 1.10 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QChipolino ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh index 027c27e8b4..84837b6380 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QContent.hh,v 1.14 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QContent.hh,v 1.15 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QContent ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh index b5db62e143..93961f5b45 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QDecayChan.hh,v 1.9 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QDecayChan.hh,v 1.10 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QDecayChan ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh index 36a6dbf51b..b8cb925aa9 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QDecayChanVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QDecayChanVector.hh,v 1.9 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh index 0d99cd920e..6b4c91464a 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QEnvironment.hh,v 1.9 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QEnvironment.hh,v 1.10 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QEnvironment ---------------- // by Mikhail Kossov, August 2000. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh index c35f49dce6..7954feac9f 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QHadron.hh,v 1.15 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QHadron.hh,v 1.17 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. @@ -54,7 +54,7 @@ public: G4QHadron(G4QParticle* pPart, G4double maxM); // Constructor for a resonance with RANDOM m G4QHadron(const G4QHadron& right); // Copy constructor by object G4QHadron(G4QHadron* right); // Copy constructor by pointer - ~G4QHadron(); // Destructor + virtual ~G4QHadron(); // Destructor // Operators const G4QHadron& operator=(const G4QHadron& right); G4int operator==(const G4QHadron& right) const; diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh index ab6b8a2128..2fe71c5467 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QHadronVector.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QHadronVector.hh,v 1.11 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh index 5135b4d0cb..7c770f6939 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QNucleus.hh,v 1.12 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QNucleus.hh,v 1.13 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QNucleus ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh index ecdc79f076..5164afcb92 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QPDGCode.hh,v 1.11 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QPDGCode.hh,v 1.12 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QPDGCode ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh index 6fe912d800..cb098159c8 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QPDGCodeVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QPDGCodeVector.hh,v 1.9 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh index ab0ae56394..087e24283a 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QParentCluster.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QParentCluster.hh,v 1.11 2002/12/12 19:14:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QParentCluster ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh index 4f30a3792d..f417833c8d 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QParentClusterVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QParentClusterVector.hh,v 1.9 2002/12/12 19:14:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh index 302d9686f0..8bb10c10ac 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QParticle.hh,v 1.10 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QParticle.hh,v 1.11 2002/12/12 19:14:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QParticle ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh index 91afea5a25..a588f149f9 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QParticleVector.hh,v 1.8 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QParticleVector.hh,v 1.9 2002/12/12 19:14:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSelector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSelector.hh index 4e0e39f287..57ac0735c0 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSelector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSelector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QSelector.hh,v 1.7 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QSelector.hh,v 1.8 2002/12/12 19:14:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QSelector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh index 9c2b7bbe87..6023abae14 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Quasmon.hh,v 1.19 2001/11/26 14:11:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Quasmon.hh,v 1.19.10.1 2002/12/12 19:14:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4Quasmon ---------------- // by Mikhail Kossov, July 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh index 5ef5d77d79..33b6403259 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QuasmonVector.hh,v 1.9 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QuasmonVector.hh,v 1.10 2002/12/12 19:14:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QuasmonVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc index b35e1be048..515fb9853c 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QCHIPSWorld.cc,v 1.17 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QCHIPSWorld.cc,v 1.19 2002/12/12 19:14:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. @@ -73,7 +73,7 @@ G4QParticleVector* G4QCHIPSWorld::InitCHIPSWorld(G4int nOfParts) { static G4int mnofParts = 486; // max number of particles (up to A=80) static G4QParticleVector theWorld; // *** A body of the CHIPS World *** - static int init = 0; // Initialization counter (private) + static G4int init = 0; // Initialization counter (private) #ifdef debug G4cout<<"G4QCHIPSWorld::InitCHIPSWorld: n="<"<InitQParticle(i); // || - theWorld.push_back(curPart); // Filled (forever but once) + theWorld.push_back(curPart); // Filled (forever but only once) #ifdef debug G4cout<<"G4QCHIPSWorld::InitCHIPSWorld: Particle#"< "Unique hadron" case { - // the nuclear environment is already initialized as vacuum + get the first hadron - G4QHadron* curHadr=projHadrons[0]; // Pointer to the first projectile Hadron (checked) - G4int hPDG = curHadr->GetPDGCode(); // A PDG Code of the projQHadron - if(!hPDG||hPDG==10) // Check for the validity of the QHadron + // the nuclear environ. is already init. as vacuum + get the first hadron only for interaction + G4QHadron* curHadr=projHadrons[0]; // Pointer to the first projectile Hadron (checked) + G4int hPDG = curHadr->GetPDGCode(); // A PDG Code of the projQHadron + if(!hPDG||hPDG==10) // Check for the validity of the QHadron { G4cerr<<"***G4QEnvironment::Constructor:Vacuum, 1st Hadron wrong PDG="<Get4Momentum(); G4QContent hQC = curHadr->GetQC(); @@ -181,7 +180,7 @@ G4QEnvironment::G4QEnvironment(const G4QHadronVector& projHadrons, const G4int t G4cerr<<"***G4QEnvironment::Constructor:Target Q<0 or Chipolino, PDG="<80000000&&targPDG!=90000000) // Interaction with a nuclear target + G4double projM2=proj4M.m2(); // squared mass of the projectile (print & v.gamma) + G4int targPDG=theEnvironment.GetPDG();// PDG Code of the target nucleus + if(targPDG>80000000&&targPDG!=90000000) // Interaction with a nuclear target { - G4double tgMass=theEnvironment.GetMass(); // mass of the target (QEnvironment) nucleus + G4double tgMass=theEnvironment.GetMass();// mass of the target (QEnvironment) nucleus #ifdef pdebug G4cout<<"G4QEnvironment::CreateQ:Interact "<begin(), output->end(), DeleteQHadron()); // DESTROING output >------^ + output->clear(); // ^ ^ delete output; // =============================================^ if(!efFlag) // => Not Energy Flux case: MultyQuasmon case ^ { - if(!(input.size())) return; // *** RETURN *** Without Quasmon creation-------^ + if(!(input.size())) return; // *** RETURN *** Without Quasmon creation----^ #ifdef pdebug G4cout<<"G4QEnvironment::CreateQ: Creation of a fake Quasmon to restore parameters"<--------^-----^ - input.clear(); - theEnvironment =muq->GetEnvironment(); // Get residual Environment after interaction + G4std::for_each(input.begin(), input.end(), DeleteQHadron());//DESTROING input >---^-----^ + input.clear(); // ^ + theEnvironment = muq->GetEnvironment(); // Get residual Environment after interaction G4QuasmonVector* outQ = muq->GetQuasmons();// Copy of quasmons **!!DESTROY!!** <---^-----+ G4QHadronVector* outH = muq->GetQHadrons();// Copy of hadrons **!!DESTROY!!** <----^--+ ^ - G4int noh = outH->size(); // a#oh hadrons in TmpEnviron UpToNow ^ ^ ^ + G4int noh = outH->size(); // a#oh hadrons in TmpEnviron UpToNow ^ ^ ^ if(noh) for(G4int kh=0; khoperator[](kh)); // Make a copy to destroy tmp ^ ^ ^ - theQHadrons.push_back(curH); // Fill new Hadrons in theQHadrons ^ ^ ^ + G4QHadron* curH = new G4QHadron(outH->operator[](kh)); // Copy to destroy tmp ^ ^ ^ + theQHadrons.push_back(curH); // Fill new Hadrons in theQHadrons ^ ^ ^ } - G4std::for_each(outH->begin(), outH->end(), DeleteQHadron());// >------------------------------------^==^ ^ + G4std::for_each(outH->begin(), outH->end(), DeleteQHadron());// >------------------^==^ ^ + outH->clear(); // ^ ^ ^ delete outH; // >====================================^==^ ^ #ifdef pdebug G4cout<<"G4QEnvironment::CreateQ: before delete muq"<size(); // A#of Quasmons in MultyQuasmon output ^ + G4int nMQ = outQ->size(); // A#of Quasmons in MultyQuasmon output ^ #ifdef pdebug G4cout<<"G4QEnvironment::CreateQ: after GetQuasmon nMQ="<operator[](mh)); // Make a copy to destroy temporary (?) ^ - theQuasmons.push_back(curQ); // Fill new Quasmon-copies in theQuasmons ^ - } - G4std::for_each(outQ->begin(), outQ->end(), DeleteQuasmon()); // >------------------------------------------^ + G4Quasmon* curQ = new G4Quasmon(outQ->operator[](mh)); // Copy to destroy temporary (?)^ + theQuasmons.push_back(curQ); // Fill new Quasmon-copies in theQuasmons ^ + } + G4std::for_each(outQ->begin(), outQ->end(), DeleteQuasmon()); // >-----------------------^ + outQ->clear(); // ^ delete outQ; // >==========================================^ #ifdef pdebug G4cout<<"G4QEnvironment::CreateQ: befor return"<3) //@@ ***TMP*** PhotonAbsorbtion by q is closed + //if(2>3) //@@ ***TMP*** PhotonAbsorbtion by q is closed { q4Mom=G4LorentzVector(0.,0.,0.,tgMass-envMass);// Photon interacts with BoundedCluster valQ=curQC; @@ -626,10 +627,10 @@ void G4QEnvironment::CreateQuasmon(const G4QContent& projQC, const G4LorentzVect G4cout<<"G4QEnv::CreateQ:Q="<GetPreProbability(); // A number of clusters of the type + G4int ac = cN.GetA(); // "A" of the cluster + G4double nOfCl=curCand->GetPreProbability(); // A number of clusters of the type G4double dOfCl=curCand->GetDenseProbability();// A number of clusters in dense region if(cPDG==91000000||cPDG==90001000||cPDG==90000001) { allB+=nOfCl; denseB+=dOfCl; } - G4QContent pQC=curCand->GetQC(); // Quark Content of the candidate - ////////////G4int pC = projQC.GetCharge(); // Charge of the projectile - G4QContent qQC=pQC+projQC; // Total Quark content of the Compound + G4QContent pQC=curCand->GetQC(); // Quark Content of the candidate + ////////////G4int pC = projQC.GetCharge(); // Charge of the projectile + G4QContent qQC=pQC+projQC; // Total Quark content of the Compound G4QPDGCode qQPDG(qQC); G4int qC = qQPDG.GetQCode(); G4double d = abs(zc-nc); @@ -703,7 +704,7 @@ void G4QEnvironment::PrepareInteractionProbabilities(const G4QContent& projQC, G //if(ac>1) probab=0.; // Suppress clusters //if(ac>2) probab=0.; // Suppress heavy clusters #ifdef sdebug - G4int pPDG = projQC.GetSPDGCode(); // PDG code of the projectile particle + G4int pPDG = projQC.GetSPDGCode(); // PDG code of the projectile particle G4int rPDG = qQC.GetSPDGCode(); G4double baryn = qQC.GetBaryonNumber(); G4double charge= qQC.GetCharge(); @@ -729,7 +730,6 @@ void G4QEnvironment::InitClustersVector(G4int maxClust, G4int maxA) #endif if(maxClust>=0) for (G4int i=0; i HADRONIZE Q-ENVIRONMENT="< Fill QEnviron + if(nQuasmons<1) // "No Quasmons" case -> Fill QEnviron { - G4int nPDG = theEnvironment.GetPDG(); // PDG code of the residual Nucl.Environ. + G4int nPDG = theEnvironment.GetPDG(); // PDG code of the residual Nucl.Environ. #ifdef pdebug G4cout<<"G4QEnv::HadrQE: ***NO QUASMONS*** Env="<80000000) { G4QHadron* rNucleus = new G4QHadron(theEnvironment); // Create a Hadron for the Environment - theQHadrons.push_back(rNucleus); // Fill GS - no further decay (delete equivalent) + theQHadrons.push_back(rNucleus); // Fill GS - no further decay (delete equivalent) #ifdef pdebug G4cout<<"G4QEnv::HadrQE: >>>> Fill Environment"< "Environment is Vacuum" case + if(theEnvironment.GetPDG()==NUCPDG) // ==> "Environment is Vacuum" case { #ifdef pdebug G4cout<<"G4QEnv::HadrQE: ***Vacuum*** #ofQ="<GetStatus())nlq++; if(nQuasmons) for(G4int iq=0; iqGetStatus(); // Status of the Quasmon before fragmentation + G4int ist=theQuasmons[iq]->GetStatus(); // Status of the Quasmon before fragmentation if(ist) { G4QHadronVector* output=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <----------------+ G4int ast=theQuasmons[iq]->GetStatus(); // Status of the Quasmon after fragmentation ^ if(!ast) nlq--; // Reduce nlq is Quasmon decayed ^ - G4int nHadrons = output->size(); // A#of output Hadrons in the Quasmon ^ + G4int nHadrons = output->size(); // A#of output Hadrons in the Quasmon ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQE: ***Vacuum*** Q#"<GetQPDG().GetPDGCode()==90001001)G4cout<<"G4QE::HQE: Get Deute"<0&&totQM>gsM) // => "Try Quasmon evaporation" case ^ { - G4QHadron* nuclQ = new G4QHadron(totQC,tot4M); + G4QHadron* nuclQ = new G4QHadron(totQC,tot4M); // ^ EvaporateResidual(nuclQ); // Try to evaporate Quasmon (delete equivalent) ^ theQuasmons[iq]->KillQuasmon(); // Kill evaporated Quasmon ^ nlq--; @@ -868,91 +868,93 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4cout<Get4Momentum(); // all ^ + G4QContent lastQC = theLast->GetQC(); // content ^ + G4int lastS = lastQC.GetStrangeness(); // of // Only ^ + G4int totS = totQC.GetStrangeness(); // the // for ^ + G4int nFr = theLast->GetNFragments(); // Last // if() ^ + G4int gam = theLast->GetPDGCode(); // // ^ + if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1) // => Skip K-mes, gam & decayed ^ { - G4QHadron* thePrev = theQHadrons[nOfOUT-2]; // Come back to the previous ^ - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT ^ - theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT ^ - theQHadrons.push_back(theLast); // the Last becomes the previouse ^ - G4QHadron* destrP=theLast; // destruction Pointer for the QHadron ^ - delete destrP; // the Last QHadron is destructed ^ - theLast = thePrev; // Update parameters (Prev becomes the Last) ^ - last4M = theLast->Get4Momentum(); // 4Mom of the previouse Quasmon ^ - lastQC = theLast->GetQC(); // Quark Content of the previouse Quasmon ^ + G4QHadron* thePrev = theQHadrons[nOfOUT-2];// Kill Prev and make Last to be Prev ^ + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT ^ + theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT ^ + theQHadrons.push_back(thePrev); // thePrev becomes theLast as an object ^ + delete theLast; // the Last QHadron is destructed ^ + theLast = thePrev; // Update parameters (thePrev* becomes theLast*)^ + last4M = theLast->Get4Momentum();// 4Mom of the previouse Quasmon ^ + lastQC = theLast->GetQC(); // Quark Content of the previouse Quasmon ^ } - else // Just Clear and destroy the Last ^ + else // Just Clear and destroy theLast ^ { - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT ^ - delete theLast; // the last QHadron is deleated as instance ^ + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT ^ + delete theLast; // the last QHadron is deleated as instance ^ } - totQC+=lastQC; // Update (increase) the total QC ^ - tot4M+=last4M; // Update (increase) the total 4-momentum ^ - totQM=tot4M.m(); // Calculate new real total mass ^ - G4QNucleus nN(totQC); // Define the Quasmon as a nucleus ^ - gsM=nN.GetMZNS(); // Calculate the new GS Mass ^ - dM = totQM-gsM; // Escitation energy for the Quasmon ^ - if(dM>0) // "Mass of Q is big enough" case ^ + totQC+=lastQC; // Update (increase) the total QC ^ + tot4M+=last4M; // Update (increase) the total 4-momentum ^ + totQM=tot4M.m(); // Calculate new real total mass ^ + G4QNucleus nN(totQC); // Define the Quasmon as a nucleus ^ + gsM=nN.GetMZNS(); // Calculate the new GS Mass ^ + dM = totQM-gsM; // Escitation energy for the Quasmon ^ + if(dM>0) // "Mass of Q is big enough" case ^ { theQuasmons[iq]->InitQuasmon(totQC,tot4M);// Update the week Quasmon ^ G4QHadronVector* curout=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <----+ ^ G4int ast=theQuasmons[iq]->GetStatus(); // Status of the Quasmon ^ ^ - if(!ast) nlq--; // Reduce nlq is Quasmon decayed ^ ^ - G4int nHadrons=curout->size(); // A#of output Hadrons in the week Quasmon ^ ^ + if(!ast) nlq--; // Reduce nlq is Quasmon decayed ^ ^ + G4int nHadrons=curout->size(); // A#of output Hadrons in the week Quasmon ^ ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQEnv:VacuumRecoverQ#"<0) // => "QHadrons from Quasmon to Output" ^ ^ { for (G4int ih=0; ihoperator[](ih)); // ^ ^ + G4QHadron* curH = new G4QHadron(curout->operator[](ih)); // ^ ^ #ifdef pdebug G4cout<<"G4QEnv::HadrQE:Recovered, H#"< "Suck the Hadron in Quasm or Env" case ^ { - if(status) // => "Suck in the existing Quasmon" case ^ + if(status) // => "Suck in the existing Quasmon" case ^ { G4QContent tQC=inpH->GetQC()+pQ->GetQC(); // ^ G4LorentzVector tLV=hLV+pQ->Get4Momentum();// ^ - pQ->InitQuasmon(tQC,tLV); // Reinitialize the current Quasmon ^ + pQ->InitQuasmon(tQC,tLV); // Reinitialize the current Quasmon ^ #ifdef pdebug G4cout<<"G4QEnv::HadrQE:Medium, H#"< "Suck in the existing Quasmon" case ^ + else // => "Suck in the existing Quasmon" case ^ { G4QContent tQC=inpH->GetQC()+theEnvironment.GetQCZNS();// ^ G4LorentzVector tLV=hLV+theEnvironment.Get4Momentum(); // ^ @@ -1135,7 +1138,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4cout<<"G4QEnv::HadrQE:Medium, H#"<KillQuasmon(); // Make done the current Quasmon ^ } else if(qMbegin(), output->end(), DeleteQHadron()); // >--------------------------------------------^ + G4std::for_each(output->begin(), output->end(), DeleteQHadron()); // >---------------^ + output->clear(); // ^ delete output; // >============================================^ } } // End of fragmentation LOOP over Quasmons (jq) @@ -1294,11 +1298,11 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() } else { - G4QHadron* delta = new G4QHadron(totPDG,tot4M); + //G4QHadron* delta = new G4QHadron(totPDG,tot4M); //delta->SetNFragments(2); // Put a#of Fragments=2 - //theQHadrons.push_back(delta); // Fill the residual DELTA (delete equivalent) + //theQHadrons.push_back(delta); // Fill the residual DELTA (delete equivalent) // Instead - delete delta; + //delete delta; // G4LorentzVector b4Mom(0.,0.,0.,mBar); G4LorentzVector m4Mom(0.,0.,0.,mMes); @@ -1313,9 +1317,9 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() < h="< "Meson/Baryon+pi" case { G4int piPDG=111; G4double mpi=mPi0; @@ -1406,9 +1410,9 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() #endif G4QHadron* curH = new G4QHadron(mbPDG,h4Mom); if(totPDG==92000000||totPDG==90002000||totPDG==90000002) DecayDibaryon(curH);// (DelEqu) - else theQHadrons.push_back(curH); // Fill the baryon (delete equivalent) + else theQHadrons.push_back(curH); // Fill the baryon (delete equivalent) G4QHadron* curG = new G4QHadron(piPDG,g4Mom); - theQHadrons.push_back(curG); // Fill the pi0 (delete equivalent) + theQHadrons.push_back(curG); // Fill the pi0 (delete equivalent) return theQHadrons; } else // ==> "|B|<2 new Quasmon" case @@ -1417,17 +1421,17 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4QNucleus vacuum(90000000); // ^ G4QHadronVector* curout=resid->Fragment(vacuum,1);//**!!DESTROY!!** <-+ ^ delete resid; //_______________________________^_____^ - G4int nHadrons = curout->size(); // a#of Hadrons in the outHV ^ + G4int nHadrons = curout->size(); // a#of Hadrons in the outHV ^ if(nHadrons>0) // Transfer QHadrons to Output ^ { for (G4int ih=0; ihoperator[](ih)); // ^ + G4QHadron* curH = new G4QHadron(curout->operator[](ih)); // ^ #ifdef pdebug G4cout<<"G4QEnv::HadrQE:NewB<2, H#"<begin(), curout->end(), DeleteQHadron()); // >-----------------------------^ + G4std::for_each(curout->begin(), curout->end(), DeleteQHadron());// >-^ + curout->clear(); // ^ delete curout; // >=============================^ return theQHadrons; } } else { - G4QContent tQC =totQC; // Not subtracted copy for error prints - G4int NaK =0; // a#of additional Kaons/anti-Kaons - G4int aKPDG =0; // PDG of additional Kaons/anti-Kaons - G4double MaK =0.; // Total Mass of additional Kaons/anti-Kaons - G4int NPi =0; // a#of additional pions - G4int PiPDG =0; // PDG of additional pions - G4double MPi =0.; // Total Mass of additional pions + G4QContent tQC =totQC; // Not subtracted copy for error prints + G4int NaK =0; // a#of additional Kaons/anti-Kaons + G4int aKPDG =0; // PDG of additional Kaons/anti-Kaons + G4double MaK =0.; // Total Mass of additional Kaons/anti-Kaons + G4int NPi =0; // a#of additional pions + G4int PiPDG =0; // PDG of additional pions + G4double MPi =0.; // Total Mass of additional pions if (totBN>0&&totS<0&&totChg+totChg>=totBN)// => "additional K+" case { aKPDG=321; NaK=-totS; MaK=mK*NaK; totQC+=totS*KpQC; - totChg+=totS; // Charge reduction (totS<0!) - totS=0; // Anti-strangness goes to anti-Kaons + totChg+=totS; // Charge reduction (totS<0!) + totS=0; // Anti-strangness goes to anti-Kaons } - else if (totBN>0&&totS<0) // => "additional aK0" case + else if (totBN>0&&totS<0) // => "additional aK0" case { aKPDG=311; NaK=-totS; MaK=mK0*NaK; totQC+=totS*K0QC; - totS=0; // Anti-strangness goes to anti-Kaons + totS=0; // Anti-strangness goes to anti-Kaons } else if (totBN>0&&totS>totBN&&totBN "additional K0" case {// @@ Here Ksi0 check should be added totS=2>totBN=1&&totBN=10&&totS>totBN&&totChg<0) // => "additional K-" case + else if (totBN>0&&totS>totBN&&totChg<0)// => "additional K-" case {// @@ Here Ksi- check should be added totS=2>totBN=1&&totChg=-1<0 aKPDG=-321; NaK=totS-totBN; MaK=mK0*NaK; totQC+=NaK*KpQC; - totChg+=NaK; // Increase residual charge - totS-=NaK; // Reduce residual strangeness + totChg+=NaK; // Increase residual charge + totS-=NaK; // Reduce residual strangeness } // === Now residual DELTAS should be subtracted === - if (totBN>0&&totChg>totBN-totS) // => "additional PI+" case + if (totBN>0&&totChg>totBN-totS) // => "additional PI+" case {// @@ Here Sigma+ check should be added totChg=1>totBn=1-totS=1 PiPDG=211; NPi=totChg-totBN+totS; @@ -1492,15 +1497,15 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() totQC-=NPi*PiQC; totChg-=NPi; } - else if (totBN>0&&totChg<0) // => "additional PI-" case + else if (totBN>0&&totChg<0) // => "additional PI-" case {// @@ Here Sigma- check should be added totChg<0 PiPDG=-211; NPi=-totChg; MPi=mPi*NPi; - totQC+=NPi*PiQC; // Now anti-Pions must be subtracted + totQC+=NPi*PiQC; // Now anti-Pions must be subtracted totChg+=NPi; } - else if (!totBN&&totChg>1-totS) // => "additional PI+" case + else if (!totBN&&totChg>1-totS) // => "additional PI+" case {// @@ Here Sigma+ check should be added totChg=1>totBn=1-totS=1 PiPDG=211; NPi=totChg+totS-1; @@ -1508,30 +1513,30 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() totQC-=NPi*PiQC; totChg-=NPi; } - else if (!totBN&&totChg<-1-totS) // => "additional PI-" case + else if (!totBN&&totChg<-1-totS) // => "additional PI-" case {// @@ Here Sigma- check should be added totChg<0 PiPDG=-211; NPi-=totChg+totS+1; MPi=mPi*NPi; - totQC+=NPi*PiQC; // Now anti-Pions must be subtracted + totQC+=NPi*PiQC; // Now anti-Pions must be subtracted totChg+=NPi; } - G4double totRM=0.; // min (GroundSt) Mass of the Residual System + G4double totRM=0.; // min (GroundSt) Mass of the Residual System if(totBN<2) { - totPDG=totQC.GetSPDGCode(); // Minimal PDG Code for the Residual compound + totPDG=totQC.GetSPDGCode(); // Minimal PDG Code for the Residual compound if(totPDG) totRM=G4QPDGCode(totPDG).GetMass(); // min Mass of the Residual System else G4Exception("G4QEnv::HadrQEnv: Impossible PDG for B=1"); } else { - G4QNucleus totN(totQC,tot4M); // Excited nucleus for the Residual System - totRM=totN.GetMZNS(); // min (GroundSt) Mass of the Residual System - totPDG=totN.GetPDG(); // Total PDG Code for the Current compound + G4QNucleus totN(totQC,tot4M); // Excited nucleus for the Residual System + totRM=totN.GetMZNS(); // min (GroundSt) Mass of the Residual System + totPDG=totN.GetPDG(); // Total PDG Code for the Current compound } - if(NaK) // ==> "Decay in K0 or K+ + NPi" case + if(NaK) // ==> "Decay in K0 or K+ + NPi" case {//@@ Can (must) be moved to EvaporateResidual ?? - if(NaK==1&&!NPi) // ==> "One anti-strange K" case + if(NaK==1&&!NPi) // ==> "One anti-strange K" case { G4LorentzVector m4Mom(0.,0.,0.,MaK); G4LorentzVector n4Mom(0.,0.,0.,totRM); @@ -1546,11 +1551,11 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() < "Anti-strange K's + DELTA's" case { G4LorentzVector m4Mom(0.,0.,0.,MPi); G4LorentzVector k4Mom(0.,0.,0.,MaK); @@ -1569,24 +1574,24 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() for (G4int ip=0; ip "Two anti-strange Kaons" case + else // ==> "Two anti-strange Kaons" case { - G4int N1K = NaK/2; // First kaon cluster - G4int N2K = NaK-N1K; // Second kaon cluster - G4double mM = MaK/NaK; // Mass of Pi - G4double m1M = mM*N1K; // Mass of the first Pi-cluster - G4double m2M = mM*N2K; // Mass of the second Pi-cluster + G4int N1K = NaK/2; // First kaon cluster + G4int N2K = NaK-N1K; // Second kaon cluster + G4double mM = MaK/NaK; // Mass of Pi + G4double m1M = mM*N1K; // Mass of the first Pi-cluster + G4double m2M = mM*N2K; // Mass of the second Pi-cluster G4LorentzVector m4Mom(0.,0.,0.,m1M); G4LorentzVector k4Mom(0.,0.,0.,m2M); G4LorentzVector n4Mom(0.,0.,0.,totRM); @@ -1600,26 +1605,26 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4cout<<"G4QEnv::HadronizeQEnv: SN="< N*K="< "Decay in Pi+ or Pi-" case { - if(NPi==1) // ==> "One isobar" case + if(NPi==1) // ==> "One isobar" case { G4LorentzVector m4Mom(0.,0.,0.,MPi); G4LorentzVector n4Mom(0.,0.,0.,totRM); @@ -1634,17 +1639,17 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() < "Many Isobars" case { - G4int N1Pi = NPi/2; // First pion cluster - G4int N2Pi = NPi-N1Pi; // Second pion cluster - G4double mM = MPi/NPi; // Mass of Pi - G4double m1M = mM*N1Pi; // Mass of the first Pi-cluster - G4double m2M = mM*N2Pi; // Mass of the second Pi-cluster + G4int N1Pi = NPi/2; // First pion cluster + G4int N2Pi = NPi-N1Pi; // Second pion cluster + G4double mM = MPi/NPi; // Mass of Pi + G4double m1M = mM*N1Pi; // Mass of the first Pi-cluster + G4double m2M = mM*N2Pi; // Mass of the second Pi-cluster G4LorentzVector m4Mom(0.,0.,0.,m1M); G4LorentzVector k4Mom(0.,0.,0.,m2M); G4LorentzVector n4Mom(0.,0.,0.,totRM); @@ -1658,20 +1663,20 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4cout<<"G4QEnv::HadronizeQEnv: SN="< N*PI="< "Possible decay" case @@ -1819,10 +1824,10 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4Exception("G4QEnv::HadrQEnv: Quasmon+QEnv DecayIn2 did not succeed"); } G4QHadron* qH = new G4QHadron(QPDG,fq4M); - theQHadrons.push_back(qH); // (delete equivalent) + theQHadrons.push_back(qH); // (delete equivalent) G4QHadron* qeH = new G4QHadron(envPDG,qe4M); if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(qeH); //(DelEq) - else theQHadrons.push_back(qeH); // (delete equivalent) + else theQHadrons.push_back(qeH); // (delete equivalent) } } } @@ -1844,30 +1849,34 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1) // => "Skip K-mes, gamma & decayed" { G4QHadron* thePrev = theQHadrons[nOfOUT-2]; - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT - theQHadrons.push_back(theLast); // the Last becomes the Prev - theLast = thePrev; // Update parameters (Prev instead of Last) + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT + theQHadrons.push_back(thePrev); // thePast becomes theLast as an instance + delete theLast; // theLast QHadron is deleated as an instance + theLast = thePrev; // Update parameters (thePrev* becomes theLast*) last4M = theLast->Get4Momentum(); lastQC = theLast->GetQC(); } - else theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - delete theLast; // the last QHadron is deleated as instance - totQC+=lastQC; // Update (increase) the total QC - tot4M+=last4M; // Update (increase) the total 4-momentum - totMass=tot4M.m(); // Calculate new real total mass - G4int bn=totQC.GetBaryonNumber(); // The BaryNum after addition + else + { + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + delete theLast; // the last QHadron is deleated as an instance + } + totQC+=lastQC; // Update (increase) the total QC + tot4M+=last4M; // Update (increase) the total 4-momentum + totMass=tot4M.m(); // Calculate new real total mass + G4int bn=totQC.GetBaryonNumber(); // The BaryNum after addition totPDG=totQC.GetSPDGCode(); if(bn>1) { - totS =totQC.GetStrangeness(); // Total Strangeness of this System - if(totS>=0) // => "This is a normal nucleus" case + totS =totQC.GetStrangeness(); // Total Strangeness of this System + if(totS>=0) // => "This is a normal nucleus" case { G4QNucleus newN(totQC,tot4M); totPDG=newN.GetPDG(); - totM =newN.GetMZNS(); // Calculate new minimum (GS) mass + totM =newN.GetMZNS(); // Calculate new minimum (GS) mass } - else if(totS==-1) // => "Try to decay in K+/aK0 and finish" case + else if(totS==-1) // => "Try to decay in K+/aK0 and finish" case { G4double m1=mK; G4int PDG1=321; @@ -1883,7 +1892,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() m2 =m3; PDG2=newN0.GetPDG(); } - if(totMass>m1+m2) // => "can decay" case + if(totMass>m1+m2) // => "can decay" case { G4LorentzVector fq4M(0.,0.,0.,m1); G4LorentzVector qe4M(0.,0.,0.,m2); @@ -1894,14 +1903,14 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4Exception("G4QEnv::HadrQEnv: aK+ResA DecayIn2 did not succeed"); } G4QHadron* H1 = new G4QHadron(PDG1,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(PDG2,qe4M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) break; } - else totM=250000.; // => "Continue reversion" case + else totM=250000.; // => "Continue reversion" case } - else if(totS==-2) // => "Try to decay in 2(K+/aK0) and finish" case + else if(totS==-2) // => "Try to decay in 2(K+/aK0) and finish" case { G4double m1=mK; G4int PDG1=321; @@ -1909,11 +1918,11 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4int PDG2=311; G4QNucleus newNp0(totQC-KpQC-K0QC); G4int PDG3=newNp0.GetPDG(); - G4double m3=newNp0.GetMZNS(); // M-K^0-K^+ + G4double m3=newNp0.GetMZNS(); // M-K^0-K^+ G4QNucleus newN00(totQC-K0QC-K0QC); - G4double m4=newN00.GetMZNS(); // M-2*K^0 + G4double m4=newN00.GetMZNS(); // M-2*K^0 G4QNucleus newNpp(totQC-KpQC-KpQC); - G4double m5=newNpp.GetMZNS(); // M-2*K^+ + G4double m5=newNpp.GetMZNS(); // M-2*K^+ if (m4+mK0+mK0 "2K0+ResA is the best" case { m1 =mK0; @@ -1928,7 +1937,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() m3 =m5; PDG3=newNpp.GetPDG(); } - if(totMass>m1+m2+m3) // => "can decay" case + if(totMass>m1+m2+m3) // => "can decay" case { G4LorentzVector k14M(0.,0.,0.,m1); G4LorentzVector k24M(0.,0.,0.,m2); @@ -1940,16 +1949,16 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4Exception("G4QEnv::HadrQEnv: 2K+ResA DecayIn3 did not succeed"); } G4QHadron* H1 = new G4QHadron(PDG1,k14M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(PDG2,k24M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) G4QHadron* H3 = new G4QHadron(PDG3,ra4M); - theQHadrons.push_back(H3); // (delete equivalent) + theQHadrons.push_back(H3); // (delete equivalent) break; } - else totM=270000.; // => "Continue reversion" case + else totM=270000.; // => "Continue reversion" case } - else totM=300000.; // => "Continue reversion" case + else totM=300000.; // => "Continue reversion" case } else { @@ -1987,9 +1996,9 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4Exception("G4QEnv::HadrQEnv: h1+h2 DecayIn2 did not succeed"); } G4QHadron* H1 = new G4QHadron(PDG1,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(PDG2,qe4M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) break; } else totM=350000.; @@ -2006,15 +2015,15 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4QHadron* evH = new G4QHadron(totPDG,tot4M);// Create a Hadron for Residual Nucleus if(totS<0&&totBN>0)DecayAntiStrange(evH); else if(dM>0.001&&totBN>2)EvaporateResidual(evH); // Evaporate ResNuc (del.equiv) - else if(totBN==2) DecayDibaryon(evH); // Decay dibaryon (delete equivalent) - else if(totBN==5) DecayAlphaBar(evH); // "Alpha+Baryon Decay" case (delete eq.) + else if(totBN==2) DecayDibaryon(evH); // Decay dibaryon (delete equivalent) + else if(totBN==5) DecayAlphaBar(evH); // "Alpha+Baryon Decay" case (delete eq.) else if(totPDG==90004004) DecayAlphaAlpha(evH); // "Alpha+Alpha Decay" case (del eq.) else theQHadrons.push_back(evH);// Fill to OUTPUT as it is (delete equivalent) break; } - nOfOUT = theQHadrons.size(); // Update the value of OUTPUT entries + nOfOUT = theQHadrons.size(); // Update the value of OUTPUT entries } // End of WHILE(nOfOUT) - nOfOUT = theQHadrons.size(); // Update the value of OUTPUT entries + nOfOUT = theQHadrons.size(); // Update the value of OUTPUT entries if(!nOfOUT) { G4cerr<<"***G4QEnv::HadrQE:M="<0)DecayAntiStrange(evH); else if(dM>0.001&&totBN>2)EvaporateResidual(evH); // Evaporate ResidNucl (del.equiv) - else if(totBN==2) DecayDibaryon(evH); // Decay dibaryon (delete equivalent) - else if(totBN==5) DecayAlphaBar(evH); // "Alpha+Baryon Decay" case (delete eq.) + else if(totBN==2) DecayDibaryon(evH);// Decay dibaryon (delete equivalent) + else if(totBN==5) DecayAlphaBar(evH);// "Alpha+Baryon Decay" case (delete eq.) else if(totPDG==90004004) DecayAlphaAlpha(evH); // "Alpha+Alpha Decay" case (del eq.) else theQHadrons.push_back(evH);// Fill to OUTPUT as it is (delete equivalent) } @@ -2064,7 +2073,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) static const G4QContent lambQC(1,1,1,0,0,0); static const G4QContent deutQC(3,3,0,0,0,0); static const G4QContent alphQC(6,6,0,0,0,0); - G4int thePDG = qH->GetPDGCode(); // Get PDG code of the Residual Nucleus + G4int thePDG = qH->GetPDGCode(); // Get PDG code of the Residual Nucleus /// @@@@@@@ *** TEMPORARY TO AVOID HYPERMUCLEI FOR GEANT4 *** @@@@@@@ if(thePDG!=91000000 && thePDG>90999999) { @@ -2073,15 +2082,15 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) qH->SetQPDG(G4QPDGCode(thePDG)); } /// @@@ *** ^^^ END OF TEMPORARY ^^^ *** @@@ - G4QContent theQC = qH->GetQC(); // Quark Content of the hadron + G4QContent theQC = qH->GetQC(); // Quark Content of the hadron G4int theBN=theQC.GetBaryonNumber(); - if(!thePDG) thePDG = theQC.GetSPDGCode(); // If PDG code's not transferred, get it from QC - G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Residual Nucleus - G4double totMass = qH->GetMass(); // Get Real Mass of the Residual Nucleus + if(!thePDG) thePDG = theQC.GetSPDGCode(); // If PDG code's not transferred, get it from QC + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Residual Nucleus + G4double totMass = qH->GetMass(); // Get Real Mass of the Residual Nucleus #ifdef pdebug G4cout<<"G4QEnvironment::EvaporateResidual(EvaRes): ===IN==> PDG="< "Nothing in the INPUT Hadron" case KEEP IT! + if (thePDG==90000000) // ==> "Nothing in the INPUT Hadron" case KEEP IT! { delete qH; #ifdef debug @@ -2089,7 +2098,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) #endif return; } - else if(thePDG==89999003||thePDG==90002999)//=> "ISO-dibarion" case + else if(thePDG==89999003||thePDG==90002999) //=> "ISO-dibarion" case { G4int nucPDG = 2112; G4double nucM = mNeut; @@ -2113,11 +2122,11 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) } delete qH; G4QHadron* h1H = new G4QHadron(nucPDG,n14M); - theQHadrons.push_back(h1H); // (delete equivalent) + theQHadrons.push_back(h1H); // (delete equivalent) G4QHadron* h2H = new G4QHadron(nucPDG,n24M); - theQHadrons.push_back(h2H); // (delete equivalent) + theQHadrons.push_back(h2H); // (delete equivalent) G4QHadron* piH = new G4QHadron(piPDG,pi4M); - theQHadrons.push_back(piH); // (delete equivalent) + theQHadrons.push_back(piH); // (delete equivalent) } else { @@ -2126,7 +2135,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) G4Exception("***G4QEnvironment::EvaporateResidual: ISO-dibaryon is under the Mass Shell"); } } - else if(theBN>0&&thePDG>88000000&&thePDG<89000000) // === two anti-K in the nucleus + else if(theBN>0&&thePDG>88000000&&thePDG<89000000) // === two anti-K in the nucleus { G4int bZ=theQC.GetCharge(); G4int bN=theBN-bZ; @@ -2162,27 +2171,27 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) } delete qH; G4QHadron* k1H = new G4QHadron(k1PDG,k14M); - theQHadrons.push_back(k1H); // (delete equivalent) + theQHadrons.push_back(k1H); // (delete equivalent) G4QHadron* k2H = new G4QHadron(k2PDG,k24M); - theQHadrons.push_back(k2H); // (delete equivalent) + theQHadrons.push_back(k2H); // (delete equivalent) G4QHadron* nH = new G4QHadron(nucPDG,n4M); - theQHadrons.push_back(nH); // (delete equivalent) + theQHadrons.push_back(nH); // (delete equivalent) } else if(thePDG>80000000&&thePDG!=90000000||thePDG==2112||thePDG==2212||thePDG==3122) { // @@ Should be improved for Sigma+, Sigma-, Ksi0 & Ksi- content in the Total Residual Nucleus - if(thePDG<80000000) // => "Switch from QHadron coding to QNuclear coding" + if(thePDG<80000000) // => "Switch from QHadron code to QNuclear code" { - if (thePDG==2112) thePDG=90000001; // n - else if(thePDG==2212) thePDG=90001000; // p - else if(thePDG==3122) thePDG=91000000; // lambda + if (thePDG==2112) thePDG=90000001; // n + else if(thePDG==2212) thePDG=90001000; // p + else if(thePDG==3122) thePDG=91000000; // lambda } - G4QNucleus qNuc(q4M,thePDG); // Make a Nucleus out of the Total Residual Nucleus - G4double GSMass =qNuc.GetGSMass(); // Ground State Mass of the Total Residual Nucleus - G4QContent totQC=qNuc.GetQCZNS(); // QuarkContent of the TotalResidualNucleus (=theQC?) - G4int bA =qNuc.GetA(); // A#of baryons in the Total Residual Nucleus - G4int bZ =qNuc.GetZ(); // A#of protons in the Total Residual Nucleus - G4int bN =qNuc.GetN(); // A#of neutrons in the Total Residual Nucleus - G4int bS =qNuc.GetS(); // A#of lambdas in the Total Residual Nucleus + G4QNucleus qNuc(q4M,thePDG); // Make a Nucleus out of the Total Residual Nucleus + G4double GSMass =qNuc.GetGSMass(); // Ground State Mass of the Total Residual Nucleus + G4QContent totQC=qNuc.GetQCZNS(); // QuarkContent of the TotalResidualNucleus (theQC) + G4int bA =qNuc.GetA(); // A#of baryons in the Total Residual Nucleus + G4int bZ =qNuc.GetZ(); // A#of protons in the Total Residual Nucleus + G4int bN =qNuc.GetN(); // A#of neutrons in the Total Residual Nucleus + G4int bS =qNuc.GetS(); // A#of lambdas in the Total Residual Nucleus #ifdef debug if(bZ==2&&bN==5)G4cout<<"G4QE::EvR: GSM="< " <GSMass+.003)//==>"Fuse&DecayTechnology to avoid gammaDec" //if(2>3) // Close "Fuse&Decay Technology" ***@@@*** { #ifdef debug G4cout<<"G4QEnv::EvaR: Can't SplitBar s="< GSM="<GetBaryonNumber(); @@ -2208,7 +2217,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) #ifdef debug G4cout<<"G4QEnv::EvaRes:*BackFusion* lBN="< "Delete Decayed Hadrons" case + while(nFragm) // => "Delete Decayed Hadrons" case { G4QHadron* thePrev = theQHadrons[nOfOUT-2]; nFragm = thePrev->GetNFragments(); @@ -2216,30 +2225,30 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) G4int prevPDG = thePrev->GetPDGCode(); G4cout<<"G4QEnv::EvaRes:DelTheLast, nFr="<1) // => "Skip Meson/Gams & Antibaryons" case @@ A few? { - G4QHadron* thePrev = theQHadrons[nOfOUT-2]; - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT - theQHadrons.push_back(theLast); // the Last becomes the Prev (first part of exchange) - theQHadrons.push_back(thePrev); // the Prev becomes the Last (second part of exch.) - theLast = thePrev; // Update the Last pointer (Prev instead of Last) + G4QHadron* thePrev = theQHadrons[nOfOUT-2];// *** Exchange between theLast & thePrev *** + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT + theQHadrons.push_back(theLast); // the Last becomes the Prev(first part of exchange) + theQHadrons.push_back(thePrev); // the Prev becomes the Last (second part of exch.) + theLast = thePrev; // Update the Last pointer (Prev instead of Last) } G4LorentzVector last4M = theLast->Get4Momentum(); G4QContent lastQC = theLast->GetQC(); - G4double lastM = last4M.m(); // Mass of the BackFused Fragment - totQC+=lastQC; // Update (increase) the total QC - q4M+=last4M; // Update (increase) the total 4-momentum - totMass=q4M.m(); // Calculate new real total mass - G4int totPDG=totQC.GetSPDGCode(); // The updated PDG for the Total Residual Nucleus - G4int totBN=totQC.GetBaryonNumber(); // Baryon number of the Total Residual Nucleus + G4double lastM = last4M.m(); // Mass of the BackFused Fragment + totQC+=lastQC; // Update (increase) the total QC + q4M+=last4M; // Update (increase) the total 4-momentum + totMass=q4M.m(); // Calculate new real total mass + G4int totPDG=totQC.GetSPDGCode(); // The updated PDG for the Total Residual Nucleus + G4int totBN=totQC.GetBaryonNumber(); // Baryon number of the Total Residual Nucleus G4double dM=totMass-GSMass -lastM; #ifdef debug G4cout<<"G4QE::EvR:TM="<Set4Momentum(last4M); // Already exists: don't create&fill, just set 4Mom + delete evH; // Delete the Hadron for the Total Residual Nucleus + theLast->Set4Momentum(last4M); // Already exists: don't create&fill, just set 4Mom G4QHadron* nuclH = new G4QHadron(thePDG,r4Mom); if(thePDG==92000000||thePDG==90002000||thePDG==90000002)DecayDibaryon(nuclH);//DelEq else theQHadrons.push_back(nuclH);// Fill the Residual Nucleus (delete equivalent) @@ -2276,16 +2285,16 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) break; } } - thePDG=totPDG; // Make a Residual Nucleus out of the TotResidNucl - GSMass=G4QPDGCode(thePDG).GetMass(); // Update the Total Residual Nucleus mass - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + thePDG=totPDG; // Make a Residual Nucleus out of the TotResidNucl + GSMass=G4QPDGCode(thePDG).GetMass(); // Update the Total Residual Nucleus mass + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT delete theLast;//!! When killing, DON'T forget to delete the last QHadron as an instance!! - nOfOUT--; // Update the value of OUTPUT entries + nOfOUT--; // Update the value of OUTPUT entries } } if(!nOfOUT || !corFlag) { - G4LorentzVector h4Mom(0.,0.,0.,GSMass);// GSMass should be updated in previous while-LOOP + G4LorentzVector h4Mom(0.,0.,0.,GSMass); // GSMass should be updated in previous while-LOOP G4LorentzVector g4Mom(0.,0.,0.,0.); if(!G4QHadron(q4M).DecayIn2(h4Mom, g4Mom)) { @@ -2296,164 +2305,165 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) G4cout<<"G4QEnv::EvaRes: "<totResN="< Evaporation of excited system + else // ===> Evaporation of excited system { #ifdef debug G4cout<<"G4QEnv::EvaRes: ***EVA*** tPDG="< GS="< "Dibaryon" case needs decay else if(bB==4) theQHadrons.push_back(bHadron); // "Alpha radiation" case (delete equival.) - else if(bB==5) DecayAlphaBar(bHadron); // "Alpha+Baryon Decay" case (delete equival.) + else if(bB==5) DecayAlphaBar(bHadron); // "Alpha+Baryon Decay" case (delete equival.) else if(bPDG==90004004) DecayAlphaAlpha(bHadron);// "Alpha+Alpha Decay" case (delete equiv.) else { + delete bHadron; G4cerr<<"***G4QEnv::EvaRes: bB="< 2 - unexpected evaporated fragment"<2) EvaporateResidual(rHadron); // Continue evaporation (@@ Self-call) - else if(rB==2) // => "Dibaryon" case needs decay + if(rB>2) EvaporateResidual(rHadron); // Continue evaporation (@@ Self-call) + else if(rB==2) // => "Dibaryon" case needs decay { G4double rGSM = rHadron->GetQPDG().GetMass();// Ground State mass of the dibaryon #ifdef debug @@ -2724,36 +2735,38 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) if(rM<=rGSM-0.001) { + delete rHadron; G4cerr<<"***G4QEnv::EvaRes: M="< "Dibaryon Decay" case (delete equivalent) + else if(abs(rM-rGSM)<0.001&&rPDG==90001001)theQHadrons.push_back(rHadron);//(del. equiv.) + else DecayDibaryon(rHadron); // => "Dibaryon Decay" case (delete equivalent) } - else if(rB==5) DecayAlphaBar(rHadron); // "Alpha+Baryon Decay" case (delete equival.) + else if(rB==5) DecayAlphaBar(rHadron); // "Alpha+Baryon Decay" case (delete equival.) else if(rPDG==90004004) DecayAlphaAlpha(rHadron);// "Alpha+Alpha Decay" case (delete equiv.) - else theQHadrons.push_back(rHadron); // Fill ResidNucleus=Baryon to Output HadronVector + else theQHadrons.push_back(rHadron); // Fill ResidNucleus=Baryon to Output HadronVector } // End of fail in decay check + else delete qH; } // End of Evaporation of excited system } - else // => "Decay if it is impossible to evaporate" case + else // => "Decay if it is impossible to evaporate" case { #ifdef debug G4cout<<"G4QEnv::EvaRes: InputHadron4M="<GetQC(); // Quark content of the hadron - G4QChipolino resChip(totQC); // define the Residual as a Chipolino + G4QContent totQC = qH->GetQC(); // Quark content of the hadron + G4QChipolino resChip(totQC); // define the Residual as a Chipolino G4QPDGCode h1=resChip.GetQPDG1(); - G4double m1 =h1.GetMass(); // Mass of the first hadron + G4double m1 =h1.GetMass(); // Mass of the first hadron G4QPDGCode h2=resChip.GetQPDG2(); - G4double m2 =h2.GetMass(); // Mass of the second hadron + G4double m2 =h2.GetMass(); // Mass of the second hadron if(totMass>=m1+m2) { - delete qH; // Chipolino should not be in a sequence + delete qH; // Chipolino should not be in a sequence G4LorentzVector fq4M(0.,0.,0.,m1); G4LorentzVector qe4M(0.,0.,0.,m2); if(!G4QHadron(q4M).DecayIn2(fq4M,qe4M)) @@ -2762,9 +2775,9 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) G4Exception("G4QEnvironment::EvaporateResidual: Chip->h1+h2 DecayIn2 did not succeed"); } G4QHadron* H2 = new G4QHadron(h2.GetPDGCode(),qe4M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) G4QHadron* H1 = new G4QHadron(h1.GetPDGCode(),fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) } else { @@ -2772,7 +2785,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) G4Exception("***G4QEnvironment::EvaporateResidual: Chipolino is under a Mass Shell"); } } - else // "Hadron" case + else // "Hadron" case { G4double totM=G4QPDGCode(thePDG).GetMass(); if(abs(totMass-totM)<0.001||abs(thePDG)-10*(abs(thePDG)/10)>2)theQHadrons.push_back(qH); @@ -2787,9 +2800,9 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) } delete qH; G4QHadron* H1 = new G4QHadron(211,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(-211,qe4M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) } else if ((thePDG==221||thePDG==331)&&totMass>mPi0+mPi0) // "Decay in 2pi0" case { @@ -2802,11 +2815,11 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) } delete qH; G4QHadron* H1 = new G4QHadron(111,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(111,qe4M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) } - else if (totMass>totM) // "Radiative Hadron decay" case + else if (totMass>totM) // "Radiative Hadron decay" case { G4LorentzVector fq4M(0.,0.,0.,0.); G4LorentzVector qe4M(0.,0.,0.,totM); @@ -2817,9 +2830,9 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) } delete qH; G4QHadron* H1 = new G4QHadron(22,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(thePDG,qe4M); - theQHadrons.push_back(H2); // (delete equivalent) + theQHadrons.push_back(H2); // (delete equivalent) } else { @@ -2897,7 +2910,7 @@ G4QHadronVector* G4QEnvironment::Fragment() G4cout<<"G4QEnvironment::Fragment: after HadronizeQEnvironment #ofHadrons="<GetBaryonNumber(); - if(lHadr>1) // The last hadron is a nucleus: try to decay/evaporate it + if(lHadr>1) // The last hadron is nucleus: try to decay/evap. it { G4QHadron* theLast = theQHadrons[nHadr-1]; G4QHadron* curHadr = new G4QHadron(theLast); @@ -2975,11 +2988,11 @@ G4QHadronVector* G4QEnvironment::Fragment() G4QHadron* theLast = theQHadrons[nHadr-1]; G4QHadron* theCurr = theQHadrons[ipo]; G4QHadron* curHadr = new G4QHadron(theCurr);// Remember the current hadron - theCurr->SetQPDG(theLast->GetQPDG()); // the formal current is substituted by the last + theCurr->SetQPDG(theLast->GetQPDG()); // the formal current is substituted by the last theCurr->Set4Momentum(theLast->Get4Momentum()); - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + theQHadrons.pop_back(); // pointer to theLast Hadron is excluded from OUTPUT delete theLast; //*!! When killing, DON'T forget to delete the last QHadron as an instance !!* - if(hPDG!=22) EvaporateResidual(curHadr); // Try to evaporate the Nucleus (delete equiv) + if(hPDG!=22) EvaporateResidual(curHadr); // Try to evaporate the Nucleus (delete equiv) nHadr=theQHadrons.size(); } #ifdef pdebug @@ -3037,13 +3050,13 @@ G4QHadronVector* G4QEnvironment::Fragment() #ifdef pdebug G4cout<<"G4QE::Fr:LOOP START,h="<>>h="<0&&!hS&&(nHadr>3||hB<2)) // ThermonuclBackFusion condition (VIMP for gamA TotCS) - //if(2>3) // Close the ThermonuclearBackFusion (VIMP for gamA TotCS) + if(hadron&&!hF&&hB>0&&!hS&&(nHadr>3||hB<2))// ThermoBackFusion condition (VIMP for gamA TotCS) + //if(2>3) // Close the ThermoBackFusion (VIMP for gamA TotCS) { #ifdef ppdebug //if(nHadr==3) @@ -3062,10 +3075,10 @@ G4QHadronVector* G4QEnvironment::Fragment() G4QContent hQC = curHadr->GetQC(); if(hadron&&!hF&&hB>0) for(G4int pt=0; ptGetNFragments(); G4LorentzVector b4m= backH->Get4Momentum(); - G4double bM= b4m.m(); // Mass of the second fragment + G4double bM= b4m.m(); // Mass of the second fragment G4QContent bQC = backH->GetQC(); G4int bB = backH->GetBaryonNumber(); G4int bS = backH->GetStrangeness(); @@ -3326,16 +3339,16 @@ G4QHadronVector* G4QEnvironment::Fragment() backH->SetQPDG(rQPDG); backH->Set4Momentum(g4Mom); G4QHadron* newH = new G4QHadron(tQPDG.GetPDGCode(),t4Mom); - theQHadrons.push_back(newH); // (delete equivalent for newH) + theQHadrons.push_back(newH); // (delete equivalent for newH) nHadr=theQHadrons.size(); #ifdef ppdebug G4cout<<"G4QE::Fr:*Products*,nH="<10e-6?"<0.0001) // Energy or momentum is not conserved + if(dem>0.0001) // Energy or momentum is not conserved { #ifdef pdebug if(dem>1.)G4cerr<<"***G4QE::Fr:E/Mom conservation="<Get4Momentum(); // 4-mom of the previous hadron - G4double cHM = curHadr->GetMass(); // Mass of the current hadron - G4double pHM = prevHadr->GetMass(); // Mass of the current hadron + G4double cHM = curHadr->GetMass(); // Mass of the current hadron + G4double pHM = prevHadr->GetMass(); // Mass of the current hadron tot4Mom+=cH4Mom+pH4Mom; G4double totRM=tot4Mom.m(); - if(cHM+pHM<=totRM+.03) // *** Make the final correction *** + if(cHM+pHM<=totRM+.03) // *** Make the final correction *** { if(!G4QHadron(tot4Mom).DecayIn2(pH4Mom,cH4Mom)) { @@ -3406,9 +3419,9 @@ G4QHadronVector* G4QEnvironment::Fragment() #endif //if(nHadr)for(G4int h=nHadr-1; h>=0; h--)//Compress gamma & kill DecayedHadrons //if(nHadr>3)for(G4int h=nHadr-1; h>=0; h--)//Compress gamma & kill DecayedHadrons - if(nHadr) for(G4int h=nHadr-1; h>=0; h--) //Compress gamma & kill DecayedHadrons + if(nHadr) for(G4int h=nHadr-1; h>=0; h--) //Compress gamma & kill DecayedHadrons { - G4QHadron* curHadr = theQHadrons[h]; // Get a pointer to the current Hadron + G4QHadron* curHadr = theQHadrons[h]; // Get a pointer to the current Hadron G4int hF = curHadr->GetNFragments(); G4int hPDG = curHadr->GetPDGCode(); if(hPDG==89999003||hPDG==90002999)G4cerr<<"***nD-/pD++***(1)***G4QEnv::Fr:PDG="<nH="<size()<GetQC()<<",M="<Get4Momentum().m()<push_back(curQ); // (delete equivalent - user) + quasmons->push_back(curQ); // (delete equivalent - user is responsible) } #ifdef pdebug G4cout<<"G4QEnvironment::GetQuasmons ===OUT==="<GetQC()<<",HM="<GetMass()<push_back(curH); // (delete equivalent - user's responsibility) + hadrons->push_back(curH); // (delete equivalent - user is responsibile) } #ifdef pdebug G4cout<<"G4QEnvironment::GetQHadrons ===OUT==="<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dybaryon + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Dibaryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dybaryon #ifdef pdebug G4cout<<"G4QEnv::DecayDibaryon: *Called* PDG="<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying tribaryon - G4int qS = qH->GetStrangeness();// Strangness of the nuclear state + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Dibaryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying tribaryon + G4int qS = qH->GetStrangeness(); // Strangness of the nuclear state G4int qB = qH->GetBaryonNumber(); #ifdef pdebug G4cout<<"G4QEnv::DecayAntiStran:*Called* PDG="< TotM="<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying tribaryon + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Dibaryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying tribaryon #ifdef pdebug G4cout<<"G4QEnv::DecayThreeBaryon: *Called* PDG="<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dybaryon + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Dibaryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dybaryon #ifdef pdebug G4cout<<"G4QEnv::DecayDibaryon: *Called* PDG="<Get4Momentum(); // Get 4-momentum of the Alpha-Baryon - G4double qM = q4M.m(); // Mass of Alpha-Baryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin Alpha-Baryon + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Alpha-Baryon + G4double qM = q4M.m(); // Mass of Alpha-Baryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin Alpha-Baryon #ifdef pdebug G4cout<<"G4QEnv::DecayAlphaBar: *Called* PDG="<0.&&dM<1.) { +#ifdef pdebug G4cerr<<"***Corrected***G4QEnv::DecayAlphaBar:fPDG="< TotM="<GetPDGCode(); // PDG Code of the decayin dialpha + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dialpha if(qPDG!=90004004) { G4cerr<<"***G4QEnv::DecayAlphaAlpha: qPDG="<Get4Momentum(); // Get 4-momentum of the Dibaryon + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Dibaryon #ifdef pdebug G4cout<<"G4QEnv::DecayAlphaAlpha: *Called* PDG="<GetQC(); // Quark content of the Quasmon - G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function - G4double resQMa=G4QPDGCode(resQPDG).GetMass(); // GS Mass of the Residual Quasmon - G4double resEMa=0.; // GS Mass of the Empty Residual Environment - G4bool bsCond=false; // BaryonSeparetionCondition for Quasmon in vacuum + G4QContent valQ=quasm->GetQC(); // Quark content of the Quasmon + G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function + G4double resQMa=G4QPDGCode(resQPDG).GetMass(); // GS Mass of the Residual Quasmon + G4double resEMa=0.; // GS Mass of the Empty Residual Environment + G4bool bsCond=false; // BaryonSeparetionCondition for Quasmon in vacuum G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.); - G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the Residual Nucleus - G4double resSMa=resQMa; // Prototype of MinimalSplitMass of ResidualNucleus + G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the Residual Nucleus + G4double resSMa=resQMa; // Prototype of MinimalSplitMass of ResidNucleus G4int envPDG=theEnvironment.GetPDG(); - if(envPDG!=90000000) // => "Environment is not vacuum" case + if(envPDG!=90000000) // => "Environment is not vacuum" case { // @@@@@@@@@@@@@@@@@@@ CALL SUBROUTINE @@@@@@@@@ - resEMa=theEnvironment.GetMZNS(); // GSMass of the Residual Environment - enva4M=G4LorentzVector(0.,0.,0.,resEMa); // 4-Mom of the Residual Environment - reTLV+=enva4M; // 4-Mom of Residual Nucleus - resSMa+=resEMa; // Minimal Split Mass of Residual Nucleus + resEMa=theEnvironment.GetMZNS(); // GSMass of the Residual Environment + enva4M=G4LorentzVector(0.,0.,0.,resEMa); // 4-Mom of the Residual Environment + reTLV+=enva4M; // 4-Mom of Residual Nucleus + resSMa+=resEMa; // Minimal Split Mass of Residual Nucleus } - else // Calculate BaryonSeparetionCondition for vacQuasm + else // Calculate BaryonSeparCondition for vacQuasm { - G4double resQM=reTLV.m(); // CM Mass of the Residual vacQuasmon - G4int baryn=valQ.GetBaryonNumber(); // Baryon Number of the Residual vacQuasmon - if(baryn>1) // => "Can split baryon" case + G4double resQM=reTLV.m(); // CM Mass of the Residual vacQuasmon + G4int baryn=valQ.GetBaryonNumber(); // Baryon Number of the Residual vacQuasmon + if(baryn>1) // => "Can split baryon" case { - if(valQ.GetN()) // ===> "Can split neutron" case + if(valQ.GetN()) // ===> "Can split neutron" case { - G4QContent resQC=valQ-neutQC; // QC of Residual for the Neutron - G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Neutron + G4QContent resQC=valQ-neutQC; // QC of Residual for the Neutron + G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Neutron G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual if(resMas+mNeut "Can split proton" case + else if(valQ.GetP()) // ===> "Can split proton" case { - G4QContent resQC=valQ-protQC; // QC of Residual for the Proton - G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Proton + G4QContent resQC=valQ-protQC; // QC of Residual for the Proton + G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Proton G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual if(resMas+mProt "Can split lambda" case + else if(valQ.GetL()) // ===> "Can split lambda" case { - G4QContent resQC=valQ-lambQC; // QC of Residual for the Lambda - G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Lambda + G4QContent resQC=valQ-lambQC; // QC of Residual for the Lambda + G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Lambda G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual if(resMas+mLamb0. Correct?"<Set4Momentum(enva4M); if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(envaH); // DelEqu else if(envPDG==90002003||envPDG==90003002) DecayAlphaBar(envaH); //DelEqu else if(envPDG==90004004) DecayAlphaAlpha(envaH); //DelEqu - else theQHadrons.push_back(envaH); // Fill 2nd Hadron (delete equivalent) + else theQHadrons.push_back(envaH); // Fill 2nd Hadron (delete equivalent) } } - else // => "The Environment is vacuum" case (DecayIn2) + else // => "The Environment is vacuum" case (DecayIn2) { G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon G4QHadron* quasH = new G4QHadron(valQ, quas4M); if(!G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M)) { - delete quasH; // Delete "Quasmon Hadron" + delete quasH; // Delete "Quasmon Hadron" G4cerr<<"***G4QEnv::CheckGS: Decay in Fragm+ResQ did not succeeded"<1 && corFlag) { - G4QHadron* thePrev = theQHadrons[nOfOUT-2]; // Get pointer to previos before last hadron + G4QHadron* thePrev = theQHadrons[nOfOUT-2]; // Get pointer to previos before last hadron if(thePrev->GetNFragments()||thePrev->GetNFragments()) return false; // Decayed H or gamma G4LorentzVector prev4M = thePrev->Get4Momentum(); - G4double prevMa=prev4M.m(); // Mass of previous hadron - tmpTLV+=prev4M; // Increment Total 4-Mom of TotalResidNucl + G4double prevMa=prev4M.m(); // Mass of previous hadron + tmpTLV+=prev4M; // Increment Total 4-Mom of TotalResidNucl G4QContent totQC=valQ+theEnvironment.GetQCZNS();// Quark Content of the ResidNucl=ResidQ+Env - G4int totPDG=totQC.GetSPDGCode(); // PDG Code of Total Residual Nucleus - G4double tQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the Residual Nucleus + G4int totPDG=totQC.GetSPDGCode(); // PDG Code of Total Residual Nucleus + G4double tQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the Residual Nucleus #ifdef pdebug G4cout<<"G4QEnv::CheckGS:NO, T="<r+p+l="<GetQC(); // Quark content of the Quasmon - G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function - G4double resQMa=G4QPDGCode(resQPDG).GetMass(); // GS Mass of the Residual Quasmon + G4QContent valQ=quasm->GetQC(); // Quark content of the Quasmon + G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function + G4double resQMa=G4QPDGCode(resQPDG).GetMass(); // GS Mass of the Residual Quasmon G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.); - G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the Residual Nucleus - G4double resSMa=resQMa; // Prototype of MinimalSplitMass of ResidualNucleus - G4int envPDG=theEnvironment.GetPDG(); // PDG Code of the Environment - if(envPDG!=90000000) // => "Environment is not vacuum" case + G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the Residual Nucleus + G4double resSMa=resQMa; // Prototype of MinimalSplitMass of ResidNucleus + G4int envPDG=theEnvironment.GetPDG(); // PDG Code of the Environment + if(envPDG!=90000000) // => "Environment is not vacuum" case { - G4double resEMa=theEnvironment.GetMZNS(); // GSMass of the Residual Environment - enva4M=G4LorentzVector(0.,0.,0.,resEMa); // 4-Mom of the Residual Environment - reTLV+=enva4M; // 4-Mom of Residual Nucleus - resSMa+=resEMa; // Minimal Split Mass of Residual Nucleus - G4double resTMa=reTLV.m(); // CM Mass of the Residual Nucleus (Quasm+Environ) + G4double resEMa=theEnvironment.GetMZNS(); // GSMass of the Residual Environment + enva4M=G4LorentzVector(0.,0.,0.,resEMa); // 4-Mom of the Residual Environment + reTLV+=enva4M; // 4-Mom of Residual Nucleus + resSMa+=resEMa; // Minimal Split Mass of Residual Nucleus + G4double resTMa=reTLV.m(); // CM Mass of the Residual Nucleus (Quasm+Environ) //#ifdef pdebug G4cout<<"G4QEnv::DecayInEnvQ: totM="< rQM+rEM="<Set4Momentum(enva4M); if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(envaH); // DelEquival else if(envPDG==90002003||envPDG==90003002) DecayAlphaBar(envaH); //DelEqu else if(envPDG==90004004) DecayAlphaAlpha(envaH); //DelEqu - else theQHadrons.push_back(envaH); // Fill Environment Hadron (delete equivalent) + else theQHadrons.push_back(envaH); // Fill Environment Hadron (delete equivalent) } } else return false; } - else return false; // => "Environment is vacuum" case + else return false; // => "Environment is vacuum" case return true; } // End of "DecayInEnvQ" diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc index bc56d2869c..a27b0fe048 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QHadron.cc,v 1.22 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QHadron.cc,v 1.25 2002/12/12 19:14:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. @@ -149,9 +149,13 @@ G4bool G4QHadron::RelDecayIn2(G4LorentzVector& f4Mom, G4LorentzVector& s4Mom, G4double sM = sqrt(sM2); // Mass of the 2nd Hadron G4double iM2 = theMomentum.m2(); G4double iM = sqrt(iM2); // Mass of the decaying hadron + if(theMomentum.e() "Can try to split a proton" case { - G4QContent resQC=valQ-protQC; // QC of Residual for the Proton + G4QContent resQC=valQC-protQC; // QC of Residual for the Proton G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Proton G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual G4double CB=CoulombBarrier(1,1); // Coulomb Barrier for the proton @@ -585,10 +585,10 @@ G4bool G4QNucleus::SplitBaryon() #endif if(sM "Can try to split a lambda" case { - G4QContent resQC=valQ-lambQC; // QC of Residual for the Lambda + G4QContent resQC=valQC-lambQC; // QC of Residual for the Lambda G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Lambda G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual G4double sM=resMas+mLamb; @@ -600,7 +600,7 @@ G4bool G4QNucleus::SplitBaryon() G4int AQ=NQ+PQ+LQ; if(NQ>0&&PQ>0&&AQ>2) // ===> "Can try to split an deuteron" case { - G4QContent resQC=valQ-deutQC; // QC of Residual for the Deuteron + G4QContent resQC=valQC-deutQC; // QC of Residual for the Deuteron G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Deuteron G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual G4double CB=CoulombBarrier(1,2); // Coulomb Barrier for the Deuteron @@ -613,7 +613,7 @@ G4bool G4QNucleus::SplitBaryon() } if(NQ>1&&PQ>1&&AQ>4) // ===> "Can try to split an alpha" case { - G4QContent resQC=valQ-alphQC; // QC of Residual for the Alpha + G4QContent resQC=valQC-alphQC; // QC of Residual for the Alpha G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Alpha G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual G4double CB=CoulombBarrier(2,4); // Coulomb Barrier for the Alpha @@ -639,14 +639,14 @@ G4bool G4QNucleus::Split2Baryons() G4int baryn=GetA(); // Baryon Number of the Nucleus if(baryn<3) return false; G4double totM=Get4Momentum().m(); // Real Mass value of the Nucleus - G4QContent valQ=GetQCZNS(); // Quark Content of the Nucleus + G4QContent valQC=GetQCZNS(); // Quark Content of the Nucleus #ifdef pdebug - G4cout<<"G4QNucleus::Split2Baryons: B="<1) // ===> "Can try to split two protons" case { - G4QContent resQC=valQ-protQC-protQC; // QC of Residual Nucleus for the Two Protons + G4QContent resQC=valQC-protQC-protQC; // QC of Residual Nucleus for the Two Protons G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual Nucleus for the Two Proton G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual Nucleus G4double sM=resMas+mProt+mProt; @@ -669,7 +669,7 @@ G4bool G4QNucleus::Split2Baryons() } if(PQ&&NQ) // ===> "Can try to split proton+neutron" case { - G4QContent resQC=valQ-protQC-neutQC; // QC of Residual Nucleus for the Proton+Neutron + G4QContent resQC=valQC-protQC-neutQC; // QC of Residual Nucleus for the Proton+Neutron G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual Nucleus for the Proton+Neutron G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual Nucleus G4double sM=resMas+mProt+mNeut; @@ -678,10 +678,10 @@ G4bool G4QNucleus::Split2Baryons() #endif if(sM "Can try to split lambda+neutron" case { - G4QContent resQC=valQ-lambQC-neutQC; // QC of Residual Nucleus for the Lambda+Neutron + G4QContent resQC=valQC-lambQC-neutQC; // QC of Residual Nucleus for the Lambda+Neutron G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual Nucleus for the Lambda+Neutron G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual Nucleus G4double sM=resMas+mLamb+mNeut; @@ -692,7 +692,7 @@ G4bool G4QNucleus::Split2Baryons() } if(LQ&&PQ) // ===> "Can try to split lambda+proton" case { - G4QContent resQC=valQ-protQC-lambQC; // QC of Residual Nucleus for the Proton+Lambda + G4QContent resQC=valQC-protQC-lambQC; // QC of Residual Nucleus for the Proton+Lambda G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual Nucleus for the Proton+Lambda G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual Nucleus G4double sM=resMas+mProt+mLamb; @@ -703,7 +703,7 @@ G4bool G4QNucleus::Split2Baryons() } if(LQ>1) // ===> "Can try to split two lambdas" case { - G4QContent resQC=valQ-lambQC-lambQC; // QC of Residual Nucleus for the Two Lambdas + G4QContent resQC=valQC-lambQC-lambQC; // QC of Residual Nucleus for the Two Lambdas G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual Nucleus for the Two Lambdas G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual Nucleus G4double sM=resMas+mLamb+mLamb; diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc index 62c6241337..899d4b0f57 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QPDGCode.cc,v 1.27 2002/06/13 09:12:22 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QPDGCode.cc,v 1.28 2002/12/12 19:14:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QPDGCode ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc index 2719f4aefe..53973481a3 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QParentCluster.cc,v 1.13 2001/11/26 14:11:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QParentCluster.cc,v 1.14 2002/12/12 19:14:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QParentCluster ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc index bc9c35a3af..6a5f4b1882 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QParticle.cc,v 1.17 2001/11/26 14:11:47 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QParticle.cc,v 1.17.10.1 2002/12/12 19:14:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QParticle ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSelector.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSelector.cc index 71e269ad40..d92d729939 100755 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSelector.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSelector.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QSelector.cc,v 1.14 2001/11/26 14:11:47 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QSelector.cc,v 1.15 2002/12/12 19:14:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4QSelector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc index e65ae1060b..3272da3f05 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Quasmon.cc,v 1.39 2002/06/13 09:12:22 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Quasmon.cc,v 1.45.4.1 2002/12/12 19:14:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------- G4Quasmon ---------------- // by Mikhail Kossov, July 1999. @@ -31,6 +31,7 @@ //#define debug //#define pdebug +//#define psdebug //#define ppdebug //#define tdebug //#define sdebug @@ -144,21 +145,10 @@ G4Quasmon::G4Quasmon(G4Quasmon* right) G4Quasmon::~G4Quasmon() { - G4int nCan=theQCandidates.size(); #ifdef sdebug - G4cout<<"G4Quasmon::Destructor before theQCandidates nC="< E="< "Hadron" case { pBaryn=1; - sMass = theQCandidates[i]->GetMass(); // Mass is randomized on probability level - sM2=theQCandidates[i]->GetMass2(); // Sq. Mass is randomized on probability level + sMass = theQCandidates[i]->GetNBMass(); // Mass is randomized on probability level + sM2=sMass*sMass; ; // Sq. Mass is randomized on probability level curQ-= theQCandidates[i]->GetQC(); // Subtract outHadron QC from QC of Quasmon #ifdef debug G4cout<<"G4Q::HQ:valQ="<80000000 && - thePDG==90002999&&thePDG==89999003&&thePDG==90003999&&thePDG==89999004&&thePDG==90003998&& - thePDG==89998004&&thePDG==90004998&&thePDG==89998005 && !DecayOutHadron(qH)) - { -#ifdef pdebug - G4cout<<"***G4Quasmon::FillHadronVector: Emergency OUTPUT, PDGcode= "<80000000 && (thePDG==90002999 || thePDG==89999003 || thePDG==90003999 || + // thePDG==89999004 || thePDG==90003998 || thePDG==89998004 || + // thePDG==90004998 || thePDG==89998005) && !DecayOutHadron(qH)) + //{ +#ifdef tdebug + // G4cout<<"G4Quasmon::FillHadronVector: Decay of isonuclear state, PDGcode= "<80000000&&thePDG!=90000000) // === Decay-Evaporation of the BarionicFragment === { G4double fragMas=qH->GetMass(); // Real Mass of the nuclear fragment @@ -2910,16 +2925,19 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) delete rHadron; theQHadrons.push_back(qH); // Fill hadron in the HadronVector as it is } + else + { #ifdef pdebug G4cout<<"G4Quasm::FillHadrVec:Done b="<GetQPDG()<<",r="<GetQPDG()<SetNFragments(2); // Fill a#of fragments to decaying Hadron - //theQHadrons.push_back(qH); // Fill hadron with nf=2 (delete equivalent) - // Instead - delete qH; - // - FillHadronVector(bHadron); // Fill Evapor. Baryon (delete equivalent) - FillHadronVector(rHadron); // Fill Residual Nucl. (delete equivalent) + //qH->SetNFragments(2); // Fill a#of fragments to decaying Hadron + //theQHadrons.push_back(qH); // Fill hadron with nf=2 (delete equivalent) + // Instead + delete qH; + // + FillHadronVector(bHadron); // Fill Evapor. Baryon (delete equivalent) + FillHadronVector(rHadron); // Fill Residual Nucl. (delete equivalent) + } } } else if(!DecayOutHadron(qH)) // (delete equivalent) @@ -3287,7 +3305,7 @@ void G4Quasmon::CalculateHadronizationProbabilities(G4double E, G4double kVal, G G4bool pos=curCand->GetPossibility()&&totMass>tmpTM+frM; //G4bool pos=curCand->GetPossibility(); #ifdef pdebug - if(cPDG==111||cPDG==90001000||cPDG==90000001||cPDG==90000002||cPDG==90001001||cPDG==90002002) + //if(cPDG==111||cPDG==90001000||cPDG==90000001||cPDG==90000002||cPDG==90001001||cPDG==90002002) G4cout<<"G4Q::CHP:==*****==>>>c="<80000000&&cPDG!=90000000&&dUD<2))) // 2 (OK) or 3 @@ -3466,7 +3484,7 @@ void G4Quasmon::CalculateHadronizationProbabilities(G4double E, G4double kVal, G #endif if(resPDG&&minM>0.) // Kinematical analysis of hadronization { -#ifdef debug +#ifdef pdebug if(baryn<5)G4cout<<"G4Q::CHP: fM="<>>PDG="<683.&&!absb)) resPDG=221;// eta minimum residual instead of pi0 #ifdef pdebug - if(aPDG<10000&&aPDG%10<3) + //if(aPDG<10000&&aPDG%10<3) + if(aPDG<10000&&aPDG%10<5) G4cout<<"G4Q::CHP:cPDG="<"<frM-CB+resTM &&(resPDG>80000000&&resPDG!=90000000||resPDG<10000)) { #ifdef pdebug - if(aPDG<10000&&aPDG%10<3) + //if(aPDG<10000&&aPDG%10<3) + if(aPDG<10000&&aPDG%10<5) G4cout<<"G4Q::CHP:ind="< cM="<90000000&&baryn<5||aPDG<10000&&aPDG%10<3) + //if(cPDG>90000000&&baryn<5||aPDG<10000&&aPDG%10<3) + if(cPDG>90000000&&baryn<5||aPDG<10000&&aPDG%10<5) G4cout<<"G4Q::CHP:^^^cPDG="< rp+l="< rl+p=" <resLastM+hadrMa) // "Just exclude the Last" case + if (totNMa>resLastM+hadrMa) // "Just exclude the Prev" case { - theQHadrons.pop_back(); // the LastH is excluded from OUTPUT HV - theQHadrons.pop_back(); // the PrevH is excluded from OUTPUT HV - theQHadrons.push_back(theLast); // LastH substitute Prev H in OUTPUT HV - G4QHadron* destrP=thePrev; // destruction Pointer for the QHadron - delete destrP; // the Last QHadron is destructed + theQHadrons.pop_back(); // the theLast* is excluded from OUTPUT HV + theQHadrons.pop_back(); // the thePrev* is excluded from OUTPUT HV + theQHadrons.push_back(theLast); // theLast substitutes thePrev in OUTPUT HV + delete thePrev; // thePrev QHadron is destructed thePrev=theLast; resPPDG=resLPDG; resPrevM=resLastM; @@ -4394,7 +4422,7 @@ G4bool G4Quasmon::DecayOutHadron(G4QHadron* qHadron, G4int DFlag) } else { -#ifdef pdebug +#ifdef tdebug G4cout<<"G4Quasmon::DecayOutHadron: Fill PDG= "<>>>"<SetMomentum(G4ThreeVector(PB[1], PB[2], PB[3])); - G4double ektotal = newP->GetKineticEnergy() + - targetParticle->GetKineticEnergy(); + // G4double ektotal = newP->GetKineticEnergy() + + // targetParticle->GetKineticEnergy(); if (verboseLevel > 1) { G4cout << " particle 1 momentum in LAB " diff --git a/source/processes/hadronic/models/generator/GNUmakefile b/source/processes/hadronic/models/generator/GNUmakefile index bf521e3cfc..d13eaf53f1 100644 --- a/source/processes/hadronic/models/generator/GNUmakefile +++ b/source/processes/hadronic/models/generator/GNUmakefile @@ -1,15 +1,16 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:11:37 gunter Exp $ +# $Id: GNUmakefile,v 1.3 2002/11/16 17:08:01 hpw Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic processes library. G.Folger 10-Dec-97. # ---------------------------------------------------------------- name := G4hadronic_gen -SUBDIRS = de_excitation diffractive_string high_energy kinetic_model management +SUBDIRS = de_excitation diffractive_string high_energy scattering kinetic_model management SUBDIRS += string_common string_fragmentation util pre_equilibrium quark_gluon_string +SUBDIRS += scattering SUBLIBS = G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen G4hadronic_kinetic SUBLIBS += G4hadronic_man_gen G4hadronic_preequ G4hadronic_qgstring G4hadronic_string_common -SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen +SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen G4hadronic_scattering ifndef G4INSTALL G4INSTALL = ../../../../.. diff --git a/source/processes/hadronic/models/generator/de_excitation/GNUmakefile b/source/processes/hadronic/models/generator/de_excitation/GNUmakefile index 69febb7438..473bdad59c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/GNUmakefile +++ b/source/processes/hadronic/models/generator/de_excitation/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 1999/06/05 13:08:11 stesting Exp $ +# $Id: GNUmakefile,v 1.4 2002/11/15 16:56:38 flei Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -13,6 +13,10 @@ include $(G4INSTALL)/config/architecture.gmk G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPNumerics/include \ @@ -21,6 +25,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ diff --git a/source/processes/hadronic/models/generator/de_excitation/History.icm b/source/processes/hadronic/models/generator/de_excitation/History.icm new file mode 100644 index 0000000000..18d219e689 --- /dev/null +++ b/source/processes/hadronic/models/generator/de_excitation/History.icm @@ -0,0 +1,67 @@ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Internal Conversion History file + ------------------------------------- +This file should be used by responsible icm developers to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + + +15 Nov 2002 Fan Lei: + +First implementation of the Internal Conversion in the G4PhotonEvaporation class + +The following classes have been modified: + + G4NuclearLevelManager.hh + G4DiscreteGammaDeexcitation.hh G4PhotonEvaporation.hh + G4DiscreteGammaTransition.hh G4VGammaDeexcitation.hh + G4NuclearLevel.hh G4VGammaTransition.hh + +Atomic Relaxation can be included from the low energy EM group but Auger electron +production is switched. + +Instructions on how to activate the Internal Conversion Model (ICM) +Conversion electron emission is a competting process to gamma emission in +nuclear photo-evaporation. It has been implemented in the new G4PhotoEvaporation class and +it contolled by the following public methods which have been added to the class. + + void SetICM (G4bool); + + To activate or deactivate the ICM in photo evaporation process. ICM is off by default. + + void RDMForced (G4bool); + + Special method used primarily by G4RadioactiveDecay() to force photoevaporation of + long lived levels. + If this is set to true the evaporation will bypass the MaxHalfLife test as set by + the SetMaxHalfLife() method. + + void SetMaxHalfLife(G4double) ; + + New method to stop evaporating long lived levels. Default is 1e-6 seconds + + void SetEOccupancy( G4ElectronOccupancy) ; + + To set the orbital electron configuration of the nuclei + + G4ElectronOccupancy GetEOccupancy () { return _eOccupancy;} ; + + To retrieve the modified eletron configuration. + + G4int GetVacantShellNumber () { return _vShellNumber;}; + + To obtained the vacant shell number, for further atomic relaxation + + void SetARM (G4bool val) ; + + To activate or deactivate the atomic relaxation process. ARM is off by default. + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh index 9e880f93ae..a7c82431bc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaCoulombBarrier.hh,v 1.4 2001/08/01 17:04:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaCoulombBarrier.hh,v 1.5 2002/12/12 19:17:01 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh index 51808ca4fc..0c41a87f8c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaEvaporationChannel.hh,v 1.4 2001/08/01 17:04:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaEvaporationChannel.hh,v 1.5 2002/12/12 19:17:01 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh index 0d4454e901..aa9754c7f2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaEvaporationProbability.hh,v 1.4 2001/08/01 17:04:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaEvaporationProbability.hh,v 1.5 2002/12/12 19:17:01 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh index 90b6d43464..66464b569b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMChannel.hh,v 1.1 2002/06/06 17:37:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh index 456c46a2a5..b604b07c48 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMProbability.hh,v 1.1 2002/06/06 17:37:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh index d943995903..61cca3054f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMChannel.hh,v 1.1 2002/06/06 17:37:09 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh index 98b2a55a64..2b5a99031e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B10GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:37:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B10GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:01 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh index 2c5b9c2119..706722300c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMProbability.hh,v 1.1 2002/06/06 17:37:11 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh index 2622d45711..ffd0404d9c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMChannel.hh,v 1.1 2002/06/06 17:37:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh index e50374d5d1..ac10489f91 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B11GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:37:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B11GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:01 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh index 1f89ecb75e..bce354ee82 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMProbability.hh,v 1.1 2002/06/06 17:37:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh index e83e7139fa..be58666f8f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMChannel.hh,v 1.1 2002/06/06 17:37:16 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh index 8921443849..e2697ed402 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B12GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:37:17 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:01 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh index 1f5809066e..4312d4a09a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMProbability.hh,v 1.1 2002/06/06 17:37:18 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh index 4b7f064082..e46c224125 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMChannel.hh,v 1.1 2002/06/06 17:37:19 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh index 4cb6cf893b..5ef3029e88 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B13GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:37:21 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B13GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh index cc6d0bc5e0..1cec365809 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMProbability.hh,v 1.1 2002/06/06 17:37:23 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh index b495ab5e30..1260495adf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMChannel.hh,v 1.1 2002/06/06 17:37:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh index 00ad238ccc..aa08601d75 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B8GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:37:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B8GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh index 2f7ef45155..a56d2c2b1a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMProbability.hh,v 1.1 2002/06/06 17:37:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh index 1f1ff40c01..8b636ac589 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B9FermiFragment.hh,v 1.5 2001/08/01 17:04:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B9FermiFragment.hh,v 1.6 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh index e857331516..302c9f119e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMChannel.hh,v 1.1 2002/06/06 17:39:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh index c6f95ddf51..274a1d5cac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be10GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:39:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be10GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh index c58ac99594..d03ecdc96a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMProbability.hh,v 1.1 2002/06/06 17:39:28 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh index 2b7648c9ad..f0dc715308 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMChannel.hh,v 1.1 2002/06/06 17:39:30 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh index 362a64c897..05d4d1520d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be11GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:39:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be11GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh index ffe3fe944a..ed43ce956a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMProbability.hh,v 1.1 2002/06/06 17:39:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh index 6ab7da72c0..4734fa3ae4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMChannel.hh,v 1.1 2002/06/06 17:39:34 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh index 96b2414547..85c48c65c3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be12GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:39:35 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh index c02be985ed..52540d4d8e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMProbability.hh,v 1.1 2002/06/06 17:39:36 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh index d1ea5e170e..cf9ca8e395 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMChannel.hh,v 1.1 2002/06/06 17:39:37 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh index 99b7031ead..0140de0ae4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be7GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:39:39 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be7GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh index b727e06e5a..7dfa13f1d4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMProbability.hh,v 1.1 2002/06/06 17:39:40 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh index fcccb9a521..3228f189e2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be8FermiFragment.hh,v 1.5 2001/08/01 17:04:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be8FermiFragment.hh,v 1.6 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh index 25eda3a599..f3a8fa19fc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMChannel.hh,v 1.1 2002/06/06 17:40:20 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh index 06b3379a34..d43b42e020 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be9GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:21 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be9GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh index 4266966eec..c0fd8b6714 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMProbability.hh,v 1.1 2002/06/06 17:40:22 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh index 6592469553..6ababd903a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMChannel.hh,v 1.1 2002/06/06 17:40:23 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh index bc339c500b..914dbe8601 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C10GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C10GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh index 8cf11451eb..89cccae7a3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMProbability.hh,v 1.1 2002/06/06 17:40:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh index 7329598d6f..209f2fe5e7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMChannel.hh,v 1.1 2002/06/06 17:40:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh index 2d17b0b820..97c5d036ff 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C11GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:27 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C11GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh index a2be34c870..9402c0e198 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMProbability.hh,v 1.1 2002/06/06 17:40:28 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh index d569bf278c..808991bb89 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMChannel.hh,v 1.1 2002/06/06 17:40:29 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh index eda612fb3d..ab8f858d19 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C12GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:30 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh index b5bdb70525..caedee4d92 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMProbability.hh,v 1.1 2002/06/06 17:40:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh index b09ccfa7dc..f6561277df 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMChannel.hh,v 1.1 2002/06/06 17:40:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh index 2d83f29b3b..429e77ff6c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C13GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:34 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C13GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh index 02c2dcc1af..48057a0a8e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMProbability.hh,v 1.1 2002/06/06 17:40:35 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh index 11e74a1c0f..8051c3a890 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMChannel.hh,v 1.1 2002/06/06 17:40:36 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh index b5dfcfb884..b382e0d4f2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C14GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:37 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C14GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh index 4015b8d441..21bc88b319 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMProbability.hh,v 1.1 2002/06/06 17:40:39 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh index 5c7ea97ce2..a3d84e0a80 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMChannel.hh,v 1.1 2002/06/06 17:40:40 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh index 2bf19c7eff..d056a72842 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C15GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:41 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C15GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh index 40079300cc..cd2c2ac9af 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMProbability.hh,v 1.1 2002/06/06 17:40:42 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh index 55f9e73f69..64663f1506 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMChannel.hh,v 1.1 2002/06/06 17:40:43 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh index 8a098121cf..67c2a30bde 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4C16GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:40:45 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4C16GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh index d3f389f9bc..0b00c560c6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMProbability.hh,v 1.1 2002/06/06 17:40:46 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh index 2d117df76e..9c45b184f6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronGilbertPairingCorrections.hh,v 1.7 2002/01/15 12:01:51 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronGilbertPairingCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh index 43d3d7739f..b0c78e449b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronGilbertShellCorrections.hh,v 1.7 2002/01/15 12:02:45 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronGilbertShellCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh index 64a0fe683a..43b686aad1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronShellPlusPairingCorrections.hh,v 1.8 2002/06/07 15:53:50 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronShellPlusPairingCorrections.hh,v 1.9 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh index 0914e409e5..342821370f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronTruranHilfPairingCorrections.hh,v 1.7 2002/01/15 12:03:12 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh index 62f484f126..c4f636a50e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronTruranHilfShellCorrections.hh,v 1.7 2002/01/15 12:03:23 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronTruranHilfShellCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh index 39817e5063..2797a69fec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CompetitiveFission.hh,v 1.7 2002/01/15 12:22:37 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CompetitiveFission.hh,v 1.9 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -44,7 +44,6 @@ #include "Randomize.hh" //#define debug -//#define pctest class G4CompetitiveFission : public G4VEvaporationChannel { diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh index 894e3361e4..87f0fb9e2a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ConstantLevelDensityParameter.hh,v 1.5 2001/08/01 17:04:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ConstantLevelDensityParameter.hh,v 1.6 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations (photon evaporation) // by C. Dallapiccola (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaDeexcitation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaDeexcitation.hh index 2dac49464c..e01996aa21 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaDeexcitation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaDeexcitation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaTransition.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaTransition.hh index 82cd245653..8552ac6326 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaTransition.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaTransition.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh index 13cde8ee06..a322db8a3a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CookPairingCorrections.hh,v 1.3 2002/06/07 15:53:50 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh index 8e45093d0d..2e487e88af 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CookShellCorrections.hh,v 1.3 2002/06/07 15:53:50 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh index cacbc67c6b..6533cf716f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CoulombBarrier.hh,v 1.5 2001/10/08 17:15:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CoulombBarrier.hh,v 1.6 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh index d1a6a46cab..dfed173170 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronCoulombBarrier.hh,v 1.3 2001/08/01 17:04:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronCoulombBarrier.hh,v 1.4 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh index 8dfe63e825..f772399456 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronEvaporationChannel.hh,v 1.4 2001/08/01 17:04:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronEvaporationChannel.hh,v 1.5 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh index 06bb1ea42c..e505e15ddf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronEvaporationProbability.hh,v 1.4 2001/08/01 17:04:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronEvaporationProbability.hh,v 1.5 2002/12/12 19:17:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh index 0702c8bb02..f7006fee10 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMChannel.hh,v 1.1 2002/06/06 17:41:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh index 7853f99dea..89245d3e8b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMProbability.hh,v 1.1 2002/06/06 17:41:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaDeexcitation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaDeexcitation.hh index 79e822377e..14acc649cb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaDeexcitation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaDeexcitation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -22,22 +22,33 @@ // // // ------------------------------------------------------------------- -// GEANT 4 class file +// GEANT 4 class file // // CERN, Geneva, Switzerland // // File name: G4DiscreteGammaDeexcitation // // Author: Maria Grazia Pia (pia@genova.infn.it) -// +// // Creation date: 23 October 1998 // -// Modifications: -// +// Modifications: +// +// 8 March 2001, Fan Lei (flei@space.qinetiq.com) +// added the following as part if the IC implementation +// void SetICM(G4bool hl) { _icm = hl; }; +// void SetRDM(G4bool hl) { _rdm = hl; }; +// void SetHL(G4double hl) { _max_hl = hl; }; +// private: +// G4double _max_hl; +// G4bool _icm; +// G4bool _rdm; +// +// // ------------------------------------------------------------------- // #ifndef G4DiscreteGammaDeexcitation_hh -#define G4DiscreteGammaDeexcitation_hh +#define G4DiscreteGammaDeexcitation_hh #include "G4VGammaDeexcitation.hh" @@ -47,30 +58,42 @@ #include "G4Fragment.hh" #include "G4NuclearLevelManager.hh" -class G4DiscreteGammaDeexcitation : public G4VGammaDeexcitation -{ +class G4DiscreteGammaDeexcitation : public G4VGammaDeexcitation { public: - // Constructor - G4DiscreteGammaDeexcitation(); + // Constructor + G4DiscreteGammaDeexcitation(); - // Destructor - ~G4DiscreteGammaDeexcitation(); + // Destructor + ~G4DiscreteGammaDeexcitation(); - // Functions + // Functions public: - virtual G4VGammaTransition* CreateTransition(); + virtual G4VGammaTransition * CreateTransition(); - virtual G4bool CanDoTransition() const; + virtual G4bool CanDoTransition() const; + + void SetICM(G4bool hl) { _icm = hl; }; + + void SetRDM(G4bool hl) { _rdm = hl; }; + + void SetHL(G4double hl) { _max_hl = hl; }; private: - G4int _nucleusZ; - G4int _nucleusA; - G4double _tolerance; - G4NuclearLevelManager _levelManager; + + G4int _nucleusZ; + G4int _nucleusA; + G4double _tolerance; + G4double _max_hl; + G4bool _icm; + G4bool _rdm; + G4NuclearLevelManager _levelManager; }; #endif + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaTransition.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaTransition.hh index bd8eefa689..bee0a5daaa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaTransition.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaTransition.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -33,6 +33,18 @@ // Creation date: 23 October 1998 // // Modifications: +// +// 8 March 2002, Fan Lei (flei@space.qinetiq.com) +// added +// 1) SetRDM () to switch on/off IC process +// 2) GetOrbitNumber () to return the CE oribit number +// 3) GetBondEnergy() for the converted e- +// 4) IsaGamma() to separate CE from gamma +// +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// i) added G4int _nucleusZ initialise it through the constructor +// ii) modified SelectGamma() to allow the generation of conversion electrons +// iii) added #include G4AtomicShells.hh // // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added creation time evaluation for products of evaporation @@ -52,6 +64,7 @@ public: // Constructor G4DiscreteGammaTransition(const G4NuclearLevel& level); + G4DiscreteGammaTransition(const G4NuclearLevel& level, G4int Z); // Destructor ~G4DiscreteGammaTransition(); @@ -60,20 +73,30 @@ public: public: -//-- virtual G4double GammaEnergy(); -//-- virtual G4double GetEnergyTo() const; virtual void SetEnergyFrom(const G4double energy); virtual G4double GetGammaEnergy(); virtual G4double GetGammaCreationTime(); virtual void SelectGamma(); - + + void SetICM(G4bool ic) { _icm = ic;}; + G4double GetBondEnergy () {return _bondE;}; + G4int GetOrbitNumber () {return _orbitE;}; + G4bool IsAGamma() {return _aGamma;}; + private: + + G4int _nucleusZ; + G4int _orbitE; + G4double _bondE; + G4bool _aGamma; + G4bool _icm; + G4double _gammaEnergy; G4NuclearLevel _level; G4double _excitation; G4double _gammaCreationTime; - }; #endif + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DummyProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4DummyProbability.hh index 71341e9a1a..71e7139c56 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DummyProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4DummyProbability.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability.hh index 6918509a11..8d7e2b4e71 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability001.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability001.hh index 46d36f8893..3d95c343b0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability001.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability001.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability01.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability01.hh index aa34b63078..1603d7d4c3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability01.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability01.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability10.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability10.hh index 5509922b89..c1ca776690 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability10.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability10.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability100.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability100.hh index 8e7491e0ce..62b1a9e0d5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability100.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability100.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability001.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability001.hh index 6913e1f7d5..4a254b6790 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability001.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability001.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability01.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability01.hh index 294e416206..fea9535a21 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability01.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability01.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability1.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability1.hh index ff86ba6468..2e3003e34e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability1.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability1.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability10.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability10.hh index ef329a6239..d84222b749 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability10.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability10.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability100.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability100.hh index 725d893a8a..4d2609f348 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability100.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability100.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh index e6ea4cc4da..44e8099472 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Evaporation.hh,v 1.10 2002/06/18 16:39:23 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Evaporation.hh,v 1.12 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -39,7 +39,6 @@ class G4VEvaporationFactory; //#define debug -//#define pctest class G4Evaporation : public G4VEvaporation { diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh index 5fe09f2bef..f7b3d0d7ae 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationChannel.hh,v 1.8 2002/01/15 12:23:36 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationChannel.hh,v 1.10 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -43,7 +43,6 @@ #include "G4ParticleTable.hh" #include "G4IonTable.hh" -//#define pctest class G4EvaporationChannel : public G4VEvaporationChannel { diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh index 724c1622cd..7b90032eeb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationFactory.hh,v 1.1 2002/06/06 17:41:23 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationFactory.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh index 94278d3464..edd407f0e1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationGEMFactory.hh,v 1.1 2002/06/06 17:41:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationGEMFactory.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh index 01981ab50f..df29098e93 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationLevelDensityParameter.hh,v 1.7 2001/11/08 10:14:54 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationLevelDensityParameter.hh,v 1.8 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh index b8301894dd..2908908bdd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationProbability.hh,v 1.6 2001/08/01 17:04:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationProbability.hh,v 1.7 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh index c43dfddd7f..4b4a5ae9a3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ExcitationHandler.hh,v 1.9 2002/06/06 17:25:35 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ExcitationHandler.hh,v 1.11 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -57,7 +57,6 @@ #include "G4IonConstructor.hh" //#define debug -//#define pctest class G4ExcitationHandler { @@ -211,8 +210,7 @@ inline void G4ExcitationHandler::SetMaxAandZForFermiBreakUp(G4int anA, G4int aZ) inline void G4ExcitationHandler::SetMinEForMultiFrag(G4double anE) { - // minEForMultiFrag = anE; - minEForMultiFrag = 1.0*GeV; + minEForMultiFrag = anE; } inline const G4int G4ExcitationHandler::GetMaxZ() const diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh index 366587f1de..155ccba570 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMChannel.hh,v 1.1 2002/06/06 17:41:46 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh index 4d24fe359e..8237b511c5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4F17GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:41:47 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4F17GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh index 92490d897a..a9be4bf15e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMProbability.hh,v 1.1 2002/06/06 17:41:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh index 743dfd80c8..7e47a01adf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMChannel.hh,v 1.1 2002/06/06 17:41:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh index 339c9068f3..d099699c97 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4F18GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:41:50 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4F18GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh index 2cc06a0c08..a3ba3a0bd6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMProbability.hh,v 1.1 2002/06/06 17:41:51 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh index f8947b4c9c..8d4a980547 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMChannel.hh,v 1.1 2002/06/06 17:41:52 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh index 6fbc397e9a..5cffcac5bb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4F19GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:41:53 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4F19GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh index b0c4c92ee7..377b0926b1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMProbability.hh,v 1.1 2002/06/06 17:41:55 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh index 0682098edf..7369fd0835 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMChannel.hh,v 1.1 2002/06/06 17:41:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh index 3ed3309785..f917cba6b0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4F20GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:41:57 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4F20GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh index aa2f919687..e576a48f8d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMProbability.hh,v 1.1 2002/06/06 17:41:58 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh index 5475d894f7..6b3fb64c72 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMChannel.hh,v 1.1 2002/06/06 17:42:00 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh index 6794ecb93a..e6d9293629 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4F21GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:42:01 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4F21GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh index 7cb77cce39..6c2d09b0a3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMProbability.hh,v 1.1 2002/06/06 17:42:02 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh index b52df7534a..46850d06b5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiBreakUp.hh,v 1.6 2002/01/15 12:21:53 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiBreakUp.hh,v 1.8 2002/12/12 19:17:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -36,9 +36,6 @@ #include "G4ParticleTable.hh" #include "G4IonTable.hh" -//#define pctest - - class G4FermiBreakUp : public G4VFermiBreakUp { public: diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh index e7ec3911ed..e51e225d49 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiConfiguration.hh,v 1.9 2002/06/06 17:26:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiConfiguration.hh,v 1.10 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh index 6e37612df6..dfaeb6601f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiConfigurationList.hh,v 1.6 2001/08/01 17:04:27 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiConfigurationList.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh index d8bc72453a..4da720a485 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionBarrier.hh,v 1.6 2001/11/08 10:15:16 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionBarrier.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh index 38ec82d47e..4e5e6925db 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionLevelDensityParameter.hh,v 1.6 2001/08/01 17:04:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionLevelDensityParameter.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh index bb3f5cf403..6b79679271 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionParameters.hh,v 1.6 2001/08/01 17:04:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionParameters.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh index baff564ce5..33a9bb8235 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionProbability.hh,v 1.6 2001/08/01 17:04:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionProbability.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh index c9c0a3ead3..7bf9b2dc1b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GEMChannel.hh,v 1.2 2002/06/07 15:30:54 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GEMChannel.hh,v 1.3 2002/11/12 02:10:57 larazb Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -44,7 +44,6 @@ #include "G4IonTable.hh" //#define debug -//#define pctest class G4GEMChannel : public G4VEvaporationChannel { diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh index c9b3789895..174b963fac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4GEMCoulombBarrierHE.hh,v 1.1 2002/06/06 17:43:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GEMCoulombBarrierHE.hh,v 1.2 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh index f83acbe7ab..cea3e62f04 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He3CoulombBarrier.hh,v 1.3 2001/08/01 17:04:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He3CoulombBarrier.hh,v 1.4 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh index ce0630a252..c46a960273 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He3EvaporationChannel.hh,v 1.4 2001/08/01 17:04:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He3EvaporationChannel.hh,v 1.5 2002/12/12 19:17:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh index 5a558f79e1..c8c2b52d20 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He3EvaporationProbability.hh,v 1.4 2001/08/01 17:04:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He3EvaporationProbability.hh,v 1.5 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh index da7040db80..2d51d6e273 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMChannel.hh,v 1.1 2002/06/06 17:43:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh index e95ddf5476..5535c57322 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMProbability.hh,v 1.1 2002/06/06 17:43:09 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh index 1f7db33fd2..3ac5b49465 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He5FermiFragment.hh,v 1.5 2001/08/01 17:04:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He5FermiFragment.hh,v 1.6 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh index f463ee3ee2..390bcb8c08 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMChannel.hh,v 1.1 2002/06/06 17:43:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh index 806bb5eff2..efa562cb23 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He6GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:43:11 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He6GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh index 12403f388c..0a72242501 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMProbability.hh,v 1.1 2002/06/06 17:43:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh index 9e836821e7..bd74b805b6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMChannel.hh,v 1.1 2002/06/06 17:43:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh index 91fd9b5395..4283adbce0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He8GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:43:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He8GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh index eb57363167..1df9b4b0d0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMProbability.hh,v 1.1 2002/06/06 17:43:16 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh index 2e9a14dfba..d03cb82af7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Li5FermiFragment.hh,v 1.5 2001/08/01 17:04:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Li5FermiFragment.hh,v 1.6 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh index fb0c5c27fe..f37a711d4a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMChannel.hh,v 1.1 2002/06/06 17:48:45 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh index 308618b631..8692c4bd76 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Li6GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:48:47 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Li6GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh index 3b8550c170..8d4643afcf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMProbability.hh,v 1.1 2002/06/06 17:48:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh index 743fb5d445..762e4bb7d6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMChannel.hh,v 1.1 2002/06/06 17:48:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh index 83331d1f3b..40cc5fabac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Li7GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:48:50 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Li7GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh index bbc3bf6402..b56042c660 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMProbability.hh,v 1.1 2002/06/06 17:48:51 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh index 5fa955d4b0..e65f1c867e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMChannel.hh,v 1.1 2002/06/06 17:48:52 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh index f5dc180917..9901347efc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Li8GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:48:53 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Li8GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh index ac3c75cddc..e4858c6d7a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMProbability.hh,v 1.1 2002/06/06 17:48:54 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh index 0645101483..93e378fd65 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMChannel.hh,v 1.1 2002/06/06 17:48:55 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh index dddab3bb38..8c4b76fa43 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Li9GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:48:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Li9GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh index aff4ab4d50..447c80f982 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMProbability.hh,v 1.1 2002/06/06 17:48:57 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh index 3b6d625ca7..aa779032a9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMChannel.hh,v 1.1 2002/06/06 17:48:59 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh index 67c95c0868..c3be5ad710 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg22GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:00 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg22GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh index 616d78c7f4..29ec442092 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMProbability.hh,v 1.1 2002/06/06 17:49:01 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh index 162605dd16..4af1bef12b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMChannel.hh,v 1.1 2002/06/06 17:49:02 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh index aab050dc19..8e6ac2fcf1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg23GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:03 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg23GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh index a4fb199faf..9044d7d4b9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMProbability.hh,v 1.1 2002/06/06 17:49:04 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh index 90d969415c..03b4112de1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMChannel.hh,v 1.1 2002/06/06 17:49:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh index c18753d2de..5c747ccf99 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg24GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg24GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh index b8a9c97f7b..c156fdb7fe 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMProbability.hh,v 1.1 2002/06/06 17:49:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh index 2dc7472d64..741762a144 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMChannel.hh,v 1.1 2002/06/06 17:49:09 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh index 2281d93192..f162809a91 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg25GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg25GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh index 76bf6776dc..65ad023218 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMProbability.hh,v 1.1 2002/06/06 17:49:11 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh index 0c935cef8a..3939098bdd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMChannel.hh,v 1.1 2002/06/06 17:49:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh index f94d97e7bc..fd32b9a250 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg26GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:13 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg26GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh index fddd05aed9..dc2108fd50 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMProbability.hh,v 1.1 2002/06/06 17:49:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh index 8312a20fe9..c14521b221 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMChannel.hh,v 1.1 2002/06/06 17:49:16 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh index af3d3edc0d..aad75c5fe0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg27GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:17 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg27GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh index 783a7a5dca..859ab853b3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMProbability.hh,v 1.1 2002/06/06 17:49:18 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh index 2f8880e8d1..2ff8a4d1c6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMChannel.hh,v 1.1 2002/06/06 17:49:19 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh index 25d352703e..a3d5d61702 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Mg28GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:20 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Mg28GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh index 73b37ec61b..0acd9d05af 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMProbability.hh,v 1.1 2002/06/06 17:49:21 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh index 7c0b0ee1fd..25f7a851fc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMChannel.hh,v 1.1 2002/06/06 17:49:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh index c4532036ba..e04a033912 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4N12GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4N12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh index 8f4074c9e2..faf9f31a3e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMProbability.hh,v 1.1 2002/06/06 17:49:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh index 604914e96a..57c47dc254 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMChannel.hh,v 1.1 2002/06/06 17:49:28 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh index 0ba12d64ee..1481234f57 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4N13GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:50 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4N13GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh index 5a3df4bd95..5790086146 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMProbability.hh,v 1.1 2002/06/06 17:49:51 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh index 0eebe5c7a1..c0882142f9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMChannel.hh,v 1.1 2002/06/06 17:49:52 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh index 732cd904aa..63449aff4e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4N14GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:54 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4N14GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh index 57051a1785..f46f1b601e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMProbability.hh,v 1.1 2002/06/06 17:49:55 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh index 6356c137b9..b2faa32afd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMChannel.hh,v 1.1 2002/06/06 17:49:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh index fbde2778ee..2506a1b1f3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4N15GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:49:57 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4N15GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh index 19cfda4772..bbde538bd2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMProbability.hh,v 1.1 2002/06/06 17:49:58 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh index bd5540a31b..f50eed3cbd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMChannel.hh,v 1.1 2002/06/06 17:49:59 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh index 371781112c..4fcba715e2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4N16GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:00 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4N16GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh index 587d580d9b..a1a3d55d64 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMProbability.hh,v 1.1 2002/06/06 17:50:01 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh index 0df6bdc389..eb18ab43f4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMChannel.hh,v 1.1 2002/06/06 17:50:02 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh index 8851714c1f..31241c69dc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4N17GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:03 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4N17GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh index 0b57e30a94..8cd2a5e222 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMProbability.hh,v 1.1 2002/06/06 17:50:04 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh index 61e7fb61f6..f52ad60a24 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMChannel.hh,v 1.1 2002/06/06 17:50:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh index d1cfe1768d..92e499f636 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Na21GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Na21GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh index 9524ae4e8f..a50d0ba7b9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMProbability.hh,v 1.1 2002/06/06 17:50:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh index 7577b098f6..b23c01b9af 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMChannel.hh,v 1.1 2002/06/06 17:50:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh index e000e653e7..e746d5a6ee 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Na22GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:09 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Na22GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh index 44c9441746..15ff251c7b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMProbability.hh,v 1.1 2002/06/06 17:50:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh index c458900198..2c9bfc2fcc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMChannel.hh,v 1.1 2002/06/06 17:50:11 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh index 11b279c8ab..7d960582c6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Na23GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Na23GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh index 29ae710398..d792a5f58c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMProbability.hh,v 1.1 2002/06/06 17:50:13 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh index d719bacdda..b2a91da882 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMChannel.hh,v 1.1 2002/06/06 17:50:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh index b58ce13d33..d2c64e0bbc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Na24GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Na24GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh index 60c50fea84..e804f0e668 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMProbability.hh,v 1.1 2002/06/06 17:50:40 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh index c491593d83..5d086b02b4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMChannel.hh,v 1.1 2002/06/06 17:50:41 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh index dbffcd7d8c..bc8479e58a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Na25GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:42 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Na25GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh index b977271bde..b599da7d9f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMProbability.hh,v 1.1 2002/06/06 17:50:43 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh index 03d4cd51ca..bbd46ad229 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMChannel.hh,v 1.1 2002/06/06 17:50:45 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh index 1f874cafa1..8ebdae33c1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne18GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:46 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne18GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh index a158e76415..ea68b8e856 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMProbability.hh,v 1.1 2002/06/06 17:50:47 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh index 59680b6fbc..20cebb1d0e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMChannel.hh,v 1.1 2002/06/06 17:50:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh index 4ff875203f..2a6e80035b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne19GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:50 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne19GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh index be81d6bfc0..88d543b2e6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMProbability.hh,v 1.1 2002/06/06 17:50:51 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh index d10485d992..bf0035ade0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMChannel.hh,v 1.1 2002/06/06 17:50:52 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh index 964d28b4a6..88e50d3d03 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne20GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:53 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne20GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh index c03b17892d..dfeda1a857 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMProbability.hh,v 1.1 2002/06/06 17:50:54 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh index 5334fb3a2f..7570424dfb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMChannel.hh,v 1.1 2002/06/06 17:50:55 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh index adf1cec6df..22d73027d3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne21GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne21GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh index 651646041d..924ab80e9e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMProbability.hh,v 1.1 2002/06/06 17:50:57 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh index bfada8e6c4..1a45900cda 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMChannel.hh,v 1.1 2002/06/06 17:50:58 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh index 20b4e7b8de..e74a4456a7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne22GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:50:59 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne22GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh index f9d245462a..09a9fd4f32 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMProbability.hh,v 1.1 2002/06/06 17:51:00 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh index 4144bbfc59..6dcc1595e6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMChannel.hh,v 1.1 2002/06/06 17:51:01 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh index d645ebafa0..d6f101b67e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne23GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:51:02 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne23GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh index f9115bfb76..37ec28c7b4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMProbability.hh,v 1.1 2002/06/06 17:51:04 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh index e62c65e5c8..529d26282b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMChannel.hh,v 1.1 2002/06/06 17:51:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh index 1797c99095..9f494bbe2d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Ne24GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:51:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Ne24GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh index 18a8fb1f10..84ffbf0317 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMProbability.hh,v 1.1 2002/06/06 17:51:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh index 02ad003e6f..2e3fd997fe 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronCoulombBarrier.hh,v 1.3 2001/08/01 17:04:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronCoulombBarrier.hh,v 1.4 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh index dbe95a9c8f..805e550450 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronEvaporationChannel.hh,v 1.4 2001/08/01 17:04:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronEvaporationChannel.hh,v 1.5 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh index 5789aee7ec..7c7b8aa760 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronEvaporationProbability.hh,v 1.4 2001/08/01 17:04:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronEvaporationProbability.hh,v 1.5 2002/12/12 19:17:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh index 89da28e784..fb63c48999 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMChannel.hh,v 1.1 2002/06/06 17:51:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh index 513b6b5c63..15949e3380 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMProbability.hh,v 1.1 2002/06/06 17:51:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh index 86bf71830d..c19ab53002 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh @@ -14,16 +14,17 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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 file // +// For information related to this code contact: +// CERN, IT Division, ASD group // CERN, Geneva, Switzerland // // File name: G4NuclearLevel @@ -33,6 +34,9 @@ // Creation date: 25 October 1998 // // Modifications: +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// Added K->N+ internal conversion coefficiencies and their access +// functions // // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added half-life, angular momentum, parity, emissioni type @@ -44,6 +48,7 @@ #define G4NUCLEARLEVEL_HH #include "globals.hh" +#include "G4NuclearLevel.hh" #include "G4DataVector.hh" class G4NuclearLevel @@ -53,7 +58,13 @@ public: G4NuclearLevel(const G4double energy, const G4double halfLife, const G4double angularMomentum, const G4DataVector& eGamma, - const G4DataVector& wGamma, const G4DataVector& polarities); + const G4DataVector& wGamma, const G4DataVector& polarities, + const G4DataVector& kCC, const G4DataVector& l1CC, + const G4DataVector& l2CC, const G4DataVector& l3CC, + const G4DataVector& m1CC, const G4DataVector& m2CC, + const G4DataVector& m3CC, const G4DataVector& m4CC, + const G4DataVector& m5CC, const G4DataVector& nPlusCC, + const G4DataVector& totalCC); G4NuclearLevel() {}; ~G4NuclearLevel(); @@ -68,6 +79,28 @@ public: const G4DataVector& GammaPolarities() const; + const G4DataVector& KConvertionProbabilities() const; + + const G4DataVector& L1ConvertionProbabilities() const; + + const G4DataVector& L2ConvertionProbabilities() const; + + const G4DataVector& L3ConvertionProbabilities() const; + + const G4DataVector& M1ConvertionProbabilities() const; + + const G4DataVector& M2ConvertionProbabilities() const; + + const G4DataVector& M3ConvertionProbabilities() const; + + const G4DataVector& M4ConvertionProbabilities() const; + + const G4DataVector& M5ConvertionProbabilities() const; + + const G4DataVector& NPlusConvertionProbabilities() const; + + const G4DataVector& TotalConvertionProbabilities() const; + G4double Energy() const; G4double AngularMomentum() const; @@ -97,6 +130,18 @@ private: G4DataVector _prob; G4DataVector _cumProb; G4DataVector _polarities; + G4DataVector _kCC; + G4DataVector _l1CC; + G4DataVector _l2CC; + G4DataVector _l3CC; + G4DataVector _m1CC; + G4DataVector _m2CC; + G4DataVector _m3CC; + G4DataVector _m4CC; + G4DataVector _m5CC; + G4DataVector _nPlusCC; + G4DataVector _totalCC; + G4double _energy; G4double _halfLife; G4double _angularMomentum; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh index 670957ab32..58f9b810c1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -24,15 +24,20 @@ // ------------------------------------------------------------------- // GEANT 4 class file // +// For information related to this code contact: +// CERN, IT Division, ASD group // CERN, Geneva, Switzerland // -// File name: G4NuclearLevelManager +// File name: G4NuclearLevel // // Author: Maria Grazia Pia (pia@genova.infn.it) // // Creation date: 25 October 1998 // // Modifications: +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// Added K->N+ internal conversion coefficiencies and their access +// functions // // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added half-life, angular momentum, parity, emissioni type @@ -101,6 +106,17 @@ private: G4double _polarity; G4double _halfLife; G4double _angularMomentum; + G4double _kCC; + G4double _l1CC; + G4double _l2CC; + G4double _l3CC; + G4double _m1CC; + G4double _m2CC; + G4double _m3CC; + G4double _m4CC; + G4double _m5CC; + G4double _nPlusCC; + G4double _totalCC; }; #endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh index d65629bc86..6bb537f402 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMChannel.hh,v 1.1 2002/06/06 17:51:55 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh index 2fbd500214..fdcd476240 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O14GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:51:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O14GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh index 1b8753ebe4..26d3cb2b14 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMProbability.hh,v 1.1 2002/06/06 17:51:58 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh index 1f65771c65..15b5706d97 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMChannel.hh,v 1.1 2002/06/06 17:51:59 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh index 9680d31027..f9e5bff67a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O15GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:52:00 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O15GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh index 88614b8fc6..e6eba61e25 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMProbability.hh,v 1.1 2002/06/06 17:52:02 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh index 3330e92e83..9f58325f82 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMChannel.hh,v 1.1 2002/06/06 17:52:03 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh index 70616b4496..7ab83d1b5e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O16GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:52:04 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O16GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh index 26cd072c76..03f10390a2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMProbability.hh,v 1.1 2002/06/06 17:52:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh index a9a8e40fbf..071a4341fa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMChannel.hh,v 1.1 2002/06/06 17:52:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh index 64b1adc70f..115f4662ed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O17GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:52:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O17GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh index b8cf60cdc6..3011094cd5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMProbability.hh,v 1.1 2002/06/06 17:52:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh index 08a7d7d876..40b999217d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMChannel.hh,v 1.1 2002/06/06 17:52:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh index af94623fd9..ff2457154e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O18GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:52:11 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O18GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh index be091a0c87..ed310d9a77 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMProbability.hh,v 1.1 2002/06/06 17:52:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh index b1fd24545f..def0771c3a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMChannel.hh,v 1.1 2002/06/06 17:52:13 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh index 16dd05d8cb..0839cd8b89 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O19GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:52:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O19GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh index 1b01914bde..2cb23d61e0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMProbability.hh,v 1.1 2002/06/06 17:52:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh index 73a134a835..73938f5f1f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMChannel.hh,v 1.1 2002/06/06 17:52:16 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh index b60f5a2fd8..0cd8d883af 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4O20GEMCoulombBarrier.hh,v 1.1 2002/06/06 17:52:17 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4O20GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh index 7bdb89beca..8304c72bf7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMProbability.hh,v 1.1 2002/06/06 17:52:19 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh index 15b7f19616..e7f56ed1c1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PairingCorrection.hh,v 1.5 2002/01/15 12:12:24 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PairingCorrection.hh,v 1.6 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh index 1935200dd6..1a7faa0598 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4PhotonEvaporation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4PhotonEvaporation.hh index 48ef2773ca..00173b2e81 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4PhotonEvaporation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4PhotonEvaporation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -22,18 +22,38 @@ // // // ------------------------------------------------------------------- -// GEANT 4 class file +// GEANT 4 class file // // CERN, Geneva, Switzerland // // File name: G4PhotonEvaporation // // Author: Maria Grazia Pia (pia@genova.infn.it) -// +// // Creation date: 23 October 1998 // -// Modifications: -// +// Modifications: +// +// 18 October 2002, Fan Lei (flei@space.qinetiq.com) +// +// Implementation of Internal Convertion process in discrete deexcitation +// The following public methods have been added. +// +// void SetICM (G4bool); +// void RDMForced(G4bool); +// void SetMaxHalfLife(G4double) ; +// void SetEOccupancy( G4ElectronOccupancy eOccupancy) ; +// G4ElectronOccupancy GetEOccupancy () ; +// void SetARM (G4bool val) {_applyARM = val;} ; +// G4int GetVacantShellNumber () { return _vShellNumber;}; +// +// and the following priivate menbers +// +// G4ElectronOccupancy _eOccupancy; +// G4int _vShellNumber; +// +// G4bool _applyARM; +// // ------------------------------------------------------------------- #ifndef G4PHOTONEVAPORATION_HH @@ -44,58 +64,78 @@ #include "G4VEvaporationChannel.hh" #include "G4VEmissionProbability.hh" #include "G4VGammaDeexcitation.hh" +#include "G4ElectronOccupancy.hh" //#define debug class G4Fragment; -class G4PhotonEvaporation : public G4VPhotonEvaporation, public G4VEvaporationChannel -{ +class G4PhotonEvaporation : public G4VPhotonEvaporation, public G4VEvaporationChannel { public: - G4PhotonEvaporation(); + G4PhotonEvaporation(); - virtual ~G4PhotonEvaporation(); + virtual ~G4PhotonEvaporation(); + + virtual G4FragmentVector * BreakItUp(const G4Fragment & nucleus); + + virtual void Initialize(const G4Fragment & fragment); + + virtual G4FragmentVector * BreakUp(const G4Fragment & nucleus); + + virtual G4double GetEmissionProbability() const; + + virtual void SetEmissionStrategy(G4VEmissionProbability * probAlgorithm); + + void SetVerboseLevel(G4int verbose); + + void SetICM (G4bool); + + void RDMForced (G4bool); - virtual G4FragmentVector* BreakItUp(const G4Fragment& nucleus); + void SetMaxHalfLife(G4double) ; + + void SetEOccupancy( G4ElectronOccupancy eOccupancy) ; - virtual void Initialize(const G4Fragment& fragment); + void SetARM (G4bool val) {_applyARM = val;} ; - virtual G4FragmentVector* BreakUp(const G4Fragment& nucleus); + G4ElectronOccupancy GetEOccupancy () { return _eOccupancy;} ; + + G4int GetVacantShellNumber () { return _vShellNumber;}; - virtual G4double GetEmissionProbability() const; +private: - virtual void SetEmissionStrategy(G4VEmissionProbability* probAlgorithm); + G4int _verbose; + G4bool _myOwnProbAlgorithm; + G4VEmissionProbability * _probAlgorithm; + G4VGammaDeexcitation * _discrDeexcitation; + G4VGammaDeexcitation * _contDeexcitation; + // G4VGammaDeexcitation * _cdDeexcitation; - void SetVerboseLevel(G4int verbose); + G4ElectronOccupancy _eOccupancy; + G4int _vShellNumber; -private: + G4Fragment _nucleus; + G4double _gammaE; + G4bool _applyARM; - G4int _verbose; - G4bool _myOwnProbAlgorithm; - G4VEmissionProbability* _probAlgorithm; - G4VGammaDeexcitation* _discrDeexcitation; - G4VGammaDeexcitation* _contDeexcitation; - G4VGammaDeexcitation* _cdDeexcitation; - G4Fragment _nucleus; - G4double _gammaE; + G4PhotonEvaporation(const G4PhotonEvaporation & right); - G4PhotonEvaporation(const G4PhotonEvaporation &right); - - const G4PhotonEvaporation& operator=(const G4PhotonEvaporation &right); - - // MGP - Check == and != multiple inheritance... must be a mess! - G4bool operator==(const G4PhotonEvaporation &right) const; - G4bool operator!=(const G4PhotonEvaporation &right) const; + const G4PhotonEvaporation & operator = (const G4PhotonEvaporation & right); + // MGP - Check == and != multiple inheritance... must be a mess! + G4bool operator == (const G4PhotonEvaporation & right) const; + G4bool operator != (const G4PhotonEvaporation & right) const; #ifdef debug - void CheckConservation(const G4Fragment & theInitialState, - G4FragmentVector * Result) const; + void CheckConservation(const G4Fragment & theInitialState, G4FragmentVector * Result) const; #endif - + }; #endif + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh index 1191c62967..9ef20f9fe3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonCoulombBarrier.hh,v 1.3 2001/08/01 17:04:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonCoulombBarrier.hh,v 1.4 2002/12/12 19:17:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh index e510ffd750..57ff953026 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonEvaporationChannel.hh,v 1.4 2001/08/01 17:04:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonEvaporationChannel.hh,v 1.5 2002/12/12 19:17:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh index 2103104838..717c7be69c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonEvaporationProbability.hh,v 1.4 2001/08/01 17:04:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonEvaporationProbability.hh,v 1.5 2002/12/12 19:17:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh index 740edfd03e..533e1babfa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMChannel.hh,v 1.1 2002/06/06 17:53:13 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh index 29ba9de5c7..a1635cdb08 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMProbability.hh,v 1.1 2002/06/06 17:53:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4PtrLevelVector.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4PtrLevelVector.hh index e02e0722e1..7316f916b9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4PtrLevelVector.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4PtrLevelVector.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.hh index 1867c69350..e22fdc2087 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.icc b/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.icc index 1644f95197..948fb439f0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.icc +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.icc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh index 42c3432924..c2dbaf1443 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ShellCorrection.hh,v 1.1 2001/11/08 10:09:40 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ShellCorrection.hh,v 1.2 2002/12/12 19:17:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh index c3e3169cc6..71dcd1f3d2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Solver.hh,v 1.6 2002/06/06 17:27:04 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Solver.hh,v 1.7 2002/12/12 19:17:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc b/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc index ee6dcaba5e..5cfb528861 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh index e78c4da1ec..469e2b4fff 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StableFermiFragment.hh,v 1.5 2001/08/01 17:04:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StableFermiFragment.hh,v 1.6 2002/12/12 19:17:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh index db224e8e7a..132a073144 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMF.hh,v 1.7 2002/01/15 12:18:42 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMF.hh,v 1.9 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -42,9 +42,6 @@ #include "G4IonTable.hh" #include "Randomize.hh" - -//#define pctest - class G4StatMF : public G4VMultiFragmentation { public: diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh index 1ed34c1001..bd3d68196c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFChannel.hh,v 1.8 2002/06/06 17:28:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFChannel.hh,v 1.9 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh index 3922fd885d..25d2915152 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFFragment.hh,v 1.8 2002/06/07 15:30:55 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFFragment.hh,v 1.9 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh index 14d86e059d..92318c6009 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroBiNucleon.hh,v 1.6 2001/08/01 17:04:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroBiNucleon.hh,v 1.7 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh index 92aac9927d..a4d73eac31 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroChemicalPotential.hh,v 1.7 2002/06/18 14:13:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroChemicalPotential.hh,v 1.8 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh index db13c3d5ce..1c69806da0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroMultiNucleon.hh,v 1.5 2001/08/01 17:04:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroMultiNucleon.hh,v 1.6 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh index 1b5d4f82f1..a228ec481c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroMultiplicity.hh,v 1.7 2002/06/18 14:13:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroMultiplicity.hh,v 1.8 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh index c4dc3cc167..3838ef8510 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroNucleon.hh,v 1.7 2001/10/05 16:13:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroNucleon.hh,v 1.8 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh index bf4779f418..b9991ecb49 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroTemperature.hh,v 1.8 2001/10/05 16:13:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroTemperature.hh,v 1.9 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh index cc5e979204..f85920a700 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroTetraNucleon.hh,v 1.6 2001/08/01 17:04:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroTetraNucleon.hh,v 1.7 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh index 98289dc7a2..8785642609 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroTriNucleon.hh,v 1.6 2001/08/01 17:04:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroTriNucleon.hh,v 1.7 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh index cc8ca269bd..7a23b6e9da 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroCanonical.hh,v 1.10 2002/06/06 17:29:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroCanonical.hh,v 1.11 2002/12/12 19:17:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh index 38a04c5e38..c7cbd1c898 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMicroManager.hh,v 1.6 2002/06/06 17:29:23 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMicroManager.hh,v 1.7 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh index 52a384dd19..e8fed35742 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMicroPartition.hh,v 1.9 2002/06/18 14:13:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMicroPartition.hh,v 1.10 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh index eac25a976a..9290411f5e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMicroCanonical.hh,v 1.9 2002/06/18 14:13:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMicroCanonical.hh,v 1.10 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh index d1071146b7..9f92115efa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFParameters.hh,v 1.6 2002/06/06 17:30:01 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFParameters.hh,v 1.7 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh index 9921d8d6c1..082fbd9880 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonCoulombBarrier.hh,v 1.4 2001/08/01 17:04:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonCoulombBarrier.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh index 93512e2632..6f26910aba 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonEvaporationChannel.hh,v 1.4 2001/08/01 17:04:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonEvaporationChannel.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh index d6ce500be9..3beea0eb0a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonEvaporationProbability.hh,v 1.4 2001/08/01 17:04:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonEvaporationProbability.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh index 48dbddf772..24eec01b2d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMChannel.hh,v 1.1 2002/06/06 17:53:47 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh index 70797b1b16..5d6a4dbb9b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMProbability.hh,v 1.1 2002/06/06 17:53:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh index 0dbb8117fb..f123ac90a6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4UnstableFermiFragment.hh,v 1.7 2001/10/22 11:52:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnstableFermiFragment.hh,v 1.8 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh index 581652be35..45c83c168f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VCoulombBarrier.hh,v 1.4 2001/08/01 17:04:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCoulombBarrier.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh index b4629967b5..c1ecc4b5c4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEmissionProbability.hh,v 1.6 2001/08/01 17:04:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEmissionProbability.hh,v 1.7 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh index eb7350d910..214424bbb8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEvaporation.hh,v 1.5 2001/08/01 17:04:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEvaporation.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) written from G4Evaporation.hh (May 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh index f203c567a3..9921f98c48 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEvaporationChannel.hh,v 1.6 2001/08/01 17:04:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEvaporationChannel.hh,v 1.7 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh index ad7bbff734..751101180c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEvaporationFactory.hh,v 1.2 2002/06/18 14:13:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEvaporationFactory.hh,v 1.3 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh index bbd60d2c6f..e8f4e2d43f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VFermiBreakUp.hh,v 1.5 2001/08/01 17:04:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VFermiBreakUp.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh index d417d57009..6b56d234c4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VFermiFragment.hh,v 1.5 2001/08/01 17:04:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VFermiFragment.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh index a076234a96..2c2675e797 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VFissionBarrier.hh,v 1.5 2001/08/01 17:04:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VFissionBarrier.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaDeexcitation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaDeexcitation.hh index 090dd4aa06..87fb049df4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaDeexcitation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaDeexcitation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -22,21 +22,35 @@ // // // ------------------------------------------------------------------- -// GEANT 4 class file +// GEANT 4 class file // // CERN, Geneva, Switzerland // // File name: G4VGammaDeexcitation // // Author: Maria Grazia Pia (pia@genova.infn.it) -// +// // Creation date: 23 October 1998 // -// Modifications: -// +// Modifications: +// +// 18 October 2002, F. Lei +// Added GetVaccantSN() and _vSN in order to link to ARM in low-e em +// _vSN is updated in UpdateElectron() +// Added SetVaccantSN(). It is need to to re-set _vSN after each +// IC happened. +// +// 8 March 2002, Fan Lei (flei@space.qinetiq.com) +// Added SetEO () , GetEO(), UpdateElectrons() to allow the assignment +// and modification of electron configuration. +// +// 21 Nov 2001, Fan Lei (flei@space.qinetiq.com) +// Modified GenerateGamma() and UpdateUncleus() for implementation +// of Internal Conversion processs +// // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added creation time evaluation for products of evaporation -// +// // ------------------------------------------------------------------- #ifndef G4VGAMMADEEXCITATION_HH @@ -46,53 +60,60 @@ #include "G4VGammaTransition.hh" #include "G4Fragment.hh" #include "G4FragmentVector.hh" +#include "G4ElectronOccupancy.hh" -class G4VGammaDeexcitation -{ +class G4VGammaDeexcitation { public: - G4VGammaDeexcitation(); + G4VGammaDeexcitation(); - virtual ~G4VGammaDeexcitation(); + virtual ~G4VGammaDeexcitation(); + + virtual G4VGammaTransition * CreateTransition() = 0; + virtual G4bool CanDoTransition() const = 0; + + // Single gamma transition + virtual G4FragmentVector * DoTransition(); + + // Chain of gamma transitions + virtual G4FragmentVector * DoChain(); + + virtual G4Fragment * GenerateGamma(); + + virtual const G4Fragment & GetNucleus() const; + + virtual void SetNucleus(const G4Fragment & nucleus); + + virtual void SetVerboseLevel(G4int verbose); + + void SetEO(G4ElectronOccupancy eo) { _electronO = eo; }; + void SetVaccantSN( G4int val ) { _vSN = val;}; - virtual G4VGammaTransition* CreateTransition() = 0; - virtual G4bool CanDoTransition() const = 0; - - // Single gamma transition - virtual G4FragmentVector* DoTransition(); - - // Chain of gamma transitions - virtual G4FragmentVector* DoChain(); - - virtual G4Fragment* GenerateGamma(); - - virtual const G4Fragment& GetNucleus() const; - - virtual void SetNucleus(const G4Fragment& nucleus); - - virtual void SetVerboseLevel(G4int verbose); - - + G4ElectronOccupancy GetEO() { return _electronO; }; + G4int GetVacantSN() {return _vSN;}; protected: - void Initialize(); - void UpdateNucleus(const G4Fragment* gamma); - void Update(); + void Initialize(); + void UpdateNucleus(const G4Fragment * gamma); + void UpdateElectrons (); + void Update(); - G4VGammaTransition* _transition; // Owned pointer - G4int _verbose; + G4VGammaTransition * _transition; // Owned pointer + G4int _verbose; -private: +private: - G4Fragment _nucleus; + G4Fragment _nucleus; + G4ElectronOccupancy _electronO; + G4int _vSN; - G4VGammaDeexcitation(const G4VGammaDeexcitation &right); + G4VGammaDeexcitation(const G4VGammaDeexcitation & right); + + const G4VGammaDeexcitation & operator = (const G4VGammaDeexcitation & right); + G4bool operator == (const G4VGammaDeexcitation & right) const; + G4bool operator != (const G4VGammaDeexcitation & right) const; - const G4VGammaDeexcitation& operator=(const G4VGammaDeexcitation &right); - G4bool operator==(const G4VGammaDeexcitation &right) const; - G4bool operator!=(const G4VGammaDeexcitation &right) const; - }; #endif @@ -102,15 +123,3 @@ private: - - - - - - - - - - - - diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaTransition.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaTransition.hh index 0e05ca90b2..2ba2c3cfb6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaTransition.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaTransition.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -33,7 +33,7 @@ // Creation date: 23 October 1998 // // Modifications: -// +// // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added creation time evaluation for products of evaporation // @@ -56,10 +56,6 @@ public: virtual G4double GetGammaEnergy() = 0; virtual G4double GetGammaCreationTime() = 0; -//-- virtual G4double GammaEnergy() = 0; - -//-- virtual G4double GetEnergyTo() const = 0; - virtual void SetEnergyFrom(const G4double energy) = 0; private: @@ -78,3 +74,8 @@ protected: #endif + + + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh index 6e88c150f6..16b477c4f1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VLevelDensityParameter.hh,v 1.5 2001/08/01 17:04:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VLevelDensityParameter.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh index 5bf2963956..b640e2b6bc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VMultiFragmentation.hh,v 1.6 2001/08/01 17:05:00 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VMultiFragmentation.hh,v 1.7 2002/12/12 19:17:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VPhotonEvaporation.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VPhotonEvaporation.hh index c3c3d8297b..f5bf692724 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VPhotonEvaporation.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VPhotonEvaporation.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh index 4321002d96..cecd94db9e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VStatMFEnsemble.hh,v 1.5 2001/08/01 17:05:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VStatMFEnsemble.hh,v 1.6 2002/12/12 19:17:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh index b861f33b2c..a0021b1f1e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh +++ b/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VStatMFMacroCluster.hh,v 1.7 2001/08/01 17:05:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VStatMFMacroCluster.hh,v 1.8 2002/12/12 19:17:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc index b52a984a6f..025e0dff29 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaCoulombBarrier.cc,v 1.4 2001/08/01 17:05:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaCoulombBarrier.cc,v 1.5 2002/12/12 19:17:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc index fbd7b24d27..3436407ea9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaEvaporationChannel.cc,v 1.4 2001/08/01 17:05:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaEvaporationChannel.cc,v 1.5 2002/12/12 19:17:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc index 26d71c152b..1ff95cadee 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaEvaporationProbability.cc,v 1.4 2001/08/01 17:05:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaEvaporationProbability.cc,v 1.5 2002/12/12 19:17:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc index 5a2ee00b81..3441d13a32 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMChannel.cc,v 1.1 2002/06/06 17:59:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc index 1bd1746cb4..0659f5203f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMProbability.cc,v 1.1 2002/06/06 17:59:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc index 882ac6739e..76da050d92 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMProbability.cc,v 1.1 2002/06/06 17:59:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc index 80586f8b31..b27dc81887 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMProbability.cc,v 1.1 2002/06/06 17:59:09 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc index da60210375..0d431581b5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMProbability.cc,v 1.1 2002/06/06 17:59:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc index f53b3d07d5..5f1dc6fe8b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMProbability.cc,v 1.1 2002/06/06 17:59:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc index 6a858109f1..a218707448 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMProbability.cc,v 1.1 2002/06/06 17:59:13 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc index 23f871c49f..6741f53e0e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4B9FermiFragment.cc,v 1.6 2001/08/01 17:05:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4B9FermiFragment.cc,v 1.7 2002/12/12 19:17:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc index fc99bb6956..b928643cbd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMProbability.cc,v 1.1 2002/06/06 17:59:29 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc index 25013f4d15..88f8106a0f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMProbability.cc,v 1.1 2002/06/06 17:59:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc index 5987da58eb..88633c768f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMProbability.cc,v 1.1 2002/06/06 17:59:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc index 5a949ec1e8..89dc9e4381 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMProbability.cc,v 1.1 2002/06/06 17:59:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc index f2acd5af18..a93c532333 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Be8FermiFragment.cc,v 1.7 2001/08/01 17:05:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Be8FermiFragment.cc,v 1.8 2002/12/12 19:17:18 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc index 733df39c0a..3c022941f7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMProbability.cc,v 1.1 2002/06/06 17:59:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc index f0ab674f06..a9c1572171 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMProbability.cc,v 1.1 2002/06/06 17:59:50 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc index b11744936d..24355315f3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMProbability.cc,v 1.1 2002/06/06 17:59:51 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc index fba1c97cb5..37c3725089 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMProbability.cc,v 1.1 2002/06/06 17:59:52 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc index 514846bff4..39b3ee5652 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMProbability.cc,v 1.1 2002/06/06 17:59:54 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc index 20283bafb1..8719e3864e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMProbability.cc,v 1.1 2002/06/06 17:59:55 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc index 3d69e5b109..cf8e50d862 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMProbability.cc,v 1.1 2002/06/06 17:59:56 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc index c665128b62..4679d7fd9e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMProbability.cc,v 1.1 2002/06/06 17:59:57 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc index e58776fb31..8c66318d34 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronGilbertPairingCorrections.cc,v 1.6 2001/11/08 10:10:23 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronGilbertPairingCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc index f1d5baea70..44ca4ced08 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronGilbertShellCorrections.cc,v 1.6 2001/11/08 10:10:25 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronGilbertShellCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc index 06f1b2fcea..2febf0978a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronShellPlusPairingCorrections.cc,v 1.6 2001/11/08 10:10:26 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronShellPlusPairingCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc index 7183d7cf48..326c0ba472 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronTruranHilfPairingCorrections.cc,v 1.6 2001/11/08 10:10:27 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc index 155d1cc8d1..e5d32ab478 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CameronTruranHilfShellCorrections.cc,v 1.6 2001/11/08 10:10:28 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CameronTruranHilfShellCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc index 82111b9296..f4280fd21d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CompetitiveFission.cc,v 1.11 2002/01/15 12:27:30 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CompetitiveFission.cc,v 1.13 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -219,7 +219,7 @@ G4FragmentVector * G4CompetitiveFission::BreakUp(const G4Fragment & theNucleus) G4Fragment * Fragment2 = new G4Fragment( A2, Z2, FourMomentum2); if (!Fragment2) G4Exception("G4CompetitiveFission::BreakItUp: Can't create Fragment2! "); -#ifdef pctest +#ifdef PRECOMPOUND_TEST Fragment1->SetCreatorModel(G4String("G4CompetitiveFission")); Fragment2->SetCreatorModel(G4String("G4CompetitiveFission")); #endif diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc index c53317d04d..5127b984df 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaDeexcitation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaDeexcitation.cc index 57ab5bbc7f..970036caad 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaDeexcitation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaDeexcitation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaTransition.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaTransition.cc index f21bc5873f..b55956dbb8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaTransition.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaTransition.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc index 1d9989d6ce..ad5f25bb17 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CookPairingCorrections.cc,v 1.1 2001/11/08 10:14:04 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc index 110127e17d..80ebb11c50 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CookShellCorrections.cc,v 1.1 2001/11/08 10:14:05 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc index 2e35545a21..aaa1d45552 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4CoulombBarrier.cc,v 1.5 2001/10/08 17:15:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4CoulombBarrier.cc,v 1.6 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc index 7a0dba9be5..15cc041ff1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronCoulombBarrier.cc,v 1.4 2001/08/01 17:05:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronCoulombBarrier.cc,v 1.5 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc index 884bf1bfda..9c4ae76d76 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronEvaporationChannel.cc,v 1.4 2001/08/01 17:05:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronEvaporationChannel.cc,v 1.5 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc index 5c2b8e66d3..df02879f8a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronEvaporationProbability.cc,v 1.4 2001/08/01 17:05:22 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronEvaporationProbability.cc,v 1.5 2002/12/12 19:17:19 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc index c7f9022948..2bb5a5a750 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMChannel.cc,v 1.1 2002/06/06 18:00:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc index bc0fab65db..70db71280d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMProbability.cc,v 1.1 2002/06/06 18:00:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaDeexcitation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaDeexcitation.cc index 3743b4d5d0..ffeddc841a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaDeexcitation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaDeexcitation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -33,6 +33,17 @@ // Creation date: 23 October 1998 // // Modifications: +// 8 March 2001, Fan Lei (flei@space.qinetiq.com) +// Added the following as part if the IC implementation +// void SetICM(G4bool hl) { _icm = hl; }; +// void SetRDM(G4bool hl) { _rdm = hl; }; +// void SetHL(G4double hl) { _max_hl = hl; }; +// Changed in CreateTransition() from +// return new G4DiscreteGammaTransition(*level); +// To +// return new G4DiscreteGammaTransition(*level,Z); +// Added in CanDoTransition +// if (level->HalfLife() > _max_hl && !_rdm ) canDo = false; // // ------------------------------------------------------------------- @@ -40,8 +51,13 @@ #include "G4DiscreteGammaTransition.hh" #include "G4NuclearLevelManager.hh" +#include "G4ios.hh" +#include "g4std/fstream" +#include "g4std/strstream" -G4DiscreteGammaDeexcitation::G4DiscreteGammaDeexcitation(): _nucleusZ(0),_nucleusA(0) + +G4DiscreteGammaDeexcitation::G4DiscreteGammaDeexcitation(): _nucleusZ(0), + _nucleusA(0), _max_hl(1e-6*second), _icm(false), _rdm(false) { _tolerance = 0.1 * MeV; } @@ -53,8 +69,8 @@ G4DiscreteGammaDeexcitation::~G4DiscreteGammaDeexcitation() {} G4VGammaTransition* G4DiscreteGammaDeexcitation::CreateTransition() { G4Fragment nucleus = GetNucleus(); - G4int A = static_cast(nucleus.GetA()); - G4int Z = static_cast(nucleus.GetZ()); + G4int A = G4int(nucleus.GetA()); + G4int Z = G4int(nucleus.GetZ()); if (_levelManager.IsValid(Z,A)) { @@ -81,7 +97,9 @@ G4VGammaTransition* G4DiscreteGammaDeexcitation::CreateTransition() << "G4DiscreteGammaDeexcitation::CreateTransition - Created from level energy " << level->Energy() << ", excitation is " << excitation << G4endl; - return new G4DiscreteGammaTransition(*level); + G4DiscreteGammaTransition* dtransit = new G4DiscreteGammaTransition(*level,Z); + dtransit->SetICM(_icm); + return dtransit; } else { @@ -110,56 +128,76 @@ G4bool G4DiscreteGammaDeexcitation::CanDoTransition() const G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition - Null transition " << G4endl; - } + } G4Fragment nucleus = GetNucleus(); - - - G4double A = nucleus.GetA(); - G4double Z = nucleus.GetZ(); - if (A <2 || Z<3 || Z>92) - { - canDo = false; - if (_verbose > 0) - G4cout - << "G4DiscreteGammaDeexcitation::CanDoTransition - n/p/H/>U" - << G4endl; - } + if (canDo) { + G4double A = nucleus.GetA(); + G4double Z = nucleus.GetZ(); + if (A <2 || Z<3 || Z>100) + { + canDo = false; + if (_verbose > 0) + G4cout + << "G4DiscreteGammaDeexcitation::CanDoTransition - n/p/H/>U" + << G4endl; + } + } G4double excitation = nucleus.GetExcitationEnergy(); - if (excitation <= 0.) - { - canDo = false; - if (_verbose > 0) - G4cout - << "G4DiscreteGammaDeexcitation::CanDoTransition - Excitation <= 0" - << G4endl; - } - - if (excitation > _levelManager.MaxLevelEnergy() + _tolerance) canDo = false; - if (excitation < _levelManager.MinLevelEnergy() - _tolerance) canDo = false; - // The following is a protection to avoid looping in case of elements with very low - // ensdf levels - if (excitation < _levelManager.MinLevelEnergy() * 0.9) canDo = false; + if (canDo) { + if (excitation <= 0.) + { + canDo = false; + if (_verbose > 0) + G4cout + << "G4DiscreteGammaDeexcitation::CanDoTransition - Excitation <= 0" + << G4endl; + } + + if (excitation > _levelManager.MaxLevelEnergy() + _tolerance) canDo = false; + if (excitation < _levelManager.MinLevelEnergy() - _tolerance) canDo = false; + // The following is a protection to avoid looping in case of elements with very low + // ensdf levels + if (excitation < _levelManager.MinLevelEnergy() * 0.9) canDo = false; + if (_verbose > 0) + { + G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition - Excitation " + << excitation << ", Min-Max are " + << _levelManager.MinLevelEnergy() << " " + << _levelManager.MaxLevelEnergy() << G4endl; + } + } + + if (canDo) { + const G4NuclearLevel* level = _levelManager.NearestLevel(excitation); + if (level != 0) { + if (level->HalfLife() > _max_hl && !_rdm ) canDo = false; + } else { + canDo = false; + } + if (_verbose > 0) + { + G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition - Halflife " + << level->HalfLife() << ", Calling from RDM " + << (_rdm ? " True " : " False ") << " Max-HL = " << _max_hl << G4endl; + } + } if (_verbose > 0) { - G4cout << "G4DiscreteGammaDeexcitation::CanDoTransition - Excitation " - << excitation << ", Min-Max are " - << _levelManager.MinLevelEnergy() << " " - << _levelManager.MaxLevelEnergy() << G4endl; + G4cout <<"G4DiscreteGammaDeexcitation::CanDoTransition - CanDo:" + << (canDo ? " True " : " False ") << G4endl; } - - if (canDo) - { if (_verbose > 0) - G4cout <<"G4DiscreteGammaDeexcitation::CanDoTransition - CanDo" << G4endl; } - // else - // { - // delete _transition; - // _transition = 0; - // } return canDo; } + + + + + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaTransition.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaTransition.cc index 0d3801c4c9..c6e6a15c78 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaTransition.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaTransition.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -26,13 +26,21 @@ // // CERN, Geneva, Switzerland // -// File name: G4ContDiscrGammaTransition +// File name: G4DiscreteGammaTransition // // Author: Maria Grazia Pia (pia@genova.infn.it) // // Creation date: 23 October 1998 // -// Modifications: +// Modifications: +// 09 Sep. 2002, Fan Lei (flei@space.qinetiq.com) +// Added renormalization to determine whether transition leads to +// electron or gamma in SelectGamma() +// +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// i) added G4int _nucleusZ initialise it through the constructor +// ii) modified SelectGamma() to allow the generation of conversion electrons +// iii) added #include G4AtomicShells.hh // // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added creation time evaluation for products of evaporation @@ -42,12 +50,19 @@ #include "G4DiscreteGammaTransition.hh" #include "Randomize.hh" #include "G4RandGeneralTmp.hh" - +#include "G4AtomicShells.hh" G4DiscreteGammaTransition::G4DiscreteGammaTransition(const G4NuclearLevel& level): _gammaEnergy(0.), _level(level), _excitation(0.), _gammaCreationTime(0.) { } +G4DiscreteGammaTransition::G4DiscreteGammaTransition(const G4NuclearLevel& level, G4int Z): + _nucleusZ(Z), _orbitE(-1), _bondE(0.), _aGamma(true), _icm(false), _gammaEnergy(0.), + _level(level), _excitation(0.), _gammaCreationTime(0.) +{ + _verbose = 0; +} + G4DiscreteGammaTransition::~G4DiscreteGammaTransition() { } @@ -60,62 +75,121 @@ void G4DiscreteGammaTransition::SelectGamma() G4int nGammas = _level.NumberOfGammas(); if (nGammas > 0) - { - G4double random = G4UniformRand(); - - G4int iGamma = 0; - for(iGamma=0;iGamma < nGammas;iGamma++) { - if(random <= (_level.GammaCumulativeProbabilities())[iGamma]) - break; - } + G4double random = G4UniformRand(); + + G4int iGamma = 0; + for(iGamma=0;iGamma < nGammas;iGamma++) + { + if(random <= (_level.GammaCumulativeProbabilities())[iGamma]) + break; + } - // Small correction due to the fact that there are mismatches between - // nominal level energies and emitted gamma energies + // Small correction due to the fact that there are mismatches between + // nominal level energies and emitted gamma energies - G4double eCorrection = _level.Energy() - _excitation; + G4double eCorrection = _level.Energy() - _excitation; - _gammaEnergy = (_level.GammaEnergies())[iGamma] - eCorrection; + _gammaEnergy = (_level.GammaEnergies())[iGamma] - eCorrection; -// Warning: the following check is needed to avoid loops: -// Due essentially to missing nuclear levels in data files, it is -// possible that _gammaEnergy is so low as the nucleus doesn't change -// its level after the transition. -// When such case is found, force the full deexcitation of the nucleus. -// -// NOTE: you should force the transition to the next lower level, -// but this change needs a more complex revision of actual design. -// I leave this for a later revision. + // Warning: the following check is needed to avoid loops: + // Due essentially to missing nuclear levels in data files, it is + // possible that _gammaEnergy is so low as the nucleus doesn't change + // its level after the transition. + // When such case is found, force the full deexcitation of the nucleus. + // + // NOTE: you should force the transition to the next lower level, + // but this change needs a more complex revision of actual design. + // I leave this for a later revision. - if (_gammaEnergy < _level.Energy()*10e-5) _gammaEnergy = _excitation; + if (_gammaEnergy < _level.Energy()*10e-5) _gammaEnergy = _excitation; + // now decide whether Internal Coversion electron should be emitted instead + if (_icm) { + random = G4UniformRand() ; + if ( random <= (_level.TotalConvertionProbabilities())[iGamma] + *(_level.GammaWeights())[iGamma] + /((_level.TotalConvertionProbabilities())[iGamma]*(_level.GammaWeights())[iGamma] + +(_level.GammaWeights())[iGamma])) + { + G4int iShell = 9; + random = G4UniformRand() ; + if ( random <= (_level.KConvertionProbabilities())[iGamma]) + { iShell = 0;} + else if ( random <= (_level.L1ConvertionProbabilities())[iGamma]) + { iShell = 1;} + else if ( random <= (_level.L2ConvertionProbabilities())[iGamma]) + { iShell = 2;} + else if ( random <= (_level.L3ConvertionProbabilities())[iGamma]) + { iShell = 3;} + else if ( random <= (_level.M1ConvertionProbabilities())[iGamma]) + { iShell = 4;} + else if ( random <= (_level.M2ConvertionProbabilities())[iGamma]) + { iShell = 5;} + else if ( random <= (_level.M3ConvertionProbabilities())[iGamma]) + { iShell = 6;} + else if ( random <= (_level.M4ConvertionProbabilities())[iGamma]) + { iShell = 7;} + else if ( random <= (_level.M5ConvertionProbabilities())[iGamma]) + { iShell = 8;} + // the following is needed to match the ishell to that used in G4AtomicShells + if ( iShell == 9) { + if ( (_nucleusZ < 28) && (_nucleusZ > 20)) { + iShell--; + } else if ( _nucleusZ == 20 || _nucleusZ == 19 ) { + iShell = iShell -2; + } + } + if (_verbose > 0) + G4cout << "G4DiscreteGammaTransition: _nucleusZ = " <<_nucleusZ + << " , iShell = " << iShell + << " , Shell binding energy = " << G4AtomicShells::GetBindingEnergy(_nucleusZ, iShell) / keV + << " keV " << G4endl; + _bondE = G4AtomicShells::GetBindingEnergy(_nucleusZ, iShell); + _gammaEnergy = _gammaEnergy - _bondE; + _orbitE = iShell; + _aGamma = false ; // emitted is not a gamma now + } + } + + G4double tau = _level.HalfLife() / log(2.0); - } + G4double tMin = 0; + G4double tMax = 10.0 * tau; + // Original code, not very efficent + // G4int nBins = 200; + //G4double sampleArray[200]; - G4double tau = _level.HalfLife() / log(2.0); + // for(G4int i = 0;i 10) -// G4cout << "*---*---* G4DiscreteTransition: _gammaCreationTime = " -// << _gammaCreationTime/second << G4endl; + // new code by Fan Lei + // + random = G4UniformRand() ; + _gammaCreationTime = -(log(random*(exp(-tMax/tau) - exp(-tMin/tau)) + + exp(-tMin/tau))); + // if(_verbose > 10) + // G4cout << "*---*---* G4DiscreteTransition: _gammaCreationTime = " + // << _gammaCreationTime/second << G4endl; + } return; } + +//G4bool G4DiscreteGammaTransition::IsAGamma() +//{ +// return _aGamma; +//} + + G4double G4DiscreteGammaTransition::GetGammaEnergy() { return _gammaEnergy; @@ -136,3 +210,4 @@ void G4DiscreteGammaTransition::SetEnergyFrom(const G4double energy) + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc index 1f992a2056..60da19bf16 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc index 6c1810e84e..cfae6ae771 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc index 4c73bca8ce..c4467897f4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc index d40f67191c..90ede2cce2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc index b63e6be894..442fdf2fc4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc index 33fc888a5b..2bef233664 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc index 4e7dfe6dc4..a4e6ee5738 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc index 9963dacd1b..7ca50db992 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc index 0358501535..7b5ee126ae 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc index b24cf988b1..30f1c958b0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc index db40dfff17..f447742651 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc index 341e21f7d5..bb77385065 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Evaporation.cc,v 1.9 2002/06/18 16:37:57 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Evaporation.cc,v 1.10.4.1 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -178,7 +178,7 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) for (G4FragmentVector::iterator i = theEvaporationResult->begin(); i != theEvaporationResult->end()-1; ++i) { -#ifdef pctest +#ifdef PRECOMPOUND_TEST if ((*i)->GetA() == 0) (*i)->SetCreatorModel(G4String("G4PhotonEvaporation")); #endif theResult->push_back(*(i)); @@ -186,7 +186,7 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) theResidualNucleus = *(theEvaporationResult->back()); delete theEvaporationResult->back(); delete theEvaporationResult; -#ifdef pctest +#ifdef PRECOMPOUND_TEST theResidualNucleus.SetCreatorModel(G4String("ResidualNucleus")); #endif } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc index 9cb4ca7179..29cf0a56e8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationChannel.cc,v 1.12 2002/06/18 16:38:24 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationChannel.cc,v 1.14 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -173,7 +173,7 @@ G4FragmentVector * G4EvaporationChannel::BreakUp(const G4Fragment & theNucleus) EvaporatedMomentum.boost(theNucleus.GetMomentum().boostVector()); G4Fragment * EvaporatedFragment = new G4Fragment(A,Z,EvaporatedMomentum); -#ifdef pctest +#ifdef PRECOMPOUND_TEST EvaporatedFragment->SetCreatorModel(G4String("G4Evaporation")); #endif // ** And now the residual nucleus ** @@ -186,7 +186,7 @@ G4FragmentVector * G4EvaporationChannel::BreakUp(const G4Fragment & theNucleus) ResidualMomentum.boost(theNucleus.GetMomentum().boostVector()); G4Fragment * ResidualFragment = new G4Fragment( AResidual, ZResidual, ResidualMomentum ); -#ifdef pctest +#ifdef PRECOMPOUND_TEST ResidualFragment->SetCreatorModel(G4String("ResidualNucleus")); #endif G4FragmentVector * theResult = new G4FragmentVector; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc index 4116ebef05..0538b45689 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationFactory.cc,v 1.1 2002/06/06 18:00:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationFactory.cc,v 1.2 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc index 2b8e79fbf8..b45dba185f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationGEMFactory.cc,v 1.1 2002/06/06 18:00:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationGEMFactory.cc,v 1.2 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc index 0b420bd232..82d3dc8621 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationLevelDensityParameter.cc,v 1.6 2001/08/01 17:05:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationLevelDensityParameter.cc,v 1.7 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc index ac41df50d0..96af3fa774 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EvaporationProbability.cc,v 1.7 2001/11/08 10:18:25 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EvaporationProbability.cc,v 1.8 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc index de52cfd0c8..f0c03e79c1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -41,7 +41,7 @@ G4ExcitationHandler::G4ExcitationHandler(): - maxZForFermiBreakUp(8),maxAForFermiBreakUp(16),minEForMultiFrag(4.0*MeV), + maxZForFermiBreakUp(1),maxAForFermiBreakUp(1),minEForMultiFrag(4.0*GeV), MyOwnEvaporationClass(true), MyOwnMultiFragmentationClass(true),MyOwnFermiBreakUpClass(true), MyOwnPhotonEvaporationClass(true) { @@ -98,6 +98,7 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn G4int Z = G4int(theInitialState.GetZ()); G4FragmentVector* theTempResult = 0; G4Fragment theExcitedNucleus; +// G4cerr << "Excitation energy in deexcitation"< 4) { @@ -172,6 +173,7 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn } theResultList.clear(); } else { // if A > 4 + theResult = new G4FragmentVector(); theResult->push_back(new G4Fragment(theInitialState)); } @@ -199,7 +201,7 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); ri != theTempResult->rend(); ++ri) { -#ifdef pctest +#ifdef PRECOMPOUND_TEST if ((*ri)->GetA() == 0) (*ri)->SetCreatorModel(G4String("G4PhotonEvaporation")); else @@ -239,7 +241,7 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn -#ifdef pctest +#ifdef PRECOMPOUND_TEST theHandlerPhoton->SetCreatorModel("G4ExcitationHandler"); #endif theResultList.push_back( theHandlerPhoton ); @@ -314,7 +316,7 @@ G4ExcitationHandler::Transform(G4FragmentVector * theFragmentVector) const theNew->SetMomentum(theFragmentMomentum.vect()); theNew->SetTotalEnergy(theFragmentMomentum.e()); theNew->SetFormationTime((*i)->GetCreationTime()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theNew->SetCreatorModel((*i)->GetCreatorModel()); #endif theReactionProductVector->push_back(theNew); diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc index ccc0a579ee..5aa7c9dbf5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMProbability.cc,v 1.1 2002/06/06 18:00:47 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc index a552932675..407e5c99e3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMProbability.cc,v 1.1 2002/06/06 18:00:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc index dc31afc76e..67a81c111d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMProbability.cc,v 1.1 2002/06/06 18:00:50 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc index b56fa28926..b559c57d2f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMProbability.cc,v 1.1 2002/06/06 18:00:51 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc index 5fac39a997..063d129f64 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMProbability.cc,v 1.1 2002/06/06 18:00:53 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc index 6cb764bed8..bfe8d8ddfa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiBreakUp.cc,v 1.7 2002/01/15 12:30:31 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiBreakUp.cc,v 1.9 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -98,7 +98,7 @@ G4FragmentVector * G4FermiBreakUp::BreakItUp(const G4Fragment &theNucleus) // Get the fragments corresponding to chosen configuration. G4FragmentVector * theResult = theConfiguration.GetFragments(theNucleus); -#ifdef pctest +#ifdef PRECOMPOUND_TEST for (G4FragmentVector::iterator i = theResult->begin(); i != theResult->end(); i++) { (*i)->SetCreatorModel("G4FermiBreakUp"); diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc index 553d735c11..0fa591ba55 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiConfiguration.cc,v 1.9 2002/06/06 17:56:29 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiConfiguration.cc,v 1.10 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc index 3cefefb916..ce3708415f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiConfigurationList.cc,v 1.7 2001/08/01 17:05:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiConfigurationList.cc,v 1.8 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc index 3b70c68275..59cf1ebfd5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionBarrier.cc,v 1.6 2001/08/01 17:05:30 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionBarrier.cc,v 1.7 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc index 936e9c9d11..638d359c3b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionLevelDensityParameter.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionLevelDensityParameter.cc,v 1.7 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc index 97e1af1996..a6847bfd2b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionParameters.cc,v 1.8 2002/06/06 17:56:44 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionParameters.cc,v 1.9 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc index a0e7d76765..23b3d3bfa7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FissionProbability.cc,v 1.7 2001/11/08 10:19:31 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FissionProbability.cc,v 1.8 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc index f0dd554b68..8b8e6b8259 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GEMChannel.cc,v 1.2 2002/06/18 16:38:47 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GEMChannel.cc,v 1.3 2002/11/12 02:10:57 larazb Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -164,7 +164,7 @@ G4FragmentVector * G4GEMChannel::BreakUp(const G4Fragment & theNucleus) EvaporatedMomentum.boost(theNucleus.GetMomentum().boostVector()); G4Fragment * EvaporatedFragment = new G4Fragment(A,Z,EvaporatedMomentum); -#ifdef pctest +#ifdef PRECOMPOUND_TEST EvaporatedFragment->SetCreatorModel(G4String("G4Evaporation")); #endif // ** And now the residual nucleus ** @@ -178,7 +178,7 @@ G4FragmentVector * G4GEMChannel::BreakUp(const G4Fragment & theNucleus) G4Fragment * ResidualFragment = new G4Fragment( AResidual, ZResidual, ResidualMomentum ); -#ifdef pctest +#ifdef PRECOMPOUND_TEST ResidualFragment->SetCreatorModel(G4String("ResidualNucleus")); #endif diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc index f2695ab814..d6b606ebb8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4GEMCoulombBarrierHE.cc,v 1.1 2002/06/06 18:01:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GEMCoulombBarrierHE.cc,v 1.2 2002/12/12 19:17:20 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc index fd839b92ec..2d0bc4d173 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He3CoulombBarrier.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He3CoulombBarrier.cc,v 1.5 2002/12/12 19:17:21 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc index bba03f6bb5..5af62d253a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He3EvaporationChannel.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He3EvaporationChannel.cc,v 1.5 2002/12/12 19:17:21 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc index a4a128a6ff..8a481732bb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He3EvaporationProbability.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He3EvaporationProbability.cc,v 1.5 2002/12/12 19:17:21 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc index 2663fa1f7c..57c9021f68 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMChannel.cc,v 1.1 2002/06/06 18:01:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc index f6bfedb59c..3bb78e64b7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMProbability.cc,v 1.1 2002/06/06 18:01:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc index c07545e6db..3a7be61186 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4He5FermiFragment.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4He5FermiFragment.cc,v 1.7 2002/12/12 19:17:21 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc index 8bcea0c336..21e20074af 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMProbability.cc,v 1.1 2002/06/06 18:01:34 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc index 4cfa84f6cd..8e62943a9a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMProbability.cc,v 1.1 2002/06/06 18:01:35 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc index 9ef13b3ddf..da5902b87d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Li5FermiFragment.cc,v 1.6 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Li5FermiFragment.cc,v 1.7 2002/12/12 19:17:21 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc index d47fea4b3d..bf51c09b02 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMProbability.cc,v 1.1 2002/06/06 18:02:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc index b46088e72b..a6048e8e7b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMProbability.cc,v 1.1 2002/06/06 18:02:06 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc index 7c39ce1b8b..dc3b14c74f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMProbability.cc,v 1.1 2002/06/06 18:02:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc index 0fcd326e27..14cdbf800c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMProbability.cc,v 1.1 2002/06/06 18:02:08 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc index 91d7e872c2..7531d801f7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMProbability.cc,v 1.1 2002/06/06 18:02:09 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc index e98271c4c9..c59c3429e6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMProbability.cc,v 1.1 2002/06/06 18:02:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc index dba971ac46..320b6ab659 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMProbability.cc,v 1.1 2002/06/06 18:02:11 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc index 28b4ae36f8..4227a70849 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMProbability.cc,v 1.1 2002/06/06 18:02:12 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc index 8a5aa575ce..b2d1899c8e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMProbability.cc,v 1.1 2002/06/06 18:02:13 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc index 8e524c3c97..44fe75a50d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMProbability.cc,v 1.1 2002/06/06 18:02:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc index 28c162d67d..ad8c608d7b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMProbability.cc,v 1.1 2002/06/06 18:02:15 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc index 247363a60e..d9730f3422 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMProbability.cc,v 1.1 2002/06/06 18:02:16 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc index d76a345e97..0b1d415d08 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMProbability.cc,v 1.1 2002/06/06 18:02:17 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc index 59653f80bf..e64d644958 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMProbability.cc,v 1.1 2002/06/06 18:02:18 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc index fcb3390e56..a5b8100092 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMProbability.cc,v 1.1 2002/06/06 18:02:19 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc index 2ea353dfbf..80dd0158dd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMProbability.cc,v 1.1 2002/06/06 18:02:20 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc index b8360d3816..d54dc6c2ef 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMProbability.cc,v 1.1 2002/06/06 18:02:21 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc index 65c3bf0c53..743384d64e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMProbability.cc,v 1.1 2002/06/06 18:02:22 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc index 82b1b02f03..18f328c054 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMProbability.cc,v 1.1 2002/06/06 18:02:23 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc index dfbfdda819..7fc04db102 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMProbability.cc,v 1.1 2002/06/06 18:02:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc index dfad6fb0fe..bd8cafe903 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMProbability.cc,v 1.1 2002/06/06 18:02:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc index aef364e3ba..2561085c46 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMProbability.cc,v 1.1 2002/06/06 18:02:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc index 43d0b0bb93..e5674bfb84 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMProbability.cc,v 1.1 2002/06/06 18:02:27 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc index 65454a2276..7ced61058a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMProbability.cc,v 1.1 2002/06/06 18:02:28 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc index 8c9e6f31dd..742c773c42 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMProbability.cc,v 1.1 2002/06/06 18:02:29 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc index c7d72a40dd..d27ba5df5d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMProbability.cc,v 1.1 2002/06/06 18:02:30 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc index 3ff86af9d7..a59e43bb31 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMProbability.cc,v 1.1 2002/06/06 18:02:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc index 66f9ee2979..b3644534ac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMProbability.cc,v 1.1 2002/06/06 18:02:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc index f3cd7d0e0c..8d7a6c1eb9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMProbability.cc,v 1.1 2002/06/06 18:02:34 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc index 92f4a43211..27a9dc8cb5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronCoulombBarrier.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronCoulombBarrier.cc,v 1.5 2002/12/12 19:17:21 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc index bca2778a88..036271515d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronEvaporationChannel.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronEvaporationChannel.cc,v 1.5 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc index 471dfd6125..b4d0281fed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronEvaporationProbability.cc,v 1.4 2001/08/01 17:05:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronEvaporationProbability.cc,v 1.5 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc index 2eba89e021..d7c8d06ebe 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMChannel.cc,v 1.1 2002/06/06 18:03:22 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc index 46f43e4fef..ce859edd76 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMProbability.cc,v 1.1 2002/06/06 18:03:23 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc index 90207ec8b2..2250544b65 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -24,6 +24,8 @@ // ------------------------------------------------------------------- // GEANT 4 class file // +// For information related to this code contact: +// CERN, IT Division, ASD group // CERN, Geneva, Switzerland // // File name: G4NuclearLevel @@ -33,6 +35,14 @@ // Creation date: 24 October 1998 // // Modifications: +// +// 09 Sep. 2002, Fan Lei (flei@space.qinetiq.com) +// Added IC probability when calculate the channel probabilities in +// MakeProbabilities(). +// +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// Added K->N+ internal conversion coefficiencies and their access +// functions. // // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added half-life, angular momentum, parity, emissioni type @@ -48,7 +58,14 @@ G4NuclearLevel::G4NuclearLevel(const G4double energy, const G4double halfLife, const G4double angularMomentum, const G4DataVector& eGamma, const G4DataVector& wGamma, - const G4DataVector& polarities) + const G4DataVector& polarities, + const G4DataVector& kCC, const G4DataVector& l1CC, + const G4DataVector& l2CC, const G4DataVector& l3CC, + const G4DataVector& m1CC, const G4DataVector& m2CC, + const G4DataVector& m3CC, const G4DataVector& m4CC, + const G4DataVector& m5CC, const G4DataVector& nPlusCC, + const G4DataVector& totalCC) + { _energy = energy; _halfLife = halfLife; @@ -59,6 +76,17 @@ G4NuclearLevel::G4NuclearLevel(const G4double energy, const G4double halfLife, _energies.push_back(eGamma[i]); _weights.push_back(wGamma[i]); _polarities.push_back(polarities[i]); + _kCC.push_back( kCC[i]); + _l1CC.push_back( l1CC[i]); + _l2CC.push_back( l2CC[i]); + _l3CC.push_back( l3CC[i]); + _m1CC.push_back( m1CC[i]); + _m2CC.push_back( m2CC[i]); + _m3CC.push_back( m3CC[i]); + _m4CC.push_back( m4CC[i]); + _m5CC.push_back( m5CC[i]); + _nPlusCC.push_back( nPlusCC[i]); + _totalCC.push_back( totalCC[i]); } _nGammas = _energies.size(); MakeProbabilities(); @@ -116,6 +144,61 @@ const G4DataVector& G4NuclearLevel::GammaPolarities() const return _polarities; } +const G4DataVector& G4NuclearLevel::KConvertionProbabilities() const +{ + return _kCC; +} + +const G4DataVector& G4NuclearLevel::L1ConvertionProbabilities() const +{ + return _l1CC; +} + +const G4DataVector& G4NuclearLevel::L2ConvertionProbabilities() const +{ + return _l2CC; +} + +const G4DataVector& G4NuclearLevel::L3ConvertionProbabilities() const +{ + return _l3CC; +} + +const G4DataVector& G4NuclearLevel::M1ConvertionProbabilities() const +{ + return _m1CC; +} + +const G4DataVector& G4NuclearLevel::M2ConvertionProbabilities() const +{ + return _m2CC; +} + +const G4DataVector& G4NuclearLevel::M3ConvertionProbabilities() const +{ + return _m3CC; +} + +const G4DataVector& G4NuclearLevel::M4ConvertionProbabilities() const +{ + return _m4CC; +} + +const G4DataVector& G4NuclearLevel::M5ConvertionProbabilities() const +{ + return _m5CC; +} + +const G4DataVector& G4NuclearLevel::NPlusConvertionProbabilities() const +{ + return _nPlusCC; +} + +const G4DataVector& G4NuclearLevel::TotalConvertionProbabilities() const +{ + return _totalCC; +} + G4double G4NuclearLevel::Energy() const { return _energy; @@ -166,12 +249,12 @@ void G4NuclearLevel::MakeProbabilities() G4int i = 0; for (i=0; i<_nGammas; i++) { - sum += _weights[i]; + sum += _weights[i]*(1+_totalCC[i]); } for (i=0; i<_nGammas; i++) { - if (sum > 0.) { _prob.push_back(_weights[i] / sum); } + if (sum > 0.) { _prob.push_back(_weights[i]*(1+_totalCC[i])/ sum); } else { _prob.push_back(1./_nGammas); } } return; @@ -194,3 +277,6 @@ void G4NuclearLevel::MakeCumProb() } return; } + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc index cfc67a190e..320241761b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -24,6 +24,8 @@ // ------------------------------------------------------------------- // GEANT 4 class file // +// For information related to this code contact: +// CERN, IT Division, ASD group // CERN, Geneva, Switzerland // // File name: G4NuclearLevelManager @@ -33,7 +35,14 @@ // Creation date: 24 October 1998 // // Modifications: -// +// 09 Sep. 2002, Fan Lei (flei@space.qinetiq.com) +// Added moved the totalCC infront of the others in +// read(). +// +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// Added K->N+ internal conversion coefficiencies and their access +// functions +// // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added half-life, angular momentum, parity, emissioni type // reading from experimental data. @@ -66,14 +75,13 @@ G4NuclearLevelManager::G4NuclearLevelManager(G4int Z, G4int A): _nucleusA(A), _n MakeLevels(); } + G4NuclearLevelManager::~G4NuclearLevelManager() { if ( _levels ) { if (_levels->size()>0) { - G4std::vector::iterator pos; - for(pos=_levels->begin(); pos!=_levels->end(); pos++) - if (*pos) delete *pos; + G4std::for_each(_levels->begin(), _levels->end(), DeleteLevel()); _levels->clear(); } delete _levels; @@ -107,12 +115,9 @@ G4bool G4NuclearLevelManager::IsValid(G4int Z, G4int A) const ost << dirName << "/" << "z" << Z << ".a" << A; G4String file(name); -#ifdef G4USE_STD_NAMESPACE G4std::ifstream inFile(file, G4std::ios::in); -#else - ifstream inFile(file, ios::in|ios::nocreate); -#endif - if (! inFile) valid = false; + + if (!inFile) valid = false; return valid; } @@ -142,7 +147,7 @@ const G4NuclearLevel* G4NuclearLevelManager::NearestLevel(G4double energy, G4dou unsigned int i = 0; for (i=0; i<_levels->size(); i++) { - G4double e = (*_levels)[i]->Energy(); + G4double e = _levels->operator[](i)->Energy(); G4double eDiff = abs(e - energy); if (eDiff < diff && eDiff <= eDiffMax) { @@ -152,7 +157,7 @@ const G4NuclearLevel* G4NuclearLevelManager::NearestLevel(G4double energy, G4dou } } if (_levels != 0 && iNear >= 0 && iNear < static_cast(_levels->size()) ) - { return (*_levels)[iNear]; } + { return _levels->operator[](iNear); } else { return 0; } } @@ -203,7 +208,9 @@ G4bool G4NuclearLevelManager::Read(G4std::ifstream& dataFile) if (dataFile >> _levelEnergy) { dataFile >> _gammaEnergy >> _probability >> _polarity >> _halfLife - >> _angularMomentum; + >> _angularMomentum >> _totalCC >> _kCC >> _l1CC >> _l2CC + >> _l3CC >> _m1CC >> _m2CC >> _m3CC >> _m4CC >> _m5CC + >> _nPlusCC; _levelEnergy *= keV; _gammaEnergy *= keV; _halfLife *= second; @@ -212,7 +219,27 @@ G4bool G4NuclearLevelManager::Read(G4std::ifstream& dataFile) // data files, where some transitions show up with relative probability // zero if (_probability < minProbability) _probability = minProbability; - + // the folowwing is to convert icc probability to accumulative ones + _l1CC += _kCC; + _l2CC += _l1CC; + _l3CC += _l2CC; + _m1CC += _l3CC; + _m2CC += _m1CC; + _m3CC += _m2CC; + _m4CC += _m3CC; + _m5CC += _m4CC; + _nPlusCC += _m5CC; + _kCC /= _nPlusCC; + _l1CC /= _nPlusCC; + _l2CC /= _nPlusCC; + _l3CC /= _nPlusCC; + _m1CC /= _nPlusCC; + _m2CC /= _nPlusCC; + _m3CC /= _nPlusCC; + _m4CC /= _nPlusCC; + _m5CC /= _nPlusCC; + _nPlusCC /= _nPlusCC; + // G4cout << "Read " << _levelEnergy << " " << _gammaEnergy << " " << _probability << G4endl; } else @@ -248,12 +275,9 @@ void G4NuclearLevelManager::MakeLevels() if (_levels != 0) { - if (_levels->size()>0) + if (_levels->size()>0) { - G4std::vector::iterator pos; - for(pos=_levels->begin(); pos!=_levels->end(); pos++) - if (*pos) delete *pos; - _levels->clear(); + for(unsigned int i=0; i<_levels->size(); i++) delete _levels->operator[](i); } delete _levels; } @@ -266,6 +290,18 @@ void G4NuclearLevelManager::MakeLevels() G4DataVector pGamma; // polarity G4DataVector hLevel; // half life G4DataVector aLevel; // angular momentum + G4DataVector kConve; // internal convertion coefficiencies + G4DataVector l1Conve; + G4DataVector l2Conve; + G4DataVector l3Conve; + G4DataVector m1Conve; + G4DataVector m2Conve; + G4DataVector m3Conve; + G4DataVector m4Conve; + G4DataVector m5Conve; + G4DataVector npConve; + G4DataVector toConve; + while (Read(inFile)) { @@ -275,6 +311,17 @@ void G4NuclearLevelManager::MakeLevels() pGamma.push_back(_polarity); hLevel.push_back(_halfLife); aLevel.push_back(_angularMomentum); + kConve.push_back(_kCC); + l1Conve.push_back(_l1CC); + l2Conve.push_back(_l2CC); + l3Conve.push_back(_l3CC); + m1Conve.push_back(_m1CC); + m2Conve.push_back(_m2CC); + m3Conve.push_back(_m3CC); + m4Conve.push_back(_m4CC); + m5Conve.push_back(_m5CC); + npConve.push_back(_nPlusCC); + toConve.push_back(_totalCC); } // ---- MGP ---- Don't forget to close the file @@ -290,6 +337,17 @@ void G4NuclearLevelManager::MakeLevels() G4DataVector thisLevelEnergies; G4DataVector thisLevelWeights; G4DataVector thisLevelPolarities; + G4DataVector thisLevelkCC; + G4DataVector thisLevell1CC; + G4DataVector thisLevell2CC; + G4DataVector thisLevell3CC; + G4DataVector thisLevelm1CC; + G4DataVector thisLevelm2CC; + G4DataVector thisLevelm3CC; + G4DataVector thisLevelm4CC; + G4DataVector thisLevelm5CC; + G4DataVector thisLevelnpCC; + G4DataVector thisLeveltoCC; G4double e = -1.; G4int i; @@ -299,26 +357,60 @@ void G4NuclearLevelManager::MakeLevels() if (e != thisLevelEnergy) { // G4cout << "Making a new level... " << e << " " - // << thisLevelEnergies.entries() << " " - // << thisLevelWeights.entries() << G4endl; + // << thisLevelEnergies.size() << " " + // << thisLevelWeights.size() << G4endl; G4NuclearLevel* newLevel = new G4NuclearLevel(thisLevelEnergy, thisLevelHalfLife, thisLevelAngMom, thisLevelEnergies, thisLevelWeights, - thisLevelPolarities); + thisLevelPolarities, + thisLevelkCC, + thisLevell1CC, + thisLevell2CC, + thisLevell3CC, + thisLevelm1CC, + thisLevelm2CC, + thisLevelm3CC, + thisLevelm4CC, + thisLevelm5CC, + thisLevelnpCC, + thisLeveltoCC ); _levels->push_back(newLevel); // Reset data vectors thisLevelEnergies.clear(); thisLevelWeights.clear(); thisLevelPolarities.clear(); + thisLevelkCC.clear(); + thisLevell1CC.clear(); + thisLevell2CC.clear(); + thisLevell3CC.clear(); + thisLevelm1CC.clear(); + thisLevelm2CC.clear(); + thisLevelm3CC.clear(); + thisLevelm4CC.clear(); + thisLevelm5CC.clear(); + thisLevelnpCC.clear(); + thisLeveltoCC.clear(); thisLevelEnergy = e; - } + } // Append current data thisLevelEnergies.push_back(eGamma[i]); thisLevelWeights.push_back(wGamma[i]); thisLevelPolarities.push_back(pGamma[i]); + thisLevelkCC.push_back(kConve[i]); + thisLevell1CC.push_back(l1Conve[i]); + thisLevell2CC.push_back(l2Conve[i]); + thisLevell3CC.push_back(l3Conve[i]); + thisLevelm1CC.push_back(m1Conve[i]); + thisLevelm2CC.push_back(m2Conve[i]); + thisLevelm3CC.push_back(m3Conve[i]); + thisLevelm4CC.push_back(m4Conve[i]); + thisLevelm5CC.push_back(m5Conve[i]); + thisLevelnpCC.push_back(npConve[i]); + thisLeveltoCC.push_back(toConve[i]); + thisLevelHalfLife = hLevel[i]; thisLevelAngMom = aLevel[i]; } @@ -329,14 +421,21 @@ void G4NuclearLevelManager::MakeLevels() thisLevelAngMom, thisLevelEnergies, thisLevelWeights, - thisLevelPolarities); + thisLevelPolarities, + thisLevelkCC, + thisLevell1CC, + thisLevell2CC, + thisLevell3CC, + thisLevelm1CC, + thisLevelm2CC, + thisLevelm3CC, + thisLevelm4CC, + thisLevelm5CC, + thisLevelnpCC, + thisLeveltoCC ); _levels->push_back(newLevel); } -#ifdef G4USE_OSPACE - G4std::sort(_levels->begin(), _levels->end()); -#else - G4std::stable_sort(_levels->begin(), _levels->end()); -#endif + // G4std::sort(_levels->begin(), _levels->end()); return; } @@ -354,7 +453,7 @@ void G4NuclearLevelManager::PrintAll() G4int i = 0; for (i=0; iPrintAll(); } + { _levels->operator[](i)->PrintAll(); } } @@ -366,6 +465,17 @@ G4NuclearLevelManager::G4NuclearLevelManager(const G4NuclearLevelManager &right) _polarity = right._polarity; _halfLife = right._halfLife; _angularMomentum = right._angularMomentum; + _kCC = right._kCC; + _l1CC = right._l1CC; + _l2CC = right._l2CC; + _l3CC = right._l3CC; + _m1CC = right._m1CC; + _m2CC = right._m2CC; + _m3CC = right._m3CC; + _m4CC = right._m4CC; + _m5CC = right._m5CC; + _nPlusCC = right._nPlusCC; + _totalCC = right._totalCC; _nucleusA = right._nucleusA; _nucleusZ = right._nucleusZ; if (right._levels != 0) @@ -377,11 +487,7 @@ G4NuclearLevelManager::G4NuclearLevelManager(const G4NuclearLevelManager &right) { _levels->push_back(new G4NuclearLevel(*(right._levels->operator[](i)))); } -#ifdef G4USE_OSPACE G4std::sort(_levels->begin(), _levels->end()); -#else - G4std::stable_sort(_levels->begin(), _levels->end()); -#endif } else { @@ -397,3 +503,7 @@ G4NuclearLevelManager::G4NuclearLevelManager(const G4NuclearLevelManager &right) + + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc index c3c85abbeb..92ddbced17 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMProbability.cc,v 1.1 2002/06/06 18:03:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc index c302997268..d07ff0b0c6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMProbability.cc,v 1.1 2002/06/06 18:03:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc index f5278905f0..05be23f8da 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMProbability.cc,v 1.1 2002/06/06 18:03:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc index d10bc6fca5..ca4114a9e8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMProbability.cc,v 1.1 2002/06/06 18:03:27 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc index dbf3fe1d00..6d30968765 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMProbability.cc,v 1.1 2002/06/06 18:03:28 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc index c379e2f6bc..1415c4b31e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMProbability.cc,v 1.1 2002/06/06 18:03:30 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc index 9cd0c1db55..7fcf8e7a6c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMProbability.cc,v 1.1 2002/06/06 18:03:31 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc index 90a8b3a9fb..3e3d6d5f28 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PairingCorrection.cc,v 1.5 2001/11/08 10:11:18 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PairingCorrection.cc,v 1.6 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc index 7ea793a378..ab0168be10 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -35,6 +35,17 @@ // // Modifications: // +// 8 March 2002, Fan Lei (flei@space.qinetiq.com) +// +// Implementation of Internal Convertion process in discrete deexcitation +// The following public methods have been added. +// +// void SetICM (G4bool); +// void CallFromRDM(G4bool); +// void SetMaxHalfLife(G4double) ; +// void SetEOccupancy( G4ElectronOccupancy eOccupancy) ; +// G4ElectronOccupancy GetEOccupancy () ; +// // ------------------------------------------------------------------- #include "G4PhotonEvaporation.hh" @@ -49,16 +60,16 @@ #include "G4ContinuumGammaDeexcitation.hh" #include "G4DiscreteGammaDeexcitation.hh" #include "G4E1Probability.hh" - +#include "G4AtomicDeexcitation.hh" G4PhotonEvaporation::G4PhotonEvaporation() + :_verbose(0),_myOwnProbAlgorithm (true), + _eOccupancy(0), _vShellNumber(-1),_gammaE(0.),_applyARM(false) { _probAlgorithm = new G4E1Probability; - _myOwnProbAlgorithm = true; _discrDeexcitation = new G4DiscreteGammaDeexcitation; _contDeexcitation = new G4ContinuumGammaDeexcitation; - _verbose = 0; - _gammaE = 0.; + (dynamic_cast (_discrDeexcitation))->SetICM(false); } @@ -144,10 +155,6 @@ G4FragmentVector* G4PhotonEvaporation::BreakUp(const G4Fragment& nucleus) if (_verbose > 0) G4cout << "*-*-*-* Photon evaporation: " << products->size() << G4endl; -#ifdef debug - CheckConservation(nucleus,products); -#endif - return products; } @@ -186,6 +193,10 @@ G4FragmentVector* G4PhotonEvaporation::BreakItUp(const G4Fragment& nucleus) // Products from discrete gamma transitions G4FragmentVector* discrProducts = _discrDeexcitation->DoChain(); + _eOccupancy = _discrDeexcitation->GetEO(); + _vShellNumber = _discrDeexcitation->GetVacantSN(); + // _eOccupancy.DumpInfo() ; + _discrDeexcitation->SetVaccantSN(-1); G4int nDiscr = 0; if (discrProducts != 0) nDiscr = discrProducts->size(); @@ -199,25 +210,52 @@ G4FragmentVector* G4PhotonEvaporation::BreakItUp(const G4Fragment& nucleus) products->push_back(*i); } + // now to see if apply Atomic relaxation model or not + // only when there is a vacant orbital electron + + if (_applyARM && _vShellNumber != -1) + { + G4int aZ = G4int(_discrDeexcitation->GetNucleus().GetZ()); + G4int eShell = _vShellNumber+1; + if ( eShell > 0 ) { + G4AtomicDeexcitation* atomDeex = new G4AtomicDeexcitation(); + // no auger electron for now + atomDeex->ActivateAugerElectronProduction(0); + G4std::vector* armProducts = atomDeex->GenerateParticles(aZ,eShell); + G4DynamicParticle* aParticle; + if (_verbose > 0) + G4cout << " = BreakItUp = " << armProducts->size() + << " particles from G4AtomicDeexcitation " << G4endl; + for (size_t i = 0; i < armProducts->size(); i++) + { + aParticle = (*armProducts)[i] ; + G4LorentzVector lParticle = aParticle->Get4Momentum(); + G4Fragment* aFragment = new + G4Fragment(lParticle,aParticle->GetDefinition()); + aFragment->SetCreationTime(aParticle->GetProperTime()); + products->push_back(aFragment); + } + delete armProducts; + delete atomDeex; + } + } // Add deexcited nucleus to products G4Fragment* finalNucleus = new G4Fragment(_discrDeexcitation->GetNucleus()); products->push_back(finalNucleus); - if (_verbose > 0) G4cout << " = BreakItUp = Nucleus added to products" << G4endl; - contProducts->clear(); - discrProducts->clear(); - delete contProducts; // delete vector, not fragments - delete discrProducts; - if (_verbose > 0) G4cout << "*-*-* Photon evaporation: " << products->size() << G4endl; #ifdef debug - CheckConservation(nucleus,products); + if ( armProducts->size() == 0) + CheckConservation(nucleus,products); #endif - + contProducts->clear(); + discrProducts->clear(); + delete contProducts; // delete vector, not fragments + delete discrProducts; return products; } @@ -254,6 +292,29 @@ void G4PhotonEvaporation::SetVerboseLevel(G4int verbose) return; } +void G4PhotonEvaporation::SetICM(G4bool ic) +{ + (dynamic_cast (_discrDeexcitation))->SetICM(ic); + return; +} + +void G4PhotonEvaporation::SetMaxHalfLife(G4double hl) +{ + (dynamic_cast (_discrDeexcitation))->SetHL(hl); + return; +} + +void G4PhotonEvaporation::RDMForced(G4bool fromRDM) +{ + (dynamic_cast (_discrDeexcitation))->SetRDM(fromRDM); + return; +} + +void G4PhotonEvaporation::SetEOccupancy(G4ElectronOccupancy eo) +{ + _discrDeexcitation->SetEO(eo); + return; +} #ifdef debug void G4PhotonEvaporation::CheckConservation(const G4Fragment & theInitialState, @@ -312,4 +373,3 @@ void G4PhotonEvaporation::CheckConservation(const G4Fragment & theInitialState, - diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc index da9ea3ec15..6e56821ef6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonCoulombBarrier.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonCoulombBarrier.cc,v 1.5 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc index 69add8ceac..a8bfe78a87 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonEvaporationChannel.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonEvaporationChannel.cc,v 1.5 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc index 860a8f4f89..802e2c7ba4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonEvaporationProbability.cc,v 1.4 2001/08/01 17:05:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonEvaporationProbability.cc,v 1.5 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc index 618afddc15..e4c5739110 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMChannel.cc,v 1.1 2002/06/06 18:03:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc index f0fd72a302..f83d3adbb4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMProbability.cc,v 1.1 2002/06/06 18:03:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4RandGeneralTmp.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4RandGeneralTmp.cc index 5c59eb8eda..145a74ce36 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4RandGeneralTmp.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4RandGeneralTmp.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -51,14 +51,14 @@ G4RandGeneralTmp::G4RandGeneralTmp(HepDouble* aProbFunc, HepInt theProbSize ) register HepInt ptn; theIntegralPdf = new HepDouble[theProbSize]; theIntegralPdf[0] = 0; - for ( ptn = 1; ptnGetMomentum(); FourMom.boost(theFragment.GetMomentum().boostVector()); (*i)->SetMomentum(FourMom); -#ifdef pctest +#ifdef PRECOMPOUND_TEST (*i)->SetCreatorModel(G4String("G4StatMF")); #endif } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc index 8aff89ea79..b20d6b8d48 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFChannel.cc,v 1.11 2002/06/17 17:27:15 stesting Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFChannel.cc,v 1.12 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc index e0d94be18a..59400560f3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFFragment.cc,v 1.9 2002/06/06 17:57:34 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFFragment.cc,v 1.10 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc index 40b2f84b61..9d0a41787f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroBiNucleon.cc,v 1.9 2002/06/06 17:57:35 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroBiNucleon.cc,v 1.10 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc index 63057d9786..0ab22be91c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroChemicalPotential.cc,v 1.7 2002/06/06 17:57:38 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroChemicalPotential.cc,v 1.8 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc index 8f6eaa2b4b..fe05583644 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroMultiNucleon.cc,v 1.10 2002/06/06 17:57:39 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroMultiNucleon.cc,v 1.11 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc index a738c57271..4e182bbdc6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroMultiplicity.cc,v 1.6 2002/06/06 17:57:40 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroMultiplicity.cc,v 1.7 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc index c3a1665d55..4991fee624 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroNucleon.cc,v 1.8 2002/06/06 17:57:41 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroNucleon.cc,v 1.9 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc index 48178e94cd..5718965521 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroTemperature.cc,v 1.9 2002/06/06 17:57:43 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroTemperature.cc,v 1.10 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc index dadc748f1d..fdf2b0490c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroTetraNucleon.cc,v 1.9 2002/06/06 17:57:44 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroTetraNucleon.cc,v 1.10 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc index 5b236ad6b8..e562b771a0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroTriNucleon.cc,v 1.9 2002/06/06 17:57:45 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroTriNucleon.cc,v 1.10 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc index 9854536019..00e705ea22 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMacroCanonical.cc,v 1.11 2002/06/06 17:57:37 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMacroCanonical.cc,v 1.12 2002/12/12 19:17:22 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara // -------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc index 687b5a47e1..035e0d0677 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMicroManager.cc,v 1.6 2002/06/06 17:57:47 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMicroManager.cc,v 1.7 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc index 3a86e7ed0c..be2e3c425e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMicroPartition.cc,v 1.13 2002/06/06 17:57:48 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMicroPartition.cc,v 1.14 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara // -------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc index 0d1d0f8ae0..d58eeee520 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFMicroCanonical.cc,v 1.10 2002/06/06 17:57:46 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFMicroCanonical.cc,v 1.11 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc index 8ec904e74d..e13499f425 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StatMFParameters.cc,v 1.6 2002/06/06 17:57:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StatMFParameters.cc,v 1.7 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc index 1fafc68a54..6c455f14f2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonCoulombBarrier.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonCoulombBarrier.cc,v 1.5 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc index ff765cf181..a69f1b9995 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonEvaporationChannel.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonEvaporationChannel.cc,v 1.5 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc index 560120f294..e34df4cb47 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonEvaporationProbability.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonEvaporationProbability.cc,v 1.5 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc index 9bb440605f..664f3f7e47 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMChannel.cc,v 1.1 2002/06/06 18:04:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc index 108b7e15c4..611463d2c0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMProbability.cc,v 1.1 2002/06/06 18:04:26 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc index bb073862d2..a5c10cf612 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4UnstableFermiFragment.cc,v 1.7 2002/06/06 17:58:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UnstableFermiFragment.cc,v 1.8 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc index b3de4b56bf..065117153e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VCoulombBarrier.cc,v 1.4 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VCoulombBarrier.cc,v 1.5 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc index 1a1334cece..dfe0d82915 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEmissionProbability.cc,v 1.6 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEmissionProbability.cc,v 1.7 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc index 4a10601a9d..6ab667c051 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEvaporation.cc,v 1.5 2001/08/01 17:05:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEvaporation.cc,v 1.6 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) writen from G4Evaporation.cc (May 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc index 5a9a4e6b3e..db78c7e8e4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEvaporationChannel.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEvaporationChannel.cc,v 1.6 2002/12/12 19:17:23 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc index 570d216eda..58744fda74 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VEvaporationFactory.cc,v 1.1 2002/06/06 18:04:27 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VEvaporationFactory.cc,v 1.2 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc index 9b3dac182c..632c68b800 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VFermiBreakUp.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VFermiBreakUp.cc,v 1.6 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc index 0f06332901..846e2c7633 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VFermiFragment.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VFermiFragment.cc,v 1.6 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc index df5ff4f08f..cb7d895b02 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VFissionBarrier.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VFissionBarrier.cc,v 1.6 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc index 5bcfe27ecf..9ba691b27f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -33,6 +33,10 @@ // Creation date: 23 October 1998 // // Modifications: +// +// 21 Nov 2001, Fan Lei (flei@space.qinetiq.com) +// Modified GenerateGamma() and UpdateUncleus() for implementation +// of Internal Conversion processs // // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) // Added creation time evaluation for products of evaporation @@ -45,6 +49,7 @@ #include "globals.hh" #include "Randomize.hh" #include "G4Gamma.hh" +#include "G4Electron.hh" #include "G4LorentzVector.hh" #include "G4VGammaTransition.hh" #include "G4Fragment.hh" @@ -53,7 +58,10 @@ #include "G4ParticleTable.hh" #include "G4IonTable.hh" -G4VGammaDeexcitation::G4VGammaDeexcitation(): _transition(0), _verbose(0) +#include "G4DiscreteGammaTransition.hh" + +G4VGammaDeexcitation::G4VGammaDeexcitation(): _transition(0), _verbose(0), + _electronO (0), _vSN(-1) { } @@ -103,6 +111,7 @@ G4FragmentVector* G4VGammaDeexcitation::DoChain() { products->push_back(gamma); UpdateNucleus(gamma); + UpdateElectrons (); } Update(); } @@ -132,67 +141,73 @@ G4Fragment* G4VGammaDeexcitation::GenerateGamma() { G4double eGamma = 0.; - if (_transition != 0) - { - _transition->SelectGamma(); - eGamma = _transition->GetGammaEnergy(); + if (_transition != 0) { + _transition->SelectGamma(); // it can be conversion electron too + eGamma = _transition->GetGammaEnergy(); } - - if (_verbose > 1 && _transition != 0) - { - G4cout << "G4VGammaDeexcitation::GenerateGamma - Gamma energy " << eGamma - << " ** New excitation " << _nucleus.GetExcitationEnergy() - eGamma - << G4endl; - } - - // Photon momentum isotropically generated - + if (_verbose > 1 && _transition != 0 ) + { + G4cout << "G4VGammaDeexcitation::GenerateGamma - Gamma energy " << eGamma + << " ** New excitation " << _nucleus.GetExcitationEnergy() - eGamma + << G4endl; + } + + // Photon momentum isotropically generated + // the same for electron + if (eGamma > 0.) - { - G4double cosTheta = 1. - 2. * G4UniformRand(); - G4double sinTheta = sqrt(1. - cosTheta * cosTheta); - G4double phi = twopi * G4UniformRand(); - - G4ThreeVector pGamma( eGamma * sinTheta * cos(phi), - eGamma * sinTheta * sin(phi), - eGamma * cosTheta ); - - G4LorentzVector gamma(pGamma, eGamma); - // gamma.boost(_nucleus.GetMomentum().boostVector() ); - G4Fragment* gammaFragment = new - G4Fragment(gamma,G4Gamma::GammaDefinition()); - - G4double gammaTime = _transition->GetGammaCreationTime(); - gammaTime += _nucleus.GetCreationTime(); - gammaFragment->SetCreationTime(gammaTime); - - if (_verbose > 1) - G4cout << "G4VGammaDeexcitation::GenerateGamma - Gamma fragment generated " << G4endl; - - return gammaFragment; - } + { + G4double cosTheta = 1. - 2. * G4UniformRand(); + G4double sinTheta = sqrt(1. - cosTheta * cosTheta); + G4double phi = twopi * G4UniformRand(); + G4double pM = eGamma; + G4DiscreteGammaTransition* dtransition = 0; + dtransition = dynamic_cast (_transition); + if ( dtransition && !( dtransition->IsAGamma()) ) { + G4double eMass = G4Electron::ElectronDefinition()->GetPDGMass(); + pM =sqrt(eGamma*(eGamma + 2.0*eMass)); + eGamma = eGamma + eMass; + } + G4ThreeVector pGamma( pM * sinTheta * cos(phi), + pM * sinTheta * sin(phi), + pM * cosTheta ); + G4LorentzVector gamma(pGamma, eGamma); + // gamma.boost(_nucleus.GetMomentum().boostVector() ); + G4Fragment* gammaFragment ; + if ( dtransition && !(dtransition->IsAGamma()) ){ + gammaFragment = new G4Fragment(gamma,G4Electron::ElectronDefinition()); + } else { + gammaFragment = new G4Fragment(gamma,G4Gamma::GammaDefinition()); + } + G4double gammaTime = _transition->GetGammaCreationTime(); + gammaTime += _nucleus.GetCreationTime(); + gammaFragment->SetCreationTime(gammaTime); + + if (_verbose > 1 && dtransition ) + G4cout << "G4VGammaDeexcitation::GenerateGamma - Gamma fragment generated: " + << (dtransition->IsAGamma() ? " Gamma" : " Electron" ) << G4endl; + return gammaFragment; + } else - { - return 0; - } + { + return 0; + } } - void G4VGammaDeexcitation::UpdateNucleus(const G4Fragment* gamma) { G4LorentzVector p4Gamma = gamma->GetMomentum(); - G4ThreeVector pGamma(p4Gamma.vect()); - G4double eGamma = gamma->GetMomentum().e(); + G4ThreeVector pGamma(p4Gamma); - G4LorentzVector p4Nucleus(_nucleus.GetMomentum() ); - // p4Nucleus.boost(-_nucleus.GetMomentum().boostVector() ); - -// G4LorentzVector p4Residual(p4Nucleus - pGamma, p4Nucleus.e() - eGamma); + G4double eGamma = 0.; + if (_transition != 0) + eGamma = _transition->GetGammaEnergy(); + G4DiscreteGammaTransition* dtransition = 0; + dtransition = dynamic_cast (_transition); + if (dtransition && !(dtransition->IsAGamma()) ) + eGamma += dtransition->GetBondEnergy(); -// -// Due to a rounding error calculation in G4Fragment excitation energy, -// we must correct p4Residual.e() when we are near to 0. -// + G4LorentzVector p4Nucleus(_nucleus.GetMomentum() ); // New tetravector calculation: @@ -200,12 +215,12 @@ void G4VGammaDeexcitation::UpdateNucleus(const G4Fragment* gamma) G4double newExcitation = p4Nucleus.mag() - Mass - eGamma; if(newExcitation < 0) newExcitation = 0; - - G4ThreeVector p3Residual(G4ThreeVector(p4Nucleus.vect()) - pGamma); + + G4ThreeVector p3Residual(G4ThreeVector(p4Nucleus) - pGamma); G4double newEnergy = sqrt(p3Residual * p3Residual + (Mass + newExcitation) * (Mass + newExcitation)); G4LorentzVector p4Residual(p3Residual, newEnergy); - + // G4LorentzVector p4Residual(-pGamma, p4Nucleus.e() - eGamma); // p4Residual.boost( _nucleus.GetMomentum().boostVector() ); @@ -224,6 +239,17 @@ void G4VGammaDeexcitation::UpdateNucleus(const G4Fragment* gamma) return; } +void G4VGammaDeexcitation::UpdateElectrons( ) +{ + G4DiscreteGammaTransition* dtransition = 0; + dtransition = dynamic_cast (_transition); + if (dtransition && !(dtransition->IsAGamma()) ) { + + _vSN = dtransition->GetOrbitNumber(); + _electronO.RemoveElectron(_vSN); + } + return; +} void G4VGammaDeexcitation::Update() { @@ -264,5 +290,3 @@ void G4VGammaDeexcitation::SetVerboseLevel(G4int verbose) - - diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc index 24417d97b7..bf2723eeed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VLevelDensityParameter.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VLevelDensityParameter.cc,v 1.6 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc index 18439a1d17..a14428edee 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VMultiFragmentation.cc,v 1.6 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VMultiFragmentation.cc,v 1.7 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VPhotonEvaporation.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VPhotonEvaporation.cc index 9e0a2e4630..c28c5e7fbc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VPhotonEvaporation.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VPhotonEvaporation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc index a7d81b4ee1..1f471a97b0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VStatMFEnsemble.cc,v 1.5 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VStatMFEnsemble.cc,v 1.6 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc index 86c32b34bd..599e38de61 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc +++ b/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VStatMFMacroCluster.cc,v 1.6 2001/08/01 17:05:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VStatMFMacroCluster.cc,v 1.7 2002/12/12 19:17:24 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh b/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh index 0e43361919..1cc97d9ef0 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DiffractiveHHScatterer.hh,v 1.4 2001/08/01 17:05:44 hpw Exp $ +// $Id: G4DiffractiveHHScatterer.hh,v 1.5 2002/12/12 19:17:25 gunter Exp $ #ifndef G4DiffractiveHHScatterer_h #define G4DiffractiveHHScatterer_h 1 diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh b/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh index 3826c80a7c..7ee12545f2 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DiffractiveSplitableHadron.hh,v 1.5 2001/08/01 17:05:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DiffractiveSplitableHadron.hh,v 1.6 2002/12/12 19:17:25 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4DiffractiveSplitableHadron_h diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh b/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh index ee4312733f..6660922ea8 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FTFModel.hh,v 1.6 2001/08/01 17:05:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FTFModel.hh,v 1.7 2002/12/12 19:17:25 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class Description // Final state production code for hadron inelastic scattering above 20 GeV diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh b/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh index ef71a55d08..47ab7c4a0a 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh +++ b/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FTFParticipants.hh,v 1.7 2001/10/05 16:13:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FTFParticipants.hh,v 1.8 2002/12/12 19:17:26 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4FTFParticipants_h diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveHHScatterer.cc b/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveHHScatterer.cc index 659d2c3642..3af05cdc0a 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveHHScatterer.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveHHScatterer.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc b/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc index fc3f587abd..ba3608719f 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DiffractiveSplitableHadron.cc,v 1.7 2001/10/25 16:15:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DiffractiveSplitableHadron.cc,v 1.8 2002/12/12 19:17:26 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc b/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc index 1e6064115b..40e83f92c7 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FTFModel.cc,v 1.9 2001/10/20 10:45:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FTFModel.cc,v 1.10 2002/12/12 19:17:26 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc b/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc index f8a115c004..73fd40a113 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc +++ b/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FTFParticipants.cc,v 1.6 2001/10/04 20:00:28 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FTFParticipants.cc,v 1.7 2002/12/12 19:17:26 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh b/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh index 4600b839c2..54a015ba62 100644 --- a/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh +++ b/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TheoFSGenerator.hh,v 1.6 2002/06/10 13:27:06 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TheoFSGenerator.hh,v 1.7 2002/12/12 19:17:27 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Class Description diff --git a/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc b/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc index 5aa37542af..bb02d7ef12 100644 --- a/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc +++ b/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TheoFSGenerator.cc,v 1.7 2002/06/10 13:27:07 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TheoFSGenerator.cc,v 1.9 2002/12/12 19:17:27 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4TheoFSGenerator #include "G4DynamicParticle.hh" @@ -78,7 +78,7 @@ G4VParticleChange * G4TheoFSGenerator::ApplyYourself(const G4Track & thePrimary, theHighEnergyGenerator->Scatter(theNucleus, *aPart); G4double predecayEnergy = 0; - for(int hpw=0; hpwsize(); hpw++) + for(size_t hpw=0; hpwsize(); hpw++) { predecayEnergy += (*theInitialResult)[hpw]->Get4Momentum().t(); } diff --git a/source/processes/hadronic/models/generator/kinetic_model/GNUmakefile b/source/processes/hadronic/models/generator/kinetic_model/GNUmakefile index ecd38a363b..81d342daf5 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/GNUmakefile +++ b/source/processes/hadronic/models/generator/kinetic_model/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2000/10/19 15:49:15 brunengo Exp $ +# $Id: GNUmakefile,v 1.4 2002/07/11 13:02:55 jwellisc Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -32,6 +32,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/models/generator/util/include \ -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ + -I$(G4BASE)/processes/hadronic/models/generator/scattering/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4Absorber.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4Absorber.hh new file mode 100644 index 0000000000..d2b52c65b4 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4Absorber.hh @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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 G4Absorber_hh +#define G4Absorber_hh + +#include "globals.hh" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; + +class G4Absorber +{ +public: + G4Absorber(G4double cutOnP); + ~G4Absorber(); + + G4bool WillBeAbsorbed(const G4KineticTrack & kt); + G4bool Absorb(G4KineticTrack & kt, G4KineticTrackVector & tgt); + G4KineticTrackVector * GetAbsorbers(); + G4KineticTrackVector * GetProducts(); + G4bool FindAbsorbers(G4KineticTrack & kt, G4KineticTrackVector & tgt); + G4bool FindProducts(G4KineticTrack & kt); + + +private: + G4double theCutOnP; + G4KineticTrackVector * theAbsorbers; + G4KineticTrackVector * theProducts; + + G4ThreeVector GetRandomDirection(); + + +}; + + +inline G4KineticTrackVector * G4Absorber::GetAbsorbers() +{ + return theAbsorbers; +} + +inline G4KineticTrackVector * G4Absorber::GetProducts() +{ + return theProducts; +} + +#endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4AntiProtonField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4AntiProtonField.hh new file mode 100644 index 0000000000..996525511f --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4AntiProtonField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4AntiProtonField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4AntiProtonField_h +#define G4AntiProtonField_h 1 + +//#include "globals.hh" +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" + +class G4AntiProtonField: public G4VNuclearField +{ +public: + G4AntiProtonField(G4V3DNucleus * nucleus, G4double coeff = 1.53*fermi); + virtual ~G4AntiProtonField(); + +private: + G4AntiProtonField(const G4AntiProtonField &right); + const G4AntiProtonField & operator=(const G4AntiProtonField & right); + int operator==(const G4AntiProtonField & right) const; + int operator!=(const G4AntiProtonField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh new file mode 100644 index 0000000000..043159732a --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh @@ -0,0 +1,131 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4BinaryCascade.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 8 June 2000 +// ----------------------------------------------------------------------------- + +#ifndef G4BinaryCascade_hh +#define G4BinaryCascade_hh + +#include "G4VIntraNuclearTransportModel.hh" +#include "G4ReactionProductVector.hh" +#include "G4KineticTrackVector.hh" +#include "G4ListOfCollisions.hh" +#include "G4V3DNucleus.hh" +#include "G4Fancy3DNucleus.hh" +#include "G4Fragment.hh" +#include "G4VFieldPropagation.hh" +#include "G4VScatterer.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" + +class G4CollisionManager; + +class G4Track; +class G4KineticTrack; +class G43DNucleus; + +class G4BinaryCascade : public G4VIntraNuclearTransportModel +{ +public: + + G4BinaryCascade(); + G4BinaryCascade(const G4BinaryCascade & right); + + ~G4BinaryCascade(); + + const G4BinaryCascade& operator=(G4BinaryCascade & right); + G4int operator==(G4BinaryCascade& right) {return (this == &right);} + G4int operator!=(G4BinaryCascade& right) {return (this != &right);} + + G4VParticleChange* ApplyYourself(const G4Track & track, + G4Nucleus & nucleus); + G4ReactionProductVector * Propagate(G4KineticTrackVector * secondaries, + G4V3DNucleus * nucleus); + +private: + + void PrintWelcomeMessage(); + void BuildTargetList(); + void FindCollisions(G4KineticTrackVector * secondaries); + G4bool ApplyCollision(G4CollisionInitialState * collision); + G4bool Capture(); + G4bool Absorb(); + G4bool CheckPauliPrinciple(G4KineticTrackVector * products); + G4double GetExcitationEnergy(); + G4bool CheckDecay(G4KineticTrackVector * products); + void CorrectFinalPandE(); + void UpdateTracksAndCollisions(G4KineticTrackVector * oldSecondaries, + G4KineticTrackVector * oldTarget, + G4KineticTrackVector * newSecondaries); + G4bool DoTimeStep(G4double timeStep); + G4Fragment * FindFragments(); + G4LorentzVector GetFinal4Momentum(); + G4LorentzVector GetFinalNucleusMomentum(); +// utility methods + G4ThreeVector GetSpherePoint(G4double r, const G4LorentzVector & momentumdirection); + void ClearAndDestroy(G4KineticTrackVector * ktv); + void ClearAndDestroy(G4ReactionProductVector * rpv); + +// for debugging purpose + void PrintKTVector(G4KineticTrackVector * ktv, G4std::string comment=G4std::string("")); + +private: + G4KineticTrackVector theProjectileList; + G4KineticTrackVector theTargetList; + G4KineticTrackVector theSecondaryList; + G4KineticTrackVector theCapturedList; + G4KineticTrackVector theFinalState; + + G4ExcitationHandler * theExcitationHandler; + G4CollisionManager * theCollisionMgr; + G4VScatterer * theScatterer; + G4VFieldPropagation * thePropagator; + G4double theCurrentTime; + G4double theCutOnP; + G4double theCutOnPAbsorb; + G4LorentzVector theInitial4Mom; + G4int currentA, currentZ; + G4double massInNucleus; + G4LorentzRotation precompoundLorentzboost; + G4double theOuterRadius; + G4bool thePrimaryEscape; + G4ParticleDefinition * thePrimaryType; + + +}; + +#endif + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.hh new file mode 100644 index 0000000000..cd02f84319 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.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. * +// ******************************************************************** +// +#ifndef G4FieldPropagation_h +#define G4FieldPropagation_h 1 + +#include "G4KineticTrackVector.hh" + +class G4FieldPropagation +{ +public: + G4FieldPropagation() {} + G4FieldPropagation(const G4FieldPropagation &right) {} + + virtual ~G4FieldPropagation() {} + + // Operators + const G4FieldPropagation & operator=(const G4FieldPropagation &right); + + int operator==(const G4FieldPropagation &right) const; + int operator!=(const G4FieldPropagation &right) const; + + // Methods + + // only theActive are propagated, nothing else + // only theSpectators define the field, nothing else + virtual void Transport(G4KineticTrackVector &theActive, const G4KineticTrackVector &theSpectators, G4double theTimeStep) = 0; + + virtual G4double GetExcitationEnergy(G4int nHit, const G4KineticTrackVector &theParticles) = 0; + + // methods for calculating potentials for different types of particles + virtual void Init(G4int z, G4int a) = 0; // prepare potentials' functions + + // aPosition is relative to the nucleus center + virtual G4double GetNeutronPotential(G4double radius) = 0; + virtual G4double GetNeutronPotential(G4ThreeVector &aPosition) = 0; + + virtual G4double GetProtonPotential(G4double radius) = 0; + virtual G4double GetProtonPotential(G4ThreeVector &aPosition) = 0; + + virtual G4double GetAntiprotonPotential(G4double radius) = 0; + virtual G4double GetAntiprotonPotential(G4ThreeVector &aPosition) = 0; + + virtual G4double GetKaonPotential(G4double radius) = 0; + virtual G4double GetKaonPotential(G4ThreeVector &aPosition) = 0; + + virtual G4double GetPionPotential(G4double radius) = 0; + virtual G4double GetPionPotential(G4ThreeVector &aPosition) = 0; +}; + +#endif // G4FieldPropagation_h + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh index 41f69614dc..b78eeeebd4 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.hh new file mode 100644 index 0000000000..6381156106 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.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. * +// ******************************************************************** +// +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4KM_DummyField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4KM_DummyField_hh +#define G4KM_DummyField_hh + +#include "globals.hh" +#include "G4MagneticField.hh" + +class G4KM_DummyField : public G4MagneticField +{ +public: + + G4KM_DummyField() { } + ~G4KM_DummyField() { } + + virtual void GetFieldValue(const G4double p[3], G4double *field ) const { } +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.hh new file mode 100644 index 0000000000..cebf240743 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4KM_NucleonEqRhs.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4KM_NucleonEqRhs_hh +#define G4KM_NucleonEqRhs_hh + +#include "globals.hh" +//#include "G4EquationOfMotion.hh" +#include "G4Mag_EqRhs.hh" +#include "G4KM_DummyField.hh" // needed by G4Mag_EqRhs constructor. +#include "G4V3DNucleus.hh" + +//class G4KM_NucleonEqRhs : public G4EquationOfMotion // I'd like +class G4KM_NucleonEqRhs : public G4Mag_EqRhs +{ + +public: + G4KM_NucleonEqRhs(G4KM_DummyField *field, G4V3DNucleus * nucleus); + ~G4KM_NucleonEqRhs(); + + virtual void EvaluateRhsGivenB(const G4double y[], const G4double B[3], + G4double dydx[]) const; + virtual void SetChargeMomentumMass(G4double particleCharge, + G4double MomentumXc, + G4double MassXc2); + void SetMass(G4double aMass); + +private: + +// use G4VKM_NuclearDensity as it needs a GetDeriv() method. + G4V3DNucleus * theNucleus; + G4double factor; + G4int A; + G4double theMass; +}; + + + +inline void G4KM_NucleonEqRhs::SetMass(G4double aMass) +{ + theMass = aMass; +} + + + +inline G4KM_NucleonEqRhs::~G4KM_NucleonEqRhs() +{ } + + +// Here by design, but it is unnecessary for nuclear fields +inline void +G4KM_NucleonEqRhs::SetChargeMomentumMass(G4double particleCharge, + G4double MomentumXc, + G4double MassXc2) +{ } + +#endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.hh new file mode 100644 index 0000000000..5106df2956 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4KM_OpticalEqRhs.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4KM_OpticalEqRhs_hh +#define G4KM_OpticalEqRhs_hh + +#include "globals.hh" +//#include "G4EquationOfMotion.hh" +#include "G4Mag_EqRhs.hh" +#include "G4KM_DummyField.hh" // needed by G4Mag_EqRhs constructor. +#include "G4V3DNucleus.hh" + +//class G4KM_OpticalEqRhs : public G4EquationOfMotion +class G4KM_OpticalEqRhs : public G4Mag_EqRhs +{ + +public: + G4KM_OpticalEqRhs(G4KM_DummyField *field, G4V3DNucleus * nucleus); + ~G4KM_OpticalEqRhs(); + + virtual void EvaluateRhsGivenB(const G4double y[], const G4double B[3], + G4double dydx[]) const; + virtual void SetChargeMomentumMass(G4double particleCharge, + G4double MomentumXc, + G4double MassXc2); + void SetFactor(G4double mass, G4double opticalParameter); + +private: + G4V3DNucleus * theNucleus; + G4double theFactor; + G4double theMass; +}; + + + + +inline G4KM_OpticalEqRhs::~G4KM_OpticalEqRhs() +{ } + + +// Here by design, but it is unnecessary for nuclear fields +inline void G4KM_OpticalEqRhs::SetChargeMomentumMass(G4double particleCharge, + G4double MomentumXc, + G4double MassXc2) +{ } + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonMinusField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonMinusField.hh new file mode 100644 index 0000000000..c7d11104b1 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonMinusField.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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 header file +// +// CERN, Geneva, Switzerland +// +// File name: G4KaonMinusField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4KaonMinusField_h +#define G4KaonMinusField_h 1 + +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" + +class G4KaonMinusField: public G4VNuclearField +{ +public: + G4KaonMinusField(G4V3DNucleus * nucleus, G4double coeff = 0.35*fermi); + virtual ~G4KaonMinusField(); + +private: + G4KaonMinusField(const G4KaonMinusField &right); + const G4KaonMinusField & operator=(const G4KaonMinusField & right); + int operator==(const G4KaonMinusField & right) const; + int operator!=(const G4KaonMinusField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonPlusField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonPlusField.hh new file mode 100644 index 0000000000..07b5c33f6e --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonPlusField.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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 header file +// +// CERN, Geneva, Switzerland +// +// File name: G4KaonPlusField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4KaonPlusField_h +#define G4KaonPlusField_h 1 + +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" + +class G4KaonPlusField: public G4VNuclearField +{ +public: + G4KaonPlusField(G4V3DNucleus * nucleus, G4double coeff = 0.35*fermi); + virtual ~G4KaonPlusField(); + +private: + G4KaonPlusField(const G4KaonPlusField &right); + const G4KaonPlusField & operator=(const G4KaonPlusField & right); + int operator==(const G4KaonPlusField & right) const; + int operator!=(const G4KaonPlusField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonZeroField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonZeroField.hh new file mode 100644 index 0000000000..4e0d55db7f --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonZeroField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4KaonZeroField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4KaonZeroField_h +#define G4KaonZeroField_h 1 + +#include "G4VNuclearField.hh" + +class G4KaonZeroField: public G4VNuclearField +{ +public: + G4KaonZeroField(G4V3DNucleus * nucleus, G4double coeff = 0.35*fermi); + virtual ~G4KaonZeroField(); + +private: + G4KaonZeroField(const G4KaonZeroField &right); + const G4KaonZeroField & operator=(const G4KaonZeroField & right); + int operator==(const G4KaonZeroField & right) const; + int operator!=(const G4KaonZeroField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/geometry/biasing/include/G4PStep.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4NeutronField.hh similarity index 55% rename from source/geometry/biasing/include/G4PStep.hh rename to source/processes/hadronic/models/generator/kinetic_model/include/G4NeutronField.hh index 07ec41c84b..bd05679479 100644 --- a/source/geometry/biasing/include/G4PStep.hh +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4NeutronField.hh @@ -21,53 +21,66 @@ // ******************************************************************** // // -// $Id: G4PStep.hh,v 1.3 2002/04/10 13:13:06 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ------------------------------------------------------------------- +// GEANT 4 class header file // -// ---------------------------------------------------------------------- -// Class G4PStep +// CERN, Geneva, Switzerland // -// Class description: +// File name: G4NeutronField.hh // -// This class serves to address the "cell" a track previously -// touched and a "cell" a track is currently in. It is used -// for scoring and importance sampling in the "mass" geometry as well -// as in a "parallel" geometry. -// The "cell" information is available with the fPreTouchableKey and the -// fPostTouchableKey. -// The fCrossBoundary member is set true in case the step -// crosses a boundary in the geometry it this G4PStep -// refers to. +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- -// Author: Michael Dressel (Michael.Dressel@cern.ch) -// ---------------------------------------------------------------------- -#ifndef G4PStep_hh -#define G4PStep_hh G4PStep_hh +#ifndef G4NeutronField_h +#define G4NeutronField_h 1 -#include "G4PTouchableKey.hh" +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" +#include "G4FermiMomentum.hh" +#include "G4VNuclearDensity.hh" +#include "g4std/vector" -class G4PStep +class G4NeutronField: public G4VNuclearField { +public: + G4NeutronField(G4V3DNucleus * nucleus); + virtual ~G4NeutronField(); -public: // with description +private: - G4PStep(const G4PTouchableKey &preKey, const G4PTouchableKey &postKey) - : fPreTouchableKey(preKey), fPostTouchableKey(postKey), - fCrossBoundary(false) {} - // initialise pre and post G4PTouchableKey + G4NeutronField(const G4NeutronField &right); + const G4NeutronField & operator=(const G4NeutronField & right); + int operator==(const G4NeutronField & right) const; + int operator!=(const G4NeutronField & right) const; - ~G4PStep(){} +public: -public: // without description + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); - G4PTouchableKey fPreTouchableKey; - // addressing the "cell" the track previously touched +private: - G4PTouchableKey fPostTouchableKey; - // addressing the current "cell" + G4double GetDensity(const G4ThreeVector & aPosition) + { + return theDensity->GetDensity(aPosition); + } - G4bool fCrossBoundary; - // true if step crosses boundary of the geometry it refers to + G4double GetFermiMomentum(const G4double aDensity) + { + return theFermi.GetFermiMomentum(aDensity); + } + + G4FermiMomentum theFermi; + G4double theA; + G4double theZ; + const G4VNuclearDensity * theDensity; + G4double theR; + + G4std::vector theFermiMomBuffer; }; #endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4PionMinusField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4PionMinusField.hh new file mode 100644 index 0000000000..4dda071d37 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4PionMinusField.hh @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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 header file +// +// CERN, Geneva, Switzerland +// +// File name: G4PionMinusField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4PionMinusField_h +#define G4PionMinusField_h 1 + +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" + +class G4PionMinusField: public G4VNuclearField +{ +public: + + G4PionMinusField(G4V3DNucleus * nucleus, G4double coeff = 0.042*fermi); + virtual ~G4PionMinusField(); + +private: + + G4PionMinusField(const G4PionMinusField &right); + const G4PionMinusField & operator=(const G4PionMinusField & right); + int operator==(const G4PionMinusField & right) const; + int operator!=(const G4PionMinusField & right) const; + +public: + + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4PionPlusField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4PionPlusField.hh new file mode 100644 index 0000000000..c2ae669fb4 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4PionPlusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4PionPlusField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4PionPlusField_hh +#define G4PionPlusField_hh + +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" + +class G4PionPlusField: public G4VNuclearField +{ +public: + G4PionPlusField(G4V3DNucleus * nucleus, G4double coeff = 0.042*fermi); + virtual ~G4PionPlusField(); + +private: + G4PionPlusField(const G4PionPlusField &right); + const G4PionPlusField & operator=(const G4PionPlusField & right); + int operator==(const G4PionPlusField & right) const; + int operator!=(const G4PionPlusField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4PionZeroField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4PionZeroField.hh new file mode 100644 index 0000000000..2f038d89c9 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4PionZeroField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4PionZeroField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4PionZeroField_h +#define G4PionZeroField_h 1 + +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" + +class G4PionZeroField: public G4VNuclearField +{ +public: + G4PionZeroField(G4V3DNucleus * nucleus, G4double coeff = 0.042*fermi); + virtual ~G4PionZeroField(); + +private: + G4PionZeroField(const G4PionZeroField &right); + const G4PionZeroField & operator=(const G4PionZeroField & right); + int operator==(const G4PionZeroField & right) const; + int operator!=(const G4PionZeroField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4ProtonField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4ProtonField.hh new file mode 100644 index 0000000000..20c4a4e66f --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4ProtonField.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4ProtonField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4ProtonField_h +#define G4ProtonField_h 1 + +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" +#include "G4FermiMomentum.hh" +#include "G4VNuclearDensity.hh" +#include "g4std/vector" + +class G4ProtonField: public G4VNuclearField +{ +public: + + G4ProtonField(G4V3DNucleus * nucleus); + virtual ~G4ProtonField(); + +private: + + G4ProtonField(const G4ProtonField &right); + const G4ProtonField & operator=(const G4ProtonField & right); + int operator==(const G4ProtonField & right) const; + int operator!=(const G4ProtonField & right) const; + +public: + + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + +private: + + G4double GetDensity(const G4ThreeVector & aPosition) + { + return theDensity->GetDensity(aPosition); + } + G4double GetFermiMomentum(const G4double aDensity) + { + return theFermi.GetFermiMomentum(aDensity); + } + + G4double theA; + G4double theZ; + G4double theBarrier; + G4double theRadius; + G4FermiMomentum theFermi; + const G4VNuclearDensity * theDensity; + + G4std::vector theFermiMomBuffer; +}; + +#endif + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh new file mode 100644 index 0000000000..6ee212a525 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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 G4RKFieldIntegrator_h +#define G4RKFieldIntegrator_h 1 + +#include "G4FieldPropagation.hh" + +class G4RKFieldIntegrator : public G4FieldPropagation +{ +public: + G4RKFieldIntegrator() {} + G4RKFieldIntegrator(const G4RKFieldIntegrator &right) {} + + ~G4RKFieldIntegrator() {} + + //Operators + const G4RKFieldIntegrator & operator=(const G4RKFieldIntegrator &right) {return *this;} + + int operator==(const G4RKFieldIntegrator &right) const {return 1;} + int operator!=(const G4RKFieldIntegrator &right) const {return 1;} + + // only theActive are propagated, nothing else + // only theSpectators define the field, nothing else + void Transport(G4KineticTrackVector &theActive, const G4KineticTrackVector &theSpectators, G4double theTimeStep); + G4double GetExcitationEnergy(G4int nHitNucleons, const G4KineticTrackVector &theParticles); + + // methods for calculating potentials for different types of particles + void Init(G4int z, G4int a) {theZ = z; theA = a;} // prepare potentials' functions + + // aPosition is relative to the nucleus center + G4double GetNeutronPotential(G4double radius); + G4double GetNeutronPotential(G4ThreeVector &aPosition) {return GetNeutronPotential(aPosition.mag());} + + G4double GetProtonPotential(G4double radius); + G4double GetProtonPotential(G4ThreeVector &aPosition) {return GetProtonPotential(aPosition.mag());} + + G4double GetAntiprotonPotential(G4double radius); + G4double GetAntiprotonPotential(G4ThreeVector &aPosition) {return GetAntiprotonPotential(aPosition.mag());}; + + G4double GetKaonPotential(G4double radius); + G4double GetKaonPotential(G4ThreeVector &aPosition) {return GetKaonPotential(aPosition.mag());} + + G4double GetPionPotential(G4double radius); + G4double GetPionPotential(G4ThreeVector &aPosition) {return GetPionPotential(aPosition.mag());} + +private: + void Integrate(const G4KineticTrackVector & theActive, G4double theTimeStep); + G4double CalculateTotalEnergy(const G4KineticTrackVector& Barions); + G4double Erf(G4double X); + + // parameters to calculate potentials + G4int theA; + G4int theZ; + + // Vc(A, Z) = 1.44 * Z /(r0*(1 + pow(A, 1/3))) + // = colomb * Z / (1 + pow(A, 1/3)) + static const G4double coulomb; // coulomb barier constant + static const G4double a_kaon; // kaon's potential constant + static const G4double a_pion; // pion's potential constant + static const G4double a_antiproton; // antiproton's potential constant +}; + +#endif // G4RKFieldIntegrator_h + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh new file mode 100644 index 0000000000..819080f370 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4RKPropagation.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 6 June 2000 +// +// ------------------------------------------------------------------- + +#ifndef G4RKPropagation_h +#define G4RKPropagation_h 1 + +#include "G4VFieldPropagation.hh" +#include "G4VNuclearField.hh" +#include "G4V3DNucleus.hh" +#include "G4KM_DummyField.hh" +#include "G4Mag_EqRhs.hh" +#include "g4std/map" + + +class G4RKPropagation: public G4VFieldPropagation +{ + +public: + G4RKPropagation(); + virtual ~G4RKPropagation(); + +private: + G4RKPropagation(const G4RKPropagation &right); + const G4RKPropagation & operator=(const G4RKPropagation & right); + G4int operator==(const G4RKPropagation & right) const; + G4int operator!=(const G4RKPropagation & right) const; + +public: + + virtual void Init(G4V3DNucleus * nucleus); + virtual void Transport(G4KineticTrackVector &theActive, + const G4KineticTrackVector &theSpectators, + G4double theTimeStep); + G4bool GetSphereIntersectionTimes(const G4KineticTrack * track, + G4double & t1, G4double & t2); + +private: + G4double theOuterRadius; + G4V3DNucleus * theNucleus; + G4std::map > * theFieldMap; + G4std::map > * theEquationMap; + G4KM_DummyField * theField; + + G4bool GetSphereIntersectionTimes(const G4double radius, + const G4ThreeVector & currentPos, + const G4LorentzVector & momentum, + G4double & t1, G4double & t2); +// implementation + + G4bool FieldTransport(G4KineticTrack * track, const G4double timestep); + G4bool FreeTransport(G4KineticTrack * track, const G4double timestep); + + void delete_FieldsAndMap( + G4std::map > * aMap); + void delete_EquationsAndMap( + G4std::map > * aMap); + + public: + inline G4double GetBarrier(G4int encoding) + { + G4std::map >::iterator iter; + iter = theFieldMap->find(encoding); + if(iter == theFieldMap->end()) return 0; + return (*theFieldMap)[encoding]->GetBarrier(); + } + + inline G4double GetField(G4int encoding,G4ThreeVector pos) + { + G4std::map >::iterator iter; + iter = theFieldMap->find(encoding); + if(iter == theFieldMap->end()) return 0; + return (*theFieldMap)[encoding]->GetField(pos); + } + +}; + +#endif + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaMinusField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaMinusField.hh new file mode 100644 index 0000000000..00bd857d6b --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaMinusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4SigmaMinusField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4SigmaMinusField_h +#define G4SigmaMinusField_h 1 + +#include "G4VNuclearField.hh" + +class G4SigmaMinusField: public G4VNuclearField +{ +public: + G4SigmaMinusField(G4V3DNucleus * nucleus, G4double coeff = 0.36*fermi); + virtual ~G4SigmaMinusField(); + +private: + G4SigmaMinusField(const G4SigmaMinusField &right); + const G4SigmaMinusField & operator=(const G4SigmaMinusField & right); + int operator==(const G4SigmaMinusField & right) const; + int operator!=(const G4SigmaMinusField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.hh new file mode 100644 index 0000000000..392a6deffb --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4SigmaPlusField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4SigmaPlusField_h +#define G4SigmaPlusField_h 1 + +#include "G4VNuclearField.hh" + +class G4SigmaPlusField: public G4VNuclearField +{ +public: + G4SigmaPlusField(G4V3DNucleus * nucleus, G4double coeff = 0.36*fermi); + virtual ~G4SigmaPlusField(); + +private: + G4SigmaPlusField(const G4SigmaPlusField &right); + const G4SigmaPlusField & operator=(const G4SigmaPlusField & right); + int operator==(const G4SigmaPlusField & right) const; + int operator!=(const G4SigmaPlusField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaZeroField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaZeroField.hh new file mode 100644 index 0000000000..1cff85d532 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaZeroField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4SigmaZeroField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4SigmaZeroField_h +#define G4SigmaZeroField_h 1 + +#include "G4VNuclearField.hh" + +class G4SigmaZeroField: public G4VNuclearField +{ +public: + G4SigmaZeroField(G4V3DNucleus * nucleus, G4double coeff = 0.36*fermi); + virtual ~G4SigmaZeroField(); + +private: + G4SigmaZeroField(const G4SigmaZeroField &right); + const G4SigmaZeroField & operator=(const G4SigmaZeroField & right); + int operator==(const G4SigmaZeroField & right) const; + int operator!=(const G4SigmaZeroField & right) const; + +public: + virtual G4double GetField(const G4ThreeVector & aPosition); + virtual G4double GetBarrier(); + virtual G4double GetCoeff() { return theCoeff; } + +private: + G4double theCoeff; +}; + +#endif + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh new file mode 100644 index 0000000000..4ee24db7f3 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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 header file +// +// CERN, Geneva, Switzerland +// +// File name: G4VFieldPropagation.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 6 Jun 2000 +// +// Modifications: 25 Oct 2000: removed GetExcitationEnergy() method +// from the interface (A. Brunengo) +// +// ------------------------------------------------------------------- + +#ifndef G4VFieldPropagation_h +#define G4VFieldPropagation_h 1 + +#include "G4KineticTrackVector.hh" +#include "G4V3DNucleus.hh" + +class G4VFieldPropagation +{ +public: + G4VFieldPropagation(); + virtual ~G4VFieldPropagation(); + +private: + G4VFieldPropagation(const G4VFieldPropagation &right); + const G4VFieldPropagation & operator=(const G4VFieldPropagation & right); + G4int operator==(const G4VFieldPropagation & right) const; + G4int operator!=(const G4VFieldPropagation & right) const; + +public: + virtual void Init(G4V3DNucleus * theNucleus) = 0; + virtual void Transport(G4KineticTrackVector &theActive, + const G4KineticTrackVector &theSpectators, + G4double theTimeStep) = 0; +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4VKM_NuclearDensity.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4VKM_NuclearDensity.hh new file mode 100644 index 0000000000..9a6550dafa --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4VKM_NuclearDensity.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4VKM_NuclearDensity.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4VKM_NuclearDensity_hh +#define G4VKM_NuclearDensity_hh + +#include "globals.hh" +#include "G4ThreeVector.hh" + +class G4VKM_NuclearDensity +{ + +public: + G4VKM_NuclearDensity(); + virtual ~G4VKM_NuclearDensity(); + + virtual G4double GetDensity(const G4ThreeVector & point) = 0; + virtual G4double GetDeriv(const G4ThreeVector & point) = 0; +}; + +inline G4VKM_NuclearDensity::G4VKM_NuclearDensity() +{ } + +inline G4VKM_NuclearDensity::~G4VKM_NuclearDensity() +{ } + +#endif diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.hh b/source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.hh new file mode 100644 index 0000000000..f741416d42 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class header file +// +// CERN, Geneva, Switzerland +// +// File name: G4VNuclearField.hh +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#ifndef G4VNuclearField_h +#define G4VNuclearField_h 1 + +#include "globals.hh" +#include "G4ThreeVector.hh" +#include "G4V3DNucleus.hh" + +class G4VNuclearField +{ +public: + G4VNuclearField(G4V3DNucleus * aNucleus = 0); + virtual ~G4VNuclearField(); + + void SetNucleus(G4V3DNucleus * aNucleus); + virtual G4double GetField(const G4ThreeVector & aPosition) = 0; + virtual G4double GetBarrier() = 0; + virtual G4double GetCoeff() { return 0; } + +protected: + G4V3DNucleus * theNucleus; + const G4double radius; + +private: + + G4VNuclearField(const G4VNuclearField &right); + const G4VNuclearField & operator=(const G4VNuclearField & right); + G4int operator==(const G4VNuclearField & right) const; + G4int operator!=(const G4VNuclearField & right) const; + +}; + + + +inline void G4VNuclearField::SetNucleus(G4V3DNucleus * aNucleus) +{ + theNucleus = aNucleus; +} + + +#endif + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4Absorber.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4Absorber.cc new file mode 100644 index 0000000000..b16b7cc1a9 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4Absorber.cc @@ -0,0 +1,289 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +#include "G4Absorber.hh" +#include "G4KineticTrack.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4PionZero.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + +#include "G4LorentzRotation.hh" + +G4Absorber::G4Absorber(G4double cutOnP) +{ + theCutOnP = cutOnP; + theAbsorbers = new G4KineticTrackVector; + theProducts = new G4KineticTrackVector; +} + + +G4Absorber::~G4Absorber() +{ + delete theAbsorbers; + delete theProducts; +} + + +bool G4Absorber::WillBeAbsorbed(const G4KineticTrack & kt) +{ + // FixMe: actually only for pions +// if(kt.Get4Momentum().vect().mag() < theCutOnP) +// Cut on kinetic Energy... + if (kt.Get4Momentum().e() - kt.GetActualMass() < theCutOnP) + { + if(kt.GetDefinition() == G4PionPlus::PionPlus() || + kt.GetDefinition() == G4PionZero::PionZero() || + kt.GetDefinition() == G4PionMinus::PionMinus()) + { + return true; + } + } + return false; +} + + + +G4bool G4Absorber::Absorb(G4KineticTrack & kt, G4KineticTrackVector & tgt) +{ + if(!FindAbsorbers(kt, tgt)) + return false; + return FindProducts(kt); +} + + +G4bool G4Absorber::FindAbsorbers(G4KineticTrack & kt, + G4KineticTrackVector & tgt) +{ + G4KineticTrack * kt1 = NULL; + G4KineticTrack * kt2 = NULL; + G4double dist1 = DBL_MAX; + G4double dist2 = DBL_MAX; + G4double charge1 = 0; + G4double charge2 = 0; + G4double charge0 = kt.GetDefinition()->GetPDGCharge(); + G4ThreeVector pos = kt.GetPosition(); + + G4std::vector::iterator iter; + for(iter = tgt.begin(); iter != tgt.end(); ++iter) + { + G4KineticTrack * curr = *iter; + G4double dist = (pos-curr->GetPosition()).mag(); + if(dist >= dist2) + continue; + if(dist < dist1) + { + if(dist1 == DBL_MAX) // accept the candidate + { + kt1 = curr; + charge1 = kt1->GetDefinition()->GetPDGCharge(); + dist1 = dist; + continue; + } + if(dist2 == DBL_MAX) // accept the candidate put kt1 in kt2 + { + kt2 = kt1; + charge2 = charge1; + dist2 = dist1; + kt1 = curr; + charge1 = kt1->GetDefinition()->GetPDGCharge(); + dist1 = dist; + continue; + } +// test the compatibility with charge conservation + G4double charge = curr->GetDefinition()->GetPDGCharge(); + if((charge0+charge1+charge < 0.) || + (charge0+charge1+charge) > 2*eplus) + { // incomatible: change kt1 with curr. + kt1 = curr; + charge1 = charge; + dist1 = dist; + } + else + { // compatible: change kt1 with curr and kt2 with kt1 + kt2 = kt1; + charge2 = charge1; + dist2 = dist1; + kt1 = curr; + charge1 = charge; + dist1 = dist; + } + continue; + } +// here if dist1 < dist < dist2 + if(dist2 == DBL_MAX) // accept the candidate + { + kt2 = curr; + charge2 = kt2->GetDefinition()->GetPDGCharge(); + dist2 = dist; + continue; + } +// test the compatibility with charge conservation + G4double charge = curr->GetDefinition()->GetPDGCharge(); + if((charge0+charge1+charge < 0.) || + (charge0+charge1+charge) > 2*eplus) + continue; // incomatible: do nothing +// compatible: change kt2 with curr + kt2 = curr; + charge2 = charge; + dist2 = dist; + } + + theAbsorbers->clear(); // do not delete tracks in theAbsorbers vector! + if((kt1 == NULL) || (kt2 == NULL)) + return false; + + theAbsorbers->push_back(kt1); + theAbsorbers->push_back(kt2); + return true; +} + + + +G4bool G4Absorber::FindProducts(G4KineticTrack & kt) +{ +// Choose the products type + G4ParticleDefinition * prod1; + G4ParticleDefinition * prod2; + G4KineticTrack * abs1 = (*theAbsorbers)[0]; + G4KineticTrack * abs2 = (*theAbsorbers)[1]; + + G4double charge = kt.GetDefinition()->GetPDGCharge(); + if(charge == eplus) + { // a neutron become proton + prod1 = G4Proton::Proton(); + if(abs1->GetDefinition() == G4Neutron::Neutron()) + prod2 = abs2->GetDefinition(); + else + prod2 = G4Proton::Proton(); + } + else if(charge == -eplus) + { // a proton become neutron + prod1 = G4Neutron::Neutron(); + if(abs1->GetDefinition() == G4Proton::Proton()) + prod2 = abs2->GetDefinition(); + else + prod2 = G4Neutron::Neutron(); + } + else // charge = 0: leave particle types unchenged + { + prod1 = abs1->GetDefinition(); + prod2 = abs2->GetDefinition(); + } + +// Translate to the CMS frame + G4LorentzVector momLab = kt.Get4Momentum()+abs1->Get4Momentum()+ + abs2->Get4Momentum(); + G4LorentzRotation toCMSFrame((-1)*momLab.boostVector()); + G4LorentzRotation toLabFrame(momLab.boostVector()); + G4LorentzVector momCMS = toCMSFrame*momLab; + +// Evaluate the final momentum of products + G4double m1 = prod1->GetPDGMass(); + G4double m2 = prod2->GetPDGMass(); + G4double e0 = momCMS.e(); + G4double squareP = (e0*e0*e0*e0-2*e0*e0*(m1*m1+m2*m2)+ + (m2*m2-m1*m1)*(m2*m2-m1*m1))/(4*e0*e0); +// if(squareP < 0) // should never happen +// squareP = 0; + G4ThreeVector mom1CMS = GetRandomDirection(); + mom1CMS = sqrt(squareP)*mom1CMS; + G4LorentzVector final4Mom1CMS(mom1CMS, sqrt(squareP+m1*m1)); + G4LorentzVector final4Mom2CMS((-1)*mom1CMS, sqrt(squareP+m2*m2)); + +// Go back to the lab frame + G4LorentzVector mom1 = toLabFrame*final4Mom1CMS; + G4LorentzVector mom2 = toLabFrame*final4Mom2CMS; + +// ------ debug +/* + G4LorentzVector temp = mom1+mom2; + + cout << (1/MeV)*momLab.x() << " " << (1/MeV)*momLab.y() << " " + << (1/MeV)*momLab.z() << " " << (1/MeV)*momLab.t() << " " + << (1/MeV)*momLab.vect().mag() << " " << (1/MeV)*momLab.mag() << " " + << (1/MeV)*temp.x() << " " << (1/MeV)*temp.y() << " " + << (1/MeV)*temp.z() << " " << (1/MeV)*temp.t() << " " + << (1/MeV)*temp.vect().mag() << " " << (1/MeV)*temp.mag() << " " + << (1/MeV)*sqrt(squareP) << endl; + +*/ +// ------ end debug + +// Build two new kinetic tracks and add to products + G4KineticTrack * kt1 = new G4KineticTrack(prod1, 0., abs1->GetPosition(), + mom1); + G4KineticTrack * kt2 = new G4KineticTrack(prod2, 0., abs2->GetPosition(), + mom2); +// ------ debug +/* + G4LorentzVector initialMom1 = abs1->Get4Momentum(); + G4LorentzVector initialMom2 = abs2->Get4Momentum(); + G4LorentzVector pion4MomCMS = toCMSFrame*kt.Get4Momentum(); + cout << (1/MeV)*initialMom1.x() << " " << (1/MeV)*initialMom1.y() << " " + << (1/MeV)*initialMom1.z() << " " << (1/MeV)*initialMom1.e() << " " + << (1/MeV)*initialMom1.vect().mag() << " " + << (1/MeV)*initialMom2.x() << " " << (1/MeV)*initialMom2.y() << " " + << (1/MeV)*initialMom2.z() << " " << (1/MeV)*initialMom2.e() << " " + << (1/MeV)*initialMom2.vect().mag() << " " + << (1/MeV)*mom1.x() << " " << (1/MeV)*mom1.y() << " " + << (1/MeV)*mom1.z() << " " << (1/MeV)*mom1.e() << " " + << (1/MeV)*mom1.vect().mag() << " " + << (1/MeV)*mom2.x() << " " << (1/MeV)*mom2.y() << " " + << (1/MeV)*mom2.z() << " " << (1/MeV)*mom2.e() << " " + << (1/MeV)*mom2.vect().mag() << " " + << (1/MeV)*pion4MomCMS.x() << " " << (1/MeV)*pion4MomCMS.y() << " " + << (1/MeV)*pion4MomCMS.z() << " " << (1/MeV)*pion4MomCMS.e() << " " + << (1/MeV)*pion4MomCMS.vect().mag() << " " + << (1/MeV)*final4Mom1CMS.x() << " " << (1/MeV)*final4Mom1CMS.y() << " " + << (1/MeV)*final4Mom1CMS.z() << " " << (1/MeV)*final4Mom1CMS.e() << " " + << (1/MeV)*final4Mom1CMS.vect().mag() << " " + << (1/MeV)*final4Mom2CMS.x() << " " << (1/MeV)*final4Mom2CMS.y() << " " + << (1/MeV)*final4Mom2CMS.z() << " " << (1/MeV)*final4Mom2CMS.e() << " " + << (1/MeV)*final4Mom2CMS.vect().mag() << endl; +*/ +// ------ end debug + + theProducts->clear(); + theProducts->push_back(kt1); + theProducts->push_back(kt2); + return true; +} + + + +G4ThreeVector G4Absorber::GetRandomDirection() +{ + G4double theta = 2.0*G4UniformRand()-1.0; + theta = acos(theta); + G4double phi = G4UniformRand()*2*pi; + G4ThreeVector direction(sin(theta)*cos(phi), sin(theta)*sin(phi), cos(theta)); + return direction; +} + + + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc new file mode 100644 index 0000000000..09f7d2df61 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * 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 implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4AntiProtonField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4AntiProtonField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4ParticleDefinition.hh" +#include "G4AntiProton.hh" + +G4AntiProtonField::G4AntiProtonField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4AntiProtonField::~G4AntiProtonField() +{ } + + +const G4AntiProtonField & G4AntiProtonField::operator=(const G4AntiProtonField & right) +{ + G4Exception("G4AntiProtonField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4AntiProtonField::operator==(const G4AntiProtonField & right) const +{ + G4Exception("G4AntiProtonField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4AntiProtonField::operator!=(const G4AntiProtonField & right) const +{ + G4Exception("G4AntiProtonField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4AntiProtonField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4ParticleDefinition *anAntiProton = G4AntiProton::AntiProtonDefinition(); + G4double antiProtonMass = anAntiProton->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = antiProtonMass*nucleusMass/(antiProtonMass+nucleusMass); + + G4double density = theNucleus->GetNuclearDensity()->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density+GetBarrier(); +} + + +G4double G4AntiProtonField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return -coulombBarrier; +} + + + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc new file mode 100644 index 0000000000..4486a43730 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc @@ -0,0 +1,1910 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "globals.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4LorentzRotation.hh" +#include "G4BinaryCascade.hh" +#include "G4KineticTrackVector.hh" +#include "G4ReactionProductVector.hh" +#include "G4Track.hh" +#include "G4V3DNucleus.hh" +#include "G4Fancy3DNucleus.hh" +#include "G4Scatterer.hh" + +#include "G4CollisionManager.hh" +#include "G4Absorber.hh" + +#include "G4CollisionInitialState.hh" +#include "G4ListOfCollisions.hh" +#include "G4Fragment.hh" +#include "G4RKPropagation.hh" + +#include "G4NuclearShellModelDensity.hh" +#include "G4NuclearFermiDensity.hh" +#include "G4FermiMomentum.hh" + +#include "G4PreCompoundModel.hh" +#include "G4ExcitationHandler.hh" + +#include "g4std/algorithm" +#include "G4ShortLivedConstructor.hh" +// +// C O N S T R U C T O R S A N D D E S T R U C T O R S +// + +G4BinaryCascade::G4BinaryCascade() : G4VIntraNuclearTransportModel() +{ + // initialise the resonance sector + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + theCollisionMgr = new G4CollisionManager; + theScatterer = new G4Scatterer; +// theScatterer = new G4ScattererStub; + thePropagator = new G4RKPropagation; + theCurrentTime = 0.; + theCutOnP = 70*MeV; //GF was 150.. + theCutOnPAbsorb= 0*MeV; +// G4ExcitationHandler * + theExcitationHandler = new G4ExcitationHandler; + SetDeExcitation(new G4PreCompoundModel(theExcitationHandler)); + SetMinEnergy(0.0*GeV); + SetMaxEnergy(10.1*GeV); + PrintWelcomeMessage(); + thePrimaryEscape = true; + thePrimaryType = 0; +} + + +G4BinaryCascade::G4BinaryCascade(const G4BinaryCascade& right) +{ +} + + +G4BinaryCascade::~G4BinaryCascade() +{ + ClearAndDestroy(&theTargetList); + ClearAndDestroy(&theSecondaryList); + ClearAndDestroy(&theCapturedList); + ClearAndDestroy(&theProjectileList); + delete thePropagator; + delete theScatterer; + delete theCollisionMgr; +} + +//---------------------------------------------------------------------------- + +// +// I M P L E M E N T A T I O N +// + + +//---------------------------------------------------------------------------- +G4VParticleChange * G4BinaryCascade::ApplyYourself(const G4Track & aTrack, +//---------------------------------------------------------------------------- + G4Nucleus & aNucleus) +{ + static G4int eventcounter=0; + //if(eventcounter == 100*(eventcounter/100) ) + if(getenv("KCDEBUG") ) G4cerr << " ######### Reaction number starts ######### "<Get4Momentum(); + if(initial4Momentum.e()-initial4Momentum.m()ApplyYourself(aTrack, aNucleus); + } + + theParticleChange.Initialize(aTrack); +// initialize the G4V3DNucleus from G4Nucleus + the3DNucleus = new G4Fancy3DNucleus; + the3DNucleus->Init(aNucleus.GetN(), aNucleus.GetZ()); + + thePropagator->Init(the3DNucleus); + +// Build a KineticTrackVector with the G4Track + G4KineticTrackVector * secondaries = new G4KineticTrackVector; + G4ParticleDefinition * definition = aTrack.GetDefinition(); + G4ThreeVector initialPosition(0., 0., 0.); // will be set later + + if(!getenv("I_Am_G4BinaryCascade_Developer") ) + { + if(definition!=G4Neutron::NeutronDefinition() && + definition!=G4Proton::ProtonDefinition() ) + { + G4cerr << "You are using G4BinaryCascade for projectiles other than neutron and proton."<GetOuterRadius()+3*fermi; + do + { +// reset status that could be changed in previous loop event + theCollisionMgr->ClearAndDestroy(); + ClearAndDestroy(&theTargetList); // clear and rebuild theTargetList + BuildTargetList(); + G4KineticTrack * kt = new G4KineticTrack(definition, 0., initialPosition, + initial4Momentum); +// Note: secondaries has been cleared by Propagate() in the previous loop event + secondaries->push_back(kt); + + while(theCollisionMgr->Entries() == 0) // until we FIND a collision... + { + theCurrentTime=0; + initialPosition=GetSpherePoint(1.1*radius, initial4Momentum); // get random position + kt->SetPosition(initialPosition); // kt is in secondaries!! + FindCollisions(secondaries); + } + if(products != NULL) + { // free memory from previous loop event + ClearAndDestroy(products); + delete products; + } + products = Propagate(secondaries, the3DNucleus); + +// --------- debug +// untill Propagate will be able to return some product... +// if(1) +// return &theParticleChange; +// --------- end debug + } while(products->size() == 0); // ...untill we find an ALLOWED collision + +// G4cout << "HKM Applyyourself: number of products " << products->size() << G4endl; + +// Fill the G4ParticleChange * with products + G4int nProducts = products->size(); + theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetNumberOfSecondaries(nProducts); + G4ReactionProductVector::iterator iter; + G4double Efinal=0; + for(iter = products->begin(); iter != products->end(); ++iter) + { + G4DynamicParticle * aNew = + new G4DynamicParticle((*iter)->GetDefinition(), + (*iter)->GetTotalEnergy(), + (*iter)->GetMomentum()); + if(getenv("KCDEBUG") ) + { + if(abs(aNew->GetDefinition()->GetPDGEncoding()) >100 + && abs(aNew->GetDefinition()->GetPDGEncoding()) < 300) G4cout << "Pion info "<GetDefinition()->GetPDGEncoding() <<" "<GetKineticEnergy()<GetDefinition()->GetParticleName() << " " << +// (*iter)->GetTotalEnergy() << " - " << +// (*iter)->GetKineticEnergy()<< " / " << +// (*iter)->GetMomentum().x() << " " << +// (*iter)->GetMomentum().y() << " " << +// (*iter)->GetMomentum().z() << G4endl; + Efinal += (*iter)->GetTotalEnergy(); + } + +// G4cout << "e outgoing/ total : " << Efinal << " " << Efinal+GetFinal4Momentum().e()<< G4endl; + + ClearAndDestroy(products); + delete products; + delete secondaries; + + delete the3DNucleus; + the3DNucleus = NULL; // protect from wrong usage... + + if(getenv("KCDEBUG") ) G4cerr << " ######### Reaction number ends ######### "<GetOuterRadius(); + theCurrentTime=0; +// build theSecondaryList, theProjectileList and theCapturedList + ClearAndDestroy(&theCapturedList); + ClearAndDestroy(&theSecondaryList); + ClearAndDestroy(&theProjectileList); + ClearAndDestroy(&theFinalState); + G4std::vector::iterator iter, jter; + if(nucleus->GetMassNumber() == 1) // 1H1 is special case + { + G4ParticleDefinition * aHTarg = G4Proton::ProtonDefinition(); + G4double mass = aHTarg->GetPDGMass(); + if (nucleus->GetCharge() == 0) aHTarg = G4Neutron::NeutronDefinition(); + mass = aHTarg->GetPDGMass(); + G4KineticTrackVector * secs = 0; + G4ThreeVector pos(0,0,0); + G4LorentzVector mom(mass); + // G4cout << "the lovely "<< mom << " "<GetPDGMass()<begin(), secs->end(), DeleteKineticTrack()); + delete secs; + } + secs = theScatterer->Scatter(*(*secondaries).front(), aTarget); + for(size_t ss=0; secs && sssize(); ss++) + { + if((*secs)[ss]->GetDefinition()->IsShortLived()) done = true; + } + } + size_t current(0); + for(current=0; currentsize(); current++) + { + if((*secs)[current]->GetDefinition()->IsShortLived()) + { + G4KineticTrackVector * dec = (*secs)[current]->Decay(); + for(jter=dec->begin(); jter != dec->end(); jter++) + { + //G4cout << "Decay"<push_back(*jter); + //G4cout << "decay "<<(*jter)->GetDefinition()->GetParticleName()<GetDefinition()->GetParticleName()<GetDefinition()); + aNew->SetMomentum(kt->Get4Momentum().vect()); + aNew->SetTotalEnergy(kt->Get4Momentum().e()); + products->push_back(aNew); + #ifdef debug_1_KineticCascade + if (! kt->GetDefinition()->GetPDGStable() ) + { + if (kt->GetDefinition()->IsShortLived()) + { + G4cout << "final shortlived : "; + } else + { + G4cout << "final un stable : "; + } + G4cout <GetDefinition()->GetParticleName()<< G4endl; + } + #endif + } + return products; + } + + for(iter = secondaries->begin(); iter != secondaries->end(); ++iter) + { + theSecondaryList.push_back(*iter); + G4ThreeVector pos = (*iter)->GetPosition(); + G4LorentzVector mom = (*iter)->Get4Momentum(); + theProjectileList.push_back(new G4KineticTrack((*iter)->GetDefinition(), 0., + pos, mom)); + } + secondaries->clear(); // Don't leave "G4KineticTrack *"s in two vectors + + thePropagator->Init(the3DNucleus); + +// if called stand alone, build theTargetList and find first collisions + + if(theCollisionMgr->Entries() == 0) + { + the3DNucleus = nucleus; + ClearAndDestroy(&theTargetList); + BuildTargetList(); + FindCollisions(&theSecondaryList); + } + +// thePropagator->Init(the3DNucleus); + +// end of initialization: do the job now +// loop untill there are collisions + + + G4bool haveProducts = false; + G4int collisionCount=0; + while(theCollisionMgr->Entries() > 0) + { + // G4cout << "Propagate Captured size: " << theCapturedList.size() << G4endl; + // FixMe: at the moment I absorb pi with mom < theCutOnp, and I capture + // p and n with mom < theCutOnP. What about antip, k and sigmas + // with mom < theCutOnP? + if(Absorb()) { // absorb secondaries + haveProducts = true; + //G4cout << "Absorb sucess " << G4endl; + } + + if(Capture()) { // capture secondaries (nucleons) + haveProducts = true; + //G4cout << "Capture sucess " << G4endl; + } + +// propagate to the next collision if any (collisions could have been deleted +// by previous absorption or capture) + if(theCollisionMgr->Entries() > 0) + { + G4CollisionInitialState * + nextCollision = theCollisionMgr->GetNextCollision(); + + if (!DoTimeStep(nextCollision->GetCollisionTime()-theCurrentTime) ) + { + // Check if nextCollision is still valid, ie. partcile did not leave nucleus + if (theCollisionMgr->GetNextCollision() != nextCollision ) + { + nextCollision = 0; + } + } +// G4cerr <<"post- DoTimeStep 1"<RemoveCollision(nextCollision); + } + } +// G4cerr <<"post-post- DoTimeStep 1"< 0 ) + { + + G4int nsec=0; + G4double minTimeStep = 1.e-12*ns; // about 30*fermi/(0.1*c_light);1.e-12*ns + G4std::vector::iterator i; + for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) + { + G4KineticTrack * kt = *i; + if( kt->GetPosition().mag() < radius) // capture happens only inside the nucleus + { + if((kt->GetDefinition() == G4Proton::Proton()) || + (kt->GetDefinition() == G4Neutron::Neutron())) + { + nsec++; + G4double tStep = steplength / ( kt->Get4Momentum().beta() * c_light ); + //G4cout << " minTimeStep, tStep Particle " <GetDefinition()->GetParticleName() << " 4mom " << kt->Get4Momentum()<GetPosition().mag()<<" " +// <Get4Momentum().e()-kt->Get4Momentum().mag()<Entries() > 0) + { + nextCollision = theCollisionMgr->GetNextCollision(); + timeToCollision = nextCollision->GetCollisionTime()-theCurrentTime; + } + //G4cout << " minTimeStep, timeToCollisiont " < minTimeStep ) + { + //G4cerr <<"pre- DoTimeStep 2"<GetNextCollision() != nextCollision ) + { + nextCollision = 0; + } + } + // G4cerr <<"post- DoTimeStep 3"<RemoveCollision(nextCollision); + } + } + } + + if(countreset>100) + { +#ifdef debug_G4BinaryCascade + G4cerr << "HadronKineticModel.cc: Warning - aborting looping particle(s)" << G4endl; +#endif + +// add left secondaries to FinalSate + G4std::vector::iterator iter; + for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + { + theFinalState.push_back(*iter); + } + theSecondaryList.clear(); + + break; + } + + if(Absorb()) + { + haveProducts = true; + // G4cout << "Absorb sucess " << G4endl; + } + + if(Capture()) + { + haveProducts = true; + // G4cout << "Capture sucess " << G4endl; + } + if ( counter > 100 && theCollisionMgr->Entries() == 0) // no collision, and stepping a while.... + { + #ifdef debug_1_KineticCascade + PrintKTVector(&theSecondaryList,G4std::string("stepping 100 steps")); + #endif + FindCollisions(&theSecondaryList); + counter=0; + ++countreset; + } + } +// G4cerr <<"Finished capture loop "< 0 ) + { +#ifdef debug_G4BinaryCascade + G4cerr << "G4BinaryCascade: Warning, have active particles at end" << G4endl; +#endif +// add left secondaries to FinalSate + G4std::vector::iterator iter; + for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + { + theFinalState.push_back(*iter); + } + theSecondaryList.clear(); + + } + while ( theCollisionMgr->Entries() > 0 ) + { +#ifdef debug_G4BinaryCascade + G4cerr << " Warning: remove left over collision " << G4endl; +#endif + theCollisionMgr->RemoveCollision(theCollisionMgr->GetNextCollision()); + } + +// ------ debug + +/* + * G4cout << "theProjectileList" << G4endl; + * PrintKTVector(&theProjectileList); + * G4cout << "theSecondaryList" << G4endl; + * PrintKTVector(&theSecondaryList); + * G4cout << "theTargetList size: " << theTargetList.size() << G4endl; + * // PrintKTVector(&theTargetList); + * G4cout << "theCapturedList" << G4endl; + * PrintKTVector(&theCapturedList); + */ + +// ------ end debug + +#ifdef debug_G4BinaryCascade + G4cout << " ExcitE be4 Correct : " < 0 ) // FixMe: GF temporary should we better re-start? + { +// G4Fragment * + fragment = FindFragments(); + + // theDeExcitation =0; + if(fragment->GetA() >1.5) // hpw @@@@ still to add the nucleon, if one exists. + { + if (theDeExcitation) + { + precompoundProducts= theDeExcitation->DeExcite(*fragment); + delete fragment; + fragment=0; + } else if (theExcitationHandler) + { + precompoundProducts=theExcitationHandler->BreakItUp(*fragment); + delete fragment; + fragment=0; + } + } + } else { +#ifdef debug_G4BinaryCascade + G4cerr << "KineticModel: Warning negative Excitation Energy"<< G4endl; +#endif + } + { +// fill in products the outgoing particles + G4double Ekinout=0; + size_t i(0); + for(i = 0; i< theFinalState.size(); i++) + { + G4KineticTrack * kt = theFinalState[i]; + if(kt->GetDefinition()->IsShortLived()) + { + G4KineticTrackVector * dec = kt->Decay(); + G4KineticTrackVector::const_iterator jter; + for(jter=dec->begin(); jter != dec->end(); jter++) + { + theFinalState.push_back(*jter); + } + delete dec; + } + else + { + G4ReactionProduct * aNew = new G4ReactionProduct(kt->GetDefinition()); + aNew->SetMomentum(kt->Get4Momentum().vect()); + aNew->SetTotalEnergy(kt->Get4Momentum().e()); + Ekinout += aNew->GetKineticEnergy(); + //G4cout << " Particle Ekin " << aNew->GetKineticEnergy() << G4endl; + products->push_back(aNew); + + #ifdef debug_1_KineticCascade + if (! kt->GetDefinition()->GetPDGStable() ) + { + if (kt->GetDefinition()->IsShortLived()) + { + G4cout << "final shortlived : "; + } else + { + G4cout << "final un stable : "; + } + G4cout <GetDefinition()->GetParticleName()<< G4endl; + } + #endif + } + + } + //G4cout << " Total Ekin " << Ekinout << G4endl; + } +// add precompound products to products + if ( precompoundProducts ) + { + G4std::vector::iterator j; + for(j = precompoundProducts->begin(); j != precompoundProducts->end(); ++j) + { +// boost back to system of moving nucleus + G4LorentzVector pProduct((*j)->GetMomentum(),(*j)->GetTotalEnergy()); + pProduct *= precompoundLorentzboost; + (*j)->SetTotalEnergy(pProduct.e()); + (*j)->SetMomentum(pProduct.vect()); + products->push_back(*j); + } + + precompoundProducts->clear(); + delete precompoundProducts; + } + else + { + G4ReactionProduct * aNew=0; +// return nucleus e and p + if (fragment != 0 ) { + aNew = new G4ReactionProduct(G4Gamma::GammaDefinition()); // we only want to pass e/p + aNew->SetMomentum(fragment->GetMomentum().vect()); + aNew->SetTotalEnergy(fragment->GetMomentum().e()); + delete fragment; + fragment=0; + } else if (products->size() == 0) { + // FixMe GF: for testing without precompound, return 1 gamma of 0.01 MeV in +x +#include "G4Gamma.hh" + aNew = new G4ReactionProduct(G4Gamma::GammaDefinition()); + aNew->SetMomentum(G4ThreeVector(0.01*MeV,0,0)); + aNew->SetTotalEnergy(0.01*MeV); + } + if ( aNew != 0 ) products->push_back(aNew); + } + +// G4cerr <<"mon - end of event "<::iterator i; + for(i = theTargetList.begin(); i != theTargetList.end(); ++i) + { + if((*i)->GetDefinition() == G4Proton::Proton()) + { + ++finalZ; + } + } + + for(i = theCapturedList.begin(); i != theCapturedList.end(); ++i) + { + if((*i)->GetDefinition() == G4Proton::Proton()) + { + ++finalZ; + } + } + + G4double excitationE(0); + G4double nucleusMass(0); + if(currentZ>.5) + { + //G4cerr <<"mon - we know z "<GetIonTable()->GetIonMass(currentZ,currentA); + } else if (currentZ==0 && currentA==1 ) + { + nucleusMass = G4Neutron::Neutron()->GetPDGMass(); + } else + { + #ifdef debug_1_KineticCascade + G4cout << "G4BinaryCascade::GetExcitationEnergy(): Warning - invalid nucleus (A,Z)=(" + << currentA << "," << currentZ << ")" << G4endl; + #endif + return 0; + } + + + excitationE = GetFinalNucleusMomentum().mag() - nucleusMass; + +#ifdef debug_G4BinaryCascade +// ------ debug + if ( excitationE < 0 ) + { + G4cout << "negative ExE final Ion mass" <.5) G4cout << " Ecitation Energy, Finalnuclmom, nucl mass, excitE " + << GetFinalNucleusMomentum() << G4endl + <.5) G4cout << " final Excit : a,z, 4mom " + << finalA << " " << finalZ << " " + << GetFinalNucleusMomentum() <GetMassNumber(); + G4int Z = the3DNucleus->GetCharge(); + G4double initialExc(0); + if(Z>.5) + { + //G4cerr << "occation 1 "<< Z <<" "<GetIonTable()->GetIonMass(Z, A); + } + + //G4cout << " theInitial4Mom; 4.mag() " << theInitial4Mom << " "<< theInitial4Mom.mag() << G4endl; + if(finalZ>.5) G4cout << " finalNucleusMomentum; 4.mag() " << GetFinalNucleusMomentum() << " "<< GetFinalNucleusMomentum().mag() << G4endl; + } + +// G4cout << "theCapturedList" << theCapturedList.size() << G4endl +// << "theSecondaryList" << theSecondaryList.size() << G4endl; + +// ------ end debug +#endif + // return excitationE > 0 ? excitationE : 0.0; + return excitationE; +} + + +//---------------------------------------------------------------------------- +// +// P R I V A T E M E M B E R F U N C T I O N S +// +//---------------------------------------------------------------------------- + +//---------------------------------------------------------------------------- +void G4BinaryCascade::BuildTargetList() +//---------------------------------------------------------------------------- +{ + + if(!the3DNucleus->StartLoop()) + { +// G4cerr << "G4BinaryCascade::BuildTargetList(): StartLoop() error!" +// << G4endl; + return; + } + + G4Nucleon * nucleon; + G4ParticleDefinition * definition; + G4ThreeVector pos; + G4LorentzVector mom; +// if there are nucleon hit by higher energy models, then SUM(momenta) != 0 + theInitial4Mom = G4LorentzVector(0,0,0,0); + currentA=0; + currentZ=0; +// G4RKPropagation * RKprop=(G4RKPropagation *)thePropagator; + while((nucleon = the3DNucleus->GetNextNucleon()) != NULL) + { +// check if nucleon is hit by higher energy model. + if ( ! nucleon->AreYouHit() ) + { + definition = nucleon->GetDefinition(); +// G4int PDGcode=definition->GetPDGEncoding(); + pos = nucleon->GetPosition(); + mom = nucleon->GetMomentum(); + // G4cout << "Nucleus " << pos.mag()/fermi << " " << mom.e() << G4endl; + theInitial4Mom += mom; +// In the kinetic Model, the potential inside the nucleus is taken into account, and nucleons +// are on mass shell. + mom.setE( sqrt( mom.vect().mag2() + sqr(definition->GetPDGMass()) ) ); +// if ( mom.e() + RKprop->GetField(PDGcode,pos) >definition->GetPDGMass() ) +// { +// G4cout << "G4BinaryCascade::BuildTargetList found free nucleon " <GetPDGMass() << " " <GetField(PDGcode,pos) +// << G4endl; +// } + + + G4KineticTrack * kt = new G4KineticTrack(definition, 0., pos, mom); + theTargetList.push_back(kt); + ++currentA; + if (definition->GetPDGCharge() > .5 ) ++currentZ; + } + } + massInNucleus = 0; + if(currentZ>.5) + { + //G4cerr << "occation 2 "<< currentZ <<" "<GetIonTable()->GetIonMass(currentZ,currentA); + } else if (currentZ==0 && currentA==1 ) + { + massInNucleus = G4Neutron::Neutron()->GetPDGMass(); + } else + { + //G4cout << "G4BinaryCascade::BuildTargetList(): Warning - invalid nucleus (A,Z)=(" + // << currentA << "," << currentZ << ")" << G4endl; + } + +} + + +//---------------------------------------------------------------------------- +void G4BinaryCascade::FindCollisions(G4KineticTrackVector * secondaries) +//---------------------------------------------------------------------------- +{ + G4KineticTrack * pkt; + G4KineticTrack * tkt; + G4double collisionTime; +/* + * G4cout << " FindCollisions start" << endl; + * theCollisionMgr->Print(); + */ + for(G4std::vector::iterator i = secondaries->begin(); + i != secondaries->end(); ++i) + { + pkt = *i; + // look for collisions with target particles +// G4cerr << "G4BinaryCascade::ApplyCollision pre-collision time" +// <Get4Momentum()<<" "<Get4Momentum().boostVector().mag()<<" " <GetDefinition()->GetParticleName() +// <::iterator j = theTargetList.begin(); + j != theTargetList.end(); ++j) + { + tkt = *j; + collisionTime = theScatterer->GetTimeToInteraction(*pkt, *tkt); + if(collisionTime == DBL_MAX) // no collision + continue; + theCollisionMgr->AddCollision(collisionTime+theCurrentTime, pkt, tkt); +// G4cerr <<" !!!!!! debug collisions "<GetDefinition()->GetParticleName()<GetDefinition()->IsShortLived()) + { + collisionTime = pkt->SampleResidualLifetime(); +// G4cerr <<" !!!!!! debug decay "<GetDefinition()->GetParticleName()<AddCollision(collisionTime+theCurrentTime, pkt, 0); +/* + * G4cout << " shortlived: " << pkt->GetDefinition()->GetParticleName(); + * G4cout << " shortlived: " << pkt->GetDefinition()->GetParticleName() + * << " coll.time (ns)=" << collisionTime/ns << G4endl; + */ + } + } +/* + * G4cout << " FindCollisions found collisions" << endl; + * theCollisionMgr->Print(); + */ +} + + +//---------------------------------------------------------------------------- +G4bool G4BinaryCascade::ApplyCollision(G4CollisionInitialState * collision) +//---------------------------------------------------------------------------- +{ + //G4cerr << "G4BinaryCascade::ApplyCollision start"<GetPrimary(); + G4KineticTrack * target = collision->GetTarget(); + + G4KineticTrackVector * products=0; + +// G4cout << "ApplyCollisions : projte 4mom " << primary->Get4Momentum()<< G4endl; +// if (target != 0 ) +// { +// G4cout << "ApplyCollisions : target 4mom " << target->Get4Momentum()<< G4endl; +// } + + + G4int initialBaryon = primary->GetDefinition()->GetBaryonNumber(); + G4int initialCharge(0); + if(initialBaryon!=0) initialCharge+=static_cast(primary->GetDefinition()->GetPDGCharge()+.1); + if(target == NULL) // if target == 0 it is a decay + { + //G4cerr << "G4BinaryCascade::ApplyCollision pre-decay"<Decay(); + //G4cerr << "G4BinaryCascade::ApplyCollision post-decay"<GetDefinition()->GetParticleName() << G4endl; + //G4cerr << "number of products created: " << products->size() << G4endl; + } + else + { + G4KineticTrack target_reloc(*target); + initialBaryon += target->GetDefinition()->GetBaryonNumber(); + if(target->GetDefinition()->GetBaryonNumber()!=0) initialCharge+=static_cast(target->GetDefinition()->GetPDGCharge()+.1); +/* //GF : Update Energy such that E' = E + Potential(pos(primary)-Potential(pos(target) + G4int PDGcode=target->GetDefinition()->GetPDGEncoding(); + G4RKPropagation * RKprop=(G4RKPropagation *)thePropagator; + G4double cur_Potential=RKprop->GetField(PDGcode,target->GetPosition()); + G4double new_Potential=RKprop->GetField(PDGcode,primary->GetPosition()); + G4double dE=new_Potential - cur_Potential; + G4double pcur=mom.vect().mag(); + G4double tmp=sqr(mom.e()+dE) - mom.mag2(); + if (tmp < 0.) + { + //G4cerr << "G4BinaryCascade::ApplyCollision tmp problem"<Get4Momentum(); +// target_reloc.Set4Momentum(G4LorentzVector(0.1*mom.vect(),mom.e())); + target_reloc.SetPosition(primary->GetPosition()); +*/ + //G4cerr << "G4BinaryCascade::ApplyCollision start 1"<Scatter(*primary, target_reloc); + //G4cerr << "G4BinaryCascade::ApplyCollision start 2"<size();ig++) + { + finalBaryon+=products->operator[](ig)->GetDefinition()->GetBaryonNumber(); + if(products->operator[](ig)->GetDefinition()->GetBaryonNumber()!=0) finalCharge+=static_cast(products->operator[](ig)->GetDefinition()->GetPDGCharge()+.1); + } + + currentA += finalBaryon-initialBaryon; + currentZ += finalCharge-initialCharge; + G4KineticTrackVector oldSecondaries; + oldSecondaries.push_back(primary); + G4KineticTrackVector oldTarget; + if(target != NULL) + oldTarget.push_back(target); + //G4cerr << "G4BinaryCascade::ApplyCollision pre-update"<::iterator iter; + G4double radius = theOuterRadius+3*fermi; + for(iter = theSecondaryList.begin(); + iter != theSecondaryList.end(); ++iter) + { + G4KineticTrack * kt = *iter; + if(kt->GetPosition().mag() < radius)// absorption happens only inside the nucleus + { + if(absorber.WillBeAbsorbed(*kt)) + { + absorbList.push_back(kt); + } + } + } + + if(absorbList.empty()) + return false; + + G4KineticTrackVector toDelete; + for(iter = absorbList.begin(); iter != absorbList.end(); ++iter) + { + G4KineticTrack * kt = *iter; + if(!absorber.FindAbsorbers(*kt, theTargetList)) + G4Exception("G4BinaryCascade::Absorb(): Cannot absorb a particle."); + + if(!absorber.FindProducts(*kt)) + G4Exception("G4BinaryCascade::Absorb(): Cannot absorb a particle."); + + G4KineticTrackVector * products = absorber.GetProducts(); +// ------ debug + G4int count = 0; +// ------ end debug + while(!CheckPauliPrinciple(products)) + { +// ------ debug + count++; +// ------ end debug + ClearAndDestroy(products); + if(!absorber.FindProducts(*kt)) + G4Exception( + "G4BinaryCascade::Absorb(): Cannot absorb a particle."); + } +// ------ debug +// G4cerr << "Absorb CheckPauliPrinciple count= " << count << G4endl; +// ------ end debug + G4KineticTrackVector toRemove; // build a vector for UpdateTrack... + toRemove.push_back(kt); + toDelete.push_back(kt); // delete the track later + G4KineticTrackVector * absorbers = absorber.GetAbsorbers(); + UpdateTracksAndCollisions(&toRemove, absorbers, products); + ClearAndDestroy(absorbers); + } + ClearAndDestroy(&toDelete); + return true; +} + + + +// Capture all p and n with Energy < theCutOnP +//---------------------------------------------------------------------------- +G4bool G4BinaryCascade::Capture() +//---------------------------------------------------------------------------- +{ + G4KineticTrackVector captured; + G4bool capture = false; + G4std::vector::iterator i; + G4double radius = theOuterRadius + 3*fermi; + + G4RKPropagation * RKprop=(G4RKPropagation *)thePropagator; + + G4double capturedEnergy = 0; + G4int particlesAboveCut=0; + G4int particlesBelowCut=0; + for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) + { + G4KineticTrack * kt = *i; + if(kt->GetPosition().mag() < radius) // capture happens only inside the nucleus + { + if((kt->GetDefinition() == G4Proton::Proton()) || + (kt->GetDefinition() == G4Neutron::Neutron())) + { + //GF cut on kinetic energy if(kt->Get4Momentum().vect().mag() >= theCutOnP) + G4double field=RKprop->GetField(kt->GetDefinition()->GetPDGEncoding(),kt->GetPosition()) + -RKprop->GetBarrier(kt->GetDefinition()->GetPDGEncoding()); + G4double energy= kt->Get4Momentum().e() - kt->GetActualMass() + field; + if( energy < theCutOnP ) + { + capturedEnergy+=energy; + ++particlesBelowCut; + } else + { + ++particlesAboveCut; + } + } + } + } + if(particlesAboveCut==0 && particlesBelowCut>0 && capturedEnergy/particlesBelowCut<0.2*theCutOnP) + { + capture=true; + for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) + { + G4KineticTrack * kt = *i; + if(kt->GetPosition().mag() < radius) // capture happens only inside the nucleus + { + if((kt->GetDefinition() == G4Proton::Proton()) || + (kt->GetDefinition() == G4Neutron::Neutron())) + { + captured.push_back(kt); + theCapturedList.push_back(kt); + } + } + } + UpdateTracksAndCollisions(&captured, NULL, NULL); + } + + return capture; +} + + +//---------------------------------------------------------------------------- +G4bool G4BinaryCascade::CheckPauliPrinciple(G4KineticTrackVector * products) +//---------------------------------------------------------------------------- +{ + G4int A = the3DNucleus->GetMassNumber(); + G4int Z = the3DNucleus->GetCharge(); + + G4FermiMomentum fermiMom; + fermiMom.Init(A, Z); + + const G4VNuclearDensity * density=the3DNucleus->GetNuclearDensity(); + + G4KineticTrackVector::iterator i; + G4ParticleDefinition * definition; + +// ------ debug + G4bool myflag = true; +// ------ end debug +// G4ThreeVector xpos(0); + for(i = products->begin(); i != products->end(); ++i) + { + definition = (*i)->GetDefinition(); + if((definition == G4Proton::Proton()) || + (definition == G4Neutron::Neutron())) + { + G4ThreeVector pos = (*i)->GetPosition(); + G4double d = density->GetDensity(pos); + // energy correspondiing to fermi momentum + G4double eFermi = sqrt( sqr(fermiMom.GetFermiMomentum(d)) + (*i)->Get4Momentum().mag2() ); + if( definition == G4Proton::Proton() ) + { + eFermi -= the3DNucleus->CoulombBarrier(); + } + G4LorentzVector mom = (*i)->Get4Momentum(); + // ------ debug +/* + * G4cout << "p:[" << (1/MeV)*mom.x() << " " << (1/MeV)*mom.y() << " " + * << (1/MeV)*mom.z() << "] |p3|:" + * << (1/MeV)*mom.vect().mag() << " E:" << (1/MeV)*mom.t() << " ] m: " + * << (1/MeV)*mom.mag() << " pos[" + * << (1/fermi)*pos.x() << " "<< (1/fermi)*pos.y() << " " + * << (1/fermi)*pos.z() << "] |Dpos|: " + * << (1/fermi)*(pos-xpos).mag() << " Pfermi:" + * << (1/MeV)*p << G4endl; + * xpos=pos; + */ + // ------ end debug + if(mom.e() < eFermi ) + { + // ------ debug + myflag = false; + // ------ end debug + // return false; + } + } + } + #ifdef debug_G4BinaryCascade + if ( myflag ) + { + for(i = products->begin(); i != products->end(); ++i) + { + definition = (*i)->GetDefinition(); + if((definition == G4Proton::Proton()) || + (definition == G4Neutron::Neutron())) + { + G4ThreeVector pos = (*i)->GetPosition(); + G4double d = density->GetDensity(pos); + G4double pFermi = fermiMom.GetFermiMomentum(d); + G4LorentzVector mom = (*i)->Get4Momentum(); + G4double field =((G4RKPropagation*)thePropagator)->GetField(definition->GetPDGEncoding(),pos); + if ( mom.e()-mom.mag()+field > 160*MeV ) + { + G4cout << "momentum problem pFermi=" << pFermi << G4endl; + } + } + } + } + #endif + + return myflag; +} + + +//---------------------------------------------------------------------------- +void G4BinaryCascade::CorrectFinalPandE() +//---------------------------------------------------------------------------- +{ + if ( theFinalState.size() == 0 ) return; + + G4KineticTrackVector::iterator i; + G4LorentzVector pNucleus=GetFinal4Momentum(); + G4LorentzVector pFinals(0); + G4int nFinals(0); + for(i = theFinalState.begin(); i != theFinalState.end(); ++i) + { + pFinals += (*i)->Get4Momentum(); + ++nFinals; +#ifdef debug_G4BinaryCascade + G4cout <<"CorrectFinalPandE a final " << (*i)->GetDefinition()->GetParticleName() + << " 4mom " << (*i)->Get4Momentum()<< G4endl; +#endif + } +#ifdef debug_G4BinaryCascade + G4cout << "CorrectFinalPandE pN pF: " < pInCM ) + { + G4ThreeVector p3finals=pInCM*pFinals.vect().unit(); + +// G4ThreeVector deltap=(p3finals - pFinals.vect() ) / nFinals; + G4double factor=pInCM/pFinals.vect().mag(); + G4LorentzVector qFinals(0); + for(i = theFinalState.begin(); i != theFinalState.end(); ++i) + { +// G4ThreeVector p3((toCMS*(*i)->Get4Momentum()).vect() + deltap); + G4ThreeVector p3(factor*(toCMS*(*i)->Get4Momentum()).vect()); + G4LorentzVector p(p3,sqrt((*i)->Get4Momentum().mag2() + p3.mag2())); + qFinals += p; + p *= toLab; +#ifdef debug_G4BinaryCascade + G4cout << " final p corrected: " << p << G4endl; +#endif + (*i)->Set4Momentum(p); + } +#ifdef debug_G4BinaryCascade + G4cout << "CorrectFinalPandE nucleus corrected mass : " << GetFinal4Momentum() << " " + <::iterator iter1, iter2; + +// remove old secondaries from the secondary list + if(oldSecondaries != NULL) + { + if(!oldSecondaries->empty()) + { + for(iter1 = oldSecondaries->begin(); iter1 != oldSecondaries->end(); + ++iter1) + { + iter2 = G4std::find(theSecondaryList.begin(), theSecondaryList.end(), + *iter1); + theSecondaryList.erase(iter2); + } + theCollisionMgr->RemoveTracksCollisions(oldSecondaries); + } + } + +// remove old target from the target list + if(oldTarget != NULL) + { + if(!oldTarget->empty()) + { + for(iter1 = oldTarget->begin(); iter1 != oldTarget->end(); ++iter1) + { + iter2 = G4std::find(theTargetList.begin(), theTargetList.end(), + *iter1); + theTargetList.erase(iter2); + } + theCollisionMgr->RemoveTracksCollisions(oldTarget); + } + } + + if(newSecondaries != NULL) + { + if(!newSecondaries->empty()) + { + // insert new secondaries in the secondary list + for(iter1 = newSecondaries->begin(); iter1 != newSecondaries->end(); + ++iter1) + { + theSecondaryList.push_back(*iter1); + } + // look for collisions of new secondaries + FindCollisions(newSecondaries); + } + } +} + +//---------------------------------------------------------------------------- +G4bool G4BinaryCascade::DoTimeStep(G4double theTimeStep) +//---------------------------------------------------------------------------- +{ + G4bool success=true; +// G4cerr <<"G4BinaryCascade::DoTimeStep: enter "<::iterator iter; + G4double nucleusSize=theOuterRadius + 3*fermi; +// Count particles in nucleus + G4int secondaryBarions=0; + G4int secondaryCharge=0; + G4double secondaryMass=0; + for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + { + if ( (*iter)->GetPosition().mag() < nucleusSize ) + { +// G4cout << " inside: " << iter << G4endl; +// reduce counters, after step they'll be increased to find difference... +// G4cout << " Baryon number "<<(*iter)->GetDefinition()->GetParticleName()<<" "<<(*iter)->GetDefinition()->GetBaryonNumber()<GetDefinition()->GetBaryonNumber()!=0) secondaryCharge -= G4int((*iter)->GetDefinition()->GetPDGCharge() + 0.1); + secondaryBarions -= (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? 1 : 0; + secondaryMass -= (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? + (*iter)->GetDefinition()->GetPDGMass() : 0; + } + } + +/* G4cerr << " DoTimeStep, be4, A, Z, sec-Z,A,m,m_in_nucleus " + << currentA << " " << currentZ << " " << secondaryCharge << " " << secondaryBarions << " " + << secondaryMass << " " << massInNucleus << " " << G4endl; +*/ +//----- + G4KineticTrackVector dummy; // needed for re-usability +// G4cout << "NOW WE ARE ENTERING THE TRANSPORT"<Transport(theSecondaryList, dummy, theTimeStep); +//------ + +// PrintKTVector(&theSecondaryList,G4std::string("aft trsprt.....")); + +// anything went into the nucleus, counting back numbers to find differ + for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + { + if ( (*iter)->GetPosition().mag() < nucleusSize ) + { +// G4cout << " inside: " << iter << G4endl; + if((*iter)->GetDefinition()->GetBaryonNumber()!=0) secondaryCharge += G4int((*iter)->GetDefinition()->GetPDGCharge() + 0.1); + secondaryBarions += (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? 1 : 0; + secondaryMass += (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? + (*iter)->GetDefinition()->GetPDGMass() : 0; + } + // G4cerr <<"after tracking: "<<*iter<<" "<<(*iter)->Get4Momentum()< 0 ) massInNucleus +=secondaryMass; + +#ifdef debug_G4BinaryCascade + G4cout << " DoTimeStep, aft, A, Z, sec-Z,A,m,m_in_nucleus " + << currentA << " " + << currentZ << " " + << secondaryCharge << " " + << secondaryBarions << " " + << secondaryMass << " " + << massInNucleus << " " + << G4endl; +#endif +// Check for particles which have left the nucleus + G4KineticTrackVector addFinals; + G4double Mass = 0; + G4int n_out=0; + G4int aCharge=0; + G4int aNuc=0; + for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + { + //G4cout << "DoTimeStep nucl.radius, position.mag() : " <GetPosition().mag()<GetPosition().mag() > nucleusSize ) + { + G4double t_in=0,t_out=0; + G4bool intersects=((G4RKPropagation *)thePropagator)->GetSphereIntersectionTimes(*iter, t_in, t_out); + if ( ! intersects || ( intersects && t_out < 0 ) ) + { + // energy correction on outgoing particle for change of nucleus mass, ... just calculate now... + n_out++; + G4int outBarion=(*iter)->GetDefinition()->GetBaryonNumber() == 1 ? 1 : 0; + if (outBarion == 1 ) + { + Mass += (*iter)->GetDefinition()->GetPDGMass(); + aNuc ++; + aCharge += static_cast((*iter)->GetDefinition()->GetPDGCharge()+.1); + } + addFinals.push_back(*iter); + + // Check if this track is part in next collision +// G4cout <<"DoTimeStep kin track leaves : " << *iter << " " +// <<(*iter)->Get4Momentum()<<" "<<(*iter)->GetPosition()<<" !!!!!!!!!"<Print(); + if ( theCollisionMgr->Entries()> 0 && theCollisionMgr->GetNextCollision()->GetPrimary() == *iter ) + { +// G4cout << " DoTimeStep - WARNING: deleting current collision!" << G4endl; + success=false; + } + } + } + } + G4double correction(0); +// G4cerr <<" Entered "<.5 && currentA>1.5) // hpw try without the second condition on deuterium @@@@@ + { + //G4cerr << "testing "<GetIonTable()->GetIonMass(currentZ,currentA); + correction -= G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(currentZ+aCharge,currentA+aNuc); + if (n_out>1) correction= correction/n_out; +#ifdef debug_G4BinaryCascade + if (n_out>0) G4cout << "DoTimeStep n_out,energy correction,Mass, minNucl,second,newNucl " + << n_out << " "<< correction << " " + << Mass << " "<< massInNucleus << " "<< secondaryMass << " " + << G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(currentZ,currentA) << " " + << G4endl; +#endif + } + +// G4cerr <<" Exited "<GetDefinition()) + { + (*iter)->Update4Momentum((*iter)->Get4Momentum().e() - correction); + } + else + { + (*iter)->Update4Momentum((*iter)->Get4Momentum().e()); + thePrimaryEscape = true; + } + theFinalState.push_back(*iter); + } +// if(addFinals.size() !=0) PrintKTVector(&addFinals,G4std::string("addfinals corrected")); +// PrintKTVector(&theFinalState,G4std::string("FinalState")); + // now update currentZ,A as the change happened to the nucleus. + if (n_out > 0 ) + { + massInNucleus = 0; + if(currentZ>.5) + { + //G4cerr << "testing 1 "<GetIonTable()->GetIonMass(currentZ,currentA); + } else if (currentZ==0 && currentA==1 ) + { + massInNucleus = G4Neutron::Neutron()->GetPDGMass(); + } else + { + // G4cout << "G4BinaryCascade: Warning - invalid nucleus (A,Z)=(" + // << currentA << "," << currentZ << ")" << G4endl; + massInNucleus = 0; + } +#ifdef debug_G4BinaryCascade + G4cout << " DoTimeStep, nucl-update, A, Z, sec-Z,A,m,m_in_nucleus " + << currentA << " "<< currentZ << " " + << secondaryCharge << " "<< secondaryBarions << " "<< secondaryMass << " " + << massInNucleus << " " + << G4endl; +#endif + } + // need to delete particles pushd to theFinalState +// G4cout << "DoTimeStep: timeStep " << theTimeStep << G4endl; +// G4cout << "DoTimeStep: Collisions left: " << theCollisionMgr->Entries() << G4endl; + UpdateTracksAndCollisions(&addFinals,0 ,0); + + +// G4cout << "DoTimeStep: Collisions left: " << theCollisionMgr->Entries() << G4endl; +// G4cerr <<"G4BinaryCascade::DoTimeStep: exit "<Transport(theTargetList, dummy, theTimeStep); +} + +//---------------------------------------------------------------------------- + +G4Fragment * G4BinaryCascade::FindFragments() +//---------------------------------------------------------------------------- +{ + + G4int a = theTargetList.size()+theCapturedList.size(); +//G4cout << "target Captured: "<< theTargetList.size() << " " <GetDefinition()->GetPDGCharge() == eplus) + { + zTarget++; + } + } + + G4int zCaptured = 0; + G4LorentzVector CapturedMomentum=0; +// G4cout <<"Findfragments- Captured size: " <Get4Momentum() << G4endl; + CapturedMomentum += (*i)->Get4Momentum(); + if((*i)->GetDefinition()->GetPDGCharge() == eplus) + { + zCaptured++; + } + } + + G4int z = zTarget+zCaptured; +//debug +/* + * G4cout << " Fragment mass table / real " + * << G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(z, a) + * << " / " << GetFinal4Momentum().mag() + * << " difference " + * << GetFinal4Momentum().mag() - G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(z, a) + * << G4endl; + */ +// +// if(getenv("KCDEBUG") ) G4cerr << "Fragment A, Z "<< a <<" "<< z<GetMassNumber() - theTargetList.size(); + fragment->SetNumberOfHoles(holes); + + G4int excitons = theCapturedList.size(); +//GF fragment->SetNumberOfParticles(excitons-holes); + fragment->SetNumberOfParticles(excitons); + fragment->SetNumberOfCharged(zCaptured); + +// G4cout << "Fragment: a= " << a +// << " z= " << z +// << " particles= " << excitons +// << " Charged= " << zCaptured +// << " holes= " << holes +// << " excitE= " <Get4Momentum()<Get4Momentum()<1.0) + { + G4cerr << G4endl; + G4cerr << "G4BinaryCascade::GetFinal4Momentum - Fatal"<Get4Momentum()<<", "<<(*i)->GetDefinition()->GetParticleName()<Get4Momentum()<<(*i)->GetDefinition()->GetParticleName()<Get4Momentum(); + } +//G4cout << "GetFinalNucleusMomentum CapturedMomentum= " <size() + << G4endl; + G4std::vector::iterator i; + G4int count; + + for(count = 0, i = ktv->begin(); i != ktv->end(); ++i, ++count) + { + G4KineticTrack * kt = *i; + G4cout << " track n. " << count << ", id: " << kt << G4endl; + G4ThreeVector pos = kt->GetPosition(); + G4LorentzVector mom = kt->Get4Momentum(); + G4ParticleDefinition * definition = kt->GetDefinition(); + G4cout << " definition: " << definition->GetPDGEncoding() << " pos: " + << 1/fermi*pos << " R: " << 1/fermi*pos.mag() << " 4mom: " + << 1/MeV*mom << " P: " << 1/MeV*mom.vect().mag() + << " M: " << 1/MeV*mom.mag() << G4endl; + } +} + +//---------------------------------------------------------------------------- +G4bool G4BinaryCascade::CheckDecay(G4KineticTrackVector * products) +//---------------------------------------------------------------------------- +{ + G4int A = the3DNucleus->GetMassNumber(); + G4int Z = the3DNucleus->GetCharge(); + + G4FermiMomentum fermiMom; + fermiMom.Init(A, Z); + + const G4VNuclearDensity * density=the3DNucleus->GetNuclearDensity(); + + G4KineticTrackVector::iterator i; + G4ParticleDefinition * definition; + +// ------ debug + G4bool myflag = true; +// ------ end debug + for(i = products->begin(); i != products->end(); ++i) + { + definition = (*i)->GetDefinition(); + if((definition->GetParticleName() != "delta++" )&& + (definition->GetParticleName() != "delta+" )&& + (definition->GetParticleName() != "delta0" )&& + (definition->GetParticleName() != "delta-" )) + continue; + G4ThreeVector pos = (*i)->GetPosition(); + G4double d = density->GetDensity(pos); + G4double pFermi= fermiMom.GetFermiMomentum(d); + G4LorentzVector mom = (*i)->Get4Momentum(); + G4LorentzRotation boost(mom.boostVector()); + G4ThreeVector pion3(227*MeV * mom.vect().unit()); // 227 is decay product in rest frame + G4LorentzVector pion(pion3, sqrt(sqr(140*MeV) +pion3.mag())); + // G4cout << "pi rest " << pion << G4endl; + pion = boost * pion; + // G4cout << "pi lab " << pion << G4endl; +// ------ debug +// G4cout << "p:[" << (1/MeV)*pion.x() << " " << (1/MeV)*pion.y() << " " +// << (1/MeV)*pion.z() << "] |p3|:" +// << (1/MeV)*pion.vect().mag() << " E:" << (1/MeV)*pion.t() << " ] m: " +// << (1/MeV)*pion.mag() << " pos[" +// << (1/fermi)*pos.x() << " "<< (1/fermi)*pos.y() << " " +// << (1/fermi)*pos.z() << "] |Dpos|: " +// << " Pfermi:" +// << (1/MeV)*pFermi << G4endl; +// ------ end debug + + if( pion.vect().mag() < pFermi ) + { +// ------ debug + myflag = false; +// ------ end debug + } + } + return myflag; +// return true; +} + +void G4BinaryCascade::PrintWelcomeMessage() +{ + G4cout <<"Thank you for using G4KineticCascade. "<GetMassNumber(); + factor = hbarc*hbarc*pow(3.*pi2*A,2./3.)/3.; +} + + +void G4KM_NucleonEqRhs::EvaluateRhsGivenB(const G4double y[], + const G4double B[3], + G4double dydx[]) const +{ + G4double yMod = sqrt(y[0]*y[0]+y[1]*y[1]+y[2]*y[2]); + G4double e = sqrt(theMass*theMass+y[3]*y[3]+y[4]*y[4]+y[5]*y[5]); + +// y[0..2] is position +// y[3..5] is momentum (and not mom.direction) + + dydx[0] = c_light*y[3]/e; // + dydx[1] = c_light*y[4]/e; // dq/dt=dH/dp = c*p/e + dydx[2] = c_light*y[5]/e; // + +/* + * // debug + * G4cout << " Nucleon RHS : 0..2(dpos/dt) " << + * dydx[0] << " " << + * dydx[1] << " " << + * dydx[2] << " " << G4endl; + */ + + +// V=K*rho(r) ==> dydx[3] = -dV/dr*dr/dx = -K*d(rho)/dr*dr/dx. +// GF should be V=K*rho(r) ==> dydx[3] = -dV/dr*dr/dx = -K*d(rho)/dr*dr/dt +// GF and dV/dt = dE/dt ==> dp/dt = dE/dt * dp/dE = dE/dt *e/p +// Idem for dydx[4] and dydx[5] + + G4ThreeVector pos(y[0],y[1],y[2]); + + const G4VNuclearDensity * nuclearDensity=theNucleus->GetNuclearDensity(); + +// do not check for theMass != 0 : it is an error and core dump will signal it + + G4double deriv = (factor/theMass)* + pow(nuclearDensity->GetDensity(pos), -1./3.)*nuclearDensity->GetDeriv(pos); + +// dydx[3] = yMod == 0 ? 0 : -deriv*y[0]/yMod; +// dydx[4] = yMod == 0 ? 0 : -deriv*y[1]/yMod; +// dydx[5] = yMod == 0 ? 0 : -deriv*y[2]/yMod; + dydx[3] = yMod == 0 ? 0 : deriv*y[0]/yMod*c_light; + dydx[4] = yMod == 0 ? 0 : deriv*y[1]/yMod*c_light; + dydx[5] = yMod == 0 ? 0 : deriv*y[2]/yMod*c_light; + + +/* + * // debug + * G4cout << " Nucleon RHS : 3..5(dE/dt) " << + * dydx[3] << " " << + * dydx[4] << " " << + * dydx[5] << " " << G4endl; + */ +} + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc new file mode 100644 index 0000000000..b79bd59fde --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4KM_OpticalEqRhs.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- + +#include "G4KM_OpticalEqRhs.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" + + +G4KM_OpticalEqRhs::G4KM_OpticalEqRhs(G4KM_DummyField *field, + G4V3DNucleus * nucleus) : + G4Mag_EqRhs(field), theNucleus(nucleus) +{ + theFactor = 0; + theMass = 0; +} + + +void G4KM_OpticalEqRhs::SetFactor(G4double mass, G4double opticalParameter) +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = mass*nucleusMass/(mass+nucleusMass); + + G4double nucleonMass = (proton_mass_c2+neutron_mass_c2)/2; + +// _factor in (MeV*fermi)*fermi/MeV = fermi*fermi -- need to have A as density normalized to 1 + theFactor = 2*pi*hbarc*hbarc*(1+mass/nucleonMass)* opticalParameter/reducedMass * A; + + theMass = mass; +} + + +void G4KM_OpticalEqRhs::EvaluateRhsGivenB(const G4double y[], const G4double B[3], + G4double dydx[]) const +{ + G4double yMod = sqrt(y[0]*y[0]+y[1]*y[1]+y[2]*y[2]); + G4double e = sqrt(theMass*theMass+y[3]*y[3]+y[4]*y[4]+y[5]*y[5]); + dydx[0] = c_light*y[3]/e; // + dydx[1] = c_light*y[4]/e; // dq/dt=dH/dp = c*p/e + dydx[2] = c_light*y[5]/e; // + +// V=K*rho(r) ==> dydx[3] = -dV/dr*dr/dx = -K*d(rho)/dr*dr/dx. +// Idem for dydx[4] and dydx[5] + + const G4VNuclearDensity * nuclearDensity=theNucleus->GetNuclearDensity(); + + G4ThreeVector pos(y[0],y[1],y[2]); + G4double deriv = theFactor*nuclearDensity->GetDeriv(pos); + + dydx[3] = yMod == 0 ? 0 : -deriv*y[0]/yMod*c_light; + dydx[4] = yMod == 0 ? 0 : -deriv*y[1]/yMod*c_light; + dydx[5] = yMod == 0 ? 0 : -deriv*y[2]/yMod*c_light; +} + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.cc new file mode 100644 index 0000000000..4fa6e2094f --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4KaonMinusField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4KaonMinusField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4KaonMinus.hh" + +G4KaonMinusField::G4KaonMinusField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4KaonMinusField::~G4KaonMinusField() +{ } + + +const G4KaonMinusField & G4KaonMinusField::operator=(const G4KaonMinusField & right) +{ + G4Exception("G4KaonMinusField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4KaonMinusField::operator==(const G4KaonMinusField & right) const +{ + G4Exception("G4KaonMinusField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4KaonMinusField::operator!=(const G4KaonMinusField & right) const +{ + G4Exception("G4KaonMinusField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4KaonMinusField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double kaonMass = G4KaonMinus::KaonMinus()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = kaonMass*nucleusMass/(kaonMass+nucleusMass); + + G4double density = theNucleus->GetNuclearDensity()->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density+GetBarrier(); +} + + +G4double G4KaonMinusField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return -coulombBarrier; +} + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.cc new file mode 100644 index 0000000000..ee9ddd6cb7 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4KaonPlusField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4KaonPlusField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4KaonPlus.hh" + +G4KaonPlusField::G4KaonPlusField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4KaonPlusField::~G4KaonPlusField() +{ } + + +const G4KaonPlusField & G4KaonPlusField::operator=(const G4KaonPlusField & right) +{ + G4Exception("G4KaonPlusField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4KaonPlusField::operator==(const G4KaonPlusField & right) const +{ + G4Exception("G4KaonPlusField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4KaonPlusField::operator!=(const G4KaonPlusField & right) const +{ + G4Exception("G4KaonPlusField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4KaonPlusField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double kaonMass = G4KaonPlus::KaonPlus()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = kaonMass*nucleusMass/(kaonMass+nucleusMass); + + G4double density = theNucleus->GetNuclearDensity()->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density+GetBarrier(); +} + +G4double G4KaonPlusField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return coulombBarrier; +} + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.cc new file mode 100644 index 0000000000..a1941d84fe --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4KaonZeroField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4KaonZeroField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4KaonZero.hh" + +G4KaonZeroField::G4KaonZeroField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4KaonZeroField::~G4KaonZeroField() +{ } + + +const G4KaonZeroField & G4KaonZeroField::operator=(const G4KaonZeroField & right) +{ + G4Exception("G4KaonZeroField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4KaonZeroField::operator==(const G4KaonZeroField & right) const +{ + G4Exception("G4KaonZeroField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4KaonZeroField::operator!=(const G4KaonZeroField & right) const +{ + G4Exception("G4KaonZeroField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4KaonZeroField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double kaonMass = G4KaonZero::KaonZero()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = kaonMass*nucleusMass/(kaonMass+nucleusMass); + + G4double density = theNucleus->GetNuclearDensity()->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density; +} + +G4double G4KaonZeroField::GetBarrier() +{ + return 0; +} + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc new file mode 100644 index 0000000000..5535549be2 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * 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 implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4NeutronField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4NeutronField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" + + +G4NeutronField::G4NeutronField(G4V3DNucleus * aNucleus) : + G4VNuclearField(aNucleus), theDensity(theNucleus->GetNuclearDensity()) +{ + theA = theNucleus->GetMassNumber(); + theZ = theNucleus->GetCharge(); + theFermi.Init(theA, theZ); + theR = 2.*theNucleus->GetOuterRadius(); + G4double aR=0; + while(aR(x/(0.3*fermi) ); + if(index+2>theFermiMomBuffer.size()) return theFermiMomBuffer.back(); + G4double y1 = theFermiMomBuffer[index]; + G4double y2 = theFermiMomBuffer[index+1]; + G4double x1 = (0.3*fermi)*index; + G4double x2 = (0.3*fermi)*(index+1); + G4double fermiMom = y1 + (x-x1)*(y2-y1)/(x2-x1); + return -1*(fermiMom*fermiMom)/(2*neutron_mass_c2); +} + + + +G4double G4NeutronField::GetBarrier() +{ +/* + * G4double A = theNucleus->GetMassNumber(); + * G4double Z = theNucleus->GetCharge(); + * + * return G4NucleiPropertiesTable::GetBindingEnergy(Z, A)/A; + */ + return 0.; +} + + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.cc new file mode 100644 index 0000000000..02d19f9fd3 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4PionMinusField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4PionMinusField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4PionMinus.hh" + +G4PionMinusField::G4PionMinusField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4PionMinusField::~G4PionMinusField() +{ } + + +const G4PionMinusField & G4PionMinusField::operator=(const G4PionMinusField & right) +{ + G4Exception("G4PionMinusField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4PionMinusField::operator==(const G4PionMinusField & right) const +{ + G4Exception("G4PionMinusField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4PionMinusField::operator!=(const G4PionMinusField & right) const +{ + G4Exception("G4PionMinusField::operator!= meant not to be accessible"); + return 1; +} + + +G4double G4PionMinusField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double pionMinusMass = G4PionMinus::PionMinus()->GetPDGMass(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = pionMinusMass*nucleusMass/(pionMinusMass+nucleusMass); + + G4double density = A*theNucleus->GetNuclearDensity()->GetDensity(aPosition); + G4double nucleonMass = (proton_mass_c2+neutron_mass_c2)/2; + + return 2.*pi*hbarc*hbarc/reducedMass*(1+pionMinusMass/nucleonMass)*theCoeff*density + GetBarrier(); +} + + +G4double G4PionMinusField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return -coulombBarrier; +} + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.cc new file mode 100644 index 0000000000..a5f47d63cb --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4PionPlusField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4PionPlusField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4PionPlus.hh" + + +G4PionPlusField::G4PionPlusField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4PionPlusField::~G4PionPlusField() +{ } + + +const G4PionPlusField & G4PionPlusField::operator=(const G4PionPlusField & right) +{ + G4Exception("G4PionPlusField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4PionPlusField::operator==(const G4PionPlusField & right) const +{ + G4Exception("G4PionPlusField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4PionPlusField::operator!=(const G4PionPlusField & right) const +{ + G4Exception("G4PionPlusField::operator!= meant not to be accessible"); + return 1; +} + + +G4double G4PionPlusField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double pionPlusMass = G4PionPlus::PionPlus()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = pionPlusMass*nucleusMass/(pionPlusMass+nucleusMass); + + G4double density = A*theNucleus->GetNuclearDensity()->GetDensity(aPosition); + G4double nucleonMass = (proton_mass_c2+neutron_mass_c2)/2; + + return 2.*pi*hbarc*hbarc/reducedMass*(1+pionPlusMass/nucleonMass)*theCoeff*density + GetBarrier(); +} + + +G4double G4PionPlusField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return coulombBarrier; +} diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.cc new file mode 100644 index 0000000000..c62d896e70 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4PionZeroField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4PionZeroField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4PionZero.hh" + + +G4PionZeroField::G4PionZeroField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4PionZeroField::~G4PionZeroField() +{ } + + +const G4PionZeroField & G4PionZeroField::operator=(const G4PionZeroField & right) +{ + G4Exception("G4PionZeroField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4PionZeroField::operator==(const G4PionZeroField & right) const +{ + G4Exception("G4PionZeroField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4PionZeroField::operator!=(const G4PionZeroField & right) const +{ + G4Exception("G4PionZeroField::operator!= meant not to be accessible"); + return 1; +} + + +G4double G4PionZeroField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double pionZeroMass = G4PionZero::PionZero()->GetPDGMass(); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = pionZeroMass*nucleusMass/(pionZeroMass+nucleusMass); + + + G4double density = A*theNucleus->GetNuclearDensity()->GetDensity(aPosition); + G4double nucleonMass = (proton_mass_c2+neutron_mass_c2)/2; + + return 2.*pi*hbarc*hbarc/reducedMass*(1+pionZeroMass/nucleonMass)*theCoeff*density; +} + +G4double G4PionZeroField::GetBarrier() +{ + return 0; +} diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc new file mode 100644 index 0000000000..b01605dc76 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc @@ -0,0 +1,130 @@ +// +// ******************************************************************** +// * 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 implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4ProtonField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4ProtonField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4V3DNucleus.hh" + +G4ProtonField::G4ProtonField(G4V3DNucleus * aNucleus) : + G4VNuclearField(aNucleus), theDensity(theNucleus->GetNuclearDensity()) +{ + theA = theNucleus->GetMassNumber(); + theZ = theNucleus->GetCharge(); + theBarrier = GetBarrier(); + theRadius = 2.*theNucleus->GetOuterRadius(); + theFermi.Init(theA, theZ); + G4double aR=0; + while(aR(x/(0.3*fermi) ); + if(index+2>theFermiMomBuffer.size()) return theFermiMomBuffer.back(); + G4double y1 = theFermiMomBuffer[index]; + G4double y2 = theFermiMomBuffer[index+1]; + G4double x1 = (0.3*fermi)*index; + G4double x2 = (0.3*fermi)*(index+1); + G4double fermiMom = y1 + (x-x1)*(y2-y1)/(x2-x1); + G4double y = -1*(fermiMom*fermiMom)/(2*proton_mass_c2)+theBarrier; +// G4cout <<" Protonfield test "<Get4Momentum().e(); + for(G4int c2 = c1 + 1; c2 < nBarion; c2++) + { + G4KineticTrack* p2 = Barions.operator[](c2); + G4ThreeVector rv = p1->GetPosition() - p2->GetPosition(); + G4double r12 = sqrt(rv*rv)*fermi; + + // Esk2 + Etot += t1*pow(Alpha/pi, 3/2)*exp(-Alpha*r12*r12); + + // Eyuk + Etot += Vo*0.5/r12*exp(1/(4*Alpha*GammaY*GammaY))* + (exp(-r12/GammaY)*(1 - Erf(0.5/GammaY/sqrt(Alpha) - sqrt(Alpha)*r12)) - + exp( r12/GammaY)*(1 - Erf(0.5/GammaY/sqrt(Alpha) + sqrt(Alpha)*r12))); + + // Ecoul + Etot += 1.44*p1->GetDefinition()->GetPDGCharge()*p2->GetDefinition()->GetPDGCharge()/r12*Erf(sqrt(Alpha)*r12); + + // Epaul + Etot = 0; + + for(G4int c3 = c2 + 1; c3 < nBarion; c3++) + { + G4KineticTrack* p3 = Barions.operator[](c3); + G4ThreeVector rv = p1->GetPosition() - p3->GetPosition(); + G4double r13 = sqrt(rv*rv)*fermi; + + // Esk3 + Etot = tGamma*pow(4*Alpha*Alpha/3/pi/pi, 1.5)*exp(-Alpha*(r12*r12 + r13*r13)); + } + } + } + return Etot; +} + +//************************************************************************************************ +// originated from the Numerical recipes error function +G4double G4RKFieldIntegrator::Erf(G4double X) +{ + const G4double Z1 = 1; + const G4double HF = Z1/2; + const G4double C1 = 0.56418958; + + const G4double P10 = +3.6767877; + const G4double Q10 = +3.2584593; + const G4double P11 = -9.7970465E-2; + + static G4double P2[5] = { 7.3738883, 6.8650185, 3.0317993, 0.56316962, 4.3187787e-5 }; + static G4double Q2[5] = { 7.3739609, 15.184908, 12.79553, 5.3542168, 1. }; + + const G4double P30 = -1.2436854E-1; + const G4double Q30 = +4.4091706E-1; + const G4double P31 = -9.6821036E-2; + + G4double V = abs(X); + G4double H; + G4double Y; + G4int c1; + + if(V < HF) + { + Y = V*V; + H = X*(P10 + P11*Y)/(Q10+Y); + } + else + { + if(V < 4) + { + G4double AP = P2[4]; + G4double AQ = Q2[4]; + for(c1 = 3; c1 >= 0; c1--) + { + AP = P2[c1] + V*AP; + AQ = Q2[c1] + V*AQ; + } + H = 1 - exp(-V*V)*AP/AQ; + } + else + { + Y = 1./V*V; + H = 1 - exp(-V*V)*(C1+Y*(P30 + P31*Y)/(Q30 + Y))/V; + } + if (X < 0) + H =- H; + } + return H; +} + +//************************************************************************************************ +//This is a QMD version to calculate excitation energy of a fragment, +//which consists from G4KTV &the Particles +/* +G4double G4RKFieldIntegrator::GetExcitationEnergy(const G4KineticTrackVector &theParticles) +{ + // Excitation energy of a fragment consisting from A nucleons and Z protons + // is Etot - Z*Mp - (A - Z)*Mn - B(A, Z), where B(A,Z) is the binding energy of fragment + // and Mp, Mn are proton and neutron mass, respectively. + G4int NZ = 0; + G4int NA = 0; + G4double Etot = CalculateTotalEnergy(theParticles); + for(G4int cParticle = 0; cParticle < theParticles.length(); cParticle++) + { + G4KineticTrack* pKineticTrack = theParticles.at(cParticle); + G4int Encoding = abs(pKineticTrack->GetDefinition()->GetPDGEncoding()); + if (Encoding == 2212) + NZ++, NA++; + if (Encoding == 2112) + NA++; + Etot -= pKineticTrack->GetDefinition()->GetPDGMass(); + } + return Etot - G4NucleiProperties::GetBindingEnergy(NZ, NA); +} +*/ + +//************************************************************************************************************************************* +//This is a simplified method to get excitation energy of a residual +// nucleus with nHitNucleons. +G4double G4RKFieldIntegrator::GetExcitationEnergy(G4int nHitNucleons, const G4KineticTrackVector &theParticles) +{ + const G4double MeanE = 50; + G4double Sum = 0; + for(G4int c1 = 0; c1 < nHitNucleons; c1++) + { + Sum += -MeanE*log(G4UniformRand()); + } + return Sum; +} +//************************************************************************************************************************************* + +/* +//This is free propagation of particles for CASCADE mode. Target nucleons should be frozen +void G4RKFieldIntegrator::Integrate(G4KineticTrackVector& theParticles) + { + for(G4int cParticle = 0; cParticle < theParticles.length(); cParticle++) + { + G4KineticTrack* pKineticTrack = theParticles.at(cParticle); + pKineticTrack->SetPosition(pKineticTrack->GetPosition() + theTimeStep*pKineticTrack->Get4Momentum().boostVector()); + } + } +*/ +//************************************************************************************************************************************* + +void G4RKFieldIntegrator::Integrate(const G4KineticTrackVector& theBarions, G4double theTimeStep) +{ + for(size_t cParticle = 0; cParticle < theBarions.size(); cParticle++) + { + G4KineticTrack* pKineticTrack = theBarions[cParticle]; + pKineticTrack->SetPosition(pKineticTrack->GetPosition() + theTimeStep*pKineticTrack->Get4Momentum().boostVector()); + } +} + +//************************************************************************************************************************************* + +// constant to calculate theCoulomb barrier +const G4double G4RKFieldIntegrator::coulomb = 1.44 / 1.14 * MeV; + +// kaon's potential constant (real part only) +// 0.35 + i0.82 or 0.63 + i0.89 fermi +const G4double G4RKFieldIntegrator::a_kaon = 0.35; + +// pion's potential constant (real part only) +//!! for pions it has todiffer from kaons +// 0.35 + i0.82 or 0.63 + i0.89 fermi +const G4double G4RKFieldIntegrator::a_pion = 0.35; + +// antiproton's potential constant (real part only) +// 1.53 + i2.50 fermi +const G4double G4RKFieldIntegrator::a_antiproton = 1.53; + +// methods for calculating potentials for different types of particles +// aPosition is relative to the nucleus center +G4double G4RKFieldIntegrator::GetNeutronPotential(G4double radius) +{ + /* + const G4double Mn = 939.56563 * MeV; // mass of nuetron + + G4VNuclearDensity *theDencity; + if(theA < 17) theDencity = new G4NuclearShellModelDensity(theA, theZ); + else theDencity = new G4NuclearFermiDensity(theA, theZ); + + // GetDencity() accepts only G4ThreeVector so build it: + G4ThreeVector aPosition(0.0, 0.0, radius); + G4double density = theDencity->GetDensity(aPosition); + delete theDencity; + + G4FermiMomentum *fm = new G4FermiMomentum(); + fm->Init(theA, theZ); + G4double fermiMomentum = fm->GetFermiMomentum(density); + delete fm; + + return sqr(fermiMomentum)/(2 * Mn) + + G4CreateNucleus::GetBindingEnergy(theZ, theA)/theA; + //+ G4NucleiProperties::GetBindingEnergy(theZ, theA)/theA; + */ + + return 0.0; +} + +G4double G4RKFieldIntegrator::GetProtonPotential(G4double radius) +{ + /* + // calculate Coulomb barrier value + G4double theCoulombBarrier = coulomb * theZ/(1. + pow(theA, 1./3.)); + const G4double Mp = 938.27231 * MeV; // mass of proton + + G4VNuclearDensity *theDencity; + if(theA < 17) theDencity = new G4NuclearShellModelDensity(theA, theZ); + else theDencity = new G4NuclearFermiDensity(theA, theZ); + + // GetDencity() accepts only G4ThreeVector so build it: + G4ThreeVector aPosition(0.0, 0.0, radius); + G4double density = theDencity->GetDensity(aPosition); + delete theDencity; + + G4FermiMomentum *fm = new G4FermiMomentum(); + fm->Init(theA, theZ); + G4double fermiMomentum = fm->GetFermiMomentum(density); + delete fm; + + return sqr(fermiMomentum)/ (2 * Mp) + + G4CreateNucleus::GetBindingEnergy(theZ, theA)/theA; + //+ G4NucleiProperties::GetBindingEnergy(theZ, theA)/theA + + theCoulombBarrier; + */ + + return 0.0; +} + +G4double G4RKFieldIntegrator::GetAntiprotonPotential(G4double radius) +{ + /* + //G4double theM = G4NucleiProperties::GetAtomicMass(theA, theZ); + G4double theM = theZ * G4Proton::Proton()->GetPDGMass() + + (theA - theZ) * G4Neutron::Neutron()->GetPDGMass() + + G4CreateNucleus::GetBindingEnergy(theZ, theA); + + const G4double Mp = 938.27231 * MeV; // mass of proton + G4double mu = (theM * Mp)/(theM + Mp); + + // antiproton's potential coefficient + // V = coeff_antiproton * nucleus_density + G4double coeff_antiproton = -2.*pi/mu * (1. + Mp) * a_antiproton; + + G4VNuclearDensity *theDencity; + if(theA < 17) theDencity = new G4NuclearShellModelDensity(theA, theZ); + else theDencity = new G4NuclearFermiDensity(theA, theZ); + + // GetDencity() accepts only G4ThreeVector so build it: + G4ThreeVector aPosition(0.0, 0.0, radius); + G4double density = theDencity->GetDensity(aPosition); + delete theDencity; + + return coeff_antiproton * density; + */ + + return 0.0; +} + +G4double G4RKFieldIntegrator::GetKaonPotential(G4double radius) +{ + /* + //G4double theM = G4NucleiProperties::GetAtomicMass(theA, theZ); + G4double theM = theZ * G4Proton::Proton()->GetPDGMass() + + (theA - theZ) * G4Neutron::Neutron()->GetPDGMass() + + G4CreateNucleus::GetBindingEnergy(theZ, theA); + + const G4double Mk = 496. * MeV; // mass of "kaon" + G4double mu = (theM * Mk)/(theM + Mk); + + // kaon's potential coefficient + // V = coeff_kaon * nucleus_density + G4double coeff_kaon = -2.*pi/mu * (1. + Mk/theM) * a_kaon; + + G4VNuclearDensity *theDencity; + if(theA < 17) theDencity = new G4NuclearShellModelDensity(theA, theZ); + else theDencity = new G4NuclearFermiDensity(theA, theZ); + + // GetDencity() accepts only G4ThreeVector so build it: + G4ThreeVector aPosition(0.0, 0.0, radius); + G4double density = theDencity->GetDensity(aPosition); + delete theDencity; + + return coeff_kaon * density; + */ + + return 0.0; +} + +G4double G4RKFieldIntegrator::GetPionPotential(G4double radius) +{ + /* + //G4double theM = G4NucleiProperties::GetAtomicMass(theA, theZ); + G4double theM = theZ * G4Proton::Proton()->GetPDGMass() + + (theA - theZ) * G4Neutron::Neutron()->GetPDGMass() + + G4CreateNucleus::GetBindingEnergy(theZ, theA); + + const G4double Mpi = 139. * MeV; // mass of "pion" + G4double mu = (theM * Mpi)/(theM + Mpi); + + // pion's potential coefficient + // V = coeff_pion * nucleus_density + G4double coeff_pion = -2.*pi/mu * (1. + Mpi) * a_pion; + + G4VNuclearDensity *theDencity; + if(theA < 17) theDencity = new G4NuclearShellModelDensity(theA, theZ); + else theDencity = new G4NuclearFermiDensity(theA, theZ); + + // GetDencity() accepts only G4ThreeVector so build it: + G4ThreeVector aPosition(0.0, 0.0, radius); + G4double density = theDencity->GetDensity(aPosition); + delete theDencity; + + return coeff_pion * density; + */ + + return 0.0; +} diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc new file mode 100644 index 0000000000..fc0ccb4d28 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc @@ -0,0 +1,608 @@ +// +// ******************************************************************** +// * 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 implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4RKPropagation.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 6 June 2000 +// ------------------------------------------------------------------- +#include "G4RKPropagation.hh" +// nuclear fields +#include "G4VNuclearField.hh" +#include "G4ProtonField.hh" +#include "G4NeutronField.hh" +#include "G4AntiProtonField.hh" +#include "G4KaonPlusField.hh" +#include "G4KaonMinusField.hh" +#include "G4KaonZeroField.hh" +#include "G4PionPlusField.hh" +#include "G4PionMinusField.hh" +#include "G4PionZeroField.hh" +#include "G4SigmaPlusField.hh" +#include "G4SigmaMinusField.hh" +#include "G4SigmaZeroField.hh" +// particles properties +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4AntiProton.hh" +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4KaonZero.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4PionZero.hh" +#include "G4SigmaPlus.hh" +#include "G4SigmaMinus.hh" +#include "G4SigmaZero.hh" + +#include "globals.hh" + +#include "G4KM_OpticalEqRhs.hh" +#include "G4KM_NucleonEqRhs.hh" +#include "G4ClassicalRK4.hh" +#include "G4MagIntegratorDriver.hh" + +// unsigned EncodingHashFun(const G4int& aEncoding); + +G4RKPropagation::G4RKPropagation() : theNucleus(0), + theFieldMap(0), theEquationMap(0), + theField(0) +{ } + + +G4RKPropagation::G4RKPropagation(const G4RKPropagation &right) +{ } + + +G4RKPropagation::~G4RKPropagation() +{ +// free theFieldMap memory + if(theFieldMap) delete_FieldsAndMap(theFieldMap); + +// free theEquationMap memory + if(theEquationMap) delete_EquationsAndMap(theEquationMap); + + if (theField) delete theField; +} + + + +const G4RKPropagation & G4RKPropagation::operator=(const G4RKPropagation & right) +{ + G4Exception("G4RKPropagation::operator= meant not to be accessible"); + return *this; +} + +G4int G4RKPropagation::operator==(const G4RKPropagation & right) const +{ + G4Exception("G4RKPropagation::operator== meant not to be accessible"); + return 0; +} + +G4int G4RKPropagation::operator!=(const G4RKPropagation & right) const +{ + G4Exception("G4RKPropagation::operator!= meant not to be accessible"); + return 1; +} + +//---------------------------------------------------------------------------- + + +//---------------------------------------------------------------------------- +void G4RKPropagation::Init(G4V3DNucleus * nucleus) +//---------------------------------------------------------------------------- +{ + +// free theFieldMap memory + if(theFieldMap) delete_FieldsAndMap(theFieldMap); + +// free theEquationMap memory + if(theEquationMap) delete_EquationsAndMap(theEquationMap); + + if (theField) delete theField; + +// Initialize the nuclear field map. + theNucleus = nucleus; + theOuterRadius = theNucleus->GetOuterRadius(); + + theFieldMap = new G4std::map >; + + (*theFieldMap)[G4Proton::Proton()->GetPDGEncoding()] = new G4ProtonField(theNucleus); + (*theFieldMap)[G4Neutron::Neutron()->GetPDGEncoding()] = new G4NeutronField(theNucleus); + (*theFieldMap)[G4AntiProton::AntiProton()->GetPDGEncoding()] = new G4AntiProtonField(theNucleus); + (*theFieldMap)[G4KaonPlus::KaonPlus()->GetPDGEncoding()] = new G4KaonPlusField(theNucleus); + (*theFieldMap)[G4KaonMinus::KaonMinus()->GetPDGEncoding()] = new G4KaonMinusField(theNucleus); + (*theFieldMap)[G4KaonZero::KaonZero()->GetPDGEncoding()] = new G4KaonZeroField(theNucleus); + (*theFieldMap)[G4PionPlus::PionPlus()->GetPDGEncoding()] = new G4PionPlusField(theNucleus); + (*theFieldMap)[G4PionMinus::PionMinus()->GetPDGEncoding()] = new G4PionMinusField(theNucleus); + (*theFieldMap)[G4PionZero::PionZero()->GetPDGEncoding()] = new G4PionZeroField(theNucleus); + (*theFieldMap)[G4SigmaPlus::SigmaPlus()->GetPDGEncoding()] = new G4SigmaPlusField(theNucleus); + (*theFieldMap)[G4SigmaMinus::SigmaMinus()->GetPDGEncoding()] = new G4SigmaMinusField(theNucleus); + (*theFieldMap)[G4SigmaZero::SigmaZero()->GetPDGEncoding()] = new G4SigmaZeroField(theNucleus); + + theEquationMap = new G4std::map >; + +// theField needed by the design of G4Mag_eqRhs + theField = new G4KM_DummyField; //Field not needed for integration + G4KM_OpticalEqRhs * opticalEq; + G4KM_NucleonEqRhs * nucleonEq; + G4double mass; + G4double opticalCoeff; + + nucleonEq = new G4KM_NucleonEqRhs(theField, theNucleus); + mass = G4Proton::Proton()->GetPDGMass(); + nucleonEq->SetMass(mass); + (*theEquationMap)[G4Proton::Proton()->GetPDGEncoding()] = nucleonEq; + + nucleonEq = new G4KM_NucleonEqRhs(theField, theNucleus); + mass = G4Neutron::Neutron()->GetPDGMass(); + nucleonEq->SetMass(mass); + (*theEquationMap)[G4Neutron::Neutron()->GetPDGEncoding()] = nucleonEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4AntiProton::AntiProton()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4AntiProton::AntiProton()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4AntiProton::AntiProton()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4KaonPlus::KaonPlus()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4KaonPlus::KaonPlus()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4KaonPlus::KaonPlus()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4KaonMinus::KaonMinus()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4KaonMinus::KaonMinus()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4KaonMinus::KaonMinus()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4KaonZero::KaonZero()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4KaonZero::KaonZero()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4KaonZero::KaonZero()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4PionPlus::PionPlus()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4PionPlus::PionPlus()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4PionPlus::PionPlus()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4PionMinus::PionMinus()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4PionMinus::PionMinus()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4PionMinus::PionMinus()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4PionZero::PionZero()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4PionZero::PionZero()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4PionZero::PionZero()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4SigmaPlus::SigmaPlus()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4SigmaPlus::SigmaPlus()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4SigmaPlus::SigmaPlus()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4SigmaMinus::SigmaMinus()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4SigmaMinus::SigmaMinus()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4SigmaMinus::SigmaMinus()->GetPDGEncoding()] = opticalEq; + + opticalEq = new G4KM_OpticalEqRhs(theField, theNucleus); + mass = G4SigmaZero::SigmaZero()->GetPDGMass(); + opticalCoeff = + (*theFieldMap)[G4SigmaZero::SigmaZero()->GetPDGEncoding()]->GetCoeff(); + opticalEq->SetFactor(mass,opticalCoeff); + (*theEquationMap)[G4SigmaZero::SigmaZero()->GetPDGEncoding()] = opticalEq; +} + + + +//---------------------------------------------------------------------------- +void G4RKPropagation::Transport(G4KineticTrackVector & active, +//---------------------------------------------------------------------------- + const G4KineticTrackVector & spectators, + G4double timeStep) +{ + +// Loop over tracks + + G4std::vector::iterator i; + for(i = active.begin(); i != active.end(); ++i) + { + G4double currTimeStep = timeStep; + G4KineticTrack * kt = *i; + G4int encoding = kt->GetDefinition()->GetPDGEncoding(); + G4std::map >::iterator fieldIter= theFieldMap->find(encoding); + + G4VNuclearField* currentField=0; + if ( fieldIter != theFieldMap->end() ) currentField=fieldIter->second; + +// debug +// if ( timeStep > 1e30 ) { +// G4cout << " Name :" << kt->GetDefinition()->GetParticleName() << G4endl; +// } +// @hpw@ debugging: free transport..... @@@@@@@@@@@@@@@ +//gf pos = pos+(currTimeStep*c_light/mom.e())*mom.vect(); +//gf kt->SetPosition(pos); +//gf continue; +// @hpw@ debugging: free transport..... + +// Get the time of intersections with the nucleus surface. + G4double t_enter, t_leave; +// if the particle does not intersecate with the nucleus go to next particle + if(!GetSphereIntersectionTimes(kt, t_enter, t_leave)) + continue; + +/* + * G4cout <<" timeStep, Intersection times tenter, tleave " + * << currTimeStep << " / " << t_enter << " / " << t_leave <GetDefinition()->GetParticleName() << G4endl; + continue; + } + + if(t_enter > 0) // the particle is out. Transport free to the surface + { + if(t_enter > currTimeStep) // the particle won't enter the nucleus + { + FreeTransport(kt, currTimeStep); + continue; + } + else + { + FreeTransport(kt, t_enter); // go to surface + currTimeStep -= t_enter; + t_leave -= t_enter; // time left to leave nucleus +// on the surface the particle loose the barrier energy +// G4double newE = mom.e()-(*theFieldMap)[encoding]->GetBarrier(); +// GetField = Barrier + FermiPotential + G4double newE = kt->Get4Momentum().e()-currentField->GetField(kt->GetPosition()); +// G4cout << " enter nucleus, E out/in: " << kt->Get4Momentum().e() << " / " << newE <GetField(kt->GetPosition()) << " "<< kt->GetPosition()<GetDefinition()->GetParticleName()<GetActualMass()) // the particle cannot enter the nucleus + { +// FixMe: should be "pushed back?" +// for the moment take it past teh nucleus, so we'll not worry next time.. + FreeTransport(kt, 1.1*t_leave); // take past nucleus + continue; + } +// + G4double newP = sqrt(newE*newE- sqr(kt->GetActualMass())); + G4LorentzVector new4Mom(newP*kt->Get4Momentum().vect().unit(), newE); + kt->Set4Momentum(new4Mom); +// G4cout <<" Enter Nucleus - E/Field/Sum: " <Get4Momentum().e() << " / " +// << (*theFieldMap)[encoding]->GetField(kt->GetPosition()) << " / " +// << kt->Get4Momentum().e()-currentField->GetField(kt->GetPosition()) +// << G4endl +// << " Barrier / field just inside nucleus (0.9999*kt->GetPosition())" +// << (*theFieldMap)[encoding]->GetBarrier() << " / " +// << (*theFieldMap)[encoding]->GetField(0.9999*kt->GetPosition()) +// << G4endl; + } + } + +// FixMe: should I add a control on theCutOnP here? +// Transport the particle into the nucleus +// G4cerr << "RKPropagation t_leave, curTimeStep " < t_leave) // particle will exit from the nucleus + { + currTimeStep = t_leave; + is_exiting=true; + } + +// G4cerr << "RKPropagation t_leave, curTimeStep " <Get4Momentum().e() - kt->Get4Momentum().mag() << " " + << kt->GetPosition()<<" " + << currentField->GetField(kt->GetPosition())<< G4endl + << kt->Get4Momentum() + << G4endl; +#endif + + G4LorentzVector momold=kt->Get4Momentum(); + G4ThreeVector posold=kt->GetPosition(); + + if (! FieldTransport(kt, currTimeStep)) { + FreeTransport(kt,currTimeStep); + } +// G4cout << "RKPropagation Ekin, field, p " +// << kt->Get4Momentum().e() - kt->Get4Momentum().mag() << " " +// << currentField->GetField(kt->GetPosition())<< G4endl +// << kt->Get4Momentum() +// << G4endl; +/* << "delta p " << momold-kt->Get4Momentum() << G4endl + << "del pos " << posold-kt->GetPosition() + << G4endl; +*/ + +// complete the transport +// FixMe: in some cases there could be a significant +// part to do still in the nucleus, or we stepped to far... depending on +// slope of potential + if(is_exiting) // particle is exiting + { +// transport free to a position that is surely out of the nucleus, to avoid +// a new transportation and a new adding the barrier next loop. + G4double t_in, t_out; + if(GetSphereIntersectionTimes(kt, t_in, t_out)) + { + G4double velocity=kt->Get4Momentum().vect().mag()/kt->Get4Momentum().e()*c_light; + G4double t_min=0.1*fermi/velocity; + t_out=G4std::max(abs(t_out),t_min); // avoid transport by 0 step not taking it out.. + if(t_in < 0 && t_out >= 0) //still inside, transport safely out. + { + G4ThreeVector savePos = kt->GetPosition(); + FreeTransport(kt, 1.1*t_out); + // and evaluate the right the energy + G4double newE=kt->Get4Momentum().e(); + +// G4cout << " V pos/savePos << " +// << (*theFieldMap)[encoding]->GetField(kt->GetPosition())<< " / " +// << (*theFieldMap)[encoding]->GetField(savePos) +// << G4endl; + + if ( abs(currentField->GetField(savePos)) > 0. && + abs(currentField->GetField(kt->GetPosition())) > 0.) + { // FixMe GF: savePos/pos may be out of nucleus, where GetField(..)=0 + // This wrongly adds or subtracts the Barrier here while + // this is done later. + newE += currentField->GetField(savePos) + - currentField->GetField(kt->GetPosition()); + } + +// G4cout << " go border nucleus, E in/border: " << kt->Get4Momentum() << " / " << newE <GetActualMass()) + { +// G4cout << "RKPropagation-Transport: problem with particle exiting - ignored" << G4endl; + continue; // the particle cannot exit the nucleus + } +// G4cout << "%%%% before update %%%% "<< kt->Get4Momentum()<Update4Momentum(newE); +// G4cout << "%%%% beyond update %%%% "<< kt->Get4Momentum()<GetField(savePos)<<" " +// <GetField(kt->GetPosition())<<" "<GetDefinition()->GetParticleName()<Get4Momentum().e()+currentField->GetField(kt->GetPosition()); +// G4cout << " leave nucleus, E in/out: " << kt->Get4Momentum() << " / " << newE <GetActualMass()) + { // the particle cannot exit the nucleus +// G4cout << "HadronKineticModel:RKPropagation: ignoring problem with particle E on exit of nucleus" << G4endl; + continue; + } + kt->Update4Momentum(newE); + } + + + } + +} + +//---------------------------------------------------------------------------- +G4bool G4RKPropagation::FieldTransport(G4KineticTrack * kt, const G4double timeStep) +//---------------------------------------------------------------------------- +{ +// G4cout <<"Stepper input"<Get4Momentum()<second; + G4Mag_EqRhs * equation = (*theEquationMap)[kt->GetDefinition()->GetPDGEncoding()]; + G4MagIntegratorStepper * stepper = new G4ClassicalRK4(equation); + +// create the integrator driver + G4double hMin = 1.0e-25*second; // arbitrary choice. Means 0.03 fm at c + G4MagInt_Driver * driver = new G4MagInt_Driver(hMin, stepper); + +// Temporary: use driver->AccurateAdvance() + // create the G4FieldTrack needed by AccurateAdvance + G4double curveLength = 0; + G4FieldTrack track(kt->GetPosition(), + kt->Get4Momentum().vect().unit(), // momentum direction + curveLength, // curvelength + kt->Get4Momentum().e()-kt->GetActualMass(), // kinetic energy + kt->GetActualMass(), // restmass + kt->Get4Momentum().beta()*c_light); // velocity + // integrate + G4double eps = 0.01; +// G4cout << "currTimeStep = " << currTimeStep << G4endl; + if(!driver->AccurateAdvance(track, timeStep, eps)) + { // cannot track this particle + G4std::cerr << "G4RKPropagation::FieldTransport() warning: integration error." + << G4endl << "position " << kt->GetPosition() << " 4mom " <Get4Momentum() + <GetField(pos) << " / " + * << mom.e()+(*theFieldMap)[encoding]->GetField(pos) + * << G4endl; + */ + + // update the kt + kt->SetPosition(track.GetPosition()); + G4LorentzVector mom(track.GetMomentum(),sqrt(track.GetMomentum().mag2() + sqr(kt->GetActualMass()))); + kt->Set4Momentum(mom); +// G4cout <<"Stepper output"<Get4Momentum()<<" "<GetPosition()<GetField(pos)<< " / " + * << mom.e()+(*theFieldMap)[encoding]->GetField(pos) + * << G4endl; + */ + + delete driver; + delete stepper; + return true; +} + +//---------------------------------------------------------------------------- +G4bool G4RKPropagation::FreeTransport(G4KineticTrack * kt, const G4double timeStep) +//---------------------------------------------------------------------------- +{ + G4ThreeVector newpos = kt->GetPosition() + + timeStep*c_light/kt->Get4Momentum().e() * kt->Get4Momentum().vect(); + kt->SetPosition(newpos); + return true; +} + +/* +G4bool G4RKPropagation::WillBeCaptured(const G4KineticTrack * kt) +{ + G4double radius = theOuterRadius; + +// evaluate the final energy. Il will be captured if newE or newP < 0 + G4ParticleDefinition * definition = kt->GetDefinition(); + G4double mass = definition->GetPDGMass(); + G4ThreeVector pos = kt->GetPosition(); + G4LorentzVector mom = kt->Get4Momentum(); + G4VNuclearField * field = (*theFieldMap)[definition->GetPDGEncoding()]; + G4ThreeVector newPos(0, 0, radius); // to get the field on the surface + + G4double newE = mom.e()+field->GetField(pos)-field->GetField(newPos); + + return ((newE < mass) ? false : true); +} +*/ + + + +//---------------------------------------------------------------------------- +G4bool G4RKPropagation::GetSphereIntersectionTimes(const G4double radius, +//---------------------------------------------------------------------------- + const G4ThreeVector & currentPos, + const G4LorentzVector & momentum, + G4double & t1, G4double & t2) +{ + G4ThreeVector speed = momentum.vect()/momentum.e(); // boost vector + G4double scalarProd = currentPos.dot(speed); + G4double speedMag = speed.mag(); + G4double sqrtArg = scalarProd*scalarProd - + speedMag*speedMag*(currentPos.mag2()-radius*radius); + if(sqrtArg <= 0.) // particle will not intersect the sphere + { +// G4cout << " GetSphereIntersectionTimes sqrtArg negative: " << sqrtArg << G4endl; + return false; + } + t1 = (-scalarProd - sqrt(sqrtArg))/speedMag/speedMag/c_light; + t2 = (-scalarProd + sqrt(sqrtArg))/speedMag/speedMag/c_light; + return true; +} + +//---------------------------------------------------------------------------- +G4bool G4RKPropagation::GetSphereIntersectionTimes(const G4KineticTrack * kt, + G4double & t1, G4double & t2) +{ + G4double radius = theOuterRadius + 3*fermi; // "safety" of 3 fermi + G4ThreeVector speed = kt->Get4Momentum().vect()/kt->Get4Momentum().e(); // bost vector + G4double scalarProd = kt->GetPosition().dot(speed); + G4double speedMag = speed.mag(); + G4double sqrtArg = scalarProd*scalarProd - + speedMag*speedMag*(kt->GetPosition().mag2()-radius*radius); + if(sqrtArg <= 0.) // particle will not intersect the sphere + { +// G4cout << " GetSphereIntersectionTimes sqrtArg negative: " << sqrtArg << G4endl; + return false; + } + t1 = (-scalarProd - sqrt(sqrtArg))/speedMag/speedMag/c_light; + t2 = (-scalarProd + sqrt(sqrtArg))/speedMag/speedMag/c_light; + return true; +} + +// Implementation methods + +//---------------------------------------------------------------------------- +void G4RKPropagation::delete_FieldsAndMap( +//---------------------------------------------------------------------------- + G4std::map > * aMap) +{ + if(aMap) + { + G4std::map >::iterator cur; + for(cur = aMap->begin(); cur != aMap->end(); ++cur) + delete (*cur).second; + + aMap->clear(); + delete aMap; + } + +} + +//---------------------------------------------------------------------------- +void G4RKPropagation::delete_EquationsAndMap( +//---------------------------------------------------------------------------- + G4std::map > * aMap) +{ + if(aMap) + { + G4std::map >::iterator cur; + for(cur = aMap->begin(); cur != aMap->end(); ++cur) + delete (*cur).second; + + aMap->clear(); + delete aMap; + } +} diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.cc new file mode 100644 index 0000000000..954bdde442 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4SigmaMinusField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4SigmaMinusField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4SigmaMinus.hh" + +G4SigmaMinusField::G4SigmaMinusField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + +G4SigmaMinusField::~G4SigmaMinusField() +{ } + + +const G4SigmaMinusField & G4SigmaMinusField::operator=(const G4SigmaMinusField & right) +{ + G4Exception("G4SigmaMinusField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4SigmaMinusField::operator==(const G4SigmaMinusField & right) const +{ + G4Exception("G4SigmaMinusField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4SigmaMinusField::operator!=(const G4SigmaMinusField & right) const +{ + G4Exception("G4SigmaMinusField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4SigmaMinusField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double sigmaMinusMass = G4SigmaMinus::SigmaMinus()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = sigmaMinusMass*nucleusMass/(sigmaMinusMass+nucleusMass); + + const G4VNuclearDensity * nuclearDensity=theNucleus->GetNuclearDensity(); + G4double density = nuclearDensity->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density+GetBarrier(); +} + + +G4double G4SigmaMinusField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return -coulombBarrier; +} + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc new file mode 100644 index 0000000000..c3b84581d1 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4SigmaPlusField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4SigmaPlusField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4SigmaPlus.hh" + +G4SigmaPlusField::G4SigmaPlusField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4SigmaPlusField::~G4SigmaPlusField() +{ } + + +const G4SigmaPlusField & G4SigmaPlusField::operator=(const G4SigmaPlusField & right) +{ + G4Exception("G4SigmaPlusField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4SigmaPlusField::operator==(const G4SigmaPlusField & right) const +{ + G4Exception("G4SigmaPlusField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4SigmaPlusField::operator!=(const G4SigmaPlusField & right) const +{ + G4Exception("G4SigmaPlusField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4SigmaPlusField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double sigmaPlusMass = G4SigmaPlus::SigmaPlus()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = sigmaPlusMass*nucleusMass/(sigmaPlusMass+nucleusMass); + + const G4VNuclearDensity * nuclearDensity=theNucleus->GetNuclearDensity(); + G4double density = nuclearDensity->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density+GetBarrier(); +} + + +G4double G4SigmaPlusField::GetBarrier() +{ + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double coulombBarrier = (1.44/1.14) * MeV * Z / (1.0 + pow(A,1./3.)); + return coulombBarrier; +} + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc new file mode 100644 index 0000000000..d46b6fa14d --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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 implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4SigmaZeroField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4SigmaZeroField.hh" +#include "G4NucleiPropertiesTable.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4SigmaZero.hh" + +G4SigmaZeroField::G4SigmaZeroField(G4V3DNucleus * nucleus, G4double coeff) + : G4VNuclearField(nucleus) +{ + theCoeff = coeff; +} + + +G4SigmaZeroField::~G4SigmaZeroField() +{ } + + +const G4SigmaZeroField & G4SigmaZeroField::operator=(const G4SigmaZeroField & right) +{ + G4Exception("G4SigmaZeroField::operator= meant not to be accessible"); + return *this; +} + + +G4int G4SigmaZeroField::operator==(const G4SigmaZeroField & right) const +{ + G4Exception("G4SigmaZeroField::operator== meant not to be accessible"); + return 0; +} + + +G4int G4SigmaZeroField::operator!=(const G4SigmaZeroField & right) const +{ + G4Exception("G4SigmaZeroField::operator!= meant not to be accessible"); + return 1; +} + + + +G4double G4SigmaZeroField::GetField(const G4ThreeVector & aPosition) +{ +// Field is 0 out of the nucleus! + if(aPosition.mag() >= radius) return 0.0; + + G4double sigmaZeroMass = G4SigmaZero::SigmaZero()->GetPDGMass(); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; + G4double reducedMass = sigmaZeroMass*nucleusMass/(sigmaZeroMass+nucleusMass); + + const G4VNuclearDensity * nuclearDensity=theNucleus->GetNuclearDensity(); + G4double density = nuclearDensity->GetDensity(aPosition); + + return -2.*pi*hbarc*hbarc/reducedMass*(2.0)*theCoeff*density; +} + + +G4double G4SigmaZeroField::GetBarrier() +{ + return 0.; +} + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.cc new file mode 100644 index 0000000000..439c13dfb6 --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4VFieldPropagation.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 6 June 2000 +// ------------------------------------------------------------------- +#include "G4VFieldPropagation.hh" +#include "globals.hh" + +G4VFieldPropagation::G4VFieldPropagation() +{ } + +G4VFieldPropagation::G4VFieldPropagation(const G4VFieldPropagation &right) +{ } + +G4VFieldPropagation::~G4VFieldPropagation() +{ } + +const G4VFieldPropagation & G4VFieldPropagation::operator=(const G4VFieldPropagation & right) +{ + G4Exception("G4VFieldPropagation::operator= meant not to be accessible"); + return *this; +} + +G4int G4VFieldPropagation::operator==(const G4VFieldPropagation & right) const +{ + G4Exception("G4VFieldPropagation::operator== meant not to be accessible"); + return 0; +} + +G4int G4VFieldPropagation::operator!=(const G4VFieldPropagation & right) const +{ + G4Exception("G4VFieldPropagation::operator!= meant not to be accessible"); + return 1; +} + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.cc b/source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.cc new file mode 100644 index 0000000000..93f845a63a --- /dev/null +++ b/source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT 4 class implementation file +// +// CERN, Geneva, Switzerland +// +// File name: G4VNuclearField.cc +// +// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// +// Creation date: 5 June 2000 +// ------------------------------------------------------------------- +#include "G4VNuclearField.hh" +#include "globals.hh" + +G4VNuclearField::G4VNuclearField(G4V3DNucleus * aNucleus) : +theNucleus(aNucleus), +radius(aNucleus->GetOuterRadius() + 4*fermi) +{ +} + +G4VNuclearField::G4VNuclearField(const G4VNuclearField &right) : +theNucleus(right.theNucleus), +radius(right.radius) +{ +} + +G4VNuclearField::~G4VNuclearField() +{ +} + +const G4VNuclearField & G4VNuclearField::operator=(const G4VNuclearField & right) +{ + G4Exception("G4VNuclearField::operator= meant not to be accessible"); + return *this; +} + +G4int G4VNuclearField::operator==(const G4VNuclearField & right) const +{ + G4Exception("G4VNuclearField::operator== meant not to be accessible"); + return 0; +} + +G4int G4VNuclearField::operator!=(const G4VNuclearField & right) const +{ + G4Exception("G4VNuclearField::operator!= meant not to be accessible"); + return 1; +} + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh b/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh index 5a365f2be5..da1804ac73 100644 --- a/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh +++ b/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4V3DNucleus.hh,v 1.8 2002/06/06 10:07:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4V3DNucleus.hh,v 1.10 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4V3DNucleus_h #define G4V3DNucleus_h 1 @@ -58,6 +58,7 @@ class G4V3DNucleus virtual G4double GetNuclearRadius() = 0; virtual G4double GetNuclearRadius(const G4double maxRelativeDensity) = 0; virtual G4double GetOuterRadius() = 0; + virtual G4double CoulombBarrier() = 0; virtual void DoLorentzBoost(const G4LorentzVector & theBoost) = 0; virtual void DoLorentzBoost(const G4ThreeVector & theBeta) = 0; virtual void DoLorentzContraction(const G4LorentzVector & theBoost) = 0; diff --git a/source/processes/hadronic/models/generator/management/include/G4VAnnihilator.hh b/source/processes/hadronic/models/generator/management/include/G4VAnnihilator.hh index a04c84cefb..e106605339 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VAnnihilator.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VAnnihilator.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/include/G4VCrossSectionBase.hh b/source/processes/hadronic/models/generator/management/include/G4VCrossSectionBase.hh index 807226ddc7..7e7b4f074e 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VCrossSectionBase.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VCrossSectionBase.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/include/G4VElasticScatterer.hh b/source/processes/hadronic/models/generator/management/include/G4VElasticScatterer.hh index 92a6efb1e3..c7e80c5548 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VElasticScatterer.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VElasticScatterer.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh b/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh index a008c91581..035b3a4e38 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VHighEnergyGenerator.hh,v 1.6 2001/08/01 17:08:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VHighEnergyGenerator.hh,v 1.7 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VHighEnergyGenerator_h #define G4VHighEnergyGenerator_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VInElasticScatterer.hh b/source/processes/hadronic/models/generator/management/include/G4VInElasticScatterer.hh index e1e40d3e68..ee4dc9f94a 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VInElasticScatterer.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VInElasticScatterer.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh b/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh index d0d69fb4b3..96b8bbe0d0 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VIntraNuclearTransportModel.hh,v 1.8 2001/08/01 17:08:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VIntraNuclearTransportModel.hh,v 1.9 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: G4IntraNuclearTransportMode.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh b/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh index 37f7606e34..039a76e920 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VKineticNucleon.hh,v 1.4 2001/08/01 17:08:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VKineticNucleon.hh,v 1.5 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VKineticNucleon_h #define G4VKineticNucleon_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh b/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh index 705d7b6577..5b8e7aa5a6 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VNuclearDensity.hh,v 1.6 2002/04/24 13:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VNuclearDensity.hh,v 1.7 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VNuclearDensity_h #define G4VNuclearDensity_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh b/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh index 6ba46b3f94..d46b233c56 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh +++ b/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundModel.hh,v 1.6 2001/08/01 17:08:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundModel.hh,v 1.7 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VPreCompoundModel_h diff --git a/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc b/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc index c306fce769..c93da4f94b 100644 --- a/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc +++ b/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4V3DNucleus.cc,v 1.4 2001/08/01 17:08:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4V3DNucleus.cc,v 1.5 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4V3DNucleus.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VAnnihilator.cc b/source/processes/hadronic/models/generator/management/src/G4VAnnihilator.cc index 0e0ff79191..0d48b06d17 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VAnnihilator.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VAnnihilator.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/src/G4VCrossSectionBase.cc b/source/processes/hadronic/models/generator/management/src/G4VCrossSectionBase.cc index b4e188b421..540be84c51 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VCrossSectionBase.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VCrossSectionBase.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/src/G4VElasticScatterer.cc b/source/processes/hadronic/models/generator/management/src/G4VElasticScatterer.cc index 6588c2fc95..327771f306 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VElasticScatterer.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VElasticScatterer.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc b/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc index 30b038ca7e..aab14b0a5e 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VHighEnergyGenerator.cc,v 1.4 2001/08/01 17:08:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VHighEnergyGenerator.cc,v 1.5 2002/12/12 19:17:30 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VHighEnergyGenerator #include "G4VHighEnergyGenerator.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VInElasticScatterer.cc b/source/processes/hadronic/models/generator/management/src/G4VInElasticScatterer.cc index 82fee6f32d..d8ab8fbb13 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VInElasticScatterer.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VInElasticScatterer.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc b/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc index d8bfbdfe0f..c1d8b3f49b 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VIntraNuclearTransportModel.cc,v 1.5 2001/08/01 17:08:23 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VIntraNuclearTransportModel.cc,v 1.6 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: G4VIntraNuclearTransportModel.cc,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc b/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc index d2d7c38333..01803a5003 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VKineticNucleon.cc,v 1.4 2001/08/01 17:08:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VKineticNucleon.cc,v 1.5 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VKineticNucleon.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc b/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc index 84ef43d9ed..fa1e56044f 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VNuclearDensity.cc,v 1.5 2002/04/24 13:10:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VNuclearDensity.cc,v 1.6 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VNuclearDensity.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc b/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc index c5ef37f8bc..91bd260740 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc +++ b/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundModel.cc,v 1.4 2001/08/01 17:08:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundModel.cc,v 1.5 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VPreCompoundModel.hh" diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile b/source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile index 5bb69435bf..a36a554c40 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile +++ b/source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:12:09 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2002/11/12 02:09:47 larazb Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -13,6 +13,10 @@ include $(G4INSTALL)/config/architecture.gmk G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPNumerics/include \ diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh index fd5cdb06f1..6786dea2b2 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LowEIonFragmentation.hh,v 1.6 2001/10/06 08:17:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LowEIonFragmentation.hh,v 1.7 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by H.P. Wellisch diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundAlpha.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundAlpha.hh index 9a168c277b..b527815be9 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundAlpha.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundAlpha.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundAlpha.hh,v 1.10 2002/06/06 16:59:32 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundAlpha.hh,v 1.12 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -68,7 +68,7 @@ public: new G4ReactionProduct(G4Alpha::AlphaDefinition()); theReactionProduct->SetMomentum(GetMomentum().vect()); theReactionProduct->SetTotalEnergy(GetMomentum().e()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theReactionProduct->SetCreatorModel("G4PrecompoundModel"); #endif return theReactionProduct; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundDeuteron.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundDeuteron.hh index a0c402486b..dc5dee0783 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundDeuteron.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundDeuteron.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundDeuteron.hh,v 1.10 2002/06/06 17:02:25 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundDeuteron.hh,v 1.12 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -68,7 +68,7 @@ public: new G4ReactionProduct(G4Deuteron::DeuteronDefinition()); theReactionProduct->SetMomentum(GetMomentum().vect()); theReactionProduct->SetTotalEnergy(GetMomentum().e()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theReactionProduct->SetCreatorModel("G4PrecompoundModel"); #endif return theReactionProduct; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.hh index 0574d0f743..02a9438c3e 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundEmission.hh @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundEmission.hh,v 1.8 2001/12/13 12:04:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundEmission.hh,v 1.9 2002/12/12 19:17:31 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.hh index b7cf1c7d33..223efc95ee 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundFragmentVector.hh,v 1.5 2002/06/06 17:03:57 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundFragmentVector.hh,v 1.6 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc index 53399f0aeb..84ee681368 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundFragmentVector.icc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundFragmentVector.icc,v 1.1 2002/06/06 17:04:49 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundFragmentVector.icc,v 1.2 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundHe3.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundHe3.hh index 3b20060b31..255809ced9 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundHe3.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundHe3.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundHe3.hh,v 1.10 2002/06/06 17:06:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundHe3.hh,v 1.12 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -68,7 +68,7 @@ public: new G4ReactionProduct(G4He3::He3Definition()); theReactionProduct->SetMomentum(GetMomentum().vect()); theReactionProduct->SetTotalEnergy(GetMomentum().e()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theReactionProduct->SetCreatorModel("G4PrecompoundModel"); #endif return theReactionProduct; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundModel.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundModel.hh index 54405777e2..effd331fbd 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundModel.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundModel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundModel.hh,v 1.15 2002/06/06 17:09:10 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundModel.hh,v 1.17 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -50,7 +50,6 @@ //#define debug //#define verbose -//#define pctest class G4PreCompoundModel : public G4VPreCompoundModel { @@ -75,7 +74,7 @@ public: G4ReactionProductVector* DeExcite(const G4Fragment& aFragment) const; -#ifdef pctest +#ifdef PRECOMPOUND_TEST static G4Fragment GetInitialFragmentForTest() { return G4PreCompoundModel::theInitialFragmentForTest; } static G4std::vector * GetCreatorModels() @@ -95,7 +94,7 @@ private: G4ParticleChange theResult; -#ifdef pctest +#ifdef PRECOMPOUND_TEST static G4Fragment theInitialFragmentForTest; static G4std::vector theCreatorModels; #endif diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNeutron.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNeutron.hh index 98efb51254..ec4ed43b21 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNeutron.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundNeutron.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundNeutron.hh,v 1.10 2002/06/06 17:09:33 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundNeutron.hh,v 1.12 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -70,7 +70,7 @@ public: new G4ReactionProduct(G4Neutron::NeutronDefinition()); theReactionProduct->SetMomentum(GetMomentum().vect()); theReactionProduct->SetTotalEnergy(GetMomentum().e()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theReactionProduct->SetCreatorModel("G4PrecompoundModel"); #endif return theReactionProduct; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundParameters.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundParameters.hh index 341093b73d..73dbdc024f 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundParameters.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundParameters.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundParameters.hh,v 1.8 2002/06/06 17:10:07 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundParameters.hh,v 1.9 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundProton.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundProton.hh index ac133ecf47..6a8914caf6 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundProton.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundProton.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundProton.hh,v 1.11 2002/06/06 17:10:38 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundProton.hh,v 1.13 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -70,7 +70,7 @@ public: new G4ReactionProduct(G4Proton::ProtonDefinition()); theReactionProduct->SetMomentum(GetMomentum().vect()); theReactionProduct->SetTotalEnergy(GetMomentum().e()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theReactionProduct->SetCreatorModel("G4PrecompoundModel"); #endif return theReactionProduct; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTransitions.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTransitions.hh index 7953a00931..b1e2b048ed 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTransitions.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTransitions.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundTransitions.hh,v 1.7 2001/08/01 17:08:29 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundTransitions.hh,v 1.8 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTriton.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTriton.hh index 02e72449f0..659746c6e6 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTriton.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4PreCompoundTriton.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundTriton.hh,v 1.10 2002/06/06 17:11:43 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundTriton.hh,v 1.12 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -68,7 +68,7 @@ public: new G4ReactionProduct(G4Triton::TritonDefinition()); theReactionProduct->SetMomentum(GetMomentum().vect()); theReactionProduct->SetTotalEnergy(GetMomentum().e()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theReactionProduct->SetCreatorModel("G4PrecompoundModel"); #endif return theReactionProduct; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.hh index 55f30ced30..8e0ad17d1a 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundFragment.hh,v 1.11 2002/06/06 17:12:28 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundFragment.hh,v 1.13 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -36,9 +36,6 @@ #include "G4Fragment.hh" #include "G4VCoulombBarrier.hh" -//#define pctest - - class G4ReactionProduct; class G4VPreCompoundFragment diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc index 1ea4a8112b..1fcef5bd34 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundFragment.icc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundFragment.icc,v 1.2 2002/06/18 10:31:16 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundFragment.icc,v 1.3 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundIon.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundIon.hh index 4df0c06fee..19ae6474d0 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundIon.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundIon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundIon.hh,v 1.10 2002/06/06 17:14:05 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundIon.hh,v 1.11 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundNucleon.hh b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundNucleon.hh index 450aefc652..f5ee1b2189 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundNucleon.hh +++ b/source/processes/hadronic/models/generator/pre_equilibrium/include/G4VPreCompoundNucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundNucleon.hh,v 1.8 2002/06/06 17:15:00 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundNucleon.hh,v 1.9 2002/12/12 19:17:32 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4LowEIonFragmentation.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4LowEIonFragmentation.cc index f4fd8ee690..a705a40d33 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4LowEIonFragmentation.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4LowEIonFragmentation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc index 8f6092cd01..6ad91b63e3 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundEmission.cc,v 1.10 2002/06/06 17:17:45 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundEmission.cc,v 1.11.4.1 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara @@ -146,7 +146,7 @@ G4ReactionProduct * G4PreCompoundEmission::PerformEmission(G4Fragment & aFragmen // Create a G4ReactionProduct G4ReactionProduct * MyRP = theFragment->GetReactionProduct(); -#ifdef pctest +#ifdef PRECOMPOUND_TEST MyRP->SetCreatorModel("G4PreCompoundModel"); #endif #ifdef debug diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc index a944bb237d..72e68b5b8c 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundFragmentVector.cc,v 1.9 2002/06/17 15:29:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundFragmentVector.cc,v 1.10 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc index b70169f023..40285a8bcd 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundModel.cc,v 1.21 2002/06/18 16:17:20 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundModel.cc,v 1.23 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -30,7 +30,7 @@ #include "G4EvaporationLevelDensityParameter.hh" -#ifdef pctest +#ifdef PRECOMPOUND_TEST G4Fragment G4PreCompoundModel::theInitialFragmentForTest; G4std::vector G4PreCompoundModel::theCreatorModels; #endif @@ -96,7 +96,7 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary G4LorentzVector momentum(p, anEnergy); anInitialState.SetMomentum(momentum); -#ifdef pctest +#ifdef PRECOMPOUND_TEST G4PreCompoundModel::theInitialFragmentForTest = anInitialState; #endif @@ -104,7 +104,7 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary const G4Fragment aFragment(anInitialState); G4ReactionProductVector * result = DeExcite(aFragment); -#ifdef pctest +#ifdef PRECOMPOUND_TEST for (G4std::vector::iterator icm = theCreatorModels.begin(); icm != theCreatorModels.end(); ++icm ) { @@ -121,7 +121,7 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary new G4DynamicParticle((*i)->GetDefinition(), (*i)->GetTotalEnergy(), (*i)->GetMomentum()); -#ifdef pctest +#ifdef PRECOMPOUND_TEST theCreatorModels.push_back(new G4String((*i)->GetCreatorModel())); #endif delete (*i); diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc index 9cd01bffe6..f3d065d8a2 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundParameters.cc,v 1.7 2002/06/06 17:19:24 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundParameters.cc,v 1.8 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc index 889b47cf82..07f1519b8a 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PreCompoundTransitions.cc,v 1.10 2001/11/08 09:50:22 vlara Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PreCompoundTransitions.cc,v 1.11 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc index b09a30cd28..e7be2f3af1 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundFragment.cc,v 1.15 2002/06/06 17:20:18 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundFragment.cc,v 1.16 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc index c46f0b2325..d49ea97253 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundIon.cc,v 1.13 2002/06/06 17:20:45 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundIon.cc,v 1.15 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara @@ -65,7 +65,7 @@ ProbabilityDistributionFunction(const G4double eKin, G4PreCompoundParameters::GetAddress()->GetLevelDensity(); // theLDP.LevelDensityParameter(GetA(),GetZ(),U); - G4double pA = (3.0/4.0) * sqrt(2.0/(GetReducedMass()*(eKin+GetBindingEnergy())))* + G4double pA = (3.0/4.0) * sqrt(G4std::max(0.0, 2.0/(GetReducedMass()*(eKin+GetBindingEnergy()))))* GetAlpha()*(eKin+GetBeta())/(r0*pow(GetRestA(),1.0/3.0)) * CoalescenceFactor(aFragment.GetA()) * FactorialFactor(N,P); diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc index 3767a57553..965c71833a 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc +++ b/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPreCompoundNucleon.cc,v 1.1 2002/06/06 17:21:14 larazb Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPreCompoundNucleon.cc,v 1.2 2002/12/12 19:17:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4ASCCrossSection.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4ASCCrossSection.hh index 8aa6c310d1..20f9e49534 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4ASCCrossSection.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4ASCCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4AnnihilationCrossSection.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4AnnihilationCrossSection.hh index 3222bd4d09..55c847aa33 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4AnnihilationCrossSection.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4AnnihilationCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4BaryonSplitter.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4BaryonSplitter.hh index e7093f4c2d..5537c54e67 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4BaryonSplitter.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4BaryonSplitter.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh index 2959343ded..f0fd0cbab0 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaAnnCrossSection.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaAnnCrossSection.hh index 7ed196e2a5..b893638cc5 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaAnnCrossSection.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaAnnCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh index 8cee8b3707..7832d8f4ef 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh index 18fb284a1c..5d12fc2664 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh index 272205c002..c7bae3e275 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InelasticSplitableHadron.hh,v 1.5 2002/06/06 10:07:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InelasticSplitableHadron.hh,v 1.6 2002/12/12 19:17:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4InelasticSplitableHadron_h diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4MesonSplitter.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4MesonSplitter.hh index 90758a1bd5..f8f3a0017f 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4MesonSplitter.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4MesonSplitter.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonPair.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonPair.hh index edff65388f..f3aacd4dde 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonPair.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonPair.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh index d0229f5bbc..923822f693 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PartonStringAnnihilator.hh,v 1.5 2001/08/01 17:08:33 hpw Exp $ +// $Id: G4PartonStringAnnihilator.hh,v 1.6 2002/12/12 19:17:34 gunter Exp $ // ----------------------------------------------------------------------------- // GEANT 4 class implementation file // diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMParameters.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMParameters.hh index 78c5144674..c6bd6cee5d 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMParameters.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMParameters.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh index 1ec7467817..4c1f2edcb0 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.hh index bccbb72a04..67c42d18e5 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.icc b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.icc index d361ccafbd..6084cb4be0 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.icc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.icc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSParticipants.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSParticipants.hh index ec562345ed..5e50973376 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSParticipants.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSParticipants.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryon.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryon.hh index 2814d0274f..4bfe944cdc 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryon.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryon.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryonTable.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryonTable.hh index f19912bf2c..0899ed6dbc 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryonTable.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryonTable.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPPartonInfo.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPPartonInfo.hh index ea6fc42136..323c5b5b96 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPPartonInfo.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPPartonInfo.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh index dc61139bfb..4124affc2d 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4VAnnihilationCrossSection.hh b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4VAnnihilationCrossSection.hh index abfb879cf5..c9339b1b69 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4VAnnihilationCrossSection.hh +++ b/source/processes/hadronic/models/generator/quark_gluon_string/include/G4VAnnihilationCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4ASCCrossSection.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4ASCCrossSection.cc index de27b060e7..40625f8e22 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4ASCCrossSection.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4ASCCrossSection.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4AnnihilationCrossSection.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4AnnihilationCrossSection.cc index a67c000025..d5be0939cd 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4AnnihilationCrossSection.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4AnnihilationCrossSection.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4BaryonSplitter.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4BaryonSplitter.cc index e5e83ec362..08f1efd7a4 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4BaryonSplitter.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4BaryonSplitter.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4DiffractiveStringBuilder.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4DiffractiveStringBuilder.cc index 6521997539..1f7d90bf08 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4DiffractiveStringBuilder.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4DiffractiveStringBuilder.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaAnnCrossSection.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaAnnCrossSection.cc index 46ce5ebc84..dd1acdbfc4 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaAnnCrossSection.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaAnnCrossSection.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc index 4435b84a6f..f643260d17 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -54,8 +54,12 @@ G4VSplitableHadron* G4GammaParticipants::SelectInteractions(const G4ReactionProd G4std::for_each(theInteractions.begin(), theInteractions.end(), DeleteInteractionContent()); theInteractions.clear(); G4int totalCuts = 0; - G4double eK = thePrimary.GetKineticEnergy()/GeV; - G4int nucleonCount = theTargetNuc.size(); // debug + + #ifdef debug_G4GammaParticipants + G4double eK = thePrimary.GetKineticEnergy()/GeV; + G4int nucleonCount = theTargetNuc.size(); // debug + #endif + G4int theCurrent = static_cast (theTargetNuc.size()*G4UniformRand()); G4Nucleon * pNucleon = theTargetNuc[theCurrent]; G4QGSMSplitableHadron* aTarget = new G4QGSMSplitableHadron(*pNucleon); diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc index 9ec560d04d..7d6db2413d 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc index 253498181d..82f1fe8cd9 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc index aa5c5dc3ca..433fdde2f8 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc index 2ee6bc3e95..959ba2f5df 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonStringAnnihilator.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonStringAnnihilator.cc index d78b6578da..86b47f07cf 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonStringAnnihilator.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonStringAnnihilator.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMParameters.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMParameters.cc index 637386885c..34e4a88263 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMParameters.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMParameters.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc index 3c66f2540b..cff8049524 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSParticipants.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSParticipants.cc index b3ff89668d..46b11d9e58 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSParticipants.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSParticipants.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -98,7 +98,11 @@ G4VSplitableHadron* G4QGSParticipants::SelectInteractions(const G4ReactionProduc theInteractions.clear(); G4int totalCuts = 0; G4double impactUsed = 0; + + #ifdef debug_QGS G4double eK = thePrimary.GetKineticEnergy()/GeV; + #endif + while(theInteractions.size() == 0) { // choose random impact parameter HPW diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SPBaryon.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SPBaryon.cc index ab6024b529..1c00e96608 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SPBaryon.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SPBaryon.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SoftStringBuilder.cc b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SoftStringBuilder.cc index 611ca79036..9f8ee5a2f5 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SoftStringBuilder.cc +++ b/source/processes/hadronic/models/generator/quark_gluon_string/src/G4SoftStringBuilder.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/scattering/GNUmakefile b/source/processes/hadronic/models/generator/scattering/GNUmakefile new file mode 100644 index 0000000000..c5e59d45aa --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/GNUmakefile @@ -0,0 +1,42 @@ +# $Id: GNUmakefile,v 1.1 2002/07/11 13:08:21 jwellisc Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_scattering + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/STLInterface/g4rw \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/magneticfield/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/generator/management/include \ + -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/scattering/README b/source/processes/hadronic/models/generator/scattering/README new file mode 100644 index 0000000000..c90cf08088 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/README @@ -0,0 +1,2 @@ +The tuning of resonances can still improve in a iteration on short-lived particles. + diff --git a/source/processes/hadronic/models/generator/scattering/TAGINFO b/source/processes/hadronic/models/generator/scattering/TAGINFO new file mode 100644 index 0000000000..9759ac3291 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/TAGINFO @@ -0,0 +1,11 @@ +scattering-baseline-0: + + nucleon nucleon and pion nucleon scattering included, and technically tested to run. + + nucleon nucleon: + - elastic for pp, np, pn, nn + - resonance creation: ND, DD, ND*, DD*, NN*, DN* channels included + + pion nucleon: + - elastic pi+-0 n/p scattering + - piN->Resonance: D, D*, N* included. diff --git a/source/processes/hadronic/models/generator/scattering/elastic.logbook b/source/processes/hadronic/models/generator/scattering/elastic.logbook new file mode 100644 index 0000000000..f427f33641 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/elastic.logbook @@ -0,0 +1,31 @@ +done - G4CollisionNNElastic.hh +done - G4CollisionnpElastic.hh +done - G4CollisionNDeltaElastic.hh +done - G4CollisionMesonBaryonElastic.hh +not needed G4CollisionNDeltastarElastic.hh +G4CollisionDeltaDeltaElastic.hh +G4CollisionDeltaDeltastarElastic.hh +G4CollisionMesonMesonElastic.hh +G4CollisionBaryonAntiBaryonElastic.hh +G4CollisionBaryonBaryonElastic.hh +G4CollisionDeltaNstarElastic.hh +G4CollisionNNstarElastic.hh +G4CollisionStarStarElastic.hh + +delta(1600)", "delta(1620)", "delta(1700)", "delta(1900)", "delta(1905)", + "delta(1910)", "delta(1920)", "delta(1930)", "delta(1950)" + + "N(1440)", "N(1520)", "N(1535)", "N(1650)", "N(1675)", + "N(1680)", "N(1700)", "N(1710)", "N(1720)", "N(1900)", + "N(1990)", "N(2090)", "N(2190)", "N(2220)", "N(2250)" + + { "b1(1235)", "h1(1170)", "h1(1380)", "k1(1270)", "k1(1270)" }, + { "a0(1450)", "f0(1370)", "", "k0_star(1430)", "k0_star(1430)" }, + { "a1(1260)", "f1(1285)", "f1(1420)", "k1(1400)", "k1(1400)" }, + { "a2(1320)", "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"}, + {"pi2(1670)", "eta2(1645)", "eta2(1870)", "k2(1770)", "k2(1770)" }, + {"rho(1700)", "omega(1600)", "", "k_star(1680)", "k_star(1680)" }, + {"rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)" }, + { "pi(1300)", "eta(1295)", "eta(1440)", "k(1460)", "k(1460)" }, + {"rho(1450)","omega(1420)", "phi(1680)", "k_star(1410)", "k_star(1410)" }, + { "", "f2(1810)", "f2(2010)", "k2_star(1980)", "k2_star(1980)" } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh new file mode 100644 index 0000000000..1a04a08869 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh @@ -0,0 +1,181 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4AngularDistribution +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 2000 +// +// Modifications: +// +// Angular distribution according to: +// G. Mao et al., Phys. Rev. C57 (1998) 1938 +// G. Mao et al., Phys. Rev. C53 (1996) 2933 +// +// Id: G4AngularDistribution.hh,v 1.16 2000/05/11 19:07:29 pia Exp $ // +// +// ------------------------------------------------------------------- + +#ifndef G4ANGULARDISTRIBUTION_HH +#define G4ANGULARDISTRIBUTION_HH + +#include "globals.hh" +#include "G4VAngularDistribution.hh" + + +class G4AngularDistribution : public G4VAngularDistribution +{ + +public: + + // Constructors + G4AngularDistribution(G4bool symmetrize); + + virtual ~G4AngularDistribution(); + + virtual G4double CosTheta(G4double s, G4double m1, G4double m2) const; + +protected: +public: // for testing only... + + G4double DifferentialCrossSection(G4double sIn, G4double m1, G4double m2, G4double cosTheta) const; + + G4double Cross(G4double tpPion, G4double tpSigma, G4double tpOmega, + G4double tmPion, G4double tmSigma, G4double tmOmega, + G4double bMix_o1, G4double bMix_s1, G4double bMix_Omega, + G4double bMix_sm, G4double bMix_oL, G4double bMix_sL, + G4double bOmega_0, G4double bOmega_1, G4double bOmega_2, + G4double bOmega_3, G4double bOmega_m, G4double bOmega_L) const; + +private: + + G4bool sym; + + // Model parameters + + G4double mPion; + G4double mSigma; + G4double mOmega; + + G4double cmPion; + G4double cmSigma; + G4double cmOmega; + + G4double gPion; + G4double gSigma; + G4double gOmega; + + G4double mNucleon; + + // Variables for pion-Term + + G4double m42; + G4double mPion2; + G4double cmPion2; + G4double dPion1; + G4double dPion2; + G4double cm6gp; + + G4double cPion_3; + G4double cPion_2; + G4double cPion_1; + G4double cPion_m; + G4double cPion_L; + G4double cPion_0; + + // Variables for sigma-Term + + G4double mSigma2; + G4double cmSigma2; + G4double cmSigma4; + G4double cmSigma6; + G4double dSigma1; + G4double dSigma2; + G4double dSigma3; + G4double cm2gs; + + G4double cSigma_3; + G4double cSigma_2; + G4double cSigma_1; + G4double cSigma_m; + G4double cSigma_L; + G4double cSigma_0; + + // Variables for omega-Term + + G4double mOmega2; + G4double cmOmega2; + G4double cmOmega4; + G4double cmOmega6; + G4double dOmega1; + G4double dOmega2; + G4double dOmega3; + G4double sOmega1; + + G4double cm2go; + + G4double cOmega_3; + G4double cOmega_2; + G4double cOmega_1; + G4double cOmega_m; + G4double cOmega_L; + + // Variables for mix-Term + + G4double fac1; + G4double dMix1; + G4double dMix2; + G4double dMix3; + G4double cMix_o1; + G4double cMix_s1; + G4double cMix_Omega; + G4double cMix_sm; + G4double fac2; + G4double fac3; + + G4double cMix_oLc; + G4double cMix_oLs; + G4double cMix_sLc; + G4double cMix_sLs; + +}; +#endif + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNP.hh b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNP.hh new file mode 100644 index 0000000000..66d339d841 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNP.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + // + // G4 Low energy model: n-n or p-p scattering + // F.W. Jones, L.G. Greeniaus, H.P. Wellisch + // + // For further comments see G4LEnpData.hh and G4LEnp.cc + // + +#ifndef G4AngularDistributionNP_h +#define G4AngularDistributionNP_h 1 + +#include "globals.hh" + +#include "G4VAngularDistribution.hh" + +class G4AngularDistributionNP : public G4VAngularDistribution +{ + private: + + enum { NENERGY=22, NANGLE=180 }; + + public: + + G4AngularDistributionNP() { } + + virtual ~G4AngularDistributionNP() { } + + virtual G4double CosTheta(G4double s, G4double m1, G4double m2) const; + + virtual G4double Phi() const; + + private: + + static G4float sig[NENERGY][NANGLE]; + static G4float pcm[NENERGY], elab[NENERGY], + dsigmax[NENERGY], sigtot[NENERGY]; +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNPData.hh b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNPData.hh new file mode 100644 index 0000000000..2db025874e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNPData.hh @@ -0,0 +1,637 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + + // G4 Low energy model: n-p scattering -- Data + // THIS FILE contains static array initialization + // F.W. Jones, L.G. Greeniaus, H.P. Wellisch + + +// Table of Cumulative np Scattering Probabilities +// To be used for generation as a function of cos(theta cm) +// NOTE: Assumes angle range to be generated is 0-180 degrees +// This allows tracking of +// well-defined GEANT4 particles and generation of secondary +// Range of validity of tables: 10 - 1200 MeV +// Results are extracted from RA Arndt"s PSA of 1998 +// CM Angle range: 0.5 - 179.5 degrees in 1 degree steps +// Data written 8 values/line, delimited by commas +// Appended at end: cm momentum (GeV/c), Lab Energy (GeV), max +// dsigma/domega-CM (mb/sr), total cross section + + G4float G4AngularDistributionNP::sig[NENERGY][NANGLE] = { + //------------ 0.01 GeV + {0.00007, 0.00030, 0.00066, 0.00118, 0.00184, 0.00265, 0.00360, + 0.00471, 0.00595, 0.00735, 0.00888, 0.01057, 0.01239, 0.01436, + 0.01648, 0.01874, 0.02113, 0.02367, 0.02635, 0.02917, 0.03213, + 0.03523, 0.03847, 0.04184, 0.04534, 0.04899, 0.05276, 0.05667, + 0.06071, 0.06488, 0.06917, 0.07360, 0.07815, 0.08283, 0.08763, + 0.09255, 0.09760, 0.10276, 0.10805, 0.11345, 0.11896, 0.12459, + 0.13033, 0.13618, 0.14214, 0.14821, 0.15438, 0.16066, 0.16704, + 0.17352, 0.18009, 0.18677, 0.19353, 0.20039, 0.20734, 0.21438, + 0.22151, 0.22871, 0.23601, 0.24338, 0.25083, 0.25835, 0.26595, + 0.27362, 0.28136, 0.28917, 0.29704, 0.30497, 0.31297, 0.32102, + 0.32913, 0.33729, 0.34550, 0.35376, 0.36207, 0.37042, 0.37881, + 0.38724, 0.39570, 0.40420, 0.41273, 0.42129, 0.42988, 0.43848, + 0.44711, 0.45576, 0.46443, 0.47310, 0.48179, 0.49049, 0.49919, + 0.50789, 0.51659, 0.52530, 0.53399, 0.54268, 0.55136, 0.56003, + 0.56868, 0.57731, 0.58592, 0.59451, 0.60307, 0.61161, 0.62011, + 0.62858, 0.63701, 0.64540, 0.65376, 0.66206, 0.67032, 0.67853, + 0.68669, 0.69480, 0.70285, 0.71083, 0.71876, 0.72662, 0.73442, + 0.74214, 0.74979, 0.75737, 0.76487, 0.77230, 0.77964, 0.78689, + 0.79407, 0.80115, 0.80814, 0.81504, 0.82184, 0.82854, 0.83515, + 0.84165, 0.84805, 0.85434, 0.86052, 0.86659, 0.87255, 0.87840, + 0.88413, 0.88974, 0.89523, 0.90060, 0.90584, 0.91096, 0.91595, + 0.92081, 0.92554, 0.93014, 0.93460, 0.93892, 0.94311, 0.94716, + 0.95107, 0.95484, 0.95847, 0.96195, 0.96528, 0.96847, 0.97151, + 0.97440, 0.97714, 0.97973, 0.98217, 0.98445, 0.98658, 0.98856, + 0.99038, 0.99204, 0.99355, 0.99490, 0.99610, 0.99713, 0.99801, + 0.99872, 0.99928, 0.99968, 0.99992, 1.00000}, + //--------- 0.02 GeV + {0.00008, 0.00030, 0.00068, 0.00120, 0.00188, 0.00271, 0.00368, + 0.00480, 0.00608, 0.00750, 0.00906, 0.01078, 0.01264, 0.01465, + 0.01680, 0.01909, 0.02153, 0.02411, 0.02684, 0.02970, 0.03270, + 0.03584, 0.03912, 0.04254, 0.04609, 0.04977, 0.05359, 0.05753, + 0.06161, 0.06582, 0.07015, 0.07461, 0.07919, 0.08390, 0.08873, + 0.09367, 0.09874, 0.10392, 0.10922, 0.11463, 0.12015, 0.12578, + 0.13152, 0.13737, 0.14332, 0.14937, 0.15553, 0.16178, 0.16813, + 0.17458, 0.18112, 0.18775, 0.19447, 0.20128, 0.20817, 0.21515, + 0.22221, 0.22935, 0.23657, 0.24386, 0.25123, 0.25866, 0.26617, + 0.27374, 0.28138, 0.28908, 0.29685, 0.30467, 0.31255, 0.32048, + 0.32846, 0.33650, 0.34458, 0.35271, 0.36088, 0.36909, 0.37734, + 0.38563, 0.39395, 0.40231, 0.41069, 0.41911, 0.42754, 0.43600, + 0.44448, 0.45298, 0.46150, 0.47003, 0.47857, 0.48712, 0.49568, + 0.50424, 0.51280, 0.52136, 0.52992, 0.53848, 0.54703, 0.55557, + 0.56409, 0.57260, 0.58110, 0.58957, 0.59803, 0.60645, 0.61486, + 0.62323, 0.63157, 0.63988, 0.64815, 0.65639, 0.66458, 0.67273, + 0.68083, 0.68889, 0.69689, 0.70484, 0.71274, 0.72057, 0.72835, + 0.73607, 0.74372, 0.75130, 0.75881, 0.76625, 0.77362, 0.78090, + 0.78811, 0.79524, 0.80228, 0.80924, 0.81611, 0.82289, 0.82957, + 0.83616, 0.84265, 0.84904, 0.85533, 0.86151, 0.86759, 0.87356, + 0.87942, 0.88516, 0.89079, 0.89630, 0.90168, 0.90695, 0.91209, + 0.91711, 0.92200, 0.92675, 0.93138, 0.93587, 0.94022, 0.94443, + 0.94851, 0.95244, 0.95623, 0.95987, 0.96336, 0.96670, 0.96989, + 0.97293, 0.97582, 0.97854, 0.98111, 0.98352, 0.98578, 0.98786, + 0.98979, 0.99155, 0.99315, 0.99459, 0.99585, 0.99695, 0.99788, + 0.99864, 0.99924, 0.99966, 0.99992, 1.00000}, + //--------- 0.03 GeV + {0.00008, 0.00032, 0.00073, 0.00129, 0.00201, 0.00289, 0.00393, + 0.00513, 0.00649, 0.00801, 0.00968, 0.01150, 0.01348, 0.01561, + 0.01790, 0.02033, 0.02291, 0.02564, 0.02852, 0.03154, 0.03470, + 0.03801, 0.04145, 0.04503, 0.04875, 0.05261, 0.05659, 0.06071, + 0.06495, 0.06932, 0.07382, 0.07844, 0.08318, 0.08804, 0.09302, + 0.09811, 0.10331, 0.10863, 0.11405, 0.11958, 0.12522, 0.13096, + 0.13679, 0.14273, 0.14876, 0.15489, 0.16111, 0.16742, 0.17382, + 0.18030, 0.18687, 0.19352, 0.20025, 0.20705, 0.21394, 0.22089, + 0.22792, 0.23501, 0.24218, 0.24941, 0.25670, 0.26405, 0.27147, + 0.27894, 0.28646, 0.29404, 0.30167, 0.30935, 0.31708, 0.32486, + 0.33268, 0.34054, 0.34844, 0.35638, 0.36435, 0.37236, 0.38040, + 0.38848, 0.39658, 0.40471, 0.41286, 0.42104, 0.42924, 0.43746, + 0.44569, 0.45395, 0.46221, 0.47049, 0.47878, 0.48708, 0.49538, + 0.50369, 0.51201, 0.52032, 0.52863, 0.53694, 0.54524, 0.55354, + 0.56183, 0.57010, 0.57837, 0.58662, 0.59485, 0.60306, 0.61125, + 0.61942, 0.62756, 0.63568, 0.64377, 0.65182, 0.65984, 0.66783, + 0.67577, 0.68368, 0.69155, 0.69937, 0.70714, 0.71486, 0.72253, + 0.73015, 0.73772, 0.74522, 0.75267, 0.76005, 0.76737, 0.77462, + 0.78180, 0.78891, 0.79594, 0.80290, 0.80978, 0.81658, 0.82329, + 0.82993, 0.83647, 0.84292, 0.84928, 0.85554, 0.86171, 0.86777, + 0.87374, 0.87960, 0.88535, 0.89099, 0.89652, 0.90194, 0.90724, + 0.91242, 0.91747, 0.92241, 0.92721, 0.93188, 0.93643, 0.94083, + 0.94510, 0.94923, 0.95322, 0.95706, 0.96075, 0.96429, 0.96767, + 0.97091, 0.97398, 0.97689, 0.97964, 0.98222, 0.98464, 0.98688, + 0.98896, 0.99086, 0.99258, 0.99413, 0.99550, 0.99669, 0.99770, + 0.99853, 0.99917, 0.99963, 0.99991, 1.00000}, + //--------- 0.05 GeV + {0.00010, 0.00040, 0.00089, 0.00157, 0.00245, 0.00352, 0.00478, + 0.00623, 0.00787, 0.00970, 0.01170, 0.01389, 0.01626, 0.01880, + 0.02151, 0.02439, 0.02744, 0.03065, 0.03402, 0.03754, 0.04122, + 0.04505, 0.04902, 0.05313, 0.05738, 0.06176, 0.06628, 0.07092, + 0.07568, 0.08057, 0.08557, 0.09068, 0.09590, 0.10123, 0.10666, + 0.11219, 0.11781, 0.12353, 0.12933, 0.13522, 0.14119, 0.14725, + 0.15337, 0.15957, 0.16585, 0.17218, 0.17859, 0.18505, 0.19157, + 0.19816, 0.20479, 0.21148, 0.21821, 0.22499, 0.23182, 0.23869, + 0.24560, 0.25255, 0.25953, 0.26655, 0.27361, 0.28069, 0.28781, + 0.29495, 0.30212, 0.30932, 0.31654, 0.32378, 0.33105, 0.33834, + 0.34565, 0.35298, 0.36032, 0.36769, 0.37507, 0.38247, 0.38988, + 0.39731, 0.40476, 0.41221, 0.41968, 0.42717, 0.43466, 0.44217, + 0.44969, 0.45722, 0.46476, 0.47231, 0.47987, 0.48744, 0.49501, + 0.50260, 0.51019, 0.51778, 0.52539, 0.53300, 0.54061, 0.54823, + 0.55584, 0.56347, 0.57109, 0.57871, 0.58633, 0.59395, 0.60157, + 0.60918, 0.61678, 0.62438, 0.63197, 0.63955, 0.64711, 0.65467, + 0.66221, 0.66973, 0.67723, 0.68472, 0.69218, 0.69961, 0.70702, + 0.71440, 0.72175, 0.72907, 0.73635, 0.74360, 0.75080, 0.75796, + 0.76508, 0.77215, 0.77918, 0.78615, 0.79306, 0.79992, 0.80672, + 0.81346, 0.82013, 0.82674, 0.83328, 0.83974, 0.84613, 0.85244, + 0.85867, 0.86482, 0.87088, 0.87685, 0.88273, 0.88851, 0.89420, + 0.89978, 0.90526, 0.91063, 0.91589, 0.92103, 0.92605, 0.93095, + 0.93572, 0.94036, 0.94487, 0.94923, 0.95345, 0.95751, 0.96143, + 0.96518, 0.96876, 0.97218, 0.97542, 0.97849, 0.98136, 0.98405, + 0.98654, 0.98884, 0.99093, 0.99281, 0.99448, 0.99593, 0.99717, + 0.99819, 0.99898, 0.99955, 0.99989, 1.00000}, + //--------- 0.07 GeV + {0.00012, 0.00048, 0.00108, 0.00191, 0.00298, 0.00427, 0.00580, + 0.00755, 0.00952, 0.01171, 0.01412, 0.01673, 0.01954, 0.02256, + 0.02577, 0.02916, 0.03274, 0.03649, 0.04041, 0.04450, 0.04874, + 0.05314, 0.05768, 0.06237, 0.06719, 0.07214, 0.07722, 0.08241, + 0.08772, 0.09313, 0.09865, 0.10426, 0.10996, 0.11575, 0.12162, + 0.12757, 0.13359, 0.13968, 0.14583, 0.15204, 0.15830, 0.16462, + 0.17098, 0.17738, 0.18382, 0.19029, 0.19679, 0.20333, 0.20988, + 0.21646, 0.22306, 0.22968, 0.23630, 0.24294, 0.24959, 0.25625, + 0.26291, 0.26958, 0.27625, 0.28291, 0.28958, 0.29625, 0.30292, + 0.30958, 0.31624, 0.32290, 0.32955, 0.33620, 0.34284, 0.34948, + 0.35612, 0.36275, 0.36939, 0.37601, 0.38264, 0.38927, 0.39589, + 0.40252, 0.40915, 0.41578, 0.42241, 0.42905, 0.43570, 0.44235, + 0.44901, 0.45568, 0.46237, 0.46906, 0.47576, 0.48248, 0.48922, + 0.49597, 0.50274, 0.50952, 0.51633, 0.52315, 0.53000, 0.53686, + 0.54375, 0.55066, 0.55759, 0.56454, 0.57152, 0.57851, 0.58553, + 0.59257, 0.59963, 0.60671, 0.61381, 0.62093, 0.62807, 0.63523, + 0.64239, 0.64958, 0.65677, 0.66398, 0.67119, 0.67841, 0.68564, + 0.69286, 0.70009, 0.70731, 0.71453, 0.72174, 0.72894, 0.73613, + 0.74329, 0.75044, 0.75757, 0.76467, 0.77174, 0.77879, 0.78579, + 0.79276, 0.79968, 0.80656, 0.81340, 0.82018, 0.82690, 0.83357, + 0.84018, 0.84672, 0.85320, 0.85960, 0.86593, 0.87218, 0.87835, + 0.88443, 0.89042, 0.89632, 0.90212, 0.90782, 0.91341, 0.91890, + 0.92426, 0.92950, 0.93462, 0.93960, 0.94443, 0.94913, 0.95366, + 0.95804, 0.96225, 0.96628, 0.97012, 0.97377, 0.97722, 0.98045, + 0.98347, 0.98625, 0.98880, 0.99111, 0.99316, 0.99495, 0.99648, + 0.99774, 0.99873, 0.99943, 0.99986, 1.00000}, + //--------- 0.10 GeV + {0.00015, 0.00060, 0.00133, 0.00235, 0.00366, 0.00524, 0.00710, + 0.00923, 0.01162, 0.01427, 0.01716, 0.02030, 0.02366, 0.02724, + 0.03104, 0.03503, 0.03922, 0.04360, 0.04815, 0.05287, 0.05775, + 0.06278, 0.06795, 0.07325, 0.07868, 0.08423, 0.08988, 0.09563, + 0.10148, 0.10742, 0.11343, 0.11951, 0.12567, 0.13187, 0.13813, + 0.14444, 0.15078, 0.15716, 0.16357, 0.17000, 0.17644, 0.18290, + 0.18936, 0.19582, 0.20228, 0.20874, 0.21519, 0.22162, 0.22803, + 0.23442, 0.24080, 0.24714, 0.25346, 0.25974, 0.26600, 0.27222, + 0.27841, 0.28456, 0.29068, 0.29676, 0.30280, 0.30881, 0.31478, + 0.32071, 0.32661, 0.33247, 0.33830, 0.34410, 0.34987, 0.35560, + 0.36131, 0.36700, 0.37266, 0.37830, 0.38392, 0.38953, 0.39512, + 0.40070, 0.40628, 0.41185, 0.41741, 0.42298, 0.42856, 0.43414, + 0.43973, 0.44533, 0.45095, 0.45659, 0.46226, 0.46795, 0.47367, + 0.47942, 0.48520, 0.49102, 0.49689, 0.50279, 0.50874, 0.51474, + 0.52078, 0.52688, 0.53303, 0.53924, 0.54550, 0.55181, 0.55819, + 0.56462, 0.57111, 0.57766, 0.58427, 0.59094, 0.59767, 0.60445, + 0.61129, 0.61819, 0.62514, 0.63215, 0.63920, 0.64631, 0.65346, + 0.66065, 0.66789, 0.67516, 0.68246, 0.68980, 0.69717, 0.70455, + 0.71196, 0.71938, 0.72681, 0.73425, 0.74169, 0.74913, 0.75656, + 0.76398, 0.77138, 0.77876, 0.78611, 0.79344, 0.80072, 0.80797, + 0.81517, 0.82232, 0.82942, 0.83646, 0.84343, 0.85034, 0.85718, + 0.86395, 0.87063, 0.87724, 0.88375, 0.89017, 0.89650, 0.90273, + 0.90885, 0.91485, 0.92074, 0.92650, 0.93213, 0.93762, 0.94297, + 0.94815, 0.95316, 0.95800, 0.96264, 0.96707, 0.97129, 0.97528, + 0.97902, 0.98250, 0.98570, 0.98861, 0.99122, 0.99351, 0.99547, + 0.99708, 0.99835, 0.99927, 0.99982, 1.00000}, + //--------- 0.14 GeV + {0.00018, 0.00069, 0.00154, 0.00271, 0.00421, 0.00603, 0.00816, + 0.01058, 0.01329, 0.01628, 0.01953, 0.02304, 0.02678, 0.03075, + 0.03494, 0.03933, 0.04391, 0.04867, 0.05360, 0.05868, 0.06391, + 0.06928, 0.07478, 0.08039, 0.08611, 0.09193, 0.09784, 0.10383, + 0.10989, 0.11602, 0.12220, 0.12843, 0.13470, 0.14101, 0.14734, + 0.15369, 0.16005, 0.16642, 0.17279, 0.17915, 0.18550, 0.19183, + 0.19815, 0.20443, 0.21069, 0.21690, 0.22309, 0.22922, 0.23532, + 0.24136, 0.24736, 0.25330, 0.25919, 0.26502, 0.27079, 0.27651, + 0.28217, 0.28777, 0.29331, 0.29879, 0.30421, 0.30958, 0.31489, + 0.32015, 0.32536, 0.33051, 0.33562, 0.34068, 0.34569, 0.35067, + 0.35561, 0.36051, 0.36538, 0.37022, 0.37504, 0.37984, 0.38462, + 0.38939, 0.39414, 0.39890, 0.40365, 0.40840, 0.41316, 0.41794, + 0.42273, 0.42754, 0.43237, 0.43723, 0.44213, 0.44706, 0.45204, + 0.45706, 0.46213, 0.46725, 0.47243, 0.47768, 0.48298, 0.48836, + 0.49380, 0.49933, 0.50492, 0.51060, 0.51636, 0.52221, 0.52814, + 0.53416, 0.54027, 0.54647, 0.55277, 0.55915, 0.56563, 0.57221, + 0.57887, 0.58563, 0.59248, 0.59941, 0.60644, 0.61355, 0.62075, + 0.62803, 0.63538, 0.64281, 0.65031, 0.65788, 0.66551, 0.67320, + 0.68094, 0.68873, 0.69656, 0.70443, 0.71233, 0.72025, 0.72819, + 0.73614, 0.74409, 0.75205, 0.75999, 0.76792, 0.77583, 0.78370, + 0.79155, 0.79935, 0.80710, 0.81480, 0.82244, 0.83001, 0.83752, + 0.84495, 0.85230, 0.85956, 0.86674, 0.87382, 0.88080, 0.88769, + 0.89446, 0.90113, 0.90769, 0.91412, 0.92043, 0.92660, 0.93263, + 0.93852, 0.94424, 0.94978, 0.95514, 0.96030, 0.96524, 0.96994, + 0.97438, 0.97854, 0.98240, 0.98593, 0.98912, 0.99193, 0.99435, + 0.99636, 0.99794, 0.99908, 0.99977, 1.00000}, + //--------- 0.18 GeV + {0.00019, 0.00073, 0.00162, 0.00286, 0.00444, 0.00635, 0.00857, + 0.01110, 0.01391, 0.01701, 0.02036, 0.02396, 0.02779, 0.03185, + 0.03610, 0.04055, 0.04518, 0.04998, 0.05494, 0.06004, 0.06528, + 0.07065, 0.07613, 0.08172, 0.08741, 0.09319, 0.09906, 0.10499, + 0.11099, 0.11705, 0.12316, 0.12931, 0.13550, 0.14171, 0.14794, + 0.15419, 0.16045, 0.16670, 0.17296, 0.17920, 0.18543, 0.19163, + 0.19781, 0.20396, 0.21008, 0.21615, 0.22219, 0.22817, 0.23411, + 0.24000, 0.24584, 0.25162, 0.25734, 0.26300, 0.26861, 0.27415, + 0.27963, 0.28505, 0.29041, 0.29571, 0.30094, 0.30612, 0.31124, + 0.31630, 0.32131, 0.32627, 0.33117, 0.33603, 0.34084, 0.34560, + 0.35033, 0.35502, 0.35968, 0.36430, 0.36890, 0.37348, 0.37804, + 0.38258, 0.38711, 0.39163, 0.39615, 0.40067, 0.40520, 0.40974, + 0.41429, 0.41886, 0.42345, 0.42808, 0.43273, 0.43742, 0.44215, + 0.44693, 0.45175, 0.45663, 0.46156, 0.46656, 0.47163, 0.47676, + 0.48197, 0.48725, 0.49261, 0.49806, 0.50359, 0.50921, 0.51493, + 0.52074, 0.52664, 0.53265, 0.53875, 0.54496, 0.55127, 0.55768, + 0.56420, 0.57082, 0.57755, 0.58439, 0.59132, 0.59836, 0.60550, + 0.61274, 0.62008, 0.62751, 0.63503, 0.64264, 0.65033, 0.65810, + 0.66594, 0.67385, 0.68182, 0.68985, 0.69793, 0.70606, 0.71422, + 0.72240, 0.73061, 0.73884, 0.74706, 0.75529, 0.76350, 0.77170, + 0.77987, 0.78800, 0.79609, 0.80412, 0.81210, 0.82001, 0.82785, + 0.83561, 0.84329, 0.85087, 0.85836, 0.86575, 0.87303, 0.88021, + 0.88727, 0.89422, 0.90105, 0.90776, 0.91435, 0.92080, 0.92712, + 0.93329, 0.93931, 0.94517, 0.95086, 0.95636, 0.96165, 0.96672, + 0.97153, 0.97607, 0.98030, 0.98420, 0.98774, 0.99088, 0.99360, + 0.99587, 0.99766, 0.99895, 0.99974, 1.00000}, + //--------- 0.24 GeV + {0.00019, 0.00074, 0.00163, 0.00288, 0.00445, 0.00635, 0.00855, + 0.01104, 0.01381, 0.01683, 0.02010, 0.02360, 0.02732, 0.03123, + 0.03534, 0.03962, 0.04408, 0.04869, 0.05346, 0.05837, 0.06341, + 0.06858, 0.07388, 0.07929, 0.08480, 0.09042, 0.09613, 0.10192, + 0.10780, 0.11374, 0.11976, 0.12583, 0.13196, 0.13813, 0.14434, + 0.15058, 0.15686, 0.16315, 0.16945, 0.17577, 0.18208, 0.18840, + 0.19470, 0.20099, 0.20727, 0.21352, 0.21974, 0.22593, 0.23208, + 0.23819, 0.24426, 0.25029, 0.25626, 0.26219, 0.26805, 0.27387, + 0.27962, 0.28532, 0.29095, 0.29653, 0.30205, 0.30750, 0.31290, + 0.31824, 0.32351, 0.32873, 0.33390, 0.33901, 0.34407, 0.34907, + 0.35403, 0.35895, 0.36382, 0.36865, 0.37344, 0.37820, 0.38294, + 0.38764, 0.39232, 0.39698, 0.40163, 0.40626, 0.41089, 0.41551, + 0.42013, 0.42475, 0.42939, 0.43403, 0.43869, 0.44337, 0.44807, + 0.45280, 0.45757, 0.46236, 0.46720, 0.47208, 0.47701, 0.48199, + 0.48703, 0.49213, 0.49729, 0.50251, 0.50781, 0.51318, 0.51862, + 0.52415, 0.52976, 0.53545, 0.54124, 0.54712, 0.55309, 0.55916, + 0.56532, 0.57159, 0.57796, 0.58443, 0.59101, 0.59769, 0.60448, + 0.61137, 0.61837, 0.62547, 0.63267, 0.63997, 0.64737, 0.65486, + 0.66245, 0.67012, 0.67788, 0.68571, 0.69362, 0.70159, 0.70962, + 0.71770, 0.72583, 0.73400, 0.74220, 0.75041, 0.75864, 0.76687, + 0.77509, 0.78329, 0.79146, 0.79960, 0.80768, 0.81571, 0.82368, + 0.83157, 0.83937, 0.84708, 0.85470, 0.86220, 0.86960, 0.87688, + 0.88403, 0.89106, 0.89797, 0.90474, 0.91138, 0.91788, 0.92425, + 0.93048, 0.93656, 0.94249, 0.94827, 0.95387, 0.95929, 0.96451, + 0.96950, 0.97424, 0.97870, 0.98284, 0.98662, 0.99001, 0.99296, + 0.99544, 0.99741, 0.99884, 0.99971, 1.00000}, + //--------- 0.34 GeV + {0.00019, 0.00072, 0.00159, 0.00279, 0.00431, 0.00612, 0.00823, + 0.01060, 0.01322, 0.01608, 0.01917, 0.02247, 0.02598, 0.02969, + 0.03359, 0.03768, 0.04195, 0.04641, 0.05104, 0.05584, 0.06082, + 0.06596, 0.07126, 0.07673, 0.08235, 0.08811, 0.09403, 0.10008, + 0.10626, 0.11257, 0.11900, 0.12554, 0.13219, 0.13893, 0.14576, + 0.15267, 0.15965, 0.16669, 0.17379, 0.18094, 0.18812, 0.19533, + 0.20257, 0.20981, 0.21706, 0.22430, 0.23153, 0.23874, 0.24592, + 0.25307, 0.26017, 0.26724, 0.27424, 0.28120, 0.28808, 0.29491, + 0.30166, 0.30834, 0.31494, 0.32147, 0.32791, 0.33427, 0.34055, + 0.34674, 0.35285, 0.35888, 0.36483, 0.37069, 0.37647, 0.38217, + 0.38779, 0.39334, 0.39882, 0.40422, 0.40956, 0.41483, 0.42004, + 0.42519, 0.43028, 0.43532, 0.44031, 0.44525, 0.45015, 0.45501, + 0.45984, 0.46463, 0.46940, 0.47414, 0.47886, 0.48356, 0.48825, + 0.49292, 0.49759, 0.50226, 0.50693, 0.51160, 0.51629, 0.52098, + 0.52568, 0.53041, 0.53516, 0.53994, 0.54474, 0.54958, 0.55446, + 0.55937, 0.56434, 0.56935, 0.57441, 0.57953, 0.58471, 0.58996, + 0.59527, 0.60065, 0.60611, 0.61165, 0.61727, 0.62297, 0.62877, + 0.63465, 0.64063, 0.64670, 0.65287, 0.65914, 0.66552, 0.67199, + 0.67857, 0.68525, 0.69202, 0.69890, 0.70588, 0.71295, 0.72011, + 0.72736, 0.73469, 0.74209, 0.74957, 0.75711, 0.76470, 0.77233, + 0.78001, 0.78771, 0.79542, 0.80314, 0.81086, 0.81855, 0.82621, + 0.83383, 0.84140, 0.84889, 0.85631, 0.86365, 0.87088, 0.87800, + 0.88500, 0.89188, 0.89864, 0.90525, 0.91173, 0.91806, 0.92425, + 0.93030, 0.93621, 0.94197, 0.94758, 0.95304, 0.95835, 0.96348, + 0.96843, 0.97316, 0.97766, 0.98188, 0.98579, 0.98932, 0.99244, + 0.99508, 0.99719, 0.99874, 0.99968, 1.00000}, + //--------- 0.42 GeV + {0.00020, 0.00075, 0.00165, 0.00289, 0.00445, 0.00633, 0.00849, + 0.01094, 0.01364, 0.01660, 0.01979, 0.02322, 0.02688, 0.03077, + 0.03487, 0.03920, 0.04375, 0.04852, 0.05350, 0.05870, 0.06411, + 0.06973, 0.07556, 0.08159, 0.08782, 0.09423, 0.10084, 0.10761, + 0.11456, 0.12167, 0.12893, 0.13633, 0.14386, 0.15152, 0.15928, + 0.16715, 0.17510, 0.18313, 0.19123, 0.19938, 0.20757, 0.21580, + 0.22404, 0.23229, 0.24054, 0.24877, 0.25698, 0.26515, 0.27328, + 0.28135, 0.28937, 0.29732, 0.30519, 0.31298, 0.32068, 0.32829, + 0.33580, 0.34320, 0.35051, 0.35771, 0.36479, 0.37177, 0.37864, + 0.38539, 0.39204, 0.39857, 0.40499, 0.41131, 0.41751, 0.42362, + 0.42962, 0.43551, 0.44132, 0.44702, 0.45264, 0.45816, 0.46361, + 0.46896, 0.47424, 0.47945, 0.48458, 0.48964, 0.49464, 0.49958, + 0.50446, 0.50928, 0.51405, 0.51878, 0.52345, 0.52809, 0.53269, + 0.53725, 0.54178, 0.54628, 0.55076, 0.55521, 0.55965, 0.56407, + 0.56847, 0.57287, 0.57726, 0.58165, 0.58604, 0.59044, 0.59484, + 0.59925, 0.60368, 0.60813, 0.61260, 0.61710, 0.62163, 0.62620, + 0.63080, 0.63545, 0.64015, 0.64490, 0.64970, 0.65457, 0.65950, + 0.66450, 0.66958, 0.67473, 0.67997, 0.68529, 0.69070, 0.69620, + 0.70179, 0.70749, 0.71328, 0.71917, 0.72516, 0.73126, 0.73745, + 0.74374, 0.75014, 0.75662, 0.76320, 0.76987, 0.77661, 0.78343, + 0.79032, 0.79727, 0.80427, 0.81131, 0.81839, 0.82548, 0.83258, + 0.83967, 0.84675, 0.85380, 0.86081, 0.86776, 0.87464, 0.88144, + 0.88815, 0.89475, 0.90125, 0.90762, 0.91386, 0.91997, 0.92594, + 0.93177, 0.93746, 0.94301, 0.94842, 0.95368, 0.95880, 0.96376, + 0.96855, 0.97316, 0.97757, 0.98173, 0.98560, 0.98913, 0.99227, + 0.99495, 0.99711, 0.99870, 0.99967, 1.00000}, + //--------- 0.50 GeV + {0.00023, 0.00086, 0.00190, 0.00333, 0.00513, 0.00729, 0.00979, + 0.01261, 0.01574, 0.01917, 0.02288, 0.02688, 0.03115, 0.03570, + 0.04053, 0.04562, 0.05098, 0.05661, 0.06251, 0.06866, 0.07507, + 0.08173, 0.08863, 0.09577, 0.10314, 0.11072, 0.11851, 0.12650, + 0.13468, 0.14303, 0.15154, 0.16020, 0.16900, 0.17791, 0.18693, + 0.19605, 0.20524, 0.21449, 0.22379, 0.23312, 0.24247, 0.25182, + 0.26117, 0.27048, 0.27977, 0.28900, 0.29818, 0.30728, 0.31630, + 0.32523, 0.33406, 0.34278, 0.35138, 0.35987, 0.36823, 0.37645, + 0.38454, 0.39250, 0.40031, 0.40798, 0.41551, 0.42289, 0.43013, + 0.43723, 0.44419, 0.45101, 0.45769, 0.46424, 0.47065, 0.47694, + 0.48310, 0.48913, 0.49505, 0.50085, 0.50654, 0.51212, 0.51759, + 0.52297, 0.52824, 0.53342, 0.53852, 0.54352, 0.54845, 0.55329, + 0.55806, 0.56276, 0.56739, 0.57195, 0.57645, 0.58089, 0.58528, + 0.58961, 0.59390, 0.59814, 0.60233, 0.60648, 0.61060, 0.61468, + 0.61873, 0.62275, 0.62675, 0.63072, 0.63467, 0.63861, 0.64253, + 0.64645, 0.65035, 0.65426, 0.65816, 0.66207, 0.66598, 0.66991, + 0.67385, 0.67781, 0.68180, 0.68581, 0.68985, 0.69393, 0.69806, + 0.70222, 0.70644, 0.71071, 0.71505, 0.71944, 0.72391, 0.72844, + 0.73306, 0.73776, 0.74254, 0.74741, 0.75237, 0.75742, 0.76257, + 0.76782, 0.77317, 0.77862, 0.78416, 0.78980, 0.79553, 0.80136, + 0.80727, 0.81327, 0.81934, 0.82548, 0.83168, 0.83794, 0.84423, + 0.85056, 0.85690, 0.86325, 0.86960, 0.87592, 0.88222, 0.88846, + 0.89465, 0.90076, 0.90678, 0.91271, 0.91853, 0.92424, 0.92982, + 0.93528, 0.94061, 0.94580, 0.95086, 0.95579, 0.96058, 0.96523, + 0.96973, 0.97408, 0.97825, 0.98221, 0.98592, 0.98933, 0.99238, + 0.99500, 0.99713, 0.99871, 0.99967, 1.00000}, + //--------- 0.58 GeV + {0.00029, 0.00110, 0.00243, 0.00427, 0.00660, 0.00938, 0.01260, + 0.01623, 0.02027, 0.02469, 0.02948, 0.03464, 0.04015, 0.04601, + 0.05222, 0.05876, 0.06564, 0.07283, 0.08034, 0.08815, 0.09626, + 0.10465, 0.11331, 0.12223, 0.13138, 0.14077, 0.15037, 0.16017, + 0.17014, 0.18027, 0.19055, 0.20096, 0.21147, 0.22207, 0.23275, + 0.24347, 0.25423, 0.26500, 0.27577, 0.28652, 0.29723, 0.30789, + 0.31847, 0.32897, 0.33938, 0.34967, 0.35984, 0.36987, 0.37975, + 0.38948, 0.39905, 0.40845, 0.41767, 0.42671, 0.43556, 0.44423, + 0.45271, 0.46099, 0.46909, 0.47699, 0.48471, 0.49223, 0.49957, + 0.50673, 0.51371, 0.52051, 0.52714, 0.53360, 0.53989, 0.54603, + 0.55201, 0.55785, 0.56354, 0.56908, 0.57450, 0.57978, 0.58494, + 0.58997, 0.59489, 0.59970, 0.60440, 0.60900, 0.61350, 0.61790, + 0.62221, 0.62644, 0.63059, 0.63465, 0.63865, 0.64257, 0.64643, + 0.65022, 0.65395, 0.65763, 0.66125, 0.66483, 0.66836, 0.67184, + 0.67529, 0.67870, 0.68208, 0.68543, 0.68876, 0.69206, 0.69534, + 0.69860, 0.70185, 0.70509, 0.70832, 0.71155, 0.71478, 0.71802, + 0.72126, 0.72451, 0.72777, 0.73105, 0.73436, 0.73769, 0.74105, + 0.74444, 0.74787, 0.75134, 0.75486, 0.75843, 0.76206, 0.76575, + 0.76949, 0.77331, 0.77720, 0.78116, 0.78520, 0.78933, 0.79354, + 0.79784, 0.80222, 0.80670, 0.81128, 0.81594, 0.82070, 0.82555, + 0.83049, 0.83552, 0.84064, 0.84583, 0.85110, 0.85643, 0.86182, + 0.86726, 0.87274, 0.87825, 0.88378, 0.88931, 0.89484, 0.90034, + 0.90581, 0.91122, 0.91657, 0.92185, 0.92703, 0.93212, 0.93710, + 0.94196, 0.94671, 0.95132, 0.95582, 0.96018, 0.96443, 0.96855, + 0.97254, 0.97640, 0.98011, 0.98366, 0.98701, 0.99011, 0.99290, + 0.99532, 0.99731, 0.99878, 0.99969, 1.00000}, + //--------- 0.62 GeV + {0.00033, 0.00125, 0.00277, 0.00487, 0.00752, 0.01069, 0.01436, + 0.01850, 0.02311, 0.02815, 0.03361, 0.03949, 0.04576, 0.05243, + 0.05948, 0.06691, 0.07469, 0.08283, 0.09130, 0.10010, 0.10920, + 0.11860, 0.12828, 0.13822, 0.14841, 0.15881, 0.16943, 0.18023, + 0.19119, 0.20230, 0.21354, 0.22488, 0.23630, 0.24779, 0.25931, + 0.27086, 0.28241, 0.29393, 0.30542, 0.31686, 0.32821, 0.33948, + 0.35063, 0.36166, 0.37255, 0.38329, 0.39387, 0.40427, 0.41448, + 0.42451, 0.43433, 0.44395, 0.45335, 0.46254, 0.47151, 0.48026, + 0.48880, 0.49711, 0.50520, 0.51307, 0.52073, 0.52818, 0.53541, + 0.54245, 0.54928, 0.55592, 0.56236, 0.56862, 0.57470, 0.58061, + 0.58635, 0.59192, 0.59734, 0.60260, 0.60772, 0.61270, 0.61754, + 0.62225, 0.62684, 0.63131, 0.63566, 0.63990, 0.64404, 0.64808, + 0.65203, 0.65588, 0.65965, 0.66334, 0.66695, 0.67049, 0.67396, + 0.67736, 0.68071, 0.68399, 0.68723, 0.69042, 0.69356, 0.69666, + 0.69973, 0.70276, 0.70576, 0.70874, 0.71169, 0.71462, 0.71753, + 0.72043, 0.72332, 0.72620, 0.72908, 0.73195, 0.73483, 0.73772, + 0.74062, 0.74353, 0.74645, 0.74939, 0.75236, 0.75535, 0.75838, + 0.76143, 0.76453, 0.76767, 0.77085, 0.77408, 0.77736, 0.78070, + 0.78410, 0.78756, 0.79110, 0.79470, 0.79838, 0.80214, 0.80598, + 0.80990, 0.81391, 0.81801, 0.82220, 0.82648, 0.83086, 0.83532, + 0.83988, 0.84452, 0.84925, 0.85406, 0.85895, 0.86392, 0.86894, + 0.87403, 0.87916, 0.88433, 0.88952, 0.89474, 0.89995, 0.90515, + 0.91032, 0.91546, 0.92054, 0.92555, 0.93049, 0.93533, 0.94007, + 0.94470, 0.94921, 0.95360, 0.95786, 0.96201, 0.96603, 0.96993, + 0.97371, 0.97737, 0.98090, 0.98427, 0.98746, 0.99043, 0.99312, + 0.99546, 0.99738, 0.99881, 0.99970, 1.00000}, + //--------- 0.68 GeV + {0.00038, 0.00148, 0.00327, 0.00575, 0.00888, 0.01263, 0.01698, + 0.02189, 0.02733, 0.03330, 0.03977, 0.04672, 0.05414, 0.06201, + 0.07032, 0.07906, 0.08819, 0.09771, 0.10760, 0.11783, 0.12839, + 0.13924, 0.15038, 0.16178, 0.17340, 0.18524, 0.19725, 0.20943, + 0.22173, 0.23415, 0.24665, 0.25920, 0.27179, 0.28438, 0.29697, + 0.30951, 0.32199, 0.33439, 0.34669, 0.35887, 0.37091, 0.38279, + 0.39449, 0.40600, 0.41732, 0.42841, 0.43928, 0.44992, 0.46031, + 0.47046, 0.48034, 0.48997, 0.49934, 0.50844, 0.51728, 0.52586, + 0.53418, 0.54223, 0.55003, 0.55758, 0.56489, 0.57195, 0.57877, + 0.58536, 0.59173, 0.59789, 0.60383, 0.60957, 0.61511, 0.62047, + 0.62564, 0.63064, 0.63546, 0.64013, 0.64464, 0.64901, 0.65323, + 0.65732, 0.66128, 0.66512, 0.66884, 0.67245, 0.67596, 0.67937, + 0.68269, 0.68592, 0.68907, 0.69215, 0.69515, 0.69809, 0.70097, + 0.70379, 0.70656, 0.70928, 0.71196, 0.71460, 0.71721, 0.71978, + 0.72233, 0.72486, 0.72737, 0.72986, 0.73234, 0.73481, 0.73728, + 0.73974, 0.74221, 0.74467, 0.74715, 0.74963, 0.75212, 0.75463, + 0.75715, 0.75970, 0.76227, 0.76486, 0.76748, 0.77013, 0.77282, + 0.77554, 0.77830, 0.78110, 0.78395, 0.78685, 0.78980, 0.79281, + 0.79587, 0.79899, 0.80218, 0.80544, 0.80877, 0.81217, 0.81565, + 0.81921, 0.82286, 0.82659, 0.83040, 0.83431, 0.83831, 0.84240, + 0.84658, 0.85085, 0.85521, 0.85966, 0.86419, 0.86881, 0.87350, + 0.87825, 0.88307, 0.88794, 0.89285, 0.89779, 0.90274, 0.90771, + 0.91266, 0.91760, 0.92249, 0.92733, 0.93211, 0.93681, 0.94141, + 0.94592, 0.95031, 0.95459, 0.95874, 0.96278, 0.96669, 0.97048, + 0.97416, 0.97772, 0.98115, 0.98444, 0.98757, 0.99048, 0.99313, + 0.99546, 0.99737, 0.99881, 0.99970, 1.00000}, + //--------- 0.74 GeV + {0.00043, 0.00168, 0.00373, 0.00655, 0.01012, 0.01440, 0.01935, + 0.02495, 0.03117, 0.03798, 0.04537, 0.05330, 0.06176, 0.07073, + 0.08018, 0.09010, 0.10045, 0.11121, 0.12235, 0.13386, 0.14569, + 0.15782, 0.17022, 0.18285, 0.19570, 0.20873, 0.22190, 0.23519, + 0.24856, 0.26200, 0.27546, 0.28892, 0.30236, 0.31574, 0.32905, + 0.34225, 0.35532, 0.36824, 0.38099, 0.39355, 0.40591, 0.41803, + 0.42992, 0.44155, 0.45292, 0.46401, 0.47482, 0.48533, 0.49555, + 0.50547, 0.51509, 0.52440, 0.53341, 0.54212, 0.55052, 0.55863, + 0.56645, 0.57398, 0.58123, 0.58821, 0.59492, 0.60137, 0.60757, + 0.61353, 0.61925, 0.62475, 0.63002, 0.63509, 0.63996, 0.64464, + 0.64913, 0.65345, 0.65761, 0.66160, 0.66545, 0.66915, 0.67272, + 0.67616, 0.67948, 0.68269, 0.68580, 0.68880, 0.69171, 0.69454, + 0.69729, 0.69997, 0.70258, 0.70512, 0.70762, 0.71006, 0.71246, + 0.71482, 0.71714, 0.71943, 0.72170, 0.72395, 0.72618, 0.72840, + 0.73060, 0.73280, 0.73500, 0.73720, 0.73941, 0.74162, 0.74384, + 0.74607, 0.74831, 0.75057, 0.75286, 0.75516, 0.75748, 0.75983, + 0.76221, 0.76461, 0.76705, 0.76952, 0.77202, 0.77456, 0.77713, + 0.77975, 0.78240, 0.78510, 0.78784, 0.79063, 0.79348, 0.79637, + 0.79932, 0.80232, 0.80538, 0.80851, 0.81170, 0.81497, 0.81830, + 0.82170, 0.82519, 0.82875, 0.83240, 0.83613, 0.83995, 0.84386, + 0.84785, 0.85194, 0.85612, 0.86038, 0.86474, 0.86918, 0.87370, + 0.87829, 0.88296, 0.88769, 0.89247, 0.89730, 0.90216, 0.90704, + 0.91193, 0.91682, 0.92168, 0.92650, 0.93127, 0.93598, 0.94061, + 0.94514, 0.94957, 0.95389, 0.95809, 0.96217, 0.96613, 0.96997, + 0.97368, 0.97728, 0.98075, 0.98409, 0.98726, 0.99022, 0.99293, + 0.99531, 0.99728, 0.99877, 0.99969, 1.00000}, + //--------- 0.80 GeV + {0.00048, 0.00187, 0.00414, 0.00728, 0.01125, 0.01601, 0.02152, + 0.02775, 0.03467, 0.04225, 0.05046, 0.05928, 0.06868, 0.07863, + 0.08910, 0.10007, 0.11150, 0.12335, 0.13560, 0.14821, 0.16114, + 0.17435, 0.18782, 0.20150, 0.21536, 0.22936, 0.24347, 0.25764, + 0.27186, 0.28608, 0.30027, 0.31440, 0.32844, 0.34237, 0.35615, + 0.36976, 0.38318, 0.39638, 0.40935, 0.42206, 0.43450, 0.44666, + 0.45851, 0.47006, 0.48128, 0.49218, 0.50275, 0.51298, 0.52287, + 0.53242, 0.54164, 0.55052, 0.55906, 0.56728, 0.57518, 0.58275, + 0.59002, 0.59699, 0.60366, 0.61005, 0.61617, 0.62202, 0.62761, + 0.63296, 0.63808, 0.64296, 0.64764, 0.65210, 0.65637, 0.66046, + 0.66436, 0.66811, 0.67169, 0.67512, 0.67841, 0.68157, 0.68461, + 0.68753, 0.69035, 0.69306, 0.69568, 0.69822, 0.70068, 0.70307, + 0.70539, 0.70766, 0.70987, 0.71204, 0.71417, 0.71626, 0.71833, + 0.72037, 0.72239, 0.72440, 0.72639, 0.72838, 0.73037, 0.73236, + 0.73436, 0.73636, 0.73838, 0.74041, 0.74246, 0.74452, 0.74661, + 0.74873, 0.75086, 0.75303, 0.75523, 0.75745, 0.75971, 0.76200, + 0.76433, 0.76669, 0.76909, 0.77153, 0.77400, 0.77651, 0.77907, + 0.78166, 0.78429, 0.78697, 0.78969, 0.79245, 0.79526, 0.79812, + 0.80103, 0.80399, 0.80700, 0.81007, 0.81320, 0.81639, 0.81964, + 0.82296, 0.82635, 0.82981, 0.83334, 0.83696, 0.84066, 0.84444, + 0.84831, 0.85226, 0.85630, 0.86044, 0.86466, 0.86896, 0.87336, + 0.87783, 0.88238, 0.88701, 0.89170, 0.89644, 0.90123, 0.90605, + 0.91089, 0.91575, 0.92059, 0.92542, 0.93020, 0.93493, 0.93959, + 0.94417, 0.94865, 0.95303, 0.95729, 0.96143, 0.96545, 0.96935, + 0.97312, 0.97677, 0.98030, 0.98369, 0.98691, 0.98994, 0.99271, + 0.99516, 0.99719, 0.99872, 0.99968, 1.00000}, + //--------- 0.90 GeV + {0.00056, 0.00217, 0.00482, 0.00847, 0.01308, 0.01861, 0.02502, + 0.03227, 0.04031, 0.04912, 0.05865, 0.06887, 0.07974, 0.09123, + 0.10329, 0.11587, 0.12895, 0.14246, 0.15636, 0.17061, 0.18515, + 0.19995, 0.21495, 0.23011, 0.24538, 0.26072, 0.27608, 0.29143, + 0.30673, 0.32194, 0.33703, 0.35195, 0.36668, 0.38120, 0.39547, + 0.40947, 0.42318, 0.43658, 0.44965, 0.46238, 0.47475, 0.48676, + 0.49839, 0.50964, 0.52050, 0.53098, 0.54108, 0.55078, 0.56011, + 0.56906, 0.57764, 0.58586, 0.59372, 0.60123, 0.60840, 0.61525, + 0.62178, 0.62800, 0.63392, 0.63957, 0.64494, 0.65004, 0.65490, + 0.65952, 0.66392, 0.66809, 0.67206, 0.67584, 0.67943, 0.68285, + 0.68611, 0.68921, 0.69217, 0.69499, 0.69768, 0.70026, 0.70273, + 0.70511, 0.70739, 0.70958, 0.71170, 0.71376, 0.71575, 0.71768, + 0.71958, 0.72142, 0.72324, 0.72502, 0.72679, 0.72853, 0.73026, + 0.73199, 0.73371, 0.73543, 0.73715, 0.73889, 0.74063, 0.74239, + 0.74417, 0.74597, 0.74779, 0.74964, 0.75151, 0.75342, 0.75535, + 0.75732, 0.75933, 0.76137, 0.76345, 0.76556, 0.76771, 0.76990, + 0.77213, 0.77440, 0.77671, 0.77905, 0.78144, 0.78386, 0.78632, + 0.78882, 0.79135, 0.79393, 0.79654, 0.79919, 0.80188, 0.80461, + 0.80739, 0.81020, 0.81306, 0.81596, 0.81891, 0.82191, 0.82497, + 0.82808, 0.83125, 0.83448, 0.83778, 0.84115, 0.84459, 0.84811, + 0.85170, 0.85538, 0.85914, 0.86299, 0.86693, 0.87095, 0.87507, + 0.87927, 0.88355, 0.88792, 0.89236, 0.89687, 0.90145, 0.90608, + 0.91075, 0.91545, 0.92017, 0.92489, 0.92960, 0.93427, 0.93890, + 0.94346, 0.94794, 0.95233, 0.95661, 0.96078, 0.96484, 0.96877, + 0.97257, 0.97626, 0.97982, 0.98324, 0.98651, 0.98960, 0.99244, + 0.99495, 0.99706, 0.99866, 0.99966, 1.00000}, + //--------- 1.00 GeV + {0.00064, 0.00248, 0.00552, 0.00970, 0.01498, 0.02132, 0.02865, + 0.03694, 0.04614, 0.05619, 0.06706, 0.07870, 0.09105, 0.10406, + 0.11768, 0.13184, 0.14650, 0.16159, 0.17704, 0.19281, 0.20883, + 0.22505, 0.24140, 0.25784, 0.27431, 0.29076, 0.30714, 0.32342, + 0.33955, 0.35548, 0.37119, 0.38664, 0.40181, 0.41666, 0.43117, + 0.44532, 0.45910, 0.47248, 0.48546, 0.49803, 0.51018, 0.52191, + 0.53321, 0.54408, 0.55453, 0.56457, 0.57418, 0.58339, 0.59220, + 0.60062, 0.60867, 0.61634, 0.62365, 0.63062, 0.63725, 0.64356, + 0.64957, 0.65527, 0.66069, 0.66583, 0.67071, 0.67534, 0.67973, + 0.68389, 0.68784, 0.69158, 0.69512, 0.69848, 0.70167, 0.70468, + 0.70755, 0.71027, 0.71285, 0.71530, 0.71764, 0.71987, 0.72201, + 0.72405, 0.72601, 0.72789, 0.72971, 0.73147, 0.73319, 0.73485, + 0.73649, 0.73809, 0.73967, 0.74123, 0.74278, 0.74432, 0.74586, + 0.74740, 0.74894, 0.75050, 0.75206, 0.75365, 0.75525, 0.75687, + 0.75852, 0.76020, 0.76190, 0.76363, 0.76539, 0.76719, 0.76902, + 0.77088, 0.77278, 0.77472, 0.77669, 0.77871, 0.78076, 0.78284, + 0.78497, 0.78713, 0.78932, 0.79156, 0.79382, 0.79613, 0.79846, + 0.80083, 0.80322, 0.80565, 0.80811, 0.81060, 0.81311, 0.81566, + 0.81824, 0.82085, 0.82349, 0.82617, 0.82889, 0.83164, 0.83444, + 0.83728, 0.84017, 0.84311, 0.84611, 0.84916, 0.85228, 0.85547, + 0.85872, 0.86205, 0.86546, 0.86895, 0.87252, 0.87618, 0.87992, + 0.88376, 0.88768, 0.89169, 0.89578, 0.89995, 0.90420, 0.90852, + 0.91289, 0.91732, 0.92179, 0.92627, 0.93077, 0.93526, 0.93973, + 0.94415, 0.94851, 0.95279, 0.95699, 0.96108, 0.96506, 0.96892, + 0.97267, 0.97630, 0.97980, 0.98319, 0.98642, 0.98949, 0.99233, + 0.99486, 0.99700, 0.99863, 0.99965, 1.00000}, + //--------- 1.10 GeV + {0.00072, 0.00280, 0.00623, 0.01096, 0.01693, 0.02409, 0.03237, + 0.04173, 0.05210, 0.06342, 0.07565, 0.08870, 0.10253, 0.11705, + 0.13220, 0.14790, 0.16408, 0.18067, 0.19759, 0.21477, 0.23214, + 0.24964, 0.26719, 0.28474, 0.30223, 0.31961, 0.33682, 0.35382, + 0.37056, 0.38702, 0.40315, 0.41893, 0.43433, 0.44933, 0.46390, + 0.47804, 0.49173, 0.50497, 0.51774, 0.53005, 0.54190, 0.55328, + 0.56421, 0.57468, 0.58471, 0.59431, 0.60348, 0.61224, 0.62059, + 0.62856, 0.63616, 0.64339, 0.65028, 0.65683, 0.66306, 0.66897, + 0.67460, 0.67993, 0.68499, 0.68979, 0.69434, 0.69865, 0.70273, + 0.70659, 0.71025, 0.71370, 0.71696, 0.72004, 0.72295, 0.72570, + 0.72830, 0.73076, 0.73309, 0.73529, 0.73738, 0.73937, 0.74127, + 0.74308, 0.74481, 0.74648, 0.74809, 0.74964, 0.75116, 0.75264, + 0.75410, 0.75554, 0.75696, 0.75837, 0.75978, 0.76120, 0.76262, + 0.76405, 0.76550, 0.76697, 0.76845, 0.76996, 0.77150, 0.77306, + 0.77465, 0.77627, 0.77792, 0.77961, 0.78133, 0.78308, 0.78487, + 0.78669, 0.78855, 0.79045, 0.79238, 0.79435, 0.79636, 0.79840, + 0.80047, 0.80258, 0.80472, 0.80690, 0.80910, 0.81133, 0.81358, + 0.81586, 0.81816, 0.82049, 0.82283, 0.82519, 0.82757, 0.82997, + 0.83238, 0.83482, 0.83727, 0.83974, 0.84224, 0.84476, 0.84730, + 0.84988, 0.85249, 0.85514, 0.85782, 0.86056, 0.86334, 0.86617, + 0.86906, 0.87201, 0.87502, 0.87811, 0.88127, 0.88450, 0.88782, + 0.89121, 0.89469, 0.89826, 0.90191, 0.90565, 0.90947, 0.91337, + 0.91734, 0.92138, 0.92547, 0.92961, 0.93377, 0.93795, 0.94213, + 0.94628, 0.95040, 0.95446, 0.95845, 0.96235, 0.96616, 0.96986, + 0.97345, 0.97693, 0.98029, 0.98355, 0.98667, 0.98964, 0.99241, + 0.99489, 0.99700, 0.99862, 0.99965, 1.00000}, + //--------- 1.20 GeV + {0.00080, 0.00312, 0.00693, 0.01219, 0.01884, 0.02680, 0.03601, + 0.04640, 0.05791, 0.07047, 0.08400, 0.09841, 0.11364, 0.12959, + 0.14617, 0.16331, 0.18089, 0.19885, 0.21709, 0.23553, 0.25408, + 0.27268, 0.29125, 0.30973, 0.32804, 0.34614, 0.36398, 0.38151, + 0.39868, 0.41547, 0.43184, 0.44777, 0.46324, 0.47822, 0.49272, + 0.50672, 0.52021, 0.53319, 0.54567, 0.55765, 0.56914, 0.58014, + 0.59067, 0.60074, 0.61035, 0.61953, 0.62829, 0.63665, 0.64461, + 0.65220, 0.65943, 0.66631, 0.67286, 0.67909, 0.68501, 0.69065, + 0.69600, 0.70108, 0.70589, 0.71046, 0.71479, 0.71889, 0.72276, + 0.72642, 0.72988, 0.73314, 0.73621, 0.73910, 0.74183, 0.74439, + 0.74681, 0.74908, 0.75123, 0.75325, 0.75516, 0.75697, 0.75869, + 0.76033, 0.76190, 0.76341, 0.76486, 0.76628, 0.76766, 0.76902, + 0.77036, 0.77169, 0.77301, 0.77434, 0.77568, 0.77704, 0.77841, + 0.77980, 0.78121, 0.78266, 0.78413, 0.78563, 0.78717, 0.78873, + 0.79034, 0.79197, 0.79364, 0.79535, 0.79710, 0.79888, 0.80069, + 0.80255, 0.80444, 0.80636, 0.80833, 0.81033, 0.81236, 0.81443, + 0.81653, 0.81866, 0.82082, 0.82301, 0.82522, 0.82746, 0.82971, + 0.83198, 0.83427, 0.83656, 0.83887, 0.84118, 0.84350, 0.84582, + 0.84815, 0.85047, 0.85280, 0.85514, 0.85747, 0.85982, 0.86217, + 0.86453, 0.86690, 0.86929, 0.87171, 0.87414, 0.87661, 0.87910, + 0.88163, 0.88421, 0.88683, 0.88950, 0.89223, 0.89502, 0.89788, + 0.90080, 0.90380, 0.90688, 0.91003, 0.91328, 0.91660, 0.92001, + 0.92349, 0.92705, 0.93068, 0.93437, 0.93811, 0.94189, 0.94568, + 0.94948, 0.95326, 0.95701, 0.96071, 0.96434, 0.96789, 0.97135, + 0.97472, 0.97798, 0.98115, 0.98421, 0.98717, 0.98999, 0.99263, + 0.99502, 0.99707, 0.99865, 0.99965, 1.00000} + }; + + // CM momentum (GeV/c) + G4float G4AngularDistributionNP::pcm[NENERGY] = { + 0.685E-01, 0.969E-01, 0.119, 0.153, 0.181, 0.217, 0.256, + 0.291, 0.336, 0.399, 0.444, 0.484, 0.522, 0.539, + 0.565, 0.589, 0.613, 0.650, 0.685, 0.718, 0.750 + }; + + // Lab energy (GeV) + G4float G4AngularDistributionNP::elab[NENERGY] = { + 0.100E-01, 0.200E-01, 0.300E-01, 0.500E-01, 0.700E-01, 0.100, 0.140, + 0.180, 0.240, 0.340, 0.420, 0.500, 0.580, 0.620, + 0.680, 0.740, 0.800, 0.900, 1.00, 1.10, 1.20 + }; + + // Max dsigma/domega-CM (mb/sr) + G4float G4AngularDistributionNP::dsigmax[NENERGY] = { + 79.0, 43.0, 29.8, 20.0, 16.3, 14.5, 13.3, + 12.6, 11.9, 11.3, 11.1, 10.7, 9.69, 10.1, + 11.4, 12.5, 13.3, 14.5, 15.6, 16.9, 18.3 + }; + + // Total cross section + G4float G4AngularDistributionNP::sigtot[NENERGY] = { + 947., 485., 310., 168., 110., 75.7, 55.2, + 45.9, 39.1, 34.1, 32.3, 31.3, 30.1, 29.5, + 28.4, 27.4, 26.4, 24.8, 23.4, 22.4, 21.9 + }; diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPP.hh b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPP.hh new file mode 100644 index 0000000000..be6005a771 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPP.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + // + // G4 Low energy model: n-n or p-p scattering + // F.W. Jones, L.G. Greeniaus, H.P. Wellisch + // + // For further comments see G4LEnpData.hh and G4LEnp.cc + // + +#ifndef G4AngularDistributionPP_h +#define G4AngularDistributionPP_h 1 + +#include "globals.hh" + +#include "G4VAngularDistribution.hh" + +class G4AngularDistributionPP : public G4VAngularDistribution +{ + private: + + enum { NENERGY=22, NANGLE=180 }; + + public: + + G4AngularDistributionPP() { } + + virtual ~G4AngularDistributionPP() { } + + virtual G4double CosTheta(G4double s, G4double m1, G4double m2) const; + + virtual G4double Phi() const; + + private: + + static G4float sig[NENERGY][NANGLE]; + static G4float pcm[NENERGY], elab[NENERGY], + dsigmax[NENERGY], sigtot[NENERGY]; +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPPData.hh b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPPData.hh new file mode 100644 index 0000000000..95509d0a65 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPPData.hh @@ -0,0 +1,663 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + + // G4 Low energy model: n-n or p-p scattering -- Data + // THIS FILE contains static array initialization + // F.W. Jones, L.G. Greeniaus, H.P. Wellisch + + // Table of Cumulative nn or pp Scattering Probabilities + // To be used for generation as a function of cos(theta cm) + // Coulomb effects are SUPPRESSED + // -- including pp Coulomb-nuclear interference + // NOTE: Assumes angle range to be generated is 0-180 degrees + // even for IDENTICAL particles. This allows tracking of + // well-defined GEANT4 particles and generation of secondary + // Range of validity of tables: 10 - 1200 MeV + // Results are extracted from RA Arndt's PSA of 1998 + // CM Angle range: 0.5 - 179.5 degrees in 1 degree steps + + // CM momentum (GeV/c) + G4float G4AngularDistributionPP::pcm[NENERGY] = { + 0.685E-01, 0.969E-01, 0.137, 0.181, 0.217, 0.237, 0.256, + 0.291, 0.321, 0.349, 0.363, 0.375, 0.400, 0.444, + 0.494, 0.540, 0.573, 0.613, 0.650, 0.685, 0.719, 0.751 + }; + + // Lab energy (GeV) + G4float G4AngularDistributionPP::elab[NENERGY] = { + 0.100E-01, 0.200E-01, 0.400E-01, 0.700E-01, 0.100, 0.120, 0.140, + 0.180, 0.220, 0.260, 0.280, 0.300, 0.340, 0.420, + 0.520, 0.620, 0.700, 0.800, 0.900, 1.00, 1.10, 1.20 + }; + + // Max dSigma/domega-CM (mb/sr) + G4float G4AngularDistributionPP::dsigmax[NENERGY] = { + 63.9, 29.9, 14.5, 8.97, 7.23, 6.66, 6.30, + 5.89, 5.68, 5.57, 5.56, 5.57, 5.74, 6.38, + 7.66, 9.65, 12.4, 15.6, 18.0, 20.1, 22.0, 23.8 + }; + + // Total cross section + G4float G4AngularDistributionPP::sigtot[NENERGY] = { + 396., 179., 80.7, 44.5, 32.8, 29.0, 26.9, + 24.9, 24.4, 24.3, 24.4, 24.4, 24.7, 25.5, + 26.4, 26.1, 25.6, 25.1, 24.4, 23.4, 22.4, 21.5 + }; + + G4float G4AngularDistributionPP::sig[NENERGY][NANGLE] = { + //------------ 0.01 GeV + {0.00008, 0.00031, 0.00070, 0.00124, 0.00193, 0.00278, 0.00378, + 0.00494, 0.00624, 0.00770, 0.00932, 0.01108, 0.01299, 0.01506, + 0.01727, 0.01963, 0.02214, 0.02480, 0.02760, 0.03055, 0.03364, + 0.03687, 0.04025, 0.04377, 0.04743, 0.05122, 0.05515, 0.05922, + 0.06342, 0.06776, 0.07223, 0.07682, 0.08155, 0.08640, 0.09138, + 0.09649, 0.10171, 0.10706, 0.11252, 0.11810, 0.12380, 0.12961, + 0.13553, 0.14156, 0.14770, 0.15395, 0.16030, 0.16675, 0.17330, + 0.17995, 0.18670, 0.19354, 0.20047, 0.20749, 0.21459, 0.22179, + 0.22906, 0.23642, 0.24385, 0.25136, 0.25895, 0.26660, 0.27433, + 0.28212, 0.28998, 0.29790, 0.30587, 0.31391, 0.32200, 0.33015, + 0.33834, 0.34658, 0.35487, 0.36320, 0.37157, 0.37998, 0.38842, + 0.39690, 0.40540, 0.41394, 0.42250, 0.43108, 0.43968, 0.44830, + 0.45694, 0.46559, 0.47424, 0.48291, 0.49158, 0.50025, 0.50892, + 0.51759, 0.52626, 0.53492, 0.54356, 0.55220, 0.56081, 0.56941, + 0.57799, 0.58655, 0.59508, 0.60358, 0.61206, 0.62050, 0.62890, + 0.63726, 0.64559, 0.65387, 0.66211, 0.67029, 0.67843, 0.68652, + 0.69455, 0.70252, 0.71043, 0.71828, 0.72607, 0.73378, 0.74143, + 0.74901, 0.75651, 0.76394, 0.77128, 0.77855, 0.78574, 0.79283, + 0.79985, 0.80677, 0.81360, 0.82033, 0.82697, 0.83352, 0.83996, + 0.84630, 0.85254, 0.85867, 0.86469, 0.87060, 0.87641, 0.88209, + 0.88767, 0.89312, 0.89846, 0.90368, 0.90877, 0.91374, 0.91859, + 0.92331, 0.92790, 0.93236, 0.93669, 0.94088, 0.94494, 0.94887, + 0.95266, 0.95631, 0.95982, 0.96319, 0.96642, 0.96951, 0.97245, + 0.97525, 0.97790, 0.98040, 0.98276, 0.98497, 0.98703, 0.98894, + 0.99070, 0.99231, 0.99377, 0.99507, 0.99623, 0.99723, 0.99807, + 0.99877, 0.99931, 0.99969, 0.99992, 1.00000}, + //--------- 0.02 GeV + {0.00008, 0.00032, 0.00072, 0.00128, 0.00199, 0.00287, 0.00390, + 0.00509, 0.00644, 0.00795, 0.00961, 0.01142, 0.01339, 0.01552, + 0.01779, 0.02022, 0.02280, 0.02553, 0.02840, 0.03142, 0.03459, + 0.03790, 0.04136, 0.04495, 0.04869, 0.05256, 0.05658, 0.06072, + 0.06500, 0.06942, 0.07396, 0.07863, 0.08343, 0.08835, 0.09340, + 0.09857, 0.10386, 0.10927, 0.11479, 0.12042, 0.12617, 0.13203, + 0.13800, 0.14407, 0.15025, 0.15653, 0.16290, 0.16938, 0.17595, + 0.18262, 0.18938, 0.19622, 0.20316, 0.21018, 0.21728, 0.22447, + 0.23173, 0.23907, 0.24648, 0.25397, 0.26152, 0.26914, 0.27683, + 0.28458, 0.29240, 0.30027, 0.30819, 0.31617, 0.32420, 0.33229, + 0.34041, 0.34859, 0.35680, 0.36506, 0.37335, 0.38168, 0.39004, + 0.39843, 0.40685, 0.41529, 0.42376, 0.43225, 0.44076, 0.44928, + 0.45782, 0.46637, 0.47493, 0.48350, 0.49207, 0.50064, 0.50921, + 0.51778, 0.52634, 0.53490, 0.54344, 0.55198, 0.56050, 0.56900, + 0.57748, 0.58594, 0.59438, 0.60279, 0.61117, 0.61952, 0.62783, + 0.63611, 0.64435, 0.65256, 0.66071, 0.66883, 0.67689, 0.68491, + 0.69287, 0.70078, 0.70863, 0.71642, 0.72416, 0.73182, 0.73943, + 0.74696, 0.75443, 0.76182, 0.76914, 0.77638, 0.78354, 0.79062, + 0.79762, 0.80453, 0.81136, 0.81809, 0.82473, 0.83128, 0.83774, + 0.84410, 0.85035, 0.85651, 0.86256, 0.86850, 0.87434, 0.88006, + 0.88568, 0.89118, 0.89656, 0.90183, 0.90698, 0.91201, 0.91691, + 0.92169, 0.92635, 0.93087, 0.93527, 0.93953, 0.94366, 0.94765, + 0.95151, 0.95523, 0.95882, 0.96226, 0.96555, 0.96871, 0.97172, + 0.97458, 0.97730, 0.97986, 0.98228, 0.98455, 0.98666, 0.98863, + 0.99043, 0.99209, 0.99359, 0.99493, 0.99612, 0.99714, 0.99802, + 0.99873, 0.99929, 0.99968, 0.99992, 1.00000}, + //--------- 0.04 GeV + {0.00009, 0.00034, 0.00077, 0.00138, 0.00215, 0.00309, 0.00421, + 0.00549, 0.00694, 0.00855, 0.01033, 0.01228, 0.01438, 0.01665, + 0.01908, 0.02166, 0.02440, 0.02729, 0.03033, 0.03352, 0.03686, + 0.04034, 0.04397, 0.04773, 0.05164, 0.05568, 0.05986, 0.06417, + 0.06861, 0.07318, 0.07787, 0.08269, 0.08763, 0.09269, 0.09786, + 0.10316, 0.10856, 0.11408, 0.11970, 0.12543, 0.13127, 0.13720, + 0.14324, 0.14938, 0.15561, 0.16194, 0.16836, 0.17487, 0.18146, + 0.18815, 0.19491, 0.20176, 0.20868, 0.21569, 0.22277, 0.22992, + 0.23714, 0.24443, 0.25179, 0.25921, 0.26669, 0.27424, 0.28184, + 0.28949, 0.29721, 0.30497, 0.31278, 0.32064, 0.32854, 0.33649, + 0.34448, 0.35250, 0.36057, 0.36867, 0.37680, 0.38496, 0.39314, + 0.40136, 0.40960, 0.41786, 0.42614, 0.43444, 0.44275, 0.45108, + 0.45942, 0.46777, 0.47612, 0.48448, 0.49285, 0.50121, 0.50958, + 0.51794, 0.52630, 0.53465, 0.54299, 0.55132, 0.55963, 0.56794, + 0.57622, 0.58449, 0.59273, 0.60095, 0.60914, 0.61731, 0.62545, + 0.63355, 0.64163, 0.64966, 0.65766, 0.66562, 0.67354, 0.68141, + 0.68923, 0.69701, 0.70474, 0.71241, 0.72003, 0.72760, 0.73510, + 0.74255, 0.74993, 0.75725, 0.76450, 0.77168, 0.77878, 0.78582, + 0.79278, 0.79966, 0.80647, 0.81319, 0.81983, 0.82638, 0.83285, + 0.83922, 0.84551, 0.85170, 0.85779, 0.86379, 0.86969, 0.87548, + 0.88117, 0.88675, 0.89223, 0.89759, 0.90285, 0.90799, 0.91301, + 0.91791, 0.92269, 0.92735, 0.93189, 0.93629, 0.94057, 0.94472, + 0.94873, 0.95261, 0.95635, 0.95995, 0.96341, 0.96672, 0.96989, + 0.97291, 0.97578, 0.97850, 0.98106, 0.98347, 0.98572, 0.98781, + 0.98974, 0.99151, 0.99311, 0.99455, 0.99582, 0.99693, 0.99786, + 0.99863, 0.99923, 0.99966, 0.99991, 1.00000}, + //--------- 0.07 GeV + {0.00010, 0.00039, 0.00087, 0.00154, 0.00240, 0.00345, 0.00469, + 0.00611, 0.00771, 0.00950, 0.01146, 0.01359, 0.01590, 0.01837, + 0.02101, 0.02381, 0.02677, 0.02988, 0.03314, 0.03656, 0.04012, + 0.04382, 0.04767, 0.05165, 0.05577, 0.06001, 0.06439, 0.06889, + 0.07352, 0.07827, 0.08314, 0.08812, 0.09322, 0.09843, 0.10376, + 0.10919, 0.11472, 0.12036, 0.12610, 0.13193, 0.13787, 0.14389, + 0.15001, 0.15622, 0.16252, 0.16890, 0.17537, 0.18191, 0.18854, + 0.19524, 0.20202, 0.20886, 0.21578, 0.22277, 0.22981, 0.23693, + 0.24410, 0.25133, 0.25862, 0.26596, 0.27335, 0.28079, 0.28828, + 0.29582, 0.30340, 0.31102, 0.31868, 0.32638, 0.33411, 0.34187, + 0.34967, 0.35750, 0.36535, 0.37323, 0.38114, 0.38906, 0.39701, + 0.40498, 0.41296, 0.42096, 0.42898, 0.43700, 0.44504, 0.45309, + 0.46114, 0.46921, 0.47727, 0.48534, 0.49342, 0.50149, 0.50956, + 0.51763, 0.52569, 0.53375, 0.54181, 0.54985, 0.55789, 0.56591, + 0.57392, 0.58191, 0.58989, 0.59786, 0.60580, 0.61372, 0.62162, + 0.62950, 0.63734, 0.64517, 0.65296, 0.66072, 0.66845, 0.67614, + 0.68380, 0.69142, 0.69899, 0.70653, 0.71402, 0.72146, 0.72886, + 0.73621, 0.74350, 0.75074, 0.75792, 0.76504, 0.77210, 0.77910, + 0.78603, 0.79289, 0.79969, 0.80641, 0.81306, 0.81963, 0.82612, + 0.83253, 0.83886, 0.84511, 0.85126, 0.85733, 0.86331, 0.86919, + 0.87497, 0.88066, 0.88625, 0.89174, 0.89712, 0.90239, 0.90756, + 0.91261, 0.91755, 0.92238, 0.92708, 0.93167, 0.93614, 0.94047, + 0.94469, 0.94877, 0.95271, 0.95653, 0.96020, 0.96373, 0.96712, + 0.97035, 0.97344, 0.97638, 0.97915, 0.98177, 0.98422, 0.98651, + 0.98863, 0.99057, 0.99234, 0.99394, 0.99535, 0.99657, 0.99762, + 0.99847, 0.99914, 0.99962, 0.99990, 1.00000}, + //--------- 0.1 GeV + {0.00011, 0.00042, 0.00095, 0.00168, 0.00262, 0.00377, 0.00511, + 0.00665, 0.00838, 0.01030, 0.01240, 0.01469, 0.01714, 0.01977, + 0.02257, 0.02552, 0.02863, 0.03189, 0.03531, 0.03886, 0.04256, + 0.04640, 0.05037, 0.05447, 0.05871, 0.06306, 0.06754, 0.07214, + 0.07686, 0.08170, 0.08664, 0.09170, 0.09687, 0.10214, 0.10752, + 0.11300, 0.11858, 0.12426, 0.13004, 0.13591, 0.14187, 0.14792, + 0.15406, 0.16028, 0.16659, 0.17297, 0.17944, 0.18598, 0.19259, + 0.19928, 0.20604, 0.21286, 0.21974, 0.22669, 0.23370, 0.24077, + 0.24789, 0.25506, 0.26229, 0.26956, 0.27688, 0.28425, 0.29166, + 0.29910, 0.30659, 0.31411, 0.32167, 0.32926, 0.33688, 0.34453, + 0.35221, 0.35991, 0.36764, 0.37539, 0.38316, 0.39096, 0.39877, + 0.40660, 0.41444, 0.42230, 0.43017, 0.43805, 0.44594, 0.45384, + 0.46174, 0.46966, 0.47757, 0.48549, 0.49342, 0.50134, 0.50926, + 0.51718, 0.52510, 0.53301, 0.54091, 0.54881, 0.55670, 0.56458, + 0.57244, 0.58030, 0.58814, 0.59596, 0.60377, 0.61156, 0.61933, + 0.62707, 0.63480, 0.64250, 0.65017, 0.65782, 0.66544, 0.67303, + 0.68058, 0.68810, 0.69559, 0.70304, 0.71045, 0.71781, 0.72514, + 0.73242, 0.73965, 0.74683, 0.75396, 0.76103, 0.76805, 0.77502, + 0.78192, 0.78876, 0.79553, 0.80224, 0.80888, 0.81544, 0.82194, + 0.82835, 0.83469, 0.84095, 0.84712, 0.85321, 0.85922, 0.86513, + 0.87095, 0.87668, 0.88231, 0.88785, 0.89329, 0.89862, 0.90385, + 0.90898, 0.91400, 0.91890, 0.92370, 0.92838, 0.93294, 0.93739, + 0.94171, 0.94591, 0.94998, 0.95392, 0.95773, 0.96140, 0.96493, + 0.96832, 0.97156, 0.97465, 0.97758, 0.98036, 0.98296, 0.98541, + 0.98767, 0.98976, 0.99167, 0.99339, 0.99492, 0.99626, 0.99739, + 0.99833, 0.99906, 0.99958, 0.99990, 1.00000}, + //--------- 0.12 GeV + {0.00011, 0.00044, 0.00099, 0.00175, 0.00272, 0.00391, 0.00530, + 0.00689, 0.00867, 0.01065, 0.01280, 0.01514, 0.01765, 0.02033, + 0.02318, 0.02618, 0.02933, 0.03263, 0.03608, 0.03966, 0.04339, + 0.04724, 0.05123, 0.05534, 0.05958, 0.06394, 0.06842, 0.07302, + 0.07773, 0.08255, 0.08748, 0.09252, 0.09767, 0.10292, 0.10827, + 0.11372, 0.11927, 0.12492, 0.13066, 0.13649, 0.14242, 0.14843, + 0.15453, 0.16071, 0.16697, 0.17332, 0.17974, 0.18624, 0.19281, + 0.19945, 0.20617, 0.21295, 0.21979, 0.22670, 0.23367, 0.24070, + 0.24778, 0.25492, 0.26211, 0.26935, 0.27664, 0.28398, 0.29136, + 0.29878, 0.30624, 0.31375, 0.32129, 0.32886, 0.33647, 0.34411, + 0.35178, 0.35948, 0.36720, 0.37495, 0.38273, 0.39052, 0.39834, + 0.40618, 0.41403, 0.42190, 0.42978, 0.43768, 0.44559, 0.45351, + 0.46144, 0.46937, 0.47731, 0.48525, 0.49320, 0.50114, 0.50909, + 0.51703, 0.52497, 0.53291, 0.54084, 0.54876, 0.55667, 0.56456, + 0.57245, 0.58032, 0.58818, 0.59602, 0.60383, 0.61163, 0.61941, + 0.62717, 0.63490, 0.64260, 0.65027, 0.65792, 0.66553, 0.67311, + 0.68066, 0.68817, 0.69564, 0.70307, 0.71046, 0.71781, 0.72511, + 0.73237, 0.73957, 0.74673, 0.75383, 0.76088, 0.76787, 0.77480, + 0.78166, 0.78847, 0.79521, 0.80188, 0.80848, 0.81501, 0.82147, + 0.82785, 0.83415, 0.84038, 0.84652, 0.85257, 0.85854, 0.86442, + 0.87022, 0.87592, 0.88152, 0.88703, 0.89245, 0.89776, 0.90297, + 0.90808, 0.91309, 0.91798, 0.92277, 0.92745, 0.93201, 0.93646, + 0.94079, 0.94500, 0.94908, 0.95304, 0.95687, 0.96057, 0.96413, + 0.96756, 0.97084, 0.97397, 0.97695, 0.97978, 0.98244, 0.98494, + 0.98726, 0.98941, 0.99137, 0.99315, 0.99473, 0.99611, 0.99729, + 0.99826, 0.99902, 0.99956, 0.99989, 1.00000}, + //--------- 0.14 GeV + {0.00011, 0.00045, 0.00101, 0.00178, 0.00278, 0.00398, 0.00540, + 0.00701, 0.00882, 0.01081, 0.01299, 0.01534, 0.01787, 0.02055, + 0.02340, 0.02640, 0.02954, 0.03283, 0.03626, 0.03983, 0.04352, + 0.04735, 0.05130, 0.05537, 0.05957, 0.06388, 0.06830, 0.07284, + 0.07750, 0.08226, 0.08712, 0.09210, 0.09718, 0.10236, 0.10764, + 0.11302, 0.11850, 0.12407, 0.12974, 0.13550, 0.14135, 0.14729, + 0.15331, 0.15942, 0.16562, 0.17190, 0.17825, 0.18469, 0.19120, + 0.19778, 0.20444, 0.21117, 0.21797, 0.22483, 0.23176, 0.23875, + 0.24580, 0.25292, 0.26008, 0.26731, 0.27458, 0.28191, 0.28929, + 0.29672, 0.30419, 0.31171, 0.31927, 0.32687, 0.33451, 0.34218, + 0.34990, 0.35764, 0.36542, 0.37323, 0.38107, 0.38894, 0.39683, + 0.40474, 0.41268, 0.42064, 0.42862, 0.43661, 0.44462, 0.45264, + 0.46067, 0.46871, 0.47676, 0.48481, 0.49287, 0.50093, 0.50899, + 0.51704, 0.52510, 0.53314, 0.54118, 0.54920, 0.55722, 0.56522, + 0.57320, 0.58117, 0.58912, 0.59705, 0.60495, 0.61283, 0.62068, + 0.62850, 0.63630, 0.64406, 0.65179, 0.65948, 0.66714, 0.67476, + 0.68234, 0.68988, 0.69737, 0.70482, 0.71222, 0.71957, 0.72688, + 0.73413, 0.74132, 0.74846, 0.75554, 0.76257, 0.76953, 0.77642, + 0.78326, 0.79002, 0.79672, 0.80334, 0.80989, 0.81637, 0.82277, + 0.82909, 0.83534, 0.84150, 0.84757, 0.85357, 0.85947, 0.86529, + 0.87101, 0.87664, 0.88218, 0.88763, 0.89298, 0.89822, 0.90337, + 0.90842, 0.91336, 0.91820, 0.92293, 0.92756, 0.93207, 0.93647, + 0.94075, 0.94492, 0.94897, 0.95290, 0.95670, 0.96037, 0.96392, + 0.96733, 0.97060, 0.97373, 0.97671, 0.97954, 0.98222, 0.98473, + 0.98707, 0.98924, 0.99122, 0.99302, 0.99463, 0.99603, 0.99723, + 0.99822, 0.99900, 0.99955, 0.99989, 1.00000}, + //--------- 0.18 GeV + {0.00011, 0.00045, 0.00101, 0.00180, 0.00279, 0.00400, 0.00541, + 0.00701, 0.00880, 0.01077, 0.01291, 0.01522, 0.01768, 0.02030, + 0.02307, 0.02597, 0.02901, 0.03218, 0.03549, 0.03891, 0.04246, + 0.04613, 0.04991, 0.05381, 0.05783, 0.06195, 0.06619, 0.07053, + 0.07498, 0.07954, 0.08420, 0.08897, 0.09384, 0.09881, 0.10388, + 0.10905, 0.11432, 0.11969, 0.12515, 0.13071, 0.13637, 0.14212, + 0.14796, 0.15390, 0.15993, 0.16605, 0.17225, 0.17855, 0.18493, + 0.19140, 0.19795, 0.20458, 0.21129, 0.21809, 0.22496, 0.23191, + 0.23893, 0.24602, 0.25319, 0.26043, 0.26773, 0.27510, 0.28254, + 0.29004, 0.29760, 0.30522, 0.31289, 0.32063, 0.32841, 0.33625, + 0.34414, 0.35207, 0.36006, 0.36808, 0.37615, 0.38426, 0.39240, + 0.40058, 0.40880, 0.41704, 0.42531, 0.43360, 0.44192, 0.45026, + 0.45862, 0.46699, 0.47537, 0.48376, 0.49215, 0.50055, 0.50895, + 0.51734, 0.52573, 0.53411, 0.54248, 0.55083, 0.55917, 0.56748, + 0.57578, 0.58404, 0.59228, 0.60049, 0.60867, 0.61681, 0.62491, + 0.63297, 0.64099, 0.64896, 0.65689, 0.66477, 0.67260, 0.68038, + 0.68810, 0.69577, 0.70337, 0.71092, 0.71841, 0.72583, 0.73319, + 0.74048, 0.74770, 0.75486, 0.76194, 0.76894, 0.77587, 0.78273, + 0.78950, 0.79620, 0.80281, 0.80935, 0.81579, 0.82216, 0.82843, + 0.83462, 0.84071, 0.84672, 0.85264, 0.85846, 0.86419, 0.86982, + 0.87536, 0.88081, 0.88615, 0.89140, 0.89655, 0.90160, 0.90655, + 0.91139, 0.91614, 0.92078, 0.92532, 0.92975, 0.93407, 0.93829, + 0.94239, 0.94639, 0.95027, 0.95404, 0.95770, 0.96123, 0.96464, + 0.96793, 0.97109, 0.97412, 0.97701, 0.97976, 0.98237, 0.98483, + 0.98713, 0.98926, 0.99123, 0.99301, 0.99461, 0.99601, 0.99721, + 0.99821, 0.99899, 0.99955, 0.99989, 1.00000}, + //--------- 0.22 GeV + {0.00011, 0.00045, 0.00100, 0.00177, 0.00274, 0.00392, 0.00529, + 0.00685, 0.00858, 0.01049, 0.01255, 0.01477, 0.01714, 0.01964, + 0.02229, 0.02506, 0.02796, 0.03099, 0.03414, 0.03740, 0.04078, + 0.04428, 0.04789, 0.05161, 0.05544, 0.05938, 0.06343, 0.06759, + 0.07186, 0.07623, 0.08071, 0.08529, 0.08998, 0.09477, 0.09967, + 0.10467, 0.10977, 0.11498, 0.12029, 0.12571, 0.13122, 0.13684, + 0.14256, 0.14839, 0.15431, 0.16033, 0.16645, 0.17267, 0.17898, + 0.18540, 0.19190, 0.19850, 0.20519, 0.21197, 0.21884, 0.22580, + 0.23284, 0.23997, 0.24718, 0.25447, 0.26183, 0.26928, 0.27680, + 0.28440, 0.29206, 0.29980, 0.30760, 0.31547, 0.32340, 0.33139, + 0.33945, 0.34755, 0.35572, 0.36394, 0.37220, 0.38052, 0.38887, + 0.39728, 0.40572, 0.41419, 0.42270, 0.43124, 0.43981, 0.44840, + 0.45702, 0.46565, 0.47429, 0.48295, 0.49161, 0.50028, 0.50894, + 0.51760, 0.52626, 0.53490, 0.54354, 0.55215, 0.56074, 0.56931, + 0.57785, 0.58636, 0.59484, 0.60328, 0.61168, 0.62004, 0.62835, + 0.63662, 0.64483, 0.65300, 0.66110, 0.66916, 0.67715, 0.68508, + 0.69294, 0.70075, 0.70848, 0.71614, 0.72373, 0.73125, 0.73869, + 0.74606, 0.75334, 0.76055, 0.76767, 0.77470, 0.78165, 0.78852, + 0.79529, 0.80197, 0.80856, 0.81506, 0.82146, 0.82776, 0.83397, + 0.84008, 0.84609, 0.85200, 0.85781, 0.86352, 0.86913, 0.87464, + 0.88004, 0.88534, 0.89053, 0.89562, 0.90061, 0.90550, 0.91028, + 0.91495, 0.91952, 0.92398, 0.92834, 0.93259, 0.93674, 0.94078, + 0.94471, 0.94853, 0.95224, 0.95583, 0.95932, 0.96269, 0.96595, + 0.96909, 0.97210, 0.97500, 0.97776, 0.98040, 0.98290, 0.98526, + 0.98747, 0.98953, 0.99143, 0.99316, 0.99472, 0.99609, 0.99726, + 0.99824, 0.99900, 0.99956, 0.99989, 1.00000}, + //--------- 0.26 GeV + {0.00011, 0.00044, 0.00098, 0.00173, 0.00269, 0.00384, 0.00518, + 0.00670, 0.00838, 0.01023, 0.01222, 0.01436, 0.01665, 0.01906, + 0.02161, 0.02428, 0.02707, 0.02999, 0.03302, 0.03617, 0.03943, + 0.04281, 0.04630, 0.04990, 0.05361, 0.05743, 0.06137, 0.06541, + 0.06956, 0.07382, 0.07819, 0.08267, 0.08726, 0.09195, 0.09676, + 0.10167, 0.10669, 0.11182, 0.11706, 0.12241, 0.12787, 0.13344, + 0.13911, 0.14489, 0.15078, 0.15678, 0.16288, 0.16909, 0.17540, + 0.18182, 0.18834, 0.19495, 0.20167, 0.20849, 0.21540, 0.22241, + 0.22950, 0.23669, 0.24397, 0.25133, 0.25878, 0.26631, 0.27392, + 0.28160, 0.28936, 0.29720, 0.30510, 0.31307, 0.32111, 0.32921, + 0.33736, 0.34558, 0.35385, 0.36217, 0.37054, 0.37896, 0.38743, + 0.39593, 0.40447, 0.41305, 0.42166, 0.43030, 0.43897, 0.44766, + 0.45636, 0.46509, 0.47383, 0.48258, 0.49133, 0.50009, 0.50885, + 0.51761, 0.52636, 0.53510, 0.54383, 0.55254, 0.56123, 0.56990, + 0.57854, 0.58715, 0.59573, 0.60427, 0.61278, 0.62125, 0.62967, + 0.63804, 0.64637, 0.65464, 0.66286, 0.67102, 0.67912, 0.68716, + 0.69514, 0.70304, 0.71088, 0.71864, 0.72633, 0.73394, 0.74147, + 0.74892, 0.75628, 0.76356, 0.77075, 0.77785, 0.78485, 0.79176, + 0.79858, 0.80530, 0.81191, 0.81843, 0.82484, 0.83115, 0.83736, + 0.84345, 0.84945, 0.85533, 0.86111, 0.86678, 0.87234, 0.87779, + 0.88313, 0.88836, 0.89349, 0.89850, 0.90341, 0.90821, 0.91290, + 0.91748, 0.92195, 0.92631, 0.93056, 0.93471, 0.93874, 0.94267, + 0.94648, 0.95019, 0.95378, 0.95726, 0.96063, 0.96389, 0.96703, + 0.97006, 0.97297, 0.97576, 0.97842, 0.98096, 0.98338, 0.98565, + 0.98779, 0.98979, 0.99163, 0.99331, 0.99483, 0.99616, 0.99731, + 0.99827, 0.99902, 0.99956, 0.99989, 1.00000}, + //--------- 0.28 GeV + {0.00011, 0.00044, 0.00098, 0.00172, 0.00267, 0.00382, 0.00514, + 0.00664, 0.00831, 0.01014, 0.01211, 0.01422, 0.01648, 0.01886, + 0.02137, 0.02401, 0.02677, 0.02965, 0.03265, 0.03576, 0.03899, + 0.04233, 0.04578, 0.04935, 0.05303, 0.05683, 0.06073, 0.06475, + 0.06888, 0.07311, 0.07746, 0.08192, 0.08650, 0.09118, 0.09597, + 0.10088, 0.10589, 0.11102, 0.11626, 0.12161, 0.12708, 0.13265, + 0.13834, 0.14413, 0.15004, 0.15605, 0.16218, 0.16841, 0.17474, + 0.18119, 0.18773, 0.19438, 0.20113, 0.20797, 0.21492, 0.22195, + 0.22908, 0.23630, 0.24361, 0.25101, 0.25848, 0.26604, 0.27368, + 0.28139, 0.28918, 0.29704, 0.30496, 0.31295, 0.32101, 0.32912, + 0.33730, 0.34553, 0.35381, 0.36214, 0.37052, 0.37895, 0.38741, + 0.39592, 0.40446, 0.41304, 0.42165, 0.43029, 0.43895, 0.44763, + 0.45634, 0.46506, 0.47379, 0.48253, 0.49128, 0.50003, 0.50878, + 0.51753, 0.52627, 0.53500, 0.54373, 0.55243, 0.56112, 0.56978, + 0.57842, 0.58703, 0.59561, 0.60416, 0.61267, 0.62114, 0.62957, + 0.63796, 0.64629, 0.65458, 0.66281, 0.67099, 0.67911, 0.68717, + 0.69516, 0.70309, 0.71096, 0.71875, 0.72646, 0.73410, 0.74166, + 0.74914, 0.75654, 0.76385, 0.77108, 0.77821, 0.78525, 0.79219, + 0.79904, 0.80579, 0.81243, 0.81898, 0.82542, 0.83176, 0.83799, + 0.84411, 0.85012, 0.85603, 0.86182, 0.86750, 0.87307, 0.87853, + 0.88388, 0.88912, 0.89424, 0.89925, 0.90415, 0.90894, 0.91362, + 0.91818, 0.92264, 0.92698, 0.93122, 0.93534, 0.93935, 0.94325, + 0.94704, 0.95071, 0.95427, 0.95773, 0.96106, 0.96429, 0.96739, + 0.97039, 0.97326, 0.97601, 0.97865, 0.98116, 0.98354, 0.98579, + 0.98790, 0.98987, 0.99170, 0.99336, 0.99486, 0.99619, 0.99733, + 0.99828, 0.99902, 0.99956, 0.99989, 1.00000}, + //--------- 0.30 GeV + {0.00011, 0.00044, 0.00097, 0.00172, 0.00267, 0.00380, 0.00512, + 0.00661, 0.00827, 0.01008, 0.01204, 0.01414, 0.01637, 0.01873, + 0.02122, 0.02384, 0.02658, 0.02944, 0.03241, 0.03551, 0.03872, + 0.04204, 0.04548, 0.04904, 0.05271, 0.05650, 0.06039, 0.06441, + 0.06853, 0.07277, 0.07712, 0.08159, 0.08617, 0.09086, 0.09567, + 0.10059, 0.10562, 0.11077, 0.11604, 0.12141, 0.12690, 0.13251, + 0.13822, 0.14405, 0.14999, 0.15605, 0.16221, 0.16847, 0.17485, + 0.18133, 0.18791, 0.19460, 0.20138, 0.20827, 0.21525, 0.22232, + 0.22948, 0.23673, 0.24406, 0.25148, 0.25898, 0.26656, 0.27422, + 0.28194, 0.28974, 0.29761, 0.30554, 0.31353, 0.32158, 0.32969, + 0.33786, 0.34607, 0.35434, 0.36266, 0.37102, 0.37942, 0.38786, + 0.39634, 0.40485, 0.41340, 0.42197, 0.43057, 0.43919, 0.44784, + 0.45650, 0.46518, 0.47387, 0.48256, 0.49127, 0.49998, 0.50868, + 0.51739, 0.52609, 0.53478, 0.54346, 0.55212, 0.56077, 0.56939, + 0.57800, 0.58657, 0.59512, 0.60364, 0.61212, 0.62057, 0.62897, + 0.63734, 0.64566, 0.65393, 0.66215, 0.67032, 0.67844, 0.68650, + 0.69450, 0.70243, 0.71030, 0.71811, 0.72584, 0.73350, 0.74108, + 0.74858, 0.75601, 0.76335, 0.77060, 0.77777, 0.78484, 0.79182, + 0.79871, 0.80550, 0.81218, 0.81877, 0.82525, 0.83163, 0.83790, + 0.84406, 0.85011, 0.85605, 0.86188, 0.86759, 0.87320, 0.87869, + 0.88406, 0.88932, 0.89447, 0.89950, 0.90442, 0.90922, 0.91391, + 0.91849, 0.92295, 0.92730, 0.93154, 0.93566, 0.93966, 0.94356, + 0.94734, 0.95101, 0.95456, 0.95800, 0.96132, 0.96452, 0.96761, + 0.97059, 0.97344, 0.97618, 0.97879, 0.98128, 0.98364, 0.98587, + 0.98797, 0.98993, 0.99173, 0.99339, 0.99488, 0.99620, 0.99733, + 0.99828, 0.99903, 0.99957, 0.99989, 1.00000}, + //--------- 0.34 GeV + {0.00011, 0.00044, 0.00099, 0.00175, 0.00271, 0.00387, 0.00520, + 0.00671, 0.00838, 0.01021, 0.01218, 0.01429, 0.01654, 0.01892, + 0.02143, 0.02406, 0.02682, 0.02969, 0.03269, 0.03581, 0.03905, + 0.04241, 0.04588, 0.04947, 0.05318, 0.05701, 0.06095, 0.06501, + 0.06918, 0.07347, 0.07788, 0.08240, 0.08704, 0.09180, 0.09667, + 0.10166, 0.10676, 0.11198, 0.11732, 0.12277, 0.12833, 0.13401, + 0.13980, 0.14571, 0.15172, 0.15785, 0.16408, 0.17042, 0.17687, + 0.18341, 0.19006, 0.19680, 0.20364, 0.21057, 0.21760, 0.22471, + 0.23190, 0.23918, 0.24653, 0.25397, 0.26147, 0.26905, 0.27670, + 0.28441, 0.29218, 0.30002, 0.30791, 0.31586, 0.32386, 0.33191, + 0.34001, 0.34815, 0.35634, 0.36457, 0.37284, 0.38114, 0.38948, + 0.39785, 0.40624, 0.41467, 0.42312, 0.43159, 0.44009, 0.44860, + 0.45713, 0.46567, 0.47422, 0.48277, 0.49134, 0.49990, 0.50847, + 0.51703, 0.52559, 0.53414, 0.54268, 0.55121, 0.55973, 0.56822, + 0.57670, 0.58516, 0.59359, 0.60199, 0.61036, 0.61871, 0.62702, + 0.63529, 0.64352, 0.65172, 0.65987, 0.66797, 0.67603, 0.68404, + 0.69199, 0.69989, 0.70773, 0.71551, 0.72323, 0.73088, 0.73847, + 0.74598, 0.75342, 0.76078, 0.76806, 0.77526, 0.78238, 0.78941, + 0.79634, 0.80319, 0.80994, 0.81659, 0.82314, 0.82959, 0.83593, + 0.84216, 0.84829, 0.85431, 0.86022, 0.86601, 0.87169, 0.87726, + 0.88271, 0.88805, 0.89327, 0.89837, 0.90336, 0.90823, 0.91299, + 0.91763, 0.92215, 0.92655, 0.93084, 0.93502, 0.93907, 0.94301, + 0.94684, 0.95054, 0.95413, 0.95761, 0.96096, 0.96420, 0.96732, + 0.97031, 0.97319, 0.97595, 0.97858, 0.98109, 0.98346, 0.98571, + 0.98782, 0.98980, 0.99162, 0.99329, 0.99480, 0.99613, 0.99729, + 0.99825, 0.99901, 0.99956, 0.99989, 1.00000}, + //--------- 0.42 GeV + {0.00012, 0.00048, 0.00107, 0.00188, 0.00291, 0.00414, 0.00557, + 0.00717, 0.00895, 0.01089, 0.01299, 0.01523, 0.01762, 0.02014, + 0.02281, 0.02561, 0.02854, 0.03160, 0.03479, 0.03811, 0.04155, + 0.04513, 0.04882, 0.05264, 0.05658, 0.06064, 0.06482, 0.06912, + 0.07355, 0.07809, 0.08275, 0.08752, 0.09242, 0.09742, 0.10255, + 0.10779, 0.11315, 0.11861, 0.12419, 0.12988, 0.13568, 0.14159, + 0.14760, 0.15372, 0.15994, 0.16625, 0.17266, 0.17917, 0.18576, + 0.19244, 0.19921, 0.20606, 0.21298, 0.21998, 0.22705, 0.23419, + 0.24139, 0.24865, 0.25598, 0.26335, 0.27078, 0.27826, 0.28579, + 0.29336, 0.30098, 0.30863, 0.31632, 0.32405, 0.33181, 0.33960, + 0.34742, 0.35527, 0.36315, 0.37106, 0.37898, 0.38694, 0.39491, + 0.40290, 0.41091, 0.41894, 0.42698, 0.43504, 0.44311, 0.45119, + 0.45929, 0.46739, 0.47549, 0.48360, 0.49172, 0.49984, 0.50795, + 0.51607, 0.52418, 0.53229, 0.54039, 0.54849, 0.55657, 0.56465, + 0.57271, 0.58076, 0.58879, 0.59680, 0.60480, 0.61278, 0.62073, + 0.62867, 0.63658, 0.64446, 0.65232, 0.66015, 0.66795, 0.67572, + 0.68345, 0.69115, 0.69881, 0.70643, 0.71401, 0.72154, 0.72903, + 0.73647, 0.74385, 0.75118, 0.75845, 0.76566, 0.77281, 0.77988, + 0.78689, 0.79382, 0.80067, 0.80745, 0.81414, 0.82074, 0.82725, + 0.83367, 0.83999, 0.84621, 0.85233, 0.85835, 0.86426, 0.87006, + 0.87576, 0.88134, 0.88681, 0.89217, 0.89742, 0.90254, 0.90756, + 0.91245, 0.91723, 0.92189, 0.92643, 0.93086, 0.93516, 0.93935, + 0.94341, 0.94735, 0.95117, 0.95486, 0.95844, 0.96188, 0.96520, + 0.96839, 0.97146, 0.97439, 0.97719, 0.97985, 0.98238, 0.98477, + 0.98701, 0.98910, 0.99104, 0.99282, 0.99443, 0.99585, 0.99709, + 0.99812, 0.99893, 0.99952, 0.99988, 1.00000}, + //--------- 0.52 GeV + {0.00014, 0.00055, 0.00124, 0.00219, 0.00338, 0.00481, 0.00647, + 0.00834, 0.01041, 0.01267, 0.01512, 0.01775, 0.02055, 0.02353, + 0.02666, 0.02996, 0.03341, 0.03701, 0.04076, 0.04466, 0.04870, + 0.05288, 0.05719, 0.06164, 0.06621, 0.07092, 0.07574, 0.08069, + 0.08575, 0.09093, 0.09622, 0.10162, 0.10713, 0.11275, 0.11847, + 0.12429, 0.13020, 0.13621, 0.14231, 0.14850, 0.15477, 0.16112, + 0.16755, 0.17406, 0.18063, 0.18726, 0.19396, 0.20071, 0.20751, + 0.21436, 0.22126, 0.22819, 0.23516, 0.24217, 0.24920, 0.25625, + 0.26333, 0.27043, 0.27754, 0.28467, 0.29181, 0.29896, 0.30611, + 0.31328, 0.32044, 0.32761, 0.33478, 0.34196, 0.34913, 0.35631, + 0.36348, 0.37066, 0.37784, 0.38501, 0.39219, 0.39936, 0.40654, + 0.41371, 0.42088, 0.42806, 0.43523, 0.44241, 0.44959, 0.45676, + 0.46394, 0.47112, 0.47830, 0.48547, 0.49265, 0.49983, 0.50701, + 0.51419, 0.52137, 0.52855, 0.53573, 0.54291, 0.55009, 0.55726, + 0.56444, 0.57162, 0.57880, 0.58598, 0.59316, 0.60034, 0.60752, + 0.61470, 0.62188, 0.62906, 0.63624, 0.64342, 0.65060, 0.65778, + 0.66496, 0.67214, 0.67932, 0.68649, 0.69366, 0.70083, 0.70798, + 0.71513, 0.72226, 0.72938, 0.73649, 0.74357, 0.75064, 0.75768, + 0.76469, 0.77166, 0.77861, 0.78551, 0.79237, 0.79918, 0.80593, + 0.81264, 0.81928, 0.82585, 0.83236, 0.83880, 0.84515, 0.85143, + 0.85763, 0.86373, 0.86975, 0.87567, 0.88149, 0.88721, 0.89283, + 0.89834, 0.90375, 0.90904, 0.91423, 0.91929, 0.92424, 0.92907, + 0.93377, 0.93835, 0.94279, 0.94711, 0.95129, 0.95533, 0.95923, + 0.96298, 0.96659, 0.97004, 0.97333, 0.97647, 0.97944, 0.98224, + 0.98487, 0.98732, 0.98959, 0.99166, 0.99353, 0.99519, 0.99662, + 0.99781, 0.99876, 0.99945, 0.99986, 1.00000}, + //--------- 0.62 GeV + {0.00018, 0.00070, 0.00158, 0.00278, 0.00431, 0.00615, 0.00828, + 0.01070, 0.01339, 0.01635, 0.01956, 0.02301, 0.02670, 0.03062, + 0.03476, 0.03912, 0.04368, 0.04843, 0.05337, 0.05850, 0.06379, + 0.06925, 0.07486, 0.08062, 0.08653, 0.09256, 0.09872, 0.10500, + 0.11139, 0.11789, 0.12448, 0.13117, 0.13795, 0.14480, 0.15172, + 0.15871, 0.16575, 0.17285, 0.17999, 0.18716, 0.19437, 0.20159, + 0.20883, 0.21607, 0.22332, 0.23055, 0.23777, 0.24497, 0.25214, + 0.25928, 0.26638, 0.27343, 0.28044, 0.28739, 0.29428, 0.30112, + 0.30789, 0.31460, 0.32125, 0.32782, 0.33433, 0.34077, 0.34714, + 0.35344, 0.35967, 0.36584, 0.37195, 0.37799, 0.38396, 0.38988, + 0.39574, 0.40155, 0.40730, 0.41301, 0.41866, 0.42428, 0.42985, + 0.43538, 0.44087, 0.44634, 0.45177, 0.45718, 0.46256, 0.46792, + 0.47327, 0.47860, 0.48391, 0.48922, 0.49452, 0.49982, 0.50512, + 0.51043, 0.51574, 0.52106, 0.52639, 0.53173, 0.53710, 0.54248, + 0.54789, 0.55333, 0.55880, 0.56430, 0.56983, 0.57541, 0.58103, + 0.58669, 0.59240, 0.59816, 0.60397, 0.60984, 0.61576, 0.62174, + 0.62779, 0.63390, 0.64008, 0.64632, 0.65263, 0.65900, 0.66545, + 0.67196, 0.67855, 0.68520, 0.69192, 0.69870, 0.70554, 0.71244, + 0.71940, 0.72642, 0.73348, 0.74059, 0.74773, 0.75491, 0.76211, + 0.76934, 0.77658, 0.78383, 0.79108, 0.79833, 0.80556, 0.81277, + 0.81995, 0.82709, 0.83419, 0.84124, 0.84824, 0.85517, 0.86202, + 0.86880, 0.87549, 0.88209, 0.88859, 0.89498, 0.90126, 0.90743, + 0.91346, 0.91937, 0.92513, 0.93074, 0.93620, 0.94150, 0.94662, + 0.95157, 0.95632, 0.96088, 0.96524, 0.96938, 0.97330, 0.97699, + 0.98044, 0.98365, 0.98660, 0.98930, 0.99171, 0.99385, 0.99569, + 0.99722, 0.99842, 0.99930, 0.99982, 1.00000}, + //--------- 0.70 GeV + {0.00023, 0.00093, 0.00207, 0.00366, 0.00567, 0.00810, 0.01091, + 0.01410, 0.01765, 0.02155, 0.02578, 0.03032, 0.03517, 0.04031, + 0.04572, 0.05139, 0.05731, 0.06345, 0.06981, 0.07636, 0.08310, + 0.09002, 0.09708, 0.10429, 0.11163, 0.11908, 0.12665, 0.13430, + 0.14203, 0.14984, 0.15771, 0.16562, 0.17357, 0.18155, 0.18955, + 0.19755, 0.20555, 0.21354, 0.22150, 0.22942, 0.23731, 0.24514, + 0.25290, 0.26060, 0.26822, 0.27575, 0.28318, 0.29052, 0.29774, + 0.30486, 0.31185, 0.31873, 0.32548, 0.33210, 0.33859, 0.34496, + 0.35118, 0.35728, 0.36325, 0.36908, 0.37479, 0.38036, 0.38581, + 0.39114, 0.39635, 0.40145, 0.40643, 0.41130, 0.41606, 0.42073, + 0.42529, 0.42977, 0.43416, 0.43846, 0.44268, 0.44683, 0.45091, + 0.45493, 0.45888, 0.46278, 0.46663, 0.47043, 0.47419, 0.47792, + 0.48161, 0.48528, 0.48893, 0.49256, 0.49619, 0.49981, 0.50342, + 0.50705, 0.51068, 0.51433, 0.51800, 0.52170, 0.52543, 0.52919, + 0.53300, 0.53685, 0.54075, 0.54471, 0.54872, 0.55281, 0.55696, + 0.56119, 0.56550, 0.56989, 0.57437, 0.57894, 0.58361, 0.58839, + 0.59326, 0.59825, 0.60335, 0.60856, 0.61390, 0.61936, 0.62494, + 0.63065, 0.63650, 0.64247, 0.64857, 0.65481, 0.66118, 0.66768, + 0.67431, 0.68107, 0.68795, 0.69496, 0.70208, 0.70931, 0.71665, + 0.72410, 0.73164, 0.73926, 0.74696, 0.75474, 0.76258, 0.77047, + 0.77840, 0.78637, 0.79436, 0.80237, 0.81037, 0.81838, 0.82636, + 0.83432, 0.84224, 0.85011, 0.85792, 0.86566, 0.87332, 0.88088, + 0.88834, 0.89568, 0.90289, 0.90996, 0.91688, 0.92362, 0.93018, + 0.93654, 0.94268, 0.94860, 0.95427, 0.95968, 0.96482, 0.96967, + 0.97422, 0.97845, 0.98235, 0.98590, 0.98909, 0.99190, 0.99433, + 0.99634, 0.99793, 0.99907, 0.99977, 1.00000}, + //--------- 0.80 GeV + {0.00030, 0.00119, 0.00266, 0.00469, 0.00727, 0.01037, 0.01397, + 0.01805, 0.02259, 0.02756, 0.03294, 0.03872, 0.04486, 0.05135, + 0.05816, 0.06528, 0.07267, 0.08031, 0.08818, 0.09626, 0.10452, + 0.11294, 0.12151, 0.13020, 0.13899, 0.14786, 0.15680, 0.16579, + 0.17481, 0.18385, 0.19288, 0.20190, 0.21089, 0.21984, 0.22873, + 0.23755, 0.24629, 0.25493, 0.26346, 0.27187, 0.28016, 0.28830, + 0.29630, 0.30414, 0.31182, 0.31933, 0.32666, 0.33381, 0.34078, + 0.34756, 0.35415, 0.36055, 0.36677, 0.37279, 0.37863, 0.38428, + 0.38974, 0.39503, 0.40014, 0.40507, 0.40984, 0.41445, 0.41890, + 0.42319, 0.42734, 0.43134, 0.43521, 0.43895, 0.44257, 0.44607, + 0.44945, 0.45273, 0.45590, 0.45898, 0.46197, 0.46487, 0.46770, + 0.47045, 0.47314, 0.47576, 0.47833, 0.48084, 0.48331, 0.48574, + 0.48814, 0.49051, 0.49286, 0.49518, 0.49750, 0.49981, 0.50212, + 0.50444, 0.50677, 0.50912, 0.51149, 0.51388, 0.51632, 0.51879, + 0.52130, 0.52387, 0.52650, 0.52918, 0.53194, 0.53477, 0.53767, + 0.54067, 0.54375, 0.54693, 0.55021, 0.55359, 0.55709, 0.56071, + 0.56445, 0.56833, 0.57234, 0.57649, 0.58079, 0.58524, 0.58985, + 0.59463, 0.59957, 0.60468, 0.60997, 0.61545, 0.62110, 0.62694, + 0.63297, 0.63919, 0.64560, 0.65220, 0.65899, 0.66597, 0.67313, + 0.68047, 0.68798, 0.69567, 0.70351, 0.71152, 0.71967, 0.72796, + 0.73638, 0.74492, 0.75357, 0.76231, 0.77114, 0.78004, 0.78899, + 0.79799, 0.80702, 0.81606, 0.82511, 0.83413, 0.84313, 0.85207, + 0.86095, 0.86975, 0.87844, 0.88701, 0.89544, 0.90371, 0.91179, + 0.91966, 0.92731, 0.93470, 0.94182, 0.94863, 0.95512, 0.96127, + 0.96705, 0.97243, 0.97740, 0.98194, 0.98602, 0.98962, 0.99273, + 0.99531, 0.99734, 0.99881, 0.99970, 1.00000}, + //--------- 0.90 GeV + {0.00035, 0.00141, 0.00316, 0.00557, 0.00863, 0.01231, 0.01657, + 0.02139, 0.02674, 0.03260, 0.03893, 0.04570, 0.05288, 0.06045, + 0.06837, 0.07660, 0.08513, 0.09391, 0.10292, 0.11212, 0.12149, + 0.13100, 0.14063, 0.15034, 0.16012, 0.16994, 0.17978, 0.18962, + 0.19944, 0.20922, 0.21894, 0.22859, 0.23814, 0.24758, 0.25690, + 0.26609, 0.27511, 0.28398, 0.29267, 0.30117, 0.30947, 0.31757, + 0.32546, 0.33313, 0.34057, 0.34779, 0.35477, 0.36153, 0.36806, + 0.37435, 0.38042, 0.38626, 0.39187, 0.39727, 0.40246, 0.40743, + 0.41221, 0.41679, 0.42118, 0.42538, 0.42942, 0.43328, 0.43698, + 0.44053, 0.44394, 0.44720, 0.45033, 0.45334, 0.45622, 0.45900, + 0.46167, 0.46424, 0.46671, 0.46910, 0.47141, 0.47364, 0.47580, + 0.47790, 0.47993, 0.48191, 0.48385, 0.48573, 0.48758, 0.48939, + 0.49118, 0.49294, 0.49468, 0.49640, 0.49812, 0.49983, 0.50154, + 0.50325, 0.50498, 0.50672, 0.50848, 0.51026, 0.51207, 0.51392, + 0.51581, 0.51774, 0.51972, 0.52176, 0.52386, 0.52602, 0.52825, + 0.53056, 0.53295, 0.53543, 0.53800, 0.54067, 0.54344, 0.54633, + 0.54934, 0.55247, 0.55574, 0.55915, 0.56270, 0.56641, 0.57027, + 0.57431, 0.57852, 0.58291, 0.58750, 0.59228, 0.59726, 0.60245, + 0.60785, 0.61347, 0.61932, 0.62539, 0.63169, 0.63822, 0.64498, + 0.65198, 0.65920, 0.66665, 0.67433, 0.68222, 0.69033, 0.69864, + 0.70715, 0.71585, 0.72472, 0.73376, 0.74295, 0.75227, 0.76173, + 0.77129, 0.78094, 0.79067, 0.80046, 0.81028, 0.82013, 0.82998, + 0.83980, 0.84959, 0.85931, 0.86894, 0.87846, 0.88783, 0.89704, + 0.90605, 0.91483, 0.92336, 0.93160, 0.93952, 0.94709, 0.95428, + 0.96106, 0.96739, 0.97325, 0.97860, 0.98342, 0.98769, 0.99137, + 0.99443, 0.99684, 0.99859, 0.99965, 1.00000}, + //--------- 1.00 GeV + {0.00041, 0.00164, 0.00366, 0.00645, 0.00999, 0.01423, 0.01914, + 0.02469, 0.03084, 0.03755, 0.04478, 0.05250, 0.06066, 0.06923, + 0.07815, 0.08741, 0.09694, 0.10672, 0.11670, 0.12685, 0.13714, + 0.14753, 0.15800, 0.16850, 0.17902, 0.18953, 0.20000, 0.21041, + 0.22075, 0.23098, 0.24109, 0.25107, 0.26088, 0.27053, 0.27999, + 0.28924, 0.29829, 0.30711, 0.31569, 0.32403, 0.33212, 0.33995, + 0.34752, 0.35483, 0.36187, 0.36864, 0.37515, 0.38140, 0.38738, + 0.39312, 0.39861, 0.40385, 0.40886, 0.41364, 0.41820, 0.42256, + 0.42671, 0.43066, 0.43443, 0.43803, 0.44146, 0.44473, 0.44786, + 0.45084, 0.45368, 0.45640, 0.45901, 0.46150, 0.46389, 0.46618, + 0.46838, 0.47050, 0.47253, 0.47450, 0.47639, 0.47823, 0.48000, + 0.48172, 0.48340, 0.48503, 0.48662, 0.48818, 0.48970, 0.49120, + 0.49267, 0.49413, 0.49557, 0.49700, 0.49842, 0.49984, 0.50125, + 0.50267, 0.50410, 0.50554, 0.50700, 0.50847, 0.50997, 0.51150, + 0.51305, 0.51464, 0.51627, 0.51795, 0.51967, 0.52145, 0.52328, + 0.52518, 0.52714, 0.52918, 0.53129, 0.53350, 0.53579, 0.53818, + 0.54067, 0.54328, 0.54600, 0.54885, 0.55183, 0.55495, 0.55823, + 0.56166, 0.56526, 0.56904, 0.57300, 0.57715, 0.58151, 0.58607, + 0.59086, 0.59587, 0.60112, 0.60661, 0.61235, 0.61835, 0.62460, + 0.63112, 0.63790, 0.64494, 0.65226, 0.65983, 0.66767, 0.67577, + 0.68412, 0.69271, 0.70153, 0.71059, 0.71985, 0.72932, 0.73897, + 0.74880, 0.75878, 0.76890, 0.77914, 0.78948, 0.79990, 0.81038, + 0.82089, 0.83142, 0.84193, 0.85240, 0.86280, 0.87309, 0.88325, + 0.89324, 0.90302, 0.91256, 0.92181, 0.93075, 0.93931, 0.94748, + 0.95520, 0.96244, 0.96915, 0.97530, 0.98085, 0.98576, 0.99001, + 0.99355, 0.99634, 0.99836, 0.99959, 1.00000}, + //--------- 1.10 GeV + {0.00047, 0.00187, 0.00418, 0.00737, 0.01140, 0.01623, 0.02181, + 0.02811, 0.03507, 0.04265, 0.05079, 0.05946, 0.06859, 0.07814, + 0.08806, 0.09829, 0.10878, 0.11950, 0.13038, 0.14140, 0.15250, + 0.16366, 0.17483, 0.18598, 0.19709, 0.20813, 0.21906, 0.22987, + 0.24053, 0.25103, 0.26134, 0.27145, 0.28134, 0.29100, 0.30041, + 0.30956, 0.31844, 0.32704, 0.33536, 0.34339, 0.35112, 0.35856, + 0.36569, 0.37253, 0.37908, 0.38533, 0.39130, 0.39699, 0.40241, + 0.40756, 0.41246, 0.41712, 0.42154, 0.42574, 0.42972, 0.43351, + 0.43710, 0.44050, 0.44374, 0.44682, 0.44974, 0.45253, 0.45518, + 0.45770, 0.46011, 0.46241, 0.46461, 0.46672, 0.46874, 0.47068, + 0.47254, 0.47434, 0.47607, 0.47774, 0.47936, 0.48093, 0.48246, + 0.48395, 0.48540, 0.48681, 0.48820, 0.48956, 0.49089, 0.49221, + 0.49351, 0.49479, 0.49606, 0.49733, 0.49859, 0.49984, 0.50110, + 0.50236, 0.50362, 0.50490, 0.50618, 0.50748, 0.50879, 0.51013, + 0.51149, 0.51288, 0.51429, 0.51574, 0.51722, 0.51875, 0.52032, + 0.52194, 0.52362, 0.52535, 0.52714, 0.52901, 0.53095, 0.53297, + 0.53507, 0.53728, 0.53958, 0.54199, 0.54452, 0.54717, 0.54995, + 0.55288, 0.55596, 0.55920, 0.56261, 0.56620, 0.56999, 0.57397, + 0.57818, 0.58260, 0.58726, 0.59217, 0.59733, 0.60275, 0.60845, + 0.61442, 0.62068, 0.62723, 0.63408, 0.64123, 0.64867, 0.65641, + 0.66444, 0.67277, 0.68138, 0.69027, 0.69943, 0.70884, 0.71851, + 0.72841, 0.73852, 0.74884, 0.75935, 0.77002, 0.78083, 0.79178, + 0.80282, 0.81393, 0.82509, 0.83627, 0.84743, 0.85854, 0.86956, + 0.88046, 0.89117, 0.90167, 0.91191, 0.92183, 0.93138, 0.94052, + 0.94919, 0.95734, 0.96492, 0.97188, 0.97818, 0.98377, 0.98860, + 0.99263, 0.99582, 0.99813, 0.99953, 1.00000}, + //--------- 1.20 GeV + {0.00053, 0.00211, 0.00472, 0.00832, 0.01286, 0.01829, 0.02456, + 0.03163, 0.03942, 0.04788, 0.05695, 0.06657, 0.07667, 0.08720, + 0.09809, 0.10927, 0.12069, 0.13230, 0.14403, 0.15585, 0.16769, + 0.17953, 0.19131, 0.20301, 0.21460, 0.22604, 0.23731, 0.24838, + 0.25924, 0.26986, 0.28023, 0.29033, 0.30015, 0.30968, 0.31890, + 0.32782, 0.33641, 0.34469, 0.35263, 0.36025, 0.36754, 0.37450, + 0.38114, 0.38746, 0.39347, 0.39918, 0.40459, 0.40971, 0.41456, + 0.41915, 0.42349, 0.42759, 0.43147, 0.43513, 0.43860, 0.44187, + 0.44497, 0.44791, 0.45069, 0.45332, 0.45583, 0.45821, 0.46047, + 0.46263, 0.46469, 0.46666, 0.46855, 0.47036, 0.47210, 0.47377, + 0.47538, 0.47694, 0.47845, 0.47991, 0.48133, 0.48272, 0.48407, + 0.48539, 0.48668, 0.48795, 0.48920, 0.49043, 0.49165, 0.49284, + 0.49403, 0.49521, 0.49637, 0.49754, 0.49869, 0.49985, 0.50101, + 0.50216, 0.50333, 0.50449, 0.50567, 0.50685, 0.50805, 0.50927, + 0.51049, 0.51174, 0.51301, 0.51431, 0.51563, 0.51698, 0.51836, + 0.51979, 0.52125, 0.52276, 0.52432, 0.52593, 0.52760, 0.52934, + 0.53115, 0.53303, 0.53500, 0.53707, 0.53923, 0.54149, 0.54387, + 0.54638, 0.54902, 0.55180, 0.55474, 0.55784, 0.56112, 0.56459, + 0.56825, 0.57213, 0.57624, 0.58058, 0.58518, 0.59003, 0.59516, + 0.60058, 0.60629, 0.61231, 0.61863, 0.62528, 0.63225, 0.63955, + 0.64717, 0.65512, 0.66340, 0.67201, 0.68093, 0.69016, 0.69970, + 0.70953, 0.71964, 0.73001, 0.74064, 0.75151, 0.76259, 0.77386, + 0.78531, 0.79690, 0.80861, 0.82040, 0.83224, 0.84409, 0.85591, + 0.86765, 0.87926, 0.89069, 0.90188, 0.91277, 0.92330, 0.93341, + 0.94303, 0.95210, 0.96057, 0.96836, 0.97543, 0.98170, 0.98714, + 0.99168, 0.99528, 0.99789, 0.99947, 1.00000} + }; + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4BaryonPartialWidth.hh b/source/processes/hadronic/models/generator/scattering/include/G4BaryonPartialWidth.hh new file mode 100644 index 0000000000..2fbb669dd3 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4BaryonPartialWidth.hh @@ -0,0 +1,321 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4BaryonPartialWidth +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4BARYONPARTIALWIDTH_HH +#define G4BARYONPARTIALWIDTH_HH + +#include "globals.hh" +#include "G4ResonancePartialWidth.hh" +#include "g4std/map" + +class G4PhysicsVector; + +class G4BaryonPartialWidth :public G4ResonancePartialWidth +{ +public: + + G4BaryonPartialWidth(); + + virtual ~G4BaryonPartialWidth(); + + // Returned pointer is owned by the client + virtual G4PhysicsVector* MassDependentWidth(const G4String& name) const; + +protected: + +private: + + G4BaryonPartialWidth(const G4BaryonPartialWidth& right); + G4BaryonPartialWidth& operator=(const G4BaryonPartialWidth& right); + + G4std::map > wMap; + + static const G4double energies[120]; + + static const G4double pwN1440_Npi[120]; + static const G4double pwN1440_Npipi[120]; + static const G4double pwN1440_Dpi[120]; + + static const G4double pwN1520_Ngamma[120]; + static const G4double pwN1520_Npi[120]; + static const G4double pwN1520_Npipi[120]; + static const G4double pwN1520_Dpi[120]; + + static const G4double pwN1535_Ngamma[120]; + static const G4double pwN1535_Npi[120]; + static const G4double pwN1535_Neta[120]; + static const G4double pwN1535_Npipi[120]; + static const G4double pwN1535_Nstarpi[120]; + + static const G4double pwN1650_Ngamma[120]; + static const G4double pwN1650_Npi[120]; + static const G4double pwN1650_Neta[120] ; + static const G4double pwN1650_Npipi[120]; + static const G4double pwN1650_Dpi[120]; + static const G4double pwN1650_Nstarpi[120]; + static const G4double pwN1650_LK[120]; + + static const G4double pwN1675_Npi[120]; + static const G4double pwN1675_Dpi[120]; + + static const G4double pwN1680_Ngamma[120]; + static const G4double pwN1680_Npi[120]; + static const G4double pwN1680_Npipi[120]; + static const G4double pwN1680_Dpi[120]; + + static const G4double pwN1700_Npi[120]; + static const G4double pwN1700_Neta[120]; + static const G4double pwN1700_Nrho[120]; + static const G4double pwN1700_Npipi[120]; + static const G4double pwN1700_Dpi[120]; + + static const G4double pwN1710_Npi[120]; + static const G4double pwN1710_Neta[120]; + static const G4double pwN1710_Nrho[120]; + static const G4double pwN1710_Npipi[120]; + static const G4double pwN1710_Dpi[120]; + static const G4double pwN1710_Nstarpi[120]; + static const G4double pwN1710_LK[120]; + + static const G4double pwN1720_Ngamma[120]; + static const G4double pwN1720_Npi[120]; + static const G4double pwN1720_Nrho[120]; + static const G4double pwN1720_Npipi[120]; + static const G4double pwN1720_Dpi[120]; + static const G4double pwN1720_LK[120]; + + static const G4double pwN1900_Npi[120]; + static const G4double pwN1900_Nomega[120]; + static const G4double pwN1900_Nrho[120]; + static const G4double pwN1900_Dpi[120]; + + static const G4double pwN1990_Npi[120]; + static const G4double pwN1990_Nrho[120]; + static const G4double pwN1990_Npipi[120]; + static const G4double pwN1990_Dpi[120]; + static const G4double pwN1990_Nstarpi[120]; + static const G4double pwN1990_LK[120]; + + static const G4double pwN2090_Npi[120]; + static const G4double pwN2090_Neta[120]; + static const G4double pwN2090_Nrho[120]; + static const G4double pwN2090_Npipi[120]; + static const G4double pwN2090_Dpi[120]; + + static const G4double pwN2190_Npi[120]; + static const G4double pwN2190_Nrho[120]; + static const G4double pwN2190_Npipi[120]; + static const G4double pwN2190_Dpi[120]; + static const G4double pwN2190_Nstarpi[120]; + + static const G4double pwN2220_Npi[120]; + static const G4double pwN2220_Nrho[120]; + static const G4double pwN2220_Npipi[120]; + static const G4double pwN2220_Dpi[120]; + static const G4double pwN2250_Npi[120]; + static const G4double pwN2250_Nrho[120]; + static const G4double pwN2250_Npipi[120]; + static const G4double pwN2250_Dpi[120]; + static const G4double pwN2250_Nstarpi[120]; + + static const G4double pwD1232_Ngamma[120]; + static const G4double pwD1232_Npi[120]; + + static const G4double pwD1600_Npi[120]; + static const G4double pwD1600_Dpi[120]; + static const G4double pwD1600_Nstarpi[120]; + + static const G4double pwD1620_Ngamma[120]; + static const G4double pwD1620_Npi[120]; + static const G4double pwD1620_Dpi[120]; + static const G4double pwD1620_Nstarpi[120]; + + static const G4double pwD1700_Ngamma[120]; + static const G4double pwD1700_Npi[120]; + static const G4double pwD1700_Nrho[120]; + static const G4double pwD1700_Dpi[120]; + static const G4double pwD1700_Nstarpi[120]; + + static const G4double pwD1900_Npi[120]; + static const G4double pwD1900_Nrho[120]; + static const G4double pwD1900_Dpi[120]; + static const G4double pwD1900_Nstarpi[120]; + + static const G4double pwD1905_Ngamma[120]; + static const G4double pwD1905_Npi[120]; + static const G4double pwD1905_Nrho[120]; + static const G4double pwD1905_Dpi[120]; + static const G4double pwD1905_Nstarpi[120]; + + static const G4double pwD1910_Npi[120]; + static const G4double pwD1910_Nrho[120]; + static const G4double pwD1910_Dpi[120]; + static const G4double pwD1910_Nstarpi[120]; + + static const G4double pwD1920_Npi[120]; + static const G4double pwD1920_Nrho[120]; + static const G4double pwD1920_Dpi[120]; + static const G4double pwD1920_Nstarpi[120]; + + static const G4double pwD1930_Npi[120]; + static const G4double pwD1930_Nrho[120]; + static const G4double pwD1930_Dpi[120]; + static const G4double pwD1930_Nstarpi[120]; + + static const G4double pwD1950_Ngamma[120]; + static const G4double pwD1950_Npi[120]; + static const G4double pwD1950_Nrho[120]; + static const G4double pwD1950_Dpi[120]; + static const G4double pwD1950_Nstarpi[120]; + + static const G4double pwL1405_Spi[120]; + + static const G4double pwL1520_NKbar[120]; + static const G4double pwL1520_Spi[120]; + static const G4double pwL1520_Sstarpi[120]; + static const G4double pwL1520_Lgamma[120]; + + static const G4double pwL1600_NKbar[120]; + static const G4double pwL1600_Spi[120]; + static const G4double pwL1670_NKbar[120]; + static const G4double pwL1670_Spi[120]; + static const G4double pwL1670_Leta[120]; + + static const G4double pwL1690_NKbar[120]; + static const G4double pwL1690_Spi[120]; + static const G4double pwL1690_Sstarpi[120]; + + static const G4double pwL1800_NKbar[120]; + static const G4double pwL1800_NKstarbar[120]; + static const G4double pwL1800_Spi[120]; + static const G4double pwL1800_Sstarpi[120]; + + static const G4double pwL1810_NKbar[120]; + static const G4double pwL1810_NKstarbar[120]; + static const G4double pwL1810_Spi[120]; + static const G4double pwL1810_Sstarpi[120]; + + static const G4double pwL1820_NKbar[120]; + static const G4double pwL1820_Spi[120]; + static const G4double pwL1820_Sstarpi[120]; + + static const G4double pwL1830_NKbar[120]; + static const G4double pwL1830_Spi[120]; + static const G4double pwL1830_Sstarpi[120]; + + static const G4double pwL1890_NKbar[120]; + static const G4double pwL1890_NKstarbar[120]; + static const G4double pwL1890_Spi[120]; + static const G4double pwL1890_Sstarpi[120]; + + static const G4double pwL2100_NKbar[120]; + static const G4double pwL2100_NKstarbar[120]; + static const G4double pwL2100_Spi[120]; + static const G4double pwL2100_Sstarpi[120]; + static const G4double pwL2100_Leta[120]; + static const G4double pwL2100_Lomega[120]; + static const G4double pwL2110_NKbar[120]; + static const G4double pwL2110_NKstarbar[120]; + static const G4double pwL2110_Spi[120]; + + static const G4double pwS1385_Spi[120]; + static const G4double pwS1385_Lpi[120]; + + static const G4double pwS1660_NKbar[120]; + static const G4double pwS1660_Spi[120]; + static const G4double pwS1660_Lpi[120]; + + static const G4double pwS1670_NKbar[120]; + static const G4double pwS1670_Spi[120]; + static const G4double pwS1670_Lpi[120]; + + static const G4double pwS1750_NKbar[120]; + static const G4double pwS1750_Spi[120]; + static const G4double pwS1750_Seta[120]; + + static const G4double pwS1775_NKbar[120]; + static const G4double pwS1775_Spi[120]; + static const G4double pwS1775_Sstarpi[120]; + static const G4double pwS1775_Lpi[120]; + static const G4double pwS1775_Lstarpi[120]; + + static const G4double pwS1915_NKbar[120]; + static const G4double pwS1915_Spi[120]; + static const G4double pwS1915_Sstarpi[120]; + static const G4double pwS1915_Lpi[120]; + + static const G4double pwS1940_NKbar[120]; + static const G4double pwS1940_NKstarbar[120]; + static const G4double pwS1940_Spi[120]; + static const G4double pwS1940_Sstarpi[120]; + static const G4double pwS1940_Lpi[120]; + static const G4double pwS1940_Lstarpi[120]; + static const G4double pwS1940_DKbar[120]; + + static const G4double pwS2030_NKbar[120]; + static const G4double pwS2030_NKstarbar[120]; + static const G4double pwS2030_Spi[120]; + static const G4double pwS2030_Sstarpi[120]; + static const G4double pwS2030_Lpi[120]; + static const G4double pwS2030_Lstarpi[120]; + static const G4double pwS2030_DKbar[120]; + + static const G4double pwX1530_Xpi[120]; + static const G4double pwX1530_Xgamma[120]; + + static const G4double pwX1690_Xpi[120]; + static const G4double pwX1690_LKbar[120]; + static const G4double pwX1690_SKbar[120]; + + static const G4double pwX1820_Xpi[120]; + static const G4double pwX1820_LKbar[120]; + static const G4double pwX1820_SKbar[120]; + + static const G4double pwX1950_Xpi[120]; + static const G4double pwX1950_LKbar[120]; + static const G4double pwX1950_SKbar[120]; + + static const G4double pwX2030_Xpi[120]; + static const G4double pwX2030_LKbar[120]; + static const G4double pwX2030_SKbar[120]; + + G4int wSize; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4BaryonWidth.hh b/source/processes/hadronic/models/generator/scattering/include/G4BaryonWidth.hh new file mode 100644 index 0000000000..90a8c6d4dc --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4BaryonWidth.hh @@ -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. * +// ******************************************************************** +// + +// + +#ifndef G4BaryonWidth_h +#define G4BaryonWidth_h + +#include "globals.hh" +#include "G4ResonanceWidth.hh" +#include "g4std/map" +#include "g4std/vector" + +class G4PhysicsVector; + +class G4BaryonWidth : public G4ResonanceWidth +{ +public: + + G4BaryonWidth(); + + virtual ~G4BaryonWidth(); + + G4bool operator==(const G4BaryonWidth& right) const; + G4bool operator!=(const G4BaryonWidth& right) const; + + // Returned pointer is owned by the client + virtual G4PhysicsVector* MassDependentWidth(const G4String& name) const; + +protected: + + +private: + + G4BaryonWidth(const G4BaryonWidth& right); + G4BaryonWidth& operator=(const G4BaryonWidth& right); + + // Map of PhysicsVectors for width interpolation + G4std::map > wMap; + // G4std::map > wMap; + + static G4double baryonEnergyTable[120]; + + static G4double wN1440[120]; + static G4double wN1520[120]; + static G4double wN1535[120]; + static G4double wN1650[120]; + static G4double wN1675[120]; + static G4double wN1680[120]; + static G4double wN1700[120]; + static G4double wN1710[120]; + static G4double wN1720[120]; + static G4double wN1900[120]; + static G4double wN1990[120]; + static G4double wN2090[120]; + static G4double wN2190[120]; + static G4double wN2220[120]; + static G4double wN2250[120]; + + static G4double wD1600[120]; + static G4double wD1620[120]; + static G4double wD1700[120]; + static G4double wD1900[120]; + static G4double wD1905[120]; + static G4double wD1910[120]; + static G4double wD1920[120]; + static G4double wD1930[120]; + static G4double wD1950[120]; + + static G4double wDelta[120]; + + static G4double wL1405[120]; + static G4double wL1520[120]; + static G4double wL1600[120]; + static G4double wL1670[120]; + static G4double wL1690[120]; + static G4double wL1800[120]; + static G4double wL1810[120]; + static G4double wL1820[120]; + static G4double wL1830[120]; + static G4double wL1890[120]; + static G4double wL2100[120]; + static G4double wL2110[120]; + + static G4double wS1385[120]; + static G4double wS1660[120]; + static G4double wS1670[120]; + static G4double wS1750[120]; + static G4double wS1775[120]; + static G4double wS1915[120]; + static G4double wS1940[120]; + static G4double wS2030[120]; + + static G4double wX1530[120]; + static G4double wX1690[120]; + static G4double wX1820[120]; + static G4double wX1950[120]; + static G4double wX2030[120]; + + G4int wSize; +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4Clebsch.hh b/source/processes/hadronic/models/generator/scattering/include/G4Clebsch.hh new file mode 100644 index 0000000000..418bc34c65 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4Clebsch.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4Clebsch +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// Kinetic Model, Clebsch-Gordan coefficient and related algebra +// +// ------------------------------------------------------------------- + +#ifndef G4CLEBSCH_HH +#define G4CLEBSCH_HH + +#include "globals.hh" +#include "g4std/vector" + +class G4Clebsch +{ + +public: + + G4Clebsch(); + + virtual ~G4Clebsch(); + + G4bool operator==(const G4Clebsch &right) const; + G4bool operator!=(const G4Clebsch &right) const; + + G4double ClebschGordan(G4int isoIn1, G4int iso3In1, + G4int isoIn2, G4int iso3In2, + G4int jOut) const; + + G4std::vector GenerateIso3(G4int isoIn1, G4int iso3In1, + G4int isoIn2, G4int iso3In2, + G4int isoOut1,G4int isoOut2) const; + + G4double Weight(G4int isoIn1, G4int iso3In1, + G4int isoIn2, G4int iso3In2, + G4int isoOut1, G4int isoOut2) const; + + G4double Wigner3J(G4double j1, G4double j2, G4double j3, + G4double m1, G4double m2, G4double m3) const; + + const G4std::vector& GetLogs() const; + + // Calculates the normalized Clebsch-Gordan coefficient, that is the prob + // of isospin decomposition of (J,m) into J1, J2, m1, m2 + G4double NormalizedClebschGordan(G4int J, G4int m, + G4int J1, G4int J2, + G4int m1, G4int m2) const; + +protected: + +private: + + G4Clebsch(const G4Clebsch &right); + G4Clebsch& operator=(const G4Clebsch &right); + + G4std::vector logs; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh new file mode 100644 index 0000000000..45efcace13 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * 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: G4CollisionComposite.hh,v 1.8 2002/12/13 13:04:42 gcosmo Exp $ +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CollisionComposite +// +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4CollisionComposite_h +#define G4CollisionComposite_h + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4CollisionVector.hh" +#include "G4KineticTrackVector.hh" +#include "G4CrossSectionBuffer.hh" + +class G4KineticTrack; +class G4VCrossSectionSource; + +class G4CollisionComposite : public G4VCollision +{ +public: + + G4CollisionComposite(); + virtual ~G4CollisionComposite(); + + virtual G4double CrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual G4KineticTrackVector* FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + +protected: + virtual const G4VCrossSectionSource* GetCrossSectionSource() const { return 0; } + virtual const G4VAngularDistribution* GetAngularDistribution() const { return 0; } + + void AddComponent(G4VCollision * aC) {components.push_back(aC);} + virtual const G4CollisionVector* GetComponents() const + { return &components;} + +private: + + G4CollisionComposite(const G4CollisionComposite &right); + + const G4CollisionComposite& operator=(const G4CollisionComposite &right); + void BufferCrossSection(const G4ParticleDefinition * aP, const G4ParticleDefinition * bP); + G4double BufferedCrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + +private: + + G4CollisionVector components; + G4std::vector theBuffer; + + static const G4int nPoints; + static G4double theT[]; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh new file mode 100644 index 0000000000..6f784bdc86 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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: G4CollisionInitialState.hh,v 1.2 2002/12/12 19:17:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// $Id: G4CollisionInitialState.hh,v 1.0 1998/06/30 +// ----------------------------------------------------------------------------- +// GEANT 4 class header file +// +// History: first implementation, A. Feliciello, 30th June 1998 + +// ----------------------------------------------------------------------------- + +#ifndef G4CollisionInitialState_hh +#define G4CollisionInitialState_hh + +#include "G4KineticTrack.hh" + +class G4CollisionInitialState +{ + +public: + G4CollisionInitialState(); + G4CollisionInitialState(G4double time, G4KineticTrack * aPrimary, + G4KineticTrack * aTarget); + + G4CollisionInitialState(G4CollisionInitialState & right); + + ~G4CollisionInitialState() { } + + const G4CollisionInitialState & operator=(const G4CollisionInitialState & right); + + int operator<(const G4CollisionInitialState & right) const + {return (theCollisionTime < right.theCollisionTime);} + + int operator==(const G4CollisionInitialState& right) const + {return (theCollisionTime == right.theCollisionTime);} + + G4KineticTrack * GetPrimary(void) {return thePrimary;} + void SetPrimary(G4KineticTrack * aPrimary) {thePrimary = aPrimary;} + + G4KineticTrack * GetTarget(void) {return theTarget;} + void SetTarget(G4KineticTrack * aTarget) {theTarget = aTarget;} + + G4double GetCollisionTime(void) {return theCollisionTime;} + void SetCollisionTime(G4double value) {theCollisionTime = value;} + +private: + + G4double theCollisionTime; + G4KineticTrack * thePrimary; + G4KineticTrack * theTarget; +}; + +#endif + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.hh new file mode 100644 index 0000000000..909d49b9c9 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.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. * +// ******************************************************************** +// +#ifndef G4CollisionManager_hh +#define G4CollisionManager_hh + +#include "globals.hh" +#include "G4ListOfCollisions.hh" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; +class G4CollisionInitialState; + +class G4CollisionManager +{ +public: + G4CollisionManager(); + ~G4CollisionManager(); + + G4int Entries(); + void AddCollision(G4double time, G4KineticTrack * proj, + G4KineticTrack * target = NULL); + void RemoveCollision(G4CollisionInitialState * collision); + void RemoveTracksCollisions(G4KineticTrackVector * ktv); + void ClearAndDestroy(); + G4CollisionInitialState * GetNextCollision(); + void Print(); + +private: + G4ListOfCollisions * theCollisionList; //was sorted (by time) vector... +}; + + + +inline G4int G4CollisionManager::Entries() +{ + return theCollisionList->size(); +} + + +#endif + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.hh new file mode 100644 index 0000000000..4c0bf75257 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.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: G4CollisionMesonBaryon.hh,v 1.5 2002/12/12 19:17:37 gunter Exp $ // +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CollisionNN +// +// Author: Maria Grazia Pia +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4COLLISIONMESONBARYON_HH +#define G4COLLISIONMESONBARYON_HH + +#include "globals.hh" +#include "G4CollisionComposite.hh" +#include "G4CollisionVector.hh" +#include "G4VCrossSectionSource.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionMesonBaryon : public G4CollisionComposite +{ + +public: + + G4CollisionMesonBaryon(); + + virtual ~G4CollisionMesonBaryon() {}; + + virtual G4String GetName() const { return "Meson Baryon CollisionComposite"; } + + +protected: + + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta::GetListOfColliders. Please find out why!"); + return result; + } +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh new file mode 100644 index 0000000000..35867d4a84 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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: G4CollisionMesonBaryonElastic.hh,v 1.6 2002/12/12 19:17:37 gunter Exp $ // + +#ifndef G4CollisionMesonBaryonElastic_h +#define G4CollisionMesonBaryonElastic_h + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4VElasticCollision.hh" + +class G4KineticTrack; + +class G4CollisionMesonBaryonElastic : public G4VElasticCollision +{ + +public: + + G4CollisionMesonBaryonElastic(); + virtual ~G4CollisionMesonBaryonElastic(); + + G4bool operator==(const G4CollisionMesonBaryonElastic &right) const; + G4bool operator!=(const G4CollisionMesonBaryonElastic &right) const; + + virtual G4String GetName() const; + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const + { return crossSectionSource; } + virtual const G4VAngularDistribution* GetAngularDistribution() const + { return angularDistribution; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const; + +private: + + G4VCrossSectionSource* crossSectionSource; + G4VAngularDistribution* angularDistribution; + + G4std::vector dummy; + + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh new file mode 100644 index 0000000000..1b0cfe9d62 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh @@ -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: G4CollisionMesonBaryonToResonance.hh,v 1.7 2002/12/12 19:17:37 gunter Exp $ // + +#ifndef G4CollisionMesonBaryonToResonance_h +#define G4CollisionMesonBaryonToResonance_h + +#include "globals.hh" +#include "G4CollisionComposite.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XpipNTotal.hh" +#include "G4XpimNTotal.hh" +#include "G4PionPlus.hh" +#include "G4Proton.hh" +#include "G4PionMinus.hh" + + +class G4CollisionMesonBaryonToResonance : public G4CollisionComposite +{ + +public: + + G4CollisionMesonBaryonToResonance(); + virtual ~G4CollisionMesonBaryonToResonance(){}; + virtual G4String GetName() const { return "mN -> baryon Resonance Collision"; } + virtual G4double CrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const + { + G4double result=0; +// if(trk1.GetDefinition() == G4PionPlus::PionPlus() && trk2.GetDefinition()==G4Proton::Proton()) +// { +// result=thepipp.CrossSection(trk1, trk2); +// } +// else if(trk2.GetDefinition() == G4PionPlus::PionPlus() && trk1.GetDefinition()==G4Proton::Proton()) +// { +// result=thepipp.CrossSection(trk2, trk1); +// } +// else if(trk1.GetDefinition() == G4PionMinus::PionMinus() && trk2.GetDefinition()==G4Proton::Proton()) +// { +// result=thepimp.CrossSection(trk1, trk2); +// } +// else if(trk2.GetDefinition() == G4PionMinus::PionMinus() && trk1.GetDefinition()==G4Proton::Proton()) +// { +// result=thepimp.CrossSection(trk2, trk1); +// } +// else + { + result = G4CollisionComposite::CrossSection(trk1, trk2); + } + return result; + } + +protected: + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionMesonBaryonToResonance::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } +private: + G4XpipNTotal thepipp; + G4XpimNTotal thepimp; +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.hh new file mode 100644 index 0000000000..eade0775e2 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.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: G4CollisionNN.hh,v 1.4 2002/12/12 19:17:37 gunter Exp $ // + +#ifndef G4CollisionNN_h +#define G4CollisionNN_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4CollisionVector.hh" +#include "G4VCrossSectionSource.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNN : public G4GeneralNNCollision +{ + +public: + + G4CollisionNN(); + + virtual ~G4CollisionNN(); + + G4bool operator==(const G4CollisionNN &right) const; + G4bool operator!=(const G4CollisionNN &right) const; + + virtual G4String GetName() const { return "NN CollisionComposite"; } + + virtual G4double CrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const { return crossSectionSource; } + virtual const G4VAngularDistribution* GetAngularDistribution() const { return 0; } + + virtual const G4CollisionVector* GetComponents() const { return components; } + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const; + +private: + + G4CollisionVector* components; + + G4VCrossSectionSource* crossSectionSource; + + G4std::vector colliders1; + G4std::vector colliders2; +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.hh new file mode 100644 index 0000000000..c86ff2cd80 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.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: G4CollisionNNElastic.hh,v 1.3 2002/12/12 19:17:38 gunter Exp $ // + +#ifndef G4CollisionNNElastic_h +#define G4CollisionNNElastic_h + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "G4VElasticCollision.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNNElastic : public G4VElasticCollision +{ + +public: + + G4CollisionNNElastic(); + + virtual ~G4CollisionNNElastic(); + + G4bool operator==(const G4CollisionNNElastic &right) const; + G4bool operator!=(const G4CollisionNNElastic &right) const; + + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual G4String GetName() const { return "NN Elastic Collision"; } + + +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const { return crossSectionSource; } + virtual const G4VAngularDistribution* GetAngularDistribution() const { return angularDistribution; } + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const; + + +private: + + G4VCrossSectionSource* crossSectionSource; + G4VAngularDistribution* angularDistribution; + + G4std::vector colliders1; + G4std::vector colliders2; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.hh new file mode 100644 index 0000000000..310be2fc78 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.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: G4CollisionNNToDeltaDelta.hh,v 1.7 2002/12/12 19:17:38 gunter Exp $ // + +#ifndef G4CollisionNNToDeltaDelta_h +#define G4CollisionNNToDeltaDelta_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XDeltaDeltaTable.hh" + +class G4KineticTrack; + +class G4CollisionNNToDeltaDelta : public G4GeneralNNCollision +{ +public: + + G4CollisionNNToDeltaDelta(); + virtual ~G4CollisionNNToDeltaDelta() {}; + virtual G4String GetName() const { return "NN -> Delta Delta Collision"; } + +protected: + + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta::GetListOfColliders. Please find out why!"); + return result; + } + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh new file mode 100644 index 0000000000..421ee4d54f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1600_h +#define G4CollisionNNToDeltaDelta1600_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1600 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1600(); + + virtual ~G4CollisionNNToDeltaDelta1600() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1600) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1600::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh new file mode 100644 index 0000000000..2d2f789585 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1620_h +#define G4CollisionNNToDeltaDelta1620_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1620 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1620(); + + virtual ~G4CollisionNNToDeltaDelta1620() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1620) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1620::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh new file mode 100644 index 0000000000..143985d76a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1700_h +#define G4CollisionNNToDeltaDelta1700_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1700 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1700(); + + virtual ~G4CollisionNNToDeltaDelta1700() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1700) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1700::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh new file mode 100644 index 0000000000..5cf021bc86 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1900_h +#define G4CollisionNNToDeltaDelta1900_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1900 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1900(); + + virtual ~G4CollisionNNToDeltaDelta1900() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1900) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1900::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh new file mode 100644 index 0000000000..f091972981 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1905_h +#define G4CollisionNNToDeltaDelta1905_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1905 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1905(); + + virtual ~G4CollisionNNToDeltaDelta1905() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1905) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1905::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh new file mode 100644 index 0000000000..03916e2431 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1910_h +#define G4CollisionNNToDeltaDelta1910_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1910 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1910(); + + virtual ~G4CollisionNNToDeltaDelta1910() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1910) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1910::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh new file mode 100644 index 0000000000..53ea55fcba --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1920_h +#define G4CollisionNNToDeltaDelta1920_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1920 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1920(); + + virtual ~G4CollisionNNToDeltaDelta1920() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1920) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1920::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh new file mode 100644 index 0000000000..52245bad55 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1930_h +#define G4CollisionNNToDeltaDelta1930_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1930 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1930(); + + virtual ~G4CollisionNNToDeltaDelta1930() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1930) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1930::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh new file mode 100644 index 0000000000..c3ccd87f7e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToDeltaDelta1950_h +#define G4CollisionNNToDeltaDelta1950_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToDeltaDelta1950 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDelta1950(); + + virtual ~G4CollisionNNToDeltaDelta1950() {} + + + virtual G4String GetName() const { return "NN -> Delta Delta(1950) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaDelta1950::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh new file mode 100644 index 0000000000..afe6d8d66a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDeltastar.hh,v 1.7 2002/12/12 19:17:38 gunter Exp $ // + +#ifndef G4CollisionNNToDeltaDeltastar_h +#define G4CollisionNNToDeltaDeltastar_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNNToDeltaDeltastar : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaDeltastar(); + virtual ~G4CollisionNNToDeltaDeltastar() {}; + + virtual G4String GetName() const { return "NN -> Delta Delta* Collision"; } + + +protected: + + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDeltastar::GetListOfColliders. Please find out why!"); + return result; + } + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.hh new file mode 100644 index 0000000000..285a016344 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.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: G4CollisionNNToDeltaNstar.hh,v 1.6 2002/12/12 19:17:38 gunter Exp $ // + +#ifndef G4CollisionNNToDeltaNstar_h +#define G4CollisionNNToDeltaNstar_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNNToDeltaNstar : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToDeltaNstar(); + + virtual ~G4CollisionNNToDeltaNstar() {}; + virtual G4String GetName() const { return "NN -> Delta N* Collision"; } + + +protected: + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToDeltaNstar::GetListOfColliders. Please find out why!"); + return result; + } + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh new file mode 100644 index 0000000000..cf51413432 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta_h +#define G4CollisionNNToNDelta_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta(); + + virtual ~G4CollisionNNToNDelta() {} + + + virtual G4String GetName() const { return "NN -> N Delta Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh new file mode 100644 index 0000000000..96d936880f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1600_h +#define G4CollisionNNToNDelta1600_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1600 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1600(); + + virtual ~G4CollisionNNToNDelta1600() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1600) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1600::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh new file mode 100644 index 0000000000..84cf294dfd --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1620_h +#define G4CollisionNNToNDelta1620_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1620 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1620(); + + virtual ~G4CollisionNNToNDelta1620() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1620) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1620::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh new file mode 100644 index 0000000000..9eb19f90fa --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1700_h +#define G4CollisionNNToNDelta1700_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1700 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1700(); + + virtual ~G4CollisionNNToNDelta1700() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1700) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1700::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh new file mode 100644 index 0000000000..efd4a91074 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1900_h +#define G4CollisionNNToNDelta1900_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1900 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1900(); + + virtual ~G4CollisionNNToNDelta1900() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1900) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1900::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh new file mode 100644 index 0000000000..d96cabd855 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1905_h +#define G4CollisionNNToNDelta1905_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1905 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1905(); + + virtual ~G4CollisionNNToNDelta1905() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1905) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1905::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh new file mode 100644 index 0000000000..3aee349b57 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1910_h +#define G4CollisionNNToNDelta1910_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1910 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1910(); + + virtual ~G4CollisionNNToNDelta1910() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1910) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1910::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/persistency/geometry/solids/CSG/include/G4PCons.ddl b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh similarity index 63% rename from source/persistency/geometry/solids/CSG/include/G4PCons.ddl rename to source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh index 8b4f338f5d..ab2fccf2f0 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PCons.ddl +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh @@ -19,47 +19,44 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: G4PCons.ddl,v 1.5 2001/07/11 10:02:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// Class Description: -// Persistent version of G4Cons solid. +#ifndef G4CollisionNNToNDelta1920_h +#define G4CollisionNNToNDelta1920_h -// History: -// 19.06.98 A.Kimura Converted G4Cons.hh +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" -#ifndef G4PCons_DDL -#define G4PCons_DDL - -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" - -class G4Cons; -class G4VSolid; - -class G4PCons - : public G4PCSGSolid +class G4CollisionNNToNDelta1920 : public G4GeneralNNCollision { -public: // With description - G4PCons(const G4Cons* theCons); - virtual ~G4PCons() ; - // Constructor and Destructor - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. +public: - virtual G4GeometryType GetEntityType() const {return G4String("G4Cons");} - // Returns the G4GeometryType of this solid. + G4CollisionNNToNDelta1920(); -private: + virtual ~G4CollisionNNToNDelta1920() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1920) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1920::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; - G4double fRmin1, fRmin2, - fRmax1, fRmax2, - fDz, - fSPhi, fDPhi; }; #endif - diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh new file mode 100644 index 0000000000..aebc322096 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1930_h +#define G4CollisionNNToNDelta1930_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1930 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1930(); + + virtual ~G4CollisionNNToNDelta1930() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1930) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1930::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh new file mode 100644 index 0000000000..bbbb34c3d8 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 G4CollisionNNToNDelta1950_h +#define G4CollisionNNToNDelta1950_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4CollisionNNToNDelta1950 : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDelta1950(); + + virtual ~G4CollisionNNToNDelta1950() {} + + + virtual G4String GetName() const { return "NN -> N Delta(1950) Collision"; } + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDelta1950::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + +protected: + + virtual const G4CollisionVector* GetComponents() const { return components; } + +private: + + G4CollisionVector* components; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh new file mode 100644 index 0000000000..8db792fe8b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToNDeltastar.hh,v 1.6 2002/12/12 19:17:39 gunter Exp $ // + +#ifndef G4CollisionNNToNDeltastar_h +#define G4CollisionNNToNDeltastar_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNNToNDeltastar : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNDeltastar(); + + virtual ~G4CollisionNNToNDeltastar(){}; + virtual G4String GetName() const { return "NN -> N Delta* Collision"; } + + +protected: + + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNDeltastar::GetListOfColliders. Please find out why!"); + return result; + } + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh new file mode 100644 index 0000000000..3a9eafc958 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToNNstar.hh,v 1.6 2002/12/12 19:17:39 gunter Exp $ // +// ------------------------------------------------------------------- + +#ifndef G4CollisionNNToNNstar_h +#define G4CollisionNNToNNstar_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNNToNNstar : public G4GeneralNNCollision +{ + +public: + + G4CollisionNNToNNstar(); + + virtual ~G4CollisionNNToNNstar() {}; + + virtual G4String GetName() const { return "NN -> N N* Collision"; } + + +protected: + + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNNToNNstar::GetListOfColliders. Please find out why!"); + return result; + } + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh new file mode 100644 index 0000000000..5384890e84 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: G4CollisionNStarNToNN.hh,v 1.2 2002/12/12 19:17:39 gunter Exp $ // +// ------------------------------------------------------------------- + +#ifndef G4CollisionNStarNToNN_h +#define G4CollisionNStarNToNN_h + +#include "globals.hh" +#include "G4GeneralNNCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionNStarNToNN : public G4GeneralNNCollision +{ + +public: + + G4CollisionNStarNToNN(); + + virtual ~G4CollisionNStarNToNN() {}; + + virtual G4String GetName() const { return "NN -> N N* Collision"; } + + +protected: + + G4std::vector result; + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4CollisionNStarNToNN::GetListOfColliders. Please find out why!"); + return result; + } + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh new file mode 100644 index 0000000000..f155d3c6c0 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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: G4CollisionPN.hh,v 1.2 2002/12/12 19:17:39 gunter Exp $ // +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CollisionNN +// +// Author: Maria Grazia Pia +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4COLLISIONPN_HH +#define G4COLLISIONPN_HH + +#include "globals.hh" +#include "G4CollisionComposite.hh" +#include "G4CollisionVector.hh" +#include "G4VCrossSectionSource.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionPN : public G4CollisionComposite +{ + +public: + + G4CollisionPN(); + + virtual ~G4CollisionPN(); + + G4bool operator==(const G4CollisionPN &right) const; + G4bool operator!=(const G4CollisionPN &right) const; + + virtual G4String GetName() const { return "PN CollisionComposite"; } + + +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const { return crossSectionSource; } + virtual const G4VAngularDistribution* GetAngularDistribution() const { return 0; } + + virtual const G4CollisionVector* GetComponents() const { return components; } + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const; + +private: + + G4CollisionVector* components; + + G4VCrossSectionSource* crossSectionSource; + + G4std::vector colliders1; + G4std::vector colliders2; +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionPtr.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionPtr.hh new file mode 100644 index 0000000000..b0da46696c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionPtr.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4CollisionPtr +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4COLLISIONPTR_HH +#define G4COLLISIONPTR_HH + +#include "globals.hh" + +class G4VCollision; + +class G4CollisionPtr +{ +public: + + // This is a wrapper class to store pointers to G4VCollision in vectors + // Constructor + G4CollisionPtr(G4VCollision* x = 0); + + //Destructor + ~G4CollisionPtr() { } + + // Copy constructor + G4CollisionPtr(const G4CollisionPtr& xw) : x_(xw.x_) { } + + // Operators + + const G4VCollision* operator() () const; + G4VCollision* operator() (); + + G4CollisionPtr& operator= (const G4CollisionPtr& xw); + + G4bool operator== (const G4CollisionPtr& right) const; + + G4bool operator< (const G4CollisionPtr& right) { return false; } + +private: + + G4VCollision* x_; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh new file mode 100644 index 0000000000..eef0288d8d --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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: G4CollisionVector.hh,v 1.2 2002/12/12 19:17:39 gunter Exp $ // +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CollisionVector +// +// Author: Maria Grazia Pia +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4COLLISIONVECTOR_HH +#define G4COLLISIONVECTOR_HH + +#include "globals.hh" +#include "g4std/vector" +#include "G4CollisionPtr.hh" + +typedef G4std::vector G4CollisionVector; + +#endif + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.hh new file mode 100644 index 0000000000..05c49f5526 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.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: G4CollisionnpElastic.hh,v 1.3 2002/12/12 19:17:39 gunter Exp $ // + +#ifndef G4CollisionnpElastic_h +#define G4CollisionnpElastic_h + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "G4VElasticCollision.hh" +#include "g4std/vector" + +class G4KineticTrack; + +class G4CollisionnpElastic : public G4VElasticCollision +{ + +public: + + G4CollisionnpElastic(); + + virtual ~G4CollisionnpElastic(); + + G4bool operator==(const G4CollisionnpElastic &right) const; + G4bool operator!=(const G4CollisionnpElastic &right) const; + + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual G4String GetName() const { return "np Elastic Collision"; } + + +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const { return crossSectionSource; } + virtual const G4VAngularDistribution* GetAngularDistribution() const { return angularDistribution; } + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const; + + +private: + + G4VCrossSectionSource* crossSectionSource; + G4VAngularDistribution* angularDistribution; + + G4std::vector colliders1; + G4std::vector colliders2; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh new file mode 100644 index 0000000000..e5364ffa8e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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: G4ConcreteMesonBaryonToResonance.hh,v 1.3 2002/12/12 19:17:39 gunter Exp $ // + +#ifndef G4ConcreteMesonBaryonToResonance_h +#define G4ConcreteMesonBaryonToResonance_h + +#include "globals.hh" +#include "G4VAnnihilationCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XNDeltaTable.hh" +#include "G4ParticleTypeConverter.hh" +#include "G4BaryonWidth.hh" +#include "G4BaryonPartialWidth.hh" + +//class G4KineticTrack; + +class G4ConcreteMesonBaryonToResonance : public G4VAnnihilationCollision +{ + +public: + + G4ConcreteMesonBaryonToResonance(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4String& partWidthLabel); + + virtual ~G4ConcreteMesonBaryonToResonance(); + + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4ConcreteNNToNDelta::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + virtual G4String GetName() const + { + return "ConcreteMesonBaryonToResonance"; + } + + G4bool operator==(const G4ConcreteMesonBaryonToResonance &right) const; + G4bool operator!=(const G4ConcreteMesonBaryonToResonance &right) const; + + +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const + { return crossSectionSource; } + + virtual const G4ParticleDefinition* GetOutgoingParticle(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + +private: + + G4VCrossSectionSource* crossSectionSource; + const G4ParticleDefinition* thePrimary1; + const G4ParticleDefinition* thePrimary2; + const G4ParticleDefinition* theSecondary; + static G4BaryonWidth theBaryonWidth; + static G4BaryonPartialWidth theBaryonPartialWidth; + static G4ParticleTypeConverter myConv; +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDelta.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDelta.hh new file mode 100644 index 0000000000..9101316a81 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDelta.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNToDeltaDelta_HH +#define G4ConcreteNNToDeltaDelta_HH + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XDeltaDeltaTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +class G4ConcreteNNToDeltaDelta : public G4ConcreteNNTwoBodyResonance +{ + +public: + + G4ConcreteNNToDeltaDelta(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNNToDeltaDelta() {}; + + virtual G4String GetName() const + { + return "ConcreteNNToDeltaDelta"; + } + + G4bool operator==(const G4ConcreteNNToDeltaDelta &right) const; + G4bool operator!=(const G4ConcreteNNToDeltaDelta &right) const; + +private: + + static G4XDeltaDeltaTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDeltastar.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDeltastar.hh new file mode 100644 index 0000000000..abb545c169 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDeltastar.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNToDeltaDeltastar_h +#define G4ConcreteNNToDeltaDeltastar_h + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XDeltaDeltastarTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +//class G4KineticTrack; + +class G4ConcreteNNToDeltaDeltastar : public G4ConcreteNNTwoBodyResonance +{ +public: + G4ConcreteNNToDeltaDeltastar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNNToDeltaDeltastar(); + virtual G4String GetName() const { return "ConcreteNNToNDeltaStar"; } + +private: + + static G4XDeltaDeltastarTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaNstar.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaNstar.hh new file mode 100644 index 0000000000..6e7fd61bc2 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaNstar.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNToDeltaNstar_h +#define G4ConcreteNNToDeltaNstar_h + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XDeltaNstarTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +//class G4KineticTrack; + +class G4ConcreteNNToDeltaNstar : public G4ConcreteNNTwoBodyResonance +{ +public: + G4ConcreteNNToDeltaNstar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNNToDeltaNstar(); + virtual G4String GetName() const { return "ConcreteNNToNNStar"; } + +private: + + static G4XDeltaNstarTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDelta.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDelta.hh new file mode 100644 index 0000000000..15d86cf2e1 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDelta.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNToNDelta_h +#define G4ConcreteNNToNDelta_h + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XNDeltaTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +//class G4KineticTrack; + +class G4ConcreteNNToNDelta : public G4ConcreteNNTwoBodyResonance +{ +public: + G4ConcreteNNToNDelta(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNNToNDelta(); + virtual G4String GetName() const { return "ConcreteNNToNDelta"; } + +private: + + static G4XNDeltaTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDeltaStar.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDeltaStar.hh new file mode 100644 index 0000000000..cf23fe7cf6 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDeltaStar.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNToNDeltaStar_h +#define G4ConcreteNNToNDeltaStar_h + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XNDeltastarTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +//class G4KineticTrack; + +class G4ConcreteNNToNDeltaStar : public G4ConcreteNNTwoBodyResonance +{ +public: + G4ConcreteNNToNDeltaStar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNNToNDeltaStar(); + virtual G4String GetName() const { return "ConcreteNNToNDeltaStar"; } + +private: + + static G4XNDeltastarTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNNStar.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNNStar.hh new file mode 100644 index 0000000000..bd66da05e5 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNNStar.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNToNNStar_h +#define G4ConcreteNNToNNStar_h + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XNNstarTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +//class G4KineticTrack; + +class G4ConcreteNNToNNStar : public G4ConcreteNNTwoBodyResonance +{ +public: + G4ConcreteNNToNNStar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNNToNNStar(); + virtual G4String GetName() const { return "ConcreteNNToNNStar"; } + +private: + + static G4XNNstarTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.hh new file mode 100644 index 0000000000..a8f68152c4 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNNTwoBodyResonance_HH +#define G4ConcreteNNTwoBodyResonance_HH + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XDeltaDeltaTable.hh" + +class G4ConcreteNNTwoBodyResonance : public G4VScatteringCollision +{ + +public: + + G4ConcreteNNTwoBodyResonance(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary, + const G4VXResonanceTable& sigmaTable); + + virtual ~G4ConcreteNNTwoBodyResonance(); + + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const + { + G4Exception("Tried to call G4ConcreteNNTwoBodyResonance::GetListOfColliders. Please find out why!"); + G4std::vector * aList = new G4std::vector; + return *aList; + } + + virtual G4String GetName() const + { + return "G4ConcreteNNTwoBodyResonance"; + } + + G4bool operator==(const G4ConcreteNNTwoBodyResonance &right) const; + G4bool operator!=(const G4ConcreteNNTwoBodyResonance &right) const; + + +protected: + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const { return crossSectionSource; } + + virtual const G4std::vector & GetOutgoingParticles() const + { + return theOutGoing; + } + +private: + + G4VCrossSectionSource* crossSectionSource; + const G4ParticleDefinition* thePrimary1; + const G4ParticleDefinition* thePrimary2; + G4std::vector theOutGoing; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNStarNToNN.hh b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNStarNToNN.hh new file mode 100644 index 0000000000..0ec15a8ada --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNStarNToNN.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. * +// ******************************************************************** +// +// + +#ifndef G4ConcreteNStarNToNN_h +#define G4ConcreteNStarNToNN_h + +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" +#include "g4std/vector" +#include "G4XNNstarTable.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +//class G4KineticTrack; + +class G4ConcreteNStarNToNN : public G4ConcreteNNTwoBodyResonance +{ +public: + G4ConcreteNStarNToNN(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPriamry, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary); + + virtual ~G4ConcreteNStarNToNN(); + virtual G4String GetName() const { return "ConcreteNNToNNStar"; } + +private: + + static G4XNNstarTable theSigmaTable; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh b/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh new file mode 100644 index 0000000000..0141f0429c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh @@ -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. * +// ******************************************************************** +#ifndef G4CrossSectionBuffer_h +#define G4CrossSectionBuffer_h + +#include "G4ParticleDefinition.hh" +#include "globals.hh" +#include "G4Pair.hh" +#include "g4std/vector" + +class G4CrossSectionBuffer +{ + public: + + G4CrossSectionBuffer(const G4ParticleDefinition * aA, const G4ParticleDefinition * aB) + : theA(aA), theB(aB) {} + + G4bool InCharge(const G4ParticleDefinition * aA, const G4ParticleDefinition * aB) const + { + G4bool result = false; + if(aA == theA) + { + if(aB == theB) result = true; + } + else if(aA == theB) + { + if(aB == theA) result = true; + } + return result; + } + + void push_back(G4double s, G4double x) + { + G4Pair aNew; + aNew.first = s; + aNew.second = x; + theData.push_back(aNew); + } + G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const + { + G4double sqrts = (trk1.Get4Momentum()+trk2.Get4Momentum()).mag(); + G4double x1(1), y1(0); + G4double x2(2), y2(0); + + if(theData.size()==1) return theData[theData.size()-1].second; + + for(size_t i=0; isqrts) + { + if(0==i) + { + x1 = theData[i].first; + y1 = theData[i].second; + x2 = theData[i+1].first; + y2 = theData[i+1].second; + } + else if(theData.size()-1==i) + { + x1 = theData[theData.size()-2].first; + y1 = theData[theData.size()-2].second; + x2 = theData[theData.size()-1].first; + y2 = theData[theData.size()-1].second; + } + else + { + x1 = theData[i-1].first; + y1 = theData[i-1].second; + x2 = theData[i].first; + y2 = theData[i].second; + } + break; + } + } + // LINLIN interpolation + // G4cerr << "!!!!!! "< G4CrossSectionVector; + +#endif + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh b/source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh new file mode 100644 index 0000000000..f95a28b62a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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 G4DeltaDeltastarBuilder_h +#define G4DeltaDeltastarBuilder_h + +#include "G4VXResonanceTable.hh" +#include "G4XDeltaDeltastarTable.hh" + +class G4DeltaDeltastarBuilder : public G4VXResonanceTable +{ + public: + G4DeltaDeltastarBuilder(const G4String & aName, G4XDeltaDeltastarTable & aT) + : theT(aT), theS(aName) + {} + virtual G4PhysicsVector* CrossSectionTable() const + { + return const_cast(theT.CrossSectionTable(theS)); + } + + private: + + G4XDeltaDeltastarTable & theT; + G4String theS; +}; +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh b/source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh new file mode 100644 index 0000000000..c79640a484 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * 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 G4DeltaNstarBuilder_h +#define G4DeltaNstarBuilder_h + +#include "G4VXResonanceTable.hh" + +class G4DeltaNstarBuilder : public G4VXResonanceTable +{ + public: + G4DeltaNstarBuilder(const G4String & aName, G4XDeltaNstarTable & aT) + : theT(aT), theS(aName) + {} + virtual G4PhysicsVector* CrossSectionTable() const + { + return const_cast(theT.CrossSectionTable(theS)); + } + + private: + + G4XDeltaNstarTable & theT; + G4String theS; +}; +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh b/source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh new file mode 100644 index 0000000000..cea5de777e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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 G4DetailedBalancePhaseSpaceIntegral_h +#define G4DetailedBalancePhaseSpaceIntegral_h + +#include "globals.hh" +#include "G4ParticleDefinition.hh" + +class G4DetailedBalancePhaseSpaceIntegral +{ + public: + G4DetailedBalancePhaseSpaceIntegral(G4ParticleDefinition * aR); + G4double GetPhaseSpaceIntegral(G4double sqrts); + + private: + G4ParticleDefinition * theR; + G4double * data; + + private: + static G4double sqrts[120]; + + static G4double delta[120]; + static G4double delta1600[120]; + static G4double delta1620[120]; + static G4double delta1700[120]; + static G4double delta1900[120]; + static G4double delta1905[120]; + static G4double delta1910[120]; + static G4double delta1920[120]; + static G4double delta1930[120]; + static G4double delta1950[120]; + static G4double N1440[120]; + static G4double N1520[120]; + static G4double N1535[120]; + static G4double N1650[120]; + static G4double N1675[120]; + static G4double N1680[120]; + static G4double N1700[120]; + static G4double N1710[120]; + static G4double N1720[120]; + static G4double N1900[120]; + static G4double N1990[120]; + static G4double N2090[120]; + static G4double N2190[120]; + static G4double N2220[120]; + static G4double N2250[120]; +}; + +#endif diff --git a/examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh b/source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh similarity index 71% rename from examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh rename to source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh index 1ab3bfec6d..228316d9bd 100644 --- a/examples/extended/biasing/B06/include/B06PrimaryGeneratorAction.hh +++ b/source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh @@ -19,31 +19,28 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B06PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#ifndef G4GeneralNNCollision_h +#define G4GeneralNNCollision_h -#ifndef B06PrimaryGeneratorAction_hh -#define B06PrimaryGeneratorAction_hh B06PrimaryGeneratorAction_hh +#include "G4CollisionComposite.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" -#include "G4VUserPrimaryGeneratorAction.hh" - -class G4ParticleGun; -class G4Event; - -class B06PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class G4GeneralNNCollision : public G4CollisionComposite { public: - B06PrimaryGeneratorAction(); - ~B06PrimaryGeneratorAction(); - public: - void GeneratePrimaries(G4Event* anEvent); + G4bool + IsInCharge(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const + { + G4bool result = false; + G4ParticleDefinition * aD = trk1.GetDefinition(); + G4ParticleDefinition * bD = trk2.GetDefinition(); + if( (aD==G4Proton::Proton() || aD == G4Neutron::Neutron()) + &&(bD==G4Proton::Proton() || bD == G4Neutron::Neutron()) ) result = true; + return result; + } - private: - G4ParticleGun* particleGun; }; #endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh b/source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh new file mode 100644 index 0000000000..e2a71a4523 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh @@ -0,0 +1,45 @@ +// +// ******************************************************************** +// * 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: G4ListOfCollisions.hh,v 1.2 2002/12/12 19:17:41 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// $Id: G4ListOfCollisions.hh,v 1.0 1998/06/30 +// ----------------------------------------------------------------------------- +// GEANT 4 class header file +// +// History: first implementation, A. Feliciello, 30th June 1998 +// 16 Nov 1999 M.G. Pia STL migration +// ----------------------------------------------------------------------------- + +#ifndef G4ListOfCollisions_h +#define G4ListOfCollisions_h 1 + +#include "globals.hh" +#include "g4std/vector" +#include "G4CollisionInitialState.hh" + +typedef G4std::vector G4ListOfCollisions; +struct DeleteCollisionInitialState { void operator()(G4CollisionInitialState *aC) {delete aC;} }; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh b/source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh new file mode 100644 index 0000000000..a8e58b4091 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh @@ -0,0 +1,38 @@ +// +// ******************************************************************** +// * 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 G4LowEXsection_h +#define G4LowEXsection_h + +#include "G4Pair.hh" +#include "g4std/vector" +#include "globals.hh" + +class G4LowEXsection : public G4std::vector > +{ +public: + G4LowEXsection() {} + virtual ~G4LowEXsection() {} + G4double CrossSection(G4double s) const; +private: + +}; +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh b/source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh new file mode 100644 index 0000000000..d5529ed09b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh @@ -0,0 +1,46 @@ +// +// ******************************************************************** +// * 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 G4NDeltastarBuilder_h +#define G4NDeltastarBuilder_h + +#include "G4VXResonanceTable.hh" +#include "G4XNDeltastarTable.hh" + +class G4NDeltastarBuilder : public G4VXResonanceTable +{ + public: + G4NDeltastarBuilder(const G4String & aName, G4XNDeltastarTable & aT) + : theT(aT), theS(aName) + { + //G4cout << aName <(theT.CrossSectionTable(theS)); + } + + private: + + G4XNDeltastarTable & theT; + G4String theS; +}; +#endif diff --git a/examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh b/source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh similarity index 77% rename from examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh rename to source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh index 2c66667d7c..2c6eb0feec 100644 --- a/examples/extended/biasing/B05/include/B05PrimaryGeneratorAction.hh +++ b/source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh @@ -19,30 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// +#ifndef G4NNstarBuilder_h +#define G4NNstarBuilder_h -#ifndef B05PrimaryGeneratorAction_hh -#define B05PrimaryGeneratorAction_hh B05PrimaryGeneratorAction_hh +#include "G4VXResonanceTable.hh" -#include "G4VUserPrimaryGeneratorAction.hh" - -class G4ParticleGun; -class G4Event; - -class B05PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class G4NNstarBuilder : public G4VXResonanceTable { - public: - B05PrimaryGeneratorAction(); - ~B05PrimaryGeneratorAction(); - - public: - void GeneratePrimaries(G4Event* anEvent); - + public: + G4NNstarBuilder(const G4String & aName, G4XNNstarTable & aT) + : theT(aT), theS(aName) + {} + virtual G4PhysicsVector* CrossSectionTable() const + { + return const_cast(theT.CrossSectionTable(theS)); + } + private: - G4ParticleGun* particleGun; + + G4XNNstarTable & theT; + G4String theS; }; - #endif - - diff --git a/source/processes/hadronic/models/generator/scattering/include/G4PartialWidthTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4PartialWidthTable.hh new file mode 100644 index 0000000000..db4564d391 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4PartialWidthTable.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4PartialWidthTable +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// +// +// ------------------------------------------------------------------- + +#ifndef G4PARTIALWIDTHTABLE_HH +#define G4PARTIALWIDTHTABLE_HH + +#include "globals.hh" +#include "G4PhysicsFreeVector.hh" +#include "g4std/vector" + +class G4PartialWidthTable +{ + +public: + + G4PartialWidthTable(const G4double* energies, G4int entries); + + virtual ~G4PartialWidthTable(); + + G4bool operator==(const G4PartialWidthTable &right) const; + G4bool operator!=(const G4PartialWidthTable &right) const; + + G4int NumberOfChannels() const; + + // Ownership of the pointer is not transferred to the client + const G4PhysicsVector* Width(const G4String& name1, const G4String& name2) const; + + void AddWidths(const G4double* widths, const G4String& name1, const G4String& name2); + + void Dump() const; + + +protected: + +private: + + G4PartialWidthTable(const G4PartialWidthTable &right); + const G4PartialWidthTable& operator=(const G4PartialWidthTable &right); + + G4int nEnergies; + G4std::vector energy; + G4std::vector widths; + G4std::vector daughter1; + G4std::vector daughter2; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ParticleTypeConverter.hh b/source/processes/hadronic/models/generator/scattering/include/G4ParticleTypeConverter.hh new file mode 100644 index 0000000000..d56ca8fc0b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ParticleTypeConverter.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. * +// ******************************************************************** +// + +#ifndef G4PARTICLETYPECONVERTER_HH +#define G4PARTICLETYPECONVERTER_HH + +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" + +#include "g4std/map" + +class G4ParticleTypeConverter +{ +public: + + enum GenericType { NUCLEON, + N1440, N1520, N1535, N1650, N1675, N1680, N1700, N1710, N1720, N1900, N1990, N2090, N2190, N2220, N2250, + D1232, D1600, D1620, D1700, D1900, D1905, D1910, D1920, D1930, D1950, + L1405, L1520, L1600, L1670, L1690, L1800, L1810, L1820, L1830, L1890, L2100, L2110, + Sigma, S1385, S1660, S1670, S1750, S1775, S1915, S1940, S2030, + X1530, X1690, X1820, X1950, X2030, + GAMMA, PION, KAON, ETA, RHO, omega, Lambda, UNKNOWN }; + + G4ParticleTypeConverter(); + + GenericType GetGenericType(const G4ParticleDefinition* const aParticleDef); + GenericType GetGenericType(const G4KineticTrack& aTrack); + GenericType GetGenericType(const G4String& aParticleName); + + G4int GetUrqmdItyp(GenericType gType); + G4int GetUrqmdItyp(const G4ParticleDefinition* aParticleDef); + + const G4ParticleDefinition* FindIso3State(const GenericType gType, const G4int isospin3); + +private: + + typedef G4std::vector >::const_iterator MapIterator; + G4std::vector > defMap; + +}; + + +#endif + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh b/source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh new file mode 100644 index 0000000000..39cc20fd4e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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 G4ResonanceID_h +#define G4ResonanceID_h + +class G4ResonanceID +{ + public: + G4bool IsDelta1232(G4int pdg) {return pdg==2224||pdg==2214||pdg==2114||pdg==1114;} + G4bool IsDelta1600(G4int pdg) {return pdg==31114||pdg==32114||pdg==32214||pdg==32224;} + G4bool IsDelta1620(G4int pdg) {return pdg==1112||pdg==1212||pdg==2122||pdg==2222;} + G4bool IsDelta1700(G4int pdg) {return pdg==11114||pdg==12114||pdg==12214||pdg==12224;} + G4bool IsDelta1900(G4int pdg) {return pdg==11112||pdg==11212||pdg==12122||pdg==12222;} + G4bool IsDelta1905(G4int pdg) {return pdg==1116||pdg==1216||pdg==2126||pdg==2226;} + G4bool IsDelta1910(G4int pdg) {return pdg==21112||pdg==21212||pdg==22122||pdg==22222;} + G4bool IsDelta1920(G4int pdg) {return pdg==21114||pdg==22114||pdg==22214||pdg==22224;} + G4bool IsDelta1930(G4int pdg) {return pdg==11116||pdg==11216||pdg==12126||pdg==12226;} + G4bool IsDelta1950(G4int pdg) {return pdg==1118||pdg==2118||pdg==2218||pdg==2228;} + + G4bool IsN1440(G4int pdg) {return pdg==12112||pdg==12212;} + G4bool IsN1520(G4int pdg) {return pdg==1214||pdg==2124;} + G4bool IsN1535(G4int pdg) {return pdg==22112||pdg==22212;} + G4bool IsN1650(G4int pdg) {return pdg==32112||pdg==32212;} + G4bool IsN1675(G4int pdg) {return pdg==2116||pdg==2216;} + G4bool IsN1680(G4int pdg) {return pdg==12116||pdg==12216;} + G4bool IsN1700(G4int pdg) {return pdg==22124||pdg==21214;} + G4bool IsN1710(G4int pdg) {return pdg==42212||pdg==42112;} + G4bool IsN1720(G4int pdg) {return pdg==32124||pdg==31214;} + G4bool IsN1900(G4int pdg) {return pdg==42124||pdg==41214;} + G4bool IsN1990(G4int pdg) {return pdg==12218||pdg==12118;} + G4bool IsN2090(G4int pdg) {return pdg==52214||pdg==52114;} + G4bool IsN2190(G4int pdg) {return pdg==2128||pdg==1218;} + G4bool IsN2220(G4int pdg) {return pdg==100002210||pdg==100002110;} + G4bool IsN2250(G4int pdg) {return pdg==100012210||pdg==100012110;} + + G4bool IsL1405(G4int pdg) {return pdg==13122;} + G4bool IsL1520(G4int pdg) {return pdg==3124;} + G4bool IsL1600(G4int pdg) {return pdg==23122;} + G4bool IsL1670(G4int pdg) {return pdg==33122;} + G4bool IsL1690(G4int pdg) {return pdg==13124;} + G4bool IsL1800(G4int pdg) {return pdg==43122;} + G4bool IsL1810(G4int pdg) {return pdg==53122;} + G4bool IsL1820(G4int pdg) {return pdg==3126;} + G4bool IsL1830(G4int pdg) {return pdg==13126;} + G4bool IsL1890(G4int pdg) {return pdg==23124;} + G4bool IsL2100(G4int pdg) {return pdg==3128;} + G4bool IsL2110(G4int pdg) {return pdg==23126;} + + G4bool IsS1192(G4int pdg) {return pdg==3222||pdg==3212||pdg==3112;} + G4bool IsS1385(G4int pdg) {return pdg==3214||pdg==3114||pdg==3224;} + G4bool IsS1660(G4int pdg) {return pdg==13212||pdg==13112||pdg==13222;} + G4bool IsS1670(G4int pdg) {return pdg==13214||pdg==13114||pdg==13224;} + G4bool IsS1750(G4int pdg) {return pdg==23212||pdg==23112||pdg==23222;} + G4bool IsS1775(G4int pdg) {return pdg==3216||pdg==3116||pdg==3226;} + G4bool IsS1915(G4int pdg) {return pdg==13216||pdg==13116||pdg==13226;} + G4bool IsS1940(G4int pdg) {return pdg==23214||pdg==23114||pdg==23224;} + G4bool IsS2030(G4int pdg) {return pdg==3218||pdg==3118||pdg==3228;} + + G4bool IsX1530(G4int pdg) {return pdg==3324||pdg==3314;} + G4bool IsX1690(G4int pdg) {return pdg==23324||pdg==23314;} + G4bool IsX1820(G4int pdg) {return pdg==13324||pdg==13314;} + G4bool IsX1950(G4int pdg) {return pdg==33324||pdg==33314;} + G4bool IsX2030(G4int pdg) {return pdg==13326||pdg==13316;} +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceNames.hh b/source/processes/hadronic/models/generator/scattering/include/G4ResonanceNames.hh new file mode 100644 index 0000000000..942df8f4d2 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ResonanceNames.hh @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4ResonanceNames +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4RESONANCENAMES_HH +#define G4RESONANCENAMES_HH + +#include "globals.hh" +#include "g4std/vector" +#include "g4std/map" + +class G4ParticleDefinition; + +class G4ResonanceNames +{ + +public: + + G4ResonanceNames(); + + ~G4ResonanceNames(); + + G4bool operator==(const G4ResonanceNames& right) const; + G4bool operator!=(const G4ResonanceNames& right) const; + + const G4std::vector NstarNames() const { return nameNstar; } + + const G4std::vector DeltastarNames() const { return nameDeltastar; } + + const G4std::vector DeltaNames() const { return nameDelta; } + + const G4std::vector LambdaNames() const { return nameLambda; } + + const G4std::vector SigmaNames() const { return nameSigma; } + + const G4std::vector XiNames() const { return nameSigma; } + + const G4String ShortName(const G4String& name); + + G4double MinMass(const G4String& name); + +protected: + + +private: + + G4ResonanceNames(const G4ResonanceNames& right); + G4ResonanceNames& operator=(const G4ResonanceNames& right); + + G4std::vector nameNstar; + G4std::vector nameDeltastar; + G4std::vector nameDelta; + G4std::vector nameLambda; + G4std::vector nameSigma; + G4std::vector nameXi; + + // Lowest resonance among each category (N*, Delta, Lambda, Sigma, Xi) + G4std::map > lowResMap; + + // Resonance short names + G4std::map > shortMap; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonancePartialWidth.hh b/source/processes/hadronic/models/generator/scattering/include/G4ResonancePartialWidth.hh new file mode 100644 index 0000000000..06d5893842 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ResonancePartialWidth.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4ResonancePartialWidth +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4RESONANCEPARTIALWIDTH_HH +#define G4RESONANCEPARTIALWIDTH_HH + +#include "globals.hh" +#include "g4std/map" + +class G4PhysicsVector; + +class G4ResonancePartialWidth +{ +public: + + G4ResonancePartialWidth() {}; + + virtual ~G4ResonancePartialWidth() {}; + + // Returned pointer is not owned by the client + virtual G4PhysicsVector* MassDependentWidth(const G4String& name) const = 0; + +protected: + +private: + + G4ResonancePartialWidth(const G4ResonancePartialWidth& right); + G4ResonancePartialWidth& operator=(const G4ResonancePartialWidth& right); +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceWidth.hh b/source/processes/hadronic/models/generator/scattering/include/G4ResonanceWidth.hh new file mode 100644 index 0000000000..86be30741b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4ResonanceWidth.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4ResonanceWidth +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4RESONANCEWIDTH_HH +#define G4RESONANCEWIDTH_HH + +#include "globals.hh" +#include "g4std/map" + +class G4PhysicsVector; + +class G4ResonanceWidth +{ +public: + + G4ResonanceWidth() {}; + + virtual ~G4ResonanceWidth() {}; + + // Returned pointer is owned by the client + virtual G4PhysicsVector* MassDependentWidth(const G4String& name) const = 0; + +protected: + +private: + + G4ResonanceWidth(const G4ResonanceWidth& right); + G4ResonanceWidth& operator=(const G4ResonanceWidth& right); +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4Scatterer.hh b/source/processes/hadronic/models/generator/scattering/include/G4Scatterer.hh new file mode 100644 index 0000000000..1343b4166c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4Scatterer.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: G4Scatterer.hh,v 1.3 2002/12/12 19:17:42 gunter Exp $ // +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4Scatterer.hh +// +// Author: Maria Grazia Pia +// +// Creation date: 1 January 2000 +// +// Modifications: +// +// +// ---------------------------------------------------------------------- + + +#ifndef G4SCATTERER_HH +#define G4SCATTERER_HH + +#include "globals.hh" +#include "g4std/vector" +#include "G4VScatterer.hh" +#include "G4VCollision.hh" +#include "G4KineticTrackVector.hh" +#include "G4CollisionVector.hh" + +class G4KineticTrack; + +class G4Scatterer : public G4VScatterer +{ +public: + + G4Scatterer(); + + virtual ~G4Scatterer(); + + virtual G4double GetTimeToInteraction(const G4KineticTrack& trk1, + const G4KineticTrack& trk2); + + G4double GetCrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2); + + virtual G4KineticTrackVector* Scatter(const G4KineticTrack& trk1, + const G4KineticTrack& trk2); + + +private: + + G4VCollision* FindCollision(const G4KineticTrack& trk1, + const G4KineticTrack& trk2); + + G4CollisionVector collisions; + +}; +#endif + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.hh b/source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.hh new file mode 100644 index 0000000000..f7333bc3fe --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4VAngularDistribution +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 2000 +// +// Modifications: +// +// Abstract class for angular distribution strategy pattern +// +// Id: G4VAngularDistribution.hh,v 1.16 2000/05/11 19:07:29 pia Exp $ // +// +// ------------------------------------------------------------------- + +#ifndef G4VANGULARDISTRIBUTION_HH +#define G4VANGULARDISTRIBUTION_HH + +#include "globals.hh" + +class G4VAngularDistribution +{ + +public: + + // Constructors + G4VAngularDistribution() { } + + virtual ~G4VAngularDistribution() { } + + virtual G4double CosTheta(G4double s, G4double m1, G4double m2) const = 0; + + virtual G4double Phi() const; + + +protected: + +private: + +}; + +#endif + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh b/source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh new file mode 100644 index 0000000000..0f421b6401 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh @@ -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: G4VAnnihilationCollision.hh,v 1.2 2002/12/12 19:17:42 gunter Exp $ // +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4VElasticCollision +// +// Author: Maria Grazia Pia +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4VANNIHILATIONCOLLISION_HH +#define G4VANNIHILATIONCOLLISION_HH + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; + + +class G4VAnnihilationCollision : public G4VCollision +{ + +public: + + G4VAnnihilationCollision(); + + virtual ~G4VAnnihilationCollision(); + + G4bool operator==(const G4VAnnihilationCollision &right) const; + G4bool operator!=(const G4VAnnihilationCollision &right) const; + + virtual G4KineticTrackVector* FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + virtual const G4VAngularDistribution* GetAngularDistribution() const + { + return theAngularDistribution; + } + +protected: + + virtual const G4ParticleDefinition* GetOutgoingParticle(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const = 0; + +private: + + double BrWigInt0(const double x, const double gamma, const double m0) const + { return 2.0*gamma*atan( 2.0 * (x-m0)/ gamma ); } + + G4double BrWigInt1(const G4double x, const G4double gamma, const G4double m0) const + { return 0.5*gamma*gamma*log( (x-m0)*(x-m0)+gamma*gamma/4.0 ) + m0*BrWigInt0(x,gamma,m0); } + + double BrWigInv(const double x, const double gamma, const double m0) const + { return 0.5*gamma*tan( 0.5*x/gamma )+m0; } + + double SampleResonanceMass(const double poleMass, + const double width, + const double minMass, + const double maxMass) const; +private: + + G4VAngularDistribution * theAngularDistribution; + +}; + + + + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh b/source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh new file mode 100644 index 0000000000..8668358cdf --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * 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: G4VCollision.hh,v 1.6 2002/12/12 19:17:42 gunter Exp $ // + +#ifndef G4VCollision_h +#define G4VCollision_h + +#include "globals.hh" +#include "G4CollisionVector.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; + +class G4VCollision +{ +public: + + G4VCollision(); + + virtual ~G4VCollision(); + + G4bool operator==(const G4VCollision &right) const; + G4bool operator!=(const G4VCollision &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + virtual G4KineticTrackVector* FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const = 0; + + virtual G4bool IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const = 0; + + virtual G4String GetName() const = 0; + + virtual void Print() const; + virtual void Print(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; +protected: + + G4int GetNumberOfPartons(G4ParticleDefinition * aP) const + { + G4int result = 0; + for(G4int i=0; i<6; i++) + { + result += aP->GetQuarkContent(i+1); + result += aP->GetAntiQuarkContent(i+1); + } + return result; + } + + virtual const G4CollisionVector* GetComponents() const { return 0;} + + virtual const G4VCrossSectionSource* GetCrossSectionSource() const = 0; + + virtual const G4VAngularDistribution* GetAngularDistribution() const = 0; + + virtual const G4std::vector& GetListOfColliders(G4int whichOne) const = 0; + + +private: + + G4VCollision(const G4VCollision &right); + + const G4VCollision& operator=(const G4VCollision &right); + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionComposite.hh b/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionComposite.hh new file mode 100644 index 0000000000..059ba6ba12 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionComposite.hh @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4CrossSectionComposite +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4CROSSSECTIONCOMPOSITE_HH +#define G4CROSSSECTIONCOMPOSITE_HH + +#include "globals.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4CrossSectionComposite +{ + +public: + + G4CrossSectionComposite(); + + virtual ~G4CrossSectionComposite(); + + G4bool operator==(const G4CrossSectionComposite &right) const; + G4bool operator!=(const G4CrossSectionComposite &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2); + + virtual void Add(G4CrossSectionComposite* component); + + virtual void Remove(G4CrossSectionComposite* component); + +protected: + + G4CrossSectionVector* _components; + + +private: + + // G4CrossSectionComposite(const G4CrossSectionComposite &right); + + // const G4CrossSectionComposite& operator=(const G4CrossSectionComposite &right); + // G4bool operator==(const G4CrossSectionComposite &right) const; + // G4bool operator!=(const G4CrossSectionComposite &right) const; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh b/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh new file mode 100644 index 0000000000..944d3fa1e0 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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 G4VCrossSectionSource_h +#define G4VCrossSectionSource_h + +#include "globals.hh" +#include "G4CrossSectionVector.hh" + +class G4ParticleDefinition; +class G4KineticTrack; + +class G4VCrossSectionSource +{ + +public: + + // Constructors + G4VCrossSectionSource(); + + virtual ~G4VCrossSectionSource(); + + G4bool operator==(const G4VCrossSectionSource &right) const; + G4bool operator!=(const G4VCrossSectionSource &right) const; + // G4bool operator<(const G4VCrossSectionSource &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const = 0; + + virtual const G4CrossSectionVector* GetComponents() const = 0; + + virtual G4String Name() const = 0; + + virtual void Print() const; + virtual void PrintAll(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual G4bool IsValid(G4double e) const; + + virtual G4double HighLimit() const; + virtual G4double LowLimit() const; + +protected: + + G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const; + + // Determine lighter particle + const G4ParticleDefinition* FindLightParticle(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + // Parameterisation + const G4double FcrossX(G4double e, G4double e0, G4double sigma, + G4double eParam, G4double power) const; + + G4String FindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const; + + // Transverse pion mass + const G4double GetTransversePionMass() const; + + // Min string mass + const G4double GetMinStringMass() const; + +private: + + G4VCrossSectionSource(const G4VCrossSectionSource &right); + G4VCrossSectionSource& operator=(const G4VCrossSectionSource &right); + +}; + +#endif + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.hh b/source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.hh new file mode 100644 index 0000000000..44f769a943 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.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: G4VElasticCollision.hh,v 1.3 2002/12/12 19:17:42 gunter Exp $ // + +#ifndef G4VElasticCollision_h +#define G4VElasticCollision_h + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; + +class G4VElasticCollision : public G4VCollision +{ + +public: + + G4VElasticCollision(); + + virtual ~G4VElasticCollision(); + + G4bool operator==(const G4VElasticCollision &right) const; + G4bool operator!=(const G4VElasticCollision &right) const; + + virtual G4KineticTrackVector* FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + +protected: + +private: + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VScatterer.hh b/source/processes/hadronic/models/generator/scattering/include/G4VScatterer.hh new file mode 100644 index 0000000000..abb7b3ccd9 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VScatterer.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: G4VScatterer.hh,v 1.2 2002/12/12 19:17:42 gunter Exp $ // +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4VScatterer.hh +// +// Author: First implementation by an unknown person +// Completely rewritten by Maria Grazia Pia +// +// Creation date: Unknown +// +// Modifications: +// 27-10-99 MGP Removed old Dubna stuff +// +// Class Description: +// +// Abstract base class for the Scatterer +// +// Class Description: End +// +// ------------------------------------------------------------------- + +#ifndef G4VSCATTERER_HH +#define G4VSCATTERER_HH + +#include "globals.hh" +#include "g4std/vector" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; + +class G4VScatterer +{ +public: + + G4VScatterer() {} + + virtual ~G4VScatterer() {} + + virtual G4double GetTimeToInteraction(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) = 0; + + virtual G4KineticTrackVector* Scatter(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) = 0; + +}; + +#endif + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh b/source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh new file mode 100644 index 0000000000..a72decf62a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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: G4VScatteringCollision.hh,v 1.3 2002/12/12 19:17:43 gunter Exp $ // +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4VElasticCollision +// +// Author: Maria Grazia Pia +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4VSCATTERINGCOLLISION_HH +#define G4VSCATTERINGCOLLISION_HH + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4VAngularDistribution.hh" +#include "G4KineticTrackVector.hh" + +class G4KineticTrack; + + +class G4VScatteringCollision : public G4VCollision +{ + +public: + + G4VScatteringCollision(); + + virtual ~G4VScatteringCollision(); + + G4bool operator==(const G4VScatteringCollision &right) const; + G4bool operator!=(const G4VScatteringCollision &right) const; + + virtual G4KineticTrackVector* FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + virtual const G4VAngularDistribution* GetAngularDistribution() const + { + return theAngularDistribution; + } + +protected: + + virtual const G4std::vector & GetOutgoingParticles() const = 0; + +private: + + double BrWigInt0(const double x, const double gamma, const double m0) const + { return 2.0*gamma*atan( 2.0 * (x-m0)/ gamma ); } + + G4double BrWigInt1(const G4double x, const G4double gamma, const G4double m0) const + { return 0.5*gamma*gamma*log( (x-m0)*(x-m0)+gamma*gamma/4.0 ) + m0*BrWigInt0(x,gamma,m0); } + + double BrWigInv(const double x, const double gamma, const double m0) const + { return 0.5*gamma*tan( 0.5*x/gamma )+m0; } + + double SampleResonanceMass(const double poleMass, + const double width, + const double minMass, + const double maxMass) const; +private: + + G4VAngularDistribution * theAngularDistribution; + +}; + + + + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VXResonance.hh b/source/processes/hadronic/models/generator/scattering/include/G4VXResonance.hh new file mode 100644 index 0000000000..90ba5938c1 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VXResonance.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4VXResonance +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// Kinetic Model, resonance cross section class +// +// ------------------------------------------------------------------- + +#ifndef G4VXRESONANCE_HH +#define G4VXRESONANCE_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Clebsch.hh" + +class G4ParticleDefinition; +class G4KineticTrack; +class G4ParticleDefinition; + +class G4VXResonance : public G4VCrossSectionSource +{ + +public: + + G4VXResonance(); + + virtual ~G4VXResonance(); + + G4bool operator==(const G4VXResonance &right) const; + G4bool operator!=(const G4VXResonance &right) const; + + +protected: + + G4VXResonance(const G4VXResonance &right); + G4VXResonance& operator=(const G4VXResonance &right); + + G4double DegeneracyFactor(const G4KineticTrack& trk1, + const G4KineticTrack& trk2, + G4double iSpinOut1, + G4double iSpinOut2) const; + + G4double DetailedBalance(const G4KineticTrack& trk1, + const G4KineticTrack& trk2, + G4int isoOut1, G4int isoOut2, + G4double iSpinOut1, G4double iSpinOut2, + G4double mOut1, G4double mOut2) const; + + G4double IsospinCorrection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2, + G4int isoOut1, G4int isoOut2, + G4double iSpinOut1, G4double iSpinOut2) const; + +private: + + G4Clebsch clebsch; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VXResonanceTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4VXResonanceTable.hh new file mode 100644 index 0000000000..fd62489b32 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4VXResonanceTable.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4VXResonanceTable +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 4 June 1999 +// +// Modifications: +// +// Hadron Kinetic Model +// Base class for cross section tables +// +// ------------------------------------------------------------------- + +#ifndef G4VXRESONANCETABLE_HH +#define G4VXRESONANCETABLE_HH + +#include "globals.hh" +#include "G4PhysicsVector.hh" + +class G4VXResonanceTable +{ + +public: + + G4VXResonanceTable() { } + + virtual ~G4VXResonanceTable() { } + + virtual G4PhysicsVector* CrossSectionTable() const = 0; + + +protected: + +private: + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XAnnihilationChannel.hh b/source/processes/hadronic/models/generator/scattering/include/G4XAnnihilationChannel.hh new file mode 100644 index 0000000000..8710cd7e28 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XAnnihilationChannel.hh @@ -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. * +// ******************************************************************** +// +// + +#ifndef G4XAnnihilationChannel_h +#define G4XAnnihilationChannel_h + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" +#include "G4Clebsch.hh" +#include "G4ResonanceNames.hh" + +#include "g4std/map" + +class G4ParticleDefinition; +class G4PhysicsVector; +class G4KineticTrack; +class G4ResonanceWidth; +class G4ResonancePartialWidth; +class G4PartialWidthTable; + +class G4XAnnihilationChannel : public G4VCrossSectionSource +{ +public: + + G4XAnnihilationChannel(); + + G4XAnnihilationChannel(const G4ParticleDefinition* resDefinition, + const G4ResonanceWidth& resWidths, + const G4ResonancePartialWidth& resPartWidths, + const G4String& partWidthLabel); + + virtual ~G4XAnnihilationChannel(); + + G4bool operator==(const G4XAnnihilationChannel &right) const; + G4bool operator!=(const G4XAnnihilationChannel &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual G4String Name() const; + + +protected: + +private: + + G4XAnnihilationChannel(const G4XAnnihilationChannel &right); + const G4XAnnihilationChannel& operator=(const G4XAnnihilationChannel &right); + + const G4double Branch(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + const G4double VariableWidth(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + const G4double VariablePartialWidth(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + const G4double NormalizedClebsch(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const; + + G4double lowLimit; + G4double highLimit; + + G4Clebsch clebsch; + G4ResonanceNames theNames; + + // Owned pointers + G4PhysicsVector* widthTable; + G4PhysicsVector* partWidthTable; + + // Unowned pointer + const G4ParticleDefinition* resonance; +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XAqmElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4XAqmElastic.hh new file mode 100644 index 0000000000..dd808bb762 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XAqmElastic.hh @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XAqmElastic +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XAQMELASTIC_HH +#define G4XAQMELASTIC_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4XAqmElastic : public G4VCrossSectionSource +{ + +public: + + G4XAqmElastic(); + + virtual ~G4XAqmElastic(); + + G4bool operator==(const G4XAqmElastic &right) const; + G4bool operator!=(const G4XAqmElastic &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual G4String Name() const; + + +protected: + + +private: + + G4XAqmElastic(const G4XAqmElastic &right); + const G4XAqmElastic& operator=(const G4XAqmElastic &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XAqmTotal.hh b/source/processes/hadronic/models/generator/scattering/include/G4XAqmTotal.hh new file mode 100644 index 0000000000..1b7c8f5297 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XAqmTotal.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. * +// ******************************************************************** +// +// + +#ifndef G4XAqmTotal_hh +#define G4XAqmTotal_hh + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4XAqmTotal : public G4VCrossSectionSource +{ + +public: + + G4XAqmTotal(); + + virtual ~G4XAqmTotal(); + + G4bool operator==(const G4XAqmTotal &right) const; + G4bool operator!=(const G4XAqmTotal &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual G4String Name() const; + + +protected: + + +private: + + G4XAqmTotal(const G4XAqmTotal &right); + const G4XAqmTotal& operator=(const G4XAqmTotal &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltaTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltaTable.hh new file mode 100644 index 0000000000..a99de4172f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltaTable.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. * +// ******************************************************************** +// +// p p -> Delta Delta cross section tables +// +// ------------------------------------------------------------------- + +#ifndef G4XDeltaDeltaTable_h +#define G4XDeltaDeltaTable_h + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4PhysicsFreeVector.hh" +#include "G4VXResonanceTable.hh" + + +class G4XDeltaDeltaTable : public G4VXResonanceTable +{ + +public: + + G4XDeltaDeltaTable(); + + ~G4XDeltaDeltaTable(); + + virtual G4PhysicsVector* CrossSectionTable() const; + + G4bool operator==(const G4XDeltaDeltaTable &right) const; + G4bool operator!=(const G4XDeltaDeltaTable &right) const; + + +protected: + + +private: + + G4XDeltaDeltaTable(const G4XDeltaDeltaTable &right); + G4XDeltaDeltaTable& operator=(const G4XDeltaDeltaTable &right); + + static const G4int sizeDeltaDelta; + + // The energies corresponding to the following cross sections + static const G4double energyTable[121]; + + // Cross sections for p p -> N N* + static const G4double sigmaDD1232[121]; + + G4int size; + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltastarTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltastarTable.hh new file mode 100644 index 0000000000..7443fba35c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltastarTable.hh @@ -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. * +// ******************************************************************** +// +// +// +// Hadron Kinetic Model +// p p -> N Delta* cross section tables +// +// ------------------------------------------------------------------- + +#ifndef G4XDeltaDeltastarTable_h +#define G4XDeltaDeltastarTable_h + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4VXResonanceTable.hh" + +#include "g4std/map" + +class G4XDeltaDeltastarTable +{ + +public: + + G4XDeltaDeltastarTable(); + + virtual ~G4XDeltaDeltastarTable(); + + virtual const G4PhysicsVector* CrossSectionTable(const G4String& particleName) const; + + G4bool operator==(const G4XDeltaDeltastarTable &right) const; + G4bool operator!=(const G4XDeltaDeltastarTable &right) const; + + +protected: + + +private: + + G4XDeltaDeltastarTable(const G4XDeltaDeltastarTable &right); + G4XDeltaDeltastarTable& operator=(const G4XDeltaDeltastarTable &right); + + G4std::map > xMap; + + static const G4int sizeDeltaDeltastar; + + // The energies corresponding to the following cross sections + static const G4double energyTable[121]; + + // Cross sections for p p -> N Delta* + static const G4double sigmaDD1600[121]; + static const G4double sigmaDD1620[121]; + static const G4double sigmaDD1700[121]; + static const G4double sigmaDD1900[121]; + static const G4double sigmaDD1905[121]; + static const G4double sigmaDD1910[121]; + static const G4double sigmaDD1920[121]; + static const G4double sigmaDD1930[121]; // 40 is missing... @@@@@@@ + static const G4double sigmaDD1950[121]; + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XDeltaNstarTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4XDeltaNstarTable.hh new file mode 100644 index 0000000000..095f12a930 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XDeltaNstarTable.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. * +// ******************************************************************** +// + +#ifndef G4XDeltaNstarTable_h +#define G4XDeltaNstarTable_h + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4VXResonanceTable.hh" + +#include "g4std/map" + +class G4XDeltaNstarTable +{ + +public: + + G4XDeltaNstarTable(); + + virtual ~G4XDeltaNstarTable(); + + virtual const G4PhysicsVector* CrossSectionTable(const G4String& particleName) const; + + G4bool operator==(const G4XDeltaNstarTable &right) const; + G4bool operator!=(const G4XDeltaNstarTable &right) const; + + +protected: + +private: + + G4XDeltaNstarTable(const G4XDeltaNstarTable &right); + G4XDeltaNstarTable& operator=(const G4XDeltaNstarTable &right); + + G4std::map > xMap; + + static const G4int sizeDeltaNstar; + + // The energies corresponding to the following cross sections + static const G4double energyTable[121]; + + // Cross sections for p p -> N N* + static const G4double sigmaDN1440[121]; + static const G4double sigmaDN1520[121]; + static const G4double sigmaDN1535[121]; + static const G4double sigmaDN1650[121]; + static const G4double sigmaDN1675[121]; + static const G4double sigmaDN1680[121]; + static const G4double sigmaDN1700[121]; + static const G4double sigmaDN1710[121]; + static const G4double sigmaDN1720[121]; + static const G4double sigmaDN1900[121]; + static const G4double sigmaDN1990[121]; + static const G4double sigmaDN2090[121]; + static const G4double sigmaDN2190[121]; + static const G4double sigmaDN2220[121]; + static const G4double sigmaDN2250[121]; + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XMesonBaryonElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4XMesonBaryonElastic.hh new file mode 100644 index 0000000000..d23c6bdd31 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XMesonBaryonElastic.hh @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XMesonBaryonElastic +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XMESONBARYONELASTIC_HH +#define G4XMESONBARYONELASTIC_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4XMesonBaryonElastic : public G4VCrossSectionSource +{ + +public: + + G4XMesonBaryonElastic(); + + virtual ~G4XMesonBaryonElastic(); + + G4bool operator==(const G4XMesonBaryonElastic &right) const; + G4bool operator!=(const G4XMesonBaryonElastic &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual G4String Name() const; + + +protected: + + +private: + + G4XMesonBaryonElastic(const G4XMesonBaryonElastic &right); + const G4XMesonBaryonElastic& operator=(const G4XMesonBaryonElastic &right); + + G4double lowLimit; + G4double highLimit; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNDeltaTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNDeltaTable.hh new file mode 100644 index 0000000000..7185ef967b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNDeltaTable.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. * +// ******************************************************************** +// +// +// +// Hadron Kinetic Model +// p p -> Delta Delta cross section tables +// +// ------------------------------------------------------------------- + +#ifndef G4XNDeltaTable_h +#define G4XNDeltaTable_h + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4PhysicsFreeVector.hh" +#include "G4VXResonanceTable.hh" + + +class G4XNDeltaTable : public G4VXResonanceTable +{ + +public: + + G4XNDeltaTable(); + + ~G4XNDeltaTable(); + + virtual G4PhysicsVector* CrossSectionTable() const; + + G4bool operator==(const G4XNDeltaTable &right) const; + G4bool operator!=(const G4XNDeltaTable &right) const; + + +protected: + + +private: + + G4XNDeltaTable(const G4XNDeltaTable &right); + G4XNDeltaTable& operator=(const G4XNDeltaTable &right); + + // The energies corresponding to the following cross sections + static const G4double energyTable[121]; + + // Cross sections for p p -> N N* + static const G4double sigmaND1232[121]; + + G4int size; + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNDeltastarTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNDeltastarTable.hh new file mode 100644 index 0000000000..4cd97efbc1 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNDeltastarTable.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. * +// ******************************************************************** +// +// +// +// Hadron Kinetic Model +// p p -> N Delta* cross section tables +// +// ------------------------------------------------------------------- + +#ifndef G4XNDELTASTARTABLE_HH +#define G4XNDELTASTARTABLE_HH + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4VXResonanceTable.hh" + +#include "g4std/map" + +class G4XNDeltastarTable +{ + +public: + + // Constructor + G4XNDeltastarTable(); + + // Destructor + virtual ~G4XNDeltastarTable(); + + // Cross section table + virtual const G4PhysicsVector* CrossSectionTable(const G4String& particleName) const; + + G4bool operator==(const G4XNDeltastarTable &right) const; + G4bool operator!=(const G4XNDeltastarTable &right) const; + + +protected: + + +private: + + G4XNDeltastarTable(const G4XNDeltastarTable &right); + G4XNDeltastarTable& operator=(const G4XNDeltastarTable &right); + + G4std::map > xMap; + + static const G4int sizeNDeltastar; + + // The energies corresponding to the following cross sections + static const G4double energyTable[121]; + + // Cross sections for p p -> N Delta* + static const G4double sigmaND1600[121]; + static const G4double sigmaND1620[121]; + static const G4double sigmaND1700[121]; + static const G4double sigmaND1900[121]; + static const G4double sigmaND1905[121]; + static const G4double sigmaND1910[121]; + static const G4double sigmaND1920[121]; + static const G4double sigmaND1930[121]; // 40 is missing... @@@@@@@ + static const G4double sigmaND1950[121]; + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNNElastic.hh new file mode 100644 index 0000000000..1cbd5d061c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNNElastic.hh @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XNNElastic +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XNNELASTIC_HH +#define G4XNNELASTIC_HH + +#include "globals.hh" +#include "G4CrossSectionPatch.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4XNNElastic : public G4CrossSectionPatch +{ + +public: + + G4XNNElastic(); + + virtual ~G4XNNElastic(); + + G4bool operator==(const G4XNNElastic &right) const; + G4bool operator!=(const G4XNNElastic &right) const; + + virtual const G4CrossSectionVector* GetComponents() const { return components; } + + virtual G4String Name() const; + + +protected: + + +private: + + G4XNNElastic(const G4XNNElastic &right); + const G4XNNElastic& operator=(const G4XNNElastic &right); + + G4CrossSectionVector* components; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNElasticLowE.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNNElasticLowE.hh new file mode 100644 index 0000000000..83a550b52a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNNElasticLowE.hh @@ -0,0 +1,127 @@ +// +// ******************************************************************** +// * 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 G4XNNElasticLowE_h +#define G4XNNElasticLowE_h + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" +#include "G4PhysicsVector.hh" +#include "g4std/map" + +class G4KineticTrack; + +class G4XNNElasticLowE : public G4VCrossSectionSource +{ + +public: + + G4XNNElasticLowE(); + + virtual ~G4XNNElasticLowE(); + + G4bool operator==(const G4XNNElasticLowE &right) const; + G4bool operator!=(const G4XNNElasticLowE &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual G4String Name() const; + + virtual void Print() const; + + virtual G4double HighLimit() const { return _highLimit; } + + +protected: + + +private: + + G4XNNElasticLowE(const G4XNNElasticLowE &right); + const G4XNNElasticLowE& operator=(const G4XNNElasticLowE &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + static const G4double ppTable[101]; + static const G4double npTable[101]; + static const G4int tableSize; + static const G4double _eMinTable; + static const G4double _eStepLog; + + G4std::map > xMap; + + G4double _eMin; + G4double _eMax; + +}; + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNNTotal.hh similarity index 70% rename from examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh rename to source/processes/hadronic/models/generator/scattering/include/G4XNNTotal.hh index 35c5cfd693..dbb61efe10 100644 --- a/examples/extended/biasing/B08/include/B08ImportanceDetectorConstruction.hh +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNNTotal.hh @@ -21,33 +21,58 @@ // ******************************************************************** // // -// $Id: B08ImportanceDetectorConstruction.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#ifndef B08ImportanceDetectorConstruction_hh -#define B08ImportanceDetectorConstruction_hh B08ImportanceDetectorConstruction_hh +#ifndef G4XNNTotal_h +#define G4XNNTotal_h #include "globals.hh" +#include "G4CrossSectionPatch.hh" +#include "G4CrossSectionVector.hh" -class G4VPhysicalVolume; -class G4VIStore; +class G4KineticTrack; -class B08ImportanceDetectorConstruction +class G4XNNTotal : public G4CrossSectionPatch { + public: - B08ImportanceDetectorConstruction(); - ~B08ImportanceDetectorConstruction(); - G4VIStore* GetIStore(); - G4VPhysicalVolume *GetWorldVolume(); + G4XNNTotal(); -private: - void Construct(); - G4VIStore *fnIStore; - G4VPhysicalVolume *fWorldVolume; + virtual ~G4XNNTotal(); + + G4bool operator==(const G4XNNTotal &right) const; + G4bool operator!=(const G4XNNTotal &right) const; + virtual const G4CrossSectionVector* GetComponents() const { return components; } + + virtual G4String Name() const; + + +protected: + + +private: + + G4XNNTotal(const G4XNNTotal &right); + const G4XNNTotal& operator=(const G4XNNTotal &right); + + G4CrossSectionVector* components; - }; #endif + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNTotalLowE.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNNTotalLowE.hh new file mode 100644 index 0000000000..7eee23a626 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNNTotalLowE.hh @@ -0,0 +1,113 @@ +// +// ******************************************************************** +// * 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 G4XNNTotalLowE_h +#define G4XNNTotalLowE_h + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" +#include "G4LowEXsection.hh" +#include "g4std/map" + +class G4KineticTrack; + +class G4XNNTotalLowE : public G4VCrossSectionSource +{ + +public: + + G4XNNTotalLowE(); + + virtual ~G4XNNTotalLowE(); + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + virtual G4bool IsValid(G4double e) const; + + virtual G4String Name() const; + virtual G4double HighLimit() const { return 3.*GeV; } + + +protected: + + +private: + + G4XNNTotalLowE(const G4XNNTotalLowE &right); + const G4XNNTotalLowE& operator=(const G4XNNTotalLowE &right); + + static const G4double ppTot[29]; + static const G4double ss[29]; + static const G4double npTot[29]; + static const G4int tableSize; + + G4std::map > theCrossSections; + typedef G4std::map > LowEMap; + +}; + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNstarTable.hh b/source/processes/hadronic/models/generator/scattering/include/G4XNNstarTable.hh new file mode 100644 index 0000000000..e248fefb91 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XNNstarTable.hh @@ -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. * +// ******************************************************************** +// + +#ifndef G4XNNstarTable_h +#define G4XNNstarTable_h + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4VXResonanceTable.hh" + +#include "g4std/map" + +class G4XNNstarTable +{ + +public: + + // Constructor + G4XNNstarTable(); + + // Destructor + virtual ~G4XNNstarTable(); + + // Cross section table + virtual const G4PhysicsVector* CrossSectionTable(const G4String& particleName) const; + + // Operators + G4bool operator==(const G4XNNstarTable &right) const; + G4bool operator!=(const G4XNNstarTable &right) const; + + +protected: + + +private: + + G4XNNstarTable(const G4XNNstarTable &right); + G4XNNstarTable& operator=(const G4XNNstarTable &right); + + G4std::map > xMap; + + static const G4int sizeNNstar; + + // The energies corresponding to the following cross sections + static const G4double energyTable[121]; + + // Cross sections for p p -> N N* + static const G4double sigmaNN1440[121]; + static const G4double sigmaNN1520[121]; + static const G4double sigmaNN1535[121]; + static const G4double sigmaNN1650[121]; + static const G4double sigmaNN1675[121]; + static const G4double sigmaNN1680[121]; + static const G4double sigmaNN1700[121]; + static const G4double sigmaNN1710[121]; + static const G4double sigmaNN1720[121]; + static const G4double sigmaNN1900[121]; + static const G4double sigmaNN1990[121]; + static const G4double sigmaNN2090[121]; + static const G4double sigmaNN2190[121]; + static const G4double sigmaNN2220[121]; + static const G4double sigmaNN2250[121]; + +}; + +#endif + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.hh new file mode 100644 index 0000000000..56aeb041f8 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.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: G4XPDGElastic.hh,v 1.2 2002/12/12 19:17:44 gunter Exp $ // +// --------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XPDGElastic +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XPDGELASTIC_HH +#define G4XPDGELASTIC_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "g4std/algorithm" +#include "g4std/map" + +typedef G4std::pair G4StringPair; + +class G4KineticTrack; +class G4ParticleDefinition; + +class G4XPDGElastic : public G4VCrossSectionSource +{ + +public: + + G4XPDGElastic(); + + virtual ~G4XPDGElastic(); + + G4bool operator==(const G4XPDGElastic &right) const; + G4bool operator!=(const G4XPDGElastic &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4String Name() const; + + virtual G4bool IsValid(G4double e) const; + + virtual G4double LowLimit() const { return _lowLimit; } + + +protected: + + +private: + + G4XPDGElastic(const G4XPDGElastic &right); + const G4XPDGElastic& operator=(const G4XPDGElastic &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + + static const G4int nPar; + static const G4double pPiPlusPDGFit[7]; + static const G4double pPiMinusPDGFit[7]; + static const G4double pKPlusPDGFit[7]; + static const G4double pKMinusPDGFit[7]; + static const G4double ppPDGFit[7]; + static const G4double ppbarPDGFit[7]; + static const G4double npbarPDGFit[7]; + + G4std::map , G4std::less > xMap; + + typedef G4std::map , G4std::less > PairDoubleMap; + + // G4double pMinFit; + // G4double pMaxFit; + // G4double aFit; + // G4double bFit; + // G4double nFit; + // G4double cFit; + // G4double dFit; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XPDGTotal.hh b/source/processes/hadronic/models/generator/scattering/include/G4XPDGTotal.hh new file mode 100644 index 0000000000..d663d4cbec --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XPDGTotal.hh @@ -0,0 +1,107 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XPDGTotal +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XPDGTOTAL_HH +#define G4XPDGTOTAL_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "g4std/algorithm" +#include "g4std/map" +#include "g4std/vector" + +typedef G4std::pair G4StringPair; + +class G4KineticTrack; +class G4ParticleDefinition; + +class G4XPDGTotal : public G4VCrossSectionSource +{ + +public: + + G4XPDGTotal(); + + virtual ~G4XPDGTotal(); + + G4bool operator==(const G4XPDGTotal &right) const; + G4bool operator!=(const G4XPDGTotal &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4String Name() const; + + virtual G4bool IsValid(G4double e) const; + + virtual G4double LowLimit() const { return _lowLimit; } + + +protected: + +private: + + G4double PDGTotal(G4double coeff, G4double ecm) const; + + G4XPDGTotal(const G4XPDGTotal &right); + const G4XPDGTotal& operator=(const G4XPDGTotal &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + + static const G4int nFit; + static const G4double ppPDGFit[5]; + static const G4double npPDGFit[5]; + static const G4double pipPDGFit[5]; + static const G4double KpPDGFit[5]; + static const G4double KnPDGFit[5]; + static const G4double gammapPDGFit[5]; + static const G4double gammagammaPDGFit[5]; + + G4std::map , G4std::less > xMap; + typedef G4std::map , G4std::less > PairDoubleMap; + + // G4double eMinFit; + // G4double eMaxFit; + // G4double xFit; + // G4double y1Fit; + // G4double y2Fit; + +}; + +#endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XResonance.hh b/source/processes/hadronic/models/generator/scattering/include/G4XResonance.hh new file mode 100644 index 0000000000..ea2d5dd22a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XResonance.hh @@ -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. * +// ******************************************************************** +// + +#ifndef G4XRESONANCE_HH +#define G4XRESONANCE_HH + +#include "globals.hh" +#include "G4PhysicsVector.hh" +#include "G4VCrossSectionSource.hh" +#include "G4ParticleDefinition.hh" +#include "G4VXResonanceTable.hh" +#include "G4VXResonance.hh" + +class G4KineticTrack; + +class G4XResonance : public G4VXResonance + +{ + +public: + + G4XResonance(const G4ParticleDefinition* in1, + const G4ParticleDefinition* in2, + G4int iIsospinOut1, G4double iSpinOut1, G4double massOut1, + G4int iIsospinOut2, G4double iSpinOut2, G4double massOut2, + G4String subType1, G4String subType2, + const G4VXResonanceTable& sigmaTable); + + virtual ~G4XResonance(); + + G4bool operator==(const G4XResonance &right) const; + G4bool operator!=(const G4XResonance &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4String Name() const; + + +protected: + + +private: + + G4XResonance(const G4XResonance &right); + G4XResonance& operator=(const G4XResonance &right); + + G4int isoOut1; + G4double iSpinOut1; + G4double mOut1; + + G4int isoOut2; + G4double iSpinOut2; + G4double mOut2; + + // Owned pointer + G4PhysicsVector* table; + + G4String name; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpElastic.hh b/source/processes/hadronic/models/generator/scattering/include/G4XnpElastic.hh new file mode 100644 index 0000000000..fd994e223c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XnpElastic.hh @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XNNTotal +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XNPELASTIC_HH +#define G4XNPELASTIC_HH + +#include "globals.hh" +#include "G4CrossSectionPatch.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4XnpElastic : public G4CrossSectionPatch +{ + +public: + + G4XnpElastic(); + + virtual ~G4XnpElastic(); + + G4bool operator==(const G4XnpElastic &right) const; + G4bool operator!=(const G4XnpElastic &right) const; + + virtual const G4CrossSectionVector* GetComponents() const { return components; } + + virtual G4String Name() const; + + +protected: + + +private: + + G4XnpElastic(const G4XnpElastic &right); + const G4XnpElastic& operator=(const G4XnpElastic &right); + + G4CrossSectionVector* components; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpElasticLowE.hh b/source/processes/hadronic/models/generator/scattering/include/G4XnpElasticLowE.hh new file mode 100644 index 0000000000..41bc461bde --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XnpElasticLowE.hh @@ -0,0 +1,137 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XnpElasticLowE +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XNPELASTICLOWE_HH +#define G4XNPELASTICLOWE_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" +#include "G4PhysicsVector.hh" + +class G4KineticTrack; + +class G4XnpElasticLowE : public G4VCrossSectionSource +{ + +public: + + G4XnpElasticLowE(); + + virtual ~G4XnpElasticLowE(); + + G4bool operator==(const G4XnpElasticLowE &right) const; + G4bool operator!=(const G4XnpElasticLowE &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual void Print() const; + + virtual G4String Name() const; + + virtual G4double HighLimit() const { return _highLimit; } + + +protected: + + +private: + + G4XnpElasticLowE(const G4XnpElasticLowE &right); + const G4XnpElasticLowE& operator=(const G4XnpElasticLowE &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + static const G4double _sigmaTable[101]; + static const G4int _tableSize; + static const G4double _eMinTable; + static const G4double _eStepLog; + + G4PhysicsVector* _sigma; + G4double _eMin; + G4double _eMax; + +}; + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpTotal.hh b/source/processes/hadronic/models/generator/scattering/include/G4XnpTotal.hh new file mode 100644 index 0000000000..8daa1414e9 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XnpTotal.hh @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XnpTotal +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XNPTOTAL_HH +#define G4XNPTOTAL_HH + +#include "globals.hh" +#include "G4CrossSectionPatch.hh" +#include "G4CrossSectionVector.hh" + +class G4KineticTrack; + +class G4XnpTotal : public G4CrossSectionPatch +{ + +public: + + G4XnpTotal(); + + virtual ~G4XnpTotal(); + + G4bool operator==(const G4XnpTotal &right) const; + G4bool operator!=(const G4XnpTotal &right) const; + + virtual const G4CrossSectionVector* GetComponents() const { return components; } + + virtual G4String Name() const; + + +protected: + + +private: + + G4XnpTotal(const G4XnpTotal &right); + const G4XnpTotal& operator=(const G4XnpTotal &right); + + G4CrossSectionVector* components; + +}; + +#endif + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpTotalLowE.hh b/source/processes/hadronic/models/generator/scattering/include/G4XnpTotalLowE.hh new file mode 100644 index 0000000000..705ecef715 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XnpTotalLowE.hh @@ -0,0 +1,137 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XnpTotalLowE +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#ifndef G4XNPTOTALLOWE_HH +#define G4XNPTOTALLOWE_HH + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionVector.hh" +#include "G4PhysicsVector.hh" + +class G4KineticTrack; + +class G4XnpTotalLowE : public G4VCrossSectionSource +{ + +public: + + G4XnpTotalLowE(); + + virtual ~G4XnpTotalLowE(); + + G4bool operator==(const G4XnpTotalLowE &right) const; + G4bool operator!=(const G4XnpTotalLowE &right) const; + + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + + virtual const G4CrossSectionVector* GetComponents() const {return 0; } + + virtual G4bool IsValid(G4double e) const; + + virtual void Print() const; + + virtual G4String Name() const; + + virtual G4double HighLimit() const { return _highLimit; } + + +protected: + + +private: + + G4XnpTotalLowE(const G4XnpTotalLowE &right); + const G4XnpTotalLowE& operator=(const G4XnpTotalLowE &right); + + static const G4double _lowLimit; + static const G4double _highLimit; + static const G4double _sigmaTable[101]; + static const G4int _tableSize; + static const G4double _eMinTable; + static const G4double _eStepLog; + + G4PhysicsVector* _sigma; + G4double _eMin; + G4double _eMax; + +}; + +#endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/extended/biasing/B02/include/B02Scorer.hh b/source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh similarity index 71% rename from examples/extended/biasing/B02/include/B02Scorer.hh rename to source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh index de5f7f7890..469ec14c5b 100644 --- a/examples/extended/biasing/B02/include/B02Scorer.hh +++ b/source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh @@ -19,35 +19,25 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B02Scorer.hh,v 1.3 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#ifndef G4XpimNTotal_h +#define G4XpimNTotal_h -#ifndef B02scorer_hh -#define B02scorer_hh B02scorer_hh +#include "G4XPDGTotal.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4Pair.hh" +#include "g4std/vector" -#include "g4std/iostream" - -#include "G4VPScorer.hh" -#include "G4PMapPtkTallys.hh" - -class G4Step; -class G4PStep; - -class B02Scorer : public G4VPScorer +class G4XpimNTotal : public G4VCrossSectionSource { public: - B02Scorer(); - ~B02Scorer(); - void Score(const G4Step &aStep, const G4PStep &aPStep); - const G4PMapPtkTallys &GetMapPtkTallys() const { return fPtkTallys; } - + G4XpimNTotal(); + virtual ~G4XpimNTotal() {} + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + virtual G4String Name() const {return "G4XpimNTotal";} private: - G4PMapPtkTallys fPtkTallys; + G4XPDGTotal thePDGData; + G4std::vector > theLowEData; }; - -G4std::ostream& operator<<(G4std::ostream &out, const B02Scorer &ps); - #endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh b/source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh new file mode 100644 index 0000000000..181a3c0d25 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * 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 G4XpipNTotal_h +#define G4XpipNTotal_h + +#include "G4XPDGTotal.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4Pair.hh" +#include "g4std/vector" + +class G4XpipNTotal : public G4VCrossSectionSource +{ +public: + G4XpipNTotal(); + virtual ~G4XpipNTotal() {} + virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; + virtual const G4CrossSectionVector* GetComponents() const { return 0; } + virtual G4String Name() const {return "G4XpipNTotal";} +private: + G4XPDGTotal thePDGData; + G4std::vector > theLowEData; +}; +#endif diff --git a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc b/source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc new file mode 100644 index 0000000000..c222f42f3c --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc @@ -0,0 +1,342 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// hpw: done, but low quality at present. + +#include "globals.hh" +#include "G4AngularDistribution.hh" +#include "Randomize.hh" +#include "PhysicalConstants.h" + +G4AngularDistribution::G4AngularDistribution(G4bool symmetrize) + : sym(symmetrize) +{ + // The following are parameters of the model - not to be confused with the PDG values! + + mSigma = 0.55; + cmSigma = 1.20; + gSigma = 9.4; + + mOmega = 0.783; + cmOmega = 0.808; + gOmega = 10.95; + + mPion = 0.138; + cmPion = 0.51; + gPion = 7.27; + + mNucleon = 0.938; + + // Definition of constants for pion-Term (no s-dependence) + + m42 = 4. * mNucleon * mNucleon; + mPion2 = mPion * mPion; + cmPion2 = cmPion * cmPion; + dPion1 = cmPion2-mPion2; + dPion2 = dPion1 * dPion1; + cm6gp = 1.5 * (cmPion2*cmPion2*cmPion2) * (gPion*gPion*gPion*gPion) * m42 * m42 / dPion2; + + cPion_3 = -(cm6gp/3.); + cPion_2 = -(cm6gp * mPion2/dPion1); + cPion_1 = -(cm6gp * mPion2 * (2. * cmPion2 + mPion2) / dPion2); + cPion_m = -(cm6gp * cmPion2 * mPion2 / dPion2); + cPion_L = -(cm6gp * 2. * cmPion2 * mPion2 * (cmPion2 + mPion2) / dPion2 / dPion1); + cPion_0 = -(cPion_3 + cPion_2 + cPion_1 + cPion_m); + + // Definition of constants for sigma-Term (no s-dependence) + + G4double gSigmaSq = gSigma * gSigma; + + mSigma2 = mSigma * mSigma; + cmSigma2 = cmSigma * cmSigma; + cmSigma4 = cmSigma2 * cmSigma2; + cmSigma6 = cmSigma2 * cmSigma4; + dSigma1 = m42 - cmSigma2; + dSigma2 = m42 - mSigma2; + dSigma3 = cmSigma2 - mSigma2; + + G4double dSigma1Sq = dSigma1 * dSigma1; + G4double dSigma2Sq = dSigma2 * dSigma2; + G4double dSigma3Sq = dSigma3 * dSigma3; + + cm2gs = 0.5 * cmSigma2 * gSigmaSq*gSigmaSq / dSigma3Sq; + + + cSigma_3 = -(cm2gs * dSigma1Sq / 3.); + cSigma_2 = -(cm2gs * cmSigma2 * dSigma1 * dSigma2 / dSigma3); + cSigma_1 = -(cm2gs * cmSigma4 * (2. * dSigma1 + dSigma2) * dSigma2 / dSigma3Sq); + cSigma_m = -(cm2gs * cmSigma6 * dSigma2Sq / mSigma2 / dSigma3Sq); + cSigma_L = -(cm2gs * cmSigma6 * dSigma2 * (dSigma1 + dSigma2) * 2. / (dSigma3 * dSigma3Sq)); + cSigma_0 = -(cSigma_3 + cSigma_2 + cSigma_1 + cSigma_m); + + // Definition of constants for omega-Term + + G4double gOmegaSq = gOmega * gOmega; + + mOmega2 = mOmega * mOmega; + cmOmega2 = cmOmega * cmOmega; + cmOmega4 = cmOmega2 * cmOmega2; + cmOmega6 = cmOmega2 * cmOmega4; + dOmega1 = m42 - cmOmega2; + dOmega2 = m42 - mOmega2; + dOmega3 = cmOmega2 - mOmega2; + sOmega1 = cmOmega2 + mOmega2; + + G4double dOmega3Sq = dOmega3 * dOmega3; + + cm2go = 0.5 * cmOmega2 * gOmegaSq * gOmegaSq / dOmega3Sq; + + cOmega_3 = cm2go / 3.; + cOmega_2 = -(cm2go * cmOmega2 / dOmega3); + cOmega_1 = cm2go * cmOmega4 / dOmega3Sq; + cOmega_m = cm2go * cmOmega6 / (dOmega3Sq * mOmega2); + cOmega_L = -(cm2go * cmOmega6 * 4. / (dOmega3 * dOmega3Sq)); + + // Definition of constants for mix-Term + + G4double fac1Tmp = (gSigma * gOmega * cmSigma2 * cmOmega2); + fac1 = -(fac1Tmp * fac1Tmp * m42); + dMix1 = cmOmega2 - cmSigma2; + dMix2 = cmOmega2 - mSigma2; + dMix3 = cmSigma2 - mOmega2; + + G4double dMix1Sq = dMix1 * dMix1; + G4double dMix2Sq = dMix2 * dMix2; + G4double dMix3Sq = dMix3 * dMix3; + + cMix_o1 = fac1 / (cmOmega2 * dMix1Sq * dMix2 * dOmega3); + cMix_s1 = fac1 / (cmSigma2 * dMix1Sq * dMix3 * dSigma3); + cMix_Omega = fac1 / (dOmega3Sq * dMix3Sq * (mOmega2 - mSigma2)); + cMix_sm = fac1 / (dSigma3Sq * dMix2Sq * (mSigma2 - mOmega2)); + fac2 = (-fac1) / (dMix1*dMix1Sq * dOmega3Sq * dMix2Sq); + fac3 = (-fac1) / (dMix1*dMix1Sq * dSigma3Sq * dMix3Sq); + + cMix_oLc = fac2 * (3. * cmOmega2*cmOmega4 - cmOmega4 * cmSigma2 + - 2. * cmOmega4 * mOmega2 - 2. * cmOmega4 * mSigma2 + + cmOmega2 * mOmega2 * mSigma2 + cmSigma2 * mOmega2 * mSigma2 + - 4. * cmOmega4 * m42 + 2. * cmOmega2 * cmSigma2 * m42 + + 3. * cmOmega2 * mOmega2 * m42 - cmSigma2 * mOmega2 * m42 + + 3. * cmOmega2 * mSigma2 * m42 - cmSigma2 * mSigma2 * m42 + - 2. * mOmega2 * mSigma2 * m42); + + cMix_oLs = fac2 * (8. * cmOmega4 - 4. * cmOmega2 * cmSigma2 + - 6. * cmOmega2 * mOmega2 + 2. * cmSigma2 * mOmega2 + - 6. * cmOmega2 * mSigma2 + 2. * cmSigma2 * mSigma2 + + 4. * mOmega2 * mSigma2); + + cMix_sLc = fac3 * (cmOmega2 * cmSigma4 - 3. * cmSigma6 + + 2. * cmSigma4 * mOmega2 + 2. * cmSigma4 * mSigma2 + - cmOmega2 * mOmega2 * mSigma2 - cmSigma2 * mOmega2 * mSigma2 + - 2. * cmOmega2 * cmSigma2 * m42 + 4. * cmSigma4 * m42 + + cmOmega2 * mOmega2 * m42 - 3. * cmSigma2 * mOmega2 * m42 + + cmOmega2 * mSigma2 * m42 - 3. * cmSigma2 * mSigma2 * m42 + + 2. * mOmega2 * mSigma2 * m42); + + cMix_sLs = fac3 * (4. * cmOmega2 * cmSigma2 - 8. * cmSigma4 + - 2. * cmOmega2 * mOmega2 + 6. * cmSigma2 * mOmega2 + - 2. * cmOmega2 * mSigma2 + 6. * cmSigma2 * mSigma2 + - 4. * mOmega2 * mSigma2); +} + + +G4AngularDistribution::~ +G4AngularDistribution() +{ } + + +G4double G4AngularDistribution::CosTheta(G4double s, G4double m1, G4double m2) const +{ + G4double random = G4UniformRand(); + G4double dCosTheta = 2.; + G4double cosTheta = -1.; + + // For jmax=12 the accuracy is better than 0.1 degree + G4int jMax = 12; + + for (G4int j = 1; j <= jMax; ++j) + { + // Accuracy is 2^-jmax + dCosTheta *= 0.5; + G4double cosTh = cosTheta + dCosTheta; + if(DifferentialCrossSection(s, m1, m2, cosTh) <= random) cosTheta = cosTh; + } + + // Randomize in final interval in order to avoid discrete angles + cosTheta += G4UniformRand() * dCosTheta; + + + if (cosTheta > 1. || cosTheta < -1.) + G4Exception("G4AngularDistribution::CosTheta - cos(theta) outside allowed range"); + + return cosTheta; +} + + +G4double G4AngularDistribution::DifferentialCrossSection(G4double sIn, G4double m1, G4double m2, + G4double cosTheta) const +{ +// local calculus is in GeV, ie. normalize input + sIn = sIn/sqr(GeV)+m42/2.; + m1 = m1/GeV; + m2 = m2/GeV; +// G4cout << "Here we go"< 1); + // G4int j; + //abs(ek-elab[je1]) < abs(ek-elab[je2]) ? j = je1 : j = je2; + G4double delab = elab[je2] - elab[je1]; + + // Sample the angle + + G4float sample = G4UniformRand(); + G4int ke1 = 0; + G4int ke2 = NANGLE - 1; + G4double dsig = sig[je2][0] - sig[je1][0]; + G4double rc = dsig/delab; + G4double b = sig[je1][0] - rc*elab[je1]; + G4double sigint1 = rc*ek + b; + G4double sigint2 = 0.; + + if (verboseLevel > 1) G4cout << "sample=" << sample << G4endl + << ek << " " << ke1 << " " << ke2 << " " + << sigint1 << " " << sigint2 << G4endl; + + do { + G4int midBin = (ke1 + ke2)/2; + dsig = sig[je2][midBin] - sig[je1][midBin]; + rc = dsig/delab; + b = sig[je1][midBin] - rc*elab[je1]; + G4double sigint = rc*ek + b; + if (sample < sigint) { + ke2 = midBin; + sigint2 = sigint; + } + else { + ke1 = midBin; + sigint1 = sigint; + } + if (verboseLevel > 1)G4cout << ke1 << " " << ke2 << " " + << sigint1 << " " << sigint2 << G4endl; + } while (ke2 - ke1 > 1); + + // sigint1 and sigint2 should be recoverable from above loop + + // G4double dsig = sig[je2][ke1] - sig[je1][ke1]; + // G4double rc = dsig/delab; + // G4double b = sig[je1][ke1] - rc*elab[je1]; + // G4double sigint1 = rc*ek + b; + + // G4double dsig = sig[je2][ke2] - sig[je1][ke2]; + // G4double rc = dsig/delab; + // G4double b = sig[je1][ke2] - rc*elab[je1]; + // G4double sigint2 = rc*ek + b; + + dsig = sigint2 - sigint1; + rc = 1./dsig; + b = ke1 - rc*sigint1; + G4double kint = rc*sample + b; + G4double theta = (0.5 + kint)*pi/180.; + + // G4int k; + //abs(sample-sig[j][ke1]) < abs(sample-sig[j][ke2]) ? k = ke1 : k = ke2; + // G4double theta = (0.5 + k)*pi/180.; + + if (verboseLevel > 1) { + G4cout << " energy bin " << je1 << " energy=" << elab[je1] << G4endl; + G4cout << " angle bin " << kint << " angle=" << theta/degree << G4endl; + } + G4double costh= cos(theta); + return costh; +} + +G4double G4AngularDistributionNP::Phi() const +{ + return twopi * G4UniformRand(); +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.cc b/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.cc new file mode 100644 index 0000000000..44ed9e7cdb --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.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. * +// ******************************************************************** +#include "G4AngularDistributionPP.hh" +#include "Randomize.hh" +#include "G4ios.hh" + +// Initialization of static data arrays: +#include "G4AngularDistributionPPData.hh" +#include "Randomize.hh" + + +G4double G4AngularDistributionPP::CosTheta(G4double s, G4double m1, G4double m2) const +{ + G4int verboseLevel=1; + + G4double ek= ((s - sqr(m1) -sqr(m2) )/(2*m1) - m1 )/GeV ; // kinetic energy in GeV + + // Find energy bin + + G4int je1 = 0; + G4int je2 = NENERGY - 1; + do { + G4int midBin = (je1 + je2)/2; + if (ek < elab[midBin]) + je2 = midBin; + else + je1 = midBin; + } while (je2 - je1 > 1); + // G4int j; + //abs(ek-elab[je1]) < abs(ek-elab[je2]) ? j = je1 : j = je2; + G4double delab = elab[je2] - elab[je1]; + + // Sample the angle + + G4float sample = G4UniformRand(); + G4int ke1 = 0; + G4int ke2 = NANGLE - 1; + G4double dsig = sig[je2][0] - sig[je1][0]; + G4double rc = dsig/delab; + G4double b = sig[je1][0] - rc*elab[je1]; + G4double sigint1 = rc*ek + b; + G4double sigint2 = 0.; + + if (verboseLevel > 1) G4cout << "sample=" << sample << G4endl + << ek << " " << ke1 << " " << ke2 << " " + << sigint1 << " " << sigint2 << G4endl; + + do { + G4int midBin = (ke1 + ke2)/2; + dsig = sig[je2][midBin] - sig[je1][midBin]; + rc = dsig/delab; + b = sig[je1][midBin] - rc*elab[je1]; + G4double sigint = rc*ek + b; + if (sample < sigint) { + ke2 = midBin; + sigint2 = sigint; + } + else { + ke1 = midBin; + sigint1 = sigint; + } + if (verboseLevel > 1)G4cout << ke1 << " " << ke2 << " " + << sigint1 << " " << sigint2 << G4endl; + } while (ke2 - ke1 > 1); + + // sigint1 and sigint2 should be recoverable from above loop + + // G4double dsig = sig[je2][ke1] - sig[je1][ke1]; + // G4double rc = dsig/delab; + // G4double b = sig[je1][ke1] - rc*elab[je1]; + // G4double sigint1 = rc*ek + b; + + // G4double dsig = sig[je2][ke2] - sig[je1][ke2]; + // G4double rc = dsig/delab; + // G4double b = sig[je1][ke2] - rc*elab[je1]; + // G4double sigint2 = rc*ek + b; + + dsig = sigint2 - sigint1; + rc = 1./dsig; + b = ke1 - rc*sigint1; + G4double kint = rc*sample + b; + G4double theta = (0.5 + kint)*pi/180.; + + // G4int k; + //abs(sample-sig[j][ke1]) < abs(sample-sig[j][ke2]) ? k = ke1 : k = ke2; + // G4double theta = (0.5 + k)*pi/180.; + + if (verboseLevel > 1) { + G4cout << " energy bin " << je1 << " energy=" << elab[je1] << G4endl; + G4cout << " angle bin " << kint << " angle=" << theta/degree << G4endl; + } + G4double costh= cos(theta); +// G4cout << "scattering angle hpw "< >::const_iterator iter; + + if ((iter=wMap.find(name)) != wMap.end()) + { + // Cross section table for the requested particle available in the Map + G4PhysicsFreeVector* wVector = new G4PhysicsFreeVector(wSize); + G4String key = name; + G4double* wPointer = (*iter).second; + + // G4double* wPointer = wMap[key]; + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return wVector; + } + else + { + return 0; + } +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4BaryonWidth.cc b/source/processes/hadronic/models/generator/scattering/src/G4BaryonWidth.cc new file mode 100644 index 0000000000..5d5dc41e61 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4BaryonWidth.cc @@ -0,0 +1,362 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4BaryonWidth.hh" +#include "G4PhysicsVector.hh" +#include "G4PhysicsFreeVector.hh" + + +G4double G4BaryonWidth::baryonEnergyTable[120] = +{ + 0.100, 0.162, 0.224, 0.285, 0.347, 0.409, 0.471, 0.532, + 0.594, 0.656, 0.718, 0.779, 0.841, 0.903, 0.965, 1.026, + 1.088, 1.150, 1.212, 1.274, 1.335, 1.397, 1.459, 1.521, + 1.582, 1.644, 1.706, 1.768, 1.829, 1.891, 1.953, 2.015, + 2.076, 2.138, 2.200, 2.262, 2.324, 2.385, 2.447, 2.509, + 2.571, 2.632, 2.694, 2.756, 2.818, 2.879, 2.941, 3.003, + 3.065, 3.126, 3.188, 3.250, 3.312, 3.374, 3.435, 3.497, + 3.559, 3.621, 3.682, 3.744, 3.806, 3.868, 3.929, 3.991, + 4.053, 4.115, 4.176, 4.238, 4.300, 4.362, 4.424, 4.485, + 4.547, 4.609, 4.671, 4.732, 4.794, 4.856, 4.918, 4.979, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, + 14.076, 15.210, 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, + 23.151, 24.286, 25.420, 26.555, 27.689, 28.824, 29.958, 31.092, + 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, 39.034, 40.168, + 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +G4double G4BaryonWidth::wN1440[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.98204, 45.8544, 87.6071, 135.614, 187.179, 267.659, 390.159, 527.746, 666.031, 805.253, 941.075, 1072.42, 1196.74, 1317.9, 1433.77, 1544.44, 1648.43, 1749.32, 1845.62, 1937.55, 2025.36, 2107.95, 2188.25, 2265.1, 2338.7, 2408.12, 2475.83, 2540.82, 2603.25, 2662.32, 2720.11, 2775.75, 2829.36, 2880.24, 2930.15, 2978.34, 3024.91, 3069.93, 3112.79, 3154.97, 3195.83, 3235.42, 3273.21, 3310.48, 3346.65, 3381.79, 3415.39, 3448.59, 3480.89, 3512.31, 3542.4, 3572.19, 3601.22, 3629.5, 3657.09, 3683.58, 3709.87, 3735.53, 3760.58, 3784.64, 3808.53, 3831.85, 3854.63, 3876.55, 3883.98, 4218.19, 4465.3, 4636.36, 4766.8, 4933.96, 5086.11, 5129.96, 5100.71, 5086.74, 5108.52, 5136.7, 5149.42, 5155.08, 5178.35, 5240.62, 5352.7, 5516.85, 5728.73, 5979.98, 6256.97, 6542.52, 6814.75, 7050.92, 7230.03, 7336.36, 7363.36, 7313.75, 7198.01, 7031.58, 6830.7, 6610.88, 6384.13, 6160.01, 5944.53, 5741.27, 5552.55, 5378.72, 5219.94, 5075.29 +}; +G4double G4BaryonWidth::wN1520[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.208063, 3.69544, 10.234, 21.9762, 39.4847, 64.8455, 93.8126, 122.796, 151.119, 179.673, 207.896, 235.674, 262.467, 289.065, 314.954, 340.082, 364.026, 387.548, 410.239, 432.096, 453.124, 473.017, 492.442, 511.087, 528.974, 545.857, 562.314, 578.089, 593.209, 607.471, 621.369, 634.69, 647.459, 659.508, 671.255, 682.522, 693.331, 703.702, 713.499, 723.062, 732.245, 741.068, 749.411, 757.565, 765.406, 772.947, 780.089, 787.077, 793.806, 800.287, 806.431, 812.452, 818.256, 823.854, 829.255, 834.385, 839.42, 844.283, 848.98, 853.446, 857.834, 862.076, 866.178, 870.083, 871.399, 925.319, 957.826, 978.064, 991.567, 1003.37, 1012.71, 1016.77, 1017.28, 1017.82, 1019.33, 1020.81, 1021.53, 1021.84, 1022.72, 1024.99, 1029.06, 1035.04, 1042.77, 1051.94, 1062.07, 1072.5, 1082.44, 1091.03, 1097.49, 1101.24, 1102.04, 1099.99, 1095.48, 1089.08, 1081.4, 1073.02, 1064.38, 1055.85, 1047.64, 1039.89, 1032.69, 1026.05, 1019.97, 1014.43 +}; +G4double G4BaryonWidth::wN1535[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.012071, 0.0361725, 12.3692, 31.6588, 43.6167, 55.3459, 63.7718, 70.8314, 76.8132, 118.769, 145.509, 164.174, 178.773, 190.796, 200.831, 209.642, 217.345, 224.146, 230.108, 235.541, 240.435, 244.866, 248.894, 252.513, 255.883, 258.979, 261.83, 264.422, 266.862, 269.125, 271.229, 273.159, 274.989, 276.701, 278.303, 279.782, 281.194, 282.522, 283.773, 284.952, 286.048, 287.1, 288.097, 289.04, 289.92, 290.769, 291.576, 292.343, 293.062, 293.757, 294.42, 295.053, 295.647, 296.224, 296.776, 297.304, 297.809, 298.285, 298.749, 299.195, 299.622, 300.025, 300.42, 300.799, 301.163, 301.508, 301.624, 306.203, 308.795, 310.402, 311.469, 312.212, 312.752, 313.155, 313.465, 313.707, 313.902, 314.059, 314.188, 314.296, 314.387, 314.464, 314.53, 314.587, 314.636, 314.679, 314.717, 314.751, 314.781, 314.808, 314.832, 314.853, 314.873, 314.89, 314.906, 314.921, 314.934, 314.946, 314.957, 314.968, 314.977, 314.986, 314.994, 315.002, 315.009, 315.016 +}; +G4double G4BaryonWidth::wN1650[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.4948, 37.1813, 51.1584, 64.5471, 74.5917, 83.6109, 92.8888, 106.8, 120.114, 147.556, 170.039, 189.411, 206.912, 223.527, 239.13, 253.813, 267.42, 280.443, 292.696, 304.219, 315.053, 325.079, 334.664, 343.677, 352.155, 360.008, 367.525, 374.607, 381.282, 387.48, 393.428, 399.047, 404.358, 409.304, 414.065, 418.576, 422.853, 426.912, 430.706, 434.372, 437.859, 441.177, 444.288, 447.302, 450.177, 452.921, 455.5, 458.006, 460.403, 462.696, 464.856, 466.96, 468.976, 470.91, 472.767, 474.522, 476.237, 477.886, 479.471, 480.971, 482.437, 483.848, 485.205, 486.491, 486.923, 504.235, 514.717, 520.061, 523.187, 530.053, 536.475, 535.168, 528.788, 524.079, 522.508, 521.734, 520.03, 518.037, 517.65, 520.484, 527.327, 538.284, 552.961, 570.655, 590.292, 610.555, 629.798, 646.327, 658.581, 665.397, 666.292, 661.477, 651.74, 638.241, 622.199, 604.779, 586.884, 569.238, 552.297, 536.337, 521.54, 507.94, 495.557, 484.327 +}; +G4double G4BaryonWidth::wN1675[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.104352, 1.86366, 5.19128, 9.89594, 15.7618, 23.9471, 38.1417, 59.6899, 87.4394, 121.292, 159.702, 201.53, 245.002, 290.639, 336.977, 383.397, 428.676, 473.931, 518.14, 561.109, 602.704, 642.207, 680.871, 718.02, 753.662, 787.28, 820.012, 851.338, 881.307, 909.519, 936.951, 963.186, 988.278, 1011.9, 1034.88, 1056.88, 1077.93, 1098.1, 1117.11, 1135.63, 1153.38, 1170.41, 1186.49, 1202.18, 1217.24, 1231.71, 1245.4, 1258.77, 1271.64, 1284.01, 1295.73, 1307.21, 1318.26, 1328.91, 1339.18, 1348.93, 1358.49, 1367.73, 1376.64, 1385.11, 1393.41, 1401.43, 1409.18, 1416.55, 1419.03, 1520.6, 1583.68, 1617.98, 1639.05, 1676.87, 1711.42, 1707.4, 1678.01, 1656.34, 1649.76, 1647.04, 1639.74, 1630.85, 1629.47, 1643.43, 1676.64, 1729.81, 1801.23, 1887.71, 1984.14, 2084.11, 2179.49, 2261.85, 2323.38, 2358.25, 2364, 2341.61, 2294.94, 2229.69, 2151.84, 2067.14, 1980.02, 1894.01, 1811.33, 1733.3, 1660.78, 1593.88, 1532.66, 1476.78 +}; +G4double G4BaryonWidth::wN1680[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0125742, 0.588859, 2.37658, 6.13829, 12.6173, 23.112, 38.3012, 57.3481, 79.2689, 104.334, 131.76, 161.092, 191.372, 223.163, 255.574, 288.235, 320.301, 352.55, 384.224, 415.138, 445.149, 473.689, 501.622, 528.422, 554.066, 578.163, 601.511, 623.726, 644.839, 664.571, 683.608, 701.663, 718.781, 734.753, 750.148, 764.743, 778.581, 791.707, 803.964, 815.793, 827.026, 837.698, 847.682, 857.337, 866.525, 875.273, 883.477, 891.43, 899.016, 906.257, 913.064, 919.679, 926.005, 932.058, 937.856, 943.324, 948.655, 953.77, 958.679, 963.319, 967.852, 972.21, 976.401, 980.371, 981.704, 1034.85, 1066.45, 1085.85, 1099.1, 1113.92, 1126.86, 1130.49, 1127.8, 1126.22, 1127.54, 1129.37, 1129.9, 1129.85, 1131.29, 1136.03, 1145.01, 1158.44, 1175.98, 1196.94, 1220.15, 1244.15, 1267.07, 1286.97, 1302.03, 1310.89, 1313, 1308.57, 1298.49, 1284.08, 1266.73, 1247.77, 1228.22, 1208.9, 1190.32, 1172.8, 1156.52, 1141.53, 1127.82, 1115.33 +}; +G4double G4BaryonWidth::wN1700[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0169982, 0.303937, 0.866717, 4.62262, 12.4739, 26.0292, 42.1235, 58.4389, 75.3252, 93.1975, 112.263, 132.344, 151.745, 170.73, 189.044, 206.76, 223.651, 240.298, 256.439, 272.085, 287.247, 301.703, 315.934, 329.711, 343.043, 355.736, 368.217, 380.284, 391.95, 403.047, 413.951, 424.487, 434.669, 444.351, 453.861, 463.051, 471.931, 480.511, 488.672, 496.69, 504.44, 511.932, 519.06, 526.067, 532.843, 539.397, 545.637, 551.774, 557.713, 563.461, 568.937, 574.327, 579.547, 584.603, 589.501, 594.173, 598.776, 603.238, 607.565, 611.693, 615.764, 619.713, 623.544, 627.203, 628.438, 680.21, 712.515, 733.19, 747.205, 759.152, 768.705, 773.043, 774.284, 776.786, 777.701, 778.418, 779.61, 782.045, 785.121, 786.088, 786.984, 790.875, 797.519, 805.081, 812.857, 821.517, 831.336, 841.728, 851.349, 858.149, 860.118, 856.697, 849.24, 839.791, 829.869, 820.349, 811.641, 803.966, 797.409, 791.978, 787.612, 784.12, 781.187, 778.363 +}; +G4double G4BaryonWidth::wN1710[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.258418, 1.71929, 3.40223, 7.97923, 12.7292, 18.6296, 26.4714, 39.755, 56.6156, 79.4137, 107.994, 141.172, 175.5, 209.663, 242.487, 273.881, 303.407, 332.096, 359.527, 385.772, 410.901, 434.601, 457.709, 479.887, 501.188, 521.34, 541.051, 560.026, 578.308, 595.655, 612.671, 629.101, 644.974, 660.077, 674.931, 689.31, 703.237, 716.735, 729.617, 742.323, 754.658, 766.639, 778.096, 789.42, 800.435, 811.155, 821.425, 831.594, 841.504, 851.163, 860.433, 869.625, 878.596, 887.355, 895.91, 904.135, 912.307, 920.297, 928.109, 935.628, 943.107, 950.425, 957.588, 964.489, 966.832, 1073.25, 1151.99, 1211.06, 1257.55, 1301.84, 1341.32, 1363.78, 1377.07, 1399.14, 1408.08, 1415.48, 1427.83, 1449.38, 1473.66, 1480.23, 1481.32, 1496.77, 1525.12, 1554.81, 1582.39, 1614.05, 1654.02, 1701, 1748.52, 1784.82, 1797.41, 1782.34, 1747.52, 1704.88, 1662.75, 1625.29, 1593.94, 1569.18, 1550.96, 1539.03, 1532.79, 1531.02, 1531.65, 1531.87 +}; +G4double G4BaryonWidth::wN1720[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.346639, 2.30696, 4.72305, 15.7079, 26.8062, 38.6052, 51.4629, 65.0523, 79.5782, 100.736, 137.807, 201.663, 275.889, 349.626, 418.604, 482.598, 541.063, 596.379, 647.999, 696.317, 741.674, 783.698, 824.018, 862.149, 898.283, 932.053, 964.714, 995.832, 1025.53, 1053.46, 1080.63, 1106.67, 1131.64, 1155.25, 1178.33, 1200.54, 1221.93, 1242.56, 1262.15, 1281.39, 1299.98, 1317.97, 1335.11, 1351.98, 1368.34, 1384.21, 1399.37, 1414.33, 1428.87, 1443, 1456.53, 1469.92, 1482.95, 1495.64, 1508.01, 1519.88, 1531.65, 1543.13, 1554.34, 1565.11, 1575.81, 1586.26, 1596.47, 1606.3, 1609.63, 1759.39, 1868.08, 1949.59, 2012.47, 2070.64, 2126.77, 2150.49, 2168.78, 2243.17, 2225.86, 2203.89, 2227.83, 2316.91, 2415.49, 2384.19, 2292.7, 2263.4, 2291.17, 2310.49, 2308.5, 2332.86, 2420.83, 2575.37, 2766.33, 2928.23, 2986.31, 2914.31, 2755.39, 2574.98, 2416.12, 2296.22, 2217.75, 2178.33, 2174.29, 2201.7, 2255.28, 2326.79, 2403.06, 2466.79 +}; +G4double G4BaryonWidth::wN1900[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.22722, 14.8739, 28.6939, 43.1901, 57.8705, 73.6495, 90.699, 108.338, 125.974, 144.405, 165.205, 299.46, 451.183, 595.565, 727.215, 865.263, 956.954, 1063.29, 1216.4, 1339.63, 1327.97, 1530.31, 1645.73, 1559.95, 1615.41, 1724.34, 2077.66, 1782.77, 1831.06, 1882.93, 1894.37, 2065.78, 2876.49, 2073.76, 2200.43, 2741.68, 2077.91, 2068.34, 2575.44, 2145.86, 2584.54, 2122.71, 2129.57, 3186.04, 2831.28, 3263.18, 2311.2, 2796.11, 3412.19, 2593.86, 3157.83, 2229.33, 5577.28, 2161.79, 3414.82, 2242.77, 6233.2, 2446.53, 2950.77, 2590.57, 2605.31, 7065.21, 2638.46, 2385.63, 3065.71, 2471.38, 2023.25, 1988.68, 18558.9, 5234.89, 20347.9, 2016.46, 2505.15, 2441.35, 10103.5, 1994.97, 2157.65, 22319.4, 2299.21, 1974.61, 2092.56, 3014.82, 16625.2, 9799.51, 2963.88, 2267.74, 2143.54, 2163.52, 2243.64, 2361.01, 2548.26, 3040.22, 5357.31, 33817.4, 9508.94, 3552.7, 2533.83, 2206.04, 2068.98, 2007, 1982.35, 1978.55, 1985.53, 1995.11 +}; +G4double G4BaryonWidth::wN1990[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.00176227, 0.0826059, 0.335752, 1.54792, 4.65793, 10.1342, 18.9898, 32.8124, 52.7674, 81.9469, 125.787, 190.605, 282.317, 406.021, 557.934, 733.267, 923.093, 1127.95, 1339.58, 1553.47, 1766.03, 1971.18, 2173.68, 2368.79, 2555.66, 2731.01, 2900.44, 3061.01, 3212.92, 3354.18, 3489.76, 3617.64, 3738.24, 3850.16, 3957.47, 4058.66, 4154.12, 4244.18, 4327.87, 4408.24, 4484.18, 4555.97, 4622.82, 4687.15, 4748.08, 4805.82, 4859.71, 4911.7, 4961.06, 5007.95, 5051.82, 5094.24, 5134.61, 5173.07, 5209.71, 5244.11, 5277.48, 5309.34, 5339.76, 5368.37, 5396.18, 5422.77, 5448.2, 5472.17, 5480.19, 5785.86, 5950.54, 6037.65, 6088.13, 6158.88, 6225.56, 6215.42, 6168.25, 6178.58, 6139.32, 6102.45, 6095.93, 6139.88, 6204.12, 6190.61, 6159.16, 6205.62, 6322.15, 6451.52, 6575.7, 6722.92, 6911.57, 7133.07, 7353.91, 7515.59, 7556.82, 7458.71, 7260.37, 7020.75, 6781.57, 6564.23, 6376.68, 6221.99, 6100.41, 6010.87, 5950.65, 5913.7, 5890.02, 5865.79 +}; +G4double G4BaryonWidth::wN2090[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.161627, 2.90013, 8.13379, 16.4319, 27.8324, 43.0753, 61.01, 81.2556, 104.383, 132.014, 166.735, 207.911, 247.946, 286.39, 323.067, 358.466, 392.35, 426.014, 459.014, 491.419, 523.274, 554.102, 584.928, 615.25, 645.072, 673.923, 702.749, 731.071, 758.887, 785.758, 812.564, 838.861, 864.647, 889.521, 914.3, 938.574, 962.347, 985.621, 1008.04, 1030.34, 1052.16, 1073.5, 1094.04, 1114.46, 1134.42, 1153.93, 1172.7, 1191.34, 1209.56, 1227.37, 1244.48, 1261.49, 1278.1, 1294.32, 1310.17, 1325.41, 1340.54, 1355.33, 1369.76, 1383.64, 1397.43, 1410.89, 1424.05, 1436.69, 1440.98, 1629.31, 1755.39, 1842.04, 1903.49, 1949.42, 1984.99, 2009.24, 2027.75, 2049.83, 2057.61, 2062.8, 2072.29, 2088.87, 2105.73, 2105.39, 2096.87, 2095.84, 2101.73, 2106.26, 2107.85, 2112.57, 2125.16, 2145.99, 2171.22, 2192.56, 2200.54, 2191.84, 2171.97, 2149.26, 2129.19, 2114, 2104.01, 2098.94, 2098.35, 2101.72, 2108.42, 2117.38, 2126.94, 2134.9 +}; +G4double G4BaryonWidth::wN2190[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0004401, 0.0530579, 0.309625, 1.00785, 2.49327, 5.35195, 10.5432, 18.7426, 30.1544, 45.6179, 66.2785, 96.2159, 137.227, 189.537, 251.257, 321.451, 398.053, 482.847, 573.827, 670.076, 770.577, 872.574, 978.364, 1085.3, 1192.48, 1297.4, 1402.85, 1506.58, 1608.13, 1705.6, 1801.94, 1895.32, 1985.64, 2071.41, 2155.43, 2236.26, 2313.91, 2388.44, 2458.78, 2527.31, 2592.96, 2655.8, 2715, 2772.6, 2827.72, 2880.46, 2930.14, 2978.48, 3024.76, 3069.07, 3110.84, 3151.54, 3190.53, 3227.93, 3263.79, 3297.67, 3330.73, 3362.49, 3393, 3421.86, 3450.07, 3477.2, 3503.31, 3528.05, 3536.36, 3866.01, 4055.47, 4169.34, 4242.18, 4311.19, 4373.67, 4381.22, 4372.08, 4430.63, 4392.91, 4352.62, 4362.68, 4445.52, 4542.68, 4503.28, 4406.51, 4387.92, 4440.55, 4489.95, 4519.61, 4579.51, 4707.37, 4902.86, 5129.48, 5313.2, 5371.44, 5276.12, 5076.15, 4845.44, 4633.53, 4461.89, 4335.08, 4251.99, 4209.47, 4203.76, 4229.39, 4277.37, 4333.31, 4378.19 +}; +G4double G4BaryonWidth::wN2220[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.49404e-05, 0.00764588, 0.0641514, 0.263009, 0.782704, 1.9362, 4.26892, 8.53924, 15.4035, 25.9001, 40.9065, 62.3784, 92.5859, 134.209, 187.566, 252.875, 328.659, 416.968, 515.946, 624.648, 741.931, 864.428, 994.762, 1129.5, 1267.17, 1404.07, 1543.37, 1681.59, 1817.65, 1948.51, 2077.73, 2202.53, 2322.49, 2435.48, 2545.05, 2649.23, 2748.03, 2841.53, 2928.48, 3011.9, 3090.53, 3164.59, 3233.22, 3298.89, 3360.69, 3418.83, 3472.7, 3524.27, 3572.83, 3618.58, 3661.02, 3701.72, 3740.12, 3776.37, 3810.63, 3842.51, 3873.19, 3902.23, 3929.73, 3955.39, 3980.14, 4003.62, 4025.92, 4046.77, 4053.72, 4304.64, 4427.14, 4488.88, 4522.65, 4566.99, 4610.73, 4599.89, 4569.68, 4601.58, 4558.89, 4516.82, 4517.24, 4580.05, 4658.29, 4625.15, 4549.48, 4547.59, 4613.27, 4682.04, 4738.17, 4822.32, 4964.02, 5160.11, 5376.52, 5547.31, 5600.18, 5511.07, 5323.4, 5102.87, 4894.24, 4717.93, 4579.31, 4478.61, 4413.83, 4382.16, 4379.19, 4397.17, 4423.69, 4442.16 +}; +G4double G4BaryonWidth::wN2250[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000265834, 0.0320445, 0.187025, 0.623477, 1.59286, 3.39994, 6.34513, 10.8171, 17.1442, 26.0267, 37.943, 53.7791, 74.7806, 103.463, 141.1, 188.885, 246.557, 316.318, 397.153, 488.441, 589.15, 696.116, 811.299, 931.336, 1054.55, 1177.35, 1302.33, 1426.24, 1548.03, 1664.96, 1780.21, 1891.37, 1998.08, 2098.52, 2195.89, 2288.47, 2376.3, 2459.48, 2536.9, 2611.25, 2681.4, 2747.54, 2808.9, 2867.66, 2923.01, 2975.12, 3023.43, 3069.68, 3113.24, 3154.28, 3192.34, 3228.82, 3263.21, 3295.67, 3326.3, 3354.77, 3382.13, 3407.99, 3432.44, 3455.22, 3477.14, 3497.9, 3517.58, 3535.94, 3542.04, 3758.33, 3859.27, 3908.42, 3934.48, 3969.63, 4004.84, 3995.07, 3969.25, 3995.29, 3959.45, 3923.98, 3923.75, 3975.66, 4040.88, 4013.66, 3951.39, 3950.98, 4006.98, 4065.28, 4112.54, 4182.62, 4300.26, 4462.98, 4642.48, 4783.79, 4826.55, 4750.68, 4592.52, 4407, 4231.54, 4083.19, 3966.45, 3881.51, 3826.75, 3799.88, 3797.24, 3812.42, 3835.11, 3851.47 +}; +G4double G4BaryonWidth::wDelta[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0179216, 0.16395, 8.68303, 53.5584, 99.9409, 146.527, 191.66, 236.264, 279.276, 320.539, 359.373, 397.057, 432.984, 467.22, 499.331, 530.452, 560.13, 588.451, 615.069, 640.934, 665.674, 689.358, 712.051, 733.468, 754.368, 774.445, 793.746, 812.023, 829.916, 847.159, 863.787, 879.579, 895.085, 910.069, 924.558, 938.355, 951.936, 965.092, 977.845, 990.213, 1002.02, 1013.68, 1025, 1036.01, 1046.53, 1056.94, 1067.08, 1076.94, 1086.39, 1095.75, 1104.88, 1113.77, 1122.31, 1130.78, 1139.05, 1147.13, 1155.01, 1162.59, 1170.12, 1177.49, 1184.69, 1191.62, 1198.51, 1205.25, 1211.86, 1218.22, 1220.38, 1318.24, 1389.66, 1444.18, 1487.32, 1522.29, 1551.29, 1575.7, 1596.57, 1614.59, 1630.34, 1644.21, 1656.52, 1667.53, 1677.42, 1686.38, 1694.5, 1701.93, 1708.72, 1714.98, 1720.74, 1726.08, 1731.04, 1735.65, 1739.96, 1743.99, 1747.77, 1751.31, 1754.65, 1757.79, 1760.77, 1763.58, 1766.24, 1768.77, 1771.16, 1773.45, 1775.62, 1777.69, 1779.67, 1781.56 +}; +G4double G4BaryonWidth::wD1600[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.902724, 5.6193, 10.7485, 16.2079, 23.1947, 40.5647, 76.6014, 126.422, 188.867, 267.379, 359.389, 460.962, 566.56, 676.87, 788.231, 899.28, 1007.31, 1115.23, 1220.81, 1323.74, 1423.86, 1519.51, 1613.79, 1705.11, 1793.5, 1877.66, 1960.42, 2040.47, 2117.88, 2191.56, 2264.02, 2334.12, 2401.97, 2466.6, 2530.23, 2591.87, 2651.59, 2709.49, 2764.73, 2819.22, 2872.1, 2923.43, 2972.5, 3020.95, 3068.05, 3113.84, 3157.68, 3201.04, 3243.24, 3284.33, 3323.71, 3362.72, 3400.74, 3437.82, 3473.98, 3508.71, 3543.17, 3576.82, 3609.67, 3641.25, 3672.59, 3703.22, 3733.14, 3761.93, 3771.7, 4209.82, 4528.96, 4756.26, 4930.42, 5122.23, 5293.15, 5364.81, 5368.29, 5381.47, 5421.78, 5462.53, 5485.52, 5501.1, 5533.82, 5603.88, 5720.36, 5883.37, 6086.27, 6318.93, 6567.48, 6816.46, 7047.73, 7243.29, 7386.85, 7466.51, 7477.81, 7423.8, 7313.84, 7161.32, 6980.14, 6783.65, 6582.21, 6384.28, 6195.39, 6019.14, 5858.12, 5713.24, 5585.21, 5473.74 +}; +G4double G4BaryonWidth::wD1620[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.09438, 15.1009, 20.5609, 25.2959, 29.8547, 36.023, 48.9969, 71.0644, 101.192, 138.98, 182.126, 228.889, 277.077, 327.195, 377.61, 427.654, 476.036, 523.974, 570.403, 615.145, 658.094, 698.549, 737.824, 775.256, 810.884, 844.23, 876.45, 907.054, 936.117, 963.28, 989.508, 1014.42, 1038.08, 1060.22, 1081.62, 1101.97, 1121.33, 1139.77, 1157.05, 1173.79, 1189.76, 1204.99, 1219.3, 1233.19, 1246.47, 1259.16, 1271.11, 1282.74, 1293.88, 1304.55, 1314.62, 1324.43, 1333.85, 1342.9, 1351.59, 1359.81, 1367.86, 1375.6, 1383.05, 1390.1, 1397, 1403.64, 1410.03, 1416.08, 1418.12, 1500.03, 1550.58, 1574.78, 1588.2, 1626.29, 1662.76, 1652.52, 1611.74, 1581.61, 1571, 1565.5, 1554.49, 1541.76, 1538.8, 1555.41, 1596.4, 1662.51, 1751.47, 1859.15, 1979.07, 2103.19, 2221.4, 2323.21, 2398.92, 2441.32, 2447.39, 2418.41, 2359.22, 2276.98, 2179.14, 2072.88, 1963.71, 1856.04, 1752.63, 1655.13, 1564.64, 1481.31, 1405.24, 1336.01 +}; +G4double G4BaryonWidth::wD1700[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.105048, 1.70825, 4.7302, 12.6502, 30.4128, 67.6989, 112.537, 154.064, 194.657, 241.323, 300.067, 371.626, 447.358, 526.334, 605.86, 684.693, 760.579, 835.265, 906.997, 975.494, 1040.64, 1101.46, 1160.02, 1215.41, 1267.78, 1316.52, 1363.38, 1407.72, 1449.7, 1488.83, 1526.55, 1562.34, 1596.32, 1628.1, 1658.84, 1688.1, 1715.96, 1742.53, 1767.48, 1791.7, 1814.85, 1836.97, 1857.81, 1878.1, 1897.54, 1916.17, 1933.76, 1950.93, 1967.42, 1983.27, 1998.26, 2012.92, 2027.04, 2040.62, 2053.72, 2066.14, 2078.32, 2090.07, 2101.41, 2112.18, 2122.76, 2132.97, 2142.85, 2152.25, 2155.41, 2285.1, 2364.04, 2412.91, 2445.43, 2477.3, 2504.41, 2511.53, 2507.94, 2512.94, 2511.02, 2508.62, 2508.83, 2516.35, 2528.34, 2531.61, 2536.32, 2556.22, 2588.39, 2622.55, 2654.87, 2688.79, 2726.34, 2765.71, 2801.37, 2824.17, 2824.93, 2801.51, 2760.73, 2712.28, 2663.06, 2616.86, 2575.35, 2539.48, 2509.64, 2486.01, 2468.45, 2456.24, 2448, 2441.73 +}; +G4double G4BaryonWidth::wD1900[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10.9537, 27.1407, 36.953, 45.508, 53.7455, 62.8976, 75.1602, 92.0545, 113.802, 141.418, 175.471, 214.621, 253.189, 291.004, 327.552, 363.001, 396.884, 430.338, 462.799, 494.256, 524.698, 553.65, 582.059, 609.446, 635.82, 660.794, 685.206, 708.662, 731.188, 752.47, 773.235, 793.158, 812.27, 830.315, 847.913, 864.794, 880.99, 896.529, 911.205, 925.527, 939.276, 952.478, 964.959, 977.149, 988.865, 1000.13, 1010.79, 1021.21, 1031.24, 1040.9, 1050.04, 1059, 1067.63, 1075.95, 1083.97, 1091.59, 1099.06, 1106.28, 1113.24, 1119.86, 1126.35, 1132.61, 1138.66, 1144.42, 1146.35, 1225.58, 1274.74, 1301.1, 1317.03, 1347.24, 1375.59, 1370.8, 1346.09, 1332.66, 1323.87, 1318.07, 1312.46, 1311.22, 1316.8, 1324.14, 1342.45, 1382.02, 1440.55, 1509.85, 1584.93, 1664.67, 1745.75, 1821.76, 1884.09, 1922.75, 1929.79, 1904.14, 1852.63, 1785.11, 1709.74, 1632.37, 1556.65, 1485.16, 1419.34, 1359.93, 1307.18, 1260.52, 1218.93, 1180.69 +}; +G4double G4BaryonWidth::wD1905[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.00636486, 0.26456, 1.05845, 2.58182, 5.06931, 9.59161, 17.0462, 26.9577, 39.5727, 58.4388, 95.5365, 168.449, 263.536, 369.086, 478.325, 588.876, 697.32, 805.891, 911.768, 1014.22, 1112.8, 1205.81, 1296.24, 1382.6, 1465.02, 1542.44, 1617.59, 1689.36, 1757.96, 1822.53, 1885.37, 1945.57, 2003.28, 2057.78, 2110.98, 2162.1, 2211.26, 2258.57, 2303.41, 2347.33, 2389.69, 2430.57, 2469.41, 2507.56, 2544.45, 2580.13, 2614.11, 2647.57, 2680, 2711.43, 2741.44, 2771.04, 2799.79, 2827.72, 2854.87, 2880.84, 2906.54, 2931.54, 2955.89, 2979.23, 3002.35, 3024.89, 3046.87, 3067.96, 3075.11, 3390.78, 3613.61, 3778.11, 3902.97, 4016.77, 4130.34, 4170.68, 4206.77, 4367.58, 4316.39, 4260.89, 4310.43, 4512.14, 4728.57, 4642.67, 4427.02, 4357.77, 4414.99, 4447.31, 4431.1, 4478.83, 4675.31, 5026.22, 5459.58, 5820.65, 5936.71, 5753.52, 5376.91, 4958.4, 4594.75, 4323.64, 4149.38, 4065.87, 4064.36, 4135.73, 4267.51, 4440.08, 4622.05, 4772.66 +}; +G4double G4BaryonWidth::wD1910[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.12809, 7.05827, 13.5492, 20.3734, 27.4001, 35.6787, 45.9548, 57.705, 70.8737, 87.1426, 110.946, 148.992, 194.747, 243.01, 290.772, 337.319, 381.7, 425.307, 467.408, 508.043, 547.264, 584.533, 621.131, 656.499, 690.696, 723.254, 755.295, 786.329, 816.405, 845.104, 873.413, 900.893, 927.584, 953.11, 978.341, 1002.88, 1026.77, 1050.03, 1072.33, 1094.42, 1115.96, 1136.97, 1157.15, 1177.17, 1196.73, 1215.83, 1234.2, 1252.46, 1270.32, 1287.79, 1304.61, 1321.35, 1337.74, 1353.79, 1369.53, 1384.7, 1399.82, 1414.65, 1429.19, 1443.22, 1457.22, 1470.97, 1484.45, 1497.48, 1501.91, 1707.37, 1864.4, 1986.37, 2083.67, 2174.78, 2261.65, 2305.16, 2339.09, 2428.15, 2422.68, 2414.09, 2450.22, 2553.26, 2663.41, 2639.61, 2560.47, 2550.61, 2600.69, 2641.83, 2662.32, 2711.59, 2826.29, 3007.41, 3221.05, 3396.29, 3454.78, 3372.27, 3197.34, 2999.53, 2823.75, 2688.15, 2595.6, 2544.09, 2530.13, 2549.94, 2598.1, 2665.83, 2739.03, 2799.24 +}; +G4double G4BaryonWidth::wD1920[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.377455, 2.36263, 4.53662, 6.83577, 9.39258, 13.6752, 21.0491, 30.7513, 42.6809, 58.1145, 79.3063, 109.573, 144.849, 182.35, 220.037, 257.344, 293.419, 329.311, 364.349, 398.494, 431.731, 463.545, 494.987, 525.545, 555.239, 583.633, 611.684, 638.944, 665.442, 690.794, 715.857, 740.237, 763.959, 786.68, 809.17, 831.073, 852.412, 873.209, 893.16, 912.941, 932.238, 951.069, 969.159, 987.116, 1004.66, 1021.8, 1038.28, 1054.66, 1070.69, 1086.36, 1101.46, 1116.47, 1131.17, 1145.57, 1159.68, 1173.28, 1186.84, 1200.12, 1213.15, 1225.72, 1238.25, 1250.55, 1262.61, 1274.26, 1278.22, 1461.3, 1600.74, 1707.12, 1791.54, 1874.62, 1952.03, 1990.04, 2012.31, 2067.16, 2071.88, 2074.59, 2099.95, 2162.28, 2231.25, 2229.39, 2202.93, 2223, 2283.19, 2342.59, 2392.34, 2458.34, 2558.84, 2691.78, 2835.43, 2947.52, 2982.59, 2927.26, 2810.71, 2674.72, 2547.05, 2440.09, 2357, 2297.93, 2261.74, 2246.82, 2250.48, 2267.89, 2291.11, 2309.55 +}; +G4double G4BaryonWidth::wD1930[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0638218, 1.04091, 2.89195, 5.53395, 8.85559, 13.2229, 19.7519, 29.206, 42.067, 60.1702, 86.0322, 125.42, 179.927, 248.454, 327.043, 413.151, 503.208, 598.489, 696.145, 795.009, 894.127, 991.145, 1088.64, 1184.53, 1278.44, 1368.64, 1457.9, 1544.58, 1628.59, 1708.6, 1787.23, 1863.16, 1936.42, 2005.94, 2074.07, 2139.71, 2202.94, 2263.84, 2321.56, 2378.07, 2432.49, 2484.91, 2534.6, 2583.27, 2630.17, 2675.37, 2718.25, 2760.29, 2800.83, 2839.94, 2877.08, 2913.52, 2948.71, 2982.69, 3015.51, 3046.74, 3077.42, 3107.09, 3135.79, 3163.1, 3189.97, 3215.98, 3241.14, 3265.13, 3273.21, 3607.41, 3812.52, 3940.24, 4024.63, 4105.83, 4177.83, 4191.47, 4183.68, 4225.22, 4200.2, 4174.92, 4182.58, 4242.72, 4314.15, 4292.37, 4240.44, 4254.26, 4324.1, 4393.37, 4449.5, 4527.07, 4650.42, 4816.38, 4995.54, 5131.66, 5164.59, 5076.96, 4907.74, 4712.65, 4528.78, 4372.91, 4249.47, 4158.82, 4099.52, 4069.45, 4065.07, 4079.92, 4103.5, 4121.84 +}; +G4double G4BaryonWidth::wD1950[120] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.16591e-05, 0.0011297, 0.0182602, 0.45055, 1.76006, 4.25407, 8.10734, 13.6701, 21.3338, 31.7288, 45.2589, 63.2603, 87.0226, 119.655, 164.42, 224.558, 299.163, 386.75, 483.47, 590.001, 702.266, 817.863, 934.695, 1049.17, 1163.7, 1275.39, 1383.53, 1485.99, 1585.85, 1681.27, 1772.22, 1857.37, 1939.64, 2017.72, 2091.79, 2160.9, 2227.52, 2290.65, 2350.5, 2407.22, 2460.16, 2511.22, 2559.65, 2605.61, 2648.56, 2690.03, 2729.44, 2766.89, 2801.95, 2835.87, 2868.16, 2898.9, 2927.74, 2955.68, 2982.33, 3007.75, 3032.03, 3054.85, 3077.03, 3098.23, 3118.5, 3137.59, 3156.17, 3173.96, 3191, 3207.07, 3212.45, 3418.43, 3528.71, 3589.22, 3625.21, 3664.73, 3700.96, 3699.72, 3683.61, 3698.17, 3678.02, 3658.97, 3658.59, 3688.65, 3727.05, 3714.78, 3688.72, 3704.14, 3755.05, 3808.21, 3855.4, 3915.48, 4001.18, 4109.36, 4221.83, 4305.12, 4324, 4268.54, 4161.95, 4037.45, 3917.47, 3812.66, 3726.28, 3659.12, 3610.73, 3580.12, 3565.41, 3562.91, 3566.58, 3568.26 +}; + +G4double G4BaryonWidth::wL1405[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9.39894, 46.389, 66.0136, 81.3803, 94.0398, 105.12, 114.805, 123.359, 130.859, 137.694, 143.849, 149.415, 154.391, 159.002, 163.216, 167.079, 170.629, 173.849, 176.874, 179.673, 182.268, 184.642, 186.89, 188.985, 190.942, 192.745, 194.461, 196.072, 197.585, 198.986, 200.327, 201.592, 202.786, 203.914, 204.965, 205.977, 206.936, 207.846, 208.696, 209.518, 210.3, 211.044, 211.743, 212.42, 213.066, 213.683, 214.263, 214.827, 215.367, 215.884, 216.379, 216.846, 217.302, 217.739, 218.16, 218.557, 218.945, 219.319, 219.678, 220.019, 220.133, 224.67, 227.254, 228.862, 229.932, 230.678, 231.22, 231.625, 231.937, 232.181, 232.377, 232.535, 232.665, 232.774, 232.865, 232.943, 233.01, 233.067, 233.117, 233.16, 233.199, 233.233, 233.263, 233.29, 233.314, 233.336, 233.355, 233.373, 233.389, 233.404, 233.417, 233.43, 233.441, 233.451, 233.461, 233.47, 233.478, 233.486, 233.493, 233.5 +}; + +G4double G4BaryonWidth::wL1520[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0203936, 0.0529432, 0.0808573, 0.127773, 1.36541, 5.10966, 15.0213, 27.4029, 40.0984, 52.5624, 64.5632, 75.7918, 86.5553, 96.6459, 106.072, 114.72, 122.907, 130.524, 137.609, 144.201, 150.242, 155.965, 161.302, 166.282, 170.862, 175.218, 179.296, 183.119, 186.645, 190.025, 193.191, 196.168, 198.95, 201.61, 204.097, 206.459, 208.725, 210.837, 212.834, 214.705, 216.501, 218.222, 219.916, 221.514, 222.984, 224.318, 225.606, 226.865, 228.114, 229.335, 230.555, 231.721, 232.791, 233.745, 234.588, 235.388, 236.169, 236.95, 237.723, 238.512, 239.309, 240.122, 240.936, 241.216, 249.796, 254.999, 257.566, 261.729, 266.127, 261.245, 261.17, 264.738, 266.091, 263.033, 261.08, 260.61, 261.07, 262.283, 264.354, 267.6, 272.546, 279.673, 288.437, 295.381, 295.694, 289.784, 282.262, 275.929, 271.275, 267.961, 265.595, 263.872, 262.591, 261.616, 260.861, 260.264, 259.785, 259.395, 259.073, 258.805, 258.579, 258.387, 258.222 +}; + +G4double G4BaryonWidth::wL1600[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.37425, 21.4182, 52.499, 96.2422, 137.937, 179.019, 218.753, 257.106, 293.485, 329.096, 363.361, 396.32, 427.521, 458.037, 487.399, 515.664, 542.883, 568.694, 593.993, 618.396, 641.949, 664.334, 686.327, 707.592, 728.166, 747.766, 767.067, 785.774, 803.914, 821.233, 838.326, 854.928, 871.06, 886.743, 901.755, 916.606, 931.064, 945.146, 958.648, 972.028, 985.076, 997.804, 1010.03, 1022.16, 1034, 1045.58, 1056.71, 1067.77, 1078.58, 1089.16, 1099.51, 1109.48, 1119.4, 1129.12, 1138.64, 1147.81, 1156.95, 1165.91, 1174.7, 1183.18, 1186.06, 1318.27, 1417.02, 1493.84, 1555.61, 1606.36, 1648.92, 1685.1, 1716.31, 1743.47, 1767.37, 1788.53, 1807.41, 1824.39, 1839.71, 1853.63, 1866.31, 1877.94, 1888.61, 1898.46, 1907.57, 1916.03, 1923.9, 1931.23, 1938.1, 1944.53, 1950.57, 1956.25, 1961.61, 1966.66, 1971.45, 1975.98, 1980.28, 1984.35, 1988.23, 1991.93, 1995.45, 1998.82, 2002.03, 2005.1 +}; + +G4double G4BaryonWidth::wL1670[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.52932, 7.42962, 13.0258, 17.5344, 20.7914, 23.4961, 51.4448, 66.9742, 77.7327, 86.3899, 93.5718, 99.6964, 104.934, 109.62, 113.782, 117.507, 120.861, 123.852, 126.62, 129.149, 131.466, 133.565, 135.533, 137.354, 139.042, 140.585, 142.047, 143.411, 144.685, 145.859, 146.979, 148.031, 149.02, 149.951, 150.816, 151.646, 152.43, 153.173, 153.865, 154.532, 155.166, 155.768, 156.331, 156.877, 157.396, 157.891, 158.357, 158.808, 159.24, 159.652, 160.047, 160.419, 160.782, 161.129, 161.462, 161.777, 162.085, 162.38, 162.665, 162.934, 163.024, 166.586, 168.599, 169.845, 170.672, 171.248, 171.665, 171.977, 172.217, 172.405, 172.555, 172.677, 172.777, 172.86, 172.93, 172.99, 173.041, 173.085, 173.123, 173.157, 173.186, 173.212, 173.235, 173.256, 173.274, 173.291, 173.306, 173.32, 173.332, 173.343, 173.354, 173.363, 173.372, 173.38, 173.387, 173.394, 173.4, 173.406, 173.411, 173.417 +}; + +G4double G4BaryonWidth::wL1690[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0280814, 1.53124, 5.49554, 15.3262, 31.875, 47.9896, 64.2033, 80.5884, 96.7701, 113.148, 129.336, 145.233, 160.515, 175.623, 190.262, 204.402, 218.028, 230.923, 243.512, 255.582, 267.143, 278.038, 288.624, 298.762, 308.431, 317.543, 326.404, 334.823, 342.918, 350.566, 357.911, 364.909, 371.717, 378.29, 384.369, 390.149, 395.71, 401.208, 406.541, 411.718, 416.486, 420.85, 424.911, 428.985, 433.106, 437.287, 441.384, 445.37, 449.002, 452.196, 455.016, 457.587, 460.151, 462.761, 465.453, 468.192, 471.085, 474.089, 477.164, 480.159, 481.158, 510.39, 526.249, 535.189, 560.141, 568.37, 545.771, 549.389, 567.329, 565.603, 550.06, 542.234, 541.315, 545.043, 553.052, 566.376, 587.14, 618.093, 659.348, 700.645, 718.937, 702.598, 666.973, 631.461, 603.651, 583.568, 569.234, 558.899, 551.281, 545.551, 541.141, 537.687, 534.93, 532.699, 530.868, 529.346, 528.069, 526.986, 526.061, 525.263 +}; + +G4double G4BaryonWidth::wL1800[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.50627, 21.8634, 66.615, 103.564, 131.182, 159.803, 190.2, 222.588, 256.119, 291.406, 327.37, 363.506, 398.807, 434.085, 468.49, 501.828, 533.965, 564.331, 593.886, 622.101, 648.952, 674.186, 698.418, 721.685, 743.428, 764.029, 784.051, 802.228, 820.308, 837.77, 853.13, 867.294, 882.695, 898.371, 911.166, 921.232, 931.248, 943.659, 957.782, 971.143, 980.596, 986.084, 990.222, 996.058, 1005.1, 1017.42, 1031.37, 1044.65, 1054.02, 1058.02, 1057.68, 1055.65, 1054.41, 1055.49, 1059.38, 1066.09, 1075.99, 1088.97, 1104.3, 1119.99, 1125.1, 1149.64, 1142.81, 1121.24, 1398.67, 1449.16, 1047.68, 1062.36, 1304.93, 1254.01, 997.261, 861.464, 834.422, 880.78, 993.782, 1188.06, 1495.16, 1956.2, 2572.84, 3190.68, 3462.68, 3213.35, 2673.5, 2135.4, 1713.51, 1408.28, 1189.89, 1031.97, 915.174, 826.991, 758.855, 705.271, 662.317, 627.414, 598.639, 574.611, 554.371, 537.13, 522.348, 509.558 +}; + +G4double G4BaryonWidth::wL1810[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.163031, 2.57372, 9.47523, 22.346, 35.4578, 48.6868, 61.6074, 74.1844, 86.2066, 98.0613, 109.548, 120.673, 131.271, 141.703, 151.802, 161.581, 171.054, 180.088, 188.991, 197.626, 206.003, 214.012, 221.909, 229.601, 237.056, 244.212, 251.302, 258.148, 264.876, 271.369, 277.695, 283.835, 289.972, 296.041, 301.73, 307.201, 312.583, 318.073, 323.554, 328.978, 334.017, 338.66, 343.053, 347.583, 352.315, 357.264, 362.236, 367.165, 371.703, 375.719, 379.294, 382.604, 385.982, 389.509, 393.236, 397.114, 401.291, 405.71, 410.312, 414.868, 416.403, 469.056, 508.301, 538.576, 596.661, 625.963, 600.344, 619.114, 662.2, 669.757, 651.923, 647.055, 653.488, 667.381, 688.395, 718.701, 762.386, 824.631, 905.697, 986.687, 1025.05, 999.278, 937.648, 875.998, 828.368, 794.811, 771.688, 755.77, 744.703, 736.96, 731.509, 727.681, 725.012, 723.191, 721.995, 721.266, 720.89, 720.781, 720.877, 721.131 +}; + +G4double G4BaryonWidth::wL1820[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000612464, 0.113736, 0.784473, 4.69403, 13.3748, 26.223, 42.5452, 61.8637, 83.2929, 107.01, 132.16, 158.257, 184.429, 211.158, 237.697, 263.787, 289.222, 313.46, 337.19, 359.933, 381.646, 401.995, 421.632, 440.261, 457.864, 474.264, 490.027, 504.84, 518.885, 531.976, 544.413, 556.113, 567.319, 577.993, 587.757, 596.938, 605.652, 614.152, 622.302, 630.131, 637.254, 643.68, 649.58, 655.444, 661.344, 667.315, 673.148, 678.783, 683.833, 688.158, 691.861, 695.16, 698.43, 701.78, 705.273, 708.876, 712.737, 716.81, 721.033, 725.166, 726.54, 761.111, 777.813, 786.063, 828.972, 841.588, 793.509, 798.558, 833.365, 828.899, 796.558, 780.287, 777.991, 785.122, 801.207, 828.648, 872.094, 937.436, 1024.93, 1112.76, 1151.88, 1117.48, 1042.09, 966.953, 908.211, 865.908, 835.827, 814.237, 798.406, 786.568, 777.515, 770.472, 764.889, 760.404, 756.749, 753.732, 751.22, 749.104, 747.31, 745.775 +}; + +G4double G4BaryonWidth::wL1830[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0374798, 2.04587, 6.47239, 13.6992, 23.9469, 37.7787, 54.5429, 73.773, 94.6442, 117.395, 141.284, 165.943, 190.648, 215.949, 241.225, 266.298, 291.028, 314.92, 338.678, 361.841, 384.358, 405.888, 427.046, 447.589, 467.335, 486.182, 504.707, 522.319, 539.537, 556.028, 571.722, 586.705, 601.713, 616.465, 629.872, 642.297, 654.395, 666.909, 679.511, 691.741, 702.522, 711.844, 720.386, 729.313, 738.969, 749.384, 759.965, 770.24, 779.132, 786.212, 791.79, 796.587, 801.536, 807.016, 813.183, 819.966, 827.639, 836.095, 845.12, 854.052, 857.012, 923.246, 957.111, 973.913, 1073.15, 1099.57, 987.357, 998.048, 1075.68, 1064.24, 990.312, 952.068, 946.032, 961.687, 997.042, 1056.51, 1149.57, 1288.55, 1473.98, 1659.67, 1741.73, 1667.64, 1506.48, 1345.78, 1219.83, 1128.77, 1063.68, 1016.66, 981.929, 955.746, 935.547, 919.688, 906.997, 896.704, 888.234, 881.174, 875.24, 870.195, 865.878, 862.151 +}; + +G4double G4BaryonWidth::wL1890[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0668762, 1.05886, 4.65994, 12.0381, 22.1384, 33.3915, 44.912, 56.6453, 70.6079, 100.53, 132.617, 162.666, 190.338, 216.77, 241.694, 265.275, 287.646, 308.585, 328.876, 348.248, 366.766, 384.24, 401.245, 417.629, 433.305, 448.218, 462.861, 476.792, 490.435, 503.53, 516.056, 528.071, 540.151, 552.208, 563.105, 573.401, 583.382, 593.846, 604.773, 614.994, 624.436, 632.827, 639.829, 647.653, 657.043, 666.503, 675.498, 685.222, 694.774, 701.899, 706.096, 709.668, 715.007, 722.176, 729.42, 735.352, 741.177, 748.789, 759.061, 770.98, 775.125, 853.009, 925.456, 922.113, 1092.28, 1102.95, 1115.14, 1023.92, 1095.36, 1114.19, 935.047, 1016.69, 1349.72, 1386.46, 1122.73, 1037.21, 1120.34, 1345.82, 1711.63, 2154.37, 2429.06, 2273.29, 1870.1, 1501.91, 1239.04, 1063.73, 948.542, 874.032, 827.684, 802.189, 793.339, 799.167, 819.34, 854.91, 908.458, 984.363, 1088.97, 1231.61, 1423.9, 1679.18 +}; + +G4double G4BaryonWidth::wL2100[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.80338e-06, 0.00549659, 0.0547254, 0.55108, 2.82651, 7.89883, 15.9637, 27.2754, 41.8755, 63.8877, 96.2154, 136.409, 181.176, 230.714, 281.605, 335.948, 392.157, 443.629, 499.096, 564.4, 615.333, 672.089, 728.797, 761.306, 837.632, 860.157, 900.464, 944.374, 986.003, 1025.68, 1055.14, 1133.69, 1161.67, 1168.78, 1204.28, 1230.24, 1242.59, 1346.05, 1305.6, 1388.65, 1337.3, 1362.13, 1408.03, 1425.93, 1531.18, 1423.86, 1470.78, 1599.15, 1492.77, 1569.5, 1518.76, 1699.12, 1513, 1596.01, 1553.22, 1807.76, 1564.71, 1651.51, 1603.19, 1661.68, 1761.9, 1900.68, 1952.58, 1781.9, 2132.59, 2342.41, 2036.19, 1717.02, 1966.55, 1848.73, 2793.25, 1606.12, 1890.04, 2534.61, 1745.04, 1679.07, 1843.63, 2219.26, 3113.64, 3914.83, 3639.84, 3366.09, 2825.67, 2327.53, 1962.49, 1714.25, 1552.09, 1460.35, 1474.49, 2347.32, 1798.88, 1347.18, 1285.03, 1283.47, 1311.78, 1366.37, 1450.31, 1570.78, 1737.62, 1962.53 +}; + +G4double G4BaryonWidth::wL2110[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000866016, 0.160576, 0.811784, 2.79391, 6.3706, 11.7848, 19.0821, 28.3948, 41.5491, 71.7472, 107.301, 143.627, 179.748, 216.727, 253.878, 291.099, 328.278, 364.709, 401.473, 437.865, 473.782, 508.567, 543.281, 577.278, 610.5, 642.383, 673.938, 704.611, 734.38, 762.758, 790.722, 817.776, 843.868, 869.196, 893.079, 916.733, 939.366, 961.199, 982.285, 1002.22, 1022.05, 1041.45, 1058.72, 1076.22, 1094.27, 1110.54, 1124.8, 1140.16, 1156.62, 1171.44, 1183.42, 1194.86, 1208.51, 1223.69, 1237.38, 1247.27, 1255.2, 1264.15, 1275.87, 1289.73, 1294.66, 1432.97, 1558.49, 1553.36, 1645.56, 1606.26, 1913.61, 1716.01, 1648.3, 1708.91, 1558.93, 1808.07, 2470.06, 2497.8, 1881.49, 1549.05, 1445.66, 1481.65, 1653.98, 1977.38, 2274.49, 2178.21, 1848.53, 1588.18, 1434.37, 1350.69, 1308.88, 1293.8, 1297.95, 1318.11, 1353.71, 1405.89, 1477.58, 1573.31, 1700.02, 1867.76, 2090.12, 2386.48, 2780.57, 3299.5 +}; + +G4double G4BaryonWidth::wS1385[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.43483, 19.8083, 40.3323, 61.0499, 81.5715, 101.296, 120.7, 139.361, 157.234, 174.038, 190.333, 205.859, 220.647, 234.509, 247.935, 260.73, 272.929, 284.567, 295.503, 306.127, 316.285, 326.005, 335.166, 344.093, 352.655, 360.874, 368.645, 376.24, 383.546, 390.581, 397.25, 403.788, 410.094, 416.182, 422.062, 427.655, 433.154, 438.475, 443.627, 448.539, 453.378, 458.07, 462.623, 466.971, 471.264, 475.435, 479.489, 483.368, 487.204, 490.938, 494.572, 498.112, 501.505, 504.868, 508.146, 511.343, 514.413, 517.458, 520.432, 523.335, 526.126, 527.072, 569.149, 598.909, 621.108, 638.366, 652.164, 663.476, 672.91, 680.913, 687.78, 693.748, 698.975, 703.595, 707.712, 711.399, 714.725, 717.736, 720.479, 722.984, 725.286, 727.404, 729.363, 731.177, 732.863, 734.436, 735.904, 737.279, 738.568, 739.781, 740.923, 742.001, 743.019, 743.983, 744.896, 745.763, 746.588, 747.372, 748.12, 748.833, 749.515 +}; + +G4double G4BaryonWidth::wS1660[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.34523, 6.65594, 17.6488, 33.1233, 54.3656, 74.7316, 94.8904, 114.471, 133.448, 151.522, 169.283, 186.441, 203.009, 218.752, 234.207, 249.132, 263.551, 277.486, 290.746, 303.786, 316.406, 328.626, 340.278, 351.76, 362.897, 373.704, 384.03, 394.227, 404.138, 413.775, 423.001, 432.131, 441.021, 449.681, 458.122, 466.222, 474.253, 482.091, 489.742, 497.095, 504.397, 511.534, 518.511, 525.225, 531.902, 538.436, 544.833, 550.995, 557.131, 563.143, 569.034, 574.809, 580.381, 585.936, 591.385, 596.732, 601.896, 607.049, 612.108, 617.077, 621.88, 623.514, 699.424, 757.381, 803.259, 840.66, 871.747, 898.072, 920.636, 940.234, 957.395, 972.578, 986.086, 998.195, 1009.12, 1019.02, 1028.04, 1036.28, 1043.85, 1050.82, 1057.27, 1063.24, 1068.8, 1073.98, 1078.81, 1083.35, 1087.6, 1091.6, 1095.37, 1098.93, 1102.29, 1105.47, 1108.49, 1111.35, 1114.07, 1116.67, 1119.14, 1121.49, 1123.75, 1125.9, 1127.96 +}; + +G4double G4BaryonWidth::wS1670[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0540702, 0.631535, 4.23922, 11.2488, 22.4509, 36.3456, 52.6497, 70.5776, 89.6448, 109.122, 129.318, 149.646, 169.887, 189.555, 209.164, 228.294, 246.876, 264.86, 281.943, 298.668, 314.744, 330.174, 344.733, 358.912, 372.484, 385.469, 397.692, 409.576, 420.937, 431.8, 442.021, 451.959, 461.462, 470.553, 479.251, 487.445, 495.42, 503.057, 510.373, 517.274, 524, 530.45, 536.639, 542.484, 548.191, 553.672, 558.938, 563.921, 568.792, 573.478, 577.988, 582.33, 586.446, 590.478, 594.364, 598.11, 601.667, 605.156, 608.524, 611.776, 614.868, 615.908, 658.062, 682.84, 698.539, 709.102, 716.527, 721.95, 726.022, 729.162, 731.629, 733.605, 735.21, 736.532, 737.635, 738.564, 739.353, 740.029, 740.614, 741.121, 741.566, 741.957, 742.303, 742.61, 742.885, 743.131, 743.352, 743.552, 743.733, 743.898, 744.048, 744.185, 744.311, 744.427, 744.533, 744.631, 744.722, 744.806, 744.885, 744.957, 745.025 +}; + +G4double G4BaryonWidth::wS1750[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.508819, 1.76035, 13.4629, 23.5792, 29.7383, 34.4445, 38.2189, 116.784, 170.863, 207.052, 234.924, 257.727, 276.713, 293.383, 307.978, 320.895, 332.428, 342.637, 352.027, 360.561, 368.35, 375.376, 381.944, 388.001, 393.602, 398.712, 403.542, 408.038, 412.234, 416.094, 419.769, 423.217, 426.455, 429.501, 432.325, 435.034, 437.593, 440.012, 442.266, 444.437, 446.497, 448.453, 450.283, 452.053, 453.738, 455.344, 456.852, 458.314, 459.712, 461.047, 462.325, 463.528, 464.7, 465.823, 466.901, 467.918, 468.911, 469.865, 470.783, 471.651, 471.942, 483.418, 489.886, 493.887, 496.539, 498.384, 499.722, 500.722, 501.489, 502.091, 502.571, 502.961, 503.281, 503.548, 503.773, 503.963, 504.127, 504.268, 504.39, 504.497, 504.591, 504.674, 504.748, 504.814, 504.874, 504.927, 504.975, 505.018, 505.058, 505.094, 505.127, 505.157, 505.185, 505.211, 505.234, 505.256, 505.276, 505.295, 505.312, 505.329 +}; + +G4double G4BaryonWidth::wS1775[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.109395, 1.12574, 3.17371, 7.17576, 16.9941, 33.5385, 57.7761, 85.8023, 116.419, 148.274, 181.77, 215.874, 250.171, 283.788, 317.579, 350.804, 383.321, 415.032, 445.379, 475.312, 504.303, 532.338, 559.001, 585.148, 610.401, 634.706, 657.785, 680.452, 702.128, 723.109, 743.175, 762.602, 781.149, 799.32, 817.085, 833.659, 849.44, 864.678, 879.954, 895.034, 909.865, 923.54, 935.882, 947.169, 958.461, 970.056, 982.104, 994.238, 1006.4, 1017.8, 1028.02, 1037.08, 1045.25, 1053.31, 1061.45, 1069.79, 1078.18, 1086.9, 1095.83, 1104.89, 1113.72, 1116.68, 1216.13, 1289.75, 1286.8, 1365.07, 1391.54, 1312.12, 1356.95, 1495.87, 1611.1, 1678.08, 1726.23, 1724.13, 1672.59, 1603.63, 1548.55, 1527.56, 1552.59, 1624.89, 1715.35, 1752.74, 1687.41, 1555.7, 1421.55, 1313.83, 1234.04, 1175.55, 1132.2, 1099.35, 1073.95, 1053.91, 1037.84, 1024.75, 1013.98, 1005, 997.467, 991.102, 985.689, 981.073, 977.118 +}; + +G4double G4BaryonWidth::wS1915[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0138455, 0.320438, 1.50127, 4.23235, 9.50349, 18.1414, 30.2739, 45.7144, 64.3582, 85.6283, 109.936, 136.604, 165.241, 194.941, 226.276, 258.381, 290.896, 323.499, 355.386, 387.367, 418.719, 449.284, 478.469, 507.137, 534.749, 561.251, 586.235, 610.525, 633.668, 655.736, 676.438, 696.401, 715.331, 733.374, 750.565, 766.562, 781.882, 796.403, 810.299, 823.411, 836.087, 847.993, 859.115, 869.422, 879.437, 889.123, 898.53, 907.488, 916.191, 924.353, 931.884, 938.812, 945.17, 951.333, 957.319, 963.191, 968.885, 974.608, 980.284, 985.903, 991.313, 993.129, 1051.6, 1081.72, 1097.55, 1127.23, 1142.79, 1117.03, 1120.73, 1142.41, 1143.58, 1125.62, 1116.24, 1115.03, 1119.19, 1128.36, 1143.85, 1168.3, 1205.2, 1255.47, 1308.58, 1337.35, 1322.99, 1280.41, 1235.27, 1199.27, 1173.24, 1154.79, 1141.61, 1132, 1124.87, 1119.44, 1115.25, 1111.95, 1109.31, 1107.18, 1105.42, 1103.97, 1102.75, 1101.73, 1100.85 +}; + +G4double G4BaryonWidth::wS1940[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0789079, 0.833069, 2.92385, 6.95982, 16.0306, 33.5919, 54.272, 78.8874, 109.593, 144.898, 189.352, 227.639, 262.184, 293.948, 324.598, 353.928, 382.135, 409.341, 435.215, 460.664, 485.303, 509.169, 531.929, 554.349, 576.089, 597.149, 617.249, 637.077, 656.244, 674.858, 692.674, 710.176, 727.089, 743.563, 759.621, 774.831, 789.731, 804.194, 818.423, 832.266, 845.8, 858.778, 871.113, 882.539, 893.927, 905.395, 916.677, 927.537, 938.589, 949.535, 959.845, 969.306, 978.217, 987.358, 996.609, 1005.57, 1013.77, 1021.65, 1029.51, 1037.61, 1045.72, 1048.48, 1156.81, 1241.58, 1248.4, 1302.91, 1315.21, 1328.75, 1349.47, 1434.02, 1541.93, 1613.02, 1697.08, 1765.39, 1720.37, 1587.43, 1486.35, 1427.78, 1408.9, 1428.79, 1476.77, 1509.39, 1471.56, 1389.12, 1313.42, 1257.61, 1217.96, 1188.88, 1166.54, 1148.63, 1134.04, 1122.29, 1113.34, 1107.38, 1104.83, 1106.3, 1112.66, 1125.17, 1145.59, 1176.12, 1219.32 +}; + +G4double G4BaryonWidth::wS2030[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.00689107, 0.158875, 0.672308, 1.8109, 4.35018, 8.83354, 16.5499, 27.7235, 42.7971, 63.0194, 90.6356, 126.187, 168.787, 216.237, 268.657, 323.948, 380.924, 438.601, 495.267, 552.181, 607.949, 662.235, 713.986, 764.709, 813.512, 860.257, 904.311, 947.176, 987.877, 1026.8, 1063.49, 1098.73, 1132.06, 1164.11, 1194.93, 1223.41, 1250.44, 1276.14, 1301.26, 1325.51, 1348.9, 1370.53, 1390.21, 1407.97, 1425.48, 1443.13, 1460.74, 1477.8, 1494.81, 1510.91, 1525.25, 1537.69, 1548.87, 1560.07, 1571.45, 1582.71, 1593.36, 1603.95, 1614.76, 1626, 1637.2, 1640.97, 1751.61, 1823.25, 1807.74, 1881.02, 1898.13, 1846.76, 1855.93, 1953.37, 2033.63, 2046.58, 2093.49, 2145.89, 2103.09, 1988.62, 1921.38, 1916.59, 1977.71, 2105.08, 2269.01, 2377.76, 2342.77, 2213.38, 2082.54, 1981.47, 1906.18, 1846.08, 1793.53, 1744.3, 1697, 1651.59, 1608.92, 1569.94, 1535.75, 1507.36, 1485.83, 1472.51, 1469.03, 1477.51, 1500.25 +}; + +G4double G4BaryonWidth::wX1530[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.00237721, 0.0342598, 0.574924, 7.68701, 15.0598, 22.6625, 30.2129, 37.6029, 44.6523, 51.5544, 58.1718, 64.4977, 70.438, 76.1939, 81.6753, 86.8938, 91.8619, 96.5183, 101.028, 105.327, 109.425, 113.275, 117.011, 120.582, 123.996, 127.211, 130.34, 133.339, 136.215, 138.931, 141.583, 144.131, 146.581, 148.938, 151.172, 153.36, 155.469, 157.504, 159.437, 161.334, 163.168, 164.941, 166.628, 168.289, 169.897, 171.454, 172.94, 174.405, 175.826, 177.205, 178.544, 179.824, 181.089, 182.318, 183.514, 184.658, 185.791, 186.894, 187.968, 188.998, 189.346, 204.531, 214.89, 222.405, 228.12, 232.609, 236.236, 239.224, 241.733, 243.867, 245.707, 247.307, 248.713, 249.96, 251.071, 252.069, 252.969, 253.786, 254.53, 255.211, 255.837, 256.413, 256.946, 257.441, 257.901, 258.33, 258.731, 259.106, 259.458, 259.79, 260.102, 260.397, 260.675, 260.939, 261.189, 261.427, 261.653, 261.868, 262.072, 262.268 +}; + +G4double G4BaryonWidth::wX1690[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0763157, 1.19538, 2.43041, 17.1344, 56.614, 115.797, 165.003, 209.344, 249.404, 286.017, 319.219, 350.503, 379.618, 406.817, 432.307, 455.887, 478.475, 499.801, 519.976, 538.797, 556.964, 574.239, 590.688, 606.125, 621.111, 635.436, 649.145, 662.071, 674.675, 686.775, 698.401, 709.581, 720.173, 730.546, 740.547, 750.195, 759.363, 768.368, 777.073, 785.495, 793.518, 801.418, 809.073, 816.496, 823.583, 830.577, 837.368, 843.966, 850.38, 856.518, 862.589, 868.498, 874.251, 879.765, 885.229, 890.554, 895.747, 900.732, 902.421, 976.795, 1028.66, 1067.02, 1096.67, 1120.3, 1139.62, 1155.7, 1169.33, 1181.01, 1191.16, 1200.04, 1207.89, 1214.88, 1221.14, 1226.79, 1231.9, 1236.56, 1240.81, 1244.72, 1248.31, 1251.64, 1254.72, 1257.58, 1260.25, 1262.74, 1265.08, 1267.27, 1269.33, 1271.27, 1273.1, 1274.83, 1276.47, 1278.02, 1279.49, 1280.89, 1282.22, 1283.49, 1284.71, 1285.86 +}; + +G4double G4BaryonWidth::wX1820[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.00396219, 0.187158, 0.570095, 2.21304, 7.48292, 15.6029, 24.9587, 35.1774, 45.7246, 56.3498, 66.7173, 77.0552, 87.1167, 96.8526, 106.233, 115.098, 123.733, 131.99, 139.875, 147.278, 154.453, 161.289, 167.801, 173.905, 179.816, 185.445, 190.808, 195.837, 200.71, 205.356, 209.787, 214.015, 217.987, 221.844, 225.528, 229.049, 232.363, 235.587, 238.672, 241.626, 244.412, 247.126, 249.729, 252.227, 254.586, 256.889, 259.102, 261.228, 263.273, 265.209, 267.103, 268.926, 270.683, 272.348, 273.98, 275.554, 277.073, 278.515, 279, 298.538, 309.919, 317.091, 321.9, 325.273, 327.733, 329.577, 330.998, 332.113, 333.007, 333.732, 334.329, 334.827, 335.246, 335.602, 335.907, 336.171, 336.4, 336.6, 336.777, 336.933, 337.071, 337.195, 337.306, 337.406, 337.496, 337.577, 337.652, 337.719, 337.781, 337.838, 337.89, 337.938, 337.982, 338.023, 338.061, 338.096, 338.129, 338.16 +}; + +G4double G4BaryonWidth::wX1950[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.100617, 1.59133, 3.2792, 8.34497, 17.6234, 29.1125, 39.8892, 50.3908, 60.4791, 70.1831, 79.3785, 88.3872, 97.0743, 105.457, 113.553, 121.251, 128.819, 136.143, 143.233, 149.994, 156.658, 163.123, 169.398, 175.395, 181.321, 187.082, 192.687, 198.056, 203.372, 208.551, 213.6, 218.524, 223.251, 227.942, 232.523, 236.998, 241.302, 245.579, 249.762, 253.855, 257.796, 261.719, 265.561, 269.324, 272.952, 276.568, 280.113, 283.59, 287.001, 290.295, 293.581, 296.807, 299.975, 303.036, 306.094, 309.099, 312.052, 314.908, 315.88, 361.355, 396.526, 424.689, 447.879, 467.326, 483.922, 498.244, 510.761, 521.781, 531.578, 540.333, 548.213, 555.349, 561.833, 567.761, 573.192, 578.196, 582.813, 587.095, 591.069, 594.774, 598.232, 601.468, 604.506, 607.359, 610.048, 612.582, 614.979, 617.245, 619.395, 621.434, 623.373, 625.217, 626.974, 628.651, 630.251, 631.782, 633.246, 634.649 +}; + +G4double G4BaryonWidth::wX2030[120] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.05812e-05, 0.0112536, 0.0516028, 0.159053, 0.54036, 1.94631, 4.55324, 8.37141, 13.2405, 18.9996, 25.3629, 32.3631, 39.7317, 47.316, 54.9838, 62.5026, 70.0316, 77.3782, 84.4916, 91.2278, 97.7845, 104.036, 109.976, 115.517, 120.847, 125.88, 130.628, 135.032, 139.25, 143.222, 146.961, 150.481, 153.743, 156.868, 159.811, 162.585, 165.16, 167.63, 169.962, 172.164, 174.212, 176.182, 178.046, 179.811, 181.458, 183.045, 184.551, 185.98, 187.338, 188.609, 189.839, 191.009, 192.123, 193.169, 194.183, 195.15, 196.074, 196.942, 197.233, 208.093, 213.639, 216.816, 218.798, 220.111, 221.025, 221.686, 222.179, 222.555, 222.85, 223.084, 223.274, 223.43, 223.559, 223.667, 223.759, 223.837, 223.905, 223.963, 224.014, 224.059, 224.099, 224.134, 224.165, 224.193, 224.218, 224.241, 224.261, 224.28, 224.297, 224.312, 224.326, 224.339, 224.351, 224.362, 224.372, 224.382, 224.391, 224.399 +}; + + +G4BaryonWidth::G4BaryonWidth(): wSize(120) +{ + wMap["N(1440)"] = (G4double*) wN1440; + wMap["N(1520)"] = (G4double*) wN1520; + wMap["N(1535)"] = (G4double*) wN1535; + wMap["N(1650)"] = (G4double*) wN1650; + wMap["N(1675)"] = (G4double*) wN1675; + wMap["N(1680)"] = (G4double*) wN1680; + wMap["N(1700)"] = (G4double*) wN1700; + wMap["N(1710)"] = (G4double*) wN1710; + wMap["N(1720)"] = (G4double*) wN1720; + wMap["N(1900)"] = (G4double*) wN1900; + wMap["N(1990)"] = (G4double*) wN1990; + wMap["N(2090)"] = (G4double*) wN2090; + wMap["N(2190)"] = (G4double*) wN2190; + wMap["N(2220)"] = (G4double*) wN2220; + + wMap["delta"] = (G4double*) wDelta; + + wMap["delta(1600)"] = (G4double*) wD1600; + wMap["delta(1620)"] = (G4double*) wD1620; + wMap["delta(1700)"] = (G4double*) wD1700; + wMap["delta(1900)"] = (G4double*) wD1900; + wMap["delta(1905)"] = (G4double*) wD1905; + wMap["delta(1910)"] = (G4double*) wD1910; + wMap["delta(1920)"] = (G4double*) wD1920; + wMap["delta(1930)"] = (G4double*) wD1930; + wMap["delta(1950)"] = (G4double*) wD1950; + + wMap["lambda(1405)"] = (G4double*) wL1405; + wMap["lambda(1520)"] = (G4double*) wL1520; + wMap["lambda(1600)"] = (G4double*) wL1600; + wMap["lambda(1670)"] = (G4double*) wL1670; + wMap["lambda(1690)"] = (G4double*) wL1690; + wMap["lambda(1800)"] = (G4double*) wL1800; + wMap["lambda(1810)"] = (G4double*) wL1810; + wMap["lambda(1820)"] = (G4double*) wL1820; + wMap["lambda(1830)"] = (G4double*) wL1830; + wMap["lambda(1890)"] = (G4double*) wL1890; + wMap["lambda(2100)"] = (G4double*) wL2100; + wMap["lambda(2110)"] = (G4double*) wL2110; + + wMap["sigma(1385)"] = (G4double*) wS1385; + wMap["sigma(1660)"] = (G4double*) wS1660; + wMap["sigma(1670)"] = (G4double*) wS1670; + wMap["sigma(1750)"] = (G4double*) wS1750; + wMap["sigma(1775)"] = (G4double*) wS1775; + wMap["sigma(1915)"] = (G4double*) wS1915; + wMap["sigma(1940)"] = (G4double*) wS1940; + wMap["sigma(2030)"] = (G4double*) wS2030; + + wMap["xi(1530)"] = (G4double*) wX1530; + wMap["xi(1690)"] = (G4double*) wX1690; + wMap["xi(1820)"] = (G4double*) wX1820; + wMap["xi(1950)"] = (G4double*) wX1950; + wMap["xi(2030)"] = (G4double*) wX2030; + + +} + + +G4BaryonWidth::~G4BaryonWidth() +{ } + + +G4bool G4BaryonWidth::operator==(const G4BaryonWidth &right) const +{ + return (this == (G4BaryonWidth*) &right); +} + + +G4bool G4BaryonWidth::operator!=(const G4BaryonWidth &right) const +{ + return (this != (G4BaryonWidth*) &right); +} + + +G4PhysicsVector* G4BaryonWidth::MassDependentWidth(const G4String& name) const +{ + // NOTE: the returned pointer is owned by the client + + if (wMap.find(name) != wMap.end()) + { + // width of the requested particle available in the Map + G4PhysicsFreeVector* wVector = new G4PhysicsFreeVector(wSize); + G4String key = name; + G4std::map >::const_iterator iter; + G4double* wPointer=0; + for (iter = wMap.begin(); iter != wMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == key) + { + wPointer = (*iter).second; + } + } + // G4double* wPointer = wMap[key]; + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return wVector; + } + else + { + return 0; + } +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc b/source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc new file mode 100644 index 0000000000..3addef0c2d --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc @@ -0,0 +1,536 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4ios.hh" +#include "G4Clebsch.hh" +#include "Randomize.hh" +#include "G4Proton.hh" + +G4Clebsch::G4Clebsch() +{ + G4int nLogs = 101; + logs.push_back(0.); + G4int i; + for (i=1; i& G4Clebsch::GetLogs() const +{ + return logs; +} + + + +G4double G4Clebsch::Weight(G4int isoIn1, G4int iso3In1, + G4int isoIn2, G4int iso3In2, + G4int isoOut1, G4int isoOut2) const +{ + G4double value = 0.; + + G4int m = iso3In1 + iso3In2; + + G4int jMinIn = G4std::max(abs(isoIn1 - isoIn2), abs(m)); + G4int jMaxIn = isoIn1 + isoIn2; + + G4int jMinOut = G4std::max(abs(isoOut1 - isoOut2), abs(m)); + G4int jMaxOut = isoOut1 + isoOut2; + + G4int jMin = G4std::max(jMinIn,jMinOut); + G4int jMax = G4std::min(jMaxIn,jMaxOut); + + G4int j; + for (j=jMin; j<=jMax; j+=2) + { + value += ClebschGordan(isoIn1,iso3In1, isoIn2,iso3In2, j); + } + + return value; +} + + +G4double G4Clebsch::ClebschGordan(G4int isoIn1, G4int iso3In1, + G4int isoIn2, G4int iso3In2, + G4int jOut) const +{ + // Calculates Clebsch-Gordan coefficient + + G4double j1 = isoIn1 / 2.0; + G4double j2 = isoIn2 / 2.0; + G4double j3 = jOut / 2.0; + + G4double m1 = iso3In1 / 2.0; + G4double m2 = iso3In2 / 2.0; + G4double m3 = - (m1 + m2); + + G4int n = static_cast(m3+j1+j2+.1); + G4double argument = 2. * j3 + 1.; + if (argument < 0.) + G4Exception("G4Clebsch::ClebschGordan - sqrt of negative argument"); + G4double coeff = sqrt(argument) / (pow(-1.,n)); + G4double clebsch = coeff * Wigner3J(j1,j2,j3, m1,m2,m3); + G4double value = clebsch * clebsch; + +// G4cout << "ClebschGordan(" +// << isoIn1 << "," << iso3In1 << "," +// << isoIn2 << "," << iso3In2 << "," << jOut +// << ") = " << value << G4endl; + + return value; +} + + +G4double G4Clebsch::Wigner3J(G4double j1, G4double j2, G4double j3, + G4double m1, G4double m2, G4double m3) const +{ + // Calculates Wigner 3-j symbols + + G4double value = 0.; + + G4double sigma = j1 + j2 + j3; + G4std::vector n; + n.push_back(-j1 + j2 + j3); // n0 + n.push_back(j1 - m1); // n1 + n.push_back(j1 + m1); // n2 + n.push_back(j1 - j2 + j3); // n3 + n.push_back(j2 - m2); // n4 + n.push_back(j2 + m2); // n5 + n.push_back(j1 + j2 - j3); // n6 + n.push_back(j3 - m3); // n7 + n.push_back(j3 + m3); // n8 + + // Some preliminary checks + + G4bool ok = true; + size_t i; + for(i=1; i<=3; i++) + { + G4double sum1 = n[i-1] + n[i+2] + n[i+5]; + G4double sum2 = n[3*i-1] + n[3*i-2] + n[3*i-3]; + if (sum1 != sigma || sum2 != sigma) ok = false; + G4int j; + for(j=1; j<=3; j++) + { + if (n[i+3*j-4] < 0.) ok = false; + } + } + + if (ok) + { + G4int iMin = 1; + G4int jMin = 1; + G4double smallest = n[0]; + + // Find the smallest n + for (i=1; i<=3; i++) + { + G4int j; + for (j=1; j<=3; j++) + { + if (n[i+3*j-4] < smallest) + { + smallest = n[i+3*j-4]; + iMin = i; + jMin = j; + } + } + } + + G4int sign = 1; + + if(iMin > 1) + { + for(G4int j=1; j<=3; ++j) + { + G4double tmp = n[j*3-3]; + n[j*3-3] = n[iMin+j*3-4]; + n[iMin+j*3-4] = tmp; + } + sign = (G4int) pow(-1.,sigma); + } + + if (jMin > 1) + { + for(i=1; i<=3; i++) + { + G4double tmp = n[i-1]; + n[i-1] = n[i+jMin*3-4]; + n[i+jMin*3-4] = tmp; + } + sign *= (G4int) pow(-1.,sigma); + } + + const G4std::vector logVector = GetLogs(); + size_t n1 = static_cast(n[0]); + + // Some boundary checks + G4int logEntries = logVector.size() - 1; + for (i=0; i logEntries) + G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, n"); + } + + G4double r1 = n[0]; + G4double r2 = n[3]; + G4double r3 = n[6]; + G4double r4 = n[1]; + G4double r5 = n[4]; + G4double r6 = n[7]; + G4double r7 = n[2]; + G4double r8 = n[5]; + G4double r9 = n[8]; + + G4double l1 = logVector[(G4int)r1]; + G4double l2 = logVector[(G4int)r2]; + G4double l3 = logVector[(G4int)r3]; + G4double l4 = logVector[(G4int)r4]; + G4double l5 = logVector[(G4int)r5]; + G4double l6 = logVector[(G4int)r6]; + G4double l7 = logVector[(G4int)r7]; + G4double l8 = logVector[(G4int)r8]; + G4double l9 = logVector[(G4int)r9]; + + G4double sigma1 = sigma + 1.; + if (sigma1 < 0. || sigma1 > logEntries) + G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, sigma"); + + G4double ls = logVector[sigma1]; + G4double hlp1 = (l2 + l3 + l4 +l7 -ls -l1 -l5 -l9 -l6 -l8) / 2.; + G4int expon = static_cast(r6 + r8); + G4double sgn = pow(-1., expon); + G4double coeff = exp(hlp1) * sgn; + + G4int n61 = static_cast(r6 - r1); + if (n61 < 0. || n61 > logEntries) + G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, n61"); + G4int n81 = static_cast(r8 - r1); + if (n81 < 0. || n81 > logEntries) + G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, n81"); + + G4double hlp2 = l6 - logVector[n61] + l8 - logVector[n81]; + G4double sum = exp(hlp2); + G4std::vector s; + s.push_back(sum); + n1 = (size_t)r1; + for (i=1; i<=n1; i++) + { + G4double last = s.back(); + G4double den = i * (r6 - r1 + i) * (r8 - r1 + i); + if (den == 0) + G4Exception("G4Clebsch::Wigner3J - divide by zero"); + G4double data = -last * (r1 + 1.0 - i) * (r5 + 1.0 - i) * (r9 + 1. - i) / den; + s.push_back(data); + sum += data; + } + value = coeff * sum * sign; + } // endif ok + else + { + } + + +// G4cout << "Wigner3j(" +// << j1 << "," << j2 << "," << j3 << "," +// << m1 << "," << m2 << "," << m3 << ") = " +// << value +// << G4endl; + + return value; +} + + + +G4std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, + G4int isoIn2, G4int iso3In2, + G4int isoA, G4int isoB) const +{ + G4std::vector temp; + + // ---- Special cases first ---- + + // Special case, both Jin are zero + if (isoIn1 == 0 && isoIn2 == 0) + { + G4cout << "WARNING: G4Clebsch::GenerateIso3 - both isoIn are zero" << G4endl; + temp.push_back(0.); + temp.push_back(0.); + return temp; + } + + G4int iso3 = iso3In1 + iso3In2; + + // Special case, either Jout is zero + if (isoA == 0) + { + temp.push_back(0.); + temp.push_back(iso3); + return temp; + } + if (isoB == 0) + { + temp.push_back(iso3); + temp.push_back(0.); + return temp; + } + + // Number of possible states, in + G4int jMinIn = G4std::max(abs(isoIn1 - isoIn2), abs(iso3)); + G4int jMaxIn = isoIn1 + isoIn2; + + // Number of possible states, out + + G4int jMinOut = 9999; + G4int jTmp, i, j; + + for(i=-1; i<=1; i+=2) + { + for(j=-1; j<=1; j+=2) + { + jTmp= abs(i*isoA + j*isoB); + if(jTmp < jMinOut) jMinOut = jTmp; + } + } + jMinOut = G4std::max(jMinOut, abs(iso3)); + G4int jMaxOut = isoA + isoB; + + // Possible in and out common states + G4int jMin = G4std::max(jMinIn, jMinOut); + G4int jMax = G4std::min(jMaxIn, jMaxOut); + if (jMin > jMax) + { + G4Exception ("G4Clebsch::GenerateIso3 - jMin > JMax"); + } + + // Number of possible isospins + G4int nJ = (jMax - jMin) / 2 + 1; + + // A few consistency checks + + if ( (isoIn1 == 0 || isoIn2 == 0) && jMin != jMax ) + G4Exception ("G4Clebsch::GenerateIso3 - J1 or J2 = 0, but jMin != JMax"); + + // MGP ---- Shall it be a warning or an exception? + if (nJ == 0) + G4Exception ("G4Clebsch::GenerateIso3 - nJ is zero, no overlap between in and out"); + + // Loop over all possible combinations of isoIn1, isoIn2, iso3In11, iso3In2, jTot + // to get the probability of each of the in-channel couplings + + G4std::vector clebsch; + + for(j=jMin; j<=jMax; j+=2) + { + G4double cg = ClebschGordan(isoIn1, iso3In1, isoIn2, iso3In2, j); + clebsch.push_back(cg); + } + + // Consistency check + if (static_cast(clebsch.size()) != nJ) + G4Exception ("G4Clebsch::GenerateIso3 - nJ inconsistency"); + + G4double sum = clebsch[0]; + + for (j=1; j clebschPdf; + G4double previous = clebsch[0]; + clebschPdf.push_back(previous/sum); + for (j=1; j mMin; + mMin.push_back(-isoA); + mMin.push_back(-isoB); + + G4std::vector mMax; + mMax.push_back(isoA); + mMax.push_back(isoB); + + // Calculate the possible |J_i M_i> combinations and their probability + + G4std::vector m1Out; + G4std::vector m2Out; + + const G4int size = 20; + G4double prbout[size][size]; + + G4int m1pos(0), m2pos(0); + G4int j12; + G4int m1pr(0), m2pr(0); + + sum = 0.; + for(j12 = abs(isoA-isoB); j12<=(isoA+isoB); j12+=2) + { + m1pos = -1; + for (m1pr = static_cast(mMin[0]); m1pr <= mMax[0]; m1pr+=2) + { + m1pos++; + if (m1pos >= size) + G4Exception ("G4Clebsch::GenerateIso3 - m1pos > size"); + m1Out.push_back(m1pr); + m2pos = -1; + for (m2pr = static_cast(mMin[1]); m2pr <= mMax[1]; m2pr+=2) + { + m2pos++; + if (m2pos >= size) + { + G4Exception ("G4Clebsch::GenerateIso3 - m2pos > size"); + } + m2Out.push_back(m2pr); + + if(m1pr + m2pr == iso3) + { + G4int m12 = m1pr + m2pr; + G4double c12 = ClebschGordan(isoA, m1pr, isoB,m2pr, j12); + G4double c34 = ClebschGordan(0,0,0,0,0); + G4double ctot = ClebschGordan(j12, m12, 0, 0, jTot); + G4double cleb = c12*c34*ctot; + prbout[m1pos][m2pos] = cleb; + sum += cleb; + } + else + { + prbout[m1pos][m2pos] = 0.; + } + } + } + } + + if (sum <= 0.) + G4Exception("G4Clebsch::GenerateIso3 - sum (out) <=0"); + + for (i=0; i 0.) cleb /= sum; + + return cleb; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc new file mode 100644 index 0000000000..3b881f8d01 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc @@ -0,0 +1,197 @@ +// +// ******************************************************************** +// * 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: G4CollisionComposite.cc,v 1.10 2002/12/12 19:17:47 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionComposite.hh" +#include "G4VCollision.hh" +#include "G4CollisionVector.hh" +#include "G4KineticTrack.hh" +#include "G4KineticTrackVector.hh" +#include "G4VCrossSectionSource.hh" + +const G4int G4CollisionComposite::nPoints = 32; + +G4double G4CollisionComposite::theT[nPoints] = +{.01, .03, .05, .1, .15, .2, .3, .4, .5, .6, .7, .8, .9, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 8.0, 10., 15, 20, 50, 100}; + +G4CollisionComposite::G4CollisionComposite() +{ +} + + +G4CollisionComposite::~G4CollisionComposite() +{ + for (size_t i=0; iCrossSection(trk1,trk2); + } + else + { + // waiting for mutable to enable buffering. + const_cast(this)->BufferCrossSection(trk1.GetDefinition(), trk2.GetDefinition()); +// G4cerr << "Buffer filled, reying with sqrts = "<< (trk1.Get4Momentum()+trk2.Get4Momentum()).mag() < cxCache; + G4double partialCxSum = 0.0; + + size_t i; + for (i=0; iGetName(); + if (components[i]()->IsInCharge(trk1,trk2)) + { + partialCx = components[i]()->CrossSection(trk1,trk2); + } + else + { + partialCx = 0.0; + } +// cout << " cx=" << partialCx << endl; + partialCxSum += partialCx; + cxCache.push_back(partialCx); + } + + G4double random = G4UniformRand()*partialCxSum; + G4double running = 0; + for (i=0; i random) + { + return components[i]()->FinalState(trk1, trk2); + } + } +// G4cerr <<"in charge = "<GetParticleName()<begin(); iter != components->end(); ++iter) + { + if ( ((*iter)())->IsInCharge(trk1,trk2) ) isInCharge = true; + } + } + + return isInCharge; +} + +void G4CollisionComposite:: +BufferCrossSection(const G4ParticleDefinition * aP, const G4ParticleDefinition * bP) +{ + // check if already buffered + size_t i; + for(i=0; iGetParticleName()<<" "<GetParticleName()<GetPDGMass(); + G4double aE = aM+aT; + G4ThreeVector aMom(0,0,sqrt(aE*aE-aM*aM)); + G4LorentzVector a4Momentum(aE, aMom); + G4KineticTrack a(const_cast(aP), atime, aPosition, a4Momentum); + + G4double btime = 0; + G4ThreeVector bPosition(0,0,0); + G4ThreeVector bMom(0,0,0*MeV); + G4double bE = bP->GetPDGMass(); + G4LorentzVector b4Momentum(bE, bMom); + G4KineticTrack b(const_cast(bP), btime, bPosition, b4Momentum); + + for (i=0; iIsInCharge(a,b)) + { + crossSect += components[i]()->CrossSection(a,b); + } + } + G4double sqrts = (a4Momentum+b4Momentum).mag(); + aNewBuff.push_back(sqrts, crossSect); + } + theBuffer.push_back(aNewBuff); +// theBuffer.back().Print(); +} + + +G4double G4CollisionComposite:: +BufferedCrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + for(size_t i=0; ipush_back(collision); +} + + +void G4CollisionManager::RemoveCollision(G4CollisionInitialState * collision) +{ + theCollisionList->erase(G4std::find(theCollisionList->begin(), + theCollisionList->end(), + collision)); + delete collision; + collision = NULL; // prevent future use of the pointer +} + + +void G4CollisionManager::RemoveTracksCollisions(G4KineticTrackVector * ktv) +{ + if(ktv == NULL) + return; + if(ktv->empty()) + return; + + G4CollisionInitialState * collision; + G4std::vector::iterator collIter, collIter2; + G4std::vector::iterator trackIter; + G4ListOfCollisions toRemove; + + for(collIter = theCollisionList->begin(); + collIter != theCollisionList->end(); ++collIter) + { + collision = *collIter; + for(trackIter = ktv->begin(); trackIter != ktv->end(); ++trackIter) + { + if((collision->GetTarget() == *trackIter) || + (collision->GetPrimary() == *trackIter)) + { // cannot remove the collision from the list inside the loop. Save and do it later + toRemove.push_back(collision); + break; // exit from the "trackIter" loop + } + } + } + + // now remove the collisions + for(collIter = toRemove.begin(); collIter != toRemove.end(); ++collIter) + { + collision = *collIter; + collIter2 = G4std::find(theCollisionList->begin(), + theCollisionList->end(), collision); + theCollisionList->erase(collIter2); // remove from list... + delete collision; // ...and delete the collision + } +} + + +void G4CollisionManager::ClearAndDestroy() +{ + G4std::vector::iterator i; + for(i = theCollisionList->begin(); i != theCollisionList->end(); ++i) + delete *i; + theCollisionList->clear(); +} + + +G4CollisionInitialState * G4CollisionManager::GetNextCollision() +{ + G4CollisionInitialState * theNext=0; + G4double nextTime = DBL_MAX; + G4std::vector::iterator i; + for(i = theCollisionList->begin(); i != theCollisionList->end(); ++i) + { + if(nextTime > (*i)->GetCollisionTime()) + { + nextTime = (*i)->GetCollisionTime(); + theNext = *i; + } + } + #ifdef debug_G4CollisionManager + if(theNext == 0 && theCollisionList->size()!=0) + { + G4double debugTime = DBL_MAX; + G4cerr <<"G4CollisionManager::GetNextCollision - Fatal"<size()<begin(); i != theCollisionList->end(); ++i) + { + G4cerr <<" Time to collision "<<(*i)->GetCollisionTime()<<" "<GetPrimary()->Get4Momentum()<<" " + <<(*i)->GetPrimary()->GetDefinition()->GetParticleName()<GetTarget()->Get4Momentum()<<" " + <<(*i)->GetTarget()->GetDefinition()->GetParticleName()<::iterator i; + + G4cout << "CollisionManager: " << theCollisionList->size() + << " entries at " << theCollisionList << G4endl; + G4CollisionInitialState * collision; + for(i = theCollisionList->begin(); i != theCollisionList->end(); ++i) + { + collision = *i; + G4cout << " collision " << collision << " time: " + << collision->GetCollisionTime()/second << " proj: " + << collision->GetPrimary() << " trgt: " + << collision->GetTarget() << G4endl; + } +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryon.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryon.cc new file mode 100644 index 0000000000..6e7a8a12f1 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryon.cc @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4CollisionMesonBaryon.hh" +#include "G4CollisionMesonBaryonElastic.hh" +#include "G4CollisionComposite.hh" +#include "G4VCollision.hh" +#include "G4CollisionVector.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4XNNTotal.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4PionZero.hh" +#include "G4PionMinus.hh" +#include "G4PionPlus.hh" + +#include "G4CollisionMesonBaryonToResonance.hh" +#include "G4CollisionMesonBaryonElastic.hh" + +G4CollisionMesonBaryon::G4CollisionMesonBaryon() +{ + G4CollisionComposite::AddComponent(new G4CollisionMesonBaryonToResonance()); +// G4CollisionComposite::AddComponent(new G4CollisionMesonBaryonElastic()); +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonElastic.cc new file mode 100644 index 0000000000..8cd6622318 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonElastic.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +#include "G4CollisionMesonBaryonElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4XMesonBaryonElastic.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4PionZero.hh" +#include "G4PionMinus.hh" +#include "G4PionPlus.hh" +#include "g4std/vector" +G4CollisionMesonBaryonElastic::G4CollisionMesonBaryonElastic() +{ + angularDistribution = new G4AngularDistribution(false); + crossSectionSource = new G4XMesonBaryonElastic(); +} + +G4CollisionMesonBaryonElastic::~G4CollisionMesonBaryonElastic() +{ + delete angularDistribution; + delete crossSectionSource; +} + +G4bool G4CollisionMesonBaryonElastic:: + IsInCharge(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const + { + G4bool result = false; + G4ParticleDefinition * p1 = trk1.GetDefinition(); + G4ParticleDefinition * p2 = trk2.GetDefinition(); + if( (GetNumberOfPartons(p1) != 2 || GetNumberOfPartons(p2) != 3) + ||(GetNumberOfPartons(p1) != 3 || GetNumberOfPartons(p2) != 2) ) + { + result = false; + } + return result; + } + +G4String G4CollisionMesonBaryonElastic:: + GetName() const + { + return "Meson Baryon Elastic Collision"; + } + +const G4std::vector& G4CollisionMesonBaryonElastic:: + GetListOfColliders(G4int whichOne) const + { + G4Exception("Called G4CollisionMesonBaryonElastic::GetListOfColliders"); + return dummy; + } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc new file mode 100644 index 0000000000..9b78d1d46f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc @@ -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: G4CollisionMesonBaryonToResonance.cc,v 1.11 2002/12/12 19:17:47 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionMesonBaryonToResonance.hh" +#include "G4ConcreteMesonBaryonToResonance.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4PionPlus.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4XResonance.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" +#include "G4KaonPlus.hh" + + +G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance() +{ + // the particle types used are indicative for the particle class; + // i.e. pip stands for pions, proton for nucleon, etc.. + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aPionp = G4PionPlus::PionPlusDefinition(); + + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aD1600 = G4ParticleTable::GetParticleTable()->FindParticle(32214); // D+ + G4ParticleDefinition * aD1620 = G4ParticleTable::GetParticleTable()->FindParticle(2122); // D+ + G4ParticleDefinition * aD1700 = G4ParticleTable::GetParticleTable()->FindParticle(12214); // D+ + G4ParticleDefinition * aD1900 = G4ParticleTable::GetParticleTable()->FindParticle(12122); // D+ + G4ParticleDefinition * aD1905 = G4ParticleTable::GetParticleTable()->FindParticle(2126); // D+ + G4ParticleDefinition * aD1910 = G4ParticleTable::GetParticleTable()->FindParticle(22122); // D+ + G4ParticleDefinition * aD1920 = G4ParticleTable::GetParticleTable()->FindParticle(22214); // D+ + G4ParticleDefinition * aD1930 = G4ParticleTable::GetParticleTable()->FindParticle(12126); // D+ + G4ParticleDefinition * aD1950 = G4ParticleTable::GetParticleTable()->FindParticle(2218); // D+ + + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aDeltap, "D1232_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1600, "D1600_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1620, "D1620_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1700, "D1700_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1900, "D1900_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1905, "D1905_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1910, "D1910_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1920, "D1920_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1930, "D1930_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aD1950, "D1950_Npi")); + + + G4ParticleDefinition * aN1440 = G4ParticleTable::GetParticleTable()->FindParticle(12112); // N+ + G4ParticleDefinition * aN1520 = G4ParticleTable::GetParticleTable()->FindParticle(2124); // N+ + G4ParticleDefinition * aN1535 = G4ParticleTable::GetParticleTable()->FindParticle(22212); // N+ + G4ParticleDefinition * aN1650 = G4ParticleTable::GetParticleTable()->FindParticle(32212); // N+ + G4ParticleDefinition * aN1675 = G4ParticleTable::GetParticleTable()->FindParticle(2216); // N+ + G4ParticleDefinition * aN1680 = G4ParticleTable::GetParticleTable()->FindParticle(12216); // N+ + G4ParticleDefinition * aN1700 = G4ParticleTable::GetParticleTable()->FindParticle(22124); // N+ + G4ParticleDefinition * aN1710 = G4ParticleTable::GetParticleTable()->FindParticle(42212); // N+ + G4ParticleDefinition * aN1720 = G4ParticleTable::GetParticleTable()->FindParticle(32124); // N+ + G4ParticleDefinition * aN1900 = G4ParticleTable::GetParticleTable()->FindParticle(42124); // N+ + G4ParticleDefinition * aN1990 = G4ParticleTable::GetParticleTable()->FindParticle(12218); // N+ + G4ParticleDefinition * aN2090 = G4ParticleTable::GetParticleTable()->FindParticle(52214); // N+ + G4ParticleDefinition * aN2190 = G4ParticleTable::GetParticleTable()->FindParticle(2128); // N+ + G4ParticleDefinition * aN2220 = G4ParticleTable::GetParticleTable()->FindParticle(100002210); // N+ + G4ParticleDefinition * aN2250 = G4ParticleTable::GetParticleTable()->FindParticle(100012210); // N+ + + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1440, "N1440_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1520, "N1520_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1535, "N1535_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1650, "N1650_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1675, "N1675_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1680, "N1680_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1700, "N1700_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1710, "N1710_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1720, "N1720_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1900, "N1900_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN1990, "N1990_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN2090, "N2090_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN2190, "N2190_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN2220, "N2220_Npi")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN2250, "N2250_Npi")); + + G4ParticleDefinition * aKaon = G4KaonPlus::KaonPlus(); + +// sig=0 G4ParticleDefinition * aL1405 = G4ParticleTable::GetParticleTable()->FindParticle(13122); + G4ParticleDefinition * aL1520 = G4ParticleTable::GetParticleTable()->FindParticle(3124); + G4ParticleDefinition * aL1600 = G4ParticleTable::GetParticleTable()->FindParticle(23122); + G4ParticleDefinition * aL1670 = G4ParticleTable::GetParticleTable()->FindParticle(33122); + G4ParticleDefinition * aL1690 = G4ParticleTable::GetParticleTable()->FindParticle(13124); + G4ParticleDefinition * aL1800 = G4ParticleTable::GetParticleTable()->FindParticle(43122); + G4ParticleDefinition * aL1810 = G4ParticleTable::GetParticleTable()->FindParticle(53122); + G4ParticleDefinition * aL1820 = G4ParticleTable::GetParticleTable()->FindParticle(3126); + G4ParticleDefinition * aL1830 = G4ParticleTable::GetParticleTable()->FindParticle(13126); + G4ParticleDefinition * aL1890 = G4ParticleTable::GetParticleTable()->FindParticle(23124); + G4ParticleDefinition * aL2100 = G4ParticleTable::GetParticleTable()->FindParticle(3128); + G4ParticleDefinition * aL2110 = G4ParticleTable::GetParticleTable()->FindParticle(23126); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1520, "L1520_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1600, "L1600_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1690, "L1690_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1670, "L1670_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1800, "L1800_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1810, "L1810_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1820, "L1820_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1830, "L1830_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL1890, "L1890_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL2100, "L2100_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aL2110, "L2110_NKbar")); + +//@ G4ParticleDefinition * aSigma = G4ParticleTable::GetParticleTable()->FindParticle(3222); +//@ G4ParticleDefinition * aS1385 = G4ParticleTable::GetParticleTable()->FindParticle(3224); + G4ParticleDefinition * aS1660 = G4ParticleTable::GetParticleTable()->FindParticle(13222); + G4ParticleDefinition * aS1670 = G4ParticleTable::GetParticleTable()->FindParticle(13224); + G4ParticleDefinition * aS1750 = G4ParticleTable::GetParticleTable()->FindParticle(23222); + G4ParticleDefinition * aS1775 = G4ParticleTable::GetParticleTable()->FindParticle(3226); + G4ParticleDefinition * aS1915 = G4ParticleTable::GetParticleTable()->FindParticle(13226); + G4ParticleDefinition * aS1940 = G4ParticleTable::GetParticleTable()->FindParticle(23224); + G4ParticleDefinition * aS2030 = G4ParticleTable::GetParticleTable()->FindParticle(3228); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1660, "S1660_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1670, "S1670_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1750, "S1750_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1775, "S1775_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1915, "S1915_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1940, "S1940_NKbar")); + G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS2030, "S2030_NKbar")); +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc new file mode 100644 index 0000000000..37e8e99f94 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc @@ -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: G4CollisionNN.cc,v 1.15 2002/12/12 19:17:48 gunter Exp $ // + + +#include "globals.hh" +#include "G4CollisionNN.hh" +#include "G4CollisionComposite.hh" +#include "G4VCollision.hh" +#include "G4CollisionVector.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4XNNTotal.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4CollisionNNElastic.hh" +#include "G4CollisionnpElastic.hh" +#include "G4CollisionNNToNDelta.hh" +#include "G4CollisionNNToDeltaDelta.hh" +#include "G4CollisionNNToNDeltastar.hh" +#include "G4CollisionNNToDeltaDeltastar.hh" +#include "G4CollisionNNToNNstar.hh" +#include "G4CollisionNNToDeltaNstar.hh" + +G4CollisionNN::G4CollisionNN() +{ + + crossSectionSource = new G4XNNTotal(); + + G4CollisionComposite::AddComponent(new G4CollisionnpElastic()); // ok + G4CollisionComposite::AddComponent(new G4CollisionNNElastic()); // ok + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta()); // ok + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta()); // ok + G4CollisionComposite::AddComponent(new G4CollisionNNToNDeltastar()); // ok + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDeltastar()); // ok + G4CollisionComposite::AddComponent(new G4CollisionNNToNNstar()); // done + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaNstar()); // done + +} + + +G4CollisionNN::~G4CollisionNN() +{ + delete crossSectionSource; + crossSectionSource = 0; +} + + +const G4std::vector& G4CollisionNN::GetListOfColliders(G4int whichOne) const +{ + G4Exception("G4CollisionNN::GetListOfColliders - Argument outside valid range"); + return colliders1; +} + + +G4double G4CollisionNN::CrossSection(const G4KineticTrack& aTrk1, + const G4KineticTrack& aTrk2) const +{ + G4double sigma = 0.; + + // nucleon-nucleon cross-sections made for on-shell particles. + // here we take the kinetic energy as the quantity relevant + // for calculating the scattering cross-sections for off-shell hadrons + + const G4VCrossSectionSource* xSource = GetCrossSectionSource(); + G4LorentzVector p1 = aTrk1.Get4Momentum(); + G4LorentzVector p2 = aTrk2.Get4Momentum(); + G4double t1 = p1.e()-aTrk1.GetActualMass(); + G4double t2 = p2.e()-aTrk2.GetActualMass(); + p1.setE(t1+aTrk1.GetDefinition()->GetPDGMass()); + p2.setE(t2+aTrk2.GetDefinition()->GetPDGMass()); + G4KineticTrack trk1(aTrk1); + trk1.Set4Momentum(p1); + G4KineticTrack trk2(aTrk2); + trk2.Set4Momentum(p2); + if( (p1+p2).mag()GetPDGMass()+aTrk2.GetDefinition()->GetPDGMass()) + { + return 0.; + } + + if (xSource != 0) + { + // There is a cross section for this Collision + sigma = xSource->CrossSection(trk1,trk2); + } + return sigma; +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc new file mode 100644 index 0000000000..dffe6d8c1b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNElastic.cc,v 1.5 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNElastic.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XNNElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4AngularDistributionPP.hh" // nn and pp scattering + +G4CollisionNNElastic::G4CollisionNNElastic() +{ + // Subtype of interacting particles + G4String subType1 = G4Proton::ProtonDefinition()->GetParticleSubType(); + G4String subType2 = G4Neutron::NeutronDefinition()->GetParticleSubType(); + + colliders1.push_back(subType1); + colliders2.push_back(subType2); + + angularDistribution = new G4AngularDistributionPP(); + crossSectionSource = new G4XNNElastic(); +} + + +G4CollisionNNElastic::~G4CollisionNNElastic() +{ + delete angularDistribution; + angularDistribution = 0; + delete crossSectionSource; + crossSectionSource = 0; +} + + +G4bool G4CollisionNNElastic::IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4bool isInCharge = false; + + G4ParticleDefinition* def1 = trk1.GetDefinition(); + G4ParticleDefinition* def2 = trk2.GetDefinition(); + + if ( (def1 == G4Proton::ProtonDefinition() && + def2 == G4Proton::ProtonDefinition() ) + || + (def1 == G4Neutron::NeutronDefinition() && + def2 == G4Neutron::NeutronDefinition() ) ) + { + isInCharge = true; + } + return isInCharge; +} + + +const G4std::vector& G4CollisionNNElastic::GetListOfColliders(G4int whichOne) const +{ + if (whichOne == 1) + { + return colliders1; + } + else + { + if (whichOne == 2) + { return colliders2; } + else + { + G4Exception("G4CollisionNNElastic::GetListOfColliders - Argument outside valid range"); + return colliders1; + } + } +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc new file mode 100644 index 0000000000..b2dbbf53a4 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc @@ -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: G4CollisionNNToDeltaDelta.cc,v 1.4 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4ParticleTable.hh" +#include "G4CollisionVector.hh" +#include "G4ConcreteNNToDeltaDelta.hh" + +G4CollisionNNToDeltaDelta::G4CollisionNNToDeltaDelta() +{ + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDelta(aNeutron, aNeutron, aDelta0, aDelta0)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDelta(aNeutron, aNeutron, aDeltam, aDeltap)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDelta(aNeutron, aProton, aDelta0, aDeltap)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDelta(aNeutron, aProton, aDeltam, aDeltapp)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDelta(aProton, aProton, aDeltap, aDeltap)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDelta(aProton, aProton, aDelta0, aDeltapp)); + +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc new file mode 100644 index 0000000000..1752a286df --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc @@ -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: G4CollisionNNToDeltaDelta1600.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1600.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1600::G4CollisionNNToDeltaDelta1600() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1600 = G4ParticleTable::GetParticleTable()->FindParticle(31114); + G4ParticleDefinition * aD0_1600 = G4ParticleTable::GetParticleTable()->FindParticle(32114); + G4ParticleDefinition * aDp_1600 = G4ParticleTable::GetParticleTable()->FindParticle(32214); + G4ParticleDefinition * aDpp_1600 = G4ParticleTable::GetParticleTable()->FindParticle(32224); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1600)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1600)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1600)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc new file mode 100644 index 0000000000..ecfc924d0b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1620.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1620.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1620::G4CollisionNNToDeltaDelta1620() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1620 = G4ParticleTable::GetParticleTable()->FindParticle(1112); + G4ParticleDefinition * aD0_1620 = G4ParticleTable::GetParticleTable()->FindParticle(1212); + G4ParticleDefinition * aDp_1620 = G4ParticleTable::GetParticleTable()->FindParticle(2122); + G4ParticleDefinition * aDpp_1620 = G4ParticleTable::GetParticleTable()->FindParticle(2222); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1620)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1620)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1620)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc new file mode 100644 index 0000000000..421aff75d1 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1700.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1700.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1700::G4CollisionNNToDeltaDelta1700() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1700 = G4ParticleTable::GetParticleTable()->FindParticle(11114); + G4ParticleDefinition * aD0_1700 = G4ParticleTable::GetParticleTable()->FindParticle(12114); + G4ParticleDefinition * aDp_1700 = G4ParticleTable::GetParticleTable()->FindParticle(12214); + G4ParticleDefinition * aDpp_1700 = G4ParticleTable::GetParticleTable()->FindParticle(12224); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1700)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1700)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1700)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc new file mode 100644 index 0000000000..983e6cba1d --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1900.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1900.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1900::G4CollisionNNToDeltaDelta1900() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1900 = G4ParticleTable::GetParticleTable()->FindParticle(11112); + G4ParticleDefinition * aD0_1900 = G4ParticleTable::GetParticleTable()->FindParticle(11212); + G4ParticleDefinition * aDp_1900 = G4ParticleTable::GetParticleTable()->FindParticle(12122); + G4ParticleDefinition * aDpp_1900 = G4ParticleTable::GetParticleTable()->FindParticle(12222); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1900)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1900)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1900)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc new file mode 100644 index 0000000000..904a81991a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1905.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1905.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1905::G4CollisionNNToDeltaDelta1905() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1905 = G4ParticleTable::GetParticleTable()->FindParticle(1116); + G4ParticleDefinition * aD0_1905 = G4ParticleTable::GetParticleTable()->FindParticle(1216); + G4ParticleDefinition * aDp_1905 = G4ParticleTable::GetParticleTable()->FindParticle(2126); + G4ParticleDefinition * aDpp_1905 = G4ParticleTable::GetParticleTable()->FindParticle(2226); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1905)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1905)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1905)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc new file mode 100644 index 0000000000..70956e17de --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1910.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1910.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1910::G4CollisionNNToDeltaDelta1910() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1910 = G4ParticleTable::GetParticleTable()->FindParticle(21112); + G4ParticleDefinition * aD0_1910 = G4ParticleTable::GetParticleTable()->FindParticle(21212); + G4ParticleDefinition * aDp_1910 = G4ParticleTable::GetParticleTable()->FindParticle(22122); + G4ParticleDefinition * aDpp_1910 = G4ParticleTable::GetParticleTable()->FindParticle(22222); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1910)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1910)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1910)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc new file mode 100644 index 0000000000..c990c3e905 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1920.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1920.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1920::G4CollisionNNToDeltaDelta1920() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1920 = G4ParticleTable::GetParticleTable()->FindParticle(21114); + G4ParticleDefinition * aD0_1920 = G4ParticleTable::GetParticleTable()->FindParticle(22114); + G4ParticleDefinition * aDp_1920 = G4ParticleTable::GetParticleTable()->FindParticle(22214); + G4ParticleDefinition * aDpp_1920 = G4ParticleTable::GetParticleTable()->FindParticle(22224); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1920)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1920)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1920)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc new file mode 100644 index 0000000000..ed85dce788 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1930.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1930.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1930::G4CollisionNNToDeltaDelta1930() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1930 = G4ParticleTable::GetParticleTable()->FindParticle(11116); + G4ParticleDefinition * aD0_1930 = G4ParticleTable::GetParticleTable()->FindParticle(11216); + G4ParticleDefinition * aDp_1930 = G4ParticleTable::GetParticleTable()->FindParticle(12126); + G4ParticleDefinition * aDpp_1930 = G4ParticleTable::GetParticleTable()->FindParticle(12226); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1930)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1930)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1930)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc new file mode 100644 index 0000000000..726af63b6a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaDelta1950.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDelta1950.hh" +#include "G4ConcreteNNToDeltaDeltastar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToDeltaDelta1950::G4CollisionNNToDeltaDelta1950() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aDm_1950 = G4ParticleTable::GetParticleTable()->FindParticle(1118); + G4ParticleDefinition * aD0_1950 = G4ParticleTable::GetParticleTable()->FindParticle(2118); + G4ParticleDefinition * aDp_1950 = G4ParticleTable::GetParticleTable()->FindParticle(2218); + G4ParticleDefinition * aDpp_1950 = G4ParticleTable::GetParticleTable()->FindParticle(2228); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltam, aDp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDelta0, aD0_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aNeutron, aDeltap, aDm_1950)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1950)); + + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltapp, aD0_1950)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.cc new file mode 100644 index 0000000000..0f6c83a40f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.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: G4CollisionNNToDeltaDeltastar.cc,v 1.3 2002/12/12 19:17:48 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaDeltastar.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4ParticleTable.hh" +#include "G4CollisionVector.hh" +#include "G4CollisionNNToDeltaDeltastar.hh" +#include "G4CollisionNNToDeltaDelta1600.hh" +#include "G4CollisionNNToDeltaDelta1620.hh" +#include "G4CollisionNNToDeltaDelta1700.hh" +#include "G4CollisionNNToDeltaDelta1900.hh" +#include "G4CollisionNNToDeltaDelta1905.hh" +#include "G4CollisionNNToDeltaDelta1910.hh" +#include "G4CollisionNNToDeltaDelta1920.hh" +#include "G4CollisionNNToDeltaDelta1930.hh" +#include "G4CollisionNNToDeltaDelta1950.hh" + +G4CollisionNNToDeltaDeltastar::G4CollisionNNToDeltaDeltastar() +{ + + // 1600 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1600()); + //1620 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1620()); + //1700 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1700()); + //1900 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1900()); + //1905 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1905()); + //1910 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1910()); + //1920 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1920()); + //1930 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1930()); + //1950 + G4CollisionComposite::AddComponent(new G4CollisionNNToDeltaDelta1950()); + +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc new file mode 100644 index 0000000000..33af792527 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc @@ -0,0 +1,186 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToDeltaNstar.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToDeltaNstar.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4ParticleTable.hh" +#include "G4CollisionVector.hh" +#include "G4CollisionNNToDeltaNstar.hh" +#include "G4ConcreteNNToDeltaNstar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + +G4CollisionNNToDeltaNstar::G4CollisionNNToDeltaNstar() +{ + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4ParticleDefinition * aN_1400p = G4ParticleTable::GetParticleTable()->FindParticle(12212); + G4ParticleDefinition * aN_1400n = G4ParticleTable::GetParticleTable()->FindParticle(12112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1400n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1400p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1400p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1400n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1400p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1400n)); + + G4ParticleDefinition * aN_1520p = G4ParticleTable::GetParticleTable()->FindParticle(2124); + G4ParticleDefinition * aN_1520n = G4ParticleTable::GetParticleTable()->FindParticle(1214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1520n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1520p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1520p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1520n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1520p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1520n)); + + G4ParticleDefinition * aN_1535p = G4ParticleTable::GetParticleTable()->FindParticle(22212); + G4ParticleDefinition * aN_1535n = G4ParticleTable::GetParticleTable()->FindParticle(22112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1535n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1535p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1535p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1535n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1535p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1535n)); + + G4ParticleDefinition * aN_1650p = G4ParticleTable::GetParticleTable()->FindParticle(32212); + G4ParticleDefinition * aN_1650n = G4ParticleTable::GetParticleTable()->FindParticle(32112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1650n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1650p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1650p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1650n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1650p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1650n)); + + G4ParticleDefinition * aN_1675p = G4ParticleTable::GetParticleTable()->FindParticle(2216); + G4ParticleDefinition * aN_1675n = G4ParticleTable::GetParticleTable()->FindParticle(2116); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1675n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1675p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1675p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1675n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1675p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1675n)); + + G4ParticleDefinition * aN_1680p = G4ParticleTable::GetParticleTable()->FindParticle(12216); + G4ParticleDefinition * aN_1680n = G4ParticleTable::GetParticleTable()->FindParticle(12116); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1680n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1680p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1680p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1680n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1680p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1680n)); + + G4ParticleDefinition * aN_1700p = G4ParticleTable::GetParticleTable()->FindParticle(22124); + G4ParticleDefinition * aN_1700n = G4ParticleTable::GetParticleTable()->FindParticle(21214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1700n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1700p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1700p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1700n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1700p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1700n)); + + G4ParticleDefinition * aN_1710p = G4ParticleTable::GetParticleTable()->FindParticle(42212); + G4ParticleDefinition * aN_1710n = G4ParticleTable::GetParticleTable()->FindParticle(42112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1710n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1710p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1710p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1710n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1710p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1710n)); + + G4ParticleDefinition * aN_1720p = G4ParticleTable::GetParticleTable()->FindParticle(32124); + G4ParticleDefinition * aN_1720n = G4ParticleTable::GetParticleTable()->FindParticle(31214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1720n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1720p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1720p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1720n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1720p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1720n)); + + G4ParticleDefinition * aN_1900p = G4ParticleTable::GetParticleTable()->FindParticle(42124); + G4ParticleDefinition * aN_1900n = G4ParticleTable::GetParticleTable()->FindParticle(41214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1900n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1900p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1900p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1900n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1900p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1900n)); + + G4ParticleDefinition * aN_1990p = G4ParticleTable::GetParticleTable()->FindParticle(12218); + G4ParticleDefinition * aN_1990n = G4ParticleTable::GetParticleTable()->FindParticle(12118); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_1990n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_1990p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_1990p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_1990n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_1990p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_1990n)); + + G4ParticleDefinition * aN_2090p = G4ParticleTable::GetParticleTable()->FindParticle(52214); + G4ParticleDefinition * aN_2090n = G4ParticleTable::GetParticleTable()->FindParticle(52114); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_2090n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_2090p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_2090p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_2090n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_2090p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_2090n)); + + G4ParticleDefinition * aN_2190p = G4ParticleTable::GetParticleTable()->FindParticle(2128); + G4ParticleDefinition * aN_2190n = G4ParticleTable::GetParticleTable()->FindParticle(1218); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_2190n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_2190p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_2190p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_2190n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_2190p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_2190n)); + + G4ParticleDefinition * aN_2220p = G4ParticleTable::GetParticleTable()->FindParticle(100002210); + G4ParticleDefinition * aN_2220n = G4ParticleTable::GetParticleTable()->FindParticle(100002110); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_2220n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_2220p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_2220p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_2220n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_2220p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_2220n)); + + G4ParticleDefinition * aN_2250p = G4ParticleTable::GetParticleTable()->FindParticle(100012210); + G4ParticleDefinition * aN_2250n = G4ParticleTable::GetParticleTable()->FindParticle(100012110); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDelta0, aN_2250n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aNeutron, aDeltam, aN_2250p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltap, aN_2250p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aProton, aProton, aDeltapp, aN_2250n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDelta0, aN_2250p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaNstar(aNeutron, aProton, aDeltap, aN_2250n)); +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc new file mode 100644 index 0000000000..b2902d09b3 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc @@ -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: G4CollisionNNToNDelta.cc,v 1.6 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta.hh" +#include "G4ConcreteNNToNDelta.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta::G4CollisionNNToNDelta() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aDeltapp = G4ParticleTable::GetParticleTable()->FindParticle(2224); // D++ + G4ParticleDefinition * aDeltap = G4ParticleTable::GetParticleTable()->FindParticle(2214); // D+ + G4ParticleDefinition * aDelta0 = G4ParticleTable::GetParticleTable()->FindParticle(2114); // D0 + G4ParticleDefinition * aDeltam = G4ParticleTable::GetParticleTable()->FindParticle(1114); // D- + + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDelta(aNeutron, aNeutron, aNeutron, aDelta0)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDelta(aNeutron, aNeutron, aProton, aDeltam)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDelta(aNeutron, aProton, aProton, aDelta0)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDelta(aNeutron, aProton, aNeutron, aDeltap)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDelta(aProton, aProton, aNeutron, aDeltapp)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDelta(aProton, aProton, aProton, aDeltap)); + +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc new file mode 100644 index 0000000000..7fd7e03a99 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc @@ -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: G4CollisionNNToNDelta1600.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1600.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1600::G4CollisionNNToNDelta1600() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + G4ParticleDefinition * aDm_1600 = G4ParticleTable::GetParticleTable()->FindParticle(31114); + G4ParticleDefinition * aD0_1600 = G4ParticleTable::GetParticleTable()->FindParticle(32114); + G4ParticleDefinition * aDp_1600 = G4ParticleTable::GetParticleTable()->FindParticle(32214); + G4ParticleDefinition * aDpp_1600 = G4ParticleTable::GetParticleTable()->FindParticle(32224); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1600)); + +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc new file mode 100644 index 0000000000..065288a79b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc @@ -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: G4CollisionNNToNDelta1620.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1620.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1620::G4CollisionNNToNDelta1620() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1620 = G4ParticleTable::GetParticleTable()->FindParticle(1112); + G4ParticleDefinition * aD0_1620 = G4ParticleTable::GetParticleTable()->FindParticle(1212); + G4ParticleDefinition * aDp_1620 = G4ParticleTable::GetParticleTable()->FindParticle(2122); + G4ParticleDefinition * aDpp_1620 = G4ParticleTable::GetParticleTable()->FindParticle(2222); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1620)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc new file mode 100644 index 0000000000..e0f905349a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc @@ -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: G4CollisionNNToNDelta1700.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1700.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1700::G4CollisionNNToNDelta1700() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1700 = G4ParticleTable::GetParticleTable()->FindParticle(11114); + G4ParticleDefinition * aD0_1700 = G4ParticleTable::GetParticleTable()->FindParticle(12114); + G4ParticleDefinition * aDp_1700 = G4ParticleTable::GetParticleTable()->FindParticle(12214); + G4ParticleDefinition * aDpp_1700 = G4ParticleTable::GetParticleTable()->FindParticle(12224); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1700)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc new file mode 100644 index 0000000000..9c5fdc2f2e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc @@ -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: G4CollisionNNToNDelta1900.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1900.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1900::G4CollisionNNToNDelta1900() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1900 = G4ParticleTable::GetParticleTable()->FindParticle(11112); + G4ParticleDefinition * aD0_1900 = G4ParticleTable::GetParticleTable()->FindParticle(11212); + G4ParticleDefinition * aDp_1900 = G4ParticleTable::GetParticleTable()->FindParticle(12122); + G4ParticleDefinition * aDpp_1900 = G4ParticleTable::GetParticleTable()->FindParticle(12222); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1900)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc new file mode 100644 index 0000000000..0df90f2917 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc @@ -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: G4CollisionNNToNDelta1905.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1905.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1905::G4CollisionNNToNDelta1905() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1905 = G4ParticleTable::GetParticleTable()->FindParticle(1116); + G4ParticleDefinition * aD0_1905 = G4ParticleTable::GetParticleTable()->FindParticle(1216); + G4ParticleDefinition * aDp_1905 = G4ParticleTable::GetParticleTable()->FindParticle(2126); + G4ParticleDefinition * aDpp_1905 = G4ParticleTable::GetParticleTable()->FindParticle(2226); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1905)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc new file mode 100644 index 0000000000..a25f904bc3 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc @@ -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: G4CollisionNNToNDelta1910.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1910.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1910::G4CollisionNNToNDelta1910() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1910 = G4ParticleTable::GetParticleTable()->FindParticle(21112); + G4ParticleDefinition * aD0_1910 = G4ParticleTable::GetParticleTable()->FindParticle(21212); + G4ParticleDefinition * aDp_1910 = G4ParticleTable::GetParticleTable()->FindParticle(22122); + G4ParticleDefinition * aDpp_1910 = G4ParticleTable::GetParticleTable()->FindParticle(22222); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1910)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc new file mode 100644 index 0000000000..b0dab5601a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc @@ -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: G4CollisionNNToNDelta1920.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1920.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1920::G4CollisionNNToNDelta1920() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1920 = G4ParticleTable::GetParticleTable()->FindParticle(21114); + G4ParticleDefinition * aD0_1920 = G4ParticleTable::GetParticleTable()->FindParticle(22114); + G4ParticleDefinition * aDp_1920 = G4ParticleTable::GetParticleTable()->FindParticle(22214); + G4ParticleDefinition * aDpp_1920 = G4ParticleTable::GetParticleTable()->FindParticle(22224); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1920)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc new file mode 100644 index 0000000000..e795531d81 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc @@ -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: G4CollisionNNToNDelta1930.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1930.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1930::G4CollisionNNToNDelta1930() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1930 = G4ParticleTable::GetParticleTable()->FindParticle(11116); + G4ParticleDefinition * aD0_1930 = G4ParticleTable::GetParticleTable()->FindParticle(11216); + G4ParticleDefinition * aDp_1930 = G4ParticleTable::GetParticleTable()->FindParticle(12126); + G4ParticleDefinition * aDpp_1930 = G4ParticleTable::GetParticleTable()->FindParticle(12226); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1930)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc new file mode 100644 index 0000000000..42b83507ca --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc @@ -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: G4CollisionNNToNDelta1950.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDelta1950.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" + +// complete hpw + +G4CollisionNNToNDelta1950::G4CollisionNNToNDelta1950() +{ + // Subtype of interacting particles + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition * aDm_1950 = G4ParticleTable::GetParticleTable()->FindParticle(1118); + G4ParticleDefinition * aD0_1950 = G4ParticleTable::GetParticleTable()->FindParticle(2118); + G4ParticleDefinition * aDp_1950 = G4ParticleTable::GetParticleTable()->FindParticle(2218); + G4ParticleDefinition * aDpp_1950 = G4ParticleTable::GetParticleTable()->FindParticle(2228); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aNeutron, aD0_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aNeutron, aProton, aDm_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aProton, aD0_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aNeutron, aProton, aNeutron, aDp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aNeutron, aDpp_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNDeltaStar(aProton, aProton, aProton, aDp_1950)); +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.cc new file mode 100644 index 0000000000..99c06f1848 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.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: G4CollisionNNToNDeltastar.cc,v 1.3 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNDeltastar.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4ParticleTable.hh" +#include "G4CollisionVector.hh" +#include "G4CollisionNNToNDeltastar.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4CollisionNNToNDelta1600.hh" +#include "G4CollisionNNToNDelta1620.hh" +#include "G4CollisionNNToNDelta1700.hh" +#include "G4CollisionNNToNDelta1900.hh" +#include "G4CollisionNNToNDelta1905.hh" +#include "G4CollisionNNToNDelta1910.hh" +#include "G4CollisionNNToNDelta1920.hh" +#include "G4CollisionNNToNDelta1930.hh" +#include "G4CollisionNNToNDelta1950.hh" + +G4CollisionNNToNDeltastar::G4CollisionNNToNDeltastar() +{ + //1600 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1600()); + //1620 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1620()); + //1700 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1700()); + //1900 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1900()); + //1905 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1905()); + //1910 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1910()); + //1920 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1920()); + //1930 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1930()); + //1950 + G4CollisionComposite::AddComponent(new G4CollisionNNToNDelta1950()); + +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc new file mode 100644 index 0000000000..aaec3f44c3 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc @@ -0,0 +1,157 @@ +// +// ******************************************************************** +// * 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: G4CollisionNNToNNstar.cc,v 1.4 2002/12/12 19:17:49 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNNToNNstar.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4ParticleTable.hh" +#include "G4CollisionVector.hh" +#include "G4CollisionNNToNNstar.hh" +#include "G4ConcreteNNToNNStar.hh" + +G4CollisionNNToNNstar::G4CollisionNNToNNstar() +{ + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + // 1400, 1520,1535, 1650, 1675,1680 + // 1700, 1710, 1720, 1900, 1990, 2090, + // 2190, 2220, 2250 + + G4ParticleDefinition * aN_1400p = G4ParticleTable::GetParticleTable()->FindParticle(12212); + G4ParticleDefinition * aN_1400n = G4ParticleTable::GetParticleTable()->FindParticle(12112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1400n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1400p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1400p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1400n)); + + G4ParticleDefinition * aN_1520p = G4ParticleTable::GetParticleTable()->FindParticle(2124); + G4ParticleDefinition * aN_1520n = G4ParticleTable::GetParticleTable()->FindParticle(1214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1520n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1520p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1520p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1520n)); + + G4ParticleDefinition * aN_1535p = G4ParticleTable::GetParticleTable()->FindParticle(22212); + G4ParticleDefinition * aN_1535n = G4ParticleTable::GetParticleTable()->FindParticle(22112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1535n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1535p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1535p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1535n)); + + G4ParticleDefinition * aN_1650p = G4ParticleTable::GetParticleTable()->FindParticle(32212); + G4ParticleDefinition * aN_1650n = G4ParticleTable::GetParticleTable()->FindParticle(32112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1650n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1650p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1650p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1650n)); + + G4ParticleDefinition * aN_1675p = G4ParticleTable::GetParticleTable()->FindParticle(2216); + G4ParticleDefinition * aN_1675n = G4ParticleTable::GetParticleTable()->FindParticle(2116); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1675n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1675p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1675p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1675n)); + + G4ParticleDefinition * aN_1680p = G4ParticleTable::GetParticleTable()->FindParticle(12216); + G4ParticleDefinition * aN_1680n = G4ParticleTable::GetParticleTable()->FindParticle(12116); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1680n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1680p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1680p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1680n)); + + G4ParticleDefinition * aN_1700p = G4ParticleTable::GetParticleTable()->FindParticle(22124); + G4ParticleDefinition * aN_1700n = G4ParticleTable::GetParticleTable()->FindParticle(21214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1700n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1700p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1700p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1700n)); + + G4ParticleDefinition * aN_1710p = G4ParticleTable::GetParticleTable()->FindParticle(42212); + G4ParticleDefinition * aN_1710n = G4ParticleTable::GetParticleTable()->FindParticle(42112); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1710n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1710p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1710p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1710n)); + + G4ParticleDefinition * aN_1720p = G4ParticleTable::GetParticleTable()->FindParticle(32124); + G4ParticleDefinition * aN_1720n = G4ParticleTable::GetParticleTable()->FindParticle(31214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1720n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1720p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1720p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1720n)); + + G4ParticleDefinition * aN_1900p = G4ParticleTable::GetParticleTable()->FindParticle(42124); + G4ParticleDefinition * aN_1900n = G4ParticleTable::GetParticleTable()->FindParticle(41214); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1900n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1900p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1900p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1900n)); + + G4ParticleDefinition * aN_1990p = G4ParticleTable::GetParticleTable()->FindParticle(12218); + G4ParticleDefinition * aN_1990n = G4ParticleTable::GetParticleTable()->FindParticle(12118); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_1990n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_1990p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_1990p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_1990n)); + + G4ParticleDefinition * aN_2090p = G4ParticleTable::GetParticleTable()->FindParticle(52214); + G4ParticleDefinition * aN_2090n = G4ParticleTable::GetParticleTable()->FindParticle(52114); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_2090n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_2090p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_2090p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_2090n)); + + G4ParticleDefinition * aN_2190p = G4ParticleTable::GetParticleTable()->FindParticle(2128); + G4ParticleDefinition * aN_2190n = G4ParticleTable::GetParticleTable()->FindParticle(1218); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_2190n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_2190p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_2190p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_2190n)); + + G4ParticleDefinition * aN_2220p = G4ParticleTable::GetParticleTable()->FindParticle(100002210); + G4ParticleDefinition * aN_2220n = G4ParticleTable::GetParticleTable()->FindParticle(100002110); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_2220n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_2220p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_2220p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_2220n)); + + G4ParticleDefinition * aN_2250p = G4ParticleTable::GetParticleTable()->FindParticle(100012210); + G4ParticleDefinition * aN_2250n = G4ParticleTable::GetParticleTable()->FindParticle(100012110); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aNeutron, aNeutron, aN_2250n)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aProton, aProton, aProton, aN_2250p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aNeutron, aN_2250p)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToNNStar(aNeutron, aProton, aProton, aN_2250n)); +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc new file mode 100644 index 0000000000..fc8e2d5415 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc @@ -0,0 +1,157 @@ +// +// ******************************************************************** +// * 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: G4CollisionNStarNToNN.cc,v 1.3 2002/12/12 19:17:50 gunter Exp $ // + +#include "globals.hh" +#include "G4CollisionNStarNToNN.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4ParticleTable.hh" +#include "G4CollisionVector.hh" +#include "G4CollisionNStarNToNN.hh" +#include "G4ConcreteNStarNToNN.hh" + +G4CollisionNStarNToNN::G4CollisionNStarNToNN() +{ + G4ParticleDefinition * aProton = G4Proton::ProtonDefinition(); + G4ParticleDefinition * aNeutron = G4Neutron::NeutronDefinition(); + + // 1400, 1520,1535, 1650, 1675,1680 + // 1700, 1710, 1720, 1900, 1990, 2090, + // 2190, 2220, 2250 + + G4ParticleDefinition * aN_1400p = G4ParticleTable::GetParticleTable()->FindParticle(12212); + G4ParticleDefinition * aN_1400n = G4ParticleTable::GetParticleTable()->FindParticle(12112); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1400n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1400p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1400p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1400n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1520p = G4ParticleTable::GetParticleTable()->FindParticle(2124); + G4ParticleDefinition * aN_1520n = G4ParticleTable::GetParticleTable()->FindParticle(1214); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1520n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1520p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1520p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1520n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1535p = G4ParticleTable::GetParticleTable()->FindParticle(22212); + G4ParticleDefinition * aN_1535n = G4ParticleTable::GetParticleTable()->FindParticle(22112); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1535n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1535p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1535p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1535n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1650p = G4ParticleTable::GetParticleTable()->FindParticle(32212); + G4ParticleDefinition * aN_1650n = G4ParticleTable::GetParticleTable()->FindParticle(32112); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1650n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1650p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1650p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1650n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1675p = G4ParticleTable::GetParticleTable()->FindParticle(2216); + G4ParticleDefinition * aN_1675n = G4ParticleTable::GetParticleTable()->FindParticle(2116); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1675n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1675p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1675p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1675n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1680p = G4ParticleTable::GetParticleTable()->FindParticle(12216); + G4ParticleDefinition * aN_1680n = G4ParticleTable::GetParticleTable()->FindParticle(12116); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1680n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1680p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1680p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1680n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1700p = G4ParticleTable::GetParticleTable()->FindParticle(22124); + G4ParticleDefinition * aN_1700n = G4ParticleTable::GetParticleTable()->FindParticle(21214); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1700n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1700p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1700p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1700n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1710p = G4ParticleTable::GetParticleTable()->FindParticle(42212); + G4ParticleDefinition * aN_1710n = G4ParticleTable::GetParticleTable()->FindParticle(42112); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1710n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1710p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1710p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1710n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1720p = G4ParticleTable::GetParticleTable()->FindParticle(32124); + G4ParticleDefinition * aN_1720n = G4ParticleTable::GetParticleTable()->FindParticle(31214); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1720n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1720p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1720p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1720n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1900p = G4ParticleTable::GetParticleTable()->FindParticle(42124); + G4ParticleDefinition * aN_1900n = G4ParticleTable::GetParticleTable()->FindParticle(41214); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1900n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1900p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1900p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1900n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_1990p = G4ParticleTable::GetParticleTable()->FindParticle(12218); + G4ParticleDefinition * aN_1990n = G4ParticleTable::GetParticleTable()->FindParticle(12118); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1990n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1990p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1990p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_1990n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_2090p = G4ParticleTable::GetParticleTable()->FindParticle(52214); + G4ParticleDefinition * aN_2090n = G4ParticleTable::GetParticleTable()->FindParticle(52114); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2090n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2090p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2090p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2090n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_2190p = G4ParticleTable::GetParticleTable()->FindParticle(2128); + G4ParticleDefinition * aN_2190n = G4ParticleTable::GetParticleTable()->FindParticle(1218); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2190n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2190p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2190p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2190n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_2220p = G4ParticleTable::GetParticleTable()->FindParticle(100002210); + G4ParticleDefinition * aN_2220n = G4ParticleTable::GetParticleTable()->FindParticle(100002110); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2220n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2220p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2220p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2220n, aProton, aNeutron, aProton)); + + G4ParticleDefinition * aN_2250p = G4ParticleTable::GetParticleTable()->FindParticle(100012210); + G4ParticleDefinition * aN_2250n = G4ParticleTable::GetParticleTable()->FindParticle(100012110); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2250n, aNeutron, aNeutron, aNeutron)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2250p, aProton, aProton, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2250p, aNeutron, aNeutron, aProton)); + G4CollisionComposite::AddComponent(new G4ConcreteNStarNToNN(aN_2250n, aProton, aNeutron, aProton)); +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.cc new file mode 100644 index 0000000000..6faa9b12ba --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.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: G4CollisionPN.cc,v 1.2 2002/12/12 19:17:50 gunter Exp $ // +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CollisionNN +// +// Author: Maria Grazia Pia +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + + +#include "globals.hh" +#include "G4CollisionPN.hh" +#include "G4CollisionComposite.hh" +#include "G4VCollision.hh" +#include "G4CollisionVector.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4XnpTotal.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4CollisionnpElastic.hh" +#include "G4CollisionNNToNDelta.hh" + + +G4CollisionPN::G4CollisionPN() +{ + + crossSectionSource = new G4XnpTotal(); + + // Components vector to be filled + components = new G4CollisionVector; + components->push_back(new G4CollisionnpElastic()); + components->push_back(new G4CollisionNNToNDelta()); + + // Subtype of interacting particles + G4String subType1 = G4Proton::ProtonDefinition()->GetParticleSubType(); + G4String subType2 = G4Neutron::NeutronDefinition()->GetParticleSubType(); + + colliders1.push_back(subType1); + colliders2.push_back(subType2); + +} + + +G4CollisionPN::~G4CollisionPN() +{ + delete crossSectionSource; + crossSectionSource = 0; + + if (components != 0) + { + G4int nComponents = components->size(); + for (G4int i = 0; i < nComponents; i++) + { + G4CollisionPtr componentPtr = (*components)[i]; + G4VCollision* component = componentPtr(); + delete component; + component = 0; + } + } + delete components; + components = 0; +} + + +const G4std::vector& G4CollisionPN::GetListOfColliders(G4int whichOne) const +{ + if (whichOne == 1) + { + return colliders1; + } + else + { + if (whichOne == 2) + { return colliders2; } + else + { + G4Exception("G4CollisionNN::GetListOfColliders - Argument outside valid range"); + return colliders1; + } + } +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionPtr.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionPtr.cc new file mode 100644 index 0000000000..a45f50f3a0 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionPtr.cc @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4VCollision.hh" +#include "G4CollisionPtr.hh" + +G4CollisionPtr::G4CollisionPtr(G4VCollision* x): x_(x) +{ } + +G4CollisionPtr& G4CollisionPtr::operator= (const G4CollisionPtr& xw) +{ + x_ = xw.x_; + return *this; +} + +G4bool G4CollisionPtr::operator==(const G4CollisionPtr& right) const +{ + return *(this->operator()()) == *right(); +} + +const G4VCollision* G4CollisionPtr::operator() () const +{ return x_; } + +G4VCollision* G4CollisionPtr::operator() () +{ return x_; } + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc new file mode 100644 index 0000000000..671fe050b6 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +//hp + +#include "globals.hh" +#include "G4CollisionnpElastic.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XnpElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4AngularDistributionNP.hh" // np scattering +// hpw ok. +G4CollisionnpElastic::G4CollisionnpElastic() +{ + // Subtype of interacting particles + G4String subType1 = G4Proton::ProtonDefinition()->GetParticleSubType(); + G4String subType2 = G4Neutron::NeutronDefinition()->GetParticleSubType(); + + colliders1.push_back(subType1); + colliders2.push_back(subType2); + +// angularDistribution = new G4AngularDistribution(true); + angularDistribution = new G4AngularDistributionNP(); + crossSectionSource = new G4XnpElastic(); +} + + +G4CollisionnpElastic::~G4CollisionnpElastic() +{ + delete angularDistribution; + delete crossSectionSource; +} + + +G4bool G4CollisionnpElastic::IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4bool isInCharge = false; + + G4ParticleDefinition* def1 = trk1.GetDefinition(); + G4ParticleDefinition* def2 = trk2.GetDefinition(); + + if ( (def1 == G4Neutron::NeutronDefinition() && + def2 == G4Proton::ProtonDefinition() ) + || + (def1 == G4Proton::ProtonDefinition() && + def2 == G4Neutron::NeutronDefinition() ) ) + { + isInCharge = true; + } + return isInCharge; +} + + +const G4std::vector& G4CollisionnpElastic::GetListOfColliders(G4int whichOne) const +{ + if (whichOne == 1) + { + return colliders1; + } + else + { + if (whichOne == 2) + { return colliders2; } + else + { + G4Exception("G4CollisionnpElastic::GetListOfColliders - Argument outside valid range"); + return colliders1; + } + } +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.cc new file mode 100644 index 0000000000..8334564b96 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.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. * +// ******************************************************************** +// + +#include "globals.hh" +#include "G4XAnnihilationChannel.hh" +#include "G4ConcreteMesonBaryonToResonance.hh" + +G4BaryonWidth G4ConcreteMesonBaryonToResonance::theBaryonWidth; + +G4BaryonPartialWidth G4ConcreteMesonBaryonToResonance::theBaryonPartialWidth; + +G4ParticleTypeConverter G4ConcreteMesonBaryonToResonance::myConv; + +G4ConcreteMesonBaryonToResonance::G4ConcreteMesonBaryonToResonance(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4String& partWidthLabel) + : thePrimary1(aPrimary), thePrimary2(bPrimary), theSecondary(aSecondary) +{ + crossSectionSource = new G4XAnnihilationChannel(aSecondary, + theBaryonWidth, + theBaryonPartialWidth, + partWidthLabel); +} + + +G4ConcreteMesonBaryonToResonance::~G4ConcreteMesonBaryonToResonance() +{ + delete crossSectionSource; +} + + +G4bool G4ConcreteMesonBaryonToResonance::IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + if (myConv.GetGenericType(trk1)==myConv.GetGenericType(thePrimary1) && + myConv.GetGenericType(trk2)==myConv.GetGenericType(thePrimary2)) return true; + if (myConv.GetGenericType(trk1)==myConv.GetGenericType(thePrimary2) && + myConv.GetGenericType(trk2)==myConv.GetGenericType(thePrimary1)) return true; + return false; +} + +const G4ParticleDefinition* G4ConcreteMesonBaryonToResonance::GetOutgoingParticle(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4int secondaryIso3 = trk1.GetDefinition()->GetPDGiIsospin3() + trk2.GetDefinition()->GetPDGiIsospin3(); + const G4ParticleDefinition* state; + if ( (state = myConv.FindIso3State(myConv.GetGenericType(theSecondary), secondaryIso3)) == NULL) + { + G4cerr << "for "<(myConv.GetGenericType(theSecondary))<<" "<GetParticleName(), theSigmaTable)) +{ +} + +G4ConcreteNNToDeltaDeltastar::~G4ConcreteNNToDeltaDeltastar() +{ +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToDeltaNstar.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToDeltaNstar.cc new file mode 100644 index 0000000000..3b7bfb216b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToDeltaNstar.cc @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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: G4ConcreteNNToDeltaNstar.cc,v 1.2 2002/12/12 19:17:50 gunter Exp $ // + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ConcreteNNToDeltaNstar.hh" +#include "G4DeltaNstarBuilder.hh" + +G4XDeltaNstarTable G4ConcreteNNToDeltaNstar::theSigmaTable; + +G4ConcreteNNToDeltaNstar::G4ConcreteNNToDeltaNstar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary) + : G4ConcreteNNTwoBodyResonance(aPrimary, bPrimary, aSecondary, bSecondary, + G4DeltaNstarBuilder(bSecondary->GetParticleName(), theSigmaTable)) +{ +} + +G4ConcreteNNToDeltaNstar::~G4ConcreteNNToDeltaNstar() +{ +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDelta.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDelta.cc new file mode 100644 index 0000000000..2fdc14c0dc --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDelta.cc @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * 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: G4ConcreteNNToNDelta.cc,v 1.4 2002/12/12 19:17:50 gunter Exp $ // + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ConcreteNNToNDelta.hh" + +G4XNDeltaTable G4ConcreteNNToNDelta::theSigmaTable; + +G4ConcreteNNToNDelta::G4ConcreteNNToNDelta(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary) + : G4ConcreteNNTwoBodyResonance(aPrimary, bPrimary, aSecondary, bSecondary, theSigmaTable) +{ +} + +G4ConcreteNNToNDelta::~G4ConcreteNNToNDelta() +{ +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDeltaStar.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDeltaStar.cc new file mode 100644 index 0000000000..9c57daea07 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNDeltaStar.cc @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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: G4ConcreteNNToNDeltaStar.cc,v 1.4 2002/12/12 19:17:50 gunter Exp $ // + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ConcreteNNToNDeltaStar.hh" +#include "G4NDeltastarBuilder.hh" + +G4XNDeltastarTable G4ConcreteNNToNDeltaStar::theSigmaTable; + +G4ConcreteNNToNDeltaStar::G4ConcreteNNToNDeltaStar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary) + : G4ConcreteNNTwoBodyResonance(aPrimary, bPrimary, aSecondary, bSecondary, + G4NDeltastarBuilder(bSecondary->GetParticleName(), theSigmaTable)) +{ +} + +G4ConcreteNNToNDeltaStar::~G4ConcreteNNToNDeltaStar() +{ +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNNStar.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNNStar.cc new file mode 100644 index 0000000000..416b4cce49 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNToNNStar.cc @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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: G4ConcreteNNToNNStar.cc,v 1.2 2002/12/12 19:17:50 gunter Exp $ // + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ConcreteNNToNNStar.hh" +#include "G4NNstarBuilder.hh" + +G4XNNstarTable G4ConcreteNNToNNStar::theSigmaTable; + +G4ConcreteNNToNNStar::G4ConcreteNNToNNStar(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary) + : G4ConcreteNNTwoBodyResonance(aPrimary, bPrimary, aSecondary, bSecondary, + G4NNstarBuilder(bSecondary->GetParticleName(), theSigmaTable)) +{ +} + +G4ConcreteNNToNNStar::~G4ConcreteNNToNNStar() +{ +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNTwoBodyResonance.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNTwoBodyResonance.cc new file mode 100644 index 0000000000..3d00700425 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNNTwoBodyResonance.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: G4ConcreteNNTwoBodyResonance.cc,v 1.2 2002/12/12 19:17:50 gunter Exp $ // + +#include "globals.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XAqmElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4XResonance.hh" +#include "G4ConcreteNNTwoBodyResonance.hh" + +G4ConcreteNNTwoBodyResonance::G4ConcreteNNTwoBodyResonance(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary, + const G4VXResonanceTable& sigmaTable) + : thePrimary1(aPrimary), thePrimary2(bPrimary) +{ + theOutGoing.push_back(aSecondary); + theOutGoing.push_back(bSecondary); + + crossSectionSource = new G4XResonance(aPrimary, bPrimary, + aSecondary->GetPDGiIsospin(), + aSecondary->GetPDGiSpin(), + aSecondary->GetPDGMass(), + bSecondary->GetPDGiIsospin(), + bSecondary->GetPDGiSpin(), + bSecondary->GetPDGMass(), + aSecondary->GetParticleName(), + bSecondary->GetParticleName(), + sigmaTable); +} + +G4ConcreteNNTwoBodyResonance::~G4ConcreteNNTwoBodyResonance() +{ + delete crossSectionSource; +} + +G4bool G4ConcreteNNTwoBodyResonance::IsInCharge(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + if (trk1.GetDefinition()==thePrimary1 && trk2.GetDefinition()==thePrimary2) return true; + if (trk1.GetDefinition()==thePrimary2 && trk2.GetDefinition()==thePrimary1) return true; + return false; +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNStarNToNN.cc b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNStarNToNN.cc new file mode 100644 index 0000000000..670e858a20 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ConcreteNStarNToNN.cc @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * 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: G4ConcreteNStarNToNN.cc,v 1.2 2002/12/12 19:17:51 gunter Exp $ // + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ConcreteNStarNToNN.hh" +#include "G4NNstarBuilder.hh" + +G4XNNstarTable G4ConcreteNStarNToNN::theSigmaTable; + +G4ConcreteNStarNToNN::G4ConcreteNStarNToNN(const G4ParticleDefinition* aPrimary, + const G4ParticleDefinition* bPrimary, + const G4ParticleDefinition* aSecondary, + const G4ParticleDefinition* bSecondary) + : G4ConcreteNNTwoBodyResonance(aPrimary, bPrimary, aSecondary, bSecondary, + G4NNstarBuilder(aPrimary->GetParticleName(), theSigmaTable)) +{ +} + +G4ConcreteNStarNToNN::~G4ConcreteNStarNToNN() +{ +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionComposite.cc b/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionComposite.cc new file mode 100644 index 0000000000..326c5c93e2 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionComposite.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CrossSectionComposite +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4CrossSectionComposite.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4CrossSectionVector.hh" + +G4CrossSectionComposite::G4CrossSectionComposite() +{ } + + +G4CrossSectionComposite::~G4CrossSectionComposite() +{ } + + +G4bool G4CrossSectionComposite::operator==(const G4CrossSectionComposite &right) const +{ + return (this == (G4CrossSectionComposite*) &right); +} + + +G4bool G4CrossSectionComposite::operator!=(const G4CrossSectionComposite &right) const +{ + return (this != (G4CrossSectionComposite*) &right); +} + + +G4double G4CrossSectionComposite::CrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + // Cross section of composite is the sum of components cross sections + + G4double crossSection = 0.; + G4double ecm = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + + const G4CrossSectionVector* components = GetComponents(); + if (components != 0) + { + G4int nComponents = this->GetComponents()->size(); +// G4int nValid = 0; + + G4int i; + for (i=0; iIsValid(ecm)) + { + crossSection += component->CrossSection(trk1,trk2); + } + } + } + + return crossSection; +} + + +G4bool G4CrossSectionComposite::IsValid(G4double e) const +{ + // The composite is valid if any of its components are valid + G4bool answer = false; + const G4CrossSectionVector* components = GetComponents(); + if (components != 0) + { + G4int n = components->size(); + G4int i; + for (i=0; iIsValid(e)) + { + answer = true; + break; + } + } + } + return answer; +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionPatch.cc b/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionPatch.cc new file mode 100644 index 0000000000..6dec33ca30 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionPatch.cc @@ -0,0 +1,171 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CrossSectionPatch +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4CrossSectionPatch.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4CrossSectionVector.hh" + +G4CrossSectionPatch::G4CrossSectionPatch() +{ } + + +G4CrossSectionPatch::~G4CrossSectionPatch() +{ } + + +G4bool G4CrossSectionPatch::operator==(const G4CrossSectionPatch &right) const +{ + return (this == (G4CrossSectionPatch*) &right); +} + + +G4bool G4CrossSectionPatch::operator!=(const G4CrossSectionPatch &right) const +{ + return (this != (G4CrossSectionPatch*) &right); +} + + +G4double G4CrossSectionPatch::CrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + // The cross section is provided by one of the components, according to their energy + // validity range + + G4double crossSection = 0.; + G4double ecm = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + + const G4CrossSectionVector* components = GetComponents(); + if (components != 0) + { + G4int nComponents = this->GetComponents()->size(); +// G4int nValid = 0; + + G4int i; + for (i=0; iIsValid(ecm)) + { + crossSection = component->CrossSection(trk1,trk2); + } + else if (i < (nComponents - 1) ) + { + G4CrossSectionSourcePtr nextPtr = (*components)[i+1]; + G4VCrossSectionSource* next = nextPtr(); + if (ecm > component->HighLimit() && ecm < next->LowLimit()) + { + // Merge cross-sections in transition region between two validity ranges + crossSection = Transition(trk1,trk2,component,next); + } + } + } + } + + return crossSection; +} + + +G4bool G4CrossSectionPatch::IsValid(G4double e) const +{ + // The Patch is valid if any of its components are valid + G4bool answer = false; + const G4CrossSectionVector* components = GetComponents(); + if (components != 0) + { + G4int n = components->size(); + G4int i; + for (i=0; iIsValid(e)) + { + answer = true; + break; + } + } + } + return answer; +} + + +G4double G4CrossSectionPatch::Transition(const G4KineticTrack& trk1, const G4KineticTrack& trk2, + const G4VCrossSectionSource* comp1, + const G4VCrossSectionSource* comp2) const +{ + //Merge two cross sections in the transition region between their validity ranges + + G4double crossSection = 0.; + + G4double ecm = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4double sigma1 = comp1->CrossSection(trk1,trk2); + G4double sigma2 = comp2->CrossSection(trk1,trk2); + G4double denom = comp2->LowLimit() - comp1->HighLimit(); + G4double diff = ecm - comp1->HighLimit(); + if (denom > 0. && diff > 0.) + { + G4double ratio = diff / denom; + crossSection = (1.- ratio) * sigma1 + ratio * sigma2; + } + + return crossSection; +} + + +G4double G4CrossSectionPatch::Transition(G4double ecm, + G4double sigma1, G4double sigma2, + G4double e1, G4double e2) const +{ + //Merge two cross sections in the transition region between their validity ranges + + G4double crossSection = 0.; + + G4double denom = e2 - e1; + G4double diff = ecm - e1; + if (denom > 0. && diff > 0.) + { + G4double ratio = diff / denom; + crossSection = (1.- ratio) * sigma1 + ratio * sigma2; + } + + return crossSection; +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionSourcePtr.cc b/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionSourcePtr.cc new file mode 100644 index 0000000000..ef810795e7 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4CrossSectionSourcePtr.cc @@ -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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4CrossSectionSourcePtr +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4VCrossSectionSource.hh" +#include "G4CrossSectionSourcePtr.hh" + +G4CrossSectionSourcePtr::G4CrossSectionSourcePtr(G4VCrossSectionSource* x): x_(x) +{ } + +G4CrossSectionSourcePtr& G4CrossSectionSourcePtr::operator= (const G4CrossSectionSourcePtr& xw) +{ + x_ = xw.x_; + return *this; +} + +G4bool G4CrossSectionSourcePtr::operator==(const G4CrossSectionSourcePtr& right) const +{ + return *(this->operator()()) == *right(); +} + +const G4VCrossSectionSource* G4CrossSectionSourcePtr::operator() () const +{ return x_; } + +G4VCrossSectionSource* G4CrossSectionSourcePtr::operator() () +{ return x_; } + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4DetailedBalancePhaseSpaceIntegral.cc b/source/processes/hadronic/models/generator/scattering/src/G4DetailedBalancePhaseSpaceIntegral.cc new file mode 100644 index 0000000000..298dedeb3a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4DetailedBalancePhaseSpaceIntegral.cc @@ -0,0 +1,157 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4DetailedBalancePhaseSpaceIntegral.hh" +#include "G4ResonanceID.hh" + + G4double G4DetailedBalancePhaseSpaceIntegral::sqrts[120] = + { + .100, .162, .224, .285, .347, .409, .471, .532, .594, .656, .718, .779, .841, .903, .965, 1.026, 1.088, 1.150, 1.212, 1.274, 1.335, 1.397, 1.459, 1.521, 1.582, 1.644, 1.706, 1.768, 1.829, 1.891, 1.953, 2.015, 2.076, 2.138, 2.200, 2.262, 2.324, 2.385, 2.447, 2.509, 2.571, 2.632, 2.694, 2.756, 2.818, 2.879, 2.941, 3.003, 3.065, 3.126, 3.188, 3.250, 3.312, 3.374, 3.435, 3.497, 3.559, 3.621, 3.682, 3.744, 3.806, 3.868, 3.929, 3.991, 4.053, 4.115, 4.176, 4.238, 4.300, 4.362, 4.424, 4.485, 4.547, 4.609, 4.671, 4.732, 4.794, 4.856, 4.918, 4.979, 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 + }; + + G4double G4DetailedBalancePhaseSpaceIntegral::delta[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.791463, 0.18346, 0.135791, 0.131618, 0.154292, 0.218466, 0.306349, 0.385893, 0.450964, 0.505565, 0.550962, 0.589159, 0.621194, 0.649251, 0.673632, 0.695004, 0.713597, 0.730421, 0.745477, 0.759025, 0.77109, 0.782239, 0.792409, 0.801722, 0.810279, 0.818044, 0.825345, 0.832112, 0.838401, 0.844168, 0.849643, 0.854765, 0.859565, 0.864004, 0.868251, 0.872251, 0.876017, 0.879519, 0.882908, 0.886106, 0.889116, 0.892023, 0.894707, 0.897298, 0.899828, 0.902129, 0.904438, 0.906504, 0.908681, 0.910531, 0.912546, 0.913134, 0.937217, 0.952382, 0.963662, 0.96815, 0.975873, 0.981432, 0.970877, 1.00491, 1.00921, 0.930845, 1.06913, 0.923998, 1.10739, 0.901394, 0.890996, 1.17401, 0.919388, 0.924739, 0.843633, 1.1356, 1.21094, 0.824869, 0.887236, 0.920237, 0.765227, 0.930248, 1.42698, 1.40765, 0.919243, 0.70883, 0.749762, 0.97507, 1.03521, 0.798182, 0.652524, 0.657148, 0.806743, 1.1505, 1.69862 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1600[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.841847, 0.180378, 0.120167, 0.10034, 0.0922057, 0.089713, 0.0906924, 0.0943819, 0.100546, 0.109707, 0.122512, 0.140037, 0.162838, 0.191498, 0.223873, 0.2576, 0.290411, 0.322436, 0.352698, 0.38106, 0.407122, 0.431823, 0.454835, 0.476287, 0.496305, 0.514715, 0.532232, 0.548645, 0.564047, 0.578296, 0.591934, 0.604788, 0.61692, 0.628206, 0.639066, 0.649356, 0.659117, 0.668241, 0.677061, 0.685454, 0.693451, 0.701076, 0.708239, 0.715197, 0.721849, 0.728215, 0.734215, 0.740061, 0.745668, 0.751049, 0.756136, 0.757841, 0.824679, 0.862464, 0.886177, 0.902193, 0.913577, 0.922009, 0.928382, 0.933312, 0.937227, 0.940249, 0.943612, 0.9467, 0.945823, 0.951972, 0.947481, 0.954609, 0.954075, 0.947239, 0.96075, 0.962163, 0.946002, 0.947292, 0.968474, 0.977239, 0.955266, 0.937823, 0.937755, 0.956283, 0.989065, 1.00195, 0.976921, 0.94292, 0.925931, 0.922103, 0.922856, 0.935726, 0.970315, 1.01796, 1.05137 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1620[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.408076, 0.0877172, 0.0586604, 0.0492052, 0.0454755, 0.0445697, 0.0454907, 0.0479702, 0.0520729, 0.0585309, 0.0687595, 0.0862874, 0.116842, 0.161041, 0.208932, 0.255076, 0.297228, 0.336519, 0.372397, 0.405159, 0.434661, 0.462167, 0.487445, 0.510736, 0.532252, 0.551868, 0.570388, 0.587619, 0.603685, 0.618463, 0.63253, 0.645723, 0.658117, 0.669596, 0.680597, 0.690979, 0.700791, 0.709931, 0.718737, 0.72709, 0.735023, 0.742565, 0.749631, 0.756475, 0.763001, 0.769228, 0.775084, 0.780778, 0.786223, 0.791437, 0.79636, 0.798004, 0.861525, 0.896638, 0.918549, 0.933902, 0.941016, 0.954744, 0.945585, 0.957981, 0.962151, 0.947429, 0.945121, 1.01356, 0.936352, 1.01831, 0.92844, 1.05991, 0.924946, 0.916956, 1.10311, 0.938846, 0.920384, 0.904647, 1.15349, 1.03022, 0.867957, 0.927374, 0.851192, 0.971168, 1.28404, 1.14606, 0.859455, 0.821988, 0.94225, 0.906299, 0.783429, 0.812784, 1.04285, 1.41072, 1.48924 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1700[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.777927, 0.166211, 0.110372, 0.0918253, 0.0840178, 0.0813322, 0.0817223, 0.0844227, 0.0891403, 0.0961833, 0.105967, 0.119314, 0.136997, 0.160446, 0.18901, 0.220788, 0.253073, 0.285423, 0.316487, 0.345896, 0.3731, 0.399, 0.423212, 0.445837, 0.466989, 0.486473, 0.505033, 0.522441, 0.538791, 0.553927, 0.568422, 0.582092, 0.595, 0.607012, 0.618576, 0.629535, 0.639935, 0.649658, 0.659059, 0.668009, 0.676536, 0.684668, 0.69231, 0.699733, 0.706831, 0.713624, 0.720027, 0.726267, 0.732252, 0.737997, 0.743428, 0.745248, 0.816631, 0.856983, 0.88229, 0.89937, 0.91148, 0.920432, 0.927343, 0.932698, 0.936926, 0.94071, 0.943999, 0.944592, 0.948309, 0.948986, 0.952043, 0.948862, 0.959505, 0.949899, 0.950663, 0.967053, 0.958166, 0.943667, 0.951274, 0.975734, 0.977556, 0.951478, 0.936027, 0.937725, 0.958755, 0.99412, 1.00694, 0.979553, 0.943152, 0.925058, 0.921155, 0.920717, 0.930328, 0.962098, 1.01185 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1900[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.509133, 0.108362, 0.0716469, 0.0593223, 0.0539782, 0.0519208, 0.051785, 0.0530338, 0.0554351, 0.0590924, 0.0641838, 0.0711512, 0.0806243, 0.0943098, 0.114151, 0.141512, 0.174052, 0.209382, 0.244531, 0.278308, 0.309742, 0.339733, 0.367774, 0.393961, 0.418414, 0.440909, 0.462307, 0.482349, 0.501146, 0.518523, 0.535144, 0.550797, 0.565561, 0.579284, 0.592479, 0.604972, 0.616813, 0.627873, 0.638556, 0.648716, 0.658387, 0.667602, 0.676253, 0.684649, 0.692671, 0.700341, 0.707566, 0.714601, 0.721343, 0.727809, 0.733916, 0.735963, 0.815735, 0.860312, 0.888002, 0.906553, 0.919434, 0.928811, 0.93672, 0.940726, 0.944825, 0.947096, 0.949754, 0.96112, 0.955619, 0.957278, 0.961905, 0.964641, 0.948935, 0.990353, 0.951994, 0.943815, 0.997524, 0.985787, 0.935233, 0.933804, 0.985334, 1.04291, 0.976454, 0.92317, 0.920953, 0.919673, 0.977725, 1.08003, 1.08345, 0.980161, 0.905147, 0.90153, 0.915476, 0.896648, 0.882291 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1905[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.642785, 0.1365, 0.0900211, 0.0743221, 0.0673988, 0.0645734, 0.0641012, 0.0652714, 0.0677509, 0.0715689, 0.0768104, 0.0837606, 0.0927478, 0.104825, 0.120892, 0.141857, 0.167166, 0.19618, 0.226592, 0.256959, 0.285982, 0.314204, 0.34097, 0.36624, 0.390042, 0.412091, 0.43319, 0.453051, 0.47176, 0.489123, 0.505787, 0.521529, 0.536418, 0.550294, 0.563668, 0.576357, 0.588409, 0.599688, 0.610602, 0.621, 0.630913, 0.640374, 0.649269, 0.657913, 0.666184, 0.674102, 0.68157, 0.688849, 0.695834, 0.702541, 0.708882, 0.711009, 0.794509, 0.841765, 0.871382, 0.891339, 0.90548, 0.915921, 0.923885, 0.930107, 0.934857, 0.938856, 0.942882, 0.94593, 0.945534, 0.95181, 0.948039, 0.957268, 0.948426, 0.958109, 0.96074, 0.94682, 0.957739, 0.974396, 0.956243, 0.941841, 0.951844, 0.981697, 0.987557, 0.956974, 0.935519, 0.932688, 0.946039, 0.983422, 1.01902, 1.01099, 0.967849, 0.931925, 0.919857, 0.918323, 0.916217 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1910[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.449928, 0.0955152, 0.0629718, 0.0519733, 0.0471165, 0.0451275, 0.0447853, 0.0455942, 0.0473242, 0.0500031, 0.0537076, 0.0586774, 0.0652364, 0.074392, 0.0874664, 0.106602, 0.132769, 0.16505, 0.19957, 0.233939, 0.266508, 0.297899, 0.327435, 0.355129, 0.381064, 0.40497, 0.427747, 0.449106, 0.469158, 0.487711, 0.505468, 0.522201, 0.537991, 0.552675, 0.566799, 0.580175, 0.592858, 0.604708, 0.616157, 0.627047, 0.637416, 0.647298, 0.656576, 0.665582, 0.674188, 0.682419, 0.690171, 0.697721, 0.704957, 0.711898, 0.718454, 0.720651, 0.806315, 0.854174, 0.883891, 0.903666, 0.917875, 0.928377, 0.935201, 0.943274, 0.947442, 0.952235, 0.959253, 0.955805, 0.950321, 0.973535, 0.947111, 0.982651, 0.949274, 0.960446, 0.995374, 0.940787, 0.947799, 1.01847, 0.975906, 0.929431, 0.93021, 0.995413, 1.061, 0.975879, 0.91672, 0.919052, 0.910013, 0.962214, 1.08601, 1.1201, 1.00679, 0.904396, 0.888803, 0.915317, 0.904622 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1920[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.351127, 0.0744941, 0.049079, 0.0404765, 0.0366628, 0.0350815, 0.0347778, 0.0353622, 0.0366528, 0.0386641, 0.0414497, 0.0451869, 0.0501229, 0.057049, 0.0671447, 0.0828747, 0.107105, 0.140173, 0.176845, 0.213563, 0.248287, 0.281641, 0.312917, 0.342157, 0.36947, 0.39459, 0.418478, 0.440841, 0.461804, 0.481174, 0.499689, 0.517119, 0.533548, 0.548813, 0.563482, 0.577364, 0.590515, 0.602794, 0.614648, 0.625917, 0.636639, 0.646852, 0.656434, 0.665731, 0.67461, 0.683096, 0.691086, 0.698863, 0.706313, 0.713456, 0.7202, 0.722459, 0.81025, 0.859017, 0.889124, 0.909326, 0.9233, 0.934393, 0.937768, 0.95121, 0.959742, 0.966937, 0.970407, 0.948933, 0.955382, 0.984892, 0.942159, 0.990688, 0.953738, 0.938332, 1.04362, 0.933986, 0.923866, 1.0322, 1.02548, 0.912188, 0.913538, 0.949419, 1.13362, 1.03296, 0.888289, 0.915975, 0.890958, 0.887978, 1.06807, 1.24907, 1.10363, 0.891688, 0.834544, 0.903427, 0.937526 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1930[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.569218, 0.120465, 0.0791458, 0.0650716, 0.0587292, 0.055963, 0.0552089, 0.0558117, 0.0574496, 0.0600759, 0.0636902, 0.0684151, 0.0743803, 0.0821714, 0.0923152, 0.10569, 0.122977, 0.145229, 0.171424, 0.199858, 0.228473, 0.257185, 0.284963, 0.311531, 0.336784, 0.360329, 0.382967, 0.404359, 0.42457, 0.443373, 0.461454, 0.478567, 0.494775, 0.5099, 0.524494, 0.538356, 0.551534, 0.563876, 0.575828, 0.587222, 0.598092, 0.608472, 0.618235, 0.627729, 0.636816, 0.64552, 0.653732, 0.661739, 0.669426, 0.676808, 0.68379, 0.686132, 0.778238, 0.830454, 0.863187, 0.885232, 0.900837, 0.912328, 0.921146, 0.927763, 0.933247, 0.937633, 0.940666, 0.943616, 0.948854, 0.94724, 0.953032, 0.949476, 0.959689, 0.948458, 0.959477, 0.964498, 0.947038, 0.954625, 0.977974, 0.964645, 0.942541, 0.944273, 0.971945, 0.997763, 0.976433, 0.942466, 0.930759, 0.932864, 0.955282, 1.00152, 1.03235, 1.01079, 0.960698, 0.925973, 0.917134 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::delta1950[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.554622, 0.117296, 0.077005, 0.0632591, 0.0570397, 0.0542954, 0.0534991, 0.0540082, 0.0555051, 0.0579325, 0.0612789, 0.0656443, 0.0711312, 0.0782536, 0.087462, 0.0995406, 0.115188, 0.135663, 0.160431, 0.188005, 0.216235, 0.244863, 0.272737, 0.299509, 0.325023, 0.348856, 0.371804, 0.393509, 0.414035, 0.433142, 0.451526, 0.468933, 0.485427, 0.500823, 0.515683, 0.5298, 0.543225, 0.555801, 0.567981, 0.579595, 0.590676, 0.60126, 0.611215, 0.620898, 0.630166, 0.639045, 0.647422, 0.655592, 0.663434, 0.670967, 0.678093, 0.680483, 0.774521, 0.827858, 0.861297, 0.883817, 0.899764, 0.911518, 0.920493, 0.927311, 0.93267, 0.936995, 0.940315, 0.944298, 0.948512, 0.946468, 0.954348, 0.948211, 0.960121, 0.950243, 0.955092, 0.96795, 0.949896, 0.949637, 0.974362, 0.972852, 0.94639, 0.940893, 0.961186, 0.995115, 0.988971, 0.951651, 0.932193, 0.93022, 0.943166, 0.983525, 1.02785, 1.02749, 0.981705, 0.936266, 0.917812 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1440[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.35658, 0.297152, 0.203158, 0.174856, 0.166748, 0.169729, 0.181237, 0.201068, 0.22873, 0.263555, 0.301812, 0.340295, 0.3765, 0.410781, 0.442297, 0.471115, 0.49702, 0.52109, 0.543112, 0.563304, 0.581577, 0.598704, 0.614526, 0.629179, 0.642783, 0.655244, 0.667062, 0.678106, 0.688446, 0.697994, 0.707117, 0.715706, 0.723802, 0.731328, 0.738563, 0.745413, 0.751908, 0.757976, 0.763839, 0.769418, 0.774731, 0.779796, 0.784553, 0.789174, 0.793592, 0.797819, 0.801803, 0.805685, 0.809409, 0.812983, 0.816362, 0.817495, 0.861991, 0.887317, 0.90334, 0.914254, 0.922069, 0.927906, 0.932321, 0.935784, 0.938531, 0.941419, 0.943295, 0.94391, 0.947164, 0.946779, 0.946552, 0.954033, 0.94703, 0.945319, 0.958005, 0.960135, 0.945531, 0.939265, 0.949346, 0.970123, 0.976721, 0.958395, 0.937371, 0.928483, 0.929705, 0.94289, 0.970898, 1.00151, 1.0119, 0.992784, 0.958286, 0.928894, 0.914032, 0.91034, 0.909191 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1520[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.411336, 0.0897028, 0.0610322, 0.0522659, 0.0495967, 0.0503116, 0.0538352, 0.0608698, 0.0739261, 0.102011, 0.154523, 0.215922, 0.273046, 0.325292, 0.371745, 0.413024, 0.449258, 0.482251, 0.511916, 0.538707, 0.562632, 0.584792, 0.605045, 0.623621, 0.640713, 0.656242, 0.670857, 0.684417, 0.697029, 0.708601, 0.719593, 0.729882, 0.73953, 0.748451, 0.756986, 0.765029, 0.772618, 0.779675, 0.786464, 0.792898, 0.79901, 0.804818, 0.810234, 0.815466, 0.820487, 0.82527, 0.829705, 0.834091, 0.838256, 0.84218, 0.846021, 0.847244, 0.895165, 0.920155, 0.93883, 0.954209, 0.968607, 0.943533, 0.985424, 1.01068, 1.00663, 0.93709, 0.929831, 1.06348, 0.920052, 1.07425, 0.899784, 0.888587, 1.19818, 0.867335, 0.897437, 0.996813, 1.22934, 0.82479, 0.946999, 0.809511, 0.945749, 1.45329, 1.06595, 0.750515, 0.855056, 1.00429, 0.768188, 0.713859, 0.962332, 1.53919, 1.6505, 1.07221, 0.728062, 0.630033, 0.708231 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1535[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.447503, 0.0972124, 0.0658293, 0.0560465, 0.0527778, 0.0529825, 0.0558388, 0.0616168, 0.0716145, 0.0904343, 0.127033, 0.180328, 0.235344, 0.287607, 0.334899, 0.37734, 0.414826, 0.449109, 0.480035, 0.508038, 0.533099, 0.556352, 0.577638, 0.597186, 0.615195, 0.631575, 0.647006, 0.661336, 0.674674, 0.686924, 0.698568, 0.709474, 0.719706, 0.729173, 0.738236, 0.746781, 0.754848, 0.762356, 0.769584, 0.776435, 0.782938, 0.789117, 0.794898, 0.800492, 0.805829, 0.810922, 0.815696, 0.820343, 0.824794, 0.82903, 0.833055, 0.834384, 0.885923, 0.914821, 0.931313, 0.939221, 0.944808, 0.957111, 0.947436, 0.955702, 0.947258, 0.939, 1.00255, 0.952886, 0.952257, 0.94236, 1.0162, 0.921623, 1.03109, 0.999897, 0.915295, 0.885316, 1.17325, 1.00996, 0.863428, 0.921136, 0.837098, 1.10389, 1.33207, 0.953998, 0.789266, 0.91086, 0.941532, 0.776648, 0.786064, 1.04877, 1.4918, 1.48727, 1.05195, 0.770583, 0.68413 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1650[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.399475, 0.0860281, 0.0576561, 0.0484859, 0.0449515, 0.0442284, 0.0453695, 0.0481658, 0.0527791, 0.0602009, 0.0725074, 0.0949854, 0.133342, 0.182389, 0.231846, 0.278186, 0.31999, 0.358692, 0.393884, 0.425928, 0.454722, 0.481525, 0.506125, 0.528767, 0.549664, 0.568701, 0.586661, 0.603362, 0.618924, 0.633231, 0.646844, 0.659605, 0.671588, 0.682683, 0.693312, 0.703339, 0.712813, 0.721635, 0.730132, 0.738191, 0.745842, 0.753115, 0.759927, 0.766522, 0.772809, 0.77881, 0.784453, 0.789932, 0.795174, 0.800201, 0.804929, 0.80652, 0.867575, 0.900735, 0.9207, 0.934172, 0.939936, 0.94792, 0.956272, 0.978829, 0.988334, 0.970454, 0.937321, 0.989319, 0.951971, 0.965555, 0.929103, 1.06463, 0.918502, 0.941359, 1.11414, 0.894101, 0.90536, 0.971843, 1.20696, 0.908638, 0.893119, 0.895816, 0.851682, 1.14018, 1.32215, 0.967089, 0.792375, 0.882987, 0.96454, 0.814736, 0.758811, 0.91297, 1.28909, 1.57901, 1.30591 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1675[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.357466, 0.0768466, 0.0513976, 0.0431202, 0.0398605, 0.0390782, 0.0399027, 0.0421046, 0.0457532, 0.0515288, 0.0608036, 0.0772901, 0.108232, 0.154746, 0.204758, 0.252465, 0.295761, 0.335944, 0.372522, 0.405846, 0.435799, 0.463684, 0.489278, 0.512835, 0.534577, 0.554382, 0.573067, 0.59044, 0.606629, 0.62151, 0.635669, 0.648941, 0.661403, 0.67294, 0.683993, 0.69442, 0.70427, 0.713442, 0.722276, 0.730652, 0.738605, 0.746164, 0.753244, 0.760102, 0.766636, 0.772866, 0.778728, 0.784431, 0.789873, 0.795083, 0.800018, 0.801654, 0.865042, 0.900339, 0.922651, 0.938952, 0.942952, 0.961983, 0.94248, 0.959126, 0.96321, 0.941101, 0.937402, 1.03919, 0.927144, 1.03956, 0.92127, 1.0992, 0.906324, 0.897798, 1.15471, 0.916621, 0.924916, 0.873877, 1.2137, 1.03252, 0.836693, 0.943856, 0.816012, 0.949852, 1.37906, 1.17576, 0.815123, 0.787266, 0.968762, 0.913305, 0.73915, 0.761967, 1.02747, 1.5123, 1.62055 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1680[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.304124, 0.0653626, 0.0437039, 0.0366534, 0.0338695, 0.0331896, 0.0338714, 0.0357172, 0.0387829, 0.043643, 0.0514843, 0.0657569, 0.0951163, 0.143198, 0.195339, 0.244789, 0.289452, 0.330758, 0.368262, 0.402361, 0.432962, 0.461413, 0.487497, 0.511482, 0.5336, 0.553733, 0.572715, 0.590352, 0.606779, 0.621871, 0.636223, 0.649671, 0.662293, 0.673972, 0.685156, 0.695703, 0.705664, 0.714935, 0.723861, 0.732323, 0.740355, 0.747992, 0.755149, 0.762072, 0.768647, 0.774918, 0.780856, 0.786618, 0.792054, 0.797331, 0.802334, 0.803986, 0.867921, 0.904047, 0.927846, 0.945777, 0.94768, 0.97582, 0.935472, 0.949766, 0.951417, 0.928448, 0.927438, 1.08112, 0.917535, 1.09139, 0.919234, 1.13808, 0.87928, 0.875424, 1.20437, 0.902065, 0.935811, 0.821748, 1.25376, 1.07635, 0.786033, 0.977018, 0.780268, 0.875222, 1.466, 1.2724, 0.778215, 0.725016, 0.983913, 0.959505, 0.696881, 0.681507, 0.940078, 1.55518, 1.85089 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1700[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.280146, 0.0600131, 0.0399757, 0.0333805, 0.0306819, 0.0298716, 0.0302374, 0.0315475, 0.0337684, 0.0371989, 0.0423871, 0.0507482, 0.0659827, 0.0980879, 0.145607, 0.195314, 0.241556, 0.284851, 0.324413, 0.360521, 0.393007, 0.423266, 0.451048, 0.476622, 0.500227, 0.521732, 0.54202, 0.560883, 0.578461, 0.594618, 0.609991, 0.6244, 0.637928, 0.650453, 0.662453, 0.673772, 0.684464, 0.69442, 0.704007, 0.7131, 0.721731, 0.729931, 0.737602, 0.745027, 0.752119, 0.758906, 0.765268, 0.771404, 0.777317, 0.78303, 0.788299, 0.790145, 0.858899, 0.897049, 0.917419, 0.928557, 0.942001, 0.935969, 0.984157, 0.941516, 0.933171, 0.947757, 1.05517, 0.930952, 0.919216, 0.992539, 0.903396, 0.894172, 1.12095, 0.908794, 0.878243, 1.26183, 0.832946, 0.933626, 0.844886, 1.37428, 0.970152, 0.791826, 0.983933, 0.758197, 0.889004, 1.50701, 1.28047, 0.773706, 0.707601, 0.963279, 1.0005, 0.711104, 0.653548, 0.850062, 1.39815 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1710[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.265363, 0.0569198, 0.0379719, 0.0317621, 0.0292554, 0.0285554, 0.0289977, 0.0303798, 0.0326993, 0.0363169, 0.0419307, 0.0514629, 0.0705764, 0.110738, 0.162319, 0.213154, 0.259543, 0.302605, 0.341768, 0.377404, 0.409398, 0.439152, 0.466435, 0.491525, 0.514662, 0.535726, 0.555583, 0.574036, 0.591221, 0.607011, 0.622024, 0.636096, 0.649302, 0.661518, 0.673215, 0.684249, 0.694671, 0.704371, 0.713708, 0.722556, 0.730951, 0.738932, 0.746424, 0.753693, 0.760594, 0.767115, 0.773268, 0.779366, 0.785108, 0.790471, 0.795792, 0.797391, 0.863445, 0.897879, 0.91751, 0.928673, 0.965118, 0.954081, 0.953731, 0.927602, 0.924991, 0.921207, 1.00118, 0.991378, 0.908159, 1.11823, 0.892603, 0.949576, 0.97849, 0.93357, 0.96684, 1.13984, 0.838078, 0.860022, 0.9477, 1.43396, 0.804664, 0.863621, 0.917662, 0.715211, 1.08315, 1.68606, 1.00175, 0.669466, 0.768241, 1.10362, 0.84635, 0.622676, 0.679245, 1.04938, 1.83925 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1720[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.355382, 0.0761682, 0.0507655, 0.0424174, 0.0390176, 0.0380208, 0.0385274, 0.0402488, 0.0431507, 0.0476303, 0.054406, 0.0652618, 0.0841947, 0.118387, 0.163726, 0.21067, 0.2546, 0.295959, 0.333914, 0.368669, 0.400018, 0.429278, 0.456189, 0.481, 0.503929, 0.524842, 0.54459, 0.562969, 0.58011, 0.595877, 0.61089, 0.62497, 0.638199, 0.650454, 0.662198, 0.673283, 0.68376, 0.693519, 0.702922, 0.711842, 0.720314, 0.72837, 0.735915, 0.743224, 0.750192, 0.756844, 0.763101, 0.769181, 0.774993, 0.780565, 0.785823, 0.78758, 0.855346, 0.892457, 0.914364, 0.927952, 0.943437, 0.944723, 0.960463, 0.944613, 0.941922, 0.94772, 1.00041, 0.965615, 0.935287, 1.01632, 0.927059, 0.94999, 1.0296, 0.920198, 0.95443, 1.11873, 0.886318, 0.907027, 0.942592, 1.23755, 0.943319, 0.86477, 0.925869, 0.822561, 1.00978, 1.36976, 1.125, 0.818069, 0.803429, 0.961289, 0.912383, 0.756675, 0.770971, 1.00087, 1.43023 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1900[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.941957, 0.200052, 0.131941, 0.108929, 0.0987696, 0.0946015, 0.0938589, 0.0954849, 0.098966, 0.104289, 0.111485, 0.12078, 0.132317, 0.146882, 0.16462, 0.185498, 0.208571, 0.233683, 0.259504, 0.285261, 0.310035, 0.334334, 0.357583, 0.379712, 0.400713, 0.420296, 0.439146, 0.456986, 0.473873, 0.489613, 0.504779, 0.519161, 0.53281, 0.54557, 0.557904, 0.56964, 0.580816, 0.591301, 0.601471, 0.611181, 0.620459, 0.629332, 0.637689, 0.645827, 0.653627, 0.661108, 0.668174, 0.675075, 0.681706, 0.688083, 0.694122, 0.696149, 0.776591, 0.822985, 0.852488, 0.872608, 0.887008, 0.897736, 0.905962, 0.912433, 0.917622, 0.921857, 0.925382, 0.928448, 0.930796, 0.933072, 0.934836, 0.936794, 0.937263, 0.940247, 0.940094, 0.939763, 0.943845, 0.945177, 0.941429, 0.940808, 0.946446, 0.951989, 0.949646, 0.942266, 0.938057, 0.940761, 0.949896, 0.960443, 0.964064, 0.957244, 0.945082, 0.934934, 0.930032, 0.930384, 0.93625 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N1990[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.899838, 0.190335, 0.12497, 0.102668, 0.0925717, 0.0881047, 0.086784, 0.087558, 0.0898983, 0.0936837, 0.0988512, 0.105481, 0.113604, 0.123743, 0.136093, 0.150946, 0.168127, 0.188019, 0.209834, 0.232847, 0.255972, 0.279413, 0.302403, 0.324697, 0.346156, 0.366389, 0.386035, 0.404762, 0.422595, 0.439299, 0.455463, 0.470847, 0.485494, 0.499226, 0.512533, 0.525224, 0.537335, 0.548718, 0.559777, 0.570354, 0.580474, 0.590166, 0.599306, 0.608218, 0.616768, 0.624977, 0.63274, 0.640326, 0.647624, 0.654647, 0.661303, 0.663539, 0.752687, 0.804468, 0.837525, 0.860124, 0.876322, 0.888402, 0.89767, 0.904969, 0.91083, 0.915625, 0.919587, 0.922891, 0.92581, 0.928178, 0.930306, 0.932092, 0.933998, 0.934632, 0.93705, 0.937842, 0.937275, 0.93985, 0.942493, 0.940804, 0.938668, 0.940976, 0.946354, 0.948678, 0.944916, 0.939328, 0.937265, 0.940696, 0.948612, 0.956768, 0.959367, 0.954155, 0.94453, 0.935762, 0.930811 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N2090[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.547537, 0.115759, 0.075968, 0.0623821, 0.0562232, 0.0534908, 0.0526756, 0.0531413, 0.0545725, 0.0569075, 0.0601297, 0.0643292, 0.0695965, 0.0764136, 0.0851963, 0.096681, 0.111557, 0.131145, 0.155145, 0.182223, 0.210212, 0.238763, 0.266665, 0.293523, 0.319158, 0.343129, 0.366225, 0.388084, 0.408763, 0.428021, 0.446554, 0.464107, 0.480742, 0.496272, 0.511264, 0.525509, 0.539056, 0.551748, 0.564043, 0.575766, 0.586953, 0.597638, 0.60769, 0.617466, 0.626825, 0.635791, 0.644251, 0.652502, 0.660423, 0.668031, 0.675228, 0.677643, 0.772649, 0.826549, 0.860343, 0.883103, 0.899216, 0.911105, 0.920137, 0.927115, 0.932448, 0.93677, 0.940311, 0.944655, 0.948044, 0.946439, 0.954568, 0.94806, 0.959633, 0.951661, 0.953052, 0.968774, 0.952005, 0.947827, 0.971458, 0.976397, 0.94919, 0.940037, 0.956257, 0.99176, 0.994232, 0.957433, 0.933579, 0.929618, 0.93862, 0.974378, 1.0225, 1.03334, 0.992903, 0.943441, 0.919132 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N2190[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.64419, 0.13552, 0.0884539, 0.0722069, 0.064645, 0.0610451, 0.0596095, 0.0595612, 0.0605041, 0.0622879, 0.0648255, 0.0681073, 0.072105, 0.0770437, 0.0830145, 0.0902334, 0.0988366, 0.109466, 0.122391, 0.137912, 0.155724, 0.176014, 0.197812, 0.22038, 0.243113, 0.265229, 0.287188, 0.30846, 0.32896, 0.348336, 0.367216, 0.385286, 0.402566, 0.418826, 0.43463, 0.44974, 0.46419, 0.477796, 0.491036, 0.503715, 0.515863, 0.527507, 0.538499, 0.549224, 0.559522, 0.569415, 0.578775, 0.587928, 0.596735, 0.605215, 0.613254, 0.615955, 0.72376, 0.786306, 0.826092, 0.853171, 0.87249, 0.88683, 0.89778, 0.906372, 0.913222, 0.918799, 0.923387, 0.927252, 0.93071, 0.933319, 0.935661, 0.938117, 0.939511, 0.941116, 0.943896, 0.942259, 0.945769, 0.948729, 0.944694, 0.944996, 0.952322, 0.954684, 0.94764, 0.942782, 0.947159, 0.958328, 0.964927, 0.958481, 0.94611, 0.938491, 0.938902, 0.947795, 0.96383, 0.978927, 0.982018 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N2220[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.652174, 0.136947, 0.089207, 0.0726658, 0.0649009, 0.061126, 0.0595153, 0.059275, 0.0599991, 0.0615159, 0.0637249, 0.0665942, 0.0700759, 0.0743378, 0.0794222, 0.0854668, 0.0925334, 0.101093, 0.111331, 0.123549, 0.137719, 0.154318, 0.172854, 0.192811, 0.213601, 0.234367, 0.2554, 0.276093, 0.29627, 0.315518, 0.33441, 0.3526, 0.370083, 0.386601, 0.402715, 0.418169, 0.432988, 0.446976, 0.460618, 0.473707, 0.486269, 0.498332, 0.509735, 0.520877, 0.531589, 0.541894, 0.551653, 0.561206, 0.570409, 0.579277, 0.587692, 0.590521, 0.704068, 0.770489, 0.812948, 0.841943, 0.86268, 0.878101, 0.889896, 0.899156, 0.906568, 0.912612, 0.917611, 0.921808, 0.925295, 0.928268, 0.931138, 0.932961, 0.935632, 0.936473, 0.938938, 0.940248, 0.939891, 0.943316, 0.944714, 0.942076, 0.943238, 0.948743, 0.950258, 0.94535, 0.941803, 0.944912, 0.953138, 0.958909, 0.955678, 0.946628, 0.939529, 0.938348, 0.943804, 0.955107, 0.967785 + }; + G4double G4DetailedBalancePhaseSpaceIntegral::N2250[120] ={ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.542759, 0.113929, 0.0741844, 0.0604044, 0.0539265, 0.050767, 0.0494059, 0.0491821, 0.0497579, 0.0509891, 0.0527922, 0.055141, 0.0579969, 0.0615006, 0.0656931, 0.0707003, 0.0765961, 0.0838194, 0.0926149, 0.103398, 0.116368, 0.132232, 0.150697, 0.171215, 0.19301, 0.215, 0.237373, 0.259414, 0.2809, 0.301375, 0.321445, 0.34074, 0.359257, 0.376728, 0.393746, 0.410046, 0.425659, 0.440377, 0.454716, 0.468459, 0.481637, 0.494278, 0.506218, 0.517874, 0.529072, 0.539835, 0.550021, 0.559985, 0.569577, 0.578814, 0.587573, 0.590516, 0.708123, 0.776373, 0.819735, 0.849195, 0.870171, 0.885711, 0.897553, 0.906816, 0.914212, 0.920259, 0.925245, 0.929333, 0.932567, 0.935876, 0.938643, 0.940018, 0.943325, 0.943691, 0.945354, 0.949409, 0.945395, 0.949301, 0.95534, 0.949088, 0.945845, 0.954916, 0.963318, 0.955738, 0.944675, 0.944206, 0.956147, 0.97232, 0.974246, 0.958813, 0.94258, 0.935782, 0.938211, 0.95113, 0.973955 + }; + +G4DetailedBalancePhaseSpaceIntegral:: +G4DetailedBalancePhaseSpaceIntegral(G4ParticleDefinition * aR) : theR(aR) +{ + G4ResonanceID theID; + G4int pdg=theR->GetPDGEncoding(); + if(theID.IsDelta1232(pdg)) data = delta; + else if(theID.IsDelta1600(pdg)) data = delta1600; + else if(theID.IsDelta1620(pdg)) data = delta1620; + else if(theID.IsDelta1700(pdg)) data = delta1700; + else if(theID.IsDelta1900(pdg)) data = delta1900; + else if(theID.IsDelta1905(pdg)) data = delta1905; + else if(theID.IsDelta1910(pdg)) data = delta1910; + else if(theID.IsDelta1920(pdg)) data = delta1920; + else if(theID.IsDelta1930(pdg)) data = delta1930; + else if(theID.IsDelta1950(pdg)) data = delta1950; + + else if(theID.IsN1440(pdg)) data = N1440; + else if(theID.IsN1520(pdg)) data = N1520; + else if(theID.IsN1535(pdg)) data = N1535; + else if(theID.IsN1650(pdg)) data = N1650; + else if(theID.IsN1675(pdg)) data = N1675; + else if(theID.IsN1680(pdg)) data = N1680; + else if(theID.IsN1700(pdg)) data = N1700; + else if(theID.IsN1710(pdg)) data = N1710; + else if(theID.IsN1720(pdg)) data = N1720; + else if(theID.IsN1900(pdg)) data = N1900; + else if(theID.IsN1990(pdg)) data = N1990; + else if(theID.IsN2090(pdg)) data = N2090; + else if(theID.IsN2190(pdg)) data = N2190; + else if(theID.IsN2220(pdg)) data = N2220; + else if(theID.IsN2250(pdg)) data = N2250; +} + +G4double G4DetailedBalancePhaseSpaceIntegral:: +GetPhaseSpaceIntegral(G4double sqs) +{ + G4double result = 0; + G4int it=0; + for(G4int ie=0; ie<120; ie++) + { + if(sqrts[ie]*GeV>sqs) break; + it = ie; + } + G4double x1=sqrts[it]*GeV; + G4double x2=sqrts[it+1]*GeV; + G4double y1=data[it]; + G4double y2=data[it+1]; + result = y1+(sqs-x1)*(y2-y1)/(x2-x1); + return result; +} + diff --git a/examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh b/source/processes/hadronic/models/generator/scattering/src/G4LowEXsection.cc similarity index 70% rename from examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh rename to source/processes/hadronic/models/generator/scattering/src/G4LowEXsection.cc index 5982bd1c8f..ad3d91ad18 100644 --- a/examples/extended/biasing/B04/include/B04PrimaryGeneratorAction.hh +++ b/source/processes/hadronic/models/generator/scattering/src/G4LowEXsection.cc @@ -19,31 +19,27 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// -// $Id: B04PrimaryGeneratorAction.hh,v 1.2 2002/04/19 10:54:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// +#include "G4LowEXsection.hh" +#include -#ifndef B04PrimaryGeneratorAction_hh -#define B04PrimaryGeneratorAction_hh B04PrimaryGeneratorAction_hh - -#include "G4VUserPrimaryGeneratorAction.hh" - -class G4ParticleGun; -class G4Event; - -class B04PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction -{ - public: - B04PrimaryGeneratorAction(); - ~B04PrimaryGeneratorAction(); - - public: - void GeneratePrimaries(G4Event* anEvent); - - private: - G4ParticleGun* particleGun; -}; - -#endif +G4double G4LowEXsection:: + CrossSection(G4double aX) const + { + G4double result = 0; + if(aXaX) break; + it = i; + } + G4double x1 = log((*it).first); + G4double x2 = log((*(it+1)).first); + G4double y1 = log((*it).second); + G4double y2 = log((*(it+1)).second); + G4double x = log(aX); + G4double y = y1+(x-x1)*(y2-y1)/(x2-x1); + result = exp(y); + return result*millibarn; + } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4PartialWidthTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4PartialWidthTable.cc new file mode 100644 index 0000000000..9dceacdecb --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4PartialWidthTable.cc @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4PartialWidthTable +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4PartialWidthTable.hh" +#include "G4KineticTrack.hh" + + +G4PartialWidthTable::G4PartialWidthTable(const G4double* energies, G4int entries) : nEnergies(entries) +{ + // Fill the vector with tabulated energies + G4int i; + for (i=0; i 1) G4Exception("G4PartialWidthTable::Width - ambiguity"); + + return width; +} + + +void G4PartialWidthTable::AddWidths(const G4double* channelWidth, + const G4String& name1, const G4String& name2) +{ + G4PhysicsFreeVector* width = new G4PhysicsFreeVector(nEnergies); + G4int i; + for (i=0; iPutValue(i,e,value); + } + + widths.push_back(width); + daughter1.push_back(name1); + daughter2.push_back(name2); + + return; +} + + +void G4PartialWidthTable::Dump() const +{ + G4int entries = widths.size(); + + G4int i; + for (i=0; iGetValue(e,dummy); + G4cout << j << ") Energy = " << e << ", Width = " << w << G4endl; + } + } + return; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc b/source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc new file mode 100644 index 0000000000..fd065c09dd --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc @@ -0,0 +1,255 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "G4ParticleTypeConverter.hh" + +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4Gamma.hh" +#include "G4PionPlus.hh" +#include "G4PionZero.hh" +#include "G4PionMinus.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" +#include "G4KaonMinus.hh" +#include "G4KaonPlus.hh" +#include "G4KaonZero.hh" +#include "G4AntiKaonZero.hh" +#include "G4KaonZeroShort.hh" +#include "G4KaonZeroLong.hh" +#include "G4Lambda.hh" + +G4ParticleTypeConverter::G4ParticleTypeConverter() +{ + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + + defMap.push_back(G4std::pair(G4Proton::ProtonDefinition(), NUCLEON) ); + defMap.push_back(G4std::pair(G4Neutron::NeutronDefinition(), NUCLEON) ); + defMap.push_back(G4std::pair(G4Gamma::GammaDefinition(), GAMMA) ); + defMap.push_back(G4std::pair(G4PionPlus::PionPlusDefinition(), PION) ); + defMap.push_back(G4std::pair(G4PionZero::PionZeroDefinition(), PION) ); + defMap.push_back(G4std::pair(G4PionMinus::PionMinusDefinition(), PION) ); + defMap.push_back(G4std::pair(G4KaonMinus::KaonMinusDefinition(), KAON) ); + defMap.push_back(G4std::pair(G4KaonPlus::KaonPlusDefinition(), KAON) ); + defMap.push_back(G4std::pair(G4KaonZero::KaonZeroDefinition(), KAON) ); + defMap.push_back(G4std::pair(G4AntiKaonZero::AntiKaonZeroDefinition(), KAON) ); + defMap.push_back(G4std::pair(G4KaonZeroShort::KaonZeroShortDefinition(), KAON) ); + defMap.push_back(G4std::pair(G4KaonZeroLong::KaonZeroLongDefinition(), KAON) ); + defMap.push_back(G4std::pair(G4Lambda::LambdaDefinition(), Lambda) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(221), ETA) ); // eta + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(113), RHO) ); // rho0 + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(213), RHO) ); // rho+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(-213), RHO) ); // rho- ????? + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(223), omega) ); // omega + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2224), D1232) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2214), D1232) ); // D+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2114), D1232) ); // D0 + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1114), D1232) ); // D- + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(31114), D1600) ); // D- + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(32114), D1600) ); // D0 + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(32214), D1600) ); // D+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(32224), D1600) ); // D++ + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1112), D1620) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1212), D1620) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2122), D1620) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2222), D1620) ); // D++ + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(11114), D1700) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12114), D1700) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12214), D1700) ); // D++ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12224), D1700) ); // D++ + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(11112), D1900) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(11212), D1900) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12122), D1900) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12222), D1900) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1116), D1905) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1216), D1905) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2126), D1905) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2226), D1905) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(21112), D1910) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(21212), D1910) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22122), D1910) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22222), D1910) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(21114), D1920) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22114), D1920) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22214), D1920) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22224), D1920) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(11116), D1930) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(11216), D1930) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12126), D1930) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12226), D1930) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1118), D1950) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2118), D1950) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2218), D1950) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2228), D1950) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12112), N1440) ); // N0 + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12212), N1440) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1214), N1520) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2124), N1520) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22112), N1535) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22212), N1535) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(32112), N1650) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(32212), N1650) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2116), N1675) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2216), N1675) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12116), N1680) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12216), N1680) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(22124), N1700) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(21214), N1700) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(42212), N1710) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(42112), N1710) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(32124), N1720) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(31214), N1720) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(42124), N1900) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(41214), N1900) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12218), N1990) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(12118), N1990) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(52214), N2090) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(52114), N2090) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(2128), N2190) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(1218), N2190) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(100002210), N2220) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(100002110), N2220) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(100012210), N2250) ); // N+ + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(100012110), N2250) ); // N+ + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13122), L1405) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3124), L1520) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23122), L1600) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(33122), L1670) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13124), L1690) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(43122), L1800) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(53122), L1810) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3126), L1820) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13126), L1830) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23124), L1890) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3128), L2100) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23126), L2110) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3222), Sigma) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3212), Sigma) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3112), Sigma) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3224), S1385) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3114), S1385) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3214), S1385) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13222), S1660) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13112), S1660) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13212), S1660) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13224), S1670) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13114), S1670) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13214), S1670) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23222), S1750) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23112), S1750) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23212), S1750) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3226), S1775) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3116), S1775) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3216), S1775) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13226), S1915) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13116), S1915) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13216), S1915) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23224), S1940) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23114), S1940) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23214), S1940) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3228), S2030) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3118), S2030) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3218), S2030) ); + + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3324), X1530) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(3314), X1530) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23324), X1690) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(23314), X1690) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13324), X1820) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13314), X1820) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(33324), X1950) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(33314), X1950) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13326), X2030) ); + defMap.push_back(G4std::pair(G4ParticleTable::GetParticleTable()->FindParticle(13316), X2030) ); + + +// uMap[NUCLEON] = 1; +// uMap[N1440] = 2; +// uMap[D1232] = 12; +// uMap[D1600] = 13; +// uMap[GAMMA] = 100; +// uMap[PION] = 101; +} + + +G4ParticleTypeConverter::GenericType G4ParticleTypeConverter::GetGenericType(const G4ParticleDefinition* const aParticleDef) +{ + size_t i=0; + for(i=0;iGetParticleName() << G4endl; + return UNKNOWN; + G4Exception("G4ParticleTypeConverter: unknown particle type!"); +} + + +G4ParticleTypeConverter::GenericType G4ParticleTypeConverter::GetGenericType(const G4KineticTrack& aTrack) +{ + return GetGenericType(aTrack.GetDefinition()); +} + + +G4int G4ParticleTypeConverter::GetUrqmdItyp(G4ParticleTypeConverter::GenericType gType) +{ + //if (uMap.find(gType)!=uMap.end()) + // hpw return uMap.operator[](gType); + //else + G4Exception("G4ParticleTypeConverter: unknown particle type!"); + return 0; +} + + +const G4ParticleDefinition* G4ParticleTypeConverter::FindIso3State(const G4ParticleTypeConverter::GenericType gType, + const G4int isospin3) +{ + MapIterator iter; + for (iter = defMap.begin(); iter!=defMap.end(); ++iter) { + G4ParticleTypeConverter::GenericType foo = (*iter).second; + if (gType==foo) { +// G4cout << "convtype " << ((*iter).first)->GetParticleName() << G4endl; +// G4cout << "conviso3 " << ((*iter).first)->GetPDGiIsospin3() << G4endl; + if (((*iter).first)->GetPDGiIsospin3()==isospin3) + return (*iter).first; + } + } +// G4cout << "FindIso3State: can't find " << static_cast(gType) << " with iso3 " << isospin3 << G4endl; + return NULL; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc b/source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc new file mode 100644 index 0000000000..6b7ad2a637 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc @@ -0,0 +1,372 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "globals.hh" +#include "G4ResonanceNames.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4CrossSectionVector.hh" +#include "G4ParticleDefinition.hh" +#include "G4ShortLivedConstructor.hh" +#include "G4ShortLivedTable.hh" +#include "G4ParticleTable.hh" +#include "G4PionPlus.hh" + +G4ResonanceNames::G4ResonanceNames() +{ + // Excited N resonances + + nameNstar.push_back("N(1440)+"); + nameNstar.push_back("N(1440)0"); + nameNstar.push_back("N(1520)+"); + nameNstar.push_back("N(1520)0"); + nameNstar.push_back("N(1535)+"); + nameNstar.push_back("N(1535)0"); + nameNstar.push_back("N(1650)+"); + nameNstar.push_back("N(1650)0"); + nameNstar.push_back("N(1675)+"); + nameNstar.push_back("N(1675)0"); + nameNstar.push_back("N(1680)+"); + nameNstar.push_back("N(1680)0"); + nameNstar.push_back("N(1700)+"); + nameNstar.push_back("N(1700)0"); + nameNstar.push_back("N(1710)+"); + nameNstar.push_back("N(1710)0"); + nameNstar.push_back("N(1720)+"); + nameNstar.push_back("N(1720)0"); + nameNstar.push_back("N(1900)+"); + nameNstar.push_back("N(1900)0"); + nameNstar.push_back("N(1990)+"); + nameNstar.push_back("N(1990)0"); + nameNstar.push_back("N(2090)+"); + nameNstar.push_back("N(2090)0"); + nameNstar.push_back("N(2190)+"); + nameNstar.push_back("N(2190)0"); + nameNstar.push_back("N(2220)+"); + nameNstar.push_back("N(2220)0"); + nameNstar.push_back("N(2250)+"); + nameNstar.push_back("N(2250)0"); + + + // Delta + + G4String d1232Minus("delta-"); + G4String d1232Zero("delta0"); + G4String d1232Plus("delta+"); + G4String d1232PlusPlus("delta++"); + nameDelta.push_back(d1232Minus); + nameDelta.push_back(d1232Zero); + nameDelta.push_back(d1232Plus); + nameDelta.push_back(d1232PlusPlus); + + + // Excited Delta resonances + + nameDeltastar.push_back("delta(1600)+"); + nameDeltastar.push_back("delta(1600)++"); + nameDeltastar.push_back("delta(1600)-"); + nameDeltastar.push_back("delta(1600)0"); + nameDeltastar.push_back("delta(1620)+"); + nameDeltastar.push_back("delta(1620)++"); + nameDeltastar.push_back("delta(1620)-"); + nameDeltastar.push_back("delta(1620)0"); + nameDeltastar.push_back("delta(1700)+"); + nameDeltastar.push_back("delta(1700)++"); + nameDeltastar.push_back("delta(1700)-"); + nameDeltastar.push_back("delta(1700)0"); + nameDeltastar.push_back("delta(1900)+"); + nameDeltastar.push_back("delta(1900)++"); + nameDeltastar.push_back("delta(1900)-"); + nameDeltastar.push_back("delta(1900)0"); + nameDeltastar.push_back("delta(1905)+"); + nameDeltastar.push_back("delta(1905)++"); + nameDeltastar.push_back("delta(1905)-"); + nameDeltastar.push_back("delta(1905)0"); + nameDeltastar.push_back("delta(1910)+"); + nameDeltastar.push_back("delta(1910)++"); + nameDeltastar.push_back("delta(1910)-"); + nameDeltastar.push_back("delta(1910)0"); + nameDeltastar.push_back("delta(1920)+"); + nameDeltastar.push_back("delta(1920)++"); + nameDeltastar.push_back("delta(1920)-"); + nameDeltastar.push_back("delta(1920)0"); + nameDeltastar.push_back("delta(1930)+"); + nameDeltastar.push_back("delta(1930)++"); + nameDeltastar.push_back("delta(1930)-"); + nameDeltastar.push_back("delta(1930)0"); + nameDeltastar.push_back("delta(1950)+"); + nameDeltastar.push_back("delta(1950)++"); + nameDeltastar.push_back("delta(1950)-"); + nameDeltastar.push_back("delta(1950)0"); + + + // Lambda + + nameLambda.push_back("lambda"); + nameLambda.push_back("lambda(1405)"); + nameLambda.push_back("lambda(1520)"); + nameLambda.push_back("lambda(1600)"); + nameLambda.push_back("lambda(1670)"); + nameLambda.push_back("lambda(1690)"); + nameLambda.push_back("lambda(1800)"); + nameLambda.push_back("lambda(1810)"); + nameLambda.push_back("lambda(1820)"); + nameLambda.push_back("lambda(1830)"); + nameLambda.push_back("lambda(1890)"); + nameLambda.push_back("lambda(2100)"); + nameLambda.push_back("lambda(2110)"); + + + // Sigma + + nameSigma.push_back("sigma(1385)+"); + nameSigma.push_back("sigma(1385)-"); + nameSigma.push_back("sigma(1385)0"); + nameSigma.push_back("sigma(1660)+"); + nameSigma.push_back("sigma(1660)-"); + nameSigma.push_back("sigma(1660)0"); + nameSigma.push_back("sigma(1670)+"); + nameSigma.push_back("sigma(1670)-"); + nameSigma.push_back("sigma(1670)0"); + nameSigma.push_back("sigma(1750)+"); + nameSigma.push_back("sigma(1750)-"); + nameSigma.push_back("sigma(1750)0"); + nameSigma.push_back("sigma(1775)+"); + nameSigma.push_back("sigma(1775)-"); + nameSigma.push_back("sigma(1775)0"); + nameSigma.push_back("sigma(1915)+"); + nameSigma.push_back("sigma(1915)-"); + nameSigma.push_back("sigma(1915)0"); + nameSigma.push_back("sigma(1940)+"); + nameSigma.push_back("sigma(1940)-"); + nameSigma.push_back("sigma(1940)0"); + nameSigma.push_back("sigma(2030)+"); + nameSigma.push_back("sigma(2030)-"); + nameSigma.push_back("sigma(2030)0"); + + + // Xi + + nameXi.push_back("xi(1530)-"); + nameXi.push_back("xi(1530)0"); + nameXi.push_back("xi(1690)-"); + nameXi.push_back("xi(1690)0"); + nameXi.push_back("xi(1820)-"); + nameXi.push_back("xi(1820)0"); + nameXi.push_back("xi(1950)-"); + nameXi.push_back("xi(1950)0"); + nameXi.push_back("xi(2030)-"); + nameXi.push_back("xi(2030)0"); + + + G4ShortLivedConstructor ShortLived; + ShortLived.ConstructParticle(); + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + + size_t i; + + // Fill a map with the lowest resonance for each category + for (i=0; iFindParticle("N(1440)0"); + } + + for (i=0; iFindParticle("delta0"); + } + + for (i=0; iFindParticle("delta0"); + } + + for (i=0; iFindParticle("lambda"); + } + + for (i=0; iFindParticle("sigma0"); + } + + shortMap["N(1440)0"] = "N(1440)"; + shortMap["N(1440)+"] = "N(1440)"; + + shortMap["N(1520)0"] = "N(1520)";; + shortMap["N(1520)+"] = "N(1520)"; + + shortMap["N(1535)0"] = "N(1535)"; + shortMap["N(1535)+"] = "N(1535)"; + + shortMap["N(1650)0"] = "N(1650)"; + shortMap["N(1650)+"] = "N(1650)"; + + shortMap["N(1675)0"] = "N(1675)"; + shortMap["N(1675)+"] = "N(1675)"; + + shortMap["N(1680)0"] = "N(1680)"; + shortMap["N(1680)+"] = "N(1680)"; + + shortMap["N(1700)0"] = "N(1700)"; + shortMap["N(1700)+"] = "N(1700)"; + + shortMap["N(1710)0"] = "N(1710)"; + shortMap["N(1710)+"] = "N(1710)"; + + shortMap["N(1720)0"] = "N(1720)"; + shortMap["N(1720)+"] = "N(1720)"; + + shortMap["N(1900)0"] = "N(1900)"; + shortMap["N(1900)+"] = "N(1900)"; + + shortMap["N(1990)0"] = "N(1990)"; + shortMap["N(1990)+"] = "N(1990)"; + + shortMap["N(2090)0"] = "N(2090)"; + shortMap["N(2090)+"] = "N(2090)"; + + shortMap["N(2190)0"] = "N(2190)"; + shortMap["N(2190)+"] = "N(2190)"; + + shortMap["N(2220)0"] = "N(2220)"; + shortMap["N(2220)+"] = "N(2220)"; + + shortMap["N(2250)0"] = "N(2250)"; + shortMap["N(2250)+"] = "N(2250)"; + + + // Excited Delta + + shortMap["delta(1600)-"] = "delta(1600)"; + shortMap["delta(1600)0"] = "delta(1600)"; + shortMap["delta(1600)+"] = "delta(1600)"; + shortMap["delta(1600)++"] = "delta(1600)"; + + shortMap["delta(1620)-"] = "delta(1620)"; + shortMap["delta(1620)0"] = "delta(1620)"; + shortMap["delta(1620)+"] = "delta(1620)"; + shortMap["delta(1620)++"] = "delta(1620)"; + + shortMap["delta(1700)-"] = "delta(1700)"; + shortMap["delta(1700)0"] = "delta(1700)"; + shortMap["delta(1700)+"] = "delta(1700)"; + shortMap["delta(1700)++"] = "delta(1700)"; + + shortMap["delta(1900)-"] = "delta(1900)"; + shortMap["delta(1900)0"] = "delta(1900)"; + shortMap["delta(1900)+"] = "delta(1900)"; + shortMap["delta(1900)++"] = "delta(1900)"; + + shortMap["delta(1905)-"] = "delta(1905)"; + shortMap["delta(1905)0"] = "delta(1905)"; + shortMap["delta(1905)+"] = "delta(1905)"; + shortMap["delta(1905)++"] = "delta(1905)"; + + shortMap["delta(1910)-"] = "delta(1910)"; + shortMap["delta(1910)0"] = "delta(1910)"; + shortMap["delta(1910)+"] = "delta(1910)"; + shortMap["delta(1910)++"] = "delta(1910)"; + + shortMap["delta(1920)-"] = "delta(1920)"; + shortMap["delta(1920)0"] = "delta(1920)"; + shortMap["delta(1920)+"] = "delta(1920)"; + shortMap["delta(1920)++"] = "delta(1920)"; + + shortMap["delta(1930)-"] = "delta(1930)"; + shortMap["delta(1930)0"] = "delta(1930)"; + shortMap["delta(1930)+"] = "delta(1930)"; + shortMap["delta(1930)++"] = "delta(1930)"; + + shortMap["delta(1950)-"] = "delta(1950)"; + shortMap["delta(1950)0"] = "delta(1950)"; + shortMap["delta(1950)+"] = "delta(1950)"; + shortMap["delta(1950)++"] = "delta(1950)"; + + // Delta + + shortMap["delta-"] = "delta"; + shortMap["delta0"] = "delta"; + shortMap["delta+"] = "delta"; + shortMap["delta++"] = "delta"; + +} + + +G4ResonanceNames::~G4ResonanceNames() +{ } + + +G4bool G4ResonanceNames::operator==(const G4ResonanceNames &right) const +{ + return(this == (G4ResonanceNames*) &right); +} + + +G4bool G4ResonanceNames::operator!=(const G4ResonanceNames &right) const +{ + return (this != (G4ResonanceNames*) &right); +} + + +G4double G4ResonanceNames::MinMass(const G4String& name) +{ + // Cut, from UrQMD (reference still to be detailed) + const G4double coeff = 0.001; + + G4double lowMass = 0.; + + G4ParticleDefinition* def = 0; + + if (lowResMap.find(name) != lowResMap.end()) + { + def = lowResMap[name]; + } + else + { + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + def = particleTable->FindParticle(name); + } + if (def != 0) + { + G4ParticleDefinition* pion = G4PionPlus::PionPlusDefinition(); + lowMass = (1. + coeff) * def->GetPDGMass() + pion->GetPDGMass(); + } + else + { + G4cout << "G4ResonanceNames::MinMass - " << name << " not found" << G4endl; + G4Exception ("G4ResonanceNames::MinMass - resonance name not found"); + } + return lowMass; +} + + +const G4String G4ResonanceNames::ShortName(const G4String& name) +{ + G4String shortName = ""; + if (shortMap.find(name) != shortMap.end()) + { + shortName = shortMap[name]; + } + return shortName; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc b/source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc new file mode 100644 index 0000000000..06d7384cce --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc @@ -0,0 +1,370 @@ +// +// ******************************************************************** +// * 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: G4Scatterer.cc,v 1.18 2002/12/12 19:17:52 gunter Exp $ // +// + +#include "globals.hh" +#include "g4std/vector" +#include "G4ios.hh" +#include "G4Scatterer.hh" +#include "G4KineticTrack.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzRotation.hh" +#include "G4LorentzVector.hh" + +#include "G4CollisionNN.hh" +#include "G4CollisionPN.hh" +#include "G4CollisionMesonBaryon.hh" + +G4Scatterer::G4Scatterer() +{ + // Set-up the categories of collisions the Scatterer can handle + + // NN collisions + G4VCollision* collisionNN = new G4CollisionNN; + G4CollisionPtr collisionNNPtr = G4CollisionPtr(collisionNN); + collisions.push_back(collisionNNPtr); + + // all 2->1 reactions + // elastic channel is in at high energies only; no elastic for Kaons + G4VCollision* collisionMB = new G4CollisionMesonBaryon; + G4CollisionPtr collisionMBPtr = G4CollisionPtr(collisionMB); + collisions.push_back(collisionMBPtr); + +} + + +G4Scatterer::~G4Scatterer() +{ + size_t i; + + for (i=0; iGetPDGMass() + trk2.GetDefinition()->GetPDGMass() < sqrtS) + { + G4LorentzVector mom1 = trk1.Get4Momentum(); + // The nucleons of the nucleus are FROZEN, ie. do not move.. + + G4ThreeVector position = trk1.GetPosition() - trk2.GetPosition(); + + // G4ThreeVector velocity = (mom1.boostVector() - mom2.boostVector()) * c_light; + if ( mom1.mag2() < -1.*eV ) + { + G4cout << "negative m2:" << mom1.mag2() << G4endl; + } + G4ThreeVector velocity = mom1.vect()/mom1.e() * c_light; + G4double collisionTime = - (position * velocity) / (velocity * velocity); // can't divide by /c_light; + + if (collisionTime > 0) + { + G4LorentzVector mom2(0,0,0,trk2.Get4Momentum().mag()); + G4LorentzRotation toCMSFrame((-1)*(mom1 + mom2).boostVector()); + mom1 = toCMSFrame * mom1; + mom2 = toCMSFrame * mom2; + + G4LorentzVector coordinate1(trk1.GetPosition(), 100.); + G4LorentzVector coordinate2(trk2.GetPosition(), 100.); + G4ThreeVector pos = ((toCMSFrame * coordinate1).vect() - + (toCMSFrame * coordinate2).vect()); + + G4ThreeVector mom = mom1.vect() - mom2.vect(); + + // Calculate the impact parameter + + G4double distance = pos * pos - (pos*mom) * (pos*mom) / (mom*mom); + // global optimization + static const G4double maxCrossSection = 500*millibarn; + if(pi*distance>maxCrossSection) return time; + + // charged particles special + static const G4double maxChargedCrossSection = 200*millibarn; + if(abs(trk1.GetDefinition()->GetPDGCharge())>0.1 && + abs(trk2.GetDefinition()->GetPDGCharge())>0.1 && + pi*distance>maxChargedCrossSection) return time; + + // neutrons special + if(( trk1.GetDefinition() == G4Neutron::Neutron() || + trk1.GetDefinition() == G4Neutron::Neutron() ) && + sqrtS>1.91*GeV && pi*distance>maxChargedCrossSection) return time; + +/* + * if(distance <= sqr(1.14*fermi)) + * { + * time = collisionTime; + * + * * + * * G4cout << "Scatter distance/time: " << sqrt(distance)/fermi << + * * " / "<< time/ns << G4endl; + * * G4ThreeVector pos1=trk1.GetPosition(); + * * G4ThreeVector pos2=trk2.GetPosition(); + * * G4LorentzVector xmom1 = trk1.Get4Momentum(); + * * G4LorentzVector xmom2 = trk2.Get4Momentum(); + * * G4cout << "position1: " << pos1.x() << " " << pos1.y() << " " + * * << pos1.z(); + * * pos1+=(collisionTime*c_light/xmom1.e())*xmom1.vect(); + * * G4cout << " straight line trprt: " + * * << pos1.x() << " " << pos1.y() << " " + * * << pos1.z() << G4endl; + * * G4cout << "position2: " << pos2.x() << " " << pos2.y() << " " + * * << pos2.z() << G4endl; + * * G4cout << "straight line distance 2 fixed:" << (pos1-pos2).mag()/fermi << G4endl; + * * pos2+= (collisionTime*c_light/xmom2.e())*xmom2.vect(); + * * G4cout<< " straight line trprt: " + * * << pos2.x() << " " << pos2.y() << " " + * * << pos2.z() << G4endl; + * * G4cout << "straight line distance :" << (pos1-pos2).mag()/fermi << G4endl; + * * + * } + * + * if(1) + * return time; + */ + + + G4VCollision* collision = FindCollision(trk1,trk2); + G4double totalCrossSection; + // The cross section is interpreted geometrically as an area + // Two particles are assumed to collide if their distance is < (totalCrossSection/pi) + + if (collision != 0) + { + totalCrossSection = collision->CrossSection(trk1,trk2); + if ( totalCrossSection > 0 ) + { +/* G4cout << " totalCrossection = "<< totalCrossSection << ", trk1/2, s, e-m: " + * << trk1.GetDefinition()->GetParticleName() + * << " / " + * << trk2.GetDefinition()->GetParticleName() + * << ", " + * << (trk1.Get4Momentum()+trk2.Get4Momentum()).mag() + * << ", " + * << (trk1.Get4Momentum()+trk2.Get4Momentum()).mag()- + * trk1.Get4Momentum().mag() - trk2.Get4Momentum().mag() + * << G4endl; + */ + if (distance <= totalCrossSection / pi) + { + time = collisionTime; + } + } else + { + + // For debugging... + // G4cout << " totalCrossection = 0, trk1/2, s, e-m: " + // << trk1.GetDefinition()->GetParticleName() + // << " / " + // << trk2.GetDefinition()->GetParticleName() + // << ", " + // << (trk1.Get4Momentum()+trk2.Get4Momentum()).mag() + // << ", " + // << (trk1.Get4Momentum()+trk2.Get4Momentum()).mag()- + // trk1.Get4Momentum().mag() - trk2.Get4Momentum().mag() + // << G4endl; + + } +/* + * if(distance <= sqr(5.*fermi)) + * { + * G4cout << " distance,xsect, sqrt(xsect/pi) : " << sqrt(distance)/fermi + * << " " << totalCrossSection/sqr(fermi) + * << " " << sqrt(totalCrossSection / pi)/fermi << G4endl; + * } + */ + + } + else + { + time = DBL_MAX; +// /* + // For debugging +//hpw G4cout << "G4Scatterer - collision not found: " +//hpw << trk1.GetDefinition()->GetParticleName() +//hpw << " - " +//hpw << trk2.GetDefinition()->GetParticleName() +//hpw << G4endl; + // End of debugging +// */ + } + } + + else + { + /* + // For debugging + G4cout << "G4Scatterer - negative collisionTime" + << ": collisionTime = " << collisionTime + << ", position = " << position + << ", velocity = " << velocity + << G4endl; + // End of debugging + */ + } + } + else + { + /* + // For debugging + G4cout << "G4Scatterer - Infinite time to interaction" + << ": sqrtS " << sqrtS + << ", mass1 = " << trk1.GetDefinition()->GetPDGMass() + << ", mass2 = " << trk2.GetDefinition()->GetPDGMass() + << G4endl; + // End of debugging + */ + } + + return time; +} + +G4KineticTrackVector* G4Scatterer::Scatter(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) +{ +// G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4LorentzVector pInitial=trk1.Get4Momentum() + trk2.Get4Momentum(); + + G4VCollision* collision = FindCollision(trk1,trk2); + if (collision != 0) + { + G4double aCrossSection = collision->CrossSection(trk1,trk2); + if (aCrossSection > 0.0) + { + + + #ifdef debug_G4Scatterer + G4cout << "be4 FinalState 1(p,e,m): " + << trk1.Get4Momentum() << " " + << trk1.Get4Momentum().mag() + << ", 2: " + << trk2.Get4Momentum()<< " " + << trk2.Get4Momentum().mag() << " " + << G4endl; + #endif + + + G4KineticTrackVector* products = collision->FinalState(trk1,trk2); + if(!products || products->size() == 0) return products; + + #ifdef debug_G4Scatterer + G4cout << "size of FS: "<size()<operator[](0); + + + #ifdef debug_G4Scatterer + G4cout << " FinalState 1: " + << final->Get4Momentum()<< " " + << final->Get4Momentum().mag() ; + #endif + + if(products->size() == 1) return products; + final=products->operator[](1); + #ifdef debug_G4Scatterer + G4cout << ", 2: " + << final->Get4Momentum() << " " + << final->Get4Momentum().mag() << " " << G4endl; + #endif + + final= products->operator[](0); + G4LorentzVector pFinal=final->Get4Momentum(); + if(products->size()==2) + { + final=products->operator[](1); + pFinal +=final->Get4Momentum(); + } + + if ( (pInitial-pFinal).mag() > 0.1*MeV ) + { + #ifdef debug_G4Scatterer + G4cout << "G4Scatterer: momentum imbalance, pInitial= " <GetName()<< " " +// << "for " +// << trk1.GetDefinition()->GetParticleName()<<" + " +// << trk2.GetDefinition()->GetParticleName()<<" " +// << G4endl;; +// } + return collisionInCharge; +} + +G4double G4Scatterer::GetCrossSection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) +{ + G4VCollision* collision = FindCollision(trk1,trk2); + G4double aCrossSection = 0; + if (collision != 0) + { + aCrossSection = collision->CrossSection(trk1,trk2); + } + return aCrossSection; +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc b/source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc new file mode 100644 index 0000000000..f42be3eac5 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc @@ -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. * +// ******************************************************************** +// +// $Id: G4VAngularDistribution.cc,v 1.2 2002/12/12 19:17:52 gunter Exp $ // +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4VAngularDistribution +// +// Author: Maria Grazia Pia +// +// Creation date: 15 May 1999 +// +// Modifications: +// +// Id: G4VCrossSectionSource.cc,v 1.16 2000/05/11 19:07:29 pia Exp $ // +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4VAngularDistribution.hh" +#include "Randomize.hh" +#include "PhysicalConstants.h" + +G4double G4VAngularDistribution::Phi() const +{ + G4double phi = 2. * pi * G4UniformRand(); + return phi; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VAnnihilationCollision.cc b/source/processes/hadronic/models/generator/scattering/src/G4VAnnihilationCollision.cc new file mode 100644 index 0000000000..45a610a652 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VAnnihilationCollision.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. * +// ******************************************************************** +// + +#include "globals.hh" +#include "G4VAnnihilationCollision.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XNNElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "Randomize.hh" +#include "G4PionPlus.hh" + + +G4VAnnihilationCollision::G4VAnnihilationCollision() +{ +} + + +G4VAnnihilationCollision::~G4VAnnihilationCollision() +{ +} + + +G4KineticTrackVector* G4VAnnihilationCollision::FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4LorentzVector p = trk1.Get4Momentum() + trk2.Get4Momentum(); + G4double sqrtS = p.m(); +// G4double s = sqrtS * sqrtS; + +// G4double m1 = trk1.GetActualMass(); +// G4double m2 = trk2.GetActualMass(); + + G4ParticleDefinition* OutputDefinition = const_cast( GetOutgoingParticle(trk1,trk2) ); + + // Unit vector of three-momentum + + G4ThreeVector pFinal(0.0, 0.0, 0.0); + G4double eFinal = sqrtS; + + G4LorentzVector p4Final(pFinal, eFinal); + + // Lorentz transformation + G4LorentzRotation toLabFrame(p.boostVector()); + p4Final *= toLabFrame; + + G4KineticTrack* final = new G4KineticTrack(OutputDefinition, 0.0, + trk1.GetPosition(), p4Final); + + G4KineticTrackVector* finalTracks = new G4KineticTrackVector; + + finalTracks->push_back(final); + + return finalTracks; +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc b/source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc new file mode 100644 index 0000000000..f5c31e6797 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * 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: G4VCollision.cc,v 1.7 2002/12/12 19:17:52 gunter Exp $ // + +#include "globals.hh" +#include "G4ios.hh" +#include "G4VCollision.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" + +G4VCollision::G4VCollision() +{ } + +G4VCollision::~G4VCollision() +{ +} + + +G4bool G4VCollision::operator==(const G4VCollision &right) const +{ + return (this == (G4VCollision *) &right); +} + + +G4bool G4VCollision::operator!=(const G4VCollision &right) const +{ + return (this != (G4VCollision *) &right); +} + + +G4double G4VCollision::CrossSection(const G4KineticTrack& aTrk1, + const G4KineticTrack& aTrk2) const +{ + G4double sigma = 0.; + + const G4VCrossSectionSource* xSource = GetCrossSectionSource(); + + if (xSource != 0) + { + // There is a cross section for this Collision + sigma = xSource->CrossSection(aTrk1,aTrk2); + } + return sigma; +} + + +void G4VCollision::Print() const +{ + G4String name = GetName(); + + G4cout << "---- " << name << "---- Cross section" << G4endl; + + const G4VCrossSectionSource* xSource = GetCrossSectionSource(); + if (xSource) xSource->Print(); + + G4int nComponents = 0; + const G4CollisionVector* components = GetComponents(); + if (components) + { + nComponents = components->size(); + } + G4cout << "---- " << name << "---- has " << nComponents << " components" <begin(); iter != components->end(); ++iter) + { + G4cout << "---- " << name << " ---- Component " << i << G4endl; + ((*iter)())->Print(); + i++; + } + +// G4int i; +// for (i=0; iPrint(); +// } +} + + +void G4VCollision::Print(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4String name = GetName(); + + if (IsInCharge(trk1,trk2)) + { + G4cout << "---- " << name << "is in charge ---- " << G4endl; + } + else + { + G4cout << "---- " << name << "is not in charge ---- " << G4endl; + } + + G4cout << "---- " << name << "---- Cross section" << G4endl; + + const G4VCrossSectionSource* xSource = GetCrossSectionSource(); + if (xSource) xSource->Print(); + G4cout << "Cross section = " << CrossSection(trk1,trk2) << G4endl; + + G4int nComponents = 0; + const G4CollisionVector* components = GetComponents(); + if (components) + { + nComponents = components->size(); + } + G4cout << "---- " << name << "has " << nComponents << " components" <begin(); iter != components->end(); ++iter) + { + G4cout << "Component " << i << G4endl; + ((*iter)())->Print(); + i++; + } +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc b/source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc new file mode 100644 index 0000000000..9ade51410f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc @@ -0,0 +1,199 @@ +// +// ******************************************************************** +// * 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: G4VCrossSectionSource.cc,v 1.4 2002/12/12 19:17:52 gunter Exp $ // +// + +#include "globals.hh" +#include "G4ios.hh" +#include "G4VCrossSectionSource.hh" +#include "G4ParticleDefinition.hh" +#include "G4KineticTrack.hh" +#include "G4CrossSectionVector.hh" +#include "G4CrossSectionSourcePtr.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + +G4VCrossSectionSource::G4VCrossSectionSource() +{ } + + +G4VCrossSectionSource::~G4VCrossSectionSource() +{ } + + +G4String G4VCrossSectionSource:: +FindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const +{ + G4String result; + + G4ParticleDefinition * p1 = trk1.GetDefinition(); + G4ParticleDefinition * p2 = trk2.GetDefinition(); + + if( (p1==G4Proton::Proton() && p2==G4Proton::Proton() ) || + (p1==G4Neutron::Neutron() && p2==G4Neutron::Neutron()) ) + { + result = G4Proton::Proton()->GetParticleName(); + } + else if( (p1==G4Neutron::Neutron() && p2==G4Proton::Proton()) || + (p2==G4Neutron::Neutron() && p1==G4Proton::Proton()) ) + { + result = G4Neutron::Neutron()->GetParticleName(); + } + else + { + G4Exception("G4VCrossSectionSource: unklnown particles in FindKeyParticle"); + } + return result; +} + +G4bool G4VCrossSectionSource::operator==(const G4VCrossSectionSource &right) const +{ + return (this == (G4VCrossSectionSource *) &right); +} + + +G4bool G4VCrossSectionSource::operator!=(const G4VCrossSectionSource &right) const +{ + return (this != (G4VCrossSectionSource *) &right); +} + + +void G4VCrossSectionSource::Print() const +{ + G4int nComponents = 0; + const G4CrossSectionVector* components = GetComponents(); + if (components) + { + nComponents = components->size(); + } + G4cout << "---- " << this->Name() << " ---- has " << nComponents << " components" <Name() << " - Component " << i << ": " <Print(); + } +} + + +void G4VCrossSectionSource::PrintAll(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4double sigma = CrossSection(trk1,trk2) / millibarn; + G4cout << "---- " << Name() << ": " + << "Ecm = " << sqrtS / GeV << " GeV - " + << " Cross section = " << sigma << " mb " + << G4endl; + + G4int nComponents = 0; + const G4CrossSectionVector* components = GetComponents(); + if (components != 0) + { + nComponents = components->size(); + } + G4int i; + for (i=0; iPrintAll(trk1,trk2); + } +} + + +G4bool G4VCrossSectionSource::InLimits(G4double e, G4double eLow, G4double eHigh) const +{ + G4bool answer = false; + if (e >= eLow && e <= eHigh) answer = true; + return answer; +} + +G4double G4VCrossSectionSource::LowLimit() const +{ + return 0.; +} + + +G4double G4VCrossSectionSource::HighLimit() const +{ + return DBL_MAX; +} + +G4bool G4VCrossSectionSource::IsValid(G4double e) const +{ + G4bool answer = false; + if (e >= LowLimit() && e <= HighLimit()) answer = true; + return answer; +} + +const G4ParticleDefinition* G4VCrossSectionSource::FindLightParticle(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4double mass1 = trk1.GetDefinition()->GetPDGMass(); + G4double mass2 = trk2.GetDefinition()->GetPDGMass(); + if (mass1 < mass2) + { + return trk1.GetDefinition(); + } + else + { + return trk2.GetDefinition(); + } +} + + +const G4double G4VCrossSectionSource::FcrossX(G4double e, G4double e0, G4double sigma, + G4double eParam, G4double power) const +{ + G4double result = 0.; + + G4double denom = eParam*eParam + (e-e0)*(e-e0); + if (denom > 0.) + { + G4double value = (2.* eParam * sigma * (e-e0) / denom) * pow(((e0 + eParam) / e), power); + result = G4std::max(0., value); + } + return result; +} + +const G4double G4VCrossSectionSource::GetTransversePionMass() const +{ + // Parameter from UrQMD + const G4double transversePionMass = 0.3 * GeV; + return transversePionMass; +} + + +const G4double G4VCrossSectionSource::GetMinStringMass() const +{ + // Parameter from UrQMD + const G4double minStringMass = 0.52 * GeV; + return minStringMass; +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc b/source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc new file mode 100644 index 0000000000..5b36efe09b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc @@ -0,0 +1,132 @@ +// +// ******************************************************************** +// * 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: G4VElasticCollision.cc,v 1.5 2002/12/12 19:17:52 gunter Exp $ // + +#include "globals.hh" +#include "G4VElasticCollision.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XNNElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "G4AngularDistributionNP.hh" // np scattering +#include "G4AngularDistributionPP.hh" // nn and pp scattering +#include + +G4VElasticCollision::G4VElasticCollision() +{ +} + + +G4VElasticCollision::~G4VElasticCollision() +{ } + + +G4KineticTrackVector* G4VElasticCollision::FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + const G4VAngularDistribution* angDistribution; + + angDistribution = GetAngularDistribution(); + + + G4LorentzVector pCM=trk1.Get4Momentum() + trk2.Get4Momentum(); + + G4LorentzRotation toLabFrame(pCM.boostVector()); + G4LorentzVector Ptmp=toLabFrame.inverse() * trk1.Get4Momentum(); //trk1 in CMS + G4LorentzRotation toZ; + toZ.rotateZ(-Ptmp.phi()); + toZ.rotateY(-Ptmp.theta()); + toLabFrame *= toZ.inverse(); + + G4double s = pCM.mag2(); + G4double m10 = trk1.GetDefinition()->GetPDGMass(); + G4double m20 = trk2.GetDefinition()->GetPDGMass(); + if(s-(m10+m20)*(m10+m20) < 0) return new G4KineticTrackVector; + + G4double m1 = trk1.GetActualMass(); + G4double m2 = trk2.GetActualMass(); + + // Angles of outgoing particles + G4double cosTheta = angDistribution->CosTheta(s,m1,m2); + + if ( (trk1.GetDefinition() == G4Proton::Proton() || trk1.GetDefinition() == G4Neutron::Neutron() ) + &&(trk2.GetDefinition() == G4Proton::Proton() || trk2.GetDefinition() == G4Neutron::Neutron() ) ) + { + if ( trk1.GetDefinition() == trk2.GetDefinition() ) + { + if ( trk1.GetDefinition() == G4Proton::Proton() ) + { +// G4cout << "scatterangle pp " << cosTheta +// << " " << typeid(*angDistribution).name() << G4endl; + } else { +// G4cout << "scatterangle nn " << cosTheta +// << " " << typeid(*angDistribution).name() << G4endl; + } + } else { +// G4cout << "scatterangle pn " << cosTheta +// << " " << typeid(*angDistribution).name() << G4endl; + } + } else { +// G4cout << "scatterangle other " << cosTheta +// << " " << typeid(*angDistribution).name() << G4endl; + } + + G4double phi = angDistribution->Phi(); + G4double Theta = acos(cosTheta); + + // Unit vector of three-momentum + G4ThreeVector pFinal1(sin(Theta)*cos(phi), sin(Theta)*sin(phi), cosTheta); + // Three momentum in cm system + G4double pInCM = sqrt((s-(m10+m20)*(m10+m20))*(s-(m10-m20)*(m10-m20))/(4.*s)); + pFinal1 = pFinal1 * pInCM; + G4ThreeVector pFinal2 = -pFinal1; + + G4double eFinal1 = sqrt(pFinal1.mag2() + m10*m10); + G4double eFinal2 = sqrt(pFinal2.mag2() + m20*m20); + + G4LorentzVector p4Final1(pFinal1, eFinal1); + G4LorentzVector p4Final2(pFinal2, eFinal2); + + // Lorentz transformation + p4Final1 *= toLabFrame; + p4Final2 *= toLabFrame; + + // Final tracks are copies of incoming ones, with modified 4-momenta + G4KineticTrack* final1 = new G4KineticTrack(trk1); + final1->Set4Momentum(p4Final1); + G4KineticTrack* final2 = new G4KineticTrack(trk2); + final2->Set4Momentum(p4Final2); + + G4KineticTrackVector* finalTracks = new G4KineticTrackVector; + finalTracks->push_back(final1); + finalTracks->push_back(final2); + + return finalTracks; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc b/source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc new file mode 100644 index 0000000000..021cad5b45 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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: G4VScatterer.cc,v 1.2 2002/12/12 19:17:52 gunter Exp $ // +// +// +// +// $Id: G4HadronKineticModel.hh,v 1.0 1998/06/30 +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4VScatterer.hh +// +// Author: +// +// Creation date: first implementation by ? +// +// Modifications: +// 27-10-99 MGP Removed old Dubna stuff +// +// ----------------------------------------------------------------------------- + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc b/source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc new file mode 100644 index 0000000000..08657e49a9 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc @@ -0,0 +1,162 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// @hpw@ misses the sampling of two breit wigner in a corelated fashion, +// @hpw@ to be usefull for resonance resonance scattering. + +#include +#include "globals.hh" +#include "G4VScatteringCollision.hh" +#include "G4KineticTrack.hh" +#include "G4VCrossSectionSource.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4XNNElastic.hh" +#include "G4AngularDistribution.hh" +#include "G4ThreeVector.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4KineticTrackVector.hh" +#include "Randomize.hh" +#include "G4PionPlus.hh" + +G4VScatteringCollision::G4VScatteringCollision() +{ + theAngularDistribution = new G4AngularDistribution(true); +} + + +G4VScatteringCollision::~G4VScatteringCollision() +{ + delete theAngularDistribution; +} + + +G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + const G4VAngularDistribution* angDistribution = GetAngularDistribution(); + G4LorentzVector p = trk1.Get4Momentum() + trk2.Get4Momentum(); + G4double sqrtS = p.m(); + G4double s = sqrtS * sqrtS; + + G4double m1 = trk1.GetActualMass(); + G4double m2 = trk2.GetActualMass(); + + G4std::vector OutputDefinitions = GetOutgoingParticles(); + if (OutputDefinitions.size() != 2) + G4Exception("G4VScatteringCollision: Too many output particles!"); + + if (OutputDefinitions[0]->IsShortLived() && OutputDefinitions[1]->IsShortLived()) + { + if(getenv("G4KCDEBUG")) G4cerr << "two shortlived for Type = "<GetPDGMass(); + G4double outm2 = OutputDefinitions[1]->GetPDGMass(); + + if (OutputDefinitions[0]->IsShortLived()) + outm1 = SampleResonanceMass(outm1, OutputDefinitions[0]->GetPDGWidth(), + G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(), + sqrtS-outm2); + + if (OutputDefinitions[1]->IsShortLived()) + outm2 = SampleResonanceMass(outm2, OutputDefinitions[1]->GetPDGWidth(), + G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(), + sqrtS-outm1); + + // Angles of outgoing particles + G4double cosTheta = angDistribution->CosTheta(s,m1,m2); + G4double phi = angDistribution->Phi(); + + // Unit vector of three-momentum + G4LorentzRotation fromCMSFrame(p.boostVector()); + G4LorentzRotation toCMSFrame(fromCMSFrame.inverse()); + G4LorentzVector TempPtr = toCMSFrame*trk1.Get4Momentum(); + G4LorentzRotation toZ; + toZ.rotateZ(-1*TempPtr.phi()); + toZ.rotateY(-1*TempPtr.theta()); + G4LorentzRotation toCMS(toZ.inverse()); + + G4ThreeVector pFinal1(sin(acos(cosTheta))*cos(phi), sin(acos(cosTheta))*sin(phi), cosTheta); + + // Three momentum in cm system + G4double pCM = sqrt( (s-(outm1+outm2)*(outm1+outm2)) * (s-(outm1-outm2)*(outm1-outm2)) /(4.*s)); + pFinal1 = pFinal1 * pCM; + G4ThreeVector pFinal2 = -pFinal1; + + G4double eFinal1 = sqrt(pFinal1.mag2() + outm1*outm1); + G4double eFinal2 = sqrt(pFinal2.mag2() + outm2*outm2); + + G4LorentzVector p4Final1(pFinal1, eFinal1); + G4LorentzVector p4Final2(pFinal2, eFinal2); + p4Final1 = toCMS*p4Final1; + p4Final2 = toCMS*p4Final2; + + + // Lorentz transformation + G4LorentzRotation toLabFrame(p.boostVector()); + p4Final1 *= toLabFrame; + p4Final2 *= toLabFrame; + + // Final tracks are copies of incoming ones, with modified 4-momenta + + G4KineticTrack* final1 = new G4KineticTrack(const_cast(OutputDefinitions[0]), 0.0, + trk1.GetPosition(), p4Final1); + G4KineticTrack* final2 = new G4KineticTrack(const_cast(OutputDefinitions[1]), 0.0, + trk2.GetPosition(), p4Final2); + + G4KineticTrackVector* finalTracks = new G4KineticTrackVector; + + finalTracks->push_back(final1); + finalTracks->push_back(final2); + + return finalTracks; +} + + + +double G4VScatteringCollision::SampleResonanceMass(const double poleMass, + const double gamma, + const double aMinMass, + const double maxMass) const +{ + // Chooses a mass randomly between minMass and maxMass + // according to a Breit-Wigner function with constant + // width gamma and pole poleMass + + G4double minMass = aMinMass; + if(minMass > maxMass) minMass -= G4PionPlus::PionPlus()->GetPDGMass(); + if(minMass > maxMass) minMass = 0; + // if (poleMass > maxMass || poleMass < minMass) + // G4cerr << "SampleResonanceMass: particle out of mass range" << G4endl; + + if (gamma < 1E-10*GeV) + return G4std::max(minMass,G4std::min(maxMass, poleMass)); + else { + double fmin = BrWigInt0(minMass, gamma, poleMass); + double fmax = BrWigInt0(maxMass, gamma, poleMass); + double f = fmin + (fmax-fmin)*G4UniformRand(); + return BrWigInv(f, gamma, poleMass); + } +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc b/source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc new file mode 100644 index 0000000000..78fd2b31a2 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc @@ -0,0 +1,202 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4VXResonance +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4KineticTrack.hh" +#include "G4VXResonance.hh" +#include "Randomize.hh" +#include "G4Proton.hh" + +G4VXResonance::G4VXResonance() +{ } + + +G4VXResonance::~G4VXResonance() +{ } + + +G4bool G4VXResonance::operator==(const G4VXResonance &right) const +{ + return (this == (G4VXResonance *) &right); +} + + +G4bool G4VXResonance::operator!=(const G4VXResonance &right) const +{ + return (this != (G4VXResonance *) &right); +} + + +G4double G4VXResonance::IsospinCorrection(const G4KineticTrack& trk1, + const G4KineticTrack& trk2, + G4int isoOut1, G4int isoOut2, + G4double iSpinOut1, G4double iSpinOut2) const +{ + G4double result = 0.; + + G4ParticleDefinition* in1 = trk1.GetDefinition(); + G4ParticleDefinition* in2 = trk2.GetDefinition(); + + G4int isoIn1 = in1->GetPDGiIsospin(); + G4int iso3In1 = in1->GetPDGiIsospin3(); + G4int isoIn2 = in2->GetPDGiIsospin(); + G4int iso3In2 = in2->GetPDGiIsospin3(); + + G4int isoProton = G4Proton::ProtonDefinition()->GetPDGiIsospin(); + G4int iso3Proton = G4Proton::ProtonDefinition()->GetPDGiIsospin3(); + + G4double pWeight = clebsch.Weight(isoProton,iso3Proton, isoProton,iso3Proton, isoOut1,isoOut2); + if (pWeight == 0.) G4Exception ("G4VXResonance::IsospinCorrection, no resonances - pWeight is zero"); + + if (in1->IsShortLived() || in2->IsShortLived()) + { + // Resonances in the initial state + G4int iSpinProton = G4Proton::ProtonDefinition()->GetPDGiSpin(); + G4double degeneracyFactor = DegeneracyFactor(trk1,trk2,iSpinProton,iSpinProton); + + G4double factor = degeneracyFactor * pWeight; + if (factor > DBL_MIN) + { + // Randomly select the Isospin3 of the initial state resonances + G4std::vector iso = clebsch.GenerateIso3(isoIn1,iso3In1, + isoIn2,iso3In2, + isoProton,isoProton); + G4int isoA = static_cast(iso[0]); + G4int isoB = static_cast(iso[1]); + G4double rWeight = clebsch.Weight(isoProton,isoA, + isoProton,isoB, + isoOut1,isoOut2); + result = rWeight / pWeight; + } + } + else + { + G4double weight = clebsch.Weight(isoIn1,iso3In1, isoIn2,iso3In2, isoOut1,isoOut2); + result = weight / pWeight; + } + + return result; +} + + +#include "G4DetailedBalancePhaseSpaceIntegral.hh" + +G4double G4VXResonance::DetailedBalance(const G4KineticTrack& trk1, + const G4KineticTrack& trk2, + G4int isoOut1, G4int isoOut2, + G4double iSpinOut1, G4double iSpinOut2, + G4double mOut1, G4double mOut2) const +{ + // To handle the cases when resonances are involved the modified + // detailed balance of P. Danielewicz and G.F. Bertsch, Nucl. Phys. A533(1991) 712 + // is used; in other words, the width of the resonances are folded to get the + // mean square of the final state momentum. + + G4ParticleDefinition* in1 = trk1.GetDefinition(); + G4ParticleDefinition* in2 = trk2.GetDefinition(); + if(in1->IsShortLived() && in2->IsShortLived()) + { + G4Exception("Detailed balance for resonance scattering still on the schedule."); + } + + G4double result = 0.; + + G4int isoIn1 = in1->GetPDGiIsospin(); + G4int iso3In1 = in1->GetPDGiIsospin3(); + G4int isoIn2 = in2->GetPDGiIsospin(); + G4int iso3In2 = in2->GetPDGiIsospin3(); + G4double weight = clebsch.Weight(isoIn1, iso3In1, isoIn2, iso3In2, isoOut1, isoOut2); + + if (weight > 00001) + { + // adding spin counting here ...... does not look quite consistent, but is correct anyway. + // revisit in the next design iteration @@ + G4double degeneracy = DegeneracyFactor(trk1,trk2,iSpinOut1,iSpinOut2); + G4double factor = degeneracy * weight; + + // now the phase-space + G4double s = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag2(); + G4double m1 = in1->GetPDGMass(); + G4double m2 = in2->GetPDGMass(); + + // on-shell + G4double pinitial2 = (s - (m1+m2) * (m1+m2)) * (s - (m1-m2) * (m1-m2)) / (4.0*s); + G4double pfinal2 = (s - (mOut1+mOut2) * (mOut1+mOut2)) * (s - ( mOut1-mOut2) * (mOut1-mOut2)) / (4.0*s); + G4double relativeMomsquared = pfinal2/pinitial2; + + // resonance-nucleon scattering - inverse channel + if(in1->IsShortLived()) + { + G4DetailedBalancePhaseSpaceIntegral theI(in1); + relativeMomsquared = 1./theI.GetPhaseSpaceIntegral(sqrt(s)); + } + else if(in2->IsShortLived()) + { + G4DetailedBalancePhaseSpaceIntegral theI(in2); + relativeMomsquared = 1./theI.GetPhaseSpaceIntegral(sqrt(s)); + } + + result = factor * relativeMomsquared; + } + + return result; +} + + +G4double G4VXResonance::DegeneracyFactor(const G4KineticTrack& trk1, + const G4KineticTrack& trk2, + G4double iSpinOut1, G4double iSpinOut2) const +{ + G4double value = 0.; + + G4ParticleDefinition* in1 = trk1.GetDefinition(); + G4ParticleDefinition* in2 = trk2.GetDefinition(); + + G4double sIn1 = in1->GetPDGiSpin() + 1.; + G4double sIn2 = in2->GetPDGiSpin() + 1.; + + G4double denom = sIn1 * sIn2; + if (denom > 0.) + { + value = (iSpinOut1+1) * (iSpinOut2+1) / denom; + } + return value; +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc b/source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc new file mode 100644 index 0000000000..6e88f1542b --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc @@ -0,0 +1,225 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XAnnihilationChannel.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4ResonanceWidth.hh" +#include "G4ResonancePartialWidth.hh" +#include "G4PhysicsVector.hh" +#include "G4PartialWidthTable.hh" + +G4XAnnihilationChannel::G4XAnnihilationChannel(): resonance(0) +{ } + +G4XAnnihilationChannel::G4XAnnihilationChannel(const G4ParticleDefinition* resDefinition, + const G4ResonanceWidth& resWidths, + const G4ResonancePartialWidth& resPartWidths, + const G4String& partWidthLabel) + : resonance(resDefinition) +{ + // Get the tabulated mass-dependent widths for the resonance + G4String resName = resonance->GetParticleName(); + // cout << "HPW "<GetPDGiSpin(); + G4int J2 = def2->GetPDGiSpin(); + G4double m1 = def1->GetPDGMass(); + G4double m2 = def2->GetPDGMass(); + + G4int JRes = resonance->GetPDGiSpin(); + G4double mRes = resonance->GetPDGMass(); + + G4double branch = Branch(trk1,trk2); + G4double width = VariableWidth(trk1,trk2); + G4double cleb = NormalizedClebsch(trk1,trk2); + + G4double s = eCM * eCM; + if (s == 0.) G4Exception("G4XAnnihilationChannel::CrossSection - eCM = 0"); + + G4double pCM = sqrt((s-(m1+m2)*(m1+m2))*(s-(m1-m2)*(m1-m2))/(4.*s)); + + sigma = ( (JRes + 1.) / ( (J1 + 1) * (J2 + 1) ) + * pi / (pCM * pCM) * branch * width * width / + ( (eCM - mRes) * (eCM - mRes) + width * width / 4.0) * cleb * hbarc_squared); + +// G4cout << "SS " << branch<<" "<GetPDGWidth(); + G4bool dummy = false; + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + if (widthTable != 0) + { + width = widthTable->GetValue(sqrtS,dummy); + } + return width; +} + + +const G4double G4XAnnihilationChannel::VariablePartialWidth(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + // Calculate mass dependent partial width of resonance, + // based on UrQMD tabulations + + G4double width(0); + + if (partWidthTable != 0) + { + G4double sqrtS = 0; + G4bool dummy = false; + sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + width = partWidthTable->GetValue(sqrtS,dummy); + } + else + { + width = resonance->GetPDGWidth(); + } + return width; +} + + +const G4double G4XAnnihilationChannel::NormalizedClebsch(const G4KineticTrack& trk1, + const G4KineticTrack& trk2) const +{ + G4double cleb = 0.; + G4ParticleDefinition* def1 = trk1.GetDefinition(); + G4ParticleDefinition* def2 = trk2.GetDefinition(); + + G4int iso31 = def1->GetPDGiIsospin3(); + G4int iso32 = def2->GetPDGiIsospin3(); + G4int iso3 = iso31 + iso32; + G4int iso1 = def1->GetPDGiIsospin(); + G4int iso2 = def2->GetPDGiIsospin(); + + G4int isoRes = resonance->GetPDGiIsospin(); + + if (isoRes < iso3) return 0.; + if ((iso1*iso2) == 0) return 1.; + + cleb = clebsch.NormalizedClebschGordan(isoRes,iso3,iso1,iso2,iso31,iso32); + + // Special case: particle-antiparticle, charge-conjugated states have the same weight + G4String type1 = def1->GetParticleType(); + G4String type2 = def2->GetParticleType(); + G4int anti = def1->GetPDGEncoding() * def2->GetPDGEncoding(); + G4int strangeness = resonance->GetQuarkContent(3) + resonance->GetAntiQuarkContent(3); + if ( ((type1 == "baryon" && type2 == "baryon") ||(type1 == "meson" && type2 == "meson")) && + anti < 0 && strangeness == 0) + { + if (def1->GetPDGEncoding() != -(def2->GetPDGEncoding())) cleb = 0.5 * cleb; + } + + return cleb; +} + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc new file mode 100644 index 0000000000..71cb31d654 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4XAqmElastic +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// Additive Quark Model Elastic cross section +// (H.J. Lipkin and F. Scheck, Phys.Rev. 16 (1966) 71 +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XAqmElastic.hh" +#include "G4XAqmTotal.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" + + +// Validity range of this cross-section +const G4double G4XAqmElastic::_lowLimit = 0.; +const G4double G4XAqmElastic::_highLimit = DBL_MAX; + +G4XAqmElastic::G4XAqmElastic() +{ + // As a first approximation the model is assumed to be valid over + // the entire energy range +} + + +G4XAqmElastic::~G4XAqmElastic() +{ } + + +G4bool G4XAqmElastic::operator==(const G4XAqmElastic &right) const +{ + return (this == (G4XAqmElastic *) &right); +} + + +G4bool G4XAqmElastic::operator!=(const G4XAqmElastic &right) const +{ + return (this != (G4XAqmElastic *) &right); +} + + +G4double G4XAqmElastic::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sigma = 0.; + + // Reference to be checked!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + const G4double coeff = 0.39; + const G4double param = 1.5; + + G4XAqmTotal aqmTotal; + + G4double sigmaTot = aqmTotal.CrossSection(trk1,trk2); + sigma = coeff * pow(sigmaTot,param); + + // Verify that elastic cross section < total cross section + + if (sigma > sigmaTot) + G4Exception("G4XAqmElastic::CrossSection - elastic cross section greater than total"); + + return sigma; +} + + +G4String G4XAqmElastic::Name() const +{ + G4String name("AqmElasticCrossSection"); + return name; +} + + +G4bool G4XAqmElastic::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XAqmTotal.cc b/source/processes/hadronic/models/generator/scattering/src/G4XAqmTotal.cc new file mode 100644 index 0000000000..fc718161b0 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XAqmTotal.cc @@ -0,0 +1,133 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4XAqmTotal +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// Additive Quark Model total cross section +// (H.J. Lipkin and F. Scheck, Phys.Rev. 16 (1966) 71 +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XAqmTotal.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" + + +// Validity range of this cross-section +const G4double G4XAqmTotal::_lowLimit = 0.; +const G4double G4XAqmTotal::_highLimit = DBL_MAX; + +G4XAqmTotal::G4XAqmTotal() +{ + // As a first approximation the model is assumed to be valid over + // the entire energy range +} + + +G4XAqmTotal::~G4XAqmTotal() +{ } + + +G4bool G4XAqmTotal::operator==(const G4XAqmTotal &right) const +{ + return (this == (G4XAqmTotal *) &right); +} + + +G4bool G4XAqmTotal::operator!=(const G4XAqmTotal &right) const +{ + return (this != (G4XAqmTotal *) &right); +} + + +G4double G4XAqmTotal::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sigma = 0.; + + // Get strangeness content + G4ParticleDefinition* def1 = trk1.GetDefinition(); + G4int sTrk1 = def1->GetQuarkContent(3) + def1->GetAntiQuarkContent(3); + G4ParticleDefinition* def2 = trk2.GetDefinition(); + G4int sTrk2 = def2->GetQuarkContent(3) + def2->GetAntiQuarkContent(3); + + // Get non-strange quark content + G4int qTrk1 = def1->GetQuarkContent(1) + def1->GetAntiQuarkContent(1) + + def1->GetQuarkContent(2) + def1->GetAntiQuarkContent(2) + + def1->GetQuarkContent(4) + def1->GetAntiQuarkContent(4) + + def1->GetQuarkContent(5) + def1->GetAntiQuarkContent(5) + + def1->GetQuarkContent(6) + def1->GetAntiQuarkContent(6); + + G4int qTrk2 = def2->GetQuarkContent(1) + def2->GetAntiQuarkContent(1) + + def2->GetQuarkContent(2) + def2->GetAntiQuarkContent(2) + + def2->GetQuarkContent(4) + def2->GetAntiQuarkContent(4) + + def2->GetQuarkContent(5) + def2->GetAntiQuarkContent(5) + + def2->GetQuarkContent(6) + def2->GetAntiQuarkContent(6); + + G4double sRatio1 = 0.; + if (qTrk1 != 0) sRatio1 = sTrk1 / qTrk1; + + G4double sRatio2 = 0.; + if (qTrk2 != 0) sRatio2 = sTrk2 / qTrk2; + + // Calculate the number of colliding mesons + G4int nMesons = 0; + G4int nQ1 = sTrk1 + qTrk1; + + if (nQ1 == 2) nMesons++; + G4int nQ2 = sTrk2 + qTrk2; + if (nQ2 == 2) nMesons++; + + // Cross-section (units to be checked!) + sigma = 40. * pow((2.0/3.0),nMesons) * (1. - 0.4 * sRatio1) * (1. - 0.4 * sRatio2) * millibarn; + + return sigma; +} + + +G4String G4XAqmTotal::Name() const +{ + G4String name("AqmTotalCrossSection"); + return name; +} + + + +G4bool G4XAqmTotal::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltaTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltaTable.cc new file mode 100644 index 0000000000..b175cf3fb6 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltaTable.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// p p -> Delta Delta cross section tables +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XDeltaDeltaTable.hh" +#include "G4PhysicsFreeVector.hh" + + + +// Energies (GeV) corresponding to the cross section table +// Units are assigned while filling the PhysicsVector + +const G4double G4XDeltaDeltaTable::energyTable[121] = +{ + 0.0, + 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052, + 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185, + 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413, + 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736, + 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153, + 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666, + 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273, + 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, + 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, + 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, + 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +// Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998 +// Units are assigned while filling the PhysicsVector + +const G4double G4XDeltaDeltaTable::sigmaDD1232[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.000, 0.000, 0.000, 0.002, 0.008, 0.029, 0.078, + 0.159, 0.262, 0.374, 0.488, 0.599, 0.706, 0.806, 0.899, + 0.985, 1.064, 1.135, 1.200, 1.257, 1.309, 1.354, 1.394, + 1.429, 1.458, 1.482, 1.503, 1.519, 1.531, 1.540, 1.545, + 1.548, 1.548, 1.545, 1.540, 1.533, 1.523, 1.513, 1.500, + 1.486, 1.471, 1.455, 1.437, 1.419, 1.400, 1.381, 1.361, + 1.340, 1.319, 1.297, 1.275, 1.254, 1.231, 1.209, 1.187, + 1.180, 0.889, 0.681, 0.534, 0.430, 0.351, 0.292, 0.247, + 0.211, 0.183, 0.160, 0.141, 0.125, 0.111, 0.100, 0.090, + 0.082, 0.075, 0.068, 0.063, 0.058, 0.054, 0.050, 0.046, + 0.043, 0.040, 0.038, 0.035, 0.033, 0.031, 0.030, 0.028, + 0.027, 0.025, 0.024, 0.023, 0.022, 0.021, 0.020, 0.019 +}; + + + +G4XDeltaDeltaTable::G4XDeltaDeltaTable() : size(121) +{ } + + +G4XDeltaDeltaTable::~G4XDeltaDeltaTable() +{ } + + +G4PhysicsVector* G4XDeltaDeltaTable::CrossSectionTable() const +{ + G4PhysicsFreeVector*sigma = new G4PhysicsFreeVector(size); + + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return sigma; +} + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltastarTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltastarTable.cc new file mode 100644 index 0000000000..2dd92589f4 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltastarTable.cc @@ -0,0 +1,334 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// Hadron Kinetic Model +// p p -> Delta Delta* cross section tables +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XDeltaDeltastarTable.hh" +#include "G4PhysicsFreeVector.hh" + + +const G4int G4XDeltaDeltastarTable::sizeDeltaDeltastar = 121; + + +// Energies (GeV) corresponding to the cross section table +// Units are assigned while filling the PhysicsVector + +const G4double G4XDeltaDeltastarTable::energyTable[121] = +{ + 0.0, + 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052, + 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185, + 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413, + 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736, + 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153, + 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666, + 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273, + 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, + 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, + 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, + 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +// Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998 +// Units are assigned while filling the PhysicsVector + +const G4double G4XDeltaDeltastarTable::sigmaDD1600[121]= +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.005, 0.010, + 0.018, 0.000, 0.000, 0.003, 0.015, 0.045, 0.087, 0.134, + 0.183, 0.231, 0.277, 0.319, 0.359, 0.395, 0.429, 0.459, + 0.486, 0.510, 0.532, 0.551, 0.568, 0.582, 0.595, 0.605, + 0.614, 0.621, 0.626, 0.630, 0.633, 0.635, 0.635, 0.634, + 0.633, 0.630, 0.627, 0.623, 0.619, 0.614, 0.608, 0.602, + 0.600, 0.490, 0.391, 0.314, 0.259, 0.213, 0.178, 0.152, + 0.130, 0.113, 0.099, 0.088, 0.078, 0.070, 0.063, 0.057, + 0.052, 0.047, 0.043, 0.040, 0.037, 0.034, 0.031, 0.029, + 0.027, 0.026, 0.024, 0.023, 0.021, 0.020, 0.019, 0.018, + 0.017, 0.016, 0.015, 0.014, 0.014, 0.013, 0.013, 0.012 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1620[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, + 0.001, 0.002, 0.003, 0.004, 0.005, 0.007, 0.009, 0.014, + 0.000, 0.000, 0.001, 0.006, 0.020, 0.043, 0.070, 0.100, + 0.128, 0.156, 0.182, 0.207, 0.229, 0.249, 0.267, 0.284, + 0.299, 0.312, 0.324, 0.334, 0.343, 0.351, 0.357, 0.362, + 0.367, 0.370, 0.372, 0.374, 0.375, 0.375, 0.374, 0.373, + 0.372, 0.370, 0.367, 0.364, 0.361, 0.358, 0.354, 0.350, + 0.348, 0.280, 0.220, 0.176, 0.144, 0.117, 0.098, 0.091, + 0.071, 0.062, 0.054, 0.048, 0.042, 0.038, 0.034, 0.031, + 0.028, 0.025, 0.023, 0.021, 0.020, 0.018, 0.017, 0.016, + 0.015, 0.014, 0.013, 0.012, 0.011, 0.011, 0.010, 0.010, + 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, 0.007, 0.006 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1700[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.012, + 0.019, 0.031, 0.000, 0.000, 0.001, 0.006, 0.021, 0.044, + 0.073, 0.103, 0.134, 0.164, 0.193, 0.220, 0.246, 0.269, + 0.291, 0.310, 0.328, 0.344, 0.358, 0.370, 0.381, 0.391, + 0.399, 0.405, 0.411, 0.416, 0.419, 0.421, 0.423, 0.424, + 0.424, 0.423, 0.422, 0.420, 0.418, 0.415, 0.412, 0.408, + 0.407, 0.335, 0.268, 0.215, 0.177, 0.145, 0.121, 0.103, + 0.088, 0.077, 0.067, 0.059, 0.053, 0.047, 0.042, 0.038, + 0.035, 0.032, 0.029, 0.027, 0.025, 0.023, 0.021, 0.020, + 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012, + 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008 +}; + + +const G4double G4XDeltaDeltastarTable::sigmaDD1900[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.001, 0.001, 0.002, 0.002, 0.003, 0.003, + 0.004, 0.006, 0.007, 0.010, 0.000, 0.000, 0.000, 0.001, + 0.006, 0.014, 0.025, 0.036, 0.047, 0.058, 0.068, 0.077, + 0.086, 0.094, 0.101, 0.107, 0.113, 0.118, 0.122, 0.126, + 0.129, 0.132, 0.134, 0.136, 0.137, 0.138, 0.139, 0.140, + 0.140, 0.140, 0.139, 0.139, 0.138, 0.137, 0.136, 0.135, + 0.135, 0.111, 0.088, 0.070, 0.059, 0.047, 0.039, 0.033, + 0.029, 0.025, 0.022, 0.019, 0.017, 0.015, 0.014, 0.012, + 0.011, 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006, + 0.006, 0.005, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, + 0.004, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1905[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.003, 0.005, 0.009, 0.000, 0.000, 0.001, + 0.005, 0.018, 0.038, 0.061, 0.086, 0.110, 0.134, 0.157, + 0.178, 0.197, 0.216, 0.232, 0.248, 0.262, 0.274, 0.285, + 0.295, 0.304, 0.312, 0.318, 0.324, 0.329, 0.333, 0.336, + 0.338, 0.340, 0.341, 0.342, 0.342, 0.341, 0.340, 0.339, + 0.338, 0.293, 0.240, 0.196, 0.166, 0.135, 0.114, 0.098, + 0.084, 0.073, 0.064, 0.057, 0.055, 0.045, 0.041, 0.037, + 0.034, 0.031, 0.028, 0.026, 0.024, 0.022, 0.021, 0.019, + 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012, 0.012, + 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1910[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, + 0.001, 0.001, 0.002, 0.003, 0.005, 0.008, 0.000, 0.000, + 0.001, 0.004, 0.010, 0.018, 0.027, 0.035, 0.044, 0.052, + 0.059, 0.066, 0.073, 0.078, 0.083, 0.088, 0.092, 0.096, + 0.099, 0.102, 0.104, 0.106, 0.108, 0.110, 0.111, 0.112, + 0.112, 0.113, 0.113, 0.113, 0.112, 0.112, 0.112, 0.111, + 0.111, 0.094, 0.076, 0.062, 0.052, 0.042, 0.036, 0.030, + 0.026, 0.023, 0.020, 0.018, 0.016, 0.014, 0.013, 0.011, + 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006, 0.006, + 0.006, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, 0.004, + 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.002 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1920[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.001, 0.002, 0.003, 0.006, 0.000, 0.000, + 0.001, 0.007, 0.020, 0.040, 0.060, 0.080, 0.099, 0.117, + 0.133, 0.147, 0.160, 0.171, 0.181, 0.190, 0.198, 0.204, + 0.210, 0.215, 0.219, 0.222, 0.225, 0.227, 0.228, 0.229, + 0.229, 0.229, 0.229, 0.228, 0.227, 0.226, 0.224, 0.222, + 0.222, 0.183, 0.146, 0.117, 0.098, 0.078, 0.066, 0.056, + 0.048, 0.041, 0.036, 0.032, 0.028, 0.025, 0.023, 0.021, + 0.019, 0.017, 0.016, 0.014, 0.013, 0.012, 0.011, 0.011, + 0.010, 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, 0.006, + 0.006, 0.006, 0.005, 0.005, 0.005, 0.005, 0.005, 0.004 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1930[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.000, 0.000, + 0.001, 0.004, 0.015, 0.033, 0.053, 0.075, 0.096, 0.117, + 0.136, 0.154, 0.171, 0.187, 0.201, 0.214, 0.225, 0.236, + 0.245, 0.253, 0.261, 0.267, 0.272, 0.277, 0.281, 0.284, + 0.287, 0.288, 0.290, 0.290, 0.291, 0.291, 0.290, 0.289, + 0.289, 0.251, 0.206, 0.168, 0.142, 0.115, 0.097, 0.083, + 0.071, 0.062, 0.059, 0.048, 0.043, 0.038, 0.035, 0.031, + 0.028, 0.026, 0.024, 0.022, 0.020, 0.019, 0.017, 0.016, + 0.015, 0.014, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010, + 0.009, 0.009, 0.008, 0.008, 0.008, 0.007, 0.007, 0.007 +}; + +const G4double G4XDeltaDeltastarTable::sigmaDD1950[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.001, 0.001, 0.002, 0.003, 0.006, 0.011, 0.000, + 0.000, 0.002, 0.011, 0.029, 0.053, 0.078, 0.103, 0.128, + 0.151, 0.173, 0.194, 0.213, 0.230, 0.246, 0.261, 0.274, + 0.285, 0.296, 0.305, 0.313, 0.320, 0.326, 0.331, 0.335, + 0.339, 0.342, 0.344, 0.345, 0.346, 0.346, 0.345, 0.344, + 0.344, 0.301, 0.247, 0.202, 0.170, 0.139, 0.117, 0.099, + 0.086, 0.075, 0.065, 0.058, 0.051, 0.046, 0.042, 0.038, + 0.034, 0.031, 0.029, 0.026, 0.024, 0.022, 0.021, 0.019, + 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012, + 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, 0.008 +}; + + + +G4XDeltaDeltastarTable::G4XDeltaDeltastarTable() +{ + xMap["delta(1600)-"] = (G4double*) sigmaDD1600; + xMap["delta(1600)0"] = (G4double*) sigmaDD1600; + xMap["delta(1600)+"] = (G4double*) sigmaDD1600; + xMap["delta(1600)++"] = (G4double*) sigmaDD1600; + + xMap["delta(1620)-"] = (G4double*) sigmaDD1620; + xMap["delta(1620)0"] = (G4double*) sigmaDD1620; + xMap["delta(1620)+"] = (G4double*) sigmaDD1620; + xMap["delta(1620)++"] = (G4double*) sigmaDD1620; + + xMap["delta(1700)-"] = (G4double*) sigmaDD1700; + xMap["delta(1700)0"] = (G4double*) sigmaDD1700; + xMap["delta(1700)+"] = (G4double*) sigmaDD1700; + xMap["delta(1700)++"] = (G4double*) sigmaDD1700; + + xMap["delta(1900)-"] = (G4double*) sigmaDD1900; + xMap["delta(1900)0"] = (G4double*) sigmaDD1900; + xMap["delta(1900)+"] = (G4double*) sigmaDD1900; + xMap["delta(1900)++"] = (G4double*) sigmaDD1900; + + xMap["delta(1905)-"] = (G4double*) sigmaDD1905; + xMap["delta(1905)0"] = (G4double*) sigmaDD1905; + xMap["delta(1905)+"] = (G4double*) sigmaDD1905; + xMap["delta(1905)++"] = (G4double*) sigmaDD1905; + + xMap["delta(1910)-"] = (G4double*) sigmaDD1910; + xMap["delta(1910)0"] = (G4double*) sigmaDD1910; + xMap["delta(1910)+"] = (G4double*) sigmaDD1910; + xMap["delta(1910)++"] = (G4double*) sigmaDD1910; + + xMap["delta(1920)-"] = (G4double*) sigmaDD1920; + xMap["delta(1920)0"] = (G4double*) sigmaDD1920; + xMap["delta(1920)+"] = (G4double*) sigmaDD1920; + xMap["delta(1920)++"] = (G4double*) sigmaDD1920; + + xMap["delta(1930)-"] = (G4double*) sigmaDD1930; + xMap["delta(1930)0"] = (G4double*) sigmaDD1930; + xMap["delta(1930)+"] = (G4double*) sigmaDD1930; + xMap["delta(1930)++"] = (G4double*) sigmaDD1930; + + xMap["delta(1950)-"] = (G4double*) sigmaDD1950; + xMap["delta(1950)0"] = (G4double*) sigmaDD1950; + xMap["delta(1950)+"] = (G4double*) sigmaDD1950; + xMap["delta(1950)++"] = (G4double*) sigmaDD1950; +} + + +G4XDeltaDeltastarTable::~G4XDeltaDeltastarTable() +{ } + + +const G4PhysicsVector* G4XDeltaDeltastarTable::CrossSectionTable(const G4String& particleName) const +{ + // NOTE: the returned pointer is owned by the client + + if (xMap.find(particleName) != xMap.end()) + { + // Cross section table for the requested particle available in the Map + G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeDeltaDeltastar); + G4std::map >::const_iterator iter; + G4double* sigmaPointer = 0; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == particleName) + { + sigmaPointer = (*iter).second; + } + } + + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return sigmaVector; + } + else + // No cross section table for the requested particle is available in the Map + return 0; +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XDeltaNstarTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4XDeltaNstarTable.cc new file mode 100644 index 0000000000..160bab8658 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XDeltaNstarTable.cc @@ -0,0 +1,470 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XDeltaNstarTable +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 4 June 1999 +// +// Modifications: +// +// Hadron Kinetic Model +// p p -> Delta N* cross section tables +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XDeltaNstarTable.hh" +#include "G4PhysicsFreeVector.hh" + + +const G4int G4XDeltaNstarTable::sizeDeltaNstar = 121; + + +// Energies (GeV) corresponding to the cross section table +// Units are assigned while filling the PhysicsVector + +const G4double G4XDeltaNstarTable::energyTable[121] = +{ + 0.0, + 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052, + 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185, + 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413, + 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736, + 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153, + 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666, + 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273, + 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, + 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, + 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, + 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +// Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998 +// Units are assigned while filling the PhysicsVector + +const G4double G4XDeltaNstarTable::sigmaDN1440[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.003, 0.006, 0.011, 0.021, + 0.041, 0.000, 0.000, 0.002, 0.011, 0.047, 0.131, 0.257, + 0.408, 0.568, 0.729, 0.886, 1.036, 1.178, 1.309, 1.431, + 1.542, 1.644, 1.736, 1.819, 1.894, 1.960, 2.017, 2.068, + 2.111, 2.148, 2.178, 2.203, 2.222, 2.237, 2.247, 2.253, + 2.254, 2.252, 2.247, 2.239, 2.228, 2.215, 2.199, 2.181, + 2.161, 2.140, 2.117, 2.093, 2.068, 2.042, 2.014, 1.986, + 1.977, 1.558, 1.224, 0.976, 0.797, 0.654, 0.548, 0.465, + 0.399, 0.346, 0.303, 0.268, 0.238, 0.213, 0.192, 0.173, + 0.158, 0.144, 0.132, 0.121, 0.112, 0.103, 0.096, 0.089, + 0.083, 0.078, 0.073, 0.069, 0.065, 0.061, 0.057, 0.054, + 0.051, 0.049, 0.046, 0.044, 0.042, 0.040, 0.038, 0.036 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1520[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, + 0.003, 0.006, 0.013, 0.027, 0.000, 0.001, 0.010, 0.048, + 0.152, 0.318, 0.513, 0.713, 0.908, 1.091, 1.262, 1.417, + 1.559, 1.686, 1.801, 1.903, 1.992, 2.071, 2.140, 2.198, + 2.248, 2.289, 2.323, 2.349, 2.369, 2.383, 2.392, 2.395, + 2.394, 2.389, 2.380, 2.368, 2.352, 2.334, 2.313, 2.290, + 2.266, 2.239, 2.211, 2.182, 2.151, 2.119, 2.087, 2.054, + 2.043, 1.571, 1.211, 0.953, 0.769, 0.627, 0.521, 0.440, + 0.376, 0.325, 0.284, 0.250, 0.222, 0.198, 0.178, 0.160, + 0.146, 0.133, 0.121, 0.112, 0.103, 0.095, 0.088, 0.082, + 0.076, 0.071, 0.067, 0.063, 0.059, 0.056, 0.052, 0.050, + 0.047, 0.045, 0.042, 0.040, 0.038, 0.036, 0.035, 0.033 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1535[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.006, 0.010, + 0.014, 0.021, 0.030, 0.044, 0.000, 0.000, 0.002, 0.010, + 0.039, 0.097, 0.174, 0.257, 0.339, 0.417, 0.490, 0.556, + 0.615, 0.667, 0.714, 0.754, 0.790, 0.820, 0.846, 0.867, + 0.885, 0.899, 0.910, 0.918, 0.924, 0.927, 0.928, 0.927, + 0.924, 0.920, 0.914, 0.907, 0.899, 0.890, 0.880, 0.870, + 0.858, 0.847, 0.834, 0.822, 0.809, 0.795, 0.782, 0.768, + 0.764, 0.576, 0.439, 0.343, 0.275, 0.223, 0.185, 0.156, + 0.133, 0.115, 0.100, 0.088, 0.078, 0.070, 0.062, 0.056, + 0.051, 0.047, 0.043, 0.039, 0.036, 0.033, 0.031, 0.029, + 0.027, 0.025, 0.023, 0.022, 0.021, 0.019, 0.018, 0.017, + 0.016, 0.016, 0.015, 0.014, 0.013, 0.013, 0.012, 0.012 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1650[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, + 0.004, 0.006, 0.008, 0.011, 0.014, 0.019, 0.026, 0.000, + 0.000, 0.001, 0.004, 0.018, 0.047, 0.083, 0.122, 0.159, + 0.194, 0.227, 0.256, 0.282, 0.305, 0.326, 0.343, 0.359, + 0.372, 0.383, 0.393, 0.400, 0.406, 0.411, 0.415, 0.417, + 0.418, 0.418, 0.418, 0.417, 0.415, 0.412, 0.409, 0.405, + 0.401, 0.397, 0.392, 0.387, 0.382, 0.376, 0.371, 0.365, + 0.363, 0.278, 0.214, 0.168, 0.135, 0.110, 0.091, 0.077, + 0.066, 0.057, 0.049, 0.043, 0.038, 0.034, 0.031, 0.028, + 0.025, 0.023, 0.021, 0.019, 0.018, 0.016, 0.015, 0.014, + 0.013, 0.012, 0.012, 0.011, 0.010, 0.010, 0.009, 0.009, + 0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1675[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, 0.013, + 0.000, 0.000, 0.003, 0.021, 0.072, 0.155, 0.251, 0.350, + 0.446, 0.538, 0.622, 0.699, 0.771, 0.835, 0.893, 0.945, + 0.992, 1.033, 1.068, 1.099, 1.126, 1.148, 1.167, 1.182, + 1.194, 1.203, 1.209, 1.212, 1.214, 1.213, 1.210, 1.205, + 1.199, 1.191, 1.182, 1.172, 1.161, 1.148, 1.135, 1.122, + 1.117, 0.891, 0.700, 0.556, 0.454, 0.371, 0.310, 0.262, + 0.225, 0.195, 0.170, 0.150, 0.133, 0.119, 0.107, 0.097, + 0.088, 0.080, 0.073, 0.067, 0.062, 0.057, 0.053, 0.050, + 0.046, 0.043, 0.040, 0.038, 0.036, 0.034, 0.032, 0.030, + 0.028, 0.027, 0.026, 0.024, 0.023, 0.022, 0.021, 0.020 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1680[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.009, + 0.000, 0.000, 0.003, 0.019, 0.070, 0.157, 0.258, 0.361, + 0.461, 0.555, 0.641, 0.720, 0.792, 0.857, 0.915, 0.966, + 1.012, 1.051, 1.086, 1.116, 1.141, 1.162, 1.179, 1.192, + 1.202, 1.209, 1.214, 1.216, 1.215, 1.212, 1.208, 1.202, + 1.194, 1.185, 1.175, 1.163, 1.151, 1.137, 1.123, 1.108, + 1.103, 0.870, 0.678, 0.536, 0.437, 0.355, 0.296, 0.250, + 0.214, 0.185, 0.162, 0.142, 0.126, 0.113, 0.101, 0.092, + 0.083, 0.076, 0.069, 0.064, 0.059, 0.054, 0.050, 0.047, + 0.044, 0.041, 0.038, 0.036, 0.034, 0.032, 0.030, 0.028, + 0.027, 0.025, 0.024, 0.023, 0.022, 0.021, 0.020, 0.019 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1700[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.007, + 0.013, 0.000, 0.001, 0.006, 0.028, 0.078, 0.142, 0.209, + 0.273, 0.332, 0.385, 0.432, 0.475, 0.512, 0.545, 0.573, + 0.598, 0.620, 0.638, 0.653, 0.665, 0.675, 0.683, 0.688, + 0.692, 0.694, 0.695, 0.694, 0.692, 0.689, 0.685, 0.680, + 0.674, 0.668, 0.660, 0.653, 0.645, 0.636, 0.627, 0.618, + 0.615, 0.477, 0.368, 0.290, 0.234, 0.190, 0.158, 0.134, + 0.114, 0.099, 0.086, 0.076, 0.067, 0.060, 0.054, 0.049, + 0.044, 0.040, 0.037, 0.034, 0.031, 0.029, 0.027, 0.025, + 0.023, 0.022, 0.020, 0.019, 0.018, 0.017, 0.016, 0.015, + 0.014, 0.013, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1710[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, 0.003, + 0.005, 0.000, 0.000, 0.002, 0.009, 0.028, 0.056, 0.086, + 0.116, 0.144, 0.170, 0.194, 0.215, 0.234, 0.251, 0.266, + 0.279, 0.290, 0.300, 0.308, 0.315, 0.321, 0.326, 0.329, + 0.332, 0.334, 0.335, 0.336, 0.335, 0.334, 0.333, 0.331, + 0.329, 0.327, 0.324, 0.320, 0.317, 0.313, 0.309, 0.305, + 0.304, 0.239, 0.187, 0.161, 0.121, 0.098, 0.082, 0.069, + 0.059, 0.051, 0.045, 0.040, 0.035, 0.031, 0.028, 0.025, + 0.023, 0.021, 0.019, 0.018, 0.016, 0.015, 0.014, 0.013, + 0.012, 0.011, 0.011, 0.010, 0.009, 0.009, 0.008, 0.008, + 0.007, 0.007, 0.007, 0.006, 0.006, 0.006, 0.006, 0.005 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1720[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.005, 0.008, + 0.014, 0.000, 0.000, 0.001, 0.009, 0.033, 0.075, 0.124, + 0.175, 0.225, 0.271, 0.315, 0.355, 0.391, 0.423, 0.452, + 0.478, 0.501, 0.521, 0.538, 0.553, 0.566, 0.576, 0.585, + 0.592, 0.597, 0.601, 0.603, 0.604, 0.604, 0.603, 0.601, + 0.598, 0.595, 0.590, 0.585, 0.580, 0.574, 0.568, 0.561, + 0.559, 0.446, 0.351, 0.279, 0.228, 0.202, 0.156, 0.132, + 0.113, 0.098, 0.086, 0.076, 0.067, 0.060, 0.054, 0.049, + 0.044, 0.040, 0.037, 0.034, 0.031, 0.029, 0.027, 0.025, + 0.023, 0.022, 0.020, 0.019, 0.018, 0.017, 0.016, 0.015, + 0.014, 0.014, 0.013, 0.012, 0.012, 0.011, 0.011, 0.010 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1900[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.001, 0.002, 0.002, 0.003, + 0.005, 0.007, 0.009, 0.014, 0.021, 0.000, 0.000, 0.001, + 0.003, 0.009, 0.017, 0.028, 0.038, 0.049, 0.060, 0.070, + 0.080, 0.090, 0.099, 0.107, 0.115, 0.122, 0.128, 0.134, + 0.140, 0.145, 0.149, 0.153, 0.156, 0.159, 0.162, 0.164, + 0.166, 0.168, 0.169, 0.170, 0.170, 0.171, 0.171, 0.171, + 0.171, 0.155, 0.131, 0.110, 0.095, 0.079, 0.067, 0.058, + 0.051, 0.044, 0.039, 0.035, 0.031, 0.028, 0.026, 0.023, + 0.021, 0.019, 0.018, 0.016, 0.016, 0.015, 0.013, 0.012, + 0.011, 0.011, 0.010, 0.009, 0.009, 0.008, 0.008, 0.008, + 0.007, 0.007, 0.006, 0.006, 0.006, 0.006, 0.005, 0.005 +}; + +const G4double G4XDeltaNstarTable::sigmaDN1990[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.004, 0.008, 0.016, + 0.000, 0.000, 0.001, 0.005, 0.013, 0.024, 0.035, 0.046, + 0.057, 0.068, 0.078, 0.088, 0.097, 0.105, 0.113, 0.120, + 0.126, 0.132, 0.138, 0.143, 0.147, 0.151, 0.155, 0.158, + 0.161, 0.164, 0.166, 0.168, 0.169, 0.171, 0.172, 0.172, + 0.173, 0.164, 0.143, 0.122, 0.105, 0.089, 0.076, 0.066, + 0.058, 0.053, 0.045, 0.040, 0.036, 0.032, 0.029, 0.027, + 0.024, 0.022, 0.021, 0.019, 0.018, 0.016, 0.015, 0.014, + 0.013, 0.012, 0.012, 0.011, 0.010, 0.010, 0.009, 0.009, + 0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006 +}; + +const G4double G4XDeltaNstarTable::sigmaDN2090[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.004, 0.006, + 0.010, 0.000, 0.000, 0.001, 0.005, 0.013, 0.022, 0.033, + 0.043, 0.053, 0.063, 0.071, 0.079, 0.086, 0.093, 0.099, + 0.104, 0.108, 0.112, 0.116, 0.119, 0.121, 0.123, 0.125, + 0.126, 0.127, 0.128, 0.129, 0.129, 0.129, 0.129, 0.128, + 0.128, 0.110, 0.090, 0.073, 0.061, 0.049, 0.041, 0.035, + 0.030, 0.026, 0.023, 0.020, 0.018, 0.016, 0.015, 0.013, + 0.012, 0.011, 0.010, 0.009, 0.008, 0.008, 0.007, 0.007, + 0.006, 0.006, 0.006, 0.005, 0.005, 0.005, 0.004, 0.004, + 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, 0.003, 0.003 +}; + +const G4double G4XDeltaNstarTable::sigmaDN2190[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, + 0.002, 0.003, 0.006, 0.010, 0.000, 0.000, 0.000, 0.003, + 0.007, 0.013, 0.019, 0.026, 0.032, 0.038, 0.044, 0.050, + 0.055, 0.060, 0.065, 0.069, 0.073, 0.077, 0.080, 0.083, + 0.086, 0.088, 0.090, 0.092, 0.094, 0.095, 0.096, 0.097, + 0.098, 0.097, 0.086, 0.073, 0.062, 0.053, 0.046, 0.039, + 0.034, 0.030, 0.027, 0.024, 0.021, 0.019, 0.017, 0.016, + 0.015, 0.013, 0.012, 0.011, 0.010, 0.010, 0.009, 0.008, + 0.008, 0.007, 0.007, 0.006, 0.006, 0.006, 0.005, 0.005, + 0.005, 0.005, 0.004, 0.004, 0.004, 0.004, 0.004, 0.003 +}; + +const G4double G4XDeltaNstarTable::sigmaDN2220[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.003, 0.006, 0.011, 0.000, 0.000, 0.001, + 0.005, 0.010, 0.017, 0.024, 0.030, 0.037, 0.044, 0.050, + 0.055, 0.061, 0.066, 0.070, 0.074, 0.078, 0.082, 0.085, + 0.088, 0.091, 0.093, 0.095, 0.097, 0.099, 0.100, 0.101, + 0.102, 0.103, 0.092, 0.079, 0.067, 0.058, 0.050, 0.043, + 0.038, 0.033, 0.029, 0.027, 0.023, 0.021, 0.019, 0.017, + 0.016, 0.014, 0.013, 0.012, 0.011, 0.011, 0.010, 0.009, + 0.009, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006, + 0.005, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, 0.004, +}; + +const G4double G4XDeltaNstarTable::sigmaDN2250[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.002, 0.003, 0.006, 0.000, 0.000, 0.000, + 0.003, 0.007, 0.014, 0.021, 0.028, 0.035, 0.042, 0.049, + 0.055, 0.060, 0.066, 0.071, 0.075, 0.079, 0.083, 0.087, + 0.090, 0.093, 0.095, 0.098, 0.100, 0.101, 0.103, 0.104, + 0.105, 0.105, 0.093, 0.079, 0.067, 0.057, 0.049, 0.042, + 0.037, 0.032, 0.029, 0.025, 0.023, 0.020, 0.018, 0.017, + 0.015, 0.014, 0.013, 0.012, 0.011, 0.010, 0.009, 0.009, + 0.008, 0.008, 0.007, 0.007, 0.006, 0.006, 0.006, 0.005, + 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, 0.004, 0.004 +}; + + +G4XDeltaNstarTable::G4XDeltaNstarTable() +{ + xMap["N(1440)0"] = (G4double*) sigmaDN1440; + xMap["N(1440)+"] = (G4double*) sigmaDN1440; + + xMap["N(1520)0"] = (G4double*) sigmaDN1520; + xMap["N(1520)+"] = (G4double*) sigmaDN1520; + + xMap["N(1535)0"] = (G4double*) sigmaDN1535; + xMap["N(1535)+"] = (G4double*) sigmaDN1535; + + xMap["N(1650)0"] = (G4double*) sigmaDN1650; + xMap["N(1650)+"] = (G4double*) sigmaDN1650; + + xMap["N(1675)0"] = (G4double*) sigmaDN1675; + xMap["N(1675)+"] = (G4double*) sigmaDN1675; + + xMap["N(1680)0"] = (G4double*) sigmaDN1680; + xMap["N(1680)+"] = (G4double*) sigmaDN1680; + + xMap["N(1700)0"] = (G4double*) sigmaDN1700; + xMap["N(1700)+"] = (G4double*) sigmaDN1700; + + xMap["N(1710)0"] = (G4double*) sigmaDN1710; + xMap["N(1710)+"] = (G4double*) sigmaDN1710; + + xMap["N(1720)0"] = (G4double*) sigmaDN1720; + xMap["N(1720)+"] = (G4double*) sigmaDN1720; + + xMap["N(1900)0"] = (G4double*) sigmaDN1900; + xMap["N(1900)+"] = (G4double*) sigmaDN1900; + + xMap["N(1990)0"] = (G4double*) sigmaDN1990; + xMap["N(1990)+"] = (G4double*) sigmaDN1990; + + xMap["N(2090)0"] = (G4double*) sigmaDN2090; + xMap["N(2090)+"] = (G4double*) sigmaDN2090; + + xMap["N(2190)0"] = (G4double*) sigmaDN2190; + xMap["N(2190)+"] = (G4double*) sigmaDN2190; + + xMap["N(2220)0"] = (G4double*) sigmaDN2220; + xMap["N(2220)+"] = (G4double*) sigmaDN2220; + + xMap["N(2250)0"] = (G4double*) sigmaDN2250; + xMap["N(2250)+"] = (G4double*) sigmaDN2250; +} + + +G4XDeltaNstarTable::~G4XDeltaNstarTable() +{ } + + +const G4PhysicsVector* G4XDeltaNstarTable::CrossSectionTable(const G4String& particleName) const +{ + // NOTE: the returned pointer is owned by the client + + if (xMap.find(particleName) != xMap.end()) + { + // Cross section table for the requested particle available in the Map + G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeDeltaNstar); + G4std::map >::const_iterator iter; + G4double* sigmaPointer = 0; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == particleName) + { + sigmaPointer = (*iter).second; + } + } + + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return sigmaVector; + } + else + // No cross section table for the requested particle is available in the Map + return 0; +} + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XMesonBaryonElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4XMesonBaryonElastic.cc new file mode 100644 index 0000000000..c6758b7ccb --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XMesonBaryonElastic.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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XMesonBaryonElastic.hh" +#include "G4KineticTrack.hh" +#include "G4Gamma.hh" +#include "G4PionPlus.hh" +#include "G4Proton.hh" +#include "G4XAqmElastic.hh" +#include "G4XPDGElastic.hh" + +G4XMesonBaryonElastic::G4XMesonBaryonElastic() +{ + // As a first approximation the model is assumed to be valid over + // the entire energy range + lowLimit = 0.; + highLimit = DBL_MAX; +} + + +G4XMesonBaryonElastic::~G4XMesonBaryonElastic() +{ } + + +G4bool G4XMesonBaryonElastic::operator==(const G4XMesonBaryonElastic &right) const +{ + return (this == (G4XMesonBaryonElastic *) &right); +} + + +G4bool G4XMesonBaryonElastic::operator!=(const G4XMesonBaryonElastic &right) const +{ + return (this != (G4XMesonBaryonElastic *) &right); +} + + +G4double G4XMesonBaryonElastic::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sigma; + + // No gamma-baryon elastic scattering + const G4ParticleDefinition* defLight = FindLightParticle(trk1,trk2); + if (defLight == G4Gamma::GammaDefinition()) + { + sigma = 0; + } + else + { + + G4LorentzVector p41 = trk1.Get4Momentum(); + G4ThreeVector p3 = trk1.GetPosition(); + G4ParticleDefinition* def = G4PionPlus::PionPlusDefinition(); + + G4KineticTrack piTrk(def, + trk1.GetFormationTime(), + p3, + (G4LorentzVector&)p41); + + G4LorentzVector p42 = trk2.Get4Momentum(); + G4KineticTrack pTrk(((G4ParticleDefinition*)G4Proton::ProtonDefinition()), + trk2.GetFormationTime(), + (G4ThreeVector)trk2.GetPosition(), + (G4LorentzVector&)p42); + + G4XAqmElastic aqm; + G4double xAqmDummy = aqm.CrossSection(piTrk,pTrk); + G4double xAqm = aqm.CrossSection(trk1,trk2); + G4double factor = 1.; + if (xAqmDummy != 0.0) + { + factor = xAqm / xAqmDummy; + } + G4XPDGElastic pdg; + + sigma = pdg.CrossSection(piTrk,pTrk); + sigma = sigma * factor; + } + + return sigma; +} + + +G4String G4XMesonBaryonElastic::Name() const +{ + G4String name("MesonBaryonElasticCrossSection"); + return name; +} + + + +G4bool G4XMesonBaryonElastic::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,lowLimit,highLimit); + + return answer; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNDeltaTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4XNDeltaTable.cc new file mode 100644 index 0000000000..ea34c156e9 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XNDeltaTable.cc @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XNDeltaTable.hh" +#include "G4PhysicsFreeVector.hh" + + +// Energies (GeV) corresponding to the cross section table +// Units are assigned while filling the PhysicsVector + +const G4double G4XNDeltaTable::energyTable[121] = +{ + 0.0, + 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052, + 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185, + 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413, + 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736, + 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153, + 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666, + 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273, + 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, + 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, + 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, + 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +const G4double G4XNDeltaTable::sigmaND1232[121] = +{ +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.86797, 4.66734, 7.69136, 10.6795, 13.4186, 16.1709, 18.589, 20.8729, 22.7591, 24.3304, 25.6082, 26.4774, 27.0037, 27.2032, 27.102, 26.7335, 26.1361, 25.35, 24.4149, 23.4022, 22.2798, 21.1099, 19.9181, 18.7585, 17.5815, 16.4636, 15.3542, 14.3173, 13.3284, 12.3683, 11.4842, 10.6528, 9.87343, 9.14494, 8.46562, 7.83342, 7.24607, 6.70118, 6.19628, 5.73764, 5.30454, 4.90425, 4.54101, 4.19898, 3.88329, 3.59684, 3.33204, 3.08328, 2.85746, 2.64878, 2.45594, 2.27499, 2.11055, 1.95855, 1.81805, 1.68815, 1.56803, 1.4585, 1.3556, 1.26038, 1.17227, 1.09178, 1.01616, 0.94702, 0.882049, 0.861647, 0.338175, 0.159097, 0.084589, 0.0490573, 0.030404, 0.0198328, 0.0134898, 0.00949051, 0.00687213, 0.00509677, 0.00386061, 0.00297765, 0.0023329, 0.00185401, 0.00149168, 0.00121394, 0.000997782, 0.000827808, 0.000692435, 0.000583729, 0.000495476, 0.000423349, 0.000363883, 0.000314463, 0.00027319, 0.000238444, 0.000209075, 0.000184071, 0.000162714, 0.000144352, 0.000128522, 0.000114792, 0.000102858, 9.24351e-05, 8.32923e-05, 7.52591e-05, 6.81657e-05, 6.18939e-05, 5.63225e-05, +}; + + + +G4XNDeltaTable::G4XNDeltaTable() : size(121) +{ } + + +G4XNDeltaTable::~G4XNDeltaTable() +{ } + + +G4PhysicsVector* G4XNDeltaTable::CrossSectionTable() const +{ + G4PhysicsFreeVector* sigma = new G4PhysicsFreeVector(size); + + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return sigma; +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNDeltastarTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4XNDeltastarTable.cc new file mode 100644 index 0000000000..b3708772ef --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XNDeltastarTable.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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4XNDeltastarTable +// +// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) +// +// Creation date: 4 June 1999 +// +// Modifications: +// +// Hadron Kinetic Model +// p p -> N Delta* cross section tables +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XNDeltastarTable.hh" +#include "G4PhysicsFreeVector.hh" + +const G4int G4XNDeltastarTable::sizeNDeltastar = 121; + + +// Energies (GeV) corresponding to the cross section table +// Units are assigned while filling the PhysicsVector + +const G4double G4XNDeltastarTable::energyTable[121] = +{ + 0.0, + 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052, + 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185, + 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413, + 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736, + 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153, + 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666, + 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273, + 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, + 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, + 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, + 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +// Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998 +// Units are assigned while filling the PhysicsVector + +const G4double G4XNDeltastarTable::sigmaND1600[121]= +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, + 0.001, 0.002, 0.003, 0.004, 0.006, 0.009, 0.014, 0.022, + 0.036, 0.060, 0.104, 0.179, 0.290, 0.418, 0.543, 0.656, + 0.755, 0.841, 0.914, 0.976, 1.029, 1.073, 1.110, 1.139, + 1.163, 1.181, 1.195, 1.204, 1.210, 1.212, 1.212, 1.209, + 1.203, 1.196, 1.187, 1.176, 1.164, 1.150, 1.136, 1.120, + 1.104, 1.087, 1.070, 1.052, 1.034, 1.016, 0.997, 0.978, + 0.959, 0.940, 0.921, 0.903, 0.884, 0.865, 0.847, 0.828, + 0.822, 0.597, 0.447, 0.345, 0.274, 0.223, 0.184, 0.155, + 0.132, 0.114, 0.099, 0.087, 0.077, 0.069, 0.062, 0.056, + 0.050, 0.046, 0.042, 0.039, 0.036, 0.033, 0.030, 0.028, + 0.026, 0.025, 0.023, 0.022, 0.020, 0.019, 0.018, 0.017, + 0.016, 0.015, 0.015, 0.014, 0.013, 0.013, 0.012, 0.011 +}; + +const G4double G4XNDeltastarTable::sigmaND1620[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, + 0.001, 0.001, 0.002, 0.002, 0.003, 0.003, 0.004, 0.005, + 0.006, 0.007, 0.009, 0.010, 0.013, 0.016, 0.021, 0.028, + 0.040, 0.060, 0.096, 0.154, 0.228, 0.304, 0.372, 0.431, + 0.483, 0.526, 0.563, 0.595, 0.621, 0.643, 0.660, 0.674, + 0.685, 0.693, 0.699, 0.702, 0.704, 0.704, 0.702, 0.699, + 0.694, 0.689, 0.682, 0.675, 0.669, 0.661, 0.651, 0.642, + 0.632, 0.621, 0.611, 0.600, 0.589, 0.577, 0.566, 0.555, + 0.544, 0.532, 0.521, 0.510, 0.499, 0.488, 0.477, 0.466, + 0.463, 0.332, 0.247, 0.189, 0.150, 0.121, 0.100, 0.084, + 0.071, 0.061, 0.053, 0.047, 0.041, 0.037, 0.033, 0.030, + 0.027, 0.025, 0.022, 0.021, 0.019, 0.018, 0.016, 0.015, + 0.014, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010, 0.009, + 0.009, 0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006 +}; + +const G4double G4XNDeltastarTable::sigmaND1700[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, + 0.001, 0.002, 0.003, 0.005, 0.008, 0.013, 0.020, 0.029, + 0.043, 0.062, 0.090, 0.131, 0.187, 0.258, 0.338, 0.418, + 0.495, 0.564, 0.626, 0.680, 0.726, 0.766, 0.800, 0.828, + 0.852, 0.871, 0.886, 0.898, 0.906, 0.911, 0.914, 0.914, + 0.913, 0.909, 0.904, 0.898, 0.890, 0.881, 0.871, 0.861, + 0.849, 0.837, 0.825, 0.812, 0.798, 0.785, 0.771, 0.756, + 0.742, 0.728, 0.713, 0.699, 0.685, 0.670, 0.656, 0.642, + 0.637, 0.462, 0.345, 0.266, 0.211, 0.171, 0.141, 0.119, + 0.101, 0.087, 0.076, 0.066, 0.059, 0.052, 0.047, 0.042, + 0.038, 0.035, 0.032, 0.029, 0.027, 0.025, 0.023, 0.021, + 0.020, 0.019, 0.017, 0.016, 0.015, 0.015, 0.014, 0.013, + 0.012, 0.012, 0.011, 0.010, 0.010, 0.009, 0.009, 0.009 +}; + + +const G4double G4XNDeltastarTable::sigmaND1900[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.002, 0.002, + 0.002, 0.003, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, + 0.010, 0.012, 0.015, 0.019, 0.025, 0.034, 0.048, 0.069, + 0.097, 0.129, 0.162, 0.193, 0.220, 0.243, 0.263, 0.280, + 0.294, 0.305, 0.315, 0.322, 0.328, 0.333, 0.336, 0.337, + 0.338, 0.338, 0.337, 0.336, 0.334, 0.331, 0.328, 0.325, + 0.321, 0.316, 0.312, 0.307, 0.302, 0.297, 0.292, 0.287, + 0.282, 0.276, 0.271, 0.265, 0.260, 0.255, 0.249, 0.244, + 0.242, 0.175, 0.131, 0.101, 0.080, 0.064, 0.053, 0.045, + 0.038, 0.033, 0.028, 0.025, 0.022, 0.020, 0.018, 0.016, + 0.014, 0.013, 0.012, 0.011, 0.010, 0.009, 0.009, 0.008, + 0.007, 0.007, 0.007, 0.006, 0.006, 0.005, 0.005, 0.005, + 0.005, 0.004, 0.004, 0.004, 0.004, 0.004, 0.003, 0.003 +}; + +const G4double G4XNDeltastarTable::sigmaND1905[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, + 0.002, 0.003, 0.005, 0.008, 0.013, 0.023, 0.041, 0.075, + 0.131, 0.206, 0.286, 0.362, 0.430, 0.491, 0.542, 0.587, + 0.626, 0.659, 0.687, 0.710, 0.730, 0.745, 0.757, 0.767, + 0.774, 0.778, 0.781, 0.782, 0.781, 0.778, 0.775, 0.770, + 0.764, 0.757, 0.749, 0.741, 0.732, 0.722, 0.712, 0.702, + 0.691, 0.680, 0.669, 0.658, 0.646, 0.635, 0.623, 0.611, + 0.607, 0.454, 0.346, 0.270, 0.216, 0.176, 0.146, 0.123, + 0.105, 0.091, 0.079, 0.070, 0.066, 0.055, 0.050, 0.045, + 0.041, 0.037, 0.034, 0.031, 0.029, 0.027, 0.025, 0.023, + 0.021, 0.020, 0.019, 0.018, 0.016, 0.016, 0.015, 0.014, + 0.013, 0.012, 0.012, 0.011, 0.011, 0.010, 0.010, 0.009 +}; + +const G4double G4XNDeltastarTable::sigmaND1910[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, 0.001, 0.002, + 0.002, 0.003, 0.004, 0.006, 0.008, 0.012, 0.017, 0.026, + 0.041, 0.063, 0.089, 0.116, 0.142, 0.164, 0.184, 0.201, + 0.215, 0.227, 0.238, 0.246, 0.253, 0.259, 0.263, 0.266, + 0.268, 0.270, 0.270, 0.270, 0.270, 0.269, 0.267, 0.265, + 0.263, 0.260, 0.257, 0.254, 0.251, 0.247, 0.243, 0.240, + 0.236, 0.232, 0.228, 0.224, 0.219, 0.215, 0.211, 0.207, + 0.206, 0.152, 0.115, 0.089, 0.071, 0.058, 0.048, 0.040, + 0.034, 0.030, 0.027, 0.023, 0.020, 0.018, 0.016, 0.015, + 0.013, 0.012, 0.011, 0.010, 0.009, 0.009, 0.008, 0.007, + 0.007, 0.006, 0.006, 0.006, 0.005, 0.005, 0.005, 0.004, + 0.004, 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, 0.003 +}; + +const G4double G4XNDeltastarTable::sigmaND1920[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, + 0.001, 0.002, 0.003, 0.004, 0.006, 0.009, 0.013, 0.022, + 0.037, 0.068, 0.123, 0.194, 0.263, 0.322, 0.371, 0.412, + 0.446, 0.473, 0.496, 0.515, 0.529, 0.540, 0.549, 0.555, + 0.559, 0.561, 0.561, 0.560, 0.558, 0.555, 0.551, 0.546, + 0.540, 0.534, 0.527, 0.519, 0.512, 0.504, 0.495, 0.487, + 0.478, 0.470, 0.461, 0.452, 0.443, 0.434, 0.425, 0.416, + 0.413, 0.301, 0.225, 0.174, 0.138, 0.112, 0.092, 0.078, + 0.066, 0.057, 0.049, 0.043, 0.038, 0.034, 0.031, 0.028, + 0.025, 0.023, 0.021, 0.019, 0.018, 0.016, 0.015, 0.014, + 0.013, 0.012, 0.011, 0.011, 0.010, 0.009, 0.009, 0.008, + 0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006 +}; + +const G4double G4XNDeltastarTable::sigmaND1930[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, + 0.001, 0.002, 0.003, 0.004, 0.006, 0.010, 0.016, 0.028, + 0.051, 0.092, 0.154, 0.227, 0.298, 0.363, 0.419, 0.468, + 0.509, 0.545, 0.575, 0.605, 0.626, 0.643, 0.658, 0.665, + 0.674, 0.680, 0.684, 0.687, 0.687, 0.687, 0.685, 0.681, + 0.677, 0.672, 0.666, 0.659, 0.651, 0.644, 0.635, 0.626, + 0.617, 0.608, 0.598, 0.588, 0.578, 0.568, 0.558, 0.547, + 0.544, 0.407, 0.310, 0.242, 0.193, 0.157, 0.131, 0.110, + 0.094, 0.081, 0.075, 0.062, 0.055, 0.049, 0.044, 0.040, + 0.036, 0.033, 0.030, 0.028, 0.025, 0.024, 0.022, 0.020, + 0.019, 0.018, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012, + 0.012, 0.011, 0.010, 0.010, 0.009, 0.009, 0.009, 0.008 +}; + +const G4double G4XNDeltastarTable::sigmaND1950[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, + 0.001, 0.001, 0.002, 0.003, 0.005, 0.008, 0.013, 0.023, + 0.041, 0.078, 0.142, 0.229, 0.319, 0.402, 0.475, 0.538, + 0.597, 0.643, 0.678, 0.711, 0.739, 0.762, 0.781, 0.797, + 0.809, 0.818, 0.824, 0.828, 0.830, 0.830, 0.829, 0.825, + 0.821, 0.815, 0.809, 0.801, 0.793, 0.784, 0.774, 0.764, + 0.753, 0.742, 0.730, 0.718, 0.706, 0.694, 0.682, 0.670, + 0.666, 0.500, 0.380, 0.297, 0.237, 0.193, 0.160, 0.135, + 0.115, 0.099, 0.087, 0.076, 0.068, 0.060, 0.054, 0.049, + 0.044, 0.040, 0.037, 0.034, 0.031, 0.029, 0.027, 0.025, + 0.023, 0.022, 0.020, 0.019, 0.018, 0.017, 0.016, 0.015, + 0.014, 0.013, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010 +}; + + + +G4XNDeltastarTable::G4XNDeltastarTable() +{ + xMap["delta(1600)-"] = (G4double*) sigmaND1600; + xMap["delta(1600)0"] = (G4double*) sigmaND1600; + xMap["delta(1600)+"] = (G4double*) sigmaND1600; + xMap["delta(1600)++"] = (G4double*) sigmaND1600; + + xMap["delta(1620)-"] = (G4double*) sigmaND1620; + xMap["delta(1620)0"] = (G4double*) sigmaND1620; + xMap["delta(1620)+"] = (G4double*) sigmaND1620; + xMap["delta(1620)++"] = (G4double*) sigmaND1620; + + xMap["delta(1700)-"] = (G4double*) sigmaND1700; + xMap["delta(1700)0"] = (G4double*) sigmaND1700; + xMap["delta(1700)+"] = (G4double*) sigmaND1700; + xMap["delta(1700)++"] = (G4double*) sigmaND1700; + + xMap["delta(1900)-"] = (G4double*) sigmaND1900; + xMap["delta(1900)0"] = (G4double*) sigmaND1900; + xMap["delta(1900)+"] = (G4double*) sigmaND1900; + xMap["delta(1900)++"] = (G4double*) sigmaND1900; + + xMap["delta(1905)-"] = (G4double*) sigmaND1905; + xMap["delta(1905)0"] = (G4double*) sigmaND1905; + xMap["delta(1905)+"] = (G4double*) sigmaND1905; + xMap["delta(1905)++"] = (G4double*) sigmaND1905; + + xMap["delta(1910)-"] = (G4double*) sigmaND1910; + xMap["delta(1910)0"] = (G4double*) sigmaND1910; + xMap["delta(1910)+"] = (G4double*) sigmaND1910; + xMap["delta(1910)++"] = (G4double*) sigmaND1910; + + xMap["delta(1920)-"] = (G4double*) sigmaND1920; + xMap["delta(1920)0"] = (G4double*) sigmaND1920; + xMap["delta(1920)+"] = (G4double*) sigmaND1920; + xMap["delta(1920)++"] = (G4double*) sigmaND1920; + + xMap["delta(1930)-"] = (G4double*) sigmaND1930; + xMap["delta(1930)0"] = (G4double*) sigmaND1930; + xMap["delta(1930)+"] = (G4double*) sigmaND1930; + xMap["delta(1930)++"] = (G4double*) sigmaND1930; + + xMap["delta(1950)-"] = (G4double*) sigmaND1950; + xMap["delta(1950)0"] = (G4double*) sigmaND1950; + xMap["delta(1950)+"] = (G4double*) sigmaND1950; + xMap["delta(1950)++"] = (G4double*) sigmaND1950; +} + + +G4XNDeltastarTable::~G4XNDeltastarTable() +{ } + + +const G4PhysicsVector* G4XNDeltastarTable::CrossSectionTable(const G4String& particleName) const +{ + // NOTE: the returned pointer is owned by the client + + if (xMap.find(particleName) != xMap.end()) + { + // Cross section table for the requested particle available in the Map + G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeNDeltastar); + G4std::map >::const_iterator iter; + G4double* sigmaPointer = 0; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == particleName) + { + sigmaPointer = (*iter).second; + } + } + + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return sigmaVector; + } + else + // No cross section table for the requested particle is available in the Map + return 0; +} + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4XNNElastic.cc new file mode 100644 index 0000000000..4323d9fe97 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XNNElastic.cc @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4XNNElastic +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4XNNElastic.hh" +#include "G4XNNElasticLowE.hh" +#include "G4XPDGElastic.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4Proton.hh" +#include "G4CrossSectionVector.hh" + + +G4XNNElastic::G4XNNElastic() +{ + components = new G4CrossSectionVector; + + G4VCrossSectionSource* xNNElasticLowE = new G4XNNElasticLowE; + components->push_back(xNNElasticLowE); + + G4VCrossSectionSource* xNNElasticHighE = new G4XPDGElastic; + components->push_back(xNNElasticHighE); +} + + +G4XNNElastic::~G4XNNElastic() +{ + if (components != 0) + { + G4int nComponents = this->GetComponents()->size(); + G4int i; + for (i=0; i _eMax) + G4Exception("G4XNNElasticLowE::G4XNNElasticLowE - High energy limit not valid"); + G4PhysicsVector* pp = new G4PhysicsLnVector(_eMin,_eMax,tableSize); + + _eMin = exp(log(_eMinTable)-_eStepLog)*GeV; + if (_eMin < _lowLimit) + G4Exception("G4XNNElasticLowE::G4XNNElasticLowE - Low energy limit not valid"); + G4PhysicsVector* np = new G4PhysicsLnVector(_eMin,_eMax,tableSize); + + G4int i; + for (i=0; iPutValue(i,value); + value = npTable[i] * millibarn; + np->PutValue(i,value); + } + xMap[G4Proton::ProtonDefinition()->GetParticleName()] = pp; + xMap[G4Neutron::NeutronDefinition()->GetParticleName()] = np; +} + + +G4XNNElasticLowE::~G4XNNElasticLowE() +{ + delete xMap[G4Proton::ProtonDefinition()->GetParticleName()]; + delete xMap[G4Neutron::NeutronDefinition()->GetParticleName()]; +} + + +G4bool G4XNNElasticLowE::operator==(const G4XNNElasticLowE &right) const +{ + return (this == (G4XNNElasticLowE *) &right); +} + + +G4bool G4XNNElasticLowE::operator!=(const G4XNNElasticLowE &right) const +{ + + return (this != (G4XNNElasticLowE *) &right); +} + + +G4double G4XNNElasticLowE::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sigma = 0.; + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4bool dummy = false; + + G4String key = FindKeyParticle(trk1,trk2); + + typedef G4std::map > StringPhysMap; + + if (xMap.find(key)!= xMap.end()) + { + + StringPhysMap::const_iterator iter; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == key) + { + G4PhysicsVector* physVector = (*iter).second; + // G4PhysicsVector* physVector = xMap[key]; + if (sqrtS >= _eMin && sqrtS <= _eMax) + { + sigma = physVector->GetValue(sqrtS,dummy); + } else if ( sqrtS < _eMin ) + { + sigma = physVector->GetValue(_eMin,dummy); + } + } + } + } + return sigma; +} + + +void G4XNNElasticLowE::Print() const +{ + // Dump the pp cross-section table + + G4cout << Name() << ", pp cross-section: " << G4endl; + + G4bool dummy = false; + G4int i; + G4String key = G4Proton::ProtonDefinition()->GetParticleName(); + G4PhysicsVector* pp = 0; + + typedef G4std::map > StringPhysMap; + StringPhysMap::const_iterator iter; + + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == key) + { + pp = (*iter).second; + } + } + + if (pp != 0) + { + for (i=0; iGetLowEdgeEnergy(i); + G4double sigma = pp->GetValue(e,dummy) / millibarn; + G4cout << i << ") e = " << e / GeV << " GeV ---- Cross section = " << sigma << " mb " << G4endl; + } + } + + // Dump the np cross-section table + + G4cout << Name() << ", np cross-section: " << G4endl; + + key = G4Neutron::NeutronDefinition()->GetParticleName(); + G4PhysicsVector* np = 0; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == key) + { + np = (*iter).second; + } + } + + // G4PhysicsVector* np = xMap[G4Neutron::NeutronDefinition()->GetParticleName()]; + + if (np != 0) + { + for (i=0; iGetLowEdgeEnergy(i); + G4double sigma = np->GetValue(e,dummy) / millibarn; + G4cout << i << ") e = " << e / GeV << " GeV ---- Cross section = " << sigma << " mb " << G4endl; + } + } + G4VCrossSectionSource::Print(); +} + + +G4String G4XNNElasticLowE::Name() const +{ + G4String name("NNElasticLowE"); + return name; +} + + + +G4bool G4XNNElasticLowE::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNTotal.cc b/source/processes/hadronic/models/generator/scattering/src/G4XNNTotal.cc new file mode 100644 index 0000000000..81aed79f8a --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XNNTotal.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. * +// ******************************************************************** +// + +#include "globals.hh" +#include "G4XNNTotal.hh" +#include "G4XNNTotalLowE.hh" +#include "G4XPDGTotal.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4Proton.hh" +#include "G4CrossSectionVector.hh" + + +G4XNNTotal::G4XNNTotal() +{ + components = new G4CrossSectionVector; + + G4VCrossSectionSource* xNNTotalLowE = new G4XNNTotalLowE; + components->push_back(xNNTotalLowE); + + G4VCrossSectionSource* xNNTotalHighE = new G4XPDGTotal; + components->push_back(xNNTotalHighE); +} + + +G4XNNTotal::~G4XNNTotal() +{ + if (components != 0) + { + G4int nComponents = this->GetComponents()->size(); + G4int i; + for (i=0; i it; + it.first=ss[i]; + it.second=ppTot[i]; pp->push_back(it); + it.second=npTot[i]; np->push_back(it); + } + theCrossSections[G4Proton::ProtonDefinition()->GetParticleName()] = pp; + theCrossSections[G4Neutron::NeutronDefinition()->GetParticleName()] = np; +} + + +G4XNNTotalLowE::~G4XNNTotalLowE() +{ + delete theCrossSections[G4Proton::ProtonDefinition()->GetParticleName()]; + delete theCrossSections[G4Neutron::NeutronDefinition()->GetParticleName()]; +} + +G4double G4XNNTotalLowE::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double result = 0.; + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4String key = FindKeyParticle(trk1,trk2); + + if (theCrossSections.find(key)!= theCrossSections.end()) + { + LowEMap::const_iterator iter; + for (iter = theCrossSections.begin(); iter != theCrossSections.end(); ++iter) + { + if ((*iter).first == key) + { + result = (*iter).second->CrossSection(sqrtS); + } + } + } + else + { + G4Exception("G4XNNTotalLowE: particle key out of range"); + } + + return result; +} + +G4String G4XNNTotalLowE::Name() const +{ + G4String name("NNTotalLowE"); + return name; +} + + +G4bool G4XNNTotalLowE::IsValid(G4double e) const +{ + G4bool result = e>0&&e<3*GeV; + return result; +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNstarTable.cc b/source/processes/hadronic/models/generator/scattering/src/G4XNNstarTable.cc new file mode 100644 index 0000000000..57f7d0fda2 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XNNstarTable.cc @@ -0,0 +1,436 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XNNstarTable.hh" +#include "G4PhysicsFreeVector.hh" + + +const G4int G4XNNstarTable::sizeNNstar = 121; + + +// Energies (GeV) corresponding to the cross section table +// Units are assigned while filling the PhysicsVector + +const G4double G4XNNstarTable::energyTable[121] = +{ + 0.0, + 2.014, 2.014, 2.016, 2.018, 2.022, 2.026, 2.031, 2.037, 2.044, 2.052, + 2.061, 2.071, 2.082, 2.094, 2.107, 2.121, 2.135, 2.151, 2.168, 2.185, + 2.204, 2.223, 2.244, 2.265, 2.287, 2.311, 2.335, 2.360, 2.386, 2.413, + 2.441, 2.470, 2.500, 2.531, 2.562, 2.595, 2.629, 2.664, 2.699, 2.736, + 2.773, 2.812, 2.851, 2.891, 2.933, 2.975, 3.018, 3.062, 3.107, 3.153, + 3.200, 3.248, 3.297, 3.347, 3.397, 3.449, 3.502, 3.555, 3.610, 3.666, + 3.722, 3.779, 3.838, 3.897, 3.957, 4.018, 4.081, 4.144, 4.208, 4.273, + 4.339, 4.406, 4.473, 4.542, 4.612, 4.683, 4.754, 4.827, 4.900, 4.975, + 5.000, 6.134, 7.269, 8.403, 9.538, 10.672, 11.807, 12.941, 14.076, 15.210, + 16.345, 17.479, 18.613, 19.748, 20.882, 22.017, 23.151, 24.286, 25.420, 26.555, + 27.689, 28.824, 29.958, 31.092, 32.227, 33.361, 34.496, 35.630, 36.765, 37.899, + 39.034, 40.168, 41.303, 42.437, 43.571, 44.706, 45.840, 46.975, 48.109, 49.244 +}; + +// Cross-sections in mb, from S.A. Bass et al., Prog.Part.Nucl.Phys.41:225-370,1998 +// Units are assigned while filling the PhysicsVector + +const G4double G4XNNstarTable::sigmaNN1440[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.004, 0.006, 0.009, + 0.014, 0.020, 0.031, 0.047, 0.072, 0.113, 0.178, 0.266, 0.370, 0.476, + 0.575, 0.665, 0.744, 0.814, 0.874, 0.926, 0.971, 1.009, 1.040, 1.066, + 1.087, 1.103, 1.115, 1.124, 1.129, 1.132, 1.131, 1.129, 1.124, 1.117, + 1.109, 1.099, 1.088, 1.075, 1.062, 1.048, 1.033, 1.017, 1.001, 0.984, + 0.967, 0.950, 0.932, 0.914, 0.896, 0.879, 0.861, 0.843, 0.825, 0.807, + 0.790, 0.773, 0.755, 0.738, 0.722, 0.705, 0.689, 0.673, 0.657, 0.641, + 0.636, 0.453, 0.336, 0.258, 0.204, 0.166, 0.137, 0.115, 0.098, 0.084, + 0.073, 0.064, 0.057, 0.051, 0.046, 0.041, 0.037, 0.034, 0.031, 0.029, + 0.026, 0.024, 0.022, 0.021, 0.019, 0.018, 0.017, 0.016, 0.015, 0.014, + 0.013, 0.013, 0.012, 0.011, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008 +}; + +const G4double G4XNNstarTable::sigmaNN1520[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, + 0.001, 0.002, 0.003, 0.005, 0.008, 0.014, 0.024, 0.043, 0.079, 0.150, + 0.280, 0.465, 0.662, 0.841, 0.995, 1.125, 1.235, 1.327, 1.410, 1.474, + 1.525, 1.567, 1.600, 1.625, 1.644, 1.651, 1.657, 1.659, 1.657, 1.651, + 1.642, 1.629, 1.614, 1.597, 1.578, 1.558, 1.536, 1.512, 1.488, 1.463, + 1.437, 1.411, 1.384, 1.357, 1.329, 1.302, 1.274, 1.247, 1.219, 1.192, + 1.165, 1.138, 1.112, 1.086, 1.060, 1.035, 1.010, 0.985, 0.961, 0.938, + 0.930, 0.652, 0.479, 0.365, 0.287, 0.232, 0.191, 0.160, 0.135, 0.116, + 0.101, 0.089, 0.078, 0.070, 0.062, 0.056, 0.051, 0.046, 0.042, 0.039, + 0.036, 0.033, 0.031, 0.028, 0.026, 0.025, 0.023, 0.022, 0.020, 0.019, + 0.018, 0.017, 0.016, 0.015, 0.015, 0.014, 0.013, 0.013, 0.012, 0.011 +}; + +const G4double G4XNNstarTable::sigmaNN1535[121] = +{ + 0.0, + 0.000, 0.000, 0.001, 0.001, 0.001, 0.002, 0.002, 0.003, + 0.004, 0.005, 0.006, 0.008, 0.010, 0.012, 0.015, 0.019, + 0.024, 0.031, 0.039, 0.052, 0.069, 0.097, 0.145, 0.216, + 0.298, 0.378, 0.451, 0.513, 0.566, 0.610, 0.646, 0.675, + 0.699, 0.718, 0.732, 0.742, 0.749, 0.753, 0.754, 0.753, + 0.751, 0.746, 0.740, 0.733, 0.724, 0.715, 0.705, 0.694, + 0.683, 0.671, 0.659, 0.647, 0.634, 0.621, 0.608, 0.595, + 0.582, 0.569, 0.556, 0.543, 0.531, 0.518, 0.506, 0.493, + 0.481, 0.469, 0.458, 0.446, 0.435, 0.424, 0.413, 0.402, + 0.399, 0.276, 0.201, 0.153, 0.120, 0.096, 0.079, 0.066, + 0.056, 0.048, 0.042, 0.037, 0.032, 0.029, 0.026, 0.023, + 0.021, 0.019, 0.017, 0.016, 0.015, 0.014, 0.013, 0.012, + 0.011, 0.010, 0.009, 0.009, 0.008, 0.008, 0.007, 0.007, + 0.007, 0.006, 0.006, 0.006, 0.005, 0.005, 0.005, 0.005 +}; + +const G4double G4XNNstarTable::sigmaNN1650[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, 0.001, + 0.002, 0.002, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, + 0.008, 0.010, 0.012, 0.015, 0.019, 0.023, 0.029, 0.038, + 0.051, 0.071, 0.104, 0.150, 0.201, 0.249, 0.290, 0.326, + 0.354, 0.378, 0.397, 0.412, 0.424, 0.434, 0.440, 0.445, + 0.448, 0.449, 0.449, 0.448, 0.445, 0.442, 0.438, 0.433, + 0.428, 0.422, 0.416, 0.409, 0.403, 0.395, 0.388, 0.381, + 0.373, 0.366, 0.358, 0.350, 0.343, 0.335, 0.327, 0.320, + 0.312, 0.305, 0.298, 0.291, 0.284, 0.277, 0.270, 0.263, + 0.261, 0.182, 0.133, 0.102, 0.080, 0.064, 0.053, 0.044, + 0.037, 0.032, 0.028, 0.024, 0.022, 0.019, 0.017, 0.015, + 0.014, 0.013, 0.012, 0.011, 0.010, 0.009, 0.008, 0.008, + 0.007, 0.007, 0.006, 0.006, 0.006, 0.005, 0.005, 0.005, + 0.004, 0.004, 0.004, 0.004, 0.004, 0.003, 0.003, 0.003 +}; + +const G4double G4XNNstarTable::sigmaNN1675[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, + 0.001, 0.001, 0.002, 0.002, 0.003, 0.005, 0.009, 0.015, + 0.026, 0.048, 0.095, 0.189, 0.324, 0.463, 0.586, 0.691, + 0.780, 0.855, 0.919, 0.972, 1.016, 1.052, 1.081, 1.105, + 1.123, 1.136, 1.145, 1.151, 1.153, 1.153, 1.149, 1.144, + 1.136, 1.127, 1.116, 1.104, 1.090, 1.076, 1.061, 1.045, + 1.028, 1.011, 0.993, 0.975, 0.957, 0.939, 0.921, 0.902, + 0.884, 0.865, 0.847, 0.828, 0.810, 0.792, 0.775, 0.757, + 0.751, 0.538, 0.399, 0.307, 0.242, 0.196, 0.162, 0.136, + 0.115, 0.099, 0.086, 0.076, 0.067, 0.060, 0.053, 0.048, + 0.044, 0.040, 0.036, 0.033, 0.031, 0.028, 0.026, 0.024, + 0.023, 0.021, 0.020, 0.019, 0.018, 0.016, 0.016, 0.015, + 0.014, 0.013, 0.013, 0.012, 0.011, 0.011, 0.010, 0.010 +}; + +const G4double G4XNNstarTable::sigmaNN1680[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.001, 0.001, 0.001, 0.002, 0.003, 0.006, 0.010, + 0.018, 0.035, 0.073, 0.156, 0.294, 0.446, 0.580, 0.693, + 0.788, 0.867, 0.933, 0.988, 1.033, 1.070, 1.100, 1.124, + 1.142, 1.155, 1.163, 1.168, 1.170, 1.168, 1.164, 1.158, + 1.149, 1.139, 1.127, 1.114, 1.100, 1.085, 1.068, 1.052, + 1.034, 1.016, 0.998, 0.979, 0.960, 0.941, 0.922, 0.903, + 0.884, 0.865, 0.846, 0.827, 0.809, 0.790, 0.772, 0.754, + 0.748, 0.533, 0.394, 0.301, 0.238, 0.192, 0.158, 0.133, + 0.113, 0.097, 0.084, 0.074, 0.065, 0.058, 0.052, 0.047, + 0.042, 0.039, 0.035, 0.032, 0.030, 0.028, 0.026, 0.024, + 0.022, 0.021, 0.019, 0.018, 0.017, 0.016, 0.015, 0.014, + 0.013, 0.013, 0.012, 0.012, 0.011, 0.010, 0.010, 0.010 +}; + +const G4double G4XNNstarTable::sigmaNN1700[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.001, 0.001, 0.001, 0.002, 0.003, 0.005, 0.008, + 0.013, 0.022, 0.038, 0.070, 0.140, 0.245, 0.347, 0.431, + 0.500, 0.556, 0.601, 0.637, 0.666, 0.689, 0.708, 0.721, + 0.731, 0.738, 0.742, 0.743, 0.743, 0.740, 0.736, 0.730, + 0.723, 0.716, 0.707, 0.697, 0.687, 0.676, 0.665, 0.654, + 0.642, 0.630, 0.617, 0.605, 0.593, 0.580, 0.568, 0.555, + 0.543, 0.531, 0.519, 0.507, 0.495, 0.483, 0.471, 0.460, + 0.456, 0.322, 0.236, 0.180, 0.142, 0.114, 0.094, 0.079, + 0.067, 0.057, 0.050, 0.044, 0.039, 0.034, 0.031, 0.028, + 0.025, 0.023, 0.021, 0.019, 0.018, 0.016, 0.015, 0.014, + 0.013, 0.012, 0.011, 0.011, 0.010, 0.009, 0.009, 0.008, + 0.008, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006 +}; + +const G4double G4XNNstarTable::sigmaNN1710[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.001, 0.001, 0.001, 0.002, 0.003, + 0.005, 0.008, 0.013, 0.025, 0.052, 0.096, 0.144, 0.185, + 0.219, 0.246, 0.269, 0.288, 0.304, 0.316, 0.326, 0.334, + 0.340, 0.344, 0.347, 0.349, 0.349, 0.349, 0.348, 0.346, + 0.343, 0.340, 0.336, 0.332, 0.328, 0.323, 0.319, 0.313, + 0.308, 0.303, 0.297, 0.292, 0.286, 0.280, 0.275, 0.269, + 0.263, 0.257, 0.252, 0.246, 0.241, 0.235, 0.230, 0.224, + 0.223, 0.158, 0.117, 0.090, 0.071, 0.057, 0.047, 0.040, + 0.034, 0.029, 0.025, 0.022, 0.019, 0.017, 0.016, 0.014, + 0.013, 0.012, 0.011, 0.010, 0.009, 0.008, 0.008, 0.007, + 0.007, 0.006, 0.006, 0.005, 0.005, 0.005, 0.005, 0.004, + 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, 0.003, 0.003 +}; + +const G4double G4XNNstarTable::sigmaNN1720[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.002, 0.002, 0.003, 0.005, 0.007, 0.010, + 0.015, 0.023, 0.036, 0.061, 0.106, 0.174, 0.250, 0.321, + 0.382, 0.434, 0.477, 0.513, 0.543, 0.568, 0.589, 0.605, + 0.617, 0.627, 0.634, 0.639, 0.641, 0.642, 0.641, 0.639, + 0.635, 0.630, 0.625, 0.618, 0.611, 0.603, 0.595, 0.586, + 0.576, 0.567, 0.557, 0.547, 0.537, 0.527, 0.516, 0.506, + 0.496, 0.485, 0.475, 0.465, 0.455, 0.444, 0.435, 0.425, + 0.421, 0.302, 0.224, 0.172, 0.136, 0.117, 0.091, 0.076, + 0.065, 0.056, 0.049, 0.043, 0.038, 0.034, 0.030, 0.027, + 0.025, 0.022, 0.020, 0.019, 0.017, 0.016, 0.015, 0.014, + 0.013, 0.012, 0.011, 0.010, 0.010, 0.009, 0.009, 0.008, + 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, 0.006, 0.006 +}; + +const G4double G4XNNstarTable::sigmaNN1900[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, + 0.001, 0.001, 0.001, 0.002, 0.002, 0.003, 0.003, 0.005, + 0.006, 0.008, 0.010, 0.014, 0.019, 0.026, 0.037, 0.054, + 0.074, 0.094, 0.114, 0.131, 0.147, 0.161, 0.173, 0.184, + 0.193, 0.201, 0.208, 0.213, 0.218, 0.221, 0.224, 0.226, + 0.228, 0.229, 0.229, 0.229, 0.229, 0.228, 0.227, 0.225, + 0.223, 0.221, 0.219, 0.217, 0.214, 0.212, 0.209, 0.206, + 0.203, 0.200, 0.197, 0.194, 0.190, 0.187, 0.184, 0.181, + 0.180, 0.137, 0.106, 0.083, 0.067, 0.056, 0.047, 0.039, + 0.034, 0.029, 0.026, 0.023, 0.020, 0.018, 0.016, 0.015, + 0.013, 0.012, 0.011, 0.010, 0.010, 0.009, 0.008, 0.008, + 0.007, 0.007, 0.006, 0.006, 0.006, 0.005, 0.005, 0.005, + 0.004, 0.004, 0.004, 0.004, 0.004, 0.003, 0.003, 0.003 +}; + +const G4double G4XNNstarTable::sigmaNN1990[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.001, 0.001, 0.002, 0.003, 0.005, 0.009, + 0.017, 0.030, 0.051, 0.076, 0.102, 0.127, 0.149, 0.168, + 0.185, 0.199, 0.211, 0.221, 0.230, 0.237, 0.243, 0.247, + 0.251, 0.254, 0.256, 0.258, 0.258, 0.259, 0.258, 0.258, + 0.257, 0.255, 0.254, 0.252, 0.249, 0.247, 0.245, 0.242, + 0.239, 0.236, 0.233, 0.230, 0.226, 0.223, 0.220, 0.216, + 0.215, 0.167, 0.131, 0.104, 0.085, 0.070, 0.059, 0.050, + 0.043, 0.038, 0.033, 0.029, 0.026, 0.023, 0.021, 0.019, + 0.017, 0.016, 0.014, 0.013, 0.012, 0.011, 0.010, 0.010, + 0.009, 0.009, 0.008, 0.007, 0.007, 0.007, 0.006, 0.006, + 0.006, 0.005, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004 +}; + +const G4double G4XNNstarTable::sigmaNN2090[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.001, 0.001, 0.001, 0.002, 0.002, 0.003, 0.005, + 0.007, 0.011, 0.016, 0.024, 0.036, 0.053, 0.071, 0.089, + 0.106, 0.120, 0.133, 0.142, 0.151, 0.158, 0.164, 0.169, + 0.172, 0.175, 0.178, 0.179, 0.180, 0.180, 0.180, 0.180, + 0.179, 0.178, 0.176, 0.175, 0.173, 0.171, 0.169, 0.166, + 0.164, 0.162, 0.159, 0.156, 0.154, 0.151, 0.148, 0.145, + 0.144, 0.107, 0.081, 0.063, 0.050, 0.041, 0.034, 0.028, + 0.024, 0.021, 0.018, 0.016, 0.014, 0.013, 0.011, 0.010, + 0.009, 0.008, 0.008, 0.007, 0.006, 0.006, 0.006, 0.005, + 0.005, 0.004, 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, + 0.003, 0.003, 0.003, 0.003, 0.002, 0.002, 0.002, 0.002 +}; + +const G4double G4XNNstarTable::sigmaNN2190[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.001, + 0.001, 0.002, 0.003, 0.005, 0.009, 0.015, 0.024, 0.036, + 0.050, 0.064, 0.078, 0.090, 0.100, 0.110, 0.118, 0.125, + 0.131, 0.136, 0.140, 0.143, 0.146, 0.149, 0.150, 0.152, + 0.153, 0.153, 0.153, 0.153, 0.153, 0.152, 0.152, 0.151, + 0.150, 0.148, 0.147, 0.145, 0.144, 0.142, 0.140, 0.139, + 0.138, 0.110, 0.087, 0.069, 0.056, 0.047, 0.039, 0.033, + 0.029, 0.025, 0.022, 0.019, 0.017, 0.015, 0.014, 0.013, + 0.012, 0.010, 0.009, 0.009, 0.008, 0.007, 0.007, 0.006, + 0.006, 0.006, 0.005, 0.005, 0.005, 0.004, 0.004, 0.004, + 0.004, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003, 0.003 +}; + +const G4double G4XNNstarTable::sigmaNN2220[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.001, 0.001, 0.001, 0.003, 0.005, 0.008, 0.015, 0.026, + 0.041, 0.058, 0.074, 0.089, 0.101, 0.113, 0.122, 0.131, + 0.138, 0.144, 0.149, 0.153, 0.156, 0.159, 0.161, 0.163, + 0.164, 0.165, 0.165, 0.165, 0.165, 0.165, 0.164, 0.163, + 0.162, 0.161, 0.160, 0.158, 0.157, 0.155, 0.153, 0.151, + 0.150, 0.121, 0.096, 0.077, 0.062, 0.052, 0.043, 0.037, + 0.032, 0.028, 0.024, 0.022, 0.019, 0.017, 0.015, 0.014, + 0.013, 0.011, 0.011, 0.010, 0.009, 0.008, 0.008, 0.007, + 0.007, 0.006, 0.006, 0.005, 0.005, 0.005, 0.005, 0.004, + 0.004, 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, 0.003 +}; + +const G4double G4XNNstarTable::sigmaNN2250[121] = +{ + 0.0, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, + 0.000, 0.001, 0.001, 0.002, 0.003, 0.005, 0.009, 0.016, + 0.027, 0.043, 0.060, 0.076, 0.090, 0.103, 0.114, 0.123, + 0.131, 0.138, 0.144, 0.149, 0.153, 0.156, 0.159, 0.161, + 0.163, 0.164, 0.165, 0.165, 0.165, 0.165, 0.165, 0.164, + 0.163, 0.162, 0.161, 0.159, 0.158, 0.156, 0.154, 0.152, + 0.152, 0.122, 0.096, 0.077, 0.062, 0.051, 0.043, 0.037, + 0.031, 0.027, 0.024, 0.022, 0.019, 0.017, 0.015, 0.014, + 0.012, 0.011, 0.010, 0.009, 0.009, 0.008, 0.008, 0.007, + 0.007, 0.006, 0.006, 0.005, 0.005, 0.005, 0.004, 0.004, + 0.004, 0.004, 0.004, 0.003, 0.003, 0.003, 0.003, 0.003 +}; + + +G4XNNstarTable::G4XNNstarTable() +{ + xMap["N(1440)0"] = (G4double*) sigmaNN1440; + xMap["N(1440)+"] = (G4double*) sigmaNN1440; + + xMap["N(1520)0"] = (G4double*) sigmaNN1520; + xMap["N(1520)+"] = (G4double*) sigmaNN1520; + + xMap["N(1535)0"] = (G4double*) sigmaNN1535; + xMap["N(1535)+"] = (G4double*) sigmaNN1535; + + xMap["N(1650)0"] = (G4double*) sigmaNN1650; + xMap["N(1650)+"] = (G4double*) sigmaNN1650; + + xMap["N(1675)0"] = (G4double*) sigmaNN1675; + xMap["N(1675)+"] = (G4double*) sigmaNN1675; + + xMap["N(1680)0"] = (G4double*) sigmaNN1680; + xMap["N(1680)+"] = (G4double*) sigmaNN1680; + + xMap["N(1700)0"] = (G4double*) sigmaNN1700; + xMap["N(1700)+"] = (G4double*) sigmaNN1700; + + xMap["N(1710)0"] = (G4double*) sigmaNN1710; + xMap["N(1710)+"] = (G4double*) sigmaNN1710; + + xMap["N(1720)0"] = (G4double*) sigmaNN1720; + xMap["N(1720)+"] = (G4double*) sigmaNN1720; + + xMap["N(1900)0"] = (G4double*) sigmaNN1900; + xMap["N(1900)+"] = (G4double*) sigmaNN1900; + + xMap["N(1990)0"] = (G4double*) sigmaNN1990; + xMap["N(1990)+"] = (G4double*) sigmaNN1990; + + xMap["N(2090)0"] = (G4double*) sigmaNN2090; + xMap["N(2090)+"] = (G4double*) sigmaNN2090; + + xMap["N(2190)0"] = (G4double*) sigmaNN2190; + xMap["N(2190)+"] = (G4double*) sigmaNN2190; + + xMap["N(2220)0"] = (G4double*) sigmaNN2220; + xMap["N(2220)+"] = (G4double*) sigmaNN2220; + + xMap["N(2250)0"] = (G4double*) sigmaNN2250; + xMap["N(2250)+"] = (G4double*) sigmaNN2250; +} + + +G4XNNstarTable::~G4XNNstarTable() +{ } + + +const G4PhysicsVector* G4XNNstarTable::CrossSectionTable(const G4String& particleName) const +{ + // NOTE: the returned pointer is owned by the client + + if (xMap.find(particleName) != xMap.end()) + { + // Cross section table for the requested particle available in the Map + G4PhysicsFreeVector* sigmaVector = new G4PhysicsFreeVector(sizeNNstar); + G4std::map >::const_iterator iter; + G4double* sigmaPointer = 0; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4String str = (*iter).first; + if (str == particleName) + { + sigmaPointer = (*iter).second; + } + } + G4int i; + for (i=0; iPutValue(i,energy,value); + } + return sigmaVector; + } + else + // No cross section table for the requested particle is available in the Map + return 0; +} + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc new file mode 100644 index 0000000000..a5e6720b2e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc @@ -0,0 +1,278 @@ +// +// ******************************************************************** +// * 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: G4XPDGElastic.cc,v 1.5 2002/12/12 19:17:53 gunter Exp $ // +// ------------------------------------------------------------------- +// +// PDG Elastic cross section +// PDG fits, Phys.Rev. D50 (1994), 1335 +// +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XPDGElastic.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4DataVector.hh" + +#include "G4AntiProton.hh" +#include "G4AntiNeutron.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4KaonMinus.hh" +#include "G4KaonPlus.hh" + +const G4double G4XPDGElastic::_lowLimit = 5. * GeV; +const G4double G4XPDGElastic::_highLimit = DBL_MAX; + +// Parameters of the PDG Elastic cross-section fit (Rev. Particle Properties, 1998) +// Columns are: lower and higher fit range, X, Y1, Y2 +const G4int G4XPDGElastic::nPar = 7; +// p pi+ +const G4double G4XPDGElastic::pPiPlusPDGFit[7] = { 2., 200., 0., 11.4, -0.4, 0.079, 0. }; +// p pi- +const G4double G4XPDGElastic::pPiMinusPDGFit[7] = { 2., 360., 1.76, 11.2, -0.64, 0.043, 0. }; +// p K+ +const G4double G4XPDGElastic::pKPlusPDGFit[7] = { 2., 175., 5.0, 8.1, -1.8, 0.16, -1.3 }; +// p K- +const G4double G4XPDGElastic::pKMinusPDGFit[7] = { 2., 175., 7.3, 0., 0., 0.29, -2.40 }; +// p p +const G4double G4XPDGElastic::ppPDGFit[7] = { 2., 2100., 11.9, 26.9, -1.21, 0.169, -1.85 }; +// p pbar +const G4double G4XPDGElastic::ppbarPDGFit[7] = { 5., 1730000., 10.2, 52.7, -1.16, 0.125, -1.28 }; +// n pbar +const G4double G4XPDGElastic::npbarPDGFit[7] = { 1.1, 5.55, 36.5, 0., 0., 0., -11.9 }; + + +G4XPDGElastic::G4XPDGElastic() +{ + G4String proton = G4Proton::ProtonDefinition()->GetParticleName(); + G4String neutron = G4Neutron::NeutronDefinition()->GetParticleName(); + G4String piPlus = G4PionPlus::PionPlusDefinition()->GetParticleName(); + G4String piMinus = G4PionMinus::PionMinusDefinition()->GetParticleName(); + G4String KPlus = G4KaonPlus::KaonPlusDefinition()->GetParticleName(); + G4String KMinus = G4KaonMinus::KaonMinusDefinition()->GetParticleName(); + G4String antiproton = G4AntiProton::AntiProtonDefinition()->GetParticleName(); + + G4std::pair pp(proton,proton); + G4std::pair pn(proton,neutron); + G4std::pair piPlusp(piPlus,proton); + G4std::pair piMinusp(piMinus,proton); + G4std::pair KPlusp(KPlus,proton); + G4std::pair KMinusp(KMinus,proton); + G4std::pair nn(neutron,neutron); + G4std::pair ppbar(proton,antiproton); + G4std::pair npbar(antiproton,neutron); + + G4std::vector ppData; + G4std::vector pPiPlusData; + G4std::vector pPiMinusData; + G4std::vector pKPlusData; + G4std::vector pKMinusData; + G4std::vector ppbarData; + G4std::vector npbarData; + + G4int i; + for (i=0; i<2; i++) + { + ppData.push_back(ppPDGFit[i] * GeV); + pPiPlusData.push_back(pPiPlusPDGFit[i] * GeV); + pPiMinusData.push_back(pPiMinusPDGFit[i] * GeV); + pKPlusData.push_back(pKPlusPDGFit[i] * GeV); + pKMinusData.push_back(pKMinusPDGFit[i] * GeV); + ppbarData.push_back(ppbarPDGFit[i] * GeV); + npbarData.push_back(npbarPDGFit[i] * GeV); + } + + for (i=2; iGetParticleName(); + G4String name2 = def2->GetParticleName(); + + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4double m1 = def1->GetPDGMass(); + G4double m2 = def2->GetPDGMass(); + G4double m = G4std::max(m1,m2); + // if (m1 > m) m = m1; + + G4double pLab = 0.; + + if (m > 0. && sqrtS > (m1 + m2)) + { + pLab = sqrt( (sqrtS*sqrtS - (m1+m2)*(m1+m2) ) * (sqrtS*sqrtS - (m1-m2)*(m1-m2)) ) / (2*m); + + // The PDG fit formula requires p in GeV/c + + G4double enc1 = def1->GetPDGEncoding(); + G4double enc2 = def2->GetPDGEncoding(); + G4double coeff = -1.; + if ( (enc1 < 0 && enc2 >0) || (enc2 < 0 && enc1 >0) ) coeff = 1.; + + // Order the pair: first is the lower mass particle, second is the higher mass one + G4std::pair trkPair(def1->GetParticleName(),def2->GetParticleName()); + if (def1->GetPDGMass() > def2->GetPDGMass()) + trkPair = G4std::pair(def2->GetParticleName(),def1->GetParticleName()); + + G4std::vector data; + G4double pMinFit = 0.; + G4double pMaxFit = 0.; + G4double aFit = 0.; + G4double bFit = 0.; + G4double cFit = 0.; + G4double dFit = 0.; + G4double nFit = 0.; + + // Debug +// G4cout << "Map has " << xMap.size() << " elements" << G4endl; + // Debug end + + if (xMap.find(trkPair) != xMap.end()) + { + PairDoubleMap::const_iterator iter; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4std::pair thePair = (*iter).first; + if (thePair == trkPair) + { + data = (*iter).second; + pMinFit = data[0]; + pMaxFit = data[1]; + aFit = data[2]; + bFit = data[3]; + cFit = data[5]; + dFit = data[6]; + nFit = data[4]; + + if (pLab < pMinFit) return 0.0; + if (pLab > pMaxFit ) + G4cout << "WARNING! G4XPDGElastic::PDGElastic " + << trk1.GetDefinition()->GetParticleName() << "-" + << trk2.GetDefinition()->GetParticleName() + << " elastic cross section: momentum " + << pLab / GeV << " GeV outside valid fit range " + << pMinFit /GeV << "-" << pMaxFit / GeV + << G4endl; + + pLab /= GeV; + if (pLab > 0.) + { + G4double logP = log(pLab); + sigma = aFit + bFit * pow(pLab, nFit) + cFit * logP*logP + dFit * logP; + sigma = sigma * millibarn; + } + } + } + } + else + { + G4cout << "G4XPDGElastic::CrossSection - Data not found in Map" << G4endl; + } + } + + if (sigma < 0.) + { + G4cout << "WARNING! G4XPDGElastic::PDGElastic " + << name1 << "-" << name2 + << " elastic cross section: momentum " + << pLab << " GeV, negative cross section " + << sigma / millibarn << " mb set to 0" << G4endl; + sigma = 0.; + } + + return sigma; +} + + +G4String G4XPDGElastic::Name() const +{ + G4String name = "PDGElastic "; + return name; +} + + +G4bool G4XPDGElastic::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XPDGTotal.cc b/source/processes/hadronic/models/generator/scattering/src/G4XPDGTotal.cc new file mode 100644 index 0000000000..1989a9e74d --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XPDGTotal.cc @@ -0,0 +1,259 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// PDG fits, 1998 Review of Particle Properties, European Phys. J. 3(1998), 1 +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4ios.hh" +#include "G4XPDGTotal.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4DataVector.hh" +#include "G4AntiProton.hh" +#include "G4AntiNeutron.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4Gamma.hh" +#include "G4KaonMinus.hh" +#include "G4KaonPlus.hh" + +const G4double G4XPDGTotal::_lowLimit = 2.99999 * GeV; +const G4double G4XPDGTotal::_highLimit = DBL_MAX; + +// Parameters of the PDG total cross-section fit (Rev. Particle Properties, 1998) +// Columns are: lower and higher fit range, X, Y1, Y2 +const G4int G4XPDGTotal::nFit = 5; +// p p +const G4double G4XPDGTotal::ppPDGFit[5] = { 3., 40000., 18.256, 60.19, 33.43 }; +// n p +const G4double G4XPDGTotal::npPDGFit[5] = { 3., 40., 18.256, 61.14, 29.80 }; +// pi p +const G4double G4XPDGTotal::pipPDGFit[5] = { 3., 40., 11.568, 27.55, 5.62 }; +// K p +const G4double G4XPDGTotal::KpPDGFit[5] = { 3., 40., 10.376, 15.57, 13.19 }; +// K n +const G4double G4XPDGTotal::KnPDGFit[5] = { 3., 40., 10.376, 14.29, 7.38 }; +// gamma p +const G4double G4XPDGTotal::gammapPDGFit[5] = { 3., 300., 0.0577, 0.1171, 0. }; +//gamma gamma +const G4double G4XPDGTotal::gammagammaPDGFit[5] = { 3., 300., 0.000156, 0.00032, 0. }; + + +G4XPDGTotal::G4XPDGTotal() +{ + G4std::pair pp(G4Proton::ProtonDefinition()->GetParticleName(), + G4Proton::ProtonDefinition()->GetParticleName()); + G4std::pair pn(G4Proton::ProtonDefinition()->GetParticleName(), + G4Neutron::NeutronDefinition()->GetParticleName()); + G4std::pair piPlusp(G4PionPlus::PionPlusDefinition()->GetParticleName(), + G4Proton::ProtonDefinition()->GetParticleName()); + G4std::pair piMinusp(G4PionMinus::PionMinusDefinition()->GetParticleName(), + G4Proton::ProtonDefinition()->GetParticleName()); + G4std::pair KPlusp(G4KaonPlus::KaonPlusDefinition()->GetParticleName(), + G4Proton::ProtonDefinition()->GetParticleName()); + G4std::pair KPlusn(G4KaonPlus::KaonPlusDefinition()->GetParticleName(), + G4Neutron::NeutronDefinition()->GetParticleName()); + G4std::pair KMinusp(G4KaonMinus::KaonMinusDefinition()->GetParticleName(), + G4Proton::ProtonDefinition()->GetParticleName()); + G4std::pair KMinusn(G4KaonMinus::KaonMinusDefinition()->GetParticleName(), + G4Neutron::NeutronDefinition()->GetParticleName()); + G4std::pair gp(G4Gamma::GammaDefinition()->GetParticleName(), + G4Proton::ProtonDefinition()->GetParticleName()); + G4std::pair gg(G4Gamma::GammaDefinition()->GetParticleName(), + G4Gamma::GammaDefinition()->GetParticleName()); + G4std::pair nn(G4Neutron::NeutronDefinition()->GetParticleName(), + G4Neutron::NeutronDefinition()->GetParticleName()); + + G4std::vector nnData; + G4std::vector ppData; + G4std::vector pnData; + G4std::vector pipData; + G4std::vector KpData; + G4std::vector KnData; + G4std::vector gpData; + G4std::vector ggData; + + G4int i; + for (i=0; i<2; i++) + { + nnData.push_back(ppPDGFit[i] * GeV); + ppData.push_back(ppPDGFit[i] * GeV); + pnData.push_back(npPDGFit[i] * GeV); + pipData.push_back(pipPDGFit[i] * GeV); + KpData.push_back(KpPDGFit[i] * GeV); + KnData.push_back(KnPDGFit[i] * GeV); + gpData.push_back(gammapPDGFit[i] * GeV); + ggData.push_back(gammagammaPDGFit[i] * GeV); + } + for (i=2; iGetPDGEncoding(); + G4double enc2 = def2->GetPDGEncoding(); + G4double coeff = -1.; + if ( (enc1 < 0 && enc2 >0) || (enc2 < 0 && enc1 >0) ) coeff = 1.; + + // Order the pair: first is the lower mass particle, second is the higher mass one + G4std::pair trkPair(def1->GetParticleName(),def2->GetParticleName()); + + if (def1->GetPDGMass() > def2->GetPDGMass()) + trkPair = G4std::pair(def2->GetParticleName(),def1->GetParticleName()); + + G4std::vector data; + + if (xMap.find(trkPair) != xMap.end()) + { + + PairDoubleMap::const_iterator iter; + for (iter = xMap.begin(); iter != xMap.end(); ++iter) + { + G4std::pair thePair = (*iter).first; + if (thePair == trkPair) + { + data = (*iter).second; + + G4double eMinFit = data[0]; + G4double eMaxFit = data[1]; + G4double xFit = data[2]; + G4double y1Fit = data[3]; + G4double y2Fit = data[4]; + + // Total Cross-section fit, 1998 Review of Particle Properties, European Phys. J. 3(1998), 1 + + // Parameters from the PDG fit + const G4double epsilon = 0.095; + const G4double eta1 = -0.34; + const G4double eta2 = -0.55; + + if (sqrtS < eMinFit || sqrtS > eMaxFit) + G4cout << "WARNING! G4XPDGTotal::PDGTotal extrapolating cross section at " + << sqrtS / GeV + << " GeV outside the PDG fit range " + << eMinFit / GeV << " - " << eMaxFit / GeV << " GeV " << G4endl; + + G4double s = (sqrtS * sqrtS) / (GeV*GeV); + + sigma = ( (xFit * pow(s,epsilon)) + + (y1Fit * pow(s,eta1)) + + (coeff * y2Fit * pow(s,eta2)) ) * millibarn; + + if (sigma < 0.) + { + G4String name1 = def1->GetParticleName(); + G4String name2 = def2->GetParticleName(); + G4cout << "WARNING! G4XPDGTotal::PDGTotal " + << name1 << "-" << name2 + << " total cross section: Ecm " + << sqrtS / GeV << " GeV, negative cross section " + << sigma / millibarn << " mb set to 0" << G4endl; + sigma = 0.; + } + } + } + } + return sigma; +} + + +G4String G4XPDGTotal::Name() const +{ + G4String name = "PDGTotal "; + return name; +} + + +G4bool G4XPDGTotal::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} + + +G4double G4XPDGTotal::PDGTotal(G4double coeff,G4double sqrtS) const +{ + return 0.; +} + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc b/source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc new file mode 100644 index 0000000000..b876a24a71 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +#include "globals.hh" +#include "G4ios.hh" +#include "G4KineticTrack.hh" +#include "G4XResonance.hh" +#include "Randomize.hh" +#include "G4Proton.hh" + +G4XResonance::G4XResonance(const G4ParticleDefinition* in1, + const G4ParticleDefinition* in2, + G4int iIsospinOut1, G4double spinOut1, G4double massOut1, + G4int iIsospinOut2, G4double spinOut2, G4double massOut2, + G4String subType1, G4String subType2, + const G4VXResonanceTable& sigmaTable) : + isoOut1(iIsospinOut1), iSpinOut1(spinOut1), mOut1(massOut1), + isoOut2(iIsospinOut2), iSpinOut2(spinOut2), mOut2(massOut2) + +{ + table = sigmaTable.CrossSectionTable(); + // Check if there is a valid cross section table for this channel + if (table == 0) + G4Exception("G4XResonance::G4XResonance - no cross section table available"); + + name = in1->GetParticleName() + in2->GetParticleName() + " -> " + subType1 + subType2; +} + + +G4XResonance::~G4XResonance() +{ + delete table; + table = 0; +} + + +G4bool G4XResonance::operator==(const G4XResonance &right) const +{ + return (this == (G4XResonance *) &right); +} + + +G4bool G4XResonance::operator!=(const G4XResonance &right) const +{ + return (this != (G4XResonance *) &right); +} + + +G4String G4XResonance::Name() const +{ + return name; +} + +G4double G4XResonance::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4bool dummy = false; + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + + // pp -> trk1 + trk2 cross section + G4double sigma = table->GetValue(sqrtS,dummy); + + // Isospin correction + // from G4VXResonance; +// G4cout << "SigmaCheck "<IsShortLived() || trk2.GetDefinition()->IsShortLived()) + { + sigma *= DetailedBalance(trk1,trk2, isoOut1,isoOut2, iSpinOut1,iSpinOut2, mOut1,mOut2); + } + + return sigma; + +} + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XnpElastic.cc b/source/processes/hadronic/models/generator/scattering/src/G4XnpElastic.cc new file mode 100644 index 0000000000..4d67c8e194 --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XnpElastic.cc @@ -0,0 +1,101 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4XnpElastic +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4XnpElastic.hh" +#include "G4XnpElasticLowE.hh" +#include "G4XPDGElastic.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4CrossSectionVector.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + +G4XnpElastic::G4XnpElastic() +{ + components = new G4CrossSectionVector; + + G4VCrossSectionSource* xnpElasticLowE = new G4XnpElasticLowE; + components->push_back(xnpElasticLowE); + +// G4ParticleDefinition* proton = G4Proton::ProtonDefinition(); +// G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition(); + G4VCrossSectionSource* xnpElasticHighE = new G4XPDGElastic; + components->push_back(xnpElasticHighE); +} + + +G4XnpElastic::~G4XnpElastic() +{ + if (components != 0) + { + G4int nComponents = this->GetComponents()->size(); + G4int i; + for (i=0; i _eMax) + G4Exception("G4XnpElasticLowE::G4XnpElasticLowE - High energy limit not valid"); + + _sigma = new G4PhysicsLnVector(_eMin,_eMax,_tableSize); + G4int i; + for (i=0; i<_tableSize; i++) + { + G4double value = _sigmaTable[i] * millibarn; + _sigma->PutValue(i,value); + } +} + + +G4XnpElasticLowE::~G4XnpElasticLowE() +{ + delete _sigma; +} + + +G4bool G4XnpElasticLowE::operator==(const G4XnpElasticLowE &right) const +{ + return (this == (G4XnpElasticLowE *) &right); +} + + +G4bool G4XnpElasticLowE::operator!=(const G4XnpElasticLowE &right) const +{ + return (this != (G4XnpElasticLowE *) &right); +} + + +G4double G4XnpElasticLowE::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sigma = 0.; + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4bool dummy = false; + + G4ParticleDefinition* proton = G4Proton::ProtonDefinition(); + G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition* def1 = trk1.GetDefinition(); + G4ParticleDefinition* def2 = trk2.GetDefinition(); + if ( (def1 == proton && def2 == neutron) || + (def1 == neutron && def2 == proton) ) + { + if (sqrtS >= _eMin && sqrtS <= _eMax) + { + sigma = _sigma->GetValue(sqrtS,dummy); + } else if ( sqrtS < _eMin ) + { + sigma = _sigma->GetValue(_eMin,dummy); + } + } + + return sigma; +} + +void G4XnpElasticLowE::Print() const +{ + // Dump the cross-section table + G4cout << Name() << "Cross-section table: " << G4endl; + G4bool dummy = false; + G4int i; + + for (i=0; i<_tableSize; i++) + { + G4double e = _sigma->GetLowEdgeEnergy(i) / GeV; + G4double sigma = _sigma->GetValue(e,dummy) / millibarn; + G4cout << i << ") e = " << e << " GeV ---- Cross section = " << sigma << " mb " << G4endl; + } + + G4VCrossSectionSource::Print(); +} + + +G4String G4XnpElasticLowE::Name() const +{ + G4String name("npElasticLowE"); + return name; +} + + +G4bool G4XnpElasticLowE::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XnpTotal.cc b/source/processes/hadronic/models/generator/scattering/src/G4XnpTotal.cc new file mode 100644 index 0000000000..fe71797b3f --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XnpTotal.cc @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// GEANT4 Class file +// +// For information related to this code contact: +// +// File name: G4XnpTotal +// +// Author: +// +// Creation date: 15 April 1999 +// +// Modifications: +// +// ------------------------------------------------------------------- + +#include "globals.hh" +#include "G4XnpTotal.hh" +#include "G4XnpTotalLowE.hh" +#include "G4XPDGTotal.hh" +#include "G4VCrossSectionSource.hh" +#include "G4KineticTrack.hh" +#include "G4ParticleDefinition.hh" +#include "G4CrossSectionVector.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + +G4XnpTotal::G4XnpTotal() +{ + components = new G4CrossSectionVector; + + G4VCrossSectionSource* xnpTotalLowE = new G4XnpTotalLowE; + components->push_back(xnpTotalLowE); + + G4VCrossSectionSource* xnpTotalHighE = new G4XPDGTotal; + components->push_back(xnpTotalHighE); +} + + +G4XnpTotal::~G4XnpTotal() +{ + if (components != 0) + { + G4int nComponents = this->GetComponents()->size(); + G4int i; + for (i=0; i _eMax) + G4Exception("G4XnpTotalLowE::G4XnpTotalLowE - High energy limit not valid"); + + _sigma = new G4PhysicsLnVector(_eMin,_eMax,_tableSize); + G4int i; + for (i=0; i<_tableSize; i++) + { + G4double value = _sigmaTable[i] * millibarn; + _sigma->PutValue(i,value); + } +} + + +G4XnpTotalLowE::~G4XnpTotalLowE() +{ + delete _sigma; +} + + +G4bool G4XnpTotalLowE::operator==(const G4XnpTotalLowE &right) const +{ + return (this == (G4XnpTotalLowE *) &right); +} + + +G4bool G4XnpTotalLowE::operator!=(const G4XnpTotalLowE &right) const +{ + return (this != (G4XnpTotalLowE *) &right); +} + + +G4double G4XnpTotalLowE::CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const +{ + G4double sigma = 0.; + G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + G4bool dummy = false; + + G4ParticleDefinition* proton = G4Proton::ProtonDefinition(); + G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition(); + + G4ParticleDefinition* def1 = trk1.GetDefinition(); + G4ParticleDefinition* def2 = trk2.GetDefinition(); + if ( (def1 == proton && def2 == neutron) || + (def1 == neutron && def2 == proton) ) + { + if (sqrtS >= _eMin && sqrtS <= _eMax) + { + sigma = _sigma->GetValue(sqrtS,dummy); + } else if ( sqrtS < _eMin ) + { + sigma = _sigma->GetValue(_eMin,dummy); + } + } + + return sigma; +} + +void G4XnpTotalLowE::Print() const +{ + // Dump the cross-section table + + G4cout << Name() << "Cross-section table: " << G4endl; + G4bool dummy = false; + G4int i; + + for (i=0; i<_tableSize; i++) + { + G4double e = _sigma->GetLowEdgeEnergy(i) / GeV; + G4double sigma = _sigma->GetValue(e,dummy) / millibarn; + G4cout << i << ") e = " << e << " GeV ---- Cross section = " << sigma << " mb " << G4endl; + } + + G4VCrossSectionSource::Print(); +} + + +G4String G4XnpTotalLowE::Name() const +{ + G4String name("NNTotalLowE"); + return name; +} + + +G4bool G4XnpTotalLowE::IsValid(G4double e) const +{ + G4bool answer = InLimits(e,_lowLimit,_highLimit); + + return answer; +} + + diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc b/source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc new file mode 100644 index 0000000000..285e2d176e --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4XpimNTotal.hh" +#include + +G4XpimNTotal:: + G4XpimNTotal() + { + G4Pair it; + it.first=1105.46 ;it.second= 8.8; theLowEData.push_back(it); + it.first=1139.41 ;it.second= 13.6; theLowEData.push_back(it); + it.first=1165.12 ;it.second= 26.0; theLowEData.push_back(it); + it.first=1198.8 ;it.second= 60.; theLowEData.push_back(it); + it.first=1212.51 ;it.second= 70.; theLowEData.push_back(it); + it.first=1222.84 ;it.second= 72.; theLowEData.push_back(it); + it.first=1233.18 ;it.second= 68.; theLowEData.push_back(it); + it.first=1240.08 ;it.second= 65.; theLowEData.push_back(it); + it.first=1301.86 ;it.second= 30.; theLowEData.push_back(it); + it.first=1335.65 ;it.second= 26.; theLowEData.push_back(it); + it.first=1368.93 ;it.second= 27.; theLowEData.push_back(it); + it.first=1433.81 ;it.second= 30.; theLowEData.push_back(it); + it.first=1496.42 ;it.second= 45.; theLowEData.push_back(it); + it.first=1508.67 ;it.second= 47.; theLowEData.push_back(it); + it.first=1520.84 ;it.second= 45.; theLowEData.push_back(it); + it.first=1568.67 ;it.second= 35.; theLowEData.push_back(it); + it.first=1603.69 ;it.second= 37.; theLowEData.push_back(it); + it.first=1660.54 ;it.second= 58.; theLowEData.push_back(it); + it.first=1674.47 ;it.second= 59.; theLowEData.push_back(it); + it.first=1688.29 ;it.second= 58.; theLowEData.push_back(it); + it.first=1779.57 ;it.second= 36.; theLowEData.push_back(it); + it.first=1881.49 ;it.second= 36.8; theLowEData.push_back(it); + it.first=1978.31 ;it.second= 34.5; theLowEData.push_back(it); + it.first=2038.82 ;it.second= 34.5; theLowEData.push_back(it); + it.first=2115.39 ;it.second= 36.; theLowEData.push_back(it); + it.first=2159.18 ;it.second= 36.3; theLowEData.push_back(it); + it.first=2244.22 ;it.second= 36.; theLowEData.push_back(it); + it.first=2424.78 ;it.second= 33.; theLowEData.push_back(it); + it.first=2664.2 ;it.second= 32.; theLowEData.push_back(it); + it.first=3487.43 ;it.second= 28.; theLowEData.push_back(it); + it.first=4434.76 ;it.second= 26.7; theLowEData.push_back(it); + } + +G4double G4XpimNTotal:: + CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const + { + G4double sqrts = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + if(sqrts > theLowEData.back().first/MeV) return thePDGData.CrossSection(trk1, trk2); + G4double result = 0; + size_t i(0), it(0); + if(sqrtssqrts) break; + it = i; + } + G4double x1 = log(theLowEData[it].first); + G4double x2 = log(theLowEData[it+1].first); + G4double y1 = log(theLowEData[it].second); + G4double y2 = log(theLowEData[it+1].second); + G4double x = log(sqrts); + G4double y = y1+(x-x1)*(y2-y1)/(x2-x1); + result = exp(y); + return result*millibarn; + } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc b/source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc new file mode 100644 index 0000000000..b42acf45cb --- /dev/null +++ b/source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** + +#include "G4XpipNTotal.hh" +#include + +G4XpipNTotal:: + G4XpipNTotal() + { + G4Pair it; + it.first=1105.46; it.second= 6.4; theLowEData.push_back(it); + it.first=1133.28; it.second= 18.0; theLowEData.push_back(it); + it.first=1165.12; it.second= 66.0; theLowEData.push_back(it); + it.first=1198.8; it.second= 160.; theLowEData.push_back(it); + it.first=1212.51; it.second= 199.; theLowEData.push_back(it); + it.first=1233.18; it.second= 195.; theLowEData.push_back(it); + it.first=1301.86; it.second= 73.8; theLowEData.push_back(it); + it.first=1368.93; it.second= 35.0; theLowEData.push_back(it); + it.first=1433.81; it.second= 22.0; theLowEData.push_back(it); + it.first=1496.42; it.second= 15.0; theLowEData.push_back(it); + it.first=1556.84; it.second= 15.2; theLowEData.push_back(it); + it.first=1615.21; it.second= 19.4; theLowEData.push_back(it); + it.first=1671.7; it.second= 25.; theLowEData.push_back(it); + it.first=1726.44; it.second= 26.; theLowEData.push_back(it); + it.first=1779.57; it.second= 30.; theLowEData.push_back(it); + it.first=1881.49; it.second= 40.; theLowEData.push_back(it); + it.first=1930.49; it.second= 40.; theLowEData.push_back(it); + it.first=2070.69; it.second= 30.; theLowEData.push_back(it); + it.first=2202.11; it.second= 29.; theLowEData.push_back(it); + it.first=2326.19; it.second= 30.7; theLowEData.push_back(it); + it.first=2405.38; it.second= 30.7; theLowEData.push_back(it); + it.first=2733.67; it.second= 28.3; theLowEData.push_back(it); + it.first=3207.21; it.second= 26.5; theLowEData.push_back(it); + it.first=4434.76; it.second= 25.0; theLowEData.push_back(it); + } + +G4double G4XpipNTotal:: + CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const + { + G4double sqrts = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); + if(sqrts > theLowEData.back().first/MeV) return thePDGData.CrossSection(trk1, trk2); + G4double result = 0; + size_t i(0), it(0); + if(sqrtssqrts) break; + it = i; + } + G4double x1 = log(theLowEData[it].first); + G4double x2 = log(theLowEData[it+1].first); + G4double y1 = log(theLowEData[it].second); + G4double y2 = log(theLowEData[it+1].second); + G4double x = log(sqrts); + G4double y = y1+(x-x1)*(y2-y1)/(x2-x1); + result = exp(y); + return result*millibarn; + } diff --git a/source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh b/source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh index 2349a97941..7435c75496 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DiffractiveExcitation.hh,v 1.6 2001/08/01 17:08:57 hpw Exp $ +// $Id: G4DiffractiveExcitation.hh,v 1.7 2002/12/12 19:17:54 gunter Exp $ #ifndef G4DiffractiveExcitation_h #define G4DiffractiveExcitation_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh b/source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh index 7cef96e266..2d4ccce7b0 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EventGenerator.hh,v 1.4 2001/08/01 17:08:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EventGenerator.hh,v 1.5 2002/12/12 19:17:54 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4EventGenerator_h #define G4EventGenerator_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh b/source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh index 3d71d7f7d2..743beafdc8 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InteractionCode.hh,v 1.4 2001/08/01 17:08:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InteractionCode.hh,v 1.5 2002/12/12 19:17:54 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4InteractionCode_h #define G4InteractionCode_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh b/source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh index a0085c4c70..86e8e31efe 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InteractionContent.hh,v 1.6 2002/06/09 16:22:37 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InteractionContent.hh,v 1.7 2002/12/12 19:17:54 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4InteractionContent_h diff --git a/source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh b/source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh index b2ab60cfc7..6fd65f581a 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -23,8 +23,8 @@ #ifndef G4PomeronCrossSection_h #define G4PomeronCrossSection_h 1 // -// $Id: G4PomeronCrossSection.hh,v 1.6 2001/11/13 14:56:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PomeronCrossSection.hh,v 1.7 2002/12/12 19:17:54 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Proton.hh" #include "G4Neutron.hh" diff --git a/source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh b/source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh index af712bedac..482b54f96e 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4SingleDiffractiveExcitation.hh,v 1.4 2001/08/01 17:08:58 hpw Exp $ +// $Id: G4SingleDiffractiveExcitation.hh,v 1.5 2002/12/12 19:17:54 gunter Exp $ #ifndef G4SingleDiffractiveExcitation_h #define G4SingleDiffractiveExcitation_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh b/source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh index 4462601ace..6ddb18dcfd 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StringModel.hh,v 1.5 2001/08/01 17:08:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StringModel.hh,v 1.6 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4StringModel_h #define G4StringModel_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh b/source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh index c52d3f19d7..3f0db15245 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VParticipants.hh,v 1.4 2001/08/01 17:08:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VParticipants.hh,v 1.5 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VParticipants_h diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh b/source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh index f309f6ca99..859e270f99 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPartonStringModel.hh,v 1.5 2001/08/01 17:08:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPartonStringModel.hh,v 1.6 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VPartonStringModel_h #define G4VPartonStringModel_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh b/source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh index 3d477e13ed..448661277c 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VSplitableHadron.hh,v 1.8 2001/11/29 14:22:49 stesting Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSplitableHadron.hh,v 1.9 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VSplitableHadron_h diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh b/source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh index 351cfff27b..1c742b5110 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VStringFragmentation.hh,v 1.6 2001/10/02 14:09:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VStringFragmentation.hh,v 1.7 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VStringFragmentation_h #define G4VStringFragmentation_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh b/source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh index 6777aabe75..a574f0b1c2 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh +++ b/source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VertexCode.hh,v 1.4 2001/08/01 17:09:00 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VertexCode.hh,v 1.5 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VertexCode_h #define G4VertexCode_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc b/source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc index 94dc2958e7..c70d42e093 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DiffractiveExcitation.cc,v 1.11 2002/06/13 10:43:02 jwellisc Exp $ +// $Id: G4DiffractiveExcitation.cc,v 1.12 2002/12/12 19:17:55 gunter Exp $ // ------------------------------------------------------------ // GEANT 4 class implemetation file // diff --git a/source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc b/source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc index f524874eed..02b70954dc 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4EventGenerator.cc,v 1.4 2001/08/01 17:09:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4EventGenerator.cc,v 1.5 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4EventGenerator #include "G4EventGenerator.hh" diff --git a/source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc b/source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc index c44643a7f1..db1d3d037d 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InteractionContent.cc,v 1.5 2001/08/01 17:09:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InteractionContent.cc,v 1.6 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc b/source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc index 209958b501..35c7a70c6e 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PomeronCrossSection.cc,v 1.7 2001/11/13 14:58:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PomeronCrossSection.cc,v 1.8 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4PomeronCrossSection.hh" diff --git a/source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc b/source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc index 632bd4dc18..543d684b75 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4SingleDiffractiveExcitation.cc,v 1.9 2002/06/13 18:03:04 jwellisc Exp $ +// $Id: G4SingleDiffractiveExcitation.cc,v 1.10 2002/12/12 19:17:55 gunter Exp $ // ------------------------------------------------------------ // GEANT 4 class implemetation file // diff --git a/source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc b/source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc index ada2dc7771..0d224677b8 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StringModel.cc,v 1.4 2001/08/01 17:09:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StringModel.cc,v 1.5 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4StringModel #include "G4StringModel.hh" diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc b/source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc index 78d0b3bc17..5a00b6a14b 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VParticipants.cc,v 1.4 2001/08/01 17:09:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VParticipants.cc,v 1.5 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc b/source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc index 45777da111..11508d52f4 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VPartonStringModel.cc,v 1.11 2002/06/13 09:02:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VPartonStringModel.cc,v 1.12 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //// ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc b/source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc index 7109c520ca..5840feedbe 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VSplitableHadron.cc,v 1.6 2001/10/05 16:17:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSplitableHadron.cc,v 1.7 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc b/source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc index 0495699243..0b957e9118 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc +++ b/source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VStringFragmentation.cc,v 1.4 2001/08/01 17:09:05 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VStringFragmentation.cc,v 1.5 2002/12/12 19:17:55 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VStringFragmentation #include "G4VStringFragmentation.hh" diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh index 6257ad19de..637fa084ca 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ExcitedStringDecay.hh,v 1.9 2001/10/04 20:00:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ExcitedStringDecay.hh,v 1.10 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4ExcitedStringDecay_h #define G4ExcitedStringDecay_h 1 diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh index a0d7d59843..68c4b8ef5f 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh @@ -22,7 +22,7 @@ // // // $Id: G4FragmentingString.hh,v 1.1 2001/10/09 10:38:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4FragmentingString_h diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh index b3382b5ff4..aa37fa82ec 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4HadronBuilder.hh,v 1.2 2001/10/30 08:33:26 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh index 397b72fe37..4fa7d49039 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LundStringFragmentation.hh,v 1.5 2001/10/04 20:00:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ Maxim Komogorov +// $Id: G4LundStringFragmentation.hh,v 1.6 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ Maxim Komogorov // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh index 317403f4c5..c2404974ce 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QGSMFragmentation.hh,v 1.5 2001/08/01 17:09:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QGSMFragmentation.hh,v 1.6 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh index ea97a4081f..fb75ededb1 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VKinkyStringDecay.hh,v 1.5 2001/10/05 16:17:36 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VKinkyStringDecay.hh,v 1.6 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh b/source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh index 56f7a22b04..e59c1b2958 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh +++ b/source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VLongitudinalStringDecay.hh,v 1.12 2001/10/10 08:23:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VLongitudinalStringDecay.hh,v 1.13 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc index e751b439eb..ac774f8a3d 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc index 01f4043aab..0698cadf9a 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc @@ -21,9 +21,6 @@ // ******************************************************************** // // -// $Id: G4FragmentingString.cc,v 1.4 2002/06/13 09:04:12 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// // ------------------------------------------------------------ @@ -98,8 +95,8 @@ G4FragmentingString::G4FragmentingString(const G4FragmentingString &old, Pplus = old.Pplus - (momentum->e() + momentum->pz()); Pminus = old.Pminus - (momentum->e() - momentum->pz()); - G4double Eold=0.5 * (old.Pplus + old.Pminus); - G4double Enew=0.5 * (Pplus + Pminus); + //G4double Eold=0.5 * (old.Pplus + old.Pminus); + //G4double Enew=0.5 * (Pplus + Pminus); } diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc index 8072f175b2..8ba7a4c087 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4HadronBuilder.cc,v 1.3 2001/10/30 08:33:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc index c324c64812..c604ae27b0 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LundStringFragmentation.cc,v 1.4 2001/08/01 17:09:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LundStringFragmentation.cc,v 1.5 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc index cf810bcaae..f1feaac95b 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4QGSMFragmentation.cc,v 1.7 2002/06/13 09:04:12 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4QGSMFragmentation.cc,v 1.8 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc index a56e60e2c1..94f90908b4 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VKinkyStringDecay.cc,v 1.7 2001/10/09 10:50:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VKinkyStringDecay.cc,v 1.8 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc b/source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc index f03d4b0db6..e1c352cb5f 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc +++ b/source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4VLongitudinalStringDecay.cc,v 1.24 2002/06/18 06:44:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/util/GNUmakefile b/source/processes/hadronic/models/generator/util/GNUmakefile index 97742f9218..735c79a115 100644 --- a/source/processes/hadronic/models/generator/util/GNUmakefile +++ b/source/processes/hadronic/models/generator/util/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:12:19 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2002/11/12 02:08:15 larazb Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -13,6 +13,10 @@ include $(G4INSTALL)/config/architecture.gmk G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPNumerics/include \ diff --git a/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh b/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh index 37b4b3c7b7..cde9e797d4 100644 --- a/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh +++ b/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh b/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh index 140722d883..2568e8799e 100644 --- a/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh +++ b/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ExcitedString.hh,v 1.9 2001/10/06 08:17:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ExcitedString.hh,v 1.10 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4ExcitedString_h diff --git a/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh b/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh index bc8567ef19..87f988e062 100644 --- a/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ExcitedStringVector.hh,v 1.6 2001/10/04 20:00:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ExcitedStringVector.hh,v 1.7 2002/12/12 19:17:56 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4ExcitedStringVector_h #define G4ExcitedStringVector_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh b/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh index 20a6ed9b92..7a46536414 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Fancy3DNucleus.hh,v 1.10 2002/04/24 13:10:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Fancy3DNucleus.hh,v 1.14 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4Fancy3DNucleus_h #define G4Fancy3DNucleus_h 1 @@ -75,6 +75,7 @@ class G4Fancy3DNucleus : public G4V3DNucleus G4double GetNuclearRadius(); G4double GetNuclearRadius(const G4double maxRelativeDensity); G4double GetOuterRadius(); + G4double CoulombBarrier(); void DoLorentzBoost(const G4LorentzVector & theBoost); void DoLorentzBoost(const G4ThreeVector & theBeta); void DoLorentzContraction(const G4LorentzVector & theBoost); @@ -94,7 +95,6 @@ class G4Fancy3DNucleus : public G4V3DNucleus G4VNuclearDensity * theDensity; G4FermiMomentum theFermi; const G4double nucleondistance; - }; inline G4int G4Fancy3DNucleus::GetCharge() @@ -106,7 +106,6 @@ inline G4int G4Fancy3DNucleus::GetMassNumber() { return myA; } - #endif diff --git a/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh b/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh index 32b7222230..5407f9303a 100644 --- a/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh +++ b/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FermiMomentum.hh,v 1.5 2001/08/01 17:09:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FermiMomentum.hh,v 1.6 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4FermiMomentum_h #define G4FermiMomentum_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Fragment.hh b/source/processes/hadronic/models/generator/util/include/G4Fragment.hh index 3aed070779..98cbd9fb26 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Fragment.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Fragment.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Fragment.hh,v 1.13 2002/06/07 15:30:55 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Fragment.hh,v 1.15 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -51,9 +51,6 @@ class G4ParticleDefinition; class G4Fragment; // Forward deckaration typedef G4std::vector G4FragmentVector; -//#define pctest - - class G4Fragment { public: @@ -128,7 +125,7 @@ public: inline G4double GetBindingEnergy(void) const; -#ifdef pctest +#ifdef PRECOMPOUND_TEST G4String GetCreatorModel() const { return theCreatorModel; } void SetCreatorModel(const G4String & aModel) { theCreatorModel = aModel; } @@ -166,7 +163,7 @@ private: G4double theCreationTime; -#ifdef pctest +#ifdef PRECOMPOUND_TEST G4String theCreatorModel; #endif }; diff --git a/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh b/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh index ae7caa52f9..ad4b11a77e 100644 --- a/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4FragmentVector.hh,v 1.4 2001/08/01 17:09:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FragmentVector.hh,v 1.5 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) diff --git a/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh b/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh index dcefcc0624..ac3e7701c3 100644 --- a/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh +++ b/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4GeneralPhaseSpaceDecay.hh,v 1.5 2001/08/01 17:09:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GeneralPhaseSpaceDecay.hh,v 1.6 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //$Id: G4GeneralPhaseSpaceDecay.hh,v 1.1 1997/05/21 // ---------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh b/source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh index 139ee2f9d6..987ad42079 100644 --- a/source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh +++ b/source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -81,6 +81,8 @@ class G4KineticTrack : public G4VKineticNucleon const G4LorentzVector& Get4Momentum() const; void Set4Momentum(const G4LorentzVector& a4Momentum); + void Update4Momentum(G4double aEnergy); // update E and p, not changing mass + void Update4Momentum(const G4ThreeVector & aMomentum); // idem const G4LorentzVector& GetInitialCoordinates() const; @@ -92,17 +94,17 @@ class G4KineticTrack : public G4VKineticNucleon G4double* GetActualWidth() const; G4double GetActualMass() const; + G4int GetnChannels() const; private: - G4int GetnChannels() const; void SetnChannels(const G4int aChannel); void SetActualWidth(G4double* anActualWidth); G4double EvaluateTotalActualWidth(); - + G4double EvaluateCMMomentum (const G4double mass, const G4double* m_ij) const; @@ -140,7 +142,7 @@ public: G4double theFormationTime; G4ThreeVector thePosition; - + G4LorentzVector the4Momentum; G4LorentzVector theInitialCoordinates; @@ -154,7 +156,7 @@ public: private: - + // Temporary storage for daughter masses and widths // (needed because Integrand Function cannot take > 1 argument) @@ -213,6 +215,25 @@ inline void G4KineticTrack::Set4Momentum(const G4LorentzVector& a4Momentum) the4Momentum = a4Momentum; } +inline void G4KineticTrack::Update4Momentum(G4double aEnergy) +{ + G4double newP=0; + if ( aEnergy > GetActualMass() ) + { + newP = sqrt(sqr(aEnergy) - the4Momentum.mag2()); + } else + { + aEnergy=GetActualMass(); + } + the4Momentum = G4LorentzVector(newP*the4Momentum.vect().unit(), aEnergy); +} + +inline void G4KineticTrack::Update4Momentum(const G4ThreeVector & aMomentum) +{ + G4double newE=sqrt(the4Momentum.mag2() + aMomentum.mag2()); + the4Momentum = G4LorentzVector(aMomentum, newE); +} + inline const G4LorentzVector& G4KineticTrack::GetInitialCoordinates() const @@ -275,7 +296,7 @@ inline G4double G4KineticTrack::SampleResidualLifetime() G4double theTotalActualWidth = this->EvaluateTotalActualWidth(); G4double tau = hbar_Planck * (-1.0 / theTotalActualWidth); G4double theResidualLifetime = tau * log(G4UniformRand()); - return theResidualLifetime; + return theResidualLifetime*the4Momentum.gamma(); } diff --git a/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh b/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh index 0bf749a97e..47d529e195 100644 --- a/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KineticTrackVector.hh,v 1.6 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KineticTrackVector.hh,v 1.7 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Modified at 8-Oct-1998 by Maxim Komogorov. Methods BoostBeam,Boost,Shift // were added. diff --git a/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh b/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh index de64e24a06..09003fd4f4 100644 --- a/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh +++ b/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NuclearFermiDensity.hh,v 1.6 2002/04/24 13:10:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NuclearFermiDensity.hh,v 1.8 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NuclearFermiDensity_h #define G4NuclearFermiDensity_h 1 @@ -41,9 +41,21 @@ class G4NuclearFermiDensity : public G4VNuclearDensity G4NuclearFermiDensity(G4double anA, G4double aZ); ~G4NuclearFermiDensity(); - G4double GetRelativeDensity(const G4ThreeVector & aPosition) const; - G4double GetRadius(const G4double maxRelativeDenisty) const; - G4double GetDeriv(const G4ThreeVector & aPosition) const; + G4double GetRelativeDensity(const G4ThreeVector & aPosition) const + { + return 1./(1.+exp((aPosition.mag()-theR)/a)); + } + + G4double GetRadius(const G4double maxRelativeDenisty) const + { + return (maxRelativeDenisty>0 && maxRelativeDenisty <= 1 ) ? + (theR + a*log((1-maxRelativeDenisty+exp(-1*theR/a))/maxRelativeDenisty)) : DBL_MAX; + } + + G4double GetDeriv(const G4ThreeVector & aPosition) const + { + return -exp((aPosition.mag()-theR)/a) * sqr(GetDensity(aPosition)) / (a*Getrho0()); + } private: diff --git a/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh b/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh index d6a99ff2cd..0c8abe6998 100644 --- a/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh +++ b/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NuclearShellModelDensity.hh,v 1.6 2002/04/24 13:10:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NuclearShellModelDensity.hh,v 1.7 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NuclearShellModelDensity_h #define G4NuclearShellModelDensity_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh b/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh index 2750619a48..fe6a03aa37 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Nucleon.hh,v 1.5 2001/08/01 17:09:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Nucleon.hh,v 1.6 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4Nucleon_h #define G4Nucleon_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Parton.hh b/source/processes/hadronic/models/generator/util/include/G4Parton.hh index e456cf751a..57c61c8d8b 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Parton.hh +++ b/source/processes/hadronic/models/generator/util/include/G4Parton.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Parton.hh,v 1.13 2001/08/01 17:09:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Parton.hh,v 1.14 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4Parton_h diff --git a/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh b/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh index a6b54ebc4d..d537810bc0 100644 --- a/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh +++ b/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PartonVector.hh,v 1.6 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PartonVector.hh,v 1.7 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4PartonVector_h #define G4PartonVector_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh b/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh index da4abb67a6..2593b8375c 100644 --- a/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh +++ b/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4SampleResonance.hh,v 1.4 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SampleResonance.hh,v 1.5 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4SampleResonance_h diff --git a/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc b/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc index bbc54f3d98..da0d5d408b 100644 --- a/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc +++ b/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ExcitedString.cc,v 1.6 2001/10/04 20:00:33 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ExcitedString.cc,v 1.7 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc b/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc index 49a7c4ae8e..e2f7759644 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Fancy3DNucleus.cc,v 1.19 2002/06/10 13:27:54 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Fancy3DNucleus.cc,v 1.25 2002/12/12 19:17:57 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -274,29 +274,44 @@ void G4Fancy3DNucleus::ChoosePositions() G4int i=0; G4ThreeVector aPos,center; G4bool freeplace; - G4double maxR=GetNuclearRadius(0.01); // there are no nucleons at a + G4double maxR=GetNuclearRadius(0.01); // there are no nucleons at a // relative Density of 0.01 - + while ( i < myA ) { - do + do { aPos=G4ThreeVector( (2*G4UniformRand()-1.), (2*G4UniformRand()-1.), (2*G4UniformRand()-1.)); } while (aPos.mag2() > 1. ); aPos *=maxR; - if (theDensity->GetRelativeDensity(aPos) > G4UniformRand() ) + G4double density=theDensity->GetRelativeDensity(aPos); + if (G4UniformRand() < density) { freeplace= true; - for( int j=0; jGetDensity(aPos)); + // protons must at least have binding energy of CoulombBarrier, so + // assuming the Fermi energy corresponds to a potential, we must place these such + // that the Fermi Energy > CoulombBarrier + if (theNucleons[i].GetDefinition() == G4Proton::Proton()) { - freeplace= freeplace && + G4double eFermi= sqrt( sqr(pFermi) + sqr(theNucleons[i].GetDefinition()->GetPDGMass()) ) + - theNucleons[i].GetDefinition()->GetPDGMass(); + if (eFermi <= CoulombBarrier() ) freeplace=false; + } + for( int j=0; j nucleondistance; } - if ( freeplace ) theNucleons[i++].SetPosition(aPos); + if ( freeplace ) + { + theNucleons[i].SetPosition(aPos); + ++i; + } } } - + } void G4Fancy3DNucleus::ChooseFermiMomenta() @@ -304,19 +319,39 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() G4int i; G4double density; G4ThreeVector * momentum=new G4ThreeVector[myA]; - + G4double * fermiM=new G4double[myA]; - + for (G4int ntry=0; ntry<1 ; ntry ++ ) - { - for (i=0; i < myA; i++ ) // momenta for all, including last, in case we swa + { + for (i=0; i < myA; i++ ) // momenta for all, including last, in case we swap nucleons { density = theDensity->GetDensity(theNucleons[i].GetPosition()); fermiM[i] = theFermi.GetFermiMomentum(density); - momentum[i]= theFermi.GetMomentum(density); + G4ThreeVector mom=theFermi.GetMomentum(density); + if (theNucleons[i].GetDefinition() == G4Proton::Proton()) + { + G4double eMax = sqrt(sqr(fermiM[i]) +sqr(theNucleons[i].GetDefinition()->GetPDGMass()) ) + - CoulombBarrier(); + if ( eMax > theNucleons[i].GetDefinition()->GetPDGMass() ) + { + G4double pmax2= sqr(eMax) - sqr(theNucleons[i].GetDefinition()->GetPDGMass()); + fermiM[i] = sqrt(pmax2); + while ( mom.mag2() > pmax2 ) + { + mom=theFermi.GetMomentum(density); + } + } else + { + G4cerr << "G4Fancy3DNucleus: difficulty finding proton momentum" << G4endl; + mom=0; + } + + } + momentum[i]= mom; } - - if (ReduceSum(momentum,fermiM) ) + + if (ReduceSum(momentum,fermiM) ) break; // G4cout <<" G4FancyNucleus: iterating to find momenta: "<< ntry<< G4endl; } @@ -325,13 +360,13 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() // for (G4int index=0; indexGetPDGMass() - - BindingEnergy()/myA; + energy = theNucleons[i].GetParticleType()->GetPDGMass() + - BindingEnergy()/myA; G4LorentzVector tempV(momentum[i],energy); theNucleons[i].SetMomentum(tempV); } @@ -340,7 +375,7 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() delete [] fermiM; } - class G4Fancy3DNucleusHelper // Helper class + class G4Fancy3DNucleusHelper // Helper class { public: G4Fancy3DNucleusHelper(const G4ThreeVector &vec,const G4double size,const G4int index) @@ -365,14 +400,14 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() { return anInt; } - G4Fancy3DNucleusHelper operator =(const G4Fancy3DNucleusHelper &right) + G4Fancy3DNucleusHelper operator =(const G4Fancy3DNucleusHelper &right) { Vector = right.Vector; Size = right.Size; anInt = right.anInt; return *this; } - + private: G4Fancy3DNucleusHelper(): Vector(0), Size(0), anInt(0) {G4cout << "def ctor for MixMasch" << G4endl;} G4ThreeVector Vector; @@ -383,32 +418,31 @@ void G4Fancy3DNucleus::ChooseFermiMomenta() G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) { G4ThreeVector sum; - G4double density = theDensity->GetDensity(theNucleons[myA-1].GetPosition()); - G4double PFermi=theFermi.GetFermiMomentum(density); - + G4double PFermi=pFermiM[myA-1]; + for (G4int i=0; i < myA-1 ; i++ ) { sum+=momentum[i]; } // check if have to do anything at all.. - if ( sum.mag() <= PFermi ) + if ( sum.mag() <= PFermi ) { momentum[myA-1]=-sum; return true; } - + // find all possible changes in momentum, changing only the component parallel to sum G4ThreeVector testDir=sum.unit(); G4std::vector testSums; // Sorted on delta.mag() for ( G4int aNucleon=0; aNucleon < myA-1; aNucleon++){ G4ThreeVector delta=2*((momentum[aNucleon]*testDir)* testDir); - testSums.push_back(G4Fancy3DNucleusHelper(delta,delta.mag(),aNucleon)); + testSums.push_back(G4Fancy3DNucleusHelper(delta,delta.mag(),aNucleon)); } G4std::sort(testSums.begin(), testSums.end()); - + // reduce Momentum Sum until the next would be allowed. G4int index=testSums.size(); - while ( (sum-testSums[--index].vector()).mag()>PFermi && index>0) + while ( (sum-testSums[--index].vector()).mag()>PFermi && index>0) { // Only take one which improve, ie. don't change sign and overshoot... if ( sum.mag() > (sum-testSums[index].vector()).mag() ) { @@ -417,7 +451,7 @@ G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) } } - if ( (sum-testSums[index].vector()).mag() <= PFermi ) + if ( (sum-testSums[index].vector()).mag() <= PFermi ) { G4int best=-1; G4double pBest=2*PFermi; // anything larger than PFermi @@ -425,33 +459,32 @@ G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) { // find the momentum closest to choosen momentum for last Nucleon. G4double pTry=(testSums[aNucleon].vector()-sum).mag(); - if ( pTry < PFermi + if ( pTry < PFermi && abs(momentum[myA-1].mag() - pTry ) < pBest ) { - pBest=abs(momentum[myA-1].mag() - pTry ); + pBest=abs(momentum[myA-1].mag() - pTry ); best=aNucleon; } } - if ( best < 0 ) G4Exception( " Logic error in Fancy3DNucleus"); + if ( best < 0 ) G4Exception( "G4Fancy3DNucleus.cc: Logic error in ReduceSum()"); momentum[testSums[best].index()]-=testSums[best].vector(); momentum[myA-1]=testSums[best].vector()-sum; testSums.clear(); return true; - - } + + } testSums.clear(); // try to compensate momentum using another Nucleon.... - + G4int swapit=-1; - while (swapitGetDensity(theNucleons[++swapit].GetPosition()); - if ( theFermi.GetFermiMomentum(density) > PFermi ) break; + while (swapit PFermi ) break; } if (swapit == myA-1 ) return false; - + // Now we have a nucleon with a bigger Fermi Momentum. // Exchange with last nucleon.. and iterate. // G4cout << " Nucleon to swap with : " << swapit << G4endl; @@ -470,5 +503,11 @@ G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) pFermiM[myA-1]=pf; // cout << "after swap" <GetAngularMomentum(); G4double theMassRatio = thePoleMass / theActualMass; G4double theMomRatio = theActualMom / thePoleMom; theActualWidth[index] = thePoleWidth * theMassRatio * diff --git a/source/processes/hadronic/models/generator/util/src/G4KineticTrackVector.cc b/source/processes/hadronic/models/generator/util/src/G4KineticTrackVector.cc index f30014c9e0..35b555790f 100644 --- a/source/processes/hadronic/models/generator/util/src/G4KineticTrackVector.cc +++ b/source/processes/hadronic/models/generator/util/src/G4KineticTrackVector.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc b/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc index 0bd013ab14..c8cef01f56 100644 --- a/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc +++ b/source/processes/hadronic/models/generator/util/src/G4NuclearFermiDensity.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NuclearFermiDensity.cc,v 1.9 2002/04/24 13:10:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NuclearFermiDensity.cc,v 1.11 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4NuclearFermiDensity.hh" @@ -39,19 +39,5 @@ G4NuclearFermiDensity::G4NuclearFermiDensity(G4double anA, G4double aZ) } G4NuclearFermiDensity::~G4NuclearFermiDensity() {} - -G4double G4NuclearFermiDensity::GetRelativeDensity(const G4ThreeVector & aPosition) const -{ - return 1./(1.+exp((aPosition.mag()-theR)/a)); -} - -G4double G4NuclearFermiDensity::GetRadius(const G4double maxRelativeDensity) const -{ - return (maxRelativeDensity>0 && maxRelativeDensity <= 1 ) ? - (theR + a*log((1-maxRelativeDensity+exp(-1*theR/a))/maxRelativeDensity)) : DBL_MAX; -} + -G4double G4NuclearFermiDensity::GetDeriv(const G4ThreeVector & aPosition) const -{ - return -exp((aPosition.mag()-theR)/a) * sqr(GetDensity(aPosition)) / (a*Getrho0()); -} diff --git a/source/processes/hadronic/models/generator/util/src/G4NuclearShellModelDensity.cc b/source/processes/hadronic/models/generator/util/src/G4NuclearShellModelDensity.cc index d5b54d203b..e27fddec6c 100644 --- a/source/processes/hadronic/models/generator/util/src/G4NuclearShellModelDensity.cc +++ b/source/processes/hadronic/models/generator/util/src/G4NuclearShellModelDensity.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NuclearShellModelDensity.cc,v 1.7 2002/04/24 13:10:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NuclearShellModelDensity.cc,v 1.8 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4NuclearShellModelDensity.hh" diff --git a/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc b/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc index e80930c0fd..f89e78e208 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Nucleon.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Nucleon.cc,v 1.5 2001/08/01 17:09:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Nucleon.cc,v 1.6 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Nucleon.hh" diff --git a/source/processes/hadronic/models/generator/util/src/G4Parton.cc b/source/processes/hadronic/models/generator/util/src/G4Parton.cc index c11da60d89..558ddadf6f 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Parton.cc +++ b/source/processes/hadronic/models/generator/util/src/G4Parton.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4Parton.cc,v 1.12 2001/11/15 14:10:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Parton.cc,v 1.13 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/util/src/G4SampleResonance.cc b/source/processes/hadronic/models/generator/util/src/G4SampleResonance.cc index 873be0de40..28c31f924e 100644 --- a/source/processes/hadronic/models/generator/util/src/G4SampleResonance.cc +++ b/source/processes/hadronic/models/generator/util/src/G4SampleResonance.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4SampleResonance.cc,v 1.4 2001/10/06 08:17:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SampleResonance.cc,v 1.5 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh index 18ada19ff4..f1ec17b160 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiKaonZeroInelastic.hh,v 1.8 2001/08/01 17:09:34 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiKaonZeroInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh index 0e509263f7..3b225c42f1 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiLambdaInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiLambdaInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh index d592a00295..4e40632b7f 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiNeutronInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiNeutronInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh index 427003aa76..9835808cb4 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiOmegaMinusInelastic.hh,v 1.8 2001/08/01 17:09:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiOmegaMinusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh index 612cd1e891..d2877122c2 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiProtonInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiProtonInelastic.hh,v 1.10 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh index 915f56aadd..201cf776aa 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiSigmaMinusInelastic.hh,v 1.8 2001/08/01 17:09:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiSigmaMinusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh index 4981d0a9c4..1d767bed37 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiSigmaPlusInelastic.hh,v 1.8 2001/08/01 17:09:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiSigmaPlusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh index 099d3502f9..eb4b33956e 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiSigmaZeroInelastic.hh,v 1.8 2001/08/01 17:09:37 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiSigmaZeroInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh index 92a567f1b4..02354f0374 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiXiMinusInelastic.hh,v 1.8 2001/08/01 17:09:38 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiXiMinusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh index 72053cf994..635c20e5c4 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiXiZeroInelastic.hh,v 1.8 2001/08/01 17:09:38 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiXiZeroInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh index 5e5f051c2b..e4b8100b01 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEInelastic.hh,v 1.8 2001/08/01 17:09:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEInelastic.hh,v 1.10 2002/12/12 19:17:58 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy (GHE) model class -- header file @@ -55,7 +55,7 @@ class G4HEInelastic : public G4HadronicInteraction G4HEInelastic() { SetParticles(); - conserveEnergy = false; + conserveEnergy = true; }; ~G4HEInelastic(){ }; diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh index 1085ef39e9..faa6f91277 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEKaonMinusInelastic.hh,v 1.8 2001/08/01 17:09:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEKaonMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh index 8c2971ea61..110f47065e 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEKaonPlusInelastic.hh,v 1.8 2001/08/01 17:09:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEKaonPlusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh index d637fe3827..323c5872d8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEKaonZeroInelastic.hh,v 1.7 2001/08/01 17:09:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEKaonZeroInelastic.hh,v 1.8 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh index ec1622807c..ff00f7f7ba 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEKaonZeroLongInelastic.hh,v 1.8 2001/08/01 17:09:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEKaonZeroLongInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh index 40eda00e9f..96c8382b05 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEKaonZeroShortInelastic.hh,v 1.8 2001/08/01 17:09:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEKaonZeroShortInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh index 237a9dbfe1..7f4480b5f8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HELambdaInelastic.hh,v 1.8 2001/08/01 17:09:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HELambdaInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh index a691d8e5b8..09aa3571bb 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HENeutronInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HENeutronInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh index d5373c2e74..d9f5853d15 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEOmegaMinusInelastic.hh,v 1.8 2001/08/01 17:09:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEOmegaMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh index 97aab6a875..38edcca6c8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEPionMinusInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEPionMinusInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh index 4f4ae5ae8e..6814bb0263 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEPionPlusInelastic.hh,v 1.9 2002/06/13 07:14:40 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEPionPlusInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh index 64da4a83f5..08856cc0d0 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEPlot.hh,v 1.6 2001/08/01 17:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEPlot.hh,v 1.7 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha friend class G4HEPlot -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh index eebdc18b34..4803efe4a2 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEProtonInelastic.hh,v 1.9 2002/06/13 07:14:41 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEProtonInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh index efa4bb0657..9ad1aa349d 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HESigmaMinusInelastic.hh,v 1.8 2001/08/01 17:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HESigmaMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh index 95b0a4e4c7..4bc4620fda 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HESigmaPlusInelastic.hh,v 1.8 2001/08/01 17:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HESigmaPlusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh index 7f346f57e1..a8e8fb9323 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HESigmaZeroInelastic.hh,v 1.8 2001/08/01 17:09:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HESigmaZeroInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh index 1f09376f9b..2d6468c68f 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEVector.hh,v 1.7 2001/08/01 17:09:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEVector.hh,v 1.8 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha friend class G4KinematicParticle -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh index 6142692759..f0aca76855 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEXiMinusInelastic.hh,v 1.8 2001/08/01 17:09:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEXiMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh index 4fed9aee77..d9908aa409 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEXiZeroInelastic.hh,v 1.8 2001/08/01 17:09:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEXiZeroInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc index adaac17afa..992125addb 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiKaonZeroInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiKaonZeroInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc index 287db2901e..d5499b6bac 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiLambdaInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiLambdaInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc index 119575b139..cec6ad6cd5 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiNeutronInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiNeutronInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc index 2ab286b084..d0903549f8 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiOmegaMinusInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiOmegaMinusInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc index 84bc860c07..7b4e168a2e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiProtonInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiProtonInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc index 5370bc8e8e..9f4666de8e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiSigmaMinusInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiSigmaMinusInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc index eeda600433..97ecaa0b9a 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiSigmaPlusInelastic.cc,v 1.7 2001/10/05 16:10:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiSigmaPlusInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc index e64616a66e..63971a8e34 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiSigmaZeroInelastic.cc,v 1.6 2001/08/01 17:09:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.7 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc index e148bb032b..edc6d1dfb7 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiXiMinusInelastic.cc,v 1.7 2001/10/05 16:10:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiXiMinusInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc index f7f3786957..6288a1d19c 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4HEAntiXiZeroInelastic.cc,v 1.7 2001/10/05 16:10:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HEAntiXiZeroInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc index 06ccfb91d9..b5909eaa75 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -631,7 +631,8 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, G4int pionMinusCode = PionMinus.getCode(); G4String mesonType = PionPlus.getType(); G4String baryonType = Proton.getType(); - + G4String antiBaryonType= AntiProton.getType(); + G4double targetMass = targetParticle.getMass(); G4int incidentCode = incidentParticle.getCode(); @@ -654,9 +655,9 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, // define annihilation channels. G4bool annihilation = false; - if (incidentCode < 0 && incidentType == baryonType && - pv[0].getType() != baryonType && - pv[1].getType() != baryonType ) + if (incidentCode < 0 && incidentType == antiBaryonType && + pv[0].getType() != antiBaryonType && + pv[1].getType() != antiBaryonType ) { annihilation = true; } @@ -1103,7 +1104,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, if ( pv[i].getMass() < 0.4 ) j = 0; if ( i <= 1 ) j += 3; if (pv[i].getSide() <= -2) j = 6; - if (j == 6 && pv[i].getType() == baryonType) j = 7; + if (j == 6 && (pv[i].getType() == baryonType || pv[i].getType() == antiBaryonType)) j = 7; pt = sqrt(pow(-log(1.-G4UniformRand())/bp[j],ptex[j])); if(pt<0.05) pt = Amax(0.001, 0.3*G4UniformRand()); aspar = maspar[j]; @@ -1355,6 +1356,7 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, for( i=0; i < vecLen; i++ ) { if( pv[i].getType() == baryonType )targ++; + if( pv[i].getType() == antiBaryonType )targ--; if(verboseLevel > 1) pv[i].Print(i); pv[i].Lor( pv[i], pvmx[1] ); if(verboseLevel > 1) pv[i].Print(i); @@ -1376,8 +1378,10 @@ G4HEInelastic::HighEnergyCascading(G4bool &successful, { i = 0; - if( ( (leadParticle.getType() == baryonType) - && (pv[1].getType() == baryonType)) + if( ( (leadParticle.getType() == baryonType || + leadParticle.getType() == antiBaryonType) + && (pv[1].getType() == baryonType || + pv[1].getType() == antiBaryonType)) || ( (leadParticle.getType() == mesonType) && (pv[1].getType() == mesonType))) { @@ -2056,7 +2060,7 @@ G4HEInelastic::TuningOfHighEnergyCascading( G4HEVector pv[], pvmx[8].Add3(pvmx[8], pv[i] ); } - if (ledpar >= 0) + if(false) if (ledpar >= 0) { if(verboseLevel > 1) { @@ -2130,7 +2134,8 @@ G4HEInelastic::HighEnergyClusterProduction(G4bool &successful, G4int pionMinusCode = PionMinus.getCode(); G4String mesonType = PionPlus.getType(); G4String baryonType = Proton.getType(); - + G4String antiBaryonType= AntiProton.getType(); + G4double targetMass = targetParticle.getMass(); G4int incidentCode = incidentParticle.getCode(); @@ -2580,6 +2585,7 @@ G4HEInelastic::HighEnergyClusterProduction(G4bool &successful, for( i=0; i < vecLen; i++ ) { if( pv[i].getType() == baryonType )targ++; + if( pv[i].getType() == antiBaryonType )targ--; pv[i].Lor( pv[i], pvmx[2] ); } if (targ<1) targ = 1; @@ -2607,8 +2613,10 @@ G4HEInelastic::HighEnergyClusterProduction(G4bool &successful, { i = 0; - if( ( (leadParticle.getType() == baryonType) - && (pv[1].getType() == baryonType)) + if( ( (leadParticle.getType() == baryonType || + leadParticle.getType() == antiBaryonType) + && (pv[1].getType() == baryonType || + pv[1].getType() == antiBaryonType)) || ( (leadParticle.getType() == mesonType) && (pv[1].getType() == mesonType))) { @@ -3016,7 +3024,8 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, G4int pionMinusCode = PionMinus.getCode(); G4String mesonType = PionPlus.getType(); G4String baryonType = Proton.getType(); - + G4String antiBaryonType= AntiProton.getType(); + G4double targetMass = targetParticle.getMass(); G4int incidentCode = incidentParticle.getCode(); @@ -3037,9 +3046,9 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, // define annihilation channels. G4bool annihilation = false; - if (incidentCode < 0 && incidentType == baryonType && - pv[0].getType() != baryonType && - pv[1].getType() != baryonType ) + if (incidentCode < 0 && incidentType == antiBaryonType && + pv[0].getType() != antiBaryonType && + pv[1].getType() != antiBaryonType ) { annihilation = true; } @@ -3364,7 +3373,8 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, { // leave the loop. if( (pv[i].getSide() == -2) || (i == 1) ) { - if ( pv[i].getType() == baryonType) + if ( pv[i].getType() == baryonType || + pv[i].getType() == antiBaryonType) { if( ++npg < 19 ) { @@ -3390,7 +3400,7 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, if ( pv[i].getMass() < 0.4 ) j = 0; if ( i <= 1 ) j += 3; if (pv[i].getSide() <= -2) j = 6; - if (j == 6 && pv[i].getType() == baryonType) j = 7; + if (j == 6 && (pv[i].getType() == baryonType || pv[i].getType()==antiBaryonType) ) j = 7; pt = Amax(0.001, sqrt(pow(-log(1.-G4UniformRand())/bp[j],ptex[j]))); aspar = maspar[j]; phi = G4UniformRand()*M_2PI; @@ -3675,11 +3685,12 @@ G4HEInelastic::MediumEnergyCascading(G4bool &successful, for( i=0; i < vecLen; i++ ) { if( pv[i].getType() == baryonType )targ++; + if( pv[i].getType() == antiBaryonType )targ++; pv[i].Lor( pv[i], pvmx[1] ); } targ = Imax( 1, targ ); - G4bool dum; + G4bool dum(0); if( lead ) { for( i=0; iGetPDGMass(); // set some constants - selec3.Eth = 1.0*MeV; + selec3.Eth = 0.001*MeV; } G4VParticleChange* G4Mars5GeV::ApplyYourself(const G4Track& aTrack, @@ -201,7 +201,7 @@ void G4Mars5GeV::GetTargetNuclei(const G4Material* material) void G4Mars5GeV::Treem5() { - G4double pMass = incidentParticle->GetDefinition()->GetPDGMass(); + // G4double pMass = incidentParticle->GetDefinition()->GetPDGMass(); G4double pE = incidentParticle->GetKineticEnergy(); G4int pType = incidentMarsEncoding; @@ -785,9 +785,9 @@ G4double G4Mars5GeV::D2N2(G4int pType, G4double incidentE, if(i==4) i = 1; G4bool condA = a<2. && i==2; G4bool condB = a<2.; - G4double az; + G4double az(0); G4double pn; - G4double pr; + G4double pr(0); if(!condB) { if(i==2) diff --git a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh index e7c1478af2..300edd7248 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LCapture.hh,v 1.7 2001/08/01 17:10:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LCapture.hh,v 1.8 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Low energy model: neutron capture -- header file diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh index ddb2f07140..5cfd3c2cc2 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAlphaInelastic.hh,v 1.5 2001/08/01 17:10:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAlphaInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy Alpha Inelastic Process // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh new file mode 100644 index 0000000000..0f856e3275 --- /dev/null +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.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: G4LEAntiKaonZeroInelastic.hh,v 1.2 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// + // Hadronic Process: Low Energy KaonZeroL Inelastic Process + // J.L. Chuma, TRIUMF, 12-Feb-1997 + // Last modified: 27-Mar-1997 + +#ifndef G4LEAntiKaonZeroInelastic_h +#define G4LEAntiKaonZeroInelastic_h 1 + +// Class Description +// Final state production model for KaonZeroLong inelastic scattering below 20 GeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4InelasticInteraction.hh" + + class G4LEAntiKaonZeroInelastic : public G4InelasticInteraction + { + public: + + G4LEAntiKaonZeroInelastic() : G4InelasticInteraction() + { + SetMinEnergy( 0.0 ); + SetMaxEnergy( 25.*GeV ); + } + + ~G4LEAntiKaonZeroInelastic() + { } + + G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4Nucleus &targetNucleus ); + + private: + + void Cascade( // derived from CASK0B + G4FastVector &vec, + G4int &vecLen, + const G4DynamicParticle *originalIncident, + G4ReactionProduct ¤tParticle, + G4ReactionProduct &targetParticle, + G4bool &incidentHasChanged, + G4bool &targetHasChanged, + G4bool &quasiElastic ); + + }; + +#endif + diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh index 8baca4e272..5d530e0013 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiLambdaInelastic.hh,v 1.5 2001/08/01 17:10:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiLambdaInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh index e81d294aef..3f3f08120c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiNeutronInelastic.hh,v 1.5 2001/08/01 17:10:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiNeutronInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh index f6ac06bd3c..0b73176e4b 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiOmegaMinusInelastic.hh,v 1.5 2001/08/01 17:10:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiOmegaMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh index 4586e210eb..d213094816 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiProtonInelastic.hh,v 1.5 2001/08/01 17:10:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiProtonInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh index e9823cb353..75092a897c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiSigmaMinusInelastic.hh,v 1.5 2001/08/01 17:10:45 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiSigmaMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh index 2b2b1fb82f..ff079309f2 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiSigmaPlusInelastic.hh,v 1.5 2001/08/01 17:10:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiSigmaPlusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh index 5c8f31b5f7..505d982379 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiXiMinusInelastic.hh,v 1.5 2001/08/01 17:10:46 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiXiMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh index eeaa2add5f..5328d9e9b8 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiXiZeroInelastic.hh,v 1.5 2001/08/01 17:10:47 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiXiZeroInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh index 5960c58bef..521dea8e4f 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEDeuteronInelastic.hh,v 1.5 2001/08/01 17:10:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEDeuteronInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy Deuteron Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh index 7eda5a8b51..97cf70522e 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonMinusInelastic.hh,v 1.5 2001/08/01 17:10:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh index fce2502757..15f1141e2a 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonPlusInelastic.hh,v 1.5 2001/08/01 17:10:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonPlusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/examples/extended/biasing/B08/include/B08PhysicsList.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh similarity index 50% rename from examples/extended/biasing/B08/include/B08PhysicsList.hh rename to source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh index 39a609bcb7..467d8447cf 100644 --- a/examples/extended/biasing/B08/include/B08PhysicsList.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh @@ -21,43 +21,54 @@ // ******************************************************************** // // -// $Id: B08PhysicsList.hh,v 1.1 2002/06/04 11:14:51 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonZeroInelastic.hh,v 1.2 2002/12/12 19:18:04 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // + // Hadronic Process: Low Energy KaonZeroS Inelastic Process + // J.L. Chuma, TRIUMF, 12-Feb-1997 + // Last modified: 27-Mar-1997 + +#ifndef G4LEKaonZeroInelastic_h +#define G4LEKaonZeroInelastic_h 1 + +// Class Description +// Final state production model for KaonZeroShost inelastic scattering below 20 GeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End -#ifndef B08PhysicsList_h -#define B08PhysicsList_h 1 - -#include "globals.hh" -#include "G4VUserPhysicsList.hh" - -class B08PhysicsList : public G4VUserPhysicsList -{ - public: - B08PhysicsList(); - virtual ~B08PhysicsList(); - - protected: - // Construct particle and physics - virtual void ConstructParticle(); - virtual void ConstructProcess(); - - virtual void SetCuts(); +#include "G4InelasticInteraction.hh" + + class G4LEKaonZeroInelastic : public G4InelasticInteraction + { + public: - protected: - // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); - - void ConstructAllBosons(); - void ConstructAllLeptons(); - void ConstructAllMesons(); - void ConstructAllBaryons(); - void ConstructAllIons(); - void ConstructAllShortLiveds(); - -}; - + G4LEKaonZeroInelastic() : G4InelasticInteraction() + { + SetMinEnergy( 0.0 ); + SetMaxEnergy( 25.*GeV ); + } + + ~G4LEKaonZeroInelastic() + { } + + G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4Nucleus &targetNucleus ); + + private: + + void Cascade( // derived from CASK0 + G4FastVector &vec, + G4int &vecLen, + const G4DynamicParticle *originalIncident, + G4ReactionProduct ¤tParticle, + G4ReactionProduct &targetParticle, + G4bool &incidentHasChanged, + G4bool &targetHasChanged, + G4bool &quasiElastic ); + + }; + #endif + diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh index 4777739942..c0942ffc46 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh @@ -14,61 +14,58 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonZeroLInelastic.hh,v 1.5 2001/08/01 17:10:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonZeroLInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // - // Hadronic Process: Low Energy KaonZeroL Inelastic Process - // J.L. Chuma, TRIUMF, 12-Feb-1997 - // Last modified: 27-Mar-1997 - +// +// G4 Gheisha High Energy model class -- header file +// H. Fesefeldt, RWTH Aachen 23-October-1996 +// Last modified: 10-December-1996 + +// A prototype of the Gheisha High Energy collision model. + #ifndef G4LEKaonZeroLInelastic_h #define G4LEKaonZeroLInelastic_h 1 - -// Class Description -// Final state production model for KaonZeroLong inelastic scattering below 20 GeV; -// To be used in your physics list in case you need this physics. -// In this case you want to register an object of this class with -// the corresponding process. -// Class Description - End -#include "G4InelasticInteraction.hh" - - class G4LEKaonZeroLInelastic : public G4InelasticInteraction - { - public: - - G4LEKaonZeroLInelastic() : G4InelasticInteraction() +#include "G4LEKaonZeroInelastic.hh" +#include "G4LEAntiKaonZeroInelastic.hh" +#include "Randomize.hh" + +class G4LEKaonZeroLInelastic : public G4InelasticInteraction +{ + public: + G4LEKaonZeroLInelastic() { SetMinEnergy( 0.0 ); SetMaxEnergy( 25.*GeV ); } - - ~G4LEKaonZeroLInelastic() - { } - - G4VParticleChange *ApplyYourself( const G4Track &aTrack, - G4Nucleus &targetNucleus ); + + ~G4LEKaonZeroLInelastic(){ } + + G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) + { + if(G4UniformRand() < 0.50) + { + return theKaonZeroInelastic.ApplyYourself(aTrack, targetNucleus); + } + else + { + return theAntiKaonZeroInelastic.ApplyYourself(aTrack, targetNucleus); + } + } - private: - - void Cascade( // derived from CASK0B - G4FastVector &vec, - G4int &vecLen, - const G4DynamicParticle *originalIncident, - G4ReactionProduct ¤tParticle, - G4ReactionProduct &targetParticle, - G4bool &incidentHasChanged, - G4bool &targetHasChanged, - G4bool &quasiElastic ); - - }; - -#endif - + G4LEKaonZeroInelastic theKaonZeroInelastic; + G4LEAntiKaonZeroInelastic theAntiKaonZeroInelastic; + + +}; +#endif + + diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh index c5de7e0f76..8ccd700b34 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh @@ -14,61 +14,59 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonZeroSInelastic.hh,v 1.5 2001/08/01 17:10:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonZeroSInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // - // Hadronic Process: Low Energy KaonZeroS Inelastic Process - // J.L. Chuma, TRIUMF, 12-Feb-1997 - // Last modified: 27-Mar-1997 - +// +// G4 Gheisha High Energy model class -- header file +// H. Fesefeldt, RWTH Aachen 23-October-1996 +// Last modified: 10-December-1996 + +// A prototype of the Gheisha High Energy collision model. + #ifndef G4LEKaonZeroSInelastic_h #define G4LEKaonZeroSInelastic_h 1 - -// Class Description -// Final state production model for KaonZeroShost inelastic scattering below 20 GeV; -// To be used in your physics list in case you need this physics. -// In this case you want to register an object of this class with -// the corresponding process. -// Class Description - End -#include "G4InelasticInteraction.hh" - - class G4LEKaonZeroSInelastic : public G4InelasticInteraction - { - public: - - G4LEKaonZeroSInelastic() : G4InelasticInteraction() +#include "G4LEKaonZeroInelastic.hh" +#include "G4LEAntiKaonZeroInelastic.hh" +#include "Randomize.hh" + +class G4LEKaonZeroSInelastic : public G4InelasticInteraction +{ + public: + G4LEKaonZeroSInelastic() { SetMinEnergy( 0.0 ); SetMaxEnergy( 25.*GeV ); } - - ~G4LEKaonZeroSInelastic() - { } - - G4VParticleChange *ApplyYourself( const G4Track &aTrack, - G4Nucleus &targetNucleus ); - - private: - - void Cascade( // derived from CASK0 - G4FastVector &vec, - G4int &vecLen, - const G4DynamicParticle *originalIncident, - G4ReactionProduct ¤tParticle, - G4ReactionProduct &targetParticle, - G4bool &incidentHasChanged, - G4bool &targetHasChanged, - G4bool &quasiElastic ); - - }; - -#endif - + + ~G4LEKaonZeroSInelastic(){ } + + G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) + { + if(G4UniformRand() < 0.50) + { + return theKaonZeroInelastic.ApplyYourself(aTrack, targetNucleus); + } + else + { + return theAntiKaonZeroInelastic.ApplyYourself(aTrack, targetNucleus); + } + } + + private: + G4LEKaonZeroInelastic theKaonZeroInelastic; + G4LEAntiKaonZeroInelastic theAntiKaonZeroInelastic; + + +}; +#endif + + diff --git a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh index a45338606c..cb22b54fed 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LELambdaInelastic.hh,v 1.5 2001/08/01 17:10:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LELambdaInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh index a2ed064da6..7174eb96a7 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh index 6ea8825762..d00436dad1 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEOmegaMinusInelastic.hh,v 1.5 2001/08/01 17:10:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEOmegaMinusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh index 4e329ff557..074937aaf6 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEPionMinusInelastic.hh,v 1.6 2002/06/13 07:14:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEPionMinusInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy PionMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh index a1711db1cb..31cb7b5583 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEPionPlusInelastic.hh,v 1.6 2002/06/13 07:14:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEPionPlusInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh index b6859b947b..29004aa041 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEProtonInelastic.hh,v 1.6 2002/06/13 07:14:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEProtonInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy Proton Inelastic Process // original by H.P. Wellisch diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh index 798e503cd8..f6e72f0436 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LESigmaMinusInelastic.hh,v 1.5 2001/08/01 17:10:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LESigmaMinusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy SigmaMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh index 92f02e3e5b..986da7ff99 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LESigmaPlusInelastic.hh,v 1.5 2001/08/01 17:10:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LESigmaPlusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy SigmaPlus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh index 35bdda864c..231e9d837e 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LETritonInelastic.hh,v 1.5 2001/08/01 17:10:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LETritonInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy Triton Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh index adc2be0279..54419a1a47 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEXiMinusInelastic.hh,v 1.5 2001/08/01 17:10:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEXiMinusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy XiMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh index 6008007e72..e58777832d 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEXiZeroInelastic.hh,v 1.5 2001/08/01 17:10:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEXiZeroInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy XiZero Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh index 8ceceb9e3e..dbd989a5a7 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LElastic.hh,v 1.7 2001/08/01 17:10:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LElastic.hh,v 1.8 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Model: Low energy elastic scattering -- header file diff --git a/source/processes/hadronic/models/low_energy/include/G4LFission.hh b/source/processes/hadronic/models/low_energy/include/G4LFission.hh index ffcbd6ef65..b345281dec 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LFission.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LFission.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LFission.hh,v 1.7 2001/08/01 17:10:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LFission.hh,v 1.8 2002/12/12 19:18:05 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Low-energy Model: Fission -- header file diff --git a/source/processes/hadronic/models/low_energy/src/G4LCapture.cc b/source/processes/hadronic/models/low_energy/src/G4LCapture.cc index a2b5aa9689..6d2acf38a8 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LCapture.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LCapture.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LCapture.cc,v 1.7 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LCapture.cc,v 1.8 2002/12/12 19:18:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Model: Low-energy Neutron Capture diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc index ae174d3220..a9c02098b0 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -76,6 +76,7 @@ G4double p = vec[0]->GetMomentum().mag(); theParticleChange.SetMomentumChange( vec[0]->GetMomentum() *(1./p)); theParticleChange.SetEnergyChange( vec[0]->GetKineticEnergy() ); + delete vec[0]; // theParticleChange.SetNumberOfSecondaries( vecLen-1 ); G4DynamicParticle *pd; diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc similarity index 97% rename from source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc rename to source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc index c91233c08a..1951ce1116 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroLInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc @@ -14,26 +14,26 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonZeroLInelastic.cc,v 1.7 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiKaonZeroInelastic.cc,v 1.2 2002/12/12 19:18:06 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy KaonZeroLong Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 // Last modified: 27-Mar-1997 // Modified by J.L.Chuma 30-Apr-97: added originalTarget for CalculateMomenta -#include "G4LEKaonZeroLInelastic.hh" +#include "G4LEAntiKaonZeroInelastic.hh" #include "Randomize.hh" G4VParticleChange * - G4LEKaonZeroLInelastic::ApplyYourself( const G4Track &aTrack, + G4LEAntiKaonZeroInelastic::ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) { theParticleChange.Initialize( aTrack ); @@ -47,7 +47,7 @@ if( verboseLevel > 1 ) { G4Material *targetMaterial = aTrack.GetMaterial(); - G4cout << "G4LEKaonZeroLInelastic::ApplyYourself called" << G4endl; + G4cout << "G4LEAntiKaonZeroInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() @@ -119,7 +119,7 @@ } void - G4LEKaonZeroLInelastic::Cascade( + G4LEAntiKaonZeroInelastic::Cascade( G4FastVector &vec, G4int& vecLen, const G4DynamicParticle *originalIncident, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc index 5f9247170a..a24672afb4 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiLambdaInelastic.cc,v 1.4 2001/08/01 17:10:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiLambdaInelastic.cc,v 1.5 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc index a2b6fc006d..94fae3a04f 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiNeutronInelastic.cc,v 1.7 2002/06/17 11:34:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiNeutronInelastic.cc,v 1.8 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc index fcb2d948a4..4434d12ca1 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiOmegaMinusInelastic.cc,v 1.5 2001/10/05 16:11:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiOmegaMinusInelastic.cc,v 1.6 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc index a797dcae7b..a3c934fcc8 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiProtonInelastic.cc,v 1.7 2002/06/17 11:34:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiProtonInelastic.cc,v 1.8 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 13-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc index 05e02d1145..97e300be13 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiSigmaMinusInelastic.cc,v 1.4 2001/08/01 17:11:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiSigmaMinusInelastic.cc,v 1.5 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc index ddcbf95835..f1fb1b2ea3 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiSigmaPlusInelastic.cc,v 1.4 2001/08/01 17:11:03 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiSigmaPlusInelastic.cc,v 1.5 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc index badeb37781..beb8bc1bde 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiXiMinusInelastic.cc,v 1.4 2001/08/01 17:11:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiXiMinusInelastic.cc,v 1.5 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc index 04977951dc..3591ee034d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEAntiXiZeroInelastic.cc,v 1.4 2001/08/01 17:11:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEAntiXiZeroInelastic.cc,v 1.5 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc index 38e8febbb6..19ef6cff51 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -76,6 +76,7 @@ G4double p = vec[0]->GetMomentum().mag(); theParticleChange.SetMomentumChange( vec[0]->GetMomentum() * (1.0/p) ); theParticleChange.SetEnergyChange( vec[0]->GetKineticEnergy() ); + delete vec[0]; // theParticleChange.SetNumberOfSecondaries( vecLen-1 ); G4DynamicParticle *pd; diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc index ce91d986f3..9d916c82d4 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonMinusInelastic.cc,v 1.8 2002/06/07 15:30:55 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonMinusInelastic.cc,v 1.9 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc index 5b1b86464e..0e313d3755 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonPlusInelastic.cc,v 1.6 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonPlusInelastic.cc,v 1.7 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc similarity index 97% rename from source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc rename to source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc index 21dfb8d30f..59b329e094 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroSInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc @@ -14,26 +14,26 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEKaonZeroSInelastic.cc,v 1.5 2001/08/01 17:11:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEKaonZeroInelastic.cc,v 1.3 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Low Energy KaonZeroShort Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 // Last modified: 27-Mar-1997 // Modified by J.L.Chuma 30-Apr-97: added originalTarget for CalculateMomenta -#include "G4LEKaonZeroSInelastic.hh" +#include "G4LEKaonZeroInelastic.hh" #include "Randomize.hh" G4VParticleChange * - G4LEKaonZeroSInelastic::ApplyYourself( const G4Track &aTrack, + G4LEKaonZeroInelastic::ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) { theParticleChange.Initialize( aTrack ); @@ -47,7 +47,7 @@ if( verboseLevel > 1 ) { G4Material *targetMaterial = aTrack.GetMaterial(); - G4cout << "G4LEKaonZeroSInelastic::ApplyYourself called" << G4endl; + G4cout << "G4LEKaonZeroInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() @@ -119,7 +119,7 @@ } void - G4LEKaonZeroSInelastic::Cascade( + G4LEKaonZeroInelastic::Cascade( G4FastVector &vec, G4int& vecLen, const G4DynamicParticle *originalIncident, diff --git a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc index 33ee782ea8..546c968ea2 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LELambdaInelastic.cc,v 1.4 2001/08/01 17:11:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LELambdaInelastic.cc,v 1.5 2002/12/12 19:18:07 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc index 67a5699b57..dcaf9acc94 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc index 77df13e50f..7ae8d2b9bf 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEOmegaMinusInelastic.cc,v 1.5 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEOmegaMinusInelastic.cc,v 1.6 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc index 8a3240e262..ec4cad5e33 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -150,11 +150,6 @@ targetMass*targetMass + 2.0*targetMass*etOriginal ); G4double availableEnergy = centerofmassEnergy-(targetMass+mOriginal); - if( availableEnergy <= G4PionMinus::PionMinus()->GetPDGMass() ) - { - quasiElastic = true; - return; - } static G4bool first = true; const G4int numMul = 1200; const G4int numSec = 60; @@ -243,9 +238,14 @@ incidentHasChanged = true; targetHasChanged = true; } - else quasiElastic = true; + } + + if( availableEnergy <= G4PionMinus::PionMinus()->GetPDGMass() ) + { + quasiElastic = true; return; } + nm = np = nz = 0; if( targetParticle.GetDefinition() == aProton ) { @@ -279,6 +279,11 @@ } else { + if( availableEnergy <= G4PionMinus::PionMinus()->GetPDGMass() ) + { + quasiElastic = true; + return; + } G4double n, anpn; GetNormalizationConstant( availableEnergy, n, anpn ); G4double ran = G4UniformRand(); diff --git a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc index a3584d3f3f..f692d2f711 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc @@ -14,20 +14,21 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEPionPlusInelastic.cc,v 1.6 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEPionPlusInelastic.cc,v 1.8 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 // Last modified: 27-Mar-1997 // Modified by J.L.Chuma 30-Apr-97: added originalTarget for CalculateMomenta + // fixing charge exchange - HPW Sep 2002. #include "G4LEPionPlusInelastic.hh" #include "Randomize.hh" @@ -146,16 +147,12 @@ // const G4double mOriginal = originalIncident->GetDefinition()->GetPDGMass(); const G4double etOriginal = originalIncident->GetTotalEnergy(); + const G4double pOriginal = originalIncident->GetTotalMomentum(); const G4double targetMass = targetParticle.GetMass(); G4double centerofmassEnergy = sqrt( mOriginal*mOriginal + targetMass*targetMass + 2.0*targetMass*etOriginal ); G4double availableEnergy = centerofmassEnergy-(targetMass+mOriginal); - if( availableEnergy <= G4PionPlus::PionPlus()->GetPDGMass() ) - { - quasiElastic = true; - return; - } static G4bool first = true; const G4int numMul = 1200; const G4int numSec = 60; @@ -218,6 +215,26 @@ { // suppress high multiplicity events at low momentum // only one pion will be produced + // charge exchange reaction is included in inelastic cross section + + const G4double cech[] = {1.,0.95,0.79,0.32,0.19,0.16,0.14,0.12,0.10,0.08}; + G4int iplab = G4int(G4std::min( 9.0, pOriginal/GeV*5.0 )); + if( G4UniformRand() <= cech[iplab] ) + { + if( targetParticle.GetDefinition() == aNeutron ) + { + currentParticle.SetDefinitionAndUpdateE( aPiZero ); // charge exchange + targetParticle.SetDefinitionAndUpdateE( aProton ); + incidentHasChanged = true; + targetHasChanged = true; + } + } + + if( availableEnergy <= G4PionMinus::PionMinus()->GetPDGMass() ) + { + quasiElastic = true; + return; + } nm = np = nz = 0; if( targetParticle.GetDefinition() == aProton ) { @@ -245,6 +262,11 @@ nm = 1; } } else { + if( availableEnergy <= G4PionMinus::PionMinus()->GetPDGMass() ) + { + quasiElastic = true; + return; + } G4double n, anpn; GetNormalizationConstant( availableEnergy, n, anpn ); G4double ran = G4UniformRand(); diff --git a/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc index 06fe73b3ec..e8889d6cae 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc index 7e9d45edd3..80f934a3bf 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LESigmaMinusInelastic.cc,v 1.4 2001/08/01 17:11:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LESigmaMinusInelastic.cc,v 1.5 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: SigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc index b3de698b98..00db311a33 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LESigmaPlusInelastic.cc,v 1.4 2001/08/01 17:11:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LESigmaPlusInelastic.cc,v 1.5 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: SigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc index e92feaddab..ceee3eb324 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -76,6 +76,7 @@ G4double p = vec[0]->GetMomentum().mag(); theParticleChange.SetMomentumChange( vec[0]->GetMomentum()*(1./p) ); theParticleChange.SetEnergyChange( vec[0]->GetKineticEnergy() ); + delete vec[0]; // theParticleChange.SetNumberOfSecondaries( vecLen-1 ); G4DynamicParticle *pd; diff --git a/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc index d931909e86..68df3b5f38 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEXiMinusInelastic.cc,v 1.4 2001/08/01 17:11:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEXiMinusInelastic.cc,v 1.5 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: XiMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc index d36bf224d7..287cfd91e3 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LEXiZeroInelastic.cc,v 1.4 2001/08/01 17:11:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LEXiZeroInelastic.cc,v 1.5 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: XiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc index de5a64c106..c0d9a23fe1 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LElastic.cc,v 1.6 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LElastic.cc,v 1.7 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Physics model class G4LElastic // diff --git a/source/processes/hadronic/models/low_energy/src/G4LFission.cc b/source/processes/hadronic/models/low_energy/src/G4LFission.cc index e1eed6a0bb..8904433710 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LFission.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LFission.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LFission.cc,v 1.8 2001/10/05 16:11:32 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LFission.cc,v 1.9 2002/12/12 19:18:08 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4 Model: Low Energy Fission diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh index 5e93aa55fc..f4c1300881 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InterpolationIterator.hh,v 1.5 2001/07/26 09:27:49 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InterpolationIterator.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4InterpolationIterator_h #define G4InterpolationIterator_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh index 20ea1135ed..2360fdfd3c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InterpolationManager.hh,v 1.7 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InterpolationManager.hh,v 1.8 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4InterpolationManager_h #define G4InterpolationManager_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh index c370bcd918..59d51628cd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4InterpolationScheme.hh,v 1.4 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4InterpolationScheme.hh,v 1.5 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4InterpolationScheme_h #define G4InterpolationScheme_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh index 2bbaeb5e0b..9ef03f7d8d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2AInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2AInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2AInelasticFS_h #define G4NeutronHP2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh index 2f0590ea0f..f807bc36db 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2N2AInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2N2AInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2N2AInelasticFS_h #define G4NeutronHP2N2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh index d38dc2daa2..98cdba1875 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2NAInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2NAInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2NAInelasticFS_h #define G4NeutronHP2NAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh index 6fc25ee027..6462648053 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2NDInelasticFS.hh,v 1.5 2001/07/26 09:27:50 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2NDInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2NDInelasticFS_h #define G4NeutronHP2NDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh index e34ef21c72..609fd6bd9e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2NInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2NInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2NInelasticFS_h #define G4NeutronHP2NInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh index cad1a2bb00..9a2e468ade 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2NPInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2NPInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2NPInelasticFS_h #define G4NeutronHP2NPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh index 9ea48e0210..5afbed129e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP2PInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP2PInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP2PInelasticFS_h #define G4NeutronHP2PInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh index 0bbd8f23d6..6fe4a068f2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP3AInelasticFS.hh,v 1.5 2001/07/26 09:27:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP3AInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP3AInelasticFS_h #define G4NeutronHP3AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh index 0b2c7ef3dc..bf73b9e858 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP3NAInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP3NAInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP3NAInelasticFS_h #define G4NeutronHP3NAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh index 28046982d5..007a1052aa 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP3NInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP3NInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP3NInelasticFS_h #define G4NeutronHP3NInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh index b32df5a1b0..e214a0c278 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP3NPInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP3NPInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP3NPInelasticFS_h #define G4NeutronHP3NPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh index f9c097d713..47eb055e7e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHP4NInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHP4NInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHP4NInelasticFS_h #define G4NeutronHP4NInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh index 7e0b1e9abd..cba2ee5564 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPAInelasticFS.hh,v 1.5 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPAInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPAInelasticFS_h #define G4NeutronHPAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh index 36042d9118..6d42f9f115 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPAngular.hh,v 1.6 2001/07/26 09:27:52 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPAngular.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPAngular_h #define G4NeutronHPAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh index aab3a6724e..b0fd13c960 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPAngularP.hh,v 1.6 2001/07/26 09:27:53 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPAngularP.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPAngularP_h #define G4NeutronHPAngularP_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh index ebbfa504ac..8a46b5457f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPArbitaryTab.hh,v 1.7 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPArbitaryTab.hh,v 1.8 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPArbitaryTab_h #define G4NeutronHPArbitaryTab_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh index a49cc2998c..aeb06246c4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPCapture.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPCapture.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh index c2693dcab2..132335db92 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPCaptureData.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPCaptureData.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPCaptureData_h #define G4NeutronHPCaptureData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh index 46de27e136..e639f32a50 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPCaptureFS.hh,v 1.7 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPCaptureFS.hh,v 1.8 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPCaptureFS_h #define G4NeutronHPCaptureFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh index 9aa8bf4b6a..5e6b4a0932 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPChannel.hh,v 1.8 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPChannel.hh,v 1.9 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh index 4000939a32..ae6f320124 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPChannelList.hh,v 1.5 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPChannelList.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh index dcb6240e95..b26e91bd7f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPContAngularPar.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPContAngularPar.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPContAngularPar_h #define G4NeutronHPContAngularPar_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh index e477bf82ff..754fc657a0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPContEnergyAngular.hh,v 1.6 2001/07/26 09:27:54 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPContEnergyAngular.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPContEnergyAngular_h #define G4NeutronHPContEnergyAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh index 0a40c318bc..523758b935 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPD2AInelasticFS.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPD2AInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPD2AInelasticFS_h #define G4NeutronHPD2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh index e34652ec84..2d453862a1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPDAInelasticFS.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPDAInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPDAInelasticFS_h #define G4NeutronHPDAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh index a9975f002f..d295ee96cb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPDInelasticFS.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPDInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPDInelasticFS_h #define G4NeutronHPDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh index 2861f93891..f5dcab4ce0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPData.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPData.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh index 52b5ed0560..4747f2130b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPDataPoint.hh,v 1.5 2001/07/26 09:27:55 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPDataPoint.hh,v 1.6 2002/12/12 19:18:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPDataPoint_h #define G4NeutronHPDataPoint_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataUsed.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataUsed.hh index 17bd87f2f9..a0ca6179b5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataUsed.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataUsed.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh index 08a88a4990..ff69ff2f4a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPDeExGammas.hh,v 1.7 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPDeExGammas.hh,v 1.8 2002/12/12 19:18:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPDeExGammas_h #define G4NeutronHPDeExGammas_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh index e7956d09e2..c67d58953a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPDiscreteTwoBody.hh,v 1.6 2001/07/26 09:27:56 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPDiscreteTwoBody.hh,v 1.7 2002/12/12 19:18:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPDiscreteTwoBody_h #define G4NeutronHPDiscreteTwoBody_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh index f9cc8e53a2..dc37aae8b4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPElastic.hh,v 1.5 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPElastic.hh,v 1.6 2002/12/12 19:18:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh index cbc9d38a82..76923da333 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPElasticData.hh,v 1.6 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPElasticData.hh,v 1.7 2002/12/12 19:18:11 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPElasticData_h #define G4NeutronHPElasticData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh index 9e99eec8e0..1d7e6d2c6b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPElasticFS.hh,v 1.5 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPElasticFS.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPElasticFS_h #define G4NeutronHPElasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh index 7cc6f2b2dd..c6ad8ced9f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPElementData.hh,v 1.5 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPElementData.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh index c63febf956..aa73f1936e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPEnAngCorrelation.hh,v 1.6 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPEnAngCorrelation.hh,v 1.7 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPEnAngCorrelation_h #define G4NeutronHPEnAngCorrelation_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh index 8500547b96..31d76cd5dc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPEnergyDistribution.hh,v 1.6 2001/07/26 09:27:57 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPEnergyDistribution.hh,v 1.7 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPEnergyDistribution_h #define G4NeutronHPEnergyDistribution_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh index 73ff3f96fb..ed48143141 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPEvapSpectrum.hh,v 1.6 2001/07/26 09:27:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPEvapSpectrum.hh,v 1.7 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPEvapSpectrum_h #define G4NeutronHPEvapSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh index 3e984f705e..60815297cd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFCFissionFS.hh,v 1.5 2001/07/26 09:27:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFCFissionFS.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFCFissionFS_h #define G4NeutronHPFCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh index fb0f555300..68a5fd4c4c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFSFissionFS.hh,v 1.5 2001/07/26 09:27:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFSFissionFS.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFSFissionFS_h #define G4NeutronHPFSFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh index 4660428bd8..add210b343 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFastLegendre.hh,v 1.8 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFastLegendre.hh,v 1.9 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFastLegendre_h #define G4NeutronHPFastLegendre_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh index 966d915de2..2584797f7d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPField.hh,v 1.5 2001/07/26 09:27:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPField.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPField_h #define G4NeutronHPField_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh index 27ff6c18b7..7d66c16a94 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFieldPoint.hh,v 1.5 2001/07/26 09:27:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFieldPoint.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFieldPoint_h #define G4NeutronHPFieldPoint_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh index 379fdbbb82..fee4f14acc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFinalState.hh,v 1.6 2001/07/26 09:27:59 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFinalState.hh,v 1.7 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFinalState_h #define G4NeutronHPFinalState_h diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh index 33295b0cc5..d312177b8d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFission.hh,v 1.5 2001/07/26 09:28:00 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFission.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh index 91f5afef29..34b8b0c564 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFissionBaseFS.hh,v 1.6 2001/07/26 09:28:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFissionBaseFS.hh,v 1.7 2002/12/12 19:18:12 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFissionBaseFS_h #define G4NeutronHPFissionBaseFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh index 55be037677..94f3e3bbb6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFissionData.hh,v 1.6 2001/07/26 09:28:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFissionData.hh,v 1.7 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFissionData_h #define G4NeutronHPFissionData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh index 5b90ac0fcd..4be4ed4def 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFissionERelease.hh,v 1.6 2001/07/26 09:28:01 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFissionERelease.hh,v 1.7 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFissionERelease_h #define G4NeutronHPFissionERelease_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh index 5618554840..656b8722ff 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFissionFS.hh,v 1.5 2001/07/26 09:28:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFissionFS.hh,v 1.6 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFissionFS_h #define G4NeutronHPFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh index f5a1ec2f07..f7618a640e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPFissionSpectrum.hh,v 1.6 2001/07/26 09:28:02 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPFissionSpectrum.hh,v 1.7 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPFissionSpectrum_h #define G4NeutronHPFissionSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh index 7c2a1eb42a..d73932c214 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPGamma.hh,v 1.8 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPGamma.hh,v 1.9 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPGamma_h #define G4NeutronHPGamma_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHash.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHash.hh index 1815421b2b..d2ff4f365d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHash.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHash.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh index 73e2c622f8..8792c3800f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPHe3InelasticFS.hh,v 1.5 2001/07/26 09:28:03 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPHe3InelasticFS.hh,v 1.6 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPHe3InelasticFS_h #define G4NeutronHPHe3InelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh index 151b942ca4..f4f4dfeff7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPInelastic.hh,v 1.5 2001/07/26 09:28:04 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPInelastic.hh,v 1.6 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh index 321c9be52e..76aba7444a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPInelasticBaseFS.hh,v 1.6 2001/07/26 09:28:05 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPInelasticBaseFS.hh,v 1.7 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPInelasticBaseFS_h #define G4NeutronHPInelasticBaseFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh index 623fca137e..32309bb067 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPInelasticCompFS.hh,v 1.7 2001/07/26 09:28:05 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPInelasticCompFS.hh,v 1.8 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPInelasticCompFS_h #define G4NeutronHPInelasticCompFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh index 9a24c95d54..b37439f75e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPInelasticData.hh,v 1.6 2001/07/26 09:28:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPInelasticData.hh,v 1.7 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPInelasticData_h #define G4NeutronHPInelasticData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh index a751bd30cb..556aebd59c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPInterpolator.hh,v 1.8 2002/06/07 15:30:56 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPInterpolator.hh,v 1.9 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPInterpolator_h #define G4NeutronHPInterpolator_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh index 3d7cc5bda4..be45aa1bad 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPIsoData.hh,v 1.9 2001/07/26 09:28:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPIsoData.hh,v 1.10 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPIsoData_h #define G4NeutronHPIsoData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh index 96a5fe6ef1..cb8e9304cc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPIsotropic.hh,v 1.6 2001/07/26 09:28:07 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPIsotropic.hh,v 1.7 2002/12/12 19:18:13 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPIsotropic_h #define G4NeutronHPIsotropic_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh index 9794dfc47a..af83d9910b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPKallbachMannSyst.hh,v 1.5 2001/07/26 09:28:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPKallbachMannSyst.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPKallbachMannSyst_h #define G4NeutronHPKallbachMannSyst_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh index 82971ad92f..a0358de15f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPLCFissionFS.hh,v 1.5 2001/07/26 09:28:08 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPLCFissionFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPLCFissionFS_h #define G4NeutronHPLCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh index 5cf99a1004..661b3e1efb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPLabAngularEnergy.hh,v 1.6 2001/07/26 09:28:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPLabAngularEnergy.hh,v 1.7 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPLabAngularEnergy_h #define G4NeutronHPLabAngularEnergy_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh index 21fd3d5f6a..3d10daeaa0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPLegendreStore.hh,v 1.6 2001/07/26 09:28:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPLegendreStore.hh,v 1.7 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPLegendreStore_h #define G4NeutronHPLegendreStore_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh index 5bfd12b850..01b7fd3457 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPLegendreTable.hh,v 1.6 2001/07/26 09:28:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPLegendreTable.hh,v 1.7 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPLegendreTable_h #define G4NeutronHPLegendreTable_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh index fefcea0f6f..24bcfc3fba 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPLevel.hh,v 1.6 2001/07/26 09:28:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPLevel.hh,v 1.7 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPLevel_h #define G4NeutronHPLevel_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPList.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPList.hh index b54d21fc3f..da0614b50a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPList.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPList.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh index 87a9cd458f..05a40faa69 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPMadlandNixSpectrum.hh,v 1.6 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPMadlandNixSpectrum.hh,v 1.7 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPMadlandNixSpectrum_h #define G4NeutronHPMadlandNixSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh index 9e941f39db..d4e6d0b354 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPN2AInelasticFS.hh,v 1.5 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPN2AInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPN2AInelasticFS_h #define G4NeutronHPN2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh index 04cb2da6d8..0c847765c3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPN2PInelasticFS.hh,v 1.5 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPN2PInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPN2PInelasticFS_h #define G4NeutronHPN2PInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh index cd69e1a1ac..8886abe52f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPN3AInelasticFS.hh,v 1.5 2001/07/26 09:28:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPN3AInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPN3AInelasticFS_h #define G4NeutronHPN3AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh index e728b8aa2f..e4eace2703 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNAInelasticFS.hh,v 1.5 2001/07/26 09:28:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNAInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNAInelasticFS_h #define G4NeutronHPNAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh index 2dff025d0d..9f62452975 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNBodyPhaseSpace.hh,v 1.6 2001/07/26 09:28:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNBodyPhaseSpace.hh,v 1.8 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNBodyPhaseSpace_h #define G4NeutronHPNBodyPhaseSpace_h 1 @@ -68,7 +68,7 @@ class G4NeutronHPNBodyPhaseSpace : public G4VNeutronHPEnergyAngular inline G4double C(G4double anEnergy, G4double mass) { - G4double result; + G4double result(0); if(theTotalCount==3) result = 4./pi/pow(GetEmax(anEnergy, mass),2); if(theTotalCount==4) result = 105./32./pow(GetEmax(anEnergy, mass), 3.5); if(theTotalCount==5) result = 256./14./pi/pow(GetEmax(anEnergy, mass), 5.); diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh index a0fba58045..c4e20eab3a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPND2AInelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPND2AInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPND2AInelasticFS_h #define G4NeutronHPND2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh index a3853ee30b..254df1e693 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNDInelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNDInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNDInelasticFS_h #define G4NeutronHPNDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh index 6fe636a400..c84fece8c4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNHe3InelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNHe3InelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNHe3InelasticFS_h #define G4NeutronHPNHe3InelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh index 16e6e92dd2..b5f8ce503a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNInelasticFS.hh,v 1.5 2001/07/26 09:28:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNInelasticFS_h #define G4NeutronHPNInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh index 4184442596..80f1d87bee 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNPAInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNPAInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNPAInelasticFS_h #define G4NeutronHPNPAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh index 6df14d2a49..73f4969100 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNPInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNPInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNPInelasticFS_h #define G4NeutronHPNPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh index 6f32fbde65..47d5bf79ce 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNT2AInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNT2AInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNT2AInelasticFS_h #define G4NeutronHPNT2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh index 3c4cf36a95..b436a02f91 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNTInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNTInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNTInelasticFS_h #define G4NeutronHPNTInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh index 3039cd15da..618ba13e86 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNXInelasticFS.hh,v 1.5 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNXInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNXInelasticFS_h #define G4NeutronHPNXInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh index b0e39b0aab..e4e6615e53 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNames.hh,v 1.9 2001/07/26 09:28:16 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNames.hh,v 1.10 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNames_h #define G4NeutronHPNames_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh index a3dd08e7d2..5e6e459c45 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPNeutronYield.hh,v 1.6 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPNeutronYield.hh,v 1.7 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPNeutronYield_h #define G4NeutronHPNeutronYield_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh index 5f30294a03..6eb1663b1e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPAInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPAInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPAInelasticFS_h #define G4NeutronHPPAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh index ba1f7274f5..fbf8e6b528 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPDInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPDInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPDInelasticFS_h #define G4NeutronHPPDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh index cad003a5f7..f690f59b82 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPInelasticFS_h #define G4NeutronHPPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh index 2cbc914291..dea17b5408 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPTInelasticFS.hh,v 1.5 2001/07/26 09:28:17 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPTInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPTInelasticFS_h #define G4NeutronHPPTInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh index d1a15a2126..086fcce1f0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPartial.hh,v 1.7 2001/10/04 20:00:35 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPartial.hh,v 1.8 2002/12/12 19:18:15 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPartial_h #define G4NeutronHPPartial_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh index a07884c768..5c9980b7f7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPhotonDist.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPhotonDist.hh,v 1.7 2002/12/12 19:18:16 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh index fbf4ca2c38..5c3990c44b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPhotonXSection.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPhotonXSection.hh,v 1.7 2002/12/12 19:18:16 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPhotonXSection_h #define G4NeutronHPPhotonXSection_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh index b6befce06a..731506d899 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPPolynomExpansion.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPPolynomExpansion.hh,v 1.7 2002/12/12 19:18:16 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPPolynomExpansion_h #define G4NeutronHPPolynomExpansion_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh index d86d402a96..9019296da4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPProduct.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPProduct.hh,v 1.7 2002/12/12 19:18:16 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPProduct_h #define G4NeutronHPProduct_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh index e2f4d72da3..9e963d9c60 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPSCFissionFS.hh,v 1.5 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPSCFissionFS.hh,v 1.6 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPSCFissionFS_h #define G4NeutronHPSCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh index 262fc3120e..1c698fb5e6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPSimpleEvapSpectrum.hh,v 1.6 2001/07/26 09:28:18 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPSimpleEvapSpectrum.hh,v 1.7 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPSimpleEvapSpectrum_h #define G4NeutronHPSimpleEvapSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh index 253ca2cae7..c028acd44c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPT2AInelasticFS.hh,v 1.5 2001/07/26 09:28:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPT2AInelasticFS.hh,v 1.6 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPT2AInelasticFS_h #define G4NeutronHPT2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh index 10419b720d..e874aca4fe 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPTCFissionFS.hh,v 1.5 2001/07/26 09:28:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPTCFissionFS.hh,v 1.6 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPTCFissionFS_h #define G4NeutronHPTCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh index c06ab0745d..ec2e9fffc4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPTInelasticFS.hh,v 1.5 2001/07/26 09:28:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPTInelasticFS.hh,v 1.6 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPTInelasticFS_h #define G4NeutronHPTInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh index 21d961da85..26b906a9df 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh index e094fabef1..ece4355921 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh index c10d9d609b..45461d3565 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronHPWattSpectrum.hh,v 1.6 2001/07/26 09:28:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPWattSpectrum.hh,v 1.7 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4NeutronHPWattSpectrum_h #define G4NeutronHPWattSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh index 114bfc81ec..06904afaf0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VNeutronHPEDis.hh,v 1.6 2001/07/26 09:28:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VNeutronHPEDis.hh,v 1.7 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VNeutronHPEDis_h #define G4VNeutronHPEDis_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh index ef381862c8..13e41c1ea7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4VNeutronHPEnergyAngular.hh,v 1.6 2001/07/26 09:28:22 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VNeutronHPEnergyAngular.hh,v 1.7 2002/12/12 19:18:17 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VNeutronHPEnergyAngular_h #define G4VNeutronHPEnergyAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc b/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc index cf48836305..9c74290b16 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2AInelasticFS.cc index c217520c51..89881ad577 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2AInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2N2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2N2AInelasticFS.cc index 9116e07dc2..e3cfe11c17 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2N2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2N2AInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NAInelasticFS.cc index d686ed96ad..37aead4747 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NAInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NDInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NDInelasticFS.cc index bd8e20ee49..f085fb70b8 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NDInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NDInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NInelasticFS.cc index 072e870aa3..8e27b8d950 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NPInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NPInelasticFS.cc index 07ed2c1517..90cb01065a 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NPInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2NPInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2PInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2PInelasticFS.cc index 0ed7e05fb5..a766f40546 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2PInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP2PInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3AInelasticFS.cc index ac9d7bfb6a..d3bbc5ad02 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3AInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NAInelasticFS.cc index 18b6bf984e..a3053ca268 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NAInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NInelasticFS.cc index 395fb33456..9b696bb590 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NPInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NPInelasticFS.cc index 7c4a104a7e..80fdfba81c 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NPInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP3NPInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP4NInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP4NInelasticFS.cc index 06b0210653..546737aeb0 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP4NInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHP4NInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAInelasticFS.cc index bd6188d4e1..e75cfc5016 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAngular.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAngular.cc index 2bb01e282d..849a60a825 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAngular.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPAngular.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -88,6 +88,7 @@ void G4NeutronHPAngular::SampleAndUpdate(G4ReactionProduct & aHadron) if(theIsoFlag) { // G4cout << "Angular result "<GetNumberOfElements(); G4int index = theMaterial->GetElement(0)->GetIndex(); @@ -73,7 +74,7 @@ { xSec = new G4double[n]; G4double sum=0; - G4int i, index; + G4int i; const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); G4double rWeight; G4NeutronHPThermalBoost aThermalE; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc index bd80cda639..25e222dcad 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -52,6 +52,7 @@ void G4NeutronHPCaptureData::BuildPhysicsTable(const G4ParticleDefinition& aP) if(&aP!=G4Neutron::Neutron()) G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); size_t numberOfElements = G4Element::GetNumberOfElements(); + // G4cout << "CALLED G4NeutronHPCaptureData::BuildPhysicsTable "<GetIndex(); + G4cout << "IndexDebug "<< i <<" "<MakePhysicsVector((*theElementTable)[i], this); theCrossSections->push_back(physVec); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc index dbaa72b08d..9980243966 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc index 6133234373..69e59d5b66 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc index 044f2adf46..cb01b37b4d 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannelList.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc index c42f21994b..009d839dc6 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc index c062b31350..9862883f71 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc index 17fd10c4fa..d68a9be540 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc index 01c1b18711..1e90df8b3a 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc index 58d2c0ed9b..967ea8cc49 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPData.cc index 13d8b121fd..664a9b6aa5 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDeExGammas.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDeExGammas.cc index d51f464f84..b5c3f9978f 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDeExGammas.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDeExGammas.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc index 4c0366698b..301f74fe7e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc index e818e82418..7d965037b6 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc index 7230ef1c9a..5f472e3111 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc index 5ba496e8ef..940324964a 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc index ae47586d28..77a85bca6b 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElementData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPEnAngCorrelation.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPEnAngCorrelation.cc index e703a493f5..6f030ea539 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPEnAngCorrelation.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPEnAngCorrelation.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFCFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFCFissionFS.cc index b6fc2975bc..9c619865b8 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFCFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFCFissionFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc index cf05e63aba..96c07d8c23 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre.cc index c70a941588..4aaeb121e1 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_14.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_14.cc index 48ebece4aa..f72b57320f 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_14.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_14.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_18.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_18.cc index 20cc8d11aa..de89d0f040 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_18.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_18.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_21.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_21.cc index 0c0250855b..0e03498613 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_21.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_21.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_24.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_24.cc index 592394b548..d802dc3ce5 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_24.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_24.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_26.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_26.cc index 0431361c40..614060e15b 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_26.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_26.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_28.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_28.cc index c3f6c8a85b..8c00bae50e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_28.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_28.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_30.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_30.cc index a84d92e572..308a919b4f 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_30.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFastLegendre_30.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPField.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPField.cc index fcd9d2926d..c049df55e2 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPField.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPField.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFieldPoint.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFieldPoint.cc index abbd6d94c6..b5fc89f0fe 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFieldPoint.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFieldPoint.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc index 3817476a4f..0fd76b51ea 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc index 56a4d65594..38aee47e8c 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionBaseFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc index 7be3e1ff63..32b799c2f1 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionFS.cc index e27c2d6951..fd624a35a6 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPGamma.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPGamma.cc index 5818120af2..ba5563c82d 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPGamma.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPGamma.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPHe3InelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPHe3InelasticFS.cc index bae39e7a42..7fcc02aa85 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPHe3InelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPHe3InelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc index 9e1fd31a07..3d3852a53c 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelastic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -29,8 +29,8 @@ // based on the Program) you indicate your acceptance of this statement, // and all its terms. // -// $Id: G4NeutronHPInelastic.cc,v 1.12 2001/10/19 11:54:51 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronHPInelastic.cc,v 1.13 2002/12/12 19:18:25 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4NeutronHPInelastic.hh" diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc index bdb5826ced..b8615344ee 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -183,6 +183,7 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, G4ReactionProduct boosted; boosted.Lorentz(theNeutron, theTarget); eKinetic = boosted.GetKineticEnergy(); + G4double orgMomentum = boosted.GetMomentum().mag(); // Take N-body phase-space distribution, if no other data present. if(!HasFSData()) // adding the residual is trivial here @@@ @@ -253,6 +254,9 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, } } G4ReactionProduct * aHadron; + G4double localMass = ( G4NucleiPropertiesTable::GetAtomicMass(static_cast(theBaseZ+eps), static_cast(theBaseA+eps))- + theBaseZ*G4Electron::ElectronDefinition()->GetPDGMass() ); + G4ThreeVector bufferedDirection(0,0,0); for(i0=0; i0SetDefinition(theDefs[i0]); aHadron->SetKineticEnergy(theEnergyDistribution->Sample(eKinetic, dummy)); } + else if(nDef == 1) + { + aHadron->SetDefinition(theDefs[i0]); + aHadron->SetKineticEnergy(eKinetic); + } + else if(nDef == 2) + { + aHadron->SetDefinition(theDefs[i0]); + aHadron->SetKineticEnergy(50*MeV); + } else { G4Exception("No energy distribution to sample from in InelasticBaseFS::BaseApply"); } theAngularDistribution->SampleAndUpdate(*aHadron); + if(theEnergyDistribution==NULL && nDef == 2) + { + if(i0==0) + { + G4double m1 = theDefs[0]->GetPDGMass(); + G4double m2 = theDefs[1]->GetPDGMass(); + G4double mn = G4Neutron::Neutron()->GetPDGMass(); + G4int z1 = static_cast(theBaseZ+eps-theDefs[0]->GetPDGCharge()-theDefs[1]->GetPDGCharge()); + G4int a1 = static_cast(theBaseA+eps)-theDefs[0]->GetBaryonNumber()-theDefs[1]->GetBaryonNumber(); + G4double concreteMass = G4NucleiPropertiesTable::GetAtomicMass(z1, a1)-z1*G4Electron::ElectronDefinition()->GetPDGMass(); + G4double availableEnergy = eKinetic+mn+localMass-m1-m2-concreteMass; + // available kinetic energy in CMS (non relativistic) + G4double emin = availableEnergy+m1+m2 - sqrt((m1+m2)*(m1+m2)+orgMomentum*orgMomentum); + G4double p1=sqrt(2.*m2*emin); + bufferedDirection = p1*aHadron->GetMomentum().unit(); + if(getenv("HTOKEN")) // @@@@@ verify the nucleon counting... + { + G4cout << "HTOKEN "<SetTotalEnergy( sqrt(aHadron->GetMass()*aHadron->GetMass() + +bufferedDirection.mag2()) ); + aHadron->SetMomentum(bufferedDirection); + aHadron->Lorentz(*aHadron, -1.*(theTarget+theNeutron)); + if(getenv("HTOKEN")) + { + G4cout << " HTOKEN "<GetTotalEnergy()<<" "<GetMomentum()<push_back(aHadron); } } diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc index 60658e6ce5..d4fe1a7042 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc index 4b2f71a5ba..a3fb0163c2 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -102,6 +102,7 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) // MC integration loop G4int counter = 0; + G4int failCount = 0; G4double buffer = 0; G4int size = G4int(G4std::max(10., aT/60*kelvin)); G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); @@ -116,6 +117,19 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) boosted.Lorentz(theNeutron, aThermalNuc); G4double theEkin = boosted.GetKineticEnergy(); aXsection = (*((*theCrossSections)(index))).GetValue(theEkin, outOfRange); + if(aXsection <0) + { + if(failCount<1000) + { + failCount++; + counter--; + continue; + } + else + { + aXsection = 0; + } + } // velocity correction. G4ThreeVector targetVelocity = 1./aThermalNuc.GetMass()*aThermalNuc.GetMomentum(); aXsection *= (targetVelocity-neutronVelocity).mag()/neutronVMag; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInterpolator.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInterpolator.cc index 62bd951561..32c03ffa00 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInterpolator.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInterpolator.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsoData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsoData.cc index c994e6dcd3..801a6eed91 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsoData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsoData.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc index a9eaf6b5e1..5623269454 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc index 11ef3d9347..946f31693b 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLCFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLCFissionFS.cc index 57eb49e8f3..17bb5e4e56 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLCFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLCFissionFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc index 24430c9907..4996821c77 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLegendreStore.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLegendreStore.cc index ea10503a63..128b08349e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLegendreStore.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLegendreStore.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -106,7 +106,7 @@ G4double G4NeutronHPLegendreStore::SampleElastic (G4double anEnergy) G4double result; G4int i0; - G4int low, high; + G4int low(0), high(0); G4NeutronHPFastLegendre theLeg; for (i0=0; i092.5&&!getenv("AllowForHeavyElements") ) + { + G4cerr << "Please contact Hans-Peter.Wellisch@cern.ch"<92 are not provided"); + } G4String * theName = NULL; G4String theFileName(""); G4int inc = 1; G4std::ifstream * check = new G4std::ifstream(".dummy"); G4bool first = true; -// G4cout << "entered GetName!!!"<close(); delete check; + check = 0; aFlag = false; if(first) { @@ -90,7 +97,7 @@ *biff = base+"/"+"CrossSection/"+itoa(myZ)+"_"+"nat"+"_"+theString[myZ-1]; if(theName!=NULL) delete theName; theName = biff; -// G4cout <<"HPWD 2 "<<*theName<close(); delete check; + check = 0; aFlag = false; } else @@ -112,7 +120,7 @@ if(theName!=NULL) delete theName; *biff = base+"/"+rest+itoa(myZ)+"_"+"nat"+"_"+theString[myZ-1]; theName = biff; -// G4cout <<"HPWD 3 "<<*theName<close(); delete check; + check = 0; } return result; } diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPAInelasticFS.cc index 52dfb598c3..dd7c0d3dbb 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPAInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPDInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPDInelasticFS.cc index a3bc2292cd..43b762b1a1 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPDInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPDInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPInelasticFS.cc index dc87e519fc..2795f63aba 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPTInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPTInelasticFS.cc index b4341b3e46..bcede79a10 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPTInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPTInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPartial.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPartial.cc index 44b910c582..08d81b3432 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPartial.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPartial.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc index ad93ed65a0..40f3dd2ed5 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPPhotonDist.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPProduct.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPProduct.cc index 1e658db313..bae52f266e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPProduct.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPProduct.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPSCFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPSCFissionFS.cc index c292d6460f..2dd42fd1d7 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPSCFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPSCFissionFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc index 6efe91eda2..2a0d31f312 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTCFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTCFissionFS.cc index 43f5b5122c..789a47c623 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTCFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTCFissionFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc index 8d5a9796db..0785a65622 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc index b9880e451a..8e26acb27e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPWattSpectrum.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPWattSpectrum.cc index 2395ed82ad..b990d806fd 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPWattSpectrum.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPWattSpectrum.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/GNUmakefile b/source/processes/hadronic/models/radiative_decay/GNUmakefile index 9a16bbb98d..ac893f7039 100644 --- a/source/processes/hadronic/models/radiative_decay/GNUmakefile +++ b/source/processes/hadronic/models/radiative_decay/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2000/06/27 15:25:48 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2002/11/15 16:53:44 flei Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -19,6 +19,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include/ \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ diff --git a/source/processes/hadronic/models/radiative_decay/include/G4AlphaDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4AlphaDecayChannel.hh index 5ff7a8bc2f..f39193042a 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4AlphaDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4AlphaDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4BetaFermiFunction.hh b/source/processes/hadronic/models/radiative_decay/include/G4BetaFermiFunction.hh index 06cc32d36e..e4d5014bd6 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4BetaFermiFunction.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4BetaFermiFunction.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4BetaMinusDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4BetaMinusDecayChannel.hh index c6daf16ed0..59fc029400 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4BetaMinusDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4BetaMinusDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4BetaPlusDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4BetaPlusDecayChannel.hh index 84c1197ace..b59678cc56 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4BetaPlusDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4BetaPlusDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4ITDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4ITDecayChannel.hh index b09b19b7fa..6606eb8807 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4ITDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4ITDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4KshellECDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4KshellECDecayChannel.hh index 991754d4ab..423067c5bd 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4KshellECDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4KshellECDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4LshellECDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4LshellECDecayChannel.hh index 291ac7e7db..53184531a7 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4LshellECDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4LshellECDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4NuclearDecayChannel.hh b/source/processes/hadronic/models/radiative_decay/include/G4NuclearDecayChannel.hh index de723eec30..5550500273 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4NuclearDecayChannel.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4NuclearDecayChannel.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4NucleusLimits.hh b/source/processes/hadronic/models/radiative_decay/include/G4NucleusLimits.hh index 88dc528f60..af61c9cbbd 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4NucleusLimits.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4NucleusLimits.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RIsotopeTable.hh b/source/processes/hadronic/models/radiative_decay/include/G4RIsotopeTable.hh index 4fbf5e8c53..1cb9e9100a 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4RIsotopeTable.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4RIsotopeTable.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayMode.hh b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayMode.hh index 454ac0fe1c..ecbadfa69a 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayMode.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayMode.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRate.hh b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRate.hh index a19e8d5b70..7992117615 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRate.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRate.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRateVector.hh b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRateVector.hh index b4b6afda6c..2457f698b7 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRateVector.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRateVector.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecaymessenger.hh b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecaymessenger.hh index 3775ade0bc..28c928a3cb 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecaymessenger.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecaymessenger.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4UIcmdWithNucleusLimits.hh b/source/processes/hadronic/models/radiative_decay/include/G4UIcmdWithNucleusLimits.hh index c6e1896bc2..e987800877 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4UIcmdWithNucleusLimits.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4UIcmdWithNucleusLimits.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/include/G4UserLimitsForRD.hh b/source/processes/hadronic/models/radiative_decay/include/G4UserLimitsForRD.hh index fd28a89664..beb8802850 100644 --- a/source/processes/hadronic/models/radiative_decay/include/G4UserLimitsForRD.hh +++ b/source/processes/hadronic/models/radiative_decay/include/G4UserLimitsForRD.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/src/G4BetaFermiFunction.cc b/source/processes/hadronic/models/radiative_decay/src/G4BetaFermiFunction.cc index 2da08ec789..0b933dbcb9 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4BetaFermiFunction.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4BetaFermiFunction.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc b/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc index c2d2aa08fa..e376ddb00d 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc @@ -39,6 +39,9 @@ // 29 February 2000, P R Truscott, DERA UK // 0.b.3 release. // +// 18 October 2002, F Lei +// modified link metheds in DecayIt() to G4PhotoEvaporation() in order to +// use the new Internal Coversion feature. // 13 April 2000, F Lei, DERA UK // Changes made are: // 1) Use PhotonEvaporation instead of DiscreteGammaDeexcitation @@ -47,6 +50,7 @@ // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /////////////////////////////////////////////////////////////////////////////// // +#include "G4NuclearLevelManager.hh" #include "G4NuclearDecayChannel.hh" #include "G4DynamicParticle.hh" #include "G4DecayProducts.hh" @@ -56,10 +60,8 @@ #include "G4IonTable.hh" #include "G4BetaFermiFunction.hh" -#include "G4DiscreteGammaDeexcitation.hh" #include "G4PhotonEvaporation.hh" -#include "G4VGammaDeexcitation.hh" -#include "G4Gamma.hh" +#include "G4AtomicDeexcitation.hh" const G4double G4NuclearDecayChannel:: pTolerance = 0.001; @@ -84,7 +86,7 @@ G4NuclearDecayChannel::G4NuclearDecayChannel { #ifdef G4VERBOSE if (GetVerboseLevel()>1) - {G4cout <<"G4NuclearDecayChannel constructor for " <1) - {G4cout <<"G4NuclearDecayChannel constructor for " <1) - {G4cout <<"G4NuclearDecayChannel constructor for " < 0.0) { - G4NuclearLevelManager levelManager = G4NuclearLevelManager - (daughterZ, daughterA); + G4NuclearLevelManager levelManager = G4NuclearLevelManager(daughterZ, daughterA); if ( levelManager.NumberOfLevels() ) { const G4NuclearLevel* level = levelManager.NearestLevel (theDaughterExcitation); @@ -247,6 +249,10 @@ void G4NuclearDecayChannel::FillDaughterNucleus (G4int index, G4int A, G4int Z, daughterExcitation = 0.0; daughterNucleus = theIonTable->GetIon(daughterZ, daughterA, 0.0*keV); } + */ + daughterNucleus = theIonTable->GetIon(daughterZ, daughterA, theDaughterExcitation*MeV); + daughterExcitation = theDaughterExcitation; + SetDaughter(index, daughterNucleus); } @@ -297,10 +303,10 @@ G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass) { case 0: if (GetVerboseLevel()>0) - { - G4cout << "G4NuclearDecayChannel::DecayIt "; - G4cout << " daughters not defined " <0)) { G4cerr << "G4NuclearDecayChannel::DecayIt "; G4cerr << *parent_name << " can not decay " << G4endl; DumpInfo(); } + + // It seems the ARM in G4 is not working properly yet. So this feature will not be released yet! // + // now we have to take care of the EC product which have go through the ARM + if (decayMode == 3 || decayMode == 4 || decayMode == 5) { + G4int eShell = 0; + switch (decayMode) + { + case KshellEC: + // + { + eShell = 1; + } + break; + case LshellEC: + // + { + eShell = G4int(G4UniformRand()*3)+1; + } + break; + case MshellEC: + // + { + eShell = G4int(G4UniformRand()*5)+4; + } + break; + case ERROR: + default: + G4cout << " There is an error in decay mode selection! exit RDM now" << G4endl; + exit(0); + } + G4int aZ = daughterZ; + + G4AtomicDeexcitation* atomDeex = new G4AtomicDeexcitation(); + //no Auger electron generation + atomDeex->ActivateAugerElectronProduction(0); + G4std::vector* armProducts = atomDeex->GenerateParticles(aZ,eShell); + + // pop up the daughter before insertion + dynamicDaughter = products->PopProducts(); + for (size_t i = 0; i < armProducts->size(); i++) + products->PushProducts ((*armProducts)[i]); + delete armProducts; + delete atomDeex; + products->PushProducts (dynamicDaughter); + } + + // // If the decay is to an excited state of the daughter nuclide, we need // to apply the photo-evaporation process. // if (daughterExcitation > 0.0) - { - // - // - // Pop the daughter nucleus off the product vector - we need to retain - // the momentum of this particle. - // - dynamicDaughter = products->PopProducts(); - G4LorentzVector daughterMomentum = dynamicDaughter->Get4Momentum(); - G4ThreeVector const daughterMomentum1(static_cast (daughterMomentum)); - // - // - // Now define a G4Fragment with the correct A, Z and excitation, and declare and - // initialise a G4DiscreteGammaDeexcitation object. - // - - // daughterMomentum.setT(daughterMomentum.t()+G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( daughterZ, daughterA )+daughterExcitation); - - daughterMomentum.setT(daughterMomentum.t()+daughterExcitation); - G4Fragment nucleus(daughterA, daughterZ, daughterMomentum); - //G4LorentzVector p4(0.,0.,0.,G4NucleiProperties::GetNuclearMass(daughterA,daughterZ) - // +daughterExcitation); - //G4Fragment nucleus(daughterA, daughterZ, p4); - // nucleus.SetExcitationEnergy(daughterExcitation); + { + // + // + // Pop the daughter nucleus off the product vector - we need to retain + // the momentum of this particle. + // + dynamicDaughter = products->PopProducts(); + G4LorentzVector daughterMomentum = dynamicDaughter->Get4Momentum(); + G4ThreeVector const daughterMomentum1(static_cast (daughterMomentum)); + // + // + // Now define a G4Fragment with the correct A, Z and excitation, and declare and + // initialise a G4DiscreteGammaDeexcitation object. + // + + // daughterMomentum.setT(daughterMomentum.t()+G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( daughterZ, daughterA )+daughterExcitation); + + // daughterMomentum.setT(daughterMomentum.t()+daughterExcitation); + G4Fragment nucleus(daughterA, daughterZ, daughterMomentum); + //G4LorentzVector p4(0.,0.,0.,G4NucleiProperties::GetNuclearMass(daughterA,daughterZ) + // +daughterExcitation); + //G4Fragment nucleus(daughterA, daughterZ, p4); + // nucleus.SetExcitationEnergy(daughterExcitation); - // G4VGammaDeexcitation* deexcitation = new G4DiscreteGammaDeexcitation; - G4PhotonEvaporation* deexcitation = new G4PhotonEvaporation; - deexcitation->SetVerboseLevel(GetVerboseLevel()); - deexcitation->Initialize(nucleus); - // - // - // Get the gammas by deexciting the nucleus. - // - G4FragmentVector* gammas = deexcitation->BreakItUp(nucleus); - G4int nGammas=0; - // if (gammas!=0) nGammas=gammas->entries(); - // in the case of BreakItUp(nucleus), the returned G4FragmentVector contains the residual nuclide - // as its last entry. - if (gammas > 0) nGammas=gammas->size()-1; - // - // - // Go through each gamma and add it to the decay product. The angular distribution - // of the gammas is isotropic, and the residual nucleus is assumed not to suffer - // any recoil as a result of this de-excitation. - // - for (G4int ig=0; igoperator[](ig)->GetMomentum().e(); - G4DynamicParticle *theGammaRay = new - G4DynamicParticle (G4Gamma::GammaDefinition(), gDirection, gEnergy); - products->PushProducts (theGammaRay); + // G4VGammaDeexcitation* deexcitation = new G4DiscreteGammaDeexcitation; + G4PhotonEvaporation* deexcitation = new G4PhotonEvaporation; + deexcitation->SetVerboseLevel(GetVerboseLevel()); + // deexcitation->Initialize(nucleus); + deexcitation->SetICM(true); + if (decayMode == 0) { + deexcitation->RDMForced(true); + } else { + deexcitation->RDMForced(false); + } + // ARM in G4 is applied but no auger electrons! + deexcitation->SetARM(true); + // deexcitation->SetARM(false); + deexcitation->SetMaxHalfLife(1e-6*second); + // + // Get the gammas by deexciting the nucleus. + // + G4FragmentVector* gammas = deexcitation->BreakItUp(nucleus); + // in the case of BreakItUp(nucleus), the returned G4FragmentVector contains the residual nuclide + // as its last entry. + G4int nGammas=gammas->size()-1; + // + // + // Go through each gamma/e- and add it to the decay product. The angular distribution + // of the gammas is isotropic, and the residual nucleus is assumed not to suffer + // any recoil as a result of this de-excitation. + // + for (G4int ig=0; igoperator[](ig)->GetMomentum().e() + // - gammas->operator[](ig)->GetParticleDefinition()->GetPDGMass() ; + G4DynamicParticle *theGammaRay = new + G4DynamicParticle (gammas->operator[](ig)->GetParticleDefinition(), + gammas->operator[](ig)->GetMomentum()); + theGammaRay -> SetProperTime(gammas->operator[](ig)->GetCreationTime()); + products->PushProducts (theGammaRay); + } + // + // now the nucleus + G4double finalDaughterExcitation = gammas->operator[](nGammas)->GetExcitationEnergy(); + G4IonTable *theIonTable = (G4IonTable*)(G4ParticleTable::GetParticleTable()->GetIonTable()); + dynamicDaughter = new G4DynamicParticle + (theIonTable->GetIon(daughterZ,daughterA,finalDaughterExcitation), + daughterMomentum1); + products->PushProducts (dynamicDaughter); + // + // Delete/reset variables associated with the gammas. + // + // if (nGammas != 0) gammas->clearAndDestroy(); + while (!gammas->empty()) { + delete *(gammas->end()-1); + gammas->pop_back(); + } + // gammas->clearAndDestroy(); + delete gammas; + delete deexcitation; } - // - // - // Delete/reset variables associated with the gammas. - // - // if (nGammas != 0) gammas->clearAndDestroy(); - while (!gammas->empty()) { - delete *(gammas->end()-1); - gammas->pop_back(); - } -// gammas->clearAndDestroy(); - delete gammas; - delete deexcitation; - // - // - // Finally, add the residual nucleus to the product vector. Note that for the - // moment the daughter is assumed to end-up in the GROUND STATE, since - // G4PhotoEvaporation cannot be made to stop when it reaches a long-lived - // isomer. - // - G4double finalDaughterExcitation = 0.0*MeV; - G4IonTable *theIonTable = (G4IonTable*)(G4ParticleTable::GetParticleTable()->GetIonTable()); - dynamicDaughter = new G4DynamicParticle - (theIonTable->GetIon(daughterZ,daughterA,finalDaughterExcitation), - daughterMomentum1); - products->PushProducts (dynamicDaughter); - } return products; } //////////////////////////////////////////////////////////////////////////////// @@ -499,7 +556,7 @@ G4DecayProducts *G4NuclearDecayChannel::BetaDecayIt() G4cout<< " Q = " <0) { + G4cout <<"G4RIsotopeTable::GetMeanLife() : "; + G4cout <<"cannot find ion of required excitation E = " << aE << G4endl; + G4cout <<"state in radioactive data file " < 0. +// ENSDF occationally have beta decay entries with zero energies +// // 27 Sepetember 2001, F. Lei // verboselevel(0) used in constructor // @@ -624,19 +629,21 @@ G4DecayTable *G4RadioactiveDecay::LoadDecayTable (G4ParticleDefinition os <>recordType >>a >>b; - if (found) {complete = true;} - else {found = (abs(a*keV - E)0) { - // a comment line identified and print out the message + inputLine = inputChars; + // G4String::stripType stripend(1); + // inputLine = inputLine.strip(stripend); + inputLine = inputLine.strip(1); + if (inputChars[0] != '#' && inputLine.length() != 0) + { + G4std::istrstream tmpStream(inputLine); + if (inputChars[0] == 'P') + // + // + // Nucleus is a parent type. Check the excitation level to see if it matches + // that of theParentNucleus // - G4cout << " Warning in G4RadioactiveDecay::LoadDecayTable " << G4endl; - G4cout << " In data file " << file << G4endl; - G4cout << " " << inputLine << G4endl; - } -#endif - } - else - { - tmpStream >>theDecayMode >>a >>b >>c; - a/=1000.; - c/=1000.; - - // cout<< "The decay mode is [LoadTable] "<Insert(anITChannel); - break; - } - case BetaMinus: - // - // - // Decay mode is beta-. - // - if (modeFirstRecord[1]) - {modeFirstRecord[1] = false; modeTotalBR[1] = b;} - else - { - // to work out the Fermi function normalization factor first - G4BetaFermiFunction* aBetaFermiFunction = new G4BetaFermiFunction (A, (Z+1)); - e0 = c*MeV/0.511; - n = aBetaFermiFunction->GetFFN(e0); - - // now to work out the histogram and initialise the random generator - G4int npti = 100; - G4double* pdf = new G4double[npti]; - G4int ptn; - G4double g,e,ee,f; - ee = e0+1.; - for (ptn=0; ptnGetFF(e); - } - RandGeneral* aRandomEnergy = new RandGeneral( pdf, npti); - - G4BetaMinusDecayChannel *aBetaMinusChannel = new - G4BetaMinusDecayChannel (GetVerboseLevel(), &theParentNucleus, - b, c*MeV, a*MeV, n, FBeta, aRandomEnergy); - theDecayTable->Insert(aBetaMinusChannel); - modeSumBR[1] += b; - - - delete[] pdf; - delete aBetaFermiFunction; - } - break; - case BetaPlus: - // - // - // Decay mode is beta+. - // - if (modeFirstRecord[2]) - {modeFirstRecord[2] = false; modeTotalBR[2] = b;} - else - { - G4BetaFermiFunction* aBetaFermiFunction = new G4BetaFermiFunction (A, -(Z-1)); - e0 = c*MeV/0.511; - n = aBetaFermiFunction->GetFFN(e0); - - // now to work out the histogram and initialise the random generator - G4int npti = 100; - G4double* pdf = new G4double[npti]; - G4int ptn; - G4double g,e,ee,f; - ee = e0+1.; - for (ptn=0; ptnGetFF(e); - } - RandGeneral* aRandomEnergy = new RandGeneral( pdf, npti); - G4BetaPlusDecayChannel *aBetaPlusChannel = new - G4BetaPlusDecayChannel (GetVerboseLevel(), &theParentNucleus, - b, c*MeV, a*MeV, n, FBeta, aRandomEnergy); - theDecayTable->Insert(aBetaPlusChannel); - modeSumBR[2] += b; - - delete[] pdf; - delete aBetaFermiFunction; - } - break; - case KshellEC: - // - // - // Decay mode is K-electron capture. - // - if (modeFirstRecord[3]) - {modeFirstRecord[3] = false; modeTotalBR[3] = b;} - else - { - G4KshellECDecayChannel *aKECChannel = new - G4KshellECDecayChannel (GetVerboseLevel(), &theParentNucleus, - b, c*MeV, a*MeV); - theDecayTable->Insert(aKECChannel); - //delete aKECChannel; - modeSumBR[3] += b; - } - break; - case LshellEC: - // - // - // Decay mode is L-electron capture. - // - if (modeFirstRecord[4]) - {modeFirstRecord[4] = false; modeTotalBR[4] = b;} - else - { - G4LshellECDecayChannel *aLECChannel = new - G4LshellECDecayChannel (GetVerboseLevel(), &theParentNucleus, - b, c*MeV, a*MeV); - theDecayTable->Insert(aLECChannel); - //delete aLECChannel; - modeSumBR[4] += b; - } - break; - case MshellEC: - // - // - // Decay mode is M-electron capture. In this implementation it is added to L-shell case - // - if (modeFirstRecord[5]) - {modeFirstRecord[5] = false; modeTotalBR[5] = b;} - else - { - G4LshellECDecayChannel *aLECChannel = new - G4LshellECDecayChannel (GetVerboseLevel(), &theParentNucleus, - b, c*MeV, a*MeV); - theDecayTable->Insert(aLECChannel); - //delete aLECChannel; - modeSumBR[5] += b; - } - break; - case Alpha: - // - // - // Decay mode is alpha. - // - if (modeFirstRecord[6]) - {modeFirstRecord[6] = false; modeTotalBR[6] = b;} - else - { - G4AlphaDecayChannel *anAlphaChannel = new - G4AlphaDecayChannel (GetVerboseLevel(), &theParentNucleus, - b, c*MeV, a*MeV); - theDecayTable->Insert(anAlphaChannel); - // delete anAlphaChannel; - modeSumBR[6] += b; - } - break; - case ERROR: - default: - // - // - G4cout << " There is an error in decay mode selection! exit RDM now" << G4endl; - exit(0); - + tmpStream >>recordType >>a >>b; + if (found) {complete = true;} + else {found = (abs(a*keV - E)0) { + // a comment line identified and print out the message + // + G4cout << " Warning in G4RadioactiveDecay::LoadDecayTable " << G4endl; + G4cout << " In data file " << file << G4endl; + G4cout << " " << inputLine << G4endl; + } +#endif + } + else + { + tmpStream >>theDecayMode >>a >>b >>c; + a/=1000.; + c/=1000.; + + // cout<< "The decay mode is [LoadTable] "<Insert(anITChannel); + break; + } + case BetaMinus: + // + // + // Decay mode is beta-. + // + if (modeFirstRecord[1]) + {modeFirstRecord[1] = false; modeTotalBR[1] = b;} + else + { + if (c > 0.) { + // to work out the Fermi function normalization factor first + G4BetaFermiFunction* aBetaFermiFunction = new G4BetaFermiFunction (A, (Z+1)); + e0 = c*MeV/0.511; + n = aBetaFermiFunction->GetFFN(e0); + + // now to work out the histogram and initialise the random generator + G4int npti = 100; + G4double* pdf = new G4double[npti]; + G4int ptn; + G4double g,e,ee,f; + ee = e0+1.; + for (ptn=0; ptnGetFF(e); + } + RandGeneral* aRandomEnergy = new RandGeneral( pdf, npti); + + G4BetaMinusDecayChannel *aBetaMinusChannel = new + G4BetaMinusDecayChannel (GetVerboseLevel(), &theParentNucleus, + b, c*MeV, a*MeV, n, FBeta, aRandomEnergy); + theDecayTable->Insert(aBetaMinusChannel); + modeSumBR[1] += b; + delete[] pdf; + delete aBetaFermiFunction; + } + } + break; + case BetaPlus: + // + // + // Decay mode is beta+. + // + if (modeFirstRecord[2]) + {modeFirstRecord[2] = false; modeTotalBR[2] = b;} + else + { + if (c > 0.) { + G4BetaFermiFunction* aBetaFermiFunction = new G4BetaFermiFunction (A, -(Z-1)); + e0 = c*MeV/0.511; + n = aBetaFermiFunction->GetFFN(e0); + // now to work out the histogram and initialise the random generator + G4int npti = 100; + G4double* pdf = new G4double[npti]; + G4int ptn; + G4double g,e,ee,f; + ee = e0+1.; + for (ptn=0; ptnGetFF(e); + } + RandGeneral* aRandomEnergy = new RandGeneral( pdf, npti); + G4BetaPlusDecayChannel *aBetaPlusChannel = new + G4BetaPlusDecayChannel (GetVerboseLevel(), &theParentNucleus, + b, c*MeV, a*MeV, n, FBeta, aRandomEnergy); + theDecayTable->Insert(aBetaPlusChannel); + modeSumBR[2] += b; + + delete[] pdf; + delete aBetaFermiFunction; + } + } + break; + case KshellEC: + // + // + // Decay mode is K-electron capture. + // + if (modeFirstRecord[3]) + {modeFirstRecord[3] = false; modeTotalBR[3] = b;} + else + { + G4KshellECDecayChannel *aKECChannel = new + G4KshellECDecayChannel (GetVerboseLevel(), &theParentNucleus, + b, c*MeV, a*MeV); + theDecayTable->Insert(aKECChannel); + //delete aKECChannel; + modeSumBR[3] += b; + } + break; + case LshellEC: + // + // + // Decay mode is L-electron capture. + // + if (modeFirstRecord[4]) + {modeFirstRecord[4] = false; modeTotalBR[4] = b;} + else + { + G4LshellECDecayChannel *aLECChannel = new + G4LshellECDecayChannel (GetVerboseLevel(), &theParentNucleus, + b, c*MeV, a*MeV); + theDecayTable->Insert(aLECChannel); + //delete aLECChannel; + modeSumBR[4] += b; + } + break; + case MshellEC: + // + // + // Decay mode is M-electron capture. In this implementation it is added to L-shell case + // + if (modeFirstRecord[5]) + {modeFirstRecord[5] = false; modeTotalBR[5] = b;} + else + { + G4LshellECDecayChannel *aLECChannel = new + G4LshellECDecayChannel (GetVerboseLevel(), &theParentNucleus, + b, c*MeV, a*MeV); + theDecayTable->Insert(aLECChannel); + //delete aLECChannel; + modeSumBR[5] += b; + } + break; + case Alpha: + // + // + // Decay mode is alpha. + // + if (modeFirstRecord[6]) + {modeFirstRecord[6] = false; modeTotalBR[6] = b;} + else + { + G4AlphaDecayChannel *anAlphaChannel = new + G4AlphaDecayChannel (GetVerboseLevel(), &theParentNucleus, + b, c*MeV, a*MeV); + theDecayTable->Insert(anAlphaChannel); + // delete anAlphaChannel; + modeSumBR[6] += b; + } + break; + case ERROR: + default: + // + // + G4cout << " There is an error in decay mode selection! exit RDM now" << G4endl; + exit(0); + + } + } + } + } + + } + DecaySchemeFile.close(); + if (!found && E > 0.) { + // cases where IT cascade follows immediately after a decay + + // Decay mode is isomeric transition. + // + G4ITDecayChannel *anITChannel = new G4ITDecayChannel + (GetVerboseLevel(), &theParentNucleus, 1); + theDecayTable->Insert(anITChannel); + } // // // Go through the decay table and make sure that the branching ratios are @@ -896,17 +913,25 @@ G4DecayTable *G4RadioactiveDecay::LoadDecayTable (G4ParticleDefinition G4int j = 0; G4double theBR = 0.0; for (i=0; ientries(); i++) - { - theChannel = theDecayTable->GetDecayChannel(i); - theNuclearDecayChannel = static_cast(theChannel); - theDecayMode = theNuclearDecayChannel->GetDecayMode(); - j = 0; - if (theDecayMode != IT) { - theBR = theChannel->GetBR(); - theChannel->SetBR(theBR*modeTotalBR[theDecayMode]/modeSumBR[theDecayMode]); + theChannel = theDecayTable->GetDecayChannel(i); + theNuclearDecayChannel = static_cast(theChannel); + theDecayMode = theNuclearDecayChannel->GetDecayMode(); + j = 0; + if (theDecayMode != IT) + { + theBR = theChannel->GetBR(); + theChannel->SetBR(theBR*modeTotalBR[theDecayMode]/modeSumBR[theDecayMode]); + } + } + + if (theDecayTable && GetVerboseLevel()>1) + { + G4cout <<"G4RadioactiveDecay::LoadDecayTable()" << G4endl; + G4cout << " No. of entries: "<< theDecayTable->entries() <DumpInfo(); } - } + return theDecayTable; } @@ -1048,8 +1073,8 @@ void G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition &theParent if (abs(daughterExcitation - level->Energy()) < levelTolerance) { // Level hafe life is in ns and I want to set the gate as 1 micros - - if (level->HalfLife() >= 1000.){ + if ( theDecayMode == 0 && level->HalfLife() >= 1000.){ + // some further though may needed here theDecayTable->Insert(theChannel); } else{ @@ -1278,7 +1303,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 #ifdef G4VERBOSE if (GetVerboseLevel()>0) { - G4cout <<"G4RadioactiveDecay::DoIt : " + G4cout <<"G4RadioactiveDecay::DecayIt : " << theTrack.GetVolume()->GetLogicalVolume()->GetName() << " is not selected for the RDM"<< G4endl; G4cout << " There are " << ValidVolumes.size() << " volumes" << G4endl; @@ -1308,7 +1333,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 #ifdef G4VERBOSE if (GetVerboseLevel()>0) { - G4cerr <<"G4RadioactiveDecay::DoIt : " + G4cerr <<"G4RadioactiveDecay::DecayIt : " <GetParticleName() << " is not a valid nucleus for the RDM"<< G4endl; } @@ -1340,7 +1365,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 #ifdef G4VERBOSE if (GetVerboseLevel()>0) { - G4cerr <<"G4RadioactiveDecay::DoIt : decay table not defined for"; + G4cerr <<"G4RadioactiveDecay::DecayIt : decay table not defined for "; G4cerr <GetParticleName() <1) { - G4cout <<"G4RadioactiveDecay::DoIt : Decay vertex :"; + G4cout <<"G4RadioactiveDecay::DecayIt : Decay vertex :"; G4cout <<" Time: " <DumpInfo(); } #endif diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayMode.cc b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayMode.cc index 3da2719561..5d12a1e060 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayMode.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayMode.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRate.cc b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRate.cc index 703dcdeb24..11cf3d7e6f 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRate.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRate.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRateVector.cc b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRateVector.cc index a6434d9f2e..8e02aa3f6a 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRateVector.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRateVector.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecaymessenger.cc b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecaymessenger.cc index 64ef831828..34697d2a7c 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecaymessenger.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecaymessenger.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/models/radiative_decay/src/G4UIcmdWithNucleusLimits.cc b/source/processes/hadronic/models/radiative_decay/src/G4UIcmdWithNucleusLimits.cc index 68061ee651..a1dabcf9c6 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4UIcmdWithNucleusLimits.cc +++ b/source/processes/hadronic/models/radiative_decay/src/G4UIcmdWithNucleusLimits.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh index e140004cd6..2b6ccf5832 100644 --- a/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AlphaInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AlphaInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Alpha Inelastic Process // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh index d6180a5765..8b0602bf87 100644 --- a/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiLambdaInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiLambdaInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh index 551de8c1d1..c90a9773f9 100644 --- a/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiNeutronInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiNeutronInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh index 7baffb6eb5..8f36bb940a 100644 --- a/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiOmegaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiOmegaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh index 7c0be274b7..6c4b644f72 100644 --- a/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiProtonInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiProtonInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh index c5844187f6..6aec0d2e90 100644 --- a/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiSigmaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiSigmaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh index dbf7a7f66f..f6ab67a68b 100644 --- a/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiSigmaPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiSigmaPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh index cefe7c51d4..2d0da7cbd7 100644 --- a/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiXiMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:09 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiXiMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh index 1b83fdc7bc..1dcb0c1ea5 100644 --- a/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiXiZeroInelasticProcess.hh,v 1.5 2001/08/01 17:12:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiXiZeroInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh b/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh index b9511bd771..a1d6c738bd 100644 --- a/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DeuteronInelasticProcess.hh,v 1.5 2001/08/01 17:12:10 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DeuteronInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Deuteron Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh b/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh index afd06bade3..6bfb593282 100644 --- a/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh +++ b/source/processes/hadronic/processes/include/G4ElectronNuclearProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -30,7 +30,7 @@ #define G4ElectronNuclearProcess_h 1 // Class Description -// Process for Ion Inelastic scattering; +// Process for electron nuclear inelastic scattering; // to be used in your physics list in case you need this physics. // Class Description - End diff --git a/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh b/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh index da86d4491e..ceed99af14 100644 --- a/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh +++ b/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh b/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh index be789de769..823ea5eba8 100644 --- a/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh b/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh index 096fd911c2..7705493568 100644 --- a/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh +++ b/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/include/G4IonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4IonInelasticProcess.hh index 653cb4991d..164bd525d3 100644 --- a/source/processes/hadronic/processes/include/G4IonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4IonInelasticProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh index 95e3d1874e..8b7e6b5a33 100644 --- a/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:11 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh index 8a468bcd92..55930104a5 100644 --- a/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh index 2941dcc166..85664c8dae 100644 --- a/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonZeroLInelasticProcess.hh,v 1.5 2001/08/01 17:12:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonZeroLInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4 Process: KaonZeroL Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh index 1a506e7350..6d0bdbb33e 100644 --- a/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonZeroSInelasticProcess.hh,v 1.5 2001/08/01 17:12:12 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonZeroSInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4 Process: KaonZeroS InelasticProcess Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh index 49db02f489..6a89f3935b 100644 --- a/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LambdaInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LambdaInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process : Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh b/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh index e46facdce9..9e3ff33080 100644 --- a/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Neutron Inelastic Process // original by H.P. Wellisch diff --git a/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh index a1b0e2d20f..b1b81488ec 100644 --- a/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4OmegaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OmegaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh b/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh index 87515279b3..505d8d9916 100644 --- a/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh +++ b/source/processes/hadronic/processes/include/G4PhotoNuclearProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -30,7 +30,7 @@ #define G4PhotoNuclearProcess_h 1 // Class Description -// Process for Ion Inelastic scattering; +// Process for photon nuclear inelastic scattering; // to be used in your physics list in case you need this physics. // Class Description - End diff --git a/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh index 71d4ddd332..566939c445 100644 --- a/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PionMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PionMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // PionMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh index f0e7f032a8..36593f91f7 100644 --- a/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PionPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:13 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PionPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4PositronNuclearProcess.hh b/source/processes/hadronic/processes/include/G4PositronNuclearProcess.hh index cc0270b734..5ea8833b4c 100644 --- a/source/processes/hadronic/processes/include/G4PositronNuclearProcess.hh +++ b/source/processes/hadronic/processes/include/G4PositronNuclearProcess.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -30,7 +30,7 @@ #define G4PositronNuclearProcess_h 1 // Class Description -// Process for Ion Inelastic scattering; +// Process for positron nuclear inelastic scattering; // to be used in your physics list in case you need this physics. // Class Description - End diff --git a/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh index 5e3f355cbe..1757771a8e 100644 --- a/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ProtonInelasticProcess.hh,v 1.5 2001/08/01 17:12:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProtonInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Proton Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh index a2cf4427d2..24c416aee2 100644 --- a/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4SigmaMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SigmaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4 Process: SigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh index acdacbb7ff..f820a2d37c 100644 --- a/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4SigmaPlusInelasticProcess.hh,v 1.5 2001/08/01 17:12:14 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SigmaPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4 Process: SigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh index 00f00d0f11..89f1e735fc 100644 --- a/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4TritonInelasticProcess.hh,v 1.5 2001/08/01 17:12:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TritonInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Triton Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh index 134ca54e21..01bae2d62e 100644 --- a/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4XiMinusInelasticProcess.hh,v 1.5 2001/08/01 17:12:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4XiMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4 Process: XiMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh b/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh index 9900b83965..bcd6eee5a1 100644 --- a/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4XiZeroInelasticProcess.hh,v 1.5 2001/08/01 17:12:15 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4XiZeroInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4 Process: XiZero Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc b/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc index a168c0014b..f467f55b3e 100644 --- a/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc b/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc index c004c1c65c..20c5caded8 100644 --- a/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc b/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc index 21401355af..be150f42a7 100644 --- a/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh b/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh index 67552264a6..e6d3a24503 100644 --- a/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiNeutronAnnihilationAtRest.hh,v 1.5 2001/08/01 17:12:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiNeutronAnnihilationAtRest.hh,v 1.6 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh b/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh index 1b6f81eebf..9ae35ac7fb 100644 --- a/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiProtonAnnihilationAtRest.hh,v 1.5 2001/08/01 17:12:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiProtonAnnihilationAtRest.hh,v 1.6 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh b/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh index 9c0f787754..63558a6c1e 100644 --- a/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh +++ b/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DistributionGenerator.hh,v 1.6 2001/10/04 20:00:39 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DistributionGenerator.hh,v 1.7 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh index 912c990544..ef8e7482cb 100644 --- a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh +++ b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonMinusAbsorption.hh,v 1.5 2001/08/01 17:12:19 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonMinusAbsorption.hh,v 1.6 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh index b4400292e5..9af90678e3 100644 --- a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonMinusAbsorptionAtRest.hh,v 1.7 2001/10/04 20:00:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonMinusAbsorptionAtRest.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/processes/hadronic/stopping/include/G4MuMinusCaptureCascade.hh b/source/processes/hadronic/stopping/include/G4MuMinusCaptureCascade.hh index dce46b5e3c..32af3cca0e 100644 --- a/source/processes/hadronic/stopping/include/G4MuMinusCaptureCascade.hh +++ b/source/processes/hadronic/stopping/include/G4MuMinusCaptureCascade.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh b/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh index 6804bc1023..baa0be1ad9 100644 --- a/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4MuonMinusCaptureAtRest.hh,v 1.6 2001/08/01 17:12:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MuonMinusCaptureAtRest.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 @@ -188,13 +188,13 @@ class G4MuonMinusCaptureAtRest : public G4VRestProcess G4int chargeResidNucl; G4double massGamma; - G4double massNeutrinoE; + G4double massNeutrinoMu; G4double massProton; G4double massNeutron; G4double massFragm[6]; G4ParticleDefinition* pdefGamma; - G4ParticleDefinition* pdefNeutrinoE; + G4ParticleDefinition* pdefNeutrinoMu; G4ParticleDefinition* pdefMuonMinus; G4ParticleDefinition* pdefNeutron; G4ParticleDefinition* pdefFragm[6]; diff --git a/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh b/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh index d6c6e80a15..a3ff71ee0b 100644 --- a/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronCaptureAtRest.hh,v 1.5 2001/08/01 17:12:20 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronCaptureAtRest.hh,v 1.6 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh b/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh index 49e1aadf02..a0445fea42 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusAbsorptionAtRest.hh,v 1.5 2001/08/01 17:12:21 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusAbsorptionAtRest.hh,v 1.6 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh index a56eb033b4..2133f7c59c 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopAbsorption.hh,v 1.7 2001/10/04 20:00:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopAbsorption.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh index 02b2fd4996..d21d0a32ca 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopAl.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopAl.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh index 8d48c5846f..1afc789421 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopC.hh,v 1.6 2001/10/04 20:00:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopC.hh,v 1.7 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh index 3f888f9366..96e914fee9 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopCo.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopCo.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh index 5c907b9fdc..624b823e96 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopCu.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopCu.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh index 1c2e428ddc..dc33d941dd 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopLi.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopLi.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopMaterial.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopMaterial.hh index fe2f14dc3d..ee4316951c 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopMaterial.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopMaterial.hh @@ -14,14 +14,14 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopMaterial.hh,v 1.7 2001/10/04 20:00:40 hpw Exp $ +// $Id: G4PiMinusStopMaterial.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh index 866f695e36..ada8337961 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopN.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopN.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh index 27199d415e..98331c3506 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopO.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopO.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh index f52553a29f..24d8f9d743 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopPb.hh,v 1.7 2001/10/05 16:09:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopPb.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh index 47d9c480d7..7ce4c4e7fe 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopTa.hh,v 1.7 2001/10/05 16:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopTa.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh b/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh index f7789e75ed..d5c6f083de 100644 --- a/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PionMinusAbsorptionAtRest.hh,v 1.5 2001/08/01 17:12:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PionMinusAbsorptionAtRest.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh index 0d6a5d0d6f..3216842541 100644 --- a/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopDeexcitation.hh,v 1.5 2001/08/01 17:12:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopDeexcitation.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh b/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh index b84b1cfa3e..7383312ff7 100644 --- a/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh +++ b/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopDeexcitationAlgorithm.hh,v 1.5 2001/08/01 17:12:24 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopDeexcitationAlgorithm.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh index 3ed2bf69d2..f0ee0e390a 100644 --- a/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopDummyDeexcitation.hh,v 1.5 2001/08/01 17:12:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopDummyDeexcitation.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopElementSelector.hh b/source/processes/hadronic/stopping/include/G4StopElementSelector.hh index 4346c9ce72..a5caf1f5f7 100644 --- a/source/processes/hadronic/stopping/include/G4StopElementSelector.hh +++ b/source/processes/hadronic/stopping/include/G4StopElementSelector.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh index 0116110456..c0a4440b90 100644 --- a/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopTheoDeexcitation.hh,v 1.5 2001/08/01 17:12:25 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopTheoDeexcitation.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc b/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc index ceee4ca83e..c9eae75574 100644 --- a/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc b/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc index 56f6b924ae..907246c5dc 100644 --- a/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4AntiProtonAnnihilationAtRest.cc,v 1.5 2001/10/19 11:55:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4AntiProtonAnnihilationAtRest.cc,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc b/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc index b5f61c3881..3e6d43d48d 100644 --- a/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc +++ b/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DistributionGenerator.cc,v 1.8 2001/10/05 16:09:44 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DistributionGenerator.cc,v 1.9 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc index 373a93e80e..06b02a5f1c 100644 --- a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc +++ b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4KaonMinusAbsorption.cc,v 1.5 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4KaonMinusAbsorption.cc,v 1.6 2002/12/12 19:18:37 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc index 287514d2c1..839d0d699c 100644 --- a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc b/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc index 91b40367e4..7a2ff6a2a0 100644 --- a/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc +++ b/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc index 9608881f11..f44f495555 100644 --- a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4MuonMinusCaptureAtRest.cc,v 1.7 2001/08/01 17:12:31 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MuonMinusCaptureAtRest.cc,v 1.10 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 @@ -39,6 +39,9 @@ // ************************************************************** // V.Ivanchenko 7 Apr 2000 Advance model for electromagnetic // capture and cascade +// V.Ivanchenko 10 Aug 2002 Add control on G4ParticleDefinition +// of secondaries +// V.Ivanchenko 27 Oct 2002 NeutrinoE->NeutrinoMu //----------------------------------------------------------------------------- #include "G4MuonMinusCaptureAtRest.hh" @@ -111,11 +114,11 @@ G4MuonMinusCaptureAtRest::G4MuonMinusCaptureAtRest(const G4String& processName) : G4VRestProcess (processName), // initialization massGamma(G4Gamma::Gamma()->GetPDGMass()/GeV), - massNeutrinoE(G4NeutrinoE::NeutrinoE()->GetPDGMass()/GeV), + massNeutrinoMu(G4NeutrinoMu::NeutrinoMu()->GetPDGMass()/GeV), massProton(G4Proton::Proton()->GetPDGMass()/GeV), massNeutron(G4Neutron::Neutron()->GetPDGMass()/GeV), pdefGamma(G4Gamma::Gamma()), - pdefNeutrinoE(G4NeutrinoE::NeutrinoE()), + pdefNeutrinoMu(G4NeutrinoMu::NeutrinoMu()), pdefMuonMinus(G4MuonMinus::MuonMinus()), pdefNeutron(G4Neutron::Neutron()) { @@ -284,14 +287,16 @@ G4VParticleChange* G4MuonMinusCaptureAtRest::AtRestDoIt( // Store nuclear cascade if(nGkine > 0) { for ( G4int isec = 0; isec < nGkine; isec++ ) { - G4DynamicParticle* aNewParticle = new G4DynamicParticle; - aNewParticle->SetDefinition( Gkin[isec].GetParticleDef() ); - aNewParticle->SetMomentum( Gkin[isec].GetMomentum() * GeV ); + G4ParticleDefinition* pd = Gkin[isec].GetParticleDef(); + if(pd) { + G4DynamicParticle* aNewParticle = new G4DynamicParticle(); + aNewParticle->SetDefinition( pd ); + aNewParticle->SetMomentum( Gkin[isec].GetMomentum() * GeV ); - localtime = globalTime + Gkin[isec].GetTOF(); - - G4Track* aNewTrack = new G4Track( aNewParticle, localtime*s, position ); - aParticleChange.AddSecondary( aNewTrack ); + localtime = globalTime + Gkin[isec].GetTOF(); + G4Track* aNewTrack = new G4Track( aNewParticle, localtime*s, position); + aParticleChange.AddSecondary( aNewTrack ); + } } } @@ -301,12 +306,15 @@ G4VParticleChange* G4MuonMinusCaptureAtRest::AtRestDoIt( localtime = globalTime*s + tDelay; for ( G4int isec = 0; isec < nCascade; isec++ ) { - G4DynamicParticle* aNewParticle = new G4DynamicParticle; - aNewParticle->SetDefinition( Cascade[isec].GetParticleDef() ); - aNewParticle->SetMomentum( Cascade[isec].GetMomentum() ); + G4ParticleDefinition* pd = Gkin[isec].GetParticleDef(); + if(pd) { + G4DynamicParticle* aNewParticle = new G4DynamicParticle; + aNewParticle->SetDefinition( pd ); + aNewParticle->SetMomentum( Cascade[isec].GetMomentum() ); - G4Track* aNewTrack = new G4Track( aNewParticle, localtime, position ); - aParticleChange.AddSecondary( aNewTrack ); + G4Track* aNewTrack = new G4Track( aNewParticle, localtime, position ); + aParticleChange.AddSecondary( aNewTrack ); + } } } @@ -3540,9 +3548,9 @@ void G4MuonMinusCaptureAtRest::DoMuCapture() // == Put neutrino on the stack IF DESIRED. ++nGkine; Gkin[nGkine-1].SetZero(); - Gkin[nGkine-1].SetMass( massNeutrinoE ); + Gkin[nGkine-1].SetMass( massNeutrinoMu ); Gkin[nGkine-1].SetMomentumAndUpdate( -txi * enu, -tyi * enu, -tzi * enu ); - Gkin[nGkine-1].SetParticleDef( pdefNeutrinoE ); + Gkin[nGkine-1].SetParticleDef( pdefNeutrinoMu ); Gkin[nGkine-1].SetTOF( tDelay ); // == i__1 = nstak1; diff --git a/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc index bdd6e8bede..868135a57c 100644 --- a/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4NeutronCaptureAtRest.cc,v 1.5 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4NeutronCaptureAtRest.cc,v 1.6 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc b/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc index 379b3417d2..a9cb292adc 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusAbsorptionAtRest.cc,v 1.10 2002/06/07 15:30:58 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusAbsorptionAtRest.cc,v 1.11 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc index 41d490067d..09fc3873ad 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopAbsorption.cc,v 1.11 2002/06/07 15:30:58 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopAbsorption.cc,v 1.12 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc index cbb66b335f..6fbb82e690 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopAl.cc,v 1.7 2001/10/04 20:00:41 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopAl.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc index 2722fad30d..906141f068 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopC.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopC.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc index decdc67606..42706581a5 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopCo.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopCo.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc index 28b7554a2b..f3e5da1be2 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopCu.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopCu.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc index a2fd28ad44..eeb1db39b4 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopLi.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopLi.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc index a1d6f491fb..83d0731a68 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopMaterial.cc,v 1.9 2002/02/12 19:03:00 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopMaterial.cc,v 1.10 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc index 37d1adc5f9..0107da7907 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopN.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopN.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc index 2556c5e750..fc8e277a40 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopO.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopO.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc index c7531e03d7..b522d2d76d 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopPb.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopPb.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc index 13126653f7..87442375ad 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PiMinusStopTa.cc,v 1.7 2001/10/04 20:00:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PiMinusStopTa.cc,v 1.8 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc b/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc index 624b9f02dd..9052d75c96 100644 --- a/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4PionMinusAbsorptionAtRest.cc,v 1.6 2001/10/19 11:55:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PionMinusAbsorptionAtRest.cc,v 1.7 2002/12/12 19:18:38 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc index ce94a823f9..8cd86da43b 100644 --- a/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopDeexcitation.cc,v 1.7 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopDeexcitation.cc,v 1.8 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc index 1e303eb9aa..64c8ad759c 100644 --- a/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopDummyDeexcitation.cc,v 1.7 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopDummyDeexcitation.cc,v 1.8 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4StopElementSelector.cc b/source/processes/hadronic/stopping/src/G4StopElementSelector.cc index 8664f605e4..0d534a2eaa 100644 --- a/source/processes/hadronic/stopping/src/G4StopElementSelector.cc +++ b/source/processes/hadronic/stopping/src/G4StopElementSelector.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc index b1d01d8e08..942b6cdd07 100644 --- a/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StopTheoDeexcitation.cc,v 1.8 2002/06/07 15:30:58 jwellisc Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StopTheoDeexcitation.cc,v 1.9 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/util/GNUmakefile b/source/processes/hadronic/util/GNUmakefile index 1fade780a0..933b388f9c 100644 --- a/source/processes/hadronic/util/GNUmakefile +++ b/source/processes/hadronic/util/GNUmakefile @@ -1,8 +1,9 @@ -# $Id: GNUmakefile,v 1.6 2002/02/20 18:06:22 gcosmo Exp $ +# $Id: GNUmakefile,v 1.8 2002/11/12 02:05:59 larazb Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic management library. G.Folger 10-Dec-97 # ---------------------------------------------------------------- + name := G4hadronic_util ifndef G4INSTALL @@ -13,6 +14,12 @@ include $(G4INSTALL)/config/architecture.gmk G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + + + CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ diff --git a/source/processes/hadronic/util/include/DumpFrame.hh b/source/processes/hadronic/util/include/DumpFrame.hh index d1cc1915b3..cfce860fe3 100644 --- a/source/processes/hadronic/util/include/DumpFrame.hh +++ b/source/processes/hadronic/util/include/DumpFrame.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/util/include/G4DynamicParticleVector.hh b/source/processes/hadronic/util/include/G4DynamicParticleVector.hh index 90afd0c1e9..3761e9f838 100644 --- a/source/processes/hadronic/util/include/G4DynamicParticleVector.hh +++ b/source/processes/hadronic/util/include/G4DynamicParticleVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4DynamicParticleVector.hh,v 1.8 2001/10/06 06:53:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DynamicParticleVector.hh,v 1.9 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // History: first implementation, alternative to G4FastVector diff --git a/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh b/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh index 5e628c4cfa..983db65935 100644 --- a/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh +++ b/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4GHEKinematicsVector.hh,v 1.4 2001/08/01 17:12:40 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GHEKinematicsVector.hh,v 1.5 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/util/include/G4IsoResult.hh b/source/processes/hadronic/util/include/G4IsoResult.hh index 85dfc8e29f..7c1d72978a 100644 --- a/source/processes/hadronic/util/include/G4IsoResult.hh +++ b/source/processes/hadronic/util/include/G4IsoResult.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/util/include/G4LightMedia.hh b/source/processes/hadronic/util/include/G4LightMedia.hh index 771fb03bbe..5bbcb4a235 100644 --- a/source/processes/hadronic/util/include/G4LightMedia.hh +++ b/source/processes/hadronic/util/include/G4LightMedia.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LightMedia.hh,v 1.4 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LightMedia.hh,v 1.5 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Light Media Charge and/or Strangeness Exchange // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/util/include/G4Nucleus.hh b/source/processes/hadronic/util/include/G4Nucleus.hh index 8d38621d31..ca0b3bf7de 100644 --- a/source/processes/hadronic/util/include/G4Nucleus.hh +++ b/source/processes/hadronic/util/include/G4Nucleus.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/util/include/G4Pair.hh b/source/processes/hadronic/util/include/G4Pair.hh index f1431f9f53..bdd63669d3 100644 --- a/source/processes/hadronic/util/include/G4Pair.hh +++ b/source/processes/hadronic/util/include/G4Pair.hh @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * diff --git a/source/processes/hadronic/util/include/G4ParticleVector.hh b/source/processes/hadronic/util/include/G4ParticleVector.hh index bb7af8bf11..b4a410d01a 100644 --- a/source/processes/hadronic/util/include/G4ParticleVector.hh +++ b/source/processes/hadronic/util/include/G4ParticleVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ParticleVector.hh,v 1.7 2001/10/05 16:10:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParticleVector.hh,v 1.8 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4ParticleVector_h diff --git a/source/processes/hadronic/util/include/G4ReactionDynamics.hh b/source/processes/hadronic/util/include/G4ReactionDynamics.hh index ff513c6596..83a7ddcd25 100644 --- a/source/processes/hadronic/util/include/G4ReactionDynamics.hh +++ b/source/processes/hadronic/util/include/G4ReactionDynamics.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ReactionDynamics.hh,v 1.6 2001/10/04 20:00:43 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReactionDynamics.hh,v 1.7 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Reaction Dynamics // original by H.P. Wellisch diff --git a/source/processes/hadronic/util/include/G4ReactionKinematics.hh b/source/processes/hadronic/util/include/G4ReactionKinematics.hh index 583d648520..8b6f7b4b49 100644 --- a/source/processes/hadronic/util/include/G4ReactionKinematics.hh +++ b/source/processes/hadronic/util/include/G4ReactionKinematics.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ReactionKinematics.hh,v 1.4 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReactionKinematics.hh,v 1.5 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1995 diff --git a/source/processes/hadronic/util/include/G4ReactionProduct.hh b/source/processes/hadronic/util/include/G4ReactionProduct.hh index 7c654a9e45..a69e50631c 100644 --- a/source/processes/hadronic/util/include/G4ReactionProduct.hh +++ b/source/processes/hadronic/util/include/G4ReactionProduct.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ReactionProduct.hh,v 1.4 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReactionProduct.hh,v 1.7 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // J.L. Chuma, TRIUMF, 31-Oct-1996 // last modified: 19-Dec-1996 @@ -139,6 +139,12 @@ inline G4bool GetNewlyAdded() const { return NewlyAdded; } + inline void SetMayBeKilled( const G4bool f ) + { MayBeKilled = f; } + + inline G4bool GetMayBeKilled() const + { return MayBeKilled; } + void SetZero(); void Lorentz( const G4ReactionProduct &p1, const G4ReactionProduct &p2 ); @@ -169,7 +175,12 @@ inline void HasInitialStateParton(G4bool aFlag) { hasInitialStateParton = aFlag; } inline G4bool HasInitialStateParton() const { return hasInitialStateParton; } - + +#ifdef PRECOMPOUND_TEST + void SetCreatorModel(const G4String& aModel) { theCreatorModel = aModel; } + G4String GetCreatorModel() const { return theCreatorModel; } +#endif + private: G4ParticleDefinition *theParticleDefinition; @@ -197,7 +208,12 @@ // NewlyAdded refers to particles added by "nuclear excitation", or as // "black track" particles, or as deuterons, tritons, and alphas G4bool NewlyAdded; - }; + G4bool MayBeKilled; + +#ifdef PRECOMPOUND_TEST + G4String theCreatorModel; +#endif +}; #endif diff --git a/source/processes/hadronic/util/include/G4ReactionProductVector.hh b/source/processes/hadronic/util/include/G4ReactionProductVector.hh index 7062042232..ff0020024e 100644 --- a/source/processes/hadronic/util/include/G4ReactionProductVector.hh +++ b/source/processes/hadronic/util/include/G4ReactionProductVector.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ReactionProductVector.hh,v 1.7 2001/10/05 16:10:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReactionProductVector.hh,v 1.8 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // History: first implementation, alternative to G4FastVector diff --git a/source/processes/hadronic/util/include/G4StableIsotopes.hh b/source/processes/hadronic/util/include/G4StableIsotopes.hh index 72673ed2eb..cb47ee01c1 100644 --- a/source/processes/hadronic/util/include/G4StableIsotopes.hh +++ b/source/processes/hadronic/util/include/G4StableIsotopes.hh @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StableIsotopes.hh,v 1.6 2001/08/01 17:12:42 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StableIsotopes.hh,v 1.7 2002/12/12 19:18:39 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4StableIsotopes_h #define G4StableIsotopes_h 1 diff --git a/source/processes/hadronic/util/src/G4LightMedia.cc b/source/processes/hadronic/util/src/G4LightMedia.cc index 086dedfb52..8378f187e2 100644 --- a/source/processes/hadronic/util/src/G4LightMedia.cc +++ b/source/processes/hadronic/util/src/G4LightMedia.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4LightMedia.cc,v 1.5 2001/10/05 16:10:06 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4LightMedia.cc,v 1.6 2002/12/12 19:18:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Hadronic Process: Light Media Charge and/or Strangeness Exchange // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/util/src/G4Nucleus.cc b/source/processes/hadronic/util/src/G4Nucleus.cc index 4d76a5ac3a..f35372affb 100644 --- a/source/processes/hadronic/util/src/G4Nucleus.cc +++ b/source/processes/hadronic/util/src/G4Nucleus.cc @@ -14,7 +14,7 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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. * @@ -280,6 +280,8 @@ G4ReactionProduct G4Nucleus::GetThermalNucleus(G4double targetMass, G4double tem pnBlackTrackEnergy *= 1.0 - 0.5*G4UniformRand(); dtaBlackTrackEnergy *= 1.0 - 0.5*G4UniformRand(); } +// G4cout << "EvaporationEffects "<GetDefinition()->GetParticleType() == "baryon") + { + if(aSec->GetDefinition()->GetBaryonNumber() < 0) + { + QValue = aSec->GetTotalEnergy(); + QValue += G4Neutron::Neutron()->GetPDGMass(); + } + else + { + G4double ss = 0; + ss +=aSec->GetDefinition()->GetPDGMass(); + if(aSec->GetDefinition() == G4Proton::Proton()) + { + ss -=G4Proton::Proton()->GetPDGMass(); + } + else + { + ss -=G4Neutron::Neutron()->GetPDGMass(); + } + ss += aSec->GetKineticEnergy(); + QValue = ss; + } + } + else if(aSec->GetDefinition()->GetPDGEncoding() == 0) + { + QValue = aSec->GetKineticEnergy(); + } + else + { + QValue = aSec->GetTotalEnergy(); + } + return QValue; + } +*/ G4bool G4ReactionDynamics::GenerateXandPt( G4FastVector &vec, @@ -84,8 +122,8 @@ if(vecLen == 0) return false; G4ParticleDefinition *aPiMinus = G4PionMinus::PionMinus(); - G4ParticleDefinition *anAntiProton = G4AntiProton::AntiProton(); - G4ParticleDefinition *anAntiNeutron = G4AntiNeutron::AntiNeutron(); + // G4ParticleDefinition *anAntiProton = G4AntiProton::AntiProton(); + // G4ParticleDefinition *anAntiNeutron = G4AntiNeutron::AntiNeutron(); G4ParticleDefinition *aProton = G4Proton::Proton(); G4ParticleDefinition *aNeutron = G4Neutron::Neutron(); G4ParticleDefinition *aPiPlus = G4PionPlus::PionPlus(); @@ -164,10 +202,11 @@ 0.312+0.200*log(log(centerofmassEnergy*centerofmassEnergy))+ pow(centerofmassEnergy*centerofmassEnergy,1.5)/6000.0 ); - G4double forwardEnergy = centerofmassEnergy/2.0 - currentMass; + G4double freeEnergy = centerofmassEnergy-currentMass-targetMass; + G4double forwardEnergy = freeEnergy/2.; G4int forwardCount = 1; // number of particles in forward hemisphere - G4double backwardEnergy = centerofmassEnergy/2.0 - targetMass; + G4double backwardEnergy = freeEnergy/2.; G4int backwardCount = 1; // number of particles in backward hemisphere if(veryForward) { @@ -209,6 +248,7 @@ xtarg = afc * (pow(atomicWeight,0.33)-1.0) * (2.0*backwardCount); if( xtarg <= 0.0 )xtarg = 0.01; G4int nuclearExcitationCount = Poisson( xtarg ); + if(atomicWeight<1.0001) nuclearExcitationCount = 0; G4int extraNucleonCount = 0; G4double extraNucleonMass = 0.0; if( nuclearExcitationCount > 0 ) @@ -269,11 +309,11 @@ G4int forwardParticlesLeft = 0; for( i=(vecLen-1); i>=0; --i ) { - if( vec[i]->GetSide() == 1 ) + if( vec[i]->GetSide() == 1 && vec[i]->GetMayBeKilled()) { forwardParticlesLeft = 1; if( ++is == iskip ) - { + { forwardEnergy += vec[i]->GetMass()/GeV; for( G4int j=i; j<(vecLen-1); j++ )*vec[j] = *vec[j+1]; // shift up --forwardCount; @@ -308,8 +348,8 @@ G4int backwardParticlesLeft = 0; for( i=(vecLen-1); i>=0; --i ) { - if( vec[i]->GetSide() < 0 ) - { + if( vec[i]->GetSide() < 0 && vec[i]->GetMayBeKilled()) + { backwardParticlesLeft = 1; if( ++is == iskip ) // eliminate the i'th particle { @@ -479,7 +519,6 @@ + dndl[l-1]; } innerCounter = 0; - // bug: reset the x,y components of the momentum, please. @@@@@@@ vec[i]->SetMomentum( pt*cos(phi)*GeV, pt*sin(phi)*GeV ); // // start of inner iteration loop @@ -611,7 +650,7 @@ } } // closes outer loop - if( eliminateThisParticle ) // not enough energy, eliminate this particle + if( eliminateThisParticle && vec[i]->GetMayBeKilled()) // not enough energy, eliminate this particle { if( vec[i]->GetSide() > 0 ) { @@ -998,23 +1037,61 @@ // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); G4int numberofFinalStateNucleons = 0; - if( (currentParticle.GetDefinition() == aProton) || - (currentParticle.GetDefinition() == aNeutron) )++numberofFinalStateNucleons; + if( currentParticle.GetDefinition() ==aProton || + currentParticle.GetDefinition() == aNeutron || + currentParticle.GetDefinition() == G4SigmaMinus::SigmaMinus()|| + currentParticle.GetDefinition() == G4SigmaPlus::SigmaPlus()|| + currentParticle.GetDefinition() == G4SigmaZero::SigmaZero()|| + currentParticle.GetDefinition() == G4XiZero::XiZero()|| + currentParticle.GetDefinition() == G4XiMinus::XiMinus()|| + currentParticle.GetDefinition() == G4OmegaMinus::OmegaMinus()|| + currentParticle.GetDefinition() == G4Lambda::Lambda()) ++numberofFinalStateNucleons; currentParticle.Lorentz( currentParticle, pseudoParticle[1] ); - if( (targetParticle.GetDefinition() == aProton) || - (targetParticle.GetDefinition() == aNeutron) )++numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==aProton || + targetParticle.GetDefinition() == aNeutron || + targetParticle.GetDefinition() == G4Lambda::Lambda() || + targetParticle.GetDefinition() == G4XiZero::XiZero()|| + targetParticle.GetDefinition() == G4XiMinus::XiMinus()|| + targetParticle.GetDefinition() == G4OmegaMinus::OmegaMinus()|| + targetParticle.GetDefinition() == G4SigmaZero::SigmaZero()|| + targetParticle.GetDefinition() == G4SigmaPlus::SigmaPlus()|| + targetParticle.GetDefinition() == G4SigmaMinus::SigmaMinus()) ++numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiProton::AntiProton()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiNeutron::AntiNeutron()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiSigmaMinus::AntiSigmaMinus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiSigmaPlus::AntiSigmaPlus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiSigmaZero::AntiSigmaZero()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiXiZero::AntiXiZero()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiXiMinus::AntiXiMinus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiOmegaMinus::AntiOmegaMinus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiLambda::AntiLambda()) --numberofFinalStateNucleons; targetParticle.Lorentz( targetParticle, pseudoParticle[1] ); for( i=0; iGetDefinition() == aProton) || - (vec[i]->GetDefinition() == aNeutron) )++numberofFinalStateNucleons; - if( (vec[i]->GetDefinition() == anAntiProton) || - (vec[i]->GetDefinition() == anAntiNeutron) )--numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==aProton || + vec[i]->GetDefinition() == aNeutron || + vec[i]->GetDefinition() == G4Lambda::Lambda() || + vec[i]->GetDefinition() == G4XiZero::XiZero() || + vec[i]->GetDefinition() == G4XiMinus::XiMinus() || + vec[i]->GetDefinition() == G4OmegaMinus::OmegaMinus() || + vec[i]->GetDefinition() == G4SigmaPlus::SigmaPlus()|| + vec[i]->GetDefinition() == G4SigmaZero::SigmaZero()|| + vec[i]->GetDefinition() == G4SigmaMinus::SigmaMinus()) ++numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiProton::AntiProton()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiNeutron::AntiNeutron()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiSigmaMinus::AntiSigmaMinus()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiSigmaPlus::AntiSigmaPlus()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiSigmaZero::AntiSigmaZero()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiLambda::AntiLambda()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiXiZero::AntiXiZero()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiXiMinus::AntiXiMinus()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiOmegaMinus::AntiOmegaMinus()) --numberofFinalStateNucleons; vec[i]->Lorentz( *vec[i], pseudoParticle[1] ); } // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); + if(veryForward) numberofFinalStateNucleons++; numberofFinalStateNucleons = G4std::max( 1, numberofFinalStateNucleons ); // // leadFlag will be true @@ -1112,7 +1189,7 @@ pseudoParticle[7].SetZero(); pseudoParticle[7] = pseudoParticle[7] + currentParticle; pseudoParticle[7] = pseudoParticle[7] + targetParticle; - + for( i=0; i-.5) { - pseudoParticle[6].Lorentz( *tempV[i], pseudoParticle[4] ); - theoreticalKinetic += pseudoParticle[6].GetKineticEnergy()/MeV; + theoreticalKinetic = 0.0; + for( i=0; i DumpFrames::DumpFrame(vec, vecLen); //delete [] tempR; @@ -1152,7 +1232,7 @@ // if( simulatedKinetic != 0.0 ) { - wgt = theoreticalKinetic/simulatedKinetic; + wgt = (theoreticalKinetic)/simulatedKinetic; theoreticalKinetic = currentParticle.GetKineticEnergy()/MeV * wgt; simulatedKinetic = theoreticalKinetic; currentParticle.SetKineticEnergy( theoreticalKinetic*MeV ); @@ -1252,10 +1332,15 @@ AddBlackTrackParticles( epnb, npnb, edta, ndta, sprob, kineticMinimum, kineticFactor, modifiedOriginal, spall, targetNucleus, vec, vecLen ); +// G4double jpw=0; +// jpw+=GetQValue(¤tParticle); +// jpw+=GetQValue(&targetParticle); +// for( i=0; i DumpFrames::DumpFrame(vec, vecLen); } - if( centerofmassEnergy <= (4.0+G4UniformRand()) ) - MomentumCheck( modifiedOriginal, currentParticle, targetParticle, vec, vecLen ); + //if( centerofmassEnergy <= (4.0+G4UniformRand()) ) + // MomentumCheck( modifiedOriginal, currentParticle, targetParticle, vec, vecLen ); // // calculate time delay for nuclear reactions // @@ -1369,6 +1454,7 @@ G4ParticleDefinition *aNeutron = G4Neutron::Neutron(); G4ParticleDefinition *aPiPlus = G4PionPlus::PionPlus(); G4ParticleDefinition *aPiZero = G4PionZero::PionZero(); + G4ParticleDefinition *aSigmaMinus = G4SigmaMinus::SigmaMinus(); const G4double protonMass = aProton->GetPDGMass()/MeV; const G4double ekOriginal = modifiedOriginal.GetKineticEnergy()/GeV; const G4double etOriginal = modifiedOriginal.GetTotalEnergy()/GeV; @@ -1380,6 +1466,7 @@ 2.0*targetMass*etOriginal ); // GeV G4double currentMass = currentParticle.GetMass()/GeV; targetMass = targetParticle.GetMass()/GeV; + if( currentMass == 0.0 && targetMass == 0.0 ) { G4double ek = currentParticle.GetKineticEnergy(); @@ -1408,12 +1495,14 @@ G4int forwardCount = 1; // number of particles in forward hemisphere currentParticle.SetSide( 1 ); G4double forwardMass = currentParticle.GetMass()/GeV; + G4double cMass = forwardMass; // target is always in backward hemisphere G4int backwardCount = 1; // number of particles in backward hemisphere G4int backwardNucleonCount = 1; // number of nucleons in backward hemisphere targetParticle.SetSide( -1 ); G4double backwardMass = targetParticle.GetMass()/GeV; + G4double bMass = backwardMass; for( i=0; i DumpFrames::DumpFrame(vec, vecLen); - G4double forwardEnergy = centerofmassEnergy/2.0 - forwardMass; - G4double backwardEnergy = centerofmassEnergy/2.0 - backwardMass; + G4double forwardEnergy = (centerofmassEnergy-cMass-bMass)/2.0 +cMass - forwardMass; + G4double backwardEnergy = (centerofmassEnergy-cMass-bMass)/2.0 +bMass - backwardMass; G4double eAvailable = centerofmassEnergy - (forwardMass+backwardMass); G4bool secondaryDeleted; G4double pMass; @@ -1498,7 +1588,7 @@ secondaryDeleted = false; for( i=(vecLen-1); i>=0; --i ) { - if( vec[i]->GetSide() == 1 ) + if( vec[i]->GetSide() == 1 && vec[i]->GetMayBeKilled()) { pMass = vec[i]->GetMass()/GeV; for( G4int j=i; j<(vecLen-1); ++j )*vec[j] = *vec[j+1]; // shift up @@ -1508,7 +1598,7 @@ secondaryDeleted = true; break; } - else if( vec[i]->GetSide() == -1 ) + else if( vec[i]->GetSide() == -1 && vec[i]->GetMayBeKilled()) { pMass = vec[i]->GetMass()/GeV; for( G4int j=i; j<(vecLen-1); ++j )*vec[j] = *vec[j+1]; // shift up @@ -1608,7 +1698,7 @@ else { // G4int ntc = G4std::min(5,forwardCount); // check if offset by 1 @@ - G4int ntc = G4std::max(1, G4std::min(5,forwardCount)); // check if offset by 1 @@ + G4int ntc = G4std::max(1, G4std::min(5,forwardCount))-1; // check if offset by 1 @@ rmc = forwardMass + pow(-log(1.0-G4UniformRand()),cpar[ntc-1])/gpar[ntc-1]; } if( backwardCount == 1 )rmd = backwardMass; @@ -1840,15 +1930,54 @@ // G4int numberofFinalStateNucleons = 0; if( currentParticle.GetDefinition() ==aProton || - currentParticle.GetDefinition() == aNeutron ) ++numberofFinalStateNucleons; + currentParticle.GetDefinition() == aNeutron || + currentParticle.GetDefinition() == aSigmaMinus|| + currentParticle.GetDefinition() == G4SigmaPlus::SigmaPlus()|| + currentParticle.GetDefinition() == G4SigmaZero::SigmaZero()|| + currentParticle.GetDefinition() == G4XiZero::XiZero()|| + currentParticle.GetDefinition() == G4XiMinus::XiMinus()|| + currentParticle.GetDefinition() == G4OmegaMinus::OmegaMinus()|| + currentParticle.GetDefinition() == G4Lambda::Lambda()) ++numberofFinalStateNucleons; currentParticle.Lorentz( currentParticle, pseudoParticle[2] ); if( targetParticle.GetDefinition() ==aProton || - targetParticle.GetDefinition() == aNeutron) ++numberofFinalStateNucleons; + targetParticle.GetDefinition() == aNeutron || + targetParticle.GetDefinition() == G4Lambda::Lambda() || + targetParticle.GetDefinition() == G4XiZero::XiZero()|| + targetParticle.GetDefinition() == G4XiMinus::XiMinus()|| + targetParticle.GetDefinition() == G4OmegaMinus::OmegaMinus()|| + targetParticle.GetDefinition() == G4SigmaZero::SigmaZero()|| + targetParticle.GetDefinition() == G4SigmaPlus::SigmaPlus()|| + targetParticle.GetDefinition() == aSigmaMinus) ++numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiProton::AntiProton()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiNeutron::AntiNeutron()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiSigmaMinus::AntiSigmaMinus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiSigmaPlus::AntiSigmaPlus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiSigmaZero::AntiSigmaZero()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiXiZero::AntiXiZero()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiXiMinus::AntiXiMinus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiOmegaMinus::AntiOmegaMinus()) --numberofFinalStateNucleons; + if( targetParticle.GetDefinition() ==G4AntiLambda::AntiLambda()) --numberofFinalStateNucleons; targetParticle.Lorentz( targetParticle, pseudoParticle[2] ); for( i=0; iGetDefinition() ==aProton || - vec[i]->GetDefinition() == aNeutron)++numberofFinalStateNucleons; + vec[i]->GetDefinition() == aNeutron || + vec[i]->GetDefinition() == G4Lambda::Lambda() || + vec[i]->GetDefinition() == G4XiZero::XiZero() || + vec[i]->GetDefinition() == G4XiMinus::XiMinus() || + vec[i]->GetDefinition() == G4OmegaMinus::OmegaMinus() || + vec[i]->GetDefinition() == G4SigmaPlus::SigmaPlus()|| + vec[i]->GetDefinition() == G4SigmaZero::SigmaZero()|| + vec[i]->GetDefinition() == aSigmaMinus) ++numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiProton::AntiProton()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiNeutron::AntiNeutron()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiSigmaMinus::AntiSigmaMinus()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiSigmaPlus::AntiSigmaPlus()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiSigmaZero::AntiSigmaZero()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiLambda::AntiLambda()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiXiZero::AntiXiZero()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiXiMinus::AntiXiMinus()) --numberofFinalStateNucleons; + if( vec[i]->GetDefinition() ==G4AntiOmegaMinus::AntiOmegaMinus()) --numberofFinalStateNucleons; vec[i]->Lorentz( *vec[i], pseudoParticle[2] ); } // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); @@ -2000,9 +2129,10 @@ // make sure that kinetic energies are correct // the backward nucleon cluster is not produced within proper kinematics!!! // + if( simulatedKinetic != 0.0 ) { - wgt = theoreticalKinetic/simulatedKinetic; + wgt = (theoreticalKinetic)/simulatedKinetic; currentParticle.SetKineticEnergy( wgt*currentParticle.GetKineticEnergy() ); pp = currentParticle.GetTotalMomentum()/MeV; pp1 = currentParticle.GetMomentum().mag()/MeV; @@ -2098,8 +2228,8 @@ vec, vecLen ); // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); } - if( centerofmassEnergy <= (4.0+G4UniformRand()) ) - MomentumCheck( modifiedOriginal, currentParticle, targetParticle, vec, vecLen ); + //if( centerofmassEnergy <= (4.0+G4UniformRand()) ) + // MomentumCheck( modifiedOriginal, currentParticle, targetParticle, vec, vecLen ); // // calculate time delay for nuclear reactions // @@ -2149,16 +2279,13 @@ const G4double pOriginal = modifiedOriginal.GetMomentum().mag()/GeV; G4double currentMass = currentParticle.GetMass()/GeV; G4double targetMass = targetParticle.GetDefinition()->GetPDGMass()/GeV; -// G4double centerofmassEnergy = sqrt( mOriginal*mOriginal + -// targetMass*targetMass + -// 2.0*targetMass*etOriginal ); // GeV + targetMass = targetParticle.GetMass()/GeV; const G4double atomicWeight = targetNucleus.GetN(); -// const G4double atomicNumber = targetNucleus.GetZ(); G4double etCurrent = currentParticle.GetTotalEnergy()/GeV; G4double pCurrent = currentParticle.GetTotalMomentum()/GeV; -// G4double ekCurrent = currentParticle.GetKineticEnergy()/GeV; + G4double cmEnergy = sqrt( currentMass*currentMass + targetMass*targetMass + 2.0*targetMass*etCurrent ); // in GeV @@ -2225,9 +2352,9 @@ } else { - pseudoParticle[0].SetMass( mOriginal*GeV ); - pseudoParticle[0].SetTotalEnergy( etOriginal*GeV ); - pseudoParticle[0].SetMomentum( 0.0, 0.0, pOriginal*GeV ); + pseudoParticle[0].SetMass( currentMass*GeV ); + pseudoParticle[0].SetTotalEnergy( etCurrent*GeV ); + pseudoParticle[0].SetMomentum( 0.0, 0.0, pCurrent*GeV ); pseudoParticle[1].SetMomentum( 0.0, 0.0, 0.0 ); pseudoParticle[1].SetMass( targetMass*GeV ); @@ -2401,12 +2528,14 @@ //for( i=0; i<3; ++i )pcm[i] = new G4double [vecLen]; G4double totalMass = 0.0; + G4double extraMass = 0; G4double sm[18]; //G4double *sm = new G4double [vecLen]; for( i=0; iGetMass()/GeV; + if(vec[i]->GetSide() == -2) extraMass+=vec[i]->GetMass()/GeV; vec[i]->SetMomentum( 0.0, 0.0, 0.0 ); pcm[0][i] = 0.0; // x-momentum of i-th particle pcm[1][i] = 0.0; // y-momentum of i-th particle @@ -2994,6 +3123,7 @@ // epnb is the kinetic energy available for proton/neutron black track particles // edta is the kinetic energy available for deuteron/triton/alpha particles // + G4ParticleDefinition *aProton = G4Proton::Proton(); G4ParticleDefinition *aNeutron = G4Neutron::Neutron(); G4ParticleDefinition *aDeuteron = G4Deuteron::Deuteron(); @@ -3011,20 +3141,19 @@ G4int i; G4double pp; + // G4double totalQ = 0; + G4double kinCreated = 0; G4double cfa = 0.025*((atomicWeight-1.0)/120.0) * exp(-(atomicWeight-1.0)/120.0); if( npnb > 0) // first add protons and neutrons { -// G4ReactionProduct *p1 = new G4ReactionProduct [npnb]; - G4double ekin = epnb/npnb; G4double backwardKinetic = 0.0; - for( i=0; i epnb ) { delete p1; @@ -3047,11 +3176,13 @@ G4double phi = twopi * G4UniformRand(); vec[vecLen]->SetNewlyAdded( true ); vec[vecLen]->SetKineticEnergy( kinetic*GeV ); + kinCreated+=kinetic; pp = vec[vecLen]->GetTotalMomentum()/MeV; - vec[vecLen++]->SetMomentum( pp*sint*sin(phi)*MeV, + vec[vecLen]->SetMomentum( pp*sint*sin(phi)*MeV, pp*sint*cos(phi)*MeV, pp*cost*MeV ); - // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); + vecLen++; + // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); } if( (atomicWeight >= 10.0) && (ekOriginal <= 2.0*GeV) ) { @@ -3075,17 +3206,14 @@ } if( ndta > 0 ) // now, try to add deuterons, tritons and alphas { -// G4ReactionProduct *p2 = new G4ReactionProduct [ndta]; - G4double ekin = edta/ndta; G4double backwardKinetic = 0.0; - for( i=0; i edta ) { delete p2; @@ -3116,6 +3244,7 @@ vec.SetElement( vecLen, p2 ); vec[vecLen]->SetNewlyAdded( true ); vec[vecLen]->SetKineticEnergy( kinetic*GeV ); + kinCreated+=kinetic; pp = vec[vecLen]->GetTotalMomentum()/MeV; vec[vecLen++]->SetMomentum( pp*sint*sin(phi)*MeV, pp*sint*cos(phi)*MeV, @@ -3123,6 +3252,7 @@ // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); } } + // G4double delta = epnb+edta - kinCreated; } void G4ReactionDynamics::MomentumCheck( @@ -3293,12 +3423,16 @@ vec[0]->SetDefinition( aNeutron ); p1->SetDefinition( anAntiNeutron ); (G4UniformRand() < 0.5) ? p1->SetSide( -1 ) : p1->SetSide( 1 ); + vec[0]->SetMayBeKilled(false); + p1->SetMayBeKilled(false); } else { vec[0]->SetDefinition( aProton ); p1->SetDefinition( anAntiProton ); (G4UniformRand() < 0.5) ? p1->SetSide( -1 ) : p1->SetSide( 1 ); + vec[0]->SetMayBeKilled(false); + p1->SetMayBeKilled(false); } vec.SetElement( vecLen++, p1 ); // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); @@ -3309,11 +3443,15 @@ { vec[i3]->SetDefinition( aNeutron ); vec[i4]->SetDefinition( anAntiNeutron ); + vec[i3]->SetMayBeKilled(false); + vec[i4]->SetMayBeKilled(false); } else { vec[i3]->SetDefinition( aProton ); vec[i4]->SetDefinition( anAntiProton ); + vec[i3]->SetMayBeKilled(false); + vec[i4]->SetMayBeKilled(false); } } } @@ -3337,12 +3475,15 @@ { case 10: vec[i3]->SetDefinition( aKaonPlus ); + vec[i3]->SetMayBeKilled(false); break; case 11: vec[i3]->SetDefinition( aKaonZS ); + vec[i3]->SetMayBeKilled(false); break; case 12: vec[i3]->SetDefinition( aKaonZL ); + vec[i3]->SetMayBeKilled(false); break; } if( vecLen == 1 ) // add a secondary @@ -3352,12 +3493,15 @@ { case 11: p1->SetDefinition( aKaonZS ); + p1->SetMayBeKilled(false); break; case 12: p1->SetDefinition( aKaonZL ); + p1->SetMayBeKilled(false); break; case 13: p1->SetDefinition( aKaonMinus ); + p1->SetMayBeKilled(false); break; } (G4UniformRand() < 0.5) ? p1->SetSide( -1 ) : p1->SetSide( 1 ); @@ -3370,12 +3514,15 @@ { case 11: vec[i4]->SetDefinition( aKaonZS ); + vec[i4]->SetMayBeKilled(false); break; case 12: vec[i4]->SetDefinition( aKaonZL ); + vec[i4]->SetMayBeKilled(false); break; case 13: vec[i4]->SetDefinition( aKaonMinus ); + vec[i4]->SetMayBeKilled(false); break; } } @@ -3421,12 +3568,15 @@ { case 10: vec[i3]->SetDefinition( aKaonPlus ); + vec[i3]->SetMayBeKilled(false); break; case 11: vec[i3]->SetDefinition( aKaonZS ); + vec[i3]->SetMayBeKilled(false); break; case 12: vec[i3]->SetDefinition( aKaonZL ); + vec[i3]->SetMayBeKilled(false); break; } } @@ -3459,12 +3609,15 @@ { case 11: vec[i3]->SetDefinition( aKaonZS ); + vec[i3]->SetMayBeKilled(false); break; case 12: vec[i3]->SetDefinition( aKaonZL ); + vec[i3]->SetMayBeKilled(false); break; case 13: vec[i3]->SetDefinition( aKaonMinus ); + vec[i3]->SetMayBeKilled(false); break; } } @@ -3490,12 +3643,15 @@ { case 10: vec[i3]->SetDefinition( aKaonPlus ); + vec[i3]->SetMayBeKilled(false); break; case 11: vec[i3]->SetDefinition( aKaonZS ); + vec[i3]->SetMayBeKilled(false); break; case 12: vec[i3]->SetDefinition( aKaonZL ); + vec[i3]->SetMayBeKilled(false); break; } } diff --git a/source/processes/hadronic/util/src/G4ReactionKinematics.cc b/source/processes/hadronic/util/src/G4ReactionKinematics.cc index cff94eef7e..f2aca4d0c3 100644 --- a/source/processes/hadronic/util/src/G4ReactionKinematics.cc +++ b/source/processes/hadronic/util/src/G4ReactionKinematics.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ReactionKinematics.cc,v 1.5 2002/02/12 18:56:58 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReactionKinematics.cc,v 1.6 2002/12/12 19:18:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // CERN Geneva Switzerland // diff --git a/source/processes/hadronic/util/src/G4ReactionProduct.cc b/source/processes/hadronic/util/src/G4ReactionProduct.cc index 927b250d28..72cac7e287 100644 --- a/source/processes/hadronic/util/src/G4ReactionProduct.cc +++ b/source/processes/hadronic/util/src/G4ReactionProduct.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4ReactionProduct.cc,v 1.4 2001/08/01 17:12:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ReactionProduct.cc,v 1.6 2002/12/12 19:18:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // J.L. Chuma, TRIUMF, 31-Oct-1996 // last modified: 19-Dec-1996 @@ -39,7 +39,8 @@ kineticEnergy(0.0), timeOfFlight(0.0), side(0), - NewlyAdded(false) + NewlyAdded(false), + MayBeKilled(true) { SetMomentum( 0.0, 0.0, 0.0 ); SetPositionInNucleus( 0.0, 0.0, 0.0 ); @@ -59,6 +60,7 @@ (aParticleDefinition->GetPDGEncoding()<0) ? timeOfFlight=-1.0 : timeOfFlight=1.0; side = 0; NewlyAdded = false; + MayBeKilled = true; } G4ReactionProduct::G4ReactionProduct( @@ -75,6 +77,7 @@ timeOfFlight = right.timeOfFlight; side = right.side; NewlyAdded = right.NewlyAdded; + MayBeKilled = right.MayBeKilled; } G4ReactionProduct &G4ReactionProduct::operator=( @@ -92,6 +95,7 @@ timeOfFlight = right.timeOfFlight; side = right.side; NewlyAdded = right.NewlyAdded; + MayBeKilled = right.MayBeKilled; } return *this; } @@ -110,6 +114,7 @@ (right.GetDefinition()->GetPDGEncoding()<0) ? timeOfFlight=-1.0 : timeOfFlight=1.0; side = 0; NewlyAdded = false; + MayBeKilled = true; return *this; } diff --git a/source/processes/hadronic/util/src/G4StableIsotopes.cc b/source/processes/hadronic/util/src/G4StableIsotopes.cc index db84cef6c0..88b166c194 100644 --- a/source/processes/hadronic/util/src/G4StableIsotopes.cc +++ b/source/processes/hadronic/util/src/G4StableIsotopes.cc @@ -14,15 +14,15 @@ // * use. * // * * // * This code implementation is the intellectual property of the * -// * authors in the GEANT4 collaboration. * +// * 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: G4StableIsotopes.cc,v 1.4 2001/08/01 17:12:48 hpw Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StableIsotopes.cc,v 1.5 2002/12/12 19:18:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4StableIsotopes.hh" diff --git a/source/processes/management/History b/source/processes/management/History index 8b62345668..86ff42e62c 100644 --- a/source/processes/management/History +++ b/source/processes/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.25 2002/04/15 04:29:53 kurasige Exp $ +$Id: History,v 1.27 2002/11/28 00:32:23 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,7 +16,13 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -procman-V03-02-03 + +- Nov.28, 2002 H.Kurashige (procman-V04-01-01) +- Fixed memory leak in G4ProcessTable + +- Sep.17, 2002 H.Kurashige (procman-V04-01-00) +- Add new commands of "/process/setVerbose " for G4ProcessTableMessenger + - Apr.15, 2002 H.Kurashige (procman-V04-00-00) - Add G4VProcess::GetCurrentInteractionLength() - Fixed bugs in PostStepDoIt when MeanFreePath is equal to DBL_MAX diff --git a/source/processes/management/include/G4IVContinuousDiscreteProcess.hh b/source/processes/management/include/G4IVContinuousDiscreteProcess.hh index c3fe983080..def951a356 100644 --- a/source/processes/management/include/G4IVContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4IVContinuousDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4IVContinuousDiscreteProcess.hh,v 1.7 2001/07/11 10:08:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4IVRestDiscreteProcess.hh b/source/processes/management/include/G4IVRestDiscreteProcess.hh index 7294fb33b3..5d360dbf04 100644 --- a/source/processes/management/include/G4IVRestDiscreteProcess.hh +++ b/source/processes/management/include/G4IVRestDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4IVRestDiscreteProcess.hh,v 1.7 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ParticleTypes.hh b/source/processes/management/include/G4ParticleTypes.hh index 0c2303825f..01f28dde94 100644 --- a/source/processes/management/include/G4ParticleTypes.hh +++ b/source/processes/management/include/G4ParticleTypes.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTypes.hh,v 1.5 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.hh b/source/processes/management/include/G4ProcTblElement.hh index 4516ab9396..1a98eecde3 100644 --- a/source/processes/management/include/G4ProcTblElement.hh +++ b/source/processes/management/include/G4ProcTblElement.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcTblElement.hh,v 1.9 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.icc b/source/processes/management/include/G4ProcTblElement.icc index 2786d955be..4381e07679 100644 --- a/source/processes/management/include/G4ProcTblElement.icc +++ b/source/processes/management/include/G4ProcTblElement.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcTblElement.icc,v 1.7 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessAttribute.hh b/source/processes/management/include/G4ProcessAttribute.hh index 2d557879a7..f2690d6f99 100644 --- a/source/processes/management/include/G4ProcessAttribute.hh +++ b/source/processes/management/include/G4ProcessAttribute.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessAttribute.hh,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.hh b/source/processes/management/include/G4ProcessManager.hh index a3a0f27968..89804b4641 100644 --- a/source/processes/management/include/G4ProcessManager.hh +++ b/source/processes/management/include/G4ProcessManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManager.hh,v 1.8 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.icc b/source/processes/management/include/G4ProcessManager.icc index 3e3d1427ac..2c6cd3e0d3 100644 --- a/source/processes/management/include/G4ProcessManager.icc +++ b/source/processes/management/include/G4ProcessManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManager.icc,v 1.3 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/management/include/G4ProcessManagerMessenger.hh b/source/processes/management/include/G4ProcessManagerMessenger.hh index 360b7d897d..4ba8154c33 100644 --- a/source/processes/management/include/G4ProcessManagerMessenger.hh +++ b/source/processes/management/include/G4ProcessManagerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManagerMessenger.hh,v 1.5 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessTable.hh b/source/processes/management/include/G4ProcessTable.hh index e9d83687f6..5233ee628c 100644 --- a/source/processes/management/include/G4ProcessTable.hh +++ b/source/processes/management/include/G4ProcessTable.hh @@ -23,7 +23,7 @@ // // $Id: G4ProcessTable.hh,v 1.7 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessTable.icc b/source/processes/management/include/G4ProcessTable.icc index 813bd50f76..30b750aaf5 100644 --- a/source/processes/management/include/G4ProcessTable.icc +++ b/source/processes/management/include/G4ProcessTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTable.icc,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // History: // Use STL vector instead of RW vector 1. Mar 00 H.Kurashige diff --git a/source/processes/management/include/G4ProcessTableMessenger.hh b/source/processes/management/include/G4ProcessTableMessenger.hh index 91b56c22f9..97de087991 100644 --- a/source/processes/management/include/G4ProcessTableMessenger.hh +++ b/source/processes/management/include/G4ProcessTableMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessTableMessenger.hh,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessTableMessenger.hh,v 1.5 2002/09/17 15:39:57 kurasige Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -89,6 +89,7 @@ class G4ProcessTableMessenger: public G4UImessenger G4UIcommand * dumpCmd; G4UIcommand * activateCmd; G4UIcommand * inactivateCmd; + G4UIcommand * procVerboseCmd; G4String currentProcessTypeName; G4String currentProcessName; diff --git a/source/processes/management/include/G4ProcessType.hh b/source/processes/management/include/G4ProcessType.hh index 18c62da52d..75ebe44a4c 100644 --- a/source/processes/management/include/G4ProcessType.hh +++ b/source/processes/management/include/G4ProcessType.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessType.hh,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessVector.hh b/source/processes/management/include/G4ProcessVector.hh index 35670bc6dc..6fd980e740 100644 --- a/source/processes/management/include/G4ProcessVector.hh +++ b/source/processes/management/include/G4ProcessVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessVector.hh,v 1.8 2001/09/19 10:54:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessVector.icc b/source/processes/management/include/G4ProcessVector.icc index 3e7d479ff7..8d8d889ae4 100644 --- a/source/processes/management/include/G4ProcessVector.icc +++ b/source/processes/management/include/G4ProcessVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessVector.icc,v 1.4 2001/09/19 10:54:48 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // inline G4bool G4ProcessVector::operator==(const G4ProcessVector &right) const { diff --git a/source/processes/management/include/G4VContinuousDiscreteProcess.hh b/source/processes/management/include/G4VContinuousDiscreteProcess.hh index cc77a771af..1747b18f2a 100644 --- a/source/processes/management/include/G4VContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4VContinuousDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VContinuousProcess.hh b/source/processes/management/include/G4VContinuousProcess.hh index 6e8b0eb82b..f6fae20f53 100644 --- a/source/processes/management/include/G4VContinuousProcess.hh +++ b/source/processes/management/include/G4VContinuousProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VDiscreteProcess.hh b/source/processes/management/include/G4VDiscreteProcess.hh index 0903d93f14..432328721c 100644 --- a/source/processes/management/include/G4VDiscreteProcess.hh +++ b/source/processes/management/include/G4VDiscreteProcess.hh @@ -23,7 +23,7 @@ // // $Id: G4VDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VProcess.hh b/source/processes/management/include/G4VProcess.hh index 25e6c7af95..bb34a1ea81 100644 --- a/source/processes/management/include/G4VProcess.hh +++ b/source/processes/management/include/G4VProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VProcess.hh,v 1.13 2001/12/13 12:59:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh index 8451312c4f..0defc1da84 100644 --- a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestContinuousProcess.hh b/source/processes/management/include/G4VRestContinuousProcess.hh index c9f7a19a93..48c2cc5294 100644 --- a/source/processes/management/include/G4VRestContinuousProcess.hh +++ b/source/processes/management/include/G4VRestContinuousProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestDiscreteProcess.hh b/source/processes/management/include/G4VRestDiscreteProcess.hh index dcb846e232..f373852d6d 100644 --- a/source/processes/management/include/G4VRestDiscreteProcess.hh +++ b/source/processes/management/include/G4VRestDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestDiscreteProcess.hh,v 1.6 2002/04/15 04:29:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestProcess.hh b/source/processes/management/include/G4VRestProcess.hh index e8be6a3f4f..8c68713291 100644 --- a/source/processes/management/include/G4VRestProcess.hh +++ b/source/processes/management/include/G4VRestProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4WrapperProcess.hh b/source/processes/management/include/G4WrapperProcess.hh index d784c259ec..e53f0b4d09 100644 --- a/source/processes/management/include/G4WrapperProcess.hh +++ b/source/processes/management/include/G4WrapperProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4WrapperProcess.hh,v 1.1 2001/11/07 11:53:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc index 25279f28c2..7e086c3163 100644 --- a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4IVContinuousDiscreteProcess.cc,v 1.6 2001/07/11 10:08:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4IVRestDiscreteProcess.cc b/source/processes/management/src/G4IVRestDiscreteProcess.cc index 200adf87a4..d413fb4974 100644 --- a/source/processes/management/src/G4IVRestDiscreteProcess.cc +++ b/source/processes/management/src/G4IVRestDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4IVRestDiscreteProcess.cc,v 1.6 2001/07/11 10:08:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcTblElement.cc b/source/processes/management/src/G4ProcTblElement.cc index bbe1fc4547..e3a366aabd 100644 --- a/source/processes/management/src/G4ProcTblElement.cc +++ b/source/processes/management/src/G4ProcTblElement.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcTblElement.cc,v 1.6 2001/07/11 10:08:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessAttribute.cc b/source/processes/management/src/G4ProcessAttribute.cc index 8acf33397d..05b194e217 100644 --- a/source/processes/management/src/G4ProcessAttribute.cc +++ b/source/processes/management/src/G4ProcessAttribute.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessAttribute.cc,v 1.4 2001/07/11 10:08:19 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessManager.cc b/source/processes/management/src/G4ProcessManager.cc index dcdda791d3..8f4a049962 100644 --- a/source/processes/management/src/G4ProcessManager.cc +++ b/source/processes/management/src/G4ProcessManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessManager.cc,v 1.20 2001/09/01 02:22:55 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessManager.cc,v 1.21 2002/12/04 21:29:49 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -733,13 +733,13 @@ G4VProcess* G4ProcessManager::InActivateProcess(G4int index) { G4ApplicationState currentState = G4StateManager::GetStateManager()->GetCurrentState(); - if ( (currentState == PreInit) || (currentState == Init) ) { + if ( (currentState == G4State_PreInit) || (currentState == G4State_Init) ) { #ifdef G4VERBOSE if (GetVerboseLevel()>1) { G4cout << "G4ProcessManager::InActivateProcess is not valid in "; - if (currentState == PreInit ) { + if (currentState == G4State_PreInit ) { G4cout << "PreInit "; - } else if (currentState == Init ) { + } else if (currentState == G4State_Init ) { G4cout << "Init "; } G4cout << "state !" << G4endl; @@ -808,13 +808,13 @@ G4VProcess* G4ProcessManager::ActivateProcess(G4int index) { G4ApplicationState currentState = G4StateManager::GetStateManager()->GetCurrentState(); - if ( (currentState == PreInit) || (currentState == Init) ) { + if ( (currentState == G4State_PreInit) || (currentState == G4State_Init) ) { #ifdef G4VERBOSE if (GetVerboseLevel()>1) { G4cout << "G4ProcessManager::ActivateProcess is not valid in "; - if (currentState == PreInit ) { + if (currentState == G4State_PreInit ) { G4cout << "PreInit "; - } else if (currentState == Init ) { + } else if (currentState == G4State_Init ) { G4cout << "Init "; } G4cout << "state !" << G4endl; diff --git a/source/processes/management/src/G4ProcessManagerMessenger.cc b/source/processes/management/src/G4ProcessManagerMessenger.cc index 1c77cd1a22..c18df470e3 100644 --- a/source/processes/management/src/G4ProcessManagerMessenger.cc +++ b/source/processes/management/src/G4ProcessManagerMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessManagerMessenger.cc,v 1.5 2001/07/11 10:08:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessManagerMessenger.cc,v 1.6 2002/12/04 21:29:49 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -88,7 +88,7 @@ G4ProcessManagerMessenger::G4ProcessManagerMessenger(G4ParticleTable* pTable) param = new G4UIparameter("index",'i',true); param->SetDefaultValue(-1); verboseCmd->SetParameter(param); - verboseCmd->AvailableForStates(PreInit,Init,Idle,GeomClosed,EventProc); + verboseCmd->AvailableForStates(G4State_PreInit,G4State_Init,G4State_Idle,G4State_GeomClosed,G4State_EventProc); //Commnad /particle/process/Activate activateCmd = new G4UIcmdWithAnInteger("/particle/process/activate",this); @@ -97,7 +97,7 @@ G4ProcessManagerMessenger::G4ProcessManagerMessenger(G4ParticleTable* pTable) activateCmd->SetParameterName("index", false); activateCmd->SetDefaultValue(0); activateCmd->SetRange("index >=0"); - activateCmd->AvailableForStates(Idle,GeomClosed,EventProc); + activateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); //Commnad /particle/process/inactivate inactivateCmd = new G4UIcmdWithAnInteger("/particle/process/inactivate",this); @@ -106,7 +106,7 @@ G4ProcessManagerMessenger::G4ProcessManagerMessenger(G4ParticleTable* pTable) inactivateCmd->SetParameterName("index", false); inactivateCmd->SetDefaultValue(0); inactivateCmd->SetRange("index >=0"); - inactivateCmd->AvailableForStates(Idle,GeomClosed,EventProc); + inactivateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); } diff --git a/source/processes/management/src/G4ProcessTable.cc b/source/processes/management/src/G4ProcessTable.cc index 3f7a2ec4bc..e261aecac1 100644 --- a/source/processes/management/src/G4ProcessTable.cc +++ b/source/processes/management/src/G4ProcessTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessTable.cc,v 1.8 2001/07/11 10:08:20 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessTable.cc,v 1.9 2002/11/28 00:32:25 kurasige Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -77,14 +77,14 @@ G4ProcessTable::~G4ProcessTable() } if ( fProcTblVector != 0) { - // G4ProcTableVector::iterator idx; + G4ProcTableVector::iterator idx; // destruction of processes has moved to G4VUserPhysicsList - // for (idx=fProcTblVector->begin(); idx!=fProcTblVector->end(); ++idx) { + for (idx=fProcTblVector->begin(); idx!=fProcTblVector->end(); ++idx) { // delete all processes // delete (*idx)->GetProcess(); - // delete (*idx); - //} + delete (*idx); + } fProcTblVector ->clear(); delete fProcTblVector; } diff --git a/source/processes/management/src/G4ProcessTableMessenger.cc b/source/processes/management/src/G4ProcessTableMessenger.cc index 44dc4360e7..8e596c2c9a 100644 --- a/source/processes/management/src/G4ProcessTableMessenger.cc +++ b/source/processes/management/src/G4ProcessTableMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessTableMessenger.cc,v 1.10 2001/10/11 13:53:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessTableMessenger.cc,v 1.12 2002/12/04 21:29:49 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -97,20 +97,35 @@ G4ProcessTableMessenger::G4ProcessTableMessenger(G4ProcessTable* pTable) verboseCmd->SetParameterName("verbose", true); verboseCmd->SetDefaultValue(1); verboseCmd->SetRange("verbose >=0"); - verboseCmd->AvailableForStates(PreInit,Init,Idle,GeomClosed,EventProc); + verboseCmd->AvailableForStates(G4State_PreInit,G4State_Init,G4State_Idle,G4State_GeomClosed,G4State_EventProc); + //Commnad /particle/process/setVerbose + procVerboseCmd = new G4UIcommand("/process/setVerbose",this); + procVerboseCmd->SetGuidance("Set verbose level for processes"); + procVerboseCmd->SetGuidance(" setVerbose level [type or name] "); + procVerboseCmd->SetGuidance(" level: verbose level "); + procVerboseCmd->SetGuidance(" name : process name "); + procVerboseCmd->SetGuidance(" type : process type "); + procVerboseCmd->SetGuidance(" [all] for all proceeses "); + G4UIparameter* param = new G4UIparameter("verbose",'i',false); + procVerboseCmd->SetParameter(param); + param = new G4UIparameter("type",'s',true); + param->SetDefaultValue("all"); + procVerboseCmd->SetParameter(param); + procVerboseCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); + //Commnad /particle/process/dump dumpCmd = new G4UIcommand("/process/dump",this); dumpCmd->SetGuidance("Dump process information"); dumpCmd->SetGuidance(" dump name [particle]"); dumpCmd->SetGuidance(" name: process name or type name"); dumpCmd->SetGuidance(" particle: particle name [all: for all particles]"); - G4UIparameter* param = new G4UIparameter("procName",'s',false); + param = new G4UIparameter("procName",'s',false); dumpCmd->SetParameter(param); param = new G4UIparameter("particle",'s',true); param->SetDefaultValue("all"); dumpCmd->SetParameter(param); - dumpCmd->AvailableForStates(Init,Idle,GeomClosed,EventProc); + dumpCmd->AvailableForStates(G4State_Init,G4State_Idle,G4State_GeomClosed,G4State_EventProc); //Commnad /particle/process/activate activateCmd = new G4UIcommand("/process/activate",this); @@ -123,7 +138,7 @@ G4ProcessTableMessenger::G4ProcessTableMessenger(G4ProcessTable* pTable) param = new G4UIparameter("particle",'s',true); param->SetDefaultValue("all"); activateCmd->SetParameter(param); - activateCmd->AvailableForStates(Idle,GeomClosed,EventProc); + activateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); //Commnad /particle/process/inactivate inactivateCmd = new G4UIcommand("/process/inactivate",this); @@ -137,7 +152,7 @@ G4ProcessTableMessenger::G4ProcessTableMessenger(G4ProcessTable* pTable) param = new G4UIparameter("particle",'s',true); param->SetDefaultValue("all"); inactivateCmd->SetParameter(param); - inactivateCmd->AvailableForStates(Idle,GeomClosed,EventProc); + inactivateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); } ////////////////// @@ -148,6 +163,7 @@ G4ProcessTableMessenger::~G4ProcessTableMessenger() delete verboseCmd; delete dumpCmd; delete listCmd; + delete procVerboseCmd; delete thisDirectory; } @@ -192,6 +208,50 @@ void G4ProcessTableMessenger::SetNewValue(G4UIcommand * command,G4String newValu delete tmpVector; //Commnad /process/list + } else if( command==procVerboseCmd ) { + //Commnad /process/setVerbose + G4Tokenizer next( newValue ); + + // check 1st argument + G4String tmpS = G4String(next()); + // inputstream for newValues + const char* temp = (const char*)(tmpS); + G4std::istrstream is((char*)temp); + G4int level; + is >>level; + + // check 2nd argument + currentProcessTypeName = G4String(next()); + if (currentProcessTypeName.isNull()) currentProcessTypeName = "all"; + G4bool isProcName = false; + G4bool isAll = false; + type = -1; + + if (currentProcessTypeName == "all") { + isAll = true; + } else { + type = GetProcessType(currentProcessTypeName); + if (type<0) { + isProcName = true; + currentProcessName = currentProcessTypeName; + currentProcessTypeName = ""; + } + } + idx =0; + G4ProcessTable::G4ProcNameVector::iterator itr; + for (itr=procNameVector->begin(); itr!=procNameVector->end(); ++itr) { + idx +=1; + tmpVector = theProcessTable->FindProcesses(*itr); + G4VProcess* p = (*tmpVector)(0); + if ( isAll || + (!isProcName && ( p->GetProcessType() == type) ) || + ( isProcName && ( p->GetProcessName()== currentProcessName) ) ){ + p->SetVerboseLevel(level); + } + } + delete tmpVector; + //Commnad /process/setVerbose + } else if( command==verboseCmd ) { //Commnad /process/verbose theProcessTable->SetVerboseLevel(verboseCmd->GetNewIntValue(newValue)); diff --git a/source/processes/management/src/G4ProcessVector.cc b/source/processes/management/src/G4ProcessVector.cc index b7c3e4b5d8..d52f3b7cd7 100644 --- a/source/processes/management/src/G4ProcessVector.cc +++ b/source/processes/management/src/G4ProcessVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessVector.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4VContinuousDiscreteProcess.cc b/source/processes/management/src/G4VContinuousDiscreteProcess.cc index 2b20bd45eb..69210a1407 100644 --- a/source/processes/management/src/G4VContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VContinuousDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VContinuousProcess.cc b/source/processes/management/src/G4VContinuousProcess.cc index 49ead7d788..1919ad6ab4 100644 --- a/source/processes/management/src/G4VContinuousProcess.cc +++ b/source/processes/management/src/G4VContinuousProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VDiscreteProcess.cc b/source/processes/management/src/G4VDiscreteProcess.cc index 0f47dd517a..5e283015a2 100644 --- a/source/processes/management/src/G4VDiscreteProcess.cc +++ b/source/processes/management/src/G4VDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VProcess.cc b/source/processes/management/src/G4VProcess.cc index 39df53e3b5..203935872a 100644 --- a/source/processes/management/src/G4VProcess.cc +++ b/source/processes/management/src/G4VProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VProcess.cc,v 1.9 2001/11/07 05:23:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc index 28ca85380f..f57b5b5f76 100644 --- a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestContinuousProcess.cc b/source/processes/management/src/G4VRestContinuousProcess.cc index f8f03df92b..5b545af4ce 100644 --- a/source/processes/management/src/G4VRestContinuousProcess.cc +++ b/source/processes/management/src/G4VRestContinuousProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestDiscreteProcess.cc b/source/processes/management/src/G4VRestDiscreteProcess.cc index 6cfc017de5..69990e6407 100644 --- a/source/processes/management/src/G4VRestDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestProcess.cc b/source/processes/management/src/G4VRestProcess.cc index 56e3086b71..0779f7557e 100644 --- a/source/processes/management/src/G4VRestProcess.cc +++ b/source/processes/management/src/G4VRestProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/optical/History b/source/processes/optical/History index 43fc97f91a..47c7caf7ff 100644 --- a/source/processes/optical/History +++ b/source/processes/optical/History @@ -16,6 +16,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +12th November 2002 Peter Gumplinger (op-V04-01-01) + Fix calculation of polarization on dielectric dielectric + interfaces; bug report #427 28th March 2002 Peter Gumplinger (op-V04-00-01) Add public inline method GetStatus and make enum G4OpBoundaryProcessStatus public in G4OpBoundaryProcess.hh diff --git a/source/processes/optical/include/G4OpAbsorption.hh b/source/processes/optical/include/G4OpAbsorption.hh index 13677e2364..03013fb3e9 100644 --- a/source/processes/optical/include/G4OpAbsorption.hh +++ b/source/processes/optical/include/G4OpAbsorption.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpAbsorption.hh,v 1.7 2001/08/31 16:43:32 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Definition diff --git a/source/processes/optical/include/G4OpBoundaryProcess.hh b/source/processes/optical/include/G4OpBoundaryProcess.hh index b3e5dab79f..b2c475942f 100644 --- a/source/processes/optical/include/G4OpBoundaryProcess.hh +++ b/source/processes/optical/include/G4OpBoundaryProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpBoundaryProcess.hh,v 1.8 2002/03/29 01:03:53 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/optical/include/G4OpRayleigh.hh b/source/processes/optical/include/G4OpRayleigh.hh index f1d0fddd3e..7247720f84 100644 --- a/source/processes/optical/include/G4OpRayleigh.hh +++ b/source/processes/optical/include/G4OpRayleigh.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpRayleigh.hh,v 1.6 2001/08/31 16:44:46 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/optical/src/G4OpAbsorption.cc b/source/processes/optical/src/G4OpAbsorption.cc index 41f66d7857..7682d1644a 100644 --- a/source/processes/optical/src/G4OpAbsorption.cc +++ b/source/processes/optical/src/G4OpAbsorption.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpAbsorption.cc,v 1.4 2001/07/11 10:08:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Implementation diff --git a/source/processes/optical/src/G4OpBoundaryProcess.cc b/source/processes/optical/src/G4OpBoundaryProcess.cc index 33d541ea48..8d020ab4bd 100644 --- a/source/processes/optical/src/G4OpBoundaryProcess.cc +++ b/source/processes/optical/src/G4OpBoundaryProcess.cc @@ -499,17 +499,17 @@ void G4OpBoundaryProcess::DielectricDielectric() cost2 = -sqrt(1-sint2*sint2); } - G4ThreeVector A_trans, Atrans, E1pp, E1pl; + G4ThreeVector A_trans, A_paral, E1pp, E1pl; G4double E1_perp, E1_parl; if (sint1 > 0.0) { A_trans = OldMomentum.cross(theFacetNormal); - Atrans = A_trans.unit(); - E1_perp = OldPolarization * Atrans; - E1pp = E1_perp * Atrans; + A_trans = A_trans.unit(); + E1_perp = OldPolarization * A_trans; + E1pp = E1_perp * A_trans; E1pl = OldPolarization - E1pp; E1_parl = E1pl.mag(); - } + } else { A_trans = OldPolarization; // Here we Follow Jackson's conventions and we set the @@ -534,7 +534,6 @@ void G4OpBoundaryProcess::DielectricDielectric() TransCoeff = 0.0; } - G4ThreeVector Refracted, Deflected; G4double E2_abs, C_parl, C_perp; if ( !G4BooleanRand(TransCoeff) ) { @@ -564,12 +563,13 @@ void G4OpBoundaryProcess::DielectricDielectric() E2_parl = Rindex2*E2_parl/Rindex1 - E1_parl; E2_perp = E2_perp - E1_perp; E2_total = E2_perp*E2_perp + E2_parl*E2_parl; - Refracted = theFacetNormal + PdotN * NewMomentum; + A_paral = NewMomentum.cross(A_trans); + A_paral = A_paral.unit(); E2_abs = sqrt(E2_total); C_parl = E2_parl/E2_abs; C_perp = E2_perp/E2_abs; - NewPolarization = C_parl*Refracted - C_perp*A_trans; + NewPolarization = C_parl*A_paral + C_perp*A_trans; } @@ -591,14 +591,16 @@ void G4OpBoundaryProcess::DielectricDielectric() if (sint1 > 0.0) { // incident ray oblique G4double alpha = cost1 - cost2*(Rindex2/Rindex1); - Deflected = OldMomentum + alpha*theFacetNormal; - NewMomentum = Deflected.unit(); + NewMomentum = OldMomentum + alpha*theFacetNormal; + NewMomentum = NewMomentum.unit(); PdotN = -cost2; - Refracted = theFacetNormal - PdotN*NewMomentum; + A_paral = NewMomentum.cross(A_trans); + A_paral = A_paral.unit(); E2_abs = sqrt(E2_total); C_parl = E2_parl/E2_abs; C_perp = E2_perp/E2_abs; - NewPolarization = C_parl*Refracted + C_perp*A_trans; + + NewPolarization = C_parl*A_paral + C_perp*A_trans; } else { // incident ray perpendicular @@ -610,8 +612,8 @@ void G4OpBoundaryProcess::DielectricDielectric() } } - OldMomentum = NewMomentum; - OldPolarization = NewPolarization; + OldMomentum = NewMomentum.unit(); + OldPolarization = NewPolarization.unit(); if (theStatus == FresnelRefraction) { Done = (NewMomentum * theGlobalNormal <= 0.0); diff --git a/source/processes/optical/src/G4OpRayleigh.cc b/source/processes/optical/src/G4OpRayleigh.cc index 8b451a11d0..25db5ad1fc 100644 --- a/source/processes/optical/src/G4OpRayleigh.cc +++ b/source/processes/optical/src/G4OpRayleigh.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpRayleigh.cc,v 1.8 2001/10/18 17:13:54 gum Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/parameterisation/History b/source/processes/parameterisation/History index cdd041bb7d..00f7f30a60 100644 --- a/source/processes/parameterisation/History +++ b/source/processes/parameterisation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.14 2001/10/26 15:27:06 mverderi Exp $ +$Id: History,v 1.16 2002/11/20 17:05:46 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,26 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 20, 2002 G. Cosmo - param-V04-01-02 + o Patched access to public static data in G4FastStep.cc + and G4GlobalFastSimulationManager.cc to allow porting on + Windows DLLs. + +Nov 15, 2002 S. Sadilov - param-V04-01-01 + o Fixed compilation problems on Windows in + G4FastSimulationManager.cc and G4GlobalFastSimulationManager.cc + +Nov 02, 2002 M. Verderi - param-V04-01-00 + o Add method to retrieve G4VFastSimulationModel by name. + The user's method is in G4GlobalFastSimulationManager: + + GetFastSimulationModel(); + + it is accompagnied by same methods name in + G4FastSimulationManager class. + + o Add "test" directory, used to test above feature. + Oct 26, 2001 M. Verderi - param-V03-02-00 Fixes to clear warnings produced with gcc-2.95.2: - loop index, where comparison with method "size()" of diff --git a/source/processes/parameterisation/include/G4FastSimulationManager.hh b/source/processes/parameterisation/include/G4FastSimulationManager.hh index 87b7a7b367..f63af6c1be 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationManager.hh,v 1.7 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FastSimulationManager.hh,v 1.8 2002/11/02 00:10:34 mverderi Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -146,6 +146,13 @@ public: // without description void ListModels(const G4String& aName) const; const G4Envelope* GetEnvelope() const; + G4VFastSimulationModel* GetFastSimulationModel(const G4String& modelName, + const G4VFastSimulationModel* previousFound, + bool &foundPrevious) const; + + + + // //---------------------------------------------- // Interface methods for the G4GlobalFastSimulationManager diff --git a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh index a1f0483b2b..5e899c7297 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManagerProcess.hh,v 1.8 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastSimulationMessenger.hh b/source/processes/parameterisation/include/G4FastSimulationMessenger.hh index 4e9d42b517..3414db05bc 100644 --- a/source/processes/parameterisation/include/G4FastSimulationMessenger.hh +++ b/source/processes/parameterisation/include/G4FastSimulationMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationMessenger.hh,v 1.4 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT 4 class header file diff --git a/source/processes/parameterisation/include/G4FastStep.hh b/source/processes/parameterisation/include/G4FastStep.hh index 7a4a28060e..95b6c29bea 100644 --- a/source/processes/parameterisation/include/G4FastStep.hh +++ b/source/processes/parameterisation/include/G4FastStep.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.hh,v 1.6 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastStep.icc b/source/processes/parameterisation/include/G4FastStep.icc index 88f1de3a87..5fcbd5f2f3 100644 --- a/source/processes/parameterisation/include/G4FastStep.icc +++ b/source/processes/parameterisation/include/G4FastStep.icc @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.icc,v 1.3 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $id: G4ParticleChange.icc,v 1.6 1998/04/14 02:25:54 kurasige Exp $ diff --git a/source/processes/parameterisation/include/G4FastTrack.hh b/source/processes/parameterisation/include/G4FastTrack.hh index 2472a2fb64..b173aec5e1 100644 --- a/source/processes/parameterisation/include/G4FastTrack.hh +++ b/source/processes/parameterisation/include/G4FastTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastTrack.hh,v 1.5 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh b/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh index d29e614d97..a394b633a4 100644 --- a/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh +++ b/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4FlavoredParallelWorld.hh,v 1.5 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh index 40f523b821..7f2f79ffca 100644 --- a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GlobalFastSimulationManager.hh,v 1.8 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GlobalFastSimulationManager.hh,v 1.9 2002/11/02 00:10:34 mverderi Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -88,6 +88,32 @@ public: // With description static G4GlobalFastSimulationManager* GetGlobalFastSimulationManager(); // Provides a global access to the GlobalFastSimulationManager + + G4VFastSimulationModel* GetFastSimulationModel(const G4String& modelName, + const G4VFastSimulationModel* previousFound = 0) const; + // Fetch G4VFastSimulationModel by name: + // + // o returns the G4VFastSimulationModel* of model with name modelName; + // o returns 0 if no model found; + // + // - usage: + // + // myModel = gblManager->GetFastSimulationModel("MyModel"); + // + // o note for the case of several models having the same name: + // - to get the first "MyModel" model: + // + // myModel1 = gblManager->GetFastSimulationModel("MyModel", 0); + // + // - to get the next one: + // + // myModel2 = gblManager->GetFastSimulationModel("MyModel", myModel1); + // + // - and so on. + // + // - When gblManager->GetFastSimulationModel("MyModel", myModel_n) + // returns a null pointer, no extra model with name "MyModel" exist. + public: // Without description @@ -101,6 +127,7 @@ public: // Without description void AddFastSimulationManager(G4FastSimulationManager*); void RemoveFastSimulationManager(G4FastSimulationManager*); + // Flag that the Parameterisation must be closed. void FastSimulationNeedsToBeClosed(); diff --git a/source/processes/parameterisation/include/G4VFastSimulationModel.hh b/source/processes/parameterisation/include/G4VFastSimulationModel.hh index 595747f7a1..4ab36a6c8b 100644 --- a/source/processes/parameterisation/include/G4VFastSimulationModel.hh +++ b/source/processes/parameterisation/include/G4VFastSimulationModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFastSimulationModel.hh,v 1.4 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationManager.cc b/source/processes/parameterisation/src/G4FastSimulationManager.cc index cfae0c42df..63755d769a 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationManager.cc,v 1.6 2001/10/26 14:43:36 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FastSimulationManager.cc,v 1.8 2002/11/15 11:41:56 stesting Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------------------------------------------------------- // @@ -118,6 +118,39 @@ G4FastSimulationManager::InActivateFastSimulationModel(const G4String& aName) return false; } +G4VFastSimulationModel* +G4FastSimulationManager::GetFastSimulationModel(const G4String& modelName, + const G4VFastSimulationModel* previousFound, + bool &foundPrevious) const +{ + G4VFastSimulationModel* model = 0; + for (size_t iModel=0; iModelGetName() == modelName) + { + if (previousFound == 0) + { + model = ModelList[iModel]; + break; + } + else + { + if (ModelList[iModel] == previousFound) + { + foundPrevious = true; + continue; + } + if (foundPrevious) + { + model = ModelList[iModel]; + break; + } + } + } + } + return model; +} + //---------------------------------------- // Methods to add/remove GhostPlacements //---------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc index 05e7ff8ab5..5dd8163efd 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManagerProcess.cc,v 1.7 2001/10/26 14:43:36 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc index 507598ebce..89a4c52578 100644 --- a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc +++ b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationMessenger.cc,v 1.4 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FastSimulationMessenger.cc,v 1.5 2002/12/04 21:29:50 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4FastSimulationMessenger.hh" @@ -45,7 +45,7 @@ G4FastSimulationMessenger(G4GlobalFastSimulationManager* theGFSM) fListEnvelopesCmd->SetDefaultValue("all"); fListEnvelopesCmd->SetGuidance("List all the envelope names for a given Particle"); fListEnvelopesCmd->SetGuidance("(or for all particles if without parameters)."); - fListEnvelopesCmd->AvailableForStates(PreInit,Idle); + fListEnvelopesCmd->AvailableForStates(G4State_PreInit,G4State_Idle); fListModelsCmd = new G4UIcmdWithAString("/param/listModels", this); @@ -53,7 +53,7 @@ G4FastSimulationMessenger(G4GlobalFastSimulationManager* theGFSM) fListModelsCmd->SetDefaultValue("all"); fListModelsCmd->SetGuidance("List all the Model names for a given Envelope"); fListModelsCmd->SetGuidance("(or for all envelopes if without parameters)."); - fListModelsCmd->AvailableForStates(PreInit,Idle); + fListModelsCmd->AvailableForStates(G4State_PreInit,G4State_Idle); fListIsApplicableCmd = new G4UIcmdWithAString("/param/listIsApplicable", this); diff --git a/source/processes/parameterisation/src/G4FastStep.cc b/source/processes/parameterisation/src/G4FastStep.cc index 6d07579c52..e539b691d7 100644 --- a/source/processes/parameterisation/src/G4FastStep.cc +++ b/source/processes/parameterisation/src/G4FastStep.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastStep.cc,v 1.9 2001/10/26 14:43:36 mverderi Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FastStep.cc,v 1.10 2002/11/20 17:05:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------------------------------------------------------- // @@ -455,28 +455,28 @@ G4bool G4FastStep::CheckIt(const G4Track& aTrack) // Energy should not be larger than the initial value accuracy = ( theEnergyChange - aTrack.GetKineticEnergy())/MeV; - if (accuracy > accuracyForWarning) { + if (accuracy > GetAccuracyForWarning()) { G4cout << " G4FastStep::CheckIt : "; G4cout << "the energy becomes larger than the initial value !!" << G4endl; G4cout << " Difference: " << accuracy << "[MeV] " < accuracyForException) exitWithError = true; + if (accuracy > GetAccuracyForException()) exitWithError = true; } G4bool itsOKforMomentum = true; if ( theEnergyChange >0.) { accuracy = abs(theMomentumChange.mag2()-1.0); - if (accuracy > accuracyForWarning) { + if (accuracy > GetAccuracyForWarning()) { G4cout << " G4FastStep::CheckIt : "; G4cout << "the Momentum Change is not unit vector !!" << " Difference: " << accuracy << G4endl; itsOK = itsOKforMomentum = false; - if (accuracy > accuracyForException) exitWithError = true; + if (accuracy > GetAccuracyForException()) exitWithError = true; } } accuracy = (aTrack.GetGlobalTime()- theTimeChange)/ns; - if (accuracy > accuracyForWarning) { + if (accuracy > GetAccuracyForWarning()) { G4cout << " G4FastStep::CheckIt : "; G4cout << "the global time goes back !!" << " Difference: " << accuracy << "[ns] " <GetPreviousState()==Idle) && - (requestedState==GeomClosed) && + if((stateManager->GetPreviousState()==G4State_Idle) && + (requestedState==G4State_GeomClosed) && (!fClosed)) G4Exception("G4GlobalFastSimulationManager fatal error : \n1) you are using ghost volumes;\n2) In this case the G4GlobalFastSimulationManager MUST be closed BEFORE\n closing the geometry;\n3) To do this put in your code the call \n G4GlobalFastSimulationManager::GetGlobalFastSimulationManager()->\n CloseFastSimulation();\n just before closing the geometry."); return true; } + +G4VFastSimulationModel* +G4GlobalFastSimulationManager::GetFastSimulationModel(const G4String& modelName, + const G4VFastSimulationModel* previousFound) const +{ + G4VFastSimulationModel* model = 0; + // -- flag used to navigate accross the various managers; + bool foundPrevious(false); + for (size_t ifsm=0; ifsmGetFastSimulationModel(modelName, previousFound, foundPrevious); + if (model) break; + } + return model; +} diff --git a/source/processes/parameterisation/src/G4VFastSimulationModel.cc b/source/processes/parameterisation/src/G4VFastSimulationModel.cc index 9c2659ced5..606e6376a6 100644 --- a/source/processes/parameterisation/src/G4VFastSimulationModel.cc +++ b/source/processes/parameterisation/src/G4VFastSimulationModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFastSimulationModel.cc,v 1.5 2001/07/11 10:08:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------------------------------------------------------- // diff --git a/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.hh b/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.hh index 7073724034..2a2f573f00 100644 --- a/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.hh +++ b/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuNuclearInteraction.hh,v 1.4 2001/07/11 10:08:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.icc b/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.icc index 5b1663c5a7..eedb78b934 100644 --- a/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.icc +++ b/source/processes/photolepton_hadron/include/G4MuNuclearInteraction.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuNuclearInteraction.icc,v 1.5 2001/10/24 17:46:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // --------------------------------------------------------------- diff --git a/source/processes/photolepton_hadron/src/G4MuNuclearInteraction.cc b/source/processes/photolepton_hadron/src/G4MuNuclearInteraction.cc index 426e320c69..cb82546e8a 100644 --- a/source/processes/photolepton_hadron/src/G4MuNuclearInteraction.cc +++ b/source/processes/photolepton_hadron/src/G4MuNuclearInteraction.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuNuclearInteraction.cc,v 1.11 2001/10/24 17:46:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/photolepton_hadron/src/G4MuonNucleusInteractionModel.cc b/source/processes/photolepton_hadron/src/G4MuonNucleusInteractionModel.cc index 3bd44bde52..a25b658c36 100644 --- a/source/processes/photolepton_hadron/src/G4MuonNucleusInteractionModel.cc +++ b/source/processes/photolepton_hadron/src/G4MuonNucleusInteractionModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonNucleusInteractionModel.cc,v 1.5 2001/10/24 17:47:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // G4MuonNucleusInteractionModel.cc diff --git a/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc b/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc index 43d1ab837e..aae06e9be5 100644 --- a/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc +++ b/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParametrizedHadronicVertex.cc,v 1.5 2001/10/24 17:47:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- #include "G4ParametrizedHadronicVertex.hh" diff --git a/source/processes/transportation/GNUmakefile b/source/processes/transportation/GNUmakefile index e7b0abab78..57fb91a317 100644 --- a/source/processes/transportation/GNUmakefile +++ b/source/processes/transportation/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2002/05/17 07:08:58 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2002/10/16 16:26:57 dressel Exp $ # ------------------------------------------------------------ # GNUmakefile for transportation library. G.Folger 10-Dec-97. # ------------------------------------------------------------ @@ -11,7 +11,8 @@ endif include $(G4INSTALL)/config/architecture.gmk -CPPFLAGS += -I$(G4BASE)/global/management/include \ +CPPFLAGS += \ + -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ @@ -22,7 +23,8 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/particles/management/include \ - -I$(G4BASE)/materials/include + -I$(G4BASE)/materials/include \ + -I$(G4BASE)/intercoms/include ifdef G4DEBUG_TRANSPORT CPPFLAGS += -DG4DEBUG_TRANSPORT diff --git a/source/processes/transportation/History b/source/processes/transportation/History index ddde8185ea..478f91f3c2 100644 --- a/source/processes/transportation/History +++ b/source/processes/transportation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.38 2002/05/31 14:52:01 dressel Exp $ +$Id: History,v 1.63 2002/11/20 19:27:39 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,91 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov, 20th, J. Apostolakis transport-V04-01-05 +------------------------- +- Tagged. + Tag requires: geomvol-V04-01-06 and tracking-V04-01-10 + and is dependent also on greps-V04-01-01 and track-V04-01-01. + +Nov, 8th, J.Generowicz +- Copy auxiliary smooth trajectory point from PIF to ParticleChange + +Nov, 4th 2002 M.Dressel transport-V04-01-04 +----------------------------------------------------- +- remove G4std:: where it does not belong to +- replace str() functions + +Oct 31st, 2002 M.Dressel transport-V04-01-03 +----------------------------------------------------- +- bug fix in G4MassGeometrySampler and G4ParallelGeometrySampler + +Oct 28th, 2002 M.Dressel transport-V04-01-02 +----------------------------------------------------- +- bug fix in G4MassGeometry + +Oct 22th, 2002 M.Dressel internal_7_transport-V04-01-01 +-------------------------------------------------------- +- moving G4CellStoreScorer, G4TrackLogger + to digits+hits/detector +- resolving G4SLRawValues + +Oct 16th, 2002 M.Dressel internal_6_transport-V04-01-01 +-------------------------------------------------------- +- changes recomanded by codewizrd +- added GCellFinder concept + +Oct 10th, 2002 M.Dressel transport-V04-01-01-internal-5 +-------------------------------------------------------- +- changing sampler concept: instead of separat samplers for + all combinations of importance sampling, scoring, wieght roulette + for parallel and mass geometry there are two Samplers now + for the mass and parallel geometry: G4MassGeometrySampler + and G4ParallelGeometrySampler. +- Introduction of Configurators to setup the processes. + +Sep 18th, 2002 M.Dressel transport-V04-01-01-internal-4 +-------------------------------------------------------- +- tagging a version before reducing the number of Samplers + +Sep 2th, 2002 M.dressel transport-V04-01-01-internal-3 +----------------------------------------- + code cleanup for code-wizard + +Aug 29th, 2002 M.Dressel int-1-V04-01-01 +----------------------------------------- +- adopted to changes in int-2-geombias-V04-01-01: + renaming of G4PTouchableKey to G4GeometryCell + changing G4VIStore and G4IStore + and dependants + +Aug 13th, 2002 M.Dressel transport-V04-01-01 +---------------------------------------------- +- added G4CellStoreScorer, G4VTrackTerminator and changed the sampler + classes in order to use the G4VTrackTerminator (if necessary) to + kill a track. +- coworks with geombias-V04-01-01 + +July 18th, 2002 M.Dressel +------------------------- +- bug fix in G4TrackLogger + +July 11th, 2002 M.Dressel internal-2-transport-V04-01-01 +-------------------------------------------------------- +- moved the standard scoring classes to run because + they need G4EventManager. + +July 10th, 2002 M.Dressel internal-1-transport-V04-01-01 +-------------------------------------------------------- +- add classes for standard scoreing. Remove G4ScorePrinter and G4Scorer. + G4StandardScorer and G4StandardScoreTable may be used as replacement. + The source file G4StandardScorer.cc may be found in + extended/examples/B09/src because it needs to acces the + G4EventManager. + +Jun 13, 2002 M.Dressel transport-V04-00-09 +--------------------------------------------- +- add classes for creating and printing tallies. + May 31, 2002 M.Dressel transport-V04-00-08 -------------------------------------------------------- - made weight window sampling to apply only at inital track step 1. diff --git a/source/processes/transportation/include/G4ImportancePostStepDoIt.hh b/source/processes/transportation/include/G4ImportancePostStepDoIt.hh index b5663733d0..bfdcbf340a 100644 --- a/source/processes/transportation/include/G4ImportancePostStepDoIt.hh +++ b/source/processes/transportation/include/G4ImportancePostStepDoIt.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportancePostStepDoIt.hh,v 1.4 2002/05/31 08:06:34 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImportancePostStepDoIt.hh,v 1.6 2002/10/16 16:26:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ImportancePostStepDoIt @@ -43,13 +43,16 @@ class G4ParticleChange; class G4Track; class G4Step; class G4Nsplit_Weight; +class G4VTrackTerminator; + class G4ImportancePostStepDoIt { public: // with description - G4ImportancePostStepDoIt(); + explicit G4ImportancePostStepDoIt(const G4VTrackTerminator & + TrackTerminator); // simply construct ~G4ImportancePostStepDoIt(); @@ -57,15 +60,18 @@ public: // with description void DoIt(const G4Track& aTrack, G4ParticleChange *aParticleChange, - const G4Nsplit_Weight nw); + const G4Nsplit_Weight &nw); // Do the PostStepDoIt part common to importance sampling in the // "mass" and "parallel" geometry. private: - void Split(const G4Track &aTrack, const G4Nsplit_Weight &nw, G4ParticleChange *aParticleChange); + + const G4VTrackTerminator &fTrackTerminator; + + }; #endif diff --git a/source/processes/transportation/include/G4MImportanceConfigurator.hh b/source/processes/transportation/include/G4MImportanceConfigurator.hh new file mode 100644 index 0000000000..cb3a65da58 --- /dev/null +++ b/source/processes/transportation/include/G4MImportanceConfigurator.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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: G4MImportanceConfigurator.hh,v 1.3 2002/10/22 13:25:55 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4MImportanceConfigurator +// +// Class description: +// This class builds and places the G4ImportanceProcess. +// If the object is deleted the process is removed from the +// process list. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4MImportanceConfigurator_hh +#define G4MImportanceConfigurator_hh G4MImportanceConfigurator_hh + +#include "globals.hh" +#include "G4MassImportanceProcess.hh" +#include "G4ProcessPlacer.hh" +#include "G4VSamplerConfigurator.hh" + +class G4VImportanceAlgorithm; + +class G4MImportanceConfigurator : public G4VSamplerConfigurator{ +public: + G4MImportanceConfigurator(const G4String &particlename, + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg); + + virtual ~G4MImportanceConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; + +private: + G4MImportanceConfigurator(const G4MImportanceConfigurator &); + G4MImportanceConfigurator & + operator=(const G4MImportanceConfigurator &); + + G4ProcessPlacer fPlacer; + G4VIStore &fIStore; + G4bool fDeleteIalg; + const G4VImportanceAlgorithm *fIalgorithm; + G4MassImportanceProcess *fMassImportanceProcess; +}; + + +#endif diff --git a/source/processes/transportation/include/G4MScoreConfigurator.hh b/source/processes/transportation/include/G4MScoreConfigurator.hh new file mode 100644 index 0000000000..441c27090f --- /dev/null +++ b/source/processes/transportation/include/G4MScoreConfigurator.hh @@ -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: G4MScoreConfigurator.hh,v 1.3 2002/10/22 13:25:55 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4MScoreConfigurator +// +// Class description: +// This class builds and places the G4MScoreProcess. +// If the object is deleted the process is removed from the +// process list. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4MScoreConfigurator_hh +#define G4MScoreConfigurator_hh G4MScoreConfigurator_hh + +#include "globals.hh" +#include "G4MScoreProcess.hh" +#include "G4ProcessPlacer.hh" + +#include "G4VSamplerConfigurator.hh" + +class G4VScorer; +class G4VTrackTerminator; + +class G4MScoreConfigurator : public G4VSamplerConfigurator{ +public: + G4MScoreConfigurator(const G4String &particlename, + G4VScorer &scorer); + virtual ~G4MScoreConfigurator(); + + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; + + +private: + G4MScoreConfigurator(const G4MScoreConfigurator&); + G4MScoreConfigurator &operator=(const G4MScoreConfigurator&); + + G4ProcessPlacer fPlacer; + G4VScorer &fScorer; + G4MScoreProcess *fMScoreProcess; +}; + + +#endif diff --git a/source/processes/transportation/include/G4MScoreProcess.hh b/source/processes/transportation/include/G4MScoreProcess.hh index f2187f286b..66fa9ab8c5 100644 --- a/source/processes/transportation/include/G4MScoreProcess.hh +++ b/source/processes/transportation/include/G4MScoreProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MScoreProcess.hh,v 1.3 2002/04/10 13:14:16 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MScoreProcess.hh,v 1.7 2002/10/22 13:25:55 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreProcess @@ -31,7 +31,7 @@ // // Used internally by scoring in the "mass" world. // This is a forced post step process messaging a "scorer" -// derived from G4VPScorer. +// derived from G4VScorer. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -39,16 +39,18 @@ #define G4MScoreProcess_hh G4MScoreProcess_hh #include "G4VProcess.hh" +#include "G4VTrackTerminator.hh" -class G4VPScorer; +class G4VScorer; + +class G4MScoreProcess : public G4VProcess, public G4VTrackTerminator -class G4MScoreProcess : public G4VProcess { public: // with description - G4MScoreProcess(G4VPScorer &aScorer, - const G4String &aName = "MScoreProcess"); + explicit G4MScoreProcess(G4VScorer &aScorer, + const G4String &aName = "MScoreProcess"); // take reference to scorer and coppy particle name and // create a G4ParticleChange @@ -62,37 +64,44 @@ public: // with description // make processed being forced virtual G4VParticleChange * PostStepDoIt(const G4Track&, const G4Step&); - // message "scorer" with G4Step and a G4PStep from the "mass" + // message "scorer" with G4Step and a G4GeometryCellStep from the "mass" // geometry + virtual void KillTrack() const; + + // to be called by the importance process if the track should + // be killed after scoring + virtual const G4String &GetName() const ; + public: // without description // no operation in AtRestDoIt and AlongStepDoIt - G4double + virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track&, G4double , G4double , G4double& , - G4GPILSelection*) {return -1.0;} + G4GPILSelection*); - G4double + virtual G4double AtRestGetPhysicalInteractionLength(const G4Track&, - G4ForceCondition*) {return -1.0;} + G4ForceCondition*); - G4VParticleChange* AtRestDoIt(const G4Track&, - const G4Step&) {return 0;} - G4VParticleChange* AlongStepDoIt(const G4Track&, - const G4Step&) {return 0;} + virtual G4VParticleChange* AtRestDoIt(const G4Track&, + const G4Step&); + virtual G4VParticleChange* AlongStepDoIt(const G4Track&, + const G4Step&); private: G4MScoreProcess(const G4MScoreProcess &); G4MScoreProcess &operator=(const G4MScoreProcess &); - + private: - G4VPScorer &fScorer; + G4VScorer &fScorer; + mutable G4bool fKillTrack; }; #endif diff --git a/source/processes/transportation/include/G4MassGCellFinder.hh b/source/processes/transportation/include/G4MassGCellFinder.hh new file mode 100644 index 0000000000..81dfd80ef3 --- /dev/null +++ b/source/processes/transportation/include/G4MassGCellFinder.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * 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: G4MassGCellFinder.hh,v 1.1 2002/10/16 16:27:41 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelGCellFinder +// +// Class description: +// +// Find a G4GeometryCell in the mass geometry. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4MassGCellFinder_hh +#define G4MassGCellFinder_hh G4MassGCellFinder_hh + +#include "globals.hh" + +#include "G4VGCellFinder.hh" + +class G4MassGCellFinder : public G4VGCellFinder +{ + +public: // with description + + G4MassGCellFinder(); + virtual ~G4MassGCellFinder(); + + virtual G4GeometryCell + GetPreGeometryCell(const G4Step &aStep) const; + virtual G4GeometryCell + GetPostGeometryCell(const G4Step &aStep) const; + +}; + +#endif diff --git a/source/processes/transportation/include/G4ParallelScoreSampler.hh b/source/processes/transportation/include/G4MassGeometrySampler.hh similarity index 54% rename from source/processes/transportation/include/G4ParallelScoreSampler.hh rename to source/processes/transportation/include/G4MassGeometrySampler.hh index 1594652e3a..1769947af4 100644 --- a/source/processes/transportation/include/G4ParallelScoreSampler.hh +++ b/source/processes/transportation/include/G4MassGeometrySampler.hh @@ -21,67 +21,67 @@ // ******************************************************************** // // -// $Id: G4ParallelScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MassGeometrySampler.hh,v 1.3 2002/10/22 13:25:55 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4ParallelScoreSampler +// Class G4MassGeometrySampler // // Class description: +// This class inherits from G4VSampler. It is used for scoring and +// importance smpling in the tracking (mass) geometry. +// See also the description in G4VSampler.hh. // -// A user should use this class to set up scoring in a "parallel" -// geometry. -// The user must create an object of this kind and initialise it. - - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4ParallelScoreSampler_hh -#define G4ParallelScoreSampler_hh G4ParallelScoreSampler_hh +#ifndef G4MassGeometrySampler_hh +#define G4MassGeometrySampler_hh G4MassGeometrySampler_hh -#include "globals.hh" #include "G4VSampler.hh" +#include "globals.hh" +#include "G4VSamplerConfigurator.hh" -class G4ParallelWorld; -class G4VPhysicalVolume; -class G4ParallelTransport; -class G4VPScorer; -class G4PScoreProcess; +class G4MImportanceConfigurator; +class G4MScoreConfigurator; +class G4WeightCutOffConfigurator; +class G4VGCellFinder; -class G4ParallelScoreSampler : public G4VSampler -{ +class G4MassGeometrySampler : public G4VSampler{ -public: // with description - - G4ParallelScoreSampler(G4VPhysicalVolume &worldvolume, - const G4String &particlename, - G4VPScorer &scorer); - // create and initalise members - - ~G4ParallelScoreSampler(); - // delete constructed members - - G4PScoreProcess *CreateParallelScoreProcess(); - // create the parallel score process - // don't use it if you use Initialize() - G4ParallelTransport *CreateParallelTransport(); - // get the G4ParallelTransport +public: - void Initialize(); - // the G4ParallelScoreSampler has to be initialised after - // the initialisation of the G4RunManager ! + explicit G4MassGeometrySampler(const G4String &particlename); + virtual ~G4MassGeometrySampler(); + virtual void PrepareScoring(G4VScorer *Scorer); + virtual void PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm + *ialg); + virtual void PrepareWeightRoulett(G4double wsurvive, + G4double wlimit, + G4double isource); + + virtual void Configure(); + + virtual void ClearSampling(); + virtual G4bool IsConfigured() const; + private: - G4ParallelScoreSampler(const G4ParallelScoreSampler &); - G4ParallelScoreSampler &operator=(const G4ParallelScoreSampler&); + G4MassGeometrySampler(const G4MassGeometrySampler &); + G4MassGeometrySampler & + operator=(const G4MassGeometrySampler &); private: G4String fParticleName; - G4ParallelWorld &fParallelWorld; - G4VPScorer &fPScorer; - G4PScoreProcess *fPScorerProcess; - G4ParallelTransport *fParallelTransport; + G4MImportanceConfigurator *fMImportanceConfigurator; + G4MScoreConfigurator *fMScoreConfigurator; + G4VGCellFinder *fGCellFinder; + G4WeightCutOffConfigurator *fWeightCutOffConfigurator; + G4VIStore *fIStore; + G4bool fIsConfigured; + G4Configurators fConfigurators; }; - + #endif + diff --git a/source/processes/transportation/include/G4MassImportanceProcess.hh b/source/processes/transportation/include/G4MassImportanceProcess.hh index 469da4faa9..0081d9ce2e 100644 --- a/source/processes/transportation/include/G4MassImportanceProcess.hh +++ b/source/processes/transportation/include/G4MassImportanceProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MassImportanceProcess.hh,v 1.3 2002/04/10 13:14:16 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MassImportanceProcess.hh,v 1.6 2002/10/16 16:26:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4MassImportanceProcess @@ -41,22 +41,24 @@ #include "G4VProcess.hh" #include "G4ImportancePostStepDoIt.hh" +#include "G4VTrackTerminator.hh" +#include "G4ImportanceFinder.hh" class G4VImportanceAlgorithm; -class G4ImportanceFinder; class G4VIStore; -class G4MassImportanceProcess : public G4VProcess +class G4MassImportanceProcess : public G4VProcess, public G4VTrackTerminator { public: // with description G4MassImportanceProcess(const G4VImportanceAlgorithm &aImportanceAlgorithm, const G4VIStore &aIstore, + const G4VTrackTerminator *TrackTerminator, const G4String &aName = "MassImportanceProcess"); // creates a G4ParticleChange - ~G4MassImportanceProcess(); + virtual ~G4MassImportanceProcess(); // delete the G4ParticleChange virtual G4double @@ -67,33 +69,45 @@ public: // with description virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); // manage the importance sampling in the "mass" geometry + virtual void KillTrack() const; + // used in case no scoring process follows that does the killing + + virtual const G4String &GetName() const; + + public: // without description // no operation in AtRestDoIt and AlongStepDoIt - G4double AlongStepGetPhysicalInteractionLength(const G4Track&, + virtual G4double + AlongStepGetPhysicalInteractionLength(const G4Track&, G4double , G4double , G4double& , - G4GPILSelection*) {return -1.0;} + G4GPILSelection*); + virtual G4double + AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*); - G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) {return -1.0;} - - G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&) {return 0;} - G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&) {return 0;} + virtual G4VParticleChange* + AtRestDoIt(const G4Track&, const G4Step&); + + + virtual G4VParticleChange* + AlongStepDoIt(const G4Track&, const G4Step&); private: - + G4MassImportanceProcess(const G4MassImportanceProcess &); G4MassImportanceProcess &operator=(const G4MassImportanceProcess &); - + private: G4ParticleChange *fParticleChange; - G4ImportancePostStepDoIt fImportancePostStepDoIt; + const G4VTrackTerminator *fTrackTerminator; const G4VImportanceAlgorithm &fImportanceAlgorithm; - G4ImportanceFinder *fImportanceFinder; + G4ImportanceFinder fImportanceFinder; + G4ImportancePostStepDoIt fImportancePostStepDoIt; }; #endif diff --git a/source/processes/transportation/include/G4PIScorer.hh b/source/processes/transportation/include/G4PIScorer.hh deleted file mode 100644 index b597af7766..0000000000 --- a/source/processes/transportation/include/G4PIScorer.hh +++ /dev/null @@ -1,95 +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: G4PIScorer.hh,v 1.5 2002/04/10 13:14:16 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// Class G4PIScorer -// -// Class description: -// -// A scorer delegating the scoring to G4PScorer. It performs -// a check for consistency between the importance value -// assigned to a post G4PTouchableKey and the weight of a track. -// The relation should be importance value * weight = 1. -// CAUTION: This holds only in well defined situations: -// A track starts in a "cell" with importance 1 and has a weight of 1. -// The particle can not be produced by other not importance sampled -// particles. - -// Author: Michael Dressel (Michael.Dressel@cern.ch) -// ---------------------------------------------------------------------- -#ifndef G4PIScorer_hh -#define G4PIScorer_hh G4PIScorer_hh - -#include "g4std/iostream" - -#include "G4VPScorer.hh" -#include "G4PMapPtkTallys.hh" -#include "G4PScorer.hh" - -class G4Step; -class G4PStep; -class G4VIStore; - -class G4PIScorer : public G4VPScorer -{ - -public: // with description - - G4PIScorer(const G4VIStore &IStore); - // simple construction - - ~G4PIScorer(); - // simple destruction - - void Score(const G4Step &aStep, const G4PStep &aPStep); - // perform scoring for the G4Step and G4PStep - - const G4PMapPtkTallys &GetMapPtkTallys() const - {return fPScorer.GetMapPtkTallys();} - // get a reference to the G4PMapPtkTallys containing - // the tallies - - G4bool CorrectWeight() const {return fCorrectWeight;} - // returns false if the weight was not correct - // a user might want to get this information - // to mark the event a incorrect weight occurred - - void ResetCorrectWeight() {fCorrectWeight = true;} - // reset fCorrectWeight - // the user has to reset the flag fCorrectWeight - // if he wants to use CorrectWeight() - -private: - - const G4VIStore &fIStore; - G4PScorer fPScorer; - G4int fNerr; - G4bool fCorrectWeight; -}; - -G4std::ostream& operator<<(G4std::ostream &out, const G4PIScorer &ps); - -#endif diff --git a/source/processes/transportation/include/G4PImportanceConfigurator.hh b/source/processes/transportation/include/G4PImportanceConfigurator.hh new file mode 100644 index 0000000000..1dfecb8de0 --- /dev/null +++ b/source/processes/transportation/include/G4PImportanceConfigurator.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: G4PImportanceConfigurator.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4PImportanceConfigurator +// +// Class description: +// This class builds and places the G4PImportanceProcess +// If the object is deleted the process is removed from the +// process list. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4PImportanceConfigurator_hh +#define G4PImportanceConfigurator_hh G4PImportanceConfigurator_hh + +#include "G4VSamplerConfigurator.hh" + +#include "globals.hh" +#include "G4ImportanceSplitExaminer.hh" +#include "G4ParallelImportanceProcess.hh" +#include "G4ProcessPlacer.hh" + +class G4ParallelWorld; +class G4VImportanceAlgorithm; + + +class G4PImportanceConfigurator : public G4VSamplerConfigurator { +public: + G4PImportanceConfigurator(const G4String &particlename, + G4ParallelWorld ¶llelWorld, + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg); + virtual ~G4PImportanceConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; + +private: + G4PImportanceConfigurator(const G4PImportanceConfigurator &); + G4PImportanceConfigurator & + operator=(const G4PImportanceConfigurator &); + G4ProcessPlacer fPlacer; + G4ParallelWorld &fPWorld; + G4bool fDeleteIalg; + const G4VImportanceAlgorithm *fIalgorithm; + G4ImportanceSplitExaminer fExaminer; + G4ParallelImportanceProcess *fParallelImportanceProcess; +}; + + +#endif diff --git a/source/processes/transportation/include/G4PImportanceWWindowScoreSampler.hh b/source/processes/transportation/include/G4PImportanceWWindowScoreSampler.hh deleted file mode 100644 index 51aa06df46..0000000000 --- a/source/processes/transportation/include/G4PImportanceWWindowScoreSampler.hh +++ /dev/null @@ -1,99 +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: G4PImportanceWWindowScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// Class G4PImportanceWWindowScoreSampler -// -// Class description: -// -// This class manages the importance sampling and importance weight window -// sampling together with scoring in a parallel geometry. -// The user must create an object of this kind and initialise it. - -// Author: Michael Dressel (Michael.Dressel@cern.ch) -// ---------------------------------------------------------------------- -#ifndef G4PImportanceWWindowScoreSampler_hh -#define G4PImportanceWWindowScoreSampler_hh G4PImportanceWWindowScoreSampler_hh - -#include "globals.hh" -#include "G4VSampler.hh" - -class G4VIStore; -class G4VPScorer; -class G4VImportanceAlgorithm; -class G4PScoreProcess; -class G4ParallelWorld; -class G4ParallelImportanceSampler; -class G4VProcess; -class G4VWeightWindowAlgorithm; - -class G4PImportanceWWindowScoreSampler : - public G4VSampler -{ - -public: // with description - - G4PImportanceWWindowScoreSampler(G4VIStore &iw, - G4VPScorer &ascorer, - const G4String &particlename, - G4VWeightWindowAlgorithm &wwalg, - const G4VImportanceAlgorithm *ialg = 0); - // if *ialg = 0: use G4ImportanceAlgorithm - // use a customised importance algorithm derived from - // G4VImportanceAlgorithm - - - ~G4PImportanceWWindowScoreSampler(); - // delete constructed objects - - G4PScoreProcess *CreateParallelScoreProcess(); - // create the parallel score process - // don't use it if you use Initialize() - - G4VProcess *CreateWeightWindowProcess(); - - void Initialize(); - // the G4MassImportanceScoreSampler has to be initialised after - // the initialisation of the G4RunManager ! - -private: - - G4PImportanceWWindowScoreSampler(const G4PImportanceWWindowScoreSampler &); - G4PImportanceWWindowScoreSampler & - operator=(const G4PImportanceWWindowScoreSampler &); - -private: - G4String fParticleName; - G4ParallelWorld &fParallelWorld; - G4ParallelImportanceSampler &fParallelImportanceSampler; - G4VPScorer &fPScorer; - G4VIStore &fIstore; - G4PScoreProcess *fPScoreProcess; - G4VProcess *fPWeightWindowProcess; - G4VWeightWindowAlgorithm &fWWAlgorithm; -}; - -#endif diff --git a/source/processes/transportation/include/G4PScoreConfigurator.hh b/source/processes/transportation/include/G4PScoreConfigurator.hh new file mode 100644 index 0000000000..5efa168fd0 --- /dev/null +++ b/source/processes/transportation/include/G4PScoreConfigurator.hh @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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: G4PScoreConfigurator.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4PScoreConfigurator +// +// Class description: +// This class builds and places the G4PScoreProcess +// If the object is deleted the process is removed from the +// process list. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4PScoreConfigurator_hh +#define G4PScoreConfigurator_hh G4PScoreConfigurator_hh + +#include "G4VSamplerConfigurator.hh" + +#include "globals.hh" +#include "G4PScoreProcess.hh" +#include "G4ProcessPlacer.hh" + +class G4VParallelStepper; +class G4VScorer; +class G4VTrackTerminator; + +class G4PScoreConfigurator : public G4VSamplerConfigurator{ +public: + G4PScoreConfigurator(const G4String &particlename, + G4VParallelStepper &pstepper, + G4VScorer &scorer); + virtual ~G4PScoreConfigurator(); + + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; + +private: + G4PScoreConfigurator(const G4PScoreConfigurator &); + G4PScoreConfigurator &operator=(const G4PScoreConfigurator &); + G4ProcessPlacer fPlacer; + G4VParallelStepper &fPStepper; + G4VScorer &fScorer; + G4PScoreProcess *fPScoreProcess; +}; + + +#endif diff --git a/source/processes/transportation/include/G4PScoreProcess.hh b/source/processes/transportation/include/G4PScoreProcess.hh index 7596730c3d..cb98727f9a 100644 --- a/source/processes/transportation/include/G4PScoreProcess.hh +++ b/source/processes/transportation/include/G4PScoreProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PScoreProcess.hh,v 1.3 2002/04/10 13:14:16 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PScoreProcess.hh,v 1.7 2002/10/22 13:25:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4PIScoreProcess @@ -30,8 +30,8 @@ // Class description: // // Used internally by scoring in a "parallel" geometry. -// This forced process messages a "scorer" derived from G4VPScorer. -// The scorer is messaged with the current G4Step and G4PStep. +// This forced process messages a "scorer" derived from G4VScorer. +// The scorer is messaged with the current G4Step and G4GeometryCellStep. // This post step process is supposed to be placed as the // process following directly after transportation and the // importance sampling process if applied and before all physical @@ -43,17 +43,19 @@ #define G4PScoreProcess_hh G4PScoreProcess_hh #include "G4VProcess.hh" +#include "G4VTrackTerminator.hh" class G4VParallelStepper; -class G4VPScorer; +class G4VScorer; -class G4PScoreProcess : public G4VProcess +class G4PScoreProcess : public G4VProcess, + public G4VTrackTerminator { public: // with description G4PScoreProcess(G4VParallelStepper &astepper, - G4VPScorer &aScorer, + G4VScorer &aScorer, const G4String &aName = "PScoreProcess"); // create a G4ParticleChange @@ -67,24 +69,32 @@ public: // with description // make the process beeing forced virtual G4VParticleChange * PostStepDoIt(const G4Track&, - const G4Step&); - // get G4PStep and G4Step and message "scorer" - + const G4Step&); + // get G4GeometryCellStep and G4Step and message "scorer" + + virtual void KillTrack() const; + + virtual const G4String &GetName() const; + + // to be called by the importance process if the track should + // be killed after scoring + public: // without description // no operation in AtRestDoIt and AlongStepDoIt - - G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) {return -1.0;} - G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) {return -1.0;} + virtual G4double + AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*); - G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&) {return 0;} - G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&) {return 0;} + virtual G4double AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*); + + virtual G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); private: @@ -92,7 +102,9 @@ private: G4PScoreProcess &operator=(const G4PScoreProcess &); G4VParallelStepper &fPstepper; - G4VPScorer &fScorer; + G4VScorer &fScorer; + + mutable G4bool fKillTrack; }; #endif diff --git a/source/processes/transportation/include/G4ParallelGCellFinder.hh b/source/processes/transportation/include/G4ParallelGCellFinder.hh new file mode 100644 index 0000000000..3152299134 --- /dev/null +++ b/source/processes/transportation/include/G4ParallelGCellFinder.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: G4ParallelGCellFinder.hh,v 1.1 2002/10/16 16:27:41 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelGCellFinder +// +// Class description: +// +// Find a G4GeometryCell in the parallel geometry. +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4ParallelGCellFinder_hh +#define G4ParallelGCellFinder_hh G4ParallelGCellFinder_hh + +#include "globals.hh" + +#include "G4VGCellFinder.hh" + +class G4VParallelStepper; +class G4ParallelGCellFinder : public G4VGCellFinder +{ + +public: // with description + + explicit G4ParallelGCellFinder(const G4VParallelStepper &astepper); + virtual ~G4ParallelGCellFinder(); + + virtual G4GeometryCell + GetPreGeometryCell(const G4Step &aStep) const; + virtual G4GeometryCell + GetPostGeometryCell(const G4Step &aStep) const; + +private: + const G4VParallelStepper &fPStepper; + +}; + +#endif diff --git a/source/processes/transportation/include/G4MassImportanceSampler.hh b/source/processes/transportation/include/G4ParallelGeometrySampler.hh similarity index 50% rename from source/processes/transportation/include/G4MassImportanceSampler.hh rename to source/processes/transportation/include/G4ParallelGeometrySampler.hh index 8d375f957f..0ecb620d2c 100644 --- a/source/processes/transportation/include/G4MassImportanceSampler.hh +++ b/source/processes/transportation/include/G4ParallelGeometrySampler.hh @@ -21,69 +21,79 @@ // ******************************************************************** // // -// $Id: G4MassImportanceSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelGeometrySampler.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4MassImportanceSampler +// Class G4ParallelGeometrySampler // // Class description: // -// A user should use this class to set up importance sampling -// in the "mass" geometry. -// The user must create an object of this kind and initialise it. - +// Class description: +// This class inherits from G4VSampler. It is used for scoring and +// importance smpling in a parallel geometry. +// See also the description in G4VSampler.hh. +// // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4MassImportanceSampler_hh -#define G4MassImportanceSampler_hh G4MassImportanceSampler_hh +#ifndef G4ParallelGeometrySampler_hh +#define G4ParallelGeometrySampler_hh G4ParallelGeometrySampler_hh -#include "globals.hh" #include "G4VSampler.hh" -class G4VIStore; -class G4MassImportanceProcess; -class G4VImportanceAlgorithm; -class G4VProcess; +#include "globals.hh" -class G4MassImportanceSampler : public G4VSampler -{ +#include "G4ParallelWorld.hh" -public: // with description +#include "G4VSamplerConfigurator.hh" - G4MassImportanceSampler(G4VIStore &aIstore, - const G4String &particlename, - const G4VImportanceAlgorithm *algorithm = 0); - // if *algorithm = 0: use the G4ImportanceAlgorithm - // else: use a customised importance algorithm derived from - // G4VImportanceAlgorithm +class G4ParallelTransportConfigurator; +class G4PScoreConfigurator; +class G4PImportanceConfigurator; +class G4WeightCutOffConfigurator; +class G4VGCellFinder; - ~G4MassImportanceSampler(); - // delete G4MassImportanceProcess and G4VImportanceAlgorithm - // if constructed by this object +class G4ParallelGeometrySampler : public G4VSampler{ - G4MassImportanceProcess *CreateMassImportanceProcess(); - // create the mass importance process - // don't use it if you use Initialize() - - void Initialize(); - // the G4MassImportanceSampler has to be initialised after - // the initialisation of the G4RunManager ! +public: + + + G4ParallelGeometrySampler(G4VPhysicalVolume &worldvolume, + const G4String &particlename); + virtual ~G4ParallelGeometrySampler(); + + virtual void PrepareScoring(G4VScorer *Scorer); + virtual void PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm + *ialg); + virtual void PrepareWeightRoulett(G4double wsurvive, + G4double wlimit, + G4double isource); + virtual void Configure(); + virtual void ClearSampling(); + virtual G4bool IsConfigured() const; + private: - G4MassImportanceSampler(const G4MassImportanceSampler &); - G4MassImportanceSampler &operator=(const G4MassImportanceSampler &); + G4ParallelGeometrySampler(const G4ParallelGeometrySampler &); + G4ParallelGeometrySampler & + operator=(const G4ParallelGeometrySampler &); private: - - G4VIStore &fIStore; G4String fParticleName; - G4MassImportanceProcess *fMassImportanceProcess; - G4bool fCreatedAlgorithm; - const G4VImportanceAlgorithm *fAlgorithm; + G4ParallelWorld fParallelWorld; + G4ParallelTransportConfigurator *fParallelTransportConfigurator; + G4PImportanceConfigurator *fPImportanceConfigurator; + G4PScoreConfigurator *fPScoreConfigurator; + G4VGCellFinder *fGCellFinder; + G4WeightCutOffConfigurator *fWeightCutOffConfigurator; + G4VIStore *fIStore; + G4bool fIsConfigured; + G4Configurators fConfigurators; }; - + #endif + diff --git a/source/processes/transportation/include/G4ParallelImportanceProcess.hh b/source/processes/transportation/include/G4ParallelImportanceProcess.hh index 5e630c3d2a..9e13b54ef7 100644 --- a/source/processes/transportation/include/G4ParallelImportanceProcess.hh +++ b/source/processes/transportation/include/G4ParallelImportanceProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelImportanceProcess.hh,v 1.5 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelImportanceProcess.hh,v 1.8 2002/10/16 16:26:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelImportanceProcess @@ -40,11 +40,12 @@ #include "G4ParallelTransport.hh" #include "G4ImportancePostStepDoIt.hh" +#include "G4VTrackTerminator.hh" class G4VImportanceSplitExaminer; class G4Nsplit_Weight; -class G4ParallelImportanceProcess : public G4ParallelTransport +class G4ParallelImportanceProcess : public G4ParallelTransport, public G4VTrackTerminator { public: // with description @@ -52,25 +53,39 @@ public: // with description G4ParallelImportanceProcess(const G4VImportanceSplitExaminer &aImportanceSplitExaminer, G4VPGeoDriver &pgeodriver, G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, const G4String &aName = "ParallelImportanceProcess"); // initialise G4ParallelTransport and members - G4VParticleChange *PostStepDoIt(const G4Track&, - const G4Step&); + virtual ~G4ParallelImportanceProcess(); + + virtual G4VParticleChange *PostStepDoIt(const G4Track&, + const G4Step&); // do the "parallel transport" and importance sampling. + virtual void KillTrack() const; + // used in case no scoring process follows that does the killing + + virtual const G4String &GetName() const; + + private: G4ParallelImportanceProcess(const G4ParallelImportanceProcess &); G4ParallelImportanceProcess &operator=(const G4ParallelImportanceProcess &); - void Error(const G4String &m); + virtual void Error(const G4String &m); private: + const G4VTrackTerminator *fTrackTerminator; G4ParticleChange *fParticleChange; const G4VImportanceSplitExaminer &fImportanceSplitExaminer; G4ImportancePostStepDoIt fImportancePostStepDoIt; }; #endif + + + + diff --git a/source/processes/transportation/include/G4ParallelImportanceSampler.hh b/source/processes/transportation/include/G4ParallelImportanceSampler.hh deleted file mode 100644 index aea032d646..0000000000 --- a/source/processes/transportation/include/G4ParallelImportanceSampler.hh +++ /dev/null @@ -1,104 +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: G4ParallelImportanceSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// Class G4ParallelImportanceSampler -// -// Class description: -// -// A user should use this class to set up importance sampling -// in a "parallel" geometry. -// The user must create an object of this kind and initialise it. - - -// Author: Michael Dressel (Michael.Dressel@cern.ch) -// ---------------------------------------------------------------------- -#ifndef G4ParallelImportanceSampler_hh -#define G4ParallelImportanceSampler_hh G4ParallelImportanceSampler_hh - -#include "globals.hh" -#include "G4VSampler.hh" - -class G4ParallelWorld; -class G4VIStore; -class G4VImportanceAlgorithm; -class G4VImportanceSplitExaminer; -class G4ParallelImportanceProcess; - -class G4ParallelImportanceSampler : public G4VSampler -{ - -public: // with description - - G4ParallelImportanceSampler(G4VIStore &is, - const G4String &particlename, - const G4VImportanceAlgorithm *ialg = 0); - // if *ialg = 0: use the G4ImportanceAlgorithm - // use a customised importance algorithm derived from - // G4VImportanceAlgorithm - // create G4ParallelWorld and G4ImportanceSplitExaminer - -public: // used internally by importance sampling - - G4ParallelImportanceSampler(G4VIStore &is, - const G4String &particlename, - G4ParallelWorld &pworld, - const G4VImportanceAlgorithm *ialg = 0); - - ~G4ParallelImportanceSampler(); - // delete G4ParallelWorld and G4ImportanceSplitExaminer - // and G4ImportanceAgorithm and G4ParallelImportanceProcess - // if created - -public: // with description - - G4ParallelImportanceProcess *CreateParallelImportanceProcess(); - // create the parallel importance process - // don't use it if you use Initialize() - - void Initialize(); - // the G4ParallelImportanceSampler has to be initialised after - // the initialisation of the G4RunManager ! - -private: - - G4ParallelImportanceSampler(const G4ParallelImportanceSampler &); - G4ParallelImportanceSampler &operator=(const G4ParallelImportanceSampler &); - -private: - - G4String fParticleName; - G4ParallelWorld &fParallelWorld; - G4bool fCreatedPW; - - G4bool fDeleteAlg; - const G4VImportanceAlgorithm *fIalgorithm; - - G4VImportanceSplitExaminer *fExaminer; - G4ParallelImportanceProcess *fParallelImportanceProcess; -}; - -#endif diff --git a/source/processes/transportation/include/G4ParallelImportanceScoreSampler.hh b/source/processes/transportation/include/G4ParallelImportanceScoreSampler.hh deleted file mode 100644 index b3bc3c01fb..0000000000 --- a/source/processes/transportation/include/G4ParallelImportanceScoreSampler.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: G4ParallelImportanceScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// Class G4ParallelImportanceScoreSampler -// -// Class description: -// -// A user should use this class to set up importance sampling and scoring -// in a "parallel" geometry. -// The user must create an object of this kind and initialise it. - -// Author: Michael Dressel (Michael.Dressel@cern.ch) -// ---------------------------------------------------------------------- -#ifndef G4ParallelImportanceScoreSampler_hh -#define G4ParallelImportanceScoreSampler_hh G4ParallelImportanceScoreSampler_hh - -#include "globals.hh" -#include "G4VSampler.hh" - -class G4VIStore; -class G4VPScorer; -class G4VImportanceAlgorithm; -class G4PScoreProcess; -class G4ParallelWorld; -class G4ParallelImportanceSampler; - -class G4ParallelImportanceScoreSampler : - public G4VSampler -{ - -public: // with description - - - G4ParallelImportanceScoreSampler(G4VIStore &iw, - G4VPScorer &ascorer, - const G4String &particlename, - const G4VImportanceAlgorithm *ialg = 0); - // if *ialg = 0: use G4ImportanceAlgorithm, - // use a customised importance algorithm derived from - // G4VImportanceAlgorithm - - - ~G4ParallelImportanceScoreSampler(); - // delete constructed objects - - G4PScoreProcess *CreateParallelScoreProcess(); - // create the parallel score process - // don't use it if you use Initialize() - - void Initialize(); - // the G4MassImportanceScoreSampler has to be initialised after - // the initialisation of the G4RunManager ! - -private: - - G4ParallelImportanceScoreSampler(const G4ParallelImportanceScoreSampler &); - G4ParallelImportanceScoreSampler & - operator=(const G4ParallelImportanceScoreSampler &); - -private: - G4String fParticleName; - G4ParallelWorld &fParallelWorld; - G4ParallelImportanceSampler &fParallelImportanceSampler; - G4VPScorer &fPScorer; - G4PScoreProcess *fPScoreProcess; -}; - -#endif diff --git a/source/processes/transportation/include/G4ParallelTransport.hh b/source/processes/transportation/include/G4ParallelTransport.hh index 99e874ba1c..f0b3f62669 100644 --- a/source/processes/transportation/include/G4ParallelTransport.hh +++ b/source/processes/transportation/include/G4ParallelTransport.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelTransport.hh,v 1.4 2002/05/02 08:43:23 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelTransport.hh,v 1.6 2002/10/16 16:26:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransport @@ -79,24 +79,28 @@ public: // with description virtual void EndTracking(); - G4VParallelStepper &GetPStepper(){return fPStepper;} + const G4VParallelStepper &GetPStepper() const; // get the fPStepper public: // without description // no operation in AtRestDoIt and AlongStepDoIt - G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) {return -1.0;} - G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) {return -1.0;} - - G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&) {return 0;} - G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&) {return 0;} + virtual G4double + AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*); + virtual G4double + AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*); + virtual G4VParticleChange* AtRestDoIt(const G4Track&, + const G4Step&); + virtual G4VParticleChange* AlongStepDoIt(const G4Track&, + const G4Step&); + protected: virtual void Error(const G4String &m); @@ -119,4 +123,11 @@ private: }; + +inline const G4VParallelStepper &G4ParallelTransport:: +GetPStepper() const { + return fPStepper; +} + + #endif diff --git a/source/processes/transportation/include/G4MassScoreSampler.hh b/source/processes/transportation/include/G4ParallelTransportConfigurator.hh similarity index 59% rename from source/processes/transportation/include/G4MassScoreSampler.hh rename to source/processes/transportation/include/G4ParallelTransportConfigurator.hh index 826426db49..6845b57f3d 100644 --- a/source/processes/transportation/include/G4MassScoreSampler.hh +++ b/source/processes/transportation/include/G4ParallelTransportConfigurator.hh @@ -21,58 +21,49 @@ // ******************************************************************** // // -// $Id: G4MassScoreSampler.hh,v 1.1 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelTransportConfigurator.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// Class G4MassScoreSampler +// Class G4ParallelTransportConfigurator // // Class description: -// -// A user should use this class to set up scoring in the "mass" geometry. -// The user must create an object of this kind and initialise it. +// This class builds and places the G4ParallelTransport +// If the object is deleted the process is removed from the +// process list. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4MassScoreSampler_hh -#define G4MassScoreSampler_hh G4MassScoreSampler_hh + +#ifndef G4ParallelTransportConfigurator_hh +#define G4ParallelTransportConfigurator_hh G4ParallelTransportConfigurator_hh + +#include "G4VSamplerConfigurator.hh" #include "globals.hh" -#include "G4VSampler.hh" +#include "G4ParallelTransport.hh" +#include "G4ProcessPlacer.hh" -class G4VProcess; -class G4VPScorer; -class G4MScoreProcess; -class G4MassScoreSampler : public G4VSampler -{ - -public: // with description - - G4MassScoreSampler(G4VPScorer &ascorer, const G4String &particlename); - // a G4MassScoreSampler for a particle type - - ~G4MassScoreSampler(); - // delete G4MScoreProcess if constructed - - G4MScoreProcess *CreateMassScoreProcess(); - // create the mass score process - // don't use it if you use Initialize() - - void Initialize(); - // the G4MassScoreSampler has to be initialised after - // the initialisation of the G4RunManager ! +class G4ParallelWorld; +class G4ParallelTransportConfigurator : public G4VSamplerConfigurator{ +public: + G4ParallelTransportConfigurator(const G4String &particlename, + G4ParallelWorld &pworld); + virtual ~G4ParallelTransportConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; + private: - - G4MassScoreSampler(const G4MassScoreSampler &); - G4MassScoreSampler &operator=(const G4MassScoreSampler &); - -private: - - G4VPScorer &fScorer; - G4String fParticleName; - G4MScoreProcess *fMScoreProcess; + G4ParallelTransportConfigurator(const + G4ParallelTransportConfigurator &); + G4ParallelTransportConfigurator & + operator=(const G4ParallelTransportConfigurator &); + G4ProcessPlacer fPlacer; + G4ParallelWorld &fPWorld; + G4ParallelTransport *fParallelTransport; }; + #endif diff --git a/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh deleted file mode 100644 index fed0e45404..0000000000 --- a/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh +++ /dev/null @@ -1,118 +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: G4ParallelWeightWindowProcess.hh,v 1.2 2002/05/31 10:16:01 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// Class G4ParallelWeightWindowProcess -// -// Class description: -// -// The process performing the weight window sampling according -// to an G4VWeightWindowAlgorithm -// - -// Author: Michael Dressel (Michael.Dressel@cern.ch) -// ---------------------------------------------------------------------- -#ifndef G4ParallelWeightWindowProcess_hh -#define G4ParallelWeightWindowProcess_hh G4ParallelWeightWindowProcess_hh - -#include "g4std/strstream" - -#include "G4VProcess.hh" -#include "globals.hh" -#include "G4Nsplit_Weight.hh" -#include "G4ImportancePostStepDoIt.hh" - -class G4VIStore;; -class G4VParallelStepper; -class G4VWeightWindowAlgorithm; - -class G4ParallelWeightWindowProcess : public G4VProcess -{ - -public: // with description - - G4ParallelWeightWindowProcess(G4VIStore &aIstore, - G4VParallelStepper &aStepper, - G4VWeightWindowAlgorithm &aWWAlgorithm, - const G4String &aName = "ParallelWeightWindowProcess"); - // create G4ParticleChange - - virtual ~G4ParallelWeightWindowProcess(); - // delete G4ParticleChange - - - - virtual G4double - PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); - - - virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); - - - void StartTracking(); - void EndTracking(); - -public: // without description - - // no operation in AtRestDoIt and AlongStepDoIt - - G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) {return -1.0;} - G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) {return -1.0;} - - G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&) {return 0;} - G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&) {return 0;} - -protected: - - virtual void Error(const G4String &m); - virtual void Warning(const G4String &m); - - G4ParticleChange *fParticleChange; - - -private: - - G4ParallelWeightWindowProcess(const G4ParallelWeightWindowProcess &); - G4ParallelWeightWindowProcess &operator=(const G4ParallelWeightWindowProcess &); - -private: - - G4VIStore &fIStore; - G4VParallelStepper &fPStepper; - G4VWeightWindowAlgorithm &fWWAlgorithm; - G4Nsplit_Weight fNsplit_Weight; - G4ImportancePostStepDoIt fImportancePostStepDoIt; - G4bool fInitStep; -}; - -#endif diff --git a/source/processes/transportation/include/G4ProcessPlacer.hh b/source/processes/transportation/include/G4ProcessPlacer.hh index ebf2a93f78..6f9ecb89b4 100644 --- a/source/processes/transportation/include/G4ProcessPlacer.hh +++ b/source/processes/transportation/include/G4ProcessPlacer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessPlacer.hh,v 1.4 2002/05/24 08:17:19 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessPlacer.hh,v 1.6 2002/10/16 16:26:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4ProcessPlacer @@ -48,32 +48,37 @@ class G4ProcessPlacer : public G4VProcessPlacer public: // with description - G4ProcessPlacer(const G4String &particlename); + explicit G4ProcessPlacer(const G4String &particlename); // create a process placer for a particle type - void AddProcessAsLastDoIt(G4VProcess *process); + virtual ~G4ProcessPlacer(); + + virtual void AddProcessAsLastDoIt(G4VProcess *process); // place a post step do it process such that the // PostStepDoIt function is called last // THE ORDER CHANGES BY SUBSEQUENT CALLS - void AddProcessAsSecondDoIt(G4VProcess *process); + virtual void AddProcessAsSecondDoIt(G4VProcess *process); // place a post step do it process such that the // PostStepDoIt function is called second // THE ORDER CHANGES BY SUBSEQUENT CALLS - void RemoveProcess(G4VProcess *process); + virtual void RemoveProcess(G4VProcess *process); // removes a given process -private: - - G4ProcessManager &GetProcessManager(); - enum SecondOrLast { eSecond = 1, eLast = 0 }; + +private: + + G4ProcessManager *GetProcessManager(); + + + void AddProcessAs(G4VProcess *process, SecondOrLast); void PrintProcVec(G4ProcessVector* processVec); diff --git a/source/processes/transportation/include/G4TrackTerminator.hh b/source/processes/transportation/include/G4TrackTerminator.hh new file mode 100644 index 0000000000..34f6b1de4b --- /dev/null +++ b/source/processes/transportation/include/G4TrackTerminator.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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: G4TrackTerminator.hh,v 1.1 2002/10/16 16:27:41 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4TrackTerminator +// +// Class description: +// +// This is an interface for an object which maybe told to kill a track. +// The type it provides is needed in case importance biasing and +// scoring is done at the same time. +// For navigation in the parallel geometry which is done +// by the importance biasing process (it derives from G4ParallelTransport) +// importance biasing has to be done before scoring (to score the correct +// volume). But since scoring would not be called if the importance +// biasing kills a track it only tells a G4TrackTerminator to kill the +// track. The scoring process implements the interface G4TrackTerminator +// and is now able to kill the track after it has done the scoring. +// +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4TrackTerminator_hh +#define G4TrackTerminator_hh G4TrackTerminator_hh +#include "globals.hh" + +class G4TrackTerminator { +public: + G4TrackTerminator(): + fKillTrack(false) + {} + ~G4TrackTerminator(); + void SetKillTrack(){fKillTrack = true;} + G4bool GetKillTrack() const {return fKillTrack;} +private: + G4bool fKillTrack; +}; + +#endif diff --git a/source/processes/transportation/include/G4Transportation.hh b/source/processes/transportation/include/G4Transportation.hh index 95e4d1a9ac..370eb8fa18 100644 --- a/source/processes/transportation/include/G4Transportation.hh +++ b/source/processes/transportation/include/G4Transportation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Transportation.hh,v 1.6 2001/11/28 18:27:50 japost Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Transportation.hh,v 1.7 2002/08/29 15:32:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/transportation/include/G4Transportation.icc b/source/processes/transportation/include/G4Transportation.icc index 6fa3dbcf8f..2fc05d7748 100644 --- a/source/processes/transportation/include/G4Transportation.icc +++ b/source/processes/transportation/include/G4Transportation.icc @@ -22,7 +22,7 @@ // // // $Id: G4Transportation.icc,v 1.4 2001/11/06 01:38:19 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/processes/transportation/include/G4UserSpecialCuts.hh b/source/processes/transportation/include/G4UserSpecialCuts.hh index fda2b6649d..a63fa0e50c 100644 --- a/source/processes/transportation/include/G4UserSpecialCuts.hh +++ b/source/processes/transportation/include/G4UserSpecialCuts.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserSpecialCuts.hh,v 1.4 2001/07/11 10:08:30 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UserSpecialCuts.hh,v 1.5 2002/08/29 15:32:00 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // ------------------------------------------------------------ // 15 April 1998 M.Maire // ------------------------------------------------------------ diff --git a/source/processes/transportation/include/G4VProcessPlacer.hh b/source/processes/transportation/include/G4VProcessPlacer.hh index cd0676a56b..5463b566b1 100644 --- a/source/processes/transportation/include/G4VProcessPlacer.hh +++ b/source/processes/transportation/include/G4VProcessPlacer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcessPlacer.hh,v 1.4 2002/05/24 08:17:19 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VProcessPlacer.hh,v 1.7 2002/10/16 16:26:58 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VProcessPlacer @@ -46,8 +46,8 @@ class G4VProcessPlacer public: // with description - G4VProcessPlacer(const G4String &particlename){} - virtual ~G4VProcessPlacer(){} + G4VProcessPlacer(); + virtual ~G4VProcessPlacer(); virtual void AddProcessAsLastDoIt(G4VProcess *process) = 0; // place a post step do it process such that the @@ -59,7 +59,7 @@ public: // with description // PostStepDoIt function is called second // THE ORDER CHANGES BY SUBSEQUENT CALLS - void RemoveProcess(G4VProcess *process); + virtual void RemoveProcess(G4VProcess *process) = 0; // removes a given process diff --git a/source/processes/transportation/include/G4VSampler.hh b/source/processes/transportation/include/G4VSampler.hh index 42912d6747..6f29371475 100644 --- a/source/processes/transportation/include/G4VSampler.hh +++ b/source/processes/transportation/include/G4VSampler.hh @@ -21,28 +21,60 @@ // ******************************************************************** // // -// $Id: G4VSampler.hh,v 1.1 2002/05/31 08:08:22 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSampler.hh,v 1.6 2002/10/22 13:25:57 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // Class G4VSampler // // Class description: -// The base class for importance sampling and scoring. -// +// +// This interface discribes a configurable sampler. +// It applies to a given particle type. +// Concrete classes with this interface may be used for +// scoring, importance sampling and weigth cutoff (weight roulett). +// // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #ifndef G4VSampler_hh #define G4VSampler_hh G4VSampler_hh -class G4VSampler -{ -public: - virtual ~G4VSampler(){} - virtual void Initialize() = 0; - // the user must initialize the concrete object this interface - // covers afer the initialization of the G4RunManager -}; +#include "globals.hh" + +class G4VPhysicalVolume; +class G4VImportanceAlgorithm; +class G4VIStore; +class G4VScorer; + + +class G4VSampler { + +public: + + G4VSampler(); + virtual ~G4VSampler(); + + virtual void PrepareScoring(G4VScorer *Scorer) = 0; + + virtual void PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm + *ialg = 0) = 0; + + + virtual void PrepareWeightRoulett(G4double wsurvive = 0.5, + G4double wlimit = 0.25, + G4double isource = 1) = 0; + + virtual void Configure() = 0; + + virtual void ClearSampling() = 0; + // clear the sampler and remove the processes + + virtual G4bool IsConfigured() const = 0; + // check if some initialization hase already been done +}; + #endif + diff --git a/source/processes/transportation/include/G4VSamplerConfigurator.hh b/source/processes/transportation/include/G4VSamplerConfigurator.hh new file mode 100644 index 0000000000..4ba38a5324 --- /dev/null +++ b/source/processes/transportation/include/G4VSamplerConfigurator.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: G4VSamplerConfigurator.hh,v 1.3 2002/12/12 19:18:40 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4VSamplerConfigurator +// +// Class description: +// +// This is an interface for configurators seeting up processes +// needed for importance sampling and scoring. +// The Configurator may be given a pointer to another Configurator. +// If a configurator will be given a pointer to another configurator +// it may obtain a G4VTrackTerminator from the given Configurator. +// This way it is possible to delegate the killing of a track. +// +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4VSamplerConfigurator_hh +#define G4VSamplerConfigurator_hh G4VSamplerConfigurator_hh + +#include "globals.hh" +#include "g4std/vector" +class G4VTrackTerminator; + + +class G4VSamplerConfigurator{ +public: + G4VSamplerConfigurator(); + virtual ~G4VSamplerConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf) = 0; + // do the configuration, if preConf is given a + // G4VTrackTerminator may be obtained from it + virtual const G4VTrackTerminator *GetTrackTerminator() const = 0; + // return a G4VTrackTerminator or 0 +}; + +typedef G4std::vector G4Configurators; + + +#endif diff --git a/source/processes/transportation/include/G4VTrackTerminator.hh b/source/processes/transportation/include/G4VTrackTerminator.hh new file mode 100644 index 0000000000..9566d88db3 --- /dev/null +++ b/source/processes/transportation/include/G4VTrackTerminator.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: G4VTrackTerminator.hh,v 1.4 2002/10/16 16:26:59 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4VTrackTerminator +// +// Class description: +// +// This is an interface for an object which maybe told to kill a track. +// The type it provides is needed in case importance biasing and +// scoring is done at the same time. +// For navigation in the parallel geometry which is done +// by the importance biasing process (it derives from G4ParallelTransport) +// importance biasing has to be done before scoring (to score the correct +// volume). But since scoring would not be called if the importance +// biasing kills a track it only tells a G4VTrackTerminator to kill the +// track. The scoring process implements the interface G4VTrackTerminator +// and is now able to kill the track after it has done the scoring. +// +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4VTrackTerminator_hh +#define G4VTrackTerminator_hh G4VTrackTerminator_hh +#include "globals.hh" + +class G4VTrackTerminator { +public: + G4VTrackTerminator(); + virtual ~G4VTrackTerminator(); + virtual void KillTrack() const = 0; + virtual const G4String &GetName() const = 0; +}; + +#endif diff --git a/source/processes/transportation/include/G4WeightCutOffConfigurator.hh b/source/processes/transportation/include/G4WeightCutOffConfigurator.hh new file mode 100644 index 0000000000..e019756be1 --- /dev/null +++ b/source/processes/transportation/include/G4WeightCutOffConfigurator.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: G4WeightCutOffConfigurator.hh,v 1.3 2002/10/22 13:25:57 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4WeightCutOffConfigurator +// +// Class description: +// This class builds and places the G4WeightCutOffProcess +// If the object is deleted the process is removed from the +// process list. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#ifndef G4WeightCutOffConfigurator_hh +#define G4WeightCutOffConfigurator_hh G4WeightCutOffConfigurator_hh + +#include "G4VSamplerConfigurator.hh" + +#include "globals.hh" +#include "G4ProcessPlacer.hh" + +class G4WeightCutOffProcess; +class G4VGCellFinder; +class G4VIStore; + + +class G4WeightCutOffConfigurator : public G4VSamplerConfigurator { +public: + G4WeightCutOffConfigurator(const G4String &particlename, + G4double wsurvival, + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellFinder); + + virtual ~G4WeightCutOffConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const ; + +private: + G4WeightCutOffConfigurator(const G4WeightCutOffConfigurator&); + G4WeightCutOffConfigurator & + operator=(const G4WeightCutOffConfigurator&); + G4ProcessPlacer fPlacer; + G4WeightCutOffProcess *fWeightCutOffProcess; + G4bool fPlaced; +}; + + +#endif diff --git a/source/processes/transportation/include/G4WeightCutOffProcess.hh b/source/processes/transportation/include/G4WeightCutOffProcess.hh new file mode 100644 index 0000000000..e68b41f726 --- /dev/null +++ b/source/processes/transportation/include/G4WeightCutOffProcess.hh @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * 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: G4WeightCutOffProcess.hh,v 1.2 2002/10/16 16:26:59 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4WeightCutOffProcess +// +// Class description: +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4WeightCutOffProcess_hh +#define G4WeightCutOffProcess_hh G4WeightCutOffProcess_hh + +#include "G4VProcess.hh" +#include "G4VTrackTerminator.hh" +#include "G4GeometryCell.hh" + +class G4VGCellFinder; +class G4VIStore; + +class G4WeightCutOffProcess : public G4VProcess +{ + +public: // with description + + G4WeightCutOffProcess(G4double wsurvival, + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellFinder, + const G4String &aName = "WeightCutOffProcess"); + // create a G4ParticleChange + + virtual ~G4WeightCutOffProcess(); + // delete the G4ParticleChange + + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // make the process beeing forced + + virtual G4VParticleChange * PostStepDoIt(const G4Track&, + const G4Step&); + + + const G4String &GetName() const; + + +public: // without description + + // no operation in AtRestDoIt and AlongStepDoIt + + virtual G4double + AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*); + + virtual G4double + AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*); + + virtual G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&); + virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); + +private: + + G4WeightCutOffProcess(const G4WeightCutOffProcess &); + G4WeightCutOffProcess &operator=(const G4WeightCutOffProcess &); + + G4ParticleChange *fParticleChange; + G4double fWeightSurvival; + G4double fWeightLimit; + G4double fSourceImportance; + G4VIStore *fIStore; + const G4VGCellFinder &fGCellFinder; + +}; + +#endif + + + + + diff --git a/source/processes/transportation/src/G4ImportancePostStepDoIt.cc b/source/processes/transportation/src/G4ImportancePostStepDoIt.cc index f8df7d2e96..28b6b60ab6 100644 --- a/source/processes/transportation/src/G4ImportancePostStepDoIt.cc +++ b/source/processes/transportation/src/G4ImportancePostStepDoIt.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportancePostStepDoIt.cc,v 1.5 2002/05/31 08:06:34 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ImportancePostStepDoIt.cc,v 1.8 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -31,20 +31,25 @@ // // ---------------------------------------------------------------------- -#include "g4std/strstream" - #include "G4ImportancePostStepDoIt.hh" #include "G4Track.hh" #include "G4ParticleChange.hh" #include "G4VImportanceSplitExaminer.hh" #include "G4Nsplit_Weight.hh" +#include "G4VTrackTerminator.hh" +#include "g4std/strstream" -G4ImportancePostStepDoIt::G4ImportancePostStepDoIt(){} + +G4ImportancePostStepDoIt:: +G4ImportancePostStepDoIt(const G4VTrackTerminator &TrackTerminator) + : + fTrackTerminator(TrackTerminator) +{} G4ImportancePostStepDoIt::~G4ImportancePostStepDoIt(){} void G4ImportancePostStepDoIt::DoIt(const G4Track& aTrack, G4ParticleChange *aParticleChange, - const G4Nsplit_Weight nw) + const G4Nsplit_Weight &nw) { // evaluate results from sampler if (nw.fN>1) { @@ -57,14 +62,19 @@ void G4ImportancePostStepDoIt::DoIt(const G4Track& aTrack, } else if (nw.fN==0) { // kill track - aParticleChange->SetStatusChange(fStopAndKill); + fTrackTerminator.KillTrack(); } else { // wrong answer - G4std::ostrstream os; - os << "G4ImportancePostStepDoIt::DoIt: sampler returned nw = " - << nw << '\0' << G4endl; - G4Exception(os.str()); + char st[200]; + G4std::ostrstream os(st,200); + os << "G4ImportancePostStepDoIt::DoIt: sampler returned nw = " + << nw + << "\n" + << '\0'; + G4String m(st); + + G4Exception(m); } } diff --git a/source/processes/transportation/src/G4MassImportanceSampler.cc b/source/processes/transportation/src/G4MImportanceConfigurator.cc similarity index 59% rename from source/processes/transportation/src/G4MassImportanceSampler.cc rename to source/processes/transportation/src/G4MImportanceConfigurator.cc index 9c6fff880c..eeae025457 100644 --- a/source/processes/transportation/src/G4MassImportanceSampler.cc +++ b/source/processes/transportation/src/G4MImportanceConfigurator.cc @@ -21,56 +21,64 @@ // ******************************************************************** // // -// $Id: G4MassImportanceSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MImportanceConfigurator.cc,v 1.3 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4MassImportanceSampler.cc +// Class G4MImportanceConfigurator // + +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#include "G4MassImportanceSampler.hh" + +#include "G4MImportanceConfigurator.hh" + #include "G4MassImportanceProcess.hh" #include "G4ProcessPlacer.hh" #include "G4ImportanceAlgorithm.hh" - -G4MassImportanceSampler:: -G4MassImportanceSampler(G4VIStore &aIstore, - const G4String &particlename, - const G4VImportanceAlgorithm *algorithm) - : fIStore(aIstore), - fParticleName(particlename), - fMassImportanceProcess(0), - fCreatedAlgorithm( ( ! algorithm) ), - fAlgorithm(( (fCreatedAlgorithm) ? - new G4ImportanceAlgorithm : algorithm)) +G4MImportanceConfigurator:: +G4MImportanceConfigurator(const G4String &particlename, + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg) + : + fPlacer(particlename), + fIStore(istore), + fDeleteIalg( ( ! ialg) ), + fIalgorithm(( (fDeleteIalg) ? + new G4ImportanceAlgorithm : ialg)), + fMassImportanceProcess(0) {} -G4MassImportanceSampler::~G4MassImportanceSampler() -{ +G4MImportanceConfigurator:: +~G4MImportanceConfigurator(){ if (fMassImportanceProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fMassImportanceProcess); + fPlacer.RemoveProcess(fMassImportanceProcess); delete fMassImportanceProcess; } - if (fCreatedAlgorithm) delete fAlgorithm; + if (fDeleteIalg) { + delete fIalgorithm; + } +} +void +G4MImportanceConfigurator::Configure(G4VSamplerConfigurator *preConf){ + const G4VTrackTerminator *terminator = 0; + if (preConf) { + terminator = preConf->GetTrackTerminator(); + }; + + fMassImportanceProcess = + new G4MassImportanceProcess(*fIalgorithm, + fIStore, + terminator); + if (!fMassImportanceProcess) { + G4Exception("ERROR: G4MImportanceConfigurator::Configure: new failed to create G4MassImportanceProcess!"); + } + fPlacer.AddProcessAsSecondDoIt(fMassImportanceProcess); } - -G4MassImportanceProcess *G4MassImportanceSampler::CreateMassImportanceProcess() -{ - if (!fMassImportanceProcess) { - fMassImportanceProcess = - new G4MassImportanceProcess(*fAlgorithm, fIStore); - } +const G4VTrackTerminator *G4MImportanceConfigurator:: +GetTrackTerminator() const { return fMassImportanceProcess; } - -void G4MassImportanceSampler::Initialize() -{ - G4ProcessPlacer placer(fParticleName); - placer.AddProcessAsSecondDoIt(CreateMassImportanceProcess()); -} diff --git a/source/processes/transportation/src/G4MassScoreSampler.cc b/source/processes/transportation/src/G4MScoreConfigurator.cc similarity index 65% rename from source/processes/transportation/src/G4MassScoreSampler.cc rename to source/processes/transportation/src/G4MScoreConfigurator.cc index 7cac654425..c8cf384a17 100644 --- a/source/processes/transportation/src/G4MassScoreSampler.cc +++ b/source/processes/transportation/src/G4MScoreConfigurator.cc @@ -21,47 +21,46 @@ // ******************************************************************** // // -// $Id: G4MassScoreSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MScoreConfigurator.cc,v 1.4 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4MassScoreSampler.cc +// Class G4MScoreConfigurator // + +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#include "G4MassScoreSampler.hh" -#include "G4MScoreProcess.hh" -#include "G4ProcessPlacer.hh" +#include "G4MScoreConfigurator.hh" +#include "G4VScorer.hh" +#include "G4VTrackTerminator.hh" - -G4MassScoreSampler::G4MassScoreSampler(G4VPScorer &ascorer, - const G4String &particlename) - : fScorer(ascorer), - fParticleName(particlename), - fMScoreProcess(0) +G4MScoreConfigurator:: +G4MScoreConfigurator(const G4String &particlename, + G4VScorer &scorer) + : + fPlacer(particlename), + fScorer(scorer), + fMScoreProcess(0) {} -G4MassScoreSampler::~G4MassScoreSampler() -{ +G4MScoreConfigurator::~G4MScoreConfigurator(){ if (fMScoreProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fMScoreProcess); + fPlacer.RemoveProcess(fMScoreProcess); delete fMScoreProcess; } } - -G4MScoreProcess *G4MassScoreSampler::CreateMassScoreProcess() -{ - if (!fMScoreProcess) { - fMScoreProcess = new G4MScoreProcess(fScorer); - } + +const G4VTrackTerminator *G4MScoreConfigurator:: +GetTrackTerminator() const{ return fMScoreProcess; } -void G4MassScoreSampler::Initialize() +void G4MScoreConfigurator::Configure(G4VSamplerConfigurator *preConf) { - G4ProcessPlacer placer(fParticleName); - placer.AddProcessAsSecondDoIt(CreateMassScoreProcess()); + fMScoreProcess = new G4MScoreProcess(fScorer); + if (!fMScoreProcess) { + G4Exception("ERROR: G4MScoreConfigurator::Configure: new failed to create G4MScoreProcess!"); + } + fPlacer.AddProcessAsSecondDoIt(fMScoreProcess); } diff --git a/source/processes/transportation/src/G4MScoreProcess.cc b/source/processes/transportation/src/G4MScoreProcess.cc index 2b34cf92e2..5d966d8dd2 100644 --- a/source/processes/transportation/src/G4MScoreProcess.cc +++ b/source/processes/transportation/src/G4MScoreProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MScoreProcess.cc,v 1.3 2002/04/09 17:40:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MScoreProcess.cc,v 1.9 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,16 +32,21 @@ // ---------------------------------------------------------------------- #include "G4MScoreProcess.hh" -#include "G4VPScorer.hh" -#include "G4PStep.hh" +#include "G4VScorer.hh" +#include "G4GeometryCellStep.hh" #include "G4VParallelStepper.hh" -G4MScoreProcess::G4MScoreProcess(G4VPScorer &aScorer, +G4MScoreProcess::G4MScoreProcess(G4VScorer &aScorer, const G4String &aName) - : G4VProcess(aName), - fScorer(aScorer) + : + G4VProcess(aName), + fScorer(aScorer), + fKillTrack(false) { G4VProcess::pParticleChange = new G4ParticleChange; + if (!G4VProcess::pParticleChange) { + G4Exception("ERROR:G4MScoreProcess::G4MScoreProcess new failed to create G4ParticleChange!"); + } } G4MScoreProcess::~G4MScoreProcess() @@ -68,17 +73,58 @@ G4MScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) G4StepPoint *postpoint = aStep.GetPostStepPoint(); - G4PTouchableKey prekey(*(prepoint->GetPhysicalVolume()), + G4GeometryCell prekey(*(prepoint->GetPhysicalVolume()), prepoint->GetTouchable()->GetReplicaNumber()); - G4PTouchableKey postkey(*(postpoint->GetPhysicalVolume()), + G4GeometryCell postkey(*(postpoint->GetPhysicalVolume()), postpoint->GetTouchable()->GetReplicaNumber()); - G4PStep pstep(prekey, postkey); - pstep.fCrossBoundary = false; + G4GeometryCellStep pstep(prekey, postkey); + pstep.SetCrossBoundary(false); - if (prekey != postkey) pstep.fCrossBoundary = true; - + if (prekey != postkey) { + pstep.SetCrossBoundary(true); + } fScorer.Score(aStep, pstep); } + + if (fKillTrack) { + fKillTrack = false; + pParticleChange->SetStatusChange(fStopAndKill); + } + return G4VProcess::pParticleChange; } + +const G4String &G4MScoreProcess::GetName() const { + return theProcessName; +} + + +G4double G4MScoreProcess:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) { + return -1.0; +} + +G4double G4MScoreProcess:: +AtRestGetPhysicalInteractionLength(const G4Track&, + G4ForceCondition*) { + return -1.0; +} + +G4VParticleChange* G4MScoreProcess::AtRestDoIt(const G4Track&, + const G4Step&) { + return 0; +} + +G4VParticleChange* G4MScoreProcess::AlongStepDoIt(const G4Track&, + const G4Step&) { + return 0; +} + +void G4MScoreProcess::KillTrack() const{ + fKillTrack = true; +} diff --git a/source/processes/transportation/src/G4MassGCellFinder.cc b/source/processes/transportation/src/G4MassGCellFinder.cc new file mode 100644 index 0000000000..2a166b81de --- /dev/null +++ b/source/processes/transportation/src/G4MassGCellFinder.cc @@ -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: G4MassGCellFinder.cc,v 1.1 2002/10/16 16:27:41 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassGCellFinder.cc +// +// ---------------------------------------------------------------------- + +#include "G4MassGCellFinder.hh" +#include "G4TouchableHandle.hh" +#include "G4Step.hh" + +G4MassGCellFinder::G4MassGCellFinder() +{} + +G4MassGCellFinder::~G4MassGCellFinder() +{} + +G4GeometryCell G4MassGCellFinder:: +GetPreGeometryCell(const G4Step &aStep) const { + const G4TouchableHandle& th = + aStep.GetPreStepPoint()->GetTouchableHandle(); + G4GeometryCell g(*th->GetVolume(), th->GetReplicaNumber()); + return g; +} + +G4GeometryCell G4MassGCellFinder:: +GetPostGeometryCell(const G4Step &aStep) const { + const G4TouchableHandle& th = + aStep.GetPostStepPoint()->GetTouchableHandle(); + G4GeometryCell g(*th->GetVolume(), th->GetReplicaNumber()); + return g; +} + diff --git a/source/processes/transportation/src/G4MassGeometrySampler.cc b/source/processes/transportation/src/G4MassGeometrySampler.cc new file mode 100644 index 0000000000..47d8e76f21 --- /dev/null +++ b/source/processes/transportation/src/G4MassGeometrySampler.cc @@ -0,0 +1,173 @@ +// +// ******************************************************************** +// * 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: G4MassGeometrySampler.cc,v 1.7 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassGeometrySampler.cc +// +// ---------------------------------------------------------------------- + + + +#include "G4MassGeometrySampler.hh" + +#include "G4VIStore.hh" +#include "G4VScorer.hh" + +#include "G4MScoreConfigurator.hh" +#include "G4MImportanceConfigurator.hh" +#include "G4WeightCutOffConfigurator.hh" +#include "G4MassGCellFinder.hh" + +G4MassGeometrySampler:: +G4MassGeometrySampler(const G4String &particlename) + : + fParticleName(particlename), + fMImportanceConfigurator(0), + fMScoreConfigurator(0), + fGCellFinder(0), + fWeightCutOffConfigurator(0), + fIStore(0), + fIsConfigured(false) +{} + +G4MassGeometrySampler::~G4MassGeometrySampler(){ + ClearSampling(); +}; + +void G4MassGeometrySampler::ClearSampling() { + + if (fMImportanceConfigurator) { + delete fMImportanceConfigurator; + fMImportanceConfigurator = 0; + } + if (fMScoreConfigurator) { + delete fMScoreConfigurator; + fMScoreConfigurator = 0; + } + if (fWeightCutOffConfigurator) { + delete fWeightCutOffConfigurator; + fWeightCutOffConfigurator = 0; + } + if (fGCellFinder) { + delete fGCellFinder; + fGCellFinder = 0; + } + fIStore = 0; + fConfigurators.clear(); + fIsConfigured = false; +}; + +G4bool G4MassGeometrySampler::IsConfigured() const{ + + G4bool isconf = false; + if (fIsConfigured) { + G4cout << "G4MassGeometrySampler::CheckIfInit some initalization exists, use ClearSampling() before a new initialization" << G4endl; + isconf = true; + } + return isconf; +} + +void G4MassGeometrySampler:: +PrepareScoring(G4VScorer *scorer){ + fMScoreConfigurator = + new G4MScoreConfigurator(fParticleName, *scorer); + if (!fMScoreConfigurator) { + G4Exception("ERROR:G4MassGeometrySampler::PrepareScoring: new failed to ccreate G4MScoreConfigurator!"); + } +} + +void G4MassGeometrySampler:: +PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm + *ialg) { + fIStore = istore; + + fMImportanceConfigurator = + new G4MImportanceConfigurator(fParticleName, + *fIStore, + ialg); + if (!fMImportanceConfigurator) { + G4Exception("ERROR:G4MassGeometrySampler::PrepareImportanceSampling: new failed to ccreate G4MImportanceConfigurator!"); + } + +} + +void G4MassGeometrySampler:: +PrepareWeightRoulett(G4double wsurvive, + G4double wlimit, + G4double isource) { + fGCellFinder = new G4MassGCellFinder; + if (!fGCellFinder) { + G4Exception("ERROR:G4MassGeometrySampler::PrepareWeightRoulett: new failed to create G4MassGCellFinder!"); + } + + fWeightCutOffConfigurator = + new G4WeightCutOffConfigurator(fParticleName, + wsurvive, + wlimit, + isource, + fIStore, + *fGCellFinder); + if (!fWeightCutOffConfigurator) { + G4Exception("ERROR:G4MassGeometrySampler::PrepareWeightRoulett: new failed to ccreate G4WeightCutOffConfigurator!"); + } + + +} + +void G4MassGeometrySampler::Configure(){ + if (!IsConfigured()) { + fIsConfigured = true; + + if (fMScoreConfigurator) { + fConfigurators.push_back(fMScoreConfigurator); + } + if (fMImportanceConfigurator) { + fConfigurators.push_back(fMImportanceConfigurator); + } + + G4VSamplerConfigurator *preConf = 0; + for (G4Configurators::iterator it = fConfigurators.begin(); + it != fConfigurators.end(); it++) { + G4VSamplerConfigurator *currConf =*it; + currConf->Configure(preConf); + preConf = *it; + } + if (fWeightCutOffConfigurator) { + fWeightCutOffConfigurator->Configure(0); + } + + } + return; +} + + + + + + diff --git a/source/processes/transportation/src/G4MassImportanceProcess.cc b/source/processes/transportation/src/G4MassImportanceProcess.cc index 468d81ff9a..569a67fd46 100644 --- a/source/processes/transportation/src/G4MassImportanceProcess.cc +++ b/source/processes/transportation/src/G4MassImportanceProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MassImportanceProcess.cc,v 1.3 2002/04/09 17:40:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4MassImportanceProcess.cc,v 1.10 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -33,24 +33,28 @@ #include "G4MassImportanceProcess.hh" #include "G4VImportanceAlgorithm.hh" -#include "G4ImportanceFinder.hh" -#include "G4PTouchableKey.hh" +#include "G4GeometryCell.hh" G4MassImportanceProcess:: G4MassImportanceProcess(const G4VImportanceAlgorithm &aImportanceAlgorithm, const G4VIStore &aIstore, + const G4VTrackTerminator *TrackTerminator, const G4String &aName) : G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fTrackTerminator(TrackTerminator ? TrackTerminator : this), fImportanceAlgorithm(aImportanceAlgorithm), - fImportanceFinder(new G4ImportanceFinder(aIstore)) + fImportanceFinder(aIstore), + fImportancePostStepDoIt(*fTrackTerminator) { - fParticleChange = new G4ParticleChange; + if (!fParticleChange) { + G4Exception("ERROR:G4MassImportanceProcess::G4MassImportanceProcess: new failed to create G4ParticleChange!"); + } G4VProcess::pParticleChange = fParticleChange; } G4MassImportanceProcess::~G4MassImportanceProcess() { - delete fImportanceFinder; delete fParticleChange; } @@ -78,16 +82,52 @@ G4MassImportanceProcess::PostStepDoIt(const G4Track &aTrack, G4StepPoint *postpoint = aStep.GetPostStepPoint(); - G4PTouchableKey prekey(*(prepoint->GetPhysicalVolume()), + G4GeometryCell prekey(*(prepoint->GetPhysicalVolume()), prepoint->GetTouchable()->GetReplicaNumber()); - G4PTouchableKey postkey(*(postpoint->GetPhysicalVolume()), + G4GeometryCell postkey(*(postpoint->GetPhysicalVolume()), postpoint->GetTouchable()->GetReplicaNumber()); G4Nsplit_Weight nw = fImportanceAlgorithm. - Calculate(fImportanceFinder-> - GetIPre_over_IPost(prekey, postkey), + Calculate(fImportanceFinder.GetImportance(prekey), + fImportanceFinder.GetImportance(postkey), aTrack.GetWeight()); fImportancePostStepDoIt.DoIt(aTrack, fParticleChange, nw); } return fParticleChange; } + +void G4MassImportanceProcess::KillTrack() const { + fParticleChange->SetStatusChange(fStopAndKill); +} + +const G4String &G4MassImportanceProcess::GetName() const { + return theProcessName; +} + +G4double G4MassImportanceProcess:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) { + return -1.0; +} + +G4double G4MassImportanceProcess:: +AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*) +{ + return -1.0; +} + +G4VParticleChange* G4MassImportanceProcess:: +AtRestDoIt(const G4Track&, const G4Step&) +{ + return 0; +} + +G4VParticleChange* G4MassImportanceProcess:: +AlongStepDoIt(const G4Track&, const G4Step&) { + return 0; +} + diff --git a/source/processes/transportation/src/G4PIScorer.cc b/source/processes/transportation/src/G4PIScorer.cc deleted file mode 100644 index dc51cf946e..0000000000 --- a/source/processes/transportation/src/G4PIScorer.cc +++ /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. * -// ******************************************************************** -// -// -// $Id: G4PIScorer.cc,v 1.4 2002/04/09 17:40:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4PIScorer.cc -// -// ---------------------------------------------------------------------- - -#include "G4PIScorer.hh" -#include "G4Step.hh" -#include "G4PStep.hh" -#include "G4Sigma.hh" -#include "G4StateManager.hh" -#include "G4VIStore.hh" -#include "G4PStepStream.hh" -#include "G4StepPoint.hh" - -G4PIScorer::G4PIScorer(const G4VIStore &IStore) - : fIStore(IStore), fNerr(0),fCorrectWeight(true) -{} - -G4PIScorer::~G4PIScorer() -{} - -void G4PIScorer::Score(const G4Step &aStep, const G4PStep &aPstep) -{ - G4Track *track = aStep.GetTrack(); - - if (track->GetTrackStatus()==fStopAndKill) { - G4cout << " track status is StopAndKill -> do nothing" << G4endl; - } - // do the scoring - else { - G4double weight = track->GetWeight(); - G4double import = fIStore.GetImportance(aPstep.fPostTouchableKey); - G4double i_w =import * weight; - if (i_w != 1.) { - fNerr++; - G4StepPoint* prepoint = aStep.GetPreStepPoint(); - G4StepPoint* postpoint = aStep.GetPostStepPoint(); - - G4cout << "G4PIScorer::Score:" << G4endl; - G4cout << " Stepnumber = " << aStep.GetTrack()->GetCurrentStepNumber() - << G4endl; - G4cout << " TrackID = " << aStep.GetTrack()->GetTrackID() << G4endl; - G4cout << " ParentID = " << aStep.GetTrack()->GetParentID() << G4endl; - G4cout << " Track wieght = " << weight << G4endl; - G4cout << " Importance = " << import << G4endl; - G4cout << " i_w = " << i_w << G4endl; - G4cout << " aPstep: " << aPstep << G4endl; - G4cout << " steplength = " << aStep.GetStepLength() << G4endl; - G4cout << " pre_pos = " << prepoint->GetPosition() - << ", pre_dir = " << prepoint->GetMomentumDirection() << G4endl; - G4cout << " post_pos = " << postpoint->GetPosition() - << ", post_dir = " << postpoint->GetMomentumDirection() << G4endl; - G4cout << " vxt mom: " << track->GetVertexMomentumDirection() << G4endl; - fCorrectWeight = false; - } - fPScorer.Score(aStep, aPstep); - } -} - -G4std::ostream& operator<<(G4std::ostream &out, const G4PIScorer &ps) -{ - out << ps.GetMapPtkTallys(); - return out; -} diff --git a/source/processes/transportation/src/G4PImportanceConfigurator.cc b/source/processes/transportation/src/G4PImportanceConfigurator.cc new file mode 100644 index 0000000000..57720b214c --- /dev/null +++ b/source/processes/transportation/src/G4PImportanceConfigurator.cc @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * 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: G4PImportanceConfigurator.cc,v 1.3 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4PImportanceConfigurator +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#include "G4PImportanceConfigurator.hh" + +#include "G4ParallelWorld.hh" +#include "G4ImportanceAlgorithm.hh" + +G4PImportanceConfigurator:: +G4PImportanceConfigurator(const G4String &particlename, + G4ParallelWorld ¶llelWorld, + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg) + : + fPlacer(particlename), + fPWorld(parallelWorld), + fDeleteIalg( ( ! ialg) ), + fIalgorithm(( (fDeleteIalg) ? + new G4ImportanceAlgorithm : ialg)), + fExaminer(*fIalgorithm, + parallelWorld.GetParallelStepper(), + istore), + fParallelImportanceProcess(0) +{ + if (!fIalgorithm) { + G4Exception("ERROR:G4PImportanceConfigurator::G4PImportanceConfigurator: no fIalgorithm!"); + } +} + + +G4PImportanceConfigurator::~G4PImportanceConfigurator(){ + if (fParallelImportanceProcess) { + fPlacer.RemoveProcess(fParallelImportanceProcess); + delete fParallelImportanceProcess; + } + if (fDeleteIalg) { + delete fIalgorithm; + } +} + +void G4PImportanceConfigurator:: +Configure(G4VSamplerConfigurator *preConf){ + const G4VTrackTerminator *terminator = 0; + if (preConf) { + terminator = preConf->GetTrackTerminator(); + }; + + fParallelImportanceProcess = + new G4ParallelImportanceProcess(fExaminer, + fPWorld.GetGeoDriver(), + fPWorld.GetParallelStepper(), + terminator); + if (!fParallelImportanceProcess) { + G4Exception("ERROR:G4PImportanceConfigurator::Configure: new failed to create G4ParallelImportanceProcess!"); + } + + fPlacer.AddProcessAsSecondDoIt(fParallelImportanceProcess); +} + +const G4VTrackTerminator *G4PImportanceConfigurator:: +GetTrackTerminator() const { + return fParallelImportanceProcess; +} + diff --git a/source/processes/transportation/src/G4PImportanceWWindowScoreSampler.cc b/source/processes/transportation/src/G4PImportanceWWindowScoreSampler.cc deleted file mode 100644 index 76ffa23b7d..0000000000 --- a/source/processes/transportation/src/G4PImportanceWWindowScoreSampler.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: G4PImportanceWWindowScoreSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4PImportanceWWindowScoreSampler.cc -// -// ---------------------------------------------------------------------- - -#include "G4ParallelWorld.hh" -#include "G4PImportanceWWindowScoreSampler.hh" -#include "G4ParallelImportanceSampler.hh" -#include "G4ParallelWorld.hh" -#include "G4ProcessPlacer.hh" -#include "G4VIStore.hh" -#include "G4VPScorer.hh" -#include "G4PScoreProcess.hh" -#include "G4ParallelWeightWindowProcess.hh" -#include "G4WeightWindowAlgorithm.hh" - -G4PImportanceWWindowScoreSampler:: -G4PImportanceWWindowScoreSampler(G4VIStore &is, - G4VPScorer &ascorer, - const G4String &particlename, - G4VWeightWindowAlgorithm &wwalg, - const G4VImportanceAlgorithm *ialg) : - fParticleName(particlename), - fParallelWorld(*(new G4ParallelWorld(is.GetWorldVolume()))), - fParallelImportanceSampler(*(new - G4ParallelImportanceSampler(is, - fParticleName, - fParallelWorld, - ialg))), - fPScorer(ascorer), - fIstore(is), - fPScoreProcess(0), - fPWeightWindowProcess(0), - fWWAlgorithm(wwalg) -{} - -G4PImportanceWWindowScoreSampler::~G4PImportanceWWindowScoreSampler() -{ - if (fPScoreProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fPScoreProcess); - delete fPScoreProcess; - } - if (fPWeightWindowProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fPWeightWindowProcess); - delete fPWeightWindowProcess; - } - delete &fParallelImportanceSampler; - delete &fParallelWorld; -} - -G4PScoreProcess * -G4PImportanceWWindowScoreSampler::CreateParallelScoreProcess() -{ - if (!fPScoreProcess) { - fPScoreProcess = - new G4PScoreProcess(fParallelWorld.GetParallelStepper(), - fPScorer); - } - return fPScoreProcess; -} - -G4VProcess * -G4PImportanceWWindowScoreSampler::CreateWeightWindowProcess() -{ - if (!fPWeightWindowProcess) { - fPWeightWindowProcess = - new G4ParallelWeightWindowProcess(fIstore, - fParallelWorld. - GetParallelStepper(), - fWWAlgorithm); - } - return fPWeightWindowProcess; -} - -void G4PImportanceWWindowScoreSampler::Initialize() -{ - G4ProcessPlacer placer(fParticleName); - placer.AddProcessAsSecondDoIt(CreateParallelScoreProcess()); - fParallelImportanceSampler.Initialize(); - placer.AddProcessAsSecondDoIt(CreateWeightWindowProcess()); -} diff --git a/source/processes/transportation/src/G4PScoreConfigurator.cc b/source/processes/transportation/src/G4PScoreConfigurator.cc new file mode 100644 index 0000000000..a8d0788d3f --- /dev/null +++ b/source/processes/transportation/src/G4PScoreConfigurator.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: G4PScoreConfigurator.cc,v 1.4 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4PScoreConfigurator +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#include "G4PScoreConfigurator.hh" + +#include "G4VTrackTerminator.hh" + + +G4PScoreConfigurator:: +G4PScoreConfigurator(const G4String &particlename, + G4VParallelStepper &pstepper, + G4VScorer &scorer) + : + fPlacer(particlename), + fPStepper(pstepper), + fScorer(scorer), + fPScoreProcess(0) +{} + +G4PScoreConfigurator::~G4PScoreConfigurator(){ + if (fPScoreProcess) { + fPlacer.RemoveProcess(fPScoreProcess); + delete fPScoreProcess; + } +} + +void G4PScoreConfigurator::Configure(G4VSamplerConfigurator *preConf){ + fPScoreProcess = new G4PScoreProcess(fPStepper, fScorer); + if (!fPScoreProcess) { + G4Exception("ERROR:G4PScoreConfigurator::Configure: new failed to create G4PScoreProcess!"); + } + fPlacer.AddProcessAsSecondDoIt(fPScoreProcess); +} + + +const G4VTrackTerminator *G4PScoreConfigurator:: +GetTrackTerminator() const { + return fPScoreProcess; +} + diff --git a/source/processes/transportation/src/G4PScoreProcess.cc b/source/processes/transportation/src/G4PScoreProcess.cc index ecb8a3ec21..de59eef2c4 100644 --- a/source/processes/transportation/src/G4PScoreProcess.cc +++ b/source/processes/transportation/src/G4PScoreProcess.cc @@ -21,29 +21,34 @@ // ******************************************************************** // // -// $Id: G4PScoreProcess.cc,v 1.2 2002/04/09 17:40:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PScoreProcess.cc,v 1.6 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4PIScoreProcess.cc +// G4PScoreProcess.cc // // ---------------------------------------------------------------------- #include "G4PScoreProcess.hh" -#include "G4VPScorer.hh" -#include "G4PStep.hh" +#include "G4VScorer.hh" +#include "G4GeometryCellStep.hh" #include "G4VParallelStepper.hh" G4PScoreProcess::G4PScoreProcess(G4VParallelStepper &astepper, - G4VPScorer &aScorer, + G4VScorer &aScorer, const G4String &aName) - : G4VProcess(aName), - fPstepper(astepper), - fScorer(aScorer) + : + G4VProcess(aName), + fPstepper(astepper), + fScorer(aScorer), + fKillTrack(false) { G4VProcess::pParticleChange = new G4ParticleChange; + if (!G4VProcess::pParticleChange) { + G4Exception("ERROR:G4PScoreProcess::G4PScoreProcess: new failed to create G4ParticleChange!"); + } } G4PScoreProcess::~G4PScoreProcess() @@ -65,6 +70,44 @@ G4PScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) { pParticleChange->Initialize(aTrack); fScorer.Score(aStep, fPstepper.GetPStep()); - + if (fKillTrack) { + fKillTrack = false; + pParticleChange->SetStatusChange(fStopAndKill); + } return G4VProcess::pParticleChange; } + +void G4PScoreProcess::KillTrack() const { + fKillTrack = true; +} + +const G4String &G4PScoreProcess::GetName() const { + return theProcessName; +} + + + +G4double G4PScoreProcess:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) { + return -1.0; +} + +G4double G4PScoreProcess:: +AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*) { + return -1.0; +} + +G4VParticleChange* G4PScoreProcess:: +AtRestDoIt(const G4Track&, const G4Step&) { + return 0; +} + +G4VParticleChange* G4PScoreProcess:: +AlongStepDoIt(const G4Track&, const G4Step&) { + return 0; +} diff --git a/source/processes/transportation/src/G4ParallelGCellFinder.cc b/source/processes/transportation/src/G4ParallelGCellFinder.cc new file mode 100644 index 0000000000..3dd79b813c --- /dev/null +++ b/source/processes/transportation/src/G4ParallelGCellFinder.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: G4ParallelGCellFinder.cc,v 1.1 2002/10/16 16:27:41 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelGCellFinder.cc +// +// ---------------------------------------------------------------------- + +#include "G4ParallelGCellFinder.hh" +#include "G4VParallelStepper.hh" + + +G4ParallelGCellFinder:: +G4ParallelGCellFinder(const G4VParallelStepper &astepper): + fPStepper(astepper) +{} + +G4ParallelGCellFinder::~G4ParallelGCellFinder() +{} + +G4GeometryCell G4ParallelGCellFinder:: +GetPreGeometryCell(const G4Step &aStep) const { + G4GeometryCell g(fPStepper.GetPStep().GetPreGeometryCell()); + return g; +} + +G4GeometryCell G4ParallelGCellFinder:: +GetPostGeometryCell(const G4Step &aStep) const { + G4GeometryCell g(fPStepper.GetPStep().GetPostGeometryCell()); + return g; +} diff --git a/source/processes/transportation/src/G4ParallelGeometrySampler.cc b/source/processes/transportation/src/G4ParallelGeometrySampler.cc new file mode 100644 index 0000000000..9c3c9b75d7 --- /dev/null +++ b/source/processes/transportation/src/G4ParallelGeometrySampler.cc @@ -0,0 +1,186 @@ +// +// ******************************************************************** +// * 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: G4ParallelGeometrySampler.cc,v 1.6 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelGeometrySampler.cc +// +// ---------------------------------------------------------------------- + + +#include "G4ParallelGeometrySampler.hh" + +#include "G4VIStore.hh" +#include "G4VScorer.hh" + +#include "G4ParallelTransportConfigurator.hh" +#include "G4PScoreConfigurator.hh" +#include "G4PImportanceConfigurator.hh" +#include "G4WeightCutOffConfigurator.hh" +#include "G4ParallelGCellFinder.hh" + +G4ParallelGeometrySampler:: +G4ParallelGeometrySampler(G4VPhysicalVolume &worldvolume, + const G4String &particlename) + : + fParticleName(particlename), + fParallelWorld(worldvolume), + fParallelTransportConfigurator(0), + fPImportanceConfigurator(0), + fPScoreConfigurator(0), + fGCellFinder(0), + fWeightCutOffConfigurator(0), + fIStore(0), + fIsConfigured(false) +{} + +G4ParallelGeometrySampler::~G4ParallelGeometrySampler(){ + ClearSampling(); +}; + +void G4ParallelGeometrySampler::ClearSampling() { + if (fParallelTransportConfigurator) { + delete fParallelTransportConfigurator; + fParallelTransportConfigurator = 0; + } + if (fPImportanceConfigurator) { + delete fPImportanceConfigurator; + fPImportanceConfigurator = 0; + } + if (fPScoreConfigurator) { + delete fPScoreConfigurator; + fPScoreConfigurator = 0; + } + if (fWeightCutOffConfigurator) { + delete fWeightCutOffConfigurator; + fWeightCutOffConfigurator = 0; + } + if (fGCellFinder) { + delete fGCellFinder; + fGCellFinder = 0; + } + fIStore = 0; + fConfigurators.clear(); + fIsConfigured = false; +}; + +G4bool G4ParallelGeometrySampler::IsConfigured() const{ + G4bool isconf = false; + if (fIsConfigured) { + G4cout << "G4ParallelGeometrySampler::CheckIfInit some initalization exists, use ClearSampling() before a new initialization" << G4endl; + isconf = true; + } + return isconf; +} + +void G4ParallelGeometrySampler:: +PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm + *ialg) { + fIStore = istore; + fPImportanceConfigurator = + new G4PImportanceConfigurator(fParticleName, + fParallelWorld, + *istore, + ialg); + if (!fPImportanceConfigurator) { + G4Exception("ERROR:G4ParallelGeometrySampler::PrepareImportanceSampling: new failed to create G4PImportanceConfigurator!"); + } +} + +void G4ParallelGeometrySampler::PrepareScoring(G4VScorer *scorer){ + fPScoreConfigurator = + new G4PScoreConfigurator(fParticleName, + fParallelWorld. + GetParallelStepper(), + *scorer); + if (!fPScoreConfigurator) { + G4Exception("ERROR:G4ParallelGeometrySampler::PrepareScoring: new failed to create G4PScoreConfigurator!"); + } + +} + +void G4ParallelGeometrySampler:: +PrepareWeightRoulett(G4double wsuvive, G4double wlimit, G4double isource){ + fGCellFinder = new G4ParallelGCellFinder(fParallelWorld. + GetParallelStepper()); + if (!fGCellFinder) { + G4Exception("ERROR:G4ParallelGeometrySampler::PrepareWeightRoulett: new failed to create G4ParallelGCellFinder!"); + } + + fWeightCutOffConfigurator = + new G4WeightCutOffConfigurator(fParticleName, + wsuvive, + wlimit, + isource, + fIStore, + *fGCellFinder); + if (!fWeightCutOffConfigurator) { + G4Exception("ERROR:G4ParallelGeometrySampler::PrepareWeightRoulett: new failed to create G4WeightCutOffConfigurator!"); + } + +} + +void G4ParallelGeometrySampler::Configure(){ + + if (!IsConfigured()) { + fIsConfigured = true; + + if (fPScoreConfigurator) { + fConfigurators.push_back(fPScoreConfigurator); + } + if (fPImportanceConfigurator) { + fConfigurators.push_back(fPImportanceConfigurator); + } + else { + fParallelTransportConfigurator = + new G4ParallelTransportConfigurator(fParticleName, + fParallelWorld); + if (!fParallelTransportConfigurator) { + G4Exception("ERROR:G4ParallelGeometrySampler::Configure: new failed to create G4ParallelTransportConfigurator!"); + } + fConfigurators.push_back(fParallelTransportConfigurator); + } + G4VSamplerConfigurator *preConf = 0; + for (G4Configurators::iterator it = fConfigurators.begin(); + it != fConfigurators.end(); it++) { + G4VSamplerConfigurator *currConf =*it; + currConf->Configure(preConf); + preConf = *it; + } + + if (fWeightCutOffConfigurator) { + fWeightCutOffConfigurator->Configure(0); + } + } + return; +} + + + + + diff --git a/source/processes/transportation/src/G4ParallelImportanceProcess.cc b/source/processes/transportation/src/G4ParallelImportanceProcess.cc index 697a2ab55c..d6c8d5c8cf 100644 --- a/source/processes/transportation/src/G4ParallelImportanceProcess.cc +++ b/source/processes/transportation/src/G4ParallelImportanceProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelImportanceProcess.cc,v 1.3 2002/05/31 08:06:34 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelImportanceProcess.cc,v 1.8 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -34,15 +34,23 @@ #include "G4ParallelImportanceProcess.hh" #include "G4VImportanceSplitExaminer.hh" #include "g4std/strstream" +#include "G4VTrackTerminator.hh" G4ParallelImportanceProcess:: G4ParallelImportanceProcess(const G4VImportanceSplitExaminer &aImportanceSplitExaminer, - G4VPGeoDriver &pgeodriver, - G4VParallelStepper &aStepper, - const G4String &aName) - : G4ParallelTransport(pgeodriver, aStepper, aName), - fParticleChange(G4ParallelTransport::fParticleChange), - fImportanceSplitExaminer(aImportanceSplitExaminer) + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName) + : + G4ParallelTransport(pgeodriver, aStepper, aName), + fTrackTerminator(TrackTerminator ? TrackTerminator : this), + fParticleChange(G4ParallelTransport::fParticleChange), + fImportanceSplitExaminer(aImportanceSplitExaminer), + fImportancePostStepDoIt(*fTrackTerminator) +{} + +G4ParallelImportanceProcess::~G4ParallelImportanceProcess() {} @@ -66,3 +74,14 @@ void G4ParallelImportanceProcess::Error(const G4String &m) G4cout << "ERROR - G4ImportanceProcess::" << m << G4endl; G4Exception("Program aborted."); } + + + +void G4ParallelImportanceProcess::KillTrack() const{ + fParticleChange->SetStatusChange(fStopAndKill); +} + + +const G4String &G4ParallelImportanceProcess::GetName() const { + return G4ParallelTransport::GetProcessName(); +} diff --git a/source/processes/transportation/src/G4ParallelImportanceSampler.cc b/source/processes/transportation/src/G4ParallelImportanceSampler.cc deleted file mode 100644 index 84d7c56c4e..0000000000 --- a/source/processes/transportation/src/G4ParallelImportanceSampler.cc +++ /dev/null @@ -1,110 +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: G4ParallelImportanceSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4ParallelImportanceSampler.cc -// -// ---------------------------------------------------------------------- - -#include "G4ParallelImportanceSampler.hh" -#include "G4ParallelWorld.hh" -#include "G4ParallelWorld.hh" -#include "G4IStore.hh" -#include "G4ImportanceSplitExaminer.hh" -#include "G4ParallelImportanceProcess.hh" -#include "G4ProcessPlacer.hh" -#include "G4ImportanceAlgorithm.hh" - -G4ParallelImportanceSampler:: -G4ParallelImportanceSampler(G4VIStore &is, - const G4String &particlename, - const G4VImportanceAlgorithm *ialg) - :fParticleName(particlename), - fParallelWorld(*(new G4ParallelWorld(is.GetWorldVolume()))), - fCreatedPW(true), - fDeleteAlg( ( ! ialg) ), - fIalgorithm(( (fDeleteAlg) ? - new G4ImportanceAlgorithm : ialg)), - fExaminer(new G4ImportanceSplitExaminer(*fIalgorithm, - fParallelWorld. - GetParallelStepper(), - is)), - fParallelImportanceProcess(0) -{} - -G4ParallelImportanceSampler:: -G4ParallelImportanceSampler(G4VIStore &is, - const G4String &pname, - G4ParallelWorld &pworld, - const G4VImportanceAlgorithm *ialg) : - fParticleName(pname), - fParallelWorld(pworld), - fCreatedPW(false), - fDeleteAlg( ( ! ialg) ), - fIalgorithm(( (fDeleteAlg) ? - new G4ImportanceAlgorithm : ialg)), - fExaminer(new G4ImportanceSplitExaminer(*fIalgorithm, - fParallelWorld. - GetParallelStepper(), - is)), - fParallelImportanceProcess(0) -{} - - - -G4ParallelImportanceProcess * -G4ParallelImportanceSampler::CreateParallelImportanceProcess() -{ - if (!fParallelImportanceProcess) { - fParallelImportanceProcess = - new G4ParallelImportanceProcess(*fExaminer, - fParallelWorld. - GetGeoDriver(), - fParallelWorld. - GetParallelStepper()); - } - return fParallelImportanceProcess; -} - -void G4ParallelImportanceSampler::Initialize() -{ - G4ProcessPlacer placer(fParticleName); - placer.AddProcessAsSecondDoIt(CreateParallelImportanceProcess()); -} - -G4ParallelImportanceSampler::~G4ParallelImportanceSampler() -{ - if (fParallelImportanceProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fParallelImportanceProcess); - delete fParallelImportanceProcess; - } - if (fCreatedPW) delete &fParallelWorld; - if (fDeleteAlg) delete fIalgorithm; - delete fExaminer; -} diff --git a/source/processes/transportation/src/G4ParallelImportanceScoreSampler.cc b/source/processes/transportation/src/G4ParallelImportanceScoreSampler.cc deleted file mode 100644 index 0258bcc2cf..0000000000 --- a/source/processes/transportation/src/G4ParallelImportanceScoreSampler.cc +++ /dev/null @@ -1,86 +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: G4ParallelImportanceScoreSampler.cc,v 1.1 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4ParallelImportanceScoreSampler.cc -// -// ---------------------------------------------------------------------- - -#include "G4ParallelWorld.hh" -#include "G4ParallelImportanceScoreSampler.hh" -#include "G4ParallelImportanceSampler.hh" -#include "G4ParallelWorld.hh" -#include "G4ProcessPlacer.hh" -#include "G4VIStore.hh" -#include "G4VPScorer.hh" -#include "G4PScoreProcess.hh" - -G4ParallelImportanceScoreSampler:: -G4ParallelImportanceScoreSampler(G4VIStore &is, - G4VPScorer &ascorer, - const G4String &particlename, - const G4VImportanceAlgorithm *ialg) : - fParticleName(particlename), - fParallelWorld(*(new G4ParallelWorld(is.GetWorldVolume()))), - fParallelImportanceSampler(*(new - G4ParallelImportanceSampler(is, - fParticleName, - fParallelWorld, - ialg))), - fPScorer(ascorer), - fPScoreProcess(0) -{} - -G4ParallelImportanceScoreSampler::~G4ParallelImportanceScoreSampler() -{ - if (fPScoreProcess) { - G4ProcessPlacer placer(fParticleName); - placer.RemoveProcess(fPScoreProcess); - delete fPScoreProcess; - } - delete &fParallelImportanceSampler; - delete &fParallelWorld; -} - -G4PScoreProcess * -G4ParallelImportanceScoreSampler::CreateParallelScoreProcess() -{ - if (!fPScoreProcess) { - fPScoreProcess = - new G4PScoreProcess(fParallelWorld. - GetParallelStepper(), fPScorer); - } - return fPScoreProcess; -} - -void G4ParallelImportanceScoreSampler::Initialize() -{ - G4ProcessPlacer placer(fParticleName); - placer.AddProcessAsSecondDoIt(CreateParallelScoreProcess()); - fParallelImportanceSampler.Initialize(); -} diff --git a/source/processes/transportation/src/G4ParallelTransport.cc b/source/processes/transportation/src/G4ParallelTransport.cc index 38e6d0364f..d4497878f8 100644 --- a/source/processes/transportation/src/G4ParallelTransport.cc +++ b/source/processes/transportation/src/G4ParallelTransport.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelTransport.cc,v 1.4 2002/05/31 13:49:47 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParallelTransport.cc,v 1.8 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -34,18 +34,24 @@ #include "G4ParallelTransport.hh" #include "G4VPGeoDriver.hh" #include "G4VParallelStepper.hh" -#include "G4Pstring.hh" +#include "g4std/strstream" + G4ParallelTransport::G4ParallelTransport(G4VPGeoDriver &pgeodriver, G4VParallelStepper &aStepper, const G4String &aName) - : G4VProcess(aName), - fPgeodriver(pgeodriver), - fPStepper(aStepper), + : + G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fPgeodriver(pgeodriver), + fPStepper(aStepper), fCrossBoundary(false), fInitStep(false) { - fParticleChange = new G4ParticleChange; + if (!fParticleChange) { + G4Exception("ERROR:G4ParallelTransport::G4ParallelTransport: new failed to create G4ParticleChange!"); + } + G4VProcess::pParticleChange = fParticleChange; } @@ -66,7 +72,7 @@ PostStepGetPhysicalInteractionLength(const G4Track& aTrack, G4double previousStepSize, G4ForceCondition* condition) { - G4double stepLength; + G4double stepLength = 0; // if this function is called on a new track let the navigator // know about it @@ -77,7 +83,7 @@ PostStepGetPhysicalInteractionLength(const G4Track& aTrack, stepLength = fPgeodriver. ComputeStepLengthInit(aTrack.GetPosition(), aTrack.GetMomentumDirection()); - fPStepper.Init(fPgeodriver.GetCurrentTouchableKey()); + fPStepper.Init(fPgeodriver.GetCurrentGeometryCell()); fCrossBoundary = false; } else if (fCrossBoundary) { @@ -101,10 +107,15 @@ G4VParticleChange * G4ParallelTransport::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { - if (aStep.GetStepLength() == 0.) { - G4String m = "G4PArallelTransport::PostStepDoIt: StepLength() == 0.\n"; - m += "pos: " + str(aTrack.GetPosition()) + ", " - + "dir: " + str(aTrack.GetMomentumDirection()) + "\n"; + if (!(aStep.GetStepLength() > 0.)) { + char st[1000]; + G4std::ostrstream os(st,1000); + os << "G4PArallelTransport::InitPostDoIt: StepLength() == 0.\n" + << "pos: " << aTrack.GetPosition() << ", " + << "dir: " << aTrack.GetMomentumDirection() << "\n" + << '\0'; + G4String m(st); + Warning(m); } @@ -113,7 +124,7 @@ G4ParallelTransport::PostStepDoIt(const G4Track& aTrack, fCrossBoundary = true; fPgeodriver.LocateOnBoundary(aTrack.GetPosition(), aTrack.GetMomentumDirection()); - fPStepper.Update(fPgeodriver.GetCurrentTouchableKey()); + fPStepper.Update(fPgeodriver.GetCurrentGeometryCell()); return fParticleChange; } @@ -129,3 +140,30 @@ void G4ParallelTransport::Warning(const G4String &m) G4cout << "WARNING - G4ParallelTransport: " << G4endl; G4cout << m << G4endl; } + +G4double G4ParallelTransport:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) { + return -1.0; +} + +G4double G4ParallelTransport:: +AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*) { + return -1.0; +} + +G4VParticleChange* G4ParallelTransport:: +AtRestDoIt(const G4Track&, const G4Step&) { + return 0; +} + +G4VParticleChange* G4ParallelTransport:: +AlongStepDoIt(const G4Track&, const G4Step&) { + return 0; +} + + diff --git a/source/processes/transportation/src/G4ParallelTransportConfigurator.cc b/source/processes/transportation/src/G4ParallelTransportConfigurator.cc new file mode 100644 index 0000000000..80a2d1f49b --- /dev/null +++ b/source/processes/transportation/src/G4ParallelTransportConfigurator.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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: G4ParallelTransportConfigurator.cc,v 1.3 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelTransportConfigurator +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#include "G4ParallelTransportConfigurator.hh" +#include "G4ParallelWorld.hh" + +G4ParallelTransportConfigurator:: +G4ParallelTransportConfigurator(const G4String &particlename, + G4ParallelWorld &pworld) + : + fPlacer(particlename), + fPWorld(pworld), + fParallelTransport(0) +{} + +G4ParallelTransportConfigurator:: +~G4ParallelTransportConfigurator(){ + if (fParallelTransport) { + fPlacer.RemoveProcess(fParallelTransport); + delete fParallelTransport; + } +} + +void G4ParallelTransportConfigurator:: +Configure(G4VSamplerConfigurator *preConf){ + fParallelTransport = new + G4ParallelTransport(fPWorld.GetGeoDriver(), + fPWorld.GetParallelStepper()); + if (!fParallelTransport) { + G4Exception("ERROR:G4ParallelTransportConfigurator::Configure new failed to create G4ParallelTransport!"); + } + fPlacer.AddProcessAsSecondDoIt(fParallelTransport); +} + +const G4VTrackTerminator *G4ParallelTransportConfigurator:: +GetTrackTerminator() const { + return 0; +} diff --git a/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc b/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc deleted file mode 100644 index 8cdb6ed02d..0000000000 --- a/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc +++ /dev/null @@ -1,113 +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: G4ParallelWeightWindowProcess.cc,v 1.3 2002/05/31 14:50:38 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -// ---------------------------------------------------------------------- -// GEANT 4 class source file -// -// G4ParallelWeightWindowProcess.cc -// -// ---------------------------------------------------------------------- - -#include "G4ParallelWeightWindowProcess.hh" -#include "G4VIStore.hh" -#include "G4VParallelStepper.hh" -#include "G4VWeightWindowAlgorithm.hh" - -#include "G4Pstring.hh" - -G4ParallelWeightWindowProcess::G4ParallelWeightWindowProcess(G4VIStore &aIstore, - G4VParallelStepper &aStepper, - G4VWeightWindowAlgorithm &aWWAlgorithm, - const G4String &aName) - : G4VProcess(aName), - fIStore(aIstore), - fPStepper(aStepper), - fWWAlgorithm(aWWAlgorithm), - fNsplit_Weight(G4Nsplit_Weight(0,0)), - fInitStep(false) -{ - fParticleChange = new G4ParticleChange; - G4VProcess::pParticleChange = fParticleChange; -} - -G4ParallelWeightWindowProcess::~G4ParallelWeightWindowProcess() -{ - delete fParticleChange; -} - -void G4ParallelWeightWindowProcess::StartTracking(){ - fInitStep = true; -} -void G4ParallelWeightWindowProcess::EndTracking(){} - -G4double -G4ParallelWeightWindowProcess:: -PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition) -{ - *condition = NotForced; - G4double stepLength = kInfinity; - - if (aTrack.GetCurrentStepNumber() == 1 - && aTrack.GetTrackStatus() != fStopAndKill) { - fInitStep = false; - G4double importance = fIStore.GetImportance(fPStepper.GetPStep().fPostTouchableKey); - G4double weight = aTrack.GetWeight(); - - fNsplit_Weight = fWWAlgorithm.Calculate(weight, importance); - - if (aTrack.GetWeight() != fNsplit_Weight.fW || - fNsplit_Weight.fN != 1) { - stepLength = 0.; - } - } - - return stepLength; -} - -G4VParticleChange * -G4ParallelWeightWindowProcess::PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep) -{ - fParticleChange->Initialize(aTrack); - - fImportancePostStepDoIt.DoIt(aTrack, fParticleChange, fNsplit_Weight); - - return fParticleChange; -} - -void G4ParallelWeightWindowProcess::Error(const G4String &m) -{ - G4cout << "ERROR - G4ParallelWeightWindowProcess::" << m << G4endl; - G4Exception("Program aborted."); -} - -void G4ParallelWeightWindowProcess::Warning(const G4String &m) -{ - G4cout << "WARNING - G4ParallelWeightWindowProcess: " << G4endl; - G4cout << m << G4endl; -} diff --git a/source/processes/transportation/src/G4ProcessPlacer.cc b/source/processes/transportation/src/G4ProcessPlacer.cc index 10242ec7cb..8946a8467c 100644 --- a/source/processes/transportation/src/G4ProcessPlacer.cc +++ b/source/processes/transportation/src/G4ProcessPlacer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessPlacer.cc,v 1.6 2002/05/31 10:16:02 dressel Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ProcessPlacer.cc,v 1.11 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,28 +37,30 @@ #include "G4ParticleTable.hh" G4ProcessPlacer::G4ProcessPlacer(const G4String &particlename) - : G4VProcessPlacer(particlename), - fParticleName(particlename) -{ - G4cout << "+++ G4ProcessPlacer::G4ProcessPlacer: for: " << particlename - << G4endl; -} + : fParticleName(particlename) +{} + +G4ProcessPlacer::~G4ProcessPlacer() +{} void G4ProcessPlacer::RemoveProcess(G4VProcess *process){ + G4cout << "=== G4ProcessPlacer::RemoveProcess: for: " << fParticleName + << G4endl; G4cout << " ProcessName: " << process->GetProcessName() << ", will be removed!" << G4endl; - G4cout << "The initial Vectors: " << G4endl; + G4cout << " The initial Vectors: " << G4endl; PrintPostStepGPILVec(); PrintPostStepDoItVec(); - GetProcessManager().RemoveProcess(process); + GetProcessManager()->RemoveProcess(process); - G4cout << "The final Vectors: " << G4endl; + G4cout << " The final Vectors: " << G4endl; PrintPostStepGPILVec(); PrintPostStepDoItVec(); + + G4cout << "================================================" << G4endl; - } void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) @@ -71,7 +73,7 @@ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) if (sol == eLast) { - GetProcessManager().AddProcess(process, + GetProcessManager()->AddProcess(process, ordInActive, ordInActive, ordLast); @@ -79,7 +81,7 @@ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) else if (sol == eSecond) { // get transportation process G4VProcess *transportation = - (* (GetProcessManager().GetProcessList()))[0]; + (* (GetProcessManager()->GetProcessList()))[0]; if (!transportation) { G4Exception(" G4ProcessPlacer:: could not get process id=0"); @@ -90,11 +92,11 @@ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) } // place the given proces as first for the moment - GetProcessManager().AddProcess(process); - GetProcessManager().SetProcessOrderingToFirst(process, + GetProcessManager()->AddProcess(process); + GetProcessManager()->SetProcessOrderingToFirst(process, idxPostStep); // place transportation first again - GetProcessManager().SetProcessOrderingToFirst(transportation, + GetProcessManager()->SetProcessOrderingToFirst(transportation, idxPostStep); } @@ -109,21 +111,23 @@ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) void G4ProcessPlacer::AddProcessAsSecondDoIt(G4VProcess *process) { - G4cout << "=== G4ProcessPlacer::AddProcessAsSecondDoIt ===" << G4endl; + G4cout << "=== G4ProcessPlacer::AddProcessAsSecondDoIt: for: " + << fParticleName << G4endl; AddProcessAs(process, eSecond); } void G4ProcessPlacer::AddProcessAsLastDoIt(G4VProcess *process) { - G4cout << "=== G4ProcessPlacer::AddProcessAsLastDoIt ===" << G4endl; + G4cout << "=== G4ProcessPlacer::AddProcessAsLastDoIt: for: " + << fParticleName << G4endl; AddProcessAs(process, eLast); } -G4ProcessManager &G4ProcessPlacer::GetProcessManager() +G4ProcessManager *G4ProcessPlacer::GetProcessManager() { // get particle iterator to add processes --------------------- - G4ParticleTable* theParticleTable; - G4ParticleTable::G4PTblDicIterator* theParticleIterator; + G4ParticleTable* theParticleTable = 0; + G4ParticleTable::G4PTblDicIterator* theParticleIterator = 0; theParticleTable = G4ParticleTable::GetParticleTable(); theParticleIterator = theParticleTable->GetIterator(); // ------------------------------------------------------- @@ -138,31 +142,37 @@ G4ProcessManager &G4ProcessPlacer::GetProcessManager() } } // --------------------------------------------------------- - if (!processmanager) G4Exception(" G4ProcessPlacer::GetProcessManager: no ProcessSampler"); - return *processmanager; + if (!processmanager) { + G4Exception(" G4ProcessPlacer::GetProcessManager: no ProcessSampler"); + } + return processmanager; } void G4ProcessPlacer::PrintPostStepGPILVec(){ G4cout << "GPIL Vector: " << G4endl; G4ProcessVector* processGPILVec = - GetProcessManager().GetPostStepProcessVector(typeGPIL); + GetProcessManager()->GetPostStepProcessVector(typeGPIL); PrintProcVec(processGPILVec); } void G4ProcessPlacer::PrintPostStepDoItVec(){ G4cout << "DoIt Vector: " << G4endl; G4ProcessVector* processDoItVec = - GetProcessManager().GetPostStepProcessVector(typeDoIt); + GetProcessManager()->GetPostStepProcessVector(typeDoIt); PrintProcVec(processDoItVec); } void G4ProcessPlacer::PrintProcVec(G4ProcessVector* processVec) { - if (!processVec) G4Exception("G4ProcessPlacer::G4ProcessPlacer: no processVec"); + if (!processVec) { + G4Exception("G4ProcessPlacer::G4ProcessPlacer: no processVec"); + } G4int len = processVec->length(); - if (len==0) G4Exception("G4ProcessPlacer::G4ProcessPlacer:processVec len = 0"); + if (len==0) { + G4Exception("G4ProcessPlacer::G4ProcessPlacer:processVec len = 0"); + } for (int pi=0; piGimmeTrajectoryVectorAndForgetIt() ); + return &fParticleChange ; } diff --git a/source/processes/transportation/src/G4UserSpecialCuts.cc b/source/processes/transportation/src/G4UserSpecialCuts.cc index 428c758916..48c938e67b 100644 --- a/source/processes/transportation/src/G4UserSpecialCuts.cc +++ b/source/processes/transportation/src/G4UserSpecialCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserSpecialCuts.cc,v 1.4 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UserSpecialCuts.cc,v 1.7 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // -------------------------------------------------------------- // History diff --git a/source/processes/transportation/src/G4VProcessPlacer.cc b/source/processes/transportation/src/G4VProcessPlacer.cc new file mode 100644 index 0000000000..61583a0c7c --- /dev/null +++ b/source/processes/transportation/src/G4VProcessPlacer.cc @@ -0,0 +1,39 @@ +// +// ******************************************************************** +// * 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: G4VProcessPlacer.cc,v 1.1 2002/10/16 16:27:42 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VProcessPlacer.cc +// +// ---------------------------------------------------------------------- + +#include "G4VProcessPlacer.hh" + +G4VProcessPlacer::G4VProcessPlacer() +{} +G4VProcessPlacer::~G4VProcessPlacer() +{} diff --git a/source/persistency/global/src/G4VPersistentSubDbMan.cc b/source/processes/transportation/src/G4VSampler.cc similarity index 79% rename from source/persistency/global/src/G4VPersistentSubDbMan.cc rename to source/processes/transportation/src/G4VSampler.cc index 16afac5741..7d17046076 100644 --- a/source/persistency/global/src/G4VPersistentSubDbMan.cc +++ b/source/processes/transportation/src/G4VSampler.cc @@ -21,20 +21,20 @@ // ******************************************************************** // // -// $Id: G4VPersistentSubDbMan.cc,v 1.4 2001/07/11 10:02:25 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSampler.cc,v 1.1 2002/10/16 16:27:42 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // -// class G4VPersistentSubDbMan +// ---------------------------------------------------------------------- +// GEANT 4 class source file // -// History: -// 99.11.25 Y.Morita Initial version +// G4VSampler.cc +// +// ---------------------------------------------------------------------- -#include "G4VPersistentSubDbMan.hh" +#include "G4VSampler.hh" -G4VPersistentSubDbMan::G4VPersistentSubDbMan() - : f_DB(0), f_container(0), f_currentContainer(0) -{;} - -G4VPersistentSubDbMan::~G4VPersistentSubDbMan() -{;} +G4VSampler::G4VSampler() +{} +G4VSampler::~G4VSampler() +{} diff --git a/source/geometry/biasing/src/G4Pstring.cc b/source/processes/transportation/src/G4VSamplerConfigurator.cc similarity index 77% rename from source/geometry/biasing/src/G4Pstring.cc rename to source/processes/transportation/src/G4VSamplerConfigurator.cc index 895d915f04..a585c7e970 100644 --- a/source/geometry/biasing/src/G4Pstring.cc +++ b/source/processes/transportation/src/G4VSamplerConfigurator.cc @@ -21,42 +21,22 @@ // ******************************************************************** // // -// $Id: G4Pstring.cc,v 1.2 2002/04/09 16:23:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSamplerConfigurator.cc,v 1.1 2002/10/16 16:27:42 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4Pstring.cc +// G4VSamplerConfigurator.cc // // ---------------------------------------------------------------------- -#include "G4Pstring.hh" -G4String str(const int &i) -{ - char s[200]; - sprintf(s,"%d",i); - return s; -} - -G4String str(const double &d) -{ - char s[200]; - sprintf(s,"%f",d); - return s; -} - -G4String str(const G4ThreeVector &v) -{ - G4String out = "("; - out += str(v.x()); - out += ", "; - out += str(v.y()); - out += ", "; - out += str(v.z()); - out += ")"; - return out; -} +#include "G4VSamplerConfigurator.hh" +G4VSamplerConfigurator::G4VSamplerConfigurator() +{} + +G4VSamplerConfigurator::~G4VSamplerConfigurator() +{} diff --git a/source/processes/transportation/src/G4VTrackTerminator.cc b/source/processes/transportation/src/G4VTrackTerminator.cc new file mode 100644 index 0000000000..d967d329d6 --- /dev/null +++ b/source/processes/transportation/src/G4VTrackTerminator.cc @@ -0,0 +1,40 @@ +// +// ******************************************************************** +// * 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: G4VTrackTerminator.cc,v 1.1 2002/10/16 16:27:42 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VTrackTerminator.cc +// +// ---------------------------------------------------------------------- + + +#include "G4VTrackTerminator.hh" + +G4VTrackTerminator::G4VTrackTerminator() +{} +G4VTrackTerminator::~G4VTrackTerminator() +{} diff --git a/source/processes/transportation/src/G4WeightCutOffConfigurator.cc b/source/processes/transportation/src/G4WeightCutOffConfigurator.cc new file mode 100644 index 0000000000..db9598de43 --- /dev/null +++ b/source/processes/transportation/src/G4WeightCutOffConfigurator.cc @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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: G4WeightCutOffConfigurator.cc,v 1.3 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// Class G4WeightCutOffConfigurator +// + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#include "G4WeightCutOffConfigurator.hh" +#include "G4WeightCutOffProcess.hh" + + +G4WeightCutOffConfigurator:: +G4WeightCutOffConfigurator(const G4String &particlename, + G4double wsurvival, + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellfinder) + : + fPlacer(particlename), + fWeightCutOffProcess(new G4WeightCutOffProcess(wsurvival, + wlimit, + isource, + istore, + aGCellfinder)), + fPlaced(false) +{ + if (!fWeightCutOffProcess) { + G4Exception("ERROR:G4WeightCutOffConfigurator::G4WeightCutOffConfigurator: new failed to create G4WeightCutOffProcess!"); + } +} + + +G4WeightCutOffConfigurator::~G4WeightCutOffConfigurator(){ + if (fPlaced) { + fPlacer.RemoveProcess(fWeightCutOffProcess); + delete fWeightCutOffProcess; + } +} + +void G4WeightCutOffConfigurator:: +Configure(G4VSamplerConfigurator *preConf){ + fPlacer.AddProcessAsLastDoIt(fWeightCutOffProcess); + fPlaced = true; +} + +const G4VTrackTerminator *G4WeightCutOffConfigurator:: +GetTrackTerminator() const { + return 0; +} + diff --git a/source/processes/transportation/src/G4WeightCutOffProcess.cc b/source/processes/transportation/src/G4WeightCutOffProcess.cc new file mode 100644 index 0000000000..1c729b6427 --- /dev/null +++ b/source/processes/transportation/src/G4WeightCutOffProcess.cc @@ -0,0 +1,134 @@ +// +// ******************************************************************** +// * 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: G4WeightCutOffProcess.cc,v 1.4 2002/11/04 10:47:56 dressel Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4WeightCutOffProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4WeightCutOffProcess.hh" +#include "G4VScorer.hh" +#include "G4GeometryCellStep.hh" +#include "G4ParallelGCellFinder.hh" +#include "G4MassGCellFinder.hh" +#include "G4TouchableHandle.hh" +#include "G4VIStore.hh" + +G4WeightCutOffProcess:: +G4WeightCutOffProcess(G4double wsurvival, + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellFinder, + const G4String &aName) + : + G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fWeightSurvival(wsurvival), + fWeightLimit(wlimit), + fSourceImportance(isource), + fIStore(istore), + fGCellFinder(aGCellFinder) +{ + if (!fParticleChange) { + G4Exception("ERROR:G4WeightCutOffProcess::G4WeightCutOffProcess: new failed to create G4ParticleChange!"); + } + G4VProcess::pParticleChange = fParticleChange; +} + +G4WeightCutOffProcess::~G4WeightCutOffProcess() +{ + delete fParticleChange; +} + +G4double G4WeightCutOffProcess:: +PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition) +{ + *condition = Forced; + return kInfinity; +} + +G4VParticleChange * +G4WeightCutOffProcess::PostStepDoIt(const G4Track& aTrack, + const G4Step &aStep) +{ + fParticleChange->Initialize(aTrack); + G4GeometryCell postCell = fGCellFinder.GetPostGeometryCell(aStep); + G4double R = fSourceImportance; + if (fIStore) { + G4double i = fIStore->GetImportance(postCell); + if (i>0) { + R/=i; + } + } + G4double w = aTrack.GetWeight(); + if (wSetStatusChange(fStopAndKill); + } + else { + fParticleChange->SetWeightChange(ws); + } + } + return fParticleChange; +} + +const G4String &G4WeightCutOffProcess::GetName() const { + return theProcessName; +} + + +G4double G4WeightCutOffProcess:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) { + return -1.0; +} + + +G4double G4WeightCutOffProcess:: +AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*) { + return -1.0; +} + +G4VParticleChange* G4WeightCutOffProcess:: +AtRestDoIt(const G4Track&, const G4Step&) { + return 0; +} + +G4VParticleChange* G4WeightCutOffProcess:: +AlongStepDoIt(const G4Track&, const G4Step&) { + return 0; +} diff --git a/source/readout/include/G4DCtable.hh b/source/readout/include/G4DCtable.hh index 393a7a8071..c7ecf3f3e1 100644 --- a/source/readout/include/G4DCtable.hh +++ b/source/readout/include/G4DCtable.hh @@ -22,7 +22,7 @@ // // // $Id: G4DCtable.hh,v 1.6 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4DCtable_H diff --git a/source/readout/include/G4DMmessenger.hh b/source/readout/include/G4DMmessenger.hh index f9228e0fb2..91d848ad81 100644 --- a/source/readout/include/G4DMmessenger.hh +++ b/source/readout/include/G4DMmessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMmessenger.hh,v 1.4 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4DMmessenger_h diff --git a/source/readout/include/G4DigiManager.hh b/source/readout/include/G4DigiManager.hh index 2af48a0fb0..d0956bab1a 100644 --- a/source/readout/include/G4DigiManager.hh +++ b/source/readout/include/G4DigiManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4DigiManager.hh,v 1.6 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4DigiManager_h diff --git a/source/readout/include/G4VDigitizerModule.hh b/source/readout/include/G4VDigitizerModule.hh index 3a5a919b01..bee2ee07f6 100644 --- a/source/readout/include/G4VDigitizerModule.hh +++ b/source/readout/include/G4VDigitizerModule.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDigitizerModule.hh,v 1.6 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VDigitizerModule_H diff --git a/source/readout/src/G4DCtable.cc b/source/readout/src/G4DCtable.cc index 87f2e9ab8a..bdee3972c1 100644 --- a/source/readout/src/G4DCtable.cc +++ b/source/readout/src/G4DCtable.cc @@ -22,7 +22,7 @@ // // // $Id: G4DCtable.cc,v 1.6 2001/10/18 20:28:19 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4DCtable.hh" diff --git a/source/readout/src/G4DMmessenger.cc b/source/readout/src/G4DMmessenger.cc index c7d458c29f..5c537471c0 100644 --- a/source/readout/src/G4DMmessenger.cc +++ b/source/readout/src/G4DMmessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMmessenger.cc,v 1.3 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // --------------------------------------------------------------------- diff --git a/source/readout/src/G4DigiManager.cc b/source/readout/src/G4DigiManager.cc index 648dc745cf..9708faefd8 100644 --- a/source/readout/src/G4DigiManager.cc +++ b/source/readout/src/G4DigiManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4DigiManager.cc,v 1.6 2001/10/18 20:28:19 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4DigiManager.hh" diff --git a/source/readout/src/G4VDigitizerModule.cc b/source/readout/src/G4VDigitizerModule.cc index 30892a3cc2..f0bf393150 100644 --- a/source/readout/src/G4VDigitizerModule.cc +++ b/source/readout/src/G4VDigitizerModule.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDigitizerModule.cc,v 1.3 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VDigitizerModule.hh" diff --git a/source/run/GNUmakefile b/source/run/GNUmakefile index 20797d9323..f642e14ace 100644 --- a/source/run/GNUmakefile +++ b/source/run/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2001/10/24 15:25:18 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2002/07/11 16:18:35 dressel Exp $ # ---------------------------------------------------------- # GNUmakefile for run library. Gabriele Cosmo, 3/4/1997. # ---------------------------------------------------------- @@ -31,7 +31,8 @@ CPPFLAGS += \ -I$(G4BASE)/digits+hits/hits/include \ -I$(G4BASE)/digits+hits/digits/include \ -I$(G4BASE)/event/include \ - -I$(G4BASE)/intercoms/include + -I$(G4BASE)/intercoms/include \ + -I$(G4BASE)/geometry/biasing/include include $(G4INSTALL)/config/common.gmk diff --git a/source/run/History b/source/run/History index e6a84532c8..7fe4964137 100644 --- a/source/run/History +++ b/source/run/History @@ -1,4 +1,4 @@ -$Id: History,v 1.55 2002/06/25 12:49:55 gcosmo Exp $ +$Id: History,v 1.70 2002/12/12 08:35:54 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,78 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 12, 2002, G.Cosmo (run-V04-01-07) +- Updated date to G4RunManager.cc for release 5.0. + +Dec 4, 2002, M.Asai (run-V04-01-05, run-V04-01-06) +- Migration to new G4ApplicationState. + +Nov 27, 2002 M.Asai (run-V04-01-04) +- Fix memory leak in G4RunManager by deleting G4ExceptionHandler object. + +Aug 20, 2002 R. Chytracek (run-V04-01-03) +- Introducing ResetNavigator() method needed in cases where a geometry + has been modified between runs in order to properly re-initialize navigator's + state + +Aug 19, 2002 M.Asai (run-V04-01-02) +- Introducing a new G4Exception scheme + Added : G4ExceptionHandler.hh G4ExceptionHandler.cc + Modified : G4RunManager.hh G4RunManager.cc + +Aug 13, 2002 M.Asai (run-V04-01-01) +- G4RunManager sets "eventAbortion" flag of G4Event if that particular event is + aborted. Co-working with "event-V04-01-01" and "tracking-V04-01-00". + +Aug 13, 2002 M.Dressel +- removed the files I have placed in run: + include/G4MapPtkStandardCellScorer.hh + include/G4ParallelSamplerMessenger.hh + include/G4StandardCellScoreValues.hh + include/G4StandardCellScorer.hh + include/G4StandardScoreTable.hh + include/G4StandardScorer.hh + src/G4MapPtkStandardCellScorer.cc + src/G4ParallelSamplerMessenger.cc + src/G4StandardCellScorer.cc + src/G4StandardScoreTable.cc + src/G4StandardScoreTable.cc + src/G4StandardScorer.cc + +Aug 8, 2002 M.Asai (run-V04-01-00) +- G4RunManager and G4RunMessenger are modified to + - introduce "soft abortion", i.e. event loop is aborted after processing the current event + - introduce AbortEvent() method and corresponding UI command +- NOTE : + internal-1-run-V04-01-01 is NOT included in this tag + +July 18, 2002 M.Dressel +- change G4StandardScorerTable to the new G4IStore + +July 12, 2002 M.Dressel +- added comments to include/G4ParallelSamplerMessenger.hh + and src/G4ParallelSamplerMessenger.cc + +July 11, 2002 M.Dressel (internal-1-run-V04-01-01) +- add: + include/G4MapPtkStandardCellScorer.hh + include/G4ParallelSamplerMessenger.hh + include/G4StandardCellScoreValues.hh + include/G4StandardCellScorer.hh + include/G4StandardScoreTable.hh + include/G4StandardScorer.hh + src/G4MapPtkStandardCellScorer.cc + src/G4ParallelSamplerMessenger.cc + src/G4StandardCellScorer.cc + src/G4StandardScoreTable.cc + src/G4StandardScoreTable.cc + src/G4StandardScorer.cc +- the G4StandardScorer.cc needs the G4EventManager + G4ParallelSamplerMessenger.hh needs G4StandardScorer. + The other classes are needed in turn. +- coworks with internal-2-transport-V04-01-01 + internal-2-geombias-V04-01-01 + Jun 25, 2002 G.Cosmo (run-V04-00-04) - Changed date to G4RunManager.cc for release 4.1. diff --git a/source/run/include/G4ExceptionHandler.hh b/source/run/include/G4ExceptionHandler.hh new file mode 100644 index 0000000000..51f06c2698 --- /dev/null +++ b/source/run/include/G4ExceptionHandler.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: G4ExceptionHandler.hh,v 1.1 2002/08/19 18:33:29 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// +// ---------------- G4ExceptionHandler ---------------- +// +// Authors: M.Asai - August 2002 +// +// ------------------------------------------------------------ +// +// Class description: +// +// Abstract base class which need to be notified when G4Exception occurs. +// The concrete class object derived from this base class will be automatically +// registered to G4StateManager and the virtual method Notify() will be invoked +// when G4Exception occurs. + +// ------------------------------------------------------------ + +#ifndef G4ExceptionHandler_h +#define G4ExceptionHandler_h 1 + +#include "globals.hh" +#include "G4VExceptionHandler.hh" +#include "G4ExceptionSeverity.hh" + +class G4ExceptionHandler : public G4VExceptionHandler +{ + +public: + + G4ExceptionHandler(); + virtual ~G4ExceptionHandler(); + G4int operator==(const G4ExceptionHandler &right) const; + G4int operator!=(const G4ExceptionHandler &right) const; + +public: // with description + + virtual G4bool Notify(const char* originOfException, + const char* exceptionCode, + G4ExceptionSeverity severity, + const char* description); + // Virtual method which will be invoked by G4StateManager when + // G4Exception occurs. + // If TRUE returned, core dump will be generated, while FALSE returned, + // program execution continues. + +private: + + G4ExceptionHandler(const G4ExceptionHandler &right); + G4ExceptionHandler& operator=(const G4ExceptionHandler &right); + +}; + +#endif diff --git a/source/run/include/G4Run.hh b/source/run/include/G4Run.hh index 3d7561b454..60b74562e7 100644 --- a/source/run/include/G4Run.hh +++ b/source/run/include/G4Run.hh @@ -22,7 +22,7 @@ // // // $Id: G4Run.hh,v 1.4 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4Run_h diff --git a/source/run/include/G4RunManager.hh b/source/run/include/G4RunManager.hh index 1e85b7ded3..e852d2e6ae 100644 --- a/source/run/include/G4RunManager.hh +++ b/source/run/include/G4RunManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManager.hh,v 1.22 2001/11/23 16:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RunManager.hh,v 1.26 2002/11/27 17:55:07 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -80,11 +80,13 @@ class G4Timer; class G4RunMessenger; class G4DCtable; class G4Run; +class G4ExceptionHandler; #include "G4Event.hh" #include "G4EventManager.hh" #include "globals.hh" #include "g4std/vector" +////////#include class G4RunManager { @@ -92,6 +94,11 @@ class G4RunManager static G4RunManager* GetRunManager(); // Static method which returns the singleton pointer of G4RunManager or // its derived class. + public: +//////// static G4int RegisterInteruption(int interuptionSignal = SIGQUIT); + // Static method to define the interuption key +//////// static void ReceiveInteruption(int sig); + // Static method to accept interuption signal private: static G4RunManager* fRunManager; @@ -129,10 +136,18 @@ class G4RunManager // Usually, this method is invoked from InitializeGeometry() protected method // of this class. But, in case all of geometry has already created and kept in // the ODBMS, the pointer to the world physical volume can be set by this method. - virtual void AbortRun(); + virtual void ResetNavigator() const; + // Resets state of navigator for tracking, needed for geometry updates. + virtual void AbortRun(G4bool softAbort=false); // This method safely aborts the current event loop even if an event is in progress. // This method is available for Geant4 states of GeomClosed and EventProc. The state // will be changed to Idle, so that another event loop can be done. + // If softAbort is true, the event loop is aborted after processing the current + // event, while the current event is aborted if it is false. + virtual void AbortEvent(); + // This method aborts the currently processing event, remaining events in the + // current event loop will be processed. This method is available only for + // EventProc state. protected: // with description @@ -190,6 +205,7 @@ class G4RunManager private: G4RunMessenger* runMessenger; + G4ExceptionHandler* defaultExceptionHandler; protected: G4bool geometryInitialized; diff --git a/source/run/include/G4RunMessenger.hh b/source/run/include/G4RunMessenger.hh index cde31cf6b4..248de8998f 100644 --- a/source/run/include/G4RunMessenger.hh +++ b/source/run/include/G4RunMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunMessenger.hh,v 1.8 2001/11/23 16:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RunMessenger.hh,v 1.9 2002/08/08 17:29:26 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT 4 class header file @@ -82,7 +82,8 @@ class G4RunMessenger: public G4UImessenger G4UIcmdWithABool * optCmd; G4UIcmdWithABool * brkBoECmd; G4UIcmdWithABool * brkEoECmd; - G4UIcmdWithoutParameter * abortCmd; + G4UIcmdWithABool * abortCmd; + G4UIcmdWithoutParameter * abortEventCmd; G4UIcmdWithoutParameter * initCmd; G4UIcmdWithoutParameter * geomCmd; G4UIcmdWithoutParameter * cutCmd; diff --git a/source/run/include/G4UserPhysicsListMessenger.hh b/source/run/include/G4UserPhysicsListMessenger.hh index 13a1812367..7b6d0e334e 100644 --- a/source/run/include/G4UserPhysicsListMessenger.hh +++ b/source/run/include/G4UserPhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserPhysicsListMessenger.hh,v 1.10 2001/08/03 06:02:55 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/run/include/G4UserRunAction.hh b/source/run/include/G4UserRunAction.hh index 42cbb3efb5..4bb758cac4 100644 --- a/source/run/include/G4UserRunAction.hh +++ b/source/run/include/G4UserRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserRunAction.hh,v 1.5 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4UserRunAction_h diff --git a/source/run/include/G4VModularPhysicsList.hh b/source/run/include/G4VModularPhysicsList.hh index dcd34f5fb6..80678e8ced 100644 --- a/source/run/include/G4VModularPhysicsList.hh +++ b/source/run/include/G4VModularPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G4VModularPhysicsList.hh,v 1.4 2002/05/29 12:11:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VPersistencyManager.hh b/source/run/include/G4VPersistencyManager.hh index 07e64a388c..5d4d322fca 100644 --- a/source/run/include/G4VPersistencyManager.hh +++ b/source/run/include/G4VPersistencyManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPersistencyManager.hh,v 1.4 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VPersistencyManager_h diff --git a/source/run/include/G4VPhysicsConstructor.hh b/source/run/include/G4VPhysicsConstructor.hh index 0b0bbc67fd..b020e57db8 100644 --- a/source/run/include/G4VPhysicsConstructor.hh +++ b/source/run/include/G4VPhysicsConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicsConstructor.hh,v 1.3 2001/11/06 06:08:04 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserDetectorConstruction.hh b/source/run/include/G4VUserDetectorConstruction.hh index f3336805f3..308de0d4ae 100644 --- a/source/run/include/G4VUserDetectorConstruction.hh +++ b/source/run/include/G4VUserDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserDetectorConstruction.hh,v 1.4 2001/07/11 10:08:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VUserDetectorConstruction_h diff --git a/source/run/include/G4VUserPhysicsList.hh b/source/run/include/G4VUserPhysicsList.hh index a61c977a9c..6ca6864d7c 100644 --- a/source/run/include/G4VUserPhysicsList.hh +++ b/source/run/include/G4VUserPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserPhysicsList.hh,v 1.14 2001/10/16 08:35:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserPrimaryGeneratorAction.hh b/source/run/include/G4VUserPrimaryGeneratorAction.hh index 6426ab381f..01e9af7aa0 100644 --- a/source/run/include/G4VUserPrimaryGeneratorAction.hh +++ b/source/run/include/G4VUserPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryGeneratorAction.hh,v 1.4 2001/07/11 10:08:33 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VUserPrimaryGeneratorAction_h diff --git a/source/run/src/G4ExceptionHandler.cc b/source/run/src/G4ExceptionHandler.cc new file mode 100644 index 0000000000..446cf96659 --- /dev/null +++ b/source/run/src/G4ExceptionHandler.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: G4ExceptionHandler.cc,v 1.2 2002/12/04 21:52:40 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation file +// +// ---------------- G4ExceptionHandler ---------------- +// by Makoto Asai (August 2002) +// ------------------------------------------------------------ + +#include "G4ExceptionHandler.hh" +#include "G4StateManager.hh" +#include "G4RunManager.hh" +#include "G4ios.hh" +#include +#include "G4String.hh" + +G4ExceptionHandler::G4ExceptionHandler() +{ +} + +G4ExceptionHandler::~G4ExceptionHandler() +{ +} + +G4ExceptionHandler::G4ExceptionHandler(const G4ExceptionHandler &right) +{ + *this = right; +} + +G4ExceptionHandler& G4ExceptionHandler::operator=(const G4ExceptionHandler &right) +{ + if (&right == this) return *this; + *this = right; + return *this; +} + +G4int G4ExceptionHandler::operator==(const G4ExceptionHandler &right) const +{ + return (this == &right); +} + +G4int G4ExceptionHandler::operator!=(const G4ExceptionHandler &right) const +{ + return (this != &right); +} + +G4bool G4ExceptionHandler::Notify(const char* originOfException, + const char* exceptionCode, + G4ExceptionSeverity severity, + const char* description) +{ + G4cerr << G4endl; + G4cerr << "*** G4Exception : " << exceptionCode << G4endl; + G4cerr << " issued by : " << originOfException << G4endl; + G4cerr << description << G4endl; + G4bool abortionForCoreDump = false; + G4ApplicationState aps = G4StateManager::GetStateManager()->GetCurrentState(); + switch(severity) + { + case FatalException: + G4cerr << "*** Fatal Exception *** core dump ***"; + abortionForCoreDump = true; + break; + case FatalErrorInArgument: + G4cerr << "*** Fatal Error In Argument *** core dump ***"; + abortionForCoreDump = true; + break; + case RunMustBeAborted: + if(aps==G4State_GeomClosed || aps==G4State_EventProc) + { + G4cerr << "*** Run Must Be Aborted "; + G4RunManager::GetRunManager()->AbortRun(false); + } + abortionForCoreDump = false; + break; + case EventMustBeAborted: + if(aps==G4State_EventProc) + { + G4cerr << "*** Event Must Be Aborted "; + G4RunManager::GetRunManager()->AbortEvent(); + } + abortionForCoreDump = false; + break; + default: + G4cerr << "*** This is just a warning message."; + abortionForCoreDump = false; + break; + } + G4cerr << G4endl; + return abortionForCoreDump; +} + + diff --git a/source/run/src/G4Run.cc b/source/run/src/G4Run.cc index b02fd8c857..ef9d02db96 100644 --- a/source/run/src/G4Run.cc +++ b/source/run/src/G4Run.cc @@ -22,7 +22,7 @@ // // // $Id: G4Run.cc,v 1.4 2001/07/13 15:57:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4Run.hh" diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc index 016c9fbf0e..7c6dacdf9f 100644 --- a/source/run/src/G4RunManager.cc +++ b/source/run/src/G4RunManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManager.cc,v 1.44 2002/06/25 12:49:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RunManager.cc,v 1.54 2002/12/12 08:33:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -51,16 +51,30 @@ #include "G4ProcessTable.hh" #include "G4UnitsTable.hh" #include "G4VVisManager.hh" - +#include "G4ExceptionHandler.hh" #include "G4ios.hh" #include "g4std/strstream" - G4RunManager* G4RunManager::fRunManager = 0; G4RunManager* G4RunManager::GetRunManager() { return fRunManager; } +//G4int G4RunManager::RegisterInteruption(int interuptionSignal) +//{ +// if(signal(interuptionSignal,ReceiveInteruption)==SIG_ERR) return -1; +// return 0; +//} + +//void G4RunManager::ReceiveInteruption(int sig) +//{ +// if(!fRunManager) return; +// G4ApplicationState state +// = G4StateManager::GetStateManager()->GetCurrentState(); +// if(state==G4State_GeomClosed || state==G4State_EventProc) +// { fRunManager->AbortRun(true); } +//} + G4RunManager::G4RunManager() :userDetector(0),physicsList(0), userRunAction(0),userPrimaryGeneratorAction(0),userEventAction(0), @@ -71,6 +85,7 @@ G4RunManager::G4RunManager() currentRun(0),currentEvent(0),n_perviousEventsToBeStored(0), storeRandomNumberStatus(false) { + defaultExceptionHandler = new G4ExceptionHandler(); if(fRunManager) { G4Exception("G4RunManager constructed twice."); } //G4UnitDefinition::BuildUnitsTable(); @@ -82,7 +97,7 @@ G4RunManager::G4RunManager() G4ParticleTable::GetParticleTable()->CreateMessenger(); G4ProcessTable::GetProcessTable()->CreateMessenger(); randomNumberStatusDir = "./"; - versionString = " Geant4 version $Name: geant4-04-01 $\n (28-Jun-2002)"; + versionString = " Geant4 version $Name: geant4-05-00 $\n (13-Dec-2002)"; G4cout << "**********************************************" << G4endl << versionString << G4endl @@ -94,7 +109,7 @@ G4RunManager::~G4RunManager() { if(verboseLevel>0) G4cout << "G4 kernel has come to Quit state." << G4endl; G4StateManager* pStateManager = G4StateManager::GetStateManager(); - pStateManager->SetNewState(Quit); + pStateManager->SetNewState(G4State_Quit); if(verboseLevel>1) G4cout << "Deletion of G4 kernel class start." << G4endl; delete timer; @@ -142,6 +157,7 @@ G4RunManager::~G4RunManager() delete pStateManager; if(verboseLevel>1) G4cout << "StateManager deleted." << G4endl; } + delete defaultExceptionHandler; if(verboseLevel>1) G4cout << "RunManager is deleting." << G4endl; } @@ -161,7 +177,7 @@ G4bool G4RunManager::ConfirmBeamOnCondition() G4StateManager* stateManager = G4StateManager::GetStateManager(); G4ApplicationState currentState = stateManager->GetCurrentState(); - if(currentState!=PreInit && currentState!=Idle) + if(currentState!=G4State_PreInit && currentState!=G4State_Idle) { G4cerr << "Illegal application state - BeamOn() ignored." << G4endl; return false; @@ -210,7 +226,7 @@ void G4RunManager::RunInitialization() geometryNeedsToBeClosed = false; } G4StateManager* stateManager = G4StateManager::GetStateManager(); - stateManager->SetNewState(GeomClosed); + stateManager->SetNewState(G4State_GeomClosed); //previousEvents->clearAndDestroy(); for(size_t itr=0;itrsize();itr++) @@ -249,7 +265,7 @@ void G4RunManager::DoEventLoop(G4int n_event,const char* macroFile,G4int n_selec G4int i_event; for( i_event=0; i_eventSetNewState(EventProc); + stateManager->SetNewState(G4State_EventProc); currentEvent = GenerateEvent(i_event); @@ -258,7 +274,7 @@ void G4RunManager::DoEventLoop(G4int n_event,const char* macroFile,G4int n_selec AnalyzeEvent(currentEvent); if(i_eventApplyCommand(msg); - stateManager->SetNewState(GeomClosed); + stateManager->SetNewState(G4State_GeomClosed); StackPreviousEvent(currentEvent); currentEvent = 0; if(runAborted) break; @@ -320,7 +336,7 @@ void G4RunManager::RunTermination() currentRun = 0; runIDCounter++; - stateManager->SetNewState(Idle); + stateManager->SetNewState(G4State_Idle); } void G4RunManager::StackPreviousEvent(G4Event* anEvent) @@ -341,18 +357,18 @@ void G4RunManager::Initialize() { G4StateManager* stateManager = G4StateManager::GetStateManager(); G4ApplicationState currentState = stateManager->GetCurrentState(); - if(currentState!=PreInit && currentState!=Idle) + if(currentState!=G4State_PreInit && currentState!=G4State_Idle) { G4cerr << "Illegal application state - " << "G4RunManager::Initialize() ignored." << G4endl; return; } - stateManager->SetNewState(Init); + stateManager->SetNewState(G4State_Init); if(!geometryInitialized) InitializeGeometry(); if(!physicsInitialized) InitializePhysics(); if(!cutoffInitialized) InitializeCutOff(); - stateManager->SetNewState(Idle); + stateManager->SetNewState(G4State_Idle); if(!initializedAtLeastOnce) initializedAtLeastOnce = true; } @@ -393,15 +409,19 @@ void G4RunManager::InitializeCutOff() cutoffInitialized = true; } -void G4RunManager::AbortRun() +void G4RunManager::AbortRun(G4bool softAbort) { // This method is valid only for GeomClosed or EventProc state G4ApplicationState currentState = G4StateManager::GetStateManager()->GetCurrentState(); - if(currentState==GeomClosed || currentState==EventProc) + if(currentState==G4State_GeomClosed || currentState==G4State_EventProc) { runAborted = true; - if(currentState==EventProc) eventManager->AbortCurrentEvent(); + if(currentState==G4State_EventProc && !softAbort) + { + currentEvent->SetEventAborted(); + eventManager->AbortCurrentEvent(); + } } else { @@ -409,6 +429,22 @@ void G4RunManager::AbortRun() } } +void G4RunManager::AbortEvent() +{ + // This method is valid only for EventProc state + G4ApplicationState currentState = + G4StateManager::GetStateManager()->GetCurrentState(); + if(currentState==G4State_EventProc) + { + currentEvent->SetEventAborted(); + eventManager->AbortCurrentEvent(); + } + else + { + G4cerr << "Event is not in progress. AbortEevnt() ignored." << G4endl; + } +} + void G4RunManager::DefineWorldVolume(G4VPhysicalVolume* worldVol) { // set the world volume to the Navigator @@ -423,6 +459,33 @@ void G4RunManager::DefineWorldVolume(G4VPhysicalVolume* worldVol) geometryNeedsToBeClosed = true; } +void G4RunManager::ResetNavigator() const +{ + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + + if(!initializedAtLeastOnce) + { + G4cerr << " Geant4 kernel should be initialized" << G4endl; + G4cerr << " Navigator is not touched..." << G4endl; + return; + } + + if( currentState != G4State_Idle ) + { + G4cerr << " Geant4 kernel not in Idle state" << G4endl; + G4cerr << " Navigator is not touched..." << G4endl; + return; + } + + // We have to tweak the navigator's state in case a geometry has been modified between runs + // By the following call we ensure that navigator's state is reset properly + G4ThreeVector center(0,0,0); + G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking() + ->LocateGlobalPointAndSetup(center,0,false); +} + void G4RunManager::rndmSaveThisRun() { G4int runNumber = runIDCounter; diff --git a/source/run/src/G4RunMessenger.cc b/source/run/src/G4RunMessenger.cc index 613af44e7e..db463eef8c 100644 --- a/source/run/src/G4RunMessenger.cc +++ b/source/run/src/G4RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunMessenger.cc,v 1.10 2001/11/23 16:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RunMessenger.cc,v 1.12 2002/12/04 21:52:40 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4RunMessenger.hh" @@ -46,7 +46,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) initCmd = new G4UIcmdWithoutParameter("/run/initialize",this); initCmd->SetGuidance("Initialize G4 kernel."); - initCmd->AvailableForStates(PreInit,Idle), + initCmd->AvailableForStates(G4State_PreInit,G4State_Idle), beamOnCmd = new G4UIcommand("/run/beamOn",this); beamOnCmd->SetGuidance("Start a Run."); @@ -61,7 +61,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) beamOnCmd->SetGuidance("If the third argument (nSelect) is given, the"); beamOnCmd->SetGuidance("macro file will be executed only for the first"); beamOnCmd->SetGuidance("nSelect events."); - beamOnCmd->AvailableForStates(PreInit,Idle); + beamOnCmd->AvailableForStates(G4State_PreInit,G4State_Idle); G4UIparameter* p1 = new G4UIparameter("numberOfEvent",'i',true); p1->SetDefaultValue(1); p1->SetParameterRange("numberOfEvent > 0"); @@ -90,7 +90,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) optCmd->SetGuidance("GEANT4 is initialized with this flag as TRUE."); optCmd->SetParameterName("optimizeFlag",true); optCmd->SetDefaultValue(true); - optCmd->AvailableForStates(PreInit,Idle); + optCmd->AvailableForStates(G4State_PreInit,G4State_Idle); brkBoECmd = new G4UIcmdWithABool("/run/breakAtBeginOfEvent",this); brkBoECmd->SetGuidance("Set a break point at the begining of every event."); @@ -102,23 +102,31 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) brkEoECmd->SetParameterName("flag",true); brkEoECmd->SetDefaultValue(true); - abortCmd = new G4UIcmdWithoutParameter("/run/abort",this); + abortCmd = new G4UIcmdWithABool("/run/abort",this); abortCmd->SetGuidance("Abort current run processing."); - abortCmd->AvailableForStates(GeomClosed,EventProc); + abortCmd->SetGuidance("If softAbort is false (default), currently processing event will be immediately aborted,"); + abortCmd->SetGuidance("while softAbort is true, abortion occurs after processing the current event."); + abortCmd->AvailableForStates(G4State_GeomClosed,G4State_EventProc); + abortCmd->SetParameterName("softAbort",true); + abortCmd->SetDefaultValue(false); + + abortEventCmd = new G4UIcmdWithoutParameter("/run/abortCurrentEvent",this); + abortEventCmd->SetGuidance("Abort currently processing event."); + abortEventCmd->AvailableForStates(G4State_EventProc); geomCmd = new G4UIcmdWithoutParameter("/run/geometryModified",this); geomCmd->SetGuidance("Force geometry to be closed again."); geomCmd->SetGuidance("This command must be applied"); geomCmd->SetGuidance(" if geometry has been modified after the"); geomCmd->SetGuidance(" first initialization (or BeamOn)."); - geomCmd->AvailableForStates(PreInit,Idle), + geomCmd->AvailableForStates(G4State_PreInit,G4State_Idle); cutCmd = new G4UIcmdWithoutParameter("/run/cutoffModified",this); cutCmd->SetGuidance("Force closssection tables to be calculated again."); cutCmd->SetGuidance("This command must be applied"); cutCmd->SetGuidance(" if cutoff value(s) have been modified after the"); cutCmd->SetGuidance(" first initialization (or BeamOn)."); - cutCmd->AvailableForStates(PreInit,Idle); + cutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); randomDirectory = new G4UIdirectory("/random/"); randomDirectory->SetGuidance("Random number status control commands."); @@ -128,7 +136,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) randDirCmd->SetGuidance("Directory must be creates before storing the files."); randDirCmd->SetParameterName("fileName",true); randDirCmd->SetDefaultValue("./"); - randDirCmd->AvailableForStates(PreInit,Idle,GeomClosed); + randDirCmd->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); savingFlagCmd = new G4UIcmdWithABool("/random/setSavingFlag",this); savingFlagCmd->SetGuidance("The randomNumberStatus will be saved at :"); @@ -139,11 +147,11 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) saveThisRunCmd = new G4UIcmdWithoutParameter("/random/saveThisRun",this); saveThisRunCmd->SetGuidance("copy currentRun.rndm to runXXX.rndm"); - saveThisRunCmd->AvailableForStates(Idle,GeomClosed,EventProc); + saveThisRunCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); saveThisEventCmd = new G4UIcmdWithoutParameter("/random/saveThisEvent",this); saveThisEventCmd->SetGuidance("copy currentEvent.rndm to runXXXevtYYY.rndm"); - saveThisEventCmd->AvailableForStates(EventProc); + saveThisEventCmd->AvailableForStates(G4State_EventProc); restoreRandCmd = new G4UIcmdWithAString("/random/resetEngineFrom",this); restoreRandCmd->SetGuidance("Reset the status of the rndm engine from a file."); @@ -153,7 +161,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) " /random/setDirectoryName."); restoreRandCmd->SetParameterName("fileName",true); restoreRandCmd->SetDefaultValue("currentRun.rndm"); - restoreRandCmd->AvailableForStates(PreInit,Idle,GeomClosed); + restoreRandCmd->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); //old commands for the rndm engine status handling // @@ -162,7 +170,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) randDirOld->SetGuidance("Directory must be creates before storing the files."); randDirOld->SetParameterName("fileName",true); randDirOld->SetDefaultValue("./"); - randDirOld->AvailableForStates(PreInit,Idle,GeomClosed); + randDirOld->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); storeRandOld = new G4UIcmdWithAnInteger("/run/storeRandomNumberStatus",this); storeRandOld->SetGuidance("The randomNumberStatus will be saved at :"); @@ -179,7 +187,7 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) " /random/setDirectoryName."); restoreRandOld->SetParameterName("fileName",true); restoreRandOld->SetDefaultValue("currentRun.rndm"); - restoreRandOld->AvailableForStates(PreInit,Idle,GeomClosed); + restoreRandOld->AvailableForStates(G4State_PreInit,G4State_Idle,G4State_GeomClosed); } @@ -191,6 +199,7 @@ G4RunMessenger::~G4RunMessenger() delete brkBoECmd; delete brkEoECmd; delete abortCmd; + delete abortEventCmd; delete initCmd; delete geomCmd; delete cutCmd; @@ -228,7 +237,9 @@ void G4RunMessenger::SetNewValue(G4UIcommand * command,G4String newValue) else if( command==brkEoECmd ) { G4UImanager::GetUIpointer()->SetPauseAtEndOfEvent(brkEoECmd->GetNewBoolValue(newValue)); } else if( command==abortCmd ) - { runManager->AbortRun(); } + { runManager->AbortRun(abortCmd->GetNewBoolValue(newValue)); } + else if( command==abortEventCmd ) + { runManager->AbortEvent(); } else if( command==initCmd ) { runManager->Initialize(); } else if( command==geomCmd ) diff --git a/source/run/src/G4UserPhysicsListMessenger.cc b/source/run/src/G4UserPhysicsListMessenger.cc index f839550388..f93c7bc80e 100644 --- a/source/run/src/G4UserPhysicsListMessenger.cc +++ b/source/run/src/G4UserPhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserPhysicsListMessenger.cc,v 1.10 2001/10/11 13:44:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4UserPhysicsListMessenger.cc,v 1.11 2002/12/04 21:52:40 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -71,7 +71,7 @@ G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pPart setCutCmd->SetRange("cut >0.0"); setCutCmd->SetUnitCandidates("m cm mm microm"); setCutCmd->SetDefaultUnit("mm"); - setCutCmd->AvailableForStates(PreInit,Idle); + setCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); // /run/particle/DumpList command dumpListCmd = new G4UIcmdWithoutParameter("/run/particle/dumpList",this); @@ -85,21 +85,21 @@ G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pPart dumpCutValuesCmd->SetGuidance(" enter all for all particles"); dumpCutValuesCmd->SetParameterName("particle", true); dumpCutValuesCmd->SetDefaultValue("table"); - dumpCutValuesCmd->AvailableForStates(Idle,GeomClosed,EventProc); + dumpCutValuesCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc); // /run/particle/addProcManager command addProcManCmd = new G4UIcmdWithAString("/run/particle/addProcManager", this); addProcManCmd->SetGuidance("add process manager to specified particle type"); addProcManCmd->SetParameterName("particleType", true); addProcManCmd->SetDefaultValue(""); - addProcManCmd->AvailableForStates(Init,Idle,GeomClosed,EventProc); + addProcManCmd->AvailableForStates(G4State_Init,G4State_Idle,G4State_GeomClosed,G4State_EventProc); // /run/particle/buildPhysicsTable command buildPTCmd = new G4UIcmdWithAString("/run/particle/buildPhysicsTable", this); buildPTCmd->SetGuidance("build physics table of specified particle type"); buildPTCmd->SetParameterName("particleType", true); buildPTCmd->SetDefaultValue(""); - buildPTCmd->AvailableForStates(Init,Idle,GeomClosed,EventProc); + buildPTCmd->AvailableForStates(G4State_Init,G4State_Idle,G4State_GeomClosed,G4State_EventProc); // /run/particle/storePhysicsTable command storeCmd = new G4UIcmdWithAString("/run/particle/storePhysicsTable",this); @@ -107,7 +107,7 @@ G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pPart storeCmd->SetGuidance(" Enter directory name"); storeCmd->SetParameterName("dirName",true); storeCmd->SetDefaultValue(""); - storeCmd->AvailableForStates(Idle); + storeCmd->AvailableForStates(G4State_Idle); // /run/particle/retrievePhysicsTable command retrieveCmd = new G4UIcmdWithAString("/run/particle/retrievePhysicsTable",this); @@ -115,7 +115,7 @@ G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pPart retrieveCmd->SetGuidance(" Enter directory name or OFF to switch off"); retrieveCmd->SetParameterName("dirName",true); retrieveCmd->SetDefaultValue(""); - retrieveCmd->AvailableForStates(PreInit,Idle); + retrieveCmd->AvailableForStates(G4State_PreInit,G4State_Idle); // /run/particle/setStoredInAscii command asciiCmd = new G4UIcmdWithAnInteger("/run/particle/setStoredInAscii",this); @@ -123,7 +123,7 @@ G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pPart asciiCmd->SetGuidance(" Enter 0(binary) or 1(ascii)"); asciiCmd->SetParameterName("ascii",true); asciiCmd->SetDefaultValue(0); - asciiCmd->AvailableForStates(PreInit,Idle); + asciiCmd->AvailableForStates(G4State_PreInit,G4State_Idle); asciiCmd->SetRange("ascii ==0 || ascii ==1"); //Commnad /run/particle/applyCuts command @@ -138,7 +138,7 @@ G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pPart param = new G4UIparameter("Particle",'s',true); param->SetDefaultValue("all"); applyCutsCmd->SetParameter(param); - applyCutsCmd->AvailableForStates(PreInit,Init,Idle); + applyCutsCmd->AvailableForStates(G4State_PreInit,G4State_Init,G4State_Idle); } G4UserPhysicsListMessenger::~G4UserPhysicsListMessenger() diff --git a/source/run/src/G4UserRunAction.cc b/source/run/src/G4UserRunAction.cc index 8a1541ce97..696d079783 100644 --- a/source/run/src/G4UserRunAction.cc +++ b/source/run/src/G4UserRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserRunAction.cc,v 1.4 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4UserRunAction.hh" diff --git a/source/run/src/G4VModularPhysicsList.cc b/source/run/src/G4VModularPhysicsList.cc index ba7fece663..be4b08269e 100644 --- a/source/run/src/G4VModularPhysicsList.cc +++ b/source/run/src/G4VModularPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G4VModularPhysicsList.cc,v 1.2 2002/05/29 12:11:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4VPersistencyManager.cc b/source/run/src/G4VPersistencyManager.cc index 210ab8fbbe..be41976dd6 100644 --- a/source/run/src/G4VPersistencyManager.cc +++ b/source/run/src/G4VPersistencyManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPersistencyManager.cc,v 1.4 2001/07/13 15:57:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VPersistencyManager.hh" diff --git a/source/run/src/G4VUserDetectorConstruction.cc b/source/run/src/G4VUserDetectorConstruction.cc index 1b36d97525..fca6858fcd 100644 --- a/source/run/src/G4VUserDetectorConstruction.cc +++ b/source/run/src/G4VUserDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserDetectorConstruction.cc,v 1.3 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VUserDetectorConstruction.hh" diff --git a/source/run/src/G4VUserPhysicsList.cc b/source/run/src/G4VUserPhysicsList.cc index b585a1f0e5..bb6470b794 100644 --- a/source/run/src/G4VUserPhysicsList.cc +++ b/source/run/src/G4VUserPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserPhysicsList.cc,v 1.26 2001/10/23 02:36:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4VUserPrimaryGeneratorAction.cc b/source/run/src/G4VUserPrimaryGeneratorAction.cc index 09b0166a8b..f55cd9a254 100644 --- a/source/run/src/G4VUserPrimaryGeneratorAction.cc +++ b/source/run/src/G4VUserPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryGeneratorAction.cc,v 1.3 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VUserPrimaryGeneratorAction.hh" diff --git a/source/track/History b/source/track/History index f9a1f62d00..358911b86a 100644 --- a/source/track/History +++ b/source/track/History @@ -1,4 +1,4 @@ -$Id: History,v 1.45 2002/02/12 01:48:52 kurasige Exp $ +$Id: History,v 1.49 2002/12/04 22:45:58 tsasaki Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,22 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec. 04, 02 T.Sasaki(track-V04-01-03) +- Initial value for fCharge is given in the constuctor + of G4StepPoint. +Nov. 20, 02 G.Cosmo (track-V04-01-02) +- Patched access to public static data in G4VParticleChange. + Added accessors to be used in the kernel to allow porting on + Windows DLLs. + +Nov. 1, 02 J.Generowicz (track-V04-01-01) +- Added accessors to auxiliary point vector, in both + G4Step and G4ParticleChangeForTransport + +Oct. 31, 02 T.Sasaki (track-V04-01-00) +- Added StronglyForced flag to G4ForceCondition +- set fUndefined for the StepStatus in PostStepPoint after CopyPostToPre + Feb. 09 ,02 H.Kurashige (track-V04-00-02) - Modify G4Track::GetVelocity to get better performance for massless particles diff --git a/source/track/include/G4ForceCondition.hh b/source/track/include/G4ForceCondition.hh index e595bf36e0..54b6a0f46d 100644 --- a/source/track/include/G4ForceCondition.hh +++ b/source/track/include/G4ForceCondition.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ForceCondition.hh,v 1.3 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ForceCondition.hh,v 1.4 2002/10/31 23:41:52 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -47,16 +47,20 @@ enum G4ForceCondition ///////////////////// { + InActivated, + // This PostStepDoit is inactivated by a user Forced, - // This PostStepDoIt is forced to invoke. + // This PostStepDoIt is forced to invoke if particle is not a state of StopAndKill. NotForced, // This PostStepDoIt is not forced to invoke. Conditionally, // This PostStepDoIt is forced to invoke only when corresponding // AlongStepDoIt limits the Step. - ExclusivelyForced + ExclusivelyForced, // Only this PostStepDoIt (or AtRestDoIt) is exclusively forced // to invoke - all other DoIt including AlongStepDoIts are ignored. + StronglyForced + // This PostStepDoIt is really forced to invoke, anyway. }; #endif diff --git a/source/track/include/G4GPILSelection.hh b/source/track/include/G4GPILSelection.hh index f6ddcbd4cf..bd49e31af3 100644 --- a/source/track/include/G4GPILSelection.hh +++ b/source/track/include/G4GPILSelection.hh @@ -22,7 +22,7 @@ // // // $Id: G4GPILSelection.hh,v 1.3 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4ParticleChange.hh b/source/track/include/G4ParticleChange.hh index 1e3c098f7c..dc8b9adc5f 100644 --- a/source/track/include/G4ParticleChange.hh +++ b/source/track/include/G4ParticleChange.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.hh,v 1.9 2001/11/21 14:05:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChange.icc b/source/track/include/G4ParticleChange.icc index 4e7831ec80..257f0990c2 100644 --- a/source/track/include/G4ParticleChange.icc +++ b/source/track/include/G4ParticleChange.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.icc,v 1.9 2001/10/20 08:07:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // inline diff --git a/source/track/include/G4ParticleChangeForDecay.hh b/source/track/include/G4ParticleChangeForDecay.hh index 2a33a0ef83..26981c806e 100644 --- a/source/track/include/G4ParticleChangeForDecay.hh +++ b/source/track/include/G4ParticleChangeForDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForDecay.hh,v 1.5 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForLoss.hh b/source/track/include/G4ParticleChangeForLoss.hh index 6ed42597fd..8df101a330 100644 --- a/source/track/include/G4ParticleChangeForLoss.hh +++ b/source/track/include/G4ParticleChangeForLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForLoss.hh,v 1.4 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForMSC.icc b/source/track/include/G4ParticleChangeForMSC.icc index cbb434af35..f2f3c60648 100644 --- a/source/track/include/G4ParticleChangeForMSC.icc +++ b/source/track/include/G4ParticleChangeForMSC.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForMSC.icc,v 1.4 2001/07/11 10:08:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/track/include/G4ParticleChangeForRadDecay.hh b/source/track/include/G4ParticleChangeForRadDecay.hh index b389c421e5..c97a2d8fbe 100644 --- a/source/track/include/G4ParticleChangeForRadDecay.hh +++ b/source/track/include/G4ParticleChangeForRadDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForRadDecay.hh,v 1.4 2001/10/24 05:41:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForTransport.hh b/source/track/include/G4ParticleChangeForTransport.hh index 5d9c1789a6..b9c07925d1 100644 --- a/source/track/include/G4ParticleChangeForTransport.hh +++ b/source/track/include/G4ParticleChangeForTransport.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleChangeForTransport.hh,v 1.8 2001/10/22 04:19:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParticleChangeForTransport.hh,v 1.9 2002/11/01 15:55:30 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -46,6 +46,7 @@ #include "G4TouchableHandle.hh" #include "G4ParticleChange.hh" + class G4ParticleChangeForTransport: public G4ParticleChange { public: @@ -105,24 +106,25 @@ class G4ParticleChangeForTransport: public G4ParticleChange // The flag which is set if mometum is changed in this stepi G4Material* theMaterialChange; // The material where given track currently locates + + // Prototyping implementation of smooth representation of curved + // trajectories. (jacek 30/10/2002) +public: + // Auxiliary points are ThreeVectors for now; change to + // G4AuxiliaryPoints or some such (jacek 30/10/2002) + void SetPointerToVectorOfAuxiliaryPoints( G4std::vector* theNewVectorPointer ) { + fpVectorOfAuxiliaryPointsPointer = theNewVectorPointer; + } + G4std::vector* GetPointerToVectorOfAuxiliaryPoints() const { + return fpVectorOfAuxiliaryPointsPointer; + } +private: + // Explicity including the word "Pointer" in the name as I keep + // forgetting the * (jacek 30/10/2002) + G4std::vector* fpVectorOfAuxiliaryPointsPointer; + }; #include "G4ParticleChangeForTransport.icc" #endif - - - - - - - - - - - - - - - - diff --git a/source/track/include/G4ParticleChangeForTransport.icc b/source/track/include/G4ParticleChangeForTransport.icc index c92762f2d8..39bb866e7c 100644 --- a/source/track/include/G4ParticleChangeForTransport.icc +++ b/source/track/include/G4ParticleChangeForTransport.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.icc,v 1.7 2001/10/22 04:19:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // inline diff --git a/source/track/include/G4Step.hh b/source/track/include/G4Step.hh index ba14c38f58..15a5fb5e32 100644 --- a/source/track/include/G4Step.hh +++ b/source/track/include/G4Step.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Step.hh,v 1.8 2001/07/11 10:08:36 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Step.hh,v 1.9 2002/11/01 15:55:30 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -66,6 +66,7 @@ class G4Polyline; // Forward declaration. class G4Track; // Forward declaration. + //////////// class G4Step //////////// @@ -152,19 +153,27 @@ class G4Step // G4SteppingControl fpSteppingControlFlag; // A flag to control SteppingManager behavier from process + + + // Prototyping implementation of smooth representation of curved + // trajectories. (jacek 30/10/2002) +public: + // Auxiliary points are ThreeVectors for now; change to + // G4VAuxiliaryPoints or some such (jacek 30/10/2002) + void SetPointerToVectorOfAuxiliaryPoints( G4std::vector* theNewVectorPointer ) { + fpVectorOfAuxiliaryPointsPointer = theNewVectorPointer; + } + G4std::vector* GetPointerToVectorOfAuxiliaryPoints() const { + return fpVectorOfAuxiliaryPointsPointer; + } +private: + // Explicity including the word "Pointer" in the name as I keep + // forgetting the * (jacek 30/10/2002) + G4std::vector* fpVectorOfAuxiliaryPointsPointer; + }; #include "G4Step.icc" #endif - - - - - - - - - - diff --git a/source/track/include/G4Step.icc b/source/track/include/G4Step.icc index ef308a8c15..9bf3734c4e 100644 --- a/source/track/include/G4Step.icc +++ b/source/track/include/G4Step.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Step.icc,v 1.7 2001/10/22 04:19:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Step.icc,v 1.8 2002/10/31 23:41:52 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -136,6 +136,7 @@ inline void G4Step::CopyPostToPreStepPoint( ) { *(fpPreStepPoint) = *(fpPostStepPoint); + fpPostStepPoint->SetStepStatus(fUndefined); } diff --git a/source/track/include/G4StepPoint.hh b/source/track/include/G4StepPoint.hh index f42ba9aa04..eae6e26c99 100644 --- a/source/track/include/G4StepPoint.hh +++ b/source/track/include/G4StepPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.hh,v 1.9 2001/10/22 04:19:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4StepPoint.icc b/source/track/include/G4StepPoint.icc index 8448ba25c1..30be23c91c 100644 --- a/source/track/include/G4StepPoint.icc +++ b/source/track/include/G4StepPoint.icc @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.icc,v 1.5 2001/10/22 04:19:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // inline const G4ThreeVector& G4StepPoint::GetPosition() const diff --git a/source/track/include/G4StepStatus.hh b/source/track/include/G4StepStatus.hh index 1dec912cdb..f02ab80fc9 100644 --- a/source/track/include/G4StepStatus.hh +++ b/source/track/include/G4StepStatus.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepStatus.hh,v 1.3 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4SteppingControl.hh b/source/track/include/G4SteppingControl.hh index 04db46701f..f0ffec958d 100644 --- a/source/track/include/G4SteppingControl.hh +++ b/source/track/include/G4SteppingControl.hh @@ -22,7 +22,7 @@ // // // $Id: G4SteppingControl.hh,v 1.3 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.hh b/source/track/include/G4Track.hh index 61a42224a0..0437ebe2fc 100644 --- a/source/track/include/G4Track.hh +++ b/source/track/include/G4Track.hh @@ -22,7 +22,7 @@ // // // $Id: G4Track.hh,v 1.15 2001/12/14 09:59:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.icc b/source/track/include/G4Track.icc index 4eac2be7e6..a665d8287a 100644 --- a/source/track/include/G4Track.icc +++ b/source/track/include/G4Track.icc @@ -22,7 +22,7 @@ // // // $Id: G4Track.icc,v 1.9 2001/12/13 15:31:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //----------------------------------------------------------------- // Definitions of inline functions diff --git a/source/track/include/G4TrackFastVector.hh b/source/track/include/G4TrackFastVector.hh index f03459a7b6..549e5006d4 100644 --- a/source/track/include/G4TrackFastVector.hh +++ b/source/track/include/G4TrackFastVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackFastVector.hh,v 1.4 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4TrackStatus.hh b/source/track/include/G4TrackStatus.hh index 8584333c7a..40478e2cac 100644 --- a/source/track/include/G4TrackStatus.hh +++ b/source/track/include/G4TrackStatus.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackStatus.hh,v 1.3 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4VParticleChange.hh b/source/track/include/G4VParticleChange.hh index cfafd2d7d4..d7a9bab748 100644 --- a/source/track/include/G4VParticleChange.hh +++ b/source/track/include/G4VParticleChange.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticleChange.hh,v 1.7 2001/11/13 05:13:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VParticleChange.hh,v 1.8 2002/11/20 16:52:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // ------------------------------------------------------------ @@ -239,7 +239,11 @@ class G4VParticleChange void ClearDebugFlag(); void SetDebugFlag(); G4bool GetDebugFlag() const; - + + protected: + const G4double GetAccuracyForWarning() const; + const G4double GetAccuracyForException() const; + protected: G4bool debugFlag; @@ -259,19 +263,3 @@ class G4VParticleChange #include "G4VParticleChange.icc" #endif - - - - - - - - - - - - - - - - diff --git a/source/track/include/G4VParticleChange.icc b/source/track/include/G4VParticleChange.icc index 3586f5c44c..66cbffb29b 100644 --- a/source/track/include/G4VParticleChange.icc +++ b/source/track/include/G4VParticleChange.icc @@ -22,7 +22,7 @@ // // // $Id: G4VParticleChange.icc,v 1.9 2001/12/24 05:14:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //---------------------------------------------------------------- // Virtual methods for updating G4Step diff --git a/source/track/include/G4VUserTrackInformation.hh b/source/track/include/G4VUserTrackInformation.hh index 6a54aa78ea..c489dd2ac4 100644 --- a/source/track/include/G4VUserTrackInformation.hh +++ b/source/track/include/G4VUserTrackInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserTrackInformation.hh,v 1.3 2001/07/11 10:08:38 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChange.cc b/source/track/src/G4ParticleChange.cc index 6fbeee01fc..42281266ea 100644 --- a/source/track/src/G4ParticleChange.cc +++ b/source/track/src/G4ParticleChange.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.cc,v 1.21 2001/12/24 05:14:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForDecay.cc b/source/track/src/G4ParticleChangeForDecay.cc index 8514b97a1a..524bd9e9e0 100644 --- a/source/track/src/G4ParticleChangeForDecay.cc +++ b/source/track/src/G4ParticleChangeForDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForDecay.cc,v 1.7 2001/08/16 08:17:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForLoss.cc b/source/track/src/G4ParticleChangeForLoss.cc index e56e0984ba..0c94e8a6cf 100644 --- a/source/track/src/G4ParticleChangeForLoss.cc +++ b/source/track/src/G4ParticleChangeForLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForLoss.cc,v 1.6 2001/07/11 10:08:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForMSC.cc b/source/track/src/G4ParticleChangeForMSC.cc index ed62da2ca8..6aa048583e 100644 --- a/source/track/src/G4ParticleChangeForMSC.cc +++ b/source/track/src/G4ParticleChangeForMSC.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForMSC.cc,v 1.8 2001/08/16 08:17:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForTransport.cc b/source/track/src/G4ParticleChangeForTransport.cc index 99ae2be156..c1a5d1b9b5 100644 --- a/source/track/src/G4ParticleChangeForTransport.cc +++ b/source/track/src/G4ParticleChangeForTransport.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleChangeForTransport.cc,v 1.11 2001/10/22 04:19:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ParticleChangeForTransport.cc,v 1.12 2002/11/01 15:55:45 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -109,6 +109,10 @@ G4Step* G4ParticleChangeForTransport::UpdateStepForAtRest(G4Step* pStep) G4Step* G4ParticleChangeForTransport::UpdateStepForAlongStep(G4Step* pStep) { + // Smooth curved tajectory representation: let the Step know about + // the auxiliary trajectory points (jacek 30/10/2002) + pStep->SetPointerToVectorOfAuxiliaryPoints(fpVectorOfAuxiliaryPointsPointer); + // copy of G4ParticleChange::UpdateStepForAlongStep // i.e. no effect for touchable diff --git a/source/track/src/G4Step.cc b/source/track/src/G4Step.cc index 6674a2d39b..206099f331 100644 --- a/source/track/src/G4Step.cc +++ b/source/track/src/G4Step.cc @@ -22,7 +22,7 @@ // // // $Id: G4Step.cc,v 1.5 2001/07/11 10:08:39 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4StepPoint.cc b/source/track/src/G4StepPoint.cc index 79cd20eeba..da58919204 100644 --- a/source/track/src/G4StepPoint.cc +++ b/source/track/src/G4StepPoint.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StepPoint.cc,v 1.7 2001/08/16 08:17:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4StepPoint.cc,v 1.8 2002/12/04 22:46:00 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -46,7 +46,7 @@ ////////////////////////// G4StepPoint::G4StepPoint(): ////////////////////////// - fpTouchable(0),fpMaterial(0),fpProcessDefinedStep(0) + fpTouchable(0),fpMaterial(0),fpProcessDefinedStep(0),fCharge(0.) { } diff --git a/source/track/src/G4Track.cc b/source/track/src/G4Track.cc index b86ceb6267..83007dd471 100644 --- a/source/track/src/G4Track.cc +++ b/source/track/src/G4Track.cc @@ -22,7 +22,7 @@ // // // $Id: G4Track.cc,v 1.18 2002/02/12 01:48:53 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4VParticleChange.cc b/source/track/src/G4VParticleChange.cc index 575b5087da..3a8c5e1b83 100644 --- a/source/track/src/G4VParticleChange.cc +++ b/source/track/src/G4VParticleChange.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticleChange.cc,v 1.10 2001/12/14 09:59:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VParticleChange.cc,v 1.11 2002/11/20 16:52:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // -------------------------------------------------------------- @@ -242,22 +242,12 @@ G4bool G4VParticleChange::CheckIt(const G4Track& aTrack) return itsOK; } +const G4double G4VParticleChange::GetAccuracyForWarning() const +{ + return accuracyForWarning; +} - - - - - - - - - - - - - - - - - - +const G4double G4VParticleChange::GetAccuracyForException() const +{ + return accuracyForException; +} diff --git a/source/tracking/History b/source/tracking/History index 1b4490c010..08c521b08b 100644 --- a/source/tracking/History +++ b/source/tracking/History @@ -1,4 +1,4 @@ -$Id: History,v 1.34 2002/04/25 20:21:13 asaim Exp $ +$Id: History,v 1.58 2002/12/12 16:26:55 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,88 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 12, 2002, G.Cosmo (tracking-V04-01-15) +- G4SteppingVerbose.cc: undo change introduced in tag "tracking-V04-01-07", where + call to CopyState() in TrackingStarted() method was commented out, probably by + mistake (?). + The patch fixes the crash observed while running largeN test on test14. + +Dec 12, 2002, G.Cosmo (tracking-V04-01-14) +- Corrected problem introduced in the last tag and concerning the usage of abs() + (not defined of the std namespace!), causing compilation error on Windows. + +Dec 6, 2002, J.Allison (tracking-V04-01-13) +- Last minute fix to G4VTrajectory::DrawTrajectory. + +Dec 6, 2002, J.Allison (tracking-V04-01-12) +- Fixed unprotected pointer in G4SmoothTrajectoryPoint::CreateAttValues. + +Dec 4, 2002, T.Sasaki (tracking-V04-01-11) +- static Get/SetInstnce methods has moved to .cc from .hh. + +Nov 18, 2002, M.Asai (tracking-V04-01-10) +- Tagged. + +Nov 11, 2002, J.Allison +- Restored G4SmoothTrajectory::DrawTrajectory. + +Nov 8, 2002, M.Asai (tracking-V04-01-09) +- Tagged for Geant4 5.0 release + +Nov 8, 2002 J.Generowicz +- Bodies introduced into SmoothTrajectory(Point) classes + +Nov 8, 2002, J.Allison +- Implemented default Show/DrawTrajectory in G4VTrajectory. +- Augmented GetAttDefs and CreateAttValues in G4(Smooth)Trajectory(Point). + +Nov 07, 2002, T,Sasaki (tracking-V04-01-07, tracking-V04-01-08) +- Fix for the problem with optical processes +Nov 05, 2002, T,Sasaki (tracking-V04-01-06) +- clean up G4SteppingManager.hh and G4VSterppinVerbose.cc + +Nov 05, 2002, M.Asai (tracking-V04-01-05) +- tagged. + +Nov 05, 2002, J.Generowicz +- Renamed aTrajectory(Point)Allocator to aSmoothTrajectory(Point)Allocator + in the SmoothTrajectory(Point) classes. + +Nov 01, 2002, M.Asai (tracking-V04-01-04) +- Merge tracking-V04-01-03 and tracking-V04-01-02. + +Nov 1, 2002, J.Allison (tracking-V04-01-03 - does not include V04-01-02) +- Canonical tag of traj03 (see below). + +Oct 31, 02 T. Sasaki (tracking-V04-01-02) +- G4SteppingManager.hh/cc + o new ForceCondition flag StronglyForced was implemented + +Oct 28, 2002, J.Allison (traj03) +- Changed GetAttDefs return signature to map. +- Changed GetAttValues to CreateAttValues. +- Improved descriptions. + +Oct 24, 02 J.Allison (traj02) +- Implemented simple versions of G4Trajectory::GetAttDefs/Values. + +Oct 16, 02 J.Allison (traj01) +- Added GetAttDefs to G4VTrajectory, etc., and small corrections. + +Sep 03, 02 M.Asai +- Start working for trajectory related issues + o Modification made : G4VTrajectory, G4VTrajectoryPoint, G4Trajectory, G4TrajectoryPoint + o Introduced : G4SmoothTrajectory, G4SmoothTrajectoryPoint + +Aug 21, 02 M.Asai (tracking-V04-01-01) +- G4TrackingManager.cc + o Set fpTrajectory pointer to zero when the trajectory is deleted. + +Aug 13, 02 M.Asai (tracking-V04-01-00) +- G4TrackingManager.hh, G4TrackingManager.cc + o Re-implement EventAborted() method to ensure this command + properly works even at the stepping phase. + Apr 25, 02 M.Asai (tracking-V04-00-05) - G4TrackingManager.cc o Implement EventAborted() method diff --git a/source/tracking/include/G4SmoothTrajectory.hh b/source/tracking/include/G4SmoothTrajectory.hh new file mode 100644 index 0000000000..7b72f63d67 --- /dev/null +++ b/source/tracking/include/G4SmoothTrajectory.hh @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * 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: G4SmoothTrajectory.hh,v 1.4 2002/11/05 16:15:50 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +//--------------------------------------------------------------- +// +// G4SmoothTrajectory.hh +// +// class description: +// This class represents the trajectory of a particle tracked. +// It includes information of +// 1) List of trajectory points which compose the trajectory, +// 2) static information of particle which generated the +// trajectory, +// 3) trackID and parent particle ID of the trajectory, +// 4) Auxiliary points will be associated to G4SmoothTrajectoryPoint +// to assist drawing smoothly curved trajectory. +// +// --------------------------------------------------------------- + +class G4SmoothTrajectory; + +#ifndef G4SmoothTrajectory_h +#define G4SmoothTrajectory_h 1 + +#include "G4VTrajectory.hh" +#include "G4Allocator.hh" +#include // Include from 'system' +#include "G4ios.hh" // Include from 'system' +#include "g4std/vector" // G4RWTValOrderedVector +#include "globals.hh" // Include from 'global' +#include "G4ParticleDefinition.hh" // Include from 'particle+matter' +#include "G4SmoothTrajectoryPoint.hh" // Include from 'tracking' +#include "G4Track.hh" +#include "G4Step.hh" + +class G4Polyline; // Forward declaration. + +typedef G4std::vector TrajectoryPointContainer; +class G4SmoothTrajectory : public G4VTrajectory +{ + +//-------- +public: // with description +//-------- + +// Constructor/Destrcutor + + G4SmoothTrajectory(); + + G4SmoothTrajectory(const G4Track* aTrack); + G4SmoothTrajectory(G4SmoothTrajectory &); + virtual ~G4SmoothTrajectory(); + +// Operators + inline void* operator new(size_t); + inline void operator delete(void*); + inline int operator == (const G4SmoothTrajectory& right) const + {return (this==&right);} + +// Get/Set functions + inline G4int GetTrackID() const + { return fTrackID; } + inline G4int GetParentID() const + { return fParentID; } + inline G4String GetParticleName() const + { return ParticleName; } + inline G4double GetCharge() const + { return PDGCharge; } + inline G4int GetPDGEncoding() const + { return PDGEncoding; } + inline G4ThreeVector GetInitialMomentum() const + { return initialMomentum; } + +// Other member functions + virtual void ShowTrajectory(G4std::ostream& os=G4cout) const; + virtual void DrawTrajectory(G4int i_mode=0) const; + virtual void AppendStep(const G4Step* aStep); + virtual int GetPointEntries() const { return positionRecord->size(); } + virtual G4VTrajectoryPoint* GetPoint(G4int i) const + { return (*positionRecord)[i]; } + virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); + + G4ParticleDefinition* GetParticleDefinition(); + + // Get method for HEPRep style attributes + virtual const G4std::map* GetAttDefs() const; + virtual G4std::vector* CreateAttValues() const; + +//--------- + private: +//--------- + + TrajectoryPointContainer* positionRecord; + G4int fTrackID; + G4int fParentID; + G4int PDGEncoding; + G4double PDGCharge; + G4String ParticleName; + G4ThreeVector initialMomentum; + +}; + +extern G4Allocator aSmoothTrajectoryAllocator; + +inline void* G4SmoothTrajectory::operator new(size_t) +{ + void* aTrajectory; + aTrajectory = (void*)aSmoothTrajectoryAllocator.MallocSingle(); + return aTrajectory; +} + +inline void G4SmoothTrajectory::operator delete(void* aTrajectory) +{ + aSmoothTrajectoryAllocator.FreeSingle((G4SmoothTrajectory*)aTrajectory); +} + +#endif diff --git a/source/tracking/include/G4SmoothTrajectoryPoint.hh b/source/tracking/include/G4SmoothTrajectoryPoint.hh new file mode 100644 index 0000000000..b0774b1951 --- /dev/null +++ b/source/tracking/include/G4SmoothTrajectoryPoint.hh @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * 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: G4SmoothTrajectoryPoint.hh,v 1.6 2002/11/08 23:44:36 jacek Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +//--------------------------------------------------------------- +// +// G4SmoothTrajectoryPoint.hh +// +// class description: +// This class contains position and auxiliary points of a trajectory point. +// +// --------------------------------------------------------------- + +#ifndef G4SmoothTrajectoryPoint_h +#define G4SmoothTrajectoryPoint_h 1 + +#include "G4VTrajectoryPoint.hh" +#include "globals.hh" // Include from 'global' +#include "G4ThreeVector.hh" // Include from 'geometry' +#include "G4Allocator.hh" // Include from 'particle+matter' + + +class G4SmoothTrajectoryPoint : public G4VTrajectoryPoint +{ + +//-------- +public: // without description +//-------- + +// Constructor/Destructor + G4SmoothTrajectoryPoint(); + // No auxiliary points setter, so must set the points in the + // constructor already (jacek 31/10/2002) + G4SmoothTrajectoryPoint(G4ThreeVector pos, + G4std::vector* auxiliaryPoints); + G4SmoothTrajectoryPoint(G4ThreeVector pos); + G4SmoothTrajectoryPoint(const G4SmoothTrajectoryPoint &right); + virtual ~G4SmoothTrajectoryPoint(); + +// Operators + inline void *operator new(size_t); + inline void operator delete(void *aTrajectoryPoint); + inline int operator==(const G4SmoothTrajectoryPoint& right) const + { return (this==&right); }; + +// Get/Set functions + inline const G4ThreeVector GetPosition() const + { return fPosition; } + inline const G4std::vector* GetAuxiliaryPoints() const + { return fAuxiliaryPointVector; } + +// Get method for HEPRep style attributes + virtual const G4std::map* GetAttDefs() const; + virtual G4std::vector* CreateAttValues() const; + +//--------- + private: +//--------- + +// Member data + G4ThreeVector fPosition; + G4std::vector* fAuxiliaryPointVector; + + +}; + + +extern G4Allocator aSmoothTrajectoryPointAllocator; + +inline void* G4SmoothTrajectoryPoint::operator new(size_t) +{ + void *aTrajectoryPoint; + aTrajectoryPoint = (void *) aSmoothTrajectoryPointAllocator.MallocSingle(); + return aTrajectoryPoint; +} + +inline void G4SmoothTrajectoryPoint::operator delete(void *aTrajectoryPoint) +{ + aSmoothTrajectoryPointAllocator.FreeSingle((G4SmoothTrajectoryPoint *) aTrajectoryPoint); +} + +#endif + diff --git a/source/tracking/include/G4SteppingManager.hh b/source/tracking/include/G4SteppingManager.hh index ef68546d2f..81e7a88858 100644 --- a/source/tracking/include/G4SteppingManager.hh +++ b/source/tracking/include/G4SteppingManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.hh,v 1.20 2002/02/04 07:58:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SteppingManager.hh,v 1.22 2002/11/06 02:24:34 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // //--------------------------------------------------------------- // @@ -195,6 +195,7 @@ public: //without description void InvokeAtRestDoItProcs(); void InvokeAlongStepDoItProcs(); void InvokePostStepDoItProcs(); + void InvokePSDIP(size_t); // void SetNavigator(G4Navigator* value); G4double CalculateSafety(); // Return the estimated safety value at the PostStepPoint @@ -244,9 +245,6 @@ public: //without description size_t MAXofAlongStepLoops; size_t MAXofPostStepLoops; - G4double currentMinimumStep; - G4double numberOfInteractionLengthLeft; - size_t fAtRestDoItProcTriggered; size_t fAlongStepDoItProcTriggered; size_t fPostStepDoItProcTriggered; @@ -395,13 +393,6 @@ public: //without description return MAXofPostStepLoops; } - inline G4double G4SteppingManager::GetcurrentMinimumStep(){ - return currentMinimumStep; - } - inline G4double G4SteppingManager::GetnumberOfInteractionLengthLeft(){ - return numberOfInteractionLengthLeft; - } - inline size_t G4SteppingManager::GetfAtRestDoItProcTriggered(){ return fAtRestDoItProcTriggered; } diff --git a/source/tracking/include/G4SteppingVerbose.hh b/source/tracking/include/G4SteppingVerbose.hh index 036d0b6771..bbb789ff90 100644 --- a/source/tracking/include/G4SteppingVerbose.hh +++ b/source/tracking/include/G4SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: G4SteppingVerbose.hh,v 1.9 2001/07/11 10:08:40 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackVector.hh b/source/tracking/include/G4TrackVector.hh index 878d19cf51..8ff5f2ee92 100644 --- a/source/tracking/include/G4TrackVector.hh +++ b/source/tracking/include/G4TrackVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackVector.hh,v 1.8 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackingManager.hh b/source/tracking/include/G4TrackingManager.hh index c186013f58..2d68c9ee81 100644 --- a/source/tracking/include/G4TrackingManager.hh +++ b/source/tracking/include/G4TrackingManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingManager.hh,v 1.13 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrackingManager.hh,v 1.14 2002/08/13 18:14:42 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -146,6 +146,7 @@ public: // without description G4bool StoreTrajectory; G4int verboseLevel; G4TrackingMessenger* messenger; + G4bool EventIsAborted; }; diff --git a/source/tracking/include/G4TrackingMessenger.hh b/source/tracking/include/G4TrackingMessenger.hh index 60637701d7..66179ea277 100644 --- a/source/tracking/include/G4TrackingMessenger.hh +++ b/source/tracking/include/G4TrackingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackingMessenger.hh,v 1.7 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4Trajectory.hh b/source/tracking/include/G4Trajectory.hh index 8318fd2985..6c3b457ee5 100644 --- a/source/tracking/include/G4Trajectory.hh +++ b/source/tracking/include/G4Trajectory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trajectory.hh,v 1.14 2001/11/07 10:39:46 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Trajectory.hh,v 1.17 2002/10/28 11:10:57 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -98,9 +98,11 @@ public: // with description { return PDGCharge; } inline G4int GetPDGEncoding() const { return PDGEncoding; } + inline G4ThreeVector GetInitialMomentum() const + { return initialMomentum; } // Other member functions - virtual void ShowTrajectory() const; + virtual void ShowTrajectory(G4std::ostream& os=G4cout) const; virtual void DrawTrajectory(G4int i_mode=0) const; virtual void AppendStep(const G4Step* aStep); virtual int GetPointEntries() const { return positionRecord->size(); } @@ -110,6 +112,9 @@ public: // with description G4ParticleDefinition* GetParticleDefinition(); + virtual const G4std::map* GetAttDefs() const; + virtual G4std::vector* CreateAttValues() const; + //--------- private: //--------- @@ -120,6 +125,7 @@ public: // with description G4int PDGEncoding; G4double PDGCharge; G4String ParticleName; + G4ThreeVector initialMomentum; }; diff --git a/source/tracking/include/G4TrajectoryPoint.hh b/source/tracking/include/G4TrajectoryPoint.hh index c79ad5d93d..689f37b876 100644 --- a/source/tracking/include/G4TrajectoryPoint.hh +++ b/source/tracking/include/G4TrajectoryPoint.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoryPoint.hh,v 1.7 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrajectoryPoint.hh,v 1.10 2002/10/28 11:10:57 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -79,6 +79,9 @@ public: // without description inline const G4ThreeVector GetPosition() const { return fPosition; }; +// Get method for HEPRep style attributes + virtual const G4std::map* GetAttDefs() const; + virtual G4std::vector* CreateAttValues() const; //--------- private: diff --git a/source/tracking/include/G4UserSteppingAction.hh b/source/tracking/include/G4UserSteppingAction.hh index 46ab9cd772..b601e0db7d 100644 --- a/source/tracking/include/G4UserSteppingAction.hh +++ b/source/tracking/include/G4UserSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserSteppingAction.hh,v 1.7 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4UserTrackingAction.hh b/source/tracking/include/G4UserTrackingAction.hh index fe24018685..e2c8b0bb53 100644 --- a/source/tracking/include/G4UserTrackingAction.hh +++ b/source/tracking/include/G4UserTrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserTrackingAction.hh,v 1.8 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VSteppingVerbose.hh b/source/tracking/include/G4VSteppingVerbose.hh index a4dcb2d617..4e5c35cb7d 100644 --- a/source/tracking/include/G4VSteppingVerbose.hh +++ b/source/tracking/include/G4VSteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSteppingVerbose.hh,v 1.13 2001/11/07 13:04:50 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSteppingVerbose.hh,v 1.14 2002/12/04 23:00:50 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -76,14 +76,8 @@ public: // public: // with description // static methods to set/get the object's pointer - static void SetInstance(G4VSteppingVerbose* Instance) - { - fInstance = Instance; - } - static G4VSteppingVerbose* GetInstance() - { - return fInstance; - } + static void SetInstance(G4VSteppingVerbose* Instance); + static G4VSteppingVerbose* GetInstance(); // these method are invoked in the SteppingManager virtual void NewStep() = 0; void CopyState(); diff --git a/source/tracking/include/G4VTrajectory.hh b/source/tracking/include/G4VTrajectory.hh index 4c0482182f..0fcf44609d 100644 --- a/source/tracking/include/G4VTrajectory.hh +++ b/source/tracking/include/G4VTrajectory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTrajectory.hh,v 1.6 2001/07/11 10:08:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VTrajectory.hh,v 1.11 2002/11/08 18:17:04 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -30,38 +30,85 @@ // G4VTrajectory.hh // // class description: -// This is the abstract base class of a trajectory. -// -// Contact: -// Questions and comments to this code should be sent to -// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) -// Makoto Asai (e-mail: asai@kekvax.kek.jp) -// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// This class is the abstract base class which represents a trajectory of +// a particle tracked. +// Its concrete class includes information of +// 1) List of trajectory points which compose the trajectory, +// 2) static information of particle which generated the +// trajectory, +// 3) trackID and parent particle ID of the trajectory, // // --------------------------------------------------------------- #ifndef G4VTrajectory_h #define G4VTrajectory_h 1 -class G4Step; -#include "G4VTrajectoryPoint.hh" #include "globals.hh" +#include "g4std/vector" +#include "g4std/map" +#include "G4ThreeVector.hh" + +class G4Step; +class G4VTrajectoryPoint; +class G4AttDef; +class G4AttValue; class G4VTrajectory { -public: // without description + public: // with description + +// Constructor/Destrcutor G4VTrajectory() {;} virtual ~G4VTrajectory() {;} - inline int operator == (const G4VTrajectory& right){return (this==&right);} +// Operators + inline int operator == (const G4VTrajectory& right) const + {return (this==&right);} - virtual void ShowTrajectory() const = 0; - virtual void DrawTrajectory(G4int i_mode=0) const = 0; - virtual void AppendStep(const G4Step*) = 0; +// Get/Set functions + virtual G4int GetTrackID() const = 0; + virtual G4int GetParentID() const = 0; + virtual G4String GetParticleName() const = 0; + virtual G4double GetCharge() const = 0; + // Charge is that of G4DynamicParticle + virtual G4int GetPDGEncoding() const = 0; + // Zero will be returned if the particle does not have PDG code. + virtual G4ThreeVector GetInitialMomentum() const = 0; + // Momentum at the origin of the track in global coordinate system. + +// Other member functions virtual int GetPointEntries() const = 0; - virtual G4VTrajectoryPoint* GetPoint(int) const = 0; - virtual void MergeTrajectory(G4VTrajectory*) = 0; + // Returns the number of trajectory points + virtual G4VTrajectoryPoint* GetPoint(G4int i) const = 0; + // Returns i-th trajectory point. + virtual void ShowTrajectory(G4std::ostream& os=G4cout) const; + // Convert attributes in trajectory (and trajectory point if + // needed) to ostream. A default implementation in this base class + // may be used or may be overridden in the concrete class. Note: + // the user needs to follow with new-line or end-of-string, + // depending on the nature of os. + virtual void DrawTrajectory(G4int i_mode=0) const; + // Draw the trajectory. A default implementation in this base + // class may be used or may be overridden in the concrete class. + virtual const G4std::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. + virtual G4std::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. + + public: + // Following methods MUST be invoked exclusively by G4TrackingManager + virtual void AppendStep(const G4Step* aStep) = 0; + virtual void MergeTrajectory(G4VTrajectory* secondTrajectory) = 0; + }; #endif diff --git a/source/tracking/include/G4VTrajectoryPoint.hh b/source/tracking/include/G4VTrajectoryPoint.hh index 20b9c80c9b..4f1b83c2fc 100644 --- a/source/tracking/include/G4VTrajectoryPoint.hh +++ b/source/tracking/include/G4VTrajectoryPoint.hh @@ -21,27 +21,72 @@ // ******************************************************************** // // -// $Id: G4VTrajectoryPoint.hh,v 1.5 2001/07/11 10:08:42 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VTrajectoryPoint.hh,v 1.9 2002/10/28 11:10:58 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // - -// class description -// The base class for the trajectory class +// +//--------------------------------------------------------------- +// +// G4VTrajectoryPoint.hh +// +// class description: +// This class is the abstract base class which represents the point +// which consists of a trajectory. +// It includes information of a the point. +// +// --------------------------------------------------------------- #ifndef G4VTrajectoryPoint_h #define G4VTrajectoryPoint_h 1 +#include "globals.hh" +#include "g4std/vector" +#include "g4std/map" +#include "G4ThreeVector.hh" + +class G4AttDef; +class G4AttValue; + class G4VTrajectoryPoint { - public: + public: // with description + // Constructor/Destructor G4VTrajectoryPoint() {;} virtual ~G4VTrajectoryPoint() {;} + // Operators inline int operator==(const G4VTrajectoryPoint& right) const - { return (this==&right); } -}; + { return (this==&right); }; + // Get/Set functions + virtual const G4ThreeVector GetPosition() const = 0; + + // Get method for a vector of auxiliary points + virtual const G4std::vector* GetAuxiliaryPoints() const + { return 0; } + // If implemented by a derived class, returns a pointer to a list + // of auxiliary points, e.g., intermediate points used during the + // calculation of the step that can be used for drawing a smoother + // trajectory. The user must test the validity of this pointer. + + // Get method for HEPRep style attribute definitions + virtual const G4std::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. + + // Get method for HEPRep style attribute values + virtual G4std::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. + +}; #endif diff --git a/source/tracking/src/G4SmoothTrajectory.cc b/source/tracking/src/G4SmoothTrajectory.cc new file mode 100644 index 0000000000..28a087d59d --- /dev/null +++ b/source/tracking/src/G4SmoothTrajectory.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: G4SmoothTrajectory.cc,v 1.8 2002/11/11 13:13:02 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// --------------------------------------------------------------- +// +// G4SmoothTrajectory.cc +// +// Contact: +// Questions and comments to this code should be sent to +// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) +// Makoto Asai (e-mail: asai@kekvax.kek.jp) +// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// +// --------------------------------------------------------------- + + +#include "G4SmoothTrajectory.hh" +#include "G4SmoothTrajectoryPoint.hh" +#include "G4ParticleTable.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UnitsTable.hh" +#include "g4std/strstream" + +G4Allocator aSmoothTrajectoryAllocator; + +G4SmoothTrajectory::G4SmoothTrajectory() +: positionRecord(0), fTrackID(0), fParentID(0), + PDGEncoding( 0 ), PDGCharge(0.0), ParticleName(""), + initialMomentum( G4ThreeVector() ) +{;} + +G4SmoothTrajectory::G4SmoothTrajectory(const G4Track* aTrack) +{ + G4ParticleDefinition * fpParticleDefinition = aTrack->GetDefinition(); + ParticleName = fpParticleDefinition->GetParticleName(); + PDGCharge = fpParticleDefinition->GetPDGCharge(); + PDGEncoding = fpParticleDefinition->GetPDGEncoding(); + fTrackID = aTrack->GetTrackID(); + fParentID = aTrack->GetParentID(); + initialMomentum = aTrack->GetMomentum(); + positionRecord = new TrajectoryPointContainer(); + // Following is for the first trajectory point + positionRecord->push_back(new G4SmoothTrajectoryPoint(aTrack->GetPosition())); + + // The first point has no auxiliary points, so set the auxiliary + // points vector to NULL (jacek 31/10/2002) + positionRecord->push_back(new G4SmoothTrajectoryPoint(aTrack->GetPosition(), NULL)); +} + +G4SmoothTrajectory::G4SmoothTrajectory(G4SmoothTrajectory & right) +{ + ParticleName = right.ParticleName; + PDGCharge = right.PDGCharge; + PDGEncoding = right.PDGEncoding; + fTrackID = right.fTrackID; + fParentID = right.fParentID; + initialMomentum = right.initialMomentum; + positionRecord = new TrajectoryPointContainer(); + + for(size_t i=0;isize();i++) + { + G4SmoothTrajectoryPoint* rightPoint = (G4SmoothTrajectoryPoint*)((*(right.positionRecord))[i]); + positionRecord->push_back(new G4SmoothTrajectoryPoint(*rightPoint)); + } +} + +G4SmoothTrajectory::~G4SmoothTrajectory() +{ + // positionRecord->clearAndDestroy(); + size_t i; + for(i=0;isize();i++){ + delete (*positionRecord)[i]; + } + positionRecord->clear(); + + delete positionRecord; +} + +void G4SmoothTrajectory::ShowTrajectory(G4std::ostream& os) const +{ + // Invoke the default implementation in G4VTrajectory... + G4VTrajectory::ShowTrajectory(os); + // ... or override with your own code here. +} + +void G4SmoothTrajectory::DrawTrajectory(G4int i_mode) const +{ + // Invoke the default implementation in G4VTrajectory... + G4VTrajectory::DrawTrajectory(i_mode); + // ... or override with your own code here. +} + +const G4std::map* G4SmoothTrajectory::GetAttDefs() const +{ + G4bool isNew; + G4std::map* store + = G4AttDefStore::GetInstance("G4SmoothTrajectory",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 PN("PN"); + (*store)[PN] = G4AttDef(PN,"Particle Name","Physics","","G4String"); + + G4String Ch("Ch"); + (*store)[Ch] = G4AttDef(Ch,"Charge","Physics","","G4double"); + + G4String PDG("PDG"); + (*store)[PDG] = G4AttDef(PDG,"PDG Encoding","Physics","","G4int"); + + G4String IMom("IMom"); + (*store)[IMom] = G4AttDef(IMom, "Momentum of track at start of trajectory", + "Physics","","G4ThreeVector"); + + G4String NTP("NTP"); + (*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int"); + + } + return store; +} + + +G4std::vector* G4SmoothTrajectory::CreateAttValues() const +{ + char c[100]; + G4std::ostrstream s(c,100); + + G4std::vector* values = new G4std::vector; + + s.seekp(G4std::ios::beg); + s << fTrackID << G4std::ends; + values->push_back(G4AttValue("ID",c,"")); + + s.seekp(G4std::ios::beg); + s << fParentID << G4std::ends; + values->push_back(G4AttValue("PID",c,"")); + + values->push_back(G4AttValue("PN",ParticleName,"")); + + s.seekp(G4std::ios::beg); + s << PDGCharge << G4std::ends; + values->push_back(G4AttValue("Ch",c,"")); + + s.seekp(G4std::ios::beg); + s << PDGEncoding << G4std::ends; + values->push_back(G4AttValue("PDG",c,"")); + + s.seekp(G4std::ios::beg); + s << G4BestUnit(initialMomentum,"Energy") << G4std::ends; + values->push_back(G4AttValue("IMom",c,"")); + + s.seekp(G4std::ios::beg); + s << GetPointEntries() << G4std::ends; + values->push_back(G4AttValue("NTP",c,"")); + + return values; +} + +void G4SmoothTrajectory::AppendStep(const G4Step* aStep) +{ + // (jacek 30/10/2002) + positionRecord->push_back( + new G4SmoothTrajectoryPoint(aStep->GetPostStepPoint()->GetPosition(), + aStep->GetPointerToVectorOfAuxiliaryPoints())); +} + +G4ParticleDefinition* G4SmoothTrajectory::GetParticleDefinition() +{ + return (G4ParticleTable::GetParticleTable()->FindParticle(ParticleName)); +} + +void G4SmoothTrajectory::MergeTrajectory(G4VTrajectory* secondTrajectory) +{ + if(!secondTrajectory) return; + + G4SmoothTrajectory* seco = (G4SmoothTrajectory*)secondTrajectory; + G4int ent = seco->GetPointEntries(); + for(G4int i=1;ipush_back((*(seco->positionRecord))[i]); + // positionRecord->push_back(seco->positionRecord->removeAt(1)); + } + delete (*seco->positionRecord)[0]; + seco->positionRecord->clear(); +} + + diff --git a/source/tracking/src/G4SmoothTrajectoryPoint.cc b/source/tracking/src/G4SmoothTrajectoryPoint.cc new file mode 100644 index 0000000000..b0951085bd --- /dev/null +++ b/source/tracking/src/G4SmoothTrajectoryPoint.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: G4SmoothTrajectoryPoint.cc,v 1.8 2002/12/06 12:16:44 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// --------------------------------------------------------------- +// +// G4SmoothTrajectoryPoint.cc +// +// --------------------------------------------------------------- + +#include "G4SmoothTrajectoryPoint.hh" + +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UnitsTable.hh" +#include "g4std/strstream" + +G4Allocator aSmoothTrajectoryPointAllocator; + +G4SmoothTrajectoryPoint::G4SmoothTrajectoryPoint() +: fAuxiliaryPointVector(0) +{ + fPosition = G4ThreeVector(0.,0.,0.); +} + +G4SmoothTrajectoryPoint::G4SmoothTrajectoryPoint(G4ThreeVector pos) +: fAuxiliaryPointVector(0) +{ + fPosition = pos; +} + +G4SmoothTrajectoryPoint::G4SmoothTrajectoryPoint(G4ThreeVector pos, + G4std::vector* auxiliaryPoints) +: fPosition(pos), + fAuxiliaryPointVector(auxiliaryPoints) +{} + +G4SmoothTrajectoryPoint::G4SmoothTrajectoryPoint(const G4SmoothTrajectoryPoint &right) +: fPosition(right.fPosition),fAuxiliaryPointVector(right.fAuxiliaryPointVector) +{ +} + +G4SmoothTrajectoryPoint::~G4SmoothTrajectoryPoint() +{ + if(fAuxiliaryPointVector) { + delete fAuxiliaryPointVector; + } +} + + +const G4std::map* +G4SmoothTrajectoryPoint::GetAttDefs() const +{ + G4bool isNew; + G4std::map* store + = G4AttDefStore::GetInstance("G4SmoothTrajectoryPoint",isNew); + if (isNew) { + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Step Position", + "Physics","","G4ThreeVector"); + G4String Aux("Aux"); + (*store)[Aux] = G4AttDef(Aux, "Auxiliary Point Position", + "Physics","","G4ThreeVector"); + } + return store; +} + +G4std::vector* G4SmoothTrajectoryPoint::CreateAttValues() const +{ + char c[100]; + G4std::ostrstream s(c,100); + + G4std::vector* values = new G4std::vector; + + if (fAuxiliaryPointVector) { + G4std::vector::iterator iAux; + for (iAux = fAuxiliaryPointVector->begin(); + iAux != fAuxiliaryPointVector->end(); ++iAux) { + s.seekp(G4std::ios::beg); + s << G4BestUnit(*iAux,"Length") << G4std::ends; + values->push_back(G4AttValue("Aux",c,"")); + } + } + + s.seekp(G4std::ios::beg); + s << G4BestUnit(fPosition,"Length") << G4std::ends; + values->push_back(G4AttValue("Pos",c,"")); + + return values; +} diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc index 5c5eeed7f1..3dd03670dc 100644 --- a/source/tracking/src/G4SteppingManager.cc +++ b/source/tracking/src/G4SteppingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.cc,v 1.28 2002/02/07 04:00:22 tsasaki Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SteppingManager.cc,v 1.30 2002/12/04 23:00:50 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -71,7 +71,7 @@ G4SteppingManager::G4SteppingManager() else { fVerbose = G4VSteppingVerbose::GetInstance(); fVerbose -> SetManager(this); - KillVerbose = false; + KillVerbose = false; } #endif SetNavigator(G4TransportationManager::GetTransportationManager() @@ -87,6 +87,7 @@ G4SteppingManager::G4SteppingManager() SetNavigator(G4TransportationManager::GetTransportationManager() ->GetNavigatorForTracking()); + physIntLength = DBL_MAX; // fTouchableHandle = new G4TouchableHistory(); } @@ -248,6 +249,17 @@ void G4SteppingManager::SetInitialStep(G4Track* valueTrack) fTrack = valueTrack; Mass = fTrack->GetDynamicParticle()->GetMass(); + PhysicalStep = 0.; + GeometricalStep = 0.; + CorrectedStep = 0.; + PreStepPointIsGeom = false; + FirstStep = false; + fStepStatus = fUndefined; + + TempInitVelocity = 0.; + TempVelocity = 0.; + sumEnergyChange = 0.; + // If the primary track has 'Suspend' or 'PostponeToNextEvent' state, // set the track state to 'Alive'. diff --git a/source/tracking/src/G4SteppingManager2.cc b/source/tracking/src/G4SteppingManager2.cc index dc8ef23dee..998660065f 100644 --- a/source/tracking/src/G4SteppingManager2.cc +++ b/source/tracking/src/G4SteppingManager2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager2.cc,v 1.5 2002/02/04 01:49:08 tsasaki Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SteppingManager2.cc,v 1.9 2002/11/07 21:31:57 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -70,6 +70,13 @@ void G4SteppingManager::GetProcessNumber() MAXofPostStepLoops = pm->GetPostStepProcessVector()->entries(); fPostStepDoItVector = pm->GetPostStepProcessVector(typeDoIt); fPostStepGetPhysIntVector = pm->GetPostStepProcessVector(typeGPIL); + + if (SizeOfSelectedDoItVectorGetPostStepPoint() ->SetProcessDefinedStep(fCurrentProcess); break; case Conditionally: - (*fSelectedPostStepDoItVector)[np] = 3; + (*fSelectedPostStepDoItVector)[np] = Conditionally; break; case Forced: - (*fSelectedPostStepDoItVector)[np] = 2; + (*fSelectedPostStepDoItVector)[np] = Forced; + break; + case StronglyForced: + (*fSelectedPostStepDoItVector)[np] = StronglyForced; break; default: - (*fSelectedPostStepDoItVector)[np] = 0; + (*fSelectedPostStepDoItVector)[np] = InActivated; if(physIntLength < PhysicalStep ){ PhysicalStep = physIntLength; fStepStatus = fPostStepDoItProc; @@ -159,7 +169,7 @@ void G4SteppingManager::GetProcessNumber() } if(fPostStepDoItProcTriggeredSetStepLength( 0. ); //the particle has stopped fTrack->SetStepLength( 0. ); @@ -265,7 +275,7 @@ void G4SteppingManager::InvokeAtRestDoItProcs() // Note: DoItVector has inverse order against GetPhysIntVector // and SelectedAtRestDoItVector. // - if( (*fSelectedAtRestDoItVector)[MAXofAtRestLoops-np-1] != 0){ + if( (*fSelectedAtRestDoItVector)[MAXofAtRestLoops-np-1] != InActivated){ fCurrentProcess = (*fAtRestDoItVector)[np]; @@ -354,7 +364,7 @@ void G4SteppingManager::InvokeAtRestDoItProcs() // clear ParticleChange fParticleChange->Clear(); - } //if(fSelectedAtRestDoItVector[np] != 0){ + } //if(fSelectedAtRestDoItVector[np] != InActivated){ } //for(size_t np=0; np < MAXofAtRestLoops; np++){ fStep->UpdateTrack(); @@ -484,16 +494,37 @@ void G4SteppingManager::InvokePostStepDoItProcs() // Note: DoItVector has inverse order against GetPhysIntVector // and SelectedPostStepDoItVector. // - size_t npGPIL = MAXofPostStepLoops-np-1; - - G4int tmp= (*fSelectedPostStepDoItVector)[npGPIL]; - if(tmp != 0){ + G4int Cond = (*fSelectedPostStepDoItVector)[MAXofPostStepLoops-np-1]; + if(Cond != InActivated){ + if( ((Cond == NotForced) && (fStepStatus == fPostStepDoItProc)) || + ((Cond == Forced) && (fStepStatus != fExclusivelyForcedProc)) || + ((Cond == Conditionally) && (fStepStatus == fAlongStepDoItProc)) || + ((Cond == ExclusivelyForced) && (fStepStatus == fExclusivelyForcedProc)) || + ((Cond == StronglyForced) ) + ) { - if ( ((tmp == 1) && (fStepStatus == fPostStepDoItProc)) || - ((tmp == 2) && (fStepStatus != fExclusivelyForcedProc)) || - ((tmp == 3) && (fStepStatus == fAlongStepDoItProc)) || - ((tmp == 4) && (fStepStatus == fExclusivelyForcedProc)) ) { + InvokePSDIP(np); + } + } //if(*fSelectedPostStepDoItVector(np)........ + // Exit from PostStepLoop if the track has been killed, + // but extra treatment for processes with Strongly Forced flag + if(fTrack->GetTrackStatus() == fStopAndKill) { + for(size_t np1=np+1; np1 < MAXofPostStepLoops; np1++){ + G4int Cond2 = (*fSelectedPostStepDoItVector)[MAXofPostStepLoops-np1-1]; + if (Cond2 == StronglyForced) { + InvokePSDIP(np1); + } + } + break; + } + } //for(size_t np=0; np < MAXofPostStepLoops; np++){ +} + + + +void G4SteppingManager::InvokePSDIP(size_t np) +{ fCurrentProcess = (*fPostStepDoItVector)[np]; fParticleChange = fCurrentProcess->PostStepDoIt( *fTrack, *fStep); @@ -586,12 +617,4 @@ void G4SteppingManager::InvokePostStepDoItProcs() // clear ParticleChange fParticleChange->Clear(); - } - } //if(*fSelectedPostStepDoItVector(np) != 0){ - - // Exit from PostStepLoop if the track has been killed - if(fTrack->GetTrackStatus() == fStopAndKill) break; - - } //for(size_t np=0; np < MAXofPostStepLoops; np++){ } - diff --git a/source/tracking/src/G4SteppingVerbose.cc b/source/tracking/src/G4SteppingVerbose.cc index 425d600c06..6b08720c6b 100644 --- a/source/tracking/src/G4SteppingVerbose.cc +++ b/source/tracking/src/G4SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingVerbose.cc,v 1.10 2001/12/06 10:04:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4SteppingVerbose.cc,v 1.12 2002/12/12 16:16:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -369,6 +369,7 @@ void G4SteppingVerbose::DPSLAlongStep() ///////////////////////////////////////////// { CopyState(); + if( verboseLevel > 5 ){ G4cout << " ++ProposedStep(AlongStep) = " << G4std::setw( 9) << G4BestUnit(physIntLength , "Length") @@ -392,9 +393,9 @@ void G4SteppingVerbose::DPSLAlongStep() void G4SteppingVerbose::TrackingStarted() //////////////////////////////////////////////// { - CopyState(); -G4int prec = G4cout.precision(3); + + G4int prec = G4cout.precision(3); if( verboseLevel > 0 ){ #ifdef G4_USE_G4BESTUNIT_FOR_VERBOSE @@ -444,6 +445,7 @@ void G4SteppingVerbose::AlongStepDoItOneByOne() ////////////////////////////////////////////////////// { CopyState(); + if(verboseLevel >= 4){ G4cout << G4endl; G4cout << " >>AlongStepDoIt (process by process): " @@ -488,6 +490,7 @@ void G4SteppingVerbose::PostStepDoItOneByOne() ////////////////////////////////////////////////////// { CopyState(); + if(fStepStatus != fPostStepDoItProc) return; if(verboseLevel >= 4){ diff --git a/source/tracking/src/G4TrackingManager.cc b/source/tracking/src/G4TrackingManager.cc index e34b26af0c..6afb5cf1cf 100644 --- a/source/tracking/src/G4TrackingManager.cc +++ b/source/tracking/src/G4TrackingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingManager.cc,v 1.11 2002/04/25 20:21:14 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrackingManager.cc,v 1.13 2002/08/21 22:50:52 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -44,7 +44,7 @@ G4TrackingManager::G4TrackingManager() ////////////////////////////////////// : fpUserTrackingAction(NULL), fpTrajectory(NULL), - StoreTrajectory(false), verboseLevel(0) + StoreTrajectory(false), verboseLevel(0), EventIsAborted(false) { fpSteppingManager = new G4SteppingManager(); messenger = new G4TrackingMessenger(this); @@ -67,6 +67,7 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) // Receiving a G4Track from the EventManager, this funciton has the // responsibility to trace the track till it stops. fpTrack = apValueG4Track; + EventIsAborted = false; // Clear 2ndary particle vector // GimmeSecondaries()->clearAndDestroy(); @@ -79,7 +80,7 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) GimmeSecondaries()->clear(); // Pre tracking user intervention process. - fpTrajectory = NULL; + fpTrajectory = 0; if( fpUserTrackingAction != NULL ) { fpUserTrackingAction->PreUserTrackingAction(fpTrack); } @@ -119,6 +120,9 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) if(StoreTrajectory) fpTrajectory-> AppendStep(fpSteppingManager->GetStep()); #endif + if(EventIsAborted) { + fpTrack->SetTrackStatus( fKillTrackAndSecondaries ); + } } // Inform end of tracking to physics processes fpTrack->GetDefinition()->GetProcessManager()->EndTracking(); @@ -134,6 +138,7 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) #endif if( (!StoreTrajectory)&&fpTrajectory ) { delete fpTrajectory; + fpTrajectory = 0; } } @@ -150,6 +155,7 @@ void G4TrackingManager::EventAborted() ////////////////////////////////////// { fpTrack->SetTrackStatus( fKillTrackAndSecondaries ); + EventIsAborted = true; } //************************************************************************ diff --git a/source/tracking/src/G4TrackingMessenger.cc b/source/tracking/src/G4TrackingMessenger.cc index ac958d4b40..bedc85d8ed 100644 --- a/source/tracking/src/G4TrackingMessenger.cc +++ b/source/tracking/src/G4TrackingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackingMessenger.cc,v 1.8 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4Trajectory.cc b/source/tracking/src/G4Trajectory.cc index bd698cb874..22e975bdcd 100644 --- a/source/tracking/src/G4Trajectory.cc +++ b/source/tracking/src/G4Trajectory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trajectory.cc,v 1.14 2001/11/07 10:45:37 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4Trajectory.cc,v 1.20 2002/11/08 18:27:40 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- @@ -41,27 +41,21 @@ #include "G4Trajectory.hh" #include "G4TrajectoryPoint.hh" #include "G4ParticleTable.hh" -#include "G4ThreeVector.hh" -#include "G4Polyline.hh" -#include "G4Circle.hh" -#include "G4Colour.hh" -#include "G4VisAttributes.hh" -#include "G4VVisManager.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UnitsTable.hh" +#include "g4std/strstream" G4Allocator aTrajectoryAllocator; -/////////////////////////////////////////// G4Trajectory::G4Trajectory() : positionRecord(0), fTrackID(0), fParentID(0), - PDGEncoding( 0 ), PDGCharge(0.0), ParticleName("") -/////////////////////////////////////////// -{ - // Unused: G4ParticleDefinition * fpParticleDefinition = 0; -} + PDGEncoding( 0 ), PDGCharge(0.0), ParticleName(""), + initialMomentum( G4ThreeVector() ) +{;} -/////////////////////////////////////////// G4Trajectory::G4Trajectory(const G4Track* aTrack) -/////////////////////////////////////////// { G4ParticleDefinition * fpParticleDefinition = aTrack->GetDefinition(); ParticleName = fpParticleDefinition->GetParticleName(); @@ -69,22 +63,20 @@ G4Trajectory::G4Trajectory(const G4Track* aTrack) PDGEncoding = fpParticleDefinition->GetPDGEncoding(); fTrackID = aTrack->GetTrackID(); fParentID = aTrack->GetParentID(); - // positionRecord = new G4RWTPtrOrderedVector; + initialMomentum = aTrack->GetMomentum(); positionRecord = new TrajectoryPointContainer(); + // Following is for the first trajectory point positionRecord->push_back(new G4TrajectoryPoint(aTrack->GetPosition())); } -////////////////////////////////////////// G4Trajectory::G4Trajectory(G4Trajectory & right) -////////////////////////////////////////// { ParticleName = right.ParticleName; PDGCharge = right.PDGCharge; PDGEncoding = right.PDGEncoding; fTrackID = right.fTrackID; fParentID = right.fParentID; - // positionRecord = new G4RWTPtrOrderedVector; - // G4std::vector *positionRecord; + initialMomentum = right.initialMomentum; positionRecord = new TrajectoryPointContainer(); for(size_t i=0;isize();i++) @@ -94,10 +86,7 @@ G4Trajectory::G4Trajectory(G4Trajectory & right) } } - -///////////////////////////// G4Trajectory::~G4Trajectory() -///////////////////////////// { // positionRecord->clearAndDestroy(); size_t i; @@ -109,89 +98,101 @@ G4Trajectory::~G4Trajectory() delete positionRecord; } -/////////////////////////////////// -void G4Trajectory::ShowTrajectory() const -/////////////////////////////////// +void G4Trajectory::ShowTrajectory(G4std::ostream& os) const { - G4cout << G4endl << "TrackID =" << fTrackID - << ":ParentID=" << fParentID << G4endl; - G4cout << "Particle name : " << ParticleName - << " Charge : " << PDGCharge << G4endl; - G4cout << " Current trajectory has " << positionRecord->size() - << " points." << G4endl; - - for( size_t i=0 ; i < positionRecord->size() ; i++){ - G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*positionRecord)[i]); - G4cout << "Point[" << i << "]" - << " Position= " << aTrajectoryPoint->GetPosition() << G4endl; - } + // Invoke the default implementation in G4VTrajectory... + G4VTrajectory::ShowTrajectory(os); + // ... or override with your own code here. } -/////////////////////////////////////////////// void G4Trajectory::DrawTrajectory(G4int i_mode) const -/////////////////////////////////////////////// { - - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - G4ThreeVector pos; - - if(i_mode>=0) - { - G4Polyline pPolyline; - for (size_t i = 0; i < positionRecord->size() ; i++) { - G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*positionRecord)[i]); - pos = aTrajectoryPoint->GetPosition(); - pPolyline.push_back( pos ); - } - - G4Colour colour; - if(PDGCharge<0.) - colour = G4Colour(1.,0.,0.); - else if(PDGCharge>0.) - colour = G4Colour(0.,0.,1.); - else - colour = G4Colour(0.,1.,0.); - - G4VisAttributes attribs(colour); - pPolyline.SetVisAttributes(attribs); - if(pVVisManager) pVVisManager->Draw(pPolyline); - } - - if(i_mode!=0) - { - for(size_t j=0; jsize(); j++) { - G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*positionRecord)[j]); - pos = aTrajectoryPoint->GetPosition(); - G4Circle circle( pos ); - circle.SetScreenSize(0.001*i_mode); - circle.SetFillStyle(G4Circle::filled); - G4Colour colSpot(0.,0.,0.); - G4VisAttributes attSpot(colSpot); - circle.SetVisAttributes(attSpot); - if(pVVisManager) pVVisManager->Draw(circle); - } - } - + // Invoke the default implementation in G4VTrajectory... + G4VTrajectory::DrawTrajectory(i_mode); + // ... or override with your own code here. +} + +const G4std::map* G4Trajectory::GetAttDefs() const +{ + G4bool isNew; + G4std::map* store + = G4AttDefStore::GetInstance("G4Trajectory",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 PN("PN"); + (*store)[PN] = G4AttDef(PN,"Particle Name","Physics","","G4String"); + + G4String Ch("Ch"); + (*store)[Ch] = G4AttDef(Ch,"Charge","Physics","","G4double"); + + G4String PDG("PDG"); + (*store)[PDG] = G4AttDef(PDG,"PDG Encoding","Physics","","G4int"); + + G4String IMom("IMom"); + (*store)[IMom] = G4AttDef(IMom, "Momentum of track at start of trajectory", + "Physics","","G4ThreeVector"); + + G4String NTP("NTP"); + (*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int"); + + } + return store; +} + +G4std::vector* G4Trajectory::CreateAttValues() const +{ + char c[100]; + G4std::ostrstream s(c,100); + + G4std::vector* values = new G4std::vector; + + s.seekp(G4std::ios::beg); + s << fTrackID << G4std::ends; + values->push_back(G4AttValue("ID",c,"")); + + s.seekp(G4std::ios::beg); + s << fParentID << G4std::ends; + values->push_back(G4AttValue("PID",c,"")); + + values->push_back(G4AttValue("PN",ParticleName,"")); + + s.seekp(G4std::ios::beg); + s << PDGCharge << G4std::ends; + values->push_back(G4AttValue("Ch",c,"")); + + s.seekp(G4std::ios::beg); + s << PDGEncoding << G4std::ends; + values->push_back(G4AttValue("PDG",c,"")); + + s.seekp(G4std::ios::beg); + s << G4BestUnit(initialMomentum,"Energy") << G4std::ends; + values->push_back(G4AttValue("IMom",c,"")); + + s.seekp(G4std::ios::beg); + s << GetPointEntries() << G4std::ends; + values->push_back(G4AttValue("NTP",c,"")); + + return values; } -//////////////////////////////////////////// void G4Trajectory::AppendStep(const G4Step* aStep) -//////////////////////////////////////////// { positionRecord->push_back( new G4TrajectoryPoint(aStep->GetPostStepPoint()-> GetPosition() )); } -///////////////////////////////////////////// G4ParticleDefinition* G4Trajectory::GetParticleDefinition() -///////////////////////////////////////////// { return (G4ParticleTable::GetParticleTable()->FindParticle(ParticleName)); } -///////////////////////////////////////////// void G4Trajectory::MergeTrajectory(G4VTrajectory* secondTrajectory) -///////////////////////////////////////////// { if(!secondTrajectory) return; diff --git a/source/tracking/src/G4TrajectoryPoint.cc b/source/tracking/src/G4TrajectoryPoint.cc index 96337c0c6f..b619883f0a 100644 --- a/source/tracking/src/G4TrajectoryPoint.cc +++ b/source/tracking/src/G4TrajectoryPoint.cc @@ -21,50 +21,67 @@ // ******************************************************************** // // -// $Id: G4TrajectoryPoint.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrajectoryPoint.cc,v 1.10 2002/11/08 18:28:29 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- // // G4TrajectoryPoint.cc // -// Contact: -// Questions and comments to this code should be sent to -// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) -// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) -// // --------------------------------------------------------------- #include "G4TrajectoryPoint.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UnitsTable.hh" +#include "g4std/strstream" + G4Allocator aTrajectoryPointAllocator; -////////////////////////////////////// G4TrajectoryPoint::G4TrajectoryPoint() -////////////////////////////////////// { fPosition = G4ThreeVector(0.,0.,0.); } -/////////////////////////////////////////////////////// G4TrajectoryPoint::G4TrajectoryPoint(G4ThreeVector pos) -/////////////////////////////////////////////////////// { fPosition = pos; } -//////////////////////////////////////////////////////////////////// G4TrajectoryPoint::G4TrajectoryPoint(const G4TrajectoryPoint &right) -//////////////////////////////////////////////////////////////////// : fPosition(right.fPosition) { } -/////////////////////////////////////// G4TrajectoryPoint::~G4TrajectoryPoint() -/////////////////////////////////////// { } +const G4std::map* G4TrajectoryPoint::GetAttDefs() const +{ + G4bool isNew; + G4std::map* store + = G4AttDefStore::GetInstance("G4TrajectoryPoint",isNew); + if (isNew) { + G4String Pos("Pos"); + (*store)[Pos] = G4AttDef(Pos, "Position", "Physics","","G4ThreeVector"); + } + return store; +} +G4std::vector* G4TrajectoryPoint::CreateAttValues() const +{ + char c[100]; + G4std::ostrstream s(c,100); + + G4std::vector* values = new G4std::vector; + + s.seekp(G4std::ios::beg); + s << G4BestUnit(fPosition,"Length") << G4std::ends; + values->push_back(G4AttValue("Pos",c,"")); + + return values; +} diff --git a/source/tracking/src/G4UserSteppingAction.cc b/source/tracking/src/G4UserSteppingAction.cc index d59574cb53..437b9c7440 100644 --- a/source/tracking/src/G4UserSteppingAction.cc +++ b/source/tracking/src/G4UserSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserSteppingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4UserTrackingAction.cc b/source/tracking/src/G4UserTrackingAction.cc index 53cbeb8ae3..9bcedc176e 100644 --- a/source/tracking/src/G4UserTrackingAction.cc +++ b/source/tracking/src/G4UserTrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserTrackingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4VSteppingVerbose.cc b/source/tracking/src/G4VSteppingVerbose.cc index 54073296ad..4788cfc093 100644 --- a/source/tracking/src/G4VSteppingVerbose.cc +++ b/source/tracking/src/G4VSteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSteppingVerbose.cc,v 1.7 2001/11/07 13:15:18 radoone Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSteppingVerbose.cc,v 1.9 2002/12/04 23:00:51 tsasaki Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // //--------------------------------------------------------------- @@ -44,8 +44,17 @@ #include "G4SteppingManager.hh" G4VSteppingVerbose* G4VSteppingVerbose::fInstance = 0; -G4VSteppingVerbose::G4VSteppingVerbose(){;} +G4VSteppingVerbose::G4VSteppingVerbose() :verboseLevel(0){;} G4VSteppingVerbose::~G4VSteppingVerbose(){;} +void G4VSteppingVerbose::SetInstance(G4VSteppingVerbose* Instance) + { + fInstance = Instance; + } +G4VSteppingVerbose* G4VSteppingVerbose::GetInstance() + { + return fInstance; + } + ////////////////////////////////////////////////////////////////// void G4VSteppingVerbose::SetManager(G4SteppingManager* const fMan) ////////////////////////////////////////////////////////////////// @@ -99,9 +108,6 @@ void G4VSteppingVerbose::CopyState() MAXofAlongStepLoops = fManager->GetMAXofAlongStepLoops(); MAXofPostStepLoops = fManager->GetMAXofPostStepLoops(); - currentMinimumStep = fManager->GetcurrentMinimumStep(); - numberOfInteractionLengthLeft = fManager->GetnumberOfInteractionLengthLeft(); - fAtRestDoItProcTriggered = fManager->GetfAtRestDoItProcTriggered(); fAlongStepDoItProcTriggered = fManager->GetfAlongStepDoItProcTriggered(); fPostStepDoItProcTriggered = fManager->GetfPostStepDoItProcTriggered(); diff --git a/source/tracking/src/G4VTrajectory.cc b/source/tracking/src/G4VTrajectory.cc new file mode 100644 index 0000000000..cb93324f8d --- /dev/null +++ b/source/tracking/src/G4VTrajectory.cc @@ -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: G4VTrajectory.cc,v 1.3 2002/12/12 13:13:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// +// +// --------------------------------------------------------------- +// +// G4VTrajectory.cc +// +// Contact: +// Questions and comments to this code should be sent to +// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) +// Makoto Asai (e-mail: asai@kekvax.kek.jp) +// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// +// --------------------------------------------------------------- + +#include "G4VTrajectory.hh" +#include "G4VTrajectoryPoint.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4VVisManager.hh" +#include "G4VisAttributes.hh" +#include "G4Polyline.hh" +#include "G4Polymarker.hh" +#include "G4Colour.hh" + +void G4VTrajectory::ShowTrajectory(G4std::ostream& os) const +{ + // Makes use of attribute values implemented in the concrete class. + // Note: the user needs to follow with new-line or end-of-string, + // depending on the nature of os. + + G4std::vector* attValues = CreateAttValues(); + + if (!attValues) { + os << "G4VTrajectory::ShowTrajectory: no attribute values defined."; + return; + } + + const G4std::map* attDefs = GetAttDefs(); + if (!attDefs) { + os << "G4VTrajectory::ShowTrajectory:" + "\n ERROR: no attribute definitions for attribute values."; + return; + } + + os << "Trajectory:"; + + G4std::vector::iterator iAttVal; + for (iAttVal = attValues->begin(); + iAttVal != attValues->end(); ++iAttVal) { + G4std::map::const_iterator iAttDef = + attDefs->find(iAttVal->GetName()); + if (iAttDef == attDefs->end()) { + os << "G4VTrajectory::ShowTrajectory:" + "\n WARNING: no matching definition for attribute \"" + << iAttVal->GetName() << "\", value: " + << iAttVal->GetValue(); + } + else { + os << "\n " << iAttDef->second.GetDesc() << ": " + << iAttVal->GetValue(); + } + } + + delete attValues; // AttValues must be deleted after use. + + //Now do trajectory points... + for (G4int i = 0; i < GetPointEntries(); i++) { + G4VTrajectoryPoint* aTrajectoryPoint = GetPoint(i); + G4std::vector* attValues + = aTrajectoryPoint->CreateAttValues(); + if (!attValues) { + os << + "\nG4VTrajectory::ShowTrajectory: no attribute values" + " for trajectory point defined."; + } + else { + const G4std::map* attDefs + = aTrajectoryPoint->GetAttDefs(); + if (!attDefs) { + os << "\nG4VTrajectory::ShowTrajectory:" + "\n ERROR: no attribute definitions for attribute values" + " for trajectory point defined."; + } + else { + G4std::vector::iterator iAttVal; + for (iAttVal = attValues->begin(); + iAttVal != attValues->end(); ++iAttVal) { + G4std::map::const_iterator iAttDef = + attDefs->find(iAttVal->GetName()); + if (iAttDef == attDefs->end()) { + os << "\nG4VTrajectory::ShowTrajectory:" + "\n WARNING: no matching definition for trajectory" + " point attribute \"" + << iAttVal->GetName() << "\", value: " + << iAttVal->GetValue(); + } + else { + os << "\n " << iAttDef->second.GetDesc() << ": " + << iAttVal->GetValue(); + } + } + } + delete attValues; // AttValues must be deleted after use. + } + } +} + +void G4VTrajectory::DrawTrajectory(G4int i_mode) const +{ + // If i_mode>=0, draws a trajectory as a polyline (blue for + // positive, red for negative, green for neutral) and, if i_mode!=0, + // adds markers - yellow circles for step points and magenta squares + // for auxiliary points, if any - whose screen size in pixels is + // given by abs(i_mode)/1000. E.g: i_mode = 5000 gives easily + // visible markers. + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if (!pVVisManager) return; + + const G4double markerSize = abs(i_mode)/1000; + G4bool lineRequired (i_mode >= 0); + G4bool markersRequired (markerSize > 0.); + + G4Polyline trajectoryLine; + G4Polymarker stepPoints; + G4Polymarker auxiliaryPoints; + + for (G4int i = 0; i < GetPointEntries() ; i++) { + G4VTrajectoryPoint* aTrajectoryPoint = GetPoint(i); + const G4std::vector* auxiliaries + = aTrajectoryPoint->GetAuxiliaryPoints(); + if (auxiliaries) { + for (size_t iAux = 0; iAux < auxiliaries->size(); ++iAux) { + const G4ThreeVector pos((*auxiliaries)[iAux]); + if (lineRequired) { + trajectoryLine.push_back(pos); + } + if (markersRequired) { + auxiliaryPoints.push_back(pos); + } + } + } + const G4ThreeVector pos(aTrajectoryPoint->GetPosition()); + if (lineRequired) { + trajectoryLine.push_back(pos); + } + if (markersRequired) { + stepPoints.push_back(pos); + } + } + + if (lineRequired) { + G4Colour colour; + const G4double charge = GetCharge(); + if(charge>0.) colour = G4Colour(0.,0.,1.); // Blue = positive. + else if(charge<0.) colour = G4Colour(1.,0.,0.); // Red = negative. + else colour = G4Colour(0.,1.,0.); // Green = neutral. + G4VisAttributes trajectoryLineAttribs(colour); + trajectoryLine.SetVisAttributes(&trajectoryLineAttribs); + pVVisManager->Draw(trajectoryLine); + } + if (markersRequired) { + auxiliaryPoints.SetMarkerType(G4Polymarker::squares); + auxiliaryPoints.SetScreenSize(markerSize); + auxiliaryPoints.SetFillStyle(G4VMarker::filled); + G4VisAttributes auxiliaryPointsAttribs(G4Colour(0.,1.,1.)); // Magenta + auxiliaryPoints.SetVisAttributes(&auxiliaryPointsAttribs); + pVVisManager->Draw(auxiliaryPoints); + + stepPoints.SetMarkerType(G4Polymarker::circles); + stepPoints.SetScreenSize(markerSize); + stepPoints.SetFillStyle(G4VMarker::filled); + G4VisAttributes stepPointsAttribs(G4Colour(1.,1.,0.)); // Yellow. + stepPoints.SetVisAttributes(&stepPointsAttribs); + pVVisManager->Draw(stepPoints); + } +} diff --git a/source/visualization/FukuiRenderer/CUSTOMIZE b/source/visualization/FukuiRenderer/CUSTOMIZE new file mode 100644 index 0000000000..81fe17a88f --- /dev/null +++ b/source/visualization/FukuiRenderer/CUSTOMIZE @@ -0,0 +1,261 @@ +########################################### +## Environmental variables to CUSTOMIZE ## +## Geant4 DAWNFILE visualization driver ## +########################################### + + Sept. 1, 2002 + Satoshi Tanaka + stanaka@cs.ritsumei.ac.jp + +#----- << G4DAWNFILE_DEST_DIR >> ----- +# Set a directory where g4_XX.prim and g4_XX.eps files +# are generated. +# Do not forget to add the file separator +# "/" (Unix/Linux) or "\" (Windows) at the end. +# The default directory is the current directory. +# +# Example: +# +# setenv G4DAWNFILE_DEST_DIR "/home/username/tmp/" + + +#----- << G4DAWNFILE_MAX_FILE_NUM >> ----- +# Set a maximal number of generated g4_XX.prim files. +# Upto this number "XX" is automatically incremented, +# starting from "00". +# The default number is 100. +# +# Example: +# +# setenv G4DAWNFILE_MAX_FILE_NUM 100 + + +#----- << G4DAWNFILE_MULTI_WINDOW >> ----- +# Boolean flag to set on/off multi-window mode. +# If this variable is set and its value is non-zero, +# Geant4 invokes Renderer DAWN with the multi-X-window mode. +# Otherwise DAWN is invoked with the EPS mode, in which +# EPS files are generated and viewed with a PS viewer. +# The default value is "0". +# +# Example: +# +# setenv G4DAWNFILE_MULTI_WINDOW "0" +# setenv G4DAWNFILE_MULTI_WINDOW "1" + + +#----- << G4DAWNFILE_PRECISION >> ----- +# Set precision of double numbers in g4_XX.prim files. +# The number is used as +# sprintf( string, "%*.*g", (precision+8), precision, value). +# See G4DAWNFILESceneHandler::G4DAWNFILESceneHandler() +# for more details. +# The default precision is "9". +# +# Example: +# +# setenv G4DAWNFILE_PRECISION 9 + + +#----- << G4DAWNFILE_PS_VIEWER >> ----- +# Set a name of the PostScript viewer to visualize +# generated g4_XX.eps files. +# The default viewer name is "gv". +# +# Example: +# +# setenv G4DAWNFILE_PS_VIEWER gv + + +#----- << G4DAWNFILE_VIEWER >> ----- +# Set a name of the renderer to visualize +# generated g4_XX.prim files. +# The default renderer name is "dawn". +# Set this variable to "david" to execute +# volume-overlapping detection. +# +# Example: +# +# setenv G4DAWNFILE_VIEWER dawn +# setenv G4DAWNFILE_VIEWER david + +########################################### +## Environmental variables to CUSTOMIZE ## +## Renderer DAWN ## +########################################### + +#----- << DAWN_BATCH >> ----- +# Set on/off the batch mode. +# +# If this variable is set to "1", +# the DAWN GUI panel does not invoked. +# Visualization is not performed, either. +# But an EPS file is generated. +# +# If this variable is set to "a", +# the effects are the same as "1" except that +# every generated EPS data is appended to one file. +# In the on-line use of Renderer DAWN connected +# with the Geant4 DAWNFILE driver, +# you should also set as +# +# setenv G4DAWNFILE_MAX_FILENUM 1 +# +# The dafault value is "0", i.e., the batch mode is off. +# +# Example: +# +# setenv DAWN_BATCH "0" +# setenv DAWN_BATCH "1" +# setenv DAWN_BATCH "a" + + +#----- << DAWN_BFC_MODE >> ----- +# Set on/off the back-face-culling mode. +# If this mode is set on, analytical hidden-surface removal +# is skipped, and only back-face culling is performed. +# This mode is fast, but inaccurate. +# "1": on +# "0": off +# The default value of "0". +# +# Example: +# +# setenv DAWN_BFC_MODE "0" +# setenv DAWN_BFC_MODE "1" + + +#----- << DAWN_DEVICE >> ----- +# Set the default viewing device +# 1: PS: 2: XWIN, 3: PS2, 4: XWIN2, 5: OPEN_GL +# +# Note: This variable is effective only in the +# off-line use of Renderer DAWN. +# +# Example: +# +# setenv DAWN_DEVICE "1" +# setenv DAWN_DEVICE "2" +# setenv DAWN_DEVICE "3" +# setenv DAWN_DEVICE "4" +# setenv DAWN_DEVICE "5" + + +#----- << DAWN_HIDLINE_REMOVAL >> ----- +# Set on/off the hidden-line-removal mode +# If this mode is on, hidden-line removal is performed. +# "1": on +# "0": off +# The default value is "1". +# +# Example: +# +# setenv DAWN_HIDLINE_REMOVAL "0" +# setenv DAWN_HIDLINE_REMOVAL "1" + + +#----- << DAWN_PS_PREVIEWER >> ----- +# Set a name of the PostScript viewer. +# The default value is "gv". +# "NONE" to skip viewing. +# +# Example: +# +# setenv DAWN_PS_PREVIEWER "gv" + + +#----- << DAWN_UP_DIRECTION >> ----- +# Set viewing-upward direction. +# Select "Y" or "Z". +# The default is "Y", i.e., (0,1,0)-direction +# +# Example: +# +# setenv DAWN_UP_DIRECTION "Y" +# setenv DAWN_UP_DIRECTION "Z" + + +#----- << DAWN_USE_STENCIL >> ----- +# Set on/off use of the stencil buffer in the OpenGL mode. +# If this mode is on, edges are drawn. +# "1": on +# "0": off +# The default value of "0". +# +# Example: +# +# setenv DAWN_USE_STENCIL "0" +# setenv DAWN_USE_STENCIL "1" + + +############################################### +## Environmental variables to CUSTOMIZE ## +## Geant4 DAWN-Network visualization driver ## +## ## +## Note: This driver should be used only ## +## for remote visualizaton.) ## +############################################### + +#----- << G4DAWN_GUI_ALWAYS >> +# Boolean flag to control GUI invokation. +# If this variable is set and the value is non-zero, +# DAWN connected with GEANT4 always pops up GUI menu. +# The default is "0", i.e., no GUI. +# +# Example: +# +# setenv G4DAWN_GUI_ALWAYS "0" +# setenv G4DAWN_GUI_ALWAYS "1" + + +#----- << G4DAWN_HOST_NAME >> +# Set a host where Renderer DAWN is running with +# the INET mode, i.e., invoked as "dawn -G". +# If the environmental variable G4DAWN_NAMED_PIPE +# is set to "1", this host setting is ignored. +# +# Example: +# +# setenv G4DAWN_HOST_NAME cernsp.cern.ch + + +#----- << G4DAWN_MULTI_WINDOW >> +# Boolean flag to set on/off multi-window mode. +# If this variable is set and its value is non-zero, +# Geant4 invokes Renderer DAWN with the multi-X-window mode. +# Otherwise DAWN is invoked with the EPS mode, in which +# EPS files are generated and viewed with a PS viewer. +# The default value is "0". +# +# Example: +# +# setenv G4DAWN_MULTI_WINDOW "0" +# setenv G4DAWN_MULTI_WINDOW "1" + + +#----- << G4DAWN_NAMED_PIPE >> ----- +# Boolean flag to set on/off BSD-type Unix-domain connection. +# If this variable is set and the value is non-zero, +# Renderer DAWN connected with GEANT4 in the BSD-type Unix domain, +# i.e. through named pipe. +# The default is "0", i.e., do no use this type of connection. +# +# Example: +# +# setenv G4DAWN_NAMED_PIPE "0" +# setenv G4DAWN_NAMED_PIPE "1" + + +#----- << G4DAWN_PRECISION >> ----- +# Set precision of double numbers in g4_XX.prim files. +# The number is used as +# sprintf( string, "%*.*g", (precision+8), precision, value). +# See G4DAWNFILESceneHandler::G4DAWNFILESceneHandler() +# for more details. +# The default precision is "9". +# +# Example: +# +# setenv G4DAWN_PRECISION 9 + + diff --git a/source/visualization/FukuiRenderer/History b/source/visualization/FukuiRenderer/History index 2a22d4ad37..ba02f69d6e 100644 --- a/source/visualization/FukuiRenderer/History +++ b/source/visualization/FukuiRenderer/History @@ -1,3 +1,6 @@ +DAWN-V04-01-01 Satoshi TANAKA Sept 01, 2002 +- Precision control with "setenv G4DAWNFILE_PRECISION number". + DAWN-V03-02-01 Satoshi TANAKA Sept 18, 2001 - Maximal number of g4.prim file is changed from 99 to 100. diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh index 125cdc4b1b..0bbde39e1b 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILE.hh,v 1.8 2001/07/27 22:32:55 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA // DAWNFILE driver factory. diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh index e6c541b808..74a207b056 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DAWNFILESceneHandler.hh,v 1.10 2001/09/17 07:40:32 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DAWNFILESceneHandler.hh,v 1.12 2002/12/11 15:58:02 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA @@ -86,6 +86,12 @@ public: G4VSceneHandler::AddThis (polyhedra); } void AddThis ( const G4VSolid& solid ); + void AddThis ( const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); + } + void AddThis ( const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); + } void ClearTransientStore(); // Used for triggering detector re-drawing. @@ -229,6 +235,8 @@ private: char fG4PrimDestDir [256] ; char fG4PrimFileName[256] ; G4int fMaxFileNum ; + + G4int fPrec, fPrec2 ; }; diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh index fbf24a9887..0081b1ae85 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILEViewer.hh,v 1.8 2001/07/27 22:32:57 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA // DAWNFILE viewer - opens window, hard copy, etc. diff --git a/source/visualization/FukuiRenderer/include/G4FRClientServer.hh b/source/visualization/FukuiRenderer/include/G4FRClientServer.hh index 15e460ddf7..de2654467f 100644 --- a/source/visualization/FukuiRenderer/include/G4FRClientServer.hh +++ b/source/visualization/FukuiRenderer/include/G4FRClientServer.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRClientServer.hh,v 1.6 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA, Wed Jul 3 14:13:52 JST 1996 //////////////////////////////// diff --git a/source/visualization/FukuiRenderer/include/G4FRConst.hh b/source/visualization/FukuiRenderer/include/G4FRConst.hh index f95507afea..3bb34fb0a8 100644 --- a/source/visualization/FukuiRenderer/include/G4FRConst.hh +++ b/source/visualization/FukuiRenderer/include/G4FRConst.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRConst.hh,v 1.6 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA, Tue Jul 2 15:30:49 JST 1996 /////////////////////////////////// diff --git a/source/visualization/FukuiRenderer/include/G4FRFeatures.hh b/source/visualization/FukuiRenderer/include/G4FRFeatures.hh index 75382a246f..fd835533a6 100644 --- a/source/visualization/FukuiRenderer/include/G4FRFeatures.hh +++ b/source/visualization/FukuiRenderer/include/G4FRFeatures.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRFeatures.hh,v 1.5 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #if !defined G4_FR_FEATURES_HH #define G4_FR_FEATURES_HH diff --git a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc index 2bef66498d..b52d22247d 100644 --- a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc +++ b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FRSceneFunc.icc,v 1.1 2001/12/01 20:59:59 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FRSceneFunc.icc,v 1.2 2002/09/02 04:39:10 stanaka Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // @@ -1094,7 +1094,9 @@ void G4FRSCENEHANDLER::SendStrDouble( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g", char_string , dval ) ; + num_char = sprintf( command, "%s %*.*g", \ + char_string , \ + fPrec2, fPrec, dval ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble(), 1\n" ; } @@ -1114,7 +1116,9 @@ G4FRSCENEHANDLER::SendStrDouble2( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g", char_string , dval1, dval2 ) ; + num_char = sprintf( command, "%s %*.*g %*.*g", char_string , \ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble2(), 1\n" ; } @@ -1135,7 +1139,11 @@ G4FRSCENEHANDLER::SendStrDouble3( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g", char_string , dval1, dval2, dval3 ) ; + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g", \ + char_string , \ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2, \ + fPrec2, fPrec, dval3 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble3(), 1\n" ; } @@ -1157,8 +1165,12 @@ G4FRSCENEHANDLER::SendStrDouble4( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g %g", \ - char_string , dval1, dval2, dval3, dval4) ; + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g %*.*g", \ + char_string , \ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2, \ + fPrec2, fPrec, dval3, \ + fPrec2, fPrec, dval4) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble4(), 1\n" ; } @@ -1181,8 +1193,13 @@ G4FRSCENEHANDLER::SendStrDouble5( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g %g %g", \ - char_string , dval1, dval2, dval3, dval4, dval5 ) ; + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g", \ + char_string , \ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2, \ + fPrec2, fPrec, dval3, \ + fPrec2, fPrec, dval4, \ + fPrec2, fPrec, dval5 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble5(), 1\n" ; } @@ -1206,8 +1223,14 @@ G4FRSCENEHANDLER::SendStrDouble6( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g %g %g %g", \ - char_string , dval1, dval2, dval3, dval4, dval5, dval6 ) ; + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", \ + char_string , \ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2, \ + fPrec2, fPrec, dval3, \ + fPrec2, fPrec, dval4, \ + fPrec2, fPrec, dval5, \ + fPrec2, fPrec, dval6 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble6(), 1\n" ; } @@ -1232,8 +1255,15 @@ G4FRSCENEHANDLER::SendStrDouble7( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g %g %g %g %g", \ - char_string , dval1, dval2, dval3, dval4, dval5, dval6, dval7 ) ; + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", \ + char_string , \ + fPrec2, fPrec, dval1,\ + fPrec2, fPrec, dval2,\ + fPrec2, fPrec, dval3,\ + fPrec2, fPrec, dval4,\ + fPrec2, fPrec, dval5,\ + fPrec2, fPrec, dval6,\ + fPrec2, fPrec, dval7 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble7(), 1\n" ; } @@ -1262,9 +1292,19 @@ G4FRSCENEHANDLER::SendStrDouble11( const char* char_string , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g %g %g %g %g %g %g %g %g", \ - char_string , dval1, dval2, dval3, dval4, dval5, \ - dval6, dval7, dval8, dval9, dval10, dval11 ) ; + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g", \ + char_string ,\ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2, \ + fPrec2, fPrec, dval3, \ + fPrec2, fPrec, dval4, \ + fPrec2, fPrec, dval5, \ + fPrec2, fPrec, dval6, \ + fPrec2, fPrec, dval7, \ + fPrec2, fPrec, dval8, \ + fPrec2, fPrec, dval9, \ + fPrec2, fPrec, dval10,\ + fPrec2, fPrec, dval11 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble11(), 1\n" ; } @@ -1285,8 +1325,11 @@ G4FRSCENEHANDLER::SendIntDouble3( G4int ival , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%d %g %g %g", \ - ival , dval1, dval2, dval3 ) ; + num_char = sprintf( command, "%d %*.*g %*.*g %*.*g", \ + ival , \ + fPrec2, fPrec, dval1, \ + fPrec2, fPrec, dval2, \ + fPrec2, fPrec, dval3 ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendIntDouble3(),1\n" ; } @@ -1350,9 +1393,15 @@ G4FRSCENEHANDLER::SendStrDouble6Str( const char* char_string1 , G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%s %g %g %g %g %g %g %s", \ - char_string1, dval1, dval2 , dval3, dval4, \ - dval5 , dval6, char_string2 ); + num_char = sprintf( command, "%s %*.*g %*.*g %*.*g %*.*g %*.*g %*.*g %s", \ + char_string1,\ + fPrec2, fPrec, dval1 , \ + fPrec2, fPrec, dval2 , \ + fPrec2, fPrec, dval3 , \ + fPrec2, fPrec, dval4 , \ + fPrec2, fPrec, dval5 , \ + fPrec2, fPrec, dval6, \ + char_string2 ); if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrDouble6Str(), 1\n" ; } @@ -1385,7 +1434,7 @@ void G4FRSCENEHANDLER::SendDouble( G4double val ) G4int num_char ; char* command = new char [ COMMAND_BUF_SIZE ]; - num_char = sprintf( command, "%g", val ) ; + num_char = sprintf( command, "%*.*g", fPrec2, fPrec, val ) ; if( num_char < 0 ) { G4cerr << "ERROR G4FRSCENEHANDLER::SendStrInt(), 1\n" ; } diff --git a/source/visualization/FukuiRenderer/include/G4FRofstream.hh b/source/visualization/FukuiRenderer/include/G4FRofstream.hh index 4ebd4dc2f7..c31d1cc519 100644 --- a/source/visualization/FukuiRenderer/include/G4FRofstream.hh +++ b/source/visualization/FukuiRenderer/include/G4FRofstream.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRofstream.hh,v 1.5 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include"g4std/fstream" diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh index 7497493598..0ce4b5a80f 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRenderer.hh,v 1.7 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh index a9d6c2b957..85357e90ad 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FukuiRendererSceneHandler.hh,v 1.9 2001/09/17 07:40:32 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FukuiRendererSceneHandler.hh,v 1.11 2002/12/11 15:58:02 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Satoshi TANAKA, Fri Jun 28 11:19:19 JST 1996 @@ -91,6 +91,12 @@ public: G4VSceneHandler::AddThis (polyhedra); } void AddThis ( const G4VSolid& solid ); + void AddThis ( const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); + } + void AddThis ( const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); + } void ClearTransientStore(); // Used for triggering detector re-drawing. @@ -239,6 +245,9 @@ private: G4bool flag_saving_g4_prim ; const int COMMAND_BUF_SIZE ; + + G4int fPrec, fPrec2 ; + }; #endif diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh index a81bf0854e..a843ebc7c2 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererViewer.hh,v 1.7 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Satoshi TANAKA, Fri Jun 28 12:10:14 JST 1996 diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc index 2bc531fa56..9434949cc2 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILE.cc,v 1.9 2001/07/27 22:32:59 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA // DAWNFILE factory. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc index acb079ba1d..03e3c94d6f 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DAWNFILESceneHandler.cc,v 1.11 2001/12/01 20:52:06 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4DAWNFILESceneHandler.cc,v 1.12 2002/09/02 04:39:21 stanaka Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA // DAWNFILE scene. @@ -86,7 +86,8 @@ fSystem (system) , fPrimDest () , FRflag_in_modeling (false) , flag_saving_g4_prim (false) , -COMMAND_BUF_SIZE (G4FRofstream::SEND_BUFMAX) +COMMAND_BUF_SIZE (G4FRofstream::SEND_BUFMAX), +fPrec (9), fPrec2 (16) { // count instantiated scenes fSceneCount++; @@ -111,6 +112,15 @@ COMMAND_BUF_SIZE (G4FRofstream::SEND_BUFMAX) } if( fMaxFileNum < 1 ) { fMaxFileNum = 1 ; } + + //----- precision control + if( getenv( "G4DAWNFILE_PRECISION" ) != NULL ) { + sscanf( getenv("G4DAWNFILE_PRECISION"), "%d", &fPrec ) ; + } else { + fPrec = 9 ; + } + fPrec2 = fPrec + 7 ; + } diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc index c5c0fec5dd..80ef0baa82 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILEViewer.cc,v 1.13 2001/07/27 22:33:01 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA // DAWNFILE view - opens window, hard copy, etc. diff --git a/source/visualization/FukuiRenderer/src/G4FRClientServer.cc b/source/visualization/FukuiRenderer/src/G4FRClientServer.cc index 7bb8562e4a..b1010f9b43 100644 --- a/source/visualization/FukuiRenderer/src/G4FRClientServer.cc +++ b/source/visualization/FukuiRenderer/src/G4FRClientServer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FRClientServer.cc,v 1.5 2001/07/11 10:08:45 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // Satoshi TANAKA, Wed Jul 3 14:14:29 JST 1996 //////////////////////////////// diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc b/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc index 319adfa0ff..96e16d3f43 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRenderer.cc,v 1.7 2001/07/11 10:08:46 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc index 78eea6a688..b2316026bb 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FukuiRendererSceneHandler.cc,v 1.8 2001/12/01 20:52:06 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FukuiRendererSceneHandler.cc,v 1.9 2002/09/02 04:39:21 stanaka Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Satoshi TANAKA, Fri Jun 28 11:34:24 JST 1996 @@ -84,7 +84,8 @@ fSystem (system) , fPrimDest (system.GetPrimDest() ) , FRflag_in_modeling (false) , flag_saving_g4_prim (false) , -COMMAND_BUF_SIZE (G4FRClientServer::SEND_BUFMAX) +COMMAND_BUF_SIZE (G4FRClientServer::SEND_BUFMAX), +fPrec (9), fPrec2 (16) { //----- Connection to FukuiRenderer is set in the first scene @@ -110,6 +111,14 @@ COMMAND_BUF_SIZE (G4FRClientServer::SEND_BUFMAX) //----- count instantiated scenes fSceneCount++; + //----- precision control + if( getenv( "G4DAWN_PRECISION" ) != NULL ) { + sscanf( getenv("G4DAWN_PRECISION"), "%d", &fPrec ) ; + } else { + fPrec = 9 ; + } + fPrec2 = fPrec + 7 ; + } // G4FukuiRendererSceneHandler, constructor diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc index d060f64e82..2da39ee75c 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererViewer.cc,v 1.7 2001/07/11 10:08:46 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Satoshi TANAKA, Fri Jun 28 12:09:11 JST 1996 diff --git a/source/visualization/HepRep/GNUmakefile b/source/visualization/HepRep/GNUmakefile index 3b1b6b4a3f..6e52877b29 100644 --- a/source/visualization/HepRep/GNUmakefile +++ b/source/visualization/HepRep/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2001/11/08 21:50:51 perl Exp $ +# $Id: GNUmakefile,v 1.4 2002/11/20 16:37:26 duns Exp $ name := G4visHepRep @@ -10,6 +10,8 @@ include $(G4INSTALL)/config/architecture.gmk include $(G4INSTALL)/config/G4VIS_BUILD.gmk include $(G4INSTALL)/config/interactivity.gmk +CPPFLAGS += -I$(G4BASE)/digits+hits/hits/include +CPPFLAGS += -I$(G4BASE)/tracking/include CPPFLAGS += -I$(G4BASE)/visualization/management/include CPPFLAGS += -I$(G4BASE)/visualization/modeling/include CPPFLAGS += -I$(G4BASE)/global/management/include diff --git a/source/visualization/HepRep/History b/source/visualization/HepRep/History index cb8c60b94c..6dd0984138 100644 --- a/source/visualization/HepRep/History +++ b/source/visualization/HepRep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2002/02/10 07:12:52 perl Exp $ +$Id: History,v 1.24 2002/12/11 16:05:16 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,40 @@ committal in the CVS repository ! History file for visualization/HepRep sub-category --------------------------------------------------------------------------- +11th December 2002 John Allison (vis-V04-01-10) +- Fixed default view parameters (global culling false). + +9th December 2002 Mark Donszelmann +- Fixed bug that files were left open. Will close now, apart from stdin/stderr +- Fixed color call not to use array creation. +- Fixed HepRep standard (reader related), G4 is a writer. +- Fixed include file now to only include HepRep.h (which includes all others) + +3rd December 2002 Mark Donszelmann +- Fixed bug that XML Output can be routed to stdout or stderr. + +27th November 2002 Mark Donszelmann +- Fixed core dump (Solaris) if open HepRepXML and closed it w/o writing anything + +27th November 2002 John Allison (vis-V04-01-08) +- Changed mickname of HepRep to HepRepXML. +- Fixed description of HepRepFile. + +26th November 2002 Mark Donszelmann +- Fixed FillStyle, LineStyle, LineWidth, HasFrame and Symbol Names +- Fixed parent-child relationship for calorimeter hits +- Fixed material state number, now a string +- Fixed fillColor to be equal to color + +25th November 2002 Mark Donszelmann +- Fixed HepRep1 warnings in HepRepFileSceneHandler +- Fixed HepRep2 radius of markers to be non-zero +- Fixed HepRep2 attributes some of which had wrong names, especially the markers +- Fixed HepRep2 filename to have sequence number + +13th November 2002 Mark Donszelmann +- Added HepRep2 Driver + 4th February 2002 Joseph Perl (vis-V04-00-01) - Check for missing hierarchy layers in HepRepXMLWriter. (Not strictly needed since have a culled layer check in SceneHandler, diff --git a/source/visualization/HepRep/README b/source/visualization/HepRep/README index 0f68f7a3e7..59b01651c9 100644 --- a/source/visualization/HepRep/README +++ b/source/visualization/HepRep/README @@ -3,6 +3,13 @@ by the WIRED Event Display client. It requires no external packages. The HepRep graphics format is further described at http://heprep.freehep.org + + +Two different drivers area available for either HepRep1 or HepRep2. + + +Driver: HepRepFile +------------------ The version of HepRep produced by this driver is HepRep Version 1. Each call to /vis/viewer/update @@ -18,3 +25,36 @@ This will reduce the file to about five percent of its original size. Joseph Perl 9 November 2001 + +Driver: HepRepXML +----------------- +The version of HepRep produced by this driver is HepRep Version 2. + +To set the base part of the filename (filename = basefilename-seqno.heprep): +/vis/scene/create basefilename + +To route the HepRep XML output to stdout (or stderr) use: +/vis/scene/create stdout + +To select the driver +/vis/open HepRepXML + +Any call to draw part of an event will open the file and start writing. + +Each file, apart from stdin/stderr, is closed by: +/vis/viewer/flush +(WARNING: files will not contain geometry if not flushed. G4 exit will only +close file) + +Multiple events can be written by: +/vis/scene/endOfSceneAction accumulate + +View the file using the WIRED Event Display, available from: +http://www.slac.stanford.edu/BFROOT/www/Computing/Graphics/Wired/ + +or in future + +http://wired.freehep.org + +9 Dec 2002 +Mark Donszelmann diff --git a/source/visualization/HepRep/copyfreehep b/source/visualization/HepRep/copyfreehep new file mode 100644 index 0000000000..85ec705a78 --- /dev/null +++ b/source/visualization/HepRep/copyfreehep @@ -0,0 +1,10 @@ +export HEPREP=$FREEHEP/hep/graphics/heprep +cp $FREEHEP/org/freehep/jni/FreeHepTypes.h include +cp $HEPREP/geant4/*.hh include +cp $HEPREP/streamer-c++/include/*.h include +cp $HEPREP/include/HEPREP/*.h include/HEPREP +cp $HEPREP/geant4/*.cc src +cp $HEPREP/streamer-c++/*.cc src +rm src/HepRepStreamerExample.cc +rm src/HepRepStreamerTest.cc + diff --git a/source/visualization/HepRep/copyfreehep.bat b/source/visualization/HepRep/copyfreehep.bat new file mode 100755 index 0000000000..76ce852d34 --- /dev/null +++ b/source/visualization/HepRep/copyfreehep.bat @@ -0,0 +1,9 @@ +set HEPREP=%FREEHEP%\hep\graphics\heprep +copy %FREEHEP%\org\freehep\jni\FreeHepTypes.h include +copy %HEPREP%\geant4\include\*.hh include +copy "%HEPREP%\streamer-c++\include\*.h" include +copy %HEPREP%\include\HEPREP\*.h include\HEPREP +copy %HEPREP%\geant4\*.cc src +copy "%HEPREP%\streamer-c++\*.cc" src +del src\HepRepStreamerExample.cc +del src\HepRepStreamerTest.cc diff --git a/source/visualization/HepRep/include/DefaultHepRepAction.h b/source/visualization/HepRep/include/DefaultHepRepAction.h new file mode 100644 index 0000000000..d5b23b3f03 --- /dev/null +++ b/source/visualization/HepRep/include/DefaultHepRepAction.h @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * 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 DEFAULTHEPREPACTION_H +#define DEFAULTHEPREPACTION_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepAction.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepAction : public virtual HEPREP::HepRepAction { + + private: + std::string name; + std::string expression; + + public: + DefaultHepRepAction(std::string name, std::string expression); + ~DefaultHepRepAction(); + + std::string getName(); + std::string getExpression(); + HEPREP::HepRepAction* copy(); +}; + +#endif diff --git a/source/visualization/HepRep/include/DefaultHepRepAttDef.h b/source/visualization/HepRep/include/DefaultHepRepAttDef.h new file mode 100644 index 0000000000..8957005b85 --- /dev/null +++ b/source/visualization/HepRep/include/DefaultHepRepAttDef.h @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * 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 DEFAULTHEPREPATTDEF_H +#define DEFAULTHEPREPATTDEF_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepAttDef.h" + +/** + * + * @author M.Donszelmann + */ + +class DefaultHepRepAttDef : public virtual HEPREP::HepRepAttDef { + + private: + std::string name, desc, category, extra; + + public: + DefaultHepRepAttDef(std::string name, std::string desc, std::string category, std::string extra); + ~DefaultHepRepAttDef(); + + HEPREP::HepRepAttDef* copy(); + std::string getName(); + std::string getLowerCaseName(); + std::string getDescription(); + std::string getCategory(); + std::string getExtra(); +}; + +#endif diff --git a/source/visualization/HepRep/include/DefaultHepRepAttValue.h b/source/visualization/HepRep/include/DefaultHepRepAttValue.h new file mode 100644 index 0000000000..2c51b77a25 --- /dev/null +++ b/source/visualization/HepRep/include/DefaultHepRepAttValue.h @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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 DEFAULTHEPREPATTVALUE_H +#define DEFAULTHEPREPATTVALUE_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepAttValue.h" + +/** + * + * @author M.Donszelmann + */ + +class DefaultHepRepAttValue : public virtual HEPREP::HepRepAttValue { + + private: + enum { LABELSTRINGS_LEN = 4 }; + std::string name; + int type; + + // values implemented as separate items, so that they do not take up unnecessary space for an Object + // only ONE of these is filled + std::string stringValue; + long longValue; + double doubleValue; + bool booleanValue; + std::vector colorValue; + + int showLabelValue; + std::string labelStrings[LABELSTRINGS_LEN]; + + void init(); + + public: + DefaultHepRepAttValue(std::string name, std::string value, int showLabel); + DefaultHepRepAttValue(std::string name, long value, int showLabel); + DefaultHepRepAttValue(std::string name, int value, int showLabel); + DefaultHepRepAttValue(std::string name, double value, int showLabel); + DefaultHepRepAttValue(std::string name, bool value, int showLabel); + DefaultHepRepAttValue(std::string name, std::vector value, int showLabel); + ~DefaultHepRepAttValue(); + + HEPREP::HepRepAttValue* copy(); + + std::string getName(); + std::string getLowerCaseName(); + int getType(); + std::string getTypeName(); + int showLabel(); + std::string getString(); + long getLong(); + int getInteger(); + double getDouble(); + bool getBoolean(); + std::vector getColor(); + std::string getAsString(); + + std::string toShowLabel(); +}; + +#endif + diff --git a/source/visualization/HepRep/include/DefaultHepRepTreeID.h b/source/visualization/HepRep/include/DefaultHepRepTreeID.h new file mode 100644 index 0000000000..d4d9f2e418 --- /dev/null +++ b/source/visualization/HepRep/include/DefaultHepRepTreeID.h @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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 DEFAULTHEPREPTREEID_H +#define DEFAULTHEPREPTREEID_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepTreeID.h" + +/** + * + * @author M.Donszelmann + */ + +class DefaultHepRepTreeID : public virtual HEPREP::HepRepTreeID { + + private: + std::string name; + std::string version; + std::string qualifier; + + public: + DefaultHepRepTreeID(std::string name, std::string version, std::string qualifier = "top_level"); + ~DefaultHepRepTreeID(); + + std::string getQualifier(); + void setQualifier(std::string qualifier); + std::string getName(); + std::string getVersion(); + HEPREP::HepRepTreeID* copy(); +}; + +#endif diff --git a/source/visualization/HepRep/include/FreeHepTypes.h b/source/visualization/HepRep/include/FreeHepTypes.h new file mode 100644 index 0000000000..7b295b43b4 --- /dev/null +++ b/source/visualization/HepRep/include/FreeHepTypes.h @@ -0,0 +1,32 @@ +// +// ******************************************************************** +// * 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 FREEHEPTYPES_H +#define FREEHEPTYPES_H + +#ifdef WIN32 +// Disable warning C4786: identifier was truncated to '255' characters in the debug information + #pragma warning ( disable : 4786 ) +#endif + +#endif + diff --git a/source/visualization/HepRep/include/G4HepRep.hh b/source/visualization/HepRep/include/G4HepRep.hh new file mode 100644 index 0000000000..7d747f6589 --- /dev/null +++ b/source/visualization/HepRep/include/G4HepRep.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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +/** + * @author Mark Donszelmann + */ +#ifndef G4HEPREP_HH +#define G4HEPREP_HH 1 + +//G4 +#include "G4VGraphicsSystem.hh" + +class G4HepRep: public G4VGraphicsSystem { + public: + G4HepRep (); + virtual ~G4HepRep (); + G4VSceneHandler* CreateSceneHandler (const G4String& name = ""); + G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); + +}; + +#endif diff --git a/source/visualization/HepRep/include/G4HepRepFile.hh b/source/visualization/HepRep/include/G4HepRepFile.hh index fb96a38baf..72c5628f33 100644 --- a/source/visualization/HepRep/include/G4HepRepFile.hh +++ b/source/visualization/HepRep/include/G4HepRepFile.hh @@ -21,8 +21,30 @@ // ******************************************************************** // // -// $Id: G4HepRepFile.hh,v 1.4 2002/02/02 04:00:12 perl Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************************************************** +// * 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: G4HepRepFile.hh,v 1.5 2002/12/13 11:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh index 34d54c417f..32785437aa 100644 --- a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh +++ b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh @@ -21,10 +21,32 @@ // ******************************************************************** // // -// $Id: G4HepRepFileSceneHandler.hh,v 1.7 2002/02/02 04:00:14 perl Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************************************************** +// * 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: G4HepRepFileSceneHandler.hh,v 1.10 2002/12/13 11:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // Joseph Perl 27th January 2002 // A base class for a scene handler to export geometry and trajectories // to the HepRep xml file format. @@ -73,6 +95,8 @@ public: 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(); @@ -122,8 +146,6 @@ protected: G4int fCurrentDepth; // Current depth of geom. hierarchy. G4VPhysicalVolume* fpCurrentPV; // Current physical volume. G4LogicalVolume* fpCurrentLV; // Current logical volume. - const G4ModelingParameters* fpOriginalMP; // Keeps pointer to original. - G4ModelingParameters* fpNonCullingMP; // For temporary non-culling. private: HepRepXMLWriter *hepRepXMLWriter; diff --git a/source/visualization/HepRep/include/G4HepRepFileViewer.hh b/source/visualization/HepRep/include/G4HepRepFileViewer.hh index 015d568718..0d081f561b 100644 --- a/source/visualization/HepRep/include/G4HepRepFileViewer.hh +++ b/source/visualization/HepRep/include/G4HepRepFileViewer.hh @@ -21,8 +21,30 @@ // ******************************************************************** // // -// $Id: G4HepRepFileViewer.hh,v 1.5 2002/02/02 04:00:16 perl Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************************************************** +// * 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: G4HepRepFileViewer.hh,v 1.6 2002/12/13 11:17:59 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/HepRep/include/G4HepRepSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepSceneHandler.hh new file mode 100644 index 0000000000..4989f280d8 --- /dev/null +++ b/source/visualization/HepRep/include/G4HepRepSceneHandler.hh @@ -0,0 +1,155 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +/** + * @author Mark Donszelmann + */ + +#ifndef G4HEPREPSCENEHANDLER_HH +#define G4HEPREPSCENEHANDLER_HH 1 + +#include "globals.hh" +#include "g4std/iostream" + +// HepRep +#include "HEPREP/HepRep.h" + +//G4 +#include "G4VGraphicsSystem.hh" +#include "G4VSceneHandler.hh" +#include "G4Visible.hh" +#include "G4Material.hh" +#include "G4LogicalVolume.hh" +#include "G4PhysicalVolumeModel.hh" + +//class G4HepRep; + +class G4HepRepSceneHandler: public G4VSceneHandler { + + public: + G4HepRepSceneHandler (G4VGraphicsSystem& system, const G4String& name = ""); + virtual ~G4HepRepSceneHandler (); + + 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& visAttribs); + void PostAddThis (); + + void EstablishSpecials(G4PhysicalVolumeModel&); + + void AddPrimitive (const G4Polyline&); + void AddPrimitive (const G4Text&); + void AddPrimitive (const G4Circle&); + void AddPrimitive (const G4Square&); + void AddPrimitive (const G4Polyhedron&); + void AddPrimitive (const G4NURBS&); + + void AddPrimitive (const G4Polymarker&); + void AddPrimitive (const G4Scale& scale) { + G4VSceneHandler::AddPrimitive(scale); + } + + void BeginPrimitives (const G4Transform3D& objectTransformation); + void EndPrimitives (); + void BeginModeling (); + void EndModeling (); + + static G4int GetSceneCount () { return sceneCount; } + + HEPREP::HepRep *GetHepRep() { return heprep; } + HEPREP::HepRepWriter *GetHepRepWriter() { return writer; } + HEPREP::HepRepFactory *GetHepRepFactory(); + void open(); + void close(); + + protected: +// void RequestPrimitives (const G4VSolid& solid); + + private: + static G4int sceneCount; // No. of extanct scenes. + static G4int sceneIdCount; // static counter for scenes. + G4int fileNo; // file sequence number + G4int currentDepth; + G4VPhysicalVolume* currentPV; + G4LogicalVolume* currentLV; + const G4ModelingParameters* originalMP; // Keeps pointer to original. + G4ModelingParameters* nonCullingMP; // For temporary non-culling. + + G4Transform3D transform; + + void SetColour (HEPREP::HepRepAttribute *attribute, const G4Colour& color,const G4String& key = G4String("Color")); + void SetLine (HEPREP::HepRepInstance *instance, const G4Visible& visible); + void SetMarker (HEPREP::HepRepInstance *instance, const G4VMarker& marker); + HEPREP::HepRepInstance* CreateInstance(HEPREP::HepRepInstance* p, HEPREP::HepRepType* altType); + bool IsEventData (); + + G4std::ostream* out; + HEPREP::HepRepFactory* heprepFactory; + HEPREP::HepRepWriter* writer; + HEPREP::HepRepInstance *parent; + HEPREP::HepRep *heprep; + HEPREP::HepRepType *geometryType; + HEPREP::HepRepType *eventType; + HEPREP::HepRepType *trackType; + HEPREP::HepRepType *calHitType; + HEPREP::HepRepType *hitType; +}; + +#endif + diff --git a/source/visualization/HepRep/include/G4HepRepViewer.hh b/source/visualization/HepRep/include/G4HepRepViewer.hh new file mode 100644 index 0000000000..f60d0ebb43 --- /dev/null +++ b/source/visualization/HepRep/include/G4HepRepViewer.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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +/** + * @author Mark Donszelmann + */ + +#ifndef G4HEPREPVIEWER_HH +#define G4HEPREPVIEWER_HH 1 + +// HepRep +#include "HEPREP/HepRep.h" + +// Geant4 +#include "G4VViewer.hh" + +class G4HepRepViewer: public G4VViewer { + public: + G4HepRepViewer (G4VSceneHandler& scene, const G4String& name = ""); + virtual ~G4HepRepViewer (); + void SetView (); + void ClearView (); + void DrawView (); + void ShowView (); + void FinishView (); + + private: + bool drawn; +}; + +#endif diff --git a/source/visualization/HepRep/include/HEPREP/HepRep.h b/source/visualization/HepRep/include/HEPREP/HepRep.h new file mode 100644 index 0000000000..0ccbda7ce2 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRep.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREP_H +#define HEPREP_HEPREP_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +// Include all other HepRep header files here for convenience +#include "HEPREP/HepRepAction.h" +#include "HEPREP/HepRepAttDef.h" +#include "HEPREP/HepRepAttribute.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepConstants.h" +#include "HEPREP/HepRepDefinition.h" +#include "HEPREP/HepRepFactory.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepIterator.h" +#include "HEPREP/HepRepIteratorListener.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepSelectFilter.h" +#include "HEPREP/HepRepTreeID.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepTypeTree.h" +#include "HEPREP/HepRepWriter.h" + +namespace HEPREP { + +class HepRepAction; +class HepRepInstanceTree; +class HepRepSelectFilter; +class HepRepType; +class HepRepTypeTree; + +/** + * The HepRep interface. + * + * Any of these methods may throw a UnsupportedOperationException in Java. + * + * This interface is NOT final yet. + * + * @author Mark Donszelmann + */ +class HepRep { + +public: + /// Destructor. + virtual ~HepRep() { /* nop */; } + + /** + * Add a layer to the list of layers in this heprep. + * The layer is added to the back of the list. + * + * @param layer name of layer to be added to the back of the list. + */ + virtual bool addLayer(std::string layer) = 0; + + /** + * Returns the list of layers. + * + * @return the known layer names, in the order back-to-front. + */ + virtual std::vector * getLayerOrder() = 0; + + /** + * Add a typetree to this heprep. + * + * @param typeTree to be added. + * @return false only if the tree is written immediately to some stream. + */ + virtual bool addTypeTree(HepRepTypeTree * typeTree) = 0; + + /** + * Remove a typetree from this heprep. + * + * @param typeTree to be removed. + */ + virtual void removeTypeTree(HepRepTypeTree * typeTree) = 0; + + /** + * Returns the collection of all typetrees of this heprep. + * + * @return collection of HepRepTypeTrees. + */ + virtual std::vector * getTypeTrees() = 0; + + /** + * Returns a named and versioned typetree. + * + * @param name name of the typetree. + * @param version version of the typetree. + * @return named and versioned HepRepTypeTree. + */ + virtual HepRepTypeTree * getTypeTree(std::string name, std::string version) = 0; + + /** + * Searches for a named type in any of the typetrees. + * The first occurrence found is returned. + * + * @param name name of type. + * @return named HepRepType. + */ + virtual HepRepType * getType(std::string name) = 0; + + /** + * Adds an instancetree to this heprep. + * + * @param instanceTree to be added. + * @return false only if the tree is written immediately to some stream. + */ + virtual bool addInstanceTree(HepRepInstanceTree * instanceTree) = 0; + + /** + * Remove an instanectree from this heprep. + * + * @param instanceTree to be removed. + */ + virtual void removeInstanceTree(HepRepInstanceTree * instanceTree) = 0; + + /** + * Returns a collection of instancetrees. + * + * @return collection of HepRepInstanceTrees. + */ + virtual std::vector * getInstanceTrees() = 0; + + /** + * Returns a named and versioned instancetree. + * FIXME: doc is incorrect here, should only return TOP of the tree. Filling + * in should be done by getInstances calls. + *

+ * This tree needs to be added to the heprep afterwards. + * + * @param name name of the instancetree. + * @param version version of the instancetree. + * @return HepRepIntanceTree + */ + virtual HepRepInstanceTree * getInstanceTreeTop(std::string name, std::string version) = 0; + + /** + * Returns a named and versioned instancetree for a list of typenames. + *

+ * This tree needs to be added to the heprep afterwards. + * + * @param name name of the instancetree. + * @param version version of the instancetree. + * @param typeNames a list of typenames for which we need instancetrees. + * @return HepRepIntanceTree + */ + virtual HepRepInstanceTree * getInstances(std::string name, std::string version, std::vector typeNames) = 0; + + /** + * Returns a named and versioned instancetree for a list of typenames + * after executing some action and for specific filters. + * + * This tree needs to be added to the heprep afterwards. + *

+ * The inversion effect of invertAtts depends on the values of + * GetDrawAtts and GetNonDrawAtts as follows: + *

    + *
  • GetDrawAtts GetNonDrawAtts effect of InvertAtts + *
  • FALSE FALSE all Attributes specified will be downloaded + *
  • TRUE FALSE Draw Attributes specified will be omitted, NonDraw Attributes specified will be included + *
  • FALSE TRUE Draw Attributes specified will be included, NonDraw Attributes specified will be omitted + *
  • TRUE TRUE all Attributes specified will be omitted + *
+ * + * @param name name of the instancetree. + * @param version version of the instancetree. + * @param typeNames a list of typenames for which we need instancetrees. + * @param actions execute this list of actions before returning. + * @param getPoints include the HepRepPoints in the instance tree. + * @param getDrawAtts include the Draw attributes in the instance tree. + * @param getNonDrawAtts include the Non-Draw attributes in the instance tree. + * @param invertAtts list of attributes to be included or not depending on getDrawAtts and getNonDrawAtts. + * @return HepRepIntanceTree + */ + virtual HepRepInstanceTree * getInstancesAfterAction(std::string name, std::string version, std::vector typeNames, std::vector actions, bool getPoints, bool getDrawAtts, bool getNonDrawAtts, std::vector invertAtts) = 0; + + /** + * Returns last exception thrown and clears it. Useful for implementations without + * exception handling. + * + * @return last exception and clears it. + */ + virtual std::string checkForException() = 0; + + /** + * Returns a deep copy of the heprep, with all its attached trees, where + * instances are filtered using a HepRepSelectFilter. + * + * @param filter to be used for filtering instances. + * @return copy of heprep. + */ + virtual HepRep * copy(HepRepSelectFilter * filter = NULL) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREP_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAction.h b/source/visualization/HepRep/include/HEPREP/HepRepAction.h new file mode 100644 index 0000000000..1fe66d4372 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepAction.h @@ -0,0 +1,71 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPACTION_H +#define HEPREP_HEPREPACTION_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +namespace HEPREP { + +/** + * HepRepAction interface. + * + * @author Mark Donszelmann + */ +class HepRepAction { + +public: + /// Destructor. + virtual ~HepRepAction() { /* nop */; } + + /** + * Returns name of this action. + * + * @return name of this action. + */ + virtual std::string getName() = 0; + + /** + * Returns expression associated with this action. + * + * @return expression of this action. + */ + virtual std::string getExpression() = 0; + + /** + * Returns a deep copy of this action. + * + * @return copy of this action. + */ + virtual HepRepAction * copy() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPACTION_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h b/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h new file mode 100644 index 0000000000..26e05784d0 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPATTDEF_H +#define HEPREP_HEPREPATTDEF_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +namespace HEPREP { + +/** + * HepRepAttDef interface. + * + * @author Mark Donszelmann + */ +class HepRepAttDef { + +public: + /// Destructor. + virtual ~HepRepAttDef() { /* nop */; } + + /** + * Returns the mixed case name of this attdef. + * + * @return name. + */ + virtual std::string getName() = 0; + + /** + * Returns the lowercased name of this attdef. + * + * @return lowercased name. + */ + virtual std::string getLowerCaseName() = 0; + + /** + * Returns a description of this attdef. + * + * @return description. + */ + virtual std::string getDescription() = 0; + + /** + * Returns category of this attdef. + * + * @return category. + */ + virtual std::string getCategory() = 0; + + /** + * Returns any extra information of this attdef. + * + * @return extra info. + */ + virtual std::string getExtra() = 0; + + /** + * Returns a deep copy of this attdef. + * + * @return copy of this attdef. + */ + virtual HepRepAttDef * copy() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPATTDEF_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h b/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h new file mode 100644 index 0000000000..5952999799 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h @@ -0,0 +1,142 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPATTVALUE_H +#define HEPREP_HEPREPATTVALUE_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +namespace HEPREP { + +/** + * HepRepAttValue interface. + * + * @author Mark Donszelmann + */ +class HepRepAttValue { + +public: + /// Destructor. + virtual ~HepRepAttValue() { /* nop */; } + + /** + * Returns name of the attvalue. + * + * @return Capitalized Name. + */ + virtual std::string getName() = 0; + + /** + * Returns lowercased name of the attvalue. + * + * @return Lowercased Name. + */ + virtual std::string getLowerCaseName() = 0; + + /** + * Returns type of the attvalue, defined in HepRepConstants with names TYPE_xxx. + * + * @return type. + */ + virtual int getType() = 0; + + /** + * Returns the Java-like name for the type of this attvalue. + * + * @return type name. + */ + virtual std::string getTypeName() = 0; + + /** + * Returns the flag bits for showing this attvalue as a label, defined in HepRepConstants with names SHOW_xxx. + * + * @return flag bits if should be shown as label. + */ + virtual int showLabel() = 0; + + /** + * Returns value as string. + * + * @return value as string (if type is string). + */ + virtual std::string getString() = 0; + + /** + * Returns value as string. + * + * @return value (of any type) in string format. + */ + virtual std::string getAsString() = 0; + + /** + * Returns value as Color. + * + * @return value as Color. + */ + virtual std::vector getColor() = 0; + + /** + * Returns value as long. + * + * @return value as long. + */ + virtual long getLong() = 0; + + /** + * Returns value as int. + * + * @return value as integer. + */ + virtual int getInteger() = 0; + + /** + * Returns value as double. + * + * @return value as double. + */ + virtual double getDouble() = 0; + + /** + * Returns value as boolean. + * + * @return value as boolean. + */ + virtual bool getBoolean() = 0; + + /** + * Returns a deep copy of this attvalue. + * + * @return copy of this attvalue. + */ + virtual HepRepAttValue * copy() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPATTVALUE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h b/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h new file mode 100644 index 0000000000..dd865090ae --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h @@ -0,0 +1,174 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPATTRIBUTE_H +#define HEPREP_HEPREPATTRIBUTE_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +#include "HEPREP/HepRepConstants.h" + +namespace HEPREP { + +class HepRepAttValue; + +/** + * HepRepAttribute interface. + * + * @author Mark Donszelmann + */ +class HepRepAttribute { + +public: + /// Destructor. + virtual ~HepRepAttribute() { /* nop */; } + + /** + * Adds an attValue. + * + * @param attValue to be added. + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(HepRepAttValue * attValue) = 0; + + + /** + * Adds a char* attValue as a String. + * This call is mapped to addAttValue(std::string, std::string, int); and necessary + * because C++ converts char* into bool and would thus call addAttValue(std::string, bool, int) + * for a call such as addAttValue("drawAs", "Cylinder", 0); + * + * @param key name of attValue + * @param value value of attValue + * @param showLabel show this as label + * @return false if an IOException was created. + */ + bool addAttValue(std::string key, char* value, int showLabel = HepRepConstants::SHOW_NONE) { + return addAttValue(key, std::string(value), showLabel); + } + + /** + * Adds an attValue. + * + * @param key name of attValue + * @param value value of attValue + * @param showLabel show this as label + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(std::string key, std::string value, int showLabel = HepRepConstants::SHOW_NONE) = 0; + + /** + * Adds an attValue. + * + * @param key name of attValue + * @param value value of attValue + * @param showLabel show this as label + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(std::string key, int value, int showLabel = HepRepConstants::SHOW_NONE) = 0; + + /** + * Adds an attValue. + * + * @param key name of attValue + * @param value value of attValue + * @param showLabel show this as label + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(std::string key, double value, int showLabel = HepRepConstants::SHOW_NONE) = 0; + + /** + * Adds an attValue. + * + * @param key name of attValue + * @param value value of attValue + * @param showLabel show this as label + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(std::string key, bool value, int showLabel = HepRepConstants::SHOW_NONE) = 0; + + /** + * Adds a Color attValue. + * + * @param key name of attValue + * @param value value of attValue + * @param showLabel show this as label + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(std::string key, std::vector value, int showLabel = HepRepConstants::SHOW_NONE) = 0; + + /** + * Adds a Color attValue. + * + * @param key name of attValue + * @param red color + * @param green color + * @param blue color + * @param alpha value + * @param showLabel show this as label + * @return false only if the value is immediately written to a stream. + */ + virtual bool addAttValue(std::string key, double red, double green, double blue, double alpha = 1.0, int showLabel = HepRepConstants::SHOW_NONE) = 0; + + /** + * Remove the attvalue named by key. + * + * @param key name of the attValue to be removed. + * @return removed HepRepAttValue, or null if not removed. + */ + virtual HepRepAttValue * removeAttValue(std::string key) = 0; + + /** + * Returns the attValue specified by name. This attValue is normally searched + * on the node itself and then on its type, moving up the typetree. + * + * @param name of attribute value. + * @return attribute value. + */ + virtual HepRepAttValue * getAttValue(std::string name) = 0; + + /** + * Returns a collection of all attribute values from this node. + * + * @return collection of HepRepAttValues. + */ + virtual std::vector * getAttValuesFromNode() = 0; + + /** + * Returns a named attribute value from this node. + * + * @param lowerCaseName name in all lowercase. + * @return corresponding HepRepAttValue. + */ + virtual HepRepAttValue * getAttValueFromNode(std::string lowerCaseName) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPATTRIBUTE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepConstants.h b/source/visualization/HepRep/include/HEPREP/HepRepConstants.h new file mode 100644 index 0000000000..be321d7189 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepConstants.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPCONSTANTS_H +#define HEPREP_HEPREPCONSTANTS_H 1 + +// Copyright 2000, FreeHEP. + +namespace HEPREP { + +/** + * Constants for HepRep interfaces. + * + * @author Mark Donszelmann + */ +class HepRepConstants { + +public: + /// Destructor. + virtual ~HepRepConstants() { /* nop */; } + + /** + * Defines constants for type + */ + enum { TYPE_UNKNOWN = -1, TYPE_STRING = 1, TYPE_COLOR = 2, TYPE_LONG = 10, TYPE_INT = 11, TYPE_DOUBLE = 20, TYPE_BOOLEAN = 30 }; + + /** + * Defines constants for showLabel + */ + enum { SHOW_NONE = 0x0000, SHOW_NAME = 0x0001, SHOW_DESC = 0x0002, SHOW_VALUE = 0x0004, SHOW_EXTRA = 0x0008 }; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPCONSTANTS_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h b/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h new file mode 100644 index 0000000000..f795cd72dd --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPDEFINITION_H +#define HEPREP_HEPREPDEFINITION_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +#include "HEPREP/HepRepAttribute.h" + +namespace HEPREP { + +class HepRepAttDef; + +/** + * HepRepDefinition interface. + * + * @author Mark Donszelmann + * + */ +class HepRepDefinition : virtual public HepRepAttribute { + +public: + /// Destructor. + virtual ~HepRepDefinition() { /* nop */; } + + /** + * Adds an attdef. + * + * @param name name of the definition. + * @param desc description of the definition. + * @param category category of the definition. + * @param extra extra info of the definition. + * @return false only if this definition is written immediately to a stream. + */ + virtual bool addAttDef(std::string name, std::string desc, std::string category, std::string extra) = 0; + + /** + * Adds an attdef. + * + * @param attDef to be added. + * @return false only if this definition is written immediately to a stream. + */ + virtual bool addAttDef(HepRepAttDef * attDef) = 0; + + /** + * Return a named attribute definition searched on this node and any parent nodes. + * + * @param name of attribute definition. + * @return attribute definition. + */ + virtual HepRepAttDef * getAttDef(std::string name) = 0; + + /** + * Returns a collection of all attribute definitions defined on this node. + * + * @return collection of attributes definitions. + */ + virtual std::vector * getAttDefsFromNode() = 0; + + /** + * Returns a named attribute definition defined on this node. + * + * @param lowerCaseName name of the attribute in lower case. + * @return attribute definition. + */ + virtual HepRepAttDef * getAttDefFromNode(std::string lowerCaseName) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPDEFINITION_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepFactory.h b/source/visualization/HepRep/include/HEPREP/HepRepFactory.h new file mode 100644 index 0000000000..5b66149428 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepFactory.h @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPFACTORY_H +#define HEPREP_HEPREPFACTORY_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +namespace HEPREP { + +class HepRep; +class HepRepAction; +class HepRepInstance; +class HepRepInstanceTree; +class HepRepPoint; +class HepRepTreeID; +class HepRepType; +class HepRepTypeTree; +class HepRepWriter; + +/** + * HepRepFactory interface. + * + * @author Mark Donszelmann + */ +class HepRepFactory { + +public: + /// Destructor. + virtual ~HepRepFactory() { /* nop */; } + + /** + * Creates a HepRepWriter. + * + * @param out output stream. + */ + virtual HepRepWriter * createHepRepWriter(std::ostream * out) = 0; + + /** + * Creates a HepRepPoint. + * + * @param instance to add the point to. + * @param x x coordinate of point. + * @param y y coordinate of point. + * @param z z coordinate of point. + */ + virtual HepRepPoint * createHepRepPoint(HepRepInstance * instance, double x, double y, double z) = 0; + + /** + * Creates a HepRepInstance. + * + * @parent to add the instance to. + * @type type the associated type. + */ + virtual HepRepInstance * createHepRepInstance(HepRepInstance * parent, HepRepType * type) = 0; + + /** + * Creates a HepRepInstance. + * + * @parent to add the instance to. + * @type type the associated type. + */ + virtual HepRepInstance * createHepRepInstance(HepRepInstanceTree * parent, HepRepType * type) = 0; + + /** + * Creates a HepRepTreeID. + * + * @param name of the treeID. + * @param version of the treeID. + * @param qualifier of the treeID. + */ + virtual HepRepTreeID * createHepRepTreeID(std::string name, std::string version, std::string qualifier = "top-level") = 0; + + /** + * Creates a HepRepAction. + * + * @param name of the action. + * @param expression of the action. + */ + virtual HepRepAction * createHepRepAction(std::string name, std::string expression) = 0; + + /** + * Creates a HepRepInstanceTree. + *

+ * The tree needs to be added to the HepRep. + * + * @param name of the instancetree. + * @param version of the instancetree. + * @param typeTree associated typetree. + */ + virtual HepRepInstanceTree * createHepRepInstanceTree(std::string name, std::string version, HepRepTreeID * typeTree) = 0; + + /** + * Creates a HepRepType. + * + * @param parent to add this type to. + * @param name of the type to create. + */ + virtual HepRepType * createHepRepType(HepRepType * parent, std::string name) = 0; + + /** + * Creates a HepRepTypeTree. + *

+ * The tree needs to be added to the HepRep. + * + * @param treeID to name the tree being created. + */ + virtual HepRepTypeTree * createHepRepTypeTree(HepRepTreeID * treeID) = 0; + + /** + * Creates a HepRep. + * + */ + virtual HepRep * createHepRep() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPFACTORY_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepInstance.h b/source/visualization/HepRep/include/HEPREP/HepRepInstance.h new file mode 100644 index 0000000000..de92bffa66 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepInstance.h @@ -0,0 +1,122 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPINSTANCE_H +#define HEPREP_HEPREPINSTANCE_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +#include "HEPREP/HepRepAttribute.h" + +namespace HEPREP { + +class HepRep; +class HepRepInstanceTree; +class HepRepPoint; +class HepRepSelectFilter; +class HepRepType; + +/** + * HepRepInstance interface. + * + * @author Mark Donszelmann + */ +class HepRepInstance : virtual public HepRepAttribute { + +public: + /// Destructor. + virtual ~HepRepInstance() { /* nop */; } + + /** + * Adds an sub-instance to this instance. + * + * @param instance sub-instance. + * @return false only if written immediately to a stream. + */ + virtual bool addInstance(HepRepInstance * instance) = 0; + + /** + * Removes a sub-instance from this instance. + * + * @param instance sub-instance. + */ + virtual void removeInstance(HepRepInstance * instance) = 0; + + /** + * Returns a collection of all sub-instances this instance keeps. + * + * @return collection of HepRepInstances. + */ + virtual std::vector * getInstances() = 0; + + /** + * Returns the associated type for this instance. + * + * @return associated HepRepType. + */ + virtual HepRepType * getType() = 0; + + /** + * Adds a point to this instance. + * + * @param point to be added. + * @return false only if written immediately to a stream. + */ + virtual bool addPoint(HepRepPoint * point) = 0; + + /** + * Returns a collection of all points this instance keeps. + * + * @return collection of HepRepPoints. + */ + virtual std::vector * getPoints() = 0; + + /** + * Returns a deep copy of this instance. + * + * @param heprep needed to find the associated type. + * @param parent to which the copy is added. + * @param filter run on all instances before copying. + * @return copy of this instance. + */ + virtual HepRepInstance * copy(HepRep * heprep, HepRepInstance * parent, HepRepSelectFilter * filter = NULL) = 0; + + /** + * Returns a deep copy of this instance. + * + * @param heprep needed to find the associated type. + * @param parent to which the copy is added. + * @param filter run on all instances before copying. + * @return copy of this instance. + */ + virtual HepRepInstance * copy(HepRep * heprep, HepRepInstanceTree * parent, HepRepSelectFilter * filter = NULL) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPINSTANCE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h b/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h new file mode 100644 index 0000000000..05cb87d89f --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h @@ -0,0 +1,112 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPINSTANCETREE_H +#define HEPREP_HEPREPINSTANCETREE_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +#include "HEPREP/HepRepTreeID.h" + +namespace HEPREP { + +class HepRep; +class HepRepInstance; +class HepRepSelectFilter; +class HepRepTreeID; + +/** + * HepRepInstanceTree interface. + * + * @author Mark Donszelmann + */ +class HepRepInstanceTree : virtual public HepRepTreeID { + +public: + /// Destructor. + virtual ~HepRepInstanceTree() { /* nop */; } + + /** + * Adds an instance to this instancetree. + * + * @param instance to be added. + * @return false only if written immediately to a stream. + */ + virtual bool addInstance(HepRepInstance * instance) = 0; + + /** + * Removes an instance from this instancetree. + * + * @param instance to be removed. + */ + virtual void removeInstance(HepRepInstance * instance) = 0; + + /** + * Returns a collection of instances. + * + * @return collection of HepRepInstances. + */ + virtual std::vector * getInstances() = 0; + + /** + * Adds a related instance tree to this instancetree. + * + * @param instanceTree related instancetree. + * @return false only if written immediately to a stream. + */ + virtual bool addInstanceTree(HepRepTreeID * instanceTree) = 0; + + /** + * Returns a collection of associated instance trees. + * + * @return collection of HepRepInstanceTrees. + */ + virtual std::vector * getInstanceTrees() = 0; + + /** + * Returns the associated typetree. + * + * @return TreeID of the associated typetree. + */ + virtual HepRepTreeID * getTypeTree() = 0; + + /** + * Returns a deep copy of this instancetree. + * + * @param heprep needed to find the associated type. + * @param filter to filter the instances. + * @return copy of this instancetree. + */ + virtual HepRepInstanceTree * copy(HepRep * heprep, HepRepSelectFilter * filter = NULL) = 0; + + virtual HepRepTreeID * copy() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPINSTANCETREE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepIterator.h b/source/visualization/HepRep/include/HEPREP/HepRepIterator.h new file mode 100644 index 0000000000..5d7f02cfef --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepIterator.h @@ -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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPITERATOR_H +#define HEPREP_HEPREPITERATOR_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +namespace HEPREP { + +class HepRepAttValue; +class HepRepInstance; +class HepRepIteratorListener; + +/** + * HepRepIterator interface. + * + * @author Mark Donszelmann + */ +class HepRepIterator { + +public: + /// Destructor. + virtual ~HepRepIterator() { /* nop */; } + + /** + * Signals if there is a next instance to iterate to. + * + * @return true if next() can be called. + */ + virtual bool hasNext() = 0; + + /** + * Returns next instance. + * + * @return next HepRepInstance. + */ + virtual HepRepInstance * nextInstance() = 0; + + /** + * Adds a listener to be informed about attribute changes while iterating. + * + * @param listener to be added. + */ + virtual void addHepRepIteratorListener(HepRepIteratorListener * listener) = 0; + + /** + * Removes a listener. + * + * @param listener to be removed. + */ + virtual void removeHepRepIteratorListener(HepRepIteratorListener * listener) = 0; + + /** + * Returns the attValue for key at the current point of iteration. + * + * @param key name of tye attribute to be looked up. + * @return value associated to name at this point in the iteration. + */ + virtual HepRepAttValue * getAttValue(std::string key) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPITERATOR_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h b/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h new file mode 100644 index 0000000000..6eaba5289e --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h @@ -0,0 +1,113 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPITERATORLISTENER_H +#define HEPREP_HEPREPITERATORLISTENER_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +namespace HEPREP { + +/** + * HepRepIteratorListener interface. The implementor is called back for changes + * of attributes while using the HepRepIterator to iterate over all the HepRepInstances. + * + * @author Mark Donszelmann + */ +class HepRepIteratorListener { + +public: + /// Destructor. + virtual ~HepRepIteratorListener() { /* nop */; } + + /** + * Called if attribute key changes its value. + * + * @param key name of the changed attribute. + * @param value value of the changed attribute. + * @param showLabel value of showLabel. + */ + virtual void setAttribute(std::string key, std::string value, int showLabel) = 0; + + /** + * Called if attribute key changes its value. + * + * @param key name of the changed attribute. + * @param value value of the changed attribute. + * @param showLabel value of showLabel. + */ + virtual void setAttribute(std::string key, std::vector value, int showLabel) = 0; + + /** + * Called if attribute key changes its value. + * + * @param key name of the changed attribute. + * @param value value of the changed attribute. + * @param showLabel value of showLabel. + */ + virtual void setAttribute(std::string key, long value, int showLabel) = 0; + + /** + * Called if attribute key changes its value. + * + * @param key name of the changed attribute. + * @param value value of the changed attribute. + * @param showLabel value of showLabel. + */ + virtual void setAttribute(std::string key, int value, int showLabel) = 0; + + /** + * Called if attribute key changes its value. + * + * @param key name of the changed attribute. + * @param value value of the changed attribute. + * @param showLabel value of showLabel. + */ + virtual void setAttribute(std::string key, double value, int showLabel) = 0; + + /** + * Called if attribute key changes its value. + * + * @param key name of the changed attribute. + * @param value value of the changed attribute. + * @param showLabel value of showLabel. + */ + virtual void setAttribute(std::string key, bool value, int showLabel) = 0; + + /** + * Called if attribute key is removed from the attribute set. + * + * @param key name of the removed attribute. + */ + virtual void removeAttribute(std::string key) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPITERATORLISTENER_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepPoint.h b/source/visualization/HepRep/include/HEPREP/HepRepPoint.h new file mode 100644 index 0000000000..aeeff2a325 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepPoint.h @@ -0,0 +1,190 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPPOINT_H +#define HEPREP_HEPREPPOINT_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +#include "HEPREP/HepRepAttribute.h" + +namespace HEPREP { + +class HepRepInstance; + +/** + * HepRepPoint interface. The HepRepMath class can be used to deal with the conversions. + * + * @author Mark Donszelmann + */ +class HepRepPoint : virtual public HepRepAttribute { + +public: + /// Destructor. + virtual ~HepRepPoint() { /* nop */; } + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return dx-coordinate + */ + virtual double getX() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return dy-coordinate + */ + virtual double getY() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return dz-coordinate + */ + virtual double getZ() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return rho = sqrt(dx2+dy2); + */ + virtual double getRho() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return phi = atan2(dy, dx); + */ + virtual double getPhi() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return theta = atan2(rho, dx); + */ + virtual double getTheta() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return r = sqrt(dx2+dy2+dz2); + */ + virtual double getR() = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @return eta = -0.5*clog((1.-ct)/(1.+ct)), where ct = .cos(getTheta(dx, dy, dz)); + */ + virtual double getEta() = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return dx-coordinate + */ + virtual double getX(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return dy-coordinate + */ + virtual double getY(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return dz-coordinate + */ + virtual double getZ(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return rho = sqrt(dx2+dy2); + */ + virtual double getRho(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return phi = atan2(dy, dx); + */ + virtual double getPhi(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return theta = atan2(rho, dx); + */ + virtual double getTheta(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return r = sqrt(dx2+dy2+dz2); + */ + virtual double getR(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (xVertex, yVertex, zVertex). + * + * @return eta = -0.5*clog((1.-ct)/(1.+ct)), where ct = .cos(getTheta(dx, dy, dz)); + */ + virtual double getEta(double xVertex, double yVertex, double zVertex) = 0; + + /** + * Returns coordinate with respect to vertex at (0, 0, 0). + * + * @param xyz list of three coordinates which are filled and returned. + * If null, a new list of three coordinates is allocated. + * @return list of 3 coordinates. + */ + virtual std::vector * getXYZ(std::vector * xyz) = 0; + + /** + * Returns associated instance (parent). + * + * @return HepRepInstance. + */ + virtual HepRepInstance * getInstance() = 0; + + /** + * Returns a deep copy of this point. + * + * @param parent to add the copy to. + * @return copy of this point. + */ + virtual HepRepPoint * copy(HepRepInstance * parent) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPPOINT_H */ diff --git a/source/persistency/geometry/solids/CSG/include/G4PBox.ddl b/source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h similarity index 60% rename from source/persistency/geometry/solids/CSG/include/G4PBox.ddl rename to source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h index cf5c1b811e..413603e3fb 100644 --- a/source/persistency/geometry/solids/CSG/include/G4PBox.ddl +++ b/source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h @@ -20,42 +20,39 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PBox.ddl,v 1.5 2001/07/11 10:02:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPSELECTFILTER_H +#define HEPREP_HEPREPSELECTFILTER_H 1 -// Class Description: -// Persistent version of G4Box solid. +// Copyright 2000-2002, FreeHEP. -// History: -// 19.06.98 A.Kimura Converted from G4Box.hh +namespace HEPREP { -#ifndef G4PBOX_DDL -#define G4PBOX_DDL +class HepRepInstance; -#include "G4PersistentSchema.hh" -#include "G4PCSGSolid.hh" +/** + * HepRepSelectFilter interface used in copying HepReps. + * + * @author Mark Donszelmann + */ +class HepRepSelectFilter { -class G4VSolid; -class G4Box; - -class G4PBox - : public G4PCSGSolid -{ -public: // With description - G4PBox(const G4Box* theBox); - virtual ~G4PBox(); - // Constructor and Destructor - - G4VSolid* MakeTransientObject() const; - // Creates a transient boolean solid object. - - virtual G4GeometryType GetEntityType() const { return G4String("G4Box"); } - // Returns the G4GeometryType of this solid. - -private: - G4double fDx,fDy,fDz; -}; - -#endif +public: + /// Destructor. + virtual ~HepRepSelectFilter() { /* nop */; } + /** + * Selects if the given instance will pass. + * + * @param instance to be checked. + * @return true if instance passes. + */ + virtual bool select(HepRepInstance * instance) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPSELECTFILTER_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h b/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h new file mode 100644 index 0000000000..38442f478e --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPTREEID_H +#define HEPREP_HEPREPTREEID_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +namespace HEPREP { + +/** + * HepRepTreeID interface. + * + * @author Mark Donszelmann + */ +class HepRepTreeID { + +public: + /// Destructor. + virtual ~HepRepTreeID() { /* nop */; } + + /** + * Returns the name of this treeID. + * + * @return name of treeID. + */ + virtual std::string getName() = 0; + + /** + * Returns the version of this treeID. + * + * @return version of treeID. + */ + virtual std::string getVersion() = 0; + + /** + * Returns the qualifier that qualifies the relation that this treeID has with what it refers to. + * + * @return qualifier. + */ + virtual std::string getQualifier() = 0; + + /** + * Sets the qualifier that qualifies the relation that this treeID has with what it refers to. + * + * @param qualifier to be set. + */ + virtual void setQualifier(std::string qualifier) = 0; + + /** + * Returns a deep copy of this treeID. + * + * @return copy of this treeID. + */ + virtual HepRepTreeID * copy() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPTREEID_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepType.h b/source/visualization/HepRep/include/HEPREP/HepRepType.h new file mode 100644 index 0000000000..412f4ebd9d --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepType.h @@ -0,0 +1,107 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPTYPE_H +#define HEPREP_HEPREPTYPE_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include +#include + +#include "HEPREP/HepRepDefinition.h" + +namespace HEPREP { + +class HepRep; + +/** + * HepRepType interface. + * + * @author Mark Donszelmann + */ +class HepRepType : virtual public HepRepDefinition { + +public: + /// Destructor. + virtual ~HepRepType() { /* nop */; } + + /** + * Adds a sub-type to this type. + * + * @param type sub-type to be added. + * @return false only if written directly to a stream. + */ + virtual bool addType(HepRepType * type) = 0; + + /** + * Returns the name of this type. + * + * @return name of type. + */ + virtual std::string getName() = 0; + + /** + * Returns the description of this type. + * + * @return description of type. + */ + virtual std::string getDescription() = 0; + + /** + * Returns the information URL of this type. + * + * @return info URL of type. + */ + virtual std::string getInfoURL() = 0; + + /** + * Returns the parent of this type. + * + * @return parent of type, or null if top-level. + */ + virtual HepRepType * getSuperType() = 0; + + /** + * Returns a collection of all the sub-types of this type. + * + * @return collection of HepRepTypes. + */ + virtual std::vector * getTypes() = 0; + + /** + * Returns a deep copy of this type. + * + * @param heprep top-level heprep. (Not sure if this is necessary). + * @param parent to which this copy is added. + * @return copy of this type. + */ + virtual HepRepType * copy(HepRep * heprep, HepRepType * parent) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPTYPE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h b/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h new file mode 100644 index 0000000000..73b22bda65 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPTYPETREE_H +#define HEPREP_HEPREPTYPETREE_H 1 + +// Copyright 2000-2002, FreeHEP. + +#include + +#include "HEPREP/HepRepTreeID.h" + +namespace HEPREP { + +class HepRep; +class HepRepTreeID; +class HepRepType; + +/** + * HepRepTypeTree interface. + * + * @author Mark Donszelmann + */ +class HepRepTypeTree : virtual public HepRepTreeID { + +public: + /// Destructor. + virtual ~HepRepTypeTree() { /* nop */; } + + /** + * Adds a type to this typetree. + * + * @param type to be added. + * @return false only if written immediatelty to a stream. + */ + virtual bool addType(HepRepType * type) = 0; + + /** + * Returns a collection of all types in this tree. + * + * @return collection of HepRepTypes. + */ + virtual std::vector * getTypes() = 0; + + /** + * Returns a deep copy of this typetree. + * + * @param heprep top-level heprep. (Not sure if this is necessary). + * @return copy of this typetree. + */ + virtual HepRepTypeTree * copy(HepRep * heprep) = 0; + +// To be enable in g++ 3.0 +// using HepRep::HepRepTreeID::copy; +// To be disabled in g++ 3.0 + virtual HepRepTreeID * copy() = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPTYPETREE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepWriter.h b/source/visualization/HepRep/include/HEPREP/HepRepWriter.h new file mode 100644 index 0000000000..fa84ca7f6f --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepWriter.h @@ -0,0 +1,164 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPWRITER_H +#define HEPREP_HEPREPWRITER_H 1 + +// Copyright 2002, Freehep. + +namespace HEPREP { + +class HepRep; +class HepRepAction; +class HepRepAttDef; +class HepRepAttValue; +class HepRepAttribute; +class HepRepDefinition; +class HepRepInstance; +class HepRepInstanceTree; +class HepRepPoint; +class HepRepTreeID; +class HepRepType; +class HepRepTypeTree; + +/** + * HepRepWriter interface. + * + * @author Mark Donszelmann + */ +class HepRepWriter { + +public: + /// Destructor. + virtual ~HepRepWriter() { /* nop */; } + + /** + * Closes the writer and its underlying stream. + * + * @return false in case of a stream problem. + */ + virtual bool close() = 0; + + /** + * Writes a HepRep. + * + * @param heprep to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRep * heprep) = 0; + + /** + * Writes a HepRepTypeTree. + * + * @param typeTree to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepTypeTree * typeTree) = 0; + + /** + * Writes a HepRepType. + * + * @param type to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepType * type) = 0; + + /** + * Writes a HepRepTreeID. + * + * @param treeID to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepTreeID * treeID) = 0; + + /** + * Writes a HepRepAction. + * + * @param action to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepAction * action) = 0; + + /** + * Writes a HepRepInstanceTree. + * + * @param instanceTree to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepInstanceTree * instanceTree) = 0; + + /** + * Writes a HepRepInstance. + * + * @param instance to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepInstance * instance) = 0; + + /** + * Writes a HepRepPoint. + * + * @param point to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepPoint * point) = 0; + + /** + * Writes a HepRepAttribute. + * + * @param attribute to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepAttribute * attribute) = 0; + + /** + * Writes a HepRepDefinition. + * + * @param definition to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepDefinition * definition) = 0; + + /** + * Writes a HepRepAttValue. + * + * @param attValue to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepAttValue * attValue) = 0; + + /** + * Writes a HepRepAttDef. + * + * @param attDef to be written. + * @return false in case of a stream problem. + */ + virtual bool write(HepRepAttDef * attDef) = 0; +}; // class +}; // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPWRITER_H */ diff --git a/source/visualization/HepRep/include/HepRepXMLWriter.hh b/source/visualization/HepRep/include/HepRepXMLWriter.hh index 11d0188b19..782a53da20 100644 --- a/source/visualization/HepRep/include/HepRepXMLWriter.hh +++ b/source/visualization/HepRep/include/HepRepXMLWriter.hh @@ -20,9 +20,31 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// ******************************************************************** +// * 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 and Version Information: -// $Id: HepRepXMLWriter.hh,v 1.8 2002/02/02 04:00:19 perl Exp $ +// $Id: HepRepXMLWriter.hh,v 1.9 2002/12/13 11:18:00 gunter Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). diff --git a/source/visualization/HepRep/include/IndentPrintWriter.h b/source/visualization/HepRep/include/IndentPrintWriter.h new file mode 100644 index 0000000000..3dde0aea60 --- /dev/null +++ b/source/visualization/HepRep/include/IndentPrintWriter.h @@ -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. * +// ******************************************************************** +// +#ifndef INDENTPRINTWRITER_H +#define INDENTPRINTWRITER_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +/** + * A PrintWriter that keeps track of an indentation level + * and indents the output appropriately. + * + * Warning: Only print and println methods taking strings have been overriden, + * print, println methods taking other arguments may not be indented properly. + * + * @author Mark Donszelmann + */ +class IndentPrintWriter { + + public: + IndentPrintWriter(std::ostream* out, int level = 0); + virtual ~IndentPrintWriter(); + + void close(); + IndentPrintWriter& operator<< (const char *s); + IndentPrintWriter& operator<< (std::ostream& (*pf)(std::ostream&)); + void println(std::string s); + void print(std::string s); + void println(); + void indent(); + void outdent(); + int getIndent(); + void setIndent(int level); + std::string getIndentString(); + void setIndentString(std::string indentString); + + private: + void doIndent(); + + std::ostream* out; + int indentLevel; + bool indented; + std::string indentString; +}; + +#endif + diff --git a/source/visualization/HepRep/include/README b/source/visualization/HepRep/include/README new file mode 100644 index 0000000000..0df435bba1 --- /dev/null +++ b/source/visualization/HepRep/include/README @@ -0,0 +1,16 @@ +Apart from the heprep1 files: + +G4HepRepFile.hh +G4HepRepFileSceneHandler.hh +G4HepRepFileViewer.hh +HepRepXMLWriter.hh + +the other sources (heprep2) are copies from the FreeHEP library +(java.freehep.org) and are maintained there. + +The files starting with G4 are geant4 compliant, the others may not be. + +Changes made here may be overwritten. + +12 Nov 2002 +Mark Donszelmann diff --git a/source/visualization/HepRep/include/StreamerHepRep.h b/source/visualization/HepRep/include/StreamerHepRep.h new file mode 100644 index 0000000000..ead1a1b604 --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRep.h @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * 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 STREAMERHEPREP_H +#define STREAMERHEPREP_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepSelectFilter.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepTypeTree.h" +#include "HEPREP/HepRepInstanceTree.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRep : public virtual HEPREP::HepRep { + + private: + std::vector layers; + + public: + StreamerHepRep(HEPREP::HepRepWriter* streamer); + ~StreamerHepRep(); + + HEPREP::HepRep* copy(HEPREP::HepRepSelectFilter* filter); + std::vector* getLayerOrder(); + bool addLayer(std::string layer); + bool addTypeTree(HEPREP::HepRepTypeTree* typeTree); + void removeTypeTree(HEPREP::HepRepTypeTree* typeTree); + HEPREP::HepRepTypeTree* getTypeTree(std::string name, std::string version); + std::vector* getTypeTrees(); + HEPREP::HepRepType* getType(std::string name); + bool addInstanceTree(HEPREP::HepRepInstanceTree* instanceTree); + void removeInstanceTree(HEPREP::HepRepInstanceTree* instanceTree); + HEPREP::HepRepInstanceTree* getInstanceTreeTop(std::string name, std::string version); + HEPREP::HepRepInstanceTree* getInstances(std::string name, std::string version, + std::vector typeNames); + HEPREP::HepRepInstanceTree* getInstancesAfterAction( + std::string name, + std::string version, + std::vector typeNames, + std::vector actions, + bool getPoints, + bool getDrawAtts, + bool getNonDrawAtts, + std::vector invertAtts); + std::string checkForException(); + std::vector* getInstanceTrees(); +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepAttribute.h b/source/visualization/HepRep/include/StreamerHepRepAttribute.h new file mode 100644 index 0000000000..27ab6907f5 --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepAttribute.h @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * 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 STREAMERHEPREPATTRIBUTE_H +#define STREAMERHEPREPATTRIBUTE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRepAttribute.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepWriter.h" + +/** + * + * @author M.Donszelmann + */ + +class StreamerHepRepAttribute : public virtual HEPREP::HepRepAttribute { + + private: + HEPREP::HepRepWriter* streamer; + + public: + StreamerHepRepAttribute(HEPREP::HepRepWriter* streamer); + ~StreamerHepRepAttribute(); + + std::vector* getAttValuesFromNode(); + bool addAttValue(HEPREP::HepRepAttValue* hepRepAttValue); + bool addAttValue(std::string key, std::string value, int showLabel); + bool addAttValue(std::string key, int value, int showLabel); + bool addAttValue(std::string key, double value, int showLabel); + bool addAttValue(std::string key, bool value, int showLabel); + bool addAttValue(std::string key, std::vector value, int showLabel); + bool addAttValue(std::string key, double red, double green, double blue, double alpha, int showLabel); + HEPREP::HepRepAttValue* getAttValueFromNode(std::string lowerCaseName); + HEPREP::HepRepAttValue* removeAttValue(std::string key); + HEPREP::HepRepAttValue* getAttValue(std::string name); +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepDefinition.h b/source/visualization/HepRep/include/StreamerHepRepDefinition.h new file mode 100644 index 0000000000..30df87b5fe --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepDefinition.h @@ -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. * +// ******************************************************************** +// +#ifndef STREAMERHEPREPDEFINITION_H +#define STREAMERHEPREPDEFINITION_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRepDefinition.h" +#include "HEPREP/HepRepWriter.h" + +#include "StreamerHepRepAttribute.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRepDefinition : public StreamerHepRepAttribute, public virtual HEPREP::HepRepDefinition { + + private: + HEPREP::HepRepWriter* streamer; + + public: + StreamerHepRepDefinition(HEPREP::HepRepWriter* streamer); + ~StreamerHepRepDefinition(); + + bool addAttDef(HEPREP::HepRepAttDef* hepRepAttDef); + bool addAttDef(std::string name, std::string desc, std::string type, std::string extra); + HEPREP::HepRepAttDef* getAttDef(std::string name); + std::vector* getAttDefsFromNode(); + HEPREP::HepRepAttDef* getAttDefFromNode(std::string lowerCaseName); +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepInstance.h b/source/visualization/HepRep/include/StreamerHepRepInstance.h new file mode 100644 index 0000000000..820e8ad562 --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepInstance.h @@ -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. * +// ******************************************************************** +// +#ifndef STREAMERHEPREPINSTANCE_H +#define STREAMERHEPREPINSTANCE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepSelectFilter.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepAttValue.h" + +#include "StreamerHepRepAttribute.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRepInstance : public StreamerHepRepAttribute, public virtual HEPREP::HepRepInstance { + + private: + void* parent; + HEPREP::HepRepType* type; + + public: + StreamerHepRepInstance(HEPREP::HepRepWriter* streamer, HEPREP::HepRepInstance* parent, HEPREP::HepRepType* type); + StreamerHepRepInstance(HEPREP::HepRepWriter* streamer, HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepType* type); + ~StreamerHepRepInstance(); + + HEPREP::HepRepInstance* copy(HEPREP::HepRep* heprep, HEPREP::HepRepInstance* parent, HEPREP::HepRepSelectFilter* filter); + HEPREP::HepRepInstance* copy(HEPREP::HepRep* heprep, HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepSelectFilter* filter); + HEPREP::HepRepType* getType(); + bool addPoint(HEPREP::HepRepPoint* point); + std::vector* getPoints(); + bool addInstance(HEPREP::HepRepInstance* instance); + void removeInstance(HEPREP::HepRepInstance* instance); + std::vector* getInstances(); + HEPREP::HepRepAttValue* getAttValue(std::string name); + + void *getParent() { return parent; } +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepInstanceTree.h b/source/visualization/HepRep/include/StreamerHepRepInstanceTree.h new file mode 100644 index 0000000000..da87276c23 --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepInstanceTree.h @@ -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. * +// ******************************************************************** +// +#ifndef STREAMERHEPREPINSTANCETREE_H +#define STREAMERHEPREPINSTANCETREE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepSelectFilter.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepTreeID.h" + +#include "DefaultHepRepTreeID.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRepInstanceTree : public DefaultHepRepTreeID, public virtual HEPREP::HepRepInstanceTree { + + private: + HEPREP::HepRepWriter* streamer; + HEPREP::HepRepTreeID* typeTree; + + public: + StreamerHepRepInstanceTree(HEPREP::HepRepWriter* streamer, std::string name, std::string version, HEPREP::HepRepTreeID* typeTree); + ~StreamerHepRepInstanceTree(); + + HEPREP::HepRepInstanceTree* copy(HEPREP::HepRep* heprep, HEPREP::HepRepSelectFilter* filter); + HEPREP::HepRepTreeID* copy(); + bool addInstance(HEPREP::HepRepInstance* instance); + void removeInstance(HEPREP::HepRepInstance* instance); + std::vector* getInstances(); + bool addInstanceTree(HEPREP::HepRepTreeID* treeID); + HEPREP::HepRepTreeID* getTypeTree(); + std::vector* getInstanceTrees(); +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepPoint.h b/source/visualization/HepRep/include/StreamerHepRepPoint.h new file mode 100644 index 0000000000..1deb32c903 --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepPoint.h @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * 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 STREAMERHEPREPPOINT_H +#define STREAMERHEPREPPOINT_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepPoint.h" + +#include "StreamerHepRepAttribute.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRepPoint : public StreamerHepRepAttribute, public virtual HEPREP::HepRepPoint { + + private: + HEPREP::HepRepInstance* instance; + + protected: + double x, y, z; + + public: + StreamerHepRepPoint(HEPREP::HepRepWriter* streamer, HEPREP::HepRepInstance* instance, double x, double y, double z); + ~StreamerHepRepPoint(); + + HEPREP::HepRepInstance* getInstance(); + + HEPREP::HepRepAttValue* getAttValue(std::string lowerCaseName); + + HEPREP::HepRepPoint* copy(HEPREP::HepRepInstance* parent); + double getX(); + double getY(); + double getZ(); + std::vector* getXYZ(std::vector* xyz); + double getRho(); + double getPhi(); + double getTheta(); + double getR(); + double getEta(); + double getX(double xVertex, double yVertex, double zVertex); + double getY(double xVertex, double yVertex, double zVertex); + double getZ(double xVertex, double yVertex, double zVertex); + double getRho(double xVertex, double yVertex, double zVertex); + double getPhi(double xVertex, double yVertex, double zVertex); + double getTheta(double xVertex, double yVertex, double zVertex); + double getR(double xVertex, double yVertex, double zVertex); + double getEta(double xVertex, double yVertex, double zVertex); +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepType.h b/source/visualization/HepRep/include/StreamerHepRepType.h new file mode 100644 index 0000000000..da40acdde0 --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepType.h @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * 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 STREAMERHEPREPTYPE_H +#define STREAMERHEPREPTYPE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepAttDef.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepWriter.h" + +#include "StreamerHepRepDefinition.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRepType : public StreamerHepRepDefinition, public virtual HEPREP::HepRepType { + + private: + HEPREP::HepRepType* parent; + std::string name; + std::string description; + std::string infoURL; + + public: + StreamerHepRepType(HEPREP::HepRepWriter* streamer, HEPREP::HepRepType* parent, std::string name); + ~StreamerHepRepType(); + + HEPREP::HepRepType* getSuperType(); + HEPREP::HepRepAttDef* getAttDef(std::string name); + HEPREP::HepRepAttValue* getAttValue(std::string name); + HEPREP::HepRepType* copy(HEPREP::HepRep* heprep, HEPREP::HepRepType* parent); + std::string getName(); + std::string getDescription(); + void setDescription(std::string description); + std::string getInfoURL(); + void setInfoURL(std::string infoURL); + bool addType(HEPREP::HepRepType* type); + std::vector* getTypes(); +}; + +#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepTypeTree.h b/source/visualization/HepRep/include/StreamerHepRepTypeTree.h new file mode 100644 index 0000000000..6873a74fcd --- /dev/null +++ b/source/visualization/HepRep/include/StreamerHepRepTypeTree.h @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * 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 STREAMERHEPREPTYPETREE_H +#define STREAMERHEPREPTYPETREE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepTypeTree.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepTreeID.h" + +#include "DefaultHepRepTreeID.h" + +/** + * + * @author M.Donszelmann + */ +class StreamerHepRepTypeTree : public DefaultHepRepTreeID, public virtual HEPREP::HepRepTypeTree { + + public: + StreamerHepRepTypeTree(HEPREP::HepRepWriter* streamer, HEPREP::HepRepTreeID* typeTree); + ~StreamerHepRepTypeTree(); + + HEPREP::HepRepTypeTree* copy(HEPREP::HepRep* heprep); + HEPREP::HepRepTreeID* copy(); + bool addType(HEPREP::HepRepType* type); + std::vector* getTypes(); +}; + +#endif diff --git a/source/visualization/HepRep/include/XMLHepRepStreamer.h b/source/visualization/HepRep/include/XMLHepRepStreamer.h new file mode 100644 index 0000000000..5b9bf83d61 --- /dev/null +++ b/source/visualization/HepRep/include/XMLHepRepStreamer.h @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * 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 XMLHEPREPSTREAMER_H +#define XMLHEPREPSTREAMER_H 1 + +#include "FreeHepTypes.h" + +#include +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepFactory.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepTreeID.h" +#include "HEPREP/HepRepAction.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepTypeTree.h" +#include "HEPREP/HepRepAttDef.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepAttribute.h" + +#include "XMLWriter.h" + +/** + * + * @author M.Donszelmann + */ +class XMLHepRepStreamer : public XMLWriter, public virtual HEPREP::HepRepWriter { + + private: + std::string nameSpace; + bool writtenLayers; + std::stack hepreps; + HEPREP::HepRep *heprep; + HEPREP::HepRepTypeTree *heprepTypeTree; + + public: + XMLHepRepStreamer(std::ostream* out); + ~XMLHepRepStreamer(); + + bool close(); + bool write(HEPREP::HepRep* heprep); + bool write(HEPREP::HepRepTypeTree* typeTree); + bool write(HEPREP::HepRepType* type); + bool write(HEPREP::HepRepTreeID* treeID); + bool write(HEPREP::HepRepAction* action); + bool write(HEPREP::HepRepInstanceTree* instanceTree); + bool write(HEPREP::HepRepInstance* instance); + bool write(HEPREP::HepRepPoint* point); + bool write(HEPREP::HepRepAttribute* attribute); + bool write(HEPREP::HepRepDefinition* definition); + bool write(HEPREP::HepRepAttValue* attValue); + bool write(HEPREP::HepRepAttDef* attDef); +}; + +#endif diff --git a/source/visualization/HepRep/include/XMLHepRepStreamerFactory.h b/source/visualization/HepRep/include/XMLHepRepStreamerFactory.h new file mode 100644 index 0000000000..eac5e537d2 --- /dev/null +++ b/source/visualization/HepRep/include/XMLHepRepStreamerFactory.h @@ -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. * +// ******************************************************************** +// +#ifndef XMLHEPREPSTREAMERFACTORY_H +#define XMLHEPREPSTREAMERFACTORY_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepFactory.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepTreeID.h" +#include "HEPREP/HepRepAction.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepTypeTree.h" + +/** + * + * @author M.Donszelmann + */ +class XMLHepRepStreamerFactory : public virtual HEPREP::HepRepFactory { + + private: + HEPREP::HepRepWriter* streamer; + + public: + XMLHepRepStreamerFactory(); + ~XMLHepRepStreamerFactory(); + +// static HEPREP::HepRepFactory* create(); + HEPREP::HepRepWriter* createHepRepWriter (std::ostream* out); + HEPREP::HepRepPoint* createHepRepPoint (HEPREP::HepRepInstance* instance, + double x, double y, double z); + HEPREP::HepRepInstance* createHepRepInstance (HEPREP::HepRepInstance* parent, HEPREP::HepRepType* type); + HEPREP::HepRepInstance* createHepRepInstance (HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepType* type); + HEPREP::HepRepTreeID* createHepRepTreeID (std::string name, std::string version, std::string qualifier = "top-level"); + HEPREP::HepRepAction* createHepRepAction (std::string name, std::string expression); + HEPREP::HepRepInstanceTree* createHepRepInstanceTree (std::string name, std::string version, + HEPREP::HepRepTreeID* typeTreeID); + HEPREP::HepRepType* createHepRepType (HEPREP::HepRepType* parent, std::string name); + HEPREP::HepRepTypeTree* createHepRepTypeTree (HEPREP::HepRepTreeID* treeID); + HEPREP::HepRep* createHepRep (); +}; + +#endif diff --git a/source/visualization/HepRep/include/XMLWriter.h b/source/visualization/HepRep/include/XMLWriter.h new file mode 100644 index 0000000000..4cd6a56a11 --- /dev/null +++ b/source/visualization/HepRep/include/XMLWriter.h @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * 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 XMLWRITER_H +#define XMLWRITER_H 1 + +#include "FreeHepTypes.h" + +#include +#include +#include +#include +#include + +#include "IndentPrintWriter.h" + +/** + * A class that makes it easy to write XML documents. + * + * @author Tony Johnson + * @author Mark Donszelmann + */ +class XMLWriter { + + public: + XMLWriter(std::ostream* out, std::string indentString = " ", std::string defaultNameSpace = ""); + virtual ~XMLWriter(); + void close(); + void openDoc(std::string version = "1.0", std::string encoding = "", bool standalone = false); + void referToDTD(std::string name, std::string pid, std::string ref); + void referToDTD(std::string name, std::string system); + void closeDoc(); + void printComment(std::string comment); + void print(std::string text); + void println(std::string text); + void openTag(std::string ns, std::string name); + void openTag(std::string name); + void closeTag(); + void printTag(std::string ns, std::string name); + void printTag(std::string name); + void setAttribute(std::string name, std::string value); + void setAttribute(std::string ns, std::string name, std::string value); + void setAttribute(std::string name, double value); + void setAttribute(std::string ns, std::string name, double value); + void printAttributes(int tagLength); + std::string normalize(std::string s); + std::string normalizeText(std::string s); + void checkNameValid(std::string s); + + protected: + bool closed; + IndentPrintWriter* writer; + std::string defaultNameSpace; + + private: + std::string* dtdName; + std::map attributes; + std::stack openTags; +}; + +#endif diff --git a/source/visualization/HepRep/src/DefaultHepRepAction.cc b/source/visualization/HepRep/src/DefaultHepRepAction.cc new file mode 100644 index 0000000000..46e264c09b --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepAction.cc @@ -0,0 +1,47 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#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 NULL; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepAttDef.cc b/source/visualization/HepRep/src/DefaultHepRepAttDef.cc new file mode 100644 index 0000000000..d745938244 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepAttDef.cc @@ -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. * +// ******************************************************************** +// + +#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 NULL; +} + +string DefaultHepRepAttDef::getName() { + return name; +} + +string DefaultHepRepAttDef::getLowerCaseName() { + char* tmp = new char[strlen(name.c_str())]; + strcpy(tmp, name.c_str()); + int i = -1; + do { + i++; + tmp[i] = tolower(tmp[i]); + } while (tmp[i] != 0); + return tmp; +} + +string DefaultHepRepAttDef::getDescription() { + return desc; +} + +string DefaultHepRepAttDef::getCategory() { + return category; +} + +string DefaultHepRepAttDef::getExtra() { + return extra; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepAttValue.cc b/source/visualization/HepRep/src/DefaultHepRepAttValue.cc new file mode 100644 index 0000000000..6e57e3505b --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepAttValue.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. * +// ******************************************************************** +// + +#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() { + return NULL; +} + +string DefaultHepRepAttValue::getName() { + return name; +} + +string DefaultHepRepAttValue::getLowerCaseName() { + char *tmp = new char[strlen(name.c_str())]; + strcpy(tmp, name.c_str()); + int i = -1; + do { + i++; + tmp[i] = tolower(tmp[i]); + } while (tmp[i] != 0); + return tmp; +} + +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 as 'string'" << endl; + return stringValue; +} + +long DefaultHepRepAttValue::getLong() { + if (type != HepRepConstants::TYPE_LONG) cerr << "Trying to access AttValue as 'long'" << endl; + return longValue; +} + +int DefaultHepRepAttValue::getInteger() { + if (type != HepRepConstants::TYPE_INT) cerr << "Trying to access AttValue as 'int'" << endl; + return (int)longValue; +} + +double DefaultHepRepAttValue::getDouble() { + if (type != HepRepConstants::TYPE_DOUBLE) cerr << "Trying to access AttValue as 'double'" << endl; + return doubleValue; +} + +bool DefaultHepRepAttValue::getBoolean() { + if (type != HepRepConstants::TYPE_BOOLEAN) cerr << "Trying to access AttValue as 'boolean'" << endl; + return booleanValue; +} + +vector DefaultHepRepAttValue::getColor() { + if (type != HepRepConstants::TYPE_COLOR) cerr << "Trying to access AttValue 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, "%f", 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; +} diff --git a/source/persistency/run/src/G4PRun.cc b/source/visualization/HepRep/src/DefaultHepRepTreeID.cc similarity index 69% rename from source/persistency/run/src/G4PRun.cc rename to source/visualization/HepRep/src/DefaultHepRepTreeID.cc index 7a263ffe61..7585eaf856 100644 --- a/source/persistency/run/src/G4PRun.cc +++ b/source/visualization/HepRep/src/DefaultHepRepTreeID.cc @@ -20,44 +20,38 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4PRun.cc,v 1.7 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "G4Run.hh" -#include "G4PRun.hh" -#include "G4Event.hh" +#include -G4PRun::G4PRun() -// :runID(0),numberOfEvent(0),HCtable(0),DCtable(0) -:runID(0),numberOfEvent(0) -{;} +#include "DefaultHepRepTreeID.h" -G4PRun::G4PRun(const G4Run* aRun) -{ - runID = aRun->GetRunID(); - numberOfEvent = aRun->GetNumberOfEvent(); +using namespace std; +using namespace HEPREP; + +DefaultHepRepTreeID::DefaultHepRepTreeID(string name, string version, string qualifier) + : name(name), version(version), qualifier(qualifier) { } -G4PRun::~G4PRun() -{;} - -G4Run* G4PRun::MakeTransientObject() -{ - G4Run* aRun = new G4Run(); - - aRun->SetRunID(runID); - - G4Event* dummyEvt = new G4Event; - - for(G4int i = 0; i < numberOfEvent; i++) - { - aRun->RecordEvent(dummyEvt); - } - - delete dummyEvt; - - return aRun; +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; +} + +HepRepTreeID* DefaultHepRepTreeID::copy() { + return NULL; } diff --git a/source/visualization/HepRep/src/G4HepRep.cc b/source/visualization/HepRep/src/G4HepRep.cc new file mode 100644 index 0000000000..f528f79d38 --- /dev/null +++ b/source/visualization/HepRep/src/G4HepRep.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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +/** + * @author Mark Donszelmann + */ + +//G4 +#include "G4Types.hh" +#include "G4HepRepViewer.hh" +#include "G4HepRepSceneHandler.hh" + +//This +#include "G4HepRep.hh" + +using namespace HEPREP; + +G4HepRep::G4HepRep () + : G4VGraphicsSystem ("G4HepRep", + "HepRepXML", + "HepRep Generic Driver for XML, RMI and CORBA", + G4VGraphicsSystem::threeD) { +} + +G4HepRep::~G4HepRep () { +} + +G4VSceneHandler* G4HepRep::CreateSceneHandler (const G4String& name) { + G4HepRepSceneHandler* scene = new G4HepRepSceneHandler (*this, name); + return scene; +} + +G4VViewer* G4HepRep::CreateViewer (G4VSceneHandler& scene, const G4String& name) { + G4VViewer* view = new G4HepRepViewer ((G4HepRepSceneHandler&)scene, name); + if (view) { + if (view->GetViewId() < 0) { + G4cout << "G4HepRep::CreateViewer: ERROR flagged by negative view ID." << G4endl; + delete view; + view = NULL; + } + } else { + G4cout << "G4HepRep::CreateViewer: null pointer on new G4HepRepViewer." << G4endl; + } + return view; +} diff --git a/source/visualization/HepRep/src/G4HepRepFile.cc b/source/visualization/HepRep/src/G4HepRepFile.cc index ec32912126..fb21d9baba 100644 --- a/source/visualization/HepRep/src/G4HepRepFile.cc +++ b/source/visualization/HepRep/src/G4HepRepFile.cc @@ -21,8 +21,30 @@ // ******************************************************************** // // -// $Id: G4HepRepFile.cc,v 1.4 2002/02/02 04:00:22 perl Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************************************************** +// * 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: G4HepRepFile.cc,v 1.6 2002/12/13 11:18:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Joseph Perl 1 October 2001 @@ -41,8 +63,8 @@ static HepRepXMLWriter* hepRepXMLWriter; G4HepRepFile::G4HepRepFile(): G4VGraphicsSystem("G4HepRepFile", "HepRepFile", - "A template graphics driver", - G4VGraphicsSystem::noFunctionality) { + "A HepRep (format 1) ascii file driver", + G4VGraphicsSystem::threeD) { hepRepXMLWriter = new HepRepXMLWriter(); } diff --git a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc index 5f744d025f..16173bf96e 100644 --- a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc @@ -21,10 +21,32 @@ // ******************************************************************** // // -// $Id: G4HepRepFileSceneHandler.cc,v 1.7 2002/02/03 22:22:58 perl Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************************************************** +// * 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: G4HepRepFileSceneHandler.cc,v 1.10 2002/12/13 11:18:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ +// // -// // Joseph Perl 27th January 2002 // A base class for a scene handler to export geometry and trajectories // to the HepRep xml file format. @@ -45,6 +67,8 @@ #include "G4Square.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" +#include "G4VTrajectory.hh" +#include "G4VHit.hh" //HepRep #include "HepRepXMLWriter.hh" @@ -79,22 +103,9 @@ void G4HepRepFileSceneHandler::EstablishSpecials void G4HepRepFileSceneHandler::BeginModeling() { G4VSceneHandler::BeginModeling(); // Required: see G4VSceneHandler.hh. - // Force culling off... - if (fpModel) { - fpOriginalMP = fpModel->GetModelingParameters(); - if (fpOriginalMP) { - fpNonCullingMP = new G4ModelingParameters(*fpOriginalMP); - fpNonCullingMP->SetCulling(false); - fpModel->SetModelingParameters(fpNonCullingMP); - } - } } void G4HepRepFileSceneHandler::EndModeling() { - if (fpModel && fpOriginalMP) { - fpModel->SetModelingParameters(fpOriginalMP); - delete fpNonCullingMP; - } G4VSceneHandler::EndModeling(); // Required: see G4VSceneHandler.hh. } @@ -237,6 +248,19 @@ void G4HepRepFileSceneHandler::AddThis(const G4VSolid& solid) { G4VSceneHandler::AddThis(solid); // Invoke default action. } +void G4HepRepFileSceneHandler::AddThis (const G4VTrajectory& traj) { +#ifdef G4HEPREPFILEDEBUG + G4cout << "G4HepRepFileSceneHandler::AddThis(G4VTrajectory&) " << G4endl; +#endif + G4VSceneHandler::AddThis (traj); +} + +void G4HepRepFileSceneHandler::AddThis (const G4VHit& hit) { +#ifdef G4HEPREPFILEDEBUG + G4cout << "G4HepRepFileSceneHandler::AddThis(G4VHit&) " << G4endl; +#endif + G4VSceneHandler::AddThis (hit); +} void G4HepRepFileSceneHandler::AddPrimitive(const G4Polyline& polyline) { #ifdef G4HEPREPFILEDEBUG @@ -272,7 +296,7 @@ void G4HepRepFileSceneHandler::AddPrimitive (const G4Polymarker& line) { hepRepXMLWriter->addAttValue("MarkSize", 4); hepRepXMLWriter->addPrimitive(); - + for (size_t i=0; i < line.size(); i++) { G4Point3D vertex = (*fpObjectTransformation) * line[i]; hepRepXMLWriter->addPoint(vertex.x(), vertex.y(), vertex.z()); @@ -303,7 +327,7 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4Circle& circle) { hepRepXMLWriter->addAttValue("MarkName", "Dot"); hepRepXMLWriter->addAttValue("MarkSize", 4); - + hepRepXMLWriter->addPrimitive(); G4Point3D center = (*fpObjectTransformation) * circle.GetPosition(); @@ -389,7 +413,7 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, length = sprintf (newFileSpec, "%s%d%s","G4Data",fileCounter,".heprep"); hepRepXMLWriter->open(newFileSpec); fileCounter++; - + hepRepXMLWriter->addAttDef("LVol", "Logical Volume", "Physics",""); hepRepXMLWriter->addAttDef("Solid", "Solid Name", "Physics",""); hepRepXMLWriter->addAttDef("EType", "Entity Type", "Physics",""); @@ -420,7 +444,7 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, } hepRepXMLWriter->addInstance(); - + // Handle Type declaration for Detector Geometry, // replacing G4's top geometry level name "worldPhysical" with the // name "Detector Geometry". @@ -435,13 +459,13 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, hepRepXMLWriter->addType("G4 Culled Layer", hepRepXMLWriter->typeDepth + 1); hepRepXMLWriter->addInstance(); } - + if (fCurrentDepth!=0) { // Add the HepRepType for the current volume. hepRepXMLWriter->addType(fpCurrentPV->GetName(),fCurrentDepth); hepRepXMLWriter->addInstance(); } - + // Additional attributes. hepRepXMLWriter->addAttValue("LVol", fpCurrentLV->GetName()); hepRepXMLWriter->addAttValue("Solid", fpCurrentLV->GetSolid()->GetName()); @@ -451,7 +475,7 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, hepRepXMLWriter->addAttValue("State", fpCurrentLV->GetMaterial()->GetState()); hepRepXMLWriter->addAttValue("Radlen", fpCurrentLV->GetMaterial()->GetRadlen()); } - + hepRepXMLWriter->addAttValue("DrawAs",primName); hepRepXMLWriter->addAttValue("Layer",hepRepXMLWriter->typeDepth); @@ -460,17 +484,17 @@ void G4HepRepFileSceneHandler::AddHepRepInstance(const char* primName, float redness = colour.GetRed(); float greenness = colour.GetGreen(); float blueness = colour.GetBlue(); - + if (redness==0. && greenness==0. && blueness==0.) { redness = 1.; greenness = 1.; blueness = 1.; } - + if (strcmp(primName,"Point")==0) hepRepXMLWriter->addAttValue("MarkColor",redness,greenness,blueness); else - hepRepXMLWriter->addAttValue("LineColor",redness,greenness,blueness); + hepRepXMLWriter->addAttValue("LineColor",redness,greenness,blueness); // Handle visibility attribute. const G4VisAttributes* visAtts = visible.GetVisAttributes(); diff --git a/source/visualization/HepRep/src/G4HepRepFileViewer.cc b/source/visualization/HepRep/src/G4HepRepFileViewer.cc index e229369b8f..778372fbd6 100644 --- a/source/visualization/HepRep/src/G4HepRepFileViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepFileViewer.cc @@ -21,8 +21,30 @@ // ******************************************************************** // // -// $Id: G4HepRepFileViewer.cc,v 1.6 2002/02/02 04:00:27 perl Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// ******************************************************************** +// * 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: G4HepRepFileViewer.cc,v 1.8 2002/12/13 11:18:03 gunter Exp $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4HepRepFileViewer.hh" @@ -40,6 +62,9 @@ G4HepRepFileViewer::G4HepRepFileViewer (G4VSceneHandler& sceneHandler, const G4String& name): G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name) { hepRepXMLWriter = ((G4HepRepFileSceneHandler*)(&sceneHandler))->GetHepRepXMLWriter(); + // Make changes to view parameters for HepRep... + fVP.SetCulling(false); + fDefaultVP.SetCulling(false); } G4HepRepFileViewer::~G4HepRepFileViewer() {} diff --git a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc new file mode 100644 index 0000000000..1e6bb8be5c --- /dev/null +++ b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc @@ -0,0 +1,617 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +/** + * @author Mark Donszelmann + */ + +#include "globals.hh" +#include "g4std/vector" +#include "g4std/strstream" +#include "g4std/fstream" + +//HepRep +#include "HEPREP/HepRep.h" + +//G4 +#include "G4Types.hh" +#include "G4Point3D.hh" +#include "G4Normal3D.hh" +#include "G4Polyline.hh" +#include "G4Polymarker.hh" +#include "G4Polyhedron.hh" +#include "G4Circle.hh" +#include "G4Square.hh" +#include "G4Text.hh" +#include "G4NURBS.hh" +#include "G4VPhysicalVolume.hh" +#include "G4VisAttributes.hh" +#include "G4VSolid.hh" +#include "G4VTrajectory.hh" +#include "G4VHit.hh" +#include "G4Scene.hh" +#include "G4Material.hh" + +// Streamer +#include "XMLHepRepStreamerFactory.h" + +// This +#include "G4HepRep.hh" +#include "G4HepRepSceneHandler.hh" + + +using namespace HEPREP; + +G4int G4HepRepSceneHandler::sceneCount = 0; +G4int G4HepRepSceneHandler::sceneIdCount = 0; + +G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, const G4String& name) + : G4VSceneHandler (system, sceneIdCount++, name), + currentDepth (0), + currentPV (0), + currentLV (0) { + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::G4HepRepSceneHandler: " + << system << " " + << GetScene()->GetName() << G4endl; +#endif + heprepFactory = new XMLHepRepStreamerFactory(); + writer = NULL; + fileNo = 0; +} + +G4HepRepSceneHandler::~G4HepRepSceneHandler () { + close(); + delete heprepFactory; + heprepFactory = NULL; +} + +HepRepFactory* G4HepRepSceneHandler::GetHepRepFactory() { + if (writer == NULL) open(); + return heprepFactory; +} + +void G4HepRepSceneHandler::open() { + if (writer != NULL) return; + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::open(" << fname << ") " << G4endl; +#endif + if (strcmp(GetScene()->GetName(), "stdout") == 0) { + out = NULL; + writer = heprepFactory->createHepRepWriter(&G4cout); + } else if (strcmp(GetScene()->GetName(), "stderr") == 0) { + out = NULL; + writer = heprepFactory->createHepRepWriter(&G4cerr); + } else { + char fname [256]; + G4std::ostrstream ost(fname, 256); + ost << GetScene()->GetName() << "-" << fileNo++ << ".heprep" << G4std::ends; + + out = new G4std::ofstream(fname); + writer = heprepFactory->createHepRepWriter(out); + } + + heprep = heprepFactory->createHepRep(); + heprep->addLayer("Geometry"); + heprep->addLayer("Event"); + heprep->addLayer("CalHit"); + heprep->addLayer("Track"); + heprep->addLayer("Hit"); + + HepRepTreeID* treeID = heprepFactory->createHepRepTreeID("G4Types", "1.0"); + HepRepTypeTree* typeTree = heprepFactory->createHepRepTypeTree(treeID); + heprep->addTypeTree(typeTree); + + geometryType = heprepFactory->createHepRepType(NULL, "Detector Geometry"); + geometryType->addAttDef("LVol", "Logical Volume", "Physics",""); + geometryType->addAttDef("Solid", "Solid Name", "Physics",""); + geometryType->addAttDef("EType", "Entity Type", "Physics",""); + geometryType->addAttDef("Material", "Material Name", "Physics",""); + geometryType->addAttDef("Density", "Material Density", "Physics",""); + geometryType->addAttDef("State", "Material State", "Physics",""); + geometryType->addAttDef("Radlen", "Material Radiation Length", "Physics",""); + geometryType->addAttValue("Layer", G4String("Geometry")); + geometryType->addAttValue("HasFrame", true); + typeTree->addType(geometryType); + + eventType = heprepFactory->createHepRepType(NULL, "Event"); + eventType->addAttValue("Layer", G4String("Event")); + eventType->addAttValue("HasFrame", true); + typeTree->addType(eventType); + + trackType = heprepFactory->createHepRepType(eventType, "Track"); + trackType->addAttValue("Layer", G4String("Track")); + + calHitType = heprepFactory->createHepRepType(eventType, "Calorimeter Hit"); + calHitType->addAttValue("Layer", G4String("CalHit")); + calHitType->addAttValue("Fill", true); + + hitType = heprepFactory->createHepRepType(eventType, "Hit"); + hitType->addAttValue("Layer", G4String("Hit")); + + HepRepInstanceTree* instanceTree = heprepFactory->createHepRepInstanceTree("G4Data", "1.0", typeTree); + heprep->addInstanceTree(instanceTree); + + parent = heprepFactory->createHepRepInstance(instanceTree, eventType); + instanceTree->addInstance(parent); + + delete treeID; + delete typeTree; + delete instanceTree; +} + +void G4HepRepSceneHandler::close() { + if (writer == NULL) return; + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::close() " << G4endl; +#endif + writer->close(); + delete writer; + delete out; + + writer = NULL; + out = NULL; + + delete heprep; + heprep = NULL; + + delete geometryType; + geometryType = NULL; + + delete eventType; + eventType = NULL; + + delete trackType; + trackType = NULL; + + delete hitType; + hitType = NULL; + + delete calHitType; + calHitType = NULL; + + delete parent; + parent = NULL; +} + + +void G4HepRepSceneHandler::EstablishSpecials(G4PhysicalVolumeModel& model) { + model.DefinePointersToWorkingSpace(¤tDepth, ¤tPV, ¤tLV); +} + +void G4HepRepSceneHandler::BeginModeling() { + G4VSceneHandler::BeginModeling(); +} + +void G4HepRepSceneHandler::EndModeling() { + G4VSceneHandler::EndModeling(); +} + + +void G4HepRepSceneHandler::AddPrimitive (const G4Polyline& line) { + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyline&) " << line.size() << G4endl; +#endif + + HepRepFactory* factory = GetHepRepFactory(); + HepRepInstance* instance = CreateInstance(parent, trackType); + + SetLine(instance, line); + + instance->addAttValue("DrawAs", G4String("Line")); + SetColour(instance, GetColour(line)); + for (size_t i=0; i < line.size(); i++) { + G4Point3D vertex = transform * line[i]; + HepRepPoint* point = factory->createHepRepPoint(instance, vertex.x(), vertex.y(), vertex.z()); + delete point; + } + delete instance; +} + + +void G4HepRepSceneHandler::AddPrimitive (const G4Polymarker& line) { + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Polymarker&) " << line.size() << G4endl; +#endif + HepRepFactory* factory = GetHepRepFactory(); + HepRepInstance* instance = CreateInstance(parent, hitType); + + instance->addAttValue("DrawAs", G4String("Point")); + + SetMarker(instance, line); + switch (line.GetMarkerType()) { + case line.dots: + instance->addAttValue("MarkName", G4String("Circle")); + instance->addAttValue("Fill", true); + SetColour(instance, GetColour(line), G4String("FillColor")); + break; + case line.circles: + instance->addAttValue("MarkName", G4String("Circle")); + break; + case line.squares: + instance->addAttValue("MarkName", G4String("Box")); + break; + case line.line: + default: + instance->addAttValue("MarkName", G4String("Plus")); + break; + } + + + SetColour(instance, GetColour(line)); + for (size_t i=0; i < line.size(); i++) { + G4Point3D vertex = transform * line[i]; + HepRepPoint* point = factory->createHepRepPoint(instance, vertex.x(), vertex.y(), vertex.z()); + delete point; + } + delete instance; +} + +void G4HepRepSceneHandler::AddPrimitive (const G4Circle& circle) { + G4Point3D center = transform * circle.GetPosition(); + + HepRepFactory* factory = GetHepRepFactory(); + HepRepInstance* instance = CreateInstance(parent, hitType); + + SetColour (instance, GetColour(circle)); + instance->addAttValue("DrawAs", G4String("Point")); + instance->addAttValue("MarkName", G4String("Circle")); + + SetMarker(instance, circle); + + HepRepPoint* point = factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); + delete point; + delete instance; + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Circle&) : center : " + << " x : " << center.x() + << " y : " << center.y() + << " z : " << center.z() + << " ,radius : " << size << G4endl; +#endif +} + + + +void G4HepRepSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { + +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyhedron&) " << G4endl; +#endif + G4Normal3D surfaceNormal; + G4Point3D vertex; + + if (polyhedron.GetNoFacets()==0) return; + + HepRepFactory* factory = GetHepRepFactory(); + HepRepInstance* instance = CreateInstance(parent, calHitType); + + G4bool notLastFace; + do { + HepRepInstance* face = CreateInstance(instance, calHitType); + SetLine(face, polyhedron); + face->addAttValue("DrawAs", G4String("Polygon")); + SetColour(face, GetColour(polyhedron)); + if (IsEventData()) SetColour(face, GetColour(polyhedron), G4String("FillColor")); + + notLastFace = polyhedron.GetNextNormal (surfaceNormal); + + G4int edgeFlag = 1; + G4bool notLastEdge; + do { + notLastEdge = polyhedron.GetNextVertex (vertex, edgeFlag); + vertex = transform * vertex; + HepRepPoint* point = factory->createHepRepPoint(face, vertex.x(), vertex.y(), vertex.z()); + delete point; + } while (notLastEdge); + + delete face; + + } while (notLastFace); + + delete instance; +} + + +void G4HepRepSceneHandler::AddPrimitive (const G4Text& text) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Text&) " << G4endl; +#endif + G4cout << "G4HepRepSceneHandler::AddPrimitive G4Text : not yet implemented. " << G4endl; +} + + +void G4HepRepSceneHandler::AddPrimitive (const G4Square& square) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Square&) " << G4endl; +#endif + G4Point3D center = transform * square.GetPosition(); + + HepRepFactory* factory = GetHepRepFactory(); + HepRepInstance* instance = CreateInstance(parent, hitType); + + SetColour (instance, GetColour(square)); + instance->addAttValue("DrawAs", G4String("Point")); + instance->addAttValue("MarkName", G4String("Box")); + + SetMarker(instance, square); + + HepRepPoint* point = factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); + delete point; + delete instance; +} + + +//Method for handling G4NURBS objects for drawing solids. +//Knots and Ctrl Pnts MUST be arrays of GLfloats. +void G4HepRepSceneHandler::AddPrimitive (const G4NURBS& nurb) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddPrimitive(G4NURBS&) " << G4endl; +#endif + G4cout << "G4HepRepSceneHandler::AddPrimitive G4NURBS : not yet implemented. " << G4endl; +} + + +void G4HepRepSceneHandler::AddThis (const G4Box& box) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Box&) " << G4endl; +#endif + G4VSceneHandler::AddThis (box); +} + + +void G4HepRepSceneHandler::AddThis (const G4Cons& cons) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Cons&) " << G4endl; +#endif + G4VSceneHandler::AddThis (cons); +} + + +void G4HepRepSceneHandler::AddThis (const G4Tubs& tubs) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Tubs&) " << G4endl; +#endif + G4VSceneHandler::AddThis (tubs); +} + + +void G4HepRepSceneHandler::AddThis (const G4Trd& trd) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Trd&) " << G4endl; +#endif + G4VSceneHandler::AddThis (trd); +} + + +void G4HepRepSceneHandler::AddThis (const G4Trap& trap) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Trap&) " << G4endl; +#endif + G4VSceneHandler::AddThis (trap); +} + + +void G4HepRepSceneHandler::AddThis (const G4Sphere& sphere) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Sphere&) " << G4endl; +#endif + G4VSceneHandler::AddThis (sphere); +} + + +void G4HepRepSceneHandler::AddThis (const G4Para& para) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Para&) " << G4endl; +#endif + G4VSceneHandler::AddThis (para); +} + + +void G4HepRepSceneHandler::AddThis (const G4Torus& torus) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Torus&) " << G4endl; +#endif + G4VSceneHandler::AddThis (torus); +} + + +void G4HepRepSceneHandler::AddThis (const G4Polycone& polycone) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Polycone&) " << G4endl; +#endif + G4VSceneHandler::AddThis (polycone); +} + + +void G4HepRepSceneHandler::AddThis (const G4Polyhedra& polyhedra) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4Polyhedra&) " << G4endl; +#endif + G4VSceneHandler::AddThis (polyhedra); +} + + +void G4HepRepSceneHandler::AddThis (const G4VSolid& solid) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4VSolid&) " << G4endl; +#endif + G4VSceneHandler::AddThis (solid); +} + +void G4HepRepSceneHandler::AddThis (const G4VTrajectory& traj) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4VTrajectory&) " << G4endl; +#endif + G4VSceneHandler::AddThis (traj); +} + +void G4HepRepSceneHandler::AddThis (const G4VHit& hit) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::AddThis(G4VHit&) " << G4endl; +#endif + G4VSceneHandler::AddThis (hit); +} + +void +G4HepRepSceneHandler::PreAddThis +(const G4Transform3D& objectTransformation, + const G4VisAttributes& visAttribs) { + + G4VSceneHandler::PreAddThis (objectTransformation, visAttribs); + + transform = objectTransformation; +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::PreAddThis : " << objectTransformation << G4endl; + G4cout << "G4HepRepSceneHandler::PreAddThis : " << visAttribs << G4endl; +#endif +} + +void G4HepRepSceneHandler::PostAddThis () { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::PostAddThis" << G4endl; +#endif + G4VSceneHandler::PostAddThis(); +} + + +void G4HepRepSceneHandler::BeginPrimitives (const G4Transform3D& objectTransformation) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::BeginPrimitives: " << G4endl; +#endif + + G4VSceneHandler::BeginPrimitives (objectTransformation); + transform = objectTransformation; +} + + +void G4HepRepSceneHandler::EndPrimitives () { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::EndPrimitives" << G4endl; +#endif + G4VSceneHandler::EndPrimitives (); +} + +void G4HepRepSceneHandler::SetColour (HepRepAttribute *attribute, const G4Colour& color, const G4String& key) { +#ifdef DEBUG + G4cout << "G4HepRepSceneHandler::SetColour : red : " << color.GetRed () << + " green : " << color.GetGreen () << + " blue : " << color.GetBlue () << G4endl; +#endif + attribute->addAttValue(key, color.GetRed(), color.GetGreen(), color.GetBlue(),color.GetAlpha()); +} + +void G4HepRepSceneHandler::SetLine (HepRepInstance *instance, const G4Visible& visible) { + G4VisAttributes atts = visible.GetVisAttributes(); + instance->addAttValue("LineWidth", atts.GetLineWidth()); + switch (atts.GetLineStyle()) { + case G4VisAttributes::dotted: + instance->addAttValue("LineStyle", G4String("Dotted")); + break; + case G4VisAttributes::dashed: + instance->addAttValue("LineStyle", G4String("Dashed")); + break; + case G4VisAttributes::unbroken: + default: + instance->addAttValue("LineStyle", G4String("Solid")); + break; + } +} + +void G4HepRepSceneHandler::SetMarker (HepRepInstance *instance, const G4VMarker& marker) { + MarkerSizeType markerType; + G4double size = GetMarkerRadius( marker , markerType ); + instance->addAttValue("MarkSize", size); + instance->addAttValue("MarkType", (markerType == screen) ? G4String("Symbol") : G4String("Real")); + if (marker.GetFillStyle() == G4VMarker::noFill) { + instance->addAttValue("Fill", false); + } else { + instance->addAttValue("Fill", true); + SetColour(instance, GetColour(marker), G4String("FillColor")); + } +} + +HepRepInstance* G4HepRepSceneHandler::CreateInstance(HepRepInstance* p, HepRepType* altType) { + HepRepFactory* factory = GetHepRepFactory(); + bool event = IsEventData(); + HepRepType* type = (event) ? altType : geometryType; + HepRepInstance* instance = factory->createHepRepInstance(p, type); + if (!event) { + instance->addAttValue("LVol", currentLV->GetName()); + instance->addAttValue("Solid", currentLV->GetSolid()->GetName()); + instance->addAttValue("EType", currentLV->GetSolid()->GetEntityType()); + instance->addAttValue("Material", currentLV->GetMaterial()->GetName()); + instance->addAttValue("Density", currentLV->GetMaterial()->GetDensity()); + instance->addAttValue("Radlen", currentLV->GetMaterial()->GetRadlen()); + + switch (currentLV->GetMaterial()->GetState()) { + case kStateSolid: + instance->addAttValue("State", G4String("Solid")); + break; + case kStateLiquid: + instance->addAttValue("State", G4String("Liquid")); + break; + case kStateGas: + instance->addAttValue("State", G4String("Gas")); + break; + case kStateUndefined: + default: + instance->addAttValue("State", G4String("Undefined")); + break; + } + } + return instance; +} + +bool G4HepRepSceneHandler::IsEventData () { + return !currentPV || fReadyForTransients; +} diff --git a/source/visualization/HepRep/src/G4HepRepViewer.cc b/source/visualization/HepRep/src/G4HepRepViewer.cc new file mode 100644 index 0000000000..fc2cd26190 --- /dev/null +++ b/source/visualization/HepRep/src/G4HepRepViewer.cc @@ -0,0 +1,131 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// +// + +/** + * @author Mark Donszelmann + */ + +//HepRep +#include "HEPREP/HepRep.h" + +//G4 +#include "G4Types.hh" +//#include "G4VInteractorManager.hh" +#include "G4Scene.hh" +#include "G4HepRep.hh" +#include "G4HepRepSceneHandler.hh" +//This +#include "G4HepRepViewer.hh" + +using namespace HEPREP; + +G4HepRepViewer::G4HepRepViewer (G4VSceneHandler& scene, const G4String& name) + : G4VViewer (scene, scene.IncrementViewCount(), name), + drawn(false) { + +#ifdef DEBUG + G4cout << "G4HepRepViewer::G4HepRepViewer" << G4endl; +#endif + + // Make changes to view parameters for HepRep... + fVP.SetCulling(false); + fDefaultVP.SetCulling(false); +} + + + +G4HepRepViewer::~G4HepRepViewer () { +} + + +void G4HepRepViewer::ClearView () { +#ifdef DEBUG + G4cout << "G4HepRepViewer::ClearView" << G4endl; +#endif +} + +/***************************************************************************/ +// Calculates view representation based on extent of object being +// viewed and (initial) direction of camera. (Note: it can change +// later due to user interaction via visualization system's GUI.) +/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ +void G4HepRepViewer::SetView () { +#ifdef DEBUG + G4cout << "G4HepRepViewer::SetView" << G4endl; +#endif +} + + + +void G4HepRepViewer::DrawView () { +#ifdef DEBUG + G4cout << "G4HepRepViewer::DrawView" << G4endl; +#endif + NeedKernelVisit(); + ProcessView(); + drawn = true; +} + +void G4HepRepViewer::ShowView () { +#ifdef DEBUG + G4cout << "G4HepRepViewer::ShowView" << G4endl; +#endif + G4VViewer::ShowView(); + + if (drawn) { + G4HepRepSceneHandler* sceneHandler = (G4HepRepSceneHandler*)GetSceneHandler(); + sceneHandler->close(); + drawn = false; + } +} + +void G4HepRepViewer::FinishView () { +#ifdef DEBUG + G4cout << "G4HepRepViewer::FinishView" << G4endl; +#endif + G4VViewer::FinishView(); +} + diff --git a/source/visualization/HepRep/src/HepRepXMLWriter.cc b/source/visualization/HepRep/src/HepRepXMLWriter.cc index 75cd5b43a6..5fd408a3d1 100644 --- a/source/visualization/HepRep/src/HepRepXMLWriter.cc +++ b/source/visualization/HepRep/src/HepRepXMLWriter.cc @@ -20,9 +20,31 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// ******************************************************************** +// * 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 and Version Information: -// $Id: HepRepXMLWriter.cc,v 1.8 2002/02/05 19:52:01 perl Exp $ +// $Id: HepRepXMLWriter.cc,v 1.9 2002/12/13 11:18:03 gunter Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). diff --git a/source/visualization/HepRep/src/IndentPrintWriter.cc b/source/visualization/HepRep/src/IndentPrintWriter.cc new file mode 100644 index 0000000000..07041fca7d --- /dev/null +++ b/source/visualization/HepRep/src/IndentPrintWriter.cc @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include + +#include "IndentPrintWriter.h" + +using namespace std; + +IndentPrintWriter::IndentPrintWriter(ostream* out, int level) + : out(out), indentLevel(level) { + + indentString = " "; + indented = false; +} + +IndentPrintWriter::~IndentPrintWriter() { +} + +void IndentPrintWriter::close() { + out->flush(); + ofstream* fout = dynamic_cast(out); + if (fout != NULL) { + fout->close(); + } +} + +IndentPrintWriter& IndentPrintWriter::operator<< (const char* s) { + if (!indented) doIndent(); + *out << s; + return *this; +} + +IndentPrintWriter& IndentPrintWriter::operator<< (ostream& (*pf)(ostream&)) { + *out << endl; + indented = false; + return *this; +} + +void IndentPrintWriter::println(string s) { + *this << s.c_str() << endl; +} + +void IndentPrintWriter::print(string s) { + *this << s.c_str(); +} + +void IndentPrintWriter::println() { + *out << endl; + indented = false; +} + +void IndentPrintWriter::doIndent() { + for (int i=0; iwrite(this); +} + +StreamerHepRep::~StreamerHepRep() { +} + +HepRep* StreamerHepRep::copy(HepRepSelectFilter* filter) { + return NULL; +} + +vector* StreamerHepRep::getLayerOrder() { + return &layers; +} + +bool StreamerHepRep::addLayer(string layer) { + layers.push_back(layer); + return true; +} + +bool StreamerHepRep::addTypeTree(HepRepTypeTree* typeTree) { + return true; +} + +void StreamerHepRep::removeTypeTree(HepRepTypeTree* typeTree) { +} + +HepRepTypeTree* StreamerHepRep::getTypeTree(string name, string version) { + return NULL; +} + +vector* StreamerHepRep::getTypeTrees() { + return NULL; +} + +HepRepType* StreamerHepRep::getType(string name) { + return NULL; +} + +bool StreamerHepRep::addInstanceTree(HepRepInstanceTree* instanceTree) { + return true; +} + +void StreamerHepRep::removeInstanceTree(HepRepInstanceTree* instanceTree) { +} + +HepRepInstanceTree* StreamerHepRep::getInstanceTreeTop(string name, string version) { + return NULL; +} + +HepRepInstanceTree* StreamerHepRep::getInstances(string name, string version, + vector typeNames) { + return NULL; +} + +HepRepInstanceTree* StreamerHepRep::getInstancesAfterAction( + string name, + string version, + vector typeNames, + vector actions, + bool getPoints, + bool getDrawAtts, + bool getNonDrawAtts, + vector invertAtts) { + return NULL; +} + +string StreamerHepRep::checkForException() { + return NULL; +} + +vector* StreamerHepRep::getInstanceTrees() { + return NULL; +} + diff --git a/source/visualization/HepRep/src/StreamerHepRepAttribute.cc b/source/visualization/HepRep/src/StreamerHepRepAttribute.cc new file mode 100644 index 0000000000..549e211922 --- /dev/null +++ b/source/visualization/HepRep/src/StreamerHepRepAttribute.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. * +// ******************************************************************** +// + +#include + +#include "StreamerHepRepAttribute.h" +#include "DefaultHepRepAttValue.h" + +using namespace std; +using namespace HEPREP; + + +StreamerHepRepAttribute::StreamerHepRepAttribute(HepRepWriter* stream) { + this->streamer = stream; +} + +StreamerHepRepAttribute::~StreamerHepRepAttribute() { +} + +vector* StreamerHepRepAttribute::getAttValuesFromNode() { + return NULL; +} + +bool StreamerHepRepAttribute::addAttValue(HepRepAttValue* hepRepAttValue) { + streamer->write(hepRepAttValue); + delete hepRepAttValue; + return true; +} + +bool StreamerHepRepAttribute::addAttValue(string key, string value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool StreamerHepRepAttribute::addAttValue(string key, int value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool StreamerHepRepAttribute::addAttValue(string key, double value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool StreamerHepRepAttribute::addAttValue(string key, bool value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool StreamerHepRepAttribute::addAttValue(string key, vector value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool StreamerHepRepAttribute::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); + return addAttValue(new DefaultHepRepAttValue(key, color, showLabel)); +} + +HepRepAttValue* StreamerHepRepAttribute::getAttValueFromNode(string lowerCaseName) { + return NULL; +} + +HepRepAttValue* StreamerHepRepAttribute::removeAttValue(string key) { + return NULL; +} + +HepRepAttValue* StreamerHepRepAttribute::getAttValue(string name) { + return NULL; +} + diff --git a/source/visualization/HepRep/src/StreamerHepRepDefinition.cc b/source/visualization/HepRep/src/StreamerHepRepDefinition.cc new file mode 100644 index 0000000000..b184ceea7d --- /dev/null +++ b/source/visualization/HepRep/src/StreamerHepRepDefinition.cc @@ -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. * +// ******************************************************************** +// + +#include "StreamerHepRepDefinition.h" +#include "DefaultHepRepAttDef.h" + +using namespace std; +using namespace HEPREP; + +StreamerHepRepDefinition::StreamerHepRepDefinition(HepRepWriter* streamer) + : StreamerHepRepAttribute(streamer), streamer(streamer) { +} + +StreamerHepRepDefinition::~StreamerHepRepDefinition() { +} + +vector* StreamerHepRepDefinition::getAttDefsFromNode() { + return NULL; +} + +bool StreamerHepRepDefinition::addAttDef(HepRepAttDef* hepRepAttDef) { + streamer->write(hepRepAttDef); + delete hepRepAttDef; + return true; +} + +bool StreamerHepRepDefinition::addAttDef(string name, string desc, string type, string extra) { + addAttDef(new DefaultHepRepAttDef(name, desc, type, extra)); + return true; +} + +HepRepAttDef* StreamerHepRepDefinition::getAttDefFromNode(string lowerCaseName) { + return NULL; +} + +HepRepAttDef* StreamerHepRepDefinition::getAttDef(string name) { + return NULL; +} + diff --git a/source/visualization/HepRep/src/StreamerHepRepInstance.cc b/source/visualization/HepRep/src/StreamerHepRepInstance.cc new file mode 100644 index 0000000000..efa011153a --- /dev/null +++ b/source/visualization/HepRep/src/StreamerHepRepInstance.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. * +// ******************************************************************** +// + +#include + +#include "StreamerHepRepInstance.h" + +using namespace std; +using namespace HEPREP; + +StreamerHepRepInstance::StreamerHepRepInstance(HepRepWriter* stream, HepRepInstance* instance, HepRepType* heprepType) + : StreamerHepRepAttribute(stream), parent(instance), type(heprepType) { + + if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; + stream->write(this); +} + +StreamerHepRepInstance::StreamerHepRepInstance(HepRepWriter* stream, HepRepInstanceTree* instanceTree, HepRepType* heprepType) + : StreamerHepRepAttribute(stream), parent(instanceTree), type(heprepType) { + + if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; + stream->write(this); +} + +StreamerHepRepInstance::~StreamerHepRepInstance() { +} + +HepRepInstance* StreamerHepRepInstance::copy(HepRep* heprep, HepRepInstance* instance, HepRepSelectFilter* filter) { + return NULL; +} + +HepRepInstance* StreamerHepRepInstance::copy(HepRep* heprep, HepRepInstanceTree* instanceTree, HepRepSelectFilter* filter) { + return NULL; +} + +HepRepType* StreamerHepRepInstance::getType() { + return type; +} + +bool StreamerHepRepInstance::addPoint(HepRepPoint* point) { + return true; +} + +vector* StreamerHepRepInstance::getPoints() { + return NULL; +} + +bool StreamerHepRepInstance::addInstance(HepRepInstance* instance) { + return true; +} + +void StreamerHepRepInstance::removeInstance(HepRepInstance* instance) { +} + +vector* StreamerHepRepInstance::getInstances() { + return NULL; +} + +HepRepAttValue* StreamerHepRepInstance::getAttValue(string name) { + return NULL; +} diff --git a/source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc b/source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc new file mode 100644 index 0000000000..f95cd8859b --- /dev/null +++ b/source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc @@ -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. * +// ******************************************************************** +// + +#include "StreamerHepRepInstanceTree.h" + +using namespace std; +using namespace HEPREP; + +StreamerHepRepInstanceTree::StreamerHepRepInstanceTree(HepRepWriter* stream, string name, string version, HepRepTreeID* typeTree) + : DefaultHepRepTreeID(name, version), streamer(stream), typeTree(typeTree) { + + stream->write(this); +} + +StreamerHepRepInstanceTree::~StreamerHepRepInstanceTree() { +} + +HepRepTreeID* StreamerHepRepInstanceTree::copy() { + return DefaultHepRepTreeID::copy(); +} + +HepRepInstanceTree* StreamerHepRepInstanceTree::copy(HepRep* heprep, HepRepSelectFilter* filter) { + return NULL; +} + +bool StreamerHepRepInstanceTree::addInstance(HepRepInstance* instance) { + return true; +} + +void StreamerHepRepInstanceTree::removeInstance(HepRepInstance* instance) { +} + +vector* StreamerHepRepInstanceTree::getInstances() { + return NULL; +} + +bool StreamerHepRepInstanceTree::addInstanceTree(HepRepTreeID* treeID) { + streamer->write(treeID); + return true; +} + +HepRepTreeID* StreamerHepRepInstanceTree::getTypeTree() { + return typeTree; +} + +vector* StreamerHepRepInstanceTree::getInstanceTrees() { + return NULL; +} + diff --git a/source/visualization/HepRep/src/StreamerHepRepPoint.cc b/source/visualization/HepRep/src/StreamerHepRepPoint.cc new file mode 100644 index 0000000000..ed94b66b1a --- /dev/null +++ b/source/visualization/HepRep/src/StreamerHepRepPoint.cc @@ -0,0 +1,137 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include +#include +#include + +#include "StreamerHepRepPoint.h" + +using namespace std; +using namespace HEPREP; + +StreamerHepRepPoint::StreamerHepRepPoint(HepRepWriter* stream, HepRepInstance* inst, double x, double y, double z) + : StreamerHepRepAttribute(stream), instance(inst), x(x), y(y), z(z) { + + if (instance == NULL) { + cerr << "HepRepPoints cannot be created without a HepRepInstance." << endl; + } + + stream->write(this); +} + +StreamerHepRepPoint::~StreamerHepRepPoint() { +} + +HepRepInstance* StreamerHepRepPoint::getInstance() { + return instance; +} + +HepRepAttValue* StreamerHepRepPoint::getAttValue(string lowerCaseName) { + HepRepAttValue* value = getAttValueFromNode(lowerCaseName); + return (value != NULL) ? value : instance->getAttValue(lowerCaseName); +} + +HepRepPoint* StreamerHepRepPoint::copy(HepRepInstance* parent) { + return NULL; +} + +double StreamerHepRepPoint::getX() { + return x; +} + +double StreamerHepRepPoint::getY() { + return y; +} + +double StreamerHepRepPoint::getZ() { + return z; +} + +vector* StreamerHepRepPoint::getXYZ(vector* xyz) { + (*xyz)[0] = x; + (*xyz)[1] = y; + (*xyz)[2] = z; + return xyz; +} + +double StreamerHepRepPoint::getRho() { + return sqrt(x*x + y*y); +} + +double StreamerHepRepPoint::getPhi() { + return atan2(y, x); +} + +double StreamerHepRepPoint::getTheta() { + return atan2(getRho(), z); +} + +double StreamerHepRepPoint::getR() { + double r = getRho(); + return sqrt(r*r + z*z); +} + +double StreamerHepRepPoint::getEta() { + double ct = cos(getTheta()); + return -0.5*log((1.-ct)/(1.+ct)); +} + +double StreamerHepRepPoint::getX(double xVertex, double yVertex, double zVertex) { + return x - xVertex; +} + +double StreamerHepRepPoint::getY(double xVertex, double yVertex, double zVertex) { + return y - yVertex; +} + +double StreamerHepRepPoint::getZ(double xVertex, double yVertex, double zVertex) { + return z - zVertex; +} + +double StreamerHepRepPoint::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 StreamerHepRepPoint::getPhi(double xVertex, double yVertex, double zVertex) { + return atan2(getY(xVertex, yVertex, zVertex), getX(xVertex, yVertex, zVertex)); +} + +double StreamerHepRepPoint::getTheta(double xVertex, double yVertex, double zVertex) { + return atan2(getRho(xVertex, yVertex, zVertex), getZ(xVertex, yVertex, zVertex)); +} + +double StreamerHepRepPoint::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 StreamerHepRepPoint::getEta(double xVertex, double yVertex, double zVertex) { + double ct = cos(getTheta(xVertex, yVertex, zVertex)); + return -0.5*log((1.-ct)/(1.+ct)); +} + + diff --git a/examples/extended/biasing/B01/src/B01Scorer.cc b/source/visualization/HepRep/src/StreamerHepRepType.cc similarity index 54% rename from examples/extended/biasing/B01/src/B01Scorer.cc rename to source/visualization/HepRep/src/StreamerHepRepType.cc index 15c311d586..67de1c29ea 100644 --- a/examples/extended/biasing/B01/src/B01Scorer.cc +++ b/source/visualization/HepRep/src/StreamerHepRepType.cc @@ -20,46 +20,67 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: B01Scorer.cc,v 1.3 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "B01Scorer.hh" -#include "G4Step.hh" -#include "G4PStep.hh" -#include "G4Sigma.hh" -#include "G4StateManager.hh" +#include "StreamerHepRepType.h" -B01Scorer::B01Scorer(){} -B01Scorer::~B01Scorer(){} +using namespace std; +using namespace HEPREP; -void B01Scorer::Score(const G4Step &aStep, const G4PStep &aPstep){ - G4Track *track = aStep.GetTrack(); +StreamerHepRepType::StreamerHepRepType(HepRepWriter* stream, HepRepType* parent, string name) + : StreamerHepRepDefinition(stream), parent(parent), name(name) { + this->description = "No Description"; + this->infoURL = "No Info URL"; - if (track->GetTrackStatus()==fStopAndKill) { - G4cout << " track status is StopAndKill -> do nothing" << G4endl; - } - // do the scoring - else { - // the map fPtkTallys, the map nametallys and the "G4Sigma" will - // be setup the first time they are accesed. - // the user may choos any other place to store the results e.g. - // histogramms - G4PTouchableKey post_ptk(aPstep.fPostTouchableKey); - if (aPstep.fCrossBoundary) { - // Pstep crosses boundary - fPtkTallys[post_ptk]["HistorysEntering"].Xin(1); - fPtkTallys[post_ptk]["EnergyEnteringHistory"]. - Xin(track->GetKineticEnergy()); - } - else { - fPtkTallys[post_ptk]["Collisions"].Xin(1); - } - } + stream->write(this); } -G4std::ostream& operator<<(G4std::ostream &out, const B01Scorer &ps) { - out << ps.GetMapPtkTallys(); - return out; +StreamerHepRepType::~StreamerHepRepType() { } + +HepRepType* StreamerHepRepType::getSuperType() { + return parent; +} + +HepRepAttDef* StreamerHepRepType::getAttDef(string key) { + return NULL; +} + +/** + * searched for a value with given name. Search up the type tree if needed. + */ +HepRepAttValue* StreamerHepRepType::getAttValue(string key) { + return NULL; +} + +HepRepType* StreamerHepRepType::copy(HepRep* heprep, HepRepType* type) { + return NULL; +} + +string StreamerHepRepType::getName() { + return name; +} + +string StreamerHepRepType::getDescription() { + return description; +} + +void StreamerHepRepType::setDescription(string desc) { + this->description = desc; +} + +string StreamerHepRepType::getInfoURL() { + return infoURL; +} + +void StreamerHepRepType::setInfoURL(string info) { + this->infoURL = info; +} + +bool StreamerHepRepType::addType(HepRepType* type) { + return true; +} + +vector* StreamerHepRepType::getTypes() { + return NULL; +} + diff --git a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc b/source/visualization/HepRep/src/StreamerHepRepTypeTree.cc similarity index 68% rename from examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc rename to source/visualization/HepRep/src/StreamerHepRepTypeTree.cc index 1bd2a35b8c..307823ec0f 100644 --- a/examples/extended/persistency/PersistentEx02/src/PersEx02TrackerHit.cc +++ b/source/visualization/HepRep/src/StreamerHepRepTypeTree.cc @@ -20,43 +20,36 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: PersEx02TrackerHit.cc,v 1.4 2001/07/11 09:58:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ -// -#include "PersEx02TrackerHit.hh" +#include -PersEx02TrackerHit::PersEx02TrackerHit() -{;} +#include "StreamerHepRepTypeTree.h" -PersEx02TrackerHit::~PersEx02TrackerHit() -{;} +using namespace std; +using namespace HEPREP; -PersEx02TrackerHit::PersEx02TrackerHit(const PersEx02TrackerHit &right) -{ - edep = right.edep; - pos = right.pos; +StreamerHepRepTypeTree::StreamerHepRepTypeTree(HepRepWriter* streamer, HepRepTreeID* typeTree) + : DefaultHepRepTreeID(typeTree->getName(), typeTree->getVersion()) { + + streamer->write(this); } -const PersEx02TrackerHit& PersEx02TrackerHit::operator=(const PersEx02TrackerHit &right) -{ - edep = right.edep; - pos = right.pos; - return *this; +StreamerHepRepTypeTree::~StreamerHepRepTypeTree() { } -int PersEx02TrackerHit::operator==(const PersEx02TrackerHit &right) const -{ - return 0; +HepRepTreeID* StreamerHepRepTypeTree::copy() { + return DefaultHepRepTreeID::copy(); } -void PersEx02TrackerHit::Draw() -{ +HepRepTypeTree* StreamerHepRepTypeTree::copy(HepRep* heprep) { + return NULL; } -void PersEx02TrackerHit::Print() -{ +bool StreamerHepRepTypeTree::addType(HepRepType* type) { + return true; } +vector* StreamerHepRepTypeTree::getTypes() { + return NULL; +} diff --git a/source/visualization/HepRep/src/XMLHepRepStreamer.cc b/source/visualization/HepRep/src/XMLHepRepStreamer.cc new file mode 100644 index 0000000000..6586bdd20e --- /dev/null +++ b/source/visualization/HepRep/src/XMLHepRepStreamer.cc @@ -0,0 +1,225 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include "XMLHepRepStreamer.h" + +#include "StreamerHepRepInstance.h" +#include "DefaultHepRepAttValue.h" + +#define NAMESPACE "heprep" + +using namespace std; +using namespace HEPREP; + +XMLHepRepStreamer::XMLHepRepStreamer(ostream* out) + : XMLWriter(out, " ", NAMESPACE) { + + this->nameSpace = NAMESPACE; + openDoc(); +} + +XMLHepRepStreamer::~XMLHepRepStreamer() { +} + +bool XMLHepRepStreamer::close() { + while (!hepreps.empty()) { + hepreps.pop(); + closeTag(); + } + + closeDoc(); + XMLWriter::close(); + return true; +} + +bool XMLHepRepStreamer::write(HepRep* root) { + setAttribute("xmlns", "http://www.freehep.org/HepRep"); + setAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); + setAttribute("xsi", "schemaLocation", "HepRep.xsd"); + openTag(nameSpace, "heprep"); + writtenLayers = false; + hepreps.push(root); + this->heprep = root; + return true; +} + +bool XMLHepRepStreamer::write(HepRepTypeTree* typeTree) { + while (hepreps.top() != heprep) { + if (hepreps.empty()) { + cerr << "XMLHepRepStreamer: cannot write typeTree without HepRep" << endl; + return false; + } + hepreps.pop(); + closeTag(); + } + if (!writtenLayers) { + writtenLayers = true; + string layerOrder = ""; + bool comma = false; + vector *layers = heprep->getLayerOrder(); + for (vector::iterator i=layers->begin(); i != layers->end(); i++) { + if (comma) { + layerOrder.append(", "); + } + layerOrder.append(*i); + comma = true; + } + setAttribute("order", layerOrder); + printTag(nameSpace, "layer"); + } + + setAttribute("name", typeTree->getName()); + setAttribute("version", typeTree->getVersion()); + openTag(nameSpace, "typetree"); + hepreps.push(typeTree); + heprepTypeTree = typeTree; + return true; +} + +bool XMLHepRepStreamer::write(HepRepType* type) { + HepRepType* parent = type->getSuperType(); + if (parent != NULL) { + while (hepreps.top() != parent) { + if (hepreps.empty()) { + cerr << "XMLHepRepStreamer: cannot write type, parent not anymore on stack..." << endl; + return false; + } + hepreps.pop(); + closeTag(); + } + } else { + while (hepreps.top() != heprepTypeTree) { + if (hepreps.empty()) { + cerr << "XMLHepRepStreamer: cannot write type without parent typeTree." << endl; + return false; + } + hepreps.pop(); + closeTag(); + } + } + + setAttribute("name", type->getName()); + openTag(nameSpace, "type"); + hepreps.push(type); + return true; +} + +bool XMLHepRepStreamer::write(HepRepTreeID* treeID) { + setAttribute("qualifier", treeID->getQualifier()); + setAttribute("name", treeID->getName()); + setAttribute("version", treeID->getVersion()); + printTag(nameSpace, "treeid"); + return true; +} + +bool XMLHepRepStreamer::write(HepRepAction* action) { + setAttribute("name", action->getName()); + setAttribute("expression", action->getExpression()); + printTag(nameSpace, "action"); + return true; +} + +bool XMLHepRepStreamer::write(HepRepInstanceTree* instanceTree) { + while (hepreps.top() != heprep) { + if (hepreps.empty()) { + cerr << "XMLHepRepStreamer cannot write instanceTree without HepRep." << endl; + return false; + } + hepreps.pop(); + closeTag(); + } + + setAttribute("name", instanceTree->getName()); + setAttribute("version", instanceTree->getVersion()); + setAttribute("typetreename", instanceTree->getTypeTree()->getName()); + setAttribute("typetreeversion", instanceTree->getTypeTree()->getVersion()); + openTag(nameSpace, "instancetree"); + hepreps.push(instanceTree); + return true; +} + +bool XMLHepRepStreamer::write(HepRepInstance* instance) { + void* parent = dynamic_cast(instance)->getParent(); + while (hepreps.top() != parent) { + if (hepreps.empty()) { + cerr << "XMLHepRepStreamer: cannot write instance, parent (instance/instanceTree) not anymore on Stack..." << endl; + return false; + } + hepreps.pop(); + closeTag(); + } + + setAttribute("type", instance->getType()->getName()); + openTag(nameSpace, "instance"); + hepreps.push(instance); + return true; +} + +bool XMLHepRepStreamer::write(HepRepPoint* point) { + while (hepreps.top() != point->getInstance()) { + if (hepreps.empty()) { + cerr << "XMLHepRepStreamer: cannot write point, parent instance not anymore on Stack..." << endl; + return false; + } + hepreps.pop(); + closeTag(); + } + + setAttribute("x", point->getX()); + setAttribute("y", point->getY()); + setAttribute("z", point->getZ()); + openTag(nameSpace, "point"); + hepreps.push(point); + return true; +} + +bool XMLHepRepStreamer::write(HepRepAttribute* attribute) { + return true; +} + +bool XMLHepRepStreamer::write(HepRepDefinition* definition) { + return true; +} + +bool XMLHepRepStreamer::write(HepRepAttValue* attValue) { + string name = attValue->getName(); + + setAttribute("name", name); + setAttribute("value", attValue->getAsString()); + setAttribute("type", attValue->getTypeName()); + + string label = dynamic_cast(attValue)->toShowLabel(); + setAttribute("showLabel", label); + printTag(nameSpace, "attvalue"); + return true; +} + +bool XMLHepRepStreamer::write(HepRepAttDef* attDef) { + setAttribute("name", attDef->getName()); + setAttribute("desc", attDef->getDescription()); + setAttribute("category", attDef->getCategory()); + setAttribute("extra", attDef->getExtra()); + printTag(nameSpace, "attdef"); + return true; +} + diff --git a/source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc b/source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc new file mode 100644 index 0000000000..169566e429 --- /dev/null +++ b/source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc @@ -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. * +// ******************************************************************** +// + +#include +#include + +#include "XMLHepRepStreamerFactory.h" +#include "XMLHepRepStreamer.h" + +#include "StreamerHepRepPoint.h" +#include "StreamerHepRepInstance.h" +#include "StreamerHepRepInstanceTree.h" +#include "StreamerHepRepType.h" +#include "StreamerHepRepTypeTree.h" +#include "StreamerHepRep.h" +#include "DefaultHepRepAction.h" +#include "DefaultHepRepTreeID.h" + +using namespace std; +using namespace HEPREP; + + +XMLHepRepStreamerFactory::XMLHepRepStreamerFactory() { +} + +XMLHepRepStreamerFactory::~XMLHepRepStreamerFactory() { +} + +HepRepWriter* XMLHepRepStreamerFactory::createHepRepWriter(ostream* out) { + this->streamer = new XMLHepRepStreamer(out); + return streamer; +} + +HepRepPoint* XMLHepRepStreamerFactory::createHepRepPoint (HepRepInstance* instance, + double x, double y, double z) { + return new StreamerHepRepPoint(streamer, instance, x, y, z); +} + +HepRepInstance* XMLHepRepStreamerFactory::createHepRepInstance (HepRepInstance* parent, HepRepType* type) { + return new StreamerHepRepInstance(streamer, parent, type); +} + +HepRepInstance* XMLHepRepStreamerFactory::createHepRepInstance (HepRepInstanceTree* parent, HepRepType* type) { + return new StreamerHepRepInstance(streamer, parent, type); +} + +HepRepTreeID* XMLHepRepStreamerFactory::createHepRepTreeID (string name, string version, string qualifier) { + return new DefaultHepRepTreeID(name, version, qualifier); +} + +HepRepAction* XMLHepRepStreamerFactory::createHepRepAction (string name, string expression) { + return new DefaultHepRepAction(name, expression); +} + +HepRepInstanceTree* XMLHepRepStreamerFactory::createHepRepInstanceTree (string name, string version, + HepRepTreeID* typeTreeID) { + return new StreamerHepRepInstanceTree(streamer, name, version, typeTreeID); +} + +HepRepType* XMLHepRepStreamerFactory::createHepRepType (HepRepType* parent, string name) { + return new StreamerHepRepType(streamer, parent, name); +} + +HepRepTypeTree* XMLHepRepStreamerFactory::createHepRepTypeTree (HepRepTreeID* treeID) { + return new StreamerHepRepTypeTree(streamer, treeID); +} + +HepRep* XMLHepRepStreamerFactory::createHepRep () { + return new StreamerHepRep(streamer); +} + diff --git a/source/visualization/HepRep/src/XMLWriter.cc b/source/visualization/HepRep/src/XMLWriter.cc new file mode 100644 index 0000000000..c39e74fb1f --- /dev/null +++ b/source/visualization/HepRep/src/XMLWriter.cc @@ -0,0 +1,285 @@ +// +// ******************************************************************** +// * 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. * +// ******************************************************************** +// + +#include + +#include "XMLWriter.h" + +using namespace std; + +XMLWriter::XMLWriter(ostream* out, string indentString, string defaultNameSpace) + : defaultNameSpace(defaultNameSpace) { + writer = new IndentPrintWriter(out); + writer->setIndentString(" "); + closed = true; + dtdName = NULL; +} + +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); + + closed = false; +// 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 != NULL) { + cerr << "XMLWriter::ReferToDTD cannot be called twice" << endl; + } + dtdName = &name; + *writer << "" << endl; +} + +void XMLWriter::referToDTD(string name, string system) { + if (dtdName != NULL) { + cerr << "XMLWriter::ReferToDTD cannot be called twice"; + } + dtdName = &name; + *writer << "" << endl; +} + +void XMLWriter::closeDoc() { + if (!closed) { + if (!openTags.empty()) { + cerr << "Not all tags were closed before closing XML document:" << endl; + while (!openTags.empty()) { + cerr << " " << endl; + openTags.pop(); + } + } + closed = true; + } +} + +void XMLWriter::printComment(string comment) { + if (comment.find("--") >= 0) { + cerr << "XMLWriter::printComment '--' sequence not allowed in comment" << endl; + } + *writer << "" << endl; +} + +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 != NULL && dtdName->compare(name)) { + cerr << "XMLWriter::openTag(), First tag: '" << name.c_str() << "' not equal to DTD id: '" << dtdName->c_str() << "'" << 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, "%f", 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 s) { +// Could be added. +// if (!XMLCharacterProperties.validName(s)) throw new RuntimeException("Invalid name: "+s); +} diff --git a/source/visualization/History b/source/visualization/History index 2299e0c33d..b93e154d3c 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,4 +1,4 @@ -$Id: History,v 1.193 2002/06/24 07:34:15 gcosmo Exp $ +$Id: History,v 1.212 2002/12/11 16:11:44 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,98 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +11th December 2002 John Allison (vis-V04-01-10) +- Fix for SUN-CC warnings: AddThis hides the virtual function... +- Fix memory leak in RayTracer. +- Fixed /vis/scene/add/trajectories command. +- Some fixes in HepRep. + +4th December 2002 Makoto Asai (vis-V04-01-09) +- Migration to new G4ApplicationState + +27th November 2002 John Allison (vis-V04-01-08) +- Fixes to HepRep - see History file. +- Added RegisterGraphicsSystem (new G4HepRep) in MyVisManager.cc. +- Fix (removal) of ambiguous G4VVisCommand::GetNewDoubleValue. +- Added /vis/viewer/set/globalMarkerScale. +- Improved algorithm of CompareForKernelVisit on OpenGL and OpenInventor. + +21st November 2002 Gabriele Cosmo (vis-V04-01-07) +- Corrections to HepRep module to allow porting on egcs compiler + (M.Donszelmann). +- Patched access to static data in G4VisCommandsSceneAdd.cc, G4VisManager.cc + and G4FlavoredParallelWorldModel.cc to allow porting on Windows DLLs. + It requires co-working with tags "greps-V04-01-04" and "intercoms-V04-01-02". + +15th November 2002 Mark Donszelmann (vis-V04-01-06) +- HepRep2 driver implemented. + +11th November 2002 John Allison (vis-V04-01-05) +- Corrected inclusion of G4OpenGLXViewer #ifdef X_DRIVER for Windows + and other small changes in OpenGL (opengl-V04-01-02). +- Added integer argument to /vis/scene/add/trajectories [drawing-mode]. + drawing-mode is passed to DrawTrajectory. See also modeling-V04-00-00. +- Fixed bug in G4VisManager wich lead to zero G4VModel pointer. +- Improved hamdling of models. +- Corrected G4RayTracer.cc devide-by-zero (raytracer-V04-00-01). +- VRML: bug fixing for marker size (*.icc files) (VRML-V04-01-00). +- Samll improvements to README.built_in_commands. +- Improved sample driver XXX. + +1st November 2002 John Allison (vis-V04-01-04 with...) +geant4/source/tracking tracking-V04-01-03 +geant4/source/intercoms intercoms-V04-01-00 +geant4/source/graphics_reps greps-V04-01-01 +geant4/source/digits+hits digits+hits-V04-01-01 + +Oct 28, 2002, J.Allison (vis-traj03, co-works with... +geant4/source/tracking traj03 (head as of Tue Oct 29 15:42:14 UTC 2002) +geant4/source/intercoms intercoms-V04-01-00 (ditto) +geant4/source/graphics_reps greps-V04-01-01 (ditto) +geant4/source/digits+hits hits-traj03 (*not* the head) +- Changed G4XXXSceneHandler.cc for map of G4AttDefs, and improved. + +17th October 2002 John Allison (vis-V04-01-03 with...) +- Coworking tags are: + geant4/source/tracking traj02 + geant4/source/intercoms intercoms-V04-00-04 + geant4/source/graphics_reps greps-V04-01-00 + geant4/source/digits+hits hits-traj02 +- More changes for AddThis(const G4VTrajectory&) and (const G4VHit&). +- Minor corrections to warning messages, etc. +- Improved end of run behaviour for non-post-processing graphics + systems by changing false to true in G4VisManager::EndOfRun + fpSceneHandler->SetMarkForClearingTransientStore(true); +- Further corrections/improvements in OpenGLWin32 - not yet complete. + +17th October 2002 John Allison (vis-V04-01-02 with intercoms-V04-01-00) +- Added two new pure virtual functions to G4VGraphicsScene: + AddThis(const G4VTrajectory&) + AddThis(const G4VHit&) + +16th October 2002 John Allison (vis-traj01 co-works with tracking tag traj01) +- Tag for changes in G4VTrajectory, etc. (raytracer-V04-00-00). + +16th October 2002 John Allison (vis-V04-01-01) +- Fix for WIN32. Now compiles but viewer not implemented. (opengl-V04-01-01) +- Small improvement to README.built_in_commands. + +1st Sept 2002 Satoshi Tanaka (vis-V04-01-00) +- Precision control of g4_XX.prim files generated by + the DAWNFILE/DAWN-Network drivers. + + Example: + setenv G4DAWNFILE_PRECISION 9 + + The precision number is used as: + + sprintf( string, "%*.*g", (precision+8), precision, value) + + The default precision is also changed from 6 to 9. + +24th June 2002 John Allison +- Further cosmetic changes in G4OpenGL for DEC compiler (opengl-V04-01-00). + 24th June 2002 Gabriele Cosmo (vis-V04-00-10) - Exclude latest changes to OpenGL driver (opengl-V04-00-03), causing compilation errors on some platforms (DEC-cxx). diff --git a/source/visualization/OPACS/include/G4GoSceneHandler.hh b/source/visualization/OPACS/include/G4GoSceneHandler.hh index d9751d68ca..2880f2f29b 100644 --- a/source/visualization/OPACS/include/G4GoSceneHandler.hh +++ b/source/visualization/OPACS/include/G4GoSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GoSceneHandler.hh,v 1.8 2001/08/24 21:49:59 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GoSceneHandler.hh,v 1.9 2002/12/11 15:58:00 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 @@ -72,6 +72,8 @@ public: void AddThis (const G4Polycone&); void AddThis (const G4Polyhedra&); void AddThis (const G4VSolid&); + void AddThis (const G4VTrajectory&); + void AddThis (const G4VHit&); void BeginPrimitives (const G4Transform3D& objectTransformation); void EndPrimitives (); diff --git a/source/visualization/OPACS/include/G4Wo.hh b/source/visualization/OPACS/include/G4Wo.hh index 62f39e7462..9248502e3a 100644 --- a/source/visualization/OPACS/include/G4Wo.hh +++ b/source/visualization/OPACS/include/G4Wo.hh @@ -22,7 +22,7 @@ // // // $Id: G4Wo.hh,v 1.6 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4WoViewer.hh b/source/visualization/OPACS/include/G4WoViewer.hh index b90345034c..52218bebfc 100644 --- a/source/visualization/OPACS/include/G4WoViewer.hh +++ b/source/visualization/OPACS/include/G4WoViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4WoViewer.hh,v 1.5 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4Xo.hh b/source/visualization/OPACS/include/G4Xo.hh index 5f4cad5b7c..052078e574 100644 --- a/source/visualization/OPACS/include/G4Xo.hh +++ b/source/visualization/OPACS/include/G4Xo.hh @@ -22,7 +22,7 @@ // // // $Id: G4Xo.hh,v 1.6 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/include/G4XoViewer.hh b/source/visualization/OPACS/include/G4XoViewer.hh index cb05c7edb5..ca369f3949 100644 --- a/source/visualization/OPACS/include/G4XoViewer.hh +++ b/source/visualization/OPACS/include/G4XoViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4XoViewer.hh,v 1.5 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4GoSceneHandler.cc b/source/visualization/OPACS/src/G4GoSceneHandler.cc index 62fd5319ad..987764c976 100644 --- a/source/visualization/OPACS/src/G4GoSceneHandler.cc +++ b/source/visualization/OPACS/src/G4GoSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GoSceneHandler.cc,v 1.13 2001/11/12 18:22:09 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4GoSceneHandler.cc,v 1.14 2002/12/11 15:58:01 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 @@ -444,6 +444,30 @@ void G4GoSceneHandler::AddThis ( G4VSceneHandler::AddThis (solid); } /***************************************************************************/ +void G4GoSceneHandler::AddThis ( + const G4VTrajectory& traj +) +/***************************************************************************/ +/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ +{ +#ifdef DEBUG + G4cout << "G4GoSceneHandler::AddThis(G4VTrajectory&) " << G4endl; +#endif + G4VSceneHandler::AddThis (traj); +} +/***************************************************************************/ +void G4GoSceneHandler::AddThis ( + const G4VHit& hit +) +/***************************************************************************/ +/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ +{ +#ifdef DEBUG + G4cout << "G4GoSceneHandler::AddThis(G4VHit&) " << G4endl; +#endif + G4VSceneHandler::AddThis (hit); +} +/***************************************************************************/ void G4GoSceneHandler::PreAddThis ( const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs diff --git a/source/visualization/OPACS/src/G4Wo.cc b/source/visualization/OPACS/src/G4Wo.cc index c4e48bcbaf..34cf11ffb1 100644 --- a/source/visualization/OPACS/src/G4Wo.cc +++ b/source/visualization/OPACS/src/G4Wo.cc @@ -22,7 +22,7 @@ // // // $Id: G4Wo.cc,v 1.5 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4WoViewer.cc b/source/visualization/OPACS/src/G4WoViewer.cc index 79900f44f4..c177bb1496 100644 --- a/source/visualization/OPACS/src/G4WoViewer.cc +++ b/source/visualization/OPACS/src/G4WoViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4WoViewer.cc,v 1.7 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4Xo.cc b/source/visualization/OPACS/src/G4Xo.cc index 7fc2a79c18..2c9a586735 100644 --- a/source/visualization/OPACS/src/G4Xo.cc +++ b/source/visualization/OPACS/src/G4Xo.cc @@ -22,7 +22,7 @@ // // // $Id: G4Xo.cc,v 1.6 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OPACS/src/G4XoViewer.cc b/source/visualization/OPACS/src/G4XoViewer.cc index 3d2ac5c2a0..8dbb83a785 100644 --- a/source/visualization/OPACS/src/G4XoViewer.cc +++ b/source/visualization/OPACS/src/G4XoViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4XoViewer.cc,v 1.8 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Guy Barrand 04 November 1996 diff --git a/source/visualization/OpenGL/GNUmakefile b/source/visualization/OpenGL/GNUmakefile index 2377114b12..d7a6b829e8 100644 --- a/source/visualization/OpenGL/GNUmakefile +++ b/source/visualization/OpenGL/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2002/03/01 00:29:39 johna Exp $ +# $Id: GNUmakefile,v 1.4 2002/11/11 18:02:04 johna Exp $ name := G4OpenGL @@ -21,5 +21,7 @@ CPPFLAGS += -I$(G4BASE)/geometry/management/include CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/intercoms/include CPPFLAGS += -I$(G4BASE)/interfaces/common/include +CPPFLAGS += -I$(G4BASE)/tracking/include +CPPFLAGS += -I$(G4BASE)/digits+hits/hits/include include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/OpenGL/History b/source/visualization/OpenGL/History index dd3589592b..ec8b7c4235 100644 --- a/source/visualization/OpenGL/History +++ b/source/visualization/OpenGL/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2002/02/24 01:47:46 johna Exp $ +$Id: History,v 1.23 2002/11/27 12:46:55 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,27 @@ committal in the CVS repository ! History file for visualization/OpenGL ------------------------------------- +27th November 2002 John Allison (vis-V04-01-08) +- Improved algorithm of CompareForKernelVisit. + +11th November 2002 John Allison (opengl-V04-01-02) +- Corrected inclusion of G4OpenGLXViewer #ifdef X_DRIVER. +- Added G4OpenGLSceneHandler::AddThis for trajectories and hits - simply + call default but there as a marker and encourager. +- Added tracking and digits+hits/hits to GNUmakefile. + +16th October 2002 John Allison (opengl-V04-01-01) +- Fix for WIN32. Now compiles but viewer not implemented. + +24th June 2002 John Allison (opengl-V04-01-00) +- Further cosmetic changes in G4OpenGLXViewer.cc for DEC compiler. + +10th June 2002 John Allison (opengl-V04-00-03) +- Cosmetic changes for SUN-CC in G4OpenGLXmConvenienceRoutines.cc. + +6th June 2002 John Allison (opengl-V04-00-02) +- Cosmetic changes for GNU compiler in G4OpenGLXViewer.cc. + 23rd February 2002 John Allison (opengl-V04-00-01) - Changes to encourage compilation on Windows in preparation for implementation of G4OpenGLWin32Viewer. Removed spurious includes of diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh index 6cf2af6be8..f00e4a2597 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateSceneHandler.hh,v 1.6 2001/08/09 20:16:56 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh index 97e472e66a..cbc9b0992b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateViewer.hh,v 1.6 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLImmediateViewer.hh,v 1.7 2002/10/16 10:44:13 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 @@ -49,9 +49,6 @@ class G4OpenGLImmediateViewer: virtual public G4OpenGLViewer { public: G4OpenGLImmediateViewer (G4OpenGLImmediateSceneHandler& scene); - -private: - G4OpenGLImmediateSceneHandler& fSceneHandler; // Graphics Scene for this view. }; #endif diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh index 661fc31f13..37e6095491 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32.hh,v 1.5 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLImmediateWin32.hh,v 1.6 2002/10/16 10:44:14 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // OpenGLImmediateWin32 graphics system factory. @@ -37,8 +37,8 @@ class G4OpenGLImmediateWin32: public G4VGraphicsSystem { public: G4OpenGLImmediateWin32 (); - G4VSceneHandler* CreateSceneHandler (); - G4VViewer* CreateViewer (G4VSceneHandler&); + G4VSceneHandler* CreateSceneHandler (const G4String& name = ""); + G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); }; #endif diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh index 66a39643ce..b435bde653 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32Viewer.hh,v 1.6 2001/07/14 21:47:41 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLImmediateWin32Viewer.hh,v 1.7 2002/10/16 10:44:14 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from @@ -45,7 +45,8 @@ class G4OpenGLImmediateWin32Viewer: public G4OpenGLWin32Viewer, public G4OpenGLImmediateViewer{ public: - G4OpenGLImmediateWin32Viewer (G4OpenGLImmediateSceneHandler& scene); + G4OpenGLImmediateWin32Viewer (G4OpenGLImmediateSceneHandler& scene, + const G4String& name = ""); void Initialise (); void DrawView (); }; diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh index 4609876736..dd1686c26d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh index c849dc7e0d..adc956cc5d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh index ed435a44a2..3197c21d23 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh index d765a9ffa5..f3fe49bbe4 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh index 899df71dfd..6dbe233845 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.hh,v 1.11 2002/02/24 01:47:49 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLSceneHandler.hh,v 1.12 2002/11/11 18:08:21 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 27th March 1996 @@ -71,6 +71,8 @@ public: void AddThis (const G4Polycone&); void AddThis (const G4Polyhedra&); void AddThis (const G4VSolid&); + void AddThis (const G4VTrajectory&); + void AddThis (const G4VHit&); protected: G4OpenGLSceneHandler (G4VGraphicsSystem& system, diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc index e69ee59eae..419a0c0a46 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLSceneHandler.icc,v 1.5 2001/08/09 20:16:06 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 20th January 1998 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh index e81729873a..9d816e9609 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredSceneHandler.hh,v 1.13 2001/08/14 18:03:14 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh index 27d8501b4a..98b4f931fa 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh index d7ad6b656e..f64e824792 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32.hh,v 1.5 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLStoredWin32.hh,v 1.6 2002/10/16 10:44:14 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // OpenGLStoredWin32 graphics system factory. @@ -37,8 +37,8 @@ class G4OpenGLStoredWin32: public G4VGraphicsSystem { public: G4OpenGLStoredWin32 (); - G4VSceneHandler* CreateSceneHandler (); - G4VViewer* CreateViewer (G4VSceneHandler&); + G4VSceneHandler* CreateSceneHandler (const G4String& name = ""); + G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); }; #endif diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh index b145f1e7aa..da1d908d5b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32Viewer.hh,v 1.4 2001/07/14 21:47:45 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLStoredWin32Viewer.hh,v 1.5 2002/10/16 10:44:14 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from @@ -43,7 +43,8 @@ class G4OpenGLStoredWin32Viewer: public G4OpenGLWin32Viewer, public G4OpenGLStoredViewer{ public: - G4OpenGLStoredWin32Viewer (G4OpenGLStoredSceneHandler& scene); + G4OpenGLStoredWin32Viewer (G4OpenGLStoredSceneHandler& scene, + const G4String& name = ""); void Initialise (); void DrawView (); }; diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredX.hh b/source/visualization/OpenGL/include/G4OpenGLStoredX.hh index a72386d4ca..00a9a18be9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh index 225fba7bed..0657583e56 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh index 4c9812db71..c87253bff5 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh index a1d15cef2d..4216753158 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh index 9b2b72e032..d94ddd1a2e 100644 --- a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh +++ b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLTransform3D.hh,v 1.4 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/include/G4OpenGLViewer.hh b/source/visualization/OpenGL/include/G4OpenGLViewer.hh index 697d564eee..fb768e137a 100644 --- a/source/visualization/OpenGL/include/G4OpenGLViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.hh,v 1.8 2002/02/24 01:47:51 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLViewer.hh,v 1.9 2002/10/16 10:44:14 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 27th March 1996 @@ -59,11 +59,6 @@ protected: transparency_enabled, //is alpha blending enabled? antialiasing_enabled, //is antialiasing enabled? haloing_enabled; //is haloing enabled for wireframe? - - G4OpenGLSceneHandler& fSceneHandler; // Graphics Scene for this view. - -private: - // G4OpenGLSceneHandler& fSceneHandler; // Graphics Scene for this view. }; class G4OpenGLImmediateSceneHandler; diff --git a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh index 6c58ff7288..b3f4b97bb2 100644 --- a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLWin32Viewer.hh,v 1.5 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLWin32Viewer.hh,v 1.6 2002/10/24 15:28:05 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific @@ -49,7 +49,7 @@ class G4OpenGLWin32Viewer: virtual public G4OpenGLViewer { public: G4OpenGLWin32Viewer (G4OpenGLSceneHandler& scene); - ~G4OpenGLWin32Viewer (); + virtual ~G4OpenGLWin32Viewer (); void FinishView (); protected: diff --git a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh index 816bc06337..b30b71f237 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.hh,v 1.13 2002/02/24 01:47:52 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLXViewer.hh,v 1.16 2002/11/11 18:12:02 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 // G4OpenGLXViewer : Class to provide XWindows specific // functionality for OpenGL in GEANT4 -#ifdef G4VIS_BUILD_OPENGL_DRIVER +#ifdef G4VIS_BUILD_OPENGLX_DRIVER #ifndef G4OPENGLXVIEWER_HH #define G4OPENGLXVIEWER_HH diff --git a/source/visualization/OpenGL/include/G4OpenGLXmBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmBox.hh index 13c84db080..5da7625d0e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh b/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh index c873173d06..0fd3ec5634 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh index fc5e224d62..e2c70d68e1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Framed box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh index 015683813c..d386cf4796 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh index 241eb04b4e..e6f04dfdc3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmResources.hh b/source/visualization/OpenGL/include/G4OpenGLXmResources.hh index 9db88c01c1..f3017b5c98 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // 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 6cd0805bc6..326bed3e8b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh b/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh index b05714ef04..870a51c87d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh b/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh index 1761420920..eba79ff487 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh index 5cf60b9e54..80a24c0aa0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Top level shell class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh index c5d609567e..6f3f579947 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh index 822f629ed4..750f6b5e8f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh index 9d07357254..0980033d9c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh index bcaccc18b2..d1944a147b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // //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 dbed915ea0..02ccb778aa 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmViewer.hh,v 1.6 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc index fb9ee10c8f..19a2486b81 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateSceneHandler.cc,v 1.7 2002/02/24 01:47:55 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc index 7aa7d9526f..31bc3eded8 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateViewer.cc,v 1.5 2002/02/24 01:47:56 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLImmediateViewer.cc,v 1.6 2002/10/16 10:44:15 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 @@ -36,8 +36,7 @@ G4OpenGLImmediateViewer::G4OpenGLImmediateViewer (G4OpenGLImmediateSceneHandler& scene): G4VViewer (scene, -1), -G4OpenGLViewer (scene), -fSceneHandler (scene) +G4OpenGLViewer (scene) {} #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc index 074b22a6cb..9e8b4cce9c 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32.cc,v 1.7 2002/02/24 01:47:58 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLImmediateWin32.cc,v 1.8 2002/10/16 10:44:15 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // OpenGLImmediateWin32 graphics system factory. @@ -42,16 +42,19 @@ G4OpenGLImmediateWin32::G4OpenGLImmediateWin32 (): G4VisFeaturesOfOpenGLIWin32 (), G4VGraphicsSystem::threeD) {} -G4VSceneHandler* G4OpenGLImmediateWin32::CreateSceneHandler () { - G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this); +G4VSceneHandler* G4OpenGLImmediateWin32::CreateSceneHandler +(const G4String& name) { + G4VSceneHandler* pScene = new G4OpenGLImmediateSceneHandler (*this, name); G4cout << G4OpenGLImmediateSceneHandler::GetSceneCount () << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } -G4VViewer* G4OpenGLImmediateWin32::CreateViewer (G4VSceneHandler& scene) { +G4VViewer* G4OpenGLImmediateWin32::CreateViewer +(G4VSceneHandler& scene, const G4String& name) { G4VViewer* pView = - new G4OpenGLImmediateWin32Viewer ((G4OpenGLImmediateSceneHandler&) scene); + new G4OpenGLImmediateWin32Viewer + ((G4OpenGLImmediateSceneHandler&) scene, name); if (pView) { if (pView -> GetViewId () < 0) { G4cerr << "G4OpenGLImmediateWin32::CreateViewer: error flagged by negative" diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc index 03d2c738ee..a39aa91f36 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.5 2002/02/24 01:48:00 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.6 2002/10/16 10:44:15 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -36,11 +36,13 @@ #include "G4ios.hh" -G4OpenGLImmediateWin32Viewer::G4OpenGLImmediateWin32Viewer (G4OpenGLImmediateSceneHandler& scene): +G4OpenGLImmediateWin32Viewer::G4OpenGLImmediateWin32Viewer +(G4OpenGLImmediateSceneHandler& scene, + const G4String& name): G4OpenGLViewer (scene), G4OpenGLWin32Viewer (scene), G4OpenGLImmediateViewer (scene), -G4VViewer (scene, scene.IncrementViewCount ()) { +G4VViewer (scene, scene.IncrementViewCount (), name) { if (fViewId < 0) return; // In case error in base class instantiation. } diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc index 6b63cd1f21..81b5d7a5d4 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateX.cc,v 1.8 2002/02/24 01:48:02 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc index 76ba4d645d..f3f56dcf08 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXViewer.cc,v 1.7 2002/02/24 01:48:04 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc index 4ce7729219..55844c5a3c 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXm.cc,v 1.8 2002/02/24 01:48:05 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc index 94eda1fa6d..09243aa7e4 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXmViewer.cc,v 1.7 2002/02/24 01:48:07 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc index 88213f7874..d37436d164 100644 --- a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.cc,v 1.15 2002/02/24 01:48:09 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLSceneHandler.cc,v 1.17 2002/12/11 15:57:58 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 27th March 1996 @@ -93,6 +93,9 @@ const GLubyte G4OpenGLSceneHandler::fStippleMaskHashed [128] = { //Method for handling G4Polyline objects (from tracking or wireframe). void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) { + G4int nPoints = line.size (); + if (nPoints <= 0) return; + const G4Colour& c = GetColour (line); glColor3d (c.GetRed (), c.GetGreen (), c.GetBlue ()); @@ -103,7 +106,6 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) glDisable (GL_LIGHTING); glBegin (GL_LINE_STRIP); - G4int nPoints = line.size (); for (G4int iPoint = 0; iPoint < nPoints; iPoint++) { G4double x, y, z; x = line[iPoint].x(); @@ -590,4 +592,12 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4NURBS& nurb) { gluDeleteNurbsRenderer (gl_nurb); } +void G4OpenGLSceneHandler::AddThis(const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); // For now. +} + +void G4OpenGLSceneHandler::AddThis(const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); // For now. +} + #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc index 19cffe902e..50cf9bafb8 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredSceneHandler.cc,v 1.14 2002/02/24 01:48:11 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLStoredSceneHandler.cc,v 1.15 2002/11/27 12:44:09 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 @@ -122,7 +122,7 @@ void G4OpenGLStoredSceneHandler::EndModeling () { if (!fTopPODL) { G4cout << "ERROR: G4OpenGLStoredSceneHandler::EndModeling: Failure to allocate" - " display List for fTopPODL - suggest trying OpenGL Immediated mode." + " display List for fTopPODL - try OpenGL Immediated mode." << G4endl; } else { diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc index 2f28349479..00e9c0cf42 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredViewer.cc,v 1.8 2002/02/24 01:48:12 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLStoredViewer.cc,v 1.9 2002/11/27 12:44:10 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 @@ -68,8 +68,6 @@ void G4OpenGLStoredViewer::KernelVisitDecision () { G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) { - G4bool need = false; - if ( (lastVP.GetDrawingStyle () != fVP.GetDrawingStyle ()) || (lastVP.GetRepStyle () != fVP.GetRepStyle ()) || @@ -78,26 +76,26 @@ G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) { (lastVP.IsDensityCulling () != fVP.IsDensityCulling ()) || (lastVP.IsCullingCovered () != fVP.IsCullingCovered ()) || (lastVP.IsSection () != fVP.IsSection ()) || - // No need if section plane changes. + // No need to visit kernel if section plane changes. (lastVP.IsCutaway () != fVP.IsCutaway ()) || (lastVP.GetCutawayPlanes ().size () != fVP.GetCutawayPlanes ().size ()) || - // No need if cutaway planes change. + // No need to visit kernel if cutaway planes change. (lastVP.IsExplode () != fVP.IsExplode ()) || (lastVP.GetNoOfSides () != fVP.GetNoOfSides ()) ) { - need = true; + return true; } - if (!need && lastVP.IsDensityCulling () && + if (lastVP.IsDensityCulling () && (lastVP.GetVisibleDensity () != fVP.GetVisibleDensity ())) - need = true; + return true; - if (!need && lastVP.IsExplode () && + if (lastVP.IsExplode () && (lastVP.GetExplodeFactor () != fVP.GetExplodeFactor ())) - need = true; + return true; - return need; + return false; } void G4OpenGLStoredViewer::DrawDisplayLists () { diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc index e9563d0ce2..c2ad598275 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32.cc,v 1.7 2002/02/24 01:48:14 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLStoredWin32.cc,v 1.8 2002/10/16 10:44:15 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // OpenGLStoredWin32 graphics system factory. @@ -45,16 +45,18 @@ G4OpenGLStoredWin32::G4OpenGLStoredWin32 (): G4VisFeaturesOfOpenGLSWin32 (), G4VGraphicsSystem::threeD) {} -G4VSceneHandler* G4OpenGLStoredWin32::CreateSceneHandler () { - G4VSceneHandler* pScene = new G4OpenGLStoredSceneHandler (*this); +G4VSceneHandler* G4OpenGLStoredWin32::CreateSceneHandler +(const G4String& name) { + G4VSceneHandler* pScene = new G4OpenGLStoredSceneHandler (*this, name); G4cout << G4OpenGLStoredSceneHandler::GetSceneCount () << ' ' << fName << " scene handlers extanct." << G4endl; return pScene; } -G4VViewer* G4OpenGLStoredWin32::CreateViewer (G4VSceneHandler& scene) { +G4VViewer* G4OpenGLStoredWin32::CreateViewer +(G4VSceneHandler& scene, const G4String& name) { G4VViewer* pView = - new G4OpenGLStoredWin32Viewer ((G4OpenGLStoredSceneHandler&) scene); + new G4OpenGLStoredWin32Viewer ((G4OpenGLStoredSceneHandler&) scene, name); if (pView) { if (pView -> GetViewId () < 0) { delete pView; diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc index 0048078cfe..c0457c6d74 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.5 2002/02/24 01:48:16 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.6 2002/10/16 10:44:16 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -36,16 +36,18 @@ #include "G4ios.hh" -G4OpenGLStoredWin32Viewer::G4OpenGLStoredWin32Viewer (G4OpenGLStoredSceneHandler& scene): +G4OpenGLStoredWin32Viewer::G4OpenGLStoredWin32Viewer +(G4OpenGLStoredSceneHandler& scene, + const G4String& name): G4OpenGLViewer (scene), G4OpenGLWin32Viewer (scene), G4OpenGLStoredViewer (scene), -G4VViewer (scene, scene.IncrementViewCount ()) { +G4VViewer (scene, scene.IncrementViewCount (), name) { if (fViewId < 0) return; // In case error in base class instantiation. } -void G4OpenGLStoredWin32Viewer::Initialse () { +void G4OpenGLStoredWin32Viewer::Initialise () { //Check that G4OpenGLWin32Viewer got a double buffered colour visual diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc index f41307eb06..88204707a9 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredX.cc,v 1.8 2002/02/24 01:48:17 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc index bd9ecedca3..045b2450ab 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXViewer.cc,v 1.8 2002/02/24 01:48:19 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc index 7ee776e90b..89cb6a59f9 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXm.cc,v 1.7 2002/02/24 01:48:20 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc index ed31be9a08..2af3dc3bb4 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXmViewer.cc,v 1.7 2002/02/24 01:48:22 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc index 75e562112e..ece4c13f6d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc +++ b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLTransform3D.cc,v 1.4 2001/07/11 10:08:56 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc index 8ca67a3731..51ef866489 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.cc,v 1.13 2002/02/24 01:48:24 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLViewer.cc,v 1.14 2002/10/16 10:44:16 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 27th March 1996 @@ -51,8 +51,7 @@ G4VViewer (scene, -1), white_background (false), transparency_enabled (false), antialiasing_enabled (false), -haloing_enabled (false), -fSceneHandler (scene) +haloing_enabled (false) { // Make changes to view parameters for OpenGL... fVP.SetAutoRefresh(true); diff --git a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc index 8768724d05..2a336845b5 100644 --- a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLWin32Viewer.cc,v 1.4 2002/02/24 01:48:26 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLWin32Viewer.cc,v 1.5 2002/10/16 10:44:16 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific @@ -58,7 +58,10 @@ void G4OpenGLWin32Viewer::GetWin32Connection () { void G4OpenGLWin32Viewer::CreateGLWin32Context () { // create a GL context // set attributes of window now the GL context has been created - + G4cout << + "ERROR: G4OpenGLWin32Viewer::CreateGLWin32Context:" + "\n **** WIN32 VIEWER NOT YET IMPLEMENTED ****" + << G4endl; } void G4OpenGLWin32Viewer::CreateMainWindow () { diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc index 6ddaf4815b..02652c8a39 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.cc,v 1.14 2002/02/24 01:48:27 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLXViewer.cc,v 1.18 2002/11/11 18:12:03 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 7th February 1997 // G4OpenGLXViewer : Class to provide XWindows specific // functionality for OpenGL in GEANT4 -#ifdef G4VIS_BUILD_OPENGL_DRIVER +#ifdef G4VIS_BUILD_OPENGLX_DRIVER #include "G4OpenGLXViewer.hh" @@ -97,9 +97,8 @@ static const char* gouraudtriangleEPS[] = XVisualInfo* G4OpenGLXViewer::vi_single_buffer = 0; XVisualInfo* G4OpenGLXViewer::vi_double_buffer = 0; -extern "C" -{ - static Bool WaitForNotify (Display*, XEvent* e, char* arg) { +extern "C" { + Bool G4OpenGLXViewerWaitForNotify (Display*, XEvent* e, char* arg) { return (e->type == MapNotify) && (e->xmap.window == (Window) arg); } } @@ -268,7 +267,7 @@ void G4OpenGLXViewer::CreateMainWindow () { XMapWindow (dpy, win); // Wait for window to appear (wait for an "expose" event). - XIfEvent (dpy, &event, WaitForNotify, (char*) win); + XIfEvent (dpy, &event, G4OpenGLXViewerWaitForNotify, (char*) win); // connect the context to a window glXMakeCurrent (dpy, win, cx); @@ -736,15 +735,13 @@ typedef struct _DepthIndex { GLfloat depth; } DepthIndex; -extern "C" -{ - static int - compare(const void *a, const void *b) +extern "C" { + int G4OpenGLXViewercompare(const void *a, const void *b) { const DepthIndex *p1 = (DepthIndex *) a; const DepthIndex *p2 = (DepthIndex *) b; GLfloat diff = p2->depth - p1->depth; - + if (diff > 0.0) { return 1; } else if (diff < 0.0) { @@ -843,7 +840,7 @@ void G4OpenGLXViewer::spewSortedFeedback(FILE * file, GLint size, GLfloat * buff assert(item == nprimitives); /* Sort the primitives back to front. */ - qsort(prims, nprimitives, sizeof(DepthIndex), compare); + qsort(prims, nprimitives, sizeof(DepthIndex), G4OpenGLXViewercompare); /* Understand that sorting by a primitives average depth doesn't allow us to disambiguate some cases like self diff --git a/source/visualization/OpenGL/src/G4OpenGLXmBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmBox.cc index c6bdb5d78d..4ac27002ee 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc index 971a768c7b..6da65eab45 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.7 2001/11/29 12:14:02 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.9 2002/12/11 15:57:59 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 16th April 1997 @@ -190,8 +190,7 @@ void G4OpenGLXmViewer::Add_radio_box (char* label_string, char** button_names, G4OpenGLXmViewer* pView) { - - XmString button_str = XmStringCreateLocalized(""); // ...to + XmString button_str = XmStringCreateLocalized((char*) ""); // ...to // initialise to something to avoid pedantic warning. Arg** args; args = new Arg* [num_buttons]; @@ -369,7 +368,7 @@ void G4OpenGLXmViewer::Add_slider_box (char* label_string, XtCallbackRec** slider_box_callbacks, Widget* parent_widget) { - XmString slider_name_str = XmStringCreateLocalized(""); // ...to + XmString slider_name_str = XmStringCreateLocalized((char*) ""); // ...to // initialise to something to avoid pedantic warning. Arg** slider_args; slider_args = new Arg*[num_sliders]; diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc b/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc index c184a8a2fe..c4e211f69c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc index 1da0f2ec89..2a4e2354ba 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Framed box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc index 2f766d40af..971df713ef 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmMainMenubarCallbacks.cc,v 1.9 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc index e88c3cbc4c..e69cf7f355 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPanningCallbacks.cc,v 1.6 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc index 891d850305..0a482a5a33 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc index de01766ba7..67f6fa6e3b 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc index ce09bdfe66..7f5c9f088d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRotationCallbacks.cc,v 1.11 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc b/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc index 2ecbc71ab0..dede1abd34 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc index 575f4505a1..8a2a131602 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSliderBar.cc,v 1.5 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc index d770d56e0a..ba1847778c 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmStyleCallbacks.cc,v 1.6 2001/11/12 18:22:09 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc index 32033496a8..ec86ea560e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc index 3fb755b8d0..47b4a89836 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Top level shell class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc index 7a6af0a19e..11af012e67 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc index 046e78102d..e9156b71c1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc index 0cd3b35f81..d4f5f54ed2 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc index b026e91340..5f4b646b0c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // //Base class for all Motif shell widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc index c9c9df5223..3abd8c413d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmViewer.cc,v 1.11 2002/02/24 01:48:29 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc index c40198f8c4..194520b570 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 16th June 1997 diff --git a/source/visualization/OpenInventor/History b/source/visualization/OpenInventor/History index 3c2f0337fc..ffdf68996a 100644 --- a/source/visualization/OpenInventor/History +++ b/source/visualization/OpenInventor/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2001/08/14 18:38:30 johna Exp $ +$Id: History,v 1.2 2002/11/27 12:46:07 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,5 +20,8 @@ committal in the CVS repository ! History file for visualization/OpenInventor ------------------------------------------- +27th November 2002 John Allison (vis-V04-01-08) +- Improved algorithm of CompareForKernelVisit. + 14th August 2001 John Allison (vis-V03-02-11) - Improved KernelVisitDecision - but see note therein. diff --git a/source/visualization/OpenInventor/include/G4OpenInventor.hh b/source/visualization/OpenInventor/include/G4OpenInventor.hh index f6e742fb33..16efc3aed0 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventor.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventor.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventor.hh,v 1.6 2001/07/11 10:08:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 db0b381fcf..cd3ccb9883 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorSceneHandler.hh,v 1.12 2001/08/24 21:48:32 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenInventorSceneHandler.hh,v 1.13 2002/12/11 16:08:20 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // J Kallenbach 27th Aug 1996 @@ -80,6 +80,8 @@ public: void AddThis (const G4Polycone&); void AddThis (const G4Polyhedra&); void AddThis (const G4VSolid&); + void AddThis (const G4VTrajectory&); + void AddThis (const G4VHit&); void BeginPrimitives (const G4Transform3D& objectTransformation); void EndPrimitives (); diff --git a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc index feee11080e..66904c8d2a 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc +++ b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorSceneHandler.icc,v 1.4 2001/07/11 10:08:59 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // J Kallenbach 27th Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh index 5485523034..dd706ef7a8 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorTransform3D.hh,v 1.4 2001/07/11 10:09:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorViewer.hh index 7818bc82a0..73687f2bb4 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorViewer.hh,v 1.10 2001/11/14 14:56:11 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh index ce2344293f..ebe3c8e7f3 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin32.hh,v 1.5 2001/07/11 10:09:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorX.hh b/source/visualization/OpenInventor/include/G4OpenInventorX.hh index e948a2605b..d1eaea5f20 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorX.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorX.hh,v 1.5 2001/07/11 10:09:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventor.cc b/source/visualization/OpenInventor/src/G4OpenInventor.cc index 13583d994b..4c98c4164f 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventor.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventor.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventor.cc,v 1.8 2001/07/11 10:09:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifdef G4VIS_BUILD_OI_DRIVER diff --git a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc index 6cd23a85bb..a389aaa4ac 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorSceneHandler.cc,v 1.12 2001/07/11 10:09:00 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenInventorSceneHandler.cc,v 1.13 2002/12/11 16:08:22 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Jeff Kallenbach 01 Aug 1996 @@ -789,4 +789,13 @@ G4double G4OpenInventorSceneHandler::GetMarkerSize ( const G4VMarker& mark ) return size ; } // G4OpenInventorSceneHandler::GetMarkerSize () + +void G4OpenInventorSceneHandler::AddThis(const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); // For now. +} + +void G4OpenInventorSceneHandler::AddThis(const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); // For now. +} + #endif diff --git a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc index 7fb46998b1..a28a4335ef 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorTransform3D.cc,v 1.4 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc index 3235bae22b..c968ac9976 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorViewer.cc,v 1.8 2001/11/14 14:56:12 barrand Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4OpenInventorViewer.cc,v 1.9 2002/11/27 12:46:07 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /* * jck 05 Feb 1997 - Initial Implementation @@ -105,7 +105,7 @@ void G4OpenInventorViewer::KernelVisitDecision () { G4bool G4OpenInventorViewer::CompareForKernelVisit (G4ViewParameters& lastVP) { - G4bool need = false; + if ( (fLastVP.GetDrawingStyle () != fVP.GetDrawingStyle ()) || (fLastVP.GetRepStyle () != fVP.GetRepStyle ()) || @@ -114,25 +114,25 @@ G4bool G4OpenInventorViewer::CompareForKernelVisit (fLastVP.IsDensityCulling () != fVP.IsDensityCulling ()) || (fLastVP.IsCullingCovered () != fVP.IsCullingCovered ()) || (fLastVP.IsSection () != fVP.IsSection ()) || - + // No need to visit kernel if section plane changes. (fLastVP.IsCutaway () != fVP.IsCutaway ()) || (fLastVP.GetCutawayPlanes ().size () != fVP.GetCutawayPlanes ().size ()) || - + // No need to visit kernel if cutaway planes change. (fLastVP.IsExplode () != fVP.IsExplode ()) || (fLastVP.GetNoOfSides () != fVP.GetNoOfSides ()) ) { - need = true;; + return true;; } - if (!need && fLastVP.IsDensityCulling () && + if (fLastVP.IsDensityCulling () && (fLastVP.GetVisibleDensity () != fVP.GetVisibleDensity ())) - need = true; + return true; - if (!need && fLastVP.IsExplode () && + if (fLastVP.IsExplode () && (fLastVP.GetExplodeFactor () != fVP.GetExplodeFactor ())) - need = true; + return true; - return need; + return false; } G4OpenInventorViewer::G4OpenInventorViewer diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWin32.cc b/source/visualization/OpenInventor/src/G4OpenInventorWin32.cc index c1d8fa9696..b5c7d6ae20 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWin32.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWin32.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin32.cc,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/src/G4OpenInventorX.cc b/source/visualization/OpenInventor/src/G4OpenInventorX.cc index bfbbd98dcc..2f8112d2ca 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorX.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorX.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorX.cc,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/README b/source/visualization/README index 34f294c88f..aeb5f1163b 100644 --- a/source/visualization/README +++ b/source/visualization/README @@ -263,7 +263,7 @@ The Visualization Manager has been constructed with verbosity == 1. $ test19 tcsh 1 RunManager is constructing.... ********************************************** - Geant4 version $Name: geant4-04-01 $ + Geant4 version $Name: geant4-05-00 $ (29-Jun-2001) Copyright : Geant4 Collaboration ********************************************** diff --git a/source/visualization/README.built_in_commands b/source/visualization/README.built_in_commands index 92c938c990..6599a87bc3 100644 --- a/source/visualization/README.built_in_commands +++ b/source/visualization/README.built_in_commands @@ -31,17 +31,22 @@ Step 1. Create a scene handler and a viewer. Step 2. Create an empty scene. -Step 3. Add raw 3D data to the created scene. +Step 3. Add raw 3D data (e.g., geometrical objects, axes, options to + draw trajectories, etc.) to the created scene. Step 4. Attach the current scene handler to the current scene. Step 5. Set camera parameters, drawing style (wireframe/surface), etc. -Step 6. Make the viewer execute visualization. +Step 6. Refresh the viewer. -Step 7. Declare the end of visualization for flushing. +Step 7. Draw transients (trajectories, hits, etc) -Note that the above list does not mean that you have to execute 7 +Step 8. Flush the viewer if necessary, i.e., those viewers which need + to render a view after all data is assembled and + pseudo-viewers, e.g., file writers that need to close files. + +Note that the above list does not mean that you have to execute 8 commands for visualization. You can use "compound commands" which can execute several visualization commands at one time. @@ -105,11 +110,20 @@ NI [] [] Adds an annotated scale line to the current scene. See G4Scale.hh for further description. -/vis/scene/add/text +/vis/scene/add/text x y z unit font_size x_offset y_offset text + Adds text at (x*unit, y*unit, z*unit) with font_size x_offset y_offset + Font size and offsets in pixels. -/vis/scene/add/trajectories [] - default: (argument not impl'd yet.) - Causes trajectories, if any, to be drawn at the end of processiing an event. +/vis/scene/add/trajectories [drawing-mode] [] + default: 0 (this argument not impl'd yet.) + Causes trajectories, if any, to be drawn at the end of processiing + an event. The drawing mode is an integer that is passed to the + DrawTrajectory method. The default implementation in G4VTrajectory, + if drawing-mode > 0, draws the trajectory as a polyline and, if + drawing-mode != 0, draws markers of screen size abs(drawing-mode)/1000 + in pixels at each step and auxiliary point, if any. So drawing-mode + == 5000 is a good choice. (Enable storing with + "/tracking/storeTrajectory 1".) See also "/vis/scene/endOfEventAction". NI /vis/scene/add/transientObjects ???????????? (JA 9/Aug/01) @@ -301,6 +315,9 @@ NI /vis/viewer/set/cutawayPlane ... /vis/viewer/set/edge [true|false] default: true +/vis/viewer/set/globalMarkerScale [] + default: 1 + /vis/viewer/set/hiddenEdge [true|false] default: true diff --git a/source/visualization/RayTracer/History b/source/visualization/RayTracer/History index e434dff25f..6d843ae091 100644 --- a/source/visualization/RayTracer/History +++ b/source/visualization/RayTracer/History @@ -1,4 +1,4 @@ -$Id: History,v 1.12 2002/04/22 14:14:38 johna Exp $ +$Id: History,v 1.15 2002/12/11 16:01:24 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,16 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +11th December 2002 John Allison (vis-V04-01-10) +- Fix for SUN-CC warnings: AddThis hides the virtual function... +- Fix memory leak in RayTracer. + +11th November 2002 Hajime Yoshida and Minamimoto (raytracer-V04-00-01) +- Corrected G4RayTracer.cc devide-by-zero. + +16th October 2002 John Allison (raytracer-V04-00-00) +- Tag for changes in G4VTrajectory, etc. + 22nd April 2002 John Allison - Workaround for pseudo-parallel/orthogonal projection in Ray Tracer. It is perspective projection with *very* small field angle (perMillion). diff --git a/source/visualization/RayTracer/include/G4RTJpeg.hh b/source/visualization/RayTracer/include/G4RTJpeg.hh index e30a3a4ea3..5e43ebc058 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoder.hh b/source/visualization/RayTracer/include/G4RTJpegCoder.hh index f19970ada4..f01257455e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh b/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh index f2de62caaf..2e06032573 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RTJpegMaker.hh b/source/visualization/RayTracer/include/G4RTJpegMaker.hh index 95bfd16ebb..0f0b1f7c1c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTMessenger.hh b/source/visualization/RayTracer/include/G4RTMessenger.hh index 4529568c55..d95721b97a 100644 --- a/source/visualization/RayTracer/include/G4RTMessenger.hh +++ b/source/visualization/RayTracer/include/G4RTMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTMessenger.hh,v 1.4 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTOutBitStream.hh b/source/visualization/RayTracer/include/G4RTOutBitStream.hh index 59059bfe7d..459dc64c65 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTSteppingAction.hh b/source/visualization/RayTracer/include/G4RTSteppingAction.hh index c636b05265..6096af3544 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTTrackingAction.hh b/source/visualization/RayTracer/include/G4RTTrackingAction.hh index 96ecc693b8..533bc0b740 100644 --- a/source/visualization/RayTracer/include/G4RTTrackingAction.hh +++ b/source/visualization/RayTracer/include/G4RTTrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTTrackingAction.hh,v 1.4 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RayShooter.hh b/source/visualization/RayTracer/include/G4RayShooter.hh index c61ba1c3bd..bb800d0e67 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RayTracer.hh b/source/visualization/RayTracer/include/G4RayTracer.hh index c009459d15..a938b11ba9 100644 --- a/source/visualization/RayTracer/include/G4RayTracer.hh +++ b/source/visualization/RayTracer/include/G4RayTracer.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracer.hh,v 1.8 2001/07/27 22:33:03 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerFeatures.hh b/source/visualization/RayTracer/include/G4RayTracerFeatures.hh index d5b019fc59..a3471c73b6 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh index 161a412ba0..a1598dd655 100644 --- a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh +++ b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracerSceneHandler.hh,v 1.5 2001/08/24 21:19:43 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RayTracerSceneHandler.hh,v 1.6 2002/12/11 15:59:34 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // John Allison 17th March 2000 @@ -59,6 +59,8 @@ public: void AddThis(const G4Polycone&){} void AddThis(const G4Polyhedra&){} void AddThis(const G4VSolid&){} + void AddThis(const G4VTrajectory&){} + void AddThis(const G4VHit&){} static G4int GetSceneCount(); diff --git a/source/visualization/RayTracer/include/G4RayTracerViewer.hh b/source/visualization/RayTracer/include/G4RayTracerViewer.hh index 0a4af88fde..3e39150a07 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // John Allison 17th March 2000 diff --git a/source/visualization/RayTracer/include/G4RayTrajectory.hh b/source/visualization/RayTracer/include/G4RayTrajectory.hh index 03025d2e6d..872eba912b 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectory.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTrajectory.hh,v 1.8 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RayTrajectory.hh,v 1.9 2002/10/16 11:42:48 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -62,10 +62,10 @@ class G4RayTrajectory : public G4VTrajectory inline void* operator new(size_t); inline void operator delete(void*); - inline int operator == (const G4RayTrajectory& right){return (this==&right);} + // inline int operator == (const G4RayTrajectory& right){return (this==&right);} virtual void AppendStep(const G4Step*); - virtual void ShowTrajectory() const; + virtual void ShowTrajectory(G4std::ostream&) const; virtual void DrawTrajectory(G4int i_mode=0) const {;} virtual int GetPointEntries() const {return positionRecord->size();} virtual G4VTrajectoryPoint* GetPoint(G4int i) const @@ -74,6 +74,14 @@ class G4RayTrajectory : public G4VTrajectory { return (*positionRecord)[i]; } virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); +// Get/Set functions to satisfy pure virtual functions of base class. + inline G4int GetTrackID() const { return 0; } + inline G4int GetParentID() const { return 0; } + inline G4String GetParticleName() const { return ""; } + inline G4double GetCharge() const { return 0.; } + inline G4int GetPDGEncoding() const { return 0; } + inline G4ThreeVector GetInitialMomentum() const { return G4ThreeVector(); } + private: G4std::vector* positionRecord; diff --git a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh index 709d82a2d0..4eef7ace33 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTrajectoryPoint.hh,v 1.4 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RayTrajectoryPoint.hh,v 1.5 2002/10/16 11:42:48 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -54,8 +54,8 @@ class G4RayTrajectoryPoint :public G4VTrajectoryPoint inline void *operator new(size_t); inline void operator delete(void *aTrajectoryPoint); - inline int operator==(const G4RayTrajectoryPoint& right) const - { return (this==&right); }; + // inline int operator==(const G4RayTrajectoryPoint& right) const + // { return (this==&right); }; private: const G4VisAttributes* preStepAtt; @@ -72,7 +72,9 @@ class G4RayTrajectoryPoint :public G4VTrajectoryPoint inline G4ThreeVector GetSurfaceNormal() const { return surfaceNormal; } inline void SetStepLength(G4double val) { stepLength = val; } inline G4double GetStepLength() const { return stepLength; } - + + inline const G4ThreeVector GetPosition() const { return G4ThreeVector();} + // Dummy function (not used) to satisfy base class pure virtual function. }; extern G4Allocator G4RayTrajectoryPointAllocator; diff --git a/source/visualization/RayTracer/include/G4VFigureFileMaker.hh b/source/visualization/RayTracer/include/G4VFigureFileMaker.hh index 7bd41c9483..02b4cf311f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/RayTracer/src/G4RTJpegCoder.cc b/source/visualization/RayTracer/src/G4RTJpegCoder.cc index 2986987a86..db7b63a956 100644 --- a/source/visualization/RayTracer/src/G4RTJpegCoder.cc +++ b/source/visualization/RayTracer/src/G4RTJpegCoder.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoder.cc,v 1.4 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTJpegMaker.cc b/source/visualization/RayTracer/src/G4RTJpegMaker.cc index d919ddcb51..2b655fcd12 100644 --- a/source/visualization/RayTracer/src/G4RTJpegMaker.cc +++ b/source/visualization/RayTracer/src/G4RTJpegMaker.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegMaker.cc,v 1.7 2001/11/22 17:29:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTMessenger.cc b/source/visualization/RayTracer/src/G4RTMessenger.cc index 48fd558496..7ef027446e 100644 --- a/source/visualization/RayTracer/src/G4RTMessenger.cc +++ b/source/visualization/RayTracer/src/G4RTMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RTMessenger.cc,v 1.5 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RTMessenger.cc,v 1.6 2002/12/05 01:37:36 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // @@ -54,7 +54,7 @@ G4RTMessenger::G4RTMessenger(G4RayTracer* p1,G4RTSteppingAction* p2) fileCmd->SetGuidance("Define the name of output JPEG file."); fileCmd->SetParameterName("fileName",true); fileCmd->SetDefaultValue("g4RayTracer.jpeg"); - fileCmd->AvailableForStates(Idle); + fileCmd->AvailableForStates(G4State_Idle); columnCmd = new G4UIcmdWithAnInteger("/vis/rayTracer/column",this); columnCmd->SetGuidance("Define the number of horizontal pixels."); diff --git a/source/visualization/RayTracer/src/G4RTOutBitStream.cc b/source/visualization/RayTracer/src/G4RTOutBitStream.cc index 419cc59d7d..64afdc0dd8 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTSteppingAction.cc b/source/visualization/RayTracer/src/G4RTSteppingAction.cc index 02fbf3c1cd..68808abb20 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTTrackingAction.cc b/source/visualization/RayTracer/src/G4RTTrackingAction.cc index 4ee9de1b60..b321ecaa1a 100644 --- a/source/visualization/RayTracer/src/G4RTTrackingAction.cc +++ b/source/visualization/RayTracer/src/G4RTTrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTTrackingAction.cc,v 1.3 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayShooter.cc b/source/visualization/RayTracer/src/G4RayShooter.cc index fe03032829..29e70ffbce 100644 --- a/source/visualization/RayTracer/src/G4RayShooter.cc +++ b/source/visualization/RayTracer/src/G4RayShooter.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayShooter.cc,v 1.2 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4RayShooter.hh" diff --git a/source/visualization/RayTracer/src/G4RayTracer.cc b/source/visualization/RayTracer/src/G4RayTracer.cc index 8461ec9f75..f4e96bf0a3 100644 --- a/source/visualization/RayTracer/src/G4RayTracer.cc +++ b/source/visualization/RayTracer/src/G4RayTracer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracer.cc,v 1.8 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RayTracer.cc,v 1.11 2002/12/11 16:00:00 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // @@ -84,13 +84,14 @@ G4RayTracer::~G4RayTracer() delete theRayTracerTrackingAction; delete theRayTracerSteppingAction; delete theMessenger; + delete theFigMaker; } void G4RayTracer::Trace(G4String fileName) { G4StateManager* theStateMan = G4StateManager::GetStateManager(); G4ApplicationState currentState = theStateMan->GetCurrentState(); - if(currentState!=Idle) + if(currentState!=G4State_Idle) { G4cerr << "Illegal application state - Trace() ignored." << G4endl; return; @@ -348,7 +349,10 @@ G4Colour G4RayTracer::Attenuate(G4RayTrajectoryPoint* point, G4Colour sourceCol) G4double stepAlpha = objCol.GetAlpha(); G4double stepLength = point->GetStepLength(); - G4double attenuationFuctor = -stepAlpha/(1.0-stepAlpha)*stepLength/attenuationLength; + G4double attenuationFuctor; + if(stepAlpha > 0.9999999){ stepAlpha = 0.9999999; } // patch to the next line + attenuationFuctor = -stepAlpha/(1.0-stepAlpha)*stepLength/attenuationLength; + G4double KtRed = exp((1.0-stepRed)*attenuationFuctor); G4double KtGreen = exp((1.0-stepGreen)*attenuationFuctor); G4double KtBlue = exp((1.0-stepBlue)*attenuationFuctor); diff --git a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc index 68e5ba8dbf..e76a1c058c 100644 --- a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc +++ b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerSceneHandler.cc,v 1.2 2001/07/11 10:09:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4RayTracerSceneHandler.hh" diff --git a/source/visualization/RayTracer/src/G4RayTracerViewer.cc b/source/visualization/RayTracer/src/G4RayTracerViewer.cc index 75a554791c..74ee82d64a 100644 --- a/source/visualization/RayTracer/src/G4RayTracerViewer.cc +++ b/source/visualization/RayTracer/src/G4RayTracerViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerViewer.cc,v 1.10 2002/04/22 14:14:38 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4RayTracerViewer.hh" diff --git a/source/visualization/RayTracer/src/G4RayTrajectory.cc b/source/visualization/RayTracer/src/G4RayTrajectory.cc index 2466c06267..a2ec1d992c 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectory.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTrajectory.cc,v 1.8 2001/07/11 10:09:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4RayTrajectory.cc,v 1.9 2002/10/16 11:42:48 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // @@ -44,7 +44,6 @@ G4Allocator G4RayTrajectoryAllocator; - G4RayTrajectory :: G4RayTrajectory() { positionRecord = new G4std::vector; @@ -112,7 +111,7 @@ void G4RayTrajectory::AppendStep(const G4Step* aStep) positionRecord->push_back(trajectoryPoint); } -void G4RayTrajectory::ShowTrajectory() const +void G4RayTrajectory::ShowTrajectory(G4std::ostream& os) const { } void G4RayTrajectory::MergeTrajectory(G4VTrajectory* secondTrajectory) diff --git a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc index 2ac0960710..30cae13a97 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectoryPoint.cc,v 1.3 2001/07/11 10:09:05 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // diff --git a/source/visualization/Tree/History b/source/visualization/Tree/History index 3132c5030a..fe5ebf8967 100644 --- a/source/visualization/Tree/History +++ b/source/visualization/Tree/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2001/08/24 20:41:25 johna Exp $ +$Id: History,v 1.9 2002/12/11 16:09:16 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,9 @@ committal in the CVS repository ! History file for visualization/Tree sub-category ------------------------------------------------ +11th December 2002 John Allison (vis-V04-01-10) +- Fixed default view parameters (global culling false). + 24th August 2001 John Allison (vis-V03-02-13) - Replaced Dump by RequestPrimitives. No change of functionality. diff --git a/source/visualization/Tree/include/G4ASCIITree.hh b/source/visualization/Tree/include/G4ASCIITree.hh index 74ca114590..29bc33eaa4 100644 --- a/source/visualization/Tree/include/G4ASCIITree.hh +++ b/source/visualization/Tree/include/G4ASCIITree.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITree.hh,v 1.5 2001/07/11 10:09:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh index 84f1dadd6b..29f242dd0d 100644 --- a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh +++ b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeMessenger.hh,v 1.4 2001/07/11 10:09:06 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh index 83f55c0e96..b7273240fd 100644 --- a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeSceneHandler.hh,v 1.10 2001/08/24 20:41:26 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeViewer.hh b/source/visualization/Tree/include/G4ASCIITreeViewer.hh index fd61bb5791..5beec8061d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTree.hh b/source/visualization/Tree/include/G4VTree.hh index 7ff0eb1d95..28ff005f3e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.hh b/source/visualization/Tree/include/G4VTreeSceneHandler.hh index 6f7dafac6c..53b9c9ba0c 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTreeSceneHandler.hh,v 1.7 2001/08/24 21:42:13 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VTreeSceneHandler.hh,v 1.8 2002/12/11 16:08:49 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 @@ -81,8 +81,6 @@ protected: G4VPhysicalVolume* fpCurrentPV; // Current physical volume. G4LogicalVolume* fpCurrentLV; // Current logical volume. const G4Transform3D* fpCurrentObjectTransformation; - const G4ModelingParameters* fpOriginalMP; // Keeps pointer to original. - G4ModelingParameters* fpNonCullingMP; // For temporary non-culling. }; #include "G4VTreeSceneHandler.icc" diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.icc b/source/visualization/Tree/include/G4VTreeSceneHandler.icc index 291334f39e..b4b9f70200 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.icc +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4VTreeSceneHandler.icc,v 1.4 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 18th May 2000 diff --git a/source/visualization/Tree/include/G4VTreeViewer.hh b/source/visualization/Tree/include/G4VTreeViewer.hh index b7f8a9bece..32b96eaef3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITree.cc b/source/visualization/Tree/src/G4ASCIITree.cc index 0e5b3cab1f..cca19f07f7 100644 --- a/source/visualization/Tree/src/G4ASCIITree.cc +++ b/source/visualization/Tree/src/G4ASCIITree.cc @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITree.cc,v 1.7 2001/08/05 19:02:12 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc index 4346a55d6f..53b54c2a1b 100644 --- a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc +++ b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeMessenger.cc,v 1.5 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc index 03f6fde08e..6240437560 100644 --- a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeSceneHandler.cc,v 1.11 2001/08/24 20:41:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeViewer.cc b/source/visualization/Tree/src/G4ASCIITreeViewer.cc index 37479fd616..bd4b88d545 100644 --- a/source/visualization/Tree/src/G4ASCIITreeViewer.cc +++ b/source/visualization/Tree/src/G4ASCIITreeViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeViewer.cc,v 1.4 2001/07/11 10:09:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4ASCIITreeViewer.cc,v 1.5 2002/12/11 16:08:50 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4ASCIITreeViewer.hh" @@ -31,6 +31,10 @@ G4ASCIITreeViewer::G4ASCIITreeViewer (G4VSceneHandler& sceneHandler, const G4String& name): - G4VTreeViewer(sceneHandler, name) {} + G4VTreeViewer(sceneHandler, name) { + // Make changes to view parameters for ASCIITree... + fVP.SetCulling(false); + fDefaultVP.SetCulling(false); +} G4ASCIITreeViewer::~G4ASCIITreeViewer() {} diff --git a/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc b/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc index e5a2ecc5b9..13c2357c8e 100644 --- a/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc @@ -79,7 +79,6 @@ void G4GAGTreeSceneHandler::InitializePVList(void) //----- void G4GAGTreeSceneHandler::BeginModeling () { - // To re-use "culling off" code. G4VTreeSceneHandler::BeginModeling (); // Initialize the stack the the tree generation @@ -127,7 +126,6 @@ void G4GAGTreeSceneHandler::EndModeling () // Clear the stack for the tree generation ClearPVList(); - // To re-use "culling off" code. G4VTreeSceneHandler::EndModeling (); } diff --git a/source/visualization/Tree/src/G4GAGTreeViewer.cc b/source/visualization/Tree/src/G4GAGTreeViewer.cc index d9af8f3ae9..fc9a4e9325 100644 --- a/source/visualization/Tree/src/G4GAGTreeViewer.cc +++ b/source/visualization/Tree/src/G4GAGTreeViewer.cc @@ -30,6 +30,10 @@ G4GAGTreeViewer::G4GAGTreeViewer (G4VSceneHandler& sceneHandler, const G4String& name): - G4VTreeViewer(sceneHandler, name) {} + G4VTreeViewer(sceneHandler, name) { + // Make changes to view parameters for GAGTree... + fVP.SetCulling(false); + fDefaultVP.SetCulling(false); +} G4GAGTreeViewer::~G4GAGTreeViewer() {} diff --git a/source/visualization/Tree/src/G4VTree.cc b/source/visualization/Tree/src/G4VTree.cc index 7bbed2e26b..201a8d0442 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4VTreeSceneHandler.cc b/source/visualization/Tree/src/G4VTreeSceneHandler.cc index ff93b6f5f6..46ed2635aa 100644 --- a/source/visualization/Tree/src/G4VTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4VTreeSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTreeSceneHandler.cc,v 1.6 2001/07/25 21:02:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VTreeSceneHandler.cc,v 1.7 2002/12/11 16:08:55 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 @@ -65,21 +65,8 @@ void G4VTreeSceneHandler::EstablishSpecials void G4VTreeSceneHandler::BeginModeling() { G4VSceneHandler::BeginModeling(); // Required: see G4VSceneHandler.hh. - // Force culling off... - if (fpModel) { - fpOriginalMP = fpModel->GetModelingParameters(); - if (fpOriginalMP) { - fpNonCullingMP = new G4ModelingParameters(*fpOriginalMP); - fpNonCullingMP->SetCulling(false); - fpModel->SetModelingParameters(fpNonCullingMP); - } - } } void G4VTreeSceneHandler::EndModeling() { - if (fpModel && fpOriginalMP) { - fpModel->SetModelingParameters(fpOriginalMP); - delete fpNonCullingMP; - } G4VSceneHandler::EndModeling(); // Required: see G4VSceneHandler.hh. } diff --git a/source/visualization/Tree/src/G4VTreeViewer.cc b/source/visualization/Tree/src/G4VTreeViewer.cc index b20cd00f19..8689599647 100644 --- a/source/visualization/Tree/src/G4VTreeViewer.cc +++ b/source/visualization/Tree/src/G4VTreeViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTreeViewer.cc,v 1.4 2001/07/11 10:09:08 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4VTreeViewer.hh" diff --git a/source/visualization/VRML/History b/source/visualization/VRML/History index 84d94fd9e1..513ca69fc0 100644 --- a/source/visualization/VRML/History +++ b/source/visualization/VRML/History @@ -1,3 +1,6 @@ +VRML-V04-01-00 November 10 2002 +- Bug fixing for marker size (*.icc files) + VRML-V03-02-01 18th September 2001 - Updation for automatic visualization at Hebden Bridge mini-workshop. - Filename incrementation is made the same as the DAWNFILE driver diff --git a/source/visualization/VRML/g4vrmlview/g4mini.java b/source/visualization/VRML/g4vrmlview/g4mini.java index 0be346d326..08a3545bb3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/g4vrmlview/g4vrmlview.java b/source/visualization/VRML/g4vrmlview/g4vrmlview.java index 404f9103f9..124cfb6e49 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/include/FRClient.h b/source/visualization/VRML/include/FRClient.h index 5aa56eedee..e98d3bcee1 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // FRClient.h // FukuiRenderer Client diff --git a/source/visualization/VRML/include/G4FRClient.hh b/source/visualization/VRML/include/G4FRClient.hh index 4a7dc6b386..305cba31d5 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4FRClient.hh // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1.hh b/source/visualization/VRML/include/G4VRML1.hh index 568f1db501..9c6877a133 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1.hh // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1File.hh b/source/visualization/VRML/include/G4VRML1File.hh index 730d7c5b44..30f04bd9be 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh index 545a72fbc0..996438ca93 100644 --- a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1FileSceneHandler.hh,v 1.11 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VRML1FileSceneHandler.hh,v 1.12 2002/12/11 15:57:53 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -62,6 +62,12 @@ public: G4VSceneHandler::AddThis (polyhedra); } void AddThis(const G4VSolid&); + void AddThis ( const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); + } + void AddThis ( const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); + } void BeginPrimitives(const G4Transform3D& objectTransformation); void EndPrimitives(); diff --git a/source/visualization/VRML/include/G4VRML1FileViewer.hh b/source/visualization/VRML/include/G4VRML1FileViewer.hh index 30e49bc712..3e71baf474 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1SceneHandler.hh b/source/visualization/VRML/include/G4VRML1SceneHandler.hh index 6b28347c4c..5546cb1068 100644 --- a/source/visualization/VRML/include/G4VRML1SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1SceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandler.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VRML1SceneHandler.hh,v 1.11 2002/12/11 15:57:55 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1SceneHandler.hh // Yasuhide Sawada & Satoshi Tanaka @@ -68,6 +68,12 @@ public: G4VSceneHandler::AddThis (polyhedra); } void AddThis(const G4VSolid&); + void AddThis ( const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); + } + void AddThis ( const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); + } void BeginPrimitives(const G4Transform3D& objectTransformation); void EndPrimitives(); diff --git a/source/visualization/VRML/include/G4VRML1Viewer.hh b/source/visualization/VRML/include/G4VRML1Viewer.hh index 3179f77521..3d37d3ab3d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1Viewer.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2.hh b/source/visualization/VRML/include/G4VRML2.hh index bed0c01302..df701a93fe 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2File.hh b/source/visualization/VRML/include/G4VRML2File.hh index 6de673295f..9dfbaa18b6 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh index fd02612a5d..f1ca482222 100644 --- a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2FileSceneHandler.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VRML2FileSceneHandler.hh,v 1.11 2002/12/11 15:57:56 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -62,6 +62,12 @@ public: G4VSceneHandler::AddThis (polyhedra); } void AddThis(const G4VSolid&); + void AddThis ( const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); + } + void AddThis ( const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); + } void BeginPrimitives(const G4Transform3D& objectTransformation); void EndPrimitives(); diff --git a/source/visualization/VRML/include/G4VRML2FileViewer.hh b/source/visualization/VRML/include/G4VRML2FileViewer.hh index fc01d9d012..1b9cae5285 100644 --- a/source/visualization/VRML/include/G4VRML2FileViewer.hh +++ b/source/visualization/VRML/include/G4VRML2FileViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileViewer.hh,v 1.8 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2SceneHandler.hh b/source/visualization/VRML/include/G4VRML2SceneHandler.hh index a45726d836..20dd5d8c1e 100644 --- a/source/visualization/VRML/include/G4VRML2SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2SceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandler.hh,v 1.9 2002/06/23 03:31:43 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VRML2SceneHandler.hh,v 1.10 2002/12/11 15:57:56 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2SceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada @@ -66,6 +66,12 @@ public: G4VSceneHandler::AddThis (polyhedra); } void AddThis(const G4VSolid&); + void AddThis ( const G4VTrajectory& traj) { + G4VSceneHandler::AddThis(traj); + } + void AddThis ( const G4VHit& hit) { + G4VSceneHandler::AddThis(hit); + } void BeginPrimitives(const G4Transform3D& objectTransformation); void EndPrimitives(); diff --git a/source/visualization/VRML/include/G4VRML2Viewer.hh b/source/visualization/VRML/include/G4VRML2Viewer.hh index bf3d1b2214..ccbaa88d2e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2Viewer.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRMLNetConfig.hh b/source/visualization/VRML/include/G4VRMLNetConfig.hh index f106a1bcb2..8e09c2284e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRMLNetConfig.hh // Satoshi Tanaka diff --git a/source/visualization/VRML/src/FRClient.cc b/source/visualization/VRML/src/FRClient.cc index 0fc1d35a58..a3dfbced99 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // FRClient.cc // FukuiRenderer Client diff --git a/source/visualization/VRML/src/G4FRClient.cc b/source/visualization/VRML/src/G4FRClient.cc index d7a7390d82..0d42bd7eae 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4FRClient.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1.cc b/source/visualization/VRML/src/G4VRML1.cc index b4befd0af0..5616864eec 100644 --- a/source/visualization/VRML/src/G4VRML1.cc +++ b/source/visualization/VRML/src/G4VRML1.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1.cc,v 1.8 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1File.cc b/source/visualization/VRML/src/G4VRML1File.cc index f0b4639808..ac1deb99ff 100644 --- a/source/visualization/VRML/src/G4VRML1File.cc +++ b/source/visualization/VRML/src/G4VRML1File.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1File.cc,v 1.8 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1File.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc index a30f423135..6ea5637b4e 100644 --- a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileSceneHandler.cc,v 1.7 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1FileViewer.cc b/source/visualization/VRML/src/G4VRML1FileViewer.cc index b6cefe7a04..ace2921b2a 100644 --- a/source/visualization/VRML/src/G4VRML1FileViewer.cc +++ b/source/visualization/VRML/src/G4VRML1FileViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileViewer.cc,v 1.7 2001/09/18 07:53:15 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRMLView.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1SceneHandler.cc b/source/visualization/VRML/src/G4VRML1SceneHandler.cc index 8cd306f71a..e00cbca5e6 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1SceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1SceneHandler.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1SceneHandler.cc // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc index 058e965cf5..5fb089e36a 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML1SceneHandlerFunc.icc,v 1.10 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VRML1SceneHandlerFunc.icc,v 1.11 2002/11/10 05:10:12 stanaka Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML1SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada @@ -619,13 +619,11 @@ G4double G4VRML1SCENEHANDLER::GetMarkerHalfSize ( const G4VMarker& mark ) if ( extent_radius_3d <= 0.0 ) { extent_radius_3d = 1.0 ; } //----- get marker radius in 3D units - if ( size == mark.GetWorldSize() ) { - + if ( mark.GetWorldSize() > 0.0 ) { // get mark radius in 3D units size = 0.5 * mark.GetWorldSize() ; - } else if ( size == mark.GetScreenSize() ) { - + } else if ( mark.GetScreenSize() > 0.0 ) { // local double mark_radius_2d = 0.5 * mark.GetScreenSize() ; @@ -638,6 +636,7 @@ G4double G4VRML1SCENEHANDLER::GetMarkerHalfSize ( const G4VMarker& mark ) // local double mark_radius_2d \ = fpViewer->GetViewParameters().GetDefaultMarker().GetScreenSize(); + mark_radius_2d *= 0.1 ; // Magic number? // get mark radius in 3D units size \ diff --git a/source/visualization/VRML/src/G4VRML1Viewer.cc b/source/visualization/VRML/src/G4VRML1Viewer.cc index 9ef26c80e7..81074ad2c5 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRMLView.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML2.cc b/source/visualization/VRML/src/G4VRML2.cc index 07f994f165..25c96cd654 100644 --- a/source/visualization/VRML/src/G4VRML2.cc +++ b/source/visualization/VRML/src/G4VRML2.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2.cc,v 1.8 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2File.cc b/source/visualization/VRML/src/G4VRML2File.cc index 734dc1460d..7a26525128 100644 --- a/source/visualization/VRML/src/G4VRML2File.cc +++ b/source/visualization/VRML/src/G4VRML2File.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2File.cc,v 1.8 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2File.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc index d8b22e1343..5a2db4c75c 100644 --- a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileSceneHandler.cc,v 1.8 2002/06/17 10:13:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2FileViewer.cc b/source/visualization/VRML/src/G4VRML2FileViewer.cc index 7bafc893e0..4abfe90866 100644 --- a/source/visualization/VRML/src/G4VRML2FileViewer.cc +++ b/source/visualization/VRML/src/G4VRML2FileViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileViewer.cc,v 1.8 2001/09/18 07:53:16 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2FileViewer.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2SceneHandler.cc b/source/visualization/VRML/src/G4VRML2SceneHandler.cc index 6f8b03079d..b6b49e2a97 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2SceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2SceneHandler.cc,v 1.8 2002/06/23 03:31:51 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2SceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc index d1b27d8fb4..46cc49a123 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRML2SceneHandlerFunc.icc,v 1.10 2002/06/23 03:31:51 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VRML2SceneHandlerFunc.icc,v 1.11 2002/11/10 05:10:17 stanaka Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada @@ -572,12 +572,12 @@ G4double G4VRML2SCENEHANDLER::GetMarkerHalfSize ( const G4VMarker& mark ) if ( extent_radius_3d <= 0.0 ) { extent_radius_3d = 1.0 ; } //----- get marker radius in 3D units - if ( size == mark.GetWorldSize() ) { + if ( mark.GetWorldSize() > 0.0 ) { // get mark radius in 3D units size = 0.5 * mark.GetWorldSize() ; - } else if ( size == mark.GetScreenSize() ) { + } else if ( mark.GetScreenSize() > 0.0 ) { // local double mark_radius_2d = 0.5 * mark.GetScreenSize() ; @@ -591,6 +591,7 @@ G4double G4VRML2SCENEHANDLER::GetMarkerHalfSize ( const G4VMarker& mark ) // local double mark_radius_2d \ = fpViewer->GetViewParameters().GetDefaultMarker().GetScreenSize(); + mark_radius_2d *= 0.1 ; // Magic number? // get mark radius in 3D units size \ diff --git a/source/visualization/VRML/src/G4VRML2Viewer.cc b/source/visualization/VRML/src/G4VRML2Viewer.cc index 91c68a0ef4..2322849b84 100644 --- a/source/visualization/VRML/src/G4VRML2Viewer.cc +++ b/source/visualization/VRML/src/G4VRML2Viewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2Viewer.cc,v 1.9 2002/06/23 03:31:51 stanaka Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // G4VRML2Viewer.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/XXX/GNUmakefile b/source/visualization/XXX/GNUmakefile index 12a833d619..9b06dfecfa 100644 --- a/source/visualization/XXX/GNUmakefile +++ b/source/visualization/XXX/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2001/08/25 00:21:52 johna Exp $ +# $Id: GNUmakefile,v 1.4 2002/10/24 15:17:27 johna Exp $ name := G4visXXX @@ -20,5 +20,6 @@ CPPFLAGS += -I$(G4BASE)/geometry/management/include CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include CPPFLAGS += -I$(G4BASE)/geometry/volumes/include CPPFLAGS += -I$(G4BASE)/geometry/solids/specific/include +CPPFLAGS += -I$(G4BASE)/tracking/include include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/XXX/History b/source/visualization/XXX/History index d44d2bcfaf..50da5bf19d 100644 --- a/source/visualization/XXX/History +++ b/source/visualization/XXX/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2001/11/16 10:51:44 johna Exp $ +$Id: History,v 1.6 2002/11/11 18:27:29 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,10 @@ committal in the CVS repository ! History file for visualization/XXX sub-category (a template graphics system) --------------------------------------------------------------------------- +11th November 2002 John Allison +- Moved header inclusions from .hh to .cc. +- Tidied AddThis(traj) and improved (square) and (circle). + 16th November 2001 John Allison - Added G4XXXDEBUG. diff --git a/source/visualization/XXX/include/G4XXX.hh b/source/visualization/XXX/include/G4XXX.hh index c04b04ebb4..ee7e084174 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/include/G4XXXSceneHandler.hh b/source/visualization/XXX/include/G4XXXSceneHandler.hh index b33fa896c7..27f834c60b 100644 --- a/source/visualization/XXX/include/G4XXXSceneHandler.hh +++ b/source/visualization/XXX/include/G4XXXSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XXXSceneHandler.hh,v 1.7 2001/11/21 16:47:32 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4XXXSceneHandler.hh,v 1.9 2002/11/11 18:22:47 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 @@ -34,20 +34,6 @@ #define G4XXXDEBUG // Comment this out to suppress debug code. #include "G4VSceneHandler.hh" -#include "G4Box.hh" -#include "G4Cons.hh" -#include "G4Tubs.hh" -#include "G4Trd.hh" -#include "G4Trap.hh" -#include "G4Sphere.hh" -#include "G4Para.hh" -#include "G4Torus.hh" -#include "G4Polycone.hh" -#include "G4Polyhedra.hh" - -class G4VPhysicalVolume; -class G4LogicalVolume; -class G4ModelingParameters; class G4XXXSceneHandler: public G4VSceneHandler { @@ -69,6 +55,8 @@ public: 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(); diff --git a/source/visualization/XXX/include/G4XXXViewer.hh b/source/visualization/XXX/include/G4XXXViewer.hh index 0262cbe4bc..01e980a612 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXX.cc b/source/visualization/XXX/src/G4XXX.cc index 919bb8f2dd..11b4a4290a 100644 --- a/source/visualization/XXX/src/G4XXX.cc +++ b/source/visualization/XXX/src/G4XXX.cc @@ -22,7 +22,7 @@ // // // $Id: G4XXX.cc,v 1.3 2001/08/25 00:22:20 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXXSceneHandler.cc b/source/visualization/XXX/src/G4XXXSceneHandler.cc index 832946a8a2..c88c9957a2 100644 --- a/source/visualization/XXX/src/G4XXXSceneHandler.cc +++ b/source/visualization/XXX/src/G4XXXSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XXXSceneHandler.cc,v 1.6 2001/11/16 10:50:08 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4XXXSceneHandler.cc,v 1.10 2002/11/11 18:26:35 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 5th April 2001 @@ -31,7 +31,16 @@ #include "G4XXXSceneHandler.hh" -#include "G4VSolid.hh" +#include "G4Box.hh" +#include "G4Cons.hh" +#include "G4Tubs.hh" +#include "G4Trd.hh" +#include "G4Trap.hh" +#include "G4Sphere.hh" +#include "G4Para.hh" +#include "G4Torus.hh" +#include "G4Polycone.hh" +#include "G4Polyhedra.hh" #include "G4PhysicalVolumeModel.hh" #include "G4VPhysicalVolume.hh" #include "G4LogicalVolume.hh" @@ -42,6 +51,9 @@ #include "G4Square.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" +#include "G4VTrajectory.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" G4int G4XXXSceneHandler::fSceneIdCount = 0; // Counter for XXX scene handlers. @@ -200,6 +212,27 @@ void G4XXXSceneHandler::AddThis(const G4VSolid& solid) { G4VSceneHandler::AddThis(solid); // Invoke default action. } +void G4XXXSceneHandler::AddThis(const G4VTrajectory& traj) { +#ifdef G4XXXDEBUG + G4cout << + "G4XXXSceneHandler::AddThis(const G4VTrajectory& traj) called." + << G4endl; +#endif + + G4VSceneHandler::AddThis(traj); // Draw trajectory in good old way for now. + + traj.ShowTrajectory(); + G4cout << G4endl; +} + +void G4XXXSceneHandler::AddThis(const G4VHit& hit) { +#ifdef G4XXXDEBUG + G4cout << + "G4XXXSceneHandler::AddThis(const G4VHit& hit) called." + << G4endl; +#endif + G4VSceneHandler::AddThis(hit); // Invoke default action. +} void G4XXXSceneHandler::AddPrimitive(const G4Polyline& polyline) { #ifdef G4XXXDEBUG @@ -224,9 +257,21 @@ void G4XXXSceneHandler::AddPrimitive(const G4Text& text) { void G4XXXSceneHandler::AddPrimitive(const G4Circle& circle) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddPrimitive(const G4Circle& circle) called:" - "\n radius: " << circle.GetWorldRadius() - << G4endl; + "G4XXXSceneHandler::AddPrimitive(const G4Circle& circle) called:\n "; + MarkerSizeType sizeType; + G4double size = GetMarkerSize (circle, sizeType); + switch (sizeType) { + default: + case screen: + // Draw in screen coordinates. + G4cout << "screen"; + break; + case world: + // Draw in world coordinates. + G4cout << "world"; + break; + } + G4cout << " size: " << size << G4endl; PrintThings(); #endif } @@ -234,9 +279,21 @@ void G4XXXSceneHandler::AddPrimitive(const G4Circle& circle) { void G4XXXSceneHandler::AddPrimitive(const G4Square& square) { #ifdef G4XXXDEBUG G4cout << - "G4XXXSceneHandler::AddPrimitive(const G4Square& square) called:" - "\n side: " << square.GetWorldRadius() - << G4endl; + "G4XXXSceneHandler::AddPrimitive(const G4Square& square) called:\n "; + MarkerSizeType sizeType; + G4double size = GetMarkerSize (square, sizeType); + switch (sizeType) { + default: + case screen: + // Draw in screen coordinates. + G4cout << "screen"; + break; + case world: + // Draw in world coordinates. + G4cout << "world"; + break; + } + G4cout << " size: " << size << G4endl; PrintThings(); #endif } diff --git a/source/visualization/XXX/src/G4XXXViewer.cc b/source/visualization/XXX/src/G4XXXViewer.cc index cd5862f473..e3f4740eda 100644 --- a/source/visualization/XXX/src/G4XXXViewer.cc +++ b/source/visualization/XXX/src/G4XXXViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4XXXViewer.cc,v 1.4 2001/11/16 10:50:27 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4XXXViewer.hh" diff --git a/source/visualization/management/include/G4GraphicsSystemList.hh b/source/visualization/management/include/G4GraphicsSystemList.hh index 7b548f8247..7db1b6d599 100644 --- a/source/visualization/management/include/G4GraphicsSystemList.hh +++ b/source/visualization/management/include/G4GraphicsSystemList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GraphicsSystemList.hh,v 1.7 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 2nd April 1996 diff --git a/source/visualization/management/include/G4Scene.hh b/source/visualization/management/include/G4Scene.hh index 1c08ba9af6..326efbf89b 100644 --- a/source/visualization/management/include/G4Scene.hh +++ b/source/visualization/management/include/G4Scene.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scene.hh,v 1.12 2001/08/24 20:47:39 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Scene John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4Scene.icc b/source/visualization/management/include/G4Scene.icc index cc4fcf28cd..7732e1abf7 100644 --- a/source/visualization/management/include/G4Scene.icc +++ b/source/visualization/management/include/G4Scene.icc @@ -22,7 +22,7 @@ // // // $Id: G4Scene.icc,v 1.9 2001/08/11 21:39:54 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4SceneHandlerList.hh b/source/visualization/management/include/G4SceneHandlerList.hh index 480f3b308c..bad558f6a0 100644 --- a/source/visualization/management/include/G4SceneHandlerList.hh +++ b/source/visualization/management/include/G4SceneHandlerList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SceneHandlerList.hh,v 1.6 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4SceneList.hh b/source/visualization/management/include/G4SceneList.hh index fa158101ae..20cfed3d05 100644 --- a/source/visualization/management/include/G4SceneList.hh +++ b/source/visualization/management/include/G4SceneList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SceneList.hh,v 1.8 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VGraphicsSystem.hh b/source/visualization/management/include/G4VGraphicsSystem.hh index 84f74ef8fe..70b4f0170f 100644 --- a/source/visualization/management/include/G4VGraphicsSystem.hh +++ b/source/visualization/management/include/G4VGraphicsSystem.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.hh,v 1.9 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VGraphicsSystem.icc b/source/visualization/management/include/G4VGraphicsSystem.icc index 40c47e2300..83192e78a9 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VSceneHandler.hh b/source/visualization/management/include/G4VSceneHandler.hh index e95644522b..a9efad6258 100644 --- a/source/visualization/management/include/G4VSceneHandler.hh +++ b/source/visualization/management/include/G4VSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSceneHandler.hh,v 1.18 2001/08/14 18:36:07 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSceneHandler.hh,v 1.19 2002/10/24 15:10:43 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 19th July 1996. @@ -86,6 +86,8 @@ public: // With description 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&); /////////////////////////////////////////////////////////////// // Other inherited functions. diff --git a/source/visualization/management/include/G4VSceneHandler.icc b/source/visualization/management/include/G4VSceneHandler.icc index 4db869f1f9..3727ecdc79 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4VViewer.hh b/source/visualization/management/include/G4VViewer.hh index 8e882f3eca..5af8d8efcb 100644 --- a/source/visualization/management/include/G4VViewer.hh +++ b/source/visualization/management/include/G4VViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VViewer.hh,v 1.12 2001/08/14 18:35:19 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VViewer.icc b/source/visualization/management/include/G4VViewer.icc index 9b5563a8b7..5f010c538c 100644 --- a/source/visualization/management/include/G4VViewer.icc +++ b/source/visualization/management/include/G4VViewer.icc @@ -22,7 +22,7 @@ // // // $Id: G4VViewer.icc,v 1.9 2001/07/14 21:48:22 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 30th December 1996 diff --git a/source/visualization/management/include/G4VVisCommand.hh b/source/visualization/management/include/G4VVisCommand.hh index f9e0e363cc..1971ccc42b 100644 --- a/source/visualization/management/include/G4VVisCommand.hh +++ b/source/visualization/management/include/G4VVisCommand.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.hh,v 1.13 2001/09/10 10:49:07 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VVisCommand.hh,v 1.14 2002/11/27 12:32:32 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -51,7 +51,6 @@ public: static G4String ConvertToString(const G4ThreeVector& vec); static G4bool GetNewBoolValue(const G4String& paramString); static G4int GetNewIntValue(const G4String& paramString); - static G4double GetNewDoubleValue(const G4String& paramString); static G4ThreeVector GetNew3VectorValue(const G4String& paramString); static void GetNewDoublePairValue(const G4String& paramString, G4double& xval, diff --git a/source/visualization/management/include/G4VVisCommand.icc b/source/visualization/management/include/G4VVisCommand.icc index 58c20c6bfd..ed35a1bfcb 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // 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 67e9a16d6c..49efbebab4 100644 --- a/source/visualization/management/include/G4ViewParameters.hh +++ b/source/visualization/management/include/G4ViewParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4ViewParameters.hh,v 1.13 2001/07/11 10:09:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 19th July 1996 diff --git a/source/visualization/management/include/G4ViewParameters.icc b/source/visualization/management/include/G4ViewParameters.icc index 5902035b85..d896bbe405 100644 --- a/source/visualization/management/include/G4ViewParameters.icc +++ b/source/visualization/management/include/G4ViewParameters.icc @@ -22,7 +22,7 @@ // // // $Id: G4ViewParameters.icc,v 1.5 2001/07/11 10:09:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 20th October 1996 diff --git a/source/visualization/management/include/G4ViewerList.hh b/source/visualization/management/include/G4ViewerList.hh index 4c43775620..93438aefb8 100644 --- a/source/visualization/management/include/G4ViewerList.hh +++ b/source/visualization/management/include/G4ViewerList.hh @@ -22,7 +22,7 @@ // // // $Id: G4ViewerList.hh,v 1.6 2001/07/11 10:09:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4VisCommands.hh b/source/visualization/management/include/G4VisCommands.hh index 4c00ebac35..e46e497248 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /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 b2e82c2e9b..e1d317c1a8 100644 --- a/source/visualization/management/include/G4VisCommandsCompound.hh +++ b/source/visualization/management/include/G4VisCommandsCompound.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsCompound.hh,v 1.7 2001/07/11 10:09:15 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // Compound /vis/ commands - John Allison 15th May 2000 diff --git a/source/visualization/management/include/G4VisCommandsScene.hh b/source/visualization/management/include/G4VisCommandsScene.hh index 033e4beb9b..ac0658efe5 100644 --- a/source/visualization/management/include/G4VisCommandsScene.hh +++ b/source/visualization/management/include/G4VisCommandsScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsScene.hh,v 1.13 2001/11/06 13:00:10 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/scene commands - John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VisCommandsSceneAdd.hh b/source/visualization/management/include/G4VisCommandsSceneAdd.hh index 7056f3b2a6..0939314c35 100644 --- a/source/visualization/management/include/G4VisCommandsSceneAdd.hh +++ b/source/visualization/management/include/G4VisCommandsSceneAdd.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.hh,v 1.9 2001/07/22 01:05:00 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisCommandsSceneAdd.hh,v 1.10 2002/11/11 18:31:28 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/scene commands - John Allison 9th August 1998 @@ -31,6 +31,8 @@ #include "G4VisCommandsScene.hh" +class G4UIcmdWithAnInteger; + class G4VisCommandSceneAddAxes: public G4VVisCommandScene { public: G4VisCommandSceneAddAxes (); @@ -115,7 +117,7 @@ private: G4VisCommandSceneAddTrajectories (const G4VisCommandSceneAddTrajectories&); G4VisCommandSceneAddTrajectories& operator = (const G4VisCommandSceneAddTrajectories&); - G4UIcmdWithoutParameter* fpCommand; + G4UIcmdWithAnInteger* fpCommand; }; class G4VisCommandSceneAddVolume: public G4VVisCommandScene { diff --git a/source/visualization/management/include/G4VisCommandsSceneHandler.hh b/source/visualization/management/include/G4VisCommandsSceneHandler.hh index a1618d8d5f..f415d7dfb4 100644 --- a/source/visualization/management/include/G4VisCommandsSceneHandler.hh +++ b/source/visualization/management/include/G4VisCommandsSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsSceneHandler.hh,v 1.6 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/sceneHandler commands - John Allison 10th October 1998 diff --git a/source/visualization/management/include/G4VisCommandsViewer.hh b/source/visualization/management/include/G4VisCommandsViewer.hh index 2513d15414..d2a50bfb39 100644 --- a/source/visualization/management/include/G4VisCommandsViewer.hh +++ b/source/visualization/management/include/G4VisCommandsViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsViewer.hh,v 1.15 2001/11/06 12:55:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/viewer commands - John Allison 25th October 1998 diff --git a/source/visualization/management/include/G4VisCommandsViewerSet.hh b/source/visualization/management/include/G4VisCommandsViewerSet.hh index 1f4e0fe47e..9338b02124 100644 --- a/source/visualization/management/include/G4VisCommandsViewerSet.hh +++ b/source/visualization/management/include/G4VisCommandsViewerSet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewerSet.hh,v 1.10 2001/11/06 13:01:31 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisCommandsViewerSet.hh,v 1.11 2002/11/27 12:33:29 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/viewer/set commands - John Allison 16th May 2000 @@ -37,6 +37,7 @@ class G4UIcommand; class G4UIcmdWithAString; class G4UIcmdWithABool; class G4UIcmdWithAnInteger; +class G4UIcmdWithADouble; class G4VisCommandsViewerSet: public G4VVisCommandViewer { public: @@ -51,6 +52,7 @@ private: G4UIcmdWithABool* fpCommandAutoRefresh; G4UIcommand* fpCommandCulling; G4UIcmdWithABool* fpCommandEdge; + G4UIcmdWithADouble* fpCommandGlobalMarkerScale; G4UIcmdWithABool* fpCommandHiddenEdge; G4UIcmdWithABool* fpCommandHiddenMarker; G4UIcmdWithAnInteger* fpCommandLineSegments; diff --git a/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh b/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh index a6d55e7a60..71f9569b90 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #ifndef G4VISFEATURESOFDAWNFILE_HH #define G4VISFEATURESOFDAWNFILE_HH diff --git a/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh b/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh index 0e83fa6bac..f401e1f2ce 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh b/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh index e07fb36949..6a136de6f0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh b/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh index 39d190239d..0a2274cd19 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/management/include/G4VisManager.hh b/source/visualization/management/include/G4VisManager.hh index 9cacd143d1..c4e9bd6e4e 100644 --- a/source/visualization/management/include/G4VisManager.hh +++ b/source/visualization/management/include/G4VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.hh,v 1.27 2001/09/10 11:00:36 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisManager.hh,v 1.28 2002/11/11 18:33:30 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // @@ -85,6 +85,8 @@ #include "G4SceneList.hh" #include "G4Transform3D.hh" #include "G4UImessenger.hh" +#include "G4NullModel.hh" +#include "G4ModelingParameters.hh" #include "g4std/iostream" #include "g4std/vector" @@ -323,6 +325,8 @@ protected: void ClearTransientStoreIfMarked(); // Clears transient store of current scene handler if it is marked // for clearing. Assumes view is valid. + void CheckModel (); + // If a scene handler has no model, provides a null model. static G4VisManager* fpInstance; // Pointer to single instance. G4bool fInitialised; @@ -343,6 +347,8 @@ protected: G4std::vector fDirectoryList; G4VisStateDependent* fpStateDependent; // Friend state dependent class. G4int fWindowSizeHintX, fWindowSizeHintY; // For viewer construction. + G4NullModel fVisManagerNullModel; // As a default. + G4ModelingParameters fVisManagerModelingParameters; // Useful memory. }; diff --git a/source/visualization/management/include/G4VisManager.icc b/source/visualization/management/include/G4VisManager.icc index 4d9ff87974..03561ed802 100644 --- a/source/visualization/management/include/G4VisManager.icc +++ b/source/visualization/management/include/G4VisManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4VisManager.icc,v 1.8 2001/08/05 02:29:05 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. diff --git a/source/visualization/management/include/G4VisStateDependent.hh b/source/visualization/management/include/G4VisStateDependent.hh index b4fd29366c..e9bef4efee 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // A "state dependent" service class for G4VisManager. // John Allison 29th November 1999 diff --git a/source/visualization/management/include/G4VisToOldVisCommands.hh b/source/visualization/management/include/G4VisToOldVisCommands.hh index 7b82e7a06d..4cc262eaa9 100644 --- a/source/visualization/management/include/G4VisToOldVisCommands.hh +++ b/source/visualization/management/include/G4VisToOldVisCommands.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisToOldVisCommands.hh,v 1.6 2001/07/11 10:09:17 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Implements some /vis/ commands as /vis~/ temporarily. diff --git a/source/visualization/management/include/MyVisManager.cc b/source/visualization/management/include/MyVisManager.cc index f4e0a875fa..b4c74c08f5 100644 --- a/source/visualization/management/include/MyVisManager.cc +++ b/source/visualization/management/include/MyVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: MyVisManager.cc,v 1.16 2001/11/15 14:39:27 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: MyVisManager.cc,v 1.17 2002/11/27 12:34:36 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 24th January 1998. @@ -35,6 +35,7 @@ #include "G4ASCIITree.hh" #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" +#include "G4HepRep.hh" #include "G4HepRepFile.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" @@ -88,6 +89,7 @@ void MyVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4ASCIITree); RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4HepRepFile); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); diff --git a/source/visualization/management/include/MyVisManager.hh b/source/visualization/management/include/MyVisManager.hh index 383d56c83c..5051b917a0 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 24th January 1998. diff --git a/source/visualization/management/src/G4GraphicsSystemList.cc b/source/visualization/management/src/G4GraphicsSystemList.cc index 95f8a3e2d5..203184573f 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4GraphicsSystemList.hh" diff --git a/source/visualization/management/src/G4Scene.cc b/source/visualization/management/src/G4Scene.cc index 488b41fb89..b9ded7320e 100644 --- a/source/visualization/management/src/G4Scene.cc +++ b/source/visualization/management/src/G4Scene.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scene.cc,v 1.11 2001/08/24 20:47:41 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/src/G4SceneHandlerList.cc b/source/visualization/management/src/G4SceneHandlerList.cc index 7ac23bbd21..b1f50a81ef 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4SceneHandlerList.hh" diff --git a/source/visualization/management/src/G4SceneList.cc b/source/visualization/management/src/G4SceneList.cc index e90a15af79..63eb85c2b3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4SceneList.hh" diff --git a/source/visualization/management/src/G4VGraphicsSystem.cc b/source/visualization/management/src/G4VGraphicsSystem.cc index 470bb45c7c..6ab4285d5b 100644 --- a/source/visualization/management/src/G4VGraphicsSystem.cc +++ b/source/visualization/management/src/G4VGraphicsSystem.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.cc,v 1.9 2001/08/05 02:29:09 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/src/G4VSceneHandler.cc b/source/visualization/management/src/G4VSceneHandler.cc index f3177588ce..2fb18a8ce5 100644 --- a/source/visualization/management/src/G4VSceneHandler.cc +++ b/source/visualization/management/src/G4VSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSceneHandler.cc,v 1.23 2001/09/10 10:52:01 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VSceneHandler.cc,v 1.25 2002/11/11 18:37:13 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 19th July 1996 @@ -52,6 +52,7 @@ #include "G4Visible.hh" #include "G4VisAttributes.hh" #include "G4VModel.hh" +#include "G4TrajectoriesModel.hh" #include "G4Box.hh" #include "G4Cons.hh" #include "G4Tubs.hh" @@ -65,6 +66,8 @@ #include "G4LogicalVolume.hh" #include "G4PhysicalVolumeModel.hh" #include "G4ModelingParameters.hh" +#include "G4VTrajectory.hh" +#include "G4VHit.hh" G4VSceneHandler::G4VSceneHandler (G4VGraphicsSystem& system, G4int id, const G4String& name): fSystem (system), @@ -179,6 +182,15 @@ void G4VSceneHandler::AddThis (const G4VSolid& solid) { RequestPrimitives (solid); } +void G4VSceneHandler::AddThis (const G4VTrajectory& traj) { + + traj.DrawTrajectory(((G4TrajectoriesModel*)fpModel)->GetDrawingMode()); +} + +void G4VSceneHandler::AddThis (const G4VHit& hit) { + ((G4VHit&)hit).Draw(); // Cast to non-const because Draw is non-const!!!! +} + void G4VSceneHandler::AddViewerToList (G4VViewer* pViewer) { fViewerList.push_back (pViewer); } @@ -194,7 +206,7 @@ void G4VSceneHandler::BeginModeling () { void G4VSceneHandler::BeginPrimitives (const G4Transform3D& objectTransformation) { - if (!GetModel ()) G4Exception ("G4VSceneHandler::BeginPrimitives: NO MODEL!!!"); + if (!fpModel) G4Exception ("G4VSceneHandler::BeginPrimitives: NO MODEL!!!"); fpObjectTransformation = &objectTransformation; } @@ -360,12 +372,12 @@ void G4VSceneHandler::SetScene (G4Scene* pScene) { } void G4VSceneHandler::RequestPrimitives (const G4VSolid& solid) { - if (!GetModel ()) + if (!fpModel) G4Exception ("G4VSceneHandler::RequestPrimitives: NO MODEL!!!"); G4Polyhedron* pPolyhedron; G4NURBS* pNURBS; BeginPrimitives (*fpObjectTransformation); - switch (GetModel () -> GetModelingParameters () -> GetRepStyle ()) { + switch (fpModel -> GetModelingParameters () -> GetRepStyle ()) { case G4ModelingParameters::nurbs: pNURBS = solid.CreateNURBS (); if (pNURBS) { @@ -390,7 +402,7 @@ void G4VSceneHandler::RequestPrimitives (const G4VSolid& solid) { case G4ModelingParameters::polyhedron: default: G4Polyhedron::SetNumberOfRotationSteps - (GetModel () -> GetModelingParameters () -> GetNoOfSides ()); + (fpModel -> GetModelingParameters () -> GetNoOfSides ()); pPolyhedron = solid.CreatePolyhedron (); G4Polyhedron::ResetNumberOfRotationSteps (); if (pPolyhedron) { diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc index f68952430b..bd09f31045 100644 --- a/source/visualization/management/src/G4VViewer.cc +++ b/source/visualization/management/src/G4VViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VViewer.cc,v 1.16 2001/08/14 18:34:47 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/src/G4VVisCommand.cc b/source/visualization/management/src/G4VVisCommand.cc index 3f5678f94e..f6bafd2536 100644 --- a/source/visualization/management/src/G4VVisCommand.cc +++ b/source/visualization/management/src/G4VVisCommand.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.cc,v 1.10 2001/09/10 10:49:51 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VVisCommand.cc,v 1.11 2002/11/27 12:32:31 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -94,19 +94,6 @@ G4int G4VVisCommand::GetNewIntValue(const G4String& paramString) return vl; } -G4double G4VVisCommand::GetNewDoubleValue(const G4String& paramString) -{ - G4double vl; - char unts[30]; - - const char* t = paramString; - G4std::istrstream is((char*)t); - is >> vl >> unts; - G4String unt = unts; - - return (vl*ValueOf(unt)); -} - G4ThreeVector G4VVisCommand::GetNew3VectorValue(const G4String& paramString) { G4double vx; diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc index 82be213ba0..0581d0cfc5 100644 --- a/source/visualization/management/src/G4ViewParameters.cc +++ b/source/visualization/management/src/G4ViewParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4ViewParameters.cc,v 1.14 2001/08/05 02:29:12 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 19th July 1996 diff --git a/source/visualization/management/src/G4ViewerList.cc b/source/visualization/management/src/G4ViewerList.cc index 369584d6fb..9fc1aad06e 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4ViewerList.hh" diff --git a/source/visualization/management/src/G4VisCommands.cc b/source/visualization/management/src/G4VisCommands.cc index b8e1e330c5..36993ee4f9 100644 --- a/source/visualization/management/src/G4VisCommands.cc +++ b/source/visualization/management/src/G4VisCommands.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisCommands.cc,v 1.6 2001/09/10 10:54:30 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/ top level commands - John Allison 5th February 2001 diff --git a/source/visualization/management/src/G4VisCommandsCompound.cc b/source/visualization/management/src/G4VisCommandsCompound.cc index 60ad7820b5..609c5718f2 100644 --- a/source/visualization/management/src/G4VisCommandsCompound.cc +++ b/source/visualization/management/src/G4VisCommandsCompound.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsCompound.cc,v 1.22 2002/05/08 13:25:26 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisCommandsCompound.cc,v 1.23 2002/10/24 15:12:26 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // Compound /vis/ commands - John Allison 15th May 2000 @@ -205,7 +205,7 @@ void G4VisCommandDrawVolume::SetNewValue if (verbosity >= G4VisManager::warnings) { G4cout << "WARNING: For systems which are not \"auto-refresh\" you will need to" - "\n issue \"/vis/viewer/update\" or \"/vis/viewer/flush\"." + "\n issue \"/vis/viewer/refresh\" or \"/vis/viewer/flush\"." << G4endl; } } @@ -301,7 +301,7 @@ void G4VisCommandSpecify::SetNewValue if (verbosity >= G4VisManager::warnings) { G4cout << "WARNING: For systems which are not \"auto-refresh\" you will need to" - "\n issue \"/vis/viewer/update\" or \"/vis/viewer/flush\"." + "\n issue \"/vis/viewer/refresh\" or \"/vis/viewer/flush\"." << G4endl; } } diff --git a/source/visualization/management/src/G4VisCommandsScene.cc b/source/visualization/management/src/G4VisCommandsScene.cc index e2df581d70..c42183273e 100644 --- a/source/visualization/management/src/G4VisCommandsScene.cc +++ b/source/visualization/management/src/G4VisCommandsScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsScene.cc,v 1.30 2001/11/12 18:22:11 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/scene commands - John Allison 9th August 1998 diff --git a/source/visualization/management/src/G4VisCommandsSceneAdd.cc b/source/visualization/management/src/G4VisCommandsSceneAdd.cc index 0e62e365b1..07ef9b09ec 100644 --- a/source/visualization/management/src/G4VisCommandsSceneAdd.cc +++ b/source/visualization/management/src/G4VisCommandsSceneAdd.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.cc,v 1.30 2002/06/19 15:49:34 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisCommandsSceneAdd.cc,v 1.34 2002/12/11 16:10:06 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/scene commands - John Allison 9th August 1998 @@ -47,6 +47,7 @@ #include "G4ApplicationState.hh" #include "G4UIcommand.hh" #include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4ios.hh" #include "g4std/strstream" @@ -384,7 +385,7 @@ G4VisCommandSceneAddScale::G4VisCommandSceneAddScale () { ("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::GuidanceString); + fpCommand -> SetGuidance (G4Scale::GetGuidanceString()); G4UIparameter* parameter; parameter = new G4UIparameter ("length", 'd', omitable = true); parameter->SetDefaultValue (1.); @@ -617,8 +618,8 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand* command, G4VisCommandSceneAddText::G4VisCommandSceneAddText () { G4bool omitable; fpCommand = new G4UIcommand ("/vis/scene/add/text", this); - fpCommand -> SetGuidance - ("Adds text at (x, y, z) unit font_size x_offset y_offset text."); + 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."); G4UIparameter* parameter; @@ -701,13 +702,27 @@ void G4VisCommandSceneAddText::SetNewValue (G4UIcommand* command, ////////////// /vis/scene/add/trajectories /////////////////////////////////// G4VisCommandSceneAddTrajectories::G4VisCommandSceneAddTrajectories () { - fpCommand = new G4UIcmdWithoutParameter + 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 - ("Trajectories are drawn at end of event when the scene in which" - " they are added is current."); + ("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 abs(drawing-mode)/1000" + "\nin pixels at each step and auxiliary point, if any. So drawing-mode" + "\n== 5000 is a good choice." + "\nEnable storing with \"/tracking/storeTrajectory 1\"." + "\nSee also \"/vis/scene/endOfEventAction\"."); + fpCommand -> SetParameterName ("drawing-mode", omitable = true); + fpCommand -> SetDefaultValue (0); } G4VisCommandSceneAddTrajectories::~G4VisCommandSceneAddTrajectories () { @@ -732,7 +747,11 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand* command, return; } - G4TrajectoriesModel* model = new G4TrajectoriesModel; + G4int drawingMode; + const char* s = newValue; + G4std::istrstream is ((char*)s); + is >> drawingMode; + G4TrajectoriesModel* model = new G4TrajectoriesModel(drawingMode); const G4String& currentSceneName = pScene -> GetName (); G4bool successful = pScene -> AddEndOfEventModel (model, warn); if (successful) { diff --git a/source/visualization/management/src/G4VisCommandsSceneHandler.cc b/source/visualization/management/src/G4VisCommandsSceneHandler.cc index a03e51fcdf..ba15053c40 100644 --- a/source/visualization/management/src/G4VisCommandsSceneHandler.cc +++ b/source/visualization/management/src/G4VisCommandsSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsSceneHandler.cc,v 1.22 2001/09/10 10:56:55 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/sceneHandler commands - John Allison 10th October 1998 diff --git a/source/visualization/management/src/G4VisCommandsViewer.cc b/source/visualization/management/src/G4VisCommandsViewer.cc index 5a98d2e293..f230480145 100644 --- a/source/visualization/management/src/G4VisCommandsViewer.cc +++ b/source/visualization/management/src/G4VisCommandsViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsViewer.cc,v 1.35 2002/04/26 21:23:31 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/viewer commands - John Allison 25th October 1998 diff --git a/source/visualization/management/src/G4VisCommandsViewerSet.cc b/source/visualization/management/src/G4VisCommandsViewerSet.cc index 052afb6f5b..31d92d4ca3 100644 --- a/source/visualization/management/src/G4VisCommandsViewerSet.cc +++ b/source/visualization/management/src/G4VisCommandsViewerSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewerSet.cc,v 1.19 2002/05/01 09:55:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisCommandsViewerSet.cc,v 1.20 2002/11/27 12:33:28 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // /vis/viewer/set commands - John Allison 16th May 2000 @@ -32,6 +32,7 @@ #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithABool.hh" #include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADouble.hh" #include "G4UnitsTable.hh" #include "G4VisManager.hh" @@ -89,6 +90,18 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fpCommandEdge->SetParameterName("edge",omitable = true); fpCommandEdge->SetDefaultValue(true); + 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", + omitable=true); + fpCommandGlobalMarkerScale->SetDefaultValue(1.); + fpCommandHiddenEdge = new G4UIcmdWithABool("/vis/viewer/set/hiddenEdge",this); fpCommandHiddenEdge->SetGuidance("/vis/viewer/set/edge [true|false]"); @@ -292,6 +305,7 @@ G4VisCommandsViewerSet::~G4VisCommandsViewerSet() { delete fpCommandAutoRefresh; delete fpCommandCulling; delete fpCommandEdge; + delete fpCommandGlobalMarkerScale; delete fpCommandHiddenEdge; delete fpCommandHiddenMarker; delete fpCommandLineSegments; @@ -504,6 +518,16 @@ void G4VisCommandsViewerSet::SetNewValue } } + else if (command == fpCommandGlobalMarkerScale) { + G4double globalMarkerScale + = fpCommandGlobalMarkerScale->GetNewDoubleValue(newValue); + vp.SetGlobalMarkerScale(globalMarkerScale); + if (verbosity >= G4VisManager::confirmations) { + G4cout << "Global Marker Scale changed to " + << vp.GetGlobalMarkerScale() << G4endl; + } + } + else if (command == fpCommandHiddenEdge) { G4ViewParameters::DrawingStyle existingStyle = vp.GetDrawingStyle(); if (GetNewBoolValue(newValue)) { diff --git a/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc b/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc index ea144c1fd3..7673fd7d04 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // #include "G4VisFeaturesOfDAWNFILE.hh" diff --git a/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc b/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc index ba7799017a..3146de511d 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc b/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc index 82f7aa06e6..582565aff2 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc b/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc index 2624c967f3..106f3eae2c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc index 7877993bd6..901c205a07 100644 --- a/source/visualization/management/src/G4VisManager.cc +++ b/source/visualization/management/src/G4VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.cc,v 1.45 2002/04/26 21:23:31 asaim Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisManager.cc,v 1.48 2002/11/20 17:19:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. @@ -232,7 +232,7 @@ void G4VisManager::Enable() { } void G4VisManager::Disable() { - fpConcreteInstance = 0; + SetConcreteInstance(0); if (fVerbosity >= confirmations) { G4cout << "G4VisManager::Disable: visualization disabled." @@ -288,15 +288,10 @@ void G4VisManager::Draw (const G4Circle& circle, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (circle); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -304,15 +299,10 @@ void G4VisManager::Draw (const G4NURBS& nurbs, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (nurbs); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -320,15 +310,10 @@ void G4VisManager::Draw (const G4Polyhedron& polyhedron, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (polyhedron); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -336,15 +321,10 @@ void G4VisManager::Draw (const G4Polyline& line, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (line); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -352,15 +332,10 @@ void G4VisManager::Draw (const G4Polymarker& polymarker, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (polymarker); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -368,15 +343,10 @@ void G4VisManager::Draw (const G4Scale& scale, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (scale); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -384,15 +354,10 @@ void G4VisManager::Draw (const G4Square& square, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (square); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -400,15 +365,10 @@ void G4VisManager::Draw (const G4Text& text, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> BeginPrimitives (objectTransform); fpSceneHandler -> AddPrimitive (text); fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -425,15 +385,10 @@ void G4VisManager::Draw (const G4VSolid& solid, const G4Transform3D& objectTransform) { if (IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); + CheckModel(); fpSceneHandler -> PreAddThis (objectTransform, attribs); solid.DescribeYourselfTo (*fpSceneHandler); fpSceneHandler -> PostAddThis (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; } } @@ -479,7 +434,7 @@ void G4VisManager::CreateViewer (G4String name) { fpSceneHandler -> AddViewerToList (fpViewer); fpSceneHandler -> SetCurrentViewer (fpViewer); // Make it possible for user action code to Draw. - fpConcreteInstance = this; + SetConcreteInstance(this); const G4ViewParameters& vp = fpViewer->GetViewParameters(); G4bool warn = false; @@ -496,7 +451,7 @@ void G4VisManager::CreateViewer (G4String name) { G4cout << "WARNING: objects with visibility flag set to \"false\"" " will not be drawn!" - "\n \"/vis/set/culling off\" to Draw such objects." + "\n \"/vis/viewer/set/culling global false\" to Draw such objects." << G4endl; } } @@ -510,15 +465,14 @@ void G4VisManager::CreateViewer (G4String name) { warn = true; if (fVerbosity >= warnings) { G4cout << - "WARNING: covered objects in solid mode will not be part of" - " the scene!" - "\n \"/vis/set/cull_covered_daughters off\" to reverse this." + "WARNING: covered objects in solid mode will not be rendered!" + "\n \"/vis/viewer/set/culling coveredDaughters false\" to reverse this." << G4endl; } } if (warn) { if (fVerbosity >= warnings) { - G4cout << " Also see other \"/vis/set\" commands." + G4cout << " Also see other \"/vis/viewer/set\" commands." << G4endl; } } @@ -568,7 +522,7 @@ void G4VisManager::DeleteCurrentSceneHandler () { fpSceneHandler = fAvailableSceneHandlers [0]; fpViewer = 0; // Make it impossible for user action code to Draw. - fpConcreteInstance = 0; + SetConcreteInstance(0); if (fVerbosity >= warnings) { G4cout << "WARNING: scene handler is now \"" << fpSceneHandler -> GetName (); @@ -580,7 +534,7 @@ void G4VisManager::DeleteCurrentSceneHandler () { fpSceneHandler = 0; fpViewer = 0; // Make it impossible for user action code to Draw. - fpConcreteInstance = 0; + SetConcreteInstance(0); if (fVerbosity >= warnings) { G4cout << "WARNING: There are now no scene handlers left." @@ -619,7 +573,7 @@ void G4VisManager::DeleteCurrentViewer () { fpViewer = 0; fpSceneHandler -> SetCurrentViewer (0); // Make it impossible for user action code to Draw. - fpConcreteInstance = 0; + SetConcreteInstance(0); if (fVerbosity >= warnings) { G4cout << "WARNING: There are now no viewers left for this scene handler." @@ -765,14 +719,14 @@ void G4VisManager::SetCurrentGraphicsSystem (G4VGraphicsSystem* pSystem) { else { fpViewer = 0; // Make it impossible for user action code to Draw. - fpConcreteInstance = 0; + SetConcreteInstance(0); } } else { fpSceneHandler = 0; fpViewer = 0; // Make it impossible for user action code to Draw. - fpConcreteInstance = 0; + SetConcreteInstance(0); } } } @@ -816,7 +770,7 @@ void G4VisManager::SetCurrentSceneHandler (G4VSceneHandler* pSceneHandler) { else { fpViewer = 0; // Make it impossible for user action code to Draw. - fpConcreteInstance = 0; + SetConcreteInstance(0); if (fVerbosity >= warnings) { G4cout << "WARNING: No viewers for this scene handler - please create one." @@ -1030,32 +984,30 @@ void G4VisManager::BeginOfEvent () { void G4VisManager::EndOfEvent () { //G4cout << "G4VisManager::EndOfEvent" << G4endl; - if (fpConcreteInstance && IsValidView ()) { + if (GetConcreteInstance() && IsValidView ()) { ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = - fpSceneHandler -> CreateModelingParameters (); + fVisManagerModelingParameters + = *(fpSceneHandler -> CreateModelingParameters ()); const G4std::vector& EOEModelList = fpScene -> GetEndOfEventModelList (); for (size_t i = 0; i < EOEModelList.size (); i++) { G4VModel* pModel = EOEModelList [i]; - pModel -> SetModelingParameters (pMP); + pModel -> SetModelingParameters (&fVisManagerModelingParameters); fpSceneHandler -> SetModel (pModel); pModel -> DescribeYourselfTo (*fpSceneHandler); - pModel -> SetModelingParameters (0); - fpSceneHandler -> SetModel (0); } - delete pMP; if (fpScene->GetRefreshAtEndOfEvent()) { fpViewer->ShowView(); // ...for systems needing post processing. fpSceneHandler->SetMarkForClearingTransientStore(true); } + fpSceneHandler -> SetModel (0); // Flags invalid model. } } void G4VisManager::EndOfRun () { //G4cout << "G4VisManager::EndOfRun" << G4endl; - if (fpConcreteInstance && IsValidView ()) { - fpSceneHandler->SetMarkForClearingTransientStore(false); + if (GetConcreteInstance() && IsValidView ()) { + fpSceneHandler->SetMarkForClearingTransientStore(true); } } @@ -1067,6 +1019,18 @@ void G4VisManager::ClearTransientStoreIfMarked(){ } } +void G4VisManager::CheckModel () { + G4VModel* pModel = fpSceneHandler->GetModel(); + if (!pModel) { // provide a null model. + pModel = &fVisManagerNullModel; + fpSceneHandler -> SetModel (pModel); + } + // Ensure modeling parameters are right for this view... + fVisManagerModelingParameters + = *(fpSceneHandler -> CreateModelingParameters ()); + pModel->SetModelingParameters (&fVisManagerModelingParameters); +} + G4String G4VisManager::ViewerShortName (const G4String& viewerName) const { G4String viewerShortName (viewerName); viewerShortName = viewerShortName (0, viewerShortName.find (' ')); @@ -1172,7 +1136,7 @@ G4bool G4VisManager::IsValidView () { if (!fInitialised) Initialise (); - fpConcreteInstance = 0; + SetConcreteInstance(0); // Unless we survive a few preliminary tests, users must not use. if (!fpGraphicsSystem) return false; @@ -1236,7 +1200,7 @@ G4bool G4VisManager::IsValidView () { return false; } - fpConcreteInstance = this; // Unless we find another problem, users can use! + SetConcreteInstance(this); // Unless we find another problem, users can use! G4bool isValid = true; if (fpScene -> IsEmpty ()) { // Add world by default if possible... G4bool warn(fVerbosity >= warnings); @@ -1251,7 +1215,7 @@ G4bool G4VisManager::IsValidView () { << G4endl; } isValid = false; - fpConcreteInstance = 0; // Users must not use! + SetConcreteInstance(0); // Users must not use! } else { G4UImanager::GetUIpointer () -> ApplyCommand ("/vis/viewer/reset"); diff --git a/source/visualization/management/src/G4VisStateDependent.cc b/source/visualization/management/src/G4VisStateDependent.cc index 5dce2f72c0..28a06e0dd5 100644 --- a/source/visualization/management/src/G4VisStateDependent.cc +++ b/source/visualization/management/src/G4VisStateDependent.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisStateDependent.cc,v 1.4 2001/09/10 10:41:33 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4VisStateDependent.cc,v 1.5 2002/12/05 01:37:37 asaim Exp $ +// GEANT4 tag $Name: geant4-05-00 $ #include "G4VisStateDependent.hh" @@ -35,16 +35,16 @@ G4VisStateDependent::G4VisStateDependent (G4VisManager* pVisManager): G4bool G4VisStateDependent::Notify (G4ApplicationState requestedState) { G4StateManager* stateManager = G4StateManager::GetStateManager(); G4ApplicationState previousState = stateManager->GetPreviousState(); - if (previousState == Idle && requestedState == GeomClosed) { + if (previousState == G4State_Idle && requestedState == G4State_GeomClosed) { fpVisManager -> BeginOfRun (); } - else if (previousState == GeomClosed && requestedState == EventProc) { + else if (previousState == G4State_GeomClosed && requestedState == G4State_EventProc) { fpVisManager -> BeginOfEvent (); } - else if (previousState == EventProc && requestedState == GeomClosed) { + else if (previousState == G4State_EventProc && requestedState == G4State_GeomClosed) { fpVisManager -> EndOfEvent (); } - else if (previousState == GeomClosed && requestedState == Idle) { + else if (previousState == G4State_GeomClosed && requestedState == G4State_Idle) { fpVisManager -> EndOfRun (); } return true; diff --git a/source/visualization/modeling/History b/source/visualization/modeling/History index a95d747a33..e90c1c362e 100644 --- a/source/visualization/modeling/History +++ b/source/visualization/modeling/History @@ -1,4 +1,4 @@ -$Id: History,v 1.17 2002/02/24 01:35:26 johna Exp $ +$Id: History,v 1.21 2002/11/20 17:25:46 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,16 @@ committal in the CVS repository ! History file for visualization/modeling --------------------------------------- +20th November 2002 Gabriele Cosmo (modeling-V04-01-00) +- Fixed access to static data (requires "greps-V04-01-04") in + G4FlavoredParallelWorldModel.cc, to allow porting on Windows DLLs. + +11th November 2002 John Allison (modeling-V04-00-00) +- Added fDrawingMode data member to G4TrajectoriesModel. + +24th October 2002 John Allison (vis-V04-01-03) +- Changes for AddThis(const G4VTrajectory&) and (const G4VHit&). + 23rd February 2002 John Allison (vis-V04-00-02) - Removed Begin/EndPrimitives from G4HitsModel and G4TrajectoriesModel. This was causing nested calls to diff --git a/source/visualization/modeling/include/G4AxesModel.hh b/source/visualization/modeling/include/G4AxesModel.hh index 244b85cc7d..887f978f01 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4AxesModel.icc b/source/visualization/modeling/include/G4AxesModel.icc index 8fac094cde..b866c881ae 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ inline G4String G4AxesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4BoundingSphereScene.hh b/source/visualization/modeling/include/G4BoundingSphereScene.hh index 36959c5a49..5ef18e9ae5 100644 --- a/source/visualization/modeling/include/G4BoundingSphereScene.hh +++ b/source/visualization/modeling/include/G4BoundingSphereScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BoundingSphereScene.hh,v 1.11 2001/07/25 21:08:14 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4BoundingSphereScene.hh,v 1.12 2002/10/24 14:53:27 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 7th June 1997 @@ -62,6 +62,8 @@ public: 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 () {} diff --git a/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh b/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh index 91995a1e78..c6183cae95 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // 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 80b20008fd..5096cf9f32 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4HitsModel.icc b/source/visualization/modeling/include/G4HitsModel.icc index 721c73e443..9c9e536b4c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ inline G4String G4HitsModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4LogicalVolumeModel.hh b/source/visualization/modeling/include/G4LogicalVolumeModel.hh index e434d95efe..9ac674890b 100644 --- a/source/visualization/modeling/include/G4LogicalVolumeModel.hh +++ b/source/visualization/modeling/include/G4LogicalVolumeModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeModel.hh,v 1.5 2001/07/11 10:09:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 26th July 1999. diff --git a/source/visualization/modeling/include/G4ModelingParameters.hh b/source/visualization/modeling/include/G4ModelingParameters.hh index 1b9fe6e089..c4fda47023 100644 --- a/source/visualization/modeling/include/G4ModelingParameters.hh +++ b/source/visualization/modeling/include/G4ModelingParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4ModelingParameters.hh,v 1.7 2001/08/09 20:06:20 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4ModelingParameters.icc b/source/visualization/modeling/include/G4ModelingParameters.icc index 938cd6b6d4..68dc33a7cf 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4NullModel.hh b/source/visualization/modeling/include/G4NullModel.hh index cbeeb192cd..e435392d59 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh index c32072198a..2012b3b16f 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeModel.hh,v 1.16 2001/08/24 20:36:17 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh index 1db14dfc17..a92a2cbded 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeSearchScene.hh,v 1.9 2001/07/22 01:00:24 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4PhysicalVolumeSearchScene.hh,v 1.10 2002/10/24 14:53:38 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 10th August 1998. @@ -63,6 +63,8 @@ public: 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 (); diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc index 9b9ae34875..97a5740fb2 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeSearchScene.icc,v 1.4 2001/07/11 10:09:21 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/include/G4ScaleModel.hh b/source/visualization/modeling/include/G4ScaleModel.hh index 9e4c5e14f0..b370cdbbe7 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/include/G4ScaleModel.icc b/source/visualization/modeling/include/G4ScaleModel.icc index f1a67dcf61..ccb24c775c 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ inline G4String G4ScaleModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TextModel.hh b/source/visualization/modeling/include/G4TextModel.hh index 2e3c8c429e..67d1169133 100644 --- a/source/visualization/modeling/include/G4TextModel.hh +++ b/source/visualization/modeling/include/G4TextModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TextModel.hh,v 1.4 2001/08/24 20:36:21 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4TextModel.icc b/source/visualization/modeling/include/G4TextModel.icc index 7f17a58d6b..d282f887e2 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ inline G4String G4TextModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.hh b/source/visualization/modeling/include/G4TrajectoriesModel.hh index df79c7b0d1..b586d961c2 100644 --- a/source/visualization/modeling/include/G4TrajectoriesModel.hh +++ b/source/visualization/modeling/include/G4TrajectoriesModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoriesModel.hh,v 1.7 2001/08/24 20:36:23 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrajectoriesModel.hh,v 1.8 2002/11/11 18:39:28 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 26th August 1998. @@ -44,7 +44,7 @@ class G4TrajectoriesModel: public G4VModel { public: // With description - G4TrajectoriesModel (); + G4TrajectoriesModel (G4int drawingMode = 0); virtual ~G4TrajectoriesModel (); @@ -57,6 +57,13 @@ public: // With description virtual G4String GetCurrentTag () const; // A tag which depends on the current state of the model. + G4int GetDrawingMode() const { return fDrawingMode;} + void SetDrawingMode(G4int drawingMode) {fDrawingMode = drawingMode;} + +private: + + G4int fDrawingMode; + }; #include "G4TrajectoriesModel.icc" diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.icc b/source/visualization/modeling/include/G4TrajectoriesModel.icc index 60c217abfd..39561f8725 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ inline G4String G4TrajectoriesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4VModel.hh b/source/visualization/modeling/include/G4VModel.hh index c68c976807..57fd8cafc7 100644 --- a/source/visualization/modeling/include/G4VModel.hh +++ b/source/visualization/modeling/include/G4VModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VModel.hh,v 1.13 2001/08/24 20:36:26 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4VModel.icc b/source/visualization/modeling/include/G4VModel.icc index 5792465d62..7eb54e45b7 100644 --- a/source/visualization/modeling/include/G4VModel.icc +++ b/source/visualization/modeling/include/G4VModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4VModel.icc,v 1.9 2001/07/25 21:12:20 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4AxesModel.cc b/source/visualization/modeling/src/G4AxesModel.cc index b6dda8b2be..e34d95b9ab 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4BoundingSphereScene.cc b/source/visualization/modeling/src/G4BoundingSphereScene.cc index 00002d61c0..8d90c8ff17 100644 --- a/source/visualization/modeling/src/G4BoundingSphereScene.cc +++ b/source/visualization/modeling/src/G4BoundingSphereScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4BoundingSphereScene.cc,v 1.8 2001/07/25 21:10:22 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 7th June 1997 diff --git a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc index 711e1444e7..fb8a0eced4 100644 --- a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc +++ b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FlavoredParallelWorldModel.cc,v 1.5 2001/07/11 10:09:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4FlavoredParallelWorldModel.cc,v 1.6 2002/11/20 17:21:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // Model for flavored parallel world volumes. @@ -46,7 +46,7 @@ G4FlavoredParallelWorldModel::G4FlavoredParallelWorldModel theFlavoredParallelWorld (FPW) { FPW -> GetThePhysicalVolumeWorld () -> - GetLogicalVolume () -> SetVisAttributes (G4VisAttributes::Invisible); + GetLogicalVolume () -> SetVisAttributes (G4VisAttributes::GetInvisible()); } G4FlavoredParallelWorldModel::~G4FlavoredParallelWorldModel () {} diff --git a/source/visualization/modeling/src/G4HitsModel.cc b/source/visualization/modeling/src/G4HitsModel.cc index 664ee5ef60..4d3766138d 100644 --- a/source/visualization/modeling/src/G4HitsModel.cc +++ b/source/visualization/modeling/src/G4HitsModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HitsModel.cc,v 1.8 2002/02/24 01:35:50 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4HitsModel.cc,v 1.9 2002/10/24 15:07:21 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 26th August 1998. @@ -52,7 +52,14 @@ void G4HitsModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { if (HCE) { G4int nHC = HCE -> GetCapacity (); for (int iHC = 0; iHC < nHC; iHC++) { - HCE -> GetHC (iHC) -> DrawAllHits (); + G4VHitsCollection* HC = HCE -> GetHC (iHC); + if (HC) { + size_t nHits = HC -> GetSize (); + for(size_t iHit = 0; iHit < nHits; ++iHit) { + G4VHit* hit = HC -> GetHit (iHit); + sceneHandler.AddThis (*hit); + } + } } } } diff --git a/source/visualization/modeling/src/G4LogicalVolumeModel.cc b/source/visualization/modeling/src/G4LogicalVolumeModel.cc index b1adfa1675..796fa9fe57 100644 --- a/source/visualization/modeling/src/G4LogicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4LogicalVolumeModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeModel.cc,v 1.8 2001/07/11 10:09:22 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 26th July 1999. diff --git a/source/visualization/modeling/src/G4ModelingParameters.cc b/source/visualization/modeling/src/G4ModelingParameters.cc index 68cf0b925f..f3e272cc34 100644 --- a/source/visualization/modeling/src/G4ModelingParameters.cc +++ b/source/visualization/modeling/src/G4ModelingParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4ModelingParameters.cc,v 1.5 2001/07/11 10:09:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4NullModel.cc b/source/visualization/modeling/src/G4NullModel.cc index 86a2676898..3cac785d03 100644 --- a/source/visualization/modeling/src/G4NullModel.cc +++ b/source/visualization/modeling/src/G4NullModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NullModel.cc,v 1.6 2001/08/24 20:36:28 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc index 34d34af5b1..7336dc3ee4 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeModel.cc,v 1.20 2001/08/24 20:34:25 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc index 4c5c1ca9d8..8a765afd6c 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeSearchScene.cc,v 1.6 2001/07/11 10:09:23 gunter Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/src/G4ScaleModel.cc b/source/visualization/modeling/src/G4ScaleModel.cc index 6822d82e42..1f526b99f3 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-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/src/G4TextModel.cc b/source/visualization/modeling/src/G4TextModel.cc index 0e2926be7e..7c42c17ca2 100644 --- a/source/visualization/modeling/src/G4TextModel.cc +++ b/source/visualization/modeling/src/G4TextModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TextModel.cc,v 1.4 2001/08/14 18:43:32 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4TrajectoriesModel.cc b/source/visualization/modeling/src/G4TrajectoriesModel.cc index 4b317c5759..3f1ebc3506 100644 --- a/source/visualization/modeling/src/G4TrajectoriesModel.cc +++ b/source/visualization/modeling/src/G4TrajectoriesModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrajectoriesModel.cc,v 1.10 2002/02/24 01:35:52 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// $Id: G4TrajectoriesModel.cc,v 1.12 2002/11/11 18:39:28 johna Exp $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 26th August 1998. @@ -36,7 +36,8 @@ G4TrajectoriesModel::~G4TrajectoriesModel () {} -G4TrajectoriesModel::G4TrajectoriesModel () { +G4TrajectoriesModel::G4TrajectoriesModel (G4int drawingMode): +fDrawingMode(drawingMode) { fGlobalTag = "G4TrajectoriesModel for all trajectories."; fGlobalDescription = fGlobalTag; } @@ -49,11 +50,7 @@ void G4TrajectoriesModel::DescribeYourselfTo (G4VGraphicsScene& sceneHandler) { if (TC) { G4int nT = TC -> entries (); for (int iT = 0; iT < nT; iT++) { - // GB : default representation should be the most efficent one. - // Representation with a circle at each step should be an option - // choosable from a command. - // (*TC) [iT] -> DrawTrajectory (50); - (*TC) [iT] -> DrawTrajectory (); + sceneHandler.AddThis (*((*TC) [iT])); } } } diff --git a/source/visualization/modeling/src/G4VModel.cc b/source/visualization/modeling/src/G4VModel.cc index 2f1b22402b..02f8fbcfd2 100644 --- a/source/visualization/modeling/src/G4VModel.cc +++ b/source/visualization/modeling/src/G4VModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VModel.cc,v 1.7 2001/08/24 20:36:29 johna Exp $ -// GEANT4 tag $Name: geant4-04-01 $ +// GEANT4 tag $Name: geant4-05-00 $ // // // John Allison 31st December 1997.